Video Decoder Parallel QP Prediction Horizontal Shift
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video encoding and decoding technologies face challenges in parallel processing due to dependencies between blocks, particularly in computing quantization parameter (QP) prediction values, which leads to bottlenecks and increased buffer sizes, hindering efficient parallel block line processing.
Innovation Solution
A video decoder and encoder configuration that allows parallel computation of QP prediction values by shifting the horizontal position of processing blocks between block lines, enabling each block line to process independently and utilize previously decoded blocks for QP prediction, thus eliminating sequential processing and enhancing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If parallel block line processing is implemented, then processing speed is improved, but buffer size increases due to storage requirements for parallel processing results
Solution Approach 1:
The patent applies preliminary action by pre-calculating and storing QP prediction values for blocks in the second block line before actual decoding. The QP prediction values are computed in advance using prediction formulas (e.g., QP prediction value of current block = QP value of upper block or QP value of upper-right block) and stored in a buffer, allowing the parallel processing units to immediately use these pre-prepared values without waiting for sequential QP calculation, thus enabling faster parallel processing while managing buffer usage efficiently.
2Stability of the object's composition
If QP prediction values are computed sequentially in raster order, then processing order is maintained, but parallel processing efficiency is reduced due to dependency relationships
Solution Approach 1:
The patent applies segmentation by dividing the image into multiple block lines and further segmenting each block line into blocks that can be processed independently. By shifting the horizontal position of processing blocks between block lines, the patent creates independent processing segments that eliminate dependency relationships between parallel processing units. This allows different processing units to work on different blocks simultaneously without interfering with each other's QP prediction calculations, thus enabling efficient parallel processing while maintaining correct processing order through the shifted horizontal positioning strategy.
3Productivity
If horizontal position of processing blocks is shifted between block lines, then parallel processing is enabled, but complexity of the processing system increases
Solution Approach 1:
The patent applies parameter changes by modifying the horizontal position parameter of processing blocks between different block lines. Specifically, blocks in the second block line are shifted by a predetermined number of horizontal positions relative to blocks in the first block line. This parameter change (horizontal position shift) transforms the processing layout to eliminate dependencies, enabling parallel processing. The change is implemented through simple index calculations and buffer address mappings, avoiding complex system architecture modifications.
Data Source
Figure 1
Figure 2
Figure 3A
AI summary
A video decoder decoding an encoded stream includes a parallel entropy decoding part to entropy decode the stream of blocks in block lines in parallel, a parallel QP prediction part to compute prediction values of the blocks in the block lines in parallel, and a parallel decoding processing part to generate decoded pixels of the blocks in the block lines in parallel, the decoded pixel being obtained utilizing data decoded by the parallel entropy decoding part and the prediction value. When performing computing processing in parallel per unit of N block lines, the processing is performed on a processing block in a (K - 1)th block line preceding a processing block in a Kth block line by at least one block in a horizontal position to compute the prediction value of the processing block by referring to a block already processed corresponding to the processing block.