[argyllcms] lightness adaptation algorithms

  • From: Roberto Michelena <colorsync@xxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Thu, 8 Sep 2005 12:16:24 -0500

Hi,

I need to tweak some measurement values, to map the max and min
lightness to different points. This is because the source device/media
I need to match, has a larger L* range than the proofer device. I
know, "change your proofer", but no, the problem is the source which
is the ubiquotuos (here) Matchprint.

So what happens? My source has, for example, min L*=5 and max L*=95 ;
while my proofer (Epson 4000 w/ glossy) has min L*=7 and max L*=94

If I use ICC profiles, a colorimetric intent (either relative or
absolute) results in clipping of highlight detail; it fades to white.
Also, clipping of shadow detail.
A perceptual intent, on the other hand, is not a proof; all colors
vary by a lot.

So some RIPs (and Photoshop) introduce BPC (Black Point Compensation):
mapping the dark end, they recover shadow detail; yes it's at the
expense of colorimetric accuracy in the deep shadows, but it's still
better than clipping. Specially when the difference is small.

For the highlights, the only solution I know of is PrintOpen's option
to fake a white L* when building the profile. Exactly the same as BPC,
but in highlights.
Typically the way you'd use it is when building the proofer profile,
you say I want white to be L*=95 instead of L*=94. It scales the
readings and takes care.

But I want to do it on the source profile. Among other things, because
that would allow me to use it also in non-ICC systems such as GMG or
Oris.

So; I have my Matchprint measurements of an IT8.7-3 whose L* goes
from, say, L*=5 to L*=95; I want to massage those measurements in
Excel to be from 7 to 93, then save and build a source profile from
the doctored measurements.

Question is, what's the best curve/formula/algorithm do to it? because
linear scaling doesn't sound as the best. Maybe scaling with some
perceptually linear gamma (L* is not perceptually linear, right?); or
maybe in shadows we need to scale a* and b* too, to preserve the
original chroma slope on the gamut edge. Maybe a scaling function that
gets applied only on the ends but merges smoothly into the rest of the
range. Or whatever. Suggestions?

best regards,

-- Roberto Michelena
   Infinitek
   Lima, Peru

Other related posts: