GPU Keyframe Video Codec Parallel Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedecoding correctnessVSAvoiddecoding speed
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improveformat compatibilityVSAvoidparallel processing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #3Local quality

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.

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

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

Engineering Contradiction:
Improvedecoding accuracyVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvecodec interoperabilityVSAvoidparallel decoding performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

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

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10523970B2Keyframe-based video codec designed for GPU decoding
Publication Date: 2019.12.31 IDOMOO LTD
  • US10523970B2 patent drawing
  • US10523970B2 patent drawing
  • US10523970B2 patent drawing

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.