This page has been created to document MPEG Z/Alpha, an MPEG2 video file extension for the storage of depth and transparency information.
Presentation, Examination talk
MSc thesisFor an overview of the format's inner workings, please read Gernot Ziegler's diploma thesis on this subject.
VideosThese movies, created with the TexMPEG library, show possible applications of the file format.
Relief texture merger of several images with depth maps (movie shows only merging of still RPF images)
If you have any questions on MPEG Z/Alpha, feel free to mail to email@example.com.
Recently, there has been increased interest in the usage of streaming video textures in 3D applications. Streaming video textures are textures that continously change, mostly based on media data stored in a common video format.
Figure 1. Video rendered as 3D pixels, each pixel is offset
from its 2D video position, based on its luminance value.
Technical backgroundGstreamer provides YUV planes of the video frames that are uploaded as 3 luminance only textures (using Pixel Buffer Objects, PBO).
Instead of drawing a simple quad with these textures, an array of point primitives is being generated, one for each video pixel.
A Vertex Buffer Object (VBO), bound to the same memory area as the PBO, holds the original 2D positions of the points, and grants access to the Y (luminance) values.
A vertex shader reads the point array, and displaces them according to the provided Y values. The following fragment shader reconstructs the RGB pixel colors from the 3 given luminance textures, using a commonly known YUV->RGB conversion formula.
It is important to note that this video effect is not the only one achievable with this technology.
The sourcecode is available on request.
Comments and ideas are very welcome!TexMPEG is an advanced MPEG2 software decoder for IRIX and Linux systems, able to utilize multiple CPUs and able to play several MPEG files simultaneously (see picture).
A simple OpenGL demo, 150 lines
It fits perfectly as an MPEG2 player for all applications where it is neccessary to retain control over the video output, such as: