Dynamic encoding method modification for optimizing client performance
AssigneeOmnissa, LLC
InventorAlan Hourihane
Life of this patent
Estimating the term…
Abstract
Systems and methods are described for providing ways to optimize client performance during screen data streaming. Periods of time a client takes to render frames can be tracked and the frame rendering times can be analyzed to determine when the client performance is insufficient. If the client rendering performance is determined to be insufficient, the encoding method can be dynamically modified in ways preferable for improving the client rendering performance. Different approaches can be utilized for calculating metrics and determining when to modify the encoding method, such as linear interpolation or by taking averages of frame rendering times in a moving sample window.
Claims21
(canceled)
A method comprising:
- encoding, by a server executing one or more processors, screen data according to a first encoding method;
- transmitting the encoded screen data from the server to a client device for rendering;
- receiving, by the server from the client device, frame-rendering time information indicating an amount of time consumed by the client device to render one or more frames generated from the encoded screen data;
- analyzing the frame-rendering time information to determine whether rendering performance of the client device is insufficient;
- and
- in response to determining that the rendering performance of the client device is insufficient, modifying the first encoding method to a second encoding method and encoding subsequent screen data using the second encoding method for transmission to the client device.
A non-transitory computer readable storage medium having stored thereon program code executable by a server executing on one or more processors, the program code embodying a method comprising:
- encoding, by the server, screen data according to a first encoding method;
- transmitting the encoded screen data from the server to a client device for rendering;
- receiving, by the server from the client device, frame-rendering time information indicating an amount of time consumed by the client device to render one or more frames generated from the encoded screen data;
- analyzing the frame-rendering time information to determine whether rendering performance of the client device is insufficient;
- and
- in response to determining that the rendering performance of the client device is insufficient, modifying the first encoding method to a second encoding method and encoding subsequent screen data using the second encoding method for transmission to the client device.
A computer system comprising:
- one or more processors;
- and
- a non-transitory computer readable medium having stored thereon program code that, when executed by a server executing on the one or more processors, causes the server to:
- encode screen data according to a first encoding method;
- transmit the encoded screen data to a client device for rendering;
- receive from the client device, frame-rendering time information indicating an amount of time consumed by the client device to render one or more frames generated from the encoded screen data;
- analyze the frame-rendering time information to determine whether rendering performance of the client device is insufficient;
- and
- in response to determining that the rendering performance of the client device is insufficient, modify the first encoding method to a second encoding method and encode subsequent screen data using the second encoding method for transmission to the client device.
Dependencies are inferred from the claim text.