[argyllcms] Re: dispwin vs xcalib loading LUT

  • From: Stefan Döhla <color@xxxxxxxxx>
  • To: Graeme Gill <argyllcms@xxxxxxxxxxxxx>
  • Date: Tue, 2 Jan 2007 11:45:08 +0100


> I can't agree with you. It's not a matter of a vote, it's a matter of
> what's technically correct. I can't imagine Apple changing what they
> do because others have mis-implemented a private tag of theirs, no
> matter how widespread such a mis-implementation is.

In terms of "correctness" - yes, you are right. But still I'd like to
know if others use the tag different from the way, Apple uses it.

This question comes always up when there are many implementations
which do things wrong and a specification - should one
handle only data from "correct" implementations or data from all
vendors by work-arounds? I think there's no final answer ...

>>  >>   ramp[j] = 65536.0 *
>>  >>           pow (j * (rMax - rMin) / nEntries, rGamma * SYSTEM_GAMMA)
>>  >>           + rMin);

>> That doesn't differ much from my formula above 

> The handling of min/max is rather different - you've got it inside
> the power, whereas the correct formula has it outside the power. In
> practice I wouldn't imagine it will often matter, since there seem
> to be few profiles that use the formula, and even fewer with values
> for min/max other than 0.0 and 1.0 respectively.

Oh, sorry, you're right. I implemented this without documentation and
it was a quick hack. I will change it in the next version and maybe
make my "SYSTEM_GAMMA" a user parameter - maybe.

>> Hm, maybe it's safe for both dispwin and xcalib to add a parameter for
>> a gamma-nominator/mulitplier or something like this. But still I'm
>> interested how all the other loaders work and will do some tests.

> In practice it probably doesn't matter much - who's going to go to
> the trouble of calibrating their system, and then use a single
> number to represent it ? Anything serious is going to use a table.

Hm, but if (and only if!) there are profiles which contain the formula
and which differ from Apple's implementation, we should handle it
somehow - at least xcalib should handle it since it's meant for any
ICC profile with a vcgt-tag. If not, well, then it's not worth the
effort and may confuse the user ...



Other related posts: