Martin Isenburg UC Berkeley Jack Snoeyink UNC Chapel Hill Early Split Coding of Triangle Mesh Connectivity
Geometry Connectivity – Efficient Rendering – Progressive Transmission – Compact Storage Mesh Compression “Geometry Compression” [ Deering, 95 ] Surface Meshes – triangular – polygonal Volume Meshes – tetrahedral, hexahedral storage / network main memory
Connectivity Triangle Mesh Connectivity v v v v v v v -3.3 – v v f f f f f f f f f f f Geometry each index uses log 2 ( v ) bits 6 log 2 ( v ) bpv 3.24 bpv enumeration of triangulated planar graphs [ Tutte 62 ]
“Out-of-Core Compression”[ Isenburg & Gumhold ‘03 ] “Delphi Coding”[ Coors and Rossignac ‘04 ] “FreeLence”[ Kälberer et al. ‘05 ] Compression Schemes “Cut-Border Machine”[ Gumhold & Strasser ‘98 ] “Triangle Mesh Compression”[ Touma & Gotsman ‘98 ] “Edgebreaker”[ Rossignac ‘99 ] “Face Fixer”[ Isenburg & Snoeyink ‘00 ] “Angle Analyzer”[ Lee, Alliez & Desbrun ‘02 ] “Degree Duality Coder”[ Isenburg ‘02 ] “Near-optimal Coding”[ Khodakovsky et al. ‘02 ] “Valence-Driven Encoding”[ Alliez & Desbrun ‘01 ] Computer Graphics “Succinct encodings of planar graphs”[ He, Yao, & Hu ‘99 ] “Short encodings of planar graphs”[ Keeler & Westbrook ‘95 ] “Succinct Representations of Graphs”[ Turan ‘84 ] “Optimal Coding”[ Poulahlon & Schaeffer ‘03 ] Planar Graph Coding
Connectivity Graph Traversal split offset
Connectivity Graph Traversal
CBM – Edgebreaker – TG coder label-based split offset “Cut-Border Machine”[ Gumhold & Strasser ‘98 ] “Edgebreaker”[ Rossignac ‘99 ] “Early Split Coding” [ this paper ] CRCRRS... RCRERC degree-based “Triangle Mesh Compression” [ Touma & Gotsman ‘98 ] S split offset
CBM and Edgebreaker
5 processed region unprocessed region compression boundary
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C C
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C C R
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C C C R C
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R C C R C R
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S C C R C R S offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C C R C R S L offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C C C R C R S L C offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C C R C R S L C R offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C C C R C R S L C R C offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C C R C R S L C R C R offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C C C R C R S L C R C R C offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C R C C R C R S L C R C R C R offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C R R C C R C R S L C R C R C R R offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C R R R C C R C R S L C R C R C R R R offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C R R R L C C R C R S L C R C R C R R R L offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C R R R L C C C R C R S L C R C R C R R R L C offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C R R R L C R C C R C R S L C R C R C R R R L C R offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C R R R L C R R C C R C R S L C R C R C R R R L C R R offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C R R R L C R R R C C R C R S L C R C R C R R R L C R R R offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C R R R L C R R R S C C R C R S L C R C R C R R R L C R R R S 1 2 offset = 3 offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R C C R C R S L C R C R C R R R L C R R R S R S L C R C R C R R R L C R R R S R offset = 3 offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C R R R L C R R R S E R C C R C R S L C R C R C R R R L C R R R S R E offset = 3 offset = 11
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C R R R L C R R R S E R E C C R C R S L C R C R C R R R L C R R R S R E E offset = 11 offset = 3
CBM and Edgebreaker 5 processed region unprocessed region compression boundary C C R C R S L C R C R C R R R L C R R R S E R E C C R C R S L C R C R C R R R L C R R R S R E E C offset = 11 offset = = 4 = 12 C...
Subsequences of Labels are self-contained Encodings
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained reversible ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained reversible E E ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R R ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R R C ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R R C L ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R R C L R ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R R C L R R ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R R C L R RR ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R R C L R RR C ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R R C L R RR C R ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R R C L R RR C R C ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R R C L R RR C R C R ……
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R R C L R RR C R C R …… C
S L C R C R C R R R L C R R R S R E E Subsequences are self-contained E reversible R E S R R R C L R RR C R C R …… C L we did not need split offsets !!!
TG coder
5 processed region unprocessed region compression boundary slot counts
TG coder 5 processed region unprocessed region compression boundary 7 7
TG coder 5 processed region unprocessed region compression boundary zero slot
TG coder 5 processed region unprocessed region compression boundary
TG coder 5 processed region unprocessed region compression boundary zero slot
TG coder 5 processed region unprocessed region compression boundary
TG coder 5 processed region unprocessed region compression boundary S offset = S
TG coder 5 processed region unprocessed region compression boundary S S offset = 18
TG coder 5 processed region unprocessed region compression boundary S S 7 offset = 18
TG coder 5 processed region unprocessed region compression boundary S S 7 offset = 18 zero slot
TG coder 5 processed region unprocessed region compression boundary S S 7 offset = 18 zero slot
TG coder 5 processed region unprocessed region compression boundary S S 7 offset = 18
TG coder 5 processed region unprocessed region compression boundary S S 7 6 offset = 18
TG coder 5 processed region unprocessed region compression boundary S S 7 6 offset = 18
TG coder 5 processed region unprocessed region compression boundary S S offset = 18
TG coder 5 processed region unprocessed region compression boundary S S offset = 18
TG coder 5 processed region unprocessed region compression boundary S S offset = 18
TG coder 5 processed region unprocessed region compression boundary S S offset = 18
TG coder 5 processed region unprocessed region compression boundary S S offset = 18
TG coder 5 processed region unprocessed region compression boundary S S offset = 18
TG coder 5 processed region unprocessed region compression boundary S S offset = 18
TG coder 5 processed region unprocessed region compression boundary S S offset = 18
TG coder 5 processed region unprocessed region compression boundary S S offset = 18
TG coder 5 processed region unprocessed region compression boundary S S offset = 18
TG coder 5 processed region unprocessed region compression boundary S S offset = 18
TG coder 5 processed region unprocessed region compression boundary S S offset = 18 7 … E
Subsequences of Degrees are not self-contained Encodings
Subsequences are not self-contained … S E … 5 S
5 S Subsequences are not self-contained
… S E … 5 S Subsequences are not self-contained
… S E … 5 S Subsequences are not self-contained
… S E … 5 S Subsequences are not self-contained
… S E … 5 S Subsequences are not self-contained
Not unique without split offsets … S 4 3 E 4 3 E … …
Early Split Coder
encode with labels or degrees traverse triangles in same order – new label W – earlier split operations one-to-one mapping insights: – how to turn degree subsequences into self-contained encodings – decoding strategy decides success
R C R C C R The new label W
R C C R C C R
R C C R C C R C
R C C R C R C C R wart R C R C C R
The new label W R C R C C R C R C C R C R C C R wart zero slot
The new label W R C R C C R C W R C C R C R C C R wart
The new label W R C R C C R C W C R C C R C R C C R wart
The new label W R C R C C R C W C R R C C R C R C C R wart
The “early split” operation R R C R C
S R R C R C
S R R C R C R
S R R C R C R L
S R R C R C R L R
S R R C R C R L R L zero slot
The “early split” operation S R R C R C R L R L
S R R C R C R L R L
S R R C R C R L R L
S R R C R C R L R L
S R R C R C R L R L R R C R C C
S R R C R C R L R L R R C R C C S zero slot
The “early split” operation S R R C R C R L R L R R C R C C S W zero slot
The “early split” operation S R R C R C R L R L R R C R C C W S W
S R R C R C R L R L R R C R C C W S W C
S R R C R C R L R L R R C R C C W S W C R
S R R C R C R L R L R R C R C C W S W C R R zero slot
The “early split” operation S R R C R C R L R L R R C R C C W S W C R R W
Complete Example
One Scheme & Four Encodings label-based degree-based
Forward Decoding with offsets
V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E zero slot
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E zero slot
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E zero slot
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E zero slot
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Forward Decoding with offsets V 5 V 4 V 5 V 5 V 6 V 6 V 4 V 8 V 5 V 5 S 1,0,0 C C C C R C R C R W C R C S 1 C R R E C R E
Reverse Decoding without offsets
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Reverse Decoding w/o offsets E V 3 E V 4 S V 5 V 5 W V 8 V 4 V 6 V 6 V 5 V 5 E R C E R R C S C R C W R C R C R C C C C
Results
Compression Results
Improving the TG coder 5 “Valence-Driven Encoding”[ Alliez & Desbrun ‘01 ] degree of vertex must be at least 5 ( at least 6 for early-split ) degree of vertex must be at least 4 ( at least 5 for early-split )
Thank You