Copyright © 2023 jsd

CIE Chromaticity and Luminance in 3D
John Denker

1 Overview: CIE xy and xyY Color Spaces

You have probably seen CIE chromaticity diagrams, such as in figure ‍1, figure ‍2, and figure ‍2.

A point in the xy plane can represent any possible color, (i.e. chromaticity value) without regard to brightness (luminance). Let’s start by looking at some examples, then circle back and figure out what it all means. This includes throwing around some terminology that will be explained soon, in section ‍2.

Figure ‍1: CIE Chromaticity Diagram

The horseshoe-shaped boundary corresponds to pure colors, i.e. monochromatic light, i.e. light of a single definite wavelength. Colors in the interior can be formed by mixing two or more lights with different wavelengths. The highlighted triangular region represents the gamut of a typical RGB monitor. Colors outside this region are not rendered faithfully in this document, so you will have to use your imagination. Beware. The corners of the triangle are the sRGB primaries (red, green, and blue). Anything in the sRGB color space can be formed by combining these primaries.

Figure ‍2 is another version of the same diagram, showing only the pure colors and the sRGB gamut.

Figure ‍2: Another CIE Chromaticity Diagram

Figure ‍3 shows the same thing again, with some additional detail. It shows the path from each of the sRGB secondaries (cyan, magenta, and yellow) to the white point.

Figure ‍3: CIE Chromaticity Diagram, with White Point

Chromaticity diagrams of this kind don’t tell the whole story. The xy plot is just a top-down two-dimensional projection of the three-dimensional xyY space.

A side view of the xyY space is shown in figure ‍4. In this plot, the x axis is shown in very dark red, the y axis is shown in very dark green, and the Y axis is shown in white.

The Y axis corresponds to luminance i.e. brightness. The pure colors on the horseshoe all have equal photometric intensity (physics). They do not have equal perceived brightness (biology), because the sensitivity of the human eye varies with wavelength. Indeed the sensitivity is essentially zero for the the very-short and very-long wavelengths at the ends of the spectrum.

Figure ‍4: CIE xyY Color Space, with White Point; Side View

For the moment, let’s focus on the sRGB part of the figure (i.e. not the horseshoe). We are looking at 9 of the 12 edges of the sRGB cube, and 7 of the 8 corners (red, blue, green; cyan, magenta, yellow; white).

Figure ‍5: CIE xyY Color Space; Interactive 3D
Mouse-Drag : Rotate
Ctrl-Mouse-Drag : Pan
Alt-Mouse-Drag : Zoom
r : Reset view

You see that the human eye is much more sensitive to green than to red or blue. So green is high up in the xyY space, and the neighboring secondaries (cyan and yellow) are higher still.

Magenta is higher than either red or blue, since it is the sum of the two, but even so it’s much lower than yellow, green, or cyan.

It’s remarkable that paths that are linear in the xy plane are the projection of paths that are wildly nonlinlear in the xyY space.

2 Some Details

The XYZ color space has been called the lingua franca of color science and technology. Everybody uses it. It has been around since 1931, based on careful research carried out in the 1920s. The Z component is kinda mostly blue, Y is the overall luminance, and X is everything else.

The XYZ values are not normalized. If you shine N identical light sources at the same piece of paper, the XYZ values will grow in proportion to N (within reason).

The Y component in the XYZ color space has got nothing to do with the Y component in the CMYK color space used by printers.

In the xyY color space the first component is x, the second component is y, and you might think the third component would be z or Z, but not so. The third component is Y. This takes some getting used to.

Among other things, the xyY color space flunks the telephone test, since y is pronounced the same as Y.

You can convert to xyz from XYZ as follows:

x ‍:= ‍
y ‍:= ‍
z ‍:= ‍
 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍(1)

This mapping is obviously quite nonlinear.

It is also singular, which to say that the inverse mapping does not exist. Given the xyz values, you cannot hope to recover the XYZ values.

Since x+y+z=1, guaranteed, you only need two of them. It is conventional to keep x and y, as we see in figure ‍1, figure ‍2, and figure ‍2.

The xyY space consists of the x and y from xyz space, plus the Y (i.e. the luminance) from the original XYZ space. This is a rather peculiar space; if you shine N identical lights onto the same spot, the Y value grows in proportion to N, while the xy values remain unchanged.

To say the same thing another way: x and y scale like N to the zeroth power, while Y scales like N to the first power.

The xyY space is not a perceptual space. That is to say, equal distances in xyY space do not correspond to the perception of equal differences in coloration. The poster child for this is the horseshoe itself. The two ends of the horseshoe are essentially the same in terms of human perception. One end is black with an imperceptible tinge of red, while the other is black with an imperceptible tinge of blue or violet. In a perceptual space, these would be the same point.

If you want a perceptual color space, you can use CIELAB or CIECAM02. The Munsell color solid, dating from the very early 1900s, is also in this category.

All this is restricted to light falling on the human eye, which is more-or-less equivalent to light falling on an ideal white piece of paper and then perceived by the human eye.

In particular, it does not apply to light falling on pigments. For example, if light with a spiky spectrum (such as from a low-pressure sodium vapor lamp) falls on paint or ink with a different spiky spectrum, you can get all sorts of weird results, depending on which spikes like up and which don’t.

All this is restricted to reasonably bright light levels. At high light levels, there are three types of receptor in the human eye, namely three types of cones. At low light levels, there is one type of receptor, namely the rods.

The cones are useless in dim light (not sensitive enough). The rods are useless in bright light (too sensitive, completely saturated). The interesting thing is that there is an intermediate regime where all four receptors contribute something. In this regime you need four primary colors.

All this is restricted to normal color vision, excluding the various types of colorblindness.

RGB stands for red/green/blue, in all generality. sRGB is particular standardized color space, with standardized red, green, and blue primary colors.

Every perceptible color of light can be represented by a point in XYZ space, but the converse is not true. There are many XYZ coordinates that do not correspond to any perceptible color. This can be understood as a consequence of the overlap between the receptor sensitivity curves.

Just the reverse is true of sRGB: Every point in the sRGB cube corresponds to a perceptible color, but the converse does not hold. There are many perceptible colors outside the sRGB gamut.

The sRGB green primary is rather lame. As a result, the sRGB gamut is a rather small subset of all perceptible colors. I don’t understand why it is so small. It was possible to do better even with decades-old CRT technology.

For example, the green of a typical green laser pointer has a wavelength of 532 nm which is far outside the sRGB gamut. It corresponds to an XYZ vector of (0.18914, 0.88496, 0.03694) or some multiple thereof. That corresponds to an xy (chromaticity) vector of of (0.1702, 0.7965).

You can achieve a much wider gamut by using a greener green primary, perhaps something near 532 nm. This is readily achievable using LEDs. You can do even better using four LEDs. Just because the eye has three receptors doesn’t mean your display is limited to four primaries. In fact, the overlap between the response curves means it is impossible to do a good job with only three primaries.

For more on all this, see reference ‍1 and references therein.

3 References

Wikipedia article, “CIE 1931 color space”
Copyright © 2023 jsd