Multi-Layer Run-Level Coding With Smaller Huffman Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing entropy coding techniques for video compression, such as those used in the H.264 standard, are either resource-intensive and inefficient for common run and level values, or they require large code tables that consume memory and processing resources.
Innovation Solution
A multi-layer run level encoding and decoding approach that separates run and level parts of run level pairs for efficient representation and coding, using zoned Huffman code tables and embedded Huffman code tables to reduce table sizes and adapt to different block sizes, while allowing for early termination and adaptivity in encoding and decoding.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of energy
If traditional entropy coding techniques (e.g., H.264) are used for video compression, then compression efficiency is achieved, but resource consumption (memory and processing) increases due to large code tables and state tracking
Solution Approach 1:
The patent segments the run-level coding process into multiple layers (first-layer and second-layer coding). The first-layer code table handles common run and level values efficiently, while the second-layer code table handles less common values. This segmentation allows the system to use smaller, more efficient code tables for frequent cases, reducing overall resource consumption while maintaining compression efficiency.
Solution Approach 2:
The patent applies different coding strategies to different parts of the run-level data. Common run and level values are encoded using a first-layer code table optimized for frequency efficiency, while less common values use a second-layer code table. This local optimization ensures that the most resource-intensive operations are minimized while maintaining overall compression performance.
2Loss of information
If large code tables are used to improve compression efficiency, then bitrate reduction is enhanced, but memory consumption and processing overhead increase
Solution Approach 1:
The patent divides the code table into two layers: a first-layer code table for common run-level pairs and a second-layer code table for less common pairs. This segmentation allows each table to be smaller than a single comprehensive table, reducing memory consumption while maintaining the ability to represent all necessary values efficiently.
Solution Approach 2:
The patent implements adaptive switching between first-layer and second-layer code tables based on the frequency of run-level pairs. The encoder and decoder dynamically select which layer to use, optimizing memory usage by only loading and processing the necessary code table layer for each particular data pattern, rather than maintaining all possibilities simultaneously.
3Productivity
If simple run level coding is used to reduce resource consumption, then processing efficiency improves, but compression efficiency decreases
Solution Approach 1:
The patent segments the coding process into two layers where the first layer handles the majority of common cases with simple, efficient code tables, and the second layer handles less common cases. This segmentation allows the system to process most data with simple operations while maintaining the capability for more complex encoding when needed, thus preserving both processing efficiency and compression efficiency.
Solution Approach 2:
The patent changes the parameters of the code tables based on the frequency of run-level pairs. By adjusting which code table layer is active (first-layer for common values, second-layer for less common values), the system optimizes the balance between processing simplicity and compression effectiveness for different data patterns.
Data Source
AI summary
Entropy coding and decoding techniques are described, which may be implemented separately or in combination. For example, a video encoder uses two-layer run level coding to reduce bitrate for frequency transform coefficients in a quick and efficient manner, and a video decoder uses corresponding two-layer run level decoding. This two-layer coding/decoding can be generalized to more than two layers of run level coding/decoding. The video encoder and decoder exploit common patterns in run level information to reduce code table size and create opportunities for early termination of decoding. Using zoned Huffman code tables helps limit overall table size while still providing a level of adaptivity in encoding and decoding. Using embedded Huffman code tables allows the encoder and decoder to reuse codes for 8×8, 8×4, 4×8, and 4×4 blocks.


