Binary Arithmetic Coding Pipelining Through Scan Order Modification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current video encoding standards, such as H.264/AVC and the developing HEVC, face challenges in maximizing throughput due to the computational intensity of determining contexts for significance maps, particularly with larger transform units like 16×16 and 32×32, which leads to BAC engine stalls and inefficient pipelining.
Innovation Solution
The implementation of a modified scan order for encoding and decoding significance maps, where the processing of certain flags is timed to avoid data dependencies, allowing for efficient pipelining by reordering the scan to include the upper-left flag from the previous block and the bottom-right flag from the next block, thereby ensuring that contexts can be determined at the beginning of each cycle, preventing stalls and maximizing throughput.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a non-pipelined BAC engine processes binary symbols sequentially completing all three stages before starting the next symbol, then context determination accuracy is maintained, but throughput is limited and processing time increases
Solution Approach 1:
The patent divides the significance map processing into multiple independent pipelines, where each pipeline processes a specific region or set of coefficients simultaneously. This segmentation allows parallel processing of multiple binary symbols through different stages of the BAC engine at the same time, thereby increasing throughput while maintaining context determination accuracy through proper pipeline isolation.
Solution Approach 2:
The patent implements preliminary context determination and probability estimation before the actual binary arithmetic coding/decoding operation. By pre-computing context values and probability estimates for upcoming symbols, the system eliminates waiting time during the three-stage processing, allowing continuous pipeline operation without stalls and significantly improving throughput.
2Reliability
If context for significance flags is determined by looking at values of neighboring flags, then accurate context modeling is achieved, but costly memory access operations occur and processing becomes computationally intense
Solution Approach 1:
The patent pre-determines context values for significance flags based on neighboring flag values before the actual encoding/decoding process. By calculating and storing context information in advance, the system avoids costly real-time memory access operations during the critical BAC processing stages, reducing computational complexity while preserving context modeling accuracy.
Solution Approach 2:
The patent creates copies of context information and probability estimates that can be used by multiple pipelines simultaneously. Instead of repeatedly accessing the same neighboring flag values from memory during each BAC operation, the system replicates the necessary context data in registers or fast memory, eliminating repeated memory access overhead and reducing processing complexity.
3Productivity
If attempts are made to pipeline within the BAC engine, then throughput is improved, but stalls occur due to data dependencies between neighboring flags
Solution Approach 1:
The patent segments the significance map into multiple independent processing regions that can be handled by separate pipelines. By dividing the work into spatially separated segments with minimal inter-segment dependencies, the system allows multiple pipelines to operate concurrently without stalling, as each pipeline processes its segment independently through all three BAC stages.
Solution Approach 2:
The patent performs preliminary context determination and data preparation for pipeline stages before the actual BAC encoding/decoding begins. By pre-computing context values, probability estimates, and neighboring flag dependencies in advance, the system eliminates data dependency bottlenecks during pipeline execution, allowing continuous forward progression through all pipeline stages without stalls.
Data Source
AI summary
Methods of encoding and decoding for video data are described for encoding or decoding multi-level significance maps while enabling pipelining of the BAC engine. In one example, coefficient groups are redefined to remove the significant-coefficient flags of the first and last position of a block and replace them with significant-coefficient flags of the last position in the previous block and the first position in the next block. A modified scan order is applied to each coefficient group. In another example, the coefficient groups remain block-based, but the scan order is modified to interleave the encoding and decoding sequential coefficient groups.


