Perfect multidimensional spatial hashing
First Claim
1. A method performed by a computer having a processor and a memory for efficiently accessing sparse spatial data by its position in a multidimensional space, the method comprising:
- storing a hash table by the processor in a memory of the computer containing the sparse spatial data in densely packed form;
storing a set of offset values in an offset table by the processor in the memory of the computer, wherein the offset values map the positions of the sparse spatial data in the multidimensional space to a hash index of the densely packed sparse spatial data'"'"'s location in the hash table according to a perfect hash function formed as a sum modulo of a size of the hash table of a first hash function of the positions plus an offset value obtained from the offset table indexed by a second hash function of the positions, where the first hash function and second hash functions are calculated using identity matrix transforms of the positions to provide coherent data access from the positions to the sparse spatial data in the hash table; and
accessing the sparse spatial data by the processor from the hash table in the memory according to the perfect hash function of the sparse spatial data'"'"'s positions within the multidimensional space.
2 Assignments
0 Petitions
Accused Products
Abstract
A multidimensional hash table is created based on a data source having sparse multidimensional data. The sparse source data is mapped into the hash table using a hash function. The hash function can be defined by accessing multidimensional values in an offset table. The offset values in the offset table can be precomputed from the static source data so as to avoid hash collisions, thus creating a perfect hash function. Additionally, the perfect hash function is designed to preserve spatial coherence of accesses, so as to improve locality of memory reference.
21 Citations
18 Claims
-
1. A method performed by a computer having a processor and a memory for efficiently accessing sparse spatial data by its position in a multidimensional space, the method comprising:
-
storing a hash table by the processor in a memory of the computer containing the sparse spatial data in densely packed form; storing a set of offset values in an offset table by the processor in the memory of the computer, wherein the offset values map the positions of the sparse spatial data in the multidimensional space to a hash index of the densely packed sparse spatial data'"'"'s location in the hash table according to a perfect hash function formed as a sum modulo of a size of the hash table of a first hash function of the positions plus an offset value obtained from the offset table indexed by a second hash function of the positions, where the first hash function and second hash functions are calculated using identity matrix transforms of the positions to provide coherent data access from the positions to the sparse spatial data in the hash table; and accessing the sparse spatial data by the processor from the hash table in the memory according to the perfect hash function of the sparse spatial data'"'"'s positions within the multidimensional space. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer system for providing efficient storage and access to sparse spatial data at positions in a multidimensional space, the computer system comprising:
-
a memory for storing; a compact hash table having a geometric shape, the compact hash table capable of receiving the sparse spatial data in a packed format; and a compact offset table having a geometric shape substantially similar to the geometric shape of the compact hash table, the compact offset table containing offset values for mapping the positions to indices of the sparse spatial data in the compact hash table according to a perfect hashing function formed as a sum modulo of a size of the compact hash table of a first hash function of the positions plus an offset value obtained from the offset table indexed by a second hash function of the positions, where the first hash function and second hash functions are calculated using identity matrix transforms of the positions to provide coherent data access from the positions to the offset values in the compact offset table and to the sparse spatial data in the compact hash table; and a processing unit for accessing the sparse spatial data from the compact hash table in the memory according to the perfect hashing function of the sparse spatial data'"'"'s position in the multidimensional space.
-
-
13. One or more computer-readable storage media containing instructions which, when executed by a computer, cause the computer to perform a method of three-dimensional painting, the method comprising:
-
creating a hashing function on a three-dimensional domain to map three-dimensional data into a hash table using offset values in an offset table, where the hashing function is formed as a sum modulo of a size of the hash table of a first hash function plus an offset value obtained from the offset table indexed by a second hash function, where the first hash function and second hash functions are calculated using identity matrix transforms to provide coherent data access into the offset table and the hash table; storing a plurality of position tags corresponding to the three-dimensional data mapped into the hash table; comparing a paintbrush position with one of the plurality of position tags; and updating the three-dimensional data mapped into the hash table based on the comparing. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification