Remote user interface updates using difference and motion encoding
First Claim
1. A method for updating a user interface, 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;
identifying one or more moving objects having a first position in the current frame and a second position in the new frame;
updating the current frame based on the moving objects, including identifying a first set of moving objects which cannot be moved without colliding with other moving objects, performing a verification process for a motion hint based on differences between source data and destination data for the motion hint, and eliminating motion hints associated with the first set of objects from a subset of motion hints which fail the verification process;
determining a set of difference data associated with the difference between the new frame and the updated current frame;
encoding one or more motion commands based on the moving objects and one or more delta commands based on the difference data into a payload; and
transmitting the payload to the client.
2 Assignments
0 Petitions
Accused Products
Abstract
Frames of user interface graphical data can be remotely rendered at a client during a remote session with a server by providing graphical data commands to the client. The commands include motion commands derived from objects that change position between a current frame and a new frame and delta commands derived from differences between the frames. The delta commands can be generated from a frame update after applying motion commands or without applying motion commands. A server identifies moving objects having a first position in the current frame and a second position in the new frame, generates motion hints for the moving objects, and reduces the motion hints based on collision detection, motion verification and other factors. Motion commands are generated for the reduced set of motion hints and applied to a copy of the current frame at the server. Differences between the modified current frame and the new frame are then encoded as delta commands. The server then sends the motion commands and delta commands to the client. The client receives and applies the commands to the current frame to render the new frame.
-
Citations
18 Claims
-
1. A method for updating a user interface, 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; identifying one or more moving objects having a first position in the current frame and a second position in the new frame; updating the current frame based on the moving objects, including identifying a first set of moving objects which cannot be moved without colliding with other moving objects, performing a verification process for a motion hint based on differences between source data and destination data for the motion hint, and eliminating motion hints associated with the first set of objects from a subset of motion hints which fail the verification process; determining a set of difference data associated with the difference between the new frame and the updated current frame; encoding one or more motion commands based on the moving objects and one or more delta commands based on the difference data into a payload; and transmitting the payload to the client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16, 17, 18)
-
-
11. A method for updating an interface, comprising:
-
transmitting a current frame graphical data to a client by a server over a network, the current frame graphical data to be provided through a user interface render engine; receiving user input from the client; identifying a new frame to provide to the client by the server in response to the user input; identifying one or more moving objects having a first position in the current frame and a second position in the new frame; generating a list of motion operations to be performed on the current frame; updating the motion operations list by removing one or more motion operations from the operation list which would result in overwriting pixels associated with another motion object; encoding the updated list of motion operations into a payload; applying motion operations in the updated operations list to a copy of the current frame at the server to generate a modified current frame; determining a difference in pixel values between the modified current frame and the new frame; encoding the pixel value differences between the modified current frame and the new frame as delta commands into the payload; applying the delta commands to the modified current frame at the server; and transmitting the payload to the client from the server. - View Dependent Claims (12, 13)
-
Specification