Presentation is loading. Please wait.

Presentation is loading. Please wait.

With Parallelogram Prediction Compressing Polygon Mesh Geometry Martin Isenburg UNC Chapel Hill Pierre Alliez INRIA Sophia-Antipolis.

Similar presentations


Presentation on theme: "With Parallelogram Prediction Compressing Polygon Mesh Geometry Martin Isenburg UNC Chapel Hill Pierre Alliez INRIA Sophia-Antipolis."— Presentation transcript:

1 with Parallelogram Prediction Compressing Polygon Mesh Geometry Martin Isenburg UNC Chapel Hill Pierre Alliez INRIA Sophia-Antipolis

2 Take this home: “Non-triangular faces in the mesh can be exploited for more efficient predictive compression of vertex positions.” “Non-triangular faces tend to be planar and convex.”

3 Overview Background Previous Work Linear Prediction Schemes “within” versus “across” Example Run Can we do better ? Conclusion

4 Background

5 Polygon Meshes connectivity geometry vertex 1 ( x, y, z ) vertex 2 ( x, y, z ) vertex 3 ( x, y, z ) vertex v face 1 1 2 3 4 face 2 3 4 3 face 3 5 2 1 3 face f ~ 4v 32 bits 3v * 32 bits  size: 79296 bytes 29736 5647 12 log 2 ( v ) 2832 vertices

6 Geometry Compression [ Deering, 95 ] – Fast Rendering – Progressive Transmission – Maximum Compression Geometry Compression [ Deering, 95 ] Mesh Compression Maximum Compression

7 Geometry Compression [ Deering, 95 ] – Fast Rendering – Progressive Transmission – Maximum Compression Connectivity Geometry Geometry Compression [ Deering, 95 ] Mesh Compression Maximum Compression Geometry

8 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

9 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

10 Not Triangles … Polygons! Face Fixer [ Isenburg & Snoeyink, 00 ]

11 Connectivity Coder Generalization of TG coder Compressing Polygon Connectivity with Degree Duality Prediction, [ Isenburg, 02 ] Near-optimal connectivity coding of Polygon meshes, [ Khodakovsky, Alliez, Desbrun & Schroeder, 02 ]  this paper [ Isenburg & Alliez, 02 ] Geometry Coder

12 triceratops galleon cessna … tommygun cow teapot 14.8 18.4 12.5 … 12.5 20.6 16.1 Results TG bits per vertex model IA 20.0 24.1 19.1 … 19.6 20.4 21.0 min / max / average [ % ] = 9 / 41 / 23 26 % 35 %... 36 % -1 % 24 % gain

13 Previous Work

14 Classic approaches [ 95 – 98 ]: – linear prediction Geometry Compression [ Deering, 95 ] Geometric Compression through topological surgery [ Taubin & Rossignac, 98 ] Triangle Mesh Compression [ Touma & Gotsman, 98 ] Java3DMPEG - 4Virtue3D

15 Previous Work Classic approaches [ 95 – 98 ]: – linear prediction Recent approaches [ 00 – 02 ]: – spectral – re-meshing – space-dividing – vector-quantization – feature discovery – angle-based

16 Previous Work Classic approaches [ 95 – 98 ]: – linear prediction Recent approaches [ 00 – 02 ]: – spectral – re-meshing – space-dividing – vector-quantization – feature discovery – angle-based Spectral Compression of Mesh Geometry [ Karni & Gotsman, 00 ] expensive numerical computations

17 Previous Work Classic approaches [ 95 – 98 ]: – linear prediction Recent approaches [ 00 – 02 ]: – spectral – re-meshing – space-dividing – vector-quantization – feature discovery – angle-based Progressive Geometry Compression [ Khodakovsky et al., 00 ] modifies mesh prior to compression

18 Previous Work Classic approaches [ 95 – 98 ]: – linear prediction Recent approaches [ 00 – 02 ]: – spectral – re-meshing – space-dividing – vector-quantization – feature discovery – angle-based Geometric Compression for interactive transmission [ Devillers & Gandoin, 00 ] poly-soups; complex geometric algorithms

19 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 compression for triangle meshes [ Lee & Ko, 00 ] local coord-system + vector-quantization

20 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 engineering models by repeated feature [ Shikhare et al., 01 ] discovery

21 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

22 Linear Prediction Schemes

23 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

24 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 by the connectivity coder

25 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

26 Linear Prediction Schemes 1.quantize positions with b bits 2.traverse positions 3.linear prediction from neighbors 4.store corrective vector 0 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

27 Deering, 95 Prediction: Delta-Coding A processed region unprocessed region P P = A

28 Taubin & Rossignac, 98 Prediction: Spanning Tree A B C D E processed region unprocessed region P P = α A + βB + γC + δD + εE + …

29 Touma & Gotsman, 98 Prediction: Parallelogram Rule processed region unprocessed region P P = A – B + C A B C

30 Parallelogram Rule “good” prediction “bad” prediction “non-convex” “bad” prediction “non-planar”

31 More “good” Predictions average multiple predictions Multi-way geometry encoding. [ Cohen-Or, Cohen & Irony, 02 ] Optimized compression of triangle mesh geometry using 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 )

32 Polygon Meshes … ? TG coder triangulate compress resulting triangle mesh IA coder do NOT triangulate use polygons for better predictions within versus across

33 “within” versus “across”

34 Non-triangular Faces Question:Why would a mesh have a non-triangular face?

35 Non-triangular Faces Question:Why would a mesh have a non-triangular face? Answer:Because there was no reason to triangulate it! This face was “convex” and “planar”.  use this info for “good” predictions

36  within-predictions often find existing parallelograms (  quadrilaterals ) “within” versus “across”  within-predictions avoid creases within-prediction across-prediction

37 triceratops galleon cessna … tommygun cow teapot 20.5 26.8 19.8 … 19.5 20.6 22.7 Bitrates: “within” vs. “across” within bits per vertex model across 14.1 16.9 11.1 … 10.9 - 14.9 min / max / average [ % ] = 13 / 47 / 32 31 % 37 % 45 %... 44 % - 34 % diff

38 Maximizing the number of within-predictions

39 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

40 we’re lucky:  process vertices in order dictated by our connectivity coder Traversal Order Compressing Polygon Connectivity with Degree Duality Prediction [ Isenburg, 02 ] Valence-driven Connectivity Encoding for 3D meshes [ Alliez & Desbrun, 01 ]  avoid “splits” by adaptive traversal

41 “splits”

42

43

44

45 processed region

46 “splits” processed region

47 “splits” processed region

48 “splits” processed region

49 “splits” processed region

50 “splits” processed region split

51 Adaptive Traversal

52

53

54 % of within-predictions triceratops galleon cessna … tommygun cow teapot within prediction type: model min / max / average [ % ] = 74 / 91 / 84 across 255725721 20073242412 30916212211 ………… 33766787839 0270121 101617021 lastcenter 90 % 85 % 83 % … 81 % 0 % 85 % within % of

55 Example Decoding Run

56 center-prediction: no parallelogram rule possible predict this position as center of the bounding box center

57 Example Decoding Run 0 last last-prediction: no parallelogram rule possible predict this position as the last position

58 Example Decoding Run 1 0 last last-prediction: no parallelogram rule possible predict this position as the last position

59 Example Decoding Run across-prediction: parallelogram rule possible predict across two polygons across 1 0 2

60 Example Decoding Run within-prediction: use parallelogram rule predict within a polygon within 1 0 2 3

61 Example Decoding Run 1 0 within 4 3 2

62 Example Decoding Run 3 1 2 across 5 4 0

63 Example Decoding Run 3 1 0 2 within 6 4 5

64 Example Decoding Run 7 5 1 0 2 within 6 4 3

65 Example Decoding Run 7 6 5 1 0 4 within 7 2 3

66 Can we do better ? ( and keep it simple )

67 Keep it simple Constraints: single linear prediction use connectivity traversal order Possibilities: floating point coefficients use more than three vertices

68 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 BC deg = 8 B C A C B A deg = 5 A C B

69 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?

70 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

71 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 predictionsparallelogram prediction within a quadrilateral is optimal

72 assuming equal edge length better across-predictions 33333434353536363838 43434444454546464848 adjacent polygons are coplanar

73 assuming equal edge length better across-predictions 33333434353536363838 43434444454546464848 adjacent polygons are not coplanar crease angle: 60°

74 Switch “across” Coefficients if ( deg == 3  3 ) { α = 0.917;β = - 0.833;γ = 0.916; } else if ( deg == 3  4 ) { α = 0.621;β = - 0.504;γ = 0.883; } else if ( deg == 3  5 ) { α = 0.557;β = - 0.334;γ = 0.777; } else … … } else if ( deg == 4  3 ) { α = 1.153;β = - 0.354;γ = 0.201; } else if ( deg == 4  4 ) { α = 1.001;β = - 0.648;γ = 0.647; } else … …

75 Conclusion

76 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

77 Summary ( 2 ) proof-of-concept implementation in form of a Web java-applet compression software will soon be made available http://www.cs.unc.edu/~isenburg/pmc/

78 Future Work a scientific way to find numbers for this “coefficient switching” polygonification: – turn triangle meshes into polygon meshes for better compression

79 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

80 Thank You! http://www.cs.unc.edu/~isenburg/pmc/


Download ppt "With Parallelogram Prediction Compressing Polygon Mesh Geometry Martin Isenburg UNC Chapel Hill Pierre Alliez INRIA Sophia-Antipolis."

Similar presentations


Ads by Google