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

  • From: Joe Tschudi <tresorjoe@xxxxxxxxx>
  • To: Freelist <argyllcms@xxxxxxxxxxxxx>
  • Date: Wed, 22 Nov 2017 12:37:07 +0100

Hi Graeme

Thanks for your feedback.

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.

So my guess was right. There’s a specific logic to the usage of non-D50 
illumination in the workflow dedicated to working with ICC profiles. That’s 
understandable when it comes to compatibility with other ICC profiles that are 
strictly classical PCS D50. Say, that’s the base concept of conversion between 
ICC profiles.

But as you’re pointing out in the first paragraph, not every measurement might 
be used strictly ICC-conformity oriented. Take the example that you measure 
with an X-Rite device that has an instrument display that allows toggling 
between different illuminants. None of them would show a LAB value that was 
illuminated using D65 and then converted to ICC L*a*b* D50. All of them would 
show the „native" D65 illumination result. In other words, there are 
workflow-ecosystems, industries that don’t even want to know that ICC is D50 
based as all values and all viewing conditions are D65. It’s a world of a 
specific illumination and observer where all colors and profiles are used only 
within the ecosystem (e.g. D65/10°). The D50-via-D65 doesn’t work for that.

For this purpose I’d find it very helpful to be able to output a spec2cie 
conversion result that would be the apples instead of the oranges (or vice 
versa ;). If that’s not the concept of Argyll, no problem, we’d continue using 
other applications that fit the purpose.

Thanks a lot for all your work and for having clarified this matter.

Best regards,
Joe



Am 22.11.2017 um 09:28 schrieb Graeme Gill <graeme@xxxxxxxxxxxxx>:

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: