Coding with ASCII: compact, yet text-based 3D content Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill and INRIA Sophia-Antipolis.

Slides:



Advertisements
Similar presentations
Shape Compression using Spherical Geometry Images
Advertisements

15-583:Algorithms in the Real World
Real-time Geometry Caches
Least-squares Meshes Olga Sorkine and Daniel Cohen-Or Tel-Aviv University SMI 2004.
Developer’s Survey of Polygonal Simplification Algorithms Based on David Luebke’s IEEE CG&A survey paper.
Progressive Transmission of Appearance Preserving Octree-Textures Camille Perin Web3D 2008 August 9, 2008 Julien LacosteBruno Jobard LIUPPA University.
Angle-Analyzer: A Triangle-Quad Mesh Codec Haeyoung Lee USC Mathieu Desbrun USC Pierre Alliez INRIA.

Feature-based Surface Decomposition for Correspondence and Morphing between Polyhedra Arthur D Gregory Andrei State, Ming C Lin, Dinesh Manocha, Mark A.
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.
Large Mesh Simplification using Processing Sequences Martin Isenburg UNC Chapel Hill Peter Lindstrom LLNL Livermore Stefan Gumhold GRIS Tubingen Jack Snoeyink.
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.
Multimedia and the WWW Howell Istance and Chris Hand, Napier University.
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.
High-Quality Video View Interpolation
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.
MPEG-4 Applications Interactive TV (broadcast) Streaming media on the web (internet) Multimedia titles (CD-ROM) Network games Mobile multimedia (picture.
An Introduction to 3D Geometry Compression and Surface Simplification Connie Phong CSC/Math April 2007.
VRML Virtual Reality Modeling Language. What Are We Going to See? What is VRML? Syntax of the language Features Examples.
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.
Geometry Videos Symposium on Computer Animation 2003 Hector M. Briceño Collaborators: Pedro V. Sander, Leonard McMillan, Steven Gortler, and Hugues Hoppe.
Amit L Ahire, Alun Evans, Josep Blat Interactive Technologies Group, Universitat Pompeu Fabra, Barcelona, Spain.
Getting started © juhanita2015.
Sem 1 v2 Chapter 14: Layer 6 - The Presentation layer.
CS559: Computer Graphics Lecture 33: Shape Modeling Li Zhang Spring 2008.
Object Based Video Coding - A Multimedia Communication Perspective Muhammad Hassan Khan
History of VRML and Its Development Process. Learning Objectives Understand the history of VRML Understand the purpose and functions of VRML Learn how.
1 Virtual Reality Modeling Language (VRML97) ©Anthony Steed
1 Mpeg-4 Overview Gerhard Roth. 2 Overview Much more general than all previous mpegs –standard finished in the last two years standardized ways to support:
RACBVHs: Random-Accessible Compressed Bounding Volume Hierarchies Tae-Joon Kim Bochang Moon Duksu Kim Sung-Eui Yoon KAIST (Korea Advanced Institute of.
© Keith Vander Linden, 2005 Jeremy D. Frens, Open up the box of a computer, and you won't find any numbers in there. You'll find electromagnetic.
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
Random-Accessible Compressed Triangle Meshes Sung-eui Yoon Korea Advanced Institute of Sci. and Tech. (KAIST) Peter Lindstrom Lawrence Livermore National.
MIRALab Where Research means Creativity SVG Open 2005 University of Geneva 1 Converting 3D Facial Animation with Gouraud shaded SVG A method.
1 Compressing Triangle Meshes Leila De Floriani, Paola Magillo University of Genova Genova (Italy) Enrico Puppo National Research Council Genova (Italy)
VRML virtual reality modeling language. what is it? standardised (sort of) notation for virtual reality over the web text file (use normal text editor)
Spectral Compression of Mesh Geometry (Karni and Gotsman 2000) Presenter: Eric Lorimer.
VRML Anthony Steed Department of Computer Science University College London ©Anthony Steed
Mesh data structure & file format
Chap 14 Presentation Layer Andres, Wen-Yuan Liao Department of Computer Science and Engineering De Lin Institute of Technology
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,
Web3D Jyun-Ming Chen Fall Contents Definitions, components Examples Task breakdown Survey of available technologies Recommended platform Details.
Introduction to VRML for generating 3-D display
© TMC Computer School HC20203 VRML HIGHER DIPLOMA IN COMPUTING Chapter 6 – Texture Maps.
11/16/04© University of Wisconsin, CS559 Fall 2004 Last Time Texture Anti-Aliasing Texture boundaries Modeling introduction.
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.
Armand Rousso describe the X3D Technology
X3DOM : Integrating 3D content seamlessly into webpage
MPEG-4 Binary Information for Scenes (BIFS)
Automatic Video Shot Detection from MPEG Bit Stream
A Brief History of 3D MESH COMPRESSION ORAL, M. ELMAS, A.A.
Arthur D Gregory, Andrei State, Ming C Lin,
Introduction to VRML for generating 3-D display
Efficient Edgebreaker for surfaces of arbitrary topology
VRML Shapes.
Meshes.
Geometric and Intelligent Computing Laboratory
Presentation transcript:

Coding with ASCII: compact, yet text-based 3D content Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill and INRIA Sophia-Antipolis

Overview Motivation Polygon Meshes Coding of Indices Position Indices + TexCoord Indices Quantizing & Coding of Coordinates Positions + Texture Coordinates Example Results, Demos & Conclusion

Motivation

Why ASCII? authors “like” text-based 3D formats wide acceptance read & modify scene with any text editor Web3D Developer survey: “very important”  many Web3D APIs only support ASCII (rather than supporting two formats)  no binary VRML specification

Why Compression? authors “want” compressed 3D content faster download Web3D Developer survey: “very important” data-heavy nodes audio images video geometry interpolators

Approaches readable text-based format: support only ASCII content exception: “standard” binary data VRML and its variants binary format: one (or more) binary files automatically “protects” the content proprietary (Cult, Shockwave, Viewpoint...)

Compression Standards (1) binary compression standards: image data: JPEG, GIF audio data:MP3 movie data:MPEG geometry data:? (MPEG-4/7 ??) interpolator data:? (MPEG-4/7 ??) “read” “edit” “write” software is plentiful

Compression Standards (2) the structure of 3D data is more complex audio : sequence of numbers image : block of numbers video : sequence of blocks of numbers geometry :+ positions + triangles (or polygons ?) + texcoords (1, 2, 3, or 8 layers ?) + normals or smoothing groups (?) + colors (per-face or per-vertex ?) + bones (1, 2 or 3 attachments ?)

Download on Demand java-based browsers Shout3D, Blaxxun3D, CortonaJet, Hotmedia provide decoder with the model. “light-weight” important it has to be downloaded also download less was motivation to compress proposed decoder: >> 5381 bytes <<

Polygon Meshes

Polygon Mesh = Indexed Face Set (IFS) minimally : p positions= float [ 3p ] f faces with c corners= int [ f + c ] optionally : t texCoords= float [ 2t ] f faces with c corners = int [ f + c ]

Example: “a box” IndexedFaceSet { coord Coordinate { point [ , , , , , , , ] } coordIndex [ ] }

coord ( Geometry )

coordIndex ( Connectivity ) face face face face face face

Example: “a textured box” IndexedFaceSet {... texCoord Coordinate { point [ , , , , , , , , , , , , , ] } texCoordIndex [ ] }

0.0 v u texCoord ( Property Values )

texCoordIndex ( Property Mapping ) face face face face face face

Coding of Indices (1) Position Indices

Coding Position Indices > don’t code indices “directly” < Assumption: “order of position doesn’t matter” Approach: “change order of positions” - code connectivity graph - enumerate positions based on traversal order - re-order accordingly > code indices “implicitly” <

Connectivity Coders  for Triangle Meshes Topological Surgery, Taubin et al., `97 Triangle Mesh Compression, Touma & Gotsman, `98 Cut-Border-Machine, Gumhold & Strasser, `98 Edgebreaker, Rossignac, `99  for Polygon Meshes Face Fixer, Isenburg & Snoeyink, `00 Degree Duality Coder, Isenburg, `02 Near-Optimal Connectivity Encoding, Khodakovsky, Alliez, Desbrun & Schröder, `02

region growing encodes connectivity graph as a sequence of labels: one label.... per face one label per hole one label per handle labels and fix it all together number of labels = number of edges reverse decoding Face Fixer F4F4 F5F5 R F3F3 LS E HnHn M

Encoding

Encoding F4F

Encoding F4F4 F3F

Encoding F4F4 F3F3 R

Encoding F4F4 F3F3 F5F5 R

Encoding F4F4 F3F3 F5F5 R F5F

Encoding F4F4 F3F3 F5F5 R F5F5 R

Encoding F4F4 F3F3 F5F5 R F5F5 R R

Mapping Labels to ASCII Resulting label sequence: F4F4 F3F3 F5F5 R F5F5 R F4F4... RR F4F4 R R 0 L 1 S 2 E 3 M 4 F3F3 5 F4F4 6 F5F5 7 H3H3 5 6 H4H4 H5H5 7

Decoding R

Decoding R

Decoding F5F

Decoding F5F

Decoding R

Decoding F3F

Decoding F4F

Decoding

Non-Manifold Meshes cut

Coding of Indices (2) TexCoord Indices

Coding TexCoord Indices > don’t code indices “directly” < Assumption: “order of texCoords doesn’t matter” Approach: “change order of texCoords” - code “on top” of connectivity graph - enumerate texCoords based on traversal order - re-order accordingly > code indices “implicitly” <

Per-Corner Mappings “edge bits”, Gumhold & Strasser Real-time compression of triangle mesh connectivity, SIGGRAPH ‘98 “discontinuity bits”, Taubin et al. Geometry coding and VRML, Proceedings of the IEEE ‘98 “vertex and corner bits”, Isenburg & Snoeyink Face Fixer: Compressing Polygon Meshes with Properties, SIGGRAPH ‘00

Vertex and Corner Bits (1)

Vertex and Corner Bits (2)

Vertex and Corner Bits (3) crease vertexcorner vertexsmooth vertex smooth corner crease corner

Encoding 1

0 1 0

Quantizing & Coding of Coordinates

Quantize calculate bounding box (min x, min y, min z ) and (max x, max y max z ) calculate extends of bounding box range x = max x – min x range y = max y – min y … quantize with longest extend getting n bits

Delta Code coordinates are integer numbers only write difference to last resulting sequence has lower dispersion  there are much better schemes !!!  why delta-coding ??? simple, light-weight implementation submission deadline was close

Decoding Example

code_words [ ] = [ …] size of index arrays [ … ] indices[ ] = texindices[ ] = label E R 0 1

0 code_words [ ] = [ …] [ … ] indices[ ] = texindices[ ] = R label 1 2 R

code_words [ ] = [ …] [ … ] indices[ ] = texindices[ ] = R label F4F4

[ … ] code_words [ ] = [ …] indices[ ] = texindices[ ] = F4F4 label R

[ … ] indices[ ] = texindices[ ] = code_words [ ] = [ …] R label R

5 [ … ] indices[ ] = texindices[ ] = code_words [ ] = [ …] R label F4F4

5 [ … ] indices[ ] = texindices[ ] = code_words [ ] = [ …] F4F4 label R

[ … ] indices[ ] = texindices[ ] = code_words [ ] = [ …] R label R label 6 5

7 [ … ] indices[ ] = texindices[ ] = code_words [ ] = [ …] R label 6 5 F5F5 H5H5

3 8 H5H5 hole 7 [ … ] indices[ ] = texindices[ ] = code_words [ ] = [ …] vertex bit indicating crease vertex R label

0 1 hole 7 [ … ] indices[ ] = texindices[ ] = code_words [ ] = [ …] R label 4 F3F3

0 1 hole 7 [ … ] indices[ ] = texindices[ ] = code_words [ ] = [ …] label F3F label F3F3

[ … ] code_words [ ] = [ …] indices[ ] = texindices[ ] = hole label F3F3 vertex bit indicating smooth vertex 1

Results

“fish” scene Shape { appearance Appearance { material Material { modulateTextureWithDiffuse true diffuseColor } texture ImageTexture { url fish.jpg } } geometry IndexedFaceSet { coord Coordinate { point [ ] } coordIndex [ … ] texCoord TextureCoordinate { point [ … ] } texCoordIndex [ … ] } }

“fish” scene Shape { appearance Appearance { material Material { modulateTextureWithDiffuse true diffuseColor } texture ImageTexture { url fish.jpg } } geometry IndexedFaceSet { coord Coordinate { point [ ] } coordIndex [ … ] texCoord TextureCoordinate { point [ … ] } texCoordIndex [ … ] } } CodedIndexedFaceSet code [ … ]

lossless-coded “fish” scene Shape { appearance Appearance { material Material { modulateTextureWithDiffuse true diffuseColor } texture ImageTexture { url fish.jpg } } geometry CodedIndexedFaceSet { coord Coordinate { point [ ] } texCoord TextureCoordinate { point [ … ] } code [ … ] } } pos 4.884e-3 tex e-3

lossy-coded “fish” scene Shape { appearance Appearance { material Material { modulateTextureWithDiffuse true diffuseColor } texture ImageTexture { url fish.jpg } } geometry CodedIndexedFaceSet { coord Coordinate { point [ ] } texCoord TextureCoordinate { point [ … ] } code [ … ] pos 4.884e-3 tex e-3 } }

lion % % wolf % % raptor % % fish % % snake % % horse % % cat % % dog % % Results: Dense Scenes model plaincodedquantized

IFS % Results: Sparse Scene 33 indexed face sets 5 position interpolators 27 orientation interpolators file size of “swing.wrl.gz” in bytes 31 % 66 % IFS, OI, PI % % Only Indexed Face Sets

Demos

Shout3D ASCII coder :> local web <localweb Various Scenes Swing ( static ) > local web <localweb Swing ( animated ) > local web <localweb Fish > local web <localweb Lion > local web <localweb Snake > local web <localweb

Conclusion geometry coding for ASCII formats compressed, but not binary authors not forced to change habits VRML / X3D geometry compression long wanted feature (`96) VRML-CBF proposal refused (`98) BF call for proposals unanswered (`00) Conformance: ASCII BINARY

Current Work “Arithmetic ASCII”  ( nearly ) as compact as a compressed binary format  straight-forward mapping to binary  no compromise on binary compression rates  same decoding algorithm for binary and ASCII version of a node  good for rapid prototyping / proof-of-concept

Acknowledgements Paul Isaacs for telling me “… no, we don’t have geometry compression because the Shout3D API does not support binary input …” Curious Labs & Shout3D for the models ARC TéléGeo of INRIA Sophia-Antipolis for partial funding

Thank You.