[libcamera-devel] [PATCH v3 08/14] ipa: ipu3: agc: Use filtered exposure values

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Oct 22 06:10:46 CEST 2021


Hi Jean-Michel,

Thank you for the patch.

On Thu, Oct 21, 2021 at 06:43:55PM +0200, Jean-Michel Hautbois wrote:
> We are filtering the exposure value to limit the gain to apply, but we
> are not using the result.
> 
> Fix it.
> 
> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> ---
>  src/ipa/ipu3/algorithms/agc.cpp | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp
> index 984aed53..f5bb3328 100644
> --- a/src/ipa/ipu3/algorithms/agc.cpp
> +++ b/src/ipa/ipu3/algorithms/agc.cpp
> @@ -158,17 +158,17 @@ void Agc::lockExposureGain(uint32_t &exposure, double &gain)
>  
>  		utils::Duration newExposure = 0.0s;
>  		if (currentShutter < maxShutterSpeed) {
> -			exposure = std::clamp<uint32_t>(exposure * currentExposure_ / currentExposureNoDg_,
> +			exposure = std::clamp<uint32_t>(exposure * filteredExposure_ / currentExposureNoDg_,
>  							minExposureLines_,
>  							maxExposureLines_);
> -			newExposure = currentExposure_ / exposure;
> -			gain = std::clamp(gain * currentExposure_ / newExposure,
> +			newExposure = filteredExposure_ / exposure;
> +			gain = std::clamp(gain * filteredExposure_ / newExposure,
>  					  kMinGain, kMaxGain);
>  		} else {
> -			gain = std::clamp(gain * currentExposure_ / currentExposureNoDg_,
> +			gain = std::clamp(gain * filteredExposure_ / currentExposureNoDg_,
>  					  kMinGain, kMaxGain);
> -			newExposure = currentExposure_ / gain;
> -			exposure = std::clamp<uint32_t>(exposure * currentExposure_ / newExposure,
> +			newExposure = filteredExposure_ / gain;
> +			exposure = std::clamp<uint32_t>(exposure * filteredExposure_ / newExposure,
>  							minExposureLines_,
>  							maxExposureLines_);
>  		}

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list