OPTIMIZED KEY FRAME CACHING FOR REMOTE INTERFACE RENDERING
First Claim
1. A method for managing a cache, comprising:
- providing current graphical frame data for a current frame to a client by a server over a network;
identifying a new frame by the server to be rendered at the client;
selecting a cached frame by the server, the selected cache frame corresponding to a frame cached at the client;
determining a set of difference data associated with the difference between the new frame and the selected cached frame; and
transmitting an identifier for the selected cached frame and difference data information to the client by the server.
2 Assignments
0 Petitions
Accused Products
Abstract
Frames of user interface (UI) graphical data can be remotely rendered more efficiently at a client during a remote session with a server by utilizing graphical data cached at the client to prevent re-sending data to the client that was sent in previous payloads. By using cache memory to remember recurring frames of similar UI data and delta encoding to correct areas that are not similar, encoded payload sizes are greatly reduced. When a cached frame is closer to a new frame than the current frame, the cached frame is selected and delta commands are derived from differences between the selected cache frame and the new frame. The differences between the cached frame and the new frame are then encoded as delta commands and the cache commands and delta commands are sent to the client which receives and applies the commands to render the new frame.
112 Citations
20 Claims
-
1. A method for managing a cache, comprising:
-
providing current graphical frame data for a current frame to a client by a server over a network; identifying a new frame by the server to be rendered at the client; selecting a cached frame by the server, the selected cache frame corresponding to a frame cached at the client; determining a set of difference data associated with the difference between the new frame and the selected cached frame; and transmitting an identifier for the selected cached frame and difference data information to the client by the server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising:
-
receiving a set of instructions by a client from a server, the set of instructions including a cache instruction and difference data instructions; setting a first pointer to a cache slot at the client in response to executing the cache instruction; modifying graphical frame data associated with the cache slot in response to executing the difference data instructions; and presenting a frame associated with the modified graphical frame data through a display device by the client. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method for managing a cache, comprising:
-
providing current graphical frame data for a current frame to a client by a server over a network; identifying a new frame by the server to be rendered at the client; determining whether the changes between the new frame and the current frame are associated with a full frame update; determining that the difference in pixel data values between the new frame and the current frame does not satisfy a threshold; determining whether the new frame is similar to a frame that is cached at the client; selecting a cached frame by the server, the selected cache frame corresponding to a frame cached at the client; generating a cache instruction to select the selected cache frame; encoding a set of difference data instructions associated with the difference between the new frame and the selected cached frame; and transmitting a payload that includes the cache instruction and the set of difference data instructions to the client by the server. - View Dependent Claims (19, 20)
-
Specification