With Parallelogram Prediction Compressing Polygon Mesh Geometry Martin Isenburg UNC Chapel Hill...

Preview:

Citation preview

withParallelogram

Prediction

CompressingPolygon Mesh Geometry

Martin IsenburgUNC

Chapel Hill

Pierre AlliezINRIA

Sophia-Antipolis

Take this home:

“Non-triangular faces inthe mesh can be exploited for

more efficientpredictive compression

of vertex positions.”

“Non-triangular faces tend tobe planar and convex.”

Overview

• Background

• Previous Work

• Linear Prediction Schemes

• “within” versus “across”

• Example Run

• Can we do better ?

• Conclusion

Background

Polygon Meshes

• connectivity

• geometry

vertex1 ( x, y, z )vertex2 ( x, y, z )vertex3 ( x, y, z )

vertexv

face1 1 2 3 4face2 3 4 3face3 5 2 1 3

facef

~ 4v 32 bits

3v * 32 bits

size: 79296 bytes

297365647

12

log2(v)

2832 vertices

• Geometry Compression [Deering, 95]– Fast Rendering

– Progressive Transmission

– Maximum Compression

Geometry Compression [Deering, 95]

Mesh Compression

Maximum Compression

• Geometry Compression [Deering, 95]– Fast Rendering

– Progressive Transmission

– Maximum Compression

• Connectivity

• Geometry

Geometry Compression [Deering, 95]

Mesh Compression

Maximum Compression

Geometry

• Geometry Compression [Deering, 95]– Fast Rendering

– Progressive Transmission

– Maximum Compression

• Connectivity

• Geometry

– Triangle Meshes

– Polygon Meshes

Geometry Compression [Deering, 95]

Mesh Compression

Polygon Meshes

Maximum Compression

Geometry

Triangle Mesh Compression

• Connectivity Coder– stores the connectivity as sequence

of vertex degrees

Triangle Mesh Compression[Touma & Gotsman, Graphics Interface 98]

• Geometry Coder– stores the geometry as sequence of

vectors; each corrects the prediction of a vertex position

Not Triangles … Polygons!

Face Fixer [Isenburg & Snoeyink, 00]

• Connectivity Coder

Generalization of TG coder

Compressing Polygon Connectivity withDegree Duality Prediction, [Isenburg, 02]

Near-optimal connectivity coding ofPolygon meshes, [Khodakovsky, Alliez,

Desbrun & Schroeder, 02]

this paper [Isenburg & Alliez, 02]

• Geometry Coder

triceratopsgalleoncessna

…tommygun

cowteapot

14.818.412.5

…12.520.616.1

Results

TGbits per vertex

model IA20.024.119.1

…19.620.421.0

min / max / average [%] = 9 / 41 / 23

26 %26 %35 % ...36 %-1 %24 %

gain

Previous Work

Previous Work

• Classic approaches [95 – 98]:– linear prediction

Geometry Compression[Deering, 95]

Geometric Compression through topological surgery [Taubin & Rossignac, 98]

Triangle Mesh Compression[Touma & Gotsman, 98]

Java3D

MPEG - 4

Virtue3D

Previous Work

• Classic approaches [95 – 98]:– linear prediction

• Recent approaches [00 – 02]:– spectral

– re-meshing

– space-dividing

– vector-quantization

– feature discovery

– angle-based

Previous Work

• Classic approaches [95 – 98]:– linear prediction

• Recent approaches [00 – 02]:– spectral

– re-meshing

– space-dividing

– vector-quantization

– feature discovery

– angle-based

Spectral Compressionof Mesh Geometry

[Karni & Gotsman, 00]

expensive numericalcomputations

Previous Work

• Classic approaches [95 – 98]:– linear prediction

• Recent approaches [00 – 02]:– spectral

– re-meshing

– space-dividing

– vector-quantization

– feature discovery

– angle-based

Progressive GeometryCompression

[Khodakovsky et al., 00]

modifies mesh priorto compression

Previous Work

• Classic approaches [95 – 98]:– linear prediction

• Recent approaches [00 – 02]:– spectral

– re-meshing

– space-dividing

– vector-quantization

– feature discovery

– angle-based

Geometric Compressionfor interactive transmission

[Devillers & Gandoin, 00]

poly-soups; complexgeometric algorithms

Previous Work

• Classic approaches [95 – 98]:– linear prediction

• Recent approaches [00 – 02]:– spectral

– re-meshing

– space-dividing

– vector-quantization

– feature discovery

– angle-based

Vertex data compressionfor triangle meshes

[Lee & Ko, 00]

local coord-system +vector-quantization

Previous Work

• Classic approaches [95 – 98]:– linear prediction

• Recent approaches [00 – 02]:– spectral

– re-meshing

– space-dividing

– vector-quantization

– feature discovery

– angle-based

certain 3D models +expensive matching

Compression of engineeringmodels by repeated feature

[Shikhare et al., 01]discovery

Previous Work

• Classic approaches [95 – 98]:– linear prediction

• Recent approaches [00 – 02]:– spectral

– re-meshing

– space-dividing

– vector-quantization

– feature discovery

– angle-based

Angle-Analyzer: A triangle-quad mesh codec

[Lee, Alliez & Desbrun, 02]

dihedral + internal =heavy trigonometry

Linear Prediction Schemes

Linear Prediction Schemes

1. quantize positions with b bits

2. traverse positions

3. linear prediction from neighbors

4. store corrective vector

(1.2045, -0.2045, 0.7045) (1008, 68, 718)floating point integer

Linear Prediction Schemes

1. quantize positions with b bits

2. traverse positions

3. linear prediction from neighbors

4. store corrective vector

use traversal order implied bythe connectivity coder

Linear Prediction Schemes

1. quantize positions with b bits

2. traverse positions

3. linear prediction from neighbors

4. store corrective vector

(1004, 71, 723)apply prediction rule prediction

Linear Prediction Schemes

1. quantize positions with b bits

2. traverse positions

3. linear prediction from neighbors

4. store corrective vector0

10

20

30

40

50

60

70

position distribution

0

500

1000

1500

2000

2500

3000

3500

corrector distribution

(1004, 71, 723)(1008, 68, 718)position

(4, -3, -5)correctorprediction

Deering, 95

Prediction: Delta-Coding

A

processed regionunprocessed region

P

P = A

Taubin & Rossignac, 98

Prediction: Spanning Tree

A

BC D

E

processed regionunprocessed region

P

P = αA + βB + γC + δD + εE + …

Touma & Gotsman, 98

Prediction: Parallelogram Rule

processed regionunprocessed region

P

P = A – B + C

A

BC

Parallelogram Rule

“good”prediction

“bad”prediction

“non-convex”

“bad”prediction

“non-planar”

More “good” Predictions

• average multiple predictions

Multi-way geometry encoding. [Cohen-Or, Cohen & Irony, 02]

Optimized compression of triangle mesh geometryusing prediction trees. [Kronrod & Gotsman, 02]

• search for best prediction• direct the traversal (prediction tree)

average gain of 11 %

average gain of 8 % (smooth) & 42 % (CAD)

Polygon Meshes … ?

TG coder

• triangulate

• compress resulting triangle mesh

IA coder

• do NOT triangulate

• use polygons for better predictions

• within versus across

“within” versus “across”

Non-triangular Faces

Question: Why would a mesh have

a non-triangular face?

Non-triangular Faces

Question: Why would a mesh have

a non-triangular face?Answer: Because there was noreason to triangulate it!

This face was “convex”and “planar”.

use this info for “good” predictions

within-predictions often find existing parallelograms ( quadrilaterals)

“within” versus “across”

within-predictions avoid creases

within-predictionacross-prediction

triceratopsgalleoncessna

…tommygun

cowteapot

20.526.819.8

…19.520.622.7

Bitrates: “within” vs. “across”

withinbits per vertex

model across

14.116.911.1

…10.9

-14.9

min / max / average [%] = 13 / 47 / 32

31 %37 %45 % ...44 %

-

34 %

diff

Maximizing the number of within-predictions

Greedy Strategy

always try to:

(A) pick a vertex whose position can be within-predicted

otherwise:

(B) do an across-prediction, but pick a vertex that creates (A)for the next iteration

we’re lucky:

process vertices in order dictated by our connectivity coder

Traversal Order

Compressing Polygon Connectivity withDegree Duality Prediction [Isenburg, 02]

Valence-driven Connectivity Encodingfor 3D meshes [Alliez & Desbrun, 01]

avoid “splits” by adaptive traversal

“splits”

“splits”

“splits”

“splits”

“splits”

processed region

“splits”

processed region

“splits”

processed region

“splits”

processed region

“splits”

processed region

“splits”

processed region

split

Adaptive Traversal

Adaptive Traversal

Adaptive Traversal

% of within-predictions

triceratopsgalleoncessna

…tommygun

cowteapot

within

prediction type:model

min / max / average [%] = 74 / 91 / 84

across

2557 257 2 1

2007 324 24 123091 621 22 11 … … … …3376 678 78 39

0 2701 2 11016 170 2 1

last center

90 %85 %83 % …81 %0 %

85 %

within% of

Example Decoding Run

Example Decoding Run

center-prediction:• no parallelogram rule possible• predict this position as center of

the bounding box

center

Example Decoding Run

0last

last-prediction:• no parallelogram rule possible• predict this position as the last

position

Example Decoding Run

1

0

last

last-prediction:• no parallelogram rule possible• predict this position as the last

position

Example Decoding Run

across-prediction:• parallelogram rule possible• predict across two polygons

across

1

0

2

Example Decoding Run

within-prediction:• use parallelogram rule• predict within a polygon

within

1

0

2

3

Example Decoding Run

1

0within

4

3

2

Example Decoding Run

3

1

2

across5

4

0

Example Decoding Run

3

1

0

2

within6

45

Example Decoding Run

7

5

1

0

2

within6

4

3

Example Decoding Run

7

6

5

1

0

4

within

7

2

3

Can we do better ?(and keep it simple)

Keep it simple

Constraints:

• single linear prediction

• use connectivity traversal order

Possibilities:

• floating point coefficients

• use more than three vertices

better within-predictions

perfect systematic error

deg = 4

assuming ideal ( regular) polygons

P = A – B + C

P = αA + βB + γCα = 1, β = -1, γ = 1

deg = 6

A

B C

deg = 8

B C

A

CB

A

deg = 5

A

CB

Switch “within” Coefficients

if (deg == 4) {α = 1.000; β = -1.000; γ = 1.000;

} else if (deg == 5) {α = 1.024; β = -0.527; γ = 0.503;

} else if (deg == 6) {α = 1.066; β = -0.315; γ = 0.249;

} else …

How did we pick these numbers?

Finding the Coefficients

• no obvious “scientific” way• use Matlab

– for each degree separately– sum all possible prediction errors as

function of α and β

– optimize α and β for minimal error

Err = len (N – αA + βB + γC)with 1 = α + β + γ B

A

C

N

Switch “within” Coefficients

if (deg == 4) {α = 1.000; β = -1.000; γ = 1.000;

} else if (deg == 5) {α = 1.024; β = -0.527; γ = 0.503;

} else if (deg == 6) {α = 1.066; β = -0.315; γ = 0.249;

} else …

on average 70 % of predictions

parallelogram prediction within a quadrilateral is optimal

assuming equal edge length

better across-predictions

33 34 35 36 38

43 44 45 46 48

adjacentpolygons

arecoplanar

assuming equal edge length

better across-predictions

33 34 35 36 38

43 44 45 46 48

adjacentpolygonsare not

coplanar

creaseangle:

60°

Switch “across” Coefficientsif (deg == 33) {

α = 0.917; β = - 0.833; γ = 0.916;} else if (deg == 34) {

α = 0.621; β = - 0.504; γ = 0.883;} else if (deg == 35) {

α = 0.557; β = - 0.334; γ = 0.777;} else … …

} else if (deg == 43) {α = 1.153; β = - 0.354; γ = 0.201;

} else if (deg == 44) {α = 1.001; β = - 0.648; γ = 0.647;

} else … …

Conclusion

Summary (1)

• polygon information can improve predictive geometry compression

• using parallelogram rule “within” rather than “across” polygons

• average improvement of 23 % over TG coder

• has simple and straight-forward implementation

Summary (2)

• proof-of-conceptimplementationin form of a Webjava-applet

• compression software will soon be made available

http://www.cs.unc.edu/~isenburg/pmc/

Future Work

• a scientific way to find numbers for this “coefficient switching”

• polygonification:– turn triangle meshes into polygon

meshes for better compression

Acknowledgments

funding:• ARC Télégéo grant of INRIA at

Sophia-Antipolis

logistics:• Jack Snoeyink

• Olivier Devillers

• Agnès Clément Bessière

• Jean-Daniel Boissonnat

Thank You!

http://www.cs.unc.edu/~isenburg/pmc/

Recommended