From patchwork Wed Nov 11 16:48:51 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 28861 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 7E32DC3304 for ; Wed, 11 Nov 2026 16:49:16 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id AA43369213; Wed, 11 Nov 2026 17:49:12 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Q5QieRUZ"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 59D8D6910E for ; Wed, 11 Nov 2026 17:49:09 +0100 (CET) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id DE7BB8FD; Wed, 11 Nov 2026 17:46:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1794415606; bh=YUpnzKsKNu228NamQIk9vfZrob6wTXtBpRsPh9uNTpM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Q5QieRUZ6j1zDJuxDVuqURFqkubGTNR/1Cg9YQtJgPr1T3WQHg3uUON++zOt3snRp YTQj2ExyhsHXg5dr81iRy9lNETuJsmXIaqhwzdrx/z7Q+pWApf67luEiTSQgCQCDW1 9IrECY1zcRH+5vFzJkScwNDO7RTU1qd/7RgAoWoM= From: Jacopo Mondi Date: Wed, 11 Nov 2026 17:48:51 +0100 Subject: [PATCH 1/5] ipa: rpi: cam_helper: Add Mira016 cam helper MIME-Version: 1.0 Message-Id: <20261111-b4-mira016-v1-1-340bdb923426@ideasonboard.com> References: <20261111-b4-mira016-v1-0-340bdb923426@ideasonboard.com> In-Reply-To: <20261111-b4-mira016-v1-0-340bdb923426@ideasonboard.com> To: Philippe Baetens , libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3762; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=YUpnzKsKNu228NamQIk9vfZrob6wTXtBpRsPh9uNTpM=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBq9JyDDYxXL+pQqdusjevZplVU00t005O6GVp1a QI1OnKN6wqJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCavScgwAKCRByNAaPFqFW PBw6EACIhr/h65sWwhJ0Ksn1yNW+3PwQHaqYmebiI2zI9Zkm7551aRqd28+EfB8txLifltmo0Yq OD6V8lRuchBeMpF1AOL6Dwcsia0+6tYymr6/mAhOel8UzJO9/SGACNSX6e7U+OEG1kXOKWjl3+h d0zQdFu2+qbzgvBlYPlnnfUexS+WussR3IC/rVN+WAZY0p4L00Unwq9qmOMqB55MI/UU6vaOhho WqChF9VfOvQQbrlXXl+xiMEOvbjUJMsIFXb5ibyL1wrCaoLuike1fngFaNvkevsXguxCj+HkOdm kujJY/dVlEwZ0cmsLsHtmlNpNHNObvhG0Yz21udm11mMbNDSN05E+KIvx2BrNp1cVflYBnHmZIP ATlW9VAVNuzw1PQfE2oQohN8Np2BGGczcygdCmeUDa/eZwR0HMhcfjaNUw7beVrQ1RlQGElZsMD nwXnr8hVd80blH2IqUtW010nwsmR0yCxbnfmxZhZnCmoEkpNk9JtPsjQmg1qhen3ETHaDvfU9H7 GAbB6UQ8LOMLz2FfsnPNayDHidhacoTkJzKItLaWAm68gNVZfzGP67/oM3kqKrKHx7XkBNgEKJL MUgwGRJCsGIZTWo6mxChRDfUvJGOS4qZsB6Eh6KTjJHuN7lQTSDxxuUtt7jlJBKBbKUpZts/aBE QdK3KtJO+go2pEw== X-Developer-Key: i=jacopo.mondi@ideasonboard.com; a=openpgp; fpr=72392EDC88144A65C701EA9BA5826A2587AD026B X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Add a cam_helper to the RaspberryPi IPA for the AMS-OSRAM Mira016 sensor. The sensor black level has been measured by averaging the pixel value while covering the lens. The mira016 driver gain interface is index-based. The gain() and gainCode() function use a lookup table that translates the desired gain value to an index on the table (and vice-versa). Signed-off-by: Jacopo Mondi --- src/ipa/rpi/cam_helper/cam_helper_mira016.cpp | 88 +++++++++++++++++++++++++++ src/ipa/rpi/cam_helper/meson.build | 1 + 2 files changed, 89 insertions(+) diff --git a/src/ipa/rpi/cam_helper/cam_helper_mira016.cpp b/src/ipa/rpi/cam_helper/cam_helper_mira016.cpp new file mode 100644 index 000000000000..0bc3aefca1ea --- /dev/null +++ b/src/ipa/rpi/cam_helper/cam_helper_mira016.cpp @@ -0,0 +1,88 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ +/* + * Copyright (C) 2026, ams-OSRAM + * Copyright (C) 2026, Ideas on Board Oy + * + * Camera helper for Mira016 sensor + */ + +#include + +#include "cam_helper.h" + +namespace { + +using namespace RPiController; + +class CamHelperMira016 : public CamHelper +{ +public: + CamHelperMira016(); + uint32_t gainCode(double gain) const override; + double gain(uint32_t code) const override; + +private: + /* + * The sensor manual doesn't really specify a minimum difference between + * the exposure time and the frame duration, so pick a safe value of + * 4 frames. The mira016 driver uses the same value as the exposure + * margin. + */ + static constexpr int frameIntegrationDiff = 4; + + static constexpr float gainLut[] = { + 1, 1.018, 1.056, 1.075, 1.118, 1.14, 1.188, 1.213, 1.267, 1.295, + 1.326, 1.373, 1.425, 1.462, 1.5, 1.541, 1.583, 1.652, 1.701, + 1.727, 1.781, 1.839, 1.9, 1.966, 2, 2.073, 2.151, 2.192, 2.28, + 2.327, 2.426, 2.478, 2.533, 2.651, 2.714, 2.78, 2.886, 2.961, + 3.04, 3.167, 3.257, 3.353, 3.455, 3.563, 3.619, 3.738, 3.864, 4, + 4.071, 4.222, 4.302, 4.471, 4.56, 4.75, 4.851, 5.067, 5.182, + 5.302, 5.494, 5.7, 5.846, 6, 6.247, 6.423, 6.609, 6.806, 7.015, + 7.238, 7.355, 7.6, 7.862, 8.143, 8.291, 8.604, 8.769, 9.12, + 9.306, 9.702, 9.913, 10.133, 10.605, 10.857, 11.259, 11.544, + 11.844, 12.324, 12.667, 13.029, 13.412, 13.818, 14.25, 14.71, + 14.951, 15.458, 16, + }; + uint32_t sizeLut = sizeof(gainLut) / sizeof(gainLut[0]); +}; + +CamHelperMira016::CamHelperMira016() + : CamHelper({}, frameIntegrationDiff) +{ +} + +uint32_t CamHelperMira016::gainCode(double gain) const +{ + uint32_t gainCode = 0; + + while (gainCode < sizeLut - 1) { + if (gain < gainLut[gainCode + 1]) + break; + + gainCode++; + } + + /* + * The V4L2_CID_ANALOGUE_GAIN control is 1-indexed while the lookup + * table is 0-indexed. Return index+1 here, the driver adjusts it to its + * 0-indexed table. + */ + return gainCode + 1; +} + +double CamHelperMira016::gain(uint32_t gainCode) const +{ + if (gainCode >= sizeLut) + gainCode = sizeLut - 1; + + return (double)(gainLut[gainCode]); +} + +static CamHelper *create() +{ + return new CamHelperMira016(); +} + +static RegisterCamHelper reg("mira016", &create); + +} /* namespace */ diff --git a/src/ipa/rpi/cam_helper/meson.build b/src/ipa/rpi/cam_helper/meson.build index 6935cecf885f..6fc5f5c12f37 100644 --- a/src/ipa/rpi/cam_helper/meson.build +++ b/src/ipa/rpi/cam_helper/meson.build @@ -12,6 +12,7 @@ rpi_ipa_cam_helper_sources = files([ 'cam_helper_imx477.cpp', 'cam_helper_imx519.cpp', 'cam_helper_imx708.cpp', + 'cam_helper_mira016.cpp', 'cam_helper_mira220.cpp', 'cam_helper_ov64a40.cpp', 'cam_helper_ov7251.cpp', From patchwork Wed Nov 11 16:48:52 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 28862 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id E857AC335C for ; Wed, 11 Nov 2026 16:49:17 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 45778691E6; Wed, 11 Nov 2026 17:49:13 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="HFsFk+I4"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 7C17B69119 for ; Wed, 11 Nov 2026 17:49:09 +0100 (CET) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 31F20981; Wed, 11 Nov 2026 17:46:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1794415606; bh=YMmpgDrnSzYXihUVf6O+hvQAMHUiJTEqsICAplGCFdA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=HFsFk+I4LPcC40bMznRZYAEF0QsWqfA2rpAU2khj0Bz+ehmkTar8AMh5ispwR4tcA l/94Vrbef8hyndgT5/5JFVc7tIPFLz9f1TPa3QQD0BYHxj1fVIe3qtsP/b8NZgNWRl hEIyuSR5L95uwBqJWzNvn11rlzOTxwpHS5LjrI8w= From: Jacopo Mondi Date: Wed, 11 Nov 2026 17:48:52 +0100 Subject: [PATCH 2/5] ipa: rpi: vc4: Add Mira016 tuning file MIME-Version: 1.0 Message-Id: <20261111-b4-mira016-v1-2-340bdb923426@ideasonboard.com> References: <20261111-b4-mira016-v1-0-340bdb923426@ideasonboard.com> In-Reply-To: <20261111-b4-mira016-v1-0-340bdb923426@ideasonboard.com> To: Philippe Baetens , libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=4626; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=YMmpgDrnSzYXihUVf6O+hvQAMHUiJTEqsICAplGCFdA=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBq9JyDL/dPwf1UYtHjK/YiZYyfpb680Bg2DwEwJ Qx7y6Tdf7+JAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCavScgwAKCRByNAaPFqFW PPUiD/41f4dQMQsnQY61TW/d1yOMb9Xmh7NOVFkJz1xMLTNsbO0SjW67tkOPy821BsnzVLANgO3 2zgehxzoVofJ+hrzv9jC4Zo9pOeuNUYUhe4W5EP19QFFTBAofnZkdr0YB+Bao8enWwxIvF9zrYj n3t+SH2q++lBxYdFtIcvMqryL0uCOd5tAWHHvTy1KV9BaEz+09c+CYcWl3olG2NdJPOlKivK/y5 93odQaeerUTnib8qu9iWl23DzgFtfKI77+SGPwIgI5zJPLyDU30J+pVQNnOV8uBe91y1G5aj1wp A9WQGUNExs1y/XDv6AATQNtYEIKpSsE64KOTIaoWUVezpNJ1fsPPvAT06Lxzolav8xRqSinMSaS v49yE/jklsbbg+5Xa+wI6lRfkvOP5NftpHLVKQDZsUR4CqqwkJlTcyDSulEneybFmECaZ7wWWhg v10gi3VdXQO+3d8S1RnZJVNEpLIJjP+ixUzZGGDYO74M+ZFdcQJERg34bnoXuUPPlKSje1BVQmm hkxcbq+bZExChkHrY5hm7hJodLnJ8zkyNJJRwtJfcqx/9VzXXB6Bfcg/N3015WdRl18v+2DPOYy x451iOYlZbH7Jlm2zNUFkomuta0ch8OSCOd1S7yFt/duQ50Tj1KyUgozDEu1w1QVqLGs+OS87rS 1Ow6dQ27bvBT+gA== X-Developer-Key: i=jacopo.mondi@ideasonboard.com; a=openpgp; fpr=72392EDC88144A65C701EA9BA5826A2587AD026B X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Add tuning file for the Mira016 RGB version to the RaspberryPi VC4 IPA. The tuning has been performed by the vendor and is upported from https://github.com/ams-OSRAM/libcamera.git at revision d7d5e17ec961 ("update json files so they are truly mono"). Signed-off-by: Jacopo Mondi --- src/ipa/rpi/vc4/data/meson.build | 1 + src/ipa/rpi/vc4/data/mira016_mono.json | 102 +++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) diff --git a/src/ipa/rpi/vc4/data/meson.build b/src/ipa/rpi/vc4/data/meson.build index a8c5f31422ac..f570686a4d98 100644 --- a/src/ipa/rpi/vc4/data/meson.build +++ b/src/ipa/rpi/vc4/data/meson.build @@ -23,6 +23,7 @@ conf_files = files([ 'imx708_noir.json', 'imx708_wide.json', 'imx708_wide_noir.json', + 'mira016_mono.json', 'mira220.json', 'ov5647.json', 'ov5647_noir.json', diff --git a/src/ipa/rpi/vc4/data/mira016_mono.json b/src/ipa/rpi/vc4/data/mira016_mono.json new file mode 100644 index 000000000000..878a2de7cf92 --- /dev/null +++ b/src/ipa/rpi/vc4/data/mira016_mono.json @@ -0,0 +1,102 @@ +{ + "version": 2.0, + "target": "bcm2835", + "mono": true, + "algorithms": [ + { + "rpi.black_level": + { + "black_level": 2048 + } + }, + + { + "rpi.lux": + { + "reference_shutter_speed": 20316, + "reference_gain": 1.0, + "reference_aperture": 1.0, + "reference_lux": 530, + "reference_Y": 9873 + } + }, + { + "rpi.contrast": + { + "ce_enable": 0, + "gamma_curve": + [ + 0, 0, + 1024, 5040, + 2048, 9338, + 3072, 12356, + 4096, 15312, + 5120, 18051, + 6144, 20790, + 7168, 23193, + 8192, 25744, + 9216, 27942, + 10240, 30035, + 11264, 32005, + 12288, 33975, + 13312, 35815, + 14336, 37600, + 15360, 39168, + 16384, 40642, + 18432, 43379, + 20480, 45749, + 22528, 47753, + 24576, 49621, + 26624, 51253, + 28672, 52698, + 30720, 53796, + 32768, 54876, + 36864, 57012, + 40960, 58656, + 45056, 59954, + 49152, 61183, + 53248, 62355, + 57344, 63419, + 61440, 64476, + 65535, 65535 + ] + } + }, + { + "rpi.sharpen": { } + }, + { + "rpi.agc": + { + "metering_modes": + { + "centre-weighted": { "weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] }, + "spot": { "weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] }, + "matrix": { "weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] } + }, + "exposure_modes": + { + "normal": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + } + }, + "constraint_modes": + { + "normal": [ { "bound": "LOWER", "q_lo": 0.98, "q_hi": 1.0, "y_target": [ 0, 0.5, 1000, 0.5 ] } ], + "highlight": [ + { "bound": "LOWER", "q_lo": 0.98, "q_hi": 1.0, "y_target": [ 0, 0.5, 1000, 0.5 ] }, + { "bound": "UPPER", "q_lo": 0.98, "q_hi": 1.0, "y_target": [ 0, 0.8, 1000, 0.8 ] } + ] + }, + "y_target": [ 0, 0.16, 1000, 0.165, 10000, 0.17 ] + } + } + ] +} From patchwork Wed Nov 11 16:48:53 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 28863 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id E8D97C3304 for ; Wed, 11 Nov 2026 16:49:18 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 061D26A7C7; Wed, 11 Nov 2026 17:49:14 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="jFH6UyIB"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id D75E66911F for ; Wed, 11 Nov 2026 17:49:09 +0100 (CET) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 7E4DDB08; Wed, 11 Nov 2026 17:46:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1794415606; bh=BOhSp5V+U7uvaSnzpRlUeCZ5TkpXsNb0TRy0mXF0sJY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=jFH6UyIBrjbKs4bs+Yvni8gmW8sqv/p6frUYigWM+dv6WTqfVpsuPInIoSH8udMZN eFJICufQb1kqCYZfWCiuC9pdo2CI0cisNtiphzr7GS1qJDfTiQsCSCik9Uy3bnIyXG mb3UD02s0c7MhwshLzhIbmFsgRlpw5MPTXxzNZuw= From: Jacopo Mondi Date: Wed, 11 Nov 2026 17:48:53 +0100 Subject: [PATCH 3/5] ipa: rpi: pisp: Add Mira016 tuning file MIME-Version: 1.0 Message-Id: <20261111-b4-mira016-v1-3-340bdb923426@ideasonboard.com> References: <20261111-b4-mira016-v1-0-340bdb923426@ideasonboard.com> In-Reply-To: <20261111-b4-mira016-v1-0-340bdb923426@ideasonboard.com> To: Philippe Baetens , libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=52896; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=BOhSp5V+U7uvaSnzpRlUeCZ5TkpXsNb0TRy0mXF0sJY=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBq9JyDAUz+WTgKjD4b/nA2TghdWNvc5VWACCY1S Y3yq4Y+7xOJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCavScgwAKCRByNAaPFqFW PHzuD/9bMe75W5F2gNFYcDTzj9im3vzappvSkQiCZoPRqeTOQTkvT2s4TUIiwZG70FyoI5L1S2M THx6r3okldLgBz+FNapopg5GBhr05MdFV0RgoCDqYcYxq2E7ZDLx+0jlPFkBIlqI60jacZf282u WiEKfQdXs4V5E3EjrTS0k6Ua3G3ue2+jXtyeVmMvwhmfDMY9+JtXTDiBj4NHfmIj0yLjRXly2zt EUiTX3PmtzjRWSeAZBEyuWo4W0ejIhNiCV+HUlakLm4Ig0Nu/sz4gjZ3k1hrVWi1jqNGTOvgdV0 93FAl6AyY+Bu/EufWqYZmaS2TGRvikmkoX5G0W1KmefskYI7ULI/w03ni4awQlt32YANqLivVcS djpvUtAvFAnt1NXMh83h5dCftfLCV+4QpRS4xrVSQLproILq+V6SVB6PdDSSXfG7YHqdr+o23lE WMQZHokClkkDv1C1Bz3lXTCTP2tCgFjuAWRwg85tP2sgAgQrabWLGeLmOcpsoKwhfkrduQ6SnNk 2Hc9C91bY5rB01xq99Rj+FJkCv4025wcg9Ndy5CrmvBp3B3DGqG7ziQ/77f0Cfg+BkEryJcS3tV /iTNwZcvW2E4pIY8/ifEDUdZ/DQmsJwN2pwc2639TPM1nE5f+N6Nvnbg6V8kH2gYtZ8fxB2eGA6 KQBXxeQaQEPZXSg== X-Developer-Key: i=jacopo.mondi@ideasonboard.com; a=openpgp; fpr=72392EDC88144A65C701EA9BA5826A2587AD026B X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Add tuning file for the Mira016 RGB version to the RaspberryPi PiSP IPA. The tuning has been performed by the vendor and is upported from https://github.com/ams-OSRAM/libcamera.git at revision d7d5e17ec961 ("update json files so they are truly mono") Signed-off-by: Jacopo Mondi --- src/ipa/rpi/pisp/data/meson.build | 1 + src/ipa/rpi/pisp/data/mira016_mono.json | 480 ++++++++++++++++++++++++++++++++ 2 files changed, 481 insertions(+) diff --git a/src/ipa/rpi/pisp/data/meson.build b/src/ipa/rpi/pisp/data/meson.build index 15b80038b030..127a40ecb858 100644 --- a/src/ipa/rpi/pisp/data/meson.build +++ b/src/ipa/rpi/pisp/data/meson.build @@ -22,6 +22,7 @@ conf_files = files([ 'imx708_noir.json', 'imx708_wide.json', 'imx708_wide_noir.json', + 'mira016_mono.json', 'mira220.json', 'ov5647.json', 'ov5647_noir.json', diff --git a/src/ipa/rpi/pisp/data/mira016_mono.json b/src/ipa/rpi/pisp/data/mira016_mono.json new file mode 100644 index 000000000000..bb58c6b57c0a --- /dev/null +++ b/src/ipa/rpi/pisp/data/mira016_mono.json @@ -0,0 +1,480 @@ +{ + "version": 2.0, + "target": "pisp", + "algorithms": [ + { + "rpi.black_level": + { + "black_level": 2048 + } + }, + { + "rpi.dpc": { } + }, + { + "rpi.lux": + { + "reference_shutter_speed": 33316, + "reference_gain": 1.0, + "reference_aperture": 1.0, + "reference_lux": 530, + "reference_Y": 9873 + } + }, + { + "rpi.noise": + { + "reference_constant": 0, + "reference_slope": 2.671 + } + }, + { + "rpi.geq": + { + "offset": 215, + "slope": 0.01058 + } + }, + { + "rpi.denoise": + { + "normal": + { + "sdn": + { + "deviation": 1.6, + "strength": 0.5, + "deviation2": 3.2, + "deviation_no_tdn": 3.2, + "strength_no_tdn": 0.75 + }, + "cdn": + { + "deviation": 200, + "strength": 0.3 + }, + "tdn": + { + "deviation": 0.8, + "threshold": 0.05 + } + }, + "hdr": + { + "sdn": + { + "deviation": 1.6, + "strength": 0.5, + "deviation2": 3.2, + "deviation_no_tdn": 3.2, + "strength_no_tdn": 0.75 + }, + "cdn": + { + "deviation": 200, + "strength": 0.3 + }, + "tdn": + { + "deviation": 1.3, + "threshold": 0.1 + } + }, + "night": + { + "sdn": + { + "deviation": 1.6, + "strength": 0.5, + "deviation2": 3.2, + "deviation_no_tdn": 3.2, + "strength_no_tdn": 0.75 + }, + "cdn": + { + "deviation": 200, + "strength": 0.3 + }, + "tdn": + { + "deviation": 1.3, + "threshold": 0.1 + } + } + } + }, + { + "rpi.agc": + { + "metering_modes": + { + "centre-weighted": + { + "weights": + [ + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, + 0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, + 1, 1, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 1, 1, + 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1, + 1, 1, 2, 2, 3, 3, 3, 4, 3, 3, 3, 2, 2, 1, 1, + 1, 1, 2, 2, 3, 3, 4, 4, 4, 3, 3, 2, 2, 1, 1, + 1, 1, 2, 2, 3, 3, 3, 4, 3, 3, 3, 2, 2, 1, 1, + 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1, + 1, 1, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, + 0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 + ] + }, + "spot": + { + "weights": + [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 2, 3, 2, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + ] + }, + "matrix": + { + "weights": + [ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + ] + } + }, + "exposure_modes": + { + "normal": + { + "shutter": [ 100, 30000, 45000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 12.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 30000 ], + "gain": [ 1.0, 2.0, 4.0, 8.0, 16.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.5, + 1000, 0.5 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.5, + 1000, 0.5 + ] + }, + { + "bound": "UPPER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.8, + 1000, 0.8 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + } + }, + { + "rpi.alsc": + { + "omega": 1.3, + "n_iter": 100, + "luminance_strength": 0.5, + "calibrations_Cr": [ + { + "ct": 4000, + "table": + [ + 2.726, 2.731, 2.736, 2.736, 2.737, 2.738, 2.739, 2.74, 2.741, 2.741, 2.741, 2.741, 2.742, 2.742, 2.742, 2.742, 2.743, 2.743, 2.743, 2.743, 2.742, 2.742, 2.742, 2.742, 2.742, 2.742, 2.742, 2.742, 2.741, 2.741, 2.74, 2.739, + 2.727, 2.731, 2.736, 2.737, 2.738, 2.739, 2.74, 2.74, 2.741, 2.741, 2.742, 2.742, 2.743, 2.743, 2.743, 2.743, 2.744, 2.744, 2.744, 2.744, 2.743, 2.743, 2.743, 2.742, 2.742, 2.742, 2.742, 2.742, 2.742, 2.741, 2.741, 2.74, + 2.727, 2.732, 2.736, 2.737, 2.738, 2.739, 2.74, 2.741, 2.742, 2.742, 2.742, 2.743, 2.743, 2.744, 2.744, 2.744, 2.745, 2.745, 2.745, 2.745, 2.744, 2.744, 2.743, 2.743, 2.742, 2.742, 2.742, 2.742, 2.742, 2.742, 2.741, 2.74, + 2.728, 2.732, 2.736, 2.737, 2.739, 2.74, 2.741, 2.742, 2.742, 2.743, 2.743, 2.744, 2.744, 2.745, 2.745, 2.746, 2.746, 2.746, 2.746, 2.746, 2.746, 2.745, 2.744, 2.743, 2.743, 2.742, 2.742, 2.742, 2.742, 2.742, 2.742, 2.741, + 2.728, 2.732, 2.736, 2.738, 2.74, 2.741, 2.742, 2.743, 2.743, 2.744, 2.745, 2.745, 2.745, 2.746, 2.746, 2.747, 2.748, 2.748, 2.748, 2.748, 2.747, 2.746, 2.745, 2.744, 2.743, 2.743, 2.743, 2.742, 2.742, 2.742, 2.742, 2.742, + 2.729, 2.733, 2.737, 2.738, 2.74, 2.742, 2.743, 2.744, 2.745, 2.745, 2.746, 2.746, 2.747, 2.747, 2.748, 2.749, 2.749, 2.75, 2.75, 2.75, 2.749, 2.748, 2.746, 2.745, 2.744, 2.743, 2.743, 2.743, 2.743, 2.743, 2.743, 2.743, + 2.729, 2.733, 2.737, 2.739, 2.741, 2.743, 2.744, 2.745, 2.746, 2.747, 2.747, 2.748, 2.748, 2.749, 2.749, 2.75, 2.751, 2.751, 2.751, 2.751, 2.75, 2.749, 2.748, 2.746, 2.745, 2.744, 2.744, 2.743, 2.743, 2.743, 2.743, 2.743, + 2.729, 2.733, 2.737, 2.74, 2.742, 2.743, 2.745, 2.746, 2.747, 2.748, 2.748, 2.748, 2.749, 2.75, 2.75, 2.751, 2.752, 2.752, 2.752, 2.752, 2.751, 2.75, 2.749, 2.748, 2.746, 2.745, 2.744, 2.743, 2.743, 2.744, 2.744, 2.744, + 2.729, 2.733, 2.738, 2.74, 2.742, 2.744, 2.745, 2.747, 2.748, 2.749, 2.749, 2.749, 2.75, 2.751, 2.751, 2.752, 2.752, 2.753, 2.753, 2.752, 2.752, 2.751, 2.751, 2.75, 2.747, 2.745, 2.745, 2.744, 2.744, 2.744, 2.745, 2.746, + 2.729, 2.733, 2.738, 2.74, 2.742, 2.744, 2.746, 2.747, 2.749, 2.749, 2.749, 2.75, 2.751, 2.752, 2.752, 2.753, 2.753, 2.753, 2.753, 2.753, 2.753, 2.752, 2.751, 2.75, 2.748, 2.746, 2.745, 2.744, 2.744, 2.745, 2.746, 2.746, + 2.728, 2.733, 2.737, 2.74, 2.742, 2.744, 2.746, 2.747, 2.749, 2.749, 2.75, 2.751, 2.752, 2.753, 2.753, 2.754, 2.754, 2.754, 2.754, 2.754, 2.753, 2.753, 2.752, 2.75, 2.749, 2.747, 2.746, 2.745, 2.745, 2.746, 2.746, 2.747, + 2.728, 2.732, 2.737, 2.739, 2.742, 2.744, 2.746, 2.747, 2.749, 2.75, 2.751, 2.752, 2.753, 2.754, 2.754, 2.755, 2.754, 2.754, 2.755, 2.755, 2.754, 2.753, 2.752, 2.751, 2.749, 2.748, 2.747, 2.746, 2.746, 2.747, 2.747, 2.748, + 2.727, 2.732, 2.737, 2.739, 2.742, 2.744, 2.746, 2.747, 2.749, 2.75, 2.751, 2.752, 2.754, 2.754, 2.755, 2.755, 2.754, 2.754, 2.755, 2.755, 2.754, 2.754, 2.752, 2.751, 2.749, 2.748, 2.747, 2.747, 2.747, 2.747, 2.748, 2.748, + 2.726, 2.731, 2.737, 2.74, 2.742, 2.744, 2.746, 2.747, 2.749, 2.75, 2.751, 2.753, 2.754, 2.755, 2.755, 2.755, 2.755, 2.755, 2.755, 2.755, 2.754, 2.754, 2.752, 2.751, 2.75, 2.749, 2.748, 2.748, 2.748, 2.748, 2.748, 2.748, + 2.724, 2.731, 2.738, 2.74, 2.742, 2.744, 2.746, 2.747, 2.749, 2.75, 2.751, 2.753, 2.754, 2.755, 2.755, 2.755, 2.755, 2.755, 2.755, 2.755, 2.754, 2.754, 2.753, 2.752, 2.75, 2.749, 2.749, 2.749, 2.748, 2.748, 2.748, 2.748, + 2.725, 2.731, 2.738, 2.74, 2.741, 2.743, 2.745, 2.747, 2.749, 2.75, 2.752, 2.753, 2.754, 2.755, 2.755, 2.755, 2.755, 2.755, 2.755, 2.755, 2.754, 2.754, 2.753, 2.752, 2.75, 2.749, 2.749, 2.749, 2.748, 2.748, 2.748, 2.748, + 2.725, 2.731, 2.738, 2.74, 2.741, 2.743, 2.745, 2.747, 2.749, 2.75, 2.752, 2.753, 2.754, 2.755, 2.755, 2.755, 2.755, 2.755, 2.755, 2.755, 2.754, 2.754, 2.753, 2.752, 2.75, 2.749, 2.749, 2.748, 2.748, 2.748, 2.748, 2.748, + 2.726, 2.732, 2.738, 2.739, 2.741, 2.743, 2.745, 2.747, 2.748, 2.75, 2.752, 2.753, 2.754, 2.754, 2.755, 2.755, 2.755, 2.755, 2.755, 2.755, 2.754, 2.754, 2.753, 2.752, 2.751, 2.749, 2.748, 2.748, 2.748, 2.748, 2.748, 2.748, + 2.726, 2.732, 2.738, 2.739, 2.741, 2.743, 2.745, 2.746, 2.747, 2.75, 2.752, 2.753, 2.753, 2.754, 2.754, 2.754, 2.754, 2.754, 2.754, 2.754, 2.754, 2.754, 2.753, 2.752, 2.75, 2.749, 2.748, 2.748, 2.748, 2.747, 2.747, 2.747, + 2.726, 2.732, 2.738, 2.739, 2.741, 2.743, 2.745, 2.746, 2.747, 2.749, 2.751, 2.753, 2.753, 2.753, 2.753, 2.754, 2.754, 2.754, 2.754, 2.754, 2.754, 2.754, 2.752, 2.751, 2.75, 2.748, 2.748, 2.748, 2.747, 2.746, 2.746, 2.746, + 2.726, 2.732, 2.737, 2.739, 2.741, 2.742, 2.744, 2.745, 2.746, 2.748, 2.751, 2.752, 2.753, 2.753, 2.753, 2.753, 2.753, 2.753, 2.753, 2.753, 2.753, 2.753, 2.752, 2.75, 2.749, 2.748, 2.748, 2.748, 2.747, 2.746, 2.745, 2.745, + 2.726, 2.731, 2.737, 2.738, 2.739, 2.741, 2.743, 2.744, 2.745, 2.747, 2.75, 2.751, 2.752, 2.753, 2.753, 2.753, 2.753, 2.753, 2.753, 2.753, 2.753, 2.752, 2.751, 2.75, 2.749, 2.747, 2.747, 2.747, 2.746, 2.745, 2.744, 2.744, + 2.726, 2.731, 2.736, 2.737, 2.738, 2.74, 2.742, 2.744, 2.745, 2.747, 2.749, 2.75, 2.752, 2.752, 2.753, 2.753, 2.752, 2.752, 2.752, 2.752, 2.752, 2.751, 2.75, 2.749, 2.748, 2.747, 2.746, 2.746, 2.745, 2.744, 2.743, 2.743, + 2.726, 2.73, 2.735, 2.736, 2.738, 2.739, 2.741, 2.743, 2.744, 2.746, 2.748, 2.749, 2.751, 2.752, 2.752, 2.752, 2.752, 2.751, 2.751, 2.751, 2.751, 2.75, 2.749, 2.748, 2.747, 2.746, 2.745, 2.745, 2.744, 2.744, 2.743, 2.742, + 2.725, 2.73, 2.734, 2.736, 2.737, 2.738, 2.74, 2.742, 2.743, 2.745, 2.746, 2.748, 2.749, 2.75, 2.751, 2.751, 2.751, 2.75, 2.75, 2.75, 2.75, 2.749, 2.748, 2.748, 2.746, 2.745, 2.745, 2.744, 2.743, 2.743, 2.742, 2.741, + 2.724, 2.729, 2.733, 2.735, 2.736, 2.738, 2.739, 2.741, 2.742, 2.743, 2.745, 2.746, 2.748, 2.749, 2.749, 2.749, 2.749, 2.749, 2.749, 2.748, 2.748, 2.748, 2.748, 2.747, 2.745, 2.744, 2.744, 2.743, 2.743, 2.742, 2.742, 2.741, + 2.724, 2.727, 2.731, 2.733, 2.735, 2.736, 2.738, 2.739, 2.741, 2.742, 2.744, 2.745, 2.746, 2.747, 2.748, 2.748, 2.748, 2.748, 2.747, 2.747, 2.747, 2.747, 2.746, 2.746, 2.744, 2.743, 2.743, 2.742, 2.742, 2.741, 2.741, 2.74, + 2.723, 2.726, 2.729, 2.731, 2.734, 2.735, 2.736, 2.738, 2.739, 2.74, 2.742, 2.743, 2.745, 2.745, 2.746, 2.746, 2.746, 2.746, 2.746, 2.746, 2.746, 2.745, 2.745, 2.744, 2.743, 2.742, 2.742, 2.742, 2.741, 2.74, 2.739, 2.739, + 2.722, 2.724, 2.726, 2.729, 2.733, 2.734, 2.735, 2.736, 2.737, 2.739, 2.741, 2.742, 2.743, 2.744, 2.744, 2.744, 2.744, 2.744, 2.744, 2.744, 2.744, 2.744, 2.743, 2.742, 2.742, 2.741, 2.741, 2.741, 2.74, 2.739, 2.738, 2.737, + 2.721, 2.723, 2.725, 2.728, 2.731, 2.732, 2.733, 2.734, 2.735, 2.736, 2.738, 2.739, 2.74, 2.741, 2.741, 2.741, 2.741, 2.741, 2.741, 2.741, 2.741, 2.741, 2.74, 2.74, 2.739, 2.739, 2.739, 2.738, 2.738, 2.737, 2.736, 2.736, + 2.72, 2.722, 2.723, 2.726, 2.729, 2.73, 2.731, 2.732, 2.733, 2.734, 2.735, 2.736, 2.737, 2.737, 2.737, 2.738, 2.738, 2.738, 2.738, 2.738, 2.738, 2.738, 2.737, 2.737, 2.736, 2.736, 2.735, 2.735, 2.735, 2.734, 2.734, 2.734, + 2.719, 2.72, 2.722, 2.724, 2.727, 2.728, 2.729, 2.73, 2.731, 2.731, 2.732, 2.733, 2.734, 2.734, 2.734, 2.734, 2.735, 2.735, 2.735, 2.735, 2.735, 2.735, 2.734, 2.734, 2.733, 2.733, 2.732, 2.732, 2.732, 2.732, 2.732, 2.732 + ] + }, + { + "ct": 6000, + "table": + [ + 3.507, 3.514, 3.522, 3.523, 3.525, 3.526, 3.527, 3.529, 3.53, 3.532, 3.533, 3.533, 3.534, 3.534, 3.535, 3.535, 3.535, 3.535, 3.536, 3.536, 3.536, 3.536, 3.537, 3.537, 3.537, 3.537, 3.538, 3.538, 3.537, 3.537, 3.536, 3.536, + 3.508, 3.515, 3.522, 3.524, 3.526, 3.527, 3.529, 3.53, 3.531, 3.532, 3.533, 3.534, 3.535, 3.535, 3.536, 3.536, 3.536, 3.536, 3.537, 3.538, 3.537, 3.537, 3.537, 3.538, 3.538, 3.538, 3.538, 3.538, 3.538, 3.537, 3.537, 3.537, + 3.51, 3.516, 3.523, 3.525, 3.527, 3.529, 3.53, 3.531, 3.532, 3.533, 3.534, 3.535, 3.536, 3.536, 3.537, 3.537, 3.537, 3.538, 3.539, 3.539, 3.539, 3.538, 3.538, 3.538, 3.538, 3.538, 3.539, 3.539, 3.538, 3.538, 3.538, 3.537, + 3.511, 3.517, 3.524, 3.526, 3.528, 3.53, 3.532, 3.533, 3.533, 3.534, 3.535, 3.536, 3.537, 3.538, 3.538, 3.539, 3.539, 3.539, 3.541, 3.541, 3.54, 3.539, 3.539, 3.539, 3.539, 3.539, 3.539, 3.539, 3.539, 3.538, 3.538, 3.538, + 3.512, 3.519, 3.525, 3.527, 3.529, 3.531, 3.533, 3.534, 3.535, 3.536, 3.537, 3.538, 3.539, 3.54, 3.541, 3.542, 3.542, 3.543, 3.544, 3.545, 3.543, 3.542, 3.541, 3.541, 3.54, 3.54, 3.54, 3.54, 3.54, 3.539, 3.539, 3.539, + 3.513, 3.52, 3.527, 3.529, 3.531, 3.532, 3.534, 3.535, 3.537, 3.538, 3.54, 3.541, 3.541, 3.542, 3.544, 3.545, 3.545, 3.546, 3.548, 3.548, 3.546, 3.545, 3.543, 3.542, 3.541, 3.541, 3.541, 3.541, 3.54, 3.54, 3.54, 3.54, + 3.513, 3.52, 3.528, 3.53, 3.532, 3.534, 3.535, 3.537, 3.538, 3.54, 3.542, 3.543, 3.543, 3.545, 3.546, 3.547, 3.548, 3.549, 3.55, 3.551, 3.549, 3.547, 3.545, 3.543, 3.542, 3.541, 3.541, 3.541, 3.541, 3.541, 3.541, 3.542, + 3.513, 3.52, 3.528, 3.53, 3.532, 3.534, 3.537, 3.538, 3.54, 3.542, 3.543, 3.544, 3.545, 3.546, 3.548, 3.549, 3.55, 3.551, 3.552, 3.551, 3.55, 3.549, 3.547, 3.545, 3.543, 3.542, 3.542, 3.541, 3.541, 3.542, 3.542, 3.543, + 3.513, 3.52, 3.528, 3.53, 3.533, 3.535, 3.538, 3.54, 3.542, 3.544, 3.545, 3.546, 3.547, 3.548, 3.55, 3.551, 3.552, 3.552, 3.553, 3.552, 3.552, 3.551, 3.549, 3.547, 3.544, 3.543, 3.542, 3.542, 3.542, 3.542, 3.543, 3.544, + 3.513, 3.52, 3.528, 3.53, 3.533, 3.536, 3.539, 3.541, 3.544, 3.545, 3.546, 3.547, 3.548, 3.55, 3.551, 3.552, 3.553, 3.553, 3.553, 3.553, 3.553, 3.552, 3.55, 3.548, 3.545, 3.543, 3.543, 3.542, 3.543, 3.543, 3.544, 3.546, + 3.513, 3.52, 3.528, 3.531, 3.533, 3.536, 3.539, 3.542, 3.545, 3.546, 3.547, 3.548, 3.55, 3.551, 3.552, 3.553, 3.553, 3.554, 3.554, 3.553, 3.553, 3.552, 3.55, 3.548, 3.546, 3.544, 3.544, 3.543, 3.544, 3.545, 3.546, 3.547, + 3.513, 3.52, 3.528, 3.531, 3.534, 3.537, 3.54, 3.543, 3.546, 3.547, 3.548, 3.55, 3.551, 3.552, 3.553, 3.553, 3.554, 3.554, 3.554, 3.554, 3.553, 3.552, 3.55, 3.548, 3.547, 3.546, 3.545, 3.544, 3.545, 3.547, 3.548, 3.549, + 3.512, 3.52, 3.527, 3.531, 3.533, 3.537, 3.54, 3.543, 3.546, 3.548, 3.549, 3.55, 3.552, 3.553, 3.553, 3.554, 3.554, 3.554, 3.554, 3.554, 3.554, 3.553, 3.551, 3.549, 3.548, 3.546, 3.546, 3.545, 3.546, 3.548, 3.549, 3.55, + 3.51, 3.519, 3.527, 3.53, 3.533, 3.537, 3.54, 3.544, 3.547, 3.549, 3.55, 3.551, 3.552, 3.553, 3.553, 3.554, 3.554, 3.555, 3.555, 3.555, 3.554, 3.554, 3.552, 3.55, 3.548, 3.547, 3.546, 3.546, 3.547, 3.548, 3.549, 3.55, + 3.508, 3.518, 3.527, 3.53, 3.533, 3.536, 3.54, 3.544, 3.547, 3.549, 3.55, 3.552, 3.553, 3.553, 3.554, 3.554, 3.555, 3.555, 3.555, 3.555, 3.555, 3.554, 3.552, 3.551, 3.549, 3.548, 3.547, 3.547, 3.548, 3.549, 3.55, 3.551, + 3.509, 3.518, 3.528, 3.531, 3.533, 3.537, 3.54, 3.544, 3.547, 3.549, 3.551, 3.552, 3.553, 3.553, 3.554, 3.554, 3.555, 3.555, 3.555, 3.555, 3.555, 3.555, 3.553, 3.551, 3.55, 3.548, 3.548, 3.547, 3.548, 3.549, 3.549, 3.55, + 3.51, 3.519, 3.528, 3.531, 3.533, 3.537, 3.54, 3.544, 3.547, 3.549, 3.551, 3.552, 3.553, 3.553, 3.554, 3.555, 3.555, 3.555, 3.555, 3.555, 3.555, 3.555, 3.554, 3.552, 3.55, 3.549, 3.548, 3.548, 3.548, 3.548, 3.549, 3.549, + 3.511, 3.52, 3.528, 3.531, 3.534, 3.537, 3.54, 3.544, 3.547, 3.549, 3.55, 3.552, 3.553, 3.554, 3.555, 3.555, 3.555, 3.555, 3.555, 3.555, 3.556, 3.556, 3.555, 3.553, 3.551, 3.549, 3.548, 3.548, 3.548, 3.548, 3.548, 3.548, + 3.511, 3.52, 3.528, 3.531, 3.533, 3.536, 3.54, 3.543, 3.546, 3.548, 3.55, 3.551, 3.552, 3.553, 3.554, 3.555, 3.555, 3.555, 3.555, 3.555, 3.555, 3.555, 3.554, 3.553, 3.551, 3.549, 3.548, 3.548, 3.548, 3.548, 3.548, 3.548, + 3.511, 3.519, 3.528, 3.531, 3.533, 3.536, 3.539, 3.542, 3.546, 3.548, 3.549, 3.551, 3.552, 3.553, 3.554, 3.554, 3.554, 3.554, 3.554, 3.554, 3.554, 3.554, 3.554, 3.553, 3.551, 3.549, 3.548, 3.547, 3.547, 3.547, 3.547, 3.547, + 3.511, 3.519, 3.527, 3.53, 3.533, 3.535, 3.538, 3.541, 3.545, 3.547, 3.548, 3.55, 3.552, 3.553, 3.554, 3.554, 3.554, 3.554, 3.554, 3.554, 3.554, 3.554, 3.553, 3.552, 3.55, 3.549, 3.548, 3.547, 3.547, 3.547, 3.547, 3.547, + 3.511, 3.519, 3.527, 3.53, 3.533, 3.535, 3.537, 3.54, 3.543, 3.545, 3.547, 3.549, 3.551, 3.553, 3.553, 3.554, 3.554, 3.553, 3.553, 3.553, 3.553, 3.553, 3.552, 3.552, 3.55, 3.548, 3.547, 3.546, 3.545, 3.545, 3.545, 3.545, + 3.511, 3.519, 3.527, 3.53, 3.533, 3.535, 3.536, 3.539, 3.541, 3.544, 3.547, 3.549, 3.551, 3.552, 3.553, 3.553, 3.553, 3.553, 3.553, 3.552, 3.552, 3.552, 3.551, 3.551, 3.549, 3.548, 3.546, 3.544, 3.544, 3.543, 3.543, 3.544, + 3.51, 3.518, 3.526, 3.529, 3.532, 3.534, 3.535, 3.537, 3.54, 3.542, 3.545, 3.547, 3.549, 3.551, 3.552, 3.552, 3.552, 3.552, 3.552, 3.551, 3.551, 3.55, 3.55, 3.55, 3.548, 3.547, 3.545, 3.543, 3.543, 3.542, 3.542, 3.543, + 3.509, 3.517, 3.524, 3.527, 3.53, 3.532, 3.534, 3.536, 3.539, 3.541, 3.543, 3.545, 3.548, 3.549, 3.55, 3.551, 3.551, 3.551, 3.55, 3.55, 3.55, 3.549, 3.549, 3.548, 3.546, 3.545, 3.543, 3.542, 3.542, 3.541, 3.542, 3.542, + 3.508, 3.515, 3.523, 3.526, 3.528, 3.531, 3.533, 3.535, 3.538, 3.54, 3.541, 3.543, 3.546, 3.547, 3.548, 3.549, 3.549, 3.549, 3.549, 3.548, 3.548, 3.548, 3.547, 3.546, 3.544, 3.543, 3.542, 3.541, 3.541, 3.541, 3.541, 3.541, + 3.507, 3.514, 3.521, 3.524, 3.526, 3.529, 3.531, 3.534, 3.536, 3.538, 3.54, 3.541, 3.543, 3.545, 3.546, 3.547, 3.548, 3.548, 3.547, 3.547, 3.547, 3.546, 3.546, 3.544, 3.542, 3.541, 3.54, 3.54, 3.54, 3.54, 3.54, 3.54, + 3.506, 3.512, 3.517, 3.521, 3.525, 3.527, 3.529, 3.531, 3.534, 3.536, 3.538, 3.54, 3.541, 3.543, 3.545, 3.546, 3.546, 3.546, 3.546, 3.545, 3.545, 3.544, 3.544, 3.543, 3.541, 3.539, 3.539, 3.539, 3.538, 3.538, 3.538, 3.538, + 3.505, 3.51, 3.514, 3.519, 3.523, 3.525, 3.527, 3.529, 3.532, 3.534, 3.536, 3.538, 3.538, 3.54, 3.543, 3.544, 3.544, 3.544, 3.544, 3.544, 3.543, 3.542, 3.542, 3.541, 3.539, 3.537, 3.537, 3.537, 3.537, 3.536, 3.536, 3.535, + 3.504, 3.508, 3.512, 3.516, 3.52, 3.522, 3.524, 3.526, 3.528, 3.53, 3.532, 3.533, 3.534, 3.535, 3.537, 3.539, 3.539, 3.539, 3.539, 3.539, 3.538, 3.537, 3.537, 3.536, 3.535, 3.533, 3.534, 3.534, 3.534, 3.533, 3.533, 3.533, + 3.504, 3.507, 3.51, 3.514, 3.517, 3.52, 3.521, 3.523, 3.525, 3.526, 3.527, 3.528, 3.529, 3.53, 3.531, 3.532, 3.532, 3.532, 3.532, 3.532, 3.532, 3.532, 3.532, 3.531, 3.53, 3.529, 3.529, 3.53, 3.53, 3.53, 3.53, 3.53, + 3.503, 3.505, 3.508, 3.511, 3.515, 3.517, 3.519, 3.52, 3.521, 3.522, 3.523, 3.523, 3.524, 3.524, 3.525, 3.525, 3.526, 3.526, 3.526, 3.526, 3.527, 3.527, 3.526, 3.526, 3.525, 3.524, 3.525, 3.526, 3.527, 3.527, 3.527, 3.527 + ] + } + ], + "calibrations_Cb": [ + { + "ct": 4000, + "table": + [ + 2.032, 2.034, 2.037, 2.038, 2.039, 2.04, 2.041, 2.041, 2.041, 2.041, 2.042, 2.042, 2.043, 2.043, 2.044, 2.044, 2.045, 2.045, 2.045, 2.045, 2.044, 2.044, 2.043, 2.043, 2.042, 2.042, 2.041, 2.041, 2.041, 2.041, 2.037, 2.034, + 2.032, 2.034, 2.036, 2.038, 2.039, 2.04, 2.041, 2.041, 2.041, 2.042, 2.042, 2.042, 2.043, 2.043, 2.044, 2.044, 2.045, 2.045, 2.045, 2.045, 2.045, 2.044, 2.044, 2.043, 2.043, 2.042, 2.041, 2.041, 2.041, 2.04, 2.037, 2.034, + 2.032, 2.034, 2.036, 2.038, 2.039, 2.04, 2.041, 2.041, 2.042, 2.042, 2.042, 2.042, 2.043, 2.043, 2.044, 2.044, 2.045, 2.045, 2.046, 2.046, 2.045, 2.045, 2.044, 2.043, 2.043, 2.042, 2.041, 2.041, 2.04, 2.039, 2.037, 2.035, + 2.032, 2.034, 2.036, 2.037, 2.039, 2.04, 2.041, 2.041, 2.042, 2.042, 2.042, 2.042, 2.043, 2.043, 2.044, 2.044, 2.045, 2.045, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.043, 2.042, 2.041, 2.041, 2.04, 2.039, 2.037, 2.035, + 2.032, 2.034, 2.036, 2.037, 2.038, 2.04, 2.041, 2.042, 2.042, 2.043, 2.043, 2.043, 2.043, 2.044, 2.044, 2.045, 2.045, 2.046, 2.046, 2.046, 2.046, 2.046, 2.045, 2.044, 2.043, 2.042, 2.042, 2.041, 2.041, 2.04, 2.038, 2.036, + 2.032, 2.034, 2.036, 2.037, 2.038, 2.039, 2.041, 2.042, 2.043, 2.043, 2.043, 2.044, 2.044, 2.044, 2.045, 2.045, 2.046, 2.046, 2.046, 2.047, 2.047, 2.046, 2.045, 2.045, 2.044, 2.043, 2.042, 2.042, 2.041, 2.04, 2.038, 2.037, + 2.032, 2.034, 2.036, 2.037, 2.038, 2.039, 2.041, 2.042, 2.043, 2.043, 2.044, 2.044, 2.044, 2.044, 2.045, 2.045, 2.046, 2.046, 2.047, 2.047, 2.047, 2.047, 2.046, 2.045, 2.044, 2.043, 2.043, 2.042, 2.042, 2.041, 2.039, 2.037, + 2.032, 2.034, 2.035, 2.037, 2.038, 2.04, 2.041, 2.042, 2.043, 2.043, 2.044, 2.044, 2.044, 2.045, 2.045, 2.046, 2.047, 2.047, 2.047, 2.047, 2.047, 2.047, 2.046, 2.045, 2.045, 2.044, 2.043, 2.043, 2.042, 2.041, 2.04, 2.038, + 2.032, 2.034, 2.035, 2.037, 2.039, 2.04, 2.042, 2.042, 2.043, 2.043, 2.044, 2.044, 2.045, 2.045, 2.046, 2.046, 2.047, 2.048, 2.048, 2.048, 2.047, 2.047, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.043, 2.042, 2.04, 2.039, + 2.032, 2.033, 2.035, 2.037, 2.038, 2.04, 2.041, 2.042, 2.043, 2.043, 2.044, 2.044, 2.045, 2.045, 2.046, 2.046, 2.047, 2.048, 2.048, 2.048, 2.047, 2.047, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.043, 2.042, 2.041, 2.039, + 2.031, 2.033, 2.034, 2.036, 2.038, 2.039, 2.04, 2.041, 2.043, 2.044, 2.044, 2.045, 2.045, 2.045, 2.046, 2.046, 2.047, 2.047, 2.047, 2.047, 2.047, 2.047, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.043, 2.042, 2.041, 2.039, + 2.031, 2.033, 2.034, 2.035, 2.037, 2.038, 2.039, 2.041, 2.043, 2.044, 2.045, 2.045, 2.045, 2.045, 2.046, 2.046, 2.047, 2.047, 2.047, 2.047, 2.047, 2.047, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.043, 2.043, 2.041, 2.039, + 2.03, 2.032, 2.034, 2.035, 2.037, 2.038, 2.039, 2.04, 2.042, 2.043, 2.044, 2.045, 2.045, 2.045, 2.046, 2.046, 2.047, 2.047, 2.047, 2.047, 2.047, 2.047, 2.046, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.043, 2.041, 2.04, + 2.03, 2.032, 2.033, 2.035, 2.036, 2.037, 2.039, 2.04, 2.042, 2.043, 2.044, 2.044, 2.045, 2.045, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.042, 2.04, + 2.029, 2.031, 2.033, 2.034, 2.036, 2.037, 2.039, 2.04, 2.042, 2.042, 2.043, 2.044, 2.045, 2.045, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.042, 2.041, + 2.029, 2.031, 2.033, 2.034, 2.035, 2.037, 2.039, 2.04, 2.041, 2.042, 2.043, 2.044, 2.044, 2.045, 2.045, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.042, 2.04, + 2.028, 2.03, 2.032, 2.034, 2.035, 2.037, 2.039, 2.04, 2.041, 2.042, 2.043, 2.043, 2.044, 2.045, 2.045, 2.045, 2.045, 2.045, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.042, 2.04, + 2.028, 2.03, 2.032, 2.033, 2.035, 2.037, 2.039, 2.04, 2.041, 2.042, 2.043, 2.043, 2.044, 2.044, 2.045, 2.045, 2.045, 2.045, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.041, 2.039, + 2.028, 2.03, 2.032, 2.033, 2.035, 2.037, 2.038, 2.039, 2.04, 2.041, 2.042, 2.043, 2.044, 2.044, 2.044, 2.045, 2.045, 2.045, 2.045, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.041, 2.039, + 2.027, 2.03, 2.032, 2.033, 2.035, 2.036, 2.038, 2.039, 2.039, 2.04, 2.041, 2.042, 2.044, 2.044, 2.044, 2.044, 2.044, 2.044, 2.045, 2.045, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.041, 2.039, + 2.027, 2.029, 2.032, 2.033, 2.035, 2.036, 2.037, 2.038, 2.039, 2.04, 2.04, 2.042, 2.043, 2.044, 2.044, 2.044, 2.044, 2.044, 2.045, 2.045, 2.046, 2.046, 2.046, 2.046, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.041, 2.039, + 2.027, 2.029, 2.031, 2.033, 2.034, 2.035, 2.036, 2.037, 2.038, 2.039, 2.04, 2.041, 2.043, 2.043, 2.043, 2.044, 2.044, 2.044, 2.045, 2.045, 2.045, 2.046, 2.046, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.043, 2.041, 2.039, + 2.027, 2.029, 2.031, 2.033, 2.034, 2.035, 2.035, 2.036, 2.037, 2.038, 2.039, 2.04, 2.042, 2.043, 2.043, 2.043, 2.044, 2.044, 2.045, 2.045, 2.045, 2.045, 2.046, 2.046, 2.046, 2.045, 2.045, 2.044, 2.044, 2.043, 2.041, 2.038, + 2.027, 2.029, 2.03, 2.032, 2.033, 2.034, 2.035, 2.036, 2.037, 2.037, 2.038, 2.04, 2.041, 2.042, 2.043, 2.043, 2.044, 2.044, 2.045, 2.045, 2.045, 2.045, 2.045, 2.046, 2.045, 2.045, 2.044, 2.044, 2.043, 2.043, 2.04, 2.038, + 2.026, 2.028, 2.029, 2.031, 2.033, 2.034, 2.034, 2.035, 2.036, 2.037, 2.038, 2.039, 2.041, 2.042, 2.042, 2.043, 2.043, 2.044, 2.044, 2.044, 2.044, 2.045, 2.045, 2.045, 2.045, 2.044, 2.044, 2.043, 2.043, 2.042, 2.039, 2.037, + 2.025, 2.027, 2.028, 2.03, 2.032, 2.033, 2.034, 2.035, 2.036, 2.037, 2.037, 2.039, 2.04, 2.041, 2.042, 2.042, 2.043, 2.043, 2.044, 2.044, 2.044, 2.044, 2.044, 2.044, 2.044, 2.044, 2.044, 2.043, 2.042, 2.041, 2.039, 2.036, + 2.025, 2.026, 2.027, 2.029, 2.031, 2.032, 2.033, 2.034, 2.035, 2.036, 2.037, 2.038, 2.04, 2.041, 2.041, 2.042, 2.042, 2.043, 2.043, 2.044, 2.044, 2.044, 2.044, 2.044, 2.043, 2.043, 2.043, 2.042, 2.041, 2.04, 2.038, 2.036, + 2.024, 2.026, 2.027, 2.028, 2.03, 2.031, 2.033, 2.034, 2.035, 2.035, 2.036, 2.037, 2.039, 2.04, 2.041, 2.042, 2.042, 2.042, 2.043, 2.043, 2.043, 2.043, 2.043, 2.043, 2.042, 2.042, 2.042, 2.042, 2.04, 2.039, 2.037, 2.036, + 2.024, 2.025, 2.026, 2.028, 2.029, 2.03, 2.032, 2.033, 2.034, 2.035, 2.036, 2.037, 2.038, 2.039, 2.04, 2.041, 2.041, 2.041, 2.042, 2.042, 2.043, 2.043, 2.042, 2.042, 2.042, 2.041, 2.041, 2.041, 2.039, 2.037, 2.037, 2.036, + 2.023, 2.024, 2.025, 2.027, 2.028, 2.03, 2.031, 2.032, 2.033, 2.034, 2.035, 2.036, 2.037, 2.038, 2.04, 2.04, 2.04, 2.041, 2.041, 2.041, 2.042, 2.042, 2.042, 2.041, 2.041, 2.04, 2.04, 2.04, 2.038, 2.037, 2.036, 2.035, + 2.023, 2.024, 2.025, 2.026, 2.028, 2.029, 2.03, 2.031, 2.032, 2.033, 2.034, 2.035, 2.036, 2.038, 2.039, 2.04, 2.04, 2.04, 2.04, 2.04, 2.041, 2.041, 2.041, 2.04, 2.04, 2.04, 2.039, 2.039, 2.038, 2.036, 2.036, 2.035, + 2.022, 2.023, 2.024, 2.025, 2.027, 2.028, 2.029, 2.03, 2.032, 2.033, 2.034, 2.035, 2.036, 2.037, 2.038, 2.039, 2.039, 2.039, 2.039, 2.039, 2.04, 2.041, 2.04, 2.039, 2.039, 2.039, 2.038, 2.038, 2.037, 2.036, 2.035, 2.034 + ] + }, + { + "ct": 6000, + "table": + [ + 1.585, 1.586, 1.587, 1.588, 1.589, 1.589, 1.589, 1.589, 1.589, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.589, 1.589, 1.588, 1.588, 1.588, 1.588, 1.587, 1.587, 1.584, 1.581, + 1.585, 1.586, 1.587, 1.588, 1.589, 1.589, 1.589, 1.589, 1.59, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.59, 1.589, 1.589, 1.588, 1.588, 1.588, 1.588, 1.587, 1.587, 1.584, 1.581, + 1.585, 1.586, 1.587, 1.588, 1.588, 1.589, 1.589, 1.59, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.59, 1.589, 1.588, 1.588, 1.588, 1.588, 1.587, 1.587, 1.584, 1.582, + 1.585, 1.586, 1.587, 1.587, 1.588, 1.588, 1.589, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.588, 1.588, 1.588, 1.588, 1.587, 1.587, 1.584, 1.582, + 1.585, 1.586, 1.587, 1.587, 1.588, 1.588, 1.589, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.59, 1.589, 1.588, 1.588, 1.588, 1.587, 1.587, 1.585, 1.583, + 1.585, 1.586, 1.586, 1.587, 1.588, 1.588, 1.589, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.592, 1.592, 1.592, 1.592, 1.591, 1.591, 1.591, 1.59, 1.589, 1.589, 1.588, 1.588, 1.587, 1.587, 1.585, 1.584, + 1.585, 1.585, 1.586, 1.587, 1.588, 1.588, 1.589, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.592, 1.592, 1.592, 1.592, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.588, 1.588, 1.588, 1.587, 1.586, 1.584, + 1.585, 1.585, 1.586, 1.587, 1.588, 1.588, 1.589, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.591, 1.591, 1.591, 1.59, 1.589, 1.589, 1.588, 1.588, 1.587, 1.586, 1.585, + 1.585, 1.585, 1.586, 1.587, 1.588, 1.588, 1.589, 1.59, 1.591, 1.591, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.593, 1.593, 1.593, 1.593, 1.592, 1.592, 1.591, 1.591, 1.59, 1.589, 1.589, 1.589, 1.588, 1.588, 1.587, 1.586, + 1.585, 1.585, 1.586, 1.587, 1.588, 1.588, 1.589, 1.59, 1.591, 1.591, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.593, 1.593, 1.593, 1.593, 1.592, 1.592, 1.591, 1.591, 1.59, 1.589, 1.589, 1.589, 1.589, 1.588, 1.587, 1.586, + 1.584, 1.585, 1.586, 1.587, 1.587, 1.588, 1.589, 1.59, 1.591, 1.591, 1.591, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.591, 1.591, 1.591, 1.59, 1.59, 1.589, 1.589, 1.589, 1.588, 1.587, 1.586, + 1.584, 1.585, 1.586, 1.586, 1.587, 1.588, 1.589, 1.59, 1.591, 1.591, 1.591, 1.591, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.589, 1.589, 1.587, 1.586, + 1.584, 1.585, 1.586, 1.586, 1.587, 1.588, 1.589, 1.589, 1.59, 1.591, 1.591, 1.591, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.589, 1.589, 1.587, 1.586, + 1.583, 1.584, 1.585, 1.586, 1.587, 1.588, 1.588, 1.589, 1.59, 1.59, 1.591, 1.591, 1.591, 1.592, 1.592, 1.592, 1.592, 1.592, 1.592, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.59, 1.589, 1.587, 1.586, + 1.583, 1.584, 1.585, 1.586, 1.587, 1.587, 1.588, 1.588, 1.589, 1.59, 1.591, 1.591, 1.591, 1.591, 1.592, 1.592, 1.592, 1.592, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.587, 1.586, + 1.583, 1.584, 1.585, 1.586, 1.587, 1.587, 1.588, 1.588, 1.589, 1.589, 1.59, 1.591, 1.591, 1.591, 1.592, 1.592, 1.592, 1.592, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.587, 1.586, + 1.583, 1.584, 1.584, 1.585, 1.586, 1.587, 1.588, 1.588, 1.589, 1.589, 1.59, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.587, 1.585, + 1.583, 1.583, 1.584, 1.585, 1.586, 1.587, 1.588, 1.588, 1.589, 1.589, 1.589, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.587, 1.585, + 1.582, 1.583, 1.584, 1.585, 1.586, 1.587, 1.587, 1.588, 1.588, 1.589, 1.589, 1.589, 1.59, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.59, 1.589, 1.587, 1.585, + 1.582, 1.583, 1.584, 1.585, 1.586, 1.587, 1.587, 1.588, 1.588, 1.588, 1.588, 1.589, 1.589, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.589, 1.589, 1.587, 1.585, + 1.581, 1.582, 1.584, 1.585, 1.586, 1.586, 1.587, 1.587, 1.588, 1.588, 1.588, 1.588, 1.589, 1.59, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.589, 1.589, 1.587, 1.585, + 1.581, 1.582, 1.583, 1.584, 1.585, 1.586, 1.586, 1.587, 1.587, 1.588, 1.588, 1.588, 1.589, 1.589, 1.59, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.589, 1.589, 1.587, 1.585, + 1.581, 1.582, 1.583, 1.584, 1.584, 1.585, 1.586, 1.587, 1.587, 1.587, 1.588, 1.588, 1.589, 1.589, 1.589, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.589, 1.589, 1.587, 1.585, + 1.581, 1.582, 1.583, 1.583, 1.584, 1.585, 1.585, 1.586, 1.587, 1.587, 1.588, 1.588, 1.589, 1.589, 1.589, 1.589, 1.59, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.591, 1.59, 1.589, 1.589, 1.589, 1.587, 1.585, + 1.58, 1.581, 1.582, 1.583, 1.583, 1.584, 1.585, 1.586, 1.586, 1.587, 1.587, 1.587, 1.588, 1.589, 1.589, 1.589, 1.59, 1.59, 1.59, 1.59, 1.59, 1.59, 1.59, 1.59, 1.59, 1.59, 1.589, 1.589, 1.588, 1.588, 1.586, 1.584, + 1.579, 1.58, 1.581, 1.582, 1.583, 1.584, 1.584, 1.585, 1.586, 1.586, 1.586, 1.587, 1.588, 1.588, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.588, 1.587, 1.586, 1.584, + 1.579, 1.58, 1.58, 1.581, 1.582, 1.583, 1.584, 1.584, 1.585, 1.586, 1.586, 1.586, 1.587, 1.588, 1.588, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.589, 1.588, 1.587, 1.586, 1.585, 1.584, + 1.578, 1.579, 1.58, 1.581, 1.582, 1.583, 1.583, 1.584, 1.585, 1.585, 1.585, 1.586, 1.587, 1.587, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.587, 1.586, 1.585, 1.583, + 1.578, 1.579, 1.579, 1.58, 1.581, 1.582, 1.583, 1.583, 1.584, 1.584, 1.585, 1.585, 1.586, 1.586, 1.587, 1.587, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.587, 1.586, 1.585, 1.584, 1.583, + 1.578, 1.578, 1.579, 1.579, 1.58, 1.581, 1.582, 1.583, 1.584, 1.584, 1.585, 1.585, 1.586, 1.586, 1.586, 1.587, 1.587, 1.587, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.588, 1.587, 1.587, 1.587, 1.586, 1.585, 1.584, 1.583, + 1.577, 1.578, 1.578, 1.579, 1.58, 1.581, 1.582, 1.583, 1.583, 1.584, 1.584, 1.585, 1.585, 1.586, 1.586, 1.586, 1.587, 1.587, 1.587, 1.587, 1.587, 1.587, 1.587, 1.587, 1.587, 1.587, 1.587, 1.586, 1.585, 1.584, 1.584, 1.583, + 1.577, 1.577, 1.578, 1.578, 1.579, 1.58, 1.582, 1.582, 1.583, 1.583, 1.584, 1.584, 1.585, 1.585, 1.586, 1.586, 1.586, 1.586, 1.587, 1.587, 1.587, 1.587, 1.587, 1.587, 1.586, 1.586, 1.586, 1.586, 1.585, 1.584, 1.583, 1.583 + ] + } + ], + "luminance_lut": + [ + 1.112, 1.105, 1.098, 1.089, 1.079, 1.071, 1.064, 1.057, 1.051, 1.045, 1.041, 1.036, 1.033, 1.03, 1.028, 1.027, 1.026, 1.026, 1.027, 1.028, 1.032, 1.035, 1.04, 1.044, 1.05, 1.055, 1.063, 1.07, 1.079, 1.087, 1.092, 1.096, + 1.11, 1.103, 1.096, 1.087, 1.077, 1.069, 1.061, 1.055, 1.048, 1.043, 1.038, 1.034, 1.03, 1.028, 1.026, 1.025, 1.024, 1.024, 1.025, 1.026, 1.029, 1.033, 1.037, 1.042, 1.047, 1.053, 1.06, 1.067, 1.076, 1.084, 1.088, 1.093, + 1.108, 1.101, 1.094, 1.085, 1.076, 1.067, 1.059, 1.052, 1.046, 1.04, 1.036, 1.032, 1.028, 1.026, 1.024, 1.023, 1.023, 1.023, 1.023, 1.025, 1.027, 1.03, 1.035, 1.039, 1.045, 1.05, 1.057, 1.064, 1.072, 1.08, 1.085, 1.09, + 1.106, 1.098, 1.091, 1.082, 1.074, 1.065, 1.057, 1.05, 1.043, 1.038, 1.033, 1.029, 1.026, 1.023, 1.021, 1.02, 1.02, 1.021, 1.021, 1.023, 1.025, 1.028, 1.032, 1.037, 1.042, 1.048, 1.055, 1.061, 1.069, 1.077, 1.082, 1.088, + 1.104, 1.096, 1.089, 1.08, 1.071, 1.063, 1.055, 1.048, 1.041, 1.036, 1.031, 1.027, 1.024, 1.021, 1.019, 1.018, 1.018, 1.018, 1.019, 1.02, 1.023, 1.026, 1.03, 1.034, 1.039, 1.045, 1.052, 1.058, 1.066, 1.074, 1.08, 1.086, + 1.102, 1.094, 1.087, 1.078, 1.069, 1.06, 1.052, 1.045, 1.038, 1.033, 1.029, 1.025, 1.022, 1.019, 1.016, 1.015, 1.015, 1.015, 1.016, 1.018, 1.02, 1.024, 1.027, 1.031, 1.037, 1.042, 1.048, 1.055, 1.063, 1.071, 1.078, 1.084, + 1.101, 1.093, 1.085, 1.076, 1.066, 1.058, 1.05, 1.043, 1.036, 1.031, 1.027, 1.023, 1.02, 1.016, 1.014, 1.012, 1.012, 1.013, 1.014, 1.015, 1.018, 1.021, 1.025, 1.029, 1.034, 1.039, 1.046, 1.052, 1.061, 1.069, 1.076, 1.083, + 1.1, 1.092, 1.084, 1.074, 1.064, 1.056, 1.049, 1.042, 1.035, 1.03, 1.025, 1.021, 1.018, 1.014, 1.011, 1.01, 1.01, 1.011, 1.012, 1.013, 1.016, 1.019, 1.022, 1.026, 1.032, 1.037, 1.044, 1.05, 1.058, 1.067, 1.074, 1.082, + 1.098, 1.09, 1.082, 1.072, 1.062, 1.054, 1.047, 1.04, 1.033, 1.028, 1.023, 1.019, 1.015, 1.012, 1.009, 1.008, 1.008, 1.008, 1.009, 1.011, 1.013, 1.016, 1.02, 1.024, 1.029, 1.035, 1.042, 1.048, 1.056, 1.065, 1.073, 1.081, + 1.098, 1.089, 1.081, 1.07, 1.06, 1.053, 1.046, 1.039, 1.032, 1.027, 1.022, 1.017, 1.013, 1.01, 1.008, 1.006, 1.006, 1.007, 1.008, 1.009, 1.011, 1.014, 1.018, 1.022, 1.027, 1.033, 1.04, 1.047, 1.055, 1.063, 1.072, 1.08, + 1.097, 1.088, 1.079, 1.069, 1.059, 1.052, 1.044, 1.037, 1.031, 1.025, 1.02, 1.016, 1.011, 1.008, 1.006, 1.005, 1.005, 1.005, 1.006, 1.008, 1.01, 1.012, 1.016, 1.02, 1.026, 1.032, 1.038, 1.045, 1.054, 1.062, 1.071, 1.079, + 1.097, 1.087, 1.077, 1.068, 1.058, 1.051, 1.043, 1.036, 1.029, 1.024, 1.018, 1.014, 1.009, 1.007, 1.005, 1.004, 1.003, 1.003, 1.005, 1.006, 1.008, 1.011, 1.015, 1.019, 1.024, 1.03, 1.037, 1.044, 1.053, 1.062, 1.07, 1.077, + 1.097, 1.087, 1.076, 1.067, 1.057, 1.05, 1.042, 1.035, 1.028, 1.023, 1.017, 1.013, 1.008, 1.006, 1.004, 1.003, 1.002, 1.002, 1.004, 1.005, 1.007, 1.01, 1.014, 1.018, 1.023, 1.029, 1.036, 1.044, 1.052, 1.061, 1.069, 1.077, + 1.096, 1.086, 1.076, 1.066, 1.056, 1.049, 1.041, 1.034, 1.028, 1.022, 1.017, 1.012, 1.008, 1.005, 1.003, 1.002, 1.002, 1.002, 1.003, 1.004, 1.006, 1.009, 1.013, 1.017, 1.023, 1.029, 1.036, 1.043, 1.051, 1.06, 1.068, 1.076, + 1.096, 1.086, 1.076, 1.066, 1.055, 1.048, 1.041, 1.034, 1.027, 1.021, 1.016, 1.011, 1.007, 1.004, 1.002, 1.001, 1.001, 1.001, 1.002, 1.003, 1.005, 1.008, 1.012, 1.017, 1.022, 1.028, 1.035, 1.042, 1.05, 1.059, 1.067, 1.076, + 1.096, 1.086, 1.075, 1.065, 1.055, 1.048, 1.04, 1.034, 1.027, 1.021, 1.016, 1.011, 1.007, 1.004, 1.002, 1.001, 1.001, 1.001, 1.001, 1.003, 1.005, 1.007, 1.012, 1.017, 1.022, 1.028, 1.035, 1.042, 1.05, 1.059, 1.067, 1.076, + 1.096, 1.086, 1.075, 1.065, 1.055, 1.048, 1.04, 1.034, 1.027, 1.021, 1.015, 1.011, 1.007, 1.004, 1.002, 1.001, 1.001, 1.001, 1.001, 1.002, 1.004, 1.007, 1.012, 1.016, 1.022, 1.028, 1.035, 1.042, 1.05, 1.059, 1.067, 1.076, + 1.096, 1.085, 1.075, 1.065, 1.055, 1.048, 1.041, 1.034, 1.027, 1.021, 1.015, 1.01, 1.007, 1.004, 1.002, 1.001, 1.001, 1.001, 1.001, 1.002, 1.004, 1.008, 1.012, 1.016, 1.022, 1.028, 1.035, 1.042, 1.05, 1.059, 1.067, 1.076, + 1.096, 1.086, 1.075, 1.066, 1.056, 1.048, 1.041, 1.034, 1.027, 1.021, 1.015, 1.011, 1.007, 1.005, 1.003, 1.002, 1.001, 1.002, 1.002, 1.003, 1.005, 1.008, 1.012, 1.017, 1.022, 1.028, 1.035, 1.042, 1.051, 1.059, 1.067, 1.076, + 1.096, 1.086, 1.075, 1.066, 1.057, 1.049, 1.042, 1.035, 1.028, 1.021, 1.016, 1.011, 1.008, 1.005, 1.003, 1.002, 1.002, 1.002, 1.003, 1.004, 1.006, 1.009, 1.013, 1.017, 1.023, 1.029, 1.035, 1.042, 1.051, 1.059, 1.068, 1.076, + 1.096, 1.086, 1.076, 1.067, 1.058, 1.05, 1.043, 1.035, 1.028, 1.022, 1.016, 1.012, 1.009, 1.006, 1.004, 1.003, 1.003, 1.003, 1.004, 1.005, 1.007, 1.01, 1.013, 1.018, 1.024, 1.03, 1.036, 1.042, 1.051, 1.06, 1.068, 1.076, + 1.096, 1.087, 1.077, 1.068, 1.059, 1.051, 1.044, 1.037, 1.029, 1.023, 1.018, 1.014, 1.01, 1.008, 1.006, 1.004, 1.004, 1.004, 1.005, 1.007, 1.009, 1.011, 1.015, 1.019, 1.025, 1.031, 1.037, 1.043, 1.052, 1.06, 1.068, 1.076, + 1.096, 1.087, 1.079, 1.069, 1.06, 1.052, 1.045, 1.038, 1.03, 1.024, 1.019, 1.015, 1.012, 1.009, 1.007, 1.006, 1.005, 1.005, 1.006, 1.008, 1.01, 1.012, 1.016, 1.02, 1.026, 1.032, 1.038, 1.045, 1.053, 1.061, 1.069, 1.077, + 1.097, 1.089, 1.08, 1.071, 1.061, 1.054, 1.046, 1.039, 1.032, 1.026, 1.021, 1.017, 1.013, 1.011, 1.009, 1.007, 1.006, 1.007, 1.008, 1.009, 1.012, 1.014, 1.017, 1.021, 1.027, 1.033, 1.04, 1.046, 1.054, 1.063, 1.07, 1.078, + 1.099, 1.09, 1.082, 1.073, 1.063, 1.056, 1.048, 1.041, 1.034, 1.028, 1.023, 1.019, 1.015, 1.013, 1.01, 1.009, 1.008, 1.009, 1.009, 1.011, 1.013, 1.016, 1.02, 1.024, 1.029, 1.035, 1.042, 1.049, 1.057, 1.065, 1.072, 1.079, + 1.1, 1.092, 1.084, 1.075, 1.065, 1.058, 1.05, 1.043, 1.036, 1.03, 1.025, 1.021, 1.018, 1.015, 1.012, 1.01, 1.01, 1.011, 1.011, 1.013, 1.015, 1.018, 1.022, 1.026, 1.031, 1.037, 1.044, 1.051, 1.059, 1.068, 1.074, 1.08, + 1.102, 1.094, 1.086, 1.077, 1.068, 1.06, 1.052, 1.045, 1.038, 1.033, 1.028, 1.024, 1.02, 1.017, 1.014, 1.013, 1.013, 1.013, 1.013, 1.015, 1.018, 1.021, 1.024, 1.028, 1.033, 1.039, 1.046, 1.054, 1.062, 1.07, 1.076, 1.083, + 1.104, 1.097, 1.089, 1.08, 1.07, 1.062, 1.054, 1.047, 1.041, 1.036, 1.031, 1.027, 1.023, 1.019, 1.017, 1.015, 1.015, 1.015, 1.016, 1.017, 1.02, 1.023, 1.027, 1.031, 1.036, 1.042, 1.049, 1.056, 1.065, 1.073, 1.079, 1.085, + 1.106, 1.099, 1.092, 1.082, 1.073, 1.064, 1.056, 1.05, 1.043, 1.038, 1.034, 1.03, 1.025, 1.022, 1.02, 1.018, 1.018, 1.018, 1.018, 1.02, 1.023, 1.026, 1.029, 1.033, 1.039, 1.045, 1.052, 1.059, 1.067, 1.076, 1.082, 1.088, + 1.108, 1.101, 1.094, 1.085, 1.075, 1.067, 1.059, 1.052, 1.046, 1.041, 1.036, 1.032, 1.028, 1.024, 1.022, 1.021, 1.02, 1.02, 1.021, 1.022, 1.025, 1.028, 1.031, 1.036, 1.041, 1.047, 1.054, 1.061, 1.07, 1.078, 1.084, 1.09, + 1.111, 1.103, 1.096, 1.087, 1.078, 1.07, 1.062, 1.055, 1.048, 1.043, 1.038, 1.034, 1.03, 1.027, 1.024, 1.023, 1.023, 1.023, 1.023, 1.024, 1.027, 1.03, 1.034, 1.038, 1.044, 1.05, 1.057, 1.064, 1.072, 1.081, 1.086, 1.092, + 1.113, 1.105, 1.098, 1.089, 1.08, 1.072, 1.065, 1.058, 1.051, 1.045, 1.041, 1.036, 1.033, 1.029, 1.026, 1.025, 1.025, 1.025, 1.025, 1.026, 1.029, 1.032, 1.036, 1.041, 1.046, 1.052, 1.059, 1.066, 1.075, 1.083, 1.089, 1.094 + ], + "sigma": 0.00047, + "sigma_Cb": 0.00056 + } + }, + { + "rpi.contrast": + { + "ce_enable": 1, + "gamma_curve": + [ + 0, 0, + 1024, 5040, + 2048, 9338, + 3072, 12356, + 4096, 15312, + 5120, 18051, + 6144, 20790, + 7168, 23193, + 8192, 25744, + 9216, 27942, + 10240, 30035, + 11264, 32005, + 12288, 33975, + 13312, 35815, + 14336, 37600, + 15360, 39168, + 16384, 40642, + 18432, 43379, + 20480, 45749, + 22528, 47753, + 24576, 49621, + 26624, 51253, + 28672, 52698, + 30720, 53796, + 32768, 54876, + 36864, 57012, + 40960, 58656, + 45056, 59954, + 49152, 61183, + 53248, 62355, + 57344, 63419, + 61440, 64476, + 65535, 65535 + ] + } + }, + { + "rpi.sharpen": { } + } + ] +} From patchwork Wed Nov 11 16:48:54 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 28864 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id AD310C335B for ; Wed, 11 Nov 2026 16:49:19 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 77A4369119; Wed, 11 Nov 2026 17:49:15 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="g7wab/rw"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 3205E68F9F for ; Wed, 11 Nov 2026 17:49:10 +0100 (CET) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id E19B11570; Wed, 11 Nov 2026 17:46:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1794415607; bh=POk7ZaYbZpdkYYsq5Q7CBcsIfN+jDU4k6UR4yZ+Li9g=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=g7wab/rwznAtMrysCGDYw+r5iJQeeAa7FJoUjQ/1MOxDvprXLM9Q6yP6EXqywCSW9 jrNabGdNt+JrKWTJXL0fyjrqjCMYyf2FyZC9x9sph5ShDKq7icLz+N54AEC9mphzWC 07w+CiG9IQn6lPDT46p0M4MjeUz3rYBcwBU6nmlA= From: Jacopo Mondi Date: Wed, 11 Nov 2026 17:48:54 +0100 Subject: [PATCH 4/5] libcamera: sensor: Add Mira016 sensor properties MIME-Version: 1.0 Message-Id: <20261111-b4-mira016-v1-4-340bdb923426@ideasonboard.com> References: <20261111-b4-mira016-v1-0-340bdb923426@ideasonboard.com> In-Reply-To: <20261111-b4-mira016-v1-0-340bdb923426@ideasonboard.com> To: Philippe Baetens , libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1191; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=POk7ZaYbZpdkYYsq5Q7CBcsIfN+jDU4k6UR4yZ+Li9g=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBq9JyEazyGX06PLez3jD1Qs6feJyJQKmiFr8SOw GFF1oOcUV+JAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCavSchAAKCRByNAaPFqFW PBRxEACwOct5vPiFsfSNoBamA1w/hnl9YGqgq5zMVAqQkyjYTX/DefEOWIXzYLCt9cwnqzh3Z9T fXmfRufOm70X58QHtkzaEAkd+OISTlNPaMfNm2wE1BMSdI0FDs2qZDsBwQrWdjd9BeiAujdWoK1 rbl4cVNRe3GLpePfU+DszeXlRx+nmCGjMFStHS5Trt/QeKvfvHeQ84H9hb1CfqEsDQ5hpDb9+d1 1/4UQg59eJ1EZi5KbB7QsAw5PPLyp72Bja3b/RduZNIPes1t9MYqtR17Wq+rq/qj6qFBzPQuEuJ W+006frWuHzJVnZ8kd2bbrjbOya31EUFOH6ne0sIQM9+KQuID2HP+0MOdnx6EJLt1tMwEbQ4zt1 GhilZjzHnJTcxKAthWVUVzCY5GXsFx95XKT//iEFyKSsBWA7NjjzJKXIaD32JRCfqtwxfEuLe2f SbAQqCyk3K+IixvszNVHrZjeCKNWuNkOXo94ZytLmvUkU5XyzoLDPqi8n1Nn58psb55DF/wX5Ml x3+5/XV08GUnWtVEZJpjJjW8d1qeTqwsmFj1+defV+euLdCbQtySBs080gXtEO96gdiYb+jrEoY FzdCudzLEg59sZHMFjstZ10X64QGcNjmVc2q1nFNuEtA85bavDDKBmirCvz+LijoEFsQo4WD3Kr n0ceEHI3iCxwnTA== X-Developer-Key: i=jacopo.mondi@ideasonboard.com; a=openpgp; fpr=72392EDC88144A65C701EA9BA5826A2587AD026B X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Add sensor properties for the AMS-OSRAM Mira016 camera sensor. The sensor has a 1 frame delay for exposure. The vblank delay and the analogue gain is not characterized in the datasheet. Hblank is not programmable, fix its delay to 1. Signed-off-by: Jacopo Mondi --- src/libcamera/sensor/camera_sensor_properties.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp index 20cfd0bc11a6..58a58b9a58b8 100644 --- a/src/libcamera/sensor/camera_sensor_properties.cpp +++ b/src/libcamera/sensor/camera_sensor_properties.cpp @@ -389,6 +389,18 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen .hblankDelay = 2 }, } }, + { "mira016", { + .unitCellSize = { 2790, 2790 }, + .testPatternModes = { + }, + .sensorDelays = { + .exposureDelay = 1, + .gainDelay = 1, + .vblankDelay = 1, + /* hblank is read-only. */ + .hblankDelay = 1 + }, + } }, { "mira220", { .unitCellSize = { 2790, 2790 }, .testPatternModes = { From patchwork Wed Nov 11 16:48:55 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 28865 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 5B072C335C for ; Wed, 11 Nov 2026 16:49:20 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 0E5176A7B8; Wed, 11 Nov 2026 17:49:16 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="T/MWWdI0"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 73B7F69134 for ; Wed, 11 Nov 2026 17:49:10 +0100 (CET) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 3846E802; Wed, 11 Nov 2026 17:46:47 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1794415607; bh=EmJODuew+54jc5MI4acv0MRI6dXPXtBUcnFA1Qetwv8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=T/MWWdI0T3ck/tpVNX8RMlfTY4VgS+qgccAgkUHWNdJIaTtQB2v2Tk6Yvk0TxqcpM O95CA5O6P5BHaukJAJsENAkJMcdVw5/aMSnxFPPqpRK/GqgURoa3wYCArPmRq4ce/p yx5DAhdwxBejc/Mj/nBONoJG57ENloz0CRE/PtoU= From: Jacopo Mondi Date: Wed, 11 Nov 2026 17:48:55 +0100 Subject: [PATCH 5/5] libipa: camera_sensor_helper: Add Mira016 MIME-Version: 1.0 Message-Id: <20261111-b4-mira016-v1-5-340bdb923426@ideasonboard.com> References: <20261111-b4-mira016-v1-0-340bdb923426@ideasonboard.com> In-Reply-To: <20261111-b4-mira016-v1-0-340bdb923426@ideasonboard.com> To: Philippe Baetens , libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2592; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=EmJODuew+54jc5MI4acv0MRI6dXPXtBUcnFA1Qetwv8=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBq9JyEtNqd070XZZG78LYH7p4fILeExu25EJe18 nFZadzFySCJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCavSchAAKCRByNAaPFqFW PAepEAC9YdnrPiK29awLOTxZCoM4ezftunOy5MqxatvAHMvjqyudlcVhW4nKJ1+G+by7zX8NKga +TJQGUDE4x30+0+VRvbGqL69F1nYTXXHJQACTvLXUQWxw56YZ0q/zsr3BTO1dnedUNGAKVcABCD 6p+5EvMZd9jvwLGl1fplAsry7ylaLFn5hBl2oQKthi8jwtHQh+qih9tpGPjyd71N132zRoAtCas XZiuN/dp7+o0k6cIdc/t961zIerCL2LVv6a5XQUGp+t7WiaY6prA0MTfJvJXvsvbocs9c6O1cBV S+jRFqkq+GiILw/Ba2/4AbCMXt7sfOIZMDp9Wehc9X472AxJU8uLZXTPSVYFVH0TMU8aiXLAYMm w1q0y0k0+6sb7cBP3s+/YC0lIBCyHX2gI8PvLyhw1UwW503qWw/iArKRtSBm/2Z1gM5Y+HZ7njI w6YTyC81v3O2xj+14hnUBjiTNkdqOBoyjr+4xxn7ZBEl4IY4lnvDccA3CM5K9yt86nnTi/15aYL HIUYWXwUU/Pmp/xwKc4KxVjF5prcLJ25zwguwdarL3adaGDOyMdw1d26Ama223+S0bicZShV35h oAMSI+Ow4LxoUP90K3nWNqbfzfnTZMJK077bjf9tlAJ0nI1pCzwXJVxPrPJ9BFqH5tAcOoh0o2L 6nNInp5v4JcqPgw== X-Developer-Key: i=jacopo.mondi@ideasonboard.com; a=openpgp; fpr=72392EDC88144A65C701EA9BA5826A2587AD026B X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Add a camera sensor helper for the AMS-OSRAM Mira016 sensor. The sensor black level has been measured by averaging the pixel values while covering the lens. The mira016 driver gain interface is index-based. The gain() and gainCode() function use a lookup table that translates the desired gain value to an index on the table (and viceversa). Signed-off-by: Jacopo Mondi --- src/ipa/libipa/camera_sensor_helper.cpp | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp index 359040ec7418..972173f22def 100644 --- a/src/ipa/libipa/camera_sensor_helper.cpp +++ b/src/ipa/libipa/camera_sensor_helper.cpp @@ -736,6 +736,59 @@ public: }; REGISTER_CAMERA_SENSOR_HELPER("ov08x40", CameraSensorHelperOv08x40) +class CameraSensorHelperMira016 : public CameraSensorHelper +{ +public: + CameraSensorHelperMira016() + { + blackLevel_ = 2048; + } + + uint32_t gainCode(double gain) const override + { + uint32_t gainCode = 0; + + while (gainCode < sizeLut - 1) { + if (gain < gainLut[gainCode + 1]) + break; + + gainCode++; + } + + /* + * The V4L2_CID_ANALOGUE_GAIN control is 1-indexed while the + * lookup table is 0-indexed. Return index+1 here, the driver + * adjusts it to its 0-indexed table. + */ + return gainCode + 1; + } + + double gain(uint32_t gainCode) const override + { + if (gainCode >= sizeLut) + gainCode = sizeLut - 1; + + return static_cast(gainLut[gainCode]); + } + +private: + static constexpr float gainLut[] = { + 1, 1.018, 1.056, 1.075, 1.118, 1.14, 1.188, 1.213, 1.267, 1.295, + 1.326, 1.373, 1.425, 1.462, 1.5, 1.541, 1.583, 1.652, 1.701, + 1.727, 1.781, 1.839, 1.9, 1.966, 2, 2.073, 2.151, 2.192, 2.28, + 2.327, 2.426, 2.478, 2.533, 2.651, 2.714, 2.78, 2.886, 2.961, + 3.04, 3.167, 3.257, 3.353, 3.455, 3.563, 3.619, 3.738, 3.864, 4, + 4.071, 4.222, 4.302, 4.471, 4.56, 4.75, 4.851, 5.067, 5.182, + 5.302, 5.494, 5.7, 5.846, 6, 6.247, 6.423, 6.609, 6.806, 7.015, + 7.238, 7.355, 7.6, 7.862, 8.143, 8.291, 8.604, 8.769, 9.12, + 9.306, 9.702, 9.913, 10.133, 10.605, 10.857, 11.259, 11.544, + 11.844, 12.324, 12.667, 13.029, 13.412, 13.818, 14.25, 14.71, + 14.951, 15.458, 16, + }; + uint32_t sizeLut = sizeof(gainLut) / sizeof(gainLut[0]); +}; +REGISTER_CAMERA_SENSOR_HELPER("mira016", CameraSensorHelperMira016) + class CameraSensorHelperMira220 : public CameraSensorHelper { public: