Mesh Compression
Total Page:16
File Type:pdf, Size:1020Kb
Mesh Compression Dissertation der Fakult¨at f¨ur Informatik der Eberhard-Karls-Universit¨at zu T¨ubingen zur Erlangung des Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) vorgelegt von Dipl.-Inform. Stefan Gumhold aus Tubingen¨ Tubingen¨ 2000 Tag der m¨undlichen Qualifikation: 19.Juli 2000 Dekan: Prof. Dr. Klaus-J¨orn Lange 1. Berichterstatter: Prof. Dr.-Ing. Wolfgang Straßer 2. Berichterstatter: Prof. Jarek Rossignac iii Zusammenfassung Die Kompression von Netzen ist eine weitgef¨acherte Forschungsrichtung mit Anwen- dungen in den verschiedensten Bereichen, wie zum Beispiel im Bereich der Hand- habung extrem großer Modelle, beim Austausch von dreidimensionalem Inhaltuber ¨ das Internet, im elektronischen Handel, als anpassungsf¨ahige Repr¨asentation f¨ur Vo- lumendatens¨atze usw. In dieser Arbeit wird das Verfahren der Cut-Border Machine beschrieben. Die Cut-Border Machine kodiert Netze, indem ein Teilbereich durch das Netz w¨achst (region growing). Kodiert wird die Art und Weise, wie neue Netzele- mente dem wachsenden Teilbereich einverleibt werden. Das Verfahren der Cut-Border Machine kann sowohl auf Dreiecksnetze als auch auf Tetraedernetze angewendet wer- den. Trotz der einfachen Struktur des Verfahrens kann eine sehr hohe Kompression- srate erzielt werden. Im Falle von Tetraedernetzen erreicht die Cut-Border Machine die beste Kompressionsrate von allen bekannten Verfahren. Die einfache Struktur der Cut-Border Machine erm¨oglicht einerseits die Realisierung direkt in Hardware und ist auch als Implementierung in Software extrem schnell. Auf der anderen Seite erlaubt die Einfachheit eine theoretische Analyse des Algorithmus. Gezeigt werden konnte, dass f¨ur ebene Triangulierungen eine leicht modifizierte Version der Cut-Border Machine lineare Laufzeiten in der Zahl der Knoten erzielt und dass die komprimierte Darstellung nur linearen Speicherbedarf ben¨otigt, d.h. nicht mehr als f¨unf Bits pro Knoten. Neben der detaillierten Beschreibung der Cut-Border Machine mit mehreren Ver- besserungen und Optimierungen, enth¨alt die Arbeit eine Einf¨uhrung zu Netzen und geeigneten Datenstrukturen und entwickelt mehrere Kodierungsverfahren, die im Bere- ich der Netzkompression Anwendung finden. Eine breite Ubersicht¨ verwandter Ar- beiten gibt Einblick in des Forschungsgebiet. Weiterhin wird die Effizienz mehrerer in der Literatur beschriebener Verfahren verbessert. Insbesondere konnte die algorith- misch erzielte obere Schranke f¨ur die Kodierung ebener Triangulierungen bis auf zehn Prozent oberhalb der theoretischen unteren Schranke verbessert werden. Das ist bis jetzt das beste Resultat, das erzielt werden konnte. iv Abstract Mesh Compression is a broad research area with applications in a lot of different areas, such as the handling of very large models, the exchange of three dimensional content over the internet, electronic commerce, the flexible representation of volumetric data and so on. In this thesis the mesh compression method of the Cut-Border Machine is described. The Cut-Border Machine encodes meshes by growing a region through the mesh and encoding the way, in which the mesh elements are incorporated into the growing region. The Cut-Border Machine can be applied to triangular and tetrahedral meshes. Although the method is not too complicated, it achieves very good compression rates. In the tetrahedral case the Cut-Border Machine performs best among all known methods. The simple nature of the Cut-Border Machine allows on the one hand for a hardware implementation and performs also as software implementation extremely well. On the other hand the simplicity allows for a theoretical analysis of the Cut- Border Machine. It could be shown, that for planar triangulations a slightly modified version of the Cut-Border Machine runs in linear time in the number of vertices and that the compressed representation only consumes linear storage space, i.e. no more than five bits per vertex. Besides the detailed description of the Cut-Border Machine with several improve- ments and optimizations, the thesis gives an introduction to meshes and appropriate data structures, develops several coding techniques useful for mesh compression and gives a broad overview of related work. Furthermore the author improves the encoding efficiency of several other compression techniques. In particular could the algorithmi- cally achieved upper bound for the encoding of planar triangulations be improved to ten percent above the theoretical limit, what is the best known result up to now. Contents Preface xiii I Introduction 1 1 Basics on Meshes 5 1.1 Mesh Concept . ......................... 5 1.1.1 Point-Set Models ......................... 5 1.1.2 Surface-Based Models . ..................... 6 1.1.3 Connectivity . ......................... 7 1.1.4 Geometry . ......................... 10 1.2 Application Areas . ......................... 11 1.3 Triangular and Tetrahedral Meshes . .............. 12 1.4 Basic Relations . ......................... 13 1.5 Data Structure . ......................... 14 1.5.1 Halfedge Data Structure ..................... 15 1.5.2 Computing Halfedge Adjacencies . .............. 16 1.5.3 Handling Mesh Attributes . .............. 17 1.5.4 Tetrahedral Mesh Data Structure . .............. 18 2 Related Work 21 2.1 Mesh Compression . ......................... 22 2.1.1 Acceleration of Rendering . .............. 22 2.1.2 Single Resolution Mesh Compression .............. 23 2.1.3 Graph Encoding Theory Related Results . ....... 25 2.1.4 Tetrahedral Mesh Compression . .............. 26 2.2 Mesh Simplification . ......................... 26 2.3 Progressive Mesh Compression . ..................... 27 2.4 Remeshing ................................ 28 3 Coding Techniques 31 3.1 Huffman Coding . ......................... 31 3.2 Arithmetic Coding . ......................... 32 v vi CONTENTS 3.2.1 Index Coding . .......................... 34 3.2.2 Flag Encoding .......................... 34 3.2.3 Adaptive Arithmetic Coding ................... 34 3.2.4 Sparse Flag Coding . ................... 35 3.3 Variable Length Coding .......................... 36 II Triangle Mesh Compression 39 4 Bounds on Triangle Mesh Compression 43 4.1 Planar Triangulations . .......................... 43 4.2 Planar Triangulations with Holes . ................... 44 4.3 Non Planar Triangle Meshes . ................... 45 5 The Cut-Border Machine 47 5.1 Cut-Border Operations & Compressed Representation . ........ 48 5.2 Implementation . .......................... 52 5.2.1 Cut-Border Data Structure . ................... 52 5.2.2 Compression Algorithm . ................... 53 5.2.3 Decompression Algorithm . ................... 55 5.2.4 The Models . .......................... 57 5.2.5 Traverse Order and Cut-Border Size ............... 57 5.2.6 Performance . .......................... 61 5.3 Extensions ................................. 62 5.3.1 Non Orientable Triangle Meshes . ............... 62 5.3.2 Corner Attributes . ................... 63 6 Optimized Cut-Border Machine 65 6.1 Arithmetic Coding . .......................... 65 6.1.1 Adaptive Frequencies . ................... 65 6.1.2 Conditional Probabilities . ................... 66 6.2 Optimized Border Encoding . ................... 67 6.3 Linear Time Cut-Border Data Structure . ............... 69 6.4 Linear Space Limit for Planar Triangulations . ........ 73 6.4.1 Upper Bound on Index Coding . ............... 73 6.4.2 Coding of Operation Symbols . ............... 77 7 Edgebreaker 81 7.1 From the Cut-Border Machine to the Edgebreaker . ........ 81 7.2 Spirale Reversi Edgebreaker Decoding . ............... 82 7.3 Towards Optimal Planar Triangulation Coding . ........ 83 7.3.1 3.557 Bits per Vertex Encoding of Edgebreaker String . 83 7.3.2 Using More Constraints for 3.552 Bits per Vertex Encoding . 86 CONTENTS vii 8 Conclusion & Directions for Future Work 89 III Tetrahedral Mesh Compression 93 9 Introduction to Tetrahedral Meshes 95 9.1 Basic Definitions and Notations ..................... 95 9.2 Basic Equations and Approximations . .............. 97 10 Generalization of the Cut-Border Machine 99 10.1 From Triangular to Tetrahedral Cut-Border Machine Compression . 99 10.2 Cut-Border Operations and Situations . ..............100 10.3 Compressed Representation . .....................102 10.4 Traversal Order . .........................103 10.5 Mesh Border Encoding . .........................104 10.6 Cut-Border Data Structure . .....................104 10.7 Results . ................................107 11 Encoding Mesh Attributes 109 11.1 Vertex Locations . .........................109 11.2 Scalar and Vector Valued Attributes . ..............111 12 Other Compression Methods 113 12.1 Grow & Fold Compression . .....................113 12.1.1 Growing the Spanning Tree . ..............113 12.1.2 Folding the Spanning Tree . ..............114 12.1.3 Results . .........................115 12.2 Implant Sprays . .........................115 12.2.1 Split Vertices Specification . ..............115 12.2.2 Skirt Encoding . .........................116 12.2.3 Implementation & Results . ..............116 12.2.4 Improved Implant Sprays Encoding . ..............117 12.3 Progressive Simplicial Complexes . ..............119 13 Conclusion & Directions for Future Work 123 viii CONTENTS List of Figures 1.1 Meshes with border and non manifold spots . .............. 6 1.2 Subdivision of torus into four patches . .............. 7 1.3 Non orientable meshes . ......................... 9 1.4 Mesh relations . ......................... 15 1.5 Halfedge