Optimized key frame caching for remote interface rendering
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.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A processor readable storage device having processor readable code embodied on said processor readable storage device, said processor readable code for programming a processor to:
receive a set of instructions by a client device from a server, the set of instructions including a cache instruction and difference data instructions; set a first pointer to a cache slot at the client device in response to executing the cache instruction; modify graphical frame data associated with the cache slot in response to executing the difference data instructions; and present a frame associated with the modified graphical frame data through a display device by the client device.
2 . The processor readable storage device of claim 1 , wherein the cache instruction identifies the cache slot at the client device to which the first pointer is set.
3 . The processor readable storage device of claim 1 , wherein the instructions that cause the processor to set the first pointer to the cache slot cause the processor to either set the first pointer to an address of a frame within cache memory of the client device or to a frame buffer of the client device, the frame buffer stores graphical frame data for a single frame, the cache memory stores graphical frame data for a plurality of frames.
4 . The processor readable storage device of claim 3 , wherein only one copy of two or more graphical frames of data is stored in memory of the client device, the client memory including the cache memory and the frame buffer.
5 . The processor readable storage device of claim 1 , wherein the set of instructions include an instruction to fill a cached frame associated with the cache slot to which the first pointer is set with a color.
6 . The processor readable storage device of claim 1 , wherein the set of instructions includes difference data instructions in two different data formats used to present graphical information.
7 . The processor readable storage device of claim 1 , wherein the instructions that cause the processor to modify include instructions that cause the processor to:
apply updates to raster segments in the cache slot to which the first pointer is set with raster segment data contained in the difference data instructions.
8 . A method comprising:
receiving a set of instructions by a client device from a server, the set of instructions including a cache instruction and difference data instructions; setting a current frame pointer to a cache slot at the client device in response to executing the cache instruction; modifying graphical frame data associated with the cache slot to which the current frame pointer is set 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 device.
9 . The method of claim 8 , wherein the cache instruction identifies the cache slot at the client device to which the current frame pointer is set.
10 . The method of claim 8 , wherein the setting a current frame pointer to a cache slot at the client device in response to executing the cache instruction includes either:
setting the current frame pointer to an address of a frame in a cache memory on the client device that stores a plurality of frames of data; or setting the current frame pointer to an address of a frame buffer on the client device that stores a single frame of data.
11 . The method of claim 10 , wherein only one copy of two or more graphical frames of data is stored in memory on the client device, the client memory including the cache memory and the frame buffer.
12 . The method of claim 8 , wherein the set of instructions include an instruction to fill a cached frame to which the current frame pointer is set with a color.
13 . The method of claim 8 , wherein the set of instructions includes difference data instructions in two different data formats used to present graphical information.
14 . The method of claim 8 , wherein said step of modifying includes:
applying updates to raster segments in the cache slot to which the current frame pointer is set with raster segment data contained in the difference data instructions.
15 . The method of claim 8 , wherein the set of instructions are received by the client device from the server as part of a cache payload, further comprising:
receiving a motion payload by the client device from the server, a payload includes either a cache payload or a motion payload but not both.
16 . A system comprising:
a display device; a processor readable storage device that stores a cache of frame data; and a processor configured to: receive a set of instructions over a network from a server, the set of instructions including a cache instruction and difference data instructions; set a current frame pointer to a slot in the cache in response to executing the cache instruction, the current frame pointer identifies a current frame to be displayed in the display device; modify graphical frame data associated with the cache slot in response to executing the difference data instructions; and present a frame associated with the modified graphical frame data through the display device.
17 . The system of claim 16 , wherein the processor being configured to set the current frame pointer to the slot in the cache comprises the processor being configured to either set the current frame pointer to an address of a frame within cache memory in the processor readable storage device or to a frame buffer in the processor readable storage device.
18 . The system of claim 16 , wherein the set of instructions include an instruction to fill a cached frame associated with the cache slot to which the current frame pointer is set with a color.
19 . The system of claim 16 , wherein the set of instructions includes difference data instructions in two different data formats used to present graphical information.
20 . The system of claim 16 , wherein the processor being configured to modify includes the processor being configured to:
apply updates to raster segments in the cache slot to which the current frame pointer is set with raster segment data contained in the difference data instructions.Join the waitlist — get patent alerts
Track US2014040357A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.