[PATCH v1 2/5] ipa rkisp1: Remove temperatureK from FrameContext

Kieran Bingham kieran.bingham at ideasonboard.com
Mon Jul 15 01:47:23 CEST 2024


Quoting Stefan Klug (2024-07-12 15:32:03)
> The frame context is used to store data used for processing that frame.
> It is later used to either act as input for other algorithms or to fill
> the metadata.  For the colour temperature this is not needed, as the
> meatadata shall not contain the value that was active when the image was
> processed, but the value that was calculated based on the statistics for
> that image. This is no functional change.

Does any other algo want to know the current colour temperature though?

Oh, I see - they would get that from the activestate ... ? which would
then always be the most recently calculated 

> Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
> ---
>  src/ipa/rkisp1/algorithms/awb.cpp | 7 ++-----
>  src/ipa/rkisp1/ipa_context.h      | 1 -
>  2 files changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp
> index 1a5d4776970a..18f750207793 100644
> --- a/src/ipa/rkisp1/algorithms/awb.cpp
> +++ b/src/ipa/rkisp1/algorithms/awb.cpp
> @@ -277,7 +277,6 @@ void Awb::process(IPAContext &context,
>          */
>         if (redMean < kMeanMinThreshold && greenMean < kMeanMinThreshold &&
>             blueMean < kMeanMinThreshold) {
> -               frameContext.awb.temperatureK = activeState.awb.temperatureK;
>                 return;
>         }

The braces then become redundant here if this is a simple return ...

But other than that..

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

>  
> @@ -309,21 +308,19 @@ void Awb::process(IPAContext &context,
>         activeState.awb.gains.automatic.blue = blueGain;
>         activeState.awb.gains.automatic.green = 1.0;
>  
> -       frameContext.awb.temperatureK = activeState.awb.temperatureK;
> -
>         metadata.set(controls::AwbEnable, frameContext.awb.autoEnabled);
>         metadata.set(controls::ColourGains, {
>                         static_cast<float>(frameContext.awb.gains.red),
>                         static_cast<float>(frameContext.awb.gains.blue)
>                 });
> -       metadata.set(controls::ColourTemperature, frameContext.awb.temperatureK);
> +       metadata.set(controls::ColourTemperature, activeState.awb.temperatureK);
>  
>         LOG(RkISP1Awb, Debug) << std::showpoint
>                 << "Means [" << redMean << ", " << greenMean << ", " << blueMean
>                 << "], gains [" << activeState.awb.gains.automatic.red << ", "
>                 << activeState.awb.gains.automatic.green << ", "
>                 << activeState.awb.gains.automatic.blue << "], temp "
> -               << frameContext.awb.temperatureK << "K";
> +               << activeState.awb.temperatureK << "K";
>  }
>  
>  REGISTER_IPA_ALGORITHM(Awb, "Awb")
> diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h
> index 1d0e9030af1c..27a9bf62fc16 100644
> --- a/src/ipa/rkisp1/ipa_context.h
> +++ b/src/ipa/rkisp1/ipa_context.h
> @@ -136,7 +136,6 @@ struct IPAFrameContext : public FrameContext {
>                         double blue;
>                 } gains;
>  
> -               unsigned int temperatureK;
>                 bool autoEnabled;
>         } awb;
>  
> -- 
> 2.43.0
>


More information about the libcamera-devel mailing list