IP Library Granted Patent US 9,135,154
Granted Patent B2
US 9,135,154 · App. 12/845,529 · Granted Sep 15, 2015

Algorithm execution output cache

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,135,154
App. No.
12/845,529
Granted
Sep 15, 2015
Kind
B2
Abstract

Techniques are disclosed for algorithm execution output cache. A remote presentation session server conducting concurrent remote presentation sessions with a plurality of clients generates a signature for each image that it is to send to a client. The remote presentation server also maintains a signature table comprising pairs of signatures and compressed images. Each signature and compressed image pair corresponds to input data (i.e. the signature was generated from an image and the compressed image was generated from that same image). The remote presentation session server checks the signature against the signature table. Where the remote presentation session server determines that there is a match between the signature and a signature in the signature table, it sends the client the compressed image that corresponds to the signature in the signature table that generated the match. In doing so, the remote presentation session server may avoid redundantly compressing the second image.

Claims (60)

1. A method for caching data among a plurality of remote presentation sessions hosted by a server, comprising:

generating a first frame of graphics data for a first client in a first user session on the server that the server uses to conduct a first remote presentation session, the first frame comprising a first plurality of image tiles;

determining a first signature for a first tile of the first plurality of tiles;

determining that a signature table does not comprise the first signature;

compressing the first tile into a first compressed tile;

sending the first compressed tile to the first client in the first remote presentation session;

generating a second frame of graphics data for a second client in a second user session on the server that the server uses to conduct a second remote presentation session, the second frame comprising a second plurality of image tiles, the second frame of graphics data differing from the first frame of graphics data;

determining a second signature for a second tile of the second plurality of tiles, the second tile being in a different location within the second frame than the location of the first tile within the first frame;

determining that the second signature matches the first signature; and

sending the first compressed tile to the second client in the second remote presentation session.

2. The method of claim 1 , further comprising:

storing the first signature and the first compressed tile in the signature table.

3. The method of claim 1 , wherein determining the first signature for the first tile comprises performing a hash function on the first tile.

4. The method of claim 3 , further comprising:

determining that the first signature collides with a second signature of the signature table, the second signature corresponding to a second compressed tile; and

replacing the second compressed tile with the first compressed tile.

5. The method of claim 1 , further comprising:

determining a third signature for a third tile, the third tile to be sent to the second client;

determining that the signature table does not comprise the third signature;

determining a third compressed tile from the third tile; and

sending the third compressed tile to the second client.

6. The method of claim 1 , further comprising:

storing the signature table in nonvolatile memory.

7. A system, comprising:

a memory bearing instructions that, upon execution by a processor, cause the system to at least:

generate a first frame of graphics data for a first client in a first user session on the system that the system uses to conduct a first remote presentation session, the first frame comprising a first plurality of image tiles;

determine a first signature for a first tile of the first plurality of tiles;

determine that a signature table does not comprise the first signature;

compress the first tile into a first compressed tile;

send the first compressed tile to the first client in the first remote presentation session;

generate a second frame of graphics data for a second client in a second user session on the system that the system uses to conduct a second remote presentation session, the second frame comprising a second plurality of image tiles;

determine a second signature for a second tile of the second plurality of tiles, the second tile being in a different location within the second frame than the location of the first tile within the first frame;

determine that the second signature matches the first signature; and

send the first compressed tile to the second client in the second remote presentation session.

8. The system of claim 7 , further bearing instructions that, upon execution by a processor, cause the system to at least:

store the first signature and the first tile in the signature table.

9. The system of claim 7 , further bearing instructions that, upon execution by a processor, cause the system to at least:

store storing the signature table in nonvolatile memory.

10. The system of claim 7 , wherein the signature table comprises a hash table, and determining the first signature for the first tile comprises performing a hash function on the first tile.

11. The system of claim 7 , further bearing instructions that, upon execution by a processor, cause the system to at least:

determine that the first signature collides with a second signature of the signature table, the second signature corresponding to a second compressed tile; and

replace the second compressed tile with the first compressed tile.

12. A computer-readable storage device bearing computer-readable instructions that, upon execution on a computer, cause the computer to perform operations comprising:

generating a first frame of graphics data for a first client in a first user session on the computer that the computer uses to conduct a first remote presentation session, the first frame comprising a first plurality of image tiles;

determining a first signature for a first tile of the first plurality of tiles;

determining that a signature table does not comprise the first signature;

compressing the first tile into a first compressed tile;

sending the first compressed tile to the first client in the first remote presentation session;

generating a second frame of graphics data for a second client in a second user session on the computer that the computer uses to conduct a second remote presentation session, the second frame comprising a second plurality of image tiles;

determining a second signature for a second tile of the second plurality of tiles, the second tile being in a different location within the second frame than the location of the first tile within the first frame;

determining that the second signature matches the first signature; and

sending the first compressed tile to the second client in the second remote presentation session.

13. The computer-readable storage device of claim 12 , further bearing computer-readable instructions that, upon execution on the computer, cause the computer to perform operations comprising:

storing the first signature and the first tile in the signature table.

14. The computer-readable storage device of claim 12 , further bearing computer-readable instructions that, upon execution on the computer, cause the computer to perform operations comprising:

storing the signature table in nonvolatile memory.

15. The computer-readable storage device of claim 12 , wherein the signature table comprises a hash table, and determining the first signature for the first tile comprises performing a hash function on the first tile.

16. The computer-readable storage device of claim 15 , further bearing computer-readable instructions that, upon execution on the computer, cause the computer to perform operations comprising:

determining that the first signature collides with a second signature of the signature table, the second signature corresponding to a second compressed tile; and

replacing the second compressed tile with the first compressed tile.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2010
From: SCHMIEDER, WILHELM R.; GOEL, SOMESH
To: MICROSOFT CORPORATION
Reel/Frame 024831/0235 →