Recent responsibilities at work led me having to once again jump down the colour space ‘rabbit hole’ in order to learn more about individual colour spaces and management. I was reminded again of how difficult it is to find any clear information on this subject pertaining to the VFX industry, let alone find it in one place. My research involved reading many articles and books, but also trawling through forums and reaching out to other artists; much available information online is ambiguous and contradictory, to the extent that it is difficult to find a standard. Furthermore, it doesn’t seem to be a subject covered very much in schools but seems to be a topic that artists are interested in learning more about. For this reason, I decided to compile some information about colour space below in a way that I hope is approachable for those seeking a little clarity or concise information in one place:

INTRODUCTION TO COLOUR SPACE

ACES

ACES NAMING CONVENTIONS

COLOUR SPACE GLOSSARY


INTRODUCTION TO COLOUR SPACE


A colour space is a mathematical model that describes the way colours can be represented.

A colour space is defined by three properties:

1. Gamma - describes the relationship of the brightness of a pixel to the brightness of the light value that the pixel represents.

2. Gamut - a measure of the range of colours that a display can show.

3. White point - defines the physical colour this space calls 'white'. It makes sure that the white in your image appears white on your display medium.



1. Gamma

Applying gamma to a picture transforms the brightness of the pixels in a non-linear way.

It is worth noting that the term ’gamma’ here is used loosely as there are many colour spaces that use a logarithmic function.

The Lightbulb example

- If we have a 20W light bulb, and swap it for a 40W bulb, it will emit twice as much light

-This is linear- double the energy, double the brightness

-Our eyes do not work like this

-Our eyes are more sensitive to changes in the dark, than chances in bright light

-i.e. adding a 20W bulb to a 20W bulb will make it seem a lot brighter. Adding a 20W bulb to a 100W bulb and the increase in perceived brightness is less.

Example gamma curves: Linear, sRGB, Rec.709

Example gamma curves: Linear, sRGB, Rec.709

2. Gamut


CIE 1931 Colour Space

CIE 1931 Colour Space

This CIE colour space image above represents the colours that our eyes can see. Gamuts can be represented on this graph.

Screen Shot 2019-08-05 at 13.40.53.png

The gamut is the range of colours inside the triangle. Each corner of the triangle is a primary. They show the red, green, and blue parameters i.e. bluest blue etc. Some gamuts are wider than others and offer a larger range of colours that can be displayed. Is the maximum green of that colour space a very saturated green, or a less saturated one?

3. White Point

Screen Shot 2019-08-05 at 21.54.40.png

White points are represented in the above visual.

The white point defines the physical colour this space calls 'white'. It makes sure that the white in your image appears white on your display medium. If you turn on all three proimary colorus to full intensity, you will get a white pixel. But will that be a warm white or a cool white?

D65- colour of average midday light in Western Northern Europe

D60 - a bit warmer than D65

Comparing Colour spaces


Now we can look at comparably at different colour spaces, taking into account the gamma, gamut, and white point, to understand what defines each colour space and how they differ.

For example:

Screen Shot 2019-08-05 at 22.32.19.png
 

ACES

I chose to write about ACES as it is an increasingly common colour space used in the VFX industry and considered by many to be a standard.


What is ACES?

ACES is a system that encodes luts that allow us to move from input colourspaces to output colourspaces. A scene-linear workflow is based on the physical characteristics of light. The framework for this workflow is the Academy Colour Encoding System (ACES)

The principle developer of ACES is The Academy of Motion Picture Arts and Sciences (AMPAS)



Why ACES?

  • ACES is a standard. It allows you to store all the data of digital images in the same mathematical space, providing a more consistent workflow between departments and studios.

  • It has an enormous gamut, so high fidelity can be maintained when moving between different colourspaces

  • It is 'future-proof'. Whatever colourspaces are used for display or distribution in the future, will work within ACES; new transforms can be written using CTL. As the gamut is so large (exceeds human vision) we should be able to display material in ACES on future displays etc. without requiring remastering.



ACES Colourspaces

ACES encoded OpenEXR: scene-referred, linear, HDR (30 stops dynamic range), wide gamut (exceeds human vision), 16-bit float

There are several ACES colourspaces that have been created by the Academy.


ACES 2065-1

The first created was ACES 2065-1. This is a colourspace intended for data storage. With AP0 primaries (illustrated below), it has an enormous gamut. It has a D60 white point. Plates and deliverables are in ACES-2065-1.

However, this gamut is too wide for practical use: it is not artist friendly, hard to interpret, and features too many imaginary colours in the gamut. For this reason, the Academy developed ACEScg.

ACEScg

This is a colourspace intended as a working space. Using AP1 primaries, it has a smaller (but still very large) gamut than ACES 2065-1. It is now the standard for VFX.

ap1_ap0.png

ACEScc

Has a log gamma, otherwise is identical to ACEScg. It is intended as a working space for grading applications.

ACEScct

Very similar to ACEScc but adds a toe to make it more similar to traditional log curves. It was requested by colorist requests for behaviour more similar to traditional legacy log film scan encodings when grading using an ACES working space.


How ACES Works

1. IDT

The IDT moves data from the camera colourspace to a working ACES colourspace. Most camera manufacturers provide IDTs for their cameras.

2. ACES

A working colourspace i.e. here CG work such as texturing would be done.  

3. LMT

This is optional. Once in ACES colourspace, LMT can provide a custom starting point for colour correction. It doesn't actually change the image data. Examples include 'day for night' or 'bleach bypass' looks

4. RRT

The RRT is a standard transform. It is what applies the 'ACES look'. The biggest apparent effect from the RRT is the roll-off in the highlights and shadows.

In a practical sense the RRT and ODT are combined in production, and can be referred to as an ACES Viewing Transform.

5. ODT

Maps HDR output of RRT to a display referred colourspace (specific to display devices). Each display requires its own ODT. To view an ACES image on a broadcast monitor it must pass through a REC.709 ODT. To view an ACES image on an sRGB screen it must pass through an sRGB ODT. 

 

ACES NAMING CONVENTIONS

Looking at the dropdown list on software such as Mari or Maya when selecting project setting or view transforms can be overwhelming for those not used to the ACES naming conventions. The information below outlines how commonly used colour spaces are organised, and what they describe.



Roles

Aliases to the colour spaces used for the OCIO 'roles' functionality. References for the base colour spaces with more user-friendly names. Should not generally be used by most artists.



ACES

Colour spaces and transforms representing the core ACES working and interchange colour spaces.

ACES - ACES2065-1: AP0 primaries, intended for the storage of image data

ACES - ACEScg: AP1 primaries, intended to be a working space

ACES - ACEScc: AP1 primaries, has a log gamma, otherwise identical to ACEScg. Intended as a working space for grading applications.




Input Colourspaces

Colour spaces and transforms that implement the ACES Input Transforms. These colour spaces are used to convert from camera-specific formats and encodings to ACES2065-1.

Colour space starts with curve- transfer function (Y), gamut conversion (N)

i.e.Utility - Curve sRGB

Colour space starts with linear- transfer function (N), gamut conversion (Y)

i.e. Utility - Linear sRGB

Generic - sRGB - Texture: sRGB gamma, primaries and white point



Output Colour spaces

Colour spaces and transforms implementing the ACES Output Transforms. These colour spaces produce code values ready for display on hardware devices calibrated to the standard used to name the colour space.

All of the colour spaces in the 'Output' category have the RRT applied.

Output - sRGB/ sRGB(ACES): Applies a gamma curve with a toe (not a true sRGB 2.2 gamma curve) and sRGB pirmaries and whitepoint; it is a styled, filmic verison of sRGB colourspace


Utility

A collection of colour spaces that are used to faciliate the creation of LUTs and other basic functionality.

Colour space starts with curve- transfer function (Y), gamut conversion (N)

i.e.Utility - Curve sRGB

Colour space starts with linear- transfer function (N), gamut conversion (Y)

i.e. Utility - Linear sRGB

Utility - Raw: for images that do not require conversion (scalar masks, disp, spr)

Utility - sRGB - Texture: sRGB gamma, primaries and white point



COLOUR SPACE GLOSSARY

ACES: a colour image encoding system. It encodes LUTs that allow us to move from input colour spaces (i.e. camera) to output colour spaces (i.e. monitor).

Bit Depth: number of bits computer uses to describe a specific colour to your screen.

Colour pipeline: the set of all colour tranformations used during a motion-picture production.

Colour model: a system for creating a full range of colours from a small set of primary colours.

Colourimetry: the measurement and characterisation of colour.

Displayed referred image: image defined by how it will be displayed i.e. Rec. 709 is a display referred colour space.

EOTF: transform function that maps non-linear RGB to 'linear'.

Gamma: describes the relationship of the brightness of a pixel to the brightness of the light value that the pixel represents.

Gamut: a measure of the range of colours that a display can show.

High fidelity: a reproduction with little distortion, giving a result very similar to the originial.

Luminance: an overall scalar measure of light energy, proportionately weighted to the response of human colour vision. Measured in cadela per square meter, or 'nits'.

OCIO: a complete colour management solution geared towards VFX etc.

OETF: transform function that maps 'linear' to a non-linear RGB.

Primaries: chomacitity coordinates that define the gamut.

RGB: a colour encoding where red, green, and blue 'primaries' are additively mixed to produce a range ('gamut') of colours.

Roles: a set of colour spaces that are aliases to the colour spaces used for the OCIO 'roles' functionality.

Scalar: a quantity which only has magnitude and no other characteristics.

Scene referred image: an image whose light values are recorded as they existed at the camera focal plane, before any kind of in-camera processing.

Tone mapping: process of pleasingly reproducing high-dynamic range pixels on a low dynamic range display.

White point: defines the physical colour this space calls 'white'. It makes sure that the white in your image appears white on your display medium.

Wide gamut: a gamut wider than Rec.709.

Utility: a collection of colour spaces that are used to facilitate the creation of LUTs and other basic functionality.