IP Library › Granted Patent US 9,576,340
Granted Patent B2
US 9,576,340 · App. 13/727,216 · Granted Feb 21, 2017

Render-assisted compression for remote graphics

Inventors: Dawid Stanislaw Pajak (San Jose, CA); David Luebke (Charlottesville, VA); Scott Saulters (New Taipei, TW)
Assignee: NVIDIA Corporation
G06T5/00G06T1/20G06T9/004G06T11/00H04N19/46H04N19/61
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,576,340
App. No.
13/727,216
Granted
Feb 21, 2017
Kind
B2
Abstract

A technique for efficiently compressing rendered three-dimensional images in a remote rendering system adds a novel render-assisted prediction function to an existing video compression framework, such as the standard H.264/5 framework. Auxiliary rendering information is separated from rendering information used to describe a reference image by a server system. A client system may alter the auxiliary data and generate a new image based on the reference image and rendered scene information from the auxiliary data without creating additional network bandwidth or server workload.

Claims (40)

1. A method for transmitting rendered images to a remote client device, the method comprising:

rendering one or more server rendering elements to generate a reference image;

rendering one or more client rendering elements comprising auxiliary data to generate a client auxiliary image, wherein the auxiliary data comprises rendering information for rendering the reference image;

compressing the reference image and the client auxiliary image or the reference image and auxiliary data to generate compressed client data; and

transmitting the compressed client data to the remote client device for display.

2. The method of claim 1 , wherein each server rendering element comprises one or more graphics operations configured to be executed on a server machine.

3. The method of claim 2 , wherein each client rendering element comprises one or more graphics operations configured to be executed on the server machine and the remote client device.

4. The method of claim 3 , further comprising organizing a set of application programming interface (API) calls to differentiate the one or more server rendering elements from the one or more client rendering elements.

5. The method of claim 1 , wherein the auxiliary data comprises graphics instructions for performing at least one rendering pass on the reference image.

6. The method of claim 1 , further comprising comparing an amount of data associated with the client auxiliary image to an amount of data associated with the auxiliary data.

7. The method of claim 6 , wherein the reference image and the client auxiliary image are compressed to generate the compressed client data if the amount of data associated with the client auxiliary image is less than the amount of data associated with the auxiliary data.

8. The method of claim 6 , wherein the reference image and the auxiliary data are compressed to generate the compressed client data if the amount of data associated with the auxiliary data is less than the amount of data associated with the client auxiliary image.

9. The method of claim 1 , wherein compressing the auxiliary data comprises applying a render-assisted prediction function to the auxiliary data.

10. The method of claim 9 , wherein compressing the reference image comprises entropy encoding at least a portion of the reference image.

11. The method of claim 1 , wherein the auxiliary data comprises depth information associated with the reference image.

12. The method of claim 1 , wherein the auxiliary data comprises lens flare effect information associated with the reference image.

13. A server system, comprising:

a rendering subsystem configured to:

render one or more server rendering elements to generate a reference image;

render one or more client rendering elements comprising auxiliary data to generate a client auxiliary image, wherein the auxiliary data comprises rendering information for rendering the reference image;

compress the reference image and the client auxiliary image or the reference image and auxiliary data to generate compressed client data; and

transmit the compressed client data to the remote client device for display.

14. The server system of claim 13 , wherein each server rendering element comprises one or more graphics operations configured to be executed on a server machine.

15. The server system of claim 14 , wherein each client rendering element comprises one or more graphics operations configured to be executed on the server machine and the remote client device.

16. The server system of claim 13 , wherein the auxiliary data comprises graphics instructions for performing at least one rendering pass on the reference image.

17. The server system of claim 13 , wherein the rendering subsystem is further configured to compare an amount of data associated with the client auxiliary image to an amount of data associated with the auxiliary data.

18. The server system of claim 17 , wherein the reference image and the client auxiliary image are compressed to generate the compressed client data if the amount of data associated with the client auxiliary image is less than the amount of data associated with the auxiliary data.

19. The server system of claim 17 , wherein the reference image and the auxiliary data are compressed to generate the compressed client data if the amount of data associated with the auxiliary data is less than the amount of data associated with the client auxiliary image.

20. The server system of claim 13 , wherein the rendering subsystem is configured to compress the auxiliary data by applying a render-assisted prediction function to the auxiliary data.

21. The server system of claim 20 , wherein the rendering subsystem is configured to compress the reference image by entropy encoding at least a portion of the reference image.

22. The server system of claim 13 , wherein the rendering subsystem includes:

a render module configured to generate the reference image and the client auxiliary image; and

a first compression module to compress the reference image and the client auxiliary image or the reference image and the auxiliary data to generate the compressed client data.

23. A computing device, comprising:

a memory configured to store a server application; and

a rendering subsystem coupled to the memory and configured to:

render one or more server rendering elements to generate a reference image;

render one or more client rendering elements comprising auxiliary data to generate a client auxiliary image, wherein the auxiliary data comprises rendering information for rendering the reference image;

compress the reference image and the client auxiliary image or the reference image and auxiliary data to generate compressed client data; and

transmit the compressed client data to the remote client device for display.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2012
From: PAJAK, DAWID STANISLAW; LUEBKE, DAVID; SAULTERS, SCOTT
To: NVIDIA CORPORATION
Reel/Frame 029528/0110 →
Continuity (2)
Provisional Application 61677430 · Jul 30, 2012
Related Publication 20140028703A1 · Jan 30, 2014