Virtual Ring Buffer for Camera Application Concurrency
Reyes, Jose Eduardo
Master of Science
Smartphones with integrated cameras have inspired a growing number of real- time, computer vision applications. Existing camera software architectures, however, do not support concurrency: only one application accesses the image stream at any time. A naive solution that makes a copy of every image for every application is inherently ine cient. Towards a computation- and power-e cient solution, this work presents a driver-level architecture, wherein a single, copy-on-write, shared-memory ring bu er delivers images to all applications via virtual interfaces. The architecture guarantees application isolation, minimizes data redundancy, and provides an illusion to applications that they are the sole consumers of the image stream. This work implements the architecture in Android 4.3.1 and characterizes its performance on a modern, multi-core smartphone. Measurements show the architecture increases CPU utilization at half the rate of the naive solution and reduces power consumption by several hundred milliwatts.
Camera Driver Application Concurrency