media: staging: ipu3-imgu: Fix BNR wb gain documentation
Commit Message
The documentation states that the BNR factor is a multiplier coded as
u3.13 and with a range of (0, 8). This is not correct, as the isp is
adding 1.0 to the gain applied, ie Pout = { Pin * (1 + Gx) }.
It means that a gain of 1.0 should be coded as 0.
Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
---
drivers/staging/media/ipu3/include/uapi/intel-ipu3.h | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
Comments
Hi JM,
Quoting Jean-Michel Hautbois (2022-06-17 09:45:19)
> The documentation states that the BNR factor is a multiplier coded as
> u3.13 and with a range of (0, 8). This is not correct, as the isp is
> adding 1.0 to the gain applied, ie Pout = { Pin * (1 + Gx) }.
>
> It means that a gain of 1.0 should be coded as 0.
>
> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
> ---
> drivers/staging/media/ipu3/include/uapi/intel-ipu3.h | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/media/ipu3/include/uapi/intel-ipu3.h b/drivers/staging/media/ipu3/include/uapi/intel-ipu3.h
> index dbdd015ce220..caa358e0bae4 100644
> --- a/drivers/staging/media/ipu3/include/uapi/intel-ipu3.h
> +++ b/drivers/staging/media/ipu3/include/uapi/intel-ipu3.h
> @@ -626,8 +626,11 @@ struct ipu3_uapi_stats_3a {
> * @b: white balance gain for B channel.
> * @gb: white balance gain for Gb channel.
> *
> - * Precision u3.13, range [0, 8). White balance correction is done by applying
> - * a multiplicative gain to each color channels prior to BNR.
> + * For BNR parameters WB gain factor for the three channels [Ggr, Ggb, Gb, Gr].
As with the equivalent change on the libcamera IPA side, there are 4
channels, and the text could be updated to match I think.
With that done:
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> + * Their precision is U3.13 and the range is (0, 8) and the actual gain is
> + * Gx + 1, it is typically Gx = 1.
> + *
> + * Pout = {Pin * (1 + Gx)}.
> */
> struct ipu3_uapi_bnr_static_config_wb_gains_config {
> __u16 gr;
> --
> 2.34.1
>
@@ -626,8 +626,11 @@ struct ipu3_uapi_stats_3a {
* @b: white balance gain for B channel.
* @gb: white balance gain for Gb channel.
*
- * Precision u3.13, range [0, 8). White balance correction is done by applying
- * a multiplicative gain to each color channels prior to BNR.
+ * For BNR parameters WB gain factor for the three channels [Ggr, Ggb, Gb, Gr].
+ * Their precision is U3.13 and the range is (0, 8) and the actual gain is
+ * Gx + 1, it is typically Gx = 1.
+ *
+ * Pout = {Pin * (1 + Gx)}.
*/
struct ipu3_uapi_bnr_static_config_wb_gains_config {
__u16 gr;