Ghostscript non-ICC based color conversion workflow
Michael Vrhel, Ph.D.·December 15, 2019

Ghostscript color management provides a number of different options. One of these that is frequently used is the -dUseFastColor
option.
In the current code base (version 9.50), the use of this option on the command line forces device-based colors in the source document to be transformed using a non ICC-based color conversion workflow. Here the term device-based color is a color whose PDF or PS color space is defined as being DeviceGray, DeviceRGB, or DeviceCMYK in the source document (1). An ICC-based color conversion workflow means a workflow that makes use of ICC profiles to perform a color conversion. If the profiles provide an accurate characterization of the devices, then the conversion should provide an accurate color rendering of the original document (assuming the rendering output device has a sufficiently large color gamut).
If -dUseFastColor
is not included on the command line, the DeviceGray profile will be assigned the default gray.icc ICC profile contained in Ghostscript’s iccprofile directory. An ICC-based color workflow will be invoked in this case to convert the source color to a color in the color space defined for the target device. Similar handling is performed for colors in the DeviceRGB and DeviceCMYK source color spaces.
If -dUseFastColor
is included on the Ghostscript command line, then the source colors that are device-based will undergo a simpler transform which is defined in the PDF 1.7 specification in Section 6.2 (2). These transforms are well-known but crude in terms of providing any sort of color management. For example, the conversion of RGB to CMY is performed using the well-known operation
C = 1.0 – R
M = 1.0 – G
Y = 1.0 – B
If CMYK values are required, then the CMYK values are derived from the CMY values using an undercolor removal/black generation method.
With the next release of Ghostscript (tentatively 9.51), there will be a change in the behavior of -dUseFastColor
. In version 9.51, all source colors that are defined in any Gray, RGB or CMYK color space, including those that are ICC-based color spaces, will be converted using the simpler color conversion methods with the inclusion of -dUseFastColor
on the command line. The reason for this change is to enable those customers, for whom color accuracy is not a concern, to avoid the more costly ICC-based operations.
Of academic interest are the questions of where does Equation 1 come from and are there ever conditions when this transform could lead to an accurate color conversion. We will save the answer to these questions for a future posting.
1 For those who are more knowledgeable about the PDF format note that we are also assuming the document does not include resources that define the DefaultGray, DefaultRGB or DefaultCMYK.
2 Section 10.4 of the ISO 3200-2:2017(E) specification.