[PATCH 07/12] ipa: rkisp1: agc: Don't update histogram parameters unnecessarily

Kieran Bingham kieran.bingham at ideasonboard.com
Mon Jun 17 11:20:24 CEST 2024


Quoting Laurent Pinchart (2024-06-16 17:39:05)
> The ISP histogram parameters depends on the AE metering mode, but not on
> the other AE algorithm controls. The exposure mode, constraints mode and
> frame duration limits influence the behaviour of the algorithm, but not
> the histogram computation parameters. Update the histogram parameters
> only when AE metering mode changes.
> 

Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
>  src/ipa/rkisp1/algorithms/agc.cpp | 9 ++-------
>  1 file changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp
> index 9dac60bdb24e..9f3b59b45f95 100644
> --- a/src/ipa/rkisp1/algorithms/agc.cpp
> +++ b/src/ipa/rkisp1/algorithms/agc.cpp
> @@ -261,26 +261,21 @@ void Agc::queueRequest(IPAContext &context,
>         frameContext.agc.meteringMode = agc.meteringMode;
>  
>         const auto &exposureMode = controls.get(controls::AeExposureMode);
> -       if (exposureMode) {
> -               frameContext.agc.update = agc.exposureMode != *exposureMode;
> +       if (exposureMode)
>                 agc.exposureMode =
>                         static_cast<controls::AeExposureModeEnum>(*exposureMode);
> -       }
>         frameContext.agc.exposureMode = agc.exposureMode;
>  
>         const auto &constraintMode = controls.get(controls::AeConstraintMode);
> -       if (constraintMode) {
> -               frameContext.agc.update = agc.constraintMode != *constraintMode;
> +       if (constraintMode)
>                 agc.constraintMode =
>                         static_cast<controls::AeConstraintModeEnum>(*constraintMode);
> -       }
>         frameContext.agc.constraintMode = agc.constraintMode;
>  
>         const auto &frameDurationLimits = controls.get(controls::FrameDurationLimits);
>         if (frameDurationLimits) {
>                 utils::Duration maxShutterSpeed =
>                         std::chrono::milliseconds((*frameDurationLimits).back());
> -               frameContext.agc.update = agc.maxShutterSpeed != maxShutterSpeed;
>                 agc.maxShutterSpeed = maxShutterSpeed;
>         }
>         frameContext.agc.maxShutterSpeed = agc.maxShutterSpeed;
> -- 
> Regards,
> 
> Laurent Pinchart
>


More information about the libcamera-devel mailing list