home | news | research | people | documentation | download | links | contact




Our implementations are meant for research, not production use, and as such are somewhat limited. A brief list of the important features and limitations follows. In deciding which features to include and which to leave out, we followed the general rule that features aiding in video compression (such as skipping low-noise macroblocks in motion predicted images) are always included and tested. Features which simply provide a greater breadth of video formats, (i.e. support for both interlaced and progressive video) were limited to a small working subset.

Features of the Encoder and Decoder:

  • Motion Compensation: support for I, P, and B images
  • Motion Compensation: support for forward, backward, and bidrectionally predicted macroblocks
  • Motion Compensation: picture reordering
  • Variable Length Coding: Huffman encoding
  • Variable Length Coding: custom quantization coefficient tables
  • Image Compression: intra and non-intra macroblock quantization
  • Image Compression: 4:2:0 and 4:2:2 chrominance compression in the decoder, 4:2:0 compression in the encoder
  • Image Compression: Zig Zag Reordering, Discrete Cosine Transform (DCT), and inverse DCT


  • Chrominance format, video width, video height, and number of frames are stream parameters, and thus changes require the stream graph to be recompiled
  • No support for redundant motion vectors or bitstream error recovery
  • Requires the video have a certain set of configuration parameters
  • Video must be progressive scan
  • Encoder does not generate vbv_buffer information
  • Decoder does not enforce profile/level information.
  • Encoder does not use bitrate feedback to adjust quantization level

Our decoder does not enforce profile/level restrictions. (For instance, if the bitstream low_delay value indicates that the bitstream cannot contain B pictures, the decoder will not enforce this.) As such, it is possible that certain invalid MPEG-2 bitstreams would decode without generating an error message.