[libcamera-devel] [PATCH 1/2] ipa: ipu3: agc: Drop hard-codec analogue gain max

Dan Scally dan.scally at ideasonboard.com
Tue Jun 6 16:54:48 CEST 2023


Hello

On 29/05/2023 13:39, Jacopo Mondi via libcamera-devel wrote:
> As the sensor's analogue gain range is known, drop the arbitrary
> maximum limit for the sensor analogue gain.
>
> Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>


I tested this on my Surface Go 2 and couldn't see any regressions from it. With the typo in the 
subject line fixed:


Reviewed-and-tested-by: Daniel Scally <dan.scally at ideasonboard.com>



> ---
>   src/ipa/ipu3/algorithms/agc.cpp | 7 +++----
>   1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp
> index b5309bdbea25..606a237a4a59 100644
> --- a/src/ipa/ipu3/algorithms/agc.cpp
> +++ b/src/ipa/ipu3/algorithms/agc.cpp
> @@ -47,9 +47,8 @@ namespace ipa::ipu3::algorithms {
>   
>   LOG_DEFINE_CATEGORY(IPU3Agc)
>   
> -/* Limits for analogue gain values */
> +/* Minimum limit for analogue gain value */
>   static constexpr double kMinAnalogueGain = 1.0;
> -static constexpr double kMaxAnalogueGain = 8.0;
>   
>   /* \todo Honour the FrameDurationLimits control instead of hardcoding a limit */
>   static constexpr utils::Duration kMaxShutterSpeed = 60ms;
> @@ -97,10 +96,10 @@ int Agc::configure(IPAContext &context,
>   				    kMaxShutterSpeed);
>   
>   	minAnalogueGain_ = std::max(configuration.agc.minAnalogueGain, kMinAnalogueGain);
> -	maxAnalogueGain_ = std::min(configuration.agc.maxAnalogueGain, kMaxAnalogueGain);
> +	maxAnalogueGain_ = configuration.agc.maxAnalogueGain;
>   
>   	/* Configure the default exposure and gain. */
> -	activeState.agc.gain = std::max(minAnalogueGain_, kMinAnalogueGain);
> +	activeState.agc.gain = minAnalogueGain_;
>   	activeState.agc.exposure = 10ms / configuration.sensor.lineDuration;
>   
>   	frameCount_ = 0;


More information about the libcamera-devel mailing list