Wavefront Parallel Processing for Video Coding Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current video compression techniques, such as H.264/AVC and HEVC, face inefficiencies due to increasing picture size, resolution, and frame rate, necessitating improved encoding and decoding methods to maintain coding efficiency while reducing latency.
Innovation Solution
The implementation of wavefront parallel processing (WPP) for video data encoding and decoding, which involves predicting palette tables for coding blocks using data from previous CTU rows and encoding/decoding in palette mode, allowing for efficient parallel processing with reduced latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If traditional sequential encoding and decoding methods are used, then coding efficiency is maintained, but latency time increases and processing speed decreases
Solution Approach 1:
The picture is divided into multiple CTU (Coding Tree Unit) rows that can be processed independently in parallel. Each CTU row contains multiple coding blocks that can be encoded and decoded simultaneously, breaking the sequential processing bottleneck while maintaining coding efficiency through proper dependency management between rows.
Solution Approach 2:
Palette tables are predicted and prepared in advance for coding blocks based on data from previous CTU rows. This preliminary preparation of prediction data enables faster processing during the actual encoding/decoding phase, reducing latency without compromising the accuracy of palette prediction.
2Productivity
If parallel processing is implemented, then processing speed and productivity improve, but device complexity increases
Solution Approach 1:
The processing system is segmented into independent processing units that handle different CTU rows simultaneously. Each processing unit maintains its own prediction state and palette table, allowing parallel execution without requiring complex inter-unit coordination, thus improving productivity while controlling system complexity.
Solution Approach 2:
Prediction data and palette tables are copied from previously processed CTU rows to current CTU rows. This copying mechanism enables parallel processing units to independently access necessary prediction information without complex shared memory management, simplifying the overall system architecture while maintaining high parallel processing capability.
3Productivity
If wavefront parallel processing is used, then latency is reduced and processing efficiency improves, but coding efficiency may degrade
Solution Approach 1:
The necessary prediction data from previous CTU rows is prepared and made available in advance before the actual encoding of current CTU rows begins. This preliminary preparation ensures that all prediction information is ready when needed, maintaining coding efficiency while enabling parallel processing to proceed without waiting for sequential data preparation.
Solution Approach 2:
Palette tables serve as intermediary data structures that bridge the dependency between sequential CTU rows and parallel processing requirements. By using these intermediary palette tables that can be independently prepared and transferred between processing units, the system maintains accurate prediction relationships while enabling wavefront parallel processing without coding efficiency loss.
Data Source
AI summary
A method and an apparatus for parallel encoding and decoding of moving picture data are provided. The method includes decoding, from a bitstream, a syntax element indicating that a picture can be decoded using wavefront parallel processing and decoding encoded data of the picture. The step of decoding encoded data of the picture includes for a first coding block of a current CTU row encoded in a palette mode, predicting a palette table for the first coding block by using palette data from a first CTU of a previous CTU row and decoding the first coding block in the palette mode using the palette table predicted for the first coding block.


