Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Today, looking for the technical explanations about MPEG4, I saw that it can implement the VRML rendering for a 3D video. This makes me wondering about the "software" requirements to make or to see a 3D video. I mean, assuming that I have all the "hardware" requirements(3D monitor, VGA, 3D-camera, etc), what should I need to make and see 3D videos looking over the "software" side? Must I need to make it on MPEG4 instead MPEG1 or MPEG2 because of the VRML support? May I need a specifc 3D codec to open and see 3D videos?? Until today, I believed that a 3D video was just a regular/ordinary video composed of 2 "overlapping layers".

PS: This is the first time I'm researching about technical explanations/references about MPEG standards and 3D videos, any help or basic explanations will help.

share|improve this question
up vote 3 down vote accepted

There is 3D rendering to a 2D view, and 2Eye 3D , where each eye gets some sort of different picture.

VRML is 3D Cad drawings usually displayed in 2D.

Every video codec in existance, is capable of some sort of 2Eye 3D. every piece of picture or video programs is capable of creating editing displaying at least Some sort of 2Eye 3D. Because there are many different methods of sending different information to each eye.

So first we have to seperate the 2 things "3D displayed in 2D"
From "2Eye 3D" or Stereoscopic

Then We have to determine the "type" of Stereoscopic 3D that is wanted or desired, or required, even the best methods have some big problems sending 2 seperate pictures to each eye.

Simplest and worst 3D is Anaglyphic
Anaglyphic 3D , to define the 2 different pictures , any sort of color filtering is done to the 2 different pictures, then the 2 pictures are merged, color filters are placed in front of the eyes. The filters in front of the eyes, attempt to re-seperate the merged pictures by filtering out the color to the eyes.

With Video or pictures, there is nothing different about software hardware, or even analog or digital or even standard photographs for displaying , rendering, or even encoding or re-encoding , resizing, or displaying the anaglyph. No special hardware is needed to view it, no special software is needed. Just the right color filters over the eyes

Every video package and photo program in existance even 10+ years ago, had in it some manuel capability to merge 2 pictures to view with this method, by merging of still or moving image data. Any huge 3D speciality to the software to do anaglyph, just makes it much easier to do.

Side by Side and Top Bottom
2 different pictures in one, intended to be displayed to 2 different eyes. Hardware was used to send the specific 1/2 of the moving picture to different eyes. Any of the methods of 2Eye 3D viewing could then view 3D using special hardware.

The only thing special about any software that would create, work with or alter this type would be just to create the 2 zones, 2 different pictures, for each eye, and to maintain them as seperate zones.

I am trying to indicate that again, nothing was that special about the picture format, picture type, or video type or codec. 1/2 the total resolution (half the picture) is sent to each eye, therfore no 2x frame rate was required.
Most of the high end software both video and picture could create and work with 2 pictures merged in this manner. any software that was 3D specialty made doing it much easier.

Special hardware was used to split and display to each eye, via 2Eye Viewers, or many of the other special eye seperation methods used today.
Like LCD light valve eye blanking

Interlace or Interleaved
NTSC analog video signals , and still digital television signals for NTSC (north america and japan) use Interlace. Interlace is having 2 different pictures interleaved every other line.

Some methods of 2Eye 3D display used this interleaving 2 feilds of pictures, and eye blocking or eye viewer (HMD) methods again, a piece of hardware would display the 2 seperate feilds one at a time , it could also be displayed on a fast phosphor interlace CRT using eyeblocking, but the CRT phosphor persistance made it so the seperation was not so good.

Again, there is nothing really special about interlace video, NTSC television has been displaying an interlace signal for >50 years. They were using the interlaced seperate picture to display motion at a percieved 60fps rate. Most codecs have design that keeps interlace correct. As you can figure resizing is not as easy.

There is something special about creating a still picture, and photographs, and digital stills interleaved. Any Photo program that could easily create a interleaved picture would be special.

Software that Split interleave video into 2 seperate pictures and reassemble it has existed for 10+ years. Any high end video programs, and video utilities have been able to dissect alter, edit and easily work with a Interlaced signal. With freeware software and 2 cameras all of the above methods could be created on your computer, with manuel labor.

So far, we don't really have any big difficulty here with codecs or frame rates , 1/2 the whole picture is displayed to each eye, reducing the effective total resolutions, data rate is the same. Most of the sofware was capable of working with it, for video software interlace was a necessity already.

Next is ramping it up by page flipping, full resolution pictures with high frame rates.

Alternate Frames
For rendered 3D for games and cad type 3D rendered in stereoscope by the GPU, they can render an "offset frame" of the same 3D scene on the computer, and flip a whole new scene up for each eye. Alternate eye blocking methods can be used (or other more sofisticated hardware). The V-sync is usually required to be on, that being the switch point, so any slowdowns from V-sync rendering will be added to the slowdowns from making 2 frames, one for each eye.

This method works good for the GPU renders, and ok for the data going to the monitors uncompressed full data.
But lets try this trick with the usual Video compression codecs. Every other frame in the video is going to the other eye. The slight offset of picture, means a majority of the pixels Change. Because animation compression in a codec is built on the previous frames, even vector based compression (this block of pixels moved over here) would have a really hard time. A completly different method of compression , where alternate frames were built on alternate frames might be used . Normal compression methods , when every other frame slaps back and forth between offsets, is not going to compress well at all.

By side-by-side or top-bottom stacking of these frames , there really isnt 2 completely different frames alternating, instead just use a Double resolution frame (full res pics for each eye). The compression of the animation of the 2 pictures stacked, is similar to how it is with one picture, with just more data.

So what works good for live render on the machine via the GPU is not going to work well for simple video compression codecs.
UN-compressed video would not have that problem, because the next frame is not built on the previous frame. An Example uncompressed 1920x1080x50+fps requires a data rate so high that the average hard drive would not be able to keep up (My raid can barely keep up with 1 fully uncompressed at 30Fps).

With every other full res frame of a video animation changing from eye 2 eye, everything becomes a LOT harder, and no standard video stuff could easily handle pulling that off yet.

So until something changes , there might be 2 methods used on any single 3D computer platform, one that works best for a GPU render (flipping frames), and One that works well for video (both pics in 1 frame).

share|improve this answer
Nice explanation. Thank you. – Diogo Mar 26 '12 at 14:30

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.