Claims
- 1. A data structure stored in a memory of a computer system for representing an approximate isosurface, the approximate isosurface approximating a level set of a scalar function, the scalar function defined by function values and a 3D regular grid, the 3D regular grid comprising a plurality of grid vertices and a plurality of grid edges, each grid edge having two edge ends, each edge end being a grid vertex, the level set defined by an isolevel, each function value corresponding to one grid vertex of the 3D regular grid, the data structure comprising:
an occupancy image record, the occupancy image record including an encoded occupancy image, the encoded occupancy image being the result of applying a binary encoding algorithm to an existing occupancy image, the existing occupancy image composed of occupancy bits, each occupancy bit corresponding with the grid vertex of the 3D regular grid, each occupancy bit being equal to one of a first value and a second value, and each occupancy bit having a corresponding function value, each occupancy bit being equal to the first value if the corresponding function value is less than the isolevel, and to the second value if the corresponding function value is higher than the isolevel.
- 2. A data structure as recited in claim 1, wherein the binary encoding algorithm is a context-based arithmetic coder,
the context based arithmetic coder encoding the bits of the occupancy image in a scanning order, the context-based arithmetic coder using a different context word to encode each current bit of the occupancy image, the context word composed of context word bits, each context word bit being equal to a preceding occupancy bit, and the preceding occupancy bit being a bit of the occupancy image preceding the current bit in the scanning order.
- 3. A data structure as recited in claim 1, further comprising:
an intersection points record, the intersection points record composed of normalized intersection parameters, each normalized intersection parameter associated with an intersecting grid edge, each intersecting grid edge having two edge ends, each edge end being one of the grid vertices, wherein two grid nodes being neighbors in the 3D regular grid, the occupancy bits corresponding to the two grid nodes having different values.
- 4. A data structure as recited in claim 3, wherein the normalized intersection parameters are numbers between zero and one.
- 5. A data structure as recited in claim 4, wherein the normalized intersection parameters are quantized.
- 6. A data structure as recited in claim 5, wherein the normalized intersection parameters are compressed.
- 7. A data structure as recited in claim 5, wherein the quantized normalized intersection parameters are represented as one or more point bitplane three-dimensional images, and each point bitplane three-dimensional image is compressed using the context-based arithmetic coder.
- 8. A data structure as recited in claim 1, further comprising a normal vector record, the normal vector record composed of normal vectors, each normal vector associated with the intersecting grid edge.
- 9. A data structure as recited in claim 8, wherein the normal vectors are quantized.
- 10. A data structure as recited in claim 8, wherein the normal vectors are compressed.
- 11. A data structure as recited in claim 9, wherein the quantized normal vectors are represented as one or more normal bitplane three-dimensional images, and each normal bitplane three-dimensional image is compressed using a context-based arithmetic coder.
- 12. An encoding method comprising:
determining values of occupancy bits of an occupancy image as a function of a 3D regular grid, a scalar function and an isolevel, the method including:
visiting the nodes of the three-dimensional grid in the scanning order, comparing the function value associated with each node with the isolevel, setting a value of the occupancy bit associated with each node to a first value if the function value is less than the isolevel, and setting the value of the occupancy bit associated with each node to a second value if the function value is higher than the isolevel.
- 13. A method as recited in claim 12, further comprising determining the point location values.
- 14. A method as recited in claim 12, further comprising determining the normal vector values.
- 15. A decoding method comprising reconstructing an isosurface polygon mesh from an occupancy image, comprising the steps of:
taking compressed surface data as input and producing surface data as output; reconstructing the occupancy image by decoding an occupancy image record; determining intersection edges and decoding intersection points and corresponding normal vectors from the intersection points record and normal vectors record, respectively, if present in the compressed isosurface data; and assigning default values to the intersection points and corresponding normal vectors, if the intersection points record and normal vectors record are not present in the compressed isosurface data.
- 16. A method comprising an in-core isosurface decoder process producing a polygon mesh as a surface representation, the process including:
taking as input compressed isosurface data without an optional intersection points record and without a normal vectors record; setting normalized intersection points to a default value of one half; giving normal vectors default values being a function of neighboring intersection point values; using a smoothing algorithm as a global predictor to form and improve a quality of a reconstructed polygon mesh.
- 17. A method as recited in claim 16, further comprising at least one of:
storing compressed isosurface data in a data storage device; transmitting the compressed isosurface data through a communication medium to a remote computer system wherein the process is executed.
- 18. A method as recited in claim 16, including reconstructing the polygon mesh from an occupancy image.
- 19. A method comprising an out-of-core isosurface decoder process producing a set of oriented points as a surface representation, the process including:
taking as input compressed isosurface data with an optional intersection points record and the normal vectors record; and generating one oriented point after decoding and reconstructing each intersection point and corresponding normal vector.
- 20. A method as recited in claim 19, including reconstructing an isosurface polygon mesh from an occupancy image.
- 21. An article of manufacture comprising a computer usable medium having computer readable program code means embodied therein for causing data compression, the computer readable program code means in said article of manufacture comprising computer readable program code means for causing a computer to effect the steps of claim 12.
- 22. An article of manufacture comprising a computer usable medium having computer readable program code means embodied therein for causing data control, the computer readable program code means in said article of manufacture comprising computer readable program code means for causing a computer to effect the steps of claim 17.
- 20. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for data compression, said method steps comprising the steps of claim 12.
- 21. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for data compression, said method steps comprising the steps of claim 16.
- 22. A computer program product comprising a computer usable medium having computer readable program code means embodied therein for causing formation of a data structure, the computer readable program code means in said computer program product comprising computer readable program code means for causing a computer to effect the functions of claim 1.
- 23. A system comprising:
a memory of a computer system storing the data structure for representing an isosurface polygonal mesh, the isosurface polygonal mesh approximating a level set of a scalar function, the scalar function defined by function values and a regular three-dimensional grid, the level set defined by an isolevel, each function value associated with a node of the regular three-dimensional grid, the data structure having an occupancy record, the occupancy record including a three-dimensional occupancy image, the three-dimensional occupancy image composed of occupancy bits, each occupancy bit associated with a node of the three-dimensional grid, each occupancy bit being equal to either a first value or a second value, each occupancy bit having a corresponding function value, each occupancy bit being equal to the first value if the corresponding function value is less than the isolevel, and to the second value if the corresponding function value is higher than the isolevel.
- 24. A computer program product comprising a computer usable medium having computer readable program code means embodied therein for causing formation of a data structure, the computer readable program code means in said computer program product comprising computer readable program code means for causing a computer to effect the functions of claim 23.
- 25. A method comprising:
storing a data structure for representing an isosurface polygonal mesh, the isosurface polygonal mesh approximating a level set of a scalar function, the scalar function defined by function values and a regular three-dimensional grid, the level set defined by an isolevel, each function value associated with a node of the regular three-dimensional grid, providing the data structure with an occupancy record, the occupancy record including a three-dimensional occupancy image, the three-dimensional occupancy image composed of occupancy bits, each occupancy bit associated with a node of the three-dimensional grid, each occupancy bit being equal to either a first value or a second value, each occupancy bit having a corresponding function value, setting each occupancy bit being equal to the first value if the corresponding function value is less than the isolevel, and to the second value if the corresponding function value is higher than the isolevel.
- 26. An encoding apparatus comprising:
means for determining values of occupancy bits of an occupancy image as a function of a 3D regular grid, a scalar function and an isolevel, the method including:
means for visiting the nodes of the three-dimensional grid in the scanning order, means for comparing the function value associated with each node with the isolevel, means for setting a value of the occupancy bit associated with each node to a first value if the function value is less than the isolevel, and means for setting the value of the occupancy bit associated with each node to a second value if the function value is higher than the isolevel.
PRIORITY
[0001] This application claims priority to a Provisional Application, having the same title, assigned, Serial No. 60/400202, and filed Jul. 31, 2002, which is incorporated herein by reference in its entirety for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60400202 |
Jul 2002 |
US |