The CIE Luv color space is designed to be perceptually uniform, meaning that a given change in value corresponds roughly to the same perceptual difference over any part of the space. Using such a space for quantizing color values decreases the chance that any given step in color value will be noticeable on a display or hardcopy. The Luv space was designed specifically for emissive colors, which correspond to images captured by a camera or computer graphics rendering program. However, we must modify the assumptions used by the CIE slightly, since we want to record high dynamic-range images independent of viewer adaptation. We therefore ignore the part about luminance scale, using instead a log scale to cover a much larger range of values. We also ignore the part about dominant color and encode based on the absolute (u',v') coordinates.
Conversion to and from CIE (u',v') is accomplished with the following transformation:
u' = 4*x / (-2*x + 12*y + 3)
v' = 9*y / (-2*x + 12*y + 3)
x = 9*u' / (6*u' - 16*v' + 12)
y = 4*v' / (6*u' - 16*v' + 12)
CIE (x,y) coordinates plus luminance (Y) may then be converted to XYZ values using:
X = x/y * Y
Z = (1-x-y)/y * Y
To get (x,y) from XYZ:
x = X/(X+Y+Z)
y = Y/(X+Y+Z)
The chart below shows the visible gamut (red outline) in (u',v') perceptually uniform coordinates. The visible spectrum starts with blue at the bottom of the graph, moving through green in the upper left and out to red in the upper right. The smaller interior triangle shows the gamut coverage of typical computer graphics CRT monitors, which is (not by coincidence) the commonly used standard for stored RGB coordinates. The bottom vertex is the blue primary, green at the upper left and red at the upper right.
This graph shows clearly that standard color encodings cover only about half of the visible gamut of colors. If future display systems should be able to reproduce this information, it will unavailable from most RGB storage formats. Even existing display systems, since they do not all use the same primary colorants, have significantly varying gamuts, and any restriction on the stored data restricts the reproduction accuracy.
Even if the monitor exactly matches the gamut of the stored values, taking colors outside the gamut to ones that fit within it (called gamut-mapping) can result in substantial image degradation. By storing the correct original values, gamut mapping can be carried out later as better or more customized algorithms for it are developed.