Color Management Systems and sRGB
The popularity of the RGB color space is at odds with its fundamentally
device-dependent nature. In order to address this problem, a number of
manufacturers of computer-related equipment and the International Color
Consortium have cooperated to define a standard RGB space to which
various devices such as monitors, printers, scanners, and electronic cameras
can be calibrated. This specification, known as sRGB, is expected to be
approved as an international standard by the International Electrotechnical
Commission (IEC) by mid-1999; it will formally be known as IEC 61966-2-1.
sRGB allows one to create a PNG image on one system and print or display
it on another with full color fidelity and
without ever converting to XYZ
or another device-independent color space. How well it works in practice
remains to be seen, but a well-specified international standard--and
manufacturers' evident interest in it--will go a long way toward ensuring
that future devices are compatible at the RGB level.
In addition, an image that was created under sRGB can be flagged as such
with very little overhead. Only one parameter, the rendering intent, is
required; it is stored as a single byte in PNG's sRGB chunk. The rendering
intent, also known as ``artistic intent,'' indicates how the creator of the
image wishes the colors to be mapped when the output device's
color gamut (recall the discussion in the previous section) does not match
that of the original device. For example, imagine that an artist creates an
image on an sRGB-compliant monitor and graphics system, and when he's finished
he sends it to an sRGB-compliant color printer. Because the light-emitting
phosphors of the monitor and the light-reflecting inks of the printer and
its paper will be able to represent somewhat different ranges of
colors--ideally, mostly overlapping, but conceivably with only a little
overlap--it is necessary for the artist to specify how he wishes the
different color gamuts of the devices to be mapped to each other.
The simplest rendering intent (in concept) is known as absolute
colorimetric. The word ``colorimetric'' means color-measuring, and
this intent indicates that, for the region of overlap between source
and destination gamuts, any given pixel will be measured to have
identical colors on the two devices. When the output device is not
capable of reproducing some of the colors of the input device (i.e.,
the gamut is more restricted in that region of color space), the
colors are clipped to the nearest color that can be reproduced. The
result is that dynamic range will be lost in some areas. For example,
suppose that the image has a smoothly varying blue gradient and that
the output device is restricted to only the darker blues. The output
will show a smoothly varying gradient progressing from darkest blue to
medium blue, but then it will saturate and render all of the remaining
gradient as a constant, medium blue. Likewise, the intensity range
may be clipped if the output device is incapable of rendering absolute
black or the brightest shades of white. This rendering intent might
be used in cases in which three or more profiles are involved--for
example, when an image created on a computer display is intended for a
particular typesetter but first needs to be proofed on a local
printer.
A similar intent is relative colorimetric. As with the absolute flavor,
RGB values correspond to precise CIE color measurements, but they are modified
according to the intensity range and color cast (i.e., the white point) of the
output medium. Referring to our artist again, his monitor may be capable of
displaying true, 5,000K CIE white, but the paper in his printer generally will
not uniformly reflect all of the wavelengths that hit it, regardless of the
source.[83]
To put it another way, the paper will have a different white point than the
monitor.
As a result, it may be desirable to sacrifice perfect color correspondence in
favor of a similar dynamic range in intensities, by referencing the RGB values
to whatever paper or other output medium is used. The output image may have
an overall lighter or darker appearance or an overall color shift, but there
will be no clipping of grayscale gradients, and the colors will appear
to match--thanks to the human visual system's tendency to acclimate to an
overall tint or, to put it another way, to the ``prevailing white''. The
relative colorimetric intent is the ICC's default; it might be desirable for
displaying and printing corporate logos.
A still more approximate intent, but one that may capture more of the
personality of the original image, is the perceptual rendering
intent. The idea in this case is to map the full color ranges of source and
destination devices as well as possible. This may involve either expansion,
compression, or shifting of the color gamut. Even colors within the region
where the gamuts overlap may be modified; in other words, absolute color
fidelity is less important than preserving the dynamic range in both color
and intensity of the image. This is often the most appropriate intent for
rendering photographs.
Finally we have the saturation-preserving rendering intent, which is
similar to perceptual rendering in that it doesn't necessarily enforce
completely accurate color reproduction. But rather than favor overall
gamut mapping like the perceptual intent does, this rendering intent specifies
that the saturation of each color should remain constant. Saturation can be
thought of as the amount of gray in a color of a given hue (say, greenish-aqua)
and lightness. As the saturation approaches zero, the color approaches gray;
maximum saturation gives the purest shade of the given hue. Since a cheap
inkjet printer might have only two-thirds of the saturation range of an
expensive dye-sublimation printer, colorimetric rendering might induce another
kind of clipping in the inkjet's output. Saturation-preserving rendering
would avoid that, but could possibly result in changes in hue and/or lightness. It
might be the preferred intent for printing business charts and graphs.
PNG's sRGB chunk encodes the rendering intent with the same values specified
by the International Color Consortium for ICC profiles: that is, byte value 0 for
perceptual, 1 for relative colorimetric, 2 for saturation-preserving, and
3 for absolute colorimetric.
Because the sRGB color space encompasses gamma and chromaticity information, it
is not strictly necessary for a PNG image to include gAMA and cHRM chunks in
addition to the sRGB chunk. But since not all applications will know how to
interpret sRGB, encoders should nevertheless include a gAMA chunk that
corresponds to sRGB, and possibly a cHRM chunk as well. Decoders that
know how to deal with cHRM are likely to know how to deal with sRGB, too,
which is why cHRM may be omitted. The proper values for the two chunks
are in Table 10-3.
An sRGB-aware decoder should ignore gAMA and cHRM whenever an sRGB chunk is
present; the latter takes precedence. Less sophisticated applications can
use gAMA and cHRM to render the image approximately as intended, even without
knowledge of the sRGB color space. But note that there is no excuse for any
application written after the PNG 1.1 specification not to recognize
sRGB, at least; it is now part of the core spec, and new applications should
know what gamma and chromaticity values correspond to it, regardless of whether
the corresponding chunks--or even conflicting chunks--are actually present
in the file. As with gAMA and cHRM, only one
sRGB chunk is allowed, and it
must appear before any PLTE and IDAT chunks.
Table 10-3.
sRGB Gamma and Chromaticity Values
|
gAMA |
Image gamma |
45,455 |
cHRM |
White point x |
31,270 |
White point y |
32,900 |
Red x |
64,000 |
Red y |
33,000 |
Green x |
30,000 |
Green y |
60,000 |
Blue x |
15,000 |
Blue y |
6,000 |
|