CDL stands for “Color Decision List”. It is a metadata format developed by the The American Society of Cinematographers (ASC), in order to exchange rudimentary colour correction information between postproduction tools. It is sometimes necessary to apply non-destructive look communication instead of colour correcting an image directly. The colour correction is expressed as metadata, and the image is transferred without any creative decisions. This greatly simplifies the versioning of looks, because simple metadata can be updated without the need of re-transferring image data.
CDLs are very common in VFX workflows because the VFX artist needs both the ungraded shot and the intended look. The ungraded shot allows the artist to comp in truly linear light, and the intended look is needed to check if the individual plates still hold together after the grade is applied.
Slope, Offset and Power
CDL defines a parameterised function to individually modify the red, green, and blue channel of an image. In addition, CDL specifies a global saturation.
The three tone curve parameters are Slope, Offset and Power. These parameters are simple mathematical operations, which allow the colourist to modify the incoming data.
- “Slope” is a multiplier to the incoming data
- “Offset” is a summation to the incoming data
- “Power” is a power function to the incoming data
The formula is: out.rgb=(in.rgb*Slope.rgb+Offset.rgb)^Power.rgb
- in.rgb = input red, green, blue values
- out.rgb = output red, green, blue values
- Slope.rgb = Slope red, green, blue values
- Offset.rgb = Offset red, green, blue values
- Power.rgb = Power red, green, blue values
A fourth parameter “Saturation” is achieved by converting the out.rgb data in a Luma and Chroma component. The Chroma Signal is then multiplied by the “Saturation” parameter.
Film Grade and Video Grade
With Slope and Offset you can produce both a Film Grade “Exposure” and “Contrast” and a Video Grade “Lift” and “Gain”.
- Exposure is achieved by Offset
- Contrast is achieved by a combination of Offset and Slope
- Gain is achieved by Slope
- Lift is achieved by a combination of Offset and Slope
- Gamma is achieved by Power
A CDL Grade is specified by ten values, and they can be stored in different formats.
.cdl is a text file (with the suffix “cdl”). It has an xml like structure. It defines one CDL grade and looks something like:
<Slope>0.904771 0.931037 1.011883</Slope>
<Offset>0.008296 0.017804 -0.026100</Offset>
<Power>1.052651 1.005324 0.945201</Power>
.ccc is the same concept but can contain multiple CDL structures.
CDL values can be stored per shot in an Avid Log Exchange.
CDL values per shot can be stored in a CMX 3600 Edit Decision List.
Unfortunately, CDL does not define the image state and colour management pipeline in which this formula is applied. That means, these ten values describe a colour correction but do not describe the way you apply the values. The values applied in a Log Colour Space with a viewing transform on output will elicit a different result, then the same values applied in Display Space after the viewing transform. This is the reason why sometimes CDL values do not match between applications.
In order to make CDL work, you need an additional Colour Management Layer that transforms the image into the correct state, apply the CDL values and eventually convert the image into another image state. In the field, there are different colour management frameworks like “OpenColor IO” or “Truelight Colour Spaces”. Some productions also just create “Lookup Tables” for the input- and output transformation and apply the CDL values by hand.
The only way to automatically apply CDL values to multiple shots is using ALE and EDL. This makes CDL only applicable in very narrow workflows. .cdl or .ccc files do not store camera metadata, which makes it impossible to “bulk paste” CDL values to multiple shots. Often manual copy and paste takes place, which is a dissatisfying and time-consuming task. Some tools offer a smarter copy and paste functionality if the .cdl values are named like the filename or clip names of the shot, so the conforming metadata is stored in the filename. Big VFX Houses use their Asset Management System to deploy the CDL values to the correct shots.
CDL is a simple concept to describe and communicate a simple colour correction transformation in a software agnostic way. It does not specify or communicate the needed colour management information, nor does it store any shot based metadata. In order to make CDL work, a production needs an additional colour management and asset management pipeline to successfully distribute CDL values between software packages.
Colour and Worklow Engineer, Filmlight