
The gamut mapping algorithm proposed here uses the XYZ colour space, whose choice was seemingly made by default and not after considering other colour spaces. Image and reproduction gamuts are used and compression is carried out in a linear and uniform way. To illustrate the starting point of the gamut mapping algorithm, the XYZ gamuts of a CRT monitor and a Cromalin proof (both illuminated at 500 lux) are shown in Figure 1.
What follows are the individual steps of this gamut mapping technique:
Scaling of the image gamut so as to fit the destination device gamut
is done using the following formula:
Nd = NBd + bs*(NWd - NBd) + csf*Ni where N is a member of {X,Y,Z}
Nd are the tristimulus values of the reproduction device, Ni are
the imageís tristimulus values, NBd are the tristimulus values of the reproductionís
black point, NWd are those of the white point, bs is the distance by which
the black point is moved along the grey axis and csf is the contrast scale
factor. The effect of this transformation is to move the image black to
the reproduction black and to re-scale the imageís range to fit into the
reproductionís range. As this paper focused on gamut mapping between monitor
and printer, the bs*(NWd - NBd) term was added to move the black point
further up the grey axis, as the monitor gamut is much wider near the black,
than the printer gamut. A heuristic technique for selecting csf and bs
values is described in the paper.
As the faithful reproduction of neutral colours is one of the prerequisites
of a good gamut mapping algorithm, it is thought necessary to map the grey
axes of the two gamuts onto each other. This is done by rotating the image
gamut and even though the chromaticities of all colours are changed by
this step their relative locations are maintained.
As the original image is displayed on a monitor, all its colours
are specified relative to the monitorís phosphor chromaticities. Original
image colours can therefore be expressed as [R*Rs, G*Gs, B*Bs], where RGB
are the DAC values for each phosphor and RsGsBs are the chromaticities
of the original monitor. To reduce the saturation of the image (so as to
fit into the reproduction gamut) the real phosphor chromaticities are replaced
by ones closer to the white point which results in the following colours
? [R*Rd, G*Gd, B*Bd], where RdGdBd are the chromaticities of virtual desaturated
phosphors. The effect of this is the same as if the image was displayed
on a less saturated monitor. To maintain the grey axis, the following condition
needs to be satisfied, whereby k is a scaling constant:
Rd + Gd + Bd = k*(Rs + Gs + Bs)
Note, that this transformation may also alter the perceived hue
of the colours.
Some extreme colours could be left out when compressing the gamut,
so that the colour differences around the neutral axis are preserved better.
These colours can then be projected back onto the nearest point of the
reproduction gamut. However, if the surface of the gamut is concave, smoothly
varying colours in the original image will have discontinuities when clipped.
A problem with the approach outlined above is the environment in which
it is implemented as the mapping in a perceptually non?uniform colour space
(XYZ) will lead to excessive compression around the neutral axis ? exactly
the area in which colour changes are most perceptible. Furthermore the
effects of chromatic adaptation also need to be taken into account as they
will reduce the apparent difference between the two media and will therefore
result in a reduction of the extent of compression needed. Some of these
points were later recognised and implemented by the authors themselves
(Stone and Wallace, 1991).