Binary Arithmetic Coding Scan Order for Pipelined Significance Maps
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current video encoding standards, such as H.264/AVC and developing HEVC, face challenges in maximizing throughput due to the computational intensity of determining contexts for significance maps, particularly with larger transform units like 16x16 and 32x32, which leads to BAC engine stalls and inefficient pipelining.
Innovation Solution
The implementation of multi-level significance maps with modified scan orders that adjust the processing of significant-coefficient flags to avoid data dependencies, allowing for efficient pipelining by reordering the scan to include context determination at the beginning of each cycle, thereby preventing stalls and optimizing BAC engine utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a conventional scan order is used for decoding significance maps in larger transform units, then the context determination for current flags depends on neighboring flags, but this creates data dependencies that lead to BAC engine stalls and reduced throughput
Solution Approach 1:
The significance map is divided into coefficient groups, and the scan order is segmented to process certain flags (like bottom-right and upper-left corner flags) as outliers separate from their respective groups. This segmentation allows the BAC engine to process flags independently without waiting for neighboring flags, eliminating stalls while maintaining accurate context determination for each flag based on its appropriate neighbors.
Solution Approach 2:
The patent reorders the scan sequence to advance the processing of certain flags (such as upper-left corner flags of coefficient groups) before their neighboring flags are processed. This preliminary action ensures that context determination for current flags does not depend on unprocessed neighboring flags, preventing BAC engine stalls and improving throughput while maintaining decoding accuracy.
2Productivity
If the processing order is modified to advance certain flags before their neighbors, then pipelining efficiency improves and stalls are reduced, but the scan order becomes more complex
Solution Approach 1:
The significance map processing is segmented into coefficient groups with clearly defined scan orders. Within each group, flags are processed in a systematic sequence that advances certain flags (like upper-left corner flags) before their neighbors, while treating corner outliers separately. This structured segmentation makes the complex scan order manageable and implementable without excessive complexity.
3Productivity
If neighboring flags are processed after current flags, then data dependencies are avoided and throughput increases, but context determination accuracy may be compromised
Solution Approach 1:
The patent segments the significance map into coefficient groups and identifies outlier flags (bottom-right and upper-left corner flags) that can be processed independently. These outliers are separated from their respective groups and processed with adjusted scan orders that advance them before neighboring flags, eliminating data dependencies while preserving context determination accuracy by using appropriate neighboring flags for context modeling.
Solution Approach 2:
Different scan order strategies are applied to different regions of the significance map. Corner outlier flags use advanced processing before their neighbors to avoid stalls, while interior flags follow conventional scan orders that process neighbors before current flags to maintain accurate context determination. This localized quality approach optimizes throughput for outliers while preserving reliability for interior flags.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Methods of encoding and decoding for video data are described for encoding or decoding multi-level significance maps whilst 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.