mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-23 00:25:07 +03:00
ipa: rpi: controller: Use libipa's Pwl class
To reduce code duplication, use the Pwl class from libipa. This also removes the Pwl class from the Raspberry Pi IPA. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> Acked-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
95fa5c40ba
commit
9fcc0029ec
22 changed files with 106 additions and 494 deletions
|
@ -130,7 +130,7 @@ int AgcConstraint::read(const libcamera::YamlObject ¶ms)
|
|||
return -EINVAL;
|
||||
qHi = *value;
|
||||
|
||||
return yTarget.read(params["y_target"]);
|
||||
return yTarget.readYaml(params["y_target"]);
|
||||
}
|
||||
|
||||
static std::tuple<int, AgcConstraintMode>
|
||||
|
@ -237,7 +237,7 @@ int AgcConfig::read(const libcamera::YamlObject ¶ms)
|
|||
return ret;
|
||||
}
|
||||
|
||||
ret = yTarget.read(params["y_target"]);
|
||||
ret = yTarget.readYaml(params["y_target"]);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -715,7 +715,7 @@ static constexpr double EvGainYTargetLimit = 0.9;
|
|||
static double constraintComputeGain(AgcConstraint &c, const Histogram &h, double lux,
|
||||
double evGain, double &targetY)
|
||||
{
|
||||
targetY = c.yTarget.eval(c.yTarget.domain().clip(lux));
|
||||
targetY = c.yTarget.eval(c.yTarget.domain().clamp(lux));
|
||||
targetY = std::min(EvGainYTargetLimit, targetY * evGain);
|
||||
double iqm = h.interQuantileMean(c.qLo, c.qHi);
|
||||
return (targetY * h.bins()) / iqm;
|
||||
|
@ -734,7 +734,7 @@ void AgcChannel::computeGain(StatisticsPtr &statistics, Metadata *imageMetadata,
|
|||
* The initial gain and target_Y come from some of the regions. After
|
||||
* that we consider the histogram constraints.
|
||||
*/
|
||||
targetY = config_.yTarget.eval(config_.yTarget.domain().clip(lux.lux));
|
||||
targetY = config_.yTarget.eval(config_.yTarget.domain().clamp(lux.lux));
|
||||
targetY = std::min(EvGainYTargetLimit, targetY * evGain);
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue