# No Slide Title by zn4qok8

VIEWS: 0 PAGES: 94

• pg 1
```									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
•   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
4
vertex1 ( x, y, z )
vertex2 ( x, y, z )      5
24 ~ 96 v vertex3 ( x, y, z )

vertexv
Mesh Compression
• Geometry Compression [Deering, 95]
– Fast Rendering
– Progressive Transmission
– Maximum Compression
Maximum Compression
• Geometry
• Connectivity
Connectivity
– Triangle Meshes
– Polygon Meshes
Polygon Meshes
Not Triangles … Polygons!

Face Fixer [Isenburg & Snoeyink, 00]
Results
bits per vertex (bpv)
model       Face Fixer Degree Duality   gain
triceratops     2.115        1.189        44 %
galleon       2.595        2.093        19 %
cessna        2.841        2.543        11 %
…            …            …           ...
tommygun        2.611        2.258        14 %
cow         2.213        1.781        20 %
teapot       1.669        1.127        33 %
min / max / average gain [%] = 11 / 55 / 26
Connectivity Compression
Connectivity Compression
assumption
• order of vertices does not matter
• 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                 focus

edge-based            face-based                      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 F R F
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region

unprocessed          F
region
F

... F F R F F
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region

R
unprocessed          F
region
F

... F F R F F R
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region

F
R
unprocessed          F
region
F

... F F R F F R F
Edge-Based
• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region
R
F
R
unprocessed          F
region
F

... F F R F F R F R
Edge-Based                          ?            ?   ?   ?   ?

• Dual Graph Approach, [Lee & Kuo, 99]
• Face Fixer, [Isenburg & Snoeyink, 00]
processed region
R
F F
R
unprocessed            F
region
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

... C R C
Face-Based
• Cut-Border Machine, [Gumhold & Strasser, 98]
• Edgebreaker, [Rossignac, 99]
processed region

R
unprocessed
region         C

... C R C R
Face-Based
• Cut-Border Machine, [Gumhold & Strasser, 98]
• Edgebreaker, [Rossignac, 99]
processed region

R
R
unprocessed
region         C

... C R C R R
Face-Based                          ?       ?   ?   ?   ?

• 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    4 ...
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           5
unprocessed
region

... 6       5       6   ...
... 5   4       3   6    4 ...
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 )
“split”:  offset
“merge”:  index, offset
Example Traversal
boundary

processed region                         exit focus
focus                                  3          end slot
unprocessed region
free
vertices

5focus
4
(widened)
boundary slots

start slot
... 4       5       3       4       3      4       3

... 5           4       4       5
free vertex “splits” boundary

unprocessed region

S
split          focus
offset

processed region

... 4   5       3       4   3

... 5       4       4
free vertex “merges” boundary
boundary in stack

unprocessed region
stack   processed region
focus
M
merge
offset                                                 processed region

... 4        5       3         4    3

... 5          4       4
Resulting Code
• two symbol sequences
–vertex degrees (+ “split” / “merge”)
... 4   3   S   4     4   4       6       M       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 =   1
i=
pi • log2( 1 ) bits
pi
# of type t
pi =    # total

0.2 bits     1.3 bits               2.0 bits
Average Distributions

3

split         3       5
merge                   6 7 8 9+
2                                  5 6 7 8 9+

case        vertex degrees             face degrees

6               3               3               6               4               4

...       ...   ...       ...   ...       ...   ...       ...   ...       ...   ...       ...
vertex           face           vertex           face           vertex           face
degrees         degrees         degrees         degrees         degrees         degrees
“Worst-case” Distribution
3                                                           3

4                          3pi = 1
i=
[Alliez & Desbrun, 01]
 3.241… bpv

 i • pi = 6
5
[Tutte, 62]
6
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.3  fdc  4.3
3

average degree of
focus vertices
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 = 4
4
degree of
focus face
vdc = 5
5

vdc = 6

“vertex degree context”   vdc  6
6
Compression Gain
without             with
model       bits per vertex   bits per vertex
triceratops       1.192            1.189
galleon         2.371            2.093
cessna          2.811            2.543
…              …                …
tommygun          2.917            2.258
cow           1.781            1.781
teapot         1.632            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
• Valence-driven connectivity encoding for
3D meshes [Alliez & Desbrun, 01]
 avoid creation of cavities
exit
focus

focus
Compression Gain
without            with
model        splits  bpv     splits     bpv
triceratops     53   1.311     25      1.189
galleon       78   2.309     18      2.093
cessna       172   2.882     28      2.543
…          …     …        …        …
tommygun       131   2.449     32      2.258
cow        154   2.313     13      1.781
teapot       10   1.167      3      1.127
min / max / average gain [%] = 4 / 23 / 10
Example Decoding Run
Example Decoding Run

4   6    6   3   3   4   5       4   5   4   4   2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

4

4   6    6   3   3   4   5       4   5   4   4   2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

focus
6

4   6    6   3   3   4   5       4       5   4   4   2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

free                3
vertex

4   6    6   3   3    4   5           4   5   4   4   2   4   4   ...
3    5   4   4    4   3       6       5 ...
Example Decoding Run

exit
focus

6

4   6    6   3   3   4     5       4   5   4   4   2   4   4   ...
3    5   4   4   4   3         6   5 ...
Example Decoding Run

free vertices

5

4   6    6   3   3   4     5       4   5   4   4   2   4   4   ...
3    5   4   4   4     3       6   5 ...
Example Decoding Run

3       5

4   6    6   3   3       4   5       4   5   4   4   2   4   4   ...
3    5   4   4   4       3       6   5 ...
Example Decoding Run

3

5

4   6    6   3   3   4   5       4   5   4   4   2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

exit
focus

4

4   6    6   3   3   4   5        4       5   4   4   2   4   4   ...
3    5   4   4   4   3       6     5 ...
Example Decoding Run

4

4   6    6   3   3   4   5           4   5   4   4   2   4   4   ...
3    5   4   4   4   3       6       5 ...
Example Decoding Run
5

4

4   6    6   3   3   4   5           4   5   4   4   2   4   4   ...
3    5   4   4   4   3       6       5 ...
Example Decoding Run

4

exit
focus

4   6    6   3   3   4   5       4   5    4      4   2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

end     5
slot
focus
(widened)
3

3
start
slot

4   6    6    3      3       4   5       4   5   4   4   2   4   4   ...
3    5   4     4     4       3       6   5 ...
Example Decoding Run

4

4   6    6   3   3       4   5       4   5   4   4   2   4   4   ...
3    5   4   4   4       3       6   5 ...
Example Decoding Run

exit
focus
4
5

4   6    6     3      3       4   5       4   5   4   4   2   4   4   ...
3    5   4        4   4       3       6   5 ...
Example Decoding Run

focus
(widened)

4   6    6   3   3       4   5       4   5   4   4   2   4   4   ...
3    5   4   4       4   3       6   5 ...
Example Decoding Run

4

4   6    6   3       3   4   5       4   5   4   4   2   4   4   ...
3    5   4   4       4   3       6   5 ...
Example Decoding Run

exit
focus
focus
4

4   6    6       3   3   4   5       4   5   4   4   2   4   4   ...
3    5   4       4   4   3       6   5 ...
Example Decoding Run

3

4   6    6   3   3   4   5       4   5   4   4   2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

4

exit
focus
4   6    6   3   3   4   5       4   5 4 4    2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

focus
(widened)

4   6    6   3   3   4   5       4   5   4   4   2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

6

4   6    6   3   3   4   5       4   5   4   4   2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

2
6

4   6    6   3   3   4   5       4   5   4   4   2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

4
6

4   6    6   3   3   4   5       4   5   4   4   2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

4
exit
focus

4   6    6   3   3   4   5       4   5   4    4      2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

focus
(widened)

4   6    6   3   3   4   5       4   5     4   4     2   4   4   ...
3    5   4   4   4   3       6   5 ...
Example Decoding Run

......
5

4   6    6   3   3   4   5       4   5     4   4   2    4   4   ...
3    5   4   4   4   3       6   5   ...
Conclusion
Summary
• degree coding for polygonal
connectivity
• duality prediction
• 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!

```
To top