Video Wall Library

VWLib is a Video Wall Library designed to be used on any hardware platform supported by AFAPI, especially Linux PC clusters.

VWLib Overview

The Video Wall Library defines its own very simple graphic interface based on the concepts of virtual frame buffers and walls. VWLib allows the user to work with 24-bit color images, automatically performing spatial, resolution, and color-depth mappings. The interface is reasonably fast, but is designed for ease of use: VWLib even supports mapping PPM image files so that unmodified other programs can be used to generate "live" visualizations on a wall by simply writing to PPM files. Unlike other video wall systems, there are no inherent scaling constraints; VWLib can be used for any number of machines and displays, with arbitrary positioning, color depth, and resolution for each display.

The best detailed summary is the two-page VWLib Reference Card (.pdf, .ps). The reference card includes a short example program that allows a user to pan and zoom an image (or PPM animation sequence) on a video wall.

Keep in mind that VWLib is not designed to do 3D rendering itself, but merely to manage 2D virtual framebuffers. The folks at Stanford's Computer Graphics Lab have developed something called WireGL that is far more appropriate than VWLib if you want to use a 3D OpenGL-based interface. Then again, WireGL is terrible at what VWLib does.... ;-)

VWLib also benefits from its age; the key code orginally was developed in 1996 for a 6,400x4,800 pixel wall run by Pentium II systems, so it is blazingly fast on newer systems despite not taking advantage of video card GPU-based processing. For example, another 6,400x4,800 pixel wall run by K6-2 systems was able to keep a respectable framerate while playing MPEG movies. The subpixel rendering (using MMX instructions) also caused virtually no slowdown, allowing a 9-laptop LCD panel video wall with 6.74MP "native" resolution to run as a 20.25MP subpixel-rendered display with effective resolution over 16MP. The same 1GHz Athlon laptops also did a nice job running 9 single-panel LCD projectors as a rear-projection system with 4.12MP as a 12.36MP subpixel system with over 10MP effective resolution. (The laptop panel and rear projection displays were showcased in our IEEE/ACM SC2001 exhibit showing animated CFD results.)

VWLib Applications

Currently, there are several "generic" applications written using VWLib:

pz (Pan Zoom)
This program allows the user to pan and zoom a 2D image on a video wall. Source code is included in the current AFAPI and a simplified version appears on the VWLib reference card.
spz (Spherical Pan Zoom)
This program allows the user to pan and zoom around a spherical 3D space, projecting the "virtual camera" view on the wall. It was in part derived from the mathematics used in the Panorama Tools package, which we use to create the spherical images from pairs of fisheye images. We are not yet generally distributing spz.
vwmpeg (Video Wall MPEG Player)
Starting with the Berkeley MPEG Play decoder, we have built a video wall MPEG player. The player has very few features for controlling the video stream, and does not support audio (although a separate player can be used simultaneously for that), but allows interactive pan and zoom while a video is playing. We are not yet generally distributing vwmpeg.
xecho (Video Wall X Display Replicator)
This is a crude first attempt at putting a standard X display on the video wall. Currently, it simply grabs screen images from an X server running on a single machine and multicasts them to a video-wall cluster that scales and displays them. Due to the slow speed of X server screen capture, the frame rate is not yet high enough to be useful for most applications; we are working on ways to circumvent this problem.

VWLib Distribution

VWLib is distributed as public domain source code within the latest AFAPI distribution.

The Aggregate. The only thing set in stone is our name.