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 only thing set in stone is our name.