CS781 - Colour for Computer Graphics - Winter 2009
Lecture 17
Colour Gamuts
Important Features
Neutral Axis
Tone Reproduction Curves (TRCs)
What is a TRC
- Neutral
- Exaggerate shadows
- Exaggerate highlights
- Exaggerate mid-tones
- Minimize mid-tones
Highly Saturated Colours
Additive Devices
Overall Shape of Gamut
Colour Spaces
RGB
HSV
- h/60 = i [integer part] + f [fractional part]
- R = V ( 1 - s * { 1 [i=2,3], 0 [i=0,5], f [i=1], (1-f) [i=4] } )
- G = V ( 1 - s * { 1 [i=4,5], 0 [i=1,2], f [i=3], (1-f) [i=0] } )
- B = V ( 1 - s * { 1 [i=2,3], 0 [i=0,5], f [i=1], (1-f) [i=4] } )
HLS
RGYB
- R = rL
- G = gL
- B = 1 - max(r,g)
YIQ
NTSC colour encoding
- Y = .30 R + .59 G + .11 B
- I = .60 R - .25 G - .32 B
- Q = .21 R - .52 G + .31 B
Subtractive Devices
Paints
Printing Inks
Comparing Images
Here's three ways that it is done
- Sum ( (R - R")^2 + (G-G')^2 + (B - B')^2 ) ^(1/2) over pixels
- Sum ( (X - X")^2 + (Y-Y')^2 + (Z - Z')^2 ) ^(1/2) over pixels
- Sum ( (L - L")^2 + (u-u')^2 + (v - v')^2 ) ^(1/2) over pixels
Why are neither of these satisfactory?
Suggestions for improvement.
Colour Reproduction (aka Gamut Mapping)
Talk about fire engines: NTSC phosphor chromaticities
- R: 0.67, 0.33
- G: 0.21, 0.71
- B: 0.14, 0.08
Here are the heuristics used by printers
- Get the neutral colours neutral
- taking adaptation into account
- Get the TRC of the white axis right
- pixel histogram is useful
- ideally the TRCs of primaries are the same
- Maximize luminance contrast
- Keep most colours within the destination gamut
- Minimize shifts in hue and saturation
- with minimal stretching and compression
- Maximize the saturation
- taking the image content into account
Return to: