Chromatic Adapation Article
This page is a
For more details see
Reserved ColorWiki Articles
This reserved article originally appeared in CHROMiX ColorNews Issue 18 on June 2, 2005.
Click here to see the original in its original context.
Email colornews(at)chromix.com to subscribe to the ColorNews newsletter.
by Steve Upton
Useful color conversion?
Fancy words for cocktail party impressions?
As the color management world works its way toward version 4.x profiles we find that we're getting more and more questions about the differences with v4 profiles and what they mean. One important difference is that all profiles (except device links) are now required to have a 'chad' tag (chromatic adaptation).
So what is chromatic adaptation?
It's probably best to take a step back and talk about how colors are calculated and the different flavors of Lab.
The Lab colorspace (more correctly written L*a*b* but who wants to do that all the time) is based on human perception and is typically calculated from spectral reading curves combined with human eye response curves (observer) and an illuminant (lighting) curve. While we can change the observer and illuminant curves, most Lab colors are based on the 'standard 2 degree observer' and the D50 illuminant curve. To be precise, the flavor of Lab used in Photoshop, ICC profiles and most other publishing cases is the "2 degree, D50" Lab and it's fair to assume that "Lab" written on its own is 2 deg D50 Lab. (it doesn't hurt to ask though)
If all our lighting conditions matched the spectral curve of D50 we'd be set. Unfortunately many don't even come close. In fact, it's impossible to reproduce D50 using any man-made light source! (see my article in issue #14 of ColorNews for more) In most situations, for instance, we recommend calibrating CRT displays to the D65 white point to better match office lighting and sometimes even 5000K light booths (see ColorNews #2). Also, neutral colors printed on inkjet printers achieve their tones by the careful balance of CMYK inks. This balance is calculated for a specific spectral lighting curve and may shift considerably under different lighting (sometimes called metamerism - see ColorNews Issue #5). While we try to build profiles that minimize this effect, sometimes we're better off calculating the color numbers for the profile using a totally different illuminant curve.
ColorNews past issues: Click Here
In order to calculate colors based on a different illuminant, we just substitute the new illuminant curve into the "spectral-reading (times) observer (times) illuminant" equation we use to calculate Lab (it calculates XYZ from which we then calculate Lab). So if we substitute the spectral curve for the D65 illuminant then we get a color number representing the measured sample under the alternate lighting. The important thing here is that it is now '2 degree D65 Lab'. As we rarely change the observer, let's just call it D65 Lab. While this flavor of Lab is quite useful it should never be handed to ICC profiling tools as they typically expect D50 Lab numbers - the ICC spec specifically states that all measurements will be D50 Lab.
So what do we do? Chromatic Adaptation. This series of matrix calculations will convert colors that are relative to one white point (D65) to be relative to a new white point (D50). Without this essential conversion we are handing the profiling software (and the profile, and ultimately the CMM) the wrong numbers and we will probably be disappointed with the result.
"But wait!" you say "if we wanted D50 numbers, why didn't we just calculate Lab using the D50 illuminant in the first place?". The answer, as I hinted above, is metamerism. The spectral makeup of D65 lighting can change the appearance of certain dyes and pigments significantly. So the color we get from calculating Lab using D65 and then adapting it to D50 can be noticeably different than calculating the D50 Lab color directly from the measurement....
Do you see where this leads?
In one calculation we get D50 Lab numbers as illuminated by a D65 light source and in the other, D50 Lab numbers as illuminated by a D50 light source. Now we can correctly calculate delta-E values and assign some numbers to the metamerism / gray balance failure problem we often see! This "metamerism index" can be handy in evaluating inksets and predicting what sorts of problems we're going to see when our gallery-viewed photograph (3500K Solux Lamp) is purchased and moved into an office (6000K fluorescent with nasty spectral spikes).
Another challenging situation is the color data within profiles. As I mentioned above, all measurements within profiles (or handed to profiling applications) are in D50 Lab. If the original measurements were not D50 Lab and were adapted to be D50 Lab then we need to know what flavor of Lab they were originally if we have a hope of reconstructing them. Why would we want to reconstruct them? Well, WE might not but CMM developers might (CMM is Color Management Module, the actual software that converts colors within your applications or OS). We (all of us using ICC profiles) are currently in the age of the "smart profile" and the "dumb CMM". This means that most color conversion smarts are built - hard coded - into profiles. When the CMM converts our colors from one profile to another, it does not do much analysis at all. Most calculations are concerning interpolating colors, which is fairly basic on the scale of things. Future CMMs, however, could do more analysis of the source and destination profiles, image data, etc. In order to do some of these advanced calculations, it can be helpful to be able to reconstruct the original measurement conditions. The 'chad' tag in v4 ICC profiles is required so that any chromatic adaptation calculation that created the profile's colors is documented and available to the CMM if it needs to "back calculate" any colors during its conversions. The good folks at the ICC are hoping that this will help in situations where conversions had broken down in the past.
So we have covered three specific situations where chromatic adaptation may be used:
- converting non-D50 Lab values to D50 Lab for profiling applications
- converting non-D50 Lab values to D50 (or some other, common Lab) for delta-E comparisons
- recording non-D50 Lab value calculations into profiles for better conversions
Are you going to use chromatic adaptation in your color pursuits? Perhaps. Most often these calculations will be performed by profiling software on your behalf. If you are doing color calculations for use in profiling software then you may need it. If you are trying to get your arms around metamerism and want to compare measurements under different lighting conditions then you will definitely need it to calculate delta-E values. I've built chromatic adaptation calculations into our upcoming ColorThink Pro software to save you some of the pain of relearning your linear algebra and to do quick metamerism checks. (And yes, I had to relearn my linear algebra.)
At the very least, you now know more about this calculation and when to watch out for incompatible color numbers. You also have new terminology to firmly establish your geek-hood at cocktail parties.
Thanks for reading,
(card-carrying color geek)