Progressive Encoding of Complex Iso-Surfaces Peter Schröder Caltech ASCI Alliance Center for Simulation of Dynamic Response of Materials Joint work with: Haeyoung Lee & Mathieu Desbrun (USC) Review October 28, 2003
2 Motivation Big simulations produce big data… –many times relevant results given as iso-surface Many other applications –MRI, CT, Laser Scan science, medicine, industry, art history…
3 Background on Compression Mesh Encoding vs. Geometry Encoding –Connectivity + Geometry, or Geometry only Single-rate vs. Progressive Compression –Progressivity is essential for very large datasets T r a n s m i s s i o n Single-rate Progressive
4 Our Context High genus and many components –Remeshing impractical best known coders unusable! Extracted from volume data –Very special mesh structure V: CC:183 Genus: 425 Skull, extracted from 257x257x257 MRI volume data
5 Previous Work Single-rate Isosurface Compression –Connectivity: locate piercing edges Saupe & Kuska ’01,’02: Octree Zhang et al ’01: Binary sign and cell map Yang & Wu ’02: 3D chessboard Taubin ’02 (BLIC): Binary Sign map –Geometry: displacements along piercing edges Progressive Isosurface Compression –Laney et al Distance transformation & wavelet decomposition –Samet and Kochut 2002 Octree encoding, without explicit geometry –Far worse rates than general mesh encoders
6 Our Contributions Progressive Isosurface Codec –Connectivity Encoding Novel octree encoding of binary bitmaps –Geometry Encoding Dual contouring for crack-free visualization Best bitrates so far –even better than any single-rate isosurface encoders
7 Definitions Volume data Binary Sign Isosurface Piercing edge Homogeneous Inhomogeneous
8 Our Design Choices Adaptive Octree for Connectivity Encoding –Enable progressive localization –Provide contexts for entropy coding –Avoid redundancy Dual Contouring [Ju et al 02, SW02] –Watertight meshes –Sharp features for hermite data –Vertices in cells, not on edges
9 Our Encoder at a Glance Read in & Process volume data Build Octree Create Isosurface by DC Encode Geometry Encode Connectivity during a breadth-first traversal
10 Connectivity Encoding Sign bits (Inside/Outside) –Encode binary signs at grid vertices Cells with children: encode necessary signs Cells without children: deduce from parent Leaf bits (Leaf/Non-leaf) –Encode the presence of children Identify non-empty cells Context modeling in coder –Sign bitstream: 15-bit context (best bit rates): 7 neighbors + 8 of parent –Leaf bitstream: 1-bit context: previous bit (best bit rates)
11 Geometry Encoding? Sometimes, octree bits enough! –Octree provides coarse geometry during decoding Barycenters of midpoints of the piercing edges w/o geo w/ geo w/o geo w/ geo
12 Center P Implementation Details Local Coordinate System –Least-square fitted plane through midpoints of piercing edges –Two passes normal(z) & tangential(x,y) –Context : 8 signs of the cell Beware of Memory Footprint! –Octree data structure can be overkill grids use up more than 1Gb –We use a “linearized” data structure Unfolds the octree in a bitmap No pointers, no recursive calls Allows grids (or bigger) on your PC Center P
13 Results Total: 6.10b/v on average out of 10 models Connectivity: –0.65 b/v on average –24% better than Taubin’s single-rate BLIC Geometry: –5.45 b/v on average –For a distortion similar to 12-bit quantization
14 Results Oct. level Bytes Distort (10 -4 ) , , % geo. 145,
15 Results Octree level Bytes passed Distortion(10 -4 ) bytes % geo. 92,156 bytes % geo. 226,554 bytes ,605 bytes 22.02
16 Results For High Genus, High Complexity Geometry 30Kb 115Kb 602Kb
17 Results Encoding a raw mesh often requires > 15b/v 3.95 b/v ( ) 3.21 b/v ( ) 3.45 b/v ( )
18 Conclusion & Future Work Progressive isosurface compression – Progressive coding of binary octree – Encoding of dual contouring mesh vertices – Context modeling with arithmetic coding Competitive compression ratios –24% better than the leading single-rate on connectivity alone Reducing bit rate further –Sophisticated binary valued wavelet? View-dependent compression –View-dependent encoding –View-dependent decoding Volume compression –Neighboring isosurfaces