We have learned that unfortunately it is common to have different colour output for the same device, even with the same specific model. But in practice, it is necessary to have all devices reproduce the same output. Being able to achieve consistent colours across different devices and media is a big challenge…
So, what can we achieve when implementing ‘colour management’? In short, we can expect a similar appearance of an image across different devices and media; just like what is shown in Figure 1. All devices, including input devices, such as scanners and cameras and output devices, such as monitors, projectors and printers, will all reproduce the same colour appearance. In order to do so, it is necessary to understand the range of colours that a particular device or medium could reproduce. The range of colours is called a ‘colour gamut’.
Colour gamut is usually described as a 2D diagram, shown in Figure 2(a). The horseshoe shape represents all the colours that humans can perceive and the enclosed area inside the horseshoe shape represents all the colours that a device or medium can reproduce. But in fact, colours should be described in 3D since we need to use XYZ values to describe a particular colour. The comprehensive colour gamut should be drawn in 3D, like the one shown in Figure 2(b). However, due to the fact that drawing in 3D is not easy, even with the latest computer tools at our disposal, the 2D colour gamut diagram is still widely used. The unfortunate result is that the lightness information of the colour is missing in the 2D diagram. So, if there are two colours shown on the same location, it may not necessarily be the same colour: it could be the same shade of colour, but one may be lighter and one may be darker.
For two devices to have the same colour output, it is necessary to accurately map or transform the two colour gamut types. Failure to do so can result in the situation illustrated in Figure 3, which is a very commonly seen scenario of unmanaged colours. There are many algorithms out there to map or transform colour gamut types, but we are not going to discuss these in depth here. What we will discuss is the concept of colour management and its general workflow. More importantly, which tool can help us manage colours?
Figure 3: Example of unmanaged colours.
When transforming or mapping two colour gamut types (or devices), it is simple; just set up one transformation between the two devices, and we are done. But what happens when there are more than two devices? We could still set up separate transformations between each pair of devices, but this will result in a very messy web of transformations; like the one shown in Figure 4. In order to reduce this complexity, it is much easier if each device knows how to transform to a standard colour space and transform back from the standard colour space (Figure 5). Using this concept, we could transform from one device to any other devices by utilising two transformations only.
But what should the standard colour space look like? And who should set up the specification of the standard colour space? Fortunately, ICC has this covered. ICC stands for International Colour Consortium and was established in 1993 by eight industry vendors. The purpose of ICC is to create, promote and encourage the standardisation and evolution of an open, vendor-neutral, cross-platform colour management system architecture and components. And the outcome is the ICC profile specification. ICC profile is the key to achieving an open source colour management workflow. It contains information related to the device characteristics and both forward and backward transformations from device to the standard colour space, which is called PCS (Profile Connection Space) in ICC colour transformation. ICC colour transformation is illustrated in Figure 6.
Figure 6: ICC Colour Transformation
But how can ICC colour transformation be utilised in practice? Let’s look at the example in Figure 7. When a user scans a colour from a scanner, it reads (R, G, B) = (42, 82, 171). If the user would like to print out the same colour as the scanned colour, the ICC workflow will first transform the scanned colour to (L*, a*, b*) = (61, 11, 43) in PCS by using the scanner's ICC profile. Then by using the printer's ICC profile, (L*, a*, b*) = (61, 11, 43) is determined to be (C, M, Y, K) = (57, 20, 0, 0) for the printer. By comparing (R, G, B) = (42, 82, 171) from the scanner and (C, M, Y, K) = (57, 20, 0, 0) from the printer, the user will find that the colours are very similar. This illustrates the overall ICC workflow.
Figure 7: Example of ICC Workflow
In this article, we have discussed the concept of colour management and its goal to have a consistent colour appearance across different devices. We also talked about colour gamut and how to setup transformations between two or more devices. Lastly, we introduced ICC and ICC profiles, and how ICC workflow is utilised in practice. In our next article, we will talk about who should really utilise ICC workflows and how it should be done.