[argyllcms] Re: interpolation reversibility

  • From: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Thu, 10 Nov 2005 00:33:30 +1100



Roberto Michelena wrote:
But the way you're approaching iteration (with an abstract profile),
it throws away the previous data in each round.

No it doesn't. The previous abstract profile is fed into creating the next one, thereby continuing to refine it.

- you build a profile (first round, let's call it p1) the standard
way; for simplicity let's say you use a 1000-patch chart and build
with 21 gridpoints per axis in the B2A table. Total 9261 gridpoints of
which probably over 70% are wasted space. (am I right?); so about
2000-3000 in-gamut gridpoints.

Yes. There are ways to make the B2A grid more efficient (especially using ICCV4 format), but you sacrifice the ability to properly gamut map out of gamut points in the full Lab PCS cube, since 1D lut and matrix values are clipped on a per component basis.

- you make a chart consisting of those B2A gridpoints, converted to
device space (abscol) through p1. Of course only those B2A gridpoints
that fall in gamut, and then only a sampling of them, so maybe 1000
new patches. This second chart will have 'weird' device values, so to
say, not ordered or anything, because they're sampling PCS space not
device space.

Refine is specifically aimed at improving proofing test charts, or other specific target colors, rather than any other purpose

Argyll has never needed any kind of test point ordering, and
doesn't generally generate ordered test charts.

It seems to me that this method would make a very accurate B2A table,
for in-gamut gridpoints.

As I mentioned, experience so far indicates that iteration doesn't buy much, as the profile is already close to the accuracy limit of the instrument and the device repeatability.

Graeme Gill.


Other related posts: