GPU Shared-Memory Frame Pipelining for Low-Lag Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional graphics processing units (GPUs) in cloud gaming systems render frames and then queue them for encoding, leading to longer processing times and potential lags due to the sequential nature of rendering and encoding processes.

Innovation Solution

Implement a simulated library in shared memory within the GPU to divert media frame generation input events, allowing frames to be queued for encoding before rendering is complete, thereby pipeline the rendering and encoding processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If frames are rendered and then queued for encoding sequentially, then the rendering and encoding processes are simple to implement, but the processing time increases and lags occur

Engineering Contradiction:
Improveframe processing speedVSAvoidprocessing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by queuing frames for encoding before the rendering process is complete. The system captures frames and queues them for encoding in advance, allowing the encoding process to start before rendering finishes. This overlapping of operations reduces the total processing time and eliminates the sequential bottleneck, directly resolving the contradiction between simple implementation and processing speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements continuity of useful action by maintaining overlapping rendering and encoding operations. While frames are being rendered, the encoding process continues on previously queued frames, ensuring that both operations are performed continuously without idle waiting time. This continuous pipeline execution maximizes productivity while minimizing the loss of time associated with sequential processing.

Inventive Principle:
Principle #20Continuity of useful action

2Ease of operation

If frames are queued for encoding after rendering is complete, then the encoding queue is simple to manage, but processing delays and lags increase

Engineering Contradiction:
Improveencoding queue managementVSAvoidframe processing delay
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system performs preliminary action by capturing and queuing frames for encoding before rendering completes. This advance queuing allows the encoding process to proceed in parallel with rendering, reducing the time delay while the queue management remains simplified through automated hardware-assisted coordination between rendering and encoding components.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If rendering and encoding are performed sequentially, then hardware resource usage is low, but processing time and lags increase

Engineering Contradiction:
Improveframe rateVSAvoidGPU resource utilization
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent implements continuity of useful action by maintaining overlapping rendering and encoding operations. The system keeps both rendering and encoding processes active simultaneously, maximizing GPU resource utilization and frame processing throughput. This continuous pipeline execution increases productivity and frame rate while efficiently managing hardware resources through coordinated parallel processing.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS20250342644A1Graphics processing architecture
Publication Date: 2025.11.06 NETFLIX INC
  • US20250342644A1 patent drawing
  • US20250342644A1 patent drawing
  • US20250342644A1 patent drawing

AI summary

The disclosed computer-implemented method includes instantiating a simulated library in a shared memory that is shared between a plurality of hardware components in a graphics processing unit (GPU), diverting media frame generation input events produced as part of a multimedia application to the simulated library in the shared memory, selecting at least one media frame for rendering, according to the media frame generation input events, from within the simulated library in the shared memory, queueing the selected media frame for encoding before rendering of the selected media frame is complete and, upon determining that the selected media frame has been rendered, encoding the rendered media frame according to the queue. Various other methods, systems, and computer-readable media are also disclosed.