[{"id":26095,"web_url":"https://patchwork.libcamera.org/comment/26095/","msgid":"<CAHW6GY+nXGR19ckDubUWpwXGwbFiqbF7F=pxY4Z8vEWVDgMdQg@mail.gmail.com>","date":"2022-12-16T14:08:01","subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Naush, Rolf\n\nThank you for this contribution!\n\nOn Fri, 16 Dec 2022 at 13:59, Naushir Patuck via libcamera-devel\n<libcamera-devel@lists.libcamera.org> wrote:\n>\n> Add a tuning file for the IMX477 more suited to scientific applications.\n> The key differences from the original tuning file are:\n>\n> - Disable ALSC block completely\n> - Pure rec709 gamma curve, and no contrast enhance\n> - New CT curve and CCMs based on the illumination spectrum of a black body\n> radiator up to about 3600 K and the CIE illuminant D for higher color\n> temperatures.\n>\n> Further details on the changes can be found at:\n> https://forums.raspberrypi.com/viewtopic.php?t=343449\n>\n> All credit for these changes go to Dr. Rolf Henkel.\n>\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> Signed-off-by: Rolf Henkel <cpixip@pixelcircus.com>\n\nReviewed-by: David Plowman <david.plowman@raspberrypi.com>\n\nBest regards\n\nDavid\n\n> ---\n>  .../raspberrypi/data/imx477_scientific.json   | 482 ++++++++++++++++++\n>  src/ipa/raspberrypi/data/meson.build          |   1 +\n>  2 files changed, 483 insertions(+)\n>  create mode 100755 src/ipa/raspberrypi/data/imx477_scientific.json\n>\n> diff --git a/src/ipa/raspberrypi/data/imx477_scientific.json b/src/ipa/raspberrypi/data/imx477_scientific.json\n> new file mode 100755\n> index 000000000000..17c4ed0a5e74\n> --- /dev/null\n> +++ b/src/ipa/raspberrypi/data/imx477_scientific.json\n> @@ -0,0 +1,482 @@\n> +{\n> +    \"version\": 2.0,\n> +    \"target\": \"bcm2835\",\n> +    \"algorithms\": [\n> +        {\n> +            \"rpi.black_level\":\n> +            {\n> +                \"black_level\": 4096\n> +            }\n> +        },\n> +        {\n> +            \"rpi.dpc\": { }\n> +        },\n> +        {\n> +            \"rpi.lux\":\n> +            {\n> +                \"reference_shutter_speed\": 27242,\n> +                \"reference_gain\": 1.0,\n> +                \"reference_aperture\": 1.0,\n> +                \"reference_lux\": 830,\n> +                \"reference_Y\": 17755\n> +            }\n> +        },\n> +        {\n> +            \"rpi.noise\":\n> +            {\n> +                \"reference_constant\": 0,\n> +                \"reference_slope\": 2.767\n> +            }\n> +        },\n> +        {\n> +            \"rpi.geq\":\n> +            {\n> +                \"offset\": 204,\n> +                \"slope\": 0.01078\n> +            }\n> +        },\n> +        {\n> +            \"rpi.sdn\": { }\n> +        },\n> +        {\n> +            \"rpi.awb\":\n> +            {\n> +                \"priors\": [\n> +                    {\n> +                        \"lux\": 0,\n> +                        \"prior\":\n> +                        [\n> +                            2000, 1.0,\n> +                            3000, 0.0,\n> +                            13000, 0.0\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"lux\": 800,\n> +                        \"prior\":\n> +                        [\n> +                            2000, 0.0,\n> +                            6000, 2.0,\n> +                            13000, 2.0\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"lux\": 1500,\n> +                        \"prior\":\n> +                        [\n> +                            2000, 0.0,\n> +                            4000, 1.0,\n> +                            6000, 6.0,\n> +                            6500, 7.0,\n> +                            7000, 1.0,\n> +                            13000, 1.0\n> +                        ]\n> +                    }\n> +                ],\n> +                \"modes\":\n> +                {\n> +                    \"auto\":\n> +                    {\n> +                        \"lo\": 2500,\n> +                        \"hi\": 8000\n> +                    },\n> +                    \"incandescent\":\n> +                    {\n> +                        \"lo\": 2500,\n> +                        \"hi\": 3000\n> +                    },\n> +                    \"tungsten\":\n> +                    {\n> +                        \"lo\": 3000,\n> +                        \"hi\": 3500\n> +                    },\n> +                    \"fluorescent\":\n> +                    {\n> +                        \"lo\": 4000,\n> +                        \"hi\": 4700\n> +                    },\n> +                    \"indoor\":\n> +                    {\n> +                        \"lo\": 3000,\n> +                        \"hi\": 5000\n> +                    },\n> +                    \"daylight\":\n> +                    {\n> +                        \"lo\": 5500,\n> +                        \"hi\": 6500\n> +                    },\n> +                    \"cloudy\":\n> +                    {\n> +                        \"lo\": 7000,\n> +                        \"hi\": 8600\n> +                    }\n> +                },\n> +                \"bayes\": 1,\n> +                \"ct_curve\":\n> +                [\n> +                    2000.0, 0.6331025775790707, 0.27424225990946915,\n> +                    2200.0, 0.5696117366212947, 0.3116091368689487,\n> +                    2400.0, 0.5204264653110015, 0.34892179554105873,\n> +                    2600.0, 0.48148675531667223, 0.38565229719076793,\n> +                    2800.0, 0.450085403501908, 0.42145684622485047,\n> +                    3000.0, 0.42436130159169017, 0.45611835670028816,\n> +                    3200.0, 0.40300023695527337, 0.48950766215198593,\n> +                    3400.0, 0.3850520052612984, 0.5215567075837261,\n> +                    3600.0, 0.36981508088230314, 0.5522397906415475,\n> +                    4100.0, 0.333468007836758, 0.5909770465167908,\n> +                    4600.0, 0.31196097364221376, 0.6515706327327178,\n> +                    5100.0, 0.2961860409294588, 0.7068178946570284,\n> +                    5600.0, 0.2842607232745885, 0.7564837749584288,\n> +                    6100.0, 0.2750265787051251, 0.8006183524920533,\n> +                    6600.0, 0.2677057225584924, 0.8398879225373039,\n> +                    7100.0, 0.2617955199757274, 0.8746456080032436,\n> +                    7600.0, 0.25693714288250125, 0.905569559506562,\n> +                    8100.0, 0.25287531441063316, 0.9331696750390895,\n> +                    8600.0, 0.24946601483331993, 0.9576820904825795\n> +                ],\n> +                \"sensitivity_r\": 1.05,\n> +                \"sensitivity_b\": 1.05,\n> +                \"transverse_pos\": 0.0238,\n> +                \"transverse_neg\": 0.04429,\n> +                \"coarse_step\": 0.1\n> +            }\n> +        },\n> +        {\n> +            \"rpi.agc\":\n> +            {\n> +                \"metering_modes\":\n> +                {\n> +                    \"centre-weighted\":\n> +                    {\n> +                        \"weights\": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]\n> +                    },\n> +                    \"spot\":\n> +                    {\n> +                        \"weights\": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]\n> +                    },\n> +                    \"matrix\":\n> +                    {\n> +                        \"weights\": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]\n> +                    }\n> +                },\n> +                \"exposure_modes\":\n> +                {\n> +                    \"normal\":\n> +                    {\n> +                        \"shutter\": [ 100, 10000, 30000, 60000, 66666 ],\n> +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n> +                    },\n> +                    \"short\":\n> +                    {\n> +                        \"shutter\": [ 100, 5000, 10000, 20000, 33333 ],\n> +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n> +                    },\n> +                    \"long\":\n> +                    {\n> +                        \"shutter\": [ 100, 10000, 30000, 60000, 120000 ],\n> +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]\n> +                    }\n> +                },\n> +                \"constraint_modes\":\n> +                {\n> +                    \"normal\": [\n> +                        {\n> +                            \"bound\": \"LOWER\",\n> +                            \"q_lo\": 0.98,\n> +                            \"q_hi\": 1.0,\n> +                            \"y_target\":\n> +                            [\n> +                                0, 0.3,\n> +                                1000, 0.3\n> +                            ]\n> +                        }\n> +                    ],\n> +                    \"highlight\": [\n> +                        {\n> +                            \"bound\": \"LOWER\",\n> +                            \"q_lo\": 0.98,\n> +                            \"q_hi\": 1.0,\n> +                            \"y_target\":\n> +                            [\n> +                                0, 0.3,\n> +                                1000, 0.3\n> +                            ]\n> +                        },\n> +                        {\n> +                            \"bound\": \"UPPER\",\n> +                            \"q_lo\": 0.98,\n> +                            \"q_hi\": 1.0,\n> +                            \"y_target\":\n> +                            [\n> +                                0, 0.8,\n> +                                1000, 0.8\n> +                            ]\n> +                        }\n> +                    ],\n> +                    \"shadows\": [\n> +                        {\n> +                            \"bound\": \"LOWER\",\n> +                            \"q_lo\": 0.0,\n> +                            \"q_hi\": 0.5,\n> +                            \"y_target\":\n> +                            [\n> +                                0, 0.17,\n> +                                1000, 0.17\n> +                            ]\n> +                        }\n> +                    ]\n> +                },\n> +                \"y_target\":\n> +                [\n> +                    0, 0.16,\n> +                    1000, 0.165,\n> +                    10000, 0.17\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.contrast\":\n> +            {\n> +                \"ce_enable\": 0,\n> +                \"gamma_curve\":\n> +                [\n> +                    0, 0,\n> +                    512, 2304,\n> +                    1024, 4608,\n> +                    1536, 6573,\n> +                    2048, 8401,\n> +                    2560, 9992,\n> +                    3072, 11418,\n> +                    3584, 12719,\n> +                    4096, 13922,\n> +                    4608, 15045,\n> +                    5120, 16103,\n> +                    5632, 17104,\n> +                    6144, 18056,\n> +                    6656, 18967,\n> +                    7168, 19839,\n> +                    7680, 20679,\n> +                    8192, 21488,\n> +                    9216, 23028,\n> +                    10240, 24477,\n> +                    11264, 25849,\n> +                    12288, 27154,\n> +                    13312, 28401,\n> +                    14336, 29597,\n> +                    15360, 30747,\n> +                    16384, 31856,\n> +                    17408, 32928,\n> +                    18432, 33966,\n> +                    19456, 34973,\n> +                    20480, 35952,\n> +                    22528, 37832,\n> +                    24576, 39621,\n> +                    26624, 41330,\n> +                    28672, 42969,\n> +                    30720, 44545,\n> +                    32768, 46065,\n> +                    34816, 47534,\n> +                    36864, 48956,\n> +                    38912, 50336,\n> +                    40960, 51677,\n> +                    43008, 52982,\n> +                    45056, 54253,\n> +                    47104, 55493,\n> +                    49152, 56704,\n> +                    51200, 57888,\n> +                    53248, 59046,\n> +                    55296, 60181,\n> +                    57344, 61292,\n> +                    59392, 62382,\n> +                    61440, 63452,\n> +                    63488, 64503,\n> +                    65535, 65535\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.ccm\":\n> +            {\n> +                \"ccms\": [\n> +                    {\n> +                        \"ct\": 2000,\n> +                        \"ccm\":\n> +                        [\n> +                            1.5813882365848004, -0.35293683714581114, -0.27378771561617715,\n> +                            -0.4347297185453639, 1.5792631087746074, -0.12102601986382337,\n> +                            0.2322290578987574, -1.4382672640468128, 2.1386425781770755\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 2200,\n> +                        \"ccm\":\n> +                        [\n> +                            1.6322048484088305, -0.45932286857238486, -0.21373542690252198,\n> +                            -0.3970719209901105, 1.5877868651467202, -0.17249380832122455,\n> +                            0.20753774825903412, -1.2660673594740142, 2.005654261091916\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 2400,\n> +                        \"ccm\":\n> +                        [\n> +                            1.6766610071470398, -0.5447101051688111, -0.16838641107407676,\n> +                            -0.3659845183388154, 1.592223692670396, -0.2127091997471162,\n> +                            0.1833964516767549, -1.1339155942419321, 1.9089342978542396\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 2600,\n> +                        \"ccm\":\n> +                        [\n> +                            1.7161984340622154, -0.6152585785678794, -0.1331100845092582,\n> +                            -0.33972082628066275, 1.5944888273736966, -0.2453979465898787,\n> +                            0.1615577497676328, -1.0298684958833109, 1.8357854177422053\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 2800,\n> +                        \"ccm\":\n> +                        [\n> +                            1.7519307259815728, -0.6748682080165339, -0.10515169074540848,\n> +                            -0.3171703484479931, 1.5955820297498486, -0.2727395854813966,\n> +                            0.14230870739974305, -0.9460976023551511, 1.778709391659538\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 3000,\n> +                        \"ccm\":\n> +                        [\n> +                            1.7846716625128374, -0.7261240476375332, -0.08274697420358428,\n> +                            -0.2975654035173307, 1.5960425637021738, -0.2961043416505157,\n> +                            0.12546426281675097, -0.8773434727076518, 1.7330356805246685\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 3200,\n> +                        \"ccm\":\n> +                        [\n> +                            1.8150085872943436, -0.7708109672515514, -0.06469468211419174,\n> +                            -0.2803468940646277, 1.596168842967451, -0.3164044170681625,\n> +                            0.11071494533513807, -0.8199772290209191, 1.69572135046367\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 3400,\n> +                        \"ccm\":\n> +                        [\n> +                            1.8433668304932087, -0.8102060605062592, -0.05013485852801454,\n> +                            -0.2650934036324084, 1.5961288492969294, -0.33427554893845535,\n> +                            0.0977478941863518, -0.7714303112098978, 1.6647070820146963\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 3600,\n> +                        \"ccm\":\n> +                        [\n> +                            1.8700575831917468, -0.8452518300291346, -0.03842644337477299,\n> +                            -0.2514794528347016, 1.5960178299141876, -0.3501774949366156,\n> +                            0.08628520830733245, -0.729841503339915, 1.638553343939267\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 4100,\n> +                        \"ccm\":\n> +                        [\n> +                            1.8988700903560716, -0.8911278803351247, -0.018848644425650693,\n> +                            -0.21487101487384094, 1.599236541382614, -0.39405450457918206,\n> +                            0.08251488056482173, -0.7178919368326191, 1.6267009056502704\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 4600,\n> +                        \"ccm\":\n> +                        [\n> +                            1.960355191764125, -0.9624344812121991, -0.0017122408632169205,\n> +                            -0.19444620905212898, 1.5978493736948447, -0.416727638296156,\n> +                            0.06310261513271084, -0.6483790952487849, 1.5834605477213093\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 5100,\n> +                        \"ccm\":\n> +                        [\n> +                            2.014680536961399, -1.0195930302148566, 0.007728256612638915,\n> +                            -0.17751999660735496, 1.5977081555831, -0.4366085498741474,\n> +                            0.04741267583041334, -0.5950327902073489, 1.5512919847321853\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 5600,\n> +                        \"ccm\":\n> +                        [\n> +                            2.062652337917251, -1.0658386679125478, 0.011886354256281267,\n> +                            -0.16319197721451495, 1.598363237584736, -0.45422061523742235,\n> +                            0.03465810928795378, -0.5535454108047286, 1.5269025836946852\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 6100,\n> +                        \"ccm\":\n> +                        [\n> +                            2.104985902038069, -1.103597868736314, 0.012503517136539277,\n> +                            -0.15090797064906178, 1.5994703078166095, -0.4698414300864995,\n> +                            0.02421766063474242, -0.5208922818196823, 1.5081270847783788\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 6600,\n> +                        \"ccm\":\n> +                        [\n> +                            2.1424988751299714, -1.134760232367728, 0.010730356010435522,\n> +                            -0.14021846798466234, 1.600822462230719, -0.48379204794526487,\n> +                            0.015521315410496622, -0.49463630325832275, 1.4933313534840327\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 7100,\n> +                        \"ccm\":\n> +                        [\n> +                            2.1758034100130925, -1.1607558481037359, 0.007452724895469076,\n> +                            -0.13085694672641826, 1.6022648614493245, -0.4962330524084075,\n> +                            0.008226943206113427, -0.4733077192319791, 1.4815336120437468\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 7600,\n> +                        \"ccm\":\n> +                        [\n> +                            2.205529206931895, -1.1826662383072108, 0.0032019529917605167,\n> +                            -0.122572009780486, 1.6037258133595753, -0.5073973734282445,\n> +                            0.0020132587619863425, -0.4556590236414181, 1.471939788496745\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 8100,\n> +                        \"ccm\":\n> +                        [\n> +                            2.232224969223067, -1.2013672897252885, -0.0016234598095482985,\n> +                            -0.11518026734442414, 1.6051544769439803, -0.5174558699422255,\n> +                            -0.0033378143542219835, -0.4408590373867774, 1.4640252230667452\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 8600,\n> +                        \"ccm\":\n> +                        [\n> +                            2.256082295891265, -1.2173210549996634, -0.0067231350481711675,\n> +                            -0.10860272839843167, 1.6065150139140594, -0.5264728573611493,\n> +                            -0.007952618707984149, -0.4284003574050791, 1.4574646927117558\n> +                        ]\n> +                    }\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.sharpen\": { }\n> +        },\n> +        {\n> +            \"rpi.focus\": { }\n> +        }\n> +    ]\n> +}\n> \\ No newline at end of file\n> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> index 84c1dabbec9c..5565508cf602 100644\n> --- a/src/ipa/raspberrypi/data/meson.build\n> +++ b/src/ipa/raspberrypi/data/meson.build\n> @@ -9,6 +9,7 @@ conf_files = files([\n>      'imx378.json',\n>      'imx477.json',\n>      'imx477_noir.json',\n> +    'imx477_scientific.json',\n>      'imx519.json',\n>      'ov5647.json',\n>      'ov5647_noir.json',\n> --\n> 2.25.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 8EFD4C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 16 Dec 2022 14:08:15 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 037856339E;\n\tFri, 16 Dec 2022 15:08:15 +0100 (CET)","from mail-oa1-x2b.google.com (mail-oa1-x2b.google.com\n\t[IPv6:2001:4860:4864:20::2b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EA3C3603D0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Dec 2022 15:08:13 +0100 (CET)","by mail-oa1-x2b.google.com with SMTP id\n\t586e51a60fabf-1442977d77dso3355993fac.6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Dec 2022 06:08:13 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1671199695;\n\tbh=Ah4zwQNkwCP2OesNsM8gBO8Svt9/+JAlmZQcVei2WqA=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=03SxyRvKa0qvtXjxTDIchm2cdliIL4pHGlZC8Fsj02gv9ot9radnXWEixChSBqzlb\n\thUF3EVqGU8HYcAuVyltefgWCvDuCNDJXSW0mZ7v2aGIln/tv+0BzCTCgbhz3NzxVK1\n\tlb0gE5zrZ3j7HXnxGQOUGZay9yqB7EnwHdIA8vAVqvaRb7BHqa0s6D0SgWlPStxv4Z\n\t+0ZO2vX2O0H5TPb8DDzjlJYkmFJSO5jfEGlHjgoMa/iFOIz15XyGiz4k/8G8ovbpRQ\n\tqpGKnoQDkI4GS8WVKxkOPbz+Mnsp2LrK6oiJlNoI4uuh8iG2GkzMkCoJQoSj8qbp1w\n\tqREDut6Di2Y8Q==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=2SIUFgSPcb5XWT763SD7p4xXzHqTzFJzr++3J0eyX+0=;\n\tb=le+9juzFzWyd0m2CuRk4f+GCFN0/sY4isrZ0LkE2aEcRAjMlyHy5lut9VcoV1TPl0F\n\tbgsdsKc3r36Wm+nWesod6ZxlG2dPjP7ssXXjz5LuAW8GMn8N+DXjKvNsxkSIAPMiVOF5\n\t754iIMwEvY1uF17ihgat9klv6lXUOvIuv19C9AkXKUQ/6nzQscsLx69t75/VQoA7efmt\n\t+ZZcnbrTESTKlMDmM8mcn1mhKt2STwlMCWe3OJ06po0iDZahVtoF5oNNYCYJpwECOr3r\n\thzYKwUuoYgIxuI/eaWFxdYQtJB38mhLki4Ezp6pt3UsxkIFBKQT7ZS/SXiftqm3ObTOP\n\tKLLA=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"le+9juzF\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=2SIUFgSPcb5XWT763SD7p4xXzHqTzFJzr++3J0eyX+0=;\n\tb=QYkotiG8pPfKKyIqFn83pzCS+N7ZwJ4EzuGteNZN5iid+kO0sgjQ06eOQkM2czZ4ki\n\tlFyxuS360W9o+W7Sd1bM8GV8gubc75lI08L5mEhBdylTtktXV69KTYN32l3lHEussqb2\n\t7OURudhuPYw8D59pMZlyMAHQMoM7URJyqShWCElovzm1cGaKx0gvFyxjIMlsF5KhBzbr\n\t8k/8APky6PsJVRsjK2UufuRjnl27zEQKfBTQ9qWvlzE7kPedMHy+ntpo1x51JO61ZJTj\n\t/ByQAM0LcES0bMxWlH9RLQ/BdRLUgvB9rJpRka+d4GY3tQwt2XMGPEBA/5HBDyAZWRiH\n\tejqA==","X-Gm-Message-State":"AFqh2kotx2VGt2nTjnAwMsrWYC1KqF/IQrMv5erUkJMCvhqG580C8X0x\n\tXB2wouMRz557CSxNK+ykG6EejKkHLQ6JeXBYgXjw9w==","X-Google-Smtp-Source":"AA0mqf6voKpKsSqWIb02aX48FrCdMH5IIO9d/vmpkV7LSEoaFbx/xylCmHmkiO4s7cMZdSct241WXhGwaa/velsO6O8=","X-Received":"by 2002:a05:6870:a190:b0:144:8e6c:cb87 with SMTP id\n\ta16-20020a056870a19000b001448e6ccb87mr576799oaf.20.1671199692520;\n\tFri, 16 Dec 2022 06:08:12 -0800 (PST)","MIME-Version":"1.0","References":"<20221216135903.17446-1-naush@raspberrypi.com>","In-Reply-To":"<20221216135903.17446-1-naush@raspberrypi.com>","Date":"Fri, 16 Dec 2022 14:08:01 +0000","Message-ID":"<CAHW6GY+nXGR19ckDubUWpwXGwbFiqbF7F=pxY4Z8vEWVDgMdQg@mail.gmail.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"David Plowman <david.plowman@raspberrypi.com>","Cc":"Rolf Henkel <cpixip@pixelcircus.com>, libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26097,"web_url":"https://patchwork.libcamera.org/comment/26097/","msgid":"<167120074724.9133.8416585353542833664@Monstersaurus>","date":"2022-12-16T14:25:47","subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Naushir Patuck via libcamera-devel (2022-12-16 13:59:03)\n> Add a tuning file for the IMX477 more suited to scientific applications.\n> The key differences from the original tuning file are:\n> \n> - Disable ALSC block completely\n> - Pure rec709 gamma curve, and no contrast enhance\n> - New CT curve and CCMs based on the illumination spectrum of a black body\n> radiator up to about 3600 K and the CIE illuminant D for higher color\n> temperatures.\n> \n> Further details on the changes can be found at:\n> https://forums.raspberrypi.com/viewtopic.php?t=343449\n> \n> All credit for these changes go to Dr. Rolf Henkel.\n\nSome very interesting investigations in that thread.\n\nI'm curious if we'll end up with more configurations like this for each\nsensor! But I really like the graphs to present what the tuning files\nare doing comparitively. Much easier to grasp than a file of json\ndata...\n\nNo objections to this here but apart from admiring the graphs, I won't\njudge the data so:\n\nAcked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\nMy only concern/comment would be how and where would we document the\ndifferences between these tuning files? Would users just be expected to\ntry them to see ? Or would it be clear that a 'scientific' tuning file\nhas a specific set of properties ?\n\nBut any / all of that could be addressed later if needed I think.\n\n\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> Signed-off-by: Rolf Henkel <cpixip@pixelcircus.com>\n> ---\n>  .../raspberrypi/data/imx477_scientific.json   | 482 ++++++++++++++++++\n>  src/ipa/raspberrypi/data/meson.build          |   1 +\n>  2 files changed, 483 insertions(+)\n>  create mode 100755 src/ipa/raspberrypi/data/imx477_scientific.json\n> \n> diff --git a/src/ipa/raspberrypi/data/imx477_scientific.json b/src/ipa/raspberrypi/data/imx477_scientific.json\n> new file mode 100755\n> index 000000000000..17c4ed0a5e74\n> --- /dev/null\n> +++ b/src/ipa/raspberrypi/data/imx477_scientific.json\n> @@ -0,0 +1,482 @@\n> +{\n> +    \"version\": 2.0,\n> +    \"target\": \"bcm2835\",\n> +    \"algorithms\": [\n> +        {\n> +            \"rpi.black_level\":\n> +            {\n> +                \"black_level\": 4096\n> +            }\n> +        },\n> +        {\n> +            \"rpi.dpc\": { }\n> +        },\n> +        {\n> +            \"rpi.lux\":\n> +            {\n> +                \"reference_shutter_speed\": 27242,\n> +                \"reference_gain\": 1.0,\n> +                \"reference_aperture\": 1.0,\n> +                \"reference_lux\": 830,\n> +                \"reference_Y\": 17755\n> +            }\n> +        },\n> +        {\n> +            \"rpi.noise\":\n> +            {\n> +                \"reference_constant\": 0,\n> +                \"reference_slope\": 2.767\n> +            }\n> +        },\n> +        {\n> +            \"rpi.geq\":\n> +            {\n> +                \"offset\": 204,\n> +                \"slope\": 0.01078\n> +            }\n> +        },\n> +        {\n> +            \"rpi.sdn\": { }\n> +        },\n> +        {\n> +            \"rpi.awb\":\n> +            {\n> +                \"priors\": [\n> +                    {\n> +                        \"lux\": 0,\n> +                        \"prior\":\n> +                        [\n> +                            2000, 1.0,\n> +                            3000, 0.0,\n> +                            13000, 0.0\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"lux\": 800,\n> +                        \"prior\":\n> +                        [\n> +                            2000, 0.0,\n> +                            6000, 2.0,\n> +                            13000, 2.0\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"lux\": 1500,\n> +                        \"prior\":\n> +                        [\n> +                            2000, 0.0,\n> +                            4000, 1.0,\n> +                            6000, 6.0,\n> +                            6500, 7.0,\n> +                            7000, 1.0,\n> +                            13000, 1.0\n> +                        ]\n> +                    }\n> +                ],\n> +                \"modes\":\n> +                {\n> +                    \"auto\":\n> +                    {\n> +                        \"lo\": 2500,\n> +                        \"hi\": 8000\n> +                    },\n> +                    \"incandescent\":\n> +                    {\n> +                        \"lo\": 2500,\n> +                        \"hi\": 3000\n> +                    },\n> +                    \"tungsten\":\n> +                    {\n> +                        \"lo\": 3000,\n> +                        \"hi\": 3500\n> +                    },\n> +                    \"fluorescent\":\n> +                    {\n> +                        \"lo\": 4000,\n> +                        \"hi\": 4700\n> +                    },\n> +                    \"indoor\":\n> +                    {\n> +                        \"lo\": 3000,\n> +                        \"hi\": 5000\n> +                    },\n> +                    \"daylight\":\n> +                    {\n> +                        \"lo\": 5500,\n> +                        \"hi\": 6500\n> +                    },\n> +                    \"cloudy\":\n> +                    {\n> +                        \"lo\": 7000,\n> +                        \"hi\": 8600\n> +                    }\n> +                },\n> +                \"bayes\": 1,\n> +                \"ct_curve\":\n> +                [\n> +                    2000.0, 0.6331025775790707, 0.27424225990946915,\n> +                    2200.0, 0.5696117366212947, 0.3116091368689487,\n> +                    2400.0, 0.5204264653110015, 0.34892179554105873,\n> +                    2600.0, 0.48148675531667223, 0.38565229719076793,\n> +                    2800.0, 0.450085403501908, 0.42145684622485047,\n> +                    3000.0, 0.42436130159169017, 0.45611835670028816,\n> +                    3200.0, 0.40300023695527337, 0.48950766215198593,\n> +                    3400.0, 0.3850520052612984, 0.5215567075837261,\n> +                    3600.0, 0.36981508088230314, 0.5522397906415475,\n> +                    4100.0, 0.333468007836758, 0.5909770465167908,\n> +                    4600.0, 0.31196097364221376, 0.6515706327327178,\n> +                    5100.0, 0.2961860409294588, 0.7068178946570284,\n> +                    5600.0, 0.2842607232745885, 0.7564837749584288,\n> +                    6100.0, 0.2750265787051251, 0.8006183524920533,\n> +                    6600.0, 0.2677057225584924, 0.8398879225373039,\n> +                    7100.0, 0.2617955199757274, 0.8746456080032436,\n> +                    7600.0, 0.25693714288250125, 0.905569559506562,\n> +                    8100.0, 0.25287531441063316, 0.9331696750390895,\n> +                    8600.0, 0.24946601483331993, 0.9576820904825795\n> +                ],\n> +                \"sensitivity_r\": 1.05,\n> +                \"sensitivity_b\": 1.05,\n> +                \"transverse_pos\": 0.0238,\n> +                \"transverse_neg\": 0.04429,\n> +                \"coarse_step\": 0.1\n> +            }\n> +        },\n> +        {\n> +            \"rpi.agc\":\n> +            {\n> +                \"metering_modes\":\n> +                {\n> +                    \"centre-weighted\":\n> +                    {\n> +                        \"weights\": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]\n> +                    },\n> +                    \"spot\":\n> +                    {\n> +                        \"weights\": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]\n> +                    },\n> +                    \"matrix\":\n> +                    {\n> +                        \"weights\": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]\n> +                    }\n> +                },\n> +                \"exposure_modes\":\n> +                {\n> +                    \"normal\":\n> +                    {\n> +                        \"shutter\": [ 100, 10000, 30000, 60000, 66666 ],\n> +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n> +                    },\n> +                    \"short\":\n> +                    {\n> +                        \"shutter\": [ 100, 5000, 10000, 20000, 33333 ],\n> +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n> +                    },\n> +                    \"long\":\n> +                    {\n> +                        \"shutter\": [ 100, 10000, 30000, 60000, 120000 ],\n> +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]\n> +                    }\n> +                },\n> +                \"constraint_modes\":\n> +                {\n> +                    \"normal\": [\n> +                        {\n> +                            \"bound\": \"LOWER\",\n> +                            \"q_lo\": 0.98,\n> +                            \"q_hi\": 1.0,\n> +                            \"y_target\":\n> +                            [\n> +                                0, 0.3,\n> +                                1000, 0.3\n> +                            ]\n> +                        }\n> +                    ],\n> +                    \"highlight\": [\n> +                        {\n> +                            \"bound\": \"LOWER\",\n> +                            \"q_lo\": 0.98,\n> +                            \"q_hi\": 1.0,\n> +                            \"y_target\":\n> +                            [\n> +                                0, 0.3,\n> +                                1000, 0.3\n> +                            ]\n> +                        },\n> +                        {\n> +                            \"bound\": \"UPPER\",\n> +                            \"q_lo\": 0.98,\n> +                            \"q_hi\": 1.0,\n> +                            \"y_target\":\n> +                            [\n> +                                0, 0.8,\n> +                                1000, 0.8\n> +                            ]\n> +                        }\n> +                    ],\n> +                    \"shadows\": [\n> +                        {\n> +                            \"bound\": \"LOWER\",\n> +                            \"q_lo\": 0.0,\n> +                            \"q_hi\": 0.5,\n> +                            \"y_target\":\n> +                            [\n> +                                0, 0.17,\n> +                                1000, 0.17\n> +                            ]\n> +                        }\n> +                    ]\n> +                },\n> +                \"y_target\":\n> +                [\n> +                    0, 0.16,\n> +                    1000, 0.165,\n> +                    10000, 0.17\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.contrast\":\n> +            {\n> +                \"ce_enable\": 0,\n> +                \"gamma_curve\":\n> +                [\n> +                    0, 0,\n> +                    512, 2304,\n> +                    1024, 4608,\n> +                    1536, 6573,\n> +                    2048, 8401,\n> +                    2560, 9992,\n> +                    3072, 11418,\n> +                    3584, 12719,\n> +                    4096, 13922,\n> +                    4608, 15045,\n> +                    5120, 16103,\n> +                    5632, 17104,\n> +                    6144, 18056,\n> +                    6656, 18967,\n> +                    7168, 19839,\n> +                    7680, 20679,\n> +                    8192, 21488,\n> +                    9216, 23028,\n> +                    10240, 24477,\n> +                    11264, 25849,\n> +                    12288, 27154,\n> +                    13312, 28401,\n> +                    14336, 29597,\n> +                    15360, 30747,\n> +                    16384, 31856,\n> +                    17408, 32928,\n> +                    18432, 33966,\n> +                    19456, 34973,\n> +                    20480, 35952,\n> +                    22528, 37832,\n> +                    24576, 39621,\n> +                    26624, 41330,\n> +                    28672, 42969,\n> +                    30720, 44545,\n> +                    32768, 46065,\n> +                    34816, 47534,\n> +                    36864, 48956,\n> +                    38912, 50336,\n> +                    40960, 51677,\n> +                    43008, 52982,\n> +                    45056, 54253,\n> +                    47104, 55493,\n> +                    49152, 56704,\n> +                    51200, 57888,\n> +                    53248, 59046,\n> +                    55296, 60181,\n> +                    57344, 61292,\n> +                    59392, 62382,\n> +                    61440, 63452,\n> +                    63488, 64503,\n> +                    65535, 65535\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.ccm\":\n> +            {\n> +                \"ccms\": [\n> +                    {\n> +                        \"ct\": 2000,\n> +                        \"ccm\":\n> +                        [\n> +                            1.5813882365848004, -0.35293683714581114, -0.27378771561617715,\n> +                            -0.4347297185453639, 1.5792631087746074, -0.12102601986382337,\n> +                            0.2322290578987574, -1.4382672640468128, 2.1386425781770755\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 2200,\n> +                        \"ccm\":\n> +                        [\n> +                            1.6322048484088305, -0.45932286857238486, -0.21373542690252198,\n> +                            -0.3970719209901105, 1.5877868651467202, -0.17249380832122455,\n> +                            0.20753774825903412, -1.2660673594740142, 2.005654261091916\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 2400,\n> +                        \"ccm\":\n> +                        [\n> +                            1.6766610071470398, -0.5447101051688111, -0.16838641107407676,\n> +                            -0.3659845183388154, 1.592223692670396, -0.2127091997471162,\n> +                            0.1833964516767549, -1.1339155942419321, 1.9089342978542396\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 2600,\n> +                        \"ccm\":\n> +                        [\n> +                            1.7161984340622154, -0.6152585785678794, -0.1331100845092582,\n> +                            -0.33972082628066275, 1.5944888273736966, -0.2453979465898787,\n> +                            0.1615577497676328, -1.0298684958833109, 1.8357854177422053\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 2800,\n> +                        \"ccm\":\n> +                        [\n> +                            1.7519307259815728, -0.6748682080165339, -0.10515169074540848,\n> +                            -0.3171703484479931, 1.5955820297498486, -0.2727395854813966,\n> +                            0.14230870739974305, -0.9460976023551511, 1.778709391659538\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 3000,\n> +                        \"ccm\":\n> +                        [\n> +                            1.7846716625128374, -0.7261240476375332, -0.08274697420358428,\n> +                            -0.2975654035173307, 1.5960425637021738, -0.2961043416505157,\n> +                            0.12546426281675097, -0.8773434727076518, 1.7330356805246685\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 3200,\n> +                        \"ccm\":\n> +                        [\n> +                            1.8150085872943436, -0.7708109672515514, -0.06469468211419174,\n> +                            -0.2803468940646277, 1.596168842967451, -0.3164044170681625,\n> +                            0.11071494533513807, -0.8199772290209191, 1.69572135046367\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 3400,\n> +                        \"ccm\":\n> +                        [\n> +                            1.8433668304932087, -0.8102060605062592, -0.05013485852801454,\n> +                            -0.2650934036324084, 1.5961288492969294, -0.33427554893845535,\n> +                            0.0977478941863518, -0.7714303112098978, 1.6647070820146963\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 3600,\n> +                        \"ccm\":\n> +                        [\n> +                            1.8700575831917468, -0.8452518300291346, -0.03842644337477299,\n> +                            -0.2514794528347016, 1.5960178299141876, -0.3501774949366156,\n> +                            0.08628520830733245, -0.729841503339915, 1.638553343939267\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 4100,\n> +                        \"ccm\":\n> +                        [\n> +                            1.8988700903560716, -0.8911278803351247, -0.018848644425650693,\n> +                            -0.21487101487384094, 1.599236541382614, -0.39405450457918206,\n> +                            0.08251488056482173, -0.7178919368326191, 1.6267009056502704\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 4600,\n> +                        \"ccm\":\n> +                        [\n> +                            1.960355191764125, -0.9624344812121991, -0.0017122408632169205,\n> +                            -0.19444620905212898, 1.5978493736948447, -0.416727638296156,\n> +                            0.06310261513271084, -0.6483790952487849, 1.5834605477213093\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 5100,\n> +                        \"ccm\":\n> +                        [\n> +                            2.014680536961399, -1.0195930302148566, 0.007728256612638915,\n> +                            -0.17751999660735496, 1.5977081555831, -0.4366085498741474,\n> +                            0.04741267583041334, -0.5950327902073489, 1.5512919847321853\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 5600,\n> +                        \"ccm\":\n> +                        [\n> +                            2.062652337917251, -1.0658386679125478, 0.011886354256281267,\n> +                            -0.16319197721451495, 1.598363237584736, -0.45422061523742235,\n> +                            0.03465810928795378, -0.5535454108047286, 1.5269025836946852\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 6100,\n> +                        \"ccm\":\n> +                        [\n> +                            2.104985902038069, -1.103597868736314, 0.012503517136539277,\n> +                            -0.15090797064906178, 1.5994703078166095, -0.4698414300864995,\n> +                            0.02421766063474242, -0.5208922818196823, 1.5081270847783788\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 6600,\n> +                        \"ccm\":\n> +                        [\n> +                            2.1424988751299714, -1.134760232367728, 0.010730356010435522,\n> +                            -0.14021846798466234, 1.600822462230719, -0.48379204794526487,\n> +                            0.015521315410496622, -0.49463630325832275, 1.4933313534840327\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 7100,\n> +                        \"ccm\":\n> +                        [\n> +                            2.1758034100130925, -1.1607558481037359, 0.007452724895469076,\n> +                            -0.13085694672641826, 1.6022648614493245, -0.4962330524084075,\n> +                            0.008226943206113427, -0.4733077192319791, 1.4815336120437468\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 7600,\n> +                        \"ccm\":\n> +                        [\n> +                            2.205529206931895, -1.1826662383072108, 0.0032019529917605167,\n> +                            -0.122572009780486, 1.6037258133595753, -0.5073973734282445,\n> +                            0.0020132587619863425, -0.4556590236414181, 1.471939788496745\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 8100,\n> +                        \"ccm\":\n> +                        [\n> +                            2.232224969223067, -1.2013672897252885, -0.0016234598095482985,\n> +                            -0.11518026734442414, 1.6051544769439803, -0.5174558699422255,\n> +                            -0.0033378143542219835, -0.4408590373867774, 1.4640252230667452\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 8600,\n> +                        \"ccm\":\n> +                        [\n> +                            2.256082295891265, -1.2173210549996634, -0.0067231350481711675,\n> +                            -0.10860272839843167, 1.6065150139140594, -0.5264728573611493,\n> +                            -0.007952618707984149, -0.4284003574050791, 1.4574646927117558\n> +                        ]\n> +                    }\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.sharpen\": { }\n> +        },\n> +        {\n> +            \"rpi.focus\": { }\n> +        }\n> +    ]\n> +}\n> \\ No newline at end of file\n> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> index 84c1dabbec9c..5565508cf602 100644\n> --- a/src/ipa/raspberrypi/data/meson.build\n> +++ b/src/ipa/raspberrypi/data/meson.build\n> @@ -9,6 +9,7 @@ conf_files = files([\n>      'imx378.json',\n>      'imx477.json',\n>      'imx477_noir.json',\n> +    'imx477_scientific.json',\n>      'imx519.json',\n>      'ov5647.json',\n>      'ov5647_noir.json',\n> -- \n> 2.25.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id CCF87C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 16 Dec 2022 14:25:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5D4BD6339D;\n\tFri, 16 Dec 2022 15:25:51 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id ECFD3603D0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Dec 2022 15:25:49 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 85D62A31;\n\tFri, 16 Dec 2022 15:25:49 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1671200751;\n\tbh=yZzGyh7/8cGteTu5YxEnYotzpgDzPPVeQhyUEErIjJ8=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=YDzuivuUkLs4bKZvA3Vt5zRoEimV6k33gGp5r7a9bP0ro25e+7tOucKAUVtc9yLzi\n\tO3BFYI6udBmhFivk/DcSEcN77gcYozrC0I2nP4Tjfnfm5u5VmBcVSrfKpJuwD/sNXv\n\tohBEJKspReKhZpztcqnaa4L+9qz1QqZobXZnQoIY87kn1HGB8iW/R2bmCc6x4EHmdK\n\tlyeKRRPsydNAZPkXTwQngCcctxBDPulygNZknD0ROalQcZTSqepEkdvY+SedHcHHh4\n\t7HcSYoJn3goWMf5nT6G+sKR9UakKSfQbstnMIMh0cXvprODDI2whxRhyZ6o/GSzowK\n\t3iRgQ2FzVuh/w==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1671200749;\n\tbh=yZzGyh7/8cGteTu5YxEnYotzpgDzPPVeQhyUEErIjJ8=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=n6gx6a/2uC08wVExnCo5ly6vMAnUyM+3peK2OPy9vkOWQOd6G92jUzEX1FuvIlumP\n\t0rPEeDDUtO9zw2p1qNZISOdgZjQwA65x+itnEH5xTdcIMfi9EVZtMx40wMnzhPJ7cZ\n\th6IQaIoFDMSSWsIEG+0wF+ISUgbxXI7G/xhJchqs="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"n6gx6a/2\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20221216135903.17446-1-naush@raspberrypi.com>","References":"<20221216135903.17446-1-naush@raspberrypi.com>","To":"Naushir Patuck <naush@raspberrypi.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Fri, 16 Dec 2022 14:25:47 +0000","Message-ID":"<167120074724.9133.8416585353542833664@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Rolf Henkel <cpixip@pixelcircus.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26100,"web_url":"https://patchwork.libcamera.org/comment/26100/","msgid":"<CAEmqJPo0V+M6LPmR0NUVLMCZrm7V-yK5Zo5zGGfAOFKTzjjZhA@mail.gmail.com>","date":"2022-12-16T15:09:55","subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"On Fri, 16 Dec 2022 at 14:25, Kieran Bingham <\nkieran.bingham@ideasonboard.com> wrote:\n\n> Quoting Naushir Patuck via libcamera-devel (2022-12-16 13:59:03)\n> > Add a tuning file for the IMX477 more suited to scientific applications.\n> > The key differences from the original tuning file are:\n> >\n> > - Disable ALSC block completely\n> > - Pure rec709 gamma curve, and no contrast enhance\n> > - New CT curve and CCMs based on the illumination spectrum of a black\n> body\n> > radiator up to about 3600 K and the CIE illuminant D for higher color\n> > temperatures.\n> >\n> > Further details on the changes can be found at:\n> > https://forums.raspberrypi.com/viewtopic.php?t=343449\n> >\n> > All credit for these changes go to Dr. Rolf Henkel.\n>\n> Some very interesting investigations in that thread.\n>\n> I'm curious if we'll end up with more configurations like this for each\n> sensor!\n\n\nI think that's entirely possible - and all part of the design with json\nconfig\nfiles!\n\n\n> But I really like the graphs to present what the tuning files\n> are doing comparitively. Much easier to grasp than a file of json\n> data...\n>\n> No objections to this here but apart from admiring the graphs, I won't\n> judge the data so:\n>\n> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n>\n> My only concern/comment would be how and where would we document the\n> differences between these tuning files? Would users just be expected to\n> try them to see ? Or would it be clear that a 'scientific' tuning file\n> has a specific set of properties ?\n>\n\nAt the end of the day, I think this is a choice for informed users.  We\nprovide\na sensible default config for visually pleasing images, but if users have a\nspecific application that requires something custom, we leave it to them to\nswitch to the appropriate tuning file that they know works for them.\n\nRegards,\nNaush\n\n\n>\n> But any / all of that could be addressed later if needed I think.\n>\n>\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > Signed-off-by: Rolf Henkel <cpixip@pixelcircus.com>\n> > ---\n> >  .../raspberrypi/data/imx477_scientific.json   | 482 ++++++++++++++++++\n> >  src/ipa/raspberrypi/data/meson.build          |   1 +\n> >  2 files changed, 483 insertions(+)\n> >  create mode 100755 src/ipa/raspberrypi/data/imx477_scientific.json\n> >\n> > diff --git a/src/ipa/raspberrypi/data/imx477_scientific.json\n> b/src/ipa/raspberrypi/data/imx477_scientific.json\n> > new file mode 100755\n> > index 000000000000..17c4ed0a5e74\n> > --- /dev/null\n> > +++ b/src/ipa/raspberrypi/data/imx477_scientific.json\n> > @@ -0,0 +1,482 @@\n> > +{\n> > +    \"version\": 2.0,\n> > +    \"target\": \"bcm2835\",\n> > +    \"algorithms\": [\n> > +        {\n> > +            \"rpi.black_level\":\n> > +            {\n> > +                \"black_level\": 4096\n> > +            }\n> > +        },\n> > +        {\n> > +            \"rpi.dpc\": { }\n> > +        },\n> > +        {\n> > +            \"rpi.lux\":\n> > +            {\n> > +                \"reference_shutter_speed\": 27242,\n> > +                \"reference_gain\": 1.0,\n> > +                \"reference_aperture\": 1.0,\n> > +                \"reference_lux\": 830,\n> > +                \"reference_Y\": 17755\n> > +            }\n> > +        },\n> > +        {\n> > +            \"rpi.noise\":\n> > +            {\n> > +                \"reference_constant\": 0,\n> > +                \"reference_slope\": 2.767\n> > +            }\n> > +        },\n> > +        {\n> > +            \"rpi.geq\":\n> > +            {\n> > +                \"offset\": 204,\n> > +                \"slope\": 0.01078\n> > +            }\n> > +        },\n> > +        {\n> > +            \"rpi.sdn\": { }\n> > +        },\n> > +        {\n> > +            \"rpi.awb\":\n> > +            {\n> > +                \"priors\": [\n> > +                    {\n> > +                        \"lux\": 0,\n> > +                        \"prior\":\n> > +                        [\n> > +                            2000, 1.0,\n> > +                            3000, 0.0,\n> > +                            13000, 0.0\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"lux\": 800,\n> > +                        \"prior\":\n> > +                        [\n> > +                            2000, 0.0,\n> > +                            6000, 2.0,\n> > +                            13000, 2.0\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"lux\": 1500,\n> > +                        \"prior\":\n> > +                        [\n> > +                            2000, 0.0,\n> > +                            4000, 1.0,\n> > +                            6000, 6.0,\n> > +                            6500, 7.0,\n> > +                            7000, 1.0,\n> > +                            13000, 1.0\n> > +                        ]\n> > +                    }\n> > +                ],\n> > +                \"modes\":\n> > +                {\n> > +                    \"auto\":\n> > +                    {\n> > +                        \"lo\": 2500,\n> > +                        \"hi\": 8000\n> > +                    },\n> > +                    \"incandescent\":\n> > +                    {\n> > +                        \"lo\": 2500,\n> > +                        \"hi\": 3000\n> > +                    },\n> > +                    \"tungsten\":\n> > +                    {\n> > +                        \"lo\": 3000,\n> > +                        \"hi\": 3500\n> > +                    },\n> > +                    \"fluorescent\":\n> > +                    {\n> > +                        \"lo\": 4000,\n> > +                        \"hi\": 4700\n> > +                    },\n> > +                    \"indoor\":\n> > +                    {\n> > +                        \"lo\": 3000,\n> > +                        \"hi\": 5000\n> > +                    },\n> > +                    \"daylight\":\n> > +                    {\n> > +                        \"lo\": 5500,\n> > +                        \"hi\": 6500\n> > +                    },\n> > +                    \"cloudy\":\n> > +                    {\n> > +                        \"lo\": 7000,\n> > +                        \"hi\": 8600\n> > +                    }\n> > +                },\n> > +                \"bayes\": 1,\n> > +                \"ct_curve\":\n> > +                [\n> > +                    2000.0, 0.6331025775790707, 0.27424225990946915,\n> > +                    2200.0, 0.5696117366212947, 0.3116091368689487,\n> > +                    2400.0, 0.5204264653110015, 0.34892179554105873,\n> > +                    2600.0, 0.48148675531667223, 0.38565229719076793,\n> > +                    2800.0, 0.450085403501908, 0.42145684622485047,\n> > +                    3000.0, 0.42436130159169017, 0.45611835670028816,\n> > +                    3200.0, 0.40300023695527337, 0.48950766215198593,\n> > +                    3400.0, 0.3850520052612984, 0.5215567075837261,\n> > +                    3600.0, 0.36981508088230314, 0.5522397906415475,\n> > +                    4100.0, 0.333468007836758, 0.5909770465167908,\n> > +                    4600.0, 0.31196097364221376, 0.6515706327327178,\n> > +                    5100.0, 0.2961860409294588, 0.7068178946570284,\n> > +                    5600.0, 0.2842607232745885, 0.7564837749584288,\n> > +                    6100.0, 0.2750265787051251, 0.8006183524920533,\n> > +                    6600.0, 0.2677057225584924, 0.8398879225373039,\n> > +                    7100.0, 0.2617955199757274, 0.8746456080032436,\n> > +                    7600.0, 0.25693714288250125, 0.905569559506562,\n> > +                    8100.0, 0.25287531441063316, 0.9331696750390895,\n> > +                    8600.0, 0.24946601483331993, 0.9576820904825795\n> > +                ],\n> > +                \"sensitivity_r\": 1.05,\n> > +                \"sensitivity_b\": 1.05,\n> > +                \"transverse_pos\": 0.0238,\n> > +                \"transverse_neg\": 0.04429,\n> > +                \"coarse_step\": 0.1\n> > +            }\n> > +        },\n> > +        {\n> > +            \"rpi.agc\":\n> > +            {\n> > +                \"metering_modes\":\n> > +                {\n> > +                    \"centre-weighted\":\n> > +                    {\n> > +                        \"weights\": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1,\n> 0, 0, 0, 0 ]\n> > +                    },\n> > +                    \"spot\":\n> > +                    {\n> > +                        \"weights\": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,\n> 0, 0, 0, 0 ]\n> > +                    },\n> > +                    \"matrix\":\n> > +                    {\n> > +                        \"weights\": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> 1, 1, 1, 1 ]\n> > +                    }\n> > +                },\n> > +                \"exposure_modes\":\n> > +                {\n> > +                    \"normal\":\n> > +                    {\n> > +                        \"shutter\": [ 100, 10000, 30000, 60000, 66666 ],\n> > +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n> > +                    },\n> > +                    \"short\":\n> > +                    {\n> > +                        \"shutter\": [ 100, 5000, 10000, 20000, 33333 ],\n> > +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n> > +                    },\n> > +                    \"long\":\n> > +                    {\n> > +                        \"shutter\": [ 100, 10000, 30000, 60000, 120000 ],\n> > +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]\n> > +                    }\n> > +                },\n> > +                \"constraint_modes\":\n> > +                {\n> > +                    \"normal\": [\n> > +                        {\n> > +                            \"bound\": \"LOWER\",\n> > +                            \"q_lo\": 0.98,\n> > +                            \"q_hi\": 1.0,\n> > +                            \"y_target\":\n> > +                            [\n> > +                                0, 0.3,\n> > +                                1000, 0.3\n> > +                            ]\n> > +                        }\n> > +                    ],\n> > +                    \"highlight\": [\n> > +                        {\n> > +                            \"bound\": \"LOWER\",\n> > +                            \"q_lo\": 0.98,\n> > +                            \"q_hi\": 1.0,\n> > +                            \"y_target\":\n> > +                            [\n> > +                                0, 0.3,\n> > +                                1000, 0.3\n> > +                            ]\n> > +                        },\n> > +                        {\n> > +                            \"bound\": \"UPPER\",\n> > +                            \"q_lo\": 0.98,\n> > +                            \"q_hi\": 1.0,\n> > +                            \"y_target\":\n> > +                            [\n> > +                                0, 0.8,\n> > +                                1000, 0.8\n> > +                            ]\n> > +                        }\n> > +                    ],\n> > +                    \"shadows\": [\n> > +                        {\n> > +                            \"bound\": \"LOWER\",\n> > +                            \"q_lo\": 0.0,\n> > +                            \"q_hi\": 0.5,\n> > +                            \"y_target\":\n> > +                            [\n> > +                                0, 0.17,\n> > +                                1000, 0.17\n> > +                            ]\n> > +                        }\n> > +                    ]\n> > +                },\n> > +                \"y_target\":\n> > +                [\n> > +                    0, 0.16,\n> > +                    1000, 0.165,\n> > +                    10000, 0.17\n> > +                ]\n> > +            }\n> > +        },\n> > +        {\n> > +            \"rpi.contrast\":\n> > +            {\n> > +                \"ce_enable\": 0,\n> > +                \"gamma_curve\":\n> > +                [\n> > +                    0, 0,\n> > +                    512, 2304,\n> > +                    1024, 4608,\n> > +                    1536, 6573,\n> > +                    2048, 8401,\n> > +                    2560, 9992,\n> > +                    3072, 11418,\n> > +                    3584, 12719,\n> > +                    4096, 13922,\n> > +                    4608, 15045,\n> > +                    5120, 16103,\n> > +                    5632, 17104,\n> > +                    6144, 18056,\n> > +                    6656, 18967,\n> > +                    7168, 19839,\n> > +                    7680, 20679,\n> > +                    8192, 21488,\n> > +                    9216, 23028,\n> > +                    10240, 24477,\n> > +                    11264, 25849,\n> > +                    12288, 27154,\n> > +                    13312, 28401,\n> > +                    14336, 29597,\n> > +                    15360, 30747,\n> > +                    16384, 31856,\n> > +                    17408, 32928,\n> > +                    18432, 33966,\n> > +                    19456, 34973,\n> > +                    20480, 35952,\n> > +                    22528, 37832,\n> > +                    24576, 39621,\n> > +                    26624, 41330,\n> > +                    28672, 42969,\n> > +                    30720, 44545,\n> > +                    32768, 46065,\n> > +                    34816, 47534,\n> > +                    36864, 48956,\n> > +                    38912, 50336,\n> > +                    40960, 51677,\n> > +                    43008, 52982,\n> > +                    45056, 54253,\n> > +                    47104, 55493,\n> > +                    49152, 56704,\n> > +                    51200, 57888,\n> > +                    53248, 59046,\n> > +                    55296, 60181,\n> > +                    57344, 61292,\n> > +                    59392, 62382,\n> > +                    61440, 63452,\n> > +                    63488, 64503,\n> > +                    65535, 65535\n> > +                ]\n> > +            }\n> > +        },\n> > +        {\n> > +            \"rpi.ccm\":\n> > +            {\n> > +                \"ccms\": [\n> > +                    {\n> > +                        \"ct\": 2000,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            1.5813882365848004, -0.35293683714581114,\n> -0.27378771561617715,\n> > +                            -0.4347297185453639, 1.5792631087746074,\n> -0.12102601986382337,\n> > +                            0.2322290578987574, -1.4382672640468128,\n> 2.1386425781770755\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 2200,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            1.6322048484088305, -0.45932286857238486,\n> -0.21373542690252198,\n> > +                            -0.3970719209901105, 1.5877868651467202,\n> -0.17249380832122455,\n> > +                            0.20753774825903412, -1.2660673594740142,\n> 2.005654261091916\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 2400,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            1.6766610071470398, -0.5447101051688111,\n> -0.16838641107407676,\n> > +                            -0.3659845183388154, 1.592223692670396,\n> -0.2127091997471162,\n> > +                            0.1833964516767549, -1.1339155942419321,\n> 1.9089342978542396\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 2600,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            1.7161984340622154, -0.6152585785678794,\n> -0.1331100845092582,\n> > +                            -0.33972082628066275, 1.5944888273736966,\n> -0.2453979465898787,\n> > +                            0.1615577497676328, -1.0298684958833109,\n> 1.8357854177422053\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 2800,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            1.7519307259815728, -0.6748682080165339,\n> -0.10515169074540848,\n> > +                            -0.3171703484479931, 1.5955820297498486,\n> -0.2727395854813966,\n> > +                            0.14230870739974305, -0.9460976023551511,\n> 1.778709391659538\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 3000,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            1.7846716625128374, -0.7261240476375332,\n> -0.08274697420358428,\n> > +                            -0.2975654035173307, 1.5960425637021738,\n> -0.2961043416505157,\n> > +                            0.12546426281675097, -0.8773434727076518,\n> 1.7330356805246685\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 3200,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            1.8150085872943436, -0.7708109672515514,\n> -0.06469468211419174,\n> > +                            -0.2803468940646277, 1.596168842967451,\n> -0.3164044170681625,\n> > +                            0.11071494533513807, -0.8199772290209191,\n> 1.69572135046367\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 3400,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            1.8433668304932087, -0.8102060605062592,\n> -0.05013485852801454,\n> > +                            -0.2650934036324084, 1.5961288492969294,\n> -0.33427554893845535,\n> > +                            0.0977478941863518, -0.7714303112098978,\n> 1.6647070820146963\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 3600,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            1.8700575831917468, -0.8452518300291346,\n> -0.03842644337477299,\n> > +                            -0.2514794528347016, 1.5960178299141876,\n> -0.3501774949366156,\n> > +                            0.08628520830733245, -0.729841503339915,\n> 1.638553343939267\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 4100,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            1.8988700903560716, -0.8911278803351247,\n> -0.018848644425650693,\n> > +                            -0.21487101487384094, 1.599236541382614,\n> -0.39405450457918206,\n> > +                            0.08251488056482173, -0.7178919368326191,\n> 1.6267009056502704\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 4600,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            1.960355191764125, -0.9624344812121991,\n> -0.0017122408632169205,\n> > +                            -0.19444620905212898, 1.5978493736948447,\n> -0.416727638296156,\n> > +                            0.06310261513271084, -0.6483790952487849,\n> 1.5834605477213093\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 5100,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            2.014680536961399, -1.0195930302148566,\n> 0.007728256612638915,\n> > +                            -0.17751999660735496, 1.5977081555831,\n> -0.4366085498741474,\n> > +                            0.04741267583041334, -0.5950327902073489,\n> 1.5512919847321853\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 5600,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            2.062652337917251, -1.0658386679125478,\n> 0.011886354256281267,\n> > +                            -0.16319197721451495, 1.598363237584736,\n> -0.45422061523742235,\n> > +                            0.03465810928795378, -0.5535454108047286,\n> 1.5269025836946852\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 6100,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            2.104985902038069, -1.103597868736314,\n> 0.012503517136539277,\n> > +                            -0.15090797064906178, 1.5994703078166095,\n> -0.4698414300864995,\n> > +                            0.02421766063474242, -0.5208922818196823,\n> 1.5081270847783788\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 6600,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            2.1424988751299714, -1.134760232367728,\n> 0.010730356010435522,\n> > +                            -0.14021846798466234, 1.600822462230719,\n> -0.48379204794526487,\n> > +                            0.015521315410496622, -0.49463630325832275,\n> 1.4933313534840327\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 7100,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            2.1758034100130925, -1.1607558481037359,\n> 0.007452724895469076,\n> > +                            -0.13085694672641826, 1.6022648614493245,\n> -0.4962330524084075,\n> > +                            0.008226943206113427, -0.4733077192319791,\n> 1.4815336120437468\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 7600,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            2.205529206931895, -1.1826662383072108,\n> 0.0032019529917605167,\n> > +                            -0.122572009780486, 1.6037258133595753,\n> -0.5073973734282445,\n> > +                            0.0020132587619863425, -0.4556590236414181,\n> 1.471939788496745\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 8100,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            2.232224969223067, -1.2013672897252885,\n> -0.0016234598095482985,\n> > +                            -0.11518026734442414, 1.6051544769439803,\n> -0.5174558699422255,\n> > +                            -0.0033378143542219835,\n> -0.4408590373867774, 1.4640252230667452\n> > +                        ]\n> > +                    },\n> > +                    {\n> > +                        \"ct\": 8600,\n> > +                        \"ccm\":\n> > +                        [\n> > +                            2.256082295891265, -1.2173210549996634,\n> -0.0067231350481711675,\n> > +                            -0.10860272839843167, 1.6065150139140594,\n> -0.5264728573611493,\n> > +                            -0.007952618707984149, -0.4284003574050791,\n> 1.4574646927117558\n> > +                        ]\n> > +                    }\n> > +                ]\n> > +            }\n> > +        },\n> > +        {\n> > +            \"rpi.sharpen\": { }\n> > +        },\n> > +        {\n> > +            \"rpi.focus\": { }\n> > +        }\n> > +    ]\n> > +}\n> > \\ No newline at end of file\n> > diff --git a/src/ipa/raspberrypi/data/meson.build\n> b/src/ipa/raspberrypi/data/meson.build\n> > index 84c1dabbec9c..5565508cf602 100644\n> > --- a/src/ipa/raspberrypi/data/meson.build\n> > +++ b/src/ipa/raspberrypi/data/meson.build\n> > @@ -9,6 +9,7 @@ conf_files = files([\n> >      'imx378.json',\n> >      'imx477.json',\n> >      'imx477_noir.json',\n> > +    'imx477_scientific.json',\n> >      'imx519.json',\n> >      'ov5647.json',\n> >      'ov5647_noir.json',\n> > --\n> > 2.25.1\n> >\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 4F451C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 16 Dec 2022 15:10:15 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id ACE1F6339D;\n\tFri, 16 Dec 2022 16:10:14 +0100 (CET)","from mail-yb1-xb2f.google.com (mail-yb1-xb2f.google.com\n\t[IPv6:2607:f8b0:4864:20::b2f])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E42BF603D0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Dec 2022 16:10:12 +0100 (CET)","by mail-yb1-xb2f.google.com with SMTP id d128so2643895ybf.10\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Dec 2022 07:10:12 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1671203414;\n\tbh=ux7t6N6dT5D4Lg8h+eLJMqs8yAvJrYCyaQPRXo/5XZo=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=CCpmXDUy7lEMY9UkHUtstjpKxDrA1d+7o9bXtuNTDjvQIsf7YNOAD7Wg8LS6uCuqm\n\tbUSbtwbDH/aoWT0Z+z/fq/4PQFM89q24HcI8ZNE8AibIaQnxnNqzAuuv6L3ZKCEBdZ\n\tu5VrcEs4zDFEeKWGupR5tsantChMa6d9wSVhFKorI+HzgzUAOFXQbLnhvlM0xZohkG\n\ty0My/evDfekM7gTK9m9xW9AxBFcGCXl9q+NQ3WSu/mFeXywlLXmjktPZLUygEP4BUT\n\tg2NODphqPT9OMVCqS/LxHVgXmlvbB+OaLDAqznAdft0MhPXlnqgnVvgkUJU6BTEY3K\n\tDkmHRCCrSTDZw==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=vUnW6c1B+ZwyK4hA77IzUsmV45Lj5Cyizq41N2AtRag=;\n\tb=HqxW2O95xHw61G0K78ZaoPuQip7w+fomjlP4ui7RFSp8MRWPJnq7AfSRZQZkUnnIN3\n\tseqHwgaEEp7/xnfo1F9nxaUOwHnY2KIFudyno4OfQltjVhQI86R0d3kJ7e8K5VJHNJxm\n\t8G/d/53hRfXf8kX93/PJVliwxR1ftXP3S0zfPzva7syKRZOh6sX79YN7e8FHWUjo9rB/\n\tJ8DRCiiquLTs6MfVxfhi7JStL9d/YvNP9nIuAYV7sRnMX6xHZnIapNcBDKOoYelmEt7O\n\t5iwAy8NBl3rrLnH7RanYaLDsWSsOKmOEn8VvFtzOEuXRlc4m3i+6/duOWnyqtppnZkfS\n\tqowA=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"HqxW2O95\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=vUnW6c1B+ZwyK4hA77IzUsmV45Lj5Cyizq41N2AtRag=;\n\tb=xWQKpZKS6mliH23wxgghhGNYRVP96waCbnpKazohRVPP+AU6ZBKKtbDWa7B/hP1X0e\n\tbuCZDm/lVm/P0COjcIZ74JcuacuFp98sueX6B6/Cyx0hKjX6x2ZqJULs9kfn1ag7yiFQ\n\t43m37n1PshfPvwRjw9cOQvwdh635gbMBxJillxk3oqWIPBiMqL0YpShhK8IuLnh1Szjx\n\tO038ng5i08qrQpiN/6lTgWpHP6sPuMQCjmv3e/RQJbG2h0/LGJbW2iTXcA0LmQVHvZv+\n\thKJPd0cl3PPcBOUB0tiIVvJgGMjdJORKuAWNmdqVxJreVFsmoZFxiNBfm9qpjw6mm5Hw\n\teh4w==","X-Gm-Message-State":"ANoB5pliM96q60JKvWrQNyzakBX2JOBpFZKbRxfdqOd7yWju0675FPfj\n\th+FkpqhAyZCvtXdcaYrcRDoYaLWMP5QOQ2MKtl4Azetyz7hKg1Pwn7E=","X-Google-Smtp-Source":"AA0mqf4tkArRxzlrw2biVxYc4XpBfJ1W386aIFe42fK39+J9Qe9sWu/yhq+Sfv1tLpqo7eqN8DcVtFdkmJ6uWOGEun8=","X-Received":"by 2002:a25:e08b:0:b0:707:5779:216b with SMTP id\n\tx133-20020a25e08b000000b007075779216bmr9999728ybg.330.1671203411691;\n\tFri, 16 Dec 2022 07:10:11 -0800 (PST)","MIME-Version":"1.0","References":"<20221216135903.17446-1-naush@raspberrypi.com>\n\t<167120074724.9133.8416585353542833664@Monstersaurus>","In-Reply-To":"<167120074724.9133.8416585353542833664@Monstersaurus>","Date":"Fri, 16 Dec 2022 15:09:55 +0000","Message-ID":"<CAEmqJPo0V+M6LPmR0NUVLMCZrm7V-yK5Zo5zGGfAOFKTzjjZhA@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"multipart/alternative; boundary=\"000000000000b39ef405eff35dcb\"","Subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"Rolf Henkel <cpixip@pixelcircus.com>, libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26112,"web_url":"https://patchwork.libcamera.org/comment/26112/","msgid":"<Y6DrdnvmKJncv03q@pendragon.ideasonboard.com>","date":"2022-12-19T22:53:42","subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hello,\n\nOn Fri, Dec 16, 2022 at 03:09:55PM +0000, Naushir Patuck wrote:\n> On Fri, 16 Dec 2022 at 14:25, Kieran Bingham wrote:\n> > Quoting Naushir Patuck via libcamera-devel (2022-12-16 13:59:03)\n> > > Add a tuning file for the IMX477 more suited to scientific applications.\n> > > The key differences from the original tuning file are:\n> > >\n> > > - Disable ALSC block completely\n> > > - Pure rec709 gamma curve, and no contrast enhance\n> > > - New CT curve and CCMs based on the illumination spectrum of a black body\n> > > radiator up to about 3600 K and the CIE illuminant D for higher color\n> > > temperatures.\n> > >\n> > > Further details on the changes can be found at:\n> > > https://forums.raspberrypi.com/viewtopic.php?t=343449\n> > >\n> > > All credit for these changes go to Dr. Rolf Henkel.\n> >\n> > Some very interesting investigations in that thread.\n> >\n> > I'm curious if we'll end up with more configurations like this for each\n> > sensor!\n> \n> I think that's entirely possible - and all part of the design with json config\n> files!\n> \n> > But I really like the graphs to present what the tuning files\n> > are doing comparitively. Much easier to grasp than a file of json\n> > data...\n> >\n> > No objections to this here but apart from admiring the graphs, I won't\n> > judge the data so:\n> >\n> > Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >\n> >\n> > My only concern/comment would be how and where would we document the\n> > differences between these tuning files? Would users just be expected to\n> > try them to see ? Or would it be clear that a 'scientific' tuning file\n> > has a specific set of properties ?\n> \n> At the end of the day, I think this is a choice for informed users. We provide\n> a sensible default config for visually pleasing images, but if users have a\n> specific application that requires something custom, we leave it to them to\n> switch to the appropriate tuning file that they know works for them.\n\nOverall that makes sense to me. In this particular case, I think it\nwould however make sense to give applications a way to control the tone\nmapping curve at runtime (including disabling contrast enhancement)\ninstead of having different curves specified in tuning files.\n\nThis isn't something that needs to be implemented urgently, and I'm fine\nwith this patch, but if we have tuning files that differed only by their\ntone mapping curve, I'd get more annoyed.\n\n> > But any / all of that could be addressed later if needed I think.\n> >\n> > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > Signed-off-by: Rolf Henkel <cpixip@pixelcircus.com>\n> > > ---\n> > >  .../raspberrypi/data/imx477_scientific.json   | 482 ++++++++++++++++++\n> > >  src/ipa/raspberrypi/data/meson.build          |   1 +\n> > >  2 files changed, 483 insertions(+)\n> > >  create mode 100755 src/ipa/raspberrypi/data/imx477_scientific.json\n> > >\n> > > diff --git a/src/ipa/raspberrypi/data/imx477_scientific.json b/src/ipa/raspberrypi/data/imx477_scientific.json\n> > > new file mode 100755\n> > > index 000000000000..17c4ed0a5e74\n> > > --- /dev/null\n> > > +++ b/src/ipa/raspberrypi/data/imx477_scientific.json\n> > > @@ -0,0 +1,482 @@\n> > > +{\n> > > +    \"version\": 2.0,\n> > > +    \"target\": \"bcm2835\",\n> > > +    \"algorithms\": [\n> > > +        {\n> > > +            \"rpi.black_level\":\n> > > +            {\n> > > +                \"black_level\": 4096\n> > > +            }\n> > > +        },\n> > > +        {\n> > > +            \"rpi.dpc\": { }\n> > > +        },\n> > > +        {\n> > > +            \"rpi.lux\":\n> > > +            {\n> > > +                \"reference_shutter_speed\": 27242,\n> > > +                \"reference_gain\": 1.0,\n> > > +                \"reference_aperture\": 1.0,\n> > > +                \"reference_lux\": 830,\n> > > +                \"reference_Y\": 17755\n> > > +            }\n> > > +        },\n> > > +        {\n> > > +            \"rpi.noise\":\n> > > +            {\n> > > +                \"reference_constant\": 0,\n> > > +                \"reference_slope\": 2.767\n> > > +            }\n> > > +        },\n> > > +        {\n> > > +            \"rpi.geq\":\n> > > +            {\n> > > +                \"offset\": 204,\n> > > +                \"slope\": 0.01078\n> > > +            }\n> > > +        },\n> > > +        {\n> > > +            \"rpi.sdn\": { }\n> > > +        },\n> > > +        {\n> > > +            \"rpi.awb\":\n> > > +            {\n> > > +                \"priors\": [\n> > > +                    {\n> > > +                        \"lux\": 0,\n> > > +                        \"prior\":\n> > > +                        [\n> > > +                            2000, 1.0,\n> > > +                            3000, 0.0,\n> > > +                            13000, 0.0\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"lux\": 800,\n> > > +                        \"prior\":\n> > > +                        [\n> > > +                            2000, 0.0,\n> > > +                            6000, 2.0,\n> > > +                            13000, 2.0\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"lux\": 1500,\n> > > +                        \"prior\":\n> > > +                        [\n> > > +                            2000, 0.0,\n> > > +                            4000, 1.0,\n> > > +                            6000, 6.0,\n> > > +                            6500, 7.0,\n> > > +                            7000, 1.0,\n> > > +                            13000, 1.0\n> > > +                        ]\n> > > +                    }\n> > > +                ],\n> > > +                \"modes\":\n> > > +                {\n> > > +                    \"auto\":\n> > > +                    {\n> > > +                        \"lo\": 2500,\n> > > +                        \"hi\": 8000\n> > > +                    },\n> > > +                    \"incandescent\":\n> > > +                    {\n> > > +                        \"lo\": 2500,\n> > > +                        \"hi\": 3000\n> > > +                    },\n> > > +                    \"tungsten\":\n> > > +                    {\n> > > +                        \"lo\": 3000,\n> > > +                        \"hi\": 3500\n> > > +                    },\n> > > +                    \"fluorescent\":\n> > > +                    {\n> > > +                        \"lo\": 4000,\n> > > +                        \"hi\": 4700\n> > > +                    },\n> > > +                    \"indoor\":\n> > > +                    {\n> > > +                        \"lo\": 3000,\n> > > +                        \"hi\": 5000\n> > > +                    },\n> > > +                    \"daylight\":\n> > > +                    {\n> > > +                        \"lo\": 5500,\n> > > +                        \"hi\": 6500\n> > > +                    },\n> > > +                    \"cloudy\":\n> > > +                    {\n> > > +                        \"lo\": 7000,\n> > > +                        \"hi\": 8600\n> > > +                    }\n> > > +                },\n> > > +                \"bayes\": 1,\n> > > +                \"ct_curve\":\n> > > +                [\n> > > +                    2000.0, 0.6331025775790707, 0.27424225990946915,\n> > > +                    2200.0, 0.5696117366212947, 0.3116091368689487,\n> > > +                    2400.0, 0.5204264653110015, 0.34892179554105873,\n> > > +                    2600.0, 0.48148675531667223, 0.38565229719076793,\n> > > +                    2800.0, 0.450085403501908, 0.42145684622485047,\n> > > +                    3000.0, 0.42436130159169017, 0.45611835670028816,\n> > > +                    3200.0, 0.40300023695527337, 0.48950766215198593,\n> > > +                    3400.0, 0.3850520052612984, 0.5215567075837261,\n> > > +                    3600.0, 0.36981508088230314, 0.5522397906415475,\n> > > +                    4100.0, 0.333468007836758, 0.5909770465167908,\n> > > +                    4600.0, 0.31196097364221376, 0.6515706327327178,\n> > > +                    5100.0, 0.2961860409294588, 0.7068178946570284,\n> > > +                    5600.0, 0.2842607232745885, 0.7564837749584288,\n> > > +                    6100.0, 0.2750265787051251, 0.8006183524920533,\n> > > +                    6600.0, 0.2677057225584924, 0.8398879225373039,\n> > > +                    7100.0, 0.2617955199757274, 0.8746456080032436,\n> > > +                    7600.0, 0.25693714288250125, 0.905569559506562,\n> > > +                    8100.0, 0.25287531441063316, 0.9331696750390895,\n> > > +                    8600.0, 0.24946601483331993, 0.9576820904825795\n> > > +                ],\n> > > +                \"sensitivity_r\": 1.05,\n> > > +                \"sensitivity_b\": 1.05,\n> > > +                \"transverse_pos\": 0.0238,\n> > > +                \"transverse_neg\": 0.04429,\n> > > +                \"coarse_step\": 0.1\n> > > +            }\n> > > +        },\n> > > +        {\n> > > +            \"rpi.agc\":\n> > > +            {\n> > > +                \"metering_modes\":\n> > > +                {\n> > > +                    \"centre-weighted\":\n> > > +                    {\n> > > +                        \"weights\": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]\n> > > +                    },\n> > > +                    \"spot\":\n> > > +                    {\n> > > +                        \"weights\": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]\n> > > +                    },\n> > > +                    \"matrix\":\n> > > +                    {\n> > > +                        \"weights\": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]\n> > > +                    }\n> > > +                },\n> > > +                \"exposure_modes\":\n> > > +                {\n> > > +                    \"normal\":\n> > > +                    {\n> > > +                        \"shutter\": [ 100, 10000, 30000, 60000, 66666 ],\n> > > +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n> > > +                    },\n> > > +                    \"short\":\n> > > +                    {\n> > > +                        \"shutter\": [ 100, 5000, 10000, 20000, 33333 ],\n> > > +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n> > > +                    },\n> > > +                    \"long\":\n> > > +                    {\n> > > +                        \"shutter\": [ 100, 10000, 30000, 60000, 120000 ],\n> > > +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]\n> > > +                    }\n> > > +                },\n> > > +                \"constraint_modes\":\n> > > +                {\n> > > +                    \"normal\": [\n> > > +                        {\n> > > +                            \"bound\": \"LOWER\",\n> > > +                            \"q_lo\": 0.98,\n> > > +                            \"q_hi\": 1.0,\n> > > +                            \"y_target\":\n> > > +                            [\n> > > +                                0, 0.3,\n> > > +                                1000, 0.3\n> > > +                            ]\n> > > +                        }\n> > > +                    ],\n> > > +                    \"highlight\": [\n> > > +                        {\n> > > +                            \"bound\": \"LOWER\",\n> > > +                            \"q_lo\": 0.98,\n> > > +                            \"q_hi\": 1.0,\n> > > +                            \"y_target\":\n> > > +                            [\n> > > +                                0, 0.3,\n> > > +                                1000, 0.3\n> > > +                            ]\n> > > +                        },\n> > > +                        {\n> > > +                            \"bound\": \"UPPER\",\n> > > +                            \"q_lo\": 0.98,\n> > > +                            \"q_hi\": 1.0,\n> > > +                            \"y_target\":\n> > > +                            [\n> > > +                                0, 0.8,\n> > > +                                1000, 0.8\n> > > +                            ]\n> > > +                        }\n> > > +                    ],\n> > > +                    \"shadows\": [\n> > > +                        {\n> > > +                            \"bound\": \"LOWER\",\n> > > +                            \"q_lo\": 0.0,\n> > > +                            \"q_hi\": 0.5,\n> > > +                            \"y_target\":\n> > > +                            [\n> > > +                                0, 0.17,\n> > > +                                1000, 0.17\n> > > +                            ]\n> > > +                        }\n> > > +                    ]\n> > > +                },\n> > > +                \"y_target\":\n> > > +                [\n> > > +                    0, 0.16,\n> > > +                    1000, 0.165,\n> > > +                    10000, 0.17\n> > > +                ]\n> > > +            }\n> > > +        },\n> > > +        {\n> > > +            \"rpi.contrast\":\n> > > +            {\n> > > +                \"ce_enable\": 0,\n> > > +                \"gamma_curve\":\n> > > +                [\n> > > +                    0, 0,\n> > > +                    512, 2304,\n> > > +                    1024, 4608,\n> > > +                    1536, 6573,\n> > > +                    2048, 8401,\n> > > +                    2560, 9992,\n> > > +                    3072, 11418,\n> > > +                    3584, 12719,\n> > > +                    4096, 13922,\n> > > +                    4608, 15045,\n> > > +                    5120, 16103,\n> > > +                    5632, 17104,\n> > > +                    6144, 18056,\n> > > +                    6656, 18967,\n> > > +                    7168, 19839,\n> > > +                    7680, 20679,\n> > > +                    8192, 21488,\n> > > +                    9216, 23028,\n> > > +                    10240, 24477,\n> > > +                    11264, 25849,\n> > > +                    12288, 27154,\n> > > +                    13312, 28401,\n> > > +                    14336, 29597,\n> > > +                    15360, 30747,\n> > > +                    16384, 31856,\n> > > +                    17408, 32928,\n> > > +                    18432, 33966,\n> > > +                    19456, 34973,\n> > > +                    20480, 35952,\n> > > +                    22528, 37832,\n> > > +                    24576, 39621,\n> > > +                    26624, 41330,\n> > > +                    28672, 42969,\n> > > +                    30720, 44545,\n> > > +                    32768, 46065,\n> > > +                    34816, 47534,\n> > > +                    36864, 48956,\n> > > +                    38912, 50336,\n> > > +                    40960, 51677,\n> > > +                    43008, 52982,\n> > > +                    45056, 54253,\n> > > +                    47104, 55493,\n> > > +                    49152, 56704,\n> > > +                    51200, 57888,\n> > > +                    53248, 59046,\n> > > +                    55296, 60181,\n> > > +                    57344, 61292,\n> > > +                    59392, 62382,\n> > > +                    61440, 63452,\n> > > +                    63488, 64503,\n> > > +                    65535, 65535\n> > > +                ]\n> > > +            }\n> > > +        },\n> > > +        {\n> > > +            \"rpi.ccm\":\n> > > +            {\n> > > +                \"ccms\": [\n> > > +                    {\n> > > +                        \"ct\": 2000,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            1.5813882365848004, -0.35293683714581114, -0.27378771561617715,\n> > > +                            -0.4347297185453639, 1.5792631087746074,  -0.12102601986382337,\n> > > +                            0.2322290578987574, -1.4382672640468128,   2.1386425781770755\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 2200,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            1.6322048484088305, -0.45932286857238486, -0.21373542690252198,\n> > > +                            -0.3970719209901105, 1.5877868651467202, -0.17249380832122455,\n> > > +                            0.20753774825903412, -1.2660673594740142, 2.005654261091916\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 2400,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            1.6766610071470398, -0.5447101051688111, -0.16838641107407676,\n> > > +                            -0.3659845183388154, 1.592223692670396, -0.2127091997471162,\n> > > +                            0.1833964516767549, -1.1339155942419321, 1.9089342978542396\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 2600,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            1.7161984340622154, -0.6152585785678794, -0.1331100845092582,\n> > > +                            -0.33972082628066275, 1.5944888273736966, -0.2453979465898787,\n> > > +                            0.1615577497676328, -1.0298684958833109, 1.8357854177422053\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 2800,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            1.7519307259815728, -0.6748682080165339, -0.10515169074540848,\n> > > +                            -0.3171703484479931, 1.5955820297498486, -0.2727395854813966,\n> > > +                            0.14230870739974305, -0.9460976023551511, 1.778709391659538\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 3000,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            1.7846716625128374, -0.7261240476375332, -0.08274697420358428,\n> > > +                            -0.2975654035173307, 1.5960425637021738, -0.2961043416505157,\n> > > +                            0.12546426281675097, -0.8773434727076518, 1.7330356805246685\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 3200,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            1.8150085872943436, -0.7708109672515514, -0.06469468211419174,\n> > > +                            -0.2803468940646277, 1.596168842967451, -0.3164044170681625,\n> > > +                            0.11071494533513807, -0.8199772290209191, 1.69572135046367\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 3400,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            1.8433668304932087, -0.8102060605062592, -0.05013485852801454,\n> > > +                            -0.2650934036324084, 1.5961288492969294, -0.33427554893845535,\n> > > +                            0.0977478941863518, -0.7714303112098978, 1.6647070820146963\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 3600,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            1.8700575831917468, -0.8452518300291346, -0.03842644337477299,\n> > > +                            -0.2514794528347016, 1.5960178299141876, -0.3501774949366156,\n> > > +                            0.08628520830733245, -0.729841503339915, 1.638553343939267\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 4100,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            1.8988700903560716, -0.8911278803351247, -0.018848644425650693,\n> > > +                            -0.21487101487384094, 1.599236541382614, -0.39405450457918206,\n> > > +                            0.08251488056482173, -0.7178919368326191, 1.6267009056502704\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 4600,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            1.960355191764125, -0.9624344812121991, -0.0017122408632169205,\n> > > +                            -0.19444620905212898, 1.5978493736948447, -0.416727638296156,\n> > > +                            0.06310261513271084, -0.6483790952487849, 1.5834605477213093\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 5100,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            2.014680536961399, -1.0195930302148566, 0.007728256612638915,\n> > > +                            -0.17751999660735496, 1.5977081555831, -0.4366085498741474,\n> > > +                            0.04741267583041334, -0.5950327902073489, 1.5512919847321853\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 5600,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            2.062652337917251, -1.0658386679125478, 0.011886354256281267,\n> > > +                            -0.16319197721451495, 1.598363237584736, -0.45422061523742235,\n> > > +                            0.03465810928795378, -0.5535454108047286, 1.5269025836946852\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 6100,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            2.104985902038069, -1.103597868736314, 0.012503517136539277,\n> > > +                            -0.15090797064906178, 1.5994703078166095, -0.4698414300864995,\n> > > +                            0.02421766063474242, -0.5208922818196823, 1.5081270847783788\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 6600,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            2.1424988751299714, -1.134760232367728, 0.010730356010435522,\n> > > +                            -0.14021846798466234, 1.600822462230719, -0.48379204794526487,\n> > > +                            0.015521315410496622, -0.49463630325832275, 1.4933313534840327\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 7100,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            2.1758034100130925, -1.1607558481037359, 0.007452724895469076,\n> > > +                            -0.13085694672641826, 1.6022648614493245, -0.4962330524084075,\n> > > +                            0.008226943206113427, -0.4733077192319791, 1.4815336120437468\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 7600,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            2.205529206931895, -1.1826662383072108, 0.0032019529917605167,\n> > > +                            -0.122572009780486, 1.6037258133595753, -0.5073973734282445,\n> > > +                            0.0020132587619863425, -0.4556590236414181, 1.471939788496745\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 8100,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            2.232224969223067, -1.2013672897252885, -0.0016234598095482985,\n> > > +                            -0.11518026734442414, 1.6051544769439803, -0.5174558699422255,\n> > > +                            -0.0033378143542219835, -0.4408590373867774, 1.4640252230667452\n> > > +                        ]\n> > > +                    },\n> > > +                    {\n> > > +                        \"ct\": 8600,\n> > > +                        \"ccm\":\n> > > +                        [\n> > > +                            2.256082295891265, -1.2173210549996634, -0.0067231350481711675,\n> > > +                            -0.10860272839843167, 1.6065150139140594, -0.5264728573611493,\n> > > +                            -0.007952618707984149, -0.4284003574050791, 1.4574646927117558\n> > > +                        ]\n> > > +                    }\n> > > +                ]\n> > > +            }\n> > > +        },\n> > > +        {\n> > > +            \"rpi.sharpen\": { }\n> > > +        },\n> > > +        {\n> > > +            \"rpi.focus\": { }\n> > > +        }\n> > > +    ]\n> > > +}\n> > > \\ No newline at end of file\n> > > diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> > > index 84c1dabbec9c..5565508cf602 100644\n> > > --- a/src/ipa/raspberrypi/data/meson.build\n> > > +++ b/src/ipa/raspberrypi/data/meson.build\n> > > @@ -9,6 +9,7 @@ conf_files = files([\n> > >      'imx378.json',\n> > >      'imx477.json',\n> > >      'imx477_noir.json',\n> > > +    'imx477_scientific.json',\n> > >      'imx519.json',\n> > >      'ov5647.json',\n> > >      'ov5647_noir.json',","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 5D537C3200\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 19 Dec 2022 22:53:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AEB3A633A2;\n\tMon, 19 Dec 2022 23:53:48 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F2B5C61508\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 19 Dec 2022 23:53:46 +0100 (CET)","from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi\n\t[213.243.189.158])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 34A87825;\n\tMon, 19 Dec 2022 23:53:46 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1671490428;\n\tbh=DCDaY7dQxnmPV/50aj+zRFhjkBPwwV/22oxCkRcXJw0=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=BreCQhVdn1A+hgrUHmnyaVegF3uBWtrA+vin1+eyh0JyzW7G+ofKhTJbQoDz8u+kg\n\tfNjWD2R/5/rq7uq+AhvQnuB7FNl6Tz/MEXVBo0+BNOblGc8ZcZ+2z/IeCWNHrJS8x8\n\trqrSKj0rZJgCm9jHZppPLAe+o4AUXkjRH5y/0NE5KVl4nzW1Iy/X2HtQHMixFeIjws\n\tPhNDWB3g1cUaarBFNYhZUOfXheIPpCYL9sS6owaclrX8WXHkseUbh9jMxrvbwLJYyV\n\tAxyg8dAYonw++wDw1A80LycPfDzIK+jse4bxSx449PmT8mh+soSLbMSfwz3aMqG9zB\n\tj7v6KEHySOybA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1671490426;\n\tbh=DCDaY7dQxnmPV/50aj+zRFhjkBPwwV/22oxCkRcXJw0=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=tsmmPSz8s50HAARKcHhB9wOCNmHw2g99g6okJgMybWsmgdG7MwaQMVkj3pK9fVUvc\n\tkNuL7Kdl8TJ2+DFuBS//H3AAh2dim3gJeczlLEF39v6CcESpZCEKJkOXTycsFDpnFm\n\tNtC3rtqdBYIGY8d/1mLlhB6J3r9zcz6GmXa7Hwm0="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"tsmmPSz8\"; dkim-atps=neutral","Date":"Tue, 20 Dec 2022 00:53:42 +0200","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<Y6DrdnvmKJncv03q@pendragon.ideasonboard.com>","References":"<20221216135903.17446-1-naush@raspberrypi.com>\n\t<167120074724.9133.8416585353542833664@Monstersaurus>\n\t<CAEmqJPo0V+M6LPmR0NUVLMCZrm7V-yK5Zo5zGGfAOFKTzjjZhA@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAEmqJPo0V+M6LPmR0NUVLMCZrm7V-yK5Zo5zGGfAOFKTzjjZhA@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"Rolf Henkel <cpixip@pixelcircus.com>, libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26118,"web_url":"https://patchwork.libcamera.org/comment/26118/","msgid":"<526cc546-cf38-b706-0c83-3c3d7927535f@pixelcircus.de>","date":"2022-12-20T12:09:23","subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","submitter":{"id":97,"url":"https://patchwork.libcamera.org/api/people/97/","name":"Nicolas Dufresne via libcamera-devel","email":"libcamera-devel@lists.libcamera.org"},"content":"Hello - just a short comment below ( I hope I am doing this right - not \nreally familiar with this email/list-based system)\n\nAm 19.12.2022 um 23:53 schrieb Laurent Pinchart:\n> Hello,\n>\n> On Fri, Dec 16, 2022 at 03:09:55PM +0000, Naushir Patuck wrote:\n>> On Fri, 16 Dec 2022 at 14:25, Kieran Bingham wrote:\n>>> Quoting Naushir Patuck via libcamera-devel (2022-12-16 13:59:03)\n>>>> Add a tuning file for the IMX477 more suited to scientific applications.\n>>>> The key differences from the original tuning file are:\n>>>>\n>>>> - Disable ALSC block completely\n>>>> - Pure rec709 gamma curve, and no contrast enhance\n>>>> - New CT curve and CCMs based on the illumination spectrum of a black body\n>>>> radiator up to about 3600 K and the CIE illuminant D for higher color\n>>>> temperatures.\n>>>>\n>>>> Further details on the changes can be found at:\n>>>> https://forums.raspberrypi.com/viewtopic.php?t=343449\n>>>>\n>>>> All credit for these changes go to Dr. Rolf Henkel.\n>>> Some very interesting investigations in that thread.\n>>>\n>>> I'm curious if we'll end up with more configurations like this for each\n>>> sensor!\n>> I think that's entirely possible - and all part of the design with json config\n>> files!\n>>\n>>> But I really like the graphs to present what the tuning files\n>>> are doing comparitively. Much easier to grasp than a file of json\n>>> data...\n>>>\n>>> No objections to this here but apart from admiring the graphs, I won't\n>>> judge the data so:\n>>>\n>>> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>>>\n>>>\n>>> My only concern/comment would be how and where would we document the\n>>> differences between these tuning files? Would users just be expected to\n>>> try them to see ? Or would it be clear that a 'scientific' tuning file\n>>> has a specific set of properties ?\n>> At the end of the day, I think this is a choice for informed users. We provide\n>> a sensible default config for visually pleasing images, but if users have a\n>> specific application that requires something custom, we leave it to them to\n>> switch to the appropriate tuning file that they know works for them.\n> Overall that makes sense to me. In this particular case, I think it\n> would however make sense to give applications a way to control the tone\n> mapping curve at runtime (including disabling contrast enhancement)\n> instead of having different curves specified in tuning files.\n\nIndeed, it would be great to be able to control certain parameters at \nruntime. There are a number of automatic algorithms working in libcamera \nwhich presently can only be deactivated in akward ways - mostly by \nediting the tuning file. That is, you need to stop and restart the \ncamera for such changes to take place. It would be great (for people who \nknow what they are doing) to be able to deactivate automatic processing \nwhile the camera is running, for example.\n\n> This isn't something that needs to be implemented urgently, and I'm fine\n> with this patch, but if we have tuning files that differed only by their\n> tone mapping curve, I'd get more annoyed.\n\nNote that the tone mapping curve is not the most important deviation of \nthis new tuning file from the standard tuning file. It does help to get \nslightly less trendy colors.\n\nHowever, more important is probably the ct-curve, combined with new CCM \nmatrices. These new values vary much smoother than the original values \nover the range of CCTs.\n\nAnother point: as soon as libcamera is starting to support sensors with \ninterchangable lenses (and the Raspberry Pi HQ camera is one of these), \nthe inclusion of the ALSC section in the tuning file makes it as well \nnecessary to have a dedicated tuning file for every lens which you are \nplanning to use. So maybe the addition of an info-section in the tuning \nfile would be a thing to consider. Such an info-section could also \ninclude details on how the tuning file was created - something like that \nis currently missing. For example, the IMX477 tuning file for the HQ \ncamera features ALSC-tables - but there is no information whatsoever \nwhich specific lens was used in the calibration.\n\nLSC is in a sense rather independent from other sections in the \nprocessing pipeline. Maybe it even makes sense to split the monolithic \njson-file into independent parts?\n\n>>> But any / all of that could be addressed later if needed I think.\n>>>\n>>>> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n>>>> Signed-off-by: Rolf Henkel <cpixip@pixelcircus.com>\n>>>> ---\n>>>>   .../raspberrypi/data/imx477_scientific.json   | 482 ++++++++++++++++++\n>>>>   src/ipa/raspberrypi/data/meson.build          |   1 +\n>>>>   2 files changed, 483 insertions(+)\n>>>>   create mode 100755 src/ipa/raspberrypi/data/imx477_scientific.json\n>>>>\n>>>> diff --git a/src/ipa/raspberrypi/data/imx477_scientific.json b/src/ipa/raspberrypi/data/imx477_scientific.json\n>>>> new file mode 100755\n>>>> index 000000000000..17c4ed0a5e74\n>>>> --- /dev/null\n>>>> +++ b/src/ipa/raspberrypi/data/imx477_scientific.json\n>>>> @@ -0,0 +1,482 @@\n>>>> +{\n>>>> +    \"version\": 2.0,\n>>>> +    \"target\": \"bcm2835\",\n>>>> +    \"algorithms\": [\n>>>> +        {\n>>>> +            \"rpi.black_level\":\n>>>> +            {\n>>>> +                \"black_level\": 4096\n>>>> +            }\n>>>> +        },\n>>>> +        {\n>>>> +            \"rpi.dpc\": { }\n>>>> +        },\n>>>> +        {\n>>>> +            \"rpi.lux\":\n>>>> +            {\n>>>> +                \"reference_shutter_speed\": 27242,\n>>>> +                \"reference_gain\": 1.0,\n>>>> +                \"reference_aperture\": 1.0,\n>>>> +                \"reference_lux\": 830,\n>>>> +                \"reference_Y\": 17755\n>>>> +            }\n>>>> +        },\n>>>> +        {\n>>>> +            \"rpi.noise\":\n>>>> +            {\n>>>> +                \"reference_constant\": 0,\n>>>> +                \"reference_slope\": 2.767\n>>>> +            }\n>>>> +        },\n>>>> +        {\n>>>> +            \"rpi.geq\":\n>>>> +            {\n>>>> +                \"offset\": 204,\n>>>> +                \"slope\": 0.01078\n>>>> +            }\n>>>> +        },\n>>>> +        {\n>>>> +            \"rpi.sdn\": { }\n>>>> +        },\n>>>> +        {\n>>>> +            \"rpi.awb\":\n>>>> +            {\n>>>> +                \"priors\": [\n>>>> +                    {\n>>>> +                        \"lux\": 0,\n>>>> +                        \"prior\":\n>>>> +                        [\n>>>> +                            2000, 1.0,\n>>>> +                            3000, 0.0,\n>>>> +                            13000, 0.0\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"lux\": 800,\n>>>> +                        \"prior\":\n>>>> +                        [\n>>>> +                            2000, 0.0,\n>>>> +                            6000, 2.0,\n>>>> +                            13000, 2.0\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"lux\": 1500,\n>>>> +                        \"prior\":\n>>>> +                        [\n>>>> +                            2000, 0.0,\n>>>> +                            4000, 1.0,\n>>>> +                            6000, 6.0,\n>>>> +                            6500, 7.0,\n>>>> +                            7000, 1.0,\n>>>> +                            13000, 1.0\n>>>> +                        ]\n>>>> +                    }\n>>>> +                ],\n>>>> +                \"modes\":\n>>>> +                {\n>>>> +                    \"auto\":\n>>>> +                    {\n>>>> +                        \"lo\": 2500,\n>>>> +                        \"hi\": 8000\n>>>> +                    },\n>>>> +                    \"incandescent\":\n>>>> +                    {\n>>>> +                        \"lo\": 2500,\n>>>> +                        \"hi\": 3000\n>>>> +                    },\n>>>> +                    \"tungsten\":\n>>>> +                    {\n>>>> +                        \"lo\": 3000,\n>>>> +                        \"hi\": 3500\n>>>> +                    },\n>>>> +                    \"fluorescent\":\n>>>> +                    {\n>>>> +                        \"lo\": 4000,\n>>>> +                        \"hi\": 4700\n>>>> +                    },\n>>>> +                    \"indoor\":\n>>>> +                    {\n>>>> +                        \"lo\": 3000,\n>>>> +                        \"hi\": 5000\n>>>> +                    },\n>>>> +                    \"daylight\":\n>>>> +                    {\n>>>> +                        \"lo\": 5500,\n>>>> +                        \"hi\": 6500\n>>>> +                    },\n>>>> +                    \"cloudy\":\n>>>> +                    {\n>>>> +                        \"lo\": 7000,\n>>>> +                        \"hi\": 8600\n>>>> +                    }\n>>>> +                },\n>>>> +                \"bayes\": 1,\n>>>> +                \"ct_curve\":\n>>>> +                [\n>>>> +                    2000.0, 0.6331025775790707, 0.27424225990946915,\n>>>> +                    2200.0, 0.5696117366212947, 0.3116091368689487,\n>>>> +                    2400.0, 0.5204264653110015, 0.34892179554105873,\n>>>> +                    2600.0, 0.48148675531667223, 0.38565229719076793,\n>>>> +                    2800.0, 0.450085403501908, 0.42145684622485047,\n>>>> +                    3000.0, 0.42436130159169017, 0.45611835670028816,\n>>>> +                    3200.0, 0.40300023695527337, 0.48950766215198593,\n>>>> +                    3400.0, 0.3850520052612984, 0.5215567075837261,\n>>>> +                    3600.0, 0.36981508088230314, 0.5522397906415475,\n>>>> +                    4100.0, 0.333468007836758, 0.5909770465167908,\n>>>> +                    4600.0, 0.31196097364221376, 0.6515706327327178,\n>>>> +                    5100.0, 0.2961860409294588, 0.7068178946570284,\n>>>> +                    5600.0, 0.2842607232745885, 0.7564837749584288,\n>>>> +                    6100.0, 0.2750265787051251, 0.8006183524920533,\n>>>> +                    6600.0, 0.2677057225584924, 0.8398879225373039,\n>>>> +                    7100.0, 0.2617955199757274, 0.8746456080032436,\n>>>> +                    7600.0, 0.25693714288250125, 0.905569559506562,\n>>>> +                    8100.0, 0.25287531441063316, 0.9331696750390895,\n>>>> +                    8600.0, 0.24946601483331993, 0.9576820904825795\n>>>> +                ],\n>>>> +                \"sensitivity_r\": 1.05,\n>>>> +                \"sensitivity_b\": 1.05,\n>>>> +                \"transverse_pos\": 0.0238,\n>>>> +                \"transverse_neg\": 0.04429,\n>>>> +                \"coarse_step\": 0.1\n>>>> +            }\n>>>> +        },\n>>>> +        {\n>>>> +            \"rpi.agc\":\n>>>> +            {\n>>>> +                \"metering_modes\":\n>>>> +                {\n>>>> +                    \"centre-weighted\":\n>>>> +                    {\n>>>> +                        \"weights\": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]\n>>>> +                    },\n>>>> +                    \"spot\":\n>>>> +                    {\n>>>> +                        \"weights\": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]\n>>>> +                    },\n>>>> +                    \"matrix\":\n>>>> +                    {\n>>>> +                        \"weights\": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]\n>>>> +                    }\n>>>> +                },\n>>>> +                \"exposure_modes\":\n>>>> +                {\n>>>> +                    \"normal\":\n>>>> +                    {\n>>>> +                        \"shutter\": [ 100, 10000, 30000, 60000, 66666 ],\n>>>> +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n>>>> +                    },\n>>>> +                    \"short\":\n>>>> +                    {\n>>>> +                        \"shutter\": [ 100, 5000, 10000, 20000, 33333 ],\n>>>> +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n>>>> +                    },\n>>>> +                    \"long\":\n>>>> +                    {\n>>>> +                        \"shutter\": [ 100, 10000, 30000, 60000, 120000 ],\n>>>> +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]\n>>>> +                    }\n>>>> +                },\n>>>> +                \"constraint_modes\":\n>>>> +                {\n>>>> +                    \"normal\": [\n>>>> +                        {\n>>>> +                            \"bound\": \"LOWER\",\n>>>> +                            \"q_lo\": 0.98,\n>>>> +                            \"q_hi\": 1.0,\n>>>> +                            \"y_target\":\n>>>> +                            [\n>>>> +                                0, 0.3,\n>>>> +                                1000, 0.3\n>>>> +                            ]\n>>>> +                        }\n>>>> +                    ],\n>>>> +                    \"highlight\": [\n>>>> +                        {\n>>>> +                            \"bound\": \"LOWER\",\n>>>> +                            \"q_lo\": 0.98,\n>>>> +                            \"q_hi\": 1.0,\n>>>> +                            \"y_target\":\n>>>> +                            [\n>>>> +                                0, 0.3,\n>>>> +                                1000, 0.3\n>>>> +                            ]\n>>>> +                        },\n>>>> +                        {\n>>>> +                            \"bound\": \"UPPER\",\n>>>> +                            \"q_lo\": 0.98,\n>>>> +                            \"q_hi\": 1.0,\n>>>> +                            \"y_target\":\n>>>> +                            [\n>>>> +                                0, 0.8,\n>>>> +                                1000, 0.8\n>>>> +                            ]\n>>>> +                        }\n>>>> +                    ],\n>>>> +                    \"shadows\": [\n>>>> +                        {\n>>>> +                            \"bound\": \"LOWER\",\n>>>> +                            \"q_lo\": 0.0,\n>>>> +                            \"q_hi\": 0.5,\n>>>> +                            \"y_target\":\n>>>> +                            [\n>>>> +                                0, 0.17,\n>>>> +                                1000, 0.17\n>>>> +                            ]\n>>>> +                        }\n>>>> +                    ]\n>>>> +                },\n>>>> +                \"y_target\":\n>>>> +                [\n>>>> +                    0, 0.16,\n>>>> +                    1000, 0.165,\n>>>> +                    10000, 0.17\n>>>> +                ]\n>>>> +            }\n>>>> +        },\n>>>> +        {\n>>>> +            \"rpi.contrast\":\n>>>> +            {\n>>>> +                \"ce_enable\": 0,\n>>>> +                \"gamma_curve\":\n>>>> +                [\n>>>> +                    0, 0,\n>>>> +                    512, 2304,\n>>>> +                    1024, 4608,\n>>>> +                    1536, 6573,\n>>>> +                    2048, 8401,\n>>>> +                    2560, 9992,\n>>>> +                    3072, 11418,\n>>>> +                    3584, 12719,\n>>>> +                    4096, 13922,\n>>>> +                    4608, 15045,\n>>>> +                    5120, 16103,\n>>>> +                    5632, 17104,\n>>>> +                    6144, 18056,\n>>>> +                    6656, 18967,\n>>>> +                    7168, 19839,\n>>>> +                    7680, 20679,\n>>>> +                    8192, 21488,\n>>>> +                    9216, 23028,\n>>>> +                    10240, 24477,\n>>>> +                    11264, 25849,\n>>>> +                    12288, 27154,\n>>>> +                    13312, 28401,\n>>>> +                    14336, 29597,\n>>>> +                    15360, 30747,\n>>>> +                    16384, 31856,\n>>>> +                    17408, 32928,\n>>>> +                    18432, 33966,\n>>>> +                    19456, 34973,\n>>>> +                    20480, 35952,\n>>>> +                    22528, 37832,\n>>>> +                    24576, 39621,\n>>>> +                    26624, 41330,\n>>>> +                    28672, 42969,\n>>>> +                    30720, 44545,\n>>>> +                    32768, 46065,\n>>>> +                    34816, 47534,\n>>>> +                    36864, 48956,\n>>>> +                    38912, 50336,\n>>>> +                    40960, 51677,\n>>>> +                    43008, 52982,\n>>>> +                    45056, 54253,\n>>>> +                    47104, 55493,\n>>>> +                    49152, 56704,\n>>>> +                    51200, 57888,\n>>>> +                    53248, 59046,\n>>>> +                    55296, 60181,\n>>>> +                    57344, 61292,\n>>>> +                    59392, 62382,\n>>>> +                    61440, 63452,\n>>>> +                    63488, 64503,\n>>>> +                    65535, 65535\n>>>> +                ]\n>>>> +            }\n>>>> +        },\n>>>> +        {\n>>>> +            \"rpi.ccm\":\n>>>> +            {\n>>>> +                \"ccms\": [\n>>>> +                    {\n>>>> +                        \"ct\": 2000,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            1.5813882365848004, -0.35293683714581114, -0.27378771561617715,\n>>>> +                            -0.4347297185453639, 1.5792631087746074,  -0.12102601986382337,\n>>>> +                            0.2322290578987574, -1.4382672640468128,   2.1386425781770755\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 2200,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            1.6322048484088305, -0.45932286857238486, -0.21373542690252198,\n>>>> +                            -0.3970719209901105, 1.5877868651467202, -0.17249380832122455,\n>>>> +                            0.20753774825903412, -1.2660673594740142, 2.005654261091916\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 2400,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            1.6766610071470398, -0.5447101051688111, -0.16838641107407676,\n>>>> +                            -0.3659845183388154, 1.592223692670396, -0.2127091997471162,\n>>>> +                            0.1833964516767549, -1.1339155942419321, 1.9089342978542396\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 2600,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            1.7161984340622154, -0.6152585785678794, -0.1331100845092582,\n>>>> +                            -0.33972082628066275, 1.5944888273736966, -0.2453979465898787,\n>>>> +                            0.1615577497676328, -1.0298684958833109, 1.8357854177422053\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 2800,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            1.7519307259815728, -0.6748682080165339, -0.10515169074540848,\n>>>> +                            -0.3171703484479931, 1.5955820297498486, -0.2727395854813966,\n>>>> +                            0.14230870739974305, -0.9460976023551511, 1.778709391659538\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 3000,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            1.7846716625128374, -0.7261240476375332, -0.08274697420358428,\n>>>> +                            -0.2975654035173307, 1.5960425637021738, -0.2961043416505157,\n>>>> +                            0.12546426281675097, -0.8773434727076518, 1.7330356805246685\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 3200,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            1.8150085872943436, -0.7708109672515514, -0.06469468211419174,\n>>>> +                            -0.2803468940646277, 1.596168842967451, -0.3164044170681625,\n>>>> +                            0.11071494533513807, -0.8199772290209191, 1.69572135046367\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 3400,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            1.8433668304932087, -0.8102060605062592, -0.05013485852801454,\n>>>> +                            -0.2650934036324084, 1.5961288492969294, -0.33427554893845535,\n>>>> +                            0.0977478941863518, -0.7714303112098978, 1.6647070820146963\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 3600,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            1.8700575831917468, -0.8452518300291346, -0.03842644337477299,\n>>>> +                            -0.2514794528347016, 1.5960178299141876, -0.3501774949366156,\n>>>> +                            0.08628520830733245, -0.729841503339915, 1.638553343939267\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 4100,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            1.8988700903560716, -0.8911278803351247, -0.018848644425650693,\n>>>> +                            -0.21487101487384094, 1.599236541382614, -0.39405450457918206,\n>>>> +                            0.08251488056482173, -0.7178919368326191, 1.6267009056502704\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 4600,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            1.960355191764125, -0.9624344812121991, -0.0017122408632169205,\n>>>> +                            -0.19444620905212898, 1.5978493736948447, -0.416727638296156,\n>>>> +                            0.06310261513271084, -0.6483790952487849, 1.5834605477213093\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 5100,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            2.014680536961399, -1.0195930302148566, 0.007728256612638915,\n>>>> +                            -0.17751999660735496, 1.5977081555831, -0.4366085498741474,\n>>>> +                            0.04741267583041334, -0.5950327902073489, 1.5512919847321853\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 5600,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            2.062652337917251, -1.0658386679125478, 0.011886354256281267,\n>>>> +                            -0.16319197721451495, 1.598363237584736, -0.45422061523742235,\n>>>> +                            0.03465810928795378, -0.5535454108047286, 1.5269025836946852\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 6100,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            2.104985902038069, -1.103597868736314, 0.012503517136539277,\n>>>> +                            -0.15090797064906178, 1.5994703078166095, -0.4698414300864995,\n>>>> +                            0.02421766063474242, -0.5208922818196823, 1.5081270847783788\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 6600,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            2.1424988751299714, -1.134760232367728, 0.010730356010435522,\n>>>> +                            -0.14021846798466234, 1.600822462230719, -0.48379204794526487,\n>>>> +                            0.015521315410496622, -0.49463630325832275, 1.4933313534840327\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 7100,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            2.1758034100130925, -1.1607558481037359, 0.007452724895469076,\n>>>> +                            -0.13085694672641826, 1.6022648614493245, -0.4962330524084075,\n>>>> +                            0.008226943206113427, -0.4733077192319791, 1.4815336120437468\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 7600,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            2.205529206931895, -1.1826662383072108, 0.0032019529917605167,\n>>>> +                            -0.122572009780486, 1.6037258133595753, -0.5073973734282445,\n>>>> +                            0.0020132587619863425, -0.4556590236414181, 1.471939788496745\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 8100,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            2.232224969223067, -1.2013672897252885, -0.0016234598095482985,\n>>>> +                            -0.11518026734442414, 1.6051544769439803, -0.5174558699422255,\n>>>> +                            -0.0033378143542219835, -0.4408590373867774, 1.4640252230667452\n>>>> +                        ]\n>>>> +                    },\n>>>> +                    {\n>>>> +                        \"ct\": 8600,\n>>>> +                        \"ccm\":\n>>>> +                        [\n>>>> +                            2.256082295891265, -1.2173210549996634, -0.0067231350481711675,\n>>>> +                            -0.10860272839843167, 1.6065150139140594, -0.5264728573611493,\n>>>> +                            -0.007952618707984149, -0.4284003574050791, 1.4574646927117558\n>>>> +                        ]\n>>>> +                    }\n>>>> +                ]\n>>>> +            }\n>>>> +        },\n>>>> +        {\n>>>> +            \"rpi.sharpen\": { }\n>>>> +        },\n>>>> +        {\n>>>> +            \"rpi.focus\": { }\n>>>> +        }\n>>>> +    ]\n>>>> +}\n>>>> \\ No newline at end of file\n>>>> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n>>>> index 84c1dabbec9c..5565508cf602 100644\n>>>> --- a/src/ipa/raspberrypi/data/meson.build\n>>>> +++ b/src/ipa/raspberrypi/data/meson.build\n>>>> @@ -9,6 +9,7 @@ conf_files = files([\n>>>>       'imx378.json',\n>>>>       'imx477.json',\n>>>>       'imx477_noir.json',\n>>>> +    'imx477_scientific.json',\n>>>>       'imx519.json',\n>>>>       'ov5647.json',\n>>>>       'ov5647_noir.json',","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id DF001C3200\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 20 Dec 2022 12:20:11 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 47E09633A2;\n\tTue, 20 Dec 2022 13:20:11 +0100 (CET)","from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de\n\t[85.215.255.21])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8939461507\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 20 Dec 2022 13:09:22 +0100 (CET)","from [192.168.178.31] by smtp.strato.de (RZmta 48.2.1 DYNA|AUTH)\n\twith ESMTPSA id 6dddd8yBKC9LwVX\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))\n\t(Client did not present a certificate)\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 20 Dec 2022 13:09:21 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1671538811;\n\tbh=35f6jH2t9/tQv73FRPz3u/MvwS08lyEOegeXZilDaEA=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=Bjtc1U2npZ6ZCeCLthakkRzkhsY8WfsR3Zxzd8+Jh2ZkInK9rvK8RrYcXSR1HOSc/\n\te0uukJnuYVyU1HPqWpDvTFlEyqszHnuOYxP5rSSrZBPB3J9lmhtPErFLbcOmP7fI/q\n\tr8ab5i9U1jEkB5CUSIUvg+SxEi0770k72vMjSCqG0+UYkqH7Nsjdaextxy2gERm9Cn\n\tK4RHRn02uBPjl3mYtMPFuhtAuORydwDzAAmr3L6/hGwlVdXd9jYbvKklMXWp7qj1ZW\n\tpN5dZHRRWphXRbcK8OySUzcjLmBOTHRyFXs/aWoWgtJzhLWaRI//K3v5syub+9zMly\n\t3u2dsJ9H1oDuQ==","v=1; a=rsa-sha256; c=relaxed/relaxed; t=1671538162;\n\ts=strato-dkim-0002; d=pixelcircus.com;\n\th=In-Reply-To:From:References:To:Subject:Date:Message-ID:Cc:Date:From:\n\tSubject:Sender;\n\tbh=4GbYDVt5OtBIxenUFbSp80XmZwoXb2KFcAAF49r2SKI=;\n\tb=Q1YdeQ47g12L29ws6BgmHoUWIjm2ElBBL0SpenQrFohKc9Vvf7xj0byvuynMcIBfKH\n\tUiceY2/0mnU77PROHAW/NnWorkBpFWJiE5UPhuAJDxNTaO4YZR4mkAruDC7TGL/l37QV\n\tEXP8ikAf6vN18MX0SXAL/U76tzsolSuHzn4jgpEGsIX6Dtjb0IsqYxrg3TgdIhd+3eOW\n\tz8ewyq/1ncYXS64IioRJmZObnD/kmwKuyBZFwGSYO4qQQ91S7X/tjSp+D73S1ZWLbmXf\n\tRa2/qUZ6PtlV4AptEnqBQvsv7TOsbnJOKm2q0khZ5lxup1EmPu9aF21qGsq3l+rXm5hK\n\tlIBA=="],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=pixelcircus.com\n\theader.i=@pixelcircus.com\n\theader.b=\"Q1YdeQ47\"; dkim-atps=neutral","strato.com;\n    dkim=none"],"X-RZG-AUTH":"\":PmMIcw6gfvH6sDQUfQKRAqiTA1l3BagY1gT9AyStwoyavc15b0SDiC0vB2QI+rjps0BD1605Oyw+yjo2Bg==\"","X-RZG-CLASS-ID":"mo00","Message-ID":"<526cc546-cf38-b706-0c83-3c3d7927535f@pixelcircus.de>","Date":"Tue, 20 Dec 2022 13:09:23 +0100","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64;\n\trv:102.0) Gecko/20100101 Thunderbird/102.6.0","To":"libcamera-devel@lists.libcamera.org","References":"<20221216135903.17446-1-naush@raspberrypi.com>\n\t<167120074724.9133.8416585353542833664@Monstersaurus>\n\t<CAEmqJPo0V+M6LPmR0NUVLMCZrm7V-yK5Zo5zGGfAOFKTzjjZhA@mail.gmail.com>\n\t<Y6DrdnvmKJncv03q@pendragon.ideasonboard.com>","In-Reply-To":"<Y6DrdnvmKJncv03q@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-Mailman-Approved-At":"Tue, 20 Dec 2022 13:20:10 +0100","Subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"cpixip--- via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"cpixip@pixelcircus.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26128,"web_url":"https://patchwork.libcamera.org/comment/26128/","msgid":"<167162761758.3944359.17859801532069080408@Monstersaurus>","date":"2022-12-21T13:00:17","subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting cpixip--- via libcamera-devel (2022-12-20 12:09:23)\n> Hello - just a short comment below ( I hope I am doing this right - not \n> really familiar with this email/list-based system)\n> \n\nHi - yes you're doing fine ;-)\n\n\n> Am 19.12.2022 um 23:53 schrieb Laurent Pinchart:\n> > Hello,\n> >\n> > On Fri, Dec 16, 2022 at 03:09:55PM +0000, Naushir Patuck wrote:\n> >> On Fri, 16 Dec 2022 at 14:25, Kieran Bingham wrote:\n> >>> Quoting Naushir Patuck via libcamera-devel (2022-12-16 13:59:03)\n> >>>> Add a tuning file for the IMX477 more suited to scientific applications.\n> >>>> The key differences from the original tuning file are:\n> >>>>\n> >>>> - Disable ALSC block completely\n> >>>> - Pure rec709 gamma curve, and no contrast enhance\n> >>>> - New CT curve and CCMs based on the illumination spectrum of a black body\n> >>>> radiator up to about 3600 K and the CIE illuminant D for higher color\n> >>>> temperatures.\n> >>>>\n> >>>> Further details on the changes can be found at:\n> >>>> https://forums.raspberrypi.com/viewtopic.php?t=343449\n> >>>>\n> >>>> All credit for these changes go to Dr. Rolf Henkel.\n> >>> Some very interesting investigations in that thread.\n> >>>\n> >>> I'm curious if we'll end up with more configurations like this for each\n> >>> sensor!\n> >> I think that's entirely possible - and all part of the design with json config\n> >> files!\n> >>\n> >>> But I really like the graphs to present what the tuning files\n> >>> are doing comparitively. Much easier to grasp than a file of json\n> >>> data...\n> >>>\n> >>> No objections to this here but apart from admiring the graphs, I won't\n> >>> judge the data so:\n> >>>\n> >>> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >>>\n> >>>\n> >>> My only concern/comment would be how and where would we document the\n> >>> differences between these tuning files? Would users just be expected to\n> >>> try them to see ? Or would it be clear that a 'scientific' tuning file\n> >>> has a specific set of properties ?\n> >> At the end of the day, I think this is a choice for informed users. We provide\n> >> a sensible default config for visually pleasing images, but if users have a\n> >> specific application that requires something custom, we leave it to them to\n> >> switch to the appropriate tuning file that they know works for them.\n> > Overall that makes sense to me. In this particular case, I think it\n> > would however make sense to give applications a way to control the tone\n> > mapping curve at runtime (including disabling contrast enhancement)\n> > instead of having different curves specified in tuning files.\n> \n> Indeed, it would be great to be able to control certain parameters at \n> runtime. There are a number of automatic algorithms working in libcamera \n> which presently can only be deactivated in akward ways - mostly by \n> editing the tuning file. That is, you need to stop and restart the \n> camera for such changes to take place. It would be great (for people who \n> know what they are doing) to be able to deactivate automatic processing \n> while the camera is running, for example.\n\nI would expect this is entirely possible by providing the controls to\nenable/disable automatic features, just like we do with manual\ngain/manual exposure.\n\n \n> > This isn't something that needs to be implemented urgently, and I'm fine\n> > with this patch, but if we have tuning files that differed only by their\n> > tone mapping curve, I'd get more annoyed.\n> \n> Note that the tone mapping curve is not the most important deviation of \n> this new tuning file from the standard tuning file. It does help to get \n> slightly less trendy colors.\n> \n> However, more important is probably the ct-curve, combined with new CCM \n> matrices. These new values vary much smoother than the original values \n> over the range of CCTs.\n> \n> Another point: as soon as libcamera is starting to support sensors with \n> interchangable lenses (and the Raspberry Pi HQ camera is one of these), \n> the inclusion of the ALSC section in the tuning file makes it as well \n> necessary to have a dedicated tuning file for every lens which you are \n> planning to use. So maybe the addition of an info-section in the tuning \n> file would be a thing to consider. Such an info-section could also \n> include details on how the tuning file was created - something like that \n> is currently missing. For example, the IMX477 tuning file for the HQ \n> camera features ALSC-tables - but there is no information whatsoever \n> which specific lens was used in the calibration.\n> \n> LSC is in a sense rather independent from other sections in the \n> processing pipeline. Maybe it even makes sense to split the monolithic \n> json-file into independent parts?\n\nSplitting could make sense so there's a default. But either way, we need\nto figure out how to make more 'module' specific tuning files.\n\nUltimately, I would expect a different lens to have impacts across\nthe whole tuning data?\n\n--\nKieran","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id D3026C3200\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 21 Dec 2022 13:00:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1146D633A3;\n\tWed, 21 Dec 2022 14:00:22 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7DFD561F15\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 21 Dec 2022 14:00:20 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 07F95FB;\n\tWed, 21 Dec 2022 14:00:19 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1671627622;\n\tbh=TnxpPs4WqQzGupUwQUbfLY1TYxMTReTY9TqTk7oiEUA=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=M4AJGZPQBG14FUGT2mO2ZM3kfYAkx/lr1Cb+F9kkOchE+lOQ7ivOnd5e06BM4oeG8\n\tq+t2On5HALhSR67CEILslRTjyJDGDc4eOG4PLJGTxa2/b1BudG4Dk0lRI7g41eK1KC\n\tPQVkJLb76AWnY/oQwomZcTa25r4zI3td1oYsPY+3lvkFJvSyNyWY/J3aPdJD0L7+KS\n\tXmBjK53Y4jqLFNsug0XhZRpfg2tFclGji3o68YA3yj41Qve6Nm8Lbxikk+gZW4EIb3\n\tD+IbtooPKZL2VaLAPzkZA72AF80J6ox/1OcjkHrp+oCpV2HgRh8U4fbkC2/T0inMRG\n\t0CYLJ3iaL09jw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1671627620;\n\tbh=TnxpPs4WqQzGupUwQUbfLY1TYxMTReTY9TqTk7oiEUA=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=n2j4NlEwPAn5RyFUyfc3IwsqdxEDNujRxtyyq04EH/Mg4OEWdWMZJvO1XfHxiDuEU\n\tOhszcuoww7PF5FSvLWEyVnSkulEBIH6o4hj2VylRnpj7AUU22GpVLRngBJhNeSkfw3\n\tihpPhP7LepzQxm2LIgqH/kYrN/uEwy/tcHkPUVAo="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"n2j4NlEw\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<526cc546-cf38-b706-0c83-3c3d7927535f@pixelcircus.de>","References":"<20221216135903.17446-1-naush@raspberrypi.com>\n\t<167120074724.9133.8416585353542833664@Monstersaurus>\n\t<CAEmqJPo0V+M6LPmR0NUVLMCZrm7V-yK5Zo5zGGfAOFKTzjjZhA@mail.gmail.com>\n\t<Y6DrdnvmKJncv03q@pendragon.ideasonboard.com>\n\t<526cc546-cf38-b706-0c83-3c3d7927535f@pixelcircus.de>","To":"cpixip@pixelcircus.com, libcamera-devel@lists.libcamera.org","Date":"Wed, 21 Dec 2022 13:00:17 +0000","Message-ID":"<167162761758.3944359.17859801532069080408@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26132,"web_url":"https://patchwork.libcamera.org/comment/26132/","msgid":"<Y6MWs4xKWs1lOPqF@pendragon.ideasonboard.com>","date":"2022-12-21T14:22:43","subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Wed, Dec 21, 2022 at 01:00:17PM +0000, Kieran Bingham via libcamera-devel wrote:\n> Quoting cpixip--- via libcamera-devel (2022-12-20 12:09:23)\n> > Hello - just a short comment below ( I hope I am doing this right - not \n> > really familiar with this email/list-based system)\n> \n> Hi - yes you're doing fine ;-)\n> \n> > Am 19.12.2022 um 23:53 schrieb Laurent Pinchart:\n> > > On Fri, Dec 16, 2022 at 03:09:55PM +0000, Naushir Patuck wrote:\n> > >> On Fri, 16 Dec 2022 at 14:25, Kieran Bingham wrote:\n> > >>> Quoting Naushir Patuck via libcamera-devel (2022-12-16 13:59:03)\n> > >>>> Add a tuning file for the IMX477 more suited to scientific applications.\n> > >>>> The key differences from the original tuning file are:\n> > >>>>\n> > >>>> - Disable ALSC block completely\n> > >>>> - Pure rec709 gamma curve, and no contrast enhance\n> > >>>> - New CT curve and CCMs based on the illumination spectrum of a black body\n> > >>>> radiator up to about 3600 K and the CIE illuminant D for higher color\n> > >>>> temperatures.\n> > >>>>\n> > >>>> Further details on the changes can be found at:\n> > >>>> https://forums.raspberrypi.com/viewtopic.php?t=343449\n> > >>>>\n> > >>>> All credit for these changes go to Dr. Rolf Henkel.\n> > >>> Some very interesting investigations in that thread.\n> > >>>\n> > >>> I'm curious if we'll end up with more configurations like this for each\n> > >>> sensor!\n> > >>>\n> > >> I think that's entirely possible - and all part of the design with json config\n> > >> files!\n> > >>\n> > >>> But I really like the graphs to present what the tuning files\n> > >>> are doing comparitively. Much easier to grasp than a file of json\n> > >>> data...\n> > >>>\n> > >>> No objections to this here but apart from admiring the graphs, I won't\n> > >>> judge the data so:\n> > >>>\n> > >>> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > >>>\n> > >>>\n> > >>> My only concern/comment would be how and where would we document the\n> > >>> differences between these tuning files? Would users just be expected to\n> > >>> try them to see ? Or would it be clear that a 'scientific' tuning file\n> > >>> has a specific set of properties ?\n> > >>\n> > >> At the end of the day, I think this is a choice for informed users. We provide\n> > >> a sensible default config for visually pleasing images, but if users have a\n> > >> specific application that requires something custom, we leave it to them to\n> > >> switch to the appropriate tuning file that they know works for them.\n> > >\n> > > Overall that makes sense to me. In this particular case, I think it\n> > > would however make sense to give applications a way to control the tone\n> > > mapping curve at runtime (including disabling contrast enhancement)\n> > > instead of having different curves specified in tuning files.\n> > \n> > Indeed, it would be great to be able to control certain parameters at \n> > runtime. There are a number of automatic algorithms working in libcamera \n> > which presently can only be deactivated in akward ways - mostly by \n> > editing the tuning file. That is, you need to stop and restart the \n> > camera for such changes to take place. It would be great (for people who \n> > know what they are doing) to be able to deactivate automatic processing \n> > while the camera is running, for example.\n> \n> I would expect this is entirely possible by providing the controls to\n> enable/disable automatic features, just like we do with manual\n> gain/manual exposure.\n\nIt should be, but not all automatic features implemented in the\nRaspberry Pi IPA have corresponding controls. Contrast enhancement is\none such feature that lacks a control.\n\nSome features may be difficult to enable or disable at runtime, making\nthem a target for being controlled through the start() call only, but\neven that would be an improvement compared to having to create custom\ntuning files.\n\n> > > This isn't something that needs to be implemented urgently, and I'm fine\n> > > with this patch, but if we have tuning files that differed only by their\n> > > tone mapping curve, I'd get more annoyed.\n> > \n> > Note that the tone mapping curve is not the most important deviation of \n> > this new tuning file from the standard tuning file. It does help to get \n> > slightly less trendy colors.\n> > \n> > However, more important is probably the ct-curve, combined with new CCM \n> > matrices. These new values vary much smoother than the original values \n> > over the range of CCTs.\n\nThose would be more awkward to control through standard controls I\nbelieve, as they are quite specific to the Raspberry Pi implementation\nof the corresponding algorithms.\n\n> > Another point: as soon as libcamera is starting to support sensors with \n> > interchangable lenses (and the Raspberry Pi HQ camera is one of these), \n> > the inclusion of the ALSC section in the tuning file makes it as well \n> > necessary to have a dedicated tuning file for every lens which you are \n> > planning to use. So maybe the addition of an info-section in the tuning \n> > file would be a thing to consider. Such an info-section could also \n> > include details on how the tuning file was created - something like that \n> > is currently missing. For example, the IMX477 tuning file for the HQ \n> > camera features ALSC-tables - but there is no information whatsoever \n> > which specific lens was used in the calibration.\n\nThat's a very good idea ! I've recorded it in\nhttps://bugs.libcamera.org/show_bug.cgi?id=175.\n\n> > LSC is in a sense rather independent from other sections in the \n> > processing pipeline. Maybe it even makes sense to split the monolithic \n> > json-file into independent parts?\n> \n> Splitting could make sense so there's a default. But either way, we need\n> to figure out how to make more 'module' specific tuning files.\n> \n> Ultimately, I would expect a different lens to have impacts across\n> the whole tuning data?","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id F118CC3213\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 21 Dec 2022 14:22:50 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 74E92633A2;\n\tWed, 21 Dec 2022 15:22:50 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DB94A61F15\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 21 Dec 2022 15:22:48 +0100 (CET)","from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi\n\t[213.243.189.158])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 57995FB;\n\tWed, 21 Dec 2022 15:22:48 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1671632570;\n\tbh=Ae9qOX5F/rdidZBPEDWpIsd7FADV+TyOY+7SPrf1G68=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=stReKdSN7PFPpcoQS5k24DP4d7Uvb3RzN4rNry/lQRulM8GvJ0FvSp24AjDVsGeLk\n\t4gwtyzRCpHud5bOhbYy4iTmDmgMaOK4iKLHeWR/0rr0JqX5UTaJfF7HBxMIwe7KKFm\n\t6738ybXFq1Yy7aolRP8t9LP9yUZjBJO1G+ToPe4CKzCMilGa6I23lOUW27QBcBjMZ1\n\txevUVLerlmYwWG64O20s6P3jE1dShh3uEaOkfx8YptIVJXmG4pJQ76HlPlCYP8iIoP\n\t9vSaW9h6Z7m5E7DpBdz9bBiZR5Kp5YEB17xLWe8AEXtafaC/T99RQ9S78jezyIq4RB\n\tcsI9HmyVnzlUg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1671632568;\n\tbh=Ae9qOX5F/rdidZBPEDWpIsd7FADV+TyOY+7SPrf1G68=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=nLBxWYDzdaceFhx7Z8ZQPgNSsAKdG3w5hRACjAf5kV3umX0aqeFBuG+2iqSyLQoAq\n\tWQIxoxfdi4oVHMm5F46zHImm8efClFRrN0k3O8JcyiPdp1zyEx4XAojYcYcEketUEn\n\t3QDpXX+1JBTwLXzaoSFyhwcay9AnBU9BTV/cLERg="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"nLBxWYDz\"; dkim-atps=neutral","Date":"Wed, 21 Dec 2022 16:22:43 +0200","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<Y6MWs4xKWs1lOPqF@pendragon.ideasonboard.com>","References":"<20221216135903.17446-1-naush@raspberrypi.com>\n\t<167120074724.9133.8416585353542833664@Monstersaurus>\n\t<CAEmqJPo0V+M6LPmR0NUVLMCZrm7V-yK5Zo5zGGfAOFKTzjjZhA@mail.gmail.com>\n\t<Y6DrdnvmKJncv03q@pendragon.ideasonboard.com>\n\t<526cc546-cf38-b706-0c83-3c3d7927535f@pixelcircus.de>\n\t<167162761758.3944359.17859801532069080408@Monstersaurus>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<167162761758.3944359.17859801532069080408@Monstersaurus>","Subject":"Re: [libcamera-devel] [PATCH] ipa: raspberrypi: Add a \"scientific\"\n\ttuning for the IMX477","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"cpixip@pixelcircus.com, libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]