240 likes | 378 Views
Progressive Encoding of Complex Isosurfaces. Haeyoung Lee Mathieu Desbrun Peter Schröder USC USC Caltech. Motivation. Largest meshes come from volume data MRI, CT, Laser Scan Scientific simulation
E N D
Progressive Encoding of Complex Isosurfaces Haeyoung Lee Mathieu Desbrun Peter Schröder USC USC Caltech
Motivation • Largest meshes come from volume data • MRI, CT, Laser Scan • Scientific simulation • Challenging to store and/or transmit
T r a n s m i s s i o n Background on Compression • Mesh Encoding vs. Geometry Encoding • Connectivity + Geometry, or Geometry only • Single-rate vs. Progressive Compression • Progressivity is preferred for huge meshes Progressive Single-rate
Our Context • High genus and many components • Remeshing impractical • best known coders unusable! • Extracted from volume data • Very special mesh structure V: 280039CC:183Genus: 425 Skull, extracted from 257x257x257 MRI volume data
Outline • Definitions • Previous Work • Our progressive compression • Connectivity • Geometry • Our results • Conclusion and Future work
Definitions • Volume data • Binary Sign • Isosurface • Piercing edge • Homogeneous • Inhomogeneous
Previous Work (1) • 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 Much lower rates than general mesh encoders
Previous Work (2) • Progressive Isosurface Compression • Laney et al. 2002 • Distance transformation & wavelet decomposition • Samet and Kochut 2002 • Octree encoding, without explicit geometry Problems: • Very limited test sets • Bitrates much worse than single-rate encoders
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
Our Design Choices (1) • Adaptive Octree for Connectivity Encoding • Enable progressive localization • Provide contexts for entropy coding • Avoid redundancy Horse: 9*9*9 (level 3) 17*17*17 (level 4) 33*33*33 (level 5)
Our Design Choices (2) • Dual Contouring [Ju et al 02, SW02] • Watertight meshes • Sharp features for hermite data • Vertices in cells, not on edges
Our Encoder At A Glance • Read in & Process volume data • Build Octree • Create Isosurface by DC • Encode Connectivity during a breadth-first traversal • Encode Geometry
Connectivity Encoding • Sign bits (Inside/Outside) • Encode binary signs at grid vertices • Cells with children: encode necessary signs • Cells without children: deduce sign from the parent • Leaf bits (Leaf/Non-leaf) • Encode the presence of children • Identify non-empty cells
Context Modeling • Compression ratios depend on context choice • Sign bitstream: • 15-bit context (best bit rates): 7 neighbors + 8 of parent • Differs from JBIG • Leaf bitstream: • 1-bit context: previous bit (best bit rates)
w/o geo w/o geo w/ geo w/ geo Geometry Encoding? • Sometimes, octree bits enough! • Octree provides coarse geometry during decoding • Barycenters of midpoints of the piercing edges
P P Center Center Geometry Encoding • 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
Implementation • Beware of Memory Footprint! • Octree data structure can be overkill • 2573 grids use up more than 1Gb • We use a “linearized” data structure • Unfolds the octree in a bitmap • No pointers, no recursive calls • Allows 10253 grids (or bigger) on your PC
Our Results (1) • 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
Our Results (2) 8+ 100% geo. 145,708 0.47 5 622 303.47 Oct. level Bytes Distort (10-4) 8 20,324 3.66 7 8,411 32.72
5 507 bytes 166.18 7 8,605 bytes 22.02 8 + 33% geo. 92,156 bytes 4.06 8 + 100% geo. 226,554 bytes 0.65 Our Results (3) Octree level Bytes passed Distortion(10-4)
Results (4) • For High Genus, High Complexity Geometry 30Kb 115Kb 602Kb
Results (5) • Encoding a raw mesh often requires > 15b/v 3.45 b/v (0.09 + 3.39) 3.95 b/v (0.58 + 3.37) 3.21 b/v (0.51 + 2.70)
Conclusion • 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
Future Work • Reducing bit rate further • Sophisticated binary valued wavelet? • View-dependent compression • View-dependent encoding • View-dependent decoding • Volume compression • Neighboring isosurfaces