[argyllcms] Re: B2A vs Inverse A2B?

  • From: "Jason J. Campbell" <campbell.jj76@xxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Mon, 15 Aug 2011 07:01:52 -0400

Graeme,

Thank you for this explanation. I guess the only remaining question for the benefit of my understanding is "what is more accurate" in terms of Argyll -- the B2A lookup (standard CMM method from PCS->Device) or this "Inverse A2B" lookup? From the charts I mentioned, it looks extremely similar given I have suppressed the K generation, etc so the values should essentially be identical with the exception of the compression/interpolation you explained below? It does not appear I can use the inverse lookup in anything other than Argyll, just the traditional B2A side of the profile. Thanks again for the assistance.


At 8:52 AM +1000 8/12/11, Graeme Gill wrote:
Jason Campbell wrote:
 My goal is a CMY-only profile with absolutely no K generation which appears
 to be happening.  However I realized if I round-trip a CMY of 100/100/100
 from CMY->Lab->CMY, I was getting a clipped value (roughly 98/97/95).  If I
 test CMY 50/40/40 my round-trip is extremely close to the input values.

Hi, this is difficult with a cLUT based profile, without going to some
heroic efforts. The reason is that the reverse grid is (naturally!) discrete,
so the edge of the device gamut typically falls within a cell. The cell grid
points can only contain the device values, and to return an interpolated value of exactly 100%, some of the grid points would have to exceed 100%. This is forbidden by the
ICC device value encoding which only allows values between 0 and 100%.

By playing tricks with the per channel curves it is possible to overcome
this limitation, but extra code would be needed to compute extrapolated
values beyond the gamut boundary, such that gamut boundary points
are at 100%. I've never got around to implementing this approach, because
typically this slight gamut compression at the boundaries is not
unwelcome, and if better precision is of concern, a device link is
superior.

You can minimise this effect by ramping up the grid resolution,
but you pay a price in the resulting computation time and
profile size.

Graeme Gill.

--

Other related posts: