Efficient Neural Network Encoding for 3D Color Lookup Tables
This work addresses memory overhead issues for software and devices that need to store dozens to hundreds of LUTs, which is incremental as it builds on existing LUT encoding methods.
The paper tackles the problem of storing many 3D color lookup tables (LUTs) efficiently by developing a neural network architecture that encodes hundreds of LUTs in a compact representation, achieving a memory footprint of less than 0.25 MB for 512 LUTs with minor color distortion (ΔE_M ≤ 2.0).
3D color lookup tables (LUTs) enable precise color manipulation by mapping input RGB values to specific output RGB values. 3D LUTs are instrumental in various applications, including video editing, in-camera processing, photographic filters, computer graphics, and color processing for displays. While an individual LUT does not incur a high memory overhead, software and devices may need to store dozens to hundreds of LUTs that can take over 100 MB. This work aims to develop a neural network architecture that can encode hundreds of LUTs in a single compact representation. To this end, we propose a model with a memory footprint of less than 0.25 MB that can reconstruct 512 LUTs with only minor color distortion ($\barΔE_M$ $\leq$ 2.0) over the entire color gamut. We also show that our network can weight colors to provide further quality gains on natural image colors ($\barΔ{E}_M$ $\leq$ 1.0). Finally, we show that minor modifications to the network architecture enable a bijective encoding that produces LUTs that are invertible, allowing for reverse color processing. Our code is available at https://github.com/vahidzee/ennelut.