+ All Categories
Home > Documents > Mesh Collapse Compression

Mesh Collapse Compression

Date post: 31-Dec-2015
Category:
Upload: jeremy-castro
View: 46 times
Download: 2 times
Share this document with a friend
Description:
Mesh Collapse Compression. Martin Isenburg Jack Snoeyink University of North Carolina Chapel Hill. Introduction. A novel scheme for encoding triangle mesh topology. Introduction. A novel scheme for encoding triangle mesh topology. triangle mesh. Introduction. - PowerPoint PPT Presentation
Popular Tags:
85
Martin Isenburg Jack Snoeyink University of North Carolina Chapel Hill Mesh Collapse Compression
Transcript

Martin IsenburgJack Snoeyink

University of North CarolinaChapel Hill

Mesh Collapse Compression

Introduction

A novel scheme for encoding

triangle mesh topology.

Introduction

A novel scheme for encoding

triangle mesh topology.

– triangle mesh

Introduction

A novel scheme for encoding

triangle mesh topology.

– triangle mesh

– encoding

Introduction

A novel scheme for encoding

triangle mesh topology.

– triangle mesh

– encoding

– topology

Triangle Mesh

• Computer Graphics• Surface description• Hardware support• Used everyday• Used everywhere• Used by everybody• Increasingly complex

Encoding

• Compressed representation• Decrease storage and transmission

time

011101101011...

Topology

geometry versus topology x0 y0 z0 0 1 2

x1 y1 z1 2 3 0

x2 y2 z2 2 3 1

x3 y3 z3 2 4 3

x4 y4 z4 5 4 3 . . . . .

xn yn zn

. . . . .

. . . . .

. . . . .

Overview

• previous work • simple meshes• video• example• general meshes• results• summary

Previous work

• Deering [95]

• Keeler Westbrook [95]

• Taubin Rossignac [96]

• Tauma Gotsman [98]

• Rossignac [98]

• DeFloriani et al [99]

• Isenburg Snoeyink [00]

Previous work

• Deering [95]

• Keeler Westbrook [95]

• Taubin Rossignac [96]

• Tauma Gotsman [98]

• Rossignac [98]

• DeFloriani et al [99]

• Isenburg Snoeyink [00]

Geometry Compression

Previous work

• Deering [95]

• Keeler Westbrook [95]

• Taubin Rossignac [96]

• Tauma Gotsman [98]

• Rossignac [98]

• DeFloriani et al [99]

• Isenburg Snoeyink [00]

Short Encodings of Planar Graphs and Maps

4.6 bpv (4.6)

Previous work

• Deering [95]

• Keeler Westbrook [95]

• Taubin Rossignac [96]

• Tauma Gotsman [98]

• Rossignac [98]

• DeFloriani et al [99]

• Isenburg Snoeyink [00]

Topological Surgery

2.2 ~ 4.8 bpv (--)

Previous work

• Deering [95]

• Keeler Westbrook [95]

• Taubin Rossignac [96]

• Tauma Gotsman [98]

• Rossignac [98]

• DeFloriani et al [99]

• Isenburg Snoeyink [00]

Triangle Mesh Compression

0.2 ~ 2.9 bpv (--)

Previous work

• Deering [95]

• Keeler Westbrook [95]

• Taubin Rossignac [96]

• Tauma Gotsman [98]

• Rossignac [98]

• DeFloriani et al [99]

• Isenburg Snoeyink [00]

Edgebreaker

3.4 ~ 4.0 bpv (4.0)

Previous work

• Deering [95]

• Keeler Westbrook [95]

• Taubin Rossignac [96]

• Tauma Gotsman [98]

• Rossignac [98]

• DeFloriani et al [99]

• Isenburg Snoeyink [00]

A Simple and EfficientEncoding for Triangle

Meshes4.2 ~ 5.4 bpv (6.0)

Previous work

• Deering [95]

• Keeler Westbrook [95]

• Taubin Rossignac [96]

• Tauma Gotsman [98]

• Rossignac [98]

• DeFloriani et al [99]

• Isenburg Snoeyink [00]

Face Fixer

3.9 ~ 4.1 bpv (6.0)

Simple Meshes

(1) the mesh is a surface composed of triangles

(2) the mesh has no boundary

(3) the mesh has no holes

(4) the mesh has no handles

Simple Mesh

Mesh Collapse Compression i

Input: Output:a simple mesh - a sequence of

codewords

- a permutation ofvertices

Compression Scheme

(1) initialize

- declare arbitrary directed mesh

edge as current edge

Compression Scheme

(2) loop until done (and usually):

- contract current edge- record the removed vertex- record the degree- select new current edge

Compression Scheme

(2) loop until done (but occasionally):

- divide mesh along current edge- record start symbol- continue on one mesh part- record end symbol- continue on other mesh part

Digons

A triangulation withexception of theouter face that isbound by only twoedges.

mc-edge

From Mesh to Digon

mc-vertex cut and open rearrange

new mc-edge

Various Digons

simple simple simple trivial complex

dividing edge

Encode Algorithmencode( Mesh mesh, Codec codec ) { stack.push( digonify( mesh ) ); while ( not stack.empty( ) ) { digon = stack.pop( ); while ( not digon.trivial ( ) ) { if ( digon.complex() ) { subdigon = mc-divide( digon ); stack.push( subdigon ); codec.pushCode( “S” ); } else { degree = mc-contract( digon ); codec.pushCode( degree ); } } codec.push( “E” ); }}

mc-contract

contract

mc-edge

remove selectcontract

new mc-edgeloop

mc-divide

divide select

dividing edge mc-edge mc-edge

Video

Example

Example

Example

mc-vertex

Example

mc-edge

Example

digonify

mc-edge

Example

Example

mc-contract

degree ofremovedvertex

removed vertex

Example

Example

mc-contract

removed vertex

degree ofremovedvertex

Example

Example

mc-contract

removed vertex

degree ofremovedvertex

Example

Example

mc-contract

removed vertex

degree ofremovedvertex

Example

Example

mc-divide

divided vertex

Example

mc-divide

divided vertex

Example

push on stack

Example

Example

mc-contractdegree ofremovedvertex

Example

Example

trivial digon

trivialdigon

Example

trivialdigon

Example

pop from stack

Example

Example

mc-contract

degree ofremovedvertex

Example

Example

mc-contractdegree ofremovedvertex

removedvertex

Example

Example

trivial digon

trivialdigon

Example

trivialdigon

Example

Example

mc-tree

Example

mc-tree

embeddedmc-tree

Example

mc-tree

Example

Vertex permutation

Code word sequence

mc-encoding mc-tree

Decode algorithm

decode( Mesh mesh, Codec codec ) { while ( not codec.empty( ) ) { code = codec.popCode( ); if ( code == “E” ) { stack.push( digon ); digon = new Digon( ); } else if ( code == “S” ) { subdigon = stack.pop( ); mc-join( digon, subdigon ); } else { mc-expand( digon, code ); } } mesh = undigonify ( digon );}

General Meshes

(1) the mesh is a surface composed of triangles

(2) the mesh can have a boundary

(3) the mesh can have holes

(4) the mesh can have handles

Simple Mesh

Boundary

Holes

Handle

Handle & Boundary

Handle & Holes

Encoding a Boundary

mc-vertex mc-edge added edge

Encoding a Hole

hole added vertex

Encoding a Handle

digon in stack

After mc-contract:

M + index + [0..5]

After mc-divide:

M + index + [0..1]

Hiding in a trivial digon:

M + index + [0..7]

Results

vertices/triangles bpvmesh

250/496 1.4 ~ 1.7bishop

1524/3044 2.7 ~ 2.8bunny

1502/3000 3.1 ~ 3.4dragon

2832/5660 2.4 ~ 2.7triceratops

2655/5030 2.5 ~ 2.7beethoven

2562/5120 1.1 ~ 1.2shape

Results

vertices/triangles bpvmesh

250/496 1.4 ~ 1.7bishop

1524/3044 2.7 ~ 2.8bunny

1502/3000 3.1 ~ 3.4dragon

2832/5660 2.4 ~ 2.7triceratops

2655/5030 2.5 ~ 2.7beethoven

2562/5120 1.1 ~ 1.2shape

Results

vertices/triangles bpvmesh

250/496 1.4 ~ 1.7bishop

1524/3044 2.7 ~ 2.8bunny

1502/3000 3.1 ~ 3.4dragon

2832/5660 2.4 ~ 2.7triceratops

2655/5030 2.5 ~ 2.7beethoven

2562/5120 1.1 ~ 1.2shape

Results

vertices/triangles bpvmesh

250/496 1.4 ~ 1.7bishop

1524/3044 2.7 ~ 2.8bunny

1502/3000 3.1 ~ 3.4dragon

2832/5660 2.4 ~ 2.7triceratops

2655/5030 2.5 ~ 2.7beethoven

2562/5120 1.1 ~ 1.2shape

Results

vertices/triangles bpvmesh

250/496 1.4 ~ 1.7bishop

1524/3044 2.7 ~ 2.8bunny

1502/3000 3.1 ~ 3.4dragon

2832/5660 2.4 ~ 2.7triceratops

2655/5030 2.5 ~ 2.7beethoven

2562/5120 1.1 ~ 1.2shape

Results

vertices/triangles bpvmesh

250/496 1.4 ~ 1.7bishop

1524/3044 2.7 ~ 2.8bunny

1502/3000 3.1 ~ 3.4dragon

2832/5660 2.4 ~ 2.7triceratops

2655/5030 2.5 ~ 2.7beethoven

2562/5120 1.1 ~ 1.2shape

Results

vertices/triangles bpvmesh

250/496 1.4 ~ 1.7bishop

1524/3044 2.7 ~ 2.8bunny

1502/3000 3.1 ~ 3.4dragon

2832/5660 2.4 ~ 2.7triceratops

2655/5030 2.5 ~ 2.7beethoven

2562/5120 1.1 ~ 1.2shape

Summary

We presented a novel scheme for encoding the topology of triangular meshes.

The achieved compression rates of 1.1 ~ 3.4 bits/vertex compete withthe best results known today.

Currently we work on a progressive version of mc-compression.

Acknowledgements

• University of British Columbia at Vancouver, Canada

• Gene Lee and his RASP tools• International Computer Science

Institute (ICSI) at Berkeley, USA

• funding: NSERC, IRIS, UGF


Recommended