with degree duality prediction compressing polygon mesh connectivity martin isenburg university of...

Post on 20-Dec-2015

228 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

withDegree Duality

Prediction

CompressingPolygon Mesh Connectivity

Martin IsenburgUniversity of North Carolina

at Chapel Hill

Overview

• Background

• Connectivity Compression

• Coding with Degrees

• Duality Prediction

• Adaptive Traversal

• Example Run

• Conclusion

Background

Polygon Meshes

4

5

• connectivity

• geometry

vertex1 ( x, y, z )vertex2 ( x, y, z )vertex3 ( x, y, z )

vertexv

face1 1 2 3 4face2 3 4 3face3 5 2 1 3

facef

k v log2 (v)

:k ~ 4 :k ~ 6

24 ~ 96 v

Mesh Compression

• Geometry Compression [Deering, 95]– Fast Rendering

– Progressive Transmission

– Maximum Compression

• Geometry

• Connectivity

– Triangle Meshes

– Polygon MeshesPolygon Meshes

Maximum Compression

Connectivity

Not Triangles … Polygons!

Face Fixer [Isenburg & Snoeyink, 00]

triceratopsgalleoncessna

…tommygun

cowteapot

1.1892.0932.543

…2.2581.7811.127

Results

Face Fixer

bits per vertex (bpv)model Degree Duality

2.1152.5952.841

…2.6112.2131.669

44 %19 %11 % ...14 %20 %33 %

gain

min / max / average gain [%] = 11 / 55 / 26

Connectivity Compression

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

Connectivity Graphs

• connectivity of simple meshes is homeomorphic to planar graph

enumeration

asymptotic bounds

[William Tutte 62 /

63]number of planar triangulations withv vertices

3.24 bpv 6 log2 (v) bpv<<

Spanning Tree• Succinct Representations

of Graphs

[Turan, 84]• Short encodings of planar

graphs and maps

[Keeler & Westbrook, 95]• Geometric Compression

throughTopological 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]

boundary

focus

vertex-based

processed region

unprocessed region

boundary

focus

face-based

boundary

focus

edge-based

Classification

• code symbols are associated with edges, faces, or vertices:

Edge-BasedCompression Schemes

Edge-Based

• Dual Graph Approach, [Lee & Kuo, 99]

• Face Fixer, [Isenburg & Snoeyink, 00]

processed region

unprocessedregion

F F R

focus

. . .

Edge-Based

• Dual Graph Approach, [Lee & Kuo, 99]

• Face Fixer, [Isenburg & Snoeyink, 00]

F

F

processed region

unprocessedregion

F F R. . .

Edge-Based

• Dual Graph Approach, [Lee & Kuo, 99]

• Face Fixer, [Isenburg & Snoeyink, 00]

F

F

F

processed region

unprocessedregion

FF F R. . .

Edge-Based

• Dual Graph Approach, [Lee & Kuo, 99]

• Face Fixer, [Isenburg & Snoeyink, 00]

F

F

R

R

processed region

unprocessedregion

FFF F R. . .

Edge-Based

• Dual Graph Approach, [Lee & Kuo, 99]

• Face Fixer, [Isenburg & Snoeyink, 00]

R

F

F

F

F

processed region

unprocessedregion

RFFF F R. . .

Edge-Based

• Dual Graph Approach, [Lee & Kuo, 99]

• Face Fixer, [Isenburg & Snoeyink, 00]

R

F

F

F

R

R

processed region

unprocessedregion

FRFFF F R. . .

Edge-Based

• Dual Graph Approach, [Lee & Kuo, 99]

• Face Fixer, [Isenburg & Snoeyink, 00]

F

R

F

F

FR

F

. . .

processed region

unprocessedregion

RFRFF. . . F F R

5. . . 4 . . .3 6 4

? ? ? ? ?

Face-BasedCompression Schemes

Face-Based

• Cut-Border Machine, [Gumhold & Strasser, 98]

• Edgebreaker, [Rossignac, 99]

focus

processed region

unprocessedregion

C R. . .

Face-Based

• Cut-Border Machine, [Gumhold & Strasser, 98]

• Edgebreaker, [Rossignac, 99]

processed region

unprocessedregion

C R C

C

. . .

Face-Based

• Cut-Border Machine, [Gumhold & Strasser, 98]

• Edgebreaker, [Rossignac, 99]

processed region

unprocessedregion

C R C

R

C

R. . .

Face-Based

• Cut-Border Machine, [Gumhold & Strasser, 98]

• Edgebreaker, [Rossignac, 99]

processed region

unprocessedregion

C R C R

R

C

R

R. . .

Face-Based

• Cut-Border Machine, [Gumhold & Strasser, 98]

• Edgebreaker, [Rossignac, 99]

C

processed region

unprocessedregion

C R C R

R

C

R

R C . . .

5. . . 4 . . .3 6 4

. . .

? ? ? ? ?

Vertex-BasedCompression Schemes

focus

Vertex-based

• Triangle Mesh Compression, [Touma & Gotsman,

98]processed region

unprocessedregion

. . . 6

Vertex-based

• Triangle Mesh Compression, [Touma & Gotsman,

98]processed region

unprocessedregion

56

5

. . .

Vertex-based

• Triangle Mesh Compression, [Touma & Gotsman,

98]processed region

unprocessedregion

56

5

. . .

Vertex-based

• Triangle Mesh Compression, [Touma & Gotsman,

98]processed region

unprocessedregion

56

5

. . .

Vertex-based

• Triangle Mesh Compression, [Touma & Gotsman,

98]processed region

5. . . 4 . . .3 6 4

56

5

6

? ? ? ? ?

unprocessedregion

6

. . .. . .

Coding with Vertex and Face Degrees

Coding with Degrees

while ( unprocessed faces )move focus to a face face degreefor ( free vertices )

caseswitch ( case )“add”: vertex degree“split”: offset“merge”: index, offset

Example Traversal

focus

“add” free vertex

processed regionunprocessed region

boundary

boundary slots

45

3

4

34 45. . .

. . .

focus(widened)

start slot

end slotfree

vertices

5

5

4

4

3

3 exit focus

focus

free vertex “splits” boundary

processed region

unprocessed region

45

3

4

34 45. . .

. . .

Ssplit

offset

stackfocus

free vertex “merges” boundary

processed region

processed region

unprocessed region

boundary in stack

mergeoffset

45

3

4

34 45. . .

. . .

M

Resulting Code

• two symbol sequences–vertex degrees (+ “split” / “merge”)

–face degrees

• compress with arithmetic coder

converges to entropy

4 5

3. . . . . .64 4 44 M 5 44

. . . . . .3 64 4 4 4 4 4 4 4

S

Entropy

for a symbol sequence of t types

# of type tpi =

i = 1

t

Entropy = pi • log2( ) bitspi

1

# total

2.0 bits1.3 bits0.2 bits

Average Distributions

2

3

4

56 7 8 9+

vertex degrees

3

4

5 6 7 8 9+

face degrees

add

mergesplit

case

Adaptation to Regularity

6

vertexdegrees

facedegrees

3

... ... ... ...

3

vertexdegrees

facedegrees

6

... ... ... ...

4

vertexdegrees

facedegrees

4

... ... ... ...

“Worst-case” Distribution

3

4

5

6

78

9

vertex degrees

3

face degrees

……

i = 3

pi = 1

i = 3

i • pi = 6

[Alliez & Desbrun, 01]

3.241… bpv

[Tutte, 62]

Compressing with Duality Prediction

Degree Correlation

• high-degree faces are “likely” to be surroundedby low-degreevertices

• and vice-versa

mutual degree prediction

Face Degree Prediction

focus(widened)

4

3

3

3 + 4 + 3=

33.333

average degree offocus vertices

“face degree context”

fdc =

fdc 3.3

3.3 fdc 4.3

4.3 fdc 4.9

4.9 fdc

Vertex Degree Prediction

6

=

degree offocus face

“vertex degree context”

vdc 6

vdc 6

vdc = 3

vdc = 4

vdc = 5

4

5

3

6

Compression Gain

triceratopsgalleoncessna

…tommygun

cowteapot

without

bits per vertexmodel

min / max / average gain [%] = 0 / 31 / 17

with

bits per vertex

1.1892.0932.543

…2.2581.7811.127

1.1922.3712.811

…2.9171.7811.632

Reducing the Number of Splits

Occurance of “splits”

Occurance of “splits”

Occurance of “splits”

Occurance of “splits”

Occurance of “splits”

processed region

unprocessed region

Occurance of “splits”

processed region

unprocessed region

Occurance of “splits”

processed region

unprocessed region

Occurance of “splits”

processed region

unprocessed region

Occurance of “splits”

processed region

unprocessed region

split

focus

Adaptive Traversal

• Valence-driven connectivity encoding for 3D meshes [Alliez & Desbrun, 01]

avoid creation of cavities

exitfocus

25 1.18918 2.09328 2.543… …32 2.25813 1.7813 1.127

Compression Gain

triceratopsgalleoncessna

…tommygun

cowteapot

bpvmodel splits bpvsplits

53 1.31178 2.309

172 2.882… …

131 2.449154 2.31310 1.167

without with

min / max / average gain [%] = 4 / 23 / 10

Example Decoding Run

Example Decoding Run

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

Example Decoding Run

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

4

focus

Example Decoding Run

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

6

Example Decoding Run

3

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

freevertex

exitfocus

Example Decoding Run

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

6

Example Decoding Run

5

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

free vertices

Example Decoding Run

5

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

3

Example Decoding Run

5

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

3

exitfocus

Example Decoding Run

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

4

Example Decoding Run

4

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

Example Decoding Run

4

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

5

exitfocus

Example Decoding Run

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

4

Example Decoding Run

focus(widened)

startslot

endslot

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

5

3

3

Example Decoding Run

4

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

exitfocus

Example Decoding Run

4

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

5

Example Decoding Run

focus(widened)

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

Example Decoding Run

4

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

focus

exitfocus

Example Decoding Run

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

4

Example Decoding Run

3

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

exitfocus

Example Decoding Run

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

4

Example Decoding Run

focus(widened)

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

Example Decoding Run

6

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

Example Decoding Run

6

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

2

Example Decoding Run

6

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

4

exitfocus

Example Decoding Run

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

4

Example Decoding Run

focus(widened)

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

Example Decoding Run

5

45

3 . . .64 4 4 45 2

. . .3 64 4

6 3 5 444

3 5

. . . . . .

Conclusion

Summary

• degree coding for polygonal connectivity

• duality prediction

• adaptive traversal

• proof-of-conceptimplementationusing Shout3D

http://www.cs.unc.edu/~isenburg/degreedualitycoder/

Similar Result

• Near-Optimal Connectivity Coding of 2-manifold polygon meshes [Khodakovsky, Alliez, Desbrun, Schröder]

Martin France

analysis of worst-case face degree and vertex degree distribution

entropy Tutte’s bounds

Current Work (w. Pierre Alliez)

• use polygons for better predictive geometry coding

• extend degree coding to volume mesh connectivity

“edge degrees”

“fairly planar & convex”

Thank You!

top related