3D LUT Splicing for FPGA Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems for color space and dynamic range conversions in the video and film industry require significant memory resources, particularly when using 3D lookup tables (LUTs) for FPGA implementations, due to the large number of look-up values needed, which can exceed available memory limits and hinder real-time processing.

Innovation Solution

The system splits an initial 3D LUT into smaller sub-cube vertices stored across multiple RAMs, using upper bits of pixel data to determine the correct RAM for each sub-cube vertex, allowing for efficient memory access and interpolation to convert image data between formats.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a 3D LUT is used for color space conversion in FPGA, then conversion accuracy is improved, but memory consumption increases significantly

Engineering Contradiction:
Improvecolor conversion accuracyVSAvoidmemory consumption
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent divides a large 3D LUT into multiple smaller sub-LUTs stored in separate RAM blocks. Each sub-LUT contains a portion of the lookup table data, and the system selectively accesses only the relevant sub-LUTs based on input pixel values. This segmentation reduces the memory footprint in each individual RAM block while maintaining the overall conversion accuracy through coordinated access to multiple sub-LUTs.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple large LUTs are created to service sub-cube vertices, then real-time processing capability is improved, but FPGA memory resources are exhausted

Engineering Contradiction:
Improvereal-time processing capabilityVSAvoidFPGA memory resources
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent combines multiple smaller sub-LUTs stored in separate RAM blocks to collectively provide the functionality of a single large LUT. By merging the outputs from multiple RAM blocks through logical operations and interpolation, the system achieves real-time processing capability without requiring a single large memory block that would exhaust FPGA resources.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of operation

If a single large LUT is used, then memory access simplicity is improved, but processing speed decreases due to memory access constraints

Engineering Contradiction:
Improvememory access simplicityVSAvoidprocessing speed
Core Design Contradiction:
Ease of operationVSSpeed

Solution Approach 1:

The patent segments the large LUT into multiple smaller sub-LUTs that can be accessed in parallel from different RAM blocks. This segmentation enables simultaneous memory access operations, significantly increasing processing speed compared to sequential access of a single large LUT, while the coordinated access mechanism maintains operational simplicity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10600148B2System and method for mapped splicing of a three-dimensional look-up table for image format conversion
Publication Date: 2020.03.24 GRASS VALLEY CANADA
  • US10600148B2 patent drawing
  • US10600148B2 patent drawing
  • US10600148B2 patent drawing

AI summary

A system and method that splices an initial 3D LUT for imaging format conversion into a plurality of smaller LUTs that can be stored in separate RAMs. During operation, the upper 5-bits serve as index values of each component of an incoming GBR pixel and are used to determine which of the smaller RAMs contain the correct index values for the pixel data. Specifically, a first index value can be derived from the incoming GBR pixel data and used to lookup all sub-cube vertices corresponding to the incoming pixel and the corresponding RAMs. After determining the correct RAMs, a predetermined algorithm for each given RAM is applied to find the normalized RAM look-up addresses and identify the correct data for the exemplary imaging format conversion process.