Log in

View Full Version : QTGMC as single plugin


kolak
9th June 2018, 19:48
Is making single and optimised dll QTGMC unrealistic?

Selur
9th June 2018, 20:17
Atm. QTGMC uses:
fmtconv, scenechange, temporalsoften, vsznedi3 or NNEDI3CL, EEDI3, KNLMeansCL, OpenCL, libfftw3f-3, DFTTest, fft3dfilter, AddGrain
-> yes, it think it's unrealistic since it would be a pain to maintain.

Myrsloik
9th June 2018, 21:00
Is making single and optimised dll QTGMC unrealistic?

Many of the steps are so complicated they're cpu bound and not memory bound. I do however believe there are a couple of percent of speedup you could get from reducing the memory bandwidth bound parts.

Examples are patterns like maximum/minimum/inflate/deflate being called repeated which could have a more efficient access pattern if a passes argument was added.

Another thing is to avoid several luts/exprs in series and instead make use of a single expr with more inputs.

Separatefields+selectevery+weave is also easily reduced to a single operations instead of a lot of extra copying.

And so on... To do things like this automatically would require adding a line or tile based processing model which is kinda hard and annoying. I've thought about it but it'll be a lot of work to do it well for general purpose stuff (zimg does this internally already).

There's definitely a bit of speed to be gained in there but it probably starts at combining the simple operations. All the full frame copies start adding up after while.

WolframRhodium
10th June 2018, 01:39
And so on... To do things like this automatically would require adding a line or tile based processing model which is kinda hard and annoying. I've thought about it but it'll be a lot of work to do it well for general purpose stuff (zimg does this internally already).

There's definitely a bit of speed to be gained in there but it probably starts at combining the simple operations. All the full frame copies start adding up after while.

Can halide (http://halide-lang.org/) benefit both developers and users?

foxyshadis
10th June 2018, 10:05
Can halide (http://halide-lang.org/) benefit both developers and users?

That would be a good intermediate solution to a filter that's been implemented as a basic naive algorithm -- that language's low-level optimization looks surprisingly robust -- but all of the filters in question are already heavily algorithm and intrinsic/asm optimized already, they do the work asked of them as quickly as possible. What's needed is a higher-level look at all of the connections in and between filters to figure out what work doesn't need to be done, and skip doing it, restructuring the script and eventually creating more custom filters in the process.

kolak
10th June 2018, 12:15
What about writing something as good or almost as good for deinterlacing (mainly with good detection if frame does actually need deinterlacing)?

Different question.

Although QTGMC quite well "passes" progressive frames in case of hybrid nature files (which are the biggest issue) I'm using TDeint to check if frame needs deinterlacing or not. My problem is that there are quite many false positive. I'm not 100% sure but looks like ffmpeg filter for interlaced detection seems to be more accurate.
Can QTGMC itself provide (more reliable) "is combed" check?

I have 80K minutes of footage which needs to be "normalised" to pure progressive, so any processing time saving is worth it.

Gser
10th June 2018, 18:00
What about writing something as good or almost as good for deinterlacing (mainly with good detection if frame does actually need deinterlacing)?

Different question.

Although QTGMC quite well "passes" progressive frames in case of hybrid nature files (which are the biggest issue) I'm using TDeint to check if frame needs deinterlacing or not. My problem is that there are quite many false positive. I'm not 100% sure but looks like ffmpeg filter for interlaced detection seems to be more accurate.
Can QTGMC itself provide (more reliable) "is combed" check?

I have 80K minutes of footage which needs to be "normalised" to pure progressive, so any processing time saving is worth it.
Have you tried tfm from TIVTC? It is what I usually use for hybrid material. You can adjust the comb detection sensitivity.

kolak
10th June 2018, 18:44
No, I didn't, but I will.
Tdeint also has thresholds, but engine creates many false positive.

update: looks like they both may be based on the same engine?

DJATOM
10th June 2018, 19:25
Since there are a bunch of QTGMC users...
QTGMC is often blends good frames (it also affect dup frames detection afterwards), how can I avoid that? Maybe special technique or something?

Sharc
10th June 2018, 21:44
No, I didn't, but I will.
Tdeint also has thresholds, but engine creates many false positive.

update: looks like they both may be based on the same engine?
Try FieldDeinterlace (or DGTelecide if you have a Nvidia card). They have thresholds as well and may create less false positives.

kolak
10th June 2018, 22:05
Will try, thx.