Log in

View Full Version : Speed is not min(filter1,filter2)


ajp_anton
30th September 2009, 22:44
CPU is a quad.

setmtmode(2,4)
avisource
bob.mctemporaldenoise
Speed: 7.4fps
CPU usage: 2 cores

avisource
mcbob
Speed: 6fps
CPU usage: 1.4 cores

setmtmode(6,4)
avisource
mcbob
setmtmode(2)
mctemporaldenoise
Expected speed: ~6fps
Expected CPU usage: ~3.4 cores
Speed: 3.3fps (1/(1/7.4 + 1/6))
CPU usage: 1.8 cores


Can this be improved?

IanB
1st October 2009, 02:24
Mode 2 MT the caused random access on your AviSource, unless you are using a keyframe only format .AVI file like Huffyuv, DV or uncompressed, the seek overhead is extremely high.

You can use ChangeFPS (clip1, clip2, bool "linear") to linearis you access pattern.

Something like :-SetMTMode(5, N) # or perhaps mode 3
Avisource(...)
SetMtMode(1)
ChangeFPS (Last, True)
SetMtMode(2)
....

:search: I had a long discussion about this with TSP a while ago.

Also a prefetch pipe after ChangeFPS may help.

ajp_anton
1st October 2009, 02:50
The problem is that mcbob and mctemporaldenoise are not running in parallel. Can I make mcbob start on the next frame before mctemporaldenoise is finished with the previous one?

Would really like a speedup here as the video is over half a million frames...

Comatose
1st October 2009, 14:32
Well, you could run two scripts simultaneously, and do SelectEven() in one script and SelectOdd() in the other. Hopefully, that means it won't process the frames inbetween - but it will still be able to reference those frames when they're needed in temporal processing.

kemuri-_9
1st October 2009, 16:12
if you're going to run multiple scripts simultaneously then it would make more sense to split them length-wise with Trim(),
rather than do some weird selectEvery() style which would probably not see much if any speed up if there was a temporal filter used.