[{"id":18765,"web_url":"https://patchwork.libcamera.org/comment/18765/","msgid":"<3879b4c8-94bd-3321-a9a9-cb4caafe89df@ideasonboard.com>","date":"2021-08-13T10:41:08","subject":"Re: [libcamera-devel] [PATCH v1] raspberrypi: ipa: Add tuning files\n\tfor \"NOIR\" ov5647, imx219, imx477 modules","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi David,\n\nOn 13/08/2021 10:02, David Plowman wrote:\n> \"NOIR\" modules are ones that have had the IR filters removed but are\n> otherwise identical. The same tuning can be used as for the regular\n> version except that the colour calibration supplied to the AWB\n> algorithm no longer works. Instead we need to switch the algorithm to\n> its basic \"grey world\" method.\n> \n> Users with \"NOIR\" modules can switch to the matching \"xxx_noir.json\"\n> tuning file by using the LIBCAMERA_RPI_TUNING_FILE environment\n> variable.\n\n\nIt seems on a cursory glance, that these files are the same as the\nnon-noir version, except 'bayes' is set to 0, and other unused entries\nare not present.\n\nThat makes me think somehow, there should be a way to use the same\ntuning file, but be able to enforce the grey-world algorithm.\n\nI won't object to these files going in, as it's a way to solve the\nselection with the tools you currently have available, but it brings up\nthe question of what controls should we expose from the IPA to be able\nto set this.\n\nOr perhaps, given that the tuning file is supposed to be mapped to a\nspecific camera module, which will either have or not have an IR filter,\nmaybe this is simply 'the right solution' ...\n\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\n> Signed-off-by: David Plowman <david.plowman@raspberypi.com>\n> ---\n>  src/ipa/raspberrypi/data/imx219_noir.json | 344 ++++++++++++++++++++\n>  src/ipa/raspberrypi/data/imx477_noir.json | 362 ++++++++++++++++++++++\n>  src/ipa/raspberrypi/data/meson.build      |   3 +\n>  src/ipa/raspberrypi/data/ov5647_noir.json | 341 ++++++++++++++++++++\n>  4 files changed, 1050 insertions(+)\n>  create mode 100644 src/ipa/raspberrypi/data/imx219_noir.json\n>  create mode 100644 src/ipa/raspberrypi/data/imx477_noir.json\n>  create mode 100644 src/ipa/raspberrypi/data/ov5647_noir.json\n> \n> diff --git a/src/ipa/raspberrypi/data/imx219_noir.json b/src/ipa/raspberrypi/data/imx219_noir.json\n> new file mode 100644\n> index 00000000..1d48ef53\n> --- /dev/null\n> +++ b/src/ipa/raspberrypi/data/imx219_noir.json\n> @@ -0,0 +1,344 @@\n> +{\n> +    \"rpi.black_level\":\n> +    {\n> +        \"black_level\": 4096\n> +    },\n> +    \"rpi.dpc\":\n> +    {\n> +\n> +    },\n> +    \"rpi.lux\":\n> +    {\n> +        \"reference_shutter_speed\": 27685,\n> +        \"reference_gain\": 1.0,\n> +        \"reference_aperture\": 1.0,\n> +        \"reference_lux\": 998,\n> +        \"reference_Y\": 12744\n> +    },\n> +    \"rpi.noise\":\n> +    {\n> +        \"reference_constant\": 0,\n> +        \"reference_slope\": 3.67\n> +    },\n> +    \"rpi.geq\":\n> +    {\n> +        \"offset\": 204,\n> +        \"slope\": 0.01633\n> +    },\n> +    \"rpi.sdn\":\n> +    {\n> +\n> +    },\n> +    \"rpi.awb\":\n> +    {\n> +\t\"bayes\": 0\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, 66666\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, 33333\n> +                ],\n> +                \"gain\":\n> +                [\n> +                    1.0, 2.0, 4.0, 6.0, 6.0\n> +                ]\n> +            },\n> +            \"long\":\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> +        },\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> +\t    \"shadows\":\n> +\t    [\n> +\t\t{\n> +\t\t    \"bound\": \"LOWER\", \"q_lo\": 0.0, \"q_hi\": 0.5, \"y_target\":\n> +                    [\n> +                        0, 0.17, 1000, 0.17\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.7,\n> +        \"calibrations_Cr\":\n> +        [\n> +            {\n> +                \"ct\": 3000, \"table\":\n> +                [\n> +                    1.487, 1.481, 1.481, 1.445, 1.389, 1.327, 1.307, 1.307, 1.307, 1.309, 1.341, 1.405, 1.458, 1.494, 1.494, 1.497,\n> +                    1.491, 1.481, 1.448, 1.397, 1.331, 1.275, 1.243, 1.229, 1.229, 1.249, 1.287, 1.349, 1.409, 1.463, 1.494, 1.497,\n> +                    1.491, 1.469, 1.405, 1.331, 1.275, 1.217, 1.183, 1.172, 1.172, 1.191, 1.231, 1.287, 1.349, 1.424, 1.484, 1.499,\n> +                    1.487, 1.444, 1.363, 1.283, 1.217, 1.183, 1.148, 1.138, 1.138, 1.159, 1.191, 1.231, 1.302, 1.385, 1.461, 1.492,\n> +                    1.481, 1.423, 1.334, 1.253, 1.189, 1.148, 1.135, 1.119, 1.123, 1.137, 1.159, 1.203, 1.272, 1.358, 1.442, 1.488,\n> +                    1.479, 1.413, 1.321, 1.236, 1.176, 1.139, 1.118, 1.114, 1.116, 1.123, 1.149, 1.192, 1.258, 1.344, 1.432, 1.487,\n> +                    1.479, 1.413, 1.321, 1.236, 1.176, 1.139, 1.116, 1.114, 1.115, 1.123, 1.149, 1.192, 1.258, 1.344, 1.432, 1.487,\n> +                    1.479, 1.425, 1.336, 1.251, 1.189, 1.149, 1.136, 1.118, 1.121, 1.138, 1.158, 1.206, 1.275, 1.358, 1.443, 1.488,\n> +                    1.488, 1.448, 1.368, 1.285, 1.219, 1.189, 1.149, 1.139, 1.139, 1.158, 1.195, 1.235, 1.307, 1.387, 1.462, 1.493,\n> +                    1.496, 1.475, 1.411, 1.337, 1.284, 1.219, 1.189, 1.176, 1.176, 1.195, 1.235, 1.296, 1.356, 1.429, 1.487, 1.501,\n> +                    1.495, 1.489, 1.458, 1.407, 1.337, 1.287, 1.253, 1.239, 1.239, 1.259, 1.296, 1.356, 1.419, 1.472, 1.499, 1.499,\n> +                    1.494, 1.489, 1.489, 1.453, 1.398, 1.336, 1.317, 1.317, 1.317, 1.321, 1.351, 1.416, 1.467, 1.501, 1.501, 1.499\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 3850, \"table\":\n> +                [\n> +                    1.694, 1.688, 1.688, 1.649, 1.588, 1.518, 1.495, 1.495, 1.495, 1.497, 1.532, 1.602, 1.659, 1.698, 1.698, 1.703,\n> +                    1.698, 1.688, 1.653, 1.597, 1.525, 1.464, 1.429, 1.413, 1.413, 1.437, 1.476, 1.542, 1.606, 1.665, 1.698, 1.703,\n> +                    1.697, 1.673, 1.605, 1.525, 1.464, 1.401, 1.369, 1.354, 1.354, 1.377, 1.417, 1.476, 1.542, 1.623, 1.687, 1.705,\n> +                    1.692, 1.646, 1.561, 1.472, 1.401, 1.368, 1.337, 1.323, 1.324, 1.348, 1.377, 1.417, 1.492, 1.583, 1.661, 1.697,\n> +                    1.686, 1.625, 1.528, 1.439, 1.372, 1.337, 1.321, 1.311, 1.316, 1.324, 1.348, 1.389, 1.461, 1.553, 1.642, 1.694,\n> +                    1.684, 1.613, 1.514, 1.423, 1.359, 1.328, 1.311, 1.306, 1.306, 1.316, 1.339, 1.378, 1.446, 1.541, 1.633, 1.693,\n> +                    1.684, 1.613, 1.514, 1.423, 1.359, 1.328, 1.311, 1.305, 1.305, 1.316, 1.339, 1.378, 1.446, 1.541, 1.633, 1.693,\n> +                    1.685, 1.624, 1.529, 1.438, 1.372, 1.336, 1.324, 1.309, 1.314, 1.323, 1.348, 1.392, 1.462, 1.555, 1.646, 1.694,\n> +                    1.692, 1.648, 1.561, 1.473, 1.403, 1.372, 1.336, 1.324, 1.324, 1.348, 1.378, 1.423, 1.495, 1.585, 1.667, 1.701,\n> +                    1.701, 1.677, 1.608, 1.527, 1.471, 1.403, 1.375, 1.359, 1.359, 1.378, 1.423, 1.488, 1.549, 1.631, 1.694, 1.709,\n> +                    1.702, 1.694, 1.656, 1.601, 1.527, 1.473, 1.441, 1.424, 1.424, 1.443, 1.488, 1.549, 1.621, 1.678, 1.706, 1.707,\n> +                    1.699, 1.694, 1.694, 1.654, 1.593, 1.525, 1.508, 1.508, 1.508, 1.509, 1.546, 1.614, 1.674, 1.708, 1.708, 1.707\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 6000, \"table\":\n> +                [\n> +                    2.179, 2.176, 2.176, 2.125, 2.048, 1.975, 1.955, 1.954, 1.954, 1.956, 1.993, 2.071, 2.141, 2.184, 2.185, 2.188,\n> +                    2.189, 2.176, 2.128, 2.063, 1.973, 1.908, 1.872, 1.856, 1.856, 1.876, 1.922, 1.999, 2.081, 2.144, 2.184, 2.192,\n> +                    2.187, 2.152, 2.068, 1.973, 1.907, 1.831, 1.797, 1.786, 1.786, 1.804, 1.853, 1.922, 1.999, 2.089, 2.166, 2.191,\n> +                    2.173, 2.117, 2.013, 1.908, 1.831, 1.791, 1.755, 1.749, 1.749, 1.767, 1.804, 1.853, 1.939, 2.041, 2.135, 2.181,\n> +                    2.166, 2.089, 1.975, 1.869, 1.792, 1.755, 1.741, 1.731, 1.734, 1.749, 1.767, 1.818, 1.903, 2.005, 2.111, 2.173,\n> +                    2.165, 2.074, 1.956, 1.849, 1.777, 1.742, 1.729, 1.725, 1.729, 1.734, 1.758, 1.804, 1.884, 1.991, 2.099, 2.172,\n> +                    2.165, 2.074, 1.956, 1.849, 1.777, 1.742, 1.727, 1.724, 1.725, 1.734, 1.758, 1.804, 1.884, 1.991, 2.099, 2.172,\n> +                    2.166, 2.085, 1.975, 1.869, 1.791, 1.755, 1.741, 1.729, 1.733, 1.749, 1.769, 1.819, 1.904, 2.009, 2.114, 2.174,\n> +                    2.174, 2.118, 2.015, 1.913, 1.831, 1.791, 1.755, 1.749, 1.749, 1.769, 1.811, 1.855, 1.943, 2.047, 2.139, 2.183,\n> +                    2.187, 2.151, 2.072, 1.979, 1.911, 1.831, 1.801, 1.791, 1.791, 1.811, 1.855, 1.933, 2.006, 2.101, 2.173, 2.197,\n> +                    2.189, 2.178, 2.132, 2.069, 1.979, 1.913, 1.879, 1.867, 1.867, 1.891, 1.933, 2.006, 2.091, 2.156, 2.195, 2.197,\n> +                    2.181, 2.179, 2.178, 2.131, 2.057, 1.981, 1.965, 1.965, 1.965, 1.969, 1.999, 2.083, 2.153, 2.197, 2.197, 2.196\n> +                ]\n> +            }\n> +        ],\n> +        \"calibrations_Cb\":\n> +        [\n> +            {\n> +                \"ct\": 3000, \"table\":\n> +                [\n> +                    1.967, 1.961, 1.955, 1.953, 1.954, 1.957, 1.961, 1.963, 1.963, 1.961, 1.959, 1.957, 1.954, 1.951, 1.951, 1.955,\n> +                    1.961, 1.959, 1.957, 1.956, 1.962, 1.967, 1.975, 1.979, 1.979, 1.975, 1.971, 1.967, 1.957, 1.952, 1.951, 1.951,\n> +                    1.959, 1.959, 1.959, 1.966, 1.976, 1.989, 1.999, 2.004, 2.003, 1.997, 1.991, 1.981, 1.967, 1.956, 1.951, 1.951,\n> +                    1.959, 1.962, 1.967, 1.978, 1.993, 2.009, 2.021, 2.028, 2.026, 2.021, 2.011, 1.995, 1.981, 1.964, 1.953, 1.951,\n> +                    1.961, 1.965, 1.977, 1.993, 2.009, 2.023, 2.041, 2.047, 2.047, 2.037, 2.024, 2.011, 1.995, 1.975, 1.958, 1.953,\n> +                    1.963, 1.968, 1.981, 2.001, 2.019, 2.039, 2.046, 2.052, 2.052, 2.051, 2.035, 2.021, 2.001, 1.978, 1.959, 1.955,\n> +                    1.961, 1.966, 1.981, 2.001, 2.019, 2.038, 2.043, 2.051, 2.052, 2.042, 2.034, 2.019, 2.001, 1.978, 1.959, 1.954,\n> +                    1.957, 1.961, 1.972, 1.989, 2.003, 2.021, 2.038, 2.039, 2.039, 2.034, 2.019, 2.004, 1.988, 1.971, 1.954, 1.949,\n> +                    1.952, 1.953, 1.959, 1.972, 1.989, 2.003, 2.016, 2.019, 2.019, 2.014, 2.003, 1.988, 1.971, 1.955, 1.948, 1.947,\n> +                    1.949, 1.948, 1.949, 1.957, 1.971, 1.978, 1.991, 1.994, 1.994, 1.989, 1.979, 1.967, 1.954, 1.946, 1.947, 1.947,\n> +                    1.949, 1.946, 1.944, 1.946, 1.949, 1.954, 1.962, 1.967, 1.967, 1.963, 1.956, 1.948, 1.943, 1.943, 1.946, 1.949,\n> +                    1.951, 1.946, 1.944, 1.942, 1.943, 1.943, 1.947, 1.948, 1.949, 1.947, 1.945, 1.941, 1.938, 1.939, 1.948, 1.952\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 3850, \"table\":\n> +                [\n> +                    1.726, 1.724, 1.722, 1.723, 1.731, 1.735, 1.743, 1.746, 1.746, 1.741, 1.735, 1.729, 1.725, 1.721, 1.721, 1.721,\n> +                    1.724, 1.723, 1.723, 1.727, 1.735, 1.744, 1.749, 1.756, 1.756, 1.749, 1.744, 1.735, 1.727, 1.719, 1.719, 1.719,\n> +                    1.723, 1.723, 1.724, 1.735, 1.746, 1.759, 1.767, 1.775, 1.775, 1.766, 1.758, 1.746, 1.735, 1.723, 1.718, 1.716,\n> +                    1.723, 1.725, 1.732, 1.746, 1.759, 1.775, 1.782, 1.792, 1.792, 1.782, 1.772, 1.759, 1.745, 1.729, 1.718, 1.716,\n> +                    1.725, 1.729, 1.738, 1.756, 1.775, 1.785, 1.796, 1.803, 1.804, 1.794, 1.783, 1.772, 1.757, 1.736, 1.722, 1.718,\n> +                    1.728, 1.731, 1.741, 1.759, 1.781, 1.795, 1.803, 1.806, 1.808, 1.805, 1.791, 1.779, 1.762, 1.739, 1.722, 1.721,\n> +                    1.727, 1.731, 1.741, 1.759, 1.781, 1.791, 1.799, 1.804, 1.806, 1.801, 1.791, 1.779, 1.762, 1.739, 1.722, 1.717,\n> +                    1.722, 1.724, 1.733, 1.751, 1.768, 1.781, 1.791, 1.796, 1.799, 1.791, 1.781, 1.766, 1.754, 1.731, 1.717, 1.714,\n> +                    1.718, 1.718, 1.724, 1.737, 1.752, 1.768, 1.776, 1.782, 1.784, 1.781, 1.766, 1.754, 1.737, 1.724, 1.713, 1.709,\n> +                    1.716, 1.715, 1.716, 1.725, 1.737, 1.749, 1.756, 1.763, 1.764, 1.762, 1.749, 1.737, 1.724, 1.717, 1.709, 1.708,\n> +                    1.715, 1.714, 1.712, 1.715, 1.722, 1.729, 1.736, 1.741, 1.742, 1.739, 1.731, 1.723, 1.717, 1.712, 1.711, 1.709,\n> +                    1.716, 1.714, 1.711, 1.712, 1.715, 1.719, 1.723, 1.728, 1.731, 1.729, 1.723, 1.718, 1.711, 1.711, 1.713, 1.713\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 6000, \"table\":\n> +                [\n> +                    1.374, 1.372, 1.373, 1.374, 1.375, 1.378, 1.378, 1.381, 1.382, 1.382, 1.378, 1.373, 1.372, 1.369, 1.365, 1.365,\n> +                    1.371, 1.371, 1.372, 1.374, 1.378, 1.381, 1.384, 1.386, 1.388, 1.387, 1.384, 1.377, 1.372, 1.368, 1.364, 1.362,\n> +                    1.369, 1.371, 1.372, 1.377, 1.383, 1.391, 1.394, 1.396, 1.397, 1.395, 1.391, 1.382, 1.374, 1.369, 1.362, 1.361,\n> +                    1.369, 1.371, 1.375, 1.383, 1.391, 1.399, 1.402, 1.404, 1.405, 1.403, 1.398, 1.391, 1.379, 1.371, 1.363, 1.361,\n> +                    1.371, 1.373, 1.378, 1.388, 1.399, 1.407, 1.411, 1.413, 1.413, 1.411, 1.405, 1.397, 1.385, 1.374, 1.366, 1.362,\n> +                    1.371, 1.374, 1.379, 1.389, 1.405, 1.411, 1.414, 1.414, 1.415, 1.415, 1.411, 1.401, 1.388, 1.376, 1.367, 1.363,\n> +                    1.371, 1.373, 1.379, 1.389, 1.405, 1.408, 1.413, 1.414, 1.414, 1.413, 1.409, 1.401, 1.388, 1.376, 1.367, 1.362,\n> +                    1.366, 1.369, 1.374, 1.384, 1.396, 1.404, 1.407, 1.408, 1.408, 1.408, 1.401, 1.395, 1.382, 1.371, 1.363, 1.359,\n> +                    1.364, 1.365, 1.368, 1.375, 1.386, 1.396, 1.399, 1.401, 1.399, 1.399, 1.395, 1.385, 1.374, 1.365, 1.359, 1.357,\n> +                    1.361, 1.363, 1.365, 1.368, 1.377, 1.384, 1.388, 1.391, 1.391, 1.388, 1.385, 1.375, 1.366, 1.361, 1.358, 1.356,\n> +                    1.361, 1.362, 1.362, 1.364, 1.367, 1.373, 1.376, 1.377, 1.377, 1.375, 1.373, 1.366, 1.362, 1.358, 1.358, 1.358,\n> +                    1.361, 1.362, 1.362, 1.362, 1.363, 1.367, 1.369, 1.368, 1.367, 1.367, 1.367, 1.364, 1.358, 1.357, 1.358, 1.359\n> +                ]\n> +            }\n> +        ],\n> +        \"luminance_lut\":\n> +        [\n> +            2.716, 2.568, 2.299, 2.065, 1.845, 1.693, 1.605, 1.597, 1.596, 1.634, 1.738, 1.914, 2.145, 2.394, 2.719, 2.901,\n> +            2.593, 2.357, 2.093, 1.876, 1.672, 1.528, 1.438, 1.393, 1.394, 1.459, 1.569, 1.731, 1.948, 2.169, 2.481, 2.756,\n> +            2.439, 2.197, 1.922, 1.691, 1.521, 1.365, 1.266, 1.222, 1.224, 1.286, 1.395, 1.573, 1.747, 1.988, 2.299, 2.563,\n> +            2.363, 2.081, 1.797, 1.563, 1.376, 1.244, 1.152, 1.099, 1.101, 1.158, 1.276, 1.421, 1.607, 1.851, 2.163, 2.455,\n> +            2.342, 2.003, 1.715, 1.477, 1.282, 1.152, 1.074, 1.033, 1.035, 1.083, 1.163, 1.319, 1.516, 1.759, 2.064, 2.398,\n> +            2.342, 1.985, 1.691, 1.446, 1.249, 1.111, 1.034, 1.004, 1.004, 1.028, 1.114, 1.274, 1.472, 1.716, 2.019, 2.389,\n> +            2.342, 1.991, 1.691, 1.446, 1.249, 1.112, 1.034, 1.011, 1.005, 1.035, 1.114, 1.274, 1.472, 1.716, 2.019, 2.389,\n> +            2.365, 2.052, 1.751, 1.499, 1.299, 1.171, 1.089, 1.039, 1.042, 1.084, 1.162, 1.312, 1.516, 1.761, 2.059, 2.393,\n> +            2.434, 2.159, 1.856, 1.601, 1.403, 1.278, 1.166, 1.114, 1.114, 1.162, 1.266, 1.402, 1.608, 1.847, 2.146, 2.435,\n> +            2.554, 2.306, 2.002, 1.748, 1.563, 1.396, 1.299, 1.247, 1.243, 1.279, 1.386, 1.551, 1.746, 1.977, 2.272, 2.518,\n> +            2.756, 2.493, 2.195, 1.947, 1.739, 1.574, 1.481, 1.429, 1.421, 1.457, 1.559, 1.704, 1.929, 2.159, 2.442, 2.681,\n> +            2.935, 2.739, 2.411, 2.151, 1.922, 1.749, 1.663, 1.628, 1.625, 1.635, 1.716, 1.872, 2.113, 2.368, 2.663, 2.824\n> +        ],\n> +        \"sigma\": 0.00381,\n> +        \"sigma_Cb\": 0.00216\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\": 2498, \"ccm\":\n> +                [\n> +                    1.58731, -0.18011, -0.40721, -0.60639, 2.03422, -0.42782, -0.19612, -1.69203, 2.88815\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 2811, \"ccm\":\n> +                [\n> +                    1.61593, -0.33164, -0.28429, -0.55048, 1.97779, -0.42731, -0.12042, -1.42847, 2.54889\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 2911, \"ccm\":\n> +                [\n> +                    1.62771, -0.41282, -0.21489, -0.57991, 2.04176, -0.46186, -0.07613, -1.13359, 2.20972\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 2919, \"ccm\":\n> +                [\n> +                    1.62661, -0.37736, -0.24925, -0.52519, 1.95233, -0.42714, -0.10842, -1.34929, 2.45771\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 3627, \"ccm\":\n> +                [\n> +                    1.70385, -0.57231, -0.13154, -0.47763, 1.85998, -0.38235, -0.07467, -0.82678, 1.90145\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 4600, \"ccm\":\n> +                [\n> +                    1.68486, -0.61085, -0.07402, -0.41927, 2.04016, -0.62089, -0.08633, -0.67672, 1.76305\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 5716, \"ccm\":\n> +                [\n> +                    1.80439, -0.73699, -0.06739, -0.36073, 1.83327, -0.47255, -0.08378, -0.56403, 1.64781\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 8575, \"ccm\":\n> +                [\n> +                    1.89357, -0.76427, -0.12931, -0.27399, 2.15605, -0.88206, -0.12035, -0.68256, 1.80292\n> +                ]\n> +            }\n> +        ]\n> +    },\n> +    \"rpi.sharpen\":\n> +    {\n> +\n> +    },\n> +    \"rpi.dpc\":\n> +    {\n> +\n> +    }\n> +}\n> diff --git a/src/ipa/raspberrypi/data/imx477_noir.json b/src/ipa/raspberrypi/data/imx477_noir.json\n> new file mode 100644\n> index 00000000..290e8264\n> --- /dev/null\n> +++ b/src/ipa/raspberrypi/data/imx477_noir.json\n> @@ -0,0 +1,362 @@\n> +{\n> +    \"rpi.black_level\":\n> +    {\n> +        \"black_level\": 4096\n> +    },\n> +    \"rpi.dpc\":\n> +    {\n> +\n> +    },\n> +    \"rpi.lux\":\n> +    {\n> +        \"reference_shutter_speed\": 27242,\n> +        \"reference_gain\": 1.0,\n> +        \"reference_aperture\": 1.0,\n> +        \"reference_lux\": 830,\n> +        \"reference_Y\": 17755\n> +    },\n> +    \"rpi.noise\":\n> +    {\n> +        \"reference_constant\": 0,\n> +        \"reference_slope\": 2.767\n> +    },\n> +    \"rpi.geq\":\n> +    {\n> +        \"offset\": 204,\n> +        \"slope\": 0.01078\n> +    },\n> +    \"rpi.sdn\":\n> +    {\n> +\n> +    },\n> +    \"rpi.awb\":\n> +    {\n> +\t\"bayes\": 0\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, 66666\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, 33333\n> +                ],\n> +                \"gain\":\n> +                [\n> +                    1.0, 2.0, 4.0, 6.0, 6.0\n> +                ]\n> +            },\n> +            \"long\":\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> +        },\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.3, 1000, 0.3\n> +                    ]\n> +                }\n> +            ],\n> +            \"highlight\":\n> +            [\n> +                {\n> +                    \"bound\": \"LOWER\", \"q_lo\": 0.98, \"q_hi\": 1.0, \"y_target\":\n> +                    [\n> +                        0, 0.3, 1000, 0.3\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> +\t    \"shadows\":\n> +\t    [\n> +\t\t{\n> +\t\t    \"bound\": \"LOWER\", \"q_lo\": 0.0, \"q_hi\": 0.5, \"y_target\":\n> +                    [\n> +                        0, 0.17, 1000, 0.17\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\": 2960, \"table\":\n> +                [\n> +                    2.088, 2.086, 2.082, 2.081, 2.077, 2.071, 2.068, 2.068, 2.072, 2.073, 2.075, 2.078, 2.084, 2.092, 2.095, 2.098,\n> +                    2.086, 2.084, 2.079, 2.078, 2.075, 2.068, 2.064, 2.063, 2.068, 2.071, 2.072, 2.075, 2.081, 2.089, 2.092, 2.094,\n> +                    2.083, 2.081, 2.077, 2.072, 2.069, 2.062, 2.059, 2.059, 2.063, 2.067, 2.069, 2.072, 2.079, 2.088, 2.089, 2.089,\n> +                    2.081, 2.077, 2.072, 2.068, 2.065, 2.058, 2.055, 2.054, 2.057, 2.062, 2.066, 2.069, 2.077, 2.084, 2.086, 2.086,\n> +                    2.078, 2.075, 2.069, 2.065, 2.061, 2.055, 2.052, 2.049, 2.051, 2.056, 2.062, 2.065, 2.072, 2.079, 2.081, 2.079,\n> +                    2.079, 2.075, 2.069, 2.064, 2.061, 2.053, 2.049, 2.046, 2.049, 2.051, 2.057, 2.062, 2.069, 2.075, 2.077, 2.075,\n> +                    2.082, 2.079, 2.072, 2.065, 2.061, 2.054, 2.049, 2.047, 2.049, 2.051, 2.056, 2.061, 2.066, 2.073, 2.073, 2.069,\n> +                    2.086, 2.082, 2.075, 2.068, 2.062, 2.054, 2.051, 2.049, 2.051, 2.052, 2.056, 2.061, 2.066, 2.073, 2.073, 2.072,\n> +                    2.088, 2.086, 2.079, 2.074, 2.066, 2.057, 2.051, 2.051, 2.054, 2.055, 2.056, 2.061, 2.067, 2.072, 2.073, 2.072,\n> +                    2.091, 2.087, 2.079, 2.075, 2.068, 2.057, 2.052, 2.052, 2.056, 2.055, 2.055, 2.059, 2.066, 2.072, 2.072, 2.072,\n> +                    2.093, 2.088, 2.081, 2.077, 2.069, 2.059, 2.054, 2.054, 2.057, 2.056, 2.056, 2.058, 2.066, 2.072, 2.073, 2.073,\n> +                    2.095, 2.091, 2.084, 2.078, 2.075, 2.067, 2.057, 2.057, 2.059, 2.059, 2.058, 2.059, 2.068, 2.073, 2.075, 2.078\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 4850, \"table\":\n> +                [\n> +                    2.973, 2.968, 2.956, 2.943, 2.941, 2.932, 2.923, 2.921, 2.924, 2.929, 2.931, 2.939, 2.953, 2.965, 2.966, 2.976,\n> +                    2.969, 2.962, 2.951, 2.941, 2.934, 2.928, 2.919, 2.918, 2.919, 2.923, 2.927, 2.933, 2.945, 2.957, 2.962, 2.962,\n> +                    2.964, 2.956, 2.944, 2.932, 2.929, 2.924, 2.915, 2.914, 2.915, 2.919, 2.924, 2.928, 2.941, 2.952, 2.958, 2.959,\n> +                    2.957, 2.951, 2.939, 2.928, 2.924, 2.919, 2.913, 2.911, 2.911, 2.915, 2.919, 2.925, 2.936, 2.947, 2.952, 2.953,\n> +                    2.954, 2.947, 2.935, 2.924, 2.919, 2.915, 2.908, 2.906, 2.906, 2.907, 2.914, 2.921, 2.932, 2.941, 2.943, 2.942,\n> +                    2.953, 2.946, 2.932, 2.921, 2.916, 2.911, 2.904, 2.902, 2.901, 2.904, 2.909, 2.919, 2.926, 2.937, 2.939, 2.939,\n> +                    2.953, 2.947, 2.932, 2.918, 2.915, 2.909, 2.903, 2.901, 2.901, 2.906, 2.911, 2.918, 2.924, 2.936, 2.936, 2.932,\n> +                    2.956, 2.948, 2.934, 2.919, 2.916, 2.908, 2.903, 2.901, 2.902, 2.907, 2.909, 2.917, 2.926, 2.936, 2.939, 2.939,\n> +                    2.957, 2.951, 2.936, 2.923, 2.917, 2.907, 2.904, 2.901, 2.902, 2.908, 2.911, 2.919, 2.929, 2.939, 2.942, 2.942,\n> +                    2.961, 2.951, 2.936, 2.922, 2.918, 2.906, 2.904, 2.901, 2.901, 2.907, 2.911, 2.921, 2.931, 2.941, 2.942, 2.944,\n> +                    2.964, 2.954, 2.936, 2.924, 2.918, 2.909, 2.905, 2.905, 2.905, 2.907, 2.912, 2.923, 2.933, 2.942, 2.944, 2.944,\n> +                    2.964, 2.958, 2.943, 2.927, 2.921, 2.914, 2.909, 2.907, 2.907, 2.912, 2.916, 2.928, 2.936, 2.944, 2.947, 2.952\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 5930, \"table\":\n> +                [\n> +                    3.312, 3.308, 3.301, 3.294, 3.288, 3.277, 3.268, 3.261, 3.259, 3.261, 3.267, 3.273, 3.285, 3.301, 3.303, 3.312,\n> +                    3.308, 3.304, 3.294, 3.291, 3.283, 3.271, 3.263, 3.259, 3.257, 3.258, 3.261, 3.268, 3.278, 3.293, 3.299, 3.299,\n> +                    3.302, 3.296, 3.288, 3.282, 3.276, 3.267, 3.259, 3.254, 3.252, 3.253, 3.256, 3.261, 3.273, 3.289, 3.292, 3.292,\n> +                    3.296, 3.289, 3.282, 3.276, 3.269, 3.263, 3.256, 3.251, 3.248, 3.249, 3.251, 3.257, 3.268, 3.279, 3.284, 3.284,\n> +                    3.292, 3.285, 3.279, 3.271, 3.264, 3.257, 3.249, 3.243, 3.241, 3.241, 3.246, 3.252, 3.261, 3.274, 3.275, 3.273,\n> +                    3.291, 3.285, 3.276, 3.268, 3.259, 3.251, 3.242, 3.239, 3.236, 3.238, 3.244, 3.248, 3.258, 3.268, 3.269, 3.265,\n> +                    3.294, 3.288, 3.275, 3.266, 3.257, 3.248, 3.239, 3.238, 3.237, 3.238, 3.243, 3.246, 3.255, 3.264, 3.264, 3.257,\n> +                    3.297, 3.293, 3.279, 3.268, 3.258, 3.249, 3.238, 3.237, 3.239, 3.239, 3.243, 3.245, 3.255, 3.264, 3.264, 3.263,\n> +                    3.301, 3.295, 3.281, 3.271, 3.259, 3.248, 3.237, 3.237, 3.239, 3.241, 3.243, 3.246, 3.257, 3.265, 3.266, 3.264,\n> +                    3.306, 3.295, 3.279, 3.271, 3.261, 3.247, 3.235, 3.234, 3.239, 3.239, 3.243, 3.247, 3.258, 3.265, 3.265, 3.264,\n> +                    3.308, 3.297, 3.279, 3.272, 3.261, 3.249, 3.239, 3.239, 3.241, 3.243, 3.245, 3.248, 3.261, 3.265, 3.266, 3.265,\n> +                    3.309, 3.301, 3.286, 3.276, 3.267, 3.256, 3.246, 3.242, 3.244, 3.244, 3.249, 3.253, 3.263, 3.267, 3.271, 3.274\n> +                ]\n> +            }\n> +        ],\n> +        \"calibrations_Cb\":\n> +        [\n> +            {\n> +                \"ct\": 2960, \"table\":\n> +                [\n> +                    2.133, 2.134, 2.139, 2.143, 2.148, 2.155, 2.158, 2.158, 2.158, 2.161, 2.161, 2.162, 2.159, 2.156, 2.152, 2.151,\n> +                    2.132, 2.133, 2.135, 2.142, 2.147, 2.153, 2.158, 2.158, 2.158, 2.158, 2.159, 2.159, 2.157, 2.154, 2.151, 2.148,\n> +                    2.133, 2.133, 2.135, 2.142, 2.149, 2.154, 2.158, 2.158, 2.157, 2.156, 2.158, 2.157, 2.155, 2.153, 2.148, 2.146,\n> +                    2.133, 2.133, 2.138, 2.145, 2.149, 2.154, 2.158, 2.159, 2.158, 2.155, 2.157, 2.156, 2.153, 2.149, 2.146, 2.144,\n> +                    2.133, 2.134, 2.139, 2.146, 2.149, 2.154, 2.158, 2.159, 2.159, 2.156, 2.154, 2.154, 2.149, 2.145, 2.143, 2.139,\n> +                    2.135, 2.135, 2.139, 2.146, 2.151, 2.155, 2.158, 2.159, 2.158, 2.156, 2.153, 2.151, 2.146, 2.143, 2.139, 2.136,\n> +                    2.135, 2.135, 2.138, 2.145, 2.151, 2.154, 2.157, 2.158, 2.157, 2.156, 2.153, 2.151, 2.147, 2.143, 2.141, 2.137,\n> +                    2.135, 2.134, 2.135, 2.141, 2.149, 2.154, 2.157, 2.157, 2.157, 2.157, 2.157, 2.153, 2.149, 2.146, 2.142, 2.139,\n> +                    2.132, 2.133, 2.135, 2.139, 2.148, 2.153, 2.158, 2.159, 2.159, 2.161, 2.161, 2.157, 2.154, 2.149, 2.144, 2.141,\n> +                    2.132, 2.133, 2.135, 2.141, 2.149, 2.155, 2.161, 2.161, 2.162, 2.162, 2.163, 2.159, 2.154, 2.149, 2.144, 2.138,\n> +                    2.136, 2.136, 2.137, 2.143, 2.149, 2.156, 2.162, 2.163, 2.162, 2.163, 2.164, 2.161, 2.157, 2.152, 2.146, 2.138,\n> +                    2.137, 2.137, 2.141, 2.147, 2.152, 2.157, 2.162, 2.162, 2.159, 2.161, 2.162, 2.162, 2.157, 2.152, 2.148, 2.148\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 4850, \"table\":\n> +                [\n> +                    1.463, 1.464, 1.471, 1.478, 1.479, 1.483, 1.484, 1.486, 1.486, 1.484, 1.483, 1.481, 1.478, 1.475, 1.471, 1.468,\n> +                    1.463, 1.463, 1.468, 1.476, 1.479, 1.482, 1.484, 1.487, 1.486, 1.484, 1.483, 1.482, 1.478, 1.473, 1.469, 1.468,\n> +                    1.463, 1.464, 1.468, 1.476, 1.479, 1.483, 1.484, 1.486, 1.486, 1.485, 1.484, 1.482, 1.477, 1.473, 1.469, 1.468,\n> +                    1.463, 1.464, 1.469, 1.477, 1.481, 1.483, 1.485, 1.487, 1.487, 1.485, 1.485, 1.482, 1.478, 1.474, 1.469, 1.468,\n> +                    1.465, 1.465, 1.471, 1.478, 1.481, 1.484, 1.486, 1.488, 1.488, 1.487, 1.485, 1.482, 1.477, 1.472, 1.468, 1.467,\n> +                    1.465, 1.466, 1.472, 1.479, 1.482, 1.485, 1.486, 1.488, 1.488, 1.486, 1.484, 1.479, 1.475, 1.472, 1.468, 1.466,\n> +                    1.466, 1.466, 1.472, 1.478, 1.482, 1.484, 1.485, 1.488, 1.487, 1.485, 1.483, 1.479, 1.475, 1.472, 1.469, 1.468,\n> +                    1.465, 1.466, 1.469, 1.476, 1.481, 1.485, 1.485, 1.486, 1.486, 1.485, 1.483, 1.479, 1.477, 1.474, 1.471, 1.469,\n> +                    1.464, 1.465, 1.469, 1.476, 1.481, 1.484, 1.485, 1.487, 1.487, 1.486, 1.485, 1.481, 1.478, 1.475, 1.471, 1.469,\n> +                    1.463, 1.464, 1.469, 1.477, 1.481, 1.485, 1.485, 1.488, 1.488, 1.487, 1.486, 1.481, 1.478, 1.475, 1.471, 1.468,\n> +                    1.464, 1.465, 1.471, 1.478, 1.482, 1.486, 1.486, 1.488, 1.488, 1.487, 1.486, 1.481, 1.478, 1.475, 1.472, 1.468,\n> +                    1.465, 1.466, 1.472, 1.481, 1.483, 1.487, 1.487, 1.488, 1.488, 1.486, 1.485, 1.481, 1.479, 1.476, 1.473, 1.472\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 5930, \"table\":\n> +                [\n> +                    1.443, 1.444, 1.448, 1.453, 1.459, 1.463, 1.465, 1.467, 1.469, 1.469, 1.467, 1.466, 1.462, 1.457, 1.454, 1.451,\n> +                    1.443, 1.444, 1.445, 1.451, 1.459, 1.463, 1.465, 1.467, 1.469, 1.469, 1.467, 1.465, 1.461, 1.456, 1.452, 1.451,\n> +                    1.444, 1.444, 1.445, 1.451, 1.459, 1.463, 1.466, 1.468, 1.469, 1.469, 1.467, 1.465, 1.461, 1.456, 1.452, 1.449,\n> +                    1.444, 1.444, 1.447, 1.452, 1.459, 1.464, 1.467, 1.469, 1.471, 1.469, 1.467, 1.466, 1.461, 1.456, 1.452, 1.449,\n> +                    1.444, 1.445, 1.448, 1.452, 1.459, 1.465, 1.469, 1.471, 1.471, 1.471, 1.468, 1.465, 1.461, 1.455, 1.451, 1.449,\n> +                    1.445, 1.446, 1.449, 1.453, 1.461, 1.466, 1.469, 1.471, 1.472, 1.469, 1.467, 1.465, 1.459, 1.455, 1.451, 1.447,\n> +                    1.446, 1.446, 1.449, 1.453, 1.461, 1.466, 1.469, 1.469, 1.469, 1.469, 1.467, 1.465, 1.459, 1.455, 1.452, 1.449,\n> +                    1.446, 1.446, 1.447, 1.451, 1.459, 1.466, 1.469, 1.469, 1.469, 1.469, 1.467, 1.465, 1.461, 1.457, 1.454, 1.451,\n> +                    1.444, 1.444, 1.447, 1.451, 1.459, 1.466, 1.469, 1.469, 1.471, 1.471, 1.468, 1.466, 1.462, 1.458, 1.454, 1.452,\n> +                    1.444, 1.444, 1.448, 1.453, 1.459, 1.466, 1.469, 1.471, 1.472, 1.472, 1.468, 1.466, 1.462, 1.458, 1.454, 1.449,\n> +                    1.446, 1.447, 1.449, 1.454, 1.461, 1.466, 1.471, 1.471, 1.471, 1.471, 1.468, 1.466, 1.462, 1.459, 1.455, 1.449,\n> +                    1.447, 1.447, 1.452, 1.457, 1.462, 1.468, 1.472, 1.472, 1.471, 1.471, 1.468, 1.466, 1.462, 1.459, 1.456, 1.455\n> +                ]\n> +            }\n> +        ],\n> +        \"luminance_lut\":\n> +        [\n> +            1.548, 1.499, 1.387, 1.289, 1.223, 1.183, 1.164, 1.154, 1.153, 1.169, 1.211, 1.265, 1.345, 1.448, 1.581, 1.619,\n> +            1.513, 1.412, 1.307, 1.228, 1.169, 1.129, 1.105, 1.098, 1.103, 1.127, 1.157, 1.209, 1.272, 1.361, 1.481, 1.583,\n> +            1.449, 1.365, 1.257, 1.175, 1.124, 1.085, 1.062, 1.054, 1.059, 1.079, 1.113, 1.151, 1.211, 1.293, 1.407, 1.488,\n> +            1.424, 1.324, 1.222, 1.139, 1.089, 1.056, 1.034, 1.031, 1.034, 1.049, 1.075, 1.115, 1.164, 1.241, 1.351, 1.446,\n> +            1.412, 1.297, 1.203, 1.119, 1.069, 1.039, 1.021, 1.016, 1.022, 1.032, 1.052, 1.086, 1.135, 1.212, 1.321, 1.439,\n> +            1.406, 1.287, 1.195, 1.115, 1.059, 1.028, 1.014, 1.012, 1.015, 1.026, 1.041, 1.074, 1.125, 1.201, 1.302, 1.425,\n> +            1.406, 1.294, 1.205, 1.126, 1.062, 1.031, 1.013, 1.009, 1.011, 1.019, 1.042, 1.079, 1.129, 1.203, 1.302, 1.435,\n> +            1.415, 1.318, 1.229, 1.146, 1.076, 1.039, 1.019, 1.014, 1.017, 1.031, 1.053, 1.093, 1.144, 1.219, 1.314, 1.436,\n> +            1.435, 1.348, 1.246, 1.164, 1.094, 1.059, 1.036, 1.032, 1.037, 1.049, 1.072, 1.114, 1.167, 1.257, 1.343, 1.462,\n> +            1.471, 1.385, 1.278, 1.189, 1.124, 1.084, 1.064, 1.061, 1.069, 1.078, 1.101, 1.146, 1.207, 1.298, 1.415, 1.496,\n> +            1.522, 1.436, 1.323, 1.228, 1.169, 1.118, 1.101, 1.094, 1.099, 1.113, 1.146, 1.194, 1.265, 1.353, 1.474, 1.571,\n> +            1.578, 1.506, 1.378, 1.281, 1.211, 1.156, 1.135, 1.134, 1.139, 1.158, 1.194, 1.251, 1.327, 1.427, 1.559, 1.611\n> +        ],\n> +        \"sigma\": 0.00121,\n> +        \"sigma_Cb\": 0.00115\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\": 2360, \"ccm\":\n> +                [\n> +                    1.66078, -0.23588, -0.42491, -0.47456, 1.82763, -0.35307, -0.00545, -1.44729, 2.45273\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 2870, \"ccm\":\n> +                [\n> +                    1.78373, -0.55344, -0.23029, -0.39951, 1.69701, -0.29751, 0.01986, -1.06525, 2.04539\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 2970, \"ccm\":\n> +                [\n> +                    1.73511, -0.56973, -0.16537, -0.36338, 1.69878, -0.33539, -0.02354, -0.76813, 1.79168\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 3000, \"ccm\":\n> +                [\n> +                    2.06374, -0.92218, -0.14156, -0.41721, 1.69289, -0.27568, -0.00554, -0.92741, 1.93295\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 3700, \"ccm\":\n> +                [\n> +                    2.13792, -1.08136, -0.05655, -0.34739, 1.58989, -0.24249, -0.00349, -0.76789, 1.77138\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 3870, \"ccm\":\n> +                [\n> +                    1.83834, -0.70528, -0.13307, -0.30499, 1.60523, -0.30024, -0.05701, -0.58313, 1.64014\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 4000, \"ccm\":\n> +                [\n> +                    2.15741, -1.10295, -0.05447, -0.34631, 1.61158, -0.26528, -0.02723, -0.70288, 1.73011\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 4400, \"ccm\":\n> +                [\n> +                    2.05729, -0.95007, -0.10723, -0.41712, 1.78606, -0.36894, -0.11899, -0.55727, 1.67626\n> +                ]\n> +            },\n> +\n> +            {\n> +                \"ct\": 4715, \"ccm\":\n> +                [\n> +                    1.90255, -0.77478, -0.12777, -0.31338, 1.88197, -0.56858, -0.06001, -0.61785, 1.67786\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 5920, \"ccm\":\n> +                [\n> +                    1.98691, -0.84671, -0.14019, -0.26581, 1.70615, -0.44035, -0.09532, -0.47332, 1.56864\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 9050, \"ccm\":\n> +                [\n> +                    2.09255, -0.76541, -0.32714, -0.28973, 2.27462, -0.98489, -0.17299, -0.61275, 1.78574\n> +                ]\n> +            }\n> +        ]\n> +    },\n> +    \"rpi.sharpen\":\n> +    {\n> +\n> +    },\n> +    \"rpi.focus\":\n> +    {\n> +    }\n> +}\n> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> index 68433fc2..2def75cb 100644\n> --- a/src/ipa/raspberrypi/data/meson.build\n> +++ b/src/ipa/raspberrypi/data/meson.build\n> @@ -2,10 +2,13 @@\n>  \n>  conf_files = files([\n>      'imx219.json',\n> +    'imx219_noir.json',\n>      'imx290.json',\n>      'imx378.json',\n>      'imx477.json',\n> +    'imx477_noir.json',\n>      'ov5647.json',\n> +    'ov5647_noir.json',\n>      'ov9281.json',\n>      'se327m12.json',\n>      'uncalibrated.json',\n> diff --git a/src/ipa/raspberrypi/data/ov5647_noir.json b/src/ipa/raspberrypi/data/ov5647_noir.json\n> new file mode 100644\n> index 00000000..c4bb21a0\n> --- /dev/null\n> +++ b/src/ipa/raspberrypi/data/ov5647_noir.json\n> @@ -0,0 +1,341 @@\n> +{\n> +    \"rpi.black_level\":\n> +    {\n> +        \"black_level\": 1024\n> +    },\n> +    \"rpi.dpc\":\n> +    {\n> +\n> +    },\n> +    \"rpi.lux\":\n> +    {\n> +        \"reference_shutter_speed\": 21663,\n> +        \"reference_gain\": 1.0,\n> +        \"reference_aperture\": 1.0,\n> +        \"reference_lux\": 987,\n> +        \"reference_Y\": 8961\n> +    },\n> +    \"rpi.noise\":\n> +    {\n> +        \"reference_constant\": 0,\n> +        \"reference_slope\": 4.25\n> +    },\n> +    \"rpi.geq\":\n> +    {\n> +        \"offset\": 401,\n> +        \"slope\": 0.05619\n> +    },\n> +    \"rpi.sdn\":\n> +    {\n> +\n> +    },\n> +    \"rpi.awb\":\n> +    {\n> +\t\"bayes\": 0\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, 66666\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, 33333\n> +                ],\n> +                \"gain\":\n> +                [\n> +                    1.0, 2.0, 4.0, 6.0, 6.0\n> +                ]\n> +            },\n> +            \"long\":\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> +        },\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> +\t    \"shadows\":\n> +\t    [\n> +\t\t{\n> +\t\t    \"bound\": \"LOWER\", \"q_lo\": 0.0, \"q_hi\": 0.5, \"y_target\":\n> +                    [\n> +                        0, 0.17, 1000, 0.17\n> +                    ]\n> +                }\n> +            ]\n> +        },\n> +        \"y_target\":\n> +        [\n> +            0, 0.16, 1000, 0.165, 10000, 0.17\n> +        ],\n> +\t\"base_ev\": 1.25\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\": 3000, \"table\":\n> +                [\n> +                    1.105, 1.103, 1.093, 1.083, 1.071, 1.065, 1.065, 1.065, 1.066, 1.069, 1.072, 1.077, 1.084, 1.089, 1.093, 1.093,\n> +                    1.103, 1.096, 1.084, 1.072, 1.059, 1.051, 1.047, 1.047, 1.051, 1.053, 1.059, 1.067, 1.075, 1.082, 1.085, 1.086,\n> +                    1.096, 1.084, 1.072, 1.059, 1.051, 1.045, 1.039, 1.038, 1.039, 1.045, 1.049, 1.057, 1.063, 1.072, 1.081, 1.082,\n> +                    1.092, 1.075, 1.061, 1.052, 1.045, 1.039, 1.036, 1.035, 1.035, 1.039, 1.044, 1.049, 1.056, 1.063, 1.072, 1.081,\n> +                    1.092, 1.073, 1.058, 1.048, 1.043, 1.038, 1.035, 1.033, 1.033, 1.035, 1.039, 1.044, 1.051, 1.057, 1.069, 1.078,\n> +                    1.091, 1.068, 1.054, 1.045, 1.041, 1.038, 1.035, 1.032, 1.032, 1.032, 1.036, 1.041, 1.045, 1.055, 1.069, 1.078,\n> +                    1.091, 1.068, 1.052, 1.043, 1.041, 1.038, 1.035, 1.032, 1.031, 1.032, 1.034, 1.036, 1.043, 1.055, 1.069, 1.078,\n> +                    1.092, 1.068, 1.052, 1.047, 1.042, 1.041, 1.038, 1.035, 1.032, 1.032, 1.035, 1.039, 1.043, 1.055, 1.071, 1.079,\n> +                    1.092, 1.073, 1.057, 1.051, 1.047, 1.047, 1.044, 1.041, 1.038, 1.038, 1.039, 1.043, 1.051, 1.059, 1.076, 1.083,\n> +                    1.092, 1.081, 1.068, 1.058, 1.056, 1.056, 1.053, 1.052, 1.049, 1.048, 1.048, 1.051, 1.059, 1.066, 1.083, 1.085,\n> +                    1.091, 1.087, 1.081, 1.068, 1.065, 1.064, 1.062, 1.062, 1.061, 1.056, 1.056, 1.056, 1.064, 1.069, 1.084, 1.089,\n> +                    1.091, 1.089, 1.085, 1.079, 1.069, 1.068, 1.067, 1.067, 1.067, 1.063, 1.061, 1.063, 1.068, 1.069, 1.081, 1.092\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 5000, \"table\":\n> +                [\n> +                    1.486, 1.484, 1.468, 1.449, 1.427, 1.403, 1.399, 1.399, 1.399, 1.404, 1.413, 1.433, 1.454, 1.473, 1.482, 1.488,\n> +                    1.484, 1.472, 1.454, 1.431, 1.405, 1.381, 1.365, 1.365, 1.367, 1.373, 1.392, 1.411, 1.438, 1.458, 1.476, 1.481,\n> +                    1.476, 1.458, 1.433, 1.405, 1.381, 1.361, 1.339, 1.334, 1.334, 1.346, 1.362, 1.391, 1.411, 1.438, 1.462, 1.474,\n> +                    1.471, 1.443, 1.417, 1.388, 1.361, 1.339, 1.321, 1.313, 1.313, 1.327, 1.346, 1.362, 1.391, 1.422, 1.453, 1.473,\n> +                    1.469, 1.439, 1.408, 1.377, 1.349, 1.321, 1.312, 1.299, 1.299, 1.311, 1.327, 1.348, 1.378, 1.415, 1.446, 1.468,\n> +                    1.468, 1.434, 1.402, 1.371, 1.341, 1.316, 1.299, 1.296, 1.295, 1.299, 1.314, 1.338, 1.371, 1.408, 1.441, 1.466,\n> +                    1.468, 1.434, 1.401, 1.371, 1.341, 1.316, 1.301, 1.296, 1.295, 1.297, 1.314, 1.338, 1.369, 1.408, 1.441, 1.465,\n> +                    1.469, 1.436, 1.401, 1.374, 1.348, 1.332, 1.315, 1.301, 1.301, 1.313, 1.324, 1.342, 1.372, 1.409, 1.442, 1.465,\n> +                    1.471, 1.444, 1.413, 1.388, 1.371, 1.348, 1.332, 1.323, 1.323, 1.324, 1.342, 1.362, 1.386, 1.418, 1.449, 1.467,\n> +                    1.473, 1.454, 1.431, 1.407, 1.388, 1.371, 1.359, 1.352, 1.351, 1.351, 1.362, 1.383, 1.404, 1.433, 1.462, 1.472,\n> +                    1.474, 1.461, 1.447, 1.424, 1.407, 1.394, 1.385, 1.381, 1.379, 1.381, 1.383, 1.401, 1.419, 1.444, 1.466, 1.481,\n> +                    1.474, 1.464, 1.455, 1.442, 1.421, 1.408, 1.403, 1.403, 1.403, 1.399, 1.402, 1.415, 1.432, 1.446, 1.467, 1.483\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 6500, \"table\":\n> +                [\n> +                    1.567, 1.565, 1.555, 1.541, 1.525, 1.518, 1.518, 1.518, 1.521, 1.527, 1.532, 1.541, 1.551, 1.559, 1.567, 1.569,\n> +                    1.565, 1.557, 1.542, 1.527, 1.519, 1.515, 1.511, 1.516, 1.519, 1.524, 1.528, 1.533, 1.542, 1.553, 1.559, 1.562,\n> +                    1.561, 1.546, 1.532, 1.521, 1.518, 1.515, 1.511, 1.516, 1.519, 1.524, 1.528, 1.529, 1.533, 1.542, 1.554, 1.559,\n> +                    1.561, 1.539, 1.526, 1.524, 1.521, 1.521, 1.522, 1.524, 1.525, 1.531, 1.529, 1.529, 1.531, 1.538, 1.549, 1.558,\n> +                    1.559, 1.538, 1.526, 1.525, 1.524, 1.528, 1.534, 1.536, 1.536, 1.536, 1.532, 1.529, 1.531, 1.537, 1.548, 1.556,\n> +                    1.561, 1.537, 1.525, 1.524, 1.526, 1.532, 1.537, 1.539, 1.538, 1.537, 1.532, 1.529, 1.529, 1.537, 1.546, 1.556,\n> +                    1.561, 1.536, 1.524, 1.522, 1.525, 1.532, 1.538, 1.538, 1.537, 1.533, 1.528, 1.526, 1.527, 1.536, 1.546, 1.555,\n> +                    1.561, 1.537, 1.522, 1.521, 1.524, 1.531, 1.536, 1.537, 1.534, 1.529, 1.526, 1.522, 1.523, 1.534, 1.547, 1.555,\n> +                    1.561, 1.538, 1.524, 1.522, 1.526, 1.531, 1.535, 1.535, 1.534, 1.527, 1.524, 1.522, 1.522, 1.535, 1.549, 1.556,\n> +                    1.558, 1.543, 1.532, 1.526, 1.526, 1.529, 1.534, 1.535, 1.533, 1.526, 1.523, 1.522, 1.524, 1.537, 1.552, 1.557,\n> +                    1.555, 1.546, 1.541, 1.528, 1.527, 1.528, 1.531, 1.533, 1.531, 1.527, 1.522, 1.522, 1.526, 1.536, 1.552, 1.561,\n> +                    1.555, 1.547, 1.542, 1.538, 1.526, 1.526, 1.529, 1.531, 1.529, 1.528, 1.519, 1.519, 1.527, 1.531, 1.543, 1.561\n> +                ]\n> +            }\n> +        ],\n> +        \"calibrations_Cb\":\n> +        [\n> +            {\n> +                \"ct\": 3000, \"table\":\n> +                [\n> +                    1.684, 1.688, 1.691, 1.697, 1.709, 1.722, 1.735, 1.745, 1.747, 1.745, 1.731, 1.719, 1.709, 1.705, 1.699, 1.699,\n> +                    1.684, 1.689, 1.694, 1.708, 1.721, 1.735, 1.747, 1.762, 1.762, 1.758, 1.745, 1.727, 1.716, 1.707, 1.701, 1.699,\n> +                    1.684, 1.691, 1.704, 1.719, 1.734, 1.755, 1.772, 1.786, 1.789, 1.788, 1.762, 1.745, 1.724, 1.709, 1.702, 1.698,\n> +                    1.682, 1.694, 1.709, 1.729, 1.755, 1.773, 1.798, 1.815, 1.817, 1.808, 1.788, 1.762, 1.733, 1.714, 1.704, 1.699,\n> +                    1.682, 1.693, 1.713, 1.742, 1.772, 1.798, 1.815, 1.829, 1.831, 1.821, 1.807, 1.773, 1.742, 1.716, 1.703, 1.699,\n> +                    1.681, 1.693, 1.713, 1.742, 1.772, 1.799, 1.828, 1.839, 1.839, 1.828, 1.807, 1.774, 1.742, 1.715, 1.699, 1.695,\n> +                    1.679, 1.691, 1.712, 1.739, 1.771, 1.798, 1.825, 1.829, 1.831, 1.818, 1.801, 1.774, 1.738, 1.712, 1.695, 1.691,\n> +                    1.676, 1.685, 1.703, 1.727, 1.761, 1.784, 1.801, 1.817, 1.817, 1.801, 1.779, 1.761, 1.729, 1.706, 1.691, 1.684,\n> +                    1.669, 1.678, 1.692, 1.714, 1.741, 1.764, 1.784, 1.795, 1.795, 1.779, 1.761, 1.738, 1.713, 1.696, 1.683, 1.679,\n> +                    1.664, 1.671, 1.679, 1.693, 1.716, 1.741, 1.762, 1.769, 1.769, 1.753, 1.738, 1.713, 1.701, 1.687, 1.681, 1.676,\n> +                    1.661, 1.664, 1.671, 1.679, 1.693, 1.714, 1.732, 1.739, 1.739, 1.729, 1.708, 1.701, 1.685, 1.679, 1.676, 1.677,\n> +                    1.659, 1.661, 1.664, 1.671, 1.679, 1.693, 1.712, 1.714, 1.714, 1.708, 1.701, 1.687, 1.679, 1.672, 1.673, 1.677\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 5000, \"table\":\n> +                [\n> +                    1.177, 1.183, 1.187, 1.191, 1.197, 1.206, 1.213, 1.215, 1.215, 1.215, 1.211, 1.204, 1.196, 1.191, 1.183, 1.182,\n> +                    1.179, 1.185, 1.191, 1.196, 1.206, 1.217, 1.224, 1.229, 1.229, 1.226, 1.221, 1.212, 1.202, 1.195, 1.188, 1.182,\n> +                    1.183, 1.191, 1.196, 1.206, 1.217, 1.229, 1.239, 1.245, 1.245, 1.245, 1.233, 1.221, 1.212, 1.199, 1.193, 1.187,\n> +                    1.183, 1.192, 1.201, 1.212, 1.229, 1.241, 1.252, 1.259, 1.259, 1.257, 1.245, 1.233, 1.217, 1.201, 1.194, 1.192,\n> +                    1.183, 1.192, 1.202, 1.219, 1.238, 1.252, 1.261, 1.269, 1.268, 1.261, 1.257, 1.241, 1.223, 1.204, 1.194, 1.191,\n> +                    1.182, 1.192, 1.202, 1.219, 1.239, 1.255, 1.266, 1.271, 1.271, 1.265, 1.258, 1.242, 1.223, 1.205, 1.192, 1.191,\n> +                    1.181, 1.189, 1.199, 1.218, 1.239, 1.254, 1.262, 1.268, 1.268, 1.258, 1.253, 1.241, 1.221, 1.204, 1.191, 1.187,\n> +                    1.179, 1.184, 1.193, 1.211, 1.232, 1.243, 1.254, 1.257, 1.256, 1.253, 1.242, 1.232, 1.216, 1.199, 1.187, 1.183,\n> +                    1.174, 1.179, 1.187, 1.202, 1.218, 1.232, 1.243, 1.246, 1.246, 1.239, 1.232, 1.218, 1.207, 1.191, 1.183, 1.179,\n> +                    1.169, 1.175, 1.181, 1.189, 1.202, 1.218, 1.229, 1.232, 1.232, 1.224, 1.218, 1.207, 1.199, 1.185, 1.181, 1.174,\n> +                    1.164, 1.168, 1.175, 1.179, 1.189, 1.201, 1.209, 1.213, 1.213, 1.209, 1.201, 1.198, 1.186, 1.181, 1.174, 1.173,\n> +                    1.161, 1.166, 1.171, 1.175, 1.179, 1.189, 1.197, 1.198, 1.198, 1.197, 1.196, 1.186, 1.182, 1.175, 1.173, 1.173\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 6500, \"table\":\n> +                [\n> +                    1.166, 1.171, 1.173, 1.178, 1.187, 1.193, 1.201, 1.205, 1.205, 1.205, 1.199, 1.191, 1.184, 1.179, 1.174, 1.171,\n> +                    1.166, 1.172, 1.176, 1.184, 1.195, 1.202, 1.209, 1.216, 1.216, 1.213, 1.208, 1.201, 1.189, 1.182, 1.176, 1.171,\n> +                    1.166, 1.173, 1.183, 1.195, 1.202, 1.214, 1.221, 1.228, 1.229, 1.228, 1.221, 1.209, 1.201, 1.186, 1.179, 1.174,\n> +                    1.165, 1.174, 1.187, 1.201, 1.214, 1.223, 1.235, 1.241, 1.242, 1.241, 1.229, 1.221, 1.205, 1.188, 1.181, 1.177,\n> +                    1.165, 1.174, 1.189, 1.207, 1.223, 1.235, 1.242, 1.253, 1.252, 1.245, 1.241, 1.228, 1.211, 1.189, 1.181, 1.178,\n> +                    1.164, 1.173, 1.189, 1.207, 1.224, 1.238, 1.249, 1.255, 1.255, 1.249, 1.242, 1.228, 1.211, 1.191, 1.179, 1.176,\n> +                    1.163, 1.172, 1.187, 1.207, 1.223, 1.237, 1.245, 1.253, 1.252, 1.243, 1.237, 1.228, 1.207, 1.188, 1.176, 1.173,\n> +                    1.159, 1.167, 1.179, 1.199, 1.217, 1.227, 1.237, 1.241, 1.241, 1.237, 1.228, 1.217, 1.201, 1.184, 1.174, 1.169,\n> +                    1.156, 1.164, 1.172, 1.189, 1.205, 1.217, 1.226, 1.229, 1.229, 1.222, 1.217, 1.204, 1.192, 1.177, 1.171, 1.166,\n> +                    1.154, 1.159, 1.166, 1.177, 1.189, 1.205, 1.213, 1.216, 1.216, 1.209, 1.204, 1.192, 1.183, 1.172, 1.168, 1.162,\n> +                    1.152, 1.155, 1.161, 1.166, 1.177, 1.188, 1.195, 1.198, 1.199, 1.196, 1.187, 1.183, 1.173, 1.168, 1.163, 1.162,\n> +                    1.151, 1.154, 1.158, 1.162, 1.168, 1.177, 1.183, 1.184, 1.184, 1.184, 1.182, 1.172, 1.168, 1.165, 1.162, 1.161\n> +                ]\n> +            }\n> +        ],\n> +        \"luminance_lut\":\n> +        [\n> +            2.236, 2.111, 1.912, 1.741, 1.579, 1.451, 1.379, 1.349, 1.349, 1.361, 1.411, 1.505, 1.644, 1.816, 2.034, 2.159,\n> +            2.139, 1.994, 1.796, 1.625, 1.467, 1.361, 1.285, 1.248, 1.239, 1.265, 1.321, 1.408, 1.536, 1.703, 1.903, 2.087,\n> +            2.047, 1.898, 1.694, 1.511, 1.373, 1.254, 1.186, 1.152, 1.142, 1.166, 1.226, 1.309, 1.441, 1.598, 1.799, 1.978,\n> +            1.999, 1.824, 1.615, 1.429, 1.281, 1.179, 1.113, 1.077, 1.071, 1.096, 1.153, 1.239, 1.357, 1.525, 1.726, 1.915,\n> +            1.976, 1.773, 1.563, 1.374, 1.222, 1.119, 1.064, 1.032, 1.031, 1.049, 1.099, 1.188, 1.309, 1.478, 1.681, 1.893,\n> +            1.973, 1.756, 1.542, 1.351, 1.196, 1.088, 1.028, 1.011, 1.004, 1.029, 1.077, 1.169, 1.295, 1.459, 1.663, 1.891,\n> +            1.973, 1.761, 1.541, 1.349, 1.193, 1.087, 1.031, 1.006, 1.006, 1.023, 1.075, 1.169, 1.298, 1.463, 1.667, 1.891,\n> +            1.982, 1.789, 1.568, 1.373, 1.213, 1.111, 1.051, 1.029, 1.024, 1.053, 1.106, 1.199, 1.329, 1.495, 1.692, 1.903,\n> +            2.015, 1.838, 1.621, 1.426, 1.268, 1.159, 1.101, 1.066, 1.068, 1.099, 1.166, 1.259, 1.387, 1.553, 1.751, 1.937,\n> +            2.076, 1.911, 1.692, 1.507, 1.346, 1.236, 1.169, 1.136, 1.139, 1.174, 1.242, 1.349, 1.475, 1.641, 1.833, 2.004,\n> +            2.193, 2.011, 1.798, 1.604, 1.444, 1.339, 1.265, 1.235, 1.237, 1.273, 1.351, 1.461, 1.598, 1.758, 1.956, 2.125,\n> +            2.263, 2.154, 1.916, 1.711, 1.549, 1.432, 1.372, 1.356, 1.356, 1.383, 1.455, 1.578, 1.726, 1.914, 2.119, 2.211\n> +        ],\n> +        \"sigma\": 0.006,\n> +        \"sigma_Cb\": 0.00208\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\": 2500, \"ccm\":\n> +                [\n> +                    1.70741, -0.05307, -0.65433, -0.62822, 1.68836, -0.06014, -0.04452, -1.87628, 2.92079\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 2803, \"ccm\":\n> +                [\n> +                    1.74383, -0.18731, -0.55652, -0.56491, 1.67772, -0.11281, -0.01522, -1.60635, 2.62157\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 2912, \"ccm\":\n> +                [\n> +                    1.75215, -0.22221, -0.52995, -0.54568, 1.63522, -0.08954, 0.02633, -1.56997, 2.54364\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 2914, \"ccm\":\n> +                [\n> +                    1.72423, -0.28939, -0.43484, -0.55188, 1.62925, -0.07737, 0.01959, -1.28661, 2.26702\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 3605, \"ccm\":\n> +                [\n> +                    1.80381, -0.43646, -0.36735, -0.46505, 1.56814, -0.10309, 0.00929, -1.00424, 1.99495\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 4540, \"ccm\":\n> +                [\n> +                    1.85263, -0.46545, -0.38719, -0.44136, 1.68443, -0.24307, 0.04108, -0.85599, 1.81491\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 5699, \"ccm\":\n> +                [\n> +                    1.98595, -0.63542, -0.35054, -0.34623, 1.54146, -0.19522, 0.00411, -0.70936, 1.70525\n> +                ]\n> +            },\n> +            {\n> +                \"ct\": 8625, \"ccm\":\n> +                [\n> +                    2.21637, -0.56663, -0.64974, -0.41133, 1.96625, -0.55492, -0.02307, -0.83529, 1.85837\n> +                ]\n> +            }\n> +        ]\n> +    },\n> +    \"rpi.sharpen\":\n> +    {\n> +\n> +    }\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 B3FC9BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 13 Aug 2021 10:41:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E69EA68891;\n\tFri, 13 Aug 2021 12:41:11 +0200 (CEST)","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 C4D91687FA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 13 Aug 2021 12:41:10 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 31AEBEE;\n\tFri, 13 Aug 2021 12:41:10 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"CEc38lds\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1628851270;\n\tbh=B9C5jikCJ8+rQyjjIqczv475rp9GwXxgVIBmWHNxckY=;\n\th=To:Cc:References:From:Subject:Date:In-Reply-To:From;\n\tb=CEc38ldsc+v7QkIj5kTO8clqH6Z9+MNNzZV62gG5MLgPeu80uR//M2Rw8vwDD4qSB\n\tP6WCyUclaLVEbCPpDazSyo4WmrWwDWGYUeIAjKEu/ZxjF2B3t4oaaf18cBZpLFDTFu\n\tBghnWfWMJiaz1Z2J9OBNBuVXDS1tnIWrVACmX9vI=","To":"David Plowman <david.plowman@raspberrypi.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20210813090242.23595-1-david.plowman@raspberrypi.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<3879b4c8-94bd-3321-a9a9-cb4caafe89df@ideasonboard.com>","Date":"Fri, 13 Aug 2021 11:41:08 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.11.0","MIME-Version":"1.0","In-Reply-To":"<20210813090242.23595-1-david.plowman@raspberrypi.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH v1] raspberrypi: ipa: Add tuning files\n\tfor \"NOIR\" ov5647, imx219, imx477 modules","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":"David Plowman <david.plowman@raspberypi.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":18766,"web_url":"https://patchwork.libcamera.org/comment/18766/","msgid":"<CAHW6GYJN0MdFi5U4N2d91Ov7-xWUOn-S93HpDgw=w5z_qbH-pg@mail.gmail.com>","date":"2021-08-13T11:16:52","subject":"Re: [libcamera-devel] [PATCH v1] raspberrypi: ipa: Add tuning files\n\tfor \"NOIR\" ov5647, imx219, imx477 modules","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Kieran\n\nYes, I agree it's a bit awkward in some respects.\n\nOn Fri, 13 Aug 2021 at 11:41, Kieran Bingham\n<kieran.bingham@ideasonboard.com> wrote:\n>\n> Hi David,\n>\n> On 13/08/2021 10:02, David Plowman wrote:\n> > \"NOIR\" modules are ones that have had the IR filters removed but are\n> > otherwise identical. The same tuning can be used as for the regular\n> > version except that the colour calibration supplied to the AWB\n> > algorithm no longer works. Instead we need to switch the algorithm to\n> > its basic \"grey world\" method.\n> >\n> > Users with \"NOIR\" modules can switch to the matching \"xxx_noir.json\"\n> > tuning file by using the LIBCAMERA_RPI_TUNING_FILE environment\n> > variable.\n>\n>\n> It seems on a cursory glance, that these files are the same as the\n> non-noir version, except 'bayes' is set to 0, and other unused entries\n> are not present.\n\nCorrect!\n\n>\n> That makes me think somehow, there should be a way to use the same\n> tuning file, but be able to enforce the grey-world algorithm.\n\nIn another project of ours we actually added the ability to \"include\"\none json file in another. But it's quite easy to end up with a bit of\na maze of stuff, and it's not standard json either which I think is\nundesirable. So I'm not sure that simply duplicating stuff is worse,\nat least it has the virtue of simplicity.\n\n>\n> I won't object to these files going in, as it's a way to solve the\n> selection with the tools you currently have available, but it brings up\n> the question of what controls should we expose from the IPA to be able\n> to set this.\n\nIn some of our legacy software I think \"grey world\" masquerades as\nanother \"awb mode\" (like \"daylight\"). But that's a bit of a lie really\nand I can't say I like it. Maybe there could be an \"awb algorithm\"\ncontrol, but I'm not really convinced users would expect or want that\neither.\n\n>\n> Or perhaps, given that the tuning file is supposed to be mapped to a\n> specific camera module, which will either have or not have an IR filter,\n> maybe this is simply 'the right solution' ...\n\nAll in all, I think choosing the tuning file according to the module\nyou know you have is actually the right thing. Perhaps the duplication\nof stuff is suboptimal, but I don't have an alternative that I really\nprefer, unless anyone else has any good ideas?\n\nThanks!\nDavid\n\n>\n>\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n>\n> > Signed-off-by: David Plowman <david.plowman@raspberypi.com>\n> > ---\n> >  src/ipa/raspberrypi/data/imx219_noir.json | 344 ++++++++++++++++++++\n> >  src/ipa/raspberrypi/data/imx477_noir.json | 362 ++++++++++++++++++++++\n> >  src/ipa/raspberrypi/data/meson.build      |   3 +\n> >  src/ipa/raspberrypi/data/ov5647_noir.json | 341 ++++++++++++++++++++\n> >  4 files changed, 1050 insertions(+)\n> >  create mode 100644 src/ipa/raspberrypi/data/imx219_noir.json\n> >  create mode 100644 src/ipa/raspberrypi/data/imx477_noir.json\n> >  create mode 100644 src/ipa/raspberrypi/data/ov5647_noir.json\n> >\n> > diff --git a/src/ipa/raspberrypi/data/imx219_noir.json b/src/ipa/raspberrypi/data/imx219_noir.json\n> > new file mode 100644\n> > index 00000000..1d48ef53\n> > --- /dev/null\n> > +++ b/src/ipa/raspberrypi/data/imx219_noir.json\n> > @@ -0,0 +1,344 @@\n> > +{\n> > +    \"rpi.black_level\":\n> > +    {\n> > +        \"black_level\": 4096\n> > +    },\n> > +    \"rpi.dpc\":\n> > +    {\n> > +\n> > +    },\n> > +    \"rpi.lux\":\n> > +    {\n> > +        \"reference_shutter_speed\": 27685,\n> > +        \"reference_gain\": 1.0,\n> > +        \"reference_aperture\": 1.0,\n> > +        \"reference_lux\": 998,\n> > +        \"reference_Y\": 12744\n> > +    },\n> > +    \"rpi.noise\":\n> > +    {\n> > +        \"reference_constant\": 0,\n> > +        \"reference_slope\": 3.67\n> > +    },\n> > +    \"rpi.geq\":\n> > +    {\n> > +        \"offset\": 204,\n> > +        \"slope\": 0.01633\n> > +    },\n> > +    \"rpi.sdn\":\n> > +    {\n> > +\n> > +    },\n> > +    \"rpi.awb\":\n> > +    {\n> > +     \"bayes\": 0\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, 66666\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, 33333\n> > +                ],\n> > +                \"gain\":\n> > +                [\n> > +                    1.0, 2.0, 4.0, 6.0, 6.0\n> > +                ]\n> > +            },\n> > +            \"long\":\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> > +        },\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> > +         \"shadows\":\n> > +         [\n> > +             {\n> > +                 \"bound\": \"LOWER\", \"q_lo\": 0.0, \"q_hi\": 0.5, \"y_target\":\n> > +                    [\n> > +                        0, 0.17, 1000, 0.17\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.7,\n> > +        \"calibrations_Cr\":\n> > +        [\n> > +            {\n> > +                \"ct\": 3000, \"table\":\n> > +                [\n> > +                    1.487, 1.481, 1.481, 1.445, 1.389, 1.327, 1.307, 1.307, 1.307, 1.309, 1.341, 1.405, 1.458, 1.494, 1.494, 1.497,\n> > +                    1.491, 1.481, 1.448, 1.397, 1.331, 1.275, 1.243, 1.229, 1.229, 1.249, 1.287, 1.349, 1.409, 1.463, 1.494, 1.497,\n> > +                    1.491, 1.469, 1.405, 1.331, 1.275, 1.217, 1.183, 1.172, 1.172, 1.191, 1.231, 1.287, 1.349, 1.424, 1.484, 1.499,\n> > +                    1.487, 1.444, 1.363, 1.283, 1.217, 1.183, 1.148, 1.138, 1.138, 1.159, 1.191, 1.231, 1.302, 1.385, 1.461, 1.492,\n> > +                    1.481, 1.423, 1.334, 1.253, 1.189, 1.148, 1.135, 1.119, 1.123, 1.137, 1.159, 1.203, 1.272, 1.358, 1.442, 1.488,\n> > +                    1.479, 1.413, 1.321, 1.236, 1.176, 1.139, 1.118, 1.114, 1.116, 1.123, 1.149, 1.192, 1.258, 1.344, 1.432, 1.487,\n> > +                    1.479, 1.413, 1.321, 1.236, 1.176, 1.139, 1.116, 1.114, 1.115, 1.123, 1.149, 1.192, 1.258, 1.344, 1.432, 1.487,\n> > +                    1.479, 1.425, 1.336, 1.251, 1.189, 1.149, 1.136, 1.118, 1.121, 1.138, 1.158, 1.206, 1.275, 1.358, 1.443, 1.488,\n> > +                    1.488, 1.448, 1.368, 1.285, 1.219, 1.189, 1.149, 1.139, 1.139, 1.158, 1.195, 1.235, 1.307, 1.387, 1.462, 1.493,\n> > +                    1.496, 1.475, 1.411, 1.337, 1.284, 1.219, 1.189, 1.176, 1.176, 1.195, 1.235, 1.296, 1.356, 1.429, 1.487, 1.501,\n> > +                    1.495, 1.489, 1.458, 1.407, 1.337, 1.287, 1.253, 1.239, 1.239, 1.259, 1.296, 1.356, 1.419, 1.472, 1.499, 1.499,\n> > +                    1.494, 1.489, 1.489, 1.453, 1.398, 1.336, 1.317, 1.317, 1.317, 1.321, 1.351, 1.416, 1.467, 1.501, 1.501, 1.499\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 3850, \"table\":\n> > +                [\n> > +                    1.694, 1.688, 1.688, 1.649, 1.588, 1.518, 1.495, 1.495, 1.495, 1.497, 1.532, 1.602, 1.659, 1.698, 1.698, 1.703,\n> > +                    1.698, 1.688, 1.653, 1.597, 1.525, 1.464, 1.429, 1.413, 1.413, 1.437, 1.476, 1.542, 1.606, 1.665, 1.698, 1.703,\n> > +                    1.697, 1.673, 1.605, 1.525, 1.464, 1.401, 1.369, 1.354, 1.354, 1.377, 1.417, 1.476, 1.542, 1.623, 1.687, 1.705,\n> > +                    1.692, 1.646, 1.561, 1.472, 1.401, 1.368, 1.337, 1.323, 1.324, 1.348, 1.377, 1.417, 1.492, 1.583, 1.661, 1.697,\n> > +                    1.686, 1.625, 1.528, 1.439, 1.372, 1.337, 1.321, 1.311, 1.316, 1.324, 1.348, 1.389, 1.461, 1.553, 1.642, 1.694,\n> > +                    1.684, 1.613, 1.514, 1.423, 1.359, 1.328, 1.311, 1.306, 1.306, 1.316, 1.339, 1.378, 1.446, 1.541, 1.633, 1.693,\n> > +                    1.684, 1.613, 1.514, 1.423, 1.359, 1.328, 1.311, 1.305, 1.305, 1.316, 1.339, 1.378, 1.446, 1.541, 1.633, 1.693,\n> > +                    1.685, 1.624, 1.529, 1.438, 1.372, 1.336, 1.324, 1.309, 1.314, 1.323, 1.348, 1.392, 1.462, 1.555, 1.646, 1.694,\n> > +                    1.692, 1.648, 1.561, 1.473, 1.403, 1.372, 1.336, 1.324, 1.324, 1.348, 1.378, 1.423, 1.495, 1.585, 1.667, 1.701,\n> > +                    1.701, 1.677, 1.608, 1.527, 1.471, 1.403, 1.375, 1.359, 1.359, 1.378, 1.423, 1.488, 1.549, 1.631, 1.694, 1.709,\n> > +                    1.702, 1.694, 1.656, 1.601, 1.527, 1.473, 1.441, 1.424, 1.424, 1.443, 1.488, 1.549, 1.621, 1.678, 1.706, 1.707,\n> > +                    1.699, 1.694, 1.694, 1.654, 1.593, 1.525, 1.508, 1.508, 1.508, 1.509, 1.546, 1.614, 1.674, 1.708, 1.708, 1.707\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 6000, \"table\":\n> > +                [\n> > +                    2.179, 2.176, 2.176, 2.125, 2.048, 1.975, 1.955, 1.954, 1.954, 1.956, 1.993, 2.071, 2.141, 2.184, 2.185, 2.188,\n> > +                    2.189, 2.176, 2.128, 2.063, 1.973, 1.908, 1.872, 1.856, 1.856, 1.876, 1.922, 1.999, 2.081, 2.144, 2.184, 2.192,\n> > +                    2.187, 2.152, 2.068, 1.973, 1.907, 1.831, 1.797, 1.786, 1.786, 1.804, 1.853, 1.922, 1.999, 2.089, 2.166, 2.191,\n> > +                    2.173, 2.117, 2.013, 1.908, 1.831, 1.791, 1.755, 1.749, 1.749, 1.767, 1.804, 1.853, 1.939, 2.041, 2.135, 2.181,\n> > +                    2.166, 2.089, 1.975, 1.869, 1.792, 1.755, 1.741, 1.731, 1.734, 1.749, 1.767, 1.818, 1.903, 2.005, 2.111, 2.173,\n> > +                    2.165, 2.074, 1.956, 1.849, 1.777, 1.742, 1.729, 1.725, 1.729, 1.734, 1.758, 1.804, 1.884, 1.991, 2.099, 2.172,\n> > +                    2.165, 2.074, 1.956, 1.849, 1.777, 1.742, 1.727, 1.724, 1.725, 1.734, 1.758, 1.804, 1.884, 1.991, 2.099, 2.172,\n> > +                    2.166, 2.085, 1.975, 1.869, 1.791, 1.755, 1.741, 1.729, 1.733, 1.749, 1.769, 1.819, 1.904, 2.009, 2.114, 2.174,\n> > +                    2.174, 2.118, 2.015, 1.913, 1.831, 1.791, 1.755, 1.749, 1.749, 1.769, 1.811, 1.855, 1.943, 2.047, 2.139, 2.183,\n> > +                    2.187, 2.151, 2.072, 1.979, 1.911, 1.831, 1.801, 1.791, 1.791, 1.811, 1.855, 1.933, 2.006, 2.101, 2.173, 2.197,\n> > +                    2.189, 2.178, 2.132, 2.069, 1.979, 1.913, 1.879, 1.867, 1.867, 1.891, 1.933, 2.006, 2.091, 2.156, 2.195, 2.197,\n> > +                    2.181, 2.179, 2.178, 2.131, 2.057, 1.981, 1.965, 1.965, 1.965, 1.969, 1.999, 2.083, 2.153, 2.197, 2.197, 2.196\n> > +                ]\n> > +            }\n> > +        ],\n> > +        \"calibrations_Cb\":\n> > +        [\n> > +            {\n> > +                \"ct\": 3000, \"table\":\n> > +                [\n> > +                    1.967, 1.961, 1.955, 1.953, 1.954, 1.957, 1.961, 1.963, 1.963, 1.961, 1.959, 1.957, 1.954, 1.951, 1.951, 1.955,\n> > +                    1.961, 1.959, 1.957, 1.956, 1.962, 1.967, 1.975, 1.979, 1.979, 1.975, 1.971, 1.967, 1.957, 1.952, 1.951, 1.951,\n> > +                    1.959, 1.959, 1.959, 1.966, 1.976, 1.989, 1.999, 2.004, 2.003, 1.997, 1.991, 1.981, 1.967, 1.956, 1.951, 1.951,\n> > +                    1.959, 1.962, 1.967, 1.978, 1.993, 2.009, 2.021, 2.028, 2.026, 2.021, 2.011, 1.995, 1.981, 1.964, 1.953, 1.951,\n> > +                    1.961, 1.965, 1.977, 1.993, 2.009, 2.023, 2.041, 2.047, 2.047, 2.037, 2.024, 2.011, 1.995, 1.975, 1.958, 1.953,\n> > +                    1.963, 1.968, 1.981, 2.001, 2.019, 2.039, 2.046, 2.052, 2.052, 2.051, 2.035, 2.021, 2.001, 1.978, 1.959, 1.955,\n> > +                    1.961, 1.966, 1.981, 2.001, 2.019, 2.038, 2.043, 2.051, 2.052, 2.042, 2.034, 2.019, 2.001, 1.978, 1.959, 1.954,\n> > +                    1.957, 1.961, 1.972, 1.989, 2.003, 2.021, 2.038, 2.039, 2.039, 2.034, 2.019, 2.004, 1.988, 1.971, 1.954, 1.949,\n> > +                    1.952, 1.953, 1.959, 1.972, 1.989, 2.003, 2.016, 2.019, 2.019, 2.014, 2.003, 1.988, 1.971, 1.955, 1.948, 1.947,\n> > +                    1.949, 1.948, 1.949, 1.957, 1.971, 1.978, 1.991, 1.994, 1.994, 1.989, 1.979, 1.967, 1.954, 1.946, 1.947, 1.947,\n> > +                    1.949, 1.946, 1.944, 1.946, 1.949, 1.954, 1.962, 1.967, 1.967, 1.963, 1.956, 1.948, 1.943, 1.943, 1.946, 1.949,\n> > +                    1.951, 1.946, 1.944, 1.942, 1.943, 1.943, 1.947, 1.948, 1.949, 1.947, 1.945, 1.941, 1.938, 1.939, 1.948, 1.952\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 3850, \"table\":\n> > +                [\n> > +                    1.726, 1.724, 1.722, 1.723, 1.731, 1.735, 1.743, 1.746, 1.746, 1.741, 1.735, 1.729, 1.725, 1.721, 1.721, 1.721,\n> > +                    1.724, 1.723, 1.723, 1.727, 1.735, 1.744, 1.749, 1.756, 1.756, 1.749, 1.744, 1.735, 1.727, 1.719, 1.719, 1.719,\n> > +                    1.723, 1.723, 1.724, 1.735, 1.746, 1.759, 1.767, 1.775, 1.775, 1.766, 1.758, 1.746, 1.735, 1.723, 1.718, 1.716,\n> > +                    1.723, 1.725, 1.732, 1.746, 1.759, 1.775, 1.782, 1.792, 1.792, 1.782, 1.772, 1.759, 1.745, 1.729, 1.718, 1.716,\n> > +                    1.725, 1.729, 1.738, 1.756, 1.775, 1.785, 1.796, 1.803, 1.804, 1.794, 1.783, 1.772, 1.757, 1.736, 1.722, 1.718,\n> > +                    1.728, 1.731, 1.741, 1.759, 1.781, 1.795, 1.803, 1.806, 1.808, 1.805, 1.791, 1.779, 1.762, 1.739, 1.722, 1.721,\n> > +                    1.727, 1.731, 1.741, 1.759, 1.781, 1.791, 1.799, 1.804, 1.806, 1.801, 1.791, 1.779, 1.762, 1.739, 1.722, 1.717,\n> > +                    1.722, 1.724, 1.733, 1.751, 1.768, 1.781, 1.791, 1.796, 1.799, 1.791, 1.781, 1.766, 1.754, 1.731, 1.717, 1.714,\n> > +                    1.718, 1.718, 1.724, 1.737, 1.752, 1.768, 1.776, 1.782, 1.784, 1.781, 1.766, 1.754, 1.737, 1.724, 1.713, 1.709,\n> > +                    1.716, 1.715, 1.716, 1.725, 1.737, 1.749, 1.756, 1.763, 1.764, 1.762, 1.749, 1.737, 1.724, 1.717, 1.709, 1.708,\n> > +                    1.715, 1.714, 1.712, 1.715, 1.722, 1.729, 1.736, 1.741, 1.742, 1.739, 1.731, 1.723, 1.717, 1.712, 1.711, 1.709,\n> > +                    1.716, 1.714, 1.711, 1.712, 1.715, 1.719, 1.723, 1.728, 1.731, 1.729, 1.723, 1.718, 1.711, 1.711, 1.713, 1.713\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 6000, \"table\":\n> > +                [\n> > +                    1.374, 1.372, 1.373, 1.374, 1.375, 1.378, 1.378, 1.381, 1.382, 1.382, 1.378, 1.373, 1.372, 1.369, 1.365, 1.365,\n> > +                    1.371, 1.371, 1.372, 1.374, 1.378, 1.381, 1.384, 1.386, 1.388, 1.387, 1.384, 1.377, 1.372, 1.368, 1.364, 1.362,\n> > +                    1.369, 1.371, 1.372, 1.377, 1.383, 1.391, 1.394, 1.396, 1.397, 1.395, 1.391, 1.382, 1.374, 1.369, 1.362, 1.361,\n> > +                    1.369, 1.371, 1.375, 1.383, 1.391, 1.399, 1.402, 1.404, 1.405, 1.403, 1.398, 1.391, 1.379, 1.371, 1.363, 1.361,\n> > +                    1.371, 1.373, 1.378, 1.388, 1.399, 1.407, 1.411, 1.413, 1.413, 1.411, 1.405, 1.397, 1.385, 1.374, 1.366, 1.362,\n> > +                    1.371, 1.374, 1.379, 1.389, 1.405, 1.411, 1.414, 1.414, 1.415, 1.415, 1.411, 1.401, 1.388, 1.376, 1.367, 1.363,\n> > +                    1.371, 1.373, 1.379, 1.389, 1.405, 1.408, 1.413, 1.414, 1.414, 1.413, 1.409, 1.401, 1.388, 1.376, 1.367, 1.362,\n> > +                    1.366, 1.369, 1.374, 1.384, 1.396, 1.404, 1.407, 1.408, 1.408, 1.408, 1.401, 1.395, 1.382, 1.371, 1.363, 1.359,\n> > +                    1.364, 1.365, 1.368, 1.375, 1.386, 1.396, 1.399, 1.401, 1.399, 1.399, 1.395, 1.385, 1.374, 1.365, 1.359, 1.357,\n> > +                    1.361, 1.363, 1.365, 1.368, 1.377, 1.384, 1.388, 1.391, 1.391, 1.388, 1.385, 1.375, 1.366, 1.361, 1.358, 1.356,\n> > +                    1.361, 1.362, 1.362, 1.364, 1.367, 1.373, 1.376, 1.377, 1.377, 1.375, 1.373, 1.366, 1.362, 1.358, 1.358, 1.358,\n> > +                    1.361, 1.362, 1.362, 1.362, 1.363, 1.367, 1.369, 1.368, 1.367, 1.367, 1.367, 1.364, 1.358, 1.357, 1.358, 1.359\n> > +                ]\n> > +            }\n> > +        ],\n> > +        \"luminance_lut\":\n> > +        [\n> > +            2.716, 2.568, 2.299, 2.065, 1.845, 1.693, 1.605, 1.597, 1.596, 1.634, 1.738, 1.914, 2.145, 2.394, 2.719, 2.901,\n> > +            2.593, 2.357, 2.093, 1.876, 1.672, 1.528, 1.438, 1.393, 1.394, 1.459, 1.569, 1.731, 1.948, 2.169, 2.481, 2.756,\n> > +            2.439, 2.197, 1.922, 1.691, 1.521, 1.365, 1.266, 1.222, 1.224, 1.286, 1.395, 1.573, 1.747, 1.988, 2.299, 2.563,\n> > +            2.363, 2.081, 1.797, 1.563, 1.376, 1.244, 1.152, 1.099, 1.101, 1.158, 1.276, 1.421, 1.607, 1.851, 2.163, 2.455,\n> > +            2.342, 2.003, 1.715, 1.477, 1.282, 1.152, 1.074, 1.033, 1.035, 1.083, 1.163, 1.319, 1.516, 1.759, 2.064, 2.398,\n> > +            2.342, 1.985, 1.691, 1.446, 1.249, 1.111, 1.034, 1.004, 1.004, 1.028, 1.114, 1.274, 1.472, 1.716, 2.019, 2.389,\n> > +            2.342, 1.991, 1.691, 1.446, 1.249, 1.112, 1.034, 1.011, 1.005, 1.035, 1.114, 1.274, 1.472, 1.716, 2.019, 2.389,\n> > +            2.365, 2.052, 1.751, 1.499, 1.299, 1.171, 1.089, 1.039, 1.042, 1.084, 1.162, 1.312, 1.516, 1.761, 2.059, 2.393,\n> > +            2.434, 2.159, 1.856, 1.601, 1.403, 1.278, 1.166, 1.114, 1.114, 1.162, 1.266, 1.402, 1.608, 1.847, 2.146, 2.435,\n> > +            2.554, 2.306, 2.002, 1.748, 1.563, 1.396, 1.299, 1.247, 1.243, 1.279, 1.386, 1.551, 1.746, 1.977, 2.272, 2.518,\n> > +            2.756, 2.493, 2.195, 1.947, 1.739, 1.574, 1.481, 1.429, 1.421, 1.457, 1.559, 1.704, 1.929, 2.159, 2.442, 2.681,\n> > +            2.935, 2.739, 2.411, 2.151, 1.922, 1.749, 1.663, 1.628, 1.625, 1.635, 1.716, 1.872, 2.113, 2.368, 2.663, 2.824\n> > +        ],\n> > +        \"sigma\": 0.00381,\n> > +        \"sigma_Cb\": 0.00216\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\": 2498, \"ccm\":\n> > +                [\n> > +                    1.58731, -0.18011, -0.40721, -0.60639, 2.03422, -0.42782, -0.19612, -1.69203, 2.88815\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 2811, \"ccm\":\n> > +                [\n> > +                    1.61593, -0.33164, -0.28429, -0.55048, 1.97779, -0.42731, -0.12042, -1.42847, 2.54889\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 2911, \"ccm\":\n> > +                [\n> > +                    1.62771, -0.41282, -0.21489, -0.57991, 2.04176, -0.46186, -0.07613, -1.13359, 2.20972\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 2919, \"ccm\":\n> > +                [\n> > +                    1.62661, -0.37736, -0.24925, -0.52519, 1.95233, -0.42714, -0.10842, -1.34929, 2.45771\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 3627, \"ccm\":\n> > +                [\n> > +                    1.70385, -0.57231, -0.13154, -0.47763, 1.85998, -0.38235, -0.07467, -0.82678, 1.90145\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 4600, \"ccm\":\n> > +                [\n> > +                    1.68486, -0.61085, -0.07402, -0.41927, 2.04016, -0.62089, -0.08633, -0.67672, 1.76305\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 5716, \"ccm\":\n> > +                [\n> > +                    1.80439, -0.73699, -0.06739, -0.36073, 1.83327, -0.47255, -0.08378, -0.56403, 1.64781\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 8575, \"ccm\":\n> > +                [\n> > +                    1.89357, -0.76427, -0.12931, -0.27399, 2.15605, -0.88206, -0.12035, -0.68256, 1.80292\n> > +                ]\n> > +            }\n> > +        ]\n> > +    },\n> > +    \"rpi.sharpen\":\n> > +    {\n> > +\n> > +    },\n> > +    \"rpi.dpc\":\n> > +    {\n> > +\n> > +    }\n> > +}\n> > diff --git a/src/ipa/raspberrypi/data/imx477_noir.json b/src/ipa/raspberrypi/data/imx477_noir.json\n> > new file mode 100644\n> > index 00000000..290e8264\n> > --- /dev/null\n> > +++ b/src/ipa/raspberrypi/data/imx477_noir.json\n> > @@ -0,0 +1,362 @@\n> > +{\n> > +    \"rpi.black_level\":\n> > +    {\n> > +        \"black_level\": 4096\n> > +    },\n> > +    \"rpi.dpc\":\n> > +    {\n> > +\n> > +    },\n> > +    \"rpi.lux\":\n> > +    {\n> > +        \"reference_shutter_speed\": 27242,\n> > +        \"reference_gain\": 1.0,\n> > +        \"reference_aperture\": 1.0,\n> > +        \"reference_lux\": 830,\n> > +        \"reference_Y\": 17755\n> > +    },\n> > +    \"rpi.noise\":\n> > +    {\n> > +        \"reference_constant\": 0,\n> > +        \"reference_slope\": 2.767\n> > +    },\n> > +    \"rpi.geq\":\n> > +    {\n> > +        \"offset\": 204,\n> > +        \"slope\": 0.01078\n> > +    },\n> > +    \"rpi.sdn\":\n> > +    {\n> > +\n> > +    },\n> > +    \"rpi.awb\":\n> > +    {\n> > +     \"bayes\": 0\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, 66666\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, 33333\n> > +                ],\n> > +                \"gain\":\n> > +                [\n> > +                    1.0, 2.0, 4.0, 6.0, 6.0\n> > +                ]\n> > +            },\n> > +            \"long\":\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> > +        },\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.3, 1000, 0.3\n> > +                    ]\n> > +                }\n> > +            ],\n> > +            \"highlight\":\n> > +            [\n> > +                {\n> > +                    \"bound\": \"LOWER\", \"q_lo\": 0.98, \"q_hi\": 1.0, \"y_target\":\n> > +                    [\n> > +                        0, 0.3, 1000, 0.3\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> > +         \"shadows\":\n> > +         [\n> > +             {\n> > +                 \"bound\": \"LOWER\", \"q_lo\": 0.0, \"q_hi\": 0.5, \"y_target\":\n> > +                    [\n> > +                        0, 0.17, 1000, 0.17\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\": 2960, \"table\":\n> > +                [\n> > +                    2.088, 2.086, 2.082, 2.081, 2.077, 2.071, 2.068, 2.068, 2.072, 2.073, 2.075, 2.078, 2.084, 2.092, 2.095, 2.098,\n> > +                    2.086, 2.084, 2.079, 2.078, 2.075, 2.068, 2.064, 2.063, 2.068, 2.071, 2.072, 2.075, 2.081, 2.089, 2.092, 2.094,\n> > +                    2.083, 2.081, 2.077, 2.072, 2.069, 2.062, 2.059, 2.059, 2.063, 2.067, 2.069, 2.072, 2.079, 2.088, 2.089, 2.089,\n> > +                    2.081, 2.077, 2.072, 2.068, 2.065, 2.058, 2.055, 2.054, 2.057, 2.062, 2.066, 2.069, 2.077, 2.084, 2.086, 2.086,\n> > +                    2.078, 2.075, 2.069, 2.065, 2.061, 2.055, 2.052, 2.049, 2.051, 2.056, 2.062, 2.065, 2.072, 2.079, 2.081, 2.079,\n> > +                    2.079, 2.075, 2.069, 2.064, 2.061, 2.053, 2.049, 2.046, 2.049, 2.051, 2.057, 2.062, 2.069, 2.075, 2.077, 2.075,\n> > +                    2.082, 2.079, 2.072, 2.065, 2.061, 2.054, 2.049, 2.047, 2.049, 2.051, 2.056, 2.061, 2.066, 2.073, 2.073, 2.069,\n> > +                    2.086, 2.082, 2.075, 2.068, 2.062, 2.054, 2.051, 2.049, 2.051, 2.052, 2.056, 2.061, 2.066, 2.073, 2.073, 2.072,\n> > +                    2.088, 2.086, 2.079, 2.074, 2.066, 2.057, 2.051, 2.051, 2.054, 2.055, 2.056, 2.061, 2.067, 2.072, 2.073, 2.072,\n> > +                    2.091, 2.087, 2.079, 2.075, 2.068, 2.057, 2.052, 2.052, 2.056, 2.055, 2.055, 2.059, 2.066, 2.072, 2.072, 2.072,\n> > +                    2.093, 2.088, 2.081, 2.077, 2.069, 2.059, 2.054, 2.054, 2.057, 2.056, 2.056, 2.058, 2.066, 2.072, 2.073, 2.073,\n> > +                    2.095, 2.091, 2.084, 2.078, 2.075, 2.067, 2.057, 2.057, 2.059, 2.059, 2.058, 2.059, 2.068, 2.073, 2.075, 2.078\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 4850, \"table\":\n> > +                [\n> > +                    2.973, 2.968, 2.956, 2.943, 2.941, 2.932, 2.923, 2.921, 2.924, 2.929, 2.931, 2.939, 2.953, 2.965, 2.966, 2.976,\n> > +                    2.969, 2.962, 2.951, 2.941, 2.934, 2.928, 2.919, 2.918, 2.919, 2.923, 2.927, 2.933, 2.945, 2.957, 2.962, 2.962,\n> > +                    2.964, 2.956, 2.944, 2.932, 2.929, 2.924, 2.915, 2.914, 2.915, 2.919, 2.924, 2.928, 2.941, 2.952, 2.958, 2.959,\n> > +                    2.957, 2.951, 2.939, 2.928, 2.924, 2.919, 2.913, 2.911, 2.911, 2.915, 2.919, 2.925, 2.936, 2.947, 2.952, 2.953,\n> > +                    2.954, 2.947, 2.935, 2.924, 2.919, 2.915, 2.908, 2.906, 2.906, 2.907, 2.914, 2.921, 2.932, 2.941, 2.943, 2.942,\n> > +                    2.953, 2.946, 2.932, 2.921, 2.916, 2.911, 2.904, 2.902, 2.901, 2.904, 2.909, 2.919, 2.926, 2.937, 2.939, 2.939,\n> > +                    2.953, 2.947, 2.932, 2.918, 2.915, 2.909, 2.903, 2.901, 2.901, 2.906, 2.911, 2.918, 2.924, 2.936, 2.936, 2.932,\n> > +                    2.956, 2.948, 2.934, 2.919, 2.916, 2.908, 2.903, 2.901, 2.902, 2.907, 2.909, 2.917, 2.926, 2.936, 2.939, 2.939,\n> > +                    2.957, 2.951, 2.936, 2.923, 2.917, 2.907, 2.904, 2.901, 2.902, 2.908, 2.911, 2.919, 2.929, 2.939, 2.942, 2.942,\n> > +                    2.961, 2.951, 2.936, 2.922, 2.918, 2.906, 2.904, 2.901, 2.901, 2.907, 2.911, 2.921, 2.931, 2.941, 2.942, 2.944,\n> > +                    2.964, 2.954, 2.936, 2.924, 2.918, 2.909, 2.905, 2.905, 2.905, 2.907, 2.912, 2.923, 2.933, 2.942, 2.944, 2.944,\n> > +                    2.964, 2.958, 2.943, 2.927, 2.921, 2.914, 2.909, 2.907, 2.907, 2.912, 2.916, 2.928, 2.936, 2.944, 2.947, 2.952\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 5930, \"table\":\n> > +                [\n> > +                    3.312, 3.308, 3.301, 3.294, 3.288, 3.277, 3.268, 3.261, 3.259, 3.261, 3.267, 3.273, 3.285, 3.301, 3.303, 3.312,\n> > +                    3.308, 3.304, 3.294, 3.291, 3.283, 3.271, 3.263, 3.259, 3.257, 3.258, 3.261, 3.268, 3.278, 3.293, 3.299, 3.299,\n> > +                    3.302, 3.296, 3.288, 3.282, 3.276, 3.267, 3.259, 3.254, 3.252, 3.253, 3.256, 3.261, 3.273, 3.289, 3.292, 3.292,\n> > +                    3.296, 3.289, 3.282, 3.276, 3.269, 3.263, 3.256, 3.251, 3.248, 3.249, 3.251, 3.257, 3.268, 3.279, 3.284, 3.284,\n> > +                    3.292, 3.285, 3.279, 3.271, 3.264, 3.257, 3.249, 3.243, 3.241, 3.241, 3.246, 3.252, 3.261, 3.274, 3.275, 3.273,\n> > +                    3.291, 3.285, 3.276, 3.268, 3.259, 3.251, 3.242, 3.239, 3.236, 3.238, 3.244, 3.248, 3.258, 3.268, 3.269, 3.265,\n> > +                    3.294, 3.288, 3.275, 3.266, 3.257, 3.248, 3.239, 3.238, 3.237, 3.238, 3.243, 3.246, 3.255, 3.264, 3.264, 3.257,\n> > +                    3.297, 3.293, 3.279, 3.268, 3.258, 3.249, 3.238, 3.237, 3.239, 3.239, 3.243, 3.245, 3.255, 3.264, 3.264, 3.263,\n> > +                    3.301, 3.295, 3.281, 3.271, 3.259, 3.248, 3.237, 3.237, 3.239, 3.241, 3.243, 3.246, 3.257, 3.265, 3.266, 3.264,\n> > +                    3.306, 3.295, 3.279, 3.271, 3.261, 3.247, 3.235, 3.234, 3.239, 3.239, 3.243, 3.247, 3.258, 3.265, 3.265, 3.264,\n> > +                    3.308, 3.297, 3.279, 3.272, 3.261, 3.249, 3.239, 3.239, 3.241, 3.243, 3.245, 3.248, 3.261, 3.265, 3.266, 3.265,\n> > +                    3.309, 3.301, 3.286, 3.276, 3.267, 3.256, 3.246, 3.242, 3.244, 3.244, 3.249, 3.253, 3.263, 3.267, 3.271, 3.274\n> > +                ]\n> > +            }\n> > +        ],\n> > +        \"calibrations_Cb\":\n> > +        [\n> > +            {\n> > +                \"ct\": 2960, \"table\":\n> > +                [\n> > +                    2.133, 2.134, 2.139, 2.143, 2.148, 2.155, 2.158, 2.158, 2.158, 2.161, 2.161, 2.162, 2.159, 2.156, 2.152, 2.151,\n> > +                    2.132, 2.133, 2.135, 2.142, 2.147, 2.153, 2.158, 2.158, 2.158, 2.158, 2.159, 2.159, 2.157, 2.154, 2.151, 2.148,\n> > +                    2.133, 2.133, 2.135, 2.142, 2.149, 2.154, 2.158, 2.158, 2.157, 2.156, 2.158, 2.157, 2.155, 2.153, 2.148, 2.146,\n> > +                    2.133, 2.133, 2.138, 2.145, 2.149, 2.154, 2.158, 2.159, 2.158, 2.155, 2.157, 2.156, 2.153, 2.149, 2.146, 2.144,\n> > +                    2.133, 2.134, 2.139, 2.146, 2.149, 2.154, 2.158, 2.159, 2.159, 2.156, 2.154, 2.154, 2.149, 2.145, 2.143, 2.139,\n> > +                    2.135, 2.135, 2.139, 2.146, 2.151, 2.155, 2.158, 2.159, 2.158, 2.156, 2.153, 2.151, 2.146, 2.143, 2.139, 2.136,\n> > +                    2.135, 2.135, 2.138, 2.145, 2.151, 2.154, 2.157, 2.158, 2.157, 2.156, 2.153, 2.151, 2.147, 2.143, 2.141, 2.137,\n> > +                    2.135, 2.134, 2.135, 2.141, 2.149, 2.154, 2.157, 2.157, 2.157, 2.157, 2.157, 2.153, 2.149, 2.146, 2.142, 2.139,\n> > +                    2.132, 2.133, 2.135, 2.139, 2.148, 2.153, 2.158, 2.159, 2.159, 2.161, 2.161, 2.157, 2.154, 2.149, 2.144, 2.141,\n> > +                    2.132, 2.133, 2.135, 2.141, 2.149, 2.155, 2.161, 2.161, 2.162, 2.162, 2.163, 2.159, 2.154, 2.149, 2.144, 2.138,\n> > +                    2.136, 2.136, 2.137, 2.143, 2.149, 2.156, 2.162, 2.163, 2.162, 2.163, 2.164, 2.161, 2.157, 2.152, 2.146, 2.138,\n> > +                    2.137, 2.137, 2.141, 2.147, 2.152, 2.157, 2.162, 2.162, 2.159, 2.161, 2.162, 2.162, 2.157, 2.152, 2.148, 2.148\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 4850, \"table\":\n> > +                [\n> > +                    1.463, 1.464, 1.471, 1.478, 1.479, 1.483, 1.484, 1.486, 1.486, 1.484, 1.483, 1.481, 1.478, 1.475, 1.471, 1.468,\n> > +                    1.463, 1.463, 1.468, 1.476, 1.479, 1.482, 1.484, 1.487, 1.486, 1.484, 1.483, 1.482, 1.478, 1.473, 1.469, 1.468,\n> > +                    1.463, 1.464, 1.468, 1.476, 1.479, 1.483, 1.484, 1.486, 1.486, 1.485, 1.484, 1.482, 1.477, 1.473, 1.469, 1.468,\n> > +                    1.463, 1.464, 1.469, 1.477, 1.481, 1.483, 1.485, 1.487, 1.487, 1.485, 1.485, 1.482, 1.478, 1.474, 1.469, 1.468,\n> > +                    1.465, 1.465, 1.471, 1.478, 1.481, 1.484, 1.486, 1.488, 1.488, 1.487, 1.485, 1.482, 1.477, 1.472, 1.468, 1.467,\n> > +                    1.465, 1.466, 1.472, 1.479, 1.482, 1.485, 1.486, 1.488, 1.488, 1.486, 1.484, 1.479, 1.475, 1.472, 1.468, 1.466,\n> > +                    1.466, 1.466, 1.472, 1.478, 1.482, 1.484, 1.485, 1.488, 1.487, 1.485, 1.483, 1.479, 1.475, 1.472, 1.469, 1.468,\n> > +                    1.465, 1.466, 1.469, 1.476, 1.481, 1.485, 1.485, 1.486, 1.486, 1.485, 1.483, 1.479, 1.477, 1.474, 1.471, 1.469,\n> > +                    1.464, 1.465, 1.469, 1.476, 1.481, 1.484, 1.485, 1.487, 1.487, 1.486, 1.485, 1.481, 1.478, 1.475, 1.471, 1.469,\n> > +                    1.463, 1.464, 1.469, 1.477, 1.481, 1.485, 1.485, 1.488, 1.488, 1.487, 1.486, 1.481, 1.478, 1.475, 1.471, 1.468,\n> > +                    1.464, 1.465, 1.471, 1.478, 1.482, 1.486, 1.486, 1.488, 1.488, 1.487, 1.486, 1.481, 1.478, 1.475, 1.472, 1.468,\n> > +                    1.465, 1.466, 1.472, 1.481, 1.483, 1.487, 1.487, 1.488, 1.488, 1.486, 1.485, 1.481, 1.479, 1.476, 1.473, 1.472\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 5930, \"table\":\n> > +                [\n> > +                    1.443, 1.444, 1.448, 1.453, 1.459, 1.463, 1.465, 1.467, 1.469, 1.469, 1.467, 1.466, 1.462, 1.457, 1.454, 1.451,\n> > +                    1.443, 1.444, 1.445, 1.451, 1.459, 1.463, 1.465, 1.467, 1.469, 1.469, 1.467, 1.465, 1.461, 1.456, 1.452, 1.451,\n> > +                    1.444, 1.444, 1.445, 1.451, 1.459, 1.463, 1.466, 1.468, 1.469, 1.469, 1.467, 1.465, 1.461, 1.456, 1.452, 1.449,\n> > +                    1.444, 1.444, 1.447, 1.452, 1.459, 1.464, 1.467, 1.469, 1.471, 1.469, 1.467, 1.466, 1.461, 1.456, 1.452, 1.449,\n> > +                    1.444, 1.445, 1.448, 1.452, 1.459, 1.465, 1.469, 1.471, 1.471, 1.471, 1.468, 1.465, 1.461, 1.455, 1.451, 1.449,\n> > +                    1.445, 1.446, 1.449, 1.453, 1.461, 1.466, 1.469, 1.471, 1.472, 1.469, 1.467, 1.465, 1.459, 1.455, 1.451, 1.447,\n> > +                    1.446, 1.446, 1.449, 1.453, 1.461, 1.466, 1.469, 1.469, 1.469, 1.469, 1.467, 1.465, 1.459, 1.455, 1.452, 1.449,\n> > +                    1.446, 1.446, 1.447, 1.451, 1.459, 1.466, 1.469, 1.469, 1.469, 1.469, 1.467, 1.465, 1.461, 1.457, 1.454, 1.451,\n> > +                    1.444, 1.444, 1.447, 1.451, 1.459, 1.466, 1.469, 1.469, 1.471, 1.471, 1.468, 1.466, 1.462, 1.458, 1.454, 1.452,\n> > +                    1.444, 1.444, 1.448, 1.453, 1.459, 1.466, 1.469, 1.471, 1.472, 1.472, 1.468, 1.466, 1.462, 1.458, 1.454, 1.449,\n> > +                    1.446, 1.447, 1.449, 1.454, 1.461, 1.466, 1.471, 1.471, 1.471, 1.471, 1.468, 1.466, 1.462, 1.459, 1.455, 1.449,\n> > +                    1.447, 1.447, 1.452, 1.457, 1.462, 1.468, 1.472, 1.472, 1.471, 1.471, 1.468, 1.466, 1.462, 1.459, 1.456, 1.455\n> > +                ]\n> > +            }\n> > +        ],\n> > +        \"luminance_lut\":\n> > +        [\n> > +            1.548, 1.499, 1.387, 1.289, 1.223, 1.183, 1.164, 1.154, 1.153, 1.169, 1.211, 1.265, 1.345, 1.448, 1.581, 1.619,\n> > +            1.513, 1.412, 1.307, 1.228, 1.169, 1.129, 1.105, 1.098, 1.103, 1.127, 1.157, 1.209, 1.272, 1.361, 1.481, 1.583,\n> > +            1.449, 1.365, 1.257, 1.175, 1.124, 1.085, 1.062, 1.054, 1.059, 1.079, 1.113, 1.151, 1.211, 1.293, 1.407, 1.488,\n> > +            1.424, 1.324, 1.222, 1.139, 1.089, 1.056, 1.034, 1.031, 1.034, 1.049, 1.075, 1.115, 1.164, 1.241, 1.351, 1.446,\n> > +            1.412, 1.297, 1.203, 1.119, 1.069, 1.039, 1.021, 1.016, 1.022, 1.032, 1.052, 1.086, 1.135, 1.212, 1.321, 1.439,\n> > +            1.406, 1.287, 1.195, 1.115, 1.059, 1.028, 1.014, 1.012, 1.015, 1.026, 1.041, 1.074, 1.125, 1.201, 1.302, 1.425,\n> > +            1.406, 1.294, 1.205, 1.126, 1.062, 1.031, 1.013, 1.009, 1.011, 1.019, 1.042, 1.079, 1.129, 1.203, 1.302, 1.435,\n> > +            1.415, 1.318, 1.229, 1.146, 1.076, 1.039, 1.019, 1.014, 1.017, 1.031, 1.053, 1.093, 1.144, 1.219, 1.314, 1.436,\n> > +            1.435, 1.348, 1.246, 1.164, 1.094, 1.059, 1.036, 1.032, 1.037, 1.049, 1.072, 1.114, 1.167, 1.257, 1.343, 1.462,\n> > +            1.471, 1.385, 1.278, 1.189, 1.124, 1.084, 1.064, 1.061, 1.069, 1.078, 1.101, 1.146, 1.207, 1.298, 1.415, 1.496,\n> > +            1.522, 1.436, 1.323, 1.228, 1.169, 1.118, 1.101, 1.094, 1.099, 1.113, 1.146, 1.194, 1.265, 1.353, 1.474, 1.571,\n> > +            1.578, 1.506, 1.378, 1.281, 1.211, 1.156, 1.135, 1.134, 1.139, 1.158, 1.194, 1.251, 1.327, 1.427, 1.559, 1.611\n> > +        ],\n> > +        \"sigma\": 0.00121,\n> > +        \"sigma_Cb\": 0.00115\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\": 2360, \"ccm\":\n> > +                [\n> > +                    1.66078, -0.23588, -0.42491, -0.47456, 1.82763, -0.35307, -0.00545, -1.44729, 2.45273\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 2870, \"ccm\":\n> > +                [\n> > +                    1.78373, -0.55344, -0.23029, -0.39951, 1.69701, -0.29751, 0.01986, -1.06525, 2.04539\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 2970, \"ccm\":\n> > +                [\n> > +                    1.73511, -0.56973, -0.16537, -0.36338, 1.69878, -0.33539, -0.02354, -0.76813, 1.79168\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 3000, \"ccm\":\n> > +                [\n> > +                    2.06374, -0.92218, -0.14156, -0.41721, 1.69289, -0.27568, -0.00554, -0.92741, 1.93295\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 3700, \"ccm\":\n> > +                [\n> > +                    2.13792, -1.08136, -0.05655, -0.34739, 1.58989, -0.24249, -0.00349, -0.76789, 1.77138\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 3870, \"ccm\":\n> > +                [\n> > +                    1.83834, -0.70528, -0.13307, -0.30499, 1.60523, -0.30024, -0.05701, -0.58313, 1.64014\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 4000, \"ccm\":\n> > +                [\n> > +                    2.15741, -1.10295, -0.05447, -0.34631, 1.61158, -0.26528, -0.02723, -0.70288, 1.73011\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 4400, \"ccm\":\n> > +                [\n> > +                    2.05729, -0.95007, -0.10723, -0.41712, 1.78606, -0.36894, -0.11899, -0.55727, 1.67626\n> > +                ]\n> > +            },\n> > +\n> > +            {\n> > +                \"ct\": 4715, \"ccm\":\n> > +                [\n> > +                    1.90255, -0.77478, -0.12777, -0.31338, 1.88197, -0.56858, -0.06001, -0.61785, 1.67786\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 5920, \"ccm\":\n> > +                [\n> > +                    1.98691, -0.84671, -0.14019, -0.26581, 1.70615, -0.44035, -0.09532, -0.47332, 1.56864\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 9050, \"ccm\":\n> > +                [\n> > +                    2.09255, -0.76541, -0.32714, -0.28973, 2.27462, -0.98489, -0.17299, -0.61275, 1.78574\n> > +                ]\n> > +            }\n> > +        ]\n> > +    },\n> > +    \"rpi.sharpen\":\n> > +    {\n> > +\n> > +    },\n> > +    \"rpi.focus\":\n> > +    {\n> > +    }\n> > +}\n> > diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> > index 68433fc2..2def75cb 100644\n> > --- a/src/ipa/raspberrypi/data/meson.build\n> > +++ b/src/ipa/raspberrypi/data/meson.build\n> > @@ -2,10 +2,13 @@\n> >\n> >  conf_files = files([\n> >      'imx219.json',\n> > +    'imx219_noir.json',\n> >      'imx290.json',\n> >      'imx378.json',\n> >      'imx477.json',\n> > +    'imx477_noir.json',\n> >      'ov5647.json',\n> > +    'ov5647_noir.json',\n> >      'ov9281.json',\n> >      'se327m12.json',\n> >      'uncalibrated.json',\n> > diff --git a/src/ipa/raspberrypi/data/ov5647_noir.json b/src/ipa/raspberrypi/data/ov5647_noir.json\n> > new file mode 100644\n> > index 00000000..c4bb21a0\n> > --- /dev/null\n> > +++ b/src/ipa/raspberrypi/data/ov5647_noir.json\n> > @@ -0,0 +1,341 @@\n> > +{\n> > +    \"rpi.black_level\":\n> > +    {\n> > +        \"black_level\": 1024\n> > +    },\n> > +    \"rpi.dpc\":\n> > +    {\n> > +\n> > +    },\n> > +    \"rpi.lux\":\n> > +    {\n> > +        \"reference_shutter_speed\": 21663,\n> > +        \"reference_gain\": 1.0,\n> > +        \"reference_aperture\": 1.0,\n> > +        \"reference_lux\": 987,\n> > +        \"reference_Y\": 8961\n> > +    },\n> > +    \"rpi.noise\":\n> > +    {\n> > +        \"reference_constant\": 0,\n> > +        \"reference_slope\": 4.25\n> > +    },\n> > +    \"rpi.geq\":\n> > +    {\n> > +        \"offset\": 401,\n> > +        \"slope\": 0.05619\n> > +    },\n> > +    \"rpi.sdn\":\n> > +    {\n> > +\n> > +    },\n> > +    \"rpi.awb\":\n> > +    {\n> > +     \"bayes\": 0\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, 66666\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, 33333\n> > +                ],\n> > +                \"gain\":\n> > +                [\n> > +                    1.0, 2.0, 4.0, 6.0, 6.0\n> > +                ]\n> > +            },\n> > +            \"long\":\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> > +        },\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> > +         \"shadows\":\n> > +         [\n> > +             {\n> > +                 \"bound\": \"LOWER\", \"q_lo\": 0.0, \"q_hi\": 0.5, \"y_target\":\n> > +                    [\n> > +                        0, 0.17, 1000, 0.17\n> > +                    ]\n> > +                }\n> > +            ]\n> > +        },\n> > +        \"y_target\":\n> > +        [\n> > +            0, 0.16, 1000, 0.165, 10000, 0.17\n> > +        ],\n> > +     \"base_ev\": 1.25\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\": 3000, \"table\":\n> > +                [\n> > +                    1.105, 1.103, 1.093, 1.083, 1.071, 1.065, 1.065, 1.065, 1.066, 1.069, 1.072, 1.077, 1.084, 1.089, 1.093, 1.093,\n> > +                    1.103, 1.096, 1.084, 1.072, 1.059, 1.051, 1.047, 1.047, 1.051, 1.053, 1.059, 1.067, 1.075, 1.082, 1.085, 1.086,\n> > +                    1.096, 1.084, 1.072, 1.059, 1.051, 1.045, 1.039, 1.038, 1.039, 1.045, 1.049, 1.057, 1.063, 1.072, 1.081, 1.082,\n> > +                    1.092, 1.075, 1.061, 1.052, 1.045, 1.039, 1.036, 1.035, 1.035, 1.039, 1.044, 1.049, 1.056, 1.063, 1.072, 1.081,\n> > +                    1.092, 1.073, 1.058, 1.048, 1.043, 1.038, 1.035, 1.033, 1.033, 1.035, 1.039, 1.044, 1.051, 1.057, 1.069, 1.078,\n> > +                    1.091, 1.068, 1.054, 1.045, 1.041, 1.038, 1.035, 1.032, 1.032, 1.032, 1.036, 1.041, 1.045, 1.055, 1.069, 1.078,\n> > +                    1.091, 1.068, 1.052, 1.043, 1.041, 1.038, 1.035, 1.032, 1.031, 1.032, 1.034, 1.036, 1.043, 1.055, 1.069, 1.078,\n> > +                    1.092, 1.068, 1.052, 1.047, 1.042, 1.041, 1.038, 1.035, 1.032, 1.032, 1.035, 1.039, 1.043, 1.055, 1.071, 1.079,\n> > +                    1.092, 1.073, 1.057, 1.051, 1.047, 1.047, 1.044, 1.041, 1.038, 1.038, 1.039, 1.043, 1.051, 1.059, 1.076, 1.083,\n> > +                    1.092, 1.081, 1.068, 1.058, 1.056, 1.056, 1.053, 1.052, 1.049, 1.048, 1.048, 1.051, 1.059, 1.066, 1.083, 1.085,\n> > +                    1.091, 1.087, 1.081, 1.068, 1.065, 1.064, 1.062, 1.062, 1.061, 1.056, 1.056, 1.056, 1.064, 1.069, 1.084, 1.089,\n> > +                    1.091, 1.089, 1.085, 1.079, 1.069, 1.068, 1.067, 1.067, 1.067, 1.063, 1.061, 1.063, 1.068, 1.069, 1.081, 1.092\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 5000, \"table\":\n> > +                [\n> > +                    1.486, 1.484, 1.468, 1.449, 1.427, 1.403, 1.399, 1.399, 1.399, 1.404, 1.413, 1.433, 1.454, 1.473, 1.482, 1.488,\n> > +                    1.484, 1.472, 1.454, 1.431, 1.405, 1.381, 1.365, 1.365, 1.367, 1.373, 1.392, 1.411, 1.438, 1.458, 1.476, 1.481,\n> > +                    1.476, 1.458, 1.433, 1.405, 1.381, 1.361, 1.339, 1.334, 1.334, 1.346, 1.362, 1.391, 1.411, 1.438, 1.462, 1.474,\n> > +                    1.471, 1.443, 1.417, 1.388, 1.361, 1.339, 1.321, 1.313, 1.313, 1.327, 1.346, 1.362, 1.391, 1.422, 1.453, 1.473,\n> > +                    1.469, 1.439, 1.408, 1.377, 1.349, 1.321, 1.312, 1.299, 1.299, 1.311, 1.327, 1.348, 1.378, 1.415, 1.446, 1.468,\n> > +                    1.468, 1.434, 1.402, 1.371, 1.341, 1.316, 1.299, 1.296, 1.295, 1.299, 1.314, 1.338, 1.371, 1.408, 1.441, 1.466,\n> > +                    1.468, 1.434, 1.401, 1.371, 1.341, 1.316, 1.301, 1.296, 1.295, 1.297, 1.314, 1.338, 1.369, 1.408, 1.441, 1.465,\n> > +                    1.469, 1.436, 1.401, 1.374, 1.348, 1.332, 1.315, 1.301, 1.301, 1.313, 1.324, 1.342, 1.372, 1.409, 1.442, 1.465,\n> > +                    1.471, 1.444, 1.413, 1.388, 1.371, 1.348, 1.332, 1.323, 1.323, 1.324, 1.342, 1.362, 1.386, 1.418, 1.449, 1.467,\n> > +                    1.473, 1.454, 1.431, 1.407, 1.388, 1.371, 1.359, 1.352, 1.351, 1.351, 1.362, 1.383, 1.404, 1.433, 1.462, 1.472,\n> > +                    1.474, 1.461, 1.447, 1.424, 1.407, 1.394, 1.385, 1.381, 1.379, 1.381, 1.383, 1.401, 1.419, 1.444, 1.466, 1.481,\n> > +                    1.474, 1.464, 1.455, 1.442, 1.421, 1.408, 1.403, 1.403, 1.403, 1.399, 1.402, 1.415, 1.432, 1.446, 1.467, 1.483\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 6500, \"table\":\n> > +                [\n> > +                    1.567, 1.565, 1.555, 1.541, 1.525, 1.518, 1.518, 1.518, 1.521, 1.527, 1.532, 1.541, 1.551, 1.559, 1.567, 1.569,\n> > +                    1.565, 1.557, 1.542, 1.527, 1.519, 1.515, 1.511, 1.516, 1.519, 1.524, 1.528, 1.533, 1.542, 1.553, 1.559, 1.562,\n> > +                    1.561, 1.546, 1.532, 1.521, 1.518, 1.515, 1.511, 1.516, 1.519, 1.524, 1.528, 1.529, 1.533, 1.542, 1.554, 1.559,\n> > +                    1.561, 1.539, 1.526, 1.524, 1.521, 1.521, 1.522, 1.524, 1.525, 1.531, 1.529, 1.529, 1.531, 1.538, 1.549, 1.558,\n> > +                    1.559, 1.538, 1.526, 1.525, 1.524, 1.528, 1.534, 1.536, 1.536, 1.536, 1.532, 1.529, 1.531, 1.537, 1.548, 1.556,\n> > +                    1.561, 1.537, 1.525, 1.524, 1.526, 1.532, 1.537, 1.539, 1.538, 1.537, 1.532, 1.529, 1.529, 1.537, 1.546, 1.556,\n> > +                    1.561, 1.536, 1.524, 1.522, 1.525, 1.532, 1.538, 1.538, 1.537, 1.533, 1.528, 1.526, 1.527, 1.536, 1.546, 1.555,\n> > +                    1.561, 1.537, 1.522, 1.521, 1.524, 1.531, 1.536, 1.537, 1.534, 1.529, 1.526, 1.522, 1.523, 1.534, 1.547, 1.555,\n> > +                    1.561, 1.538, 1.524, 1.522, 1.526, 1.531, 1.535, 1.535, 1.534, 1.527, 1.524, 1.522, 1.522, 1.535, 1.549, 1.556,\n> > +                    1.558, 1.543, 1.532, 1.526, 1.526, 1.529, 1.534, 1.535, 1.533, 1.526, 1.523, 1.522, 1.524, 1.537, 1.552, 1.557,\n> > +                    1.555, 1.546, 1.541, 1.528, 1.527, 1.528, 1.531, 1.533, 1.531, 1.527, 1.522, 1.522, 1.526, 1.536, 1.552, 1.561,\n> > +                    1.555, 1.547, 1.542, 1.538, 1.526, 1.526, 1.529, 1.531, 1.529, 1.528, 1.519, 1.519, 1.527, 1.531, 1.543, 1.561\n> > +                ]\n> > +            }\n> > +        ],\n> > +        \"calibrations_Cb\":\n> > +        [\n> > +            {\n> > +                \"ct\": 3000, \"table\":\n> > +                [\n> > +                    1.684, 1.688, 1.691, 1.697, 1.709, 1.722, 1.735, 1.745, 1.747, 1.745, 1.731, 1.719, 1.709, 1.705, 1.699, 1.699,\n> > +                    1.684, 1.689, 1.694, 1.708, 1.721, 1.735, 1.747, 1.762, 1.762, 1.758, 1.745, 1.727, 1.716, 1.707, 1.701, 1.699,\n> > +                    1.684, 1.691, 1.704, 1.719, 1.734, 1.755, 1.772, 1.786, 1.789, 1.788, 1.762, 1.745, 1.724, 1.709, 1.702, 1.698,\n> > +                    1.682, 1.694, 1.709, 1.729, 1.755, 1.773, 1.798, 1.815, 1.817, 1.808, 1.788, 1.762, 1.733, 1.714, 1.704, 1.699,\n> > +                    1.682, 1.693, 1.713, 1.742, 1.772, 1.798, 1.815, 1.829, 1.831, 1.821, 1.807, 1.773, 1.742, 1.716, 1.703, 1.699,\n> > +                    1.681, 1.693, 1.713, 1.742, 1.772, 1.799, 1.828, 1.839, 1.839, 1.828, 1.807, 1.774, 1.742, 1.715, 1.699, 1.695,\n> > +                    1.679, 1.691, 1.712, 1.739, 1.771, 1.798, 1.825, 1.829, 1.831, 1.818, 1.801, 1.774, 1.738, 1.712, 1.695, 1.691,\n> > +                    1.676, 1.685, 1.703, 1.727, 1.761, 1.784, 1.801, 1.817, 1.817, 1.801, 1.779, 1.761, 1.729, 1.706, 1.691, 1.684,\n> > +                    1.669, 1.678, 1.692, 1.714, 1.741, 1.764, 1.784, 1.795, 1.795, 1.779, 1.761, 1.738, 1.713, 1.696, 1.683, 1.679,\n> > +                    1.664, 1.671, 1.679, 1.693, 1.716, 1.741, 1.762, 1.769, 1.769, 1.753, 1.738, 1.713, 1.701, 1.687, 1.681, 1.676,\n> > +                    1.661, 1.664, 1.671, 1.679, 1.693, 1.714, 1.732, 1.739, 1.739, 1.729, 1.708, 1.701, 1.685, 1.679, 1.676, 1.677,\n> > +                    1.659, 1.661, 1.664, 1.671, 1.679, 1.693, 1.712, 1.714, 1.714, 1.708, 1.701, 1.687, 1.679, 1.672, 1.673, 1.677\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 5000, \"table\":\n> > +                [\n> > +                    1.177, 1.183, 1.187, 1.191, 1.197, 1.206, 1.213, 1.215, 1.215, 1.215, 1.211, 1.204, 1.196, 1.191, 1.183, 1.182,\n> > +                    1.179, 1.185, 1.191, 1.196, 1.206, 1.217, 1.224, 1.229, 1.229, 1.226, 1.221, 1.212, 1.202, 1.195, 1.188, 1.182,\n> > +                    1.183, 1.191, 1.196, 1.206, 1.217, 1.229, 1.239, 1.245, 1.245, 1.245, 1.233, 1.221, 1.212, 1.199, 1.193, 1.187,\n> > +                    1.183, 1.192, 1.201, 1.212, 1.229, 1.241, 1.252, 1.259, 1.259, 1.257, 1.245, 1.233, 1.217, 1.201, 1.194, 1.192,\n> > +                    1.183, 1.192, 1.202, 1.219, 1.238, 1.252, 1.261, 1.269, 1.268, 1.261, 1.257, 1.241, 1.223, 1.204, 1.194, 1.191,\n> > +                    1.182, 1.192, 1.202, 1.219, 1.239, 1.255, 1.266, 1.271, 1.271, 1.265, 1.258, 1.242, 1.223, 1.205, 1.192, 1.191,\n> > +                    1.181, 1.189, 1.199, 1.218, 1.239, 1.254, 1.262, 1.268, 1.268, 1.258, 1.253, 1.241, 1.221, 1.204, 1.191, 1.187,\n> > +                    1.179, 1.184, 1.193, 1.211, 1.232, 1.243, 1.254, 1.257, 1.256, 1.253, 1.242, 1.232, 1.216, 1.199, 1.187, 1.183,\n> > +                    1.174, 1.179, 1.187, 1.202, 1.218, 1.232, 1.243, 1.246, 1.246, 1.239, 1.232, 1.218, 1.207, 1.191, 1.183, 1.179,\n> > +                    1.169, 1.175, 1.181, 1.189, 1.202, 1.218, 1.229, 1.232, 1.232, 1.224, 1.218, 1.207, 1.199, 1.185, 1.181, 1.174,\n> > +                    1.164, 1.168, 1.175, 1.179, 1.189, 1.201, 1.209, 1.213, 1.213, 1.209, 1.201, 1.198, 1.186, 1.181, 1.174, 1.173,\n> > +                    1.161, 1.166, 1.171, 1.175, 1.179, 1.189, 1.197, 1.198, 1.198, 1.197, 1.196, 1.186, 1.182, 1.175, 1.173, 1.173\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 6500, \"table\":\n> > +                [\n> > +                    1.166, 1.171, 1.173, 1.178, 1.187, 1.193, 1.201, 1.205, 1.205, 1.205, 1.199, 1.191, 1.184, 1.179, 1.174, 1.171,\n> > +                    1.166, 1.172, 1.176, 1.184, 1.195, 1.202, 1.209, 1.216, 1.216, 1.213, 1.208, 1.201, 1.189, 1.182, 1.176, 1.171,\n> > +                    1.166, 1.173, 1.183, 1.195, 1.202, 1.214, 1.221, 1.228, 1.229, 1.228, 1.221, 1.209, 1.201, 1.186, 1.179, 1.174,\n> > +                    1.165, 1.174, 1.187, 1.201, 1.214, 1.223, 1.235, 1.241, 1.242, 1.241, 1.229, 1.221, 1.205, 1.188, 1.181, 1.177,\n> > +                    1.165, 1.174, 1.189, 1.207, 1.223, 1.235, 1.242, 1.253, 1.252, 1.245, 1.241, 1.228, 1.211, 1.189, 1.181, 1.178,\n> > +                    1.164, 1.173, 1.189, 1.207, 1.224, 1.238, 1.249, 1.255, 1.255, 1.249, 1.242, 1.228, 1.211, 1.191, 1.179, 1.176,\n> > +                    1.163, 1.172, 1.187, 1.207, 1.223, 1.237, 1.245, 1.253, 1.252, 1.243, 1.237, 1.228, 1.207, 1.188, 1.176, 1.173,\n> > +                    1.159, 1.167, 1.179, 1.199, 1.217, 1.227, 1.237, 1.241, 1.241, 1.237, 1.228, 1.217, 1.201, 1.184, 1.174, 1.169,\n> > +                    1.156, 1.164, 1.172, 1.189, 1.205, 1.217, 1.226, 1.229, 1.229, 1.222, 1.217, 1.204, 1.192, 1.177, 1.171, 1.166,\n> > +                    1.154, 1.159, 1.166, 1.177, 1.189, 1.205, 1.213, 1.216, 1.216, 1.209, 1.204, 1.192, 1.183, 1.172, 1.168, 1.162,\n> > +                    1.152, 1.155, 1.161, 1.166, 1.177, 1.188, 1.195, 1.198, 1.199, 1.196, 1.187, 1.183, 1.173, 1.168, 1.163, 1.162,\n> > +                    1.151, 1.154, 1.158, 1.162, 1.168, 1.177, 1.183, 1.184, 1.184, 1.184, 1.182, 1.172, 1.168, 1.165, 1.162, 1.161\n> > +                ]\n> > +            }\n> > +        ],\n> > +        \"luminance_lut\":\n> > +        [\n> > +            2.236, 2.111, 1.912, 1.741, 1.579, 1.451, 1.379, 1.349, 1.349, 1.361, 1.411, 1.505, 1.644, 1.816, 2.034, 2.159,\n> > +            2.139, 1.994, 1.796, 1.625, 1.467, 1.361, 1.285, 1.248, 1.239, 1.265, 1.321, 1.408, 1.536, 1.703, 1.903, 2.087,\n> > +            2.047, 1.898, 1.694, 1.511, 1.373, 1.254, 1.186, 1.152, 1.142, 1.166, 1.226, 1.309, 1.441, 1.598, 1.799, 1.978,\n> > +            1.999, 1.824, 1.615, 1.429, 1.281, 1.179, 1.113, 1.077, 1.071, 1.096, 1.153, 1.239, 1.357, 1.525, 1.726, 1.915,\n> > +            1.976, 1.773, 1.563, 1.374, 1.222, 1.119, 1.064, 1.032, 1.031, 1.049, 1.099, 1.188, 1.309, 1.478, 1.681, 1.893,\n> > +            1.973, 1.756, 1.542, 1.351, 1.196, 1.088, 1.028, 1.011, 1.004, 1.029, 1.077, 1.169, 1.295, 1.459, 1.663, 1.891,\n> > +            1.973, 1.761, 1.541, 1.349, 1.193, 1.087, 1.031, 1.006, 1.006, 1.023, 1.075, 1.169, 1.298, 1.463, 1.667, 1.891,\n> > +            1.982, 1.789, 1.568, 1.373, 1.213, 1.111, 1.051, 1.029, 1.024, 1.053, 1.106, 1.199, 1.329, 1.495, 1.692, 1.903,\n> > +            2.015, 1.838, 1.621, 1.426, 1.268, 1.159, 1.101, 1.066, 1.068, 1.099, 1.166, 1.259, 1.387, 1.553, 1.751, 1.937,\n> > +            2.076, 1.911, 1.692, 1.507, 1.346, 1.236, 1.169, 1.136, 1.139, 1.174, 1.242, 1.349, 1.475, 1.641, 1.833, 2.004,\n> > +            2.193, 2.011, 1.798, 1.604, 1.444, 1.339, 1.265, 1.235, 1.237, 1.273, 1.351, 1.461, 1.598, 1.758, 1.956, 2.125,\n> > +            2.263, 2.154, 1.916, 1.711, 1.549, 1.432, 1.372, 1.356, 1.356, 1.383, 1.455, 1.578, 1.726, 1.914, 2.119, 2.211\n> > +        ],\n> > +        \"sigma\": 0.006,\n> > +        \"sigma_Cb\": 0.00208\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\": 2500, \"ccm\":\n> > +                [\n> > +                    1.70741, -0.05307, -0.65433, -0.62822, 1.68836, -0.06014, -0.04452, -1.87628, 2.92079\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 2803, \"ccm\":\n> > +                [\n> > +                    1.74383, -0.18731, -0.55652, -0.56491, 1.67772, -0.11281, -0.01522, -1.60635, 2.62157\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 2912, \"ccm\":\n> > +                [\n> > +                    1.75215, -0.22221, -0.52995, -0.54568, 1.63522, -0.08954, 0.02633, -1.56997, 2.54364\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 2914, \"ccm\":\n> > +                [\n> > +                    1.72423, -0.28939, -0.43484, -0.55188, 1.62925, -0.07737, 0.01959, -1.28661, 2.26702\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 3605, \"ccm\":\n> > +                [\n> > +                    1.80381, -0.43646, -0.36735, -0.46505, 1.56814, -0.10309, 0.00929, -1.00424, 1.99495\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 4540, \"ccm\":\n> > +                [\n> > +                    1.85263, -0.46545, -0.38719, -0.44136, 1.68443, -0.24307, 0.04108, -0.85599, 1.81491\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 5699, \"ccm\":\n> > +                [\n> > +                    1.98595, -0.63542, -0.35054, -0.34623, 1.54146, -0.19522, 0.00411, -0.70936, 1.70525\n> > +                ]\n> > +            },\n> > +            {\n> > +                \"ct\": 8625, \"ccm\":\n> > +                [\n> > +                    2.21637, -0.56663, -0.64974, -0.41133, 1.96625, -0.55492, -0.02307, -0.83529, 1.85837\n> > +                ]\n> > +            }\n> > +        ]\n> > +    },\n> > +    \"rpi.sharpen\":\n> > +    {\n> > +\n> > +    }\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 EC19FC3240\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 13 Aug 2021 11:17:06 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 634176888F;\n\tFri, 13 Aug 2021 13:17:06 +0200 (CEST)","from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com\n\t[IPv6:2a00:1450:4864:20::32d])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0EDD1687FA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 13 Aug 2021 13:17:04 +0200 (CEST)","by mail-wm1-x32d.google.com with SMTP id\n\to1-20020a05600c5101b02902e676fe1f04so7517486wms.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 13 Aug 2021 04:17:04 -0700 (PDT)"],"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=\"TKWQOOvG\"; 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=rJ3Zb2wgKPHggQVBg57R0HIvmC2a+ZmFDjW5uD8NEOM=;\n\tb=TKWQOOvG9FYvrOP8VG9GTAdSaB2ShRDpKVuF5kRm16IpWBLsLgHCphMkMhXOowJ1lU\n\tQMbGHuYygTzwpOfnHe0u2fCfWJBS4Ej0KESfRbwws9Ww4MJckGAlOVYOFVnXoCukCL0V\n\tf3Bw7o+jLY2d1gfvbs0mLuUM0GBRS7pYrD0LKu4sGbVmJEoHCu4fbRi59JgbjkM8IOcK\n\toJqfnoZ4zS5wpvI0hwAU7dhxRgpgAOyy/c1i0yD9tGD5CgRH3cXw+o6n1TTXBm6Ln78a\n\tsRynSslkf1ApK8NU884QHtFtjmggf4+nvTRaR2HNwvY2tiayKZ707aDk3lrg8T4ct35E\n\tecjg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=rJ3Zb2wgKPHggQVBg57R0HIvmC2a+ZmFDjW5uD8NEOM=;\n\tb=rx/dzevmFn0tQbbIaxxDOtxBGe39CwQT9+8jOVlJAlCTr/n20auXxf7+/eBwpJmo+l\n\tHvz7HjmpY59jV1QSDIvRDFU9aYudSUZdkGARgtM9VOTBiPh+nGhdC8qSL9sOzs3NXlOt\n\tCAcXJQP2U61gdwCTMqjg61WRzAaqdA6e/OVBCMCgKGT0rkj0LgukAWeyW+HivHvVrWB0\n\tiwBKnyICu3pYGCpyZGMuWi+IlThevca7t6OTP3B9w4wpBvS4E8hphmE6IFA6/mC1D3gh\n\tEYpIwxFdr5NtdItWVTVcFbElQFQHeNV52ovp3vLTbIewBPNmGqEztI0knHW5vhDcTI6X\n\tB0yQ==","X-Gm-Message-State":"AOAM530qd78lXTO0TvKlCVDH08lI7aSdsX4vY983Z8QfVepF69eO/zcw\n\tcK7vH6MXDr/x2RsY7YrF5VBxoRdzK5I1RB+MlVjyYw==","X-Google-Smtp-Source":"ABdhPJwio0YVzij5+v/ndSFIQ8bwf8yyxKRrybZzwSzWbhQX3zGpHpc7+lPyqx71hks+FLgQ4uZXoz66qRu/nYEZq3k=","X-Received":"by 2002:a05:600c:4e94:: with SMTP id\n\tf20mr2084323wmq.135.1628853423315; \n\tFri, 13 Aug 2021 04:17:03 -0700 (PDT)","MIME-Version":"1.0","References":"<20210813090242.23595-1-david.plowman@raspberrypi.com>\n\t<3879b4c8-94bd-3321-a9a9-cb4caafe89df@ideasonboard.com>","In-Reply-To":"<3879b4c8-94bd-3321-a9a9-cb4caafe89df@ideasonboard.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Fri, 13 Aug 2021 12:16:52 +0100","Message-ID":"<CAHW6GYJN0MdFi5U4N2d91Ov7-xWUOn-S93HpDgw=w5z_qbH-pg@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v1] raspberrypi: ipa: Add tuning files\n\tfor \"NOIR\" ov5647, imx219, imx477 modules","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":"David Plowman <david.plowman@raspberypi.com>,\n\tlibcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":18770,"web_url":"https://patchwork.libcamera.org/comment/18770/","msgid":"<CAEmqJPrCFGtOgfg_tSrq1+jjSgy0Ahtuk5TFw9FBvQ9a3UX9+A@mail.gmail.com>","date":"2021-08-13T12:20:04","subject":"Re: [libcamera-devel] [PATCH v1] raspberrypi: ipa: Add tuning files\n\tfor \"NOIR\" ov5647, imx219, imx477 modules","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi,\n\nOn Fri, 13 Aug 2021 at 12:17, David Plowman <david.plowman@raspberrypi.com>\nwrote:\n\n> Hi Kieran\n>\n> Yes, I agree it's a bit awkward in some respects.\n>\n> On Fri, 13 Aug 2021 at 11:41, Kieran Bingham\n> <kieran.bingham@ideasonboard.com> wrote:\n> >\n> > Hi David,\n> >\n> > On 13/08/2021 10:02, David Plowman wrote:\n> > > \"NOIR\" modules are ones that have had the IR filters removed but are\n> > > otherwise identical. The same tuning can be used as for the regular\n> > > version except that the colour calibration supplied to the AWB\n> > > algorithm no longer works. Instead we need to switch the algorithm to\n> > > its basic \"grey world\" method.\n> > >\n> > > Users with \"NOIR\" modules can switch to the matching \"xxx_noir.json\"\n> > > tuning file by using the LIBCAMERA_RPI_TUNING_FILE environment\n> > > variable.\n> >\n> >\n> > It seems on a cursory glance, that these files are the same as the\n> > non-noir version, except 'bayes' is set to 0, and other unused entries\n> > are not present.\n>\n> Correct!\n>\n> >\n> > That makes me think somehow, there should be a way to use the same\n> > tuning file, but be able to enforce the grey-world algorithm.\n>\n> In another project of ours we actually added the ability to \"include\"\n> one json file in another. But it's quite easy to end up with a bit of\n> a maze of stuff, and it's not standard json either which I think is\n> undesirable. So I'm not sure that simply duplicating stuff is worse,\n> at least it has the virtue of simplicity.\n>\n\nStrongly agree with this.  I've been bitten badly with tuning files that\ncould be\n\"included\" from others.  I would avoid this option at all costs :)\n\nReviewed-by: Naushir Patuck <naush@raspberrypi.com>\n\n\n>\n> >\n> > I won't object to these files going in, as it's a way to solve the\n> > selection with the tools you currently have available, but it brings up\n> > the question of what controls should we expose from the IPA to be able\n> > to set this.\n>\n> In some of our legacy software I think \"grey world\" masquerades as\n> another \"awb mode\" (like \"daylight\"). But that's a bit of a lie really\n> and I can't say I like it. Maybe there could be an \"awb algorithm\"\n> control, but I'm not really convinced users would expect or want that\n> either.\n>\n> >\n> > Or perhaps, given that the tuning file is supposed to be mapped to a\n> > specific camera module, which will either have or not have an IR filter,\n> > maybe this is simply 'the right solution' ...\n>\n> All in all, I think choosing the tuning file according to the module\n> you know you have is actually the right thing. Perhaps the duplication\n> of stuff is suboptimal, but I don't have an alternative that I really\n> prefer, unless anyone else has any good ideas?\n>\n> Thanks!\n> David\n>\n> >\n> >\n> >\n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >\n> >\n> > > Signed-off-by: David Plowman <david.plowman@raspberypi.com>\n> > > ---\n> > >  src/ipa/raspberrypi/data/imx219_noir.json | 344 ++++++++++++++++++++\n> > >  src/ipa/raspberrypi/data/imx477_noir.json | 362 ++++++++++++++++++++++\n> > >  src/ipa/raspberrypi/data/meson.build      |   3 +\n> > >  src/ipa/raspberrypi/data/ov5647_noir.json | 341 ++++++++++++++++++++\n> > >  4 files changed, 1050 insertions(+)\n> > >  create mode 100644 src/ipa/raspberrypi/data/imx219_noir.json\n> > >  create mode 100644 src/ipa/raspberrypi/data/imx477_noir.json\n> > >  create mode 100644 src/ipa/raspberrypi/data/ov5647_noir.json\n> > >\n> > > diff --git a/src/ipa/raspberrypi/data/imx219_noir.json\n> b/src/ipa/raspberrypi/data/imx219_noir.json\n> > > new file mode 100644\n> > > index 00000000..1d48ef53\n> > > --- /dev/null\n> > > +++ b/src/ipa/raspberrypi/data/imx219_noir.json\n> > > @@ -0,0 +1,344 @@\n> > > +{\n> > > +    \"rpi.black_level\":\n> > > +    {\n> > > +        \"black_level\": 4096\n> > > +    },\n> > > +    \"rpi.dpc\":\n> > > +    {\n> > > +\n> > > +    },\n> > > +    \"rpi.lux\":\n> > > +    {\n> > > +        \"reference_shutter_speed\": 27685,\n> > > +        \"reference_gain\": 1.0,\n> > > +        \"reference_aperture\": 1.0,\n> > > +        \"reference_lux\": 998,\n> > > +        \"reference_Y\": 12744\n> > > +    },\n> > > +    \"rpi.noise\":\n> > > +    {\n> > > +        \"reference_constant\": 0,\n> > > +        \"reference_slope\": 3.67\n> > > +    },\n> > > +    \"rpi.geq\":\n> > > +    {\n> > > +        \"offset\": 204,\n> > > +        \"slope\": 0.01633\n> > > +    },\n> > > +    \"rpi.sdn\":\n> > > +    {\n> > > +\n> > > +    },\n> > > +    \"rpi.awb\":\n> > > +    {\n> > > +     \"bayes\": 0\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, 66666\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, 33333\n> > > +                ],\n> > > +                \"gain\":\n> > > +                [\n> > > +                    1.0, 2.0, 4.0, 6.0, 6.0\n> > > +                ]\n> > > +            },\n> > > +            \"long\":\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> > > +        },\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> > > +         \"shadows\":\n> > > +         [\n> > > +             {\n> > > +                 \"bound\": \"LOWER\", \"q_lo\": 0.0, \"q_hi\": 0.5,\n> \"y_target\":\n> > > +                    [\n> > > +                        0, 0.17, 1000, 0.17\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.7,\n> > > +        \"calibrations_Cr\":\n> > > +        [\n> > > +            {\n> > > +                \"ct\": 3000, \"table\":\n> > > +                [\n> > > +                    1.487, 1.481, 1.481, 1.445, 1.389, 1.327, 1.307,\n> 1.307, 1.307, 1.309, 1.341, 1.405, 1.458, 1.494, 1.494, 1.497,\n> > > +                    1.491, 1.481, 1.448, 1.397, 1.331, 1.275, 1.243,\n> 1.229, 1.229, 1.249, 1.287, 1.349, 1.409, 1.463, 1.494, 1.497,\n> > > +                    1.491, 1.469, 1.405, 1.331, 1.275, 1.217, 1.183,\n> 1.172, 1.172, 1.191, 1.231, 1.287, 1.349, 1.424, 1.484, 1.499,\n> > > +                    1.487, 1.444, 1.363, 1.283, 1.217, 1.183, 1.148,\n> 1.138, 1.138, 1.159, 1.191, 1.231, 1.302, 1.385, 1.461, 1.492,\n> > > +                    1.481, 1.423, 1.334, 1.253, 1.189, 1.148, 1.135,\n> 1.119, 1.123, 1.137, 1.159, 1.203, 1.272, 1.358, 1.442, 1.488,\n> > > +                    1.479, 1.413, 1.321, 1.236, 1.176, 1.139, 1.118,\n> 1.114, 1.116, 1.123, 1.149, 1.192, 1.258, 1.344, 1.432, 1.487,\n> > > +                    1.479, 1.413, 1.321, 1.236, 1.176, 1.139, 1.116,\n> 1.114, 1.115, 1.123, 1.149, 1.192, 1.258, 1.344, 1.432, 1.487,\n> > > +                    1.479, 1.425, 1.336, 1.251, 1.189, 1.149, 1.136,\n> 1.118, 1.121, 1.138, 1.158, 1.206, 1.275, 1.358, 1.443, 1.488,\n> > > +                    1.488, 1.448, 1.368, 1.285, 1.219, 1.189, 1.149,\n> 1.139, 1.139, 1.158, 1.195, 1.235, 1.307, 1.387, 1.462, 1.493,\n> > > +                    1.496, 1.475, 1.411, 1.337, 1.284, 1.219, 1.189,\n> 1.176, 1.176, 1.195, 1.235, 1.296, 1.356, 1.429, 1.487, 1.501,\n> > > +                    1.495, 1.489, 1.458, 1.407, 1.337, 1.287, 1.253,\n> 1.239, 1.239, 1.259, 1.296, 1.356, 1.419, 1.472, 1.499, 1.499,\n> > > +                    1.494, 1.489, 1.489, 1.453, 1.398, 1.336, 1.317,\n> 1.317, 1.317, 1.321, 1.351, 1.416, 1.467, 1.501, 1.501, 1.499\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 3850, \"table\":\n> > > +                [\n> > > +                    1.694, 1.688, 1.688, 1.649, 1.588, 1.518, 1.495,\n> 1.495, 1.495, 1.497, 1.532, 1.602, 1.659, 1.698, 1.698, 1.703,\n> > > +                    1.698, 1.688, 1.653, 1.597, 1.525, 1.464, 1.429,\n> 1.413, 1.413, 1.437, 1.476, 1.542, 1.606, 1.665, 1.698, 1.703,\n> > > +                    1.697, 1.673, 1.605, 1.525, 1.464, 1.401, 1.369,\n> 1.354, 1.354, 1.377, 1.417, 1.476, 1.542, 1.623, 1.687, 1.705,\n> > > +                    1.692, 1.646, 1.561, 1.472, 1.401, 1.368, 1.337,\n> 1.323, 1.324, 1.348, 1.377, 1.417, 1.492, 1.583, 1.661, 1.697,\n> > > +                    1.686, 1.625, 1.528, 1.439, 1.372, 1.337, 1.321,\n> 1.311, 1.316, 1.324, 1.348, 1.389, 1.461, 1.553, 1.642, 1.694,\n> > > +                    1.684, 1.613, 1.514, 1.423, 1.359, 1.328, 1.311,\n> 1.306, 1.306, 1.316, 1.339, 1.378, 1.446, 1.541, 1.633, 1.693,\n> > > +                    1.684, 1.613, 1.514, 1.423, 1.359, 1.328, 1.311,\n> 1.305, 1.305, 1.316, 1.339, 1.378, 1.446, 1.541, 1.633, 1.693,\n> > > +                    1.685, 1.624, 1.529, 1.438, 1.372, 1.336, 1.324,\n> 1.309, 1.314, 1.323, 1.348, 1.392, 1.462, 1.555, 1.646, 1.694,\n> > > +                    1.692, 1.648, 1.561, 1.473, 1.403, 1.372, 1.336,\n> 1.324, 1.324, 1.348, 1.378, 1.423, 1.495, 1.585, 1.667, 1.701,\n> > > +                    1.701, 1.677, 1.608, 1.527, 1.471, 1.403, 1.375,\n> 1.359, 1.359, 1.378, 1.423, 1.488, 1.549, 1.631, 1.694, 1.709,\n> > > +                    1.702, 1.694, 1.656, 1.601, 1.527, 1.473, 1.441,\n> 1.424, 1.424, 1.443, 1.488, 1.549, 1.621, 1.678, 1.706, 1.707,\n> > > +                    1.699, 1.694, 1.694, 1.654, 1.593, 1.525, 1.508,\n> 1.508, 1.508, 1.509, 1.546, 1.614, 1.674, 1.708, 1.708, 1.707\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 6000, \"table\":\n> > > +                [\n> > > +                    2.179, 2.176, 2.176, 2.125, 2.048, 1.975, 1.955,\n> 1.954, 1.954, 1.956, 1.993, 2.071, 2.141, 2.184, 2.185, 2.188,\n> > > +                    2.189, 2.176, 2.128, 2.063, 1.973, 1.908, 1.872,\n> 1.856, 1.856, 1.876, 1.922, 1.999, 2.081, 2.144, 2.184, 2.192,\n> > > +                    2.187, 2.152, 2.068, 1.973, 1.907, 1.831, 1.797,\n> 1.786, 1.786, 1.804, 1.853, 1.922, 1.999, 2.089, 2.166, 2.191,\n> > > +                    2.173, 2.117, 2.013, 1.908, 1.831, 1.791, 1.755,\n> 1.749, 1.749, 1.767, 1.804, 1.853, 1.939, 2.041, 2.135, 2.181,\n> > > +                    2.166, 2.089, 1.975, 1.869, 1.792, 1.755, 1.741,\n> 1.731, 1.734, 1.749, 1.767, 1.818, 1.903, 2.005, 2.111, 2.173,\n> > > +                    2.165, 2.074, 1.956, 1.849, 1.777, 1.742, 1.729,\n> 1.725, 1.729, 1.734, 1.758, 1.804, 1.884, 1.991, 2.099, 2.172,\n> > > +                    2.165, 2.074, 1.956, 1.849, 1.777, 1.742, 1.727,\n> 1.724, 1.725, 1.734, 1.758, 1.804, 1.884, 1.991, 2.099, 2.172,\n> > > +                    2.166, 2.085, 1.975, 1.869, 1.791, 1.755, 1.741,\n> 1.729, 1.733, 1.749, 1.769, 1.819, 1.904, 2.009, 2.114, 2.174,\n> > > +                    2.174, 2.118, 2.015, 1.913, 1.831, 1.791, 1.755,\n> 1.749, 1.749, 1.769, 1.811, 1.855, 1.943, 2.047, 2.139, 2.183,\n> > > +                    2.187, 2.151, 2.072, 1.979, 1.911, 1.831, 1.801,\n> 1.791, 1.791, 1.811, 1.855, 1.933, 2.006, 2.101, 2.173, 2.197,\n> > > +                    2.189, 2.178, 2.132, 2.069, 1.979, 1.913, 1.879,\n> 1.867, 1.867, 1.891, 1.933, 2.006, 2.091, 2.156, 2.195, 2.197,\n> > > +                    2.181, 2.179, 2.178, 2.131, 2.057, 1.981, 1.965,\n> 1.965, 1.965, 1.969, 1.999, 2.083, 2.153, 2.197, 2.197, 2.196\n> > > +                ]\n> > > +            }\n> > > +        ],\n> > > +        \"calibrations_Cb\":\n> > > +        [\n> > > +            {\n> > > +                \"ct\": 3000, \"table\":\n> > > +                [\n> > > +                    1.967, 1.961, 1.955, 1.953, 1.954, 1.957, 1.961,\n> 1.963, 1.963, 1.961, 1.959, 1.957, 1.954, 1.951, 1.951, 1.955,\n> > > +                    1.961, 1.959, 1.957, 1.956, 1.962, 1.967, 1.975,\n> 1.979, 1.979, 1.975, 1.971, 1.967, 1.957, 1.952, 1.951, 1.951,\n> > > +                    1.959, 1.959, 1.959, 1.966, 1.976, 1.989, 1.999,\n> 2.004, 2.003, 1.997, 1.991, 1.981, 1.967, 1.956, 1.951, 1.951,\n> > > +                    1.959, 1.962, 1.967, 1.978, 1.993, 2.009, 2.021,\n> 2.028, 2.026, 2.021, 2.011, 1.995, 1.981, 1.964, 1.953, 1.951,\n> > > +                    1.961, 1.965, 1.977, 1.993, 2.009, 2.023, 2.041,\n> 2.047, 2.047, 2.037, 2.024, 2.011, 1.995, 1.975, 1.958, 1.953,\n> > > +                    1.963, 1.968, 1.981, 2.001, 2.019, 2.039, 2.046,\n> 2.052, 2.052, 2.051, 2.035, 2.021, 2.001, 1.978, 1.959, 1.955,\n> > > +                    1.961, 1.966, 1.981, 2.001, 2.019, 2.038, 2.043,\n> 2.051, 2.052, 2.042, 2.034, 2.019, 2.001, 1.978, 1.959, 1.954,\n> > > +                    1.957, 1.961, 1.972, 1.989, 2.003, 2.021, 2.038,\n> 2.039, 2.039, 2.034, 2.019, 2.004, 1.988, 1.971, 1.954, 1.949,\n> > > +                    1.952, 1.953, 1.959, 1.972, 1.989, 2.003, 2.016,\n> 2.019, 2.019, 2.014, 2.003, 1.988, 1.971, 1.955, 1.948, 1.947,\n> > > +                    1.949, 1.948, 1.949, 1.957, 1.971, 1.978, 1.991,\n> 1.994, 1.994, 1.989, 1.979, 1.967, 1.954, 1.946, 1.947, 1.947,\n> > > +                    1.949, 1.946, 1.944, 1.946, 1.949, 1.954, 1.962,\n> 1.967, 1.967, 1.963, 1.956, 1.948, 1.943, 1.943, 1.946, 1.949,\n> > > +                    1.951, 1.946, 1.944, 1.942, 1.943, 1.943, 1.947,\n> 1.948, 1.949, 1.947, 1.945, 1.941, 1.938, 1.939, 1.948, 1.952\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 3850, \"table\":\n> > > +                [\n> > > +                    1.726, 1.724, 1.722, 1.723, 1.731, 1.735, 1.743,\n> 1.746, 1.746, 1.741, 1.735, 1.729, 1.725, 1.721, 1.721, 1.721,\n> > > +                    1.724, 1.723, 1.723, 1.727, 1.735, 1.744, 1.749,\n> 1.756, 1.756, 1.749, 1.744, 1.735, 1.727, 1.719, 1.719, 1.719,\n> > > +                    1.723, 1.723, 1.724, 1.735, 1.746, 1.759, 1.767,\n> 1.775, 1.775, 1.766, 1.758, 1.746, 1.735, 1.723, 1.718, 1.716,\n> > > +                    1.723, 1.725, 1.732, 1.746, 1.759, 1.775, 1.782,\n> 1.792, 1.792, 1.782, 1.772, 1.759, 1.745, 1.729, 1.718, 1.716,\n> > > +                    1.725, 1.729, 1.738, 1.756, 1.775, 1.785, 1.796,\n> 1.803, 1.804, 1.794, 1.783, 1.772, 1.757, 1.736, 1.722, 1.718,\n> > > +                    1.728, 1.731, 1.741, 1.759, 1.781, 1.795, 1.803,\n> 1.806, 1.808, 1.805, 1.791, 1.779, 1.762, 1.739, 1.722, 1.721,\n> > > +                    1.727, 1.731, 1.741, 1.759, 1.781, 1.791, 1.799,\n> 1.804, 1.806, 1.801, 1.791, 1.779, 1.762, 1.739, 1.722, 1.717,\n> > > +                    1.722, 1.724, 1.733, 1.751, 1.768, 1.781, 1.791,\n> 1.796, 1.799, 1.791, 1.781, 1.766, 1.754, 1.731, 1.717, 1.714,\n> > > +                    1.718, 1.718, 1.724, 1.737, 1.752, 1.768, 1.776,\n> 1.782, 1.784, 1.781, 1.766, 1.754, 1.737, 1.724, 1.713, 1.709,\n> > > +                    1.716, 1.715, 1.716, 1.725, 1.737, 1.749, 1.756,\n> 1.763, 1.764, 1.762, 1.749, 1.737, 1.724, 1.717, 1.709, 1.708,\n> > > +                    1.715, 1.714, 1.712, 1.715, 1.722, 1.729, 1.736,\n> 1.741, 1.742, 1.739, 1.731, 1.723, 1.717, 1.712, 1.711, 1.709,\n> > > +                    1.716, 1.714, 1.711, 1.712, 1.715, 1.719, 1.723,\n> 1.728, 1.731, 1.729, 1.723, 1.718, 1.711, 1.711, 1.713, 1.713\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 6000, \"table\":\n> > > +                [\n> > > +                    1.374, 1.372, 1.373, 1.374, 1.375, 1.378, 1.378,\n> 1.381, 1.382, 1.382, 1.378, 1.373, 1.372, 1.369, 1.365, 1.365,\n> > > +                    1.371, 1.371, 1.372, 1.374, 1.378, 1.381, 1.384,\n> 1.386, 1.388, 1.387, 1.384, 1.377, 1.372, 1.368, 1.364, 1.362,\n> > > +                    1.369, 1.371, 1.372, 1.377, 1.383, 1.391, 1.394,\n> 1.396, 1.397, 1.395, 1.391, 1.382, 1.374, 1.369, 1.362, 1.361,\n> > > +                    1.369, 1.371, 1.375, 1.383, 1.391, 1.399, 1.402,\n> 1.404, 1.405, 1.403, 1.398, 1.391, 1.379, 1.371, 1.363, 1.361,\n> > > +                    1.371, 1.373, 1.378, 1.388, 1.399, 1.407, 1.411,\n> 1.413, 1.413, 1.411, 1.405, 1.397, 1.385, 1.374, 1.366, 1.362,\n> > > +                    1.371, 1.374, 1.379, 1.389, 1.405, 1.411, 1.414,\n> 1.414, 1.415, 1.415, 1.411, 1.401, 1.388, 1.376, 1.367, 1.363,\n> > > +                    1.371, 1.373, 1.379, 1.389, 1.405, 1.408, 1.413,\n> 1.414, 1.414, 1.413, 1.409, 1.401, 1.388, 1.376, 1.367, 1.362,\n> > > +                    1.366, 1.369, 1.374, 1.384, 1.396, 1.404, 1.407,\n> 1.408, 1.408, 1.408, 1.401, 1.395, 1.382, 1.371, 1.363, 1.359,\n> > > +                    1.364, 1.365, 1.368, 1.375, 1.386, 1.396, 1.399,\n> 1.401, 1.399, 1.399, 1.395, 1.385, 1.374, 1.365, 1.359, 1.357,\n> > > +                    1.361, 1.363, 1.365, 1.368, 1.377, 1.384, 1.388,\n> 1.391, 1.391, 1.388, 1.385, 1.375, 1.366, 1.361, 1.358, 1.356,\n> > > +                    1.361, 1.362, 1.362, 1.364, 1.367, 1.373, 1.376,\n> 1.377, 1.377, 1.375, 1.373, 1.366, 1.362, 1.358, 1.358, 1.358,\n> > > +                    1.361, 1.362, 1.362, 1.362, 1.363, 1.367, 1.369,\n> 1.368, 1.367, 1.367, 1.367, 1.364, 1.358, 1.357, 1.358, 1.359\n> > > +                ]\n> > > +            }\n> > > +        ],\n> > > +        \"luminance_lut\":\n> > > +        [\n> > > +            2.716, 2.568, 2.299, 2.065, 1.845, 1.693, 1.605, 1.597,\n> 1.596, 1.634, 1.738, 1.914, 2.145, 2.394, 2.719, 2.901,\n> > > +            2.593, 2.357, 2.093, 1.876, 1.672, 1.528, 1.438, 1.393,\n> 1.394, 1.459, 1.569, 1.731, 1.948, 2.169, 2.481, 2.756,\n> > > +            2.439, 2.197, 1.922, 1.691, 1.521, 1.365, 1.266, 1.222,\n> 1.224, 1.286, 1.395, 1.573, 1.747, 1.988, 2.299, 2.563,\n> > > +            2.363, 2.081, 1.797, 1.563, 1.376, 1.244, 1.152, 1.099,\n> 1.101, 1.158, 1.276, 1.421, 1.607, 1.851, 2.163, 2.455,\n> > > +            2.342, 2.003, 1.715, 1.477, 1.282, 1.152, 1.074, 1.033,\n> 1.035, 1.083, 1.163, 1.319, 1.516, 1.759, 2.064, 2.398,\n> > > +            2.342, 1.985, 1.691, 1.446, 1.249, 1.111, 1.034, 1.004,\n> 1.004, 1.028, 1.114, 1.274, 1.472, 1.716, 2.019, 2.389,\n> > > +            2.342, 1.991, 1.691, 1.446, 1.249, 1.112, 1.034, 1.011,\n> 1.005, 1.035, 1.114, 1.274, 1.472, 1.716, 2.019, 2.389,\n> > > +            2.365, 2.052, 1.751, 1.499, 1.299, 1.171, 1.089, 1.039,\n> 1.042, 1.084, 1.162, 1.312, 1.516, 1.761, 2.059, 2.393,\n> > > +            2.434, 2.159, 1.856, 1.601, 1.403, 1.278, 1.166, 1.114,\n> 1.114, 1.162, 1.266, 1.402, 1.608, 1.847, 2.146, 2.435,\n> > > +            2.554, 2.306, 2.002, 1.748, 1.563, 1.396, 1.299, 1.247,\n> 1.243, 1.279, 1.386, 1.551, 1.746, 1.977, 2.272, 2.518,\n> > > +            2.756, 2.493, 2.195, 1.947, 1.739, 1.574, 1.481, 1.429,\n> 1.421, 1.457, 1.559, 1.704, 1.929, 2.159, 2.442, 2.681,\n> > > +            2.935, 2.739, 2.411, 2.151, 1.922, 1.749, 1.663, 1.628,\n> 1.625, 1.635, 1.716, 1.872, 2.113, 2.368, 2.663, 2.824\n> > > +        ],\n> > > +        \"sigma\": 0.00381,\n> > > +        \"sigma_Cb\": 0.00216\n> > > +    },\n> > > +    \"rpi.contrast\":\n> > > +    {\n> > > +        \"ce_enable\": 1,\n> > > +        \"gamma_curve\":\n> > > +        [\n> > > +            0, 0, 1024, 5040, 2048, 9338, 3072, 12356, 4096, 15312,\n> 5120, 18051, 6144, 20790, 7168, 23193,\n> > > +            8192, 25744, 9216, 27942, 10240, 30035, 11264, 32005,\n> 12288, 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\": 2498, \"ccm\":\n> > > +                [\n> > > +                    1.58731, -0.18011, -0.40721, -0.60639, 2.03422,\n> -0.42782, -0.19612, -1.69203, 2.88815\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 2811, \"ccm\":\n> > > +                [\n> > > +                    1.61593, -0.33164, -0.28429, -0.55048, 1.97779,\n> -0.42731, -0.12042, -1.42847, 2.54889\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 2911, \"ccm\":\n> > > +                [\n> > > +                    1.62771, -0.41282, -0.21489, -0.57991, 2.04176,\n> -0.46186, -0.07613, -1.13359, 2.20972\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 2919, \"ccm\":\n> > > +                [\n> > > +                    1.62661, -0.37736, -0.24925, -0.52519, 1.95233,\n> -0.42714, -0.10842, -1.34929, 2.45771\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 3627, \"ccm\":\n> > > +                [\n> > > +                    1.70385, -0.57231, -0.13154, -0.47763, 1.85998,\n> -0.38235, -0.07467, -0.82678, 1.90145\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 4600, \"ccm\":\n> > > +                [\n> > > +                    1.68486, -0.61085, -0.07402, -0.41927, 2.04016,\n> -0.62089, -0.08633, -0.67672, 1.76305\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 5716, \"ccm\":\n> > > +                [\n> > > +                    1.80439, -0.73699, -0.06739, -0.36073, 1.83327,\n> -0.47255, -0.08378, -0.56403, 1.64781\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 8575, \"ccm\":\n> > > +                [\n> > > +                    1.89357, -0.76427, -0.12931, -0.27399, 2.15605,\n> -0.88206, -0.12035, -0.68256, 1.80292\n> > > +                ]\n> > > +            }\n> > > +        ]\n> > > +    },\n> > > +    \"rpi.sharpen\":\n> > > +    {\n> > > +\n> > > +    },\n> > > +    \"rpi.dpc\":\n> > > +    {\n> > > +\n> > > +    }\n> > > +}\n> > > diff --git a/src/ipa/raspberrypi/data/imx477_noir.json\n> b/src/ipa/raspberrypi/data/imx477_noir.json\n> > > new file mode 100644\n> > > index 00000000..290e8264\n> > > --- /dev/null\n> > > +++ b/src/ipa/raspberrypi/data/imx477_noir.json\n> > > @@ -0,0 +1,362 @@\n> > > +{\n> > > +    \"rpi.black_level\":\n> > > +    {\n> > > +        \"black_level\": 4096\n> > > +    },\n> > > +    \"rpi.dpc\":\n> > > +    {\n> > > +\n> > > +    },\n> > > +    \"rpi.lux\":\n> > > +    {\n> > > +        \"reference_shutter_speed\": 27242,\n> > > +        \"reference_gain\": 1.0,\n> > > +        \"reference_aperture\": 1.0,\n> > > +        \"reference_lux\": 830,\n> > > +        \"reference_Y\": 17755\n> > > +    },\n> > > +    \"rpi.noise\":\n> > > +    {\n> > > +        \"reference_constant\": 0,\n> > > +        \"reference_slope\": 2.767\n> > > +    },\n> > > +    \"rpi.geq\":\n> > > +    {\n> > > +        \"offset\": 204,\n> > > +        \"slope\": 0.01078\n> > > +    },\n> > > +    \"rpi.sdn\":\n> > > +    {\n> > > +\n> > > +    },\n> > > +    \"rpi.awb\":\n> > > +    {\n> > > +     \"bayes\": 0\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, 66666\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, 33333\n> > > +                ],\n> > > +                \"gain\":\n> > > +                [\n> > > +                    1.0, 2.0, 4.0, 6.0, 6.0\n> > > +                ]\n> > > +            },\n> > > +            \"long\":\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> > > +        },\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.3, 1000, 0.3\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.3, 1000, 0.3\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> > > +         \"shadows\":\n> > > +         [\n> > > +             {\n> > > +                 \"bound\": \"LOWER\", \"q_lo\": 0.0, \"q_hi\": 0.5,\n> \"y_target\":\n> > > +                    [\n> > > +                        0, 0.17, 1000, 0.17\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\": 2960, \"table\":\n> > > +                [\n> > > +                    2.088, 2.086, 2.082, 2.081, 2.077, 2.071, 2.068,\n> 2.068, 2.072, 2.073, 2.075, 2.078, 2.084, 2.092, 2.095, 2.098,\n> > > +                    2.086, 2.084, 2.079, 2.078, 2.075, 2.068, 2.064,\n> 2.063, 2.068, 2.071, 2.072, 2.075, 2.081, 2.089, 2.092, 2.094,\n> > > +                    2.083, 2.081, 2.077, 2.072, 2.069, 2.062, 2.059,\n> 2.059, 2.063, 2.067, 2.069, 2.072, 2.079, 2.088, 2.089, 2.089,\n> > > +                    2.081, 2.077, 2.072, 2.068, 2.065, 2.058, 2.055,\n> 2.054, 2.057, 2.062, 2.066, 2.069, 2.077, 2.084, 2.086, 2.086,\n> > > +                    2.078, 2.075, 2.069, 2.065, 2.061, 2.055, 2.052,\n> 2.049, 2.051, 2.056, 2.062, 2.065, 2.072, 2.079, 2.081, 2.079,\n> > > +                    2.079, 2.075, 2.069, 2.064, 2.061, 2.053, 2.049,\n> 2.046, 2.049, 2.051, 2.057, 2.062, 2.069, 2.075, 2.077, 2.075,\n> > > +                    2.082, 2.079, 2.072, 2.065, 2.061, 2.054, 2.049,\n> 2.047, 2.049, 2.051, 2.056, 2.061, 2.066, 2.073, 2.073, 2.069,\n> > > +                    2.086, 2.082, 2.075, 2.068, 2.062, 2.054, 2.051,\n> 2.049, 2.051, 2.052, 2.056, 2.061, 2.066, 2.073, 2.073, 2.072,\n> > > +                    2.088, 2.086, 2.079, 2.074, 2.066, 2.057, 2.051,\n> 2.051, 2.054, 2.055, 2.056, 2.061, 2.067, 2.072, 2.073, 2.072,\n> > > +                    2.091, 2.087, 2.079, 2.075, 2.068, 2.057, 2.052,\n> 2.052, 2.056, 2.055, 2.055, 2.059, 2.066, 2.072, 2.072, 2.072,\n> > > +                    2.093, 2.088, 2.081, 2.077, 2.069, 2.059, 2.054,\n> 2.054, 2.057, 2.056, 2.056, 2.058, 2.066, 2.072, 2.073, 2.073,\n> > > +                    2.095, 2.091, 2.084, 2.078, 2.075, 2.067, 2.057,\n> 2.057, 2.059, 2.059, 2.058, 2.059, 2.068, 2.073, 2.075, 2.078\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 4850, \"table\":\n> > > +                [\n> > > +                    2.973, 2.968, 2.956, 2.943, 2.941, 2.932, 2.923,\n> 2.921, 2.924, 2.929, 2.931, 2.939, 2.953, 2.965, 2.966, 2.976,\n> > > +                    2.969, 2.962, 2.951, 2.941, 2.934, 2.928, 2.919,\n> 2.918, 2.919, 2.923, 2.927, 2.933, 2.945, 2.957, 2.962, 2.962,\n> > > +                    2.964, 2.956, 2.944, 2.932, 2.929, 2.924, 2.915,\n> 2.914, 2.915, 2.919, 2.924, 2.928, 2.941, 2.952, 2.958, 2.959,\n> > > +                    2.957, 2.951, 2.939, 2.928, 2.924, 2.919, 2.913,\n> 2.911, 2.911, 2.915, 2.919, 2.925, 2.936, 2.947, 2.952, 2.953,\n> > > +                    2.954, 2.947, 2.935, 2.924, 2.919, 2.915, 2.908,\n> 2.906, 2.906, 2.907, 2.914, 2.921, 2.932, 2.941, 2.943, 2.942,\n> > > +                    2.953, 2.946, 2.932, 2.921, 2.916, 2.911, 2.904,\n> 2.902, 2.901, 2.904, 2.909, 2.919, 2.926, 2.937, 2.939, 2.939,\n> > > +                    2.953, 2.947, 2.932, 2.918, 2.915, 2.909, 2.903,\n> 2.901, 2.901, 2.906, 2.911, 2.918, 2.924, 2.936, 2.936, 2.932,\n> > > +                    2.956, 2.948, 2.934, 2.919, 2.916, 2.908, 2.903,\n> 2.901, 2.902, 2.907, 2.909, 2.917, 2.926, 2.936, 2.939, 2.939,\n> > > +                    2.957, 2.951, 2.936, 2.923, 2.917, 2.907, 2.904,\n> 2.901, 2.902, 2.908, 2.911, 2.919, 2.929, 2.939, 2.942, 2.942,\n> > > +                    2.961, 2.951, 2.936, 2.922, 2.918, 2.906, 2.904,\n> 2.901, 2.901, 2.907, 2.911, 2.921, 2.931, 2.941, 2.942, 2.944,\n> > > +                    2.964, 2.954, 2.936, 2.924, 2.918, 2.909, 2.905,\n> 2.905, 2.905, 2.907, 2.912, 2.923, 2.933, 2.942, 2.944, 2.944,\n> > > +                    2.964, 2.958, 2.943, 2.927, 2.921, 2.914, 2.909,\n> 2.907, 2.907, 2.912, 2.916, 2.928, 2.936, 2.944, 2.947, 2.952\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 5930, \"table\":\n> > > +                [\n> > > +                    3.312, 3.308, 3.301, 3.294, 3.288, 3.277, 3.268,\n> 3.261, 3.259, 3.261, 3.267, 3.273, 3.285, 3.301, 3.303, 3.312,\n> > > +                    3.308, 3.304, 3.294, 3.291, 3.283, 3.271, 3.263,\n> 3.259, 3.257, 3.258, 3.261, 3.268, 3.278, 3.293, 3.299, 3.299,\n> > > +                    3.302, 3.296, 3.288, 3.282, 3.276, 3.267, 3.259,\n> 3.254, 3.252, 3.253, 3.256, 3.261, 3.273, 3.289, 3.292, 3.292,\n> > > +                    3.296, 3.289, 3.282, 3.276, 3.269, 3.263, 3.256,\n> 3.251, 3.248, 3.249, 3.251, 3.257, 3.268, 3.279, 3.284, 3.284,\n> > > +                    3.292, 3.285, 3.279, 3.271, 3.264, 3.257, 3.249,\n> 3.243, 3.241, 3.241, 3.246, 3.252, 3.261, 3.274, 3.275, 3.273,\n> > > +                    3.291, 3.285, 3.276, 3.268, 3.259, 3.251, 3.242,\n> 3.239, 3.236, 3.238, 3.244, 3.248, 3.258, 3.268, 3.269, 3.265,\n> > > +                    3.294, 3.288, 3.275, 3.266, 3.257, 3.248, 3.239,\n> 3.238, 3.237, 3.238, 3.243, 3.246, 3.255, 3.264, 3.264, 3.257,\n> > > +                    3.297, 3.293, 3.279, 3.268, 3.258, 3.249, 3.238,\n> 3.237, 3.239, 3.239, 3.243, 3.245, 3.255, 3.264, 3.264, 3.263,\n> > > +                    3.301, 3.295, 3.281, 3.271, 3.259, 3.248, 3.237,\n> 3.237, 3.239, 3.241, 3.243, 3.246, 3.257, 3.265, 3.266, 3.264,\n> > > +                    3.306, 3.295, 3.279, 3.271, 3.261, 3.247, 3.235,\n> 3.234, 3.239, 3.239, 3.243, 3.247, 3.258, 3.265, 3.265, 3.264,\n> > > +                    3.308, 3.297, 3.279, 3.272, 3.261, 3.249, 3.239,\n> 3.239, 3.241, 3.243, 3.245, 3.248, 3.261, 3.265, 3.266, 3.265,\n> > > +                    3.309, 3.301, 3.286, 3.276, 3.267, 3.256, 3.246,\n> 3.242, 3.244, 3.244, 3.249, 3.253, 3.263, 3.267, 3.271, 3.274\n> > > +                ]\n> > > +            }\n> > > +        ],\n> > > +        \"calibrations_Cb\":\n> > > +        [\n> > > +            {\n> > > +                \"ct\": 2960, \"table\":\n> > > +                [\n> > > +                    2.133, 2.134, 2.139, 2.143, 2.148, 2.155, 2.158,\n> 2.158, 2.158, 2.161, 2.161, 2.162, 2.159, 2.156, 2.152, 2.151,\n> > > +                    2.132, 2.133, 2.135, 2.142, 2.147, 2.153, 2.158,\n> 2.158, 2.158, 2.158, 2.159, 2.159, 2.157, 2.154, 2.151, 2.148,\n> > > +                    2.133, 2.133, 2.135, 2.142, 2.149, 2.154, 2.158,\n> 2.158, 2.157, 2.156, 2.158, 2.157, 2.155, 2.153, 2.148, 2.146,\n> > > +                    2.133, 2.133, 2.138, 2.145, 2.149, 2.154, 2.158,\n> 2.159, 2.158, 2.155, 2.157, 2.156, 2.153, 2.149, 2.146, 2.144,\n> > > +                    2.133, 2.134, 2.139, 2.146, 2.149, 2.154, 2.158,\n> 2.159, 2.159, 2.156, 2.154, 2.154, 2.149, 2.145, 2.143, 2.139,\n> > > +                    2.135, 2.135, 2.139, 2.146, 2.151, 2.155, 2.158,\n> 2.159, 2.158, 2.156, 2.153, 2.151, 2.146, 2.143, 2.139, 2.136,\n> > > +                    2.135, 2.135, 2.138, 2.145, 2.151, 2.154, 2.157,\n> 2.158, 2.157, 2.156, 2.153, 2.151, 2.147, 2.143, 2.141, 2.137,\n> > > +                    2.135, 2.134, 2.135, 2.141, 2.149, 2.154, 2.157,\n> 2.157, 2.157, 2.157, 2.157, 2.153, 2.149, 2.146, 2.142, 2.139,\n> > > +                    2.132, 2.133, 2.135, 2.139, 2.148, 2.153, 2.158,\n> 2.159, 2.159, 2.161, 2.161, 2.157, 2.154, 2.149, 2.144, 2.141,\n> > > +                    2.132, 2.133, 2.135, 2.141, 2.149, 2.155, 2.161,\n> 2.161, 2.162, 2.162, 2.163, 2.159, 2.154, 2.149, 2.144, 2.138,\n> > > +                    2.136, 2.136, 2.137, 2.143, 2.149, 2.156, 2.162,\n> 2.163, 2.162, 2.163, 2.164, 2.161, 2.157, 2.152, 2.146, 2.138,\n> > > +                    2.137, 2.137, 2.141, 2.147, 2.152, 2.157, 2.162,\n> 2.162, 2.159, 2.161, 2.162, 2.162, 2.157, 2.152, 2.148, 2.148\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 4850, \"table\":\n> > > +                [\n> > > +                    1.463, 1.464, 1.471, 1.478, 1.479, 1.483, 1.484,\n> 1.486, 1.486, 1.484, 1.483, 1.481, 1.478, 1.475, 1.471, 1.468,\n> > > +                    1.463, 1.463, 1.468, 1.476, 1.479, 1.482, 1.484,\n> 1.487, 1.486, 1.484, 1.483, 1.482, 1.478, 1.473, 1.469, 1.468,\n> > > +                    1.463, 1.464, 1.468, 1.476, 1.479, 1.483, 1.484,\n> 1.486, 1.486, 1.485, 1.484, 1.482, 1.477, 1.473, 1.469, 1.468,\n> > > +                    1.463, 1.464, 1.469, 1.477, 1.481, 1.483, 1.485,\n> 1.487, 1.487, 1.485, 1.485, 1.482, 1.478, 1.474, 1.469, 1.468,\n> > > +                    1.465, 1.465, 1.471, 1.478, 1.481, 1.484, 1.486,\n> 1.488, 1.488, 1.487, 1.485, 1.482, 1.477, 1.472, 1.468, 1.467,\n> > > +                    1.465, 1.466, 1.472, 1.479, 1.482, 1.485, 1.486,\n> 1.488, 1.488, 1.486, 1.484, 1.479, 1.475, 1.472, 1.468, 1.466,\n> > > +                    1.466, 1.466, 1.472, 1.478, 1.482, 1.484, 1.485,\n> 1.488, 1.487, 1.485, 1.483, 1.479, 1.475, 1.472, 1.469, 1.468,\n> > > +                    1.465, 1.466, 1.469, 1.476, 1.481, 1.485, 1.485,\n> 1.486, 1.486, 1.485, 1.483, 1.479, 1.477, 1.474, 1.471, 1.469,\n> > > +                    1.464, 1.465, 1.469, 1.476, 1.481, 1.484, 1.485,\n> 1.487, 1.487, 1.486, 1.485, 1.481, 1.478, 1.475, 1.471, 1.469,\n> > > +                    1.463, 1.464, 1.469, 1.477, 1.481, 1.485, 1.485,\n> 1.488, 1.488, 1.487, 1.486, 1.481, 1.478, 1.475, 1.471, 1.468,\n> > > +                    1.464, 1.465, 1.471, 1.478, 1.482, 1.486, 1.486,\n> 1.488, 1.488, 1.487, 1.486, 1.481, 1.478, 1.475, 1.472, 1.468,\n> > > +                    1.465, 1.466, 1.472, 1.481, 1.483, 1.487, 1.487,\n> 1.488, 1.488, 1.486, 1.485, 1.481, 1.479, 1.476, 1.473, 1.472\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 5930, \"table\":\n> > > +                [\n> > > +                    1.443, 1.444, 1.448, 1.453, 1.459, 1.463, 1.465,\n> 1.467, 1.469, 1.469, 1.467, 1.466, 1.462, 1.457, 1.454, 1.451,\n> > > +                    1.443, 1.444, 1.445, 1.451, 1.459, 1.463, 1.465,\n> 1.467, 1.469, 1.469, 1.467, 1.465, 1.461, 1.456, 1.452, 1.451,\n> > > +                    1.444, 1.444, 1.445, 1.451, 1.459, 1.463, 1.466,\n> 1.468, 1.469, 1.469, 1.467, 1.465, 1.461, 1.456, 1.452, 1.449,\n> > > +                    1.444, 1.444, 1.447, 1.452, 1.459, 1.464, 1.467,\n> 1.469, 1.471, 1.469, 1.467, 1.466, 1.461, 1.456, 1.452, 1.449,\n> > > +                    1.444, 1.445, 1.448, 1.452, 1.459, 1.465, 1.469,\n> 1.471, 1.471, 1.471, 1.468, 1.465, 1.461, 1.455, 1.451, 1.449,\n> > > +                    1.445, 1.446, 1.449, 1.453, 1.461, 1.466, 1.469,\n> 1.471, 1.472, 1.469, 1.467, 1.465, 1.459, 1.455, 1.451, 1.447,\n> > > +                    1.446, 1.446, 1.449, 1.453, 1.461, 1.466, 1.469,\n> 1.469, 1.469, 1.469, 1.467, 1.465, 1.459, 1.455, 1.452, 1.449,\n> > > +                    1.446, 1.446, 1.447, 1.451, 1.459, 1.466, 1.469,\n> 1.469, 1.469, 1.469, 1.467, 1.465, 1.461, 1.457, 1.454, 1.451,\n> > > +                    1.444, 1.444, 1.447, 1.451, 1.459, 1.466, 1.469,\n> 1.469, 1.471, 1.471, 1.468, 1.466, 1.462, 1.458, 1.454, 1.452,\n> > > +                    1.444, 1.444, 1.448, 1.453, 1.459, 1.466, 1.469,\n> 1.471, 1.472, 1.472, 1.468, 1.466, 1.462, 1.458, 1.454, 1.449,\n> > > +                    1.446, 1.447, 1.449, 1.454, 1.461, 1.466, 1.471,\n> 1.471, 1.471, 1.471, 1.468, 1.466, 1.462, 1.459, 1.455, 1.449,\n> > > +                    1.447, 1.447, 1.452, 1.457, 1.462, 1.468, 1.472,\n> 1.472, 1.471, 1.471, 1.468, 1.466, 1.462, 1.459, 1.456, 1.455\n> > > +                ]\n> > > +            }\n> > > +        ],\n> > > +        \"luminance_lut\":\n> > > +        [\n> > > +            1.548, 1.499, 1.387, 1.289, 1.223, 1.183, 1.164, 1.154,\n> 1.153, 1.169, 1.211, 1.265, 1.345, 1.448, 1.581, 1.619,\n> > > +            1.513, 1.412, 1.307, 1.228, 1.169, 1.129, 1.105, 1.098,\n> 1.103, 1.127, 1.157, 1.209, 1.272, 1.361, 1.481, 1.583,\n> > > +            1.449, 1.365, 1.257, 1.175, 1.124, 1.085, 1.062, 1.054,\n> 1.059, 1.079, 1.113, 1.151, 1.211, 1.293, 1.407, 1.488,\n> > > +            1.424, 1.324, 1.222, 1.139, 1.089, 1.056, 1.034, 1.031,\n> 1.034, 1.049, 1.075, 1.115, 1.164, 1.241, 1.351, 1.446,\n> > > +            1.412, 1.297, 1.203, 1.119, 1.069, 1.039, 1.021, 1.016,\n> 1.022, 1.032, 1.052, 1.086, 1.135, 1.212, 1.321, 1.439,\n> > > +            1.406, 1.287, 1.195, 1.115, 1.059, 1.028, 1.014, 1.012,\n> 1.015, 1.026, 1.041, 1.074, 1.125, 1.201, 1.302, 1.425,\n> > > +            1.406, 1.294, 1.205, 1.126, 1.062, 1.031, 1.013, 1.009,\n> 1.011, 1.019, 1.042, 1.079, 1.129, 1.203, 1.302, 1.435,\n> > > +            1.415, 1.318, 1.229, 1.146, 1.076, 1.039, 1.019, 1.014,\n> 1.017, 1.031, 1.053, 1.093, 1.144, 1.219, 1.314, 1.436,\n> > > +            1.435, 1.348, 1.246, 1.164, 1.094, 1.059, 1.036, 1.032,\n> 1.037, 1.049, 1.072, 1.114, 1.167, 1.257, 1.343, 1.462,\n> > > +            1.471, 1.385, 1.278, 1.189, 1.124, 1.084, 1.064, 1.061,\n> 1.069, 1.078, 1.101, 1.146, 1.207, 1.298, 1.415, 1.496,\n> > > +            1.522, 1.436, 1.323, 1.228, 1.169, 1.118, 1.101, 1.094,\n> 1.099, 1.113, 1.146, 1.194, 1.265, 1.353, 1.474, 1.571,\n> > > +            1.578, 1.506, 1.378, 1.281, 1.211, 1.156, 1.135, 1.134,\n> 1.139, 1.158, 1.194, 1.251, 1.327, 1.427, 1.559, 1.611\n> > > +        ],\n> > > +        \"sigma\": 0.00121,\n> > > +        \"sigma_Cb\": 0.00115\n> > > +    },\n> > > +    \"rpi.contrast\":\n> > > +    {\n> > > +        \"ce_enable\": 1,\n> > > +        \"gamma_curve\":\n> > > +        [\n> > > +            0, 0, 1024, 5040, 2048, 9338, 3072, 12356, 4096, 15312,\n> 5120, 18051, 6144, 20790, 7168, 23193,\n> > > +            8192, 25744, 9216, 27942, 10240, 30035, 11264, 32005,\n> 12288, 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\": 2360, \"ccm\":\n> > > +                [\n> > > +                    1.66078, -0.23588, -0.42491, -0.47456, 1.82763,\n> -0.35307, -0.00545, -1.44729, 2.45273\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 2870, \"ccm\":\n> > > +                [\n> > > +                    1.78373, -0.55344, -0.23029, -0.39951, 1.69701,\n> -0.29751, 0.01986, -1.06525, 2.04539\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 2970, \"ccm\":\n> > > +                [\n> > > +                    1.73511, -0.56973, -0.16537, -0.36338, 1.69878,\n> -0.33539, -0.02354, -0.76813, 1.79168\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 3000, \"ccm\":\n> > > +                [\n> > > +                    2.06374, -0.92218, -0.14156, -0.41721, 1.69289,\n> -0.27568, -0.00554, -0.92741, 1.93295\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 3700, \"ccm\":\n> > > +                [\n> > > +                    2.13792, -1.08136, -0.05655, -0.34739, 1.58989,\n> -0.24249, -0.00349, -0.76789, 1.77138\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 3870, \"ccm\":\n> > > +                [\n> > > +                    1.83834, -0.70528, -0.13307, -0.30499, 1.60523,\n> -0.30024, -0.05701, -0.58313, 1.64014\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 4000, \"ccm\":\n> > > +                [\n> > > +                    2.15741, -1.10295, -0.05447, -0.34631, 1.61158,\n> -0.26528, -0.02723, -0.70288, 1.73011\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 4400, \"ccm\":\n> > > +                [\n> > > +                    2.05729, -0.95007, -0.10723, -0.41712, 1.78606,\n> -0.36894, -0.11899, -0.55727, 1.67626\n> > > +                ]\n> > > +            },\n> > > +\n> > > +            {\n> > > +                \"ct\": 4715, \"ccm\":\n> > > +                [\n> > > +                    1.90255, -0.77478, -0.12777, -0.31338, 1.88197,\n> -0.56858, -0.06001, -0.61785, 1.67786\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 5920, \"ccm\":\n> > > +                [\n> > > +                    1.98691, -0.84671, -0.14019, -0.26581, 1.70615,\n> -0.44035, -0.09532, -0.47332, 1.56864\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 9050, \"ccm\":\n> > > +                [\n> > > +                    2.09255, -0.76541, -0.32714, -0.28973, 2.27462,\n> -0.98489, -0.17299, -0.61275, 1.78574\n> > > +                ]\n> > > +            }\n> > > +        ]\n> > > +    },\n> > > +    \"rpi.sharpen\":\n> > > +    {\n> > > +\n> > > +    },\n> > > +    \"rpi.focus\":\n> > > +    {\n> > > +    }\n> > > +}\n> > > diff --git a/src/ipa/raspberrypi/data/meson.build\n> b/src/ipa/raspberrypi/data/meson.build\n> > > index 68433fc2..2def75cb 100644\n> > > --- a/src/ipa/raspberrypi/data/meson.build\n> > > +++ b/src/ipa/raspberrypi/data/meson.build\n> > > @@ -2,10 +2,13 @@\n> > >\n> > >  conf_files = files([\n> > >      'imx219.json',\n> > > +    'imx219_noir.json',\n> > >      'imx290.json',\n> > >      'imx378.json',\n> > >      'imx477.json',\n> > > +    'imx477_noir.json',\n> > >      'ov5647.json',\n> > > +    'ov5647_noir.json',\n> > >      'ov9281.json',\n> > >      'se327m12.json',\n> > >      'uncalibrated.json',\n> > > diff --git a/src/ipa/raspberrypi/data/ov5647_noir.json\n> b/src/ipa/raspberrypi/data/ov5647_noir.json\n> > > new file mode 100644\n> > > index 00000000..c4bb21a0\n> > > --- /dev/null\n> > > +++ b/src/ipa/raspberrypi/data/ov5647_noir.json\n> > > @@ -0,0 +1,341 @@\n> > > +{\n> > > +    \"rpi.black_level\":\n> > > +    {\n> > > +        \"black_level\": 1024\n> > > +    },\n> > > +    \"rpi.dpc\":\n> > > +    {\n> > > +\n> > > +    },\n> > > +    \"rpi.lux\":\n> > > +    {\n> > > +        \"reference_shutter_speed\": 21663,\n> > > +        \"reference_gain\": 1.0,\n> > > +        \"reference_aperture\": 1.0,\n> > > +        \"reference_lux\": 987,\n> > > +        \"reference_Y\": 8961\n> > > +    },\n> > > +    \"rpi.noise\":\n> > > +    {\n> > > +        \"reference_constant\": 0,\n> > > +        \"reference_slope\": 4.25\n> > > +    },\n> > > +    \"rpi.geq\":\n> > > +    {\n> > > +        \"offset\": 401,\n> > > +        \"slope\": 0.05619\n> > > +    },\n> > > +    \"rpi.sdn\":\n> > > +    {\n> > > +\n> > > +    },\n> > > +    \"rpi.awb\":\n> > > +    {\n> > > +     \"bayes\": 0\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, 66666\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, 33333\n> > > +                ],\n> > > +                \"gain\":\n> > > +                [\n> > > +                    1.0, 2.0, 4.0, 6.0, 6.0\n> > > +                ]\n> > > +            },\n> > > +            \"long\":\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> > > +        },\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> > > +         \"shadows\":\n> > > +         [\n> > > +             {\n> > > +                 \"bound\": \"LOWER\", \"q_lo\": 0.0, \"q_hi\": 0.5,\n> \"y_target\":\n> > > +                    [\n> > > +                        0, 0.17, 1000, 0.17\n> > > +                    ]\n> > > +                }\n> > > +            ]\n> > > +        },\n> > > +        \"y_target\":\n> > > +        [\n> > > +            0, 0.16, 1000, 0.165, 10000, 0.17\n> > > +        ],\n> > > +     \"base_ev\": 1.25\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\": 3000, \"table\":\n> > > +                [\n> > > +                    1.105, 1.103, 1.093, 1.083, 1.071, 1.065, 1.065,\n> 1.065, 1.066, 1.069, 1.072, 1.077, 1.084, 1.089, 1.093, 1.093,\n> > > +                    1.103, 1.096, 1.084, 1.072, 1.059, 1.051, 1.047,\n> 1.047, 1.051, 1.053, 1.059, 1.067, 1.075, 1.082, 1.085, 1.086,\n> > > +                    1.096, 1.084, 1.072, 1.059, 1.051, 1.045, 1.039,\n> 1.038, 1.039, 1.045, 1.049, 1.057, 1.063, 1.072, 1.081, 1.082,\n> > > +                    1.092, 1.075, 1.061, 1.052, 1.045, 1.039, 1.036,\n> 1.035, 1.035, 1.039, 1.044, 1.049, 1.056, 1.063, 1.072, 1.081,\n> > > +                    1.092, 1.073, 1.058, 1.048, 1.043, 1.038, 1.035,\n> 1.033, 1.033, 1.035, 1.039, 1.044, 1.051, 1.057, 1.069, 1.078,\n> > > +                    1.091, 1.068, 1.054, 1.045, 1.041, 1.038, 1.035,\n> 1.032, 1.032, 1.032, 1.036, 1.041, 1.045, 1.055, 1.069, 1.078,\n> > > +                    1.091, 1.068, 1.052, 1.043, 1.041, 1.038, 1.035,\n> 1.032, 1.031, 1.032, 1.034, 1.036, 1.043, 1.055, 1.069, 1.078,\n> > > +                    1.092, 1.068, 1.052, 1.047, 1.042, 1.041, 1.038,\n> 1.035, 1.032, 1.032, 1.035, 1.039, 1.043, 1.055, 1.071, 1.079,\n> > > +                    1.092, 1.073, 1.057, 1.051, 1.047, 1.047, 1.044,\n> 1.041, 1.038, 1.038, 1.039, 1.043, 1.051, 1.059, 1.076, 1.083,\n> > > +                    1.092, 1.081, 1.068, 1.058, 1.056, 1.056, 1.053,\n> 1.052, 1.049, 1.048, 1.048, 1.051, 1.059, 1.066, 1.083, 1.085,\n> > > +                    1.091, 1.087, 1.081, 1.068, 1.065, 1.064, 1.062,\n> 1.062, 1.061, 1.056, 1.056, 1.056, 1.064, 1.069, 1.084, 1.089,\n> > > +                    1.091, 1.089, 1.085, 1.079, 1.069, 1.068, 1.067,\n> 1.067, 1.067, 1.063, 1.061, 1.063, 1.068, 1.069, 1.081, 1.092\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 5000, \"table\":\n> > > +                [\n> > > +                    1.486, 1.484, 1.468, 1.449, 1.427, 1.403, 1.399,\n> 1.399, 1.399, 1.404, 1.413, 1.433, 1.454, 1.473, 1.482, 1.488,\n> > > +                    1.484, 1.472, 1.454, 1.431, 1.405, 1.381, 1.365,\n> 1.365, 1.367, 1.373, 1.392, 1.411, 1.438, 1.458, 1.476, 1.481,\n> > > +                    1.476, 1.458, 1.433, 1.405, 1.381, 1.361, 1.339,\n> 1.334, 1.334, 1.346, 1.362, 1.391, 1.411, 1.438, 1.462, 1.474,\n> > > +                    1.471, 1.443, 1.417, 1.388, 1.361, 1.339, 1.321,\n> 1.313, 1.313, 1.327, 1.346, 1.362, 1.391, 1.422, 1.453, 1.473,\n> > > +                    1.469, 1.439, 1.408, 1.377, 1.349, 1.321, 1.312,\n> 1.299, 1.299, 1.311, 1.327, 1.348, 1.378, 1.415, 1.446, 1.468,\n> > > +                    1.468, 1.434, 1.402, 1.371, 1.341, 1.316, 1.299,\n> 1.296, 1.295, 1.299, 1.314, 1.338, 1.371, 1.408, 1.441, 1.466,\n> > > +                    1.468, 1.434, 1.401, 1.371, 1.341, 1.316, 1.301,\n> 1.296, 1.295, 1.297, 1.314, 1.338, 1.369, 1.408, 1.441, 1.465,\n> > > +                    1.469, 1.436, 1.401, 1.374, 1.348, 1.332, 1.315,\n> 1.301, 1.301, 1.313, 1.324, 1.342, 1.372, 1.409, 1.442, 1.465,\n> > > +                    1.471, 1.444, 1.413, 1.388, 1.371, 1.348, 1.332,\n> 1.323, 1.323, 1.324, 1.342, 1.362, 1.386, 1.418, 1.449, 1.467,\n> > > +                    1.473, 1.454, 1.431, 1.407, 1.388, 1.371, 1.359,\n> 1.352, 1.351, 1.351, 1.362, 1.383, 1.404, 1.433, 1.462, 1.472,\n> > > +                    1.474, 1.461, 1.447, 1.424, 1.407, 1.394, 1.385,\n> 1.381, 1.379, 1.381, 1.383, 1.401, 1.419, 1.444, 1.466, 1.481,\n> > > +                    1.474, 1.464, 1.455, 1.442, 1.421, 1.408, 1.403,\n> 1.403, 1.403, 1.399, 1.402, 1.415, 1.432, 1.446, 1.467, 1.483\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 6500, \"table\":\n> > > +                [\n> > > +                    1.567, 1.565, 1.555, 1.541, 1.525, 1.518, 1.518,\n> 1.518, 1.521, 1.527, 1.532, 1.541, 1.551, 1.559, 1.567, 1.569,\n> > > +                    1.565, 1.557, 1.542, 1.527, 1.519, 1.515, 1.511,\n> 1.516, 1.519, 1.524, 1.528, 1.533, 1.542, 1.553, 1.559, 1.562,\n> > > +                    1.561, 1.546, 1.532, 1.521, 1.518, 1.515, 1.511,\n> 1.516, 1.519, 1.524, 1.528, 1.529, 1.533, 1.542, 1.554, 1.559,\n> > > +                    1.561, 1.539, 1.526, 1.524, 1.521, 1.521, 1.522,\n> 1.524, 1.525, 1.531, 1.529, 1.529, 1.531, 1.538, 1.549, 1.558,\n> > > +                    1.559, 1.538, 1.526, 1.525, 1.524, 1.528, 1.534,\n> 1.536, 1.536, 1.536, 1.532, 1.529, 1.531, 1.537, 1.548, 1.556,\n> > > +                    1.561, 1.537, 1.525, 1.524, 1.526, 1.532, 1.537,\n> 1.539, 1.538, 1.537, 1.532, 1.529, 1.529, 1.537, 1.546, 1.556,\n> > > +                    1.561, 1.536, 1.524, 1.522, 1.525, 1.532, 1.538,\n> 1.538, 1.537, 1.533, 1.528, 1.526, 1.527, 1.536, 1.546, 1.555,\n> > > +                    1.561, 1.537, 1.522, 1.521, 1.524, 1.531, 1.536,\n> 1.537, 1.534, 1.529, 1.526, 1.522, 1.523, 1.534, 1.547, 1.555,\n> > > +                    1.561, 1.538, 1.524, 1.522, 1.526, 1.531, 1.535,\n> 1.535, 1.534, 1.527, 1.524, 1.522, 1.522, 1.535, 1.549, 1.556,\n> > > +                    1.558, 1.543, 1.532, 1.526, 1.526, 1.529, 1.534,\n> 1.535, 1.533, 1.526, 1.523, 1.522, 1.524, 1.537, 1.552, 1.557,\n> > > +                    1.555, 1.546, 1.541, 1.528, 1.527, 1.528, 1.531,\n> 1.533, 1.531, 1.527, 1.522, 1.522, 1.526, 1.536, 1.552, 1.561,\n> > > +                    1.555, 1.547, 1.542, 1.538, 1.526, 1.526, 1.529,\n> 1.531, 1.529, 1.528, 1.519, 1.519, 1.527, 1.531, 1.543, 1.561\n> > > +                ]\n> > > +            }\n> > > +        ],\n> > > +        \"calibrations_Cb\":\n> > > +        [\n> > > +            {\n> > > +                \"ct\": 3000, \"table\":\n> > > +                [\n> > > +                    1.684, 1.688, 1.691, 1.697, 1.709, 1.722, 1.735,\n> 1.745, 1.747, 1.745, 1.731, 1.719, 1.709, 1.705, 1.699, 1.699,\n> > > +                    1.684, 1.689, 1.694, 1.708, 1.721, 1.735, 1.747,\n> 1.762, 1.762, 1.758, 1.745, 1.727, 1.716, 1.707, 1.701, 1.699,\n> > > +                    1.684, 1.691, 1.704, 1.719, 1.734, 1.755, 1.772,\n> 1.786, 1.789, 1.788, 1.762, 1.745, 1.724, 1.709, 1.702, 1.698,\n> > > +                    1.682, 1.694, 1.709, 1.729, 1.755, 1.773, 1.798,\n> 1.815, 1.817, 1.808, 1.788, 1.762, 1.733, 1.714, 1.704, 1.699,\n> > > +                    1.682, 1.693, 1.713, 1.742, 1.772, 1.798, 1.815,\n> 1.829, 1.831, 1.821, 1.807, 1.773, 1.742, 1.716, 1.703, 1.699,\n> > > +                    1.681, 1.693, 1.713, 1.742, 1.772, 1.799, 1.828,\n> 1.839, 1.839, 1.828, 1.807, 1.774, 1.742, 1.715, 1.699, 1.695,\n> > > +                    1.679, 1.691, 1.712, 1.739, 1.771, 1.798, 1.825,\n> 1.829, 1.831, 1.818, 1.801, 1.774, 1.738, 1.712, 1.695, 1.691,\n> > > +                    1.676, 1.685, 1.703, 1.727, 1.761, 1.784, 1.801,\n> 1.817, 1.817, 1.801, 1.779, 1.761, 1.729, 1.706, 1.691, 1.684,\n> > > +                    1.669, 1.678, 1.692, 1.714, 1.741, 1.764, 1.784,\n> 1.795, 1.795, 1.779, 1.761, 1.738, 1.713, 1.696, 1.683, 1.679,\n> > > +                    1.664, 1.671, 1.679, 1.693, 1.716, 1.741, 1.762,\n> 1.769, 1.769, 1.753, 1.738, 1.713, 1.701, 1.687, 1.681, 1.676,\n> > > +                    1.661, 1.664, 1.671, 1.679, 1.693, 1.714, 1.732,\n> 1.739, 1.739, 1.729, 1.708, 1.701, 1.685, 1.679, 1.676, 1.677,\n> > > +                    1.659, 1.661, 1.664, 1.671, 1.679, 1.693, 1.712,\n> 1.714, 1.714, 1.708, 1.701, 1.687, 1.679, 1.672, 1.673, 1.677\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 5000, \"table\":\n> > > +                [\n> > > +                    1.177, 1.183, 1.187, 1.191, 1.197, 1.206, 1.213,\n> 1.215, 1.215, 1.215, 1.211, 1.204, 1.196, 1.191, 1.183, 1.182,\n> > > +                    1.179, 1.185, 1.191, 1.196, 1.206, 1.217, 1.224,\n> 1.229, 1.229, 1.226, 1.221, 1.212, 1.202, 1.195, 1.188, 1.182,\n> > > +                    1.183, 1.191, 1.196, 1.206, 1.217, 1.229, 1.239,\n> 1.245, 1.245, 1.245, 1.233, 1.221, 1.212, 1.199, 1.193, 1.187,\n> > > +                    1.183, 1.192, 1.201, 1.212, 1.229, 1.241, 1.252,\n> 1.259, 1.259, 1.257, 1.245, 1.233, 1.217, 1.201, 1.194, 1.192,\n> > > +                    1.183, 1.192, 1.202, 1.219, 1.238, 1.252, 1.261,\n> 1.269, 1.268, 1.261, 1.257, 1.241, 1.223, 1.204, 1.194, 1.191,\n> > > +                    1.182, 1.192, 1.202, 1.219, 1.239, 1.255, 1.266,\n> 1.271, 1.271, 1.265, 1.258, 1.242, 1.223, 1.205, 1.192, 1.191,\n> > > +                    1.181, 1.189, 1.199, 1.218, 1.239, 1.254, 1.262,\n> 1.268, 1.268, 1.258, 1.253, 1.241, 1.221, 1.204, 1.191, 1.187,\n> > > +                    1.179, 1.184, 1.193, 1.211, 1.232, 1.243, 1.254,\n> 1.257, 1.256, 1.253, 1.242, 1.232, 1.216, 1.199, 1.187, 1.183,\n> > > +                    1.174, 1.179, 1.187, 1.202, 1.218, 1.232, 1.243,\n> 1.246, 1.246, 1.239, 1.232, 1.218, 1.207, 1.191, 1.183, 1.179,\n> > > +                    1.169, 1.175, 1.181, 1.189, 1.202, 1.218, 1.229,\n> 1.232, 1.232, 1.224, 1.218, 1.207, 1.199, 1.185, 1.181, 1.174,\n> > > +                    1.164, 1.168, 1.175, 1.179, 1.189, 1.201, 1.209,\n> 1.213, 1.213, 1.209, 1.201, 1.198, 1.186, 1.181, 1.174, 1.173,\n> > > +                    1.161, 1.166, 1.171, 1.175, 1.179, 1.189, 1.197,\n> 1.198, 1.198, 1.197, 1.196, 1.186, 1.182, 1.175, 1.173, 1.173\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 6500, \"table\":\n> > > +                [\n> > > +                    1.166, 1.171, 1.173, 1.178, 1.187, 1.193, 1.201,\n> 1.205, 1.205, 1.205, 1.199, 1.191, 1.184, 1.179, 1.174, 1.171,\n> > > +                    1.166, 1.172, 1.176, 1.184, 1.195, 1.202, 1.209,\n> 1.216, 1.216, 1.213, 1.208, 1.201, 1.189, 1.182, 1.176, 1.171,\n> > > +                    1.166, 1.173, 1.183, 1.195, 1.202, 1.214, 1.221,\n> 1.228, 1.229, 1.228, 1.221, 1.209, 1.201, 1.186, 1.179, 1.174,\n> > > +                    1.165, 1.174, 1.187, 1.201, 1.214, 1.223, 1.235,\n> 1.241, 1.242, 1.241, 1.229, 1.221, 1.205, 1.188, 1.181, 1.177,\n> > > +                    1.165, 1.174, 1.189, 1.207, 1.223, 1.235, 1.242,\n> 1.253, 1.252, 1.245, 1.241, 1.228, 1.211, 1.189, 1.181, 1.178,\n> > > +                    1.164, 1.173, 1.189, 1.207, 1.224, 1.238, 1.249,\n> 1.255, 1.255, 1.249, 1.242, 1.228, 1.211, 1.191, 1.179, 1.176,\n> > > +                    1.163, 1.172, 1.187, 1.207, 1.223, 1.237, 1.245,\n> 1.253, 1.252, 1.243, 1.237, 1.228, 1.207, 1.188, 1.176, 1.173,\n> > > +                    1.159, 1.167, 1.179, 1.199, 1.217, 1.227, 1.237,\n> 1.241, 1.241, 1.237, 1.228, 1.217, 1.201, 1.184, 1.174, 1.169,\n> > > +                    1.156, 1.164, 1.172, 1.189, 1.205, 1.217, 1.226,\n> 1.229, 1.229, 1.222, 1.217, 1.204, 1.192, 1.177, 1.171, 1.166,\n> > > +                    1.154, 1.159, 1.166, 1.177, 1.189, 1.205, 1.213,\n> 1.216, 1.216, 1.209, 1.204, 1.192, 1.183, 1.172, 1.168, 1.162,\n> > > +                    1.152, 1.155, 1.161, 1.166, 1.177, 1.188, 1.195,\n> 1.198, 1.199, 1.196, 1.187, 1.183, 1.173, 1.168, 1.163, 1.162,\n> > > +                    1.151, 1.154, 1.158, 1.162, 1.168, 1.177, 1.183,\n> 1.184, 1.184, 1.184, 1.182, 1.172, 1.168, 1.165, 1.162, 1.161\n> > > +                ]\n> > > +            }\n> > > +        ],\n> > > +        \"luminance_lut\":\n> > > +        [\n> > > +            2.236, 2.111, 1.912, 1.741, 1.579, 1.451, 1.379, 1.349,\n> 1.349, 1.361, 1.411, 1.505, 1.644, 1.816, 2.034, 2.159,\n> > > +            2.139, 1.994, 1.796, 1.625, 1.467, 1.361, 1.285, 1.248,\n> 1.239, 1.265, 1.321, 1.408, 1.536, 1.703, 1.903, 2.087,\n> > > +            2.047, 1.898, 1.694, 1.511, 1.373, 1.254, 1.186, 1.152,\n> 1.142, 1.166, 1.226, 1.309, 1.441, 1.598, 1.799, 1.978,\n> > > +            1.999, 1.824, 1.615, 1.429, 1.281, 1.179, 1.113, 1.077,\n> 1.071, 1.096, 1.153, 1.239, 1.357, 1.525, 1.726, 1.915,\n> > > +            1.976, 1.773, 1.563, 1.374, 1.222, 1.119, 1.064, 1.032,\n> 1.031, 1.049, 1.099, 1.188, 1.309, 1.478, 1.681, 1.893,\n> > > +            1.973, 1.756, 1.542, 1.351, 1.196, 1.088, 1.028, 1.011,\n> 1.004, 1.029, 1.077, 1.169, 1.295, 1.459, 1.663, 1.891,\n> > > +            1.973, 1.761, 1.541, 1.349, 1.193, 1.087, 1.031, 1.006,\n> 1.006, 1.023, 1.075, 1.169, 1.298, 1.463, 1.667, 1.891,\n> > > +            1.982, 1.789, 1.568, 1.373, 1.213, 1.111, 1.051, 1.029,\n> 1.024, 1.053, 1.106, 1.199, 1.329, 1.495, 1.692, 1.903,\n> > > +            2.015, 1.838, 1.621, 1.426, 1.268, 1.159, 1.101, 1.066,\n> 1.068, 1.099, 1.166, 1.259, 1.387, 1.553, 1.751, 1.937,\n> > > +            2.076, 1.911, 1.692, 1.507, 1.346, 1.236, 1.169, 1.136,\n> 1.139, 1.174, 1.242, 1.349, 1.475, 1.641, 1.833, 2.004,\n> > > +            2.193, 2.011, 1.798, 1.604, 1.444, 1.339, 1.265, 1.235,\n> 1.237, 1.273, 1.351, 1.461, 1.598, 1.758, 1.956, 2.125,\n> > > +            2.263, 2.154, 1.916, 1.711, 1.549, 1.432, 1.372, 1.356,\n> 1.356, 1.383, 1.455, 1.578, 1.726, 1.914, 2.119, 2.211\n> > > +        ],\n> > > +        \"sigma\": 0.006,\n> > > +        \"sigma_Cb\": 0.00208\n> > > +    },\n> > > +    \"rpi.contrast\":\n> > > +    {\n> > > +        \"ce_enable\": 1,\n> > > +        \"gamma_curve\":\n> > > +        [\n> > > +            0, 0, 1024, 5040, 2048, 9338, 3072, 12356, 4096, 15312,\n> 5120, 18051, 6144, 20790, 7168, 23193,\n> > > +            8192, 25744, 9216, 27942, 10240, 30035, 11264, 32005,\n> 12288, 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\": 2500, \"ccm\":\n> > > +                [\n> > > +                    1.70741, -0.05307, -0.65433, -0.62822, 1.68836,\n> -0.06014, -0.04452, -1.87628, 2.92079\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 2803, \"ccm\":\n> > > +                [\n> > > +                    1.74383, -0.18731, -0.55652, -0.56491, 1.67772,\n> -0.11281, -0.01522, -1.60635, 2.62157\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 2912, \"ccm\":\n> > > +                [\n> > > +                    1.75215, -0.22221, -0.52995, -0.54568, 1.63522,\n> -0.08954, 0.02633, -1.56997, 2.54364\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 2914, \"ccm\":\n> > > +                [\n> > > +                    1.72423, -0.28939, -0.43484, -0.55188, 1.62925,\n> -0.07737, 0.01959, -1.28661, 2.26702\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 3605, \"ccm\":\n> > > +                [\n> > > +                    1.80381, -0.43646, -0.36735, -0.46505, 1.56814,\n> -0.10309, 0.00929, -1.00424, 1.99495\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 4540, \"ccm\":\n> > > +                [\n> > > +                    1.85263, -0.46545, -0.38719, -0.44136, 1.68443,\n> -0.24307, 0.04108, -0.85599, 1.81491\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 5699, \"ccm\":\n> > > +                [\n> > > +                    1.98595, -0.63542, -0.35054, -0.34623, 1.54146,\n> -0.19522, 0.00411, -0.70936, 1.70525\n> > > +                ]\n> > > +            },\n> > > +            {\n> > > +                \"ct\": 8625, \"ccm\":\n> > > +                [\n> > > +                    2.21637, -0.56663, -0.64974, -0.41133, 1.96625,\n> -0.55492, -0.02307, -0.83529, 1.85837\n> > > +                ]\n> > > +            }\n> > > +        ]\n> > > +    },\n> > > +    \"rpi.sharpen\":\n> > > +    {\n> > > +\n> > > +    }\n> > > +}\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 F378DBD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 13 Aug 2021 12:20:24 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6CEFF68890;\n\tFri, 13 Aug 2021 14:20:24 +0200 (CEST)","from mail-lj1-x232.google.com (mail-lj1-x232.google.com\n\t[IPv6:2a00:1450:4864:20::232])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BE409687FA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 13 Aug 2021 14:20:21 +0200 (CEST)","by mail-lj1-x232.google.com with SMTP id h9so15361563ljq.8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 13 Aug 2021 05:20:21 -0700 (PDT)"],"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=\"hgomnYF9\"; 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=gDOi++w0Pbuv8D6hVTbvubldQrwrAY2/8f1VBY75Ai8=;\n\tb=hgomnYF9ivRFRGvgWAh4X2g3mjZ/gQWUlwQuDk1nE5Ooo/b2dmF9VozH8CyuENrvVA\n\t1hILeSvaFftb4paEcy4J6klkbTW+QpwILgAJHjkA+ryzXJ2Kq8v4XDncFaRAY7sdGLk6\n\tYEMJwbB/HohwBoR49D6pLrTcbrPxREml7smtz35UX9SJMQcBF25MJJrPYIJZ9wMmnYDb\n\tulzOKWdBj4jxtkebDsVmMSizfMCneHUcPJkG1QWSkFXlFb+w4NSv7CN1fEcevWDk0s5M\n\tFDGXzHVeu0d4su7TCp5x7e6TSHxsGp9x6s7//E9gQueXTYAqly+420R5qquOFSUdKjRz\n\t4fag==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=gDOi++w0Pbuv8D6hVTbvubldQrwrAY2/8f1VBY75Ai8=;\n\tb=G4jIdXjVAEke7f7BNR+VvNnuSozlDtkgx/PFetKir2WsfbB4+ZITePTtEMZN4XOZji\n\th7rnXxp7BsnL8Us9Q0qfTl+4rjeikRDhiKmDy7ubFAu6FGdIA0EudbxnwMcz1IxGCbIn\n\tKJqA+fxdbeH+DaJ9wN5ZvMW5A1NPW4Iwv3mkU/w2UKNv0swQ+wDQGl+oLYrP+pI4esPg\n\tfpIOiKVxVhOS9Tr9tfFfCqJ9SJx8moZ3R/m3RxSH7CSnpszEK5DF5I+qSAQ/XC/Gqs/w\n\tF+dOldGMLdM+/+iysSTKzXF4roYHkyRXgOYwoliz7vEoNCxCXJfxux9pQW4Lt9Omiwbs\n\tmxpQ==","X-Gm-Message-State":"AOAM530HOu6RlbjoSaZggAcbTkNY1PmZnaJCEAKJQow9IJpx/o2T6ukJ\n\tMD/yMpD3cYZr2k3pd4nh95v02AwMvQUFoMRHu/C37A==","X-Google-Smtp-Source":"ABdhPJxm0in8/Udg8Tsi5s1h5/19Y7hD2RCYgxsCD6v/Y1eWdIxNe4a+A1T3GqZxa/0KkFOIvyL1v89pLV7F3bKRp34=","X-Received":"by 2002:a2e:89c5:: with SMTP id c5mr1626186ljk.329.1628857220396;\n\tFri, 13 Aug 2021 05:20:20 -0700 (PDT)","MIME-Version":"1.0","References":"<20210813090242.23595-1-david.plowman@raspberrypi.com>\n\t<3879b4c8-94bd-3321-a9a9-cb4caafe89df@ideasonboard.com>\n\t<CAHW6GYJN0MdFi5U4N2d91Ov7-xWUOn-S93HpDgw=w5z_qbH-pg@mail.gmail.com>","In-Reply-To":"<CAHW6GYJN0MdFi5U4N2d91Ov7-xWUOn-S93HpDgw=w5z_qbH-pg@mail.gmail.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Fri, 13 Aug 2021 13:20:04 +0100","Message-ID":"<CAEmqJPrCFGtOgfg_tSrq1+jjSgy0Ahtuk5TFw9FBvQ9a3UX9+A@mail.gmail.com>","To":"David Plowman <david.plowman@raspberrypi.com>","Content-Type":"multipart/alternative; boundary=\"00000000000003192a05c96fe08b\"","Subject":"Re: [libcamera-devel] [PATCH v1] raspberrypi: ipa: Add tuning files\n\tfor \"NOIR\" ov5647, imx219, imx477 modules","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":"David Plowman <david.plowman@raspberypi.com>,\n\tlibcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]