Color Management for Printing

The proliferation of lower cost color printers has created a need for the management of processes used to print color images. The images produced by these printers are being compared to photographs, which are continuous tone images. Continuous tone images are produced with a virtually unlimited range of color or shades of grays. Most printers use a digital process that cannot reproduce continuous tones images. A digital process can represent only a limited number of colors or gray levels. More accurately reproducing colors, a process known as Color Management, creates better quality digital images with the perception of continuous tone.

Color Overview

The perception of color by humans is a function of three receptors in the eye, referred to as red, green, and blue cones. Because of this, color systems are generally based on three components called tristimulus values. The representation of color in imaging systems has its foundation on numerous color spaces based on tristimulus values. This article will explore only the Red, Green, and Blue (RGB) and Cyan, Magenta, and Yellow (CMY) color spaces. Color Cathode Ray Tube (CRT) monitors and most computer graphics systems use the RGB color space and the color picture publishing industry uses the CMY color space.

The components of each of these color spaces are normally represented as a value between 0.0 and 1.0. When using a different system of representation, normalization can be accomplished by dividing each component by the maximum value. If the system representation of color is 8-bits per component, then the normalized values would be:

Cnn = Css / Mcc

Where: Cnn is the component color normalized
Css is the component system representation
Mcc is the component system maximum value
If the component value is 128, then:

Cnn = 128 / 255
Cnn = 0.502

The RGB color space consists of the three additive primary colors red, green and blue. The components of these primaries are combined additively to produce the desired color. Combining the maximum value of each component results in the color WHITE.

The CMY color space consists of the complement of the additive primary colors. These are known as subtractive colors because the primary colors absorb their complement. Cyan will absorb Red, Magenta will absorb Green, and Yellow will absorb Blue. Therefore, combining the maximum value of each component results in the color BLACK.

Problems Printing Color

Since the RGB and CMY color spaces are the complement of each other, it would follow that the conversion of one color space to the other is a simple matter. Theoretically, each color space could be transformed to the other by the following formula:

Crr = 1.0 - Ccc and Ccc = 1.0 - Crr

Where:
Crr is the component in RGB color space Ccc is the component in CMY color space

However, printers must exist in the not so perfect physical world. In the physical world there are many factors that cause the transformation to be non-linear. Some of these factors are:

  • Digital printing
    • Dot size (amount of ink per dot)
    • Resolution (number of dots per inch)
  • Ink characteristics
    • Dye or pigment color
    • Viscosity
    • Drying time
  • Media characteristics (paper, cloth, etc.)
    • Color
    • Absorption rate
  • Environmental conditions
    • Humidity
    • Temperature

Each of these factors, and others, cause the transformation from one color space to the other to be more complicated. Dot size and resolution may cause the image to appear grainy and change the lighter and darker colors. One of more of the ink colors is not a 100% accurate primary color, causing the transformation to be inaccurate. The ink viscosity and dry time affect the dot size and mixture of the colors. The color of the media, if not white, causes the color transformations to be incorrect. The absorption rate of the media affects the dot size and the mixture of the colors. The environment affects the dry time and absorption of the ink.

Color Management Components

Color management is made-up of basically three components:

  • Halftoning or Screening
  • Device characterization
  • Color transformation

Halftoning is the photographic and digital process of representing continuous tones as a pattern of dots. Halftoning is used whenever images are displayed on devices that can only display two states. The term Screening refers to the process used to decompose an image into only primary colors and overlay those primary colors on media to create a picture. The silk screening of tee shirts is an example of this process. Some of the more common Halftoning/Screening methods are dithering, blue noise, and error diffusion. Dithering is created by thresholding the image with a dither matrix. Blue noise, known as stochastic screening, is dithering using a matrix created from frequency-modulated noise. Error diffusion is selecting the nearest color for each pixel, calculating a Quantization error and distributing the error to the nearby pixels. Using these screening methods as a base, many other screening methods have been developed. Additional screening methods are being researched and may be available in the future.
The ICC profile is a method used to characterize color devices, which meets the International Color Consortium standard. This standard was developed in an attempt to provide a cross-platform profile to characterize color devices. The ICC profile contains only the data required for the characterization of the device.

ICC profiles are used as inputs to software called a Color Engine. The Color Engine uses the device characteristics from the ICC profiles to transform the color information between the input and output devices.

Implementation

The Screening, ICC profiles, and the Color Engine are required to produce the perception of continuous tone color. Each of these elements can be considered as operating system and hardware platform independent. There are currently many sources of software used to develop ICC profiles; however, the screening and color engines do not exist for all operating systems and hardware platforms. Additionally the environmental conditions that can affect the color management cannot always be predicted. There is a need to linearize these profiles to account for the changes in the environmental conditions. The development of a cross-platform Color Engine with the ability to compensate for the changing environmental conditions and a standard set of screening algorithms could be used by many printing solutions. This set of software would be developed in an object-oriented fashion allowing for updates to the algorithms without affecting other elements of the solution. The software would be implemented using a Channel Processing technique, which provides for incorporation into various printing solutions as libraries.

Channel Processing separates each the primary colors into a separate channel for processing. This allows the processing of any number of input or output channels. The channels are then sent through the process in parallel. The processing sequence is:

  • Color channels obtained from the application
  • Color channels to the Color Engine for transformation
  • Color corrected channels to the Screening process for Quantization
  • Color corrected and screened channels returned to the application

Printer Driver Development

The Color Engine reads the ICC profiles and linearization data indicated by the application and creates a transformation matrix. When the application sends the image color channels to the color engine, the colors are converted from the input device characteristics to the output device characteristics. The channels containing the color corrected data are then sent to the Screening process.

The Screening process applies the screening algorithm indicated by the application and returns the channels containing the color corrected and screened data to the application for further processing.

Conclusion

Color management in the printing environment is not a black art as many programmers think. The implementation of a generic Color Engine and set of screening algorithms could be used with many operating systems and hardware platforms. This would pave the way for incorporation of the Channel Processing into various printing solutions. The object-oriented nature of the Channel Processing would allow for easy additions or updates when new algorithms are developed keeping the Channel Processing at the state of the art.

For more information about Intelligraphics printer driver development services, or for a project estimate, please contact Intelligraphics at (972) 479-1770 ext. 120 or sales@intelligraphics.com.