GPU Keyframe Video Codec Parallel Decoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video and image codecs face challenges in parallel decoding due to the need for sequential processing of macro-blocks, which limits efficiency when using a graphics processing unit (GPU), especially for formats like YUV420 where luma and chroma channels have different pixel group sizes.
Innovation Solution
A method is introduced that organizes bit stream data into sub-blocks of consistent size across all planes, using a Huffman tree algorithm for encoding and decoding, and employs a novel file structure with an entry table for GPU-based parallel processing, allowing for efficient decoding without additional CPU steps.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If macro-blocks are decoded sequentially to maintain decoding accuracy, then decoding correctness is ensured, but decoding speed and parallel processing efficiency deteriorate
Solution Approach 1:
The patent divides the video stream into independent keyframe segments that can be decoded in parallel. Each keyframe is treated as an independent unit with self-contained macro-blocks, eliminating the sequential dependency between frames. This segmentation allows multiple keyframes to be processed simultaneously on GPU cores while maintaining decoding accuracy within each segment.
Solution Approach 2:
The patent performs preliminary organization of bitstream data into a GPU-friendly format during encoding, pre-calculating and storing macro-block data in a structure that enables direct parallel access during decoding. This preliminary preparation eliminates the need for sequential processing steps during decoding, allowing all macro-blocks to be processed in parallel while ensuring correctness through the pre-validated data structure.
2Adaptability or versatility
If different pixel group sizes are used for luma and chroma channels to maintain format compatibility, then YUV420 format compliance is achieved, but GPU parallel processing efficiency deteriorates
Solution Approach 1:
The patent applies local quality by organizing luma and chroma macro-blocks into a unified data structure where each channel type maintains its appropriate pixel group size (8x8 for luma, 4x4 for chroma) while being arranged in a contiguous memory layout that enables uniform parallel processing. This local adaptation to channel-specific requirements combined with global uniform processing structure resolves the contradiction between format compliance and GPU efficiency.
Solution Approach 2:
The patent transforms the traditional sequential channel-processing approach into a parallel dimension by organizing all macro-blocks from different channels into a unified 2D grid structure that can be simultaneously accessed by multiple GPU threads. This dimensional reorganization allows the GPU to process multiple channels in parallel while respecting the different pixel group sizes through thread-specific offsets and strides.
3Reliability
If complex CPU preprocessing is performed to prepare bitstream data for GPU decoding, then decoding accuracy is improved, but system complexity and processing overhead increase
Solution Approach 1:
The patent implements self-service by designing the bitstream data structure to be inherently GPU-ready, eliminating the need for complex CPU preprocessing. The macro-blocks are organized in a contiguous memory layout with embedded metadata that enables GPU threads to directly interpret and process the data without CPU intervention. This self-describing data structure maintains decoding accuracy while removing system complexity.
Solution Approach 2:
The patent performs all necessary data organization and validation during the encoding phase, preparing the bitstream in a GPU-optimized format beforehand. This preliminary action includes arranging macro-blocks in a parallel-accessible structure and embedding necessary decoding parameters directly in the data stream, so that during playback, the GPU can decode directly without CPU preprocessing steps.
4Adaptability or versatility
If traditional bitstream organization is used to maintain compatibility with existing codecs, then codec interoperability is maintained, but GPU parallel decoding performance deteriorates
Solution Approach 1:
The patent creates a universal data structure that serves multiple functions: it maintains compatibility with the YUV420 format specification for interoperability with existing codecs, while simultaneously being optimized for GPU parallel processing. The unified macro-block structure can be interpreted by both traditional sequential decoders and parallel GPU decoders, making it multi-functional and broadly compatible.
Solution Approach 2:
The patent changes the organizational parameters of the bitstream from a CPU-optimized sequential layout to a GPU-optimized parallel layout, while maintaining the essential semantic parameters that define YUV420 format compliance. This includes changing memory layout, access patterns, and grouping structures, while preserving the fundamental color space relationships and macro-block definitions that ensure codec interoperability.
Data Source
AI summary
The present invention discloses a method and system for encoding and decoding a keyframe based video by a GPU (Graphic Processing Unit) in a manner that a frame of bit stream data is read directly by the GPU and a CPU only reads the frame from disk and activates the GPU to decod the data read from the disk. The codec effectively exploits modern GPU architecture during video keyframe decoding and minimizes the number of required GPU memory access cycles during video keyframe decoding.


