Title: Compression and Progressive Transmission of ThreeDimensional Models
1Compression and Progressive Transmission of
Three-Dimensional Models
- CENTER FOR COMPUTATIONAL VISUALIZATION
- COMPUTER SCIENCES TICAM
- UNIVERSITY OF TEXAS
- AUSTIN, TX 78712
2Outline of the Talk
- The object domain and problems
- Research motivation
- Results
- Single resolution compression and coding
- Incremental transmission/display and error
resilience - Multiresolution surfaces and progressive
transmission - Summary and future work
3Object Domain
- Triangular mesh M (K, V, P)
- Connectivity K is a simplicial complex with
- Dim(s) 2 for any principal simplex in K.
- Geometry V is a set of vertex positions.
- Attributes P is photometry data (normal, colors,
texture coordinates) - Mesh classification
- Manifold (without any singular vertex or edge)
- Orientable or non-orientable, w/o boundary
- Genus/Euler characteristics
- Non-manifold
4Problem I
- Problem Statement (single-resolution compression
and encoding) - Given a triangular mesh of arbitrary topology,
find an approximation mesh that has the same
connectivity with minimized approximation error
and can be efficiently represented in digital
form. - Lossless connectivity lossy/lossless geometry
and attributes - Compression M(K, V, P) --gt M(K, V, P)
- Encoding digital representation of the
approximation M - Evaluation Factors
- Generality
- Compression ratio and geometric error
- Time and space complexity
- Flexibility
5Problem II
- Problem Statement (Transmission and Rendering)
- Given a triangular mesh of arbitrary topology,
design efficient and flexible coding schemes
which - keep the size of overall transmitted data as
small as possible - support incremental transmission and display.
- support error resilience and recovery over
unreliable network. - balance the computation and transmission load
among clients and servers (the relation
between network bandwidth and actual throughput
computing power and resource)
6Problem III
- Problem Statement (Progressive Transmission)
- Given a triangular mesh of arbitrary topology,
construct a compact multiresolution
representation so as to support progressive
transmission. - Progressive geometry transmission
- Intermediate meshes lossy geometry lossless
connectivity - Progressive connectivity transmission
- Intermediate meshes lossy/lossless geometry
lossy connectivity - Final reconstructed mesh lossy/lossless geometry
lossless connectivity
7Research Motivations
- Motivation for Problem I
- Archiving large objects with limited storage
resource - Reduce network traffic
- Motivation for Problem II
- 3D database access
- Unreliable data communication channel
- Motivation for Problem III
- Quick access and direct manipulation
- Level-of-Detail
8Abstract of the Contributions
- Provide efficient single-resolution compression
and encoding techniques which - accept triangular meshes of the most general case
- use proper predictive coding schemes for both
geometry and attributes - can adaptively represent a special family of
objects (tiling surfaces) - Optimize the partition of the compressed data
into smaller blocks to support - incremental transmission and display
- error resilience
- potential hardware decompression algorithm and
error recovery - Present multiresolution representation and
progressive transmission techniques - Geometry based approach
- Connectivity based approach
- Compact representation topology preserving
- Flexible resolution degree topology
non-preserving
9Single Resolution Compression and Encoding
(Diagram of Our Encoder)
3D object
Geometry encoder
Geometry
Entropy
Bit
Connectivity encoder
Connectivity
Stream
coding
Attributes encoder
Attributes
Compression is implicitly accomplished through
the quantization of both geometry and attributes
data
10Measurements of Geometry Error
- Geometric error is controlled by quantization
bits - Our measurement
- Geometry data Pi for mesh A Qk for mesh
B - Di min 1ltkltn Pi - Qk2 , 1 lt i ltlt n
- ?max max 1ltiltn Di
- ?min min 1ltiltn Di
- ?average ? 1ltiltn Di/n
11Related Work
Allowed input
Features
Turan, 1984
Planar graph
12 bits/vertex for connectivity no face no
geometry
Keeler, 1995
Planar graph
4.6 bits/vertex for connectivity no face no
geometry
Deering, 1995
Manifold Mesh
Small local storage, 6 bits/T for connectivity
No non-manifold
Chow, 1997
Manifold Mesh
Real-time decompression low compression ratio
only manifold
IBM, 1996
Manifold Mesh
Vertex spanning tree triangle tree 2-3 bits/T
only manifold
TIIN, 1997
Orientable Mesh
Code vertex degrees 1.5-2.0 bits/T narrow input
data domain
Theoretically proved results T
Triangle TIIN technion-Israel Institute of
Technology (www.virtue.com)
12Layering Structure ( I )
- Data partition/Initial representation
- Vertex-layer a set of vertices
- Triangle-layers a set of triangles
- Essential constructing parts
- Chords two endpoints in different
vertex-layers - Transversals two endpoints in the same vertex
layer - Geometry primitives to be encoded
- Branching points
- 3 incident transversals
- Contours
- an order sequence of vertices
- intermediate vertex has 2 incident transversals
- Triangle strips
- an order sequence of triangles
- consecutive
- Triangle Fans.
13Layering Structure ( II )
Starting vertex
Non-manifold vertex
Starting vertex
14Layering Structure ( advantages )
- Generality
- Non-manifold triangular meshes
- Some non-mesh meshes
- Strong locality
- Every strip depends on only two vertex-layers
- Every vertex-layer affects only two
triangle-layers - Simplicity
- Few global states
- Few complicated representation units
- Relative independence
- Between different components
- Between two layers
15Sketch of Our Scheme
- Connectivity Encoding
- Vertex-layer layout
- Triangle strips and fans
- Geometry Encoding
- Bounding Box
- Predictive coding of vertex positions
- Attribute Encoding
- Normal, color, and texture coordinates
- Binding per vertex, per triangle, and per
corner - Tiling Surface Encoding
- Adaptability
- Great important compression performance
Per face
Per vertex
Per corner
16Connectivity Coding
- Given an mesh, construct its vertex-layers and
triangle-layers - For each vertex-layer,
- Build the contours
- Encode the layout of all these contours
- For each triangle-layer,
- Build triangular strips and fans
- Encode these strips and fans
17Coding of Triangle Strips ( I )
Parent contour
relative
local
(contour_no, local_index)
104
103
102
99
100
101
102
105
106
0
103
1
0
0
0
0
0
...
104
2
1
1
1
1
3
105
204
205
206
207
208
Bubble encoding (0,3,1) and (1,3,2)
(contour_no,local_index)
Child contour
18Coding of Triangle Strips ( II )
Bit march encoding
Group 4 consecutive bits into a symbol
symb
symb
code
code
0000 0001 0010 0011 0100 0101 0110 0111
0101011111 010101110 01011 1111 010100 10 110 0101
0110
1000 1001 1010 1011 1100 1101 1110 1111
01010100 0100 00 0111 1110 0110 01010101 010101111
0
Statistics shows that symbols 0101 and
1010 appear most frequently
Huffman coding on these symbols (arithmetic
coding)
19Connectivity Coding Results
Bits/triangle
Number of triangles
Mean 2.76 bits/triangle Weighted average
2.71 bits/triangle
20Geometry Coding
- Connectivity coding specifies a total order for
all vertices - Branching vertices
- Be always encoded first in each vertex-layer
- For each contour in a vertex-layer,
- Directly encode the starting non-branching vertex
- For each successive vertex,
- Compute the prediction and correction vectors
- Quantize correction vectors
- Entropy encode the correction codes.
21Prediction and Quantization
(r, ?, ?)
0,1
0,2?
Error Propagation
0,?
Second-order prediction
Predict from coded position (dash-lines are
correction vectors)
(r2 - r1 Nr) mod Nr (?2 - ?1 N?) mod N? (?2 -
?1 N?) mod N?
22Example (single resolution)
VRML (GZIP)
25 bpv error (IBM)
15 bpv error (IBM)
113,051 ? 0.012 (102,040)
69,456 ? 0.065 (64,039)
3,473,761 (901,136)
Bunny
Phone
8,460,440 (2,138,042)
260,185 ? 0.010 (297,240)
157,101 ? 0.065 (173,073)
58,106,070 (11,016,152)
2,664,501 ? 0.014 (out of mem)
1,953,932 ? 0.067 (out of mem)
Buddha
All in bytes Average geometric error
23Buddha
24 Results (Single Resolution, 10 bpv)
Number of vertices (log scale)
Number of vertices (log scale)
(w.r.t. VRML files)
(w.r.t GZIP files)
Compression ratios (10 bits per vertex)
25 Results (Single Resolution, 25 bpv)
Number of vertices (log scale)
Number of vertices (log scale)
(w.r.t. VRML files)
(w.r.t GZIP files)
Compression ratios (25 bits per vertex)
26Attribute Encoding
B
A
C
D
bytes
Same predicting strategy as geometry coding
Indirect prediction for normal 2 coordinates
instead of 3.
27Compression and Post fairing
V72,745 T144,384 5,471,965 bytes
9 bpv
9,009 bytes, ? 0.136
Fairing (10 iterations)
Fairing (50 iterations)
28Tiling Surfaces
Code X and Y
No bubble
( All in bytes V8,698, F17,227)
Not Breadth-First
8 bpv
Original (677,655 bytes)
20 bpv
16 bpv
12 bpv
29Incremental Transmission and Display
- Our single resolution compression and coding
scheme support incremental transmission and
display. - Client/Server
- once part of compressed data is ready, sent it
- once part of data is received, decode and display
it - improve interaction performance.
- Main point
- partition into small blocks.
- Each block contain enough info to recover some
triangles.
30Incremental Transmission and Display
31Error Resilience
1
Block is damaged
2
Marker is damaged
3
False marker
32Error Resilience
33Related Work
Features
Allowed Input
Hoppe, 1996
Orientable
Edge collapse and vertex split (log n 5)
bits/V
USC, 1997
Orientable
Vertex removal (log n 9) bits/V
Popovic, 1997
Simplicial Complex
Topological non-preserving (log n 7.5) bits/V
Adaptive refinement 10 bits/V
Taubin, 1998
Manifold
V Vertex
34 Our Progressive Transmission Approach
- Progressive bit transmission
- Successive Quantization
- Progressive connectivity transmission
- Layering based decomposition and reconstruction
- Intra-layer Inter-layer
- Topology non-preserving decomposition and
reconstruction - Triangle contraction
- Combination
- Compact representation
- Flexible resolution degree
35Progressive Transmission Diagram
36Comparison of Connectivity Costs
PM
PSC
PFS
USC
Ours
Ours
N/A
6.18
7.07
7.5
8.75
9.5
Eight (n766)
4.45
9.5
10.75
11.5
Horse (n11,135)
6.39
6.66
Bunny (n34,835)
10.5
4.95
4.90
5.15
11.75
12.5
Average connectivity cost (bits per triangle)
PM manifold 0.5(log n5) bits/T.
PSC progressive simpilicial complexes 0.5(log
n7.5) bits/T.
PFSprogressive forest split.
USC progressive resolution 0.5(log n9)/T
Ours without topology change
Ours with topology change
37Summary and Future Work
-
- For progressive transmission, explore the
relations between - Wavelet based approaches and polygonal surfaces
based approaches - Research the relations between
- Transmission bandwidth and actual network
throughput - Study the compression and encoding of
tetrahedral meshes - Study the compression and encoding of arbitrary
patch meshes - NURB models of large CAD models, IGES industry
standard
38Layering Based Decomposition
- Based on the layering structure
- Intra-layer decomposition
- Vertices within individual contours are
selectively decimated - Constrained retriangulation strategy
- Inter-layer decomposition
- Decimate whole contours
- Purpose avoid creating sliver triangles
39Movie (Progressive connectivity transmission)
40 Movie (incremental transmission and display)
Horse
Necklace
41Intra-layer Progressive Decomposition( I )
42Intra-layer Progressive ( II )
Reconstruction quadratic prediction correction
stored
computed
43Local Retrianglulation (I)
44Local Retriangulation (II)
D23
D13
Details D1 and D2 are used for reconstruction
---- To locate the boundary of the decimated
vertex
45Inter-layer Progressive (I)
46Inter-layer Progressive (II)
47Topology Non-preserving Decomposition
Triangle contraction
Priority queue to determine the contraction order
Key value Area Sliver_Factor
Principles
Smaller triangles have higher priority
Penalty on producing sliver triangles
Details
Type I triangles 2 bits/triangle
Dictionary sort
Type II triangles lt1 local_indexgt 3 bits
Type III triangles 1 bit/triangle
Isolated vertices
48Progressive Connectivity Transmission (Bunny)
Number of bytes
Number of bytes
Number of triangles
Number of triangles
Topology changing reconstruction (6.50 bytes per
triangle)
Layering based reconstruction (3.20 bytes per
triangle)
49Progressive Connectivity Transmission (Eight)
Number of bytes
Number of bytes
Number of triangles
Number of triangles
Topology changing reconstruction (4.78 bytes per
triangle)
Layering based reconstruction (3.32 bytes per
triangle)
50Methods and the Crack Problem
Non-manifold to manifold
a
a
Our Scheme
b
b
Non-
Crack problem (gap or self-intersection)
a
IBMs TS (Taubin et al)
a
Manifold
b
Simple
Touma Gotsman
b
(TIIT Technion-Israel Institute of Technology)
51Geometry Error (10 bpv)
Number of vertices
52Geometry Error (15 bpv)
Number of vertices
53Geometry Error (20 bpv)
Number of vertices
54Geometry Error (25 bpv)
Number of vertices
55Geometry Error (30 bpv)
Number of vertices
56Crocodile
57Honda
58Teapot
59Atlanta-Humidity
(V39,072, F77,504 Original 4,081,713 bytes
GZIP 743,561 bytes)
60Crouzon-Skull
Original VRML 11,260,390 bytes GZIP 2,431,665
bytes
12 bpv
18 bpv
24 bpv
61Foot
62Geometric Prediction (related work)
- Polygonal prediction
- Exact for regular polygons
- Approximation for general
- Delta prediction
- Midpoint prediction
Pl ? Pi ? Pj ? Pk
(P1P2Pn) is a 3D n-polygon
63Compressed Data Partition
Encode_Forest() Header()
BoundingBox() for (t 0
tltnum_component t)
Geom_Encode(t, 0) for (k 0
klttreet.num_layer k)
Geom_Encode(t, k)
Conn_Encode (t, k)
64 Results (Single Resolution, 20 bpv)
Number of vertices (log scale)
Number of vertices (log scale)
(w.r.t GZIP files)
(w.r.t. VRML files)
Compression ratios (20 bits per vertex)
65IBM Topological Surgery
66 Results (Single Resolution, 30 bpv)
Number of vertices (log scale)
Number of vertices (log scale)
(w.r.t. VRML files)
(w.r.t GZIP files)
Compression ratios (30 bits per vertex)
67 Results (Single Resolution, 15 bpv)
Number of vertices
Number of vertices (log scale)
Number of vertices (log scale)
(w.r.t. VRML files)
(w.r.t GZIP files)
Compression ratios (15 bits per vertex)