From XiphWiki
Revision as of 20:15, 5 December 2005 by Pmsyyz (talk | contribs)
Jump to navigation Jump to search

Theora is our video codec, based on the VP3 codec donated by On2 Technologies. We've refined and extended it, giving it the same future scope for encoder improvement Vorbis has. See for more information.


Features available in the Theora format (and a comparison to VP3 and MPEG-4 ASP):

  • block-based motion compensation
  • 8x8 Type-II Discrete Cosine Transform
  • free-form variable bit rates (VBR)
  • adaptive in-loop deblocking applied to the edges of the coded blocks (not existing in MPEG-4 ASP)
  • block sizes down to 8x8 (MPEG-4 ASP supports normally only 16x16)
  • 384 8x8 custom quantization matrices: intra/inter, luma/chroma and even each quant (more than VP3 and MPEG-4 ASP/AVC)
  • adaptive entropy encoding (MPEG-4 ASP does'nt support adaptivity)
  • 4:2:0, 4:2:2, and 4:4:4 chroma subsampling formats (VP3 and MPEG-4 ASP only support 4:2:0)
  • 8 bits per pixel per color channel
  • multiple reference frames (not possible in MPEG-4 ASP)
  • pixel aspect ratio (eg for anamorphic signalling/playback)
  • non-linear scaling of quants values (as done in MPEG-4 AVC)
  • adaptive quantisation down to the block level (as possible in MPEG-4 ASP/AVC)
  • intra frames (I-Frames in MPEG), inter frames (P-Frames), but no B-Frames (as supported in MPEG-4 ASP/AVC)
  • HalfPixel Motion Search Precision (MPEG-4 ASP/AVC supports HalfPixel or QuarterPixel)
  • technologies used already in Vorbis (decoder setup configuration, bitstream headers...) not available in VP3

Note that not all of these features are already implemented in the reference encoder/decoder.


Alpha 5 is the latest release. The bitstream format is frozen. Every file created with the alpha 3 encoder (and, of course, later encoders) will be playable with future decoders. Beta 1 will be the next release.

  • It would be nice if somewhere it could be explained if Theora is a format appropriate for editing video - such formats would not do frame to frame compression and the file size and processor load would be smaller. On the other hand a distribution format would want to pack in a lot of compression which would mean using frame to for compression.


More information

External links