[argyllcms] Re: Custom Illuminant

  • From: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Sat, 05 Jul 2014 15:23:59 +1000

robert@xxxxxxxxxxxxxxxxxx wrote:

> Perhaps I could explain what my current understanding of, say, a BtoA1
> mapping does.
> 1. The individual L*a*b* (or XYZ if the PCS is in XYZ)) values are fed into
> B-curves, one for each channel, which corrects something (I don't know
> what).

Profiles don't correct for anything in particular - the A2B table is meant
to capture the behaviour of the device as a device to PCS mapping. The B2A
provides a convenient inverted version of the A2B, allowing rapid conversion
of PCS to device space. Intent modified B2A tables allow for other mappings
to be applied as well.

The B2A structure provides computation mechanism that the profile
builder can use as they see fit, so it's not really possible to
ascribe a purpose to each step unless you examine the details of
the profile building software, and maybe not even then. Different
software may use different bits for different purposes.

> 2. The Lab output of the B-curves may be fed into a chromatic adaptation
> matrix (the chad tag) to make corrections from D50 to, say, a Solux lamp as
> illuminant. I assume (probably incorrectly) that what this does is to bump
> up the blues and maybe the greens (in the case of the Solux lamp) and dampen
> down the reds, so that the general color balance of the print under the
> Solux lamp will be close to the color balance under a D50 illuminant.

Not for V2 cLUTs, no.
V2 cLUTs have a 3x3 matrix (only if the PCS is XYZ), followed by the 1D lookups 
by nD lookup, followed by 1D lookups.

You can't assume that the 3x3 is for anything related to chromatic adaptation,
it could be used for other purposes, with chromatic adaptation hidden elsewhere
in the transformation.

> 3. The Lab output of the chromatic adaptation matrix, if it exists, is (may
> be?) fed into M-curves which corrects something (I don't know what). 

You don't typically apply chromatic adaptations in L*a*b* space.

> 5. The outputs of the B-curves or the M-curves (if they exist) are fed into
> the color LUT. This maps the Lab values to RGB values (and does the gamut
> mapping? or is the gamut mapping done using the gamt tag data?).

Yes, typically most 3D gamut mapping is done in the cLUT table. The gamt tag
has nothing to do with this.

> 4. The RGB values are fed into A-curves which correct for the non-linearity
> of the printer.

Maybe. Maybe not. It's up to the profile builder.

> 5. The corrected RGB values are sent to the printer. 

> And, lastly, in the Argyll profiles I don't see a 'chad' tag even though the
> profile's for a non-D50 illuminant.  Does that mean that there is no
> chromatic adaptation being done?  The profile was created using -i and a .sp
> file.

The 'chad' tag is for the situation where the instrument illuminant is
not (or does not emulate) being D50. If you are using a spectrometer,
this is not usually the case, since D50 measurements are computed from
the spectral reflectance values.

For ICC V4 the ICC has twisted the display situation to treat it as
if the 'illuminant' was D65, and therefore use the 'chad' tag.

Graeme Gill.

Other related posts: