# scRGB

Intersection of the scRGB gamut with the X+Y+Z=.6443 plane (the gamut varies depending on the intensity as it is a cube with a non-zero origin).

scRGB is a wide color gamut RGB (Red Green Blue) color space created by Microsoft and HP that uses the same color primaries and white/black points as the sRGB color space but allows coordinates below zero and greater than one. The full range is -0.5 through just less than +7.5.

Negative numbers enables scRGB to encompass most of the CIE 1931 color space while maintaining simplicity and backward compatibility with sRGB without the complexity of color management. The cost of maintaining compatibility with sRGB is that approximately 80% of the scRGB color space consists of imaginary colors.

Large positive numbers allow high dynamic range images to be represented, though the range is inferior to that of some other high dynamic range formats such as OpenEXR.[1]

## Encoding

Two encodings are defined for the individual primaries: a linear 16 bit per channel encoding and a nonlinear 12 bit per channel encoding.

The 16 bit scRGB(16) encoding is the linear RGB channels converted by $8192 x + 4096$. Compared to 8-bit sRGB this ranges from about 1/2 the color resolution near 0.0 to more than 10 times the color resolution near 1.0. Storage as 16 bits clamps the linear range to $-0.5 .. 7.4999$.

The 12-bit scRGB-nl encoding is the linear RGB channels passed through the same gamma function as sRGB (for negative numbers use -f(-x)) and then converted by $1280 x + 1024$. This is exactly 5 times the color resolution of 8-bit sRGB, and 8-bit sRGB can be converted directly with $5 x + 1024$. The linear range is clamped to the slightly larger $-0.6038 .. 7.5913$

A 12-bit encoding called scYCC-nl is the conversion of the non-linear sRGB levels to JFIF-Y'CbCr and then converted by $1280 Y' + 1024$ and $1280 Cx + 2048$. This form can allow greater compression and direct conversion to/from JPEG files and video hardware.

With the addition of an alpha channel with the same number of bits the 16-bit encoding may be seen referred to as 64 bit and the 12-bit encoding referred to as 48-bit. Alpha is not encoded as above, however. Alpha is instead a linear 0-1 range multiplied by $2^n-1$ where $n$ is 12 or 16.

## Usage

The first implementation of scRGB was the GDI+ API in Windows Vista. At WinHEC 2008 Microsoft announced that Windows 7 would support 48-bit scRGB (which for HDMI can be converted and output as xvYCC). The components in Windows 7 that support 48-bit scRGB are Direct3D, the Windows Imaging Component, and the Windows Color System and they support it in both full screen exclusive mode and in video overlays.[2][3]

## References

1. ^ "High Dynamic Range Image Encodings". Greg Ward. Retrieved 2010-10-25.
2. ^ "WinHEC 2008 GRA-583: Display Technologies". Microsoft. 2008-11-06. Retrieved 2008-12-06.
3. ^ "Windows 7 High Color Support". Softpedia. 2008-11-26. Retrieved 2008-12-06.