[Openicc] Print-colormanagement, application->CUPS->gutenprint

Hal V Engel hvengel at astound.net
Tue Apr 19 03:34:27 EST 2005


On Monday 18 April 2005 07:05 am, Michael Sweet wrote:
> Long answer: The driver never sees the "document colorspace" since
> it gets a rasterized version of the document in the destination
> colorspace specified through the PPD file.  An application might
> automatically choose a ColorModel in the PPD file appropriate for
> the current document (Adobe-defined values are Gray, RGB, and CMYK)
> however the driver can only use the destination colorspace (along
> with any other options the driver provides in the PPD file) as a
> hint - you won't know what the original colorspace was unless you
> parse the document yourself.

I am confused.  I just looked at the ppd file for my printer and the only 
colorspace listed is *DefaultColorSpace: RGB.  This appears to be a generic 
(non-device specific) color space.  Are you telling me that if I change this 
to point to a custom printer profile that CUPS (or what?) will do the color 
space conversion from the document color space (using the embedded ICC 
profile - for example AdobeRGB 1998) to this custom ICC profile before 
sending it to the printer?   Or is this something that is going to be 
available in an unreleased version of CUPS?

If CUPS or something else does not do device specific color space 
transformation and Gutenprint never sees the documents embedded profile 
(therefore it can not do this work) then NO color management, as I define it, 
can take place.  The most that can happen are conversions from one generic 
color space (RGB for example) to another generic colorspace (CMYK).   This is 
not color management since these generic color spaces can not by definition 
characterize the color space of a specific device.  Device specific 
characterizations (profiles) are a necessary prerequisite to color 
management.  That is the reason this list is named openICC.  We should be 
here to talk about how to implement an open ICC based color work flow 
infrastructure.   

I also had a look at my portage ebuilds for CUPS, GhostPrint, gimp-print and 
imagemagick.  Imagemagick is the only one that is dependant on LCMS or any 
other library that implements ICC CM functionality.  Imagemagick is listed as 
a dependency for gimp-print.   

Setting up printer color spaces is extremely complex.  By far the most complex 
devices that are part of the color work flow to characterize (profile).  A 
given printer could have hundreds of possible profiles since each possible 
combination of paper, ink, print resolution, dithering... (almost every 
possible driver setting other than paper size settings) requires a different 
profile to be totally correct.  In addition, each printer of the same model 
requires different profiles since these will behave differently because of 
manufacturing variations.  

In practice, I generate custom profiles for a limited number of combinations 
since these are the only ones that I use.  I suspect that most users doing 
ICC color management also only use a limited number of driver settings and 
media combinations in part to make the device characterization work as simple 
as possible as it is time consuming and requires a high level of skill.  But 
I typically have 5 or 6 profiles for each printer (not each model) at any 
given time.   I need a good way to manage these in conjunction with the 
related printer settings that go with each profile.   This needs to be simple 
to do for those who are responsible for creating and installing profiles but 
transparent to regular users.

At this point I do not think it is important what CUPS, GhostPrint or 
Gutenprint currently are doing.  What matters is what will these do once 
color management is implemented for the printer part of the ICC color work 
flow.  I think we need to go back to system design basics here.  When 
designing any system first you gather user requirements.   I believe that 
this is where we are at and until such time that we have these requirements 
in hand it will be difficult to make any progress. 

How do we go about doing that?  There are at least two subscribers to this 
list that have experience with ICC based color management.  One of these 
actually earns his living doing this work and should be considered a subject 
matter expert.  We should leverage that experience to put together a detailed 
set of user requirements.  These requirements should be at a high level and 
should not make reference to any existing systems.  I believe that once those 
requirements are understood that the design phases will not be particularly 
difficult and the way forward will be fairly apparent.

Hal



More information about the openicc mailing list