compressing the property mapping of polygon meshes martin isenburg jack snoeyink university of north...

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

Post on 20-Dec-2015

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Slide 1
  • Compressing the Property Mapping of Polygon Meshes Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill
  • Slide 2
  • Polygon Meshes 4 0 0 1 1 2 2 3 3 5 5 6 6 7 7
  • Slide 3
  • 03 12 4 7 5 6 face 0 0123 0 2 3 5 41 connectivity face 1 3257 face 2 1452 face 3 6037 face 4 6410 face 5 6754
  • Slide 4
  • Connectivity Compression recent compression results report improvements of ~ 10.98 % ~ 0.22 b/v on compression rates of ~ 2.32 b/v
  • Slide 5
  • 1 1 1 1 2 2 2 2 3 3 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 11 13 12 0 0 0 0 Properties
  • Slide 6
  • face 0 0123 property mapping 0 2 3 5 41 0 1 2 3 0 0 1 1 2 2 3 3 4 5 6 7 8 9 1011 10 11 13 12 face 1 3245 face 2 1672 face 3 100311 face 4 8910 face 5 10111312
  • Slide 7
  • Mesh properties can be attached per-vertex # of Bones Bone IDs Bone Weights Property Mapping (1)
  • Slide 8
  • Mesh properties can be attached per-face Shader IDs Property Mapping (2)
  • Slide 9
  • Mesh properties can be attached per-corner Normals TexCoords Colors Property Mapping (3)
  • Slide 10
  • Definitions (1) ? ? ? ? ? ? ? ? ?
  • Slide 11
  • Definitions (2) blend edgecrease edge crease vertexcorner vertexsmooth vertex smooth corner crease corner smooth edge
  • Slide 12
  • 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
  • Slide 13
  • Corner and Vertex Bits 1
  • Slide 14
  • 0 1 0
  • Slide 15
  • 1 1 0 0
  • Slide 16
  • 1 1 0 0 0
  • Slide 17
  • 1 1 1 0 0 0
  • Slide 18
  • 1 1 1 0 0 0 0 1
  • Slide 19
  • 1 1 1 0 0 0 0 1 0
  • Slide 20
  • 1 1 1 0 0 0 0 1 0 0
  • Slide 21
  • 1 1 1 0 0 0 0 1 0 0 1
  • Slide 22
  • 1 1 1 0 0 0 0 1 0 0 1 0
  • Slide 23
  • 1 1 1 0 0 0 0 1 0 0 1 0 0
  • Slide 24
  • 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1
  • Slide 25
  • 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1
  • Slide 26
  • 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1
  • Slide 27
  • 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0
  • Slide 28
  • 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1
  • Slide 29
  • 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 0
  • Slide 30
  • 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 1
  • Slide 31
  • 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0
  • Slide 32
  • 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0 1
  • Slide 33
  • 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0 1
  • Slide 34
  • Improve the Coding improve the vertex & corner bit approach: Dont write all bits! Rules R 1 to R 4 Try to predict the remaining bits! Predictions P 1 to P 4
  • Slide 35
  • 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
  • Slide 36
  • 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
  • Slide 37
  • 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
  • Slide 38
  • 0 0 1 0 ? 0 0 0 ? 0 1 0 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
  • Slide 39
  • ? 0 ? 0 ? 0 0 0 ? 0 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
  • Slide 40
  • 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
  • Slide 41
  • assume crease edge 1 0 ? 0 1 1 0 1 0 0 ? 0 0 previously processed vertex Prediction P 1 some edge connects to a previously processed vertex along a crease predict vertex bit: 0
  • Slide 42
  • ? 0 1 0 0 0 1 0 1 ? Prediction P 2 otherwise predict nothing assume nothing
  • Slide 43
  • assume crease edge the current edge connects to a previously processed vertex along a crease predict corner bit: 1 ? 0 1 0 1 0 0 0 ? 1 0 1 0 0 0 0 0 1 previously processed vertex Prediction P 3
  • Slide 44
  • 1 0 0 1 0 0 0 1 0 ? current edge 0 0 1 1 ? 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
  • Slide 45
  • ? 0 1 0 1 0 0 1 1 ? 0 crease corners Prediction P 5 there have been already two (or more) crease corners predict corner bit: 0 assume crease vertex
  • Slide 46
  • there has been one crease, but since then less than smooth corners assume crease vertex ? 0 1 0 0 smooth corner ? 1 0 Prediction P 6 degree-1 2 predict corner bit: 0
  • Slide 47
  • 0 0 1 0 ? 0 ? 0 0 0 Prediction P 7 there have been already preceding smooth corners assume crease vertex degree-1 2 predict corner bit: 1
  • Slide 48
  • 0 ? 0 currently processed bit ? 0 0 Prediction P 8 otherwise predict nothing assume nothing
  • Slide 49
  • 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
  • Slide 50
  • 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
  • Slide 51
  • 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
  • Slide 52
  • Test Models
  • Slide 53
  • Results vertices ISmeshprednormalsT+ GS button991986.04.96.61.2 dragknob1613226.05.06.81.3 handle1002366.05.36.32.1 handle11282566.05.06.61.5 handle2116512356.03.11.30.1 part11663366.05.06.41.6 part43304956.04.03.80.9 part51753556.05.06.51.9 rotor6009056.04.04.01.0 spool64910186.04.13.81.1 oilfilter86014846.04.44.71.5 galleon237239744.03.22.81.0 sandal263640964.13.02.70.9
  • Slide 54
  • 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
  • Slide 55
  • Fair Comparison meshpredT+ aac0 button6.05.54.92.72.62.62.61.2 dragknob6.05.54.62.52.52.52.51.3 handle6.05.75.35.04.64.64.52.1 handle16.05.54.82.62.62.62.61.5 handle26.00.90.90.80.40.30.30.1 part16.05.55.03.53.33.33.31.6 part46.03.93.83.72.11.91.90.9 part56.05.54.74.14.14.14.11.9 rotor6.04.24.03.61.31.11.11.0 spool6.04.03.83.82.32.22.11.1 oilfilter6.04.74.64.64.03.53.41.5 galleon4.03.53.42.52.32.32.21.0 sandal4.13.33.32.42.22.22.20.9 aac1aac2aac3aac4aac5
  • Slide 56
  • 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
  • Slide 57
  • Stripified Triangle Meshes
  • Slide 58
  • Strip Corners
  • Slide 59
  • button19440.2 dragknob31860.2 handle196240.5 handle125250.2 handle223261250.1 part132860.2 part4656340.3 part5 34690.2 rotor1200410.3 spool1294240.2 oilfilter17161350.5 1.2 1.3 2.1 1.5 0.1 1.6 0.9 1.9 1.0 1.1 1.5 without -=- 1.0 -=- 1.1 -=- 1.6 -=- 1.3 -=- 0.03 -=- 1.4 -=- 0.6 -=- 1.7 -=- 0.7 -=- 0.9 -=- 1.0 difference Results triangles meshpred strips code stripification for FREE
  • Slide 60
  • Thank You !

Recommended

View more >