Video Codecs
This page contains information on my investigation of various video
file formats and video codecs. The purpose of this investigation is to
create platform independent (mostly for Unix/Linux based systems) video
playback and encoding software. Another project of my own does some of
this, but no details/source code/etc have yet been published. Instead,
some of the decoders I have worked on are slowly being incorporated into
the MPlayer Linux video playback software
project.
Id Software Quake Cinematics (.cin and .RoQ)
Some time ago saw the start of a popular series of first person
perspective games created by Id Software called Quake. To enhance
the single player story in Quake II cinematics were included.
In essence, the Quake II cinematics are a audio and visual sequence where
the audio is stored in a raw pcm format, and the 8-bit colour lookup table
based video is coded using a two-pass loss-less Huffman coder. More
detail may be found in the following links:
The third release of the Quake series saw significant improvements in
the rendering engine and the inclusion of a more advanced video coding
technique. This video coder has also been used in several other earlier
games as well as the recent Return to Castle Wolfenstein. In this
format, the audio is DPCM coded and the video is coded using motion
blocks and vector quantisation.
Radius Cinepak (CVID) for AVI and QT
The Cinepak codec is a relatively old coding technique that is still
infrequently used today. Its advantage comes from computational simplicity
at the decoder, rather than bit rate versus quality performance. This
codec is basically a vector quantiser with adaptive vector density. Each
frame is segmented into 4x4 pixel blocks, and each block is coded using
either 1 or 4 vectors. For more details, follow these links:
Creative YUV (CYUV) for AVI
Originally designed for the Creative Video Blaster, this video codec
stores frames in a predictively coded YUV411 format. This codec looks to
have been designed for simplicity and speed.
Microsoft Video 1 (MSVC/CRAM/WHAM) for AVI
Yet another computationally simple codec. A frame may be coded using
either eight or sixteen bits per pixel (as determined by the AVI header).
Each frame is segmented into 4x4 pixel blocks, and each block is coded
using a reduced number of colours (either 1, 2, or 8).
In-depth documentation of this codec can be found on
this site.
Indeo Video 3 (IV31/IV32) for AVI and QT - Work in Progress
The Indeo Video 3.2 (IV32) video format is relatively old and has since
been superseded by Indeo Video 4 and 5. Apparently this is a proprietary
blend of color sampling, vector quantisaion and run-length encoding.
Still working on this one - any help would be appreciated.
More to come....
Some colour format info at
Video4Linux.

|