HEVC Video Encoder Tile Processing Parallel Engines

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidvideo quality
Core Design Contradiction:
ProductivityVSManufacturing precision

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #3Local quality

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

Engineering Contradiction:
Improvevideo qualityVSAvoidsystem overhead
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improveloop filter dependenciesVSAvoidframe latency
Core Design Contradiction:
Object-affected harmful factorsVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9756351B2HEVC video encoder and decoder for multi-core
Publication Date: 2017.09.05 TEXAS INSTRUMENTS INC
  • US9756351B2 patent drawing
  • US9756351B2 patent drawing
  • US9756351B2 patent drawing

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.