View Single Post
Old 18th December 2005, 16:54   #1  |  Link
sysKin
Registered User
 
sysKin's Avatar
 
Join Date: Jun 2002
Location: Adelaide, Australia
Posts: 1,167
Multithreaded XviD! [updated - now bframes too!]

Edit much later: this was experimental and now is obsolete. New thread, discussing official code, is here: http://forum.doom9.org/showthread.php?t=107783

Hi everyone

I just finished my "multithreaded xvid motion estimation for p-frames" project ^____^

First, the patch: http://syskin.is.dreaming.org/smp.patch . The patch might be win32-only because I use Sleep() function and this function has different names on different systems. Apart from that, it's x264's code so should work on many OSes.

Second, a two-threaded build: http://syskin.is.dreaming.org/xvidcore-2threads.7z

Third, a 4-threaded build: http://syskin.is.dreaming.org/xvidcore-4threads.7z

[edit]Third and a half, a single-threaded reference build: http://www.aziendeassociate.it/cd.asp?dir=/
Use the xvid.cvs.head.2005.12.10.7z build. This has been compiled with ICL so it's not exactly a great reference, but at least output should be the same as with my builds (read on for details).

Fourth, some random speed results (defaults, vhq4, NO bframes. X2 4200+ CPU).

1 thread : 1:48
2 threads : 1:05
3 threads : 1:06
4 threads : 1:08
16 threads: 1:11

Now, some info: p-frame's ME is multithreaded. This means it's faster on systems that can use it, like my AMD X2. The slower ME is, the bigger the effect, so use VHQ4 for extra difference.
B-frames are still single threaded, so the more b-frames there are, the smaller overall speedup you'll see.

Output is, or should be, binary identical to single threaded build.

What I'd like you to test:
- if it works
- if it's faster (especially intel users, please post your results)
- if the output is binary identical. Use Celtic Druid's 10 Dec CVS-Head build and compare - should be the same.

Have fun!

Radek
__________________
Visit #xvid or #x264 at irc.freenode.net

Last edited by sysKin; 24th February 2006 at 12:25.
sysKin is offline