[argyllcms] Re: Spectral to LAB conversion in ArgyllCMS (non-D50)

  • From: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Wed, 22 Nov 2017 19:28:11 +1100

Joe Tschudi wrote:

Hi,

 2. If we convert to CIE using D65 illuminant (1931_2) using spec2cie -i D65 
-n I
    get LAB 89.78 -2.66 -18.31. Heavy blue. Other applications return
    LAB 89.78 -0.48 -0.57 (example ColorLogic ColorAnt or Babelcolor 
PatchTool).
    Bruce Lindbloom’s SpectralCalculator10nm spreadsheet returns
    LAB 89.78 -0.5 -0.56. That looks all much more realistic to me considering
    the fact that under D65 viewing light the white doesn’t change that much.

I suspect you are comparing Apples and Oranges:

 If you illuminate the spectrum with D65 and then convert the resulting XYZ to 
L*a*b*
 using a white point reference of D65, then you are assuming ("Wrong Von Kries" 
style)
 observer white point chromatic adaptation to the light source.

 If on the other hand, you illuminate the spectrum with D65 and then convert to 
ICC L*a*b*
 PCS (which uses white point reference of D50, i.e. assumes that the observer 
is not
 adapted to the D65 illuminant), then the result will be somewhat bluer.

All this is moot if the XYZ/L*a*b* values are subsequently converted to a 
profile
and the profile is used with a relative colorimetric intent, since it is assumed
for that intent that the observer is chromatically adapted to the media (i.e. 
any
difference in conversion to L*a*b* is undone in the process of creating the
relative colorimetric table).

It is important though, if you want to use absolute intent to recover the 
absolute
XYZ values as seen under D65 - ICC profiles have no provision for PCS L*a*b* 
values
with other than a D50 white point, so stuffing D65 L*a*b* values in there will
result in wrong values, whereas using D50 pseudo-absolute L*a*b* PCS values will
result in the correct results.

So for the purposes intended (massaging spectral data for the purposes of
creating profiles), and the understanding that the result is either XYZ
values (which are [ICC style] Absolute values) and the equivalent
D50 L*a*b* pseudo absolute values, spec2cie is doing the right thing.

[ As noted in ArgyllCMS's documentation, this is actually a miss-use of,
  or outside spec. use of ICC profiles, since all output device values
  should be those of a sample illuminated by D50. So such profile are
  not strictly interchangeable with "standard" ICC profiles. But in practice
  this all works as expected, allowing Absolute or Relative colorimetric
  conversions between profiles in a colorimetrically correct way, since
  ArgyllCMS (by default) uses a good quality chromatic transformation
  for Absolute <-> Relative intent conversion. ]

cheers,

Graeme Gill.


Other related posts: