PDA

View Full Version : small qt7 vs. x264 comparison


bond
11th December 2005, 00:52
i compared qt7 with x264 with the following clip and settings (770kbps) on windows:

source:
matrix1 clip (smith interogating morpheus, lobby shootout), 720x288, 7116 frames, 00:04:44.640

settings:

qt7 settings:
qt7 doesnt really allow setting any important settings but i was able to find out what it actually uses:
- main profile (defacto baseline profile + b-frames: deblocking (0,0), 1 b-frame (not adaptive), 1 reference frame, blocksizes p8x8,b8x8,i4x4, 5 slices, adaptive quantisation, no b-ref, no cabac, no weigthed (bi)prediction, no mixed references, no p4x4,b4x4,i8x8, no high profile)
- multipass (2pass?)
- auto keyframe
- optimised for loading (cd/dvd seems to use some vbv?)
- mp4 container

x264 settings:
i made two encodes (one with good quality settings, and one with the ~ same settings as qt7 uses):

x264 --pass 2 --bitrate 770 --bframe 3 --b-pyramid --ref 5 --mixed-refs --filter -6:-6 --subme 6 --8x8dct --analyse all --weightb --no-fast-pskip --progress -o output_x264.mp4 input.avsx264 --pass 2 --bitrate 770 --bframe 1 --no-b-adapt --ref 1 --filter 0:0 --no-cabac --subme 5 --analyse p8x8,b8x8,i4x4 --progress -o output_qt.mp4 input.avsspeed

on my pentium3 866mhz cpu:
qt7: 0.4 fps (or ~ 10 hours)
x264_qt: 6.43 fps (or ~ 37min)
x264: 2.87 fps (or ~ 1h 20min)so no matter how qt7 performs qualitywise, its totally intolerably slow, in fact i see an encoding time of 10 hours for a 5 minute clip as a bad joke and a personal offense :D
x264 is with ~ the same settings as qt7 16 times faster! with good quality settings its still 7 times faster here

the speed also gives a hint that apple might simply use the avc reference encoder (+ adaptive quantisation)

quality:

i was really surprised to see that qt7 definitely performs pretty good qualitywise, especially as it doesnt use a lot of advanced avc features (like cabac). when comparing to x264 with not bad quality settings, the level of details is often comparable to x264, still it sometimes simply smooths too much tough on a few scenes (propably because the imho strong loop filter of 0,0 kicks in?), but i wasnt able to find out what triggers this. its not in highmo, as it happens in slowmo and in highmo qt7 shows clearly more details than x264 (lobby shootout). walls seem to be handled little bit better in qt7 than in x264, but its hardly noticeable

when comparing qt7 with x264 using ~ the same settings qt7 definitely performed much better, meaning it showed much more details. i guess thats because x264 used the loop filter on every frame, whereas qt7 used it on as good as no frame
imho loop of 0,0 is simply far too strong for 770kbps normal movie content, as it lead to a clear blur. normally i am using -6,-6 (the minimum possible)


all in all qt7 is not useable because of the slow speed (points to that apple uses the reference), but qualitywise its not bad (also points to that apple uses the reference)
so to sum it up i think apple uses the reference :D

keel
11th December 2005, 03:27
i compared qt7 with x264 with the following clip and settings (770kbps) on windows:
source:
matrix1 clip (smith interogating morpheus, lobby shootout), 720x288, 7116 frames, 00:04:44.640I'm on a PowerBook at home now and the production Macs and PCs are at work. Just wondering, embarassed to say I have not gone from DVD to anything on the PC (just the Mac). How do you go from a DVD to H.264 AVC using QuickTime Pro on Windows? Or are you encoding to an intermediate format first.
On the Mac, you can't go directly to H.264 from a DVD VOB using QT Pro, as far as I know. I use Cinematize, ffmpegx, Streamclip, and HandBrake, depending on the situation.

I'd like to run some simple tests in the next few weeks, when I have the time, comparing Mac and PC H.264 encoding speeds with QT Pro. On the Mac, QT Pro takes advantage of both processors, not sure about Windows.

Also, did you run into any interlace artifacts in the above tests with QT Pro? I've started using its H.264 encoder and have obtained some nice results when the veritcal resolution was less than 240 pixels, coming from NTSC, but above that, without a deinterlace filter, video with a lot of motion shows considerable interlace tearing. I'm going to make a strong suggestion to Apple, to include a user-enabled deinterlace filter, even a simple one, in QT Pro. It would make a big difference.

bond
11th December 2005, 12:47
I'm on a PowerBook at home now and the production Macs and PCs are at work. Just wondering, embarassed to say I have not gone from DVD to anything on the PC (just the Mac). How do you go from a DVD to H.264 AVC using QuickTime Pro on Windows? Or are you encoding to an intermediate format first.
On the Mac, you can't go directly to H.264 from a DVD VOB using QT Pro, as far as I know. I use Cinematize, ffmpegx, Streamclip, and HandBrake, depending on the situation.

I'd like to run some simple tests in the next few weeks, when I have the time, comparing Mac and PC H.264 encoding speeds with QT Pro. On the Mac, QT Pro takes advantage of both processors, not sure about Windows.well there is no easy way to feed qt7 with vobs, or parts of vobs, or vobs resized (or filtered in other ways) via avisynth

the method i used is described here (http://forum.doom9.org/showthread.php?p=746854#post746854)

qt7 is definitely not easy to use for a testing platform

Also, did you run into any interlace artifacts in the above tests with QT Pro? I've started using its H.264 encoder and have obtained some nice results when the veritcal resolution was less than 240 pixels, coming from NTSC, but above that, without a deinterlace filter, video with a lot of motion shows considerable interlace tearing. I'm going to make a strong suggestion to Apple, to include a user-enabled deinterlace filter, even a simple one, in QT Pro. It would make a big difference. i didnt use an interlaced source, also i dont think qt7 supports interlaced encoding of avc

Doom9
11th December 2005, 13:58
alright, I have some numbers of my own: X2 4600+. Matrix 1, 2000 frames, 7.54 fps
using the following script:
mpeg2source("D:\DVDs\THE_MATRIX_16X9LB_N_AMERICA\VIDEO_TS\matrix.d2v")
crop(0,60,-2,-64)
LanczosResize(640,272)

QT7 makes use of both cores even on Windows, thus speed is completely unacceptable. Furthermore, usability is also completely unacceptable. I have tried AviSynth, makeAVIs, Link2, vfapi and the only way that worked out was an AVI with raw YUY2 content and the fourCC tinkering bond mentioned.

Doom9
11th December 2005, 15:32
now the weirdest thing happened.. I did another test, this time with 10'000 frames, and this time the progress bar didn't even go to 50%, speed ended up at 12.46 fps and the file is perfectly playable. Something is wrong in QT land..

charleski
11th December 2005, 15:53
I find it hard to believe that professionals are using QT7Pro to make the trailers you see on the net. Does anyone have access to Final Cut Pro or another real Mac video application? I wouldn't put it past Apple to ship an 'enhanced' (i.e. usable) encoder with their pro apps.

bond
11th December 2005, 16:26
I find it hard to believe that professionals are using QT7Pro to make the trailers you see on the net. Does anyone have access to Final Cut Pro or another real Mac video application? I wouldn't put it past Apple to ship an 'enhanced' (i.e. usable) encoder with their pro apps.why not? didnt i say that the quality is pretty good?
users dont see the encoding time needed to produce a trailer when watching it

edit: also qt7 produces 5 slices, which absolutely makes no sense for an enduser tool. i guess the encoder might be written for professional encoding environments being able to use the 5 slices?

charleski
11th December 2005, 18:56
users dont see the encoding time needed to produce a trailer when watching itBut in a professional environment time=money.

What really matters is how it performs on a G5 I suppose.

bond
12th December 2005, 01:00
indeed, thats why i said this, which for me means it targets at pro stuff:

edit: also qt7 produces 5 slices, which absolutely makes no sense for an enduser tool. i guess the encoder might be written for professional encoding environments being able to use the 5 slices?

keel
12th December 2005, 04:26
well there is no easy way to feed qt7 with vobs..
qt7 is definitely not easy to use for a testing platformThat, combined with the slow encoding speed on Windows (not sure about OSX yet) seems to make it a poor candidate for ripping DVDs to H.264, heh?

i didnt use an interlaced source, also i dont think qt7 supports interlaced encoding of avcThis is what I meant: Apple includes a free compression tool, Compressor, with DVD Studio Pro and with Final Cut Pro. This has a de-interlace filter with a few different options that does not add much to the encoding time, and does a passable job (no adaptive deinterlacing though). As QT Pro already has some filters available when you export to .mov, it would not seem too difficult to include them in the MPEG4 export, and add the deinterlace one, which Apple already has developed for Compressor. I encode mostly from interlaced NTSC DV, so deinterlacing makes a big difference when the pixel height is greater than 240. This lack of a deinterlace filter makes QT Pro a poor choice for encoding anything taller if you have any motion.

keel
12th December 2005, 04:35
now the weirdest thing happened.. Something is wrong in QT land..There are still a considerable number of bugs in both the OSX and Windows versions of QT Pro, but more so in the Win version. And neither is optimized for speed. Here again, while I have not had the chance to encode the same material on both platforms my suspicion is that the Win version lags.
Not to defend Apple (really!) but we'll probably see fewer bugs and faster speed with every new incremental release of QT. But then you can probably say that about any H.264 encoders at this stage of the game.
And, even with bug fixes and faster encoding, some people will find other solutions more appealing, for good reasons.

keel
12th December 2005, 05:23
I find it hard to believe that professionals are using QT7Pro to make the trailers you see on the net. Does anyone have access to Final Cut Pro or another real Mac video application? I wouldn't put it past Apple to ship an 'enhanced' (i.e. usable) encoder with their pro apps.Last I heard, Apple encoded all their trailers in-house. For this, they may have internal tools not available to others. A few years ago, they were still using Cleaner, but I doubt this is true now, as it crashes under OSX 10.4. There is a new version coming out soon, 6.5, though, which is supposed to work with the latest OSX, QT and H.264.

As a sidebar, lots of videos have been encoded to H.264 for the video iPod, and possibly not by Apple, it would be interesting to know how these were encoded. As they are 320x240, QT Pro probably would do a good job, if albeit slowly.

There are three "professional" GUI encoding tools, to my knowledge, on OSX. Compressor is included with Final Cut Express, Final Cut Pro and DVD Studio Pro. Popwire has Compression Master and Compression Engine. And Sorenson Media has Squeeze. When you encode with Compressor, the actual compression engine is QT Pro and its H.264, Compressor just has a lot of pre-processing features. Not sure about Popwire, but Sorenson has their own H.264.
On Windows, Cleaner XL can output using QT's H.264, and Squeeze works with its own H.264. Now, I realize most forum members do not use GUI based encoders, but many encoders are professional video producers who don't want to get into the command line.

To me, there is too big a gap between QT Pro (at $30) and the rest of the pro apps, which start at Squeeze for $400. Unless someone else jumps in, that's why I'd like to see Apple improve their QT Pro encoding abilities, features and speed.
I am NOT defending Apple, GUIs, or QuickTime, really!