/edl2cdl

Extracts Color Decision Lists (CDLs) from any Edit Decision List (EDL) coming from video editorial, thus allowing VFX and post-production software to share on-set color-correction decision throughout the imaging pipeline, even for non-interoperable software.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

edl2cdl

This tool is for converting color-correction metadata for advanced theatrical/television workflows, as it relates to a conversion tool for the ASC Color Decision List (CDL) metadata: the Academy Award® Technological Achievement winning invention by the American Society of Cinematography (ASC) Science and Technology Committee for representation and transportation of cinematographic-quality “color grading” information ― from on-set to postproduction. More information at the bottom of the present document.

edl2cdl reads the CDL metadata embedded, as comments, in the editing events of a CMX3600-like Edit Decition List file (EDL). Every CDL is named afer and differentiated by an identifier called “CCCid” that is read after each EDL event's ClipName comment-field (so be sure to include it as comment in your EDL). The tool then converts the CDL metadata into either one of three XML-based variants of the ASC CDL file formats:

  • A single Color Correction Collection file (CCC, .ccc file extension) containing all the color decisions in the original EDL. This is also the default output format of edl2cdl.
  • A series of Color Decision List files, each contaning SOP+saturation metadata for one individual color decision (CDL, .cdl file extension).
  • A series of Color Correction files, each contaning SOP+saturation metadata for one individual color decision (CC, .cc file extension). This is not really a standard ASC CDL file format, but is effectively what is supported by many software applications with lighter implementations of CDL (e.g. The Foundry Nuke ).

Since the original ClipName name is transformed into a CCCid and the on-set color-correction usually includes just one version/grade per clip shot, no multiple CDLs are extracted from a single ClipName/TapeName. The only parameter that can be passed is either --ccc (default if not explicitly defined) or --cdl or --cc to specify the corresponding output format. Other than that a first mandatory argument is the pathname of the input EDL file. Optionally a foldername or a filename can be specified as argument (the script intelligently parses the output pathname guessing its use according to different output format). Individual EDL/CC files are generated in a separate folder (that keeps the EDL name, without extension, by default); the single CCC file is by default generated in the same folder (and with the same name) of the EDL file.

Details on ASC CDL

Each “color decision”, i.e. a so-called “primary” color grading operator mimicking 35mm film color-timing and telecine operations and affecting the whole frame or sequence of frames, is represented by a 10-tuple of floating point values divided in 3+3+3+1 numbers: (sR, sG, sB), (oR, oG, oB), (pR, pG, pB) and S.

The s's are "slope" values, the o's are "offset" values, the p's are "power" values (each triplet containing a different value for the raster image's Red-, Green- and Blue-component codevalues); the capital S is a "saturation" parameter. The first 9 floats are also called a "SOP" after their triplets' initials, and their mapping formula is, invariably for all three RGB channels (where x is the input-color codevalue and y the output-color's): y = (s·x + o)^p.

CDL operators are pseudo-invertible, as long as the SOP operations (each individually invertible) are applied in reverse orders). Yet CDLs are not "algebraically closed", as neither every primary color-correction can be represented by a CDL, nor every CDL can be inverted by another CDL. So the set of all the CDLs forms a semigroup.

In order to emulate film color-timing/grading operations, SOP values should be applied ‘on top’ of a scene-referred image colorimetry preferably encoded using a “logarithmic” transfer characteristic or similar tonecurve. Examples of digital colour spaces (in the RGB model) with such characteristics are: ACEScc, ARRI Log.C, Kodak Cineon Printing Density (CPD), REDlogFilm, Panasonic V-Log, Sony S-Log3, Film Log.E/Log.D. Please refer to the ASC CDL Wikipedia page for further description and references.