In computer science, a lookup table (LUT) is an array that replaces runtime computation of a mathematical function with a simpler array indexing operation, in a process termed as direct addressing

Luts are used anywhere and everywhere. In Computer Science LUTS are used for simple hashing functions and Buffering in Computer Systems. From a visual arts perspective, LUTS are used to transform images / stills in videos. Most of the time, when you are working with LUTS in Photography and Videography, you are taking an input color value think RGB, and map it to a new output value using the pre-defined table of values. The transformation is then applied to individual pixels in an image or frame-by-frame within a video.

LUT Internals for Photography & Videography Most LUTs for video/photo are 3D LUTs which map the combinations of RGB values within a 3D cube. This allows you to do insanely complicated color transformations like hue shifting and changing saturation.

I had a few questions when it comes to LUTs and how they worked with video. Since LUTs are represented in a 3 dimensional array that represent RGB, depending on the size of the array, not every color would be represented. That leads to the question of how does a LUT transform something that isn’t necessarily represented in the lookup table?

In that case, the LUT will use Interpolation to estimate the value between two of the known values within the lookup table. Nowadays, when we apply LUTs in Davinci Resolve or Premiere Pro, we are using trilinear interpolation, which gives a smoother, more natural result of interpolation rather than a choppy / pixelated one. Let’s understand this visually.

Imagine a 3D Rubik’s cube of colors (that’s your LUT). Each small cube has a color value inside it. When you feed in a color like RGB = (0.36, 0.52, 0.25), it’s likely in between 8 little cubes. The LUT engine will go ahead and:

  • Find those 8 nearest cube corners.
  • Look up their color values.
  • Blend them together based on how close your color is to each one. This will produce a smooth, nice color that doesn’t standout from the rest of the image when doing the transformation.

Linked Map of Contexts