[libcamera-devel] [PATCH] ipa: ipu3: agc: Remove the saturation ratio test

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Nov 3 16:06:06 CET 2021


Quoting Jean-Michel Hautbois (2021-11-03 13:04:45)
> When the histogram is calculated, we check if a cell is saturated or not
> before cumulating its green value. This is wrong, and it can lead to an
> empty histogram in case of a fully saturated frame.

Does it now cause saturated cells to be included in the calculations in
an adverse way?

I.e. do we now go back to over saturated lights/windows causing us to
under-expose? or is this handled separately?


> This case is reported in bug #84.

Bug: https://bugs.libcamera.org/show_bug.cgi?id=84

> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
> ---
>  src/ipa/ipu3/algorithms/agc.cpp | 18 ++++++++----------
>  1 file changed, 8 insertions(+), 10 deletions(-)
> 
> diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp
> index b5d736c1..7ac8dfb2 100644
> --- a/src/ipa/ipu3/algorithms/agc.cpp
> +++ b/src/ipa/ipu3/algorithms/agc.cpp
> @@ -124,16 +124,14 @@ void Agc::measureBrightness(const ipu3_uapi_stats_3a *stats,
>                                         &stats->awb_raw_buffer.meta_data[cellPosition]
>                                 );
>  
> -                       if (cell->sat_ratio == 0) {
> -                               uint8_t gr = cell->Gr_avg;
> -                               uint8_t gb = cell->Gb_avg;
> -                               /*
> -                                * Store the average green value to estimate the
> -                                * brightness. Even the overexposed pixels are
> -                                * taken into account.
> -                                */
> -                               hist[(gr + gb) / 2]++;
> -                       }
> +                       uint8_t gr = cell->Gr_avg;
> +                       uint8_t gb = cell->Gb_avg;
> +                       /*
> +                       * Store the average green value to estimate the
> +                       * brightness. Even the overexposed pixels are
> +                       * taken into account.
> +                       */
> +                       hist[(gr + gb) / 2]++;
>                 }
>         }
>  
> -- 
> 2.32.0
>


More information about the libcamera-devel mailing list