Geometric Compression Through Topological Surgery - PowerPoint PPT Presentation

About This Presentation
Title:

Geometric Compression Through Topological Surgery

Description:

Geometric Compression Through Topological Surgery Gabriel Taubin (IBM) Jarek Rossignac (Georgia Tech) – PowerPoint PPT presentation

Number of Views:125
Avg rating:3.0/5.0
Slides: 56
Provided by: danie600
Category:

less

Transcript and Presenter's Notes

Title: Geometric Compression Through Topological Surgery


1
Geometric Compression Through Topological Surgery
  • Gabriel Taubin (IBM)
  • Jarek Rossignac (Georgia Tech)

2
Problem Statement
  • Want to send mesh across network
  • Compress Losslessly
  • Want to save CPU time
  • Decompress on load
  • Want to get triangle strips
  • Save on vertex reads transforms

3
Basic Idea
  • Use properties of planar graphs to compress
  • Extend to graphs 3d meshes using hacks
  • Lossily drop bits left right out of vertex
    position since vertex pos dominates size
  • Use reasonably good predictor to guess location

4
Compressing Topology
  • Start with meshes having Euler Characteristic 2
    (Deformable to sphere)

5
Compressing Topology
  • Want to cut it into a planar mesh with lots of
    long triangle strips

6
Compressing Topology
  • A MST on vertices indicates some interesting cut
    lines

7
Compressing Topology
  • Notice how the edge boundary graph has 2 edges
    for each MST cut line

8
Compressing Topology
  • Splaying our faithful Euler-2 characteristic mesh
    looks as follows

9
Compressing Topology
  • Note that in the flattened shape a binary graph
    can represent edges

10
Compressing Topology
  • If we save these two graphs 1 bit per marching
    edge graph as to how it fits to MST, weve got
    topology of Euler-2 meshes

11
Not all cuts are equal
  • But some will earn you a prize
  • from lInstitut Paul Bocuse in Lyons
  • Others

12
Not all cuts are equal
13
Why cuts are not equal
  • Vertex edge graph stored as
  • Integer runlength
  • Bit leaf?
  • Bit more runs starting from here?
  • Longer triangle strips
  • Amortize-out 2 starting vertices
  • Faster rendering

14
1st cut spanning tree construction
  • Use edge length and run MST algorithm
  • Disaster with a capital D

15
Actual attempt to make MST
  • Distance from edge midpoint to tree root

16
Modification to improve result
  • 2 pass algorithm where only non-branching edges
    are allowed on 1st pass

17
Concentric Rings Method
  • Choose a root, order by concentric rings

18
Connect concentric layers
  • with triangle that minimize branches

19
Final Mesh
20
Concentric Rings applied to bone
  • Generating concentric rings makes for much longer
    triangle runs

21
Encoding Vertex Position
  • Vertex Spanning Tree offers mechanism for vertex
    position prediction
  • Build a prediction function based on samples from
    parents in run

A
  • Store per-vertex fixed-point delta from given
    predictor

22
Vertex Position Predictor
  • Assume a linear predictor
  • f(v0vK)b0v0bkvk
  • Thus estimate b0bk by minimizing the least
    square error over all vertices of depth ngtk for
    given model

23
Dealing with real meshes
  • Jump Edges
  • Ugly hack to deal with non-spheres
  • Read paper for juicy details
  • Making sure that edges line up after quantization
    prediction

24
Results
  • They dont all add up
  • Feels like they use the red herring called
  • ASCII VRML
  • To boost their results

(sometimes literally)
25
Results (what a) Crock
  • About as lossless as a spam stock investment

12 bits per coord
10 bits per coord
8 bits per coord
original
26
Results Crocodile
(a) (b) (c) (d)
Bits/tri 5.00 4.23 2.77 2.16
Vertex runs 1292 1528 80 168
Tri runs 2388 1612 1340 526
Bits/v-run 5 4 10 8
Bits/t-run 5 5 6 8
27
ResultsArchitecture
28
ResultsArchitecture
29
Their stated results
  • Parsing a file in compressed binary is 20x faster
    than in ascii
  • So is transcribing it from stone tablets
  • Writing uncompressed binary is 30x faster than
    writing in ascii
  • Are they using printf or something?!
  • Unless youre writing aligned data, this bitwise
    stuff should kill your perf if you understand
    what you are doing, and it should be no slower
    than 2x-4x (ASCII is about 2-4x bigger)

30
Their stated results
  • Decompression reconstructs 60-90Ktris/s
  • Takes same time to construct scene in VRML as
    compressing it with their algo
  • If they would only compare to something
    not-terrible
  • Writing scene in compressed form is 10x faster
    than in uncompressed.
  • If youre writing to disk or network, sure

31
The cool result
  • Optimality analysis of their algorithm
  • Number of triangulations of simply connected
    polygon of n2 vertices
  • If enumerated and an index into triangulation is
    used, encoding requires log2(ceil(Cn)) bits. As
    n-gtinf expr-gt 2

32
The cool result
33
The cool result
  • Optimal fixed-length encoding 2bits per vertex
  • On some examples they do better
  • They have some evidence of better performance
    than this fixed length scheme
  • on highly tesselated models
  • Like a bunny subdivided 2 times to have 38,000
    polys (1.5 bits per tri)
  • Potentially like a modern game model?
  • Around 2.5 for other models

34
Triangle Mesh Compression
  • Costa Touma, Craig Gotsman
  • Technion - Israel Institute of Technology

35
Insight
  • In polygonal mesh that is orientable
  • Vertices incident on any mesh vertex may be
    ordered
  • Separation property
  • If you cut out a ring of a mesh, it separates it
    into 2 disjoint meshes
  • set of vertices inside (may be empty)
  • set outside
  • Connectivity can be encoded by degree

36
Definitions
  • Vertex cycle
  • Cyclic sequence of vertices along tri edges
  • Active list
  • Vertex cycle at wavefront of encoding. Mesh
    divided into portion of mesh encoded and portion
    not encoded
  • Focus
  • Vertex in active list being processed

37
Step 0 Make object closed
38
Step 1 Pick tri for active list
  • Specify node degreesadd 6, add 7, add 4

39
Continue working with focus
  • Add 4, Add 8

40
And now focus is done
  • Add 5, Add 5

41
Active edge added twice split
  • Add 5, Split 5

42
Algorithm
  • Start with triangle, active list of 3 vertices
  • Add n vertices (clockwise order) adjacent to
    current focus to active list with add ltngt
    command
  • If active list intersects itself, it is split to
    two active list with a split ltoffsetgt command

43
Merge case
  • This deals with genus 1 objects (torus,etc)
  • If first free edge of active vertex is in active
    list of vertex, 2 possibilities
  • It is on current active list
  • Split ltoffsetgt
  • It is on active list already split
  • Merge ltindexgt ltoffsetgt

44
Better prediction of vertex position
  • Have previous triangle
  • Compute plane equation
  • Assume next triangle is coplanar
  • Encode error term
  • Simple, elegant, low error
  • Use codebook for most common errors

45
Results
  • For regular meshes
  • Get around .2 bits per vertex for topology
  • With RLE
  • Increasing quantization from 8-10 bits, size goes
    up by 30-40 (!?)

46
Results
Model verts VRML gz IBM conn IBM cord Our conn Our cord
blob 8036 117K 3447 10352 1709 7951
tri 2832 44K 1523 3673 764 2937
eight 766 11K 363 1146 53 683
shape 2562 35K 713 4578 48 2990
beet 2655 36K 1585 4982 781 3576
eng 2164 24K 1041 4703 330 3425
dum 11738 114K 4929 20351 1210 11162
cow 3066 40K 1766 4878 779 3376

47
Decompression
  • Leaf triangle reconstructed from root id

48
Decompression
49
Decompression
50
Decompression
51
Decompression
52
Decompression
53
Decompression
54
Decompression
55
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com