Particle-based non-photorealistic volume visualization Abstract Non-photorealistic techniques are usually applied to produce stylistic renderings. In visualization, these techniques are often able to simplify data, producing clearer images than traditional visualization methods. We investigate the use of particle systems for visualizing volume datasets using non-photorealistic techniques. In our VolumeFlies framework, user-selectable rules affect particles to produce a variety of illustrative styles in a unified way. The techniques presented do not require the generation of explicit intermediary surfaces. The visualization of large 3D volumetric datasets is an important challenge. Commonly, these visualizations use models based on reality. However, recently it has been shown that the use of illustrative techniques may provide more insight (e.g., [1, 3] ). Non-photorealistic rendering (NPR) focuses on increasing the expressiveness of computer graphics by incorporating techniques adapted from traditional art and illustration. By removing unimportant details and visual clutter, NPR can direct the viewer's attention towards the most important aspects of an image. Alternatively, NPR methods can be used to provide context to other types of visualization.. In Fig. 1 we have used different illustrative techniques to show both focus (skull) and context (skin). The sparseness of the selected pen-and-ink styles provides a good alternative to the translucency commonly used in methods like direct volume rendering. The image shown was rendered at interactive speeds, enabling easy exploration of the data.. In existing research, surface-based NPR techniques are often adapted to work on surfaces extracted from the scientific volume datasets, such as iso-surfaces. These techniques require a geometrically defined surface. Another commonly used approach is direct volume rendering (DVR). Here, non-photorealistic techniques, such as lighting models, are used to enhance features in the image (e.g., [2, 3, 10] ). DVR is able to visualize ranges of data rather than just a single surface, but designing good transfer functions (which map data values to colors and opacities) is far from trivial. Point-based methods, without using explicit surface representations, have become increasingly popular in computer graphics (see, for example, [15] ). Particles, like points, are entities encapsulating a 3D position and related information. However, particles are more general, as their visual representation can be selected freely. In this article, we therefore explore a purely particle-system-based approach to volume visualization using NPR techniques. Particle systems offer simplicity and flexibility, and have been used as the basis for specific NPR techniques in the past (e.g., [7] ). We investigate the appropriateness of a particle system for the visualization of volumetric data. The use of particles enables us to visualize surfaces and ranges of data with relatively low processing costs (enabling an interactive system). Particles offer a way of visualizing volume data more directly and flexibly than surface-based approaches.. We introduce the VolumeFlies framework, which is based on particle systems that operate directly on the dataset. Different illustrative visualization techniques can be implemented within this framework by using different rules that affect properties of the particles, such as their position and appearance. Our framework is inspired by the smart particle concept by Pang and Smith [20] . The smart particles are a combination of particle systems and behavioral animation. It allows particles to be programmed to actively seek and visualize specific features in a dataset.. This concept was also successfully applied to shape modeling [26] .. We aim to show that a particle-based approach to volume visualization results in a flexible system and a unified way of describing various NPR techniques. We contribute several new approaches for particle-based illustrative visualization.. In the following, we first give an overview of research related to our work. Next we present our framework and shortly discuss the pre-processing steps common to all visualizations. We then present a new hidden surface removal algorithm for particles, followed by the various non-photorealistic techniques that have been implemented in our framework. Finally, we present and discuss results obtained with our prototype implementation of the framework, and give possible directions for future research. We have discussed a framework for particle-based nonphotorealistic volume visualization. Our main contributions are:. -The VolumeFlies framework, a flexible and scalable framework for non-photorealistic rendering of volume data, based on particle systems and operating directly on the voxel data. We have demonstrated that the framework supports various styles in a unified way, including stippling, hatching and silhouette extraction.. Other styles, such as the painterly rendering styles in [7] , could also be easily implemented within the same concepts. -A new hidden surface detection algorithm for surfaces rendered using particles. This method does not require the construction of an explicit geometric representation of the surface and can be applied at interactive speeds. -New techniques for NPR and visualization, including a simple density-based shading algorithm, silhouette approximation methods and a direction field smoothing algorithm for hatching based on principal curvature directions, which uses the shape index to indicate the local suitability for hatching.. Non-photorealistic methods for data visualization, such as the ones presented in this article, may be used to simplify visualizations in cases where "realistic" methods would clutter the image. They are by no means a replacement for methods such as DVR. Rather, they should be considered a useful addition, as each has its own advantages and disadvantages. We expect that nonphotorealistic methods are particularly suitable to provide context for more realistic visualizations, as their inherent simplicity will serve not to distract the viewer from the focus of such an image.. We also conclude that the use of particles presents a useful alternative to traditional surface-based methods. The flexibility presented by particles combined with the advantages of working directly on the data may present new possibilities for data visualization, and allows easy implementation of many NPR techniques.. However, there are still topics for further research. For instance, it may be useful to adapt the density of particles to certain situations. Examples are modifying density when zooming in order to ensure a constant tone, to adapt it according to local surface properties, such as curvature, or using user-defined focus regions to control density and/or other visualization parameters. Also, as shown in our experiments with alternative feature location rules, particles do not necessarily have to be on the same surface. Further research is required in order to adapt our techniques for optimally visualizing ranges of values, as is possible with DVR. Finally, the current implementation of the framework does not take advantage of programmable graphics hardware. We are working on an implementation of the framework which uses graphics hardware in order to allow for interaction during the preprocessing stages and improve the overall performance. The algorithms described in this article have been implemented in C++ using the OpenGL 3D graphics API [5] . The resulting system allows a user to easily configure a number of sets of particles within a volume dataset, each of which can have its own visualization technique and parameters. Different techniques can be combined to visualize multiple features in a volume dataset. Figure 13 shows a CT dataset of a hand visualized using our framework. The focus of the image, the bones of the hand, are visualized using a traditional iso-surface rendering. This is rendered by splatting with a dense set of realistically shaded particles. The surface is emphasized in the image using silhouettes. This is combined with principal-curvature directed hatching in Fig. 13a and c in order to better illustrate the shape of this surface. Alternatively, stippling and silhouettes can be used to show the interior structure of the surface (Fig. 13b) . Context is provided by a visualization of the skin using its silhouette, and also stippling in Fig. 13a and c. Figure 13a and d also show the arteries in the hand (using accurate silhouettes based on curvature).. Our framework is flexible enough to produce visualizations in many styles and variations, similar to results of surface-based techniques. Our current implementation is limited to visualizing iso-surfaces. However, the methods presented can be extended to other types of surfaces if the required derivative properties (surface normal and in some cases curvature) are available. The visualization of ranges of data (rather than iso-surfaces) leaves room for improvement. Currently, these techniques seem most suitable for quickly previewing datasets. However, due to the limited amount of particles used, the resulting images offer less detail than the volumetric visualizations as used by Lu et al. [17] .. DVR images often look fuzzy; transparent structures in these images may clutter the image, especially when one is mainly interested in specific surfaces within the volume. In these cases, the sparseness of our NPR techniques may offer a better alternative. Because only simple geometric primitives were used to render our results (points and lines), these two types of visualizations may also be easily combined, for instance in a focus/context type of visualization. For example, Fig. 13a, c and d show NPR combined with a surface shaded using more classical techniques.. The system runs at interactive speeds (with the exception of the pre-processing steps), allowing a user to immediately observe the result of changing most of the visualization parameters. Table 1 gives an overview of the performance of the (unoptimized) prototype implementation, for some of the images presented in this article. All datasets used were in the range of 256 3 voxels. Stages 1 (feature location) and 2 (particle manipulation) are pre-processing steps (executed once per dataset) while Stages 3 (filtering) and 4 (rendering) are executed during interactive rendering when certain parameters are changed.

O O O B O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Query execution techniques for caching expensive methods Object-Relational and Object-Oriented DBMSS allow users to invoke time-consuming ("expensive") methods in their queries. When queries containing these expensive methods are run on data with duplicate values, time is wasted redundantly computing methods on the same value. This problem has been studied in the context of programming languages, where "memoization" is the standard solution.In the database literature, sorting has been proposed to deal with this problem. We compare these approaches along with a third solution, a variant of unary hybrid hashing which we call Hybrid Cache. We demonstrate that Hybrid Cache always dominates memorization, and significantly outperforms sorting in many instances. This provides new insights into the tradeoff between hashing and sorting for unary operations. Additionally, our Hybrid Cache algorithm includes some new optimization for unary hybrid hashing, which can be used for other applications such as grouping and duplicate elimination.We conclude with a discussion of techniques for caching multiple expensive methods in a single query, and raise some new optimization problems in choosing caching techniques. Object-Relational and Object-Oriented Database Management Systems allow users to register their own functions or "methods", and invoke these methods in declarative queries. User-defined methods can be arbitrarily time-consuming, so minimizing the amount of time spent in these methods is an important factor in improving the efficiency of query processing.. In previous work we have focused on query optimization techniques to appropriately place time-consuming ("expensive") predicate methods in a query plan [HS93, He194] . However, query optimization is only part of the problem; query execution techniques must also be enhanced to handle expensive methods, whether they appear in predicates (SQL's WHERE and HAVING clauses), or in other parts of a query (e.g. the SELECT, GROUP BY, and ORDER BY clauses.) In this paper we consider query execution techniques to minimize the impact of expensive methods wherever they appear *Current address: University of California, Berkeley, EECS Computer Science Division, 387 Soda Hall #1776, Berkeley CA 94720-1776. This work was fonded by NSF grant IRI-91 57357.. Permission to make digital~ard copy of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage, the copyright notice, the title of the publication and its date appear, and notica is given that copying is by permission of ACM, Inc. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. SIGMOD '96 6/96 Montreal, Canada 0 1996 ACM 0-89791 -794-419610006.. .$3.50 in a query. In particular, we examine execution techniques that prevent a method from being computed more than once per query on the same input value,. As an example of the problem, consider the following SQL query, which displays a thumbnail sketch of photos used in advertisements:. SELECT thumbnai 1 ( product_ image ) FROM advert i sements WHERE product_name = ' Brownie' ;. The product.hage field is a reference to a multi-megabyte image object. The thumbnai 1 method reads in this object, and produces a small version of the image.. Reading and processing the object can be quite time-consuming, and hence thumbnail can be very expensive. Since a given product may have many different advertisement layouts with the same photo, thumbnai 1 may need to be computed many times on the same image object. It would be wasteful to actually invoke thwnbnai 1 on each reference to an image. Instead, we would like to cache the result of thumbnai 1 the first time it is called on a reference to an image, Then each subsequent time that thurnlmai 1 is called on a reference to the image, we could use the cached result instead of re-reading and re-processing the image.. The problem of redundant method invocation can even arise in queries where the method is invoked on a duplicate-free input, such as the key of a relation. This is because optimization techniques such as Predicate Migration [HS93] can postpone expensive predicate methods until after joins are performed. The join operation often produces duplicate copies of its input values; this is even possible if there are no duplicate values in either input. As a result, intelligent optimization of queries with expensive predicates further motivates intelligent execution techniques for such queries. This paper explores query execution techniques to do method caching efficiently.. We begin by considering algorithms to do caching for a single expensive method over relations of arbitrary size. We review two well-known caching algorithms -memorization and sorting -and present a third approach based on hybrid hashing, which we call Hybrid Cache. Hybrid Cache includes some modifications to traditional unary hybrid hashing, which can be applied to grouping and duplicate elimination as well as caching. We also discuss the interaction between these modifications and hybrid hash join techniques.. We implemented all three caching algorithms in the Illustra Object-Relational DBMS [11194] , and we present a perfor-mance study of our implementation. 3. There are tradeoffs between Hybrid Cache and sorting for non-predicate methods.. In our analysis of the tradeoffs between Hybrid Cache and sorting, we demonstrate that the cost of hashing is based on the number of distinct values in the input relation, while the cost of sorting is based on the number of tuples in the input relation. This makes hashing more attractive than sorting in many cases. However, we also find that the performance of hashing is dependent on the size of the method output, while the performance of sorting is not, which is why sorting can outperform hashing in some situations involving non-predicate methods. Although the similarities between sorting and hashing have been studied previously in some detail (particularly for joins), the results presented here highlight tradeoffs that had not been noted before, We also present techniques to further accelerate queries with multiple expensive methods.. This leads to a number of questions relating to the challenge of integrating method caching with query optimization.. Although this paper focuses on query execution techniques only, we outline directions for further research in query optimization for caches. avoids redundant computation by first computing the (duplicate-free) set of all input values to a correlated subquery, then feeding all the distinct input values into the subquery at once, and finally joining the result of all the subquery computations to the outer query block. This technique also allows the input to be handled in a set-oriented fashion, as opposed to the standard "tuple-at-a-time". invocation of a correlated subquery. Note however, that unlike subqueries, user-defined methods are necessmily invoked a tuple at a time. As a result, magic rewriting is not as effective for expensive methods as the techniques presented in this paper: the cost of forming the duplicate-free input set is equivalent to the cost of building a method cache, and on top of this cost magic rewriting requires an additional join and possibly also an additional materialization of the "supplementary" input [MFPR90] .. For expensive subqueries, there are tradeoffs between magic and caching. Seshadri et al. propose new techniques for cost-based optimization of magic [SHP+96], which can be extended to the problem of choosing whether to use magic or caching for subqueries in a query plan. Discussion of using magic sets techniques for queries with multiple expensive functions appears in Section 6.3. This paper studies the problem of avoiding redundant method invocation during query processing. Three algorithms are considered for caching method results: memorization, sorting, and a variant of unary hybrid hashing which we call Hybrid Cache. A performance study in Illustra demonstrates that memorization is ineffective in general, while Hybrid Cache dominates both of the other algorithms for expensive predicate methods. Non-predicate expensive methods can have arbitrary-sized outputs, and the study demonstrates that for methods with large outputs sorting is often preferable to Hybrid Cache. The variations we develop on hybrid hashing apply not only to caching, but also to other applications of unary hybrid hashing such as grouping for aggregation and duplicate elimination. We recommend that both sorting and Hybrid Cache be implemented in extensible Object-Relation and Object-Oriented database systems. It is attractive to simply use sorting for all expensive methods, since code for sorting is typically already present in most systems. We discourage this decision, however, since sorting is out-performed by Hybrid Cache for the common case of expensive predicates. If methods are always extremely expensive, then the difference between sorting and Hybrid Cache may often be overshadowed by method processing costs, But for methods which are only moderately expensive, appropriate use of Hybrid Cache will provide noticeable improvements in performance for inputs with many duplicates.. We also present a number of additional techniques for handling multiple methods in a query, which are designed to streamline the solution of chaining multiple Hybrid Cache andlor sort nodes together. Implementing these techniques is a second-order issue, since they are applicable only to complex queries with multiple expensive methods.. For a high-performance extensible system, however, handling such queries as efficiently as possible may prove to be very important. As a first step, it is relatively simple to identify that multiple methods on the same input variables can be cached by a single operator. Further optimization, especially those involving magic sets, require significantly more work and are much less generally applicable; as a result, they may only be appropriate for high performance systems. If necessary, database users can achieve these optimization in more basic systems by rewriting their queries or methods.. Additional work is needed to clarify the relative importance of the techniques for multiple methods, and to capture the costs of caching appropriately in a query optimizer. A careful treatment of optimization and caching will require solutions to at least three new problems. First, the cost of caching needs to be captured in the optimizer and integrated with the predicate placement algorithm.. The only previous optimization work which captured the presence of caching assumed that the cost of caching was negligible [He194]; this assumption may be acceptable in most cases, but this has yet to be determined. Second, the optimizer must be enhanced to choose which caching algorithm to use (if any) for different method inputs and outputs, taking into account issues of "interesting orders" [SAC+79] . Third, the optimizer must consider cache sharing, cache ordering, and magic sets techniques.. As an additional challenge, it would be interesting to integrate the caching ideas in this paper with previous work on persistent caches, function indices, and common subexpression identification.

B O O O O O O O O B O O B O O O O O O O B O B O O O O O O O B O O B O O O O O O O O O B O O O O O O O B O O O O B O O O O O B O B O O O O O O O O O O O O O O O O O O O O O B B O O O B B O B O B B O O O O O O B O O O O O O O O O O O B O B O O O O O B B B O O O O O O B B O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B B O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O B O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O B O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O B O O O B O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O B B O O O B B B B O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O B O O O O O O O O O O B B O B O B O O O O B O O O O O O O B O O O B O O O O B O O O O O O O O O O B O O B O O O B O O O O O O O O O O O B O O O O O O O B O O O O O B O O O O O B O O B O O O O O O O O O O B O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O B O O O O O O B O O O O O O O O O O B O O B O O B O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O B O O B O O O O O O O B O O B O O O O O B B O O O B B O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B B O O O O O B B O O O O O O O O O B O O B B O O O O O O O O O O O O B O B B O O O O O O B B O O O O O O O B O O O O O O O B O O O O O O O O O O O O O B O O O B B O O O O O O O O O O O O O O O O O B O B B O O O O O B O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O B O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O


The Ergodic Capacity of Phase-Fading Interference Networks We identify the role of equal strength interference links as bottlenecks on the ergodic sum capacity of a K user phase-fading interference network, i.e., an interference network where the fading process is restricted primarily to independent and uniform phase variations while the channel magnitudes are held fixed across time. It is shown that even though there are K(K − 1) cross-links, only about K/2 disjoint and equal strength interference links suffice to determine the capacity of the network regardless of the strengths of the rest of the cross channels. This scenario is called a minimal bottleneck state. It is shown that ergodic interference alignment is capacity optimal for a network in a minimal bottleneck state. The results are applied to large networks. It is shown that large networks are close to bottleneck states with a high probability, so that ergodic interference alignment is close to optimal for large networks. Limitations of the notion of bottleneck states are also highlighted for channels where both the phase and the magnitudes vary with time. It is shown through an example that for these channels, joint coding across different bottleneck states makes it possible to circumvent the capacity bottlenecks. The capacity of Gaussian interference networks is an active area of research in network information theory. Three vastly different perspectives have been used to approach this challenging problem.. 1) Elemental Networks: The focus is on small networks -small number of users, finite SNRin classical settings such as the two user interference network. This approach is most useful for exploring the microscopic details of optimal coding schemes. The goal is to obtain exact capacity characterizations, or capacity approximations within a constant number of bits. A representative recent result of this approach is the capacity characterization of the 2 user interference network that is accurate to within 1 bit for all channel parameters [1] . A limitation of the elemental approach is that extensions to more general settings are not straightforward. For example, it has been shown that extensions to more than 2 users or fading channels require fundamentally new concepts not encountered in the classical two user scenario. Specifically, extensions to more than 2 users involve the new concept of interference alignment [2] , while extensions to fading channels have to deal with the inseparability of parallel interference networks [3] . 2) Degrees of Freedom: The focus is on networks with arbitrary but finite number of users and asymptotically high signal and interference strengths relative to the noise floor at each receiver [4] , [2] . This approach, essentially, offers insights into the scheduling/medium-access problem by identifying optimal ways of sharing signaling dimensions among competing users. The goal is to obtain capacity approximations within o(log(SN R)), i.e., whose accuracy approaches 100% as SNR approaches infinity. A representative result of this approach is the degrees of freedom arXiv:0902.0838v2 [cs.IT] 10 Mar 2012 characterization of the K user time-varying/frequency-selective interference network [2] C Σ = K 2 log(SNR) + o(log(SNR)). where C Σ is the sum-capacity of the network, K is the number of users and SNR is the signal to noise power ratio. A limitation of this approach is that while the degrees of freedom characterizations are dependent on the number of users through the capacity pre-log, they cannot be directly used to identify scaling laws with the number of users for any finite SNR. For finite SNR, the o(log(SN R)) approximation error term can contain potentially arbitrary dependence on the number of users. 3) Network Scaling Laws: The focus is on large networks, with the number of nodes approaching infinity [5] , [6] . This approach, essentially, offers fundamental insights into both scheduling (dense networks) and routing (extended networks) issues. The goal is to obtain approximations of the logarithm of the capacity within o(log(K)). A recent representative result from this approach is the characterization log(C Σ ) = log(K) + o(log(K)). for a dense network of K users [6] . A limitation of this approach is that the dependence on SNR is entirely lost in this perspective. In this work, we explore the exact ergodic capacity of an interference network, with arbitrary number of users and arbitrary SNR, albeit with the limiting assumption that the fading process is restricted primarily to phase variations while the channel magnitudes are held fixed. Combining the achievability results based on the recently proposed ergodic interference alignment scheme [7] with a converse argument based on a notion of bottleneck states introduced in this work, we find that the ergodic setting is surprisingly tractable and allows accurate and simple network capacity characterizations for broad classes of interference networks including many cases commonly considered. For large, dense networks it also provides a scaling law:. In other words,. i.e., for large networks the capacity per user converges in probability to 1 2 log(1 + 2SNR). Note that the dependence on the number of users K as well as SNR is explicit here. For several networks of interest we show that this relationship represents the exact non-asymptotic (i.e., arbitrary SNR, arbitrary K) capacity of the network as well. Ergodic interference alignment has recently been shown to achieve (slightly more than) half the interference-free capacity for an interference network at any SNR. We explore the optimality of ergodic interference alignment for ergodic capacity of an interference network where the channel coefficients undergo primarily phase-fading, i.e., the channel magnitudes are held fixed, while the phase terms are assume to vary according to an i.i.d. uniform distribution. The question arises because it is known that strong interference can be cancelled and weak interference can be treated as noise, without significant penalty to the users' rates. Thus, half of the interference-free rate is not necessarily optimal. The main insight offered in this paper is that network capacity is determined not by the weak or strong interferers but by the equal strength interferers. Thus, we identify equal strength interferers as the bottlenecks for network capacity. It is shown that very few bottleneck links suffice to determine the capacity of the network regardless of the strengths of the remaining links. This notion is formalized in the definition of a minimal bottleneck state. As an example, for a 10 user interference network, 5 disjoint bottleneck links determine the capacity regardless of the strengths of the remaining 85 interfering links. This capacity is achieved by ergodic interference alignment. We also consider a large network and show that it is always close to a bottleneck state, so that ergodic interference alignment is close to capacity optimal for large networks.. The impact of time-variations in the magnitudes of channel coefficients is explored next. The notion of bottleneck links is found to be insufficient to determine capacity bounds in this setting. The limitations of bottlenecks for channels with time-varying strengths are intrinsically related to the question of inseparability of parallel interference networks. It is shown in [3] , [10] that the capacity of timevarying interference networks is in general higher than the average of the capacity of the channel for each individual channel state, i.e., joint coding across channel states outperforms separate coding for each channel state. While the inseparability of bottleneck states is an important obstacle that prevents the generalization of the capacity bounds presented in this work to the case of time-varying channel magnitudes, there are some intriguing separability properties of bottleneck states highlighted in [15] that may be useful to make further progress in this direction. We start by summarizing the background necessary for this work, which consists of three key ideas -the general idea of interference alignment, the inseparability of interference networks and a specific interference alignment scheme called ergodic interference alignment.

O O B O O O O O O O O O O O O O O O O O O O B O O O O O B I O O B I O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O B O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B I O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B I O O O O O O O O O O O O B O O B I O O O O O O O O O B I O O B O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B O O O O O O O O O O O B O O O O B I O O O O O O O O O O O O O O O O O O O O B I O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B I O O O B I


Social Interaction in YouTube Text-Based Polylogues: A Study of Coherence Since YouTube was launched, its emblematic video-sharing facility has attracted considerable attention as a social networking system of cultural production. In addition to vlogging, YouTube offers a text facility through which YouTubers share and negotiate opinions. However, research into the latter is scarce, especially within language-based disciplines (Androutsopoulos & Beiβwenger 2009; Zelenkauskaite & Herring 2008). This article contributes to addressing this imbalance by focusing on YouTube text-based ‘conversation’ (Herring 2010a). Specifically, it examines coherence in a corpus of YouTube postings in Spanish. Although coherence has been the object of much academic debate in other forms of computer-mediated communication, no empirical analysis of coherence in YouTube text has been undertaken to date. Results underline the conversational potential of this facility. © 2012 Wiley Periodicals, Inc. We approached our analysis of coherence in text-based YouTube polylogues by looking at participation and adjacency as problems to coherence and at turn-management and cohesion as coherence-inducing mechanisms which could be employed to solve such potential problems. The picture that has emerged regarding participation is complex, revealing different patterns for each of the two polylogues under examination. Notwithstanding these differences, participation was massive, unequal, and fluid in both data sets. These three properties are generally considered problematic for coherence-making processes. Yet in our data, they seemed to be overcome by the considerable adjacency displayed across postings. Since adjacency has been claimed to play a key role in sustaining coherence, and a great number of turns in the data were adjacent, we can conclude that communication over the YouTube textcommenting facility was far from incoherent. This view was further confirmed by our study of turn management signals and cohesion devices which showed that these coherence-inducing mechanisms were very frequent in the data. Of special interest was YouTubers' preference for managing turns through turn-entry/exit devices and cross-turn addressivity signals instead of employing such strategies as cross-turn quoting and backchannelling. This finding was especially relevant within the context of online communication, since the latter two devices have often been hailed as the most representative ways in which participants adapt to the sequential requirements of text-based CMC in their search for coherence (Herring, 1999) . However, in our data, YouTubers chose to adapt to the electronic context by resorting to other turn-management signals. This, therefore, revealed the existence of variability regarding turn-management signals across different forms of CMC (Bou-Franch, 2011) . Regarding devices for cross-turn cohesion, the data showed that, like in other online environments, YouTubers prominently drew on lexical means. Further, cross-turn cohesion devices were pervasive in the data. Thus, albeit cohesive ties alone do not determine the coherence of a text (Korolija, 2000; Simpson, 2005) , if cohesion is considered to be the glue of discourse (Berglund, 2009; Erickson, Herring, & Sack, 2002) , our findings suggest that the postings of YouTube polylogues are sufficiently connected so as to constitute a space for online interaction rather than a series of disconnected comments.. Of particular significance were the differences in participation patterns in the two polylogues mentioned above. Although participation was massive in both cases, the higher number of contributors in the DV polylogue led us to expect more problems and adaptive resources in this polylogue than in the AB data (cf. Herring et al., 2009; Honeycutt & Herring, 2009; Zelenkauskaite & Herring, 2008 ). Yet, patterns of adjacency, turn-management and cohesion were very similar for the two data sets. This finding is significant in that it contributes to demythologising the extent to which the number of participants, their different interactional involvement, and the changing configuration of participation interfere with coherence. As our study reveals, YouTubers found ways around the problems to produce collaborative, coherent interaction in the two polylogues that were the object of study.. YouTube interaction patterns were finally subjected to qualitative examination. This revealed a number of different interaction patterns combining both the linear, orderly features typical of face-toface, dyadic interaction as well as nonlinear patterns common in asynchronous interaction which were described as 'networked' . Interaction patterns included chained patterns of adjacent turns, multiple response patterns of adjacent and nonadjacent turns, serial patterns of video turns and interaction patterns sprinkled with video turns. The coherence of both linear and networked patterns was assessed drawing on participants' contributions. Importantly, networked patterns did not interfere with coherence, which supports the claim that ''coherence is created and maintained despite disrupted turn adjacency'' (Berglund, 2009, p. 4) ; after all, linear sequencing may not be as relevant for coherence in some online contexts as it is in oral interaction (cf. Lapadat, 2007; Berglund, 2009) . Electronic users who, like YouTubers, have access to a persistent textual record of the interaction, have been argued to activate different discourse processing strategies that are more suitable for text-based CMC (Herring, 2010a) . Our study of linear and networked patterns, thus, contributes to advancing knowledge of communication containing discontinuous, nonlinear features -a type of communication that remains short supply (Sannino, 2006) .. The present study also responds to a recent call for methodological reflection in computermediated discourse studies. More specifically, we view our contribution in terms of the need to adapt and reconceptualize extant concepts and methods as a necessary step in the development of computermediated discourse (cf. Beiβwenger, 2008; Androutsopoulos & Beiβwenger, 2009 ). In particular, this study has applied an innovative, multilevel methodology that draws on the notion of polylogue, and has characterized text-based YouTube interaction as a doubly-articulated polylogue, thus moving away from categories designed for the study of dyadic, face-to-face conversation. Treating text-based YouTube interaction as polylogal communication, and considering its double articulation, provides a better means to study multiple participant, mediated, intergroup communication (cf. Garcés-Conejos Blitvich, 2010b , Lorenzo-Dus et al., 2011 .. Future research in other YouTube polylogues and in languages other than Spanish should explore the form that textual coherence takes, the contextual variability of coherence-maintaining resources and the extent to which these are technologically and socioculturally constrained. Moreover, our study has other implications for future research in that it lays the foundation on which to expand current understanding of coherence in this complex social network by considering both textual as well as audiovisual responses. Burgess and Green (2009) recently argued that ''YouTube is a potential site of cosmopolitan cultural citizenship -a space in which individuals can represent their identities and perspectives, engage with the self-representations of others, and encounter cultural difference'' (p. 81). Indeed, the YouTube universe constitutes an unquestionable force within contemporary popular culture, a universe created collectively by all its participants. As we have noted throughout this paper, this universe is inhabited not only by video-producers and viewers but also by an important group of YouTubers that engage in textual interaction. Our study has shown that YouTube's text-commenting facility provides a space for coherent textual discussion, an online space, therefore, for social interaction; this needs to be seen as contributing to the participatory culture of YouTube (Burgess & Green, 2009 5 The notion of double articulation comes from the context of broadcasting and refers to ''a communicative interaction between those participating in discussion, interview, game show or whatever and, at the same time, is designed to be heard by absent audiences'' (Scannell, 1991, p. 1) . The 'imagined ''mass'' of ordinary users' of YouTube polylogues resembles, in some ways, the listening and viewing audiences in broadcasting contexts. Conceiving of them as part of the wider, distributed recipients of YouTube interaction contributes to addressing calls for moving the analysis of this CMC ''beyond the screen'' (Androutsopoulos & Beiβwenger, 2009 ). 6 GENTEXT is a research group, based at the University of Valencia -Spain, that examines gender inequality in society through the analysis of different discursive data. 7 For a discussion of the content of the polylogues, and specifically of the discursive construction of domestic violence in YouTube, see Bou-Franch, Lorenzo-Dus, and Garcés-Conejos Blitvich (2010). 8 All translations into English in this paper are by its authors. 9 We use the term turn to refer to participants' messages or contributions. However, we are aware that the notion of turn was developed for the analysis of face-to-face conversation and that, therefore, turn in conversation is not equivalent to turn in YouTube interaction. For further insights into the notion of turn in CMC see Beiβwenger (2008) . 10 Since YouTube's new messages are posted in reversed chronological order, we decided to number comments also in a 'reversed' manner, that is, beginning with the oldest post and then moving up. 11 Throughout 2010, and after the data collection process for this project ended, YouTube implemented several changes to its interface, which included the way of displaying replies to other comments. In replying to another comment, the tool now automatically inserts the name of the user object of the response, preceded by the @ sign. Responding comments are no longer indented to the right albeit they are still placed below the comment they connect with. 12 TEN -TEX: t (149) = 4.266, p <.001; TEN -CTA: t (149) = 1.655, p<.001. 13 t (149) = −3.630, p <.001.

O O O B O O O O O B O B O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O B O O O O B O O O O O O O O O O O O O O O O O O B O B O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Multiple-antenna capacity in the low-power regime Abstract-This paper provides analytical characterizations of the impact on the multiple-antenna capacity of several important features that fall outside the standard multiple-antenna model, namely: i) antenna correlation, ii) Ricean factors, iii) polarization diversity, and iv) out-of-cell interference; all in the regime of low signal-to-noise ratio. The interplay of rate, bandwidth, and power is analyzed in the region of energy per bit close to its minimum value. The analysis yields practical design lessons for arbitrary number of antennas in the transmit and receive arrays. For realistic channels and noise models, no insightful expressions for the capacity as function of the had been found thus far. As shown in this paper, however, in the lowregime it is possible to circumvent the computation of entirely by posing the capacity as function of . Since is highly linear at low , its characterization requires only two parameters, namely, the at which the capacity becomes zero and the slope therein. Throughout the paper, we have derived expressions for these parameters using realistic channel and noise models and, from these expressions, we have learned how the single-user capacity is affected by the existence of antenna correlation, different polarizations, a Ricean term, fading and correlation within the noise, etc. Moreover, these lessons have been learned without the need to invoke a large number of antennas and they are supported by experimental data [64] . We have found that at low we can draw the following conclusions.. • The reduction in capacity caused by antenna correlation can be uniquely quantified through a scalar quantity for each of the arrays, transmit and receive. These quantities, which we refer to as the correlation numbers of the transmit and receive arrays can be easily computed.. • With correlated antennas, the capacity in Rayleigh channels does not grow-unlike in the canonical case-linearly with the number of antennas. In fact, the fraction of canonical capacity achievable in the presence of correlation diminishes, for most array structures, monotonically with the number of antennas. (This reduction is sustained by empirical data even beyond the lowregime.). • The bandwidth expansion factor brought about by antenna correlation in Rayleigh fading equals. In particular, when one array has two antennas with correlation coefficient , the bandwidth expansion factor is equal to if the other array has uncorrelated antennas, and equal to if the other array also has two -correlated antennas.. • If either the transmitter or the receiver has a single antenna, the capacity is higher in strong Ricean conditions than in Rayleigh fading.. • If both transmitter and receiver have two antennas, the capacity is independent of the Ricean factor.. • Modeling outside interference (from other sectors or cells) as AWGN may lead to very inaccurate estimates of the actual capacity. With such interference being spatially colored and subject to fading, the capacity is always higher-sometimes much higher-than in the presence of an equivalent amount of AWGN.. • Both color and fading within the noise enhance the capacity. The impact of noise color relates to the ratio between the number of significant degrees of freedom in the interference and the number of receive antennas. The impact of noise fading, on the other hand, is only significant when both are small.. • Except to overcome thermal noise in systems wherein the orientation of both transmitter and receiver can be controlled, orthogonal polarizations should be used before resorting to spatial diversity.. It is worth pointing out that in no way do our conclusions hinge on the choice of defining the capacity slope on a logarithmic scale. Had we instead defined it on a linear scale, similar observations would have been drawn [28] . Our proof of the various formulas presented in the paper require the evaluation of the first-and second-order moments of the trace of the product of certain random matrices. To that end, we have found it useful to invoke auxiliary results on the mixed moments of Haar-distributed matrices, which have proven useful in the development of free-probability results in the theory of large random matrices.

O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


CHuMI Viewer: Compressive Huge Mesh Interactive Viewer The preprocessing of large meshes to provide and optimize interactive visualization implies a complete reorganization that often introduces significant data growth. This is detrimental to storage and network transmission, but in the near future could also affect the efficiency of the visualization process itself, because of the increasing gap between computing times and external access times. In this article, we attempt to reconcile lossless compression and visualization by proposing a data structure that radically reduces the size of the object while supporting a fast interactive navigation based on a viewing distance criterion. In addition to this double capability, this method works out-of-core and can handle meshes containing several hundred million vertices. Furthermore, it presents the advantage of dealing with any n-dimensional simplicial complex, including triangle soups or volumetric meshes, and provides a significant rate-distortion improvement. The performance attained is near state-of-the-art in terms of the compression ratio as well as the visualization frame rates, offering a unique combination that can be useful in numerous applications. Mesh compression and mesh visualization are two fields of computer graphics that are particularly active today, whose constraints and goals are usually incompatible, even contradictory. The reduction of redundancy often goes through signal complexification, because of prediction mechanisms whose efficiency is directly related to the depth of the analysis. This additional logical layer inevitably slows down the data access and creates conflicts with the speed requirements of real-time visualization. Conversely, for efficient navigation through a mesh integrating the user's interactions dynamically, the signal must be carefully prepared and hierarchically structured. This generally introduces a high level of redundancy and sometimes comes with data loss, if the original vertices and polyhedra are approximated by simpler geometrical primitives. In addition to the on-disk storage and network transmission issues, the data growth implied by this kind of preprocessing could become detrimental to the visualization itself since the gap between the processing times and the access times from external memory is increasing.. In this article, we attempt to reconcile compression and interactive visualization by proposing a method that combines good performance in terms of both the compression ratio and the visualization frame rates. The interaction requirements of a viewer and a virtual reality system are quite similar in terms of the computational challenge but the two applications use different criteria to decide how a model is viewed and updated. Our goal here is to take advantage of excellent view independent compression and introduce distance-dependent updates of the model during the visualization. As a starting point, the in-core progressive and lossless compression algorithm introduced by Gandoin and Devillers [1] has been chosen. On top of its competitive compression ratios, out-of-core and LOD capabilities have been added to handle meshes with no size limitations and allow local refinements on demand by loading the necessary and sufficient data for an accurate real-time rendering of any subset of the mesh. To meet these goals, the basic idea consists in subdividing the original object into a tree of independent meshes. This partitioning is undertaken by introducing a primary hierarchical structure (an nSP-tree) in which the original data structures (a kd-tree coupled to a simplicial complex) are embedded, in a way that optimizes the bit distribution between geometry and connectivity and removes the undesirable block effects of kd-tree approaches.. After a study of related works (Sec. 2) focusing on the method chosen as the starting point (Sec. 3), our contribution is introduced by an example (Sec. 4), then detailed in two complementary sections. First, the algorithms and data structures of the out-of-core construction and compression are introduced (Sec. 5 and 6), then the visualization point of view is adopted to complete the description (Sec. 7). Finally, experimental results are presented and the method is compared to prior art (Sec. 8). The compression process of CHuMI begins by partitioning the space, creating a hierarchical structure called an nSP-tree in which the simplices are dispatched. In order to avoid SP-cells containing only a few triangles, an SP-cell must contain at least N min (user defined) triangles to be split. Moreover, to allow the independent decoding of any vertex with its neighborhood, the simplices whose vertices belong to several SP-cells are duplicated into each cell. We then traverse the SP-tree in postorder (a cell is processed after all its children have been processed).. In each SP-cell, incident kd-cells are progressively merged as described in Sec. 3, and the corresponding coding sequence is constructed, where geometry and connectivity codes are interleaved. Merging proceeds until the minimal precision of the SP-cell is reached: in the example given in Fig. 2 , this corresponds to one kd-cell merging in each dimension for a regular SP-cell, and 3 mergings in each dimension for the root SP-cell. When all the children of an SP-cell s have been treated, the submeshes they contain are merged together (the duplicated simplices collapse) to form the submesh associated with s, which is then ready to be treated. This process runs until a single vertex remains in the root SP-cell.. The refinement process runs backward. Figure 2 illustrates its main stages: steps 1 to 6 are similar to [1] : we start with a null precision and a single centered point. Then we sequentially read the geometry and connectivity codes from the compressed file, which progressively refine the entire mesh. In this example, when precision reaches 3 bits (in practical cases, we generally wait until precision reaches 7 or 8 bits), the space is split into 4 subspaces, and the mesh subdivided into these subspaces. Remember that border triangles and their associated kd-cells have been duplicated during the compression stage. The 4 submeshes obtained become independent, each one corresponding to a subspace called an SP-cell whose content is directly accessible from an index pointing in the compressed file. Thus we can select one or several SP-cells and read their associated refinement codes in the compressed file in order to continue the refinement process locally, depending on the camera moves. When one of them reaches its maximum precision (4 bits in our example), it is split again. This process is repeated recursively until each SP-cell in the view frustum reaches a level of precision determined by its distance to the camera. Finally, we connect the SP-cells together, handling the possible differences in resolution to prevent border triangles from overlapping, and the content of these cells is sent to the graphic pipeline. As seen in Sec. 8, the data structures and algorithms presented in this article achieve good results compared to the state of the art, at the same time as an out-of-core lossless compression method, and as an interactive visualization method for arbitrary untextured meshes (in terms of type and size), thus offering a valuable combination for numerous applications. However, we are currently improving several points, which should remove the method's main limitations. Our first perspective aims at reducing latency in the navigation stage. To achieve better performance in this respect, at least three paths can be explored: cache-oblivious optimizations, more GPU-friendly data structures such as patch-based LOD, and the intensive use of the GPU via shader programming. Furthermore, we believe that it is still possible to improve the compression ratios by introducing new predictive schemes. Secondly, although theoretically, the method can address meshes in any dimension, some important optimizations must be done to handle volume meshes in good conditions. For instance, the edge collapse and vertex unification operators have to be efficiently extended to tetrahedra. In addition, occlusion culling becomes a major issue in the volume case. Finally, CHuMI is based so far on a pure distance criterion to set the precision of displayed triangles. We think that it could be favorably extended to use a hierarchy of surface patch normals and thus enable updates according to view direction as well as distance.. supported by the French Centre National de la Recherche Scientifique (CNRS).

O O O O O O O O O O B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Multiple-description vector quantization with lattice codebooks: Design and analysis The problem of designing a multiple description vector quantizer with lattice codebook Λ is considered. A general solution is given to a labeling problem which plays a crucial role in the design of such quantizers. Numerical performance results are obtained for quantizers based on the lattices A 2 and Z i , i = 1, 2, 4, 8, that make use of this labeling algorithm.The high-rate squared-error distortions for this family of L-dimensional vector quantizers are then analyzed for a memoryless source with probability density function p and differential entropy h(p) < ∞. For any a ∈ (0, 1) and rate pair (R, R), it is shown that the two-channel distortiond 0 and the channel 1 (or channel 2) distortiond s satisfy lim R→∞d 0 2 2R(1+a) = 1 4 G(Λ)2 2h(p) and lim R→∞d s 2 2R(1−a) = G(S L )2 2h(p) ,where G(Λ) is the normalized second moment of a Voronoi cell of the lattice Λ and G(S L ) is the normalized second moment of a sphere in L dimensions. We consider the problem of designing a multiple description vector quantizer for a memoryless source with probability density function p, differential entropy h(p) < ∞ and the squared-error distortion measure. A multiple description vector quantizer encodes vectors for transmission over a two-channel communication system. The objective is to send information about the source vector over each channel in such a way that good performance is obtained when both channels work and the degradation is small when either channel fails.. It is assumed that the encoder has no knowledge about the state of a channel, i.e., it does not know whether a channel has failed or is working.. The recent interest in the multiple description problem is largely because of the application to image, video and voice communications over packet networks with nonzero probability of packet loss. The loss of a packet could be significant if it results in a loss of a large block of source samples, such as a large image block or a large block of speech. One way to improve performance is to place different encoded versions of a given block of source samples into several packets in such a way that if some of these packets are received, a degraded version of the source block may be recovered. This leads to the formulation of the multiple description source coding problem.. For the single-description problem, one of the benefits of vector quantization over scalar quantization is a reduction in granular distortion. This is because in higher dimensions it is possible to construct Voronoi cells that are more "spherical" than the hypercube. To be more specific, uniform scalar quantization coupled with entropy coding is known to have mean squared error (mse)d(R) at entropy R bits/sample satisfying [16] lim R→∞d (R)2 2R = 2 2h(p) 12 ; (1) whereas if an L-dimensional lattice Λ is used as a codebook, the distortion satisfies. where G(Λ) is the normalized second moment of a Voronoi cell of the lattice. In dimensions greater than one, lattices exist for which G(Λ) is strictly smaller than 1/12. For example, in 8 dimensions, it is possible to gain 0.66 dB by using the lattice E 8 as compared to uniform scalar quantization [11] . It is also known through a random quantizing argument [31] that quantizers exist for which the productd(R)2 2R approaches 2 2h(p) /(2πe) as the rate increases.. Furthermore, it follows from rate distortion theory [5] that no smaller value can be achieved for the above product in the limit of infinite rate. The maximum gain possible over entropycoded scalar quantization is 1.53 dB and lattices provide a useful method for closing this gap.. From now on we will restrict our attention to the case of two channels. Consider a multiple description quantizer which sends information across each channel at a rate of R bits/sample. The performance of this system is measured in terms of three distortions: the two-channel distortiond 0 , when both descriptions are available to the decoder; the channel 1 distortiond 1 , when only the first description is available and the channel 2 distortiond 2 , when only the second description is available. We will further assume thatd 1 =d 2 =d s and will refer to this common value as the side distortion. The objective is to design vector quantizers that minimized 0 under the constraintd s ≤ D s , for a given rate pair (R, R) and a given bound D s on the side-channel distortion.. It has been shown [27] that for a uniform entropy-coded multiple description quantizer, and any a ∈ (0, 1), the distortions satisfy . On the other hand, by using a random quantizer argument it was shown [28] that by encoding vectors of infinite block length, it is possible to achieve distortions . Thus by using multiple description quantization it is possible to simultaneously reduce the two-channel and side-channel granular distortions by 1.53 dB.. In single description quantization, an extra transmitted bit reduces the squared error distortion by a factor of 4 (this is seen in (1)). However, in multiple description quantization there is additional flexibility. If each R is increased by 1/2 bit, the two-channel distortion can be decreased by 2 −(1+a) and the side distortion by 2 −(1−a) , for any a ∈ (0, 1). This means that by using an extra bit, the distortionsd 0 andd s can be made to decrease by different amounts as long as the product decreases by a factor of 4.. The goal of this paper is to give constructions for closing this "1.53 dB" gap and to analyze the resulting performance gains. Our approach is as follows. From classical quantization theory, we know that the gap between scalar quantization and the rate distortion bound may be closed by using vector quantizers with lattice codebooks. Certainly, by following this approach we can also close the gap between the two-channel distortion and the rate-distortion bound. In particular, this will allow us to replace the factor (1/12) in the expression ford 0 in (3) with G(Λ), the normalized second moment of the Voronoi region of a lattice point.. The main question we address here is that of simultaneously reducingd s . How can such a reduction be achieved and what is the quantity that will replace the factor (1/12) in the expression ford s in (3)? We will show through a constructive procedure that the distortion d s can be reduced by solving a specific labeling problem. To our surprise, the quantity that replaces (1/12) is G(S L ), the normalized second moment of a sphere in L dimensions.. Letd 0 (R, L) andd s (R, L) denote the two-channel and single channel distortions at rate R for an L-dimensional quantizer. Fig. 1 summarizes the main results of the paper. In this figure we have plotted the limit of the normalized two-channel and single-channel distortions, lim R→∞d0 (R, L)/d 0 (R, 1) and lim R→∞ds (R, L)/d s (R, 1) respectively, for lattices of various dimensions. It is seen that the limit for the two-channel distortion is given by the ratio G(Λ)/G(Z), which depends on the lattice, whereas for the side distortion the limit is. , which is independent of the lattice. The problem of lattice vector quantizer design is addressed for the two-channel multiple description. The main problem in the design, a labeling problem, is solved. A systematic construction technique is developed which is suitable for general lattices. Specific constructions have been provided for A 2 and Z i , i = 1, 2, 4, 8. Finally an asymptotic analysis reveals that performance arbitrarily close to the multiple description rate distortion bound can be obtained.. Open issues related to this work are detailed constructions for other lattices, extensions to the asymmetric case and extensions to greater than two descriptions. An achievable rate region for the multiple description problem was first given in [12] and it was shown in [24] that this region coincides with the rate distortion region for a mem-oryless Gaussian source with a squared-error distortion measure. The problem of multiple description quantizer design, including a formulation and solution of the underlying labeling problem in one dimension, was presented in [26] . An asymptotic performance analysis of this quantizer was presented in [4] . A preliminary version of the work presented here was first presented in [25] .. Lattice quantizers (for the single description problem) have been extensively studied.. In [31] a random quantization argument is used to give upper and lower bounds on the performance of quantizers for a fixed dimension. Detailed descriptions of the Voronoi regions of specific lattices are given in [9] and their second moments are evaluated. Fast quantizing algorithms for lattice quantizers are given in [10] , [1] , [14] , [30] . In [15] it is conjectured that for rth power difference distortion measures, any optimal quantizer, in any dimension, has Voronoi regions that are congruent to some polytope.. Approaches to multiple description coding based on trellis coded quantization are presented in [28, 20] , those based on vector quantization are presented in [13] and approaches using forward error correction are presented in [22] .. There are also approaches to multiple description coding based on subspace methods.. One approach is to design a predictor or a transform so as to achieve a correlation structure that allows one half of the prediction error samples or transform coefficients to be predicted from the other half. Examples of this approach are presented in [19, 23, 29] .. Another approach to multiple description coding is based on using overcomplete expansions. Here the idea is to construct a redundant signal representation, in a way that allows the signal to be estimated with a controlled amount of error when the representation is incompletely received [3, 7, 17] .

O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A linear time algorithm for computing the most reliable source on a series-parallel graph with unreliable edges Given a network with n vertices and m edges where each edge has an independent operational probability, we are interested in finding a vertex of the network whose expected number of reachable vertices is maximum. Such a vertex is called a most reliable source of the network. This problem was studied by Melachrinoudis and Helander ( 1996) where an O(n*) time algorithm was proposed when the given network is a tree. In a more recent paper, Xue presented an O(n) time algorithm for this problem when the given network is a tree. In this paper, we present an O(n) time algorithm for computing the most reliable source on series-parallel graphs, using their embeddings in 2-trees. @ 1998-Elsevier Science B.V. All rights reserved A computer network or communication network is often modeled as an undirected graph G = ( V, E) where the n vertices represent processing nodes or switching elements and the m edges represent communications links (we assume standard graph-theoretic terminology [5] ). We assume in this paper that there is no node failure and that each edge {a, u} has an operational probability of p(u, a) (a failure probability of 1 -p(u, a)). Furthermore, we assume that the edge operational probabilities are independent. For a given pair of nodes u and a in the network, the probability that they are connected is the probability that there exists a working u -u communication path. A vertex that maximizes the expected number of nodes that are connected to it is a most reliable source of the network. We are interested in finding a most reliable source.. This problem was studied in Melachrinoudis and Helander [lo] where they proposed an 0(n2) time algorithm for computing a most reliable source on a tree network. In a more recent paper [20] , Xue proposed an O(n) time algorithm for computing a most reliable source on a tree network. In this paper, we present an O(n) time algorithm for computing a most reliable source on a more general kind of sparse networks -partial 2-trees. Wald and Colbourn [18] show that the class of partial 2-trees is the same as that of series-parallel graphs under the most liberal definition of the latter: No subgraph homeomorphic to the complete graph on four vertices is present. Since minimum IF1 networks are also partial 2-trees [9, 181, our result has important applications in network reliability. There has been a large literature on models and algorithms for network reliability, as evidenced by the references. We choose not to do a literature review here, since comprehensive information related to network reliability problems can be found in [6, 171 . The rest of this paper is organized as follows. In Section 2, we present some definitions and prove some lemmas that are used in our algorithm. In Section 3, we present an O(n) time algorithm for computing a most reliable source on a 2-tree with n vertices where each edge {x, y} has an operational probability p(x, y) E [0, 11. An example is also provided to illustrate the algorithm. We conclude our paper in Section 4. In this paper, we have presented a linear time algorithm for computing the expected number of reachable vertices for every vertex in a partial 2-tree with unreliable edges. Therefore, a most reliable source of the network can be found in linear time. Since partial 2-trees have several important network models as special cases, our result can be applied to many network reliability problems. The techniques used here are a combination of the techniques used in [ 18, 201 . We believe that these techniques can be applied or generalized to solve many other network optimization and network reliability problems.

O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O B O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O