Progressive Encoding of Progressive Encoding of Complex Isosurfaces Complex Isosurfaces Haeyoung Lee Mathieu Desbrun Peter Schröder USC USC Caltech
Jan 15, 2016
Progressive Encoding of Progressive Encoding of Complex IsosurfacesComplex Isosurfaces
Progressive Encoding of Progressive Encoding of Complex IsosurfacesComplex Isosurfaces
Haeyoung Lee Mathieu Desbrun Peter Schröder
USC USC Caltech
2
MotivationMotivationMotivationMotivationLargest meshes come from volume data
MRI, CT, Laser Scan Scientific simulation
Challenging to store and/or transmit
3
Background on Background on CompressionCompressionBackground 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 ContextOur 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
OutlineOutlineOutlineOutline
Definitions
Previous Work
Our progressive compression Connectivity Geometry
Our results
Conclusion and Future work
6
DefinitionsDefinitionsDefinitionsDefinitions
Volume data
Binary Sign
Isosurface
Piercing edge
Homogeneous
Inhomogeneous
7
Previous Work (1)Previous Work (1)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)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 ContributionsOur 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)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)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 GlanceOur 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 EncodingConnectivity 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 ModelingContext 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?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 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
ImplementationImplementationImplementationImplementation
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
18
Our Results (1)Our Results (1)Our Results (1)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
19
Our Results (2)Our Results (2)Our Results (2)Our Results (2)
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
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
20
Our Results (3)Our Results (3)Our Results (3)Our Results (3)
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
Headscan (level 5 to end of geo)
0
50
100
150
200
8 10 12 14 16 18
Log(bytes, 2)
Dis
tort
ion
21
Results (4)Results (4)Results (4)Results (4)
For High Genus, High Complexity Geometry
30Kb 115Kb 602Kb
22
Results (5)Results (5)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
ConclusionConclusionConclusionConclusion 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 WorkFuture WorkFuture Work Reducing bit rate further
Sophisticated binary valued wavelet?
View-dependent compression View-dependent encoding View-dependent decoding
Volume compression Neighboring isosurfaces