Technical Specs The frame capturing and transmitting system is assembled in a backpack. It is done in such a way that the user carrying the backpack just has to wear the backpack and put on the helmet attached to the backpack. Wearing the backpack and helmet, the user is free to walk around the place capturing and transmitting real time stereoscopy video. (Figures 1 and 2)
Hardware Most of the components used are commodity components. It facilitates acquisition and the costs are not prohibitive to build in large scale. Also, commodity components are easily available at local retail stores, which in part, make them widely used under Linux therefore making installation and configuration of the devices involved practical. Frame Capture and Transmission - Server Firewire IEEE 1394 cameras from Point Grey [14] were used to do the frame acquisition. These cameras are able to capture frames at the resolution of 640x480 (GRAY – Bayer CCD Filter [15]) per frame at a speed of 30 frames per second. These cameras have some specific features that are required in this prototype. The first one is that they are hardware synchronized for frame capturing, meaning that both frames will be captured at exactly the same time. This is crucial for the correct formation of the stereo pair. The second one is that these cameras have an extended CCD version. This version makes it possible to position the camera lenses in a way to provide the correct parallax calibration (Figure 3).
The cameras were connected to a Pentium IV laptop. This machine is responsible for receiving the frames from the cameras, coding them to JPEG through software and then packaging them so they are ready to be sent. The laptop was configured with Linux Fedora Core 1. Currently Linux support most of Firewire and wireless PCMCIA adapters. We used a DLink 802.11 a/b/g PCMCIA wireless card. However we did not owned an 802.11g Access Point to test the system, when this research was done. (Figure 4)
Due to the specification of the IEEE1394 protocol concerning power usage,
most laptops do not provide a powered Firewire port. Also, most of them
carry only one Firewire port. To solve this issue, a Firewire hub was
used to provide both power and the additional Firewire port to connect
two cameras. In order to make the system fully portable, the Firewire
hub had to be powered through the usage of a small battery. On the client side, there are a few options to visualize the stereoscopic
video data. For single user visualization, one machine with a stereo capable
video card and a stereo active monitor was used. Although active glasses
are needed to visualize the stereo video, this technology is becoming
commodity nowadays. See Figure 5 for a schematic representation of the
client side.
C++ language was used to develop the system. GNU GPL libraries for IEEE1394
camera interface were used in order to capture frames from the cameras.
These libraries are libdc1394 and libraw1394 [20].
To support contiguous display of a frame (stereo pair), our implementation is using the solution described on [21], which states the following: “For contiguous display of an object X, X is partitioned into n equi-sized blocks: X0, X1, …, Xn-1 where n is a function of the block size (B) and the size of X”. The time required to display a block is defined as a time period (T). In our case, R is the fixed bandwidth required to display the whole
block of video X. With this technique, when an object X is required by
the client, the system stages X0 transmit X0 and the client initiates
its display. Prior to the completion of a time period, the client initiates
the retrieval of X1, in order to ensure a continuous display. The process
is repeated indefinitely until the termination of the client program.
|