Multi-level Lookup Tables for Image Processing Resource Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional image processing methods using lookup tables (LUTs) require significant computing and memory resources due to the large number of control point values, leading to high costs in processing images, especially when each frame of a video sequence necessitates different LUTs or histograms, resulting in substantial resource utilization.

Innovation Solution

The implementation of multi-level LUTs, where a first LUT stores control point values for all pixel values and a second LUT, specific to each image block, uses fewer control points in a distorted space, reducing the overall computational cost by applying control point values only where necessary, thereby optimizing resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional LUTs with large number of control point values are used for image processing, then processing accuracy is maintained, but computing resources and memory usage increase significantly

Engineering Contradiction:
Improveprocessing accuracyVSAvoidcomputing resources
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The image is divided into multiple blocks, and the LUT processing is segmented into two levels: a first LUT processes all blocks with full precision control points, while a second LUT processes individual blocks with reduced control points. This segmentation allows different precision levels for different regions, reducing overall computational complexity while maintaining necessary accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different blocks of the image are processed with different LUT configurations based on their specific characteristics. The second LUT uses fewer control point values tailored to the local requirements of each block, rather than applying uniform high-precision processing to the entire image, thus optimizing the balance between accuracy and resource usage.

Inventive Principle:
Principle #3Local quality

2Measurement precision

If conventional LUTs with large number of control point values are used for image processing, then processing accuracy is maintained, but memory resources increase significantly

Engineering Contradiction:
Improveprocessing accuracyVSAvoidmemory resources
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The memory storage is segmented into two LUT structures: the first LUT stores control point values for all pixel values across the entire image, while the second LUT stores reduced control point values for individual blocks. This segmentation reduces the total quantity of stored data while preserving accuracy where needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The second LUT stores fewer control point values tailored to specific block requirements rather than uniform high-precision storage for all blocks. This local optimization reduces the total memory footprint while maintaining processing accuracy for each block's specific characteristics.

Inventive Principle:
Principle #3Local quality

3Measurement precision

If different LUTs are applied to each frame of video sequence, then processing accuracy is maintained, but processing time increases substantially

Engineering Contradiction:
Improveprocessing accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The processing time is reduced by segmenting the LUT application into two efficient stages: the first LUT is applied once to transform all blocks into a common distorted space, and then the smaller second LUT is applied to each block. This segmented approach is more efficient than applying a full-precision LUT to each frame individually, reducing processing time while maintaining accuracy.

Inventive Principle:
Principle #1Segmentation

4Stability of the object's composition

If conventional LUT processing is applied to all blocks uniformly, then processing consistency is maintained, but computational cost increases to Cost=A*B

Engineering Contradiction:
Improveprocessing consistencyVSAvoidcomputational cost
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The uniform processing is segmented into two stages with different LUTs: the first LUT provides consistent transformation across all blocks, while the second LUT optimizes individual block processing with reduced control points. This maintains processing consistency through the first stage while reducing computational cost in the second stage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of uniform high-precision processing for all blocks, the solution applies local optimization where the second LUT uses fewer control point values tailored to each block's specific characteristics. This reduces the overall computational cost from A*B to A+(N*B) while maintaining necessary processing quality.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11501418B2Multi-level lookup tables for control point processing and histogram collection
Publication Date: 2022.11.15 GOPRO INC
  • US11501418B2 patent drawing
  • US11501418B2 patent drawing
  • US11501418B2 patent drawing

AI summary

Multiple lookup tables (LUTs) storing different numbers of control point values are used to process pixels within different blocks of an image, such as after image processing using tone mapping and/or tone control, and/or to collect histogram information or implement 3D LUTs. First control point values stored within a first LUT are applied against pixels of a given block of an image to produce a distorted image block. Second control point values stored within a second lookup table are applied against a pixel of the distorted image block to produce a processed pixel. The second LUT is one of a plurality of second LUTs and stores fewer values than the first LUT. A processed image is produced using the processed pixel. The processed image is then output for further processing or display.