IP Library Granted Patent US 10,922,790
Granted Patent B2
US 10,922,790 · App. 16/230,501 · Granted Feb 16, 2021

Apparatus and method for efficient distributed denoising of a graphics frame

Inventors: Carson Brownlee (Austin, TX); Ingo Wald (Salt Lake City, UT); Attila Afra (Satu Mare, RO); Johannes Guenther (Munich, DE); Jefferson Amstutz (Austin, TX); Carsten Benthin (Voelklingen, DE)
Assignee: Intel Corporation
G06T5/002G06T1/20G06T5/20G06T9/00G06T15/06G06T2207/20081G06T2207/20084
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 10,922,790
App. No.
16/230,501
Granted
Feb 16, 2021
Kind
B2
Abstract

Apparatus and method for denoising of images generated by a rendering engine such as a ray tracing engine. For example, one embodiment of a system or apparatus comprises: A system comprising: a plurality of nodes to perform ray tracing operations; a dispatcher node to dispatch graphics work to the plurality of nodes, each node to perform ray tracing to render a region of an image frame; at least a first node of the plurality comprising: a ray-tracing renderer to perform ray tracing to render a first region of the image frame; and a denoiser to perform denoising of the first region using a combination of data associated with the first region and data associated with a region outside of the first region, at least some of the data associated with the region outside of the first region to be retrieved from at least one other node.

Claims (64)

1. A system comprising:

a plurality of nodes to perform ray tracing operations;

a dispatcher node to dispatch graphics work to the plurality of nodes, each node to perform ray tracing to render a region of an image frame specified by the graphics work;

at least a first node of the plurality comprising:

a ray-tracing renderer to perform ray tracing to render a first region of the image frame;

a denoiser to perform denoising of the first region using a combination of data associated with the first region and data associated with a region outside of the first region, at least some of the data associated with the region outside of the first region to be retrieved from at least one other node,

wherein the dispatcher node is to combine regions of the image after denoising at the plurality of nodes to generate a denoised image for the image frame.

2. The system of claim 1 further comprising:

a high speed network, bus, or interconnect to couple the first node to the plurality of nodes and the dispatcher node.

3. The system of claim 1 wherein the denoiser is to generate a first denoised region using the data associated with the first region and the region outside of the first region.

4. The system of claim 3 wherein the denoiser includes a machine learning engine to evaluate the data associated with the first region and the region outside of the first region to perform denoising of the first region.

5. The system of claim 4 wherein the machine learning engine comprises convolutional neural network circuitry and logic to evaluate the data associated with the first region and the region outside of the first region based on a set of trained weights.

6. The system of claim 1 wherein the first node is to receive at least a portion of a set of trained weights for machine learning to evaluate the data associated with the first region and the region outside of the first region from one or more of the plurality of nodes and/or the dispatcher node.

7. The system of claim 6 further comprising:

training circuitry and/or logic to perform runtime training using at least a portion of the data associated with the first region and to responsively perform an update to the set of trained weights and communicate the update to one or more of the other nodes and/or the dispatcher node.

8. The system of claim 1 wherein the first node further comprises:

a compressor/decompressor to compress at least a portion of the data associated with the first region and/or the region outside of the first region prior to transmission to a second node to generate compressed data.

9. The system of claim 8 wherein the first node is to transmit the compressed data to the second node following a request from the second node.

10. The system of claim 1 wherein each node of the plurality of nodes and the dispatcher node comprises at least one graphics processing unit (GPU) including the ray tracing renderer to perform ray tracing.

11. The system of claim 10 wherein the ray tracing renderer and denoiser comprise a combination of circuitry of the GPU and software executed by the GPU.

12. A method comprising:

dispatching, by a dispatcher node, ray tracing graphics work to a plurality of nodes;

performing ray tracing operations on a first node to render a first region of an image frame;

requesting data associated with a region outside of the first region from one or more other nodes of the plurality of nodes;

denoising the first region using a combination of data associated with the first region and the data associated with the region outside of the first region; and

combining, by the dispatcher node, regions of the image after denoising at the plurality of nodes to generate a denoised image for the image frame.

13. The method of claim 12 further comprising:

receiving the data associated with the region outside of the first region over a high speed network, bus, or interconnect coupled to the first node.

14. The method of claim 12 wherein denoising further comprises generating a first denoised region using the data associated with the first region and the region outside of the first region.

15. The method of claim 14 wherein denoising further comprises performing machine learning to evaluate the data associated with the first region and the region outside of the first region to perform denoising of the first region.

16. The method of claim 15 wherein performing machine learning comprises evaluating the data associated with the first region and the region outside of the first region based on a set of trained weights.

17. The method of claim 12 wherein the first node is to receive at least a portion of a set of trained weights for machine learning to evaluate the data associated with the first region and the region outside of the first region from one or more of the plurality of nodes.

18. The method of claim 17 further comprising:

performing runtime training using at least a portion of the data associated with the first region;

responsively performing an update to the set of trained weights; and

communicating the update to one or more of the other nodes and/or the dispatcher node.

19. The method of claim 12 wherein the method further comprises:

compressing at least a portion of the data associated with the first region and/or the region outside of the first region to generate compressed data.

20. The method of claim 19 wherein the method further comprises:

transmitting the compressed data to a second node following receipt of a request from the second node.

21. The method of claim 12 wherein each node of the plurality of nodes comprises at least one graphics processing unit (GPU) with a ray tracing renderer to perform the ray tracing operations.

22. The method of claim 21 wherein the GPU further comprises denoising circuitry and/or logic to perform the denoising.

23. A non-transitory computer machine-readable medium having program code stored thereon which, when executed by a machine, causes the machine to perform the operations of:

dispatching, by a dispatcher node, ray tracing graphics work to a plurality of nodes, wherein a first node of the plurality of node is to perform operations comprising:

performing ray tracing operations on the first node to render a first region of an image frame;

requesting data associated with a region outside of the first region from one or more other nodes of the plurality of nodes; and

denoising the first region using a combination of data associated with the first region and the data associated with the region outside of the first region, and

combining, by the dispatcher node, regions of the image after denoising at the plurality of nodes to generate a denoised image for the image frame.

24. The non-transitory computer machine-readable medium of claim 23 further comprising program code to cause the machine to perform the operation of:

dispatching the data associated with the region outside of the first region over a high speed network, bus, or interconnect coupled to the first node.

25. The non-transitory computer machine-readable medium of claim 23 wherein denoising further comprises generating a first denoised region using the data associated with the first region and the region outside of the first region.

26. The non-transitory computer machine-readable medium of claim 25 wherein denoising further comprises performing machine learning to evaluate the data associated with the first region and the region outside of the first region to perform denoising of the first region.

27. The non-transitory computer machine-readable medium of claim 26 wherein performing machine learning comprises evaluating the data associated with the first region and the region outside of the first region based on a set of trained weights.

28. The non-transitory computer machine-readable medium of claim 23 wherein the first node is to receive at least a portion of a set of trained weights for machine learning to evaluate the data associated with the first region and the region outside of the first region from one or more of the plurality of nodes.

29. The non-transitory computer machine-readable medium of claim 28 further comprising program code to cause the first node to perform the operations of:

performing runtime training using at least a portion of the data associated with the first region;

responsively performing an update to the set of trained weights; and

communicating the update to one or more of the other nodes and/or the dispatcher node.

30. The non-transitory computer machine-readable medium of claim 23 wherein the first node is to further perform operations comprising:

compressing at least a portion of the data associated with the first region and/or the region outside of the first region to generate compressed data.

31. The non-transitory computer machine-readable medium of claim 30 wherein the first node is to further perform operations comprising:

transmitting the compressed data to a second node following receipt of a request from the second node.

32. The non-transitory computer machine-readable medium of claim 23 wherein each node of the plurality of nodes comprises at least one graphics processing unit (GPU) with a ray tracing renderer to perform the ray tracing operations.

33. The non-transitory computer machine-readable medium of claim 32 wherein the GPU further comprises denoising circuitry and/or logic to perform the denoising.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF CARSON BROWNLEE'S LAST NAME AND THE EXECUTION DATE OF CARSTEN BENTHIN PREVIOUSLY RECORDED ON REEL 050840 FRAME 0596. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 29, 2020
From: BROWNLEE, CARSON; WALD, INGO; AFRA, ATTILA; GUENTHER, JOHANNES; AMSTUTZ, JEFFERSON; BENTHIN, CARSTEN
To: INTEL CORPORATION
Reel/Frame 053083/0040 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2019
From: BOWNLEE, CARSON; WALD, INGO; AFRA, ATTILA; GUENTHER, JOHANNES; AMSTUTZ, JEFFERSON; BENTHIN, CARSTEN
To: INTEL CORPORATION
Reel/Frame 050840/0596 →
Continuity (1)
Related Publication 20200202493A1 · Jun 25, 2020
Cited By (1)
US 12,450,703