Home | Our Services | Software - PRHelper for PC | Software - Project Tools for PC and Mac

LUTs Part 1: What is a LUT?

December 4th, 2012 / By Angelo Lorenzo / 13 Comments

A LUT, or look up table, changes color from one value to another based on a list of values. For video and motion graphics, a LUT is useful for matching footage from one source to another (i.e. a 3D render to live action film), for visual effect (i.e. vintage film emulation), or for output preview (i.e. film stock, digital projection, and DVD). While color management for video is still considered the wild west, the use of LUTs have increased as hobbyists and indie filmmakers gain access to once-expensive tools like Adobe Speedgrade (formerly Iridas Speedgrade NX) and Blackmagic DaVinci Resolve.

Many people were first exposed to LUTs a few years ago while experimenting with Technicolor’s CineStyle profile for the Canon 5Dmk2. CineStyle was administered in two steps: the installation of a Canon Picture Style designed by Technicolor that allowed them the greatest amount of flexibility for adjusting 5Dmk2 footage, and the application of an s-curve LUT in your NLE or color grading program for quick adjustment of the footage. The s-curve LUT increased contrast in a way that was similar to Canon’s default Picture Style, but ended up with more detail in the highlights and shadows. You could also forgo the use of the s-curve LUT if you were planning on doing a complete color grade on your footage. The s-curve LUT is no longer available to download as a stand-alone file, as it’s tied to Technicolor’s ColorAssist color grading program and new ColorAssist Look format.

1D LUTs

1D, or one dimensional, LUTs are LUTs that usually have an exact output value for a corresponding input value. 1D LUTs are limited in that they cannot alter color saturation without affecting contrast or brightness along with it.

From Light Illusions:

As an example the start of a 1D LUT could look something like this:
Note: strictly speaking this is 3x 1D LUTs, as each colour (R,G,B) is a 1D LUT

R, G, B
3, 0, 0
5, 2, 1
7, 5, 3
9, 9, 9

Which means that:
For an input value of 0 for R, G, and B, the output is R=3, G=0, B=0
For an input value of 1 for R, G, and B, the output is R=5, G=2, B=1
For an input value of 2 for R, G, and B, the output is R=7, G=5, B=3
For an input value of 3 for R, G, and B, the output is R=9, G=9, B=9

3D LUTs

3D, or three dimensional, LUTs are LUTs that affect a coordinate set of colors. As an example, an RGB coordinate of (0, 0, 448) would be directly transformed to (128, 0, 832). If a 3D LUT had corresponding matches for each coordinate set, the files would be large and difficult for software to use. 3D LUTs usually have a set of 17 coordinates on each axis (red, green, and blue) from which other values are interpolated to various levels of accuracy.

From Light Illusions:

The following is the first few lines from a ‘default bypass’ 3D LUT – output is equal to input:

R, G, B
0, 0, 0
0, 0, 64
0, 0, 128
0, 0, 192
0, 0, 256
0, 0, 320
0, 0, 384
0, 0, 448
0, 0, 512
0, 0, 576
0, 0, 640
0, 0, 704
0, 0, 768
0, 0, 832
0, 0, 896
0, 0, 960
0, 0, 1023
0, 64, 0
0, 64, 64
0, 64, 128
0, 64, 192
0, 64, 256
0, 64, 320
0, 64, 384
0, 64, 448
0, 64, 512
0, 64, 576
0, 64, 640
0, 64, 704
0, 64, 768
0, 64, 832
0, 64, 896
0, 64, 960
0, 64, 1023
0, 128, 0
0, 128, 64
0, 128, 128
0, 128, 192
0, 128, 256
0, 128, 320
0, 128, 384
…, …, …

What can be seen is that Blue goes through its 17 point cycle, quickly, Green is updating its cycle once for 17 of Blue’s cycles, and Red will update once during the whole length of the LUT, which is equal to Green going through 17 cycles.

These 42 lines continue for a total of 4913 lines…

1D LUT vs. 3D LUT

While 1D LUTs are useful for adjusting contrast and gamma per color channel, 3D LUTs are usually more accurate and flexible: 3D LUTs can cross-convert colors between channels, heavily alter saturation, and independently control saturation, brightness, and contrast.

iLUT

iLUT is a LUT format designed by Iridas for Speedgrade NX and is still in use for Adobe Speedgrade. The iLUT format uses math scripting, rather than a list of values, to control color corrections. You can learn about scripting Speedgrade iLUT files by reading Iridas’s documentation.

LUT Formats

There are a number of LUT formats in use today including Iridas .cube, Iridas, .look, S.two LUT, Blackmagic Gamma Table, Clipster LUT, Sony SRW LUT, FilmLight TrueLight LUT, Thomas LUTher Box LUT, 3DL, ASC CDL, CineSpace LUT, and Luster LUT. Besides inherent differences between 1D and 3D LUT files, these formats are vastly similar in that they contain lists of color values or coordinates. Iridas provides examples of some LUT formats in their online documentation.

Programs like Adobe Speedgrade, Adobe After Effects, Adobe Photoshop, and Blackmagic DaVinci Resolve support multiple formats.

LUT Bit Depth

LUTs usually provide an accuracy of 8 bits (values 0-255), 10 bits (values 0-1023), 12 bits (values 0-4095) or 32-bit floating point (values from 0.0-1.0). Most programs will create new values linearly to make up for differences in bit depth (i.e. an 8-bit LUT applied to 10-bit video) which allows for smoother color transition and reduced banding.

LUT vs. ICC

ICC color profiles are another way of changing color but are usually reserved for input (called scene referred) or output (called display referred) calibration and matching. Proper color matching requires both an input and output profile. These profiles are linked by conversion to an intermediate color space like CIELAB (L*a*b*) or CIEXYZ so Device A can reliably work with Output A, B, or C. LUTs are considered a direct transformation and are far less useful for calibration purposes unless the LUT was designed with both a specific input and output in mind.

Sources:
Light Illusions – What is a LUT?
Tcube – Using 1D and 3D LUTs for Color Correction
Iridas – LUT Formats
Iridas – iLUT Script Syntax
Optirep – FAQ: What is a LUT profile?
ICC – Introduction to the ICC profile format
ProVideo Coalition – Scene vs. Display Referred Profiles
Techicolor – CineStyle Tools

13 Comments

  • Roy G Biv says:

    ICC profiles also include DeviceLink profiles, which are a standardized superset of 3DLUTs as used in film and video.

  • Christopher says:

    Hi, I’m in a bit of a dilemma. I want to know can I convert an ICC profile to a LUT because I’m unable to find any information on doing this.

    • What is the intent? While ICC profiles and LUTs seem similar, ICC profiles map colors to an intermediate space which make them a pair system (input paired to output). ICC device link are more arbitrary transforms like an LUT but are less common.

      Granted, it may be possible to “fake” it and generate a LUT from an ICC profile using After Effects/LUT Buddy, I couldn’t speak as to how correct the resulting LUT would be.

  • Christopher says:

    Is it safe to assume the LUT that LUT buddy produces, could be used on any program that accepts a LUT ?

    I had to ask because I was hoping there would be a accurate way to convert a ICC to a LUT for video matching, image color matching etc.

    • I don’t know of any public applications that convert ICC profiles to LUTs as there isn’t, not usually, a good way to convert them 1-to-1. Lightspace does have a program that allows LUTs to be converted to ICC profiles.

      Is there any particular issue or situation you’re trying to provide a solution to? I’d love to hear what you’re trying to do.

      To answer your question, yes LUT Buddy would create a proper 1D or 3D LUT. I haven’t tried the ICC to LUT trick, but if After Effects works the way I think it does, then it should.

      After Effects is color managed enough to take advantage of ICC profiles. Some other compositors have workarounds, like Nuke http://polygonspixelsandpaint.tumblr.com/post/3684476660

  • Christopher says:

    I want to match CG with Live Action, or strictly when previewing anything in a compositor. Nuke can do almost anything, it should for the price :)

    • I would suspect most of what you want to do can be done strictly with LUTs unless you’re finding certain programs don’t respect your monitor calibration. Watch the video from the Nuke link and you should be able to do something similar with After Effects, Photoshop, and LUT Buddy to convert an ICC profile. LUT Buddy does work on newer versions of After Effects by just creating a dummy plugin folver for CS5, installing it, and then dragging the plugin to the plugin folder of CS6 or CC. LUT Buddy will generate a rainbow pattern which you can render out to TIFF, process in Photoshop as the video suggests, and bring back into After Effects for LUT Buddy to read and spit out a LUT. I’ll have to do a step by step soon.

  • Christopher says:

    Hi, thanks I haven’t seen the video yet. I’ve found out more info on LUT, and hopefully another method to convert ICC to LUT. If I gain more info I’ll post on my blog, maybe something you don’t know, maybe not :)

  • Christopher says:

    I created a 3D LUT using LUT buddy (cube extension), imported the 3D LUT into a compositing program (Autodesk Toxik) I don’t see the linear gamma applied to the footage as I do in After Effects, except in Toxik.

    Toxik can accept 3D LUT files. In After Effects it’s Linear with a linear Gamma, in Toxik it has a Gamma 2.2 applied which shouldn’t be with a 3D LUT applied to the footage. I can’t really get help with this as Toxik has lost it’s attention a while ago, hopefully you can help ?

    Footage > 3D LUT > Output

  • Christopher says:

    I have it working. I had to use LUT Buddy to write to a 3DL file, instead of a CUBE file.

Leave a Reply

css.php