[Openicc] _ICC_PROFILE in reality

Kai-Uwe Behrmann ku.b at gmx.de
Fri May 27 00:26:21 PDT 2011

Am 27.05.11, 10:27 +1000 schrieb Graeme Gill:
> Chris Murphy wrote:
>> I just expect the OS to handle it. The problem with apps having to do
>> something special to make it work is that so few developers do.
> I think this would be possible, but the OS graphic support would
> have to be sufficiently enlightened. For instance, it would
> be necessary for the graphics system to allow arbitrary
> source pixel representation by the application, and then
> allow the application to set a device link type transform
> from that space to the display. The OS/Window manager could then

Agreed. And then we would enter an area of very complex requirements from 
application side toward the OS. The actual approach to OS or toolkit 
colour management is "tag your source image" and the OS/toolkit does the 
remaining things. The next client request is to specify some options - 
intents, out of gamut marking, BPC ...

But what you write now about, is a very detailed control about colour 
correction for output devices. Thats a quite huge shift.

> manage the spatial aspects. This leaves the application in full
> control over the color transformation. Complications are
> that typically what an application has to display is a composition
> of different elements. Certain image data may be in an arbitrary
> color space with a desire for high fidelity color, but there will
> be other elements defined in different color spaces that need to
> be composited together. You end up with the need for quite a
> sophisticated compositing system. I suspect that many of

The client would need to become able for specifying the compositing to 
device transforms. I am not aware of a source to destination transform 
to occure in a compositing environment.

> the current display composting systems fall short of what I've described
> above in two ways: They don't support arbitrary source representation
> (ie. they all assume 3 component sources), or they don't support
> an device link transform (ie. they assume ICC source profile +
> destination profile).

agreed to "they assume ICC source profile". The distination profile is 
automatic. So the application developer is "freed" from handling device 
profiles during drawing context setup. At least this widely applies to 
display colour correction. For printing there is traditionally more 
control provided.

> When the application handles the whole deal and transforms its sources
> into the device dependent display values, it at least has the possibility
> of getting it right. The developer has to care to do so though.

My mere feeling is, that there still might be cases left, where clients 
can not be convinced to use system colour management. So the last level of 
control, to put raw values in place, is still needed. Now the question is,
Will it be worth to introduce on the OS/toolkit level the kind of 
sophistication with device links per possible output devices? Or might it 
be simplier for developers and OS maintainance, to allow the few 
applications, who need so much control, to specify a not too much 
convenient way for opt-out and let them do all colour on their own?

For most applications it will be sufficient to specify a source profile 
and left the remainder to the OS/toolkit. Of course the cloned output case 
should be fixed somehow. I guess that needs more work on Xorg internals 

kind regards
Kai-Uwe Behrmann
developing for colour management 
www.behrmann.name + www.oyranos.org

More information about the openicc mailing list