Uncompressed Video Disk I/O: Introduction and Scope
This case study explores the topic of recording and playing back
full-size, full-rate uncompressed video on disks attached to your SGI
workstation. It assumes that the video passes through main memory as
fields (VL_CAPTURE_NONINTERLEAVED) on its way between the video and
disk subsystems. Many of the topics we will discuss also apply to
other capture types.
These pages do not cover external video disk recorders such as those
from Abekas or Accom. External video disk recorders record and play
back video in real-time using their own video inputs and outputs. An
attached computer issues play/stop/record/seek commands to the disk
recorder, and can upload or download video data, typically in
non-real-time, over a serial, ethernet, SCSI, or GIO link.
These pages do not yet cover recording and playing synchronized audio
along with the video.
We will show you SGI Movie Library calls you can use to efficiently
read and write uncompressed video in a QuickTime file.
The lurker page How Big is Video?
shows you how to determine the pixel rate of full-rate, full-size
video with the 4 major video timings, and computes bytes per second
values assuming 2 and 4 bytes per pixel. From this, you can see that
the bandwidth requirement varies wildly depending on the pixel format
used and whether one is capturing the active picture or the
full-raster. The wimpiest format (NTSC active region at 2 bytes per
pixels) comes out at 17.947Mb/sec, so clearly we're talking bandwidths
that stretch the limits of low-end systems.
Applicable Video Devices
Of the video devices described in the lurker's guide (see What Are the SGI Video Devices? for a
complete list and definitions), these devices can transfer full-size,
full-rate uncompressed video to and from memory:
- sirius (Challenge/Onyx)
- divo (Origin 200/Origin 2000/Onyx2)
- ev3 (Indigo2/Octane)
- cosmo2 (Indigo2/Octane)
- mvp (O2)
All the devices in this list support the 2-byte-per-pixel 4:2:2
VL_PACKING_YVYU_422_8 packing at full-rate. Many of them also have
full-rate support for various RGBA and 4:2:2 and 4:4:4 YCrCb packings
ranging from 2 to 8 bytes per pixel.
The Pixel Rosetta Stone: Packings and
Colorspaces discusses the packings in detail and indicates which
are supported in real-time by which devices.
The vino (built-in Indy) device can bring video into memory at
full-size and full-rate. This case study currently does not discuss
uncompressed video disk i/o with this combination, though
theoretically it is possible (since one can insert a GIO card to get
the required disk bandwidth).