[argyllcms] Re: Gamut mapping problems in 1.1.0

  • From: Klaus Karcher <lists@xxxxxxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Tue, 10 Nov 2009 17:34:38 +0100

Idea Digital Imaging wrote:
On 10 Nov 2009, at 01:07, Graeme Gill wrote:

Idea Digital Imaging wrote:

The only real concern was that we were losing saturation in delicate skin tones -- just like the glow in the petals that I mentioned above.

OK, that sounds a bit more like the saturation well within the gamut,
so perhaps I should bump the "knee" value up a bit more to address
this (that's the gamknf value in the xicc/xicc.c file for those
who compiled from source who would like to play with it).

Sorry Graeme I should have used some real images and a viewing booth but had access to neither on Friday night when I was tinkering -- I'm going to delete those test images from my laptop immediately!

So back to the viewing booth, the images that were evaluated yesterday were originally Adobe RGB going to ISO Coated v2 (300) and our own in-house images are normally DonRGB.

We use tiffgamut -pj -cmt and then feed the gam data into collink using collink -ip -ke -cmt -dpp -G.

First question: in tiffgamut would there be any benefit to us using -ip or -is?

If your input data were e.g. in PrintOpen CLUT profile (like ECI'S ISO coated v2) and you'd know the original rendering intent, this could bring you closer to the "original" (i.e. before the transformation to ISO coated v2): Heidelberg takes pride in it's "invertible" gamut mapping. The gamut mapping in the A2B tables of PrintOpen-Profiles tries to "undo" the gamut mapping of the corresponding B2A tables (that's doomed to failure strictly speaking as one can't really undo the many-to one mappings that are unavoidable when it comes to gamut compression or clipping)

Imagine this workflow:

RGBworkingspace -[ICC perceptual]-> ISOcoated_v2 -[tiffgamut/collink]-> yourOutput

(a) tiffgamut -ir -pj will treat the image in the ISOcoated stage as the original (i.e it will return the gamut of the image in ISOcoated)

in contrast

(b) tiffgamut -ip -pj will give you a gamut closer to the RGB image (as it uses ISO coated's perceptual tables to "undo" the previous gamut mapping and "re-expand" the gamut as far as possible to the camera stage)

there are two ICC whitepapers covering this topic:

They call option (a) "re-targeting" and option (b) "re-purposing" and suggest that every ICC v4 profile should use those mirror-symmetrical A2B/B2A tables (but there are good reasons why some of us disagree)

There is no simple way to use option (b) with collink -G or -g (there's no flag that corresponds to tiffgamut's -i flag in collink's gamut mapping modes. It always uses the colorimetric tables of the profiles involved to calculate the new gamut mapping and build the new transformation. There are workarouds: you can manipulate the tag table of the source profile, use an interim transformation or build a more complex device link profile with the aid of littlecms to carry out re-purpozing in combination with collink's gamut mapping modes (see thread "profile -S -g" / Apr 2008 in the archives) -- but I found that re-purposing with Heidelberg profiles doesn't play much in practice.

I'll have a go at playing with the knee value to see what difference it makes to the saturation in the skin tones.

me too :-)


Other related posts: