# US 12,182,927 B2 · Denoising techniques suitable for recurrent blurs

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,927 B2
- Document ID: US12182927B2
- Status: Granted
- Kind: B2
- Application number: 18/486,049
- Filed: 2023-10-12
- Published: 2024-02-01
- Granted: 2024-12-31
- Earliest claimed: 2020-03-17
- Assignees: NVIDIA Corporation
- Applicants: NVIDIA Corporation
- Inventors: Dmitriy Zhdan; Evgeny Makarov
- Web page: https://patentgrep.com/patent/US12182927B2

## CPC

- G06T 15/06: Ray-tracing
- G06N 3/08: Learning methods
- G06N 20/00: Machine learning
- G06T 5/20: using local operators
- G06T 5/50: using two or more images, e.g. averaging or subtraction
- G06T 5/70: Denoising; Smoothing
- G06T 15/506: {Illumination models}
- G06N 3/045: Combinations of networks
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## 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

### Claim 1

A method comprising:
generating an accumulated render of a virtual environment by accumulating one or more renders of the virtual environment;
computing a resolution level for at least one render corresponding to the virtual environment based at least on a quantity of renders comprised in the accumulated render;
generating an augmented ray-traced sample based at least on augmenting the accumulated render with at least one sample that corresponds to the at least one render at the resolution level;
blurring the augmented ray-traced sample using one or more filters; and
generating a rendered frame based at least on an output produced by blurring the augmented ray-traced sample using the one or more filters.

### Claim 2 (depends on 1)

The method of claim 1, wherein the resolution level corresponds to a mipmap level and the at least one render is downsampled to generate a mipmap having the mipmap level, the at least one sample corresponding to the mipmap.

### Claim 3 (depends on 1)

The method of claim 1, wherein the at least one render is downsampled to generate at least one downsampled ray-traced sample, and the at least one sample is generated based at least on upsampling the downsampled ray-traced samples.

### Claim 4 (depends on 1)

The method of claim 1, wherein the computing of the resolution level uses an adjustment factor that increases the resolution level as the quantity of the renders comprised in the accumulated render increases.

### Claim 5 (depends on 1)

The method of claim 1, wherein the augmenting includes combining the at least one sample with an accumulated ray-traced sample to generate the augmented ray-traced sample.

### Claim 6 (depends on 1)

The method of claim 1, wherein the generating of the augmented ray-traced sample is performed based at least on the at least one sample corresponding to a disoccluded pixel of the rendered frame.

### Claim 7 (depends on 1)

The method of claim 1, wherein the blurring employs recurrent blur.

### Claim 8 (depends on 1)

The method of claim 1, wherein the generating of the augmented ray-traced sample is performed based at least on the quantity of the renders comprised in the accumulated render being below a threshold value.

### Claim 9 (depends on 1)

The method of claim 1, wherein one or more ray-traced samples are accumulated to a history buffer to generate the accumulated render.

### Claim 10

A system comprising:
one or more processing units to execute operations including:
determining a resolution level for at least one render corresponding to a virtual environment based at least on a quantity of renders comprised in an accumulated render of the virtual environment;
augmenting an accumulated ray-traced sample comprised in the accumulated render with at least one sample that corresponds to the at least one render at the resolution level; and
generating a rendered frame based at least on blurring the augmented ray-traced sample using one or more filters.

### Claim 11 (depends on 10)

The system of claim 10, wherein the at least one sample is of a mipmap of the at least one render.

### Claim 12 (depends on 10)

The system of claim 10, wherein the blurring employs recurrent blur.

### Claim 13 (depends on 10)

The system of claim 10, wherein the blurring is based at least on pre-accumulation.

### Claim 14 (depends on 10)

The system of claim 10, wherein the system 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.

### Claim 15

A processor comprising:
one or more circuits to:
compute a resolution level for at least one render corresponding to a virtual environment based at least on a quantity of renders in an accumulated render of the virtual environment, the quantity of renders corresponding to one or more pixels for a render of the virtual environment;
augment the accumulated render with at least one sample that corresponds to the one or more pixels and the at least one render at the resolution level to generate an augmented accumulated render; and
generate a rendered frame based at least on blurring, using one or more filters, data corresponding to the augmented accumulated render.

### Claim 16 (depends on 15)

The processor of claim 15, wherein the one or more circuits are further to generate the render based at least on ray-tracing in the virtual environment using one ray per-pixel.

### Claim 17 (depends on 15)

The processor of claim 15, wherein the accumulated render is in a history buffer, and the augmenting includes updating a portion of the accumulated render that corresponds to the one or more pixels with the at least one sample to produce the augmented accumulated render.

### Claim 18 (depends on 15)

The processor of claim 15, wherein the one or more circuits are further to accumulate the render to a history buffer.

### Claim 19 (depends on 15)

The processor of claim 15, wherein the at least one sample is from a mipmap of ray-traced samples from the render.

### Claim 20 (depends on 15)

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.
