The VuSystem

The VuSystem is a programming system for the dynamic manipulation of temporally sensitive data. It is is designed to run on any general-purpose UNIX workstations running the X Window System, requiring no special real-time facilities. The VuSystem includes modules to read and write a variety of media file formats. Video sequences can be captured and displayed using the X Window system. Audio can be captured and displayed with AudioFile.

VuSystem Applications

Some VuSystem applications are demonstrated on the TNS Technology Demonstrations page. Other VuSystem applications not demonstrated include an office monitor and a whiteboard recorder.

The office monitor records a small video fragment of a visitor that drops by an office while the occupant is away. It works by taking continuous video from a stationary camera in the office, and only recording video whenever motion above some threshold is detected. Upon return to the office, the occupant uses a video browser to view videos of those who have dropped by while he was away.

The whiteboard recorder keeps a history of changes to an office white board as its owner adds to it and erases from it. It works by taking continuous video from a stationary camera pointed at the white board. The program filters out persons moving in front of the white board, and saves a minimum set of whiteboard history images by analyzing changes to the board and by following some simple rules.

The Application Shell

VuSystem applications are all written in a shell program that interprets a version of the Tool Command Language (Tcl) that has been richly extended to support object-oriented programming. All event-driven code, including all user-interface code, is written as Tcl scripts. A Tcl interface to the Xt intrinsics and the Athena widget set has been implemented for the graphical user-interface code.

Media processing modules are implemented as C++ classes and are linked into the shell. Simple applications that use the default set of media processing modules are written as Tcl scripts. More complicated applications require linking in additional modules to the default set.

Device Interface Modules

To access audio and video devices unique to each particular brand of workstation, special device interface modules were developed. Device interface modules were developed for two specific workstation platforms: the Sun SPARCstation 10/512 and the Digital Alpha AXP DEC 3000/400.

On the Sun SPARCstation 10/512, the Sun VideoPix is used for video capture, and the Sun X server for video output. Sun's audio hardware and software is used for audio input and output.

On the Digital DEC 3000/400 the Vidboard, our VuNet-based video capture subsystem, is used for video capture. The Digital X server was used for video display. Digital's audio hardware and AudioFile software were used for audio input and output.

Status

There are currently 8 users of the environment in the Telemedia, Networks, and Systems group, four graduate students and four undergraduates. The students have collectively implemented many applications for the VuSystem and are extending the system's scope.

A rich set of modules has been developed by the users of the system. Over 50 modules have been written, including filters that perform image processing and machine vision functions as well as JPEG compression and decompression. A Tcl library for user-interface programming with over 50 script files has also been developed by the users. We have found it easy to reuse these modules and Tcl scripts in new applications.

The VuSystem Distribution

The VuSystem is still under active development, but snapshots of the source tree are available to all via anonymous ftp. Currently documentation is very poor, but if you are still curious about the VuSystem, click here for the VuSystem distribution directory on tns.lcs.mit.edu.


TNS Home webmaster