Message ID | 20230731134833.79687-3-david.plowman@raspberrypi.com |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
Hi David, Thank you for your patch. On Mon, 31 Jul 2023 at 14:48, David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org> wrote: > > All the Raspberry Pi official camera tuning files are updated for > HDR. As stated previously, there is no mechanism in the hardware for > combining images so all this does is enable multi-channel AGC to > produce short and long exposure frames. It will be up to the > application to deal with them. > > The changes are identical in every tuning file. > > 1. The existing AGC tuning is duplicated twice so that we have 3 AGC > channels. > > 2. The first is left alone (the default AGC channel), the second is > tweaked to under-expose significantly (ev -3) and the final one is > tweaked to over-exposure slightly (ev +0.5) > > 3. Control parameters are provided to the "rpi.hdr" algorithm to > associate these AGC channels correctly with the HDR modes. > > Signed-off-by: David Plowman <david.plowman@raspberrypi.com> > --- > src/ipa/rpi/vc4/data/imx219.json | 388 +++++++++++++++----- > src/ipa/rpi/vc4/data/imx219_noir.json | 388 +++++++++++++++----- > src/ipa/rpi/vc4/data/imx477.json | 386 +++++++++++++++----- > src/ipa/rpi/vc4/data/imx477_noir.json | 388 +++++++++++++++----- > src/ipa/rpi/vc4/data/imx708.json | 350 +++++++++++++----- > src/ipa/rpi/vc4/data/imx708_noir.json | 350 +++++++++++++----- > src/ipa/rpi/vc4/data/imx708_wide.json | 350 +++++++++++++----- > src/ipa/rpi/vc4/data/imx708_wide_noir.json | 350 +++++++++++++----- > src/ipa/rpi/vc4/data/ov5647.json | 392 ++++++++++++++++----- > 9 files changed, 2563 insertions(+), 779 deletions(-) > > diff --git a/src/ipa/rpi/vc4/data/imx219.json b/src/ipa/rpi/vc4/data/imx219.json > index efe7210a..a4e457c0 100644 > --- a/src/ipa/rpi/vc4/data/imx219.json > +++ b/src/ipa/rpi/vc4/data/imx219.json > @@ -131,95 +131,282 @@ > { > "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, 66666 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > - }, > - "short": > - { > - "shutter": [ 100, 5000, 10000, 20000, 33333 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > - }, > - "long": > - { > - "shutter": [ 100, 10000, 30000, 60000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > - ] > - } > - ], > - "shadows": [ > - { > - "bound": "LOWER", > - "q_lo": 0.0, > - "q_hi": 0.5, > - "y_target": > - [ > - 0, 0.17, > - 1000, 0.17 > - ] > - } > - ] > - }, > - "y_target": > - [ > - 0, 0.16, > - 1000, 0.165, > - 10000, 0.17 > - ] > - } > + "channels": > + [ > + { > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ] > + }, > + { > + "base_ev": 0.125, > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ] > + }, > + { > + "base_ev": 1.5, > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ] > + } > + ] > + } > }, > { > "rpi.alsc": > @@ -481,6 +668,25 @@ > }, > { > "rpi.sharpen": { } > - } > + }, > + { > + "rpi.hdr": > + { > + "Off": > + { > + "cadence": [ 0 ] > + }, Perhaps "Off" could be implicit in the config read code? Or could it be possible we use "Cadence" != [ 0 ] in the "Off" case for reasons? > + "MultiExposure": > + { > + "cadence": [ 1, 2 ], > + "channel_map": { "short": 1, "long": 2 } > + }, > + "SingleExposure": > + { > + "cadence": [ 1 ], > + "channel_map": { "short": 1 } > + } > + } > + } > ] > -} > \ No newline at end of file > +} > diff --git a/src/ipa/rpi/vc4/data/imx219_noir.json b/src/ipa/rpi/vc4/data/imx219_noir.json > index cfedb943..cba1905c 100644 > --- a/src/ipa/rpi/vc4/data/imx219_noir.json > +++ b/src/ipa/rpi/vc4/data/imx219_noir.json > @@ -47,95 +47,282 @@ > { > "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, 66666 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > - }, > - "short": > - { > - "shutter": [ 100, 5000, 10000, 20000, 33333 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > - }, > - "long": > - { > - "shutter": [ 100, 10000, 30000, 60000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > - ] > - } > - ], > - "shadows": [ > - { > - "bound": "LOWER", > - "q_lo": 0.0, > - "q_hi": 0.5, > - "y_target": > - [ > - 0, 0.17, > - 1000, 0.17 > - ] > - } > - ] > - }, > - "y_target": > - [ > - 0, 0.16, > - 1000, 0.165, > - 10000, 0.17 > - ] > - } > + "channels": > + [ > + { > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ] > + }, > + { > + "base_ev": 0.125, > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ] > + }, > + { > + "base_ev": 1.5, > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ] > + } > + ] > + } > }, > { > "rpi.alsc": > @@ -397,6 +584,25 @@ > }, > { > "rpi.sharpen": { } > - } > + }, > + { > + "rpi.hdr": > + { > + "Off": > + { > + "cadence": [ 0 ] > + }, > + "MultiExposure": > + { > + "cadence": [ 1, 2 ], > + "channel_map": { "short": 1, "long": 2 } > + }, > + "SingleExposure": > + { > + "cadence": [ 1 ], > + "channel_map": { "short": 1 } > + } > + } > + } > ] > -} > \ No newline at end of file > +} > diff --git a/src/ipa/rpi/vc4/data/imx477.json b/src/ipa/rpi/vc4/data/imx477.json > index bbe6da0d..fbefb0a9 100644 > --- a/src/ipa/rpi/vc4/data/imx477.json > +++ b/src/ipa/rpi/vc4/data/imx477.json > @@ -136,95 +136,282 @@ > { > "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, 66666 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > - }, > - "short": > - { > - "shutter": [ 100, 5000, 10000, 20000, 33333 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > - }, > - "long": > - { > - "shutter": [ 100, 10000, 30000, 60000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > - } > - }, > - "constraint_modes": > - { > - "normal": [ > - { > - "bound": "LOWER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.3, > - 1000, 0.3 > - ] > - } > - ], > - "highlight": [ > - { > - "bound": "LOWER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.3, > - 1000, 0.3 > - ] > - }, > - { > - "bound": "UPPER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.8, > - 1000, 0.8 > - ] > - } > - ], > - "shadows": [ > - { > - "bound": "LOWER", > - "q_lo": 0.0, > - "q_hi": 0.5, > - "y_target": > - [ > - 0, 0.17, > - 1000, 0.17 > - ] > - } > - ] > - }, > - "y_target": > - [ > - 0, 0.16, > - 1000, 0.165, > - 10000, 0.17 > - ] > - } > + "channels": > + [ > + { > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.3, > + 1000, 0.3 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.3, > + 1000, 0.3 > + ] > + }, > + { > + "bound": "UPPER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.8, > + 1000, 0.8 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ] > + }, > + { > + "base_ev": 0.125, > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.3, > + 1000, 0.3 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.3, > + 1000, 0.3 > + ] > + }, > + { > + "bound": "UPPER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.8, > + 1000, 0.8 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ] > + }, > + { > + "base_ev": 1.5, > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.3, > + 1000, 0.3 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.3, > + 1000, 0.3 > + ] > + }, > + { > + "bound": "UPPER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.8, > + 1000, 0.8 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ] > + } > + ] > + } > }, > { > "rpi.alsc": > @@ -513,7 +700,26 @@ > }, > { > "rpi.sharpen": { } > - } > + }, > + { > + "rpi.hdr": > + { > + "Off": > + { > + "cadence": [ 0 ] > + }, > + "MultiExposure": > + { > + "cadence": [ 1, 2 ], > + "channel_map": { "short": 1, "long": 2 } > + }, > + "SingleExposure": > + { > + "cadence": [ 1 ], > + "channel_map": { "short": 1 } > + } > + } > + } > ] > } > > diff --git a/src/ipa/rpi/vc4/data/imx477_noir.json b/src/ipa/rpi/vc4/data/imx477_noir.json > index 52d7f072..53b7b492 100644 > --- a/src/ipa/rpi/vc4/data/imx477_noir.json > +++ b/src/ipa/rpi/vc4/data/imx477_noir.json > @@ -47,95 +47,282 @@ > { > "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, 66666 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > - }, > - "short": > - { > - "shutter": [ 100, 5000, 10000, 20000, 33333 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > - }, > - "long": > - { > - "shutter": [ 100, 10000, 30000, 60000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > - } > - }, > - "constraint_modes": > - { > - "normal": [ > - { > - "bound": "LOWER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.3, > - 1000, 0.3 > - ] > - } > - ], > - "highlight": [ > - { > - "bound": "LOWER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.3, > - 1000, 0.3 > - ] > - }, > - { > - "bound": "UPPER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.8, > - 1000, 0.8 > - ] > - } > - ], > - "shadows": [ > - { > - "bound": "LOWER", > - "q_lo": 0.0, > - "q_hi": 0.5, > - "y_target": > - [ > - 0, 0.17, > - 1000, 0.17 > - ] > - } > - ] > - }, > - "y_target": > - [ > - 0, 0.16, > - 1000, 0.165, > - 10000, 0.17 > - ] > - } > + "channels": > + [ > + { > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.3, > + 1000, 0.3 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.3, > + 1000, 0.3 > + ] > + }, > + { > + "bound": "UPPER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.8, > + 1000, 0.8 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ] > + }, > + { > + "base_ev": 0.125, > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.3, > + 1000, 0.3 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.3, > + 1000, 0.3 > + ] > + }, > + { > + "bound": "UPPER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.8, > + 1000, 0.8 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ] > + }, > + { > + "base_ev": 1.5, > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.3, > + 1000, 0.3 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.3, > + 1000, 0.3 > + ] > + }, > + { > + "bound": "UPPER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.8, > + 1000, 0.8 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ] > + } > + ] > + } > }, > { > "rpi.alsc": > @@ -424,6 +611,25 @@ > }, > { > "rpi.sharpen": { } > - } > + }, > + { > + "rpi.hdr": > + { > + "Off": > + { > + "cadence": [ 0 ] > + }, > + "MultiExposure": > + { > + "cadence": [ 1, 2 ], > + "channel_map": { "short": 1, "long": 2 } > + }, > + "SingleExposure": > + { > + "cadence": [ 1 ], > + "channel_map": { "short": 1 } > + } > + } > + } > ] > -} > \ No newline at end of file > +} > diff --git a/src/ipa/rpi/vc4/data/imx708.json b/src/ipa/rpi/vc4/data/imx708.json > index 6b26d0a1..bfa78b72 100644 > --- a/src/ipa/rpi/vc4/data/imx708.json > +++ b/src/ipa/rpi/vc4/data/imx708.json > @@ -139,86 +139,255 @@ > { > "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, 15000, 30000, 60000, 120000 ], > - "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > - }, > - "short": > - { > - "shutter": [ 100, 5000, 10000, 20000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > - }, > - "long": > - { > - "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > - } > - }, > - "constraint_modes": > - { > - "normal": [ > - { > - "bound": "LOWER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.2, > - 1000, 0.2 > - ] > - } > - ], > - "highlight": [ > - { > - "bound": "LOWER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.2, > - 1000, 0.2 > - ] > - }, > - { > - "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 > - ], > - "startup_frames": 5, > - "convergence_frames": 6, > - "speed": 0.15 > - } > + "channels": > + [ > + { > + "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, 15000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > + }, > + "long": > + { > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + }, > + { > + "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 > + ], > + "startup_frames": 5, > + "convergence_frames": 6, > + "speed": 0.15 > + }, > + { > + "base_ev": 0.125, > + "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, 15000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > + }, > + "long": > + { > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + }, > + { > + "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 > + ], > + "startup_frames": 5, > + "convergence_frames": 6, > + "speed": 0.15 > + }, > + { > + "base_ev": 1.5, > + "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, 15000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > + }, > + "long": > + { > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + }, > + { > + "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 > + ], > + "startup_frames": 5, > + "convergence_frames": 6, > + "speed": 0.15 > + } > + ] > + } > }, > { > "rpi.alsc": > @@ -556,6 +725,25 @@ > "skip_frames": 5, > "map": [ 0.0, 445, 15.0, 925 ] > } > - } > + }, > + { > + "rpi.hdr": > + { > + "Off": > + { > + "cadence": [ 0 ] > + }, > + "MultiExposure": > + { > + "cadence": [ 1, 2 ], > + "channel_map": { "short": 1, "long": 2 } > + }, > + "SingleExposure": > + { > + "cadence": [ 1 ], > + "channel_map": { "short": 1 } > + } > + } > + } > ] > } > diff --git a/src/ipa/rpi/vc4/data/imx708_noir.json b/src/ipa/rpi/vc4/data/imx708_noir.json > index 8d498153..eb0c7a95 100644 > --- a/src/ipa/rpi/vc4/data/imx708_noir.json > +++ b/src/ipa/rpi/vc4/data/imx708_noir.json > @@ -139,86 +139,255 @@ > { > "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, 15000, 30000, 60000, 120000 ], > - "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > - }, > - "short": > - { > - "shutter": [ 100, 5000, 10000, 20000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > - }, > - "long": > - { > - "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > - } > - }, > - "constraint_modes": > - { > - "normal": [ > - { > - "bound": "LOWER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.2, > - 1000, 0.2 > - ] > - } > - ], > - "highlight": [ > - { > - "bound": "LOWER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.2, > - 1000, 0.2 > - ] > - }, > - { > - "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 > - ], > - "startup_frames": 5, > - "convergence_frames": 6, > - "speed": 0.15 > - } > + "channels": > + [ > + { > + "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, 15000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > + }, > + "long": > + { > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + }, > + { > + "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 > + ], > + "startup_frames": 5, > + "convergence_frames": 6, > + "speed": 0.15 > + }, > + { > + "base_ev": 0.125, > + "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, 15000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > + }, > + "long": > + { > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + }, > + { > + "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 > + ], > + "startup_frames": 5, > + "convergence_frames": 6, > + "speed": 0.15 > + }, > + { > + "base_ev": 1.5, > + "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, 15000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > + }, > + "long": > + { > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + }, > + { > + "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 > + ], > + "startup_frames": 5, > + "convergence_frames": 6, > + "speed": 0.15 > + } > + ] > + } > }, > { > "rpi.alsc": > @@ -556,6 +725,25 @@ > "skip_frames": 5, > "map": [ 0.0, 445, 15.0, 925 ] > } > - } > + }, > + { > + "rpi.hdr": > + { > + "Off": > + { > + "cadence": [ 0 ] > + }, > + "MultiExposure": > + { > + "cadence": [ 1, 2 ], > + "channel_map": { "short": 1, "long": 2 } > + }, > + "SingleExposure": > + { > + "cadence": [ 1 ], > + "channel_map": { "short": 1 } > + } > + } > + } > ] > } > diff --git a/src/ipa/rpi/vc4/data/imx708_wide.json b/src/ipa/rpi/vc4/data/imx708_wide.json > index 14bc918e..cefaaaeb 100644 > --- a/src/ipa/rpi/vc4/data/imx708_wide.json > +++ b/src/ipa/rpi/vc4/data/imx708_wide.json > @@ -129,86 +129,255 @@ > { > "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, 15000, 30000, 60000, 120000 ], > - "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > - }, > - "short": > - { > - "shutter": [ 100, 5000, 10000, 20000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > - }, > - "long": > - { > - "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > - } > - }, > - "constraint_modes": > - { > - "normal": [ > - { > - "bound": "LOWER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.2, > - 1000, 0.2 > - ] > - } > - ], > - "highlight": [ > - { > - "bound": "LOWER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.2, > - 1000, 0.2 > - ] > - }, > - { > - "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 > - ], > - "startup_frames": 5, > - "convergence_frames": 6, > - "speed": 0.15 > - } > + "channels": > + [ > + { > + "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, 15000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > + }, > + "long": > + { > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + }, > + { > + "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 > + ], > + "startup_frames": 5, > + "convergence_frames": 6, > + "speed": 0.15 > + }, > + { > + "base_ev": 0.125, > + "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, 15000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > + }, > + "long": > + { > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + }, > + { > + "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 > + ], > + "startup_frames": 5, > + "convergence_frames": 6, > + "speed": 0.15 > + }, > + { > + "base_ev": 1.5, > + "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, 15000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > + }, > + "long": > + { > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + }, > + { > + "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 > + ], > + "startup_frames": 5, > + "convergence_frames": 6, > + "speed": 0.15 > + } > + ] > + } > }, > { > "rpi.alsc": > @@ -459,6 +628,25 @@ > "skip_frames": 5, > "map": [ 0.0, 420, 35.0, 920 ] > } > - } > + }, > + { > + "rpi.hdr": > + { > + "Off": > + { > + "cadence": [ 0 ] > + }, > + "MultiExposure": > + { > + "cadence": [ 1, 2 ], > + "channel_map": { "short": 1, "long": 2 } > + }, > + "SingleExposure": > + { > + "cadence": [ 1 ], > + "channel_map": { "short": 1 } > + } > + } > + } > ] > } > diff --git a/src/ipa/rpi/vc4/data/imx708_wide_noir.json b/src/ipa/rpi/vc4/data/imx708_wide_noir.json > index 49442c0f..de222f52 100644 > --- a/src/ipa/rpi/vc4/data/imx708_wide_noir.json > +++ b/src/ipa/rpi/vc4/data/imx708_wide_noir.json > @@ -129,86 +129,255 @@ > { > "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, 15000, 30000, 60000, 120000 ], > - "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > - }, > - "short": > - { > - "shutter": [ 100, 5000, 10000, 20000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > - }, > - "long": > - { > - "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > - } > - }, > - "constraint_modes": > - { > - "normal": [ > - { > - "bound": "LOWER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.2, > - 1000, 0.2 > - ] > - } > - ], > - "highlight": [ > - { > - "bound": "LOWER", > - "q_lo": 0.98, > - "q_hi": 1.0, > - "y_target": > - [ > - 0, 0.2, > - 1000, 0.2 > - ] > - }, > - { > - "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 > - ], > - "startup_frames": 5, > - "convergence_frames": 6, > - "speed": 0.15 > - } > + "channels": > + [ > + { > + "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, 15000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > + }, > + "long": > + { > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + }, > + { > + "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 > + ], > + "startup_frames": 5, > + "convergence_frames": 6, > + "speed": 0.15 > + }, > + { > + "base_ev": 0.125, > + "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, 15000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > + }, > + "long": > + { > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + }, > + { > + "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 > + ], > + "startup_frames": 5, > + "convergence_frames": 6, > + "speed": 0.15 > + }, > + { > + "base_ev": 1.5, > + "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, 15000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > + }, > + "long": > + { > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > + } > + }, > + "constraint_modes": > + { > + "normal": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + } > + ], > + "highlight": [ > + { > + "bound": "LOWER", > + "q_lo": 0.98, > + "q_hi": 1.0, > + "y_target": > + [ > + 0, 0.2, > + 1000, 0.2 > + ] > + }, > + { > + "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 > + ], > + "startup_frames": 5, > + "convergence_frames": 6, > + "speed": 0.15 > + } > + ] > + } > }, > { > "rpi.alsc": > @@ -459,6 +628,25 @@ > "skip_frames": 5, > "map": [ 0.0, 420, 35.0, 920 ] > } > - } > + }, > + { > + "rpi.hdr": > + { > + "Off": > + { > + "cadence": [ 0 ] > + }, > + "MultiExposure": > + { > + "cadence": [ 1, 2 ], > + "channel_map": { "short": 1, "long": 2 } > + }, > + "SingleExposure": > + { > + "cadence": [ 1 ], > + "channel_map": { "short": 1 } > + } > + } > + } > ] > } > diff --git a/src/ipa/rpi/vc4/data/ov5647.json b/src/ipa/rpi/vc4/data/ov5647.json > index d770e44f..ac9f3f30 100644 > --- a/src/ipa/rpi/vc4/data/ov5647.json > +++ b/src/ipa/rpi/vc4/data/ov5647.json > @@ -131,96 +131,285 @@ > { > "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, 66666 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > - }, > - "short": > - { > - "shutter": [ 100, 5000, 10000, 20000, 33333 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > - }, > - "long": > - { > - "shutter": [ 100, 10000, 30000, 60000, 120000 ], > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > - ] > - } > - ], > - "shadows": [ > - { > - "bound": "LOWER", > - "q_lo": 0.0, > - "q_hi": 0.5, > - "y_target": > - [ > - 0, 0.17, > - 1000, 0.17 > - ] > - } > - ] > - }, > - "y_target": > - [ > - 0, 0.16, > - 1000, 0.165, > - 10000, 0.17 > - ], > - "base_ev": 1.25 > - } > + "channels": > + [ > + { > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ], > + "base_ev": 1.25 > + }, > + { > + "base_ev": 0.125, > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ], > + "base_ev": 1.25 > + }, > + { > + "base_ev": 1.5, > + "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, 66666 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "short": > + { > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > + }, > + "long": > + { > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > + ] > + } > + ], > + "shadows": [ > + { > + "bound": "LOWER", > + "q_lo": 0.0, > + "q_hi": 0.5, > + "y_target": > + [ > + 0, 0.17, > + 1000, 0.17 > + ] > + } > + ] > + }, > + "y_target": > + [ > + 0, 0.16, > + 1000, 0.165, > + 10000, 0.17 > + ], > + "base_ev": 1.25 > + } > + ] > + } > }, > { > "rpi.alsc": > @@ -482,6 +671,25 @@ > }, > { > "rpi.sharpen": { } > - } > + }, > + { > + "rpi.hdr": > + { > + "Off": > + { > + "cadence": [ 0 ] > + }, > + "MultiExposure": > + { > + "cadence": [ 1, 2 ], > + "channel_map": { "short": 1, "long": 2 } > + }, > + "SingleExposure": > + { > + "cadence": [ 1 ], > + "channel_map": { "short": 1 } > + } > + } > + } > ] > -} > \ No newline at end of file > +} > -- > 2.30.2 >
Hi Naush Thanks for the review. On Mon, 21 Aug 2023 at 10:00, Naushir Patuck <naush@raspberrypi.com> wrote: > > Hi David, > > Thank you for your patch. > > On Mon, 31 Jul 2023 at 14:48, David Plowman via libcamera-devel > <libcamera-devel@lists.libcamera.org> wrote: > > > > All the Raspberry Pi official camera tuning files are updated for > > HDR. As stated previously, there is no mechanism in the hardware for > > combining images so all this does is enable multi-channel AGC to > > produce short and long exposure frames. It will be up to the > > application to deal with them. > > > > The changes are identical in every tuning file. > > > > 1. The existing AGC tuning is duplicated twice so that we have 3 AGC > > channels. > > > > 2. The first is left alone (the default AGC channel), the second is > > tweaked to under-expose significantly (ev -3) and the final one is > > tweaked to over-exposure slightly (ev +0.5) > > > > 3. Control parameters are provided to the "rpi.hdr" algorithm to > > associate these AGC channels correctly with the HDR modes. > > > > Signed-off-by: David Plowman <david.plowman@raspberrypi.com> > > --- > > src/ipa/rpi/vc4/data/imx219.json | 388 +++++++++++++++----- > > src/ipa/rpi/vc4/data/imx219_noir.json | 388 +++++++++++++++----- > > src/ipa/rpi/vc4/data/imx477.json | 386 +++++++++++++++----- > > src/ipa/rpi/vc4/data/imx477_noir.json | 388 +++++++++++++++----- > > src/ipa/rpi/vc4/data/imx708.json | 350 +++++++++++++----- > > src/ipa/rpi/vc4/data/imx708_noir.json | 350 +++++++++++++----- > > src/ipa/rpi/vc4/data/imx708_wide.json | 350 +++++++++++++----- > > src/ipa/rpi/vc4/data/imx708_wide_noir.json | 350 +++++++++++++----- > > src/ipa/rpi/vc4/data/ov5647.json | 392 ++++++++++++++++----- > > 9 files changed, 2563 insertions(+), 779 deletions(-) > > > > diff --git a/src/ipa/rpi/vc4/data/imx219.json b/src/ipa/rpi/vc4/data/imx219.json > > index efe7210a..a4e457c0 100644 > > --- a/src/ipa/rpi/vc4/data/imx219.json > > +++ b/src/ipa/rpi/vc4/data/imx219.json > > @@ -131,95 +131,282 @@ > > { > > "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, 66666 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > - }, > > - "short": > > - { > > - "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > - }, > > - "long": > > - { > > - "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > > - ] > > - } > > - ], > > - "shadows": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.0, > > - "q_hi": 0.5, > > - "y_target": > > - [ > > - 0, 0.17, > > - 1000, 0.17 > > - ] > > - } > > - ] > > - }, > > - "y_target": > > - [ > > - 0, 0.16, > > - 1000, 0.165, > > - 10000, 0.17 > > - ] > > - } > > + "channels": > > + [ > > + { > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ] > > + }, > > + { > > + "base_ev": 0.125, > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ] > > + }, > > + { > > + "base_ev": 1.5, > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ] > > + } > > + ] > > + } > > }, > > { > > "rpi.alsc": > > @@ -481,6 +668,25 @@ > > }, > > { > > "rpi.sharpen": { } > > - } > > + }, > > + { > > + "rpi.hdr": > > + { > > + "Off": > > + { > > + "cadence": [ 0 ] > > + }, > > Perhaps "Off" could be implicit in the config read code? Or could it be possible > we use "Cadence" != [ 0 ] in the "Off" case for reasons? Yes, I wonder a little bit about that. Is there any circumstance where you might want "Off" to be something different? Probably not. At which point hard-coding the "Off" configuration could make sense, at least it gets rid of the "you didn't configure anything" error. I'll give that a go. Thanks David > > > + "MultiExposure": > > + { > > + "cadence": [ 1, 2 ], > > + "channel_map": { "short": 1, "long": 2 } > > + }, > > + "SingleExposure": > > + { > > + "cadence": [ 1 ], > > + "channel_map": { "short": 1 } > > + } > > + } > > + } > > ] > > -} > > \ No newline at end of file > > +} > > diff --git a/src/ipa/rpi/vc4/data/imx219_noir.json b/src/ipa/rpi/vc4/data/imx219_noir.json > > index cfedb943..cba1905c 100644 > > --- a/src/ipa/rpi/vc4/data/imx219_noir.json > > +++ b/src/ipa/rpi/vc4/data/imx219_noir.json > > @@ -47,95 +47,282 @@ > > { > > "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, 66666 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > - }, > > - "short": > > - { > > - "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > - }, > > - "long": > > - { > > - "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > > - ] > > - } > > - ], > > - "shadows": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.0, > > - "q_hi": 0.5, > > - "y_target": > > - [ > > - 0, 0.17, > > - 1000, 0.17 > > - ] > > - } > > - ] > > - }, > > - "y_target": > > - [ > > - 0, 0.16, > > - 1000, 0.165, > > - 10000, 0.17 > > - ] > > - } > > + "channels": > > + [ > > + { > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ] > > + }, > > + { > > + "base_ev": 0.125, > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ] > > + }, > > + { > > + "base_ev": 1.5, > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ] > > + } > > + ] > > + } > > }, > > { > > "rpi.alsc": > > @@ -397,6 +584,25 @@ > > }, > > { > > "rpi.sharpen": { } > > - } > > + }, > > + { > > + "rpi.hdr": > > + { > > + "Off": > > + { > > + "cadence": [ 0 ] > > + }, > > + "MultiExposure": > > + { > > + "cadence": [ 1, 2 ], > > + "channel_map": { "short": 1, "long": 2 } > > + }, > > + "SingleExposure": > > + { > > + "cadence": [ 1 ], > > + "channel_map": { "short": 1 } > > + } > > + } > > + } > > ] > > -} > > \ No newline at end of file > > +} > > diff --git a/src/ipa/rpi/vc4/data/imx477.json b/src/ipa/rpi/vc4/data/imx477.json > > index bbe6da0d..fbefb0a9 100644 > > --- a/src/ipa/rpi/vc4/data/imx477.json > > +++ b/src/ipa/rpi/vc4/data/imx477.json > > @@ -136,95 +136,282 @@ > > { > > "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, 66666 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > - }, > > - "short": > > - { > > - "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > - }, > > - "long": > > - { > > - "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > - } > > - }, > > - "constraint_modes": > > - { > > - "normal": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.3, > > - 1000, 0.3 > > - ] > > - } > > - ], > > - "highlight": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.3, > > - 1000, 0.3 > > - ] > > - }, > > - { > > - "bound": "UPPER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.8, > > - 1000, 0.8 > > - ] > > - } > > - ], > > - "shadows": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.0, > > - "q_hi": 0.5, > > - "y_target": > > - [ > > - 0, 0.17, > > - 1000, 0.17 > > - ] > > - } > > - ] > > - }, > > - "y_target": > > - [ > > - 0, 0.16, > > - 1000, 0.165, > > - 10000, 0.17 > > - ] > > - } > > + "channels": > > + [ > > + { > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.3, > > + 1000, 0.3 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.3, > > + 1000, 0.3 > > + ] > > + }, > > + { > > + "bound": "UPPER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.8, > > + 1000, 0.8 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ] > > + }, > > + { > > + "base_ev": 0.125, > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.3, > > + 1000, 0.3 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.3, > > + 1000, 0.3 > > + ] > > + }, > > + { > > + "bound": "UPPER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.8, > > + 1000, 0.8 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ] > > + }, > > + { > > + "base_ev": 1.5, > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.3, > > + 1000, 0.3 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.3, > > + 1000, 0.3 > > + ] > > + }, > > + { > > + "bound": "UPPER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.8, > > + 1000, 0.8 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ] > > + } > > + ] > > + } > > }, > > { > > "rpi.alsc": > > @@ -513,7 +700,26 @@ > > }, > > { > > "rpi.sharpen": { } > > - } > > + }, > > + { > > + "rpi.hdr": > > + { > > + "Off": > > + { > > + "cadence": [ 0 ] > > + }, > > + "MultiExposure": > > + { > > + "cadence": [ 1, 2 ], > > + "channel_map": { "short": 1, "long": 2 } > > + }, > > + "SingleExposure": > > + { > > + "cadence": [ 1 ], > > + "channel_map": { "short": 1 } > > + } > > + } > > + } > > ] > > } > > > > diff --git a/src/ipa/rpi/vc4/data/imx477_noir.json b/src/ipa/rpi/vc4/data/imx477_noir.json > > index 52d7f072..53b7b492 100644 > > --- a/src/ipa/rpi/vc4/data/imx477_noir.json > > +++ b/src/ipa/rpi/vc4/data/imx477_noir.json > > @@ -47,95 +47,282 @@ > > { > > "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, 66666 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > - }, > > - "short": > > - { > > - "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > - }, > > - "long": > > - { > > - "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > - } > > - }, > > - "constraint_modes": > > - { > > - "normal": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.3, > > - 1000, 0.3 > > - ] > > - } > > - ], > > - "highlight": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.3, > > - 1000, 0.3 > > - ] > > - }, > > - { > > - "bound": "UPPER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.8, > > - 1000, 0.8 > > - ] > > - } > > - ], > > - "shadows": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.0, > > - "q_hi": 0.5, > > - "y_target": > > - [ > > - 0, 0.17, > > - 1000, 0.17 > > - ] > > - } > > - ] > > - }, > > - "y_target": > > - [ > > - 0, 0.16, > > - 1000, 0.165, > > - 10000, 0.17 > > - ] > > - } > > + "channels": > > + [ > > + { > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.3, > > + 1000, 0.3 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.3, > > + 1000, 0.3 > > + ] > > + }, > > + { > > + "bound": "UPPER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.8, > > + 1000, 0.8 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ] > > + }, > > + { > > + "base_ev": 0.125, > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.3, > > + 1000, 0.3 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.3, > > + 1000, 0.3 > > + ] > > + }, > > + { > > + "bound": "UPPER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.8, > > + 1000, 0.8 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ] > > + }, > > + { > > + "base_ev": 1.5, > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.3, > > + 1000, 0.3 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.3, > > + 1000, 0.3 > > + ] > > + }, > > + { > > + "bound": "UPPER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.8, > > + 1000, 0.8 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ] > > + } > > + ] > > + } > > }, > > { > > "rpi.alsc": > > @@ -424,6 +611,25 @@ > > }, > > { > > "rpi.sharpen": { } > > - } > > + }, > > + { > > + "rpi.hdr": > > + { > > + "Off": > > + { > > + "cadence": [ 0 ] > > + }, > > + "MultiExposure": > > + { > > + "cadence": [ 1, 2 ], > > + "channel_map": { "short": 1, "long": 2 } > > + }, > > + "SingleExposure": > > + { > > + "cadence": [ 1 ], > > + "channel_map": { "short": 1 } > > + } > > + } > > + } > > ] > > -} > > \ No newline at end of file > > +} > > diff --git a/src/ipa/rpi/vc4/data/imx708.json b/src/ipa/rpi/vc4/data/imx708.json > > index 6b26d0a1..bfa78b72 100644 > > --- a/src/ipa/rpi/vc4/data/imx708.json > > +++ b/src/ipa/rpi/vc4/data/imx708.json > > @@ -139,86 +139,255 @@ > > { > > "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, 15000, 30000, 60000, 120000 ], > > - "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > - }, > > - "short": > > - { > > - "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > - }, > > - "long": > > - { > > - "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > - } > > - }, > > - "constraint_modes": > > - { > > - "normal": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.2, > > - 1000, 0.2 > > - ] > > - } > > - ], > > - "highlight": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.2, > > - 1000, 0.2 > > - ] > > - }, > > - { > > - "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 > > - ], > > - "startup_frames": 5, > > - "convergence_frames": 6, > > - "speed": 0.15 > > - } > > + "channels": > > + [ > > + { > > + "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, 15000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + }, > > + { > > + "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 > > + ], > > + "startup_frames": 5, > > + "convergence_frames": 6, > > + "speed": 0.15 > > + }, > > + { > > + "base_ev": 0.125, > > + "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, 15000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + }, > > + { > > + "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 > > + ], > > + "startup_frames": 5, > > + "convergence_frames": 6, > > + "speed": 0.15 > > + }, > > + { > > + "base_ev": 1.5, > > + "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, 15000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + }, > > + { > > + "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 > > + ], > > + "startup_frames": 5, > > + "convergence_frames": 6, > > + "speed": 0.15 > > + } > > + ] > > + } > > }, > > { > > "rpi.alsc": > > @@ -556,6 +725,25 @@ > > "skip_frames": 5, > > "map": [ 0.0, 445, 15.0, 925 ] > > } > > - } > > + }, > > + { > > + "rpi.hdr": > > + { > > + "Off": > > + { > > + "cadence": [ 0 ] > > + }, > > + "MultiExposure": > > + { > > + "cadence": [ 1, 2 ], > > + "channel_map": { "short": 1, "long": 2 } > > + }, > > + "SingleExposure": > > + { > > + "cadence": [ 1 ], > > + "channel_map": { "short": 1 } > > + } > > + } > > + } > > ] > > } > > diff --git a/src/ipa/rpi/vc4/data/imx708_noir.json b/src/ipa/rpi/vc4/data/imx708_noir.json > > index 8d498153..eb0c7a95 100644 > > --- a/src/ipa/rpi/vc4/data/imx708_noir.json > > +++ b/src/ipa/rpi/vc4/data/imx708_noir.json > > @@ -139,86 +139,255 @@ > > { > > "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, 15000, 30000, 60000, 120000 ], > > - "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > - }, > > - "short": > > - { > > - "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > - }, > > - "long": > > - { > > - "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > - } > > - }, > > - "constraint_modes": > > - { > > - "normal": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.2, > > - 1000, 0.2 > > - ] > > - } > > - ], > > - "highlight": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.2, > > - 1000, 0.2 > > - ] > > - }, > > - { > > - "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 > > - ], > > - "startup_frames": 5, > > - "convergence_frames": 6, > > - "speed": 0.15 > > - } > > + "channels": > > + [ > > + { > > + "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, 15000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + }, > > + { > > + "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 > > + ], > > + "startup_frames": 5, > > + "convergence_frames": 6, > > + "speed": 0.15 > > + }, > > + { > > + "base_ev": 0.125, > > + "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, 15000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + }, > > + { > > + "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 > > + ], > > + "startup_frames": 5, > > + "convergence_frames": 6, > > + "speed": 0.15 > > + }, > > + { > > + "base_ev": 1.5, > > + "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, 15000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + }, > > + { > > + "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 > > + ], > > + "startup_frames": 5, > > + "convergence_frames": 6, > > + "speed": 0.15 > > + } > > + ] > > + } > > }, > > { > > "rpi.alsc": > > @@ -556,6 +725,25 @@ > > "skip_frames": 5, > > "map": [ 0.0, 445, 15.0, 925 ] > > } > > - } > > + }, > > + { > > + "rpi.hdr": > > + { > > + "Off": > > + { > > + "cadence": [ 0 ] > > + }, > > + "MultiExposure": > > + { > > + "cadence": [ 1, 2 ], > > + "channel_map": { "short": 1, "long": 2 } > > + }, > > + "SingleExposure": > > + { > > + "cadence": [ 1 ], > > + "channel_map": { "short": 1 } > > + } > > + } > > + } > > ] > > } > > diff --git a/src/ipa/rpi/vc4/data/imx708_wide.json b/src/ipa/rpi/vc4/data/imx708_wide.json > > index 14bc918e..cefaaaeb 100644 > > --- a/src/ipa/rpi/vc4/data/imx708_wide.json > > +++ b/src/ipa/rpi/vc4/data/imx708_wide.json > > @@ -129,86 +129,255 @@ > > { > > "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, 15000, 30000, 60000, 120000 ], > > - "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > - }, > > - "short": > > - { > > - "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > - }, > > - "long": > > - { > > - "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > - } > > - }, > > - "constraint_modes": > > - { > > - "normal": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.2, > > - 1000, 0.2 > > - ] > > - } > > - ], > > - "highlight": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.2, > > - 1000, 0.2 > > - ] > > - }, > > - { > > - "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 > > - ], > > - "startup_frames": 5, > > - "convergence_frames": 6, > > - "speed": 0.15 > > - } > > + "channels": > > + [ > > + { > > + "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, 15000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + }, > > + { > > + "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 > > + ], > > + "startup_frames": 5, > > + "convergence_frames": 6, > > + "speed": 0.15 > > + }, > > + { > > + "base_ev": 0.125, > > + "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, 15000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + }, > > + { > > + "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 > > + ], > > + "startup_frames": 5, > > + "convergence_frames": 6, > > + "speed": 0.15 > > + }, > > + { > > + "base_ev": 1.5, > > + "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, 15000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + }, > > + { > > + "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 > > + ], > > + "startup_frames": 5, > > + "convergence_frames": 6, > > + "speed": 0.15 > > + } > > + ] > > + } > > }, > > { > > "rpi.alsc": > > @@ -459,6 +628,25 @@ > > "skip_frames": 5, > > "map": [ 0.0, 420, 35.0, 920 ] > > } > > - } > > + }, > > + { > > + "rpi.hdr": > > + { > > + "Off": > > + { > > + "cadence": [ 0 ] > > + }, > > + "MultiExposure": > > + { > > + "cadence": [ 1, 2 ], > > + "channel_map": { "short": 1, "long": 2 } > > + }, > > + "SingleExposure": > > + { > > + "cadence": [ 1 ], > > + "channel_map": { "short": 1 } > > + } > > + } > > + } > > ] > > } > > diff --git a/src/ipa/rpi/vc4/data/imx708_wide_noir.json b/src/ipa/rpi/vc4/data/imx708_wide_noir.json > > index 49442c0f..de222f52 100644 > > --- a/src/ipa/rpi/vc4/data/imx708_wide_noir.json > > +++ b/src/ipa/rpi/vc4/data/imx708_wide_noir.json > > @@ -129,86 +129,255 @@ > > { > > "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, 15000, 30000, 60000, 120000 ], > > - "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > - }, > > - "short": > > - { > > - "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > - }, > > - "long": > > - { > > - "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > - } > > - }, > > - "constraint_modes": > > - { > > - "normal": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.2, > > - 1000, 0.2 > > - ] > > - } > > - ], > > - "highlight": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.98, > > - "q_hi": 1.0, > > - "y_target": > > - [ > > - 0, 0.2, > > - 1000, 0.2 > > - ] > > - }, > > - { > > - "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 > > - ], > > - "startup_frames": 5, > > - "convergence_frames": 6, > > - "speed": 0.15 > > - } > > + "channels": > > + [ > > + { > > + "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, 15000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + }, > > + { > > + "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 > > + ], > > + "startup_frames": 5, > > + "convergence_frames": 6, > > + "speed": 0.15 > > + }, > > + { > > + "base_ev": 0.125, > > + "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, 15000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + }, > > + { > > + "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 > > + ], > > + "startup_frames": 5, > > + "convergence_frames": 6, > > + "speed": 0.15 > > + }, > > + { > > + "base_ev": 1.5, > > + "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, 15000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] > > + } > > + }, > > + "constraint_modes": > > + { > > + "normal": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + } > > + ], > > + "highlight": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.98, > > + "q_hi": 1.0, > > + "y_target": > > + [ > > + 0, 0.2, > > + 1000, 0.2 > > + ] > > + }, > > + { > > + "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 > > + ], > > + "startup_frames": 5, > > + "convergence_frames": 6, > > + "speed": 0.15 > > + } > > + ] > > + } > > }, > > { > > "rpi.alsc": > > @@ -459,6 +628,25 @@ > > "skip_frames": 5, > > "map": [ 0.0, 420, 35.0, 920 ] > > } > > - } > > + }, > > + { > > + "rpi.hdr": > > + { > > + "Off": > > + { > > + "cadence": [ 0 ] > > + }, > > + "MultiExposure": > > + { > > + "cadence": [ 1, 2 ], > > + "channel_map": { "short": 1, "long": 2 } > > + }, > > + "SingleExposure": > > + { > > + "cadence": [ 1 ], > > + "channel_map": { "short": 1 } > > + } > > + } > > + } > > ] > > } > > diff --git a/src/ipa/rpi/vc4/data/ov5647.json b/src/ipa/rpi/vc4/data/ov5647.json > > index d770e44f..ac9f3f30 100644 > > --- a/src/ipa/rpi/vc4/data/ov5647.json > > +++ b/src/ipa/rpi/vc4/data/ov5647.json > > @@ -131,96 +131,285 @@ > > { > > "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, 66666 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > - }, > > - "short": > > - { > > - "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > - }, > > - "long": > > - { > > - "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > > - ] > > - } > > - ], > > - "shadows": [ > > - { > > - "bound": "LOWER", > > - "q_lo": 0.0, > > - "q_hi": 0.5, > > - "y_target": > > - [ > > - 0, 0.17, > > - 1000, 0.17 > > - ] > > - } > > - ] > > - }, > > - "y_target": > > - [ > > - 0, 0.16, > > - 1000, 0.165, > > - 10000, 0.17 > > - ], > > - "base_ev": 1.25 > > - } > > + "channels": > > + [ > > + { > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ], > > + "base_ev": 1.25 > > + }, > > + { > > + "base_ev": 0.125, > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ], > > + "base_ev": 1.25 > > + }, > > + { > > + "base_ev": 1.5, > > + "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, 66666 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "short": > > + { > > + "shutter": [ 100, 5000, 10000, 20000, 33333 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] > > + }, > > + "long": > > + { > > + "shutter": [ 100, 10000, 30000, 60000, 120000 ], > > + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 > > + ] > > + } > > + ], > > + "shadows": [ > > + { > > + "bound": "LOWER", > > + "q_lo": 0.0, > > + "q_hi": 0.5, > > + "y_target": > > + [ > > + 0, 0.17, > > + 1000, 0.17 > > + ] > > + } > > + ] > > + }, > > + "y_target": > > + [ > > + 0, 0.16, > > + 1000, 0.165, > > + 10000, 0.17 > > + ], > > + "base_ev": 1.25 > > + } > > + ] > > + } > > }, > > { > > "rpi.alsc": > > @@ -482,6 +671,25 @@ > > }, > > { > > "rpi.sharpen": { } > > - } > > + }, > > + { > > + "rpi.hdr": > > + { > > + "Off": > > + { > > + "cadence": [ 0 ] > > + }, > > + "MultiExposure": > > + { > > + "cadence": [ 1, 2 ], > > + "channel_map": { "short": 1, "long": 2 } > > + }, > > + "SingleExposure": > > + { > > + "cadence": [ 1 ], > > + "channel_map": { "short": 1 } > > + } > > + } > > + } > > ] > > -} > > \ No newline at end of file > > +} > > -- > > 2.30.2 > >
diff --git a/src/ipa/rpi/vc4/data/imx219.json b/src/ipa/rpi/vc4/data/imx219.json index efe7210a..a4e457c0 100644 --- a/src/ipa/rpi/vc4/data/imx219.json +++ b/src/ipa/rpi/vc4/data/imx219.json @@ -131,95 +131,282 @@ { "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, 66666 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] - }, - "short": - { - "shutter": [ 100, 5000, 10000, 20000, 33333 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] - }, - "long": - { - "shutter": [ 100, 10000, 30000, 60000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 - ] - } - ], - "shadows": [ - { - "bound": "LOWER", - "q_lo": 0.0, - "q_hi": 0.5, - "y_target": - [ - 0, 0.17, - 1000, 0.17 - ] - } - ] - }, - "y_target": - [ - 0, 0.16, - 1000, 0.165, - 10000, 0.17 - ] - } + "channels": + [ + { + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + }, + { + "base_ev": 0.125, + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + }, + { + "base_ev": 1.5, + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + } + ] + } }, { "rpi.alsc": @@ -481,6 +668,25 @@ }, { "rpi.sharpen": { } - } + }, + { + "rpi.hdr": + { + "Off": + { + "cadence": [ 0 ] + }, + "MultiExposure": + { + "cadence": [ 1, 2 ], + "channel_map": { "short": 1, "long": 2 } + }, + "SingleExposure": + { + "cadence": [ 1 ], + "channel_map": { "short": 1 } + } + } + } ] -} \ No newline at end of file +} diff --git a/src/ipa/rpi/vc4/data/imx219_noir.json b/src/ipa/rpi/vc4/data/imx219_noir.json index cfedb943..cba1905c 100644 --- a/src/ipa/rpi/vc4/data/imx219_noir.json +++ b/src/ipa/rpi/vc4/data/imx219_noir.json @@ -47,95 +47,282 @@ { "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, 66666 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] - }, - "short": - { - "shutter": [ 100, 5000, 10000, 20000, 33333 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] - }, - "long": - { - "shutter": [ 100, 10000, 30000, 60000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 - ] - } - ], - "shadows": [ - { - "bound": "LOWER", - "q_lo": 0.0, - "q_hi": 0.5, - "y_target": - [ - 0, 0.17, - 1000, 0.17 - ] - } - ] - }, - "y_target": - [ - 0, 0.16, - 1000, 0.165, - 10000, 0.17 - ] - } + "channels": + [ + { + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + }, + { + "base_ev": 0.125, + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + }, + { + "base_ev": 1.5, + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + } + ] + } }, { "rpi.alsc": @@ -397,6 +584,25 @@ }, { "rpi.sharpen": { } - } + }, + { + "rpi.hdr": + { + "Off": + { + "cadence": [ 0 ] + }, + "MultiExposure": + { + "cadence": [ 1, 2 ], + "channel_map": { "short": 1, "long": 2 } + }, + "SingleExposure": + { + "cadence": [ 1 ], + "channel_map": { "short": 1 } + } + } + } ] -} \ No newline at end of file +} diff --git a/src/ipa/rpi/vc4/data/imx477.json b/src/ipa/rpi/vc4/data/imx477.json index bbe6da0d..fbefb0a9 100644 --- a/src/ipa/rpi/vc4/data/imx477.json +++ b/src/ipa/rpi/vc4/data/imx477.json @@ -136,95 +136,282 @@ { "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, 66666 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] - }, - "short": - { - "shutter": [ 100, 5000, 10000, 20000, 33333 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] - }, - "long": - { - "shutter": [ 100, 10000, 30000, 60000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] - } - }, - "constraint_modes": - { - "normal": [ - { - "bound": "LOWER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.3, - 1000, 0.3 - ] - } - ], - "highlight": [ - { - "bound": "LOWER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.3, - 1000, 0.3 - ] - }, - { - "bound": "UPPER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.8, - 1000, 0.8 - ] - } - ], - "shadows": [ - { - "bound": "LOWER", - "q_lo": 0.0, - "q_hi": 0.5, - "y_target": - [ - 0, 0.17, - 1000, 0.17 - ] - } - ] - }, - "y_target": - [ - 0, 0.16, - 1000, 0.165, - 10000, 0.17 - ] - } + "channels": + [ + { + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.3, + 1000, 0.3 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.3, + 1000, 0.3 + ] + }, + { + "bound": "UPPER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.8, + 1000, 0.8 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + }, + { + "base_ev": 0.125, + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.3, + 1000, 0.3 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.3, + 1000, 0.3 + ] + }, + { + "bound": "UPPER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.8, + 1000, 0.8 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + }, + { + "base_ev": 1.5, + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.3, + 1000, 0.3 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.3, + 1000, 0.3 + ] + }, + { + "bound": "UPPER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.8, + 1000, 0.8 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + } + ] + } }, { "rpi.alsc": @@ -513,7 +700,26 @@ }, { "rpi.sharpen": { } - } + }, + { + "rpi.hdr": + { + "Off": + { + "cadence": [ 0 ] + }, + "MultiExposure": + { + "cadence": [ 1, 2 ], + "channel_map": { "short": 1, "long": 2 } + }, + "SingleExposure": + { + "cadence": [ 1 ], + "channel_map": { "short": 1 } + } + } + } ] } diff --git a/src/ipa/rpi/vc4/data/imx477_noir.json b/src/ipa/rpi/vc4/data/imx477_noir.json index 52d7f072..53b7b492 100644 --- a/src/ipa/rpi/vc4/data/imx477_noir.json +++ b/src/ipa/rpi/vc4/data/imx477_noir.json @@ -47,95 +47,282 @@ { "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, 66666 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] - }, - "short": - { - "shutter": [ 100, 5000, 10000, 20000, 33333 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] - }, - "long": - { - "shutter": [ 100, 10000, 30000, 60000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] - } - }, - "constraint_modes": - { - "normal": [ - { - "bound": "LOWER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.3, - 1000, 0.3 - ] - } - ], - "highlight": [ - { - "bound": "LOWER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.3, - 1000, 0.3 - ] - }, - { - "bound": "UPPER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.8, - 1000, 0.8 - ] - } - ], - "shadows": [ - { - "bound": "LOWER", - "q_lo": 0.0, - "q_hi": 0.5, - "y_target": - [ - 0, 0.17, - 1000, 0.17 - ] - } - ] - }, - "y_target": - [ - 0, 0.16, - 1000, 0.165, - 10000, 0.17 - ] - } + "channels": + [ + { + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.3, + 1000, 0.3 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.3, + 1000, 0.3 + ] + }, + { + "bound": "UPPER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.8, + 1000, 0.8 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + }, + { + "base_ev": 0.125, + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.3, + 1000, 0.3 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.3, + 1000, 0.3 + ] + }, + { + "bound": "UPPER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.8, + 1000, 0.8 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + }, + { + "base_ev": 1.5, + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.3, + 1000, 0.3 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.3, + 1000, 0.3 + ] + }, + { + "bound": "UPPER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.8, + 1000, 0.8 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ] + } + ] + } }, { "rpi.alsc": @@ -424,6 +611,25 @@ }, { "rpi.sharpen": { } - } + }, + { + "rpi.hdr": + { + "Off": + { + "cadence": [ 0 ] + }, + "MultiExposure": + { + "cadence": [ 1, 2 ], + "channel_map": { "short": 1, "long": 2 } + }, + "SingleExposure": + { + "cadence": [ 1 ], + "channel_map": { "short": 1 } + } + } + } ] -} \ No newline at end of file +} diff --git a/src/ipa/rpi/vc4/data/imx708.json b/src/ipa/rpi/vc4/data/imx708.json index 6b26d0a1..bfa78b72 100644 --- a/src/ipa/rpi/vc4/data/imx708.json +++ b/src/ipa/rpi/vc4/data/imx708.json @@ -139,86 +139,255 @@ { "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, 15000, 30000, 60000, 120000 ], - "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] - }, - "short": - { - "shutter": [ 100, 5000, 10000, 20000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] - }, - "long": - { - "shutter": [ 1000, 30000, 60000, 90000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] - } - }, - "constraint_modes": - { - "normal": [ - { - "bound": "LOWER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.2, - 1000, 0.2 - ] - } - ], - "highlight": [ - { - "bound": "LOWER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.2, - 1000, 0.2 - ] - }, - { - "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 - ], - "startup_frames": 5, - "convergence_frames": 6, - "speed": 0.15 - } + "channels": + [ + { + "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, 15000, 30000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "long": + { + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + }, + { + "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 + ], + "startup_frames": 5, + "convergence_frames": 6, + "speed": 0.15 + }, + { + "base_ev": 0.125, + "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, 15000, 30000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "long": + { + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + }, + { + "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 + ], + "startup_frames": 5, + "convergence_frames": 6, + "speed": 0.15 + }, + { + "base_ev": 1.5, + "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, 15000, 30000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "long": + { + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + }, + { + "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 + ], + "startup_frames": 5, + "convergence_frames": 6, + "speed": 0.15 + } + ] + } }, { "rpi.alsc": @@ -556,6 +725,25 @@ "skip_frames": 5, "map": [ 0.0, 445, 15.0, 925 ] } - } + }, + { + "rpi.hdr": + { + "Off": + { + "cadence": [ 0 ] + }, + "MultiExposure": + { + "cadence": [ 1, 2 ], + "channel_map": { "short": 1, "long": 2 } + }, + "SingleExposure": + { + "cadence": [ 1 ], + "channel_map": { "short": 1 } + } + } + } ] } diff --git a/src/ipa/rpi/vc4/data/imx708_noir.json b/src/ipa/rpi/vc4/data/imx708_noir.json index 8d498153..eb0c7a95 100644 --- a/src/ipa/rpi/vc4/data/imx708_noir.json +++ b/src/ipa/rpi/vc4/data/imx708_noir.json @@ -139,86 +139,255 @@ { "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, 15000, 30000, 60000, 120000 ], - "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] - }, - "short": - { - "shutter": [ 100, 5000, 10000, 20000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] - }, - "long": - { - "shutter": [ 1000, 30000, 60000, 90000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] - } - }, - "constraint_modes": - { - "normal": [ - { - "bound": "LOWER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.2, - 1000, 0.2 - ] - } - ], - "highlight": [ - { - "bound": "LOWER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.2, - 1000, 0.2 - ] - }, - { - "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 - ], - "startup_frames": 5, - "convergence_frames": 6, - "speed": 0.15 - } + "channels": + [ + { + "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, 15000, 30000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "long": + { + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + }, + { + "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 + ], + "startup_frames": 5, + "convergence_frames": 6, + "speed": 0.15 + }, + { + "base_ev": 0.125, + "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, 15000, 30000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "long": + { + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + }, + { + "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 + ], + "startup_frames": 5, + "convergence_frames": 6, + "speed": 0.15 + }, + { + "base_ev": 1.5, + "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, 15000, 30000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "long": + { + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + }, + { + "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 + ], + "startup_frames": 5, + "convergence_frames": 6, + "speed": 0.15 + } + ] + } }, { "rpi.alsc": @@ -556,6 +725,25 @@ "skip_frames": 5, "map": [ 0.0, 445, 15.0, 925 ] } - } + }, + { + "rpi.hdr": + { + "Off": + { + "cadence": [ 0 ] + }, + "MultiExposure": + { + "cadence": [ 1, 2 ], + "channel_map": { "short": 1, "long": 2 } + }, + "SingleExposure": + { + "cadence": [ 1 ], + "channel_map": { "short": 1 } + } + } + } ] } diff --git a/src/ipa/rpi/vc4/data/imx708_wide.json b/src/ipa/rpi/vc4/data/imx708_wide.json index 14bc918e..cefaaaeb 100644 --- a/src/ipa/rpi/vc4/data/imx708_wide.json +++ b/src/ipa/rpi/vc4/data/imx708_wide.json @@ -129,86 +129,255 @@ { "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, 15000, 30000, 60000, 120000 ], - "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] - }, - "short": - { - "shutter": [ 100, 5000, 10000, 20000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] - }, - "long": - { - "shutter": [ 1000, 30000, 60000, 90000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] - } - }, - "constraint_modes": - { - "normal": [ - { - "bound": "LOWER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.2, - 1000, 0.2 - ] - } - ], - "highlight": [ - { - "bound": "LOWER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.2, - 1000, 0.2 - ] - }, - { - "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 - ], - "startup_frames": 5, - "convergence_frames": 6, - "speed": 0.15 - } + "channels": + [ + { + "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, 15000, 30000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "long": + { + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + }, + { + "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 + ], + "startup_frames": 5, + "convergence_frames": 6, + "speed": 0.15 + }, + { + "base_ev": 0.125, + "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, 15000, 30000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "long": + { + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + }, + { + "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 + ], + "startup_frames": 5, + "convergence_frames": 6, + "speed": 0.15 + }, + { + "base_ev": 1.5, + "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, 15000, 30000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "long": + { + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + }, + { + "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 + ], + "startup_frames": 5, + "convergence_frames": 6, + "speed": 0.15 + } + ] + } }, { "rpi.alsc": @@ -459,6 +628,25 @@ "skip_frames": 5, "map": [ 0.0, 420, 35.0, 920 ] } - } + }, + { + "rpi.hdr": + { + "Off": + { + "cadence": [ 0 ] + }, + "MultiExposure": + { + "cadence": [ 1, 2 ], + "channel_map": { "short": 1, "long": 2 } + }, + "SingleExposure": + { + "cadence": [ 1 ], + "channel_map": { "short": 1 } + } + } + } ] } diff --git a/src/ipa/rpi/vc4/data/imx708_wide_noir.json b/src/ipa/rpi/vc4/data/imx708_wide_noir.json index 49442c0f..de222f52 100644 --- a/src/ipa/rpi/vc4/data/imx708_wide_noir.json +++ b/src/ipa/rpi/vc4/data/imx708_wide_noir.json @@ -129,86 +129,255 @@ { "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, 15000, 30000, 60000, 120000 ], - "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] - }, - "short": - { - "shutter": [ 100, 5000, 10000, 20000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] - }, - "long": - { - "shutter": [ 1000, 30000, 60000, 90000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] - } - }, - "constraint_modes": - { - "normal": [ - { - "bound": "LOWER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.2, - 1000, 0.2 - ] - } - ], - "highlight": [ - { - "bound": "LOWER", - "q_lo": 0.98, - "q_hi": 1.0, - "y_target": - [ - 0, 0.2, - 1000, 0.2 - ] - }, - { - "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 - ], - "startup_frames": 5, - "convergence_frames": 6, - "speed": 0.15 - } + "channels": + [ + { + "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, 15000, 30000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "long": + { + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + }, + { + "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 + ], + "startup_frames": 5, + "convergence_frames": 6, + "speed": 0.15 + }, + { + "base_ev": 0.125, + "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, 15000, 30000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "long": + { + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + }, + { + "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 + ], + "startup_frames": 5, + "convergence_frames": 6, + "speed": 0.15 + }, + { + "base_ev": 1.5, + "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, 15000, 30000, 60000, 120000 ], + "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "long": + { + "shutter": [ 1000, 30000, 60000, 90000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] + } + }, + "constraint_modes": + { + "normal": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + } + ], + "highlight": [ + { + "bound": "LOWER", + "q_lo": 0.98, + "q_hi": 1.0, + "y_target": + [ + 0, 0.2, + 1000, 0.2 + ] + }, + { + "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 + ], + "startup_frames": 5, + "convergence_frames": 6, + "speed": 0.15 + } + ] + } }, { "rpi.alsc": @@ -459,6 +628,25 @@ "skip_frames": 5, "map": [ 0.0, 420, 35.0, 920 ] } - } + }, + { + "rpi.hdr": + { + "Off": + { + "cadence": [ 0 ] + }, + "MultiExposure": + { + "cadence": [ 1, 2 ], + "channel_map": { "short": 1, "long": 2 } + }, + "SingleExposure": + { + "cadence": [ 1 ], + "channel_map": { "short": 1 } + } + } + } ] } diff --git a/src/ipa/rpi/vc4/data/ov5647.json b/src/ipa/rpi/vc4/data/ov5647.json index d770e44f..ac9f3f30 100644 --- a/src/ipa/rpi/vc4/data/ov5647.json +++ b/src/ipa/rpi/vc4/data/ov5647.json @@ -131,96 +131,285 @@ { "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, 66666 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] - }, - "short": - { - "shutter": [ 100, 5000, 10000, 20000, 33333 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] - }, - "long": - { - "shutter": [ 100, 10000, 30000, 60000, 120000 ], - "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 - ] - } - ], - "shadows": [ - { - "bound": "LOWER", - "q_lo": 0.0, - "q_hi": 0.5, - "y_target": - [ - 0, 0.17, - 1000, 0.17 - ] - } - ] - }, - "y_target": - [ - 0, 0.16, - 1000, 0.165, - 10000, 0.17 - ], - "base_ev": 1.25 - } + "channels": + [ + { + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ], + "base_ev": 1.25 + }, + { + "base_ev": 0.125, + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ], + "base_ev": 1.25 + }, + { + "base_ev": 1.5, + "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, 66666 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 33333 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] + }, + "long": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 12.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 + ] + } + ], + "shadows": [ + { + "bound": "LOWER", + "q_lo": 0.0, + "q_hi": 0.5, + "y_target": + [ + 0, 0.17, + 1000, 0.17 + ] + } + ] + }, + "y_target": + [ + 0, 0.16, + 1000, 0.165, + 10000, 0.17 + ], + "base_ev": 1.25 + } + ] + } }, { "rpi.alsc": @@ -482,6 +671,25 @@ }, { "rpi.sharpen": { } - } + }, + { + "rpi.hdr": + { + "Off": + { + "cadence": [ 0 ] + }, + "MultiExposure": + { + "cadence": [ 1, 2 ], + "channel_map": { "short": 1, "long": 2 } + }, + "SingleExposure": + { + "cadence": [ 1 ], + "channel_map": { "short": 1 } + } + } + } ] -} \ No newline at end of file +}
All the Raspberry Pi official camera tuning files are updated for HDR. As stated previously, there is no mechanism in the hardware for combining images so all this does is enable multi-channel AGC to produce short and long exposure frames. It will be up to the application to deal with them. The changes are identical in every tuning file. 1. The existing AGC tuning is duplicated twice so that we have 3 AGC channels. 2. The first is left alone (the default AGC channel), the second is tweaked to under-expose significantly (ev -3) and the final one is tweaked to over-exposure slightly (ev +0.5) 3. Control parameters are provided to the "rpi.hdr" algorithm to associate these AGC channels correctly with the HDR modes. Signed-off-by: David Plowman <david.plowman@raspberrypi.com> --- src/ipa/rpi/vc4/data/imx219.json | 388 +++++++++++++++----- src/ipa/rpi/vc4/data/imx219_noir.json | 388 +++++++++++++++----- src/ipa/rpi/vc4/data/imx477.json | 386 +++++++++++++++----- src/ipa/rpi/vc4/data/imx477_noir.json | 388 +++++++++++++++----- src/ipa/rpi/vc4/data/imx708.json | 350 +++++++++++++----- src/ipa/rpi/vc4/data/imx708_noir.json | 350 +++++++++++++----- src/ipa/rpi/vc4/data/imx708_wide.json | 350 +++++++++++++----- src/ipa/rpi/vc4/data/imx708_wide_noir.json | 350 +++++++++++++----- src/ipa/rpi/vc4/data/ov5647.json | 392 ++++++++++++++++----- 9 files changed, 2563 insertions(+), 779 deletions(-)