430 likes | 438 Views
Extensions to Edgebreaker. Jarek Rossignac GVU Center and College of Computing Georgia Tech, Atlanta http://www. gvu.gatech .edu/ ~ jarek. Edgebreaker extensions and improvements. Better connectivity compression Tighter guaranteed upper bound (King&Rossignac, Gumhold): 1.80T bits
E N D
Extensionsto Edgebreaker Jarek Rossignac GVU Center and College of Computing Georgia Tech, Atlanta http://www.gvu.gatech.edu/~jarek
Edgebreaker extensions and improvements • Better connectivity compression • Tighter guaranteed upper bound (King&Rossignac, 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)
Edgebereaker 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 Attene (Italy): retiling Isenburg (UCS): Reversi Coors (Germany): Prediction Lopes (Brasil): Handles Gotsman (Israel): Polygons
Guaranteed 1.84T bit (King&Rossignac 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
Guaranteed 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 (>2) • Not convenient for treating non-manifolds (See later) • CE is impossible • Was at least 3, C increased it to at least 4, can’t have an E • CCRE is impossible • Was at least 3, CC increased it to at least 5, R reduced it by 1, can’t have an E • These constraints impact the probability of the next symbol and improve coding
Triangulated quad1.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 Tutte’s lowest bound • Fewer Q-meshes than T-meshes • With same vertex count • Theoretical proof • Extended to polygons • Fan boundaries FaceFixer, Isenburg&Snoeyink
? x 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
C S E L Encoding polygon meshes, 5P bits D. King, J. Rossignac, and A. Szymczak, “Connectivity compression for irregular quadrilateral meshes,” Technical Report TR–99–36, 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. 263–270. B. Kronrod and C. Gotsman,“Efficient Coding of Non-Triangular Meshes”, Technical Report, Computer Science Department, Technion-Israel Institute of Technology, 1999.
Face Fixer (Isenburg&Snoeyink 00) • Face Fixer: Compressing Polygon Meshes with Properties • Siggraph 2000 • Encodes a label per edge • Extends to polygons • Represents polygon-spanning tree and its dual vertex-tree • Encodes partition of mesh into regions (superfaces) • Discusses how to encode attributes • Needs 2.5T bits for simple triangle meshes • Compared to 1.83T bits guaranteed by Edgebreaker • Needs 4V bit encoding for simple quad-meshes • Compared to measured 0.24V to 1.14V bits, guaranteed 2.67V bits of King&Rossignac&Szymczak
Khodakowsky et al • Near-Optimal Connectivity Encoding of 2-Manifold Polygon Meshes • Khodakovsky, P. Alliez, M. Desbrun, P. Schroder, http://multires.caltech.edu/pubs/ircomp.pdf • Encodes vertex valences and face valences • Achieves Tutte’s optimal limit if you ignore splits
Manifold 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 • T=2V+4(H-S) • T triangles, E edges, V vertices, H handles, S shells • Euler: T-E+V=2S -2H • 2 borders per edge and 3 borders per triangle: 2E=3T • H=S-(T-E+V)/2 • Shared edges: E=3T/2 • 3 borders per triangle, 2 borders per edge disk
S* Simple 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
Example: EB compression of torus • Each handle creates two S that will not be able to go left • Encode the pair of opposite corner IDs
Plug 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
2 3 1 2 5 0 4 3 4 1 Non-Manifolds • Solid models have non-manifold edges and vertices • Compression exploits manifold data structures • Matchmaker: Manifold BReps for non-manifold r-sets • Rossignac&Cardoze, ACM Symposium on Solid Modeling, 1999. • Match pairs of incident faces for each NME • Respects surface orientation & minimizes number of NMVs
Already traversed covered area Active loop c c c c d g(c) X c.v v c Vr c.p Vl c.n GE c.o Figure 2: Connectivity guessed by parallelogram prediction Delphi: 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
X g(c) g(c) g(c) X X Guess C Guess L Guess R X g(c) X g(c) Guess S Guess E Figure 3: Guess clers Symbol based on geometry prediction. Delphi correctguesses Depending on the model, between 51% and 97% of guesses are correct. 83% correct guesses: 1.47bpv = 0.74T bits
Guess wrong L Guess wrong R g(c) g(c) g(c) g(c) g(c) g(c) X X X X X X Situation R Situation C Situation S Situation L Situation C Situation S Guess wrong S Guess wrong E X X X X X g(c) g(c) g(c) g(c) g(c) Half of the wrong guesses are Cs mistaken for Rs Situation C Situation R Situation L Situation C Situation S Figure 5 Wrongly guessed non-C triangles. They grey triangle shows the actual situation. The yellow triangle visualizes the parallelogram prediction. Delphi: Wrongnon-C guesses
Guess C in X X g(c) g(c) Situation R Situation L X X g(c) g(c) Situation E Situation S Figure 4: Wrongly guesses C triangles Delphi wrong C-guesses 28% of wrong guesses are Rs mistaken for Cs.
Figure 6: Example Apollo encoding: Let us assume that we guessed the first triangle of the example correctly as type C. We than predict the tip of the right triangle at g(c) using the parallelogram rule. SinceBecause the distance of g(c) and the active border is too large, we guess again a type C triangle. Unfortunately, that guess was wrong. In fact, the right triangle, shown in gray color in the first picture, is of type R. In the Apollo sequence we encode this situation as (f,R) and continue the traversal with the left triangle of R. The prediction scheme is performed for all triangle in Edgebreaker sequence and leads to the following Apollo sequence: ((t), (f, R), (t), (t), (t), (t), (t), (t), (t), (f,R), (t), (t), (t)). With a trivial encoding scheme we can compress this sequence with 16 bits instead of 32 bits for the corresponding CLERS sequence. Apollo sequence encoding of Delphi
Remeshing 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)
Piecewise 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
PRM 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 Touma&Gotsman • 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)
L L SwingWrapper: 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
SwingWrapper 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 WRL=4,100,000B
“Progressive Encoding for Lossless Transmission of 3D Meshes”, P. Alliez and M. Desbrun, Proc. of SIGGRAPH 2001. SwingWrapper vs Aliez&Desbrun Original:268K triangles WRL file: 8.5 Mbytes = 0.4%: 62K triangles encoded with 37072 bytes = 1.6%: 18K triangles encoded with 10314 bytes = 4.1%: 9K triangles encoded with 5624 bytes
Summary • Topological Surgery (MPEG-4): RLE of TST and VST • Edgebreaker connectivity (CLERS): • Efficient Wrap&Zip 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 (E=K/V) • Piecewise Regular Meshes (reliefs): 1Tb total geometry+connectivity (0.02% error) • Swing&Wrapper: IsoscelesCs, 0.36Tb total ( 0.007% error), 0.06Tb (0.15% error)
Publications on Edgebreaker “Geometric compression through Topological Surgery,” G. Taubin and J. Rossignac, ACM Transactions on Graphics, vol. 17, no. 2, pp. 84–115, 1998. “Geometry coding and VRML,” G. Taubin, W. Horn, F. Lazarus, and J. Rossignac, Proceeding of the IEEE, vol. 96, no. 6, pp. 1228–1243, June 1998. “Edgebreaker: Connectivity compression for triangle meshes,” J. Rossignac, IEEE Transactions on Visualization and Computer Graphics, vol. 5, no. 1, pp. 47–61, 1999. “Optimal Bit Allocation in Compressed 3D Models”. Davis King and Jarek Rossignac. Computational Geometry, 14:91–118, 1999. “Wrap&Zip 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. “Grow&Fold: Compression of Tetrahedral Meshes,” A. Szymczak and J. Rossignac. Proc. ACM Symposium on Solid Modeling, pp. 54-64, June 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):257–264, 2000. “Compressing the connectivity of tetrahedral meshes,” A. Szymczak and J. Rossignac. Computer-Aided Design, 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, to appear in 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.
Papers on Lossy Compression “Multi-resolution 3D approximations for rendering complex scenes,” J. Rossignac and P. Borrel. Geometric Modeling in Computer Graphics, pp. 455-465, Springer Verlag, Eds. B. Falcidieno and T.L. Kunii, Genova, Italy, June 28-July 2, 1993. “The IBM 3D Interaction Accelerator (3DIX)”, P. Borrel, K.S. Cheng, P. Darmon, P. Kirchner, J. Lipscomb, J. Menon, J. Mittleman, J. Rossignac, B.O. Schneider, and B. Wolfe, RC 20302, IBM Research, 1995. “Geometric Simplification,” J. Rossignac, in Interactive Walkthrough of Large Geometric Databases (ACM Siggraph Course Notes 32), pp. D1-D11, Los Angeles, 1995. “Full-range approximations of triangulated polyhedra,” R. Ronfard and J. Rossignac. Proceedings of Eurographics’96, Computer Graphics Forum, pp. C-67, Vol. 15, No. 3, August 1996. “Simplification and Compression of 3D Scenes”, J. Rossignac, Eurographics Tutorial, 1997. “Geometric Simplification and Compression,” J. Rossignac, in Multiresolution Surface Modeling Course, ACM Siggraph Course notes 25, Los Angeles, 1997. “Compressed Progressive Meshes,” R. Pajarola and J. Rossignac. IEEE Transactions on Visualization and Computer Graphics, vol. 6, no. 1, pp, 79-93, 2000. “Squeeze: Fast and progressivedecompression of triangle meshes,” R. Pajarola and J. Rossignac, in Proceedings of Computer Graphics International Conference, 2000, pp. 173–182. Switzerland, June 2000. “Implant Sprays: Compression of Progressive Tetrahedral Mesh Connectivity,” R. Pajarola, J. Rossignac, A. Szymczak. Proceedings of IEEE Visualization, San Francisco, October 24-29, 1999. “An Unequal Error Protection Method for Progressively Compressed 3-D Meshes”, G. Al-Regib, Y. Altunbasak and J. Rossignac. Proc. IEEE International Conf. on Acoustics, Speech and Signal Processing ICASSP'02. Orlando, May 2002. “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. “SwingWrapper: Retiling Triangle Meshes for Better Compression”, M. Attene, B. Falcidieno, M. Spagnuolo and J. Rossignac, Technical Report. March 2002. “A joint source and channel coding approach for progressiv ely compressed 3D mesh transmission,” G. Al-Regib, Y. Altunbasak and J. Rossignac, ICIP, 2002. “Protocol for streaming compressed 3D animations over lossy channels”, G. Al-Regib, Y. Altunbasak, J. Rossignac. and R. Mersereau, IEEE Int. Conf. on Multimedia and Expo (ICME), Lausanne, August. 2002.
Encoding the corner attributes Jarek Rossignac GVU Center and College of Computing Georgia Tech, Atlanta http://www.gvu.gatech.edu/~jarek
Common attributes • Attributes: One per corner • parameters for color and texture calculations • Could be the same for all 3 corners (flat triangle) • Could be the same for two adjacent corners (smooth half-edge) • Could be the same for opposite corners of an edge (smooth edge) • Could be the same for all coincident corners (smooth vertex) • Linear interpolation of shape and attributes over triangle
c.v c 2 3 1 3 2 4 5 0 4 c.o 1 v o a attribute a red attribute b blue Triangle 0 corner 0 1 7 a Triangle 0 corner 1 2 8 b Triangle 0 corner 235 c Triangle 1 corner 3 2 9 c Triangle 1 corner 4 1 6 d Triangle 1 corner 542 e vertex 1 x y z vertex 2 x y z vertex 3 x y z vertex 4 x y z 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.a : index to table of corner attributes • Table of vertex locations • Table of attributes c.t
Reducing attribute references • Store a discontinuity bit for every corner • Says if corner has same attribute than previous corner in cw order • Total cost 3T bits (in fact, stores 2 bits per edge) • One bit for ever edge/vertex pair • Geometry coding and VRML • Taubin, Horn, Lazarus, Rossignac • Proc. IEEE, 86(6), 1998 • Use additional 1 bit per vertex • Identify vertices for which all corners have same attribute • Avoiding sending bits for these corners (saves 20% to 70%) • Face Fixer • Isenburg&Snoeyink • Siggraph 00
Compressing attribute values • Quantize to the minimum resolution • Less than 24-bit color • Discretized normals • 1 bit selects hemisphere • 2 bits select quadrant • 2 more bits select sub-quadrant… • Predict from previously decoded neighbors • Average, Extrapolate • Encode the difference
U V Attribute prediction • Estimate vertex normal from geometry • For example, use sum of cross-products UxV • Estimate texture coordinates • 2-D prediction over T-mesh • In Texture coordinate space
Single-resolution compression of Tetrahedral MeshesGrow&Fold Jarek Rossignac (with Andrzej Szymczak) GVU Center and College of Computing Georgia Tech, Atlanta http://www.gvu.gatech.edu
Vertices and values: 3x16+k bits/vertex Tetrahedron/vertex incidence: 4xlog2(V) bits/tetrahedron 1 2 3 4 Tetrahedron 1 x y z c 3 24 6 vertex 1 Tetrahedron 2 x y z c 4 2 5 8 vertex 2 Tetrahedron 3 x y z c 7 56 2 Tetrahedron 4 vertex 3 6 5 8 4 Tetrahedron 5 8 51 5 Triangle/vertex incidence: 3xlog2(V) bits/triangle Tetrahedron 6 1 2 3 6 Tetrahedron 7 3 24 5 Tetrahedron 8 v4 1 2 3 Triangle 1 4 2 5 2 Tetrahedron 9 3 24 Triangle 2 …. 4 2 5 Triangle 3 6 5 8 1 t3 Tetrahedron 17 7 56 Triangle 4 8 51 2 Tetrahedron 18 v5 6 5 8 Triangle 5 v2 8 51 Triangle 6 Representing triangle and tetrahedra meshes T ~ 6.5V Connectivity dominates storage cost! T = 2V
Compressing tetrahedral meshes • Non-uniform physical properties through space • 3D samples with scalar value(s) • Irregular tetrahedral mesh • Finite elements resulting from automatic meshing • Could be result of simplifying regular grids • Incidence table dominates storage cost: 4Tlog(V) bits • T=6V (usually between 4 and 7 times more tetrahedra than vertices) • V may be very large (2563) • Need to compress connectivity • Want linear cost in T
2 3 1 Grow&Fold • Szymczak&Rossignac • Grow&Fold: Compression of tetrahedral meshes, • ACM Symposium on Solid Modeling 99 • Encode tetra-tree (3bits per tetrahedron) • Has internal and external triangle-faces • Mark “fold” edges on external faces (4b/tet) • 2 bits per face: mark zero or one of the edges • 2 free faces per tetrahedron • Results: 7 bits/tet • Instead of 4log(V)