i
i
i
i
i
i
i
i
21.2. Color Spaces 547
nels thus encode two chromaticities along one axis, which can have both positive
and negative values. For instance, a red-green channel encodes red for positive
values and green for negative values. The value zero encodes a special case: neu-
tral which is neither red or green. The yellow-blue channel works in much the
same way.
As at least two colors are encoded on each of the two chromatic axes, it is not
possible to encode a mixture of red and green. Neither is it possible to encode
yellow and blue simultaneously. While this may seem a disadvantage, it is known
that the human visual system computes similar attributes early in the visual path-
way. As a result, humans are not able to perceive colors that are simultaneously
red and green, or yellow and blue. We do not see anything resembling reddish-
green, or yellowish-blue. We are, however, able to perceive mixtures of colors
such as yellowish-red (orange) or greenish-blue, as these are encoded across the
chromatic channels.
The most relevant color opponent system for computer graphics is the CIE
1976 L
∗
a
∗
b
∗
color model. It is a perceptually more or less uniform color space,
useful, among other things, for the computation of color differences. It is also
known as CIELAB.
The input to CIELAB are the stimulus (X, Y, Z) tristimulus values as well as
the tristimulus values of a diffuse white reflecting surface that is lit by a known il-
luminant, (X
n
,Y
n
,Z
n
). CIELAB therefore goes beyond being an ordinary color
space, as it takes into account a patch of color in the context of a known illumina-
tion. It can thus be seen as a rudimentary color appearance space.
The three channels defined in CIELAB are L
∗
, a
∗
,andb
∗
.TheL
∗
channel
encodes the lightness of the color, i.e., the perceived reflectance of a patch with
tristimulus value (X, Y, Z).Thea
∗
and b
∗
are chromatic opponent channels. The
transform between XYZ and CIELAB is given by
⎡
⎣
L
∗
a
∗
b
∗
⎤
⎦
=
⎡
⎣
0 116 0 −16
500 −500 0 0
0 200 −200 0
⎤
⎦
⎡
⎢
⎢
⎣
f (X/X
n
)
f (Y/Y
n
)
f (Z/Z
n
)
1
⎤
⎥
⎥
⎦
.
The function f is defined as
f(r)=
⎧
⎨
⎩
3
√
r for r>0.008856,
7.787 r +
16
116
for r ≤ 0.008856.
As can be seen from this formulation, the chromatic channels do depend on the
luminance Y . Although this is perceptually accurate, it means that we cannot plot
the values of a
∗
and b
∗
in a chromaticity diagram. The lightness L
∗
is normalized