Virtual Ring Buffer for Camera Application Concurrency

Journal Title
Journal ISSN
Volume Title

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.

Master of Science
Camera Driver Application Concurrency

Reyes, Jose Eduardo. "Virtual Ring Buffer for Camera Application Concurrency." (2015) Master’s Thesis, Rice University.

Has part(s)
Forms part of
Published Version
Copyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.
Link to license
Citable link to this page