Login or Create Account

Colorcheck Appendix

Algorithms and reference formulas

   My Account  |  Cart Contents  |  Checkout   
Color error formulas Algorithm Grayscale and exposure ISO Speed
See Also
Using Colorcheck Tour Colorcheck Using Imatest
Related
Color management

This page contains algorithms and reference formulas for Colorcheck. It's all in green text because it's all math.

Color Management by X-Rite – Canon – Epson – HP – i1 – Eye-One - Densitometers - Spectrophotometers - Eizo - Canon Large Format

Color difference (error) formulas

The notation in this section is adapted from the Digital Color Imaging Handbook, edited by Gaurav Sharma, published by the CRC Press, referred to below as DCIH. The DCIH online Errata was consulted.

In measuring color error, keep it in mind that accurate color is not necessarily the same as pleasing color. Many manufacturers deliberately alter colors to make them more pleasing, most often by increasing saturation. In calculating color error, you may choose not to use the exact formulas for ColorChecker L*a*b* values; you may want to substitute your own enhanced values. Imatest Master allows you to enter values from a file written in CSV format.

Absolute differences (including luminance)

CIE 1976

The L*a*b* color space was designed to be relatively perceptually uniform. That means that perceptible color difference is approximately equal to the Euclidean distance between L*a*b* values. For colors {L1*, a1*, b1*} and {L2*, a2*, b2*}, where ΔL* = L2* - L1*, Δa* = a2* - a1*, and Δb* = b2* - b1*,

ΔE*ab = ( ( ΔL*)2 + (Δa*)2 + (Δb*)2 )1/2     (DCIH (1.42, 5.35);  (...)1/2 denotes square root of (...) ).

Although ΔE*ab is relatively simple to calculate and understand, it's not very accurate expecially for strongly saturated colors. L*a*b* is not as perceptually uniform as its designers intended. For example, for saturated colors, which have large chroma values (C* = ( a*2 + b*2 )1/2 ), the eye is less sensitive to changes in chroma than to corresponding changes for Hue (ΔH* = (E*ab)2 - (ΔL*)2 - (ΔC*)2 )1/2 ) or Luminance (ΔL*). To address this issue, several additional color difference formulas have been established. In these formulas, just-noticeable differences (JNDs) are represented by ellipsoids rather than circles.

CIE 1994

The CIE-94 color difference formula, ΔE*94, provides a better measure of perceived color difference.

ΔE*94 = (L*)2 + (ΔC*/SC )2 + (ΔH*/SH )2 )1/2     (DCIH (5.37);  omitting constants set to 1 ), where

SC = 1 + 0.045 C* ;   SH = 1 + 0.015 C*      (DCIH (1.53, 1.54) )

[ C* = ( ( a1*2 + b1*2 )1/2 ( a2*2 + b2*2 )1/2 )1/2  (the geometrical mean chroma) gives symmetrical results for colors 1 and 2. However, when one of the colors (denoted by subscript s) is the standard, the chroma of the standard, Cs* = ( as*2 + bs*2 )1/2, is preferred for calculating SC and SH. The asymmetrical equation is used by Bruce Lindbloom.]

ΔH* = (E*ab)2 - (ΔL*)2 - (ΔC*)2 )1/2     (hue difference ;  DCIH (5.36) )

ΔC* =  ( a1*2 + b1*2 )1/2 – ( a2*2 + b2*2 )1/2    (chroma difference)

An early meeting of the
CMC Standards Committee

CMC

The CMC color difference formula is widely used by the textile industry to match bolts of cloth. Although it's less familiar to photographers than the CIE 1976 geometric distance ΔE*ab , it's probably the best of the measurement metrics. It is slightly asymmetrical: subscript s denotes the standard (reference) measurement. CMC is the Color Measurement Committee of the Society of Dyers and Colourists (UK).

An early meeting of the CRC Standards Committee

ΔE*CMC(l,c) = (L*/lSL)2 + (ΔC*/cSC )2 + (ΔH*/SH )2 )1/2     (DCIH (5.37) ), where

(That's the lowercase letter l in (l,c) and the denominator of (ΔL*/lSL)2.)  ΔE*CMC(1,1) (l = c = 1) is used for graphic arts perceptibility mesurements. l = 2 is used in the textile industry for acceptibility of fabric matching. For now Imatest displays ΔE*CMC(1,1).

SL = 0.040975 Ls* / (1+0.01765 Ls*) ;   Ls* ≥ 16       (DCIH (1.48) )

     = 0.511 ;   Ls* < 16

SC = 0.0638 Cs* / (1+0.0131 ) + 0.638 ;   SH = SC (TCMC FCMC + 1 - FCMC )    (DCIH (1.49, 1.50) )

FCMC = ( ( Cs*)4 / ( ( Cs*)4 + 1900 ) )1/2     (DCIH (1.51);

TCMC = 0.56 + | 0.2 cos(hs* + 168°) |     164° ≤ hs* ≤ 345°    (DCIH (1.52) )

        = 0.36 + | 0.4 cos(hs* + 35 °) |       otherwise

ΔH*  and ΔC* have the same formulas as CIE-94.

CIEDE2000

The CIEDE2000 formulas (ΔEoo and ΔCoo ) are the upcoming standard, and may be regarded as more accurate than the previous formulas. We omit the equations here because they are described very well on Gaurav Sharma's CIEDE2000 Color-Difference Formula web page. Default values of 1 are used for parameters kL, kC, and kH.

At the time of this writing (February 2008) the CIE 1976 color difference metrics (ΔE*ab...) are still the most familiar. CIE 1994 is more accurate and robust, and retains a relatively simple equation. ΔE*CMC is more complex but widely used in the textile industry. The complexity of the CIEDE2000 equations (DCIH, section 1.7.4, pp. 34-40) has slowed their widespread adoption, but they are on their way to becomming the accepted standard. For the long run, CIEDE2000 color difference metrics are the best choice.

Color differences that omit luminance difference

Since Colorcheck measures captured images, exposure errors will strongly affect color differences ΔE*ab,  ΔE*94, and  ΔE*94. Since it is useful to look at color errors independently of exposure error, we define color differences that omit ΔL*.

ΔC*ab = (a*)2 + (Δb*)2 )1/2

ΔC*94 = (C*/SC )2 + (ΔH*/SH )2 )1/2

ΔC*CMC = (C*/SC )2 + (ΔH*/SH )2 )1/2 

ΔC00 omits the ( ΔL'/kLSL )2 term from the ΔE00 (square root) equation (see Sharma).

These formulas don't entirely remove the effects of exposure error since L* is affected by exposure, but they reduce it to a manageable level.

Notation changes (made for consistency with textbooks such as DCIH)
ΔC*ab = (a*)2 + (Δb*)2 )1/2, formerly called ΔE(a*b*), is the color difference (only), with L* omitted.
ΔE*ab = ( ( ΔL*)2 + (Δa*)2 + (Δb*)2 )1/2, formerly called ΔE(L*a*b*), is the total difference, including L*.
This notation is somewhat confusing because ΔE*ab includes L* (as well as a and b) in its formula.

Color differences corrected for chroma (saturation) boost/cut

Many digital cameras deliberately boost chroma, i.e., saturation, to enhance image appearance in digital cameras. This boost increases color error in the ΔE and ΔC formulas, above.

The mean chroma percentage is

Chrp = 100% * (measured mean( (ai*2+bi*2)1/2 ) ) / (Colorchecker mean( (ai*2+bi*2)1/2 ) )
      = 100% * mean (Cmeasured) / mean (Cideal) ;   Ci = (ai*2+bi*2 )1/2
      i ≤ 1 ≤ 18   (the first three rows of the Colorchecker)

Chroma, which is closely related to the perception of saturation, is boosted when Chrp > 100. Chroma boost increases color error measurements ΔE*ab, ΔC*ab, ΔE*94, and ΔC*94. Since it is easy to remove chroma boost in image editors (with saturation settings), it is useful to measure the color error after the mean chroma has been corrected (normalized) to 100%. To do so, normalized ai_corr and bi_corr are substituted for measured (camera) values ai and bi in the above equations.

ai_corr = 100 ai / Chrp ;   bi_corr = 100 bi / Chrp

The reference values for the ColorChecker are unchanged. Color differences corrected for chroma are denoted ΔC*ab(corr), ΔC*94(corr), and ΔC*CMC(corr).

Mean and RMS values

Colorcheck Figure 3 reports the mean and RMS values of ΔC*ab corrected (for saturation) and uncorrected, where

mean(x) = Σxi / n   for n values of x.
RMS(x) = σ(x) =  (Σxi2 / n )1/2   for n values of x.

The RMS value is of interest because it gives more weight to the larger errors.  

Algorithm

A simplified equation for a capture device (camera or scanner) response is, Gamc is the gamma of the capture device. Monitors also have gamma = gamm defined by Both gammas affect the final image contrast, Gamc is typically around 0.5 = 1/2 for digital cameras. Gamm is 1.8 for Macintosh systems; gamm is 2.2 for Windows systems and several well known color spaces (sRGB, Adobe RGB 1998, etc.). Images tend to look best when system gamma is somewhat larger than 1.0, though this doesn't always hold certainly not for contrasty scenes. For more on gamma, see Glossary, Using Imatest SFR, and Monitor calibration.
Using the equation, density = - log10(exposure) + k, This is a nice first order equation with slope gamc, represented by the blue dashed curves in the figure. But it's not very accurate. A second order equation works much better: k3, k4, and k5 are found using second order regression and plotted in the green dashed curves. The second order fit works extremely well.
The the equation for saturation boost in the lower image of the third figure is S' = (1-e-4S )/(1-e-4), where e  = 2.71828...

Grayscale levels and exposure error

The Colorchecker grayscale patch densities (in the bottom row) are specified as 0.05, 0.23, 0.44, 0.70, 1.05, and 1.50. Using the equation, pixel level = 255 * (10–density/1.06)(1/2.2) (see ISO speed, below), the ideal pixel levels would be 236, 195, 157, 119, 83, and 52, about 3% lower than the values measured by Bruce Lindbloom (242, 201, 161, 122, 83, and 49 for the Green channel) and provided with a Colorchecker purchased in October 2005 (243, 200, 160, 122, 85, 52). On the average, these measured values fit the equation, 

pixel level = 255 * (10–density/1.01)(1/2.2)

Exposure error is measured by comparing the measured levels of patches 2-5 in the bottom row (20-23 in the chart as a whole) with the selected reference levels. Patches 1 and 6 (19, 24) are omitted because they frequently clip. Since pixel level is proportional to exposuregamma, and hence log10(exposure) is proportional to log10(pixel level) / gamma (where gamma is measured from patches 2-5), the log exposure error for an individual patch is

Δ(log exposure) = (log10(measured pixel level) - log10(reference level)) / gamma

Using the mean value of Δ(log exposure) for patches 2-5 and the equation, f-stops = 3.32 * log exposure,

Exposure error in f-stops = 3 32 * (mean(log10(measured pixel level) - log10(reference level))) / gamma

ISO speed

ISO speed is defined in Kodak Image Sensors - ISO Measurement (App note MTD/PS-0234), which is extracted from ISO standard 12232:1998. (Only 73 CHF— about $60 US— for 131 kB; such a deal!)

There are two basic types of ISO measurement: saturation-based (also called "base") and noise-based. The saturation-based ISO, which corresponds to the lowest camera ISO setting, is

ISO = (15.4 * f#2) / (L * t)    [Exposed so an 18% gray card has a level 18/106 of full scale. See below.]

where  f# is the effective f-number of the camera lens, L is the luminance in cd/m2 of an 18% reflector (the familiar 18% gray card), and t is the exposure time in seconds. A camera's effective ISO setting may be increased by increasing the electronic gain.

You can use this equation to find the approximate luminance of an object, L =  (15.4 * f#2) / (ISO * t), where f# and t are read from an 18% gray card. For a typical white surface (90% reflectance), L =  (3.08 * f#2) / (ISO * t).

Digital image sensors are linear devices: their output voltage (and the pixel level in a RAW image file) is proportional to the light energy reaching the pixel up to the point where it abruptly saturates. Now here's the heart of the matter.

When an exposure is made according to the above setting, an 18% gray card has a voltage or pixel level 18/106 of full scale. In an 8-bit color space encoded for display at gamma = 2.2 (sRGB, Adobe RGB, WGRGB, etc.), the corresponding pixel level is 114 (from the formula, pixel level = 255*(18/106)(1/2.2) ). Of course this is an ideal value; pixel levels in real cameras may vary, especially when a tonal response "S" curve is applied.

Any portion of the image with luminance equivalent to more than 106% reflectiance (5.9x brighter than the gray card) will be saturated-- pure white; burnt out; gonzo. Since a white card is about 90% reflectance (density = 0.05), that doesn't leave much margin. The Kodak document says, "Very demanding applications might need more headroom for highlights, and so might use a higher number when calculating base ISO." That's why exposure compensation-- equivalent to increased ISO speed-- is often required to avoid burnt out highlights for "very demanding applications" like ordinary sunlit outdoor scenes.