Ultra High Resolution Pan-Scan Surface Encoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current server-client remote graphics processing systems face significant burdens when handling ultra-high resolution content, as existing encode engines and buses struggle to efficiently encode and transfer large surfaces, leading to compromised performance and detail loss when using Windows device drivers.
Innovation Solution
A method and system that render surfaces exceeding display resolutions, calculate and send only the necessary viewport coordinates, and encode and transmit only the corresponding portion of the surface to connected client GPUs, reducing the load on buses and encode engines while maintaining fine details.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If the entire rendered surface is encoded and transferred to the client, then the client can display the complete content, but the encode engine and bus are overwhelmed and performance deteriorates
Solution Approach 1:
The patent extracts and transmits only the necessary portion of the rendered surface corresponding to the client's viewport, rather than transferring the entire surface. This is achieved by calculating viewport coordinates on the client side, sending only the relevant region to the server for encoding, and transferring just that encoded portion back to the client, thereby reducing the encoding burden and bus load while maintaining complete visual content delivery
Solution Approach 2:
The patent segments the large rendered surface into multiple regions based on viewport coordinates, identifying and processing only the specific segment that needs to be displayed. The server divides the encoding task into manageable portions corresponding to the viewport area, allowing parallel processing and reducing the overall encoding burden on the encode engine
2Adaptability or versatility
If device drivers alter the original surface details to accommodate rendering, then compatibility with Windows features is improved, but the fine details of ultra-high resolution content are compromised
Solution Approach 1:
Instead of altering the original surface details to achieve compatibility, the patent inverts the approach by working with the original high-resolution surface directly and selectively transmitting only the necessary viewport portion. This preserves the fine details of the original content while achieving compatibility through coordinate-based viewport calculation and selective encoding, rather than through surface modification
Solution Approach 2:
The patent introduces viewport coordinates as an intermediary mechanism that bridges the client's display requirements and the server's rendering output. This coordinate-based mediation allows the system to maintain compatibility with Windows features while preserving the original surface details, as the viewport coordinates enable precise selection and transmission of the required content region without modifying the source surface
3Loss of energy
If raw unencoded data is transferred from server to client, then the bus load is reduced, but the transfer still chokes the inter-system bus and slows down other processes
Solution Approach 1:
The patent applies partial action by encoding and transferring only the necessary portion of the surface data corresponding to the viewport, rather than transferring all surface data. This partial encoding approach reduces the volume of data transmitted over the inter-system bus, decreasing bus load and preventing performance degradation of other system processes while still delivering the complete visual experience to the client
Data Source
AI summary
A server and methods for performing an ultra-high resolution pan-scan on displays connected across multiple client GPUs are provided. In one embodiment, one of the methods includes: 1) rendering a surface that exceeds resolutions of displays connected to multiple client GPUs; 2) receiving viewport coordinates of one of the displays that is connected to one of the multiple client GPUs; 3) encoding only a portion of the surface that corresponds to the viewport coordinates; 4) sending the portion to the one of the multiple client GPUs.


