Progressive Encoding of Complex Isosurfaces
240 likes | 393 Vues
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
Progressive Encoding of Complex Isosurfaces
E N D
Presentation Transcript
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