AAC Huffman Codebook Node Tables for Faster Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Huffman decoding methods are inefficient due to the need to traverse all nodes of a Huffman codebook to decode a binary codeword, leading to high MIPS intensity and numerous iterations.

Innovation Solution

The method involves subdividing the codebook into node-tables with codewords in increasing decimal value order, allowing for the direct calculation of a codeword's location by subtracting the second decimal value from the highest codeword's value, thereby reducing the need for extensive traversing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional Huffman decoding traverses all nodes of the codebook to decode a binary codeword, then complete decoding is achieved, but MIPS consumption and processing time increase significantly

Engineering Contradiction:
Improvedecoding accuracyVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The codebook is divided into multiple node-tables, each representing a specific node in the Huffman tree. This segmentation allows the decoder to directly access the relevant node-table based on the codeword length, eliminating the need to traverse all nodes sequentially. The segmentation principle directly resolves the contradiction by organizing the codebook structure to enable faster access while maintaining complete decoding capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The codebook is pre-organized into node-tables with codewords arranged in increasing decimal value order within each table. This preliminary organization allows the decoder to directly calculate the position of a codeword using simple arithmetic operations (subtracting the highest codeword value from the given codeword value) rather than performing extensive traversing during actual decoding operations.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the codebook is traversed extensively to find codeword locations, then accurate decoding is achieved, but the number of iterations increases

Engineering Contradiction:
Improvecodeword location accuracyVSAvoiddecoding time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

Codewords within each node-table are pre-sorted in increasing decimal value order. This preliminary sorting enables the use of direct arithmetic calculation (codeword value minus highest codeword value in the table) to determine the exact position of any codeword, eliminating the need for iterative searching while maintaining precise location identification.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The mechanical traversing process through codebook nodes is replaced with a mathematical calculation approach. Instead of iteratively moving through nodes and comparing values, the system uses direct arithmetic operations on codeword values to compute the target position, substituting a computational method for a procedural search method.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Ease of manufacture

If code tables are used for search by traversing nodes, then decoding is implemented, but the process becomes expensive and time-consuming

Engineering Contradiction:
Improvedecoder implementationVSAvoiddecoding efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The codebook is segmented into node-tables that can be independently accessed. This segmentation maintains the ease of implementation by keeping the basic code table search structure but organizes it into smaller, more manageable units that can be accessed directly based on codeword length, improving efficiency without complicating the overall decoder architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The organization parameter of the codebook is changed from a flat hierarchical structure to a segmented structure with codewords sorted by decimal value within each node-table. This parameter change enables the use of arithmetic calculations instead of traversing operations, significantly improving decoding efficiency while maintaining implementation simplicity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7739119B2Technique for implementing Huffman decoding
Publication Date: 2010.06.15 ITTIAM SYST P
  • US7739119B2 patent drawing
  • US7739119B2 patent drawing
  • US7739119B2 patent drawing

AI summary

An improved decoding process as applied to MPEG AAC decoders of the type that use codebooks, reduces redundant traversing steps while finding the location of a specific binary stream codeword in the codebook. To this end, the codebooks are divided into a plurality of node-tables, each table corresponding to a node. From the number of bits “k” in a given node-table, the decimal value of the first “k” bits in a binary stream to be decoded is ascertained and compared with the decimal value of the maximum code word in the given node-table. The comparison is used for the identification of the location of the codeword in the node-tables to assist in decoding without unnecessary traversing of all the nodes in the codebook.