Multi-threaded Deblock Filtering Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Video encoding and decoding processes, particularly deblock filtering, are computationally intensive, leading to inefficiencies especially in scenarios like high-definition video decoding, where existing methods do not effectively utilize multi-core processing capabilities.
Innovation Solution
The technique involves partitioning a video picture into multiple segments for deblock filtering, with operations split into multiple passes that can be performed in parallel using multiple threads, aligning segment boundaries with block boundaries and selecting patterns based on picture coding type and frame coding mode to optimize task dependencies and processing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If deblock filtering is performed using conventional single-threaded methods, then processing accuracy is maintained, but processing speed is slow and decoding efficiency is low
Solution Approach 1:
The patent divides the video picture into multiple segments (e.g., left and right halves) and performs deblock filtering on each segment independently using separate threads. This segmentation allows parallel processing while maintaining the correctness of filtering operations, thereby increasing decoding speed without sacrificing accuracy.
Solution Approach 2:
The patent introduces a temporal dimension by performing multiple passes of filtering operations in sequence, where each pass processes different aspects of the filtering. This dimensional approach enables efficient parallelization across multiple threads while maintaining processing accuracy.
2Productivity
If multi-threaded processing is implemented for deblock filtering, then processing speed increases, but task dependency management becomes more complex
Solution Approach 1:
The patent segments the filtering task into independent units that can be distributed across multiple threads. By organizing filtering operations into discrete, manageable segments with clear boundaries, the complexity of coordinating multiple threads is reduced while maintaining high processing efficiency.
Solution Approach 2:
The patent performs preliminary analysis to determine which boundaries require filtering and establishes the filtering pattern before executing the multi-threaded processing. This preliminary action simplifies the task dependency management by pre-determining the processing sequence and requirements.
3Reliability
If in-loop deblock filtering is enabled during encoding, then motion compensation quality improves, but computational intensity increases
Solution Approach 1:
The patent segments the in-loop filtering operations into independent tasks that can be executed in parallel across multiple threads. This allows the encoder to maintain high motion compensation quality through comprehensive filtering while reducing the computational burden on any single thread, effectively managing the computational intensity.
Solution Approach 2:
The patent processes filtering operations across multiple temporal passes and spatial segments simultaneously, transforming a sequential computational burden into a parallel processing approach. This dimensional transformation maintains filtering quality while distributing computational intensity across multiple processing units.
Data Source
AI summary
Multi-threaded implementations of deblock filtering improve encoding and/or decoding efficiency. For example, a video encoder or decoder partitions a video picture into multiple segments. The encoder/decoder selects between multiple different patterns for splitting operations of deblock filtering into multiple passes. The encoder/decoder organizes the deblock filtering as multiple tasks, where a given task includes the operations of one of the passes for one of the segments. The encoder/decoder then performs the tasks with multiple threads. The performance of the tasks is constrained by task dependencies which, in general, are based at least in part on which lines of the picture are in the respective segments and which deblock filtering operations are in the respective passes. The task dependencies can include a cross-pass, cross-segment dependency between a given pass of a given segment and an adjacent pass of an adjacent segment.


