Parallel CABAC Decoding with FIFO Re-Encoding for Stable Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The H264 video compression standard's context-based adaptive binary arithmetic coding (CABAC) scheme poses challenges in decoding efficiency, particularly in achieving one bit per clock rate due to its complexity and variable processing rates, leading to pipeline stalls and increased hardware costs.
Innovation Solution
A method and apparatus for decoding context-based adaptive arithmetic entropy coded data using parallel encoding schemes, where N-bit symbols are divided into multiple streams and encoded in parallel using arithmetic encoding units, allowing for efficient storage in a FIFO and subsequent decoding, thereby achieving a higher compression ratio and consistent decode/encode rate.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of substance
If context-based adaptive binary arithmetic coding (CABAC) is used to achieve high compression ratio, then compression efficiency is improved, but decoding complexity and hardware cost increase significantly
Solution Approach 1:
The patent divides the decoding process into two separate stages: a first decoder that performs CABAC decoding to produce intermediate decoded data, and a second decoder that performs VLC decoding to produce final decoded data. This segmentation allows each decoder to be optimized for its specific task, reducing the complexity of individual decoding units while maintaining the high compression benefits of CABAC.
Solution Approach 2:
The patent introduces an intermediary component (FIFO buffer and re-encoder) between the first decoder and the second decoder. The first decoder outputs intermediate decoded data that is re-encoded using a simpler scheme before being decoded by the second decoder. This intermediary step transforms the complex CABAC output into a form that can be efficiently processed by simpler decoding hardware.
2Productivity
If CABAC decoding is performed at one bit per clock rate, then processing speed is improved, but variable processing rates cause pipeline stalls
Solution Approach 1:
The patent segments the decoding process into two independent decoding stages, each operating at consistent rates. The first decoder processes CABAC-encoded bits at a steady pace, and the second decoder processes the re-encoded VLC data at another steady pace, eliminating the variable rate problem that causes pipeline stalls in single-stage CABAC decoding.
Solution Approach 2:
The system uses the output of the first decoder to feed into a re-encoder that automatically transforms the data into a format suitable for the second decoder. This self-service mechanism ensures that the intermediate data is always in the correct format for the next stage, maintaining stable processing rates without requiring complex rate control logic.
3Productivity
If parallel encoding schemes are used to achieve one symbol per clock rate, then decode/encode rate is improved, but hardware cost increases
Solution Approach 1:
The patent divides the encoding/decoding workload into two separate parallel streams: one stream handles CABAC encoding/decoding and the other handles VLC encoding/decoding. Each stream can operate independently at optimized speeds, achieving high overall throughput without requiring a single complex parallel processing unit that would be prohibitively expensive.
Data Source
AI summary
Incoming decoded data (1), for example from an H264 decoder, is fed to an encoder unit (2) that entropy encodes the decoded data using a parallel encoding scheme that includes context-based arithmetic encoding. The syntax is chosen so that the context does not depend on the immediately previously encoded symbol. The output of the encoder (2) is fed to a FIFO memory whose output is fed to a complimentary decoder (4) whose output produces a delayed copy of the incoming decoded data (1).


