JPEG 2000 MQ Encoder Context Lookup Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

JPEG 2000 image encoding is computationally complex due to its high processing requirements, particularly in the coefficient bit modeling step, which involves intricate calculations and context determination for MQ-coder contexts, leading to significant computational burdens and slow translation times.

Innovation Solution

The implementation of precompiled lists of coefficients and neighborhood descriptor value tables to streamline the coefficient bit modeling process by generating lists of coefficients for subsequent coding passes and using state machines to determine MQ-coder contexts, reducing the need for complex calculations and branch prediction penalties.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional coefficient bit modeling is implemented with full context calculation and MQ-coder processing, then encoding accuracy and compliance with JPEG 2000 standard are maintained, but computational complexity increases significantly and encoding speed decreases

Engineering Contradiction:
Improveencoding accuracyVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent pre-calculates and stores context values in lookup tables before the actual encoding process. During encoding, the system simply retrieves pre-computed context values based on coefficient patterns rather than calculating them in real-time, dramatically reducing computational complexity while maintaining encoding accuracy and JPEG 2000 compliance

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies different processing strategies to different coefficient patterns. For coefficients with simple patterns (e.g., isolated non-zero coefficients), it uses simplified context determination. For more complex patterns, it uses the full MQ-coder context calculation. This localized approach reduces overall computational complexity while maintaining accuracy where needed

Inventive Principle:
Principle #3Local quality

2Productivity

If traditional coefficient bit modeling with sequential processing and branch prediction is used, then comprehensive coefficient analysis is performed, but encoding time increases due to branch prediction penalties and sequential examination

Engineering Contradiction:
Improveencoding speedVSAvoidencoding time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent pre-organizes coefficients into processing lists and pre-calculates context values during idle periods or previous encoding passes. This eliminates the need for real-time calculation during the critical encoding path, reducing encoding time without sacrificing comprehensive coefficient analysis

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent divides the coefficient processing into distinct segments or passes. Instead of sequentially examining all coefficients in a single pass with frequent branching, it segments the work into multiple organized passes, each handling specific coefficient types or regions, thereby reducing branch prediction penalties and improving encoding speed

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7352903B2Methods and apparatus for implementing JPEG 2000 encoding operations
Publication Date: 2008.04.01 ACCUSOFT CORP
  • US7352903B2 patent drawing
  • US7352903B2 patent drawing
  • US7352903B2 patent drawing

AI summary

Improved methods and apparatus for implementing JPEG 2000 MQ encoding operations are described. The following features of the invention may be used alone or in combination to implement JPEG 2000's coefficient bit modeling 1) Lists of coefficients to be processed in one or more subsequent coding passes are generated as coefficients are processed. The list is allows processing in the subsequent coding pass to be limited to coefficients on the list; and 2) Generation, updating and use of a neighborhood descriptor value table that stores a neighborhood descriptor value for each coefficient of a block being processed. The neighborhood descriptor values provide information about the state of the coefficient and its adjacent neighbors. Neighborhood descriptor values are used to access a lookup table that provides one or more context values and/or sign value to be used in MQ encoding. The neighborhood descriptor value corresponding to a coefficient and the neighborhood descriptor values corresponding to coefficients adjacent the coefficient are updated when the coefficient becomes significant, e.g., a 1 is first encountered in the coefficient.