ipa: rkisp1: Introduce AWB

The RkISP1 ISP calculates a mean value for Y, Cr and Cb at each frame.
There is a RGB mode which could theoretically give us the values for R,
G and B directly, but it seems to be failing right now.

Convert those values into R, G and B and estimate the gain to apply in a
grey world.

Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
Tested-by: Peter Griffin <peter.griffin@linaro.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Jean-Michel Hautbois
2022-02-24 15:39:50 +01:00
parent 8917c9e7ba
commit 4b2251509f
6 changed files with 258 additions and 0 deletions
+28
View File
@@ -81,6 +81,14 @@ namespace libcamera::ipa::rkisp1 {
* \brief Hardware revision of the ISP
*/
/**
* \var IPASessionConfiguration::awb
* \brief AWB parameters configuration of the IPA
*
* \var IPASessionConfiguration::awb.measureWindow
* \brief AWB measure window
*/
/**
* \var IPASessionConfiguration::sensor
* \brief Sensor-specific configuration of the IPA
@@ -105,6 +113,26 @@ namespace libcamera::ipa::rkisp1 {
* The gain should be adapted to the sensor specific gain code before applying.
*/
/**
* \var IPAFrameContext::awb
* \brief Context for the Automatic White Balance algorithm
*
* \struct IPAFrameContext::awb.gains
* \brief White balance gains
*
* \var IPAFrameContext::awb.gains.red
* \brief White balance gain for R channel
*
* \var IPAFrameContext::awb.gains.green
* \brief White balance gain for G channel
*
* \var IPAFrameContext::awb.gains.blue
* \brief White balance gain for B channel
*
* \var IPAFrameContext::awb.temperatureK
* \brief Estimated color temperature
*/
/**
* \var IPAFrameContext::sensor
* \brief Effective sensor values