GPU Shader Video Decoding for Low-Latency Rendering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video playback tools face computational complexity challenges in decoding and rendering high-quality, high-bit rate video and low-latency video, particularly in scenarios like remote desktop conferencing, due to the computationally intensive nature of operations such as inverse frequency transforms and motion compensation.
Innovation Solution
The implementation of a video playback tool that offloads certain decoding and rendering operations to a graphics processing unit (GPU), using graphics primitives and shader routines to aggregate and transfer texture values, perform inverse frequency transforms, and reconstruct sample values in parallel, thereby reducing latency and improving performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If video decoding and rendering operations are performed using CPU, then the system has simpler hardware configuration, but the decoding and rendering speed is slow and cannot handle high-quality, high-bit rate video or low-latency video
Solution Approach 1:
The patent divides the video decoding and rendering workload into separate segments handled by different processors. The CPU handles control functions and simpler operations, while the GPU handles computationally intensive decoding and rendering operations. This segmentation allows each processor to specialize in specific tasks, improving overall speed without requiring a complete hardware overhaul.
Solution Approach 2:
The patent introduces an intermediary mechanism (graphics primitive representation and shader routines) that bridges the CPU and GPU. The CPU prepares graphics primitives containing texture values and parameters, which are then processed by GPU shader routines. This intermediary approach enables efficient data transfer and processing coordination between the two processors.
2Loss of time
If computationally intensive operations are performed on CPU, then the system architecture is simpler, but the processing time increases and latency is high
Solution Approach 1:
The patent replaces the traditional CPU-based sequential processing mechanism with a GPU-based parallel processing mechanism. Instead of the CPU handling all computationally intensive operations sequentially, the system uses GPU shader routines that can process multiple video blocks simultaneously, dramatically reducing latency and improving real-time performance.
Solution Approach 2:
The patent implements preliminary action by pre-processing video data into graphics primitives on the CPU before transferring to the GPU. Texture values, block parameters, and other decoding data are organized into an efficient format in advance, allowing the GPU to immediately begin parallel processing without additional preparation overhead, thus reducing overall latency.
3Productivity
If GPU is used for video decoding and rendering, then the decoding and rendering speed increases, but the system requires more complex hardware and software integration
Solution Approach 1:
The patent makes the GPU shader routines multi-functional by designing them to handle various video decoding operations (inverse frequency transforms, motion compensation, deblocking filtering, color conversion, etc.) within a single unified framework. This universality allows the same GPU hardware and software architecture to efficiently process different types of video data and operations, reducing the need for specialized hardware for each function.
Solution Approach 2:
The patent utilizes parameter changes by representing video blocks as graphics primitives with configurable parameters (texture values, block size, display index, packed index). By changing these parameters, the same graphics pipeline and shader routines can efficiently handle different block types (intra-coded, inter-coded), different resolutions, and different video formats without requiring separate processing paths.
4Ease of manufacture
If traditional video decoding methods are used, then the implementation is straightforward on CPU, but the computational complexity of operations like inverse frequency transforms and motion compensation becomes problematic
Solution Approach 1:
The patent introduces graphics primitives as an intermediary data structure that simplifies the interface between CPU and GPU. Instead of directly transferring raw video data and complex decoding parameters, the system uses standardized graphics primitives containing texture values and block parameters. This intermediary representation simplifies the implementation by providing a consistent data format that works across different GPU architectures and shader versions.
Data Source
AI summary
Innovations in video decoding and rendering operations in a graphics pipeline, in which at least some of the operations are performed using a graphics processing unit (“GPU”), are described. For example, a video playback tool aggregates texture values for intra-coded blocks of a picture in central processing unit (“CPU”) memory, then transfers the texture values for the intra-coded blocks from the CPU memory to GPU memory. The video playback tool performs operations to decode the encoded data and reconstruct the picture. For a given block (e.g., of a macroblock, coding unit) of the picture, a graphics primitive represents texture values for the given block as a point for processing by the GPU. The video playback tool uses one or more shader routines, executable by the GPU, to transfer texture values to a display buffer. In some cases, the video playback tool also performs decoding operations with the shader routines.


