Before ICC profiles, a device-independent document would encode all color in a device independent CIE space like
CIELAB. When the document was to be printed, the press person would measure a target and create a color transformation
from the CIE coordinates to device coordinates. For office and consumer color printers, the color transformation
for a standard paper would be hardwired in the printer driver or the printer firmware.
This procedure had two disadvantages: the color transformations required deep expertise to produce and were hard to
manage (the latter making them hard to share), and the image data was transformed twice (from input device to colorimetric
and then to output device coordinates) introducing discretization errors twice. The first problem was solved with the ICC
profile standard, and the last problem was solved by storing the original device dependent coordinates in the document-
together with an input ICC profile-so the color management system could first collapse the two profiles and then perform
a single color transformation.
Unfortunately, there is a wide variety in the quality of ICC profiles. Even worse, the real nightmare is that quite
frequently the incorrect ICC profiles are embedded in documents or the color management systems apply the wrong
For consumer and office printers, the solution is to forgo ICC profiles and reduce everything to the single sRGB color
space, so only the printer profile is required. However, the sRGB quality is insufficient for print solution providers. How
can a modern print workflow solve the ICC profile nightmare?