3D Geometry Coding using Mixture Models and the Estimation Quantization Algorithm Sridhar Lavu Masters Defense Electrical & Computer Engineering DSP GroupRice UniversitySeptember 2002
3D Surfaces Video games Animations - Bug’s Life, Toy Story 2 3D object modeling - CAD e-commerce
3D Surfaces Geometry, color, texture 3D scanning Polygon meshes Problem - large data sets Geometry compression 100,000 triangles
Contribution 3D geometry coder Multilevel representation –Normal meshes EQ algorithm –Estimation-Quantization (EQ) –Local context information RD optimization
Related Work Zerotree coder for the wavelet coefficients of normal meshes RD optimization based quantization algorithm for the wavelet coefficients of meshes
Outline 3D surface data Multilevel representation Normal meshes Wavelet transform EQ algorithm Error metrics Results
3D geometry data Geometry Polygon meshes Geometry & connectivity Geometry Connectivity
Multilevel Representations OriginalCoarseMultilevel triangular meshes Original Normal meshes
Normal meshes Multilevel representation Base mesh Successively refine the mesh –Subdivision
Subdivision Linear subdivision Butterfly subdivision Loop subdivision
Butterfly Subdivision
Normal Meshes Predict b and n Find intersection Store offset 1 number per vertex
Wavelet Transforms Irregular data Lifting scheme – predict and update Subdivision – predict step Wavelet transforms –Butterfly wavelet transform –Loop wavelet transform
Wavelet Transforms and Normal Meshes Wavelet coefficients Non-normal vertices
Related Work - Zerotree Zerotrees Zerotree coding Mesh zerotree Mesh zerotree coding EQ coding
Review Multilevel representations for meshes Normal meshes Wavelet transforms –Subdivision –Lifting Related work - ZT based algorithm Contribution – EQ based algorithm
3D EQ Coder Local context information Model for wavelet coefficients –Generalized Gaussian distribution EQ Algorithm –Estimate Step –Quantize Step –RD Optimization
Wavelet Coefficient Model Generalized Gaussian distribution
Wavelet Coefficient Model Generalized Gaussian (GGD) – ShapeFixed at each level – VarianceLocal neighborhood – MeanZero
EQ Algorithm Scan the vertices –Estimate, quantize, encode Estimate step - variance –Local neighborhood –Causal neighborhood –Quantized neighbors Quantize step –Deadzone quantizer –RD optimization
EQ Algorithm (cont.) RD optimization –Rate = -log(probability) –Distortion = MSE of coefficients Entropy coding –Arithmetic coder
Normal vs. Tangential Smooth surfaces Global error contribution –NormalHigher –TangentialLower Precision –NormalHigherLower l –Tangential LowerHigher l Most tangential components are zero –Single quantizer per level
Neighborhood
Ordering - Base Triangles
Ordering - Vertices
Summary of EQ Algorithm Pick l Determine ordering –Ordering of base triangles –Ordering inside each base triangle Local causal neighborhood Estimate s Quantize using RD optimization Normal vs. tangential
Error metrics MSE ? Hausdorff distance Min, max, mean, mean squared Performance Measure
Results Metric - PSNR Bits-per-vertex (bpv) Reconstructed mesh vs. original mesh Metro and MeshDev software tools
Results - EQ vs. ZT
Results EQ vs. ZT (Lifted Butterfly)
Results - EQ vs. ZT (Loop Wavelets)
Results (Bounds) Upper bound –Complete context Lower bound –No context
Summary Multilevel representations Normal meshes Wavelet transforms GGD model Local context based coder EQ vs. ZT
Conclusion & Future Work Conclusions –GGD model + EQ algorithm –0.5 – 1 dB gain Future work –Vertex based error for RD optimization New algorithms –Space-Frequency quantization (SFQ)
Scaling Coefficients and Connectivity Scaling coefficients –Vertices of base mesh –Uniform quantization Connectivity –Semi-regular connectivity –Base mesh connectivity –TG Coder (lossless)
Lifting (Predict, Update) Forward Inverse
Lifting - Haar Split Predict Update
Loop Wavelet Transform
Causal Neighborhoods
EQ – Unpredictable sets Empty causal neighborhood Zero s estimate Classify as unpredictable (U) set Model U set as zero-mean GGD Use a single s and n for U set
EQ – Threshold step Iteration of E and Q steps First iteration Threshold coefficients Partition U and P sets Estimate s and n Use estimates in next iteration
Normal Predictable Set
Normal Unpredictable Set
Tangential Set
Hausdorff Distance
Mesh Zerotree Coding
Results – Venus PSNR BPV EQ lifted BW ZT lifted BW EQ unlifted BW ZT unlifted BW EQ Loop Wavelet ZT Loop Wavelet
Results – Rabbit PSNR BPV EQ lifted BW ZT lifted BW EQ unlifted BW EQ unlifted BW