Proposal for a Standard Color Space for the Internet - sRGB

Matthew Anderson/, Ricardo Motta/Hewlett-Packard,
Srinivasan Chandrasekar/Microsoft, Michael Stokes/Hewlett-Packard

Introduction

HP and Microsoft propose the addition of support for a standard color space, sRGB, within the Microsoft OS's, HP products and the Internet. The aim of this color space is to complement the current color management strategies by enabling a third method of handling color in the OS's and the Internet that utilizes a simple and robust device independent color definition that will provide good quality with minimum transmission and system overhead. Based on a colorimetric RGB color space well suited to Cathode Ray Tube (CRT) monitors, television, scanners, digital cameras, and printing systems, such a space can be supported with minimum cost to software and hardware vendors. Our intent here is to promote its adoption by showing the benefits of supporting a standard color space, the suitability of the standard color space we are proposing, and describe some of the system issues and propose a methodology for its implementation on the Web.

Color Spaces

Definition:

A color space is a model for representing color numerically in terms of three or more coordinates. e.g. The RGB color space represents colors in terms of the Red, Green and Blue coordinates.

For color to be reproduced in a predictable manner across different devices and materials, it has to be described in a way that is independent of the specific behavior of the mechanisms and materials used to produce it. For instance, color CRTs and color printers use very different mechanisms for producing color. To address this issue, current methods require that color be described using device independent color coordinates, which are translated into device dependent color coordinates for each device.

Color Management

Definition:

Color management is a term that describes a technology that translates the colors of an object (images, graphics or text) from their current color space to the color space of the output devices like monitors, printers, ….

Traditionally, operating systems have supported color by declaring support for a particular color space, RGB in most cases. However, since RGB varies between devices, color was not reliably reproduced across different devices.

The high-end publishing market could not meet its needs with the traditional means of color support, so the various OS's added support for using International Color Consortium (ICC) profiles to characterize device dependent colors in a device independent way. They use the profiles of the input device that created an image and the output device that displayed the image and create a transform that moves the image from the input device's color space to the output device's color space. This resulted in very accurate color. However, it also involved the overhead of transporting the input device's profile with the image and running the processor overhead of running the image through the transform.

HP and Microsoft propose the addition of a third means of managing color that is optimized to meet the needs of most users without the overhead of carrying an ICC profile with the image: the addition to the OS and the Internet of support for a Standard Color Space. Since the image is in a known color space and the profile for that color space would ship with the OS and browser, this enables the end users to enjoy the benefits of color management without the overhead of larger files. While it may be argued that profiles could buy slightly higher color accuracy, we believe that the benefits of using a standard color space far out-weigh the drawbacks for a wide range of users. The migration of devices to natively support the standard color space will further enhance the speed and quality of the user experience.

We are proposing the use of the color space, sRGB , that is consistent with but is a more tightly defined version of Rec. ITU-R BT.709 as the standard color space for the OS's and the Internet. This space obtained in April 1990 unanimous worldwide agreement as the calibrated nonlinear RGB space for HDTV production and program exchange.

Proposed Style Sheet Syntax for specifying sRGB on the Internet

We propose the following style sheet syntax to specify that page elements are in sRGB. Under most conditions, the user will not want to override the color space provided by the page author, so a color space designation would not normally appear in a user style sheet. If no color space is indicated by the author, the User Agent (UA) should interpret this as "no color correction" and continue to render as it does now.

Syntax

Value: none | Web_sRGB
Initial: none
Applies to: all elements
Inherited: yes
Percentage values: N/A

Example:

BODY { color_space: Web_sRGB }
IMG.no_space { color_space: none }
#mypic001 { color_space: Web_sRGB }
<IMG ID=mypic001 SRC="http://www.site.com/layout.mypic001.gif" >
<IMG CLASS=no_space SRC="http://www.site.com/layout.mypic002.gif" >

Standard Color Space in Practice

Once page elements are converted to sRGB, the browser needs to interpret the color space correctly and use the OS color management to image the page. The following table summarizes how the browser handles color management in each of the possible scenarios.

Style Sheet tagged with sRGB Style Sheet has no Color Space information Re-purpose Data outside of Browser/
HTML environment
Embedded Profile in ImageColor Space for Image determined by embedded profile. Color Space for Image determined by embedded profile. Color Space for Image determined by embedded profile.
Image file specifies sRGBColor Space for Image is sRGB Color Space for Image is sRGBColor Space for Image is sRGB
Image has no Color space information. Color Space for Image is sRGBColor Space for image is device color space. Color Space for image is device color space.
Text Color Space for text is sRGB Color Space for text is device color space. Color Space for text is device color space.
GraphicsColor Space for Graphics is sRGB Color Space for graphics is device color space. Color Space for graphics is device color space.

Browsing Scenarios

The following cases describe what an end-user sees in the various scenarios:

  1. Image not in sRGB, does not have an embedded ICC profile, and no monitor/output device ICC profile
    This is the behavior before color management systems were added. Basically, the image is assumed to be in the device's color space and imaged (displayed, printed etc.) as such. The quality varies tremendously since the image's colors are not characterized in a device independent way.
  2. Image not in sRGB, does not have an embedded ICC profile, and system has a monitor/output device ICC profile
    This is basically the behavior before color management systems were added. Since the image has no ICC profile, it is assumed to be in the device's color space and imaged as such. The quality varies tremendously since the image's colors are not characterized in a device independent way.
  3. Image in sRGB, and no monitor/output device ICC profile
    In this scenario, the image has been run through a transform that consists of the input device ICC profile, and the sRGB ICC profile, or it was created using devices that conform to sRGB. At this point, the image file specifies the image is in sRGB. However, since the system has no ICC profile for the output device, it will simply assume the image is in the device's color space. If all the images rendered on the output device were in sRGB, then they would at least be consistent with respect to each other.
  4. Image in sRGB, and system has a monitor/output device ICC profile
    In this scenario, the image has been run through a transform that consists of the input device ICC profile, and the sRGB ICC profile, or it was created using devices that conform to sRGB. At this point, the image file specifies the image is in sRGB. Because the system has an ICC profile for the output device, the image can be converted to the output device's color space and imaged. The resulting image will be consistent across devices.
  5. Image in sRGB, and monitor/output device is sRGB compliant
    In this scenario, the image has been run through a transform that consists of the input device ICC profile, and the sRGB ICC profile, or it was created using devices that conform to sRGB. At this point, the image file specifies the image is in sRGB. As the output device has been designed to conform with sRGB, and is associated with that ICC profile, a transform is not necessary for this case. The OS realizes that no transformation is required and simply images the image directly on the output device. This case is ideal since there is no color transformation at output time, and the image is more compact since there is no ICC profile embedded in it. The resulting image will be consistent across devices.
  6. Image not in sRGB, has an embedded ICC profile, and no monitor/output device ICC profile
    This would be treated the same as the "Image not in sRGB, does not have an embedded ICC profile, and no monitor/output device ICC profile" scenario.
  7. Image not in sRGB, has an embedded ICC profile, and system has a monitor/output device ICC profile
    This is the standard color management scenario. The two ICC profiles are combined to produce a transform that will transform the colors of the image into the output device's color space. The resulting image will be consistent across devices.

Authoring Scenarios

The following scenarios describe how to get an image into sRGB when creating it.

  1. Image created on a device that has no ICC profiles and is not sRGB compliant
    Display image on a monitor that is sRGB compliant or that has an ICC profile. Edit the image until it looks good on the monitor. If the monitor is sRGB compliant, tag the image or the HTML page and save it. For monitors that are not sRGB compliant but have ICC profiles, depending on the capabilities of the application, embed the monitor's profile into the image, and use a tool to create a transform with monitor's profile and the sRGB profile. Then run the image through the transform, specify the image is in sRGB if the format supports this, or tag the HTML document and save it.
  2. Image created on a device that has ICC profiles and is not sRGB compliant
    Use a tool to create a transform with device's profile and the sRGB profile. Then run the image through the transform, specify the image is in sRGB if the format supports this, or tag the HTML document and save it.
  3. Image created on a device that is sRGB compliant
    Specify the image is in sRGB if the format supports this, or tag the HTML document and save it.

Suggestions to benefit from sRGB

  1. CRT manufacturers who build monitors in compliance with the sRGB specification will get faster display times for objects in this color space. (No transformation needs to occur.)
  2. Scanner and digital camera manufacturers who optimize the color transforms and gamma correction for compatibility with sRGB will benefit for the same reason.

Conclusion

We believe that the addition of standard color space, sRGB, support to the Internet and the OS is a complementary addition to the existing color management support that utilizes and expands the benefits and availability of color management to a broader range of users.

Call for action

  1. OS and authoring tools should utilize CRT calibration methods to ensure that images created locally on the monitor are properly translated into sRGB.
  2. Authoring tools should enable the use of the OS color management tools to transform the incoming images into sRGB by combining the incoming device ICC profiles with the sRGB ICC profile. These images will stored in the original file format (like GIF and JPEG), but with the correct colors.
  3. Authoring tools should enable the user to view and edit text and graphics in sRGB.
  4. Web page creators should publish content in sRGB.
  5. Browser vendors should support the style sheet extensions proposed above and use the OS color management tools to ensure that colors are properly displayed.
  6. Organizations that create and support file formats should ensure that the file formats encompass the ability to embed profiles and declare their color space.

Appendix - Definition of the sRGB color space

Recently the International Color Consortium has proposed and is positioned to provide breakthrough solutions to problems in communicating color in open systems. Yet the ICC profile format does not provide a complete solution for all situations.

Currently, the ICC has one means of tracking and ensuring that a color is correctly mapped from the input to the output color space. This is done by attaching a profile for the input color space to the image in question. This is appropriate for high end users, however, there are a broad range of users that do not require this level of color quality, a broad range of file formats that will never support color profile embedding, and a broad range of uses that discourage people from appending any extra data to their files. It is at this level that a common standard RGB color space becomes useful and necessary.

We expect applications and users that do not want the overhead of embedding profiles with documents or images to convert them to a common color space and store them in that format. Currently there is a plethora of RGB monitor color spaces filling this void. There is a need to merge the many standard and non-standard RGB monitor spaces into a single standard RGB color space. Such a standard could dramatically improve the color fidelity in the desktop environment. For example, if operating system vendors provide support for a standard RGB color space, the input and output device vendors that support this standard color space could easily and confidently communicate color without further color management overhead in the most common situations. The two major factors of this RGB space are the colorimetric RGB definition and the gamma value of 2.22, along with a number of secondary details necessary to enable the clear and unambiguous communication of color.

Colorimetric RGB

The dichotomy between the device dependent (e.g. amounts of ink expressed in CMYK or digitized video voltages expressed in RGB) and device independent color spaces (such as CIE LAB or CIE XYZ) has created a performance burden on the system because of the complexity of the transforms, and a reliability gap since the complexity and variety of the transforms make it hard to ensure that the system is properly configured.

To address these concerns and serve the needs of PC and Web based color imaging systems, we propose a colorimetric RGB specification that is based on the average performance of personal computer displays. This solution is supported by the following observations:

This combination of factors makes a colorimetric RGB space well suited for wide adoption since it can both describe the colors in a unambiguous way and be the native space for actual hardware devices. This, many readers will recognize, describes in a roundabout way what has been the practice in color television for some 45 years. This proven methodology provides highest performance where it is needed the most, the fast display of images in CRT monitors.

Gamma 2.22

For computer software and hardware designers the most significant aspect of the proposed space is the 2.22 gamma. Because gamma correction tends to be a topic surrounded by confusion, it is worthwhile spending a few paragraphs discussing it.

The non-linearity of the electro-optical radiation transfer function of CRTs is often expressed by the exponent gamma. This transfer function describes how much visible radiant energy (cd/m2) results from voltages applied to the CRT electron-gun. Because most of the other characteristics of CRT based computer monitors are linear (including DACs and video amplifiers) the resulting transfer function has the same gamma value determining its non-linearity.

                                                (0.1)



Where K1 and K2 are the system gain and offset, D is the normalized pixel value, A is the maximum radiant intensity of the CRT and I is the resulting luminance.

The key point that we wish to convey here is that gamma is dependent only on the electron gun design, and the vast majority of monitors and TV sets in use today are based on designs that result, on average, in the value 2.22 for gamma. Most of the variation between computer monitors and between TV sets are due to the differences in system gain and offsets (K1 and K2), which are partially under control of the user in the form of contrast and brightness knobs. Unfortunately, the actual set-up is often not know, but the best CRT performance happens when the system offset puts the dark parts of the images at the CRT cut-off, i.e. the black (pixel value 0) parts of the CRT image are just about to emit light. Under these conditions equation 0.1 above becomes

                                                        (0.2)



and the monitor has the widest-dynamic range. The simplified form in equation 0.2 is what is usually found in the computer literature.

The gamma value 2.22 was the standard for television encoding before the advent of color TVs and was formalized in 1953. It is well matched to the eye own non-linearity and it helps minimize transmission noise in the dark areas. Because all television sets have to display content generated with this encoding, it was very important for all CRT designs to conform to it. Only recently has the computer monitor market become as large as the TV market. As a result, most computer monitors have a native 2.22 gamma, with widest variations being in the set-up and screen reflectivity (older and less expensive display can reflect up to 20% of the ambient light). These factors typically can not be characterized a priori since they might change in the course of the day (ambient light) and at the whim of the user (by modifying contrast and brightness) but in practice the process tends to be self-regulatory, with users looking for darker places to set their monitors and modifying the controls to re-establish the expected display appearance. Exhaustive testing carried at Hewlett-Packard on VGA computer monitors from many brands has shown the average gamma to be indeed 2.22, with a standard deviation of about 0.2.

Two special circumstances will lead computer systems to systematically deviate from the 2.22 gamma response - color dithering for 16 color systems and system imposed gamma correction via look-up-tables (LUT).

The first of course was very common until a few years ago. Until about 1993 most Windows PCs were well described by a gamma of 1.8 because despite having 2.22 gamma display systems, the color were dithered into the 4 bit frame buffers, resulting in a flattening of the system transfer function. This happens because screen dithering mixes colors linearly in the eye, making it less dependent of the CRT non-linearity. Since currently most Windows PC support 16 or 24 bit color modes, 2.22 gamma is now the average.

The second systematic deviation happens when the graphics system in the computer hardware or software imposes its own gamma correction. This is done for a variety of reasons, but is usually an attempt to compromise between image display and graphics/image processing performance (most computer graphic rendering assumes linear radiation space, e.g. transparency operations, and so does image processing, e.g. scaling and filtering). The gamma correcting of image data can be described by applying an exponent (g2) to the image data as follows :

                                                (0.3)



and the apparent system transfer function becomes:

                                                (0.4)



For the Macintosh the apparent exponent (gamma/g2) is around 1.8 and for SGI workstations around 1.7.

In summary, there has been some concern with the choice a 2.22 gamma as opposed to a 1.8 gamma. We feel that there are many reasons to support this choice, including compatibility with a large legacy of images (Photo CD, many Unix workstations, PCís with 256+ colors and their desktop color schemes and icons, several ultra-large image collections, analog television and CCIR 601 images), it is also a better fit with Weberís fraction, it is compatible with numerous standards (TIFF/EP, EXIF, digital TV, HDTV, analog video, and PhotoCD), it is closer to native CRTs gamma and it consistent with a larger market of displays.

A Single RGB Standard Color Space

For a single color space to achieve acceptance, it must be objective, that is, have a tightly-defined relationship with the CIE standards. We are fortunate to have obtained in April 1990 unanimous worldwide agreement on a calibrated nonlinear RGB space for HDTV production and program exchange.: Rec. ITU-R BT.709. HP and Microsoft suggest using these parameters as the basis for the sRGB color space.

There are two parts to this standard; the viewing environment parameters with its dependencies on the human visual system and the standard device space colorimetric definitions and transformations. The viewing environment descriptions contain all the necessary information, when combined with most color appearance models, to provide conversions between the standard and target viewing environments. The colorimetric definitions provide the transforms necessary to convert between the sRGB color space and the CIEXYZ two degree observer color space.

sRGB reference viewing environment

Reference viewing environments are defined for standard RGB in Table 0.1.

TABLE 0.1 sRGB viewing environment Parameters
Condition Srgb
Viewing flare 1.0%
Image surround 20%
Luminance level 80 cd/m2
Illuminant White x = 0.3127, y = 0.3291
Ambient Illuminance Level 200 lux
Ambient White x = 0.3457, y = 0.3585

The sRGB reference viewing environment corresponds to conditions typical of monitor display viewing conditions.

Viewing flare is specified to be 1.0% of the maximum white-luminance level.

The image surround is defined as 20% of the maximum white luminance. This is close to a CIELAB L* value of 50, while maintaining computational simplicity. The areas surrounding the image being viewed are similar in luminance and chrominance to the image itself. This surround condition would correspond, for example, to a reflection print displayed on a spectrally non-selective gray background of about twenty percent reflectance, where the print and the background are uniformly illuminated by the same light source.

The luminance level is representative of typical CRT display levels.

The chromaticities of the illuminant white are those of CIE D65.

The ambient illuminance level is intended to be representative of a typical office viewing environment. Note that the illuminance is at least an order of magnitude lower than average outdoor levels.

The chromaticities of the ambient white are those of CIE D50.

Colorimetric definitions and digital encoding

sRGB in combination with the reference viewing environments can be defined from standard CIE colorimetric values through simple mathematical transformations.

CIE colorimetry provides the basis for sRGB encoding of the color. For the calculation of CIE colorimetric values, it is necessary to specify a viewing environment and a set of spectral sensitivities for a specific capture device. The definitions for sRGB given in equations 1.1 to 1.3 are based on CIE tristimulus values computed for the viewing environment in table 0.1.

The CIE chromaticities for the red, green, and blue Rec. ITU-R BT.709 reference primaries, and for CIE Standard Illuminant D65, are given in Table 0.2.

TABLE 0.2 CIE chromaticities for ITU-R BT.709 reference primaries and CIE standard illuminant
Red GreenBlue D65
x 0.64000.3000 0.15000.3127
y 0.33000.6000 0.06000.3290
z 0.03000.1000 0.79000.3583

sRGB tristimulus values for the illuminated objects of the scene are simply linear combinations of the 1931 CIE XYZ values and these RGB tristimulus values can be computed using the following derived relationship:

                        (1.1)




In the sRGB encoding process, negative sRGB tristimulus values, and sRGB tristimulus values greater than 1.00 are not typically retained and the luminance dynamic range and color gamut of sRGB is limited to the tristimulus values between 0.0 and 1.0 by simple clipping. This gamut, however, is large enough to encompass most colors that can be displayed on CRT monitors.

The sRGB tristimulus values are next transformed to nonlinear sR'G'B' values as follows:

For RsRGB, GsRGB, BsRGB > 0.018:

                                         (1.2a)




For 0 <= RsRGB, GsRGB, BsRGB <= 0.018:

                                                (1.2b)



Some applications, such as photographic film reproduction, require a larger gamut that monitors can provide. Therefore the following negative RGB formulas are provided to help implement this capability.For -0.018 <= RsRGB, GsRGB, BsRGB < 0.0:

                                                (1.3a)



For RsRGB, GsRGB, BsRGB < -0.018:

                                (1.3b)



Finally, the nonlinear sR'G'B' values are converted to digital code values. This conversion scales the above sR'G'B' values by using the equation below where WDC represents the white digital count and KDC represents the black digital count.

                                 (1.4)



This current specification proposes using a black digital count of 0 and a white digital count of 255 for 24-bit (8-bits/channel) encoding. The resulting RGB values are formed according to the following equations:

                                        (1.5)


This obviously can be simplified as shown below.

                                                (1.6)



Digital broadcast television uses a black digital count of 16 and a white digital count of 235 in order to provide a larger encoded color gamut. While we do not propose currently using this encoding at this time due to the large legacy of images and applications using the previous black and white digital counts, it is vital to allow for a possible future revision to provide this capability.