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

Reply
 
Thread Tools Search this Thread Display Modes
Old 30th August 2005, 19:15   #1  |  Link
bond
Registered User
 
Join Date: Nov 2001
Posts: 9,770
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


A) PRICE

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


B) SUPPORTED FEATURES

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

Code:
		|   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


C) DECODING SPEED

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:
Code:
ateme:			ateme mp4 parser 1.2.5.3 / ateme decoder 2.2.1.0
ateme_old: 		ateme mp4 parser 1.2.2.0 / ateme decoder 1.1.2.0
elecard:		elecard mp4 parser 1.4.0 b50929 / mainconcept decoder 1.01.00.07
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 1.00.01.02 / mainconcept decoder 1.01.00.04
moonlight: 		elecard mp4 parser 1.3.5 b50823 / moonlight decoder 0.9.0 b50208
nero:			nero mp4 parser 2.0.2.49 / nero decoder 2.0.2.46
videosoft: 		m$ avi parser 6.5.1.902 / videosoft decoder 2.3.1.5
videosoft_old:		m$ avi parser 6.5.1.902 / videosoft decoder 2.0.2.3
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)

ALL SAMPLES
average of all samples except 1 with cqm

Code:
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
HIGH PROFILE
average of all samples except 1 with cqm

Code:
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
MAIN PROFILE

Code:
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)
BASELINE PROFILE

Code:
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


D) POST PROCESSING

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


CONCLUSION

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
Old 30th August 2005, 19:22   #2  |  Link
bond
Registered User
 
Join Date: Nov 2001
Posts: 9,770
i finally found the time to calculate how the different decoders perform on different coding tools, eg which decoder is the fastest on decoding cabac, etc...

the results shown below can give you an idea on how the decoders perform, of course the results are only valid on the specific two clips i compared for deriving the shown value (in fps) telling the decoding speed difference between two clips (one with the specific feature enabled and the other one with the feature disabled)
i ranked the decoders by the % by which the decoding speed decreases when an additional features is enabled

the higher the shown value, the worse the performance of the decoder for the specific feature:

Code:
------------------------------------------------------------------------
------------------------------------------------------------------------
blocksizes

p8x8 vs. p4x4

720x288	 B2 Ref3 i4x4 cabac

nero:			18,4%	12,00
ateme_old:		9,7%	5,13
ateme:			9,2%	5,62
videosoft:		5,7%	3,24
libav-ffdshow:		1,7%	1,03
libav-mplayer:		1,5%	1,00
elecard:		1,5%	0,74
libav-ffdshow_old:	1,4%	0,84
moonlight:		1,1%	0,68
mainconcept:		0,8%	0,37

------------------------------------------------------------------------
i4x4 vs. i8x8

720x288	B3-Ref Ref5 p4x4 loop-5 WBP cabac

ateme:			4,8%	2,57
elecard:		3,1%	1,20
libav-ffdshow:		1,3%	0,59
libav-ffdshow_old:	0,9%	0,40
libav-mplayer:		0,0%	0,01
moonlight:		-0,1%	-0,06
nero:			-0,7%	-0,28


640x256 B3-Ref Ref5 p4x4 loop-5 WBP cabac

libav-ffdshow_old:	4,8%	2,87
elecard:		4,3%	2,12
ateme:			3,0%	1,94
libav-mplayer:		2,0%	1,26
moonlight:		1,3%	0,70
nero:			0,4%	0,21
libav-ffdshow:		-5,8%	-3,09

------------------------------------------------------------------------
------------------------------------------------------------------------
multiple reference frames

ref1 vs. ref5

720x288	 B3-Ref p4x4-i4x4 loop-5 WBP cabac

nero:			10,8%	5,06
libav-mplayer:		10,0%	5,53
elecard:		7,1%	2,95
libav-ffdshow:		7,0%	3,42
ateme:			6,7%	3,85
libav-ffdshow_old:	6,7%	3,22
mainconcept:		5,5%	2,12
moonlight:		5,1%	2,46

------------------------------------------------------------------------
ref1 vs. ref3

720x288	 B3-Ref p4x4-i4x4 loop-5 WBP cabac

libav-mplayer:		7,6%	4,59
nero:			7,3%	4,33
ateme:			5,9%	3,97
libav-ffdshow:		5,7%	3,12
elecard:		5,7%	2,69
libav-ffdshow_old:	5,3%	3,02
mainconcept:		4,4%	1,99
moonlight:		2,7%	1,86

------------------------------------------------------------------------
ref3 vs. ref5

720x288  B3-Ref p4x4-i4x4 loop-5 WBP cabac

libav-mplayer:		1,8%	0,94
nero:			1,7%	0,73
moonlight:		1,3%	0,60
elecard:		0,7%	0,26
libav-ffdshow:		0,7%	0,30
libav-ffdshow_old:	0,4%	0,20
mainconcept:		0,4%	0,13
ateme:			-0,2%	-0,12

------------------------------------------------------------------------
------------------------------------------------------------------------
weighted (bi)prediction

wbp vs. nowbp

720x288  B3-Ref	Ref3 p4x4-i4x4 loop-5 cabac

moonlight:		20,0%	11,54
mainconcept:		10,4%	4,27
elecard:		8,4%	3,55
nero:			6,2%	2,80
libav-mplayer:		2,3%	1,22
libav-ffdshow_old:	2,1%	0,96
libav-ffdshow:		1,1%	0,49
ateme:			0,9%	0,46

------------------------------------------------------------------------

wp+wbp vs. nowp+nowbp

640x256  B2   Ref3 p8x8-i4x4 loop-5 cabac

videosoft:		35,6%	19,74
moonlight:		23,6%	16,18
nero:			13,7%	8,16
mainconcept:		12,3%	5,58
elecard:		11,3%	5,37
ateme_old:		9,1%	5,25
libav-mplayer:		4,3%	2,63
libav-ffdshow_old:	2,9%	1,61
ateme:			2,4%	1,65
libav-ffdshow:		0,4%	0,20

------------------------------------------------------------------------
------------------------------------------------------------------------
b-frames

0 B-frames vs. 3 B-frames

720x288 Ref5 p4x4-i8x8 loop-5 WBP cabac

moonlight:		27,7%	17,49
nero:			27,6%	15,52
elecard:		18,3%	8,30
ateme:			16,5%	9,95
libav-mplayer:		14,0%	8,09
libav-ffdshow:		12,5%	6,37
libav-ffdshow_old:	11,8%	5,90

------------------------------------------------------------------------
0 B-frames vs. 2 B-frames

640x256 Ref3 p8x8-i4x4 loop-5 cabac

ateme_old:		20,0%	14,35
mainconcept:		13,6%	7,17
libav-ffdshow:		12,9%	8,08
ateme:			12,7%	9,80
elecard:		12,6%	6,81
nero:			12,4%	8,40
libav-ffdshow_old:	12,3%	7,89
libav-mplayer:		11,4%	7,79
moonlight:		9,5%	7,21
videosoft:		9,0%	5,50

------------------------------------------------------------------------
0 B-frames vs. 1 B-frames

720x288 Ref5 p4x4-i8x8 loop-5 WBP cabac

moonlight:		23,1%	14,55
nero:			21,8%	12,23
elecard:		15,4%	6,97
ateme:			13,6%	8,20
libav-mplayer:		8,4%	4,81
libav-ffdshow:		8,3%	4,25
libav-ffdshow_old:	5,8%	2,92

------------------------------------------------------------------------
1 B-frames vs. 3 B-frames

720x288 Ref5 p4x4-i8x8 loop-5 WBP cabac

nero:			7,5%	3,29
libav-ffdshow_old:	6,3%	2,98
libav-mplayer:		6,2%	3,28
moonlight:		6,1%	2,94
libav-ffdshow:		4,5%	2,12
elecard:		3,5%	1,33
ateme:			3,4%	1,75

------------------------------------------------------------------------
B-ref vs. no B-ref

720x288	 B3 Ref5 p4x4-i8x8 loop-5 WBP cabac

nero:			3,4%	1,39
libav-ffdshow:		0,9%	0,38
libav-mplayer:		0,8%	0,41
ateme:			0,7%	0,34
libav-ffdshow_old:	0,4%	0,16
elecard:		0,2%	0,08
moonlight:		-0,1%	-0,04

------------------------------------------------------------------------
------------------------------------------------------------------------
loop

loop-5 vs. no loop

720x288	 B2 Ref3 p8x8-i4x4 cabac

libav-mplayer:		21,0%	14,16
libav-ffdshow:		20,5%	12,28
nero:			19,8%	12,89
libav-ffdshow_old:	18,7%	10,85
elecard:		18,4%	9,34
mainconcept:		15,8%	7,48
videosoft:		14,3%	8,18
moonlight:		6,9%	4,34
ateme:			6,2%	3,80
ateme_old:		4,9%	2,62


720x288  B3-Ref Ref5 p4x4-i8x8 WBP cabac

libav-ffdshow:		20,6%	11,67
libav-mplayer:		19,4%	12,05
libav-ffdshow_old:	17,3%	9,30
elecard:		17,0%	7,62
nero:			16,5%	8,33
ateme:			6,2%	3,37
moonlight:		5,8%	2,80

------------------------------------------------------------------------
loop-5 vs. loop+6

720x288	 B3-Ref	Ref5 p4x4-i8x8 WBP cabac

ateme:			14,7%	7,45
moonlight:		11,9%	5,44
nero:			7,4%	3,11
libav-ffdshow_old:	5,5%	2,43
libav-mplayer:		5,3%	2,67
libav-ffdshow:		4,4%	2,00
elecard:		4,2%	1,55

------------------------------------------------------------------------
------------------------------------------------------------------------
cabac

cabac vs. no cabac

720x288	 B3-Ref	Ref5 p4x4-i8x8 loop-5 WBP

libav-mplayer:		16,0%	9,54
libav-ffdshow_old:	15,1%	7,89
libav-ffdshow:		13,8%	7,20
ateme:			10,3%	5,80
moonlight:		9,3%	4,68
nero:			5,2%	2,31
elecard:		4,9%	1,90

------------------------------------------------------------------------
------------------------------------------------------------------------
cabac + noloop vs. loop-5 + nocabac

720x288  B3-Ref Ref5 p4x4-i8x8 WBP

elecard:		12,8%	5,72
nero:			12,0%	6,02
libav-ffdshow:		7,9%	4,47
libav-mplayer:		4,1%	2,51
libav-ffdshow_old:	2,6%	1,41
moonlight:		-3,9%	-1,88
ateme:			-4,5%	-2,43

------------------------------------------------------------------------
------------------------------------------------------------------------
resolution

720x288 vs. 640x256

B3-Ref	Ref5 p4x4-i8x8 loop-5 WBP cabac

nero:			22,8%	12,43
libav-ffdshow_old:	21,1%	11,87
elecard:		20,4%	9,49
libav-ffdshow:		20,3%	11,48
ateme:			20,2%	12,83
libav-mplayer:		20,1%	12,54
moonlight:		17,2%	9,46

------------------------------------------------------------------------
------------------------------------------------------------------------
custom quant matrix

cqm qmatrix vs. no cqm

720x288 B3-Ref	Ref5 p4x4-i8x8 loop-5 WBP cabac

nero:			7,5%	2,68
ateme:			3,5%	1,71
elecard:		3,3%	1,50
moonlight:		1,7%	0,67

------------------------------------------------------------------------
------------------------------------------------------------------------
__________________
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; 16th October 2005 at 23:40.
bond is offline   Reply With Quote
Old 30th August 2005, 21:39   #3  |  Link
bond
Registered User
 
Join Date: Nov 2001
Posts: 9,770
raw results from which all the above values are derived:

high profile:
Code:
x264_hp_2pass_640x256_B3-Ref_Ref5_p4x4-i8x8_loop-5_WBP_cabac
ateme:			63.45
libav-mplayer:		62.45
libav-ffdshow:		56.46
libav-ffdshow_old:	56.33
moonlight: 		55.02
nero:			54.47
elecard:		46.62
ateme_old: 		high profile not supported
mainconcept:		high profile not supported
videosoft:		high profile not supported


x264_hp_2pass_720x288_B0_Ref5_p4x4-i8x8_loop-5_WBP_cabac
moonlight: 		63.09
ateme:			60.23
libav-mplayer:		57.59
nero:			56.17
libav-ffdshow:		50.97
libav-ffdshow_old:	50.20
elecard:		45.35
ateme_old: 		high profile not supported
mainconcept:		high profile not supported
videosoft:		high profile not supported


x264_hp_2pass_720x288_B1_Ref5_p4x4-i8x8_loop-5_WBP_cabac
libav-mplayer:		52.78
ateme:			52.03
moonlight: 		48.54
libav-ffdshow_old:	47.28
libav-ffdshow:		46.72
nero: 			43.94
elecard:		38.38
ateme_old: 		high profile not supported
mainconcept:		high profile not supported
videosoft:		high profile not supported


x264_hp_2pass_720x288_B3_Ref5_p4x4-i8x8_loop-5_WBP_cabac
ateme:			50.28
libav-mplayer:		49.50
moonlight: 		45.60
libav-ffdshow:		44.60
libav-ffdshow_old:	44.30
nero:			40.65
elecard:		37.05
ateme_old: 		high profile not supported
mainconcept:		high profile not supported
videosoft:		high profile not supported


x264_hp_2pass_720x288_B3-Ref_Ref5_p4x4-i8x8_loop-5_WBP
libav-mplayer:		59.45
ateme:			56.42
libav-ffdshow_old:	52.35
libav-ffdshow:		52.18
moonlight: 		50.24
nero:			44.35
elecard:		39.03
ateme_old: 		high profile not supported
mainconcept:		high profile not supported
videosoft:		high profile not supported


x264_hp_2pass_720x288_B3-Ref_Ref5_p4x4-i8x8_loop-5_WBP_cabac
ateme:			50.62
libav-mplayer:		49.91
moonlight: 		45.56
libav-ffdshow:		44.98
libav-ffdshow_old:	44.46
nero:			42.04
elecard:		37.13
ateme_old: 		high profile not supported
mainconcept:		high profile not supported
videosoft:		high profile not supported


x264_hp_2pass_720x288_B3-Ref_Ref5_p4x4-i8x8_loop-5_WBP_cabac_cqm-qmatrix
ateme:			48.91
moonlight: 		44.89
nero:			39.36
elecard:		35.63
libav-ffdshow:		cqm not supported
libav-mplayer:		cqm not supported
ateme_old: 		high profile not supported
mainconcept:		high profile not supported
videosoft:		high profile not supported


x264_hp_2pass_720x288_B3-Ref_Ref5_p4x4-i8x8_loop+6_WBP_cabac
libav-mplayer:		47.24
ateme:			43.17
libav-ffdshow:		42.98
libav-ffdshow_old:	42.03
moonlight: 		40.12
nero:			38.93
elecard:		35.58
ateme_old: 		high profile not supported
mainconcept:		high profile not supported
videosoft:		high profile not supported


x264_hp_2pass_720x288_B3-Ref_Ref5_p4x4-i8x8_WBP_cabac
libav-mplayer:		61.96
libav-ffdshow:		56.65
ateme:			53.99
libav-ffdshow_old:	53.76
nero:			50.37
moonlight: 		48.36
elecard:		44.75
ateme_old: 		high profile not supported
mainconcept:		high profile not supported
videosoft:		high profile not supported
main profile:

Code:
x264_mp_2pass_640x256_B3-Ref_Ref5_p4x4-i4x4_loop-5_WBP_cabac
ateme:			65.39
libav-mplayer:		63.71
libav-ffdshow_old:	59.20
moonlight:		55.72
nero:			54.68
libav-ffdshow:		53.37
elecard:		48.74
mainconcept:		46.47
ateme_old: 		b-ref not supported
videosoft:		b-ref not supported


x264_mp_2pass_720x288_B2_Ref3_p4x4-i4x4_cabac
libav-mplayer:		66.33
moonlight:		61.99
libav-ffdshow:		58.73
libav-ffdshow_old:	57.31
ateme:			55.33
videosoft:		54.05
nero:			53.08
elecard:		51.58
ateme_old: 		47.86
mainconcept:		47.86


x264_mp_2pass_720x288_B2_Ref3_p8x8-i4x4_cabac
libav-mplayer:		67.33
nero:			65.08
moonlight:		62.67
ateme:			60.95
libav-ffdshow:		59.76
libav-ffdshow_old:	58.15
videosoft:		57.29
ateme_old: 		52.99
elecard:		50.84
mainconcept:		47.49


x264_mp_2pass_720x288_B2_Ref3_p8x8-i4x4_loop-5_cabac
moonlight:		58.33
ateme:			57.15
libav-mplayer:		53.17
nero:			52.19
ateme_old: 		50.37
videosoft:		49.11
libav-ffdshow:		47.48
libav-ffdshow_log:	47.30
elecard:		41.50
mainconcept:		40.01


x264_mp_2pass_720x288_B2-Ref_Ref3_p4x4-i4x4_cabac
libav-mplayer:		65.36
moonlight:		62.09
libav-ffdshow:		59.51
libav-ffdshow_old:	57.33
ateme:			57.29
nero:			55.63
elecard:		52.50
mainconcept:		49.27
ateme_log: 		b-ref not supported
videosoft:		b-ref not supported


x264_mp_2pass_720x288_B3-Ref_Ref1_p4x4-i4x4_loop-5_WBP_cabac
ateme:			57.04
libav-mplayer:		55.45
libav-ffdshow:		48.99
libav-ffdshow_old:	48.08
moonlight:		47.96
nero:			46.82
elecard:		41.28
mainconcept:		38.78
ateme_old: 		b-ref not supported
videosoft:		b-ref not supported


x264_mp_2pass_720x288_B3-Ref_Ref3_p4x4-i4x4_loop-5_WBP_cabac
ateme:			53.07
libav-mplayer:		50.86
moonlight:		46.10
libav-ffdshow:		45.87
libav-ffdshow_old:	45.06
nero:			42.49
elecard:		38.59
mainconcept:		36.79
ateme_old: 		b-ref not supported
videosoft:		b-ref not supported


x264_mp_2pass_720x288_B3-Ref_Ref3_p4x4-i4x4_loop-5_cabac
moonlight:		57.64
ateme:			53.53
libav-mplayer:		52.08
libav-ffdshow:		46.36
libav-ffdshow_old:	46.02
nero:			45.29
elecard:		42.14
mainconcept:		41.06
ateme_old: 		b-ref not supported
videosoft:		b-ref not supported


x264_mp_2pass_720x288_B3-Ref_Ref5_p4x4-i4x4_loop-5_WBP_cabac
ateme:			53.19
libav-mplayer:		49.92
libav-ffdshow:		45.57
moonlight:		45.50
libav-ffdshow_old:	44.86
nero:			41.76
elecard:		38.33
mainconcept:		36.66
ateme_log: 		b-ref not supported
videosoft:		b-ref not supported


x264_mp_2pass_640x256_B0_Ref3_p8x8-i4x4_loop_cabac
ateme:			77.31
moonlight:		75.64
ateme_old: 		71.90
libav-mplayer:		68.44
nero:			67.89
libav-ffdshow_old:	64.37
libav-ffdshow:		62.63
videosoft:		60.95
elecard:		54.19
mainconcept:		52.72
videosoft_old:		31.87


x264_mp_2pass_640x256_B2_Ref5_p4x4-i4x4_loop_cabac
ateme:			67.19
libav-mplayer:		55.70
moonlight:		54.29
libav-ffdshow_old:	53.07
libav-ffdshow:		52.87
ateme_log: 		49.60
nero:			47.79
elecard:		43.91
mainconcept:		41.60
videosoft:		38.97
videosoft_old:		24.25


nero_2pass-777kbps_Cabac_Deblock-5-adapt_B2_Ref3_noWPred_Qpel_p8x8_cartoon_psy2_extra
moonlight:		68.43
ateme:			67.51
libav-mplayer:		60.65
nero:			59.49
ateme_old: 		57.55
libav-ffdshow_old:	56.48
videosoft:		55.45
libav-ffdshow:		54.55
elecard:		47.38
mainconcept:		45.55


nero_2pass-777kbps_Cabac_Deblock-5-adapt_B2_Ref3_WPred+wbp_Qpel_p8x8_cartoon_psy2_extra
ateme:			65.86
libav-mplayer:		58.02
libav-ffdshow_old:	54.87
libav-ffdshow:		54.35
ateme_old: 		52.30
moonlight:		52.25
nero:			51.33
elecard:		42.01
mainconcept:		39.97
videosoft:		35.71
baseline profile:

Code:
x264_bp_720x288_B0_Ref5_p8x8-i4x4_loop-5_wbp
moonlight:		75.34
libav-mplayer:		72.88
ateme:			72.28
ateme_log:		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
__________________
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; 16th October 2005 at 18:09.
bond is offline   Reply With Quote
Old 30th August 2005, 21:43   #4  |  Link
Sharktooth
Mr. Sandman
 
Sharktooth's Avatar
 
Join Date: Sep 2003
Location: Haddonfield, IL
Posts: 11,768

sorry, i need to buy a pair of googles...
Sharktooth is offline   Reply With Quote
Old 31st August 2005, 03:20   #5  |  Link
celtic_druid
Registered User
 
celtic_druid's Avatar
 
Join Date: Oct 2001
Location: Melbourne, Australia
Posts: 2,171
@bond, did you use my ffdshow build as is? Because the libavcodec is built with gcc and generic flags. It might be interesting to see the same test with a version compiled with flags specific for your CPU, since as you say ffdshow is not that much slower than moonlight.
celtic_druid is offline   Reply With Quote
Old 31st August 2005, 10:53   #6  |  Link
bill_baroud
Registered User
 
Join Date: Feb 2002
Posts: 407
Thanks for this usefull test !
I would just say that, for people like me who didn't go read the thread about libavcodec speed measurement, your results numbers mean absolutly nothing... You could write somewhere that you are talking about Frame Per Second (and not cpu occupation or whatelse)... That puzzled me until i decided to read the thread linked in your post.
bill_baroud is offline   Reply With Quote
Old 31st August 2005, 14:03   #7  |  Link
alexcyn
Registered User
 
alexcyn's Avatar
 
Join Date: Jan 2003
Location: St.Petersburg, Russia
Posts: 11
VSS (videosoft) h264 decoder

Hi Bond.
It seems you are using very-very old videosoft decoder version 2.0.2.3. New much faster version 2.2 is available for already long time. Free evaluation of VSS h264 DirectShow decoder filter 2.2 is available here:
http://www.vsofts.com/h264/decoders.html
See item "Installation". Or direct link to installer:
http://www.vsofts.com/h264/pub/vssh3dec.exe
The DirectShow decoder should support any format, not only AVI.

Commercial version of the decoder is included into both Base ($20) and Main ($99) codec 2.3 consumer packages, so the price of the decoder is only $20.

The newest VSS H264 decoder 3.0 (currently available only in Professional products) supports all features from Main & Baseline profiles as well as High Profile. Also it has performance ~15% better than version 2.2.

By the way, what hardware (CPU, memory) are you using?

=Alexey Doilnitsyn, VSS Inc.

Last edited by alexcyn; 31st August 2005 at 14:08.
alexcyn is offline   Reply With Quote
Old 31st August 2005, 15:22   #8  |  Link
Manao
Registered User
 
Join Date: Jan 2002
Location: France
Posts: 2,856
Quote:
i didnt know what to expect from the ateme decoder and i also have to say i wasnt really positively surprised as it performed in the middle or slow
i have to note that ateme is working on a new decoder also supporting high profile, which i wasnt able to test, i hope they will also enhance decoding speed
for the main profile that are decoded by ffdshow / moonlight / nero / ateme, the average speeds are respectively 55.93, 61.94, 56.69 and 54.65. So indeed, moonlight is above the others, but the others rank the same.

Also, I wouldn't have used average speeds but, inverse of average of inverse speeds ( hence, the sum of decoding time ).

Finally, including mplayer is great for promotting mplayer ( or vlc, btw ), but serves no purposes in your comparison : you're comparing decoders, not players ( and -vo null is almost cheating if it does what I think )
__________________

Last edited by Manao; 31st August 2005 at 15:25.
Manao is offline   Reply With Quote
Old 31st August 2005, 16:41   #9  |  Link
IgorC
Registered User
 
Join Date: Apr 2004
Posts: 1,315
Here Nero decoder is still faster than ffdshow+haali and mplayer. Maybe it depends of settings. I also use hard settings (high profile, ref 8-16, weight, bframes 2-3, high values for mvrange for x264/H.264 etc.) And probably it depens of CPU. In my case SSE2.

Last edited by IgorC; 31st August 2005 at 16:43.
IgorC is offline   Reply With Quote
Old 31st August 2005, 16:43   #10  |  Link
hpn
Registered User
 
Join Date: Jan 2005
Posts: 191
Quote:
Originally Posted by Manao
and -vo null is almost cheating if it does what I think
"-vo null" means mplayer will output no frame to a video device. I've never tried the Chegepuga filter that Bond has used with the paid decoders, but I guess It does the same thing (plus the fps measuring itself), so unless I'm missing something I don't see any cheating here.
hpn is offline   Reply With Quote
Old 31st August 2005, 16:53   #11  |  Link
akupenguin
x264 developer
 
akupenguin's Avatar
 
Join Date: Sep 2004
Posts: 2,392
Quote:
Originally Posted by bond
baseline profile:
x264_720x288_B0_Ref5_p8x8-i4x4_loop-5_wbp_cabac
cabac isn't baseline. (wpred isn't either, but wbp without B-frames doesn't matter)

Also, how about lossless and interlacing in the feature comparison?

Last edited by akupenguin; 1st September 2005 at 09:16.
akupenguin is offline   Reply With Quote
Old 31st August 2005, 17:05   #12  |  Link
Manao
Registered User
 
Join Date: Jan 2002
Location: France
Posts: 2,856
Well, I've got a decoder available both in a ds filter and in a standalone application that can behave like mplayer -vo null. The ds overhead for the filter is roughly a copy of a picture, which hardly matters at the framerate i'm testing. In one case ( standalone ), i get 48 fps, in the second ( ds filter + chegepuga ), i get 42 fps, so it's a 12.5 % speed gain ( or 11% speed loss ).

DirectShow itself is responsible for that loss ( which is huge, because I've got a 2800+ with a fairly fast memory ).

So perhaps it's not -vo null that creates the difference, yet comparing ds filters to mplayer isn't that useful when you want to compare decoders.
__________________
Manao is offline   Reply With Quote
Old 31st August 2005, 17:12   #13  |  Link
SeeMoreDigital
Life's clearer in 4K UHD
 
SeeMoreDigital's Avatar
 
Join Date: Jun 2003
Location: Notts, UK
Posts: 12,219
Great work bond....

It will interesting to see if things change as time rolls by and refinements are made....


Cheers
__________________
| I've been testing hardware media playback devices and software A/V encoders and decoders since 2001 | My Network Layout & A/V Gear |
SeeMoreDigital is offline   Reply With Quote
Old 1st September 2005, 06:45   #14  |  Link
hworldjj
Registered User
 
Join Date: Sep 2004
Posts: 17
Thanks! Good reading
hworldjj is offline   Reply With Quote
Old 1st September 2005, 20:34   #15  |  Link
bond
Registered User
 
Join Date: Nov 2001
Posts: 9,770
first of all thx for all the responses and the interest!

Quote:
Originally Posted by celtic_druid
@bond, did you use my ffdshow build as is? Because the libavcodec is built with gcc and generic flags. It might be interesting to see the same test with a version compiled with flags specific for your CPU, since as you say ffdshow is not that much slower than moonlight.
yep i used your build as is. if you could make a build compiled for my pentium3 866mhz i would be happy to test it too

Quote:
Originally Posted by bill_baroud
your results numbers mean absolutly nothing... You could write somewhere that you are talking about Frame Per Second (and not cpu occupation or whatelse)... That puzzled me until i decided to read the thread linked in your post.
indeed, i will add this

Quote:
Originally Posted by alexcyn
It seems you are using very-very old videosoft decoder version 2.0.2.3. New much faster version 2.2 is available for already long time. Free evaluation of VSS h264 DirectShow decoder filter 2.2 is available here:
i used indeed an old version, and that was mainly done because i did the test to find out what decoder i could use for my encodes, so i used the last version you released which was unlimited

i simply wasnt really interested in testing a decoder which becomes useless for me after 30 days

Quote:
The DirectShow decoder should support any format, not only AVI.
hm i think your decoder works with the VSSH and H264 fourcc. actually i dont know a splitter which outputs this (eg from .mp4 or .mpg) your decoder could connect to, so theoretically your decoder can of course work with any format, but practically its not so easy till now

Quote:
Commercial version of the decoder is included into both Base ($20) and Main ($99) codec 2.3 consumer packages, so the price of the decoder is only $20.
so the 20$ baseline version includes a main profile decoder?

Quote:
The newest VSS H264 decoder 3.0 (currently available only in Professional products) supports all features from Main & Baseline profiles as well as High Profile. Also it has performance ~15% better than version 2.2.
sounds indeed very powerful and i would love to test it, its just that the 30days limit makes it pretty useless for me, but if you send me an unlimited copy i will of course test it

Quote:
By the way, what hardware (CPU, memory) are you using?
a good old pentium3 866mhz

Quote:
Alexey Doilnitsyn, VSS Inc.
great to have you around on doom9!

Quote:
Originally Posted by Manao
Also, I wouldn't have used average speeds but, inverse of average of inverse speeds ( hence, the sum of decoding
hm the clips all have the same lenght, in what way would the sum tell us more?

Quote:
Finally, including mplayer is great for promotting mplayer ( or vlc, btw ), but serves no purposes in your comparison : you're comparing decoders, not players ( and -vo null is almost cheating if it does what I think )
well the point is you have to see this from a users point of view and the user asks "what player should i play my avc clips with"
for the user it doesnt matter what codec interface stands behind it, be it directshow or whatever

i am actually also planning to add decoding of qt7 to the comparison, but i am simply too lazy to set it up

the thing is if the commercial decoders are limited to directshow, its the commercials decoders problem and not libavcodec's, which is simply available in a form which allows it to be used in superior platforms than directshow, that should be honored

and as you saw i also included ffdshow and it still performed great

Quote:
Originally Posted by hpn
"-vo null" means mplayer will output no frame to a video device. I've never tried the Chegepuga filter that Bond has used with the paid decoders, but I guess It does the same thing (plus the fps measuring itself), so unless I'm missing something I don't see any cheating here.
chegepuga is also a null renderer with fps measurement, exactly the same as what mplayer does imho

Quote:
Originally Posted by akupenguin
cabac isn't baseline. (wpred isn't either, but wbp without B-frames doesn't matter)
my fault, the baseline clip i tested of course didnt use cabac, altough i noted it (must be a copy paste error or so)

actually i noticed that x264 enables the wbp flag in the pps altough it sets the baseline profile in the sps correctly

Quote:
Also, how about lossless and interlacing in the feature comparison?
yep i thought about that too, i was too lazy to do it actually, also i lacked the time to really make some good comparable interlaced clips with the reference
maybe i will simply test the decoders capabilities on the clips i have lying around without speed measurement
__________________
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; 1st September 2005 at 20:37.
bond is offline   Reply With Quote
Old 1st September 2005, 21:05   #16  |  Link
Nil Einne
Registered User
 
Join Date: Feb 2003
Posts: 46
I could be wrong but I was under the impression not all decoders are equal quality-wise. Frequently they use estimations etc to improve speed which is fine but when quality can very IMHO a straight out speed test is not so meaningful for many people. I could make a decoder that is very very fast but the output it so crap it isn't worth it. Of course I'm aware quality issues are a problem since it's so subjective so instead, I would recommend you get the reference implementation of h.264 which I assume is completely accurate and then do a mathematical comparison. Of course, this can be a bit misleading since a smart decoder may have higher mathmatical difference but lower noticable difference but it's better then nothing.
Nil Einne is offline   Reply With Quote
Old 1st September 2005, 21:11   #17  |  Link
Manao
Registered User
 
Join Date: Jan 2002
Location: France
Posts: 2,856
No, none of these codecs do such a thing. Not decoding picture as they should leads immediately to errors that are easily spottable.

Only libavcodec got a patch, very recently, that allowed to disable deblocking at very low qps, but it's not enabled by default, and it's highly recommended not to use it.
__________________
Manao is offline   Reply With Quote
Old 1st September 2005, 22:41   #18  |  Link
Nil Einne
Registered User
 
Join Date: Feb 2003
Posts: 46
Okay thanks for clarifying. I was always under the impression that there was some (minor) differences in the output quality of non post-processing decoders due to factors such as estimation, dropping least significant bits in some cases, different interpretations of the algorythm etc. Now I know. So basically you can take any decoder and use it to save an uncompressed raw video files and the file would be exactly the same! That is good :-)

Last edited by Nil Einne; 1st September 2005 at 22:44.
Nil Einne is offline   Reply With Quote
Old 2nd September 2005, 06:26   #19  |  Link
Sergey A. Sablin
Registered User
 
Join Date: Dec 2004
Location: Tomsk, Russia
Posts: 366
Quote:
Originally Posted by bond
chegepuga is also a null renderer with fps measurement, exactly the same as what mplayer does imho
Bond, I dunno what exactly does mplayer with "-vo null" option, but I exactly know what does chegepuga - DShow decoder should copy output frame into this renderer. So if mplayer with "-vo null" doesn't require this from decoder, then it is the difference for the test, cause for real playback decoders in mplayer also should do the copy.
In that way real performance can be different from what you have measured.
Does somebody know how mplayer process with this option? with or without the copy?
Sergey A. Sablin is offline   Reply With Quote
Old 2nd September 2005, 10:42   #20  |  Link
bond
Registered User
 
Join Date: Nov 2001
Posts: 9,770
well the mplayer devs recommend when wanting to do benchmarks to use the -vo null and -benchmark options, so i assume the output values are useable!?
__________________
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
bond is offline   Reply With Quote
Reply

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 08:01.


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