Log in

View Full Version : Problem filters make the encode slower


yaston
25th January 2015, 10:59
Hello everyone,

I faced a problem using these filters:

"QTGMC()" and " dfttest()"

They made my encode slower, i used them at once..., one by one and i tried every way but no way !!

What should i do?

Groucho2004
25th January 2015, 11:04
Before going into details, just a couple of questions:
- What CPU is this running on?
- Which version of Avisynth are you using?
- What type of source video are you processing?

yaston
25th January 2015, 11:13
Before going into details, just a couple of questions:
- What CPU is this running on?
- Which version of Avisynth are you using?
- What type of source video are you processing?

Well...,

- CPU i5-4670K
- Avisynth 2.6.0
- Record from TV (HD and SD)

Groucho2004
25th January 2015, 11:19
I'm assuming that you are using the "official" Avisynth. You could try SEt's multi-threaded DLL but it's a bit tricky to set up.
Have a look at the QTGMC thread here (http://forum.doom9.org/showthread.php?t=156028), there are some tips on multi-threaded usage in the first post.
If set up properly, it can speed up QTGMC considerably.

dfttest() is already multi-threaded internally, so nothing to gain there with AVS MT. It's just slow.

yaston
25th January 2015, 11:49
I'm assuming that you are using the "official" Avisynth. You could try SEt's multi-threaded DLL but it's a bit tricky to set up.
Have a look at the QTGMC thread here (http://forum.doom9.org/showthread.php?t=156028), there are some tips on multi-threaded usage in the first post.
If set up properly, it can speed up QTGMC considerably.

dfttest() is already multi-threaded internally, so nothing to gain there with AVS MT. It's just slow.

I already did all of these steps... i've installed AviSynth pluging and i set "dfttest" and "libfftw3f-3" in SysWOW64

feisty2
25th January 2015, 13:37
if you really know a lot about programming and are willing to spend some time on avisynth filters
the best solution would be port all filters you are using to gpu platform
that would surely sky rocket the speed
for image processing, you can process multiple pixels simultaneously, you don't have to process the image pixel by pixel
that seems like the exact work for gpu, not cpu (sure cpu could do the work also, but would be a lot slower)

yaston
25th January 2015, 14:00
if you really know a lot about programming and are willing to spend some time on avisynth filters
the best solution would be port all filters you are using to gpu platform
that would surely sky rocket the speed
for image processing, you can process multiple pixels simultaneously, you don't have to process the image pixel by pixel
that seems like the exact work for gpu, not cpu (sure cpu could do the work also, but would be a lot slower)

Actually i don't much about this domain, i'm trying to get more knowledge and improve my quality.

Asmodian
25th January 2015, 19:44
Those filters are really slow, all you can do is not be surprised because they are really slow. :(

yaston
25th January 2015, 20:06
emmmm feel down :(

hello_hello
25th January 2015, 20:43
I know there's probably a bit of a language barrier, but explaining QTGMC is slow and therefore it'll slow the speed of encoding seems to have necessitated a new thread looking for a different answer, now in a second forum. After being told some filtering is slow yaston decided the answer was incorrect here (http://forum.videohelp.com/threads/369790-Filters-make-the-encode-slower?p=2370444&viewfull=1#post2370444) so I'm not sure he understands the concept of slow filtering slowing encoding speed.

Unfortunately yaston went from here (http://forum.videohelp.com/threads/369431-How-to-do-MeGUI-parameters?p=2369890&viewfull=1#post2369890) to a new thread without bothering to acknowledge any of the advice given or even reply to it.
How to check CPU usage, post MeGUI log files (which would include full AviSynth scripts), run simultaneous encodes..... all bypassed in preference for repeating the question, then when the magic solution isn't offered, time for a new thread. Bouncing from one question to another in threads and from one thread to another without any logical progression makes it hard to help.

Groucho2004,
yaston's pretty new to Avisynth and he's only had QTGMC working for 10 minutes, hence my instructions for running simultaneous encodes with MeGUI in the thread I linked to rather than introduce a whole new MT can of worms.
Judging from some of the scripts he's posted (http://forum.videohelp.com/threads/369431-How-to-do-MeGUI-parameters?p=2369896&viewfull=1#post2369896) in other threads I'm not sure if he's just randomly throwing filters at every encode or doesn't understand how to correctly create AVISynth scripts yet, but that thread was abandoned before it became clear.

yaston
27th January 2015, 10:25
Ok..., here's the full script, i stopped using "QTGMC" now i'm only use "dfttest"

http://im86.gulfup.com/p76GsQ.png (http://www.gulfup.com/?2ops6S)


And by the way, i found " Avisynth 2.6 MT " version it might be faster !! do you advise me on it or no?! you know about knowledge...!!

Groucho2004
27th January 2015, 10:58
I'm not sure if he's just randomly throwing filters at every encode or doesn't understand how to correctly create AVISynth scripts
These statements are not mutually exclusive which seems confirmed after the last post.
There is some kind of barrier, language and/or technical aptitude, none of the advice in the various threads appears to sink in.

Groucho2004
27th January 2015, 11:01
Ok..., here's the full script, i stopped using "QTGMC" now i'm only use "dfttest"
dfttest() is not exactly a replacement for QTGMC(). One wonders what selection criteria you use for your filtering...

yaston
27th January 2015, 12:09
dfttest() is not exactly a replacement for QTGMC(). One wonders what selection criteria you use for your filtering...

I don't want to use QTGMC() any more..., but dfttest() also makes my encode slower but not like QTGMC().

What do you think about the script? is it right? what's you advice?

feisty2
27th January 2015, 12:25
fft3dgpu is a dfttest similar filter, the quality is slightly poorer, but much faster

hello_hello
27th January 2015, 12:39
Ok..., here's the full script, i stopped using "QTGMC" now i'm only use "dfttest"

And by the way, i found " Avisynth 2.6 MT " version it might be faster !! do you advise me on it or no?! you know about knowledge...!!

Why did you stop using QTGMC? Is the video not interlaced any more or was it for some other reason?

Your script makes no sense to me. You're still using field matching you likely don't need, two denoisers and two sharpeners.

Multithreaded AVISynth may help with some filters but if your CPU is already running at 100% when you encode then it's already at 100%. Have you checked CPU usage at all as I explained you should here (http://forum.videohelp.com/threads/369431-How-to-do-MeGUI-parameters?p=2369890&viewfull=1#post2369890)?
As I explained in that thread I don't use MT AVISynth because instead of trying to make one encode use more of the available CPU power (which is what multi-threading tries to do), I just run two encodes at a time, or I split an encode into half and encode both halves at the same time.

Maybe someone else can help you with MT AVISynth, but it's not easy to get it working reliably.

yaston
28th January 2015, 11:28
QTGMC is so so slow than dfttest...

And by the way the CPU is working "above normal"

http://im69.gulfup.com/I19hwV.jpg (http://www.gulfup.com/?n0nSaD)


You know, i treid to encode an HD sample of 30MB to 12MB it took 35 minute by using "dfttest"

foxyshadis
28th January 2015, 12:28
QTGMC (deinterlacing) doesn't do the same thing as dfttest (denoising) at all, though. It's meaningless to compare their speeds. QTGMC could be compared with yadif and TDeint, while dfttest could be compared with fft3dfilter and fluxsmooth.

If you don't need deinterlacing then you're right in not using it, but it seems like you aren't sure what you need and are just throwing things at it. You might prefer to stick with MeGUI in that case, which pretty reliably decides what filters you need when you don't know how to handle a video.

hello_hello
28th January 2015, 14:02
QTGMC is so so slow than dfttest...

Do you understand the difference between interlaced and progressive video?
Do you understand you only de-interlace video if it's interlaced?
Do you understand QTGMC is a de-interlacer and dfttest is a noise filter and they're two completely different things?

And by the way the CPU is working "above normal"

No, x264's priority is set above normal. If more than one process is needing CPU time, the process with the higher priority is given preference. It has nothing to do with how much a process is utilising your CPU.
Normally you'd probably set x264 to "low" so you can still use the computer yourself for other things while you're encoding without everything being very slow.

From your screenshot I can see:

x264 70% CPU usage
Other processes 8% usage
"Unused" 22%

So CPU usage could be better, but it's not ridiculously low.

You know, i treid to encode an HD sample of 30MB to 12MB it took 35 minute by using "dfttest"

And it could take much less time, or much more time, depending on your x264 encoder settings and other filters in the script etc.

yaston
28th January 2015, 14:24
Ok, i understand the difference between interlaced and progressive video, and about the sittings i treid with the default and it was the same.

Thank you so much guys for your help and advices :) i appreciate it.