[argyllcms] Re: CC Profiles In X Specification and dispwin

  • From: Frédéric Mantegazza <frederic.mantegazza@xxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Sun, 13 Jan 2008 09:33:03 +0100

On dimanche 13 janvier 2008, Leonard Evens wrote:

> I'm still finding it hard to visualize what happens to a pixel in a
> file.  I can see that it might have to be modified while editing to
> represent it in some device independent manner as a "color" in a color
> space. But presumably that doesn't get done by the display profile.  I
> also see why that triple of values has to be modified so that what
> appears on the screen actually represents that color within the limits
> of what the hardware can do.   But, there appears to be some division of
> labor in doing that, which I don't understand.  Is the point that the
> data in the display profile is used by the application to deal with
> differing rendering intents, or gamuts, etc. before sending the values
> to X, which would then use the loaded lut. In particular, would pixel
> values, already represented in a device independent color space, which
> happen not to need altering due to rendering intent or other such issues
> just be sent unaltered to X where the loaded lut would then make the
> last corrections.
>
> Also, in connection with this, it seems that the application could do
> everything without loading any luts into X.  So what would be the point
> of doing it with xcalib?   Presumably it is that other applications
> which don't explicitly do color management do use implicit color
> management and if the display is not 'calibrated", what you see on the
> screen for such applications might be wildly off target.

You can se the calibration as a step to make a good usage of your hardware 
(video card/monitor). You can make adjustements on the monitor (to choose 
a white point, like D65), and also load a lut in the video card to 
linearize the response, and also remove color cast. That's all. 

Like the adjustement on the monitor, the video card lut is loaded once, 
usually when windows starts (or manually with dispwin). Then, all 
applications take benefits of all this. The video card lut is like an 
hardware adjustement on the monitor, except that it is done with a 
software (a nice thing could be to have a non-volatile memory in the video 
card to store this lut once for all).

But your hardware has its own color space, which can be close to sRGB, or 
very far (like our projector). So, even if the calibration put it in the 
best state as it could, your image does not look the same on another 
monitor, which have a different color space. The same triplet does not 
lead to the same real color. It depends on the primaries and other 
slectronic stuff.

So, we caracterize the device to know its color space, and be able to 
convert the image from its own color space (usually sRGB or AdobeRGB) to 
the monitor color space. So, an inital triplet (a,b,c) represents a real 
*known* color (in Lab); then, it is possible to use the monitor profile to 
compute a new triplet (d,e,f) which, when loaded to the screen, will show 
the same color as (a,b,c) in sRGB space.

Last point: the video card lut is stored in the profile, in order to have 
only one file with all usefull informations. This is not really a good 
idea, as it is very confusing. dispwin/xcalib only read the vcgt tag from 
the profile, tag containing the video card lut. And the Color Management 
Module (CMM) reads the caracterization part, which can be a matrix or a 
lut (but not the same as calibration!).

What is more confusing is that X is able to store the profile, ie the 
caracterization part (ie matrix or lut), so that applications using the 
CMM can get the profile from X rather than load it from a file. As I 
understand, it is just a way to centralize the profile for all 
applications. Again, this is not the video card lut!

Feel free to correct me if I am wrong (I hope I'm not, as I will explain 
all that to our photoclub people in 2 weeks! But in french, it will be 
easier).

After my prensentation, I will write a documentation, and try to translate 
it in english. This documentation will sumurize all this basic things, 
very confusing for beginers...

-- 
   Frédéric

   http://www.gbiloba.org

Other related posts: