Compressing the Property Mapping of Polygon Meshes Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill.

Slides:



Advertisements
Similar presentations
Huffman code and ID3 Prof. Sin-Min Lee Department of Computer Science.
Advertisements

Least-squares Meshes Olga Sorkine and Daniel Cohen-Or Tel-Aviv University SMI 2004.
1 Lecture 5 (part 2) Graphs II Euler and Hamiltonian Path / Circuit Reading: Epp Chp 11.2, 11.3.
Strips: Triangle and Quad Jyun-Ming Chen Reference: 1, 212.
Informationsteknologi Wednesday, November 7, 2007Computer Graphics - Class 51 Today’s class Geometric objects and transformations.
Applied Combinatorics, 4th Ed. Alan Tucker
Angle-Analyzer: A Triangle-Quad Mesh Codec Haeyoung Lee USC Mathieu Desbrun USC Pierre Alliez INRIA.
Martin Isenburg University of North Carolina at Chapel Hill Craig Gotsman Technion - Israel Institute of Technology Stefan Gumhold University of Tübingen.
Progressive Encoding of Complex Isosurfaces Haeyoung Lee Mathieu Desbrun Peter Schröder USC USC Caltech.

Jack Snoeyink FWCG08 Oct 31, 2008 David L. Millman University of North Carolina - Chapel Hill.
Mesh Simplification Global and Local Methods:
Compressing Texture Coordinates Martin IsenburgJack Snoeyink University of North Carolina at Chapel Hill with h Selective Linear Predictions.
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.
Binary Compression Rates for ASCII Formats Martin IsenburgJack Snoeyink University of North Carolina at Chapel Hill.
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
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.
High-Quality Video View Interpolation
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.
Martin Isenburg UC Berkeley Jack Snoeyink UNC Chapel Hill Early Split Coding of Triangle Mesh Connectivity.
Progressive Encoding of Complex Iso-Surfaces Peter Schröder Caltech ASCI Alliance Center for Simulation of Dynamic Response of Materials Joint work with:
Coding with ASCII: compact, yet text-based 3D content Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill and INRIA Sophia-Antipolis.
CS CS 175 – Week 4 Triangle Mesh Smoothing Discrete Differential Geometry.
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.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.
Shape Blending Joshua Filliater December 15, 2000.
Ziting (Vivien) Zhou1 Drawing Graphs By Computer Graph from
CS559: Computer Graphics Lecture 33: Shape Modeling Li Zhang Spring 2008.
Slide 14-1 Copyright © 2005 Pearson Education, Inc. SEVENTH EDITION and EXPANDED SEVENTH EDITION.
296.3Page 1 CPS 296.3:Algorithms in the Real World Data Compression: Lecture 2.5.
Estimation-Quantization Geometry Coding using Normal Meshes
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
Lossless Compression CIS 465 Multimedia. Compression Compression: the process of coding that will effectively reduce the total number of bits needed to.
1 Compressing Triangle Meshes Leila De Floriani, Paola Magillo University of Genova Genova (Italy) Enrico Puppo National Research Council Genova (Italy)
Simplifying Surfaces with Color and Texture using Quadric Error Metrics Michael Garland Paul S. Heckbert Carnegie Mellon University October 1998 Michael.
Fall 2015 COMP 2300 Discrete Structures for Computation Donghyun (David) Kim Department of Mathematics and Physics North Carolina Central University 1.
Spectral Compression of Mesh Geometry (Karni and Gotsman 2000) Presenter: Eric Lorimer.
1 Polygonal Techniques 이영건. 2 Introduction This chapter –Discuss a variety of problems that are encountered within polygonal data sets The.
Planar graphs with no 5- cycles, 6-cycles or intersecting triangles are 3-colorable Carl Yerger, Davidson College Clemson Mini-Conference 2012.
Solid Modeling Ref. Mantyla. Introduction Aim of modeling: The search of a media of communication.
Mesh data structure & file format
Graphics Graphics Korea University cgvr.korea.ac.kr 1 7. Speed-up Techniques Presented by SooKyun Kim.
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,
1 OGRE Programming Intermediate Tutorial: Volume Selection.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
What are shaders? In the field of computer graphics, a shader is a computer program that runs on the graphics processing unit(GPU) and is used to do shading.
Introduction to Meshes Lecture 22 Mon, Oct 20, 2003.
Graphs Definition: a graph is an abstract representation of a set of objects where some pairs of the objects are connected by links. The interconnected.
CS559: Computer Graphics Lecture 33: Shape Modeling Li Zhang Spring 2008.
Chapter 11. Chapter Summary  Introduction to trees (11.1)  Application of trees (11.2)  Tree traversal (11.3)  Spanning trees (11.4)
Rossignac, Szymczak, King, Safonova
Greedy Technique.
A Brief History of 3D MESH COMPRESSION ORAL, M. ELMAS, A.A.
Huffman Coding, Arithmetic Coding, and JBIG2
Tucker, Applied Combinatorics, Sec 2.4
CSC461: Lecture 23 Shading Computation
Efficient Edgebreaker for surfaces of arbitrary topology
Meshes.
Presentation transcript:

Compressing the Property Mapping of Polygon Meshes Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill

Polygon Meshes

face connectivity face face face face face

Connectivity Compression recent compression results report improvements of ~ % ~ 0.22 b/v on compression rates of ~ 2.32 b/v

Properties

face property mapping face face face face face

Mesh properties can be attached “per-vertex” # of Bones Bone IDs Bone Weights Property Mapping (1)

Mesh properties can be attached “per-face” Shader IDs Property Mapping (2)

Mesh properties can be attached “per-corner” Normals TexCoords Colors Property Mapping (3)

Definitions (1) ? ? ? ? ? ? ? ? ?

Definitions (2) blend edgecrease edge crease vertexcorner vertexsmooth vertex smooth corner crease corner smooth edge

Previous Work Gumhold & Strasser: “edge bits” Real-time compression of triangle mesh connectivity, SIGGRAPH, 1998 Taubin et al: “discontinuity bits” Geometry coding and VRML, Proceedings of the IEEE, 1998 Isenburg & Snoeyink: “vertex and corner bits” Face Fixer: Compressing Polygon Meshes with Properties, SIGGRAPH, 2000

Corner and Vertex Bits 1

0 1 0

Improve the Coding improve the vertex & corner bit approach: Don’t write all bits!  Rules R 1 to R 4 Try to predict the remaining bits!  Predictions P 1 to P 4

Rules some bit configurations cannot occur  not all bits are needed, because some can be inferred four simple rules: –rule R 1 saves vertex bits –rules R 2, R 3, and R 4 save corner bits

Rule R 1 ? ? if a vertex has only one corner, then it must be a smooth vertex  saves 1 vertex bit marks current vertex and current corner

if a crease vertex has only two corners, then both of them must be crease corners Rule R 2 ? ? 0 vertex bit ? ? 0 currently processed bit (s)  saves 2 corner bits

? ? already processed corners Rule R 3 each crease vertex must have at least two crease corners, this has only one so far  saves 1 corner bit

? 0 ? 0 ? ? corner bits Rule R 4 each crease vertex must have at least two crease corners, this has none so far  saves 2 corner bits

Predictions some bit configurations are more likely than others  fewer bits are needed, because many can predicted correctly eight simple predictions: –predictions P 1 and P 2 for vertex bits –predictions P 3 to P 8 for corner bits

 assume crease edge 1 0 ? ? 0 0 previously processed vertex Prediction P 1 some edge connects to a previously processed vertex along a crease  predict vertex bit: 0

? ? Prediction P 2 otherwise  predict nothing  assume nothing

 assume crease edge the current edge connects to a previously processed vertex along a crease  predict corner bit: 1 ? ? previously processed vertex Prediction P 3

? current edge ? 1 0 Prediction P 4 the current edge connects to a previously processed vertex, but not along a crease  predict corner bit: 0  assume smooth edge

? ? 0 crease corners Prediction P 5 there have been already two (or more) crease corners  predict corner bit: 0  assume crease vertex

there has been one crease, but since then less than smooth corners  assume crease vertex ? smooth corner ? 1 0 Prediction P 6 degree-1 2  predict corner bit: 0

? 0 ? Prediction P 7 there have been already preceding smooth corners  assume crease vertex degree-1 2  predict corner bit: 1

0 ? 0 currently processed bit ? 0 0 Prediction P 8 otherwise  predict nothing  assume nothing

Entropy For a sequence of n bits given p 0 : probability of bit 0 occurring p 1 : probability of bit 1 occurring Entropy = - n ( p 0 log 2 ( p 0 ) + p 1 log 2 ( p 1 )) # of 0s p 0 = n # of 1s p 1 = n

Entropy with Context For a sequence of n bits given p 0 | C : probability of bit 0 occurring given C p 1 | C : probability of bit 1 occurring given C Entropy = - n  ( p 0 | C log 2 ( p 0 | C ) + p 1 | C log 2 ( p 1 | C )) C # of 0s given C p 0 | C = # times given C # of 1s given C p 1 | C = # times given C

Arithmetic Coding approximates the entropy static version, if probabilities known adaptive version, if probabilities not known  learn probabilities along the way  BUT: # of symbols >> # of contexts combination possible  initialize roughly with what is expected

Test Models

Results vertices ISmeshprednormalsT+ GS button dragknob handle handle handle part part part rotor spool oilfilter galleon sandal

Order k Entropy For a sequence of n bits given p 0 |  : probability of bit 0 occurring after  p 1 |  : probability of bit 1 occurring after  Entropy = - n  ( p 0 |  log 2 ( p 0 |  ) + p 1 |  log 2 ( p 1 |  ))   : string of preceding k-bits number of different contexts is 2 k

Fair Comparison meshpredT+ aac0 button dragknob handle handle handle part part part rotor spool oilfilter galleon sandal aac1aac2aac3aac4aac5

Could we do better? YES ! HOW ? … use “better” traversal order STRATEGIE... follow the creases –depth first traversal along crease edges –crease vertices are predicted correctly –good start corner for predicting corner bits BUT … requires a separate decoding pass over the entire mesh

Stripified Triangle Meshes

Strip Corners

button dragknob handle handle handle part part part rotor spool oilfilter without -= = = = = = = = = = =- 1.0 difference Results triangles meshpred strips  code stripification for FREE

Thank You !