Adaptive Variable-Length Coding with Dynamic Codeword Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing variable length coding methods face challenges in adapting to non-stationary probability statistics, leading to suboptimal compression, especially when dealing with large ranges of source symbols, as they often rely on fixed code word sets or complex full adaptation techniques.

Innovation Solution

A method that selects and updates variable length code word tables based on estimated probability distributions, using a variable to increment or decrement the code word selection after encoding or decoding, allowing for dynamic adaptation of code words.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If fixed code word sets are used for variable length coding, then device complexity is reduced, but compression efficiency deteriorates due to inability to adapt to non-stationary probability statistics

Engineering Contradiction:
Improvecode word management complexityVSAvoidcompression efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent applies dynamics by making the code word table selection adaptive and time-varying. Instead of using a fixed code word set, the system dynamically selects from multiple pre-defined code word tables based on estimated local statistics. The variable k tracks the symbol range observed so far and determines which code word table to use, allowing the coding system to adapt to changing probability distributions while maintaining manageable complexity through pre-defined tables.

Inventive Principle:
Principle #15Dynamics

2Productivity

If full adaptation techniques are used to track symbol frequencies and define code words on-the-fly, then compression efficiency is improved, but device complexity increases significantly

Engineering Contradiction:
Improvecompression efficiencyVSAvoidcode word management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-defining multiple code word tables before the coding process begins. Instead of generating code words on-the-fly during encoding (which would be computationally expensive), the system prepares several code word tables in advance, each optimized for different symbol range scenarios. During encoding, the system only needs to select the appropriate pre-defined table based on the current symbol range estimate, dramatically reducing real-time computational complexity while maintaining good compression efficiency.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If code words are gradually adapted with only few changes at a time, then device complexity is reduced, but compression efficiency deteriorates due to suboptimal adaptation

Engineering Contradiction:
Improvecomputation per coded symbolVSAvoidcompression efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent applies segmentation by dividing the code word space into multiple discrete, pre-defined tables. Instead of making small incremental changes to a single code word set, the system segments the adaptation space into distinct tables (e.g., Table 0, Table 1, Table 2, etc.), each representing a different symbol range scenario. The variable k segments the observation space, and by selecting from pre-segmented tables, the system achieves more optimal compression compared to gradual adaptation, while keeping per-symbol computation low through table selection rather than table generation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8350735B2Method for coding and an apparatus
Publication Date: 2013.01.08 NOKIA TECHNOLOGIES OY
  • US8350735B2 patent drawing
  • US8350735B2 patent drawing
  • US8350735B2 patent drawing

AI summary

The disclosure relates to variable length encoding and decoding. A symbol is variable length encoded by selecting a variable length code word table from a set of variable length code word tables based on a value of a variable; selecting a code word from the selected variable length code word table on the basis of said symbol; and updating the value of said variable by comparing the correspondence between said symbol and said variable. If the comparison indicates that the value of the variable is smaller than the symbol, the value of said variable is incremented; else if the comparison indicates that the value of the variable is greater than the symbol, the value of said variable is decremented; else the value of the variable is not amended.