3D Video Viewing System

The free-to-air broadcasting of stereoscopic 3D demos, film trailers and presentations on a number of European satellite channels presents an interesting challenge to anyone wishing to view 3D material without the cost of a 3D TV or projector. Current 3D viewing systems usually involve wearing special glasses and need a large screen to get an "immersive" effect, while deficiencies such as flicker and crosstalk detract from the viewer's experience. My objective was to avoid these problems and to create a viewing system that would give excellent results using readily available equipment.

My final solution requires a reasonably fast computer with a dual-output graphics card and two LCD monitors, but can be made to work with a relatively slow 1.3 GHz laptop and a second monitor. A configuration using two computers and two monitors is also possible, and is potentially capable of displaying 3D videos with the highest definition.

In addition to broadcast material, 3D videos can be downloaded for free from sites such as www.3dtv.at/Movies, and my 3D viewing system works equally well with the nVidia 3D video player system to be found on the 3Dvisionlive website.

3D material is generally broadcast in a "side-by-side" format using a high-definition frame size of 1920 × 1080 pixels, and the left and right images are squashed horizontally to fit half the width. A 3D-TV stretches the two halves to the full width of the screen and either displays them alternately in rapid succession, or uses alternate screen lines with different polarizations. In theory, by wearing synchronised shuttered or passive polarized glasses, the left eye of the viewer sees only the left-hand image while the right eye sees only the right-hand image, but in practice the shuttering or polarizing is not perfect, and crosstalk or ghosting between the two images can be seen.

With my viewing system, the left and right images of the stereoscopic pair are displayed continuously. No special glasses are needed, ghosting and flickering are eliminated, and there is no reduction of image brightness.

To watch 3D videos in 3D, the left and right images are displayed on two LCD panels, which are arranged facing each other at roughly 180 degrees. Two mirrors are mounted exactly half-way between, at about 90 degrees to each other and at 45 degrees to the screens. The viewer sits in front of the two mirrors and sees the left-hand screen image reflected in the left-hand mirror, and the right-hand screen image in right-hand mirror. The geometry is adjusted so that the two displays are visually merged into a single 3D image.

The diagram below illustrates the essential geometry. Here, the angles have been chosen so that the two mirrors are brought forward from the centre line between the two monitors. This results in greater convenience for the viewing position if the monitors are placed on a desktop or table. The geometry in this instance gives a viewing angle of 40 degrees, which is equivalent to watching a 100-inch screen at a distance of 3 metres.

The angle between the two mirrors is 70 degrees, and the two screens are set at the same angle of 70 degrees to the base-line. As a result, the eye-to-screen distances are symmetrical across the screens. Because of the simplicity of this system, the result is pure 3D TV, limited only by the resolution of the monitors and by the quality of the video recording.

Technical Details
In order to display the left and right images on separate monitors with the correct aspect ratio, the computer's display should be set to "span" or "stretched" mode. The squashed side-by-side video can then be stretched across the two monitors, as if they were one monitor with twice the horizontal resolution. Each monitor will display one complete half of the stereo pair. Span mode is not the same as using an extended Windows desktop, but stretches the task bar to fit the full width of the two monitors combined. The desktop wallpaper is stretched across the two screens, and is not simply replicated in each half. A maximized window will be split across the two screens.

Span mode is available for many dual-output graphics cards running under Windows XP, but is not supported natively by Vista or Windows 7. Some ATI graphics cards can be set for spanning across two monitors under Windows 7, using the Catalyst video management or Eyefinity software. If dsiplay spanning is not available with your graphics card and version of Windows, then there are several alternative methods as described in my notes on Splitting SBS Video using VLC and Media Player Classic.

Some 3D videos have the correct aspect ratio without stretching, and the left and right images will fill the left and right screens automatically when played back using Windows Media Player with a full-screen display. Using VLC, there is an option under Tools->Preferences->Video to force the displayed aspect ratio. If this is set to 32:9 then the stretched video will be displayed with the correct 16:9 ratio on both screens.

Some side-by-side 3D material uses a "crossed" format which swaps the left and right images on the display. If the 3D image seems to confuse foreground with background, then the left and right monitor connections are probably the wrong way around and should be swapped over.

Since High Definition 1920x1080 video requires a fast (quad core) machine to play smoothly at full speed, the video material may need to be down-scaled in order to play back without juddering on the available hardware. Using 15-inch monitors with a native horizontal resolution of 1024 pixels, it makes sense to resample the video to give the dimensions of 2048 x 576 pixels. Each half is then displayed with the correct aspect ratio of 16:9 without stretching, and the processor workload is reduced sufficiently for the video to run smoothly at full speed on a 2.4 GHz P4 machine. I use a bitrate of 7 or 8 Mb/s and MPEG-4 compression, with only slight loss of image quality.

More Technical Details
One vital requirement with this system is to use quality mirrors. Ordinary thick mirror glass isn't good enough, owing to reflections off the front surface as well as multiple internal reflections. The result is ghosting, which is particulary noticeable on high-contrast edges as between white lettering on a black background. The solution, of course, is to use first- or front-surface mirrors, which can be bought from specialist suppliers and ebay. Surprisingly good results can, however, be obtained using the very thin rectangular glass mirrors sold by drug stores or chemists. A suitable size is 9 by 12 cm or preferably larger. Some ghosting will be noticed on high-contrast edges but this is mostly insignificant.

When setting up the monitors and mirrors, simple test cards are displayed on the screens, and the angles and positions are adjusted until a visual registration of the left and right images is obtained. For simplicity, the screens and mirrors should be vertical, and some means will be needed to make small adjustments. The geometry does not need to be absolutely precise, because the eyes and brain will make the final correlation. This happens all the time as we change focus from one object to another. The registration of the images should, however, be adjusted as carefully as possible for relaxed viewing without eye-strain.

In the above schematic diagram, the eyes are shown looking straight ahead as if gazing into the distance. This is as it should be. I wear reading glasses so that my eyes can focus easily on the screens, about 16 inches away, while actually being aligned to a distant point. This gives the illusion of looking at a large screen at some distance, comparable to watching a film at a cinema. The effect is more natural and possible conflcts between convergence and focusing are largely avoided. As a matter of fact, my stereoscopic system gives an enhanced viewing experience even with 2D material, because of the control it provides over eye-ball vergence and focussing. The magnified virtual image creates the illusion of a lifelike perception of the scene.

Using Two Computers
In my initial experiments with 3D viewing systems, I split my side-by-side video recordings into two equal halves using the "crop" facility in the powerful freeware program "ffmpeg", to create two files which were played back simultaneously on two computers. The transport stream (TS) recordings were first converted into left and right mp4 files with the dimensions of 960 x 1080 pixels for each half, and a bitrate determined by the "sameq" option to avoid loss of quality at this stage. To obtain the correct aspect ratio for playback, I then resampled the recordings to give the dimensions of 960 x 540 (or 1024 x 576) pixels, with a target bit-rate of 6 Mb/s. The videos would then play smoothly both on my relatively slow laptop, and on my 2.4 GHz desktop machine, with a resolution comparable to that of the LCD screens.

It might be imagined that it would be difficult, if not impossible, to synchronise playback of the left- and right-hand videos on two PCs with different processor speeds to be frame-accurate at 25 fps. This isn't the case. Having been split from the same file, the two files are inherently synchronised, and share the same time-codes. It just takes a quick simultaneous jab on the space bars of the two PC keyboards to start playback in synch, and once started in synch they stay in synch. This assumes that the two PCs are fast enough to play the video at full speed, and that there are no background processes to cause a delay on either side.

To make synchronised playback easier, however, I wired the spacebar key-switches in two old keyboards to a two-pole press-button switch, so that only this switch needed to be pressed to start playback. The use of a two-pole switch meant that the two keyboards remained electrically isolated. The keyboard scanning frequency of typically 100 - 200 Hz was sufficient to give accurate synchronisation at the start of playback, and I watched fast-moving football and tennis in 3D with convincing results.

Because the viewer sees mirror images, I use the "hflip" option in ffmpeg to reverse the images horizontally. The 3D picture is then seen with the correct orientation. There is also an option to flip video when played back using VLC. Since the stereo pair will also be swapped over when using the side-by-side format, however, the left-hand video must go to the right-hand monitor and vice versa, otherwise the 3D perspective will appear to be reversed from front to back as well as from left to right.

As shown below, it is possible to use just one mirror. In this example, the left-hand monitor is viewed directly while the right-hand screen is seen reflected in the mirror. Hence the video on the right side has to be flipped horizontally before being displayed.

Experimental set-up using one mirror and two computers

Arrangement Using a Laptop
The photo below shows a raw TS video file as recorded from 3D-Sat-TV being played back without any pre-processing using Media Player Classic on a 1.3 GHz laptop. The 1920 x 1080 side-by-side video is split equally between the laptop screen and the external monitor, and runs at about 25% of normal speed. With pre-processing and a slight reduction in resolution, full-speed playback is obtained when running VLC.

My 3D viewing system was designed to make the 3D TV experience accessible to anyone with modest DIY skills, using readily available and inexpensive equipment. The quality of the result is limited only by the native resolution of the monitors and of the broadcast material. In this respect, it sets the standard to which other systems can only aspire. There is an element of the antique in my devising of a modified Wheatstone stereoscope, and it might be argued that the restricted viewing position is a significant drawback. Yet 3D cinema-goers are also constrained to sit in their seats, and wear polarised glasses which don't work when the head is tilted. My system is flicker-free, offers a wide field of view and gives a bright and compelling 3D image without ghosting. The three-dimensional space which is recreated in front of the viewer is most impressive!

Contact John Legon

28/11/2011. Last updated 31/8/2012