[argyllcms] Re: Gamma wrong for calibration curves?

  • From: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Sat, 02 Dec 2006 12:08:49 +1100

william.wood@xxxxxxx wrote:

I did some further testing.  I copied the 3 bitmap screens that dispcal
uses to calibrate the screen and put them in a directory where I could
switch between them quickly using ACDSee.  Then I ran 3 calibration checks
(dispcal -r) using the bitmaps as displayed by ACDSee rather than the ones
displayed by dispcal.  To prevent dispcal from modifying the laptop display
LUT I set my laptop screen up as a secondary monitor to my office LCD
screen, and told dispcal to display on the office LCD - so dispcal modified
the LUT for the office LCD and the laptop screen retained any LUT entries
it had had while dispcal made the readings off the bitmaps as displayed by
ACDSee on the laptop screen.   :-)

If you're going to do that, you may as well check it manually.
Use spot read (ie. spotread -e -yl), and measure black (0,0,0),
grey 50% (128,128,128) and 100% patches (255,255,255), and compute
gamma = log((White Y - Black Y)/(Grey Y - Black Y)) / log(0.5).
(I've decided that I was mistaken, and that this will best
 approximate what's going on).

Below are 3 of these modified dispcal tests that I ran.  The first is with
no calibration or profile applied and matches what dispcal would report if
run normally on the laptop screen.  The second run is with the original
dispcal-produced LUT loaded.  The third is with the LUT loaded and the

and the profile applied the gamma is 2.24 again!  This seems to indicate
that dispcal is creating a calibration curve with a low gamma and then
"profile" is compensating and setting the gamma higher again.

A profile doesn't (in itself) change anything - it's just a
characterization of the device. Any change you see in applying
a profile is the combination of two profiles, the source and
destination profile. So a change in gamma will be the effect of
the comparative gamma between the two profiles, and the source
profile gamma may not be a simple power curve (ie. sRGB), and
will have different black end aim points, the effect of which will
depend on the linking intent etc.

I think you are reading far too much into it all. It's
called "Approximate Gamma" because it's approximate. The
actual target curve that dispcal is aiming for is more
complicated than the assumptions used for approximate gamma.
Approximate gamma is just a single point measurement, and if
you sampled more points along the curve, you'd get a range
of gamma values, since the curve probably isn't a simple
power law.

The target curve takes into consideration the offset needed in
the black point, to achieve the black point target chromaticity.
For a CRT this usually isn't much, and the approximate gamma
should match the aim curve reasonable well. For an LCD with -k1.0,
this may be quite an offset, causing a noticeable discrepancy, and
a loss of contrast. (If you calibrate with -v, the Gamma curve
offset value is reported, so you could check how much it changes
between -k1 and -k0)
You could try calibrating with -k0.0, and see if the approximate
gamma is now in better alignment with the target one, and your contrast
ratio is better. I've made the -k0.0 behaviour the default for LCD's
in future versions, since I suspect this is what will work best as
a default.

Graeme Gill.

Other related posts: