Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.


Go Back   Doom9's Forum > Video Encoding > MPEG-4 AVC / H.264

Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
Old 30th August 2005, 19:15   #1  |  Link
Registered User
Join Date: Nov 2001
Posts: 9,779
MPEG-4 AVC/H.264 decoder comparison

one of the main advantages of open standards, like mpeg-4 avc, is that it leads to competition between various codec producers as the consumer will always tend to use the product with the best price/performance relationship.

while prices are pretty well known for the consumer there is one thing often lying in the dark: the actual performance

while for the encoding side quality comparisons exist, like the one from doom9, decoders are often overlooked. of course, as every decoder should output exactly the same picture and speed also didnt really play a role as existing formats are pretty easy to decode.
but with a format, like avc, which needs a lot of resources while decoding, this might be different for a lot of people who dont own top of the notch pcs.

so as avc is very speed consuming and actually only one free avc decoder is existing (libavcodec) it indeed makes sense to compare the performance of existing decoders, before the user decides what to spend his money on

in this comparison i will compare the following decoders:
- ateme
- elecard
- libavcodec
- mainconcept
- moonlight
- nero
- videosoft

imho the quality of a decoder is defined by four things:
A) price
B) supported features of the format
C) decoding speed
D) postprocessing


its pretty easy to check out the prices of the available decoders:
- libavcodec: 0 USD as being opensource, but you have to compile it yourself, supported in various players
- videosoft: 19.95 USD, available in their "VSS H.264/AVC Codec Baseline" tool
- moonlight: 20 USD, available in the "Moonlight-Elecard MPEG Player 3.0"
- nero: 29.90 USD, available in their "Nero Digital Pro" tool
- elecard: 499 USD, available in the mainconcept "H.264 Encoder v2" tool
- mainconcept: 499 USD, not available anymore, has been available in their "H.264 Encoder v1" tool (v2 uses the elecard decoder)
- ateme: not publically available


according to my tests the following features are NOT supported by the different decoders (version number described below):

		|   ateme   |  elecard  | libavcodec | mainconcept | moonlight |   nero   | videosoft |
BASELINE PROFILE|           |           |            |             |           |          |           |
p4x4,b8x8,i4x4  |           |           |            |             |           |          |           |
loop		|           |           |            |             |           |          |           |
multireferences	|           |           |            |             |           |          |           |
adaptive quant	|           |           |            |             |           |          |           |

MAIN PROFILE	|           |           |            |             |           |          |           |
b-frames	|           |           |            |             |           |          |           |
b-references	|           |           |            |             |           |          |     x     |
wp,wbp		|           |           |            |             |           |          |           |
cabac		|           |           |            |             |           |          |           |
fields-only	|           |           |            |      *      |           |          |           |
paff		|           |           |            |      *      |     *     |          |     x     |
mbaff		|           |           |            |      *      |     x     |          |     x     |

HIGH PROFILE	|           |           |            |      x      |           |          |     x     |
8x8dct		|           |           |            |      x      |           |          |     x     |
i8x8		|           |           |            |      x      |           |          |     x     |
cqm		|           |           |            |      x      |           |          |     x     |
lossless	|           |     x     |            |      x      |     x     |    x     |     x     |
so the only decoder which supported everything was the not publically available decoder from ateme
second place goes to libavcodec (not supporting interlacing), elecard and nero (not supporting lossless avc)
the not anymore developed decoders from mainconcept and moonlight had problems with their interlacing support. moonlight shows artefacts with paff. mainconcept shows artefacts with all interlacing modes.
videosoft didnt support b-references/arbitrary frame orders

it also gets interesting when looking at the high profile support, whose tested features were supported more or less by libavcodec, moonlight, elecard and nero but fully only by ateme


as all decoders are available as directshow decoders i used this interface for testing the decoders
additionally i also tested libavcodec in mplayer to honor its advantage of being useable also in potentially better and faster interfaces than directshow

my cpu is a pentium3 866mhz

the speed has been measured with elecard's great Chegepuga filter, available here. yv12 output has been enforced, which all decoders supported

the graph has been setup as
file parser -> decoder -> chegepuga

as some decoders are limited to or work best with specific file formats, eg mainconcept only works with .mpg, i decided to use the file parsers of the decoder manufacturers too. this also helped avoiding interoperability problems. of course faster parsers can influence the output speed positively, which has to be taken into account when looking at the values described below

the following filter/parser combinations have been used:
ateme:			ateme mp4 parser / ateme decoder
ateme_old: 		ateme mp4 parser / ateme decoder
elecard:		elecard mp4 parser 1.4.0 b50929 / mainconcept decoder
libav-ffdshow:		haali mp4 parser Sep 03 2005 / ffdshow-libavcodec decoder Oct 13 2005
libav-ffdshow_old:	haali mp4 parser Aug 18 2005 / ffdshow-libavcodec decoder Aug 22 2005
libav-mplayer:		mplayer mp4 parser cvs aug 12 2005 / mplayer-libavcodec decoder cvs aug 12 2005
mainconcept:		mainconcept mpg parser / mainconcept decoder
moonlight: 		elecard mp4 parser 1.3.5 b50823 / moonlight decoder 0.9.0 b50208
nero:			nero mp4 parser / nero decoder
videosoft: 		m$ avi parser / videosoft decoder
videosoft_old:		m$ avi parser / videosoft decoder
the method for measuring the libavcodec performance with mplayer is described here

the source was the typical matrix 1 clip often used for comparisons (smith interrogating morpheus, lobby shootout), ~7000 frames
various resolutions and codec settings have been used (the details can be seen in the raw results attached below), the target bitrate was ~700kbps, which can be seen as the typical 1 CDR DVD backup bitrate

as encoder x264 has been used, because its one of the most complete encoders and easy to configure
also its able to output directly to .mp4, which most decoders supported
.mpg has been muxed from .mp4 with ffmpeg cvs june 24 2005

the following amount of samples have been encoded:
high profile: 9
main profile: 13
baseline profile: 1

Results: (measured in frames per second)

average of all samples except 1 with cqm

ateme: 			58.78
libav-mplayer:		58.22
moonlight: 		55.48
libav-ffdshow:		52.15
libav-ffdshow_old:	52.11
nero:			50.74
elecard: 		44.04
average of all samples except 1 with cqm

libav-mplayer:		55.11
ateme:			53.77
moonlight: 		49.57
libav-ffdshow:		49.44
libav-ffdshow_old:	48.84
nero:			46.37
elecard:		40.48
ateme_old: 		high profile not supported
mainconcept:		high profile not supported
videosoft:		high profile not supported

ateme:			60.83
libav-mplayer:		59.00
moonlight: 		57.59
libav-ffdshow_old:	53.24
libav-ffdshow:		53.08
nero:			52.58
elecard:		45.61
mainconcept:		43.40
videosoft:		not all samples tested (b-ref not supported)
ateme_old: 		not all samples tested (b-ref not supported)

moonlight:		75.34
libav-mplayer:		72.88
ateme:			72.28
ateme_old:		70.63
videosoft:		64.01
libav-ffdshow_old:	63.47
libav-ffdshow:		61.83
nero:			61.80
elecard:		52.02
mainconcept:		51.16
videosoft_old:		33.46
- libavcodec in mplayer and ateme are nearly always the fastest

when looking only at the directshow decoders you see that
- moonlight is faster than ffdshow and nero (but not than mplayer)
- ffdshow is as good as always faster than nero
- videosoft is performing in the middle
- elecard and mainconcept are slow


imho post processing doesnt really play a role with avc, as the format itself is already good enough to provide a pretty good picture without the need for enhancing it during playback
as post processing would also require more processor power and the output quality would have to be judged subjectively i left it away in this comparison totally


the results show once again that opensource development is very powerful when it comes to providing excellent quality as libavcodec was able to provide great speeds when being used in the opensource mplayer and also supports as good as all tested avc features except interlacing

the not publically available decoder from ateme also provided excellent results outperforming the other decoders on many samples and being the only one which supported all tested coding features

moonlight was a surprise for me as it provided excellent speed results, supported nearly all avc features i tested and is also relatively cheap available. also moonlight offers the possibility to play avc in .mp4 and .mpg
moonlight is bankrupt and selling its tools, including the decoder, atm. i hope someone will buy it and continue developing it, its really worth it

nero was a disappointment imho as it was till now always seen as the benchmark, a role it clearly wasnt able to play, being slower than moonlight and also slightly slower than ffdshow, not to speak of mplayer
it also has to be mentioned that nero uses a very fast mp4 parser, whereas ffdshow and moonlight used slower ones
still nero also supports a lot of avc features

judging from the price mainconcept charges for their avc implementation (499 USD) i had high expectations for both mainconcepts original decoder (available in v1) and the new elecard decoder its uses since v2, which it surely didnt meet, as it performed pretty poorly
i know elecard's decoder is very new and i hope they will continue improving it so it can keep up speedwise with the other decoders and also with the price you have to pay for it. it already supports a lot of avc features

videosoft's decoder was a midperformer, with the downside of not supporting b-references, paff/mbaff and high profile. i know vss is working on high profile, but i wasnt able to test it. i hope the bref thing will get fixed soon so i can rank the decoder speedwise in main profile too
Between the weak and the strong one it is the freedom which oppresses and the law that liberates (Jean Jacques Rousseau)
I know, that I know nothing (Socrates)

MPEG-4 ASP FAQ | AVC/H.264 FAQ | AAC FAQ | MP4 FAQ | MP4Menu stores DVD Menus in MP4 (guide)
Ogg Theora | Ogg Vorbis
use WM9 today and get Micro$oft controlling the A/V market tomorrow for free

Last edited by bond; 14th October 2007 at 10:11.
bond is offline   Reply With Quote

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +1. The time now is 07:19.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.