# compressing hexahedral volume meshes

of 96 /96
Compressing Hexahedral Volume Meshes Martin Isenburg UNC Chapel Hill Pierre Alliez INRIA Sophia-Antipolis

Author: easter

Post on 23-Jan-2016

57 views

Category:

## Documents

Tags:

• #### progressive compression

Embed Size (px)

DESCRIPTION

Compressing Hexahedral Volume Meshes. Martin Isenburg UNC Chapel Hill. Pierre Alliez INRIA Sophia-Antipolis. Overview. Volume Meshes Related Work Compressing Connectivity Coding with Edge Degrees Boundary Propagation Adaptive Traversal Compressing Geometry Parallelogram Prediction - PowerPoint PPT Presentation

TRANSCRIPT

CompressingHexahedral Volume Meshes

Martin IsenburgUNC

Chapel Hill

Pierre AlliezINRIA

Sophia-Antipolis

Overview• Volume Meshes• Related Work• Compressing Connectivity

– Coding with Edge Degrees– Boundary Propagation– Adaptive Traversal

• Compressing Geometry– Parallelogram Prediction

• Demo

Take this home:

“The connectivity of a hexahedral mesh can be coded through asequence of its edge degrees.”

“This encoding naturallyexploits the regularity commonly

found in such data sets.”

Volume Meshes

Volume Meshes

• scientific & industrial applications– thermodynamics

– structural mechanics

– …

• visualization & simulation• unstructured / irregular

( not on a grid )• tetrahedral, hexahedral, polyhedral

Hexahedral Volume Meshes

• have “numerical advantages in finite element computations”

• challenging to generate

• their internal structure looks “nice” compared to tetrahedral meshes

Ingredients

• geometry :positions of vertices

• connectivity :which vertices form a hexahedron

• properties:attached to vertices

density, pressure, heat, ...

Standard Representation

• connectivity

• geometry

vtx1 ( x, y, z )vtx2 ( x, y, z )vtx3 ( x, y, z )

vtxv

hex1 1 3 6 4 7 8 9 2hex2 4 5 8 2 9 1 6 7hex3 7 5 …

hexh

8h * 32 bits

3v * 32 bits

71572 hexahedra78618 vertices

log2(v)

16

size: 3.23 MB

1.69

less than

84 KB

Related Work

Surface Mesh Compression– Geometry Compression, [Deering, 95] – Topological Surgery, [Taubin & Rossignac, 98]– Cut-Border Machine, [Gumhold & Strasser, 98]– Triangle Mesh Compression, [Touma & Gotsman, 98]– Edgebreaker, [Rossignac, 99]– Spectral Compression of Geometry, [Karni & Gotsman, 00]– Face Fixer, [Isenburg & Snoeyink, 00]– Valence-driven Connectivity Coding, [Alliez & Desbrun, 01]– Near-Optimal Coding, [Khodakovsky, Alliez, Desbrun &

– Degree Duality Coder, [Isenburg, 02]– Polygonal Parallelogram Prediction, [Isenburg & Alliez, 02]

Schröder, 02]

Volume Mesh Compression– Grow & Fold, [Szymczak & Rossignac, 99]– Cut-Border Machine, [Gumhold, Guthe & Strasser, 99]

!! only for tetrahedral meshes !!

– Rendering of compressed volume data, [Yang et al., 01]

Simplification:– Simplification of tetrahedral meshes, [Trotts et al., 98]– Progressive Tetrahedralizations, [Staadt & Gross, 98]

Progressive Compression:– Implant Sprays, [Pajarola, Rossignac & Szymczak, 99]

Surface / Volume Connectivity

a mesh with v vertices has maximalsurfaces:

2v-2 triangles ~ 6v indices

connectivity dominates geometry even more for volume meshes

volumes:

O(v2) tetrahedra ~ 12v indices

O(v2) hexahedra ~ 8v indices

Degree Coding for Connectivity• Triangle Mesh Compression, [Touma & Gotsman, 98]• Valence-driven Connectivity Coding, [Alliez, Desbrun, 01]• Degree Duality Coder, [Isenburg, 02]• Near-Optimal Connectivity Coding, [Khodakovsky, Alliez,

Desbrun, Schröder, 02]

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

. . . 7 3 . . .644 56 7 6 6 6

compressed with arithmetic coder converges to entropy

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 Distribution

2

3

4

56 7 8 9+

vertex degrees

3

4

5 6 7 8 9+

face degrees

[over a set of 11 polygonal meshes]

“Worst-case” Distribution

3

4

5

6

78

9

vertex degrees

……

[Alliez & Desbrun, 01]

3.241… bpv

[Tutte, 62]

6

vertexdegrees

facedegrees

3

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

3

vertexdegrees

facedegrees

6

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

4

vertexdegrees

facedegrees

4

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

Degree Coding for Volumes ?

vertex degrees edge degrees

Regular Volume Meshes?

• elements for regular 2D tiling – regular triangle

– regular hexagon

• elements for regular 3D tiling– regular tetrahedron

– regular hexahedron

Compressing Connectivity

Space Growing

similar in spirit to “region growing”:

algorithm maintains hull enclosing processed hexahedra

• pick incomplete face on hull• process adjacent hexahedra• record degrees of its free edges

1. initialize hull with a border face

2. iterate until done

Coding with Edge Degrees

focus face

Coding with Edge Degrees

focus face

Coding with Edge Degrees

focus face

slots

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

border faces

incompletefaces

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

edges onhull maintain

slot count

Coding with Edge Degrees

edges witha slot countof zero are“zero slots”

zero slots

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Resulting Symbols

– border edge degrees

– interior edge degrees

. . . . . .

. . . . . .

3 33 3 32 42

4 5 4 4 4 4 3 4

. . . . . .YN N N N N N N N N N N N N

– border ?

. . . . . .YN N N N N N NN N N N N N

– join ?

Average Distributions

2

3

4 5 6+

border degrees

3

4

5 6 7+

interior degrees border?

2

join?

no

yes

no

yes

Possible Configurations

Possible Configurations

hut step bridge

roof

pit den

tunnel

gap

corner

Configuration: “hut”

“hut”

hut

zero-slots: 0

free faces 5free edges 8free vertices 4

not azero slot

freeedge

free vertex

freeface

Configuration: “step”

“step”

0

this is azero slot

step

zero-slots: 1

free faces 4free edges 5free vertices 2

Configuration: “bridge”

“bridge”

00 bridge

zero-slots: 2

free faces 3free edges 2free vertices --

“hut” or “roof”

for the free face of “hut” that potentially forms a roof: “join?” /Y N

hut

roof

?

“roof” “join” operation

other “join” operations

• free vertex already on hull

• free edge already on hull

hut step

for every free vertex / edge: “join?” /Y N

Reason for “join” operations

hull

Reason for “join” operations

hull

Reason for “join” operations

hull

Reason for “join” operations

hull

Reason for “join” operations

processed region

unprocessed region

hull

Reason for “join” operations

processed region

unprocessed region

hull

Reason for “join” operations

processed region

unprocessed region

hull

Reason for “join” operations

processed region

unprocessed region

hull

Reason for “join” operations

processed region

unprocessed region

join

hull

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

avoid creation of cavities

focusface

pick face with largest # of zero slots

Propagating theborder information

Explaining Exampleborder faceborder face &

slot count = 1

Explaining Exampleborder face

borderedges

Explaining Example

interior edgesincomplete

faces

Explaining Example

for everything else: “border?” /Y N

remainingelements

hangerra

bump…

warpedhutch

c1

5.32.92.1

…0.20.30.6

Results (Connectivity)

raw

bits per hexahedron (bph)model compressed

72.0 80.0 88.0

… 112.0 112.0 136.0

1 : 141 : 281 : 42 ...1 : 6211 : 3611 : 226

ratio

average compression ratio = 1 : 163

hangerra

bump…

warpedhutch

c1

5.32.92.1

…0.20.30.6

Results (Connectivity)

raw

bits per hexahedron (bph)model compressed

72.0 80.0 88.0

… 112.0 112.0 136.0

1 : 141 : 281 : 42 ...1 : 6211 : 3611 : 226

ratio

average compression ratio = 1 : 163

Compressing Geometry

Predictive Compression

1. quantize positions with b bits

(1.2045, -0.2045, 0.7045) (1008, 67, 718)floating point integer

Predictive Compression

1. quantize positions with b bits

2. traverse positions

(1.2045, -0.2045, 0.7045) (1008, 67, 718)floating point integer

Predictive Compression

1. quantize positions with b bits

2. traverse positions

3. predict position from neighbors

(1.2045, -0.2045, 0.7045) (1008, 67, 718)floating point integer

(1004, 71, 723)prediction

Predictive Compression

1. quantize positions with b bits

2. traverse positions

3. predict position from neighbors

4. store corrective vector

(1.2045, -0.2045, 0.7045) (1008, 67, 718)floating point integer

(4, -3, -5)corrector

(1004, 71, 723)prediction

Parallelogram Rule

across“non-convex”

triangles

across“non-planar”

triangles

within“planar” & “convex”

Triangle Mesh Compression, [Touma & Gotsman, 98]

8

Position Predictions

init

hut

0

4

12

3

56

7

0

12

3

v0 0v1 v0

v2 v1

v3 v0 - v1 + v2

v4 2v0 – v8 (or v0 )v5 v1 – v0 + v4

v6 v2 – v1 + v5

v7 v3 – v2 + v6

vertex prediction rule

hangerra

bump…

warpedhutch

c1

23.230.824.4

…10.519.9

5.9

Results (Geometry)

raw

bits per vertex (bpv)model compressed

48.0 48.0 48.0

… 48.0 48.0 48.0

1 : 2.11 : 1.61 : 2.0

...1 : 4.61 : 2.41 : 8.1

ratio

average compression ratio = 1 : 3.7

Demo

Summary

• degree coding for volume mesh connectivity– edge degrees

– boundary propagation

• parallelogram prediction for volume mesh geometry– “within” predictions

Current / Future Work

• Mixed Volume Meshes– hex + tet + prism + pyramid cells

• Universal Connectivity Coder– face, vertex, and edge degrees

– tri / quad / poly surfaces

– tet / hex / poly volumes

– surface mesh = cell of volume mesh

– bit-rate like specialized coder

Acknowledgements

data sets• Alla Sheffer

• Steven Owen

• Scott Mitchell

• Claudio Silva

financial support

• ARC TéléGéo grant from INRIA

Thank You!

Old Beijing & Duck

Whoever had expressed interest in going to eat duck in the ancient-style “hutong” area:

meet me 10-15 minutes after

end of PG in front of hotelbring :

• map• address card of your hotel• ~100 yuan (smaller bills for subway / bus)

Configurations: “roof”

“roof”

free faces 4free edges 4free vertices --

roof

Configurations: “tunnel”

tunnel

“tunnel”

free faces 2free edges --free vertices --

00 00

corner

Configuration: “corner”

“corner”

free faces 3free edges 3free vertices 1

0

00

gap

Configuration: “gap”

“gap”

free faces 2free edges 1free vertices --

0

0

0

00

Configurations: “pit”

0

0

0 0 pit

free faces 1free edges --free vertices --

“pit”

00

0 0

den

Configurations: “den”