HEVC Video Encoder Tile Processing Parallel Engines
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video encoding and decoding technologies face challenges in handling loop filter dependencies across multiple video processing engines, leading to video quality degradation, latency, and increased processing overhead, especially in applications like video conferencing and gaming.
Innovation Solution
A video encoder and decoder architecture utilizing multiple video processing engines, where each engine processes a portion of the frame divided into tiles, with a shared memory for data exchange and loop filtering, allowing for efficient parallel processing without additional loop filters, thus maintaining video quality and reducing latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple video processing engines are used for parallel processing, then productivity is improved, but loop filter dependencies across slice and tile boundaries cause video quality degradation
Solution Approach 1:
The frame is divided into multiple tiles, and each video processing engine is assigned to process a specific tile. This segmentation allows parallel processing while maintaining loop filter dependencies within each tile, as each engine has full loop filtering capability for its assigned tile without needing data from other tiles.
Solution Approach 2:
Each video processing engine is equipped with complete loop filtering functionality tailored to its specific tile. This local quality approach ensures that loop filtering is performed optimally for each tile independently, maintaining video quality at tile boundaries without requiring cross-engine data exchange.
2Manufacturing precision
If a separate loop filter is used for multiple video processing engines, then video quality is maintained, but device complexity and memory overhead increase
Solution Approach 1:
Each video processing engine is designed to be self-sufficient with integrated loop filtering capability. This multi-functionality allows each engine to perform both video processing and loop filtering for its assigned tile independently, eliminating the need for a separate shared loop filter and reducing system complexity.
3Object-affected harmful factors
If multiple video processing engines process separate frames, then loop filter dependencies are avoided, but latency increases for real-time applications
Solution Approach 1:
Instead of assigning entire frames to different engines, the frame is segmented into tiles that can be processed in parallel. Each engine processes its assigned tile independently with full loop filtering, avoiding inter-engine dependencies while maintaining temporal efficiency for real-time applications.
Data Source
AI summary
The disclosure provides a video encoder. The video encoder receives a frame and divides the frame into a plurality of tiles. The video encoder includes a plurality of video processing engines communicatively coupled with each other. Each video processing engine receives a tile of the plurality of tiles. A height of each tile is equal to a height of the frame and each tile comprises a plurality of rows. The plurality of video processing engines includes a first and a second video processing engine. The second video processing engine being initiated after the first video processing engines processes M rows of the plurality of rows of the tile, where M is an integer.


