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.
Funding for the project is provided under contract N00014-95-1-0799 from the ARPA Computing Systems Technology Office and a generous donation from Xerox.