Loading...

PPT – Second generation geometry compression: Edgebreaker is fast, simple, and effective PowerPoint presentation | free to download - id: 8578ef-NGUyM

The Adobe Flash plugin is needed to view this content

Second generation geometry compression

Edgebreaker is fast, simple, and effective

- Rossignac, Szymczak, King, Safonova
- Gumhold
- IsenbergSnoeyink
- Coors
- Lopes

Edgebreaker (Rossignac98)

Area not yet covered

Decompress

Compress

Specification of the next triangle

Decompress

Compress

Binary format

Sequence of specification for adding triangles

Same spiraling traversal as TS-MPEG4

Edgebreakers state machine

?

C

?

L

if tip vertex not marked then C else if left

neighbor marked then if right neighbor marked

then E else L else if right neighbor marked then

R else S

?

R

?

S

Only 2T bits (because CVT/2)

E

Examples of Edgebreaker compression

?

?

C

x

C

R

C

?

?

L

C

R

C

C

x

R

C

C

C

CCCCRCCRCRC

?

?

R

x

R

R

R

?

?

S

L

E

C

L

x

R

S

E

R

C

?

?

E

CRSRLECRRRLE

x

Corner table data structure for T-meshes

- Table of corners, for each corner c store
- c.v integer reference to vertex table
- c.o integer reference to opposite corner
- c.o may be derived from c.v
- Make the 3 corners of each triangle consecutive
- List them according to ccw orientation of

triangles - Trivial access to triangle ID c.t INT(c/3)
- c.n 3c.t (c1)MOD 3, c.p c.n.n, c.l

c.p.o, c.r c.n.o

c.l

c.r

c.p

c.t

Edgebreaker compression algorithm

recursive procedure compress (c) repeat

c.t.mvisited mark the triangle as

visited if c.v.mnot visited test whether

tip vertex was visited then write(vertices,

c.v) append vertex index to vertices write(

clers, C) append encoding of C to

clers c.v.m visited mark tip vertex as

visited cc.r continue with the right

neighbor else if c.r.t.mpainted test whether

right triangle was visited then if c.l.t.m

visited test whether left triangle was

visited then write(clers, E) append

encoding of E to clers string

return exit (or return from recursive

call) else write(clers, R) append

encoding of R to clers string

cc.l move to left triangle else if

c.l.t.m visited test whether left triangle

was visited then write(clers, L) append

encoding of L to clers string

cc.r move to right triangle else

write(clers, S) append encoding of S to clers

string compress(c.r)

recursive call to visit right branch first

cc.l move to left triangle

verticesab, clers ...CRSRLECRRRLE (2T bit

code C0, L110, R101, S100, E111)

Decompression

Receive the CLERS sequence Decode it Construct

the triangle tree Decodereconstruct vertices

R

R

R

E

L

L

C

CRSRLECRRRLE

S

R

E

R

C

How to zip up the cracks?

WrapZip decompression (RossignacSzymczak99)

Orient bounding edges while building triangle

tree at decompression. All oriented clockwise (up

tree), except for C and the seed triangle

Then ZIP all pairs of adjacent bounding edges

when both point away from their common vertex.

CRSRLECRRRLE

Linear time complexity. Zip only after L and E.

WrapZip properties

- Only L and E require checking whether zipping is

possible - No new zipping is made possible by C, R, S
- L creates at most one zip (one pair of edges, no

iteration) - E operation creates at least 2 zips
- of zipping operations of edges in vertex

tree - An edge can only be tried and rejected for

zipping only once - WrapZip has linear time complexity (very fast in

practice)

Spirale Reversi (IsenburgSnoeyink 99)

- Spirale Reversi Reverse decoding of the

Edgebreaker encoding - Decompression for Edgebreaker similar to WrapZip
- Reads CLERS string backward
- Reconstructs mesh backwards
- Assigns vertices before the C operation defines

them

Reversi Decompression (IsenburgSnoeyink 99)

compression

clers CCRRCCRRRCRRCRCRRCCCRRCRRCRCRRRCRCRCRRSCR

RSLERERLCRRRSEE

reversi EESRRRCLRERELSRRCSRRCRCRCRRRCRCRRCRRCCCR

RCRCRRCRRRCCRRCC

decompression

Reversi details

O EESRRRCLRERELSRRC

O EESRRRCLREREL

O EESRRRCLRERELSRRCS

O EESRRRCLRERELSRRCSRRCRCRCRRRCRCRRCRRCCCRRCRCRR

CRRRCCRRCC

Expected/measured results of Edgebreaker

- Expected 1.7T bit and guaranteed 2.0T bit code
- CL and CE combinations are impossible
- Use a shorter code for S (11) and R (10) when

they follow a C - On average 36 of symbols are R. Half of them

follow a C - Expected 1.3T to 1.6T bits, guaranteed 2.0T bits
- Encode CC, CS, CR pairs as single symbols
- After even of Cs CR (01), CC (00), CS (1101),

R (10), S(1111) - L (1110), E (1100)
- Stanford Bunny 1.3T bits, Delaunay

triangulation 1.6T bits - Measured entropy codes 0.91 to 1.26T bits
- Huffman code all words start with a consecutive

sequence of C - Bunny 173 words, 0.85T bits for Huffman codes,

0.91T bits total - Large model 1,400 word dictionary (32Kb table,

large part is fixed) - Gzip on the result improves them by 2

Edgebreaker WrapZip Results

- Compress Visitmark triangles, encode CLERS ops,

encode vertices - Decode Build triangle tree, orient free edges,

zip, label decode vertices - Compression results for connectivity information
- Guaranteed 2T bits for all meshes homeomorphic to

a sphere - C 0, L110, R 101, S100, E111 (CVT/2)
- Measured entropy code about 1T bits (dictionary

not included) - Publications (http//www.gvu.gatech.edu/jarek/pap

ers) - Rossignac, Edgebreaker Compression, IEEE TVCG99
- Sigma Xi Award for Best Paper by Georgia Tech

faculty published in 1999 - RossignacSzymczak, Wrapzip, CGTA99
- KingRossignac Guaranteed 3.67V bit encoding...,

CCCG99 - SzymczakKingRossignac Compression of regular

meshes, CCCG00

Edgebreaker Results

- Compression results for connectivity information
- Guaranteed 2T bits, entropy down to 0.9T bits for

large models - Source code available 3 page detailed

pseudo-code, arrays of integers, fast - http//www.gvu.gatech.edu/jarek/edgebreaker/eb
- Publications lthttp//www.gvu.gatech.edu/jarek/pap

ersgt - Rossignac, Edgebreaker Compression, IEEE TVCG99
- Sigma Xi Best Paper Award
- RossignacSzymczak, Wrapzip, CGTA99
- KingRossignac Guaranteed 3.67V bit encoding...,

CCCG99 - SzymczakKingRossignac Mostly regular meshes,

CCCG00 - .

Edgebreaker extensions and improvements

- Better compression
- Tighter guaranteed upper bound (KingRossignac,

Gumhold) 1.80T bits - Quadrilateral meshes (with Szymczak and King)

1.34T bits - Sufficiently regular meshes (with Szymczak and

King) 0.81T bits guaranteed - Topological extensions
- Non manifold solids (with Cardoze)
- Handles (with Safonova, Szymczak, Coors, and

Lopes) - Holes (with Safonova)
- Geometry
- Optimal quantization (with King and Szymczak)

best B and T - Better predictors from connectivity and neighbors

(with Coors) - Higher dimension
- Tetrahedra for FEM (with Szymczak) 7T bits

(prior to entropy) - Pentatopes for 4D simulations (with Szymczak, and

with Snoeyink) - Progressive and error-resilient
- Compressed batches of vertex-split upgrades (with

Pajarola) 3.5T bits (total) - Tetrahedra (with Pajarola and Szymczak) 5T bits

(after entropy)

Guaranteed 1.84T bit (KingRossignac 99)

- Guaranteed 3.67v bits encoding of planar

triangle graphs - Proc. 11th Canadian Conference on Computational

Geometry, August 1999 - Encoding of symbols that follow a C
- C is 0, S is 10, R is 11
- 3 possible encoding systems for symbols that do

not follow a C - Code I C is 0, S is 100, R is 101, L is 110, E

is 111 - Code II C is 00, S is 111, R is 10, L is 110, E

is 01 - Code III C is 00, S is 010, R is 011, L is 10, E

is 11 - One of these 3 codes takes less than (2-1/6)T

bits - Use a 2-bit switch to identify which code is used

for each model - Further constraints (Gumhold 00) 1.80T bits

guaranteed - E is impossible after C, CCR,
- Because they have increased the length of the

bounding loop to more than 3

Quad meshes (King,Rossignac,Szymczak 99)

- Connectivity Compression of Irregular Quad

Meshes - Surfaces often approximated by irregular quad

meshes - Instead of triangulating, we encode quads

directly - Measured 0.24V to 1.14V bits, guaranteed 2.67V

bits (vs 3.67) - Equivalent to a smart triangulation Edgebreaker
- Only \-splits (no /-split), as seen from the

previous quad - Guarantees the triangle-pair is consecutive in

triangle tree - First triangle of each quad cannot be R or E 13

symbol pairs possible

Improved Edgebreaker code (Gumhold 00)

- New bounds on the encoding of planar

triangulations - Siggraph course notes on 3D Geometry

Compression - 1.8T bits guaranteed
- Exploits the length of the outer boundary of

T-patch (gt2) - Not convenient for treating non-manifolds (See

later) - CE is impossible
- Was at least 3, C increased it to at least 4,

cant have an E - CCRE is impossible
- Was at least 3, CC increased it to at least 5, R

reduced it by 1, cant have an E - These constraints impact the probability of the

next symbol and improve coding

Non-manifold boundaries (with Cardoze)

Holes (with Safonova)

- Many meshes have holes
- Plug hole with a triangle fan (ToumaGotsman98)
- Encode identifiers for dummy vertices
- HLog(v) bits
- The boundary of holes may by non-manfold
- What is a hole?

Handles (with Lopes and Safonova)

Connectivity compression An new problem?

- Use vertex permutation to encode incidence
- Denny,Sohler Encoding a triangulation as a

permutation of its point set, CCCG, 97 - Compression of the connectivity graph (planar

triangle graph) - Itai,Rodeh Representation of graphs, Acta

Informatica, 82 - Turan On the succinct representation of graphs,

Discrete Applied Math, 84 - Naor Succinct representation of general

unlabeled graphs, Discrete Applied Math, 90 - Keeler,Westbrook Short encoding of planar graphs

and maps, Discrete Applied Math, 93 - Deering Geometry Compression, Siggraph, 95
- Taubin,Rossignac Geometric compression through

topological surgery, ACM ToG, 98 - Taubin,Horn,Lazarus,Rossignac Geometry coding

and VRML, Proc. IEEE, 98 - Touma,Gotsman Triangle Mesh Compression, GI, 98
- Gumbold,Straßer Realtime Compression of Triangle

Mesh Connectivity, Siggraph, 98 - Rossignac Edgebreaker Compressing the incidence

graph of triangle meshes, TVCG, 99 - Rossignac,Szymczak WrapZip Linear

decompression of triangle meshes, CGTA, 99 - Szymczak,Rossignac GrowFold Compression of

tetrahedral meshes, ACM SM, 99 - Compressed inverse of progressive simplification

steps or batches - Hoppe Progressive meshes, Siggraph, 96
- Taubin,Gueziec,Horn,Lazarus Progressive forest

split compression, Siggraph, 98 - Pajarola,Rossignac Compressed Progressive

Meshes, IEEE TVCG99

Edgebereaker compression contributors

Szymczak Decompression

King Improved code, quads

Rossignac Edgebreaker

Safonova Holes, implementation

Isenburg (UCS) Spirale Reversi

Gotsman (Israel) Polygons

Lopes (Brasil) Handles

Gumhold (Germany) Better bounds

Coors (Germany) Prediction