[Openicc] ICC Profiles in X Specification 0.4

Kai-Uwe Behrmann ku.b at gmx.de
Thu Mar 25 01:48:30 PDT 2010


Am 25.03.10, 10:02 +1100 schrieb Graeme Gill:
> Kai-Uwe Behrmann wrote:
>> Am 24.03.10, 09:23 +1100 schrieb Graeme Gill:
>
>> Again, we do not create a spec from scratch. The 0.1 version is already 
>> widely adopted and used. I guess the following versions are as well. So if 
>> we break existing applications, user will blame us. And IMHO they would be 
>> right in doing so.
>
> I don't see how any existing applications can be using ICC_PROFILE_xxx,
> if it doesn't work reliably. Using the output property in XRandR

I use Xinerama APIs on a daily basis. They work relyable. The indexing 
of ICC_PROFILE(_xxx) must follow the Xinerama API. It should be 
explicitely described in the next spec version. Thats all.

> is the natural and reliable approach. Any other approach is difficult
> and unreliable to implement, and we should be trying to straighten things 
> out.

Xinerama was the natural way some time ago. That most of new features go 
into the object oriented XRandR approach has nothing to do with current 
requirements for a colour managed desktop.

> I don't see any problems in recommending that XRandR output _ICC_PROFILE
> be used as well as ICC_PROFILE_xxx on the root display. Ultimately
> we should then deprecate the ICC_PROFILE_xxx approach.
>
> [Argyll will continue to work this way.]
>
>>> I don't understand what _ICC_DEVICE_PROFILE is for. _ICC_PROFILE holds
>>> the (display) device (destination) profile already. 
>
>> The net_color spec introduces the idea of a colour server. The colour 
>> server needs some means to correct from a source colour space to a 
>> destination as usual. It searches for per window (source areas) regions and 
>> corrects in my implementation all undescribed areas. Typical non net-color 
>> spec aware applications do not describe any region to be colour corrected. 
>> So the colour server can not differenciate what is already corrected, and 
>> should not be touched, and what can be corrected. 
>
>> The colour server places some reasonable colour space into the _ICC_PROFILE 
>> atom(s). 
>
> I see many problems with this. Why is the _source_ colorspace described
> by the _destination_ ? The source colorspace should be described by some
> resource associated with the source object (ie. window, graphic, etc.)
> 
> Why is the property that describes the destination space being altered
> by an application/server that is concerned with the source colorspace ?
> It shouldn't be touching it.
> 
>> This is the display document or blending colour space. Old standard 
>> applications will see that profile and correct to that. This avoids any 
>> double correction conflict with the colour server at the price of having no 
>> description of the real device capabilities. 
>
> Sorry, this seems like a really horrible hack to me. Any such color transform

The original _ICC_PROFILE spec misses several use cases. We should correct 
that.

> facility should _not_ be changing fundamental information about the device,
> and overturning the assumptions of many established tools and software.

Which kind of software could break through a altered _ICC_PROFILE atom in 
a colour managed server?

> Instead it should be a resource made available to the higher level rendering
> libraries, and coordinated at that level. The rendering libraries & systems

This implies to me to deprecate _ICC_PROFILE and move device informations 
into _ICC_DEVICE_PROFILE. Thus apps can be explicite together with the 
net-color spec.
The _ICC_PROFILE is then there for backward compatibility only and free to 
be altered by the colour server.

> will/should have their own way of gathering the source colorspace 
> information,
> or falling back to some default source space. Adding extra "magic" layers of
> hidden color management is generally a really bad idea. It creates
> difficult problems when things don't work.

Yes, you are right. A straight forward written spec is very valuable.

> (Apple discovered this the hard way recently. They changed their
> printer driver so as to impose a default source colorspace for
> untagged sources, and guess what - they broke most of the
> profiling applications. It's only taken about 6-9 months for
> them to straighten it out, and only by all the printer manufacturers
> supplying new printer drivers.)
>
> So in summary, I have currently have great reservations about the
> "net_color spec" approach, and don't think it should be proceeded with
> without a very much wider consensus, that it is the best technical direction.

The net-color spec itself is pretty indifferent. What we need to discuss 
here is how to integrate with the ICC in X spec.


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



More information about the openicc mailing list