IP Library › Granted Patent US 12,394,144
Granted Patent B2
US 12,394,144 · App. 17/536,531 · Granted Aug 19, 2025

Consistent sampling for spatial hashing

Inventors: Pascal Albert Gautron (Speracedes, FR); Carsten Alexander Waechter (Berlin, DE)
Assignee: Nvidia Corporation
G06T15/506G06T15/06
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,394,144
App. No.
17/536,531
Granted
Aug 19, 2025
Kind
B2
Abstract

Approaches presented herein reduce the presence of temporary artifacts such, as flickering, when using spatial hashing with simulation. Flickering can be avoided, at least in part, by ensuring that the same simulation points are utilized in separate executions of an algorithm, even where the execution order can vary. This can involve selecting a single representative point for each hash cell of a spatial hash map, where simulation for that hash cell will be performed for that representative point location, regardless of execution order. Both a location index and a selector value are stored for this hash map entry in a single value, where lower bits store the location index and higher bits represent the selector value. Storing the selector value in the higher-weight bits ensures an atomic maximum operation will primarily consider the selector value, and resort to the location index only in the event of equal selector values.

Claims (49)

1. A computer-implemented method, comprising:

allocating subsets of locations, in content to be rendered, to a plurality of hash map entries, individual locations of the subsets being associated with respective selector values and respective location index values, the location index values for a single instance of the content being different for each of the individual locations;

determining a representative location, within a respective hash map entry, from which to perform, independent of order, simulations for the remaining individual locations within the respective hash map entry, the representative location being one of the individual locations;

storing the selector value associated with the representative location for the respective hash map entry and the location index value associated with the representative location for the respective hash map entry in a combined value; and

providing the combined value to determine the representative location for a computing operation to be performed for the respective hash map entry during the simulations.

2. The computer-implemented method of claim 1 , wherein a lower number of bits in the combined value store the location index value and a higher number of bits store the selector value.

3. The computer-implemented method of claim 1 , further comprising:

determining the plurality of hash map entries by performing spatial hashing on a set of locations for the content to be rendered.

4. The computer-implemented method of claim 1 , wherein the locations correspond to pixels in an image to be rendered, and wherein the operation to be performed involves tracing rays for a respective hash map entry from a pixel location determined from the combined value.

5. The computer-implemented method of claim 1 , wherein the selector value is a maximum or minimum value generated using a hash function, or a pseudo-random or deterministic number generator.

6. The computer-implemented method of claim 1 , further comprising:

performing the simulation for the respective hash map entry from the determined location, wherein the determined location is the same for each of a set of instances of the content regardless of a schedule of execution for the computing operation.

7. The computer-implemented method of claim 1 , wherein data computed for the location is applied to related points for other locations in the respective hash map entry.

8. A system, comprising:

at least one processor; and

memory including instructions that, when executed by the at least one processor, cause the system to:

allocate subsets of locations, of content to be generated, to a plurality of hash map cells, individual locations of the subsets being associated with respective selector values and respective index values, the index values for a single instance of the content being different for each of the individual locations;

determine a representative location, within a respective hash map cell, from which to perform, independent of order, simulations for the remaining individual locations within the respective hash map cell, the representative location being one of the individual locations;

store the selector value associated with the representative location for the respective hash map cell and the index value associated with the representative location for the respective hash map cell in a combined value; and

provide the combined value to determine the representative location for a computing operation for the respective hash map cell during the simulation.

9. The system of claim 8 , wherein a lower number of bits in the combined value store the index value and a higher number of bits store the selector value.

10. The system of claim 8 , wherein the instructions when executed further cause the system to:

determine the plurality of hash map cells by performing spatial hashing on a set of locations for the content to be generated.

11. The system of claim 8 , wherein the locations correspond to pixels in an image to be rendered, and wherein the operation to be performed involves tracing rays for a respective hash map entry from a pixel location determined from the combined value.

12. The system of claim 8 , wherein the selector value is a maximum or minimum value generated using a hash function, or a pseudo-random or deterministic number generator.

13. The system of claim 8 , wherein the instructions when executed further cause the system to:

perform the simulation for the respective hash map cell from the determined location, wherein the determined location is the same for each of a set of instances of the content regardless of a schedule of execution for the computing operation.

14. The system of claim 8 , wherein simulation data determined for the location is applied to related points for other locations in the respective hash map cell.

15. The system of claim 8 , wherein the system comprises at least one of:

a system for performing simulation operations;

a system for performing simulation operations to test or validate autonomous machine applications;

a system for rendering graphical output;

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.

16. A non-transitory computer-readable storage medium including instructions that, if executed by one or more processors, cause the one or more processors to:

allocate subsets of pixels, of an image to be rendered, to a plurality of hash map cells, individual pixels of the subsets being associated with respective selector values and respective pixel index values, the pixel index values for the image being different for each of the individual pixels;

determine a representative pixel, within a respective hash map cell, from which to perform, independent of order, ray tracing for the remaining individual pixels, within the respective hash map cell, the representative pixel being one of the individual pixels;

store the selector value associated with the representative pixel for the respective hash map cell and the pixel index value associated with the representative pixel for the respective hash map cell in a combined value; and

provide the combined value to determine the representative pixel for a thread of execution for the respective hash map cell during ray tracing, wherein rays for the respective hash map cell are to be traced from the representative pixel.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the instructions, if executed, further cause the one or more processors to:

use a lower number of bits in the combined value to store the pixel index value and a higher number of bits to store the selector value.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the instructions, if executed, further cause the one or more processors to:

determine the plurality of hash map cells by performing spatial hashing on a set of pixels for the image to be rendered.

19. The non-transitory computer-readable storage medium of claim 17 , wherein the instructions, if executed, further cause the one or more processors to:

determine a number of pixels to be included in individual cells of the plurality of hash map cells.

20. The non-transitory computer-readable storage medium of claim 17 , wherein the selector value is a maximum or minimum value generated using a hash function or pseudo-random number generator.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2021
From: GAUTRON, PASCAL ALBERT; WAECHTER, CARSTEN ALEXANDER
To: NVIDIA CORPORATION
Reel/Frame 058226/0824 →
Continuity (1)
Related Publication 20230169721A1 · Jun 1, 2023
References Cited (3)
US 20170017645A1 · Neumeier · 2017 [cited by examiner]
US 20210166464A1 · Moloney · 2021 [cited by examiner]
US 20220406002A1 · Boisse · 2022 [cited by examiner]