IP Library Granted Patent US 12,423,905
Granted Patent B2
US 12,423,905 · App. 18/356,922 · Granted Sep 23, 2025

Denoising dynamically ray-traced scenes using temporal and spatial variances of historical pixel values

Inventor: Timofey Cheblokov (San Jose, CA)
Assignee: NVIDIA Corporation
G06T15/06G06T5/70
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 12,423,905
App. No.
18/356,922
Granted
Sep 23, 2025
Kind
B2
Abstract

In various examples, systems and methods are disclosed relating to historical reset. One method includes determining at least one history buffer for a frame, determining, in a spatial domain, a spatial component of the accumulated pixel value at the pixel location based on a first spatial moment and a second spatial moment, determining, in a temporal domain, a temporal component of the accumulated pixel value at the pixel location based on a first temporal moment and a second temporal moment. The method further includes determining a pixel value range based at least on the spatial component and the temporal component, determining an amount of historical reset to apply, and updating the accumulated pixel value based at least on the amount of historical reset.

Claims (41)

1. A method, comprising:

determining at least one history buffer for a frame, the at least one history buffer comprising an accumulated pixel value at a pixel location of the frame;

determining, in a spatial domain, a spatial component of the accumulated pixel value at the pixel location based on a first spatial moment and a second spatial moment, wherein the first spatial moment corresponds to a set of accumulated pixel values within a spatial region comprising the pixel location in the at least one history buffer, and wherein the second spatial moment corresponds to one or more changes in the set of accumulated pixel values within the spatial region in the at least one history buffer;

determining, in a temporal domain, a temporal component of the accumulated pixel value at the pixel location based on a first temporal moment and a second temporal moment, wherein the first temporal moment comprises the accumulated pixel value, and wherein the second temporal moment comprises a temporal variance corresponding to one or more changes in the accumulated pixel value at the pixel location;

determining a pixel value range based at least on the spatial component in the spatial domain and the temporal component in the temporal domain;

determining an amount of historical reset to apply to the at least one history buffer based on at least one of: the accumulated pixel value at the pixel location of the at least one history buffer, a current pixel value of input data at the pixel location of the frame, and the pixel value range; and

updating the accumulated pixel value based at least on the amount of historical reset.

2. The method of claim 1 , wherein determining the amount of historical reset of the at least one history buffer is in response to the current pixel value of the input data at the pixel location of the frame.

3. The method of claim 1 , wherein the determining the pixel value range is further based on a spatial tolerance and a temporal tolerance, wherein the spatial component is scaled by the spatial tolerance and the temporal component is scaled by the temporal tolerance, wherein at least one of the spatial tolerance or the temporal tolerance is based on a light transport technique or implementation.

4. The method of claim 1 , wherein the at least one history buffer is a multi-channel buffer storing a plurality of color channels and a mean of a square of a luminance at the pixel location, and wherein the one or more changes in the accumulated pixel value is stored as the mean of the square of the luminance in the multi-channel buffer.

5. The method of claim 1 , wherein the amount of historical reset is scaled according to a tuning parameter corresponding to a blending rate of input data with the at least one history buffer.

6. The method of claim 1 , wherein updating the accumulated pixel value comprises applying a linear interpolation (LERP) factor to the accumulated pixel value and the current pixel value to determine an updated pixel value, wherein the LERP factor is based on the amount of historical reset.

7. The method of claim 6 , wherein updating the accumulated pixel value comprises resetting the accumulated pixel value based on the LERP factor, wherein the LERP factor effects an amount of reset of the accumulated pixel value towards the current pixel value.

8. The method of claim 1 , wherein the accumulated pixel value corresponds to one or more of a luminance space, a color space, or chrominance space, and wherein the luminance space comprises an intensity component, the color space comprises a plurality of color components, and the chrominance space comprises a color variation component.

9. The method of claim 1 , further comprising:

providing the updated accumulated pixel value to the at least one history buffer, wherein updating the accumulated pixel value occurs during an execution of a light transport simulation operation for the frame, and wherein the accumulated pixel value is stored using the at least one history buffer; and

outputting, to a display device, content comprising an updated pixel value of the updated accumulated pixel value corresponding to the at least one history buffer.

10. A system, comprising:

one or more processing units to implement:

a temporal accumulator system to temporally accumulate pixel data associated with at least one history buffer for a frame and provide the temporally accumulated pixel data, the at least one history buffer comprising an accumulated pixel value at a pixel location of the frame;

a history system to receive the temporally accumulated pixel data corresponding to the accumulated pixel value, determine a pixel value range based at least on a spatial component in a spatial domain and a temporal component in a temporal domain, determine an amount of historical reset of the at least one history buffer based at least on the accumulated pixel value at the pixel location, a current pixel value of input data at the pixel location of the frame, and the pixel value range, and update the accumulated pixel value based at least on the amount of historical reset; and

a spatial filterer system to apply one or more spatial filters to the updated accumulated pixel value and output the updated and spatially filtered accumulated pixel value;

wherein the determining the pixel value range is further based on a spatial tolerance and a temporal tolerance, wherein the spatial component is scaled by the spatial tolerance and the temporal component is scaled by the temporal tolerance, wherein at least one of the spatial tolerance or the temporal tolerance is based on a light transport simulation technique or implementation.

11. The system of claim 10 , wherein the spatial component is based on a first spatial moment and a second spatial moment, and wherein the temporal component is based on a first temporal moment and a second temporal moment.

12. The system of claim 11 , wherein the first spatial moment comprises a mean of a set of accumulated pixel values within a spatial region comprising the pixel location in the at least one history buffer, and wherein the second spatial moment is a spatial variance corresponding to one or more changes in the set of accumulated pixel values within the spatial region in the at least one history buffer.

13. The system of claim 11 , wherein the first temporal moment comprises the accumulated pixel value, and wherein the second temporal moment comprises a temporal variance corresponding to one or more changes in the accumulated pixel value at the pixel location over a plurality of history buffers.

14. The system of claim 10 , wherein the at least one history buffer is a multi-channel buffer storing a plurality of color channels and a mean of a square of a luminance at the pixel location, and wherein one or more changes in the accumulated pixel value is stored as the mean of the square of the luminance in the multi-channel buffer.

15. The system of claim 10 , wherein the amount of historical reset is scaled according to a tuning parameter corresponding to a blending rate of input data with the at least one history buffer.

16. The system of claim 10 , wherein updating the accumulated pixel value comprises applying a linear interpolation (LERP) factor to the accumulated pixel value and the current pixel value to determine an updated pixel value, wherein the LERP factor is based on the amount of historical reset.

17. The system of claim 16 , wherein updating the accumulated pixel value comprises resetting the accumulated pixel value based on the LERP factor, wherein the LERP factor effects an amount of reset of the accumulated pixel value towards the current pixel value.

18. The system of claim 10 , wherein:

the history system is further to provide the updated accumulated pixel value to the at least one history buffer, wherein updating the accumulated pixel value occurs during an execution of a light transport simulation operation for the frame, and wherein the accumulated pixel value is stored using the at least one history buffer; and

the spatial filterer system is further to provide, as output to a display device, content comprising an updated pixel value of updated and spatially filtered accumulated pixel value.

19. A system, comprising:

an application programming interface (API) to interact with one or more applications executed using one or more circuits, the API to cause the one or more circuits to:

determine at least one history buffer for a frame, the at least one history buffer comprising an accumulated pixel value at a pixel location of the frame;

determine a spatial component of the accumulated pixel value at the pixel location based on a first spatial moment and a second spatial moment, wherein the first spatial moment comprises a mean of a set of accumulated pixel values within a spatial region comprising the pixel location in the at least one history buffer, and wherein the second spatial moment is a spatial variance corresponding to one or more changes in the set of accumulated pixel values within the spatial region in the at least one history buffer;

determine a temporal component of the accumulated pixel value at the pixel location based on a first temporal moment and a second temporal moment, wherein the first temporal moment comprises the accumulated pixel value, and wherein the second temporal moment comprises a temporal variance corresponding to one or more changes in the accumulated pixel value at the pixel location over a plurality of history buffers;

determine a pixel value range based at least on the spatial component in a spatial domain and the temporal component in a temporal domain;

determine an amount of historical reset of the at least one history buffer based on at least one of: the accumulated pixel value at the pixel location of the at least one history buffer, a current pixel value of input data at the pixel location of the frame, or the pixel value range; and

update the accumulated pixel value based at least on the amount of historical reset.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2023
From: CHEBLOKOV, TIMOFEY
To: NVIDIA CORPORATION
Reel/Frame 064344/0436 →
Continuity (1)
Related Publication 20250029315A1 · Jan 23, 2025
References Cited (52)
US 5729672A · Ashton · 1998 [cited by applicant]
US 6674430B1 · Kaufman et al. · 2004 [cited by applicant]
US 8811769B1 · Pitts et al. · 2014 [cited by applicant]
US 11216916B1 · Kozlowski et al. · 2022 [cited by applicant]
US 11232544B1 · Kozlowski · 2022 [cited by applicant]
US 11508113B2 · Zhdan et al. · 2022 [cited by applicant]
US 11600036B2 · Kozlowski et al. · 2023 [cited by applicant]
US 11783455B2 · Kozlowski · 2023 [cited by applicant]
US 11823321B2 · Zhdan et al. · 2023 [cited by applicant]
US 12182927B2 · Zhdan et al. · 2024 [cited by applicant]
US 12217386B2 · Shacklett et al. · 2025 [cited by applicant]
US 12299855B2 · Kozlowski · 2025 [cited by applicant]
US 20050270428A1 · Park · 2005 [cited by applicant]
US 20070071312A1 · Gardella et al. · 2007 [cited by applicant]
US 20140247277A1 · Guenter et al. · 2014 [cited by applicant]
US 20150287231A1 · Berghoff · 2015 [cited by applicant]
US 20150287239A1 · Berghoff · 2015 [cited by applicant]
US 20170263046A1 · Patney et al. · 2017 [cited by applicant]
US 20170272722A1 · Salvi et al. · 2017 [cited by applicant]
US 20180089807A1 · Reusch · 2018 [cited by applicant]
US 20180096516A1 · Luebke et al. · 2018 [cited by applicant]
US 20180204307A1 · Schied · 2018 [cited by examiner]
US 20180204314A1 · Kaplanyan et al. · 2018 [cited by applicant]
US 20180301110A1 · Feng et al. · 2018 [cited by applicant]
US 20180357749A1 · Young et al. · 2018 [cited by applicant]
US 20190035113A1 · Salvi et al. · 2019 [cited by applicant]
US 20190206113A1 · Kipp et al. · 2019 [cited by applicant]
US 20190311468A1 · Qian et al. · 2019 [cited by applicant]
US 20200043122A1 · Xiao et al. · 2020 [cited by applicant]
US 20200074605A1 · Goyal et al. · 2020 [cited by applicant]
US 20200118492A1 · Meng et al. · 2020 [cited by applicant]
US 20200302683A1 · Huang · 2020 [cited by applicant]
US 20210295589A1 · Zhdan · 2021 [cited by examiner]
US 20220122229A1 · Kozlowski · 2022 [cited by examiner]
US 20230267676A1 · Gruen · 2023 [cited by examiner]
US 20240185400A1 · Petrescu · 2024 [cited by examiner]
US 20250029315A1 · Cheblokov · 2025 [cited by applicant]
CN 114331861A · 2022 [cited by applicant]
CN 114332250A · 2022 [cited by applicant]
DE 102021125774A1 · 2022 [cited by applicant]
DE 102021125897A1 · 2022 [cited by applicant]
EP 2228990A2 · 2010 [cited by applicant]
Yang, Lei, Shiqiu Liu, and Marco Salvi. “A survey of temporal antialiasing techniques.” Computer graphics forum. vol. 39. No. 2. 2020. (Year: 2020). [cited by examiner]
Zeng, Zheng, et al. “Temporally Reliable Motion Vectors for Real-time Ray Tracing.” Computer Graphics Forum. vol. 40. No. 2. 2021. (Year: 2021). [cited by examiner]
Philippi, Henrik, Jeppe Revall Frisvad, and Henrik Wann Jensen. “Practical temporal and stereoscopic filtering for real-time ray tracing.” 34th Eurographics Symposium on Rendering. Eurographics Association, 2023. (Year:… [cited by examiner]
Haines, Eric, et al. (editors), “Ray Tracing Gems: High-Quality and Real-Time Rendering With DXR and Other Apis,” NVIDIA, Apress Open; Feb. 2019, 622 pages. [cited by applicant]
Herzog, Robert, et al., “Spatio-Temporal Upsampling on the GPU,” In Proceedings of the 2010 ACM SIGGRAPH symposium on Interactive 3D Graphics and Games Feb. 2010, (pp. 91-98). [cited by applicant]
Iglesias-Guitian, Jose A., et al., “Pixel History Linear Models for Real-Time Temporal Filtering,” In Computer Graphics Forum, Oct. 2016, (vol. 35, No. 7, 10 pages). [cited by applicant]
Liang, Weidong, et al., “Spatiotemporal Antialiasing for Rendering 3D Scene with Specular Effect based on Virtual Hit Points,” Abstract, Dec. 2019, 2 pages. [cited by applicant]
Marrs, Adam, et al., “Adaptive Temporal Antialiasing,” In Proceedings of the Conference on High-Performance Graphics, Aug. 2018, pp. 1-4. [cited by applicant]
Pedersen, Lasse Jon Fuglsang, “Temporal Reprojection Anti-Aliasing in INSIDE,” In Game Developers Conference, Mar. 2016, 47 pages. [cited by applicant]
International Search Report and Written Opinion on PCT/IB2024/057621 DTD Feb. 10, 2025. [cited by applicant]