View
229
Download
2
Tags:
Embed Size (px)
Citation preview
withDegree Duality
Prediction
CompressingPolygon Mesh Connectivity
Martin IsenburgUniversity of North Carolina
at Chapel Hill
Overview
• Background
• Connectivity Compression
• Coding with Degrees
• Duality Prediction
• Adaptive Traversal
• Example Run
• Conclusion
Background
Polygon Meshes
4
5
• connectivity
• geometry
vertex1 ( x, y, z )vertex2 ( x, y, z )vertex3 ( x, y, z )
vertexv
face1 1 2 3 4face2 3 4 3face3 5 2 1 3
facef
k v log2 (v)
:k ~ 4 :k ~ 6
24 ~ 96 v
Mesh Compression
• Geometry Compression [Deering, 95]– Fast Rendering
– Progressive Transmission
– Maximum Compression
• Geometry
• Connectivity
– Triangle Meshes
– Polygon MeshesPolygon Meshes
Maximum Compression
Connectivity
Not Triangles … Polygons!
Face Fixer [Isenburg & Snoeyink, 00]
triceratopsgalleoncessna
…tommygun
cowteapot
1.1892.0932.543
…2.2581.7811.127
Results
Face Fixer
bits per vertex (bpv)model Degree Duality
2.1152.5952.841
…2.6112.2131.669
44 %19 %11 % ...14 %20 %33 %
gain
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 withv vertices
3.24 bpv 6 log2 (v) bpv<<
Spanning Tree• Succinct Representations
of Graphs
[Turan, 84]• Short encodings of planar
graphs and maps
[Keeler & Westbrook, 95]• Geometric Compression
throughTopological 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]
boundary
focus
vertex-based
processed region
unprocessed region
boundary
focus
face-based
boundary
focus
edge-based
Classification
• code symbols are associated with edges, faces, or vertices:
Edge-BasedCompression Schemes
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region
unprocessedregion
F F R
focus
. . .
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
F
F
processed region
unprocessedregion
F F R. . .
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
F
F
F
processed region
unprocessedregion
FF F R. . .
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
F
F
R
R
processed region
unprocessedregion
FFF F R. . .
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
R
F
F
F
F
processed region
unprocessedregion
RFFF F R. . .
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
R
F
F
F
R
R
processed region
unprocessedregion
FRFFF F R. . .
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
F
R
F
F
FR
F
. . .
processed region
unprocessedregion
RFRFF. . . F F R
5. . . 4 . . .3 6 4
? ? ? ? ?
Face-BasedCompression Schemes
Face-Based
• Cut-Border Machine, [Gumhold & Strasser, 98]
• Edgebreaker, [Rossignac, 99]
focus
processed region
unprocessedregion
C R. . .
Face-Based
• Cut-Border Machine, [Gumhold & Strasser, 98]
• Edgebreaker, [Rossignac, 99]
processed region
unprocessedregion
C R C
C
. . .
Face-Based
• Cut-Border Machine, [Gumhold & Strasser, 98]
• Edgebreaker, [Rossignac, 99]
processed region
unprocessedregion
C R C
R
C
R. . .
Face-Based
• Cut-Border Machine, [Gumhold & Strasser, 98]
• Edgebreaker, [Rossignac, 99]
processed region
unprocessedregion
C R C R
R
C
R
R. . .
Face-Based
• Cut-Border Machine, [Gumhold & Strasser, 98]
• Edgebreaker, [Rossignac, 99]
C
processed region
unprocessedregion
C R C R
R
C
R
R C . . .
5. . . 4 . . .3 6 4
. . .
? ? ? ? ?
Vertex-BasedCompression Schemes
focus
Vertex-based
• Triangle Mesh Compression, [Touma & Gotsman,
98]processed region
unprocessedregion
. . . 6
Vertex-based
• Triangle Mesh Compression, [Touma & Gotsman,
98]processed region
unprocessedregion
56
5
. . .
Vertex-based
• Triangle Mesh Compression, [Touma & Gotsman,
98]processed region
unprocessedregion
56
5
. . .
Vertex-based
• Triangle Mesh Compression, [Touma & Gotsman,
98]processed region
unprocessedregion
56
5
. . .
Vertex-based
• Triangle Mesh Compression, [Touma & Gotsman,
98]processed region
5. . . 4 . . .3 6 4
56
5
6
? ? ? ? ?
unprocessedregion
6
. . .. . .
Coding with Vertex and Face Degrees
Coding with Degrees
while ( unprocessed faces )move focus to a face face degreefor ( free vertices )
caseswitch ( case )“add”: vertex degree“split”: offset“merge”: index, offset
Example Traversal
focus
“add” free vertex
processed regionunprocessed region
boundary
boundary slots
45
3
4
34 45. . .
. . .
focus(widened)
start slot
end slotfree
vertices
5
5
4
4
3
3 exit focus
focus
free vertex “splits” boundary
processed region
unprocessed region
45
3
4
34 45. . .
. . .
Ssplit
offset
stackfocus
free vertex “merges” boundary
processed region
processed region
unprocessed region
boundary in stack
mergeoffset
45
3
4
34 45. . .
. . .
M
Resulting Code
• two symbol sequences–vertex degrees (+ “split” / “merge”)
–face degrees
• compress with arithmetic coder
converges to entropy
4 5
3. . . . . .64 4 44 M 5 44
. . . . . .3 64 4 4 4 4 4 4 4
S
Entropy
for a symbol sequence of t types
# of type tpi =
i = 1
t
Entropy = pi • log2( ) bitspi
1
# total
2.0 bits1.3 bits0.2 bits
Average Distributions
2
3
4
56 7 8 9+
vertex degrees
3
4
5 6 7 8 9+
face degrees
add
mergesplit
case
Adaptation to Regularity
6
vertexdegrees
facedegrees
3
... ... ... ...
3
vertexdegrees
facedegrees
6
... ... ... ...
4
vertexdegrees
facedegrees
4
... ... ... ...
“Worst-case” Distribution
…
3
4
5
6
78
9
vertex degrees
3
face degrees
……
i = 3
pi = 1
i = 3
i • pi = 6
[Alliez & Desbrun, 01]
3.241… bpv
[Tutte, 62]
Compressing with Duality Prediction
Degree Correlation
• high-degree faces are “likely” to be surroundedby low-degreevertices
• and vice-versa
mutual degree prediction
Face Degree Prediction
focus(widened)
4
3
3
3 + 4 + 3=
33.333
average degree offocus vertices
“face degree context”
fdc =
fdc 3.3
3.3 fdc 4.3
4.3 fdc 4.9
4.9 fdc
Vertex Degree Prediction
6
=
degree offocus face
“vertex degree context”
vdc 6
vdc 6
vdc = 3
vdc = 4
vdc = 5
4
5
3
6
Compression Gain
triceratopsgalleoncessna
…tommygun
cowteapot
without
bits per vertexmodel
min / max / average gain [%] = 0 / 31 / 17
with
bits per vertex
1.1892.0932.543
…2.2581.7811.127
1.1922.3712.811
…2.9171.7811.632
Reducing the Number of Splits
Occurance of “splits”
Occurance of “splits”
Occurance of “splits”
Occurance of “splits”
Occurance of “splits”
processed region
unprocessed region
Occurance of “splits”
processed region
unprocessed region
Occurance of “splits”
processed region
unprocessed region
Occurance of “splits”
processed region
unprocessed region
Occurance of “splits”
processed region
unprocessed region
split
focus
Adaptive Traversal
• Valence-driven connectivity encoding for 3D meshes [Alliez & Desbrun, 01]
avoid creation of cavities
exitfocus
25 1.18918 2.09328 2.543… …32 2.25813 1.7813 1.127
Compression Gain
triceratopsgalleoncessna
…tommygun
cowteapot
bpvmodel splits bpvsplits
53 1.31178 2.309
172 2.882… …
131 2.449154 2.31310 1.167
without with
min / max / average gain [%] = 4 / 23 / 10
Example Decoding Run
Example Decoding Run
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
Example Decoding Run
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
4
focus
Example Decoding Run
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
6
Example Decoding Run
3
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
freevertex
exitfocus
Example Decoding Run
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
6
Example Decoding Run
5
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
free vertices
Example Decoding Run
5
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
3
Example Decoding Run
5
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
3
exitfocus
Example Decoding Run
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
4
Example Decoding Run
4
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
Example Decoding Run
4
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
5
exitfocus
Example Decoding Run
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
4
Example Decoding Run
focus(widened)
startslot
endslot
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
5
3
3
Example Decoding Run
4
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
exitfocus
Example Decoding Run
4
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
5
Example Decoding Run
focus(widened)
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
Example Decoding Run
4
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
focus
exitfocus
Example Decoding Run
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
4
Example Decoding Run
3
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
exitfocus
Example Decoding Run
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
4
Example Decoding Run
focus(widened)
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
Example Decoding Run
6
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
Example Decoding Run
6
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
2
Example Decoding Run
6
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
4
exitfocus
Example Decoding Run
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
4
Example Decoding Run
focus(widened)
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
Example Decoding Run
5
45
3 . . .64 4 4 45 2
. . .3 64 4
6 3 5 444
3 5
. . . . . .
Conclusion
Summary
• degree coding for polygonal connectivity
• duality prediction
• adaptive traversal
• proof-of-conceptimplementationusing Shout3D
http://www.cs.unc.edu/~isenburg/degreedualitycoder/
Similar Result
• Near-Optimal Connectivity Coding of 2-manifold polygon meshes [Khodakovsky, Alliez, Desbrun, Schröder]
Martin France
analysis of worst-case face degree and vertex degree distribution
entropy Tutte’s bounds
Current Work (w. Pierre Alliez)
• use polygons for better predictive geometry coding
• extend degree coding to volume mesh connectivity
“edge degrees”
“fairly planar & convex”
Thank You!