GPU-Based Peer-to-Peer Video Streaming Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current streaming technologies often result in perceptible lag or latency, especially when streaming video or games, due to network and hardware limitations, which can exceed 16.67 ms and interfere with the user's experience.
Innovation Solution
The implementation of low-latency game or video streaming technology using a Desktop Duplication API to capture frames directly from video memory, hardware encoding on the GPU with H.264 or H.265 codecs, and a reliable UDP networking protocol to minimize latency, along with peer-to-peer connections and NAT traversal for efficient data transmission.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If traditional streaming technology is used, then video can be transmitted over the network, but perceptible lag or latency occurs that interferes with user experience
Solution Approach 1:
The patent segments the video streaming process into distinct GPU-based processing stages: video capture from frame buffer, hardware encoding in GPU video encoder, packetization in GPU memory, and direct network transmission. This segmentation eliminates CPU involvement and system memory transfers, reducing latency to below 16.67ms per frame at 60fps.
Solution Approach 2:
The patent replaces the traditional CPU-based video processing mechanism with a GPU-based parallel processing system. The GPU's video capture unit, video encoder, and packetization engine work in parallel pipelines, substituting the sequential CPU processing model and achieving lower latency through concurrent execution of multiple processing stages.
2Manufacturing precision
If more hardware operations are performed to capture, compress, and transmit video frames, then video quality improves, but hardware latency increases
Solution Approach 1:
The patent implements continuous video frame processing through GPU parallel pipelines where video capture, encoding, and packetization occur in uninterrupted sequential stages. Each frame flows continuously through the GPU's video capture unit to video encoder to packetization engine without idle transitions or CPU intervention, maintaining both high quality and low latency.
Solution Approach 2:
The patent performs preliminary video frame capture and encoding operations in the GPU before network transmission is required. The video capture unit pre-captures frames from the frame buffer, and the video encoder pre-compresses them using H.264/H.265 codecs, so that when network transmission is needed, the video data is already prepared and queued in GPU memory, reducing transmission latency.
3Loss of time
If video frames are transmitted with high frame rates to reduce latency, then responsiveness improves, but network bandwidth requirements increase
Solution Approach 1:
The patent dynamically adjusts video encoding parameters including bitrate, resolution, and frame rate based on network conditions. The system can switch between H.264 and H.265 codecs, adjust quantization parameters, and modify frame rates to optimize the balance between responsiveness and network bandwidth consumption, allowing high frame rates when bandwidth is available and reducing them when it is not.
Data Source
AI summary
Peer-to-peer video streaming software that takes video from a host's Graphical Processing Unit (GPU), moves it to the encoder, manages the color conversions, moves the video into the networking software, and in turn manages the video on a client. This software also handles the inputs from the client and tells the host how to react to the client's inputs. In executing the video streaming, the host broadcasts and renders the video that is or will be streamed. It encodes the video frame with a hardware encoder that is part of the GPU to eliminate latency associated with transferring frames to the central processing unit (CPU). The host transmits compressed video and audio data to the client, and the client uses its hardware decoder and the video streaming software to render the video. The client sends mouse, keyboard, joystick, and controller signals to the host, which varies the bit rate based on the network connection.


