[v1,3/3] ipa: rpi: Add vc4 tuning files for imx415
diff mbox series

Message ID 20250108090329.3185026-3-naush@raspberrypi.com
State Accepted
Commit 2d4660b51aee1c910cf46906de9def0c415876ad
Headers show
Series
  • [v1,1/3] libcamera: camera_sensor_properties: Add delays for imx415
Related show

Commit Message

Naushir Patuck Jan. 8, 2025, 9:03 a.m. UTC
From: Dave Stevenson <dave.stevenson@raspberrypi.com>

Basic tuning done by David Plowman using a Waveshare SKU 28524
"IMX415-98 IR-CUT Camera" module.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
---
 src/ipa/rpi/vc4/data/imx415.json | 413 +++++++++++++++++++++++++++++++
 src/ipa/rpi/vc4/data/meson.build |   1 +
 2 files changed, 414 insertions(+)
 create mode 100755 src/ipa/rpi/vc4/data/imx415.json

Comments

Kieran Bingham Jan. 8, 2025, 9:42 a.m. UTC | #1
Hi Naush,

Quoting Naushir Patuck (2025-01-08 09:03:22)
> From: Dave Stevenson <dave.stevenson@raspberrypi.com>
> 
> Basic tuning done by David Plowman using a Waveshare SKU 28524
> "IMX415-98 IR-CUT Camera" module.
> 
> Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>

Can I assume that you posting this one is an implicit RB or Acked-by tag
for the tuning content?


Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>


> ---
>  src/ipa/rpi/vc4/data/imx415.json | 413 +++++++++++++++++++++++++++++++
>  src/ipa/rpi/vc4/data/meson.build |   1 +
>  2 files changed, 414 insertions(+)
>  create mode 100755 src/ipa/rpi/vc4/data/imx415.json
> 
> diff --git a/src/ipa/rpi/vc4/data/imx415.json b/src/ipa/rpi/vc4/data/imx415.json
> new file mode 100755
> index 000000000000..6ed16b173074
> --- /dev/null
> +++ b/src/ipa/rpi/vc4/data/imx415.json
> @@ -0,0 +1,413 @@
> +{
> +    "version": 2.0,
> +    "target": "bcm2835",
> +    "algorithms": [
> +        {
> +            "rpi.black_level":
> +            {
> +                "black_level": 3840
> +            }
> +        },
> +        {
> +            "rpi.dpc": { }
> +        },
> +        {
> +            "rpi.lux":
> +            {
> +                "reference_shutter_speed": 19230,
> +                "reference_gain": 1.0,
> +                "reference_aperture": 1.0,
> +                "reference_lux": 1198,
> +                "reference_Y": 14876
> +            }
> +        },
> +        {
> +            "rpi.noise":
> +            {
> +                "reference_constant": 17,
> +                "reference_slope": 3.439
> +            }
> +        },
> +        {
> +            "rpi.geq":
> +            {
> +                "offset": 193,
> +                "slope": 0.00902
> +            }
> +        },
> +        {
> +            "rpi.sdn": { }
> +        },
> +        {
> +            "rpi.awb":
> +            {
> +                "priors": [
> +                    {
> +                        "lux": 0,
> +                        "prior":
> +                        [
> +                            2000, 1.0,
> +                            3000, 0.0,
> +                            13000, 0.0
> +                        ]
> +                    },
> +                    {
> +                        "lux": 800,
> +                        "prior":
> +                        [
> +                            2000, 0.0,
> +                            6000, 2.0,
> +                            13000, 2.0
> +                        ]
> +                    },
> +                    {
> +                        "lux": 1500,
> +                        "prior":
> +                        [
> +                            2000, 0.0,
> +                            4000, 1.0,
> +                            6000, 6.0,
> +                            6500, 7.0,
> +                            7000, 1.0,
> +                            13000, 1.0
> +                        ]
> +                    }
> +                ],
> +                "modes":
> +                {
> +                    "auto":
> +                    {
> +                        "lo": 2500,
> +                        "hi": 8000
> +                    },
> +                    "incandescent":
> +                    {
> +                        "lo": 2500,
> +                        "hi": 3000
> +                    },
> +                    "tungsten":
> +                    {
> +                        "lo": 3000,
> +                        "hi": 3500
> +                    },
> +                    "fluorescent":
> +                    {
> +                        "lo": 4000,
> +                        "hi": 4700
> +                    },
> +                    "indoor":
> +                    {
> +                        "lo": 3000,
> +                        "hi": 5000
> +                    },
> +                    "daylight":
> +                    {
> +                        "lo": 5500,
> +                        "hi": 6500
> +                    },
> +                    "cloudy":
> +                    {
> +                        "lo": 7000,
> +                        "hi": 8600
> +                    }
> +                },
> +                "bayes": 1,
> +                "ct_curve":
> +                [
> +                    2698.0, 0.7681, 0.2026,
> +                    2930.0, 0.7515, 0.2116,
> +                    3643.0, 0.6355, 0.2858,
> +                    4605.0, 0.4992, 0.4041,
> +                    5658.0, 0.4498, 0.4574
> +                ],
> +                "sensitivity_r": 1.0,
> +                "sensitivity_b": 1.0,
> +                "transverse_pos": 0.0112,
> +                "transverse_neg": 0.01424
> +            }
> +        },
> +        {
> +            "rpi.agc":
> +            {
> +                "metering_modes":
> +                {
> +                    "centre-weighted":
> +                    {
> +                        "weights":
> +                        [
> +                            3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
> +                        ]
> +                    },
> +                    "spot":
> +                    {
> +                        "weights":
> +                        [
> +                            2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
> +                        ]
> +                    },
> +                    "matrix":
> +                    {
> +                        "weights":
> +                        [
> +                            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> +                        ]
> +                    }
> +                },
> +                "exposure_modes":
> +                {
> +                    "normal":
> +                    {
> +                        "shutter": [ 100, 10000, 30000, 60000, 120000 ],
> +                        "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
> +                    },
> +                    "short":
> +                    {
> +                        "shutter": [ 100, 5000, 10000, 20000, 120000 ],
> +                        "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
> +                    }
> +                },
> +                "constraint_modes":
> +                {
> +                    "normal": [
> +                        {
> +                            "bound": "LOWER",
> +                            "q_lo": 0.98,
> +                            "q_hi": 1.0,
> +                            "y_target":
> +                            [
> +                                0, 0.5,
> +                                1000, 0.5
> +                            ]
> +                        }
> +                    ],
> +                    "highlight": [
> +                        {
> +                            "bound": "LOWER",
> +                            "q_lo": 0.98,
> +                            "q_hi": 1.0,
> +                            "y_target":
> +                            [
> +                                0, 0.5,
> +                                1000, 0.5
> +                            ]
> +                        },
> +                        {
> +                            "bound": "UPPER",
> +                            "q_lo": 0.98,
> +                            "q_hi": 1.0,
> +                            "y_target":
> +                            [
> +                                0, 0.8,
> +                                1000, 0.8
> +                            ]
> +                        }
> +                    ]
> +                },
> +                "y_target":
> +                [
> +                    0, 0.16,
> +                    1000, 0.165,
> +                    10000, 0.17
> +                ]
> +            }
> +        },
> +        {
> +            "rpi.alsc":
> +            {
> +                "omega": 1.3,
> +                "n_iter": 100,
> +                "luminance_strength": 0.8,
> +                "calibrations_Cr": [
> +                    {
> +                        "ct": 3000,
> +                        "table":
> +                        [
> +                            1.025, 1.016, 1.013, 1.011, 1.008, 1.005, 1.003, 1.001, 1.003, 1.005, 1.008, 1.011, 1.014, 1.019, 1.027, 1.035,
> +                            1.025, 1.017, 1.013, 1.011, 1.008, 1.005, 1.003, 1.003, 1.004, 1.005, 1.009, 1.012, 1.017, 1.023, 1.029, 1.035,
> +                            1.022, 1.017, 1.013, 1.009, 1.007, 1.005, 1.003, 1.003, 1.004, 1.006, 1.009, 1.012, 1.017, 1.023, 1.029, 1.035,
> +                            1.019, 1.015, 1.011, 1.007, 1.005, 1.003, 1.001, 1.001, 1.003, 1.004, 1.007, 1.009, 1.015, 1.022, 1.028, 1.035,
> +                            1.018, 1.014, 1.009, 1.006, 1.004, 1.002, 1.001, 1.001, 1.001, 1.003, 1.006, 1.009, 1.015, 1.021, 1.028, 1.035,
> +                            1.018, 1.013, 1.011, 1.006, 1.003, 1.002, 1.001, 1.001, 1.001, 1.003, 1.006, 1.009, 1.015, 1.022, 1.028, 1.036,
> +                            1.018, 1.014, 1.011, 1.007, 1.004, 1.002, 1.001, 1.001, 1.001, 1.004, 1.007, 1.009, 1.015, 1.023, 1.029, 1.036,
> +                            1.019, 1.014, 1.012, 1.008, 1.005, 1.003, 1.002, 1.001, 1.003, 1.005, 1.008, 1.012, 1.016, 1.024, 1.031, 1.037,
> +                            1.021, 1.016, 1.013, 1.009, 1.008, 1.005, 1.003, 1.003, 1.005, 1.008, 1.011, 1.014, 1.019, 1.026, 1.033, 1.039,
> +                            1.025, 1.021, 1.016, 1.013, 1.009, 1.008, 1.006, 1.006, 1.008, 1.011, 1.014, 1.019, 1.024, 1.031, 1.038, 1.046,
> +                            1.029, 1.025, 1.021, 1.018, 1.014, 1.013, 1.011, 1.011, 1.012, 1.015, 1.019, 1.023, 1.028, 1.035, 1.046, 1.051,
> +                            1.032, 1.029, 1.023, 1.021, 1.018, 1.015, 1.014, 1.014, 1.015, 1.018, 1.022, 1.027, 1.033, 1.041, 1.051, 1.054
> +                        ]
> +                    },
> +                    {
> +                        "ct": 5000,
> +                        "table":
> +                        [
> +                            1.025, 1.011, 1.009, 1.005, 1.004, 1.003, 1.001, 1.001, 1.002, 1.006, 1.009, 1.012, 1.016, 1.021, 1.031, 1.041,
> +                            1.025, 1.014, 1.009, 1.007, 1.005, 1.004, 1.003, 1.003, 1.004, 1.007, 1.009, 1.013, 1.021, 1.028, 1.037, 1.041,
> +                            1.023, 1.014, 1.009, 1.007, 1.005, 1.004, 1.003, 1.003, 1.005, 1.007, 1.011, 1.014, 1.021, 1.028, 1.037, 1.048,
> +                            1.022, 1.012, 1.007, 1.005, 1.002, 1.001, 1.001, 1.001, 1.003, 1.005, 1.009, 1.014, 1.019, 1.028, 1.039, 1.048,
> +                            1.022, 1.011, 1.006, 1.003, 1.001, 1.001, 1.001, 1.001, 1.002, 1.005, 1.009, 1.014, 1.021, 1.029, 1.039, 1.051,
> +                            1.022, 1.012, 1.007, 1.003, 1.002, 1.001, 1.001, 1.001, 1.002, 1.005, 1.009, 1.015, 1.021, 1.031, 1.041, 1.053,
> +                            1.023, 1.013, 1.009, 1.005, 1.003, 1.003, 1.001, 1.002, 1.004, 1.006, 1.011, 1.015, 1.022, 1.031, 1.042, 1.056,
> +                            1.024, 1.015, 1.012, 1.008, 1.005, 1.004, 1.004, 1.004, 1.006, 1.009, 1.013, 1.018, 1.024, 1.034, 1.045, 1.057,
> +                            1.027, 1.017, 1.015, 1.012, 1.009, 1.007, 1.007, 1.008, 1.009, 1.013, 1.018, 1.023, 1.029, 1.038, 1.051, 1.061,
> +                            1.029, 1.023, 1.017, 1.015, 1.014, 1.012, 1.011, 1.011, 1.014, 1.018, 1.024, 1.029, 1.036, 1.044, 1.056, 1.066,
> +                            1.034, 1.028, 1.023, 1.022, 1.019, 1.019, 1.018, 1.018, 1.021, 1.025, 1.031, 1.035, 1.042, 1.053, 1.066, 1.074,
> +                            1.041, 1.034, 1.027, 1.025, 1.025, 1.023, 1.023, 1.023, 1.025, 1.031, 1.035, 1.041, 1.049, 1.059, 1.074, 1.079
> +                        ]
> +                    }
> +                ],
> +                "calibrations_Cb": [
> +                    {
> +                        "ct": 3000,
> +                        "table":
> +                        [
> +                            1.001, 1.001, 1.007, 1.015, 1.027, 1.034, 1.038, 1.041, 1.042, 1.043, 1.043, 1.043, 1.041, 1.039, 1.049, 1.054,
> +                            1.011, 1.011, 1.013, 1.023, 1.032, 1.039, 1.044, 1.047, 1.052, 1.056, 1.059, 1.059, 1.055, 1.051, 1.054, 1.056,
> +                            1.015, 1.015, 1.019, 1.032, 1.039, 1.044, 1.047, 1.052, 1.055, 1.059, 1.061, 1.066, 1.063, 1.058, 1.061, 1.064,
> +                            1.016, 1.017, 1.023, 1.032, 1.041, 1.045, 1.048, 1.053, 1.056, 1.061, 1.066, 1.069, 1.067, 1.064, 1.065, 1.068,
> +                            1.018, 1.019, 1.025, 1.033, 1.042, 1.045, 1.049, 1.054, 1.058, 1.063, 1.071, 1.072, 1.071, 1.068, 1.069, 1.071,
> +                            1.023, 1.024, 1.029, 1.035, 1.043, 1.048, 1.052, 1.057, 1.061, 1.065, 1.074, 1.075, 1.075, 1.072, 1.072, 1.075,
> +                            1.027, 1.028, 1.031, 1.038, 1.045, 1.051, 1.054, 1.059, 1.064, 1.068, 1.075, 1.079, 1.078, 1.075, 1.076, 1.081,
> +                            1.029, 1.031, 1.033, 1.044, 1.048, 1.054, 1.059, 1.064, 1.067, 1.073, 1.079, 1.082, 1.082, 1.079, 1.081, 1.085,
> +                            1.033, 1.033, 1.035, 1.047, 1.053, 1.058, 1.064, 1.067, 1.073, 1.079, 1.084, 1.086, 1.086, 1.084, 1.089, 1.091,
> +                            1.037, 1.037, 1.038, 1.049, 1.057, 1.062, 1.068, 1.073, 1.079, 1.084, 1.089, 1.092, 1.092, 1.092, 1.096, 1.104,
> +                            1.041, 1.041, 1.043, 1.051, 1.061, 1.068, 1.073, 1.079, 1.083, 1.089, 1.092, 1.094, 1.097, 1.099, 1.105, 1.115,
> +                            1.048, 1.044, 1.044, 1.051, 1.063, 1.071, 1.076, 1.082, 1.088, 1.091, 1.094, 1.097, 1.099, 1.104, 1.115, 1.126
> +                        ]
> +                    },
> +                    {
> +                        "ct": 5000,
> +                        "table":
> +                        [
> +                            1.001, 1.001, 1.005, 1.011, 1.014, 1.018, 1.019, 1.019, 1.019, 1.021, 1.021, 1.021, 1.019, 1.017, 1.014, 1.014,
> +                            1.009, 1.009, 1.011, 1.014, 1.019, 1.024, 1.026, 1.029, 1.031, 1.032, 1.032, 1.031, 1.027, 1.023, 1.022, 1.022,
> +                            1.011, 1.012, 1.015, 1.018, 1.024, 1.026, 1.029, 1.032, 1.035, 1.036, 1.036, 1.034, 1.031, 1.027, 1.025, 1.025,
> +                            1.012, 1.013, 1.015, 1.019, 1.025, 1.029, 1.032, 1.035, 1.036, 1.038, 1.038, 1.036, 1.034, 1.029, 1.026, 1.026,
> +                            1.013, 1.014, 1.016, 1.019, 1.027, 1.031, 1.034, 1.037, 1.039, 1.039, 1.041, 1.039, 1.036, 1.031, 1.028, 1.027,
> +                            1.014, 1.014, 1.017, 1.021, 1.027, 1.033, 1.037, 1.039, 1.041, 1.041, 1.042, 1.042, 1.039, 1.033, 1.029, 1.028,
> +                            1.015, 1.015, 1.018, 1.021, 1.027, 1.033, 1.037, 1.041, 1.041, 1.042, 1.042, 1.042, 1.039, 1.034, 1.029, 1.029,
> +                            1.015, 1.016, 1.018, 1.022, 1.027, 1.033, 1.037, 1.041, 1.041, 1.042, 1.043, 1.043, 1.041, 1.035, 1.031, 1.031,
> +                            1.015, 1.016, 1.018, 1.022, 1.027, 1.032, 1.037, 1.041, 1.042, 1.042, 1.044, 1.043, 1.041, 1.036, 1.034, 1.033,
> +                            1.016, 1.017, 1.017, 1.022, 1.027, 1.032, 1.036, 1.039, 1.042, 1.042, 1.043, 1.043, 1.041, 1.039, 1.036, 1.034,
> +                            1.017, 1.017, 1.018, 1.022, 1.027, 1.031, 1.035, 1.039, 1.041, 1.042, 1.042, 1.042, 1.042, 1.039, 1.039, 1.039,
> +                            1.018, 1.017, 1.017, 1.021, 1.027, 1.031, 1.033, 1.038, 1.041, 1.041, 1.042, 1.042, 1.041, 1.041, 1.041, 1.041
> +                        ]
> +                    }
> +                ],
> +                "luminance_lut":
> +                [
> +                    2.102, 1.903, 1.658, 1.483, 1.358, 1.267, 1.202, 1.202, 1.202, 1.242, 1.323, 1.431, 1.585, 1.797, 2.096, 2.351,
> +                    1.996, 1.776, 1.549, 1.385, 1.273, 1.204, 1.138, 1.133, 1.133, 1.185, 1.252, 1.343, 1.484, 1.679, 1.954, 2.228,
> +                    1.923, 1.689, 1.474, 1.318, 1.204, 1.138, 1.079, 1.071, 1.071, 1.133, 1.185, 1.284, 1.415, 1.597, 1.854, 2.146,
> +                    1.881, 1.631, 1.423, 1.272, 1.159, 1.079, 1.051, 1.026, 1.046, 1.071, 1.144, 1.245, 1.369, 1.543, 1.801, 2.095,
> +                    1.867, 1.595, 1.391, 1.242, 1.131, 1.051, 1.013, 1.002, 1.013, 1.046, 1.121, 1.219, 1.343, 1.511, 1.752, 2.079,
> +                    1.867, 1.589, 1.385, 1.236, 1.125, 1.048, 1.001, 1.001, 1.003, 1.045, 1.118, 1.217, 1.342, 1.511, 1.746, 2.079,
> +                    1.867, 1.589, 1.385, 1.236, 1.125, 1.048, 1.011, 1.003, 1.011, 1.046, 1.118, 1.217, 1.343, 1.511, 1.746, 2.079,
> +                    1.884, 1.621, 1.411, 1.261, 1.149, 1.071, 1.048, 1.024, 1.046, 1.069, 1.141, 1.239, 1.369, 1.541, 1.781, 2.093,
> +                    1.913, 1.675, 1.459, 1.304, 1.191, 1.125, 1.071, 1.065, 1.069, 1.124, 1.181, 1.278, 1.413, 1.592, 1.842, 2.133,
> +                    1.981, 1.755, 1.529, 1.368, 1.251, 1.191, 1.125, 1.124, 1.124, 1.181, 1.242, 1.337, 1.479, 1.669, 1.935, 2.207,
> +                    2.078, 1.867, 1.625, 1.453, 1.344, 1.251, 1.202, 1.201, 1.201, 1.242, 1.333, 1.418, 1.571, 1.776, 2.063, 2.321,
> +                    2.217, 2.011, 1.747, 1.562, 1.431, 1.331, 1.278, 1.278, 1.278, 1.313, 1.407, 1.523, 1.686, 1.911, 2.226, 2.484
> +                ],
> +                "sigma": 0.00135,
> +                "sigma_Cb": 0.00279
> +            }
> +        },
> +        {
> +            "rpi.contrast":
> +            {
> +                "ce_enable": 1,
> +                "gamma_curve":
> +                [
> +                    0, 0,
> +                    1024, 5040,
> +                    2048, 9338,
> +                    3072, 12356,
> +                    4096, 15312,
> +                    5120, 18051,
> +                    6144, 20790,
> +                    7168, 23193,
> +                    8192, 25744,
> +                    9216, 27942,
> +                    10240, 30035,
> +                    11264, 32005,
> +                    12288, 33975,
> +                    13312, 35815,
> +                    14336, 37600,
> +                    15360, 39168,
> +                    16384, 40642,
> +                    18432, 43379,
> +                    20480, 45749,
> +                    22528, 47753,
> +                    24576, 49621,
> +                    26624, 51253,
> +                    28672, 52698,
> +                    30720, 53796,
> +                    32768, 54876,
> +                    36864, 57012,
> +                    40960, 58656,
> +                    45056, 59954,
> +                    49152, 61183,
> +                    53248, 62355,
> +                    57344, 63419,
> +                    61440, 64476,
> +                    65535, 65535
> +                ]
> +            }
> +        },
> +        {
> +            "rpi.ccm":
> +            {
> +                "ccms": [
> +                    {
> +                        "ct": 2698,
> +                        "ccm":
> +                        [
> +                            1.57227, -0.32596, -0.24631,
> +                            -0.61264, 1.70791, -0.09526,
> +                            -0.43254, 0.48489, 0.94765
> +                        ]
> +                    },
> +                    {
> +                        "ct": 2930,
> +                        "ccm":
> +                        [
> +                            1.69455, -0.52724, -0.16731,
> +                            -0.67131, 1.78468, -0.11338,
> +                            -0.41609, 0.54693, 0.86916
> +                        ]
> +                    },
> +                    {
> +                        "ct": 3643,
> +                        "ccm":
> +                        [
> +                            1.74041, -0.77553, 0.03512,
> +                            -0.44073, 1.34131, 0.09943,
> +                            -0.11035, -0.93919, 2.04954
> +                        ]
> +                    },
> +                    {
> +                        "ct": 4605,
> +                        "ccm":
> +                        [
> +                            1.49865, -0.41638, -0.08227,
> +                            -0.39445, 1.70114, -0.30669,
> +                            0.01319, -0.88009, 1.86689
> +                        ]
> +                    },
> +                    {
> +                        "ct": 5658,
> +                        "ccm":
> +                        [
> +                            1.38601, -0.23128, -0.15472,
> +                            -0.37641, 1.70444, -0.32803,
> +                            -0.01575, -0.71466, 1.73041
> +                        ]
> +                    }
> +                ]
> +            }
> +        },
> +        {
> +            "rpi.sharpen": { }
> +        }
> +    ]
> +}
> diff --git a/src/ipa/rpi/vc4/data/meson.build b/src/ipa/rpi/vc4/data/meson.build
> index 94c0ee6e6b7b..7a8001ee4817 100644
> --- a/src/ipa/rpi/vc4/data/meson.build
> +++ b/src/ipa/rpi/vc4/data/meson.build
> @@ -9,6 +9,7 @@ conf_files = files([
>      'imx296_mono.json',
>      'imx327.json',
>      'imx378.json',
> +    'imx415.json',
>      'imx462.json',
>      'imx477.json',
>      'imx477_noir.json',
> -- 
> 2.43.0
>
Naushir Patuck Jan. 8, 2025, 9:47 a.m. UTC | #2
Hi Kieran,

Happy New Year!

On Wed, 8 Jan 2025 at 09:42, Kieran Bingham
<kieran.bingham@ideasonboard.com> wrote:
>
> Hi Naush,
>
> Quoting Naushir Patuck (2025-01-08 09:03:22)
> > From: Dave Stevenson <dave.stevenson@raspberrypi.com>
> >
> > Basic tuning done by David Plowman using a Waveshare SKU 28524
> > "IMX415-98 IR-CUT Camera" module.
> >
> > Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
>
> Can I assume that you posting this one is an implicit RB or Acked-by tag
> for the tuning content?
>
>
> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

Sorry my bad.  All the patches should also have:

Reviewed-by: Naushir Patuck <naush@raspberrypi.com>

>
>
> > ---
> >  src/ipa/rpi/vc4/data/imx415.json | 413 +++++++++++++++++++++++++++++++
> >  src/ipa/rpi/vc4/data/meson.build |   1 +
> >  2 files changed, 414 insertions(+)
> >  create mode 100755 src/ipa/rpi/vc4/data/imx415.json
> >
> > diff --git a/src/ipa/rpi/vc4/data/imx415.json b/src/ipa/rpi/vc4/data/imx415.json
> > new file mode 100755
> > index 000000000000..6ed16b173074
> > --- /dev/null
> > +++ b/src/ipa/rpi/vc4/data/imx415.json
> > @@ -0,0 +1,413 @@
> > +{
> > +    "version": 2.0,
> > +    "target": "bcm2835",
> > +    "algorithms": [
> > +        {
> > +            "rpi.black_level":
> > +            {
> > +                "black_level": 3840
> > +            }
> > +        },
> > +        {
> > +            "rpi.dpc": { }
> > +        },
> > +        {
> > +            "rpi.lux":
> > +            {
> > +                "reference_shutter_speed": 19230,
> > +                "reference_gain": 1.0,
> > +                "reference_aperture": 1.0,
> > +                "reference_lux": 1198,
> > +                "reference_Y": 14876
> > +            }
> > +        },
> > +        {
> > +            "rpi.noise":
> > +            {
> > +                "reference_constant": 17,
> > +                "reference_slope": 3.439
> > +            }
> > +        },
> > +        {
> > +            "rpi.geq":
> > +            {
> > +                "offset": 193,
> > +                "slope": 0.00902
> > +            }
> > +        },
> > +        {
> > +            "rpi.sdn": { }
> > +        },
> > +        {
> > +            "rpi.awb":
> > +            {
> > +                "priors": [
> > +                    {
> > +                        "lux": 0,
> > +                        "prior":
> > +                        [
> > +                            2000, 1.0,
> > +                            3000, 0.0,
> > +                            13000, 0.0
> > +                        ]
> > +                    },
> > +                    {
> > +                        "lux": 800,
> > +                        "prior":
> > +                        [
> > +                            2000, 0.0,
> > +                            6000, 2.0,
> > +                            13000, 2.0
> > +                        ]
> > +                    },
> > +                    {
> > +                        "lux": 1500,
> > +                        "prior":
> > +                        [
> > +                            2000, 0.0,
> > +                            4000, 1.0,
> > +                            6000, 6.0,
> > +                            6500, 7.0,
> > +                            7000, 1.0,
> > +                            13000, 1.0
> > +                        ]
> > +                    }
> > +                ],
> > +                "modes":
> > +                {
> > +                    "auto":
> > +                    {
> > +                        "lo": 2500,
> > +                        "hi": 8000
> > +                    },
> > +                    "incandescent":
> > +                    {
> > +                        "lo": 2500,
> > +                        "hi": 3000
> > +                    },
> > +                    "tungsten":
> > +                    {
> > +                        "lo": 3000,
> > +                        "hi": 3500
> > +                    },
> > +                    "fluorescent":
> > +                    {
> > +                        "lo": 4000,
> > +                        "hi": 4700
> > +                    },
> > +                    "indoor":
> > +                    {
> > +                        "lo": 3000,
> > +                        "hi": 5000
> > +                    },
> > +                    "daylight":
> > +                    {
> > +                        "lo": 5500,
> > +                        "hi": 6500
> > +                    },
> > +                    "cloudy":
> > +                    {
> > +                        "lo": 7000,
> > +                        "hi": 8600
> > +                    }
> > +                },
> > +                "bayes": 1,
> > +                "ct_curve":
> > +                [
> > +                    2698.0, 0.7681, 0.2026,
> > +                    2930.0, 0.7515, 0.2116,
> > +                    3643.0, 0.6355, 0.2858,
> > +                    4605.0, 0.4992, 0.4041,
> > +                    5658.0, 0.4498, 0.4574
> > +                ],
> > +                "sensitivity_r": 1.0,
> > +                "sensitivity_b": 1.0,
> > +                "transverse_pos": 0.0112,
> > +                "transverse_neg": 0.01424
> > +            }
> > +        },
> > +        {
> > +            "rpi.agc":
> > +            {
> > +                "metering_modes":
> > +                {
> > +                    "centre-weighted":
> > +                    {
> > +                        "weights":
> > +                        [
> > +                            3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
> > +                        ]
> > +                    },
> > +                    "spot":
> > +                    {
> > +                        "weights":
> > +                        [
> > +                            2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
> > +                        ]
> > +                    },
> > +                    "matrix":
> > +                    {
> > +                        "weights":
> > +                        [
> > +                            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> > +                        ]
> > +                    }
> > +                },
> > +                "exposure_modes":
> > +                {
> > +                    "normal":
> > +                    {
> > +                        "shutter": [ 100, 10000, 30000, 60000, 120000 ],
> > +                        "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
> > +                    },
> > +                    "short":
> > +                    {
> > +                        "shutter": [ 100, 5000, 10000, 20000, 120000 ],
> > +                        "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
> > +                    }
> > +                },
> > +                "constraint_modes":
> > +                {
> > +                    "normal": [
> > +                        {
> > +                            "bound": "LOWER",
> > +                            "q_lo": 0.98,
> > +                            "q_hi": 1.0,
> > +                            "y_target":
> > +                            [
> > +                                0, 0.5,
> > +                                1000, 0.5
> > +                            ]
> > +                        }
> > +                    ],
> > +                    "highlight": [
> > +                        {
> > +                            "bound": "LOWER",
> > +                            "q_lo": 0.98,
> > +                            "q_hi": 1.0,
> > +                            "y_target":
> > +                            [
> > +                                0, 0.5,
> > +                                1000, 0.5
> > +                            ]
> > +                        },
> > +                        {
> > +                            "bound": "UPPER",
> > +                            "q_lo": 0.98,
> > +                            "q_hi": 1.0,
> > +                            "y_target":
> > +                            [
> > +                                0, 0.8,
> > +                                1000, 0.8
> > +                            ]
> > +                        }
> > +                    ]
> > +                },
> > +                "y_target":
> > +                [
> > +                    0, 0.16,
> > +                    1000, 0.165,
> > +                    10000, 0.17
> > +                ]
> > +            }
> > +        },
> > +        {
> > +            "rpi.alsc":
> > +            {
> > +                "omega": 1.3,
> > +                "n_iter": 100,
> > +                "luminance_strength": 0.8,
> > +                "calibrations_Cr": [
> > +                    {
> > +                        "ct": 3000,
> > +                        "table":
> > +                        [
> > +                            1.025, 1.016, 1.013, 1.011, 1.008, 1.005, 1.003, 1.001, 1.003, 1.005, 1.008, 1.011, 1.014, 1.019, 1.027, 1.035,
> > +                            1.025, 1.017, 1.013, 1.011, 1.008, 1.005, 1.003, 1.003, 1.004, 1.005, 1.009, 1.012, 1.017, 1.023, 1.029, 1.035,
> > +                            1.022, 1.017, 1.013, 1.009, 1.007, 1.005, 1.003, 1.003, 1.004, 1.006, 1.009, 1.012, 1.017, 1.023, 1.029, 1.035,
> > +                            1.019, 1.015, 1.011, 1.007, 1.005, 1.003, 1.001, 1.001, 1.003, 1.004, 1.007, 1.009, 1.015, 1.022, 1.028, 1.035,
> > +                            1.018, 1.014, 1.009, 1.006, 1.004, 1.002, 1.001, 1.001, 1.001, 1.003, 1.006, 1.009, 1.015, 1.021, 1.028, 1.035,
> > +                            1.018, 1.013, 1.011, 1.006, 1.003, 1.002, 1.001, 1.001, 1.001, 1.003, 1.006, 1.009, 1.015, 1.022, 1.028, 1.036,
> > +                            1.018, 1.014, 1.011, 1.007, 1.004, 1.002, 1.001, 1.001, 1.001, 1.004, 1.007, 1.009, 1.015, 1.023, 1.029, 1.036,
> > +                            1.019, 1.014, 1.012, 1.008, 1.005, 1.003, 1.002, 1.001, 1.003, 1.005, 1.008, 1.012, 1.016, 1.024, 1.031, 1.037,
> > +                            1.021, 1.016, 1.013, 1.009, 1.008, 1.005, 1.003, 1.003, 1.005, 1.008, 1.011, 1.014, 1.019, 1.026, 1.033, 1.039,
> > +                            1.025, 1.021, 1.016, 1.013, 1.009, 1.008, 1.006, 1.006, 1.008, 1.011, 1.014, 1.019, 1.024, 1.031, 1.038, 1.046,
> > +                            1.029, 1.025, 1.021, 1.018, 1.014, 1.013, 1.011, 1.011, 1.012, 1.015, 1.019, 1.023, 1.028, 1.035, 1.046, 1.051,
> > +                            1.032, 1.029, 1.023, 1.021, 1.018, 1.015, 1.014, 1.014, 1.015, 1.018, 1.022, 1.027, 1.033, 1.041, 1.051, 1.054
> > +                        ]
> > +                    },
> > +                    {
> > +                        "ct": 5000,
> > +                        "table":
> > +                        [
> > +                            1.025, 1.011, 1.009, 1.005, 1.004, 1.003, 1.001, 1.001, 1.002, 1.006, 1.009, 1.012, 1.016, 1.021, 1.031, 1.041,
> > +                            1.025, 1.014, 1.009, 1.007, 1.005, 1.004, 1.003, 1.003, 1.004, 1.007, 1.009, 1.013, 1.021, 1.028, 1.037, 1.041,
> > +                            1.023, 1.014, 1.009, 1.007, 1.005, 1.004, 1.003, 1.003, 1.005, 1.007, 1.011, 1.014, 1.021, 1.028, 1.037, 1.048,
> > +                            1.022, 1.012, 1.007, 1.005, 1.002, 1.001, 1.001, 1.001, 1.003, 1.005, 1.009, 1.014, 1.019, 1.028, 1.039, 1.048,
> > +                            1.022, 1.011, 1.006, 1.003, 1.001, 1.001, 1.001, 1.001, 1.002, 1.005, 1.009, 1.014, 1.021, 1.029, 1.039, 1.051,
> > +                            1.022, 1.012, 1.007, 1.003, 1.002, 1.001, 1.001, 1.001, 1.002, 1.005, 1.009, 1.015, 1.021, 1.031, 1.041, 1.053,
> > +                            1.023, 1.013, 1.009, 1.005, 1.003, 1.003, 1.001, 1.002, 1.004, 1.006, 1.011, 1.015, 1.022, 1.031, 1.042, 1.056,
> > +                            1.024, 1.015, 1.012, 1.008, 1.005, 1.004, 1.004, 1.004, 1.006, 1.009, 1.013, 1.018, 1.024, 1.034, 1.045, 1.057,
> > +                            1.027, 1.017, 1.015, 1.012, 1.009, 1.007, 1.007, 1.008, 1.009, 1.013, 1.018, 1.023, 1.029, 1.038, 1.051, 1.061,
> > +                            1.029, 1.023, 1.017, 1.015, 1.014, 1.012, 1.011, 1.011, 1.014, 1.018, 1.024, 1.029, 1.036, 1.044, 1.056, 1.066,
> > +                            1.034, 1.028, 1.023, 1.022, 1.019, 1.019, 1.018, 1.018, 1.021, 1.025, 1.031, 1.035, 1.042, 1.053, 1.066, 1.074,
> > +                            1.041, 1.034, 1.027, 1.025, 1.025, 1.023, 1.023, 1.023, 1.025, 1.031, 1.035, 1.041, 1.049, 1.059, 1.074, 1.079
> > +                        ]
> > +                    }
> > +                ],
> > +                "calibrations_Cb": [
> > +                    {
> > +                        "ct": 3000,
> > +                        "table":
> > +                        [
> > +                            1.001, 1.001, 1.007, 1.015, 1.027, 1.034, 1.038, 1.041, 1.042, 1.043, 1.043, 1.043, 1.041, 1.039, 1.049, 1.054,
> > +                            1.011, 1.011, 1.013, 1.023, 1.032, 1.039, 1.044, 1.047, 1.052, 1.056, 1.059, 1.059, 1.055, 1.051, 1.054, 1.056,
> > +                            1.015, 1.015, 1.019, 1.032, 1.039, 1.044, 1.047, 1.052, 1.055, 1.059, 1.061, 1.066, 1.063, 1.058, 1.061, 1.064,
> > +                            1.016, 1.017, 1.023, 1.032, 1.041, 1.045, 1.048, 1.053, 1.056, 1.061, 1.066, 1.069, 1.067, 1.064, 1.065, 1.068,
> > +                            1.018, 1.019, 1.025, 1.033, 1.042, 1.045, 1.049, 1.054, 1.058, 1.063, 1.071, 1.072, 1.071, 1.068, 1.069, 1.071,
> > +                            1.023, 1.024, 1.029, 1.035, 1.043, 1.048, 1.052, 1.057, 1.061, 1.065, 1.074, 1.075, 1.075, 1.072, 1.072, 1.075,
> > +                            1.027, 1.028, 1.031, 1.038, 1.045, 1.051, 1.054, 1.059, 1.064, 1.068, 1.075, 1.079, 1.078, 1.075, 1.076, 1.081,
> > +                            1.029, 1.031, 1.033, 1.044, 1.048, 1.054, 1.059, 1.064, 1.067, 1.073, 1.079, 1.082, 1.082, 1.079, 1.081, 1.085,
> > +                            1.033, 1.033, 1.035, 1.047, 1.053, 1.058, 1.064, 1.067, 1.073, 1.079, 1.084, 1.086, 1.086, 1.084, 1.089, 1.091,
> > +                            1.037, 1.037, 1.038, 1.049, 1.057, 1.062, 1.068, 1.073, 1.079, 1.084, 1.089, 1.092, 1.092, 1.092, 1.096, 1.104,
> > +                            1.041, 1.041, 1.043, 1.051, 1.061, 1.068, 1.073, 1.079, 1.083, 1.089, 1.092, 1.094, 1.097, 1.099, 1.105, 1.115,
> > +                            1.048, 1.044, 1.044, 1.051, 1.063, 1.071, 1.076, 1.082, 1.088, 1.091, 1.094, 1.097, 1.099, 1.104, 1.115, 1.126
> > +                        ]
> > +                    },
> > +                    {
> > +                        "ct": 5000,
> > +                        "table":
> > +                        [
> > +                            1.001, 1.001, 1.005, 1.011, 1.014, 1.018, 1.019, 1.019, 1.019, 1.021, 1.021, 1.021, 1.019, 1.017, 1.014, 1.014,
> > +                            1.009, 1.009, 1.011, 1.014, 1.019, 1.024, 1.026, 1.029, 1.031, 1.032, 1.032, 1.031, 1.027, 1.023, 1.022, 1.022,
> > +                            1.011, 1.012, 1.015, 1.018, 1.024, 1.026, 1.029, 1.032, 1.035, 1.036, 1.036, 1.034, 1.031, 1.027, 1.025, 1.025,
> > +                            1.012, 1.013, 1.015, 1.019, 1.025, 1.029, 1.032, 1.035, 1.036, 1.038, 1.038, 1.036, 1.034, 1.029, 1.026, 1.026,
> > +                            1.013, 1.014, 1.016, 1.019, 1.027, 1.031, 1.034, 1.037, 1.039, 1.039, 1.041, 1.039, 1.036, 1.031, 1.028, 1.027,
> > +                            1.014, 1.014, 1.017, 1.021, 1.027, 1.033, 1.037, 1.039, 1.041, 1.041, 1.042, 1.042, 1.039, 1.033, 1.029, 1.028,
> > +                            1.015, 1.015, 1.018, 1.021, 1.027, 1.033, 1.037, 1.041, 1.041, 1.042, 1.042, 1.042, 1.039, 1.034, 1.029, 1.029,
> > +                            1.015, 1.016, 1.018, 1.022, 1.027, 1.033, 1.037, 1.041, 1.041, 1.042, 1.043, 1.043, 1.041, 1.035, 1.031, 1.031,
> > +                            1.015, 1.016, 1.018, 1.022, 1.027, 1.032, 1.037, 1.041, 1.042, 1.042, 1.044, 1.043, 1.041, 1.036, 1.034, 1.033,
> > +                            1.016, 1.017, 1.017, 1.022, 1.027, 1.032, 1.036, 1.039, 1.042, 1.042, 1.043, 1.043, 1.041, 1.039, 1.036, 1.034,
> > +                            1.017, 1.017, 1.018, 1.022, 1.027, 1.031, 1.035, 1.039, 1.041, 1.042, 1.042, 1.042, 1.042, 1.039, 1.039, 1.039,
> > +                            1.018, 1.017, 1.017, 1.021, 1.027, 1.031, 1.033, 1.038, 1.041, 1.041, 1.042, 1.042, 1.041, 1.041, 1.041, 1.041
> > +                        ]
> > +                    }
> > +                ],
> > +                "luminance_lut":
> > +                [
> > +                    2.102, 1.903, 1.658, 1.483, 1.358, 1.267, 1.202, 1.202, 1.202, 1.242, 1.323, 1.431, 1.585, 1.797, 2.096, 2.351,
> > +                    1.996, 1.776, 1.549, 1.385, 1.273, 1.204, 1.138, 1.133, 1.133, 1.185, 1.252, 1.343, 1.484, 1.679, 1.954, 2.228,
> > +                    1.923, 1.689, 1.474, 1.318, 1.204, 1.138, 1.079, 1.071, 1.071, 1.133, 1.185, 1.284, 1.415, 1.597, 1.854, 2.146,
> > +                    1.881, 1.631, 1.423, 1.272, 1.159, 1.079, 1.051, 1.026, 1.046, 1.071, 1.144, 1.245, 1.369, 1.543, 1.801, 2.095,
> > +                    1.867, 1.595, 1.391, 1.242, 1.131, 1.051, 1.013, 1.002, 1.013, 1.046, 1.121, 1.219, 1.343, 1.511, 1.752, 2.079,
> > +                    1.867, 1.589, 1.385, 1.236, 1.125, 1.048, 1.001, 1.001, 1.003, 1.045, 1.118, 1.217, 1.342, 1.511, 1.746, 2.079,
> > +                    1.867, 1.589, 1.385, 1.236, 1.125, 1.048, 1.011, 1.003, 1.011, 1.046, 1.118, 1.217, 1.343, 1.511, 1.746, 2.079,
> > +                    1.884, 1.621, 1.411, 1.261, 1.149, 1.071, 1.048, 1.024, 1.046, 1.069, 1.141, 1.239, 1.369, 1.541, 1.781, 2.093,
> > +                    1.913, 1.675, 1.459, 1.304, 1.191, 1.125, 1.071, 1.065, 1.069, 1.124, 1.181, 1.278, 1.413, 1.592, 1.842, 2.133,
> > +                    1.981, 1.755, 1.529, 1.368, 1.251, 1.191, 1.125, 1.124, 1.124, 1.181, 1.242, 1.337, 1.479, 1.669, 1.935, 2.207,
> > +                    2.078, 1.867, 1.625, 1.453, 1.344, 1.251, 1.202, 1.201, 1.201, 1.242, 1.333, 1.418, 1.571, 1.776, 2.063, 2.321,
> > +                    2.217, 2.011, 1.747, 1.562, 1.431, 1.331, 1.278, 1.278, 1.278, 1.313, 1.407, 1.523, 1.686, 1.911, 2.226, 2.484
> > +                ],
> > +                "sigma": 0.00135,
> > +                "sigma_Cb": 0.00279
> > +            }
> > +        },
> > +        {
> > +            "rpi.contrast":
> > +            {
> > +                "ce_enable": 1,
> > +                "gamma_curve":
> > +                [
> > +                    0, 0,
> > +                    1024, 5040,
> > +                    2048, 9338,
> > +                    3072, 12356,
> > +                    4096, 15312,
> > +                    5120, 18051,
> > +                    6144, 20790,
> > +                    7168, 23193,
> > +                    8192, 25744,
> > +                    9216, 27942,
> > +                    10240, 30035,
> > +                    11264, 32005,
> > +                    12288, 33975,
> > +                    13312, 35815,
> > +                    14336, 37600,
> > +                    15360, 39168,
> > +                    16384, 40642,
> > +                    18432, 43379,
> > +                    20480, 45749,
> > +                    22528, 47753,
> > +                    24576, 49621,
> > +                    26624, 51253,
> > +                    28672, 52698,
> > +                    30720, 53796,
> > +                    32768, 54876,
> > +                    36864, 57012,
> > +                    40960, 58656,
> > +                    45056, 59954,
> > +                    49152, 61183,
> > +                    53248, 62355,
> > +                    57344, 63419,
> > +                    61440, 64476,
> > +                    65535, 65535
> > +                ]
> > +            }
> > +        },
> > +        {
> > +            "rpi.ccm":
> > +            {
> > +                "ccms": [
> > +                    {
> > +                        "ct": 2698,
> > +                        "ccm":
> > +                        [
> > +                            1.57227, -0.32596, -0.24631,
> > +                            -0.61264, 1.70791, -0.09526,
> > +                            -0.43254, 0.48489, 0.94765
> > +                        ]
> > +                    },
> > +                    {
> > +                        "ct": 2930,
> > +                        "ccm":
> > +                        [
> > +                            1.69455, -0.52724, -0.16731,
> > +                            -0.67131, 1.78468, -0.11338,
> > +                            -0.41609, 0.54693, 0.86916
> > +                        ]
> > +                    },
> > +                    {
> > +                        "ct": 3643,
> > +                        "ccm":
> > +                        [
> > +                            1.74041, -0.77553, 0.03512,
> > +                            -0.44073, 1.34131, 0.09943,
> > +                            -0.11035, -0.93919, 2.04954
> > +                        ]
> > +                    },
> > +                    {
> > +                        "ct": 4605,
> > +                        "ccm":
> > +                        [
> > +                            1.49865, -0.41638, -0.08227,
> > +                            -0.39445, 1.70114, -0.30669,
> > +                            0.01319, -0.88009, 1.86689
> > +                        ]
> > +                    },
> > +                    {
> > +                        "ct": 5658,
> > +                        "ccm":
> > +                        [
> > +                            1.38601, -0.23128, -0.15472,
> > +                            -0.37641, 1.70444, -0.32803,
> > +                            -0.01575, -0.71466, 1.73041
> > +                        ]
> > +                    }
> > +                ]
> > +            }
> > +        },
> > +        {
> > +            "rpi.sharpen": { }
> > +        }
> > +    ]
> > +}
> > diff --git a/src/ipa/rpi/vc4/data/meson.build b/src/ipa/rpi/vc4/data/meson.build
> > index 94c0ee6e6b7b..7a8001ee4817 100644
> > --- a/src/ipa/rpi/vc4/data/meson.build
> > +++ b/src/ipa/rpi/vc4/data/meson.build
> > @@ -9,6 +9,7 @@ conf_files = files([
> >      'imx296_mono.json',
> >      'imx327.json',
> >      'imx378.json',
> > +    'imx415.json',
> >      'imx462.json',
> >      'imx477.json',
> >      'imx477_noir.json',
> > --
> > 2.43.0
> >
David Plowman Jan. 8, 2025, 9:48 a.m. UTC | #3
Hi everyone

On Wed, 8 Jan 2025 at 09:47, Naushir Patuck <naush@raspberrypi.com> wrote:
>
> Hi Kieran,
>
> Happy New Year!
>
> On Wed, 8 Jan 2025 at 09:42, Kieran Bingham
> <kieran.bingham@ideasonboard.com> wrote:
> >
> > Hi Naush,
> >
> > Quoting Naushir Patuck (2025-01-08 09:03:22)
> > > From: Dave Stevenson <dave.stevenson@raspberrypi.com>
> > >
> > > Basic tuning done by David Plowman using a Waveshare SKU 28524
> > > "IMX415-98 IR-CUT Camera" module.
> > >
> > > Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
> >
> > Can I assume that you posting this one is an implicit RB or Acked-by tag
> > for the tuning content?
> >
> >
> > Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
>
> Sorry my bad.  All the patches should also have:
>
> Reviewed-by: Naushir Patuck <naush@raspberrypi.com>

Also

Reviewed-by: David Plowman <david.plowman@raspberrypi.com>

David

>
> >
> >
> > > ---
> > >  src/ipa/rpi/vc4/data/imx415.json | 413 +++++++++++++++++++++++++++++++
> > >  src/ipa/rpi/vc4/data/meson.build |   1 +
> > >  2 files changed, 414 insertions(+)
> > >  create mode 100755 src/ipa/rpi/vc4/data/imx415.json
> > >
> > > diff --git a/src/ipa/rpi/vc4/data/imx415.json b/src/ipa/rpi/vc4/data/imx415.json
> > > new file mode 100755
> > > index 000000000000..6ed16b173074
> > > --- /dev/null
> > > +++ b/src/ipa/rpi/vc4/data/imx415.json
> > > @@ -0,0 +1,413 @@
> > > +{
> > > +    "version": 2.0,
> > > +    "target": "bcm2835",
> > > +    "algorithms": [
> > > +        {
> > > +            "rpi.black_level":
> > > +            {
> > > +                "black_level": 3840
> > > +            }
> > > +        },
> > > +        {
> > > +            "rpi.dpc": { }
> > > +        },
> > > +        {
> > > +            "rpi.lux":
> > > +            {
> > > +                "reference_shutter_speed": 19230,
> > > +                "reference_gain": 1.0,
> > > +                "reference_aperture": 1.0,
> > > +                "reference_lux": 1198,
> > > +                "reference_Y": 14876
> > > +            }
> > > +        },
> > > +        {
> > > +            "rpi.noise":
> > > +            {
> > > +                "reference_constant": 17,
> > > +                "reference_slope": 3.439
> > > +            }
> > > +        },
> > > +        {
> > > +            "rpi.geq":
> > > +            {
> > > +                "offset": 193,
> > > +                "slope": 0.00902
> > > +            }
> > > +        },
> > > +        {
> > > +            "rpi.sdn": { }
> > > +        },
> > > +        {
> > > +            "rpi.awb":
> > > +            {
> > > +                "priors": [
> > > +                    {
> > > +                        "lux": 0,
> > > +                        "prior":
> > > +                        [
> > > +                            2000, 1.0,
> > > +                            3000, 0.0,
> > > +                            13000, 0.0
> > > +                        ]
> > > +                    },
> > > +                    {
> > > +                        "lux": 800,
> > > +                        "prior":
> > > +                        [
> > > +                            2000, 0.0,
> > > +                            6000, 2.0,
> > > +                            13000, 2.0
> > > +                        ]
> > > +                    },
> > > +                    {
> > > +                        "lux": 1500,
> > > +                        "prior":
> > > +                        [
> > > +                            2000, 0.0,
> > > +                            4000, 1.0,
> > > +                            6000, 6.0,
> > > +                            6500, 7.0,
> > > +                            7000, 1.0,
> > > +                            13000, 1.0
> > > +                        ]
> > > +                    }
> > > +                ],
> > > +                "modes":
> > > +                {
> > > +                    "auto":
> > > +                    {
> > > +                        "lo": 2500,
> > > +                        "hi": 8000
> > > +                    },
> > > +                    "incandescent":
> > > +                    {
> > > +                        "lo": 2500,
> > > +                        "hi": 3000
> > > +                    },
> > > +                    "tungsten":
> > > +                    {
> > > +                        "lo": 3000,
> > > +                        "hi": 3500
> > > +                    },
> > > +                    "fluorescent":
> > > +                    {
> > > +                        "lo": 4000,
> > > +                        "hi": 4700
> > > +                    },
> > > +                    "indoor":
> > > +                    {
> > > +                        "lo": 3000,
> > > +                        "hi": 5000
> > > +                    },
> > > +                    "daylight":
> > > +                    {
> > > +                        "lo": 5500,
> > > +                        "hi": 6500
> > > +                    },
> > > +                    "cloudy":
> > > +                    {
> > > +                        "lo": 7000,
> > > +                        "hi": 8600
> > > +                    }
> > > +                },
> > > +                "bayes": 1,
> > > +                "ct_curve":
> > > +                [
> > > +                    2698.0, 0.7681, 0.2026,
> > > +                    2930.0, 0.7515, 0.2116,
> > > +                    3643.0, 0.6355, 0.2858,
> > > +                    4605.0, 0.4992, 0.4041,
> > > +                    5658.0, 0.4498, 0.4574
> > > +                ],
> > > +                "sensitivity_r": 1.0,
> > > +                "sensitivity_b": 1.0,
> > > +                "transverse_pos": 0.0112,
> > > +                "transverse_neg": 0.01424
> > > +            }
> > > +        },
> > > +        {
> > > +            "rpi.agc":
> > > +            {
> > > +                "metering_modes":
> > > +                {
> > > +                    "centre-weighted":
> > > +                    {
> > > +                        "weights":
> > > +                        [
> > > +                            3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
> > > +                        ]
> > > +                    },
> > > +                    "spot":
> > > +                    {
> > > +                        "weights":
> > > +                        [
> > > +                            2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
> > > +                        ]
> > > +                    },
> > > +                    "matrix":
> > > +                    {
> > > +                        "weights":
> > > +                        [
> > > +                            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> > > +                        ]
> > > +                    }
> > > +                },
> > > +                "exposure_modes":
> > > +                {
> > > +                    "normal":
> > > +                    {
> > > +                        "shutter": [ 100, 10000, 30000, 60000, 120000 ],
> > > +                        "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
> > > +                    },
> > > +                    "short":
> > > +                    {
> > > +                        "shutter": [ 100, 5000, 10000, 20000, 120000 ],
> > > +                        "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
> > > +                    }
> > > +                },
> > > +                "constraint_modes":
> > > +                {
> > > +                    "normal": [
> > > +                        {
> > > +                            "bound": "LOWER",
> > > +                            "q_lo": 0.98,
> > > +                            "q_hi": 1.0,
> > > +                            "y_target":
> > > +                            [
> > > +                                0, 0.5,
> > > +                                1000, 0.5
> > > +                            ]
> > > +                        }
> > > +                    ],
> > > +                    "highlight": [
> > > +                        {
> > > +                            "bound": "LOWER",
> > > +                            "q_lo": 0.98,
> > > +                            "q_hi": 1.0,
> > > +                            "y_target":
> > > +                            [
> > > +                                0, 0.5,
> > > +                                1000, 0.5
> > > +                            ]
> > > +                        },
> > > +                        {
> > > +                            "bound": "UPPER",
> > > +                            "q_lo": 0.98,
> > > +                            "q_hi": 1.0,
> > > +                            "y_target":
> > > +                            [
> > > +                                0, 0.8,
> > > +                                1000, 0.8
> > > +                            ]
> > > +                        }
> > > +                    ]
> > > +                },
> > > +                "y_target":
> > > +                [
> > > +                    0, 0.16,
> > > +                    1000, 0.165,
> > > +                    10000, 0.17
> > > +                ]
> > > +            }
> > > +        },
> > > +        {
> > > +            "rpi.alsc":
> > > +            {
> > > +                "omega": 1.3,
> > > +                "n_iter": 100,
> > > +                "luminance_strength": 0.8,
> > > +                "calibrations_Cr": [
> > > +                    {
> > > +                        "ct": 3000,
> > > +                        "table":
> > > +                        [
> > > +                            1.025, 1.016, 1.013, 1.011, 1.008, 1.005, 1.003, 1.001, 1.003, 1.005, 1.008, 1.011, 1.014, 1.019, 1.027, 1.035,
> > > +                            1.025, 1.017, 1.013, 1.011, 1.008, 1.005, 1.003, 1.003, 1.004, 1.005, 1.009, 1.012, 1.017, 1.023, 1.029, 1.035,
> > > +                            1.022, 1.017, 1.013, 1.009, 1.007, 1.005, 1.003, 1.003, 1.004, 1.006, 1.009, 1.012, 1.017, 1.023, 1.029, 1.035,
> > > +                            1.019, 1.015, 1.011, 1.007, 1.005, 1.003, 1.001, 1.001, 1.003, 1.004, 1.007, 1.009, 1.015, 1.022, 1.028, 1.035,
> > > +                            1.018, 1.014, 1.009, 1.006, 1.004, 1.002, 1.001, 1.001, 1.001, 1.003, 1.006, 1.009, 1.015, 1.021, 1.028, 1.035,
> > > +                            1.018, 1.013, 1.011, 1.006, 1.003, 1.002, 1.001, 1.001, 1.001, 1.003, 1.006, 1.009, 1.015, 1.022, 1.028, 1.036,
> > > +                            1.018, 1.014, 1.011, 1.007, 1.004, 1.002, 1.001, 1.001, 1.001, 1.004, 1.007, 1.009, 1.015, 1.023, 1.029, 1.036,
> > > +                            1.019, 1.014, 1.012, 1.008, 1.005, 1.003, 1.002, 1.001, 1.003, 1.005, 1.008, 1.012, 1.016, 1.024, 1.031, 1.037,
> > > +                            1.021, 1.016, 1.013, 1.009, 1.008, 1.005, 1.003, 1.003, 1.005, 1.008, 1.011, 1.014, 1.019, 1.026, 1.033, 1.039,
> > > +                            1.025, 1.021, 1.016, 1.013, 1.009, 1.008, 1.006, 1.006, 1.008, 1.011, 1.014, 1.019, 1.024, 1.031, 1.038, 1.046,
> > > +                            1.029, 1.025, 1.021, 1.018, 1.014, 1.013, 1.011, 1.011, 1.012, 1.015, 1.019, 1.023, 1.028, 1.035, 1.046, 1.051,
> > > +                            1.032, 1.029, 1.023, 1.021, 1.018, 1.015, 1.014, 1.014, 1.015, 1.018, 1.022, 1.027, 1.033, 1.041, 1.051, 1.054
> > > +                        ]
> > > +                    },
> > > +                    {
> > > +                        "ct": 5000,
> > > +                        "table":
> > > +                        [
> > > +                            1.025, 1.011, 1.009, 1.005, 1.004, 1.003, 1.001, 1.001, 1.002, 1.006, 1.009, 1.012, 1.016, 1.021, 1.031, 1.041,
> > > +                            1.025, 1.014, 1.009, 1.007, 1.005, 1.004, 1.003, 1.003, 1.004, 1.007, 1.009, 1.013, 1.021, 1.028, 1.037, 1.041,
> > > +                            1.023, 1.014, 1.009, 1.007, 1.005, 1.004, 1.003, 1.003, 1.005, 1.007, 1.011, 1.014, 1.021, 1.028, 1.037, 1.048,
> > > +                            1.022, 1.012, 1.007, 1.005, 1.002, 1.001, 1.001, 1.001, 1.003, 1.005, 1.009, 1.014, 1.019, 1.028, 1.039, 1.048,
> > > +                            1.022, 1.011, 1.006, 1.003, 1.001, 1.001, 1.001, 1.001, 1.002, 1.005, 1.009, 1.014, 1.021, 1.029, 1.039, 1.051,
> > > +                            1.022, 1.012, 1.007, 1.003, 1.002, 1.001, 1.001, 1.001, 1.002, 1.005, 1.009, 1.015, 1.021, 1.031, 1.041, 1.053,
> > > +                            1.023, 1.013, 1.009, 1.005, 1.003, 1.003, 1.001, 1.002, 1.004, 1.006, 1.011, 1.015, 1.022, 1.031, 1.042, 1.056,
> > > +                            1.024, 1.015, 1.012, 1.008, 1.005, 1.004, 1.004, 1.004, 1.006, 1.009, 1.013, 1.018, 1.024, 1.034, 1.045, 1.057,
> > > +                            1.027, 1.017, 1.015, 1.012, 1.009, 1.007, 1.007, 1.008, 1.009, 1.013, 1.018, 1.023, 1.029, 1.038, 1.051, 1.061,
> > > +                            1.029, 1.023, 1.017, 1.015, 1.014, 1.012, 1.011, 1.011, 1.014, 1.018, 1.024, 1.029, 1.036, 1.044, 1.056, 1.066,
> > > +                            1.034, 1.028, 1.023, 1.022, 1.019, 1.019, 1.018, 1.018, 1.021, 1.025, 1.031, 1.035, 1.042, 1.053, 1.066, 1.074,
> > > +                            1.041, 1.034, 1.027, 1.025, 1.025, 1.023, 1.023, 1.023, 1.025, 1.031, 1.035, 1.041, 1.049, 1.059, 1.074, 1.079
> > > +                        ]
> > > +                    }
> > > +                ],
> > > +                "calibrations_Cb": [
> > > +                    {
> > > +                        "ct": 3000,
> > > +                        "table":
> > > +                        [
> > > +                            1.001, 1.001, 1.007, 1.015, 1.027, 1.034, 1.038, 1.041, 1.042, 1.043, 1.043, 1.043, 1.041, 1.039, 1.049, 1.054,
> > > +                            1.011, 1.011, 1.013, 1.023, 1.032, 1.039, 1.044, 1.047, 1.052, 1.056, 1.059, 1.059, 1.055, 1.051, 1.054, 1.056,
> > > +                            1.015, 1.015, 1.019, 1.032, 1.039, 1.044, 1.047, 1.052, 1.055, 1.059, 1.061, 1.066, 1.063, 1.058, 1.061, 1.064,
> > > +                            1.016, 1.017, 1.023, 1.032, 1.041, 1.045, 1.048, 1.053, 1.056, 1.061, 1.066, 1.069, 1.067, 1.064, 1.065, 1.068,
> > > +                            1.018, 1.019, 1.025, 1.033, 1.042, 1.045, 1.049, 1.054, 1.058, 1.063, 1.071, 1.072, 1.071, 1.068, 1.069, 1.071,
> > > +                            1.023, 1.024, 1.029, 1.035, 1.043, 1.048, 1.052, 1.057, 1.061, 1.065, 1.074, 1.075, 1.075, 1.072, 1.072, 1.075,
> > > +                            1.027, 1.028, 1.031, 1.038, 1.045, 1.051, 1.054, 1.059, 1.064, 1.068, 1.075, 1.079, 1.078, 1.075, 1.076, 1.081,
> > > +                            1.029, 1.031, 1.033, 1.044, 1.048, 1.054, 1.059, 1.064, 1.067, 1.073, 1.079, 1.082, 1.082, 1.079, 1.081, 1.085,
> > > +                            1.033, 1.033, 1.035, 1.047, 1.053, 1.058, 1.064, 1.067, 1.073, 1.079, 1.084, 1.086, 1.086, 1.084, 1.089, 1.091,
> > > +                            1.037, 1.037, 1.038, 1.049, 1.057, 1.062, 1.068, 1.073, 1.079, 1.084, 1.089, 1.092, 1.092, 1.092, 1.096, 1.104,
> > > +                            1.041, 1.041, 1.043, 1.051, 1.061, 1.068, 1.073, 1.079, 1.083, 1.089, 1.092, 1.094, 1.097, 1.099, 1.105, 1.115,
> > > +                            1.048, 1.044, 1.044, 1.051, 1.063, 1.071, 1.076, 1.082, 1.088, 1.091, 1.094, 1.097, 1.099, 1.104, 1.115, 1.126
> > > +                        ]
> > > +                    },
> > > +                    {
> > > +                        "ct": 5000,
> > > +                        "table":
> > > +                        [
> > > +                            1.001, 1.001, 1.005, 1.011, 1.014, 1.018, 1.019, 1.019, 1.019, 1.021, 1.021, 1.021, 1.019, 1.017, 1.014, 1.014,
> > > +                            1.009, 1.009, 1.011, 1.014, 1.019, 1.024, 1.026, 1.029, 1.031, 1.032, 1.032, 1.031, 1.027, 1.023, 1.022, 1.022,
> > > +                            1.011, 1.012, 1.015, 1.018, 1.024, 1.026, 1.029, 1.032, 1.035, 1.036, 1.036, 1.034, 1.031, 1.027, 1.025, 1.025,
> > > +                            1.012, 1.013, 1.015, 1.019, 1.025, 1.029, 1.032, 1.035, 1.036, 1.038, 1.038, 1.036, 1.034, 1.029, 1.026, 1.026,
> > > +                            1.013, 1.014, 1.016, 1.019, 1.027, 1.031, 1.034, 1.037, 1.039, 1.039, 1.041, 1.039, 1.036, 1.031, 1.028, 1.027,
> > > +                            1.014, 1.014, 1.017, 1.021, 1.027, 1.033, 1.037, 1.039, 1.041, 1.041, 1.042, 1.042, 1.039, 1.033, 1.029, 1.028,
> > > +                            1.015, 1.015, 1.018, 1.021, 1.027, 1.033, 1.037, 1.041, 1.041, 1.042, 1.042, 1.042, 1.039, 1.034, 1.029, 1.029,
> > > +                            1.015, 1.016, 1.018, 1.022, 1.027, 1.033, 1.037, 1.041, 1.041, 1.042, 1.043, 1.043, 1.041, 1.035, 1.031, 1.031,
> > > +                            1.015, 1.016, 1.018, 1.022, 1.027, 1.032, 1.037, 1.041, 1.042, 1.042, 1.044, 1.043, 1.041, 1.036, 1.034, 1.033,
> > > +                            1.016, 1.017, 1.017, 1.022, 1.027, 1.032, 1.036, 1.039, 1.042, 1.042, 1.043, 1.043, 1.041, 1.039, 1.036, 1.034,
> > > +                            1.017, 1.017, 1.018, 1.022, 1.027, 1.031, 1.035, 1.039, 1.041, 1.042, 1.042, 1.042, 1.042, 1.039, 1.039, 1.039,
> > > +                            1.018, 1.017, 1.017, 1.021, 1.027, 1.031, 1.033, 1.038, 1.041, 1.041, 1.042, 1.042, 1.041, 1.041, 1.041, 1.041
> > > +                        ]
> > > +                    }
> > > +                ],
> > > +                "luminance_lut":
> > > +                [
> > > +                    2.102, 1.903, 1.658, 1.483, 1.358, 1.267, 1.202, 1.202, 1.202, 1.242, 1.323, 1.431, 1.585, 1.797, 2.096, 2.351,
> > > +                    1.996, 1.776, 1.549, 1.385, 1.273, 1.204, 1.138, 1.133, 1.133, 1.185, 1.252, 1.343, 1.484, 1.679, 1.954, 2.228,
> > > +                    1.923, 1.689, 1.474, 1.318, 1.204, 1.138, 1.079, 1.071, 1.071, 1.133, 1.185, 1.284, 1.415, 1.597, 1.854, 2.146,
> > > +                    1.881, 1.631, 1.423, 1.272, 1.159, 1.079, 1.051, 1.026, 1.046, 1.071, 1.144, 1.245, 1.369, 1.543, 1.801, 2.095,
> > > +                    1.867, 1.595, 1.391, 1.242, 1.131, 1.051, 1.013, 1.002, 1.013, 1.046, 1.121, 1.219, 1.343, 1.511, 1.752, 2.079,
> > > +                    1.867, 1.589, 1.385, 1.236, 1.125, 1.048, 1.001, 1.001, 1.003, 1.045, 1.118, 1.217, 1.342, 1.511, 1.746, 2.079,
> > > +                    1.867, 1.589, 1.385, 1.236, 1.125, 1.048, 1.011, 1.003, 1.011, 1.046, 1.118, 1.217, 1.343, 1.511, 1.746, 2.079,
> > > +                    1.884, 1.621, 1.411, 1.261, 1.149, 1.071, 1.048, 1.024, 1.046, 1.069, 1.141, 1.239, 1.369, 1.541, 1.781, 2.093,
> > > +                    1.913, 1.675, 1.459, 1.304, 1.191, 1.125, 1.071, 1.065, 1.069, 1.124, 1.181, 1.278, 1.413, 1.592, 1.842, 2.133,
> > > +                    1.981, 1.755, 1.529, 1.368, 1.251, 1.191, 1.125, 1.124, 1.124, 1.181, 1.242, 1.337, 1.479, 1.669, 1.935, 2.207,
> > > +                    2.078, 1.867, 1.625, 1.453, 1.344, 1.251, 1.202, 1.201, 1.201, 1.242, 1.333, 1.418, 1.571, 1.776, 2.063, 2.321,
> > > +                    2.217, 2.011, 1.747, 1.562, 1.431, 1.331, 1.278, 1.278, 1.278, 1.313, 1.407, 1.523, 1.686, 1.911, 2.226, 2.484
> > > +                ],
> > > +                "sigma": 0.00135,
> > > +                "sigma_Cb": 0.00279
> > > +            }
> > > +        },
> > > +        {
> > > +            "rpi.contrast":
> > > +            {
> > > +                "ce_enable": 1,
> > > +                "gamma_curve":
> > > +                [
> > > +                    0, 0,
> > > +                    1024, 5040,
> > > +                    2048, 9338,
> > > +                    3072, 12356,
> > > +                    4096, 15312,
> > > +                    5120, 18051,
> > > +                    6144, 20790,
> > > +                    7168, 23193,
> > > +                    8192, 25744,
> > > +                    9216, 27942,
> > > +                    10240, 30035,
> > > +                    11264, 32005,
> > > +                    12288, 33975,
> > > +                    13312, 35815,
> > > +                    14336, 37600,
> > > +                    15360, 39168,
> > > +                    16384, 40642,
> > > +                    18432, 43379,
> > > +                    20480, 45749,
> > > +                    22528, 47753,
> > > +                    24576, 49621,
> > > +                    26624, 51253,
> > > +                    28672, 52698,
> > > +                    30720, 53796,
> > > +                    32768, 54876,
> > > +                    36864, 57012,
> > > +                    40960, 58656,
> > > +                    45056, 59954,
> > > +                    49152, 61183,
> > > +                    53248, 62355,
> > > +                    57344, 63419,
> > > +                    61440, 64476,
> > > +                    65535, 65535
> > > +                ]
> > > +            }
> > > +        },
> > > +        {
> > > +            "rpi.ccm":
> > > +            {
> > > +                "ccms": [
> > > +                    {
> > > +                        "ct": 2698,
> > > +                        "ccm":
> > > +                        [
> > > +                            1.57227, -0.32596, -0.24631,
> > > +                            -0.61264, 1.70791, -0.09526,
> > > +                            -0.43254, 0.48489, 0.94765
> > > +                        ]
> > > +                    },
> > > +                    {
> > > +                        "ct": 2930,
> > > +                        "ccm":
> > > +                        [
> > > +                            1.69455, -0.52724, -0.16731,
> > > +                            -0.67131, 1.78468, -0.11338,
> > > +                            -0.41609, 0.54693, 0.86916
> > > +                        ]
> > > +                    },
> > > +                    {
> > > +                        "ct": 3643,
> > > +                        "ccm":
> > > +                        [
> > > +                            1.74041, -0.77553, 0.03512,
> > > +                            -0.44073, 1.34131, 0.09943,
> > > +                            -0.11035, -0.93919, 2.04954
> > > +                        ]
> > > +                    },
> > > +                    {
> > > +                        "ct": 4605,
> > > +                        "ccm":
> > > +                        [
> > > +                            1.49865, -0.41638, -0.08227,
> > > +                            -0.39445, 1.70114, -0.30669,
> > > +                            0.01319, -0.88009, 1.86689
> > > +                        ]
> > > +                    },
> > > +                    {
> > > +                        "ct": 5658,
> > > +                        "ccm":
> > > +                        [
> > > +                            1.38601, -0.23128, -0.15472,
> > > +                            -0.37641, 1.70444, -0.32803,
> > > +                            -0.01575, -0.71466, 1.73041
> > > +                        ]
> > > +                    }
> > > +                ]
> > > +            }
> > > +        },
> > > +        {
> > > +            "rpi.sharpen": { }
> > > +        }
> > > +    ]
> > > +}
> > > diff --git a/src/ipa/rpi/vc4/data/meson.build b/src/ipa/rpi/vc4/data/meson.build
> > > index 94c0ee6e6b7b..7a8001ee4817 100644
> > > --- a/src/ipa/rpi/vc4/data/meson.build
> > > +++ b/src/ipa/rpi/vc4/data/meson.build
> > > @@ -9,6 +9,7 @@ conf_files = files([
> > >      'imx296_mono.json',
> > >      'imx327.json',
> > >      'imx378.json',
> > > +    'imx415.json',
> > >      'imx462.json',
> > >      'imx477.json',
> > >      'imx477_noir.json',
> > > --
> > > 2.43.0
> > >
Kieran Bingham Jan. 8, 2025, 9:51 a.m. UTC | #4
Quoting David Plowman (2025-01-08 09:48:51)
> Hi everyone
> 
> On Wed, 8 Jan 2025 at 09:47, Naushir Patuck <naush@raspberrypi.com> wrote:
> >
> > Hi Kieran,
> >
> > Happy New Year!

Happy new year indeed!

> > On Wed, 8 Jan 2025 at 09:42, Kieran Bingham
> > <kieran.bingham@ideasonboard.com> wrote:
> > >
> > > Hi Naush,
> > >
> > > Quoting Naushir Patuck (2025-01-08 09:03:22)
> > > > From: Dave Stevenson <dave.stevenson@raspberrypi.com>
> > > >
> > > > Basic tuning done by David Plowman using a Waveshare SKU 28524
> > > > "IMX415-98 IR-CUT Camera" module.
> > > >
> > > > Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
> > >
> > > Can I assume that you posting this one is an implicit RB or Acked-by tag
> > > for the tuning content?
> > >
> > >
> > > Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> >
> > Sorry my bad.  All the patches should also have:
> >
> > Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
> 
> Also
> 
> Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
> 

Thanks - I'll push these through CI to merge!

--
Kieran


> David
> 
> >
> > >
> > >
> > > > ---
> > > >  src/ipa/rpi/vc4/data/imx415.json | 413 +++++++++++++++++++++++++++++++
> > > >  src/ipa/rpi/vc4/data/meson.build |   1 +
> > > >  2 files changed, 414 insertions(+)
> > > >  create mode 100755 src/ipa/rpi/vc4/data/imx415.json
> > > >
> > > > diff --git a/src/ipa/rpi/vc4/data/imx415.json b/src/ipa/rpi/vc4/data/imx415.json
> > > > new file mode 100755
> > > > index 000000000000..6ed16b173074
> > > > --- /dev/null
> > > > +++ b/src/ipa/rpi/vc4/data/imx415.json
> > > > @@ -0,0 +1,413 @@
> > > > +{
> > > > +    "version": 2.0,
> > > > +    "target": "bcm2835",
> > > > +    "algorithms": [
> > > > +        {
> > > > +            "rpi.black_level":
> > > > +            {
> > > > +                "black_level": 3840
> > > > +            }
> > > > +        },
> > > > +        {
> > > > +            "rpi.dpc": { }
> > > > +        },
> > > > +        {
> > > > +            "rpi.lux":
> > > > +            {
> > > > +                "reference_shutter_speed": 19230,
> > > > +                "reference_gain": 1.0,
> > > > +                "reference_aperture": 1.0,
> > > > +                "reference_lux": 1198,
> > > > +                "reference_Y": 14876
> > > > +            }
> > > > +        },
> > > > +        {
> > > > +            "rpi.noise":
> > > > +            {
> > > > +                "reference_constant": 17,
> > > > +                "reference_slope": 3.439
> > > > +            }
> > > > +        },
> > > > +        {
> > > > +            "rpi.geq":
> > > > +            {
> > > > +                "offset": 193,
> > > > +                "slope": 0.00902
> > > > +            }
> > > > +        },
> > > > +        {
> > > > +            "rpi.sdn": { }
> > > > +        },
> > > > +        {
> > > > +            "rpi.awb":
> > > > +            {
> > > > +                "priors": [
> > > > +                    {
> > > > +                        "lux": 0,
> > > > +                        "prior":
> > > > +                        [
> > > > +                            2000, 1.0,
> > > > +                            3000, 0.0,
> > > > +                            13000, 0.0
> > > > +                        ]
> > > > +                    },
> > > > +                    {
> > > > +                        "lux": 800,
> > > > +                        "prior":
> > > > +                        [
> > > > +                            2000, 0.0,
> > > > +                            6000, 2.0,
> > > > +                            13000, 2.0
> > > > +                        ]
> > > > +                    },
> > > > +                    {
> > > > +                        "lux": 1500,
> > > > +                        "prior":
> > > > +                        [
> > > > +                            2000, 0.0,
> > > > +                            4000, 1.0,
> > > > +                            6000, 6.0,
> > > > +                            6500, 7.0,
> > > > +                            7000, 1.0,
> > > > +                            13000, 1.0
> > > > +                        ]
> > > > +                    }
> > > > +                ],
> > > > +                "modes":
> > > > +                {
> > > > +                    "auto":
> > > > +                    {
> > > > +                        "lo": 2500,
> > > > +                        "hi": 8000
> > > > +                    },
> > > > +                    "incandescent":
> > > > +                    {
> > > > +                        "lo": 2500,
> > > > +                        "hi": 3000
> > > > +                    },
> > > > +                    "tungsten":
> > > > +                    {
> > > > +                        "lo": 3000,
> > > > +                        "hi": 3500
> > > > +                    },
> > > > +                    "fluorescent":
> > > > +                    {
> > > > +                        "lo": 4000,
> > > > +                        "hi": 4700
> > > > +                    },
> > > > +                    "indoor":
> > > > +                    {
> > > > +                        "lo": 3000,
> > > > +                        "hi": 5000
> > > > +                    },
> > > > +                    "daylight":
> > > > +                    {
> > > > +                        "lo": 5500,
> > > > +                        "hi": 6500
> > > > +                    },
> > > > +                    "cloudy":
> > > > +                    {
> > > > +                        "lo": 7000,
> > > > +                        "hi": 8600
> > > > +                    }
> > > > +                },
> > > > +                "bayes": 1,
> > > > +                "ct_curve":
> > > > +                [
> > > > +                    2698.0, 0.7681, 0.2026,
> > > > +                    2930.0, 0.7515, 0.2116,
> > > > +                    3643.0, 0.6355, 0.2858,
> > > > +                    4605.0, 0.4992, 0.4041,
> > > > +                    5658.0, 0.4498, 0.4574
> > > > +                ],
> > > > +                "sensitivity_r": 1.0,
> > > > +                "sensitivity_b": 1.0,
> > > > +                "transverse_pos": 0.0112,
> > > > +                "transverse_neg": 0.01424
> > > > +            }
> > > > +        },
> > > > +        {
> > > > +            "rpi.agc":
> > > > +            {
> > > > +                "metering_modes":
> > > > +                {
> > > > +                    "centre-weighted":
> > > > +                    {
> > > > +                        "weights":
> > > > +                        [
> > > > +                            3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
> > > > +                        ]
> > > > +                    },
> > > > +                    "spot":
> > > > +                    {
> > > > +                        "weights":
> > > > +                        [
> > > > +                            2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
> > > > +                        ]
> > > > +                    },
> > > > +                    "matrix":
> > > > +                    {
> > > > +                        "weights":
> > > > +                        [
> > > > +                            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> > > > +                        ]
> > > > +                    }
> > > > +                },
> > > > +                "exposure_modes":
> > > > +                {
> > > > +                    "normal":
> > > > +                    {
> > > > +                        "shutter": [ 100, 10000, 30000, 60000, 120000 ],
> > > > +                        "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
> > > > +                    },
> > > > +                    "short":
> > > > +                    {
> > > > +                        "shutter": [ 100, 5000, 10000, 20000, 120000 ],
> > > > +                        "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
> > > > +                    }
> > > > +                },
> > > > +                "constraint_modes":
> > > > +                {
> > > > +                    "normal": [
> > > > +                        {
> > > > +                            "bound": "LOWER",
> > > > +                            "q_lo": 0.98,
> > > > +                            "q_hi": 1.0,
> > > > +                            "y_target":
> > > > +                            [
> > > > +                                0, 0.5,
> > > > +                                1000, 0.5
> > > > +                            ]
> > > > +                        }
> > > > +                    ],
> > > > +                    "highlight": [
> > > > +                        {
> > > > +                            "bound": "LOWER",
> > > > +                            "q_lo": 0.98,
> > > > +                            "q_hi": 1.0,
> > > > +                            "y_target":
> > > > +                            [
> > > > +                                0, 0.5,
> > > > +                                1000, 0.5
> > > > +                            ]
> > > > +                        },
> > > > +                        {
> > > > +                            "bound": "UPPER",
> > > > +                            "q_lo": 0.98,
> > > > +                            "q_hi": 1.0,
> > > > +                            "y_target":
> > > > +                            [
> > > > +                                0, 0.8,
> > > > +                                1000, 0.8
> > > > +                            ]
> > > > +                        }
> > > > +                    ]
> > > > +                },
> > > > +                "y_target":
> > > > +                [
> > > > +                    0, 0.16,
> > > > +                    1000, 0.165,
> > > > +                    10000, 0.17
> > > > +                ]
> > > > +            }
> > > > +        },
> > > > +        {
> > > > +            "rpi.alsc":
> > > > +            {
> > > > +                "omega": 1.3,
> > > > +                "n_iter": 100,
> > > > +                "luminance_strength": 0.8,
> > > > +                "calibrations_Cr": [
> > > > +                    {
> > > > +                        "ct": 3000,
> > > > +                        "table":
> > > > +                        [
> > > > +                            1.025, 1.016, 1.013, 1.011, 1.008, 1.005, 1.003, 1.001, 1.003, 1.005, 1.008, 1.011, 1.014, 1.019, 1.027, 1.035,
> > > > +                            1.025, 1.017, 1.013, 1.011, 1.008, 1.005, 1.003, 1.003, 1.004, 1.005, 1.009, 1.012, 1.017, 1.023, 1.029, 1.035,
> > > > +                            1.022, 1.017, 1.013, 1.009, 1.007, 1.005, 1.003, 1.003, 1.004, 1.006, 1.009, 1.012, 1.017, 1.023, 1.029, 1.035,
> > > > +                            1.019, 1.015, 1.011, 1.007, 1.005, 1.003, 1.001, 1.001, 1.003, 1.004, 1.007, 1.009, 1.015, 1.022, 1.028, 1.035,
> > > > +                            1.018, 1.014, 1.009, 1.006, 1.004, 1.002, 1.001, 1.001, 1.001, 1.003, 1.006, 1.009, 1.015, 1.021, 1.028, 1.035,
> > > > +                            1.018, 1.013, 1.011, 1.006, 1.003, 1.002, 1.001, 1.001, 1.001, 1.003, 1.006, 1.009, 1.015, 1.022, 1.028, 1.036,
> > > > +                            1.018, 1.014, 1.011, 1.007, 1.004, 1.002, 1.001, 1.001, 1.001, 1.004, 1.007, 1.009, 1.015, 1.023, 1.029, 1.036,
> > > > +                            1.019, 1.014, 1.012, 1.008, 1.005, 1.003, 1.002, 1.001, 1.003, 1.005, 1.008, 1.012, 1.016, 1.024, 1.031, 1.037,
> > > > +                            1.021, 1.016, 1.013, 1.009, 1.008, 1.005, 1.003, 1.003, 1.005, 1.008, 1.011, 1.014, 1.019, 1.026, 1.033, 1.039,
> > > > +                            1.025, 1.021, 1.016, 1.013, 1.009, 1.008, 1.006, 1.006, 1.008, 1.011, 1.014, 1.019, 1.024, 1.031, 1.038, 1.046,
> > > > +                            1.029, 1.025, 1.021, 1.018, 1.014, 1.013, 1.011, 1.011, 1.012, 1.015, 1.019, 1.023, 1.028, 1.035, 1.046, 1.051,
> > > > +                            1.032, 1.029, 1.023, 1.021, 1.018, 1.015, 1.014, 1.014, 1.015, 1.018, 1.022, 1.027, 1.033, 1.041, 1.051, 1.054
> > > > +                        ]
> > > > +                    },
> > > > +                    {
> > > > +                        "ct": 5000,
> > > > +                        "table":
> > > > +                        [
> > > > +                            1.025, 1.011, 1.009, 1.005, 1.004, 1.003, 1.001, 1.001, 1.002, 1.006, 1.009, 1.012, 1.016, 1.021, 1.031, 1.041,
> > > > +                            1.025, 1.014, 1.009, 1.007, 1.005, 1.004, 1.003, 1.003, 1.004, 1.007, 1.009, 1.013, 1.021, 1.028, 1.037, 1.041,
> > > > +                            1.023, 1.014, 1.009, 1.007, 1.005, 1.004, 1.003, 1.003, 1.005, 1.007, 1.011, 1.014, 1.021, 1.028, 1.037, 1.048,
> > > > +                            1.022, 1.012, 1.007, 1.005, 1.002, 1.001, 1.001, 1.001, 1.003, 1.005, 1.009, 1.014, 1.019, 1.028, 1.039, 1.048,
> > > > +                            1.022, 1.011, 1.006, 1.003, 1.001, 1.001, 1.001, 1.001, 1.002, 1.005, 1.009, 1.014, 1.021, 1.029, 1.039, 1.051,
> > > > +                            1.022, 1.012, 1.007, 1.003, 1.002, 1.001, 1.001, 1.001, 1.002, 1.005, 1.009, 1.015, 1.021, 1.031, 1.041, 1.053,
> > > > +                            1.023, 1.013, 1.009, 1.005, 1.003, 1.003, 1.001, 1.002, 1.004, 1.006, 1.011, 1.015, 1.022, 1.031, 1.042, 1.056,
> > > > +                            1.024, 1.015, 1.012, 1.008, 1.005, 1.004, 1.004, 1.004, 1.006, 1.009, 1.013, 1.018, 1.024, 1.034, 1.045, 1.057,
> > > > +                            1.027, 1.017, 1.015, 1.012, 1.009, 1.007, 1.007, 1.008, 1.009, 1.013, 1.018, 1.023, 1.029, 1.038, 1.051, 1.061,
> > > > +                            1.029, 1.023, 1.017, 1.015, 1.014, 1.012, 1.011, 1.011, 1.014, 1.018, 1.024, 1.029, 1.036, 1.044, 1.056, 1.066,
> > > > +                            1.034, 1.028, 1.023, 1.022, 1.019, 1.019, 1.018, 1.018, 1.021, 1.025, 1.031, 1.035, 1.042, 1.053, 1.066, 1.074,
> > > > +                            1.041, 1.034, 1.027, 1.025, 1.025, 1.023, 1.023, 1.023, 1.025, 1.031, 1.035, 1.041, 1.049, 1.059, 1.074, 1.079
> > > > +                        ]
> > > > +                    }
> > > > +                ],
> > > > +                "calibrations_Cb": [
> > > > +                    {
> > > > +                        "ct": 3000,
> > > > +                        "table":
> > > > +                        [
> > > > +                            1.001, 1.001, 1.007, 1.015, 1.027, 1.034, 1.038, 1.041, 1.042, 1.043, 1.043, 1.043, 1.041, 1.039, 1.049, 1.054,
> > > > +                            1.011, 1.011, 1.013, 1.023, 1.032, 1.039, 1.044, 1.047, 1.052, 1.056, 1.059, 1.059, 1.055, 1.051, 1.054, 1.056,
> > > > +                            1.015, 1.015, 1.019, 1.032, 1.039, 1.044, 1.047, 1.052, 1.055, 1.059, 1.061, 1.066, 1.063, 1.058, 1.061, 1.064,
> > > > +                            1.016, 1.017, 1.023, 1.032, 1.041, 1.045, 1.048, 1.053, 1.056, 1.061, 1.066, 1.069, 1.067, 1.064, 1.065, 1.068,
> > > > +                            1.018, 1.019, 1.025, 1.033, 1.042, 1.045, 1.049, 1.054, 1.058, 1.063, 1.071, 1.072, 1.071, 1.068, 1.069, 1.071,
> > > > +                            1.023, 1.024, 1.029, 1.035, 1.043, 1.048, 1.052, 1.057, 1.061, 1.065, 1.074, 1.075, 1.075, 1.072, 1.072, 1.075,
> > > > +                            1.027, 1.028, 1.031, 1.038, 1.045, 1.051, 1.054, 1.059, 1.064, 1.068, 1.075, 1.079, 1.078, 1.075, 1.076, 1.081,
> > > > +                            1.029, 1.031, 1.033, 1.044, 1.048, 1.054, 1.059, 1.064, 1.067, 1.073, 1.079, 1.082, 1.082, 1.079, 1.081, 1.085,
> > > > +                            1.033, 1.033, 1.035, 1.047, 1.053, 1.058, 1.064, 1.067, 1.073, 1.079, 1.084, 1.086, 1.086, 1.084, 1.089, 1.091,
> > > > +                            1.037, 1.037, 1.038, 1.049, 1.057, 1.062, 1.068, 1.073, 1.079, 1.084, 1.089, 1.092, 1.092, 1.092, 1.096, 1.104,
> > > > +                            1.041, 1.041, 1.043, 1.051, 1.061, 1.068, 1.073, 1.079, 1.083, 1.089, 1.092, 1.094, 1.097, 1.099, 1.105, 1.115,
> > > > +                            1.048, 1.044, 1.044, 1.051, 1.063, 1.071, 1.076, 1.082, 1.088, 1.091, 1.094, 1.097, 1.099, 1.104, 1.115, 1.126
> > > > +                        ]
> > > > +                    },
> > > > +                    {
> > > > +                        "ct": 5000,
> > > > +                        "table":
> > > > +                        [
> > > > +                            1.001, 1.001, 1.005, 1.011, 1.014, 1.018, 1.019, 1.019, 1.019, 1.021, 1.021, 1.021, 1.019, 1.017, 1.014, 1.014,
> > > > +                            1.009, 1.009, 1.011, 1.014, 1.019, 1.024, 1.026, 1.029, 1.031, 1.032, 1.032, 1.031, 1.027, 1.023, 1.022, 1.022,
> > > > +                            1.011, 1.012, 1.015, 1.018, 1.024, 1.026, 1.029, 1.032, 1.035, 1.036, 1.036, 1.034, 1.031, 1.027, 1.025, 1.025,
> > > > +                            1.012, 1.013, 1.015, 1.019, 1.025, 1.029, 1.032, 1.035, 1.036, 1.038, 1.038, 1.036, 1.034, 1.029, 1.026, 1.026,
> > > > +                            1.013, 1.014, 1.016, 1.019, 1.027, 1.031, 1.034, 1.037, 1.039, 1.039, 1.041, 1.039, 1.036, 1.031, 1.028, 1.027,
> > > > +                            1.014, 1.014, 1.017, 1.021, 1.027, 1.033, 1.037, 1.039, 1.041, 1.041, 1.042, 1.042, 1.039, 1.033, 1.029, 1.028,
> > > > +                            1.015, 1.015, 1.018, 1.021, 1.027, 1.033, 1.037, 1.041, 1.041, 1.042, 1.042, 1.042, 1.039, 1.034, 1.029, 1.029,
> > > > +                            1.015, 1.016, 1.018, 1.022, 1.027, 1.033, 1.037, 1.041, 1.041, 1.042, 1.043, 1.043, 1.041, 1.035, 1.031, 1.031,
> > > > +                            1.015, 1.016, 1.018, 1.022, 1.027, 1.032, 1.037, 1.041, 1.042, 1.042, 1.044, 1.043, 1.041, 1.036, 1.034, 1.033,
> > > > +                            1.016, 1.017, 1.017, 1.022, 1.027, 1.032, 1.036, 1.039, 1.042, 1.042, 1.043, 1.043, 1.041, 1.039, 1.036, 1.034,
> > > > +                            1.017, 1.017, 1.018, 1.022, 1.027, 1.031, 1.035, 1.039, 1.041, 1.042, 1.042, 1.042, 1.042, 1.039, 1.039, 1.039,
> > > > +                            1.018, 1.017, 1.017, 1.021, 1.027, 1.031, 1.033, 1.038, 1.041, 1.041, 1.042, 1.042, 1.041, 1.041, 1.041, 1.041
> > > > +                        ]
> > > > +                    }
> > > > +                ],
> > > > +                "luminance_lut":
> > > > +                [
> > > > +                    2.102, 1.903, 1.658, 1.483, 1.358, 1.267, 1.202, 1.202, 1.202, 1.242, 1.323, 1.431, 1.585, 1.797, 2.096, 2.351,
> > > > +                    1.996, 1.776, 1.549, 1.385, 1.273, 1.204, 1.138, 1.133, 1.133, 1.185, 1.252, 1.343, 1.484, 1.679, 1.954, 2.228,
> > > > +                    1.923, 1.689, 1.474, 1.318, 1.204, 1.138, 1.079, 1.071, 1.071, 1.133, 1.185, 1.284, 1.415, 1.597, 1.854, 2.146,
> > > > +                    1.881, 1.631, 1.423, 1.272, 1.159, 1.079, 1.051, 1.026, 1.046, 1.071, 1.144, 1.245, 1.369, 1.543, 1.801, 2.095,
> > > > +                    1.867, 1.595, 1.391, 1.242, 1.131, 1.051, 1.013, 1.002, 1.013, 1.046, 1.121, 1.219, 1.343, 1.511, 1.752, 2.079,
> > > > +                    1.867, 1.589, 1.385, 1.236, 1.125, 1.048, 1.001, 1.001, 1.003, 1.045, 1.118, 1.217, 1.342, 1.511, 1.746, 2.079,
> > > > +                    1.867, 1.589, 1.385, 1.236, 1.125, 1.048, 1.011, 1.003, 1.011, 1.046, 1.118, 1.217, 1.343, 1.511, 1.746, 2.079,
> > > > +                    1.884, 1.621, 1.411, 1.261, 1.149, 1.071, 1.048, 1.024, 1.046, 1.069, 1.141, 1.239, 1.369, 1.541, 1.781, 2.093,
> > > > +                    1.913, 1.675, 1.459, 1.304, 1.191, 1.125, 1.071, 1.065, 1.069, 1.124, 1.181, 1.278, 1.413, 1.592, 1.842, 2.133,
> > > > +                    1.981, 1.755, 1.529, 1.368, 1.251, 1.191, 1.125, 1.124, 1.124, 1.181, 1.242, 1.337, 1.479, 1.669, 1.935, 2.207,
> > > > +                    2.078, 1.867, 1.625, 1.453, 1.344, 1.251, 1.202, 1.201, 1.201, 1.242, 1.333, 1.418, 1.571, 1.776, 2.063, 2.321,
> > > > +                    2.217, 2.011, 1.747, 1.562, 1.431, 1.331, 1.278, 1.278, 1.278, 1.313, 1.407, 1.523, 1.686, 1.911, 2.226, 2.484
> > > > +                ],
> > > > +                "sigma": 0.00135,
> > > > +                "sigma_Cb": 0.00279
> > > > +            }
> > > > +        },
> > > > +        {
> > > > +            "rpi.contrast":
> > > > +            {
> > > > +                "ce_enable": 1,
> > > > +                "gamma_curve":
> > > > +                [
> > > > +                    0, 0,
> > > > +                    1024, 5040,
> > > > +                    2048, 9338,
> > > > +                    3072, 12356,
> > > > +                    4096, 15312,
> > > > +                    5120, 18051,
> > > > +                    6144, 20790,
> > > > +                    7168, 23193,
> > > > +                    8192, 25744,
> > > > +                    9216, 27942,
> > > > +                    10240, 30035,
> > > > +                    11264, 32005,
> > > > +                    12288, 33975,
> > > > +                    13312, 35815,
> > > > +                    14336, 37600,
> > > > +                    15360, 39168,
> > > > +                    16384, 40642,
> > > > +                    18432, 43379,
> > > > +                    20480, 45749,
> > > > +                    22528, 47753,
> > > > +                    24576, 49621,
> > > > +                    26624, 51253,
> > > > +                    28672, 52698,
> > > > +                    30720, 53796,
> > > > +                    32768, 54876,
> > > > +                    36864, 57012,
> > > > +                    40960, 58656,
> > > > +                    45056, 59954,
> > > > +                    49152, 61183,
> > > > +                    53248, 62355,
> > > > +                    57344, 63419,
> > > > +                    61440, 64476,
> > > > +                    65535, 65535
> > > > +                ]
> > > > +            }
> > > > +        },
> > > > +        {
> > > > +            "rpi.ccm":
> > > > +            {
> > > > +                "ccms": [
> > > > +                    {
> > > > +                        "ct": 2698,
> > > > +                        "ccm":
> > > > +                        [
> > > > +                            1.57227, -0.32596, -0.24631,
> > > > +                            -0.61264, 1.70791, -0.09526,
> > > > +                            -0.43254, 0.48489, 0.94765
> > > > +                        ]
> > > > +                    },
> > > > +                    {
> > > > +                        "ct": 2930,
> > > > +                        "ccm":
> > > > +                        [
> > > > +                            1.69455, -0.52724, -0.16731,
> > > > +                            -0.67131, 1.78468, -0.11338,
> > > > +                            -0.41609, 0.54693, 0.86916
> > > > +                        ]
> > > > +                    },
> > > > +                    {
> > > > +                        "ct": 3643,
> > > > +                        "ccm":
> > > > +                        [
> > > > +                            1.74041, -0.77553, 0.03512,
> > > > +                            -0.44073, 1.34131, 0.09943,
> > > > +                            -0.11035, -0.93919, 2.04954
> > > > +                        ]
> > > > +                    },
> > > > +                    {
> > > > +                        "ct": 4605,
> > > > +                        "ccm":
> > > > +                        [
> > > > +                            1.49865, -0.41638, -0.08227,
> > > > +                            -0.39445, 1.70114, -0.30669,
> > > > +                            0.01319, -0.88009, 1.86689
> > > > +                        ]
> > > > +                    },
> > > > +                    {
> > > > +                        "ct": 5658,
> > > > +                        "ccm":
> > > > +                        [
> > > > +                            1.38601, -0.23128, -0.15472,
> > > > +                            -0.37641, 1.70444, -0.32803,
> > > > +                            -0.01575, -0.71466, 1.73041
> > > > +                        ]
> > > > +                    }
> > > > +                ]
> > > > +            }
> > > > +        },
> > > > +        {
> > > > +            "rpi.sharpen": { }
> > > > +        }
> > > > +    ]
> > > > +}
> > > > diff --git a/src/ipa/rpi/vc4/data/meson.build b/src/ipa/rpi/vc4/data/meson.build
> > > > index 94c0ee6e6b7b..7a8001ee4817 100644
> > > > --- a/src/ipa/rpi/vc4/data/meson.build
> > > > +++ b/src/ipa/rpi/vc4/data/meson.build
> > > > @@ -9,6 +9,7 @@ conf_files = files([
> > > >      'imx296_mono.json',
> > > >      'imx327.json',
> > > >      'imx378.json',
> > > > +    'imx415.json',
> > > >      'imx462.json',
> > > >      'imx477.json',
> > > >      'imx477_noir.json',
> > > > --
> > > > 2.43.0
> > > >

Patch
diff mbox series

diff --git a/src/ipa/rpi/vc4/data/imx415.json b/src/ipa/rpi/vc4/data/imx415.json
new file mode 100755
index 000000000000..6ed16b173074
--- /dev/null
+++ b/src/ipa/rpi/vc4/data/imx415.json
@@ -0,0 +1,413 @@ 
+{
+    "version": 2.0,
+    "target": "bcm2835",
+    "algorithms": [
+        {
+            "rpi.black_level":
+            {
+                "black_level": 3840
+            }
+        },
+        {
+            "rpi.dpc": { }
+        },
+        {
+            "rpi.lux":
+            {
+                "reference_shutter_speed": 19230,
+                "reference_gain": 1.0,
+                "reference_aperture": 1.0,
+                "reference_lux": 1198,
+                "reference_Y": 14876
+            }
+        },
+        {
+            "rpi.noise":
+            {
+                "reference_constant": 17,
+                "reference_slope": 3.439
+            }
+        },
+        {
+            "rpi.geq":
+            {
+                "offset": 193,
+                "slope": 0.00902
+            }
+        },
+        {
+            "rpi.sdn": { }
+        },
+        {
+            "rpi.awb":
+            {
+                "priors": [
+                    {
+                        "lux": 0,
+                        "prior":
+                        [
+                            2000, 1.0,
+                            3000, 0.0,
+                            13000, 0.0
+                        ]
+                    },
+                    {
+                        "lux": 800,
+                        "prior":
+                        [
+                            2000, 0.0,
+                            6000, 2.0,
+                            13000, 2.0
+                        ]
+                    },
+                    {
+                        "lux": 1500,
+                        "prior":
+                        [
+                            2000, 0.0,
+                            4000, 1.0,
+                            6000, 6.0,
+                            6500, 7.0,
+                            7000, 1.0,
+                            13000, 1.0
+                        ]
+                    }
+                ],
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 8000
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8600
+                    }
+                },
+                "bayes": 1,
+                "ct_curve":
+                [
+                    2698.0, 0.7681, 0.2026,
+                    2930.0, 0.7515, 0.2116,
+                    3643.0, 0.6355, 0.2858,
+                    4605.0, 0.4992, 0.4041,
+                    5658.0, 0.4498, 0.4574
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.0112,
+                "transverse_neg": 0.01424
+            }
+        },
+        {
+            "rpi.agc":
+            {
+                "metering_modes":
+                {
+                    "centre-weighted":
+                    {
+                        "weights":
+                        [
+                            3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
+                        ]
+                    },
+                    "spot":
+                    {
+                        "weights":
+                        [
+                            2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+                        ]
+                    },
+                    "matrix":
+                    {
+                        "weights":
+                        [
+                            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+                        ]
+                    }
+                },
+                "exposure_modes":
+                {
+                    "normal":
+                    {
+                        "shutter": [ 100, 10000, 30000, 60000, 120000 ],
+                        "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
+                    },
+                    "short":
+                    {
+                        "shutter": [ 100, 5000, 10000, 20000, 120000 ],
+                        "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
+                    }
+                },
+                "constraint_modes":
+                {
+                    "normal": [
+                        {
+                            "bound": "LOWER",
+                            "q_lo": 0.98,
+                            "q_hi": 1.0,
+                            "y_target":
+                            [
+                                0, 0.5,
+                                1000, 0.5
+                            ]
+                        }
+                    ],
+                    "highlight": [
+                        {
+                            "bound": "LOWER",
+                            "q_lo": 0.98,
+                            "q_hi": 1.0,
+                            "y_target":
+                            [
+                                0, 0.5,
+                                1000, 0.5
+                            ]
+                        },
+                        {
+                            "bound": "UPPER",
+                            "q_lo": 0.98,
+                            "q_hi": 1.0,
+                            "y_target":
+                            [
+                                0, 0.8,
+                                1000, 0.8
+                            ]
+                        }
+                    ]
+                },
+                "y_target":
+                [
+                    0, 0.16,
+                    1000, 0.165,
+                    10000, 0.17
+                ]
+            }
+        },
+        {
+            "rpi.alsc":
+            {
+                "omega": 1.3,
+                "n_iter": 100,
+                "luminance_strength": 0.8,
+                "calibrations_Cr": [
+                    {
+                        "ct": 3000,
+                        "table":
+                        [
+                            1.025, 1.016, 1.013, 1.011, 1.008, 1.005, 1.003, 1.001, 1.003, 1.005, 1.008, 1.011, 1.014, 1.019, 1.027, 1.035,
+                            1.025, 1.017, 1.013, 1.011, 1.008, 1.005, 1.003, 1.003, 1.004, 1.005, 1.009, 1.012, 1.017, 1.023, 1.029, 1.035,
+                            1.022, 1.017, 1.013, 1.009, 1.007, 1.005, 1.003, 1.003, 1.004, 1.006, 1.009, 1.012, 1.017, 1.023, 1.029, 1.035,
+                            1.019, 1.015, 1.011, 1.007, 1.005, 1.003, 1.001, 1.001, 1.003, 1.004, 1.007, 1.009, 1.015, 1.022, 1.028, 1.035,
+                            1.018, 1.014, 1.009, 1.006, 1.004, 1.002, 1.001, 1.001, 1.001, 1.003, 1.006, 1.009, 1.015, 1.021, 1.028, 1.035,
+                            1.018, 1.013, 1.011, 1.006, 1.003, 1.002, 1.001, 1.001, 1.001, 1.003, 1.006, 1.009, 1.015, 1.022, 1.028, 1.036,
+                            1.018, 1.014, 1.011, 1.007, 1.004, 1.002, 1.001, 1.001, 1.001, 1.004, 1.007, 1.009, 1.015, 1.023, 1.029, 1.036,
+                            1.019, 1.014, 1.012, 1.008, 1.005, 1.003, 1.002, 1.001, 1.003, 1.005, 1.008, 1.012, 1.016, 1.024, 1.031, 1.037,
+                            1.021, 1.016, 1.013, 1.009, 1.008, 1.005, 1.003, 1.003, 1.005, 1.008, 1.011, 1.014, 1.019, 1.026, 1.033, 1.039,
+                            1.025, 1.021, 1.016, 1.013, 1.009, 1.008, 1.006, 1.006, 1.008, 1.011, 1.014, 1.019, 1.024, 1.031, 1.038, 1.046,
+                            1.029, 1.025, 1.021, 1.018, 1.014, 1.013, 1.011, 1.011, 1.012, 1.015, 1.019, 1.023, 1.028, 1.035, 1.046, 1.051,
+                            1.032, 1.029, 1.023, 1.021, 1.018, 1.015, 1.014, 1.014, 1.015, 1.018, 1.022, 1.027, 1.033, 1.041, 1.051, 1.054
+                        ]
+                    },
+                    {
+                        "ct": 5000,
+                        "table":
+                        [
+                            1.025, 1.011, 1.009, 1.005, 1.004, 1.003, 1.001, 1.001, 1.002, 1.006, 1.009, 1.012, 1.016, 1.021, 1.031, 1.041,
+                            1.025, 1.014, 1.009, 1.007, 1.005, 1.004, 1.003, 1.003, 1.004, 1.007, 1.009, 1.013, 1.021, 1.028, 1.037, 1.041,
+                            1.023, 1.014, 1.009, 1.007, 1.005, 1.004, 1.003, 1.003, 1.005, 1.007, 1.011, 1.014, 1.021, 1.028, 1.037, 1.048,
+                            1.022, 1.012, 1.007, 1.005, 1.002, 1.001, 1.001, 1.001, 1.003, 1.005, 1.009, 1.014, 1.019, 1.028, 1.039, 1.048,
+                            1.022, 1.011, 1.006, 1.003, 1.001, 1.001, 1.001, 1.001, 1.002, 1.005, 1.009, 1.014, 1.021, 1.029, 1.039, 1.051,
+                            1.022, 1.012, 1.007, 1.003, 1.002, 1.001, 1.001, 1.001, 1.002, 1.005, 1.009, 1.015, 1.021, 1.031, 1.041, 1.053,
+                            1.023, 1.013, 1.009, 1.005, 1.003, 1.003, 1.001, 1.002, 1.004, 1.006, 1.011, 1.015, 1.022, 1.031, 1.042, 1.056,
+                            1.024, 1.015, 1.012, 1.008, 1.005, 1.004, 1.004, 1.004, 1.006, 1.009, 1.013, 1.018, 1.024, 1.034, 1.045, 1.057,
+                            1.027, 1.017, 1.015, 1.012, 1.009, 1.007, 1.007, 1.008, 1.009, 1.013, 1.018, 1.023, 1.029, 1.038, 1.051, 1.061,
+                            1.029, 1.023, 1.017, 1.015, 1.014, 1.012, 1.011, 1.011, 1.014, 1.018, 1.024, 1.029, 1.036, 1.044, 1.056, 1.066,
+                            1.034, 1.028, 1.023, 1.022, 1.019, 1.019, 1.018, 1.018, 1.021, 1.025, 1.031, 1.035, 1.042, 1.053, 1.066, 1.074,
+                            1.041, 1.034, 1.027, 1.025, 1.025, 1.023, 1.023, 1.023, 1.025, 1.031, 1.035, 1.041, 1.049, 1.059, 1.074, 1.079
+                        ]
+                    }
+                ],
+                "calibrations_Cb": [
+                    {
+                        "ct": 3000,
+                        "table":
+                        [
+                            1.001, 1.001, 1.007, 1.015, 1.027, 1.034, 1.038, 1.041, 1.042, 1.043, 1.043, 1.043, 1.041, 1.039, 1.049, 1.054,
+                            1.011, 1.011, 1.013, 1.023, 1.032, 1.039, 1.044, 1.047, 1.052, 1.056, 1.059, 1.059, 1.055, 1.051, 1.054, 1.056,
+                            1.015, 1.015, 1.019, 1.032, 1.039, 1.044, 1.047, 1.052, 1.055, 1.059, 1.061, 1.066, 1.063, 1.058, 1.061, 1.064,
+                            1.016, 1.017, 1.023, 1.032, 1.041, 1.045, 1.048, 1.053, 1.056, 1.061, 1.066, 1.069, 1.067, 1.064, 1.065, 1.068,
+                            1.018, 1.019, 1.025, 1.033, 1.042, 1.045, 1.049, 1.054, 1.058, 1.063, 1.071, 1.072, 1.071, 1.068, 1.069, 1.071,
+                            1.023, 1.024, 1.029, 1.035, 1.043, 1.048, 1.052, 1.057, 1.061, 1.065, 1.074, 1.075, 1.075, 1.072, 1.072, 1.075,
+                            1.027, 1.028, 1.031, 1.038, 1.045, 1.051, 1.054, 1.059, 1.064, 1.068, 1.075, 1.079, 1.078, 1.075, 1.076, 1.081,
+                            1.029, 1.031, 1.033, 1.044, 1.048, 1.054, 1.059, 1.064, 1.067, 1.073, 1.079, 1.082, 1.082, 1.079, 1.081, 1.085,
+                            1.033, 1.033, 1.035, 1.047, 1.053, 1.058, 1.064, 1.067, 1.073, 1.079, 1.084, 1.086, 1.086, 1.084, 1.089, 1.091,
+                            1.037, 1.037, 1.038, 1.049, 1.057, 1.062, 1.068, 1.073, 1.079, 1.084, 1.089, 1.092, 1.092, 1.092, 1.096, 1.104,
+                            1.041, 1.041, 1.043, 1.051, 1.061, 1.068, 1.073, 1.079, 1.083, 1.089, 1.092, 1.094, 1.097, 1.099, 1.105, 1.115,
+                            1.048, 1.044, 1.044, 1.051, 1.063, 1.071, 1.076, 1.082, 1.088, 1.091, 1.094, 1.097, 1.099, 1.104, 1.115, 1.126
+                        ]
+                    },
+                    {
+                        "ct": 5000,
+                        "table":
+                        [
+                            1.001, 1.001, 1.005, 1.011, 1.014, 1.018, 1.019, 1.019, 1.019, 1.021, 1.021, 1.021, 1.019, 1.017, 1.014, 1.014,
+                            1.009, 1.009, 1.011, 1.014, 1.019, 1.024, 1.026, 1.029, 1.031, 1.032, 1.032, 1.031, 1.027, 1.023, 1.022, 1.022,
+                            1.011, 1.012, 1.015, 1.018, 1.024, 1.026, 1.029, 1.032, 1.035, 1.036, 1.036, 1.034, 1.031, 1.027, 1.025, 1.025,
+                            1.012, 1.013, 1.015, 1.019, 1.025, 1.029, 1.032, 1.035, 1.036, 1.038, 1.038, 1.036, 1.034, 1.029, 1.026, 1.026,
+                            1.013, 1.014, 1.016, 1.019, 1.027, 1.031, 1.034, 1.037, 1.039, 1.039, 1.041, 1.039, 1.036, 1.031, 1.028, 1.027,
+                            1.014, 1.014, 1.017, 1.021, 1.027, 1.033, 1.037, 1.039, 1.041, 1.041, 1.042, 1.042, 1.039, 1.033, 1.029, 1.028,
+                            1.015, 1.015, 1.018, 1.021, 1.027, 1.033, 1.037, 1.041, 1.041, 1.042, 1.042, 1.042, 1.039, 1.034, 1.029, 1.029,
+                            1.015, 1.016, 1.018, 1.022, 1.027, 1.033, 1.037, 1.041, 1.041, 1.042, 1.043, 1.043, 1.041, 1.035, 1.031, 1.031,
+                            1.015, 1.016, 1.018, 1.022, 1.027, 1.032, 1.037, 1.041, 1.042, 1.042, 1.044, 1.043, 1.041, 1.036, 1.034, 1.033,
+                            1.016, 1.017, 1.017, 1.022, 1.027, 1.032, 1.036, 1.039, 1.042, 1.042, 1.043, 1.043, 1.041, 1.039, 1.036, 1.034,
+                            1.017, 1.017, 1.018, 1.022, 1.027, 1.031, 1.035, 1.039, 1.041, 1.042, 1.042, 1.042, 1.042, 1.039, 1.039, 1.039,
+                            1.018, 1.017, 1.017, 1.021, 1.027, 1.031, 1.033, 1.038, 1.041, 1.041, 1.042, 1.042, 1.041, 1.041, 1.041, 1.041
+                        ]
+                    }
+                ],
+                "luminance_lut":
+                [
+                    2.102, 1.903, 1.658, 1.483, 1.358, 1.267, 1.202, 1.202, 1.202, 1.242, 1.323, 1.431, 1.585, 1.797, 2.096, 2.351,
+                    1.996, 1.776, 1.549, 1.385, 1.273, 1.204, 1.138, 1.133, 1.133, 1.185, 1.252, 1.343, 1.484, 1.679, 1.954, 2.228,
+                    1.923, 1.689, 1.474, 1.318, 1.204, 1.138, 1.079, 1.071, 1.071, 1.133, 1.185, 1.284, 1.415, 1.597, 1.854, 2.146,
+                    1.881, 1.631, 1.423, 1.272, 1.159, 1.079, 1.051, 1.026, 1.046, 1.071, 1.144, 1.245, 1.369, 1.543, 1.801, 2.095,
+                    1.867, 1.595, 1.391, 1.242, 1.131, 1.051, 1.013, 1.002, 1.013, 1.046, 1.121, 1.219, 1.343, 1.511, 1.752, 2.079,
+                    1.867, 1.589, 1.385, 1.236, 1.125, 1.048, 1.001, 1.001, 1.003, 1.045, 1.118, 1.217, 1.342, 1.511, 1.746, 2.079,
+                    1.867, 1.589, 1.385, 1.236, 1.125, 1.048, 1.011, 1.003, 1.011, 1.046, 1.118, 1.217, 1.343, 1.511, 1.746, 2.079,
+                    1.884, 1.621, 1.411, 1.261, 1.149, 1.071, 1.048, 1.024, 1.046, 1.069, 1.141, 1.239, 1.369, 1.541, 1.781, 2.093,
+                    1.913, 1.675, 1.459, 1.304, 1.191, 1.125, 1.071, 1.065, 1.069, 1.124, 1.181, 1.278, 1.413, 1.592, 1.842, 2.133,
+                    1.981, 1.755, 1.529, 1.368, 1.251, 1.191, 1.125, 1.124, 1.124, 1.181, 1.242, 1.337, 1.479, 1.669, 1.935, 2.207,
+                    2.078, 1.867, 1.625, 1.453, 1.344, 1.251, 1.202, 1.201, 1.201, 1.242, 1.333, 1.418, 1.571, 1.776, 2.063, 2.321,
+                    2.217, 2.011, 1.747, 1.562, 1.431, 1.331, 1.278, 1.278, 1.278, 1.313, 1.407, 1.523, 1.686, 1.911, 2.226, 2.484
+                ],
+                "sigma": 0.00135,
+                "sigma_Cb": 0.00279
+            }
+        },
+        {
+            "rpi.contrast":
+            {
+                "ce_enable": 1,
+                "gamma_curve":
+                [
+                    0, 0,
+                    1024, 5040,
+                    2048, 9338,
+                    3072, 12356,
+                    4096, 15312,
+                    5120, 18051,
+                    6144, 20790,
+                    7168, 23193,
+                    8192, 25744,
+                    9216, 27942,
+                    10240, 30035,
+                    11264, 32005,
+                    12288, 33975,
+                    13312, 35815,
+                    14336, 37600,
+                    15360, 39168,
+                    16384, 40642,
+                    18432, 43379,
+                    20480, 45749,
+                    22528, 47753,
+                    24576, 49621,
+                    26624, 51253,
+                    28672, 52698,
+                    30720, 53796,
+                    32768, 54876,
+                    36864, 57012,
+                    40960, 58656,
+                    45056, 59954,
+                    49152, 61183,
+                    53248, 62355,
+                    57344, 63419,
+                    61440, 64476,
+                    65535, 65535
+                ]
+            }
+        },
+        {
+            "rpi.ccm":
+            {
+                "ccms": [
+                    {
+                        "ct": 2698,
+                        "ccm":
+                        [
+                            1.57227, -0.32596, -0.24631,
+                            -0.61264, 1.70791, -0.09526,
+                            -0.43254, 0.48489, 0.94765
+                        ]
+                    },
+                    {
+                        "ct": 2930,
+                        "ccm":
+                        [
+                            1.69455, -0.52724, -0.16731,
+                            -0.67131, 1.78468, -0.11338,
+                            -0.41609, 0.54693, 0.86916
+                        ]
+                    },
+                    {
+                        "ct": 3643,
+                        "ccm":
+                        [
+                            1.74041, -0.77553, 0.03512,
+                            -0.44073, 1.34131, 0.09943,
+                            -0.11035, -0.93919, 2.04954
+                        ]
+                    },
+                    {
+                        "ct": 4605,
+                        "ccm":
+                        [
+                            1.49865, -0.41638, -0.08227,
+                            -0.39445, 1.70114, -0.30669,
+                            0.01319, -0.88009, 1.86689
+                        ]
+                    },
+                    {
+                        "ct": 5658,
+                        "ccm":
+                        [
+                            1.38601, -0.23128, -0.15472,
+                            -0.37641, 1.70444, -0.32803,
+                            -0.01575, -0.71466, 1.73041
+                        ]
+                    }
+                ]
+            }
+        },
+        {
+            "rpi.sharpen": { }
+        }
+    ]
+}
diff --git a/src/ipa/rpi/vc4/data/meson.build b/src/ipa/rpi/vc4/data/meson.build
index 94c0ee6e6b7b..7a8001ee4817 100644
--- a/src/ipa/rpi/vc4/data/meson.build
+++ b/src/ipa/rpi/vc4/data/meson.build
@@ -9,6 +9,7 @@  conf_files = files([
     'imx296_mono.json',
     'imx327.json',
     'imx378.json',
+    'imx415.json',
     'imx462.json',
     'imx477.json',
     'imx477_noir.json',