[Openicc] XICC specification draft

Chris Murphy lists at colorremedies.com
Mon Jun 27 05:15:57 EST 2005


On Jun 25, 2005, at 6:38 PM, David Burren wrote:

> In general, "who/what" is expected to set the atom, set display  
> LUTs, etc?  In this case OSX will have set the LUT calibration and  
> it makes sense for the Xquartz server to set the atom.  But be  
> careful not to establish a requirement that the server does it: in  
> a pure X11 system it's probably best for a client to do this and  
> handle the relevant policy decisions.

atom is a term I'm not familiar with, so I'm not sure what it's  
significance is.

Anyway, what really needs to be done is build windowing systems to  
use device independent color. Conversion would be a step that would  
occur just prior to rasterizing, both of which can be done either in  
software or in the video card itself depending on the hardware  
available. For applications to need to know how a display behaves  
seems like a ton of extra work on the part of every application  
developer, especially when it becomes clear as we look to the future  
that display behavior is going to be anything but consistent. We  
won't be able to assume sRGB, or device dependent color for display  
without there being a big step backwards in the quality of on-screen  
color reproduction.

(This doesn't mean that the windowing system has to know what CMYK  
is. But a minimum it would be based on a single RGB space, everything  
from applications being normalized to that space.)

Further, application-based color management only handles color within  
the applications windows. The entire user interface itself needs to  
be color managed or the effect of simultaneous contrast will still  
cause two identical images to have different color appearance on two  
displays.


> Which profile should be used in multi-head configs?  In a  
> traditional multi-head X11 system, each screen can be accessed via  
> a different $DISPLAY (e.g. machine:0.[screen-number]).  Thus each  
> screen can have a different profile atom (yay!).  But with this  
> system there's no facility to move windows between screens or have  
> them spanning screens.

The window server knows what display is being used. And application  
doesn't. Correct? If the rasterization portion of window serving is  
color management aware, it's in a better position to negotiate proper  
display compensation, on-the-fly, than an application.

> So systems like Xcinerama establish a single virtual screen  
> covering the entire multi-head area.  And this is what can happen  
> with Apple's Xquartz.  It just presents a simple single-screen  
> desktop to the X11 clients.  On an Xcinerama system the user will  
> have to choose one profile to use for the entire system.  In  
> Xquartz I expect that the server would have to settle on using the  
> profile for the "primary" display (but at least OSX will have set  
> the calibration individually for each screen).  Not a perfect  
> system, but at least it's no worse than the current behaviour of a  
> lot of "profile-aware" software (e.g. Apple Mail, Safari, iView  
> MediaPro, etc) that only know about a single display profile.

What's acceptable today, with largely similar behaving displays, is  
not what we get to look forward to. There are already two displays  
with Adobe RGB (1998) primaries shipping now. Device dependent color  
is seriously over saturated on such displays. HDR displays are on the  
way.

Also, to date the mentioned applications are very color management  
unaware. They do not do color management themselves at all per se.  
When they see a tagged image, the drawing commands include those  
tags, and using Cocoa they get a lot of this behavior "for free."  
Quartz 2D is implicitly asked by the application to do display  
compensation. I believe up to 10.4.1 the rendering is done by the  
application (CPU cycles are attributed to the application) even  
though the rendering library is OS provided. In 10.4.2 this is  
rumored to be off loaded onto the GPU rather than the app. It's not  
much further to totally abstract the application from what display is  
being used, and that will clearly include display compensation.

I see this legacy behavior as something that is systemic, and once  
all the necessary switches get flipped, all apps are going to have  
multiple display support. That's my expectation anyway, I have no  
idea when that will happen.


Chris Murphy
Color Remedies (TM)
www.colorremedies.com/realworldcolor
---------------------------------------------------------
Co-author "Real World Color Management, 2nd Ed"
Published by PeachPit Press (ISBN 0-321-26722-2)




More information about the openicc mailing list