Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > VapourSynth
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 9th June 2018, 19:48   #1  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
QTGMC as single plugin

Is making single and optimised dll QTGMC unrealistic?
kolak is offline   Reply With Quote
Old 9th June 2018, 20:17   #2  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,277
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.
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 9th June 2018, 21:00   #3  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
Quote:
Originally Posted by kolak View Post
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.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 10th June 2018, 01:39   #4  |  Link
WolframRhodium
Registered User
 
Join Date: Jan 2016
Posts: 162
Quote:
Originally Posted by Myrsloik View Post
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 benefit both developers and users?
WolframRhodium is offline   Reply With Quote
Old 10th June 2018, 10:05   #5  |  Link
foxyshadis
Angel of Night
 
foxyshadis's Avatar
 
Join Date: Nov 2004
Location: Tangled in the silks
Posts: 9,559
Quote:
Originally Posted by WolframRhodium View Post
Can halide 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.
foxyshadis is offline   Reply With Quote
Old 10th June 2018, 12:15   #6  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
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.

Last edited by kolak; 10th June 2018 at 12:18.
kolak is offline   Reply With Quote
Old 10th June 2018, 18:00   #7  |  Link
Gser
Registered User
 
Join Date: Apr 2008
Posts: 418
Quote:
Originally Posted by kolak View Post
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.
Gser is offline   Reply With Quote
Old 10th June 2018, 18:44   #8  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
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?

Last edited by kolak; 10th June 2018 at 19:10.
kolak is offline   Reply With Quote
Old 10th June 2018, 19:25   #9  |  Link
DJATOM
Registered User
 
DJATOM's Avatar
 
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 377
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?
__________________
Me on GitHub
PC Specs: Ryzen 5950X, 64 GB RAM, RTX 2070
DJATOM is offline   Reply With Quote
Old 10th June 2018, 21:44   #10  |  Link
Sharc
Registered User
 
Join Date: May 2006
Posts: 3,997
Quote:
Originally Posted by kolak View Post
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.
Sharc is offline   Reply With Quote
Old 10th June 2018, 22:05   #11  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Will try, thx.
kolak is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 12:21.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.