Compressing the Property Mapping of Polygon Meshes - PowerPoint PPT Presentation

About This Presentation
Title:

Compressing the Property Mapping of Polygon Meshes

Description:

Compressing the Property Mapping of Polygon Meshes. Martin Isenburg. Jack Snoeyink ... with Properties, SIGGRAPH, 2000. Corner and Vertex Bits. 1. Corner and ... – PowerPoint PPT presentation

Number of Views:62
Avg rating:3.0/5.0
Slides: 61
Provided by: martini5
Learn more at: http://www.cs.unc.edu
Category:

less

Transcript and Presenter's Notes

Title: Compressing the Property Mapping of Polygon Meshes


1
Compressing the Property Mapping of Polygon Meshes
  • Martin IsenburgJack Snoeyink
  • University of North Carolina at Chapel Hill

2
Polygon Meshes
3
Polygon Meshes
connectivity
5
face0 0 1 2 3
3
face1 3 2 5 7
face2 1 4 5 2
0
4
1
face3 6 0 3 7
2
face4 6 4 1 0
face5 6 7 5 4
4
Connectivity Compression
recent compressionresults report improvements
of 10.98 0.22 b/v on compression rates
of 2.32 b/v
5
Properties








6
Properties
property mapping
5
10
11


10
11
face0 0 1 2 3
3
8
5
0
3
face1 3 2 4 5


3
0
0
3
face2 1 6 7 2
0
4
1
1
2
1
2
face3 10 0 3 11


1
2
2
face4 8 9 1 0
4
9
6
7


face5 10 11 13 12
13
12
7
Property Mapping (1)
  • Mesh properties can be attached
  • per-vertex
  • of Bones
  • Bone IDs
  • Bone Weights







8
Property Mapping (2)
  • Mesh properties can be attached
  • per-face
  • Shader IDs







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







10
Definitions (1)
11
Definitions (2)
12
Previous Work
  • Gumhold Strasser edge bitsReal-time
    compression of triangle mesh connectivity,
    SIGGRAPH, 1998
  • Taubin et al discontinuity bitsGeometry
    coding and VRML, Proceedings of the IEEE, 1998
  • Isenburg Snoeyink vertex and corner
    bitsFace Fixer Compressing Polygon
    Mesheswith Properties, SIGGRAPH, 2000

13
Corner and Vertex Bits





1

14
Corner and Vertex Bits





1
0

0
15
Corner and Vertex Bits





1
0

0
1
16
Corner and Vertex Bits





1
0
0

0
1
17
Corner and Vertex Bits





1
1
0
0

0
1
18
Corner and Vertex Bits

1
0




1
1
0
0

0
1
19
Corner and Vertex Bits

1
0

0



1
1
0
0

0
1
20
Corner and Vertex Bits

1
0

0
0



1
1
0
0

0
1
21
Corner and Vertex Bits

1
0

1
0
0



1
1
0
0

0
1
22
Corner and Vertex Bits

0
1
0

1
0
0



1
1
0
0

0
1
23
Corner and Vertex Bits

0
0
1
0

1
0
0



1
1
0
0

0
1
24
Corner and Vertex Bits

0
0
1
0

1
0
0

0
1


1
1
0
0

0
1
25
Corner and Vertex Bits

0
0
1
0

1
0
0

0
1
1


1
1
0
0

0
1
26
Corner and Vertex Bits

0
0
1
0

1
0
0
1

0
1
1


1
1
0
0

0
1
27
Corner and Vertex Bits

0
0
1
0

1
0
0
0
1

0
1
1


1
1
0
0

0
1
28
Corner and Vertex Bits

0
0
1
0

1
0
0
0
1

0
1
1


1
0
1
1
0
0

0
1
29
Corner and Vertex Bits

0
0
1
0

1
0
0
0
1

0
1
1


1
0
0
1
1
0
0

0
1
30
Corner and Vertex Bits

0
0
1
0

1
0
0
0
1

0
1
1
1

1

0
0
1
1
0
0

0
1
31
Corner and Vertex Bits

0
0
1
0

1
0
0
0
1

0
1
1
0
1

1

0
0
1
1
0
0

0
1
32
Corner and Vertex Bits
1

0
0
1
0

1
0
0
0
1

0
1
1
0
1

1

0
0
1
1
0
0

0
1
33
Corner and Vertex Bits
1

0
0
1
0

1
0
0
0
1

0
1
1
0
1

1

0
0
1
1
0
0

0
1
34
Improve the Coding
  • improve the vertex corner bit approach
  • Dont write all bits!
  • ? Rules R1 to R4
  • Try to predict the remaining bits!
  • ? Predictions P1 to P4

35
Rules
  • some bit configurations cannot occur? not all
    bits are needed, because some can be inferred
  • four simple rules
  • rule R1 saves vertex bits
  • rules R2, R3, and R4 save corner bits

36
Rule R1
marks current vertex and current
corner

?
?





if a vertex has only one corner, then it must be
a smooth vertex
? saves 1 vertex bit
37
Rule R2

currentlyprocessed bit (s)

?
0
0


?
?
?
vertex bit



if a crease vertex has only two corners, then
both of them must be crease corners
? saves 2 corner bits
38
Rule R3

alreadyprocessed corners



0
?
1
0
0
0


0
0
0
?
0
1





each crease vertex must have at least two crease
corners, this has only one so far
? saves 1 corner bit
39
Rule R4



0
?
0
?
0
0


0
0
0
?
0
?



corner bits


each crease vertex must have at least two crease
corners, this has none so far
? saves 2 corner bits
40
Predictions
  • some bit configurations are more likely than
    others? fewer bits are needed, because many
    can predicted correctly
  • eight simple predictions
  • predictions P1 and P2 for vertex bits
  • predictions P3 to P8 for corner bits

41
Prediction P1
1
0

1
0
0
0

0

0

1
1
0
?

?

previouslyprocessed vertex



some edge connects to a previously processed
vertex along a crease
? assume crease edge
? predict vertex bit 0
42
Prediction P2



?
?



1
0
0
0


0
0
1

1

otherwise
? predict nothing
? assume nothing
43
Prediction P3
1

0
1
0
0
0
0


0

?
1
?
1
0
0
0


1
0
0
previouslyprocessed vertex



the current edge connects to a previously
processed vertex along a crease
? assume crease edge
? predict corner bit 1
44
Prediction P4



0

1
0
0
0


?
current edge
1
?
1

1
0
0
0

0

0
1
1


the current edge connects to a previously
processed vertex, but not along a crease
? predict corner bit 0
? assume smooth edge
45
Prediction P5
creasecorners




0
1
1
?
0
0

0

?
1
0
1





there have been already two (or more) crease
corners
? predict corner bit 0
? assume crease vertex
46
Prediction P6



0


?
1
1
?
0
0


0

smoothcorner




there has been one crease, but since then less
than smooth corners
? assume crease vertex
? predict corner bit 0
47
Prediction P7




0

?
1
0
0
0


0
0
?
0





there have been already preceding
smooth corners
? assume crease vertex
? predict corner bit 1
48
Prediction P8

currently processed bit


0
0
0


?
?
0




otherwise
? predict nothing
? assume nothing
49
Entropy
  • For a sequence of n bits
  • givenp0 probability of bit 0 occurringp1
    probability of bit 1 occurring
  • Entropy - n (p0log2(p0) p1log2(p1))

50
Entropy with Context
  • For a sequence of n bits
  • givenp0 C probability of bit 0 occurring
    given Cp1 C probability of bit 1 occurring
    given C

Entropy - n ?(p0 C log2(p0 C) p1 C log2(p1
C))
C
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 gtgt of contexts
  • combination possible
  • ? initialize roughly with what is expected

52
Test Models
53
Results
vertices
IS
mesh
pred
normals
T
GS
button 99 198 6.0 4.9 6.6 1.2 dragknob 161 322 6.0
5.0 6.8 1.3 handle 100 236 6.0 5.3 6.3 2.1 handle
1 128 256 6.0 5.0 6.6 1.5 handle2 1165 1235 6.0 3.
1 1.3 0.1 part1 166 336 6.0 5.0 6.4 1.6 part4 330
495 6.0 4.0 3.8 0.9 part5 175 355 6.0 5.0 6.5 1.9
rotor 600 905 6.0 4.0 4.0 1.0 spool 649 1018 6.0 4
.1 3.8 1.1 oilfilter 860 1484 6.0 4.4 4.7 1.5 gall
eon 2372 3974 4.0 3.2 2.8 1.0 sandal 2636 4096 4.1
3.0 2.7 0.9
54
Order k Entropy
  • For a sequence of n bits
  • givenp0 ? probability of bit 0 occurring
    after ?p1 ? probability of bit 1 occurring
    after ?

Entropy - n ?(p0 ? log2(p0 ?) p1 ? log2(p1
?))
?
? string of preceding k-bits
number of different contexts is 2k
55
Fair Comparison
mesh
pred
T
aac0
aac1
aac2
aac3
aac4
aac5
button 6.0 5.5 4.9 2.7 2.6 2.6 2.6 1.2 dragknob 6.
0 5.5 4.6 2.5 2.5 2.5 2.5 1.3 handle 6.0 5.7 5.3 5
.0 4.6 4.6 4.5 2.1 handle1 6.0 5.5 4.8 2.6 2.6 2.6
2.6 1.5 handle2 6.0 0.9 0.9 0.8 0.4 0.3 0.3 0.1 p
art1 6.0 5.5 5.0 3.5 3.3 3.3 3.3 1.6 part4 6.0 3.9
3.8 3.7 2.1 1.9 1.9 0.9 part5 6.0 5.5 4.7 4.1 4.1
4.1 4.1 1.9 rotor 6.0 4.2 4.0 3.6 1.3 1.1 1.1 1.0
spool 6.0 4.0 3.8 3.8 2.3 2.2 2.1 1.1 oilfilter 6
.0 4.7 4.6 4.6 4.0 3.5 3.4 1.5 galleon 4.0 3.5 3.4
2.5 2.3 2.3 2.2 1.0 sandal 4.1 3.3 3.3 2.4 2.2 2.
2 2.2 0.9
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

57
Stripified Triangle Meshes






58
Strip Corners






59
Results
triangles
mesh
pred
strips
button 194 4 0.2 dragknob 318 6 0.2 handle 196 2
4 0.5 handle1 252 5 0.2 handle2 2326 125 0.1 par
t1 328 6 0.2 part4 656 34 0.3 part5
346 9 0.2 rotor 1200 41 0.3 spool 1294 24 0.2 o
ilfilter 1716 135 0.5
? code stripification for FREE
60
Thank You !
Write a Comment
User Comments (0)
About PowerShow.com