Colour Management Cheat Sheet – old version

Updated: 20th February 2021

Old version

Simon Garrett
simon.garrett@simongarrett.uk
www.simongarrett.uk

Some notes on colour management.  This is a simplified overview.  Terminology is defined in the Glossary below, and there is a Bibliography for more reading.  For some quick recommendations on workflow, see Quick Recommendations below. 

One day I’ll get around to adding some illustrations.

Colour Management

Roughly: the process of mapping the colours in an image to the colour space, white point and tone curve required for a particular physical device.  A colour space is the range of colours that a device can display or capture.  (See the Glossary below for more detailed definitions of “colour space” and other terms used.) 

Every device (camera, monitor, printer…) has its own colour characteristics, including colour space, white point and tone (gamma) curve.  Almost every device is different.  If you take an image from one device and send the RGB data to another device, the colour, white point, and tone curve will almost certainly be wrong for the receiving device.  Colour management is the process of mapping RGB data from one device in order to get the right colours on another device. 

Another way of putting that: an RGB image will have RGB data appropriate for the colour space etc. of one particular device, and the image will look right only on that one device (or other devices with identical colour characteristics).  To get the colours right on any other device, the RGB data in the image has to be mapped (colour-managed) to the characteristics of the device. 

For storage, images are usually converted to standard colour spaces such as sRGB and Adobe RGB.  You can think of these standard colour spaces as representing standard “virtual devices”.  Most real devices will not exactly match any of these standards, so if you do not colour manage (convert to the actual device characteristics) then colours are likely to be inaccurate. 

sRGB was designed to match typical monitors of the day (1996) and many are still designed to be roughly sRGB, so sending sRGB images direct to a monitor (without colour management) will usually result in very roughly the right colours.  Similarly, without colour management, most printers will assume the image is sRGB, but will often try to “improve” the colour (usually by increasing the colour saturation or vibrance and contrast to get “nice” colours).  Printer manufacturers know that most people prefer pretty colours to accurate colours; more serious photographers might prefer accuracy!

The only way to get accurate and (more importantly) consistent colour is to use colour management.  To do this, you need a “colour profile” for each device you are going to use (typically for the monitor and printer), and you need software that understands how to use them. 

The previous paragraph is the most important in this document.  Without colour management, you have no idea whether your camera, editor, monitor, printer etc. are producing correct colour, or whether you have just compensated in one place for errors somewhere else.  

Colour Profile

Contains the measurements of the characteristics of a device, in order to facilitate colour management.  Main components:

  1. The colour space of the device
  2. The white point
  3. The tone curve (often called a “gamma curve”)

The format of a profile is defined by the ICC (International Color Consortium), and a profile can be in a “.icm” or “.icc” file, or it may be embedded in an image.  When it is embedded in an image (e.g. a jpeg) then it tells you what physical device the image is intended for. 

A profile is created using a colorimeter to measure the monitor’s characteristics, either by the user or by the manufacturer of the monitor. 

NB: profiles embedded in an image file are usually standard profiles such as sRGB and Adobe RGB.  These standard profiles are not profiles of real devices, but of “virtual devices”.  sRGB is designed to represent a typical computer monitor, but it is important to note that few monitors will exactly match sRGB. 

A slight gotcha: cameras often do not embed a profile in jpegs created by the camera.  They sometimes rely on an old naming convention: files with names starting DSC_… contain jpegs in sRGB colour space, files with names starting _DSC… contain jpegs in Adobe RGB colour space.  Sometimes they also set a “ColorSpace” Exif metadata tag inside the image.  A further gotcha: Windows does not always correctly report the colour space of images.  If you right-click an image file and examine the image properties, it will sometimes show a “Color representation”, which appears to be based on the “ColorSpace” metadata tag, and is very often wrong.  It does not report the presence or identity of any embedded profile. 

Calibration and Profile information

A profile is a measurement of a colour space.  Profiling a monitor does not alter the monitor, it just measures it. 

However for monitors (only), another process is normally carried out at the same time, and that is calibration.  Calibration does alter the monitor characteristics to bring the monitor to a defined state, and calibration is normally carried out immediately prior to profiling.  Very often information related to the calibration is also stored in the profile, though technically it is not part of the profile.    The calibration information is usually in the form of an LUT (Look Up Table), and is normally used only for monitors. 

Software for monitor calibration/profiling is normally supplied with the calibration device (e.g. from xrite or datacolor) but third party software is also available such as the Argyll suite.  All the software I have used will by default calibrate the monitor and then create a profile. 

Calibration can be done in several ways. 

Calibration by LUTs in the graphics card (using a colorimter)

For lower price monitors, calibration is done entirely in the computer.  The monitor itself is not altered, except perhaps by manually altering the brightness, contrast and possibly individual R, G and B controls to create a good starting point.  The calibration software then creates LUTs – Look Up Tables – used to map the tone response curve (TRC) of the monitor to a defined tone curve (e.g. a gamma curve), and to adjust the white point. 

The LUT is loaded into the computer’s video card, which then adjusts the RGB data before sending it to the monitor.  But remember: the monitor is not altered; the calibration is achieved by altering the behaviour of the video card to compensate for the native behaviour of the monitor hardware. 

With this method of calibration, usually only the TRC and white point can be calibrated, not the colour space.  The colour space is determined by the dyes or phosphors in the monitor screen, and is fixed. 

Each time the computer boots, the calibration LUTs must be loaded into the video card, and that is often done by a small program loaded into the computer’s start up sequence.  The calibration information is normally stored in the profile in a “vcgt” field (Video Card Gamma Table), though strictly speaking, calibration information does not belong in a profile. 

Calibration using LUTs in the monitor (using a colorimter)

Many more up-market monitors contain internal LUTs.  In this case, calibration still uses LUTs to map RGB values to alter the monitor’s behaviour, but the LUTs are in the monitor itself, and the video card LUTs are not used.  There are several differences from calibration using only video cart LUTs:

  • Normally this requires proprietary software supplied by the monitor manufacturer. The standard iProfiler, Argyll or other software will not program LUTs in the monitor.
  • Once calibrated, the monitor retains its calibration, without the need for reloading the LUTs each time the computer reboots.
  • Very often, this allows the colour space to be altered (not just tone curve and white point). It is not possible to alter the physical dyes or phosphors in the monitor screen; these define the native colour space of the monitor.  However, using 3D LUTs it is possible to make the monitor emulate another colour space, provided the emulated colour space is entirely within the monitor’s native colour space.  As a result, such monitors are normally wide-gamut.  For example, if the monitor’s native colour space is similar to Adobe RGB, then it can emulate sRGB, as the latter’s colour gamut is a subset of Adobe RGB.  A monitor with native colour space of sRGB cannot emulate Adobe RGB; it cannot physically create all the colours needed. 

Monitors with internal 3D LUTs include more up-range Dell, NEC, Eizo, Benq and others.  Very often, such monitors will have factory-pre-set calibrations that can be selected.  Typically they will have Adobe RGB and sRGB as pre-sets, and they will provide profiles to match those calibrations.  From my experience and in the tests I have seen, the Adobe RGB and sRGB factory-calibrated pre-set modes of wide-gamut monitors are not as accurate as individual calibration.  

Important note: if a monitor has calibration using LUTs in the monitor, it still needs a profile for colour management to work.  A monitor profile is a description of the colour space of the monitor.  If you change the calibration of the monitor (for example, by front panel control) you need to change the profile used by Windows/MacOS as well.  The current monitor profile set in the operating system must match the current calibration of the monitor.  Some monitors (e.g. Eizo) have a utility to change both monitor calibration and operating system profile at the same time.  Benq do not, and you have to do the two changes manually.  I do not know what NEC or other makers do.  Note also that software often checks the profile only when it starts, so will not notice a change of profile unless you exit and restart the program.  Photoshop does notice in real-time. 

Software-only calibration (not using a colorimeter)

You can also create a basic calibration-only profile with software (without a hardware colorimeter), but this will not provide colour space mapping – only white point and tone curve calibration.  Windows 7 onwards includes a tool to do this, and Adobe used to supply a Gamma profiler and loader.  Software like this creates calibration data, as in (1) above.  It helps you get roughly the right white point and tone curve in a monitor, but will not provide colour space mapping (so the colours will not be quite right).  You need a hardware colorimeter to create colour space mapping info, as in (2) above, and a colorimeter will also result in much more accurate calibration data. 

Note that some software-only calibration programs do a bit better.  An example is “calibrize” (www.calibrize.com).  Modern monitors can supply “EDID” information, which sometimes includes information about the chromaticity (colour space) of the monitor.  Calibrize uses this to create colour space info in a profile, but it will not be as accurate as measuring it with a hardware colorimeter.  In fact, it may be misleading as EDID chromaticity information sometimes appears to be wrong.  On most of the monitors I have checked (not just cheap ones) the EDID chromaticity values returned are simply the values for sRGB rather than measured values.  These are unlikely to be the actual monitor chromaticity co-ordinates except for monitors with an accurate “sRGB mode”.  (Hint: “sRGB modes” are often not accurate!)

Summary

In summary, a profile contains:

  1. Profile information describing the colour characteristics of a device
  2. Often for monitors using calibration by LUTs in the graphics card, it also includes calibration information used to alter the characteristics of the device

Confusing, isn’t it?

Colour managing a monitor

You need:

  • a profile for the monitor, usually created by calibrating and profiling the monitor
  • to get full benefit, the program displaying the image must be colour-managed; it must know about colour management

Each sample of each type of monitor is different, and they may change with time, so you should create a profile with a hardware colorimeter such as the ColorMunki Display, i1 Display Pro or the Spyder 5.  They cost from $/£/€ 100 upwards.  Many modern monitors come with a factory calibration and a corresponding profile, and this may be an alternative to calibrating/profiling yourself.  However, monitor colour spaces drift a bit over time, so it is best to repeat the calibration and profile every few months. 

What you need to do: once you have the profile, simply use colour-managed software. 

Once you have associated a profile with the monitor (the colorimeter software does this for you), then colour management is automatic.  Note that only colour-managed programs benefit fully from the colour management.  This includes Elements, Photoshop, Lightroom, DxO software, Luminar, Aperture, PaintShop Pro, Qimage, Nikon Capture NXD and other decent photo programs.  The “Windows Photo Viewer” supplied with Windows 7, 8 and 10 is colour managed, but not earlier ones.  Perversely, Windows 10 comes with a newer “Photos” app which is not colour managed, but the Windows Photo Viewer is also supplied in Windows 10 (but may be disabled; Google for how to fix that). 

Most Windows-supplied programs and most web browsers are not colour-managed.  As of February 2021, Firefox, Safari, Vivaldi and Chrome colour manage; Internet Explorer and the old Edge do not do it properly.  The new Microsoft Edge launched in 2020 is based on Chromium, and is colour-managed.  Furthermore, some browsers colour manage only the primary monitor.  If you have two or more monitors, they may use the profile for the primary monitor for all the others. 

The colour management of a monitor works in two parts:

  1. Tone curve and white point calibration information for calibration using video card LUTs is automatically loaded into the monitor driver and then into the video card LUTs at boot up (for calibration using LUTs in the monitor nothing needs to be loaded). Virtually all programs (except some video programs such as DVD players and some games) will get the calibrated white point and tone curve.  This uses the calibration information from the profile. 
  2. Colour space mapping is done only by colour-managed programs such as those listed above. Other programs will not get the right colours (whether or not the monitor is profiled). Colour space mapping uses the profile information from the profile. 

Note this distinction: when a profile is associated with a monitor (or the monitor is hardware calibrated), most programs “see” the calibrated white point and tone curve when they write to the monitor, but only colour-managed programs get the right colour space.  (The exception is monitors with internal LUTs, where you can calibrate the colour space too, however you still need to use colour managed software to ensure displayed colour matches the image colour). 

People often use the terms “calibrating” and “profiling” a monitor interchangeably, but they are not the same thing.  The software that comes with hardware colorimeters does both, and the resulting profile contains both profile and calibration information, as described above.  Software-only tools generally just do calibration by eye – not profiling. 

Colour managing a printer

You need:

  • A profile for the printer (probably a specific profile for the combination of printer and paper)
  • The program that prints must know about colour management

Most photo printers come with profiles, or you can create your own with a photo spectrometer (the more up-market colorimeters for calibrating monitors may also calibrate printers).  For many purposes, profiles supplied with the printer will be OK.  If you are using paper not supplied by the printer maker, the paper manufacturer may provide profiles for your printer (e.g. Harman and Ilford provide profiles for their paper for use with a variety of printers).  Alternatively, some companies offer a service where you print a test file, send the result off and they create a profile for you. 

Colour management can usually be done by the print program or by the printer driver, but you must make sure only one does it.  

What you need to do, make sure either:

  1. The print program does colour management (generally better)
    1. You will probably have to tell the program which printer profile to use
    2. Remember to go into the printer driver settings and tell it that colour management is being used, but the program (not the printer driver) is doing it. This is probably not the default printer setting.  You will have to specifically tell it that colour management is in use, but by the program (not the driver). 
  2. The printer does colour management
    1. Turn on colour management in the printer driver. You may have to tell it the profile, or it may figure it out from the paper you are using, and you may have to tell it the colour space of the image you are printing. 
    2. In the print program, remember to tell it not to do colour management, as the printer is doing it.

Remember: do 1 or 2, not both. 

Colour managing a camera

This happens automatically (normally).  A camera sensor has its own colour characteristics, but cameras have profiles built-in, and normally convert images to sRGB unless you specify otherwise.  If you shoot raw then it is the raw convertor (rather than the camera) that converts the raw sensor data to sRGB or some other colour space. 

You can create profiles for cameras, but these are usually not icc profiles.  For example, using a ColorChecker Passport or similar, you can create “DNG profiles” that can be used with raw files by Adobe raw software (Lightroom and ACR). 

Why doesn’t Windows “do” colour management?

As mentioned above, generally only colour-managed programs (photo editors etc.) can do full colour management.  Why isn’t this function built in to Windows, so all programs get the right colours? 

The main reason is that in general Windows does not (usually cannot) know what to do.  It may not know the colour space of the image data, and may not always know the profile of the device being written to.  For data other than a photo image (e.g. text and graphics), colour management may be inappropriate, but Windows may not know when the image is a photo.  There are other features of colour management (such as rendering intent) that Windows will not know.  Generally there are decisions on colour rendition that have to be made by the program.  Windows cannot know for sure when and how to colour-manage.  It has to be left to each program. 

Microsoft describes Windows 7 onwards (and Vista to some extent) as having colour management built in.  Yes, it can do colour management, but only for colour-managed programs that ask it to, and tell it what to do!  There is a common myth that Windows does colour management automatically for all programs.  This is not the case.  See for example http://msdn.microsoft.com/en-us/library/ms536554%28VS.85%29.aspx, where it says:

On a fundamental level, almost any application should be able to adjust color automatically so that its output looks the same on different monitors and printers. WCS 1.0 provides a set of functions to deliver this kind of color management that is transparent to a user and requires little overhead in the application.

WCS (Windows Color System) provides routines to implement a form of colour management, but only those programs that invoke WCS benefit.  It can be transparent to the user, but it is not a transparent function for any program. 

The Mac has had some colour management built in for many years, but again in general only colour-managed programs benefit. 

Quick recommendations

If the workflow is not colour-managed (you do not have profiled and calibrated monitor, colour-managed software, and profiles for the printer), then stick to sRGB.  Why?

  • sRGB includes nearly all the colours in nearly all images – you are missing little with sRGB. Most naturally occurring colours are within sRGB.
  • Few monitors show more than sRGB, and if you try to display Adobe RGB images, ALL colours on the screen will be wrong on most monitors unless they are profiled.
  • If you are using jpeg (8-bit), you get more accurate editing (less “posterisation”) in sRGB than Adobe RGB. The tonal gradations are finer with sRGB. 
  • Even without colour management, most things default approximately to sRGB, most normal monitors have a colour space close to sRGB, and most printers default to emulating sRGB. You probably will not get accurate colours without colour management, but sRGB will give the best approximation. 
  • By working in one colour space (sRGB), and using devices that approximate to sRGB, you avoid the need for colour management, as no conversion from one colour space to another is needed.

If uploading to the web, use sRGB.

  • Most monitors can handle only sRGB, and have a colour space of approximately sRGB.
  • Most browsers aren’t colour managed
  • If you put Adobe RGB images on the web, the colours will be wrong on 99.9% of browsers.

If you shoot jpeg, probably stick to sRGB, even with a colour-managed workflow:

  • The data is 8 bits, so sRGB gives most precision
  • Sticking to sRGB avoids conversions in 8 bit (which leads to inaccuracies)
  • If you photograph in jpeg, might as well start in sRGB and stay there

If you shoot jpeg, you may benefit from using Adobe RGB if all of these apply:

  • You mainly print on a quality printer (>4 ink), and the printer understands Adobe RGB.
  • Either you have a profiled monitor, or you don’t edit colours (as the colour will almost certainly be wrong on unprofiled monitors with Adobe RGB images, so it’s dangerous to try to edit)
  • You have a lot of highly saturated colours in your pictures (especially cyans, greens and yellows).

Note that if you photograph in sRGB, there is no point converting to Adobe RGB.  You cannot add colours that were not in the original sRGB image. 

If you have a wide-gamut monitor, you really must have a colour-managed workflow (profiled and calibrated monitor, colour-managed software), and bear in mind that unmanaged software (i.e. most non-photographic software) will display the wrong colours.  Why?

  • Most colours displayed on a PC screen are assumed to be sRGB.
  • Much of the software in use is unmanaged, including the Windows desktop and most Windows software.
    • The result: the colours will be as expected only on an sRGB monitor (most monitors except so-called wide-gamut monitors approximate to sRGB).
    • A wide-gamut monitor will display over-saturated colours unless it is profiled (NB, software-only calibration is not enough) and even then it will display correct colour only with colour-managed software.

Further, if you have a wide-gamut monitor, if you use Firefox then you need to alter setting “gfx.color management.mode” to 1.  (Google for how to do it.)  Otherwise it will not colour-manage images and graphics without an embedded profile.  Chrome (and other Chromium-based browsers such as Vivaldi) to this without any setting needed. 

If you shoot raw:

  • Do as much editing as possible in 16 bit or more (which implies editing the raw file or converting to something like 16 bit TIF or PSD format). Convert to jpeg (if necessary) only as a last step.
  • While in 16 bit, keep a wide colour space (Adobe RGB or ProPhoto RGB), and if you need to convert to another colour space, do it in 16 bits.
  • If you need to export to jpeg, convert to sRGB and then convert to 8-bit (before exporting to jpeg) unless it’s to send the file to a printer that can make use of Adobe RGB, or are preparing the image for a print service or publisher that needs a specific colour space (in which case convert to the appropriate colour space).
  • And you need a colour-managed workflow: calibrated and profiled monitor, colour-managed software, profile(s) for the printer. If you do not have a colour-managed workflow, you might as well convert the raw files to sRGB as the first step (and lose some of the benefits of raw). 

If you have a factory-calibrated monitor, you should use the profiles supplied by the maker, or calibrate/profile to create your own.  I would suggest creating your own because:

  • The pre-calibrated sRGB modes are not necessarily as accurate as profiling/calibrating these monitors in their native modes. In any event, many monitors’ colours change slightly with age. 
  • However, for non-photographic work with non-managed software, sRGB modes may be fine.

“I put my pictures on the web.  Most users of the web don’t use colour management (that is, don’t use colour-managed browsers, or don’t have calibrated and profiled monitors), so I’m better off not using colour-management myself, so that I see the picture as others do.”

  • Alas, no! It is quite true that most people do not use colour management.  But that does not mean pictures look the same on all unmanaged systems.  In fact, pictures will look different on every one!  If you do not use colour management, it does not increase the likelihood that your browser will look like anyone else’s (in fact it probably reduces it). 
  • However, most monitors (except “wide-gamut” monitors) have a colour space that approximates to sRGB. So uploading sRGB images to the web means colours will be very roughly right on unmanaged monitors.  Colours will not generally be exactly right, but if your own monitor is unmanaged too then you are generally increasing the chance of other people getting different colours on their browsers, compared with the colours on yours. 
  • People with that do not use colour management do not see the right colours, but they get used to how colours look on their monitor. If your system is colour managed, and your images on the web have correct colour, they are likely to look “right” on non-managed monitors – because they will look the way other correct colour looks on that monitor. 

Glossary

Adobe RGB A colour space like sRGB, but with a wider gamut (more colours).  In theory the gamut is about 40% larger than sRGB, but the extra colours (mainly cyans, greens and yellows) occur in few (if any) pixels in most photos.ÿ Some photo printers have colour spaces approximating to Adobe RGB, but few monitors can display colours much outside the sRGB colour space.
Calibration The process of adjusting or correcting a device’s characteristics to defined values (as opposed to “profiling”)
Colour gamut The set of colours within a colour space
Colour management The process of converting RGB values in an image from one colour space (specified by a colour profile) to another colour space (specified by another colour profile).
Colour model A mathematical model for representing colours in 3 (or 4) numbers, such as RGB, CIE xyY, LAB, CMYK.  Note: RGB is a colour model, not a colour space! Adobe RGB, sRGB, and ProPhoto RGB are all RGB colour spaces.  That is, they all use an RGB model.  
Colour profile Information describing the colour characteristics of a device, including colour space, white point and tone (gamma) curve.  Typically contained in an .icc or .icm file, and can be embedded in an image file (e.g. jpeg).  May also contain calibration information, although this is not strictly “profile” information.
Colour space A range of colours; typically, the range of colours that a device can display or capture.ÿ Note that the term ?colour space? is often used more broadly to include also the white point and tone curve as well as the range of colours.ÿ Normally a definition of a colour space includes the colour model (e.g. RGB) and the co-ordinate system used to represent colours – in other words, how the RGB values are defined.
Gamma Curve See tone curve
LUT Look Up Table.  Calibration information to correct a monitor’s white point and tone curve is normally stored in an LUT.  The LUT is loaded into the monitor driver at system boot time, and the driver then corrects the white point and tone curve to the required values.  Some monitors have LUTs internally.
Profiling The process of measuring a device colour characteristics (as opposed to “calibration”)
ProPhoto RGB A very wide gamut colour space used internally by some photo editor programs.
Raw format The format of image data from a camera sensor before it has been converted to a standard profile such as sRGB.
sRGB A standard colour space, tone curve and white point designed to be typical of low and medium priced monitors.ÿ Although it has the smallest colour gamut (range of colours) of any of the standard colour spaces, it contains all the colours found in most photos.  It lacks some very highly saturated colours (mainly cyans, greens and yellows) – but these are not very common in nature.
Tone curve The light output for a device (or light input for a sensor) is not usually proportional to R, G and B values.  In other words, the graph of light input or output against R, G and B value is not linear (not a straight line).  The tone curve defines the shape of the line.  Altering the tone curve alters the contrast of the image.  One common type of curve is a “gamma curve”, where the output is related to RGB value raised to the power n (where n is typically 2.2 or occasionally 1.8).   There are also advantages in a non-linear tone curve with 8-bit data (e.g. jpeg files) in reducing quantisation noise; the sRGB standard uses a tone curve similar to 2.2 gamma.
White point The colour of “white”.  That is, the colour obtained when R, G and B values are all 255.  This is often stated as a “colour temperature” such as 6500K, or a standard such as D65 (similar to, but not the same as 6500K).
Working space The colour space used internally by a program (e.g. a photo editor).  When photo-editing programs open an image, they often convert the image to a specific colour space, rather than editing them in the image’s original colour space.  This specific colour space is referred to as the “Working Space”, and is usually one of the standard ones such as sRGB, Adobe RGB or ProPhoto RGB.  In Photoshop, you can set the working space to a device-specific colour space: generally not a good idea.

Bibliography

For more information see:

Various other sources of information:

Simon Garrett