Parallel Video Encoding with Estimated Quantization Parameters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing video encoding technologies face inefficiencies in parallel processing of video frames across multiple video processing engines, particularly in maintaining compliance with standards like HEVC while achieving concurrent encoding of Coding Tree Units (CTUs) without relying on raster-order encoding.

Innovation Solution

The system employs multiple video processing engines to estimate and set Quantization Parameters (QPs) for rows of CTUs, allowing concurrent encoding by designating specific CTUs as non-skip blocks to facilitate parallel processing and maintain format compliance, such as HEVC standards.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple video processing engines encode different rows of CTUs concurrently, then encoding productivity is improved, but compliance with HEVC standards becomes difficult to maintain

Engineering Contradiction:
Improveencoding speedVSAvoidstandard compliance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The video frame is divided into multiple rows of CTUs, with each row assigned to a different video processing engine for concurrent encoding. This segmentation enables parallel processing while maintaining standard compliance through careful management of inter-row dependencies.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Estimated QP values for subsequent rows are determined in advance before actual encoding begins. This preliminary action allows processing engines to be pre-configured with necessary parameters, enabling concurrent encoding without violating HEVC standards that require QP information to be available before encoding.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If QP estimation is performed for each row sequentially, then standard compliance is maintained, but processing time increases

Engineering Contradiction:
Improvestandard complianceVSAvoidencoding delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

QP estimation for multiple rows is performed in advance of actual encoding, allowing subsequent concurrent encoding to proceed without sequential delays. The estimated QP values are stored and made available to processing engines before encoding begins.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Estimated QP values from previously processed rows are copied and used as running QP values for subsequent rows. This copying mechanism eliminates the need for sequential QP estimation while maintaining the statistical accuracy required by HEVC standards.

Inventive Principle:
Principle #26Copying

3Reliability

If raster-order encoding is used, then standard compliance is ensured, but parallel processing efficiency is reduced

Engineering Contradiction:
Improvestandard complianceVSAvoidcore utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The frame is segmented into multiple CTU rows that can be processed in parallel by different engines. This segmentation breaks the sequential raster-order constraint while maintaining compliance through proper handling of QP dependencies between rows.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of processing CTUs in traditional raster-order (left-to-right, top-to-bottom), the system processes entire rows concurrently in a dimension parallel to the row index. This dimensional change enables full utilization of multiple processing cores while maintaining standard compliance.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS11792398B2Video encoding
Publication Date: 2023.10.17 TEXAS INSTRUMENTS INC
  • US11792398B2 patent drawing
  • US11792398B2 patent drawing
  • US11792398B2 patent drawing

AI summary

A system can include a video processing engine to determine an estimated Quantization Parameter (QP) for a row of Coding Tree Units (CTUs) in a frame of a video. The processing engine can encode the row of CTUs in the frame of the video. A CTU in the row of CTUs can be encoded with a QP equal to the estimated QP. The system includes another video processing engine to determine an estimated QP for another row of CTUs of the frame of the video. The other processing engine can set a running QP to the estimated QP for the row of CTUs prior to the given video processor encoding a last CTU in the given row of CTUs. The other processing engine can further encode the other row of CTUs. CTUs encoded by the video processing engine and the other video processing engine can be stored in memory.