A Just Noticeable Color Difference

While checking some out-of-gamut tones on an xy Chromaticity Diagram I started to wonder how far two tones needed to be in order for an observer to notice a difference.  Were the tones in the yellow and red clusters below discernible or would they be indistinguishable, all being perceived as the same ‘color’?

Figure 1. Samples off an image plotted on a typical xy Chromaticity diagram (black dots).

Jumping the gun, here is the result of my investigation: a just noticeable difference for each of the 24 tones of a ColorChecker 24.  Details in the rest of the article.

Figure 2.  The published 24 ColorChecher tones on an xy Chromaticity diagram.  The black ellipses represent a less than 1 dE2000 change from the chromaticity at their center at the Y of the relative tone.

MacAdam Ellipses

I knew about the ellipses that David MacAdam drew experimentally in the forties[1].  Each ellipse indicates a range of colors at a luminance of 48 cd/m^2 that were deemed to be indistinguishable from the color in the center by his human subjects.

Figure 3. MacAdam Ellipses, under license.

Not knowing the luminance of the brightest diffuse white does not tell us much about the level of adaptation of the subjects, so we do not know whether these results refer to what photographers would consider highlights, midtones or shadows.  In addition the ellipses are rather sparse and do not cover some areas of the diagram that I was interested in.

deltaE 2000 Ellipses

With the help of excellent toolkit OptProp[2] I therefore let Matlab loose on a larger number of sample chromaticities using as the criterion of indistinguishability one unit of CIEDE2000[3], which is said to represent a just noticeable color difference.  Since deltaE2000 varies with luminance (let’s call it Y in this post) I worked a number of examples varying Y.  Here is the result assuming a mid-tone Y value of 18 on a scale of zero to one hundred (click on it to see it full screen):

Figure 4.  The xy Chromaticity diagram.  The black ellipses represent a less than 1 dE2000 change from the chromaticity at their center with Y = 18 out of 100.

The black ellipses represent a less than 1 dE2000 change from the chromaticity at their center.  The white dashed line is Adobe RGB while the solid line is Rec. 2020, the largest-yet-still-inexistent monitor color space we are likely to be able to feast our eyes upon for the next few years.

Interestingly, it seems that in this case a just noticeable difference of 1 deltaE2000 is more stringent than what MacAdam’s human observers suggested for indistinguishable color change.   I don’t know why there is a line of ellipses that looks like chromosomes, probably something to do with the peculiarities of the dE2000 formula.

While I was at it I also produced a version with u’v’ chromaticities, whose diagram is supposed to be more perceptually uniform (click on it to see it full screen):

Figure 5.  The u’v’ Chromaticity diagram.  The black ellipses represent a less than 1 dE2000 change from the chromaticity at their center with Y = 18 out of 100.

This diagram appears indeed to produce ellipses whose sizes vary less extremely than in the previous one – but they obviously are still a long way from being truly uniform.

Lowering Y to 5, typical of lower mid-tones, produces slightly larger ellipses but still nowhere near the size seen in MacAdams’ picture:

Figure 6.  Chromaticity diagrams.  The black ellipses represent a less than 1 dE2000 change from the chromaticity at their center with Y = 5 out of 100.

They do get much larger in the shadows, so perhaps that is a hint as to the state of adaptation of MacAdam’s human subjects.   Here is a Y of 1,  6.6 stops below full scale:

Figure 7.  Chromaticity diagrams.  The black ellipses represent a less than 1 dE2000 change from the chromaticity at their center with Y = 1 out of 100.

Going the other way the ellipses get smaller but at slower pace and this makes sense of course given the logarithmic nature of dE2000, which is based on our response to brightness.  Here for instance is Y at 95, where the ellipses are a bit smaller than at a Y of 18:

Figure 8.  Chromaticity diagrams.  The black ellipses represent a less than 1 dE2000 change from the chromaticity at their center with Y = 95 out of 100.

Finally, these are 1 dE2000 ellipses for the ColorChecker 24, every ellipse refers to the Y level of the relative sample.  Keep in mind that what counts for such a just noticeable difference is the radius of the ellipse, not its area or diameter.

Figure 9.  xy and u’v’ chromaticity diagrams of the published tones in the ColorChecker 24 target.  The ellipses represent a less than 1 dE2000 change from the chromaticity at their center.

So there you go: when looking at a chromaticity diagram we can now relate 1 dE00 JND to a given chromaticity based on relative luminance.  And it seems that the chromaticities in the yellow and red clusters in Figure 1 should indeed be distinguishable, at least in the mid-tones.

Notes and References

1. See here for the wikipedia article on MacAdam ellipses.
2. You can find OptProp – A Color Properties Toolbox here.
3. CIEDE2000 is a modern measure of color difference, you find its definition here.

4 thoughts on “A Just Noticeable Color Difference”

  1. it is quite an off-topic but still – assume we shoot a target for profiling and general wisdom is that we need to get as best S/N as we can yet not to clip (no clipping in any raw channels for patches we need) and not to come close to clipping where linearity is no longer a case (which possibly might be a case with some camera models)… however if we are dealing with patches then it is safe to assume than binning/averaging will help us as going from 2 sensels (of identical “color”) to one will be like S (signal) = S1 + S1 and N (noise) = sqrt (N1^2 + N2^2) … so do we really need to bother about getting the best ever exposure when we can simply downscale raw data (we are not shooting targets for resolution tests – we don’t bother about getting less pixels in the end) and increase S/N a lot – so any shot unclipped will do, not necessarily ETTR’d… I bet there is an error in such thinking, but where exactly I am wrong ?

  2. Makes pretty good sense to me, especially in normal setups with patches covering a large number of pixels and downstream computations performed in floating point. On the other hand in normal setups there is typically no such thing as too much SNR 😉

    1. “compensating” 1 stop of underexposure means using one more step of 2 sensels -> 1 sensel downscaling … and ultimately the profiling software needs just a four sensels per patch that will be demosaicked (simple “half” demosaicking is good enough here) into one “RGB” pixel… so with something like 42-45mp Sony FF sensors or 50-100mp Sony MF sensors even not filling the frame with the target to avoid vignetting (or making less effort with flat fielding) – 4 x 6 CC24 target even taking 1/8 of the frame in the middle ( 1/64 th of total mp ) to avoid vignetting means we can have at least 100 x 100 sensels nicely fitting in the middle of each patch and we just need 2×2 for profiling, so log2 ( 100×100 / 2×2 ) = up to 11 stops can be compensated by averaging ? … _but_ I still think that there is some fault in this logic, something is not right somewhere as in “too good to be true”… may be something with the noise in deep shadows being non random (OK, assume we have a decent sensor and there is no FPN/banding) so that math is not working anymore ?

Comments are closed.