Method and apparatus for storing, accessing, and processing voxel-based data
First Claim
1. A method of storing and retrieving one or more voxels of a beam disposed along one or more of a plurality of storage/retrieval directions of a 3 -D matrix array in 3-D discrete voxel space, said 3 - D discrete voxel space being specified in terms of x, y and z coordinate directions, said method comprising the steps of:
- (a) storing said voxels into memory storage space, by mapping said voxels along one of said plurality of storage/retrieval directions, into a plurality of n independently accessible memory modules in said memory storage space, each said memory module being indexed with memory module indices k=0, 1 . . . n-1 and each said k-th memory module having n2 internal memory cell addresses, said n being an integer and each said memory cell provided with internal module indices, i and j, said mapping being carried out in accordance with a linear skewing function of the general form
space="preserve" listing-type="equation">k=(ax+by+cz) mod n where x, y and z are the coordinate values of each said voxel in said 3 -D discrete voxel space, where i=x and j=y, and where a, b and c are integer coefficients and n is a prime relative to said integer coefficients a, b and c, and linear combinations of said integer coefficients a, b and c the number of storage/retrieval directions in said n3 matrix array in said 3- D discrete voxel space being based upon the values of said integers a, b, c and n; and
(b) retrieving said voxels along one of said plurality of storage/retrieval directions in said 3-D voxel space, by demapping said one or more voxels along said beam by(i) determining each voxel depth measure representative of the depth of each said voxel in said n3 matrix array in aid 3- D discrete voxel space, said determination of said voxel depth measure being determined based on one or more of said x, y and z coordinate values of said voxel, said integer coefficients a, b and c, and said module index k of said memory module into which said voxel has been mapped in step (a).(ii) for each voxel along said beam parallel to said storage/retrieval direction, determining said memory cell indices i and j on the basis of said voxel depth measure and said x, y and z coordinate values corresponding to each said voxel, and(iii) identifying each voxel along a specified storage/retrieval direction using said memory cell indices i and j resulting from step b (ii) and said module index k resulting from step a.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for storing to and accessing from a memory device, one or more voxels of a beam disposed along one or more of a plurality of storage/retrieval directions of a 3-D matrix array in 3-D discrete voxel space. Voxels are stored into memory space by mapping the voxels along one of the plurality of storage/retrieval directions, into a plurality of independently addressable memory modules in memory storage space. Each memory module is indexed by a memory module index and has internal memory cell addresses. The mapping is carried out in accordance with a linear skewing function which expressed in terms of x, y, and z coordinate directions and integer n. The voxels can be retrieved along one or more of a plurality of storage/retrieval directions by de-mapping one or more of the voxels from the memory storage space into 3-D voxel space using spacial parameters and integer n. The demapping operations of the present method are also used in order to determine the voxel depth measures of voxels along one of the storage/retrieval directions.
129 Citations
19 Claims
-
1. A method of storing and retrieving one or more voxels of a beam disposed along one or more of a plurality of storage/retrieval directions of a 3 -D matrix array in 3-D discrete voxel space, said 3 - D discrete voxel space being specified in terms of x, y and z coordinate directions, said method comprising the steps of:
-
(a) storing said voxels into memory storage space, by mapping said voxels along one of said plurality of storage/retrieval directions, into a plurality of n independently accessible memory modules in said memory storage space, each said memory module being indexed with memory module indices k=0, 1 . . . n-1 and each said k-th memory module having n2 internal memory cell addresses, said n being an integer and each said memory cell provided with internal module indices, i and j, said mapping being carried out in accordance with a linear skewing function of the general form
space="preserve" listing-type="equation">k=(ax+by+cz) mod nwhere x, y and z are the coordinate values of each said voxel in said 3 -D discrete voxel space, where i=x and j=y, and where a, b and c are integer coefficients and n is a prime relative to said integer coefficients a, b and c, and linear combinations of said integer coefficients a, b and c the number of storage/retrieval directions in said n3 matrix array in said 3- D discrete voxel space being based upon the values of said integers a, b, c and n; and (b) retrieving said voxels along one of said plurality of storage/retrieval directions in said 3-D voxel space, by demapping said one or more voxels along said beam by (i) determining each voxel depth measure representative of the depth of each said voxel in said n3 matrix array in aid 3- D discrete voxel space, said determination of said voxel depth measure being determined based on one or more of said x, y and z coordinate values of said voxel, said integer coefficients a, b and c, and said module index k of said memory module into which said voxel has been mapped in step (a). (ii) for each voxel along said beam parallel to said storage/retrieval direction, determining said memory cell indices i and j on the basis of said voxel depth measure and said x, y and z coordinate values corresponding to each said voxel, and (iii) identifying each voxel along a specified storage/retrieval direction using said memory cell indices i and j resulting from step b (ii) and said module index k resulting from step a. - View Dependent Claims (2, 3, 4)
-
-
5. A method of determining which voxel in a plurality of voxels along a beam parallel to a storage/retrieval direction of an n3 matrix array in 3-D discrete voxel space, is closest to an observer viewing along said beam, said 3-D discrete voxel space being specified in terms of x, y and z coordinate directions, said method comprising the sequence of steps of:
-
(a) mapping said voxels along said beam parallel to said storage/retrieval direction into a plurality of n independently accessible memory modules being indexed with module indices k=0, 1, . . . , n-1, each said k-th memory module containing n2 memory cells, each said memory cell being specified by internal module indices i and j, said mapping being carried out in accordance with a linear skewing function of the general form
space="preserve" listing-type="equation">k=(ax+by+cz) mod nwhere x, y and z are the coordinate values of each said voxel in said 3-D discrete voxel space, where i=x and j=y, and where a, b and c are integer coefficients, the number of storage/retrieval directions in said n3 matrix array in said 3-D discrete voxel space being based upon the values of said integers a, b, c and n; (b) for each said voxel in said string of voxels along said beam parallel to said storage/retrieval direction, determining a voxel depth measure representative of the depth of each said voxel in said n3 matrix array in said 3-D discrete voxel space, said determination of said voxel depth measure being determined for each said voxel on the basis of one or more of said x, y and z coordinate values of said voxel, said integer coefficients a, b, and c, and said module index of said memory module into which said voxel has been mapped in step (a); and (c) comparing said voxel depth measures determined in step (b), so as to determine which voxel depth measure a predetermined extreme value, and thereby representative of the corresponding voxel being closest to said observer viewing along said beam parallel to said storage/retrieval direction. - View Dependent Claims (6, 7, 8, 9)
-
-
10. A method of mapping the voxels of an n3 matrix array in 3-D discrete voxel space, into a plurality of n independently accessible memory modules, said 3-D discrete voxel space being specified in terms of x, y and z coordinate directions,
said method comprising: -
(a) defining a plurality of 3-D voxel subspaces sequentially numbered module n, for K=0, 1, . . . n-1, and grouping together each said K-th 3-D voxel subspace, each said K-th 3-D voxel subspace containing a set of voxels having x, y and z coordinate values; (b) providing a plurality of independently accessible nxn memory modules indexed K=0, 1, . . . n-1, each said K-th memory module containing n2 memory cells, each memory cell being specified by internal module indices, i, j; (c) assigning each grouping of said K-th 3-D voxel subspaces to said K-th memory module; and (d) for each said voxel having said x, y and z coordinates, mapping from said 3-D voxel space, into said K-th memory module according to
space="preserve" listing-type="equation">K=(5x+2y+z) mod nand into the (i, j)-th memory cell according to x=i and y=j.
-
-
11. Apparatus for simultaneously storing and retrieving a beam of voxels disposed parallel to a storage/retrieval direction of an n3 matrix array in 3-D discrete voxel space, said 3-D discrete voxel space being specified in terms of x, y and z coordinate directions, said apparatus comprising:
-
storing means for storing said voxels into memory storage space, by mapping said voxels along one of said plurality of storage/retrieval directions, into a plurality of n independently accessible memory modules in said memory storage space, each said memory module being indexed by a memory module index and having internal memory cell addresses, said n being an integer, said mapping being carried out in accordance with a skewing function expressed in terms of said x, y and z coordinate directions and said integer n; and retrieving means for retrieving said voxels along one of said plurality of storage/retrieval directions in said 3-D voxel space, by demapping said one or more voxels from said memory storage space into said 3-D voxel space using spatial parameters and said integer n, said retrieving means comprising; (i) a plurality of n modules being indexed with module indices K=0, 1, . . . n-1, each said k-th module including a k-th memory module, a k-th local address unit for independently accessing said k-th memory module, each said memory cell of each said k-th memory module being specified by internal module indices i and j, each said k-th local address unit including a local voxel depth computation unit for computing a voxel depth measure of each voxel residing in said k-th memory module, said voxel depth measure of each voxel being representative of the depth of said voxel in said n3 matrix array, and being determined on the basis of one or more of said x, y and z coordinate values of said voxel, said integer coefficients a, b and c, and said module index k of said memory module into which said voxel is mapped, said local addressing unit further including means for determining for each said voxel, said memory cell indices i and j on the basis of said voxel depth measure and said x, y and z coordinate values corresponding to each said voxel, and memory cell index selection means for selecting memory cell indices i and j from global memory cell indices i" and j" and said voxel depth measures along said storage/retrieval directions, (ii) a central control unit including a central addressing unit for generating module indices k"=0, 1, . . . n-1, and global memory cell indices i" and j", said central addressing unit further including means for carrying out the mapping of said voxels along said beams parallel to said storage/retrieval direction, into said plurality of n independently accessible memory modules, said mapping being carried out in accordance with a linear skewing function of the general form
space="preserve" listing-type="equation">k=(ax+by+cz) mod nwhere x, y and z are the coordinate values of each said voxel in said 3-D discrete voxel space, where i=x and j=y, and where a, b and c are integer coefficients and n is a prime relative to said integer coefficients a, b and c, or to linear combinations of said integer coefficients a, b, and c of the number of storage/retrieval directions in said n3 matrix array being based upon the values of said integers a, b, c and n, (iii) means for transferring global memory cell indices i" and j" from said central addressing unit to said plurality of n local address units, and (iv) means for transferring said beam of voxels, into or from said n memory modules. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A 3-D voxel-based graphics system comprising:
-
a memory and addressing system for storing and retrieving 3-D voxel based images along a plurality of storage/retrieval directions in 3-D discrete voxel space, said memory and addressing system including a plurality of modules each said module having a memory module, and a local address unit, for independently addressing said memory module; a central addressing unit for simultaneously transmitting to each said module, broadcasted addresses and control parameters; means for transferring said broadcasted addresses and control parameters to each said module; and means for transferring said voxel-based images into or from said n memory modules. - View Dependent Claims (18, 19)
-
Specification