Progressive Encoding of ComplexIso-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: 280039CC:183Genus: 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. 2002
• 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
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
• 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
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
Bonsai (level 5 to end of geo)
0
50
100
150
200
9 10 11 12 13 14 15 16 17 18
Log(bytes,2)
Dis
tort
ion
Results
Oct. level
Bytes
Distort (10-4)
5
622
303.47
7
8,411
32.72
8
20,324
3.66
8+ 100% geo.
145,708
0.47
15
Headscan (level 5 to end of geo)
0
50
100
150
200
8 10 12 14 16 18
Log(bytes, 2)
Dis
tort
ion
Results
Octree level
Bytes passed
Distortion(10-4)
5
507 bytes
166.18
8 + 33% geo.
92,156 bytes
4.06
8 + 100% geo.
226,554 bytes
0.65
7
8,605 bytes
22.02
17
Results
• Encoding a raw mesh often requires > 15b/v
3.95 b/v(0.58 + 3.37)
3.21 b/v(0.51 + 2.70)
3.45 b/v(0.09 + 3.39)
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