Web-based progressive geometry transmission using subdivision-surface wavelets

Similar documents
Progressive Geometry Compression. Andrei Khodakovsky Peter Schröder Wim Sweldens

Normal Mesh Compression

SIGNAL COMPRESSION. 9. Lossy image compression: SPIHT and S+P

CSEP 521 Applied Algorithms Spring Lossy Image Compression

FAST AND EFFICIENT SPATIAL SCALABLE IMAGE COMPRESSION USING WAVELET LOWER TREES

Modified SPIHT Image Coder For Wireless Communication

Embedded Rate Scalable Wavelet-Based Image Coding Algorithm with RPSWS

Wavelet Based Image Compression Using ROI SPIHT Coding

Fingerprint Image Compression

Image Compression for Mobile Devices using Prediction and Direct Coding Approach

Optimized Progressive Coding of Stereo Images Using Discrete Wavelet Transform

Defense Technical Information Center Compilation Part Notice

Compression of RADARSAT Data with Block Adaptive Wavelets Abstract: 1. Introduction

A Developer s Survey of Polygonal Simplification algorithms. CS 563 Advanced Topics in Computer Graphics Fan Wu Mar. 31, 2005

Compression of Normal Meshes

Geometry Compression of Normal Meshes Using Rate-Distortion Algorithms

Wavelet Transform (WT) & JPEG-2000

NOWADAYS, 3D models are used in a wider and wider

Multi-View Image Coding in 3-D Space Based on 3-D Reconstruction

Review and Implementation of DWT based Scalable Video Coding with Scalable Motion Coding.

Multiresolution Meshes. COS 526 Tom Funkhouser, Fall 2016 Slides by Guskov, Praun, Sweldens, etc.

Wavelet Based Image Compression, Pattern Recognition And Data Hiding

An Embedded Wavelet Video Coder. Using Three-Dimensional Set. Partitioning in Hierarchical Trees. Beong-Jo Kim and William A.

Reconstruction PSNR [db]

Reversible Wavelets for Embedded Image Compression. Sri Rama Prasanna Pavani Electrical and Computer Engineering, CU Boulder

A 3-D Virtual SPIHT for Scalable Very Low Bit-Rate Embedded Video Compression

OPTIMIZED MULTIPLE DESCRIPTION SCALAR QUANTIZATION BASED 3D MESH CODING

An Embedded Wavelet Video Coder Using Three-Dimensional Set Partitioning in Hierarchical Trees (SPIHT)

A Image Comparative Study using DCT, Fast Fourier, Wavelet Transforms and Huffman Algorithm

ECE 533 Digital Image Processing- Fall Group Project Embedded Image coding using zero-trees of Wavelet Transform

IMAGE COMPRESSION USING EMBEDDED ZEROTREE WAVELET

HYBRID TRANSFORMATION TECHNIQUE FOR IMAGE COMPRESSION

Comparison of EBCOT Technique Using HAAR Wavelet and Hadamard Transform

Georgios Tziritas Computer Science Department

Complexity Reduction of Catmull-Clark/Loop Subdivision Surfaces

Advanced Computer Graphics

A New Configuration of Adaptive Arithmetic Model for Video Coding with 3D SPIHT

PERFORMANCE ANAYSIS OF EMBEDDED ZERO TREE AND SET PARTITIONING IN HIERARCHICAL TREE

Mesh Based Interpolative Coding (MBIC)

Progressive Compression for Lossless Transmission of Triangle Meshes in Network Applications

An Embedded Wavelet Video. Set Partitioning in Hierarchical. Beong-Jo Kim and William A. Pearlman

REGION-BASED SPIHT CODING AND MULTIRESOLUTION DECODING OF IMAGE SEQUENCES

FPGA IMPLEMENTATION OF BIT PLANE ENTROPY ENCODER FOR 3 D DWT BASED VIDEO COMPRESSION

Fast Progressive Image Coding without Wavelets

signal-to-noise ratio (PSNR), 2

Mesh Decimation Using VTK

Error Protection of Wavelet Coded Images Using Residual Source Redundancy

3-Dimensional Object Modeling with Mesh Simplification Based Resolution Adjustment

A Multiresolutional Approach for Facial Motion Retargetting Using Subdivision Wavelets

Spectral Coding of Three-Dimensional Mesh Geometry Information Using Dual Graph

JBEAM: Coding Lines and Curves via Digital Beamlets

New Perspectives on Image Compression

Subdivision curves and surfaces. Brian Curless CSE 557 Fall 2015

SPIHT-BASED IMAGE ARCHIVING UNDER BIT BUDGET CONSTRAINTS

Geometry-guided Progressive Lossless 3D Mesh Coding with Octree (OT) Decomposition

EFFICIENTLY representing two-manifold geometries, like

ANALYSIS OF SPIHT ALGORITHM FOR SATELLITE IMAGE COMPRESSION

Video Compression An Introduction

A COMPRESSION TECHNIQUES IN DIGITAL IMAGE PROCESSING - REVIEW

1. Introduction. 2. Parametrization of General CCSSs. 3. One-Piece through Interpolation. 4. One-Piece through Boolean Operations

JPEG 2000 compression

Embedded Descendent-Only Zerotree Wavelet Coding for Image Compression

Visually Improved Image Compression by using Embedded Zero-tree Wavelet Coding

Bit-Plane Decomposition Steganography Using Wavelet Compressed Video

Local Modification of Subdivision Surfaces Based on Curved Mesh

Image Compression Algorithm and JPEG Standard

DIGITAL IMAGE PROCESSING WRITTEN REPORT ADAPTIVE IMAGE COMPRESSION TECHNIQUES FOR WIRELESS MULTIMEDIA APPLICATIONS

DCT Coefficients Compression Using Embedded Zerotree Algorithm

International Journal of Emerging Technology and Advanced Engineering Website: (ISSN , Volume 2, Issue 4, April 2012)

Module 8: Video Coding Basics Lecture 42: Sub-band coding, Second generation coding, 3D coding. The Lecture Contains: Performance Measures

3D Point Cloud Data and Triangle Face Compression by a Novel Geometry Minimization Algorithm and Comparison with other 3D Formats

Postprocessing of Compressed 3D Graphic Data

EXPLORING ON STEGANOGRAPHY FOR LOW BIT RATE WAVELET BASED CODER IN IMAGE RETRIEVAL SYSTEM

CHAPTER 6. 6 Huffman Coding Based Image Compression Using Complex Wavelet Transform. 6.3 Wavelet Transform based compression technique 106

Compressing Texture Coordinates with Selective Linear Predictions

Geometric Modeling. Bing-Yu Chen National Taiwan University The University of Tokyo

Using Semi-Regular 4 8 Meshes for Subdivision Surfaces

Low-complexity video compression based on 3-D DWT and fast entropy coding

Digital Image Steganography Techniques: Case Study. Karnataka, India.

Color Image Compression Using EZW and SPIHT Algorithm

Image Segmentation Techniques for Object-Based Coding

Physically-Based Modeling and Animation. University of Missouri at Columbia

A Study of Image Compression Based Transmission Algorithm Using SPIHT for Low Bit Rate Application

A QUAD-TREE DECOMPOSITION APPROACH TO CARTOON IMAGE COMPRESSION. Yi-Chen Tsai, Ming-Sui Lee, Meiyin Shen and C.-C. Jay Kuo

Adaptive Quantization for Video Compression in Frequency Domain

Spirale Reversi: Reverse decoding of the Edgebreaker encoding

Lossless Compression of Floating-Point Geometry

Stereo Image Compression

IMAGE COMPRESSION USING HYBRID TRANSFORM TECHNIQUE

Dynamic Point Cloud Compression for Free Viewpoint Video

Open Access Compression Algorithm of 3D Point Cloud Data Based on Octree

MEDICAL IMAGE COMPRESSION USING REGION GROWING SEGMENATION

Scalable Compression and Transmission of Large, Three- Dimensional Materials Microstructures

A combined fractal and wavelet image compression approach

A Real-time Rendering Method Based on Precomputed Hierarchical Levels of Detail in Huge Dataset

Using Shift Number Coding with Wavelet Transform for Image Compression

Wavelet-based Contourlet Coding Using an SPIHT-like Algorithm

EFFICIENT METHODS FOR ENCODING REGIONS OF INTEREST IN THE UPCOMING JPEG2000 STILL IMAGE CODING STANDARD

View-dependent Polygonal Simplification

A Low-power, Low-memory System for Wavelet-based Image Compression

Transcription:

Web-based progressive geometry transmission using subdivision-surface wavelets Jens Jessl TU Kaiserslautern Martin Bertram TU Kaiserslautern Hans Hagen TU Kaiserslautern Figure 1: Progressive level of detail representation of a cube, Catmull-Clark subdivision is done three times to increase the level of detail. Abstract Web-based geometry transmission profits from a transmission system, which is both progressive and compressive. For this application, the wavelet transform has emerged as a suitable tool. We present a new zerotree coding scheme for compressing coefficients resulting from the wavelet transform of B-spline and Catmull-Clark surfaces. It results from a generalization of the original zerotree coding algorithm for image compression. The main idea is the construction of a suitable forest-structure of wavelet coefficients. Furthermore we present a system architecture for web-based progressive geometry transmission. Its main features are the separation of the transmission algorithms from the implementation of several geometry types, a set of parameters for regulating transmission properties, and a thread system for concurrent receiving and visualizing a scene. The power of the zerotree coding scheme is demonstrated by some numerical examples. Keywords: Geometry Compression, Progressive Transmission, Subdivision Surfaces, Wavelet Transform, Web-based 3D Graphics, Zerotree Coding CR Categories: C.2.4 [Computer-Communication Networks]: Distributed Systems Distributed Applications E.4 [Coding and Information Theory]: Data Compaction and Compression G.1.2 [Numerical Analysis]: Approximation Wavelets and Fractals I.3.2 [Computer Graphics]: Graphic Systems Distributed / Network Graphics 1 Introduction Progressive transmission of a three-dimensional scene (see figure 1 for an example) consists of two steps. At first, a coarse version of the scene-components is transmitted, followed by the advancing transmission of their details. Compared to non-progressive transmission, several advantages are obvious: Transmitted scene has scalable level of detail. Transmission of a scene requires a scalable amount of resources (data volume and transmission time). Availability of a coarse version of the scene at the beginning of transmission. Broken connections are not always disastrous. When embedding a progressive transmission system into the environment of the WWW, some peculiarities of the web need to be considered. At first, the power of computers connected to the WWW is varying in a wide range, so scalable level of detail is useful. Further the connections have different bandwidths and / or other restrictions as limitations of time or amount of transmitted data. As with scenes of high complexity transmission time may be long, it is lucrative to receive a coarse version of the scene at the beginning of transmission. Finally, in case the connection has broken, a version with sufficient quality may have been received. It is obvious that all advantages of progressive transmission are extremely useful. There exist many applications for web-based progressive geometry transmission, including: e-mail: nomaam@t-online.de e-mail: bertram@informatik.uni-kl.de e-mail: hagen@informatik.uni-kl.de

Virtual reality and entertainment. Presentations and advertising. Web-based learning. Visualization of scientific data. Due to limited resources as bandwidth and time, transmission should be compressive. A general compression scheme consists of three steps [Hilton et al. 1994]: 1. Transformation: removes similarities between adjacent values (de-correlation), lossless or lossy. 2. Quantization: decreases the number of bits used to represent a value, always lossy. 3. Entropy coding: removes statistical redundancy, always lossless. A good choice for the first step is a biorthogonal wavelet transform [Stollnitz et al. 1996]. As a scene consists of two types of components - geometry models and textures - wavelet transforms for both exist. In general a wavelet transform converts a highly detailed function into a coarse version and a sequence of sets of wavelet coefficients representing the details between two adjacent detail steps. Applying the inverse transform successive to the coarse version with the sets of coefficients results in the original function, so progressive transmission is feasible. The coefficients are mostly sparse and the transform and its inverse can be computed in linear time (by using the lifting scheme [Sweldens 1996]). By using float arithmetic, a tradeoff between the quality of the function and the length of the resulting bitstream is possible by selecting proper quantization steps. Due to the relations among the wavelet coefficients at consecutive levels, it is a good decision to split the entropy coding step into two parts. At first, zerotree coding [Shapiro 1993] is done, which compresses the coefficients by taking care of these relations. The resulting bitstream is then processed by an arithmetic coder [Moffat and Witten 1998] removing remaining statistical redundancy. A popular modeling technique are B-spline surfaces and their generalization - surfaces defined by meshes with Catmull-Clark connectivity [Catmull and Clark 1978]. There already exist wavelet transforms for both of them [Bertram et al. 2000]. In the present paper, we present a new zerotree coding scheme for compressing the resulting wavelet coefficients. As a result, these modeling techniques can be used within the described progressive compression scheme. In addition, we describe a system architecture, which implements this scheme in a web-based environment. The next section reflects existing work. Section three contains the new zerotree coding scheme for B-spline and Catmull-Clark surfaces. The architecture of a web-based, progressive geometry transmission system is described in section four. Finally, section five summarizes some numerical results and section six concludes our work. 2 Related Work There exists a variety of systems implementing web-based geometry transmission: Cult 3D [Cycore 2004], Macromedia Shockwave 3D [Macromedia 2004] and Viewpoint VET [Viewpoint 2004] are proprietary products, VRML [Web3D-Consortium 1997] and X3D [Web3D-Consortium 2003] are open standards. Partially they support progressive transmission, but according to our state of knowledge none of them uses a wavelet-based compression scheme. A popular system that uses a wavelet-based and zerotree-based compression scheme is the AFX part of MPEG-4 [MPEG 2004]. [Grabner 2003] describes a client/server multiresolution rendering system for progressive transmission and visualization of compressed nonmanifold triangle meshes. [Chen et al. 2003] shows a mechanism for transmitting geometry over lossy networks, transmitting only important details in a lossless way. An overview on several single and multi-resolution polygonal mesh compressing schemes is given by [Taubin 1999]. Early examples for geometry compression methods are the works from Deering [Deering 1995] and Taubin et al. [Taubin and Rossignac 1998], but they are not progressive. A first progressive method was developed by Hoppe [Hoppe 1996], whose main idea is to divide up a mesh into a coarse version and a set of vertex split functions. A progressive geometry compression scheme basing on the wavelet transform is described by [Khodakovsky et al. 2000]. An introduction on wavelets for computer graphics is given by [Stollnitz et al. 1996]. [Tao and Moorehead 1994] give an overview on progressive transmission using the wavelet transform and describe a biorthogonal wavelet transform for regular meshes. Important works are the Lifting Scheme described by Sweldens [Sweldens 1996] and the wavelet construction for subdivision surfaces described by Lounsbery [Lounsbery 1997]. A highly efficient biorthogonal wavelet transform for B-spline and Catmull-Clark surfaces [Catmull and Clark 1978] is described by Bertram [Bertram 2000] and Bertram et al. [Bertram et al. 2000]. An adequate wavelet transform for surfaces using loop-subdivision on a triangle mesh is described by [Khodakovsky et al. 2000]. [Abasolo and Perales 2003] demonstrate a wavelet analysis for terrain models dealing with both geometry and textures. Textures may be compressed by the wavelet transform contained within the JPEG 2000 [JPE 2000] standard. The zerotree coding scheme is described by [Shapiro 1993] and improved by [Said and Pearlman 1996]. The idea of zerotree coding to replace a tree of coefficients by a single symbol is adapted to coefficients resulting from the wavelet transform of triangle surfaces by Khodakovsky et al. [Khodakovsky et al. 2000]. A good overview on arithmetic coding is given by Moffat and Witten [Moffat and Witten 1998]. [Khodakovsky et al. 2000] and the general idea of a compression scheme described by Hilton et al. [Hilton et al. 1994] serve as an archetype for the compression scheme described in our paper. We present a zerotree coding scheme for coefficients resulting from the wavelet transform of B-spline and Catmull-Clark surfaces on the one side. Furthermore, we describe a system architecture implementing web-based progressive geometry compression that includes wavelet transform, zerotree coding and arithmetic coding. 3 Zerotree Coding of Meshes The original zerotree coder [Shapiro 1993] compresses coefficients resulting from a tensor-product wavelet transform of bitmap images. An analysis step generates LL-, HL-, LH- and HHcoefficients, in which the set of LL-coefficients represents a coarser version that can be further analyzed. The coefficients are arranged in rectangles, subdivided into four at every analysis step. Furthermore a forest is constructed in a way that the coefficients of the final analysis step are its roots (figure 2). A coefficient of type x {HL,LH,HH} at position (i, j) is associated with the father node of the coefficients of type x in the previous analysis step at positions (2i,2 j), (2i + 1,2 j), (2i,2 j + 1), (2i + 1,2 j + 1). The resulting forest consists of regular quad-trees. The zerotree coder

LL LH HL HH HL LH HH Figure 3: Example for Catmull-Clark subdivision. Figure 2: Coefficient structure of the original zerotree coder. uses the facts that small values are less crucial for the quality of the reconstructed function than large ones, and that coefficients close to leafs tend to be small. Coding is done per bitplane, hence most of the signal energy is within a prefix of the generated bitstream. If the bit associated with the actual bitplane of a coefficient is zero and the corresponding bits of all descendant coefficients are zero too, a special zerotree symbol is sent. The original zerotree coder consists of two parts. The first part contains the algorithms performing the coding process, the second part contains the forest structure of the coefficients. While the forest structure depends strongly on the coefficient structure and the previous performed wavelet transform, the coding algorithms are independent from those. So it is reasonable to split up the zerotree coder into two architectural units, consisting of algorithms and forest structure. The coding algorithms have to access the forest structure, hence an interface has to be defined (table 2). As a result of this partitioning, it is possible to substitute the forest structure resulting from a tensor-product wavelet transform of bitmap images by forest structures resulting from other wavelet transforms, while the coding algorithms are unmodified. Those forest structures have to satisfy two condition in order to make the zerotree coder work: 1. Coefficients have to be ordered in a forest in a way that child coefficients refine a part of the function, which has already been refined by their parents. So the probability for the existence of many zerotrees is high, since most details are compacted into coefficients corresponding to coarse levels of detail. 2. The forest and the order of processing coefficients needs to be known both by the encoder and by the decoder. Hence, it is possible to assign the sent or received bits to corresponding coefficients. We construct a forest structure suitable for coefficients resulting from B-spline and Catmull-Clark surfaces. A Catmull-Clark surface is generated by successive subdividing a polyhedral base mesh of arbitrary two-manifold topology by using corresponding subdivision rules [Catmull and Clark 1978]. A B-spline surface is a special case of a Catmull-Clark surface with rectangular base mesh. Among the corresponding wavelet transform [Bertram et al. 2000], the vertex coordinates serve as coefficients. A synthesis step (figure 3) adds new vertices from wavelet coefficients for every edge (e-coefficients) and for every face (fcoefficients) and actualizes all vertices according to given rules. Old vertices are denoted as v-vertices. Every edge is substituted by three (if the old edge is at the border) or four (otherwise) new edges. Every face is substituted by n new faces, in which n represents the number of incident vertices of the old face. An analysis step manipulates all vertices according to given rules and declines the substitution of vertices, edges and faces of a synthesis step. Removed vertices are stored as wavelet coefficients. The operations manipulating vertices are implemented by simple local lifting steps. The wavelets of the transform are bicubic biorthogonal B-spline wavelets. In the case of a rectangular base mesh, a tensor product of the one-dimensional wavelet transform is used. In the case of an arbitrary base mesh, two modifications are made. At first, the order of computation is changed in such a way that every vertex is changed only one time within a lifting step. Furthermore the computation of averages is generalized to more than four input values: a b represents the average of all vertices of type a adjacent to a vertex of type b. Synthesis operations arise by using following lifting steps in the order s li ft( 8 3), w li ft( 2 1), s li ft( 2 1), s scale( 2 1 ). Analysis operators result by inverting the synthesis operators and their order of computation. s lift(a) : v v+4a 2 f v + 4a e v (1) e e+2a f e (2) w lift(a) : f f + 4a 2 v f + 4a e f (3) e e+2a v e (4) s scale(a) : v a 2 v (5) e a e (6) Finally, it is feasible to integrate features as sharp vertices and edges by manipulating these rules [Bertram et al. 2000]. We now describe the construction of the coefficient forest structure for the zerotree coder (figure 4). At first, the coefficients of the first synthesis step serve as the roots of our forest. To determine parent-child relations we apply following rules: 1. E denotes an edge, for which an e-coefficient is added in a synthesis step. This e-coefficient is associated with the father node of those coefficients introduced for the edges substituting E in the next synthesis step. 2. F denotes a face, for which a f-coefficient is added in a synthesis step. This f-coefficient is associated with the father node of those coefficients introduced for the faces substituting F in the next synthesis step. Every e-coefficient of the resulting forest has three (if the corresponding edge is at the border) or four (otherwise) descendants. Furthermore every f-coefficient of the first step has as many descendants as its corresponding face has incident vertices and every f-coefficient of further steps has four descendants (due to the fact that Catmull-Clark subdivision produces only quadrilateral faces after the first step). In the special case of B-spline surfaces even f-coefficients of the first step have four descendants. Our construction is suitable for zerotree coding, due to the relations defined above. At first, a coefficient refines a part of the surface that

5 4 12 13 14 22 33 19 6 20 15 16 17 10 28 29 30 3 7 18 19 20 12 8 5 24 31 28 23 14 7 21 11 27 26 10 9 18 32 1 25 30 16 11 17 31 32 33 6 8 13 29 15 21 22 23 2 9 24 25 26 27 Figure 4: Example for a forest of coefficients resulting from a wavelet transform of a Catmull-Clark surface; f-vertices: {1... 4}, e-vertices: {5... 9, 12... 27}, f-vertices: {10... 11, 28... 33}. has already been refined by its parents, if the corresponding face is located within the parent s associated face. In a system consisting of transmitter and receiver, the base mesh is sent at the beginning of transmission. The forest can be generated using this base mesh, so it is available at transmitter and receiver, at zerotree encoder and decoder. The order of processing coefficients may be depth-first. The implementation of the forest can be done in a very memoryefficient way, if only B-spline surfaces are considered. In this case there is no need for storing explicit links between the nodes of the forest, since the structure is regular and father-child relationship is trivial. Storing e-coefficients of vertical edges in a matrix HL, e- coefficients of horizontal edges in a matrix LH and f-coefficients in a matrix HH, computation can be done as described in table 1 (r and c denote the row and the column within a matrix). 4 System Architecture To adapt our transmission system to a concrete web-based scenario, we introduce two sets of parameters. The first one deals with the computation power and the memory capacity needed for receiving and visualizing a scene: The maximal number of visualizable polygons p t. Geometric models are not further refined, if their number of polygons is larger than p t. The maximal number of transmitted coefficient levels p l. If the wavelet transform is perfomed more than p l times, only p l levels are considered for transmission. The frame rate p f for redrawing the scene while receiving it. parent HL (r, c) LH (r, c) HH (r, c) children HL (2r,2c) HL (2r,2c+1) LH (2r 1,2c+1) if r 0 LH (2r,2c+1) if r max LH (2r,2c) LH (2r+ 1,2c) HL (2r+ 1,2c 1) if c 0 HL (2r+ 1,2c) if c max HH (2r,2c) HH (2r,2c+1) HH (2r+ 1,2c) HH (2r+ 1,2c+1) Table 1: Relationship between wavelet coefficients of analyzed B- spline surfaces. The other set of parameters deals with the size of the transmitted bitstream: The maximal volume or duration of transmission c m. If the amount of received bits exceeds c m or the amount of elapsed seconds since the beginning of transmission exceeds c m, transmission is aborted. The number of quantization bits c q. It allows a tradeoff between the resulting quality and the bitstream length. The threshold of the zerotree coder c t. If the euclidean norm of a coefficient is less than the given threshold c t (described as a percentage of the maximal existing euclidean norm), it is set to zero. By specifying a suitable threshold, the length of the bitstream is extremely reduced due to the increased number of zerotrees. These two sets of parameters can be considered as orthogonal since they deal with different aspects of the transmission. Our architecture bases on the classical client-server paradigm that is characterized by an asynchronous initiation of communication by the client. A server component is storing persistently scenes and their elements, a client receives a scene and visualizes it. The distribution of functionality is shown in figure 5. Wavelet analysis is done offline by a converter, so persistent data contains the coarse versions and the wavelet coefficients of scene elements. The first step performed by a server transmitting a scene component is the adaption to given parameter values, in which p l, c q and c t are considered. Afterwards the coarse version is transmitted, followed by the advancing transmission of the zerotree coded and entropy coded coefficients. A client receives the coarse version, followed by the bitstream that is entropy decoded and zerotree decoded. According to a given frequency, wavelet synthesis is done and the result presented to the user. Besides this static points we now examine some dynamical aspects of our architecture. There are two threads within the client implementing progressive reception and visualization of an element. They operate on two data structures: 1. The coarse version C of the element. 2. The sequence of sets of wavelet coefficients W of the element. At first, C is received and all coefficients of W are set to zero. Then the two threads are being started. ThreadLoad receives and decodes the compressed bitstream of the wavelet coefficients and reconstructs the coefficients of W progressively bit by bit. At the end of reception, all coefficients have been created. At the same time,

Client Server Converter Interaction Wavelet Synthesis Zerotree Decoder Entropy Decoder Persistent Data Adaption Zerotree Encoder Entropy Encoder Wavelet Analysis Web-Access Web-Access Scene Elements Figure 5: Architecture of our system. ThreadDraw visualizes periodically the scene element. It creates a copy CC of C and performes the wavelet synthesis to CC by using the actual coefficients of W. At the beginning of the reception of W, all coefficients are zero, hence wavelet synthesis corresponds to subdivision. If there occures a transmission error while receiving C, the coarse version is not been received well, hence visualization is not sensible. In contrast transmission errors occuring while receiving W are not disastrous, since at least subdivision of C is possible and so an approximation of the scene element is drawable. One out of four states is assigned with each of both threads: Created: Thread is created and ready for action. Started: Thread is working. Aborted: Thread is aborted either by the user or by a network error. The corresponding scene element may be sufficiently detailed, so there is no need to delete it. Halted: ThreadLoad is halted if the bitstream is completely received or the parameter c m restricts further transmission. ThreadDraw is halted if ThreadLoad is halted and the element has been visualized. It implements the parameters p t and p f. A final aspect of our architecture is the separation of the core system from the implementation of the different types of scene elements, so the system is extensible by further geometry types. This separation is done by defining an abstract interface containing functions performing analysis steps, synthesis steps, and further operations depending on the implementation of the architecture (persistent data format, accessing the net etc.). A further interface (table 2) connects the algorithms of the zerotree coder to the type-depending forest structure, so the algorithms are independent of the forest, hence these algorithms are independent of the forest structure. b Q t PSNR b NC b ZC b AC 8 0% 59.84 14742 71.2% 63.2% 8 20% 23.48 14742 31.9% 15.9% 8 40% 18.14 14742 14.9% 7.8% 8 60% 17.33 14742 9.1% 5.3% 8 100% 13.04 14742 3.7% 2.1% 24 0% 140.13 40950 84.0% 66.8% 24 20% 23.49 40950 37.1% 12.9% 24 40% 18.14 40950 16.6% 5.6% 24 60% 17.33 40950 9.5% 3.6% 24 100% 13.04 40950 4.0% 1.3% Table 3: Quality and transmission volume of a B-spline surface with different parameter values. b Q t PSNR b NC b ZC b AC 8 0% 59.68 81648 94.8% 92.1% 8 20% 27.47 81648 46.0% 14.8% 8 40% 26.44 81648 16.9% 3.9% 8 60% 27.89 81648 9.5% 0.8% 8 100% 28.74 81648 8.7% 0.4% 24 0% 140.88 226800 98.6% 102.3% 24 20% 27.46 226800 55.3% 11.8% 24 40% 26.44 226800 18.8% 2.8% 24 60% 27.89 226800 10.3% 0.5% 24 100% 28.74 226800 9.4% 0.3% Table 4: Quality and transmission volume of a Catmull-Clark surface with different parameter values. parameter values (figure 6 and tables 3, 4). Computation time is extremely small compared to transmission time. The number of quantization bits b Q and the threshold of the zerotree coding algorithm t determine the quality of the transmitted and reconstructed model described by the peak signal to noise ratio (PSNR). Using more quantization bits results in a higher PSNR using a zero threshold. As the threshold is increased, the more signal is lost, nearly independent of the number of quantization bits. The length of the uncompressed bitstream b NC is determined by b Q and the number of vertices. The reduction of this length by zerotree coding is denoted as percentage of b NC by b ZT and its further reduction by arithmetic coding is denoted as percentage of b NC by b AC. The presented zerotree coding scheme leads to great compression results if a threshold is used. The bitstream length roughly halves increasing the threshold from 0% to 20% and from 20% to 40%, since many small coefficients contribute to zerotrees (see tables 3, 4). If the thresholds are too large, the reconstructed models are being distorted. Additionally, an optional texture is assigned to a surface, which is compressed and progressively transmitted by applying the wavelet transform used in the JPEG2000 standard [JPE 2000] and Shapiro s original zerotree coding algorithm [Shapiro 1993]. 5 Results To demonstrate the power of our zerotree coding scheme and the performance of our system, we construct a rectangular B-spline surface consisting of 17 33 vertices and a cube-shaped Catmull-Clark surface consisting of 3064 vertices, 6144 edges and 3072 faces, both with additive noise representing fine-resolution details. These surfaces are analyzed and transmitted using different transmission 6 Conclusion We described a modular client-server architecture for web-based progressive geometry transmission. The system uses multiple threads on the client s side for parallel decoding and visualization of a scene. Our current implementation supports B-spline surfaces with dyadic refinement and Catmull-Clark surfaces, both carrying additional geometric detail at the individual subdivision levels.

function purpose Iterator getroots() Returns the roots of the forest. Iterator getchildren(node n) Returns the children of node n. byte getnodestate(node n) Returns or sets the state s of node n. void setnodestate(node n, byte s) (needed to perform coding) byte getnodelist(node n) Returns or sets the list l of node n. void setnodelist(node n, byte l) (needed to perform coding) boolean getbit(node n, int p) Returns the bit at position p of node n. void setbit(node n, int p, boolean v) Sets the bit at position p of node n to value v. boolean getsign(node n) Returns the sign of node n. void setsign(node n, boolean v) Sets the sign of node n to value v. void create(coarse c) Creates the forest using the coarse version c. Table 2: Interface between zerotree algorithms and forest structure. Standard compression methods are used for optional transmission of textures. Additional geometry types, like progressive triangle meshes, can easily be integrated on demand. In addition, we contributed a progressive zerotree coder for Catmull-Clark surfaces. This way, our system combines biorthogonal wavelet compression with surface geometry of arbitrary topology. Compared to triangle-based methods, the advantage of biorthogonal wavelets is regularity of meshes and highly efficient filtering using pre-defined lifting operations. This way, timeconsuming topological operations like edge collapsing and vertex splitting are avoided. Future work will be directed at extensions of the architecture, for example a manipulated thread system mapping parameter values to transmission properties of whole scenes instead of single elements. Transmission parameters could be automatically determined by the system considering network bandwidth and computational ressources. Furthermore the system could be extended to transmit only those coefficients being important due to the viewers position. References ABASOLO, M. J., AND PERALES, F. J. 2003. Wavelet analysis for a new multiresolution model for large-scale textured terrains. Proceeding of Computer Graphics, Visualization and Computer Vision (WSCG). BERTRAM, M., DUCHAINEAU, M. A., HAMANN, B., AND JOY, K. I. 2000. Bicubic subdivision-surface wavelets for large-scale isosurface representation and visualization. IEEE Visualization, 389 396, 579. BERTRAM, M. 2000. Multiresolution Modeling for Scientific Visualization. PhD thesis, University of California, Davis. CATMULL, E., AND CLARK, J. 1978. Recursively generated b- spline surfaces on arbitrary topological meshes. Computer-Aided Design 10, 6, 350 355. CHEN, Z., BODENHEIMER, B., AND BARNES, J. F. 2003. Robust transmission of 3d geometry over lossy networks. Proceeding of the eight international conference on 3D Web technology, 161 172. CYCORE, 2004. Cult3d. www.cult3d.com. DEERING, M. 1995. Geometry compression. Computer Graphics, 13 20. GRABNER, M. 2003. Webcame: A light-weight modular client/server multiresolution rendering system. Proceeding of the eight international conference on 3D Web technology, 63 72. HILTON, M. L., JAWERTH, B. D., AND SENGUPTA, A. 1994. Compressing still and moving images. Multimedia Systems 2, 5, 218 227. HOPPE, H. 1996. Progressive mesh. ACM SIGGRAPH 1996, 99 108. JPEG. 2000. JPEG 2000 Part I Final Committee Draft. KHODAKOVSKY, A., SCHROEDER, P., AND SWELDENS, W. 2000. Progressive geometry compression. ACM SIGGRAPH 2000, 271 278. LOUNSBERY, J. M. 1997. Multiresolution Analysis for Surfaces of Arbitrary Topological Type. PhD thesis, University of Washington. MACROMEDIA, 2004. Shockwave3d. www.macromedia.com. MOFFAT, A., AND WITTEN, I. 1998. Arithmetic coding revisited. ACM Transactions on Information Systems 16, 3, 256 294. MPEG, 2004. Mpeg standards. www.chiariglione.org/mpeg. SAID, A., AND PEARLMAN, W. 1996. A new fast and efficient image codec based on set partitioning in hierarchical trees. IEEE Transactions on Circuits and Systems for Video Technology 6, 3, 243 250. SHAPIRO, J. 1993. Embedded image-coding using zerotrees of wavelet coefficients. IEEE Transactions on Signal Processing 41, 12, 3445 3462. STOLLNITZ, E. J., DEROSE, T. D., AND SALESIN, D. H. 1996. Wavelets for Computer Graphics. Morgan Kaufmann. SWELDENS, W. 1996. The lifting scheme: A custom-design construction of biorthogonal wavelets. Applied and Computational Harmonic Analysis 3, 2, 186 200. TAO, H., AND MOOREHEAD, R. J. 1994. Progressive transmission of scientific data using biorthogonal wavelet transform. Proceedings of Visualization, 93 99. TAUBIN, G., AND ROSSIGNAC, J. 1998. Geometry compression through topological surgery. ACM Transactions on Graphics 17, 2, 84 115. TAUBIN, G. 1999. 3d geometry compression and progressive transmission. Eurographics State of the Art Report. VIEWPOINT, 2004. Vet. www.viewpoint.com.

WEB3D-CONSORTIUM, 1997. The vrml specification. www.web3d.org/x3d/specifications/vrml/iso-iec-14772-all. WEB3D-CONSORTIUM, 2003. The extensible 3d specification. www.web3d.org/x3d/specifications/iso-iec-19775-fdis- X3dAbstractSpecification.

Figure 6: B-Spline surface with threshold 0%, 20% (first row), 60%, 100% (second row), Catmull-Clark surface with threshold 0%, 20% (third row), 60%, 100% (fourth row).