Method and mechanism for delivering applications over a wan
AssigneeGoogle Inc.
InventorMakarand Dharmapurikar
Life of this patent
Estimating the term…
Abstract
An improved approach for a remote graphics rendering system that can utilize both server-side processing and client-side processing for the same display frame. Some techniques for optimizing a set of graphics command data to be sent from the server to the client include: eliminating some or all data, that is not needed by a client GPU to render one or more images, from the set of graphics command data to be transmitted to the client; applying precision changes to the set of graphics command data to be transmitted to the client; and performing one or more data type compression algorithms on the set of graphics command data.
Claims31
A computer implemented method for implementing remote graphics rendering, comprising:
- a) generating, at a server CPU, a set of graphics command data to be transmitted from a server to a client;
- b) optimizing the set of graphics command data at the server CPU by:
- 1) eliminating some or all data, that is not needed by a client GPU to render one or more images, from the set of graphics command data to be transmitted to the client;
- 2) applying precision changes to the set of graphics command data to be transmitted to the client;
- and
- 3) performing one or more data type compression algorithms on the set of graphics command data;
- and
- c) transmitting the optimized set of graphics command data to the client, wherein the optimized set of graphics command data is used by the client GPU to render the one or more images.
A computer implemented method for implementing remote graphics rendering, comprising:
- a) receiving, at a client, a set of optimized graphics command data from a server;
- b) parsing the received set of optimized graphics command data to separate the set of optimized graphics command data into data types;
- and
- c) applying one or more decompression algorithms based at least in part on data type to the received set of optimized graphics command to form a set of uncompressed optimized graphics command data;
- and
- d) assembling API streams for the uncompressed optimized graphics command data.
A remote graphics rendering system comprising:
- a server comprising a server CPU;
- wherein the server is configured to perform a method for implementing remote graphics rendering, comprising:
- a) generating, at the server CPU, a set of graphics command data to be transmitted from the server to a client;
- b) optimizing the set of graphics command data at the server CPU by:
- 1) eliminating some or all data, that is not needed by a client GPU to render one or more images, from the set of graphics command data to be transmitted to the client;
- 2) applying precision changes to the set of graphics command data to be transmitted to the client;
- and
- 3) performing one or more data type compression algorithms on the set of graphics command data;
- and
- c) transmitting the optimized set of graphics command data to the client, wherein the optimized set of graphics command data is used by the client GPU to render the one or more images.
A remote graphics rendering system comprising:
- a client comprising:
- a client CPU;
- and
- a client GPU;
- wherein the client is configured to perform a method for implementing remote graphics rendering, comprising:
- a) receiving a set of optimized graphics command data from a server;
- b) parsing the received set of optimized graphics command data using the client CPU to separate the set of optimized graphics command data into data types;
- and
- c) applying one or more decompression algorithms based at least in part on data type to the received set of optimized graphics command data using the client CPU to form a set of uncompressed optimized graphics command data;
- and
- d) assembling API streams for the uncompressed optimized graphics command data using the client CPU.
A computer program product that includes a non-transitory computer readable medium, the non-transitory computer readable medium comprising a plurality of computer instructions which, when executed by at least one processor, cause the at least one processor to execute a method for implementing remote graphics rendering, the method comprising:
- a) generating, at a server CPU, a set of graphics command data to be transmitted from a server to a client;
- b) optimizing the set of graphics command data at the server CPU by:
- 1) eliminating some or all data, that is not needed by a client GPU to render one or more images, from the set of graphics command data to be transmitted to the client;
- 2) applying precision changes to the set of graphics command data to be transmitted to the client;
- and
- 3) performing one or more data type compression algorithms on the set of graphics command data;
- and
- c) transmitting the optimized set of graphics command data to the client, wherein the optimized set of graphics command data is used by the client GPU to render the one or more images.
A computer program product that includes a non-transitory computer readable medium, the non-transitory computer readable medium comprising a plurality of computer instructions which, when executed by at least one processor, cause the at least one processor to execute a method for implementing remote graphics rendering, the method comprising:
- a) receiving, at a client, a set of optimized graphics command data from a server;
- b) parsing the received set of optimized graphics command data using the client CPU to separate the set of optimized graphics command data into data types;
- and
- c) applying one or more decompression algorithms based at least in part on data type to the received set of optimized graphics command data using the client CPU to form a set of uncompressed optimized graphics command data;
- and
- d) assembling API streams for the uncompressed optimized graphics command data using the client CPU.
Dependencies are inferred from the claim text.