Parallel Sub-block Video Processing via Sequence Alteration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional video processing systems, such as those using the H.264 standard, face inefficiencies in processing macroblocks and sub-blocks due to serial processing methods, which limit video quality and encoding speed.
Innovation Solution
Implementing a system that enables parallel processing of sub-blocks within a macroblock using multiple engines and a controller to facilitate pipelined or parallel processing, allowing for improved efficiency and video quality by processing sub-blocks in altered sequences that optimize dependencies between them.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If serial processing methods are used for macroblocks and sub-blocks, then processing dependencies are simplified, but video encoding speed and system efficiency deteriorate
Solution Approach 1:
The patent divides the macroblock into multiple sub-blocks (e.g., 16 sub-blocks of 4x4 pixels each) that can be processed independently or in parallel groups. This segmentation allows the processing system to handle multiple sub-blocks simultaneously using multiple engines, thereby increasing encoding speed while managing complexity through structured organization of processing tasks
Solution Approach 2:
The patent implements dynamic processing sequences where the processing order of sub-blocks can be altered based on dependency requirements. Different processing sequences are defined that allow certain sub-blocks to be processed in parallel when their data dependencies are satisfied, while maintaining proper sequencing when dependencies exist. This dynamic approach enables maximum parallelization without violating processing constraints
2Productivity
If multiple slices are used to process video frames, then processing load is distributed, but system efficiency and processing time deteriorate
Solution Approach 1:
The patent performs preliminary analysis of sub-block dependencies before processing begins, identifying which sub-blocks can be processed in parallel and which require sequential processing. This preliminary action allows the system to optimize the processing sequence in advance, enabling maximum parallel execution without violating dependency constraints, thereby reducing overall processing time and improving frame processing efficiency
Solution Approach 2:
The patent implements continuous processing pipelines where multiple engines work simultaneously on different sub-blocks without idle time. By carefully orchestrating the processing sequences and ensuring that data dependencies are satisfied before each processing step, the system maintains continuous useful action across all processing engines, eliminating wasted time and maximizing throughput
Data Source
Figure 1
Figure 2a
Figure 2b
AI summary
A system for processing sub-blocks of a macroblock of a video frame. In an example embodiment, the system includes a first module that is adapted to process each sub-block of the macroblock, wherein each sub-block is associated with a predetermined position in a first sequence. The processing of certain sub-blocks in the first sequence requires results of processing of one or more previously processed sub-blocks in the first sequence. A controller selectively enables the first module to process each sub-block of a second sequence that is altered from the first sequence so that the first module implements parallel or pipelined processing of certain sub-blocks of the macroblock. In a more specific embodiment each sub-block in the first sequence of sub-blocks is consecutively numbered 0-15 according to H.264 standards.