GPU Pre-Encoding Dithering for Video Banding Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cloud gaming platforms experience visible banding and other graphical artifacts in dark or low-detail areas due to video encoding processes, which deter users and require high-end hardware for effective mitigation.
Innovation Solution
Implement real-time pre-encoding dithering techniques on the server side using GPU processors, dynamically determining pixel group-specific dithering based on local statistics, and applying YUV noise vectors to reduce or eliminate banding artifacts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If video encoding processes are used in cloud gaming, then video content can be transmitted over networks, but banding and graphical artifacts appear in dark or low-detail areas
Solution Approach 1:
The patent applies dithering as a pre-encoding technique that adds controlled noise to video frames before they undergo compression. This preliminary action prevents banding artifacts from forming during encoding by distributing quantization errors across multiple pixels, thereby eliminating the harmful visual effects while maintaining efficient video transmission
Solution Approach 2:
The patent converts the harmful quantization errors that cause banding into a beneficial effect by deliberately adding dithering noise. This noise masks the quantization artifacts that would otherwise be visible, transforming the encoding process's harmful side effect into an advantage that prevents banding while maintaining compression efficiency
2Object-affected harmful factors
If traditional dithering techniques are applied, then banding artifacts are reduced, but processing time and computational resources increase
Solution Approach 1:
The patent segments the video processing pipeline by applying dithering as a separate, dedicated step before encoding. By isolating the dithering operation and implementing it efficiently with pre-generated noise patterns and parallel processing, the computational burden is managed in discrete segments rather than as a monolithic process, reducing overall processing time
Solution Approach 2:
The patent applies dithering selectively rather than uniformly across all video content. By determining when and where dithering is most beneficial (in regions prone to banding) and applying it only in those areas, the processing overhead is minimized while still achieving the primary goal of artifact reduction
3Manufacturing precision
If high-quality video output is delivered across various client devices, then user experience is enhanced, but high-end hardware is required
Solution Approach 1:
The patent performs quality enhancement through dithering as a pre-processing step on the server side before video transmission. By preparing the video content with dithering applied in advance, the need for complex hardware-based artifact reduction at the client end is eliminated, allowing high-quality output on diverse devices without requiring high-end hardware
Solution Approach 2:
The patent introduces dithering as an intermediary processing layer between video generation and encoding/transmission. This intermediary step prepares the video content in a form that is more resilient to compression artifacts, acting as a mediator that protects video quality throughout the transmission chain without requiring sophisticated hardware at any stage
Data Source
AI summary
Real-time pre-encoding dithering techniques mitigate or eliminate banding and other graphical artifacts in video frames prior to such video frames being encoded for transmission to and display by one or more client devices. For each of one or more input video frames, one or more random seeds and a frame identifier are received, and a dithering process is initiated for each of one or more pixels of the input video frame. The dithering process includes generating a YUV noise vector based on the random seeds and on the frame identifier, computing a YUV representation of the input pixel based on RGB color information for the input pixel, and generating a dithered output pixel by adding the generated YUV noise vector to the YUV representation of the input pixel.


