Diff Geo - Last century and present
Download
Report
Transcript Diff Geo - Last century and present
Progressive Encoding of
Complex Isosurfaces
Haeyoung Lee Mathieu Desbrun
USC
USC
Peter Schröder
Caltech
Motivation
Largest meshes come from volume data
MRI, CT, Laser Scan
Scientific simulation
Challenging to store and/or transmit
2
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
T r a n s m i s s i o n
Single-rate
3
Our Context
High genus and many components
Remeshing impractical
» best known coders unusable!
Extracted from volume data
Very special mesh structure
V: 280039
CC:183
Genus: 425
Skull, extracted from 257x257x257 MRI volume data
4
Outline
Definitions
Previous Work
Our progressive compression
Connectivity
Geometry
Our results
Conclusion and Future work
5
Definitions
Volume data
Binary Sign
Isosurface
Piercing edge
Homogeneous
Inhomogeneous
6
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
7
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
8
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
9
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)
10
Our Design Choices (2)
Dual Contouring [Ju et al 02, SW02]
Watertight meshes
Sharp features
for hermite data
Vertices in cells,
not on edges
11
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
12
Connectivity Encoding
Sign bits (Inside/Outside)
Encode binary signs at grid vertices
» Cells with children:
necessary signs
» Cells without children:
deduce sign from the parent
encode
Leaf bits (Leaf/Non-leaf)
Encode the presence of children
» Identify non-empty cells
13
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)
14
Geometry Encoding?
Sometimes, octree bits enough!
Octree provides coarse geometry during decoding
» Barycenters of midpoints of the piercing edges
w/o geo
w/o geo
w/ geo
w/ geo
15
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
P
P
Center
Center
16
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
17
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
18
Our Results (2)
Bonsai (level 5 to end of geo)
200
Distortion
150
100
50
Oct. level
Bytes
0
5
9622
Distort (10-4) 303.47
10
11
8,411 12
32.72
8+ 100% geo.
8
7
13
14 20,324 15
Log(bytes,2)
3.66
16
145,708
17
18
0.47
19
Our Results (3)
Headscan (level 5 to end of geo)
200
150
5
7
Bytes passed
507 bytes
8,605 bytes
166.18
100
22.02
Distortion(10-4)
Distortion
Octree level
50
0
8 + 33% geo.
92,156 bytes
4.06
8
10
8 + 100% geo.
12
14
226,554 bytes
Log(bytes, 2)
0.65
16
18
20
Results (4)
For High Genus, High Complexity Geometry
30Kb
115Kb
602Kb
21
Results (5)
Encoding a raw mesh often requires > 15b/v
3.95 b/v
3.21 b/v
3.45 b/v
(0.58 + 3.37)
(0.51 + 2.70)
(0.09 + 3.39)
22
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
23
Future Work
Reducing bit rate further
Sophisticated binary valued wavelet?
View-dependent compression
View-dependent encoding
View-dependent decoding
Volume compression
Neighboring isosurfaces
24