Download presentation
1
Compressing Polygon Mesh Connectivity
with Degree Duality Prediction Martin Isenburg University of North Carolina at Chapel Hill
2
Overview Background Connectivity Compression Coding with Degrees
Duality Prediction Adaptive Traversal Example Run Conclusion
3
Background
4
Polygon Meshes connectivity geometry :k ~ 4 :k ~ 6 face1 1 2 3 4
k v log2 (v) :k ~ :k ~ 6 face face face facef The connectivity, super-linear … can be compressed constant. The geometry, linear, quantization, predictive techiques Here the vertices can be ordered arbitrarily, as long as they are referenced correctly. 4 24 ~ 96 v vertex1 ( x, y, z ) vertex2 ( x, y, z ) vertex3 ( x, y, z ) vertexv 5
5
Mesh Compression Maximum Compression Connectivity Polygon Meshes
Geometry Compression [Deering, 95] Fast Rendering Progressive Transmission Maximum Compression Geometry Connectivity Triangle Meshes Polygon Meshes Maximum Compression Connectivity Polygon Meshes
6
Not Triangles … Polygons!
Face Fixer [Isenburg & Snoeyink, 00]
7
Results 2.115 1.189 44 % model gain triceratops galleon cessna …
bits per vertex (bpv) model gain triceratops galleon cessna … tommygun cow teapot Face Fixer Degree Duality 2.115 2.595 2.841 … 2.213 1.669 1.189 2.093 2.543 … 1.781 1.127 44 % 19 % 11 % % 20 % 33 % min / max / average gain [%] = 11 / 55 / 26
8
Connectivity Compression
9
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
10
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 log2 (v) bpv
11
Spanning Tree extends to meshes of non-zero genus
Succinct Representations of Graphs [Turan, 84] Short encodings of planar graphs and maps [Keeler & Westbrook, 95] Geometric Compression through Topological Surgery [Taubin & Rossignac, 98] explicitly encode both spanning trees extends to meshes of non-zero genus
12
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] Classified into three main approaches similarities Grow boundaries on the mesh ! Include face after face ! Describe change of boundary ! differences What is a boundary ? How can including a face change the boundaries ?
13
Classification code symbols are associated with edges, faces, or vertices: boundary focus edge-based processed region unprocessed region boundary focus face-based boundary focus vertex-based We use the mesh element with which the description of a boundary change can be associated with to classify them as “face-based”, “edge-based, and “vertex-based”.
14
Edge-Based Compression Schemes
15
Edge-Based Dual Graph Approach, [Lee & Kuo, 99]
Face Fixer, [Isenburg & Snoeyink, 00] processed region unprocessed region focus . . . F F R
16
Edge-Based Dual Graph Approach, [Lee & Kuo, 99]
Face Fixer, [Isenburg & Snoeyink, 00] processed region unprocessed region F . . . F F R F
17
Edge-Based Dual Graph Approach, [Lee & Kuo, 99]
Face Fixer, [Isenburg & Snoeyink, 00] processed region F unprocessed region F . . . F F R F F
18
Edge-Based Dual Graph Approach, [Lee & Kuo, 99]
Face Fixer, [Isenburg & Snoeyink, 00] processed region R F unprocessed region F . . . F F R F F R
19
Edge-Based Dual Graph Approach, [Lee & Kuo, 99]
Face Fixer, [Isenburg & Snoeyink, 00] processed region F R F unprocessed region F . . . F F R F F R F
20
Edge-Based Dual Graph Approach, [Lee & Kuo, 99]
Face Fixer, [Isenburg & Snoeyink, 00] processed region R F R F unprocessed region F . . . F F R F F R F R
21
Edge-Based Dual Graph Approach, [Lee & Kuo, 99]
? ? ? ? ? Dual Graph Approach, [Lee & Kuo, 99] Face Fixer, [Isenburg & Snoeyink, 00] processed region R F F R F unprocessed region F . . . . . . F F R F F R F R F 5 . . . 4 3 6
22
Face-Based Compression Schemes
23
Face-Based Cut-Border Machine, [Gumhold & Strasser, 98]
Edgebreaker, [Rossignac, 99] processed region unprocessed region focus . . . C R
24
Face-Based Cut-Border Machine, [Gumhold & Strasser, 98]
Edgebreaker, [Rossignac, 99] processed region unprocessed region C . . . C R C
25
Face-Based Cut-Border Machine, [Gumhold & Strasser, 98]
Edgebreaker, [Rossignac, 99] processed region R unprocessed region C . . . C R C R
26
Face-Based Cut-Border Machine, [Gumhold & Strasser, 98]
Edgebreaker, [Rossignac, 99] processed region R R unprocessed region C . . . C R C R R
27
Face-Based Cut-Border Machine, [Gumhold & Strasser, 98]
? ? ? ? ? Cut-Border Machine, [Gumhold & Strasser, 98] Edgebreaker, [Rossignac, 99] processed region R C R unprocessed region C . . . . . . C R C R R C 5 . . . 4 3 6
28
Vertex-Based Compression Schemes
29
Vertex-based Triangle Mesh Compression, [Touma & Gotsman, 98] . . . 6
processed region unprocessed region Processing a face means focus . . . 6
30
Vertex-based Triangle Mesh Compression, [Touma & Gotsman, 98] . . . 5
processed region 5 unprocessed region . . . 6 5
31
Vertex-based Triangle Mesh Compression, [Touma & Gotsman, 98] . . . 5
processed region 5 unprocessed region . . . 6 5
32
Vertex-based Triangle Mesh Compression, [Touma & Gotsman, 98] . . . 5
processed region 5 unprocessed region . . . 6 5
33
Vertex-based Triangle Mesh Compression, [Touma & Gotsman, 98] . . .
? ? ? ? ? Triangle Mesh Compression, [Touma & Gotsman, 98] processed region 6 5 unprocessed region . . . 6 5 6 . . . 5 . . . 4 3 6
34
Coding with Vertex and Face Degrees
35
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
36
Example Traversal Their scheme grows a region on the mesh by including triangle after triangle into the compression boundary. Three cases can arise: A new vertex is added, the boundary is split, or two boundaries are merged. The decoder simply replays what happens during encoding. The only data structure that need to be maintained by are these compression boundaries.
37
“add” free vertex . . . . . . focus (widened) 3 exit focus end slot
boundary focus (widened) focus 3 processed region exit focus end slot unprocessed region free vertices 5 boundary slots 4 start slot . . . 4 5 3 4 3 4 3 . . . 5 4 4 5
38
free vertex “splits” boundary
unprocessed region S split offset focus processed region . . . 4 5 3 4 3 . . . 5 4 4
39
free vertex “merges” boundary
boundary in stack unprocessed region stack focus processed region M merge offset processed region . . . 4 5 3 4 3 . . . 5 4 4
40
Resulting Code two symbol sequences compress with arithmetic coder
vertex degrees (+ “split” / “merge”) face degrees compress with arithmetic coder converges to entropy . . . 4 3 4 4 4 6 5 S M 4 4 . . . . . . 3 4 4 4 5 4 4 4 6 4 4 4 . . .
41
Entropy for a symbol sequence of t types 1
Entropy = pi • log2( ) bits pi 0.2 bits i = 1 # of type t pi = 1.3 bits # total 2.0 bits
42
Average Distributions
add merge split case 3 4 5 6 7 8 9+ face degrees 2 3 4 5 6 7 8 9+ vertex degrees
43
Adaptation to Regularity
6 vertex degrees face degrees 3 ... 3 vertex degrees face degrees 6 ... 4 vertex degrees face degrees ...
44
“Worst-case” Distribution
3 3 i = 3 pi = 1 [Alliez & Desbrun, 01] 3.241… bpv [Tutte, 62] 4 i = 3 i • pi = 6 5 6 7 8 9 … … … vertex degrees face degrees
45
Compressing with Duality Prediction
46
Degree Correlation high-degree faces are “likely” to be surrounded by low-degree vertices and vice-versa mutual degree prediction
47
Face Degree Prediction
fdc 3.3 3.3 fdc 4.3 4.3 fdc 4.9 4.9 fdc 3 focus (widened) 4 3 average degree of focus vertices fdc = = 3.333 3 “face degree context”
48
Vertex Degree Prediction
vdc 6 vdc = 3 vdc = 4 vdc = 5 4 5 3 6 6 degree of focus face vdc = 6 “vertex degree context”
49
Compression Gain 1.192 1.189 model triceratops galleon cessna …
without with model triceratops galleon cessna … tommygun cow teapot bits per vertex bits per vertex 1.192 2.371 2.811 … 1.781 1.632 1.189 2.093 2.543 … 1.781 1.127 min / max / average gain [%] = 0 / 31 / 17
50
Reducing the Number of Splits
51
Occurance of “splits”
52
Occurance of “splits”
53
Occurance of “splits”
54
Occurance of “splits”
55
Occurance of “splits” unprocessed region processed region
56
Occurance of “splits” unprocessed region processed region
57
Occurance of “splits” unprocessed region processed region
58
Occurance of “splits” unprocessed region processed region
59
Occurance of “splits” unprocessed region split processed region
60
Adaptive Traversal Valence-driven connectivity encoding for 3D meshes [Alliez & Desbrun, 01] avoid creation of cavities exit focus focus
61
Compression Gain model triceratops galleon cessna … tommygun cow
without with model triceratops galleon cessna … tommygun cow teapot … … splits … … bpv splits bpv min / max / average gain [%] = 4 / 23 / 10
62
Example Decoding Run
63
Example Decoding Run 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 5 . . . 4 4 4 6
64
Example Decoding Run 4 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 5 . . . 4 4 4 6
65
Example Decoding Run . . . . . . focus 6 4 6 6 3 3 4 5 4 5 4 4 2 4 4 3
66
Example Decoding Run . . . . . . 3 free vertex 4 6 6 3 3 4 5 4 5 4 4 2
67
Example Decoding Run . . . . . . exit focus 6 4 6 6 3 3 4 5 4 5 4 4 2
68
Example Decoding Run . . . . . . free vertices 5 4 6 6 3 3 4 5 4 5 4 4
2 4 4 . . . 3 3 5 5 . . . 4 4 4 6
69
Example Decoding Run 3 5 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 5 . . . 4 4 4 6
70
Example Decoding Run 3 5 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 5 . . . 4 4 4 6
71
Example Decoding Run . . . . . . exit focus 4 4 6 6 3 3 4 5 4 5 4 4 2
72
Example Decoding Run 4 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 . . . 4 4 4 6 5
73
Example Decoding Run 5 4 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 5 . . . 4 4 4 6
74
Example Decoding Run . . . . . . 4 exit focus 4 6 6 3 3 4 5 4 5 4 4 2
75
Example Decoding Run . . . . . . 5 3 end slot focus (widened)
start slot 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 . . . 4 4 4 6 5
76
Example Decoding Run 4 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 . . . 4 4 4 6 5
77
Example Decoding Run . . . . . . exit focus 4 5 4 6 6 3 3 4 5 4 5 4 4
2 4 4 . . . 3 3 5 . . . 4 4 4 6 5
78
Example Decoding Run . . . . . . focus (widened) 4 6 6 3 3 4 5 4 5 4 4
2 4 4 . . . 3 3 5 . . . 4 4 4 6 5
79
Example Decoding Run 4 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 . . . 4 4 4 6 5
80
Example Decoding Run . . . . . . exit focus focus 4 4 6 6 3 3 4 5 4 5
2 4 4 . . . 3 3 5 . . . 4 4 4 6 5
81
Example Decoding Run 3 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 . . . 4 4 4 6 5
82
Example Decoding Run . . . . . . 4 exit focus 4 6 6 3 3 4 5 4 5 4 4 2
83
Example Decoding Run . . . . . . focus (widened) 4 6 6 3 3 4 5 4 5 4 4
2 4 4 . . . 3 3 5 . . . 4 4 4 6 5
84
Example Decoding Run 6 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 . . . 4 4 4 6 5
85
Example Decoding Run 2 6 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 5 . . . 4 4 4 6
86
Example Decoding Run 4 6 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 5 . . . 4 4 4 6
87
Example Decoding Run . . . . . . 4 exit focus 4 6 6 3 3 4 5 4 5 4 4 2
88
Example Decoding Run . . . . . . focus (widened) 4 6 6 3 3 4 5 4 5 4 4
2 4 4 . . . 3 3 5 . . . 4 4 4 6 5
89
Example Decoding Run . . . 5 4 6 6 3 3 4 5 4 5 4 4 2 4 4 . . . 3 3 5 5 . . . 4 4 4 6
90
Conclusion
91
Summary degree coding for polygonal connectivity duality prediction
adaptive traversal proof-of-concept implementation using Shout3D
92
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
93
Current Work (w. Pierre Alliez)
use polygons for better predictive geometry coding extend degree coding to volume mesh connectivity “fairly planar & convex” “edge degrees”
94
Thank You!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.