Parallel MPEG-4 AVC Deblocking Filter Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The MPEG-4 AVC deblocking filter requires sequential processing of macroblocks, leading to increased time for encoding and decoding video frames, which is inefficient and can result in noticeable seams at block boundaries due to accumulated errors.
Innovation Solution
Implementing a deblocking filter using an array of software-configurable general-purpose parallel processors to process multiple macroblock-size areas simultaneously, utilizing separate storage buffers and a sequence of stages to filter pixel values across both vertical and horizontal edges, allowing for parallel processing of rows or columns of pixels.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If sequential processing of macroblocks is used to implement the deblocking filter, then processing simplicity is maintained, but processing time increases significantly
Solution Approach 1:
The video frame is divided into multiple independent macroblock regions that can be processed in parallel. Each processor in the array handles a specific macroblock or region, allowing simultaneous filtering operations across different parts of the frame, thereby increasing processing throughput without requiring complex inter-processor coordination
Solution Approach 2:
The patent transitions from single-processor sequential processing to a two-dimensional array of processors, adding spatial parallelism. Multiple processors are arranged in a grid configuration where each processor handles specific pixel or macroblock computations, enabling simultaneous execution of filtering operations across the entire frame
2Productivity
If parallel processing is used to reduce filtering time, then processing efficiency improves, but ensuring consistent filtering results becomes more difficult
Solution Approach 1:
The patent incorporates feedback mechanisms where filtering results from one macroblock region are used as inputs for adjacent regions. This ensures that parallel processing maintains the same sequential dependency relationships as the original sequential algorithm, guaranteeing consistent results while achieving parallel speedup through careful scheduling of processing stages
3Loss of time
If more processors are allocated to filter multiple macroblock areas simultaneously, then processing time decreases, but memory buffer requirements increase
Solution Approach 1:
The patent pre-loads pixel data into buffer memory before parallel processing begins. By organizing the input data in advance according to the parallel processing requirements and arranging it in scanline order with proper padding, the system minimizes the need for large random-access buffers during processing, reducing overall memory requirements while maintaining high processing speed
Data Source
AI summary
A method for implementing a deblocking filter including the steps of (A) reading pixel values for a plurality of macroblocks of an unfiltered video frame from an input buffer into a working buffer, where the working buffer has dimensions determined by a predefined input region of the deblocking filter and a portion of the working buffer forms a filter output region of the deblocking filter, (B) sequentially processing the pixel values in the working buffer through a plurality of filter processing stages using an array of software-configurable general purpose parallel processors, where each of the plurality of filter processing stages operates on a respective set of the pixel values in the working buffer, and (C) writing filtered pixel values from the filter output region of the working buffer to an output buffer after the plurality of filter processing stages are completed.


