Parallel GOP Frame Encoding for Multi-Core Video Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current video compression methods using multi-core architectures face inefficiencies due to high computational demands, especially in handling HD resolutions, and existing parallel processing techniques like multi-slice approaches suffer from dependency issues and workload imbalance, leading to decreased video quality and increased communication loads.

Innovation Solution

A method that processes groups of pictures (GOPs) at the frame level by dividing them into groups based on the number of parallel processor units, assigning ranks to frames, comparing encoding command arguments, and transferring frames of equal rank for parallel encoding, resulting in a single-command multiple-data approach that reduces communication load and improves compression efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a single-slice approach is used for parallel processing, then dependency issues around block boundaries occur, but compression efficiency is maintained

Engineering Contradiction:
Improvecorrectness of parallel processingVSAvoidcompression efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The picture is divided into multiple slices horizontally, with each slice processed independently by separate threads. This segmentation allows parallel processing while maintaining correctness within each slice, though boundary dependencies remain a challenge

Inventive Principle:
Principle #1Segmentation

2Productivity

If a multiple-slice approach is used for parallel processing, then parallel processing capability is improved, but video quality decreases at slice boundaries and workload imbalance occurs

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

Solution Approach 1:

The video picture is divided into multiple horizontal slices that can be processed in parallel. Each slice is an independent encoding unit that can be processed by separate threads simultaneously, improving parallel processing capability

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different quality handling is applied at slice boundaries versus internal regions. Boundary blocks use restricted motion search and simplified modes to maintain acceptable quality while reducing computational complexity at critical transition zones

Inventive Principle:
Principle #3Local quality

3Productivity

If multiple-slice encoding is used, then parallel processing is enabled, but communication load between CPU and encoder increases due to result concatenation

Engineering Contradiction:
Improveparallel processing throughputVSAvoidcommunication load
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Results from multiple slices are pre-buffered in local memory before final concatenation. This preliminary organization of data reduces the communication burden on the CPU by minimizing the frequency and volume of data transfers needed for result assembly

Inventive Principle:
Principle #10Preliminary action

4Manufacturing precision

If HD resolution processing is implemented, then video quality is improved, but computational requirements increase beyond current uniprocessor capabilities

Engineering Contradiction:
Improvevideo qualityVSAvoidcomputational requirements
Core Design Contradiction:
Manufacturing precisionVSPower

Solution Approach 1:

The high-resolution video processing task is divided into multiple slices that can be processed in parallel across multiple CPU cores or GPU threads, distributing the computational burden while maintaining HD quality output

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The encoding system dynamically adjusts processing parameters such as motion search range and transform block sizes based on content complexity and available computational resources, allowing HD processing to adapt to varying power and performance constraints

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9148669B2High performance AVC encoder on a multi-core platform
Publication Date: 2015.09.29 SONY GROUP CORP
  • US9148669B2 patent drawing
  • US9148669B2 patent drawing
  • US9148669B2 patent drawing

AI summary

A method and system for encoding a digital video signal using a plurality of parallel processors. A digital picture is received that is composed of one or more GOPs. The CPU then determines the number of GOPs that need to be encoded and divides them into groups. The number of GOPs in a group may equal the number of parallel processors in the multi-core platform available to encode. The CPU transfers in a single batch to the multi-core platform, a frame of equal rank from each GOP contained in the first group. The multi-core platform encodes the frames in parallel, rearranges the encoded byte stream chunk into normal display order sequence and stores the encoded byte stream. The process may repeat until all the GOPs in the first group have been encoded. Upon completion the multi-core platform outputs the encoded byte stream in normal display order sequence.