|Chromaticity Diagrams||Lab Report|
The purpose of this project is to demonstrate how to display a 1931 CIE chromaticity chart, as well as the transformations introduced in 1960 and 1976. In addition, the charts can be displayed using either the 1931 2-degree standard observer, or the 1964 10-degree standard observer, and attempts to explain the difference between standard observers.
Standard Observer. The CIE 1931 "Standard Observer" is for a 2-degree field of observation based on tables of Guild and Wright. The CIE 1964 "Standard Observer" is for a 10-degree field from the work of Stiles and Burch, and Speranskaya. The experiments leading to the 1931 standard observer were performed using only the fovea, which covers about a 2-degree angle of vision. The 1964 supplementary standard observer was based on color-matching experiments using a 10-degree area on the retina. The observers were instructed to ignore the central 2-degree spot. The supplementary 1964 standard observer is recommended when visual perception of more than about 4-degrees is desired.
CIE standard observers are averages based on experiments with small numbers (~15-20) of people with normal color vision. No real observer is probably exactly like the CIE standard observer. See [Judd75, pp. 153-157] or [Billmeyer81, pp.42-45]. According to a Usenet Post, Danny Rich comments that "the 1964 (ten-degree field) observer had about 50 observers but the 1931 (two-degree field) only had about a dozen. The 1964 work included a few foreign post-doctoral fellows but the early work included only Englishmen from the region near to London."
According to [Foley96, p. 580], the 1964 tabulation is not generally useful in computer graphics since it emphasizes larger areas of constant color than are normally found in graphics.
The diagrams below, which can be viewed on the "Standard Observer" tab in the Chromaticity program, are the correct size when the program is properly calibrated.
|CIE 1931 2-Degree Field of View||
CIE 1964 10-Degree Field of View
For additional information about the CIE 1931 and 1964 observers see [Malacara2002, p. 36], [Judd75, p. 155] or [Billmeyer81, p. 42].
Color Matching Functions. A set of Color Matching Functions was defined for both the 1931 and 1964 Standard Observers. The 1-nanometer definitions for both of these Standard Observers can be found in the files, cxyz31_1.txt and cxyz64_1.txt, at [CIE Standards, http://cvrl.ioo.ucl.ac.uk/cmfs.htm], or tabulated in [Wyszecki82].
The 1-nm tabulations of the CIE color matching functions are given to seven significant figures. But according to [Wyszecki82, p. 131] "the large number of significant figures used to define the color-matching functions must not be construed as being proof that the experimental color-matching data, on which the tabulated values are based, have a comparable inherent precision. Visual color matching is far from being that precise." But with all this precision, and with a computer, the chromaticity coordinates can be computed directly from the color matching functions instead of using the separate tabulations as in the past.
The graph of the CIE 1931 Color Matching Functions is shown below:
An article by Hugh Fairman et al provide details about "How the CIE 1931 Color-Matching Functions Were Derived from Wright-Guild Data" (Vol 22, No 1, Feb 1997, Color Research and Application).
The curves for the CIE 1964 Color Matching Functions are only slightly different from the curves shown above or [Billmeyer81, p. 44]. See also [Malacara2002, p. 55].
Also see "Derivation of the 1964 CIE 10-degree XYZ Colour-Matching Functions and Their Applicability in Photometry" in Vol. 26, No. 1, Feb 2001, Color Research and Application.
CIE 1931 xy Chromaticity Diagram
|The horseshoe line is the spectral locus.
The line connecting the endpoints of the horeshoe
is known as the non-spectral "line of purples."
In terms of the tristimulus
values X, Y and Z:
The representation of this CIE diagram gives an undue proportion to the green area. Various transformations of the original 1931 CIE Chromaticity Diagram have been proposed to correct this distortion and to yield approximately uniform chromaticity spacing.
Ideally, areas of least perceptible differences should be circles but due to non-uniformity of chromaticity diagrams all these areas turn out to be ellipses, which vary in size over the different parts of the diagram. Often the MacAdam discrimination ellipses are plotted on the CIE uv uniform chromaticity diagram. [Chamberlin80, p. 67-68]
According to [Fortner97, p. 104] the terms dominant wavelength and purity often used in describing colors in a chromaticity diagram express the concepts of hue and saturation.
Note: No output device can generate an accurate image of the CIE diagram since output devices use a fixed number of phosphors or pigments (usually three or four) and no fixed number of pigments can generate all observable colors.
1960 CIE uv Chromaticity Diagram
Conversion of 1931 xy coordinates to 1960 uv
In terms of the tristimulus values X, Y and Z:
Conversion of 1960 uv coordinates to 1931 xy coordinates:
See [Agoston87, p. 240], [Judd75, p. 296], [Billmeyer81, p. 57].
This 1960 formula "crushes" all yellow, brown, orange and red colors into a relatively small area of the diagram between the achromatic point and the spectrum locus. This area should be as large as possible because of the importance of these colors in food, oil, paint, and other industries. [Chamerlin80, p. 60] A further improvement was made in the 1976 u'v' diagram:
1976 CIE u'v' Chromaticity Diagram
|Conversion of 1976 u'v' coordinates to 1931 xy coordinates:
x = 9u' / (6u' - 16v' + 12)
For conversion from 1960 to 1976 coordinates:
The advantage of the 1976 diagram is that the distance between points is now approximately proportional to the perceived color difference, something definitely not true in the 1931 diagram. Historical inertia has won out over technical superiority: the 1976 diagram is not used as much as the original 1931 diagram. [Fortner97, p. 101]
Chromaticity Coordinates of Phosphors.
Table 1. Chromaticity Coordinates of Various Phosphors
|Short-Persistence||0.61||0.35||0.29||0.59||0.15||0.063||N/A||N/A||[Foley96, p. 583]|
|Long-Persistence||0.62||0.33||0.21||0.685||0.15||0.063||N/A||N/A||[Foley96, p. 583]|
CCIR 601-1 is the old NTSC standard. Now called Rec 601-1.
(all monitors except 21" Mitsubishi p/n 65532)
|[Dell, E-mail, 12 Jan 99]|
|P22 phosphor in NEC Multisync C400||0.610||0.350||0.307||0.595||0.150||0.065||0.280||0.315||[NEC98]
Gamma = 2.2
|P22 phosphor in KDS VS19||0.625||0.340||0.285||0.605||0.150||0.065||0.281||0.311|
|High Brightness LEDs||0.700||0.300||0.170||0.700||0.130||0.075||0.310||0.320||Nichia Corporation|
Also, see the Phosphor Handbook.
Table 2. Standard White Points: Chromaticity and Color Temperature
|CIE 1931||CIE 1964||
|Illuminant A||2856||0.44757||0.40745||0.4512||0.4059||[Wyszecki82, p 139]
[Agoston87, p. 103]
|Illuminant B||4874||0.34842||0.35161||0.3498||0.3527||[Wyszecki82, p 139]
[Agoston87, p. 103]
|Illuminant C||6774||0.31006||0.31616||0.3104||0.3191||[Wyszecki82, p 139]
[Agoston87, p. 103]
[Agoston87, p. 103]
|Illuminant D65||6504||0.312713||0.329016||-||-||[CICA98, 5.3]|
|Direct Sunlight||5335||0.3362||0.3502||-||-||[Agoston87, p. 103]|
|Light from overcast sky||6500||0.3134||0.3275||-||-||[Agoston87, p. 103]|
|Light from north sky
on a 45-degree plane
|10,000||0.2773||0.2934||-||-||[Agoston87, p. 103]|
|Illuminant E||5400||1/3||1/3||1/3||1/3||[Wyszecki82, p 139]
[Agoston87, p. 103]
Maxwell Triangle and Color Gamut
In a Maxwell Triangle colors from three additive primaries are mixed in all possible combinations. This is explained in more detail in the Maxwell Triangle Lab Report.
The chromaticity coordinates of the RGB phosphors define a Maxwell Triangle (or gamut) of the possible display colors for a CRT monitor. Showing the gamut correctly for various color spaces is usually not possible on a single display monitor since the gamuts are slightly different and some of the colors cannot be accurately represented. A gamut can be approximated, however, such as the SMPTE gamut shown below in the various Chromaticity Diagrams:
SMPTE Gamut in 1931 CIE xy Chromaticity Diagram
SMPTE Gamut in 1960 CIE uv Chromaticity Diagram
SMPTE Gamut in 1976 CIE u'v' Chromaticity Diagram
Using the 1931 xy chromaticity coordinates for phosphors with the 1964 10-degree observer is not strictly correct, but is allowed in the Chromaticity program for illustrative purposes.
By the way, the "Y" of YUV is the gamma corrected "brightness" component of the colour; the "Y" of the CIE XYZ model is linear (uncorrected) brightness. Both are related, but they are not the same.
Materials and Equipment
800-by-600 display in High Color or True Color Display Mode
(palettes may not be correct in 256 color mode)
When the program starts the "calibration" data for accurately displaying the size of the standard observer field of views is read from the Chromaticity.INI file.
Nearly any change on the screen results in a call to the UpdateEverything method. This method updates what is displayed on all the tabs -- some work could be deferred until a tab is displayed but optimization was of little concern in this project. ShowStandardObserverFieldOfView updates the Standard Observer tab. PlotColorMatchingFunctions plots the Color Matching Functions graph. PlotChromaticityCharts plots the 1931, 1960 and 1976 chromaticity charts.
The size of the standard observer field-of-view is defined strictly by geometry considerations. [Add diagram here eventually.]
The TChart component is used to create the color matching functions plot. The Series_xBar, Series_yBar and Series_zBar series are defined using the AddXY method and the GetColorMatchTriple routine, which is defined in the ColorMatchingFunctions unit. The ColorMatchingFunctions unit contains the 1-nm definitions of the xBar, yBar and zBar values from the CVRL web page.This unit also has conversions from the 1931 xy definitions to the 1960 uv and 1976 u'v' values.
The AfterDraw method of the TChart object (ChartColorMatchingFunctionsAfterDraw) is used to label the "peaks" on the graphs. (This seems to have also caused a Delphi 4 conversion problem that has not yet been resolved.
PlotChromaticityCharts calls CIE1931xyChart to plot the 1931 chart and CIEuvChart to plot the 1960 and 1976 charts. These CIE_Chart routines are defined in the CIEChromaticity unit and create a bitmap of the specified size with the specified chart. REMEMBER to free the bitmaps created by these routines.
The MapWorldToPixel unit is a simple "pantograph" that maps world coordinates to pixel coordinates. This works well for the actual points in the CIE charts, but is somewhat of a pain when trying to add annotation labels.
The CIE_Chart routine first draw the horseshoe outline in red in 1-nm steps using either xyChromaticityCoordiantes or uvChromaticityCoordinates routines (defined in the ColorMatchingFunctions unit). After the outline is drawn, each scanline is considered in turn. The left and right "sides" of the chart are established and each pixel is then colored with a call to the XYZtoRGB routine (defined in the XYZtoRGBconversion unit). The pixel is only colored if the full chart is shown, or if the point is InsideGamut, which is a routine defined in XYZtoRGBconversion.
After coloring all the points -- pixel by pixel -- the grid lines and spectral curve with annotations are added if the corresponding checkboxes are checked.
The ShowAnnotations routine in the CIEChromaticity unit draws lines and annotation marks in an "appropriate" way. This will be the subject of a future Lab Report in the Graphics section.
Some may want to apply a gamma correction to the generated images -- I find that gamma = 1.0 results in acceptable images. Look at the variety of links on efg's Color Reference Library page about gamma correction. Use gamma = 0.0 to create a black/white mask of these diagrams.
Find postscript code by Gernot Hoffmann to create the CIE
chromaticity chart on this page:
The CIE Chromaticity Diagram is quite important in understanding a number of color science concepts.
Add diagram of standard observer field of view geometry.
Add additional details of the construction of the chromaticity charts.
Add explanation of conversion of xyz to RGB.
Add blackbody color-temperature curve (Planckian locus) to chromaticity diagrams.
Add ability to define new "Color Systems" defined by the RGB chromaticity coordinates of a phosphor and the chromaticity coordinates of the "white point."
Fix White Point for Dell Color Systems (9300 Kelvins) -- currently using D65.
Allow user-entry and maintenance of Color Space list.
|[Agoston87]||George A. Agoston,
Color Theory and Its Application in Art and Design,
p. 240: CIE 1960
W. Billmeyer, Jr. and Max Saltzman,
Principles of Color Technology (2nd edition),
John Wiley, 1981.
p. 42: 2-degree versus 10-degree standard observer
p. 58: CIE 1976
|[Chamberlin80]||G.J. Chamberlin and D.G. Chamberlin
Colour: Its Measurement, Computation and Application,
Heyden & Son Ltd, 1980.
pp. 60-61: CIE 1960 and 1976 formulas
|[efg99]||efg's Color Reference Library|
|[Foley96]||James D. Foley, et al,
Computer Graphics Principles and Practice (2nd edition in C),
Addision-Wesley, 1996. US UK DE
p. 579-580: CIE Chromaticity Diagram
p. 583: Short- and Long-persistence phosphors
Fortner and Theodore E. Meyer,
Number by Colors: A Guide to Using Color to Understand Technical Data
Springer-Verlag, 1997. Excellent introduction to color.
|[Hoffmann02]||Gernot Hoffmann's CIE Color Space|
|[Hunt87]||R. W. G. Hunt,
John Wiley & Sons, 1987.
B. Judd and Gunter
Color in Business, Science and Industry (3rd edition),
John Wiley, 1975.
p. 296: CIE 1960
Color Vision and Colorimetry: Theory and Applications,
SPIE Press, 2002
|[Poynton98]||Poynton Color FAQ, www.poynton.com|
Colour Rendering of Spectra, April 1996.
Mitchell N Charity's comments about this article.
Günter and W.S. Stiles,
Color Science -- Concepts and Methods, Quantitative Data and Formula,
John Wiley, 1982. US UK DE
pp. 725-737 for CIE 1931 2-degree observer data
pp. 738-751 for CIE 1964 10-degree observer data
Color Matching Functions, CIE Chromaticity Diagrams, CIE Standard Observer, wavelength[nm], Maxwell Triangle, xyz Chromaticity Coordinates, XYZ color primaries, RGB Coordinates, Bitmap.Scanline, TChart, Cramer's Rule, MulDiv, point in triangle algorithm, InsideGamut, TSimplePantograph, screen calibration, gamma correction, ShowAnnotation, Color System, EBU, NTSC, SMPTE, White Point
Delphi 3/4/5 Source and EXE (343 KB): Chromaticity.ZIP
Thanks to Reiner from Startek Technology Pty Ltd in Australia for assistance in the D3-to-D5 TChart conversion. (Jan 2001)
Chromaticity diagrams from this program appeared in the June 2000 revision of the Finnish book, Insinöörin (AMK) fysiikka (Physics for Engineers), by Hannu Peltonen, Juha Perkkio, and Kari Vierinen and published by Lahden Teho-Opetus, Inc. New edition expected in May 2002.
|Updated||13 Jul 2009|
|Since||1 Nov 1998|