Many compelling mobile applications require significant improvements in visual interfaces. We wish to build 3D models of our environment from images captured by a camera, recognize faces, objects and gestures, and display high-quality graphics, all in real time. Such tasks must execute on the mobile client, since latencies through the Internet preclude real-time interaction. These tasks can be parallelized, and require one or two order of magnitude performance improvements. Therefore a large part of our application work has focused on vision and graphics, and their integration into compelling applications.
Spatial data structures form the backbone of many computationally-intensive 3D applications and data mining and machine learning algorithms. To support development of such applications, we are developing ParKD, a comprehensive framework for parallelized spatial queries and updates through scalable, parallel KD tree implementations.
On the computer vision front, we are developing ViVid, a framework that contains highly scalable, parallel implementations of important feature detection and classification techniques for analysis of video streams. We are also applying our technology to a large scale tele-immersion application, TEEVE. The TEEVE project utilizes 3D cameras to capture participants from different locations and embeds them in a common interaction space. The project is rife with opportunities for parallelization as many of the complex computer vision, image processing, and video codec must be done rapidly to sustain interactivity across the internet. Additionally, our work will enable applications that can be developed faster and provide better user experience.
Parallelism can also be used to achieve other goals, such as better Quality of Service or improved security. Our work on TEEVE shows how the use of multiple cores can simplify QoS provision for multiple concurrent real-time tasks. Our work on the OP web browser shows that in addition to improving browser performance, parallelism also reduces vulnerabilities by using compartmentalization.