Hello,
I did some benchmarking under Linux (transcode/dvd::rip) and Windows
(AviSynth/VirtualDub) to see where the performance differences I perceive
come from.
Testbed
=======
Source material: Frames 0-2000 of "Revolution 909" video clip by Daft Punk,
PAL (720x576), interlaced, ripped from DVD. This is fairly hard to encode,
with many dark scenes at the beginning, light scenes later, a few close ups,
lots of motion/cuts.
When resizing, I resized down to 640x480.
Hardware: Athlon XP 2800+, 512 MB RAM (dual channel), NForce2 chipset (Asus
A7N8X), IDE drive
Software:
* Linux: transcode 0.6.12, xvid-1.0.0beta3 (compiled by myself), dvd::rip
* Windows: Nic's Build of XviD-1.0.0beta from March 2003, recent versions
of AviSynth/VirtualDub (didn't write them down, but DVX
requires the latest builds usually), DVX as frontend
Settings
========
1. XviD:
a) Quant MPEG, Motion "6 - Ultra High", VHQ "3 - Medium Search",
Chroma ME, HighQ AC (there's no such setting with the Windows XviD
build I use), Trellis Quant, 1 B-Frame, rest defaults
I call this "HQ XviD"
b) Motion "4 - High", VHQ "0 - Disabled", rest as above
I call this "LQ XviD"
My namings of the presets are just for the sake of brevity here, there
might be "more optimal settings" for the different scenarios.
2. transcode:
a) no resize, no deinterlace
("No Processing")
b) "Fast Resize" (-B option), "Zoom to Full Frame" (-I 3 option)
("Fast Processing")
c) "HQ Resize" (-Z option), "Zoom to Full Frame"
("HQ Processing")
3. AviSynth/VirtualDub
I've used DVDx here and tried the following setup:
"Deinterlace" [i.e. FieldDeinterlace() in AviSynth] and "Sharp" resizing
[i.e. LanczosResize() in AviSynth]
Haven't done other settings, as I mainly wanted to see the difference
speed of the above two operations (resize/deinterlace) compared to
transcode.
Results
=======
Numbers are: FPS for Pass 1 / Pass 2 (all figures are rounded to the nearest
half)
Linux
-----
No Processing Fast Resize HQ Resize
HQ XviD 27,5 / 10 16 / 8,5 12 / 7
LQ XviD 28,5 / 35 17 / 17 12 / 12,5
Additionally I tried Motion 5 and Motion 6 with VHQ 1, which resulted in
28/17,5 and 27/16,5 respectively (no preprocessing here). So apparently VHQ
is the biggest consumer of CPU cycles. At first sight I could see any
difference in the encoding, probably there is hardly any.
With Motion 6, VHQ 1 and "HQ Resize" I got 12 / 9,5
Windows
-------
HQ Resize
HQ XviD 24 / 11
LQ XviD 24 / 26
I also ran some short test without preprocessing at all to see if XviD is
any faster/slower under Windows. Short answer: No, performance is more or
less the same -- the few FPS in difference I got can probably accounted to
the toolchains in question.
Conclusions
===========
a) transcode's routines for resizing and deinterlacing eat up a lot more CPU
than AviSynth's. Especially at Pass 1 this is apparent -- I'd like to
know why (wrong setup?)
b) The higher your preprocessing quality, the less important become your
XviD parameters, since at best quality, deinterlacing/resizing dominate
the CPU. So IMHO it's not much harm to go all the way in xvid4conf if
one has to deinterlace anyway -- percentage-wise the loss of time is not
that big anymore then.
c) Lanczos resize takes really long with transcode, and I didn't see any
difference in the resulting picture, so I wouldn't go for it unless
absolutely necessary (maybe to get more flexibility in target size). Joern
has said that already in dvd::rip's documentation and I guess he was
right :-).
d) Probably it's worthwhile to port AviSynth's resizing/deinterlacing over
into transcode. The AviSynth website states that VirtualDub's routines are
even better optimized (they explicitely talk about resizing there even).
Unfortunately I'm not able to do that I'm afraid...
e) XviD seems to perform very similarly under Windows and Linux with the
same codec setup on both platforms.
I hope this is useful information for somebody, maybe someone wants to test
how much difference deinterlacing makes in the process. I didn't test that
since one has no choice in that matter anyway. Either you do deinterlace or
not. OTOH it would be interesting to see how much better (worse?) AviSynth
performs here that transcode.
Greetings,
Frank
____________________________________________________
http://lists.exit1.org/mailman/listinfo/dvdrip-users
How To Ask Questions The Smart Way:
http://catb.org/~esr/faqs/smart-questions.html
|