03-09-2012, 01:20 PM
BlueARMStreamer
BlueARMStreamer.pdf (Size: 624.12 KB / Downloads: 36)
Abstract
Surveillance systems are aimed at providing security
and for keeping a vigilant eye on all events. Such systems can
be enhanced if they have the capability to capture surrounding
sound and motion. Also, these systems can be made more
efficient by implementing such ideas on a robot which can
move from one place to another. Such a system can be used for
implementing voice recognition and face recognition processes
simultaneously. A limiting factor for such an embedded
approach is the power consumption and cost factor. This paper
introduces one such technique which is cost and power efficient
and continuously captures sound and video from any system
i.e. a laptop, PDA, mobile phone, desktop computer and
transfers it simultaneously to any other Bluetooth enabled
system in its vicinity. This paper makes use of an OMAP chip,
embedded in Beagle Board to implement a live audio and video
streaming approach. The Beagle Board can be attached to a
line follower robot to design a moving surveillance system.
INTRODUCTION
Real time embedded audio and video streaming
applications require an embedded processor for their
functioning. ARM is one such industry's leading provider of
32-bit RISC embedded microprocessors. It offers a wide
range of processors based on a common architecture that
deliver high performance and power efficiency at a reduced
system cost [1].
Also development of any streaming application requires a
framework supporting its functionality. In our work
GStreamer is used as the development framework, which is
the most appropriate streaming framework for Beagle
Board. GStreamer is completely based on pipelined
architecture. It consists of various plugins which can be
mixed and matched and also configured according to the
needs of the user. It consists of bins, messages, pads and
various elements, with their classes. Our work creates
GStreamer pipelines which use Theora and Vorbis plugins
for audio and video processing [3].
BACKGROUND
Our previous work was focused towards transferring
static data. By static data we mean any pre-stored file in the
Beagle Board. Here also Beagle Board acted as the client
and the server was any Bluetooth enabled system.
The work started with the theoretical survey of ARM
architecture and the configuration of Beagle Board. We
looked onto various aspects related to ARM, i.e. its register
set, modes of operation and instruction set. The main
advantage of an ARM processor is its completely pipelined
architecture which makes it useful for fast processing [1].
This work uses Cortex A8 version of ARM Cortex
processors, which is based on the ARMv7-A architecture. It
has a thirteen stage integer pipeline and a 10 stage NEON
pipeline [10].
RELATED WORK
The aim of this work is to create an approach that
performs live audio and video streaming. This paper
implements this approach by utilizing GStreamer as the
development framework and Beagle Board as the
development platform. As earlier mentioned, Beagle Board
acts as the client terminal while any Bluetooth enabled
system can act as the server. A number of approaches and
ideas have been implemented in this domain.
Foremost is the work of Todd Fischer [11], who
discussed the advantages of using GStreamer with Beagle
Board. He compared the performance of GStreamer against
other streaming frameworks such as OpenMax and Texas
Instrument’s DMAI. GStreamer is advantageous as it breaks
apart MPEG packaged audio and video streams and also
helps in transferring multimedia data over the network. It
also has plugins for OpenMax and provides base support for
both OpenMax and DMAI. Fischer also mentioned Vala
Programming Language, which can be used as a tool for
developing applications utilizing GStreamer. In this work,
we have developed a live audio and video streaming
approach using GStreamer as the development framework
and instead of depending on Vala our approach is based
directly on GLib Object Model which provides cross
platform interoperability.
DEVELOPMENT FRAMEWORK: GSTREAMER
GStreamer is a fully featured open source multimedia
framework used for creating streaming multimedia
applications [3]. It provides access to various multimedia
components in a standardized way and lends a unified
approach for handling various types and formats of videos
from different video sources. GStreamer framework can
handle audio, video, interleaved audio-video and can
process any kind of data flow. It abstracts the operating
system, the hardware and the other platform components
from the developed multimedia components. The main
advantage of GStreamer is that plugins can be mixed and
matched according to the user requirement into arbitrary
pipelines while adhering to the compatibility of plugins [3].
GStreamer inherits most of its structure from GLib
Object System. It is a free software library providing a
portable object system and transparent cross-language
interoperability [7]. The implementation of Gstreamer
construct follows the syntactical structure of GObject
model. The communication between various elements of the
pipeline is governed by the rules of GObject signals.
CONCLUSIONS
A number of conclusions are formulated in this work.
The first and foremost was related to the quality of audio
and video. The web camera used is a VGA camera and the
microphone used has an upper frequency-response limit of
around 16 kHz as opposed to human hearing range of 20
kHz. This work uses frame size of 320 pixels by 240 pixels
and 640 pixels by 480 pixels. The former provides smaller
size files, and the latter produces larger size files. Also
frame rate tested are 15, 30 and 45 frames/sec. At higher
frame rates better quality is observed but at the cost of
increased file size. For audio, we set rate as 6000 or 12000,
no of channels as 1 and depth as 8.