[MEncoder-users] Performance on multi core machines - a specific enquiry re avisynth mt input

Mike Hodson mystica at gmail.com
Sun Sep 30 06:24:55 CEST 2007


Hi Michael et al,

I have a few opinions (not scientific/proven facts/tested theories)
about what may be limiting your avisynth to only one cpu.

As far as I know only the -encoding- end of mencoder is multithreaded.
 MPlayer and the -decoding- end of mencoder (which to me would seem to
be 100% the same thing, as the 'encoder' bit should be the only code
addition/difference for the most part(imho)) are single-thread main
loop processes.  This is why if you wish to use -vf yadif=1:1 on HD
content, (1080i) even on a dual/quad core you are limited to the speed
of whatever 1 core is. on a e/q6600 you're limited to 2.4ghz. and
thats it.  In my experience, even with SSE2 enabled, -vf yadif=1:1 on
an e6600 / 2.4ghz total processing, is unable to in-real-time
deinterlace to 60p live tv coming from my HD tuner.

(As an aside, if somehow the -decode- process or the filtering process
or something else other than encoding could be multithreaded, and
yadif could use both cores (maybe buffer 2 'frames' of the video, and
yadif one each per core then display in order) I would be forever
impressed with 1080p 60fps HDTV on my 24")

Based on this experience, I would then presume that as avisynth and
further down the tree the MT dll for avisynth are loaded by this
single threaded decode/video filtering/post processing operation, that
they are limited to the single core that the file playback and decoder
of mencoder is using.  With the encode options for threads, it would
seem to me that you have only 1 playback/process/filter operation and
then you can spawn multiple encoder instances for each fully processed
frame.

Please let me know if this helps you figure this out any, as I am
unable to test any theories (im running linux and have no desire to
reinstall windows.)

Mike



More information about the MEncoder-users mailing list