compressing the property mapping of polygon meshes

Post on 30-Dec-2015

49 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

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

Compressing the Property Mapping of Polygon Meshes

Martin Isenburg

Jack Snoeyink

University of North Carolina at Chapel Hill

Polygon Meshes

4

00

11 22

33

5

5

66

77

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

Connectivity Compression

recent compressionresults report

improvements of

~ 10.98 %~ 0.22 b/v

on compressionrates of

~ 2.32 b/v

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

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

Mesh properties can be attached

“per-vertex”

• # of Bones

• Bone IDs

• Bone Weights

Property Mapping (1)

Mesh properties can be attached

“per-face”

• Shader IDs

Property Mapping (2)

Mesh properties can be attached

“per-corner”

• Normals

• TexCoords

• Colors

Property Mapping (3)

Definitions (1)

??

?

?

?

?

?

? ?

Definitions (2)

blend edgecrease edge

crease vertex corner vertexsmooth vertex

smoothcorner

creasecorner

smooth edge

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

Corner and Vertex Bits

1

Corner and Vertex Bits

0

1

0

Corner and Vertex Bits

1

10 0

Corner and Vertex Bits

1

1

00 0

Corner and Vertex Bits

11

1

00 0

Corner and Vertex Bits

11

1

00 0

01

Corner and Vertex Bits

11

1

00 0

010

Corner and Vertex Bits

11

1

00 0

0100

Corner and Vertex Bits

11

1

00 0

0100 1

Corner and Vertex Bits

11

1

00 0

0100 10

Corner and Vertex Bits

11

1

00 0

0100 100

Corner and Vertex Bits

11

1

00 0

0100 100

01

Corner and Vertex Bits

11

1

00 0

0100 100

011

Corner and Vertex Bits

11

1

00 0

0100 100

0111

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

01

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

01 0

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

1 00 1

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

1 010

0

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

1 010

0

1

Corner and Vertex Bits

11

1

00 0

0100 100

0111

0

1 010

0

1

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

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

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

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

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

?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

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

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

?

01 0

00 1

01

?

Prediction P2

otherwise

predict nothing assume nothing

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

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

?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

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

00 1

0?

0?

00

0

Prediction P7

there have been already preceding smooth corners

assume crease vertex

degree-12

predict corner bit: 1

0?

0

currentlyprocessed

bit ?0

0

Prediction P8

otherwise

predict nothing assume nothing

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

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

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

Test Models

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

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

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

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

Stripified Triangle Meshes

Strip Corners

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

Thank You !

top related