Parallel Video Encoding with Local and Global Symcoders

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional video encoding pipelines are inefficient due to sequential arithmetic encoding, which limits parallel processing and results in inadequate compression performance and visual quality, especially for high-resolution video frames.

Innovation Solution

A multi-engine system with local binary arithmetic coding engines and a final/global symcoder allows for parallel processing of all stages of the encoding pipeline, providing immediate feedback from local engines and asynchronous global feedback for rate control, enabling faster encoding without degrading visual quality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sequential arithmetic encoding is used in conventional video encoding pipelines, then the encoding process is simpler to implement, but the processing speed is significantly reduced and productivity is limited

Engineering Contradiction:
Improveencoding speedVSAvoidencoding pipeline complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The video frame is divided into multiple regions, with each region processed by a separate encoding engine performing arithmetic encoding independently. This segmentation allows parallel processing of different regions simultaneously, dramatically improving encoding speed while maintaining the arithmetic encoding methodology.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple local arithmetic encoding engines processing different regions are merged with a final arithmetic encoding stage that combines their outputs. This merging approach enables parallel processing across regions while maintaining the sequential nature of arithmetic encoding within each region, achieving both speed and correctness.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If parallel processing is implemented across all encoding stages, then processing speed improves, but maintaining context-dependent arithmetic encoding becomes more difficult

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidcontext parameter management difficulty
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The frame is segmented into multiple regions, each with its own local arithmetic encoding engine that maintains independent context parameters. This allows parallel processing while preserving the context-dependent nature of arithmetic encoding within each region, as each engine operates independently with its own context state.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A final arithmetic encoding stage acts as an intermediary that combines the outputs from multiple local encoding engines. This mediator handles the integration of parallel processing results while maintaining the overall context model, allowing parallel execution without losing the context-dependent encoding benefits.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If a single arithmetic encoding engine is used, then context adaptation is easier to manage, but the encoding process becomes a bottleneck limiting overall system performance

Engineering Contradiction:
Improveencoding throughputVSAvoidnumber of encoding engines
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The single arithmetic encoding engine is segmented into multiple local engines, each handling a specific region of the frame. This segmentation removes the bottleneck by enabling parallel processing across regions while maintaining manageable complexity through regional division of labor.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple local arithmetic encoding engines are merged with a final encoding engine that combines their outputs. This merging structure increases throughput by utilizing multiple parallel engines while keeping each individual engine relatively simple, distributing the overall complexity across multiple components.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11134256B1Systems and methods for efficient parallelized video encoding
Publication Date: 2021.09.28 XILINX INC
  • US11134256B1 patent drawing
  • US11134256B1 patent drawing
  • US11134256B1 patent drawing

AI summary

Methods and systems for parallelized encoding of video are disclosed. According to one embodiment, a video encoder comprises a plurality of encoding engines. Each encoding engine is configured to receive a respective designated region of a video frame and produce respective quantized coefficients, the respective region having one or more unencoded frame blocks. Each encoding engine has a local symcoder for performing entropy-based encoding of the respective quantized coefficients. The video encoder has a rate control module, in communication with each encoding engine, for receiving from the respective local symcoder of each encoding engine a respective region-level bit count. The video encoder has a central buffer, in communication with each encoding engine, for receiving from each encoding engine the respective quantized coefficients. The video encoder has a final symcoder, in communication with the central buffer and the rate control module, wherein the final symcoder performs further entropy-based encoding of the respective quantized coefficients received in the central buffer, and transmits to the rate control module a frame-level bit count.