The Vidboard

The Vidboard is a video capture and processing board which connects
directly to the VuNet. It is capable of
generating video streams having a wide variety of characteristics
relating to the presentation of video (e.g. picture size, color space,
frame rate) and transport of video across a network (e.g. protocols
for traffic and transport). Devices within the system use a set of
ATM protocols for requesting video from the Vidboard.
For a more detailed description than what is provided below, click
on "The Vidboard: A Video Capture
and Processing Peripheral for a Distributed Multimedia System".
Motivation
The Vidboard was designed for the following two reasons:
- To experiment with a distributed systems architecture in which
multimedia peripherals are connected directly to an ATM network rather
than a workstation I/O bus.
- To build a video capture board capable of generating
high-bandwidth video streams, e.g. full-motion frame rate (30 frames/s)
at high resolution (640x480).
Hardware Description
The Vidboard consists of five principle modules: Front-end, Format
Convert, Frame Memory, DSP (digital signal processor) and Network
Interface. The Front-end digitizes an NTSC video signal and sends the
digital video to the Format Convert module, which organizes how it is
stored in the Frame Memory. The DSP then reads the video data from
the Frame Memory, processes it in any way needed, packages it into ATM
cells, and sends the cells to the VuNet via the Network Interface.
The key modules are described in more detail below.
- The Front End executes the actual video capture operation on the
board. It consists of a digital video chipset from Philips. The
chipset supports a wide range of features for generating digital video
streams with different characteristics. The chipset captures one of
three NTSC television signals to a resolution of 640x480 pixels. The
pixels are quantized to 24 bits in either the RGB or YUV
(luminance-chrominance) color space.
- The Frame Memory consists of 3 MBytes of VRAM logically organized into
two banks, each bank capable of storing one video frame. The two
memory banks are used to buffer the video so that one frame can be
transmitted while the other is being captured in real-time. Digital
video data is written into the memory through the VRAM serial access
memory port on a scan line basis and read by the DSP through the
conventional DRAM port. The DSP has random access to the video data
which facilitates many of the operations involved in video processing
such as spatial subsampling.
- The Vidboard is centered around the Texas Instrument C30 DSP which
acts as a pixel engine, a command dispatcher and the board controller.
During video transmission, the DSP acts as a pixel engine. Digital
video data is read from the Frame Memory, possibly processed in some
way, packaged into ATM cells and written to the network. The DSP's
dual bus structure allows the video data to flow through the
processor as it is moved from the memory to the network.
The Vidboard design was fabricated into a printed-circuit board in
January 1992. The board consists of four signal layers and its
dimensions are 13.85in by 9.15in. Cost of a complete board is $1400
in prototype quantities.
Software Description
The functionality of the Vidboard is defined by the code running on the
C30 DSP. The code is currently partitioned into three types of activity:
- A function library which contains the functions the Vidboard
can execute. These consist of video capture, processing and
transmission routines as well as those for diagnostics and network
management. Devices within the VuNet system
use an ATM protocol to access these functions. This protocol consists
of sending cells, called command cells, with information related to
the function to be executed.
- A simple operating system consisting of a command displatcher for
receiving and interpreting command cells from other devices with the
VuNet.
- Boot code which supports downloading new versions of the
function library to the EEPROM program memory.
Currently, the Vidboard supports a function library for generating
video streams having a variety of presentation and network
characteristics. The video streams are targetted for use with a
workstation in video-in-a-window and video recording type
applications.
This function library supports the following options:
- Color spaces: 8-bit black and white, 24-bit RGB or YUV, and 8-bit
dithered color.
- Picture sizes: 640x480 which can be subsampled by 2, 3 and 4.
- A network transport protocol that is similar to AAL5 except the
CRC is replaced by a checksum.
- A network traffic protocol in which data is sent in bursts of
cells. The burst length and delay between bursts are chosen by the
user. This allows the user to pace the video stream and tailor it to
the speed of its network interface.
- A closed-loop method for requesting video frames has been
implemented to allow for the frame rate to be varied over the course
of a video session. This makes it possible to decouple the frame rate
of the Vidboard from that of the analog television source which is
being captured, allowing easier integration of digital video into the
non real-time world of computer systems.
- Capture and decoding of closed-caption information.
Performance benchmarks
Here are some performance benchmarks for the Vidboard. These frame
rates are for video streams generated by the Vidboard and transmitted
across the VuNet to an Alpha workstation for
display in a video-in-a-window application. These benchmarks are
constantly evolving as improvements are made to the hardware and
software involved at each point in the video path.
- Black and white: 640x480 - 13.5 frames/s (fps), 320x240 - 30
fps. This rate is currently limted by operating system bottlenecks on
the Alpha workstation. The Vidboard is capable of 30 fps at all picture sizes.
- Dithered 8-bit color: 640x480 - 4.3 frames/s (fps), 320x240 - 15
This rate is currently limted by the Vidboard which implements the
compute-intensive dithering algorithm.
