[Openicc] Introduction / Gutenprint

Gerhard Fuernkranz nospam456 at gmx.de
Mon Apr 11 00:07:24 EST 2005


Robert L Krawitz schrieb:

>Part of the rub is what the "final DeviceCMYK" values are. They're
>always going to be interpreted somehow by the driver, since inkjets
>aren't continuous-tone devices and all that.
>
Correct, and their colorimetric meaning depends on the particular driver 
settings, the used consumables (paper, inks, ...).

>It sounds like what you're really suggesting here is that the driver
>provide good linearized output, and ICC profiles or whatnot be applied
>in Ghostscript.  That's fine, but if Ghostscript is delivering 8-bit
>data to the driver, it means that a fair bit of information is getting
>lost because the profile won't be a 1-1 mapping.  If Ghostscript
>outputs 16-bit data that issue goes away.
>
Actually I'm not really suggesting anything, because I don't know a 
satisfactory solution.

On the one hand, I'm not fully satisfied with the quality of 
ghostscript't color rendering, and on the other hand, with ghostscript 
as is, I see no way to do it externally in the driver (like Gutenprint 
does for halftoning), without breaking PS L3 support for CIE-based color 
spaces in PS documents (I'd hope, my understanding were wrong).

I'm no sure, if gs output to the driver is really limited to 8bpp (is 
it?), but 8bpp is indeed a design limitation for the RenderTable in 
color rendering dictionaries. There may exists other RIPs which use an 
ICC profile instead of the CRD, but ghostscript as is, seems to honor 
strictly the PLRM regarding this issue, and requires a _CRD_ for color 
rendering (not an ICC profile).

If the device color space is well linearized, I'm not sure, if the 8-bit 
RenderTable is really an inacceptable limitation, since only the 3D grid 
points are quantized to 8-bit, but the interpolation between the grid 
points can of course be done with arbitrary precision, which should 
still permit smooth color gradients (if it is implemented carefully).

(So far the theory - how accurate the evaluation, interpolation, 
caching, etc. of color transformations seems to be implemented in gs, is 
a different issue)

>To summarize what I think I'm hearing:
>
>1) Linearization should be performed in the driver.
>
IMO also the generation of Cyan/LightCyan, Magenta/LightMagenta 
separations, since often simply CMYK profiles are used for CcMmYK 
printers, in this case the driver should accept CMYK input for a CcMmYK 
printer. If additionally e.g. orange and green colorants come into the 
play, a multicolor profile is likely unavoidable to utilize the full 
color gamut optimally. But of course, for CcMmYK, a multicolor profile 
could be used as well.

Btw, does the IJS interface currently support drivers with a DeviceN 
(i.e. multicolor) ProcessColorModel?

Regards,
Gerhard






More information about the openicc mailing list