Multi-user interaction using handheld projectors Recent research on handheld projector interaction has expanded the display and interaction space of handheld devices by projecting information onto the physical environment around the user, but has mainly focused on single-user scenarios. We extend this prior single-user research to co-located multi-user interaction using multiple handheld projectors. We present a set of interaction techniques for supporting co-located collaboration with multiple handheld projectors, and discuss application scenarios enabled by them. Recent advances in projection miniaturization will soon enable projectors to be carried in a pocket or even embedded in mobile devices such as cell phones and PDAs. With the ability to project information, handheld devices can overcome the inherent information-display limitations of their small embedded screens, and instead create larger displays on virtually any external surface. When coupled with appropriate tracking technologies, interaction with the displayed information can also move beyond the confines of the handheld device itself to encompass almost an entire physical environment.. Most handheld projector research to date [3, 8, 15, 16] has focused on supporting a single user. However, the larger displays generated by handheld projectors inherently afford multi-person viewing and thus have the potential to support co-located collaboration. In particular, when each user has a handheld projector, the interactivity between projectors can result in a rich design space for multi-user interaction.. Although many current handheld or portable devices have the ability to exchange data with other devices via wireless connections, the interaction required to facilitate such exchange often requires cumbersome and explicit authentication procedures. While such procedures are generally unavoidable when devices (and their users) are not physically co-located, they may be unnecessary if we can design interaction that exploits the user and device colocality to facilitate connectivity and collaboration.. Researchers have explored co-located collaboration between people using shared displays on tabletops [20, 24, 25] and walls [7, 9, 11, 22] . Since the workspace is shared between all users, information exchange and multi-user operations can be easily realized. However, these shared displays are not portable for ubiquitous use, and every user shares the same view of the workspace. Private and personalized information are not easily accommodated, and global conflicts [13] may occur, in which one user's action affects the entire shared display and disrupts other users.. In contrast, the use of multiple handheld projectors may open up a novel interaction paradigm for co-located users, in which they can share the same physical display and interaction space, while at the same time individually creating and controlling parts of the overall virtual display with their projectors. In this paper we explore the design space of multi-user interaction using multiple handheld projectors. Building on the single-user handheld projector interaction system we described in earlier work [8] , we developed a set of interaction concepts and techniques to support multiple users working in a shared physical space, each using their own projector that is spatially tracked within the physical environment ( Figure 1 This work explored concepts and techniques to support interaction between multiple co-located users using handheld projectors. Interpersonal communication and collaboration may be supported more intuitively and efficiently compared to current handheld devices. Informal user feedback indicated that our designs were promising. Our work is the first systematic exploration of the design space of multiple handheld projectors, and may provide a basis for further investigations in this area.. In addition to the general features we developed, in the future we would like to identify and experiment with higher-level collaborative applications supported by handheld projectors. We are also interested in empirically investigating how social protocols between people may evolve with the usage of handheld projectors. Finally, we plan to extensively explore the rich design space of mobile social games using handheld projectors, which may change the way people currently think of games. Handheld projectors provide interesting design challenges compared to other co-located collaborative settings such as a shared tabletop display. For example, users can create their individual displays with their projectors, allowing for easy support of personalized views, which is seldom the case in other settings. This also enabled the three-level access control we proposed as opposed to simply public v.s. private in most other systems. Users can also easily point the projector to virtually anywhere in the workspace with little physical constraints, whereas in the tabletop setting the reachability is constrained by the user's sitting position and arm length. This makes some social protocols that work in the tabletop scenario less applicable in our setting, therefore we considered alternative ways to coordinate users, especially for supporting independent work. Further, when working with handheld devices, the somewhat stable demarcation of personal and group territories used in tabletop interaction [19] is less applicable because of the constant change of users' positions. However, changes in spatial relationship between users can be exploited to facilitate subtle interpersonal interaction.. In our prototype, both projectors are connected to the same computer, thus all data transmission is done locally. In the real world, we can expect the data exchange between handheld projectors to be backed either by peer-to-peer connections such as Bluetooth or infrared, or by centralized services such as WiFi or cell phone networks. The shared workspace created by the projectors can make the background connection mechanism transparent to the users. Identity verification is achieved simply by looking at the person's face, thus eliminating the need for passwords or other complex authentication schemes.. An interesting issue is that although our system provides various ways to support privacy, in some social contexts the very fact that the user is projecting data may be perceived as an indication that the information is public, and viewed as an invitation for other people to participate. This disparity indicates that more delicate design may be needed to convey subtle privacy cues to others, without changing current social protocols. One possible solution may be complementing the projection display with the small screen embedded on the handheld device to accommodate different scenarios. However, the implicitly public nature of projected imagery suggests that handheld projectors may be an ideal platform for mobile social games, which encourages ad hoc participation and initiates social interaction between strangers.. To explore interactions of the future with current technology, we used a commercial motion tracking system to track the projectors with high precision and low latency. However, we anticipate upcoming wireless location tracking systems such as indoor GPS (possibly combined with on-projector sensors such as tilt sensors) will soon enable such tracking more cheaply and ubiquitously, so as to allow our designs to be widely deployed in near future. The Hotaru system [23] uses a static projector to simulate mobile projections. It also supports basic touch based annotation, rotation and file transfer. Beardsley et al. [3] and Raskar et al. [16, 17] introduced a computer vision approach to correct the projected image and create a stable distortion-free virtual desktop inscribed in it. Standard mouse-operations were achieved using a cursor displayed in the center of the projection. A flashlight metaphor has also been explored by several researchers [6, 8, 15] , in which the projector reveals a portion of a large virtual workspace stationary on the projection surface. In particular, Cao and Balakrishnan [8] explored a set of generic interaction techniques using this metaphor and presented techniques for defining information spaces in a new environment on-the-fly.. Much of the previous research has focused on single-user single-projector interaction, with relatively little done on supporting interaction between users using multiple handheld projectors. Cao and Balakrishnan [8] discussed how the handheld projector may support both synchronous and asynchronous communication between people, but only focused on using one projector at a time. The Hotaru system [23] supports simple file transfer between users by overlapping the projections, but is preliminary otherwise.. On the other hand, co-located collaborative groupware has been widely investigated in other settings, especially with shared displays such as walls [7, 9, 11, 22] or tabletops [20, 24, 25] . Morris et al. [13] also discussed multi-user coordination policies for co-located groupware in general. Shoemaker and Inkpen [21] explored presenting private information on a shared display by letting users wear shutter glasses, trying to overcome the limitation of one shared view across users. However, the metaphors and techniques designed for these settings may not be applicable or sufficient for the distinct affordances of handheld projector interaction.. Researchers have also explored techniques to support direct information exchange between devices. Rekimoto's [18] Pick-and-Drop is a pen-based technique for transfering data by picking objects on one computer and dropping on another. Yatani et al. [26] present Toss-It, a technique for sending information from a PDA to other devices using a tossing gesture. Hinckley et al. [10] present stitching, penbased gestures for binding multiple displays. Park et al. [14] present Touch-and-Play, enabling users to transfer data between devices by touching them. These techniques help connect information and display spaces on different devices. In contrast, multiple handheld projectors can seamlessly combine their display and information spaces by projecting onto a shared physical surface.

B I 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 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 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 B I 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 B I 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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


Exploiting Agent Oriented Software Engineering in Cooperative Robotics Search and Rescue This paper reports our progress in applying multiagent systems analysis and design in the area of cooperative robotics. In this paper, we apply the Multiagent Systems Engineering (MaSE) methodology to design a team of autonomous, heterogeneous search and rescue robots. MaSE provides a top-down approach to building cooperative robotic systems instead of the bottom up approach employed in most robotic implementations. We follow the MaSE steps and discuss various approaches and their impact on the final system design. There have been many recent advances in agent-oriented software engineering. Unfortunately, many of these advances have not carried over to cooperative robotics even though earlier attempts at using agent approaches were successful 6 . While many architectures have been developed, there have been few attempts at defining high-level approaches to cooperative robotics systems design 12 . In this paper, we attempt to determine the applicability of modern multiagent design approaches to cooperative robotics. We believe that using multiagent approaches for cooperative robotics may provide some of the missing elements evidenced in many cooperative robotic applications, such as generality, adaptivity, and fault tolerance 11 .. In this paper, we apply the Multiagent Systems Engineering (MaSE) methodology to design a team of autonomous, heterogeneous search and rescue robots. MaSE provides a top-down approach to building cooperative robotic systems instead of the behavior-based, bottom up approach employed in most robotic implementations 3, 11, 13 . Other MAS methodologies were considered, but were rejected for reasons described in Section 6. We follow the steps of the MaSE methodology and discuss various approaches and their impact on the final system design. We do assume that the low-level behaviors common to mobile robots, such as motion and sensor control, already exist in libraries. Our focus is on designing high-level cooperative behaviors for specific applications. From this initial investigation, it appears that MaSE has the features required to be of great benefit in the analysis and design cooperative robot applications. MaSE provides the high-level, top-down approach missing in many cooperative robot applications. Moreover, the existence of the MaSE analysis and design models is also helpful in the maintenance and modification of cooperative robotic systems. Although not specifically addressed in this design, concurrent tasks used during the analysis phase map nicely to the typical types of low-level behaviors found in behavior-based robotic architectures.. While MaSE appears to have the required features to make it a good choice for developing cooperative robotic applications, this does not imply that all multiagent methodologies are equally applicable. For instance, the GAIA methodology 14 , while providing good analysis coverage of individual agent plans and actions, falls short when defining the interactions between agents. Likewise, Tropos 7 provides extensive support for early requirements analysis, but does not provide abstract models that can easily represent reactive tasks or inter-agent communications protocols. Other methods, such as the AAII method 8 focus on particular agent architectures that may not be conducive towards heterogeneous cooperative robotic applications. While not a methodology per se, the Agent UML (Unified Modeling Language) 10 is an effort to extend UML to provide the tools to model concepts of interest to multiagent systems. These models allow cooperative robotic developers to use state-of-the-art UML models augmented with special notations for modeling communication and autonomous goal based behavior important to cooperative robotic applications. Our future research plans include looking at fault tolerance and dynamic team reconfiguration based on the roles each robot is playing, or can play in the system. We also plan to provide a more detailed approach to mapping the high-level behaviors to low-level behaviors as defined in standard robotic architectures. Our original intention was to implement this design using a set of three Pioneer robots using the Colbert programming language under the Saphira interpreter 1 .. However, limitations of Colbert and Saphira and our desire to use a heterogeneous set of robots required us to rethink our approach. Although MaSE tasks and conversations mapped nicely to Colbert activities, which run as separate threads, Colbert did not provide the required data types and data passing mechanisms required for an efficient implementation. Relying on Colbert and Saphira also limited our implementation to Pioneer robots instead of a truly heterogeneous mix of robots. Therefore, we modified our initial approach and used a heterogeneous set of robots that included a group of two Nomad Scout and one Pioneer 2 robots 2 . The resulting robot architecture is shown in Figure 12 , which is a standard UML class diagram. The architecture has a single Agent object that controls the overall execution of the agents. Each agent has a set of Task objects that directly implement the tasks defined in the design. Each task has a set of Conversation objects that implement the required conversations via our messaging package (the Mom object). Each task object actually sends commands to the robot via an interface object, which provides a wrapper that encapsulates the individual robot control software. While we changed the underlying platform for the research, the analysis and design of the system did not change. The MaSE models developed for the original implementation were used without modification in the final implementation. As described above, tasks identified in the role model are implemented as objects under control of a single agent object. Conversations are implemented as Java objects and are associated with specific tasks. Since tasks are assumed to execute concurrently in MaSE, we use separate Java threads for each task. Conversations run in the same thread as their task to ensure that the semantics of the MaSE task diagrams are preserved in the implementation.. To communicate with other robots, we used a Java-based message-oriented middleware (MOM) that allows robots to send and receive messages over designated sockets via wireless TCP/IP connections. The MOM package receives conversation requests and relays them to the agent via the Message Handler method in the agent, whose job it is to start new conversations and task activities. After a conversation is started, each task or conversation can send or receive messages directly through MOM function calls. All the software used to control the robots resided on laptops attached to each robot. We used two types of robots, those with rescue capability and those without. Figure 13 shows one of our Pioneer robots equipped with gripper capable of performing the rescuer role. (Here the victim is represented by a long cylindrical potato chip canister.)

O O O B I O B I O O O O O O O O O O B I O O O O O O O B I 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 B I 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Learning from preferences and selected multimodal features of players The influence of multimodal sources of input data to the construction of accurate computational models of user preferences is investigated in this paper. The case study presented explores player entertainment preferences of physical game variants incorporating two data modalities. The main findings of the paper reveal the benefit of multiple modalities of input data for the prediction of preferences and highlight the impact of feature selection on the construction of such models. Rich forms of interaction can be designed when the preferences of a user of an interactive system are successfully modeled. Multimodal sources of input data can provide the necessary ground for constructing accurate computational user models in such systems. These models can be used for re-engineering the system and adjust internal controls during the interaction for maximizing the output value of the model function.. In this paper we investigate the impact of multimodality to the construction of user models (multinodality refers to the different modes of input data investigated in this paper). Multimodality is investigated through a physical interactive game and user models are built on entertainment ("fun") preferences of its players. Accurate models of user preferences have already been reported in the literature built on Permission to make digital or hard copies of all or part 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 and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. single modalities of gameplay interaction [11] and physiological signal data [8] . This paper extends the existing knowledge on user models of entertainment preference by building models of the user on the unified set of physiological and gameplay interaction data. Artificial neural networks (ANNs) are constructed using artificial evolution to learn the mapping between individual features extracted and user preferences of entertainment. For this purpose two feature selection mechanisms are designed to choose the appropriate input vector for the model: sequential feature selection (SFS) and perceptron feature selection (PFS). This paper demonstrated the advantages of using data extracted from multiple modalities and automatic feature selection for building models of user preference. The highest performance obtained (83.95%) outperforms the accuracy of both the model built solely on physiological data (79.76%) and the model built solely on gameplay interaction data (82.22%). Automatic feature selection chooses only 3 out of the 71, in total, features which feed the highest performing ANN model: the controllable feature of opponent spatial diversity, H, the average blood volume pulse, E{b}, and the energy of the high frequency band of heart rate variability, HF. A deeper analysis on the generated ANN model will be required to expose the interplay between the three selected features and reported fun.. In the comparison between the two different features selection schemes utilized, results show the benefits of using sequential forward selection over perceptron feature selection for choosing the input vector of the model. SFS constitutes a good balance between performance and computational effort. The experimental methodology proposed for quantitatively modeling preferences of players is applicable to any multimodal interactive system for predicting preferences of users given individual characteristics of their interaction with the system.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Characterizing Minimal Semantics-preserving Slices of predicate-linear, Free, Liberal Program Schemas A program schema defines a class of programs, all of which have identical statement structure, but whose functions and predicates may differ. A schema thus defines an entire class of programs according to how its symbols are interpreted. A subschema of a schema is obtained from a schema by deleting some of its statements. We prove that given a schema S which is predicate-linear, free and liberal, such that the true and false parts of every if predicate satisfy a simple additional condition, and a slicing criterion defined by the final value of a given variable after execution of any program defined by S, the minimal subschema of S which respects this slicing criterion contains all the function and predicate symbols 'needed' by the variable according to the data dependence and control dependence relations used in program slicing, which is the symbol set given by Weiser's static slicing algorithm. Thus this algorithm gives predicate-minimal slices for classes of programs represented by schemas satisfying our set of conditions. We also give an example to show that the corresponding result with respect to the slicing criterion defined by termination behaviour is incorrect. This complements a result by the authors in which S was required to be function-linear, instead of predicate-linear. A schema represents the statement structure of a program by replacing real functions and predicates by symbols representing them. A schema, S, thus defines a whole class of programs which all have the same structure. Each program can be obtained from S via a domain D and an interpretation i which defines a function f i : D n → D for each function symbol f of arity n, and a predicate function p i : D m → {T, F} for each predicate symbol p of arity m. As an example, Figure 1 gives a schema S, and the program P of Figure 2 is defined from S by interpreting the function symbols f, g, h and the predicate symbol p as given by P , with D being the set of integers.. The subject of schema theory is connected with that of program transformation and was originally motivated by the wish to compile programs effectively [1] . Schema theory is also relevant to program slicing. Since program slicing algorithms do not normally take into account the meanings of the functions and predicates of a program, a schema encodes all the information about any program which it defines that is available to such algorithms.. A subschema of a schema S is defined to be any schema obtained by deleting statements from S. Given a schema S and a variable v, we wish to find a subschema T of S which satisfies the following condition; given any interpretation and any initial state such that the program defined by S terminates, that defined by T also does, and defines the same final value for v. In this case we say that T is a v-slice of S. We are particularly interested in finding minimal v-slices of S (with slices of S ordered according to their sets of symbols 1 ).. The main theorem of this paper requires that given any path through a schema S, there is an interpretation and an initial state such that the program thus defined follows this path when executed (the freeness condition) and the same term is not generated more than once as it does so (the liberality condition). These conditions were first defined by Paterson [2] . We also require that the same predicate symbol does not occur more than once in S (the predicate-linearity condition), and that if the same function symbol occurs in both the true and false parts of any if predicate 2 , then it u := 1;. if w > 1 then v := u + 1;. else v := 2; assigns to distinct variables in each case. We call schemas satisfying all these conditions special schemas. We prove that given a schema S which satisfies these conditions and a variable v, the v-slice of S given by Weiser's static slicing algorithm [3] has the unique minimal set of predicate and function symbols of all v-slices of S. Given a schema, Weiser's algorithm computes the subschema containing only those symbols defined by the transitive closure of the control and backward data dependence relations. We also define an ω-slice of a schema in which termination behaviour defines the slicing criterion, and give an example to show that Weiser's algorithm, modified in a natural way with respect to this slicing criterion, need not give a minimal ω-slice. This is in contrast to the situation for function-linear, free, liberal schemas [4] .. Our theorem is a strengthening of the result in [5] in which no symbol was allowed to occur more than once in the schema S (that is, S had to be linear, as opposed to just predicate-linear in this paper).

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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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


Bit-level optimization for high-level synthesis and FPGA-based acceleration Automated hardware design from behavior-level abstraction has drawn wide interest in FPGA-based acceleration and configurable computing research field. However, for many high-level programming languages, such as C/C++, the description of bitwise access and computation is not as direct as hardware description languages, and high-level synthesis of algorithmic descriptions may generate suboptimal implementations for bitwise computation-intensive applications. In this paper we introduce a bit-level transformation and optimization approach to assisting high-level synthesis of algorithmic descriptions. We introduce a bit-flow graph to capture bit-value information. Analysis and optimizing transformations can be performed on this representation, and the optimized results are transformed back to the standard data-flow graphs extended with a few instructions representing bitwise access. This allows high-level synthesis tools to automatically generate circuits with higher quality. Experiments show that our algorithm can reduce slice usage by 29.8% on average for a set of real-life benchmarks on Xilinx Virtex-4 FPGAs. In the meantime, the clock period is reduced by 13.6% on average, with an 11.4% latency reduction. Customized hardware accelerators based on FPGAs have been gaining wide attention in the past few years (e.g. [8] [9] [10] ). Today, modern FPGAs allow users to exploit parallelism in applications by hundreds of thousands of logic cells and prefabricated IPs [1] to assist general-purpose processors in exploiting performance in many application areas. For reconfigurable computing, C/C++ based high-level specification is much more preferred to RTL specification. A number of C-to-FPGA synthesis or high-level synthesis (HLS) tools have been developed recently (e.g. [5, 7, 14, 17] ). However, high-quality RTL implementations may be difficult to achieve automatically, when the bitwise operations are written in C/C++.. Bitwise operations are used extensively in many application domains, such as cryptography and telecommunications, etc. However, most of the general-purpose processors and high-level software programming languages (e.g. C/C++) do not support bitwise memory accesses and require a series of load/shift/mask/store instructions to implement simple bitwise operations, such as bit accessing and bit setting. When such programs are provided to C-to-FPGA synthesis tools, it may generate inefficient RTL code. Figure 1 shows a motivational example with a bit reversing function. The C description of this algorithm is shown in Figure 1 (a), where the bit_reverse function takes a 32-bit integer as input and yields an output in the reverse bit order. The data-flow graph (DFG) for the unrolled function is shown in Figure 1 (b), while the optimal implementation is shown in Figure 1 (c). We can see clearly that the direct implementation based on the data-flow graph would use many more logical components and also have a longer latency compared to the optimal one, which only uses 32 wires to link the bits directly in the reverse order.. The RTL code for such bit operations generated directly from high-level software programming languages may not be efficient. It is possible that the downstream RTL synthesis tool can remove some inefficiency in such RTL code. But the scope of RTL synthesis tools is much limited. For example, if the bit operations expressed in and/or/shift operations lead to large area exceeding the area constraint, the HLS may choose to reduce the area, at the cost of large latency, and insert pipeline registers to improve the throughput. The pipeline registers will limit the scope of RTL optimization, making it impossible to recover the optimal design as shown in Figure 1 (c). Thus it is often too late for the downstream RTL or logic synthesis and optimization techniques to make up for the QoR loss caused by the mistakes during compiler transformations. On the other hand, handling bit-level operations in C-to-RTL stage with low complexity can also save the RTL synthesis's effort. Therefore, efficient bit-level transformation and optimization at behavior-level are needed to assist hardware synthesis from algorithmic descriptions in highlevel programming languages. In this paper we propose a novel compiler optimization approach to automatically generate bitwise operations for high-level synthesis from the algorithmic descriptions in high-level programming languages. Specifically, we extend the data-flow graph with three operations (instructions) representing bitwise access to greatly facilitate the high-level synthesis to synthesize algorithmic description into efficient hardware. We propose an intermediate representation called the bit-flow graph (BFG) to analyze and optimize bitwise operations, and the optimized BFG is transformed to the extended data-flow graph for high-level synthesis. We observe that intuitive and efficient compiler transformations can have great impact on synthesis QoR of the bitwise-computation-intensive applications. Experiments show that our approach can achieve a 29.8% area reduction, 13.6% clock period reduction and 11.4% latency reduction on average for a set of real-world applications.. To our knowledge, this is the first work to systematically analyze and optimize bitwise operations to assist high-level synthesis and FPGA-based acceleration. The proposed techniques very well complement the previous high-level synthesis research which has been primarily focusing arithmetic-intensive applications (esp. DSP, image and video processing applications).. The remainder of the paper is organized as follows: In Section 2 we review the related work. Section 3 presents the problem statement. In Section 4 we describe our bit-level transformation and optimization approach. Section 5 presents experimental results. Section 6 concludes the discussion of current work and proposes future directions. In this paper we have introduced a bit-level transformation and optimization approach to assist high-level synthesis of arithmetic descriptions and FPGA-based acceleration for functions with a large amount of bitwise operations. The proposed bit-flow graph can record and propagate bit-value information, allowing bitwise analysis and optimizations. The optimized BFG is transformed back to DFG extended with a few instructions representing bit accessing clearly, so that high-level synthesis of algorithmic description can generate corresponding hardware directly. Experiments show that our algorithm can reduce slices by 29.8%, reduce clock period by 13.6% and reduce latency by 11.4% on average for the benchmarks. In the future, we plan to better support the complex control flows and incorporate more powerful logic synthesis optimizations. In this section we discuss previous work on optimization for bitwise computation-intensive applications.. Modern optimizing compilers can perform a series of transformation passes (typically in the form of peephole optimizations) to simplify logical operations [6, 16] . For example, algebraic simplifications and reassociation can be applied to Boolean and structure bit-field types using logical computation properties. Constant folding evaluates constant expressions at compile time and replaces variable references with constants. One of the main characteristics of these techniques is that they manipulate operands mainly at byte/word level and rarely analyze bit-value flow information. This is usually sufficient when the target is a general-purpose microprocessor. However, for application-specific hardware implementations, we may miss many important optimization opportunities that potentially lead to better solutions, especially for bitwise computation-intensive applications.. Several modern processors extend their instruction sets to accelerate bitwise operations. The counting-leading-ones, counting-leading-zeros and counting-set-bits instructions are such extensions existing on some general-purpose processors. Hilewitz et al. [11] conjectured that the most powerful primitive bit-level operation might be the bit matrix multiply (BMM) instruction, which currently is found only in supercomputers like Cray [3] . They also proposed new instructions that implement simpler BMM primitive operations. However, the current code-generation techniques for these instructions mainly seek for special patterns, and efficiently taking use of these instructions still much relies on hand-coded assemble codes.. In the logic synthesis field, much research has been conducted to simplify logical expressions [15] . However, when using high-level programming languages, the bit-value accessing, computing and storing are indirectly represented and often require a series of load/shift/ mask/store instructions. If the bitwise computation is not well analyzed and optimized during the high-level synthesis step, the resulting RTLs can be suboptimal. This would impose difficulty for the downstream RTL/logic synthesis and optimization to make up the QoR degradation.. Some hardware modeling languages extend high-level programming languages, and most of them support bit-accurate description. For example, SystemC [4] , which is a popular modeling language based on C++, introduces bit-accurate data types to support description for bit-level access and computation. Some related works also extend a base sequential language with direct bitwise manipulation for both software and hardware. For example, [12] introduces a new object-oriented language called Lime, which can be compiled for JVM or into a synthesizable hardware description language. It provides explicit bit-numeration to describe bitwise operations. Nevertheless, most software algorithms and a large amount of legacy code are still written in high-level software programming language.. In contrast to the previous work, our approach aims at providing bit-level transformation and optimization to assist high-level synthesis of algorithmic descriptions. Since hardware directly supports bit-value accessing and storing, while a large amount of software legacies still use load/shift/mask/store instructions to represent bitwise operation, there is a gap between function description in high-level programming languages and high-level synthesis. To deal with this problem, we propose a new intermediate representation for bitwise operations. It will facilitate bit-value analysis and provide a platform to take advantage of the existing logical expression simplification techniques before highlevel synthesis.

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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 B I 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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


Online health communities Online health communities provide a means for patients and their families to learn about an illness, seek and offer support, and connect with others in similar circumstances. Online health communities raise difficult design challenges because of the wide variability of members. medical expertise, health literacy, and technology literacy, and the potential severity of problems due to misinformation. The importance of online health communities is evidenced by their popularity, as well as the significant impact they have on the lives of their members. This Special Interest Group (SIG) will explore current trends in online health communities and how the design and evaluation expertise of the CHI community can benefit and improve online health community research and development. Changes in the health care system coupled with increased infiltration and use of the Internet have resulted in heavier reliance on the Internet for disease and health information. Eighty percent of American adult Internet users currently go online to find health care information for themselves and their loved ones, with health searches one of the most popular uses of the Internet [2] .. Social networking and online communities have become popular for virtually all business and personal interests and needs. This trend has increased the expectation for and reliance on peer education and support for many areas, including medical, to precede, supplement, or, in some cases, replace, that of professionals. In many cases, people do not use the best judgment when relying on online communities, but the consequences of poor information depends on what the information is and how it is used. Peer reviews and ratings in an online bookseller at worst leads to a poor purchasing decision with the option for a return. Medical information can have graver consequences when poor advice is taken or is erroneously applied; or when professional treatment is not sought.. The criticality of health-related information necessitates careful consideration of how to design for usability and sociability [4] . Furthermore, patients and their families may be under stress and the emotional burden, which can diminish health literacy, necessitates more careful design and evaluation. In addition, disease and illness have no boundaries, and participants in online health communities can vary considerably in their technology and health literacy, as well as in their need for education and support about a disease or condition.. Currently, there is no prevailing wisdom on best practices in online health community design and researchers have not yet conclusively demonstrated the health benefits of online health communities [1] . Despite limited research on health benefits, there are many situations where online health communities appear to aid patients. These benefits include improved quality of life, better decision making, and patients who feel less alone and more empowered [5] . Indeed, the availability of online health communities is especially appreciated by individuals with impaired mobility, potentially embarrassing medical conditions, or caretaker responsibilities that may prohibit them from receiving adequate face-to-face medical and emotional support [5] . At the same time, access and effective use by others may be restricted due to cultural, language, and other issues [3] .. For the benefits of online health communities to accrue, systems must be developed that are accessible, welcoming, easy to navigate and use, and able to help members discern information quality and interact with other participants in meaningful ways. We believe that the successful design of such systems will be facilitated by collaborations among health professionals, informed designers, and patients. Health professionals and patients can help explain the physical and emotional stages that individuals go through once they are diagnosed with a particular disease. Furthermore, health professionals understand the risks of misinformation and the role that healthcare providers need to play. Patients understand the practical information about coping with a disease and the importance of social support and empathy. Designers and developers are needed to understand and explain the technological options available to online health communities and the implications of specific design choices. Such collaborations are needed to explore topics on which there is seems to be no prevailing wisdom, such as how the nature of the disease or illness impacts the online health community design; how to improve health literacy; and which of the many collaborative technologies that are available best support peer interaction. Finally, it is important to track and evaluate new technologies, such as Web 2.0, to understand when and how to deploy technologies that assist in and improve peer health communication.. We hope to bring together a variety of individuals with backgrounds in social science, design, and health for this SIG. Both researchers and practitioners are encouraged to participate, especially those working on online communities, although the appeal will be greatest to people working in or interested in health care. Some CHI attendees may be interested in the SIG due to personal experiences with the use of online health communities.

B I I B I 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 B I 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 B I 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 B I I O O O B O B 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 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 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 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 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 B O O O O O O O O O O O B I 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 B O O O O O O O O O O O B I I O O O O O O O O O O O O O B I 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 B I 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 I 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 B I 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 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 B 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 B I O O O O O O O O O O O O O O O O O B I I


Dynamic distributed lanes: motion planning for multiple autonomous vehicles Abstract Unorganized traffic is a generalized form of travel wherein vehicles do not adhere to any predefined lanes and can travel in-between lanes. Such travel is visible in a number of countries e.g. India, wherein it enables a higher traffic bandwidth, more overtaking and more efficient travel. These advantages are visible when the vehicles vary considerably in size and speed, in the absence of which the predefined lanes are near-optimal. Motion planning for multiple autonomous vehicles in unorganized traffic deals with deciding on the manner in which every vehicle travels, ensuring no collision either with each other or with static obstacles. In this paper the notion of predefined lanes is generalized to model unorganized travel for the purpose of planning vehicles travel. A uniform cost search is used for finding the optimal motion strategy of a vehicle, amidst the known travel plans of the other vehicles. The aim is to maximize the separation between the vehicles and static obstacles. The search is responsible for defining an optimal lane distribution among vehicles in the planning scenario. Clothoid curves are used for maintaining a lane or changing lanes. Experiments are performed by simulation over a set of challenging scenarios with a complex grid of obstacles. Additionally behaviours of overtaking, waiting for a vehicle to cross and following another vehicle are exhibited. The advantages of autonomous vehicles over human-driven vehicles include safety, efficiency and personal comfort [4] . Autonomous vehicles, connected via an inter-vehicle communication framework [30, 37] , may 'talk' and inform each other about the road scenario. They may further communicate with the road infrastructure [21] , a processing unit fixed with the roads. The vehicles may hence make collaborative plans which are better than human or machine-based planning without communication wherein one has to 'guess' the intent of the other driver [43] . Advantages include traffic jam avoidance [7] , collaborative obstacle avoidance [15] , failure detection [42] , etc. Attributed to the advantages of autonomous vehicles, it will become increasingly possible to have autonomous vehicle only traffic in the future for large sections of city/motorway traffic, once such autonomous vehicles are commercially available. This is hence a common assumption in the transportation literature.. Most countries follow organized traffic where the road width is divided into a number of lanes and vehicles are asked to drive within a lane, changing lanes if necessary. The task of planning is primarily to decide, at every instance of time, the lane and speed of travel [29, 40] . On the contrary some countries like India stick to unorganized traffic wherein a vehicle can travel anywhere on the road and sticking to a particular lane is not a requirement [23, 26, 39] . The width of a lane, in organized traffic, is kept just larger than the maximum width of a vehicle. Vehicles larger than a lane's width are not allowed, while much smaller vehicles (excluding motorbikes) are very rare. If traffic is under the occupancy of vehicles of varying sizes, from very small to large, the unutilized width of lanes in occupancy with smaller vehicles would add up to a significant amount, enough to fit in a lot more vehicles. This is the main reason why unorganized Indian traffic shows a higher bandwidth as compared to that possible with organized traffic (restricted to the number of lanes), where the vehicles vary in sizes from cycles, motorbikes, 3-wheeled auto rickshaws, cars to big trucks.. Further, big differences in speed between vehicles mean that every overtaking manoeuvre must be completed as soon as possible, with the cooperation of the other vehicles involved. In unorganized traffic this is possible as soon as space is available, while in organized traffic one would have to wait for the overtaking lane to be clear. Unorganized Indian traffic shows multiple simultaneous overtakes, wherein cars overtake 3-wheeled auto rickshaws, which again overtake cycles; while motorbikes overtake or get overtaken depending upon the situation/driver. Each such overtake is useful as it is 'painful' to follow a slower vehicle at its speed. Further, if small obstacles lie on all lanes of travel, all the lanes are rendered un-navigable, while it may still be possible to navigate in between the obstacles, which is what many human drivers, even in organized traffic, tend to do.. Sticking to lanes is a good traffic rule if the majority of the vehicles in the traffic are wide enough to occupy the entire lane and the standard deviation in speed is small. However, as the size and speed diversity increases, the limitations of this traffic rule become increasingly apparent, which explains why some countries stick to unorganized traffic. Unorganized traffic is more generalized in nature and is capable of displaying a richer set of traffic behaviours which are restricted in organized traffic due to the lane-sticking traffic rule. Motion planning for unorganized traffic is important in order to get autonomous vehicles into countries following unorganized traffic. Further, fully autonomous vehicles not requiring a human inside may have speed and size designed to best cater for business requirements. These vehicles may bring large diversity to the traffic landscape, questioning the validity of lanes in the presently organized countries.. Interesting research has been done for planning a vehicle in organized traffic operating within lanes, which is not applicable for unorganized traffic. Furda and Vlacic [10] modelled the problem as a deterministic state automata problem based on raw sensor data, using which the authors exhibited robotic behaviours of lane keeping, maintaining a safe distance from other vehicles and avoiding any potential collisions. Multi-Criterion Decision Making was used for strategy selection. On the other hand, Valdes et al. [38] considered optimal routing strategies, particularly for cooperative multi-vehicle situations. Reveliotis and Roszkowska [31] meanwhile modelled the system as a resource allocation problem with lanes as virtual resources, which the vehicles attempted to acquire. Conflict resolution strategies for allocation prohibited collisions. Schubert et al. [34, 35] fed the distances from between the lane markings and the vehicles into an automaton to compute the optimal lane of travel.. Some attempts have been made for motion planning without necessarily the assumption of lanes. Kala and Warwick [12, 13, 15] studied the problem of planning and coordination of vehicles using a set of discrete behaviours. Kuwata et al. [17] used Rapidly-exploring Random Trees for the planning of a single vehicle using a biased sampling technique for obstacle avoidance. Chu et al. [8] constructed a number of trajectories for obstacle avoidance using a single manoeuver, out of which the best was used. Gehrig and Stein [11] used an elastic band attached to a leader vehicle to model the motion of the follower vehicles. These approaches can however all only exhibit simple behaviours of vehicle following, overtaking or obstacle avoidance; but cannot display the strong coordination strategies possible with the availability of communication.. The problem of planning in unorganized traffic is closer to the problem of multi-robot motion planning, for which a number of interesting approaches exist. The difference between wide maps used in mobile robotics, as opposed to the narrowly bounded roads in the case of vehicles does though question the validity of many approaches. Other differences include the notion of overtaking and vehicle following, terms which are largely baseless in robotics; the absence of a predefined goal in vehicles; the continuous emergence of vehicles in a road, unlike in mobile robotics where robot positions are initially known and any addition causes re-planning.. Centralized approaches [33] are non-implementable in real time, due to which planning needs to be performed in a decentralized manner [2, 20, 36] . Pure decentralized approaches cannot though model strong cooperation between the vehicles which is only possible with centralized approaches. Hence the use of a decentralized approach must ensure that the resultant system can showcase all types of desirable behaviours between a pool of vehicles, e.g. in prioritized approaches [3] lower priority vehicles always lose out, which can lead to overtaking becoming unfeasible due to a lack of cooperation.. Graph search based methods are widely used for robotic planning. However a centralized graph search approach for multi-robots is clearly computationally too expensive. For a single robot, approaches rely on the use of hierarchies for computational speedup. However in a road based system, it is impossible to make any decision (to overtake or not, side to avoid an obstacle, etc.) at a lower resolution map, since all such behaviours take place with small separations which must be precisely known. Kala et al. [16] presented an iterative graph search algorithm, where the map was represented at multiple resolutions. The resolution around the path was increased along with iterations to get better paths. Lu et al. [19] also used an iterative graph search, employing the Lifelong Planning A * algorithm for a dynamic environment. Chand and Carnegie [6] decomposed the problem at two levels, using the A * algorithm for both levels.. A finer A * algorithm computed the connectivity cost between coarser level nodes. A modified A * algorithm was also used by Viet et al. [41] for cleaning robots. Cowlagi and Tsiotras [9] meanwhile studied the problem of different kinematics for different robots, and modelled a graph with multiple costs at the edges depending upon the kinematics and state. Model predictive control was then used for local trajectory tracking. This paper is motivated by an earlier work by the authors [14] where a 4 layer planning algorithm was proposed consisting of route selection, an obstacle avoidance strategy, distribution of available (obstacle-free) road width amongst the vehicles, and trajectory generation. But a limitation of the work was that the different layers worked at different abstractions and the decisions of any particular layer were made based on abstract knowledge of the other vehicles available for that layer. However, as most decisions relating to overtaking, obstacle avoidance, and other manoeuvres take place with small separations, precise information is needed for optimal decision making. Hence instead of dividing the algorithm into hierarchies, here the intention is to stick to the finest hierarchy and use heuristics to limit the state expansions, thereby forming a completely different method of making graph searches faster.. The key contributions of this paper are: (a) A generalized notion of lanes is defined. (b) The generalized notion is used for planning and coordination of multiple vehicles. (c) A coordination technique is designed which uses the concepts of decentralized coordination for iteratively planning different vehicles but empowers a vehicle to pass other vehicles. The coordination is hence better in terms of optimality and completeness than purely decentralized approaches, while being somewhat computationally expensive in the worst cases. (d) The concept of one vehicle waiting for another vehicle coming from the other direction is introduced, when there may be space enough for only one vehicle to pass. (e) Heuristics are used for pruning the expansions of states, which result in a significant computational efficiency while leading to a slight loss of optimality.. Section 2 deals with the generalized notion of lanes. Section 3 presents the algorithm framework for a single vehicle, which is extended for the presence of multiple vehicles in Sect. 4 . Results are given in Sect. 5. Discussion is included in Sects. 6 and 7 contains the concluding remarks. Having large diversities in traffic, be it in terms of vehicle size, speed capabilities or road infrastructure, necessitates sophisticated planning techniques for the motion of vehicles. In this paper we considered the traffic scenario, and the planning, of multiple autonomous vehicles. The planning performed was based on a prioritized Uniform Cost Search, affecting re-planning of vehicles of higher priority which ensured cooperation. The algorithm could try all possibilities and come up with an optimal plan. Experiments over complex grids of obstacles and other vehicles showcased the effectiveness of the algorithm. Further vehicle behaviours of overtaking, vehicle following, and waiting for vehicle ensured optimal performance for a variety of scenarios.. A major question that arises out of the research is the validity of the present traffic rules. In an autonomous scenario, should the vehicles be allowed to collaboratively construct optimal plans which do not adhere to static traffic rules, which was the case in this approach? This leads to possibilities of more driving behaviours. The algorithm needs to ensure completeness and absence of deadlocks. Pedestrians and humans are desirable as obstacles, since they intelligently clear up with time, causing no deadlocks with autonomous vehicles. In the case of autonomous vehicles only, deadlocks need to be handled algorithmically. We have taken a positive step towards identifying all possible scenarios to ensure an absence of deadlocks, as depicted by the experimental results.. One issue with this research is that it is looking ahead to a scenario in which vehicles are fully autonomous and communicate both with each other and a vehicle network. As a result many advantages arise. In order to get from the present situation with human drivers to the fully autonomous version it is recognised that a transitionary state will apply. It may well be the case therefore that some of the functions considered here are not immediately available, e.g. methods of overtaking, however it is not necessarily the case that autonomous vehicles will have to follow the same rules as human driven cars as different overall rules may well be apparent in the transitionary state-at this stage we simply cannot tell. Giving effective results as early as possible is one of the prime requirements of any planning algorithm. It is hence important to analyze the complexity of the algorithm, based on which the road segment length considered for planning may be decided. Too large a length may make the algorithm unable to give results within time, and too small a length would make planning ineffective, wherein different vehicle behaviours cannot be displayed and the vehicle can possibly be trapped in an obstacle network.. For n static obstacles on the road, going left or right of the obstacle may result in two different plans, indicating the total number of plans possible in the worst case to be 2 n which the graph search explores. Consider a number of states produced by the graph search. A state may be called connecting state if it has one child or no children. These states do not multiply the search space or do not lead to new paths. Every obstacle approximately adds 1 non-connecting state corresponding to the state when it was first discovered in all possible paths. Hence for n obstacles, total paths in the worst case are 2 n each approximately of length l, which makes the complexity O(2 n l). The effect of factor Δ(v i max ) and connecting states on complexity is together communicated by the factor l. If some of these obstacles are small obstacles, there would be additional cost due to the reduction in speed of a vehicle which is done in steps.. The algorithm may also have multiple vehicles. Let a be the number of vehicles travelling in the same direction (inbound or outbound) as the vehicle being planned and b the number of vehicles travelling in the opposite direction. For a vehicles going in the same direction, it may either follow it or overtake it. Both possibilities need to be tried. The total possibilities to travel are 2 a in the worst case. As per heuristics both possibilities were checked on encountering any vehicle. The possibilities are tried both when the vehicle arrives as well as when it departs. This may sometimes lead to a multiplicity of cases. The maximum number of possibilities in the worst case hence are 2 a (a + 2b). In addition a vehicle may need to wait for another vehicle. Say the scenario has only one narrow bridge. At most the vehicle has to wait for all b vehicles coming, which means an additional b possibilities. However these possibilities are only tried at one particular state in the road when the width changes dramatically. Hence the addition of complexity is non-exponential. The complexity is hence O (2 a (a + 2b) ), which shows it is exponential for the number of vehicles in the same direction and obstacles. This number is usually very small considering the small road segment taken, or the vehicles would be simply following each other which is not accounted.. The resultant complexity becomes O(2 n+a (a + 2b)l), which means it is exponential in both n and a. We exper- imented both factors of obstacles and vehicles by a more realistic experimental scenario. First we took a straight road map and experimented on the effect of the addition of obstacles. The intent was to expose the worst case that the algorithm may face, and hence all the obstacles were added one after the other. The road was significantly elongated so that we could fit in lots of obstacles. The effect of the increase in the number of connecting states s and non-connecting states n is shown in Fig. 16 . Since the vehicle was intentionally kept too small to allow avoiding all obstacles to be possible; many times after aligning to overcome an obstacle, in the next expansion stage it could further go to the other side of the obstacle, making possibilities per obstacles 3 rather than 2.. Similar experiments were performed with different numbers of vehicles. However here the worst case was found when the vehicle being planned, even if it decided to follow another vehicle, had possibilities of overtaking other vehicles while it was following. This is possible only when all a vehicles in front are arranged in increasing order of speeds with large gaps between them. The scenario was difficult to create even after prolonged increase in the road width. Clearly though theoretically possible, the situation is not practical. The practical worst case is to have a series of vehicles going at equal speeds separated by large gaps. For every vehicle, the vehicle being planned may decide to overtake, or to follow. If it overtakes, the choices repeat with the other vehicle in front. If it follows, no further choice is available. Hence the total number of cases possible are a + 1, where a is the number of vehicles in front. Clearly the practical worst case is linear. The number of connecting and nonconnecting states for an increasing number of vehicles is shown in Fig. 17 . The connecting states are not linear, as the section in which the vehicle being overtaken is recorded, and the road length remaining makes the difference.. The other factor is the longitudinal separation constant. This factor was kept as per the present notion that a vehicle must be able to steer significant distance in the Y axis. This puts a lower threshold on the value of the factor. Increasing this factor decreases steering and increases smoothness. However on increasing the factor, a small obstacle problem becomes harder to detect and rectify, close overtaking cannot be performed, and vehicles start aligning early on seeing an obstacle or some other vehicle. All these factors affect optimality. Too small a value however leads to too sharp turns and large computational time.. From the software point of view one of the greatest tasks ahead is to change the data structure in which paths and lanes are represented internally. The data structures must cater for fast query response. Heuristics can be added in the expansion for computational speedup. Post processing techniques may be added to optimize the trajectories as a whole and remove any oscillations visible in overtaking, lane changes, and while travelling on a curved road. Displaying vehicle behaviour at traffic merging, diversions and crossing scenarios is still to be done. The simulations can then be extended to an entire transportation system. The simulations ultimately need to be validated on real vehicles and real roads in order to prove their effectiveness. The complete system discussed was experimented with for a variety of scenarios. We first deal with understanding the vehicle dynamics in the presence of multiple vehicles. Our focus is on the three strategies presented, and hence the map taken does not have any obstacle. We then deal with understanding the vehicle dynamics within an obstacle network. For this part it is important to ensure that the vehicles do not collide or lie close to obstacles while displaying any behaviour.. In our general experimental set up it is assumed that all vehicles have an initial travel plan however this is iteratively modified dependent on the travel plans of the other vehicles. The overall aim is for time and route optimality subject to complete cooperation between all of the vehicles involved. This means that all vehicles effectively become aware of the route requests of all other vehicles. A variety of road conditions are looked at in these experiments. In order to achieve this, lanes are not a fixed physical entity, as at present, but rather are adaptable to the vehicle flow requirements. Far from such an infrastructure being restrictive in a future practical scenario it is felt to be a very sensible method to take whereby a human who wishes to be transported merely needs to be clear on their start and end points along with the sort of time they wish to take and any specific route request they may have. The overall system will then deal with the rest, as is experimented on here.

O O 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 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 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 O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 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 B O O O O O O O O O B I 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 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 B 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 O O O O O O O O O O O O O O O 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 B 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 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 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 B I 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 O O O O O O O O O O O O O O O O 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Image Warping for Compressing and Spatially Organizing a Dense Collection of Images Image-based rendering (IBR) systems create photorealistic views of complex 3D environments by resampling large collections of images captured in the environment. The quality of the resampled images increases significantly with image capture density. Thus, a significant challenge in interactive IBR systems is to provide both fast image access along arbitrary viewpoint paths and efficient storage of large image data sets.We describe a spatial image hierarchy combined with an image compression scheme that meets the requirements of interactive IBR walkthroughs. By using image warping and exploiting image coherence over the image capture plane, we achieve compression performance similar to traditional motioncompensated schema, e.g., MPEG, yet allow image access along arbitrary paths. Furthermore, by exploiting graphics hardware for image resampling, we can achieve interactive rates during IBR walkthroughs. Computer graphics applications such as telepresence, virtual reality, and interactive walkthroughs require a three-dimensional (3D) model of real-world environments. Students can "visit" famous historical sites, such as museums, temples, castles, battlefields, and entire history rich cities; archeologists can capture excavation sites as they evolve over time; soldiers and fire fighters can train in safe simulated environments; real estate agents can show potential buyers the interiors of homes for sale via the Internet; and, people all over the world can enjoy virtual travel and multi-player 3D games. Thus, a growing desire exists for methods which can efficiently capture important and visually stunning environments.. In recent years, image-based modeling and rendering approaches (IBMR) have addressed this problem [1] . They do so by directly resampling images to generate new views, thus avoiding the need for a detailed geometric model. The 7D plenoptic function describes the light intensity passing through every viewpoint (x, y, z), in every direction (θ, φ), for all time t, and for every wavelength λ [2, 3] . All existing IBMR techniques generate lower-dimensional plenoptic functions from a set of images [4, 5, 6, 7, 8, 9] .. IBMR techniques require a large collection of images that must be efficiently stored and accessed. In particular, for interactive walkthroughs image access cannot be limited to coincide with the capture paths, but instead requires access along arbitrary viewpoint paths. Furthermore, disk-to-memory bandwidth limitations require algorithms that reduce both the size of the images on disk and the amount of data that must be transferred to main memory as a virtual observer navigates through a captured 3D environment.. Traditional compression techniques do not provide both access flexibility and full exploitation of data redundancy. Image compression, such as JPEG [10] , JPEG2000 [11] , and 2D wavelets [12] exploit intraimage redundancy to reduce individual image sizes but do not take advantage of inter-image redundancy.. Video compression achieves a significant improvement in overall compression by encoding sparse reference images and using motion-estimation algorithms to determine the coherence for interpolation between reference images (e.g., MPEG [13] ). However, motion-estimation is expensive and is intended for pre-determined linear sequences of images, making it ill-suited for image access along arbitrary viewpoint paths.. We propose a spatial image hierarchy combined with a model-based compression algorithm that provides quick access to images along arbitrary viewpoint paths during interactive walkthroughs and enables efficient compression of high-resolution images whose centers of projection (COPs) irregularly sample a plane (Figure 1 ). Specifically, our method arranges reference images and residual images into a binary tree. A captured image is extracted via a sequence of image warping operations. Each operation warps a reference image to the viewpoint of a residual image and the two are added together. We eliminate the need for costly motion estimation by using a simple user-supplied geometric proxy of the environment. The proxy, which may consist of only a dozen polygons approximating the environment, helps compensate for the translation between the two viewpoints and provides an inexpensive but accurate mapping from the reference to the residual image. We further reduce the size of the residual images by employing occlusion camera reference images (OCRIs) [14] . These images store samples visible from the reference viewpoint as well as samples likely to become visible from nearby viewpoints (see reference image of Figure 1 ). Warping OCRIs images instead of regular images produces more compact residuals when disocclusions occur and thus may achieve improved overall compression.. Residual image Residual images primarily account for surfaces that are visible from the viewpoint of the residual but not from the reference viewpoint. In the case of non-trivial scenes, even small viewpoint translations disocclude many surfaces that are not sampled in the reference image. Furthermore, the disocclusions are not grouped in one contiguous region of missing samples, but are rather scattered throughout the scene.. Therefore, when regular reference images are used, residual images have to compensate for a substantial number of samples and are difficult to compress.. An OCRI is built using a virtual non-pinhole camera model that "sees" around occluders to gather samples that are hidden but are close to the edge of their occluder and therefore are likely to become visible even for small viewpoint translations. For synthetic imagery, a virtual camera model is implemented using graphics hardware. For real-world imagery, the proxy is used in place of the synthetic model to support creating a virtual camera model. In both cases, OCRIs, like regular depth images, have a single layer and therefore share the advantages of bounded number of samples, implicit connectivity, and efficient incremental processing. When disocclusions are present, these additional samples reduce the number of missing samples for which the residual has to compensate, producing residual images with less energy.. In experiments with environments of 2000 to 10,000 omnidirectional images, 1024x1024 pixels each, our method gives nearly a factor of a 100-to-1 compression without significant loss in quality. This article expands the description of methods presented in our conference publication [15] and extends the work to support the use of a model-based compression algorithm based on OCRIs.. The major contributions of our work include:. • a fast technique to access compressed images along arbitrary viewpoint paths for IBMR applications,. • an efficient hierarchical image compression algorithm using reference images and residual images to exploit image coherence over a plane or volume of space, and. • a method for creating and warping reference images for use in inter-image compression that combine into a single layer image the surfaces visible for a neighborhood of viewpoints. We have described a spatial image hierarchy combined with an image compression algorithm that uses image warping and exploits both inter-image and intra-image redundancy. This approach allows access of images along arbitrary viewpoint paths and provides significant overall compression. Warping using proxies and OCRI's yields us more compression, on average, than standard approaches (e.g., Figure 9 ).. Our method can be efficiently implemented on today's graphics hardware. We have demonstrated our method using up to 10,000 high-resolution omnidirectional images and have achieved compression ratios of nearly 84-to-1 without significant quality loss.. As future work, we are investigating how to obtain better compression by tracking image features from one image to another. This correspondence information could be used to more accurately warp one image to another, thus reducing further the residual image energy and improving compression.. In addition, we could store images at varying resolutions and create a multi-resolution pixel hierarchy [30] . This would allow a runtime system to decide on-the-fly which resolution it desires. Each resolution level could be encoded independently or differentially from the previous resolution level. The latter approach would achieve the greatest overall compression but would require a larger memory footprint for decoding.. Finally, recent NVidia graphics hardware supports hardware decoding of textures (e.g., S3TC format).. This format does not provide a large amount of compression but can be decoded efficiently. It would be interesting to quantify the tradeoff between decoding speed and compression performance. We have applied our algorithms to three datasets (Table 1) . For each dataset, we captured images at 1024x1024 pixels from an eye-height plane using an omnidirectional camera [29] mounted on a We have implemented our algorithms on a Pentium IV 3.0 Ghz system equipped with a modern graphics card. We use JPEG compression both for the I-and P-nodes, adjusting the quality setting to achieve the desired quantization. We use an OpenGL programming interface and the graphics subsystem to achieve image differencing and image addition at interactive rates. Both operations are performed using multiple-pass texture mapping operations.. Proxy-based reference image warping, as described in Section 3.2, is implemented using OpenGL. To determine the set of features for reconstructing an image using an I-node and P-node image pair, we recursively subdivide proxy polygons on the main CPU for the COP of either of the images. Using a lowresolution frame buffer, we render the proxy polygons into the z-buffer and then render the proxy vertices into the color buffer encoding unique vertex IDs in the color channels. Next, we read back the frame buffer and determine which vertices are visible. We compute the location of the same features in the other image. Next, we load the two images into texture memory. We render the triangular mesh for the I-node image using its feature positions in image space as texture coordinates, but render the mesh using the vertex coordinates of the P-node mesh to create the warped image. Finally, the reconstructed image is obtained by adding the signed P-node residual image to the warped I-node image.. Like in the case of a regular reference image, each pixel of an OCRI defines a 3D point with color and the regular 2D array of samples implicitly defines a triangle mesh. The OCRI is efficiently warped by rendering the OCRI mesh (or proxy) from the novel view in hardware.. The complexity of the image warp operation is proportional to the size of the images. In order to reduce the complexity, we can optionally reduce the size of the warped images. This reduction in image resolution improves runtime performance but shifts more energy into the residual image, resulting in diminished compression performance.

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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 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 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 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 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 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 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 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 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 B 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 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 B O