[libcamera-devel] [PATCH v4 32/32] ipa: rkisp1: awb: Remove bias from gain calculation

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Sep 23 01:26:01 CEST 2022


On Wed, Sep 21, 2022 at 12:48:35AM +0100, Kieran Bingham wrote:
> Quoting Laurent Pinchart via libcamera-devel (2022-09-08 02:42:00)
> > The red and blue gains are computed by dividing the green mean by the
> > red and blue means respectively. An offset of 1 is added to the dividers
> > to avoid divisions by zero. This introduces a bias in the gain values.
> > Fix it by clamping the divisors to a minimum of 1.0 instead of adding an
> > offset.
> 
> Sounds resonable. That 'hardcoded green gain of 0' is there, which
> doesn't make sense to me, but I've questioned that in an earlier patch.

I meant 1.0, not 0. I've fixed it.

> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > ---
> >  src/ipa/rkisp1/algorithms/awb.cpp | 7 ++++---
> >  1 file changed, 4 insertions(+), 3 deletions(-)
> > 
> > diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp
> > index 404ad66e6953..fe1ba09a99a2 100644
> > --- a/src/ipa/rkisp1/algorithms/awb.cpp
> > +++ b/src/ipa/rkisp1/algorithms/awb.cpp
> > @@ -280,10 +280,11 @@ void Awb::process(IPAContext &context,
> >  
> >         /*
> >          * Estimate the red and blue gains to apply in a grey world. The green
> > -        * gain is hardcoded to 0.
> > +        * gain is hardcoded to 0. Avoid divisions by zero by clamping the
> > +        * divisor to a minimum value of 1.0.
> >          */
> > -       double redGain = greenMean / (redMean + 1);
> > -       double blueGain = greenMean / (blueMean + 1);
> > +       double redGain = greenMean / std::max(redMean, 1.0);
> > +       double blueGain = greenMean / std::max(blueMean, 1.0);
> >  
> >         /*
> >          * Clamp the gain values to the hardware, which expresses gains as Q2.8

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list