GPU Motion Estimation for Faster Parallel Video Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Video encoding is computationally intensive due to the complexity of motion estimation, which typically requires significant processing power and resources, making it a bottleneck in real-time applications.

Innovation Solution

A system that utilizes both a central processing unit (CPU) and a graphics processing unit (GPU) to perform video encoding, where the GPU performs motion estimation in parallel with the CPU, leveraging its capabilities through data arrangement and the use of a depth buffer to accelerate the process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If motion estimation is performed with a large search range to capture real motion, then prediction accuracy and visual quality are improved, but computational complexity and processing time increase significantly

Engineering Contradiction:
Improvemotion estimation accuracyVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent divides the motion estimation task into multiple segments by splitting video frames into macroblocks and further into 4x4 pixel blocks. Each block is processed independently to find motion vectors, breaking down the complex full-frame motion estimation into manageable smaller units that can be processed in parallel while maintaining accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces parallel processing as a new dimension by utilizing GPU architecture with multiple processing channels. Instead of sequentially processing blocks on a single CPU core, the system distributes block processing across numerous GPU cores simultaneously, transforming the computational approach from sequential to parallel execution.

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

2Measurement precision

If motion estimation is performed with a large search range to capture real motion, then prediction accuracy and visual quality are improved, but processing speed decreases

Engineering Contradiction:
Improvemotion estimation accuracyVSAvoidencoding speed
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The patent segments the video frame into multiple 4x4 pixel blocks that can be processed independently and simultaneously. This segmentation enables parallel processing where multiple blocks are evaluated in parallel across different GPU channels, maintaining comprehensive search ranges while achieving faster overall processing through concurrent execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates multiple copies of processing logic across GPU channels, where each channel independently processes different 4x4 blocks of the same frame or different frames. This copying of processing units allows simultaneous execution of motion estimation across multiple blocks without sequential overhead.

Inventive Principle:
Principle #26Copying

3Productivity

If CPU is used for video encoding, then encoding can be performed, but processing power is insufficient and encoding speed is slow

Engineering Contradiction:
Improveencoding throughputVSAvoidprocessing power
Core Design Contradiction:
ProductivityVSPower

Solution Approach 1:

The patent makes the GPU universally capable of performing motion estimation tasks traditionally handled by CPU. By programming the GPU to execute motion estimation algorithms alongside its graphics processing functions, the system leverages the GPU's superior parallel processing power for video encoding while the CPU handles control and coordination, creating a multi-functional processing architecture.

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

Solution Approach 2:

The patent substitutes the CPU's sequential processing mechanism with the GPU's parallel processing mechanism for motion estimation. The GPU's architecture with hundreds of smaller processing cores replaces the CPU's fewer high-performance cores, fundamentally changing the processing paradigm from sequential to parallel execution for motion estimation tasks.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Speed

If GPU is introduced for parallel processing, then encoding speed is accelerated, but system complexity increases

Engineering Contradiction:
Improveencoding speedVSAvoidsystem architecture complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the encoding workflow into distinct phases: CPU handles frame preparation and control logic, while GPU handles intensive motion estimation computations. This segmentation of responsibilities between CPU and GPU simplifies the overall system architecture by giving each processor a specialized role rather than requiring complex coordination for all tasks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a control mechanism that acts as an intermediary between CPU and GPU, managing data transfer and task coordination. This intermediary layer simplifies the integration complexity by providing standardized interfaces and protocols for communication between the two processing units, abstracting the underlying complexity of parallel processing coordination.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7558428B2Accelerated video encoding using a graphics processing unit
Publication Date: 2009.07.07 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7558428B2 patent drawing
  • US7558428B2 patent drawing
  • US7558428B2 patent drawing

AI summary

The systems and methods described herein are directed at accelerating video encoding using a graphics processing unit. In one aspect, a video encoding system uses both a central processing unit (CPU) and a graphics processing unit (GPU) to perform video encoding. The system implements a technique that enables the GPU to perform motion estimation for video encoding. The technique allows the GPU to perform a motion estimation process in parallel with the video encoding process performed by the CPU. The performance of video encoding using such a system is greatly accelerated as compared to encoding using just the CPU.In another aspect, data related to motion estimation is arranged and provided to the GPU in a way that utilizes the capabilities of the GPU. Data about video frames may be collocated to enable multiple channels of the GPU to process tasks in parallel. The depth buffer of the GPU may be used to consolidate repeated calculations and searching tasks during the motion estimation process. The use of frame collocation and depth buffer enables the GPU to be better utilized and to further accelerate video encoding.