GPU Video Decoding With Multithreaded Command Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing video decoding technologies face challenges with high computational complexity and resource consumption, particularly in decoding high-quality, high-bit rate video, which can be exacerbated by recent standards like H.264 and VC-1, and lack effective multithreading implementations that leverage GPU capabilities for parallel processing.

Innovation Solution

Implement a video decoder framework with layered data structures, picture extent discovery, a picture command queue, and task scheduling to facilitate multithreading, utilizing both CPU and GPU for asynchronous decoding operations, including intra prediction and loop filtering, and optimizing memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If video decoding is performed using traditional single-threaded CPU methods, then decoding operations can be executed sequentially with simple architecture, but decoding speed is slow and computational complexity is high

Engineering Contradiction:
Improvedecoding speedVSAvoiddecoding architecture complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The video decoding process is divided into multiple independent threads, each handling different aspects of decoding (e.g., one thread for entropy decoding, another for inverse transform, another for motion compensation). This segmentation allows parallel execution and significantly increases decoding speed while managing complexity through modular design

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from single-threaded sequential processing to multi-threaded parallel processing, adding the dimension of concurrency. By utilizing multiple CPU threads and integrating GPU acceleration, the system exploits temporal and spatial parallelism to dramatically improve decoding throughput

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

2Productivity

If GPU acceleration is implemented for video decoding, then decoding speed increases and computational burden is reduced, but synchronization complexity between CPU and GPU increases

Engineering Contradiction:
Improvedecoding throughputVSAvoidCPU-GPU synchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A command buffer is introduced as an intermediary mechanism between CPU and GPU. The CPU writes decode commands to the command buffer, which the GPU reads and executes asynchronously. This intermediary abstraction simplifies the interaction protocol and reduces synchronization complexity while enabling high-throughput decoding

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary actions by pre-processing decoding commands and preparing data in the command buffer before GPU execution. This allows the GPU to execute decoding operations asynchronously without waiting for CPU readiness, improving throughput while managing complexity through advance preparation

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If multithreading is implemented to process multiple pictures simultaneously, then decoding time is reduced, but memory resource management becomes more complex

Engineering Contradiction:
Improvedecoding timeVSAvoidmemory resource management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

Memory resources are segmented into thread-specific buffers and shared buffers, with each thread managing its own memory region. This segmentation enables simultaneous processing of multiple pictures without memory conflicts, reducing decoding time while simplifying memory management through clear ownership boundaries

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The memory management system dynamically allocates and deallocates memory regions based on the actual decoding needs of each thread. This dynamic approach allows efficient utilization of memory resources across multiple threads, reducing overall decoding time while adapting to varying memory requirements without complex static allocation schemes

Inventive Principle:
Principle #15Dynamics

4Quantity of substance

If lossy compression is applied to reduce bit rate, then storage and transmission costs decrease, but video quality deteriorates

Engineering Contradiction:
Improvebit rateVSAvoidvideo quality
Core Design Contradiction:
Quantity of substanceVSManufacturing precision

Solution Approach 1:

The system dynamically adjusts compression parameters (quantization step size, transform coefficient thresholds) based on the balance between bit rate reduction and quality preservation requirements. By changing these parameters adaptively during decoding, the system optimizes the trade-off between reduced bit rate and maintained video quality according to specific application needs

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12355968B2Video decoding implementations for a graphics processing unit
Publication Date: 2025.07.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12355968B2 patent drawing
  • US12355968B2 patent drawing
  • US12355968B2 patent drawing

AI summary

Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the areas of inverse transforms, inverse quantization, fractional interpolation, intra prediction using waves, loop filtering using waves, memory usage and/or performance-adaptive loop filtering. Innovations are also described in the areas of error handling and recovery, determination of neighbor availability for operations such as context modeling and intra prediction, CABAC decoding, computation of collocated information for direct mode macroblocks in B slices, reduction of memory consumption, implementation of trick play modes, and picture dropping for quality adjustment.