Comparison of video codecs

Α video codec is software or a device that provides encoding and decoding for digital video, and which may or may not include the use of video compression and/or decompression.

The compression may employ lossy data compression, so that quality-measurement issues become important. Shortly after the compact disc became widely available as a digital-format replacement for analog audio, it became feasible to also store and use video in digital form. A variety of technologies soon emerged to do so. The primary goal for most methods of compressing video is to produce video that most closely approximates the fidelity of the original source, while simultaneously delivering the smallest file-size possible. However, there are also several other factors that can be used as a basis for comparison.

Introduction to comparison

The following characteristics are compared in video codecs comparisons:

Video quality

The quality the codec can achieve is heavily based on the compression format the codec uses. A codec is not a format, and there may be multiple codecs that implement the same compression specification – for example, MPEG-1 codecs typically do not achieve quality/size ratio comparable to codecs that implement the more modern H.264 specification. But quality/size ratio of output produced by different implementations of the same specification can also vary.

Each compression specification defines various mechanisms by which raw video (in essence, a sequence of full-resolution uncompressed digital images) can be reduced in size, from simple bit compression (like Lempel-Ziv-Welch) to psycho-visual and motion summarization, and how the output is stored as a bit stream. So long as the encoder component of the codec adheres to the specification it can choose any combination of these methods to apply different parts of the content. The decoder component of a codec that also conforms to the specification recognises each of the mechanisms used, and thus interprets the compressed stream to render it back into raw video for display (although this will not be identical to the raw video input unless the compression was lossless). Each encoder implements the specification according to its own algorithms and parameters, which means that the compressed output of different codecs will vary, resulting in variations in quality and efficiency between them.

Prior to comparing codec video-quality, it is important to understand that every codec can give a varying degree of quality for a given set of frames within a video sequence. Numerous factors play a role in this variability. First, all codecs have a bitrate control mechanism that is responsible for determining the bitrate and quality on a per-frame basis. A difference between variable bitrate (VBR) and constant bitrate (CBR) creates a trade-off between a consistent quality over all frames, on the one hand, and a more constant bitrate, which is required for some applications, on the other. Second, some codecs differentiate between different types of frames, such as key frames and non-key frames, differing in their importance to overall visual quality and the extent to which they can be compressed. Third, quality depends on prefiltrations, which are included on all present-day codecs. Other factors may also come into play.

For a sufficiently long clip, it is possible to select sequences that have suffered little from the compression, and sequences that have suffered heavily, especially if CBR has been used, whereby the quality between frames can vary highly due to different amounts of compression needed to achieve a constant bitrate. So, in a given long clip, such as a full-length movie, any two codecs may perform quite differently on a particular sequence from the clip, while the codecs may be approximately equal (or the situation reversed) in quality over a wider sequence of frames. Press-releases and amateur forums sometimes select sequences known to favor a particular codec or style of rate-control in reviews.

Objective video quality

Objective video evaluation techniques are mathematical models that seek to predict human judgments of picture quality, as often exemplified by the results of subjective quality assessment experiments. They are based on criteria and metrics that can be measured objectively and automatically evaluated by a computer program. Objective methods are classified based on the availability of an original pristine video signal, which is considered to be of high quality (generally not compressed). Therefore, they can be classified as:

Subjective video quality

This is concerned with how video is perceived by a viewer, and designates their opinion on a particular video sequence. Subjective video quality tests are quite expensive with regard to time (preparation and running) and human resources.

There are many ways of showing video sequences to experts and recording their opinions. A few of them have been standardized, mainly in ITU-R Recommendation BT.500-13 and ITU-T Recommendation P.910.

The reason for measuring subjective video quality is the same as for measuring the Mean Opinion Score for audio. Opinions of experts can be averaged, and the average mark is usually given with confidence interval. Additional procedures can be used for averaging. For example, experts who give unstable results may be rejected (for instance, if their correlation with average opinion is low).

In case of video codecs, this is a very common situation. When codecs with similar objective results show results with different subjective results, the main reasons can be:

It is difficult to use long sequences for subjective testing. Commonly, three or four ten-second sequences are used, while full movies are used for objective metrics. Sequence selection is important — those sequences that are similar to the ones used by developers to tune their codecs are more competitive.

Performance comparison

Speed comparison

Number of frames per second (FPS) commonly used for compression/decompression speed measurement.

The following issues should be considered when estimating probable codec performance differences:

So, for example, codec A (being optimized for memory usage – i.e., uses less memory) may, on modern computers (which are typically not memory-limited), give slower performance than codec B. Meanwhile, the same pair of codecs may give opposite results if running on an older computer with reduced memory (or cache) resources.

Profiles support

Modern standards define a wide range of features and require very substantial software or hardware efforts and resources for their implementation. Only selected profiles of a standard are typically supported in any particular product. (This is very common for H.264 implementations for example.)

The H.264 standard includes the following seven sets of capabilities, which are referred to as profiles, targeting specific classes of applications:

The standard also contains four additional all-Intra profiles, which are defined as simple subsets of other corresponding profiles. These are mostly for professional (e.g., camera and editing system) applications:

Moreover, the standard now also contains three Scalable Video Coding profiles.

An accurate comparison of codecs must take the profile variations within each codec into account.

See also MPEG-2 Profiles and Levels.

Supported rate control strategies

Videocodecs rate control strategies can be classified as:

Variable bitrate (VBR) is a strategy to maximize the visual video quality and minimize the bitrate. On fast-motion scenes, a variable bitrate uses more bits than it does on slow-motion scenes of similar duration, yet achieves a consistent visual quality. For real-time and non-buffered video streaming when the available bandwidth is fixed – e.g. in videoconferencing delivered on channels of fixed bandwidth – a constant bitrate (CBR) must be used.

CBR is commonly used for videoconferences, satellite and cable broadcasting. VBR is commonly used for video CD/DVD creation and video in programs.

Software characteristics

Codecs list

General video codec information — creator/company, license/price, etc.
Codec Creator/Maintainer First public release date Latest stable version License Patented compression formats Compression method OpenCL support nVidia CUDA support ATI Stream/AMD APP support Intel AVX support Intel Quick Sync Video support
libtheora (Theora) Xiph.org 2002-09-25 1.1.1 (2009)[1] BSD-style[2] Patented, but freely licensed[*] lossy Unknown Unknown Unknown Unknown Unknown
dirac-research (Dirac) BBC Research Department 2008-09-17 1.0.2 (2009)[3] MPL 1.1, GNU GPL 2, GNU LGPL 2.1 none lossy/lossless Unknown Unknown Unknown Unknown Unknown
Schrödinger (Dirac) David Schleef 2008-02-22 1.0.11 (2012)[3] MPL 1.1, GNU GPL 2, GNU LGPL 2, MIT License none lossy/lossless Unknown Yes Unknown Unknown Unknown
x264 x264 team 2003 2638(2015)[4] GNU GPL MPEG-4 AVC/H.264 lossy/lossless Yes No No Yes Unknown
x265 x265 team 2013 2.4+9(2017)[5] GNU GPL HEVC/H.265 lossy/lossless Yes Yes Yes Yes Unknown
Xvid Xvid team 2001 1.3.4 (2015)[6] GNU GPL MPEG-4 ASP lossy Unknown Unknown Unknown Unknown Unknown
FFmpeg (libavcodec) FFmpeg team 2000 3.1.2 (2016)[7] GNU LGPL MPEG-1, MPEG-2, MPEG-4 ASP, H.261, H.263, VC-3, WMV7, WMV8, MJPEG, MS-MPEG-4v3, DV, Sorenson codec etc. lossy/lossless No No No Yes No
FFavs (libavcodec) FFavs team 2009 0.0.3[8] GNU LGPL MPEG-1, MPEG-2, MPEG-4 ASP etc. lossy/lossless Unknown Unknown Unknown Unknown Unknown
Blackbird Forbidden Technologies plc 2006-01 2 Proprietary Blackbird lossy Unknown Unknown Unknown Unknown Unknown
DivX DivX, Inc. 2001 DivX Plus (2010)[9] Proprietary MPEG-4 ASP, H.264 lossy Unknown Unknown Unknown Unknown Yes[10]
DivX ;-) a hack of Microsoft's MPEG-4v3 codec[11][12] 1998 3.20 alpha[13] (2000) Proprietary Microsoft's MPEG-4v3 (not MPEG-4 compliant) lossy Unknown Unknown Unknown Unknown Unknown
3ivx 3ivx Technologies Pty. Ltd. 2001 5.0.5 (2012)[14] Proprietary MPEG-4 ASP lossy Unknown Unknown Unknown Unknown Unknown
Nero Digital Nero AG 2003 Unknown Proprietary MPEG-4 ASP, H.264[15] lossy Unknown Unknown Unknown Unknown Unknown
ProRes 422 / ProRes 4444 Apple Inc. 2007 Proprietary Unknown lossy Unknown Unknown Unknown Unknown Unknown
Sorenson Video Sorenson Media 1998 Proprietary Sorenson Video lossy Unknown Unknown Unknown Unknown Unknown
Sorenson Spark Sorenson Media 2002 Proprietary Sorenson Spark lossy Unknown Unknown Unknown Unknown Unknown
VP3 On2 Technologies 2000 BSD-style[2] Patented, but freely licensed[*] lossy Unknown Unknown Unknown Unknown Unknown
VP4 On2 Technologies 2001 Proprietary VP4 lossy Unknown Unknown Unknown Unknown Unknown
VP5 On2 Technologies 2002 Proprietary VP5 lossy Unknown Unknown Unknown Unknown Unknown
VP6 On2 Technologies 2003 Proprietary VP6 lossy Unknown Unknown Unknown Unknown Unknown
VP7 On2 Technologies 2005 Proprietary VP7 lossy Unknown Unknown Unknown Unknown Unknown
VP8 On2 Technologies (now owned by Google) 2008 1.1.0 (2012) BSD-style Patented, but freely licensed lossy Unknown Unknown Unknown Unknown Unknown
VP9 Google 2013 BSD-style Patented, but freely licensed lossy/lossless Unknown Unknown Unknown Unknown Unknown
DNxHD Avid Technology 2004 Proprietary VC-3 lossy Unknown Unknown Unknown Unknown Unknown
Cinema Craft Encoder SP2 Custom Technology Corporation 2000 1.00.01.09 (2009)[16] Proprietary MPEG-1, MPEG-2 lossy Unknown Unknown Unknown Unknown Unknown
TMPGEnc Free Version Pegasys Inc. 2001 2.525.64.184 (2008)[17] Proprietary MPEG-1, MPEG-2 lossy Unknown Unknown Unknown Unknown Unknown
Windows Media Encoder Microsoft 1999 9 (2003) (WMV3 in FourCC) Proprietary WMV, VC-1, (in early versions MPEG-4 Part 2 and not MPEG-4 compliant MPEG-4v3, MPEG-4v2) lossy Unknown Unknown Unknown Unknown Unknown
Cinepak Created by SuperMac, Inc.

Currently maintained by Compression Technologies, Inc.[18]

1991 1.10.0.26 (1999) Proprietary Unknown lossy Unknown Unknown Unknown Unknown Unknown
Indeo Video Intel Corporation, currently offered by Ligos Corporation 1992 5.2 Proprietary Indeo Video lossy Unknown Unknown Unknown Unknown Unknown
TrueMotion S The Duck Corporation 1995 Proprietary TrueMotion S lossy Unknown Unknown Unknown Unknown Unknown
RealVideo RealNetworks 1997 RealVideo 10[19] Proprietary H.263, RealVideo lossy Unknown Unknown Unknown Unknown Unknown
Huffyuv Ben Rudiak-Gould 2000 2.1.1 (2003)[20] GNU GPL 2 none Lossless Unknown Unknown Unknown Unknown Unknown
Lagarith Ben Greenwood 2004-10-04 1.3.27 (2011-12-08)[21] GNU GPL 2 none Lossless Unknown Unknown Unknown Unknown Unknown
MainConcept MainConcept GmbH 1993 8.8.0 (2011) Proprietary MPEG-1, MPEG-2, H.264/AVC, H.263, VC-3, MPEG-4 Part 2, DV, MJPEG etc. lossy Yes[22] Yes[23][24] Unknown Unknown Yes[25]
Elecard Elecard 2008 G4 (2010)[26] Proprietary MPEG-1, MPEG-2, MPEG-4, AVC lossy No Yes[26] No Yes[26] Yes[26]
Codec Creator/Maintainer First public release date Latest stable version License Patented compression formats Compression method OpenCL support nVidia CUDA support ATI Stream/AMD APP support Intel AVX support Intel Quick Sync Video support

* The Xiph.Org Foundation has negotiated an irrevocable free license to Theora and other VP3-derived codecs for everyone, for any purpose.[27] * DivX Plus is also known as DivX 8. The latest stable version for Mac is DivX 7 for Mac.

Native operating system support

Note that operating system support does not mean whether video encoded with the codec can be played back on the particular operating system – for example, video encoded with the DivX codec is playable on Unix-like systems using free MPEG-4 ASP decoders (FFmpeg MPEG-4 or Xvid), but the DivX codec (which is a software product) is only available for Windows and macOS.

Encoder Operating System Support
Codec macOS other Unix & Unix-like Windows
3ivx Yes Yes Yes
Blackbird Yes Yes Yes
Cinepak Yes No Yes
DivX Yes No Yes
FFmpeg Yes Yes Yes
RealVideo Yes Yes Yes
Schrödinger (Dirac) Yes Yes Yes
Sorenson Video 3 Yes No Yes
Theora Yes Yes Yes
x264 Yes Yes Yes
Xvid Yes Yes Yes
Elecard Yes No Yes

Technical details

Codec Compression type Basic algorithm Highest supported bitrate Highest supported resolution Variable frame rate
Blackbird lossy compression Unknown Unknown 384×288 (PAL), 320×240 (NTSC) Yes
Cinepak lossy compression Vector quantization[28] Unknown Unknown Unknown
Dirac lossy/lossless compression Wavelet compression Unlimited[29] Unlimited[29] Yes
Sorenson 3 lossy compression Unknown Unknown Unknown Unknown
Theora lossy compression Discrete cosine transform 2 Gibit/s 1,048,560×1,048,560[30][31] Via chaining[*]
RealVideo lossy compression Discrete cosine transform Unknown Unknown Yes
Elecard lossy compression Unknown Unlimited 16k Yes

* Theora streams with different frame rates can be chained in the same file, but each stream has a fixed frame rate.[30]

Freely available codecs comparisons

List of freely available comparisons and their content description:

Name of comparison Type of comparison Date(s) of publication List of compared codecs Comments
Series of Doom9 codec comparisons Series of subjective comparison of popular codecs
  • 2002
  • 2003
  • 2005
  • DivX4.12, On2 VP3, XviD 1/25 and WMV8 and DivX5.01, XviD 3/27 and ON2 VP4 — at first version
  • Dirac, Elecard AVC HP, libavcodec MPEG-4, NeroDigital ASP, QuickTime 7, Snow, Theora, VideoSoft H.264 HP, XviD 1.1 beta 2 — in last one
Subjective comparison with convenient visualization
Series of MSU annual H.264 codecs comparisons Series of objective H.264 codecs comparisons with MPEG-4 ASP reference
  • 2004
  • 2005 Jan.
  • 2005 Dec.
  • 2006 Dec.
  • 2007 Dec.
  • 2009 May
  • 2010 Apr.
  • 2005 (Jan.): Mpegable AVC, Moonlight H.264, MainConcept H.264, Fraunhofer IIS, Ateme MPEG-4 AVC/H.264, Videosoft H.264, DivX Pro 5.1.1 (Not 264! Used for comparison with H.264 codecs as well tuned codec from previous generation MPEG-4 ASP)
  • 2005 (Dec.): DivX 6.0 (MPEG-4 ASP reference), ArcSoft H.264, Ateme H.264, ATI H.264, Elecard H.264, Fraunhofer IIS H.264, VSS H.264, x264
  • 2006: DivX 6.2.5 (MPEG-4 ASP reference), MainConcept H.264, Intel H.264, VSS H.264, x264, Apple H.264, (partially), Sorenson H.264 (partially)
  • 2007: XviD (MPEG-4 ASP codec), MainConcept H.264, Intel H.264, x264, AMD H.264, Artemis H.264
  • 2009: XviD (MPEG-4 ASP codec), Dicas H.264, Elecard H.264, Intel IPP H.264, MainConcept H.264, x264
  • 2010: XviD (MPEG-4 ASP codec), DivX H.264, Elecard H.264, Intel MediaSDK AVC/H.264, MainConcept H.264, Microsoft Expression, Encoder, Theora, x264
Detailed objective comparisons
Series of Lossless Video Codecs Comparison Two size and time comparisons of lossless codecs (with lossless checking)
  • 2004 Oct.
  • 2007 Mar.
  • 2004 (14 codecs): Alpary v2.0, AVIzlib v2.2.3, CamStudio GZIP v1.0, CorePNG v0.8.2, FFV1 ffdshow 08/08/04, GLZW v1.01, HuffYUV v2.1.1, Lagarith v1.0.0.1, LEAD JPEG v1.0.0.1, LOCO v0.2, MindVid v1.0 beta 1, MSUlab beta v0.2.4, MSUlab v0.5.2, PicVideo JPEG v.2.10.0.29, VBLE beta
  • 2007 (16 codecs): Alpary, ArithYuv, AVIzlib, CamStudio GZIP, CorePNG, FastCodec, FFV1, Huffyuv, Lagarith, LOCO, LZO, MSU Lab, PICVideo, Snow, x264, YULS
in 2007 — more detailed report with new codecs including first standard H.264 (x264)
MSU MPEG-4 codecs comparison Objective comparison of MPEG-4 codecs
  • 2005 Mar.
DivX 5.2.1, DivX 4.12, DivX 3.22, MS MPEG-4 3688 v3, XviD 1.0.3, 3ivx D4 4.5.1, OpenDivX 0.3 Different versions of DivX were also compared. The Xvid results may be erroneous, as deblocking was disabled for it while used for DivX.
Subjective Comparison of Modern Video Codecs Scientifically accurate subjective comparison using 50 experts and SAMVIQ methodology
  • 2006 Feb.
DivX 6.0, Xvid 1.1.0, x264, WMV 9.0 (2 bitrates for every codec) PSNR via VQM via SSIM comparison was also done
MPEG-2 Video Decoders Comparison Objective MPEG-2 Decoders comparison
  • 2006 May.
bitcontrol MPEG-2 Video Decoder, DScaler MPEG2 Video Decoder, Elecard MPEG-2 Video Decoder, ffdshow MPEG-4 Video Decoder (libavcodec), InterVideo Video Decoder, Ligos MPEG Video Decoder, MainConcept MPEG Video Decoder, Pinnacle MPEG-2 Decoder Objectly tested (100 times per stream) decoders "crash test" (test on damaged stream — like scratched DVD or satellite samples)
Codecs comparison Personal subjective opinion
  • 2003 Nov.
3ivx, Avid AVI 2.02, Cinepak, DivX 3.11, DivX 4.12, DivX 5.0.2, DV, Huffyuv, Indeo 3.2, Indeo 4.4, Indeo 5.10, Microsoft MPEG-4 v1, Microsoft MPEG-4 v2, Microsoft RLE, Microsoft Video 1, XviD, 3ivx, Animation, Blackmagic 10-bit, Blackmagic 8-bit, Cinepak, DV, H.261, H.263, Motion-JPEG, MPEG-4 Video, PNG, Sorenson Video, Sorenson Video 3 Sometimes comparison is short (up to one text line per codec)
Evaluation of Dirac and Theora Scientific paper
  • 2009 Mar.
Dirac, Dirac Pro, Theora I, H.264, Motion JPEG2000 (the tested codecs are from Q2-2008) Quite detailed comparison of software available in Q2-2008; However, a buggy version of ffmpeg2Theora was used
VP8 versus x264 Objective and subjective quality comparison of VP8 and x264
  • 2010 Jun.
VP8, x264 VQM, SSIM and PSNR for 19 CIF video clips with bitrates of 100, 200, 500 and 1000 kbit/s

See also

Notes and references

  1. Xiph.Org Foundation (2009) Theora development website - news, Retrieved 2009-10-06
  2. 1 2 "Redirect". Retrieved 22 November 2016.
  3. 1 2 Dirac Video Compression Archived 2008-11-07 at the Wayback Machine., Retrieved on 2009-08-08
  4. x264 - a free h264/avc encoder, Retrieved on 2014-12-28
  5. x265 HEVC Encoder , Retrieved on 2015-12-07
  6. "Xvid.com". Retrieved 2015-12-27.
  7. FFmpeg.org, Retrieved on 2014-12-27
  8. FFavs Archived 2009-12-16 at the Wayback Machine., Retrieved on 2009-08-08
  9. "DivX, Inc.". DivX, Inc. Retrieved 19 May 2011.
  10. "HEVC - DivX Labs". Retrieved 22 November 2016.
  11. VirtualDub VirtualDub documentation: codecs, Retrieved on 2009-08-08
  12. FOURCC.org Video Codecs - Compressed Formats, Retrieved on 2009-08-08
  13. Tom's Hardware (2001-10-22) A Tough Choice: DivX 3.20a Codec Still Better Than DivX 4.01 Codec, Retrieved on 2009-08-08
  14. 3ivx, Retrieved on 2014-12-27
  15. Nero AG What is Nero Digital, Retrieved on 2009-08-08
  16. Custom Technology Corporation CINEMA CRAFT - Download, Retrieved on 2009-08-11
  17. Pegasys Inc. What Is New, Retrieved on 2009-08-11
  18. Compression Technologies, Inc., current maintainer of Cinepak
  19. RealNetworks Products - Codecs Archived 2004-08-04 at the Wayback Machine., Retrieved on 2009-08-07
  20. Huffyuv v2.1.1, Retrieved on 2009-08-09
  21. Lagarith Lossless Video Codec, Retrieved on 2014-03-04
  22. GmbH, MainConcept. "SDKs - Software Development Kits: MainConcept". Retrieved 22 November 2016.
  23. GmbH, MainConcept. "SDKs - Software Development Kits: MainConcept". Retrieved 22 November 2016.
  24. GmbH, MainConcept. "SDKs - Adobe Plugins - Transcoding Software - MainConcept Products: MainConcept". Retrieved 22 November 2016.
  25. 1 2 3 4 "Elecard Group - Codec SDK G4 - h.264 codec, Codec SDK, software development kit, mpeg2 decoder, mpeg-2 decoder, avc codec, MPEG Decoder, MPEG Encoder, MPEG Multiplexer, MPEG Audio Decoder, Graph Viewer, AVC Encoder, AAC Decoder, AAC encoder, mpeg-4, API, sample application, source code". Retrieved 22 November 2016.
  26. Theora.org FAQ: isn't VP3 a patented technology?
  27. Technical description of the Cinepak codec Archived 2007-02-05 at the Wayback Machine.
  28. 1 2 Frame rate, resolution, etc. are coded as variable length data.
  29. 1 2 "Theora format specification" (PDF). (827 KB)
  30. Requires about 3 terabytes per uncompressed frame at maximum resolution (pg 37, Theora I Specification. March 7, 2006)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.