[libcamera-devel] [PATCH 2/2] ipa: rpi: vc4: data: Update tuning files for HDR
David Plowman
david.plowman at raspberrypi.com
Mon Aug 21 11:35:18 CEST 2023
Hi Naush
Thanks for the review.
On Mon, 21 Aug 2023 at 10:00, Naushir Patuck <naush at 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 at 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 at 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
> >
More information about the libcamera-devel
mailing list