[argyllcms] Re: Ink-limiting an existing profile

  • From: Gerhard Fuernkranz <nospam456@xxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Sun, 10 Sep 2006 01:57:24 +0200

Oliver Schulz wrote:
>> For recalculating an existing profile with new TAC, You need a complete 
>> new calculation of the the profile.
> Damn, that's what i wanted to avoid. :-)
> How do color-managed applications which have in ink-limit setting
> (Photoshop, i think) do this? Also, the littlecms tifficc converter
> allows to set both a target profile and an ink limit (seems to work
> fine), so it must be possible somehow to ink-limit a profile.

The lcms API provides a function to create an ink-limiting CMYK -> CMYK
device link transformation (this function is also used by the tifficc
tool). But this function does not recalculate the colorimetry, but works
rather heuristically directly in device space by downscaling C, M and Y
proportionally (all three by the same factor), if C+M+Y+K is over the
ink limit. This does not necessarily give colorimetrically correct
results and may not result in an optimal gamut mapping, but it is
computationally cheap and seems to give reasonably pleasing results, at
least with reasonably well-behaved devices/profiles.

With Argyll, I would do something like

    icclink -v -qh -G -cpp -dpp -kt -l310 \
        EuroscaleCoated.icc EuroscaleCoated.icc limit.icc

in order to create a perceptual device link profile which maps
EuroscaleCoated to "ink limited EuroscaleCoated". Other than the lcms
method, the latter one also honors colorimetry and will explicitly
establish a perceptual gamut mapping between the gamut of the original
EuroscaleCoated and the gamut of the "ink limited EuroscaleCoated".

Resampling measurements from a profile with fakeread in order to create
a new profile from the resulting "measurements" will of course always
results in the loss of some accuracy (for resampling and recreating
EuroscaleCoated, expect a loss of approx. 0.3dE avg, 2dE max. for the
A2B1 table, with 5000 sample points and -qh; actually not half bad!).

And recalculating an ink limited EuroscaleCoated profile from the
scratch will also result in a perceptual intent with a different
"personality" than the original EuroscaleCoated profile (this may be
either desirable or not, depending on your taste), and it may need some
fiddling to find -k... parameters which result in a similar black
generation for the new profile as in the original one (note, when
creating a device link, -kt can be used, which which inherits the K
level from the source profile as far as possible, but when creating an
output profile from measurements, this is not an option).

On the other hand, applying the above mentioned device link to the CMYK
data after applying the original EuroscaleCoated profile will almost
preserve the original personality of the Euroscale profile, and change
it only as much as necessary to enforce the ink limiting.

But I also don't know a ready to use Argyll or lcms tool which can
incorporate such a device link directly into the B2A tables of an
existing profile (but it should indeed possible and not too complicated
to develop one).


Other related posts: