Bilateral Filter Weight Lookup Table for Image Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional bilateral filtering for image processing has high computation complexity, leading to large semiconductor area requirements for hardware implementations or high CPU loading for software implementations, due to the complex equation for generating weights on-the-fly.

Innovation Solution

The use of pre-computed combined 2D weights stored in a 2D weight lookup table (LUT) reduces computation complexity by eliminating the need for on-the-fly weight calculation, with optional quantization to further reduce LUT size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional bilateral filtering uses direct formula implementation with on-the-fly weight calculation, then filtering accuracy is maintained, but computation complexity increases leading to large semiconductor area or high CPU loading

Engineering Contradiction:
Improvefiltering accuracyVSAvoidcomputation complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent pre-computes bilateral filter weights offline and stores them in lookup tables before actual image filtering operations. This preliminary action eliminates the need for complex on-the-fly weight calculations during real-time filtering, thereby reducing computation complexity while preserving filtering accuracy through the pre-computed weight values.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates simplified copies of the complex weight calculation by storing pre-computed weight values in lookup tables. Instead of executing the full bilateral filter equation during filtering, the system copies and applies pre-stored weight values that correspond to different spatial and range configurations, significantly reducing computational burden while maintaining filtering performance.

Inventive Principle:
Principle #26Copying

2Device complexity

If pre-computed weights are stored in a detailed 2D weight lookup table, then computation complexity is reduced, but memory storage requirements increase

Engineering Contradiction:
Improvecomputation complexityVSAvoidmemory storage
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The patent applies quantization to the pre-computed weight values in the lookup table, transforming them from high-precision floating-point numbers to lower-precision fixed-point or integer representations. This parameter change reduces the memory storage requirements for the lookup table while maintaining sufficient accuracy for practical filtering applications.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent employs non-uniform quantization where finer precision is allocated to weight values that have greater impact on filtering results (e.g., weights corresponding to nearby pixels or significant intensity differences), while coarser precision is used for less critical values. This local quality approach optimizes the balance between memory storage and filtering accuracy.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP3411831B1Adaptive bilateral (BL) filtering for computer vision
Publication Date: 2025.04.09 TEXAS INSTRUMENTS INC
  • EP3411831B1 patent drawingFigure 1~2A
  • EP3411831B1 patent drawingFigure 2B~3A
  • EP3411831B1 patent drawingFigure 3B~3C

AI summary

In described examples, a method (400) for filtering noise for imaging includes receiving (401) an image frame having position and range data. A filter size divides (402) the frame into filter windows for processing each of the filter windows. For the first pixel, a space to the center pixel and a range difference between this pixel and the center pixel is determined (403) and used for choosing (404) a selected weight from weights in a 2D weight LUT including weighting for space and range difference, a filtered range value is calculated (405) by applying the selected 2D weight to the pixel, and the range, filtered range value and selected 2D weight are summed (406). The determining, choosing, calculating and summing are repeated (407) for at least the second pixel. A total sum of contributions from the first and second pixel are divided (408) by the sum of selected 2D weights to generate a final filtered range value for the center pixel.