Bookmark and Share

Colour explained

A gentle introduction to colour management.
by Gisle Hannemyr
Published: 2009-07-31.

Back in 2006, Ken Rockwell had an unusually good rant about why most people should use sRGB as their colour space. Since then I must have told at least a dozen people “lost in colours” to read Rockwell's page. But it is getting a bit long in the tooth. Since 2006, the International Colour Consortium (ICC) has gained widespread accept for its standard platform for open, vendor-neutral, cross-platform colour management, and colour management are beginning to be integrated into popular operating systems (e.g. ColorSync in Apple Mac OS X, and WCS in Micosoft Windows), web browsers that understands embedded ICC colour profiles has become mainstream, and large gamut ink jet printers have become much more accessible. As a result, going beyond the safety of sRGB is clearly an option for more people.

In this article, I shall try to explain the key concepts of the ICC colour management platform, what colour management means, why you may elect not to use it, and what is involved if you do.

1. Key concepts

The ICC standard for colour management system are built around four key concepts: colour model, colour space, colour profile, and translations between colour spaces.

When colours are represented in a computer, or an electronic device such as a scanner, digital camera or monitor, their typical representation is tuples of numbers. Typically a tuple consists of three (RGB), or four (CMYK), components. Each component may be 8 bits (giving 256 possible values), 16 bits (giving 65536 possible values), or even larger.

As an example, consider the following tuple: (179,70,27). In isolation, the three numbers doesn't tell us very much. If we are told that this is a representation of a colour using the RGB colour model, we know a bit more. We know that this is a colour made up by adding the three components red, green and blue, and also that the value of the red component is 179, the value of the green component is 70, and the value of the blue component is 27. However, we still don't know exactly what colour this tuple represents. A numeric value of 179 for the red component, for instance, may mean that is should be rendered strongly saturated, or less saturated.

image of hotshoe
The CIE 1931 colour space chromaticity diagram (horseshoe shape), with the colour spaces of ProPhoto RGB, Adobe RGB (1988), and sRGB IEC6 1966-2-1 overlaid.

But if we then are told that this tuple represents 8-bit values, so the white point is the tuple (255,255.255), and that the values should be rendered in the sRGB colour space, we have all the information we need. A colour space, in this context, is an exact specifica­tion of how the numbers that make up a particular colour in the computer are to be colourimetrically interpreted. The ICC standard let you define colour spaces in a way that is unambiguous and colourimetrically defined.

All the colours that are contained in a particular colour space can be graphically represented by a “footprint” overlaid a reference colour space. This “footprint” is known as a gamut. Colours that exists outside the “footprint” are said to be out-of-gamut (i.e. impossible to represent as a tuple) in this particular colour space.

A lot of different colour spaces exists (and you can define your own if you like), but three standard absolute colour spaces that are of particular interest to photographers editing photographs on a computer screen are ProPhoto RGB, Adobe RGB (1988) and sRGB IEC6 1966-2-1. The figure shows the gamut of all these three colour spaces, using as reference the CIE 1931 colour space that models the colours that can be perceived by the human visual system.

An absolute colour space defines how colours should look like. However, it doesn't tell a device (e.g. a digital camera, a scanner, a monitor screen, or a printer/ink/paper combination) all it needs to know in order to produce the best match for a colour. This is the job for colour profiles.

A colour profile is a translation matrix that is used by software that renders images on a specific device how to translate the representation of colours that are coded in the image and defined by an absolute colour space into corresponding colours on the device.

ICC system expects images to have an embedded tag stating what absolute colour space (e.g. Adobe RGB (1988)) that is the image's source colour space, and that there also exits a colour profile for the device that will be used to render the image (destination colour space). The rendering systems then translates the colour values in the source so that they are rendered on the destination device with colours that best match the intent.

To use the ICC system, you need to have image processing software that is capable of embedding absolute colour space tags in images, colour profiles for the devices you will use to render the images, and something that translates from the absolute colour space an image is tagged with into the destination colour space given by the device profile.

You can download generic colour profiles for a scanner, a monitor model or a printer/ink/paper combination from the manufacturer's web page. These will often do a good job (as long as you stick to the factory default settings). But since there is some variation between devices, in particular between monitors, you may get better results by creating a specific profile for your specific device. This is known as calibrating the device.

2. Use RAW

A lot of people worry about whether to set their camera to capture Adobe RGB (1988) or sRGB IEC6 1966-2-1. Many do not realise that as long as you use RAW, it (mostly) does not matter what setting you use.

No camera actually uses Adobe RGB or sRGB for image capture. The data captured by the sensor is captured in the device sensor's native colour space. The sensor's native colour space is a lot larger than both Adobe RGB and sRGB. The data captured by the sensor is not mapped on to an absolute colour space (i.e. Adobe RGB or sRGB) before the RAW data is converted to JPEG. This means that if you use RAW, you can postpone picking the absolute colour space until the point when you process the RAW data. And you can convert the data as many times you like to pick an absolute colour space suitable for the intended use of the image (e.g. you may convert to Adobe RGB for quality printing, and convert to sRGB for web publishing).

In the first paragraph it said that it mostly does not matter what setting you use. However, the review and histogram on the cameras's rear LCD will be based upon a conversion of RAW data into JPEG. The in-camera JPEG conversion will take into account the settings of the camera's picture controls, including colour space. This means that you may see a slightly different histogram and review image with different picture control settings, even if these settings have no impact on the RAW data.

3. Save in JPEG

Of course, before you can show your photograps to anyone, they must be saved in a presentation format. RAW is not a presentation format. There exists many different presentation formats that is identified by a three or four letter file type (e.g. TIFF, PDF, PSD, GIF, PNG and JPEG). Unless you really know what you are doing, you should save photographs to be presented on the web or printed at a kiosk or a consumer lab in the JPEG format with an embedded ICC colour profile.

The reason to pick JPEG is not because it is the best format, but because it is ubiquitous, and the standard for embedding metadata, including the ICC colour profile, in JPEG image files is well established. If you pick a more exotic format, such as PNG, the embedded metadata may be lost, or may go unrecognised.

4. Why you should use sRGB for JPEG

If you set your camera to produce JPEG instead of RAW, what you get is the result of the in-camera conversion from sensor RAW data to JPEG. In this case, it clearly matters for the end result what colour space you set on the camera.

Of the colour spaces mentioned in previous section, sRGB IEC6 1966-2-1 has the smallest gamut. This means that the range of colours that can be represented by sRGB, is smaller than the range of colours can be represented by ProPhoto RGB or Adobe RGB (1988).

Still, Ken Rockwell recommends sRGB over the two others. He writes: “sRGB is the world's default color space. Use it and everything looks great everywhere, all the time.” (Rocwell 2006)

Rockwell has a valid point. Unless you are willing to deal with the complexities of colour management, you are proably better off using sRGB as your working colour space. If you print at a kiosk or consumer lab (e.g. CostCo, SnapFish), you must save images in the sRGB colour space, or risk having your prints ruined. If you publish photos on the web, you should use sRGB. While some web browsers knows how to deal with gamuts larger than sRGB, MSIE (prior to version 9) does not. Most people use MSIE as their default browser. All those people will see your images with other colours than you intended if you save them in a colour space different from sRGB.

To understand why sRGB is so ubiquitous, we need to look at the origins of sRGB. Below is a summary, taken from Stokes et al (1996).

The colour space known as sRGB IEC6 1966-2-1 was defined in 1996 by a group of engineers working for Hewlett-Packard and Microsoft. Their intent was to design a default colour space for the World Wide Web, and the basic idea behind their design was to define a colour space whose gamut was very similar to the default characteristics of the cheap CRT displays used by many consumers. This, they thought, would make image rendering on this type of equipment reasonable consistent across devices, even when images with no embedded ICC profile were displayed on a monitor with no known colour profile.

At the same time, they made sure that sRGB was compatible with the emerging ICC platform (proposed in 1994). Working with sRGB IEC6 1966-2-1 in a calibrated setting would work just as well as working with Adobe RGB (1988) or any other colour space conforming to ICC guidelines.

Microsoft took advantage of these properties of sRGB by electing not to implement colour management in Windows97. So most Windows users, just as the creators of sRGB had anticipated, viewed and edited their photographs in the default colour space of their monitor (unless they were running special applications with built in colour management, such as Photoshop). After a while, makers of consumer monitors started to tune their product's device colour space to match the sRGB IEC6 1966-2-1, and consumer labs printing images from digital files started to adjust their printers to render optimal results when processing images with a gamut equal to sRGB IEC6 1966-2-1, whether they are tagged sRGB or not. The latest version of Firefox also assumes that untagged images are in the sRGB colour space.

So in 2010, sRGB IEC6 1966-2-1 is not only the default colour space for the World Wide Web, it has become ubiquitous (outside the world of professional graphical reproduction). Indeed, in the words of Ken Rockwell: “sRGB is the world's default color space. Use it and everything looks great everywhere, all the time.”

If this has been enough to persuade you to adapt sRGB as your working colour space, you can stop reading now. Thank you for taking the time to read as far as this. I hope you found at least some if it worthwhile. Good bye and good luck.

(The rest of this article is written for those that want to hazard straying outside the safe footprint of sRGB. If you elect to proceed beyond this point, please fasten your seatbelts. It is going to be a bumpy ride).

5. Testing your browser

Have you ever wondered if your Internet browser setup is capable of displaying (colour-managed and non-managed) images correctly?

Correct on-screen display of colours requires:

  1. Determining the image colour profile, plus assuming sRGB for untagged images (the W3C standard for the web).
  2. Determining the monitor profile.
  3. Converting the image from its colour space to the monitor profile.

Determining the image's ICC profile

The image below will (I hope) help you find out whether your browser is capable of recognising ICC profiles.

The test is simple. Look at image below in whatever setup (OS + browser) you use, and make a note of the answer to the question (below the image). That's all.

sRGB  tagged weird tagged
Test image to check browser for ICC profile awareness.

Question:Look at the image above and compare it to the two reference images below. Does it look like the one to the left? If the answer is “yes”, then your setup (combination of OS and browser) understands at least embedded ICC version 2 profiles. Please tell me about it.

OK result
Your brower understands at least ICC ver. 2 profiles.
Bad result
Your browser does not understand ICC profiles.

Dealing with untagged Files

Browsers also differ in how they handle untagged images.

Below are two colour wedges tagged (or not) as follows):

  1. sRGB IEC6 1966-2-1 with embedded ICC profile.
  2. sRGB IEC6 1966-2-1 untagged.
1.sRGB tagged
2.sRGB untagged

Both wedges are supposed to be in the sRGB colour space. But only wedge 1 has an embedded ICC sRGB profile, wedge 2 is untagged.

As a result, both wedges should appear to be identical in Safari, but they may (that is if your monitor's default colourspace is larger than or significantly different from sRGB) appear to be different depending upon you using Safari on Mac OS X or Windows.

The Mac OSX version of Safari 5.1 all untagged images are sRGB (i.e. it treats them as if they have been tagged with sRGB IEC6 1966-2-1). (This, by the way, is how a web browser should treat untagged files according to W3C recommendations.)

When the Widows version of Safari comes across an image that is not tagged with an ICC-profile, it just drops its colour management capability and “dumbs-down” to doing no colour management (i.e. it displays untagged images in the device's colour space).

It is the Mac OSX version of Safari does it right. The Windows version not only ignores the the recommendation of the W3C, but it ensures that untagged files will display different on different monitors. For the majority of users, this is probably not very noticable, because the majority of monitors in use have a gamut equal to sRGB or smaller, so untagged images will display OK.

But the few users that own top class professional monitors whose native colour space is larger than sRGB will have a problem when using Safari on Windows. These users will see many images on the web with highly saturated and garish colours never intended to display that way.

Results so far

The results are for standard out-of-box versions unless noted.

OSVer.BrowserVer.ICC ProfilesUntaggedMonitor
Linux Gentoo2.6.27SeaMonkey1.1.17No UnmanagedNo
Linux Ubuntu9.0.4 Firefox 3.0.13No UnmanagedNo
Mac OSX 10.5.7 Firefox 3.5 V2 sRGB No
Mac OSX 10.7 Safari 5.1 V4 sRGB Yes
MS W/XP 5.1 SP3 Wyzo 3.0.3 No UnmanagedNo
MS Win/7  Chrome 15 No sRGB Yes
MS Win/7  Firefox 11.0 V2 sRGB Yes
MS Win/7  MSIE 8.0 No UnmanagedNo
MS Win/7  MSIE 9.0 V4 sRGB No (sRGB)
MS Win/7  Opera 11.52 No UnmanagedNo

If you find a new combination of OS and browser that is not listed that understands embedded ICC profiles, please tell me about it! You can send med me message, or just leave a reply in the comment field below.

Here is a summary of the above table. The only browser to show all images (V2 and V4 colour-managed and non-managed) images correctly on all monitors is the Lion version of Safari. The latest versions of Chrome, Firefox and MSIE come close, but miss out on a single feature.

  • Chrome: No, do not understand ICC profiles (latest tested is ver. 15).
  • Firefox: No, only understand V2 ICC profiles (latest tested ver. 11).
  • Opera: No (latest tested is ver. 11.52).
  • MSIE: No, always assumes monitor is sRGB (latest tested ver. 9.0).
  • Safari: Yes (for version 5.1 for Mac OSX 10.7 Lion).
  • Seamonkey: No (latest tested is ver. 1.1.17).
  • Wyzo: No (latest tested is ver. 3.0.3).

6. Testing your monitor

If you are going to work in a large gamut colour space, you need to know what you can see on your monitor. To find out, the Granger Chart is useful.

I've no idea where the Granger Chart came from, or why it is called that.

I first learned about this chart in an article at the Luminous Landscape website, which tells you how to create one in Photoshop. The article goes on to say that is contains mathematically derived colours, intentionally picked to be out-of-gamut on most devices.

Below are one pair of Granger Charts. The chart on the left is the original. It is in the very large ProPhoto RGB colour space. The chart on the right is the same chart, but it has been compressed into the much smaller sRGB IEC6 1966-2-1 colour space using Photoshop CS4 for colour space translation and selecting the Perceptual intent. Both charts have an embedded ICC profile.

pRGB tagged sRGB tagged

To do the Granger Chart test, you need to study the two images above in a colour managed environment that understands embedded ICC profiles.

If you are reading this in an web browser that understands ICC profiles, fine, then you can do the Granger Chart Test in your browser. If not, you need to download both images and import them into an application that understands ICC profiles (e.g. Aperture, Lightroom, or Photoshop).

Important: If you view this pair in an environment that does not understand embedded ICC profiles, then the images will always be different. This simply means that you don't get useful results from the Granger Chart Test in this type of environment.

When you are viewing both images side by side in a colour managed environment that understands embedded ICC profiles, you can look for subtle differences between the images.

If image on the left contains more intense and/or brighter colours than the image on the right, then you have a monitor capable of showing a larger gamut of colours than sRGB

If both images appear to be more or less identical, then your monitor has a gamut equal to sRGB or smaller.

All modern DSLR cameras have a native colour space with a gamut larger than sRGB. Some people argue that for this reason, you should do all your post-processing in a large gamut workspace (e.g. ProPhoto RGB) to avoid clipping colours that would be out-of-gamut in sRGB. Using this approach on a monitor with a gamut equal to sRGB or smaller will indeed avoid clipping, but you will be working blind.

7. Calibrating your scanner

If you scan negatives, positive slides or paper copies, and you've set up a colour managed workflow for editing and printing, you'll discover that the colours in your scans (as observed on the screen) may differ from what you perceive with your eyes.

Unless you calibrate your scanner, you will need to spend and time and effort manually make tonal adjustments in Photoshop to bring scanned images into a colour-managed workflow.

There are quite a variety of scanners and scanner manufacturers in the market today. However, most scanners is supplied with a calibration target and software that will let you calibrate your scanner. In the scanner manual, you may see this referred to as calibrating, or linearizing of the device.

If there is no target and software supplied with the scanner, you can calibrate it by scanning a callibrated target such as the GretagMacbeth ColorChecker, and Eye-One Match software to create a scanner profile that can be used in a colour managed workflow.

8. Colour space translation

Colour space translation (gamut mapping) is performed using one of the four translation algorithms recognized by the ICC standard. The rendering intent determines how colours are handled that are present in the source, but out of gamut in the destination.

Of the four standard rendering intents offered by Photoshop (in CS4, see EditConvert to profileIntent) only two are relevant for photographers.

  • Perceptual (aka. Maintain Gamut).
    The colour gamut is expanded or compressed when moving between colour spaces. Strongly saturated colours remain within the gamuts of both spaces. Mostly reversible.
  • Relative Colourimetric (aka. Preserve Colour and White Point).
    Reproduces in-gamut colours exactly and clips out-of-gamut colours to the nearest reproducible hue. Preserves black and white points. Not reversible.

The difference between the two methods is illustrated in the two diagrams below. The left and right of the colour space block represent strongly saturated colours, while the middle represents low saturation colours.

image of hotshoe
Gamut rendering intent: Perceptual.
Compresses out-of-gamut colours to fit into destination colour space. Expands into larger space.
image of hotshoe
Gamut rendering intent: Relative Colourimetric.
Clips out-of-gamut colours to fit into smaller destination colour space. Reproduces in-gamut colours exactly.

Which method should you use?

The Perceptual rendering intent applies the same gamut compression to all images, even when the image contains no out-of-gamut colours. For an image with no strongly saturated colours (e.g., pastels) Perceptual may apply compression when there is no need for it, while Relative Colourimetric rendering intent may preserve the full colour range of the original. When the destination device has a larger gamut than the absolute colour space of the image, Perceptual may generate saturated colours that never existed in the original. The “safest” translation is Relative Colourimetric, as it preserves in-gamut colours, black point and white point. However, when going from a screen to an ink jet printer, Perceptual will probably be the intent that best matches on paper what you see on the screen. Bruce Fraser says:

Look at the relative gamuts of your source and destination: The same image may need different rendering intents for different output process. For example, an image might benefit from perceptual rendering when printed to an inkjet printer, but when the same image is going out to the much larger gamut of a film recorder, relative colorimetric rendering might work much better. If an image doesn't contain any important strongly saturated colors, you'll probably get a better result using relative colorimetric rendering than you would using perceptual. (, 2001-04-04)

For completeness, here is also a summary of the last two rendering intents. They are, however, of little interest to photographers:

  • Absolute Colourimetric (aka. Preserve Colour).
    Reproduces in-gamut colours exactly and clips out-of-gamut colours to the nearest reproducible hue (just like Relative Colourimetric), but may also adjust white point to preserve hue. Best for proofing when proof device has a larger gamut than output device.
  • Saturation (aka. Preserve Saturation).
    Maps the saturated primary colours in the source to saturated primary colours in the destination, neglecting differences in hue, saturation, or lightness. Best for business graphics where we just want vivid colours and don't care what those colours are.

9. References and Further Reading

Ballard, Gary G.: Web browser color management tutorial.

Canon: Canon ICC Profile Guide for Inkjet Printers (pdf); August 2003.

Chaney, Mike: Over the gamut and through the woods; Steve's Digicams.

Dry Creek Photo: Introduction to color spaces

Fraser, Bruce (2001): Out of Gamut: Realizing Good Intentions with Rendering Intents;, April 4th.

ICC: Is your system ICC Version 4 ready.

McHugh, Sean T. (undated): Overview of Color Management; blog.

Rockwell, Ken (2006): sRGB vs. Adobe RGB; blog.

Stokes, Michael et al: (1996): A Standard Color Space for the Internet – sRGB; W3C.

Bos, Bert et al (2009): Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification: Syntax and basic data types; W3C.

Bookmark and Share

5 responses:

Chrome does not understand ICC

Your test image was not presented with correct colours in my combination of Win 7 and Google Chrome 15, however MSIE 9 showed correct colours.





Opera 11.52 --no

Firefox 0.02 -- yes

IE 9 beta -- yes

iPad 3 - no

Safari on IOS doesn't seem to support ICCv2.

Opera 12.16 YES

Om Opera









Windows Vista

Chrome Version 29.0.1547.57 m YES

Windows XP. Geoforce 7300 TurboCache.

Log in to comment.

You need to be logged in to leave a comment in this blog.

This page is from: