IP Library Granted Patent US 11,508,113
Granted Patent B2
US 11,508,113 · App. 17/203,267 · Granted Nov 22, 2022

Denoising techniques suitable for recurrent blurs

Inventors: Dmitriy Zhdan (Korolev, RU); Evgeny Makarov (Moscow, RU)
Assignee: NVIDIA Corporation
G06T15/06G06N20/00G06T5/002G06T5/20G06T15/506
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 11,508,113
App. No.
17/203,267
Granted
Nov 22, 2022
Kind
B2
Abstract

Recurrent blurring may be used to render frames of a virtual environment, where the radius of a filter for a pixel is based on a number of successfully accumulated frames that correspond to that pixel. To account for rejections of accumulated samples for the pixel, ray-traced samples from a lower resolution version of a ray-traced render may be used to increase the effective sample count for the pixel. Parallax may be used to control the accumulation speed along with an angle between a view vector that corresponds to the pixel. A magnitude of one or more dimensions of a filter applied to the pixel may be based on an angle of a view vector that corresponds to the pixel to cause reflections to elongate along an axis under glancing angles. The dimension(s) may be based on a direction of a reflected specular lobe associated with the pixel.

Claims (38)

1. A method comprising:

generating an accumulated sample of a virtual environment based on a ray-traced sample of the virtual environment and a denoised sample of the virtual environment;

determining a blur radius of a filter based at least on a quantity of rendered frames that correspond to the accumulated sample; and

generating a rendered frame based at least on blurring the accumulated sample using the filter having the blur radius.

2. The method of claim 1 , wherein the determining of the blur radius uses an adjustment factor that reduces the blur radius as the quantity of the rendered frames increases.

3. The method of claim 1 , further comprising generating the denoised sample based at least on accumulating another ray-traced sample of the virtual environment with another denoised sample of the virtual environment.

4. The method of claim 1 , wherein the filter is applied to a pixel and the accumulated sample is used in the determining of the blur radius based at least on the accumulated sample corresponding to the pixel.

5. The method of claim 1 , further comprising prior to the blurring, augmenting the accumulated sample with a sample generated based at least on downsampling a set of ray-traced samples of the virtual environment.

6. The method of claim 1 , further comprising computing an accumulation speed for a pixel based at least on an angle between a first view vector that corresponds to the pixel, a second view vector that corresponds to the pixel, and a viewing angle associated with the first view vector, wherein the accumulating uses the accumulation speed computed for the pixel.

7. The method of claim 1 , wherein the filter is an anisotropic filter, the ray-traced sample corresponds to an interaction between a view vector and a point in the virtual environment, and the method further comprises computing a dimension of the anisotropic filter based at least on a direction of a reflected specular lobe of the interaction and a normal that corresponds to the point in the virtual environment.

8. The method of claim 1 , wherein the accumulated sampled is generated using a history buffer that includes the denoised sample.

9. The method of claim 1 , wherein the generating comprises accumulating a ray-traced render of the virtual environment with a denoised accumulated render of the virtual environment to generate an accumulated render that includes the accumulated sample.

10. A system comprising:

one or more processing units to execute operations comprising:

generating renders of a virtual environment over a plurality of iterations, each iteration including:

accumulating ray-traced samples of the virtual environment with samples of a previous iteration of the plurality of iterations, the accumulating to generate accumulated samples;

determining a blur radius of a filter based at least on a quantity of the renders that correspond to at least one sample of the accumulated samples; and

generating the samples for a subsequent iteration of the plurality of iterations based at least on blurring the accumulated samples using the filter having the blur radius.

11. The system of claim 10 , wherein different ones of the accumulated samples correspond to different quantities of the renders based at least on corresponding disocclusions detected in generating the renders.

12. The system of claim 10 , wherein the iteration further includes updating a count of the quantity of the renders based at least on the accumulating, and the blur radius is based at least on the count.

13. The system of claim 10 , wherein the iteration further includes updating counts of quantities of the renders based at least on the accumulating, wherein the counts are used to determine corresponding blur radiuses of filters that are applied to corresponding pixels by the blurring.

14. The system of claim 10 , wherein the quantity includes a count of the renders that have been accumulated to the accumulated samples with respect to a pixel that corresponds to the at least one sample.

15. A processor comprising:

one or more circuits to:

generate an accumulated render that corresponds to a ray-traced render of a virtual environment and a denoised accumulated render of the virtual environment;

determine a blur radius of a filter based at least on a quantity of renders that correspond to at least one sample of the accumulated render; and

generate a rendered frame based at least on blurring the accumulated render using the filter having the blur radius.

16. The processor of claim 15 , wherein the quantity of renders that correspond to the at least one sample are based at least on one or more disocclusions detected in generating the renders.

17. The system of claim 15 , wherein the quantity includes a count of the renders that have been accumulated to the accumulated render with respect to a pixel that corresponds to the at least one sample.

18. The system of claim 15 , further comprising prior to the blurring, augmenting the accumulated render with at least a sample generated based at least on downsampling the ray-traced render.

19. The processor of claim 15 , wherein the determining of the blur radius uses an adjustment factor that reduces the blur radius as the quantity of the renders increases.

20. The processor of claim 15 , wherein the processor is comprised in at least one of:

a system for performing simulation operations;

a system for performing deep learning operations;

a system implemented using an edge device;

a system incorporating one or more virtual machines (VMs);

a system implemented at least partially in a data center; or

a system implemented at least partially using cloud computing resources.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2021
From: ZHDAN, DMITRIY; MAKAROV, EVGENY
To: NVIDIA CORPORATION
Reel/Frame 055639/0173 →
Continuity (2)
Provisional Application 62991000 · Mar 17, 2020
Related Publication 20210295589A1 · Sep 23, 2021
Cited By (3)
US 12,266,083 US 12,423,905 US 12,444,017