Title: Second generation geometry compression: Edgebreaker is fast, simple, and effective
1Second generation geometry compression
Edgebreaker is fast, simple, and effective
- Rossignac, Szymczak, King, Safonova
- Gumhold
- IsenbergSnoeyink
- Coors
- Lopes
2Edgebreaker (Rossignac98)
Area not yet covered
Decompress
Compress
Specification of the next triangle
Decompress
Compress
Binary format
Sequence of specification for adding triangles
3Same spiraling traversal as TS-MPEG4
4Edgebreakers 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
5Examples 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
6Corner 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
7Edgebreaker 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)
8Decompression
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?
9WrapZip 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.
10WrapZip 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)
11Spirale 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
12Reversi Decompression (IsenburgSnoeyink 99)
compression
clers CCRRCCRRRCRRCRCRRCCCRRCRRCRCRRRCRCRCRRSCR
RSLERERLCRRRSEE
reversi EESRRRCLRERELSRRCSRRCRCRCRRRCRCRRCRRCCCR
RCRCRRCRRRCCRRCC
decompression
13Reversi details
O EESRRRCLRERELSRRC
O EESRRRCLREREL
O EESRRRCLRERELSRRCS
O EESRRRCLRERELSRRCSRRCRCRCRRRCRCRRCRRCCCRRCRCRR
CRRRCCRRCC
14Expected/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
15Edgebreaker 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
16Edgebreaker 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 - .
17Edgebreaker 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)
18Guaranteed 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
19Quad 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
20Improved 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
21Non-manifold boundaries (with Cardoze)
22Holes (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?
23Handles (with Lopes and Safonova)
24Connectivity 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
25Edgebereaker 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