[{"id":21827,"web_url":"https://patchwork.libcamera.org/comment/21827/","msgid":"<CAEmqJPr7fzgVDmMh7bgZn=z0j9Rfux3H1FNU-LbHGVdJ7frBrg@mail.gmail.com>","date":"2021-12-20T07:42:50","subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Laurent,\n\nThank you for your work.\n\nOn Sun, 19 Dec 2021 at 23:27, Laurent Pinchart <\nlaurent.pinchart@ideasonboard.com> wrote:\n\n> From: Naushir Patuck <naush@raspberrypi.com>\n>\n> The Sony IMX296 exists in two versions, colour (Bayer) and monochrome.\n> The tuning file corresponds to the colour version.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>\n\nWe might want to do a second pass of tuning at some point, but this is a\ngood\nstarting point.\n\nSigned-off-by: Naushir Patuck <naush <naushir@gmail.com>@raspberrypi.com>\nReviewed-by: Naushir Patuck <naush <naushir@gmail.com>@raspberrypi.com>\n\n\n> ---\n>  src/ipa/raspberrypi/data/imx296.json | 305 +++++++++++++++++++++++++++\n>  src/ipa/raspberrypi/data/meson.build |   1 +\n>  2 files changed, 306 insertions(+)\n>  create mode 100644 src/ipa/raspberrypi/data/imx296.json\n>\n> diff --git a/src/ipa/raspberrypi/data/imx296.json\n> b/src/ipa/raspberrypi/data/imx296.json\n> new file mode 100644\n> index 000000000000..2444bd2eb940\n> --- /dev/null\n> +++ b/src/ipa/raspberrypi/data/imx296.json\n> @@ -0,0 +1,305 @@\n> +{\n> +    \"rpi.black_level\":\n> +    {\n> +        \"black_level\": 4096\n> +    },\n> +    \"rpi.dpc\":\n> +    {\n> +    },\n> +    \"rpi.lux\":\n> +    {\n> +        \"reference_shutter_speed\": 19184,\n> +        \"reference_gain\": 1.0,\n> +        \"reference_aperture\": 1.0,\n> +        \"reference_lux\": 432,\n> +        \"reference_Y\": 13773\n> +    },\n> +    \"rpi.noise\":\n> +    {\n> +        \"reference_constant\": 0,\n> +        \"reference_slope\": 2.957\n> +    },\n> +    \"rpi.geq\":\n> +    {\n> +        \"offset\": 185,\n> +        \"slope\": 0.0105\n> +    },\n> +    \"rpi.sdn\":\n> +    {\n> +    },\n> +    \"rpi.awb\":\n> +    {\n> +        \"priors\":\n> +        [\n> +            {\n> +                \"lux\": 0, \"prior\":\n> +                [\n> +                    2000, 1.0, 3000, 0.0, 13000, 0.0\n> +                ]\n> +            },\n> +            {\n> +                \"lux\": 800, \"prior\":\n> +                [\n> +                    2000, 0.0, 6000, 2.0, 13000, 2.0\n> +                ]\n> +            },\n> +            {\n> +                \"lux\": 1500, \"prior\":\n> +                [\n> +                    2000, 0.0, 4000, 1.0, 6000, 6.0, 6500, 7.0, 7000,\n> 1.0, 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> +            2960.0, 0.5114, 0.3294, 3720.0, 0.4222, 0.4164, 3770.0,\n> 0.4194, 0.4194, 6040.0, 0.2871, 0.5702, 8450.0,\n> +            0.2285, 0.6454\n> +        ],\n> +        \"sensitivity_r\": 1.0,\n> +        \"sensitivity_b\": 1.0,\n> +        \"transverse_pos\": 0.01,\n> +        \"transverse_neg\": 0.01157\n> +    },\n> +    \"rpi.agc\":\n> +    {\n> +        \"metering_modes\":\n> +        {\n> +            \"centre-weighted\":\n> +            {\n> +                \"weights\":\n> +                [\n> +                    3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0\n> +                ]\n> +            },\n> +            \"spot\":\n> +            {\n> +                \"weights\":\n> +                [\n> +                    2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n> +                ]\n> +            },\n> +            \"matrix\":\n> +            {\n> +                \"weights\":\n> +                [\n> +                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1\n> +                ]\n> +            }\n> +        },\n> +        \"exposure_modes\":\n> +        {\n> +            \"normal\":\n> +            {\n> +                \"shutter\":\n> +                [\n> +                    100, 10000, 30000, 60000, 120000\n> +                ],\n> +                \"gain\":\n> +                [\n> +                    1.0, 2.0, 4.0, 6.0, 6.0\n> +                ]\n> +            },\n> +            \"short\":\n> +            {\n> +                \"shutter\":\n> +                [\n> +                    100, 5000, 10000, 20000, 120000\n> +                ],\n> +                \"gain\":\n> +                [\n> +                    1.0, 2.0, 4.0, 6.0, 6.0\n> +                ]\n> +            }\n> +        },\n> +        \"constraint_modes\":\n> +        {\n> +            \"normal\":\n> +            [\n> +                {\n> +                    \"bound\": \"LOWER\", \"q_lo\": 0.98, \"q_hi\": 1.0,\n> \"y_target\":\n> +                    [\n> +                        0, 0.5, 1000, 0.5\n> +                    ]\n> +                }\n> +            ],\n> +            \"highlight\":\n> +            [\n> +                {\n> +                    \"bound\": \"LOWER\", \"q_lo\": 0.98, \"q_hi\": 1.0,\n> \"y_target\":\n> +                    [\n> +                        0, 0.5, 1000, 0.5\n> +                    ]\n> +                },\n> +                {\n> +                    \"bound\": \"UPPER\", \"q_lo\": 0.98, \"q_hi\": 1.0,\n> \"y_target\":\n> +                    [\n> +                        0, 0.8, 1000, 0.8\n> +                    ]\n> +                }\n> +            ]\n> +        },\n> +        \"y_target\":\n> +        [\n> +            0, 0.16, 1000, 0.165, 10000, 0.17\n> +        ]\n> +    },\n> +    \"rpi.alsc\":\n> +    {\n> +        \"omega\": 1.3,\n> +        \"n_iter\": 100,\n> +        \"luminance_strength\": 0.5,\n> +        \"calibrations_Cr\":\n> +        [\n> +            {\n> +                \"ct\": 4000, \"table\":\n> +                [\n> +                    2.554, 2.554, 2.541, 2.534, 2.495, 2.506, 2.516,\n> 2.517, 2.518, 2.515, 2.513, 2.495, 2.481, 2.533, 2.533, 2.521,\n> +                    2.522, 2.534, 2.539, 2.531, 2.531, 2.506, 2.506,\n> 2.513, 2.513, 2.509, 2.498, 2.496, 2.508, 2.517, 2.521, 2.521,\n> +                    2.509, 2.517, 2.534, 2.529, 2.531, 2.521, 2.517,\n> 2.517, 2.515, 2.514, 2.506, 2.499, 2.508, 2.508, 2.521, 2.537,\n> +                    2.507, 2.508, 2.517, 2.516, 2.495, 2.487, 2.519,\n> 2.534, 2.535, 2.531, 2.499, 2.494, 2.501, 2.511, 2.526, 2.526,\n> +                    2.509, 2.517, 2.507, 2.501, 2.494, 2.519, 2.539,\n> 2.539, 2.537, 2.537, 2.533, 2.499, 2.503, 2.511, 2.529, 2.525,\n> +                    2.521, 2.522, 2.476, 2.501, 2.501, 2.539, 2.546,\n> 2.538, 2.531, 2.538, 2.541, 2.531, 2.529, 2.526, 2.529, 2.525,\n> +                    2.516, 2.519, 2.469, 2.499, 2.499, 2.543, 2.543,\n> 2.531, 2.528, 2.534, 2.541, 2.535, 2.531, 2.526, 2.531, 2.528,\n> +                    2.509, 2.515, 2.465, 2.487, 2.487, 2.539, 2.543,\n> 2.539, 2.533, 2.549, 2.542, 2.531, 2.529, 2.524, 2.532, 2.533,\n> +                    2.499, 2.499, 2.475, 2.482, 2.471, 2.509, 2.539,\n> 2.544, 2.543, 2.545, 2.533, 2.498, 2.521, 2.521, 2.537, 2.536,\n> +                    2.499, 2.488, 2.488, 2.488, 2.471, 2.462, 2.509,\n> 2.539, 2.539, 2.532, 2.498, 2.498, 2.518, 2.518, 2.539, 2.539,\n> +                    2.483, 2.484, 2.488, 2.488, 2.502, 2.496, 2.508,\n> 2.514, 2.518, 2.517, 2.521, 2.518, 2.518, 2.518, 2.525, 2.539,\n> +                    2.483, 2.487, 2.478, 2.478, 2.507, 2.509, 2.514,\n> 2.513, 2.514, 2.517, 2.536, 2.559, 2.501, 2.501, 2.503, 2.525\n> +                ]\n> +            }\n> +        ],\n> +        \"calibrations_Cb\":\n> +        [\n> +            {\n> +                \"ct\": 4000, \"table\":\n> +                [\n> +                    2.619, 2.603, 2.599, 2.597, 2.595, 2.594, 2.589,\n> 2.587, 2.586, 2.589, 2.592, 2.597, 2.601, 2.608, 2.621, 2.621,\n> +                    2.619, 2.615, 2.603, 2.601, 2.596, 2.595, 2.591,\n> 2.589, 2.589, 2.592, 2.599, 2.593, 2.601, 2.613, 2.622, 2.631,\n> +                    2.617, 2.617, 2.612, 2.611, 2.604, 2.598, 2.593,\n> 2.591, 2.592, 2.591, 2.593, 2.595, 2.599, 2.614, 2.623, 2.631,\n> +                    2.624, 2.619, 2.615, 2.612, 2.605, 2.602, 2.597,\n> 2.596, 2.592, 2.592, 2.595, 2.599, 2.602, 2.606, 2.619, 2.624,\n> +                    2.629, 2.627, 2.627, 2.617, 2.609, 2.598, 2.612,\n> 2.623, 2.615, 2.604, 2.589, 2.595, 2.599, 2.608, 2.611, 2.614,\n> +                    2.629, 2.632, 2.637, 2.627, 2.612, 2.612, 2.629,\n> 2.631, 2.628, 2.621, 2.604, 2.597, 2.598, 2.604, 2.609, 2.609,\n> +                    2.635, 2.636, 2.642, 2.628, 2.623, 2.623, 2.636,\n> 2.636, 2.634, 2.628, 2.616, 2.599, 2.597, 2.601, 2.603, 2.601,\n> +                    2.641, 2.639, 2.646, 2.632, 2.627, 2.625, 2.632,\n> 2.635, 2.634, 2.627, 2.614, 2.596, 2.595, 2.599, 2.599, 2.598,\n> +                    2.643, 2.644, 2.651, 2.649, 2.629, 2.617, 2.624,\n> 2.629, 2.625, 2.614, 2.586, 2.599, 2.595, 2.597, 2.592, 2.595,\n> +                    2.645, 2.646, 2.649, 2.649, 2.638, 2.624, 2.616,\n> 2.617, 2.609, 2.604, 2.603, 2.603, 2.595, 2.589, 2.587, 2.592,\n> +                    2.641, 2.643, 2.649, 2.647, 2.638, 2.618, 2.615,\n> 2.608, 2.602, 2.595, 2.596, 2.595, 2.593, 2.584, 2.581, 2.583,\n> +                    2.638, 2.637, 2.647, 2.634, 2.634, 2.618, 2.621,\n> 2.621, 2.611, 2.602, 2.596, 2.583, 2.581, 2.581, 2.576, 2.574\n> +                ]\n> +            }\n> +        ],\n> +        \"luminance_lut\":\n> +        [\n> +            1.308, 1.293, 1.228, 1.175, 1.139, 1.108, 1.092, 1.082,\n> 1.082, 1.086, 1.097, 1.114, 1.149, 1.199, 1.279, 1.303,\n> +            1.293, 1.249, 1.199, 1.162, 1.136, 1.109, 1.087, 1.077,\n> 1.072, 1.081, 1.095, 1.103, 1.133, 1.172, 1.225, 1.282,\n> +            1.251, 1.212, 1.186, 1.159, 1.129, 1.114, 1.102, 1.088,\n> 1.088, 1.088, 1.095, 1.117, 1.123, 1.158, 1.198, 1.249,\n> +            1.223, 1.192, 1.177, 1.163, 1.147, 1.139, 1.132, 1.112,\n> 1.111, 1.107, 1.113, 1.118, 1.139, 1.155, 1.186, 1.232,\n> +            1.207, 1.186, 1.171, 1.162, 1.168, 1.163, 1.153, 1.138,\n> 1.129, 1.128, 1.132, 1.136, 1.149, 1.167, 1.189, 1.216,\n> +            1.198, 1.186, 1.176, 1.176, 1.177, 1.185, 1.171, 1.157,\n> 1.146, 1.144, 1.146, 1.149, 1.161, 1.181, 1.201, 1.221,\n> +            1.203, 1.181, 1.176, 1.178, 1.191, 1.189, 1.188, 1.174,\n> 1.159, 1.153, 1.158, 1.161, 1.169, 1.185, 1.211, 1.227,\n> +            1.211, 1.179, 1.177, 1.187, 1.194, 1.196, 1.194, 1.187,\n> 1.176, 1.169, 1.171, 1.171, 1.175, 1.189, 1.214, 1.226,\n> +            1.219, 1.182, 1.184, 1.191, 1.195, 1.199, 1.197, 1.194,\n> 1.188, 1.185, 1.179, 1.179, 1.182, 1.194, 1.212, 1.227,\n> +            1.237, 1.192, 1.194, 1.194, 1.198, 1.199, 1.198, 1.197,\n> 1.196, 1.193, 1.189, 1.189, 1.192, 1.203, 1.214, 1.231,\n> +            1.282, 1.199, 1.199, 1.197, 1.199, 1.199, 1.192, 1.193,\n> 1.193, 1.194, 1.196, 1.197, 1.206, 1.216, 1.228, 1.244,\n> +            1.309, 1.236, 1.204, 1.203, 1.202, 1.194, 1.194, 1.188,\n> 1.192, 1.192, 1.199, 1.201, 1.212, 1.221, 1.235, 1.247\n> +        ],\n> +        \"sigma\": 0.005,\n> +        \"sigma_Cb\": 0.005\n> +    },\n> +    \"rpi.contrast\":\n> +    {\n> +        \"ce_enable\": 1,\n> +        \"gamma_curve\":\n> +        [\n> +            0, 0, 1024, 5040, 2048, 9338, 3072, 12356, 4096, 15312, 5120,\n> 18051, 6144, 20790, 7168, 23193,\n> +            8192, 25744, 9216, 27942, 10240, 30035, 11264, 32005, 12288,\n> 33975, 13312, 35815, 14336, 37600, 15360, 39168,\n> +            16384, 40642, 18432, 43379, 20480, 45749, 22528, 47753,\n> 24576, 49621, 26624, 51253, 28672, 52698, 30720, 53796,\n> +            32768, 54876, 36864, 57012, 40960, 58656, 45056, 59954,\n> 49152, 61183, 53248, 62355, 57344, 63419, 61440, 64476,\n> +            65535, 65535\n> +        ]\n> +    },\n> +    \"rpi.ccm\":\n> +    {\n> +        \"ccms\":\n> +        [\n> +            {\n> +                \"ct\": 2960, \"ccm\":\n> +                [\n> +                    1.61465, -0.49757, -0.11708, -0.30813, 1.53862,\n> -0.23049, 0.04267, -0.76988, 1.72721\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 3720, \"ccm\":\n> +                [\n> +                    1.63316, -0.55061, -0.08255, -0.27238, 1.54441,\n> -0.27203, 0.01948, -0.66461, 1.64513\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 3770, \"ccm\":\n> +                [\n> +                    1.62378, -0.54465, -0.07913, -0.26849, 1.54674,\n> -0.27825, 0.01751, -0.64966, 1.63214\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 6000, \"ccm\":\n> +                [\n> +                    1.56877, -0.55713, -0.01164, -0.13524, 1.48494,\n> -0.34969, 0.01184, -0.59069, 1.57885\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 6040, \"ccm\":\n> +                [\n> +                    1.58628, -0.57451, -0.01177, -0.13959, 1.48858,\n> -0.34898, 0.01138, -0.58747, 1.57609\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 8450, \"ccm\":\n> +                [\n> +                    1.51714, -0.33619, -0.18094, -0.16148, 2.03049,\n> -0.86901, 0.00999, -0.92095, 1.91096\n> +                ]\n> +            }\n> +        ]\n> +    },\n> +    \"rpi.sharpen\":\n> +    {\n> +    }\n> +}\n> diff --git a/src/ipa/raspberrypi/data/meson.build\n> b/src/ipa/raspberrypi/data/meson.build\n> index e84cd0990c31..211811cfa915 100644\n> --- a/src/ipa/raspberrypi/data/meson.build\n> +++ b/src/ipa/raspberrypi/data/meson.build\n> @@ -4,6 +4,7 @@ conf_files = files([\n>      'imx219.json',\n>      'imx219_noir.json',\n>      'imx290.json',\n> +    'imx296.json',\n>      'imx378.json',\n>      'imx477.json',\n>      'imx477_noir.json',\n> --\n> Regards,\n>\n> Laurent Pinchart\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 B22B0BE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 20 Dec 2021 07:43:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5F343608A2;\n\tMon, 20 Dec 2021 08:43:09 +0100 (CET)","from mail-lf1-x132.google.com (mail-lf1-x132.google.com\n\t[IPv6:2a00:1450:4864:20::132])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A000060115\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 20 Dec 2021 08:43:07 +0100 (CET)","by mail-lf1-x132.google.com with SMTP id b22so19648863lfb.9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 19 Dec 2021 23:43:07 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"TuEhvRDV\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=GGS1eF6HAf9O66+xmvazqat/pnUnKrFNY3+1VT9Bc2Y=;\n\tb=TuEhvRDV1I6/Vf/Cv/uDPe6tgpXBxZUO1qEKkZbI6wvU49Qd/krDchOXUwefEsKpiu\n\tPzHSETpzzZgAyEuOmbiZSCLgeHPdVjYe+ma3neWSpP8ZQZvUtryVbqhL/lSWy5LKgfc/\n\t+6CVo9WYtYWp2DaBrAZyLXYTorAprksy1a8yVOuwQ4vxHRx2lNKOTvciXz94a5ywgi3y\n\tsQxcRUwI4twHLLzekX9nDEl8dZL5ycDSoCMALb9HDDPosFZRzwjgPyBX8kCVTpWLYvGA\n\tHVLR2jlqVnlztpb/Va8nuyUB9n+RmKzZSVHXlxW9kwd9VMjm1U+0caAbQoep6z8qP6Wb\n\t+W2Q==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=GGS1eF6HAf9O66+xmvazqat/pnUnKrFNY3+1VT9Bc2Y=;\n\tb=cGiKd/WJ6OD8VMPEBXGnup45ZBA89OQM9T/MmkSBYGSYBkRDvOzrVOrzK+S8NgOyWH\n\t4ZYO03HH9Dd2dZCJSYyEpP5C4IY8qkPgg/KU6Xwu4K2bHE8kpHoz01y5kOBe/5FbdQ98\n\t8hkk29IWmLckiZ3i5MGShdpYpKlr/BWTQLCwsdUQv3yI8s0PwADpXrbcymg9BBKbqZzJ\n\thKOyWDQ0B0wwA+LLu47IL6ElwhOtKzm31xG82SXZKB9eQJBir5PjrE7j+bP6yAVLcbDS\n\tPtlw9E4hrw6Bw764f/m/R4nGQ6f4f1xbPLaIaHETYE+6sH3L6/qq5fOZVP4ISvPZQ/z0\n\t1tgw==","X-Gm-Message-State":"AOAM530LUmC/as8oCC+CTGXNF0D18MBBPmlPcIra3F4b5uIxTBOrbjib\n\tjLfnmu8hBYA9mmoC5BHgNVGjtub81vnr1JiVZXhCB+AG/RRUxQ==","X-Google-Smtp-Source":"ABdhPJzfaNI1vNkszOWpeaI94buEn4ud/NS0i5BsoQrxppFM/fG7UH0APhwARg4HGGm4N7l8FSm9scnqfNqvC/M7RSc=","X-Received":"by 2002:a05:6512:1111:: with SMTP id\n\tl17mr4482434lfg.161.1639986187025; \n\tSun, 19 Dec 2021 23:43:07 -0800 (PST)","MIME-Version":"1.0","References":"<20211219232714.11427-1-laurent.pinchart@ideasonboard.com>\n\t<20211219232714.11427-5-laurent.pinchart@ideasonboard.com>","In-Reply-To":"<20211219232714.11427-5-laurent.pinchart@ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Mon, 20 Dec 2021 07:42:50 +0000","Message-ID":"<CAEmqJPr7fzgVDmMh7bgZn=z0j9Rfux3H1FNU-LbHGVdJ7frBrg@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"multipart/alternative; boundary=\"0000000000001d4d6905d38f0a2f\"","Subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":21828,"web_url":"https://patchwork.libcamera.org/comment/21828/","msgid":"<CAHW6GYL0MVmyB+i_qf=rQ2YZvxfeOBGo_cdtWrb0VuM=JGBzRw@mail.gmail.com>","date":"2021-12-20T08:58:45","subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Laurent, Naush\n\nThanks for submitting this!\n\nOn Mon, 20 Dec 2021 at 07:43, Naushir Patuck <naush@raspberrypi.com> wrote:\n>\n> Hi Laurent,\n>\n> Thank you for your work.\n>\n> On Sun, 19 Dec 2021 at 23:27, Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote:\n>>\n>> From: Naushir Patuck <naush@raspberrypi.com>\n>>\n>> The Sony IMX296 exists in two versions, colour (Bayer) and monochrome.\n>> The tuning file corresponds to the colour version.\n>>\n>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>\n>\n> We might want to do a second pass of tuning at some point, but this is a good\n> starting point.\n>\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> Reviewed-by: Naushir Patuck <naush@raspberrypi.com>\n>\n>>\n>> ---\n>>  src/ipa/raspberrypi/data/imx296.json | 305 +++++++++++++++++++++++++++\n>>  src/ipa/raspberrypi/data/meson.build |   1 +\n>>  2 files changed, 306 insertions(+)\n>>  create mode 100644 src/ipa/raspberrypi/data/imx296.json\n>>\n>> diff --git a/src/ipa/raspberrypi/data/imx296.json b/src/ipa/raspberrypi/data/imx296.json\n>> new file mode 100644\n>> index 000000000000..2444bd2eb940\n>> --- /dev/null\n>> +++ b/src/ipa/raspberrypi/data/imx296.json\n>> @@ -0,0 +1,305 @@\n>> +{\n>> +    \"rpi.black_level\":\n>> +    {\n>> +        \"black_level\": 4096\n>> +    },\n>> +    \"rpi.dpc\":\n>> +    {\n>> +    },\n>> +    \"rpi.lux\":\n>> +    {\n>> +        \"reference_shutter_speed\": 19184,\n>> +        \"reference_gain\": 1.0,\n>> +        \"reference_aperture\": 1.0,\n>> +        \"reference_lux\": 432,\n>> +        \"reference_Y\": 13773\n>> +    },\n>> +    \"rpi.noise\":\n>> +    {\n>> +        \"reference_constant\": 0,\n>> +        \"reference_slope\": 2.957\n>> +    },\n>> +    \"rpi.geq\":\n>> +    {\n>> +        \"offset\": 185,\n>> +        \"slope\": 0.0105\n>> +    },\n>> +    \"rpi.sdn\":\n>> +    {\n>> +    },\n>> +    \"rpi.awb\":\n>> +    {\n>> +        \"priors\":\n>> +        [\n>> +            {\n>> +                \"lux\": 0, \"prior\":\n>> +                [\n>> +                    2000, 1.0, 3000, 0.0, 13000, 0.0\n>> +                ]\n>> +            },\n>> +            {\n>> +                \"lux\": 800, \"prior\":\n>> +                [\n>> +                    2000, 0.0, 6000, 2.0, 13000, 2.0\n>> +                ]\n>> +            },\n>> +            {\n>> +                \"lux\": 1500, \"prior\":\n>> +                [\n>> +                    2000, 0.0, 4000, 1.0, 6000, 6.0, 6500, 7.0, 7000, 1.0, 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>> +            2960.0, 0.5114, 0.3294, 3720.0, 0.4222, 0.4164, 3770.0, 0.4194, 0.4194, 6040.0, 0.2871, 0.5702, 8450.0,\n>> +            0.2285, 0.6454\n\nOne thing I've learnt to be a bit careful of is having AWB modes that\ngive ranges too far outside the range of the CT curve. The CT curve\nsimply gets extrapolated and you can sometimes get some slightly weird\nresults. So I'd probably clip all those modes that list 2500K to\nsomething nearer 2800K or 2900K. But this is a relatively minor thing,\nand actually will afflict some of our other tuning files too. It would\nobviously be a good idea to make the tuning tool handle this, only I'd\nnever really appreciated the issues back at that time.\n\n>> +        ],\n>> +        \"sensitivity_r\": 1.0,\n>> +        \"sensitivity_b\": 1.0,\n>> +        \"transverse_pos\": 0.01,\n>> +        \"transverse_neg\": 0.01157\n>> +    },\n>> +    \"rpi.agc\":\n>> +    {\n>> +        \"metering_modes\":\n>> +        {\n>> +            \"centre-weighted\":\n>> +            {\n>> +                \"weights\":\n>> +                [\n>> +                    3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0\n>> +                ]\n>> +            },\n>> +            \"spot\":\n>> +            {\n>> +                \"weights\":\n>> +                [\n>> +                    2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n>> +                ]\n>> +            },\n>> +            \"matrix\":\n>> +            {\n>> +                \"weights\":\n>> +                [\n>> +                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1\n>> +                ]\n>> +            }\n>> +        },\n>> +        \"exposure_modes\":\n>> +        {\n>> +            \"normal\":\n>> +            {\n>> +                \"shutter\":\n>> +                [\n>> +                    100, 10000, 30000, 60000, 120000\n>> +                ],\n>> +                \"gain\":\n>> +                [\n>> +                    1.0, 2.0, 4.0, 6.0, 6.0\n>> +                ]\n>> +            },\n>> +            \"short\":\n>> +            {\n>> +                \"shutter\":\n>> +                [\n>> +                    100, 5000, 10000, 20000, 120000\n>> +                ],\n>> +                \"gain\":\n>> +                [\n>> +                    1.0, 2.0, 4.0, 6.0, 6.0\n>> +                ]\n>> +            }\n>> +        },\n>> +        \"constraint_modes\":\n>> +        {\n>> +            \"normal\":\n>> +            [\n>> +                {\n>> +                    \"bound\": \"LOWER\", \"q_lo\": 0.98, \"q_hi\": 1.0, \"y_target\":\n>> +                    [\n>> +                        0, 0.5, 1000, 0.5\n>> +                    ]\n>> +                }\n>> +            ],\n>> +            \"highlight\":\n>> +            [\n>> +                {\n>> +                    \"bound\": \"LOWER\", \"q_lo\": 0.98, \"q_hi\": 1.0, \"y_target\":\n>> +                    [\n>> +                        0, 0.5, 1000, 0.5\n>> +                    ]\n>> +                },\n>> +                {\n>> +                    \"bound\": \"UPPER\", \"q_lo\": 0.98, \"q_hi\": 1.0, \"y_target\":\n>> +                    [\n>> +                        0, 0.8, 1000, 0.8\n>> +                    ]\n>> +                }\n>> +            ]\n>> +        },\n>> +        \"y_target\":\n>> +        [\n>> +            0, 0.16, 1000, 0.165, 10000, 0.17\n>> +        ]\n>> +    },\n>> +    \"rpi.alsc\":\n>> +    {\n>> +        \"omega\": 1.3,\n>> +        \"n_iter\": 100,\n>> +        \"luminance_strength\": 0.5,\n>> +        \"calibrations_Cr\":\n>> +        [\n>> +            {\n>> +                \"ct\": 4000, \"table\":\n>> +                [\n>> +                    2.554, 2.554, 2.541, 2.534, 2.495, 2.506, 2.516, 2.517, 2.518, 2.515, 2.513, 2.495, 2.481, 2.533, 2.533, 2.521,\n>> +                    2.522, 2.534, 2.539, 2.531, 2.531, 2.506, 2.506, 2.513, 2.513, 2.509, 2.498, 2.496, 2.508, 2.517, 2.521, 2.521,\n>> +                    2.509, 2.517, 2.534, 2.529, 2.531, 2.521, 2.517, 2.517, 2.515, 2.514, 2.506, 2.499, 2.508, 2.508, 2.521, 2.537,\n>> +                    2.507, 2.508, 2.517, 2.516, 2.495, 2.487, 2.519, 2.534, 2.535, 2.531, 2.499, 2.494, 2.501, 2.511, 2.526, 2.526,\n>> +                    2.509, 2.517, 2.507, 2.501, 2.494, 2.519, 2.539, 2.539, 2.537, 2.537, 2.533, 2.499, 2.503, 2.511, 2.529, 2.525,\n>> +                    2.521, 2.522, 2.476, 2.501, 2.501, 2.539, 2.546, 2.538, 2.531, 2.538, 2.541, 2.531, 2.529, 2.526, 2.529, 2.525,\n>> +                    2.516, 2.519, 2.469, 2.499, 2.499, 2.543, 2.543, 2.531, 2.528, 2.534, 2.541, 2.535, 2.531, 2.526, 2.531, 2.528,\n>> +                    2.509, 2.515, 2.465, 2.487, 2.487, 2.539, 2.543, 2.539, 2.533, 2.549, 2.542, 2.531, 2.529, 2.524, 2.532, 2.533,\n>> +                    2.499, 2.499, 2.475, 2.482, 2.471, 2.509, 2.539, 2.544, 2.543, 2.545, 2.533, 2.498, 2.521, 2.521, 2.537, 2.536,\n>> +                    2.499, 2.488, 2.488, 2.488, 2.471, 2.462, 2.509, 2.539, 2.539, 2.532, 2.498, 2.498, 2.518, 2.518, 2.539, 2.539,\n>> +                    2.483, 2.484, 2.488, 2.488, 2.502, 2.496, 2.508, 2.514, 2.518, 2.517, 2.521, 2.518, 2.518, 2.518, 2.525, 2.539,\n>> +                    2.483, 2.487, 2.478, 2.478, 2.507, 2.509, 2.514, 2.513, 2.514, 2.517, 2.536, 2.559, 2.501, 2.501, 2.503, 2.525\n>> +                ]\n>> +            }\n>> +        ],\n>> +        \"calibrations_Cb\":\n>> +        [\n>> +            {\n>> +                \"ct\": 4000, \"table\":\n>> +                [\n>> +                    2.619, 2.603, 2.599, 2.597, 2.595, 2.594, 2.589, 2.587, 2.586, 2.589, 2.592, 2.597, 2.601, 2.608, 2.621, 2.621,\n>> +                    2.619, 2.615, 2.603, 2.601, 2.596, 2.595, 2.591, 2.589, 2.589, 2.592, 2.599, 2.593, 2.601, 2.613, 2.622, 2.631,\n>> +                    2.617, 2.617, 2.612, 2.611, 2.604, 2.598, 2.593, 2.591, 2.592, 2.591, 2.593, 2.595, 2.599, 2.614, 2.623, 2.631,\n>> +                    2.624, 2.619, 2.615, 2.612, 2.605, 2.602, 2.597, 2.596, 2.592, 2.592, 2.595, 2.599, 2.602, 2.606, 2.619, 2.624,\n>> +                    2.629, 2.627, 2.627, 2.617, 2.609, 2.598, 2.612, 2.623, 2.615, 2.604, 2.589, 2.595, 2.599, 2.608, 2.611, 2.614,\n>> +                    2.629, 2.632, 2.637, 2.627, 2.612, 2.612, 2.629, 2.631, 2.628, 2.621, 2.604, 2.597, 2.598, 2.604, 2.609, 2.609,\n>> +                    2.635, 2.636, 2.642, 2.628, 2.623, 2.623, 2.636, 2.636, 2.634, 2.628, 2.616, 2.599, 2.597, 2.601, 2.603, 2.601,\n>> +                    2.641, 2.639, 2.646, 2.632, 2.627, 2.625, 2.632, 2.635, 2.634, 2.627, 2.614, 2.596, 2.595, 2.599, 2.599, 2.598,\n>> +                    2.643, 2.644, 2.651, 2.649, 2.629, 2.617, 2.624, 2.629, 2.625, 2.614, 2.586, 2.599, 2.595, 2.597, 2.592, 2.595,\n>> +                    2.645, 2.646, 2.649, 2.649, 2.638, 2.624, 2.616, 2.617, 2.609, 2.604, 2.603, 2.603, 2.595, 2.589, 2.587, 2.592,\n>> +                    2.641, 2.643, 2.649, 2.647, 2.638, 2.618, 2.615, 2.608, 2.602, 2.595, 2.596, 2.595, 2.593, 2.584, 2.581, 2.583,\n>> +                    2.638, 2.637, 2.647, 2.634, 2.634, 2.618, 2.621, 2.621, 2.611, 2.602, 2.596, 2.583, 2.581, 2.581, 2.576, 2.574\n>> +                ]\n>> +            }\n>> +        ],\n\nI think having colour tables for only one CT is \"a bit weak\", but\nstill considerably better than nothing. I now have my fancy\nsuper-expensive calibration kit that will let us measure images at\nabout 3000K and 6000K, so we should probably use that.\n\n>> +        \"luminance_lut\":\n>> +        [\n>> +            1.308, 1.293, 1.228, 1.175, 1.139, 1.108, 1.092, 1.082, 1.082, 1.086, 1.097, 1.114, 1.149, 1.199, 1.279, 1.303,\n>> +            1.293, 1.249, 1.199, 1.162, 1.136, 1.109, 1.087, 1.077, 1.072, 1.081, 1.095, 1.103, 1.133, 1.172, 1.225, 1.282,\n>> +            1.251, 1.212, 1.186, 1.159, 1.129, 1.114, 1.102, 1.088, 1.088, 1.088, 1.095, 1.117, 1.123, 1.158, 1.198, 1.249,\n>> +            1.223, 1.192, 1.177, 1.163, 1.147, 1.139, 1.132, 1.112, 1.111, 1.107, 1.113, 1.118, 1.139, 1.155, 1.186, 1.232,\n>> +            1.207, 1.186, 1.171, 1.162, 1.168, 1.163, 1.153, 1.138, 1.129, 1.128, 1.132, 1.136, 1.149, 1.167, 1.189, 1.216,\n>> +            1.198, 1.186, 1.176, 1.176, 1.177, 1.185, 1.171, 1.157, 1.146, 1.144, 1.146, 1.149, 1.161, 1.181, 1.201, 1.221,\n>> +            1.203, 1.181, 1.176, 1.178, 1.191, 1.189, 1.188, 1.174, 1.159, 1.153, 1.158, 1.161, 1.169, 1.185, 1.211, 1.227,\n>> +            1.211, 1.179, 1.177, 1.187, 1.194, 1.196, 1.194, 1.187, 1.176, 1.169, 1.171, 1.171, 1.175, 1.189, 1.214, 1.226,\n>> +            1.219, 1.182, 1.184, 1.191, 1.195, 1.199, 1.197, 1.194, 1.188, 1.185, 1.179, 1.179, 1.182, 1.194, 1.212, 1.227,\n>> +            1.237, 1.192, 1.194, 1.194, 1.198, 1.199, 1.198, 1.197, 1.196, 1.193, 1.189, 1.189, 1.192, 1.203, 1.214, 1.231,\n>> +            1.282, 1.199, 1.199, 1.197, 1.199, 1.199, 1.192, 1.193, 1.193, 1.194, 1.196, 1.197, 1.206, 1.216, 1.228, 1.244,\n>> +            1.309, 1.236, 1.204, 1.203, 1.202, 1.194, 1.194, 1.188, 1.192, 1.192, 1.199, 1.201, 1.212, 1.221, 1.235, 1.247\n\nThat's really a surprisingly small amount of luminance correction!\n\n>> +        ],\n>> +        \"sigma\": 0.005,\n>> +        \"sigma_Cb\": 0.005\n\nMeasuring two CTs will probably mean it can give us better \"sigma\" values.\n\n>> +    },\n>> +    \"rpi.contrast\":\n>> +    {\n>> +        \"ce_enable\": 1,\n>> +        \"gamma_curve\":\n>> +        [\n>> +            0, 0, 1024, 5040, 2048, 9338, 3072, 12356, 4096, 15312, 5120, 18051, 6144, 20790, 7168, 23193,\n>> +            8192, 25744, 9216, 27942, 10240, 30035, 11264, 32005, 12288, 33975, 13312, 35815, 14336, 37600, 15360, 39168,\n>> +            16384, 40642, 18432, 43379, 20480, 45749, 22528, 47753, 24576, 49621, 26624, 51253, 28672, 52698, 30720, 53796,\n>> +            32768, 54876, 36864, 57012, 40960, 58656, 45056, 59954, 49152, 61183, 53248, 62355, 57344, 63419, 61440, 64476,\n>> +            65535, 65535\n>> +        ]\n>> +    },\n>> +    \"rpi.ccm\":\n>> +    {\n>> +        \"ccms\":\n>> +        [\n>> +            {\n>> +                \"ct\": 2960, \"ccm\":\n>> +                [\n>> +                    1.61465, -0.49757, -0.11708, -0.30813, 1.53862, -0.23049, 0.04267, -0.76988, 1.72721\n>> +                ]\n>> +            },\n>> +            {\n>> +                \"ct\": 3720, \"ccm\":\n>> +                [\n>> +                    1.63316, -0.55061, -0.08255, -0.27238, 1.54441, -0.27203, 0.01948, -0.66461, 1.64513\n>> +                ]\n>> +            },\n>> +            {\n>> +                \"ct\": 3770, \"ccm\":\n>> +                [\n>> +                    1.62378, -0.54465, -0.07913, -0.26849, 1.54674, -0.27825, 0.01751, -0.64966, 1.63214\n>> +                ]\n>> +            },\n>> +            {\n>> +                \"ct\": 6000, \"ccm\":\n>> +                [\n>> +                    1.56877, -0.55713, -0.01164, -0.13524, 1.48494, -0.34969, 0.01184, -0.59069, 1.57885\n>> +                ]\n>> +            },\n>> +            {\n>> +                \"ct\": 6040, \"ccm\":\n>> +                [\n>> +                    1.58628, -0.57451, -0.01177, -0.13959, 1.48858, -0.34898, 0.01138, -0.58747, 1.57609\n>> +                ]\n>> +            },\n>> +            {\n>> +                \"ct\": 8450, \"ccm\":\n>> +                [\n>> +                    1.51714, -0.33619, -0.18094, -0.16148, 2.03049, -0.86901, 0.00999, -0.92095, 1.91096\n>> +                ]\n>> +            }\n>> +        ]\n>> +    },\n>> +    \"rpi.sharpen\":\n>> +    {\n\nDefault sharpening tends to come out a bit strong the fewer megapixels\nthere are (another thing to look into one day...), so reducing the\nstrength here is probably advisable.\n\nSo in summary, yes, I think another pass at this would be beneficial\nbut it will work \"well enough\" initially, so:\n\nReviewed-by: David Plowman <david.plowman@raspberrypi.com>\n\nThanks!\nDavid\n\n>> +    }\n>> +}\n>> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n>> index e84cd0990c31..211811cfa915 100644\n>> --- a/src/ipa/raspberrypi/data/meson.build\n>> +++ b/src/ipa/raspberrypi/data/meson.build\n>> @@ -4,6 +4,7 @@ conf_files = files([\n>>      'imx219.json',\n>>      'imx219_noir.json',\n>>      'imx290.json',\n>> +    'imx296.json',\n>>      'imx378.json',\n>>      'imx477.json',\n>>      'imx477_noir.json',\n>> --\n>> Regards,\n>>\n>> Laurent Pinchart\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 A955EBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 20 Dec 2021 08:58:59 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EE5A760117;\n\tMon, 20 Dec 2021 09:58:58 +0100 (CET)","from mail-wr1-x435.google.com (mail-wr1-x435.google.com\n\t[IPv6:2a00:1450:4864:20::435])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7FBB060115\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 20 Dec 2021 09:58:56 +0100 (CET)","by mail-wr1-x435.google.com with SMTP id r17so18231582wrc.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 20 Dec 2021 00:58:56 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"mZRLaWpR\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=jTaMDmdc8AA1nj80kcNhb/sLvfpZS6kr2RpH9lqcZB8=;\n\tb=mZRLaWpRtXWpIvJnQo8EU9fE/LvgdseTSV/vmzjzpEHnts+ACq0H4AE1MipS4/7tVp\n\tQKaPcmOreTppvR3PFx9Tc3T+1QFlv3rA7pk8LmDgLxZgJKjGcGdTsWn1itvoS68dMt5V\n\tHZSGY5faTAiSz3fqT3nya9F7j9an4q42oTXdJr5AUAVXOp+53mywKAWfBb4DSKhaCZmU\n\t8hhZbpk49mY7XmepgOygXGv0YNs/VXoaABMf45/UFeHPtv+kwcQvzjggn6/IkoEI/FQf\n\t7Ib9hoqdRickLMwceXhElf2wXtGwq0aH7EiBUTVaMzuiIoq7x5EfqK7XXv0mLgVrGm9V\n\tShJw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=jTaMDmdc8AA1nj80kcNhb/sLvfpZS6kr2RpH9lqcZB8=;\n\tb=x4Pk+C2IXi+AJmrg4spD/dHSQT/yTyo/GnwwBl3c1y9Cj9eFbTsG9UTvx1VwgvHWe6\n\tqy2Lbqci5JfQHnohVW8dE9W52f6FkuflkfP+zAA9HW+7QbR0t7Vhi9CMsafLv5dbc6uG\n\tHpxDX3k5bVs3tFYJ7MmPKFnAcCMkyV3QVN7QaDsm7xpVGBLXS7TO8EjhqWJDeOJof8Ti\n\tWfVr4biXLWBk7rMEgWtFAL93AidaWtu5olBRhCgUuxBrhn6BK/I40XTt11VlUPpAZqfH\n\tMPpV/40FcZsv24x7B1MsCwOS71dU4zyjYJr28cWcglLg23iRN+/SAoOfXE5+fYFJHRYA\n\tNNYg==","X-Gm-Message-State":"AOAM532OPb/L5Fk9DeMqwebQHVmCT/5sDaTjXO6/YbcvCJ7VF4zKWZxM\n\trHCTfAnkGmREYzdTWIgpxC4kZ4ewdUvko/RHewpACA==","X-Google-Smtp-Source":"ABdhPJzV4UhdA7XxWySsDKEgm5aasXR5XbCYl9qY6Y8jIOKeP9F//eKNymEUwqCG8SGMIU6FQluZcEYwl14LmlQ0H+8=","X-Received":"by 2002:a5d:47c3:: with SMTP id o3mr12063705wrc.24.1639990736031;\n\tMon, 20 Dec 2021 00:58:56 -0800 (PST)","MIME-Version":"1.0","References":"<20211219232714.11427-1-laurent.pinchart@ideasonboard.com>\n\t<20211219232714.11427-5-laurent.pinchart@ideasonboard.com>\n\t<CAEmqJPr7fzgVDmMh7bgZn=z0j9Rfux3H1FNU-LbHGVdJ7frBrg@mail.gmail.com>","In-Reply-To":"<CAEmqJPr7fzgVDmMh7bgZn=z0j9Rfux3H1FNU-LbHGVdJ7frBrg@mail.gmail.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Mon, 20 Dec 2021 08:58:45 +0000","Message-ID":"<CAHW6GYL0MVmyB+i_qf=rQ2YZvxfeOBGo_cdtWrb0VuM=JGBzRw@mail.gmail.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":21864,"web_url":"https://patchwork.libcamera.org/comment/21864/","msgid":"<YcJlqBS9TfTPN1MK@pendragon.ideasonboard.com>","date":"2021-12-21T23:39:20","subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi David,\n\nOn Mon, Dec 20, 2021 at 08:58:45AM +0000, David Plowman wrote:\n> On Mon, 20 Dec 2021 at 07:43, Naushir Patuck wrote:\n> > On Sun, 19 Dec 2021 at 23:27, Laurent Pinchart wrote:\n> >>\n> >> From: Naushir Patuck <naush@raspberrypi.com>\n> >>\n> >> The Sony IMX296 exists in two versions, colour (Bayer) and monochrome.\n> >> The tuning file corresponds to the colour version.\n> >>\n> >> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> >\n> > We might want to do a second pass of tuning at some point, but this is a good\n> > starting point.\n> >\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > Reviewed-by: Naushir Patuck <naush@raspberrypi.com>\n> >\n> >> ---\n> >>  src/ipa/raspberrypi/data/imx296.json | 305 +++++++++++++++++++++++++++\n> >>  src/ipa/raspberrypi/data/meson.build |   1 +\n> >>  2 files changed, 306 insertions(+)\n> >>  create mode 100644 src/ipa/raspberrypi/data/imx296.json\n> >>\n> >> diff --git a/src/ipa/raspberrypi/data/imx296.json b/src/ipa/raspberrypi/data/imx296.json\n> >> new file mode 100644\n> >> index 000000000000..2444bd2eb940\n> >> --- /dev/null\n> >> +++ b/src/ipa/raspberrypi/data/imx296.json\n> >> @@ -0,0 +1,305 @@\n> >> +{\n> >> +    \"rpi.black_level\":\n> >> +    {\n> >> +        \"black_level\": 4096\n> >> +    },\n> >> +    \"rpi.dpc\":\n> >> +    {\n> >> +    },\n> >> +    \"rpi.lux\":\n> >> +    {\n> >> +        \"reference_shutter_speed\": 19184,\n> >> +        \"reference_gain\": 1.0,\n> >> +        \"reference_aperture\": 1.0,\n> >> +        \"reference_lux\": 432,\n> >> +        \"reference_Y\": 13773\n> >> +    },\n> >> +    \"rpi.noise\":\n> >> +    {\n> >> +        \"reference_constant\": 0,\n> >> +        \"reference_slope\": 2.957\n> >> +    },\n> >> +    \"rpi.geq\":\n> >> +    {\n> >> +        \"offset\": 185,\n> >> +        \"slope\": 0.0105\n> >> +    },\n> >> +    \"rpi.sdn\":\n> >> +    {\n> >> +    },\n> >> +    \"rpi.awb\":\n> >> +    {\n> >> +        \"priors\":\n> >> +        [\n> >> +            {\n> >> +                \"lux\": 0, \"prior\":\n> >> +                [\n> >> +                    2000, 1.0, 3000, 0.0, 13000, 0.0\n> >> +                ]\n> >> +            },\n> >> +            {\n> >> +                \"lux\": 800, \"prior\":\n> >> +                [\n> >> +                    2000, 0.0, 6000, 2.0, 13000, 2.0\n> >> +                ]\n> >> +            },\n> >> +            {\n> >> +                \"lux\": 1500, \"prior\":\n> >> +                [\n> >> +                    2000, 0.0, 4000, 1.0, 6000, 6.0, 6500, 7.0, 7000, 1.0, 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> >> +            2960.0, 0.5114, 0.3294, 3720.0, 0.4222, 0.4164, 3770.0, 0.4194, 0.4194, 6040.0, 0.2871, 0.5702, 8450.0,\n> >> +            0.2285, 0.6454\n> \n> One thing I've learnt to be a bit careful of is having AWB modes that\n> give ranges too far outside the range of the CT curve. The CT curve\n> simply gets extrapolated and you can sometimes get some slightly weird\n> results. So I'd probably clip all those modes that list 2500K to\n> something nearer 2800K or 2900K. But this is a relatively minor thing,\n> and actually will afflict some of our other tuning files too. It would\n> obviously be a good idea to make the tuning tool handle this, only I'd\n> never really appreciated the issues back at that time.\n>\n> >> +        ],\n> >> +        \"sensitivity_r\": 1.0,\n> >> +        \"sensitivity_b\": 1.0,\n> >> +        \"transverse_pos\": 0.01,\n> >> +        \"transverse_neg\": 0.01157\n> >> +    },\n> >> +    \"rpi.agc\":\n> >> +    {\n> >> +        \"metering_modes\":\n> >> +        {\n> >> +            \"centre-weighted\":\n> >> +            {\n> >> +                \"weights\":\n> >> +                [\n> >> +                    3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0\n> >> +                ]\n> >> +            },\n> >> +            \"spot\":\n> >> +            {\n> >> +                \"weights\":\n> >> +                [\n> >> +                    2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n> >> +                ]\n> >> +            },\n> >> +            \"matrix\":\n> >> +            {\n> >> +                \"weights\":\n> >> +                [\n> >> +                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1\n> >> +                ]\n> >> +            }\n> >> +        },\n> >> +        \"exposure_modes\":\n> >> +        {\n> >> +            \"normal\":\n> >> +            {\n> >> +                \"shutter\":\n> >> +                [\n> >> +                    100, 10000, 30000, 60000, 120000\n> >> +                ],\n> >> +                \"gain\":\n> >> +                [\n> >> +                    1.0, 2.0, 4.0, 6.0, 6.0\n> >> +                ]\n> >> +            },\n> >> +            \"short\":\n> >> +            {\n> >> +                \"shutter\":\n> >> +                [\n> >> +                    100, 5000, 10000, 20000, 120000\n> >> +                ],\n> >> +                \"gain\":\n> >> +                [\n> >> +                    1.0, 2.0, 4.0, 6.0, 6.0\n> >> +                ]\n> >> +            }\n> >> +        },\n> >> +        \"constraint_modes\":\n> >> +        {\n> >> +            \"normal\":\n> >> +            [\n> >> +                {\n> >> +                    \"bound\": \"LOWER\", \"q_lo\": 0.98, \"q_hi\": 1.0, \"y_target\":\n> >> +                    [\n> >> +                        0, 0.5, 1000, 0.5\n> >> +                    ]\n> >> +                }\n> >> +            ],\n> >> +            \"highlight\":\n> >> +            [\n> >> +                {\n> >> +                    \"bound\": \"LOWER\", \"q_lo\": 0.98, \"q_hi\": 1.0, \"y_target\":\n> >> +                    [\n> >> +                        0, 0.5, 1000, 0.5\n> >> +                    ]\n> >> +                },\n> >> +                {\n> >> +                    \"bound\": \"UPPER\", \"q_lo\": 0.98, \"q_hi\": 1.0, \"y_target\":\n> >> +                    [\n> >> +                        0, 0.8, 1000, 0.8\n> >> +                    ]\n> >> +                }\n> >> +            ]\n> >> +        },\n> >> +        \"y_target\":\n> >> +        [\n> >> +            0, 0.16, 1000, 0.165, 10000, 0.17\n> >> +        ]\n> >> +    },\n> >> +    \"rpi.alsc\":\n> >> +    {\n> >> +        \"omega\": 1.3,\n> >> +        \"n_iter\": 100,\n> >> +        \"luminance_strength\": 0.5,\n> >> +        \"calibrations_Cr\":\n> >> +        [\n> >> +            {\n> >> +                \"ct\": 4000, \"table\":\n> >> +                [\n> >> +                    2.554, 2.554, 2.541, 2.534, 2.495, 2.506, 2.516, 2.517, 2.518, 2.515, 2.513, 2.495, 2.481, 2.533, 2.533, 2.521,\n> >> +                    2.522, 2.534, 2.539, 2.531, 2.531, 2.506, 2.506, 2.513, 2.513, 2.509, 2.498, 2.496, 2.508, 2.517, 2.521, 2.521,\n> >> +                    2.509, 2.517, 2.534, 2.529, 2.531, 2.521, 2.517, 2.517, 2.515, 2.514, 2.506, 2.499, 2.508, 2.508, 2.521, 2.537,\n> >> +                    2.507, 2.508, 2.517, 2.516, 2.495, 2.487, 2.519, 2.534, 2.535, 2.531, 2.499, 2.494, 2.501, 2.511, 2.526, 2.526,\n> >> +                    2.509, 2.517, 2.507, 2.501, 2.494, 2.519, 2.539, 2.539, 2.537, 2.537, 2.533, 2.499, 2.503, 2.511, 2.529, 2.525,\n> >> +                    2.521, 2.522, 2.476, 2.501, 2.501, 2.539, 2.546, 2.538, 2.531, 2.538, 2.541, 2.531, 2.529, 2.526, 2.529, 2.525,\n> >> +                    2.516, 2.519, 2.469, 2.499, 2.499, 2.543, 2.543, 2.531, 2.528, 2.534, 2.541, 2.535, 2.531, 2.526, 2.531, 2.528,\n> >> +                    2.509, 2.515, 2.465, 2.487, 2.487, 2.539, 2.543, 2.539, 2.533, 2.549, 2.542, 2.531, 2.529, 2.524, 2.532, 2.533,\n> >> +                    2.499, 2.499, 2.475, 2.482, 2.471, 2.509, 2.539, 2.544, 2.543, 2.545, 2.533, 2.498, 2.521, 2.521, 2.537, 2.536,\n> >> +                    2.499, 2.488, 2.488, 2.488, 2.471, 2.462, 2.509, 2.539, 2.539, 2.532, 2.498, 2.498, 2.518, 2.518, 2.539, 2.539,\n> >> +                    2.483, 2.484, 2.488, 2.488, 2.502, 2.496, 2.508, 2.514, 2.518, 2.517, 2.521, 2.518, 2.518, 2.518, 2.525, 2.539,\n> >> +                    2.483, 2.487, 2.478, 2.478, 2.507, 2.509, 2.514, 2.513, 2.514, 2.517, 2.536, 2.559, 2.501, 2.501, 2.503, 2.525\n> >> +                ]\n> >> +            }\n> >> +        ],\n> >> +        \"calibrations_Cb\":\n> >> +        [\n> >> +            {\n> >> +                \"ct\": 4000, \"table\":\n> >> +                [\n> >> +                    2.619, 2.603, 2.599, 2.597, 2.595, 2.594, 2.589, 2.587, 2.586, 2.589, 2.592, 2.597, 2.601, 2.608, 2.621, 2.621,\n> >> +                    2.619, 2.615, 2.603, 2.601, 2.596, 2.595, 2.591, 2.589, 2.589, 2.592, 2.599, 2.593, 2.601, 2.613, 2.622, 2.631,\n> >> +                    2.617, 2.617, 2.612, 2.611, 2.604, 2.598, 2.593, 2.591, 2.592, 2.591, 2.593, 2.595, 2.599, 2.614, 2.623, 2.631,\n> >> +                    2.624, 2.619, 2.615, 2.612, 2.605, 2.602, 2.597, 2.596, 2.592, 2.592, 2.595, 2.599, 2.602, 2.606, 2.619, 2.624,\n> >> +                    2.629, 2.627, 2.627, 2.617, 2.609, 2.598, 2.612, 2.623, 2.615, 2.604, 2.589, 2.595, 2.599, 2.608, 2.611, 2.614,\n> >> +                    2.629, 2.632, 2.637, 2.627, 2.612, 2.612, 2.629, 2.631, 2.628, 2.621, 2.604, 2.597, 2.598, 2.604, 2.609, 2.609,\n> >> +                    2.635, 2.636, 2.642, 2.628, 2.623, 2.623, 2.636, 2.636, 2.634, 2.628, 2.616, 2.599, 2.597, 2.601, 2.603, 2.601,\n> >> +                    2.641, 2.639, 2.646, 2.632, 2.627, 2.625, 2.632, 2.635, 2.634, 2.627, 2.614, 2.596, 2.595, 2.599, 2.599, 2.598,\n> >> +                    2.643, 2.644, 2.651, 2.649, 2.629, 2.617, 2.624, 2.629, 2.625, 2.614, 2.586, 2.599, 2.595, 2.597, 2.592, 2.595,\n> >> +                    2.645, 2.646, 2.649, 2.649, 2.638, 2.624, 2.616, 2.617, 2.609, 2.604, 2.603, 2.603, 2.595, 2.589, 2.587, 2.592,\n> >> +                    2.641, 2.643, 2.649, 2.647, 2.638, 2.618, 2.615, 2.608, 2.602, 2.595, 2.596, 2.595, 2.593, 2.584, 2.581, 2.583,\n> >> +                    2.638, 2.637, 2.647, 2.634, 2.634, 2.618, 2.621, 2.621, 2.611, 2.602, 2.596, 2.583, 2.581, 2.581, 2.576, 2.574\n> >> +                ]\n> >> +            }\n> >> +        ],\n> \n> I think having colour tables for only one CT is \"a bit weak\", but\n> still considerably better than nothing. I now have my fancy\n> super-expensive calibration kit that will let us measure images at\n> about 3000K and 6000K, so we should probably use that.\n> \n> >> +        \"luminance_lut\":\n> >> +        [\n> >> +            1.308, 1.293, 1.228, 1.175, 1.139, 1.108, 1.092, 1.082, 1.082, 1.086, 1.097, 1.114, 1.149, 1.199, 1.279, 1.303,\n> >> +            1.293, 1.249, 1.199, 1.162, 1.136, 1.109, 1.087, 1.077, 1.072, 1.081, 1.095, 1.103, 1.133, 1.172, 1.225, 1.282,\n> >> +            1.251, 1.212, 1.186, 1.159, 1.129, 1.114, 1.102, 1.088, 1.088, 1.088, 1.095, 1.117, 1.123, 1.158, 1.198, 1.249,\n> >> +            1.223, 1.192, 1.177, 1.163, 1.147, 1.139, 1.132, 1.112, 1.111, 1.107, 1.113, 1.118, 1.139, 1.155, 1.186, 1.232,\n> >> +            1.207, 1.186, 1.171, 1.162, 1.168, 1.163, 1.153, 1.138, 1.129, 1.128, 1.132, 1.136, 1.149, 1.167, 1.189, 1.216,\n> >> +            1.198, 1.186, 1.176, 1.176, 1.177, 1.185, 1.171, 1.157, 1.146, 1.144, 1.146, 1.149, 1.161, 1.181, 1.201, 1.221,\n> >> +            1.203, 1.181, 1.176, 1.178, 1.191, 1.189, 1.188, 1.174, 1.159, 1.153, 1.158, 1.161, 1.169, 1.185, 1.211, 1.227,\n> >> +            1.211, 1.179, 1.177, 1.187, 1.194, 1.196, 1.194, 1.187, 1.176, 1.169, 1.171, 1.171, 1.175, 1.189, 1.214, 1.226,\n> >> +            1.219, 1.182, 1.184, 1.191, 1.195, 1.199, 1.197, 1.194, 1.188, 1.185, 1.179, 1.179, 1.182, 1.194, 1.212, 1.227,\n> >> +            1.237, 1.192, 1.194, 1.194, 1.198, 1.199, 1.198, 1.197, 1.196, 1.193, 1.189, 1.189, 1.192, 1.203, 1.214, 1.231,\n> >> +            1.282, 1.199, 1.199, 1.197, 1.199, 1.199, 1.192, 1.193, 1.193, 1.194, 1.196, 1.197, 1.206, 1.216, 1.228, 1.244,\n> >> +            1.309, 1.236, 1.204, 1.203, 1.202, 1.194, 1.194, 1.188, 1.192, 1.192, 1.199, 1.201, 1.212, 1.221, 1.235, 1.247\n> \n> That's really a surprisingly small amount of luminance correction!\n> \n> >> +        ],\n> >> +        \"sigma\": 0.005,\n> >> +        \"sigma_Cb\": 0.005\n> \n> Measuring two CTs will probably mean it can give us better \"sigma\" values.\n> \n> >> +    },\n> >> +    \"rpi.contrast\":\n> >> +    {\n> >> +        \"ce_enable\": 1,\n> >> +        \"gamma_curve\":\n> >> +        [\n> >> +            0, 0, 1024, 5040, 2048, 9338, 3072, 12356, 4096, 15312, 5120, 18051, 6144, 20790, 7168, 23193,\n> >> +            8192, 25744, 9216, 27942, 10240, 30035, 11264, 32005, 12288, 33975, 13312, 35815, 14336, 37600, 15360, 39168,\n> >> +            16384, 40642, 18432, 43379, 20480, 45749, 22528, 47753, 24576, 49621, 26624, 51253, 28672, 52698, 30720, 53796,\n> >> +            32768, 54876, 36864, 57012, 40960, 58656, 45056, 59954, 49152, 61183, 53248, 62355, 57344, 63419, 61440, 64476,\n> >> +            65535, 65535\n> >> +        ]\n> >> +    },\n> >> +    \"rpi.ccm\":\n> >> +    {\n> >> +        \"ccms\":\n> >> +        [\n> >> +            {\n> >> +                \"ct\": 2960, \"ccm\":\n> >> +                [\n> >> +                    1.61465, -0.49757, -0.11708, -0.30813, 1.53862, -0.23049, 0.04267, -0.76988, 1.72721\n> >> +                ]\n> >> +            },\n> >> +            {\n> >> +                \"ct\": 3720, \"ccm\":\n> >> +                [\n> >> +                    1.63316, -0.55061, -0.08255, -0.27238, 1.54441, -0.27203, 0.01948, -0.66461, 1.64513\n> >> +                ]\n> >> +            },\n> >> +            {\n> >> +                \"ct\": 3770, \"ccm\":\n> >> +                [\n> >> +                    1.62378, -0.54465, -0.07913, -0.26849, 1.54674, -0.27825, 0.01751, -0.64966, 1.63214\n> >> +                ]\n> >> +            },\n> >> +            {\n> >> +                \"ct\": 6000, \"ccm\":\n> >> +                [\n> >> +                    1.56877, -0.55713, -0.01164, -0.13524, 1.48494, -0.34969, 0.01184, -0.59069, 1.57885\n> >> +                ]\n> >> +            },\n> >> +            {\n> >> +                \"ct\": 6040, \"ccm\":\n> >> +                [\n> >> +                    1.58628, -0.57451, -0.01177, -0.13959, 1.48858, -0.34898, 0.01138, -0.58747, 1.57609\n> >> +                ]\n> >> +            },\n> >> +            {\n> >> +                \"ct\": 8450, \"ccm\":\n> >> +                [\n> >> +                    1.51714, -0.33619, -0.18094, -0.16148, 2.03049, -0.86901, 0.00999, -0.92095, 1.91096\n> >> +                ]\n> >> +            }\n> >> +        ]\n> >> +    },\n> >> +    \"rpi.sharpen\":\n> >> +    {\n> \n> Default sharpening tends to come out a bit strong the fewer megapixels\n> there are (another thing to look into one day...), so reducing the\n> strength here is probably advisable.\n> \n> So in summary, yes, I think another pass at this would be beneficial\n> but it will work \"well enough\" initially, so:\n> \n> Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n\nThe IMX296 sensors I have here are the monochrome version, so I can't\nreally calibrate the colour-related parameters. This tuning file comes\nfrom a branch that was shared by Naush.\n\nCan I merge it as-is and let you play with your fancy calibration kit to\nupdate the tuning data ? :-)\n\n> >> +    }\n> >> +}\n> >> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> >> index e84cd0990c31..211811cfa915 100644\n> >> --- a/src/ipa/raspberrypi/data/meson.build\n> >> +++ b/src/ipa/raspberrypi/data/meson.build\n> >> @@ -4,6 +4,7 @@ conf_files = files([\n> >>      'imx219.json',\n> >>      'imx219_noir.json',\n> >>      'imx290.json',\n> >> +    'imx296.json',\n> >>      'imx378.json',\n> >>      'imx477.json',\n> >>      'imx477_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 CF8BDBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Dec 2021 23:39:25 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2823060900;\n\tWed, 22 Dec 2021 00:39:25 +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 B81CF60223\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Dec 2021 00:39:23 +0100 (CET)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3FC0B894;\n\tWed, 22 Dec 2021 00:39:23 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"vMnQRRXC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1640129963;\n\tbh=YI/W2XcjjBqcAG4eWNwmZpr3zLXf0LWC8vUk+5hRT34=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=vMnQRRXCDFWxGILEGWbN2BlUmpMIPmVcM0Ui83Dhd1op06sogPn6C50xGZvWKYvUW\n\tj0uXsa7oJrG1B1C9s3oWhpBDCYGHlOup6FXKbjKhCFFuE5fLVrBLxs9+Iq6E/Njxvm\n\t5GPe6n3IZbKBL5NfT6s4937DyeESMMz626LiycGk=","Date":"Wed, 22 Dec 2021 01:39:20 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"David Plowman <david.plowman@raspberrypi.com>","Message-ID":"<YcJlqBS9TfTPN1MK@pendragon.ideasonboard.com>","References":"<20211219232714.11427-1-laurent.pinchart@ideasonboard.com>\n\t<20211219232714.11427-5-laurent.pinchart@ideasonboard.com>\n\t<CAEmqJPr7fzgVDmMh7bgZn=z0j9Rfux3H1FNU-LbHGVdJ7frBrg@mail.gmail.com>\n\t<CAHW6GYL0MVmyB+i_qf=rQ2YZvxfeOBGo_cdtWrb0VuM=JGBzRw@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAHW6GYL0MVmyB+i_qf=rQ2YZvxfeOBGo_cdtWrb0VuM=JGBzRw@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":21865,"web_url":"https://patchwork.libcamera.org/comment/21865/","msgid":"<CAHW6GYL+uQgSLRj+CUN1aUbBspJDSxv5evNuNmUc-gWNwBKtQA@mail.gmail.com>","date":"2021-12-22T08:18:03","subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Laurent\n\nOn Tue, 21 Dec 2021 at 23:39, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hi David,\n>\n> On Mon, Dec 20, 2021 at 08:58:45AM +0000, David Plowman wrote:\n> > On Mon, 20 Dec 2021 at 07:43, Naushir Patuck wrote:\n> > > On Sun, 19 Dec 2021 at 23:27, Laurent Pinchart wrote:\n> > >>\n> > >> From: Naushir Patuck <naush@raspberrypi.com>\n> > >>\n> > >> The Sony IMX296 exists in two versions, colour (Bayer) and monochrome.\n> > >> The tuning file corresponds to the colour version.\n> > >>\n> > >> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > >\n> > > We might want to do a second pass of tuning at some point, but this is a good\n> > > starting point.\n> > >\n> > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > Reviewed-by: Naushir Patuck <naush@raspberrypi.com>\n> > >\n> > >> ---\n> > >>  src/ipa/raspberrypi/data/imx296.json | 305 +++++++++++++++++++++++++++\n> > >>  src/ipa/raspberrypi/data/meson.build |   1 +\n> > >>  2 files changed, 306 insertions(+)\n> > >>  create mode 100644 src/ipa/raspberrypi/data/imx296.json\n> > >>\n> > >> diff --git a/src/ipa/raspberrypi/data/imx296.json b/src/ipa/raspberrypi/data/imx296.json\n> > >> new file mode 100644\n> > >> index 000000000000..2444bd2eb940\n> > >> --- /dev/null\n> > >> +++ b/src/ipa/raspberrypi/data/imx296.json\n> > >> @@ -0,0 +1,305 @@\n> > >> +{\n> > >> +    \"rpi.black_level\":\n> > >> +    {\n> > >> +        \"black_level\": 4096\n> > >> +    },\n> > >> +    \"rpi.dpc\":\n> > >> +    {\n> > >> +    },\n> > >> +    \"rpi.lux\":\n> > >> +    {\n> > >> +        \"reference_shutter_speed\": 19184,\n> > >> +        \"reference_gain\": 1.0,\n> > >> +        \"reference_aperture\": 1.0,\n> > >> +        \"reference_lux\": 432,\n> > >> +        \"reference_Y\": 13773\n> > >> +    },\n> > >> +    \"rpi.noise\":\n> > >> +    {\n> > >> +        \"reference_constant\": 0,\n> > >> +        \"reference_slope\": 2.957\n> > >> +    },\n> > >> +    \"rpi.geq\":\n> > >> +    {\n> > >> +        \"offset\": 185,\n> > >> +        \"slope\": 0.0105\n> > >> +    },\n> > >> +    \"rpi.sdn\":\n> > >> +    {\n> > >> +    },\n> > >> +    \"rpi.awb\":\n> > >> +    {\n> > >> +        \"priors\":\n> > >> +        [\n> > >> +            {\n> > >> +                \"lux\": 0, \"prior\":\n> > >> +                [\n> > >> +                    2000, 1.0, 3000, 0.0, 13000, 0.0\n> > >> +                ]\n> > >> +            },\n> > >> +            {\n> > >> +                \"lux\": 800, \"prior\":\n> > >> +                [\n> > >> +                    2000, 0.0, 6000, 2.0, 13000, 2.0\n> > >> +                ]\n> > >> +            },\n> > >> +            {\n> > >> +                \"lux\": 1500, \"prior\":\n> > >> +                [\n> > >> +                    2000, 0.0, 4000, 1.0, 6000, 6.0, 6500, 7.0, 7000, 1.0, 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> > >> +            2960.0, 0.5114, 0.3294, 3720.0, 0.4222, 0.4164, 3770.0, 0.4194, 0.4194, 6040.0, 0.2871, 0.5702, 8450.0,\n> > >> +            0.2285, 0.6454\n> >\n> > One thing I've learnt to be a bit careful of is having AWB modes that\n> > give ranges too far outside the range of the CT curve. The CT curve\n> > simply gets extrapolated and you can sometimes get some slightly weird\n> > results. So I'd probably clip all those modes that list 2500K to\n> > something nearer 2800K or 2900K. But this is a relatively minor thing,\n> > and actually will afflict some of our other tuning files too. It would\n> > obviously be a good idea to make the tuning tool handle this, only I'd\n> > never really appreciated the issues back at that time.\n> >\n> > >> +        ],\n> > >> +        \"sensitivity_r\": 1.0,\n> > >> +        \"sensitivity_b\": 1.0,\n> > >> +        \"transverse_pos\": 0.01,\n> > >> +        \"transverse_neg\": 0.01157\n> > >> +    },\n> > >> +    \"rpi.agc\":\n> > >> +    {\n> > >> +        \"metering_modes\":\n> > >> +        {\n> > >> +            \"centre-weighted\":\n> > >> +            {\n> > >> +                \"weights\":\n> > >> +                [\n> > >> +                    3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0\n> > >> +                ]\n> > >> +            },\n> > >> +            \"spot\":\n> > >> +            {\n> > >> +                \"weights\":\n> > >> +                [\n> > >> +                    2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n> > >> +                ]\n> > >> +            },\n> > >> +            \"matrix\":\n> > >> +            {\n> > >> +                \"weights\":\n> > >> +                [\n> > >> +                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1\n> > >> +                ]\n> > >> +            }\n> > >> +        },\n> > >> +        \"exposure_modes\":\n> > >> +        {\n> > >> +            \"normal\":\n> > >> +            {\n> > >> +                \"shutter\":\n> > >> +                [\n> > >> +                    100, 10000, 30000, 60000, 120000\n> > >> +                ],\n> > >> +                \"gain\":\n> > >> +                [\n> > >> +                    1.0, 2.0, 4.0, 6.0, 6.0\n> > >> +                ]\n> > >> +            },\n> > >> +            \"short\":\n> > >> +            {\n> > >> +                \"shutter\":\n> > >> +                [\n> > >> +                    100, 5000, 10000, 20000, 120000\n> > >> +                ],\n> > >> +                \"gain\":\n> > >> +                [\n> > >> +                    1.0, 2.0, 4.0, 6.0, 6.0\n> > >> +                ]\n> > >> +            }\n> > >> +        },\n> > >> +        \"constraint_modes\":\n> > >> +        {\n> > >> +            \"normal\":\n> > >> +            [\n> > >> +                {\n> > >> +                    \"bound\": \"LOWER\", \"q_lo\": 0.98, \"q_hi\": 1.0, \"y_target\":\n> > >> +                    [\n> > >> +                        0, 0.5, 1000, 0.5\n> > >> +                    ]\n> > >> +                }\n> > >> +            ],\n> > >> +            \"highlight\":\n> > >> +            [\n> > >> +                {\n> > >> +                    \"bound\": \"LOWER\", \"q_lo\": 0.98, \"q_hi\": 1.0, \"y_target\":\n> > >> +                    [\n> > >> +                        0, 0.5, 1000, 0.5\n> > >> +                    ]\n> > >> +                },\n> > >> +                {\n> > >> +                    \"bound\": \"UPPER\", \"q_lo\": 0.98, \"q_hi\": 1.0, \"y_target\":\n> > >> +                    [\n> > >> +                        0, 0.8, 1000, 0.8\n> > >> +                    ]\n> > >> +                }\n> > >> +            ]\n> > >> +        },\n> > >> +        \"y_target\":\n> > >> +        [\n> > >> +            0, 0.16, 1000, 0.165, 10000, 0.17\n> > >> +        ]\n> > >> +    },\n> > >> +    \"rpi.alsc\":\n> > >> +    {\n> > >> +        \"omega\": 1.3,\n> > >> +        \"n_iter\": 100,\n> > >> +        \"luminance_strength\": 0.5,\n> > >> +        \"calibrations_Cr\":\n> > >> +        [\n> > >> +            {\n> > >> +                \"ct\": 4000, \"table\":\n> > >> +                [\n> > >> +                    2.554, 2.554, 2.541, 2.534, 2.495, 2.506, 2.516, 2.517, 2.518, 2.515, 2.513, 2.495, 2.481, 2.533, 2.533, 2.521,\n> > >> +                    2.522, 2.534, 2.539, 2.531, 2.531, 2.506, 2.506, 2.513, 2.513, 2.509, 2.498, 2.496, 2.508, 2.517, 2.521, 2.521,\n> > >> +                    2.509, 2.517, 2.534, 2.529, 2.531, 2.521, 2.517, 2.517, 2.515, 2.514, 2.506, 2.499, 2.508, 2.508, 2.521, 2.537,\n> > >> +                    2.507, 2.508, 2.517, 2.516, 2.495, 2.487, 2.519, 2.534, 2.535, 2.531, 2.499, 2.494, 2.501, 2.511, 2.526, 2.526,\n> > >> +                    2.509, 2.517, 2.507, 2.501, 2.494, 2.519, 2.539, 2.539, 2.537, 2.537, 2.533, 2.499, 2.503, 2.511, 2.529, 2.525,\n> > >> +                    2.521, 2.522, 2.476, 2.501, 2.501, 2.539, 2.546, 2.538, 2.531, 2.538, 2.541, 2.531, 2.529, 2.526, 2.529, 2.525,\n> > >> +                    2.516, 2.519, 2.469, 2.499, 2.499, 2.543, 2.543, 2.531, 2.528, 2.534, 2.541, 2.535, 2.531, 2.526, 2.531, 2.528,\n> > >> +                    2.509, 2.515, 2.465, 2.487, 2.487, 2.539, 2.543, 2.539, 2.533, 2.549, 2.542, 2.531, 2.529, 2.524, 2.532, 2.533,\n> > >> +                    2.499, 2.499, 2.475, 2.482, 2.471, 2.509, 2.539, 2.544, 2.543, 2.545, 2.533, 2.498, 2.521, 2.521, 2.537, 2.536,\n> > >> +                    2.499, 2.488, 2.488, 2.488, 2.471, 2.462, 2.509, 2.539, 2.539, 2.532, 2.498, 2.498, 2.518, 2.518, 2.539, 2.539,\n> > >> +                    2.483, 2.484, 2.488, 2.488, 2.502, 2.496, 2.508, 2.514, 2.518, 2.517, 2.521, 2.518, 2.518, 2.518, 2.525, 2.539,\n> > >> +                    2.483, 2.487, 2.478, 2.478, 2.507, 2.509, 2.514, 2.513, 2.514, 2.517, 2.536, 2.559, 2.501, 2.501, 2.503, 2.525\n> > >> +                ]\n> > >> +            }\n> > >> +        ],\n> > >> +        \"calibrations_Cb\":\n> > >> +        [\n> > >> +            {\n> > >> +                \"ct\": 4000, \"table\":\n> > >> +                [\n> > >> +                    2.619, 2.603, 2.599, 2.597, 2.595, 2.594, 2.589, 2.587, 2.586, 2.589, 2.592, 2.597, 2.601, 2.608, 2.621, 2.621,\n> > >> +                    2.619, 2.615, 2.603, 2.601, 2.596, 2.595, 2.591, 2.589, 2.589, 2.592, 2.599, 2.593, 2.601, 2.613, 2.622, 2.631,\n> > >> +                    2.617, 2.617, 2.612, 2.611, 2.604, 2.598, 2.593, 2.591, 2.592, 2.591, 2.593, 2.595, 2.599, 2.614, 2.623, 2.631,\n> > >> +                    2.624, 2.619, 2.615, 2.612, 2.605, 2.602, 2.597, 2.596, 2.592, 2.592, 2.595, 2.599, 2.602, 2.606, 2.619, 2.624,\n> > >> +                    2.629, 2.627, 2.627, 2.617, 2.609, 2.598, 2.612, 2.623, 2.615, 2.604, 2.589, 2.595, 2.599, 2.608, 2.611, 2.614,\n> > >> +                    2.629, 2.632, 2.637, 2.627, 2.612, 2.612, 2.629, 2.631, 2.628, 2.621, 2.604, 2.597, 2.598, 2.604, 2.609, 2.609,\n> > >> +                    2.635, 2.636, 2.642, 2.628, 2.623, 2.623, 2.636, 2.636, 2.634, 2.628, 2.616, 2.599, 2.597, 2.601, 2.603, 2.601,\n> > >> +                    2.641, 2.639, 2.646, 2.632, 2.627, 2.625, 2.632, 2.635, 2.634, 2.627, 2.614, 2.596, 2.595, 2.599, 2.599, 2.598,\n> > >> +                    2.643, 2.644, 2.651, 2.649, 2.629, 2.617, 2.624, 2.629, 2.625, 2.614, 2.586, 2.599, 2.595, 2.597, 2.592, 2.595,\n> > >> +                    2.645, 2.646, 2.649, 2.649, 2.638, 2.624, 2.616, 2.617, 2.609, 2.604, 2.603, 2.603, 2.595, 2.589, 2.587, 2.592,\n> > >> +                    2.641, 2.643, 2.649, 2.647, 2.638, 2.618, 2.615, 2.608, 2.602, 2.595, 2.596, 2.595, 2.593, 2.584, 2.581, 2.583,\n> > >> +                    2.638, 2.637, 2.647, 2.634, 2.634, 2.618, 2.621, 2.621, 2.611, 2.602, 2.596, 2.583, 2.581, 2.581, 2.576, 2.574\n> > >> +                ]\n> > >> +            }\n> > >> +        ],\n> >\n> > I think having colour tables for only one CT is \"a bit weak\", but\n> > still considerably better than nothing. I now have my fancy\n> > super-expensive calibration kit that will let us measure images at\n> > about 3000K and 6000K, so we should probably use that.\n> >\n> > >> +        \"luminance_lut\":\n> > >> +        [\n> > >> +            1.308, 1.293, 1.228, 1.175, 1.139, 1.108, 1.092, 1.082, 1.082, 1.086, 1.097, 1.114, 1.149, 1.199, 1.279, 1.303,\n> > >> +            1.293, 1.249, 1.199, 1.162, 1.136, 1.109, 1.087, 1.077, 1.072, 1.081, 1.095, 1.103, 1.133, 1.172, 1.225, 1.282,\n> > >> +            1.251, 1.212, 1.186, 1.159, 1.129, 1.114, 1.102, 1.088, 1.088, 1.088, 1.095, 1.117, 1.123, 1.158, 1.198, 1.249,\n> > >> +            1.223, 1.192, 1.177, 1.163, 1.147, 1.139, 1.132, 1.112, 1.111, 1.107, 1.113, 1.118, 1.139, 1.155, 1.186, 1.232,\n> > >> +            1.207, 1.186, 1.171, 1.162, 1.168, 1.163, 1.153, 1.138, 1.129, 1.128, 1.132, 1.136, 1.149, 1.167, 1.189, 1.216,\n> > >> +            1.198, 1.186, 1.176, 1.176, 1.177, 1.185, 1.171, 1.157, 1.146, 1.144, 1.146, 1.149, 1.161, 1.181, 1.201, 1.221,\n> > >> +            1.203, 1.181, 1.176, 1.178, 1.191, 1.189, 1.188, 1.174, 1.159, 1.153, 1.158, 1.161, 1.169, 1.185, 1.211, 1.227,\n> > >> +            1.211, 1.179, 1.177, 1.187, 1.194, 1.196, 1.194, 1.187, 1.176, 1.169, 1.171, 1.171, 1.175, 1.189, 1.214, 1.226,\n> > >> +            1.219, 1.182, 1.184, 1.191, 1.195, 1.199, 1.197, 1.194, 1.188, 1.185, 1.179, 1.179, 1.182, 1.194, 1.212, 1.227,\n> > >> +            1.237, 1.192, 1.194, 1.194, 1.198, 1.199, 1.198, 1.197, 1.196, 1.193, 1.189, 1.189, 1.192, 1.203, 1.214, 1.231,\n> > >> +            1.282, 1.199, 1.199, 1.197, 1.199, 1.199, 1.192, 1.193, 1.193, 1.194, 1.196, 1.197, 1.206, 1.216, 1.228, 1.244,\n> > >> +            1.309, 1.236, 1.204, 1.203, 1.202, 1.194, 1.194, 1.188, 1.192, 1.192, 1.199, 1.201, 1.212, 1.221, 1.235, 1.247\n> >\n> > That's really a surprisingly small amount of luminance correction!\n> >\n> > >> +        ],\n> > >> +        \"sigma\": 0.005,\n> > >> +        \"sigma_Cb\": 0.005\n> >\n> > Measuring two CTs will probably mean it can give us better \"sigma\" values.\n> >\n> > >> +    },\n> > >> +    \"rpi.contrast\":\n> > >> +    {\n> > >> +        \"ce_enable\": 1,\n> > >> +        \"gamma_curve\":\n> > >> +        [\n> > >> +            0, 0, 1024, 5040, 2048, 9338, 3072, 12356, 4096, 15312, 5120, 18051, 6144, 20790, 7168, 23193,\n> > >> +            8192, 25744, 9216, 27942, 10240, 30035, 11264, 32005, 12288, 33975, 13312, 35815, 14336, 37600, 15360, 39168,\n> > >> +            16384, 40642, 18432, 43379, 20480, 45749, 22528, 47753, 24576, 49621, 26624, 51253, 28672, 52698, 30720, 53796,\n> > >> +            32768, 54876, 36864, 57012, 40960, 58656, 45056, 59954, 49152, 61183, 53248, 62355, 57344, 63419, 61440, 64476,\n> > >> +            65535, 65535\n> > >> +        ]\n> > >> +    },\n> > >> +    \"rpi.ccm\":\n> > >> +    {\n> > >> +        \"ccms\":\n> > >> +        [\n> > >> +            {\n> > >> +                \"ct\": 2960, \"ccm\":\n> > >> +                [\n> > >> +                    1.61465, -0.49757, -0.11708, -0.30813, 1.53862, -0.23049, 0.04267, -0.76988, 1.72721\n> > >> +                ]\n> > >> +            },\n> > >> +            {\n> > >> +                \"ct\": 3720, \"ccm\":\n> > >> +                [\n> > >> +                    1.63316, -0.55061, -0.08255, -0.27238, 1.54441, -0.27203, 0.01948, -0.66461, 1.64513\n> > >> +                ]\n> > >> +            },\n> > >> +            {\n> > >> +                \"ct\": 3770, \"ccm\":\n> > >> +                [\n> > >> +                    1.62378, -0.54465, -0.07913, -0.26849, 1.54674, -0.27825, 0.01751, -0.64966, 1.63214\n> > >> +                ]\n> > >> +            },\n> > >> +            {\n> > >> +                \"ct\": 6000, \"ccm\":\n> > >> +                [\n> > >> +                    1.56877, -0.55713, -0.01164, -0.13524, 1.48494, -0.34969, 0.01184, -0.59069, 1.57885\n> > >> +                ]\n> > >> +            },\n> > >> +            {\n> > >> +                \"ct\": 6040, \"ccm\":\n> > >> +                [\n> > >> +                    1.58628, -0.57451, -0.01177, -0.13959, 1.48858, -0.34898, 0.01138, -0.58747, 1.57609\n> > >> +                ]\n> > >> +            },\n> > >> +            {\n> > >> +                \"ct\": 8450, \"ccm\":\n> > >> +                [\n> > >> +                    1.51714, -0.33619, -0.18094, -0.16148, 2.03049, -0.86901, 0.00999, -0.92095, 1.91096\n> > >> +                ]\n> > >> +            }\n> > >> +        ]\n> > >> +    },\n> > >> +    \"rpi.sharpen\":\n> > >> +    {\n> >\n> > Default sharpening tends to come out a bit strong the fewer megapixels\n> > there are (another thing to look into one day...), so reducing the\n> > strength here is probably advisable.\n> >\n> > So in summary, yes, I think another pass at this would be beneficial\n> > but it will work \"well enough\" initially, so:\n> >\n> > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n>\n> The IMX296 sensors I have here are the monochrome version, so I can't\n> really calibrate the colour-related parameters. This tuning file comes\n> from a branch that was shared by Naush.\n>\n> Can I merge it as-is and let you play with your fancy calibration kit to\n> update the tuning data ? :-)\n\nYes, of course, always happy to do that!\n\nI'm wondering if we should keep this file as a \"colour module\" tuning\nand create another one for the mono version with the colour bits\nremoved, but I can take care of all that later. Does the driver know\nwhich kind of module it has (or is it hard-coded)? If so we could\nperhaps automate the selection of the correct tuning file if it\nadvertises a suitably amended driver name. Alternatively we just rely\non the environment variable workaround.\n\nDavid\n\n>\n> > >> +    }\n> > >> +}\n> > >> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> > >> index e84cd0990c31..211811cfa915 100644\n> > >> --- a/src/ipa/raspberrypi/data/meson.build\n> > >> +++ b/src/ipa/raspberrypi/data/meson.build\n> > >> @@ -4,6 +4,7 @@ conf_files = files([\n> > >>      'imx219.json',\n> > >>      'imx219_noir.json',\n> > >>      'imx290.json',\n> > >> +    'imx296.json',\n> > >>      'imx378.json',\n> > >>      'imx477.json',\n> > >>      'imx477_noir.json',\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 1A14EBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 22 Dec 2021 08:18:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 51D32608E9;\n\tWed, 22 Dec 2021 09:18:17 +0100 (CET)","from mail-wr1-x431.google.com (mail-wr1-x431.google.com\n\t[IPv6:2a00:1450:4864:20::431])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4FD216021F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Dec 2021 09:18:15 +0100 (CET)","by mail-wr1-x431.google.com with SMTP id e5so3232104wrc.5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Dec 2021 00:18:15 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"ZUB4ueKc\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=2g0iFzziEOB9rg9dcbenutUxlf9y6AIwzGG/uWq8DWc=;\n\tb=ZUB4ueKcULpGvlh5xtxPkGEXFtnnjbOGdBiXd8JCCRkBmmVnFoGorpZU00DbcllzA+\n\to2Xk3ytvBzgYQMOQYSCfMGXcnd+1qeOe1SFVk+F5vDaeLEklSaBIwEfgvO163ocRcVRp\n\t6o8fxNbUKH8N8BVNJ3Wn37lsYQosxZzsqSufSrkYJ6FDt1eLDIiOqkYFCpYGNTuLsoCV\n\tpDQOT2908sNloUA0ZXyec/XNsPkK2DtCwMyihVqYk2yUtfTJiblIJH/Oh6VOuhfYruFC\n\tTtjy2kV+WlOf8cfMk0jKsi8crYzuBzmN8quu4RsR6Clrc6NgEXY0wgQCK9NGOoV+VA0u\n\tVq3Q==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=2g0iFzziEOB9rg9dcbenutUxlf9y6AIwzGG/uWq8DWc=;\n\tb=WvQmkWnPU6+pOx14Q1bJo78SAulcR+bJkl+BeN1l4WuS2i3kAsVjJy81WfZ5PGbO/w\n\txTxxCJsPNPcLBd9oBVOiBlBsRMWhLzhTRJ5msDyxuBNlutJavD8i+BmHTJv6QpvC/o1d\n\tazexrXm62DVzr3YXj0CgnDC92YjcUY6g849DdOas0YAJaup8IRNy1ahOLzNfJeSKUbb8\n\t4FuXBJIOBqYABdMR5JUCkyxm52afGLpP1ruvvyCslTKD8wokp0nM2K9FBChFegMSLfQX\n\t2PzaCZklccbwl15C7++fXkq7K/IW/DAj/CEF8DMZIIg8EPWTmTucWUHEoUYtfM0RD4R5\n\t6/yA==","X-Gm-Message-State":"AOAM530Yf7IPbuYVeb5puPy/7vYip/3eRVPoyZ+NfpoTG1jAjuSFkLxD\n\tQmFsunaB3jdA41P3iRwAZZNYIi5CSt/c7Ltfmqq+mA==","X-Google-Smtp-Source":"ABdhPJzDn7tesL/okaef+zoWWJzkQSd5R/mi3LTRvQCgGOPICQVTc9ry+ZoY5xMh/vQmQqYbll9MbELp7X4AGmEuBEA=","X-Received":"by 2002:adf:ea0d:: with SMTP id\n\tq13mr1233829wrm.597.1640161094795; \n\tWed, 22 Dec 2021 00:18:14 -0800 (PST)","MIME-Version":"1.0","References":"<20211219232714.11427-1-laurent.pinchart@ideasonboard.com>\n\t<20211219232714.11427-5-laurent.pinchart@ideasonboard.com>\n\t<CAEmqJPr7fzgVDmMh7bgZn=z0j9Rfux3H1FNU-LbHGVdJ7frBrg@mail.gmail.com>\n\t<CAHW6GYL0MVmyB+i_qf=rQ2YZvxfeOBGo_cdtWrb0VuM=JGBzRw@mail.gmail.com>\n\t<YcJlqBS9TfTPN1MK@pendragon.ideasonboard.com>","In-Reply-To":"<YcJlqBS9TfTPN1MK@pendragon.ideasonboard.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Wed, 22 Dec 2021 08:18:03 +0000","Message-ID":"<CAHW6GYL+uQgSLRj+CUN1aUbBspJDSxv5evNuNmUc-gWNwBKtQA@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":21866,"web_url":"https://patchwork.libcamera.org/comment/21866/","msgid":"<YcLzMhBJXeE6Eho8@pendragon.ideasonboard.com>","date":"2021-12-22T09:43:14","subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi David,\n\nOn Wed, Dec 22, 2021 at 08:18:03AM +0000, David Plowman wrote:\n> On Tue, 21 Dec 2021 at 23:39, Laurent Pinchart wrote:\n> > On Mon, Dec 20, 2021 at 08:58:45AM +0000, David Plowman wrote:\n> > > On Mon, 20 Dec 2021 at 07:43, Naushir Patuck wrote:\n> > > > On Sun, 19 Dec 2021 at 23:27, Laurent Pinchart wrote:\n> > > >>\n> > > >> From: Naushir Patuck <naush@raspberrypi.com>\n> > > >>\n> > > >> The Sony IMX296 exists in two versions, colour (Bayer) and monochrome.\n> > > >> The tuning file corresponds to the colour version.\n> > > >>\n> > > >> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > >\n> > > > We might want to do a second pass of tuning at some point, but this is a good\n> > > > starting point.\n> > > >\n> > > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > > Reviewed-by: Naushir Patuck <naush@raspberrypi.com>\n> > > >\n> > > >> ---\n> > > >>  src/ipa/raspberrypi/data/imx296.json | 305 +++++++++++++++++++++++++++\n> > > >>  src/ipa/raspberrypi/data/meson.build |   1 +\n> > > >>  2 files changed, 306 insertions(+)\n> > > >>  create mode 100644 src/ipa/raspberrypi/data/imx296.json\n> > > >>\n> > > >> diff --git a/src/ipa/raspberrypi/data/imx296.json b/src/ipa/raspberrypi/data/imx296.json\n> > > >> new file mode 100644\n> > > >> index 000000000000..2444bd2eb940\n> > > >> --- /dev/null\n> > > >> +++ b/src/ipa/raspberrypi/data/imx296.json\n> > > >> @@ -0,0 +1,305 @@\n\n[snip]\n\n> > > >> +    \"rpi.sharpen\":\n> > > >> +    {\n> > >\n> > > Default sharpening tends to come out a bit strong the fewer megapixels\n> > > there are (another thing to look into one day...), so reducing the\n> > > strength here is probably advisable.\n> > >\n> > > So in summary, yes, I think another pass at this would be beneficial\n> > > but it will work \"well enough\" initially, so:\n> > >\n> > > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> >\n> > The IMX296 sensors I have here are the monochrome version, so I can't\n> > really calibrate the colour-related parameters. This tuning file comes\n> > from a branch that was shared by Naush.\n> >\n> > Can I merge it as-is and let you play with your fancy calibration kit to\n> > update the tuning data ? :-)\n> \n> Yes, of course, always happy to do that!\n\nThank you.\n\n> I'm wondering if we should keep this file as a \"colour module\" tuning\n> and create another one for the mono version with the colour bits\n> removed, but I can take care of all that later. Does the driver know\n> which kind of module it has (or is it hard-coded)? If so we could\n> perhaps automate the selection of the correct tuning file if it\n> advertises a suitably amended driver name. Alternatively we just rely\n> on the environment variable workaround.\n\nThat's a good idea. The driver has the information, and exposes it\nthrough the media bus codes (Y10 for the monochrome version, SBGGR10 for\nthe colour version). The subdev and entity name is the same for both\nversions.\n\nDo you think we should expose different entity names ? We could use\nimx296ll for the monchrome version and imx296lq for the colour version.\nThat would however require two separate camera sensor helpers, which I\ndon't really like. We may be able to refactor the code to allow camera\nhelpers to match different names. Another option is to keep the entity\nname unchanged, and derive the tuning file name from the media bus code.\n\nWhat do you think would be the best approach ?\n\n> > > >> +    }\n> > > >> +}\n> > > >> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> > > >> index e84cd0990c31..211811cfa915 100644\n> > > >> --- a/src/ipa/raspberrypi/data/meson.build\n> > > >> +++ b/src/ipa/raspberrypi/data/meson.build\n> > > >> @@ -4,6 +4,7 @@ conf_files = files([\n> > > >>      'imx219.json',\n> > > >>      'imx219_noir.json',\n> > > >>      'imx290.json',\n> > > >> +    'imx296.json',\n> > > >>      'imx378.json',\n> > > >>      'imx477.json',\n> > > >>      'imx477_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 B440EBE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 22 Dec 2021 09:43:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CEFAF608FF;\n\tWed, 22 Dec 2021 10:43:19 +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 BF8306021F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Dec 2021 10:43:17 +0100 (CET)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 31F9F894;\n\tWed, 22 Dec 2021 10:43:17 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"eQKm2fkm\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1640166197;\n\tbh=khujhRKyXh6TqNneA90Xiv8N574dCVryhGxEpn8oo14=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=eQKm2fkmuWhJO9d4iivcrjL3aPjTiMvUMBCoPIC+oY9nM8UbdJkw/ae8d6w8MKM6P\n\tT1vtecXraiMY4V6Na289EMfUw+XbOcAyCX9jsfcajTPnnMXqsALNp1ukjCXrDP5oxP\n\tVspzPQOoDN/NUrJOmjBWSJabJKZ28x5doUxDCKsg=","Date":"Wed, 22 Dec 2021 11:43:14 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"David Plowman <david.plowman@raspberrypi.com>","Message-ID":"<YcLzMhBJXeE6Eho8@pendragon.ideasonboard.com>","References":"<20211219232714.11427-1-laurent.pinchart@ideasonboard.com>\n\t<20211219232714.11427-5-laurent.pinchart@ideasonboard.com>\n\t<CAEmqJPr7fzgVDmMh7bgZn=z0j9Rfux3H1FNU-LbHGVdJ7frBrg@mail.gmail.com>\n\t<CAHW6GYL0MVmyB+i_qf=rQ2YZvxfeOBGo_cdtWrb0VuM=JGBzRw@mail.gmail.com>\n\t<YcJlqBS9TfTPN1MK@pendragon.ideasonboard.com>\n\t<CAHW6GYL+uQgSLRj+CUN1aUbBspJDSxv5evNuNmUc-gWNwBKtQA@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAHW6GYL+uQgSLRj+CUN1aUbBspJDSxv5evNuNmUc-gWNwBKtQA@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":21867,"web_url":"https://patchwork.libcamera.org/comment/21867/","msgid":"<CAHW6GYJvhueUU9F430jqpOgYcS+SQTwjqf9z9z+OMDUu5-X40g@mail.gmail.com>","date":"2021-12-22T10:26:48","subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Laurent\n\nOn Wed, 22 Dec 2021 at 09:43, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hi David,\n>\n> On Wed, Dec 22, 2021 at 08:18:03AM +0000, David Plowman wrote:\n> > On Tue, 21 Dec 2021 at 23:39, Laurent Pinchart wrote:\n> > > On Mon, Dec 20, 2021 at 08:58:45AM +0000, David Plowman wrote:\n> > > > On Mon, 20 Dec 2021 at 07:43, Naushir Patuck wrote:\n> > > > > On Sun, 19 Dec 2021 at 23:27, Laurent Pinchart wrote:\n> > > > >>\n> > > > >> From: Naushir Patuck <naush@raspberrypi.com>\n> > > > >>\n> > > > >> The Sony IMX296 exists in two versions, colour (Bayer) and monochrome.\n> > > > >> The tuning file corresponds to the colour version.\n> > > > >>\n> > > > >> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > >\n> > > > > We might want to do a second pass of tuning at some point, but this is a good\n> > > > > starting point.\n> > > > >\n> > > > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > > > Reviewed-by: Naushir Patuck <naush@raspberrypi.com>\n> > > > >\n> > > > >> ---\n> > > > >>  src/ipa/raspberrypi/data/imx296.json | 305 +++++++++++++++++++++++++++\n> > > > >>  src/ipa/raspberrypi/data/meson.build |   1 +\n> > > > >>  2 files changed, 306 insertions(+)\n> > > > >>  create mode 100644 src/ipa/raspberrypi/data/imx296.json\n> > > > >>\n> > > > >> diff --git a/src/ipa/raspberrypi/data/imx296.json b/src/ipa/raspberrypi/data/imx296.json\n> > > > >> new file mode 100644\n> > > > >> index 000000000000..2444bd2eb940\n> > > > >> --- /dev/null\n> > > > >> +++ b/src/ipa/raspberrypi/data/imx296.json\n> > > > >> @@ -0,0 +1,305 @@\n>\n> [snip]\n>\n> > > > >> +    \"rpi.sharpen\":\n> > > > >> +    {\n> > > >\n> > > > Default sharpening tends to come out a bit strong the fewer megapixels\n> > > > there are (another thing to look into one day...), so reducing the\n> > > > strength here is probably advisable.\n> > > >\n> > > > So in summary, yes, I think another pass at this would be beneficial\n> > > > but it will work \"well enough\" initially, so:\n> > > >\n> > > > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> > >\n> > > The IMX296 sensors I have here are the monochrome version, so I can't\n> > > really calibrate the colour-related parameters. This tuning file comes\n> > > from a branch that was shared by Naush.\n> > >\n> > > Can I merge it as-is and let you play with your fancy calibration kit to\n> > > update the tuning data ? :-)\n> >\n> > Yes, of course, always happy to do that!\n>\n> Thank you.\n>\n> > I'm wondering if we should keep this file as a \"colour module\" tuning\n> > and create another one for the mono version with the colour bits\n> > removed, but I can take care of all that later. Does the driver know\n> > which kind of module it has (or is it hard-coded)? If so we could\n> > perhaps automate the selection of the correct tuning file if it\n> > advertises a suitably amended driver name. Alternatively we just rely\n> > on the environment variable workaround.\n>\n> That's a good idea. The driver has the information, and exposes it\n> through the media bus codes (Y10 for the monochrome version, SBGGR10 for\n> the colour version). The subdev and entity name is the same for both\n> versions.\n>\n> Do you think we should expose different entity names ? We could use\n> imx296ll for the monchrome version and imx296lq for the colour version.\n> That would however require two separate camera sensor helpers, which I\n> don't really like. We may be able to refactor the code to allow camera\n> helpers to match different names. Another option is to keep the entity\n> name unchanged, and derive the tuning file name from the media bus code.\n>\n> What do you think would be the best approach ?\n\nIn the Raspberry Pi cam helper world you can put more than one\n\"RegisterCamHelper\"s at the bottom of the cam helper file. That should\n\"just work\". I'm a bit nervous about joining the mbus code into the\ntuning file name, when in the long run the answer is going to have to\nbe that users/applications will specify the tuning file name for\nthemselves. But I don't feel too strongly as it's all a bit\nimperfect...\n\nDavid\n\n>\n> > > > >> +    }\n> > > > >> +}\n> > > > >> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> > > > >> index e84cd0990c31..211811cfa915 100644\n> > > > >> --- a/src/ipa/raspberrypi/data/meson.build\n> > > > >> +++ b/src/ipa/raspberrypi/data/meson.build\n> > > > >> @@ -4,6 +4,7 @@ conf_files = files([\n> > > > >>      'imx219.json',\n> > > > >>      'imx219_noir.json',\n> > > > >>      'imx290.json',\n> > > > >> +    'imx296.json',\n> > > > >>      'imx378.json',\n> > > > >>      'imx477.json',\n> > > > >>      'imx477_noir.json',\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 B2869BE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 22 Dec 2021 10:27:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0E053608E9;\n\tWed, 22 Dec 2021 11:27:00 +0100 (CET)","from mail-wm1-x336.google.com (mail-wm1-x336.google.com\n\t[IPv6:2a00:1450:4864:20::336])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7C6086021F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Dec 2021 11:26:59 +0100 (CET)","by mail-wm1-x336.google.com with SMTP id g132so1249016wmg.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Dec 2021 02:26:59 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"IQv1I07i\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=uQPk+Bdr7OtwNx+pPDTxYeuasltZHVIyooD6O1xJ7qw=;\n\tb=IQv1I07iHdz3i6ezyA4BfKN7l2IOYa2Osg7RK5LcoAKPw58AFxi62xtp3XwLA+9XkI\n\tI5xnD9X47Ls95l0O8n9kJhv/J9lham917+I0EUfkgu173RKCVr+sNKAwJT7Z/WK160Tl\n\t3kKd28BBUP6G9PfYtMJs3IiZ7dZSwJXV5FyMerOJUXrWtupJ3FI/qnpu7CXuccqsBaj8\n\tMkqQ2cILq98bVBuHQzqsU1IPT72yIOmLowZrXnbIENefVt9u2ahMEVCYttwxu2PqhzKm\n\tw3QsH7oYjz3avVmyPNXAsAod03/MjOPU/dzDvzSyphvUUfF0tu8GOdTQ9tarDXZxQ7ak\n\t/2vA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=uQPk+Bdr7OtwNx+pPDTxYeuasltZHVIyooD6O1xJ7qw=;\n\tb=ezEOApWVqbzXKU12Vm4u1P2rTPH+fyTXc0tCVE8l/n+l9jcxzdrRvd9UqyAlfPbuss\n\tj4G1j9n4acnBiUssMstjiurDXRBdw0yUbtte1BAovA9IvPIcIRdubnVf3oh1vF+SskNI\n\tfnojpmeQIG0NSnNBGaR6YVRrq4rJuG6wAJuK4kem2l25HuVJT/9rhH753hGjE26GxUza\n\t0HFMIOYhwYffUDopB1s1kl3DQrL1oHxSUUjI27pgTIch8PoUY14bnwFziELDIyJhkQU0\n\t0QCb5+Ps73jgcWe/L1CWUmBqfTNXJJ1UibrNGmvI+jkCga0W411V6XUUUwny4bR8Sj74\n\tiSBw==","X-Gm-Message-State":"AOAM532VqLIhxFLjjXiua7U7nIUgsmV7SauJDwmVQnMSwwmXVvj1llJD\n\trH/YZsxQG6oHCRKNqdRLShwQryQMgK5klXjUBHGQ5Q==","X-Google-Smtp-Source":"ABdhPJz0Cvw6SaOsEsC7RrReN9tC6hEkUjmMGT0QACvwgxQgxp7WxTOBSijQx4w5QA1C3uDon2fAowbUGh43lZf5GPA=","X-Received":"by 2002:a05:600c:40d6:: with SMTP id\n\tm22mr437708wmh.163.1640168819111; \n\tWed, 22 Dec 2021 02:26:59 -0800 (PST)","MIME-Version":"1.0","References":"<20211219232714.11427-1-laurent.pinchart@ideasonboard.com>\n\t<20211219232714.11427-5-laurent.pinchart@ideasonboard.com>\n\t<CAEmqJPr7fzgVDmMh7bgZn=z0j9Rfux3H1FNU-LbHGVdJ7frBrg@mail.gmail.com>\n\t<CAHW6GYL0MVmyB+i_qf=rQ2YZvxfeOBGo_cdtWrb0VuM=JGBzRw@mail.gmail.com>\n\t<YcJlqBS9TfTPN1MK@pendragon.ideasonboard.com>\n\t<CAHW6GYL+uQgSLRj+CUN1aUbBspJDSxv5evNuNmUc-gWNwBKtQA@mail.gmail.com>\n\t<YcLzMhBJXeE6Eho8@pendragon.ideasonboard.com>","In-Reply-To":"<YcLzMhBJXeE6Eho8@pendragon.ideasonboard.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Wed, 22 Dec 2021 10:26:48 +0000","Message-ID":"<CAHW6GYJvhueUU9F430jqpOgYcS+SQTwjqf9z9z+OMDUu5-X40g@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":21869,"web_url":"https://patchwork.libcamera.org/comment/21869/","msgid":"<YcMCnhHwe3z22+sH@pendragon.ideasonboard.com>","date":"2021-12-22T10:49:02","subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi David,\n\n(CC'ing Sakari)\n\nOn Wed, Dec 22, 2021 at 10:26:48AM +0000, David Plowman wrote:\n> On Wed, 22 Dec 2021 at 09:43, Laurent Pinchart wrote:\n> > On Wed, Dec 22, 2021 at 08:18:03AM +0000, David Plowman wrote:\n> > > On Tue, 21 Dec 2021 at 23:39, Laurent Pinchart wrote:\n> > > > On Mon, Dec 20, 2021 at 08:58:45AM +0000, David Plowman wrote:\n> > > > > On Mon, 20 Dec 2021 at 07:43, Naushir Patuck wrote:\n> > > > > > On Sun, 19 Dec 2021 at 23:27, Laurent Pinchart wrote:\n> > > > > >>\n> > > > > >> From: Naushir Patuck <naush@raspberrypi.com>\n> > > > > >>\n> > > > > >> The Sony IMX296 exists in two versions, colour (Bayer) and monochrome.\n> > > > > >> The tuning file corresponds to the colour version.\n> > > > > >>\n> > > > > >> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > >\n> > > > > > We might want to do a second pass of tuning at some point, but this is a good\n> > > > > > starting point.\n> > > > > >\n> > > > > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > > > > Reviewed-by: Naushir Patuck <naush@raspberrypi.com>\n> > > > > >\n> > > > > >> ---\n> > > > > >>  src/ipa/raspberrypi/data/imx296.json | 305 +++++++++++++++++++++++++++\n> > > > > >>  src/ipa/raspberrypi/data/meson.build |   1 +\n> > > > > >>  2 files changed, 306 insertions(+)\n> > > > > >>  create mode 100644 src/ipa/raspberrypi/data/imx296.json\n> > > > > >>\n> > > > > >> diff --git a/src/ipa/raspberrypi/data/imx296.json b/src/ipa/raspberrypi/data/imx296.json\n> > > > > >> new file mode 100644\n> > > > > >> index 000000000000..2444bd2eb940\n> > > > > >> --- /dev/null\n> > > > > >> +++ b/src/ipa/raspberrypi/data/imx296.json\n> > > > > >> @@ -0,0 +1,305 @@\n> >\n> > [snip]\n> >\n> > > > > >> +    \"rpi.sharpen\":\n> > > > > >> +    {\n> > > > >\n> > > > > Default sharpening tends to come out a bit strong the fewer megapixels\n> > > > > there are (another thing to look into one day...), so reducing the\n> > > > > strength here is probably advisable.\n> > > > >\n> > > > > So in summary, yes, I think another pass at this would be beneficial\n> > > > > but it will work \"well enough\" initially, so:\n> > > > >\n> > > > > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> > > >\n> > > > The IMX296 sensors I have here are the monochrome version, so I can't\n> > > > really calibrate the colour-related parameters. This tuning file comes\n> > > > from a branch that was shared by Naush.\n> > > >\n> > > > Can I merge it as-is and let you play with your fancy calibration kit to\n> > > > update the tuning data ? :-)\n> > >\n> > > Yes, of course, always happy to do that!\n> >\n> > Thank you.\n> >\n> > > I'm wondering if we should keep this file as a \"colour module\" tuning\n> > > and create another one for the mono version with the colour bits\n> > > removed, but I can take care of all that later. Does the driver know\n> > > which kind of module it has (or is it hard-coded)? If so we could\n> > > perhaps automate the selection of the correct tuning file if it\n> > > advertises a suitably amended driver name. Alternatively we just rely\n> > > on the environment variable workaround.\n> >\n> > That's a good idea. The driver has the information, and exposes it\n> > through the media bus codes (Y10 for the monochrome version, SBGGR10 for\n> > the colour version). The subdev and entity name is the same for both\n> > versions.\n> >\n> > Do you think we should expose different entity names ? We could use\n> > imx296ll for the monchrome version and imx296lq for the colour version.\n> > That would however require two separate camera sensor helpers, which I\n> > don't really like. We may be able to refactor the code to allow camera\n> > helpers to match different names. Another option is to keep the entity\n> > name unchanged, and derive the tuning file name from the media bus code.\n> >\n> > What do you think would be the best approach ?\n> \n> In the Raspberry Pi cam helper world you can put more than one\n> \"RegisterCamHelper\"s at the bottom of the cam helper file. That should\n> \"just work\". I'm a bit nervous about joining the mbus code into the\n> tuning file name, when in the long run the answer is going to have to\n> be that users/applications will specify the tuning file name for\n> themselves. But I don't feel too strongly as it's all a bit\n> imperfect...\n\nI don't think we should just join them, but we may possibly deribe a\n-mono or -colour suffix for instance. I'm not entirely sure how that\nwould work and what issues it could cause, it feels like a bit of a\nhack.\n\nOn the other hand, if we convey this information through the entity\nname, I'm also not sure where we'll stop. Will we need different entity\nnames for sensors with or without an IR filter for instance ?\n\n> > > > > >> +    }\n> > > > > >> +}\n> > > > > >> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> > > > > >> index e84cd0990c31..211811cfa915 100644\n> > > > > >> --- a/src/ipa/raspberrypi/data/meson.build\n> > > > > >> +++ b/src/ipa/raspberrypi/data/meson.build\n> > > > > >> @@ -4,6 +4,7 @@ conf_files = files([\n> > > > > >>      'imx219.json',\n> > > > > >>      'imx219_noir.json',\n> > > > > >>      'imx290.json',\n> > > > > >> +    'imx296.json',\n> > > > > >>      'imx378.json',\n> > > > > >>      'imx477.json',\n> > > > > >>      'imx477_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 5CC13BF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 22 Dec 2021 10:49:08 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 92FCD608E9;\n\tWed, 22 Dec 2021 11:49:07 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4A23D6021F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Dec 2021 11:49:05 +0100 (CET)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id B2DC4894;\n\tWed, 22 Dec 2021 11:49:04 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Vc0HEfUy\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1640170145;\n\tbh=SlXtMyMfEfW+H2mpiWgmeUpUft0UAsl4hi2MjH1w+90=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Vc0HEfUyxLj3SWwOvO+62HHIquui1AEXsJNwqpKmg6qSiIZxbCLFFYwV814VoCfHY\n\t2CW2qHkTVwfYX2PeeW9KrXTmChhUzKWQXxsk5CI/jBWfXGQvEEfZFnju58wXVlQ7TL\n\tRs7OBJ85hCPI8WuyfPdOPmEbh29Z2xRqhl4ZYqog=","Date":"Wed, 22 Dec 2021 12:49:02 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"David Plowman <david.plowman@raspberrypi.com>","Message-ID":"<YcMCnhHwe3z22+sH@pendragon.ideasonboard.com>","References":"<20211219232714.11427-1-laurent.pinchart@ideasonboard.com>\n\t<20211219232714.11427-5-laurent.pinchart@ideasonboard.com>\n\t<CAEmqJPr7fzgVDmMh7bgZn=z0j9Rfux3H1FNU-LbHGVdJ7frBrg@mail.gmail.com>\n\t<CAHW6GYL0MVmyB+i_qf=rQ2YZvxfeOBGo_cdtWrb0VuM=JGBzRw@mail.gmail.com>\n\t<YcJlqBS9TfTPN1MK@pendragon.ideasonboard.com>\n\t<CAHW6GYL+uQgSLRj+CUN1aUbBspJDSxv5evNuNmUc-gWNwBKtQA@mail.gmail.com>\n\t<YcLzMhBJXeE6Eho8@pendragon.ideasonboard.com>\n\t<CAHW6GYJvhueUU9F430jqpOgYcS+SQTwjqf9z9z+OMDUu5-X40g@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAHW6GYJvhueUU9F430jqpOgYcS+SQTwjqf9z9z+OMDUu5-X40g@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>,\n\tSakari Ailus <sakari.ailus@iki.fi>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":21871,"web_url":"https://patchwork.libcamera.org/comment/21871/","msgid":"<CAHW6GYJHcwsuwEVqvSyVadfwwLM8noK+3iBKcj5d+PutY1VwSw@mail.gmail.com>","date":"2021-12-22T12:12:41","subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Laurent\n\nOn Wed, 22 Dec 2021 at 10:49, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hi David,\n>\n> (CC'ing Sakari)\n>\n> On Wed, Dec 22, 2021 at 10:26:48AM +0000, David Plowman wrote:\n> > On Wed, 22 Dec 2021 at 09:43, Laurent Pinchart wrote:\n> > > On Wed, Dec 22, 2021 at 08:18:03AM +0000, David Plowman wrote:\n> > > > On Tue, 21 Dec 2021 at 23:39, Laurent Pinchart wrote:\n> > > > > On Mon, Dec 20, 2021 at 08:58:45AM +0000, David Plowman wrote:\n> > > > > > On Mon, 20 Dec 2021 at 07:43, Naushir Patuck wrote:\n> > > > > > > On Sun, 19 Dec 2021 at 23:27, Laurent Pinchart wrote:\n> > > > > > >>\n> > > > > > >> From: Naushir Patuck <naush@raspberrypi.com>\n> > > > > > >>\n> > > > > > >> The Sony IMX296 exists in two versions, colour (Bayer) and monochrome.\n> > > > > > >> The tuning file corresponds to the colour version.\n> > > > > > >>\n> > > > > > >> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > > >\n> > > > > > > We might want to do a second pass of tuning at some point, but this is a good\n> > > > > > > starting point.\n> > > > > > >\n> > > > > > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > > > > > Reviewed-by: Naushir Patuck <naush@raspberrypi.com>\n> > > > > > >\n> > > > > > >> ---\n> > > > > > >>  src/ipa/raspberrypi/data/imx296.json | 305 +++++++++++++++++++++++++++\n> > > > > > >>  src/ipa/raspberrypi/data/meson.build |   1 +\n> > > > > > >>  2 files changed, 306 insertions(+)\n> > > > > > >>  create mode 100644 src/ipa/raspberrypi/data/imx296.json\n> > > > > > >>\n> > > > > > >> diff --git a/src/ipa/raspberrypi/data/imx296.json b/src/ipa/raspberrypi/data/imx296.json\n> > > > > > >> new file mode 100644\n> > > > > > >> index 000000000000..2444bd2eb940\n> > > > > > >> --- /dev/null\n> > > > > > >> +++ b/src/ipa/raspberrypi/data/imx296.json\n> > > > > > >> @@ -0,0 +1,305 @@\n> > >\n> > > [snip]\n> > >\n> > > > > > >> +    \"rpi.sharpen\":\n> > > > > > >> +    {\n> > > > > >\n> > > > > > Default sharpening tends to come out a bit strong the fewer megapixels\n> > > > > > there are (another thing to look into one day...), so reducing the\n> > > > > > strength here is probably advisable.\n> > > > > >\n> > > > > > So in summary, yes, I think another pass at this would be beneficial\n> > > > > > but it will work \"well enough\" initially, so:\n> > > > > >\n> > > > > > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> > > > >\n> > > > > The IMX296 sensors I have here are the monochrome version, so I can't\n> > > > > really calibrate the colour-related parameters. This tuning file comes\n> > > > > from a branch that was shared by Naush.\n> > > > >\n> > > > > Can I merge it as-is and let you play with your fancy calibration kit to\n> > > > > update the tuning data ? :-)\n> > > >\n> > > > Yes, of course, always happy to do that!\n> > >\n> > > Thank you.\n> > >\n> > > > I'm wondering if we should keep this file as a \"colour module\" tuning\n> > > > and create another one for the mono version with the colour bits\n> > > > removed, but I can take care of all that later. Does the driver know\n> > > > which kind of module it has (or is it hard-coded)? If so we could\n> > > > perhaps automate the selection of the correct tuning file if it\n> > > > advertises a suitably amended driver name. Alternatively we just rely\n> > > > on the environment variable workaround.\n> > >\n> > > That's a good idea. The driver has the information, and exposes it\n> > > through the media bus codes (Y10 for the monochrome version, SBGGR10 for\n> > > the colour version). The subdev and entity name is the same for both\n> > > versions.\n> > >\n> > > Do you think we should expose different entity names ? We could use\n> > > imx296ll for the monchrome version and imx296lq for the colour version.\n> > > That would however require two separate camera sensor helpers, which I\n> > > don't really like. We may be able to refactor the code to allow camera\n> > > helpers to match different names. Another option is to keep the entity\n> > > name unchanged, and derive the tuning file name from the media bus code.\n> > >\n> > > What do you think would be the best approach ?\n> >\n> > In the Raspberry Pi cam helper world you can put more than one\n> > \"RegisterCamHelper\"s at the bottom of the cam helper file. That should\n> > \"just work\". I'm a bit nervous about joining the mbus code into the\n> > tuning file name, when in the long run the answer is going to have to\n> > be that users/applications will specify the tuning file name for\n> > themselves. But I don't feel too strongly as it's all a bit\n> > imperfect...\n>\n> I don't think we should just join them, but we may possibly deribe a\n> -mono or -colour suffix for instance. I'm not entirely sure how that\n> would work and what issues it could cause, it feels like a bit of a\n> hack.\n>\n> On the other hand, if we convey this information through the entity\n> name, I'm also not sure where we'll stop. Will we need different entity\n> names for sensors with or without an IR filter for instance ?\n\nIndeed, nothing is perfect. In the end there's no way around the fact\nthat you can't determine the attached camera module automatically, we\nhave to rely on the user/application to tell us.\n\nSo I'm fine with leaving the driver name as \"imx296\", we make the mono\ntuning file be \"imx296.json\" (you got there first!), and everyone else\nwill just have to supply the right name if they have a colour (or in\nany way different) module.\n\nDoes that work?\n\nDavid\n\n>\n> > > > > > >> +    }\n> > > > > > >> +}\n> > > > > > >> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> > > > > > >> index e84cd0990c31..211811cfa915 100644\n> > > > > > >> --- a/src/ipa/raspberrypi/data/meson.build\n> > > > > > >> +++ b/src/ipa/raspberrypi/data/meson.build\n> > > > > > >> @@ -4,6 +4,7 @@ conf_files = files([\n> > > > > > >>      'imx219.json',\n> > > > > > >>      'imx219_noir.json',\n> > > > > > >>      'imx290.json',\n> > > > > > >> +    'imx296.json',\n> > > > > > >>      'imx378.json',\n> > > > > > >>      'imx477.json',\n> > > > > > >>      'imx477_noir.json',\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 0E547BF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 22 Dec 2021 12:12:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4CCCD608E7;\n\tWed, 22 Dec 2021 13:12:54 +0100 (CET)","from mail-wr1-x433.google.com (mail-wr1-x433.google.com\n\t[IPv6:2a00:1450:4864:20::433])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DFC5860115\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Dec 2021 13:12:52 +0100 (CET)","by mail-wr1-x433.google.com with SMTP id t26so4492916wrb.4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Dec 2021 04:12:52 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"nsHewj5Z\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=dFptsbAr+i6Ny6sxsgOPCet7ha+iIgQoTs2wmuH7/u0=;\n\tb=nsHewj5ZvarqyvA9qm3m8AEr5EbnmbAvxfgFQWkP22lENRoVdkh5DIzLZwbmswn3cZ\n\tDSVTEjpiPaaVcLMpLNaRKgou+0wclKSpzXVipHkiPTpr7cK2CMwpeYjAre5wgjG0bc/g\n\tnAYQQ5p9eGI4VrnFC6nCgBXb/6EaOcrkdYnBTFO5ACQCwInFMT3t5ZNWRNHAIYPWEyht\n\t44mqlzm935kKLbkqRqdi44Ji2lMBPU6hY/x/HS9SVPU/Gq3WiL7QI8HHsruJesLbbVzd\n\tiZA+CC8+W0rSHugKgnnrxobeVH1JO3IamRA04IlU/n5Ryt26B/BscUaKdsGQJnkcTsXt\n\tc8DA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=dFptsbAr+i6Ny6sxsgOPCet7ha+iIgQoTs2wmuH7/u0=;\n\tb=oEjIEjiqtZJRbq1q4cG/hrSL8tcaTis+eNinBB0nmqEmNHIB1FbGKZ8yhyjY3daVr2\n\toJ09gbKo1UAenN7ACshC20TgBmJQbwwW1KZOAYQjERGF0lrm7A1gv0yZOP8j+NOd2yCN\n\thv7eu6cV1lRY+o/bElUv1hlABD8wy0VM4T+/r8nly9uOtEh4RaMuZgo2hAKHpaEIvPK2\n\tMFMmiR9JukIrjhJ5jeckg19F+NwqYt+lEGdRtzWuFHd3kHg1uPAlc+owcpWks5phemu0\n\tp4vJC7PYesyiSvD+IjeMubHYe0HOMb2iBm9EAdzBkW5Gzg11MN9r78tLqo6X5HhvPSbK\n\tCf+Q==","X-Gm-Message-State":"AOAM532zkNTxLZifAh1XH9VKoUmdGe5bsVHEPBUfjhi2+ZZcSXOM+wyx\n\tHR8yBoLTYIsKIxvy+dlEQDhjI1uhNyQ93aPwt5OkIA==","X-Google-Smtp-Source":"ABdhPJzj2Eab7CAAcJZL/hEamrrv7GoP396NaXAlmWlua5FMz4j0kwlGZ5jV92wk2hct2gp/u80lsAC4kGa18cFA+4E=","X-Received":"by 2002:adf:a352:: with SMTP id\n\td18mr1917728wrb.317.1640175172489; \n\tWed, 22 Dec 2021 04:12:52 -0800 (PST)","MIME-Version":"1.0","References":"<20211219232714.11427-1-laurent.pinchart@ideasonboard.com>\n\t<20211219232714.11427-5-laurent.pinchart@ideasonboard.com>\n\t<CAEmqJPr7fzgVDmMh7bgZn=z0j9Rfux3H1FNU-LbHGVdJ7frBrg@mail.gmail.com>\n\t<CAHW6GYL0MVmyB+i_qf=rQ2YZvxfeOBGo_cdtWrb0VuM=JGBzRw@mail.gmail.com>\n\t<YcJlqBS9TfTPN1MK@pendragon.ideasonboard.com>\n\t<CAHW6GYL+uQgSLRj+CUN1aUbBspJDSxv5evNuNmUc-gWNwBKtQA@mail.gmail.com>\n\t<YcLzMhBJXeE6Eho8@pendragon.ideasonboard.com>\n\t<CAHW6GYJvhueUU9F430jqpOgYcS+SQTwjqf9z9z+OMDUu5-X40g@mail.gmail.com>\n\t<YcMCnhHwe3z22+sH@pendragon.ideasonboard.com>","In-Reply-To":"<YcMCnhHwe3z22+sH@pendragon.ideasonboard.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Wed, 22 Dec 2021 12:12:41 +0000","Message-ID":"<CAHW6GYJHcwsuwEVqvSyVadfwwLM8noK+3iBKcj5d+PutY1VwSw@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>,\n\tSakari Ailus <sakari.ailus@iki.fi>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":22004,"web_url":"https://patchwork.libcamera.org/comment/22004/","msgid":"<Yd2SwDN/ZqQ7Kd4B@pendragon.ideasonboard.com>","date":"2022-01-11T14:22:56","subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi David,\n\nOn Wed, Dec 22, 2021 at 12:12:41PM +0000, David Plowman wrote:\n> On Wed, 22 Dec 2021 at 10:49, Laurent Pinchart wrote:\n> > On Wed, Dec 22, 2021 at 10:26:48AM +0000, David Plowman wrote:\n> > > On Wed, 22 Dec 2021 at 09:43, Laurent Pinchart wrote:\n> > > > On Wed, Dec 22, 2021 at 08:18:03AM +0000, David Plowman wrote:\n> > > > > On Tue, 21 Dec 2021 at 23:39, Laurent Pinchart wrote:\n> > > > > > On Mon, Dec 20, 2021 at 08:58:45AM +0000, David Plowman wrote:\n> > > > > > > On Mon, 20 Dec 2021 at 07:43, Naushir Patuck wrote:\n> > > > > > > > On Sun, 19 Dec 2021 at 23:27, Laurent Pinchart wrote:\n> > > > > > > >>\n> > > > > > > >> From: Naushir Patuck <naush@raspberrypi.com>\n> > > > > > > >>\n> > > > > > > >> The Sony IMX296 exists in two versions, colour (Bayer) and monochrome.\n> > > > > > > >> The tuning file corresponds to the colour version.\n> > > > > > > >>\n> > > > > > > >> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > > > >\n> > > > > > > > We might want to do a second pass of tuning at some point, but this is a good\n> > > > > > > > starting point.\n> > > > > > > >\n> > > > > > > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > > > > > > Reviewed-by: Naushir Patuck <naush@raspberrypi.com>\n> > > > > > > >\n> > > > > > > >> ---\n> > > > > > > >>  src/ipa/raspberrypi/data/imx296.json | 305 +++++++++++++++++++++++++++\n> > > > > > > >>  src/ipa/raspberrypi/data/meson.build |   1 +\n> > > > > > > >>  2 files changed, 306 insertions(+)\n> > > > > > > >>  create mode 100644 src/ipa/raspberrypi/data/imx296.json\n> > > > > > > >>\n> > > > > > > >> diff --git a/src/ipa/raspberrypi/data/imx296.json b/src/ipa/raspberrypi/data/imx296.json\n> > > > > > > >> new file mode 100644\n> > > > > > > >> index 000000000000..2444bd2eb940\n> > > > > > > >> --- /dev/null\n> > > > > > > >> +++ b/src/ipa/raspberrypi/data/imx296.json\n> > > > > > > >> @@ -0,0 +1,305 @@\n> > > >\n> > > > [snip]\n> > > >\n> > > > > > > >> +    \"rpi.sharpen\":\n> > > > > > > >> +    {\n> > > > > > >\n> > > > > > > Default sharpening tends to come out a bit strong the fewer megapixels\n> > > > > > > there are (another thing to look into one day...), so reducing the\n> > > > > > > strength here is probably advisable.\n> > > > > > >\n> > > > > > > So in summary, yes, I think another pass at this would be beneficial\n> > > > > > > but it will work \"well enough\" initially, so:\n> > > > > > >\n> > > > > > > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> > > > > >\n> > > > > > The IMX296 sensors I have here are the monochrome version, so I can't\n> > > > > > really calibrate the colour-related parameters. This tuning file comes\n> > > > > > from a branch that was shared by Naush.\n> > > > > >\n> > > > > > Can I merge it as-is and let you play with your fancy calibration kit to\n> > > > > > update the tuning data ? :-)\n> > > > >\n> > > > > Yes, of course, always happy to do that!\n> > > >\n> > > > Thank you.\n> > > >\n> > > > > I'm wondering if we should keep this file as a \"colour module\" tuning\n> > > > > and create another one for the mono version with the colour bits\n> > > > > removed, but I can take care of all that later. Does the driver know\n> > > > > which kind of module it has (or is it hard-coded)? If so we could\n> > > > > perhaps automate the selection of the correct tuning file if it\n> > > > > advertises a suitably amended driver name. Alternatively we just rely\n> > > > > on the environment variable workaround.\n> > > >\n> > > > That's a good idea. The driver has the information, and exposes it\n> > > > through the media bus codes (Y10 for the monochrome version, SBGGR10 for\n> > > > the colour version). The subdev and entity name is the same for both\n> > > > versions.\n> > > >\n> > > > Do you think we should expose different entity names ? We could use\n> > > > imx296ll for the monchrome version and imx296lq for the colour version.\n> > > > That would however require two separate camera sensor helpers, which I\n> > > > don't really like. We may be able to refactor the code to allow camera\n> > > > helpers to match different names. Another option is to keep the entity\n> > > > name unchanged, and derive the tuning file name from the media bus code.\n> > > >\n> > > > What do you think would be the best approach ?\n> > >\n> > > In the Raspberry Pi cam helper world you can put more than one\n> > > \"RegisterCamHelper\"s at the bottom of the cam helper file. That should\n> > > \"just work\". I'm a bit nervous about joining the mbus code into the\n> > > tuning file name, when in the long run the answer is going to have to\n> > > be that users/applications will specify the tuning file name for\n> > > themselves. But I don't feel too strongly as it's all a bit\n> > > imperfect...\n> >\n> > I don't think we should just join them, but we may possibly deribe a\n> > -mono or -colour suffix for instance. I'm not entirely sure how that\n> > would work and what issues it could cause, it feels like a bit of a\n> > hack.\n> >\n> > On the other hand, if we convey this information through the entity\n> > name, I'm also not sure where we'll stop. Will we need different entity\n> > names for sensors with or without an IR filter for instance ?\n> \n> Indeed, nothing is perfect. In the end there's no way around the fact\n> that you can't determine the attached camera module automatically, we\n> have to rely on the user/application to tell us.\n> \n> So I'm fine with leaving the driver name as \"imx296\", we make the mono\n> tuning file be \"imx296.json\" (you got there first!), and everyone else\n> will just have to supply the right name if they have a colour (or in\n> any way different) module.\n> \n> Does that work?\n\nThat, or at that point we'll figure a scheme to select the right file\nautomatically. In any case, we can address this issue when it arises.\n\n> > > > > > > >> +    }\n> > > > > > > >> +}\n> > > > > > > >> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> > > > > > > >> index e84cd0990c31..211811cfa915 100644\n> > > > > > > >> --- a/src/ipa/raspberrypi/data/meson.build\n> > > > > > > >> +++ b/src/ipa/raspberrypi/data/meson.build\n> > > > > > > >> @@ -4,6 +4,7 @@ conf_files = files([\n> > > > > > > >>      'imx219.json',\n> > > > > > > >>      'imx219_noir.json',\n> > > > > > > >>      'imx290.json',\n> > > > > > > >> +    'imx296.json',\n> > > > > > > >>      'imx378.json',\n> > > > > > > >>      'imx477.json',\n> > > > > > > >>      'imx477_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 0A80FBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 11 Jan 2022 14:23:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 20F4860921;\n\tTue, 11 Jan 2022 15:23:08 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5E1FF60217\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 11 Jan 2022 15:23:06 +0100 (CET)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id BC576340;\n\tTue, 11 Jan 2022 15:23:05 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"qGn+i8oS\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1641910986;\n\tbh=yFE90oU1+ohFEmUv3PA2QGfrahkvAOLjOUQ51u4UnT0=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=qGn+i8oSg6lJXNwfx8nuwlvKCEpN3pEc6hjyCDRIBSI6VyH/wtGZZi0i0j97OjlJL\n\tPQNU7o3PKlWjPme1jlcBPW/jxCEMM5ztxT0M5tNddQsPK1iT8bO3ZnGQxjK5dzT6St\n\tI6QA4GRfR74xsLwclHlLoln+2vAcTAt7zD2+6Fz0=","Date":"Tue, 11 Jan 2022 16:22:56 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"David Plowman <david.plowman@raspberrypi.com>","Message-ID":"<Yd2SwDN/ZqQ7Kd4B@pendragon.ideasonboard.com>","References":"<20211219232714.11427-1-laurent.pinchart@ideasonboard.com>\n\t<20211219232714.11427-5-laurent.pinchart@ideasonboard.com>\n\t<CAEmqJPr7fzgVDmMh7bgZn=z0j9Rfux3H1FNU-LbHGVdJ7frBrg@mail.gmail.com>\n\t<CAHW6GYL0MVmyB+i_qf=rQ2YZvxfeOBGo_cdtWrb0VuM=JGBzRw@mail.gmail.com>\n\t<YcJlqBS9TfTPN1MK@pendragon.ideasonboard.com>\n\t<CAHW6GYL+uQgSLRj+CUN1aUbBspJDSxv5evNuNmUc-gWNwBKtQA@mail.gmail.com>\n\t<YcLzMhBJXeE6Eho8@pendragon.ideasonboard.com>\n\t<CAHW6GYJvhueUU9F430jqpOgYcS+SQTwjqf9z9z+OMDUu5-X40g@mail.gmail.com>\n\t<YcMCnhHwe3z22+sH@pendragon.ideasonboard.com>\n\t<CAHW6GYJHcwsuwEVqvSyVadfwwLM8noK+3iBKcj5d+PutY1VwSw@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAHW6GYJHcwsuwEVqvSyVadfwwLM8noK+3iBKcj5d+PutY1VwSw@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH 4/4] ipa: raspberrypi: Add tuning file\n\tfor IMX296 sensor","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>,\n\tSakari Ailus <sakari.ailus@iki.fi>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]