compressing the property mapping of polygon meshes

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

Upload: geraldine-cole

Post on 30-Dec-2015

45 views

Category:

Documents


1 download

DESCRIPTION

Compressing the Property Mapping of Polygon Meshes. Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill. 3. 6. 7. 6. 7. 2. 0. 0. 3. 1. 2. 1. 4. 5. 5. Polygon Meshes. 6. 7. 0. 3. 1. 2. 4. 5. Polygon Meshes. connectivity. 5. face 0 0123. 3. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Compressing the Property Mapping of Polygon Meshes

Compressing the Property Mapping of Polygon Meshes

Martin Isenburg

Jack Snoeyink

University of North Carolina at Chapel Hill

Page 2: Compressing the Property Mapping of Polygon Meshes

Polygon Meshes

4

00

11 22

33

5

5

66

77

Page 3: Compressing the Property Mapping of Polygon Meshes

Polygon Meshes

0 3

1 2

4

7

5

6face0 0 1 2 3

0

2

3

5

4 1

connectivity

face1 3 2 5 7face2 1 4 5 2face3 6 0 3 7face4 6 4 1 0face5 6 7 5 4

Page 4: Compressing the Property Mapping of Polygon Meshes

Connectivity Compression

recent compressionresults report

improvements of

~ 10.98 %~ 0.22 b/v

on compressionrates of

~ 2.32 b/v

Page 5: Compressing the Property Mapping of Polygon Meshes

1

1

1 1

2

2 2

23

3

3 3

4

45

5

6

6

7

78

8

9

9

10

10

10

11

11

11

13

13

12

12

0

0

0

0

Properties

Page 6: Compressing the Property Mapping of Polygon Meshes

Properties

face0 0 1 2 3

property mapping

0

2

3

5

4 10

1

2

30

0

1 1 2

2

3 3

4

5

6 7

8

9

10 11

10 11

1312

face1 3 2 4 5face2 1 6 7 2face3 10 0 3 11face4 8 9 1 0face5 10 11 13 12

Page 7: Compressing the Property Mapping of Polygon Meshes

Mesh properties can be attached

“per-vertex”

• # of Bones

• Bone IDs

• Bone Weights

Property Mapping (1)

Page 8: Compressing the Property Mapping of Polygon Meshes

Mesh properties can be attached

“per-face”

• Shader IDs

Property Mapping (2)

Page 9: Compressing the Property Mapping of Polygon Meshes

Mesh properties can be attached

“per-corner”

• Normals

• TexCoords

• Colors

Property Mapping (3)

Page 10: Compressing the Property Mapping of Polygon Meshes

Definitions (1)

??

?

?

?

?

?

? ?

Page 11: Compressing the Property Mapping of Polygon Meshes

Definitions (2)

blend edgecrease edge

crease vertex corner vertexsmooth vertex

smoothcorner

creasecorner

smooth edge

Page 12: Compressing the Property Mapping of Polygon Meshes

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 Mesheswith Properties, SIGGRAPH, 2000

Page 13: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

1

Page 14: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

0

1

0

Page 15: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

1

10 0

Page 16: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

1

1

00 0

Page 17: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

Page 18: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

01

Page 19: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

010

Page 20: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100

Page 21: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 1

Page 22: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 10

Page 23: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 100

Page 24: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 100

01

Page 25: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 100

011

Page 26: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 100

0111

Page 27: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

Page 28: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

01

Page 29: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

01 0

Page 30: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

1 00 1

Page 31: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

1 010

0

Page 32: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

1 010

0

1

Page 33: Compressing the Property Mapping of Polygon Meshes

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

1 010

0

1

Page 34: Compressing the Property Mapping of Polygon Meshes

Improve the Coding

improve the vertex & corner bit approach:

• Don’t write all bits!

Rules R1 to R4

• Try to predict the remaining bits!

Predictions P1 to P4

Page 35: Compressing the Property Mapping of Polygon Meshes

Rules

• some bit configurations cannot occur

not all bits are needed, becausesome can be inferred

• four simple rules:– rule R1 saves vertex bits

– rules R2, R3, and R4 save corner bits

Page 36: Compressing the Property Mapping of Polygon Meshes

Rule R1

??

if a vertex has only one corner, then it must be a smooth vertex

saves 1 vertex bit

marks current vertex and current corner

Page 37: Compressing the Property Mapping of Polygon Meshes

if a crease vertex has only two corners, then both of them must be crease corners

Rule R2

??0

vertex bit

? ?0

currentlyprocessed bit (s)

saves 2 corner bits

Page 38: Compressing the Property Mapping of Polygon Meshes

00 1

0? 0

00?

01

0

alreadyprocessed corners

Rule R3

each crease vertex must have at least two crease corners, this has only one so far

saves 1 corner bit

Page 39: Compressing the Property Mapping of Polygon Meshes

?0

?0 ?

0 00

? 0

00

corner bits

Rule R4

each crease vertex must have at least two crease corners, this has none so far

saves 2 corner bits

Page 40: Compressing the Property Mapping of Polygon Meshes

Predictions

• some bit configurations are more likely than others

fewer bits are needed, becausemany can predicted correctly

• eight simple predictions:– predictions P1 and P2 for vertex bits

– predictions P3 to P8 for corner bits

Page 41: Compressing the Property Mapping of Polygon Meshes

assume crease edge

10

?

01

10

1

00

?

00

previouslyprocessed vertex

Prediction P1

some edge connects to a previously processed vertex along a crease

predict vertex bit: 0

Page 42: Compressing the Property Mapping of Polygon Meshes

?

01 0

00 1

01

?

Prediction P2

otherwise

predict nothing assume nothing

Page 43: Compressing the Property Mapping of Polygon Meshes

assume crease edge

the current edge connects to a previously processed vertex along a crease

predict corner bit: 1

?

0

10

10

0 0? 1

01

00

0

00

1

previouslyprocessed vertex

Prediction P3

Page 44: Compressing the Property Mapping of Polygon Meshes

10

01 0

00 1

0

?current edge

00 1

1 ?

1

0

Prediction P4

the current edge connects to a previously processed vertex, but not along a crease

predict corner bit: 0 assume smooth edge

Page 45: Compressing the Property Mapping of Polygon Meshes

?0 1

01 0

01

1?0

creasecorners

Prediction P5

there have been already two (or more) crease corners

predict corner bit: 0 assume crease vertex

Page 46: Compressing the Property Mapping of Polygon Meshes

there has been one crease, but since then less than smooth corners

assume crease vertex

?0 1

00

smoothcorner

? 10

Prediction P6

degree-12

predict corner bit: 0

Page 47: Compressing the Property Mapping of Polygon Meshes

00 1

0?

0?

00

0

Prediction P7

there have been already preceding smooth corners

assume crease vertex

degree-12

predict corner bit: 1

Page 48: Compressing the Property Mapping of Polygon Meshes

0?

0

currentlyprocessed

bit ?0

0

Prediction P8

otherwise

predict nothing assume nothing

Page 49: Compressing the Property Mapping of Polygon Meshes

Entropy

For a sequence of n bits

givenp0 : probability of bit 0 occurringp1 : probability of bit 1 occurring

Entropy = - n (p0log2(p0) + p1log2(p1))# of 0s

p0 = n# of 1s

p1 = n

Page 50: Compressing the Property Mapping of Polygon Meshes

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

# of 0s given Cp0 | C = # times given C

# of 1s given Cp1 | C = # times given C

Page 51: Compressing the Property Mapping of Polygon Meshes

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

Page 52: Compressing the Property Mapping of Polygon Meshes

Test Models

Page 53: Compressing the Property Mapping of Polygon Meshes

Results

vertices ISmesh prednormals T+ GS

button 99 198 6.0 4.9 6.6 1.2dragknob 161 322 6.0 5.0 6.8 1.3handle 100 236 6.0 5.3 6.3 2.1handle1 128 256 6.0 5.0 6.6 1.5handle2 1165 1235 6.0 3.1 1.3 0.1part1 166 336 6.0 5.0 6.4 1.6part4 330 495 6.0 4.0 3.8 0.9part5 175 355 6.0 5.0 6.5 1.9rotor 600 905 6.0 4.0 4.0 1.0spool 649 1018 6.0 4.1 3.8 1.1oilfilter 860 1484 6.0 4.4 4.7 1.5galleon 2372 3974 4.0 3.2 2.8 1.0sandal 2636 4096 4.1 3.0 2.7 0.9

Page 54: Compressing the Property Mapping of Polygon Meshes

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

Page 55: Compressing the Property Mapping of Polygon Meshes

Fair Comparison

mesh predT+ aac0

button 6.0 5.5 4.9 2.7 2.6 2.6 2.6 1.2dragknob 6.0 5.5 4.6 2.5 2.5 2.5 2.5 1.3handle 6.0 5.7 5.3 5.0 4.6 4.6 4.5 2.1handle1 6.0 5.5 4.8 2.6 2.6 2.6 2.6 1.5handle2 6.0 0.9 0.9 0.8 0.4 0.3 0.3 0.1part1 6.0 5.5 5.0 3.5 3.3 3.3 3.3 1.6part4 6.0 3.9 3.8 3.7 2.1 1.9 1.9 0.9part5 6.0 5.5 4.7 4.1 4.1 4.1 4.1 1.9rotor 6.0 4.2 4.0 3.6 1.3 1.1 1.1 1.0spool 6.0 4.0 3.8 3.8 2.3 2.2 2.1 1.1oilfilter 6.0 4.7 4.6 4.6 4.0 3.5 3.4 1.5galleon 4.0 3.5 3.4 2.5 2.3 2.3 2.2 1.0sandal 4.1 3.3 3.3 2.4 2.2 2.2 2.2 0.9

aac1 aac2 aac3 aac4 aac5

Page 56: Compressing the Property Mapping of Polygon Meshes

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

Page 57: Compressing the Property Mapping of Polygon Meshes

Stripified Triangle Meshes

Page 58: Compressing the Property Mapping of Polygon Meshes

Strip Corners

Page 59: Compressing the Property Mapping of Polygon Meshes

button 194 4 0.2dragknob 318 6 0.2handle 196 24 0.5handle1 252 5 0.2handle2 2326 125 0.1part1 328 6 0.2part4 656 34 0.3part5 346 9 0.2rotor 1200 41 0.3spool 1294 24 0.2oilfilter 1716 135 0.5

1.21.32.11.50.11.60.91.91.01.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

trianglesmesh predstrips

code stripification for FREE

Page 60: Compressing the Property Mapping of Polygon Meshes

Thank You !