FIFO Buffer Interleaved Encoding for Faster Entropy Decoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current entropy coding methods, such as CAVLC and CABAC in H.264/AVC, are computationally demanding, making them inefficient for devices with limited processing power, particularly in high-quality video decoding applications.
Innovation Solution
The proposed solution employs encoding trees with primary and secondary codewords, using a first-in-first-out buffer to manage codewords and a context model for probability-based encoding and decoding, allowing for efficient encoding and decoding of binary sequences by traversing trees based on estimated probabilities and using codeword type indicators to optimize bitstream structure.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of substance
If CABAC (Context Adaptive Binary Arithmetic Coding) is used for entropy coding, then compression efficiency is improved, but computational complexity increases
Solution Approach 1:
The patent segments the encoding process into multiple independent parallel encoding trees, each handling a specific probability range. This allows the complex CABAC-style arithmetic coding to be divided into simpler, parallelizable segments that can be processed simultaneously, reducing overall computational complexity while maintaining compression efficiency.
Solution Approach 2:
The patent pre-generates multiple encoding trees with different probability models before the actual encoding process. These pre-computed trees are stored and selected during encoding based on the input data characteristics, eliminating the need for complex real-time probability calculations and reducing computational burden during actual compression.
2Measurement precision
If multiple encoding trees with different probability models are used, then encoding accuracy is improved, but memory requirements increase
Solution Approach 1:
The patent applies different encoding tree structures optimized for specific probability ranges to different portions of the input data. Each encoding tree is tailored to handle a specific local characteristic (probability range), improving overall encoding accuracy without requiring all trees to be equally complex, thus optimizing memory usage.
Solution Approach 2:
The patent generates a limited set of encoding trees covering the most probable probability ranges encountered in practice, rather than creating trees for all possible probability values. This partial action approach provides sufficient encoding accuracy for typical video data while significantly reducing memory requirements compared to a complete set of trees.
3Productivity
If parallel encoding processes are implemented, then encoding speed is improved, but synchronization complexity increases
Solution Approach 1:
The patent divides the input data stream into multiple segments that can be encoded in parallel using different encoding trees. Each segment is processed independently by a separate encoding thread, and the results are concatenated in the original order. This segmentation approach enables parallel processing while minimizing synchronization requirements, as each segment can be encoded independently without requiring complex coordination between threads.
Data Source
AI summary
A method for encoding an input sequence of symbols. The method includes, sequentially, for each symbol in the input sequence, determining an estimated probability for that symbol based on a context model, identifying a codeword associated with a sequence of symbols resulting from appending that symbol to a previous sequence of symbols associated with that estimated probability, using an encoding tree associated with that estimated probability, and storing the codeword in a buffer element of a first-in-first-out buffer, wherein the buffer element is associated with the estimated probability. Stored codewords are output from the buffer in a first-in-first-out order.


