| Printable Version of Topic
Click here to view this topic in its original format |
| Unofficial VirtualDub Support Forums > Codec Discussion > Msu H.264/mpeg-4 Avc |
| Posted by: i4004 Feb 10 2005, 10:46 AM |
| http://compression.ru/video/codec_comparison/mpeg-4_avc_h264_en.html results seem to be consistant with my http://www.hydrogenaudio.org/forums/index.php?showtopic=29845 and doom9's tests where ateme h.264 was also the winner. (i still didn't read the paper, but looking at psnr i'm guessing ateme was the winner) if so, then 3 independant tests can't be wrong; ateme's codec probably is the best avc codec at the moment. (which doesn't say much about it's encoding speed, though. btw. i believe wmv9 would beat ateme on lower bitrates (see 'hand' test sequence of my test) ie on a steep (cca. 200- 400kbit/s) area of the ateme psnr curve. it seems to have better inloop filter (less destructive). in same respect, realvideo should be also tested. |
| Posted by: dmitriy Feb 10 2005, 09:09 PM | ||
Highly recommend to read our paper! Also we plan to prepare: * Next comparison with more H.264 codecs * Another comparison with leaders (best different class codecs testing). |
| Posted by: i4004 Feb 11 2005, 10:56 AM | ||||
well said, it's not better, it's THE BEST it won in majority of your PSNR tests, and it won in your subjective test. as i said, i agree with the results of your test.
if you did a lo-bitrate comparison today, then wmv9 would win for natural content, while rv9/10 would win for toons. will h.264 be able to beat wmv9 (on low bitrates) in 5 years? dunno, but perhaps untill then we'll have wmv11 or 12. and btw. you didn't inform us on codec settings used; encoding enthusiasts are probably sensitive to that, so better include those next time. many times a tweaked codec with yield better quality than codec on defaults. (mhm...moonlight screenshots shows a gop sequence of only 30frames; are you sure they're just not using their mpeg2 encoders? mpeg4 of any sort should deal with at least 250frames gop on pal ,and 300 on ntsc(10sec of video)) |
| Posted by: Tommy Carrot Feb 11 2005, 11:32 AM | ||
I don't know man, apparently you don't have too much luck with h.264 codecs, because IMO at least ateme is already better, and even x264 is not that bad either at low bitrates (i know you have different opinion, this is just mine Seriously, i don't see why is the big fascination for wmv9, it's good at low bitrates (and only there), but it blurs too much detail away, the ateme codec (and x264 too, but it has a few issues waiting to be fixed) is much sharper. Not to mention, wmv9 is slower than either of them. |
| Posted by: dmitriy Feb 11 2005, 12:18 PM | ||||
Ok! Just for your fun!
Realistic forecast: that implementations of h.264 will seriously increase amximmum results on past 2-3 years (with compatible format!). For MS with incompatible format it's easy, of course, increase characteristics, but such incompartibility decrease format mass popularity (especially on home hardware). |
| Posted by: i4004 Feb 11 2005, 02:55 PM | ||||||||||||||
i linked this http://www.hydrogenaudio.org/forums/index.php?showtopic=29845 in this thread already; please review 'hand' clips. is nero better? hand clips are lo-bitrate clips. what do you mean that i don't have luck with h.264? i ditched nero because it's too slow and audio encoder was broken. if this was not so, i would use it. it's excellent codec. i'm not interested in 400kbit/s lores encodings (where wmv9 is better) anyway. also, i have said wmv9 has aretfacts i hate, so i don't use that slow crap either. as for x264 http://students.washington.edu/lorenm/src/x264/todo.txt "1-pass VBR ratecontrol, using the same RCEQ as 2-pass but with predicted complexities." that's my area of interest, and i just contacted akupenguin and offered him my help with testing better 1pass vbr methods once he gets to trying it. i'm not surprised if a codec that aims for almost perfect cbr doesn't yield a nice quality. (consider the difference bettween divx3 and x264 bitrate flow; http://bbsrv.imp.leidenuniv.nl/~i4004/0/index.php?d=x264%20vs%20divx3%201pass&s=&r= offcourse divx3 looks better. i noticed x264 can apply different quants per-macroblock; i like that. so far i only saw that on tmpgenc's mpeg1 encoder. nero probably has it too, but it's already ditched as far as i'm concerned.) first thing i would suggest to him (in case his idea wouldn't work) would be to inspect ffmpeg code . 1pass vbr (abr) of ffvfw working just fine.
where did i said it was good for anything else?
on higher bitrates, offcourse. but on bitrates where wmv9 still looks good, avc is either blocking or smothing too much.
nero recode was slower than wmv9-vcm in my test. if you (or anybody) can prove any h.264 codec is better than wmv9 on lower bitrates (up to 400kbit/s), i would like to see actual clips. i see people saying this (that h.264 is better than wmv9), but nobody is providing the actual clips. nobody except for me, that is, and in my case, wvm9 won on particular (low) bitrate test. while at it, you can stack snow against wmv9 too. again; i don't like wmv9 and i don't use it to store video (i would use it to transfer video over the web though), but it's better (on lower bitrates) than any h.264 codec i tried so far. being good at low bitrates doesn't mean much to us, but it may mean something to people that stream video. dmitriy
so..who exactly won on your test? what are you talking about? you did psnr test, and ateme codec won. or?
the stuff about h.264 improvement possibilites is partially true; looking at nero recode encoder, it seems plenty of advanced options are already applied. that's probably the reason why ateme is winning at codec comparisons.
that's true. no doubts about it. i just said that for lo-bitrates (streaming) wmv9 still seems the best (on natural content). |
| Posted by: Tommy Carrot Feb 11 2005, 07:12 PM | ||
Ok, here they are: http://www.fw.hu/carrotland/wmv9_q52_slowest.avi: 290 kbit, took 13m40s to encode http://www.fw.hu/carrotland/x264_q34.avi: 286 kbit, 4m47s to encode. (as you see, much faster) I'm not saying x264 is perfect, it still has issues with the motion estimation (jumping blocks, etc), but you must notice how much sharper it is, and preserves a lot more details. Wmv9 is more polished right now, but h.264 has bigger potential, and in many aspects x264 is already better than wmv9. |
| Posted by: i4004 Feb 12 2005, 11:03 AM | ||||
| thanks for providing the clips. if you tell me that u use x264 in constant quantizer mode (and at quant34) to store your videos, then i will take this test as relevant-for you. on the other hand constantquantizer encodings have no appeal to me; i need filesize predictability. if possible, please repeat the test but this time with both codecs targeting the specific bitrate (either in 1pass or 2pass modes). if you say that u indeed use x264 on constantquant.@34 to store video, then offcourse no need to repeat the test. (but i would be surprised if you are fine with such quality to store video) regarding the image quality seen here; both codecs look pretty unacceptable; x264 blocks, and wmv9 blurs.
how do you mean "polished"? i don't think wmv9 started to apply different 'tranform types' (8x4,4x8,4x4) yet. (i only saw 8x8 blocks on wmv9 stuff). reading the vc1 specs, i don't think h.264 has some advantages worth mentioning. these are rather matched codecs, with the addition that ms probably put much more accent on lo-bitrate (streaming) than h.264. as i said, i belive ateme avc already uses plenty of h264 bells and whistles. it's rather obvious to me that ms had some early h.264 draft while they were developing wmv9 (vc1). that's why they are matched now.
recent wmencoder (for winxp) can turn off the inloop filtering, so you don't need to get smoothing if u used higher bitrates. and given the things i said about wmv still not using different transform sizes. as you'll see (few lines below), i think wmv9 is "better" than h.264 in same way xvid/divx5 are "better" than divx3. i see these 2 codecs(wmv9 and h264) as rather simillar, but, again, my taste goes against wmv encoder (and, as i said, that doesn't say wmv9 is still not best lobitrate codec; it is). i think differences (i experienced) can be summed up as follows; difference between wmv9 and h264 is rather remindfull of difference between xvid (or divx5) and divx3(nandub) : wmv9 will choose the blurring (or banding, or tearing etc.) rather than the blocking.(wmv9 will go almost any distance to avoid blocking) simillar to xvid and divx5 (although xvid will also block if certain bitrate threshold is reached). that is the motion estimation difference. i like ways of divx3, nero avc and x264. because i hate blurring (and banding and tearing etc.) i'm willing to use these codecs (divx3 and probaby x264 in future) even if it means i will need to use somewhat higher bitrate-at least i won't get the artefacts i despise so much. but plenty of people pick xvid/divx5 even though these exhibit those artefacts. this is exactly the same as picking wmv9 over h.264! but ok, x264 will make them love blocking all over again offcourse, as said, x264 in its present form is still very poor for 1pass vbr which is what i use. so i indeed am a supporter of x264(as said in prev. post) but by the look of stuff (also looking at nero avc) h264 has nothing to offer on low-bitrates where wmv9 will still look acceptable. to repeat it once more; i don't use wmv9 to store video on dvdr, but when it comes to making something available on the web, i think wmv9 cannot be beaten. (and as i said, realvideo cannot be beaten for toons). wmv9 would have to rewrite the complete motion estimation engine and make inloop switch available for win2k users too(not only winxp) for me to try it again. offcourse, by that time it would probably look rather simillar to h264. that's why i'm interested in progression of x264, but i don't really expect h264 (of any kind) will be able to beat wmv9 on lower(streaming) bitrates. (or that it will be able to beat realvideo for toon content) |
| Posted by: Tommy Carrot Feb 12 2005, 12:19 PM | ||||||
Well, yes, i often use constant quantizer (of course not q34, rather like q25, but you wanted low-bitrate encodings) for short clips and tv-captures where i don't need a specific size, and 2-pass for movies. Personally i don't use cbr mode, it makes the quality unacceptably inconsistent for me. I think constant quantizer mode is the best to show the real capability differences between the codecs, because it doesn't involve the rate-control, which is not part of the codec core, but more like an external plugin.
I meant more tuned. wmv9 has a rather good motion estimation, while the ME of x264 is still raw, often it cannot find the best match for representing the motions (hence the jumping blocks).
Well i guess this is what they call different tastes. |
| Posted by: i4004 Feb 12 2005, 04:56 PM | ||||||||
i don't think any mpeg4 codec can produce stream that could be called "cbr". its always vbr. (even in 1pass mode; average-bitrate methods are used) for real cbr encodings, try tmpgenc or some other mpeg1/2 encoder.
wmv9 has 'quality' of 0-100(and you don't know the relation of this to the actual quantizers), and h.264 has 0-51 scale; how do you compare these two? for all that i care wmv9's scale may be linear (which h.264's is not) and then what?
blocking itself doesn't necessarily mean motion estimation is bad; it can also mean you pushed the codec over its limits; like you did here. i mean cca.300kbit/s for such resolution? you just won't see _any_ codec yield good quality at such bitrate/resolution. it is impossible. finding a best match is one thing, while trying to compress something to a too low bitrate is another. but yeah, wmv9 and x264 have a totally different approach to doing ME; that's pretty obvious. but it's not like a h.264 codec with mature ME (nero avc) won't have blocking on such encodes; offcourse it will. i know, you said "jumping blocks" but at the end of the day any blocking is a bad blocking, and it means bitrate was too low for particular codec. also, i really don't wanna see a motion estimation mess of xvid/divx5/wmv9 style (that says "any type of artefacting is better than blocking"). (see, now i'm defending 264... there is a strong correlation between xvid/divx5/wmv9's avoiding blocking, http://forum.doom9.org/showthread.php?threadid=66507 (check again this excellent thread on doom9!). i think you're aware that such things will be hard to produce on any mpeg1/2 encoder. will block, but will not made still walls swim. good ol' ways of doing motion estimation.
well...i don't prefer lower bitrates <period> one should be aware of the codec's limits. some things you just cannot do with todays codecs. i don't like blur (of wmv or any other codec) and i don't like blocking (of h.264 or any other codec). what should video look like is very well defined; it should like as close to the source as possible. on h.264 versus wmv9 on low bitrates, you will see that some blocks of h264 are more blurred (higher quant, or more inloop) than any portion of wmv9 image, while some blocks will be sharper than wmv9. in other words wmv9 will have more balanced image (there will be no spotes that are awfully blurry and some other spots that are very sharp.) most people will prefer wmv9 in such situations. i mean show that 'hand' sequence to your friends, and ask them what looks better. almost nobody will pick blocking (no inloop) or excessive blur(inloop) of nero avc. wmv9 is more balanced on lower-bitrates; it was made that way.optimized for lower-bitrates. h.264 for sure is ment to do lower bitrates than mpeg4asp, but that's still not enough to compete with wmv9, it seems. our tastes don't differ much at all; i like sharpness same as you; i just said for lower bitrates wmv9 yields quality that 90% of people will view as 'better'. but storing video is totally different to streaming video; i just 'direct stream copied' video of 2.5mbit/s (400x576 ffvfw mpeg4@quant2 cap) and i will burn it on dvdr that way; 2.5mbit/s for such resolution/quality is fine by me. i don't bother with re-encoding such stuff if bitrate is up to 2.5mbit/s. if it was 6mbit/s, then i would brought it down. i'm not doing these low bitrate tests because i intend to store video that way; i know that quality is below my wishes; i just do it for fun. |
| Posted by: Tommy Carrot Feb 13 2005, 02:23 PM | ||||||
Of course i meant 1-pass bitrate mode, but somehow i got accustomed to call it cbr mode, althought i know it's not really constant.
|
| Posted by: TechMage89 Feb 13 2005, 04:42 PM |
| Squezeing anime into that size wouldn't be as hard as it sounds. First of all, anime is really only about 12fps in most cases: (lots of null frames possible). Second, it uses large areas that are virually the same color. If you made a codec specifically for anime (and spent a good long time making it), you might get that to look reasonable. |
| Posted by: i4004 Feb 13 2005, 09:31 PM | ||||
176x144 and realvideo10 would probably be best for such atempt, but no, it wouldn't look good. not at all.
well, i can say whatever i want, but i can't call it unfair. just for fun, i toyed a bit with x264's c.quantizer mode. first of all i wanted to see what h264 quant. is simillar (or better) to divx3 quantizer4: i concluded it's quant24. (i used 'hand' sequence to test this). after this i wanted to see what will happen if i encode something with my usual way(nandub@770kbit/s), and then encode same thing with x264@q24. i toyed with the setings somewhat(quant23 or 24, b-frames or not, how many b-frames etc.), and i was constantly experiencing much lower overall bitrates(for example 450-500kbit/s) from x264 while actually yielding same or better image quality as divx3. will try encoding episode of a tv-series tonight. even though i said cquant. encoding doesn't interest me much it wil become pretty interesting if average bitrates are 20-30% lower than divx3, and the quality is same or better. it's pretty slow (compared to nandub) but i'm sure it's faster than wmv9 or nero avc (and i didn't noticed any artefacts i'm sensitive to). the encodings with b-frames enabled are not really constant quantizer because b-frames get n+2 quant (n being the quant. you set)., but i don't care as long as it looks good, and it did. ps. i was encoding the tv-series episode, and i looked in awe as the average bitrate crumbled down to 400kbit/s on encoding (x264 quant23+1b-frame, 384x288 video). i couldn't believe my own eyes. and then i examined the actual encoded video; oh my god. i am going to love this codec. it IS 400kbit/s video and it looks very nice!
|
| Posted by: TechMage89 Feb 14 2005, 11:25 PM |
| I can't get the x264 codec I got to work. It will compress, but refuses to decompress. By the way, what the heck kind of file is the "WMV9" example file you have posted? It doesn't work with windows media for me, anyway. Besides, its an AVI not a WMV. |
| Posted by: stephanV Feb 14 2005, 11:29 PM |
| you will need a recent build of Celtic Druids ffdshow to decode x264. x264 is a compressor only. uhm, check here --> http://forums.virtualdub.org/index.php?act=ST&f=15&t=6749&st=15 make sure you enable h264 in the vfw config WMV9 doenst have to be in WMV, it can go in AVI as well. File plays fine here. |
| Posted by: TechMage89 Feb 16 2005, 02:14 AM |
| How big are these files supposed to be? It says 3.7mb at first, but ends at about 230kb (!?) I think I might be getting incomplete files, but why? |
| Posted by: i4004 Feb 16 2005, 11:28 AM |
| if you really wanna see it, use some dload manager, but there really is nothing to see in these clips; both look quite bad; one has more blocking (x264), and other has more blurring (wmv9). if you wanna try x264, then just try it. use ffdshow to decompress. (see thread stephan pointed you to) be advised not to use 1pass average bitrate mode, as that doesn't work so good atm. |