View
216
Download
1
Tags:
Embed Size (px)
Citation preview
Martin IsenburgUC Berkeley
Jack SnoeyinkUNC Chapel Hill
Early Split Coding ofTriangle 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 Connectivityv -9.7 1.6 -0.2v -6.6 1.4 3.3v -1.6 1.4 2.3v -3.3 -1.4 3.0v 5.6 1.7 4.5v -6.6 1.4 6.1v -3.3 –4.4 3.7v -1.6 1.4 2.1v -5.4 -1.6 6.4...
f 1 2 3f 3 2 4f 2 1 5f 2 5 4f 6 4 5f 6 5 7f 5 1 8f 4 8 7f 7 8 9f 9 8 10f 10 11 7...
Geometry
each index uses log2 (v) bits
6 log2 (v) bpv
3.24 bpv
enumeration of triangulatedplanargraphs
[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]ComputerGraphics
“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]
PlanarGraphCoding
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]
C R C R R S. . . R C R E R C . . .
• degree-based
“Triangle Mesh Compression” [Touma & Gotsman ‘98]
3. . . . . .64 4 44 5 44S
split offset
CBM and Edgebreaker
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
C
C
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
C C
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
R
C C R
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
C C R C
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
R
C C R C R
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
C C R C R S
12
3
4
5
6
7
89
10
11
offset = 11
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L
C C R C R S L
offset = 11
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L C
C C R C R S L C
offset = 11
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR
C C R C R S L C R
offset = 11
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
C C R C R S L C R C
offset = 11
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
R
C C R C R S L C R C R
offset = 11
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
R C
C C R C R S L C R C R C
offset = 11
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
R C
R
C C R C R S L C R C R C R
offset = 11
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR 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
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR 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
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
R C
R R
RL
C C R C R S L C R C R C R R R L
offset = 11
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
R C
R R
RL
C
C C R C R S L C R C R C R R R L C
offset = 11
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
R C
R R
RL
CR
C C R C R S L C R C R C R R R L C R
offset = 11
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
R C
R R
RL
CR
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
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
R C
R R
RL
CR
RR
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
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
R C
R R
RL
CR
RR
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
processedregion
unprocessed region
compressionboundary
CC
RC
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 CR C
R C
R R
RL
CR
RR
SR
offset = 3
offset = 11
CBM and Edgebreaker
5
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
R C
R R
RL
CR
RR
SE
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
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
R C
R R
RL
CR
RR
SE
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
processedregion
unprocessed region
compressionboundary
CC
RC
RS
L CR C
R C
R R
RL
CR
RR
SE
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 = 3
+1 +3
+1 -1 +1 +1 +1 +1 +1 +1 +1 +1 +1 -1 +1 +3 +3-1 -1 -1
= 4
= 12
C
...
Subsequences of Labels areself-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
RE
… …
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
RE
… …
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
RE
… …
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
RE
… …
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
RE
… …
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
RE
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
RE
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
RE
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
RE
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
RE
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
RE
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
RE
S
R R
R
C
LR
… …
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
RE
S
R R
R
C
LR
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
RE
S
R R
R
C
LR
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
RE
S
R R
R
C
LR
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
RE
S
R R
R
C
LR
RR
CR
… …
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
RE
S
R R
R
C
LR
RR
CR
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
RE
S
R R
R
C
LR
RR
CR
CR
… …
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
RE
S
R R
R
C
LR
RR
CR
CR
… …
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
RE
S
R R
R
C
LR
RR
CR
CR
… …
CL
we did not needsplit offsets !!!
TG coder
TG coder
5
processedregion
unprocessed region
compressionboundary
slot counts
TG coder
5
processedregion
unprocessed region
compressionboundary
7
7
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
7 6
zero slot
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
7 6
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
7 6 5
zero slot
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
7 6 5
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S 24
6
7
8
11
12
1315
16
18
offset = 18
7 6 5 S
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7 6 5 S
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
7 6 5 S 7
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
7 6 5 S 7
offset = 18
zero slot
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
7 6 5 S 7
offset = 18
zero slot
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
7 6 5 S 7
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
7 6 5 S 7 6
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
7 6 5 S 7 6
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
5
7 6 5 S 7 6 5
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
5
7 6 5 S 7 6 5
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
5
7 6 5 S 7 6 5
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
5
7 6 5 S 7 6 5
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
5
7 6 5 S 7 6 5
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
5
6
7 6 5 S 7 6 5 6
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
5
6
7 6 5 S 7 6 5 6
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
5
6
7 6 5 S 7 6 5 6
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
5
6
7 6 5 S 7 6 5 6
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
5
6
7 6 5 S 7 6 5 6
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
5
6
7 6 5 S 7 6 5 6
offset = 18
TG coder
5
processedregion
unprocessed region
compressionboundary
7
6
5
S
7
6
5
6
7 6 5 S 7 6 5 6 7
offset = 18
7
…
E
Subsequences of Degrees arenot self-contained Encodings
Subsequences are not self-contained
… S 7 6 5 6 E …
5
S
… S 7 6 5 6 E …
5
S
Subsequences are not self-contained
… S 7 6 5 6 E …
5
S
Subsequences are not self-contained
… S 7 6 5 6 E …
5
S
Subsequences are not self-contained
… S 7 6 5 6 E …
5
S
Subsequences are not self-contained
… S 7 6 5 6 E …
5
S
Subsequences are not self-contained
Not unique without split offsets
… S 4 3 E 4 3 E
4
3
34 4
34
3
6 6 5 6 6 5 6 … 5 7 5 6 6 6 5 …
Early Split Coder
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
RCR
CCR
The new label W
R
C
CRCC
R
The new label W
R
C
CRCC
R
The new label W
C
R
CC R
CRCC
R
The new label W
wart
wart
RCR
CCR
The new label W
RCR
CCR
C
R
CC R
CRCC
R
wart
wart
zero slot
The new label W
RCR
CCR
CW
R
CC R
CRCC
R
wart
wart
The new label W
RCR
CCR
CWC
R
CC R
CRCC
R
wart
wart
The new label W
RCR
CCR
CWC R
R
CC R
CRCC
R
wart
wart
The “early split” operation
RR
CRC
The “early split” operation
S
RR
CRC
The “early split” operation
S
RR
CRC
R
The “early split” operation
S
RR
CRC
RL
The “early split” operation
S
RR
CRC
RL R
The “early split” operation
S
RR
CRC
RL R
Lzero slot
The “early split” operation
S
RR
CRC
RL R
L
The “early split” operation
S
RR
CRC
RL R
L
The “early split” operation
S
RR
CRC
RL R
L
The “early split” operation
S
RR
CRC
RL R
L
RR
CRC
The “early split” operation
S
RR
CRC
RL R
L
RR
CRC
C
The “early split” operation
S
RR
CRC
RL R
L
RR
CRC
C
Szero slot
The “early split” operation
S
RR
CRC
RL R
L
RR
CRC
C
SW
zero slot
The “early split” operation
S
RR
CRC
RL R
L
RR
CRC
C
WS W
The “early split” operation
S
RR
CRC
RL R
L
RR
CRC
C
WS W
C
The “early split” operation
S
RR
CRC
RL R
L
RR
CRC
C
WS W
CR
The “early split” operation
S
RR
CRC
RL R
L
RR
CRC
C
WS W
CR
R
zero slot
The “early split” operation
S
RR
CRC
RL R
L
RR
CRC
C
WS W
CR
R
W
Complete Example
One Scheme & Four Encodings
label-based
degree-based
Forward Decodingwith offsets
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
zero slot
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
zero slot
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
zero slot
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
zero slot
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Forward Decoding with offsets
V5 V4 V5 V5 V6 V6 V4 V8 V5 V5 S1,0,0
C C C C R C R C R W C R C S1 C R R E C R E
Reverse Decodingwithout offsets
Reverse Decoding w/o offsets
E V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 V3 E V4 S V5 V5 W V8 V4 V6 V6 V5 V5
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 vertexmust beat least 5
(at least 6 for early-split)
degree of vertexmust beat least 4
(at least 5 for early-split)
Thank You