Second generation geometry compression: Edgebreaker is fast, simple, and effective

About This Presentation
Title:

Second generation geometry compression: Edgebreaker is fast, simple, and effective

Description:

Second generation geometry compression: Edgebreaker is fast, simple, and effective Rossignac, Szymczak, King, Safonova Gumhold Isenberg&Snoeyink –

Number of Views:147
Avg rating:3.0/5.0
Slides: 26
Provided by: gate333
Category:

less

Transcript and Presenter's Notes

Title: Second generation geometry compression: Edgebreaker is fast, simple, and effective


1
Second generation geometry compression
Edgebreaker is fast, simple, and effective
  • Rossignac, Szymczak, King, Safonova
  • Gumhold
  • IsenbergSnoeyink
  • Coors
  • Lopes

2
Edgebreaker (Rossignac98)
Area not yet covered
Decompress
Compress
Specification of the next triangle
Decompress
Compress
Binary format
Sequence of specification for adding triangles
3
Same spiraling traversal as TS-MPEG4
4
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
5
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
6
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
7
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)
8
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?
9
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.
10
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)

11
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

12
Reversi Decompression (IsenburgSnoeyink 99)
compression
clers CCRRCCRRRCRRCRCRRCCCRRCRRCRCRRRCRCRCRRSCR
RSLERERLCRRRSEE
reversi EESRRRCLRERELSRRCSRRCRCRCRRRCRCRRCRRCCCR
RCRCRRCRRRCCRRCC
decompression
13
Reversi details
O EESRRRCLRERELSRRC
O EESRRRCLREREL
O EESRRRCLRERELSRRCS
O EESRRRCLRERELSRRCSRRCRCRCRRRCRCRRCRRCCCRRCRCRR
CRRRCCRRCC
14
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

15
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

16
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
  • .

17
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)

18
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

19
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

20
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

21
Non-manifold boundaries (with Cardoze)
22
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?

23
Handles (with Lopes and Safonova)
24
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

25
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
Write a Comment
User Comments (0)
About PowerShow.com