[argyllcms] Re: Custom Illuminant

  • From: <robert@xxxxxxxxxxxxxxxxxx>
  • To: <argyllcms@xxxxxxxxxxxxx>
  • Date: Mon, 7 Jul 2014 15:18:12 +0100

<< How does the gamut mapping know that no mapping is required ? If you tell
it the source gamut is ProPhoto, then it will think that lots of gamut
mapping is needed, since the ProPhoto gamut is so much larger than a printer

Well that has finally clarified that point for me!  So with Perceptual the
whole source gamut is squashed down to the destination gamut, even if all
the colors are within the destination gamut.  This means that in a
Perceptual mapping from ProPhoto to print, colors will be compressed
resulting in desaturation of the image, particularly of the more saturated
colors nearer the print gamut boundary.

So the following strategy might make sense for a Relative intent conversion:
- Going from ProPhoto to print, make sure the colors are more or less within
the destination space to avoid too much clipping.

And the following for Perceptual:
- Do a Relative conversion from ProPhoto to AdobeRGB (making sure the colors
are more or less within the AdobeRGB space before the conversion to avoid
too much clipping).
- Do a Perceptual mapping from AdobeRGB to print.

I did a comparison of a 1-step ProPhoto [Perceptual to Print conversion]
with a 2-step [ProPhoto to AdobeRGB conversion, followed by an AdobeRGB
Perceptual to print conversion]:
- If the original image colors are all within the AdobeRGB gamut there is
quite a difference if the print gamut is much smaller than AdobeRGB, but
none if it is of similar size.
- If the original image colors are outside the AdobeRGB gamut, the 2-step
approach is significantly better even if the print gamut is very close to
the AdobeRGB gamut. 
This is a bit puzzling because I would have expected a difference in all
cases (if the full ProPhoto gamut is squashed down in a Perceptual

What would be nice would be to be able to make the smaller intermediate
working color space using tiffgamut/colprof (from a range of typical
images), but I don't see how that could be done. 


Other related posts: