[PATCH v3 15/16] ipa: rkisp1: awb: Take the CCM into account for the AWB gains calculation
Paul Elder
paul.elder at ideasonboard.com
Wed May 7 19:33:09 CEST 2025
On Thu, Apr 03, 2025 at 05:49:20PM +0200, Stefan Klug wrote:
> The AWB measurements are taken after the CCM. This can be seen by
> enabling debug logging on AWB, disabling AWB (stats will still be
> processed) and manually chaning the CCM.
>
> This means that the estimated colour temperature and the corresponding
> CCM also lead to changed rgbMeans which in turn leads to oscillations.
> Fix that by applying the inverse transform on the rgbMeans.
>
> Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
>
> ---
>
> Changes in v2:
> - Improved commit message
> - Added comment in the code
>
> Changes in v3:
> - Fixed typo in comment
> ---
> src/ipa/rkisp1/algorithms/awb.cpp | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp
> index 47b29725af51..03449e87e1a0 100644
> --- a/src/ipa/rkisp1/algorithms/awb.cpp
> +++ b/src/ipa/rkisp1/algorithms/awb.cpp
> @@ -397,6 +397,12 @@ RGB<double> Awb::calculateRgbMeans(const IPAFrameContext &frameContext, const rk
> rgbMeans = rgbMeans.max(0.0);
> }
>
> + /*
> + * The ISP computes the AWB means after applying the CCM. Apply the
> + * inverse as we want to get the raw means before the colour gains.
> + */
> + rgbMeans = frameContext.ccm.ccm.inverse() * rgbMeans;
> +
> /*
> * The ISP computes the AWB means after applying the colour gains,
> * divide by the gains that were used to get the raw means from the
> --
> 2.43.0
>
More information about the libcamera-devel
mailing list