154f38fcaSMauro Carvalho Chehab.. Permission is granted to copy, distribute and/or modify this 254f38fcaSMauro Carvalho Chehab.. document under the terms of the GNU Free Documentation License, 354f38fcaSMauro Carvalho Chehab.. Version 1.1 or any later version published by the Free Software 454f38fcaSMauro Carvalho Chehab.. Foundation, with no Invariant Sections, no Front-Cover Texts 554f38fcaSMauro Carvalho Chehab.. and no Back-Cover Texts. A copy of the license is included at 654f38fcaSMauro Carvalho Chehab.. Documentation/userspace-api/media/fdl-appendix.rst. 754f38fcaSMauro Carvalho Chehab.. 854f38fcaSMauro Carvalho Chehab.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections 954f38fcaSMauro Carvalho Chehab 1054f38fcaSMauro Carvalho Chehab******************************** 1154f38fcaSMauro Carvalho ChehabDetailed Colorspace Descriptions 1254f38fcaSMauro Carvalho Chehab******************************** 1354f38fcaSMauro Carvalho Chehab 1454f38fcaSMauro Carvalho Chehab 1554f38fcaSMauro Carvalho Chehab.. _col-smpte-170m: 1654f38fcaSMauro Carvalho Chehab 1754f38fcaSMauro Carvalho ChehabColorspace SMPTE 170M (V4L2_COLORSPACE_SMPTE170M) 1854f38fcaSMauro Carvalho Chehab================================================= 1954f38fcaSMauro Carvalho Chehab 2054f38fcaSMauro Carvalho ChehabThe :ref:`smpte170m` standard defines the colorspace used by NTSC and 2154f38fcaSMauro Carvalho ChehabPAL and by SDTV in general. The default transfer function is 2254f38fcaSMauro Carvalho Chehab``V4L2_XFER_FUNC_709``. The default Y'CbCr encoding is 2354f38fcaSMauro Carvalho Chehab``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is limited 2454f38fcaSMauro Carvalho Chehabrange. The chromaticities of the primary colors and the white reference 2554f38fcaSMauro Carvalho Chehabare: 2654f38fcaSMauro Carvalho Chehab 2754f38fcaSMauro Carvalho Chehab 2854f38fcaSMauro Carvalho Chehab 2954f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 3054f38fcaSMauro Carvalho Chehab 3154f38fcaSMauro Carvalho Chehab.. flat-table:: SMPTE 170M Chromaticities 3254f38fcaSMauro Carvalho Chehab :header-rows: 1 3354f38fcaSMauro Carvalho Chehab :stub-columns: 0 3454f38fcaSMauro Carvalho Chehab :widths: 1 1 2 3554f38fcaSMauro Carvalho Chehab 3654f38fcaSMauro Carvalho Chehab * - Color 3754f38fcaSMauro Carvalho Chehab - x 3854f38fcaSMauro Carvalho Chehab - y 3954f38fcaSMauro Carvalho Chehab * - Red 4054f38fcaSMauro Carvalho Chehab - 0.630 4154f38fcaSMauro Carvalho Chehab - 0.340 4254f38fcaSMauro Carvalho Chehab * - Green 4354f38fcaSMauro Carvalho Chehab - 0.310 4454f38fcaSMauro Carvalho Chehab - 0.595 4554f38fcaSMauro Carvalho Chehab * - Blue 4654f38fcaSMauro Carvalho Chehab - 0.155 4754f38fcaSMauro Carvalho Chehab - 0.070 4854f38fcaSMauro Carvalho Chehab * - White Reference (D65) 4954f38fcaSMauro Carvalho Chehab - 0.3127 5054f38fcaSMauro Carvalho Chehab - 0.3290 5154f38fcaSMauro Carvalho Chehab 5254f38fcaSMauro Carvalho Chehab 5354f38fcaSMauro Carvalho ChehabThe red, green and blue chromaticities are also often referred to as the 5454f38fcaSMauro Carvalho ChehabSMPTE C set, so this colorspace is sometimes called SMPTE C as well. 5554f38fcaSMauro Carvalho Chehab 5654f38fcaSMauro Carvalho ChehabThe transfer function defined for SMPTE 170M is the same as the one 5754f38fcaSMauro Carvalho Chehabdefined in Rec. 709. 5854f38fcaSMauro Carvalho Chehab 5954f38fcaSMauro Carvalho Chehab.. math:: 6054f38fcaSMauro Carvalho Chehab 6154f38fcaSMauro Carvalho Chehab L' = -1.099(-L)^{0.45} + 0.099 \text{, for } L \le-0.018 6254f38fcaSMauro Carvalho Chehab 6354f38fcaSMauro Carvalho Chehab L' = 4.5L \text{, for } -0.018 < L < 0.018 6454f38fcaSMauro Carvalho Chehab 6554f38fcaSMauro Carvalho Chehab L' = 1.099L^{0.45} - 0.099 \text{, for } L \ge 0.018 6654f38fcaSMauro Carvalho Chehab 6754f38fcaSMauro Carvalho ChehabInverse Transfer function: 6854f38fcaSMauro Carvalho Chehab 6954f38fcaSMauro Carvalho Chehab.. math:: 7054f38fcaSMauro Carvalho Chehab 7154f38fcaSMauro Carvalho Chehab L = -\left( \frac{L' - 0.099}{-1.099} \right) ^{\frac{1}{0.45}} \text{, for } L' \le -0.081 7254f38fcaSMauro Carvalho Chehab 7354f38fcaSMauro Carvalho Chehab L = \frac{L'}{4.5} \text{, for } -0.081 < L' < 0.081 7454f38fcaSMauro Carvalho Chehab 7554f38fcaSMauro Carvalho Chehab L = \left(\frac{L' + 0.099}{1.099}\right)^{\frac{1}{0.45} } \text{, for } L' \ge 0.081 7654f38fcaSMauro Carvalho Chehab 7754f38fcaSMauro Carvalho ChehabThe luminance (Y') and color difference (Cb and Cr) are obtained with 7854f38fcaSMauro Carvalho Chehabthe following ``V4L2_YCBCR_ENC_601`` encoding: 7954f38fcaSMauro Carvalho Chehab 8054f38fcaSMauro Carvalho Chehab.. math:: 8154f38fcaSMauro Carvalho Chehab 8254f38fcaSMauro Carvalho Chehab Y' = 0.2990R' + 0.5870G' + 0.1140B' 8354f38fcaSMauro Carvalho Chehab 8454f38fcaSMauro Carvalho Chehab Cb = -0.1687R' - 0.3313G' + 0.5B' 8554f38fcaSMauro Carvalho Chehab 8654f38fcaSMauro Carvalho Chehab Cr = 0.5R' - 0.4187G' - 0.0813B' 8754f38fcaSMauro Carvalho Chehab 8854f38fcaSMauro Carvalho ChehabY' is clamped to the range [0…1] and Cb and Cr are clamped to the range 8954f38fcaSMauro Carvalho Chehab[-0.5…0.5]. This conversion to Y'CbCr is identical to the one defined in 9054f38fcaSMauro Carvalho Chehabthe :ref:`itu601` standard and this colorspace is sometimes called 9154f38fcaSMauro Carvalho ChehabBT.601 as well, even though BT.601 does not mention any color primaries. 9254f38fcaSMauro Carvalho Chehab 9354f38fcaSMauro Carvalho ChehabThe default quantization is limited range, but full range is possible 9454f38fcaSMauro Carvalho Chehabalthough rarely seen. 9554f38fcaSMauro Carvalho Chehab 9654f38fcaSMauro Carvalho Chehab 9754f38fcaSMauro Carvalho Chehab.. _col-rec709: 9854f38fcaSMauro Carvalho Chehab 9954f38fcaSMauro Carvalho ChehabColorspace Rec. 709 (V4L2_COLORSPACE_REC709) 10054f38fcaSMauro Carvalho Chehab============================================ 10154f38fcaSMauro Carvalho Chehab 10254f38fcaSMauro Carvalho ChehabThe :ref:`itu709` standard defines the colorspace used by HDTV in 10354f38fcaSMauro Carvalho Chehabgeneral. The default transfer function is ``V4L2_XFER_FUNC_709``. The 10454f38fcaSMauro Carvalho Chehabdefault Y'CbCr encoding is ``V4L2_YCBCR_ENC_709``. The default Y'CbCr 10554f38fcaSMauro Carvalho Chehabquantization is limited range. The chromaticities of the primary colors 10654f38fcaSMauro Carvalho Chehaband the white reference are: 10754f38fcaSMauro Carvalho Chehab 10854f38fcaSMauro Carvalho Chehab 10954f38fcaSMauro Carvalho Chehab 11054f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 11154f38fcaSMauro Carvalho Chehab 11254f38fcaSMauro Carvalho Chehab.. flat-table:: Rec. 709 Chromaticities 11354f38fcaSMauro Carvalho Chehab :header-rows: 1 11454f38fcaSMauro Carvalho Chehab :stub-columns: 0 11554f38fcaSMauro Carvalho Chehab :widths: 1 1 2 11654f38fcaSMauro Carvalho Chehab 11754f38fcaSMauro Carvalho Chehab * - Color 11854f38fcaSMauro Carvalho Chehab - x 11954f38fcaSMauro Carvalho Chehab - y 12054f38fcaSMauro Carvalho Chehab * - Red 12154f38fcaSMauro Carvalho Chehab - 0.640 12254f38fcaSMauro Carvalho Chehab - 0.330 12354f38fcaSMauro Carvalho Chehab * - Green 12454f38fcaSMauro Carvalho Chehab - 0.300 12554f38fcaSMauro Carvalho Chehab - 0.600 12654f38fcaSMauro Carvalho Chehab * - Blue 12754f38fcaSMauro Carvalho Chehab - 0.150 12854f38fcaSMauro Carvalho Chehab - 0.060 12954f38fcaSMauro Carvalho Chehab * - White Reference (D65) 13054f38fcaSMauro Carvalho Chehab - 0.3127 13154f38fcaSMauro Carvalho Chehab - 0.3290 13254f38fcaSMauro Carvalho Chehab 13354f38fcaSMauro Carvalho Chehab 13454f38fcaSMauro Carvalho ChehabThe full name of this standard is Rec. ITU-R BT.709-5. 13554f38fcaSMauro Carvalho Chehab 13654f38fcaSMauro Carvalho ChehabTransfer function. Normally L is in the range [0…1], but for the 13754f38fcaSMauro Carvalho Chehabextended gamut xvYCC encoding values outside that range are allowed. 13854f38fcaSMauro Carvalho Chehab 13954f38fcaSMauro Carvalho Chehab.. math:: 14054f38fcaSMauro Carvalho Chehab 14154f38fcaSMauro Carvalho Chehab L' = -1.099(-L)^{0.45} + 0.099 \text{, for } L \le -0.018 14254f38fcaSMauro Carvalho Chehab 14354f38fcaSMauro Carvalho Chehab L' = 4.5L \text{, for } -0.018 < L < 0.018 14454f38fcaSMauro Carvalho Chehab 14554f38fcaSMauro Carvalho Chehab L' = 1.099L^{0.45} - 0.099 \text{, for } L \ge 0.018 14654f38fcaSMauro Carvalho Chehab 14754f38fcaSMauro Carvalho ChehabInverse Transfer function: 14854f38fcaSMauro Carvalho Chehab 14954f38fcaSMauro Carvalho Chehab.. math:: 15054f38fcaSMauro Carvalho Chehab 15154f38fcaSMauro Carvalho Chehab L = -\left( \frac{L' - 0.099}{-1.099} \right)^\frac{1}{0.45} \text{, for } L' \le -0.081 15254f38fcaSMauro Carvalho Chehab 15354f38fcaSMauro Carvalho Chehab L = \frac{L'}{4.5}\text{, for } -0.081 < L' < 0.081 15454f38fcaSMauro Carvalho Chehab 15554f38fcaSMauro Carvalho Chehab L = \left(\frac{L' + 0.099}{1.099}\right)^{\frac{1}{0.45} } \text{, for } L' \ge 0.081 15654f38fcaSMauro Carvalho Chehab 15754f38fcaSMauro Carvalho ChehabThe luminance (Y') and color difference (Cb and Cr) are obtained with 15854f38fcaSMauro Carvalho Chehabthe following ``V4L2_YCBCR_ENC_709`` encoding: 15954f38fcaSMauro Carvalho Chehab 16054f38fcaSMauro Carvalho Chehab.. math:: 16154f38fcaSMauro Carvalho Chehab 16254f38fcaSMauro Carvalho Chehab Y' = 0.2126R' + 0.7152G' + 0.0722B' 16354f38fcaSMauro Carvalho Chehab 16454f38fcaSMauro Carvalho Chehab Cb = -0.1146R' - 0.3854G' + 0.5B' 16554f38fcaSMauro Carvalho Chehab 16654f38fcaSMauro Carvalho Chehab Cr = 0.5R' - 0.4542G' - 0.0458B' 16754f38fcaSMauro Carvalho Chehab 16854f38fcaSMauro Carvalho ChehabY' is clamped to the range [0…1] and Cb and Cr are clamped to the range 16954f38fcaSMauro Carvalho Chehab[-0.5…0.5]. 17054f38fcaSMauro Carvalho Chehab 17154f38fcaSMauro Carvalho ChehabThe default quantization is limited range, but full range is possible 17254f38fcaSMauro Carvalho Chehabalthough rarely seen. 17354f38fcaSMauro Carvalho Chehab 17454f38fcaSMauro Carvalho ChehabThe ``V4L2_YCBCR_ENC_709`` encoding described above is the default for 17554f38fcaSMauro Carvalho Chehabthis colorspace, but it can be overridden with ``V4L2_YCBCR_ENC_601``, 17654f38fcaSMauro Carvalho Chehabin which case the BT.601 Y'CbCr encoding is used. 17754f38fcaSMauro Carvalho Chehab 17854f38fcaSMauro Carvalho ChehabTwo additional extended gamut Y'CbCr encodings are also possible with 17954f38fcaSMauro Carvalho Chehabthis colorspace: 18054f38fcaSMauro Carvalho Chehab 18154f38fcaSMauro Carvalho ChehabThe xvYCC 709 encoding (``V4L2_YCBCR_ENC_XV709``, :ref:`xvycc`) is 18254f38fcaSMauro Carvalho Chehabsimilar to the Rec. 709 encoding, but it allows for R', G' and B' values 18354f38fcaSMauro Carvalho Chehabthat are outside the range [0…1]. The resulting Y', Cb and Cr values are 18454f38fcaSMauro Carvalho Chehabscaled and offset according to the limited range formula: 18554f38fcaSMauro Carvalho Chehab 18654f38fcaSMauro Carvalho Chehab.. math:: 18754f38fcaSMauro Carvalho Chehab 18854f38fcaSMauro Carvalho Chehab Y' = \frac{219}{256} * (0.2126R' + 0.7152G' + 0.0722B') + \frac{16}{256} 18954f38fcaSMauro Carvalho Chehab 19054f38fcaSMauro Carvalho Chehab Cb = \frac{224}{256} * (-0.1146R' - 0.3854G' + 0.5B') 19154f38fcaSMauro Carvalho Chehab 19254f38fcaSMauro Carvalho Chehab Cr = \frac{224}{256} * (0.5R' - 0.4542G' - 0.0458B') 19354f38fcaSMauro Carvalho Chehab 19454f38fcaSMauro Carvalho ChehabThe xvYCC 601 encoding (``V4L2_YCBCR_ENC_XV601``, :ref:`xvycc`) is 19554f38fcaSMauro Carvalho Chehabsimilar to the BT.601 encoding, but it allows for R', G' and B' values 19654f38fcaSMauro Carvalho Chehabthat are outside the range [0…1]. The resulting Y', Cb and Cr values are 19754f38fcaSMauro Carvalho Chehabscaled and offset according to the limited range formula: 19854f38fcaSMauro Carvalho Chehab 19954f38fcaSMauro Carvalho Chehab.. math:: 20054f38fcaSMauro Carvalho Chehab 20154f38fcaSMauro Carvalho Chehab Y' = \frac{219}{256} * (0.2990R' + 0.5870G' + 0.1140B') + \frac{16}{256} 20254f38fcaSMauro Carvalho Chehab 20354f38fcaSMauro Carvalho Chehab Cb = \frac{224}{256} * (-0.1687R' - 0.3313G' + 0.5B') 20454f38fcaSMauro Carvalho Chehab 20554f38fcaSMauro Carvalho Chehab Cr = \frac{224}{256} * (0.5R' - 0.4187G' - 0.0813B') 20654f38fcaSMauro Carvalho Chehab 20754f38fcaSMauro Carvalho ChehabY' is clamped to the range [0…1] and Cb and Cr are clamped to the range 20854f38fcaSMauro Carvalho Chehab[-0.5…0.5] and quantized without further scaling or offsets. 20954f38fcaSMauro Carvalho ChehabThe non-standard xvYCC 709 or xvYCC 601 encodings can be 21054f38fcaSMauro Carvalho Chehabused by selecting ``V4L2_YCBCR_ENC_XV709`` or ``V4L2_YCBCR_ENC_XV601``. 21154f38fcaSMauro Carvalho ChehabAs seen by the xvYCC formulas these encodings always use limited range quantization, 21254f38fcaSMauro Carvalho Chehabthere is no full range variant. The whole point of these extended gamut encodings 21354f38fcaSMauro Carvalho Chehabis that values outside the limited range are still valid, although they 21454f38fcaSMauro Carvalho Chehabmap to R', G' and B' values outside the [0…1] range and are therefore outside 21554f38fcaSMauro Carvalho Chehabthe Rec. 709 colorspace gamut. 21654f38fcaSMauro Carvalho Chehab 21754f38fcaSMauro Carvalho Chehab 21854f38fcaSMauro Carvalho Chehab.. _col-srgb: 21954f38fcaSMauro Carvalho Chehab 22054f38fcaSMauro Carvalho ChehabColorspace sRGB (V4L2_COLORSPACE_SRGB) 22154f38fcaSMauro Carvalho Chehab====================================== 22254f38fcaSMauro Carvalho Chehab 22354f38fcaSMauro Carvalho ChehabThe :ref:`srgb` standard defines the colorspace used by most webcams 22454f38fcaSMauro Carvalho Chehaband computer graphics. The default transfer function is 22554f38fcaSMauro Carvalho Chehab``V4L2_XFER_FUNC_SRGB``. The default Y'CbCr encoding is 22654f38fcaSMauro Carvalho Chehab``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is limited range. 22754f38fcaSMauro Carvalho Chehab 22854f38fcaSMauro Carvalho ChehabNote that the :ref:`sycc` standard specifies full range quantization, 22954f38fcaSMauro Carvalho Chehabhowever all current capture hardware supported by the kernel convert 23054f38fcaSMauro Carvalho ChehabR'G'B' to limited range Y'CbCr. So choosing full range as the default 23154f38fcaSMauro Carvalho Chehabwould break how applications interpret the quantization range. 23254f38fcaSMauro Carvalho Chehab 23354f38fcaSMauro Carvalho ChehabThe chromaticities of the primary colors and the white reference are: 23454f38fcaSMauro Carvalho Chehab 23554f38fcaSMauro Carvalho Chehab 23654f38fcaSMauro Carvalho Chehab 23754f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 23854f38fcaSMauro Carvalho Chehab 23954f38fcaSMauro Carvalho Chehab.. flat-table:: sRGB Chromaticities 24054f38fcaSMauro Carvalho Chehab :header-rows: 1 24154f38fcaSMauro Carvalho Chehab :stub-columns: 0 24254f38fcaSMauro Carvalho Chehab :widths: 1 1 2 24354f38fcaSMauro Carvalho Chehab 24454f38fcaSMauro Carvalho Chehab * - Color 24554f38fcaSMauro Carvalho Chehab - x 24654f38fcaSMauro Carvalho Chehab - y 24754f38fcaSMauro Carvalho Chehab * - Red 24854f38fcaSMauro Carvalho Chehab - 0.640 24954f38fcaSMauro Carvalho Chehab - 0.330 25054f38fcaSMauro Carvalho Chehab * - Green 25154f38fcaSMauro Carvalho Chehab - 0.300 25254f38fcaSMauro Carvalho Chehab - 0.600 25354f38fcaSMauro Carvalho Chehab * - Blue 25454f38fcaSMauro Carvalho Chehab - 0.150 25554f38fcaSMauro Carvalho Chehab - 0.060 25654f38fcaSMauro Carvalho Chehab * - White Reference (D65) 25754f38fcaSMauro Carvalho Chehab - 0.3127 25854f38fcaSMauro Carvalho Chehab - 0.3290 25954f38fcaSMauro Carvalho Chehab 26054f38fcaSMauro Carvalho Chehab 26154f38fcaSMauro Carvalho ChehabThese chromaticities are identical to the Rec. 709 colorspace. 26254f38fcaSMauro Carvalho Chehab 26354f38fcaSMauro Carvalho ChehabTransfer function. Note that negative values for L are only used by the 26454f38fcaSMauro Carvalho ChehabY'CbCr conversion. 26554f38fcaSMauro Carvalho Chehab 26654f38fcaSMauro Carvalho Chehab.. math:: 26754f38fcaSMauro Carvalho Chehab 26854f38fcaSMauro Carvalho Chehab L' = -1.055(-L)^{\frac{1}{2.4} } + 0.055\text{, for }L < -0.0031308 26954f38fcaSMauro Carvalho Chehab 27054f38fcaSMauro Carvalho Chehab L' = 12.92L\text{, for }-0.0031308 \le L \le 0.0031308 27154f38fcaSMauro Carvalho Chehab 27254f38fcaSMauro Carvalho Chehab L' = 1.055L ^{\frac{1}{2.4} } - 0.055\text{, for }0.0031308 < L \le 1 27354f38fcaSMauro Carvalho Chehab 27454f38fcaSMauro Carvalho ChehabInverse Transfer function: 27554f38fcaSMauro Carvalho Chehab 27654f38fcaSMauro Carvalho Chehab.. math:: 27754f38fcaSMauro Carvalho Chehab 27854f38fcaSMauro Carvalho Chehab L = -((-L' + 0.055) / 1.055) ^{2.4}\text{, for }L' < -0.04045 27954f38fcaSMauro Carvalho Chehab 28054f38fcaSMauro Carvalho Chehab L = L' / 12.92\text{, for }-0.04045 \le L' \le 0.04045 28154f38fcaSMauro Carvalho Chehab 28254f38fcaSMauro Carvalho Chehab L = ((L' + 0.055) / 1.055) ^{2.4}\text{, for }L' > 0.04045 28354f38fcaSMauro Carvalho Chehab 28454f38fcaSMauro Carvalho ChehabThe luminance (Y') and color difference (Cb and Cr) are obtained with 28554f38fcaSMauro Carvalho Chehabthe following ``V4L2_YCBCR_ENC_601`` encoding as defined by :ref:`sycc`: 28654f38fcaSMauro Carvalho Chehab 28754f38fcaSMauro Carvalho Chehab.. math:: 28854f38fcaSMauro Carvalho Chehab 28954f38fcaSMauro Carvalho Chehab Y' = 0.2990R' + 0.5870G' + 0.1140B' 29054f38fcaSMauro Carvalho Chehab 29154f38fcaSMauro Carvalho Chehab Cb = -0.1687R' - 0.3313G' + 0.5B' 29254f38fcaSMauro Carvalho Chehab 29354f38fcaSMauro Carvalho Chehab Cr = 0.5R' - 0.4187G' - 0.0813B' 29454f38fcaSMauro Carvalho Chehab 29554f38fcaSMauro Carvalho ChehabY' is clamped to the range [0…1] and Cb and Cr are clamped to the range 29654f38fcaSMauro Carvalho Chehab[-0.5…0.5]. This transform is identical to one defined in SMPTE 29754f38fcaSMauro Carvalho Chehab170M/BT.601. The Y'CbCr quantization is limited range. 29854f38fcaSMauro Carvalho Chehab 29954f38fcaSMauro Carvalho Chehab 30054f38fcaSMauro Carvalho Chehab.. _col-oprgb: 30154f38fcaSMauro Carvalho Chehab 30254f38fcaSMauro Carvalho ChehabColorspace opRGB (V4L2_COLORSPACE_OPRGB) 30354f38fcaSMauro Carvalho Chehab=============================================== 30454f38fcaSMauro Carvalho Chehab 30554f38fcaSMauro Carvalho ChehabThe :ref:`oprgb` standard defines the colorspace used by computer 30654f38fcaSMauro Carvalho Chehabgraphics that use the opRGB colorspace. The default transfer function is 30754f38fcaSMauro Carvalho Chehab``V4L2_XFER_FUNC_OPRGB``. The default Y'CbCr encoding is 30854f38fcaSMauro Carvalho Chehab``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is limited 30954f38fcaSMauro Carvalho Chehabrange. 31054f38fcaSMauro Carvalho Chehab 31154f38fcaSMauro Carvalho ChehabNote that the :ref:`oprgb` standard specifies full range quantization, 31254f38fcaSMauro Carvalho Chehabhowever all current capture hardware supported by the kernel convert 31354f38fcaSMauro Carvalho ChehabR'G'B' to limited range Y'CbCr. So choosing full range as the default 31454f38fcaSMauro Carvalho Chehabwould break how applications interpret the quantization range. 31554f38fcaSMauro Carvalho Chehab 31654f38fcaSMauro Carvalho ChehabThe chromaticities of the primary colors and the white reference are: 31754f38fcaSMauro Carvalho Chehab 31854f38fcaSMauro Carvalho Chehab 31954f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 32054f38fcaSMauro Carvalho Chehab 32154f38fcaSMauro Carvalho Chehab.. flat-table:: opRGB Chromaticities 32254f38fcaSMauro Carvalho Chehab :header-rows: 1 32354f38fcaSMauro Carvalho Chehab :stub-columns: 0 32454f38fcaSMauro Carvalho Chehab :widths: 1 1 2 32554f38fcaSMauro Carvalho Chehab 32654f38fcaSMauro Carvalho Chehab * - Color 32754f38fcaSMauro Carvalho Chehab - x 32854f38fcaSMauro Carvalho Chehab - y 32954f38fcaSMauro Carvalho Chehab * - Red 33054f38fcaSMauro Carvalho Chehab - 0.6400 33154f38fcaSMauro Carvalho Chehab - 0.3300 33254f38fcaSMauro Carvalho Chehab * - Green 33354f38fcaSMauro Carvalho Chehab - 0.2100 33454f38fcaSMauro Carvalho Chehab - 0.7100 33554f38fcaSMauro Carvalho Chehab * - Blue 33654f38fcaSMauro Carvalho Chehab - 0.1500 33754f38fcaSMauro Carvalho Chehab - 0.0600 33854f38fcaSMauro Carvalho Chehab * - White Reference (D65) 33954f38fcaSMauro Carvalho Chehab - 0.3127 34054f38fcaSMauro Carvalho Chehab - 0.3290 34154f38fcaSMauro Carvalho Chehab 34254f38fcaSMauro Carvalho Chehab 34354f38fcaSMauro Carvalho Chehab 34454f38fcaSMauro Carvalho ChehabTransfer function: 34554f38fcaSMauro Carvalho Chehab 34654f38fcaSMauro Carvalho Chehab.. math:: 34754f38fcaSMauro Carvalho Chehab 34854f38fcaSMauro Carvalho Chehab L' = L ^{\frac{1}{2.19921875}} 34954f38fcaSMauro Carvalho Chehab 35054f38fcaSMauro Carvalho ChehabInverse Transfer function: 35154f38fcaSMauro Carvalho Chehab 35254f38fcaSMauro Carvalho Chehab.. math:: 35354f38fcaSMauro Carvalho Chehab 35454f38fcaSMauro Carvalho Chehab L = L'^{(2.19921875)} 35554f38fcaSMauro Carvalho Chehab 35654f38fcaSMauro Carvalho ChehabThe luminance (Y') and color difference (Cb and Cr) are obtained with 35754f38fcaSMauro Carvalho Chehabthe following ``V4L2_YCBCR_ENC_601`` encoding: 35854f38fcaSMauro Carvalho Chehab 35954f38fcaSMauro Carvalho Chehab.. math:: 36054f38fcaSMauro Carvalho Chehab 36154f38fcaSMauro Carvalho Chehab Y' = 0.2990R' + 0.5870G' + 0.1140B' 36254f38fcaSMauro Carvalho Chehab 36354f38fcaSMauro Carvalho Chehab Cb = -0.1687R' - 0.3313G' + 0.5B' 36454f38fcaSMauro Carvalho Chehab 36554f38fcaSMauro Carvalho Chehab Cr = 0.5R' - 0.4187G' - 0.0813B' 36654f38fcaSMauro Carvalho Chehab 36754f38fcaSMauro Carvalho ChehabY' is clamped to the range [0…1] and Cb and Cr are clamped to the range 36854f38fcaSMauro Carvalho Chehab[-0.5…0.5]. This transform is identical to one defined in SMPTE 36954f38fcaSMauro Carvalho Chehab170M/BT.601. The Y'CbCr quantization is limited range. 37054f38fcaSMauro Carvalho Chehab 37154f38fcaSMauro Carvalho Chehab 37254f38fcaSMauro Carvalho Chehab.. _col-bt2020: 37354f38fcaSMauro Carvalho Chehab 37454f38fcaSMauro Carvalho ChehabColorspace BT.2020 (V4L2_COLORSPACE_BT2020) 37554f38fcaSMauro Carvalho Chehab=========================================== 37654f38fcaSMauro Carvalho Chehab 37754f38fcaSMauro Carvalho ChehabThe :ref:`itu2020` standard defines the colorspace used by Ultra-high 37854f38fcaSMauro Carvalho Chehabdefinition television (UHDTV). The default transfer function is 37954f38fcaSMauro Carvalho Chehab``V4L2_XFER_FUNC_709``. The default Y'CbCr encoding is 380*b305dfe2SHans Verkuil``V4L2_YCBCR_ENC_BT2020``. The default Y'CbCr quantization is limited range. 381*b305dfe2SHans VerkuilThe chromaticities of the primary colors and the white reference are: 38254f38fcaSMauro Carvalho Chehab 38354f38fcaSMauro Carvalho Chehab 38454f38fcaSMauro Carvalho Chehab 38554f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 38654f38fcaSMauro Carvalho Chehab 38754f38fcaSMauro Carvalho Chehab.. flat-table:: BT.2020 Chromaticities 38854f38fcaSMauro Carvalho Chehab :header-rows: 1 38954f38fcaSMauro Carvalho Chehab :stub-columns: 0 39054f38fcaSMauro Carvalho Chehab :widths: 1 1 2 39154f38fcaSMauro Carvalho Chehab 39254f38fcaSMauro Carvalho Chehab * - Color 39354f38fcaSMauro Carvalho Chehab - x 39454f38fcaSMauro Carvalho Chehab - y 39554f38fcaSMauro Carvalho Chehab * - Red 39654f38fcaSMauro Carvalho Chehab - 0.708 39754f38fcaSMauro Carvalho Chehab - 0.292 39854f38fcaSMauro Carvalho Chehab * - Green 39954f38fcaSMauro Carvalho Chehab - 0.170 40054f38fcaSMauro Carvalho Chehab - 0.797 40154f38fcaSMauro Carvalho Chehab * - Blue 40254f38fcaSMauro Carvalho Chehab - 0.131 40354f38fcaSMauro Carvalho Chehab - 0.046 40454f38fcaSMauro Carvalho Chehab * - White Reference (D65) 40554f38fcaSMauro Carvalho Chehab - 0.3127 40654f38fcaSMauro Carvalho Chehab - 0.3290 40754f38fcaSMauro Carvalho Chehab 40854f38fcaSMauro Carvalho Chehab 40954f38fcaSMauro Carvalho Chehab 41054f38fcaSMauro Carvalho ChehabTransfer function (same as Rec. 709): 41154f38fcaSMauro Carvalho Chehab 41254f38fcaSMauro Carvalho Chehab.. math:: 41354f38fcaSMauro Carvalho Chehab 41454f38fcaSMauro Carvalho Chehab L' = 4.5L\text{, for }0 \le L < 0.018 41554f38fcaSMauro Carvalho Chehab 41654f38fcaSMauro Carvalho Chehab L' = 1.099L ^{0.45} - 0.099\text{, for } 0.018 \le L \le 1 41754f38fcaSMauro Carvalho Chehab 41854f38fcaSMauro Carvalho ChehabInverse Transfer function: 41954f38fcaSMauro Carvalho Chehab 42054f38fcaSMauro Carvalho Chehab.. math:: 42154f38fcaSMauro Carvalho Chehab 42254f38fcaSMauro Carvalho Chehab L = L' / 4.5\text{, for } L' < 0.081 42354f38fcaSMauro Carvalho Chehab 42454f38fcaSMauro Carvalho Chehab L = \left( \frac{L' + 0.099}{1.099}\right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.081 42554f38fcaSMauro Carvalho Chehab 42654f38fcaSMauro Carvalho ChehabPlease note that while Rec. 709 is defined as the default transfer function 42754f38fcaSMauro Carvalho Chehabby the :ref:`itu2020` standard, in practice this colorspace is often used 42854f38fcaSMauro Carvalho Chehabwith the :ref:`xf-smpte-2084`. In particular Ultra HD Blu-ray discs use 42954f38fcaSMauro Carvalho Chehabthis combination. 43054f38fcaSMauro Carvalho Chehab 43154f38fcaSMauro Carvalho ChehabThe luminance (Y') and color difference (Cb and Cr) are obtained with 43254f38fcaSMauro Carvalho Chehabthe following ``V4L2_YCBCR_ENC_BT2020`` encoding: 43354f38fcaSMauro Carvalho Chehab 43454f38fcaSMauro Carvalho Chehab.. math:: 43554f38fcaSMauro Carvalho Chehab 43654f38fcaSMauro Carvalho Chehab Y' = 0.2627R' + 0.6780G' + 0.0593B' 43754f38fcaSMauro Carvalho Chehab 43854f38fcaSMauro Carvalho Chehab Cb = -0.1396R' - 0.3604G' + 0.5B' 43954f38fcaSMauro Carvalho Chehab 44054f38fcaSMauro Carvalho Chehab Cr = 0.5R' - 0.4598G' - 0.0402B' 44154f38fcaSMauro Carvalho Chehab 44254f38fcaSMauro Carvalho ChehabY' is clamped to the range [0…1] and Cb and Cr are clamped to the range 44354f38fcaSMauro Carvalho Chehab[-0.5…0.5]. The Y'CbCr quantization is limited range. 44454f38fcaSMauro Carvalho Chehab 44554f38fcaSMauro Carvalho ChehabThere is also an alternate constant luminance R'G'B' to Yc'CbcCrc 44654f38fcaSMauro Carvalho Chehab(``V4L2_YCBCR_ENC_BT2020_CONST_LUM``) encoding: 44754f38fcaSMauro Carvalho Chehab 44854f38fcaSMauro Carvalho ChehabLuma: 44954f38fcaSMauro Carvalho Chehab 45054f38fcaSMauro Carvalho Chehab.. math:: 45154f38fcaSMauro Carvalho Chehab :nowrap: 45254f38fcaSMauro Carvalho Chehab 45354f38fcaSMauro Carvalho Chehab \begin{align*} 45454f38fcaSMauro Carvalho Chehab Yc' = (0.2627R + 0.6780G + 0.0593B)'& \\ 45554f38fcaSMauro Carvalho Chehab B' - Yc' \le 0:& \\ 45654f38fcaSMauro Carvalho Chehab &Cbc = (B' - Yc') / 1.9404 \\ 45754f38fcaSMauro Carvalho Chehab B' - Yc' > 0: & \\ 45854f38fcaSMauro Carvalho Chehab &Cbc = (B' - Yc') / 1.5816 \\ 45954f38fcaSMauro Carvalho Chehab R' - Yc' \le 0:& \\ 46054f38fcaSMauro Carvalho Chehab &Crc = (R' - Y') / 1.7184 \\ 46154f38fcaSMauro Carvalho Chehab R' - Yc' > 0:& \\ 46254f38fcaSMauro Carvalho Chehab &Crc = (R' - Y') / 0.9936 46354f38fcaSMauro Carvalho Chehab \end{align*} 46454f38fcaSMauro Carvalho Chehab 46554f38fcaSMauro Carvalho ChehabYc' is clamped to the range [0…1] and Cbc and Crc are clamped to the 46654f38fcaSMauro Carvalho Chehabrange [-0.5…0.5]. The Yc'CbcCrc quantization is limited range. 46754f38fcaSMauro Carvalho Chehab 46854f38fcaSMauro Carvalho Chehab 46954f38fcaSMauro Carvalho Chehab.. _col-dcip3: 47054f38fcaSMauro Carvalho Chehab 47154f38fcaSMauro Carvalho ChehabColorspace DCI-P3 (V4L2_COLORSPACE_DCI_P3) 47254f38fcaSMauro Carvalho Chehab========================================== 47354f38fcaSMauro Carvalho Chehab 47454f38fcaSMauro Carvalho ChehabThe :ref:`smpte431` standard defines the colorspace used by cinema 47554f38fcaSMauro Carvalho Chehabprojectors that use the DCI-P3 colorspace. The default transfer function 47654f38fcaSMauro Carvalho Chehabis ``V4L2_XFER_FUNC_DCI_P3``. The default Y'CbCr encoding is 47754f38fcaSMauro Carvalho Chehab``V4L2_YCBCR_ENC_709``. The default Y'CbCr quantization is limited range. 47854f38fcaSMauro Carvalho Chehab 47954f38fcaSMauro Carvalho Chehab.. note:: 48054f38fcaSMauro Carvalho Chehab 48154f38fcaSMauro Carvalho Chehab Note that this colorspace standard does not specify a 48254f38fcaSMauro Carvalho Chehab Y'CbCr encoding since it is not meant to be encoded to Y'CbCr. So this 48354f38fcaSMauro Carvalho Chehab default Y'CbCr encoding was picked because it is the HDTV encoding. 48454f38fcaSMauro Carvalho Chehab 48554f38fcaSMauro Carvalho ChehabThe chromaticities of the primary colors and the white reference are: 48654f38fcaSMauro Carvalho Chehab 48754f38fcaSMauro Carvalho Chehab 48854f38fcaSMauro Carvalho Chehab 48954f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 49054f38fcaSMauro Carvalho Chehab 49154f38fcaSMauro Carvalho Chehab.. flat-table:: DCI-P3 Chromaticities 49254f38fcaSMauro Carvalho Chehab :header-rows: 1 49354f38fcaSMauro Carvalho Chehab :stub-columns: 0 49454f38fcaSMauro Carvalho Chehab :widths: 1 1 2 49554f38fcaSMauro Carvalho Chehab 49654f38fcaSMauro Carvalho Chehab * - Color 49754f38fcaSMauro Carvalho Chehab - x 49854f38fcaSMauro Carvalho Chehab - y 49954f38fcaSMauro Carvalho Chehab * - Red 50054f38fcaSMauro Carvalho Chehab - 0.6800 50154f38fcaSMauro Carvalho Chehab - 0.3200 50254f38fcaSMauro Carvalho Chehab * - Green 50354f38fcaSMauro Carvalho Chehab - 0.2650 50454f38fcaSMauro Carvalho Chehab - 0.6900 50554f38fcaSMauro Carvalho Chehab * - Blue 50654f38fcaSMauro Carvalho Chehab - 0.1500 50754f38fcaSMauro Carvalho Chehab - 0.0600 50854f38fcaSMauro Carvalho Chehab * - White Reference 50954f38fcaSMauro Carvalho Chehab - 0.3140 51054f38fcaSMauro Carvalho Chehab - 0.3510 51154f38fcaSMauro Carvalho Chehab 51254f38fcaSMauro Carvalho Chehab 51354f38fcaSMauro Carvalho Chehab 51454f38fcaSMauro Carvalho ChehabTransfer function: 51554f38fcaSMauro Carvalho Chehab 51654f38fcaSMauro Carvalho Chehab.. math:: 51754f38fcaSMauro Carvalho Chehab 51854f38fcaSMauro Carvalho Chehab L' = L^{\frac{1}{2.6}} 51954f38fcaSMauro Carvalho Chehab 52054f38fcaSMauro Carvalho ChehabInverse Transfer function: 52154f38fcaSMauro Carvalho Chehab 52254f38fcaSMauro Carvalho Chehab.. math:: 52354f38fcaSMauro Carvalho Chehab 52454f38fcaSMauro Carvalho Chehab L = L'^{(2.6)} 52554f38fcaSMauro Carvalho Chehab 52654f38fcaSMauro Carvalho ChehabY'CbCr encoding is not specified. V4L2 defaults to Rec. 709. 52754f38fcaSMauro Carvalho Chehab 52854f38fcaSMauro Carvalho Chehab 52954f38fcaSMauro Carvalho Chehab.. _col-smpte-240m: 53054f38fcaSMauro Carvalho Chehab 53154f38fcaSMauro Carvalho ChehabColorspace SMPTE 240M (V4L2_COLORSPACE_SMPTE240M) 53254f38fcaSMauro Carvalho Chehab================================================= 53354f38fcaSMauro Carvalho Chehab 53454f38fcaSMauro Carvalho ChehabThe :ref:`smpte240m` standard was an interim standard used during the 53554f38fcaSMauro Carvalho Chehabearly days of HDTV (1988-1998). It has been superseded by Rec. 709. The 53654f38fcaSMauro Carvalho Chehabdefault transfer function is ``V4L2_XFER_FUNC_SMPTE240M``. The default 53754f38fcaSMauro Carvalho ChehabY'CbCr encoding is ``V4L2_YCBCR_ENC_SMPTE240M``. The default Y'CbCr 53854f38fcaSMauro Carvalho Chehabquantization is limited range. The chromaticities of the primary colors 53954f38fcaSMauro Carvalho Chehaband the white reference are: 54054f38fcaSMauro Carvalho Chehab 54154f38fcaSMauro Carvalho Chehab 54254f38fcaSMauro Carvalho Chehab 54354f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 54454f38fcaSMauro Carvalho Chehab 54554f38fcaSMauro Carvalho Chehab.. flat-table:: SMPTE 240M Chromaticities 54654f38fcaSMauro Carvalho Chehab :header-rows: 1 54754f38fcaSMauro Carvalho Chehab :stub-columns: 0 54854f38fcaSMauro Carvalho Chehab :widths: 1 1 2 54954f38fcaSMauro Carvalho Chehab 55054f38fcaSMauro Carvalho Chehab * - Color 55154f38fcaSMauro Carvalho Chehab - x 55254f38fcaSMauro Carvalho Chehab - y 55354f38fcaSMauro Carvalho Chehab * - Red 55454f38fcaSMauro Carvalho Chehab - 0.630 55554f38fcaSMauro Carvalho Chehab - 0.340 55654f38fcaSMauro Carvalho Chehab * - Green 55754f38fcaSMauro Carvalho Chehab - 0.310 55854f38fcaSMauro Carvalho Chehab - 0.595 55954f38fcaSMauro Carvalho Chehab * - Blue 56054f38fcaSMauro Carvalho Chehab - 0.155 56154f38fcaSMauro Carvalho Chehab - 0.070 56254f38fcaSMauro Carvalho Chehab * - White Reference (D65) 56354f38fcaSMauro Carvalho Chehab - 0.3127 56454f38fcaSMauro Carvalho Chehab - 0.3290 56554f38fcaSMauro Carvalho Chehab 56654f38fcaSMauro Carvalho Chehab 56754f38fcaSMauro Carvalho ChehabThese chromaticities are identical to the SMPTE 170M colorspace. 56854f38fcaSMauro Carvalho Chehab 56954f38fcaSMauro Carvalho ChehabTransfer function: 57054f38fcaSMauro Carvalho Chehab 57154f38fcaSMauro Carvalho Chehab.. math:: 57254f38fcaSMauro Carvalho Chehab 57354f38fcaSMauro Carvalho Chehab L' = 4L\text{, for } 0 \le L < 0.0228 57454f38fcaSMauro Carvalho Chehab 57554f38fcaSMauro Carvalho Chehab L' = 1.1115L ^{0.45} - 0.1115\text{, for } 0.0228 \le L \le 1 57654f38fcaSMauro Carvalho Chehab 57754f38fcaSMauro Carvalho ChehabInverse Transfer function: 57854f38fcaSMauro Carvalho Chehab 57954f38fcaSMauro Carvalho Chehab.. math:: 58054f38fcaSMauro Carvalho Chehab 58154f38fcaSMauro Carvalho Chehab L = \frac{L'}{4}\text{, for } 0 \le L' < 0.0913 58254f38fcaSMauro Carvalho Chehab 58354f38fcaSMauro Carvalho Chehab L = \left( \frac{L' + 0.1115}{1.1115}\right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.0913 58454f38fcaSMauro Carvalho Chehab 58554f38fcaSMauro Carvalho ChehabThe luminance (Y') and color difference (Cb and Cr) are obtained with 58654f38fcaSMauro Carvalho Chehabthe following ``V4L2_YCBCR_ENC_SMPTE240M`` encoding: 58754f38fcaSMauro Carvalho Chehab 58854f38fcaSMauro Carvalho Chehab.. math:: 58954f38fcaSMauro Carvalho Chehab 59054f38fcaSMauro Carvalho Chehab Y' = 0.2122R' + 0.7013G' + 0.0865B' 59154f38fcaSMauro Carvalho Chehab 59254f38fcaSMauro Carvalho Chehab Cb = -0.1161R' - 0.3839G' + 0.5B' 59354f38fcaSMauro Carvalho Chehab 59454f38fcaSMauro Carvalho Chehab Cr = 0.5R' - 0.4451G' - 0.0549B' 59554f38fcaSMauro Carvalho Chehab 59654f38fcaSMauro Carvalho ChehabY' is clamped to the range [0…1] and Cb and Cr are clamped to the 59754f38fcaSMauro Carvalho Chehabrange [-0.5…0.5]. The Y'CbCr quantization is limited range. 59854f38fcaSMauro Carvalho Chehab 59954f38fcaSMauro Carvalho Chehab 60054f38fcaSMauro Carvalho Chehab.. _col-sysm: 60154f38fcaSMauro Carvalho Chehab 60254f38fcaSMauro Carvalho ChehabColorspace NTSC 1953 (V4L2_COLORSPACE_470_SYSTEM_M) 60354f38fcaSMauro Carvalho Chehab=================================================== 60454f38fcaSMauro Carvalho Chehab 60554f38fcaSMauro Carvalho ChehabThis standard defines the colorspace used by NTSC in 1953. In practice 60654f38fcaSMauro Carvalho Chehabthis colorspace is obsolete and SMPTE 170M should be used instead. The 60754f38fcaSMauro Carvalho Chehabdefault transfer function is ``V4L2_XFER_FUNC_709``. The default Y'CbCr 60854f38fcaSMauro Carvalho Chehabencoding is ``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is 60954f38fcaSMauro Carvalho Chehablimited range. The chromaticities of the primary colors and the white 61054f38fcaSMauro Carvalho Chehabreference are: 61154f38fcaSMauro Carvalho Chehab 61254f38fcaSMauro Carvalho Chehab 61354f38fcaSMauro Carvalho Chehab 61454f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 61554f38fcaSMauro Carvalho Chehab 61654f38fcaSMauro Carvalho Chehab.. flat-table:: NTSC 1953 Chromaticities 61754f38fcaSMauro Carvalho Chehab :header-rows: 1 61854f38fcaSMauro Carvalho Chehab :stub-columns: 0 61954f38fcaSMauro Carvalho Chehab :widths: 1 1 2 62054f38fcaSMauro Carvalho Chehab 62154f38fcaSMauro Carvalho Chehab * - Color 62254f38fcaSMauro Carvalho Chehab - x 62354f38fcaSMauro Carvalho Chehab - y 62454f38fcaSMauro Carvalho Chehab * - Red 62554f38fcaSMauro Carvalho Chehab - 0.67 62654f38fcaSMauro Carvalho Chehab - 0.33 62754f38fcaSMauro Carvalho Chehab * - Green 62854f38fcaSMauro Carvalho Chehab - 0.21 62954f38fcaSMauro Carvalho Chehab - 0.71 63054f38fcaSMauro Carvalho Chehab * - Blue 63154f38fcaSMauro Carvalho Chehab - 0.14 63254f38fcaSMauro Carvalho Chehab - 0.08 63354f38fcaSMauro Carvalho Chehab * - White Reference (C) 63454f38fcaSMauro Carvalho Chehab - 0.310 63554f38fcaSMauro Carvalho Chehab - 0.316 63654f38fcaSMauro Carvalho Chehab 63754f38fcaSMauro Carvalho Chehab 63854f38fcaSMauro Carvalho Chehab.. note:: 63954f38fcaSMauro Carvalho Chehab 64054f38fcaSMauro Carvalho Chehab This colorspace uses Illuminant C instead of D65 as the white 64154f38fcaSMauro Carvalho Chehab reference. To correctly convert an image in this colorspace to another 64254f38fcaSMauro Carvalho Chehab that uses D65 you need to apply a chromatic adaptation algorithm such as 64354f38fcaSMauro Carvalho Chehab the Bradford method. 64454f38fcaSMauro Carvalho Chehab 64554f38fcaSMauro Carvalho ChehabThe transfer function was never properly defined for NTSC 1953. The Rec. 64654f38fcaSMauro Carvalho Chehab709 transfer function is recommended in the literature: 64754f38fcaSMauro Carvalho Chehab 64854f38fcaSMauro Carvalho Chehab.. math:: 64954f38fcaSMauro Carvalho Chehab 65054f38fcaSMauro Carvalho Chehab L' = 4.5L\text{, for } 0 \le L < 0.018 65154f38fcaSMauro Carvalho Chehab 65254f38fcaSMauro Carvalho Chehab L' = 1.099L ^{0.45} - 0.099\text{, for } 0.018 \le L \le 1 65354f38fcaSMauro Carvalho Chehab 65454f38fcaSMauro Carvalho ChehabInverse Transfer function: 65554f38fcaSMauro Carvalho Chehab 65654f38fcaSMauro Carvalho Chehab.. math:: 65754f38fcaSMauro Carvalho Chehab 65854f38fcaSMauro Carvalho Chehab L = \frac{L'}{4.5} \text{, for } L' < 0.081 65954f38fcaSMauro Carvalho Chehab 66054f38fcaSMauro Carvalho Chehab L = \left( \frac{L' + 0.099}{1.099}\right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.081 66154f38fcaSMauro Carvalho Chehab 66254f38fcaSMauro Carvalho ChehabThe luminance (Y') and color difference (Cb and Cr) are obtained with 66354f38fcaSMauro Carvalho Chehabthe following ``V4L2_YCBCR_ENC_601`` encoding: 66454f38fcaSMauro Carvalho Chehab 66554f38fcaSMauro Carvalho Chehab.. math:: 66654f38fcaSMauro Carvalho Chehab 66754f38fcaSMauro Carvalho Chehab Y' = 0.2990R' + 0.5870G' + 0.1140B' 66854f38fcaSMauro Carvalho Chehab 66954f38fcaSMauro Carvalho Chehab Cb = -0.1687R' - 0.3313G' + 0.5B' 67054f38fcaSMauro Carvalho Chehab 67154f38fcaSMauro Carvalho Chehab Cr = 0.5R' - 0.4187G' - 0.0813B' 67254f38fcaSMauro Carvalho Chehab 67354f38fcaSMauro Carvalho ChehabY' is clamped to the range [0…1] and Cb and Cr are clamped to the range 67454f38fcaSMauro Carvalho Chehab[-0.5…0.5]. The Y'CbCr quantization is limited range. This transform is 67554f38fcaSMauro Carvalho Chehabidentical to one defined in SMPTE 170M/BT.601. 67654f38fcaSMauro Carvalho Chehab 67754f38fcaSMauro Carvalho Chehab 67854f38fcaSMauro Carvalho Chehab.. _col-sysbg: 67954f38fcaSMauro Carvalho Chehab 68054f38fcaSMauro Carvalho ChehabColorspace EBU Tech. 3213 (V4L2_COLORSPACE_470_SYSTEM_BG) 68154f38fcaSMauro Carvalho Chehab========================================================= 68254f38fcaSMauro Carvalho Chehab 68354f38fcaSMauro Carvalho ChehabThe :ref:`tech3213` standard defines the colorspace used by PAL/SECAM 68454f38fcaSMauro Carvalho Chehabin 1975. In practice this colorspace is obsolete and SMPTE 170M should 68554f38fcaSMauro Carvalho Chehabbe used instead. The default transfer function is 68654f38fcaSMauro Carvalho Chehab``V4L2_XFER_FUNC_709``. The default Y'CbCr encoding is 68754f38fcaSMauro Carvalho Chehab``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is limited 68854f38fcaSMauro Carvalho Chehabrange. The chromaticities of the primary colors and the white reference 68954f38fcaSMauro Carvalho Chehabare: 69054f38fcaSMauro Carvalho Chehab 69154f38fcaSMauro Carvalho Chehab 69254f38fcaSMauro Carvalho Chehab 69354f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 69454f38fcaSMauro Carvalho Chehab 69554f38fcaSMauro Carvalho Chehab.. flat-table:: EBU Tech. 3213 Chromaticities 69654f38fcaSMauro Carvalho Chehab :header-rows: 1 69754f38fcaSMauro Carvalho Chehab :stub-columns: 0 69854f38fcaSMauro Carvalho Chehab :widths: 1 1 2 69954f38fcaSMauro Carvalho Chehab 70054f38fcaSMauro Carvalho Chehab * - Color 70154f38fcaSMauro Carvalho Chehab - x 70254f38fcaSMauro Carvalho Chehab - y 70354f38fcaSMauro Carvalho Chehab * - Red 70454f38fcaSMauro Carvalho Chehab - 0.64 70554f38fcaSMauro Carvalho Chehab - 0.33 70654f38fcaSMauro Carvalho Chehab * - Green 70754f38fcaSMauro Carvalho Chehab - 0.29 70854f38fcaSMauro Carvalho Chehab - 0.60 70954f38fcaSMauro Carvalho Chehab * - Blue 71054f38fcaSMauro Carvalho Chehab - 0.15 71154f38fcaSMauro Carvalho Chehab - 0.06 71254f38fcaSMauro Carvalho Chehab * - White Reference (D65) 71354f38fcaSMauro Carvalho Chehab - 0.3127 71454f38fcaSMauro Carvalho Chehab - 0.3290 71554f38fcaSMauro Carvalho Chehab 71654f38fcaSMauro Carvalho Chehab 71754f38fcaSMauro Carvalho Chehab 71854f38fcaSMauro Carvalho ChehabThe transfer function was never properly defined for this colorspace. 71954f38fcaSMauro Carvalho ChehabThe Rec. 709 transfer function is recommended in the literature: 72054f38fcaSMauro Carvalho Chehab 72154f38fcaSMauro Carvalho Chehab.. math:: 72254f38fcaSMauro Carvalho Chehab 72354f38fcaSMauro Carvalho Chehab L' = 4.5L\text{, for } 0 \le L < 0.018 72454f38fcaSMauro Carvalho Chehab 72554f38fcaSMauro Carvalho Chehab L' = 1.099L ^{0.45} - 0.099\text{, for } 0.018 \le L \le 1 72654f38fcaSMauro Carvalho Chehab 72754f38fcaSMauro Carvalho ChehabInverse Transfer function: 72854f38fcaSMauro Carvalho Chehab 72954f38fcaSMauro Carvalho Chehab.. math:: 73054f38fcaSMauro Carvalho Chehab 73154f38fcaSMauro Carvalho Chehab L = \frac{L'}{4.5} \text{, for } L' < 0.081 73254f38fcaSMauro Carvalho Chehab 73354f38fcaSMauro Carvalho Chehab L = \left(\frac{L' + 0.099}{1.099} \right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.081 73454f38fcaSMauro Carvalho Chehab 73554f38fcaSMauro Carvalho ChehabThe luminance (Y') and color difference (Cb and Cr) are obtained with 73654f38fcaSMauro Carvalho Chehabthe following ``V4L2_YCBCR_ENC_601`` encoding: 73754f38fcaSMauro Carvalho Chehab 73854f38fcaSMauro Carvalho Chehab.. math:: 73954f38fcaSMauro Carvalho Chehab 74054f38fcaSMauro Carvalho Chehab Y' = 0.2990R' + 0.5870G' + 0.1140B' 74154f38fcaSMauro Carvalho Chehab 74254f38fcaSMauro Carvalho Chehab Cb = -0.1687R' - 0.3313G' + 0.5B' 74354f38fcaSMauro Carvalho Chehab 74454f38fcaSMauro Carvalho Chehab Cr = 0.5R' - 0.4187G' - 0.0813B' 74554f38fcaSMauro Carvalho Chehab 74654f38fcaSMauro Carvalho ChehabY' is clamped to the range [0…1] and Cb and Cr are clamped to the range 74754f38fcaSMauro Carvalho Chehab[-0.5…0.5]. The Y'CbCr quantization is limited range. This transform is 74854f38fcaSMauro Carvalho Chehabidentical to one defined in SMPTE 170M/BT.601. 74954f38fcaSMauro Carvalho Chehab 75054f38fcaSMauro Carvalho Chehab 75154f38fcaSMauro Carvalho Chehab.. _col-jpeg: 75254f38fcaSMauro Carvalho Chehab 75354f38fcaSMauro Carvalho ChehabColorspace JPEG (V4L2_COLORSPACE_JPEG) 75454f38fcaSMauro Carvalho Chehab====================================== 75554f38fcaSMauro Carvalho Chehab 75654f38fcaSMauro Carvalho ChehabThis colorspace defines the colorspace used by most (Motion-)JPEG 75754f38fcaSMauro Carvalho Chehabformats. The chromaticities of the primary colors and the white 75854f38fcaSMauro Carvalho Chehabreference are identical to sRGB. The transfer function use is 75954f38fcaSMauro Carvalho Chehab``V4L2_XFER_FUNC_SRGB``. The Y'CbCr encoding is ``V4L2_YCBCR_ENC_601`` 76054f38fcaSMauro Carvalho Chehabwith full range quantization where Y' is scaled to [0…255] and Cb/Cr are 76154f38fcaSMauro Carvalho Chehabscaled to [-128…128] and then clipped to [-128…127]. 76254f38fcaSMauro Carvalho Chehab 76354f38fcaSMauro Carvalho Chehab.. note:: 76454f38fcaSMauro Carvalho Chehab 76554f38fcaSMauro Carvalho Chehab The JPEG standard does not actually store colorspace 76654f38fcaSMauro Carvalho Chehab information. So if something other than sRGB is used, then the driver 76754f38fcaSMauro Carvalho Chehab will have to set that information explicitly. Effectively 76854f38fcaSMauro Carvalho Chehab ``V4L2_COLORSPACE_JPEG`` can be considered to be an abbreviation for 7691c79e41bSHans Verkuil ``V4L2_COLORSPACE_SRGB``, ``V4L2_XFER_FUNC_SRGB``, ``V4L2_YCBCR_ENC_601`` 7701c79e41bSHans Verkuil and ``V4L2_QUANTIZATION_FULL_RANGE``. 77154f38fcaSMauro Carvalho Chehab 77254f38fcaSMauro Carvalho Chehab*************************************** 77354f38fcaSMauro Carvalho ChehabDetailed Transfer Function Descriptions 77454f38fcaSMauro Carvalho Chehab*************************************** 77554f38fcaSMauro Carvalho Chehab 77654f38fcaSMauro Carvalho Chehab.. _xf-smpte-2084: 77754f38fcaSMauro Carvalho Chehab 77854f38fcaSMauro Carvalho ChehabTransfer Function SMPTE 2084 (V4L2_XFER_FUNC_SMPTE2084) 77954f38fcaSMauro Carvalho Chehab======================================================= 78054f38fcaSMauro Carvalho Chehab 78154f38fcaSMauro Carvalho ChehabThe :ref:`smpte2084` standard defines the transfer function used by 78254f38fcaSMauro Carvalho ChehabHigh Dynamic Range content. 78354f38fcaSMauro Carvalho Chehab 78454f38fcaSMauro Carvalho ChehabConstants: 78554f38fcaSMauro Carvalho Chehab m1 = (2610 / 4096) / 4 78654f38fcaSMauro Carvalho Chehab 78754f38fcaSMauro Carvalho Chehab m2 = (2523 / 4096) * 128 78854f38fcaSMauro Carvalho Chehab 78954f38fcaSMauro Carvalho Chehab c1 = 3424 / 4096 79054f38fcaSMauro Carvalho Chehab 79154f38fcaSMauro Carvalho Chehab c2 = (2413 / 4096) * 32 79254f38fcaSMauro Carvalho Chehab 79354f38fcaSMauro Carvalho Chehab c3 = (2392 / 4096) * 32 79454f38fcaSMauro Carvalho Chehab 79554f38fcaSMauro Carvalho ChehabTransfer function: 79654f38fcaSMauro Carvalho Chehab L' = ((c1 + c2 * L\ :sup:`m1`) / (1 + c3 * L\ :sup:`m1`))\ :sup:`m2` 79754f38fcaSMauro Carvalho Chehab 79854f38fcaSMauro Carvalho ChehabInverse Transfer function: 79954f38fcaSMauro Carvalho Chehab L = (max(L':sup:`1/m2` - c1, 0) / (c2 - c3 * 80054f38fcaSMauro Carvalho Chehab L'\ :sup:`1/m2`))\ :sup:`1/m1` 80154f38fcaSMauro Carvalho Chehab 80254f38fcaSMauro Carvalho ChehabTake care when converting between this transfer function and non-HDR transfer 80354f38fcaSMauro Carvalho Chehabfunctions: the linear RGB values [0…1] of HDR content map to a luminance range 80454f38fcaSMauro Carvalho Chehabof 0 to 10000 cd/m\ :sup:`2` whereas the linear RGB values of non-HDR (aka 80554f38fcaSMauro Carvalho ChehabStandard Dynamic Range or SDR) map to a luminance range of 0 to 100 cd/m\ :sup:`2`. 80654f38fcaSMauro Carvalho Chehab 80754f38fcaSMauro Carvalho ChehabTo go from SDR to HDR you will have to divide L by 100 first. To go in the other 80854f38fcaSMauro Carvalho Chehabdirection you will have to multiply L by 100. Of course, this clamps all 80954f38fcaSMauro Carvalho Chehabluminance values over 100 cd/m\ :sup:`2` to 100 cd/m\ :sup:`2`. 81054f38fcaSMauro Carvalho Chehab 81154f38fcaSMauro Carvalho ChehabThere are better methods, see e.g. :ref:`colimg` for more in-depth information 81254f38fcaSMauro Carvalho Chehababout this. 813