Martin Isenburg UC Berkeley Jack Snoeyink UNC Chapel Hill Early Split Coding of Triangle Mesh...

Post on 21-Dec-2015

214 views 1 download

Tags:

Transcript of Martin Isenburg UC Berkeley Jack Snoeyink UNC Chapel Hill Early Split Coding of Triangle Mesh...

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