GPU-Accelerated Video Transcoder Using Compute Shaders
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Productivity
If CPU resources are used for transcoding, then transcoding function is achieved, but processing overhead increases substantially
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.
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.
2Productivity
If GPU bandwidth is utilized for transcoding, then processing throughput improves, but device complexity increases
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.
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.
3Productivity
If multiple GPU cores are used for decoding and encoding, then transcoding efficiency enhances, but device complexity increases
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.
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.
Data Source
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.


