GPU-Accelerated Video Transcoder Using Compute Shaders

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional transcoding methods primarily rely on CPU resources, leading to substantial processing overhead due to the large size of video data, while underutilizing available GPU bandwidth.

Innovation Solution

A transcoding system that shares the workload between multiple CPU cores and one or more GPUs, utilizing a dedicated or programmable video decoder for decoding and compute shaders for scaling and encoding, combining industry-standard Microsoft DXVA methods for GPU acceleration with an intermediate scaling step.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If CPU resources are used for transcoding, then transcoding function is achieved, but processing overhead increases substantially

Engineering Contradiction:
Improvetranscoding throughputVSAvoidprocessing overhead
Core Design Contradiction:
ProductivityVSPower

Solution Approach 1:

The transcoding process is divided into distinct stages: decoding (performed by GPU hardware decoder), scaling (performed by GPU shader), and encoding (performed by GPU encoder). This segmentation allows each component to be optimized independently and enables parallel processing across multiple GPU cores, significantly reducing the processing overhead that would occur if the entire pipeline ran on CPU alone.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent replaces CPU-based software transcoding with GPU-based hardware acceleration. The GPU's parallel architecture and dedicated video processing units substitute for the sequential CPU processing, leveraging the GPU's computational strength in parallel operations to handle the substantial video data processing load with minimal CPU involvement.

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

2Productivity

If GPU bandwidth is utilized for transcoding, then processing throughput improves, but device complexity increases

Engineering Contradiction:
Improvetranscoding throughputVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The GPU is utilized for multiple functions within the transcoding pipeline: hardware decoding, scaling, and encoding operations all leverage the same GPU resource. This multi-functionality approach consolidates what would otherwise require separate dedicated hardware components into a single versatile processing unit, managing system complexity while improving throughput.

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

Solution Approach 2:

The patent introduces an intermediate scaling step using GPU shaders between decoding and encoding. This intermediary scaling operation serves as a bridge that prepares the decoded video data for efficient encoding while utilizing GPU computational resources, thereby improving overall throughput without requiring complex direct decode-to-encode pathways.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If multiple GPU cores are used for decoding and encoding, then transcoding efficiency enhances, but device complexity increases

Engineering Contradiction:
Improvetranscoding efficiencyVSAvoidGPU configuration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The transcoding pipeline is segmented into independent decoding and encoding stages that can be executed on different GPU cores simultaneously. The hardware decoder handles decoding while separate encoder cores handle encoding, enabling parallel processing that enhances efficiency without requiring a single complex monolithic system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system employs multiple GPU cores with more processing capacity than strictly minimum required, allowing for oversubscription and better load distribution. This partial/excessive resource allocation provides headroom for varying workloads and ensures efficient throughput while managing complexity through redundancy rather than precision.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8731046B2Software video transcoder with GPU acceleration
Publication Date: 2014.05.20 MAGNUSON RESEARCH LLC
  • US8731046B2 patent drawing
  • US8731046B2 patent drawing
  • US8731046B2 patent drawing

AI summary

Embodiments of the invention as described herein provide a solution to the problems of conventional methods as stated above. In the following description, various examples are given for illustration, but none are intended to be limiting. Embodiments are directed to a transcoding system that shares the workload of video transcoding through the use of multiple central processing unit (CPU) cores and/or one or more graphical processing units (GPU), including the use of two components within the GPU: a dedicated hardcoded or programmable video decoder for the decode step and compute shaders for scaling and encoding. The system combines usage of an industry standard Microsoft DXVA method for using the GPU to accelerate video decode with a GPU encoding scheme, along with an intermediate step of scaling the video.