Progressive Encoding of Progressive Encoding of Complex Isosurfaces Complex Isosurfaces Haeyoung Lee Mathieu Desbrun Peter Schröder USC USC Caltech
Feb 25, 2016
Progressive Encoding of Progressive Encoding of Complex IsosurfacesComplex Isosurfaces
Haeyoung Lee Mathieu Desbrun Peter Schröder
USC USC Caltech
2
MotivationMotivationLargest meshes come from volume data
MRI, CT, Laser Scan Scientific simulation
Challenging to store and/or transmit
3
Background on Background on CompressionCompression Mesh Encoding vs. Geometry Encoding
Connectivity + Geometry, or Geometry only
Single-rate vs. Progressive Compression
Progressivity is preferred for huge meshes T r a n s m i s s i o n
Single-rate
Progressive
4
Our ContextOur Context High genus and many components
Remeshing impractical » best known coders unusable!
Extracted from volume data Very special mesh structure
V: 280039CC:183Genus: 425Skull, extracted from 257x257x257 MRI
volume data
5
OutlineOutlineDefinitionsPrevious WorkOur progressive compression
Connectivity Geometry
Our resultsConclusion and Future work
6
DefinitionsDefinitionsVolume dataBinary SignIsosurfacePiercing edgeHomogeneousInhomogeneous
7
Previous Work (1)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
8
Previous Work (2)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
9
Our ContributionsOur ContributionsProgressive 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
10
Our Design Choices (1)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)
11
Our Design Choices (2)Our Design Choices (2)Dual Contouring [Ju et al 02, SW02]
Watertight meshes Sharp features
for hermite data Vertices in cells,
not on edges
12
Our Encoder At A GlanceOur Encoder At A Glance•Read in & Process volume data•Build Octree •Create Isosurface by DC
•Encode Geometry
•Encode Connectivity during a breadth-first traversal
13
Connectivity EncodingConnectivity 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
14
Context ModelingContext ModelingCompression 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)
15
Geometry Encoding?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
16
Geometry Encoding 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
Center
P
Center
P
17
ImplementationImplementationBeware 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
18
Our Results (1)Our Results (1)Total: 6.10b/v on average out of 10 modelsConnectivity:
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
19
Our Results (2)Our Results (2)
Oct. levelBytes Distort (10-4)
5622
303.47
78,41132.72
820,324
3.66
8+ 100% geo.
145,7080.47
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
torti
on
20
Our Results (3)Our Results (3)
Octree levelBytes passedDistortion(10-4)
5507 bytes
166.18
8 + 33% geo. 92,156 bytes
4.06
8 + 100% geo.
226,554 bytes0.65
78,605 bytes
22.02
Headscan (level 5 to end of geo)
0
50
100
150
200
8 10 12 14 16 18
Log(bytes, 2)
Dis
torti
on
21
Results (4)Results (4)For High Genus, High Complexity Geometry
30Kb 115Kb 602Kb
22
Results (5)Results (5)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)
23
ConclusionConclusion 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
24
Future WorkFuture Work Reducing bit rate further
Sophisticated binary valued wavelet? View-dependent compression
View-dependent encoding View-dependent decoding
Volume compression Neighboring isosurfaces