Academy Color Encoding System

The Academy Color Encoding System (ACES) is a color image encoding system created under the auspices of the Academy of Motion Picture Arts and Sciences. ACES is characterised by a color accurate workflow, with "seamless interchange of high quality motion picture images regardless of source".
The system defines its own primary colors as being on the spectral locus as defined by the CIE xyY specification. The white point is approximate to the chromaticity of CIE Daylight with a Correlated Color Temperature (CCT) of 6000K. Most ACES compliant image files are encoded in 16-bit half-floats, thus allowing ACES OpenEXR files to encode 30 stops of scene information. The ACESproxy format uses integers with a log encoding. ACES supports both high dynamic range (HDR) and wide color gamut (WCG).
The version 1.0 release occurred in December 2014. ACES received a Primetime Engineering Emmy Award in 2012. The system is standardized in part by the Society of Motion Picture and Television Engineers (SMPTE) standards body.
The ACES project began its development in 2004 in collaboration with 50 industry technologists. The project began due to the recent incursion of digital technologies into the motion picture industry. The traditional motion picture workflow had been based on film negatives, and with the digital transition, scanning of negatives and digital camera acquisition. The industry lacked a color management scheme for diverse sources coming from a variety of digital motion picture cameras and film. The ACES system is designed to control the complexity inherent in managing a multitude of file formats, image encoding, metadata transfer, color reproduction, and image interchanges that are present in the current motion picture workflow.
The following versions are available for the reference implementation:
The system comprises several components which are designed to work together to create a uniform workflow:
ACES 1.0 is a color encoding system, defining one core archival color space, and then four additional working color spaces, and additional file protocols. The ACES system is designed to cover the needs film and television production, relating to the capture, generation, transport, exchange, grading, processing, and short & long term storage of motion picture and still image data. These color spaces all have a few common characteristics:
The five color spaces use one of two defined sets of RGB color primaries called AP0 and AP1 (“ACES Primaries” #0 and #1); The chromaticity coordinates are listed in the table below:
AP0 is defined as the smallest set of primaries that encloses the entire CIE 1931 standard-observer spectral locus; thus theoretically including, and exceeding, all the color stimuli that can be seen by the average human eye. The concept of using non-realizable or imaginary primaries is not new, and is often employed with color systems that wish to render a larger portion of the visible spectral locus. The ProPhoto RGB (developed by Kodak) and the ARRI Wide Gamut (developed by Arri) are two such color spaces. Values outside the spectral locus are maintained with the assumption that they will later be manipulated through color timing or in other cases of image interchange to eventually lie within the locus. This results in color values not being “clipped” or “crushed” as a result of post-production manipulation.
AP1 gamut is smaller than the AP0 primaries, but is still considered “wide gamut”. The AP1 primaries are much closer to realizable primaries, but unlike AP0, none are negative. This is important for use as a working space, for a number of practical reasons:
This is the core ACES color space, and the only one using the AP0 RGB primaries. It uses photometrically linear transfer characteristics (i.e. gamma of 1.0), and is the only ACES space intended for interchange among facilities, and most importantly, archiving image/video files.
ACES2065-1 code values are linear values scaled in an Input Transform so that:
ACES2065-1 code values often exceed 1.0 {\displaystyle 1.0} for ordinary scenes, and a very high range of speculars and highlights can be maintained in the encoding. The internal processing and storage of ACES2065-1 code values must be in floating-point arithmetics with at least 16 bits per channel. Pre-release versions of ACES, i.e. those prior to 1.0, defined ACES2065-1 as the only color space. Legacy applications might therefore refer to ACES2065-1 when referring to “the ACES color space”. Furthermore, because of its importance and linear characteristics, and being the one based on AP0 primaries, it is also improperly referred to as either “Linear ACES”, “ACES.lin”, “SMPTE2065-1” or even “the AP0 color space”.
Standards are defined for storing images in the ACES2065-1 color space, particularly on the metadata side of things, so that applications honoring ACES framework can acknowledge the color space encoding from the metadata rather than inferring it from other things. For example:
ACEScg is a scene-linear encoding, like ACES2065-1, but ACEScg is using the AP1 primaries, which are closer to realizable primaries. ACEScg was developed for use in visual effects work, when it became clear that ACES2065 was not a useful working space due to the negative blue primary, and the extreme distance of the other imaginary primaries.
The AP1 primaries are much closer to the chromaticity diagram of real colors, and importantly, none of them are negative. This is important for rendering and compositing image data as needed for visual effects.
Like ACEScg, ACEScc and ACEScct are using the AP1 primaries. What sets them apart is that instead of a scene-linear transfer encoding, ACEScc and ACEScct use logarithmic curves, which makes them better suited to color-grading. The grading workflow has traditionally used log encoded image data, in large part as the physical film used in cinematography has a logarithmic response to light.
ACEScc is a pure log function, but ACEScct has a "toe" near black, to simulate the minimum density of photographic negative film, and the legacy DPX or Cineon log curve.
[ X Y Z ] = [ 0.9525523959 0.0000000000 0.0000936786 0.3439664498 0.7281660966 − 0.0721325464 0.0000000000 0.0000000000 1.0088251844 ] [ R G B ] {\displaystyle {\begin{bmatrix}X\\Y\\Z\end{bmatrix}}={\begin{bmatrix}0.9525523959&0.0000000000&0.0000936786\\0.3439664498&0.7281660966&-0.0721325464\\0.0000000000&0.0000000000&1.0088251844\end{bmatrix}}{\begin{bmatrix}R\\G\\B\end{bmatrix}}}
[ R G B ] = [ 1.0498110175 0.0000000000 − 0.0000974845 − 0.4959030231 1.3733130458 0.0982400361 0.0000000000 0.0000000000 0.9912520182 ] [ X Y Z ] {\displaystyle {\begin{bmatrix}R\\G\\B\end{bmatrix}}={\begin{bmatrix}1.0498110175&0.0000000000&-0.0000974845\\-0.4959030231&1.3733130458&0.0982400361\\0.0000000000&0.0000000000&0.9912520182\end{bmatrix}}{\begin{bmatrix}X\\Y\\Z\end{bmatrix}}}
ACES is defined by several Standards by SMPTE (ST2065 family) and documentations by AMPAS, which include:
A SMPTE standard is also under development to allow ACES code streams to be mapped to the Material Exchange Format (MXF) container.