3D LUT Transform is massively used for color grading and gamut mapping applications. To solve the task of 3D LUT grading, we have developed fast kernels that run on existing CUDA hardware from NVIDIA. We have implemented various formats for 3D LUTs and achieved very high performance for color grading.

Usually fast CUDA kernels require to put all initial data into GPU shared memory. Unfortunately this is not the case with 3D LUT cubes with dimensions 17×17×17 and more. Each point of 3D cube consists of three float values and it means that even for the latest NVIDIA GPUs it's impossible to store that amount of data in GPU shared memory.

3D LUT Transform Features

  • Input data up to 16-bit with arbitrary width and height
  • 2.5D and 3D LUT formats: cube
  • Color representation: RGB, HSV
  • Color grading with arbitrary dimensions of 3D cube
  • Internal color cube resolution up to 65×65×65
  • Compatibility with Fastvideo Image & Video Processing SDK

Hardware and software

  • CPU Intel Core i7-5930K (Haswell-E, 6 cores, 3.5–3.7 GHz)
  • GPU NVIDIA GeForce GTX 1080 (Pascal, 20 SMM, 2560 cores, 1.6–1.7 GHz)
  • OS Windows 7 SP1 (x64)
  • CUDA Toolkit 8.0

Performance for 2.5D and 3D LUT Transforms on CUDA

Test images: 16-bit RGB, 2432×1366 (2.5K) and 4032×2192 (4K)
Test info: all data (input and output) in GPU memory, timing measurements include GPU computations only, timing for 2.5K/4K images

  • 2.5D LUT (HSV, 90×30 points) – 0.27 ms / 0.66 ms
  • 2.5D LUT (HSV, 90×117 points) – 0.69 ms / 1.33 ms
  • 3D LUT (HSV, 36×8×8 points) – 0.57 ms / 0.83 ms
  • 3D LUT (HSV, 36×29×16 points) – 1.3 ms / 2.4 ms
  • 3D LUT (HSV, 36×56×61 points) – 8.4 ms / 24 ms
  • 3D LUT (RGB, 33×33×33) – 1.6 ms / 2.8 ms

We have designed that software as a part of our CUDA image & video processing SDK. Now our customers have opportunity to use fast 3D LUT transforms on CUDA in their realtime color grading applications with user-defined 3D LUTs.

     Home                   Contacts                 Site Map
GPU Image Processing