ipa: rpi: Add HDR support

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@raspberrypi.com>
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
Acked-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Naushir Patuck 2024-05-10 11:02:07 +01:00 committed by Kieran Bingham
parent 84ed4456fc
commit 706578ecc8
24 changed files with 3040 additions and 2583 deletions

View file

@ -25,7 +25,6 @@
#include "controller/contrast_algorithm.h" #include "controller/contrast_algorithm.h"
#include "controller/denoise_algorithm.h" #include "controller/denoise_algorithm.h"
#include "controller/hdr_algorithm.h" #include "controller/hdr_algorithm.h"
#include "controller/hdr_status.h"
#include "controller/lux_status.h" #include "controller/lux_status.h"
#include "controller/sharpen_algorithm.h" #include "controller/sharpen_algorithm.h"
#include "controller/statistics.h" #include "controller/statistics.h"
@ -104,9 +103,8 @@ LOG_DEFINE_CATEGORY(IPARPI)
namespace ipa::RPi { namespace ipa::RPi {
IpaBase::IpaBase() IpaBase::IpaBase()
: controller_(), frameLengths_(FrameLengthsQueueSize, 0s), statsMetadataOutput_(false), : controller_(), frameLengths_(FrameLengthsQueueSize, 0s), stitchSwapBuffers_(false), frameCount_(0),
frameCount_(0), mistrustCount_(0), lastRunTimestamp_(0), firstStart_(true), mistrustCount_(0), lastRunTimestamp_(0), firstStart_(true), flickerState_({ 0, 0s })
flickerState_({ 0, 0s })
{ {
} }
@ -299,6 +297,8 @@ void IpaBase::start(const ControlList &controls, StartResult *result)
result->controls = std::move(ctrls); result->controls = std::move(ctrls);
setCameraTimeoutValue(); 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 * Initialise frame counts, and decide how many frames must be hidden or
@ -402,11 +402,17 @@ void IpaBase::prepareIsp(const PrepareParams &params)
* sensor exposure/gain changes. So fetch it from the metadata list * sensor exposure/gain changes. So fetch it from the metadata list
* indexed by the IPA cookie returned, and put it in the current frame * indexed by the IPA cookie returned, and put it in the current frame
* metadata. * metadata.
*
* Note if the HDR mode has changed, as things like tonemaps may need updating.
*/ */
AgcStatus agcStatus; AgcStatus agcStatus;
bool hdrChange = false;
RPiController::Metadata &delayedMetadata = rpiMetadata_[params.delayContext]; 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); 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 * This may overwrite the DeviceStatus using values from the sensor
@ -417,7 +423,7 @@ void IpaBase::prepareIsp(const PrepareParams &params)
/* Allow a 10% margin on the comparison below. */ /* Allow a 10% margin on the comparison below. */
Duration delta = (frameTimestamp - lastRunTimestamp_) * 1.0ns; Duration delta = (frameTimestamp - lastRunTimestamp_) * 1.0ns;
if (lastRunTimestamp_ && frameCount_ > dropFrameCount_ && if (lastRunTimestamp_ && frameCount_ > dropFrameCount_ &&
delta < controllerMinFrameDuration * 0.9) { delta < controllerMinFrameDuration * 0.9 && !hdrChange) {
/* /*
* Ensure we merge the previous frame's metadata with the current * Ensure we merge the previous frame's metadata with the current
* frame. This will not overwrite exposure/gain values for the * frame. This will not overwrite exposure/gain values for the
@ -454,7 +460,7 @@ void IpaBase::prepareIsp(const PrepareParams &params)
reportMetadata(ipaContext); reportMetadata(ipaContext);
/* Ready to push the input buffer into the ISP. */ /* Ready to push the input buffer into the ISP. */
prepareIspComplete.emit(params.buffers, false); prepareIspComplete.emit(params.buffers, stitchSwapBuffers_);
} }
void IpaBase::processStats(const ProcessParams &params) void IpaBase::processStats(const ProcessParams &params)
@ -701,14 +707,18 @@ static const std::map<int32_t, RPiController::AfAlgorithm::AfPause> AfPauseTable
static const std::map<int32_t, std::string> HdrModeTable = { static const std::map<int32_t, std::string> HdrModeTable = {
{ controls::HdrModeOff, "Off" }, { controls::HdrModeOff, "Off" },
{ controls::HdrModeMultiExposureUnmerged, "MultiExposureUnmerged" },
{ controls::HdrModeMultiExposure, "MultiExposure" }, { controls::HdrModeMultiExposure, "MultiExposure" },
{ controls::HdrModeSingleExposure, "SingleExposure" }, { controls::HdrModeSingleExposure, "SingleExposure" },
{ controls::HdrModeNight, "Night" },
}; };
void IpaBase::applyControls(const ControlList &controls) void IpaBase::applyControls(const ControlList &controls)
{ {
using RPiController::AgcAlgorithm; using RPiController::AgcAlgorithm;
using RPiController::AfAlgorithm; using RPiController::AfAlgorithm;
using RPiController::ContrastAlgorithm;
using RPiController::DenoiseAlgorithm;
using RPiController::HdrAlgorithm; using RPiController::HdrAlgorithm;
/* Clear the return metadata buffer. */ /* Clear the return metadata buffer. */
@ -1200,9 +1210,32 @@ void IpaBase::applyControls(const ControlList &controls)
break; break;
} }
if (hdr->setMode(mode->second) == 0) if (hdr->setMode(mode->second) == 0) {
agc->setActiveChannels(hdr->getChannels()); 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) LOG(IPARPI, Warning)
<< "HDR mode " << mode->second << " not supported"; << "HDR mode " << mode->second << " not supported";
@ -1360,12 +1393,31 @@ void IpaBase::reportMetadata(unsigned int ipaContext)
libcameraMetadata_.set(controls::AfPauseState, p); libcameraMetadata_.set(controls::AfPauseState, p);
} }
const HdrStatus *hdrStatus = rpiMetadata.getLocked<HdrStatus>("hdr.status"); /*
if (hdrStatus) { * THe HDR algorithm sets the HDR channel into the agc.status at the time that those
if (hdrStatus->channel == "short") * 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); libcameraMetadata_.set(controls::HdrChannel, controls::HdrChannelShort);
else if (hdrStatus->channel == "long") else if (hdrStatus.channel == "long")
libcameraMetadata_.set(controls::HdrChannel, controls::HdrChannelLong); libcameraMetadata_.set(controls::HdrChannel, controls::HdrChannelLong);
else if (hdrStatus.channel == "medium")
libcameraMetadata_.set(controls::HdrChannel, controls::HdrChannelMedium);
else else
libcameraMetadata_.set(controls::HdrChannel, controls::HdrChannelNone); libcameraMetadata_.set(controls::HdrChannel, controls::HdrChannelNone);
} }

View file

@ -22,6 +22,7 @@
#include "controller/agc_status.h" #include "controller/agc_status.h"
#include "controller/camera_mode.h" #include "controller/camera_mode.h"
#include "controller/controller.h" #include "controller/controller.h"
#include "controller/hdr_status.h"
#include "controller/metadata.h" #include "controller/metadata.h"
namespace libcamera { namespace libcamera {
@ -64,6 +65,12 @@ protected:
ControlList libcameraMetadata_; ControlList libcameraMetadata_;
bool statsMetadataOutput_; 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: private:
/* Number of metadata objects available in the context list. */ /* Number of metadata objects available in the context list. */
static constexpr unsigned int numMetadataContexts = 16; static constexpr unsigned int numMetadataContexts = 16;

View file

@ -7,6 +7,8 @@
#include "hdr.h" #include "hdr.h"
#include <cmath>
#include <libcamera/base/log.h> #include <libcamera/base/log.h>
#include "../agc_status.h" #include "../agc_status.h"
@ -39,25 +41,52 @@ void HdrConfig::read(const libcamera::YamlObject &params, const std::string &mod
channelMap[v.get<unsigned int>().value()] = k; channelMap[v.get<unsigned int>().value()] = k;
/* Lens shading related parameters. */ /* Lens shading related parameters. */
if (params.contains("spatial_gain")) { if (params.contains("spatial_gain_curve")) {
spatialGain.read(params["spatial_gain"]); spatialGainCurve.read(params["spatial_gain_curve"]);
diffusion = params["diffusion"].get<unsigned int>(3); } else if (params.contains("spatial_gain")) {
/* Clip to an arbitrary limit just to stop typos from killing the system! */ double spatialGain = params["spatial_gain"].get<double>(2.0);
const unsigned int MAX_DIFFUSION = 15; spatialGainCurve.append(0.0, spatialGain);
if (diffusion > MAX_DIFFUSION) { spatialGainCurve.append(0.01, spatialGain);
diffusion = MAX_DIFFUSION; spatialGainCurve.append(0.06, 1.0); /* maybe make this programmable? */
LOG(RPiHdr, Warning) << "Diffusion value clipped to " << MAX_DIFFUSION; 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. */ /* Read any tonemap parameters. */
tonemapEnable = params["tonemap_enable"].get<int>(0); tonemapEnable = params["tonemap_enable"].get<int>(0);
detailConstant = params["detail_constant"].get<uint16_t>(50); detailConstant = params["detail_constant"].get<uint16_t>(0);
detailSlope = params["detail_slope"].get<double>(8.0); detailSlope = params["detail_slope"].get<double>(0.0);
iirStrength = params["iir_strength"].get<double>(8.0); iirStrength = params["iir_strength"].get<double>(8.0);
strength = params["strength"].get<double>(1.5); strength = params["strength"].get<double>(1.5);
if (tonemapEnable) if (tonemapEnable)
tonemap.read(params["tonemap"]); 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. */ /* Read any stitch parameters. */
stitchEnable = params["stitch_enable"].get<int>(0); stitchEnable = params["stitch_enable"].get<int>(0);
@ -159,7 +188,7 @@ void Hdr::prepare(Metadata *imageMetadata)
} }
HdrConfig &config = it->second; HdrConfig &config = it->second;
if (config.spatialGain.empty()) if (config.spatialGainCurve.empty())
return; return;
AlscStatus alscStatus{}; /* some compilers seem to require the braces */ AlscStatus alscStatus{}; /* some compilers seem to require the braces */
@ -205,10 +234,61 @@ bool Hdr::updateTonemap([[maybe_unused]] StatisticsPtr &stats, HdrConfig &config
return true; return true;
/* /*
* If we wanted to build or adjust tonemaps dynamically, this would be the place * Create a tonemap dynamically. We have three ingredients.
* to do it. But for now we seem to be getting by without. *
* 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; 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) void Hdr::updateGains(StatisticsPtr &stats, HdrConfig &config)
{ {
if (config.spatialGain.empty()) if (config.spatialGainCurve.empty())
return; return;
/* When alternating exposures, only compute these gains for the short frame. */ /* 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 g = region.val.gSum / counted;
double b = region.val.bSum / counted; double b = region.val.bSum / counted;
double brightness = std::max({ r, g, b }) / 65535; 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. */ /* Ping-pong between the two gains_ buffers. */

View file

@ -26,7 +26,7 @@ struct HdrConfig {
std::map<unsigned int, std::string> channelMap; std::map<unsigned int, std::string> channelMap;
/* Lens shading related parameters. */ /* 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. */ unsigned int diffusion; /* How much to diffuse the gain spatially. */
/* Tonemap related parameters. */ /* Tonemap related parameters. */
@ -36,6 +36,14 @@ struct HdrConfig {
double iirStrength; double iirStrength;
double strength; double strength;
Pwl tonemap; 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. */ /* Stitch related parameters. */
bool stitchEnable; bool stitchEnable;

View file

@ -131,282 +131,308 @@
{ {
"rpi.agc": "rpi.agc":
{ {
"channels": "channels": [
[ {
{ "metering_modes":
"metering_modes": {
{ "centre-weighted":
"centre-weighted": {
{ "weights":
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] [
}, 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 ] "spot":
}, {
"matrix": "weights":
{ [
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"exposure_modes": "matrix":
{ {
"normal": "weights":
{ [
"shutter": [ 100, 10000, 30000, 60000, 66666 ], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] ]
}, }
"short": },
{ "exposure_modes":
"shutter": [ 100, 5000, 10000, 20000, 33333 ], {
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] "normal":
}, {
"long": "shutter": [ 100, 10000, 30000, 60000, 66666 ],
{ "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"shutter": [ 100, 10000, 30000, 60000, 120000 ], },
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] "short":
} {
}, "shutter": [ 100, 5000, 10000, 20000, 33333 ],
"constraint_modes": "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
{ },
"normal": [ "long":
{ {
"bound": "LOWER", "shutter": [ 100, 10000, 30000, 60000, 120000 ],
"q_lo": 0.98, "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
"q_hi": 1.0, }
"y_target": },
[ "constraint_modes":
0, 0.5, {
1000, 0.5 "normal": [
] {
} "bound": "LOWER",
], "q_lo": 0.98,
"highlight": [ "q_hi": 1.0,
{ "y_target":
"bound": "LOWER", [
"q_lo": 0.98, 0, 0.5,
"q_hi": 1.0, 1000, 0.5
"y_target": ]
[ }
0, 0.5, ],
1000, 0.5 "highlight": [
] {
}, "bound": "LOWER",
{ "q_lo": 0.98,
"bound": "UPPER", "q_hi": 1.0,
"q_lo": 0.98, "y_target":
"q_hi": 1.0, [
"y_target": 0, 0.5,
[ 1000, 0.5
0, 0.8, ]
1000, 0.8 },
] {
} "bound": "UPPER",
], "q_lo": 0.98,
"shadows": [ "q_hi": 1.0,
{ "y_target":
"bound": "LOWER", [
"q_lo": 0.0, 0, 0.8,
"q_hi": 0.5, 1000, 0.8
"y_target": ]
[ }
0, 0.17, ],
1000, 0.17 "shadows": [
] {
} "bound": "LOWER",
] "q_lo": 0.0,
}, "q_hi": 0.5,
"y_target": "y_target":
[ [
0, 0.16, 0, 0.17,
1000, 0.165, 1000, 0.17
10000, 0.17 ]
] }
}, ]
{ },
"base_ev": 0.125, "y_target":
"metering_modes": [
{ 0, 0.16,
"centre-weighted": 1000, 0.165,
{ 10000, 0.17
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] ]
}, },
"spot": {
{ "base_ev": 0.125,
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] "metering_modes":
}, {
"matrix": "centre-weighted":
{ {
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] "weights":
} [
}, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"exposure_modes": ]
{ },
"normal": "spot":
{ {
"shutter": [ 100, 10000, 30000, 60000, 66666 ], "weights":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] [
}, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
"short": ]
{ },
"shutter": [ 100, 5000, 10000, 20000, 33333 ], "matrix":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] {
}, "weights":
"long": [
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"shutter": [ 100, 10000, 30000, 60000, 120000 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] }
} },
}, "exposure_modes":
"constraint_modes": {
{ "normal":
"normal": [ {
{ "shutter": [ 100, 10000, 30000, 60000, 66666 ],
"bound": "LOWER", "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"q_lo": 0.98, },
"q_hi": 1.0, "short":
"y_target": {
[ "shutter": [ 100, 5000, 10000, 20000, 33333 ],
0, 0.5, "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
1000, 0.5 },
] "long":
} {
], "shutter": [ 100, 10000, 30000, 60000, 120000 ],
"highlight": [ "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
{ }
"bound": "LOWER", },
"q_lo": 0.98, "constraint_modes":
"q_hi": 1.0, {
"y_target": "normal": [
[ {
0, 0.5, "bound": "LOWER",
1000, 0.5 "q_lo": 0.98,
] "q_hi": 1.0,
}, "y_target":
{ [
"bound": "UPPER", 0, 0.5,
"q_lo": 0.98, 1000, 0.5
"q_hi": 1.0, ]
"y_target": }
[ ],
0, 0.8, "highlight": [
1000, 0.8 {
] "bound": "LOWER",
} "q_lo": 0.98,
], "q_hi": 1.0,
"shadows": [ "y_target":
{ [
"bound": "LOWER", 0, 0.5,
"q_lo": 0.0, 1000, 0.5
"q_hi": 0.5, ]
"y_target": },
[ {
0, 0.17, "bound": "UPPER",
1000, 0.17 "q_lo": 0.98,
] "q_hi": 1.0,
} "y_target":
] [
}, 0, 0.8,
"y_target": 1000, 0.8
[ ]
0, 0.16, }
1000, 0.165, ],
10000, 0.17 "shadows": [
] {
}, "bound": "LOWER",
{ "q_lo": 0.0,
"base_ev": 1.5, "q_hi": 0.5,
"metering_modes": "y_target":
{ [
"centre-weighted": 0, 0.17,
{ 1000, 0.17
"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 ] "y_target":
}, [
"matrix": 0, 0.16,
{ 1000, 0.165,
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] 10000, 0.17
} ]
}, },
"exposure_modes": {
{ "base_ev": 1.5,
"normal": "metering_modes":
{ {
"shutter": [ 100, 10000, 30000, 60000, 66666 ], "centre-weighted":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] {
}, "weights":
"short": [
{ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"shutter": [ 100, 5000, 10000, 20000, 33333 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] },
}, "spot":
"long": {
{ "weights":
"shutter": [ 100, 10000, 30000, 60000, 120000 ], [
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"constraint_modes": "matrix":
{ {
"normal": [ "weights":
{ [
"bound": "LOWER", 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"q_lo": 0.98, ]
"q_hi": 1.0, }
"y_target": },
[ "exposure_modes":
0, 0.5, {
1000, 0.5 "normal":
] {
} "shutter": [ 100, 10000, 30000, 60000, 66666 ],
], "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"highlight": [ },
{ "short":
"bound": "LOWER", {
"q_lo": 0.98, "shutter": [ 100, 5000, 10000, 20000, 33333 ],
"q_hi": 1.0, "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"y_target": },
[ "long":
0, 0.5, {
1000, 0.5 "shutter": [ 100, 10000, 30000, 60000, 120000 ],
] "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
}, }
{ },
"bound": "UPPER", "constraint_modes":
"q_lo": 0.98, {
"q_hi": 1.0, "normal": [
"y_target": {
[ "bound": "LOWER",
0, 0.8, "q_lo": 0.98,
1000, 0.8 "q_hi": 1.0,
] "y_target":
} [
], 0, 0.5,
"shadows": [ 1000, 0.5
{ ]
"bound": "LOWER", }
"q_lo": 0.0, ],
"q_hi": 0.5, "highlight": [
"y_target": {
[ "bound": "LOWER",
0, 0.17, "q_lo": 0.98,
1000, 0.17 "q_hi": 1.0,
] "y_target":
} [
] 0, 0.5,
}, 1000, 0.5
"y_target": ]
[ },
0, 0.16, {
1000, 0.165, "bound": "UPPER",
10000, 0.17 "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": "rpi.alsc":
@ -651,20 +677,19 @@
{ {
"rpi.sharpen": { } "rpi.sharpen": { }
}, },
{ {
"rpi.hdr": "rpi.hdr":
{ {
"MultiExposure": "MultiExposureUnmerged":
{ {
"cadence": [ 1, 2 ], "cadence": [ 1, 2 ],
"channel_map": { "short": 1, "long": 2 } "channel_map":
}, {
"SingleExposure": "short": 1,
{ "long": 2
"cadence": [ 1 ], }
"channel_map": { "short": 1 } }
} }
} }
}
] ]
} }

View file

@ -47,282 +47,308 @@
{ {
"rpi.agc": "rpi.agc":
{ {
"channels": "channels": [
[ {
{ "metering_modes":
"metering_modes": {
{ "centre-weighted":
"centre-weighted": {
{ "weights":
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] [
}, 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 ] "spot":
}, {
"matrix": "weights":
{ [
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"exposure_modes": "matrix":
{ {
"normal": "weights":
{ [
"shutter": [ 100, 10000, 30000, 60000, 66666 ], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] ]
}, }
"short": },
{ "exposure_modes":
"shutter": [ 100, 5000, 10000, 20000, 33333 ], {
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] "normal":
}, {
"long": "shutter": [ 100, 10000, 30000, 60000, 66666 ],
{ "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"shutter": [ 100, 10000, 30000, 60000, 120000 ], },
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] "short":
} {
}, "shutter": [ 100, 5000, 10000, 20000, 33333 ],
"constraint_modes": "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
{ },
"normal": [ "long":
{ {
"bound": "LOWER", "shutter": [ 100, 10000, 30000, 60000, 120000 ],
"q_lo": 0.98, "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
"q_hi": 1.0, }
"y_target": },
[ "constraint_modes":
0, 0.5, {
1000, 0.5 "normal": [
] {
} "bound": "LOWER",
], "q_lo": 0.98,
"highlight": [ "q_hi": 1.0,
{ "y_target":
"bound": "LOWER", [
"q_lo": 0.98, 0, 0.5,
"q_hi": 1.0, 1000, 0.5
"y_target": ]
[ }
0, 0.5, ],
1000, 0.5 "highlight": [
] {
}, "bound": "LOWER",
{ "q_lo": 0.98,
"bound": "UPPER", "q_hi": 1.0,
"q_lo": 0.98, "y_target":
"q_hi": 1.0, [
"y_target": 0, 0.5,
[ 1000, 0.5
0, 0.8, ]
1000, 0.8 },
] {
} "bound": "UPPER",
], "q_lo": 0.98,
"shadows": [ "q_hi": 1.0,
{ "y_target":
"bound": "LOWER", [
"q_lo": 0.0, 0, 0.8,
"q_hi": 0.5, 1000, 0.8
"y_target": ]
[ }
0, 0.17, ],
1000, 0.17 "shadows": [
] {
} "bound": "LOWER",
] "q_lo": 0.0,
}, "q_hi": 0.5,
"y_target": "y_target":
[ [
0, 0.16, 0, 0.17,
1000, 0.165, 1000, 0.17
10000, 0.17 ]
] }
}, ]
{ },
"base_ev": 0.125, "y_target":
"metering_modes": [
{ 0, 0.16,
"centre-weighted": 1000, 0.165,
{ 10000, 0.17
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] ]
}, },
"spot": {
{ "base_ev": 0.125,
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] "metering_modes":
}, {
"matrix": "centre-weighted":
{ {
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] "weights":
} [
}, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"exposure_modes": ]
{ },
"normal": "spot":
{ {
"shutter": [ 100, 10000, 30000, 60000, 66666 ], "weights":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] [
}, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
"short": ]
{ },
"shutter": [ 100, 5000, 10000, 20000, 33333 ], "matrix":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] {
}, "weights":
"long": [
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"shutter": [ 100, 10000, 30000, 60000, 120000 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] }
} },
}, "exposure_modes":
"constraint_modes": {
{ "normal":
"normal": [ {
{ "shutter": [ 100, 10000, 30000, 60000, 66666 ],
"bound": "LOWER", "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"q_lo": 0.98, },
"q_hi": 1.0, "short":
"y_target": {
[ "shutter": [ 100, 5000, 10000, 20000, 33333 ],
0, 0.5, "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
1000, 0.5 },
] "long":
} {
], "shutter": [ 100, 10000, 30000, 60000, 120000 ],
"highlight": [ "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
{ }
"bound": "LOWER", },
"q_lo": 0.98, "constraint_modes":
"q_hi": 1.0, {
"y_target": "normal": [
[ {
0, 0.5, "bound": "LOWER",
1000, 0.5 "q_lo": 0.98,
] "q_hi": 1.0,
}, "y_target":
{ [
"bound": "UPPER", 0, 0.5,
"q_lo": 0.98, 1000, 0.5
"q_hi": 1.0, ]
"y_target": }
[ ],
0, 0.8, "highlight": [
1000, 0.8 {
] "bound": "LOWER",
} "q_lo": 0.98,
], "q_hi": 1.0,
"shadows": [ "y_target":
{ [
"bound": "LOWER", 0, 0.5,
"q_lo": 0.0, 1000, 0.5
"q_hi": 0.5, ]
"y_target": },
[ {
0, 0.17, "bound": "UPPER",
1000, 0.17 "q_lo": 0.98,
] "q_hi": 1.0,
} "y_target":
] [
}, 0, 0.8,
"y_target": 1000, 0.8
[ ]
0, 0.16, }
1000, 0.165, ],
10000, 0.17 "shadows": [
] {
}, "bound": "LOWER",
{ "q_lo": 0.0,
"base_ev": 1.5, "q_hi": 0.5,
"metering_modes": "y_target":
{ [
"centre-weighted": 0, 0.17,
{ 1000, 0.17
"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 ] "y_target":
}, [
"matrix": 0, 0.16,
{ 1000, 0.165,
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] 10000, 0.17
} ]
}, },
"exposure_modes": {
{ "base_ev": 1.5,
"normal": "metering_modes":
{ {
"shutter": [ 100, 10000, 30000, 60000, 66666 ], "centre-weighted":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] {
}, "weights":
"short": [
{ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"shutter": [ 100, 5000, 10000, 20000, 33333 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] },
}, "spot":
"long": {
{ "weights":
"shutter": [ 100, 10000, 30000, 60000, 120000 ], [
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"constraint_modes": "matrix":
{ {
"normal": [ "weights":
{ [
"bound": "LOWER", 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"q_lo": 0.98, ]
"q_hi": 1.0, }
"y_target": },
[ "exposure_modes":
0, 0.5, {
1000, 0.5 "normal":
] {
} "shutter": [ 100, 10000, 30000, 60000, 66666 ],
], "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"highlight": [ },
{ "short":
"bound": "LOWER", {
"q_lo": 0.98, "shutter": [ 100, 5000, 10000, 20000, 33333 ],
"q_hi": 1.0, "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"y_target": },
[ "long":
0, 0.5, {
1000, 0.5 "shutter": [ 100, 10000, 30000, 60000, 120000 ],
] "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
}, }
{ },
"bound": "UPPER", "constraint_modes":
"q_lo": 0.98, {
"q_hi": 1.0, "normal": [
"y_target": {
[ "bound": "LOWER",
0, 0.8, "q_lo": 0.98,
1000, 0.8 "q_hi": 1.0,
] "y_target":
} [
], 0, 0.5,
"shadows": [ 1000, 0.5
{ ]
"bound": "LOWER", }
"q_lo": 0.0, ],
"q_hi": 0.5, "highlight": [
"y_target": {
[ "bound": "LOWER",
0, 0.17, "q_lo": 0.98,
1000, 0.17 "q_hi": 1.0,
] "y_target":
} [
] 0, 0.5,
}, 1000, 0.5
"y_target": ]
[ },
0, 0.16, {
1000, 0.165, "bound": "UPPER",
10000, 0.17 "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": "rpi.alsc":
@ -585,20 +611,19 @@
{ {
"rpi.sharpen": { } "rpi.sharpen": { }
}, },
{ {
"rpi.hdr": "rpi.hdr":
{ {
"MultiExposure": "MultiExposureUnmerged":
{ {
"cadence": [ 1, 2 ], "cadence": [ 1, 2 ],
"channel_map": { "short": 1, "long": 2 } "channel_map":
}, {
"SingleExposure": "short": 1,
{ "long": 2
"cadence": [ 1 ], }
"channel_map": { "short": 1 } }
} }
} }
}
] ]
} }

View file

@ -52,15 +52,24 @@
{ {
"matrix": "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": "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": "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": "exposure_modes":

View file

@ -135,15 +135,24 @@
{ {
"centre-weighted": "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": "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": "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": "exposure_modes":
@ -431,4 +440,4 @@
} }
} }
] ]
} }

View file

@ -38,15 +38,24 @@
{ {
"centre-weighted": "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": "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": "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": "exposure_modes":
@ -228,4 +237,4 @@
} }
} }
] ]
} }

View file

@ -133,15 +133,24 @@
{ {
"centre-weighted": "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": "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": "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": "exposure_modes":

View file

@ -115,16 +115,16 @@
"ct_curve": "ct_curve":
[ [
2360.0, 0.6009, 0.3093, 2360.0, 0.6009, 0.3093,
2848.0, 0.5071, 0.4000, 2848.0, 0.5071, 0.4,
2903.0, 0.4905, 0.4392, 2903.0, 0.4905, 0.4392,
3628.0, 0.4261, 0.5564, 3628.0, 0.4261, 0.5564,
3643.0, 0.4228, 0.5623, 3643.0, 0.4228, 0.5623,
4660.0, 0.3529, 0.6800, 4660.0, 0.3529, 0.68,
5579.0, 0.3227, 0.7000, 5579.0, 0.3227, 0.7,
6125.0, 0.3129, 0.7100, 6125.0, 0.3129, 0.71,
6671.0, 0.3065, 0.7200, 6671.0, 0.3065, 0.72,
7217.0, 0.3014, 0.7300, 7217.0, 0.3014, 0.73,
7763.0, 0.2950, 0.7400, 7763.0, 0.295, 0.74,
9505.0, 0.2524, 0.7856 9505.0, 0.2524, 0.7856
], ],
"sensitivity_r": 1.05, "sensitivity_r": 1.05,
@ -136,282 +136,308 @@
{ {
"rpi.agc": "rpi.agc":
{ {
"channels": "channels": [
[
{ {
"metering_modes": "metering_modes":
{ {
"centre-weighted": "centre-weighted":
{ {
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] "weights":
}, [
"spot": 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
{ ]
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] },
}, "spot":
"matrix": {
{ "weights":
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] [
} 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, ]
"exposure_modes": },
{ "matrix":
"normal": {
{ "weights":
"shutter": [ 100, 10000, 30000, 60000, 66666 ], [
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
}, ]
"short": }
{ },
"shutter": [ 100, 5000, 10000, 20000, 33333 ], "exposure_modes":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] {
}, "normal":
"long": {
{ "shutter": [ 100, 10000, 30000, 60000, 66666 ],
"shutter": [ 100, 10000, 30000, 60000, 120000 ], "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] },
} "short":
}, {
"constraint_modes": "shutter": [ 100, 5000, 10000, 20000, 33333 ],
{ "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"normal": [ },
{ "long":
"bound": "LOWER", {
"q_lo": 0.98, "shutter": [ 100, 10000, 30000, 60000, 120000 ],
"q_hi": 1.0, "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
"y_target": }
[ },
0, 0.3, "constraint_modes":
1000, 0.3 {
] "normal": [
} {
], "bound": "LOWER",
"highlight": [ "q_lo": 0.98,
{ "q_hi": 1.0,
"bound": "LOWER", "y_target":
"q_lo": 0.98, [
"q_hi": 1.0, 0, 0.3,
"y_target": 1000, 0.3
[ ]
0, 0.3, }
1000, 0.3 ],
] "highlight": [
}, {
{ "bound": "LOWER",
"bound": "UPPER", "q_lo": 0.98,
"q_lo": 0.98, "q_hi": 1.0,
"q_hi": 1.0, "y_target":
"y_target": [
[ 0, 0.3,
0, 0.8, 1000, 0.3
1000, 0.8 ]
] },
} {
], "bound": "UPPER",
"shadows": [ "q_lo": 0.98,
{ "q_hi": 1.0,
"bound": "LOWER", "y_target":
"q_lo": 0.0, [
"q_hi": 0.5, 0, 0.8,
"y_target": 1000, 0.8
[ ]
0, 0.17, }
1000, 0.17 ],
] "shadows": [
} {
] "bound": "LOWER",
}, "q_lo": 0.0,
"y_target": "q_hi": 0.5,
[ "y_target":
0, 0.16, [
1000, 0.165, 0, 0.17,
10000, 0.17 1000, 0.17
] ]
}, }
]
},
"y_target":
[
0, 0.16,
1000, 0.165,
10000, 0.17
]
},
{ {
"base_ev": 0.125, "base_ev": 0.125,
"metering_modes": "metering_modes":
{ {
"centre-weighted": "centre-weighted":
{ {
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] "weights":
}, [
"spot": 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
{ ]
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] },
}, "spot":
"matrix": {
{ "weights":
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] [
} 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, ]
"exposure_modes": },
{ "matrix":
"normal": {
{ "weights":
"shutter": [ 100, 10000, 30000, 60000, 66666 ], [
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
}, ]
"short": }
{ },
"shutter": [ 100, 5000, 10000, 20000, 33333 ], "exposure_modes":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] {
}, "normal":
"long": {
{ "shutter": [ 100, 10000, 30000, 60000, 66666 ],
"shutter": [ 100, 10000, 30000, 60000, 120000 ], "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] },
} "short":
}, {
"constraint_modes": "shutter": [ 100, 5000, 10000, 20000, 33333 ],
{ "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"normal": [ },
{ "long":
"bound": "LOWER", {
"q_lo": 0.98, "shutter": [ 100, 10000, 30000, 60000, 120000 ],
"q_hi": 1.0, "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
"y_target": }
[ },
0, 0.3, "constraint_modes":
1000, 0.3 {
] "normal": [
} {
], "bound": "LOWER",
"highlight": [ "q_lo": 0.98,
{ "q_hi": 1.0,
"bound": "LOWER", "y_target":
"q_lo": 0.98, [
"q_hi": 1.0, 0, 0.3,
"y_target": 1000, 0.3
[ ]
0, 0.3, }
1000, 0.3 ],
] "highlight": [
}, {
{ "bound": "LOWER",
"bound": "UPPER", "q_lo": 0.98,
"q_lo": 0.98, "q_hi": 1.0,
"q_hi": 1.0, "y_target":
"y_target": [
[ 0, 0.3,
0, 0.8, 1000, 0.3
1000, 0.8 ]
] },
} {
], "bound": "UPPER",
"shadows": [ "q_lo": 0.98,
{ "q_hi": 1.0,
"bound": "LOWER", "y_target":
"q_lo": 0.0, [
"q_hi": 0.5, 0, 0.8,
"y_target": 1000, 0.8
[ ]
0, 0.17, }
1000, 0.17 ],
] "shadows": [
} {
] "bound": "LOWER",
}, "q_lo": 0.0,
"y_target": "q_hi": 0.5,
[ "y_target":
0, 0.16, [
1000, 0.165, 0, 0.17,
10000, 0.17 1000, 0.17
] ]
}, }
]
},
"y_target":
[
0, 0.16,
1000, 0.165,
10000, 0.17
]
},
{ {
"base_ev": 1.5, "base_ev": 1.5,
"metering_modes": "metering_modes":
{ {
"centre-weighted": "centre-weighted":
{ {
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] "weights":
}, [
"spot": 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
{ ]
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] },
}, "spot":
"matrix": {
{ "weights":
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] [
} 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, ]
"exposure_modes": },
{ "matrix":
"normal": {
{ "weights":
"shutter": [ 100, 10000, 30000, 60000, 66666 ], [
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
}, ]
"short": }
{ },
"shutter": [ 100, 5000, 10000, 20000, 33333 ], "exposure_modes":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] {
}, "normal":
"long": {
{ "shutter": [ 100, 10000, 30000, 60000, 66666 ],
"shutter": [ 100, 10000, 30000, 60000, 120000 ], "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] },
} "short":
}, {
"constraint_modes": "shutter": [ 100, 5000, 10000, 20000, 33333 ],
{ "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"normal": [ },
{ "long":
"bound": "LOWER", {
"q_lo": 0.98, "shutter": [ 100, 10000, 30000, 60000, 120000 ],
"q_hi": 1.0, "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
"y_target": }
[ },
0, 0.3, "constraint_modes":
1000, 0.3 {
] "normal": [
} {
], "bound": "LOWER",
"highlight": [ "q_lo": 0.98,
{ "q_hi": 1.0,
"bound": "LOWER", "y_target":
"q_lo": 0.98, [
"q_hi": 1.0, 0, 0.3,
"y_target": 1000, 0.3
[ ]
0, 0.3, }
1000, 0.3 ],
] "highlight": [
}, {
{ "bound": "LOWER",
"bound": "UPPER", "q_lo": 0.98,
"q_lo": 0.98, "q_hi": 1.0,
"q_hi": 1.0, "y_target":
"y_target": [
[ 0, 0.3,
0, 0.8, 1000, 0.3
1000, 0.8 ]
] },
} {
], "bound": "UPPER",
"shadows": [ "q_lo": 0.98,
{ "q_hi": 1.0,
"bound": "LOWER", "y_target":
"q_lo": 0.0, [
"q_hi": 0.5, 0, 0.8,
"y_target": 1000, 0.8
[ ]
0, 0.17, }
1000, 0.17 ],
] "shadows": [
} {
] "bound": "LOWER",
}, "q_lo": 0.0,
"y_target": "q_hi": 0.5,
[ "y_target":
0, 0.16, [
1000, 0.165, 0, 0.17,
10000, 0.17 1000, 0.17
] ]
} }
] ]
} },
"y_target":
[
0, 0.16,
1000, 0.165,
10000, 0.17
]
}
]
}
}, },
{ {
"rpi.alsc": "rpi.alsc":
@ -656,20 +682,19 @@
{ {
"rpi.sharpen": { } "rpi.sharpen": { }
}, },
{ {
"rpi.hdr": "rpi.hdr":
{ {
"MultiExposure": "MultiExposureUnmerged":
{ {
"cadence": [ 1, 2 ], "cadence": [ 1, 2 ],
"channel_map": { "short": 1, "long": 2 } "channel_map":
}, {
"SingleExposure": "short": 1,
{ "long": 2
"cadence": [ 1 ], }
"channel_map": { "short": 1 } }
} }
} }
}
] ]
} }

View file

@ -47,282 +47,308 @@
{ {
"rpi.agc": "rpi.agc":
{ {
"channels": "channels": [
[ {
{ "metering_modes":
"metering_modes": {
{ "centre-weighted":
"centre-weighted": {
{ "weights":
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] [
}, 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 ] "spot":
}, {
"matrix": "weights":
{ [
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"exposure_modes": "matrix":
{ {
"normal": "weights":
{ [
"shutter": [ 100, 10000, 30000, 60000, 66666 ], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] ]
}, }
"short": },
{ "exposure_modes":
"shutter": [ 100, 5000, 10000, 20000, 33333 ], {
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] "normal":
}, {
"long": "shutter": [ 100, 10000, 30000, 60000, 66666 ],
{ "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"shutter": [ 100, 10000, 30000, 60000, 120000 ], },
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] "short":
} {
}, "shutter": [ 100, 5000, 10000, 20000, 33333 ],
"constraint_modes": "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
{ },
"normal": [ "long":
{ {
"bound": "LOWER", "shutter": [ 100, 10000, 30000, 60000, 120000 ],
"q_lo": 0.98, "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
"q_hi": 1.0, }
"y_target": },
[ "constraint_modes":
0, 0.3, {
1000, 0.3 "normal": [
] {
} "bound": "LOWER",
], "q_lo": 0.98,
"highlight": [ "q_hi": 1.0,
{ "y_target":
"bound": "LOWER", [
"q_lo": 0.98, 0, 0.3,
"q_hi": 1.0, 1000, 0.3
"y_target": ]
[ }
0, 0.3, ],
1000, 0.3 "highlight": [
] {
}, "bound": "LOWER",
{ "q_lo": 0.98,
"bound": "UPPER", "q_hi": 1.0,
"q_lo": 0.98, "y_target":
"q_hi": 1.0, [
"y_target": 0, 0.3,
[ 1000, 0.3
0, 0.8, ]
1000, 0.8 },
] {
} "bound": "UPPER",
], "q_lo": 0.98,
"shadows": [ "q_hi": 1.0,
{ "y_target":
"bound": "LOWER", [
"q_lo": 0.0, 0, 0.8,
"q_hi": 0.5, 1000, 0.8
"y_target": ]
[ }
0, 0.17, ],
1000, 0.17 "shadows": [
] {
} "bound": "LOWER",
] "q_lo": 0.0,
}, "q_hi": 0.5,
"y_target": "y_target":
[ [
0, 0.16, 0, 0.17,
1000, 0.165, 1000, 0.17
10000, 0.17 ]
] }
}, ]
{ },
"base_ev": 0.125, "y_target":
"metering_modes": [
{ 0, 0.16,
"centre-weighted": 1000, 0.165,
{ 10000, 0.17
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] ]
}, },
"spot": {
{ "base_ev": 0.125,
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] "metering_modes":
}, {
"matrix": "centre-weighted":
{ {
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] "weights":
} [
}, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"exposure_modes": ]
{ },
"normal": "spot":
{ {
"shutter": [ 100, 10000, 30000, 60000, 66666 ], "weights":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] [
}, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
"short": ]
{ },
"shutter": [ 100, 5000, 10000, 20000, 33333 ], "matrix":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] {
}, "weights":
"long": [
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"shutter": [ 100, 10000, 30000, 60000, 120000 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] }
} },
}, "exposure_modes":
"constraint_modes": {
{ "normal":
"normal": [ {
{ "shutter": [ 100, 10000, 30000, 60000, 66666 ],
"bound": "LOWER", "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"q_lo": 0.98, },
"q_hi": 1.0, "short":
"y_target": {
[ "shutter": [ 100, 5000, 10000, 20000, 33333 ],
0, 0.3, "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
1000, 0.3 },
] "long":
} {
], "shutter": [ 100, 10000, 30000, 60000, 120000 ],
"highlight": [ "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
{ }
"bound": "LOWER", },
"q_lo": 0.98, "constraint_modes":
"q_hi": 1.0, {
"y_target": "normal": [
[ {
0, 0.3, "bound": "LOWER",
1000, 0.3 "q_lo": 0.98,
] "q_hi": 1.0,
}, "y_target":
{ [
"bound": "UPPER", 0, 0.3,
"q_lo": 0.98, 1000, 0.3
"q_hi": 1.0, ]
"y_target": }
[ ],
0, 0.8, "highlight": [
1000, 0.8 {
] "bound": "LOWER",
} "q_lo": 0.98,
], "q_hi": 1.0,
"shadows": [ "y_target":
{ [
"bound": "LOWER", 0, 0.3,
"q_lo": 0.0, 1000, 0.3
"q_hi": 0.5, ]
"y_target": },
[ {
0, 0.17, "bound": "UPPER",
1000, 0.17 "q_lo": 0.98,
] "q_hi": 1.0,
} "y_target":
] [
}, 0, 0.8,
"y_target": 1000, 0.8
[ ]
0, 0.16, }
1000, 0.165, ],
10000, 0.17 "shadows": [
] {
}, "bound": "LOWER",
{ "q_lo": 0.0,
"base_ev": 1.5, "q_hi": 0.5,
"metering_modes": "y_target":
{ [
"centre-weighted": 0, 0.17,
{ 1000, 0.17
"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 ] "y_target":
}, [
"matrix": 0, 0.16,
{ 1000, 0.165,
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] 10000, 0.17
} ]
}, },
"exposure_modes": {
{ "base_ev": 1.5,
"normal": "metering_modes":
{ {
"shutter": [ 100, 10000, 30000, 60000, 66666 ], "centre-weighted":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] {
}, "weights":
"short": [
{ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"shutter": [ 100, 5000, 10000, 20000, 33333 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] },
}, "spot":
"long": {
{ "weights":
"shutter": [ 100, 10000, 30000, 60000, 120000 ], [
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"constraint_modes": "matrix":
{ {
"normal": [ "weights":
{ [
"bound": "LOWER", 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"q_lo": 0.98, ]
"q_hi": 1.0, }
"y_target": },
[ "exposure_modes":
0, 0.3, {
1000, 0.3 "normal":
] {
} "shutter": [ 100, 10000, 30000, 60000, 66666 ],
], "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"highlight": [ },
{ "short":
"bound": "LOWER", {
"q_lo": 0.98, "shutter": [ 100, 5000, 10000, 20000, 33333 ],
"q_hi": 1.0, "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"y_target": },
[ "long":
0, 0.3, {
1000, 0.3 "shutter": [ 100, 10000, 30000, 60000, 120000 ],
] "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
}, }
{ },
"bound": "UPPER", "constraint_modes":
"q_lo": 0.98, {
"q_hi": 1.0, "normal": [
"y_target": {
[ "bound": "LOWER",
0, 0.8, "q_lo": 0.98,
1000, 0.8 "q_hi": 1.0,
] "y_target":
} [
], 0, 0.3,
"shadows": [ 1000, 0.3
{ ]
"bound": "LOWER", }
"q_lo": 0.0, ],
"q_hi": 0.5, "highlight": [
"y_target": {
[ "bound": "LOWER",
0, 0.17, "q_lo": 0.98,
1000, 0.17 "q_hi": 1.0,
] "y_target":
} [
] 0, 0.3,
}, 1000, 0.3
"y_target": ]
[ },
0, 0.16, {
1000, 0.165, "bound": "UPPER",
10000, 0.17 "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": "rpi.alsc":
@ -612,20 +638,19 @@
{ {
"rpi.sharpen": { } "rpi.sharpen": { }
}, },
{ {
"rpi.hdr": "rpi.hdr":
{ {
"MultiExposure": "MultiExposureUnmerged":
{ {
"cadence": [ 1, 2 ], "cadence": [ 1, 2 ],
"channel_map": { "short": 1, "long": 2 } "channel_map":
}, {
"SingleExposure": "short": 1,
{ "long": 2
"cadence": [ 1 ], }
"channel_map": { "short": 1 } }
} }
} }
}
] ]
} }

View file

@ -148,15 +148,24 @@
{ {
"centre-weighted": "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": "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": "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": "exposure_modes":

View file

@ -138,15 +138,24 @@
{ {
"centre-weighted": "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": "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": "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": "exposure_modes":

View file

@ -133,15 +133,24 @@
{ {
"centre-weighted": "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": "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": "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": "exposure_modes":

View file

@ -139,255 +139,281 @@
{ {
"rpi.agc": "rpi.agc":
{ {
"channels": "channels": [
[ {
{ "metering_modes":
"metering_modes": {
{ "centre-weighted":
"centre-weighted": {
{ "weights":
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] [
}, 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 ] "spot":
}, {
"matrix": "weights":
{ [
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"exposure_modes": "matrix":
{ {
"normal": "weights":
{ [
"shutter": [ 100, 15000, 30000, 60000, 120000 ], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] ]
}, }
"short": },
{ "exposure_modes":
"shutter": [ 100, 5000, 10000, 20000, 120000 ], {
"gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] "normal":
}, {
"long": "shutter": [ 100, 15000, 30000, 60000, 120000 ],
{ "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ]
"shutter": [ 1000, 30000, 60000, 90000, 120000 ], },
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] "short":
} {
}, "shutter": [ 100, 5000, 10000, 20000, 120000 ],
"constraint_modes": "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
{ },
"normal": [ "long":
{ {
"bound": "LOWER", "shutter": [ 1000, 30000, 60000, 90000, 120000 ],
"q_lo": 0.98, "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
"q_hi": 1.0, }
"y_target": },
[ "constraint_modes":
0, 0.2, {
1000, 0.2 "normal": [
] {
} "bound": "LOWER",
], "q_lo": 0.98,
"highlight": [ "q_hi": 1.0,
{ "y_target":
"bound": "LOWER", [
"q_lo": 0.98, 0, 0.2,
"q_hi": 1.0, 1000, 0.2
"y_target": ]
[ }
0, 0.2, ],
1000, 0.2 "highlight": [
] {
}, "bound": "LOWER",
{ "q_lo": 0.98,
"bound": "UPPER", "q_hi": 1.0,
"q_lo": 0.98, "y_target":
"q_hi": 1.0, [
"y_target": 0, 0.2,
[ 1000, 0.2
0, 0.8, ]
1000, 0.8 },
] {
} "bound": "UPPER",
] "q_lo": 0.98,
}, "q_hi": 1.0,
"y_target": "y_target":
[ [
0, 0.16, 0, 0.8,
1000, 0.165, 1000, 0.8
10000, 0.17 ]
], }
"startup_frames": 5, ]
"convergence_frames": 6, },
"speed": 0.15 "y_target":
}, [
{ 0, 0.16,
"base_ev": 0.125, 1000, 0.165,
"metering_modes": 10000, 0.17
{ ],
"centre-weighted": "startup_frames": 5,
{ "convergence_frames": 6,
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] "speed": 0.15
}, },
"spot": {
{ "base_ev": 0.125,
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] "metering_modes":
}, {
"matrix": "centre-weighted":
{ {
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] "weights":
} [
}, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"exposure_modes": ]
{ },
"normal": "spot":
{ {
"shutter": [ 100, 15000, 30000, 60000, 120000 ], "weights":
"gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] [
}, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
"short": ]
{ },
"shutter": [ 100, 5000, 10000, 20000, 120000 ], "matrix":
"gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] {
}, "weights":
"long": [
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"shutter": [ 1000, 30000, 60000, 90000, 120000 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] }
} },
}, "exposure_modes":
"constraint_modes": {
{ "normal":
"normal": [ {
{ "shutter": [ 100, 15000, 30000, 60000, 120000 ],
"bound": "LOWER", "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ]
"q_lo": 0.98, },
"q_hi": 1.0, "short":
"y_target": {
[ "shutter": [ 100, 5000, 10000, 20000, 120000 ],
0, 0.2, "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
1000, 0.2 },
] "long":
} {
], "shutter": [ 1000, 30000, 60000, 90000, 120000 ],
"highlight": [ "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
{ }
"bound": "LOWER", },
"q_lo": 0.98, "constraint_modes":
"q_hi": 1.0, {
"y_target": "normal": [
[ {
0, 0.2, "bound": "LOWER",
1000, 0.2 "q_lo": 0.98,
] "q_hi": 1.0,
}, "y_target":
{ [
"bound": "UPPER", 0, 0.2,
"q_lo": 0.98, 1000, 0.2
"q_hi": 1.0, ]
"y_target": }
[ ],
0, 0.8, "highlight": [
1000, 0.8 {
] "bound": "LOWER",
} "q_lo": 0.98,
] "q_hi": 1.0,
}, "y_target":
"y_target": [
[ 0, 0.2,
0, 0.16, 1000, 0.2
1000, 0.165, ]
10000, 0.17 },
], {
"startup_frames": 5, "bound": "UPPER",
"convergence_frames": 6, "q_lo": 0.98,
"speed": 0.15 "q_hi": 1.0,
}, "y_target":
{ [
"base_ev": 1.5, 0, 0.8,
"metering_modes": 1000, 0.8
{ ]
"centre-weighted": }
{ ]
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] },
}, "y_target":
"spot": [
{ 0, 0.16,
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] 1000, 0.165,
}, 10000, 0.17
"matrix": ],
{ "startup_frames": 5,
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] "convergence_frames": 6,
} "speed": 0.15
}, },
"exposure_modes": {
{ "base_ev": 1.5,
"normal": "metering_modes":
{ {
"shutter": [ 100, 15000, 30000, 60000, 120000 ], "centre-weighted":
"gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] {
}, "weights":
"short": [
{ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"shutter": [ 100, 5000, 10000, 20000, 120000 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] },
}, "spot":
"long": {
{ "weights":
"shutter": [ 1000, 30000, 60000, 90000, 120000 ], [
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"constraint_modes": "matrix":
{ {
"normal": [ "weights":
{ [
"bound": "LOWER", 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"q_lo": 0.98, ]
"q_hi": 1.0, }
"y_target": },
[ "exposure_modes":
0, 0.2, {
1000, 0.2 "normal":
] {
} "shutter": [ 100, 15000, 30000, 60000, 120000 ],
], "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ]
"highlight": [ },
{ "short":
"bound": "LOWER", {
"q_lo": 0.98, "shutter": [ 100, 5000, 10000, 20000, 120000 ],
"q_hi": 1.0, "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
"y_target": },
[ "long":
0, 0.2, {
1000, 0.2 "shutter": [ 1000, 30000, 60000, 90000, 120000 ],
] "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
}, }
{ },
"bound": "UPPER", "constraint_modes":
"q_lo": 0.98, {
"q_hi": 1.0, "normal": [
"y_target": {
[ "bound": "LOWER",
0, 0.8, "q_lo": 0.98,
1000, 0.8 "q_hi": 1.0,
] "y_target":
} [
] 0, 0.2,
}, 1000, 0.2
"y_target": ]
[ }
0, 0.16, ],
1000, 0.165, "highlight": [
10000, 0.17 {
], "bound": "LOWER",
"startup_frames": 5, "q_lo": 0.98,
"convergence_frames": 6, "q_hi": 1.0,
"speed": 0.15 "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": "rpi.alsc":
@ -627,20 +653,19 @@
"map": [ 0.0, 445, 15.0, 925 ] "map": [ 0.0, 445, 15.0, 925 ]
} }
}, },
{ {
"rpi.hdr": "rpi.hdr":
{ {
"MultiExposure": "MultiExposureUnmerged":
{ {
"cadence": [ 1, 2 ], "cadence": [ 1, 2 ],
"channel_map": { "short": 1, "long": 2 } "channel_map":
}, {
"SingleExposure": "short": 1,
{ "long": 2
"cadence": [ 1 ], }
"channel_map": { "short": 1 } }
} }
} }
}
] ]
} }

View file

@ -139,255 +139,281 @@
{ {
"rpi.agc": "rpi.agc":
{ {
"channels": "channels": [
[ {
{ "metering_modes":
"metering_modes": {
{ "centre-weighted":
"centre-weighted": {
{ "weights":
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] [
}, 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 ] "spot":
}, {
"matrix": "weights":
{ [
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"exposure_modes": "matrix":
{ {
"normal": "weights":
{ [
"shutter": [ 100, 15000, 30000, 60000, 120000 ], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] ]
}, }
"short": },
{ "exposure_modes":
"shutter": [ 100, 5000, 10000, 20000, 120000 ], {
"gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] "normal":
}, {
"long": "shutter": [ 100, 15000, 30000, 60000, 120000 ],
{ "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ]
"shutter": [ 1000, 30000, 60000, 90000, 120000 ], },
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] "short":
} {
}, "shutter": [ 100, 5000, 10000, 20000, 120000 ],
"constraint_modes": "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
{ },
"normal": [ "long":
{ {
"bound": "LOWER", "shutter": [ 1000, 30000, 60000, 90000, 120000 ],
"q_lo": 0.98, "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
"q_hi": 1.0, }
"y_target": },
[ "constraint_modes":
0, 0.2, {
1000, 0.2 "normal": [
] {
} "bound": "LOWER",
], "q_lo": 0.98,
"highlight": [ "q_hi": 1.0,
{ "y_target":
"bound": "LOWER", [
"q_lo": 0.98, 0, 0.2,
"q_hi": 1.0, 1000, 0.2
"y_target": ]
[ }
0, 0.2, ],
1000, 0.2 "highlight": [
] {
}, "bound": "LOWER",
{ "q_lo": 0.98,
"bound": "UPPER", "q_hi": 1.0,
"q_lo": 0.98, "y_target":
"q_hi": 1.0, [
"y_target": 0, 0.2,
[ 1000, 0.2
0, 0.8, ]
1000, 0.8 },
] {
} "bound": "UPPER",
] "q_lo": 0.98,
}, "q_hi": 1.0,
"y_target": "y_target":
[ [
0, 0.16, 0, 0.8,
1000, 0.165, 1000, 0.8
10000, 0.17 ]
], }
"startup_frames": 5, ]
"convergence_frames": 6, },
"speed": 0.15 "y_target":
}, [
{ 0, 0.16,
"base_ev": 0.125, 1000, 0.165,
"metering_modes": 10000, 0.17
{ ],
"centre-weighted": "startup_frames": 5,
{ "convergence_frames": 6,
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] "speed": 0.15
}, },
"spot": {
{ "base_ev": 0.125,
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] "metering_modes":
}, {
"matrix": "centre-weighted":
{ {
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] "weights":
} [
}, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"exposure_modes": ]
{ },
"normal": "spot":
{ {
"shutter": [ 100, 15000, 30000, 60000, 120000 ], "weights":
"gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] [
}, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
"short": ]
{ },
"shutter": [ 100, 5000, 10000, 20000, 120000 ], "matrix":
"gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] {
}, "weights":
"long": [
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"shutter": [ 1000, 30000, 60000, 90000, 120000 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] }
} },
}, "exposure_modes":
"constraint_modes": {
{ "normal":
"normal": [ {
{ "shutter": [ 100, 15000, 30000, 60000, 120000 ],
"bound": "LOWER", "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ]
"q_lo": 0.98, },
"q_hi": 1.0, "short":
"y_target": {
[ "shutter": [ 100, 5000, 10000, 20000, 120000 ],
0, 0.2, "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
1000, 0.2 },
] "long":
} {
], "shutter": [ 1000, 30000, 60000, 90000, 120000 ],
"highlight": [ "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
{ }
"bound": "LOWER", },
"q_lo": 0.98, "constraint_modes":
"q_hi": 1.0, {
"y_target": "normal": [
[ {
0, 0.2, "bound": "LOWER",
1000, 0.2 "q_lo": 0.98,
] "q_hi": 1.0,
}, "y_target":
{ [
"bound": "UPPER", 0, 0.2,
"q_lo": 0.98, 1000, 0.2
"q_hi": 1.0, ]
"y_target": }
[ ],
0, 0.8, "highlight": [
1000, 0.8 {
] "bound": "LOWER",
} "q_lo": 0.98,
] "q_hi": 1.0,
}, "y_target":
"y_target": [
[ 0, 0.2,
0, 0.16, 1000, 0.2
1000, 0.165, ]
10000, 0.17 },
], {
"startup_frames": 5, "bound": "UPPER",
"convergence_frames": 6, "q_lo": 0.98,
"speed": 0.15 "q_hi": 1.0,
}, "y_target":
{ [
"base_ev": 1.5, 0, 0.8,
"metering_modes": 1000, 0.8
{ ]
"centre-weighted": }
{ ]
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] },
}, "y_target":
"spot": [
{ 0, 0.16,
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] 1000, 0.165,
}, 10000, 0.17
"matrix": ],
{ "startup_frames": 5,
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] "convergence_frames": 6,
} "speed": 0.15
}, },
"exposure_modes": {
{ "base_ev": 1.5,
"normal": "metering_modes":
{ {
"shutter": [ 100, 15000, 30000, 60000, 120000 ], "centre-weighted":
"gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] {
}, "weights":
"short": [
{ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"shutter": [ 100, 5000, 10000, 20000, 120000 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] },
}, "spot":
"long": {
{ "weights":
"shutter": [ 1000, 30000, 60000, 90000, 120000 ], [
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"constraint_modes": "matrix":
{ {
"normal": [ "weights":
{ [
"bound": "LOWER", 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"q_lo": 0.98, ]
"q_hi": 1.0, }
"y_target": },
[ "exposure_modes":
0, 0.2, {
1000, 0.2 "normal":
] {
} "shutter": [ 100, 15000, 30000, 60000, 120000 ],
], "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ]
"highlight": [ },
{ "short":
"bound": "LOWER", {
"q_lo": 0.98, "shutter": [ 100, 5000, 10000, 20000, 120000 ],
"q_hi": 1.0, "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
"y_target": },
[ "long":
0, 0.2, {
1000, 0.2 "shutter": [ 1000, 30000, 60000, 90000, 120000 ],
] "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
}, }
{ },
"bound": "UPPER", "constraint_modes":
"q_lo": 0.98, {
"q_hi": 1.0, "normal": [
"y_target": {
[ "bound": "LOWER",
0, 0.8, "q_lo": 0.98,
1000, 0.8 "q_hi": 1.0,
] "y_target":
} [
] 0, 0.2,
}, 1000, 0.2
"y_target": ]
[ }
0, 0.16, ],
1000, 0.165, "highlight": [
10000, 0.17 {
], "bound": "LOWER",
"startup_frames": 5, "q_lo": 0.98,
"convergence_frames": 6, "q_hi": 1.0,
"speed": 0.15 "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": "rpi.alsc":
@ -726,20 +752,19 @@
"map": [ 0.0, 445, 15.0, 925 ] "map": [ 0.0, 445, 15.0, 925 ]
} }
}, },
{ {
"rpi.hdr": "rpi.hdr":
{ {
"MultiExposure": "MultiExposureUnmerged":
{ {
"cadence": [ 1, 2 ], "cadence": [ 1, 2 ],
"channel_map": { "short": 1, "long": 2 } "channel_map":
}, {
"SingleExposure": "short": 1,
{ "long": 2
"cadence": [ 1 ], }
"channel_map": { "short": 1 } }
} }
} }
}
] ]
} }

View file

@ -129,255 +129,281 @@
{ {
"rpi.agc": "rpi.agc":
{ {
"channels": "channels": [
[ {
{ "metering_modes":
"metering_modes": {
{ "centre-weighted":
"centre-weighted": {
{ "weights":
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] [
}, 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 ] "spot":
}, {
"matrix": "weights":
{ [
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"exposure_modes": "matrix":
{ {
"normal": "weights":
{ [
"shutter": [ 100, 15000, 30000, 60000, 120000 ], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] ]
}, }
"short": },
{ "exposure_modes":
"shutter": [ 100, 5000, 10000, 20000, 120000 ], {
"gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] "normal":
}, {
"long": "shutter": [ 100, 15000, 30000, 60000, 120000 ],
{ "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ]
"shutter": [ 1000, 30000, 60000, 90000, 120000 ], },
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] "short":
} {
}, "shutter": [ 100, 5000, 10000, 20000, 120000 ],
"constraint_modes": "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
{ },
"normal": [ "long":
{ {
"bound": "LOWER", "shutter": [ 1000, 30000, 60000, 90000, 120000 ],
"q_lo": 0.98, "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
"q_hi": 1.0, }
"y_target": },
[ "constraint_modes":
0, 0.2, {
1000, 0.2 "normal": [
] {
} "bound": "LOWER",
], "q_lo": 0.98,
"highlight": [ "q_hi": 1.0,
{ "y_target":
"bound": "LOWER", [
"q_lo": 0.98, 0, 0.2,
"q_hi": 1.0, 1000, 0.2
"y_target": ]
[ }
0, 0.2, ],
1000, 0.2 "highlight": [
] {
}, "bound": "LOWER",
{ "q_lo": 0.98,
"bound": "UPPER", "q_hi": 1.0,
"q_lo": 0.98, "y_target":
"q_hi": 1.0, [
"y_target": 0, 0.2,
[ 1000, 0.2
0, 0.8, ]
1000, 0.8 },
] {
} "bound": "UPPER",
] "q_lo": 0.98,
}, "q_hi": 1.0,
"y_target": "y_target":
[ [
0, 0.16, 0, 0.8,
1000, 0.165, 1000, 0.8
10000, 0.17 ]
], }
"startup_frames": 5, ]
"convergence_frames": 6, },
"speed": 0.15 "y_target":
}, [
{ 0, 0.16,
"base_ev": 0.125, 1000, 0.165,
"metering_modes": 10000, 0.17
{ ],
"centre-weighted": "startup_frames": 5,
{ "convergence_frames": 6,
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] "speed": 0.15
}, },
"spot": {
{ "base_ev": 0.125,
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] "metering_modes":
}, {
"matrix": "centre-weighted":
{ {
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] "weights":
} [
}, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"exposure_modes": ]
{ },
"normal": "spot":
{ {
"shutter": [ 100, 15000, 30000, 60000, 120000 ], "weights":
"gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] [
}, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
"short": ]
{ },
"shutter": [ 100, 5000, 10000, 20000, 120000 ], "matrix":
"gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] {
}, "weights":
"long": [
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"shutter": [ 1000, 30000, 60000, 90000, 120000 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] }
} },
}, "exposure_modes":
"constraint_modes": {
{ "normal":
"normal": [ {
{ "shutter": [ 100, 15000, 30000, 60000, 120000 ],
"bound": "LOWER", "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ]
"q_lo": 0.98, },
"q_hi": 1.0, "short":
"y_target": {
[ "shutter": [ 100, 5000, 10000, 20000, 120000 ],
0, 0.2, "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
1000, 0.2 },
] "long":
} {
], "shutter": [ 1000, 30000, 60000, 90000, 120000 ],
"highlight": [ "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
{ }
"bound": "LOWER", },
"q_lo": 0.98, "constraint_modes":
"q_hi": 1.0, {
"y_target": "normal": [
[ {
0, 0.2, "bound": "LOWER",
1000, 0.2 "q_lo": 0.98,
] "q_hi": 1.0,
}, "y_target":
{ [
"bound": "UPPER", 0, 0.2,
"q_lo": 0.98, 1000, 0.2
"q_hi": 1.0, ]
"y_target": }
[ ],
0, 0.8, "highlight": [
1000, 0.8 {
] "bound": "LOWER",
} "q_lo": 0.98,
] "q_hi": 1.0,
}, "y_target":
"y_target": [
[ 0, 0.2,
0, 0.16, 1000, 0.2
1000, 0.165, ]
10000, 0.17 },
], {
"startup_frames": 5, "bound": "UPPER",
"convergence_frames": 6, "q_lo": 0.98,
"speed": 0.15 "q_hi": 1.0,
}, "y_target":
{ [
"base_ev": 1.5, 0, 0.8,
"metering_modes": 1000, 0.8
{ ]
"centre-weighted": }
{ ]
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] },
}, "y_target":
"spot": [
{ 0, 0.16,
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] 1000, 0.165,
}, 10000, 0.17
"matrix": ],
{ "startup_frames": 5,
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] "convergence_frames": 6,
} "speed": 0.15
}, },
"exposure_modes": {
{ "base_ev": 1.5,
"normal": "metering_modes":
{ {
"shutter": [ 100, 15000, 30000, 60000, 120000 ], "centre-weighted":
"gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] {
}, "weights":
"short": [
{ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"shutter": [ 100, 5000, 10000, 20000, 120000 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] },
}, "spot":
"long": {
{ "weights":
"shutter": [ 1000, 30000, 60000, 90000, 120000 ], [
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"constraint_modes": "matrix":
{ {
"normal": [ "weights":
{ [
"bound": "LOWER", 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"q_lo": 0.98, ]
"q_hi": 1.0, }
"y_target": },
[ "exposure_modes":
0, 0.2, {
1000, 0.2 "normal":
] {
} "shutter": [ 100, 15000, 30000, 60000, 120000 ],
], "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ]
"highlight": [ },
{ "short":
"bound": "LOWER", {
"q_lo": 0.98, "shutter": [ 100, 5000, 10000, 20000, 120000 ],
"q_hi": 1.0, "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
"y_target": },
[ "long":
0, 0.2, {
1000, 0.2 "shutter": [ 1000, 30000, 60000, 90000, 120000 ],
] "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
}, }
{ },
"bound": "UPPER", "constraint_modes":
"q_lo": 0.98, {
"q_hi": 1.0, "normal": [
"y_target": {
[ "bound": "LOWER",
0, 0.8, "q_lo": 0.98,
1000, 0.8 "q_hi": 1.0,
] "y_target":
} [
] 0, 0.2,
}, 1000, 0.2
"y_target": ]
[ }
0, 0.16, ],
1000, 0.165, "highlight": [
10000, 0.17 {
], "bound": "LOWER",
"startup_frames": 5, "q_lo": 0.98,
"convergence_frames": 6, "q_hi": 1.0,
"speed": 0.15 "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": "rpi.alsc":
@ -638,20 +664,19 @@
"map": [ 0.0, 420, 35.0, 920 ] "map": [ 0.0, 420, 35.0, 920 ]
} }
}, },
{ {
"rpi.hdr": "rpi.hdr":
{ {
"MultiExposure": "MultiExposureUnmerged":
{ {
"cadence": [ 1, 2 ], "cadence": [ 1, 2 ],
"channel_map": { "short": 1, "long": 2 } "channel_map":
}, {
"SingleExposure": "short": 1,
{ "long": 2
"cadence": [ 1 ], }
"channel_map": { "short": 1 } }
} }
} }
}
] ]
} }

View file

@ -129,255 +129,281 @@
{ {
"rpi.agc": "rpi.agc":
{ {
"channels": "channels": [
[ {
{ "metering_modes":
"metering_modes": {
{ "centre-weighted":
"centre-weighted": {
{ "weights":
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] [
}, 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 ] "spot":
}, {
"matrix": "weights":
{ [
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"exposure_modes": "matrix":
{ {
"normal": "weights":
{ [
"shutter": [ 100, 15000, 30000, 60000, 120000 ], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] ]
}, }
"short": },
{ "exposure_modes":
"shutter": [ 100, 5000, 10000, 20000, 120000 ], {
"gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] "normal":
}, {
"long": "shutter": [ 100, 15000, 30000, 60000, 120000 ],
{ "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ]
"shutter": [ 1000, 30000, 60000, 90000, 120000 ], },
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] "short":
} {
}, "shutter": [ 100, 5000, 10000, 20000, 120000 ],
"constraint_modes": "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
{ },
"normal": [ "long":
{ {
"bound": "LOWER", "shutter": [ 1000, 30000, 60000, 90000, 120000 ],
"q_lo": 0.98, "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
"q_hi": 1.0, }
"y_target": },
[ "constraint_modes":
0, 0.2, {
1000, 0.2 "normal": [
] {
} "bound": "LOWER",
], "q_lo": 0.98,
"highlight": [ "q_hi": 1.0,
{ "y_target":
"bound": "LOWER", [
"q_lo": 0.98, 0, 0.2,
"q_hi": 1.0, 1000, 0.2
"y_target": ]
[ }
0, 0.2, ],
1000, 0.2 "highlight": [
] {
}, "bound": "LOWER",
{ "q_lo": 0.98,
"bound": "UPPER", "q_hi": 1.0,
"q_lo": 0.98, "y_target":
"q_hi": 1.0, [
"y_target": 0, 0.2,
[ 1000, 0.2
0, 0.8, ]
1000, 0.8 },
] {
} "bound": "UPPER",
] "q_lo": 0.98,
}, "q_hi": 1.0,
"y_target": "y_target":
[ [
0, 0.16, 0, 0.8,
1000, 0.165, 1000, 0.8
10000, 0.17 ]
], }
"startup_frames": 5, ]
"convergence_frames": 6, },
"speed": 0.15 "y_target":
}, [
{ 0, 0.16,
"base_ev": 0.125, 1000, 0.165,
"metering_modes": 10000, 0.17
{ ],
"centre-weighted": "startup_frames": 5,
{ "convergence_frames": 6,
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] "speed": 0.15
}, },
"spot": {
{ "base_ev": 0.125,
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] "metering_modes":
}, {
"matrix": "centre-weighted":
{ {
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] "weights":
} [
}, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"exposure_modes": ]
{ },
"normal": "spot":
{ {
"shutter": [ 100, 15000, 30000, 60000, 120000 ], "weights":
"gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] [
}, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
"short": ]
{ },
"shutter": [ 100, 5000, 10000, 20000, 120000 ], "matrix":
"gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] {
}, "weights":
"long": [
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"shutter": [ 1000, 30000, 60000, 90000, 120000 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] }
} },
}, "exposure_modes":
"constraint_modes": {
{ "normal":
"normal": [ {
{ "shutter": [ 100, 15000, 30000, 60000, 120000 ],
"bound": "LOWER", "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ]
"q_lo": 0.98, },
"q_hi": 1.0, "short":
"y_target": {
[ "shutter": [ 100, 5000, 10000, 20000, 120000 ],
0, 0.2, "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
1000, 0.2 },
] "long":
} {
], "shutter": [ 1000, 30000, 60000, 90000, 120000 ],
"highlight": [ "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
{ }
"bound": "LOWER", },
"q_lo": 0.98, "constraint_modes":
"q_hi": 1.0, {
"y_target": "normal": [
[ {
0, 0.2, "bound": "LOWER",
1000, 0.2 "q_lo": 0.98,
] "q_hi": 1.0,
}, "y_target":
{ [
"bound": "UPPER", 0, 0.2,
"q_lo": 0.98, 1000, 0.2
"q_hi": 1.0, ]
"y_target": }
[ ],
0, 0.8, "highlight": [
1000, 0.8 {
] "bound": "LOWER",
} "q_lo": 0.98,
] "q_hi": 1.0,
}, "y_target":
"y_target": [
[ 0, 0.2,
0, 0.16, 1000, 0.2
1000, 0.165, ]
10000, 0.17 },
], {
"startup_frames": 5, "bound": "UPPER",
"convergence_frames": 6, "q_lo": 0.98,
"speed": 0.15 "q_hi": 1.0,
}, "y_target":
{ [
"base_ev": 1.5, 0, 0.8,
"metering_modes": 1000, 0.8
{ ]
"centre-weighted": }
{ ]
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] },
}, "y_target":
"spot": [
{ 0, 0.16,
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] 1000, 0.165,
}, 10000, 0.17
"matrix": ],
{ "startup_frames": 5,
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] "convergence_frames": 6,
} "speed": 0.15
}, },
"exposure_modes": {
{ "base_ev": 1.5,
"normal": "metering_modes":
{ {
"shutter": [ 100, 15000, 30000, 60000, 120000 ], "centre-weighted":
"gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ] {
}, "weights":
"short": [
{ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"shutter": [ 100, 5000, 10000, 20000, 120000 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] },
}, "spot":
"long": {
{ "weights":
"shutter": [ 1000, 30000, 60000, 90000, 120000 ], [
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"constraint_modes": "matrix":
{ {
"normal": [ "weights":
{ [
"bound": "LOWER", 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"q_lo": 0.98, ]
"q_hi": 1.0, }
"y_target": },
[ "exposure_modes":
0, 0.2, {
1000, 0.2 "normal":
] {
} "shutter": [ 100, 15000, 30000, 60000, 120000 ],
], "gain": [ 1.0, 1.0, 2.0, 4.0, 6.0 ]
"highlight": [ },
{ "short":
"bound": "LOWER", {
"q_lo": 0.98, "shutter": [ 100, 5000, 10000, 20000, 120000 ],
"q_hi": 1.0, "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ]
"y_target": },
[ "long":
0, 0.2, {
1000, 0.2 "shutter": [ 1000, 30000, 60000, 90000, 120000 ],
] "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
}, }
{ },
"bound": "UPPER", "constraint_modes":
"q_lo": 0.98, {
"q_hi": 1.0, "normal": [
"y_target": {
[ "bound": "LOWER",
0, 0.8, "q_lo": 0.98,
1000, 0.8 "q_hi": 1.0,
] "y_target":
} [
] 0, 0.2,
}, 1000, 0.2
"y_target": ]
[ }
0, 0.16, ],
1000, 0.165, "highlight": [
10000, 0.17 {
], "bound": "LOWER",
"startup_frames": 5, "q_lo": 0.98,
"convergence_frames": 6, "q_hi": 1.0,
"speed": 0.15 "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": "rpi.alsc":
@ -629,20 +655,19 @@
"map": [ 0.0, 420, 35.0, 920 ] "map": [ 0.0, 420, 35.0, 920 ]
} }
}, },
{ {
"rpi.hdr": "rpi.hdr":
{ {
"MultiExposure": "MultiExposureUnmerged":
{ {
"cadence": [ 1, 2 ], "cadence": [ 1, 2 ],
"channel_map": { "short": 1, "long": 2 } "channel_map":
}, {
"SingleExposure": "short": 1,
{ "long": 2
"cadence": [ 1 ], }
"channel_map": { "short": 1 } }
} }
} }
}
] ]
} }

View file

@ -131,285 +131,309 @@
{ {
"rpi.agc": "rpi.agc":
{ {
"channels": "channels": [
[ {
{ "metering_modes":
"metering_modes": {
{ "centre-weighted":
"centre-weighted": {
{ "weights":
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] [
}, 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 ] "spot":
}, {
"matrix": "weights":
{ [
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ]
}, },
"exposure_modes": "matrix":
{ {
"normal": "weights":
{ [
"shutter": [ 100, 10000, 30000, 60000, 66666 ], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] ]
}, }
"short": },
{ "exposure_modes":
"shutter": [ 100, 5000, 10000, 20000, 33333 ], {
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] "normal":
}, {
"long": "shutter": [ 100, 10000, 30000, 60000, 66666 ],
{ "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"shutter": [ 100, 10000, 30000, 60000, 120000 ], },
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] "short":
} {
}, "shutter": [ 100, 5000, 10000, 20000, 33333 ],
"constraint_modes": "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
{ },
"normal": [ "long":
{ {
"bound": "LOWER", "shutter": [ 100, 10000, 30000, 60000, 120000 ],
"q_lo": 0.98, "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
"q_hi": 1.0, }
"y_target": },
[ "constraint_modes":
0, 0.5, {
1000, 0.5 "normal": [
] {
} "bound": "LOWER",
], "q_lo": 0.98,
"highlight": [ "q_hi": 1.0,
{ "y_target":
"bound": "LOWER", [
"q_lo": 0.98, 0, 0.5,
"q_hi": 1.0, 1000, 0.5
"y_target": ]
[ }
0, 0.5, ],
1000, 0.5 "highlight": [
] {
}, "bound": "LOWER",
{ "q_lo": 0.98,
"bound": "UPPER", "q_hi": 1.0,
"q_lo": 0.98, "y_target":
"q_hi": 1.0, [
"y_target": 0, 0.5,
[ 1000, 0.5
0, 0.8, ]
1000, 0.8 },
] {
} "bound": "UPPER",
], "q_lo": 0.98,
"shadows": [ "q_hi": 1.0,
{ "y_target":
"bound": "LOWER", [
"q_lo": 0.0, 0, 0.8,
"q_hi": 0.5, 1000, 0.8
"y_target": ]
[ }
0, 0.17, ],
1000, 0.17 "shadows": [
] {
} "bound": "LOWER",
] "q_lo": 0.0,
}, "q_hi": 0.5,
"y_target": "y_target":
[ [
0, 0.16, 0, 0.17,
1000, 0.165, 1000, 0.17
10000, 0.17 ]
], }
"base_ev": 1.25 ]
}, },
{ "y_target":
"base_ev": 0.125, [
"metering_modes": 0, 0.16,
{ 1000, 0.165,
"centre-weighted": 10000, 0.17
{ ],
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] "base_ev": 1.25
}, },
"spot": {
{ "base_ev": 1.25,
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] "metering_modes":
}, {
"matrix": "centre-weighted":
{ {
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] "weights":
} [
}, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
"exposure_modes": ]
{ },
"normal": "spot":
{ {
"shutter": [ 100, 10000, 30000, 60000, 66666 ], "weights":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] [
}, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
"short": ]
{ },
"shutter": [ 100, 5000, 10000, 20000, 33333 ], "matrix":
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] {
}, "weights":
"long": [
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"shutter": [ 100, 10000, 30000, 60000, 120000 ], ]
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] }
} },
}, "exposure_modes":
"constraint_modes": {
{ "normal":
"normal": [ {
{ "shutter": [ 100, 10000, 30000, 60000, 66666 ],
"bound": "LOWER", "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"q_lo": 0.98, },
"q_hi": 1.0, "short":
"y_target": {
[ "shutter": [ 100, 5000, 10000, 20000, 33333 ],
0, 0.5, "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
1000, 0.5 },
] "long":
} {
], "shutter": [ 100, 10000, 30000, 60000, 120000 ],
"highlight": [ "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
{ }
"bound": "LOWER", },
"q_lo": 0.98, "constraint_modes":
"q_hi": 1.0, {
"y_target": "normal": [
[ {
0, 0.5, "bound": "LOWER",
1000, 0.5 "q_lo": 0.98,
] "q_hi": 1.0,
}, "y_target":
{ [
"bound": "UPPER", 0, 0.5,
"q_lo": 0.98, 1000, 0.5
"q_hi": 1.0, ]
"y_target": }
[ ],
0, 0.8, "highlight": [
1000, 0.8 {
] "bound": "LOWER",
} "q_lo": 0.98,
], "q_hi": 1.0,
"shadows": [ "y_target":
{ [
"bound": "LOWER", 0, 0.5,
"q_lo": 0.0, 1000, 0.5
"q_hi": 0.5, ]
"y_target": },
[ {
0, 0.17, "bound": "UPPER",
1000, 0.17 "q_lo": 0.98,
] "q_hi": 1.0,
} "y_target":
] [
}, 0, 0.8,
"y_target": 1000, 0.8
[ ]
0, 0.16, }
1000, 0.165, ],
10000, 0.17 "shadows": [
], {
"base_ev": 1.25 "bound": "LOWER",
}, "q_lo": 0.0,
{ "q_hi": 0.5,
"base_ev": 1.5, "y_target":
"metering_modes": [
{ 0, 0.17,
"centre-weighted": 1000, 0.17
{ ]
"weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] }
}, ]
"spot": },
{ "y_target":
"weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] [
}, 0, 0.16,
"matrix": 1000, 0.165,
{ 10000, 0.17
"weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ]
} },
}, {
"exposure_modes": "base_ev": 1.25,
{ "metering_modes":
"normal": {
{ "centre-weighted":
"shutter": [ 100, 10000, 30000, 60000, 66666 ], {
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] "weights":
}, [
"short": 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0
{ ]
"shutter": [ 100, 5000, 10000, 20000, 33333 ], },
"gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ] "spot":
}, {
"long": "weights":
{ [
"shutter": [ 100, 10000, 30000, 60000, 120000 ], 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
"gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ] ]
} },
}, "matrix":
"constraint_modes": {
{ "weights":
"normal": [ [
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
"bound": "LOWER", ]
"q_lo": 0.98, }
"q_hi": 1.0, },
"y_target": "exposure_modes":
[ {
0, 0.5, "normal":
1000, 0.5 {
] "shutter": [ 100, 10000, 30000, 60000, 66666 ],
} "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
], },
"highlight": [ "short":
{ {
"bound": "LOWER", "shutter": [ 100, 5000, 10000, 20000, 33333 ],
"q_lo": 0.98, "gain": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]
"q_hi": 1.0, },
"y_target": "long":
[ {
0, 0.5, "shutter": [ 100, 10000, 30000, 60000, 120000 ],
1000, 0.5 "gain": [ 1.0, 2.0, 4.0, 6.0, 12.0 ]
] }
}, },
{ "constraint_modes":
"bound": "UPPER", {
"q_lo": 0.98, "normal": [
"q_hi": 1.0, {
"y_target": "bound": "LOWER",
[ "q_lo": 0.98,
0, 0.8, "q_hi": 1.0,
1000, 0.8 "y_target":
] [
} 0, 0.5,
], 1000, 0.5
"shadows": [ ]
{ }
"bound": "LOWER", ],
"q_lo": 0.0, "highlight": [
"q_hi": 0.5, {
"y_target": "bound": "LOWER",
[ "q_lo": 0.98,
0, 0.17, "q_hi": 1.0,
1000, 0.17 "y_target":
] [
} 0, 0.5,
] 1000, 0.5
}, ]
"y_target": },
[ {
0, 0.16, "bound": "UPPER",
1000, 0.165, "q_lo": 0.98,
10000, 0.17 "q_hi": 1.0,
], "y_target":
"base_ev": 1.25 [
} 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": "rpi.alsc":
@ -654,20 +678,19 @@
{ {
"rpi.sharpen": { } "rpi.sharpen": { }
}, },
{ {
"rpi.hdr": "rpi.hdr":
{ {
"MultiExposure": "MultiExposureUnmerged":
{ {
"cadence": [ 1, 2 ], "cadence": [ 1, 2 ],
"channel_map": { "short": 1, "long": 2 } "channel_map":
}, {
"SingleExposure": "short": 1,
{ "long": 2
"cadence": [ 1 ], }
"channel_map": { "short": 1 } }
} }
} }
}
] ]
} }

View file

@ -51,15 +51,24 @@
{ {
"centre-weighted": "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": "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": "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": "exposure_modes":

View file

@ -35,7 +35,10 @@
{ {
"centre-weighted": "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": "exposure_modes":

View file

@ -133,15 +133,24 @@
{ {
"centre-weighted": "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": "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": "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": "exposure_modes":

View file

@ -22,7 +22,10 @@
{ {
"centre-weighted": "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": "exposure_modes":