ipa: rkisp1: awb: Expand comment
The RGB to YCbCr conversion matrix mentioned in a comment, coming from the hardware documentation, does not match any of the canonical matrices specified by any standard. While researching where the values came from, it became apparent they are likely Bt.601 limited range coefficients rounded to 6 bits of decimal precision. Record this in comments. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Milan Zamazal <mzamazal@redhat.com>
This commit is contained in:
parent
be22d4aa77
commit
f5db849732
1 changed files with 9 additions and 4 deletions
|
@ -210,13 +210,18 @@ void Awb::process(IPAContext &context,
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert from YCbCr to RGB.
|
* Convert from YCbCr to RGB. The hardware uses the following
|
||||||
* The hardware uses the following formulas:
|
* formulas:
|
||||||
* Y = 16 + 0.2500 R + 0.5000 G + 0.1094 B
|
*
|
||||||
|
* Y = 16 + 0.2500 R + 0.5000 G + 0.1094 B
|
||||||
* Cb = 128 - 0.1406 R - 0.2969 G + 0.4375 B
|
* Cb = 128 - 0.1406 R - 0.2969 G + 0.4375 B
|
||||||
* Cr = 128 + 0.4375 R - 0.3750 G - 0.0625 B
|
* Cr = 128 + 0.4375 R - 0.3750 G - 0.0625 B
|
||||||
*
|
*
|
||||||
* The inverse matrix is thus:
|
* This seems to be based on limited range BT.601 with Q1.6
|
||||||
|
* precision.
|
||||||
|
*
|
||||||
|
* The inverse matrix is:
|
||||||
|
*
|
||||||
* [[1,1636, -0,0623, 1,6008]
|
* [[1,1636, -0,0623, 1,6008]
|
||||||
* [1,1636, -0,4045, -0,7949]
|
* [1,1636, -0,4045, -0,7949]
|
||||||
* [1,1636, 1,9912, -0,0250]]
|
* [1,1636, 1,9912, -0,0250]]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue