REMOTE COMPUTING PLATFORMS PROVIDING HIGH-FIDELITY DISPLAY AND INTERACTIVITY FOR CLIENTS
First Claim
1. A method for displaying screen images of a remotely hosted application on a client display device, comprising steps for:
- establishing network connections between one or more clients and a remote host;
initiating one or more applications on the remote host for each client;
using the remote host, generating a current screen image for each client for each corresponding application;
using the remote host, dividing each current screen image into a set of non-overlapping blocks of pixels;
using the remote host, comparing the blocks of pixels of each current screen image to corresponding blocks of pixels from an immediately previous screen image for each client to identify unchanged blocks of pixels in each current screen image;
using the remote host, compressing all unchanged blocks of pixels of each current screen image;
using the remote host, encoding the compressed blocks of pixels for each current screen image;
transmitting the encoded compressed blocks for the current screen image for each corresponding application to each corresponding client;
using each client, decoding the encoded compressed blocks for each received current screen image;
using each client, decompressing the decoded blocks of pixels and reconstructing each received current screen image; and
using each client, displaying the reconstructed current screen images received by each of those clients.
3 Assignments
0 Petitions
Accused Products
Abstract
A “Remote Display Generator,” as described herein, provides various techniques for providing high-fidelity displays with highly responsive interactive application experiences to clients across a wide range of network bandwidths for remotely hosted applications. In general, the Remote Display Generator uses a compression-friendly remote display architecture as a core. With this compression architecture, actual screen data from a remote server is read out from the display buffer frame by frame, and then compressed with a unified screen codec. Other technologies, including timer-driven screen update models and adaptive transmission mechanisms, are then integrated with various embodiments of the Remote Display Generator to improve overall user experience by improving display quality and responsiveness to user interaction with remotely hosted applications.
-
Citations
20 Claims
-
1. A method for displaying screen images of a remotely hosted application on a client display device, comprising steps for:
-
establishing network connections between one or more clients and a remote host; initiating one or more applications on the remote host for each client; using the remote host, generating a current screen image for each client for each corresponding application; using the remote host, dividing each current screen image into a set of non-overlapping blocks of pixels; using the remote host, comparing the blocks of pixels of each current screen image to corresponding blocks of pixels from an immediately previous screen image for each client to identify unchanged blocks of pixels in each current screen image; using the remote host, compressing all unchanged blocks of pixels of each current screen image; using the remote host, encoding the compressed blocks of pixels for each current screen image; transmitting the encoded compressed blocks for the current screen image for each corresponding application to each corresponding client; using each client, decoding the encoded compressed blocks for each received current screen image; using each client, decompressing the decoded blocks of pixels and reconstructing each received current screen image; and using each client, displaying the reconstructed current screen images received by each of those clients. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for generating screen images of a remotely hosted application on a client display device, comprising using a remote server for:
-
executing an application and rendering a current screen image of the application; dividing the current screen image into a set of non-overlapping pixel blocks of equal size; comparing the pixel blocks of the current screen image to corresponding pixel blocks of a buffered copy of a previous screen image for the application; creating a map of pixel blocks that are unchanged from the previous screen image to the current screen image; compressing all unchanged pixel blocks of the current screen image; encoding the compressed pixel blocks and the map of unchanged pixel blocks into a composite bitstream; and transmitting the composite bitstream to the client. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A computer-readable medium having computer executable instructions stored therein for displaying remotely hosted applications on a local client, said instructions comprising:
-
executing an application and rendering a current screen image of the application; dividing the current screen image into a set of non-overlapping pixel blocks of equal size; comparing the pixel blocks of the current screen image to corresponding pixel blocks of a buffered copy of a previous screen image for the application; creating a map of pixel blocks that are unchanged from the previous screen image to the current screen image; compressing all unchanged pixel blocks of the current screen image; encoding the compressed pixel blocks and the map of unchanged pixel blocks into a composite bitstream; and transmitting the composite bitstream to the client. - View Dependent Claims (18, 19, 20)
-
Specification