From patchwork Thu Nov 12 14:20:43 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 28878 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 1D37ABDE17 for ; Thu, 12 Nov 2026 14:21:08 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 556666A7F5; Thu, 12 Nov 2026 15:21:04 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="oQMYpT9R"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 106DF691CD for ; Thu, 12 Nov 2026 15:21:00 +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 D71A7802; Thu, 12 Nov 2026 15:18:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1794493116; bh=9i0amGK6dkJlYJV7DKxQEf6IITH1iizB82ibemxhG20=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=oQMYpT9RlsJhRfAKZk/RWA2BIniKT70NBEBYDJF1rKlRt9sNvMLor8Pm1FA3vFtp3 CGrLC1o3CXXbPqnZIX+0Jtw36HEe3fFa1D0JqV6lMe6HyEx6zBCzlt4xNY6FRM1t+K vEGkQpbJynxsljqnEzNsG3RSPmyJUmyw0TvC58NM= From: Jacopo Mondi Date: Thu, 12 Nov 2026 15:20:43 +0100 Subject: [PATCH v2 1/5] ipa: rpi: cam_helper: Add Mira016 cam helper MIME-Version: 1.0 Message-Id: <20261112-b4-mira016-v2-1-c96443a745ce@ideasonboard.com> References: <20261112-b4-mira016-v2-0-c96443a745ce@ideasonboard.com> In-Reply-To: <20261112-b4-mira016-v2-0-c96443a745ce@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=3889; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=9i0amGK6dkJlYJV7DKxQEf6IITH1iizB82ibemxhG20=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBq9ctKkHRPkMX0dwV6GH8pvY2ecZX88+BXsN6RJ DI6ecUQ1/mJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCavXLSgAKCRByNAaPFqFW PNVED/4o5qqu8qVHtdvuGf+ouICrCRnGq/RnafGpt2q6Wjl2+k/D4DycZGt1edmwny/uZSibGam NT0+GTCatbRi6xtSPS7BJzUuctykIVZ6kxFxrQDrL0DKoc1l/jcfPseDVWloPbfE22cI3H1RHQH 03SVQ+HaMSr0YP5IybzyC+gyDNi5Yy9hC+r0qtpBYVG52IO0WDOeeNHDWPTBcxZ3byyNv/yNRCr cpzjyzHgvL5VJUryoDTkQT6NFAQMgo2iIQMIApvQT0gfBkZH9/q1Eq8MT11QCIHNTCA3Phb+eh1 0PrySu2fBFYR+LeWlEyPQ2/VaqLXti/zn/Am0KV/Ci+2YtqaKo4GzkJdix/SNad7v36Cc2jmSGg ewBQ2bzWbpXe5pHUfzxjEV4fV0Wr67I7ZnIX738sfHG8oByi4dP4VW1DP4ffNZU1QDP63MsKlkZ lcwlmFZyPcUwOmUKHVgXC/3pOPBEpVqyI56YdjZI1TFMTkl9r3mpy3F7qsN/zLg/Zv0zd2L9IOO FTyqGXKegFv5N5hAyogjs+MVZsSLmEWN44Mciei0OAZ6ViXkM2w15AQOLnpiRtkU9LGjKRkEwG1 svBDVs5qPTapa6S3WM5Frq1PX2A0izk81rTPty+NPw9spr1+0KAnVv27hX4+D6OeGRmm7w48t9g TyZTmIXVbHOqLjA== 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 | 93 +++++++++++++++++++++++++++ src/ipa/rpi/cam_helper/meson.build | 1 + 2 files changed, 94 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..0bfb44ec10b0 --- /dev/null +++ b/src/ipa/rpi/cam_helper/cam_helper_mira016.cpp @@ -0,0 +1,93 @@ +/* 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 lines. The mira016 driver uses the same value as the exposure + * margin. + */ + static constexpr int frameIntegrationDiff = 4; + + static constexpr std::array gainLut{ + 1.0, 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.0, + 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.0, 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.0, 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.0, + }; + static constexpr uint32_t maxGainIndex = gainLut.size() - 1; +}; + +CamHelperMira016::CamHelperMira016() + : CamHelper({}, frameIntegrationDiff) +{ +} + +uint32_t CamHelperMira016::gainCode(double gain) const +{ + uint32_t gainCode = 0; + + while (gainCode < maxGainIndex) { + 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 +{ + /* + * The V4L2_CID_ANALOGUE_GAIN control is 1-indexed while the lookup + * table is 0-indexed. + */ + assert(gainCode > 0); + gainCode = std::min(gainCode - 1, maxGainIndex); + + return gainLut[gainCode]; +} + +CamHelper *create() +{ + return new CamHelperMira016(); +} + +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 Thu Nov 12 14:20:44 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 28879 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 7A415C335B for ; Thu, 12 Nov 2026 14:21:09 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B24B66A7C4; Thu, 12 Nov 2026 15:21:05 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="PUDWcF5x"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4F3BE691CE for ; Thu, 12 Nov 2026 15:21:00 +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 2A2B4D77; Thu, 12 Nov 2026 15:18:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1794493116; bh=YMmpgDrnSzYXihUVf6O+hvQAMHUiJTEqsICAplGCFdA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=PUDWcF5xdEN2lWiKcCQPqA3sCfc2Zkur0kjiyu5HV400VzCgh/d+FwQMIY3ZuSfcD BVpoYgZTzql+SKCgoV0ueeedrroqnMwb+6lmkxzpmCQ3RlfQax86aeG9mi7m7JaR5z /LngEnu30eBxuVKsX1V9nVajG2BAqBvFvaJvR69I= From: Jacopo Mondi Date: Thu, 12 Nov 2026 15:20:44 +0100 Subject: [PATCH v2 2/5] ipa: rpi: vc4: Add Mira016 tuning file MIME-Version: 1.0 Message-Id: <20261112-b4-mira016-v2-2-c96443a745ce@ideasonboard.com> References: <20261112-b4-mira016-v2-0-c96443a745ce@ideasonboard.com> In-Reply-To: <20261112-b4-mira016-v2-0-c96443a745ce@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/ZANAwAKAXI0Bo8WoVY8AcsmYgBq9ctKGRoFNPxL+2zCP/Bx6Tzqe+GYgr0cBaAVc zin2uGLTCCJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCavXLSgAKCRByNAaPFqFW PJHID/92Th0MKgm60nGYOiUAAkBcBfPGfcXaeXnZz/96Nnfo0ximfo+N1eeS5hVlRuHRIV2GScl YNumlhlThEaSRIKbYyZdZpaQkfgLMoXYx7z0/7sr7L4ZQb4G9Mct0vYGA8zan302Qmw1eZLzaMD qWHFDrZ8Y0fbIHRjpAVjizuGy00eww/QJzP5Aqi2LvQh0QeUAQZgyAOCVdjekGo+WoPJSl2CViW TKdqv5yEzFsv3YUp8hOgP+urUwQxzT5q3mCWFdoUXe8VmThgt3kiCJINh16tHWAUWrQhzGZMumn mSMtMd2qCHKWGeWU4Kz2KEFw1VgY2PYo/uGpMMt5oovyUm3GMne/akiJ8fJiQ1I2pZpUelIYAq9 TDPy3e/4B7WrUpA2FjlAhK4NDVIv69UOSwqoAuSEIu1kXmNOEzjlt4WtahYteIiovOkOt15D2QK +ibepcrekDjbM7zHFC7iLxYBLZVZUT5dLOccaux/iMEnZj80AYa+7vXq0n1uzcCk9JtYj/3mgz5 /Fzy0z4kRz91HjGT/NdRPNrs48JHqTCIZRXbDGTgaAXXsK51hU3uze4L6ZyocPbm5T8CoEVKCkR 21+4oylncJUoebQ/rTvM9bkDd2Tci3/CoLmFGlvKYJNJKgee5RA+rbG6EpdACOrmihLjQ9nLNst cGvchED6ze4h+cQ== 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 Thu Nov 12 14:20:45 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 28880 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 2D137BDE17 for ; Thu, 12 Nov 2026 14:21:10 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 1EB5F6A7C7; Thu, 12 Nov 2026 15:21:07 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="haB7Xant"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 724F569213 for ; Thu, 12 Nov 2026 15:21:00 +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 735A2DA8; Thu, 12 Nov 2026 15:18:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1794493116; bh=BOhSp5V+U7uvaSnzpRlUeCZ5TkpXsNb0TRy0mXF0sJY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=haB7XantOBWxwlRKT2TuVyIuYPCjFxyPGoLagzFlXHMIqbvjKg8w44w44rj1aBkfZ LgJHcF/JPKQhTY9NFIV3i1PGxi+Thy7ByD/3YeUcdcz6IoMGOjNZPtOh7z/doYD2rs l6bKCEbPg9evIzYYZd83W9iKAmhqYmnbVTh1zF50= From: Jacopo Mondi Date: Thu, 12 Nov 2026 15:20:45 +0100 Subject: [PATCH v2 3/5] ipa: rpi: pisp: Add Mira016 tuning file MIME-Version: 1.0 Message-Id: <20261112-b4-mira016-v2-3-c96443a745ce@ideasonboard.com> References: <20261112-b4-mira016-v2-0-c96443a745ce@ideasonboard.com> In-Reply-To: <20261112-b4-mira016-v2-0-c96443a745ce@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/ZANAwAKAXI0Bo8WoVY8AcsmYgBq9ctKHp9k7bMebGlc5FyPk7DWVYIHA9CP9t5mG Metpqd1pfGJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCavXLSgAKCRByNAaPFqFW PNMoEACGSPwEYysesdsEGx7IT6reCcouXxI/jieYY1rORZQh8fF7sqtdRzLOhPxtBFlm/tlTdec xu8J/tS0XtOBR043WaqmdkdY1Z1KgVDR8docPeOiktYuSNuSwa7Dex91IKfg8gBeItsz43xGHA5 H1H/ZVMMefQiMH2O+KFJ+4TVuLJr8kbWCE1lrn1VCH8pfQ0vhtYC6upqjW6hTK9H+AjHurPSWvC oBiPrIJL3ITMoj4QLgZtZ0JtAWRht9KWbCW5F9kKdRvqM85eP5QpaC/OTDUruMZ8fsMYbwmk0jB 62dfvxTLpygcklQeLyva/potUhbd54tp5+JAgCxq4DPphteEPx1h5n8c471uJZpiCLAlEKbsT6H wiM/Op/rf9QAEhRyKg2+fGBXuZEdv1e9Sz6O/nZX0DZLLxGWt2LHlXwDTBDxxEFMz89at2xMZ1Y phupb7j2ARW8iyqVipBQ1FfjKMbppcpUwadnr+2AX1LC3013c1H+MIFPaEh4H5gycSWWqtAO36f 43GauYP3ptegqV72mfheUthGXsuHDzSJ8BlZzNI2limWPXcKHZrKWdNZK0p4A0f2/crbiSeFSNm VfIUzljGecEeg0hofMjLlnMT/8w3wJiLPtHaQIdogKuODcJWvISDHkgU7/V1AeolqvVIjFqQaWx XqP8HsPiCQioB7w== 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 Thu Nov 12 14:20:46 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 28881 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 EF896C335B for ; Thu, 12 Nov 2026 14:21:10 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 9CE9C6A7E8; Thu, 12 Nov 2026 15:21:07 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="WEjK2qDF"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id BF0C16A7B2 for ; Thu, 12 Nov 2026 15:21:00 +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 D19CFE9C; Thu, 12 Nov 2026 15:18:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1794493117; bh=POk7ZaYbZpdkYYsq5Q7CBcsIfN+jDU4k6UR4yZ+Li9g=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=WEjK2qDFAlQiLhFPk5kx4rkF/Zr3gXMDwkjQyULPEd+ySPKReRHk86efyQuCzT44O ZEI9ckSx6SNy5BJ0+sj2gGlvSKiTpxHg8rfOAz/j1jjNg/uUtOXGgoJmx1k2/t1sFU yoZOT42PCzq3pq76T/4jJzIvxlw/eF1Czq3KfyOo= From: Jacopo Mondi Date: Thu, 12 Nov 2026 15:20:46 +0100 Subject: [PATCH v2 4/5] libcamera: sensor: Add Mira016 sensor properties MIME-Version: 1.0 Message-Id: <20261112-b4-mira016-v2-4-c96443a745ce@ideasonboard.com> References: <20261112-b4-mira016-v2-0-c96443a745ce@ideasonboard.com> In-Reply-To: <20261112-b4-mira016-v2-0-c96443a745ce@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/ZANAwAKAXI0Bo8WoVY8AcsmYgBq9ctKqOsGu+4Tqm8yqHidyP2FrIGbJ1BL8ZVel BeWJ25KjqGJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCavXLSgAKCRByNAaPFqFW PPyuD/9Y0kCvFIhMuSBtvOBILUa5Z2BHVSAfQcHuMzYCzEx/gfnMZLqF8sflQxI0LH/PPDs6+WZ zfqsRc/SPFxoJThn+K6zKtme8i8V+bHNT9PzcmyrGYraIPwSSlf1+Twkw6qPlkbGvavON9Xim81 EZHK8/YthpJP/s8+FxZ9iZMt28eQxwuVz8ycA2/3Dv4II18qmiLpn2RzqcXwCM6BieLXaouOo5z eTQuvDskIy2NueTfBBlGKPjSTS1yejerXqFQ27Fl+GZlEot5i56OKO2dQwWJcL+6PZElH5pOCDe 6scHdl7QYaYzlEE0qA/wpZoVDZSFwoMxAqm0ERY66I7L9BNVDe4bXsPwA851gfniGgeCs5bba10 YkYB6TIIp3NU75JGB8QBoVm9TRmJrYBHalMT5hZKLFpvLoXqmaCncl2USNhDM2SV7p0F+Fzi7Mj Zj4WNUB3IY2LDKk/y4N3OpQ7YQJ1Vejn3r/zEBVTEh0SK8mvz5dzvKngfP3/ymLO2FJo1I8xAyY GzJ0utJU8hoXYWt7BCrj/F7FAY6YSEXxAIyzs4SAGsQDSHrPbk+SZTUB5M6a0WHqHKhrSxTaGri vSR7b9ejC9j8Pf/nRmYBnS1MFSzPmbV/JNuKDElmyyyOfVt4jwDa6St+pm3wVH6AauuPI75Tjz0 xjbW8B7vpoVOGww== 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 Thu Nov 12 14:20:47 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 28882 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 B1FD0C335C for ; Thu, 12 Nov 2026 14:21:11 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 1D77369213; Thu, 12 Nov 2026 15:21:08 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="HpLijvNC"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 1067D6A7BA for ; Thu, 12 Nov 2026 15:21:01 +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 25715219; Thu, 12 Nov 2026 15:18:37 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1794493117; bh=JJICIa4VzoNov4MYpGtXZtiJXUx/wfSOZ37PV3h7vho=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=HpLijvNCtPNePUyHONjX90QrEiK5g842VVevUNTjqotxB7qll0juHMYEf1320+xQz x1ZakK4Uq9aaNPDFRYJzOm9JP+Ofzlx/llwt/yr2qrcr0rQpBrhorcBqwNkz7RWEav ZaAr605qGeZwjKF1eRNnDcU1Qr6l8SBQdtBEUWhY= From: Jacopo Mondi Date: Thu, 12 Nov 2026 15:20:47 +0100 Subject: [PATCH v2 5/5] libipa: camera_sensor_helper: Add Mira016 MIME-Version: 1.0 Message-Id: <20261112-b4-mira016-v2-5-c96443a745ce@ideasonboard.com> References: <20261112-b4-mira016-v2-0-c96443a745ce@ideasonboard.com> In-Reply-To: <20261112-b4-mira016-v2-0-c96443a745ce@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=2727; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=JJICIa4VzoNov4MYpGtXZtiJXUx/wfSOZ37PV3h7vho=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBq9ctKebyKbr6o0ow9uXGmPaaCx1CEEuWDFJ+aC F4288s0AleJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCavXLSgAKCRByNAaPFqFW PI62EACmbQ5jLWVE+RBFypf84AuNzwyQVVec1IiTe7vStem4j5ZEaty4oslUZTEF8faa/UA2d9O qd/nEC5FMf8fVfPiL6OAeKq9J/2oAqeBbVBgc5vuR1I4YHnVUSH5MhpDZLPkym04YlrjW5HQg7d ri96lQO3B5pewGjdxnRJ+sXftPRfsOVTzlpPhTdwL/IRGgDdWG7NvriHXZKKDYxn6/r+pmFOamP vThLMMH7d9qXy5intMNoVNuDh+uvNdFseGOlT9as+7UvIZNgCB0jcX26JgY1mIgq6ucEjD389eQ 6R/4lb4lV1lrVOe2zeCCbGURnez2xBfbZShozVMgAExc1GI10QQ/9kYUrPX6Ahl6bySAKFuWSIq iX8dldPdA0/d4NwBYwEM3znc5z5UfZy/i+U3ZwWCmpRW7j1SOj4zCl3tOHuOEEoZLgmsoBkbug4 YwgWvuxuHAKYt9XtwWdgcwaHf8ijFo74sW+lRuEojY6tXZGFLW9CmNyfbCH/5ZBA2+ss4JfgadE M01xJV4QZQqIATt30P637uYDY3GBUJphm9EZc4UeZz3EfhJA0B2Cv/C8aDLkVZFdFvtid7HTnSD zcpsIjJ802WKCXa/+r7MpdRdOjPs6dxEh0n4RijdLa1E45bPhAr6wom005+bwG/UjQ2apKfzGGI loXrDqKKVVE3aWA== 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 | 58 +++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp index 608937d45ee2..b79d92a7b0f7 100644 --- a/src/ipa/libipa/camera_sensor_helper.cpp +++ b/src/ipa/libipa/camera_sensor_helper.cpp @@ -782,6 +782,64 @@ 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 < maxGainIndex) { + 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 + { + /* + * The V4L2_CID_ANALOGUE_GAIN control is 1-indexed while the lookup + * table is 0-indexed. + */ + ASSERT(gainCode > 0); + gainCode = std::min(gainCode - 1, maxGainIndex); + + return gainLut[gainCode]; + } + +private: + static constexpr std::array gainLut{ + 1.0, 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.0, + 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.0, 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.0, 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.0, + }; + static constexpr uint32_t maxGainIndex = gainLut.size() - 1; +}; +REGISTER_CAMERA_SENSOR_HELPER("mira016", CameraSensorHelperMira016) + class CameraSensorHelperMira220 : public CameraSensorHelper { public: