ipa: rkisp1: Move shutter speed and analogue gain limits from agc to sensor

The limits for the shutter speed and analogue gain are stored in
IPASessionConfiguration::agc. While they're related to the AGC, they are
properties of the sensor, and are stored in the session configuration by
the IPA module, not the AGC algorithm. Move them to the
IPASessionConfiguration::sensor structure where they belong.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Laurent Pinchart 2022-10-22 01:47:31 +03:00
parent 02bc2a8a24
commit 00b650b6b8
4 changed files with 32 additions and 26 deletions

View file

@ -74,7 +74,8 @@ Agc::Agc()
int Agc::configure(IPAContext &context, const IPACameraSensorInfo &configInfo)
{
/* Configure the default exposure and gain. */
context.activeState.agc.gain = std::max(context.configuration.agc.minAnalogueGain, kMinAnalogueGain);
context.activeState.agc.gain = std::max(context.configuration.sensor.minAnalogueGain,
kMinAnalogueGain);
context.activeState.agc.exposure = 10ms / context.configuration.sensor.lineDuration;
/*
@ -202,13 +203,13 @@ void Agc::computeExposure(IPAContext &context, IPAFrameContext &frameContext,
/* Use the highest of the two gain estimates. */
double evGain = std::max(yGain, iqMeanGain);
utils::Duration minShutterSpeed = configuration.agc.minShutterSpeed;
utils::Duration maxShutterSpeed = std::min(configuration.agc.maxShutterSpeed,
utils::Duration minShutterSpeed = configuration.sensor.minShutterSpeed;
utils::Duration maxShutterSpeed = std::min(configuration.sensor.maxShutterSpeed,
kMaxShutterSpeed);
double minAnalogueGain = std::max(configuration.agc.minAnalogueGain,
double minAnalogueGain = std::max(configuration.sensor.minAnalogueGain,
kMinAnalogueGain);
double maxAnalogueGain = std::min(configuration.agc.maxAnalogueGain,
double maxAnalogueGain = std::min(configuration.sensor.maxAnalogueGain,
kMaxAnalogueGain);
/* Consider within 1% of the target as correctly exposed. */