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.
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 . 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 .
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 . This is exactly 5 times the color resolution of 8-bit sRGB, and 8-bit sRGB can be converted directly with . The linear range is clamped to the slightly larger
A 12-bit encoding called scYCC-nl is the conversion of the non-linear sRGB levels to JFIF-Y'CbCr and then converted by and . 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 where is 12 or 16.
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.
- "High Dynamic Range Image Encodings". Greg Ward. Retrieved 2010-10-25.
- "WinHEC 2008 GRA-583: Display Technologies". Microsoft. 2008-11-06. Retrieved 2008-12-06.
- "Windows 7 High Color Support". Softpedia. 2008-11-26. Retrieved 2008-12-06.
- Essential Windows Presentation Foundation (WPF), by Chris Anderson, p.227
- The standard IEC 61966-2-2
- Annex B: Non-linear encoding for scRGB : scRGB-nl
- A working draft of IEC 61966-2-2 is available online.
- PCMag.com: Defining scRGB