ScRGB
# ScRGB

scRGB is a wide color gamut RGB 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.

## 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 8192x + 4096. Compared to 8-bit sRGB this ranges from almost 2+1⁄2 times the color resolution near 0.0 to more than 14 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 opto-electric conversion function as sRGB (for negative numbers use −f(−x)) and then converted by 1280x + 1024. This is exactly 5 times the color resolution of 8-bit sRGB, and 8-bit sRGB can be converted directly with 5x + 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 1280Y′ + 1024, 1280Cb + 2048, 1280Cr + 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.

## Origin of sc in scRGB

The origin of the sc in scRGB is shrouded in mystery. Officially it stands for nothing. According to Michael Stokes (the national and international leader of the International Electrotechnical Commission, or IEC, group working on scRGB), the name appeared when the Japanese national committee requested a name change from the earlier XsRGB (excess RGB). The two leading candidates for meaning are "specular RGB" because scRGB supports whites greater than the diffuse 1.0 values, and "standard compositing RGB" because the linearity, floating-point support, HDR (high dynamic range) support, and wide gamut support are ideally suited for compositing. This meaning also implicitly emphasizes that scRGB is not intended to be directly supported in devices or formats, since by definition scRGB encompasses values that are beyond both the human visual system and (even theoretically) realizable physical devices.

