Multimedia Platform Project
Click here for Japanese version.
Overview
There are increasing needs in developing distributed multimedia
applications such as video mail, video conference programs and others
which are capable of handling various media in a distributed computing
environment. However, these applications have been built
using specially dedicated hardwares and systems which are not
interoperable with workstations nor the current network environment.
The goal of our project is to develop the software to realize the
distributed multimedia environment which can integrate various
multimedia equipment connected to commonly available workstations.
The followings are important in this R&D:
- to develop the software on off the shelf hardware platform with
good price/performance,
- to support high performance multimedia processing, and
- to make it easy to develop multimedia applications.
There already are several multimedia systems for workstations in the
market, but these systems only offer a partial solution to the distributed
multimedia environment. In this project, we vertically
integrate the system and aim to solve all the aspects of the
distributed multimedia environment.
-
Software Architecture
-
Distributed Real Time Micro Kernel
-
Real Time Network Protocol
-
Media Server
-
Toolkit
-
Media Base Server
-
Contact
Software Architecture
The software architecture of our system consists of a micro kernel,
middle-wares and a toolkit.
As for the micro kernel, we developed RMK95
which is an extension of Mach 3.0 micro kernel developed by
Carnegie Mellon University (U.S.A.).
We enhanced RMK95 to be able to handle continuous media.
It operates on i386/486 or Pentium base PC/AT compatible machines as
well as some machines having R3000/4000 or SPARC CPU.
As for the network, it currently supports Ethernet and FDDI.
ATM is in the scope of our future support.
On top of RMK95 micro kernel, we may have more than one OS personality module.
At the moment, we have UX Server which is under the restriction
of UNIX license and 4.4BSD-Lite Server (4.4BSD-Lites) which is
not. Users can choose one which is suited for their need.
In addition, modules for supporting multimedia
protocols are also separated from the micro kernel.
There are a module for ST-II protocol which supports QOS
control and an MPC module for QOS controlled multicast
communication.
In order to make it easy to develop distributed multimedia
applications, we implemented Media Servers
based on the conductor-performer model. They are implemented as
servers on top of the micro kernel.
A conductor controls flows of continuous media data, and performers
actually process various media data. Multimedia applications do not need to
communicate with performers, but only with the conductor.
If we need to support a new media type, we only need to prepare a
performer for the new media data.
In addition, a toolkit based on Tcl/Tk is
available. Users can easily develop distributed multimedia
applications with friendly GUI.
Distributed Real Time Micro Kernel
RMK95 is a distributed real time micro kernel which is an extension of
Mach 3.0 micro kernel developed by Carnegie Mellon University
(U.S.A.). It is enhanced to handle continuous media data.
In order to handle continuous media data which have timing
constraints, the traditional UNIX time sharing process scheduling
mechanism is not suited, but real time scheduling mechanisms
are necessary. For handling continuous media data, soft real
time control is important where processes and threads are
dynamically scheduled based on their QOS (Quality of Service).
In RMK95, the dynamic control is done by observing deadline
misses of periodic threads
RMK95 micro kernel has the following features:
- resource management for continuous media:
- The concept of QOS tickets is introduced and mechanisms for
resource reservation, resource utilization adaptation and
resource arbitration among sessions are available.
- real time thread package:
- A user level real time thread package is available.
Threads are lightweight and more precise thread scheduling is possible.
- various device drivers:
- Several device drivers are added for a distributed multimedia
system: e.g. a driver for capturing video and a driver for FDDI.
- public domain:
- Instead of UX Server which is under the restriction of UNIX
license, 4.4BSD Lite Server based on 4.4BSD Lite is supported.
It is compatible with FreeBSD, can share the same file system, and
most of the binaries are compatible.
- new hardware platforms:
- Not only i386/486 or Pentium base PC/AT compatible machines but
also some machines having R3000/4000 or SPARC CPU are supported.
Real Time Protocol
In order to handle distributed multimedia data,
a high speed real time network protocol which is capable of reserving
bandwidth and controlling QOS is in need.
We developed a high speed protocol processing architecture on top of
RMK95 micro kernel. At the moment, ST-II protocol is available over
Ethernet and FDDI.
We also developed a multicast communication protocol MPC (Multimedia
Protocol for Continuous Media) for continuous
media data. Using MPC, dynamic and relative QOS control is now
possible over mixed network environments of ATM, FDDI, Ethernet and
Wireless.
Media Servers
Based on the conductor-performer model, media Servers are implemented
as multiple servers on top of RMK95 micro kernel.
Each host has a single conductor and several performers for various
media data.
Each conductor accepts requests from applications and
controls performers of the local host as well as performers of
remote hosts. Applications need not communicate with performers.
A performer of a remote host is controlled via the conductor of the
remote host.
Media Servers have the following features:
- to simplify the construction of distributed multimedia applications:
- Applications only need to communicate with local hosts and
request to create media streams. Actual continuous media data
handling is done by Media Servers.
- to easily adapt to new media data:
- In order to support a new media data or a new multimedia
hardware, only a performer is need to be added.
- to absorb differences of hardwares:
- Since differences of hardwares are absorbed by performers and
conductors, applications do not need to be aware.
- to support synchronous/asynchronous streams:
- Because continuous media data have timing constraints,
media streams must be synchronized with time.
However, if media streams are synchronized at every points, there is
no place to adjust the variation of processing time.
Therefore, Media Servers combine both synchronous and asynchronous
streams so that media data are processed asynchronously whenever
possible and synchronously when necessary.
Several performers are implemented:
Sound Performer for handling sound input and output,
Capture Performer for capturing video,
JPEG Performer for JPEG decompression,
File Performer for handling secondary storages,
X Performer for X window system,
and so on.
For example, X Performer consists of a special server for video which
cooperate with X Server. X Server manages window frames for video, but
actual drawing is done by the special server.
Toolkit
In order to make it easy to develop distributed multimedia
applications with friendly GUI, we extended Tcl/Tk libraries
and XF interface builder.
The extended functions are available in Tcl scripts like other Tcl/Tk
standard commands and Widgets. These functions work by communicating
with a conductor. MPEG Widget, Video Widget, Video Capture command and
so on are available. Real time video replay and QOS control are possible.
Distributed Media Base Servers
Distributed Media Servers give mechanisms for storing and providing
multimedia data. They consist of Continuous Media Storage
Server, Distributed Name Service and Security Server.
Continuous Media Storage Server actually stores and provides
multimedia data.
It is implemented as a File Performer controlled by a conductor.
Distributed Name Service locates multimedia data and services,
and Security Server does authentication.
Contact
-
Keio MMP Project
Contact: mmp@sfc.keio.ac.jp