ipa: rkisp1: awb: Remove bias from gain calculation
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. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
parent
9b389ce79e
commit
2f1efe50a9
1 changed files with 4 additions and 3 deletions
|
@ -280,10 +280,11 @@ void Awb::process(IPAContext &context,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Estimate the red and blue gains to apply in a grey world. The green
|
* Estimate the red and blue gains to apply in a grey world. The green
|
||||||
* gain is hardcoded to 1.0.
|
* gain is hardcoded to 1.0. Avoid divisions by zero by clamping the
|
||||||
|
* divisor to a minimum value of 1.0.
|
||||||
*/
|
*/
|
||||||
double redGain = greenMean / (redMean + 1);
|
double redGain = greenMean / std::max(redMean, 1.0);
|
||||||
double blueGain = greenMean / (blueMean + 1);
|
double blueGain = greenMean / std::max(blueMean, 1.0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clamp the gain values to the hardware, which expresses gains as Q2.8
|
* Clamp the gain values to the hardware, which expresses gains as Q2.8
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue