A flexible software architecture for scalable real-time image and video processing applications
暂无分享,去创建一个
Real-time image and video processing applications require skilled architects, and recent trends in the hardware
platform make the design and implementation of these applications increasingly complex. Many frameworks and
libraries have been proposed or commercialized to simplify the design and tuning of real-time image processing
applications. However, they tend to lack flexibility because they are normally oriented towards particular types
of applications, or they impose specific data processing models such as the pipeline. Other issues include large
memory footprints, difficulty for reuse and inefficient execution on multicore processors. This paper presents a
novel software architecture for real-time image and video processing applications which addresses these issues.
The architecture is divided into three layers: the platform abstraction layer, the messaging layer, and the
application layer. The platform abstraction layer provides a high level application programming interface for
the rest of the architecture. The messaging layer provides a message passing interface based on a dynamic
publish/subscribe pattern. A topic-based filtering in which messages are published to topics is used to route
the messages from the publishers to the subscribers interested in a particular type of messages. The application
layer provides a repository for reusable application modules designed for real-time image and video processing
applications. These modules, which include acquisition, visualization, communication, user interface and data
processing modules, take advantage of the power of other well-known libraries such as OpenCV, Intel IPP,
or CUDA. Finally, we present different prototypes and applications to show the possibilities of the proposed
architecture.