Rivl: A Multimedia Processing Language

The way we encode video algorithms today is similar to the way we expressed numerical algorithms in the days of assembly language. At that time, floating point operations were expressed by manipulating individual bits. Today, video and image operations are expressed by manipulating pixel values. Some systems (e.g. Data Explorer or Khoros) provide a graphical programming environment where programs are expressed as flowcharts, but the limitations of flowcharts for expressing complex programs are well known.

We are developing a language, called Rivl (pronounced "Rival"), that incorporates video, audio, and images as first class data types, just as floating point numbers are first class data types in almost all modern programming languages. In Rivl, video operations are expressed independent of the internal representation of video data. Rivl maps image and video clip operations onto the underlying pixel and frame manipulations. Rivl is currently implemented as an extension to Tcl. To learn more about Rivl, see the resources below.

Rivl Links

The Rivl Virtual Machine. [HTML]

ACM Multimedia 95 paper giving an overview of Rivl. [HTML] [Acrobat]

The Rivl tutorial. [HTML] [Acrobat]

On-line tutorial (lots of examples!) [HTML]

The Rivl developers guide. [HTML]

The latest release of Rivl. [Download]

Optimal Parallel MPEG. [HTML]

This research is supported by the DARPA Intelligent Collaboration and Visualization program (contract N00014-95-1-0799), Intel, Xerox, Microsoft, and Kodak

People Working on Rivl

Faculty

Brian Smith

PhD Students

Sugata Mukhopadhyay

Wei Tsang Ooi

Yongjian Xiang

M.Eng Students

Leong Kian Fai

Undergraduate Students

Matthew Chiu