[PATCH v1 3/5] ipa: rpi: Add HDR support
Jacopo Mondi
jacopo.mondi at ideasonboard.com
Thu May 2 12:03:24 CEST 2024
On Thu, May 02, 2024 at 09:09:23AM GMT, Naushir Patuck wrote:
> Add support for the following HDR modes in the Raspberry Pi IPA:
> - Night mode
> - Single exposure mode
> - Multi-exposure (merged and unmerged)
>
> The algorithm is updated to expect the HDR short channel to meter
> explicitly for highlights. This means that it will not in general
> under-expose the short channel more than is actually necessary.
>
> When images don't have much saturation, it's good to detect this so
> that some of the boost we want to apply to the dark areas can be
> implemented as regular gain. This means we can then adjust the tone
> curve less, leading to less flat looking images.
>
> The impact on the HDR algorithm is then that this determines how we
> build tonemaps dynamically. The highlights are more-or-less correct
> now, so we have to build a power-type curve that gives us the
> appropriately configured targets in the lower part of the histogram.
>
> We allow the tuning file to supply the maximum spatial gain value,
> rather than the whole curve (though it can supply this if it
> wants). Some parameter defaults are tweaked to be generally better
> across the range of our cameras.
>
> Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> Reviewed-by: David Plowman <david.plowman at raspberrypi.com>
> Reviewed-by: Naushir Patuck <naush at raspberrypi.com>
> ---
> src/ipa/rpi/common/ipa_base.cpp | 78 ++-
> src/ipa/rpi/common/ipa_base.h | 7 +
These changes to the common IPA looks ok
Acked-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
The rest is your private stuff, so I trust you there ;)
> src/ipa/rpi/controller/rpi/hdr.cpp | 112 +++-
> src/ipa/rpi/controller/rpi/hdr.h | 10 +-
> src/ipa/rpi/vc4/data/imx219.json | 607 ++++++++++---------
> src/ipa/rpi/vc4/data/imx219_noir.json | 607 ++++++++++---------
> src/ipa/rpi/vc4/data/imx290.json | 15 +-
> src/ipa/rpi/vc4/data/imx296.json | 17 +-
> src/ipa/rpi/vc4/data/imx296_mono.json | 17 +-
> src/ipa/rpi/vc4/data/imx378.json | 15 +-
> src/ipa/rpi/vc4/data/imx477.json | 615 ++++++++++----------
> src/ipa/rpi/vc4/data/imx477_noir.json | 607 ++++++++++---------
> src/ipa/rpi/vc4/data/imx477_scientific.json | 15 +-
> src/ipa/rpi/vc4/data/imx477_v1.json | 15 +-
> src/ipa/rpi/vc4/data/imx519.json | 15 +-
> src/ipa/rpi/vc4/data/imx708.json | 555 +++++++++---------
> src/ipa/rpi/vc4/data/imx708_noir.json | 555 +++++++++---------
> src/ipa/rpi/vc4/data/imx708_wide.json | 555 +++++++++---------
> src/ipa/rpi/vc4/data/imx708_wide_noir.json | 555 +++++++++---------
> src/ipa/rpi/vc4/data/ov5647.json | 611 +++++++++----------
> src/ipa/rpi/vc4/data/ov5647_noir.json | 15 +-
> src/ipa/rpi/vc4/data/ov9281_mono.json | 5 +-
> src/ipa/rpi/vc4/data/se327m12.json | 15 +-
> src/ipa/rpi/vc4/data/uncalibrated.json | 5 +-
> 24 files changed, 3040 insertions(+), 2583 deletions(-)
>
> diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp
> index 3c133c55943a..149a133ab662 100644
> --- a/src/ipa/rpi/common/ipa_base.cpp
> +++ b/src/ipa/rpi/common/ipa_base.cpp
> @@ -25,7 +25,6 @@
> #include "controller/contrast_algorithm.h"
> #include "controller/denoise_algorithm.h"
> #include "controller/hdr_algorithm.h"
> -#include "controller/hdr_status.h"
> #include "controller/lux_status.h"
> #include "controller/sharpen_algorithm.h"
> #include "controller/statistics.h"
> @@ -104,9 +103,8 @@ LOG_DEFINE_CATEGORY(IPARPI)
> namespace ipa::RPi {
>
> IpaBase::IpaBase()
> - : controller_(), frameLengths_(FrameLengthsQueueSize, 0s), statsMetadataOutput_(false),
> - frameCount_(0), mistrustCount_(0), lastRunTimestamp_(0), firstStart_(true),
> - flickerState_({ 0, 0s })
> + : controller_(), frameLengths_(FrameLengthsQueueSize, 0s), stitchSwapBuffers_(false), frameCount_(0),
> + mistrustCount_(0), lastRunTimestamp_(0), firstStart_(true), flickerState_({ 0, 0s })
> {
> }
>
> @@ -299,6 +297,8 @@ void IpaBase::start(const ControlList &controls, StartResult *result)
> result->controls = std::move(ctrls);
> setCameraTimeoutValue();
> }
> + /* Make a note of this as it tells us the HDR status of the first few frames. */
> + hdrStatus_ = agcStatus.hdr;
>
> /*
> * Initialise frame counts, and decide how many frames must be hidden or
> @@ -402,11 +402,17 @@ void IpaBase::prepareIsp(const PrepareParams ¶ms)
> * sensor exposure/gain changes. So fetch it from the metadata list
> * indexed by the IPA cookie returned, and put it in the current frame
> * metadata.
> + *
> + * Note if the HDR mode has changed, as things like tonemaps may need updating.
> */
> AgcStatus agcStatus;
> + bool hdrChange = false;
> RPiController::Metadata &delayedMetadata = rpiMetadata_[params.delayContext];
> - if (!delayedMetadata.get<AgcStatus>("agc.status", agcStatus))
> + if (!delayedMetadata.get<AgcStatus>("agc.status", agcStatus)) {
> rpiMetadata.set("agc.delayed_status", agcStatus);
> + hdrChange = agcStatus.hdr.mode != hdrStatus_.mode;
> + hdrStatus_ = agcStatus.hdr;
> + }
>
> /*
> * This may overwrite the DeviceStatus using values from the sensor
> @@ -417,7 +423,7 @@ void IpaBase::prepareIsp(const PrepareParams ¶ms)
> /* Allow a 10% margin on the comparison below. */
> Duration delta = (frameTimestamp - lastRunTimestamp_) * 1.0ns;
> if (lastRunTimestamp_ && frameCount_ > dropFrameCount_ &&
> - delta < controllerMinFrameDuration * 0.9) {
> + delta < controllerMinFrameDuration * 0.9 && !hdrChange) {
> /*
> * Ensure we merge the previous frame's metadata with the current
> * frame. This will not overwrite exposure/gain values for the
> @@ -454,7 +460,7 @@ void IpaBase::prepareIsp(const PrepareParams ¶ms)
> reportMetadata(ipaContext);
>
> /* Ready to push the input buffer into the ISP. */
> - prepareIspComplete.emit(params.buffers, false);
> + prepareIspComplete.emit(params.buffers, stitchSwapBuffers_);
> }
>
> void IpaBase::processStats(const ProcessParams ¶ms)
> @@ -695,14 +701,18 @@ static const std::map<int32_t, RPiController::AfAlgorithm::AfPause> AfPauseTable
>
> static const std::map<int32_t, std::string> HdrModeTable = {
> { controls::HdrModeOff, "Off" },
> + { controls::HdrModeMultiExposureUnmerged, "MultiExposureUnmerged" },
> { controls::HdrModeMultiExposure, "MultiExposure" },
> { controls::HdrModeSingleExposure, "SingleExposure" },
> + { controls::HdrModeNight, "Night" },
> };
>
> void IpaBase::applyControls(const ControlList &controls)
> {
> using RPiController::AgcAlgorithm;
> using RPiController::AfAlgorithm;
> + using RPiController::ContrastAlgorithm;
> + using RPiController::DenoiseAlgorithm;
> using RPiController::HdrAlgorithm;
>
> /* Clear the return metadata buffer. */
> @@ -1194,9 +1204,32 @@ void IpaBase::applyControls(const ControlList &controls)
> break;
> }
>
> - if (hdr->setMode(mode->second) == 0)
> + if (hdr->setMode(mode->second) == 0) {
> agc->setActiveChannels(hdr->getChannels());
> - else
> +
> + /* We also disable adpative contrast enhancement if HDR is running. */
> + ContrastAlgorithm *contrast =
> + dynamic_cast<ContrastAlgorithm *>(controller_.getAlgorithm("contrast"));
> + if (contrast) {
> + if (mode->second == "Off")
> + contrast->restoreCe();
> + else
> + contrast->enableCe(false);
> + }
> +
> + DenoiseAlgorithm *denoise =
> + dynamic_cast<DenoiseAlgorithm *>(controller_.getAlgorithm("denoise"));
> + if (denoise) {
> + /* \todo - make the HDR mode say what denoise it wants? */
> + if (mode->second == "Night")
> + denoise->setConfig("night");
> + else if (mode->second == "SingleExposure")
> + denoise->setConfig("hdr");
> + /* MultiExposure doesn't need extra extra denoise. */
> + else
> + denoise->setConfig("normal");
> + }
> + } else
> LOG(IPARPI, Warning)
> << "HDR mode " << mode->second << " not supported";
>
> @@ -1354,12 +1387,31 @@ void IpaBase::reportMetadata(unsigned int ipaContext)
> libcameraMetadata_.set(controls::AfPauseState, p);
> }
>
> - const HdrStatus *hdrStatus = rpiMetadata.getLocked<HdrStatus>("hdr.status");
> - if (hdrStatus) {
> - if (hdrStatus->channel == "short")
> + /*
> + * THe HDR algorithm sets the HDR channel into the agc.status at the time that those
> + * AGC parameters were calculated several frames ago, so it comes back to us now in
> + * the delayed_status. If this frame is too soon after a mode switch for the
> + * delayed_status to be available, we use the HDR status that came out of the
> + * switchMode call.
> + */
> + const AgcStatus *agcStatus = rpiMetadata.getLocked<AgcStatus>("agc.delayed_status");
> + const HdrStatus &hdrStatus = agcStatus ? agcStatus->hdr : hdrStatus_;
> + if (!hdrStatus.mode.empty() && hdrStatus.mode != "Off") {
> + int32_t hdrMode = controls::HdrModeOff;
> + for (auto const &[mode, name] : HdrModeTable) {
> + if (hdrStatus.mode == name) {
> + hdrMode = mode;
> + break;
> + }
> + }
> + libcameraMetadata_.set(controls::HdrMode, hdrMode);
> +
> + if (hdrStatus.channel == "short")
> libcameraMetadata_.set(controls::HdrChannel, controls::HdrChannelShort);
> - else if (hdrStatus->channel == "long")
> + else if (hdrStatus.channel == "long")
> libcameraMetadata_.set(controls::HdrChannel, controls::HdrChannelLong);
> + else if (hdrStatus.channel == "medium")
> + libcameraMetadata_.set(controls::HdrChannel, controls::HdrChannelMedium);
> else
> libcameraMetadata_.set(controls::HdrChannel, controls::HdrChannelNone);
> }
> diff --git a/src/ipa/rpi/common/ipa_base.h b/src/ipa/rpi/common/ipa_base.h
> index 4db4411eed7c..512d7e8fe778 100644
> --- a/src/ipa/rpi/common/ipa_base.h
> +++ b/src/ipa/rpi/common/ipa_base.h
> @@ -22,6 +22,7 @@
> #include "controller/agc_status.h"
> #include "controller/camera_mode.h"
> #include "controller/controller.h"
> +#include "controller/hdr_status.h"
> #include "controller/metadata.h"
>
> namespace libcamera {
> @@ -64,6 +65,12 @@ protected:
> ControlList libcameraMetadata_;
> bool statsMetadataOutput_;
>
> + /* Remember the HDR status after a mode switch. */
> + HdrStatus hdrStatus_;
> +
> + /* Whether the stitch block (if available) needs to swap buffers. */
> + bool stitchSwapBuffers_;
> +
> private:
> /* Number of metadata objects available in the context list. */
> static constexpr unsigned int numMetadataContexts = 16;
> diff --git a/src/ipa/rpi/controller/rpi/hdr.cpp b/src/ipa/rpi/controller/rpi/hdr.cpp
> index fb580548d068..28c2280a0fe2 100644
> --- a/src/ipa/rpi/controller/rpi/hdr.cpp
> +++ b/src/ipa/rpi/controller/rpi/hdr.cpp
> @@ -7,6 +7,8 @@
>
> #include "hdr.h"
>
> +#include <cmath>
> +
> #include <libcamera/base/log.h>
>
> #include "../agc_status.h"
> @@ -39,25 +41,52 @@ void HdrConfig::read(const libcamera::YamlObject ¶ms, const std::string &mod
> channelMap[v.get<unsigned int>().value()] = k;
>
> /* Lens shading related parameters. */
> - if (params.contains("spatial_gain")) {
> - spatialGain.read(params["spatial_gain"]);
> - diffusion = params["diffusion"].get<unsigned int>(3);
> - /* Clip to an arbitrary limit just to stop typos from killing the system! */
> - const unsigned int MAX_DIFFUSION = 15;
> - if (diffusion > MAX_DIFFUSION) {
> - diffusion = MAX_DIFFUSION;
> - LOG(RPiHdr, Warning) << "Diffusion value clipped to " << MAX_DIFFUSION;
> - }
> + if (params.contains("spatial_gain_curve")) {
> + spatialGainCurve.read(params["spatial_gain_curve"]);
> + } else if (params.contains("spatial_gain")) {
> + double spatialGain = params["spatial_gain"].get<double>(2.0);
> + spatialGainCurve.append(0.0, spatialGain);
> + spatialGainCurve.append(0.01, spatialGain);
> + spatialGainCurve.append(0.06, 1.0); /* maybe make this programmable? */
> + spatialGainCurve.append(1.0, 1.0);
> + }
> +
> + diffusion = params["diffusion"].get<unsigned int>(3);
> + /* Clip to an arbitrary limit just to stop typos from killing the system! */
> + const unsigned int MAX_DIFFUSION = 15;
> + if (diffusion > MAX_DIFFUSION) {
> + diffusion = MAX_DIFFUSION;
> + LOG(RPiHdr, Warning) << "Diffusion value clipped to " << MAX_DIFFUSION;
> }
>
> /* Read any tonemap parameters. */
> tonemapEnable = params["tonemap_enable"].get<int>(0);
> - detailConstant = params["detail_constant"].get<uint16_t>(50);
> - detailSlope = params["detail_slope"].get<double>(8.0);
> + detailConstant = params["detail_constant"].get<uint16_t>(0);
> + detailSlope = params["detail_slope"].get<double>(0.0);
> iirStrength = params["iir_strength"].get<double>(8.0);
> strength = params["strength"].get<double>(1.5);
> if (tonemapEnable)
> tonemap.read(params["tonemap"]);
> + speed = params["speed"].get<double>(1.0);
> + if (params.contains("hi_quantile_targets")) {
> + hiQuantileTargets = params["hi_quantile_targets"].getList<double>().value();
> + if (hiQuantileTargets.empty() || hiQuantileTargets.size() % 2)
> + LOG(RPiHdr, Fatal) << "hi_quantile_targets much be even and non-empty";
> + } else
> + hiQuantileTargets = { 0.95, 0.65, 0.5, 0.28, 0.3, 0.25 };
> + hiQuantileMaxGain = params["hi_quantile_max_gain"].get<double>(1.6);
> + if (params.contains("quantile_targets")) {
> + quantileTargets = params["quantile_targets"].getList<double>().value();
> + if (quantileTargets.empty() || quantileTargets.size() % 2)
> + LOG(RPiHdr, Fatal) << "quantile_targets much be even and non-empty";
> + } else
> + quantileTargets = { 0.2, 0.03, 1.0, 0.15 };
> + powerMin = params["power_min"].get<double>(0.65);
> + powerMax = params["power_max"].get<double>(1.0);
> + if (params.contains("contrast_adjustments")) {
> + contrastAdjustments = params["contrast_adjustments"].getList<double>().value();
> + } else
> + contrastAdjustments = { 0.5, 0.75 };
>
> /* Read any stitch parameters. */
> stitchEnable = params["stitch_enable"].get<int>(0);
> @@ -159,7 +188,7 @@ void Hdr::prepare(Metadata *imageMetadata)
> }
>
> HdrConfig &config = it->second;
> - if (config.spatialGain.empty())
> + if (config.spatialGainCurve.empty())
> return;
>
> AlscStatus alscStatus{}; /* some compilers seem to require the braces */
> @@ -205,10 +234,61 @@ bool Hdr::updateTonemap([[maybe_unused]] StatisticsPtr &stats, HdrConfig &config
> return true;
>
> /*
> - * If we wanted to build or adjust tonemaps dynamically, this would be the place
> - * to do it. But for now we seem to be getting by without.
> + * Create a tonemap dynamically. We have three ingredients.
> + *
> + * 1. We have a list of "hi quantiles" and "targets". We use these to judge if
> + * the image does seem to be reasonably saturated. If it isn't, we calculate
> + * a gain that we will feed as a linear factor into the tonemap generation.
> + * This prevents unsaturated images from beoming quite so "flat".
> + *
> + * 2. We have a list of quantile/target pairs for the bottom of the histogram.
> + * We use these to calculate how much gain we must apply to the bottom of the
> + * tonemap. We apply this gain as a power curve so as not to blow out the top
> + * end.
> + *
> + * 3. Finally, when we generate the tonemap, we have some contrast adjustments
> + * for the bottom because we know that power curves can start quite steeply and
> + * cause a washed-out look.
> */
>
> + /* Compute the linear gain from the headroom for saturation at the top. */
> + double gain = 10; /* arbitrary, but hiQuantileMaxGain will clamp it later */
> + for (unsigned int i = 0; i < config.hiQuantileTargets.size(); i += 2) {
> + double quantile = config.hiQuantileTargets[i];
> + double target = config.hiQuantileTargets[i + 1];
> + double value = stats->yHist.interQuantileMean(quantile, 1.0) / 1024.0;
> + double newGain = target / (value + 0.01);
> + gain = std::min(gain, newGain);
> + }
> + gain = std::clamp(gain, 1.0, config.hiQuantileMaxGain);
> +
> + /* Compute the power curve from the amount of gain needed at the bottom. */
> + double min_power = 2; /* arbitrary, but config.powerMax will clamp it later */
> + for (unsigned int i = 0; i < config.quantileTargets.size(); i += 2) {
> + double quantile = config.quantileTargets[i];
> + double target = config.quantileTargets[i + 1];
> + double value = stats->yHist.interQuantileMean(0, quantile) / 1024.0;
> + value = std::min(value * gain, 1.0);
> + double power = log(target + 1e-6) / log(value + 1e-6);
> + min_power = std::min(min_power, power);
> + }
> + double power = std::clamp(min_power, config.powerMin, config.powerMax);
> +
> + /* Generate the tonemap, including the contrast adjustment factors. */
> + Pwl tonemap;
> + tonemap.append(0, 0);
> + for (unsigned int i = 0; i <= 6; i++) {
> + double x = 1 << (i + 9); /* x loops from 512 to 32768 inclusive */
> + double y = pow(std::min(x * gain, 65535.0) / 65536.0, power) * 65536;
> + if (i < config.contrastAdjustments.size())
> + y *= config.contrastAdjustments[i];
> + if (!tonemap_.empty())
> + y = y * config.speed + tonemap_.eval(x) * (1 - config.speed);
> + tonemap.append(x, y);
> + }
> + tonemap.append(65535, 65535);
> + tonemap_ = tonemap;
> +
> return true;
> }
>
> @@ -255,7 +335,7 @@ static void averageGains(std::vector<double> &src, std::vector<double> &dst, con
>
> void Hdr::updateGains(StatisticsPtr &stats, HdrConfig &config)
> {
> - if (config.spatialGain.empty())
> + if (config.spatialGainCurve.empty())
> return;
>
> /* When alternating exposures, only compute these gains for the short frame. */
> @@ -270,7 +350,7 @@ void Hdr::updateGains(StatisticsPtr &stats, HdrConfig &config)
> double g = region.val.gSum / counted;
> double b = region.val.bSum / counted;
> double brightness = std::max({ r, g, b }) / 65535;
> - gains_[0][i] = config.spatialGain.eval(brightness);
> + gains_[0][i] = config.spatialGainCurve.eval(brightness);
> }
>
> /* Ping-pong between the two gains_ buffers. */
> diff --git a/src/ipa/rpi/controller/rpi/hdr.h b/src/ipa/rpi/controller/rpi/hdr.h
> index 980aa3d1850d..ac855b223d97 100644
> --- a/src/ipa/rpi/controller/rpi/hdr.h
> +++ b/src/ipa/rpi/controller/rpi/hdr.h
> @@ -26,7 +26,7 @@ struct HdrConfig {
> std::map<unsigned int, std::string> channelMap;
>
> /* Lens shading related parameters. */
> - Pwl spatialGain; /* Brightness to gain curve for different image regions. */
> + Pwl spatialGainCurve; /* Brightness to gain curve for different image regions. */
> unsigned int diffusion; /* How much to diffuse the gain spatially. */
>
> /* Tonemap related parameters. */
> @@ -36,6 +36,14 @@ struct HdrConfig {
> double iirStrength;
> double strength;
> Pwl tonemap;
> + /* These relate to adaptive tonemap calculation. */
> + double speed;
> + std::vector<double> hiQuantileTargets; /* quantiles to check for unsaturated images */
> + double hiQuantileMaxGain; /* the max gain we'll apply when unsaturated */
> + std::vector<double> quantileTargets; /* target values for histogram quantiles */
> + double powerMin; /* minimum tonemap power */
> + double powerMax; /* maximum tonemap power */
> + std::vector<double> contrastAdjustments; /* any contrast adjustment factors */
>
> /* Stitch related parameters. */
> bool stitchEnable;
> diff --git a/src/ipa/rpi/vc4/data/imx219.json b/src/ipa/rpi/vc4/data/imx219.json
> index 54defc0b8ab8..a020b12f553f 100644
> --- a/src/ipa/rpi/vc4/data/imx219.json
> +++ b/src/ipa/rpi/vc4/data/imx219.json
> @@ -131,282 +131,308 @@
> {
> "rpi.agc":
> {
> - "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
> - ]
> - }
> - ]
> - }
> + "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":
> @@ -651,20 +677,19 @@
> {
> "rpi.sharpen": { }
> },
> - {
> - "rpi.hdr":
> - {
> - "MultiExposure":
> - {
> - "cadence": [ 1, 2 ],
> - "channel_map": { "short": 1, "long": 2 }
> - },
> - "SingleExposure":
> - {
> - "cadence": [ 1 ],
> - "channel_map": { "short": 1 }
> - }
> - }
> - }
> + {
> + "rpi.hdr":
> + {
> + "MultiExposureUnmerged":
> + {
> + "cadence": [ 1, 2 ],
> + "channel_map":
> + {
> + "short": 1,
> + "long": 2
> + }
> + }
> + }
> + }
> ]
> }
> diff --git a/src/ipa/rpi/vc4/data/imx219_noir.json b/src/ipa/rpi/vc4/data/imx219_noir.json
> index e823a90dffa8..d8bc963962a4 100644
> --- a/src/ipa/rpi/vc4/data/imx219_noir.json
> +++ b/src/ipa/rpi/vc4/data/imx219_noir.json
> @@ -47,282 +47,308 @@
> {
> "rpi.agc":
> {
> - "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
> - ]
> - }
> - ]
> - }
> + "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":
> @@ -585,20 +611,19 @@
> {
> "rpi.sharpen": { }
> },
> - {
> - "rpi.hdr":
> - {
> - "MultiExposure":
> - {
> - "cadence": [ 1, 2 ],
> - "channel_map": { "short": 1, "long": 2 }
> - },
> - "SingleExposure":
> - {
> - "cadence": [ 1 ],
> - "channel_map": { "short": 1 }
> - }
> - }
> - }
> + {
> + "rpi.hdr":
> + {
> + "MultiExposureUnmerged":
> + {
> + "cadence": [ 1, 2 ],
> + "channel_map":
> + {
> + "short": 1,
> + "long": 2
> + }
> + }
> + }
> + }
> ]
> }
> diff --git a/src/ipa/rpi/vc4/data/imx290.json b/src/ipa/rpi/vc4/data/imx290.json
> index 8a7cadba38a2..8f41bf519644 100644
> --- a/src/ipa/rpi/vc4/data/imx290.json
> +++ b/src/ipa/rpi/vc4/data/imx290.json
> @@ -52,15 +52,24 @@
> {
> "matrix":
> {
> - "weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
> + "weights":
> + [
> + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> + ]
> },
> "centre-weighted":
> {
> - "weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]
> + "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 ]
> + "weights":
> + [
> + 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
> + ]
> }
> },
> "exposure_modes":
> diff --git a/src/ipa/rpi/vc4/data/imx296.json b/src/ipa/rpi/vc4/data/imx296.json
> index 7621f759fc3f..8f24ce5b819a 100644
> --- a/src/ipa/rpi/vc4/data/imx296.json
> +++ b/src/ipa/rpi/vc4/data/imx296.json
> @@ -135,15 +135,24 @@
> {
> "centre-weighted":
> {
> - "weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]
> + "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 ]
> + "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 ]
> + "weights":
> + [
> + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> + ]
> }
> },
> "exposure_modes":
> @@ -431,4 +440,4 @@
> }
> }
> ]
> -}
> +}
> \ No newline at end of file
> diff --git a/src/ipa/rpi/vc4/data/imx296_mono.json b/src/ipa/rpi/vc4/data/imx296_mono.json
> index d4140c81bf0d..fe331569938e 100644
> --- a/src/ipa/rpi/vc4/data/imx296_mono.json
> +++ b/src/ipa/rpi/vc4/data/imx296_mono.json
> @@ -38,15 +38,24 @@
> {
> "centre-weighted":
> {
> - "weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]
> + "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 ]
> + "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 ]
> + "weights":
> + [
> + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> + ]
> }
> },
> "exposure_modes":
> @@ -228,4 +237,4 @@
> }
> }
> ]
> -}
> +}
> \ No newline at end of file
> diff --git a/src/ipa/rpi/vc4/data/imx378.json b/src/ipa/rpi/vc4/data/imx378.json
> index f7b68011b634..363b47e19888 100644
> --- a/src/ipa/rpi/vc4/data/imx378.json
> +++ b/src/ipa/rpi/vc4/data/imx378.json
> @@ -133,15 +133,24 @@
> {
> "centre-weighted":
> {
> - "weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]
> + "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 ]
> + "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 ]
> + "weights":
> + [
> + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> + ]
> }
> },
> "exposure_modes":
> diff --git a/src/ipa/rpi/vc4/data/imx477.json b/src/ipa/rpi/vc4/data/imx477.json
> index 853bfa67a9b7..fa25ee86004e 100644
> --- a/src/ipa/rpi/vc4/data/imx477.json
> +++ b/src/ipa/rpi/vc4/data/imx477.json
> @@ -115,16 +115,16 @@
> "ct_curve":
> [
> 2360.0, 0.6009, 0.3093,
> - 2848.0, 0.5071, 0.4000,
> + 2848.0, 0.5071, 0.4,
> 2903.0, 0.4905, 0.4392,
> 3628.0, 0.4261, 0.5564,
> 3643.0, 0.4228, 0.5623,
> - 4660.0, 0.3529, 0.6800,
> - 5579.0, 0.3227, 0.7000,
> - 6125.0, 0.3129, 0.7100,
> - 6671.0, 0.3065, 0.7200,
> - 7217.0, 0.3014, 0.7300,
> - 7763.0, 0.2950, 0.7400,
> + 4660.0, 0.3529, 0.68,
> + 5579.0, 0.3227, 0.7,
> + 6125.0, 0.3129, 0.71,
> + 6671.0, 0.3065, 0.72,
> + 7217.0, 0.3014, 0.73,
> + 7763.0, 0.295, 0.74,
> 9505.0, 0.2524, 0.7856
> ],
> "sensitivity_r": 1.05,
> @@ -136,282 +136,308 @@
> {
> "rpi.agc":
> {
> - "channels":
> - [
> + "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
> - ]
> - },
> + "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": 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
> - ]
> - }
> - ]
> - }
> + "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":
> @@ -656,20 +682,19 @@
> {
> "rpi.sharpen": { }
> },
> - {
> - "rpi.hdr":
> - {
> - "MultiExposure":
> - {
> - "cadence": [ 1, 2 ],
> - "channel_map": { "short": 1, "long": 2 }
> - },
> - "SingleExposure":
> - {
> - "cadence": [ 1 ],
> - "channel_map": { "short": 1 }
> - }
> - }
> - }
> + {
> + "rpi.hdr":
> + {
> + "MultiExposureUnmerged":
> + {
> + "cadence": [ 1, 2 ],
> + "channel_map":
> + {
> + "short": 1,
> + "long": 2
> + }
> + }
> + }
> + }
> ]
> }
> \ No newline at end of file
> diff --git a/src/ipa/rpi/vc4/data/imx477_noir.json b/src/ipa/rpi/vc4/data/imx477_noir.json
> index 143e20bd92d8..472f33fe1556 100644
> --- a/src/ipa/rpi/vc4/data/imx477_noir.json
> +++ b/src/ipa/rpi/vc4/data/imx477_noir.json
> @@ -47,282 +47,308 @@
> {
> "rpi.agc":
> {
> - "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
> - ]
> - }
> - ]
> - }
> + "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":
> @@ -612,20 +638,19 @@
> {
> "rpi.sharpen": { }
> },
> - {
> - "rpi.hdr":
> - {
> - "MultiExposure":
> - {
> - "cadence": [ 1, 2 ],
> - "channel_map": { "short": 1, "long": 2 }
> - },
> - "SingleExposure":
> - {
> - "cadence": [ 1 ],
> - "channel_map": { "short": 1 }
> - }
> - }
> - }
> + {
> + "rpi.hdr":
> + {
> + "MultiExposureUnmerged":
> + {
> + "cadence": [ 1, 2 ],
> + "channel_map":
> + {
> + "short": 1,
> + "long": 2
> + }
> + }
> + }
> + }
> ]
> }
> diff --git a/src/ipa/rpi/vc4/data/imx477_scientific.json b/src/ipa/rpi/vc4/data/imx477_scientific.json
> index 26c692fdbab9..9dc32eb1525c 100644
> --- a/src/ipa/rpi/vc4/data/imx477_scientific.json
> +++ b/src/ipa/rpi/vc4/data/imx477_scientific.json
> @@ -148,15 +148,24 @@
> {
> "centre-weighted":
> {
> - "weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]
> + "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 ]
> + "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 ]
> + "weights":
> + [
> + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> + ]
> }
> },
> "exposure_modes":
> diff --git a/src/ipa/rpi/vc4/data/imx477_v1.json b/src/ipa/rpi/vc4/data/imx477_v1.json
> index d64020091efa..55e4adc1961d 100644
> --- a/src/ipa/rpi/vc4/data/imx477_v1.json
> +++ b/src/ipa/rpi/vc4/data/imx477_v1.json
> @@ -138,15 +138,24 @@
> {
> "centre-weighted":
> {
> - "weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]
> + "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 ]
> + "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 ]
> + "weights":
> + [
> + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> + ]
> }
> },
> "exposure_modes":
> diff --git a/src/ipa/rpi/vc4/data/imx519.json b/src/ipa/rpi/vc4/data/imx519.json
> index 1b0a77476aab..ce19425683a6 100644
> --- a/src/ipa/rpi/vc4/data/imx519.json
> +++ b/src/ipa/rpi/vc4/data/imx519.json
> @@ -133,15 +133,24 @@
> {
> "centre-weighted":
> {
> - "weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]
> + "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 ]
> + "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 ]
> + "weights":
> + [
> + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> + ]
> }
> },
> "exposure_modes":
> diff --git a/src/ipa/rpi/vc4/data/imx708.json b/src/ipa/rpi/vc4/data/imx708.json
> index 26aafc95c584..4de6f0796fd0 100644
> --- a/src/ipa/rpi/vc4/data/imx708.json
> +++ b/src/ipa/rpi/vc4/data/imx708.json
> @@ -139,255 +139,281 @@
> {
> "rpi.agc":
> {
> - "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
> - }
> - ]
> - }
> + "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":
> @@ -627,20 +653,19 @@
> "map": [ 0.0, 445, 15.0, 925 ]
> }
> },
> - {
> - "rpi.hdr":
> - {
> - "MultiExposure":
> - {
> - "cadence": [ 1, 2 ],
> - "channel_map": { "short": 1, "long": 2 }
> - },
> - "SingleExposure":
> - {
> - "cadence": [ 1 ],
> - "channel_map": { "short": 1 }
> - }
> - }
> - }
> + {
> + "rpi.hdr":
> + {
> + "MultiExposureUnmerged":
> + {
> + "cadence": [ 1, 2 ],
> + "channel_map":
> + {
> + "short": 1,
> + "long": 2
> + }
> + }
> + }
> + }
> ]
> -}
> +}
> \ No newline at end of file
> diff --git a/src/ipa/rpi/vc4/data/imx708_noir.json b/src/ipa/rpi/vc4/data/imx708_noir.json
> index 8259ca4d0411..7b7ee874f66a 100644
> --- a/src/ipa/rpi/vc4/data/imx708_noir.json
> +++ b/src/ipa/rpi/vc4/data/imx708_noir.json
> @@ -139,255 +139,281 @@
> {
> "rpi.agc":
> {
> - "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
> - }
> - ]
> - }
> + "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":
> @@ -726,20 +752,19 @@
> "map": [ 0.0, 445, 15.0, 925 ]
> }
> },
> - {
> - "rpi.hdr":
> - {
> - "MultiExposure":
> - {
> - "cadence": [ 1, 2 ],
> - "channel_map": { "short": 1, "long": 2 }
> - },
> - "SingleExposure":
> - {
> - "cadence": [ 1 ],
> - "channel_map": { "short": 1 }
> - }
> - }
> - }
> + {
> + "rpi.hdr":
> + {
> + "MultiExposureUnmerged":
> + {
> + "cadence": [ 1, 2 ],
> + "channel_map":
> + {
> + "short": 1,
> + "long": 2
> + }
> + }
> + }
> + }
> ]
> -}
> +}
> \ No newline at end of file
> diff --git a/src/ipa/rpi/vc4/data/imx708_wide.json b/src/ipa/rpi/vc4/data/imx708_wide.json
> index 0f846ea29393..6f45aafc0997 100644
> --- a/src/ipa/rpi/vc4/data/imx708_wide.json
> +++ b/src/ipa/rpi/vc4/data/imx708_wide.json
> @@ -129,255 +129,281 @@
> {
> "rpi.agc":
> {
> - "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
> - }
> - ]
> - }
> + "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":
> @@ -638,20 +664,19 @@
> "map": [ 0.0, 420, 35.0, 920 ]
> }
> },
> - {
> - "rpi.hdr":
> - {
> - "MultiExposure":
> - {
> - "cadence": [ 1, 2 ],
> - "channel_map": { "short": 1, "long": 2 }
> - },
> - "SingleExposure":
> - {
> - "cadence": [ 1 ],
> - "channel_map": { "short": 1 }
> - }
> - }
> - }
> + {
> + "rpi.hdr":
> + {
> + "MultiExposureUnmerged":
> + {
> + "cadence": [ 1, 2 ],
> + "channel_map":
> + {
> + "short": 1,
> + "long": 2
> + }
> + }
> + }
> + }
> ]
> -}
> +}
> \ No newline at end of file
> diff --git a/src/ipa/rpi/vc4/data/imx708_wide_noir.json b/src/ipa/rpi/vc4/data/imx708_wide_noir.json
> index f12ddbb61fcd..b9a5227e1acc 100644
> --- a/src/ipa/rpi/vc4/data/imx708_wide_noir.json
> +++ b/src/ipa/rpi/vc4/data/imx708_wide_noir.json
> @@ -129,255 +129,281 @@
> {
> "rpi.agc":
> {
> - "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
> - }
> - ]
> - }
> + "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":
> @@ -629,20 +655,19 @@
> "map": [ 0.0, 420, 35.0, 920 ]
> }
> },
> - {
> - "rpi.hdr":
> - {
> - "MultiExposure":
> - {
> - "cadence": [ 1, 2 ],
> - "channel_map": { "short": 1, "long": 2 }
> - },
> - "SingleExposure":
> - {
> - "cadence": [ 1 ],
> - "channel_map": { "short": 1 }
> - }
> - }
> - }
> + {
> + "rpi.hdr":
> + {
> + "MultiExposureUnmerged":
> + {
> + "cadence": [ 1, 2 ],
> + "channel_map":
> + {
> + "short": 1,
> + "long": 2
> + }
> + }
> + }
> + }
> ]
> -}
> +}
> \ No newline at end of file
> diff --git a/src/ipa/rpi/vc4/data/ov5647.json b/src/ipa/rpi/vc4/data/ov5647.json
> index 4def9ffc2dcb..40c6059c862b 100644
> --- a/src/ipa/rpi/vc4/data/ov5647.json
> +++ b/src/ipa/rpi/vc4/data/ov5647.json
> @@ -131,285 +131,309 @@
> {
> "rpi.agc":
> {
> - "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
> - }
> - ]
> - }
> + "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": 1.25,
> + "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,
> + "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":
> @@ -654,20 +678,19 @@
> {
> "rpi.sharpen": { }
> },
> - {
> - "rpi.hdr":
> - {
> - "MultiExposure":
> - {
> - "cadence": [ 1, 2 ],
> - "channel_map": { "short": 1, "long": 2 }
> - },
> - "SingleExposure":
> - {
> - "cadence": [ 1 ],
> - "channel_map": { "short": 1 }
> - }
> - }
> - }
> + {
> + "rpi.hdr":
> + {
> + "MultiExposureUnmerged":
> + {
> + "cadence": [ 1, 2 ],
> + "channel_map":
> + {
> + "short": 1,
> + "long": 2
> + }
> + }
> + }
> + }
> ]
> }
> diff --git a/src/ipa/rpi/vc4/data/ov5647_noir.json b/src/ipa/rpi/vc4/data/ov5647_noir.json
> index a6c6722f12a6..488b7119b17c 100644
> --- a/src/ipa/rpi/vc4/data/ov5647_noir.json
> +++ b/src/ipa/rpi/vc4/data/ov5647_noir.json
> @@ -51,15 +51,24 @@
> {
> "centre-weighted":
> {
> - "weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]
> + "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 ]
> + "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 ]
> + "weights":
> + [
> + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> + ]
> }
> },
> "exposure_modes":
> diff --git a/src/ipa/rpi/vc4/data/ov9281_mono.json b/src/ipa/rpi/vc4/data/ov9281_mono.json
> index 2b7292ec7e20..a9d05a01b53f 100644
> --- a/src/ipa/rpi/vc4/data/ov9281_mono.json
> +++ b/src/ipa/rpi/vc4/data/ov9281_mono.json
> @@ -35,7 +35,10 @@
> {
> "centre-weighted":
> {
> - "weights": [ 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]
> + "weights":
> + [
> + 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
> + ]
> }
> },
> "exposure_modes":
> diff --git a/src/ipa/rpi/vc4/data/se327m12.json b/src/ipa/rpi/vc4/data/se327m12.json
> index 8552ed92bce6..948169db2419 100644
> --- a/src/ipa/rpi/vc4/data/se327m12.json
> +++ b/src/ipa/rpi/vc4/data/se327m12.json
> @@ -133,15 +133,24 @@
> {
> "centre-weighted":
> {
> - "weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]
> + "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 ]
> + "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 ]
> + "weights":
> + [
> + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> + ]
> }
> },
> "exposure_modes":
> diff --git a/src/ipa/rpi/vc4/data/uncalibrated.json b/src/ipa/rpi/vc4/data/uncalibrated.json
> index 7654defa6dfe..cdc56b323c2e 100644
> --- a/src/ipa/rpi/vc4/data/uncalibrated.json
> +++ b/src/ipa/rpi/vc4/data/uncalibrated.json
> @@ -22,7 +22,10 @@
> {
> "centre-weighted":
> {
> - "weights": [ 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ]
> + "weights":
> + [
> + 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
> + ]
> }
> },
> "exposure_modes":
> --
> 2.34.1
>
More information about the libcamera-devel
mailing list