[argyllcms] Re: ICCv4 Gamut Mapping [was: ArgyllCMS V0.70 Beta 7 test now available.]

  • From: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Sun, 21 Oct 2007 23:18:54 +1000

Klaus Karcher wrote:
As outlined in the ICC Technical Note 01-2003 <http://color.org/v2profiles_v4.pdf>, "the BToA perceptual rendering transform [...] is an UNDO of the AToB perceptual rendering transform [in an input profile and] the AToB perceptual rendering transform is an UNDO of the BToA perceptual rendering transform [in output and display profiles]"


The role of the PRMG is to mark the boundary beyond which clipping may occur. I see no need for gamut expansion in A2B0 transforms of input profiles unless the device has a known weakness in a certain range of colors.

Because it can't really operate in any other way. If you take a look at
the B2A mapping for a device, then (of course), any portion of the
PRMG outside the gamut of the device, needs to be compressed
into the gamut of the device (Fig 1). As per the ICC spec, this means
that in the A2B, the corresponding expansion needs to be done
from the device gamut to the PRMG in those areas (Fig 2)

If the PRMG is within the device gamut in some areas, then
nothing in the B2A mappings require expansion, BUT,
this would correspond in the A2B mapping, to that part of the
device gamut mapping to outside the PRMG, which means that
it would get clipped rather than compressed if linked
to a different designation profile in which the device gamut
was not similarly outside the PRMG (Fig 3).

Conclusion: the device gamut must me expanded and compressed
to match the PRMG for both A2B and B2A mapping in order to avoid
gamut clipping, and meet the symmetry requirements of the
ICC spec., resulting always in a saturation intent (Fig 4).

[Yes, I had this discussion with some of the people in the ICC
 who are working on this stuff at the CIC last year. They didn't disagree
 with my conclusion.]

The A2B0 transform of an output profile should map the intersection of its own gamut and the PRMG to the PRMG. In most cases this will result in an gamut expansion.

See the above reasoning. If it does not compress out of gamut
areas in the A2B as well, they will get clipped when linked, not
what is desired for a perceptual transform!

The B2A0 transform of an output profile should be the inverse of the A2B0 table, i.e. a gamut compression in most cases.

And gamut expansion due to the needed compression.

Graeme Gill.

JPEG image

Other related posts: