SYCC

From testwiki
Revision as of 20:49, 28 January 2025 by imported>R'n'B (Disambiguating links to Chroma (link changed to Chrominance) using DisamAssist.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:Short description Template:Lowercase title Template:Infobox technology standard

sYCC is a standard numerical encoding of colors, similar to the CIE YCbCr encoding,[1] It uses three coordinates: a luma value Y, that is roughly proportional to perceived brighness of the color, and two chroma values Cb and Cr, which are roughly the "blueness" and "redness" of the hue. Each coordinate is represented by an integer with some number N of bits, which is interpreted as either unsigned (for Y) or signed (for Cb and Cr).

The space is defined by Annex F of the International Electrotechnical Commission (IEC) standard 61966-2-1 Amendment 1 (2003), as a linear transformation of the non-linear sRGB color space defined by the same document.

The official conversion from sYCC to sRGB may result in negative R, G, or B values; meaning that not all sYCC triplets represent colors that can be displayed on a computer screen, printed, or even perceived by the human eye.

sYCC definition

The three unsigned integers Y,Cb,Cr of an sYCC encoded color represent fractional coordinates Y,Cb,Cr according to the formulas[1]

Y=Y/M
Cb=(CbZ)/M
C'r=(CbZ)/M

where the scale factor M=2N1 is the maximum unsigned N-bit integer, and the offset Z is 2N1 (as in the usual two's complement representation of signed integers). Conversely, the encoded integer values are given by

Y=round(MY
Cb=round(Z+MCb)
Cr=round(Z+MCr)

with the resulting values clipped to the range 0..M.

In particular, for N=8 (which is the normal bit size), one gets M=255 and Z=128. Thus the fractional luma Y ranges from 0 to 1, while the fractional chroma coordinates range from 128/2550.50196... to +127/255+0.498039....

The standard specifies that these fractional values Y,Cb,Cr are related to the non-linear fractional sRGB coordinates R,G,B by a linear transformation, described by the matrix product

[YCbCr]=[+0.2990+0.5870+0.11400.16870.3313+0.5000+0.50000.48170.0813][RGB]

This correspondence is the same as the RGB to YCC mapping specified by the old TV standard ITU-R BT.601-5, except that the coefficients of Y are here defined with four decimal digits instead of just three.[1]

The non-linear fractional sRGB coordinates R,G,B can be computed from the fractional sYCC coordinates Y,Cb,Cr by inverting the above matrix. The standard gives the approximation

[RGB]=[+1.00000.0000+1.4020+1.00000.34410.7141+1.0000+1.77200.0000][YCbCr]

which is expected to be accurate enough for N=8 bits per component. For bit sizes greater than 8, the standard recommends using a more accurate inverse. It states that the following matrix with 6 decimal digits is accurate enough for N=16:

[RGB]=[+1.000000+0.000037+1.401988+1.0000000.3441130.714104+1.000000+1.771978+0.000135][YCbCr]

The same standard specifies the relation between the non-linear fractional coordinates R,G,B and the CIE 1931 XYZ coordinates. The connection entails the transfer function ("gamma corection") that maps R,G,B to the linear R, G, B coordinates, and then a 3D linear transformation that relates these to the CIE X,Y,Z.

Since the linear transformation from sRGB to sYCC is defined in terms of non-linear (gamma-encoded) values (R,G,B), rather than the linear ones (R,G,B), the Y component of sYCC is not the CIE Y coordinate, not even a function of it alone. That is, two colors with the same CIE Y value may have different sYCC Y values, and vice-versa.

Particular values

The integer encoded sYCC triplet (0,0,0) represents the color black whereas (255,0,0) is white (more precisely, the CIE illuminant D65). More generally, triplets (Y,0,0), for Y in 0..255, represent shades of gray.

Note that the 8-bit integer sYCC triplet (Y,Cb,Cr)=(0,255,255) has fractional coordinates (Y,Cb,Cr)(0.0,0.5,0.5), which, according to these matrices, has fractional non-linear sRGB coordinate G0.5×(0.3341+0.7141)0.528, and therefore is not realizable or perceivable. Similarly, the sYCC triplet (0,0,0) has R0.701 and B0.886.

References

  1. 1.0 1.1 1.2 Template:Cite web Replaces the version IEC 61966-2-1:1999, introducing the sYCC encoding for YCbCr color spaces, an extended-gamut RGB encoding bg-sRGB, and a CIELAB transformation.

Cite error: <ref> tag with name "IEC1999" defined in <references> is not used in prior text.

Template:Color space