[argyllcms] Re: dispwin vs xcalib loading LUT

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

> Right, but since it was Apple who created this tag, I think that
> how they interpret it is what counts.

Hm, I'm tempted to say "yes" - but: there are a bunch of other loaders
that count as well - Logo Calibration Loader, Monaco thing, Spyder
ProfileChooser, WindowsXP Color Control Panel, xcalib, dispwin, ...

If I have the time I'm willing to find out, how they all behave - most
of them are "professional" and widespread. Unfortunately I don't have
access to all of them - so if anybody's having one of these loaders,
please extend Frederic's sheet :-)

Yesterday I tried the XP color control panel: It behaves like xcalib.

 >> The ramp is then created from the gamma values rGamma, rMax and rMin like 
 >> this:
 >> for(j=0; j<nEntries;j++)
 >> {
 >>   ramp[j] = 65536.0 *
 >>           pow (j * (rMax - rMin) / nEntries, rGamma * SYSTEM_GAMMA)
 >>           + rMin);
 >> }
 >> I think xcalib's behaviour is correct - at least if the
 >> result is compared to other calibration loaders like the WindowsXP
 >> color panel, ...

> According to Apple documentation, this isn't how it works.
> See <http://developer.apple.com/technotes/tn/pdf/tn2007.pdf> page 8/9:

>    Gamma values must be greater than 0.0.
>    Specify a value of (1.0 / 1.6) to get an antigamma of 1.6.
>    Min values must be greater than or equal to 0.0 and less than 1.0.
>    Max values must be greater than 0.0 and less than or equal to 1.0.
>    Returns kCGSRangeCheck error if the values are out of range or
> max is greater than or equal to Min.
>    Values are computed by sampling a function for a range of indices from 0 
> through 1:
>    value = Min + ((Max - Min) * pow(index, Gamma))
>    The resulting values are converted to a machine specific format and loaded 
> into the hardware.

That doesn't differ much from my formula above - besides the system
gamma that I added. I know that I once checked with a Mac - but this
was (afaik) xcalib 0.1 which didn't use the system gamma and therfore
behaved like dispwin. I know that I changed this when I saw all the
Win32 loaders (incl. AdobeGamma? ) - and then the 2.2 thing came in.

> Checking on my Apple laptop, the "Gamma 2.2" profile Frédéric attached behaves
> exactly the same with the Apple profile calibration loader as diswin,
> brightening the screen considerably, so I conclude that the WindowsXP loader
> is faulty, and dispwin is correct.

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.



Other related posts: