Video Coding De-Blocking Filter With Parallel Edge Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
De-blocking filters in video coding standards like HEVC are computationally intensive, increasing decoder/encoder complexity and requiring improved methods to reduce bit rate.
Innovation Solution
A de-blocking filter that estimates a boundary strength index at vertical and horizontal edges of video blocks, filtering vertical edges before horizontal edges, using a pipeline architecture with parallel processing to reduce computational load.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If de-blocking filters are applied to remove blocking artifacts in video coding, then video quality is improved, but processing complexity increases
Solution Approach 1:
The de-blocking filter is divided into multiple independent filter engines (first filter engine, second filter engine, third filter engine) that process different blocks simultaneously. Each filter engine operates on a separate block of video data, enabling parallel processing that maintains video quality while distributing computational complexity across multiple units.
Solution Approach 2:
The filter controller pre-assigns blocks to different filter engines based on block characteristics and boundary strength indices before filtering begins. This preliminary assignment optimizes the processing pipeline by ensuring that blocks requiring different filtering strengths are handled by appropriate engines, reducing overall processing complexity.
2Manufacturing precision
If de-blocking filters process all blocks with high filtering strength, then blocking artifacts are removed, but processing time increases
Solution Approach 1:
The filter controller calculates boundary strength indices for each block and assigns filtering strength locally based on actual block characteristics. Blocks with low boundary strength indices (indicating smooth transitions) are assigned to filter engines that apply weaker filtering, while only blocks with high boundary strength indices receive strong filtering. This local adaptation removes blocking artifacts where needed while minimizing processing time for blocks that don't require intensive filtering.
Solution Approach 2:
The system dynamically adjusts filtering parameters (filtering strength, kernel size) based on boundary strength indices and block types. By changing these parameters adaptively rather than applying uniform strong filtering to all blocks, the system effectively removes blocking artifacts while reducing overall processing time.
3Productivity
If multiple filter engines process blocks in parallel, then processing speed increases, but device complexity increases
Solution Approach 1:
Multiple filter engines are designed with identical, standardized architectures that can handle different block types (luma, chroma, intra-prediction, inter-prediction) through a unified filtering framework. This universality allows parallel processing to increase speed while limiting complexity growth, as each engine is a replicated, predictable unit rather than a uniquely complex component.
Solution Approach 2:
The filter controller acts as an intermediary that manages the parallel filter engines, assigning blocks to appropriate engines and coordinating their operation. This centralized control simplifies the complexity of managing multiple parallel processors by providing a single point of decision-making that routes work efficiently without requiring complex inter-engine communication.
4Measurement precision
If boundary strength indices are calculated for all block edges, then filtering accuracy improves, but computational load increases
Solution Approach 1:
The filter controller calculates boundary strength indices selectively for only those block edges that require filtering, rather than computing indices for all possible edges in all blocks. By performing partial action (calculating indices only where needed based on block assignment and edge characteristics), the system maintains filtering accuracy at block boundaries while reducing the overall computational load of index calculation.
Data Source
AI summary
A method of de-blocking filtering a processed video is provided. The processed video includes a plurality of blocks and each block includes a plurality of sub-blocks. A current block of the plurality of blocks includes vertical edges and horizontal edges. The processed video further includes a set of control parameters and reconstructed pixels corresponding to the current block. A boundary strength index is estimated at the vertical edges and at the horizontal edges of the current block. The set of control parameters, the reconstructed pixels corresponding to the current block and partially filtered pixels corresponding to a set of adjacent sub-blocks are loaded. The vertical edges and the horizontal edges of the current block are filtered based on the boundary strength index and the set of control parameters such that a vertical edge of the current block is filtered before filtering at least one horizontal edge of the current block.


