A Brief History of 3D MESH COMPRESSION ORAL, M. ELMAS, A.A.

Slides:



Advertisements
Similar presentations
Real-time Geometry Caches
Advertisements

Least-squares Meshes Olga Sorkine and Daniel Cohen-Or Tel-Aviv University SMI 2004.
Geometry Compression Michael Deering, Sun Microsystems SIGGRAPH (1995) Presented by: Michael Chung.
Geometry Image Xianfeng Gu, Steven Gortler, Hugues Hoppe SIGGRAPH 2002 Present by Pin Ren Feb 13, 2003.
Angle-Analyzer: A Triangle-Quad Mesh Codec Haeyoung Lee USC Mathieu Desbrun USC Pierre Alliez INRIA.
High-Quality Simplification with Generalized Pair Contractions Pavel Borodin,* Stefan Gumhold, # Michael Guthe,* Reinhard Klein* *University of Bonn, Germany.
CS CS 175 – Week 4 Mesh Decimation General Framework, Progressive Meshes.
March 2, D Mesh Coding and Transmission Lihang Ying Department of Computing Science University of Alberta.

Compressing Texture Coordinates Martin IsenburgJack Snoeyink University of North Carolina at Chapel Hill with h Selective Linear Predictions.
Cutting a surface into a Disk Jie Gao Nov. 27, 2002.
Application of Generalized Representations for Image Compression Application of Generalized Representations for Image Compression using Vector Quantization.
Max-Plank Institut für Informatik systematic error parallelogram rule polygonal rules exact prediction Geometry Prediction for High Degree Polygons Martin.
Compressing Hexahedral Volume Meshes Martin Isenburg UNC Chapel Hill Pierre Alliez INRIA Sophia-Antipolis.
Large Mesh Simplification using Processing Sequences Martin Isenburg UNC Chapel Hill Peter Lindstrom LLNL Livermore Stefan Gumhold GRIS Tubingen Jack Snoeyink.
2015/6/15VLC 2006 PART 1 Introduction on Video Coding StandardsVLC 2006 PART 1 Variable Length Coding  Information entropy  Huffman code vs. arithmetic.
Martin Isenburg Jack Snoeyink University of North Carolina Chapel Hill Mesh Collapse Compression.
Martin Isenburg University of North Carolina at Chapel Hill Triangle Fixer: Edge-based Connectivity Compression.
Face Fixer Compressing Polygon Meshes with Properties Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill.
Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill Reverse Decoding of the Edgebreaker Encoding S PIRALE R EVERSI.
Polygonal Mesh – Data Structure and Smoothing
Surface Simplification & Edgebreaker Compression for 2D Cel Animations Vivek Kwatra & Jarek Rossignac GVU Center, College of Computing Georgia Institute.
Lossless Compression of Floating-Point Geometry Martin Isenburg UNC Chapel Hill Peter Lindstrom LLNL Livermore Jack Snoeyink UNC Chapel Hill.
With Parallelogram Prediction Compressing Polygon Mesh Geometry Martin Isenburg UNC Chapel Hill Pierre Alliez INRIA Sophia-Antipolis.
Compressing the Property Mapping of Polygon Meshes Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill.
Content Subdivision First some basics (control point polygon, mesh)
Compressing Polygon Mesh Connectivity
Kumar, Roger Sepiashvili, David Xie, Dan Professor Chen April 19, 1999 Progressive 3D Mesh Coding.
Streaming Compression of Triangle Meshes Martin Isenburg University of California at Berkeley Jack Snoeyink University of North Carolina at Chapel Hill.
Polygonal Meshes 3D Object Representation -Tyler Abrams.
Martin Isenburg UC Berkeley Jack Snoeyink UNC Chapel Hill Early Split Coding of Triangle Mesh Connectivity.
University of British Columbia Compressing Connectivity.
Coding with ASCII: compact, yet text-based 3D content Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill and INRIA Sophia-Antipolis.
2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Variable Length Coding  Information entropy  Huffman code vs. arithmetic.
An Introduction to 3D Geometry Compression and Surface Simplification Connie Phong CSC/Math April 2007.
Topological Surgery Progressive Forest Split Papers by Gabriel Taubin et al Presented by João Comba.
Out-of-Core Compression for Gigantic Polygon Meshes Martin IsenburgStefan Gumhold University of North CarolinaWSI/GRIS at Chapel Hill Universität Tübingen.
Data dan Teknologi Multimedia Sesi 08 Nofriyadi Nurdam.
Compressing Multiresolution Triangle Meshes Emanuele Danovaro, Leila De Floriani, Paola Magillo, Enrico Puppo Department of Computer and Information Sciences.
 Coding efficiency/Compression ratio:  The loss of information or distortion measure:
Estimation-Quantization Geometry Coding using Normal Meshes
Geometry Images Xiang Gu Harvard University Steven J. Gortler Harvard university Hugues Hoppe Microsoft Research Some slides taken from Hugues Hoppe.
Mesh Data Structure. Meshes Boundary edge: adjacent to 1 face Regular edge: adjacent to 2 faces Singular edge: adjacent to >2 faces Mesh: straight-line.
8. 1 MPEG MPEG is Moving Picture Experts Group On 1992 MPEG-1 was the standard, but was replaced only a year after by MPEG-2. Nowadays, MPEG-2 is gradually.
3D Geometry Coding using Mixture Models and the Estimation Quantization Algorithm Sridhar Lavu Masters Defense Electrical & Computer Engineering DSP GroupRice.
Computer Graphics Some slides courtesy of Pierre Alliez and Craig Gotsman Texture mapping and parameterization.
Semi-regular 3D mesh progressive compression and transmission based on an adaptive wavelet decomposition 21 st January 2009 Wavelet Applications in Industrial.
Random-Accessible Compressed Triangle Meshes Sung-eui Yoon Korea Advanced Institute of Sci. and Tech. (KAIST) Peter Lindstrom Lawrence Livermore National.
Prof. Amr Goneid, AUC1 Analysis & Design of Algorithms (CSCE 321) Prof. Amr Goneid Department of Computer Science, AUC Part 8. Greedy Algorithms.
Huffman coding Content 1 Encoding and decoding messages Fixed-length coding Variable-length coding 2 Huffman coding.
1 Compressing Triangle Meshes Leila De Floriani, Paola Magillo University of Genova Genova (Italy) Enrico Puppo National Research Council Genova (Italy)
Spectral Compression of Mesh Geometry (Karni and Gotsman 2000) Presenter: Eric Lorimer.
Agenda Review: –Planar Graphs Lecture Content:  Concepts of Trees  Spanning Trees  Binary Trees Exercise.
Solid Modeling Ref. Mantyla. Introduction Aim of modeling: The search of a media of communication.
Mesh data structure & file format
1 Compressing TINs Leila De Floriani, Paola Magillo University of Genova Genova (Italy) Enrico Puppo National Research Council Genova (Italy)
04 MPEG-4, 1 Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June D Compression Jarek Rossignac GVU Center and College of Computing Georgia Tech,
Streaming Compressed 3D Data on the Web using JavaScript and WebGL Université de Lyon, INSA-Lyon LIRIS UMR CNRS 5205 Guillaume Lavoué Florent Dupont Velvet.
JPEG Compression What is JPEG? Motivation
HUFFMAN CODES.
Rossignac, Szymczak, King, Safonova
Advanced Computer Graphics
Analysis & Design of Algorithms (CSCE 321)
Extensions to Edgebreaker
Efficient Edgebreaker for surfaces of arbitrary topology
Semi-Automated Cleanup Tools
Wavelet-based Compression of 3D Mesh Sequences
Iso-Surface extraction from red and green samples on a regular lattice
Subdivision Surfaces 고려대학교 컴퓨터 그래픽스 연구실 cgvr.korea.ac.kr.
Presentation transcript:

A Brief History of 3D MESH COMPRESSION ORAL, M. ELMAS, A.A.

Outline Algorithms Geometry Compression Topological Surgery 3D Models and Polygonal Mesh Usage Areas Polygonal Mesh Basics Representation and Storage Compression Single Rate Mesh Compression Geometry Compression Connectivity Compression Pioneering Algorithms Performance Results Conclusion Algorithms Geometry Compression Topological Surgery EdgeBreaker Triangle Mesh Compression

Movies “Rustboy” animated short by Brian Taylor

Engineering “Audi A8” created by Roland Wolf

Architectural Visualization “Atrium” created by Karol Myszkowski and Frederic Drago

Product Catalogues “Bedroom set-model Assisi” created by Stolid

Historical Study scanning of “Michelangelo’s David” courtesy of Marc Levoy

Computer Games screenshot of “The village of Gnisis”, The Elder Scrolls III

Polygonal Mesh & Mesh Basics

Polygonal Mesh & Mesh Basics Mesh with Holes Mesh with Handles Simple Mesh Mesh with Holes & Handles

Manifold & Non-manifold Meshes Non-manifold vertex (left) A non-manifold edge (center) has more than two incident faces (right) non-manifold but can be handled by most of the data structures

3D Polygonal Mesh Isenberg

Standard MESH Representation list of vertices x0 y0 z0 x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4 . . . . . xn yn zn list of faces 1 4 2

Standard MESH Representation list of vertices x0 y0 z0 x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4 . . . . . xn yn zn list of faces 1 4 2 2 3 0 4 0 5 3 4 5 5 0 2 . . .

Geometry and Connectivity Information Minimal information need to be stored is: Where are the vertices located? => Mesh Geometry How are the vertices connected? => Mesh Connectivity

Basic Ingredients for Mesh Connectivity face1 1 2 3 4 face2 3 4 3 face3 5 2 1 3 . . facef 725 6291 6293 Geometry vertex1 ( x1 y1 z1 ) vertex2 ( x2 y2 z2 ) vertex3 ( x3 y3 z3 ) . . vertexv ( xv yv zv )

Optional Ingredients for Mesh Mapping face1 1 2 3 4 face2 3 4 5 face3 5 6 1 7 . . facef 9152 123 271 Values texcoord1 (u1 v1) texcoord2 (u2 v2) texcoord3 (u3 v3) . . texcoordt (ut vt)

Uncompressed Connectivity info. 0 4 5 0 5 1 5 6 1 1 6 2 2 6 3 4 8 5 8 9 5 5 9 6 9 11 6 6 11 7 6 7 3 8 10 9 9 10 11 11 12 7 6 log(n) bpv 2 1 3 6 5 4 7 9 8 11 12 10

Pioneering Compression Algorithms Geometry Compression (GC) Geometry Compression Through Topological Surgery (TS) Edgebreaker (EB) Triangle Mesh Compression (TG98) Java3D MPEG - 4 Virtue3D

Other triangle based connectivity driven single-rate mesh compression algorithms Geometry Compression, [Deering, 95] Topological Surgery, [Taubin & Rossignac, 98] Cut-Border Machine, [Gumhold & Strasser, 98] Triangle Mesh Compression, [Touma & Gotsman, 98] Edgebreaker, [Rossignac, 99] Spectral Compression of Geometry, [Karni & Gotsman, 00] Face Fixer, [Isenburg & Snoeyink, 00] Valence-driven Connectivity Coding, [Alliez & Desbrun, 01] Near-Optimal Coding, [Khodakovsky, Alliez, Desbrun & Degree Duality Coder, [Isenburg, 02] Polygonal Parallelogram Prediction, [Isenburg & Alliez, 02]

Geometry Compression Deering ‘95 Convert triangle data to generalized triangle mesh Quantization of positions, colors, normals Delta encoding of quantized values Huffman tag-based variable-length encoding of deltas Output binary output stream with Huffman table initializations and geometry compression instructions

Geometry Compression Deering ‘95 Redundancy ~ 2 One symbol per face  2V symbols Fast Local well suited for hw 8-11 bpv for connectivity Geometry: highly variable Integrated in JAVA3D

Topological Surgery The idea is to cut a given mesh along a selected set of edges to make a planar mesh. The mesh connectivity is then represented by these cuts and planar mesh. TS encodes a triangular mesh with about 2.5 to 6 b/v Spanning trees: a vertex and a triangle spanning tree Connectivity encoding is lossless. Geometry is predictively encoded. The correction vectors are entropy encoded. Normals, and colors are quantized. Obtaining the optimal spanning tree is an NP-hard combinatorial problem.

EdgeBreaker Lossless compression for a triangle mesh, using ≈2 bits per triangle for simple meshes. Only a slight increase for meshes with holes and handles. Destroy triangles of the mesh one-by-one, starting from the boundary and spiraling inwards For each destruction operation, store an opcode indicating the type of the operation Sequence of opcodes is called “history” Length of history = number of triangles, hence linear size encoding Compression scheme: remove X, store the operation (C, L, E, R or S), update the bounding loop and advance the gate

Edgebreaker in Action compression boundary unprocessed region 5 compression boundary unprocessed region processed region

C 5 compression boundary C unprocessed region processed region

C C 5 compression boundary C C unprocessed region processed region

C C R 5 compression boundary R C C unprocessed region processed region

C C R C compression boundary C R C C unprocessed region 5 compression boundary C R C C unprocessed region processed region

C C R C R compression boundary R C R C C unprocessed region 5 compression boundary R C R C C unprocessed region processed region

C C R C R S compression boundary S R C R C C unprocessed region offset = 11 1 2 3 4 5 6 7 8 9 10 11 5 compression boundary S R C R C C unprocessed region processed region

C C R C R S L compression boundary L S R C R C C unprocessed region offset = 11 5 compression boundary L S R C R C C unprocessed region processed region

C C R C R S L C compression boundary C L S R C R C C offset = 11 5 compression boundary C L S R C R C C unprocessed region processed region

C C R C R S L C R compression boundary C L R S R C R C C offset = 11 5 compression boundary C L R S R C R C C unprocessed region processed region

C C R C R S L C R C compression boundary C L C R S R C R C C offset = 11 5 compression boundary C L R C S R C R C C unprocessed region processed region

C C R C R S L C R C R compression boundary C L C R S R R C R C C offset = 11 5 compression boundary C L R C S R R C R C C unprocessed region processed region

C C R C R S L C R C R C compression boundary C L C R S R C R C R C C offset = 11 5 compression boundary C L R C S R C R C R C C unprocessed region processed region

C C R C R S L C R C R C R compression boundary C L C R S R C R R C R C offset = 11 5 compression boundary C L R C S R C R R C R C C unprocessed region processed region

C C R C R S L C R C R C R R compression boundary C L C R S R C R R R C offset = 11 5 compression boundary C L R C S R C R R C R R C C unprocessed region processed region

C C R C R S L C R C R C R R R compression boundary C L C R S R C R R R offset = 11 5 compression boundary C L R C S R C R R R C R R C C unprocessed region processed region

C C R C R S L C R C R C R R R L compression boundary C L C R L S R C R offset = 11 5 compression boundary C L R C L S R C R R R C R R C C unprocessed region processed region

C C R C R S L C R C R C R R R L C compression boundary C C L C R L S R offset = 11 5 compression boundary C C L R C L S R C R R R C R R C C unprocessed region processed region

C C R C R S L C R C R C R R R L C R compression R boundary C C L C R L offset = 11 5 compression boundary R C C L R C L S R C R R R C R R C C unprocessed region processed region

C C R C R S L C R C R C R R R L C R R R compression R boundary C C L C offset = 11 R 5 compression boundary R C C L R C L S R C R R R C R R C C unprocessed region processed region

C C R C R S L C R C R C R R R L C R R R offset = 11 R R 5 compression boundary R C C L R C L S R C R R R C R R C C unprocessed region processed region

C C R C R S L C R C R C R R R L C R R R S offset = 3 C C R C R S L C R C R C R R R L C R R R S offset = 11 R R 1 2 5 S compression boundary R C C L R C L S R C R R R C R R C C unprocessed region processed region

C C R C R S L C R C R C R R R L C R R R S R offset = 3 C C R C R S L C R C R C R R R L C R R R S R offset = 11 R R R 5 S compression boundary R C C L R C L S R C R R R C R R C C unprocessed region processed region

C C R C R S L C R C R C R R R L C R R R S R E offset = 3 C C R C R S L C R C R C R R R L C R R R S R E offset = 11 R R R 5 S compression boundary R E C C L R C L S R C R R R C R R C C unprocessed region processed region

C C R C R S L C R C R C R R R L C R R R S R E E offset = 3 C C R C R S L C R C R C R R R L C R R R S R E E offset = 11 R R R 5 S compression boundary R E E C C L R C L S R C R R R C R R C C unprocessed region processed region

Triangle Mesh Compression Touma & Gotsman ‘98 The idea: Deterministic edge conquering from successive pivot vertices along an active edge list Connectivity: Output one valence symbol per vertex, +  Huffman encoding of valences Features: Average: 2 b/v for connectivity Bit-rate vanishes to zero when regular Not seriously challenged since ‘98

TG coder slot counts compression boundary unprocessed region 5 compression boundary unprocessed region processed region

TG coder 7 compression boundary unprocessed region processed region 7 5 compression boundary unprocessed region 7 processed region

TG coder 7 6 compression boundary zero slot unprocessed region 7 6 5 compression boundary zero slot 6 unprocessed region 7 processed region

TG coder 7 6 compression boundary unprocessed region processed region 7 6 5 compression boundary 6 unprocessed region 7 processed region

TG coder 7 6 5 compression boundary zero slot unprocessed region 7 6 5 5 compression boundary zero slot 5 6 unprocessed region 7 processed region

TG coder 7 6 5 compression boundary unprocessed region 7 6 5 5 compression boundary 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S compression boundary unprocessed region offset = 18 2 4 6 7 8 11 12 13 15 16 18 5 compression boundary S 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S compression boundary unprocessed region offset = 18 5 compression boundary S 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 compression boundary unprocessed region offset = 18 5 compression boundary 7 S 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 zero slot compression boundary unprocessed region offset = 18 5 zero slot compression boundary 7 S 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 zero slot compression boundary unprocessed region offset = 18 5 zero slot compression boundary 7 S 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 compression boundary unprocessed region offset = 18 5 compression boundary 7 S 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 compression boundary unprocessed region offset = 18 5 compression boundary 7 6 S 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 compression boundary unprocessed region offset = 18 5 compression boundary 7 6 S 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 5 compression boundary unprocessed region offset = 18 5 compression boundary 7 6 S 5 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 5 compression boundary unprocessed region offset = 18 5 compression boundary 7 6 S 5 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 5 compression boundary unprocessed region offset = 18 5 compression boundary 7 6 S 5 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 5 compression boundary unprocessed region offset = 18 5 compression boundary 7 6 S 5 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 5 compression boundary unprocessed region offset = 18 5 compression boundary 7 6 S 5 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 5 6 compression boundary unprocessed region offset = 18 5 6 compression boundary 7 6 S 5 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 5 6 compression boundary unprocessed region offset = 18 5 6 compression boundary 7 6 S 5 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 5 6 compression boundary unprocessed region offset = 18 5 6 compression boundary 7 6 S 5 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 5 6 compression boundary unprocessed region offset = 18 5 6 compression boundary 7 6 S 5 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 5 6 compression boundary unprocessed region offset = 18 5 6 compression boundary 7 6 S 5 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 5 6 compression boundary unprocessed region offset = 18 5 6 compression boundary 7 6 S 5 5 6 unprocessed region 7 processed region

TG coder 7 6 5 S 7 6 5 6 7 … E compression boundary unprocessed region offset = 18 5 6 compression boundary 7 6 S 5 5 7 6 unprocessed region 7 processed region

Even better upper bound Recap Method Note Connectivity (b/v) Deering 95 Triangle strips Redundancy ~ 2 8-11 Taubin & Rossignac 98 Spanning trees ~ 4 Touma & Gotsman 98 Valence V symbols ~ 2 (~0 when regular) Rossignac 99 King & Rossignac 99 Gumhold 00 Gate traversal 2V symbols, upper bound Better upper bound Even better upper bound 4 guaranteed 3.67 grntd. 3.55 grntd. Alliez & Desbrun 01 Valence + adaptive conquest Near optimal ~1.8 [Tutte 62]

Conclusions The valence approach guarantees: Optimality in the regular case (6. . . .6) *Near* optimality in the irregular case