[argyllcms] WP correction with ICC based CMS applications.

  • From: János, Tóth F. <janos666@xxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Sat, 23 Oct 2010 21:49:13 +0200

Here is a laptop with a "relatively nice TN" display.
It has relatively smooth gradients but it has a defect: The peak white is
yellowish while every other gray tones are bluish (at least they are nearly
equally bluish...).

I live with effectively 10 bit displays since I care about the display
quality but I had this idea in the past that I may skip the calibration and
go directly to the profiling. (I still want to do it when my VGA card will
be able to output 10 bit from it's framebuffers. I am waiting for the
softmod for my HD5850 :) )
Now, that the effective LUT depth is 8 bit as well as the mobile VGA works
with 8 bit frame-buffers (and it is a 6+2 bit TN display), I gave it a try.

My theory is:
- The calibration works with effectively 8 bit precision but it is only a
half job. (WP and gamma but no gamut mapping. And the targets are static.)
- The CMS based software outputs 8 bit from the frame-buffers as well but
some softwares work with higher precision and they dithers the result before
they send it to the framebuffers.
- A calibration works with fixed targets while a software based CMS converts
between source and target profiles (dinamically).
-> So, it is theoretically better to skip the calibration, construct a good
profile and use smart softwares. (It also saves time: you don't need to wait
for the calibration and you need only one profile for everything...)


So, I created an XYZ LUT + matrix profile from 912 sample points (measured
in Adaptive High-Res mode with black/white drift compensation) in "Ultra"
quality mode. (It produced a big ICC file.)

I tried to use this profile in different CMS supported softwares, like:
Photoshop CS5 ; MPC-HC ; Irfanview, Windows Photo Viewer, Feirefox 4.0b6. (I
always use the Relative Colorimetric intent but I also tried to change it to
perceptual.)
And here comes the problem... The profile works and the different softwares
produced the same (or nearly same) results BUT the white point remained
untouched!


-> And my theory seemed to work! MPC-HC with it's 10 bit pipeline and
dithered output produced a reasonable result! I have a relatively smooth
gray gradient. But with a yellow tint... (A calibration with the effectively
8 bit LUT would cause some banding or other artifacts. This method is "free"
from those problems. ---ok, not perfectly, but it's good enough---)


I mentioned it that the peak white is yellowish while the other grays are
bluish. Now, the whole grayscale is yellowish. So, it works (there is a
white balance correction) but not in the way I want...


May be I am the noob here but I thought that the relative colorimetric
intent will take care about the white point. So, if the display has a white
point around 5500K and the source profile in the tagged image says that it
has a white point at 6500K (for example... but theoretically it can be
anything...) then the 100% white (like R=G=B=255) will be shown as a 6500K
white on my display. (But it's not, it is ~5500K now.)
(To be correct: There is a little change in the white point, like 5540K vs
5590K but it's not 6500K or 5000K as it should be...)


Did I miss something? Is there a solution?
Or do I need to calibrate before the profiling? (t will greatly reduce the
number of the available shades which would remain with software
dithering...)

Other related posts: