[Openicc] profile-configuration, application, CUPS, Ghostscript,
Gutenprint
Hal V Engel
hvengel at astound.net
Wed Apr 20 06:52:00 EST 2005
On Tuesday 19 April 2005 05:35 am, Michael Sweet wrote:
> Jan-Peter Homann wrote:
snip
> > b) Also GhostScript has no possibility to deliver to profile for the
> > document-colorspace to Gutenprint.
> >
> > ...
>
> This is correct, however IMHO Gutenprint doesn't need to know this
> information. It will get one of 4 colorspaces (W, RGB, K, or CMYK)
> and can assume that W and RGB are sRGB, and K and CMYK are linear
> CMYK which can be profiled with the transform happening in the app
> or RIP.
I am not sure why Gutenprint would need to make any assumptions about the
color space of the raster image it is being handed. Shouldn't Gutenprint be
getting the raster image in a printer model specific or custom device
specific color space rather than a generic color space like sRGB? If
Gutenprint gets the document in the sRGB color space (the same is true for
any non-model/device specific color space such as linear CMYK) then it must
apply another color space transformation from sRGB to the device color space.
Besides sRGB is really a generic monitor profile and it does not have a wide
enough gamut to handle the full range of colors that are possible with, at
least some, current printers. I have compared the gamut maps of my printer's
custom profiles to sRGB and I would lose some of my yellow and blue gamut if
sRGB was used in the processing chain. Other printers have wider gamut than
mine because I am using archival inks. Therefore for many the decrease in
gamut would be even greater than in my case. I also think that we should
expect that printers will have even wider gamuts in the future. So the use
of sRGB in this processing flow is inappropriate for a number of reasons.
The only place that the sRGB color space has any role in the printing work
flow, if it is not the embedded color space, is when CUPS gets a document or
image with no embedded color space(s). In that case it should assume that
the document or image is sRGB if it is an RGB document. Simply because this
is the best guess that it can make.
In the simplest case, which is a raster image such as a photograph, CUPS will
be passed the image file from the app along with possibly some CM related
arguments. CUPS (or the filter as the case may be) will pull the embedded
profile from the image and using other arguments passed by the app will use
the correct printer profile and rendering intent to transform the image to
the correct printer color space and pass the resulting printer specific
raster image to Gutenprint.
application CUPS/GhostPrint
gimp-print => and filters => Gutenprint => printer
plug-in for embedded CS to
example printer CS
In the case of PDL type documents we really have the same basic processing
flow if we think of the RIP as the application. Since the RIP could produce a
raster image that is in a single intermediate standardized color space that
will be passed into the filter that handles the final color space conversion
to the printer color space. Or perhaps the RIP handles this all in one pass
by going directly to the printers color space. Since I don't work with
these types of documents I will leave this to others. In any case what gets
handed to Gutenprint (or any lower level printer driver) is a raster image
that is in the correct device specific color space.
Ghostprint CUPS
DPL => CUPS => RIP flattens => flattened CS => Gutenprint => printer
app image CS to printer CS
OR
Ghostprint
DPL => CUPS => RIP flattens => CUPS => Gutenprint => printer
app doc CS to
printer CS
Hal
More information about the openicc
mailing list