Video Encoder Parallel Processing Tile Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current video encoding and decoding processes face increased computational complexity due to advanced compression algorithms, leading to slower performance and the need for accelerated methods to reduce encoding and decoding time.
Innovation Solution
The implementation of parallel processing techniques and algorithmic optimizations, such as content-dependent early termination rules and multi-pass encoding, to prune the encoding search space and optimize video encoder performance, along with the use of parallel processing approaches like wave front parallel encoding and lockstep execution to accelerate video encoding and decoding.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of substance
If advanced video compression algorithms are used to achieve higher compression ratios, then compression efficiency is improved, but computational complexity increases leading to slower encoding and decoding performance
Solution Approach 1:
The patent divides the picture into multiple tiles that can be processed independently in parallel. Each tile is further divided into coding tree units (CTUs) that can be encoded simultaneously by different processing threads, enabling parallel processing to overcome the computational complexity of advanced compression algorithms while maintaining high compression ratios
Solution Approach 2:
The patent performs preliminary classification of CTUs into different complexity groups before encoding. By analyzing CTU characteristics in advance and organizing them into processing queues, the system prepares the data structure to enable efficient parallel processing, reducing the overall encoding time despite using computationally intensive compression algorithms
2Manufacturing precision
If the encoding search space is extensively evaluated to improve encoding quality, then encoding precision is improved, but encoding time increases
Solution Approach 1:
The patent applies early termination rules that evaluate only a subset of possible encoding modes for each CTU. By using content-dependent criteria to determine when sufficient evaluation has been performed, the system achieves acceptable encoding quality without exhaustively searching the entire encoding space, thus reducing encoding time while maintaining quality
Solution Approach 2:
The patent applies different encoding strategies to different regions of the picture based on local content characteristics. Complex regions receive more thorough evaluation while simple regions use faster encoding methods, optimizing the balance between encoding quality and time by adapting the evaluation depth to local requirements
3Productivity
If parallel processing is implemented to accelerate encoding, then productivity is improved, but device complexity increases
Solution Approach 1:
The patent divides the encoding task into independent tiles and CTUs that can be processed in parallel by multiple threads. This segmentation enables productive use of multi-core processors while keeping each processing unit relatively simple, as each thread handles a discrete, self-contained portion of the image data
Solution Approach 2:
The patent creates a universal processing framework that can handle different tile configurations and CTU sizes through the same encoding logic. The parallel processing architecture uses standardized interfaces and data structures that work across different processing configurations, reducing the complexity that would otherwise arise from handling multiple specialized processing paths
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
A video encoder for encoding pictures of a video into a data stream, the picture being partitioned into an array of coding blocks, is configured to process coding blocks in a first line of the array of coding blocks by a first thread. Coding blocks in a second line of the array are processed by a second thread while processing the coding blocks of the first line of the array is still in progress, wherein processing a coding block in the second line of the array requires that reference coding blocks in the first line have been processed. Upon a specific event, processing coding blocks in the second line of the array by the second thread is interrupted and coding blocks of a third line of the array by the second thread are processed.