Fast 3D LUT on NVIDIA GPU
Updated:
3D LUT transforms are widely used for colour grading and gamut mapping. Fastvideo's CUDA kernels apply 2.5D and 3D cube LUTs on the NVIDIA GPU with sub-millisecond timing, so colour grading with user-defined LUTs runs comfortably in real time as part of a GPU pipeline.
Features
- Input up to 16-bit, arbitrary width and height
- 2.5D and 3D cube LUT formats; RGB and HSV colour representation
- Internal colour cube resolution up to 65×65×65; fast trilinear interpolation
- Module of the Fastvideo Image & Video Processing SDK
Performance (16-bit RGB, trilinear, GeForce GTX 1080)
All data in GPU memory, timing is GPU computation only, for a 2.5K (2432×1366) and a 4K (4032×2192) image:
| LUT | 2.5K | 4K |
|---|---|---|
| 2.5D LUT (HSV, 90×30) | 0.26 ms | 0.64 ms |
| 2.5D LUT (HSV, 90×117) | 0.26 ms | 0.65 ms |
| 3D LUT (HSV, 36×8×8) | 0.29 ms | 0.65 ms |
| 3D LUT (HSV, 36×29×16) | 0.31 ms | 0.68 ms |
| 3D LUT (HSV, 36×57×61) | 0.44 ms | 0.77 ms |
| 3D LUT (RGB, 17×17×17) | 0.22 ms | 0.55 ms |
| 3D LUT (RGB, 33×33×33) | 0.22 ms | 0.56 ms |
| 3D LUT (RGB, 65×65×65) | 0.30 ms | 0.60 ms |
The 3D LUT transform is a module of our CUDA Image & Video Processing SDK for real-time colour grading with user-defined LUTs.