A video codec
is a device or software that enables video compression and or decompression for digital video. The
compression usually employs lossy data compression, so quality measurement issues become important.
Around the time when the compact disc entered the market as a digital-format replacement for analog
audio, it became feasible to also begin storing and using video in digital form, and a variety of such
technologies began to emerge.
Contents
[hide]
• 1 Introduction to comparison
• 2 Video quality
o 2.1 Objective video quality
o 2.2 Subjective video quality
• 3 Performance comparison
o 3.1 Speed comparison
o 3.2 Profiles support
o 3.3 Supported rate control strategies
• 4 Software characteristics
o 4.1 Codecs list
o 4.2 Operating system support
o 4.3 Technical details
• 5 Freely available codecs comparisons
• 6 See also
• Video quality per bitrate (or range of bitrates). Commonly video quality is considered the main
characteristic of codec comparisons. Video quality comparisons can be subjective or objective.
• Performance characteristics like compression/decompression speed, supported profiles/options,
supported resolutions, supported rate control strategies etc.
• General software characteristics, for example:
o Manufacturer
o Supported OS (Linux, Mac OS, Windows)
o Version number
o Date of release
o Type of license (commercial, free, open source)
o Supported interfaces (VfW, DirectShow, etc)
o Price for codec (volume discounts, etc)
Another important issue for comparison is application area. The following application areas need different
codec characteristics:
• Videoconferencing presume
o very fast compression (minimum delay and similar compression time for all frames)
o very fast decompression (minimum delay)
o pretty good error resistance
o good quality characteristics for low bitrates
o camera artefacts suppression is welcome
• DVD or MPEG-4 CD video compression presume
o maximum quality compression (maybe multipass: 2-pass compression)
o fast decompression (but constant delay with buffering is possible)
o error resistance mechanism implementation is welcome, but not critical
o maximum quality characteristics for high and medium bitrates
o typical video processing (like automatic denoising, deinterlacing) is welcome.
So for comparison of best DVD MPEG-2 codec with base profile videoconferencing H.264 implementation
can cause some confusing issues and generally wrong results. Such method of codecs comparison was
widely used for marketing materials preparation during dot-com bubble.
The quality the codec can achieve is heavily based on the compression format the codec uses. A codec is
not a format, and there can 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 vary, too.
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. Firstly, all codecs have a bitrate control mechanism which is responsible for determining the
bitrate and quality on a per-frame basis. A difference between variable bit rate VBR and constant bit rate
CBR creates a trade-off between a consistent quality over all frames, and a more constant bitrate, which is
required for some applications. Secondly, 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. Thirdly, quality depends on prefiltrations, that is included on all present-day
codecs. Other factors can also come into play.
For a sufficiently long clip, it is possible to select sequences which have suffered little from the
compression and sequences which have suffered heavily, especially if CBR was used, in which the quality
between frames can vary highly due to different amounts of compression needed to achieve a constant
bitrate. So, in any one 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[citation needed].
Objective video evaluation techniques are mathematical models that approximate results of subjective
quality assessment, but 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 the original video signal, which is considered to be of high quality (generally not compressed).
Therefore, they can be classified as:
• PSNR - the most widely used video quality metric during last 20 years (used approximately in
99% of scientific papers and in 20% of marketing materials)
• SSIM - new metric (was suggested in 2004) shows better results, than PSNR with reasonable
computational complexity increasing.
• some other metrics was also suggested by VQEG, private companies and universities, but not so
popular.
Main comparison method is so called "RD-curve" (Rate/Distortion chart), where Y-axis used for metric
value and X-axis used for bitrate.
• Blocking measure - measurement power of so called "blocking artifact" (very annoying without
deblocking filter usage on low bitrates)
• Blurring measure - measurement of common video blurring (washout)
• etc
It is concerned with how video is perceived by a viewer and designates his or her opinion on a particular
video sequence. Subjective video quality tests are quite expensive in terms of time (preparation and
running) and human resources.
There is an enormous number of ways of showing video sequences to experts and to record their opinions.
A few of them have been standardized. They are thoroughly described in ITU-R recommendation BT.500.
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; average mark is usually given with confidence interval.
Additional procedures can be used for averaging, for example experts who give unstable results can be
rejected (for instance, if their correlation with average opinion is small).
In case of video codecs this is very common situation. When codecs with similar objective results show
results with different subjective results, the main reasons can be:
• Pre- and postfilters are widely used in codecs. Commonly codecs use prefilters like video
denoising, deflicking, deshacking and etc. Denoising and deflicking are commonly save the same
PSNR value, but increase visual quality (best slow denoising filters also increase PSNR on middle
and high bitrates). Deshacking seriously decrease PSNR, but increase visual quality. The same
situation with postfilter - deblocking and deringing are save PSNR, but increase quality. Graining
(suggested in H.264) essentially increases video quality especially on big plasma screens, but
decrease PSNR.
Note: All filters worsen compression/decompression time, so they increase visual quality, but
decrease speed.
• Motion estimation (ME) search strategy can also cause different visual quality for the same
PSNR. So called true motion search commonly will not reach minimum SAD values in codec ME,
but may result in better visual quality. Also such methods require more compression time.
• Rate control strategy. VBR commonly cause better visual quality marks than CBR for the same
average PSNR values for sequences.
For subjective video comparison it's difficult to use big amount of sequences. Commonly 3-4 10 seconds
sequences are used in comparison with full movies compared with objective metrics. So sequences
selection become pretty important (as far as those sequences will be close to the developers codec tuned
sequences, their results will be more competitive).
Number of frames per second (FPS) commonly used for compression/decompression speed measurement.
In case of codecs following issues should be taken into account for correct comparison:
• Decompression (sometimes compression) frame time uniformity. Big difference in this time
can cause annoying jerkily playback.
• SIMD support by processor and codec - MMX, SSE, SSE2.
• Multi-threading support by processor and codec (sometimes Hyper-threading support turning on
cause codec speed decreasing)
• RAM speed (pretty important for codecs)
• Processor's cache size (sometimes cause serious speed degradation on Celeron's)
for example codec A is more optimized for memory usage (use less memory) but shows lower results than
codec B on modern computer. The same codecs places can be swapped on old processor with limited cache
size.
Modern standards declare a wide range of features and require millions of code lines for their
implementation. Only selected profiles can be supported by exact codec (this very common situation for
H.264 for example).
The H.264 standard includes the following seven sets of capabilities, which are referred to as profiles,
targeting specific classes of applications:
• Baseline Profile (BP): Primarily for lower-cost applications with limited computing resources,
this profile is used widely in videoconferencing and mobile applications.
• Main Profile (MP): Originally intended as the mainstream consumer profile for broadcast and
storage applications, the importance of this profile faded when the High profile was developed for
those applications.
• Extended Profile (XP): Intended as the streaming video profile, this profile has relatively high
compression capability and some extra tricks for robustness to data losses and server stream
switching.
• High Profile (HiP): The primary profile for broadcast and disc storage applications, particularly
for high-definition television applications (this is the profile adopted into HD DVD and Blu-ray
Disc, for example).
• High 10 Profile (Hi10P): Going beyond today's mainstream consumer product capabilities, this
profile builds on top of the High Profile — adding support for up to 10 bits per sample of decoded
picture precision.
• High 4:2:2 Profile (Hi422P): Primarily targeting professional applications that use interlaced
video, this profile builds on top of the High 10 Profile — adding support for the 4:2:2 chroma
sampling format while using up to 10 bits per sample of decoded picture precision.
• High 4:4:4 Predictive Profile (Hi444PP): This profile builds on top of the High 4:2:2 Profile —
supporting up to 4:4:4 chroma sampling, up to 14 bits per sample, and additionally supporting
efficient lossless region coding and the coding of each picture as three separate color planes.
In addition, the standard now 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:
An accurate comparison of codecs must take the profile variations within each codec into account.
Variable bit rate (VBR) is a strategy to maximize the visual video quality and minimize the bit rate. On fast
motion scenes, a variable bit rate 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 bit rate
(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.
Usage of different rate control strategies - one of the main reasons of different results of codecs,
implemented one standard.
*
The Xiph.Org Foundation has negotiated an irrevocable free license to Theora and other VP3-derived
codecs for everyone, for any purpose.[4]
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 Mac OS X.
*
Limited support for Windows Vista.
Highest
Compression Highest supported Variable
Codec Basic algorithm supported
type resolution frame rate
bitrate
Lossy 384×288 (PAL), 320×240
Blackbird ? ? Yes
compression (NTSC)
Lossy Vector
Cinepak ? ? ?
compression quantization[5]
Lossy
Sorenson 3 ? ? ? ?
compression
Lossy Discrete cosine
Theora 2 Gibit/s 1048560×1048560[6][7] Partial[*]
compression transform
Lossy
RealVideo ? ? ? ?
compression
*
Theora streams with different frame rates can be chained in the same file, but each stream has a fixed
frame rate.[6]