Colour Conversion between Devices

In most cases, one typically needs to take an image captured or modified on one imaging device and output that image on another device. The problem is that most imaging devices work in their own device dependent colour space. This means that some method is required to take images created in one colour space and transform the image data into another colour space with minimal loss in colour and tone reproduction.

International Colour Consortium - ICC

To address this issue the International Color Consortium, known as the ICC, developed a set of standards for open colour communication
between imaging devices. Colour conversions before ICC (e.g. from a scanner to a printer) were handled using software with proprietary algorithms that could create the colour
conversion as a closed system. With the advent of ICC, a standardized process and open architecture for handling colour image files became widely adopted for colour imaging products.

ICC Colour Management Workflow 

The basic idea behind the ICC colour management workflow is to take image data created in one device dependent space,
convert these files into a device independent colour space, and subsequently convert from the device independent colour
space to another device dependent colour space.
The ICC colour management workflow for a scanner, monitor, and printer. 

The scanner produces device dependent RGB values A transformation needs to be done to convert the RGB data to XYZ or Lab (device independent colour spaces),
To display the colour correctly on the monitor, the XYZ or Lab data needs to be converted into the monitor’s device dependent RGB colour space.

To print the right colours on a printer, the XYZ or Lab data needs to be transformed into the printer’s device dependent CMYK colour space.

ICC Profiles

To perform the transformation from a device dependent colour spaces to device independent colour spaces, ICC defined a set of transformation tables called ICC profiles.

ICC describes three types of profiles: Input Profiles convert device dependent image data into a device independent colour space 
Output Profiles convert image data from a device independent colour space into an output device dependent colour space 

Display Profiles convert device dependent image data into a device independent colour space and can also perform the reverse transformation. SW refers to these profiles as Internal Profiles.