Title: Edgebreaker EB
1Edgebreaker (EB)
Second generation 3D compression Faster, simpler,
more effective
Edgebreaker Connectivity compression for
triangle meshes, J. Rossignac, IEEE Transactions
on Visualization and Computer Graphics, vol. 5,
no. 1, pp. 4761, 1999. Optimal Bit Allocation
in Compressed 3D Models. D. King and J.
Rossignac. Computational Geometry, 1491118,
1999. WrapZip decompression of the connectivity
of triangle meshes compressed with Edgebreaker,
J. Rossignac and A. Szymczak. Computational
Geometry Theory and Applications,
14(1-3)119-135, 1999. Connectivity compression
for irregular quadrilateral meshes, D. King, J.
Rossignac, and A. Szymczak, Technical Report
TR9936, GVU, Georgia Tech, 1999. An
Edgebreaker-based efficient compression scheme
for regular meshes, A. Szymczak, D. King, and J.
Rossignac, in Proceedings of 12th Canadian
Conference on Computational Geometry,
20(2)257264, 2000. 3D Compression and
progressive transmission, J. Rossignac. Lecture
at the ACM SIGGRAPH conference July 2-28,
2000. 3D compression made simple Edgebreaker on
a corner-table. J. Rossignac, A. Safonova, and
A. Szymczak. In Proceedings of the Shape Modeling
International Conference, 2001. Edgebreaker on a
Corner Table A simple technique for representing
and compressing triangulated surfaces, J.
Rossignac, A. Safonova, A. Szymczak, in
Hierarchical and Geometrical Methods in
Scientific Visualization, Farin, G., Hagen, H.
and Hamann, B., eds. Springer-Verlag, Heidelberg,
Germany, 2002. Guess Connectivity Delphi
Encoding in Edgebreaker, V. Coors and J.
Rossignac, GVU Technical Report. June 2002. A
Simple Compression Algorithm for Surfaces with
Handles, H. Lopes, J. Rossignac, A. Safanova, A.
Szymczak and G. Tavares. ACM Symposium on Solid
Modeling, Saarbrucken. June 2002.
2T-mesh primitives
- Vertex
- Location of a sample
- Triangles
- Decompose approximating surface
- Edge
- Bounds one or more triangles
- Joins two vertices
- Corner
- Abstract association of a triangle with a vertex
- May have its own attributes (not shared by
corners with same vertex) - Used to capture surface discontinuities
- Border (oriented half-edge, dart)
- Association of a triangles with a bounding edge.
- Orientation cycle around triangle, inverse of
opposite border - A triangle has 3 borders and 3 corners
3Classes of T-meshes
- Triangle soup
- Any collection of triangles (may intersect each
other) - 2D simplicial complex
- Collection of edges, vertices, faces that join
but do not intersect - Orientable manifold with boundary
- Each edge has 1 or 2 incident triangles. One
incident cone per vertex. - Boundary of a (regularized) solid
- Each edge has 2k incident triangles
(non-manifold). Orientable. Handles. - Zero-genus boundary of a manifold solid (simple
mesh) - Orientable. Manifold. Connected. No holes. No
handles.
4First, the case of a simple mesh
- A simple mesh is a deformed triangulated sphere
- Orientable
- 2-manifold
- No boundary (no holes)
- No handles (no throu-holes)
- Properties
- Each edge has exactly 2 incident triangles
- Each vertex has a single cycle of incident
triangles - May be drawn as a planar graph
5Simple meshes and patches
- A patch is a simple portion of a simple mesh
- Simply connected
- Bounded by a single manifold edge-loop
- Its boundary is a connected manifold loop
- Cycle of border edges
- It may be obtained from a simple mesh
- by removing one or more triangles
6Dual graphs and spanning trees
From Bosen
- Dual graph
- Nodes represent triangles
- Links represent edges
- That join adjacent triangles
- Vertex Spanning Tree (VST)
- Edge-set connecting all vertices
- No cycles
- Cuts mesh into simply connected polygon with no
interior vertices - Triangle-Spanning Tree (TST)
- Graph of remaining edges
- No loops
- Connects all triangles
TST
VST
7Euler formula for Simple Meshes
- Mesh has V vertices, E edges, and T triangles
- E (V-1)(T-1)
- VST has V nodes and thus V-1 links
- TST has T nodes and thus T-1 links
- E 3T/2
- There are 3 borders (edge-uses) per triangle
- There are twice more edge-uses then edges
- Therefore T 2V - 4
- Because (V-1)(T-1) 3T/2
- we have V-2 3T/2-T T/2
- There are about twice as many triangles as
vertices - The number C of corners (vertex-uses) is about 6V
- C3T6V-12
- On average, a vertex is used 6 times
8Representation as independent triangles
- For each triangle
- For each one of its 3 corners, store
- Location
- Attributes (may be the same for neighboring
corners) - Each vertex location is repeated (6 times on
average) - geometry 36 B/T (float coordinates 9x4 B/T)
- Plus 3 attribute-sets per triangle (6 per vertex)
Very verbose! Not good for traversal.
9Representation as Triangle strips
- Continue a strip by attaching a new triangle to
an edge of the previous one - Need only indicate which edge and when to start a
new strip - 1 Left/Right bit per triangles plus 1 strip-end
bit per triangle - Send one vertex per triangle
- Plus 2 vertices per strip to start it
- Each vertex is transmitted twice on average
-
10Corner table data structure for T-meshes
- 3D compression made simple Edgebreaker on a
corner-table. J. Rossignac, A. Safonova, and A.
Szymczak. In Proceedings of the Shape Modeling
International Conference, 2001. - Table of corners, for each corner c store
- c.v integer reference to vertex table
- c.o integer reference to opposite corner
- The 3 corners of each triangle are 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.r
11Using adjacency table for T-mesh traversal
- Visit T-mesh (triangle-spanning tree)
- Mark triangles as you visit
- Start with any corner c and call Visit(c)
- Visit(c)
- mark c.t
- IF NOT marked(c.r.t) THEN visit(c.r)
- IF NOT marked(c.l.t) THEN visit(c.l)
- Label vertices
- Label vertices with consecutive integers
- Label(c.n.v) Label(c.n.n.v) Visit(c)
- Visit(c)
- IF NOT labeled(c.v) THEN Label(c.v)
- mark c.t
- IF NOT marked(c.r.t) THEN visit(c.r)
- IF NOT marked(c.l.t) THEN visit(c.l)
12Computing adjacency from incidence
- c.o can be derived from c.v (needs not be
transmitted) - Build table of triplets min(c.n.v, c.n.n.v),
max(c.n.v, c.n.n.v), c - 230, 131, 122, 143, 244, 125,
- Sort (bins, linear cost)
- 122, 125 ...131... 143 ...230...244
- Pair-up consecutive entries 2k and 2k1
- (122, 125)...131... 143...230...244
- Their corners are opposite
- (122,125)...131...143...230...244
13Connectivity/geometry discrepancy
- Connectivity of T-mesh may conflict with actual
geometry - Vertices with different names may be coincident
- Edges with different names may be coincident
- Triangles, edges, and vertices may intersect
- T-mesh with consistent geometry
- Triangles, edges, vertices are pairwise disjoint
- We consider edges and triangles to be open
- I.e., not containing their boundary
- Manifold graphs may be used with invalid geometry
- Coincident edges and vertices Non-manifold
singularities - Self-intersecting surfaces
14Edgebreaker A simple, fast, and effective second
generation 3D compression
- Jarek Rossignac
- GVU Center and College of Computing
- Georgia Tech, Atlanta
- http//www.gvu.gatech.edu/jarek
15Edgebreaker encodes construction steps
Area not yet covered
Decompress
Compress
Specification of the next triangle
Decompress
Compress
Binary format
Sequence of specification for adding triangles
16Edgebreaker is a 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
17Edgebreaker 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
18EB re-numbering of vertices
19Edgebreaker compression algorithm
Source code, examples http//www.gvu.gatech.edu/
jarek/edgebreaker/eb
recursive procedure compress (c) repeat
c.t.m1 mark the triangle as visited if
c.v.m 0 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 1
mark tip vertex as visited cc.r continue
with the right neighbor else if c.r.t.m1
test whether right triangle was visited then
if c.l.t.m 1 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 1 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)
20Edgebreaker decompression
- How does it work?
- No problem, except at S
- Can you recover where the tip of each S is from
the CLERS string alone? - Three solutions
- Count changes of border length in CLERS string
(Rossignac) - Read CLERS string backwards to compute there the
tip of each S is - WrapZip (RossignacSzymczak)
- Build TST polygon and then fold it
- Spirale Reversi (IsenbergSnoeyink)
- Read CLERS string backward and build mesh in
reverse order
21EB decompression how come it works?
Receive the CLERS sequence Decode it Construct
the TST polygon Decodereconstruct vertices
R
R
R
E
L
L
C
S
R
E
R
C
CRSRLECRRRLE
How to fold the polygon?
WrapZip decompression of the connectivity of
triangle meshes compressed with Edgebreaker, J.
Rossignac and A. Szymczak. Computational
Geometry Theory and Applications,
14(1-3)119-135, 1999.
22WrapZip EB decompression (with Szymczak)
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.
23WrapZip more complex example
24Spirale Reversi decompression for EB
M. Isenburg and J. Snoeyink. Spirale reversi
Reverse decoding of the Edgebreaker encoding.
Technical Report TR-99-08, Department of Computer
Science, University of British Columbia, October
4 1999.
compression
clers CCRRCCRRRCRRCRCRRCCCRRCRRCRCRRRCRCRCRRSCR
RSLERERLCRRRSEE
reversi EESRRRCLRERELSRRCSRRCRCRCRRRCRCRRCRRCCCR
RCRCRRCRRRCCRRCC
decompression
25Reversi details
O EESRRRCLRERELSRRC
O EESRRRCLREREL
O EESRRRCLRERELSRRCS
O EESRRRCLRERELSRRCSRRCRCRCRRRCRCRRCRRCCCRRCRCRR
CRRRCCRRCC
26Edgebreaker Results
- Compression results for connectivity information
- Guaranteed 2T bits for any simple mesh (improved
later to 1.80T bits) - Entropy down to 0.9T bits for non-trivial large
models - Frequency C50, R about 35, S and E 1-to-5
- 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 - .
27Spiraling solutions
- Several approaches visit the same spiraling TST
a - Itai,Rodeh Representation of graphs, Acta
Informatica, 82 - Keeler,Westbrook Short encoding of planar graphs
and maps, Discrete Applied Math, 93 - Gumbold,Straßer Realtime Compression of Triangle
Mesh Connectivity, Siggraph, 98 - Rossignac Edgebreaker Compressing the incidence
graph of triangle meshes, TVCG, 99 - Touma,Gotsman Triangle Mesh Compression, GI, 98
- Taubin,Rossignac Geometric compression through
topological surgery, ACM ToG, 98 - They encode how each new triangle is attached to
previously restored ones
28Edgebreaker extensions and improvements
- Better connectivity compression
- Tighter guaranteed upper bound (KingRossignac,
Gumhold) 1.80T bits - Sufficiently regular meshes (with Szymczak and
King) 0.81T bits guaranteed - Delphi Connectivity predictors (with Coors)
between 0.2T and 1.5T bits - Topological extensions
- Quadrilateral meshes (with Szymczak and King)
1.34T bits - Handles/holes (with Safonova, Szymczak, Lopes,
and Tavares) - Non manifold solids (with Cardoze)
- Implementation (with Safonova, Coors, Szymczak,
Shikhare, Lopes) - Retiling and loss optimization
- Optimal quantization (with King and Szymczak)
best B and T - Piecewise regular resampling (with Szymczak and
King) 1T bits total - Uniform C-triangles (with Attene, Falcidieno,
Spagnuolo) 0.4T bits total - Higher dimension
- Tetrahedra for FEM (with Szymczak) 7T bits
(prior to entropy) - Pentatopes for 4D simulations (with Szymczak, and
with Snoeyink)
29Edgebereaker compression contributors
King (Atlanta) 1.84Tbits, quads
Gumhold (Germany) 1.80T bits
Rossignac (Atlanta) Edgebreaker
Safonova (CMU) Holes, code
Szymczak (Atlanta) regularity, resampling
Shikhare (India) translation
Isenburg (UCS) Reversi
Attene (Italy) retiling
Coors (Germany) Prediction
Lopes (Brasil) Handles
Gotsman (Israel) Polygons
30Guaranteed 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
31Guaranteed 1.80T bit(Gumhold 00)
- New bounds on the encoding of planar
triangulations, S. Gumhold, - Siggraph course notes on 3D Geometry
Compression - 1.8T bits guaranteed for encoding CLERS string
- 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
32Triangulated quad 1.34T bits guaranteed
- "Connectivity Compression for Irregular
Quadrilateral Meshes" D. King, J. Rossignac, A
Szymczak. - Triangulate quads as you reach them
- Always \ , never /
- Consecutive in CLERS sequence
- Guaranteed 2.67 bits/quad
- 1.34T bits
- Cheaper to encode that triangulation
- Less than Tuttes lowest bound
- Fewer Q-meshes than T-meshes
- With same vertex count
- Theoretical proof
- Extended to polygons
- Fan boundaries
FaceFixer, IsenburgSnoeyink
33Quad 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
34Encoding polygon meshes, 5P bits
- D. King, J. Rossignac, and A. Szymczak,
Connectivity compression for irregular
quadrilateral meshes, Technical Report TR9936,
GVU, Georgia Tech, 1999. - Triangulate each polygon as a fan and encode as
CLERS - Record which edges are added (1 bit per triangle)
- Guaranteed cost min(5V, 5P) bits using primal or
dual - Guaranteed cost 2.5 bits per edge
- Exploit planarity for geometry prediction
- M. Isenburg and J. Snoeylink, Face fixer
Compressing polygon meshes with properties, in
Siggraph 2000, Computer Graphics Proceedings,
2000, pp. 263270. - B. Kronrod and C. Gotsman,Efficient Coding of
Non-Triangular Meshes, Technical Report,
Computer Science Department, Technion-Israel
Institute of Technology, 1999.
35Manifold meshes may have handles
- Number of handles H
- Is half the smallest number of closed curves cuts
necessary to make the surface homeomorphic to a
disk - T2V4(H-S)
- T triangles, E edges, V vertices, H handles, S
shells - Euler T-EV2S -2H
- 2 borders per edge and 3 borders per triangle
2E3T - HS-(T-EV)/2
- Shared edges E3T/2
- 3 borders per triangle, 2 borders per edge
disk
36Simple encoding of handles in Edgebreaker
- A Simple Compression Algorithm for Surfaces with
Handles, H. Lopes, J. Rossignac, A. Safanova, A.
Szymczak and G. Tavares. ACM Symposium on Solid
Modeling, Saarbrucken. June 2002. - VST and TST miss 2 edges per handle
- Encode their adjacency explicitly
- As corner pairs of glue edges
- Additional connectivity cost 2Hlog(3T)
- Need to restart zipping
- From each glue edge
37Example EB compression of torus
- Each handle creates two S that will not be able
to go left - Encode the pair of opposite corner IDs
38Plug holes with dummy triangle fans
- C. Touma and C. Gotsman, Triangle mesh
compression, in Graphics Interface, 1998. - Encoder
- Create a dummy vertex
- Triangulate the hole as a star
- Encode mesh with the holes filled
- Encode the IDs of dummy vertices
- Skip tip ID of biggest hole
- RLE number of initial Cs
- Decoder
- Receives filled mesh and IDs of dummy vertices
- Reconstructs complete mesh
- Removes star if dummy vertices
- What is a hole?
- With Safonova, Szymczak
39Non-Manifolds
- Solid models have non-manifold edges and vertices
- Compression exploits manifold data structures
- Matchmaker Manifold BReps for non-manifold
r-sets - RossignacCardoze, ACM Symposium on Solid
Modeling, 1999. - Match pairs of incident faces for each NME
- Respects surface orientation minimizes number
of NMVs
40Delphi Guessed Connectivity 0.74T bits
- Guess Connectivity Delphi Encoding in
Edgebreaker, V. Coors and J. Rossignac, GVU
Technical Report. June 2002. - Predict Edgebreaker code from decoded mesh
41Delphi correct guesses
Depending on the model, between 51 and 97 of
guesses are correct.
83 correct guesses 1.47bpv 0.74T bits
42Delphi Wrong non-C guesses
43Delphi wrong C-guesses
28 of wrong guesses are Rs mistaken for Cs.
44Apollo sequence encoding of Delphi
45Remeshing techniques
- What if you do not need to preserve the exact
model - Allow discrepancy between original and received
models - Imprecise vertex locations
- Different connectivity
- New selection of vertices on or near the surface
- Simpler topology
- Now we can use other representations
- Subdivision surface
- Semi analytic (CSG)
- Implicit (radial basis function interpolant)
- Or develop new ones designed for better
compression - One parameter per sample (normal displacement,
not tangential) - Want most vertices to be regular elevation over
2D grid (PRM) - Want mostly triangles to be isosceles
(SwingWrapper)
46Piecewise Regular Meshes (PRM)
- Piecewise Regular Meshes Construction and
Compression. A. Szymczak, J. Rossignac, and D.
King. To appear in Graphics Models, Special Issue
on Processing of Large Polygonal Meshes, 2002. - Split surface into terrain-like reliefs
- Resample each relief on a regular grid
- Merge reliefs and fill topological cracks
- Encode irregular part with Edgebreaker
- Compress with range coder (2 char context)
- Parallelogram prediction (x,y) z
47PRM results 1T bits total, with 0.02 error
- Resampling chosen to limit surface error to less
than 0.02 - Using 12-bit quantization on vertex location
- Measured using Metro
- Decreases Entropy by 40
- 80 storage savings when compared to
ToumaGotsman - 0.6T - 1.8T bits total (geometry and
connectivity) - 89 Geometry
- 8 Connectivity of the regular part of reliefs
- 3 Irregular triangles
- Simple implementation
- Re-sampling 5 mns (not optimized)
- Compression 4 seconds
- Simpler than MAPS (Lee, SIG98)
48SwingWrapper semi-regular retiling
- SwingWrapper Retiling Triangle Meshes for
Better Compression, M. Attene, B. Falcidieno, M.
Spagnuolo and J. Rossignac, Technical Report.
March 2002 - Resample mesh to improve compression
- Try to form regular triangles
- All C triangles are Isosceles
- with both new edges of length L
- Fill cracks with irregular triangles
- Encode connectivity with Edgebreaker
- Encode one hinge angle per vertex
49Swing-Wrapper resolution control
50SwingWrapper results 0.4Tb total (0.01)
13,642T L2 error 0.007 3.5Tb total 0.36Tb wrt
original T 678-to-1 compression
1505T L2 error 0.15 5.2Tb total 0.06Tb wrt
original T 4000-to-1 compression
134,074T WRL4,100,000B
51Triangles surrounded by valence 6 vertices
52Summary
- Topological Surgery (MPEG-4) RLE of TST and VST
- Edgebreaker connectivity (CLERS)
- Efficient WrapZip or Reversi decompression
- Guarantee 1.80Tb for simple meshes and 0.81T for
mostly regular meshes - Simple extensions to handles, holes, and
non-manifold boundaries - Delphi connectivity predictors between 0.2Tb and
1.5Tb - Smart triangulation of quad-meshes 1.34T bits
- Encode vertex location using reordering and
parallelogram prediction - Publicly available 2 page source code and
examples - Resampling and simplification
- Simplification (vertex clustering and
edge-collapse) - Optimal compromise between quantization and
simplification (EK/V) - Piecewise Regular Meshes (reliefs) 1Tb total
geometryconnectivity (0.02 error) - SwingWrapper Isosceles Cs, 0.36Tb total (
0.007 error), 0.06Tb (0.15 error)