VR Video Decoding via CPU-GPU Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current virtual reality systems face challenges in providing immersive experiences due to bandwidth, storage, and processing limitations, particularly in decoding high-resolution video data at 90 frames per second for each eye, which is beyond the capabilities of traditional CPU-based decoding methods.

Innovation Solution

The proposed solution involves joint decoding by both the central processing unit (CPU) and graphics processing unit (GPU), where the CPU performs initial decoding tasks like Huffman entropy decoding and the GPU handles de-quantization and color conversion, with the video stream being encoded to facilitate parallel processing and reduce memory access latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If CPU-based decoding methods are used, then decoding can be performed with existing hardware, but decoding throughput is too slow to meet virtual reality requirements

Engineering Contradiction:
Improvedecoding throughputVSAvoiddecoding capability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent divides the decoding process into distinct segments: the CPU performs initial decoding tasks (Huffman entropy decoding, inverse run length encoding, de-zigzagging) to generate a partially-decoded bitstream, then transfers control to the GPU for parallel processing of de-quantization, inverse DCT, and color conversion. This segmentation allows each processor to handle tasks suited to its architecture, achieving the required 1166 megapixels per second throughput while maintaining decoding accuracy.

Inventive Principle:
Principle #1Segmentation

2Speed

If high-resolution video data is decoded at 90 frames per second, then immersive virtual reality experience is provided, but bandwidth and storage requirements increase significantly

Engineering Contradiction:
Improveframe rateVSAvoidvideo data volume
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent applies preliminary action by having the CPU perform initial decoding operations (Huffman entropy decoding, inverse run length encoding, de-zigzagging) before the main parallel processing stage. This preliminary processing reduces the complexity of the data that needs to be handled in subsequent stages, enabling efficient high-frame-rate playback while managing bandwidth and storage requirements.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If joint CPU and GPU decoding is implemented, then decoding throughput increases, but system complexity increases

Engineering Contradiction:
Improvedecoding throughputVSAvoidprocessing system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the decoding workload between CPU and GPU based on task characteristics. The CPU handles serial tasks that require sequential processing (entropy decoding, de-zigzagging), while the GPU handles parallel tasks that benefit from its multi-core architecture (de-quantization, inverse DCT, color conversion). This clear segmentation reduces system complexity by assigning tasks according to processor strengths rather than requiring one processor to handle all operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism where the CPU generates a partially-decoded bitstream that serves as input to the GPU. This intermediary data format allows the two processors to work together efficiently, with the CPU preparing data in a form that optimizes GPU processing, thereby managing system complexity through structured data flow between components.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10469873B2Encoding and decoding virtual reality video
Publication Date: 2019.11.05 GOOGLE LLC
  • US10469873B2 patent drawing
  • US10469873B2 patent drawing
  • US10469873B2 patent drawing

AI summary

A virtual reality or augmented reality experience of a scene may be decoded for playback for a viewer through a combination of CPU and GPU processing. A video stream may be retrieved from a data store. A first viewer position and/or orientation may be received from an input device, such as the sensor package on a head-mounted display (HMD). At a processor, the video stream may be partially decoded to generate a partially-decoded bitstream. At a graphics processor, the partially-decoded bitstream may be further decoded to generate viewpoint video of the scene from a first virtual viewpoint corresponding to the first viewer position and/or orientation. The viewpoint video may be displayed on a display device, such as screen of the HMD.