Compressing Polygon Mesh Connectivity with Degree Duality Prediction Martin Isenburg University of North Carolina at Chapel Hill.

Download Report

Transcript Compressing Polygon Mesh Connectivity with Degree Duality Prediction Martin Isenburg University of North Carolina at Chapel Hill.

Compressing
Polygon Mesh Connectivity
with
Degree Duality
Prediction
Martin Isenburg
University of North Carolina
at Chapel Hill
Overview
•
•
•
•
•
•
•
Background
Connectivity Compression
Coding with Degrees
Duality Prediction
Adaptive Traversal
Example Run
Conclusion
Background
Polygon Meshes
• connectivity
face1 1 2 3 4
face2 3 4 3
k v log2 (v) face3 5 2 1 3
facef
:k ~ 4
:k ~ 6
• geometry
vertex1 ( x, y, z )
vertex2 ( x, y, z )
24 ~ 96 v vertex3 ( x, y, z )
vertexv
4
5
Mesh Compression
• Geometry Compression [Deering, 95]
– Fast Rendering
– Progressive Transmission
– Maximum
MaximumCompression
Compression
• Geometry
• Connectivity
Connectivity
– Triangle Meshes
– Polygon
PolygonMeshes
Meshes
Not Triangles … Polygons!
Face Fixer [Isenburg & Snoeyink, 00]
Results
model
triceratops
galleon
cessna
…
tommygun
cow
teapot
bits per vertex (bpv)
Face Fixer Degree Duality
2.115
2.595
2.841
…
2.611
2.213
1.669
1.189
2.093
2.543
…
2.258
1.781
1.127
gain
44 %
19 %
11 %
...
14 %
20 %
33 %
min / max / average gain [%] = 11 / 55 / 26
Connectivity Compression
Connectivity Compression
assumption
• order of vertices does not matter
advantage
• no need to “preserve” indices
approach
• code only the “connectivity graph”
• re-order vertices appropriately
Connectivity Graphs
• connectivity of simple meshes is
homeomorphic to planar graph
 enumeration
 asymptotic bounds
[William Tutte 62 / 63]
number of planar triangulations with
v vertices
3.24 bpv << 6 log (v) bpv
2
Spanning Tree
• Succinct Representations
of Graphs
[Turan, 84]
• Short encodings of planar
graphs and maps
[Keeler & Westbrook, 95]
• Geometric Compression
through
Topological Surgery
[Taubin & Rossignac, 98]
 extends to meshes
of non-zero genus
Region Growing
• Triangle Mesh Compression
[Touma & Gotsman, 98]
• Cut-Border Machine
[Gumhold & Strasser, 98]
• Edgebreaker
[Rossignac, 99]
• Simple Sequential Encoding
[de Floriani et al., 99]
• Dual Graph Approach
[Lee & Kuo, 99]
• Face Fixer
[Isenburg & Snoeyink, 00]
Classification
• code symbols are associated with
edges, faces, or vertices:
boundary
processed region
boundary
boundary
unprocessed region
focus
focus
edge-based
face-based
focus
vertex-based
Edge-Based
Compression Schemes
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region
unprocessed
region
focus
... F F R
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region
unprocessed
region
... F F R F
F
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region
unprocessed
region
... F F R F F
F
F
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region
R
unprocessed
region
... F F R F F R
F
F
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region
F
R
unprocessed
region
... F F R F F R F
F
F
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region
R
F
R
unprocessed
region
... F F R F F R F R
F
F
Edge-Based
?
?
?
?
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region
R
F F
R
unprocessed
region
F
F
... F F R F F R F R F ...
... 5
4
3
6
4 ...
?
Face-Based
Compression Schemes
Face-Based
• Cut-Border Machine, [Gumhold & Strasser, 98]
• Edgebreaker, [Rossignac, 99]
processed region
unprocessed
region
focus
... C R
Face-Based
• Cut-Border Machine, [Gumhold & Strasser, 98]
• Edgebreaker, [Rossignac, 99]
processed region
unprocessed
region
... C R C
C
Face-Based
• Cut-Border Machine, [Gumhold & Strasser, 98]
• Edgebreaker, [Rossignac, 99]
processed region
R
unprocessed
region
... C R C R
C
Face-Based
• Cut-Border Machine, [Gumhold & Strasser, 98]
• Edgebreaker, [Rossignac, 99]
processed region
R
R
unprocessed
region
... C R C R R
C
Face-Based
?
?
?
?
?
• Cut-Border Machine, [Gumhold & Strasser, 98]
• Edgebreaker, [Rossignac, 99]
processed region
C
unprocessed
region
... C R C R R C ...
... 5
4
3
6
4 ...
R
R
C
Vertex-Based
Compression Schemes
Vertex-based
• Triangle Mesh Compression,
[Touma & Gotsman, 98]
processed region
unprocessed
region
focus
... 6
Vertex-based
• Triangle Mesh Compression,
[Touma & Gotsman, 98]
processed region
5
unprocessed
region
... 6
5
Vertex-based
• Triangle Mesh Compression,
[Touma & Gotsman, 98]
processed region
5
unprocessed
region
... 6
5
Vertex-based
• Triangle Mesh Compression,
[Touma & Gotsman, 98]
processed region
5
unprocessed
region
... 6
5
Vertex-based
?
?
?
?
?
• Triangle Mesh Compression,
[Touma & Gotsman, 98]
processed region
6
unprocessed
region
... 6
... 5
6
5
4
3
6
...
4 ...
5
Coding with Vertex and
Face Degrees
Coding with Degrees
while ( unprocessed faces )
move focus to a face
 face degree
for ( free vertices )
 case
switch ( case )
“add”:
 vertex degree
“split”:  offset
“merge”:  index, offset
Example Traversal
“add” free vertex
boundary
focus
processed region
exit
focus
end
slotregion
unprocessed
3
free
vertices
5focus
(widened)
4
boundary slots
start slot
... 4
... 5
5
3
4
4
4
3
5
4
3
free vertex “splits” boundary
unprocessed region
S
split
offset
processed region
... 4
... 5
5
3
4
4
4
3
focus
free vertex “merges” boundary
boundary in stack
unprocessed region
stack
focus
processed region
M
merge
offset
... 4
... 5
processed region
5
3
4
4
4
3
Resulting Code
• two symbol sequences
–vertex degrees (+ “split” / “merge”)
... 4
3
S
4
4
4
M
6
5
4
4 ...
–face degrees
... 4
3
4
4
5
4
4
4
6
4
4
4 ...
• compress with arithmetic coder
 converges to entropy
Entropy
for a symbol sequence of t types
t
Entropy =

i =1
1
pi • log2( ) bits
pi
pi =
0.2 bits
1.3 bits
# of type t
# total
2.0 bits
Average Distributions
add
4
4
3
split
merge
case
3
2
5
6 7 8 9+
vertex degrees
5 6 7 8 9+
face degrees
Adaptation to Regularity
6
...
3
...
vertex
degrees
...
3
...
face
degrees
...
6
...
vertex
degrees
...
4
...
face
degrees
...
4
...
vertex
degrees
...
...
face
degrees
“Worst-case” Distribution
3
3

pi = 1

i =3
4

 i • pi = 6
5
6
[Alliez & Desbrun, 01]
 3.241… bpv
[Tutte, 62]
i =3
7
8
9
……
…
vertex degrees
 
face degrees
Compressing with Duality
Prediction
Degree Correlation
• high-degree faces are “likely” to
be surrounded
by low-degree
vertices
• and vice-versa
 mutual
degree
prediction
Face Degree Prediction
fdc  3.3
3
focus
(widened)
4
3
average degree of
focus vertices
3.3  fdc  4.3
4.3  fdc  4.9
3+4+3
fdc =
= 3.333
3
“face degree context”
4.9  fdc
Vertex Degree Prediction
6
vdc = 3
vdc = 44
degree of
focus face
vdc = 55
vdc = 6
“vertex degree context”
vdc  66
Compression Gain
model
without
bits per vertex
with
bits per vertex
triceratops
galleon
cessna
…
tommygun
cow
teapot
1.192
2.371
2.811
…
2.917
1.781
1.632
1.189
2.093
2.543
…
2.258
1.781
1.127
min / max / average gain [%] = 0 / 31 / 17
Reducing the Number of
Splits
Occurance of “splits”
Occurance of “splits”
Occurance of “splits”
Occurance of “splits”
Occurance of “splits”
unprocessed region
processed region
Occurance of “splits”
unprocessed region
processed region
Occurance of “splits”
unprocessed region
processed region
Occurance of “splits”
unprocessed region
processed region
Occurance of “splits”
unprocessed region
split
processed region
Adaptive Traversal
• Valence-driven connectivity encoding for
3D meshes [Alliez & Desbrun, 01]
 avoid creation of cavities
exit
focus
focus
Compression Gain
model
triceratops
galleon
cessna
…
tommygun
cow
teapot
without
splits
bpv
53
78
172
…
131
154
10
1.311
2.309
2.882
…
2.449
2.313
1.167
with
splits
bpv
25
18
28
…
32
13
3
1.189
2.093
2.543
…
2.258
1.781
1.127
min / max / average gain [%] = 4 / 23 / 10
Example Decoding Run
Example Decoding Run
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
4
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
focus
6
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
3
free
vertex
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
exit
focus
6
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
free vertices
5
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
3
4
6
6
3
3
5
4
4
3
4
5
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
3
5
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
exit
focus
4
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
4
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
5
4
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
4
exit
focus
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
5
end
slot
focus
(widened)
3
3
start
slot
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
4
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
exit
focus
4
5
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
focus
(widened)
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
4
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
exit
focus
focus
4
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
3
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
4
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
exit
focus
5 4 4
5 ...
2
4
4 ...
Example Decoding Run
focus
(widened)
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
6
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
2
6
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
4
6
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
4
exit
focus
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
focus
(widened)
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5 ...
4
4
2
4
4 ...
Example Decoding Run
......
5
4
6
6
3
3
5
4
4
3
4
4
3
5
4
6
5
5
...
4
4
2
4
4 ...
Conclusion
Summary
• degree coding for polygonal
connectivity
• duality prediction
• adaptive traversal
• proof-of-concept
implementation
using Shout3D
http://www.cs.unc.edu/~isenburg/degreedualitycoder/
Similar Result
• Near-Optimal Connectivity Coding of
2-manifold polygon meshes
[Khodakovsky, Alliez, Desbrun, Schröder]
 analysis of worst-case face degree
and vertex degree distribution
entropy  Tutte’s bounds
Martin  France
Current Work
(w. Pierre Alliez)
• use polygons for better predictive
geometry coding
“fairly planar & convex”
• extend degree coding to volume
mesh connectivity
“edge degrees”
Thank You!