Multi-core Video Decoder Stairstep Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video decoding methods face challenges in increasing processing speed without enhancing hardware, particularly in mobile environments with size, power, and memory constraints, and struggle with low data locality and inefficient parallel processing due to data dependencies in video compression standards like H.264/AVC.
Innovation Solution
A multi-core processor system processes video data using a stairstep pattern, where a control core manages processing cores to improve cache hit rates by leveraging data locality and parallel processing, reducing interprocessor complexity and enhancing memory reuse.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If video decoding is performed in raster order to satisfy data dependencies, then data dependency requirements are met, but processing speed is limited and cache hit rate is low
Solution Approach 1:
The video frame is divided into multiple independent processing units called macroblocks, which are further segmented into 4×4 luma blocks and chroma blocks. This segmentation enables parallel processing of different blocks while maintaining data dependency requirements within each block, resolving the contradiction between sequential processing needs and parallel processing speed.
Solution Approach 2:
The patent introduces a new processing dimension by organizing macroblocks into multiple rows and columns that can be processed in parallel. Instead of single-threaded raster order processing, multiple processing elements work simultaneously on different rows or columns of macroblocks, achieving both data dependency satisfaction and improved processing throughput.
2Productivity
If processing hardware speed is increased to improve video decoding performance, then processing speed improves, but device size, power consumption, and memory usage increase
Solution Approach 1:
The system uses self-service by implementing a control mechanism that automatically manages the parallel processing elements. The control element dynamically activates or deactivates processing elements based on workload requirements, allowing the system to achieve high processing speeds only when needed, thereby reducing overall power consumption in mobile devices.
Solution Approach 2:
The patent changes the processing parameter from sequential to parallel by utilizing multiple processing elements that can operate simultaneously. This parameter change allows the system to achieve higher throughput without proportionally increasing power consumption, as the parallel elements can be managed efficiently through software control rather than requiring continuously high-power hardware.
3Productivity
If multiple processing cores are used to parallelize video decoding, then processing speed improves, but interprocessor complexity and synchronization requirements increase
Solution Approach 1:
The patent introduces a control element as an intermediary that manages communication and synchronization between multiple processing elements. This intermediary handles the complexity of interprocessor coordination, allowing processing elements to work in parallel without direct complex interactions, thereby reducing overall system complexity while maintaining high processing speeds.
4Reliability
If raster order processing is used to ensure data availability, then data dependency is satisfied, but cache hit rate decreases due to poor data locality
Solution Approach 1:
The patent applies preliminary action by pre-loading or pre-positioning data in cache memory before it is needed by processing elements. The control mechanism anticipates data requirements and ensures that data with good spatial locality is already in cache, reducing cache misses and improving processing efficiency without compromising data availability.
Data Source
AI summary
An embodiment of the present invention includes a multi-core processor that processes video data. The control core controls a first processing core to process a first set of data blocks of an image frame according to a stairstep pattern. The control core detects, while the first processing core is processing the first set, that a triggering data block has been processed in the first set. The control core controls, while the first processing core is processing the first set, a second processing core to process a second set of data blocks using information from the triggering data block. By processing data blocks in the stairstep pattern, cache hit rate is improved, resulting in improved video decoder performance.


