US2014040357A1PendingUtilityA1

Optimized key frame caching for remote interface rendering

Assignee: MICROSOFT CORPPriority: Oct 11, 2007Filed: Oct 10, 2013Published: Feb 6, 2014
Est. expiryOct 11, 2027(~1.2 yrs left)· nominal 20-yr term from priority
Inventors:Brian Mcdowell
H04L 65/70H04L 67/75H04L 67/568G06F 16/9574H04L 29/08729
49
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
What 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.