Multi-threaded Streaming Data Decoding with Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video decoding technologies face challenges in optimizing parallel processing for multi-processor platforms with more than two processor cores due to high computational intensity and memory bandwidth requirements, particularly with advanced standards like H.264/AVC, which demands efficient data dependency management and parallelization to maintain performance.
Innovation Solution
The approach involves breaking down streaming data into suitable sections and tasks that can be executed in parallel across multiple processors, utilizing data dependency frequencies to balance processing loads, and employing buffering to reduce data exchange frequency, while also considering hardware limitations and latency to optimize section sizes and task partitioning.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If video decoding is implemented on multi-processor platforms with more than two processor cores, then memory bandwidth and computing performance are improved, but optimizing parallel video decoding becomes difficult due to process complexity
Solution Approach 1:
The video picture is divided into multiple slices, and each slice is further divided into multiple macroblock groups. This hierarchical segmentation enables independent parallel processing of different regions while maintaining data dependency constraints, allowing efficient utilization of multi-processor cores without overwhelming system complexity
Solution Approach 2:
The patent introduces a two-dimensional parallel processing structure where multiple threads process multiple slices simultaneously, with each thread handling multiple macroblock groups. This dimensional expansion of parallelism allows the system to scale across multiple processor cores while maintaining manageable task complexity through structured data flow
2Speed
If data exchange frequency between processors is increased, then processing speed is improved, but memory bandwidth requirements and system complexity increase
Solution Approach 1:
Reference picture data and slice header information are pre-loaded into local buffers before decoding operations begin. This preliminary action reduces the frequency of data exchanges during the actual decoding process, allowing processors to work with locally cached data and minimizing memory bandwidth consumption while maintaining high processing speed
Data Source
AI summary
Streaming data may be decoded by dividing a process for decoding the streaming data into two or more tasks based on data dependencies between the two or more tasks. The two or more tasks may be executed in parallel on three or more processors in a way that balances a processing load of executing the two or more tasks among the three or more processors.


