[Openicc] Where should CM occur? was: Colormanagement in Gutenprint

Chris Murphy lists at colorremedies.com
Thu May 12 11:51:40 EST 2005


In reading through threads to catch up, I'm seeing a recurring 
discussion on whether color management should be happening in the 
application, the OS (display services or print services) or in the 
printer driver. This is probably more useful for me to write it since 
it's likely just a summary, rather than for the list to read it, but 
here it is anyway.

The old paradigm said that displays were treated as input devices from 
a color management perspective. Raw RGB values were sent to the 
display, because that's all that could be done at the time, and so the 
display profile was the source profile for this data. The new paradigm 
is to customize the image data for each display on-the-fly (display 
compensation), which means the display profile is a destination 
profile.

Essentially, we have a need for normalizing content to a particular 
color space in order to display it, or print it. Either the application 
must do that, and the OS is basically color management ignorant (does 
no further conversion) for both display and print purposes. Otherwise 
the application merely submits metadata (ICC profiles) about the color 
space that applies to each object it wants to display/print and the 
operating system manages how to normalize these objects to the correct 
destination profile (display profile when sending objects to the 
display, and a particular output device profile when sending objects to 
a printer).

Because of the OS specific dependencies necessary for color management 
to happen in the printer driver itself, it seems to me the applications 
are going to have to do the heavy lifting in order to ensure the right 
thing is happening. All platforms have a way to inform them "do nothing 
else" (even if it might be less explicit than we'd like), but not all 
of them have the means for apps to just sent a bunch of metadata and 
hope the OS or the print drivers will honor them and do color space 
conversions correctly. Thus application-level color management is 
easier to implement, and for the developer to choose the relative 
sophistication of the implementation. But it also implies the OS needs 
specific handling for "prematched" data, an area of weakness on Windows 
and Mac OS X currently.

The advantage of system level color management is that you can 
associate device profiles with particular settings in the driver so if 
someone uses a Premium Luster paper type, a particular profile (user 
selectable) will automatically be used rather than the situation where 
you have to select a specific profile *and* the media type settings. 
The more it's desirable for apps to defer to the OS for window/display 
services and print services, the more sophisticated those services must 
be in terms of color management. (Copy/paste between applications comes 
to mind in this area as well, which you can't do without something 
being the intermediary.)

In practice, we have aspects of both implementations. Adobe apps can 
prematch data themselves, or they can submit color metadata downstream. 
But as I've mentioned before the main reason why apps still do this 
today instead of deferring to OS-level color management is because of a 
LACK of sophistication on the part of the OS color management services.

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)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/enriched
Size: 3496 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/openicc/attachments/20050511/e47f45cc/attachment.bin


More information about the openicc mailing list