ipa: rpi: agc: Allow AGC channels to avoid using "fast desaturation"

"Fast desaturation" is a technique that can help the AGC algorithm to
desaturate images more quickly when they are very
over-exposed. However, it uses digital gain to do this which can
confuse our HDR techniques. Therefore make it optional.

Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
David Plowman 2023-10-12 14:59:31 +01:00 committed by Kieran Bingham
parent 0923d50b15
commit edb48a1337
2 changed files with 7 additions and 2 deletions

View file

@ -253,6 +253,8 @@ int AgcConfig::read(const libcamera::YamlObject &params)
stableRegion = params["stable_region"].get<double>(0.02); stableRegion = params["stable_region"].get<double>(0.02);
desaturate = params["desaturate"].get<int>(1);
return 0; return 0;
} }
@ -860,8 +862,10 @@ bool AgcChannel::applyDigitalGain(double gain, double targetY, bool channelBound
* quickly (and we then approach the correct value more quickly from * quickly (and we then approach the correct value more quickly from
* below). * below).
*/ */
bool desaturate = !channelBound && bool desaturate = false;
targetY > config_.fastReduceThreshold && gain < sqrt(targetY); if (config_.desaturate)
desaturate = !channelBound &&
targetY > config_.fastReduceThreshold && gain < sqrt(targetY);
if (desaturate) if (desaturate)
dg /= config_.fastReduceThreshold; dg /= config_.fastReduceThreshold;
LOG(RPiAgc, Debug) << "Digital gain " << dg << " desaturate? " << desaturate; LOG(RPiAgc, Debug) << "Digital gain " << dg << " desaturate? " << desaturate;

View file

@ -76,6 +76,7 @@ struct AgcConfig {
libcamera::utils::Duration defaultExposureTime; libcamera::utils::Duration defaultExposureTime;
double defaultAnalogueGain; double defaultAnalogueGain;
double stableRegion; double stableRegion;
bool desaturate;
}; };
class AgcChannel class AgcChannel