Bi-level iso-surface compression
First Claim
1. A computer system comprising a memory, a data structure stored in the memory of the 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 embodied in computer-readable material used in at least one of a computer graphics application and scientific visualization application to representing isosurface data in compressed form, and having mesh connectivity and a substantial first proportion of geometric information encoded to a fraction of a bit per Marching Cubes vertex with a context based arithmetic coder, and having any remaining second proportion of geometric information in the form of one quantized scalar value per intersecting grid edge, and specifying the location the corresponding Marching Cubes vertex more precisely, being efficiently encoded in scan-order with the same mechanism, 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, andeach 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.
4 Assignments
0 Petitions
Accused Products
Abstract
Methods, structures and systems for encoding and decoding isosurface data. An encoder process takes volume data and an isolevel as input and produces compressed isosurface data as output. The compressed isosurface data produced by an encoder process is composed of an occupancy image record, an optional intersection points record, and an optional normal vectors record. An occupancy image is compressed with a context-based arithmetic encoder. Compressed isosurface data can be stored in a data storage device or transmitted through a communication medium to a remote computer system, where the decoder process is executed. The decoder processes take compressed surface data as input and produce surface data as output. The decoder processes first reconstructs the occupancy image by decoding the occupancy image record. An in-core isosurface decoder process produces a polygon mesh as a surface representation. An out-of-core isosurface decoder process produces a set of oriented points as a surface representation.
110 Citations
26 Claims
-
1. A computer system comprising a memory, a data structure stored in the memory of the 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 embodied in computer-readable material used in at least one of a computer graphics application and scientific visualization application to representing isosurface data in compressed form, and having mesh connectivity and a substantial first proportion of geometric information encoded to a fraction of a bit per Marching Cubes vertex with a context based arithmetic coder, and having any remaining second proportion of geometric information in the form of one quantized scalar value per intersecting grid edge, and specifying the location the corresponding Marching Cubes vertex more precisely, being efficiently encoded in scan-order with the same mechanism, 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
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 occupancy image embodied in computer-readable material for use in at least one of a computer graphics application and a scientific visualization application to represent isosurface data in compressed form, and having mesh connectivity and a substantial first proportion of geometric information encoded to a fraction of a bit per Marching Cubes vertex with a context based arithmetic coder, and having any remaining second proportion of geometric information in the form of one quantized scalar value per intersecting grid edge, and specifying the location the corresponding Marching Cubes vertex more precisely, being efficiently encoded in scan-order with the same mechanism, the method further comprising; visiting the nodes of the three-dimensional grid in a scanning order, visiting the nodes of the three-dimensional grid in a 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, setting the value of the occupancy bit associated with each node to a second value if the function value is higher than the isolevel, and employing the occupancy bit value associated with each node in said occupancy image embodied in said computer-readable material for use in said at least one of said computer graphics application and said scientific visualization application to represent isosurface data in compressed form. - View Dependent Claims (13, 14, 15, 16)
-
-
17. 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, said mesh having mesh connectivity and a substantial first proportion of geometric information encoded to a fraction of a bit per Marching Cubes vertex with a context based arithmetic coder, and having any remaining second proportion of geometric information in the form of one quantized scalar value per intersecting grid edge, and specifying the location the corresponding Marching Cubes vertex more precisely, being efficiently encoded in scan-order with the same mechanism; reconstructing the occupancy image by decoding an occupancy image record; determining intersection edges and decoding intersection points and corresponding normal vectors from an intersection points record and an normal vectors record, respectively, if present in the compressed isosurface data; 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, and employing results of the steps of reconstructing, determining and assigning in said occupancy image embodied in a computer-readable material for use in at least one of a computer graphics application and a scientific visualization application to represent the isosurface data.
-
-
18. A method comprising an in-core isosurface decoder process embodied in computer-readable material producing a polygon mesh as a surface representation, said mesh having mesh connectivity and a substantial first proportion of geometric information encoded to a fraction of a bit per Marching Cubes vertex with a context based arithmetic coder, and having any remaining second proportion of geometric information in the form of one quantized scalar value per intersecting grid edge, and specifying the location the corresponding Marching Cubes vertex more precisely, being efficiently encoded in scan-order with the same mechanism, 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, and employing results of the steps of setting, giving and using in producing said polygon mesh as said surface representation, embodied in said computer-readable material for use in at least one of a computer graphics application and a scientific visualization application. - View Dependent Claims (19, 20, 21, 22)
-
-
23. 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 any optional intersection points record and any optional normal vectors record; generating one oriented point after decoding and reconstructing each said any optional intersection point and corresponding said any optional normal vector, and employing results of the steps of taking and generating in producing said set of oriented points as said surface representation, embodied in a computer-readable material for use in at least one of a computer graphics application and a scientific visualization application; and
reconstructing an isosurface polygon mesh from said set of oriented points as a surface representation, said mesh having mesh connectivity and a substantial first proportion of geometric information encoded to a fraction of a bit per Marching Cubes vertex with a context based arithmetic coder, and having any remaining second proportion of geometric information in the form of one quantized scalar value per intersecting grid edge, and specifying the location the corresponding Marching Cubes vertex more precisely, being efficiently encoded in scan-order with the same mechanism.
-
-
24. A system comprising:
a memory of a computer system storing the data structure for representing an isosurface polygonal mesh and having mesh connectivity and a substantial first proportion of geometric information encoded to a fraction of a bit per Marching Cubes vertex with a context based arithmetic coder, and having any remaining second proportion of geometric information in the form of one quantized scalar value per intersecting grid edge, and specifying the location the corresponding Marching Cubes vertex more precisely, being efficiently encoded in scan-order with the same mechanism, 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.
-
25. A method comprising:
-
storing a data structure for representing an isosurface polygonal mesh, and having mesh connectivity and a substantial first proportion of geometric information encoded to a fraction of a bit per Marching Cubes vertex with a context based arithmetic coder, and having any remaining second proportion of geometric information in the form of one quantized scalar value per intersecting grid edge, and specifying the location the corresponding Marching Cubes vertex more precisely, being efficiently encoded in scan-order with the same mechanism, 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, and employing each occupancy bit value in said occupancy image embodied in a computer-readable material for use in at least one of a computer graphics application and a scientific visualization application to represent isosurface data.
-
-
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, and having mesh connectivity and a substantial first proportion of geometric information encoded to a fraction of a bit per Marching Cubes vertex with a context based arithmetic coder, and having any remaining second proportion of geometric information in the form of one quantized scalar value per intersecting grid edge, and specifying the location the corresponding Marching Cubes vertex more precisely, being efficiently encoded in scan-order with the same mechanism, the means including; means for visiting nodes of the three-dimensional grid in scanning order, means for comparing a 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.
-
Specification