View Full Version : QTGMC Deinterlacing Script (v3.384)
real.finder
3rd June 2015, 22:15
the changes from 3.33 (https://forum.doom9.org/showthread.php?p=1423459#post1423459) you need to know is (there are others, you can get it from the QTGMC.avsi):-
1- it work only with 2.6 avs or avs+, avs 2.5 dropped
2- it work with YUY2 without ssetools
3- it's ready to HBD (it work in the Default settings now for 10-16 bit)
some notes:-
1- it need masktools 2.2.23 or above (https://github.com/pinterf/masktools/releases) or you will get wrong result
2- it may need some other scripts and up-to-date plugins, see the wiki page
last version in this link (https://github.com/realfinder/AVS-Stuff/blob/master/avs%202.6%20and%20up/QTGMC.avsi)
wiki page http://avisynth.nl/index.php/QTGMC
online documentation https://htmlpreview.github.io/?https://github.com/realfinder/AVS-Stuff/blob/master/avs%202.6%20and%20up/QTGMC%20Docs%20(v3.392s).html
real.finder!
:thanks:
Please precise plugin list for update (---------------------------
VirtualDub Error
---------------------------
Avisynth open failure:
Script error: MDegrain1 does not have a named argument "lsb"
(QTGMC.avsi, line 567)
(D:\Video\Stenyaev\testqtgmc.avs, line 3)
---------------------------
ОК
---------------------------
).
yup.
Reel.Deel
7th June 2015, 19:07
Yup, I believe you need MVTools v2.6.0.5. (http://forum.doom9.org/showpost.php?p=1386559&postcount=3)
stax76
7th June 2015, 20:08
There are quite many issues with the traditional way of converting DVDs
1. AnyDVD is way too expensive
2. on many DVDs there is a timestamp issue in the beginning, DGIndex warns about it and can trim it but now all of your subtitles are out of sync, the only tool I ever knew to handle this well is MakeMKV
3. You cannot open d2v with AviSynth x64 on Win10, I don't know about VapourSynth x64 but it's probably not working either
A much more modern, easier and reliable way I believe is using MakeMKV for ripping, mkvextract for demuxing and FFVideoSource with rffmode parameter to handle NTSC.
creaothceann
7th June 2015, 20:45
2. on many DVDs there is a timestamp issue in the beginning, DGIndex warns about it and can trim it but now all of your subtitles are out of sync, the only tool I ever knew to handle this well is MakeMKV
If you know how much you can fix it with AegiSub / by adding blank frames.
manono
7th June 2015, 21:06
If you know how much you can fix it with AegiSub / by adding blank frames.
I agree that it's a simple matter to fix out-of-synch subs. And I also believe that using MakeMKV on DVDs is the source of a multitude of problems and that indexing a DVD using DGIndex is still the way to go and will be for a long time yet.
I don't know which "traditional" way stax76 refers to. If it is ripping the whole content in "File mode", I would not recommend it anyway. My recommendable solution to process DVD Video is to extract only the main movie PGC (with only one angle, if multi-angle production) using your favourite ripper in "IFO mode" (others may call it "Movie mode") and writing it out to a contiguous VOB file containing only one straight PGC with only one video stream. Even DVD Shrink (though not exactly a "ripper") can do that when authoring a new minimalistic DVD with only the main movie from an existing DVD. This "serialized" file can be processed by DGMPGDec, DGDec{NV|IM}, FFMS2, L-SMASH Works, DSS2(Mod). If you already have the whole DVD ripped to harddisk, use PGCDemux to extract the "PGC VOB".
Sorry for getting off-topic here. It's not really related to QTGMC.
stax76
8th June 2015, 00:50
If manual syncing is required then it's not really as simple as MakeMKV.
Reel.Deel!
:thanks: one more.
Now all work in YUY2 colorspace. All my filter chain save original chroma.
yup.
Carpo
8th June 2015, 09:13
If manual syncing is required then it's not really as simple as MakeMKV.
And if you rely on a program to do everything for you then you will soon run into issues.
As for QTGMC is there a list of working 64 bit filters for it, on some sources I hit the memory limit and the encode fails
jpsdr
8th June 2015, 09:17
T
3. You cannot open d2v with AviSynth x64 on Win10, I don't know about VapourSynth x64 but it's probably not working either
I thought the issue has been fixed recently. :confused:
stax76
8th June 2015, 12:18
And if you rely on a program to do everything for you then you will soon run into issues.
As for QTGMC is there a list of working 64 bit filters for it, on some sources I hit the memory limit and the encode fails
I'm not relying on a single method but try to support as many methods as good as possible. StaxRip's eac3to demuxing GUI for Blu-ray has the same quality as other parts of StaxRip even though I use and recommend MakeMKV instead of eac3to. DGMPGDec was the first method integrated and it was always supported and working even though not recommended since very long. Unfortunately after giving up x86 several tools stopped working, DGMPGDec and QTGMC MT are not working on AviSynth+ x64, I hope the problems will be fixed as I don't plan to reactive x86 support. I also want to support VapourSynth x64 where QTGMC is said to work.
I thought the issue has been fixed recently.
On x64 only DGDecNV (dgi) and DGDecIM (dgim) are working but not DGMPGDec (d2v) and DGAVCDec (dga), I still hope somebody fixes DGMPGDec, as far as I know ffms2 works just as well, with LWLibavVideoSource I had problems last time I tried a NTSC source, I'll try it again.
The problem with QTGMC using AviSynth+ x64 with MT is continuously dropping fps, maybe only the AviSynth+ main developer can fix it, I hope he comes back soon.
jpsdr
8th June 2015, 18:30
Sorry !! My mistake.
LouieChuckyMerry
30th June 2015, 14:00
Hello. I'm wanting to experiment with QTGMC and SRestore on some NTSC SD animation, like such:
QTGMC(TR0=1,TR1=1,TR2=0)
SRestore(FRate=23.976,Speed=-1,Thresh=12,Cache=50)
and was hoping for help to find the least aggressive QTGMC settings with regards to denoising. Reading the html leads me to believe that:
QTGMC("Ultra Fast",TR0=1,TR1=1,TR2=0,NoiseProcess=0)
SRestore(FRate=23.976,Speed=-1,Thresh=12,Cache=50)
would be my best choice, but perhaps somebody more knowledgeable than I could improve upon this. Thanks for your time :) .
William.Lemos.BR
1st July 2015, 01:19
I'm wanting to experiment with QTGMC and SRestore on some NTSC SD animation.
As far as I know, QTGMC was not designed to be used with "unnatural" material (such as animation).
and was hoping for help to find the least aggressive QTGMC settings with regards to denoising.
It wouldn't be wise to disable QTGMC's noise processing, it is internally necessary to make its job. Why don't you use NoiseRestore / GrainRestore parameters in order to keep the original noise, let QTGMC denoise and do its magic, and then restore the "original" noise to the output?
In the html instructions we see these examples (under "Noise Bypass / Denoising" topic) of how keep the original noise:
# Retain Noise / Grain
QTGMC( Preset="Slower", NoiseProcess=1, NoiseRestore=1.0, Sigma=2.0 ) # Retain *all* the noise / fine detail of a less noisy source
QTGMC( Preset="Slower", NoiseProcess=1, GrainRestore=1.0, Sigma=2.0 ) # Similar to above but only keep the more "stable" noise elements (depends on TR2)
As a deinterlacer with motion estimation, QTGMC relies on "true interlaced" material with a regular temporal progress from field to field. It doesn't matter much whether the content is natural or artifical, e.g. raytracers can produce fieldbased movies too. Just "stop motion" can't be handled well because the temporal progress is discrete, this will confuse the motion estimation.
William.Lemos.BR
1st July 2015, 13:42
As a deinterlacer with motion estimation, QTGMC relies on "true interlaced" material with a regular temporal progress from field to field.
That was exactly what I meant when I used "unnatural" in quotes, thanks!
LouieChuckyMerry
2nd July 2015, 02:53
William.Lemos.BR, LigH: thank you both for your answers. I asked about QTGMC for animation on this thread a couple months ago, so I should've already known the answer to this recent question. As my first major encoding project has progressed I've tried so many things that I simply forgot this fact, coming full circle. Sorry to waste your time, I promise I'll remember now :) .
colours
3rd July 2015, 12:02
LigH: Uh, hello, I already debunked that three pages ago?
It's not like live action has "linear motion" of any sort at all, so you could equally well have said "deinterlacing is useless on anything other than synthetic test sequences specially designed to be deinterlaced", which is an obviously untrue statement.
Just to reiterate again, MVTools does not use temporal motion vector prediction. Ergo, "regular temporal progress from field to field" is meaningless. To quote myself again: "The only requirement is that motion compensation between frames is effective, and duplicated content is the best-case scenario for motion compensation, simply because there is no motion at all!"
Getting motion vectors for stop motion-like things is hard because of the discrete motion, as you pointed out, not because they have a low intrinsic frame rate. That's a complete red herring; it wouldn't be any different if you removed all the duplicate fields/frames manually and sped the darned thing up to 60 fps of actual animation.
Sorry, missed that reply earlier. Well, I'll try to understand your point. If the problem is not in the duplicates, where is it then? In the possibly quite suddenly changing directions and distances between each motion step?
Boulder
3rd July 2015, 12:14
In the possibly quite suddenly changing directions and distances between each motion step?I'd say that is the problem. Or that the actual motion occurs in every other frame or so.
colours
3rd July 2015, 12:15
If the problem is not in the duplicates, where is it then? In the possibly quite suddenly changing directions and distances between each motion step?
Pretty much, yeah.
Here's a quote from Dark_Shikari (https://web.archive.org/web/20140829091015/http://x264dev.multimedia.cx/archives/102) (emphasis mine):
There are also a number of problems from an encoder perspective in addition to the issues of the transform itself. Motion is rarely smooth in animated content; since animation is usually done at a much lower framerate than the actual video, an object may alternate motion and non-motion, resulting in motion search being unable to use temporal predictors. Furthermore, when that object jumps 20 pixels to the right, it’s inherently hard to find where it went using normal methods.
Livesms
7th July 2015, 11:00
Tried to run QTGMC and get such error (att).
OS: Windows 7 x64 SP1
Avisynth 2.6
All plugins and libs put into the right place.
Livesms
7th July 2015, 13:03
Solved CACHE_GETCHILD_CACHE_MODE error
Added "SetMTmode(2)" at the very first line of avs Script ...
LouieChuckyMerry
9th July 2015, 08:47
I've found that adding "QTGMC(InputType=1)" in this script as so:
LoadPlugin("F:\[0]StandAloneApps\MeGUI-2500(core)2443(data)0.3.5(libs)[Portable]\tools\DGIndexNV\DGDecodeNV.dll")
DGSource("SourcePath")
### Deinterlace-Match Fields-Decimate-Fix Line Doubled Fields ###
LoadPlugin("F:\[0]StandAloneApps\MeGUI-2500(core)2443(data)0.3.5(libs)[Portable]\tools\avisynth_plugin\TIVTC.dll")
Function FieldMatch(Clip C) {
Global PP = C.DuplicateFrame(0)
Global CC = C
Global NN = C.DeleteFrame(0)
P2 = PP.SeparateFields()
C2 = CC.SeparateFields()
N2 = NN.SeparateFields()
Global PC = Interleave(P2.SelectEven(),C2.SelectOdd()).Weave()
Global CP = Interleave(C2.SelectEven(),P2.SelectOdd()).Weave()
Global CN = Interleave(C2.SelectEven(),N2.SelectOdd()).Weave()
Global NC = Interleave(N2.SelectEven(),C2.SelectOdd()).Weave()
Global Deint = QTGMC(CC).SelectEven()
Return ScriptClip(CC, \
"!CC.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? CC : " + \
"!NN.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? NN : " + \
"!CN.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? CN : " + \
"!NC.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? NC : " + \
"!PP.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? PP : " + \
"!CP.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? CP : " + \
"!PC.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? PC : Deint")
}
TFM(Order=-1,Mode=5,PP=2,Clip2=FieldMatch(),Slow=2,MChroma=False,Ubsco=False,CThresh=12,Chroma=True)
TDecimate(Mode=1)
NNEDI3(Field=-2)
Merge(SelectEven(),SelectOdd())
### Reduce Shimmering ###
QTGMC(InputType=1)
### Stabilize ###
Stab(Mirror=15)
### Crop ###
Crop(8,0,-8,0)
### Gibbs Noise Block ###
Edge=MT_Edge("prewitt",ThY1=20,ThY2=40).RemoveGrain(17)
Mask=MT_Logic(Edge.MT_Expand().MT_Expand().MT_Expand().MT_Expand(),Edge.MT_Inflate().MT_Inpand(),"xor")
MT_Merge(DFTTest(),Mask,Luma=True)
### Overall Temporal Denoise ###
SMDegrain(TR=2,ThSAD=500,ContraSharp=True,RefineMotion=True,Plane=0,Lsb=True,Lsb_Out=True,PreFilter=2,Chroma=False)
### Resize ###
LinearResize(640,480,Lsb_In=True,Lsb_Out=True)
### Darken-Thin Lines ###
F=DitherPost(Mode=-1)
S=F.FastLineDarkenMod(Strength=20,Prot=6).aWarpSharp2(Blur=4,Type=1,Depth=3,Chroma=2)
D=MT_MakeDiff(S,F).Dither_Convert_8_To_16()
Dither_Add16(Last,D,Dif=True,U=2,V=2)
### Deband ###
GradFun3(thR=0.55,SMode=2,Lsb_In=True,Lsb=True,StaticNoise=True)
### Preview Source OR Send 16-bit Output To x264 10-bit ###
# DitherPost()
Dither_Out()
does wonders to minimize the shimmering. Really, the difference is amazing. I was hoping, however, that somebody with an intimate understanding of QTGMC could recommend tweaks to the QTGMC line to increase encoding speed, even if there's a loss of quality. That is, does anyone know any QTGMC parameters I can adjust in conjunction with "InputType=1" to increase the encoding speed with regards to shimmering? I've read the .html file but presently it's above my head. Thanks for any help :) .
luigizaninoni
9th July 2015, 11:04
QTGMC(InputType=1,Preset="Medium")
you could even try preset "fast" or "faster", but quality will suffer a bit
If you do not indicate a preset, qtgmc by default uses "slow"
Taurus
9th July 2015, 11:28
Why not try a faster preset on QTGMC?
Maybe "Preset=Medium"?
The default preset is IMHO "Preset=Slower".
Changing to "medium", "fast" or "faster" should give you a nice speedboost.
LouieChuckyMerry
10th July 2015, 00:43
QTGMC(InputType=1,Preset="Medium")
you could even try preset "fast" or "faster", but quality will suffer a bit
If you do not indicate a preset, qtgmc by default uses "slow"
Why not try a faster preset on QTGMC?
Maybe "Preset=Medium"?
The default preset is IMHO "Preset=Slower".
Changing to "medium", "fast" or "faster" should give you a nice speedboost.
Thank you both for your answers :) . So obvious it didn't even cross my mind...
TheSkiller
3rd August 2015, 17:35
real.finder,
using your mod (http://forum.doom9.org/showthread.php?p=1725289#post1725289) I noticed YUY2 works only as long as I don't use SourceMatch.
If I try to use SourceMatch with YUY2 I get this error message:
"mt_lutxy : unsupported colorspace. masktools only support planar colorspaces (YV12, YV16, YV24)"
Lines 928 and 585.
real.finder
4th August 2015, 03:09
real.finder,
using your mod (http://forum.doom9.org/showthread.php?p=1725289#post1725289) I noticed YUY2 works only as long as I don't use SourceMatch.
If I try to use SourceMatch with YUY2 I get this error message:
"mt_lutxy : unsupported colorspace. masktools only support planar colorspaces (YV12, YV16, YV24)"
Lines 928 and 585.
2015 9 10 http://pastebin.com/7zZV7Q3h and in Attachments
2016-01-19 http://pastebin.com/MgZ2pMJm
2016-04-11 http://pastebin.com/TV5YRwyu and in Attachments
2016-12-06 http://pastebin.com/RqB1sf9X and in Attachments
2017-01-01 http://pastebin.com/HAD74H7Z and in Attachments (QTGMC 3.352s)
2017-02-06 http://pastebin.com/2mnirSiN and in Attachments (QTGMC 3.353s)
new updates will be here https://forum.doom9.org/showpost.php?p=1796409&postcount=2277 In future
TheSkiller
4th August 2015, 12:55
Thanks for the quick fix, much appreciated. :)
Music Fan
9th August 2015, 18:42
Virtual Dub can't open scripts with v3.33 on my pc, the last version working is 3.32, what could be the reason ?
LigH
9th August 2015, 18:43
And what could be the verbose error message?
Music Fan
9th August 2015, 19:08
There is no detail, just "unable to open file".
LigH
10th August 2015, 08:15
Very strange. That would mean for me that VirtualDub does not understand the whole script anymore just because QTGMC 3.33 is used?! If it could just not load a plugin, I would expect a different error ... More checks required.
Does AvsMeter (32 bit) report a more meaningful error? Did you save the script in Unicode format or "ANSI" (Windows CP1252)? Will AvsPmod or VirtualDubMod open the script and display a preview?
StainlessS
10th August 2015, 09:28
Also try MPC-HC or some other media player that normally opens avs files.
And try temporary empty of Plugins32 dir in Vdub, (I've had problems before with avs ffms2 and VDub FFInputDriver.vdplugin dll's
interfering with each other [some kind of change to the dll directories search order]).
Music Fan
10th August 2015, 10:14
I tried 3.33s with MPC-HC and AvsMeter and I get this message ;
MDegrain1 does not have a named argument "lsb" (QTGMC.avsi, line 571)
I wonder why VDub does not show this message.
edit : If I empty Vdub's Plugins32 dir (which contains FFInputDriver.vdplugin and its dll's), I get the same message than with MPC-HC and AvsMeter !
By the way, is it possible to export error messages in text ?
LigH
10th August 2015, 10:21
I guess AvsMeter would report an error as text in the console.
It seems that you put several different plugins and import scripts into your autoload directory, and now accidently a wrong one is used...
MDegrain1() is a function in mvtools2.dll; having this DLL in the correct (minimum) version is very important for QTGMC.
# --- REQUIREMENTS ---
#
# Input colorspaces: YV12, YUY2
#
# Core plugins:
# MVTools2 (2.5.11.2 or above)
# MaskTools v2 (recommend 2.0a45 or above. Must use the 2.5 version with YUY2)
# NNEDI3 (recommend 0.9.4 or above for speed)
# RemoveGrain + Repair (several versions of this plugin, use the SSE2 dlls from the file called "RemoveGrain-1.0.rar". Don't use the SSE3 versions )
# SSE2Tools for YUY2 support (from the earlier 0.9 version of RemoveGrain, use only SSE2Tools.dll from this version. Don't use the SSE3 version)
If you are using AviSynth MT, you will probably need one of the last fixes of ViT's mod (http://forum.doom9.org/showthread.php?p=1619023#post1619023) or b1 mod by TP7 (https://github.com/tp7/masktools/releases) for MaskTools2 to avoid cache mode exceptions (MVTools2 is a different plugin).
Music Fan
10th August 2015, 10:29
I don't use MT version and I have mvtools 2.5.11.3, thus I guess it should work.
I guess AvsMeter would report an error as text in the console.
It can't be copied, and no log is created in this case, but I can propose to AvsMeter's developer to add it.
LigH
10th August 2015, 10:51
Ah, your QTGMC version is not 3.33, but probably 3.33s; an "lsb" parameter was introduced rather late. But mvtools-v2.5.11.3.zip offered by Fizick does not document it. There must be another one. Fizick's mvtools2.dll is from 2011-09-19, but I have one from 2012-04-02 too. Both don't seem to support a parameter "lsb", so there seems to be a more recent source.
Groucho2004
10th August 2015, 10:53
It can't be copied, and no log is created in this case, but I can propose to AvsMeter's developer to add it.
Use "AVSMeter script.avs -i -log". If there is a (syntax) script error it will be written to the log.
Boulder
10th August 2015, 10:53
You probably need the MVTools2 by cretindesalpes. It is the most recent one.
Groucho2004
10th August 2015, 11:04
You probably need the MVTools2 by cretindesalpes. It is the most recent one.
Yes, I'm using that and the latest QTGMC works fine. On top you'll get a nice speed-up through avstp.dll.
Groucho2004
10th August 2015, 11:14
To summarize the recommended plugins (not only) for QTGMC:
MVTools and dfttest from here (http://forum.doom9.org/showthread.php?p=1386559#post1386559)
RGTools from here (https://github.com/tp7/RgTools/releases) (instead of separate Removegrain, Repair, VerticalCleaner)
Masktools from here (https://github.com/tp7/masktools/releases)
Music Fan
10th August 2015, 11:17
Use "AVSMeter script.avs -i -log". If there is a (syntax) script error it will be written to the log.
It does not work : with this command line, AVSMeter is opened as usual but no log is created :confused:
Groucho2004
10th August 2015, 11:19
It does not work : with this command line, AVSMeter is opened as usual but no log is created :confused:
Works fine here. UAC?
Music Fan
10th August 2015, 11:22
To summarize the recommended plugins (not only) for QTGMC:
MVTools and dfttest from here (http://forum.doom9.org/showthread.php?p=1386559#post1386559)
RGTools from here (https://github.com/tp7/RgTools/releases) (instead of separate Removegrain, Repair, VerticalCleaner)
Masktools from here (https://github.com/tp7/masktools/releases)
Thanks, no more error message with 3.33s thanks to mvtools-2.6.0.5 :)
Music Fan
10th August 2015, 11:34
Works fine here. UAC?
Yes, it's ok when I run console as administrator ;)
And now it also works when I open it normally, without running it as administrator !?
Music Fan
10th August 2015, 11:44
RGTools from here (https://github.com/tp7/RgTools/releases) (instead of separate Removegrain, Repair, VerticalCleaner)
Thus it works as if these 3 filters were separated (nothing to change in scripts using these filters) ?
Does it include RemoveGrainT ?
Groucho2004
10th August 2015, 12:02
Thus it works as if these 3 filters were separated (nothing to change in scripts using these filters) ?
Yes.
Does it include RemoveGrainT ?
Don't know. Try it or google.
TheSkiller
10th August 2015, 12:26
RGTools from here (https://github.com/tp7/RgTools/releases) (instead of separate Removegrain, Repair, VerticalCleaner)Out of curiosity I just tried that, although I have no problems running QTGMC with separate Removegrain, Repair, VerticalCleaner, but with RgTools I get "There is no function named RemoveGrain".
Masktools from here (https://github.com/tp7/masktools/releases)
Tried that one as well, guess what – doesn't work for me either.^^
"There is no function named mt_makediff"
The other (http://forum.doom9.org/showthread.php?p=1619023#post1619023) recommended Masktools do work for me.
Groucho2004
10th August 2015, 12:32
Out of curiosity I just tried that, although I have to problems running QTGMC with separate Removegrain, Repair, VerticalCleaner, but with RgTools I get "There is no function named RemoveGrain".
Tried that one as well, guess what – doesn't work for me either.^^
"There is no function named mt_makediff"
The other (http://forum.doom9.org/showthread.php?p=1619023#post1619023) recommended Masktools do work for me.
You probably don't have the runtime DLLs for VS2012 installed. See notes on this (http://avisynth.nl/index.php/RgTools) page.
Reel.Deel
10th August 2015, 12:33
@TheSkiller
More than likely you're missing the runtime dependencies. Both RgTools and MastTools need the Microsoft Visual C++ 2012 Redistributable Package (http://www.microsoft.com/en-us/download/details.aspx?id=30679).
Edit: too slow
TheSkiller
15th August 2015, 11:20
That did the trick, thanks. I wasn't aware I need to have Visual C++ 2012 installed even if I already had 2013 installed all the time. :rolleyes:
LigH
15th August 2015, 12:19
Oh, that's a fact we keep explaining every year: The different versions of MS Visual Studio Runtimes are exclusive and incompatible among each other. You'll need to install every runtime version of every compiler version at least one of any EXE or DLL on your PC was compiled with.
hello_hello
7th September 2015, 09:17
I'm just reporting a problem with the latest QTGMC script (v3.33s). I'm trying to repair some badly de-interlaced video and as a starting point I copied the following from the QTGMC.html file, under the "Multiple QTGMC Calls" section:
t = QTGMC( Preset="Slower", InputType=2 )
b = QTGMC( Preset="Slower", InputType=3, PrevGlobals="Reuse" ) # Reuse motion vectors from first call for a good speed-up
Repair( t, b, 1 )
QTGMC versions 3.33 and 3.33d work fine. For 3.33s, Avisynth offers the following error:
Invalid arguments to "isyuy2"
QTGMC 3.33s.avsi, Line 412
I'm running Avisynth 2.6.0.6 and the source video is YV12. Just to be sure, I replaced the version of masktools2 I'm using with mt_masktools-25.dll from the QTGMC plugins package, and I replaced RGTools with RemoveGrainSSE2 and RepairSSE2, but it made no difference. I have SSE2Tools. I don't know how to test with an older MVTools2 as it results in a "no named lsb argument" error, which I assume would be expected.
Removing PrevGlobals="Reuse" from the script prevents the error.
Thanks.
PS Out of curiosity, one of the changes for v3.33s is:
- work with new masktool2 for avs 2.60
Anyone know what that means specifically? What didn't work previously? I'm curious because I'm fairly sure I'm using the "new masktools2" and the previous QTGMC versions worked okay.
real.finder
8th September 2015, 23:50
I'm just reporting a problem with the latest QTGMC script (v3.33s). I'm trying to repair some badly de-interlaced video and as a starting point I copied the following from the QTGMC.html file, under the "Multiple QTGMC Calls" section:
t = QTGMC( Preset="Slower", InputType=2 )
b = QTGMC( Preset="Slower", InputType=3, PrevGlobals="Reuse" ) # Reuse motion vectors from first call for a good speed-up
Repair( t, b, 1 )
QTGMC versions 3.33 and 3.33d work fine. For 3.33s, Avisynth offers the following error:
Invalid arguments to "isyuy2"
QTGMC 3.33s.avsi, Line 412
I'm running Avisynth 2.6.0.6 and the source video is YV12. Just to be sure, I replaced the version of masktools2 I'm using with mt_masktools-25.dll from the QTGMC plugins package, and I replaced RGTools with RemoveGrainSSE2 and RepairSSE2, but it made no difference. I have SSE2Tools. I don't know how to test with an older MVTools2 as it results in a "no named lsb argument" error, which I assume would be expected.
Removing PrevGlobals="Reuse" from the script prevents the error.
Thanks.
PS Out of curiosity, one of the changes for v3.33s is:
- work with new masktool2 for avs 2.60
Anyone know what that means specifically? What didn't work previously? I'm curious because I'm fairly sure I'm using the "new masktools2" and the previous QTGMC versions worked okay.
http://forum.doom9.org/showpost.php?p=1732845&postcount=2041
and about "work with new masktool2 for avs 2.60" it meant for yuy2, see here http://forum.doom9.org/showthread.php?p=1725289#post1725289
hello_hello
11th September 2015, 18:16
http://forum.doom9.org/showpost.php?p=1732845&postcount=2041
and about "work with new masktool2 for avs 2.60" it meant for yuy2, see here http://forum.doom9.org/showthread.php?p=1725289#post1725289
Thanks real.finder.
I haven't had a chance to test it yet, but thanks......
kuchikirukia
22nd October 2015, 21:11
Anyone using QTGMC 3.32 or 3.33 might want to add:
Trim (50,0)
to their script. It seems to fix a slowdown that might occur. http://forum.doom9.org/showthread.php?t=172744
The 3.33x versions aren't fixes, some make it worse.
After that, just run another encode with the same settings, only with trim(0,49), and combine the two.
byme
23rd December 2015, 09:20
Can you tell me how to have 50p video from a 25i with QTGMC
Thanks
LigH
23rd December 2015, 09:32
IIRC, bobbing is the default mode of QTGMC, so simply call QTGMC and omit a following Select[Odd|Even]() ... no warranties though.
byme
23rd December 2015, 18:52
frames back and forth
Which script should you use?
Boulder
23rd December 2015, 19:27
Change the field order parameter in QTGMC or use AssumeTFF() or AssumeBFF() before the QTGMC call.
Thranduilion
24th December 2015, 20:53
Truly smitten with QTGMC's processing of HD progressive material (I'm partial to InputType=1). While it could be my imagination, I'm perceiving a slight motion blur as a result of the processing. My hunch is that Rep2 is my best bet for minimizing this effect. Could some kind soul please tell me which other parameters could play a hand in helping to minimize motion blur?
Again, I'm totally open to this being my imagination. Just trying to eliminate all other possibilities.
Much obliged!
raffriff42
25th December 2015, 00:47
Could some kind soul please tell me which other parameters could play a hand in helping to minimize motion blur?avisynth.nl/QTGMC#Shutter Speed Motion Blur / Frame Rate (http://avisynth.nl/index.php/QTGMC#Shutter_Speed_Motion_Blur_.2F_Frame_Rate)
I've used QTGMC to add motion blur; never thought it had too much by default. But try SBlurLimit=0; it looks like the only MB parameter that's not already at minimum.
manono
25th December 2015, 01:33
Or maybe not use Input Type=1 as it performs temporal smoothing as an aid for the deshimmering it does which might create a kind of motion blur.
mjr4077au
16th January 2016, 07:35
To Didee and Vit, this script is absolutely amazing! I've been using this on old VHS-C tapes and the results are second to none :)
Below is the code I'm using to get these PAL tapes up to 720p50 for blu-ray.
AVISource("roadtrains.avi", audio=false).AssumeFPS(25,1).AssumeTFF()
crop(18, 8, -14, -16)
ColorMatrix(interlaced=true, mode="Rec.601->Rec.709")
ConvertToYV12(interlaced=true, matrix="Rec709", chromaresample="Blackman")
QTGMC(Preset="Placebo", TR2=2, EdiMode="EEDI3+NNEDI3", NoisePreset="Slower", ChromaNoise=True)
nnedi3_rpow2(rfactor=2, pscrn=4, fapprox=0, cshift="BlackmanResize", fwidth=960, fheight=720, ep0=7)
AddBorders(160,0,160,0)
One thing I wanted to comment on is I don't think the placebo preset is very 'placebo'. I notice definite improvement with using eedi3 and nnedi3 sclip and I think this could easily be in the lower presets.
Any thoughts?
Cheers,
Mitch
Sent from my SM-N9005 using Tapatalk
Music Fan
16th January 2016, 12:44
Do you use ConvertToYV12 because your source is in YUY2 ? If yes, I believe it's better to let it in YUY2 for de-interlacing and convert in YV12 after QTGMC.
mjr4077au
16th January 2016, 13:03
Do you use ConvertToYV12 because your source is in YUY2 ? If yes, I believe it's better to let it in YUY2 for de-interlacing and convert in YV12 after QTGMC.
Hi Music Fan,
The captures are YUY2. Because I'm using RgTools instead of the older RemoveGrain tools and cannot use YV16 properly with QTGMC, I've opted to do it at that stage. Systematically, it seems better than going through all the Interleaved2Planar and Planar2Interleaved stages. It also seems hackish using older DLL files for AviSynth 2.5 for MaskTools to work with YUY2 in AviSynth 2.6.
Cheers,
Mitch.
Music Fan
16th January 2016, 13:28
The resize as it is now is working exactly as I need it to and I get an output of 1280x720 for my 720p50 Blu-ray encode.
Ok, but your resize seems more appropriate to 4/3 than to 688.552 which changes AR.
mjr4077au
16th January 2016, 13:35
Ok, but your resize seems more appropriate to 4/3 than to 688.552 which changes AR.
Yeah, that's intended :). Even though the source is 5:4, the DAR should be 4:3. Apologies, I misunderstood what you were getting at earlier.
If I didn't resize, I'd add black borders to replace the crop and encode with a SAR of 16:15. Then I'd get the correct output resolution of 768x576 for the source.
Music Fan
16th January 2016, 14:26
Sorry, I made a bad calculation :o
Your video actually keeps its 1.25 SAR after your crop thus your resize is ok.
I believe I typed 576 instead of 552 on my calculator (918.720 would have been good for 688.576, not for 688.552).:scared:
I removed this part of my first post.
mjr4077au
16th January 2016, 22:12
All good! I edited my reply because that attachment was stupidly huge :P
I'd be interested on more feedback as to whether I should roll back to the old RemoveGrain package and masktools-2.5 to process the video as YUY2.
In this post here (http://forum.doom9.org/showthread.php?p=1750832#post1750832) on another thread of mine, Reel.Deel mentioned QTGMC requires modification to work in YV16. I'd also be interested in knowing more about that too.
Cheers,
Mitch.
fvisagie
17th January 2016, 05:32
[QUOTE=mjr4077au;1753495]AVISource("roadtrains.avi", audio=false).AssumeFPS(25,1).AssumeTFF()
crop(18, 8, -14, -16)
ColorMatrix(interlaced=true, mode="Rec.601->Rec.709")
ConvertToYV12(interlaced=true, matrix="Rec709", chromaresample="Blackman")
QTGMC(Preset="Placebo", TR2=2, EdiMode="EEDI3+NNEDI3", NoisePreset="Slower", ChromaNoise=True)
nnedi3_rpow2(rfactor=2, pscrn=4, fapprox=0, cshift="BlackmanResize", fwidth=960, fheight=720, ep0=7)
AddBorders(160,0,160,0)
Unrelated, but if you're working with interlaced source (which seems to be the case from your other posts) it should be a better idea to crop after deinterlacing.
mjr4077au
17th January 2016, 06:13
[QUOTE=mjr4077au;1753495]AVISource("roadtrains.avi", audio=false).AssumeFPS(25,1).AssumeTFF()
crop(18, 8, -14, -16)
ColorMatrix(interlaced=true, mode="Rec.601->Rec.709")
ConvertToYV12(interlaced=true, matrix="Rec709", chromaresample="Blackman")
QTGMC(Preset="Placebo", TR2=2, EdiMode="EEDI3+NNEDI3", NoisePreset="Slower", ChromaNoise=True)
nnedi3_rpow2(rfactor=2, pscrn=4, fapprox=0, cshift="BlackmanResize", fwidth=960, fheight=720, ep0=7)
AddBorders(160,0,160,0)
Unrelated, but if you're working with interlaced source (which seems to be the case from your other posts) it should be a better idea to crop after deinterlacing.
Hi fvisagie,
I cropped first due to the head switching noise. I was worried it'd affect the motion compensation in QTGMC. As I'm only cropping, not resizing, there should only be positives, right?
Cheers,
Mitch.
Boulder
17th January 2016, 10:40
As you seem to crop vertically in mod-2 (YUY2), there should be no issues (and it's also recommended if there's only garbage there). Horizontal cropping shouldn't matter as long as you follow the basic rules which depend on the colorspace.
I'd move ColorMatrix after the deinterlacing part, but that's just a matter of taste.
mjr4077au
17th January 2016, 10:49
As you seem to crop vertically in mod-2 (YUY2), there should be no issues (and it's also recommended if there's only garbage there). Horizontal cropping shouldn't matter as long as you follow the basic rules which depend on the colorspace.
I'd move ColorMatrix after the deinterlacing part, but that's just a matter of taste.
I thought about it, it but isn't it better to convert to Rec709 prior to converting from YUY2 to YV12?
Boulder
17th January 2016, 10:59
It shouldn't matter, the motion estimation procedure etc. is the same anyway.
fvisagie
18th January 2016, 04:53
I cropped first due to the head switching noise. I was worried it'd affect the motion compensation in QTGMC. As I'm only cropping, not resizing, there should only be positives, right?
You're right, I spoke too soon. Looking back, that's exactly the approach I'd been following with interlaced SD DV. Sorry for the red herring :p.
Cheers,
Francois
real.finder
18th January 2016, 05:41
Hi Music Fan,
The captures are YUY2. Because I'm using RgTools instead of the older RemoveGrain tools and cannot use YV16 properly with QTGMC, I've opted to do it at that stage. Systematically, it seems better than going through all the Interleaved2Planar and Planar2Interleaved stages. It also seems hackish using older DLL files for AviSynth 2.5 for MaskTools to work with YUY2 in AviSynth 2.6.
Cheers,
Mitch.
use this http://forum.doom9.org/attachment.php?attachmentid=15084&d=1445557480 it will work with YUY2 in avs 2.6 with new MaskTools and even RgTools
mjr4077au
18th January 2016, 06:12
You're right, I spoke too soon. Looking back, that's exactly the approach I'd been following with interlaced SD DV. Sorry for the red herring :p.
Cheers,
Francois
All good :)
use this http://forum.doom9.org/attachment.php?attachmentid=15084&d=1445557480 it will work with YUY2 in avs 2.6 with new MaskTools and even RgTools
I've seen this version around. I'm using "v3.33s (mod) 2015 9 10" at the moment. What was the reason to go back to QTGMC_inflate/QTGMC_deflate? I read here (http://forum.doom9.org/showthread.php?p=1685857#post1685857) that it was changed as mt_inflate/mt_deflate had slightly more accuracy, as well as potential performance performance issues outlined here (http://forum.videohelp.com/threads/369143-ResizersPack-MasksPack-PlaygroundPack-SmoothContrast-Logo-mod-functions?p=2389468&viewfull=1#post2389468).
Is the 2015 10 23 version the best version to use?
real.finder
18th January 2016, 06:43
All good :)
I've seen this version around. I'm using "v3.33s (mod) 2015 9 10" at the moment. What was the reason to go back to QTGMC_inflate/QTGMC_deflate? I read here (http://forum.doom9.org/showthread.php?p=1685857#post1685857) that it was changed as mt_inflate/mt_deflate had slightly more accuracy, as well as potential performance performance issues outlined here (http://forum.videohelp.com/threads/369143-ResizersPack-MasksPack-PlaygroundPack-SmoothContrast-Logo-mod-functions?p=2389468&viewfull=1#post2389468).
Is the 2015 10 23 version the best version to use?
yes and here too http://forum.doom9.org/showthread.php?p=1743994#post1743994
I give you this version to avoid performance problems that may occur, I use "2015 9 10" until today, but I currently do experiments in the quality difference between the two and seems that "2015 10 23" is better until now, except it faster and more stable in performance
LigH
18th January 2016, 09:08
How about the ISO 8601 (https://en.wikipedia.org/wiki/ISO_8601) date format (YYYY-MM-DD)? Should be one of the least ambiguous. ;)
Music Fan
18th January 2016, 10:33
Unrelated, but if you're working with interlaced source (which seems to be the case from your other posts) it should be a better idea to crop after deinterlacing.
It makes me think I read a post about padding before de-interlacing, that's a Didée idee ;
http://forum.doom9.org/showthread.php?p=1325630#post1325630
It removes blinking lines on top or bottom, but this was in 2009 for Yadif, and as he told it was used by TGMC, I guess it's also used by QTGMC and is maybe not needed in that case.
real.finder
18th January 2016, 14:40
How about the ISO 8601 (https://en.wikipedia.org/wiki/ISO_8601) date format (YYYY-MM-DD)? Should be one of the least ambiguous. ;)
if I did another edit, I will use it ;)
mjr4077au
18th January 2016, 22:26
yes and here too http://forum.doom9.org/showthread.php?p=1743994#post1743994
I give you this version to avoid performance problems that may occur, I use "2015 9 10" until today, but I currently do experiments in the quality difference between the two and seems that "2015 10 23" is better until now, except it faster and more stable in performance
I'll have to try this on the weekend when I'm home. With 2015 9 10, I don't think I could use YUY2 with RgTools at all. I then put ConvertToYV16 at the start of my script but I had issues as I outlined here (http://forum.doom9.org/showthread.php?t=172998)
real.finder
18th January 2016, 23:26
I'll have to try this on the weekend when I'm home. With 2015 9 10, I don't think I could use YUY2 with RgTools at all. I then put ConvertToYV16 at the start of my script but I had issues as I outlined here (http://forum.doom9.org/showthread.php?t=172998)
what version of RgTools do you use? yv16 not supported now (mvtools2 not support it) so you will get these issues if you use it
mjr4077au
18th January 2016, 23:44
what version of RgTools do you use? yv16 not supported now (mvtools2 not support it) so you will get these issues if you use it
I'm using the latest version of all plugins, not so much from the plugin pack.
So, with your updates to support YUY2 and RgTools, you selectively do ConvertToYV16 and ConvertToYUY2 where necessary to get the file through (I suppose where Interleaved2Planar and Planar2Interleaved were)? Is that why a blanket ConvertToYV16 at the start doesn't work?
EDIT: Actually, I'm not sure if this is you at VideoHelp or not but same thing is said as I said above: http://forum.videohelp.com/threads/369142-Simple-MDegrain-Mod-v3-1-2d-A-Quality-Denoising-Solution?p=2409148&viewfull=1#post2409148.
I'll give this a go when I can, but certainly sounds good to me :)
I give you this version to avoid performance problems that may occur, I use "2015 9 10" until today, but I currently do experiments in the quality difference between the two and seems that "2015 10 23" is better until now, except it faster and more stable in performance
Just on this, the reason to going back to QTGMC_deflate/QTGMC_inflate is for performance? If I don't particularly care for performance, is using 2015 9 10 with mt_deflate/mt_inflate a better option? I only ask because I read the change to mt_deflate/mt_inflate was for more accuracy, which is what I care about most
real.finder
19th January 2016, 01:00
I'm using the latest version of all plugins, not so much from the plugin pack.
So, with your updates to support YUY2 and RgTools, you selectively do ConvertToYV16 and ConvertToYUY2 where necessary to get the file through (I suppose where Interleaved2Planar and Planar2Interleaved were)? Is that why a blanket ConvertToYV16 at the start doesn't work?
EDIT: Actually, I'm not sure if this is you at VideoHelp or not but same thing is said as I said above: http://forum.videohelp.com/threads/369142-Simple-MDegrain-Mod-v3-1-2d-A-Quality-Denoising-Solution?p=2409148&viewfull=1#post2409148.
I'll give this a go when I can, but certainly sounds good to me :)
Just on this, the reason to going back to QTGMC_deflate/QTGMC_inflate is for performance? If I don't particularly care for performance, is using 2015 9 10 with mt_deflate/mt_inflate a better option? I only ask because I read the change to mt_deflate/mt_inflate was for more accuracy, which is what I care about most
this me there http://forum.videohelp.com/members/242774-real-finder
last RgTools is already work with planar YUY2, so I did nothing for it
"2015 9 10" was work with YUY2 for me but today after I replace it with "2015 10 23" I found it does not work with YUY2 so I did another edit that will replace "2015 10 23" http://forum.doom9.org/showpost.php?p=1732845&postcount=2041
edit: and of course you still need SSE2Tools/SSE3Tools for planar YUY2
mjr4077au
19th January 2016, 01:54
this me there http://forum.videohelp.com/members/242774-real-finder
last RgTools is already work with planar YUY2, so I did nothing for it
"2015 9 10" was work with YUY2 for me but today after I replace it with "2015 10 23" I found it does not work with YUY2 so I did another edit that will replace "2015 10 23" http://forum.doom9.org/showpost.php?p=1732845&postcount=2041
edit: and of course you still need SSE2Tools/SSE3Tools for planar YUY2
I thought in one of the earlier scripts you edited out the Interleaved2Planar and Planar2Interleaved with ConvertToYV16 and ConvertToYUY2, so SSE2Tools wouldn't be needed? Does SSE2Tools conflict with RgTools?
Reel.Deel
19th January 2016, 03:12
I thought in one of the earlier scripts you edited out the Interleaved2Planar and Planar2Interleaved with ConvertToYV16 and ConvertToYUY2, so SSE2Tools wouldn't be needed? Does SSE2Tools conflict with RgTools?
Getting rid of SSE2Tools would be the sane thing to do. All of the plugins QTGMC requires either support YUY2 or YV16. I looked at real.finder's mod some time ago and noticed he 'added support' for YV16 by adding lots of ConvertToYUY2().InterleavedToPlanar() / PlanarToInterleave().ConvertToYV16() :sly:. I started my own proper mod but have not got around to finishing it. Doing it correctly definetly takes more time and got a bit confusing since QTGMC has so many options. I have some VHS tapes I need to transfer so hopefully when that happens I'll be a bit more motivated to finish it. Don't hold your breath though :).
mjr4077au
19th January 2016, 03:24
Getting rid of SSE2Tools would be the sane thing to do. All of the plugins QTGMC requires either support YUY2 or YV16. I looked at real.finder's mod some time ago and noticed he 'added support' for YV16 by adding lots of ConvertToYUY2().InterleavedToPlanar() / PlanarToInterleave().ConvertToYV16() :sly:. I started my own proper mod but have not got around to finishing it. Doing it correctly definetly takes more time and got a bit confusing since QTGMC has so many options. I have some VHS tapes I need to transfer so hopefully when that happens I'll be a bit more motivated to finish it. Don't hold your breath though :).
It gets confusing speaking to Reel.Deel and real.finder, so similar in name :P
I might take a look tonight at the code and see what's going on. Admittedly, I haven't really explored it a whole lot.
Should there be any need for Interleaved2Planar and Planar2Interleave if you can just switch between YUY2 and YV16 where necessary?
Reel.Deel
19th January 2016, 03:34
Should there be any need for Interleaved2Planar and Planar2Interleave if you can just switch between YUY2 and YV16 where necessary?
No need, if the plugin supports YV16 then use it, if not then use ConvertToYUY2() before hand. The latest NNEDI3 supports YV16 but when using EdiMode="EEDI3+NNEDI3" you must use YUY2 since EEDI3 doesn't support YV16. Also make sure to set MVTools' planar parameter to false when processing YUY2.
real.finder
19th January 2016, 03:58
Does SSE2Tools conflict with RgTools?
no
RgTools = RemoveGrain, Repair, BackwardClense, Clense, ForwardClense and VerticalCleaner in single plugin
and RgTools not support YUY2 without Planar=true but RgTools more modern and support new avs 2.6 color formats Y8, YV16, YV24, YV411, and maybe has other features
and by the way, I did small change in the last edit (typo in QTGMC_deflate)
-------
@Reel.Deel I do it as a quick solution, if all requirements plugins support YV16 in the future then no need for any edit, but I did another changes that nothing to do with YUY2, like bob chroma bug in YV12, and if requirements plugins support YV16 in the future my edit in YUY2 will not adversely affect, it will work normally without remove YUY2 work around
anyway, good luck with your edit ;)
mjr4077au
19th January 2016, 07:59
no
RgTools = RemoveGrain, Repair, BackwardClense, Clense, ForwardClense and VerticalCleaner in single plugin
and RgTools not support YUY2 without Planar=true but RgTools more modern and support new avs 2.6 color formats Y8, YV16, YV24, YV411, and maybe has other features
and by the way, I did smal change in the last edit (typo in QTGMC_deflate)
-------
@Reel.Deel I do it as a quick solution, if all requirements plugins support YV16 in the future then no need for any edit, but I did another changes that nothing to do with YUY2, like bob chroma bug in YV12, and if requirements plugins support YV16 in the future my edit in YUY2 will not adversely affect, it will work normally without remove YUY2 work around
anyway, good luck with your edit ;)
By putting back in SSE2Tools, YUY2 is processed and works as expected. So, I guess I don't need to convert first.
If MVTools2 does not support YV16, what exactly does Interleaved2Planar do? If you're not losing chroma resolution but you're doing Interleaved2Planar, isn't that effectively YV16?
Getting rid of SSE2Tools would be the sane thing to do. All of the plugins QTGMC requires either support YUY2 or YV16. I looked at real.finder's mod some time ago and noticed he 'added support' for YV16 by adding lots of ConvertToYUY2().InterleavedToPlanar() / PlanarToInterleave().ConvertToYV16() :sly:. I started my own proper mod but have not got around to finishing it. Doing it correctly definetly takes more time and got a bit confusing since QTGMC has so many options. I have some VHS tapes I need to transfer so hopefully when that happens I'll be a bit more motivated to finish it. Don't hold your breath though :).
Not to start a war between you guys, but if you think the added support isn't the best way to do it in the end, do you think it's better to do ConvertToYV12() first prior to QTGMC, or process as YUY2 and convert at the end if necessary (blu-ray etc)?
Can it even be done without Interleaved2Planar etc if MVTools2 does not support YV16? I find it funny the main HTML page here (http://avisynth.org.ru/mvtools/mvtools2.html) for MVTools2 says "This trick will not be needed in Avisynth v2.6 with native support of planar YV16 format", yet MVTools2 has never been updated for YV16. Has the author disappeared?
real.finder
19th January 2016, 11:48
If MVTools2 does not support YV16, what exactly does Interleaved2Planar do? If you're not losing chroma resolution but you're doing Interleaved2Planar, isn't that effectively YV16?
convert to/from YUY2 (http://avisynth.nl/index.php/YUY2) to/from yv16 is lossless, both has the same chroma resolution (4:2:2)
what exactly does Interleaved2Planar do?
some functions (the original one, not only RgTools) need Planar YUY2 like repair
mjr4077au
20th January 2016, 00:11
convert to/from YUY2 (http://avisynth.nl/index.php/YUY2) to/from yv16 is lossless, both has the same chroma resolution (4:2:2)
some functions (the original one, not only RgTools) need Planar YUY2 like repair
Thanks for explaining it to me. I read the documentation better for MVTools2 and it has a good explanation of what Interleaved2Planar is actually doing.
Apologies also because I was reading further back on the thread and found this:
QTGMC and MVTools still uses the old and ugly planar YUY2 hack from the SSE*Tools plugin. So if you want to process YUY2 you need to use the older plugins like MaskTools2 for AviSynth 2.5, RemoveGrain, Repair, VerticalCleaner (if needed) and you will also need the SSE*Tools plugin. I really wish cretindesalpes would add native support for YV16 in MVTools. According to jackoneill the code already supports YV16 (https://github.com/dubhater/vapoursynth-mvtools/commit/7261a61ca1fb95ee30d0235cafc6ef045f51170a) it just needs to be used. It would make processing YUY2/YV16 way easier and less convoluted.
It'd definitely be great to use YV16 with MVTools2 and have QTGMC cleaned up :)
LigH
28th January 2016, 16:30
A user in the German doom9/Gleitz board always gets access violations (with script line numbers in the error message, so they are caught by AviSynth) trying to run QTGMC v3.32 or 3.33s with -Vit- and 06_taro DLLs on AviSynth 2.60 ST (default installer). It's hard to discover the true reason, latest line numbers point to a call of RemoveGrain.
Could we please – once again – collect all the recommended versions of plugins required in QTGMC in a current version (e.g. 2015-09-10 or 2016-01-19 (http://forum.doom9.org/showpost.php?p=1732845&postcount=2041) – second attachment still pending approval)? Are RgTools now preferable over RemoveGrain patched by -Vit-, and is mt_masktools-26 patched by 06_taro in general the optimal one?
Groucho2004
28th January 2016, 18:20
A user in the German doom9/Gleitz board always gets access violations (with script line numbers in the error message, so they are caught by AviSynth) trying to run QTGMC v3.32 or 3.33s with -Vit- and 06_taro DLLs on AviSynth 2.60 ST (default installer). It's hard to discover the true reason, latest line numbers point to a call of RemoveGrain.
Could we please – once again – collect all the recommended versions of plugins required in QTGMC in a current version (e.g. 2015-09-10 or 2016-01-19 (http://forum.doom9.org/showpost.php?p=1732845&postcount=2041) – second attachment still pending approval)? Are RgTools now preferable over RemoveGrain patched by -Vit-, and is mt_masktools-26 patched by 06_taro in general the optimal one?
I thought that there's a general consensus about the recommended plugins. I have summarized it some time ago here (http://forum.doom9.org/showthread.php?p=1733741#post1733741). I never had to deal with YUY2 in this context so I don't know what hoops you have to jump through to support that in QTGMC().
LigH
29th January 2016, 09:05
OK, thank you for the link.
The case of the stubborn crashes was solved, the final issue was a somehow wrong FFT3DFilter plugin for EZDenoise... The clip was in YV12, so 4:2:2 support was not crucial.
Groucho2004
29th January 2016, 09:53
OK, thank you for the link.
The case of the stubborn crashes was solved, the final issue was a somehow wrong FFT3DFilter plugin for EZDenoise... The clip was in YV12, so 4:2:2 support was not crucial.
I'd still recommend updating the plugins. The whole thing will be more stable and faster; the latter applies particularly to non-MT Avisynth because it runs mvtools multi-threaded through avstp.
mjr4077au
3rd February 2016, 11:17
Just a question regarding the repair modes... This is where I'm at now with my settings:
QTGMC(Preset="Placebo", TR2=2, Rep0=11, Rep1=0, Rep2=0, EdiMode="EEDI3+NNEDI3", Sbb=0, NoiseProcess=0, Border=True)
With these repair settings, I've found I get no motion blur and further to this, practically zero shimmering. This is also proved when doing an x264 CRF encode as the bitrate saving is around 10%.
Based on this, why are the defaults the default? Is how much or little repair you want dependent on the source material?
LigH
3rd February 2016, 11:40
Did you compare the filtering speed, using AVSmeter?
Can you imagine that there are a few people who are already satisfied with a sane compromise between achievable quality and required efforts?
And yes, the required efforts also depend on the source material.
Groucho2004
3rd February 2016, 13:47
Just a question regarding the repair modes... This is where I'm at now with my settings:
QTGMC(Preset="Placebo", TR2=2, Rep0=11, Rep1=0, Rep2=0, EdiMode="EEDI3+NNEDI3", Sbb=0, NoiseProcess=0, Border=True)
Did you compare the filtering speed, using AVSmeter?
It's not sooo slow, here is a quick test with the same settings, SD PAL source, i5 2500K CPU @ 4GHz, Avisynth 2.6 (ST):
[Runtime info]
Frames processed: 500 (0 - 499)
FPS (min | max | average): 1.614 | 227.6 | 10.36
Memory usage (phys | virt): 1043 | 1046 MB
Thread count: 14
CPU usage (average): 100%
Time (elapsed): 00:00:48.245
In case you're wondering, the 100% CPU usage comes mainly from eedi3/nnedi3.
yup
4th February 2016, 10:58
Hi all!
I am try use QTGMC (last version 26 January 2016) under Windows 10.
All O'k with YV12 source, but when I try YUY2 source I get error interleaved2Planar.
In plugin folder I have SSE2tools.dll from Removegrain0.9.
At windows\system32 and sysow64 exist msvcr71.dll.
The same plugins set work without problem under Windows 7 and 8.1.
Please advice.
yup.
StainlessS
4th February 2016, 11:58
I think this is update yup refers to (hidden away as edit to 2015 Aug 4 post):- http://forum.doom9.org/showthread.php?p=1732845#post1732845
Well hidden Real.Finder :)
yup
4th February 2016, 14:52
Sorry for fail alarm.
First time I am copy MSVCR71.DLL using Freecommander and do not check at destination.
Second time I am copy MSVCR71.DLL using Explorer and check at destination. Now all work fine.
yup.
csdesigns
12th February 2016, 02:17
Thanks for the msvcr71.dll tip yup and the excellent filter script -Vit-!!! :)
All O'k with YV12 source, but when I try YUY2 source I get error interleaved2Planar.
Second time I am copy MSVCR71.DLL using Explorer and check at destination. Now all work fine.
yup.
I was running into a similar problem on Windows 10 Pro 64bit and AVISynth 2.6 MT. With standard AVISynth (non-MT), my script ran fine, but sloooowww. It wasn't until I copied over msvcr71.dll from a Windows 2k8 box that I was able to get past this error message with the MT version and using the hacked ffms2 plugin for 10bit support.
Oddly, I also ran into a few other issues the required some researching depending on my install setup:
Avisynth open failure:
mt_luxy : unsupported colorspace. masktools only support planar YUV colorspaces (YV12, YV16, YV24)
(QTGMC-3.32.avsi, line 395)
My original video asset is a UHD ProRes422 MOV source and I use ffms2 with the enable10bithack=true param to source the asset. Opening the source asset with no calls other than ffms2 in vdub confirms that it is natively read as YV16.
If I use a ConvertToYUY2() command with masktools2-25.dll (https://github.com/tp7/masktools/releases/download/b1/masktools2-25-x86.zip), I can move forward with QTGMC. Without it, the above message appears with both 3.32 and 2016-01-19 (http://forum.doom9.org/attachment.php?attachmentid=15230&d=1453170588) (and even with ConvertToYUY2(), I get the above error in 2016-01-19, so only 3.32 works {and yes, I am running mvtools-2.6.0.5}). If I go with masktools2.dll (2.6) (https://github.com/tp7/masktools/releases/download/b1/masktools2-x86.zip) however, the results are much more positive. My script where I leave the video as YV16 works fine, but the script where I convert to YUY2 results in the same above error message in 3.32. However, using both QTGMC 2016-01-19 and mvtools-2.6.0.5 results in 100% success with both scripts!!!
Hope this helps someone else in a similar situation who may have been stuck like I was.
baii
23rd February 2016, 07:47
Hi, havent really followed development, but I recently start watching some old DVD.
Is is possible to do qtgmc super fast or very fast real time for 480 60i DVD with today's hardware(say 4ghz i7 hasewell) and MT.
LigH
23rd February 2016, 09:18
The compiled version for VapourSynth is probably fast enough. For AviSynth, there is always the problem that more threads for faster MT execution also need more RAM; if you prefer speed over quality and use less exhaustive parameters, then the deinterlacing quality of simpler alternatives (like TDeint, Yadif{Mod}, or the new Weston Three Field deinterlacer in LAV Filters) may just be on par.
Groucho2004
23rd February 2016, 09:48
Hi, havent really followed development, but I recently start watching some old DVD.
Is is possible to do qtgmc super fast or very fast real time for 480 60i DVD with today's hardware(say 4ghz i7 hasewell) and MT.
Easily. I ran a quick test with this script and various QTGMC() presets on my i5 2500K (source is PAL DVD, 720 x 576):
SetMTMode(5)
MPEG2Source()
AssumeTFF()
SetMTMode(2)
QTGMC(Preset="xx", EdiThreads = 1, DftThreads = 1)
Results , measured with AVSMeter:
Super Fast:
FPS (min | max | average): 142.6 | 288.3 | 221.9
Memory usage (phys | virt): 543 | 564 MB
Thread count: 9
Very Fast:
FPS (min | max | average): 87.29 | 236.4 | 169.9
Memory usage (phys | virt): 550 | 578 MB
Thread count: 9
Faster:
FPS (min | max | average): 77.13 | 212.6 | 147.3
Memory usage (phys | virt): 554 | 579 MB
Thread count: 9
Fast:
FPS (min | max | average): 63.79 | 131.2 | 106.0
Memory usage (phys | virt): 555 | 584 MB
Thread count: 9
Medium:
FPS (min | max | average): 10.86 | 255682 | 76.67
Memory usage (phys | virt): 559 | 589 MB
Thread count: 9
Motenai Yoda
6th April 2016, 14:39
IIRC in one of my ancient test a tuned tdeint was better and faster than veryfast and superfast
ashlar42
9th April 2016, 18:11
Can anybody provide a newbie friendly explanation as to why this filter always doubles frames? I tried fast, medium and slow implementations in StaxRip and framerate was always doubled. Is it necessary? I fear wasting bytes encoding frames twice. Thank you. :)
Edit: results are magnificent, by the way. Superior, to my eyes, to both Intel and Nvidia HW deinterlacing.
LigH
9th April 2016, 18:17
It works like a bobber: It separates woven frames into fields (this part doubles the rate) and then interpolates the missing lines of each separated field to a whole frame. The interpolation in QTGMC is a lot more elaborate than just calculating an average of the line above and the line below each missing line, as a simple bobber may do. It takes also content of previous and following fields into account, uses motion estimation to recreate more useful content in the missing lines of each field to be filled up to a whole frame.
To get back to the original rate, you can select only one half of all restored frames: Either all frames restored from top fields or all frames restored from bottom fields, using either SelectEven() or SelectOdd().
ashlar42
9th April 2016, 18:40
Thanks. While you were answering I downloaded the documentation (absent in StaxRip) and read about Shutter Speed Motion Blur / Frame Rate. From what I can understand, the preferred way is doubling the framerate as it probably provides a better end result. But, again, quality is excellent. Thanks to the developer of this, really.
LigH
9th April 2016, 18:46
There have been several developers involved in optimizing QTGMC from its roots (TempGaussMC) to the current state, being faster and more efficient, and also becoming more and more compatible to features specific to AviSynth 2.6; it was even ported to VapourSynth as compiled version for even better speed and efficiency than what an AviSynth interpreted script could provide.
ashlar42
9th April 2016, 18:57
Yes, I think StaxRip is using the VapourSynth version (at least, that's what I'm doing, maybe one could go with AviSynth+ but I didn't know the difference and though VapourSynth was more advanced... maybe I was wrong).
LigH
9th April 2016, 19:32
There are indeed fundamental differences between VapourSynth and AviSynth. StaxRip x64 had to support VapourSynth to achieve goals currently not easily possible with AviSynth or AviSynth+. Regarding QTGMC, the VapourSynth base is more efficient.
stax76
9th April 2016, 22:42
Latest StaxRip test build supports QTGMC for both AviSynth+ and VapourSynth. It has also filter profiles Select Even and Select Odd for both scripting engines.
Does anybody have experience with encoding with double frame rate? How many percent will it increase the file size, in my last test some time ago the increase wasn't dramatic, 10-20 percent maybe.
real.finder
10th April 2016, 07:27
Regarding QTGMC, the VapourSynth base is more efficient.
in what? more Color format support?
LigH
10th April 2016, 08:12
I mean the expected filtering speed, comparing interpreted execution of an AviSynth script with the pre-compiled execution in VapourSynth as Python module.
Well, at least I would expect an advantage. And I believe I read about a noticeable difference. Did not test it on my own, though... yet.
jones1913
10th April 2016, 14:04
I mean the expected filtering speed, comparing interpreted execution of an AviSynth script with the pre-compiled execution in VapourSynth as Python module.
Well, at least I would expect an advantage. And I believe I read about a noticeable difference. Did not test it on my own, though... yet.
What did you mean with 'pre-compiled' version? The avs script is converted to a python script in havsfunc.py.
Even if it would be compiled to a binary I doubt that would improve performance. The main work is done by the plugin binaries (nnedi, masktools, ...).
However I did a quick test and for me the avs version is faster:
SetFilterMTMode("DEFAULT_MT_MODE",2)
SetFilterMTMode("LWLibavVideoSource",3)
LWLibavVideoSource("sample.m2v")
QTGMC(Preset="Medium")
Prefetch(10)
AVSMeter 2.1.8 (x64)
AviSynth+ 0.1 (r1841, MT-pfmod, x86_64) (0.1.0.0)
Number of frames: 3508
Length (hh:mm:ss.ms): 00:01:10.160
Frame width: 720
Frame height: 576
Framerate: 50.000 (50/1)
Colorspace: YV12
Frames processed: 3508 (0 - 3507)
FPS (min | max | average): 1.911 | 489957 | 102.6
Memory usage (phys | virt): 459 | 484 MB
Thread count: 116
CPU usage (average): 97%
Efficiency index: 1.057
Time (elapsed): 00:00:34.201
Side note: Crashes are gone with pfmod :cool:
import vapoursynth as vs
import havsfunc as hf
core = vs.get_core(threads=8)
clip = core.ffms2.Source(source='sample.m2v')
clip = hf.QTGMC(clip, Preset='Medium', TFF=True)
clip.set_output()
vspipe.exe -p %1 - > nul
Output 3508 frames in 67.73 seconds (51.80 fps) #CPU usage: 99%
LigH
10th April 2016, 14:14
Well, interesting ... so I was either wrong, or it has different preset defaults. Nevertheless, good to know that AviSynth interprets more efficiently than I thought.
I am still collecting requirements for an own VapourSynth test.
stax76
10th April 2016, 14:36
I confirm AviSynth being roughly twice as fast. I believe having read somewhere not all ASM code could be ported.
------------------------------------------------------------
Script
------------------------------------------------------------
import vapoursynth as vs
core = vs.get_core()
core.std.LoadPlugin(r"D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\both\ffms2\ffms2.dll")
core.std.LoadPlugin(r"D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\vs\fmtconv\fmtconv.dll")
import importlib.machinery
adjust = importlib.machinery.SourceFileLoader('adjust', r"D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\vs\adjust\adjust.py").load_module()
mvsfunc = importlib.machinery.SourceFileLoader('mvsfunc', r"D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\vs\mvsfunc\mvsfunc.py").load_module()
core.std.LoadPlugin(r"D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\vs\mvtools\libmvtools.dll")
core.std.LoadPlugin(r"D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\vs\nnedi3\libnnedi3.dll")
core.std.LoadPlugin(r"D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\vs\scenechange\scenechange.dll")
core.std.LoadPlugin(r"D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\vs\temporalsoften\temporalsoften.dll")
havsfunc = importlib.machinery.SourceFileLoader('havsfunc', r"D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\vs\havsfunc\havsfunc.py").load_module()
clip = core.ffms2.Source(r"D:\Video\Samples\Misc\Eli.mp4", cachefile = r"D:\Video\Samples\Misc\Eli_temp\Eli.ffindex")
clip = havsfunc.QTGMC(clip, TFF = True, Preset = "Fast")
clip.set_output()
------------------------------------------------------------
Encoding video using x264 r2665 8-Bit x64
------------------------------------------------------------
"C:\Program Files (x86)\VapourSynth\core64\vspipe.exe" "D:\Video\Samples\Misc\Eli_temp\vs.vpy" - --y4m | "D:\Projekte\GitHub\staxrip\bin\Apps\x264\x264.exe" --preset ultrafast --crf 22 --demuxer y4m --frames 2602 --output "D:\Video\Samples\Misc\Eli_temp\vs_out.h264" "-"
cmd.exe /C call "D:\Video\Samples\Misc\Eli_temp\vs_encode.bat"
D:\Projekte\GitHub\staxrip\bin>"C:\Program Files (x86)\VapourSynth\core64\vspipe.exe" "D:\Video\Samples\Misc\Eli_temp\vs.vpy" - --y4m | "D:\Projekte\GitHub\staxrip\bin\Apps\x264\x264.exe" --preset ultrafast --crf 22 --demuxer y4m --frames 2602 --output "D:\Video\Samples\Misc\Eli_temp\vs_out.h264" "-"
y4m [info]: 1280x720p 0:0 @ 60000/1001 fps (cfr)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
x264 [info]: profile Constrained Baseline, level 3.2
Output 2602 frames in 98.16 seconds (26.51 fps)
x264 [info]: frame I:11 Avg QP:19.55 size: 61313
x264 [info]: frame P:2591 Avg QP:22.48 size: 10150
x264 [info]: mb I I16..4: 100.0% 0.0% 0.0%
x264 [info]: mb P I16..4: 9.7% 0.0% 0.0% P16..4: 41.0% 0.0% 0.0% 0.0% 0.0% skip:49.3%
x264 [info]: coded y,uvDC,uvAC intra: 15.9% 22.8% 3.4% inter: 17.1% 13.1% 0.4%
x264 [info]: i16 v,h,dc,p: 43% 32% 13% 11%
x264 [info]: i8c dc,h,v,p: 58% 21% 14% 7%
x264 [info]: kb/s:4970.94
encoded 2602 frames, 26.56 fps, 4970.94 kb/s
------------------------------------------------------------
Script
------------------------------------------------------------
LoadPlugin("D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\both\ffms2\ffms2.dll")
Import("D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\avs\QTGMC\QTGMC.avsi")
LoadPlugin("D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\avs\masktools2\masktools2.dll")
LoadPlugin("D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\avs\mvtools2\mvtools2.dll")
LoadPlugin("D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\avs\nnedi3\nnedi3.dll")
LoadPlugin("D:\Projekte\GitHub\staxrip\bin\Apps\Plugins\avs\RgTools\RgTools.dll")
SetFilterMTMode("DEFAULT_MT_MODE",2)
SetFilterMTMode("FFVideoSource",3)
FFVideoSource("D:\Video\Samples\Misc\Eli.mp4", cachefile = "D:\Video\Samples\Misc\Eli_temp\Eli.ffindex")
QTGMC(Preset = "Fast")
Prefetch(10)
------------------------------------------------------------
Encoding video using x264 r2665 8-Bit x64
------------------------------------------------------------
D:\Projekte\GitHub\staxrip\bin\Apps\x264\x264.exe --preset ultrafast --crf 22 --output "D:\Video\Samples\Misc\Eli_temp\avs_out.h264" "D:\Video\Samples\Misc\Eli_temp\avs.avs"
avs [info]: 1280x720p 0:0 @ 60000/1001 fps (cfr)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
x264 [info]: profile Constrained Baseline, level 3.2
x264 [info]: frame I:11 Avg QP:19.73 size: 60564
x264 [info]: frame P:2591 Avg QP:22.49 size: 10171
x264 [info]: mb I I16..4: 100.0% 0.0% 0.0%
x264 [info]: mb P I16..4: 9.6% 0.0% 0.0% P16..4: 41.3% 0.0% 0.0% 0.0% 0.0% skip:49.1%
x264 [info]: coded y,uvDC,uvAC intra: 15.6% 22.7% 3.4% inter: 17.3% 13.2% 0.4%
x264 [info]: i16 v,h,dc,p: 43% 32% 13% 11%
x264 [info]: i8c dc,h,v,p: 58% 21% 14% 6%
x264 [info]: kb/s:4979.52
encoded 2602 frames, 52.59 fps, 4979.52 kb/s
LigH
10th April 2016, 16:06
:o Surprise, then.
luigizaninoni
10th April 2016, 19:07
QTGMC in Vapoursynth is still more convenient because it allows the use of knlmeanscl (which I prefer) as a denoiser instead of dfttest or ftt3d
Would it be possible to have knlmeanscl as a denoiser in Avisynth as well ?
real.finder
10th April 2016, 21:04
QTGMC in Vapoursynth is still more convenient because it allows the use of knlmeanscl (which I prefer) as a denoiser instead of dfttest or ftt3d
Would it be possible to have knlmeanscl as a denoiser in Avisynth as well ?
yes it possible, maybe I will do it, but I need someone test it since I dont have suitable GPU
luigizaninoni
10th April 2016, 21:07
yes it possible, maybe I will do it, but I need someone test it since I dont have suitable GPU
I have a Nvidia GTX 960 and an Intel HD4600. can I be of any help ?
real.finder
10th April 2016, 21:45
I have a Nvidia GTX 960 and an Intel HD4600. can I be of any help ?
http://rghost.net/8qnXgp5G4
Motenai Yoda
10th April 2016, 22:19
QTGMC in Vapoursynth is still more convenient because it allows the use of knlmeanscl (which I prefer) as a denoiser instead of dfttest or ftt3d
Would it be possible to have knlmeanscl as a denoiser in Avisynth as well ?
It can be done modding the existing parts about denoiser to accept a clip as denoised clip, something like how smdegrain do with the prefilter clip.
luigizaninoni
10th April 2016, 22:53
test version http://rghost.net/7ZQSwncxH
Made a short test on Intel, seems to work fine.
Tomorrow I'll try to test more extensively on Nvidia.
Thanks a lot
real.finder
10th April 2016, 23:28
Made a short test on Intel, seems to work fine.
Tomorrow I'll try to test more extensively on Nvidia.
Thanks a lot
ok, this test is enough
anyway, I did another change to make sure that YUY2 will work with no problems http://forum.doom9.org/showpost.php?p=1732845&postcount=2041
until it approve you can download it from http://forum.doom9.org/showpost.php?p=1764061&postcount=2140
asarian
11th April 2016, 01:47
QTGMC in Vapoursynth is still more convenient because it allows the use of knlmeanscl (which I prefer) as a denoiser instead of dfttest or ftt3d
Would it be possible to have knlmeanscl as a denoiser in Avisynth as well ?
Would it be possible to give an example of how you use knlmeanscl in VS? Do you use it with SMDegrain or something? I have a GTX 980, it might be worth it for me too. :)
luigizaninoni
11th April 2016, 09:33
ok, this test is enough
anyway, I did another change to make sure that YUY2 will work with no problems http://forum.doom9.org/showpost.php?p=1732845&postcount=2041
until it Approval you can download it from http://forum.doom9.org/showpost.php?p=1764061&postcount=2140
I made a comparison between AVS+ and VS+ using QTGMC and EZDenoise(denoiser="knlmeanscl")
The two outputs at same settings are not identical, AVS+ has about 0,4% less bitrate.
Also, visually AVS+ looks slightly more denoised than VS
I wonder if this is expected behaviour. It shouldn't be a big issue anyway: one could simply lower a bit Ezdenoise settings when using AVS+
luigizaninoni
11th April 2016, 09:39
Would it be possible to give an example of how you use knlmeanscl in VS? Do you use it with SMDegrain or something? I have a GTX 980, it might be worth it for me too. :)
I use something like this: (not on my media PC now, I am going by memory)
QTGMC(preset="slow",EZDenoise=1.2,denoiser="knlmeanscl")
you can also use it as a standalone denoiser, without qtgmc
you can also use it inside SMDegrain as a prefilter, but I've never used it
this way, so I can't give you any advice on this
real.finder
11th April 2016, 09:39
I made a comparison between AVS+ and VS+ using QTGMC and EZDenoise(denoiser="knlmeanscl")
The two outputs at same settings are not identical, AVS+ has about 0,4% less bitrate.
Also, visually AVS+ looks slightly more denoised than VS
I wonder if this is expected behaviour. It shouldn't be a big issue anyway: one could simply lower a bit Ezdenoise settings when using AVS+
maybe VS QTGMC has some differences in default settings or something
asarian
11th April 2016, 09:43
I use something like this: (not on my media PC now, I am going by memory)
QTGMC(preset="slow",EZDenoise=1.2,denoiser="knlmeanscl")
you can also use it as a standalone denoiser, without qtgmc
you can also use it inside SMDegrain as a prefilter, but I've never used it
this way, so I can't give you any advice on this
Ah yes, I just saw EZDenoise mentioned in another thread too, along with knlmeanscl. :) Thank you kindly for the example!
Groucho2004
11th April 2016, 09:46
@real.finder
This code is always using the KNLMeansCL default value for "a" (spatial window size):
(Denoiser == "KNLMeansCL") ? KNLMeansCL( lsbd ? noiseWindow.Dither_convert_8_to_16() : noiseWindow, d=NoiseTR,
h=Sigma, lsb_inout=lsbd, device_type="GPU")
Is this by design? Have you checked the VS implementation for KNLMeansCL and its treatment of that parameter?
real.finder
11th April 2016, 09:53
@real.finder
This code is always using the KNLMeansCL default value for "a" (spatial window size):
(Denoiser == "KNLMeansCL") ? KNLMeansCL( lsbd ? noiseWindow.Dither_convert_8_to_16() : noiseWindow, d=NoiseTR,
h=Sigma, lsb_inout=lsbd, device_type="GPU")
Is this by design? Have you checked the VS implementation for KNLMeansCL and its treatment of that parameter?
AVS
dnWindow = (NoiseProcess == 0) ? NOP() : \
(Denoiser == "dfttest") ? noiseWindow.dfttest( Y=true, U=ChromaNoise, V=ChromaNoise, sigma=Sigma*4, tbsize=noiseTD, threads=DftThreads, lsb=lsbd ) : \
(Denoiser == "KNLMeansCL") ? KNLMeansCL( lsbd ? noiseWindow.Dither_convert_8_to_16() : noiseWindow, d=NoiseTR, h=Sigma, lsb_inout=lsbd, device_type="GPU") : \
noiseWindow.FFT3DFilter( plane=(ChromaNoise ? 4 : 0), sigma=Sigma, bt=noiseTD )
VS
if Denoiser == 'dfttest':
dnWindow = core.dfttest.DFTTest(noiseWindow, sigma=Sigma * 4, tbsize=noiseTD, planes=[0, 1, 2] if ChromaNoise and not isGray else [0])
elif Denoiser == 'knlmeanscl':
if ChromaNoise and not isGray:
dnWindow = KNLMeansCL(noiseWindow, d=NoiseTR, h=Sigma, device_type='GPU')
else:
dnWindow = core.knlm.KNLMeansCL(noiseWindow, d=NoiseTR, h=Sigma, device_type='GPU')
else:
dnWindow = core.fft3dfilter.FFT3DFilter(noiseWindow, sigma=Sigma, plane=4 if ChromaNoise else 0, bt=noiseTD, ncpu=FftThreads)
Groucho2004
11th April 2016, 10:03
OK, so it seems the only difference is the dithering functions.
asarian
12th April 2016, 10:38
I use something like this: (not on my media PC now, I am going by memory)
QTGMC(preset="slow",EZDenoise=1.2,denoiser="knlmeanscl")
you can also use it as a standalone denoiser, without qtgmc
you can also use it inside SMDegrain as a prefilter, but I've never used it
this way, so I can't give you any advice on this
Hmm, just tried this:
vid = haf.QTGMC (vid, InputType=0, Preset="Very Slow", TR2=3, TFF=True, Denoiser="KNLMeansCL (device_type='GPA')")
Yes, that is GPA, on purpose, instead of GPU, as I wanted to check whether it even parses the denoiser parameter. Apparently not (or at least part of it not), as no errors were thrown. Or am I doing it wrong? :)
asarian
12th April 2016, 13:55
It doesn't throw an error because any unknown Denoiser value will select FFT3DFilter by default.
That makes sense. :) Thx.
I can keep the single quotes, right? (I figured nested quotes could confuse the quoted Denoiser parameter).
P.S. Just tried nothing but a single KNLMeansCL job. Can't believe what low CPU-usage that gives! (Like 3%)
asarian
12th April 2016, 14:31
^^ Just tested with GPU-Z, and adding Denoiser="KNLMeansCL (device_type='GPU')" to QTGMC does *not* do anything; this, however, has my GPU at near full load:
vid = core.knlm.KNLMeansCL (vid, d=5, a=5, s=4, h=1.2, device_type="GPU")
luigizaninoni
12th April 2016, 15:13
^^ Just tested with GPU-Z, and adding Denoiser="KNLMeansCL (device_type='GPU')" to QTGMC does *not* do anything; this, however, has my GPU at near full load:
vid = core.knlm.KNLMeansCL (vid, d=5, a=5, s=4, h=1.2, device_type="GPU")
Of course it doesn't do anything: the name of the denoiser is "knlmeanscl" not "KNLMeansCL (device_type='GPU')"
asarian
12th April 2016, 15:27
Of course it doesn't do anything: the name of the denoiser is "knlmeanscl" not "KNLMeansCL (device_type='GPU')"
Yeah. I had hoped it would have just taken that entire line, parameters and all, but alas.
It seems to accept 'KNLMeansCL' as denoiser name too, btw (judging by my GPU load).
LigH
12th April 2016, 17:42
Probably a case independent string comparison. Take their parameter names as literals in a case switch, not as evaluated function names.
asarian
12th April 2016, 23:31
Probably a case independent string comparison. Take their parameter names as literals in a case switch, not as evaluated function names.
There's simply a code segment that reads:
if Denoiser is not None:
Denoiser = Denoiser.lower()
asarian
26th April 2016, 23:27
AVS
dnWindow = (NoiseProcess == 0) ? NOP() : \
(Denoiser == "dfttest") ? noiseWindow.dfttest( Y=true, U=ChromaNoise, V=ChromaNoise, sigma=Sigma*4, tbsize=noiseTD, threads=DftThreads, lsb=lsbd ) : \
(Denoiser == "KNLMeansCL") ? KNLMeansCL( lsbd ? noiseWindow.Dither_convert_8_to_16() : noiseWindow, d=NoiseTR, h=Sigma, lsb_inout=lsbd, device_type="GPU") : \
noiseWindow.FFT3DFilter( plane=(ChromaNoise ? 4 : 0), sigma=Sigma, bt=noiseTD )
Brilliant! :) The first segment in my version of the QTGMC script doesn't have a trailing 'lsb=lsbd' paramater, though; just:
dnWindow = (NoiseProcess == 0) ? NOP() : \
(Denoiser == "dfttest") ? noiseWindow.dfttest( Y=true, U=ChromaNoise, V=ChromaNoise, sigma=Sigma*4, tbsize=noiseTD, threads=DftThreads ) : \
noiseWindow.FFT3DFilter( plane=(ChromaNoise ? 4 : 0), sigma=Sigma, bt=noiseTD )
I think I can just replace it with your code, after all, right?
real.finder
27th April 2016, 00:37
Brilliant! :) The first segment in my version of the QTGMC script doesn't have a trailing 'lsb=lsbd' paramater, though; just:
dnWindow = (NoiseProcess == 0) ? NOP() : \
(Denoiser == "dfttest") ? noiseWindow.dfttest( Y=true, U=ChromaNoise, V=ChromaNoise, sigma=Sigma*4, tbsize=noiseTD, threads=DftThreads ) : \
noiseWindow.FFT3DFilter( plane=(ChromaNoise ? 4 : 0), sigma=Sigma, bt=noiseTD )
I think I can just replace it with your code, after all, right?
I did not understand what you meant well, but you can by deleting lsb and dither things
asarian
27th April 2016, 08:59
If I take out the lsb stuff (see below), I get code that 'works' somehow (looking at GPU load), but hangs the AVS process as a whole (returning a 'Divide by Zero' when you interrupt it).
dnWindow = (NoiseProcess == 0) ? NOP() : \
(Denoiser == "dfttest") ? noiseWindow.dfttest( Y=true, U=ChromaNoise, V=ChromaNoise, sigma=Sigma*4, tbsize=noiseTD, threads=DftThreads) : \
(Denoiser == "KNLMeansCL") ? KNLMeansCL(noiseWindow, d=NoiseTR, h=Sigma, device_type="GPU") : \
noiseWindow.FFT3DFilter( plane=(ChromaNoise ? 4 : 0), sigma=Sigma, bt=noiseTD )
What am I still missing?!
asarian
27th April 2016, 15:01
Here is a package of plugins for QTGMC using the latest Avisynth 2.6 interface (http://forum.doom9.org/showthread.php?p=1567792#post1567792). They may provide better multi-threading stability:
QTGMC 32-bit Plugins [Vit-2.6] (http://hotfile.com/dl/152000197/7dcecb4/QTGMC_32-bit_Plugins_Vit-2.6.zip.html) (mirror1 (https://rapidshare.com/files/3313295235/QTGMC_32-bit_Plugins_Vit-2.6.zip) | mirror2 (http://www.spirton.com/uploads/QTGMC/QTGMC%2032-bit%20Plugins%20%5BVit-2.6%5D.zip))
Thanks to SubJunk for the filehost-free mirror!
These plugins have been updated to the latest 2.6 interface:
- MVTools, MaskTools, NNEDI3, EEDI3, RemoveGrainSSE2, RepairSSE2, dfttest, FFT3DFilter, AddGrainC, VerticalCleanerSSE2, TDeint
The dlls are named as normal (for now).
These plugins are provided in their original form (not updated because they have no source code; or are legacy; or use the C interface).:
- Yadif, SSE2Tools, NNEDI2, EEDI2, NNEDI
The updated plugins will only work with versions of Avisynth 2.6 that support the new interface. Currently I believe that's only SEt's latest Avisynth 2.6MT build (http://forum.doom9.org/showthread.php?t=148782).
The new interface removes some code that was embedded in every plugin that could cause multi-threading problems. So these plugins may be more stable, although many multi-threading issues are memory-related these days. It's fine to use some updated plugins and some older ones. But the more new versions you get, the better for MT stability.
This package is provided for test purposes only, it's not "official" yet. Partly because these plugins are no longer "modded", they're just up to date, and I hope that some of the original authors will provide "official" builds eventually. Also there's a dll versioning problem now - we have 2.5 plugins, 2.6-old-interface plugins, modded versions of those, and 2.6-new-interface plugins. Added to that there are cretindesalpes' more recent versions of MVTools and dfttest...
In the longer term we need two just versions of each, a 2.5 compatible and a 2.6 new interface. I'm hoping cretindesalpes will provide 2.6 new interface versions resolving that issue. Then I'll provide just two packs, 2.5 & 2.6, and expect all MT users to switch to 2.6 and SEt's latest. I'm open to opinion about whether the different versions of the plugins should be renamed or not (as masktools does it). Seems to me there are potential problems either way. In any case I'm gonna wait a little before "officially" releasing these things...
Yeah, this is all mighty confusing. ;) MvTools was recently updated for one. The same namespaces make it very hard to tell what's what.
asarian
29th April 2016, 19:05
2015 9 10 http://pastebin.com/7zZV7Q3h and in Attachments
2016-01-19 http://pastebin.com/MgZ2pMJm and in Attachments
2016-04-11 http://pastebin.com/TV5YRwyu and in Attachments
Okay, now I understand where you got the QTGMC version with built-in KNLMeansCL from. :) Thanks for these!
DJ-1
30th April 2016, 10:34
If converting a pal dvd and running qtgmc with nnedi3 _ spline64 (assume the newer would most likely be better)....is there a way of correcting chroma shift that was in the source? Thanks
Sent from my LG-H815 using Tapatalk
hello_hello
1st May 2016, 08:51
DJ-1,
I don't know the answer, but there's ChromaShift (http://avisynth.nl/index.php/ChromaShift).
manono
1st May 2016, 10:51
Yes, Chromashift will do it, if we're both understanding you correctly. Here's another way that doesn't rely on an additional filter:
A=AVISource("Video.avi")
B=A.Greyscale()
Overlay(B,A,X=3,Y=2,Mode="Chroma")#moves to the right 3 pixels and down 2 pixels
Use positive values to move chroma right and down, negative values to move it left and up.
asarian
10th May 2016, 14:54
Recently, in VapourSynth, I've been wondering, what is a reasonable EZDenoise value? I see many example using 2.0 or higher; but, for me, 1.5 already feels borderline over-the-top. Could it be because I use it in combination with KNLMeansCL"?
vid = haf.QTGMC (vid, InputType=2, Preset="Very Slow", TR2=3, EdiQual=2, EZDenoise=1.5, NoisePreset="Slower", Denoiser="KNLMeansCL")
That outputs such a 'small' file (to what I'm used to on sources with similar amounts of noise), that I fear the EZDenoise value may be too high. Or is KNLMeansCL simply really that good? :)
asarian
10th May 2016, 23:35
Ah yes, I forgot to factor in good old Sigma. :) Thx.
Statick
3rd September 2016, 14:10
Having stability issues with QTGMC multithreaded since upgrading to Windows 10. I was using QTGMC with MeGUI to encode some interlaced DVD rips to h264 successfully under Windows 7, on an AMD system with 8 logical cores. Using the replacement plugin packs etc made this work just fine, I managed to get that up and running in multithread mode in just an hour or so, and encoded dozens of interlaced DVD rips no problem.
Since upgrading to Windows 10 I have had a lot of trouble getting QTGMC to behave itself when multithreaded, and not crash with access_violation errors, but eventually I got it to work. For a while, it was crashing after encoding around 5-7 minutes worth of footage, with an access_violation error. To get it working, I've updated to the latest 3.30 version of the plugin, and downloaded the latest plugin replacements found variously in this thread, some of which seemed to be newer versions that the ones I was previously using, which were found on the first post in this thread (apologies for not being clear as to which exact ones I've got now, but I'm not currently on that machine - I can track down what these are if needed though). I've had to SetMTMode(5, 2) as anything higher than 2 threads here leads to the same crashes (worked fine with 8 threads previously under Win7), curiously this still seems to almost max out my CPU which has 8 logical cores, averaging around 95% CPU usage, I don't really understand how that can be possible, but it works so not complaining. I've tried adjusting SetMemoryMax etc but no adjustments made here seem to allow setting more than 2 threads in SetMTMode. I've also had to disable the option in MeGUI to allow x264 64-bit mode. I've also had to set the denoiser in QTGMC to dfttest, as fft3dfilter (or whatever it's called) crashes constantly, there's a few versions of that dll floating around in this thread and I'm pretty sure I tried all of them, to no avail. And I've had to do that despite not actually using the denoiser - it seems the dll is loaded regardless (at least when this crash happens, it does specify that dll, so it's easy to troubleshoot that one).
So with all of those changes, QTGMC does now behave itself under Windows 10, and I can now successfully encode interlaced footage to x264 without crashes. Yay!
So yesterday I tried switching over to x265 for my encodes instead of x264..... back to the good old access_violation errors! As with previously, it will successfully encode for a while, maybe 5-7 minutes of footage or so, before ending with an error.
At this point I'm a bit out of ideas as to what I can change. As x265 is so CPU intensive anyway, I'm slightly tempted to just forego the performance loss and disable multithread on AviSynth entirely. However, if there's anything more that can be done to persuade this to behave itself, I'd love some ideas. Thanks!
Edit: to be clear, I said "upgraded" to Windows 10, it is actually a clean install and not an over-the-top update of Windows 7, which means MeGui, AviSynth, QTGMC, etc, have all been clean installed as well
Boulder
3rd September 2016, 14:28
QTGMC is notoriously unstable when multithreaded. I never got it to work properly in Avisynth MT, I always had to run it in multiple simultaneous single thread processes. After switching to VapourSynth, I've had zero issues.
Groucho2004
3rd September 2016, 14:45
After switching to VapourSynth, I've had zero issues.Or, if VS is not an option, Avisynth+.
Music Fan
4th September 2016, 09:16
Or, if VS is not an option, Avisynth+.
Does Avisynth+ use the same scripts than Avisynth and are there differences in its use or it is completely transparent for the user ?
Statick
4th September 2016, 09:39
Or, if VS is not an option, Avisynth+.
Thanks for this. VapourSynth looks like a lot of effort to get going with, so I tried AviSynth+. Installed over the top like it suggests. Works a treat. Had to remove the SetMTMode() stuff from my scripts, aside from that it's running without issues. Yet to see if it crashes or not, but currently getting double the fps encoding rate compared to the old AviSynth so I'm pretty happy so far.
Groucho2004
4th September 2016, 09:50
Thanks for this. VapourSynth looks like a lot of effort to get going with, so I tried AviSynth+. Installed over the top like it suggests. Works a treat. Had to remove the SetMTMode() stuff from my scripts, aside from that it's running without issues. Yet to see if it crashes or not, but currently getting double the fps encoding rate compared to the old AviSynth so I'm pretty happy so far.
I highly recommend reading the MT section (http://avisynth.nl/index.php/AviSynth%2B#MT_Notes) from the AVS+ Wiki. Download and use the .avsi with pre-defined MT Modes (http://publishwith.me/ep/pad/view/ro.rDkwcdWn4k9/latest) for various plugins. Also, update to the latest build (http://avs-plus.net/builds) or use the installer (http://forum.doom9.org/showthread.php?p=1779817#post1779817) I made.
AzraelNewtype
4th September 2016, 09:59
Does Avisynth+ use the same scripts than Avisynth and are there differences in its use or it is completely transparent for the user ?
The biggest differences are MT related. If you're not using it at all, you won't notice any differences without looking for new functionality. If you are, you'll have to do what Groucho2004 said to Statick. Either way you're better off, to be honest.
Music Fan
4th September 2016, 15:41
Either way you're better off, to be honest.
Do you mean it's better not to use Avisynth+ if I don't use MT ?
Reel.Deel
4th September 2016, 15:46
Do you mean it's better not to use Avisynth+ if I don't use MT ?
Whether you use MT or not, AviSynth+ is an excellent choice either way.
Music Fan
4th September 2016, 16:17
Ok thanks, I don't master english thus I was not sure to understand this expression (you're better off), even with a translator.
Statick
7th September 2016, 19:05
okay well it seems I'm still having crashes with QTGMC and x265
I've removed all references to MT from my script, so crashes due to that have been eliminated.
I've tried this with the AviSynthMT dll, original AviSynth dll, and AviSynth+, and I get the same result regardless of which I use. I've also tried using my high quality x265 settings and the "ultra fast" preset, it makes no difference which I use
The encode reaches 100% and then crashes at the end with an access violation.
If I remove QTGMC from the script, the encode works fine, if I use x264 instead of x265 the encode works fine. QTGMC into x265 crashes this same way every time, at 100% when the encode is completed.
Any thoughts?
[Error] Log for job4 (video, title00.mkv.avs -> title00_Video.hevc)
-[Information] [07/09/2016 14:35:25] Started handling job
-[Information] [07/09/2016 14:35:25] Preprocessing
-[Information] [07/09/2016 14:35:25] Avisynth input script
--[NoImage] global MeGUI_darx = 121
--[NoImage] global MeGUI_dary = 90
--[NoImage] LoadPlugin("C:\Program Files (x86)\MeGUI\tools\lsmash\LSMASHSource.dll")
--[NoImage] LWLibavVideoSource("D:\video work\simpsons s5 d1\pwssezgu.l3u\title00.mkv.lwi")
--[NoImage] QTGMC( Preset="slow", sourcematch=3, Denoiser="dfttest" )
--[NoImage] crop(8, 0, -4, 0)
--[NoImage] LanczosResize(704,480) # Lanczos (Sharp)
-[Information] [07/09/2016 14:35:27] resolution: 704x480
-[Information] [07/09/2016 14:35:27] frame rate: 1415/29
-[Information] [07/09/2016 14:35:27] aspect ratio: 121:90 (1.344)
-[Information] [07/09/2016 14:35:27] custom command line: --ctu 32 --max-tu-size 16 --output-depth 10
-[Information] [07/09/2016 14:35:27] Job command line: "C:\Program Files (x86)\MeGUI\tools\x265\avs4x265.exe" --x265-binary "C:\Program Files (x86)\MeGUI\tools\x265\x64\x265.exe" --preset ultrafast --crf 22 --ctu 32 --max-tu-size 16 --output-depth 10 --output "D:\video work\simpsons s5 d1\pwssezgu.l3u\title00_Video.hevc" "D:\video work\simpsons s5 d1\pwssezgu.l3u\title00.mkv.avs"
-[Information] [07/09/2016 14:35:27] Process started
-[Information] [07/09/2016 14:35:27] Standard output stream
-[Information] [07/09/2016 14:35:27] Standard error stream
--[Information] [07/09/2016 14:35:29] yuv [info]: 704x480 fps 1415/29 i420p8 unknown frame count
--[Information] [07/09/2016 14:35:29] raw [info]: output file: D:\video work\simpsons s5 d1\pwssezgu.l3u\title00_Video.hevc
--[Information] [07/09/2016 14:35:29] x265 [info]: HEVC encoder version 1.8+2-55a4a9b920ff
--[Information] [07/09/2016 14:35:29] x265 [info]: build info [Windows][GCC 5.2.0][64 bit] 10bit
--[Information] [07/09/2016 14:35:29] x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
--[Information] [07/09/2016 14:35:29] x265 [info]: Main 10 profile, Level-3 (Main tier)
--[Information] [07/09/2016 14:35:29] x265 [info]: Thread pool created using 8 threads
--[Information] [07/09/2016 14:35:29] x265 [info]: frame threads / pool features : 3 / wpp(15 rows)
--[Information] [07/09/2016 14:35:29] x265 [info]: Coding QT: max CU size, min CU size : 32 / 16
--[Information] [07/09/2016 14:35:29] x265 [info]: Residual QT: max TU size, max depth : 16 / 1 inter / 1 intra
--[Information] [07/09/2016 14:35:29] x265 [info]: ME / range / subpel / merge : dia / 57 / 0 / 2
--[Information] [07/09/2016 14:35:29] x265 [info]: Keyframe min / max / scenecut : 25 / 250 / 0
--[Information] [07/09/2016 14:35:29] x265 [info]: Lookahead / bframes / badapt : 5 / 3 / 0
--[Information] [07/09/2016 14:35:29] x265 [info]: b-pyramid / weightp / weightb : 1 / 0 / 0
--[Information] [07/09/2016 14:35:29] x265 [info]: References / ref-limit cu / depth : 1 / 0 / 0
--[Information] [07/09/2016 14:35:29] x265 [info]: Rate Control / qCompress : CRF-22.0 / 0.60
--[Information] [07/09/2016 14:35:29] x265 [info]: tools: rd=2 psy-rd=0.30 early-skip tmvp fast-intra
--[Information] [07/09/2016 14:35:29] x265 [info]: tools: strong-intra-smoothing deblock
--[Information] [07/09/2016 16:55:18] x265 [info]: frame I: 263, Avg QP:24.46 kb/s: 9424.08
--[Information] [07/09/2016 16:55:18] x265 [info]: frame P: 16268, Avg QP:25.97 kb/s: 2768.48
--[Information] [07/09/2016 16:55:18] x265 [info]: frame B: 49066, Avg QP:27.88 kb/s: 469.15
--[Information] [07/09/2016 16:55:18] x265 [info]: consecutive B-frames: 0.0% 1.6% 0.0% 98.4%
--[Information] [07/09/2016 16:55:18] encoded 65597 frames in 8388.69s (7.82 fps), 1075.29 kb/s, Avg QP:27.39
-[Error] [07/09/2016 16:55:18] Process exits with error: 0xC0000005 STATUS_ACCESS_VIOLATION (-1073741819)
-[Information] [07/09/2016 16:55:18] Job completed
yup
8th September 2016, 07:43
Statick!
Note version all Avisynth and plugin, better use Avsmeter (http://forum.doom9.org/showthread.php?p=1585008#post1585008) and send log.
I am recently use QTGMC for encoding by x265 both version 32 bit and 64 bit without problem with Avisynth+.
I think problem related with plugins.
yup.
Groucho2004
8th September 2016, 07:56
@Statick
As yup pointed out, this may be related to a wonky plugin in your auto-load directory.
Run "AVSMeter -avsinfo -log", this will create a log file ("avsinfo.log"). Post the log file.
Statick
8th September 2016, 11:00
wow, that is a useful tool! thanks for that
looks like I have a problem with yadif.dll
just tried replacing that dll with the one from the QTGMC VitMod plugin package in the first post (which I'm pretty sure is where this dll came from in the first place) and still getting the same error
Log created with: AVSMeter 2.3.8 (x86)
[OS/Hardware info]
Operating system: Windows 10 (x64) (Build 14393)
CPU: AMD FX(tm)-8320 Eight-Core Processor
Vishera X4
CPU clock (measured): 3690 MHz
CPU cores / Logical cores: 8 / 8
[Avisynth core info]
VersionString: AviSynth 2.60, build:Mar 31 2015 [16:38:54]
VersionNumber: 2.60
File version: 2.6.0.6
Interface Version: 6
Multi-threading support: No
Linker/compiler version: 6.0
Avisynth.dll location: C:\Windows\SysWOW64\avisynth.dll
Avisynth.dll time stamp: 2015-03-31, 07:40:58
PluginDir2_5 (HKLM, x86): C:\Program Files (x86)\AviSynth\plugins
[Avisynth CPP 2.6 plugins]
C:\Program Files (x86)\AviSynth\plugins\DirectShowSource.dll (2.6.0.3)
C:\Program Files (x86)\AviSynth\plugins\mt_masktools-26.dll (2.0.48.0)
C:\Program Files (x86)\AviSynth\plugins\RgTools.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\TCPDeliver.dll (2.6.0.7)
[Avisynth CPP 2.5 plugins]
C:\Program Files (x86)\AviSynth\plugins\AddGrainC.dll (1.5.2.0)
C:\Program Files (x86)\AviSynth\plugins\avstp.dll (1.0.1.0)
C:\Program Files (x86)\AviSynth\plugins\dfttest.dll (1.9.4.0)
C:\Program Files (x86)\AviSynth\plugins\EEDI2.dll (0.9.2.0)
C:\Program Files (x86)\AviSynth\plugins\eedi3.dll (0.9.1.0)
C:\Program Files (x86)\AviSynth\plugins\FFT3DFilter.dll (2.1.1.0)
C:\Program Files (x86)\AviSynth\plugins\mvtools2.dll (2.6.0.5)
C:\Program Files (x86)\AviSynth\plugins\nnedi.dll (1.3.0.0)
C:\Program Files (x86)\AviSynth\plugins\nnedi2.dll (1.6.0.0)
C:\Program Files (x86)\AviSynth\plugins\nnedi3.dll (0.9.4.0)
C:\Program Files (x86)\AviSynth\plugins\SSE2Tools.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\TDeint.dll (1.1.0.0)
[Avisynth C 2.5 plugins]
C:\Program Files (x86)\AviSynth\plugins\yadif.dll (1.7.0.0)
(!) Plugin errors found, see section [Plugin errors] at the end of this document.
[Internal (core) functions]
AVIFileSource
AVISource
AddBorders
AlignedSplice
Amplify
AmplifydB
Animate
Apply
ApplyRange
Assert
AssumeBFF
AssumeFPS
AssumeFieldBased
AssumeFrameBased
AssumeSampleRate
AssumeScaledFPS
AssumeTFF
AudioDub
AudioDubEx
AudioTrim
AverageChromaU
AverageChromaV
AverageLuma
BicubicResize
BilinearResize
BlackmanResize
Blackness
BlankClip
Blur
Bob
Cache
ChangeFPS
Chr
ChromaUDifference
ChromaVDifference
ColorBars
ColorBarsHD
ColorKeyMask
ColorYUV
Compare
ComplementParity
ConditionalFilter
ConditionalReader
ConditionalSelect
ContinuedDenominator
ContinuedNumerator
ConvertAudio
ConvertAudioTo16bit
ConvertAudioTo24bit
ConvertAudioTo32bit
ConvertAudioTo8bit
ConvertAudioToFloat
ConvertBackToYUY2
ConvertFPS
ConvertToMono
ConvertToRGB
ConvertToRGB24
ConvertToRGB32
ConvertToY8
ConvertToYUY2
ConvertToYV12
ConvertToYV16
ConvertToYV24
ConvertToYV411
Crop
CropBottom
Default
Defined
DelayAudio
DeleteFrame
DirectShowSource
Dissolve
DoubleWeave
DuplicateFrame
Echo
EnsureVBRMP3Sync
Eval
Exist
FadeIO
FadeIO0
FadeIO2
FadeIn
FadeIn0
FadeIn2
FadeOut
FadeOut0
FadeOut2
FixBrokenChromaUpsampling
FixLuminance
FlipHorizontal
FlipVertical
FrameEvaluate
FreezeFrame
GaussResize
GeneralConvolution
GetChannel
GetChannels
GetLeftChannel
GetParity
GetRightChannel
Grayscale
Greyscale
HasAudio
HasVideo
Hex
Histogram
HorizontalReduceBy2
ImageReader
ImageSource
ImageSourceAnim
ImageWriter
Import
Info
Interleave
InternalCache
Invert
IsAudioFloat
IsAudioInt
IsBool
IsClip
IsFieldBased
IsFloat
IsFrameBased
IsInt
IsInterleaved
IsPlanar
IsRGB
IsRGB24
IsRGB32
IsString
IsY8
IsYUV
IsYUY2
IsYV12
IsYV16
IsYV24
IsYV411
KillAudio
KillVideo
Lanczos4Resize
LanczosResize
Layer
Letterbox
Levels
Limiter
LoadCPlugin
LoadPlugin
LoadVFAPIPlugin
LoadVirtualdubPlugin
Load_Stdcall_Plugin
Loop
LumaDifference
Mask
MaskHS
Max
Merge
MergeARGB
MergeChannels
MergeChroma
MergeLuma
MergeRGB
MessageClip
Min
MixAudio
MonoToStereo
Normalize
Null
OpenDMLSource
Ord
Overlay
PeculiarBlend
PixelType
PointResize
Preroll
Pulldown
RGBAdjust
RGBDifference
RGBDifferenceFromPrevious
RGBDifferenceToNext
ReduceBy2
ResampleAudio
ResetMask
Reverse
SSRC
ScriptClip
ScriptDir
ScriptFile
ScriptName
SegmentedAVISource
SegmentedDirectShowSource
Select
SelectEven
SelectEvery
SelectOdd
SelectRangeEvery
SeparateColumns
SeparateFields
SeparateRows
SetMemoryMax
SetPlanarLegacyAlignment
SetWorkingDir
Sharpen
ShowAlpha
ShowBlue
ShowFiveVersions
ShowFrameNumber
ShowGreen
ShowRed
ShowSMPTE
ShowTime
SincResize
SkewRows
SpatialSoften
Spline
Spline16Resize
Spline36Resize
Spline64Resize
StackHorizontal
StackVertical
String
Subtitle
Subtract
SuperEQ
SwapFields
SwapUV
TCPServer
TCPSource
TemporalSoften
Time
TimeStretch
Tone
Trim
Turn180
TurnLeft
TurnRight
Tweak
UDifferenceFromPrevious
UDifferenceToNext
UPlaneMax
UPlaneMedian
UPlaneMin
UPlaneMinMaxDifference
UToY
UToY8
UnalignedSplice
VDifferenceFromPrevious
VDifferenceToNext
VPlaneMax
VPlaneMedian
VPlaneMin
VPlaneMinMaxDifference
VToY
VToY8
Version
VersionNumber
VersionString
VerticalReduceBy2
WAVSource
Weave
WeaveColumns
WeaveRows
WriteFile
WriteFileEnd
WriteFileIf
WriteFileStart
YDifferenceFromPrevious
YDifferenceToNext
YPlaneMax
YPlaneMedian
YPlaneMin
YPlaneMinMaxDifference
YToUV
abs
acos
asin
atan
atan2
audiobits
audiochannels
audioduration
audiolength
audiolengthf
audiolengthhi
audiolengthlo
audiolengths
audiorate
bitand
bitchange
bitchg
bitclear
bitclr
bitlrotate
bitlshift
bitlshifta
bitlshiftl
bitlshifts
bitlshiftu
bitnot
bitor
bitrol
bitror
bitrrotate
bitrshifta
bitrshiftl
bitrshifts
bitrshiftu
bitsal
bitsar
bitset
bitshl
bitshr
bittest
bittst
bitxor
ceil
cos
cosh
exp
fillstr
findstr
float
floor
fmod
frac
framecount
framerate
frameratedenominator
frameratenumerator
height
hexvalue
int
lcase
leftstr
log
log10
midstr
muldiv
nop
pi
pow
rand
revstr
rightstr
round
sign
sin
sinh
sqrt
strcmp
strcmpi
strlen
tan
tanh
ucase
undefined
value
width
[External (plugin) functions]
AddGrain
AddGrainC
AddGrainC_AddGrain
AddGrainC_AddGrainC
AmplifyDifference
BackwardClense
Clense
Difference
DirectShowSource
DirectShowSource_DirectShowSource
EEDI2
EEDI2_EEDI2
FFT3DFilter
FFT3DFilter_FFT3DFilter
ForwardClense
Interleaved2Planar
LimitChange
MAnalyse
MBlockFps
MCompensate
MDegrain1
MDegrain2
MDegrain3
MDegrainN
MDepan
MFlow
MFlowBlur
MFlowFps
MFlowInter
MMask
MRecalculate
MRestoreVect
MSCDetection
MScaleVect
MShow
MStoreVect
MSuper
Planar2Interleaved
Quadruple
ReduceFluctuations
RemoveGrain
Repair
RgTools_BackwardClense
RgTools_Clense
RgTools_ForwardClense
RgTools_RemoveGrain
RgTools_Repair
RgTools_VerticalCleaner
SSE2Tools_AmplifyDifference
SSE2Tools_Difference
SSE2Tools_Interleaved2Planar
SSE2Tools_LimitChange
SSE2Tools_Planar2Interleaved
SSE2Tools_Quadruple
SSE2Tools_ReduceFluctuations
SSE2Tools_Shrinkby2
SSE2Tools_TransformColor
SSE2Tools_Truncate
Shrinkby2
TCPDeliver_TCPServer
TCPDeliver_TCPSource
TCPServer
TCPSource
TDeint
TDeint_TDeint
TDeint_TSwitch
TSwitch
TransformColor
Truncate
VerticalCleaner
avstp_avstp_set_threads
avstp_set_threads
dfttest
dfttest_dfttest
eedi3
eedi3_eedi3
eedi3_eedi3_rpow2
eedi3_rpow2
mt_adddiff
mt_average
mt_binarize
mt_circle
mt_clamp
mt_convolution
mt_deflate
mt_diamond
mt_edge
mt_ellipse
mt_expand
mt_freeellipse
mt_freelosange
mt_freerectangle
mt_gradient
mt_hysteresis
mt_infix
mt_inflate
mt_inpand
mt_invert
mt_logic
mt_losange
mt_lut
mt_lutf
mt_luts
mt_lutspa
mt_lutsx
mt_lutxy
mt_lutxyz
mt_makediff
mt_mappedblur
mt_masktools-26_mt_adddiff
mt_masktools-26_mt_average
mt_masktools-26_mt_binarize
mt_masktools-26_mt_circle
mt_masktools-26_mt_clamp
mt_masktools-26_mt_convolution
mt_masktools-26_mt_deflate
mt_masktools-26_mt_diamond
mt_masktools-26_mt_edge
mt_masktools-26_mt_ellipse
mt_masktools-26_mt_expand
mt_masktools-26_mt_freeellipse
mt_masktools-26_mt_freelosange
mt_masktools-26_mt_freerectangle
mt_masktools-26_mt_gradient
mt_masktools-26_mt_hysteresis
mt_masktools-26_mt_infix
mt_masktools-26_mt_inflate
mt_masktools-26_mt_inpand
mt_masktools-26_mt_invert
mt_masktools-26_mt_logic
mt_masktools-26_mt_losange
mt_masktools-26_mt_lut
mt_masktools-26_mt_lutf
mt_masktools-26_mt_luts
mt_masktools-26_mt_lutspa
mt_masktools-26_mt_lutsx
mt_masktools-26_mt_lutxy
mt_masktools-26_mt_lutxyz
mt_masktools-26_mt_makediff
mt_masktools-26_mt_mappedblur
mt_masktools-26_mt_merge
mt_masktools-26_mt_motion
mt_masktools-26_mt_polish
mt_masktools-26_mt_rectangle
mt_masktools-26_mt_square
mt_merge
mt_motion
mt_polish
mt_rectangle
mt_square
mvtools2_MAnalyse
mvtools2_MBlockFps
mvtools2_MCompensate
mvtools2_MDegrain1
mvtools2_MDegrain2
mvtools2_MDegrain3
mvtools2_MDegrainN
mvtools2_MDepan
mvtools2_MFlow
mvtools2_MFlowBlur
mvtools2_MFlowFps
mvtools2_MFlowInter
mvtools2_MMask
mvtools2_MRecalculate
mvtools2_MRestoreVect
mvtools2_MSCDetection
mvtools2_MScaleVect
mvtools2_MShow
mvtools2_MStoreVect
mvtools2_MSuper
nnedi
nnedi2
nnedi2_nnedi2
nnedi2_nnedi2_rpow2
nnedi2_rpow2
nnedi3
nnedi3_nnedi3
nnedi3_nnedi3_rpow2
nnedi3_rpow2
nnedi_nnedi
[Plugin errors]
----------------------------------------------------------------------------------------------------------------------
Plugin C:\Program Files (x86)\AviSynth\plugins\yadif.dll is not an AviSynth 2.6 or 2.5 plugin.
Note: C-Plugins must be loaded explicitly with "LoadCPlugin()"
----------------------------------------------------------------------------------------------------------------------
StainlessS
8th September 2016, 11:30
[Plugin errors]
----------------------------------------------------------------------------------------------------------------------
Plugin C:\Program Files (x86)\AviSynth\plugins\yadif.dll is not an AviSynth 2.6 or 2.5 plugin.
Note: C-Plugins must be loaded explicitly with "LoadCPlugin()"
That is just saying that yadif is a C plugin and should not really be in your autoload CPP plugins directory, needs to be manual loaded.
Groucho2004
8th September 2016, 11:57
@Statick
1. Remove "mt_masktools-26.dll" and use masktools from here (https://github.com/tp7/masktools/releases)
2. Remove "avstp.dll"
Let's see if that helps.
Groucho2004
8th September 2016, 12:01
Also, post your full script.
Statick
8th September 2016, 12:20
the full script is in the MeGUI log I posted above - the lines beginning with "--[NoImage]" near the top of the log, that's the whole of the script
I'll try these dll suggestions now
Groucho2004
8th September 2016, 12:30
the full script is in the MeGUI log I posted above - the lines beginning with "--[NoImage]" near the top of the log, that's the whole of the script
I'll try these dll suggestions now
Ah, OK (I'm not familiar with GUIs). One more thing you might try is restrict the source filter to one thread (add "threads = 1" to LWLibavVideoSource).
Statick
8th September 2016, 19:42
okay I've removed mt_masktools.dll and used the dll from the link, removed avstp.dll, and added "threads = 1" to LWLibavVideoSource. I've also tried going back to AviSynth+.
still getting the same crash at 100%
appreciate the help here guys! any more ideas?
pinterf
8th September 2016, 20:51
Try replacing mvtools2 to 2.7.0.22d.
Groucho2004
8th September 2016, 20:57
okay I've removed mt_masktools.dll and used the dll from the link, removed avstp.dll, and added "threads = 1" to LWLibavVideoSource. I've also tried going back to AviSynth+.
still getting the same crash at 100%
appreciate the help here guys! any more ideas?
I'm out of ideas. I am however pretty sure that it's not the filter chain, especially since it doesn't happen with x264. Maybe you should post this in the megui subforum.
Statick
8th September 2016, 23:09
I'm out of ideas. I am however pretty sure that it's not the filter chain, especially since it doesn't happen with x264. Maybe you should post this in the megui subforum.
good idea. went over there to do this, and found out from reading the troubleshooting thread that there's a "development update" available in the settings, as well as the usual "stable update" which the program was set to. choosing development updates has installed a bunch of updates, not just MeGUI itself but also about 8 or so updates to x264, x265, L-Smash, MKVMerge, etc, so this looks promising
I'll try another encode and report back if it works
Statick
9th September 2016, 01:07
hi guys, I'm pleased to report that setting MeGUI to use development updates instead of stable updates, putting it on version 2634, solves the problem. this also updated x265, x264, L-Smash and a bunch of other components, so it's hard to know where exactly the problem was. in any case it's sorted, and if anyone else has the same issue hopefully they will find this.
thanks to everyone for the time taken to help :)
real.finder
6th December 2016, 03:34
new edit http://forum.doom9.org/showpost.php?p=1732845&postcount=2041
tr2 now can be 4 and 5 for more fun :P
Dreamland
6th December 2016, 19:02
Real.Finder
I have an issue with last QTGMC release (2016-12-06)
https://t8.pixhost.org/thumbs/1117/35839738_appunti01.jpg (https://pixhost.org/show/1117/35839738_appunti01.jpg)
Help me !
thanks a lot
real.finder
6th December 2016, 19:10
Real.Finder
I have an issue with last QTGMC release (2016-12-06)
https://t8.pixhost.org/thumbs/1117/35839738_appunti01.jpg (https://pixhost.org/show/1117/35839738_appunti01.jpg)
Help me !
thanks a lot
you must have last SMDegrain (http://forum.videohelp.com/threads/369142-Simple-MDegrain-Mod-v3-1-2d-A-Quality-Denoising-Solution?p=2413356&viewfull=1#post2413356)
ndjamena
10th December 2016, 13:20
I'm busy modifying QTGMC so that I can do the script in sections to make processing 1080i material using whatever settings I like without it crashing or reducing the framerate to almost nothing (multithreading the script doesn't increase CPU usage any more than running it single threaded).
I think I've already got a working solution, I just have to wait for the finished output, but at the moment I'm up to SourceMatch and have a question.
I don't actually understand everything going on in the script and I'm wonder what is the difference between the main EDI and each of the SourceMatch EDIs... Would it cause any problems if I just fed the main EDI into QTGMC_ApplySourceMatch or does that little bit of code in there change the frames too much for them to be interchangeable?
ravewulf
17th December 2016, 00:15
QTGMC 3.34
Given that MvTools2 now supports YV16, I figured I'd create a YV16 version of QTGMC that gets rid of any unneeded YUY2 conversions.
real.finder's 2016-12-06 mod with the following changes:
Removed YUY2 input support, use YV16 instead (hence the version bump to 3.34)
Removed most YUY2 workarounds except where still needed for plugins that don't support YV16
Removed reliance on SSE2Tools. All plugins now support either YV16 or YUY2 directly
Minimum requirements updated for YV16 support
RemoveGrain and Vertical Cleaner replaced by RgTools
Yadif replaced by yadifmod2 (The option to select it directly is still "Yadif" for compatibility if you have it in multiple scripts already, but I can change this if people want it to be "yadifmod2" instead)
FFT3DFilter, NNEDI2, NNEDI, EEDI3, EEDI2, TDeint still rely on YUY2, but accept it directly without SSE2Tools.
AddGrainC, dfttest, MaskTools2, MvTools2, NNEDI3, KNLMeansCL, RgTools, and yadifmod2 support YV16
# --- REQUIREMENTS ---
#
# Input colorspaces: YV12, YV16
#
# Core plugins:
# MVTools2 (2.7.5.22 or above from pinterf https://github.com/pinterf/mvtools/releases)
# MaskTools v2 (2.0b1 or above)
# NNEDI3 (0.9.4.6 or above)
# RgTools
#
# Additional plugins:
# NNEDI2, NNEDI, EEDI3, EEDI2, TDeInt - if selected directly or via a source-match preset
# yadifmod2 - for Preset="Ultra Fast" or if selected directly
# FFT3DFilter - if selected for noise processing
# dfttest (1.9.4 or above) - if selected for noise processing
# For FFT3DFilter & ddftest you also need the FFTW3 library (FFTW.org). On Windows the file needed for both is libfftw3f-3.dll. However, for FFT3DFilter the file needs to be called FFTW3.dll, so you will need two copies and rename one. On Windows put the files in your System32 or SysWow64 folder
# AddGrainC (1.7.0 or above) - if NoiseDeint="Generate" selected for noise bypass
I'm not sure what other plugins to add to this from previous edits, so the requirements list is probably incomplete. Please let me know if there's something I missed or if you find a problem with my changes.
I've only done a limited set of testing, but hopefully there should be a speed-up for YV16 without all the SSE2Tools planar YUY2 hacks.
StainlessS
17th December 2016, 08:19
ravewulf, you should have done timing tests with/without YUY2 hacks in-situ, to tell if any benefit in removal, and then post
results, removal just for the sake of it is not a good idea.
real.finder
17th December 2016, 08:48
QTGMC 3.34
Given that MvTools2 now supports YV16, I figured I'd create a YV16 version of QTGMC that gets rid of any unneeded YUY2 conversions.
real.finder's 2016-12-06 mod with the following changes:
Removed YUY2 input support, use YV16 instead (hence the version bump to 3.34)
Removed most YUY2 workarounds except where still needed for plugins that don't support YV16
Removed reliance on SSE2Tools. All plugins now support either YV16 or YUY2 directly
Minimum requirements updated for YV16 support
RemoveGrain and Vertical Cleaner replaced by RgTools
Yadif replaced by yadifmod2 (The option to select it directly is still "Yadif" for compatibility if you have it in multiple scripts already, but I can change this if people want it to be "yadifmod2" instead)
FFT3DFilter, NNEDI2, NNEDI, EEDI3, EEDI2, TDeint still rely on YUY2, but accept it directly without SSE2Tools.
AddGrainC, dfttest, MaskTools2, MvTools2, NNEDI3, KNLMeansCL, RgTools, and yadifmod2 support YV16
# --- REQUIREMENTS ---
#
# Input colorspaces: YV12, YV16
#
# Core plugins:
# MVTools2 (2.7.5.22 or above from pinterf https://github.com/pinterf/mvtools/releases)
# MaskTools v2 (2.0b1 or above)
# NNEDI3 (0.9.4.6 or above)
# RgTools
#
# Additional plugins:
# NNEDI2, NNEDI, EEDI3, EEDI2, TDeInt - if selected directly or via a source-match preset
# yadifmod2 - for Preset="Ultra Fast" or if selected directly
# FFT3DFilter - if selected for noise processing
# dfttest (1.9.4 or above) - if selected for noise processing
# For FFT3DFilter & ddftest you also need the FFTW3 library (FFTW.org). On Windows the file needed for both is libfftw3f-3.dll. However, for FFT3DFilter the file needs to be called FFTW3.dll, so you will need two copies and rename one. On Windows put the files in your System32 or SysWow64 folder
# AddGrainC (1.7.0 or above) - if NoiseDeint="Generate" selected for noise bypass
I'm not sure what other plugins to add to this from previous edits, so the requirements list is probably incomplete. Please let me know if there's something I missed or if you find a problem with my changes.
I've only done a limited set of testing, but hopefully there should be a speed-up for YV16 without all the SSE2Tools planar YUY2 hacks.
good, you did a lot of work, but why not do it like this:-
if the source is YUY2 then did convert it to yv16 and if plugins need YUY2 (like FFT3DFilter) then convert it back to YUY2 and after that plugin convert back to yv16 until the end of script and in the end convert the output to YUY2
with this you will not need to did another edit in the future in case all filters have yv16 support
yadifmod2 is good but unfortunately that will make winxp users unhappy
Groucho2004
17th December 2016, 09:44
yadifmod2 is good but unfortunately that will make winxp users unhappy
Why's that? Works fine for me on XP.
real.finder
17th December 2016, 10:07
Why's that? Works fine for me on XP.
that what readme say
#yadifmod2
## Yet Another Deinterlacing Filter mod for Avisynth2.6/Avisynth+
yadifmod2 = yadif + yadifmod
### Info:
version 0.0.4
### Requirement:
- Avisynth2.6.0final/Avisynth+r1576 or greater.
- WindowsVista SP2 or later.
- Visual C++ Redistributable Packages for Visual Studio 2015.
edit: test it now in winxp in VirtualBox, and it realy work
ravewulf
17th December 2016, 10:50
good, you did a lot of work, but why not do it like this:-
if the source is YUY2 then did convert it to yv16 and if plugins need YUY2 (like FFT3DFilter) then convert it back to YUY2 and after that plugin convert back to yv16 until the end of script and in the end convert the output to YUY2
with this you will not need to did another edit in the future in case all filters have yv16 support
yadifmod2 is good but unfortunately that will make winxp users unhappy
For the most part I followed the advice from Writing better AviSynth plugins By tp7 - Stop YUY2 section (http://avisynth.nl/index.php/AviSynth%2B#Stop_YUY2) on avoiding YUY2 where possible and relying on users to add ConvertToYV16().QTGMC().ConvertToYUY2() if keeping YUY2 is necessary for any reason, but it would be trivial to automate this step with conditional conversion internally at the start and end if it is considered important enough.
As for plugins that don't support YV16 yet and require YUY2, I think what you suggested is what I already did - unless I'm misunderstanding you. The remaining conversions have been moved to directly before/after filters that need YUY2 instead of having sections of interleaved YUY2 and sections of planar YUY2 as it was before.
Groucho2004
17th December 2016, 11:02
test it now in winxp in VirtualBox, and it realy workChikuzen did not test XP compatibility and with VS2015 it's safe to assume that without some special switches it won't work on XP. So, stating VistaSP2 as a minimum is the sensible thing to do in this case.
real.finder
17th December 2016, 11:03
For the most part I followed the advice from Writing better AviSynth plugins By tp7 - Stop YUY2 section (http://avisynth.nl/index.php/AviSynth%2B#Stop_YUY2) on avoiding YUY2 where possible and relying on users to add ConvertToYV16().QTGMC().ConvertToYUY2() if keeping YUY2 is necessary for any reason, but it would be trivial to automate this step with conditional conversion at the start and end if it is considered important enough.
As for plugins that don't support YV16 yet and require YUY2, I think what you suggested is what I already did, unless I'm misunderstanding you. The remaining conversion have been moved to directly before/after filters that need YUY2 instead of having sections of interleaved YUY2 and sections of planar YUY2 as it was before.
you did it in another way, you did support yv16 in hack way, and dropped YUY2, my suggested is to did YUY2 support in more clean and fast way (same as you did but for YUY2 not yv16)
and the yv16 support is work in pure yv16 and that mean now not all features of qtgmc work with it, until all plugins supports yv16, and when that happened you will not need to did another changes
dandyclubs
17th December 2016, 13:41
QTGMC 3.34 bug?
D:\Worker\AVSMeter>AVSMeter.exe -avsinfo
AVSMeter 2.4.6 (x86) - Copyright (c) 2012-2016, Groucho2004
VersionString: AviSynth+ 0.1 (r2294, MT, i386)
VersionNumber: 2.60
File version: 0.1.0.0
Interface Version: 6
Multi-threading support: Yes
Linker/compiler version: 14.0
Avisynth.dll location: C:\Windows\SysWOW64\AviSynth.dll
Avisynth.dll time stamp: 2016-10-26, 17:29:37 (UTC)
PluginDir+ (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins+
PluginDir2_5 (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins
[CPP 2.6 plugins]
C:\Program Files (x86)\AviSynth+\plugins+\ConvertStacked.dll [n/a]
C:\Program Files (x86)\AviSynth+\plugins+\DePan.dll [2.13.1.0]
C:\Program Files (x86)\AviSynth+\plugins+\DePanEstimate.dll [2.10.0.0]
C:\Program Files (x86)\AviSynth+\plugins+\DirectShowSource.dll [n/a]
C:\Program Files (x86)\AviSynth+\plugins+\ImageSeq.dll [n/a]
C:\Program Files (x86)\AviSynth+\plugins+\masktools2.dll [2.1.0.0]
C:\Program Files (x86)\AviSynth+\plugins+\mvtools2.dll [2.7.7.22]
C:\Program Files (x86)\AviSynth+\plugins+\nnedi3.dll [0.9.4.32]
C:\Program Files (x86)\AviSynth+\plugins+\RgTools.dll [0.93.0.0]
C:\Program Files (x86)\AviSynth+\plugins+\Shibatch.dll [n/a]
C:\Program Files (x86)\AviSynth+\plugins+\TimeStretch.dll [n/a]
C:\Program Files (x86)\AviSynth+\plugins+\VDubFilter.dll [n/a]
D:\Worker\AVSMeter>AVSMeter.exe H:\WORK\video.avs
AVSMeter 2.4.6 (x86) - Copyright (c) 2012-2016, Groucho2004
AviSynth+ 0.1 (r2294, MT, i386) (0.1.0.0)
Script error: There is no function named 'ExtractU'.
(D:\Portable\Megui\AvisynthFilters\QTGMC.avsi, line 774)
(D:\Portable\Megui\AvisynthFilters\QTGMC.avsi, line 399)
(H:\WORK\video.avs, line 10)
SetMemoryMax(4096)
Import("D:\Portable\Megui\AvisynthFilters\MtModes.avsi")
#Import("D:\Portable\Megui\AvisynthFilters\LSFmod.v1.9.avsi")
Import("D:\Portable\Megui\AvisynthFilters\QTGMC.avsi")
#Import("D:\Portable\Megui\AvisynthFilters\SMDegrain.avsi")
Import("D:\Portable\Megui\AvisynthFilters\FineSharp.avsi")
LoadPlugin("D:\Portable\Megui\AvisynthFilters\KNLMeansCL\KNLMeansCL.dll")
LoadPlugin("D:\Portable\Megui\tools\lsmash\LSMASHSource.dll")
LWLibavVideoSource("H:\WORK\video.lwi")
QTGMC(Preset="Slow")
#crop
KNLMeansCL(d = 1, a = 1, h = 2)
#LSFmod(defaults="slow")
FineSharp()
#resize
Prefetch(8)
how to fix?
StainlessS
17th December 2016, 13:55
Script error: There is no function named 'ExtractU'.
Oops, methinks is Avs+ only.
EDIT: Post where 'ExtractU' first appeared (Nov 26 2016):- http://forum.doom9.org/showthread.php?p=1787428#post1787428
StainlessS
17th December 2016, 14:08
Dandyclubs,
VersionString: AviSynth+ 0.1 (r2294, MT, i386)
You need more recent version avs+, at least 20161208 r2337dev I think.
ndjamena
17th December 2016, 16:09
I had that.
The script checks to see if AVS+ is being used and if it is uses that filter, but I had the "official" version of AVS+ from the home page which apparently was too old...
ndjamena
17th December 2016, 16:23
http://forum.doom9.org/showthread.php?p=1788529#post1788529
According to this, ExtractU wasn't implemented until last month, which is odd becuase the script is definitely checking for "r1576" in the version string which was a build released back in 2014.
ssispmt = Findstr(VersionString(), "AviSynth+") != 0 && Findstr(VersionString(), "r1576") == 0
I must be missing something.
StainlessS
17th December 2016, 16:43
ExtractU wasn't implemented until last month
Mentioned last month, but supporting version not posted till 6th of this month, ie 11 days ago.
ndjamena
17th December 2016, 16:49
The version string I'm being given now has r2337 in it, so unless I'm misreading the code QTGMC isn't using ExtractU with the latest build of AVS+ anyway.
-edit-
OK then, I misread it.
ravewulf
17th December 2016, 18:59
ravewulf, you should have done timing tests with/without YUY2 hacks in-situ, to tell if any benefit in removal, and then post
results, removal just for the sake of it is not a good idea.
In general, removing the SSE2Tools Planar YUY2 hacks to use the built in YV16 support is a good idea as well as creates cleaner code. But here are the numbers:
AviSynth 2.6 MT - Athlon II x4 640 OC'd to 3.6 GHz
500 frame 720x480 60i - 1000 frames of output
MT Mode not used, EdiThreads=1 to force single threaded performance for testing
3.33 2016-12-06 mod
YUY2 4.608 fps
YV16 5.591 fps
3.34
YV16 5.608 fps
The YV16 numbers are very close, but the old YUY2 code is slow. The main benefits are always using the YV16 path when possible and having less code to maintain (3.33 2016-12-06 mod is 91.4 KB, 3.34 is 77.1 KB). As I said in a previous post, YUY2 support could easily be added back to QTGMC by immediately converting to YV16 and converting back to YUY2 before returning at the end.
ravewulf
17th December 2016, 19:04
you did it in another way, you did support yv16 in hack way, and dropped YUY2, my suggested is to did YUY2 support in more clean and fast way (same as you did but for YUY2 not yv16)
and the yv16 support is work in pure yv16 and that mean now not all features of qtgmc work with it, until all plugins supports yv16, and when that happened you will not need to did another changes
QTGMC core
MaskTools2 Supports YV16, doesn't support YUY2
MVTools supports YV16, YUY2 requires SSE2Tools hack so YV16 is preferable
RgTools supports YV16, YUY2 requires SSE2Tools hack so YV16 is preferable
Nnedi3 supports both YV16 and YUY2
Optional
Support both YV16 and YUY2 - AddGrainC, Dfttest
Supports YV16, doesn't support YUY2 - yadifmod2, KNLMeansCL
Don't support YV16, but support YUY2 directly without SSETools hack - FFT3DFilter, NNEDI2, NNEDI, EEDI3, EEDI2, TDeint
Going with YV16 by default is simpler than YUY2 by default. Certainly a lot simpler than previous versions. If any of the older plugins do get updated with YV16 support, the conditional conversions for that specific plugin can easily be removed.
Also, as pointed out in my post directly above, using YV16 instead of YUY2 wherever possible is faster and uses less code.
ravewulf
17th December 2016, 19:22
The version string I'm being given now has r2337 in it, so unless I'm misreading the code QTGMC isn't using ExtractU with the latest build of AVS+ anyway.
I'm using AviSynth 2.6 MT, so I'm not sure about AVS+. real.finder added ExtractU in the 3.33 2016-12-06 update, but maybe that part should be reverted?
I'm having trouble with MvTools2 2.7.7.22 (20161215) stalling at the end, but MvTools2 2.7.0.22d (https://github.com/pinterf/mvtools/releases/tag/r2.7.0.22d) seems to be ok.
Edit:
I'll work on a version of QTGMC 3.34 that uses the 3.33 2016-04-11 version as a base instead of the 3.33 2016-12-06 version as it seems to be more stable.
real.finder
17th December 2016, 23:52
here is my mod with ravewulf idea http://pastebin.com/1rdYVVKq
note: not tested enough, test it with cautiously
ravewulf
17th December 2016, 23:55
Now based on real.finder's QTGMC 3.33 2016-04-11 mod and should be more stable.
v3.34 2016-12-17
YV16 is used instead of YUY2 wherever possible
YUY2 input is automatically converted to YV16 for processing then back to YUY2 at the end
Removed most YUY2 workarounds except where still needed for plugins that don't support YV16
Removed reliance on SSE2Tools. All plugins support either YV16 or YUY2 directly
Minimum requirements updated for YV16 support
RemoveGrain and Vertical Cleaner replaced by RgTools
Yadif replaced by yadifmod2
AddGrainC, dfttest, MaskTools2, MvTools2, NNEDI3, KNLMeansCL, RgTools, and yadifmod2 support YV16
FFT3DFilter, NNEDI2, NNEDI, EEDI3, EEDI2, TDeint still rely on YUY2, but accept it directly without SSE2Tools.
# --- REQUIREMENTS ---
#
# Input colorspaces: YV12, YV16, YUY2
#
# Core plugins:
# MVTools2 (2.7.0.22c or above from pinterf https://github.com/pinterf/mvtools/releases)
# MaskTools v2 (2.0b1 or above)
# NNEDI3 (0.9.4.6 or above)
# RgTools
#
# Additional plugins:
# NNEDI2, NNEDI, EEDI3, EEDI2, TDeInt - if selected directly or via a source-match preset
# yadifmod2 - for Preset="Ultra Fast" or if selected directly
# FFT3DFilter - if selected for noise processing
# dfttest (1.9.4 or above) - if selected for noise processing
# For FFT3DFilter & ddftest you also need the FFTW3 library (FFTW.org). On Windows the file needed for both is libfftw3f-3.dll. However, for FFT3DFilter the file needs to be called FFTW3.dll, so you will need two copies and rename one. On Windows put the files in your System32 or SysWow64 folder
# AddGrainC (1.7.0 or above) - if NoiseDeint="Generate" selected for noise bypass
For now I recommend MVTools2 2.7.0.22d (https://github.com/pinterf/mvtools/releases/tag/r2.7.0.22d) as the newer versions with 10-16 bit support have been freezing AVSMeter at the end of test runs.
Please let me know if there's something I missed or if you find a problem with my changes.
ndjamena
18th December 2016, 02:31
I'm using AviSynth 2.6 MT, so I'm not sure about AVS+. real.finder added ExtractU in the 3.33 2016-12-06 update, but maybe that part should be reverted?
I'm having trouble with MvTools2 2.7.7.22 (20161215) stalling at the end, but MvTools2 2.7.0.22d (https://github.com/pinterf/mvtools/releases/tag/r2.7.0.22d) seems to be ok.
Edit:
I'll work on a version of QTGMC 3.34 that uses the 3.33 2016-04-11 version as a base instead of the 3.33 2016-12-06 version as it seems to be more stable.
Actually I read it wrong. Sorry, having trouble concentrating.
ssispmt = Findstr(VersionString(), "AviSynth+") != 0 && Findstr(VersionString(), "r1576") == 0
Lets see, if in the Version String there's the text "AviSynth+" (not 0) and there's NOT the text "r1576" (0) then use ExtractU.
Which I'm thinking at the moment means any version of AviSynth+ other than "r1576" will attempt to use ExtractU, even though the filter was only added to the most recent build and there were many releases between the two.
Does that sound about right?
I'm thinking it would have to figure out some way of converting the revision number to an integer in order to be viable in the short term and avoid this particular bug, but what do I know.
ravewulf
18th December 2016, 03:12
Actually I read it wrong. Sorry, having trouble concentrating.
ssispmt = Findstr(VersionString(), "AviSynth+") != 0 && Findstr(VersionString(), "r1576") == 0
Lets see, if in the Version String there's the text "AviSynth+" (not 0) and there's NOT the text "r1576" (0) then use ExtractU.
Which I'm thinking at the moment means any version of AviSynth+ other than "r1576" will attempt to use ExtractU, even though the filter was only added to the most recent build and there were many releases between the two.
Does that sound about right?
I'm thinking it would have to figure out some way of converting the revision number to an integer in order to be viable in the short term and avoid this particular bug, but what do I know.
Yeah, that sounds about right. Maybe something like this?
BlankClip()
str = VersionString() #get version string
strPos = FindStr(str,"(r") #find start of (r####
str = MidStr(str,strPos+2) #get substring that starts with the number
vn = Value(str) #convert to a number value
str = String(vn > 1576) #check against a known version
Subtitle(str)
Unfortunately it would break if they change the format of the version string. It would be easier with regular expressions.
Edit:
Better idea - take a leaf out of my web dev book and avoid version detection
BlankClip(pixel_type="YV12")
try {
c420 = Is420(last) #code which may fail if the functions don't exist
} catch (errStr) {
c420 = IsYV12(last) #fallback code
}
Subtitle(String(c420))
So put all the new AVS+ functions in the try block and all the fallback functions in the catch block
real.finder
18th December 2016, 03:45
ok new edit in the same post here http://forum.doom9.org/showpost.php?p=1732845&postcount=2041
don't forget SMDegrain (http://forum.videohelp.com/threads/369142-Simple-MDegrain-Mod-v3-1-2d-A-Quality-Denoising-Solution?p=2413356&viewfull=1#post2413356) if you use tv_range=true (Default for now) and if you use avs+mt (not the r1576 that has no mt (https://github.com/AviSynth/AviSynthPlus/releases/download/Rel-r1576/AviSynthPlus-r1576.zip), r1576 is work like any normal avs 2.6) use the most last updated here (http://forum.doom9.org/showthread.php?p=1789325#post1789325) or newer
pinterf
18th December 2016, 12:55
I'm having trouble with MvTools2 2.7.7.22 (20161215) stalling at the end, but MvTools2 2.7.0.22d (https://github.com/pinterf/mvtools/releases/tag/r2.7.0.22d) seems to be ok.
Edit:
I'll work on a version of QTGMC 3.34 that uses the 3.33 2016-04-11 version as a base instead of the 3.33 2016-12-06 version as it seems to be more stable.
If you experienced the stalling with YUY2 input, it may have been fixed in 2.7.8.22
thanhvanchi
19th December 2016, 09:05
công ty chúng tôi chuyên về lắp https://internetvietnam.net/dang-ky-lap-dat-internet-tai-huyen-binh-chanh.html (https://internetvietnam.net/dang-ky-lap-dat-internet-tai-huyen-binh-chanh.html) và https://forum.audacityteam.org/viewtopic.php?t=93857 (https://forum.audacityteam.org/viewtopic.php?t=93857) và https://band.us/@dulichviet (https://band.us/@dulichviet) và tiếp thị kỹ thuật số (https://forum.doom9.org/showthread.php?t=174122) cho khách hàng.
Ngoài ra đây là điểm đến lý tương để khách hàng nhu cầu về cho mọi doanh nghiệp và hộ gia đình.
odyssey
21st December 2016, 10:02
What's the best way to eliminate crashes when using MT?
I'm currently down to this, but it still crashes quite frequently, while encoding with x264 (source is PAL DVD):
SetMTMode(5, 5)
SetMemoryMax(700)
DGDecode_mpeg2source(...)
AssumeTFF()
ColorMatrix(hints=true, threads=0)
SetMTMode(2)
QTGMC(Preset="Slow", EdiThreads=1)
Distributor()
I get about 30fps which I think is pretty decent (on i7-6700K stock settings). I've got 32GB memory, so that shouldn't be a problem, but it could be that thing needs to be fine tuned better.
A few things I've noticed:
- Often when it crashes, the x264 file was encoded much bigger than it should (???)
- When I encoded a tv-series from a mostly progressive source, to remove bad deinterlacing artifacts, keeping the fps at 25, it did not crash at all.
LigH
21st December 2016, 10:12
Use Distributor() only when a specific tool requires it. The x264 encoder does usually not. Using it unnecessarily may multiply threads!
hello_hello
21st December 2016, 10:14
odyssey, try this:
DGDecode_mpeg2source(...)
AssumeTFF()
ColorMatrix(hints=true, threads=0)
QTGMC(Preset="Slow", EdiThreads=1)
Trim(0,4999) #or whatever frame range encodes half the video
Then create another script to encode the second half and run them simultaneously. Even if they both only run at 15fps, it's be 2x15fps and should be far more stable.
Add --stitchable to the x264 command line and append the encoded video with MKVToolnix (assume an MKV output is fine).
ndjamena
21st December 2016, 11:02
Parts=2
Part=1
Trim(floor(framecount/Parts)*(Part-1), (floor(framecount/Parts)*Part)-1)
You could set part number by either creating the avs file via batch, adding the number to the avs file name and reading the file name from the script or checking to see if an output file for a previous part exists and if it is start the next part.
Multithreading is working fine for me though.
odyssey
21st December 2016, 11:44
Use Distributor() only when a specific tool requires it. The x264 encoder does usually not. Using it unnecessarily may multiply threads!
Didn't work :(
odyssey, try this:
DGDecode_mpeg2source(...)
AssumeTFF()
ColorMatrix(hints=true, threads=0)
QTGMC(Preset="Slow", EdiThreads=1)
Trim(0,4999) #or whatever frame range encodes half the video
Then create another script to encode the second half and run them simultaneously. Even if they both only run at 15fps, it's be 2x15fps and should be far more stable.
Add --stitchable to the x264 command line and append the encoded video with MKVToolnix (assume an MKV output is fine).
Parts=2
Part=1
Trim(floor(framecount/Parts)*(Part-1), (floor(framecount/Parts)*Part)-1)
You could set part number by either creating the avs file via batch, adding the number to the avs file name and reading the file name from the script or checking to see if an output file for a previous part exists and if it is start the next part.
Multithreading is working fine for me though.
Not a bad idea, and may even give better fps. One major drawback is however that it complicates scripting this :(
I'm encoding shows, so I could probably make it easier by just encoding multiple episodes at the same time.
Also I would probably join them using ffmpeg afterwards. Gotta play a bit with this :) Thanks for the suggestions so far! :D
Groucho2004
21st December 2016, 12:13
What's the best way to eliminate crashes when using MT?
I'm currently down to this, but it still crashes quite frequently, while encoding with x264 (source is PAL DVD):
SetMTMode(5, 5)
SetMemoryMax(700)
DGDecode_mpeg2source(...)
AssumeTFF()
ColorMatrix(hints=true, threads=0)
SetMTMode(2)
QTGMC(Preset="Slow", EdiThreads=1)
Distributor()
A few pointers/comments:
You may be using old/outdated plugins. In order for us to suggest new versions you should use AVSMeter (http://forum.doom9.org/showthread.php?t=165528) to create a "snapshot" of your Avisynth install and associated plugins. Run "AVSMeter -avsinfo -log" from the command line and post the generated log file ("avsinfo.log").
"SetMemoryMax(700)" may be a bit low for 5 base threads.
Consider using Avisynth+ instead of SEt's MT. At this stage it's quite stable and tests have shown good results multi-threading QTGMC().
Lastly, how are you feeding the script to x264?
odyssey
21st December 2016, 12:53
A few pointers/comments:
You may be using old/outdated plugins. In order for us to suggest new versions you should use AVSMeter (http://forum.doom9.org/showthread.php?t=165528) to create a "snapshot" of your Avisynth install and associated plugins. Run "AVSMeter -avsinfo -log" from the command line and post the generated log file ("avsinfo.log").
"SetMemoryMax(700)" may be a bit low for 5 base threads.
Consider using Avisynth+ instead of SEt's MT. At this stage it's quite stable and tests have shown good results multi-threading QTGMC().
Lastly, how are you feeding the script to x264?
I'm using the latest plugins recommended in the first thread, with only the optimized plugin package collection.
I started out with memory at about 3200 AFAIR, but then read that it may be too high.
I'll try the Avisynth+ :D Thanks for the suggestion.
x264_8bit_x86.exe --crf 16 --preset slower --level 4.1 --fps 50 --sar !sar! --output "!h264file!" "!avsfile!"
ndjamena
21st December 2016, 13:06
Hmmm. I told a lie... I AM having problems multi-threading but only when denoising is turned on (which is used by default in placebo mode). It doesn't crash but it does fill the frame with crap occasionally... I tracked it down to the dnWindow stage... maybe I'll try a different version of fft3dfilter...
Grr, I'm trying got figure out what's causing it but...
Grr:
http://forum.doom9.org/showpost.php?p=1732845&postcount=2041
http://pastebin.com/raw/r4esUcVF
Whoever last edited that used the variable name "EdiMode" in SourceMatch rather than MatchEdi...
Groucho2004
21st December 2016, 13:09
I'm using the latest plugins recommended in the first thread, with only the optimized plugin package collection.
Yeah, these are outdated.
Posting the AVSMeter log would avoid a lot of questions, for example what OS you're running. You can also use AVSMeter to check the memory consumption of your script.
ndjamena
21st December 2016, 13:29
There's no equivalent to ChromaEdi inside SourceMatch, so I have no idea what the hell to do with that.
Were EdiMode and ChromaEdi supposed to have been passed to SourceMatch or should that bit of code be in the main function?
*sigh*
I'll go back to my modified version and go back to what I was doing, maybe I'll be able to "update to the latest version" for testing tomorrow.
odyssey
21st December 2016, 16:15
Consider using Avisynth+ instead of SEt's MT. At this stage it's quite stable and tests have shown good results multi-threading QTGMC().
Just got Avisynth+ up and running. I get about 24fps with this script, but apparently with some spare CPU left (not reaching 100%):
SetFilterMTMode("DEFAULT_MT_MODE", 2)
SetFilterMTMode("DGDecode_mpeg2source", 3)
DGDecode_mpeg2source(...)
AssumeTFF()
ColorMatrix(hints=true, threads=0)
QTGMC(Preset="Slow")
Prefetch(4)
Is it possible to tweak better for performance?
Groucho2004
21st December 2016, 16:32
Just got Avisynth+ up and running. I get about 24fps with this script, but apparently with some spare CPU left (not reaching 100%):
SetFilterMTMode("DEFAULT_MT_MODE", 2)
SetFilterMTMode("DGDecode_mpeg2source", 3)
DGDecode_mpeg2source(...)
AssumeTFF()
ColorMatrix(hints=true, threads=0)
QTGMC(Preset="Slow")
Prefetch(4)
Is it possible to tweak better for performance?
Since you have a i7-6700K I'd try a prefetch value of 6 or 8. However, watch the memory consumption of the script. Also, set both "EdiThreads" and "DftThreads" to "1" in QTGMC().
Most importantly, higher CPU usage doesn't necessarily mean better performance and/or efficiency.
ndjamena
23rd December 2016, 02:46
For whoever it may concern:
BUG (or at least an inconsistency)
EdiQual = (EdiMode == "NNEDI3" && EdiQual > 2 ) ? 2 : EdiQual # Smaller range for EdiQual in NNEDI3
(EdiMode == "EEDI3+NNEDI3") ? Input.EEDI3( field=-2, mdis=EdiMaxD, threads=EdiThreads, U=CEed,V=CEed, \
sclip=Input.NNEDI3( field=-2, nsize=NNSize, nns=NNeurons, qual=EdiQual, threads=EdiThreads, U=CEed,V=CEed ) ) : \
The script fails to check the maximum EdiQual value for NNEDI3 when used with EEDI3.
real.finder
23rd December 2016, 08:16
For whoever it may concern:
BUG (or at least an inconsistency)
EdiQual = (EdiMode == "NNEDI3" && EdiQual > 2 ) ? 2 : EdiQual # Smaller range for EdiQual in NNEDI3
(EdiMode == "EEDI3+NNEDI3") ? Input.EEDI3( field=-2, mdis=EdiMaxD, threads=EdiThreads, U=CEed,V=CEed, \
sclip=Input.NNEDI3( field=-2, nsize=NNSize, nns=NNeurons, qual=EdiQual, threads=EdiThreads, U=CEed,V=CEed ) ) : \
The script fails to check the maximum EdiQual value for NNEDI3 when used with EEDI3.
yes, it is, fix it in my edit
tsftd
28th December 2016, 16:21
OK, so having spent several hours messing around through Google and not being able to get it to work, hopefully someone here can help me.
I'm encoding VHS/Super8 rips of old home movies, and looking to properly deinterlace them, so I'd like to get QTGMC working. I'm using megui (dev updates), and not trying to use multithreading. I've used Megui for years, but haven't really messed around with external filters/plugins before.
My AviSynth Script Creator template looks like:
SetMemoryMax(1024)
<input>
<crop>
<resize>
QTGMC( Preset="Slow" )
<denoise>
The outputted .avs file is:
SetMemoryMax(1024)
LoadPlugin("C:\Megui\tools\lsmash\LSMASHSource.dll")
LWLibavVideoSource("C:\encoding test\test2.avi")
#crop
#resize
QTGMC( Preset="Slow" )
#denoise
Please note that trying to manually load most of the DLLs results in an error -- eg, 'LoadPlugin("C:\Megui\tools\avs\plugins\SSE2Tools.dll")' gives:
AviSynth script error:
LoadPlugin: unable to load "C:\Megui\tools\avs\plugins\SSE2Tools.dll", Module not found.
Install missing library?
Preview AVS Script in the AviSynth Script Creator yields the error:
Avisynth script error:
Script error: there is no function named "Interleaved2Planar"
(QTGMC.avsi, line 350)
Trying to run the .avs script in megui yields the error:
The file C:\encoding test\test2.avi\test2.avs cannot be opened.
Please make sure it's a valid AviSynth script and that AviSynth is properly installed
Error message for your reference: Can't read the video stream
Instructions followed:
From the OP in this thread
From http://avisynth.nl/index.php/QTGMC
Troubleshooting from http://forum.doom9.org/showthread.php?p=1485948#post1485948
Troubleshooting from http://forum.videohelp.com/threads/341867-Deinterlacing-with-Tdeint-weird-artifacts
Troubleshooting from https://www.vegascreativesoftware.info/us/forum/interlaced-hd-to-dvd-again-some-test-renders--84017/?page=3
etc...
Files in my plugin folder:
AddGrainC.dll
colors_rgb.avsi
dfttest.dll
DirectShowSource.dll
EEDI2.dll
eedi3.dll
FFT3DFilter.dll
fftw3.dll
libfftw3f-3.dll
masktools2.dll
mvtools2.dll
nnedi.dll
nnedi2.dll
nnedi3.dll
QTGMC.avsi
RemoveGrainSSE2.dll
RepairSSE2.dll
SSE2Tools.dll
SSE3Tools.dll
SSETools.dll
TCPDeliver.dll
TDeint.dll
VerticalCleanerSSE2.dll
yadif.dll
And yes, fftw3.dll and libfftw3f-3.dll are both in the SysWOW64 folder as well.
I am using the built-in avisynth (2.6); I have an external AviSynth with the same plugins in the folder, but the current MeGui doesn't appear to have an option to force usage of the external AviSynth.
And yes, MeGUI works fine if I remove the 'QTGMC( Preset="Slow" )'
Any help would be much appreciated, as I've pretty much exhausted my troubleshooting abilities and will have to settle for standard YADIF if someone here can't help me.
kuchikirukia
28th December 2016, 16:51
Please note that trying to manually load most of the DLLs results in an error -- eg, 'LoadPlugin("C:\Megui\tools\avs\plugins\SSE2Tools.dll")' gives:
AviSynth script error:
LoadPlugin: unable to load "C:\Megui\tools\avs\plugins\SSE2Tools.dll", Module not found.
Install missing library?
Are you sure they're not in avisynth_plugin?
Also you can replace removegrain and repair with rgtools.
StainlessS
28th December 2016, 17:10
SSE2tools requires MSVCR71.dll from VS 2003 Dot Net I think. (EDIT not sure about the other versions of SSETools)
see here:- http://forum.doom9.org/showthread.php?p=1781169&highlight=MSVCR71.dll#post1781169
EDIT: And you only need one of the SSETools (I'de choose SSE2) in your plugs folder.
Groucho2004
28th December 2016, 17:35
SSE2tools requires MSVCR71.dll from VS 2003 Dot Net I think.
By the way, ricktendo's AIO also installs these DLLs (msv*70.dll, msv*71.dll).
StainlessS
28th December 2016, 18:42
By the way, ricktendo's AIO also installs these DLLs (msv*70.dll, msv*71.dll).
oooooOOO, thats new I think. :)
Groucho2004
28th December 2016, 18:44
oooooOOO, thats new I think. :)Don't think so. These were included the first time I used it (last year?).
StainlessS
28th December 2016, 19:09
Thank you G2K4, guess I can now get rid of my vs 2002 and vs 2003 suppositories :D
LigH
28th December 2016, 20:29
But, but, but ... they are mostly obsolete since RGTools substitutes the whole "Repair" pack all together.
Groucho2004
28th December 2016, 22:44
But, but, but ... they are mostly obsolete since RGTools substitutes the whole "Repair" pack all together.Of course they are obsolete. People simply don't know that there are newer (and better) versions. Just look at the first post of this thread, it still promotes the use of these outdated plugins and the linked packages also contain them (I'm not blaming Vit, he has not been around for a while).
A sticky in the Avisynth usage forum with the current recommended plugins may be a good idea.
tsftd
29th December 2016, 05:20
Solved! Thank everyone for their help, I never would have been able to do it without you!
All msvcr requirements are installed in system.
RemoveGrain & Repair replaced with RGTools
SSE & SSE3 removed (had added as several troubleshooting threads as linked said that they resolved issues for the posters)
Yes, all plugins are in "C:\Megui\tools\avs\plugins"
It has no trouble loading RGTools.dll or QTGMC.avsi, in the same folder.
The original issue is resolved, however now:
AviSynth script error:
mt_makediff: unsupported colorspace. masktools only support planar YUV colorspaces (YV12, YV16, YV24)
(QTGMC.avsi, line 776)
(QTGMC.avsi, line 386)
Any other ideas?
New config:
LoadPlugin("C:\Megui\tools\avs\plugins\RgTools.dll")
SetMemoryMax(1024)
<input>
<crop>
<resize>
QTGMC( Preset="Slow" )
<denoise>
Note:
Using Masktools2.dll from http://avisynth.nl/index.php/MaskTools2 (x86 version)
Also tried mt_masktools-25.dll and mt_masktools-26.dll (each time, removing other masktools versions and trying it with only the target in the plugin directory)
Edit:
<SOLVED> via inserting "ConvertToYV12(interlaced=true)" before calling QTGMC:
LoadPlugin("C:\Temp Programs\Megui\tools\avs\plugins\RgTools.dll")
SetMemoryMax(1024)
<input>
<crop>
<resize>
ConvertToYV12(interlaced=true)
QTGMC( Preset="Slow" )
<denoise>
LigH
29th December 2016, 10:23
Oh, you wrote "VHS"; so we should have assumed that your source filter returned YUY2 instead of YV12? Well, yes, QTGMC may support YUY2, but with some quirks. And the latest versions just try to substitute the slower "packed pixel" format YUY2 with the faster "planar" format YV16, available in AviSynth 2.6 or AviSynth+.
ErazorTT
3rd January 2017, 03:47
I have made some tests and it appears to me that the internal dither of dfttest is significantly faster (~10%) than the construct currently used in version 3.34 with lsb and ditherpost.
Are there any side effects or why isn't it beeing used?
real.finder
3rd January 2017, 08:26
I have made some tests and it appears to me that the internal dither of dfttest is significantly faster (~10%) than the construct currently used in version 3.34 with lsb and ditherpost.
Are there any side effects or why isn't it beeing used?
don't know which QTGMC you use but in my edit if you didn't set lsbd=true then it will work with internal dither
ndjamena
3rd January 2017, 08:36
Ideas:
1: Black and White mode.
There are a bunch of "ignore chroma" settings that all need to be set independently. It would be easier if you could just say it once and have the script itself apply all the necessary settings. Plus, there doesn't seem to be any way of disabling Chroma EDI completely. The lowest setting is "Bob" and for black and white, even that is overkill.
2: Search Presets. It should default to the same as the main preset, but search results can be shared across instances. If you don't write in the exact same settings for each instance of QTGMC the search settings are rejected and the script aborts. If you run something like srestore with an incredibly slow preset for final output and an incredibly fast preset for detection, the motion detection results can't be shared across the two instances without writing in a bunch of manual overrides.
ErazorTT
4th January 2017, 17:08
don't know which QTGMC you use but in my edit if you didn't set lsbd=true then it will work with internal dither
No, setting lsbd=true uses ditherpost, not dfttests internal dither. As can be seen looking at the source of version 3.34 (Line 501):
dnwindow = (Denoiser == "dfttest") && (NoiseProcess != 0) && lsbd ? dnWindow.ditherpost(mode=6, U=ChromaNoise?3:2, V=ChromaNoise?3:2, slice=false) : dnWindow
One can see that in case lsbd is true, and thus dfttest outputs a 16bit clip, the clip is dithered using ditherpost and not by using dfttest's internal dither.
What I mean is replacing the following code (starting at line 496):
dnWindow = (NoiseProcess == 0) ? NOP() : \
(Denoiser == "dfttest") ? noiseWindow.dfttest( Y=true, U=ChromaNoise, V=ChromaNoise, sigma=Sigma*4, tbsize=noiseTD, threads=DftThreads, lsb=lsbd ) : \
(Denoiser == "KNLMeansCL") ? KNLMeansCL( lsbd ? noiseWindow.Dither_convert_8_to_16() : noiseWindow, d=NoiseTR, h=Sigma, lsb_inout=lsbd, device_type="GPU") : \
IsYV12(noiseWindow) ? noiseWindow.FFT3DFilter( plane=(ChromaNoise ? 4 : 0), sigma=Sigma, bt=noiseTD ) : \
noiseWindow.ConvertToYUY2().FFT3DFilter( plane=(ChromaNoise ? 4 : 0), sigma=Sigma, bt=noiseTD ).ConvertToYV16()
dnwindow = (Denoiser == "dfttest") && (NoiseProcess != 0) && lsbd ? dnWindow.ditherpost(mode=6, U=ChromaNoise?3:2, V=ChromaNoise?3:2, slice=false) : dnWindow
dnwindow = (Denoiser == "KNLMeansCL") && (NoiseProcess != 0) && lsbd ? dnWindow.ditherpost(mode=6, U=ChromaNoise?3:2, V=ChromaNoise?3:2, slice=false) : dnWindow
With this:
dnWindow = (NoiseProcess == 0) ? NOP() : \
(Denoiser == "dfttest") ? noiseWindow.dfttest( Y=true, U=ChromaNoise, V=ChromaNoise, sigma=Sigma*4, tbsize=noiseTD, threads=DftThreads, dither=lsbd ) : \
(Denoiser == "KNLMeansCL") ? KNLMeansCL( lsbd ? noiseWindow.Dither_convert_8_to_16() : noiseWindow, d=NoiseTR, h=Sigma, lsb_inout=lsbd, device_type="GPU") : \
IsYV12(noiseWindow) ? noiseWindow.FFT3DFilter( plane=(ChromaNoise ? 4 : 0), sigma=Sigma, bt=noiseTD ) : \
noiseWindow.ConvertToYUY2().FFT3DFilter( plane=(ChromaNoise ? 4 : 0), sigma=Sigma, bt=noiseTD ).ConvertToYV16()
dnwindow = (Denoiser == "dfttest") && (NoiseProcess != 0) && lsbd ? dnWindow : dnWindow #noop since dithering already done by dfttest internally
dnwindow = (Denoiser == "KNLMeansCL") && (NoiseProcess != 0) && lsbd ? dnWindow.ditherpost(mode=6, U=ChromaNoise?3:2, V=ChromaNoise?3:2, slice=false) : dnWindow
The dithering by dfttest is significantly faster for my system than by ditherpost.
LigH
4th January 2017, 17:28
No, setting lsbd=true uses ditherpost, not dfttests internal dither.
That was the point of "if you didn't set lsbd=true then it will work with internal dither". Negation. :sly:
ErazorTT
5th January 2017, 02:15
That was the point of "if you didn't set lsbd=true then it will work with internal dither". Negation. :sly:
Thats also not the case. If lsbd is set to false, than no dithering is being done!
real.finder
5th January 2017, 11:31
Thats also not the case. If lsbd is set to false, than no dithering is being done!
maybe in the future I will see what I can do here, anyway, -Vit- didn't make this (lsbd) or even the internal dither of dfttest, so I will make the change not Default if I do it
PirateIce
5th January 2017, 11:33
er what ErazorTT? if lsbd=false than it gets passed as dfttest(lsb=false) and makes dfttest dither to 8 bit internally. whereas dither= should be the number of the dither IF dithering is used internally. am i way off on this?
ErazorTT
7th January 2017, 11:28
er what ErazorTT? if lsbd=false than it gets passed as dfttest(lsb=false) and makes dfttest dither to 8 bit internally. whereas dither= should be the number of the dither IF dithering is used internally. am i way off on this?
I tested that, and no, thats no the case. If lsbd=false than no dithering is done. This can be very clearly seen looking at the chroma planes only with UToY8() or VToY8(). There is a very clear banding going on if lsbd=false. To resolve that dither must be 1. And my point is, that this is much faster than using ditherpost.
PirateIce
8th January 2017, 03:24
Ah I see I didnt realize dfttest was defaulting to no dithering, dither=0, even when lsb=false.
odyssey
9th January 2017, 16:25
A few pointers/comments:
You may be using old/outdated plugins. In order for us to suggest new versions you should use AVSMeter (http://forum.doom9.org/showthread.php?t=165528) to create a "snapshot" of your Avisynth install and associated plugins. Run "AVSMeter -avsinfo -log" from the command line and post the generated log file ("avsinfo.log").
"SetMemoryMax(700)" may be a bit low for 5 base threads.
Consider using Avisynth+ instead of SEt's MT. At this stage it's quite stable and tests have shown good results multi-threading QTGMC().
Lastly, how are you feeding the script to x264?
Here you go:
AVSMeter 2.4.6 (x86) - Copyright (c) 2012-2016, Groucho2004
VersionString: AviSynth+ 0.1 (r2347, MT, i386)
VersionNumber: 2.60
File version: 0.1.0.0
Interface Version: 6
Multi-threading support: Yes
Linker/compiler version: 14.0
Avisynth.dll location: C:\Windows\SysWOW64\AviSynth.dll
Avisynth.dll time stamp: 2016-12-22, 11:03:25 (UTC)
PluginDir+ (HKCU, x86): C:\Program Files (x86)\AviSynth\plugins
PluginDir+ (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins+
[C 2.5 plugins]
C:\Program Files (x86)\AviSynth\plugins\yadif.dll [1.7.0.0]
[CPP 2.5 plugins]
C:\Program Files (x86)\AviSynth\plugins\AddGrainC.dll [1.5.2.0]
C:\Program Files (x86)\AviSynth\plugins\DctFilter_test.dll [0.0.1.5]
C:\Program Files (x86)\AviSynth\plugins\Decomb.dll [n/a]
C:\Program Files (x86)\AviSynth\plugins\dfttest.dll [1.8.0.0]
C:\Program Files (x86)\AviSynth\plugins\DGMVCDecode.dll [1.0.0.24]
C:\Program Files (x86)\AviSynth\plugins\EEDI2.dll [0.9.2.0]
C:\Program Files (x86)\AviSynth\plugins\eedi3.dll [0.9.1.0]
C:\Program Files (x86)\AviSynth\plugins\FFT3DFilter.dll [2.1.1.0]
C:\Program Files (x86)\AviSynth\plugins\FRIMSource.dll [n/a]
C:\Program Files (x86)\AviSynth\plugins\loadhelper.dll [n/a]
C:\Program Files (x86)\AviSynth\plugins\mt_masktools-26.dll [2.0.48.0]
C:\Program Files (x86)\AviSynth\plugins\mvtools2.dll [2.5.11.2]
C:\Program Files (x86)\AviSynth\plugins\nnedi.dll [1.3.0.0]
C:\Program Files (x86)\AviSynth\plugins\nnedi2.dll [1.6.0.0]
C:\Program Files (x86)\AviSynth\plugins\nnedi3.dll [0.9.4.0]
C:\Program Files (x86)\AviSynth\plugins\RemoveGrainSSE2.dll [n/a]
C:\Program Files (x86)\AviSynth\plugins\RepairSSE2.dll [n/a]
C:\Program Files (x86)\AviSynth\plugins\SSE2Tools.dll [n/a]
C:\Program Files (x86)\AviSynth\plugins\SupTitle.dll [2.0.8.0]
C:\Program Files (x86)\AviSynth\plugins\TDeint.dll [1.1.0.0]
C:\Program Files (x86)\AviSynth\plugins\VerticalCleanerSSE2.dll [n/a]
C:\Program Files (x86)\AviSynth\plugins\VSFilter.dll [1.0.1.3]
[CPP 2.6 plugins]
C:\Program Files (x86)\AviSynth+\plugins+\DirectShowSource.dll [n/a]
C:\Program Files (x86)\AviSynth+\plugins+\ImageSeq.dll [n/a]
C:\Program Files (x86)\AviSynth+\plugins+\Shibatch.dll [n/a]
C:\Program Files (x86)\AviSynth+\plugins+\TimeStretch.dll [n/a]
C:\Program Files (x86)\AviSynth+\plugins+\VDubFilter.dll [n/a]
[Plugin errors/warnings]
----------------------------------------------------------------------------------------------------------------------
Error loading "C:\Program Files (x86)\AviSynth\plugins\DirectShowSource.dll"
Cannot load 64 bit DLL with 32 bit Avisynth
----------------------------------------------------------------------------------------------------------------------
"C:\Program Files (x86)\AviSynth\plugins\HookSurcode.dll"
Exception 0xC0000005 [STATUS_ACCESS_VIOLATION]
Module: C:\Users\Microsoft Sucks\Downloads\AVSMeter246\AVSMeter246\AVSMeter.exe
Address: 0x003B44E1
----------------------------------------------------------------------------------------------------------------------
Error loading "C:\Program Files (x86)\AviSynth\plugins\ImageSeq.dll"
Cannot load 64 bit DLL with 32 bit Avisynth
----------------------------------------------------------------------------------------------------------------------
Error loading "C:\Program Files (x86)\AviSynth\plugins\Shibatch.dll"
Cannot load 64 bit DLL with 32 bit Avisynth
----------------------------------------------------------------------------------------------------------------------
"C:\Program Files (x86)\AviSynth\plugins\SupCore.dll"
Exception 0xC0000005 [STATUS_ACCESS_VIOLATION]
Module: C:\Users\Microsoft Sucks\Downloads\AVSMeter246\AVSMeter246\AVSMeter.exe
Address: 0x003B44E1
----------------------------------------------------------------------------------------------------------------------
Error loading "C:\Program Files (x86)\AviSynth\plugins\TimeStretch.dll"
Cannot load 64 bit DLL with 32 bit Avisynth
----------------------------------------------------------------------------------------------------------------------
Error loading "C:\Program Files (x86)\AviSynth\plugins\VDubFilter.dll"
Cannot load 64 bit DLL with 32 bit Avisynth
----------------------------------------------------------------------------------------------------------------------
"C:\Program Files (x86)\AviSynth\plugins\dfttest.dll"
Dependencies that could not be loaded:
libfftw3f-3.dll
Note: "libfftw3f-3.dll can be downloaded here:
http://www.fftw.org/install/windows.html
libfftw3f-3.dll must be placed in a directory to which the
'PATH' environment variable points, i.e. System32/SysWOW64"
----------------------------------------------------------------------------------------------------------------------
Cannot load file 'C:/Program Files (x86)/AviSynth/plugins/eedi3.dll'. Platform returned code 14001:
The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.
Dependencies that could not be loaded:
vcomp.dll
----------------------------------------------------------------------------------------------------------------------
Cannot load file 'C:/Program Files (x86)/AviSynth/plugins/SSE2Tools.dll'. Platform returned code 126:
The specified module could not be found.
Dependencies that could not be loaded:
MSVCR71.dll
----------------------------------------------------------------------------------------------------------------------
As you can see I've upgraded to Avisynth+. Haven't had a single crash since then, so thanks for that suggestion :)
A few odd things that I need to fix in that log. One thing is that I had to replace avisynth.dll in both system32 and syswow64 with 32-bit MT-dll to make it load at all.
Next question: What are the current recommended filter versions for use with QTGMC, if the plugin pack is outdated?
LigH
9th January 2017, 16:32
One thing is that I had to replace avisynth.dll in both system32 and syswow64 with 32-bit MT-dll to make it load at all.
Definitely a wrong move. These are separate directories for a good reason: One (system32) should contain only 64-bit DLLs, the other (SysWoW64) only 32-bit DLLs.
Please do not try to access system directories using a 32-bit file manager on a 64-bit Windows. Windows will hide the content of the 64-bit system directory from 32-bit applications.
I am not sure about the listed error messages; but you seem to have mixed 64-bit and 32-bit DLLs in the same AviSynth plugin autoload directory. No surprise there are issues.
Please take some time to scan this thread backwards; Groucho2004 listed a set of recommended plugins, and this list has been linked a few time since. It will certainly contain the term "RgTools" (search this thread for it).
Groucho2004
9th January 2017, 16:35
One thing is that I had to replace avisynth.dll in both system32 and syswow64 with 32-bit MT-dll to make it load at all.As pointed out by Ligh, it seems that you put 64 bit plugins in the 32 bit plugin directory. This is a real mess.
1. Uninstall Avisynth, delete avisynth.dll and devil.dll from system32 and syswow64, delete the Avisynth directory in "Program Files (x86)".
2. Use the AVS+ installer from here (http://avs-plus.net/)
3. Add your plugins
Once this is working (AVSMeter doesn't report errors), start updating to the latest AVS+ build.
"C:\Program Files (x86)\AviSynth\plugins\HookSurcode.dll"
Exception 0xC0000005 [STATUS_ACCESS_VIOLATION]
Module: C:\Users\Microsoft Sucks\Downloads\AVSMeter246\AVSMeter246\AVSMeter.exe
Address: 0x003B44E1
"C:\Program Files (x86)\AviSynth\plugins\SupCore.dll"
Exception 0xC0000005 [STATUS_ACCESS_VIOLATION]
Module: C:\Users\Microsoft Sucks\Downloads\AVSMeter246\AVSMeter246\AVSMeter.exe
Address: 0x003B44E1
What are those? They sure aren't Avisynth plugins.
PirateIce
11th January 2017, 20:17
I tested that, and no, thats no the case. If lsbd=false than no dithering is done. This can be very clearly seen looking at the chroma planes only with UToY8() or VToY8(). There is a very clear banding going on if lsbd=false. To resolve that dither must be 1. And my point is, that this is much faster than using ditherpost.
looking back at the docs for dfttest:
dither= "Controls whether dithering is performed when converting from float to unsigned char for output. Internally dfttest works on floating point values. For output the result must be quantized back to unsigned char values. Prior to v1.8 this was always done by simply rounding. "
so I read that as meaning from float to 16bit regardless of lsb setting, if thats the case I would think running the following code with lsbd=false would allow dfttest to dither to 8 bit without the dithering issue you described
dnWindow = (NoiseProcess == 0) ? NOP() : \
(Denoiser == "dfttest") ? noiseWindow.dfttest( Y=true, U=ChromaNoise, V=ChromaNoise, sigma=Sigma*4, tbsize=noiseTD, threads=FftThreads, lsb=lsbd, dither=1) : \
(Denoiser == "KNLMeansCL") ? noiseWindow.SMDegrain_KNLMeansCL(Chroma=ChromaNoise, lsb=lsbd, a=2, d=NoiseTR, h=Sigma, device_type="GPU" ) : \
noiseWindow.FFT3DFilter( plane=(ChromaNoise ? 4 : 0), sigma=Sigma, bt=noiseTD, ncpu=FftThreads )
dnwindow = (Denoiser == "KNLMeansCL" || Denoiser == "dfttest") && (NoiseProcess != 0) && lsbd ? dnWindow.ditherpost(mode=6, U=ChromaNoise?3:2, V=ChromaNoise?3:2, slice=false) : dnWindow
dnwindow = (Denoiser == "KNLMeansCL" || Denoiser == "dfttest") && (NoiseProcess != 0) && yuy2 ? dnWindow.ConvertToYUY2() : dnWindow
as for lsbd=true I might be wrong about its usage but isnt the whole point of it to stay at 16 bit at this stage and dither later? It doesnt seem to me like its needed to increase internal precision anywhere in dfttest.
PirateIce
12th January 2017, 05:31
So, I still think the code just needs the addition of dither=1 as I wrote above, and that internally dithering is what happens when you set lsbd=false, IF you add dither=1 to the code, otherwise it is just quantized to 8 bit.
The part about dither=1 dithering something internally to 16bit i think was gibberish though, sorry ><, I believe it has no effect if lsb=true, but defaults to rounding if not set to 1 even if lsb=false.
And the other part of the edit from ErazorTT seems to just remove the ability to use lsbd=true and should have no effect from what I can tell if lsbd=false. Im refering to the following:
dnwindow = (Denoiser == "dfttest") && (NoiseProcess != 0) && lsbd ? dnWindow : dnWindow #noop since dithering already done by dfttest internally
dnwindow = (Denoiser == "KNLMeansCL") && (NoiseProcess != 0) && lsbd ? dnWindow.ditherpost(mode=6, U=ChromaNoise?3:2, V=ChromaNoise?3:2, slice=false) : dnWindow
real.finder
12th January 2017, 10:49
So, I still think the code just needs the addition of dither=1 as I wrote above, and that internally dithering is what happens when you set lsbd=false, IF you add dither=1 to the code, otherwise it is just quantized to 8 bit.
The part about dither=1 dithering something internally to 16bit i think was gibberish though, sorry ><, I believe it has no effect if lsb=true, but defaults to rounding if not set to 1 even if lsb=false.
And the other part of the edit from ErazorTT seems to just remove the ability to use lsbd=true and should have no effect from what I can tell if lsbd=false. Im refering to the following:
iirc, dither in dfttest will have effect even with lsb
PirateIce
13th January 2017, 01:46
ah so it IS a dither that occurs BEFORE the 8 bit conversion, as in float to 16bit Im thinking. In that case it still seems like the effect of dither=1 would still be prefered over rounding with either lsb=true or lsb=false and doesnt need to change in either case.
ErazorTT
14th January 2017, 01:22
ah so it IS a dither that occurs BEFORE the 8 bit conversion, as in float to 16bit Im thinking. In that case it still seems like the effect of dither=1 would still be prefered over rounding with either lsb=true or lsb=false and doesnt need to change in either case.
I think that dithering is actually unnecessary for 16 bit, so that I would suggest to set the lsb and dither parameters exclusively:
..., lsb=lsbd, dither=lsbd ? 0 : 1)
PirateIce
17th January 2017, 06:09
Did you see your banding problems disappear and the performance you were looking for with lsb=false and dither=1?
PirateIce
22nd January 2017, 12:32
Well just to summarize for anyone else, these following changes should improve output when using dfftest and lsbd=false by using the basic dither from float, you can increase the value of the dither to further combat source banding, for example replace dither=lsbd ? 0 : 1 with dither=lsbd ? 0 : 9. All changes at end of first line just added the following lines to clarify with previous suggestions, they are unchanged.
if you are on the latest version of QTGMC 3.352, starting at line 559:
(Denoiser == "dfttest") ? noiseWindow.dfttest( Y=true, U=ChromaNoise, V=ChromaNoise, sigma=Sigma*4, tbsize=noiseTD, threads=FftThreads, lsb=lsbd, dither=lsbd ? 0 : 1) : \
(Denoiser == "KNLMeansCL") ? noiseWindow.SMDegrain_KNLMeansCL(Chroma=ChromaNoise, lsb=lsbd, a=2, d=NoiseTR, h=Sigma, device_type="GPU" ) : \
noiseWindow.FFT3DFilter( plane=(ChromaNoise ? 4 : 0), sigma=Sigma, bt=noiseTD, ncpu=FftThreads )
dnwindow = (Denoiser == "KNLMeansCL" || Denoiser == "dfttest") && (NoiseProcess != 0) && lsbd ? dnWindow.ditherpost(mode=6, U=ChromaNoise?3:2, V=ChromaNoise?3:2, slice=false) : dnWindow
dnwindow = (Denoiser == "KNLMeansCL" || Denoiser == "dfttest") && (NoiseProcess != 0) && yuy2 ? dnWindow.ConvertToYUY2() : dnWindow
ErazorTT
27th January 2017, 23:52
Did you see your banding problems disappear and the performance you were looking for with lsb=false and dither=1?
Yes this resolves both: No banding and faster than lsb=true.
cork_OS
29th January 2017, 14:33
Hello.
Is it possible to create QTGMC analog using NNEDI3ocl? Or it won't become any faster than original QTGMC?
ErazorTT
29th January 2017, 19:20
Hello.
Is it possible to create QTGMC analog using NNEDI3ocl? Or it won't become any faster than original QTGMC?
I do not know how much faster the OpenCL version is. But perhaps it already helps to have an optimized version of the normal NNEDI3...
https://github.com/jpsdr/NNEDI3/releases
cork_OS
29th January 2017, 21:25
I do not know how much faster the OpenCL version is. But perhaps it already helps to have an optimized version of the normal NNEDI3...
https://github.com/jpsdr/NNEDI3/releases
Several NNEDI3 builds shows same speed on my QTGMC script, but NNEDI3ocl is faster NNEDI3 (221fps vs. 160 for 480p source, 117 vs. 36 for 720p source).
LigH
29th January 2017, 22:52
I would believe it depends a lot on the available GPGPU.
And furthermore, it might limit the parallelizability; but that has to be tested by people with experience.
DarkNite
30th January 2017, 10:43
From NNEDI3 OpenCL thread:
Only nsize=0 implemented, other values are silently ignored.
From QTGMC.avsi:
850 (ChromaEdi == "NNEDI3") ? Input.NNEDI3( field=-2, nsize=4, nns=0, qual=1, threads=EdiThreads, Y=false ) : \
If you're OK with that parameter being silently ignored, then go for it. Let us know how it works for you.
cork_OS
30th January 2017, 16:50
And furthermore, it might limit the parallelizability; but that has to be tested by people with experience.
If you're OK with that parameter being silently ignored, then go for it. Let us know how it works for you.
No luck. With NNEDI3 replaced by NNEDI3ocl in QTGMC.avsi it become slow and with artefacts.
real.finder
6th February 2017, 17:26
new update
same place https://forum.doom9.org/showpost.php?p=1732845&postcount=2041
real.finder
9th February 2017, 10:01
high bit depth now basically work in avs+
pastebin (https://pastebin.com/LcVQvD5u) and in Attachments
Selur
11th February 2017, 19:07
@real.finder: 'dither_luma_rebuild (from SMDegrain)'
So this means one has to also include "SMDegrain v.3.1.2d.avsi", right? (because if one doesn't that function isn't defined,...)
real.finder
11th February 2017, 19:43
@real.finder: 'dither_luma_rebuild (from SMDegrain)'
So this means one has to also include "SMDegrain v.3.1.2d.avsi", right? (because if one doesn't that function isn't defined,...)
yes you must have SMDegrain too if you didn't set tv_range=false, don't remember if the original mod by dogway work here or not, you should use v3.1.2.87s or up
magiblot
28th February 2017, 15:12
It seems that last QTGMC version causes problems on all sanimebob versions for me (the last of which is this one (http://pastebin.com/JPGaE73T), that requires new parameters introduced in QTGMC).
Source is PAL, loaded through a DGIndex 1.5.8 .d2v file.
sanimebob(1) #using QTGMC-3.33s
http://i.imgur.com/87XbQ2r.png
sanimebob(1) #using QTGMC-3.354s (bad)
http://i.imgur.com/Vujp9bY.png
real.finder
28th February 2017, 16:27
can you upload sample? I think this because your source is full range
magiblot
28th February 2017, 18:34
Yes, here it is:
https://mega.nz/#!JtdShIKQ!JgxWH0-EZIIvIa0t0MNiT2Vr00XLdYEnONXEZrUgroU
real.finder
28th February 2017, 22:20
Yes, here it is:
https://mega.nz/#!JtdShIKQ!JgxWH0-EZIIvIa0t0MNiT2Vr00XLdYEnONXEZrUgroU
just try and didn't see any problem in frame 8 after bob, what SMDegrain you have? and try with tv_range=false
magiblot
1st March 2017, 13:15
You are right, it went back to normal with TV_range=false. (What does this parameter do?)
I have this version of SMDegrain:
### v3.1.2d (Dogway's mod) - 21 July 2015 ###
### mod in 2016-01-24 to fix subpixel=3 and add Prefilter auto 16 (lsb) support ###
### and yuy2 support in avs 2.6 with masktools 2.6 ###
Please let me know if there is a newer version.
Thanks for your help.
real.finder
1st March 2017, 17:40
You are right, it went back to normal with TV_range=false. (What does this parameter do?)
I have this version of SMDegrain:
### v3.1.2d (Dogway's mod) - 21 July 2015 ###
### mod in 2016-01-24 to fix subpixel=3 and add Prefilter auto 16 (lsb) support ###
### and yuy2 support in avs 2.6 with masktools 2.6 ###
Please let me know if there is a newer version.
Thanks for your help.
the new on is v3.1.2.87, see the link in my signature
real.finder
8th March 2017, 06:28
just port qtgmc for high bit depth in avs+ http://pastebin.com/raw/JuhpFSgV but it's not work well (big difference from 8 bit)
test with
QTGMC(SLMode=0,tv_range=false)
and compare 3.353s or 3.354s
SLMode=0 cuz I get the unsupported colour format same as old alpha masktools2 (bug somewhere?)
tv_range=false to not need SMDegrain (I already update it for high bit depth but to not increase the confusion)
PirateIce
19th March 2017, 21:17
hey real.finder, first thanks for all your efforts with qtgmc!
just wondering are you already moving more of the processing to 16bit in avs+ or are you just adding the avs+ conversion functions? super excited if full 16 bit support is already close.
real.finder
19th March 2017, 22:52
hey real.finder, first thanks for all your efforts with qtgmc!
just wondering are you already moving more of the processing to 16bit in avs+ or are you just adding the avs+ conversion functions? super excited if full 16 bit support is already close.
no conversion will done, so not all settings will work in high bit now cuz there are others plugins not support high bit yet
real.finder
27th March 2017, 19:00
good news for QTGMC users with anime source, it seems ghosting will be less as you using more bit depth, also less halos with Sharpness > 0
LigH
30th March 2017, 22:33
Since you seem to use functions of SMDegrain more often in recent versions, shouldn't it be documented in the list of "core plugins", or at least "additional plugins"?
I was told that a simple QTGMC(preset="Slow") already requires SMDegrain 3.1.2d now (for Dither_Luma_Rebuild).
real.finder
31st March 2017, 13:29
Since you seem to use functions of SMDegrain more often in recent versions, shouldn't it be documented in the list of "core plugins", or at least "additional plugins"?
I was told that a simple QTGMC(preset="Slow") already requires SMDegrain 3.1.2d now (for Dither_Luma_Rebuild).
it's already done in next upcoming edit but wait for pinterf to release new masktools update
Selur
2nd April 2017, 08:49
just tried QTGMC 3.357 from the pastebin link with Avisynth 2.6 MT and got:
Script error: there is no function named "nonyuy2clipin"
my script looks like this:
SetMemoryMax(768)
SetMTMode(5,8) # change MT mode
LoadPlugin("G:\Hybrid\AVISYN~1\LoadDll.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\AddGrainC.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\dfttest.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\EEDI2.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\eedi3.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\FFT3DFilter.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\mt_masktools-26.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\mvtools2.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\nnedi.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\nnedi2.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\SSE2Tools.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\TDeint.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\VerticalCleanerSSE2.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\PlanarTools.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\nnedi3.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\RgTools.dll")
LoadCPlugin("G:\Hybrid\AVISYN~1\yadif.dll")
LoadDll("G:\Hybrid\AVISYN~1\fftw3.dll")
LoadDll("G:\Hybrid\AVISYN~1\LIBFFT~1.DLL")
Import("G:\Hybrid\avisynthPlugins\QTGMC.avsi")
Import("G:\Hybrid\avisynthPlugins\SMDegrain v.3.1.2d.avsi")
LoadCPlugin("G:\Hybrid\AVISYN~1\ffms2.dll")
# loading source: C:\Users\Selur\Desktop\source.avi
# input luminance scale tv
FFVideoSource("C:\Users\Selur\Desktop\source.avi",cachefile="H:\Temp\avi_3ed4c33894e101eeafef5c603ca7faab_491_1_0.ffindex",fpsnum=30000,fpsden=1001)
# current resolution: 720x480
# deinterlacing
ConvertToYUY2(interlaced=true)
SetMTMode(2) # change MT mode
AssumeBFF()
QTGMC(Preset="Fast", ediThreads=2)
# filtering
return last
reading:
# v3.354s
# - added optional chikuzen PlanarTools for YUY2 using nonyuy2clipin/nonyuy2clipout in AnimeIVTC() v2.20
I thought nonyuy2clipin would come with PlanarTools,...
Cu Selur
Groucho2004
2nd April 2017, 09:33
I thought nonyuy2clipin would come with PlanarToolsIt's a function in AnimeIVTC().
real.finder
2nd April 2017, 14:20
as Groucho2004 said
# --- REQUIREMENTS ---
#
# Input colorspaces: YV12, YUY2, others as plugins supports
#
# Core plugins:
# MVTools2 (2.7.5.22 or above)
# MaskTools2 (v2.2.5 or above)
# NNEDI3 (0.9.4.6 or above)
# RgTools
#
# Core scripts:
# SMDegrain (3.1.2.92s or above) unless you set tv_range=false
# AnimeIVTC (2.20 or above) if you work with YUY2 source
#
# Additional plugins:
# NNEDI2, NNEDI, EEDI3, EEDI2, TDeInt - if selected directly or via a source-match preset
# yadifmod2 - for Preset="Ultra Fast" or if selected directly
# FFT3DFilter - if selected for noise processing
# dfttest (1.9.4 or above) - if selected for noise processing
# For FFT3DFilter & ddftest you also need the FFTW3 library (FFTW.org). On Windows the file needed for both is libfftw3f-3.dll. However, for FFT3DFilter
# the file needs to be called FFTW3.dll, so you will need two copies and rename one. On Windows put the files in your System32 or SysWow64 folder
# KNLMeansCL - if selected for noise processing
# AddGrainC - if NoiseDeint="Generate" selected for noise bypass
# chikuzen PlanarTools - if you work with YUY2 source (not necessarily required but may improve speed)
tebasuna51
3rd April 2017, 01:24
...
don't forget SMDegrain if you use tv_range=true (Default for now) and if you use avs+mt ...
I want use avs+mt to deinterlace my miniDV tapes (PAL 50i 8 bits YV12).
I need SMDegrain, or I can add tv_range=false to QTGMC 3.357s call, or I can use a older QTGMC version?
I'm not sure if the new requirements are for last improvements (high bitdepth, better YUV2 support) or to use avs+mt.
real.finder
3rd April 2017, 01:47
I want use avs+mt to deinterlace my miniDV tapes (PAL 50i 8 bits YV12).
I need SMDegrain, or I can add tv_range=false to QTGMC 3.357s call, or I can use a older QTGMC version?
I'm not sure if the new requirements are for last improvements (high bitdepth, better YUV2 support) or to use avs+mt.
tv_range will just improve motion vectors in tv source (limited range source), you can set it to false even in tv range and that will be like qtgmc 3.32
the new requirements for improve motion vectors (SMDegrain)
and better YUV2 support (animeivtc and PlanarTools)
nothing for avs+mt, but I mention that if someone use any avs+ mt it should be the last one, the older avs+mt was not stable anyway, and because there are new functions for high bitdepth that been in the newer builds of avs+
tebasuna51
3rd April 2017, 13:58
...nothing for avs+mt, but I mention that if someone use any avs+ mt it should be the last one...
Ok, thanks.
tv_range will just improve motion vectors in tv source (limited range source), you can set it to false even in tv range and that will be like qtgmc 3.32
Then SMDegrain improve my output if my source is tv_range.
I'm not sure if my DV source is tv_range or not, or if depend of decoder config (Cedocida, ...). But this is a question for DV forum.
Thanks.
hello_hello
3rd April 2017, 20:14
tv_range will just improve motion vectors in tv source (limited range source), you can set it to false even in tv range and that will be like qtgmc 3.32
Gotta ask....
Doesn't "tv_range=true" as the default value make the script guilty of the same behaviour that was deemed undesirable for plugins?
https://forum.doom9.org/showthread.php?p=1793722#post1793722
And if it's also the default for SMDegrain, doesn't that make it guilty of the same thing?
I'm just trying to understand why a plugin shouldn't mess with the levels unless specifically told to, but for a script the user needs to be aware of the source levels and set an option accordingly. Or is QTGMC used on full range sources so rarely it doesn't matter?
Maybe the tv-range setting could be called something else such as "clamp" given I assume the end result it pretty much the same and it's possibly less counter-intuitive.
Cheers.
real.finder
3rd April 2017, 21:17
Gotta ask....
Doesn't "tv_range=true" as the default value make the script guilty of the same behaviour that was deemed undesirable for plugins?
https://forum.doom9.org/showthread.php?p=1793722#post1793722
And if it's also the default for SMDegrain, doesn't that make it guilty of the same thing?
I'm just trying to understand why a plugin shouldn't mess with the levels unless specifically told to, but for a script the user needs to be aware of the source levels and set an option accordingly. Or is QTGMC used on full range sources so rarely it doesn't matter?
Maybe the tv-range setting could be called something else such as "clamp" given I assume the end result it pretty much the same and it's possibly less counter-intuitive.
Cheers.
Good question :sly:
things here are different, nnedi3 is used in many functions that deal with many color format even with rgb in Y8
and the tv_range here do TV to full range convert for better result, While the range parameter in nnedi3 just did clamp the values to tv range
and tv_range here don't effect the output directly, it just done in prefilter, and not only relate to tv range, it's simply call Dither_Luma_Rebuild and it's can be used for curve dark enhancement by Str (strength) and Amp (amplitude) parameters while do TV to pc converter, see SMDegrain documentation or wiki page for more info
LigH
20th April 2017, 19:26
Issues with QTGMC v3.357s reported: post with screenshots (http://forum.gleitz.info/showthread.php?47378-Weiterentwicklung-und-Pflege-von-QTGMC&p=458371&viewfull=1#post458371) comparing versions 3.354s and 3.357s; MPEG2 test clip (https://www.dropbox.com/sh/8tmfs0t5h15y2ux/AAAJGIPLWo3q3BTXUDGBehesa?dl=0); sample script how QTGMC is used (http://forum.gleitz.info/showthread.php?47378-Weiterentwicklung-und-Pflege-von-QTGMC&p=458373&viewfull=1#post458373)
It looks like a lot of blending in the latest version.
real.finder
20th April 2017, 20:12
Issues with QTGMC v3.357s reported: post with screenshots (http://forum.gleitz.info/showthread.php?47378-Weiterentwicklung-und-Pflege-von-QTGMC&p=458371&viewfull=1#post458371) comparing versions 3.354s and 3.357s; MPEG2 test clip (https://www.dropbox.com/sh/8tmfs0t5h15y2ux/AAAJGIPLWo3q3BTXUDGBehesa?dl=0); sample script how QTGMC is used (http://forum.gleitz.info/showthread.php?47378-Weiterentwicklung-und-Pflege-von-QTGMC&p=458373&viewfull=1#post458373)
It looks like a lot of blending in the latest version.
work fine here with frame 67 after QTGMC
MPEG2Source("E:\ORG.d2v", cpu=0)
AssumeTFF()
QTGMC( Preset="Slow" )
what SMDegrain he had? what he get with tv_range=false?
LigH
20th April 2017, 20:31
SMDegrain v.3.1.2d ... that was the reason to request it being mentioned in the source header.
real.finder
20th April 2017, 21:05
SMDegrain v.3.1.2d ... that was the reason to request it being mentioned in the source header.
and maybe the problem he don't use masktools 2.2.5 or up
and here the requirements same as the script header in last QTGMC https://forum.doom9.org/showthread.php?p=1802599#post1802599 (see the next post too)
LigH
20th April 2017, 21:37
Just curious that the same selection of plugins still works with a slightly earlier QTGMC version. Was there so much difference? Surprising. It looks so frail. :o
Your suggestions will be tested...
_
Success with Masktools2 v2.2.6! :)
real.finder
20th April 2017, 22:08
Just curious that the same selection of plugins still works with a slightly earlier QTGMC version. Was there so much difference? Surprising. It looks so frail. :o
Your suggestions will be tested...
if you mean use old QTGMC with new plugins (masktools 2.2.6 for example) then yes it work, and if you mean using last QTGMC with old plugins then no, it will not work right cuz there are changes in lut lines that will not work with old masktools even in avs 2.6 or 8 bit in avs+
tebasuna51
21st April 2017, 12:29
New thread created from old thread QTGMC Deinterlacing Script (v3.32), because https://forum.doom9.org/showthread.php?p=1804533#post1804533
@real.finder
Please edit the first post in order to show last version, changes, downloads, plugins packs, title, etc. at your choice.
nhope
21st April 2017, 12:34
:thanks: tebasuna51
Selur
21st April 2017, 19:36
would be nice if the first post could contain an up-to-date plugins&co pack,...
real.finder
21st April 2017, 23:19
@tebasuna51
done with what I can I do for it
pinterf
22nd April 2017, 17:26
Found a thing in masktools2 2.2.6, Y, U and V when negative (memset) values are provided, are not scaled automatically from 8 bits.
This was missed somehow, though I have written in the documentation that only threshold-like parameters are scaled.
But this is not a consistent bahaviour when users have to care about which parameter is scaled, which is not scaled.
So this is fixed in the soon-to-be-released 2.2.7.
Looked inside the qtgmc script and yes, it is using
CNmt128 = ChromaNoise ? 3 : -128
then
output = (ShowNoise == 0.0) ? cropped : finalNoise.mt_lut( "clamp_f x range_half - " + string(ShowNoise) + " * range_half +", U=CNmt128,V=CNmt128 )
so it won't scale properly in 10+ bits.
2.2.7 update (along with other fixes) is on the way, you don't have to change the script, just make a note that masktools 2.2.7 is necessary.
EDIT: released
real.finder
22nd April 2017, 19:42
done :)
Music Fan
23rd April 2017, 13:34
Where can we find masktools 2.2.7 ?
I only found the Changelog ;
https://github.com/pinterf/masktools/releases/tag/2.2.7
edit : ok, found it, the link is actually below the changelog of v2.2.1 :confused:
LigH
23rd April 2017, 15:38
# Core scripts:
# SMDegrain (3.1.2.92s (https://forum.doom9.org/attachment.php?attachmentid=15836&d=1491068149) or above) unless you set tv_range=false
# AnimeIVTC (2.20 (https://forum.doom9.org/attachment.php?attachmentid=15752&d=1486626109) or above) if you work with YUY2 source
How do I discover to which posts these attachments were attached?
real.finder
23rd April 2017, 16:01
How do I discover to which posts these attachments were attached?
I have this https://forum.doom9.org/showthread.php?t=174121
it's in my signature too
LigH
23rd April 2017, 16:26
But this post leads to the VideoHelp forum, in case of SMDegrain, where I can't spot the most recent script in all the discussions (except for a pastebin link, maybe that's it...), while the attachment is clearly still in the doom9 forum?! So I wonder where it was attached there. But the pastebin (https://pastebin.com/Mz5taAgN) may be just as good, as primary source.
The post of AnimeIVTC I could find.
__
So I made a "status quo" archive on MediaFire (https://www.mediafire.com/folder/8bodqht8y48wg/QTGMC) (except for some older EDI plugins).
real.finder
23rd April 2017, 17:07
But this post leads to the VideoHelp forum, in case of SMDegrain, where I can't spot the most recent script in all the discussions (except for a pastebin link, maybe that's it...), while the attachment is clearly still in the doom9 forum?! So I wonder where it was attached there.
3rd post in the same Thread (https://forum.doom9.org/showthread.php?p=1790702#post1790702) ;)
and just added the MF link to OP
GMJCZP
24th April 2017, 01:22
In the QTGMC script 3.357 it reads:
"Full documentation is in the 'QTGMC' html file that comes with this script"
But I do not see it anywhere, would it be possible to add this documentation or create it on Avisynth Wiki? Thanks.
LigH
25th April 2017, 21:10
Update1 in my MF archive: Newer FFT3DFilter v2.3 and dfttest 1.9.4 (ICL10).
GMJCZP
25th April 2017, 21:24
In the QTGMC script 3.357 it reads:
"Full documentation is in the 'QTGMC' html file that comes with this script"
But I do not see it anywhere, would it be possible to add this documentation or create it on Avisynth Wiki? Thanks.
Please. I need the documentation for best understanding of QTGMC
PirateIce
26th April 2017, 05:31
Please. I need the documentation for best understanding of QTGMC
http://avisynth.nl/index.php/QTGMC
The full documentation file was included with 3.32 and that is as up to date as the documentation is right now I believe.
hello_hello
27th April 2017, 11:32
So I made a "status quo" archive on MediaFire (https://www.mediafire.com/folder/8bodqht8y48wg/QTGMC) (except for some older EDI plugins).
Time for "QTGMC Update 2" to replace the broken MVTools2. ;)
MvTools2 2.7.17.22 with depans (https://github.com/pinterf/mvtools/releases)
PS. I noticed you had an ICL version of another plugin or two included. There's also an ICL version of eedi2 if you're interested. http://avisynth.nl/index.php/EEDI2
hello_hello
27th April 2017, 12:01
So I made a "status quo" archive on MediaFire (https://www.mediafire.com/folder/8bodqht8y48wg/QTGMC) (except for some older EDI plugins).
Could I also ask, what's the difference between Tdient from your QTGMC plugins collection and the version here (http://avisynth.nl/index.php/TDeint)? I couldn't seem to work it out. Same version number, different dlls (size and date).
Cheers.
Taurus
27th April 2017, 12:29
@hello_hello:
A recompile from Mr.Groucho2004.
See here:
https://forum.doom9.org/showthread.php?t=173259
real.finder
27th April 2017, 12:35
and there are one recompile by -Vit- too (in Modded Plugins Package)
GMJCZP
27th April 2017, 12:56
http://avisynth.nl/index.php/QTGMC
The full documentation file was included with 3.32 and that is as up to date as the documentation is right now I believe.
Thanks, but I think it should also be included in this version. In addition the wiki page should be updated to this version as well.
hello_hello
27th April 2017, 12:57
Thanks guys.
hello_hello
27th April 2017, 13:08
A question regarding YUY2 sources and AnimeIVTC.
I realise the AnimeIVTC script is required but what about the 745 plugins it requires? Are they required in addition to QTGMCs plugins, or is it just the script itself needed by QTGMC?
Thanks.
real.finder
27th April 2017, 13:20
A question regarding YUY2 sources and AnimeIVTC.
I realise the AnimeIVTC script is required but what about the 745 plugins it requires? Are they required in addition to QTGMCs plugins, or is it just the script itself needed by QTGMC?
Thanks.
only the script
same for SMDegrain
LigH
27th April 2017, 15:51
Keeping plugin collections up to date and operational is a full time job... :rolleyes: – There are always "rarely found and often missed" links to even more appropriate versions.
I'll try to complete a new archive during May 1st.
PirateIce
28th April 2017, 05:27
Thanks, but I think it should also be included in this version. In addition the wiki page should be updated to this version as well.
If you created a complete documentation from the old including updates for changes from real.finder... it would be the only one. My point being anyone could create updated documentation for this, and then you'd have something to upload to the wiki, but it doesn't seem to be real.finder's priorities nor does it have to be as anyone could create it from the comments, right now however it is moving through revisions too quickly for it to be worth interrupting the devs to create documentation.
In other words, if it seems like something is missing from the docs, you probably need to check or ask here, full documentation will probably be made eventually just by checking the comments here as I dont think real.finder is a native english speaker anyway, so actively asking questions will probably help that endeavor.
nhope
28th April 2017, 13:17
Keeping plugin collections up to date and operational is a full time job... :rolleyes: – There are always "rarely found and often missed" links to even more appropriate versions.
And now Masktools gets an update too :D
This is where I'm at today. I have not tested everything!
QTGMC v3.357s real.finder version from first post (https://forum.doom9.org/showthread.php?t=174544)
CORE PLUGINS
MVTools2 v2.7.17.22 pinterf version from here (https://github.com/pinterf/mvtools/releases)
Masktools2 v2.2.8.0 pinterf version from here (https://github.com/pinterf/masktools/releases)
NNEDI3 0.9.4.40 jpsdr version from here (https://github.com/jpsdr/NNEDI3/releases/)
RgTools 0.95 pinterf version from here (https://github.com/pinterf/RgTools/releases)
CORE SCRIPTS
SMDegrain 3.1.2.92s real.finder version from here (https://pastebin.com/Mz5taAgN) - needed unless you set tv_range=false
AnimeIVTC v2.20 real.finder version from here (https://forum.doom9.org/showthread.php?p=1673955#post1673955) - if you work with YUY2 source
ADDITIONAL PLUGINS
yadifmod2 0.0.4-1 chikuzen version from here (https://github.com/chikuzen/yadifmod2/releases) - for Preset="Ultra Fast" or if selected directly
FFT3DFilter v2.3 pinterf version from here (https://github.com/pinterf/fft3dfilter/releases) - if selected for noise processing
dfttest 1.9.4 (ICL) x86 Groucho version from here (https://forum.doom9.org/showthread.php?t=173259) - if selected for noise processing
dfttest 1.9.4 x64 version from here (http://www.dropbox.com/s/b0rl1xz5hxlo6og/dfttest-1.9.4_x64.zip?dl=1) (Found via here (http://avisynth.nl/index.php/AviSynth%2B#AviSynth.2B_x64_plugins). Don't know the builder)
FFTW 3.3.5 from here (http://www.fftw.org/install/windows.html)
KNLMeansCL 1.02 Khanattila version from here (https://github.com/Khanattila/KNLMeansCL/releases) - if selected for noise processing
AddGrainC v1.7.1 cretindesalpes version via here (https://forum.doom9.org/showthread.php?t=111849) - if NoiseDeint="Generate" selected for noise bypass
PlanarTools 0.3.0 chikuzen version from here (https://github.com/chikuzen/PlanarTools/releases) - if you work with YUY2 source (not necessarily required but may improve speed)
TDeint 1.1.0 (VC10) x86 Groucho version from here (https://forum.doom9.org/showthread.php?t=173259) - if selected directly or via a source-match preset
TDeint 1.1.0 x64 version from here (http://www.mediafire.com/download/kmcztm1xzjm/TDeinterlace_3-14-2010.rar) (Found via here (http://avisynth.nl/index.php/AviSynth%2B#AviSynth.2B_x64_plugins). Don't know the builder)
EEDI2 0.9.2 (ICL) Groucho versions from here (https://forum.doom9.org/showthread.php?t=173259) - if selected directly or via a source-match preset
EEDI3 0.9.2.1 Elegant version from here (https://github.com/Elegant996/EEDI3/releases) - if selected directly or via a source-match preset
NNEDI2 1.6.0 x86 tritical version from here (http://avisynth.nl/index.php/Nnedi2) - if selected directly or via a source-match preset
NNEDI 1.3.0 x86 tritical version from here (https://web.archive.org/web/20160608102238/http://web.missouri.edu/~kes25c/nnedi_v1.3.zip) - if selected directly or via a source-match preset
Sharc
28th April 2017, 15:12
@nhope
:goodpost: :thanks:
StainlessS
28th April 2017, 15:14
:goodpost: :thanks:
Yep, +1 on that :) Nice.
real.finder
29th April 2017, 11:50
added nhope post link to OP
hello_hello
29th April 2017, 13:21
And now Masktools gets an update too :D
This is where I'm at today. I have not tested everything!
Excellent list. A couple of little corrections if I may.....
SMDegrain is version 3.1.2.92s and FFT3DFilter is 2.3 (it's a 7z file, I've added a "7" to the version number several times myself).
Here's a link to all the required plugins. They should be, for the next 30 seconds at least, the latest versions of all plugins (both x86 & x64). I've uploaded it to my file collection on the VideoHelp site, but it's fairly slow so if anyone would care to also host it somewhere else, feel free.
QTGMC 3.357s & Plugins 2017-04-29.zip (https://files.videohelp.com/u/210984/QTGMC%203.357s%20_%20Plugins%202017-04-29.zip) (20.4MB)
Edit: Newer plugin pack here: https://forum.doom9.org/showthread.php?p=1805941#post1805941
Some notes:
The files should be the same as those listed by nhope except for the ICL version of eedi2 which I got from here (http://avisynth.nl/index.php/EEDI2). I think that's the only difference.
There's no x64 flavours of nnedi versions 1 & 2. I don't think x64 versions exist (anyone know?), but there should be both x86 and x64 flavours of everything else.
The QTGMC, SMDegrain and AnimeIVTC scripts include their latest (old) help files, although each is no doubt a little out of date.
If I'd thought of it, I would have included a text file containing all nhope's links in the zip file, but I didn't till I'd already uploaded it and my internet connection is dog slow, especially for uploading.
Reel.Deel
29th April 2017, 13:48
Excellent list. A couple of little corrections if I may.....
SMDegrain is version 3.1.2.92s and FFT3DFilter is 2.3 (it's a 7z file, I've added a "7" to the version number several times myself).
Here's a link to all the required plugins. They should be, for the next 30 seconds at least, the latest versions of all plugins (both x86 & x64). I've uploaded it to my file collection on the VideoHelp site, but it's fairly slow so if anyone would care to also host it somewhere else, feel free.
QTGMC 3.357s & Plugins 2017-04-29.zip (https://files.videohelp.com/u/210984/QTGMC%203.357s%20_%20Plugins%202017-04-29.zip) (20.4MB)
Please don't upload plugin packs of readily available plugins. Over time it creates more problems than solutions. Some of the core plugins are still being frequently updated. A link to the GitHub releases pages or the discussion thread/wiki page is enough and promotes users always getting the latest version.
There's no x64 flavours of nnedi versions 1 & 2. I don't think x64 versions exist (anyone know?), but there should be both x86 and x64 flavours of everything else.
The reason there's no x64 version of those plugins is because nnedi3>nnedi2>nnedi. There's absolutely no reason to use nnedi/nnedi2 over nnedi3.
----
@real.finder
Please remove nnedi and nnedi2 from the script. It will make the world a better place :).
Sparktank
29th April 2017, 13:50
This is great!
I might actually start using this more often.
Thanks for the collected works, everyone!
Groucho2004
29th April 2017, 13:55
Please don't upload plugin packs of readily available plugins. Over time it creates more problems than solutions. Some of the core plugins are still being frequently updated. A link to the GitHub releases pages or the discussion thread/wiki page is enough and promotes users always getting the latest version.Couldn't agree more. :goodpost:
nhope
29th April 2017, 14:26
Excellent list. A couple of little corrections if I may.....
SMDegrain is version 3.1.2.92s and FFT3DFilter is 2.3 (it's a 7z file, I've added a "7" to the version number several times myself).
Oops. Fixed. Thanks.
The files should be the same as those listed by nhope except for the ICL version of eedi2 which I got from here (http://avisynth.nl/index.php/EEDI2).
Groucho's EEDI2.dll from EEDI2_092_ICL11.7z (https://www.dropbox.com/sh/6kb3723po5oqd4b/AADccVj70s9iYTlgkrAUILtta/EEDI2_092_ICL11.7z?dl=0) = 116 KB, 19th March 2016. The EEDI2.dll from EEDI2_092_ICL13.7z (http://web.archive.org/web/20160304124723/https://filetea.me/t1st3BqcWqxQnCaa4Dqu1pe4g/dl) from the wiki = 128 KB, 4th March 2016. Which should we use?
hello_hello
29th April 2017, 14:28
Please don't upload plugin packs of readily available plugins. Over time it creates more problems than solutions. Some of the core plugins are still being frequently updated. A link to the GitHub releases pages or the discussion thread/wiki page is enough and promotes users always getting the latest version.
It doesn't create confusion any more than multiple outdated links. There's a date on the zip file. How smart do you have to be to work out if you download the zip file after that date, you mightn't be getting the latest versions? Links to plugins can also become outdated just as fast.
If someone was to actually maintain a plugin pack and keep the link updated here or somewhere else so it's a one stop shop for the required plugins, how does that become confusing over time?
PS. Better ask real.finder to remove the link to LigH's plugin pack from the opening post.
hello_hello
29th April 2017, 14:31
Groucho's EEDI2.dll from EEDI2_092_ICL11.7z (https://www.dropbox.com/sh/6kb3723po5oqd4b/AADccVj70s9iYTlgkrAUILtta/EEDI2_092_ICL11.7z?dl=0) = 116 KB, 19th March 2016. The EEDI2.dll from EEDI2_092_ICL13.7z (http://web.archive.org/web/20160304124723/https://filetea.me/t1st3BqcWqxQnCaa4Dqu1pe4g/dl) from the wiki = 128 KB, 4th March 2016. Which should we use?
According to Reel.Deel, we only need links to work that out, so he should be able to tell you. ;)
It probably makes no difference, but I don't know.
Groucho2004
29th April 2017, 14:32
Groucho's EEDI2.dll from EEDI2_092_ICL11.7z (https://www.dropbox.com/sh/6kb3723po5oqd4b/AADccVj70s9iYTlgkrAUILtta/EEDI2_092_ICL11.7z?dl=0) = 116 KB, 19th March 2016. The EEDI2.dll from EEDI2_092_ICL13.7z (http://web.archive.org/web/20160304124723/https://filetea.me/t1st3BqcWqxQnCaa4Dqu1pe4g/dl) from the wiki = 128 KB, 4th March 2016. Which should we use?You should always use the ones linked here (https://forum.doom9.org/showthread.php?t=173259). To make things easier, Reel.Deel could simply use my dropbox folder link on the Wiki.
real.finder
29th April 2017, 15:00
The reason there's no x64 version of those plugins is because nnedi3>nnedi2>nnedi. There's absolutely no reason to use nnedi/nnedi2 over nnedi3.
----
@real.finder
Please remove nnedi and nnedi2 from the script. It will make the world a better place .
I will think about that next time when I do another uptate
same for eedi, eedi2 and eedi3?
real.finder
29th April 2017, 15:14
PS. Better ask real.finder to remove the link to LigH's plugin pack from the opening post, unless for some reason it's okay if he creates one.
it's link to MF folder not file that LigH can update any time
LigH
29th April 2017, 15:21
Or it should not be some users publishing each a separate archive, but instead enabling creators of plugins to upload their most recent versions to a common software folder, so that the script and all requirements can be kept up-to-date by everyone involved...
Groucho2004
29th April 2017, 15:28
This is still a big mess. The only helpful post in this thread is the one from nHope (https://forum.doom9.org/showthread.php?p=1805360#post1805360) where he clearly states the version numbers and download links.
The date/time stamp of a zip archive doesn't tell me anything about the DLL versions in that archive. It's useless.
So, dear plugin package makers, please stop it.
Reel.Deel
29th April 2017, 15:36
It doesn't create confusion any more than multiple outdated links. There's a date on the zip file. How smart do you have to be to work out if you download the zip file after that date, you mightn't be getting the latest versions? Links to plugins can also become outdated just as fast.
If someone was to actually maintain a plugin pack and keep the link updated here or somewhere else so it's a one stop shop for the required plugins, how does that become confusing over time?
Edit. It's already been downloaded 28 times and I uploaded it about 30 minutes ago, so I guess some users appreciate the convenience.
QTGMC 3.357s & Plugins 2017-04-29.zip (https://files.videohelp.com/u/210984/QTGMC%203.357s%20_%20Plugins%202017-04-29.zip) (20.4MB)
I never said it creates confusion, I said it creates more problems than solutions. Case in point, the plugin packs for for the original QTGMC, initially it was a good idea and convenient for the users but over time some of the plugins in the plugin pack became outdated and then it got to point where the plugins where no longer compatible with the latest AviSynth due to API changes. There's a handful of examples in the original QTGMC thread.
Multiple outdated links? You do realize that 9 of the plugins are hosted on GitHub, I don't see those becoming outdated anytime soon. The rest of the plugins are either in Groucho's Avisynth stuff thread (https://forum.doom9.org/showthread.php?t=173259) (which he keeps up to date) or in the AviSynth wiki which I also try to keep up to date, I even added archive.org links for longevity.
Yes a plugin pack is convenient but unless you commit to updating the package every time a plugin gets updated, it will do more harm than good.
The safest thing to do is just post a link to the GitHub release page, discussion thread or a wiki page.
Reel.Deel
29th April 2017, 15:47
You should always use the ones linked here (https://forum.doom9.org/showthread.php?t=173259). To make things easier, Reel.Deel could simply use my dropbox folder link on the Wiki.
Will do, thanks.
I will think about that next time when I do another uptate
same for eedi, eedi2 and eedi3?
Despite what the name implies, eedi2 and eedi3 use different algorithms. Although, eedi2 is mainly used in anti-aliasing scripts nowadays so it's probably same to remove it also.
LigH
29th April 2017, 15:51
This is still a big mess. The only helpful post in this thread is the one from nHope (https://forum.doom9.org/showthread.php?p=1805360#post1805360) where he clearly states the version numbers and download links.
The date/time stamp of a zip archive doesn't tell me anything about the DLL versions in that archive. It's useless.
So, dear plugin package makers, please stop it.
I'm sorry I did not copy a similarly verbose list from the German doom9/Gleitz board over here... :o
But you are right, my archive was not meant to persist eternally, anyway. It may be better to deposit separate archives for each used plugin in this directory instead. Including a link list. But rather in a Wiki kind of site with user management.
hello_hello
29th April 2017, 15:52
This is still a big mess. The only helpful post in this thread is the one from nHope (https://forum.doom9.org/showthread.php?p=1805360#post1805360) where he clearly states the version numbers and download links.
The date/time stamp of a zip archive doesn't tell me anything about the DLL versions in that archive. It's useless.
So, dear plugin package makers, please stop it.
You do realise nhope's helpful post will become less helpful if the version numbers become outdated? The links might remain fine for a while, but they'll appear to point to outdated versions unless he keeps editing his helpful post. Entropy applies to everything.
Not that you need to know the version numbers in advance as long as a plugin pack is kept up to date. One link, everything in a single place, but...
If you took a minute to download the zip file and look inside, all your questions regarding version numbers would be answered. Except for a few instances where I added a version number or "x64' to a file name because it wasn't named that way originally, they're untouched from the files you'd download individually. Here's the contents of the zip file, but next time I'll post a screen shot of the contents too.
https://s30.postimg.org/gn04f5iyp/QTGMC.gif
I even specified it contains all the same plugin versions as those listed in nhope's post and linked to it, so how you can't work out the version numbers from that.....
I said in my opening post I should've also included a text file containing a collection of links. I probably will next time.
If you want to chase a bunch of potentially outdated links to conflicting versions and different forks of plugins yourself, feel free, but my recent "pack" has already been downloaded 39 times in this short time (according to the download count on my VideoHelp Page) so I guess some users appreciate the convenience.
hello_hello
29th April 2017, 16:04
I never said it creates confusion, I said it creates more problems than solutions. Case in point, the plugin packs for for the original QTGMC, initially it was a good idea and convenient for the users but over time some of the plugins in the plugin pack became outdated and then it got to point where the plugins where no longer compatible with the latest AviSynth due to API changes. There's a handful of examples in the original QTGMC thread.
Semantics. Finding the latest and greatest and recommended plugins has always been a chore, and really hard for new QTGMC users.
The only problem with the original QTGMC plugin pack was it wasn't kept updated. Nothing else.
Multiple outdated links? You do realize that 9 of the plugins are hosted on GitHub, I don't see those becoming outdated anytime soon. The rest of the plugins are either in Groucho's Avisynth stuff thread (https://forum.doom9.org/showthread.php?t=173259) (which he keeps up to date) or in the AviSynth wiki which I also try to keep up to date, I even added archive.org links for longevity.
The links all might be on the same site currently, but that's this week. I'll include links in the next plugins pack with a big disclaimer the user should check for updated versions, and a disclaimer the provided links could potentially be outdated, plus an additional link pointing to the post containing the official links, when there is one, with a second disclaimer stating it might be outdated too. Storm in a teacup dissipated.
Yes a plugin pack is convenient but unless you commit to updating the package every time a plugin gets updated, it will do more harm than good.
Ignoring nhope's post containing a collection of links today, do you think the past system of providing plugin names and minimum version numbers was particularly less confusing?
The safest thing to do is just post a link to the GitHub release page, discussion thread or a wiki page.
The easiest thing is an up to date plugin pack, but when there is a better system in place rather than a theoretical one, I won't need to create a plugin pack.
Groucho2004
29th April 2017, 16:16
But rather in a Wiki kind of site with user management.Exactly.
Reel.Deel
29th April 2017, 16:18
The easiest thing is an up to date plugin pack.
Might be the easiest but not the safest. Anyways, whatever, you do what you do.
Groucho2004
29th April 2017, 16:26
Although, eedi2 is mainly used in anti-aliasing scripts nowadays so it's probably same to remove it also.I believe there are still folks who like to use it for upscaling.
real.finder
29th April 2017, 16:31
the better thing I can see for this is update the wiki http://avisynth.nl/index.php/QTGMC
it will make everyone happy, hello_hello too, he can update the Plugins Package there
Groucho2004
29th April 2017, 16:41
the better thing I can see for this is update the wiki http://avisynth.nl/index.php/QTGMC
it will make everyone happy, hello_hello too, he can update the Plugins Package therePlugin packages will be strictly forbidden on the Wiki. :p
real.finder
29th April 2017, 16:44
Plugin packages will be strictly forbidden on the Wiki. :p
lol, but it's there from age http://avisynth.nl/index.php/QTGMC#Plugin_packages
hello_hello
29th April 2017, 17:19
So there's less complaints next time I try to be helpful, as well as including a list of plugins in any plugin pack I might create in the future (it's not included this time), I'll also supply a list as a separate text file (containing the plugin versions and their individual download links). That way, the text file can be downloaded to check version numbers without having to download the zip file. There'll be a separate screenshot of the zip file contents too, and both the text list of plugins and the files shown in the screenshot will be in alphabetical order... so nobody can complain because they're not.
Here's the missing text file and screen shot from my previous plugin pack. And of course, another shameless promotion of the plugin pack itself. ;)
https://s30.postimg.org/gn04f5iyp/QTGMC.gif
QTGMC 3.357s Plugin Links 2017-04-29.txt (https://files.videohelp.com/u/210984/QTGMC%203.357s%20Plugin%20Links%202017-04-29.txt) (mostly taken from nhope's list)
QTGMC 3.357s & Plugins 2017-04-29.zip (https://files.videohelp.com/u/210984/QTGMC%203.357s%20_%20Plugins%202017-04-29.zip) (20.4MB)
Edit: Newer plugin pack here: https://forum.doom9.org/showthread.php?p=1805941#post1805941
Reel.Deel
29th April 2017, 18:00
the better thing I can see for this is update the wiki http://avisynth.nl/index.php/QTGMC
Work in progress: http://avisynth.nl/index.php/QTGMC#Requirements
Plugin packages will be strictly forbidden on the Wiki. :p
:D
nhope
29th April 2017, 18:45
Work in progress: http://avisynth.nl/index.php/QTGMC#Requirements
:thanks: Much better!
Sharc
29th April 2017, 19:14
+1
Thanks!
real.finder
29th April 2017, 21:06
added wiki page and some note to OP
hello_hello
30th April 2017, 02:40
Reel.Deel,
Either I'm missing the obvious, or you forgot to include the SMDegrain and AnimeIVTC scripts in the list of requirements.
nnedi and nnedi2 are still optional plugins too. It might make it more confusing for newbies if they're not all listed.
Nice work though. Thank you.
PS. Mind you my plugin collection has been downloaded 70 times so far, and all I did was link to it in a couple of forum posts yesterday, so I'm sure a link to a plugin pack on the wiki page would be appreciated by many. ;)
hello_hello
30th April 2017, 09:04
real.finder,
Would it be better to copy the stuff from the SMDegrain and AnimeIVTC scripts so they're not actually required for QTGMC to work, or is that not practical?
real.finder
30th April 2017, 11:03
real.finder,
Would it be better to copy the stuff from the SMDegrain and AnimeIVTC scripts so they're not actually required for QTGMC to work, or is that not practical?
the problem is when you update shared function in one you have to update it in all scripts
what about make another .avsi script for these shared functions?
for me, I prefer situation as it now
Groucho2004
30th April 2017, 11:20
Mind you my plugin collection has been downloaded 70 times so farThis is the third time you've mentioned your download stats. Well done, I'm sure it's deeply satisfying.
Of course most users will go for the single download link instead of a bunch of links to separate plugins. They simply assume that the person who created the archive knows what he/she is doing. That however doesn't mean that it's a good idea.
hello_hello
30th April 2017, 21:43
This is the third time you've mentioned your download stats. Well done, I'm sure it's deeply satisfying.
73 times as of this post. Satisfaction has nothing to do with it. If it'd only been downloaded twice I'd probably be saying so and admitting maybe few users want plugin packs.
Of course most users will go for the single download link instead of a bunch of links to separate plugins. They simply assume that the person who created the archive knows what he/she is doing. That however doesn't mean that it's a good idea.
I'm sure we're even with the mentioning thing. In fact you're probably ahead. You've mentioned plugin packs are not a good idea a number of times without offering a convincing reason, and despite the fact you're admitting most users would prefer a single download. If a plugin pack is kept up to date and a list of it's contents provided, what's the problem exactly?
Groucho2004
30th April 2017, 23:08
If a plugin pack is kept up to date and a list of it's contents provided, what's the problem exactly?I'll give you just 3 reasons for now:
1. Every time a single plugin is updated one has to download the whole package containing 20+ files. That seems silly and a waste of bandwidth to me.
2. Many users only need the 3 or 4 core plugins.
3. I'd rather download the plugins from the author's github pages or from links provided on the Avisynth Wiki than trusting some random guy who zipped a bunch of files together.
Reel.Deel
1st May 2017, 00:04
Reel.Deel,
Either I'm missing the obvious, or you forgot to include the SMDegrain and AnimeIVTC scripts in the list of requirements.
I didn't forget, I said it was a WIP.
If a plugin pack is kept up to date and a list of it's contents provided, what's the problem exactly?
IF is the unknown here. I'm sure you intend to keep it up to date but will that be true a year from now. All of the plugin packages (QTGMC, MCTD, LFSMod, Fred's film script, and many more) have started out this way but as time goes on, the people responsible simply forget or loose interest. All that is left is outdated plugin packages that users eventually find and install. Finally, the user and/or other forum members are left to find the problem why the script/plugin won't work. I've seen this happen countless times, even helped out a few times here and there.
Now that Reel.Deel has made such an excellent and complete job of the QTGMC Requirements documentation (http://avisynth.nl/index.php/QTGMC#Requirements), it would probably be better if the references to my list (https://forum.doom9.org/showthread.php?p=1805360#post1805360) were taken out of the OP, as I'm not intending to keep the list updated. Or at least refer to it as "one moment in time".
hello_hello
1st May 2017, 10:19
I'll give you just 3 reasons for now:
1. Every time a single plugin is updated one has to download the whole package containing 20+ files. That seems silly and a waste of bandwidth to me.
2. Many users only need the 3 or 4 core plugins.
3. I'd rather download the plugins from the author's github pages or from links provided on the Avisynth Wiki than trusting some random guy who zipped a bunch of files together.
I see three preferences, not three reasons for it being a bad idea. Wouldn't some random guy be zipping a bunch of files together downloaded from the same locations?
I wonder how much bandwidth & time I've wasted having to click through links to plugins to check I have the latest versions and even downloaded them multiple times when I wasn't sure which version I was using?
The plugin pack could be split between core and optional plugins, although I'd rather have all the plugins and not encounter an error down the road, then have to google an obscure error message to find out which optional plugin I need.
Plugin packs can ensure compatibility, so everything works correctly together barring some random unforeseen bug. The last time it was that easy was when the original plugin pack was up to date.
Many GUIs don't make it optional. You download MeGUI or StaxRip or Hybrid etc and you get everything required by the GUI, and even foobar2000 has an encoder pack so you don't have to download them individually, but when it's a script apparently it's a bad idea.....
hello_hello
1st May 2017, 10:25
IF is the unknown here. I'm sure you intend to keep it up to date but will that be true a year from now. All of the plugin packages (QTGMC, MCTD, LFSMod, Fred's film script, and many more) have started out this way but as time goes on, the people responsible simply forget or loose interest. All that is left is outdated plugin packages that users eventually find and install. Finally, the user and/or other forum members are left to find the problem why the script/plugin won't work. I've seen this happen countless times, even helped out a few times here and there.
Every single "if" you've raised also applies equally to links in forum posts and wikis, most of which would be outdated in the case of LFSMod or Fred's film script etc, encouraging users to download old versions and still requiring someone to help sort out problems. There's nothing preventing the zip file containing links to plugins so users can check for updated versions, until the links themselves become outdated.
At least when there's a date on the zip file you have an idea how old it is. Will there be some indication of when you last updated the wiki after you lose interest?
78 downloads to date: QTGMC 3.357s & Plugins 2017-04-29.zip (https://files.videohelp.com/u/210984/QTGMC%203.357s%20_%20Plugins%202017-04-29.zip) (20.4MB)
18 downloads to date: QTGMC 3.357s Plugin Links 2017-04-29.txt (https://files.videohelp.com/u/210984/QTGMC%203.357s%20Plugin%20Links%202017-04-29.txt) (3kB)
I guess those numbers indicate it's more about convenience for many people and not so much about bandwidth.
Edit: Newer plugin pack here: https://forum.doom9.org/showthread.php?p=1805941#post1805941
Groucho2004
1st May 2017, 10:42
@hello_hello
You're right. Who needs a well organised Wiki page with all the necessary information and download links for dependencies - Ridiculous.
Please keep posting your plugin packs. I'm sure others with a similar mindset will follow and post their plugin packs to make sure there will plenty of choice scattered throughout forum threads.
hello_hello
1st May 2017, 11:03
@hello_hello
You're right. Who needs a well organised Wiki page with all the necessary information and download links for dependencies - Ridiculous.
Please keep posting your plugin packs. I'm sure others with a similar mindset will follow and post their plugin packs to make sure there will plenty of choice scattered throughout forum threads.
Not a single reply to any of the points I made. Do we not have links to flavour after flavour of plugins scattered throughout the forum? Have I imagined that?
If we had a well organised wiki there wouldn't be such a need for a plugin pack, but we didn't when I put it together and the wiki is still not complete. The plugin pack is. The wiki was created/updated as a counter argument to a plugin pack, otherwise it probably still wouldn't exist.
And there's no reason why a wiki couldn't contain a link to a plugin pack just as it can contain links to the individual plugins. If the plugin pack isn't kept up do date, the wiki maintainer can remove the link.... unless wikis are immune to entropy as long as they don't link to plugin packs. It's not an either/or situation.
You even said yourself, if there was a link to a plugin pack it'd be popular, but while it's fine for GUI's to include their required plugins and encoders etc, Groucho2004 has drawn the line when it comes to scripts. If you have your way, an official plugin pack won't end up as a link on the wiki, so yes, there no doubt will be links to various plugin packs scattered throughout the forum as a result. Well done.
ChaosKing
1st May 2017, 11:53
The plugin pack is a good idea. Especially for new users or for those who don't keep all plugins always up to date.
And 20 mb is very small nowadays ;)
real.finder
1st May 2017, 12:45
Now that Reel.Deel has made such an excellent and complete job of the QTGMC Requirements documentation (http://avisynth.nl/index.php/QTGMC#Requirements), it would probably be better if the references to my list (https://forum.doom9.org/showthread.php?p=1805360#post1805360) were taken out of the OP, as I'm not intending to keep the list updated. Or at least refer to it as "one moment in time".
will keep only the wiki then
78 downloads to date: QTGMC 3.357s & Plugins 2017-04-29.zip (https://files.videohelp.com/u/210984/QTGMC%203.357s%20_%20Plugins%202017-04-29.zip) (20.4MB)
Any downside to the updated yadifmod2 here?
https://forum.doom9.org/showpost.php?p=1798117&postcount=36
Or is it just overlooked?
Groucho2004
1st May 2017, 14:03
Not a single reply to any of the points I made.I'm just tired of arguing with you. You take statements out of context and you regularly post about things of which you have almost no knowledge. Do I really have to remind you of how you embarrassed yourself in this thread (https://forum.videohelp.com/threads/382601-CropResize-Script) on the VideoHelp forum?
hello_hello
1st May 2017, 14:26
I'm just tired of arguing with you. You take statements out of context and you regularly post about things of which you have almost no knowledge. Do I really have to remind you of how you embarrassed yourself in this thread (https://forum.videohelp.com/threads/382601-CropResize-Script) on the VideoHelp forum?
Translation: Groucho2004's argument has fallen over so now he's resorting to insults.
This'll be good. Which statements did I take out of context? That's just a flat out lie.
Aside from your post once again not addressing the topic at all, please explain how I embarrassed myself. I await your interpretation with interest. Where was I posting about things of which I have no knowledge (another lie). Certinaly not the thread you linked to. I only see someone asking for help with a script. What I learned there helped me create an even better cropping and resizing function (https://forum.videohelp.com/threads/382888-CropResizeBorder-script). How embarrassment....
hello_hello
1st May 2017, 18:18
Any downside to the updated yadifmod2 here?
https://forum.doom9.org/showpost.php?p=1798117&postcount=36
Or is it just overlooked?
I don't know.
real.finder seems to have posted a confusing plugin pack. :)
The one I included in my recent plugin collection is the same version linked to in the new wiki.
https://github.com/chikuzen/yadifmod2/releases
I'll confess to being confused as the version in my plugin collection appears to be v0.0.4 and the dll is dated 2016-07-05, whereas the version in the real.finder chikuzen plugins pack appears to be v0.0.2, but the dll is dated 2017-02-21. Maybe it was built at a later date and real.finder was unaware there was a newer version? No doubt he can enlighten us.
The same applies to TCannyMod and CombMask
https://github.com/chikuzen/TCannyMod/releases
https://github.com/chikuzen/CombMask/releases
Each dll is dated August 2016 also, so older than the dlls in the "chikuzen plugins pack" and different sizes, but I don't know what versions the "chikuzen plugins pack" contains.
real.finder
1st May 2017, 19:54
I don't know.
real.finder seems to have posted a confusing plugin pack. :)
The one I included in my recent plugin collection is the same version linked to in the new wiki.
https://github.com/chikuzen/yadifmod2/releases
I'll confess to being confused as the version in my plugin collection appears to be v0.0.4 and the dll is dated 2016-07-05, whereas the version in the real.finder chikuzen plugins pack appears to be v0.0.2, but the dll is dated 2017-02-21. Maybe it was built at a later date and real.finder was unaware there was a newer version? No doubt he can enlighten us.
The same applies to TCannyMod and CombMask
https://github.com/chikuzen/TCannyMod/releases
https://github.com/chikuzen/CombMask/releases
Each dll is dated August 2016 also, so older than the dlls in the "chikuzen plugins pack" and different sizes, but I don't know what versions the "chikuzen plugins pack" contains.
it should 0.2.0
https://github.com/chikuzen/yadifmod2/blob/7156fbe5b5327ee61d7d8abb419f277bc1a4edf4/avisynth/readme.md#changelog
chikuzen may made some typo
and it's not "plugins pack" I made (build from the source code in github) them for some reasons mentioned in the post
hello_hello
1st May 2017, 20:40
The "plugins pack" comment was just a joke. ;)
So to be clear... the version currently linked to (https://github.com/chikuzen/yadifmod2/releases) on the new QTGMC wiki and displaying on that page as the latest version is actually an older version?
yadifmod2.dll in your rar file shows as being version 0.0.2 but you're saying it's actually version 0.2?
If the answer to both question is yes, I guess the wiki (and the plugin pack) need updating.
PS What about TCannyMod and CombMask? Can you confirm which versions they are in your rar file?
Thanks.
GMJCZP
2nd May 2017, 06:28
Finally the wiki page is being updated. Thank you.
But follow the inconsistency inside the script that says in its line 11 "Full documentation is in the 'QTGMC' html file that comes with this script" because in the file "QTGMC 3.357s.zip" is only the script. Either delete this line or add the html file.
hello_hello
2nd May 2017, 07:17
The eedi2 and eeid3 doom9 and download links in the wiki are also incorrect. They link to masktools2 and mvtools2 respectively. There's no links for nnedi or nnedi2.
real.finder
2nd May 2017, 18:23
The "plugins pack" comment was just a joke. ;)
So to be clear... the version currently linked to (https://github.com/chikuzen/yadifmod2/releases) on the new QTGMC wiki and displaying on that page as the latest version is actually an older version?
yadifmod2.dll in your rar file shows as being version 0.0.2 but you're saying it's actually version 0.2?
If the answer to both question is yes, I guess the wiki (and the plugin pack) need updating.
PS What about TCannyMod and CombMask? Can you confirm which versions they are in your rar file?
Thanks.
the one in https://github.com/chikuzen/yadifmod2/releases (dll) is old
the source in https://github.com/chikuzen/yadifmod2 is the last one and it's what I used in my build
TCannyMod and CombMask is same as the last one in github but they work with xp
edit: CombMask too, is same story as yadifmod2, the one I built was 1.1.1
real.finder
2nd May 2017, 18:24
Finally the wiki page is being updated. Thank you.
But follow the inconsistency inside the script that says in its line 11 "Full documentation is in the 'QTGMC' html file that comes with this script" because in the file "QTGMC 3.357s.zip" is only the script. Either delete this line or add the html file.
if someone update the html I will add it, else I will remove that line in the next update, and QTGMC 3.33 by vit say so but there are no html for 3.33 too
hello_hello
2nd May 2017, 19:15
the one in https://github.com/chikuzen/yadifmod2/releases (dll) is old
the source in https://github.com/chikuzen/yadifmod2 is the last one and it's what I used in my build
TCannyMod and CombMask is same as the last one in github but they work with xp
edit: CombMask too, is same story as yadifmod2, the one I built was 1.1.1
Thanks for the info.
hello_hello
2nd May 2017, 19:39
Edit: A newer version of the plugin pack can be found here: https://forum.doom9.org/showthread.php?p=1806162#post1806162
An updated version of the plugin pack. If you downloaded the recent one labelled "QTGMC 3.357s & Plugins 2017-04-29.zip" there's no need to download the new one. Of course you can if you wish to, or just grab the two updated plugins:
The only changes from the previous pack are:
yadifmod2 has been updated from version 0.0.4-1 to version 0.2 (https://forum.doom9.org/showpost.php?p=1798117&postcount=36) built by real.finder (a new readme is included in the new plugin pack). real.finder has stated it is indeed version 0.2, even though if you check the dll properties it shows version 0.0.2.
Currently the wiki still links to the older version.
eeid2 has been changed to EEDI2_092_ICL11 (https://forum.doom9.org/showthread.php?t=173259) as it's the same version linked to in the new QTGMC wiki, and because it'll probably annoy Groucho. :) I don't think it matters which version you use though.
https://s28.postimg.org/umm50rqml/QTGMC_3.357s_Plugins_2017-05-02.gif
QTGMC 3.357s Plugin Links 2017-05-02.txt (https://files.videohelp.com/u/210984/QTGMC%203.357s%20Plugin%20Links%202017-05-02.txt) (3kB)
QTGMC 3.357s & Plugins 2017-05-02.zip (https://files.videohelp.com/u/210984/QTGMC%203.357s%20_%20Plugins%202017-05-02.zip) (20.4MB)
Once again QTGMC, SMDegrain and AnimeTIVTC come with their respective help files, all of which are a little out of date. The QTGMC help file hasn't been updated since version 3.32.
Groucho2004
2nd May 2017, 20:54
eeid2 has been changed to EEDI2_092_ICL11 (https://forum.doom9.org/showthread.php?t=173259) as it's the same version linked to in the new QTGMC wiki
...
I don't think it matters which version you use though.
Some may have a different opinion on whether it matters or not. Some info here (https://forum.doom9.org/showthread.php?t=173238).
it'll probably annoy Groucho. :)Not at all, sorry to disappoint you. :sly:
hello_hello
2nd May 2017, 22:14
Cool. I wasn't sure what the difference was because you didn't elaborate when someone asked the other day. Now I know. Cheers.
Edit 1: Although now I think about it, I don't think the other version in question was a tritical dll either. It was an ICL build too.
I'm sure there was a link to it on the eedi2 page (http://avisynth.nl/index.php/EEDI2) a few days ago, but either I'm remembering wrong, or it's been removed. Either way, the version in question was this ICL build:
http://web.archive.org/web/20160304124723/https://filetea.me/t1st3BqcWqxQnCaa4Dqu1pe4g/dl
Edit 2: Yes, it looks like the eedi2 page has been edited (last modified 29 April 2017, at 17:03) because down the bottom it still refers to EEDI2 0.9.2 built with ICL13 (http://avisynth.nl/index.php/EEDI2#External_Links) but the doom9 link leads to your doom9 thread. Whoever fiddled with the eedi2 Avisynth page probably should fix that, for the sake of accuracy.
I wonder why the link to the other ICL build was removed completely as though it never existed.That's not normal practice is it? There was nothing wrong with it, as far as I know.
Groucho2004
3rd May 2017, 15:38
I wonder why the link to the other ICL build was removed completely as though it never existed.That's not normal practice is it? There was nothing wrong with it, as far as I know.I replaced the ICL13 32 bit build with a ICL11 build some time ago simply because it was faster.
I created and verified an account and tried several times to update http://avisynth.nl/index.php/QTGMC with real.finder's latest SMDegrain (https://forum.doom9.org/showthread.php?p=1806143#post1806143) but it won't let me. I'm sure my captcha entries are right. Any ideas what I might be doing wrong? [Edit: Never mind, I managed it by changing browser from FF to Chrome]
p.s. hello_hello, your plugin pack's now out of date ;) Don't forget KNLmeansCL (https://github.com/Khanattila/KNLMeansCL/releases/tag/v1.1.0) too.
hello_hello
5th May 2017, 12:00
p.s. hello_hello, your plugin pack's now out of date ;) Don't forget KNLmeansCL (https://github.com/Khanattila/KNLMeansCL/releases/tag/v1.1.0) too.
Damn stupid plugin packs. ;)
I had made a note of them, but I wasn't planning on an update straight away. I thought maybe once a month or something like that, unless a plugin was updated to fix a serious problem. I figure I can do it 12 times per year without becoming excessively bored.
I also thought, if I'm going to keep doing it regularly, I probably should start a thread just for the plugin pack so as not to fill this one with obsolete links and to make it easy to see when it's been updated. Then if someone sees a plugin update I missed, they can post there to let me know, or upload a new pack rather than wait for me, and it'll be easy for someone else to take over if I stop doing it because my real life finally begins.
Along those lines I thought I might ask Baldrick to add a plugin pack link to the VideoHelp software section, given the QTGMC wiki has become a plugin pack free zone, assuming the plugin/script creators would have no objections.
Anyway, seeing as it's early in the month, here's a freshly brewed plugin pack.
Edit 2017-05-14: For anyone downloading the plugin pack below, there's newer versions of MVTools2 and NNEDI3 you may wish to download individually.
https://github.com/pinterf/mvtools/releases
https://github.com/jpsdr/NNEDI3/releases
QTGMC 3.357s Plugin Links 2017-05-05.txt (https://files.videohelp.com/u/210984/QTGMC%203.357s%20Plugin%20Links%202017-05-05.txt)
QTGMC 3.357s & Plugins 2017-05-05.zip (https://files.videohelp.com/u/210984/QTGMC%203.357s%20_%20Plugins%202017-05-05.zip)
https://s29.postimg.org/qxwmn49x3/QTGMC_3.357s_Plugins_2017-05-05.gif
GMJCZP
5th May 2017, 17:03
if someone update the html I will add it, else I will remove that line in the next update, and QTGMC 3.33 by vit say so but there are no html for 3.33 too
Thanks for your efforts. The idea is to put order in the house.
Spring cleaning!
http://www.smilies.4-user.de/include/Haushalt/besen_smilie_163.gif
Selur
17th May 2017, 14:20
btw. is it just me or doesn't 4:2:2 support work with current QTGMC when using Avisynth 2.6 MT ? (script simple crashes)
More details please... 4:2:2 means YUY2 or YV16? Which plugins are loaded (e.g. PlanarTools or not)? Any error message, e.g. in AVSMeter?
Selur
17th May 2017, 14:36
Here's the script I use:
SetMemoryMax(3000)
SetMTMode(5,4) # change MT mode
LoadPlugin("G:\Hybrid\AVISYN~1\LoadDll.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\LSMASHSource.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\AddGrainC.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\dfttest.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\EEDI2.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\eedi3.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\FFT3DFilter.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\mt_masktools-26.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\mvtools2.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\nnedi.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\nnedi2.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\SSE2Tools.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\TDeint.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\VerticalCleanerSSE2.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\PlanarTools.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\nnedi3.dll")
LoadPlugin("G:\Hybrid\AVISYN~1\RgTools.dll")
LoadCPlugin("G:\Hybrid\AVISYN~1\yadif.dll")
LoadDll("G:\Hybrid\AVISYN~1\fftw3.dll")
LoadDll("G:\Hybrid\AVISYN~1\LIBFFT~1.DLL")
Import("G:\Hybrid\avisynthPlugins\QTGMC.avsi")
Import("G:\Hybrid\avisynthPlugins\SMDegrain.avsi")
Import("G:\Hybrid\avisynthPlugins\AnimeIVTC.avsi")
# loading source: H:\Agnet IYonsen - Icebreaker [Eurovision 2016.2nd semi_final].h264
# input luminance scale tv
LWLibavVideoSource("H:\Agnet IYonsen - Icebreaker [Eurovision 2016.2nd semi_final].h264",cache=false,stacked=false,format="YUV422P8")
# current resolution: 1920x1080
# deinterlacing
ConvertToYUY2(interlaced=true)
SetMTMode(2) # change MT mode
AssumeTFF()
QTGMC(Preset="Fast", ediThreads=2)
SelectEven()
# filtering
return last
AVSMeter, avsViewer, VirtualDub all simply crash/close.
Only output AVSMeter shows is:
AVSMeter 2.5.5 (x86) - Copyright (c) 2012-2017, Groucho2004
AviSynth 2.60, build:Feb 20 2015 [03:16:45] (2.6.0.5)
Loading script...
All plugins and scripts have been updated. (just rechecked them a few minutes ago)
Tried whether it would make a difference whether I used stacked = true or stacked = false, it doesn't.
Memory consumption is only ~ 260MB before the crash.
When using ConvertToYv12 instead of ConvertToYUY2 the script works fine.
---
Okay, when I remove all MT related calls, I get:
Exception 0xC0000005 [STATUS_ACCESS_VIOLATION]
Module: G:\Hybrid\AVISYN~1\nnedi3.dll
Address: 0x57E073CE
from AVSMeter
tried Release_XP, Release_W7 of nnedi3
Cu Selur
Selur
17th May 2017, 14:44
using http://web.archive.org/web/20121118091447/http://bengal.missouri.edu/~kes25c/nnedi3.zip the script doesn't crash, using any of the newer nnedi3 builds from the packages&co from this thread causes a crash for me.
real.finder
18th May 2017, 06:49
using http://web.archive.org/web/20121118091447/http://bengal.missouri.edu/~kes25c/nnedi3.zip the script doesn't crash, using any of the newer nnedi3 builds from the packages&co from this thread causes a crash for me.
then you should post the problem in nnedi3 for avs 2.6 (https://forum.doom9.org/showthread.php?t=170083) too
anyway, I just try with
ColorBars(width=1920, height=1080, pixel_type="yuy2")
AssumeTFF()
QTGMC(Preset="Fast", ediThreads=2)
SelectEven()
and it work fine
magiblot
18th May 2017, 11:24
Status access violation in NNEDI3 was fixed in a new version released last week:
https://github.com/jpsdr/NNEDI3/releases/download/0.9.4.41/NNEDI3_v0_9_4_41.7z
real.finder experiences no crashes because he already has it updated.
tsftd
11th June 2017, 03:52
I'm getting an error, that it can't find Dither_Luna_Rebuild (line 488). From what I can tell, it appears to be a part of masktools2, but I've tried both the pack version from above, and the latest version from the project page.
commenting out the line results in QTGMC working, so it's not exactly critical to fix it, but any ideas?
blaze077
11th June 2017, 04:14
You need SMDegrain (http://avisynth.nl/index.php/SMDegrain).
PirateIce
11th June 2017, 04:18
I just checked and found the function "dither_luma_rebuild" is inside Smdegrain (latest https://pastebin.com/xMsxYztR) actually. Although I agree you need dither tools as well (if using 16 bit lsb hack only I think).
tsftd
11th June 2017, 11:12
Ah ok, I had it in the folder but I guess that I need to explicitly import it. I'll give it a shot once the current encodes finish running.
Much thanks!
Trademark
26th June 2017, 17:49
I'm trying to use this QTGMC script with some other filters, but I keep getting the error message: "TDeint: number of frames in edeint clip doesn't match that of the input clip!"
Here is my script:
LoadPlugin("C:\Program Files (x86)\Avisynth\Plugins\DGAVCDecode.dll")
AVCSource("C:\Users\Owen\Desktop\test.dga")
A2 = last
A2 = A2.QTGMC(Preset="slower")
TDeint(order=1, field=1, edeint=A2,emask=TMM(mode=0, order=1, field=1),slow=2,chroma=true,MI=80,full=false,cthresh=9)
Any ideas as to why this is happening? I could use select even for qtgmc, but I want it to double my clip's framerate to produce a 60p output.
LigH
26th June 2017, 18:02
QTGMC bobs per default (means, interpolates both fields into each a frame, you get twice the number).
BTW, why do you use the output of the superior deinterlacer (QTGMC) only as auxiliary clip for the simpler one (TDeint)? Why not QTGMC only?
And then this quite obsolete DGAVCDec. By far not recommended anymore.
Trademark
26th June 2017, 18:18
DGAVDecode works for my .ts files, no complaints there.
I have interlaced content from cpatured footage of a playstation 2 game. Using qtgmc(slower) on its own yields good, but not ideal results. certain graphical elements are smoothed over with just qtgmc.
I was given this custom script from another member some time ago:
AssumeTFF()
A2 = last
A2 = A2.QTGMC(Preset="slower").SelectEven()
TDeint(order=1, field=1, edeint=A2,emask=TMM(mode=0, order=1, field=1),slow=2,chroma=true,MI=80,full=false,cthresh=9)
I'm not exactly sure what the script does in full, but it seems as though qtgmc handles most of the work, while the graphical elements are sharpened via tdeint and others. However, that script only outputed my content at 30fps. Now since youtube has 60fps uploads, I would like to use the same workflow, only output at 60fps now instead of 30fps.
Boulder
26th June 2017, 18:30
Have you tried deinterlacing (perhaps bobbing) with NNEDI3 or EEDI3. Or use either of those as the clip to feed to TDeint? I'd also say that QTGMC for a helper clip is a bit over the top :)
Trademark
26th June 2017, 19:19
Have you tried deinterlacing (perhaps bobbing) with NNEDI3 or EEDI3. Or use either of those as the clip to feed to TDeint? I'd also say that QTGMC for a helper clip is a bit over the top :)
I haven't tried that option yet, no. I will give it a try shortly. I do realize it might seem over the top, but I wanted to give the videos the highest perceived quality they could get. I'm OCD about stuff like that.
RTFM about the mode parameter in both TDeint and TMM.
I did read on their wikis talking about modes, and I did previously change the mode of tmm to 1, then added mode 1 to tdeint, but I did those separately. Now I've gone back and added mode 1 both, and that seems to do the trick. Thanks.
mark0077
28th June 2017, 19:27
Hi guys,
Using QTGMC in a very simple avisynth script to deinterlace my wedding DVD and the quality is coming out really good. Saving to prores format using ffmpeg. Whats concerning me is that seemingly randomly certain parts of the resulting content has a shimmering / flickering vertical bar on the right hand side of the clip.
When I restart the script and process through the entire clip again, the resulting bar may appear at completely different parts of the clip. I have taken QTGMC out of the mix and just let lav video and yadif do the deinterlacing and this bar is not seen, but lav video + QTGMC it is seen. I'm using the latest versions of all of the dlls as of 3 days ago.
Does anyone know what may cause this to happen. I would love to get a fully clean output file using QTGMC as the quality is superior to yadif.
Heres the script I'm using.
SetMTMode(5,15)
DirectShowSource("C:\Users\Mark\Desktop\Wed\Tape1.avi", audio=true)
SetMtMode(2)
AssumeBFF()
QTGMC(Preset="Slower",SourceMatch=3,Lossless=2,EdiThreads=1)
Distributor()
Lanczos4Resize(1024,576)
Heres the bat script I'm using to run it
C:\Users\Mark\Desktop\Wed\ffmpeg.exe -i "C:\Users\Mark\Desktop\Wed\go1.avs" -c:v prores_ks -profile:v 3 -qscale:v 9 -pix_fmt yuv422p10le -c:a pcm_s16le "C:\Users\Mark\Desktop\Wed\tape1_progressive.mov"
Boulder
28th June 2017, 19:35
Have you tried running without using multithreading?
mark0077
28th June 2017, 19:45
Have you tried running without using multithreading?
No I just wasn't sure of the many settings / things to try, which is worth trying. The annoying this, sometimes it might only appear 20 minutes into the clip so I find myself rendering out the entire file ~60 minutes, and quickly scanning through it to see did it reoccur.
So do you just mean via not using SetMTMode at all?
Boulder
28th June 2017, 19:57
So do you just mean via not using SetMTMode at all?
Yes, that's what I mean. When I was an Avisynth user, I always split the QTGMC encode into multiple parts with Trim and encoded with multiple simultaneous ffmpeg calls. Crash-proof at least, and faster too.
mark0077
28th June 2017, 20:09
Great idea, thanks very much I'll try that!
real.finder
29th June 2017, 04:42
you can try MP_Pipeline, it's stable too, and ofc fast and mt base on every block
trevorjharris
1st July 2017, 09:57
There use to be a multithreaded plugin pack tuned for multithreading. Please can you tell me if an uptodate version is available or are the current plugins thread safe.
real.finder
1st July 2017, 10:33
There use to be a multithreaded plugin pack tuned for multithreading. Please can you tell me if an uptodate version is available or are the current plugins thread safe.
the updates one is safe too
Trademark
15th July 2017, 03:42
I've gotten a new capture card for my playstation 2 footage. I used to demux .ts files into separate audio and video streams, then load them into avisynth that way, then ran the qtgmc script as seen below without problem.
Now I'm using uncompressed .avi files, and am trying to use the same script:
AviSource("C:\Users\Owen\Desktop\2.avi")
Crop(0,6,0,0)
ConvertToYV12(interlaced=true)
ConvertAudioTo16Bit()
A2 = last
A2 = A2.QTGMC(Preset="slower")
TDeint(mode=1, order=1, field=1, edeint=A2, emask=TMM(mode=1, order=1, field=1),slow=2,chroma=false,MI=80,full=false,cthresh=9)
But the tdeint using qtgmc no longer works, and the footage remains interlaced. Using QTGMC slower by itself works just fine, but for some reason, I'm having a conflict between the new avi files, and this tdeint qtgmc script. Does anybody have any ideas? I can try to upload a short sample clip of the footage I'm working with if it helps.
LemMotlow
15th July 2017, 04:19
Never mind.
StainlessS
15th July 2017, 10:26
AviSource("C:\Users\Owen\Desktop\2.avi")
Crop(0,6,0,0)
ConvertToYV12(interlaced=true)
ConvertAudioTo16Bit()
A2 = last
A2 = A2.QTGMC(Preset="slower")
TDeint(mode=1, order=1, field=1, edeint=A2, emask=TMM(mode=1, order=1, field=1),slow=2,chroma=false,MI=80,full=false,cthresh=9)
Perhaps LemMotlow already posted on this, then changed his mind, so maybe I'm wrong too ???, but
We dont really like the crop, on interlaced should only be cropped vertical in multiples of 4 otherwise you are trashing the interlacing (whether colorspace is YV12 or anything else).
EDIT:
Oops, ignore above Too !!!, Interlaced non YV12 can of course be cropped in multiples of 2 guess thats why LM changed his mind,
guess we both got out of bed way too early :)
EDIT: However, result after cropping should be a multiple of 4 if later converting to YV12 with Interlaced=true, otherwise who knows what problems would occur.
Music Fan
15th July 2017, 11:46
Yes, and in my opinion, if your avi is in yuy2, keep it as is for de-interlacing and convert to YV12 after.
And having 2 A2 in your script is maybe problematic, I would try this ;
AviSource("C:\Users\Owen\Desktop\2.avi")
ConvertAudioTo16Bit()
Crop(0,6,0,-2)
A1 = last
A2 = A1.QTGMC(Preset="slower")
TDeint(mode=1, order=1, field=1, edeint=A2, emask=TMM(mode=1, order=1, field=1),slow=2,chroma=false,MI=80,full=false,cthresh=9)
ConvertToYV12()#not interlaced anymore after TDeint
But I'm afraid this way your video is first de-interlaced with the line A2 = A1.QTGMC(Preset="slower"), then TDeint actually gets 50p (or 60p), as if you had ;
AviSource("C:\Users\Owen\Desktop\2.avi")
ConvertAudioTo16Bit()
Crop(0,6,0,-2)
QTGMC(Preset="slower")
TDeint(mode=1, order=1, field=1, edeint=A2, emask=TMM(mode=1, order=1, field=1),slow=2,chroma=false,MI=80,full=false,cthresh=9)
ConvertToYV12()
This could work ;
AviSource("C:\Users\Owen\Desktop\2.avi")
ConvertAudioTo16Bit()
Crop(0,6,0,-2)
A1=QTGMC(Preset="slower")
TDeint(mode=1, order=1, field=1, edeint=A1, emask=TMM(mode=1, order=1, field=1),slow=2,chroma=false,MI=80,full=false,cthresh=9)
ConvertToYV12()
StainlessS
15th July 2017, 12:15
AviSource("C:\Users\Owen\Desktop\2.avi")
ConvertAudioTo16Bit()
Crop(0,6,0,-2) # <<<-------
A1 = last
A2 = A1.QTGMC(Preset="slower")
TDeint(mode=1, order=1, field=1, edeint=A2, emask=TMM(mode=1, order=1, field=1),slow=2,chroma=false,MI=80,full=false,cthresh=9)
ConvertToYV12(interlaced=true)
Small typo fix :)
Music Fan
15th July 2017, 12:30
Oops, thanks, edited !
Trademark
15th July 2017, 15:01
I had to put ConvertToYV12(interlaced=true) before the deinterlacing script because I was getting the error message: 'TemporalSoften: Scenechange not available on RGB32'
I also had to Crop only 6 pixels off the height of the video because the source footage is 486 pixels high, with black bars of 18 pixels on top and bottom. Cropping 6 of the black off the top made it so it's 480 pixels high, and a multiple of 4. If I crop more or less I get this: 'SeparateFields: YV12 height must be multiple of 4'
I'm afraid this doesn't work either.
A1=QTGMC(Preset="slower")
TDeint(mode=1, order=1, field=1, edeint=A1, emask=TMM(mode=1, order=1, field=1),slow=2,chroma=false,MI=80,full=false,cthresh=9)
ConvertToYV12()
Just to give some more context, this is where the script originally came from: https://forum.doom9.org/showthread.php?p=1636574#post1636574
Back then, we used it for the .ts files, and I wanted the deinterlacer to keep the same framerate. Nowdays, I'm doubling the framerate to 60progressive, hence I have the 1s for mode.
Here is the sample footage on google drive (500ish mb)
https://drive.google.com/file/d/0B1bAk43m1JhiTkFmRE5RUS10WUU/view?usp=sharing
Thanks for helping so far guys!
LemMotlow
15th July 2017, 18:27
Had to change my mind about my original post, because the colorspace and other specs of the original source weren't clear. I figured more info would be needed.
The latest QTGMC with updated plugins can use YUY2. But I seldom use it, as most other plugins still want YV12, but often YUY2 does look cleaner.
Trademark
15th July 2017, 18:35
AviSource("C:\Users\Owen\Desktop\2.avi")
Crop(0,6,0,0)
ConvertToYV12(interlaced=true)
ConvertAudioTo16Bit()
AssumeTFF()
A2 = last
A2 = A2.QTGMC(Preset="slower")
TDeint(mode=1, order=1, field=1, edeint=A2, emask=TMM(mode=1, order=1, field=1),slow=2,chroma=false,MI=80,full=false,cthresh=9)
So I just tried adding AssumeTFF() to my deinterlacing script, and I've tried keeping the modes on tdeint and tmm to 1 and -1, and both yield the same results. It seems as though the tdeint with gtgmc edeint is now working, but the source-filter might not be frame accurate? I get a resulting video that spasms around back and forth.
Edit: I can add a .selecteven() after qtgmc, and change modes of tdeint and tmm to 0, and I get a smooth 30fps, but for some reason it's not agreeing with the bobbing for 60fps.
LemMotlow
15th July 2017, 20:48
Your sample is UYVY (4:2:2), bottom field first, and has 19 pixels top and bottom, not 18. You can get rid of 6 surplus lines to make it 480 height and keep the borders looking fairly even vertically using this in UYVY:
Crop(0,2,0,-4)
Not sure what you're trying to do. What's TDeint for? Deinterlace twice and you've got 199.88fps and duplicate frames. The TDeint line doesn't make much sense (for example if you have "mode=1," then "field=1" does nothing). I think you must be trying to clean up the ghosting and think it's "combing", but it won't work.
Maybe tell us a little history of how this video was created, and possibly how it was borked.
For the linked sample, which is just straight deinterlace to 59.94fps, I used this:
Crop(0,2,0,-4)
ConvertToYV12(interlaced=true)
QTGMC(preset="very fast",border=true)
Trademark_2sample.mp4 (~13 mb): https://www.mediafire.com/?v6gz5y2cwmouonn
Trademark
15th July 2017, 21:17
Here's a little discussion that lead to the creation of that script a while back: https://forum.doom9.org/showthread.php?p=1636574#post1636574
The link directs to poisondeathray's post, for which I got the script from. Essentially, I found that QTGMC alone smoothed the text on the video too much, while his script keeps most of benefits of QTGMC, plus keeping the text sharp.
I've been using that script without the SelectEven() and putting mode=1on tdeint and tmm to get smooth and buttery 60fps progressive-scan videos, but that was for raw h264 streams demuxed from .ts files. Now I'm recording videos in uncompressed 8-bit yuv with .avi containers.
Thanks for clarifying that the video is bottom field first, and not top field first. I've changed my script accordingly:
AviSource("C:\Users\Owen\Desktop\2.avi", audio=false)
AssumeBFF()
Crop(0,2,0,-4)
ConvertToYV12(interlaced=true)
A2 = last
A2 = A2.QTGMC(Preset="slower")
TDeint(mode=1, order=0, field=0, edeint=A2, emask=TMM(mode=1, order=0, field=0),slow=2,chroma=false,MI=80,full=false,cthresh=9)
This seems to work now! However, if anybody has any suggestions for deinterlacing scripts that can yield even better visual results, I'm always interested.
mbcd
16th July 2017, 19:50
Tried version 3.57 some weeks ago, but recognizes many issues with it. So went back to 3.32 for a while.
Today I got still many issues with v3.57, mostly temporal problems.
I am using exact the same parameters as with 3.32, v3.32 still works without any problems since a very long time.
http://i63.tinypic.com/263eiyp.jpg
So it cant be my chain, its definitively version 3.57.
Downloaded the latest plugins-pack for 3.57 including the 2 updated plugins.
This are my settings, they work fine for 3.32 since many many months, source is still progressive.
QTGMC(Preset="Medium", EdiThreads=6, InputType=1, TR2=2, NoiseProcess=1, NoiseRestore=0.0, StabilizeNoise=true, DenoiseMC=true, Denoiser="dfttest", Sigma=0.5, Sharpness=2.0, SLMode=2, ForceTR=3, SourceMatch=3, MatchEnhance=0.75, FPSDivisor=1)
The whole movie look more like a bad norm-converted ... the problems are around everywhere, no special areas or scenes.
And NO, its not a ghostmovie ;-)
LigH
16th July 2017, 20:31
And NO, its not a ghostmovie ;-)
But can we be sure that it's not already norm-converted with blending in the "original" material?
We would need a scene from the original material for inspection.
I would recommend not to blame software before we are sure that nothing else is to be blamed.
mbcd
16th July 2017, 20:45
I dont have the source anymore, but I can take ANY source I want, because it is always persistant after I switch from 3.32 to 3.57, doesnt matter what I use as source.
I am for 101% sure that sources are progressive, also why are these problems gone if I switch the same source from 3.57 to 3.32 without changing parameters?
Is 3.32 with InputType=1 not also "progressive" ? Why this difference in output?
I think that my comment 100% prooves that there are some flaws in 3.57 while ALL is fine with 3.32.
Still wondering why I am the only one with that massive problems, so I think it might be my parameters, thats why I posted them too.
As none-native american sometimes its hard to understand what some parameters do.
poisondeathray
16th July 2017, 21:43
I can reproduce mbcd's "ghosting" on any random progressive source with 3.357 using those settings. Drop in 3.32 and ghosts vanish.
real.finder
17th July 2017, 00:30
Tried version 3.57 some weeks ago, but recognizes many issues with it. So went back to 3.32 for a while.
Today I got still many issues with v3.57, mostly temporal problems.
I am using exact the same parameters as with 3.32, v3.32 still works without any problems since a very long time.
http://i63.tinypic.com/263eiyp.jpg
So it cant be my chain, its definitively version 3.57.
Downloaded the latest plugins-pack for 3.57 including the 2 updated plugins.
This are my settings, they work fine for 3.32 since many many months, source is still progressive.
QTGMC(Preset="Medium", EdiThreads=6, InputType=1, TR2=2, NoiseProcess=1, NoiseRestore=0.0, StabilizeNoise=true, DenoiseMC=true, Denoiser="dfttest", Sigma=0.5, Sharpness=2.0, SLMode=2, ForceTR=3, SourceMatch=3, MatchEnhance=0.75, FPSDivisor=1)
The whole movie look more like a bad norm-converted ... the problems are around everywhere, no special areas or scenes.
And NO, its not a ghostmovie ;-)
I can reproduce mbcd's "ghosting" on any random progressive source with 3.357 using those settings. Drop in 3.32 and ghosts vanish.
can you both try with TV_range=false? if still, then try with v3.354s
poisondeathray
17th July 2017, 00:42
can you both try with TV_range=false? if still, then try with v3.354s
TV_range=false doesn't help 3.357s , but 3.354s works with or without TV_range=false without ghosts using his settings (or if there are tiny ghosts they are 100x better than they were with 3.357s)
real.finder
17th July 2017, 01:23
TV_range=false doesn't help 3.357s , but 3.354s works with or without TV_range=false without ghosts using his settings (or if there are tiny ghosts they are 100x better than they were with 3.357s)
what masktools you use?
poisondeathray
17th July 2017, 01:33
what masktools you use?
That was on vanilla avisynth x86 , masktools 2.0b1
I didn't test x64 or avisynth+ yet, masktools 2.2.10
real.finder
17th July 2017, 01:38
That was on vanilla avisynth x86 , masktools 2.1
I didn't test x64 or avisynth+ yet, masktools 2.2.10
you need at least masktools 2.2.7 even in vanilla avisynth
poisondeathray
17th July 2017, 01:45
Yep, masktools2 was the culprit.
It also works in 2.2.10 for x64 avisynth+
fvisagie
17th July 2017, 17:26
<snip>
I get a resulting video that spasms around back and forth.
<snip>
LemMotlow fixed this error for you, but just to name the problem for future reference: incorrect field order :).
One of the most destructive and most easily fixed.
Trademark
19th July 2017, 18:37
Because the filters used by QTGMC force me to convert my RGB32 files into a YV12 colorspace, my videos lose some of their most saturated colors (reds and greens especially), and gets muddied a slight amount.
Is there any conversion or script I can run after QTGMC that can recover that information, or will it be lost forever?
hello_hello
19th July 2017, 19:01
Trademark,
It's possibly a colorimetry issue. The following is the default colorimetry for converting RGB to YV12, and given you're asking the question here I assume your source is interlaced. ConvertToYV12(matrix = "Rec601", interlaced=true).
If your source is HD, you might need to do it this way: ConvertToYV12(matrix = "Rec709", interlaced=true).
poisondeathray
19th July 2017, 20:40
@Trademark
Back a page didn't someone say the files were YUY2 ? Where you getting RGB32 from ?
So why don't you use the YUY2 variant of QTGMC ? Otherwise you will always lose something when downsampling chroma .
And even if you were starting from RGB, RGB=>YUY2 (4:2:2) is "less bad" ,than RGB =>YV12 (4:2:0)
Trademark
20th July 2017, 03:58
The error I got from avs proxy was that some filter didn't work with rgb32. I did encode the videos lossless with yuv though. I'll have to download media info or something again so I can see precisely what the specifics are on my files.
I was never aware of any version of QTMC that worked with yuy colorspace, I just downloaded the latest links on the wiki. Is there a special version I have to download, or do I just edit the script?
for reference, here's the slight saturation loss I was talking about. What I'm mostly talking about is the loss in green saturation on the weapon picture box and text above. The text's blurriness isn't a thing to worry about, as it was taken after the qtgmc script was applied:
original file (yuy):
http://i.imgur.com/nJDocNG.png
file after qtgmc script (yv12):
http://i.imgur.com/IF2keTC.png
Trademark
22nd July 2017, 19:08
I've looked through the wiki and forum but I still can't find a way to use QTGMC in YUY2 colorspace. Does anybody know the specific plugin versions needed or script?
Boulder
22nd July 2017, 19:22
It's probably autodetected so if you input YUY2 data, you also get YUY2 out.
Trademark
22nd July 2017, 20:07
Inputting the YUY2 file into avisynth and using only QTGMC(preset="slower") yields the error message: TemporalSoften: Scenechange not available on RGB32.
I'm thinking this is some kind of conflict with one of the plugins for QTGMC, or maybe a conflict with Avidemux, since I am using AVS proxy to load my Avisynth scripts into Avidemux so I can encode there.
real.finder
22nd July 2017, 20:16
you can use yv24 if you used settings that not need some old plugin that hasn't ported to support new color format yet
and yuy2 should work anyway but yv24 better for your case
Trademark
22nd July 2017, 20:27
Googling temporal soften seems to show that it's an internal filter for Avisynth. I will try to download Avisynth again and make sure I have the latest version of it.
you can use yv24 if you used settings that not need some old plugin that hasn't ported to support new color format yet
and yuy2 should work anyway but yv24 better for your case
Thank you. Adding ConvertToYV24 does allow the file to be accepted by Avisynth, but my color channels are badly desync'd as a result.
http://i.imgur.com/vvAMbkZ.png
real.finder
22nd July 2017, 20:29
Thank you. Adding ConvertToYV24 does allow the file to be accepted by Avisynth, but my color channels are badly desync'd as a result.
http://i.imgur.com/vvAMbkZ.png
what setting you use in qtgmc? and did you have all up-to-date plugins and scripts?
Trademark
22nd July 2017, 20:39
Right now I am just using QTGMC(Preset="slower")
I have downloaded all the latest core and additional plugins from the wiki as of last month. Was YUY2 support added just very recently?
Edit: I am using Avisynth 2.60 according to the script I ran through vdubmod.
hello_hello
23rd July 2017, 09:29
According to the changelog at the bottom of the html help file for QTGMC 3.32 (as far as I know it's still the most recent help file), YUY2 support was added with version 3.25. I couldn't tell you when that version was released but version 3.32 is six years old now, so it was 6+ years ago.
The new Wiki doesn't seem to specify supported formats. I assume that was an over-site.
I see the changelog at the bottom of the new Wiki only goes as far back as version 3.32 (as does the changelog in the v3.357 script itself), but there's been several YUY2 related fixes/improvements since then.
I tried opening a script with the following at it wasn't a problem.
ConvertToYUY2()
QTGMC()
This wasn't always successful
ConvertToYV24()
QTGMC()
but I suspect it'd be some sort of rendering issue I don't understand (Avisynth 2.60 & XP).
SMPlayer displayed the script with the same messed up colours as your previous screenshot (OpenGL driver, I think), while it opened normally in VirtualDub (I tried the native AVIFile Input driver and the FFmpeg Input Driver plugin).
Initially I had ffdshow processing raw video, but MPC-HC wouldn't open the script (it kept closing without an error message). MPC-BE displayed it, albiet upside down. Without ffdshow involved, both players opened the script normally.
Not that I really understand why the above would happen, but I'd be thinking the messed up colours are a rendering/display issue and nothing Avisynth or QTGMC are doing wrong for YV24.
Thinking about it, you could probably test that by converting back to YV12. ie
ConvertToYV24()
QTGMC()
ConvertToYV12()
Boulder
23rd July 2017, 10:21
Inputting the YUY2 file into avisynth and using only QTGMC(preset="slower") yields the error message: TemporalSoften: Scenechange not available on RGB32.
I'm thinking this is some kind of conflict with one of the plugins for QTGMC, or maybe a conflict with Avidemux, since I am using AVS proxy to load my Avisynth scripts into Avidemux so I can encode there.
So what is and how do you feed the actual input to QTGMC? Please describe the process because you may be doing something that is unnecessary. I'd say that QTGMC should be the first filter you use apart from some cropping (mod-4).
Trademark
23rd July 2017, 14:48
I'm thinking this is most likely an AVS Proxy and AVIDemux problem. I just tried running this script into VDUBMod, and it doesn't have an issue loading it. From what I can gather, comparing its colors to a video I rendered earlier through AVIDemux by converting to YV12, it has more saturated colors.
AviSource("C:\Users\Owen\Desktop\1.avi")
AssumeBFF()
Crop(0,2,0,-4)
ConvertToYUY2
ConvertAudioTo16Bit()
QTGMC(Preset="slower")
Now, the problem is that QTGMC doesn't behave the same, at least not with the VDUBMod preview. QTGMC(Preset="slower") shows shimmering and flickering in VDUBMod, whereas in AVIDemux it was very stable. Moreover, The following script:
A2 = last
A2 = A2.QTGMC(Preset="slower")
TDeint(mode=1, order=0, field=0, edeint=A2, emask=TMM(mode=1, order=0, field=0),slow=2,chroma=false,MI=80,full=false,cthresh=9)
Works just fine in AVIDemux, but won't even show as deinterlacing the footage in VDUBMod.
Edit: after just finishing the QTGMC(Preset="slower") and saving in lossless with vdubmod, I only see some flickering and shimmering, but it looks as though the full YUY2 colorspace was preserved! Now I just gotta figure out how to make that tdeint script work with vdub.
Edit2: I just removed the crop and assumebff() from the script, and now the Tdeint edeint qtgmc script seems to work!
LigH
23rd July 2017, 14:59
I wonder if it is merely an issue of how to display YV12 output. That may depend on the installed YUV conversion filters and their setup. VirtualDubMod may not display planar YV12 as it is (that requires specific DirectShow renderers), but may convert them to packed YUY2, to RGB, or similar -- depending on its own setup, whether you allow it to use Hardware Overlay or DirectX planes or ... etc. Without taking care of such details, VirtualDub(*) may not be a reliable preview tool for AviSynth scripts returning YV12 or even higher bit depth configurations.
Trademark
23rd July 2017, 15:23
So I just deleted AssumeBFF() from my script, and now I can get the tdeint tmm edeint qtgmc script to work for my input files, and it does seem to stay within the YUY2 colorspace.
mbcd
23rd July 2017, 16:41
Yep, masktools2 was the culprit.
It also works in 2.2.10 for x64 avisynth+
I had only 10 minutes this weekend to play around with it, but it seems that this also solved my problems.
I had loaded 2.2.8 with QTGMC, but it seems that some other plugin loaded an older version before QTGMC was loaded. So I still had this visible problems.
Sad, that avisynth is soo good and powerful, but usage is a pain in the butt sometimes, no control, no overview ... am a little bit sad about this version-stuff.
Thanks a lot to poisondeathray for trusting my comments and spending time to check itself !
real.finder
23rd July 2017, 17:27
I had only 10 minutes this weekend to play around with it, but it seems that this also solved my problems.
I had loaded 2.2.8 with QTGMC, but it seems that some other plugin loaded an older version before QTGMC was loaded. So I still had this visible problems.
Sad, that avisynth is soo good and powerful, but usage is a pain in the butt sometimes, no control, no overview ... am a little bit sad about this version-stuff.
Thanks a lot to poisondeathray for trusting my comments and spending time to check itself !
well, you are not the 1st nor the last one that has some old masktools and has problems with QTGMC like this, if pinterf added scale_inputs (https://forum.doom9.org/showthread.php?t=174752) parameter then it will show error message with old masktools so user will know that he/she has something old in his plugins
bblogoss
7th August 2017, 17:48
I can reproduce mbcd's "ghosting" on any random progressive source with 3.357 using those settings. Drop in 3.32 and ghosts vanish.
I think I have identified what cause this "ghosting" problem :
mt_masktools-25.dll and 26 that were needed with some old versions of masktools2 and Avisynth-MT.
With newer versions of masktools2 they are now useless. Remove them from the plugin directory and QTGMC 3.357 will work just fine :cool:
LigH
7th August 2017, 20:51
Yes, it's quite important to keep the plugins clean. Several older plugins are obsolete now since AviSynth+ compatible substitutions with support for planar YUV formats with finer chroma subsampling have been created. Now you should remove older plugin DLL's offering functions with the same name which may overload newer functions. I hope AVSMeter can help discovering possible collisions.
Trademark
12th August 2017, 20:56
is there any way to tell qtgmc to avoid certain pixels in a video that remain stationary for long periods of time, or do I have to set up a mask?
Groucho2004
12th August 2017, 21:30
Now you should remove older plugin DLL's offering functions with the same name which may overload newer functions. I hope AVSMeter can help discovering possible collisions.The latest version of AVSMeter (https://forum.doom9.org/showthread.php?t=174797) does indeed point out duplicate functions.
hello_hello
13th August 2017, 16:00
is there any way to tell qtgmc to avoid certain pixels in a video that remain stationary for long periods of time, or do I have to set up a mask?
Would a deinterlacer that can create a mask and use an external de-interlaced clip be along the lines of what you're after?
deinterlaced = last.QTGMC
TDeint(mode=1, edeint=deinterlaced)
Trademark
17th August 2017, 18:37
Would a deinterlacer that can create a mask and use an external de-interlaced clip be along the lines of what you're after?
deinterlaced = last.QTGMC
TDeint(mode=1, edeint=deinterlaced)
Currently I have something very similar to that, where I use tdeint/tmm that uses qtgmc as an external clip from where the de-interlaced and interpolated footage comes from.
There are still sometimes during the videos where the stationary bits are distorted though. I guess the only true way to completely ignore them is to set up mask with white boxes etc.
kenshin1991
27th August 2017, 09:45
I've been using QTGMC(preset="placebo", SourceMatch=2, Lossless=1) but I am not getting good results (combing, artifacts etc).
Can anyone advise of script / setting that would achieve optimal results for this source:
https://www.dropbox.com/s/n6zp586u826mtqa/Track01_Last_Exile_Vol1_t00.demuxed.m2v?dl=0
Thanks :)
hello_hello
27th August 2017, 12:14
I've been using QTGMC(preset="placebo", SourceMatch=2, Lossless=1) but I am not getting good results (combing, artifacts etc).
That's probably because it's mostly telecined.
manono
27th August 2017, 20:31
That's probably because it's mostly telecined.
I agree. Because it was edited as video you get cadence breaks, and all those overlays also screw with the patterns, but its true framerate should be 23.976fps, I believe. If you don't like the default TIVTC deinterlacer, rig it to use a different one, QTGMC, even.
Also, intros often aren't indicative of the main body of the episode and can present problems not seen elsewhere in the episode.
...but I am not getting good results (combing, artifacts etc).
Almost by definition, still seeing interlacing after bobbing is impossible because it means the original fields have interlacing. Maybe you see aliasing.
johnmeyer
28th September 2017, 02:11
I need to convert 29.97 interlaced to 59.94 progressive. The simple QTGMC script below works, but is slow (1.4 fps). I tried to speed it up, using multithreading, as shown. Initially, the fps is quite fast, but after a few hundred frames, it starts to slow down and eventually goes from 3-5 fps down to less than 1 fps. It often hangs or crashes at this point.
I tried to search for a solution to this, but didn't find it.
I have tried to download the plugin versions recommended for QTGMC, and also downloaded (I think) the AVISynth version that is recommended. I am running XP Pro 32-bit SP3.
I created an AVSInfo log file. Here is a link where you can download that log file:
AVSInfo Log File (https://www.mediafire.com/file/g8rkxaaukanmwuu/avsinfo_x86.log)
The Distributor() statement seems to make it a little more stable, but slows it down quite a bit. My computer is 6-year-old Intel i7 running at 3.2 GHz.
I have found that the SetMemoryMax statement has an unusually high degree of influence on the speed of the script, not just on the stability. I haven't see that with other scripts.
Any advice on how to keep the speed stable and not slow down and then crash would be appreciated. I did monitor memory usage using Task Manager and during the slowdown I did not see any memory "leaks."
Here is the script I am using. I load the plugins explicitly so I can use the DLLs recommended for QTGMC without introducing the possibility of screwing up other working scripts.
#Script to convert video to film (29.97 interlaced to 59.94 progressive, a.k.a. "60p")
#Frameserve from Vegas in YUY2 (important)
loadplugin("C:\Program Files\AviSynth 2.5\plugins\QTGMC\mvtools2.dll")
loadplugin("C:\Program Files\AviSynth 2.5\plugins\QTGMC\SSE2Tools.dll")
loadplugin("C:\Program Files\AviSynth 2.5\plugins\QTGMC\masktools2.dll")
loadplugin("C:\Program Files\AviSynth 2.5\plugins\QTGMC\RgTools.dll")
Import("C:\Program Files\AviSynth 2.5\plugins\QTGMC\QTGMC.avsi")
Import("C:\Program Files\AviSynth 2.5\plugins\QTGMC\AnimeIVTC.avsi")
Import("C:\Program Files\AviSynth 2.5\plugins\QTGMC\SMDegrain.avsi")
#1000; 5,4; 2; Distributor() is only MT combination that (maybe) works
#Can be unstable in MT mode -- need to work on this
SetMemoryMax(1200) # **** NOTE **** VERY sensitive to this parameter
SetMTMode(5,6)
AviSource("e:\fs.avi").AssumeTFF().killaudio() #Set field order to BFF for SD video
SetMTMode(2)
ConvertToYV12(interlaced=true)
#Create 60p from 60i
QTGMC( Preset="Slower", SubPel=2, EdiThreads=2,ThSCD1=180, ThSCD2=98, Blocksize=32,Overlap=4)
Distributor()
[edit] I just came back to my computer, and my latest attempt to get this to work must have crashed because VirtualDub was nowhere to be seen: everything must have crashed and burned, big time.
real.finder
28th September 2017, 04:25
johnmeyer, did you tried avs+ with mt?
old avs mt not recommended now, and it's didn't update since years
johnmeyer
28th September 2017, 05:33
johnmeyer, did you tried avs+ with mt?
old avs mt not recommended now, and it's didn't update since yearsI just tried that, but it didn't like the MT calls. I then read that you have to download a separate DLL for MT. That doesn't seem to agree with what the AVISynth+ documentation says. It implies that MT is built in.
However, I went ahead and downloaded an AVISynth+ MT DLL, but I had problems with that. Then I tried to uninstall AVISynth+ which had promised that, when I uninstalled, I would be back to my original AVISynth installation. Well, that did not happen.
I'm too tired to go further tonight, but I'll try to get things sorted out tomorrow. I did try to follow the instructions with the latest QTGMC for plugins and AVISynth, and I didn't see anything about requiring AVISynth+.
Like I said, I'll give it another shot tomorrow.
real.finder
28th September 2017, 05:52
avs+ is not required but it's recommended
use the last one http://avisynth.nl/index.php/Avisynthplus/Downloads
nhope
28th September 2017, 06:08
John, I know we share a similar background in our usage of this stuff. I've overhauled everything this year, and have been pleased with improvements in speed, stability and ease of use. It's certainly been worth the effort.
I've switched over to AviSynth+ 64-bit for most things. Be sure to overwrite the "standard" AviSynth+ with pinterf's maintained AviSynth+ version (https://github.com/pinterf/AviSynthPlus/releases). Perhaps that's what you mean by downloading a separate DLL. It's just a fork that picked up where the standard AviSynth+ stopped. Better still, Groucho's Avisynth Universal installer (https://forum.doom9.org/showthread.php?t=172124) is great for installing and switching between versions, and he keeps that updated. It applies necessary registry changes, and also allows your AviSynth plugin autoload folders to be anywhere you like.
The "Requirements" section of the QTGMC wiki (http://avisynth.nl/index.php/QTGMC#Requirements) has been sorted out this year and is now my go-to for getting up-to-date plugins. pinterf and others have done a lot of work on them in the last couple of years and I suggest updating at least the core plugins.
Along with that, I'm now using VirtualDub Filtermod (https://sourceforge.net/projects/vdfiltermod/) for renders. It's well-maintained, fixes some issues with standard VirtualDub, has x86 & x64 versions (like standard Avisynth), and you can even do H.264 renders in it.
Just about everything I've used AviSynth for can be done in a 64-bit workflow now with these tools, and that improves speed/stability for me, but not if you're frameserving from Vegas Pro as that is 32-bit only (actually there may be a workaround to that using another 3rd-party tool but I forget exactly how).
All the changes to the MT syntax (http://avisynth.nl/index.php/AviSynth%2B#MT_Notes) for AviSynth+ are a bit of a drag at first, especially if you have lots of scripts, but fine once you're set up. I recommend setting up an mtmodes.avsi script as described in the AviSynth+ wiki (http://avisynth.nl/index.php/AviSynth%2B#Help_filling_MT_modes) and then you can pretty much forget all about setting MT modes as it happens automatically.
poisondeathray
28th September 2017, 06:46
Just about everything I've used AviSynth for can be done in a 64-bit workflow now with these tools, and that improves speed/stability for me, but not if you're frameserving from Vegas Pro as that is 32-bit only (actually there may be a workaround to that using another 3rd-party tool but I forget exactly how).
The workaround for vegas dfs to 64bit is to mount the 32bit AVISource() .avs signpost with avfs (so it creates a "dummy" avi) , then use avs+64 mt on the "dummy" AVI.
It may sound crazy, like there a huge waste of resources and massive overhead - because you have vegas debugmode frameserver, to 32bit avisynth frameserver, to 64bit avs+mt frameserver, but it's actually about 1.4-1.6x faster for QTGMC , than vegas dfs to 32bit MT alone, and more stable, without memory issues (because all the filters are run in the 64bit part) . Just imagine if there was a proper 64bit direct frameserver, I bet it would be 2x faster.
But the QTGMC slowdown issue was investigated before , there were several threads and workarounds posted (some involved wacky things like trims and overlays). Nobody figured out why it occurred exactly or which specific dll's or what caused it conclusively, or why it only happened to some people but not others. But none of the workarounds are as good as switching to avs+64 mt IMO; that's the "best" solution
johnmeyer
28th September 2017, 16:27
Nick,
You've always understood me. Your advice is perfect, exactly what I need, and very much appreciated. I'll get started after breakfast this morning.
Your word "overhauling" is exactly what I need to do. I am several years behind the times, and all sorts of other things on my computer are getting creaky (very much like me). In a vain attempt to stretch a little more out of my XP boot partition, I even did a Windows update for the first time in seven years. My rule is to never update anything unless I need to.
Well I clearly need to do it now.
BTW, for those of you wondering, doing those 300+ deferred Windows updates did exactly nothing to my computer, although it is now clear that "Genuine Advantage" and a few other things are monitoring my computer more closely. Not a fan of that.
And thanks poisondeathray for confirming what I was suspecting: I just have too many archaic DLLs, including AVISynth itself, to ever get this all to work reliably.
poisondeathray
28th September 2017, 16:34
And thanks poisondeathray for confirming what I was suspecting: I just have too many archaic DLLs, including AVISynth itself, to ever get this all to work reliably.
To be clear, my main setup is slightly different than Nick's
I have the old 32bit MT avisynth installed concurrently (and switching to "vanilla" single threaded 32bit avisynth is just a dll swap) with the 64bit avisynth+ MT . I do NOT have 32bit avisynth+ or MT installed (I did not overwrite the old 32bit system). The reason I chose to do it this way is there are still some "old" obscure filters that only run on the old one. So you can still do everything "normally" as before, but you can still use 64bit+MT on the same system. But all the commonly used , popular filters have all been transferred and most have 64bit versions now
Groucho2004
28th September 2017, 16:52
@John
I had a look at the log file you created and I think you should start from scratch, it's not difficult.
As Nick suggested, use the universal installer, this way you have maximum flexibility in case you want to use different Avisynth versions (and/or plugins) for your various tasks. Even if you just want to use one version, it's still a simple way to install Avisynth.
Zip up all your old plugins and clean up your current Avisynth install as instructed in the first post of the universal installer thread.
Download the latest versions of plugins (masktools2, mvtools2, nnedi3, etc.) and add them as needed, don't just dump all of them in the auto-load directory. Then you can add plugins from your old auto-load directory if necessary (again, only the ones you need).
Use AVSMeter (-avsinfo) to check if everything is OK. You may need to install MS runtimes, I recommend the all in one package from ricktendo (http://repacks.net/forum/viewtopic.php?f=6&t=125).
johnmeyer
28th September 2017, 21:25
Thanks to everyone. I will do exactly as suggested but not for a few more hours.
I got sidetracked today because I ended up chasing some mailbox thieves all over the neighborhood late last night, ending in a pretty scary confrontation. I'm working with the police on that one. Then, this morning, the nextdoor neighbor found a half-eaten deer that was obviously killed by one of the mountain lions that has been prowling around here lately (I have a nice photo I got on my trail cam a few weeks ago). I'm trying to help out with that. Bottom line: I won't get to this until tomorrow.
Hey, they're both true stories, and a far better (and more truthful) excuse than, "the dog ate my homework."
StainlessS
28th September 2017, 22:12
Hey, they're both true stories
Can't really imagine you joggin' down the road after a guy humping a mailbox on his shoulder, mountain lion ate my homework, Nah!
EDIT: Let us know how you get on with 64 bit, got XP64 but not as yet set it up at all on Partition II (or maybe Part III, keep
Part II for Linux).
johnmeyer
28th September 2017, 22:25
Can't really imagine you joggin' down the road after a guy humping a mailbox on his shoulder, mountain lion ate my homework, Nah!I guess I posted badly: he wasn't stealing the mailboxes, but what was in the mailboxes. I had just warned several neighbors about this a few days ago. They were worried about identity theft because one of the big USA credit agencies had been hacked and tens of millions of identities were exposed. What I told her is that most identity theft is done much more directly: they steal the mail from your mailbox (ours are outside in front of the house) and just get your private data from those papers.
As for the mountain lion (cougar, puma, etc.), here is that animal or its mate, in front of our house four weeks ago, captured on one of my trail cameras:
http://i177.photobucket.com/albums/w208/johnmeyer/Puma01_zpsrkh3extm.jpg
I'll be happy to show you the rattlesnakes, scorpions, coyotes, and black widow spiders we have around the property. It is still a little rugged in the wild west.
Sorry to go OT. Back to AVISynth+ starting tomorrow morning.
nhope
29th September 2017, 03:02
John, before your overhaul, just thought I'd show you how my folders are now set up:
http://shared-photos-for-embedding.s3.amazonaws.com/AviSynth-setup.png
[I]AviSynth-scripts-and-32-bit-plugins-collection contains all my 32-bit plugins, and all my avs and avsi scripts for any version of AviSynth. Nothing gets autoloaded from here.
AviSynth-64-bit-plugins-collection contains all my 64-bit plugins. Nothing gets autoloaded from here either.
AviSynth-plugins-AutoLoad32 and AviSynth-plugins-AutoLoad64 contain the dll, avsi etc. files that get autoloaded when either x86 or x64 AviSynth(+) runs. These inconveniently used to be in C: per the standard AviSynth installation but Groucho's installer enables them to be here in my Documents folder where I can more easily manage them and back them up. I copy files to these from the above collection folders, as I need to.
The AvisynthRepository folder is Groucho's AviSynth universal installer. In there I have these lines set in setavs.bat, which enable those custom autoload locations:
...
:: Default plugin directories
:: If you leave them blank, the respective "plugin" directories within
:: the "AvisynthRepository" source directories will be used.
set PLUGDIR32=D:\Documents\AviSynth-plugins-AutoLoad32
set PLUGDIR64=D:\Documents\AviSynth-plugins-AutoLoad64
...
Of course there are countless ways to manage all this, but this has been working well for me and may help you get your head around how Groucho's installer can work.
As an aside, I also have my AvsPmod folder here. I used to use ScITE to edit scripts but I've recently been using AvsPmod. I'm sure I'm not using it to its full potential but it certainly makes avs scripts much easier to visualize.
Squarealex
3rd October 2017, 03:45
Hi.
Sorry if the question has already been resolved. But I haven't found on this subject. :(
I use QTGMC with VirtualDub. I take a video recorded (Video Game with my Card Capture PCI) in Lossless but Interlaced, the video is recognized as progressive video (not interlaced, so scanlines in video).
When I want to use QTGMC for example, I have a chroma color bug like this in the picture.
https://image.noelshack.com/fichiers/2017/40/2/1506998088-virtualdubchromaqtgmc.jpg
But desinterlace is done well with VirtualDub filters, but they are of poor quality.
I use this script :
#ASYNTHER DirectShowSource
DirectShowSource("f:\h264.avi")
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\masktools2\masktools2.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\decomb\Decomb.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\nnedi3.dll")
Import("C:\Program Files (x86)\AviSynth\plugins\QTGMC-3.32.avsi")
SetMTMode(5, 8)
SetMTMode(2)
AssumeTFF()
QTGMC( Preset="Slow" )
Here is a sample of video taken in x264 :
https://mega.nz/#!q0ZwGQKb!tXxsCUU0-GGXo7HtCZeo6fXr2rgSm-sHJ6n82D3E8C8
Did I forget something in the script?
Thanks :)
real.finder
3rd October 2017, 04:08
Squarealex
maybe QTGMC is not suitable for your source, try sanimebob
lansing
3rd October 2017, 04:13
Do a separatefields() and you'll see the chroma blend existed in the field, that tells you that the problem came from your recording.
poisondeathray
3rd October 2017, 04:42
Do a separatefields() and you'll see the chroma blend existed in the field, that tells you that the problem came from your recording.
There is no "chroma blend" in the sample
The "chroma blend" is from mistreating it as RGB or upscaling 4:2:0 in progressive fashion instead of interlaced
Decode it as 4:2:2 and use separatefields or bob and you will see no chroma blend/ ghost
However, every even field is significantly more blurry than odd field. It's not something you can "fix" easily by sharpening etc...
poisondeathray
3rd October 2017, 04:52
But amazingly, QTGMC does a decent job of "fixing" or adjusting the bad fields if you use a slower preset. Faster presets don't fix it, every 2nd frame is blurred.
(And Ken is an idiot, he should be conserving energy. Sean is going to whoop him :D)
Don't use DirectShowSource, it's probably doing some crazy conversions. FFMS2 will decode it correctly as 4:2:2
LigH
3rd October 2017, 07:32
A real deinterlacer with motion estimation requires a continuous motion from every field to each next field. Legacy games with sprites instead will probably behave like cartoons: The same content in multiple frames, then a sudden differrence, and repetition again. Such "discrete motion" (stop motion) cannot be handled well by motion estimating deinterlacers.
magiblot
4th October 2017, 12:56
Because retro videogames are internally processed as low resolution progressive video, I think it should be enough to do SeparateFields, resize to full height and maybe do some cropping.
But, like poisondeathray noticed, odd fields are blurry, so that can't be done.
I've also had the 'chroma' problem with sanimebob(useqtgmc=1) in a similar case. A retro videogame was involved as well, but it wasn't a direct capure. Doing sanimebob(useqtgmc=1).MergeChroma(Yadif(mode=1)) was enough to solve it. Now that I think of it, it could be optimized to avoid QTGMC from processing chroma.
Squarealex
5th October 2017, 04:45
Hi everyone, thanks for all yours reply.
I capture video from my card PCI (SC512-N1) and I use AmarecTV for recording.
The game run at 480i and not at 240p (except Arcade/Dreamcast version), but this issue come for all content Interlaced (Game, VHS, LaserDisc and even HDMI at 1080i).
I Select the good resolution on AmarecTV (on YUV2).
I recording with Lagarith Lossless (but issue when with all codecs)
Other game sample at 480i : https://mega.nz/#!Oh5FDBQa!5FhcW6osMX-xu1aHb3_Z6hLyvBuV4vKAFwFIs9KKNvg
Other game sample at 1080i (very short, sorry) : https://mega.nz/#!zsAB1L6B!ia3L-I_lXLRFvMIfBhIPgE2lc-hkipVwusVmdup176o
With FFMpegsource, the chroma blend still here (same with AviSource). Even with TFM for deinterlacing (or even no plugin, the issue seem on AviSynth)
@magiblot : Hi, I search sanimebob plugin for test, but I can't find. :(
poisondeathray
5th October 2017, 05:05
With FFMpegsource, the chroma blend still here (same with AviSource). Even with TFM for deinterlacing (or even no plugin, the issue seem on AviSynth)
I see no "chroma blends." or chroma ghosts
To be clear, I mean there is nothing like your screenshot a few posts above where there is a "chroma ghost" of ken jumping
There are other issues like aliasing, but nothing like that screenshot if you treat it as 4:2:2
magiblot
5th October 2017, 14:33
@magiblot : Hi, I search sanimebob plugin for test, but I can't find. :(
sanimebob is just a bobber. You can replace it with your current QTGMC call; the important thing is that you merge the chroma from Yadif's bobbed clip.
Still, you can find sanimebob linked in real.finder's Avisynth Stuff (https://forum.doom9.org/showthread.php?t=174121) thread.
I tested my idea on SNES footage, recorded with DVD. Check how it works in this sample (https://mega.nz/#!MpUCgZRK!E-0QVVfwObBT27aVgJfPzc0PQgY1fp6sdndNzgEJAUQ).
AssumeTFF()
SeparateFields()
PointResize(width,height*2)
even = SelectEven().Crop(0,2,0,0).AddBorders(0,0,0,2)
odd = SelectOdd()
Interleave(even,odd)
Crop(32, 32, -42, -66) #Removing all black borders
Spline64Resize(816,714) #Upscaling to a resolution with same DAR as native resolution 256x224
AddBorders(0,2,0,4) #Adding borders the way up to 720p
lansing
5th October 2017, 15:04
poisondeathray comment solved your problem, just load the street fighters video with ffms2 or set AVISource("h264.avi", pixel_type="yuy2") and you'll get the correct chroma.
FFMpegsource was deprecated, use the latest ffms2 instead:
https://forum.doom9.org/showthread.php?t=174469
johnmeyer
9th October 2017, 19:23
John, I know we share a similar background in our usage of this stuff. I've overhauled everything this year, and have been pleased with improvements in speed, stability and ease of use. It's certainly been worth the effort.
I've switched over to AviSynth+ 64-bit for most things. <snip>I got sidetracked onto other things, but finally got around to upgrading the whole XP part of my system (Windows 7 64-bit will be done later). AVISynth+ works great. I went from 1.5 fps single-threaded (non-MT) using the "slower" preset in my QTGMC script to almost double that, just by changing to the + version fo AVISynth. When I enabled MT, using 4 of my 8 threads, I got 6 fps, and it appears stable.
Now I have the daunting task of converting 100+ scripts that I have written over the past decade. I'll have to think about how to come up with a relatively painless way to do that. I always used explicit calls to most of my DLLs. I could do a massive search and replace (I have an old utility that will accept search & replace strings and do dozens of replacements in parallel). However, I may just remove all of the explicit calls and see if the script runs. If it doesn't, I'll add back in whatever explicit references are required, but updated to all the new locations.
Anyway, I just wanted to thank Nick, poison, and Groucho for all the help.
Micheal813
8th December 2017, 07:48
It's been a while since I used QTGMC, so I decided to start fresh. I'm running a fresh install of Windows 10 with Avisynth 2.6. I have the latest QTGMC.avsi and downloaded all the required files from the Wiki. Both the core files and optional files and scripts. I also put the 32 bit "libfftw3f-3.dll" in SysWOW64 and the 64 bit in System32.
When I try to run a script with Vdub, I get:
Script error: There is no function named "mt_makediff"
Doing a search shows that it has something to do with "mt_masktools-26.dll" but this is not mentioned on the Wiki or in the plugin pack listed in this thread. Should I download the mentioned dll or am I doing something wrong?
Thanks for the help.
Edit:
Figured it out. I needed to install Microsoft Visual C++ 2015 Redistributable Update 3.
LigH
8th December 2017, 08:17
Doing a search shows that it has something to do with "mt_masktools-26.dll" but this is not mentioned on the Wiki or in the plugin pack listed in this thread.
Wrong: This is the "MaskTools2" plugin in the QTGMC Core Plugins (http://avisynth.nl/index.php/QTGMC#Core_Plugins_and_scripts) set.
And, well, yes – having all recent Microsoft Visual C++ Runtime packs installed (about from 2010 on) is always recommendable, you never know which application or plugin was built with which compiler version ... you can use wsusoffline.net to collect their installers.
Micheal813
14th December 2017, 10:41
I have everything working with 32-bit VDub. I wanted to try 64-bit. I uninstalled Avisynth and deleted registry entries. I used Universal Installer to install Avisynth+ 64-bit. I set AVS_SRC_DIR=C:\AvisynthRepository and set PLUGDIR64PLUS=C:\AvisynthRepository\AVSPLUS_x64\plugins. Copied all the 64 bit plugins and scripts to the plugin folder.
I'm using VirtualDub-1.10.4-AMD64 and can't get it to work. When I try to open my avs script with VDub, it gives an error:
Avi import filter error: (unknown) (80040154)
This is my script:
Avisource("F:\Capture\1.avi")
QTGMC()
It works just fine with 32 bit VDub. Any help getting it to work would be appreciated.
LigH
14th December 2017, 10:47
If you use AviSource in a 64-bit AviSynth process, then you may need to have a 64-bit VfW codec for the video format in your AVI installed.
Which format is in your "1.avi"? If it is compressed, try to use FFMS2 or L-SMASH Works (LwLibavVideoSource) instead of AviSource.
Micheal813
14th December 2017, 11:15
If you use AviSource in a 64-bit AviSynth process, then you may need to have a 64-bit VfW codec for the video format in your AVI installed.
Which format is in your "1.avi"? If it is compressed, try to use FFMS2 or L-SMASH Works (LwLibavVideoSource) instead of AviSource.
The video is compressed using Lagarith. The installer for Lagarith installs both 32 and 64 bit. If I open the avi directly in VDub 64-bit, it opens fine.
Groucho2004
14th December 2017, 11:19
The video is compressed using Lagarith. The installer for Lagarith installs both 32 and 64 bit. If I open the avi directly in VDub 64-bit, it opens fine.
You might want to give this (https://forum.doom9.org/showthread.php?t=172021) a go.
Micheal813
14th December 2017, 11:33
You might want to give this (https://forum.doom9.org/showthread.php?t=172021) a go.
Same result with that. It will open the avi directly, but won't open the script.
Groucho2004
14th December 2017, 11:49
Same result with that. It will open the avi directly, but won't open the script.How big is the file? Can you upload it somewhere (or a small chunk)? Otherwise, try Ligh's suggestion (FFMS2 / L-SMASH).
Micheal813
14th December 2017, 11:56
How big is the file? Can you upload it somewhere (or a small chunk)? Otherwise, try Ligh's suggestion (FFMS2 / L-SMASH).
I would like to try Ligh's suggestion, but I'm not sure exactly what is being talked about. I'm no expert. I just learn what as need to as I need to. Here is the file info from MediaInfo:
General
Complete name : F:\Capture\1.avi
Format : AVI
Format/Info : Audio Video Interleave
Format profile : OpenDML
File size : 17.6 GiB
Duration : 44 min 20 s
Overall bit rate : 56.8 Mb/s
Writing library : VirtualDub build 34807/release
Video
ID : 0
Format : Lagarith
Codec ID : LAGS
Duration : 44 min 20 s
Bit rate : 55.3 Mb/s
Width : 640 pixels
Height : 480 pixels
Display aspect ratio : 4:3
Frame rate : 29.970 (30000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:2
Bit depth : 8 bits
Bits/(Pixel*Frame) : 6.002
Stream size : 17.1 GiB (97%)
Audio
ID : 1
Format : PCM
Format settings : Little / Signed
Codec ID : 1
Duration : 44 min 20 s
Bit rate mode : Constant
Bit rate : 1 536 kb/s
Channel(s) : 2 channels
Sampling rate : 48.0 kHz
Bit depth : 16 bits
Stream size : 487 MiB (3%)
Alignment : Aligned on interleaves
Interleave, duration : 33 ms (1.00 video frame)
Interleave, preload duration : 500 ms
Groucho2004
14th December 2017, 12:43
I would like to try Ligh's suggestion, but I'm not sure exactly what is being talked about.
They are alternative source filters. Download and docs here:
http://avisynth.nl/index.php/FFMS2
http://avisynth.nl/index.php/LSMASHSource
StainlessS
14th December 2017, 12:46
Can you upload it somewhere (or a small chunk)?
In VirtualDubFilterMod (Linked by the Grouchy one),
Load AVI, move to start of a sequence with motion. ensure that it is a KEY frame (shows K at bottom of GUI eg Frame 35 (0:00.01.400)[K] ), and press HOME key.
Then move to end of sequence (about 10 secs later) at any frame following immediately after a K frame, and press END key.
Then on Menu/Video/ tick "Direct Stream Copy" and save the marked sequence.
Groucho2004
14th December 2017, 12:48
@Micheal813
Another thing you could try is running the script through AVSMeter (link in my signature). It might reveal the problem.
Micheal813
14th December 2017, 22:27
Ok. Thanks to Groucho2004's AVS Meter, I figured out that I needed to install the 64-bit Visual Studio 2013 runtime. I only had the 32 bit installed. Stupid mistake. Is there an all in 1 package for the VS runtimes?
Thanks for all the help.
LigH
14th December 2017, 22:37
As already suggested many, many times before:
You can use http://wsusoffline.net to download a collection of installers (you may disable all Windows Update versions, only enable MS Visual Studio runtimes).
Groucho2004
14th December 2017, 22:43
Is there an all in 1 package for the VS runtimes?ricktendo's runtime AIO (http://repacks.net/forum/viewtopic.php?f=6&t=125).
Micheal813
15th December 2017, 02:43
As already suggested many, many times before:
You can use http://wsusoffline.net to download a collection of installers (you may disable all Windows Update versions, only enable MS Visual Studio runtimes).
You are right. I overlooked it and I'm sorry. Thanks again for all the help everybody.
kuchikirukia
20th December 2017, 03:23
mvtools2 says search = 3 is exhaustive. QTGMC uses 5 at placebo which is uneven multi-hex. Any idea why exhaustive is faster than UMH?
I get:
qtgmc(preset="slower",search=3) = 1.70fps
qtgmc(preset="slower",search=5) = 1.53fps
search=4 is 1.84fps
hydra3333
24th December 2017, 03:26
Which format is in your "1.avi"? If it is compressed, try to use FFMS2 or L-SMASH Works (LwLibavVideoSource) instead of AviSource.
Can someone please clarify - is L-SMASH Works being maintained by VFR_maniac at https://github.com/VFR-maniac/L-SMASH-Works ?
It won't build any more without patches (an incompatibility with ffmpeg)
https://github.com/VFR-maniac/L-SMASH-Works/pull/75
LigH
26th December 2017, 18:57
Forum thread (https://forum.doom9.org/showthread.php?t=167435) and AviSynth Wiki page (http://avisynth.nl/index.php/LSMASHSource) for L-SMASH Works; I am not completely up-to-date, but I believe VFR-maniac is not anymore the most active developer of this project, and the_weirdo was the last creator of a release version.
kuchikirukia
17th January 2018, 19:31
Does the height of yuy2 need to be a multiple of 4? I'm getting a funky result when it isn't (bottom half green) which I only figured out after converting to yv12 and getting an error about it not being a multiple of 4. And there's still a line in the middle of some scenes.
real.finder
17th January 2018, 20:29
Does the height of yuy2 need to be a multiple of 4? I'm getting a funky result when it isn't (bottom half green) which I only figured out after converting to yv12 and getting an error about it not being a multiple of 4. And there's still a line in the middle of some scenes.
it don't need I think, it has no vertical subsampling, even odd number should be fine (but it's interlaced so it should be mod2), if only mod4 height work then maybe it's some asm bug in some plugin
StainlessS
17th January 2018, 20:49
Wilbert, this link dont work:- http://www.avisynth.nl/index.php?page=DataStorageInAviSynth
ie
http://www.avisynth.nl/index.php?page=DataStorageInAviSynth
Sends you to main Avisynth.nl page. [EDIT: Google ("Avisynth DataStorageInAviSynth") finds the link, but it dont work]
EDIT: Adding .htm or .html dont work.
EDIT: From builtin Docs
Part 2: How does this affect me as a user?
As long as you don't split a colorsharing unit it's up to the filterwriters to take care of problems with memory reading at end of lines.
Interlaced (fieldbased) video requires double mod on height.
Required modulos in different colorspaces.
RGB(A)
width mod-1 (no restriction)
height mod-1 (no restriction) if progressive
height mod-2 (even values) if interlaced
YUY2
width mod-2 (even values)
height mod-1 (no restriction) if progressive
height mod-2 (even values) if interlaced
EDIT:
it's some asm bug in some plugin
Looks like it (well plugin, dont know if asm).
raffriff42
17th January 2018, 23:58
Wilbert, this link dont work:- http://www.avisynth.nl/index.php?page=DataStorageInAviSynth
That's an old-style URL. The page is located here (since c. 2013)
http://avisynth.nl/index.php/Filter_SDK/Data_storage
StainlessS
18th January 2018, 00:45
Google cache ???
Google:- "http://www.avisynth.nl/index.php?page=DataStorageInAviSynth" site:avisynth.nl
Dont find it.
Search though the links that did come up, this is the only page that had matching link on Avisynth.org, via web.Archive.org
http://avisynth.nl/index.php/Old_wiki_contributions
Search DataStorageInAviSynth, about 2/3 the way down page.
ie
http://web.archive.org/web/20130403003540/http://avisynth.org/mediawiki/DataStorageInAviSynth
raffriff42
18th January 2018, 01:32
Here tis
https://web.archive.org/web/20051108132007/http://www.avisynth.org:80/DataStorageInAviSynth
StainlessS
18th January 2018, 02:00
OK Clever Cloggs, then why do google send you to Avisynth.nl main page ???
Its gorra be that link above.
there's also a hit here:- http://avisynth.nl/index.php/Filter_SDK/SDK_history
for DataStorageInAviSynth alone.
raffriff42
18th January 2018, 03:07
Oh I get your point now. That's strange.
real.finder
16th March 2018, 07:13
new update https://pastebin.com/nGgbrBq3
or in Attachments
Selur
16th March 2018, 12:59
Crashes for me with 'Very Slow' (crash no info or black output) and 'Placebo' (access violation in mvtools2.dll), using MvTools2 2.7.26 with depans (https://github.com/pinterf/mvtools/releases/tag/2.7.26) and Avisynth MT 2.6
StainlessS
16th March 2018, 13:37
Selur,
Have you tried with any other version of Avs v2.6 and same clip, would be informative for Pinterf if you did, and perhaps relate clip info and any other non default settings.
Did previous version QTGMC produce error on same clip/settings ?
EDIT: And how bout prev ver$ of MvTools ?
Selur
16th March 2018, 13:44
Previous version worked fine, had to update mvtools2 from 2.7.24 to 2.7.26 to make QTGMC run.
I haven't tried any other version of Avisynth than the one I'm using:
VersionString: AviSynth 2.60, build:Feb 20 2015 [03:16:45]
VersionNumber: 2.60
File / Product version: 2.6.0.5 / 2.6.0.5
Interface Version: 6
Multi-threading support: Yes
Avisynth.dll location: G:\Hybrid\32bit\avisynth.dll
Avisynth.dll time stamp: 2015-02-20, 00:18:42 (UTC)
Script I used it pretty straight forward:
SetMemoryMax(1536)
SetMTMode(6,16) # changing MT mode
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\LoadDll.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\DGDecodeNV.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\TIVTC.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\AddGrainC.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\dfttest.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\EEDI2.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\eedi3.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\FFT3DFilter.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\mt_masktools-26.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\mvtools2.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\nnedi.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\nnedi2.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\SSE2Tools.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\TDeint.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\VerticalCleanerSSE2.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\PlanarTools.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\nnedi3.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\RgTools.dll")
LoadCPlugin("G:\Hybrid\32bit\AVISYN~1\yadif.dll")
LoadDll("G:\Hybrid\32bit\AVISYN~1\fftw3.dll")
LoadDll("G:\Hybrid\32bit\AVISYN~1\LIBFFT~1.DLL")
Import("G:\Hybrid\32bit\avisynthPlugins\QTGMC.avsi")
Import("G:\Hybrid\32bit\avisynthPlugins\SMDegrain.avsi")
Import("G:\Hybrid\32bit\avisynthPlugins\AnimeIVTC.avsi")
# loading source: F:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\avc - interlaced.m2ts
# input luminance scale tv
DGSource(dgi="H:\Temp\m2ts_0a10d28b48f7fa511d013e46ccd03e3c_41.dgi",fieldop=2)
RequestLinear(rlim=60,clim=60)
# deinterlacing
SetMTMode(2) # changing MT mode
AssumeTFF()
QTGMC(Preset="Placebo", ediThreads=2)
SelectEven()
distributor()
return last
I did try different sources (interlaced and progressive with different source filters), they all crash with 'Placebo' (and 'Very Slow').
Going back to QTGMC v3.357s and my previous mvtools2 version and no crashes anymore.
Cu Selur
Ps.: I'm on 64bit Windows 10 pro, 32GB, Ryzen X1800.
real.finder
16th March 2018, 14:07
Going back to QTGMC v3.357s and my previous mvtools2 version and no crashes anymore.
Cu Selur
Ps.: I'm on 64bit Windows 10 pro, 32GB, Ryzen X1800.
so, what about mvtools2 2.7.26 and QTGMC v3.357s ?
if it crash then there are bug in mvtools2
Selur
16th March 2018, 14:16
Using mvtools2 2.7.26 and QTGMC v3.357s, I also get the crashes.
-> so I'll be sticking to v3.357s and 2.7.24.
Okay, now even my old setup seems to crash.
-> would be nice to here if someone else also has this crash or if I accidentally broke my avisynth environment
Selur
16th March 2018, 14:35
Seems like none of the mvbools2 builds (tested from mvtools-2.7.0.1 up), do work with 'Placebo', they all work with 'Slower', but then they crash.
Argh, I had some version which worked with Placebo, but I deleted it when trying the newer builds.
Disabling MT seems to help a bit, now it doesn't crash, but everything is dark. Setting edithreads to 1 doesn't help either.
-> does for anyone who is using QTGMC with Avisynth MT 2.6 'Placebo'& 'Slower' work properly?
I'm stuck with:
Avisynth: access violation at 0x000B740A in G:\Hybrid\32bit\AVISYN~1\mvtools2.dll,
attempting to read from 0x00000035
(seems like I'll stick with Vapoursynth until someone figures this out)
LigH
16th March 2018, 14:55
As you run it in a 32b process, may it just hit a memory limit if you don't limit the threads?
Selur
16th March 2018, 15:01
@LigH: Memory usage is ~1GB, disabling MT it drops, using SD only also drops memory usage to ~620MB.
With MT disabled and SD source 'Placebo' doesn't seem to crash but still totally kills the coloring:
https://postimg.org/gallery/3bf0sbbrg/
I used:
DGSource(dgi="H:\Temp\m2v_3d7af3cca3e77506d64cb290aa067571_6334.dgi",fieldop=2)
RequestLinear(rlim=60,clim=60)
# current resolution: 720x480
# deinterlacing
AssumeBFF()
QTGMC(Preset="Placebo", ediThreads=1)
SelectEven()
# filtering
return last
and QTGMC(Preset="Slower", ediThreads=1)
to create the screenshots.
Cu Selur
Sharc
16th March 2018, 15:04
Very slow and placebo seem to work here with Avisynth 2.6.0, single threaded, QTGMC 3.358s and mvtools2 2.7.26. I am on W10/64bit.
Selur
16th March 2018, 15:22
using Avisynth 2.6.0.6, QTGMC 3.358s and mvtools2 2.7.26 with:
DGSource(dgi="H:\Temp\m2ts_0a10d28b48f7fa511d013e46ccd03e3c_41.dgi",fieldop=2)
RequestLinear(rlim=60,clim=60)
# current resolution: 1920x1080
# deinterlacing
AssumeTFF()
QTGMC(Preset="Placebo", ediThreads=2)
SelectEven()
# filtering
return last
it doesn't seem to crash, but the colors are still wrong. (see screenshots above) :/
I get that MT + 32bit + QTGMC 'Placebo' for HD content might be a bad idea, but colors are 'off' even when using the above Avisynth combo (so no MT). :/
StainlessS
16th March 2018, 16:05
...
AssumeTFF
QTGMC(Preset="Slower", ediThreads=2)
Tried Standard AVS v2.61,
QTGMC v3.37s, mvTools v2.7.25
QTGMC v3.38s, mvTools v2.7.26
AVS+ R2636
QTGMC v3.38s, mvTools v2.7.26
All OK (Only tried for about 2000 frames each, gotta leave soon).
Sharc
16th March 2018, 16:18
No color problems here, with your script and 1920x1080i25 source ..... (Placebo is just darn slow)
Selur
16th March 2018, 16:40
I also have the color problems with SD sources,... :/
real.finder
16th March 2018, 19:04
I also have the color problems with SD sources,... :/
make sure all plugins and the used scripts (like SMDegrain that needed with tv_range=true(Default)) are uptodate
real.finder
16th March 2018, 19:22
(UTC)[/code]
Script I used it pretty straight forward:
[code]SetMemoryMax(1536)
SetMTMode(6,16) # changing MT mode
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\LoadDll.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\DGDecodeNV.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\TIVTC.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\AddGrainC.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\dfttest.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\EEDI2.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\eedi3.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\FFT3DFilter.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\mt_masktools-26.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\mvtools2.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\nnedi.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\nnedi2.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\SSE2Tools.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\TDeint.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\VerticalCleanerSSE2.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\PlanarTools.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\nnedi3.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\RgTools.dll")
LoadCPlugin("G:\Hybrid\32bit\AVISYN~1\yadif.dll")
LoadDll("G:\Hybrid\32bit\AVISYN~1\fftw3.dll")
LoadDll("G:\Hybrid\32bit\AVISYN~1\LIBFFT~1.DLL")
Import("G:\Hybrid\32bit\avisynthPlugins\QTGMC.avsi")
Import("G:\Hybrid\32bit\avisynthPlugins\SMDegrain.avsi")
Import("G:\Hybrid\32bit\avisynthPlugins\AnimeIVTC.avsi")
see the red one above, it's seems very old from it's name, I leave a note in OP for what masktools that needed
edit: and I just test this with mpc
SetMemoryMax(1536)
SetMTMode(6,16) # changing MT mode
ColorBars(width=640, height=480).converttoyv12()
RequestLinear(rlim=60,clim=60)
# deinterlacing
SetMTMode(2) # changing MT mode
AssumeTFF()
QTGMC(Preset="Placebo", ediThreads=2)
SelectEven()
distributor()
return last
it work but crash later (after reach 4 minutes)
but I didn't expected more with something didn't update for years (avs MT), and with these Threads in 32 process!
edit2:
SetMemoryMax(1536)
SetMTMode(6,4) # changing MT mode
ColorBars(width=640, height=480).converttoyv12()
RequestLinear(rlim=60,clim=60)
# deinterlacing
SetMTMode(2) # changing MT mode
AssumeTFF()
QTGMC(Preset="Placebo", ediThreads=1)
SelectEven()
distributor()
seems this work with no crash
Selur
16th March 2018, 19:38
Thanks! I totally forgot about that version.
-> That fixed it. :D
Seeing that SD content with Placebo eats around 1.2GB RAM, the mvtools2 crashs might be due to some memory limit when using HD content.
I also checked my other tool versions.
# MVTools2 (2.7.26 or above)
got: 2.7.26.0
# MaskTools2 (v2.2.7 or above)
got: 2.2.14.0
# NNEDI3 (0.9.4.6 or above)
had: 0.9.4.0, got now: v0.9.4.48 (didn't change color)
# RgTools
got: 0.96.7 from https://github.com/pinterf/RgTools/releases/tag/0.96 but dll reports 0.96.0
# SMDegrain (3.1.2.91s or above) unless you set tv_range=false
got: v3.1.2d from http://www.mediafire.com/file/9kd7d6ba2l0m6qd/SMDegrain+v.3.1.2d.zip
# AnimeIVTC (2.20 or above) if you work with YUY2 source
got: v2.20 2017-02-09 mod
# NNEDI2, NNEDI, EEDI3, EEDI2, TDeInt - if selected directly or via a source-match preset
got: NNEDI2 v1.6.0.0
got: NNEDI v1.3.0.0
got: EEDI2 v0.9.2.0
got: TDeint v1.1.0.0
# yadifmod2 - for Preset="Ultra Fast" or if selected directly
got: v0.0.4 from https://github.com/chikuzen/yadifmod2/releases/tag/0.0.4%2F0.0.0
# FFT3DFilter - if selected for noise processing
got v2.4.0.0
# dfttest (1.9.4 or above) - if selected for noise processing
got: v1.9.4.0
# KNLMeansCL - if selected for noise processing
got: v1.1.1
# AddGrainC - if NoiseDeint="Generate" selected for noise bypass
got: v1.7.1.0
# chikuzen PlanarTools - if you work with YUY2 source (not necessarily required but may improve speed)
got: v0.3.0
=> Is there a newer SMDegrain version than 3.1.2d? Where can I find it? I thought https://forum.videohelp.com/threads/369142-Simple-MDegrain-Mod-v3-1-2d-A-Quality-Denoising-Solution was the 'official' home of SMDegrain,..
Cu Selur
Ps.: HD content does work with Placebo and 32bit when limiting the threads to <=4.
real.finder
16th March 2018, 21:31
=> Is there a newer SMDegrain version than 3.1.2d? Where can I find it? I thought https://forum.videohelp.com/threads/369142-Simple-MDegrain-Mod-v3-1-2d-A-Quality-Denoising-Solution was the 'official' home of SMDegrain,..
Cu Selur
Ps.: HD content does work with Placebo and 32bit when limiting the threads to <=4.
yes there are newer SMDegrain than 3.1.2d, see link in my signature
and for mt things, I just note you didn't use SetMTMode(1) with distributor(), and that will make it slower and maybe more ram needed
and for most tools and encoders (like x264) they don't even need distributor() in first place (they call it internally)
you can see my mod of mpp (mp_pipeline) too, if you still care about non plus avs (as avs mt) :)
but anyway I recommend last avs+, the mt mode in it is more stable and uptodate than avs mt, and it's recommend whether you use mt or not since it less ram usage and faster in most cases and has many new things, and there are 64 avs+ that can use more than 4G of ram without crash :) and it's faster than 32 in most cases
StainlessS
17th March 2018, 00:02
Thanx Real.Finder, your work is much appreciated, we loves you, thanx.
Selur
17th March 2018, 07:50
SetMTMode(1) with distributor()
SetMTMode(1) usually causes crashs with most filters so I tend to stick with 2+ or higher.
What filters/scripts to you use SetMTMode(1) with?
I gave up on AVS+ a while ago and switched to Vapoursynth instead. I only use Avisynth mainly for some old filters and update and test it for the Hybrid users. :)
Cu Selur
Ps.: Thanks for the link.
real.finder
17th March 2018, 23:55
SetMTMode(1) usually causes crashs with most filters so I tend to stick with 2+ or higher.
What filters/scripts to you use SetMTMode(1) with?
I gave up on AVS+ a while ago and switched to Vapoursynth instead. I only use Avisynth mainly for some old filters and update and test it for the Hybrid users. :)
Cu Selur
Ps.: Thanks for the link.
I dont use avs mt. in fact I was use it before inside mpp but without distributor inside mpp block. and since it wasn't supported in mpp so it was do nothing and the speed that I got was from mpp itself since it kinda do some mt work aside from multiprocessing
but anyway, mostly internal core filters work with the mode 1, you can see what work with MT_NICE_FILTER in avs+ since they almost same
pinterf
18th March 2018, 09:05
I dont use avs mt. in fact I was use it before inside mpp but without distributor inside mpp block. and since it wasn't supported in mpp so it was do nothing and the speed that I got was from mpp itself since it kinda do some mt work aside from multiprocessing
but anyway, mostly internal core filters work with the mode 1, you can see what work with MT_NICE_FILTER in avs+ since they almost same
The versions I am maintaining from mvtools, masktools, rgtools, fft3dfilter are all self-registering themselves with the proper MT mode for Avisynth+. Masktools2, and rgtools are MT_NICE_FILTER the others are MT_MULTI_INSTANCE mostly. These settings which the filters internally report to avs+ are only overwritten when one specifies force=true in SetFilterMtMode.
real.finder
18th March 2018, 22:34
The versions I am maintaining from mvtools, masktools, rgtools, fft3dfilter are all self-registering themselves with the proper MT mode for Avisynth+. Masktools2, and rgtools are MT_NICE_FILTER the others are MT_MULTI_INSTANCE mostly. These settings which the filters internally report to avs+ are only overwritten when one specifies force=true in SetFilterMtMode.
yeah I already know that, anyway seems you missed some posts cuz Selur take about the mode 1 in old avs 2.6 mt by SEt :)
abyss616
1st May 2018, 16:39
I'm having issues with QTGMC. First, my script:
SetMemoryMax(1000)
SetMTMode(5, 0)
Import("C:\Program Files (x86)\AviSynth\plugins\QTGMC.avsi")
Import("C:\Program Files (x86)\AviSynth\plugins\SMDegrain_v3.1.2.93s.avsi")
Import("C:\Program Files (x86)\AviSynth\plugins\LimitedSharpenFaster.avs")
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\masktools2.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\mvtools2.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\RgTools.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\nnedi3.dll")
v=LWLibavVideoSource("J:\01-Miami.mkv") #or DSS2 or LSmashVideoSource
a=NicAC3Source("J:\01-Miami.ac3")
AudioDub(v,a)
ConvertToYV12(interlaced=true)
Trim(140,47315)
AssumeTFF()
Spline64Resize(640,480)
AddBorders(188, 0, 188, 0, color=$000000)
SetMTMode(mode=2)
QTGMC(Preset="Slower", SourceMatch=3, Lossless=2, EdiThreads=2)
Spline64Resize(1280,720)
I am using it to convert VHS video into 720p video. If I take the above script and attempt to use VirtualDub or MeGUI, the encoding process will work for an indiscriminate amount of time, then crash. The only way I can get this to work is to use MeGUI's 'Add Pre-rendering job' option. Unfortunately, this slows the encoding down from ~30 fps to ~5.
I have tried this on two different computers (both Windows 10) and using DSS2 and LWLibavVideoSource/LSmashVideoSource with no luck. Any idea what might be causing the crashes and why the pre-rendering job option is the only way it works? Thanks.
Stereodude
1st May 2018, 16:52
I'm having issues with QTGMC. First, my script:
...
I am using it to convert VHS video into 720p video. If I take the above script and attempt to use VirtualDub or MeGUI, the encoding process will work for an indiscriminate amount of time, then crash. The only way I can get this to work is to use MeGUI's 'Add Pre-rendering job' option. Unfortunately, this slows the encoding down from ~30 fps to ~5.
I have tried this on two different computers (both Windows 10) and using DSS2 and LWLibavVideoSource/LSmashVideoSource with no luck. Any idea what might be causing the crashes and why the pre-rendering job option is the only way it works? Thanks.
Many years ago when I first started playing with QTGMC I was not able to find reliable MT settings that could get all the way through an hour long program. I gave up on that. I either run multiple encodes in parallel or make an intermediate "file" splitting the source into 4 equal length pieces with 4 scripts and run those 4 scripts to intermediate lossless AVI files simultaneously and then do the encode from a 5th script that combines the 4 lossless AVI files.
Like this:
(AVIsource("F:\Temp\TAB_1.avi", audio = false, pixel_type = "YV12") + \
AVIsource("F:\Temp\TAB_2.avi", audio = false, pixel_type = "YV12") + \
AVIsource("F:\Temp\TAB_3.avi", audio = false, pixel_type = "YV12") + \
AVIsource("F:\Temp\TAB_4.avi", audio = false, pixel_type = "YV12"))
It works well enough that I haven't bothered to try to revisit multi-threading QTGMC again.
Music Fan
1st May 2018, 16:57
Any idea what might be causing the crashes and why the pre-rendering job option is the only way it works?
I don't know, probably the settings SetMemoryMax and SetMTMode.
And the order is not the best, I would not put any resize before QTGMC and would do this ;
(...)
AudioDub(v,a)
AssumeTFF()
Trim(140,47315)
ConvertToYV12(interlaced=true)
SetMTMode(mode=2)
QTGMC(Preset="Slower", SourceMatch=3, Lossless=2, EdiThreads=2)
Spline64Resize(960,720)
AddBorders(160, 0, 160, 0, color=$000000)
Logan9778
1st May 2018, 21:46
Well, I'm still just a noob at all this, but I have worked with about a dozen PAL videos now using QTGMC, and this multicore script has always worked well for me. At times it has run for MANY hours de-interlacing PAL video.
LoadPlugin("C:\DGDecNV2053\DGDecodeNV.dll")
SetWorkingDir("C:\Program Files (x86)\AviSynth\plugins")
SetMTMode(5,6)
DGSource("F:\Test Space\Disney Rarities\title00.dgi")
SetMTMode(2)
QTGMC(FPSDivisor=1,Preset="Placebo",Edithreads=4)
Crop(8,2,-8,-2)
SetMTMode(5,6) and Edithreads=4 are the numbers you want to play with to try to get it right with your machine.
hello_hello
2nd May 2018, 16:29
Many years ago when I first started playing with QTGMC I was not able to find reliable MT settings that could get all the way through an hour long program. I gave up on that. I either run multiple encodes in parallel or make an intermediate "file" splitting the source into 4 equal length pieces with 4 scripts and run those 4 scripts to intermediate lossless AVI files simultaneously and then do the encode from a 5th script that combines the 4 lossless AVI files.
I do the same, only without the intermediate files.
If you split an encode into "parts" by adding Trim() to copies of a script, so each copy encodes a different section of the video, you can append the encoded sections with MKVToolNix easily enough, as long as you add --stitchable to the x264 command line.
I don't aim for a particular file size or use 2 pass encoding though. If you do then you'd have to eventually encode the entire video as a whole.
Atak_Snajpera
2nd May 2018, 17:19
I think the problem is that you are still using "old" MT implementation + 32 bit version of AviSynth. (2GiB memory limit)
QTGMC works fine in AviSynth+ MT x64.
I think the problem is that you are still using "old" MT implementation + 32 bit version of AviSynth. (2GiB memory limit)
QTGMC works fine in AviSynth+ MT x64.
Mega +1 to this. This fixed all of my problems and I mostly work with HD footage that eats way at my ram and my time.
abyss616
2nd May 2018, 17:58
I don't know, probably the settings SetMemoryMax and SetMTMode.
And the order is not the best, I would not put any resize before QTGMC and would do this ;
(...)
AudioDub(v,a)
AssumeTFF()
Trim(140,47315)
ConvertToYV12(interlaced=true)
SetMTMode(mode=2)
QTGMC(Preset="Slower", SourceMatch=3, Lossless=2, EdiThreads=2)
Spline64Resize(960,720)
AddBorders(160, 0, 160, 0, color=$000000)
Thank you for this - just reordering the commands in the script sped up the encoding process by about 2 fps.
I'll give AVS+ a try and see what happens.
Atak_Snajpera
2nd May 2018, 18:39
Thank you for this - just reordering the commands in the script sped up the encoding process by about 2 fps.
I'll give AVS+ a try and see what happens.
For best performance limit Prefetch value to number of physical cores.
heartagram
5th June 2018, 11:05
can you give me a simple script to deinterlace this video?
No.
1. Analysing the interlacing attributes requires a video clip (preferably with steady horizontal motion) of at least a second duration, not just one single frame.
2. Attachments in this forum have to be approved by a moderator which takes time. Better use an external file hoster.
heartagram
5th June 2018, 11:25
can you suggest me any free avi video cutter to give you the sample!?
VirtualDub2 (https://sourceforge.net/projects/vdfiltermod/); select a range from one keyframe to another, to possibly avoid recompresion (using "Video - Direct Stream Copy" mode). BTW, which video format is contained? (File - Information)
Music Fan
5th June 2018, 11:45
Or MKVMerge or tsMuxer.
heartagram
5th June 2018, 11:59
avi format. the videos are not captured by me from VHS, and there is something wrong with them....i just want to encode them, to fix the picture if i can and make them with smaller size.
VirtualDubMod 1.5.10.2 says:
VirtualDub cannot decode 4:2:2 Motion JPEG frames with image widths or heights that are not multiples by 16.
So we have also wrong resolution i guess..
EDIT:
video sample 3sec
https://we.tl/2Hr8YMgkDk
VirtualDub2 is not VirtualDubMod...
_
Frequently asked question: smart deinterlacers with motion prediction (like QTGMC) need steady and continuous motion; cartoons have discrete motion (a.k.a. "Stop Motion"). QTGMC is not suitable for this kind of material because it will predict motion wrong.
Well, in this special case, one frame would have told us enough... it just had to be visible. :o
Unfortunately, I don't know a "cartoon-safe" deinterlacer right now...
heartagram
5th June 2018, 15:35
i got it thanks...
I believe cartoons may get an advantage from a specific kind of decimation (forcing the TV-common frame rates down to cartoon-original low frame rates by combining and averaging the most similar fields). Such issues will have their own topics already.
real.finder
5th June 2018, 18:55
Unfortunately, I don't know a "cartoon-safe" deinterlacer right now...
sanimebob ;)
manono
5th June 2018, 19:47
can you give me a simple script to deinterlace this video?
That's not a video.
And it's not field blended, only phase shifted. You could try this:
AssumeTFF()
tdeintted = QTGMC(FPSDivisor=2)#or a different deinterlacer, if you prefer
tfm(CThresh=5,clip2=tdeintted)
heartagram
6th June 2018, 10:22
That's not a video.
And it's not field blended, only phase shifted. You could try this:
AssumeTFF()
tdeintted = QTGMC(FPSDivisor=2)#or a different deinterlacer, if you prefer
tfm(CThresh=5,clip2=tdeintted)
video sample
https://forum.doom9.org/showpost.php?p=1843644&postcount=547
i did you scipt and here is the result -
https://image.ibb.co/jmaG2o/balu_no_script.png - source
https://image.ibb.co/gmZXa8/balu_tfm.png -with tfm, assumetff,tdeint
Looks like this video was scaled vertically before trying to deinterlace. That's deadly.
manono
6th June 2018, 19:43
i did you scipt and here is the result -
Please post the complete script. I saw nothing like that when using this script:
AVISource("balu-clips-no-deinterlace.avi")
AssumeTFF()
tdeintted = QTGMC(FPSDivisor=2)
tfm(CThresh=5,clip2=tdeintted)
return last
https://www.sendspace.com/file/z802gg
heartagram
6th June 2018, 20:04
your sample looks great!
This is the script i tried
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\TIVTC\x86\TIVTC.dll")
DirectShowSource("D:\anime\A Bad Reflection on You 2.avi") #
Crop(20, 2, -22, -10).LanczosResize(720,576)
AssumeTFF()
tdeintted = QTGMC(FPSDivisor=2)
tfm(CThresh=5,clip2=tdeintted)
return last
it seems that im doing something wrong with the crop&resize function. Should i leave the resolution to 720x540?
SaurusX
6th June 2018, 20:16
your sample looks great!
This is the script i tried
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\TIVTC\x86\TIVTC.dll")
DirectShowSource("D:\anime\A Bad Reflection on You 2.avi") #
Crop(20, 2, -22, -10).LanczosResize(720,576)
AssumeTFF()
tdeintted = QTGMC(FPSDivisor=2)
tfm(CThresh=5,clip2=tdeintted)
return last
it seems that im doing something wrong with the crop&resize function.
Yes. Never resize before IVTC / deinterlacing. You'll get extremely bad results as you've now experienced.
heartagram
6th June 2018, 20:21
thanks
this seems to work fine now. what do you think? i had to add converttorgb32 because there was issue with the colors... in that case crop function seems to be the problem, adding converttorgb32 fix the problem. i dont know if this is ok.
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\TIVTC\x86\TIVTC.dll")
DirectShowSource("D:\anime\A Bad Reflection on You 2.avi") #
AssumeTFF()
tdeintted = QTGMC(FPSDivisor=2)
tfm(CThresh=5,clip2=tdeintted)
Crop(20, 2, -22, -10).LanczosResize(720,576)
ConverttoRgb32
return last
neah...my mistake...removed converttorgb line...everything looks fine.
manono
7th June 2018, 19:56
Don't use DirectShowSource as your source filter if you can avoid it. In your case, the built-in AviSource is much better.
Why was the video 720x540 if the source was a VHS tape? Why wasn't it captured as 720x576 to begin with? I think you said earlier you didn't capture the tape? If you know the capper, you should advise him.
By cropping and resizing as you did (for DVD, I presume?), you've changed the aspect ratio. Maybe you don't consider that a problem, not sure.
heartagram
7th June 2018, 20:21
AviSource gives an error. something like "Avisource couldnt locate a decompressor for fourcc mjpg". (using virtualdubmod 1.5.10 to load and preview)
I'll check google/doom9 and try to solve it.
Yeah i met the guy on the internet, we shared some anime videos at that time. I told him that this captures could be done much better. ALso i asked him if its possible to send me the tapes because I had VHS recorder with internal TBC plus i was looking to buy external tbc, but he refused my offer...
No i'm not planning to make dvd. Some of the series has 2gb filesize... as i said i'll just try to make them smaller and keep the quality or make it better! Thanks to you it will work out!
btw should i leave it 720x540? I was thinking it is good idea to fix the resolution, nothing more.... ALso i'm using Megui loaded with x264 profiles, there is anime toons profile which im planing to give a try! any ideas for the encoding option?
Frequently asked question all over the internet: "couldn't locate a decompressor for FourCC 'MJPG'" => you have to install an MJPG VfW codec, e.g. Cedocida.
jmartinr
7th June 2018, 22:00
Frequently asked question all over the internet: "couldn't locate a decompressor for FourCC 'MJPG'" => you have to install an MJPG VfW codec, e.g. Cedocida.
Cedocida is a DV codec. Wrong example.
:o Sorry, I had in mind that it is a combined codec... sieve mind.
Well, a quite good and free MJPG VfW codec would be part of ffvfw in ffdshow; but in general, ffdshow is obsolete as DirectShow filters. Maybe via custom installation.
manono
7th June 2018, 22:30
AviSource gives an error. something like "Avisource couldnt locate a decompressor for fourcc mjpg".
Then you probably should install the ffdshow decoder (https://sourceforge.net/projects/ffdshow-tryout/):
ffdshow is an advanced DirectShow filter and Video for Windows codec (VFW) codec that supports many audio and video formats. For example: H.264, MPEG-4, MPEG-2, H.263, VP3, VP6, Theora, MJPEG, SVQ3, MP3, AC3, DTS, E-AC3, AAC, and Vorbis.
That's what I'm using. I forgot that AviSource won't decode MJPEG without some sort of additional codec and I apologize.
No i'm not planning to make dvd.
Then I'm not quite sure why you're making them 720x576. If you want square pixel (?), then that's not it. The guy resized them wrongly to begin with (given that VHS tapes follow ITU resizing). And, based purely on the sample, that 22 crop on the right is way too much. I get 12 or so. I get about 8 on the bottom. Is it cropped more elsewhere?
any ideas for the encoding option?
Sorry, but I've never used it. Others might have some MeGUI advice to share. What's the intended output format? MKV with x264 video and AAC audio?
heartagram
7th June 2018, 23:15
hmm strange. I do have installed ffdshow decoder. i'll have to re-check the settings or re-install.
I check also the crop sides. In the first minute of the video right side is way too much off so thats why i have set 22. A few minutes later can be set to 12. (acutally exactly after the intro part). I did not notice this before.
Yes thats what Megui has as a output - mkv x264, not sure about aac audio
Simply installing an ffdshow package is often not enough.
a) You have to tell apart the VfW codec (ffvfw) from the DirectShow filter (ffdshow).
b) You have to enable the decoders you want it to be responsible for. Here, in the "Decoder" page of the "VFW Configuration" (I believe that has a yellow icon in the start menu), set "MJPG" to "libavcodec". You can't use 64-bit AviSynth+ with a 32-bit version of ffdshow/ffvfw.
c) On some systems with many other VfW codecs already installed, enabling VfW codecs for several FourCC's in ffvfw is not reliable, possibly caused by incorrect entries in the registry. Happens only rarely, but happened to me already. I vaguely remember that a cleaner tool exists, but not anymore who made it, may have been shipped with an older Xvid installer... Fixing this manually in the registry was not too hard, I explained that somewhere before for raw YUV FourCC's. No panic. Usually it works.
real.finder
4th July 2018, 02:43
new QTGMC https://pastebin.com/AYeN23YY, you will need https://pastebin.com/fU2a3Mqy unless you set tv_range=false
didn't fully test it so I will wait for feedbacks before I put it in the 1st post
kuchikirukia
4th July 2018, 03:50
I have an interlaced Blu-ray up next so I'll take a look at it.
Do you know if the instability requiring a funky trim command to stop QTGMC from slowing down was ever fixed?
real.finder
4th July 2018, 14:13
I have an interlaced Blu-ray up next so I'll take a look at it.
Do you know if the instability requiring a funky trim command to stop QTGMC from slowing down was ever fixed?
it's not QTGMC bug, it's something in avs cache or in some plugin's, QTGMC is just wraps some functions from avs and it's plugins, no more no less
Deihnyx
9th July 2018, 00:19
Hello everyone,
I'm having some issues with QTGMC... not sure where that comes from since I'm using all the latest plugins (except for masktools, using v2.2.14 because .16 was making everything much darker?).
I see the problem with basically all the episodes from Dr Who season 6 (AVC interleaved fields) i'm trying to deinterlace. Frames are skipped here and there. In a few cases, the same couple frame repeats two or three times.
It causes the sound to desync progressively.
One example I've been able to reproduce every single time happens at 42" on the first episode "The Impossible Astronaut", when the astronaut points his finger at the doctor and Amy quickly turns back, the image slows down and display 1 frame/second for about 5 seconds.
It happens with the preset "slow" for this specific case, but not with the preset "medium". Although medium has issues in other episodes...
I am not sure what to do, back when I did Season 5 (VC1 interlaced) a few months ago I used the old version of the script from the old threat, and didn't have these problems. After reinstalling my computer and trying to use the newer script and plugins, this happens constantly.
The script I use is simply:
DirectShowSource("file.mkv",audio=false)
QTGMC( Preset="Medium" )
SelectEven()
Or with preset "Slow"
Does anyone has an idea why this might occur?
Thanks!
magiblot
9th July 2018, 01:31
Does anyone has an idea why this might occur?
Thanks!
I see some details in your script that should be taken care of before worrying about QTGMC:
1. DirectShowSource and AVC: DirectShowSource is not frame-accurate for AVC sources. Try another source filter, such as FFMS2 or LWLibavVideoSource. These two don't load audio by default.
2. Field order: is the interlacing Top Field First or Bottom Field First? Use AssumeTFF() or AssumeBFF() accordingly before deinterlacing. To know the field order, just make a script like this:
FFMS2("file.mkv")
AssumeTFF()
SeparateFields()
Play the script frame by frame. If everything moves back and forth, then you should use AssumeBFF() instead.
3. Telecine: is the source a 24fps->30fps telecine? If your source video runs at 30 fps, try the following functions instead of QTGMC:
TFM(pp=0)
TDecimate()
If the video isn't interlaced anymore and it plays smoothly, then deinterlacing was unnecessary.
Cheers.
PS.: In addition, it would be useful to know your version of AviSynth (see the output of Version()) and you should make sure that there are no old plugins being loaded without you knowing.
Deihnyx
9th July 2018, 02:00
Thanks a lot for the advice! Very appreciated.
I'll check all your points asap and let you know if something fixed the issue.
Thanks again!
manono
9th July 2018, 04:20
Please post a sample or samples showing the problem(s). 10 seconds will be plenty. No one can guess what you have when you don't even know yourself.
And why is it an MKV? Is it from a blu-ray, a DVD, or something you downloaded illegally?
Deihnyx
9th July 2018, 05:35
I own all the blurays that I rip for emby/plex using makemkv.
And whenever the source isn't AVC progressive I reencode it, otherwise I leave it as it.
Here's an example: https://drive.google.com/open?id=13hNHb1mBXxln91q76UxuBRjsqSitO5i7
This happens with preset "slow", but not on "medium" in this specific location. But in medium there were other issues on other locations.
Additional info:
- The source is classic european 25fps.
- Avisynth version is 2.60, build March 31st 2015
It was a clean install from scratch and the only plugins I installed were the plugins from the QTGMC wiki.
I'm trying with FFMS2 right now as advised above. The preview of the avs using MPC-HC seems to work so I'm hopeful.
In any case, thanks for all the help!
magiblot
9th July 2018, 09:44
Additional info:
- The source is classic european 25fps.
- Avisynth version is 2.60, build March 31st 2015
It was a clean install from scratch and the only plugins I installed were the plugins from the QTGMC wiki.
Good. The last version of these plugins will work better with the last version of AviSynth: https://github.com/pinterf/AviSynthPlus/releases
Get the "with-vc_redist" installer (only necessary for the first time).
Cheers.
manono
9th July 2018, 19:31
Here's an example: https://drive.google.com/open?id=13hNHb1mBXxln91q76UxuBRjsqSitO5i7
This happens with preset "slow", but not on "medium" in this specific location. But in medium there were other issues on other locations.
So, this was reencoded? In case I wasn't clear, an untouched sample from the source. And, yes, the fix could be as simple as using a proper source filter.
real.finder
11th July 2018, 03:31
new update, see the OP
Dreamland
11th July 2018, 19:56
http://i65.tinypic.com/2e0u740.png
error in every frame with QTGMC 3.360
works with v. 3.358 and 3.359
update masktools2-v2.2.17
Avisynth version is 2.60 in win 10 ( april update) 64 bit
thx for help
real.finder
11th July 2018, 21:48
http://i65.tinypic.com/2e0u740.png
error in every frame with QTGMC 3.360
works with v. 3.358 and 3.359
update masktools2-v2.2.17
Avisynth version is 2.60 in win 10 ( april update) 64 bit
thx for help
what settings and source info?
real.finder
13th July 2018, 03:54
Small update
Dreamland
13th July 2018, 19:39
this is file source
https://mega.nz/#!8J8SDaiY!CctirVd1hEFgkUt4s_M1L_No5EY9LHXKQOUlcUACSrk
this is avs :
http://i66.tinypic.com/xfrx1g.png
thx a lot
real.finder
19th July 2018, 08:59
this is file source
https://mega.nz/#!8J8SDaiY!CctirVd1hEFgkUt4s_M1L_No5EY9LHXKQOUlcUACSrk
this is avs :
http://i66.tinypic.com/xfrx1g.png
thx a lot
sorry for late
it's seems work fine with NTSC dvd with QTGMC( Preset="Placebo") for me using avs+, seems something in new masktools is not working in your pc or avs26
Selur
19th July 2018, 19:45
Using 32bit Avisynth+ MT (https://github.com/pinterf/AviSynthPlus/releases/tag/r2728) and latest masktool2 (https://github.com/pinterf/masktools/releases/tag/2.2.17) (tried both normal and _xp)
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\LoadDll.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\DGDecodeNV.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\TIVTC.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\AddGrainC.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\dfttest.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\EEDI2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\eedi3.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\FFT3DFilter.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\masktools2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\mvtools2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\nnedi.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\nnedi2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\SSE2Tools.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\TDeint.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\VerticalCleanerSSE2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\PlanarTools.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\MedianBlur2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\nnedi3.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\RgTools.dll")
LoadCPlugin("I:\Hybrid\32bit\AVISYN~1\yadif.dll")
LoadDLL("I:\Hybrid\32bit\AVISYN~1\fftw3.dll")
LoadDLL("I:\Hybrid\32bit\AVISYN~1\libfftw3f-3.dll")
Import("I:\Hybrid\32bit\avisynthPlugins\QTGMC.avsi")
Import("I:\Hybrid\32bit\avisynthPlugins\SMDegrain.avsi")
Import("I:\Hybrid\32bit\avisynthPlugins\AnimeIVTC.avsi")
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
# loading source: D:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\avc - interlaced.m2ts
# input color sampling YV12
# input luminance scale tv
DGSource(dgi="E:\Temp\m2ts_5abed9d8018429aaa9e55641ee52ec69_41.dgi",fieldop=2)
RequestLinear(rlim=60,clim=60)
# current resolution: 1920x1080
# deinterlacing
AssumeTFF()
QTGMC(Preset="Placebo", ediThreads=2)
SelectEven()
# filtering
PreFetch(4)
return last
Placebo crashes here too,.... (RAM usage was around 1.2GB according to taskmgr, so still room even for a 32bit version)
v3.358s works fine,
v3.60s and v3.61s don't
-> doesn't look like an avs26 issue, my guess it that either the script is broken or masktools2 (2.2.17).
Cu Selur
Groucho2004
19th July 2018, 20:25
@Selur
Your script with a 1080i source works for me. However, there's something fishy with TIVTC. Remove the RequestLinear call and also the TIVTC dll from your plugin directory (in your case the "LoadPlugin("I:\Hybrid\32bit\AVISYN~1\TIVTC.dll")" call).
LigH
19th July 2018, 20:57
Then let's hope TIVTC gets fixed; Hybrid will need to use it now and then. Instead of QTGMC, for different uses.
Groucho2004
19th July 2018, 21:02
Then let's hope TIVTC gets fixed; Hybrid will need to use it now and then. Instead of QTGMC, for different uses.RequestLinear() from the original version 1.0.5 (Tritical) seems to work. It's possibly something that pinterf changed in the mt mode registration.
Selur
20th July 2018, 03:52
Thanks!
I can confirm the original RequestLinear (1.0.5) works fine.
1.0.10 also works fine, only the latest 1.0.11 seems to crash.
Cu Selur
Ps.: created an issue entry over at https://github.com/pinterf/TIVTC/issues/4
Groucho2004
20th July 2018, 09:45
Thanks!
I can confirm the original RequestLinear (1.0.5) works fine.
1.0.10 also works fine, only the latest 1.0.11 seems to crash.
Cu Selur
Ps.: created an issue entry over at https://github.com/pinterf/TIVTC/issues/4
For the time being I made a stand-alone version of RequestLinear (https://www.dropbox.com/s/1105b2nciarfzq8/RequestLinear_11.7z?dl=1) based on pinterf's latest code (x86 & x64).
Selur
20th July 2018, 17:09
@Groucho2004: Not using TIVTC and the stand-alone RequestLinear32.dll:
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\LoadDll.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\DGDecodeNV.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\RequestLinear32.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\AddGrainC.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\dfttest.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\EEDI2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\eedi3.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\FFT3DFilter.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\masktools2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\mvtools2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\nnedi.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\nnedi2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\SSE2Tools.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\TDeint.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\VerticalCleanerSSE2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\PlanarTools.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\MedianBlur2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\nnedi3.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\RgTools.dll")
LoadCPlugin("I:\Hybrid\32bit\AVISYN~1\yadif.dll")
LoadDLL("I:\Hybrid\32bit\AVISYN~1\fftw3.dll")
LoadDLL("I:\Hybrid\32bit\AVISYN~1\libfftw3f-3.dll")
Import("I:\Hybrid\32bit\avisynthPlugins\QTGMC.avsi")
Import("I:\Hybrid\32bit\avisynthPlugins\SMDegrain.avsi")
Import("I:\Hybrid\32bit\avisynthPlugins\AnimeIVTC.avsi")
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
# loading source: D:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\avc - interlaced.m2ts
# input color sampling YV12
# input luminance scale tv
DGSource(dgi="E:\Temp\m2ts_5abed9d8018429aaa9e55641ee52ec69_41.dgi",fieldop=2)
RequestLinear(rlim=60,clim=60)
# current resolution: 1920x1080
# deinterlacing
AssumeTFF()
QTGMC(Preset="Placebo", ediThreads=2)
SelectEven()
# filtering
PreFetch(4)
return last
still causes the crash here, so seems like the problem lies within the current RequestLinear code,..
Cu Selur
Groucho2004
20th July 2018, 17:30
still causes the crash here, so seems like the problem lies within the current RequestLinear code
Odd, works for me.
Selur
20th July 2018, 17:52
Strange, I just tried:
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\LoadDll.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\LSMASHSource.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\AddGrainC.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\dfttest.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\EEDI2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\eedi3.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\FFT3DFilter.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\masktools2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\mvtools2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\nnedi.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\nnedi2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\SSE2Tools.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\TDeint.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\VerticalCleanerSSE2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\PlanarTools.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\MedianBlur2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\nnedi3.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\RgTools.dll")
LoadCPlugin("I:\Hybrid\32bit\AVISYN~1\yadif.dll")
LoadDLL("I:\Hybrid\32bit\AVISYN~1\fftw3.dll")
LoadDLL("I:\Hybrid\32bit\AVISYN~1\libfftw3f-3.dll")
Import("I:\Hybrid\32bit\avisynthPlugins\QTGMC.avsi")
Import("I:\Hybrid\32bit\avisynthPlugins\SMDegrain.avsi")
Import("I:\Hybrid\32bit\avisynthPlugins\AnimeIVTC.avsi")
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
# loading source: D:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\avc - interlaced.m2ts
# input color sampling YV12
# input luminance scale tv
LWLibavVideoSource("D:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\avc - interlaced.m2ts",cache=false,stacked=true,format="YUV420P8")
# current resolution: 1920x1080
# deinterlacing
AssumeTFF()
QTGMC(Preset="Placebo", ediThreads=2)
SelectEven()
# filtering
PreFetch(4)
return last
Not using TIVTC or RequestLinear and the script is still crashing,...
Both 'Very Slow' and 'Placebo' crash, presets below that work fine.
Groucho2004
20th July 2018, 18:11
LWLibavVideoSource("D:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\avc - interlaced.m2ts",cache=false,stacked=true,format="YUV420P8")
Not using TIVTC or RequestLinear and the script is still crashing,...
Both 'Very Slow' and 'Placebo' crash, presets below that work fine.
You changed the source filter. Try LWLibavVideoSource with "threads = 1".
Selur
20th July 2018, 18:20
Yes, I changed the source filter to make sure it wasn't triggered by DGDecNV somehow. :)
You changed the source filter. Try LWLibavVideoSource with "threads = 1".
using:
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\LoadDll.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\LSMASHSource.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\AddGrainC.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\dfttest.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\EEDI2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\eedi3.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\FFT3DFilter.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\masktools2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\mvtools2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\nnedi.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\nnedi2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\SSE2Tools.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\TDeint.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\VerticalCleanerSSE2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\PlanarTools.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\MedianBlur2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\nnedi3.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\RgTools.dll")
LoadCPlugin("I:\Hybrid\32bit\AVISYN~1\yadif.dll")
LoadDLL("I:\Hybrid\32bit\AVISYN~1\fftw3.dll")
LoadDLL("I:\Hybrid\32bit\AVISYN~1\libfftw3f-3.dll")
Import("I:\Hybrid\32bit\avisynthPlugins\QTGMC.avsi")
Import("I:\Hybrid\32bit\avisynthPlugins\SMDegrain.avsi")
Import("I:\Hybrid\32bit\avisynthPlugins\AnimeIVTC.avsi")
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
# loading source: D:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\avc - interlaced.m2ts
# input color sampling YV12
# input luminance scale tv
LWLibavVideoSource("D:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\avc - interlaced.m2ts",cache=false,stacked=true,format="YUV420P8",threads=1)
# current resolution: 1920x1080
# deinterlacing
AssumeTFF()
QTGMC(Preset="Placebo", ediThreads=2)
SelectEven()
# filtering
PreFetch(4)
return last
it's still crashing with anything slower than preset 'Slower',... (setting 'ediThreads' to 1, doesn't help either).
Cu Selur
Groucho2004
20th July 2018, 18:24
it's still crashing with anything slower than preset 'Slower',... (setting 'ediThreads' to 1, doesn't help either).Are you testing this with AVSMeter?
Selur
20th July 2018, 18:26
Nope, but I could.
Groucho2004
20th July 2018, 18:28
Nope, but I could.You should also run "AVSMeter avsinfo -log" and post the log.
Selur
20th July 2018, 18:31
That gives me:
Log file created with: AVSMeter 2.8.0 (x86)
[OS/Hardware info]
Operating system: Windows 10 (x64) (Build 17134)
CPU brand string: AMD Ryzen 7 1800X Eight-Core Processor
CPU features: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, FMA3, SSE4A, MMXEXT, MOVBE, POPCNT, AES, F16C
[Avisynth info]
VersionString: AviSynth+ 0.1 (r2664, MT, i386)
VersionNumber: 2.60
File / Product version: 0.1.0.0 / 0.1.0.0
Interface Version: 6
Multi-threading support: Yes
Avisynth.dll location: i:\Hybrid\32bit\avisynth.dll
Avisynth.dll time stamp: 2018-03-28, 19:04:18 (UTC)
[Plugin errors/warnings]
_______________________________________________________________________________________________________________________________________________________________________________________________________________________
No plugin directory references found in the registry.
Plugin auto-loading disabled.
_______________________________________________________________________________________________________________________________________________________________________________________________________________________
[Internal (core) functions]
AVIFileSource
AVISource
AddAlphaPlane
AddAutoloadDir
AddBorders
AlignedSplice
Amplify
AmplifydB
Animate
Apply
ApplyRange
Assert
AssumeBFF
AssumeFPS
AssumeFieldBased
AssumeFrameBased
AssumeSampleRate
AssumeScaledFPS
AssumeTFF
AudioDub
AudioDubEx
AudioTrim
AutoloadPlugins
AverageB
AverageChromaU
AverageChromaV
AverageG
AverageLuma
AverageR
BDifference
BDifferenceFromPrevious
BDifferenceToNext
BPlaneMax
BPlaneMedian
BPlaneMin
BPlaneMinMaxDifference
BicubicResize
BilinearResize
BitsPerComponent
BlackmanResize
Blackness
BlankClip
Blur
Bob
Cache
ChangeFPS
Chr
ChromaUDifference
ChromaVDifference
ClearAutoloadDirs
ColorBars
ColorBarsHD
ColorKeyMask
ColorSpaceNameToPixelType
ColorYUV
CombinePlanes
Compare
ComplementParity
ComponentSize
ConditionalFilter
ConditionalReader
ConditionalSelect
ContinuedDenominator
ContinuedNumerator
ConvertAudio
ConvertAudioTo16bit
ConvertAudioTo24bit
ConvertAudioTo32bit
ConvertAudioTo8bit
ConvertAudioToFloat
ConvertBackToYUY2
ConvertBits
ConvertFPS
ConvertTo16bit
ConvertTo8bit
ConvertToFloat
ConvertToMono
ConvertToPlanarRGB
ConvertToPlanarRGBA
ConvertToRGB
ConvertToRGB24
ConvertToRGB32
ConvertToRGB48
ConvertToRGB64
ConvertToY
ConvertToY8
ConvertToYUV411
ConvertToYUV420
ConvertToYUV422
ConvertToYUV444
ConvertToYUY2
ConvertToYV12
ConvertToYV16
ConvertToYV24
ConvertToYV411
Crop
CropBottom
Default
Defined
DelayAudio
DeleteFrame
Dissolve
DoubleWeave
DuplicateFrame
Echo
EnsureVBRMP3Sync
Eval
Exist
Expr
ExtractA
ExtractB
ExtractG
ExtractR
ExtractU
ExtractV
ExtractY
FadeIO
FadeIO0
FadeIO2
FadeIn
FadeIn0
FadeIn2
FadeOut
FadeOut0
FadeOut2
FixBrokenChromaUpsampling
FixLuminance
FlipHorizontal
FlipVertical
FrameEvaluate
FreezeFrame
FunctionExists
GDifference
GDifferenceFromPrevious
GDifferenceToNext
GPlaneMax
GPlaneMedian
GPlaneMin
GPlaneMinMaxDifference
GaussResize
GeneralConvolution
GetChannel
GetChannels
GetLeftChannel
GetParity
GetProcessInfo
GetRightChannel
Grayscale
Greyscale
HasAlpha
HasAudio
HasVideo
Hex
Histogram
HorizontalReduceBy2
Import
Info
Interleave
InternalCache
InternalFunctionExists
Invert
Is420
Is422
Is444
IsAudioFloat
IsAudioInt
IsBool
IsClip
IsFieldBased
IsFloat
IsFrameBased
IsInt
IsInterleaved
IsPackedRGB
IsPlanar
IsPlanarRGB
IsPlanarRGBA
IsRGB
IsRGB24
IsRGB32
IsRGB48
IsRGB64
IsString
IsVideoFloat
IsY
IsY8
IsYUV
IsYUVA
IsYUY2
IsYV12
IsYV16
IsYV24
IsYV411
KillAudio
KillVideo
Lanczos4Resize
LanczosResize
Layer
Letterbox
Levels
Limiter
LoadCPlugin
LoadPlugin
Load_Stdcall_Plugin
LogMsg
Loop
LumaDifference
Mask
MaskHS
Max
Merge
MergeARGB
MergeChannels
MergeChroma
MergeLuma
MergeRGB
MessageClip
Min
MixAudio
MonoToStereo
Normalize
Null
NumComponents
OpenDMLSource
Ord
Overlay
PeculiarBlend
PixelType
PlaneToY
PointResize
Prefetch
Preroll
Pulldown
RDifference
RDifferenceFromPrevious
RDifferenceToNext
RGBAdjust
RGBDifference
RGBDifferenceFromPrevious
RGBDifferenceToNext
RPlaneMax
RPlaneMedian
RPlaneMin
RPlaneMinMaxDifference
ReduceBy2
RemoveAlphaPlane
ResampleAudio
ResetMask
Reverse
ScriptClip
ScriptDir
ScriptDirUtf8
ScriptFile
ScriptFileUtf8
ScriptName
ScriptNameUtf8
SegmentedAVISource
SegmentedDirectShowSource
Select
SelectEven
SelectEvery
SelectOdd
SelectRangeEvery
SeparateColumns
SeparateFields
SeparateRows
SetFilterMTMode
SetLogParams
SetMemoryMax
SetPlanarLegacyAlignment
SetWorkingDir
Sharpen
ShowAlpha
ShowBlue
ShowFiveVersions
ShowFrameNumber
ShowGreen
ShowRed
ShowSMPTE
ShowTime
ShowU
ShowV
ShowY
SincResize
SkewRows
SpatialSoften
Spline
Spline16Resize
Spline36Resize
Spline64Resize
StackHorizontal
StackVertical
StrFromUtf8
StrToUtf8
String
Subtitle
Subtract
SwapFields
SwapUV
TemporalSoften
Time
Tone
Trim
Turn180
TurnLeft
TurnRight
Tweak
UDifferenceFromPrevious
UDifferenceToNext
UPlaneMax
UPlaneMedian
UPlaneMin
UPlaneMinMaxDifference
UToY
UToY8
UnalignedSplice
VDifferenceFromPrevious
VDifferenceToNext
VPlaneMax
VPlaneMedian
VPlaneMin
VPlaneMinMaxDifference
VToY
VToY8
Version
VersionNumber
VersionString
VerticalReduceBy2
WAVSource
Weave
WeaveColumns
WeaveRows
WriteFile
WriteFileEnd
WriteFileIf
WriteFileStart
YDifferenceFromPrevious
YDifferenceToNext
YPlaneMax
YPlaneMedian
YPlaneMin
YPlaneMinMaxDifference
YToUV
abs
acos
asin
atan
atan2
audiobits
audiochannels
audioduration
audiolength
audiolengthf
audiolengthhi
audiolengthlo
audiolengths
audiorate
bitand
bitchange
bitchg
bitclear
bitclr
bitlrotate
bitlshift
bitlshifta
bitlshiftl
bitlshifts
bitlshiftu
bitnot
bitor
bitrol
bitror
bitrrotate
bitrshifta
bitrshiftl
bitrshifts
bitrshiftu
bitsal
bitsar
bitset
bitsetcount
bitshl
bitshr
bittest
bittst
bitxor
ceil
cos
cosh
exp
fillstr
findstr
float
floor
fmod
frac
framecount
framerate
frameratedenominator
frameratenumerator
height
hexvalue
int
lcase
leftstr
log
log10
midstr
muldiv
nop
pi
pow
rand
replacestr
revstr
rightstr
round
sign
sin
sinh
sqrt
strcmp
strcmpi
strlen
tan
tanh
trimall
trimleft
trimright
ucase
undefined
value
width
[DLL dependencies (x86)]
i:\Hybrid\32bit\avisynth.dll:
AVIFIL32.dll
MSVFW32.dll
MSACM32.dll
GDI32.dll
USER32.dll
ADVAPI32.dll
ole32.dll
imagehlp.dll
MSVCP140.dll
KERNEL32.dll
VCRUNTIME140.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-environment-l1-1-0.dll
api-ms-win-crt-filesystem-l1-1-0.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-utility-l1-1-0.dll
api-ms-win-crt-convert-l1-1-0.dll
api-ms-win-crt-time-l1-1-0.dll
Only strange thing is the reported:
i:\Hybrid\32bit\avisynth.dll
since the file is actually names:
i:\Hybrid\32bit\AviSynth.dll
---
Running the last script through AVSMeter I get:
Script error: Expr does not have a named argument "scale_inputs"
(masktools2.dll is 2.2.17.0)
Groucho2004
20th July 2018, 18:35
That gives me:
[Avisynth info]
VersionString: AviSynth+ 0.1 (r2664, MT, i386)
Update to the latest avisynth (r2728).
Selur
20th July 2018, 18:44
Strange I was sure I used that version already. :)
That seems to fix the issue.
-> Thanks
(now it works with TIVTC and RequestLinear,..)
vorob
12th August 2018, 09:16
Sorry for lazy posting, but is there any one click script that will have all nessesary things in one zip file? I'll just point to my video and it will do magic. No numerous files download, config fixing, installing weird soft on my pc. etc.
LigH
12th August 2018, 09:54
Almost ... the AviSynth Wiki page for QTGMC (http://avisynth.nl/index.php/QTGMC) offers a table of download locations for "Core plugins", but each of them may get updated, sometimes in tight relation to the most recent avsi script. It would not be very useful to create a whole archive for all plugins if its maintenance could not easily be automated, and a Wiki page is not a usual location of a download mirror.
vorob
12th August 2018, 10:09
Almost ... the AviSynth Wiki page for QTGMC (http://avisynth.nl/index.php/QTGMC) offers a table of download locations for "Core plugins", but each of them may get updated, sometimes in tight relation to the most recent avsi script. It would not be very useful to create a whole archive for all plugins if its maintenance could not easily be automated, and a Wiki page is not a usual location of a download mirror.
Okay, anyway I managed to spend some time with downloading stuff. Now I can convert all my Video8 tapes with proper 50fps and good deinterlace.
https://pp.userapi.com/c846219/v846219981/bfe87/Yv35T-JmLV8.jpg
vorob
12th August 2018, 10:52
Wow, what's that? No such issue on original tape or cheap deintelacer.
https://pp.userapi.com/c844320/v844320981/c5791/YGpNTM1D4wc.jpg
vorob
12th August 2018, 16:21
maybe thats because i'm saving via virtualdub from 2013?
real.finder
12th August 2018, 19:40
maybe thats because i'm saving via virtualdub from 2013?
maybe, but post the script and sample clip
LigH
12th August 2018, 19:48
We know only little about your video. May it have a height which is not at least a multiple of 4? And the whole workflow has so many variables... no details - no clue.
By the way: Get up to date, use VirtualDub2 (https://sourceforge.net/projects/vdfiltermod/). It's superior, especially in cooperation with AviSynth+ (and VapourSynth).
vorob
13th August 2018, 07:10
Looks like multithreading was wrong, instead of SetMTMode (5, 6) i had SetMTMode (4, 8).
What's the best lossless codec? With smallest size? I used Lagarith, but i dunno it's ffmpeg command.
I've got only prores one, take a look:
ffmpeg -i "Washington, Datcha.avs" -c:v prores -profile:v 3 -pix_fmt yuv422p10le "Washington, Datcha_Deint.avi"
Since I just copypasted this line from another tutorial, can you help me with underlined part? What should i put there to have Lagarithone? Prores weigh too much.
Cary Knoop
13th August 2018, 07:39
What's the best lossless codec? With smallest size? I used Lagarith, but i dunno it's ffmpeg command.
I've got only prores one, take a look:
ffmpeg -i "Washington, Datcha.avs" -c:v prores -profile:v 3 -pix_fmt yuv422p10le "Washington, Datcha_Deint.avi"
Since I just copypasted this line from another tutorial, can you help me with underlined part? What should i put there to have Lagarithone? Prores weigh too much.
Well, Lagarith will 'weigh' much more as ProRes is lossy.
Assuming this video is from a video8 tape you might want to think hard about whether storing this as 10 bit 4:2:2 lossless isn't a bit overkill.
LigH
13th August 2018, 08:13
A lossless codec with good compression and wide support (both supporting different raw formats, and being supported in software with ffmpeg core) is the Ut Video Codec Suite (https://forum.doom9.org/showthread.php?t=143624) (VideoHelp Software archive (https://www.videohelp.com/software/Ut-Video-Codec-Suite)).
magiblot
13th August 2018, 15:15
FFMpeg is unable to encode with Lagarith, but VirtualDub/2 can (although you must configure the codec within VirtualDub so that it will use YV12, YUY2 or RGB compression).
StainlessS
13th August 2018, 16:16
Some time ago, it kind of surprised me that Lagarith could produce considerably smaller files than UT_Video, when source has
quite a few duplicate frames, I had just assumed that UT_Video would produce null frames as Lagarith does.
EDIT:
considerably smaller files than UT_Video
https://forum.doom9.org/showthread.php?p=1716986#post1716986
Lossless output smaller than original :- https://forum.doom9.org/showthread.php?p=1711191
Perhaps of interest:-
https://forum.doom9.org/showthread.php?p=1719490
https://forum.doom9.org/showthread.php?p=1749940
This Lagarith Arithmetic encoder problem is later debunked as rubbish by someone well known of the D9 (Cant find it or remember who)
https://forum.doom9.org/showthread.php?p=1768540#post1768540
EDIT: Here is the big name, our very own PDR:- https://forum.doom9.org/showthread.php?p=1812972#post1812972
Lynx_TWO
19th September 2018, 01:05
Apologies if this has been answered, but I can't find anything on it... Is there a way to run QTGMC multithreaded in Vapoursynth?
poisondeathray
19th September 2018, 01:16
Apologies if this has been answered, but I can't find anything on it... Is there a way to run QTGMC multithreaded in Vapoursynth?
Yes, havsfunc
https://forum.doom9.org/showthread.php?t=166582
https://github.com/HomeOfVapourSynthEvolution/havsfunc
Lynx_TWO
19th September 2018, 04:21
Yes, havsfunc
https://forum.doom9.org/showthread.php?t=166582
https://github.com/HomeOfVapourSynthEvolution/havsfunc
Perfect, thanks!
EDIT: for anyone else wanting to use StaxRip Vapoursynth with sweet multithreaded power, just open the havsfunc.py file in Notepad++ (or Notepad, but the layout will be messy) and replace all instances of core = vs.get_core() with the number of threads. For example, I'm rocking two 10-core Xeon E5-2630v4 CPUs, so in this case it would be core = vs.get_core(threads=40)Can confirm QTGMC works perfectly on this. I set x264 for Very Slow, Threads: 18, Lookahead Threads: 9, Sync Lookahead: 250.
3-4 instances encoding at once maxes out all 40 threads :cool:
Forteen88
22nd September 2018, 07:10
I set x264 for Very Slow, Threads: 18More threads in x264 results in worse image-quality.
Kurogane
27th September 2018, 10:14
I'm trying to use this plugin but i can't get to work.
I've installed this Core QTGMC.
C:\Program Files (x86)\AviSynth+\plugins64+\masktools2.dll [2.2.18.0]
C:\Program Files (x86)\AviSynth+\plugins64+\mvtools2.dll [2.7.31.0]
C:\Program Files (x86)\AviSynth+\plugins64+\nnedi3.dll [0.9.4.51]
C:\Program Files (x86)\AviSynth+\plugins64+\RgTools.dll [0.97.0.0]
C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi [3.358s]
C:\Program Files (x86)\AviSynth+\plugins64+\SMDegrain.avsi [3.1.2.100s]
When i try to do a simple option as this
QTGMC(Preset="slower")
Give me this error
System execption - Illegal Instruction
C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi line 879
C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi line 636
What i do wrong?
pinterf
27th September 2018, 10:35
When i try to do a simple option as this
QTGMC(Preset="slower")
Give me this error
System execption - Illegal Instruction
C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi line 879
C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi line 636
What i do wrong?
Problematic line:
interp = (InputType == 1) ? Input : \
(EdiMode == "NNEDI3") ? Input.NNEDI3( field=-2, nsize=NNSize, nns=NNeurons, qual=EdiQual, threads=EdiThreads, U=CEed,V=CEed ) : \
(EdiMode == "NNEDI2") ? Input.NNEDI2( field=-2, nsize=NNeurons, qual=EdiQual, threads=EdiThreads, U=CEed,V=CEed ) : \
(EdiMode == "NNEDI") ? Input.NNEDI( field=-2, U=CEed,V=CEed ) : \
(EdiMode == "EEDI3+NNEDI3") ? Input.EEDI3( field=-2, mdis=EdiMaxD, threads=EdiThreads, U=CEed,V=CEed, \
sclip=Input.NNEDI3( field=-2, nsize=NNSize, nns=NNeurons, qual=EdiQual, threads=EdiThreads, U=CEed,V=CEed ) ) : \
(EdiMode == "EEDI3") ? Input.EEDI3( field=-2, mdis=EdiMaxD, threads=EdiThreads, U=CEed,V=CEed ) : \
(EdiMode == "EEDI2") ? Input.SeparateFields().EEDI2( field=-2, maxd=EdiMaxD ) : \
(EdiMode == "Yadif") ? isyuy2(Input) ? Input.nonyuy2clipin(true).Yadifmod2( mode=3 ).nonyuy2clipout(true) : Input.Yadifmod2( mode=3 ) : \
(EdiMode == "cYadif") ? Input.Yadif( mode=3 ) : \
(EdiMode == "TDeint") ? Input.TDeInt( mode=1 ) : \
(EdiMode == "RepYadif") ? isyuy2(Input) ? Repair( Input.nonyuy2clipin(true).Yadifmod2( mode=3 ), default( Fallback, Input.QTGMC_Bob( 0,0.5 ) ).nonyuy2clipin(true), 2, 0 ).nonyuy2clipout(true) : \
Input.Yadifmod2( mode=3 ) : \
(EdiMode == "RepcYadif") ? isyuy2(Input) ? Repair( Input.Yadif( mode=3 ).nonyuy2clipin(true), default( Fallback, Input.QTGMC_Bob( 0,0.5 ) ).nonyuy2clipin(true), 2, 0 ).nonyuy2clipout(true) : \
Repair( Input.Yadif( mode=3 ), default( Fallback, Input.QTGMC_Bob( 0,0.5 ) ), 2, 0 ) : \
default( Fallback, Input.QTGMC_Bob( 0,0.5 ) )
Since for "slower" NNEDI3 is used, probably the crash occurs in that module. You'll need to specify your exact processor type for the solution (which I suppose will be a bugfix)
Kurogane
27th September 2018, 18:36
Since for "slower" NNEDI3 is used, probably the crash occurs in that module. You'll need to specify your exact processor type for the solution (which I suppose will be a bugfix)
But happens in all presets from Very Fast to Placebo.
I've i7-4930K
Groucho2004
27th September 2018, 20:23
But happens in all presets from Very Fast to Placebo.
I've i7-4930K
Which of the nnedi3 DLLs from the package are you using?
Kurogane
27th September 2018, 20:53
which of the nnedi3 dlls from the package are you using?
w7 avx2
LigH
27th September 2018, 20:57
And does your CPU support AVX2 at all? Which CPU do you have exactly?
Kurogane
27th September 2018, 21:03
w7 avx2
Oh i thought my processor support AVX2 when search again i saw its was AVX, My bad.
DeafYakuza
20th October 2018, 12:56
This is my first question that I'm asking.
I have some problems with QTGMC V3.34 with Avisynth 2.6.
Can someone maybe help me what it means?
TemporalSoften: Scenechange not available on RGB32
(QTGMC.avsi. line 413)
I installed that as following like here: https://forum.doom9.org/showthread.php?t=156028
But the problem didn't be solved.
What I want to do with that. I want deintalace a video. It's an avi (UT Video Codec).
SetMemoryMax(512)
AVISource("myvideo.avi")
QTGMC(Preset="Slower", SourceMatch=3, Lossless=2, EdiThreads=1)
SelectEven()
I am grateful for your support.
LigH
20th October 2018, 13:56
Your AviSource() (http://avisynth.nl/index.php/AviSource) call reads an AVI where the codec used to decode the video stream automatically suggests to decompress to RGB32.
But RGB32 is not a very useful video format for efficient video compression. One of the plugins used in QTGMC – TemporalSoften – does not support specific features for RGB32 mode. It may be useful, even necessary, to let the AVI get decoded to YV12 instead, or (if the codec does not support that in its own) convert it after loading it into AviSynth.
Knowing the encoded format of your AVI (i.e. a MediaInfo analysis and an explanation of the source of your video) would help suggesting the optimal strategy:
a) ask the codec to decode the AVI to YV12:
AVISource("myvideo.avi", pixel_type="YV12")
The result may be an error message instead of a video...
b) convert the decoded AVI to YV12 after loading:
AVISource("myvideo.avi").ConvertToYV12(interlaced={true|false})
It may be important to know whether the video source could be interlaced at all. If so, conversion to YV12 should be in interlaced mode; if not, you would destroy color information beyond repair if colors differ between fields (i.e. in motion) due to the YUV 4:2:0 chroma subsampling in YV12.
QTGMC may also support YUV 4:2:2 chroma subsampling. But supporting it in YUY2 mode is a bit tricky. YV16 would be better. But here we would recommend AviSynth+ over AviSynth 2.6 legacy.
StainlessS
20th October 2018, 13:58
TemporalSoften: Scenechange not available on RGB32
(QTGMC.avsi. line 413)
It uses MVTools2 for Scene change detection, and that requires YUV not RGB (may or may not work with YUY2, depends upon version of MvTools I think).
UT_Video also can encode in RGB, suspect that is your problem.
Try this
return AVISource("myvideo.avi").info
If RGB, as suspected, add this
AVISource("myvideo.avi").ConvertToYV12(Interlaced=True) # Assuming is interlaced as using QTGMC, also must be Wid=mod 2, Height mod 4(because interlaced)
EDIT: Ligh suggested AVISource("myvideo.avi", pixel_type="YV12") is probably better if it works ok.
In future, if source to UT_Video is YUV, suggest use FOURCC = "ULY0".
EDIT: Maybe something like this would enable end of scene detection, also for RGB in QTGMC, or elsewhere.
[EDIT: Dont off hand remember if QTGMC will work ok with RGB when not detecting scene change]
# Original function
Function EndOfSceneClip(clip c,Int "thSCD1",Int "thSCD2") { # All Luma Samples set 255 at EOS
thSCD1=Default(thSCD1,400) thSCD2=Default(thSCD2,130)
sup=c.MSuper(pel=1,sharp=0,rfilter=2,hpad=16, vpad=16)
bv=sup.MAnalyse(isb=true, delta=1,blksize=16,overlap=8)
Return c.MSCDetection(bv,thSCD1=thSCD1,thSCD2=thSCD2)
}
# Fixed for RGB use, we've used height mod 4 crop whether interlaced or not, might want to add Interlaced=true in convert.
Function EndOfSceneClip(clip c,Int "thSCD1",Int "thSCD2") { # All Luma Samples set 255 at EOS
thSCD1=Default(thSCD1,400) thSCD2=Default(thSCD2,130)
c=(!c.IsPlanar) ? c.Crop(0,0,c.Width/2*2,c.Height/4*4).ConvertToYv12 : c
sup=c.MSuper(pel=1,sharp=0,rfilter=2,hpad=16, vpad=16)
bv=sup.MAnalyse(isb=true, delta=1,blksize=16,overlap=8)
Return c.MSCDetection(bv,thSCD1=thSCD1,thSCD2=thSCD2)
}
StainlessS
20th October 2018, 19:49
TemporalSoften: Scenechange not available on RGB32
(QTGMC.avsi. line 413)
It uses MVTools2 for Scene change detection
Oops, It even says "TemporalSoften:" in the error message.
http://avisynth.nl/index.php/TemporalSoften
TemporalSoften(clip clip, int radius, int luma_threshold, int chroma_threshold [, int scenechange] [, int mode ] )
...
int scenechange = 0
Defines the maximum average pixel change between frames; set properly, this will avoid blending across scene changes.
Good values are between 5 and 30, somewhat higher than luma_threshold.
scenechange not supported in RGB modes.
Sorry. :(
I guess it was this that threw me:- http://avisynth.nl/index.php/QTGMC
ThSCD1 (0...) Scene change detection parameter 1 - see MVTools documentation. Default: 180
ThSCD2 (0...) Scene change detection parameter 2 - see MVTools documentation. Default: 98
DeafYakuza
21st October 2018, 10:18
Here is the info of video.
Video
ID : 0
Format : YUV
Codec-ID : ULY2
Codec-ID/Info : Ut Video Lossless Codec
Codec-ID/Hinweis : Ut Video
Dauer : 1 h 33 min
Bitrate : 54,0 Mb/s
Breite : 706 Pixel
Höhe : 486 Pixel
Bildseitenverhältnis : 3:2
Bildwiederholungsrate : 29,970 (30000/1001) FPS
ColorSpace : YUV
ChromaSubsampling/String : 4:2:2
Bits/(Pixel*Frame) : 5.251
Stream-Größe : 35,3 GiB (96%)
LigH
21st October 2018, 10:28
Do not attach images here, approval by moderators often takes a lot of time. Instead use frupic / imgur / tinypic / etc.
ULY2 is a YUV format, related to uncompressed YUY2. Strange that decoding to RGB32 was preferred.
For optimal handling in AviSynth+, I would recommend decoding to YV16 if possible (or decoding to YUY2 and then converting to YV16). Not sure if that works well in legacy AviSynth 2.6, though.
If you ever consider switching to AviSynth+, do not use the obsolete installer from their official (and more or less abandoned) website, but the latest MT release by pinterf on github (https://github.com/pinterf/AviSynthPlus/releases).
DeafYakuza
21st October 2018, 11:03
Oh, I'm sorry to attach images!
The latest version of Avisynth is nothing for me because I can't start with that and it's to much to do. Rather I would stay at Avisynth 2.6.
I give up because I spent much my time out for nothing.
Thank you...
StainlessS
21st October 2018, 13:54
Oh, I'm sorry to attach images!
This is how easy it is to post image on an image host:- https://forum.doom9.org/showthread.php?p=1854847#post1854847
The latest version of Avisynth is nothing for me because I can't start with that and it's to much to do. Rather I would stay at Avisynth 2.6.
I give up because I spent much my time out for nothing.
Takes no time at all to set up, click executable, tick x86 version, click OK, done. (assuming already setup with x86 v2.6 standard).
Latest Pinterf avs+ binary:- https://github.com/pinterf/AviSynthPlus/releases
Avs+ docs:- http://avisynth.nl/index.php/AviSynth%2B
You can just use avs+ as a better avs(you dont have to use additional filters/colorspaces etc).
Is faster, consumes less memory, and is just all round better.
EDIT: I dont use additional colorspaces, (and probably not filters either), excepting have started using builtin GScript,
although if you just keep GScript plugin in the plugins directory, it will continue to work ok with GScript(""" ... """) wrapped
code. Cant think of any other caveats.
DeafYakuza
21st October 2018, 14:34
Alright, thanks... I will do next weekend because I will be off from home for another town and will stay there until Thursday. See you soon... ;)
vorob
24th October 2018, 16:06
I've got a problem. I've digitized several hi8 tapes and deinterlace them with this script. Several videos deinterlaced perfectly, but few videos, after a night of encoding, are just 1 minute long. I have no idea why it is. At first, I thought that video is damaged after the first minute, but that's not true because I've interrupted deinterlace one time and this unfinished video was longer than 1 minute and was working. So smth happening in the and that deletes everything after the first minute. Any idea?
AVS script
SetMTMode (5, 6)
AVISource("China, part 2.avi", audio=true)
ConvertToYV12()
SetMTMode(2)
AssumeTFF()
QTGMC(preset="Slower", SourceMatch=3, Lossless=2, EdiThreads=1)
Distributor()
BilinearResize(720,540)
Crop (8, 2, -8, -8)
Trim (4766, 0)
and *.bat file to encode
ffmpeg -i "China, part 2.avs" -c:v prores -profile:v 3 -pix_fmt yuv422p10le "China, part 2_Deint.avi"
real.finder
24th October 2018, 18:31
I've got a problem. I've digitized several hi8 tapes and deinterlace them with this script. Several videos deinterlaced perfectly, but few videos, after a night of encoding, are just 1 minute long. I have no idea why it is. At first, I thought that video is damaged after the first minute, but that's not true because I've interrupted deinterlace one time and this unfinished video was longer than 1 minute and was working. So smth happening in the and that deletes everything after the first minute. Any idea?
AVS script
SetMTMode (5, 6)
AVISource("China, part 2.avi", audio=true)
ConvertToYV12()
SetMTMode(2)
AssumeTFF()
QTGMC(preset="Slower", SourceMatch=3, Lossless=2, EdiThreads=1)
Distributor()
BilinearResize(720,540)
Crop (8, 2, -8, -8)
Trim (4766, 0)
and *.bat file to encode
ffmpeg -i "China, part 2.avs" -c:v prores -profile:v 3 -pix_fmt yuv422p10le "China, part 2_Deint.avi"
I think it's MT problem in old avs mt
vorob
24th October 2018, 21:16
Can you give me some more info please. Most of these options i've copy&pasted from some guide.
StainlessS
24th October 2018, 21:24
I think that he is saying that problem is because of the old version of Set's Avisynth MT that you are using.
EDIT: In other words use Pinterf Avs+, link in post #630.
DeafYakuza
25th October 2018, 18:15
So, I am back here.
I did it to install Avisynth+ r2728-MT and github-plugins on my PC Win7 x86 and the conversion of videos was sucessful 4 times by QTGMC below Avisynth.
Now, the next video which is captured in 1080i59,94 and I have a problem to interlace by QTGMC below Avisynth.
I checked, it's templated by 3-2-3-2....
Error:
Script error: expected a , or)
(F:\my_video.avs, line 6, colum 20)
Error:
Error requesting frame xxxx
Could not allocate video frame. Out of memory. memory_max = 2013134848, memory-used = 1465974737 Requeset=16168383
Avisynth:
SetMemoryMax(2048) # Quelle: HD
SetFilterMTMode("QTGMC",2)
FFmpegSource2("Source_My_Video.avi", atrack=1)
ConvertToYV12(interlaced=true)
AssumeTFF()
QTGMC(Preset="Slower", Lossless=2, Edithreads=2)
BilinearResize(1920,1080)
Prefetch(threads=4)
MediaInfo:
Video
ID : 0
Format : YUV
Codec-ID : ULY2
Codec-ID/Info : Ut Video Lossless Codec
Codec-ID/Hinweis : Ut Video
Dauer : 5 min 1s
Bitrate : 226 Mb/s
Breite : 1 886 Pixel
Höhe : 1 080 Pixel
Bildseitenverhältnis : 16:9
Bildwiederholungsrate : 29,970 (30000/1001) FPS
ColorSpace : YUV
ChromaSubsampling/String : 4:2:2
Bits/(Pixel*Frame) : 3.703
Stream-Größe : 7,94 GiB (99%)
What I am doing wrong?
LigH
25th October 2018, 18:18
I checked, it's templated by 3-2-3-2....
What I am doing wrong?
Forget QTGMC for Telecine material. This needs IVTC instead of Deinterlacing (as a whole filter category).
Often useful: Loading TIVTC.dll and using TFM + TDecimate.
...
Wait, what? Telecine'd 1080i? You better show us that nonsense.
Cary Knoop
25th October 2018, 19:08
Wait, what? Telecine'd 1080i? You better show us that nonsense.
Why is that nonsense?
DeafYakuza
25th October 2018, 19:51
Forget QTGMC for Telecine material. This needs IVTC instead of Deinterlacing (as a whole filter category).
Often useful: Loading TIVTC.dll and using TFM + TDecimate.
...
Wait, what? Telecine'd 1080i? You better show us that nonsense.
Why forget QTGMC? Although this is the best way for deinterlacing than the other functions. For what is QTGMC using? Yes, the video is 1080i.
Cary Knoop
25th October 2018, 20:11
Why forget QTGMC? Although this is the best way for deinterlacing than the other functions. For what is QTGMC using? Yes, the video is 1080i.
You would not need QTGMC for an inverse telecine operation.
DeafYakuza
25th October 2018, 20:20
Alright... It looks this method should be correct, right? There are no errors anymore and the picture on AvsPmod is showing me on screen.
LoadPlugin("C:\Windows\System32\TIVTC.dll")
AVISource("Soure_my_Video.avi", audio=true)
AssumeTFF()
AssumeFPS(24000,1001)
ConvertToYV12(interlaced=true)
TFM()
TDecimate()
BilinearResize(1920,1080)
LigH
25th October 2018, 21:17
@ Cary Knoop:
Why I think it's nonsense to have FullHD Telecine ... why would anyone produce that? I see no reason with modern TV sets which can easily adapt to many frame rates, and versatile consumer media supporting a variety. But if you say they exist, well ... then this is a fact I have to accept.
@ DeafYakuza:
Telecine is a video norm conversion to match a recorded frame rate with a different displayed field rate; that's not the same as interlaced video recording. You have to look at the time stamps of each field which is displayed, need to follow the sequence of the time progressing from field to field, to understand that.
Telecine converts progressive content (full frames recorded at the same time) to partially repetitive fields in combed content. Interlaced content was already recorded with a linear time progress from field to field. QTGMC can only handle the linear progress from field to field. It cannot handle fields which are sometimes duplicated, having 0 time units difference between 2 or 3 fields here, then suddenly a time gap between others, and 0 between the next ... that irregular progress of time from field to field disables motion estimation, a key feature to high quality restoration of each missing field in a linearly interlaced sequence.
poisondeathray
25th October 2018, 21:21
Alright... It looks this method should be correct, right? There are no errors anymore and the picture on AvsPmod is showing me on screen.
LoadPlugin("C:\Windows\System32\TIVTC.dll")
AVISource("Soure_my_Video.avi", audio=true)
AssumeTFF()
AssumeFPS(24000,1001)
ConvertToYV12(interlaced=true)
TFM()
TDecimate()
BilinearResize(1920,1080)
If this is film content, it should be AssumeFPS(30000,1001) if it comes before TIVTC . That will result in 23.976 fps after TIVTC .
If you assume 24000/1001 before, you will end up with 19.something fps
Cary Knoop
25th October 2018, 22:06
Why I think it's nonsense to have FullHD Telecine ... why would anyone produce that? I see no reason with modern TV sets which can easily adapt to many frame rates, and versatile consumer media supporting a variety. But if you say they exist, well ... then this is a fact I have to accept.
Good luck in sending a 1080p24 master for broadcast. They will likely tell you to telecine it first.
Also, some (older) cameras produce 1080PsF output which is telecined as well.
LigH
25th October 2018, 23:59
And the HEVC specs wanted to get rid of an interlaced mode ... sigh ... and x265 supports it again. Conservativism demands compatibility.
Well, it's not the fault of QTGMC. I'd agree to close this detour.
DeafYakuza
26th October 2018, 00:10
Thank you for many tips. But after the conversion I'm not satisfied with the output quality (mp4 AVC 1080p). There are to much pixels on screen than the original capturing (used via VLC by inverse telecine (film NTSC (IVTC)).
Look here:
https://mega.nz/#!92AnCSIL!-zJXEFEGVa5HnLd2aoWtJacnAsIWdM_M2YWxK9Sdyeo
LoadPlugin("C:\Windows\System32\TIVTC.dll")
AVISource("Source_my_Video.avi", audio=true)
AssumeTFF()
AssumeFPS(30000,1001)
ConvertToYV12(interlaced=true)
TFM()
TDecimate()
BilinearResize(1920,1080)
Does someone know which methods/functions should I to use to get the best quality for deinterlace?
DeafYakuza
26th October 2018, 00:16
If this is film content, it should be AssumeFPS(30000,1001) if it comes before TIVTC . That will result in 23.976 fps after TIVTC .
If you assume 24000/1001 before, you will end up with 19.something fps
You are right, I tried it to use assume 24000/1001 before and it was 18...fps. Now it's correct but the quality is not good.
LigH
26th October 2018, 01:52
Your screen has always pixels, and I hope it has a lot of them. Pixels are the hardware display units, not image artifacts. What you are complaining about, according to your linked image (you should have used an "image hoster" which allows to link the image, like frupic, tinypic, ingur, ... instead of mega) is a loss of resolution, but the reason is hard to know with one single partial screenshot. We would need a short video (best with some side panning) to analyze.
Oh, look, I wanted to put it on frupic, but it's already there...
http://frupic.frubar.net/shots/37492.png
If you look closely into the left part you will notice it's still combed. Whatever happened, IVTC in VLC did not fix it. And ffmpeg never appears in this workflow. In AviSynth it's TIVTC as well.
By the way, the TIVTC.dll does not belong into your Windows system directory (because Windows would not use it ever). It may be placed into your AviSynth plugins directory instead.
poisondeathray
26th October 2018, 01:58
You are right, I tried it to use assume 24000/1001 before and it was 18...fps. Now it's correct but the quality is not good.
Maybe you should post a sample of the source
If it's really 3-2-3-2 ; this imples 3:2 pulldown and you should not deinterlace . Or clarify what you you mean by "it's templated by 3-2-3-2"
VoodooFX
26th October 2018, 06:17
Alright... It looks this method should be correct, right?
Install Avidemux, drag & drop your video in Avidemux, search for a scene with movement, cut 10 seconds of that scene (mark start/end points with "A" & "B" buttons and save it), upload it to mega, post link here.
DeafYakuza
26th October 2018, 09:48
Ligh, okay, next time I will put the images to frupic - thanks!
Yeah, the file of TIVTC.dll was copied in Windows System32 and I changed it into avisynth plugin and it doesn't changed on quality.
Maybe I programed something wrong in the AvsPmod.
poison,
# Analyse-Script to watch for the field to field
AVISource("my_video.avi")
AssumeTFF()
Bob()
Here is a link to check the info of videosample:
Sample (https://mega.nz/#!omJjwI7C!_U2sgLiIGTo79FrdbO6y2zfTBsDrVkgVxDYeV1tYseQ)
LigH
26th October 2018, 10:19
Oooh ... :eek:
Actually, I do not really understand what's happening here. When I check the field pattern with Bob(), the result looks like it has been composed of badly upscaled SD resolution. And for some reason, TIVTC looks just the same, as if it returns only one of both fields.
:confused:
Moderators: This discussion should be separated from the QTGMC thread.
DeafYakuza
26th October 2018, 12:27
We can post here further: https://forum.doom9.org/showthread.php?p=1856075#post1856075
bruno321
27th October 2018, 18:43
My QTGMC was not working correctly (it was giving a wobbly image), so I decided to update everything.
Currently, a simple
MPEG2Source("file.d2v", cpu=0)
QTGMC()
gives me a "there is no function named "msuper"". But I do have (the latest version of) mvtools2.dll in my plugins folder. What's going on?
Groucho2004
27th October 2018, 19:33
My QTGMC was not working correctly (it was giving a wobbly image), so I decided to update everything.
Currently, a simple
MPEG2Source("file.d2v", cpu=0)
QTGMC()
gives me a "there is no function named "msuper"". But I do have (the latest version of) mvtools2.dll in my plugins folder. What's going on?
Download AVSMeter from my sig, run "avsmeter avsinfo -log" and post the log file. Use pastebin or similar to post the log.
bruno321
27th October 2018, 20:05
Here's what it says:
https://ptpimg.me/a4z98d.png
Groucho2004
27th October 2018, 20:09
Here's what it says:
https://ptpimg.me/a4z98d.png
Update Avisynth -> https://github.com/pinterf/AviSynthPlus/releases
bruno321
27th October 2018, 20:12
Oh. I thought that the one available at https://sourceforge.net/projects/avisynth2/ was the latest one. The message the utility gives is a bit funny, seeing as the version installed is 2.6 and it tells me to upgrade to 2.6 :D
Will try installing that one in a couple of days -- now I'm in the middle of an encode (which doesn't use QTGMC :P). Thanks for the advice.
Groucho2004
27th October 2018, 20:16
Oh. I thought that the one available at https://sourceforge.net/projects/avisynth2/ was the latest one. The message the utility gives is a bit funny, seeing as the version installed is 2.6 and it tells me to upgrade to 2.6 :D2.6.0.2 was a beta (or alpha, not sure) that did not even support interface version 6. The 2.6 release is 2.6.0.6. However, I'll update that error message to be more specific.
StainlessS
27th October 2018, 23:55
There was no beta series, was
2.6.0.2 Alpha 3, (25 May 2011)
2.6.0.3 Alpha 4, (14 Jan 2013)
2.6.0.4 Alpha 5, (18 Sept 2013)
2.6.0.5 RC1, (14 Jan 2015)
2.6.0.6 RC2, (31 Mar 2015)
2.6.0.6 RC3, (19 Apr 2015)
2.6.0.6 FINAL (31 May 2015)
---
2.6.1 Alpha 1, (17 May 2017)
Think Version 6 Header (AvisynthPluginInit3) came in with Alpha 4.
bruno321
28th October 2018, 18:47
OK, avisynth updated. Here's the log from AVSMeter:
https://pastebin.com/2hqZYevT
EDIT: OK, I should add that now QTGMC -is- working, but in the same faulty way as described here: https://forum.videohelp.com/threads/390484-NTSC-blended-from-a-PAL-source-wobbly-after-srestore
EDIT2: Got it!! It was the bloody mt-masktools-26 which was preventing the newer masktools2.dll from loading.
Thanks for the help & thanks for AVSMeter! It really helped.
hello_hello
28th October 2018, 19:55
OK, avisynth updated. Here's the log from AVSMeter:
https://pastebin.com/2hqZYevT
EDIT: OK, I should add that now QTGMC -is- working, but in the same faulty way as described here: https://forum.videohelp.com/threads/390484-NTSC-blended-from-a-PAL-source-wobbly-after-srestore
The AVSMeter log shows you have two versions of MaskTools2 (mt_masktools-26.dll) and an old version of SMDegrain.
You probably should remove any Avisynth 2.5 plugins beginning with "R" (you have multiple version of each anyway) and replace them with RGTools. There's an up to date requirements list here (http://avisynth.nl/index.php/QTGMC#Requirements).
Did you use the XP specific versions of MaskTools2 and MVTools2?
You probably don't need SSE2Tools.dll anymore (and you have multiple versions).
The log file clearly shows you're missing dependencies for some of the plugins. As you update them, check the required dependencies, They'll either be listed on the plugin's wiki or specified in the readme file included in the download, or something similar.
msvcr71.dll and FFTW3.dll belong in the system32 folder. You should also have libfftw3f-3.dll in there (same file as FFTW3.dll, but some plugins expect different names).
I also spotted a couple of outdated plugins. There's newer versions of Average and nneid3.
I tried your sample from the VideoHelp thread and it's fine for me simply using the following. I'm running XP (QTGMC 3.358s).
QTGMC()
SRestore()
bruno321
28th October 2018, 20:10
Thanks for the tips -- as you were writing your reply, I updated my post above to show that I solved it. Nonetheless, what you write is useful. I have updated SMDegrain and replaced the R plugins with RGTools, will look at Average and nnedi3.
So I'm guessing that the plugins marked in yellow are those whose dependencies are not fully met? If everything is working OK for me now, would I gain something by meeting them?
Groucho2004
28th October 2018, 21:52
So I'm guessing that the plugins marked in yellow are those whose dependencies are not fully met?No, the yellow just indicates that there's version info available whereas green means that there is none (therefore just the time stamp). Too many colours...
bruno321
8th November 2018, 22:42
I'm still having problems with QTGMC, somehow. Here's a .zip file with three clips:
https://1fichier.com/?vhhxlra8xroazg3dc889
The .m2v is the original. The one called tdeint has the avisynth script given by
tdeint(mode=1)
srestore(frate=25)
The one called QTGMC has QTGMC() instead of the tdeint line. You can see that the tdeint one flows nicely, whereas the qtgmc one is stuttery. What's going on?
Shirtfull
8th November 2018, 23:14
What's going on?
Qtgmc only de-interlaces (does not remove telecine). Use Ivtc beforehand.
manono
9th November 2018, 05:46
Yes, you should just IVTC it. But since it's not normal 3:2 pulldown, it's not a normal IVTC. This works on it:
TFM().Tdecimate(Cycle=6,CycleR=1)
You don't want to use TDeint on it as that's a deinterlacer and it damages the source. The TFM/TDecimate combination only field matches and removed duplicate frames. No damage to the underlying video.
bruno321
9th November 2018, 09:18
That does indeed work nicely. Thanks!
But I'm confused: this is an excerpt from a film shot in PAL land and released in NTSC format (hence the 29.97fps). I've usually dealt with these in the past with QTGMC().srestore() and it's worked great, but not here. Why?
LigH
9th November 2018, 09:30
There is not only one possible kind of norm conversion. There are a lot. Some use blending, some don't. StainlessS translated the guide "exotic interlacing" (originally in German, by scharfis_brain), you may want to skim through this one if you are interested, but beware, it confuses even more.
All deinterlacers (including Yadif, TDeint, and QTGMC of course) can only handle a regular linear temporal progression from field to field. Telecine duplicates fields, it has a discrete progress. Field blending creates weighted sums of field contents. Both confuse the motion estimation which makes QTGMC superior.
StainlessS
9th November 2018, 10:01
Here tis ([Exotic] Interlacing_by_Scharfis_Brain):- http://www.mediafire.com/file/kkw0j7z2fme3289/Interlacing_by_Scharfis_Brain.zip/file
EDIT: Or via the MediaFire link below this post, in the DATA folder.
bruno321
9th November 2018, 10:19
Thanks! I've had a look. At this moment, I feel like I'd like to understand better the difference between blending and interlacing. Can anybody provide an explanation? And maybe some examples in images?
All deinterlacers (including Yadif, TDeint, and QTGMC of course) can only handle a regular linear temporal progression from field to field. Telecine duplicates fields, it has a discrete progress. Field blending creates weighted sums of field contents. Both confuse the motion estimation which makes QTGMC superior.
I'd love to understand this, but I currently don't :P
So, in order to figure this out by myself, I'd do this: tfm(), and then realize that the frames are playing in a 1 2 3 4 5 6 6 pattern, which means no frames are blended and I should just TDecimate(0,1,6), right?
LigH
9th November 2018, 11:18
To understand the basics of interlacing, first read the mentioned guide; scharfis_brain introduced some history of TV broadcasting for Cathode Ray Tube technology. You need to understand how fields progress in time, and that a pair of them is woven to a frame only for storage purposes. Then you may get the idea that this is a "legacy technology", looking back from today's digital video era where monitors are able to achieve much higher frame rates and can update the whole screen at once (progressive display).
This historical intermission about the nature of interlacing interrupts this thread about QTGMC like the Groundhog Day, or like Freddie Frinton stumbling upon the tiger head in "Dinner for one" every Silvester evening.
manono
9th November 2018, 19:48
At this moment, I feel like I'd like to understand better the difference between blending and interlacing
Both kinds are interlaced. However, for PAL sources field-blended to NTSC, typically 5 of 6 unfiltered frames are interlaced. With the telecined ones (like your current project), 2 of 6 are interlaced. When separating the fields or bobbing, if you see the blends/ghosts/double images, it's field blended. If you don't, it's not. Yours is not.
jbalakri
30th November 2018, 21:26
Hi,
I am trying to open QTGMC script in a 64 bit VirtualDub. I am using the UniversalAvisynth installer and installed the AVSPLUS_x64. I also have the latest QTGMC 3.358s version script installed.
It is unable to load aWarpSharp.dll because it's a 32bit dll. I have not been able to find a 64bit version of the binary anywhere.
In any case, aWarpSharp is depricated and the replacement is aWarpSharp2 from what I understand. Why is QTGMC still using an older version of aWarpSharp? Is there any workaround to get this working? I would appreciate it. Thanks!
jbalakri
30th November 2018, 21:47
Hi,
I am trying to open QTGMC script in a 64 bit VirtualDub. I am using the UniversalAvisynth installer and installed the AVSPLUS_x64. I also have the latest QTGMC 3.358s version script installed.
It is unable to load aWarpSharp.dll because it's a 32bit dll. I have not been able to find a 64bit version of the binary anywhere.
In any case, aWarpSharp is depricated and the replacement is aWarpSharp2 from what I understand. Why is QTGMC still using an older version of aWarpSharp? Is there any workaround to get this working? I would appreciate it. Thanks!
Never mind! I got past this issue. I found a 64bit version of aWarpSharp.dll
But now I am stuck on Convolution3DYV12.dll
Any ideas where I can get this dll in 64bit binary? Thanks!
gispos
1st December 2018, 19:22
Never mind! I got past this issue. I found a 64bit version of aWarpSharp.dll
But now I am stuck on Convolution3DYV12.dll
Any ideas where I can get this dll in 64bit binary? Thanks!
I use these plugins for QTGMC and MCTemporalDenoise for Avisynth+ x64
MyDefaultFilters.avsi must be in the plugin folder.
I commented out all non-relevant plugins.
https://www1.zippyshare.com/v/KJtewI7M/file.html
Metal-HTPC
24th February 2019, 23:31
hello guys,
I'm using Avisynth 2.6, 32bit and QTGMC v3.32 + plugins from the main post on thread 156028
I'm getting the error: unexpected charakter "[".
I used the following script:
MPEG2Source("E:\Projects\Wrestling\Wm1\VHS\vhs.d2v")
QTGMC(Preset="Slow", EZDenoise=1.5)
Levels(0,1.000,250,2,255,true)
TWEAK([<"hue", -180, 180, 0>],[<"sat", 0, 4.0, 1.05>],[<"bright", -255.0, 255.0, 0.0>],[<"cont", 0.0, 5.0, 1.13>])
AssumeFPS(29.970)
If I leave out the TWEAK command line it starts encoding without an error, so I guess the problem is in that line
Does anyone have any idea what it could be ?
thanks in advance for your help
manolito
24th February 2019, 23:52
These "Tweak" params cannot work, looks like you pasted them into your script from some tutorial without a clue what you want to achieve. In the AviSynth\Docs subfolder you can find a comprehensive doc about the Tweak parameters, a valid Tweak command could look like this:
Tweak(hue=10, sat=2, bright=10, cont=1.13)
Good luck
manolito
Metal-HTPC
25th February 2019, 01:05
thanks a lot it worked great.
manono
25th February 2019, 19:45
AssumeFPS(29.970)
Was it your intent to double the length of the video and throw the audio out of synch?
Metal-HTPC
25th February 2019, 21:40
Was it your intent to double the length of the video and throw the audio out of synch?
no it's an old US NTSC VHS digitised with an US NTSC videorecorder to US NTSC DVD-R. Therefore the framerate is 29,97 and I want to keep it that way
manono
26th February 2019, 19:49
Therefore the framerate is 29,97 and I want to keep it that way
That's all very well and good, but by using QTGMC on it you doubled the framerate and the frame count, keeping it the same length. By following that with your AssumeFPS call you slowed the video by 50% and doubled the running time.
So, I ask again, "Was it your intent to double the length of the video and throw the audio out of synch?" You can't have it both ways. You can't use a bobber (QTGMC) and keep your original 29.97fps. If you're making a DVD of it, you don't need QTGMC at all and you can keep it interlaced. If you insist on it being progressive 29.97fps (why?), you might try:
QTGMC(FPSDivisor=2,Preset="Slow", EZDenoise=1.5)
and then skip the AssumeFPS.
Metal-HTPC
4th March 2019, 10:18
That's all very well and good, but by using QTGMC on it you doubled the framerate and the frame count, keeping it the same length. By following that with your AssumeFPS call you slowed the video by 50% and doubled the running time.
So, I ask again, "Was it your intent to double the length of the video and throw the audio out of synch?" You can't have it both ways. You can't use a bobber (QTGMC) and keep your original 29.97fps. If you're making a DVD of it, you don't need QTGMC at all and you can keep it interlaced. If you insist on it being progressive 29.97fps (why?), you might try:
QTGMC(FPSDivisor=2,Preset="Slow", EZDenoise=1.5)
and then skip the AssumeFPS.
You are totally right. I encoded the the full video yesterday and it is running in slow motion now. I didn't saw that when I encoded the sample. After that I returned to this thread and just saw your post.
It shure wasn't my intent to double the lenght. So I did something wrong here.
It is a very old extended play NTSC 29,970 VHS which I tried to improve and encode to x264.
I want to keep it 29,970 and also keep it interlaced.
So therefore I should skip QTGMC completley and just stay with my
"Levels" and "TWEAK" command for the image improvement.
Metal-HTPC
5th March 2019, 15:31
by the way is it possible to use QTGMC as a denoiser without deinterlacing anything ? For example
QTGMC(InputType=0, Preset="Slow", EZDenoise=1.5)
According to the wiki Input type handles an interlaced source.
So without chosing a FPSDivisor it should just denoise the source doesn't it ?
hello_hello
5th March 2019, 19:04
by the way is it possible to use QTGMC as a denoiser without deinterlacing anything ? For example
QTGMC(InputType=0, Preset="Slow", EZDenoise=1.5)
According to the wiki Input type handles an interlaced source.
So without chosing a FPSDivisor it should just denoise the source doesn't it ?
You can't "only" denoise an interlaced source with QTGMC. InputType=0 is the default and tells QTGMC the source is interlaced. If you give it a progressive source it'll be treated as interlaced.
QTGMC(InputType=0, Preset="Slow", EZDenoise=1.5)
is the same as
QTGMC(Preset="Slow", EZDenoise=1.5).
It de-interlaces and outputs double the frame rate.
QTGMC(Preset="Slow", EzDenoise=1.5, FPSDivisor=2)
de-interlaces but outputs the original frame rate. It's effectively the same as
QTGMC(Preset="Slow", EzDenoise=1.5).SelectOdd()
When InputType>0 QTGMC expects a progressive source. By default the output frame rate is the same as the input, so you can stabilise and denoise a progressive source with something like
QTGMC(InputType=1, Preset="Slow", EZDenoise=1.5)
It's actually designed for repairing progressive sources that were badly de-interlaced, and it's not without the occasional side-effect that normal denoising scripts don't produce, but it tends not to blur as much where there's motion as many denoising scripts and it does stabilise the picture well.
TemporalDegrain2 (https://forum.doom9.org/showthread.php?t=175798) takes it's denoising from QTGMC, if you want to try it, although there appears to be an issue with it being somewhat slow. It expects a progressive course.
manono
5th March 2019, 19:32
by the way is it possible to use QTGMC as a denoiser without deinterlacing anything ?
As hello_hello mentioned, you don't want to denoise an interlaced source. You can bob it, denoise it, and then reinterlace it. However, I wonder why you'd need QTGMC if all you want to do is denoise. DFTTest (http://avisynth.nl/index.php/Dfttest) is the best of the denoisers it uses. If you want denoising, why not use it directly (after bobbing, if the source is interlaced)? And there are many others as well, including the TemporalDegrain2 hello_hello mentioned.
Or, using the script you showed, you could reinterlace it afterwards easily enough, if you want to keep it interlaced.
Metal-HTPC
6th March 2019, 08:14
thanks a lot for the explanation hello_hello
@mano mano. Would deinterlacing and reinterlacing really make sense quality wise ? Isn't it better to just work with the interlaced source and edit that and use yours and hello_hellos sugested denoise filters for it?
I have to say that I quite improved the look of the video with the "Tweak" and "Levels" commands. I have to check if additional denoising even improves it more. If you guys are interested I could post
2 before/after samples of this project. The purpose here is to remaster an extended play NTSC VHS and cut it together with a 720p stream (sourced from the actual master tapes) which is missing some footage.
manono
6th March 2019, 20:34
Would deinterlacing and reinterlacing really make sense quality wise ?
Bob deinterlacing, yes. And if hard telecined, you want to IVTC it before using a denoiser.
Isn't it better to just work with the interlaced source and edit that and use yours and hello_hellos sugested denoise filters for it?
I could be wrong, but I believe all temporal filters need to be used with progressive sources. Using them on an interlaced source will create an unholy mess. Maybe some bob internally before cleaning, I don't know. Someone else can set me straight if necessary,
Music Fan
6th March 2019, 22:10
Instead of making de-interlacing, denoising and re-interlacing, you can simply separate the fields to make "sort of" progressive for denoising ;
separatefields()#480i @ 29.97 fps becomes 240p @ 59.94 fps
Dfttest (for example)
weave()#240p @ 59.94 fps re-becomes 480i @ 29.97 fps
That's a fast script and it avoids de-interlacing artifacts.
Only useful if no resize is needed.
asarian
7th March 2019, 03:06
[QUOTE=manono;1867823DFTTest (http://avisynth.nl/index.php/Dfttest) is the best of the denoisers it uses.[/QUOTE]
I prefer KNLMeansCL -- but probably only because it's so much faster. :) (GTX 1080 Ti)
Boulder
7th March 2019, 04:42
Instead of making de-interlacing, denoising and re-interlacing, you can simply separate the fields to make "sort of" progressive for denoising ;
separatefields()#480i @ 29.97 fps becomes 240p @ 59.94 fps
Dfttest (for example)
weave()#240p @ 59.94 fps re-becomes 480i @ 29.97 fps
That's a fast script and it avoids de-interlacing artifacts.
Only useful if no resize is needed.
That's not optimal because the separated fields should be aligned to compare the exact same part of the image in the denoiser. There's a function called FoldFields/UnFoldFields which works better.
StainlessS
7th March 2019, 06:41
There's a function called FoldFields/UnFoldFields
Perhaps you are talking about this from StickBoy
jdl-interlace.avsi
Functions for use with interlaced material.
JDL_SelectField, JDL_SelectTopField, JDL_SelectBottomField
JDL_ReverseFieldDominance
JDL_UnfoldFieldsVertical, JDL_FoldFieldsVertical (rationale and discussion)
These functions provide a means to use spatial-temporal filters on interlaced clips.
JDL_InterlacedResize
JDL_SimpleBob
JDL_DupeField
JDL_Interlace
http://www.avisynth.nl/users/stickboy/
manono
7th March 2019, 07:58
That's not optimal because the separated fields should be aligned to compare the exact same part of the image in the denoiser. There's a function called FoldFields/UnFoldFields which works better.
You can also use Yadif(Mode=1) (used as a bobber) because one of the fields is the original untouched field except for the denoising done, and only the other field making up the bobbed frame is interpolated. No deinterlacing artifacts after being reinterlaced and very fast.
I wouldn't use QTGMC as the bobber if all I wanted was some temporal denoising of an interlaced source. Too damned slow.
Metal-HTPC
8th March 2019, 06:40
alright herer are some samples
This is the VHS source:
http://www.filedropper.com/vhs-sample
For my first attempt at remastering it and encoding as x264 I used the following script
MPEG2Source("E:\Projects\Wrestling\Wrestlemania1\VHS\vhscut.d2v")
Levels(0,1.000,250,2,255,true)
Tweak(hue=-0, sat=0.7, bright=-14, cont=0.9)
Crop(8,0,-8,-8)
AddBorders(26,0,26,0)
LanczosResize(720,480)
AssumeFPS(29.970)
It came out as this: http://www.filedropper.com/vhs-sample-remaster
If you guys think I can improve it if I use a bob and reinterlace command before the "Levels" please let me know what exactly would make sense.
thanks and a nice weekend to all of you
manono
8th March 2019, 22:56
Line by line:
Levels(0,1.000,250,2,255,true)#You clipped it to 16/235. Should be 'false'
Tweak(hue=-0, sat=0.7, bright=-14, cont=0.9)#Clipped again, should add 'Coring=False' and redo those numbers
Crop(8,0,-8,-8)#Okay
AddBorders(26,0,26,0)#completely nonsensical. What's the point of throwing off the aspect ratio? Was the AR incorrect originally? Are you making another DVD?
LanczosResize(720,480)#Okay, given that the previous line was wrong
AssumeFPS(29.970)#It's already 29.97fps. The line is unneeded
You did something else to it for the 'remaster'. No more black pillar bars, And why turn a 1.33:1 video into 1.5:1?
asarian
9th March 2019, 01:49
alright herer are some samples
This is the VHS source:
http://www.filedropper.com/vhs-sample
For my first attempt at remastering it and encoding as x264 I used the following script
MPEG2Source("E:\Projects\Wrestling\Wrestlemania1\VHS\vhscut.d2v")
Levels(0,1.000,250,2,255,true)
Tweak(hue=-0, sat=0.7, bright=-14, cont=0.9)
Crop(8,0,-8,-8)
AddBorders(26,0,26,0)
LanczosResize(720,480)
AssumeFPS(29.970)
It came out as this: http://www.filedropper.com/vhs-sample-remaster
If you guys think I can improve it if I use a bob and reinterlace command before the "Levels" please let me know what exactly would make sense.
thanks and a nice weekend to all of you
Let's start with a proper crop:
Crop (8, 6, -12, -8)
Now, taking 6+8 off the vertical size, leaves you with a required width of the original / 1.03. So, the original width divided by 1.03 = 699, meaning you need to crop to 720 -8 -12 = 700 (rounded up by 1 pixel).
Now, before I go any further, DO NOT SCALE INTERLACED MATERIAL VERTICALLY. Like ever. Sorry for the caps, but the way interlaced works, you'll ruin the bob patterns. So, deinterlace first (you're in the QTGMC thread anyway).
Now ONLY after you've deinterlaced first will you do the Crop (8, 6, -12, -8), leaving you with a 700x466 size (the exact same 1.5:1 ratio). But before you even do this crop, here's where you try and deblock the source first (otherwise things get misaligned, and deblocking will fail).
And now, you seem to have forgotten that this clip has a DAR of 4:3. So, here's where you upscale to 720x540** (not 480).
** Assuming you're not creating an NTSC DVD (otherwise, the specs say you'd have leave the height at 480).
manono
9th March 2019, 02:38
Now, before I go any further, DO NOT SCALE INTERLACED MATERIAL VERTICALLY. Like ever.
Oh, right. The crop he did is okay (Mod4 or greater); the resize isn't. Thank you for the correction. I never did check if the crop was accurate.
I get the same as you (using your crop figures) for a DVD. For a 1:1 MP4 or whatever, I get 656x480 (which I much prefer) or 720x526 (or 528 or 524 if Mod4 is preferred). This is using ITU resizing, which is proper for a VHS tape source, I believe. But that's been argued to death in the past.
Music Fan
9th March 2019, 10:17
That's not optimal because the separated fields should be aligned to compare the exact same part of the image in the denoiser. There's a function called FoldFields/UnFoldFields which works better.
Right, but only with temporal denoising or also with an only spatial denoiser (which doesn't compare consecutive frames, I guess) ?
Boulder
9th March 2019, 10:22
With spatial denoisers, separating fields and reinterlacing afterwards is safe for the reason you mentioned. It's been a very long time since I did that, but I seem to remember that you need to be careful with the denoiser strength in such case.
asarian
9th March 2019, 13:40
Oh, right. The crop he did is okay (Mod4 or greater)
Mod2 should suffice for this low-res material, though, right?
At any rate, his crop simply didn't cover the entirety of the black bars, and would leave the aspect ratio slightly distorted when upscaling (whether you could actuallly visually see that, is another matter, of course).
With spatial denoisers, separating fields and reinterlacing afterwards is safe for the reason you mentioned. It's been a very long time since I did that, but I seem to remember that you need to be careful with the denoiser strength in such case.
You're the expert here. :) But I was surprised to hear you say this, as I would have expected that QTGMC's awesome way of 'double-rate 'weaving and repairing would make any kind of denoising (even when just spatial) ill-advised before deinterlacing (unless the OP intended to keep things interlaced; although I can't, for the life of me, imagine why one would still want that, these days).
StainlessS
9th March 2019, 14:54
Mod2 should suffice for this low-res material, though, right?
Let's start with a proper crop:
Crop (8, 6, -12, -8)
Sorry if I'm taking this out of context, but above just dont seem right.
Crop restrictions
In order to preserve the data structure of the different colorspaces, the following mods should be used.
You will not get an error message if they are not obeyed, but you may get strange artifacts.
For a complete discussion on this, see Filter_SDK/Data_storage.
_____________________________________________________________________
Colorspace | Width | Height |
| |progressive video : interlaced video |
____________|_________________|__________________:___________________|
RGB | no restriction | no restriction | mod-2 |
YUY2 | mod-2 | no restriction | mod-2 |
YV12 | mod-2 | mod-2 | mod-4 |
YV411 | mod-4 | no restriction | mod-2 |
YV16 | mod-2 | no restriction | mod-2 |
YV24 | no restriction | no restriction | mod-2 |
____________|_________________|_________________ |___________________|
Note: The resize functions allow fractional (sub-pixel) cropping of the frame, with a weighting being applied to the edge pixels being resized.
This may be used if the mod-n format dimension restriction of Crop are inconvenient.
In summary: For cropping off hard artifacts like VHS head noise or letterbox borders always use Crop.
For extracting a portion of an image and to maintain accurate edge resampling, use the Resize cropping parameters.
YV12 Interlaced, must always be a mutliple of 4 in height (or already screwed up), and can only crop vertical modulo 4.
http://avisynth.nl/index.php/Crop
asarian
9th March 2019, 15:01
Sorry if I'm taking this out of context, but above just dont seem right.
Crop restrictions
In order to preserve the data structure of the different colorspaces, the following mods should be used.
You will not get an error message if they are not obeyed, but you may get strange artifacts.
For a complete discussion on this, see Filter_SDK/Data_storage.
_____________________________________________________________________
Colorspace | Width | Height |
| |progressive video : interlaced video |
____________|_________________|__________________:___________________|
RGB | no restriction | no restriction | mod-2 |
YUY2 | mod-2 | no restriction | mod-2 |
YV12 | mod-2 | mod-2 | mod-4 |
YV411 | mod-4 | no restriction | mod-2 |
YV16 | mod-2 | no restriction | mod-2 |
YV24 | no restriction | no restriction | mod-2 |
____________|_________________|_________________ |___________________|
Note: The resize functions allow fractional (sub-pixel) cropping of the frame, with a weighting being applied to the edge pixels being resized.
This may be used if the mod-n format dimension restriction of Crop are inconvenient.
In summary: For cropping off hard artifacts like VHS head noise or letterbox borders always use Crop.
For extracting a portion of an image and to maintain accurate edge resampling, use the Resize cropping parameters.
YV12 Interlaced, must always be a mutliple of 4 in height (or already screwed up), and can only crop vertical modulo 4.
http://avisynth.nl/index.php/Crop
All very true; but I was suggesting he do the crop after deinterlacing (and after deblocking, for that matter).
StainlessS
9th March 2019, 15:04
OK sorry then, was not paying enough attention.
Boulder
9th March 2019, 16:44
You're the expert here. :) But I was surprised to hear you say this, as I would have expected that QTGMC's awesome way of 'double-rate 'weaving and repairing would make any kind of denoising (even when just spatial) ill-advised before deinterlacing (unless the OP intended to keep things interlaced; although I can't, for the life of me, imagine why one would still want that, these days).
I expected that he wants to create interlaced output video, possibly for DVD so I didn't want to prevent him from doing that :)
What I personally do for truly interlaced sources is that I use QTGMC to create high quality double-rate output and then encode that as progressive. As I use an Apple TV 4K for my media stuff, I don't need interlaced material to stay as interlaced.
Sometimes I've also used the motion blur parameter to create a better looking, deinterlaced and single-rate output. Not to mention that the repairing done by Inputtype 1, 2 or 3 is often needed especially for older sources.
Metal-HTPC
10th March 2019, 12:00
Thanks for your suggestions and help. For the VHS source (https://www.filedropper.com/vhs-sample) according to your posts working in such ways with an interlaced source without deinterlacing it doesn't make sense so I decided to deinterlace the source and changed my script:
QTGMC(Preset="Medium", EzDenoise=1.5, FPSDivisor=2)
Levels(0,1.000,250,2,255,false)
Tweak(hue=-0, sat=0.7, bright=-14, cont=0.9, coring=false)
Crop(8, 6, -12, -8)
AddBorders(26,0,26,0)
LanczosResize(720,480)
AssumeFPS(29.970)
This is a "cut a complete vhs source with an incomplete HD source together" project.
Here is a sample of the 720p HD-stream source http://www.filedropper.com/31347203part22
To make it compatible to the VHS I will use this script for the HD source for deinterlacing, cropping and resizing:
QTGMC(Preset="Medium", EzDenoise=1.5, FPSDivisor=2)
Crop(100,0,-100,0)
LanczosResize(720,480)
AssumeFPS(29.970)
In the end this will be a 720x480 so called SD-blu ray compatible to stand alone blu-ray players encoded with x264. I have to use the AssumeFPS command because the x264er commandlines for -keyint can only be set to full numbers so in this case it will be -keyint 30. If I leave out the AssumeFPS I will be getting a wrong fps.
Gser
10th March 2019, 15:09
Thanks for your suggestions and help. For the VHS source (https://www.filedropper.com/vhs-sample) according to your posts working in such ways with an interlaced source without deinterlacing it doesn't make sense so I decided to deinterlace the source and changed my script:
QTGMC(Preset="Medium", EzDenoise=1.5, FPSDivisor=2)
Levels(0,1.000,250,2,255,false)
Tweak(hue=-0, sat=0.7, bright=-14, cont=0.9, coring=false)
Crop(8, 6, -12, -8)
AddBorders(26,0,26,0)
LanczosResize(720,480)
AssumeFPS(29.970)
This is a "cut a complete vhs source with an incomplete HD source together" project.
Here is a sample of the 720p HD-stream source http://www.filedropper.com/31347203part22
To make it compatible to the VHS I will use this script for the HD source for deinterlacing, cropping and resizing:
QTGMC(Preset="Medium", EzDenoise=1.5, FPSDivisor=2)
Crop(100,0,-100,0)
LanczosResize(720,480)
AssumeFPS(29.970)
In the end this will be a 720x480 so called SD-blu ray compatible to stand alone blu-ray players encoded with x264. I have to use the AssumeFPS command because the x264er commandlines for -keyint can only be set to full numbers so in this case it will be -keyint 30. If I leave out the AssumeFPS I will be getting a wrong fps.
keyint has absolutely nothing to do with the playback fps, you can have a 1 fps video with infinite keyint and it would still be played back at 1 fps, keyint is usually set to approximately the fps to make seeking faster or to comply with specifications, i.e they are seek points in the video.
And the correct way to use assumefps for ntsc is AssumeFPS(preset="ntsc_video")
or AssumeFPS(numerator=30000, denominator=1001)
If you for some reason need to set the fps on x264 command line there is the fps command for that
http://www.chaneru.com/Roku/HLS/X264_Settings.htm#fps
hello_hello
11th March 2019, 08:19
QTGMC(Preset="Medium", EzDenoise=1.5, FPSDivisor=2)
Levels(0,1.000,250,2,255,false)
Tweak(hue=-0, sat=0.7, bright=-14, cont=0.9, coring=false)
Crop(8, 6, -12, -8)
AddBorders(26,0,26,0)
LanczosResize(720,480)
AssumeFPS(29.970)
This is a "cut a complete vhs source with an incomplete HD source together" project.
To make it compatible to the VHS I will use this script for the HD source for deinterlacing, cropping and resizing:
QTGMC(Preset="Medium", EzDenoise=1.5, FPSDivisor=2)
Crop(100,0,-100,0)
LanczosResize(720,480)
AssumeFPS(29.970)
In the end this will be a 720x480 so called SD-blu ray compatible to stand alone blu-ray players encoded with x264.
Your cropping and resizing isn't correct. If the output is intended to be 4:3 (or 15:11 for Bluray compliance) then you have to crop to a display aspect ratio of 4:3 (or 15:11). From there you can resize to whatever dimensions you like as long as you set the correct pixel aspect ratio, but in this case you'd use 720x480 and --sar 10:11 (pixel aspect ratio) for Bluray compliance.
To crop to 15:11 while removing all the black from the sides of your HD sample (around 178 pixels each side).
1280 - 178 - 178 = 924
924 / (15/11) = 677.6
720 - 677.6 = 42.4
So you'd have to crop a total of 42.4 pixels from the original 720 height if you cropped 178 pixels from each side. You can crop the non-mod2 amount with the resizer.
Crop(178, 20, -178, -20)
LanczosResize(720,480, 0, 1.2, 0, -1.2) # pixel aspect ratio 10:11
Or if you don't crop anything from the height:
720 * (15/11) = 981.82
1280 - 981.82 = 298.18
298.18 / 2 = 149.09
Crop(148, 0, -148, -0)
LanczosResize(720,480, 1.09, 0, -1.09, 0) # pixel aspect ratio 10:11
For the VHS source, which I'll assume has a 15:11 display aspect ratio....
Crop(8, 0, -12, 0) would give you a 700x480 resolution.
700 * (10/11) = 636.36
636.36 / (15/11) = 466.66
480 - 466.66 = 13.34
Crop(8, 6, -12, 6)
LanczosResize(720,480, 0, 0, 0, -1.34) # pixel aspect ratio 10:11
No need to add 26 pixel borders each side.
Or you can start with the height cropping:
Crop(0, 6, 0, -8) would give you a 720x466 resolution.
466 * (15/11) = 635.45
635.45 / (10/11) = 698.995
720 - 698.995 = 21.005
Crop(8, 6, -12, -8)
LanczosResize(720,480, 0.5025, 0, -0.5025, 0) # pixel aspect ratio 10:11
Your HD sample is 29.97fps (30000/1001). There's no need to change the frame rate and you'd normally set --keyint 30 for Bluray compatibility.
Whoops, I fixed one mistake. Hopefully the rest of the maths is okay. :)
Sharc
11th March 2019, 20:30
Here is what I would do in case you want to stitch the 2 clips (VHS and BD) together:
The VHS clip is true interlaced. So I would bob it to preserve the temporal resolution and at the same time make it Blu-ray compliant with 59.94fps, scaled to 1280x720, add borders for 16:9
yadif(mode=1) #or a bobber of your choice
crop(8,4,-12,-8)
bicubicresize(980,720)
addborders(150,0,150,0)
The "BD" source is 29.97 fps, progressive, 1280x720. It has to be changed to 59.94fps for Blu-ray compliance.
crop(172,8,-172,-8)
bicubicresize(958,720)
addborders(160,0,162,0)
changefps(60000,1001) # the frames duplication adds very little to the file size when encoded with x264
Both clips are now 1280x720, progressive, 16:9, 59.94fps and Blu-ray compliant.
After all, this discussion has little to do with the thread's original topic ;)
Taurus
12th March 2019, 20:03
After all, this discussion has little to do with the thread's original topic ;)
Yes, please stop polluting this thread with just regular avisynth stuff.
The thread is even without this a little monster :p.
Boulder
12th March 2019, 20:30
Thanks for your suggestions and help. For the VHS source (https://www.filedropper.com/vhs-sample) according to your posts working in such ways with an interlaced source without deinterlacing it doesn't make sense so I decided to deinterlace the source and changed my script
I dug this out from my archive, it uses motion blur to make single-rate output look smoother in motion. It basically also disables the denoising part and keeps things much closer to the original, that's how I like it. Change to dct=0 for faster processing.
QTGMC("very slow",search=5,searchparam=4,pelsearch=4,dct=5,tr2=0,chromamotion=true,chromanoise=false,SourceMatch=2,Lossless=2,EZKeepGrain=0.4,Sharpness=0.1,fpsdivisor=2,shutterblur=3)
Music Fan
13th March 2019, 08:07
QTGMC("very slow",search=5,searchparam=4,pelsearch=4,dct=5,tr2=0,chromamotion=true,chromanoise=false,SourceMatch=2,Lossless=2,EZKeepGrain=0.4,Sharpness=0.1,fpsdivisor=2,shutterblur=3)
Why should he end up with a 29.97 fps video while he could keep the temporal resolution and get 59.94fps, as Sharc suggested ?
But I guess that QTGMC (without fpsdivisor=2) would give better results than yadif(mode=1).
And bicubicresize can probably be replaced too.
Boulder
13th March 2019, 08:14
Why should he end up with a 29.97 fps video while he could keep the temporal resolution and get 59.94fps, as Sharc suggested ?
But I guess that QTGMC (without fpsdivisor=2) would give better results than yadif(mode=1).
And bicubicresize can probably be replaced too.
It depends on his needs and requirements. As he was going for 29.97 fps output, I just gave him a choice. As far as I know, you can put 30p content on a blu-ray as I've seen many such cases myself. With x264 you need the --fake-interlaced parameter.
Yes, I would personally use QTGMC to bob the material to double-rate at optimal quality. Dropping the fpsdivisor=2 and shutterblur=3 parameters will do that with the settings I always use.
Sharc
13th March 2019, 10:14
As far as I know, you can put 30p content on a blu-ray as I've seen many such cases myself. With x264 you need the --fake-interlaced parameter.
Agree, for 720x480 resolution true interlaced or fake-interlaced are Blu-ray compliant.
As my proposal was to "normalize" everything to 1280x720 I had to make the frames progressive 59.94 fps because 29.97 would not be blu-ray compliant.
But I guess that QTGMC (without fpsdivisor=2) would give better results than yadif(mode=1).
Probably yes. I selected yadif as a bobber for the sake of simplicity only. My main point was to preserve the original temporal resolution of the VHS clip and the original spatial resolution of the "BD" clip.
Metal-HTPC
13th March 2019, 10:18
thanks a lot guys.
I don't see a reason keeping all those black bars, that's why I wanted to crop it to have a 4:3 aspect ratio as a SD-Blu-ray.
To make a blu-ray compatible SD-Blu-ray I would chose to make this 480i29.97
So according to all posts I would change my script to
VHS:
QTGMC("medium",search=5,searchparam=4,pelsearch=4,dct=5,tr2=0,chromamotion=true,chromanoise=false,SourceMatch=2,Lossless=2,EZKeepGrain=0.4,Sharpness=0.1,fpsdivisor=2,shutterblur=3)
Levels(0,1.000,250,2,255,false)
Tweak(hue=-0, sat=0.7, bright=-14, cont=0.9, coring=false)
Crop(8, 6, -12, -8)
Spline36Resize(720,480, 0.5025, 0, -0.5025, 0)
BD:
Crop(148, 0, -148, -0)
Spline36Resize(720,480, 1.09, 0, -1.09, 0)
as for the fps I would leave out "Assumefps" in Avisynth and add --keyint 30 --fps(30000/1001) in the x264 commandline instead.
Not shure why I would need the --fake-interlaced command for the VHS encode since it won't be interlaced anymore after the QTGMC.
Sorry that this thread got a bit out of hand but QTGMC is still included in my script so at least that belongs to the thread ;-)
Metal-HTPC
13th March 2019, 10:31
ah I just realised that I need fake interlaced otherwise I would be limited to a secondary stream with a much lower bitrate. Then I would include that command for both encodes.
Sharc
13th March 2019, 10:35
To make a blu-ray compatible SD-Blu-ray I would chose to make this 480i29.97
Not shure why I would need the --fake-interlaced command for the VHS encode since it won't be interlaced anymore after the QTGMC.
720x480 must be true interlaced or fake-interlaced (in order to fool the player) for blu-ray standards compliance. For Primary Video there exists no progressive format for 720x480 in the blu-ray specification - although your player may even play it, as it is accepted as Secondary Video level 3.2.
Music Fan
13th March 2019, 12:45
it won't be interlaced anymore after the QTGMC.
I see that you keep fpsdivisor=2 : are you sure you want to lose the original file's fluidity ?
There are 2 other solutions suggested earlier to keep this fluidity.
Metal-HTPC
13th March 2019, 21:16
I see that you keep fpsdivisor=2 : are you sure you want to lose the original file's fluidity ?
There are 2 other solutions suggested earlier to keep this fluidity.
hmm I have to think about it. The thing is if I go for the 59.94fps I can no longer crop and resize it to 720x480 since that wouldn't be bd compliant. Otherwise losing the fluidity also wouldn't make sense :-/
Metal-HTPC
14th March 2019, 08:47
ok I slept a night over it and came to the conclusion that I should get rid of my idea of cropping this project and make it a 4:3, 720x480 blu-ray because the quality would be worse than before because of the 29,97 frame rate.
As shark and music man suggested a 720p59.94 makes more sense.
So I will take the crop/resise/addborders advise of "Sharc"
and for Bopping and doubling the framerate without changing the lenghth of the VHS I will use the "Boulder" QTGMC script suggestion
QTGMC("very slow",search=5,searchparam=4,pelsearch=4,dct=5,tr2=0,chromamotion=true,chromanoise=false,SourceMatch=2,Lossless=2,EZKeepGrain=0.4,Sharpness=0.1)
I might include the EZDenoise=5 (which is the maximum) to denoise it or try "hello_hello" suggestions for using MCTD() (MCTemporalDenoiseMod) as a denoiser.
I can understand if someone isn't a fan of denoising I personally hate it when they denoise 2K or 4K master transfers of movies sourced from 16mm sources for an official blu-ray release and
make it look totally artificial / wax like.
But in this case we are not talking about natural film grain with dust particles in it. This is a sports show which was sourced from an ExtendedPlay VHS. So the noise looks bad and only occured due to the ExtendedPlay transfer which degrades the quality a lot. So to boost it and make it harmonize with the HD transfer I need to heavily denoise it in this case.
Regarding the LEVELS and Tweak commands I probably have to drop those
Natty
29th May 2019, 06:53
https://imgur.com/aCxZmSX
does anyone have any idea about this error?
just using this
https://imgur.com/82obOOj
wonkey_monkey
29th May 2019, 09:53
Are you by any chance using an old computer?
"Illegal instruction" is usually a hint that a plugin uses CPU instructions your CPU does not support. If there is e.g. one specific plugin DLL optimized for AVX2, and your CPU does not support AVX2, don't put this plugin DLL in your plugins directory.
If your computer does not even support SSE2, don't use that vintage museum piece anymore... ;)
AVSMeter may help you discovering which plugins may cause this issue.
Natty
29th May 2019, 19:19
wonkey_monkey, yes old i7
LigH, thanks I'll use avsmeter and report back if i find something
vorob
15th July 2019, 10:38
Silly questions ahead, sorry:
I've got a few tapes which I digitized a year ago. I used QTGMC script (3.32) to deinterlace it and it worked for most videos. Then I faced weird bug when after script I've got 60-sec video instead of 30 min. Or it will be 60 sec but will play further. And I just dropped for some time.
Now I'm back. I found that there is a newer version of QTGMC (3.362) I've downloaded an avsi file and dropped into AviSynth folder. Deleted previous script (3.32) and tried my bat file. I've faced error: I don't know what 'AvsPlusVersionNumber' means
Quick clarification. A year ago I found some guide and installed QTGMC script and all dependencies. Now I've just replaced old avsi with a new one. That's all. Do I need to update smth? What do I need to install?
Thx!
ChaosKing
15th July 2019, 11:01
Silly questions ahead, sorry:
I've got a few tapes which I digitized a year ago. I used QTGMC script (3.32) to deinterlace it and it worked for most videos. Then I faced weird bug when after script I've got 60-sec video instead of 30 min. Or it will be 60 sec but will play further. And I just dropped for some time.
Now I'm back. I found that there is a newer version of QTGMC (3.362) I've downloaded an avsi file and dropped into AviSynth folder. Deleted previous script (3.32) and tried my bat file. I've faced error: I don't know what 'AvsPlusVersionNumber' means
Quick clarification. A year ago I found some guide and installed QTGMC script and all dependencies. Now I've just replaced old avsi with a new one. That's all. Do I need to update smth? What do I need to install?
Thx!
AvsPlusVersionNumber is located in the smdegrain script https://pastebin.com/1HUc33kX
Or you could use my tool to download all dependencies with one click. https://forum.doom9.org/showthread.php?t=176443
vorob
15th July 2019, 11:39
Lol, I didn't have this file in my system. Wonder how old script worked without it. Anyway now I'm encoding again, will be back if I'll face any issues.
thx!
vorob
15th July 2019, 11:50
Lol, I didn't have this file in my system. Wonder how old script worked without it. Anyway now I'm encoding again, will be back if I'll face any issues.
thx!
Okay, issue persist. Long story:
I've got file:
Video: LAGS 720x576 25fps 54178kbps [V: lagarith, yuv422p, 720x576, 54178 kb/s]
Duration 1:33:00
My AVS script looks like this:
SetMTMode (5, 8)
AVISource("11.1999, 50 years annivers, 2000, 8th march.avi", audio=true)
ConvertToYV12()
SetMTMode(2)
AssumeTFF()
#QTGMC(preset="Slower", SourceMatch=3, Lossless=2, EdiThreads=1) #original
QTGMC(preset="Slow", Lossless=2, Sharpness=1, EdiThreads=8)
Distributor()
BilinearResize(720,540)
Crop (8, 2, -8, -8)
It renders without any issue but in the end, i've got 8min file. Instead of 1,3 hours. On older script, it made 22min file.
p.s. i've got core i7 with 4 cores 8 threads
vorob
15th July 2019, 12:46
Don't know if there any correlation, but!
I've started with
SetMTMode (5, 8)
QTGMC(preset="Slow", Lossless=2, Sharpness=1, EdiThreads=8)
And received 8 min video instead of 1,3 hour one. Then i lowered to
SetMTMode (5, 6)
QTGMC(preset="Slow", Lossless=2, Sharpness=1, EdiThreads=6)
And got 12 min. Now i'm on
SetMTMode (5, 4)
QTGMC(preset="Slow", Lossless=2, Sharpness=1, EdiThreads=4)
And it's 16 min. What does it mean?
LigH
16th July 2019, 07:23
To me it seems like the processing aborts prematurely, but doesn't report an error... it's certainly not usual not to process the whole video.
Please show the whole script. What kind of source filter do you use? In case of DirectShowSource: It might not be reliable in case of multi-threading on a faulty source.
pinterf
16th July 2019, 08:29
Don't know if there any correlation, but!
I've started with
SetMTMode (5, 8)
QTGMC(preset="Slow", Lossless=2, Sharpness=1, EdiThreads=8)
And received 8 min video instead of 1,3 hour one. Then i lowered to
SetMTMode (5, 6)
QTGMC(preset="Slow", Lossless=2, Sharpness=1, EdiThreads=6)
And got 12 min. Now i'm on
SetMTMode (5, 4)
QTGMC(preset="Slow", Lossless=2, Sharpness=1, EdiThreads=4)
And it's 16 min. What does it mean?
Processor thermal issues?
vorob
16th July 2019, 08:29
To me it seems like the processing aborts prematurely, but doesn't report an error... it's certainly not usual not to process the whole video.
Please show the whole script. What kind of source filter do you use? In case of DirectShowSource: It might not be reliable in case of multi-threading on a faulty source.
That is my script:
SetMTMode (5, 4)
AVISource("11.1999, 50 years annivers, 2000, 8th march.avi", audio=true)
ConvertToYV12()
SetMTMode(2)
AssumeTFF()
#QTGMC(preset="Slower", SourceMatch=3, Lossless=2, EdiThreads=1) #original
QTGMC(preset="Slow", Lossless=2, Sharpness=1, EdiThreads=4)
Distributor()
BilinearResize(720,540)
Crop (8, 2, -8, -8)
Where can i check what kind of source filter i use?
Processor thermal issues?
No, thermals are perfectly okay.
Groucho2004
16th July 2019, 08:41
@vorob
Run the script with AVSMeter (https://forum.doom9.org/showthread.php?t=174797) to see if your problem is on the frame server side. Check memory usage.
What do you use as your encoding frontend?
Also, using "Distributor()" will in most cases increase memory usage and decrease speed/efficiency.
vorob
16th July 2019, 12:19
Looks like disabling Distributor() solved the issue. At least my pc is still encoding, much longer than previously.
What's the purpose of this command?
I also would like to know more about SourceMatch=3 command. Cause deleting it speeds up the encoding process dramatically, and I didn't see any special difference in the picture...
ChaosKing
16th July 2019, 13:08
Look here for SourceMatch http://avisynth.nl/index.php/QTGMC
Key Points: Source-match creates higher fidelity output with extra processing. Enable with SourceMatch = 1,2 or 3. Higher values are slower and more accurate.
LigH
16th July 2019, 13:32
Distributor() is only required in an environment which does not handle multi-threading on its own. Common AviSynth-MT-aware video tools like VirtualDub(2) and x264/x265 don't need it. It may be required in ffdshow's AviSynth real time filtering, that's the only exception I got to know so far.
alexx7777
20th July 2019, 14:13
If you change the parameters for the search to 3, Blocksize to 8 (for better noise suppression), DCT to 1 Will this be the best option? If not, which values are best for maximum quality. Processing speed does not matter.
szabi
11th August 2019, 11:29
Hi
I have the same problem was mentioned earlier:
I don't know what 'AvsPlusVersionNumber' means.
C:/Program Files (x86)/AviSynth+/plugins/QTGMC.avsi, line 186
A copied the SMDegrain.avsi (https://pastebin.com/1HUc33kX) to the plugins directory but still have the problem.
Script line which call:
QTGMC( Preset="Slow", EdiThreads=2, TR2=2, Rep2=2, Sharpness=0.8, SLMode=1 )
I follow the wiki instructions (http://avisynth.nl/index.php/QTGMC) and copied the core and optional plugins and scripts.
What makes it does not work?
Regards
ChaosKing
11th August 2019, 11:34
Hi
I have the same problem was mentioned earlier:
A copied the SMDegrain.avsi (https://pastebin.com/1HUc33kX) to the plugins directory but still have the problem.
Script line which call:
QTGMC( Preset="Slow", EdiThreads=2, TR2=2, Rep2=2, Sharpness=0.8, SLMode=1 )
I follow the wiki instructions (http://avisynth.nl/index.php/QTGMC) and copied the core and optional plugins and scripts.
What makes it does not work?
Regards
So you still get the AvsPlusVersionNumber error?
Make sure the smdegrain file ends with .avsi.
Or try out AvsRepogui (see sig), it will download (almost) all dependencies.
szabi
11th August 2019, 14:33
So you still get the AvsPlusVersionNumber error?
Make sure the smdegrain file ends with .avsi.
Or try out AvsRepogui (see sig), it will download (almost) all dependencies.
The naming is exactly as needed.
The following files are in "plugins" directory:
addgrain.avs
AnimeIVTC.avsi
QTGMC.avsi
SMDegrain.avsi
AddGrainC.dll
DePan.dll
DePanEstimate.dll
dfttest.dll
EEDI2.dll
eedi3.dll
fft3dfilter.dll
KNLMeansCL.dll
libfftw3f-3.dll
masktools2.dll
mvtools2.dll
nnedi3.dll
PlanarTools.dll
RgTools.dll
TIVTC.dll
yadifmod2.dll
yadifmod2_avx2.dll
They are in "plugins64" directory:
addgrain.avs
AnimeIVTC.avsi
QTGMC.avsi
SMDegrain.avsi
AddGrainC.dll
DePan.dll
DePanEstimate.dll
dfttest.dll
EEDI2.dll
eedi3.dll
fft3dfilter.dll
KNLMeansCL.dll
libfftw3f-3.dll
masktools2.dll
mvtools2.dll
nnedi3.dll
PlanarTools.dll
RgTools.dll
TDeinterlace.dll
TIVTC.dll
yadifmod2.dll
yadifmod2_avx2.dll
There are two other directory "plugins+" and "plugins64+" which content are the default installation of "AviSynthPlus-MT-r2772.exe".
Do u seee anything to missing?
Regards
ChaosKing
11th August 2019, 14:46
The naming is exactly as needed.
The following files are in "plugins" directory:
addgrain.avs
AnimeIVTC.avsi
QTGMC.avsi
SMDegrain.avsi
AddGrainC.dll
DePan.dll
DePanEstimate.dll
dfttest.dll
EEDI2.dll
eedi3.dll
fft3dfilter.dll
KNLMeansCL.dll
libfftw3f-3.dll
masktools2.dll
mvtools2.dll
nnedi3.dll
PlanarTools.dll
RgTools.dll
TIVTC.dll
yadifmod2.dll
yadifmod2_avx2.dll
They are in "plugins64" directory:
addgrain.avs
AnimeIVTC.avsi
QTGMC.avsi
SMDegrain.avsi
AddGrainC.dll
DePan.dll
DePanEstimate.dll
dfttest.dll
EEDI2.dll
eedi3.dll
fft3dfilter.dll
KNLMeansCL.dll
libfftw3f-3.dll
masktools2.dll
mvtools2.dll
nnedi3.dll
PlanarTools.dll
RgTools.dll
TDeinterlace.dll
TIVTC.dll
yadifmod2.dll
yadifmod2_avx2.dll
There are two other directory "plugins+" and "plugins64+" which content are the default installation of "AviSynthPlus-MT-r2772.exe".
Do u seee anything to missing?
Regards
Looks ok to me, but you only need the dlls and scripts in ONE folder. No need to keep duplicates. Also if your cpu supports avx2 keep yadifmod2_avx2.dll an delete yadifmod2.dll or vice versa.
Have tried calling only smdegrain() in your script?
szabi
11th August 2019, 15:01
Only the scripts are duplicated, plugins are copied based on x32 or x64.
My cpu is old does not have avx support, I did delete the unneeded *avx.dll but did not helped.
When I disable "QTGMC" and insert "SMDegrain()" it is opening.
EDIT:
I did run the AVSRepoGUI and overwrite the files in plugins directory.
Now the content:
addgrain.avs
AnimeIVTC.avsi
LSFmod.avsi
QTGMC.avsi
SMDegrain.avsi
AddGrainC.dll
DePan.dll
DePanEstimate.dll
dfttest.dll
EEDI2.dll
eedi3.dll
fft3dfilter.dll
KNLMeansCL.dll
libfftw3-3.dll
libfftw3f-3.dll
masktools2.dll
mvtools2.dll
nnedi3.dll
PlanarTools.dll
RgTools.dll
TDeint.dll
TIVTC.dll
variableblur.dll
WarpSharp.dll
yadifmod2.dll
The failure message changed to: Script error: There is no function named 'NNEDI3'. (QTGMC.avsi, line 888 and line645)
What I need to do now?
StainlessS
11th August 2019, 15:24
Maybe check that you also have in SysWOW64, fftw3.dll, and libfftw3f-3.dll, x86.
And in system32, same files for x64.
EDIT: Also, its a bit daft having to have some reasonably complex script in plugins, just to have access to eg IsAvsPlus(),
better to add some always present *.avsi script for such things, containing eg.
AvsInit.avsi
Function IsAvsNeo() { FindStr(VersionString, " Neo") != 0 }
Function IsAvsPlus() { FindStr(VersionString, "AviSynth+") != 0 || IsAvsNeo }
Function AvsPlusVersionNumber() { IsAvsNeo ? eval(MidStr(VersionString(),20,4)) : IsAvsPlus ? val(MidStr(VersionString(),17,4)) : 0 }
Function IsAvs26() { VersionNumber >= 2.6 }
# SetMemoryMax(1024) # Or whatever.
If above installed in plugs, then having same functions in some other script as well, will not matter.
szabi
11th August 2019, 15:46
Working finally.
After "NNEDI3" failure message I changed the "nnedi3.dll".
There are several version in "NNEDI3_v0_9_4_53.7z"
I assumed I need to use this: "Release_Intel_W7_Core2_SSE4.2".
That was a wrong choice, I need to use: "Release_W7".
Working now.
Now I guess I go to the VHS restore topic because that is the reason why I do it all.
Thanks for your help.
Regards
StainlessS
11th August 2019, 15:56
Yes, that one is misleading,
My Quad Core 2 is (I think) second fastest of its generation[Q9550], and does not have SSE4.2 (4.1 only).
Think some of the later faster dual core's are also called Core 2, but have 4.2. (bit confusing).
As regards above mentioned "AvsInit.avsi", I'm posting new thread in a minute a startup avsi called InitExternalLpugins.avsi which can replace mentioned AvsInit,avsi.
szabi
11th August 2019, 16:05
My CPU is i7-860 which is also very old however it has SSE4.2 support.
So I assumed I did copy the correct version.
Also fftw3.dll, and libfftw3f-3.dll was copied as wiki descripted.
Overall I still not understand why did not worked if everything was done as wiki guieded, but "AVSRepoGUI" solved it somehow.
Once more thanks for both of you.
StainlessS
11th August 2019, 16:41
Maybe some problem in Avs+ CPU detection, or some assumption that some other instruction is present just because SSE4.2 is present.
Not sure if Pinterf did that version Nnedi3, perhaps it requires further investigation.
ChaosKing
11th August 2019, 17:10
This nnedi version is compiled by jpsdr https://github.com/jpsdr/NNEDI3
eobard
16th October 2019, 04:32
Guys, i want to ask, does preset placebo in QTGMC giving most best/lossless quality? Give me arguments which are giving the best quality with placebo preset, thanks
LigH
16th October 2019, 07:12
Similar to video encoders with presets using such a name: It is guaranteed that it takes the most efforts; but it is not guaranteed that it returns the best results, or even results with any noticeable difference from more efficient presets.
kedautinh12
26th October 2019, 10:59
i meet error notice: "i don't know what 'AvsPlusVersionNumber' means" when use with avisynth+ r2728
StainlessS
26th October 2019, 11:06
kedautinh12, see post #742.
EDIT: Dont call the little script in #742 AvsInit.avsi, there is now another script of that name, here:- https://forum.doom9.org/showthread.php?t=176749
EDIT: If you use Groucho2004 Universal Avisnyth thingy, you might find the bigger script of more use,
allows using GScript with Avs standard, or built-in Gscript functionality in avs+ [GScript scripts need GScript(" ... ") wrappers edited out].
kedautinh12
26th October 2019, 11:14
kedautinh12, see post #742.
EDIT: Dont call the little script in #742 AvsInit.avsi, there is now another script of that name, here:- https://forum.doom9.org/showthread.php?t=176749
EDIT: If you use Groucho2004 Universal Avisnyth thingy, you might find the bigger script of more use,
allows using GScript with Avs standard, or built-in Gscript functionality in avs+ [GScript scripts need GScript(" ... ") wrappers edited out].
thanks
kedautinh12
26th October 2019, 11:20
kedautinh12, see post #742.
EDIT: Dont call the little script in #742 AvsInit.avsi, there is now another script of that name, here:- https://forum.doom9.org/showthread.php?t=176749
EDIT: If you use Groucho2004 Universal Avisnyth thingy, you might find the bigger script of more use,
allows using GScript with Avs standard, or built-in Gscript functionality in avs+ [GScript scripts need GScript(" ... ") wrappers edited out].
now have error: "there is no function name 'RT_FunctionExist', i was load plugin RT_Stats.dll
StainlessS
26th October 2019, 11:35
# AvsInit.avsi
Global AVSINIT_VER = 1.04
/*
AvsInit.avsi, (c) StainlessS @ Doom9
Req:- RT_Stats v1.43+, (c)StainlessS : GScript (c)Gavino[Mandatory if non AVS+] : SysInfo (optional) (c)Groucho2004.
Script Called on Avisynth startup, (place in your Plugins directory), used for whatever startup initialization is required eg SetMemoryMax().
Makes some Functions available to User Scripts later, when user Avisynth scripts are being processed.
RT_Stats:- https://forum.doom9.org/showthread.php?t=165479&highlight=RT_Stats
SysInfo(almost mandatory now, likely mandatory soon):- https://forum.doom9.org/showthread.php?t=176131&highlight=sysinfo
EDIT: RT_Stats has functions that are available in no other plugins nor avs version [sysinfo same].
kedautinh12
26th October 2019, 11:42
RT_Stats:- https://forum.doom9.org/showthread.php?t=165479&highlight=RT_Stats
SysInfo(almost mandatory now, likely mandatory soon):- https://forum.doom9.org/showthread.php?t=176131&highlight=sysinfo
EDIT: RT_Stats has functions that are available in no other plugins nor avs version [sysinfo same].
i was used RT_Stats v2.00 Beta 12, now i found new error no function named 'GScriptclip' when i use avs+, and then i continued add GScript.dll still continue error no function named 'GScriptclip':D:D:D:D:D
StainlessS
26th October 2019, 11:48
GscriptClip(), is not used within AvsInit.avsi, what is exact error message ? [EDIT: Dont bother, its from QTGMC]
NOTE, GScriptclip is function from Gavino Grunt() plugin.
EDIT: I think Martin53 added Grunt stuff to QTGMC, so is a requirement of that.
kedautinh12
26th October 2019, 11:51
GscriptClip(), is not used within AvsInit.avsi, what is exact error message ? [EDIT: Dont bother, its from QTGMC]
NOTE, GScriptclip is function from Gavino Grunt() plugin.
EDIT: I think Martin53 added Grunt stuff to QTGMC, so is a requirement of that.
oh, thanks
Meloware
2nd November 2019, 18:45
I have been reading this thread and am trying to get QTGMC to run in my AMD Threadripper running Windows 10 64 bit. My problem appears to be with nnedi3.dll...
Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins64+/nnedi3.dll'. Platform returned code 126:
The specified module could not be found.
Dependencies that could not be loaded:
libmmd.dll
I can't find this libmmd.dll anywhere in my computer and I'd appreciate a trusted source to download one. Is this likely my problem? Other errors I have seen in AvsPmod are "There is no function named 'NNEDI3'" and " The specified module cannot be found". The nnedi3.dll is there and AviSynth still runs fine with the 8/16mm film restoration script. I am attempting to do this all with 64 bit plugins.
Groucho2004
2nd November 2019, 18:52
Try the DLL from the "Release_W7" directory.
Meloware
2nd November 2019, 20:04
Try the DLL from the "Release_W7" directory.
I saw this, but checked and my Threadripper supports most of the extended instructions listed in the other versions of the dll. I did try the "Release_W7" version and AVSynth Info stopped complaining about libmmd.dll and now can't find svml_dispmd.dll. I have the Visual C Runtime C++ 2015 installed. Are there others I need?
Any W7 version (W7, W7-AVX, W7AVX2) all make the same complaint about there not being a svml_dispmd.dll
Groucho2004
2nd November 2019, 22:17
I saw this, but checked and my Threadripper supports most of the extended instructions listed in the other versions of the dll. I did try the "Release_W7" version and AVSynth Info stopped complaining about libmmd.dll and now can't find svml_dispmd.dll. I have the Visual C Runtime C++ 2015 installed. Are there others I need?
Any W7 version (W7, W7-AVX, W7AVX2) all make the same complaint about there not being a svml_dispmd.dll
svml_dispmd.dll is yet another Intel dependency. Use the file from the Release_XP_SSE2 directory, that should work. You won't notice any difference in speed. Between the 500 versions that jpsdr put in that package there's probably a 1% speed difference.
As for the MS VC runtimes - I highly recommend using a all-in-one installer (https://github.com/abbodi1406/vcredist/releases).
Meloware
2nd November 2019, 22:36
Use the file from the Release_XP_SSE2 directory, that should work.
Thanks again! That worked! I never tried it because my machine is at the new end and I presumed the versions for XP were just legacy support.
BTW, the project is to save a collection of EIA-J videos, from the 1970s. I got the ancient Sony machine to run and now need AVISynth to make the results viewable. Thanks again.
Diamenz
16th November 2019, 00:15
hey guys. i'm having a bit of a problem with qtgmc. i'm trying to get as much of an accurate, quality driven result to my source as possible. the problem is that when i add "NoiseProcess=2" (without quotes) to my avs file in avspmod, i get an error in the preview window and of course the encode does not start:
"script error: there is no function named 'fft3dfilter"
this confuses me because i was under the impression that the 'slower' preset uses the 'dfttest' filter as opposed to the lower quality 'fft3dfilter' and it shouldn't even be called upon. here's my qtgmc line:
QTGMC(Preset="Slower", MatchPreset="Slower", MatchPreset2="Slower", SourceMatch=3, Lossless=2, TR2=1, NoiseDeint="Generate", Edithreads=4)
i should also mention that i get that same error if i use the 'placebo' preset as opposed to the 'slower' one.
also, how do TR2 and the NoiseProcess=2 settings coincide with each other? should i use them together, or should i use one and not the other if i'm shooting for accuracy?
manono
16th November 2019, 00:28
this confuses me because i was under the impression that the 'slower' preset uses the 'dfttest' filter as opposed to the lower quality 'fft3dfilter' and it shouldn't even be called upon.
Can you back that up in the documentation? Because it seems to me the FFT3DFilter is used unless you specifically choose to use DFTTest:
Denoiser (string) Select denoiser to use for noise bypass / denoising. Select from "dfttest" or "fft3dfilter". dfttest is better, but slower. Unknown value selects "fft3dfilter". Default: fft3dfilter
http://avisynth.nl/index.php/QTGMC#Core_Settings
Diamenz
16th November 2019, 00:38
Can you back that up in the documentation? Because it seems to me the FFT3DFilter is used unless you specifically choose to use DFTTest:
http://avisynth.nl/index.php/QTGMC#Core_Settings
i went off of what post#5 in this thread told me, here (https://forum.videohelp.com/threads/390123-Is-QTGMC-denoising-in-default-mode#post2534553).
# Noise presets Slower Slow Medium Fast Faster
Denoiser = default( Denoiser, Select( npNum, "dfttest", "dfttest", "dfttest", "fft3df", "fft3df" ) )
DenoiseMC = default( DenoiseMC, Select( npNum, true, true, false, false, false ) )
NoiseTR = default( NoiseTR, Select( npNum, 2, 1, 1, 1, 0 ) )
NoiseDeint = default( NoiseDeint, Select( npNum, "Generate","Bob", "", "", "" ) )
StabilizeNoise = default( StabilizeNoise, Select( npNum, true, true, true, false, false ) )
^that quote copy/pasted really bad so you're better off going to the post and navigating to the line "# Noise presets" closer to the bottom. it is an old post, but i just went with it because frankly i don't know jack about all of this. i learned what i have from a youtube tutorial and some reading on google.
Diamenz
16th November 2019, 01:20
i installed both dfttest filter, along with addgrainc and now get a working preview with:
QTGMC(Preset="Slower", MatchPreset="Slower", MatchPreset2="Slower", SourceMatch=3, Lossless=2, TR2=1, Denoiser="dfttest", NoiseProcess=2, NoiseDeint="Generate", Edithreads=4)
but it's very, very dark as if the black levels were crushed to crap.
...i THINK i installed addgrainc correctly - all i did was copy paste the dll, but i wasn't sure what i should do with the avs file included in the zip.
poisondeathray
16th November 2019, 01:22
@Diamenz -
preset="blah", and noisepreset="blah" are 2 different switches . It's in the documentation
Denoiser, DenoiseMC, NoiseTR, NoiseDeint and StabilizeNoise settings are determined by NoisePreset
Add noisepreset="slower", or you can explicitly use Denoiser="dfttest"
You can use showsettings=true, to overlay what settings are being passed
If you have wrong levels, usually it's some mismatch of newer script version and older plugins or vice-versa
real.finder
16th November 2019, 06:04
i installed both dfttest filter, along with addgrainc and now get a working preview with:
QTGMC(Preset="Slower", MatchPreset="Slower", MatchPreset2="Slower", SourceMatch=3, Lossless=2, TR2=1, Denoiser="dfttest", NoiseProcess=2, NoiseDeint="Generate", Edithreads=4)
but it's very, very dark as if the black levels were crushed to crap.
...i THINK i installed addgrainc correctly - all i did was copy paste the dll, but i wasn't sure what i should do with the avs file included in the zip.
what avisynth you use? with
ColorBars(width=640, height=480, pixel_type="yv12")
QTGMC(Preset="Slower", MatchPreset="Slower", MatchPreset2="Slower", SourceMatch=3, Lossless=2, TR2=1, Denoiser="dfttest", NoiseProcess=2, NoiseDeint="Generate", Edithreads=4)
in avs 2.6 last MT by SEt it crashed with C++ error! but work fine in last avs+
Diamenz
17th November 2019, 01:57
thanks, everyone for ur input. i've decided to just go with the basic settings and not dive too far into the advanced stuff. the 'slower' preset along with source match & lossless r giving me great results.
CMGTQ
2nd December 2019, 22:46
Hello, I'm having trouble with the Very Slow and Placebo settings in QTGMC. Whenever I select them, it seems only the chroma channel is processed, luma is not included, whereas with all other settings from Slower and above, it works as intended. Am I missing anything vital in the script or a filter? Thank you.
https://i.imgur.com/PUmbI4v.png
Trixter
7th January 2020, 20:48
I'm unable to process 10-bit video with avisynth+ v3.4.0 and QTGMC v3.358s because masktools2 v2.2.18 is throwing an unsupported colorspace error: "mt_makediff: unsupported colorspace, masktools only support planar YUV colorspace (YV12, YV16, YV24)"
My source is a v210 source opened via ffms2, and info() reports a YUV422P10 colorspace after opening. Is this not a supported planar colorspace for this combination? If not, what would be a good conversion workflow that would preserve high bit depth content, processed by QTGMC?
Script is very simple:
SetMemoryMax(512)
SetFilterMTMode("QTGMC", 2)
X = "finished 10-bit.avi"
A = FFAudioSource(X)
V = FFVideoSource(X)
AudioDub(V, A)
# produces YUV422P10 after loading, verified with info()
assumeBFF()
# crop to visible picture area, and also convert 486 lines to 480
crop(8,4,704,480)
QTGMC(Preset="slower", EdiThreads=4)
prefetch(6)
poisondeathray
7th January 2020, 22:17
I'm unable to process 10-bit video with avisynth+ v3.4.0 and QTGMC v3.358s because masktools2 v2.2.18 is throwing an unsupported colorspace error: "mt_makediff: unsupported colorspace, masktools only support planar YUV colorspace (YV12, YV16, YV24)"
My source is a v210 source opened via ffms2, and info() reports a YUV422P10 colorspace after opening. Is this not a supported planar colorspace for this combination? If not, what would be a good conversion workflow that would preserve high bit depth content, processed by QTGMC?
Works ok for me with v210
Im guessing you probably need newer QTGMC version 3.361s or newer for newer masktools
# --- LATEST CHANGES ---
#
# v3.361s
# - update to masktools 2.2.17, use expr in avs+ (for speed up and less RAM usage)
Here
https://forum.doom9.org/showthread.php?p=1836519=510
Trixter
8th January 2020, 03:14
I've updated to v3.361s, and updated all of the core plugins that are dependencies, but I'm still getting the same error. (I got different errors throughout updating plugins, but I'm back to the same error.) Is there a "qtgmc plugin pack/distro" I should be using, rather than trying to track everything down?
I've reproduced an avsmeter dump; can anyone see anything wrong? @poisondeathray, could you produce your "avsmeter avsinfo" so I can compare with your working configuration?
VersionString: AviSynth+ 3.4 (r2923, 3.4, i386)
VersionNumber: 2.60
File / Product version: 3.4.0.0 / 3.4.0.0
Interface Version: 6
Multi-threading support: Yes
Avisynth.dll location: C:\WINDOWS\SysWOW64\avisynth.dll
Avisynth.dll time stamp: 2019-10-20, 17:25:02 (UTC)
PluginDir2_5 (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins
PluginDir+ (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins+
[C 2.5 Plugins (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins\AVSInpaint.dll [x.x.x.x, 2008-02-23]
C:\Program Files (x86)\AviSynth+\plugins\yadif.dll [1.7.0.0, 2009-10-08]
[CPP 2.5 Plugins (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins\AddGrainC.dll [1.5.0.0, 2010-05-13]
C:\Program Files (x86)\AviSynth+\plugins\AutoCrop.dll [x.x.x.x, 2005-01-03]
C:\Program Files (x86)\AviSynth+\plugins\Average.dll [x.x.x.x, 2007-12-16]
C:\Program Files (x86)\AviSynth+\plugins\avssr.dll [x.x.x.x, 2014-01-09]
C:\Program Files (x86)\AviSynth+\plugins\ColorLooks.dll [x.x.x.x, 2017-08-03]
C:\Program Files (x86)\AviSynth+\plugins\Decomb.dll [x.x.x.x, 2008-06-14]
C:\Program Files (x86)\AviSynth+\plugins\degrainmedian.dll [0.8.2.0, 2006-10-08]
C:\Program Files (x86)\AviSynth+\plugins\dfttest.dll [1.8.0.0, 2010-06-22]
C:\Program Files (x86)\AviSynth+\plugins\EEDI2.dll [0.9.2.0, 2006-06-07]
C:\Program Files (x86)\AviSynth+\plugins\eedi3.dll [0.9.1.0, 2010-07-23]
C:\Program Files (x86)\AviSynth+\plugins\exinpaint.dll [0.2.0.0, 2008-01-30]
C:\Program Files (x86)\AviSynth+\plugins\FDecimate.dll [x.x.x.x, 2008-07-03]
C:\Program Files (x86)\AviSynth+\plugins\FFT3DFilter.dll [2.1.1.0, 2007-02-20]
C:\Program Files (x86)\AviSynth+\plugins\GetSystemEnv.dll [x.x.x.x, 2008-06-09]
C:\Program Files (x86)\AviSynth+\plugins\Motion_12Dec05.dll [x.x.x.x, 2005-12-12]
C:\Program Files (x86)\AviSynth+\plugins\MT.dll [0.7.0.0, 2009-06-30]
C:\Program Files (x86)\AviSynth+\plugins\mt_masktools-25.dll [2.0.48.0, 2010-12-31]
C:\Program Files (x86)\AviSynth+\plugins\nnedi.dll [1.3.0.0, 2007-09-20]
C:\Program Files (x86)\AviSynth+\plugins\nnedi2.dll [1.6.0.0, 2010-07-23]
C:\Program Files (x86)\AviSynth+\plugins\PointSize.dll [x.x.x.x, 2010-05-19]
C:\Program Files (x86)\AviSynth+\plugins\ReInterpolate411.dll [0.1.1.0, 2003-08-01]
C:\Program Files (x86)\AviSynth+\plugins\RemoveGrain.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\RemoveGrainS.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\RemoveGrainSSE2.dll [x.x.x.x, 2005-08-01]
C:\Program Files (x86)\AviSynth+\plugins\RemoveGrainSSE3.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\Repair.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\RepairS.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\RepairSSE2.dll [x.x.x.x, 2005-08-01]
C:\Program Files (x86)\AviSynth+\plugins\RepairSSE3.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\RSharpen.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\RSharpenS.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\RSharpenSSE2.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\RSharpenSSE3.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\SSE2Tools.dll [x.x.x.x, 2005-04-11]
C:\Program Files (x86)\AviSynth+\plugins\svpflow1.dll [1.3.5.0, 2014-03-11]
C:\Program Files (x86)\AviSynth+\plugins\svpflow2.dll [1.5.8.0, 2014-05-03]
C:\Program Files (x86)\AviSynth+\plugins\TDeint.dll [1.1.0.0, 2007-01-22]
C:\Program Files (x86)\AviSynth+\plugins\TTempSmooth.dll [0.9.4.0, 2005-11-18]
C:\Program Files (x86)\AviSynth+\plugins\VerticalCleanerSSE2.dll [x.x.x.x, 2008-02-28]
C:\Program Files (x86)\AviSynth+\plugins\yadifmod.dll [1.0.0.0, 2007-09-15]
[CPP 2.6 Plugins (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\ConvertStacked.dll [x.x.x.x, 2019-10-20]
C:\Program Files (x86)\AviSynth+\plugins+\DirectShowSource.dll [x.x.x.x, 2019-10-20]
C:\Program Files (x86)\AviSynth+\plugins+\ImageSeq.dll [x.x.x.x, 2019-10-20]
C:\Program Files (x86)\AviSynth+\plugins+\Shibatch.dll [x.x.x.x, 2019-10-20]
C:\Program Files (x86)\AviSynth+\plugins+\TimeStretch.dll [x.x.x.x, 2019-10-20]
C:\Program Files (x86)\AviSynth+\plugins+\VDubFilter.dll [x.x.x.x, 2019-10-20]
C:\Program Files (x86)\AviSynth+\plugins\DePan.dll [2.13.1.4, 2019-05-02]
C:\Program Files (x86)\AviSynth+\plugins\DePanEstimate.dll [2.10.0.3, 2019-05-02]
C:\Program Files (x86)\AviSynth+\plugins\DirectShowSource.dll [2.6.0.3, 2015-04-19]
C:\Program Files (x86)\AviSynth+\plugins\ffms2.dll [x.x.x.x, 2016-12-29]
C:\Program Files (x86)\AviSynth+\plugins\KNLMeansCL.dll [x.x.x.x, 2016-04-11]
C:\Program Files (x86)\AviSynth+\plugins\masktools2.dll [2.2.18.0, 2018-09-05]
C:\Program Files (x86)\AviSynth+\plugins\MedianBlur2.dll [x.x.x.x, 2014-02-10]
C:\Program Files (x86)\AviSynth+\plugins\mvtools2.dll [2.7.41.0, 2019-05-02]
C:\Program Files (x86)\AviSynth+\plugins\nnedi3.dll [0.9.4.53, 2019-06-06]
C:\Program Files (x86)\AviSynth+\plugins\RgTools.dll [x.x.x.x, 2014-02-12]
C:\Program Files (x86)\AviSynth+\plugins\TCPDeliver.dll [2.6.0.7, 2015-04-19]
C:\Program Files (x86)\AviSynth+\plugins\TIVTC.dll [1.0.14.0, 2019-02-07]
[Scripts (AVSI)] [Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\colors_rgb.avsi [2019-10-20]
C:\Program Files (x86)\AviSynth+\plugins\AnimeIVTC.avsi [2017-02-09]
C:\Program Files (x86)\AviSynth+\plugins\AviSynthPluginsDir.avsi [2009-06-17]
C:\Program Files (x86)\AviSynth+\plugins\avslib.avsi [2009-05-30]
C:\Program Files (x86)\AviSynth+\plugins\colors_rgb.avsi [2005-07-08]
C:\Program Files (x86)\AviSynth+\plugins\ConditionalSmoothBob.avsi [2010-01-15]
C:\Program Files (x86)\AviSynth+\plugins\crt_display.avsi [2014-06-05]
C:\Program Files (x86)\AviSynth+\plugins\dv2film.avsi [2010-01-15]
C:\Program Files (x86)\AviSynth+\plugins\FFMS2.avsi [2015-05-22]
C:\Program Files (x86)\AviSynth+\plugins\InterFrame2.avsi [2015-05-21]
C:\Program Files (x86)\AviSynth+\plugins\loader.avsi [2007-02-12]
C:\Program Files (x86)\AviSynth+\plugins\MotionProtectedFPS.avsi [2006-07-22]
C:\Program Files (x86)\AviSynth+\plugins\plugins.avsi [2009-05-30]
C:\Program Files (x86)\AviSynth+\plugins\QTGMC.avsi [2019-07-20]
C:\Program Files (x86)\AviSynth+\plugins\setmemorymax.avsi [2015-10-07]
C:\Program Files (x86)\AviSynth+\plugins\showproperties.avsi [2015-10-07]
C:\Program Files (x86)\AviSynth+\plugins\smdegrain.avsi [2019-07-21]
C:\Program Files (x86)\AviSynth+\plugins\Srestore.avsi [2018-03-15]
[Uncategorized DLLs (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins\fftw3.dll [x.x.x.x, 2004-01-30]
C:\Program Files (x86)\AviSynth+\plugins\libflowgpu.dll [1.2.0.0, 2011-04-19]
C:\Program Files (x86)\AviSynth+\plugins\libflowsse.dll [1.3.0.0, 2011-04-28]
C:\Program Files (x86)\AviSynth+\plugins\svpflow_cpu.dll [1.7.2.0, 2014-03-11]
C:\Program Files (x86)\AviSynth+\plugins\svpflow_gpu.dll [1.8.4.0, 2014-05-03]
[Uncategorized files] [Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\colors_rgb.txt [2019-10-20]
C:\Program Files (x86)\AviSynth+\plugins\AviSynth.css [2006-12-25]
C:\Program Files (x86)\AviSynth+\plugins\avisynth.h [2004-03-17]
C:\Program Files (x86)\AviSynth+\plugins\AviSynth.lib [2006-12-31]
C:\Program Files (x86)\AviSynth+\plugins\AviSynth_C.h [2006-03-28]
C:\Program Files (x86)\AviSynth+\plugins\AVSInpaint.c [2008-02-23]
C:\Program Files (x86)\AviSynth+\plugins\AVSInpaint.htm [2008-02-23]
C:\Program Files (x86)\AviSynth+\plugins\AVSInpaint.Makefile.gcc.txt [2008-02-21]
C:\Program Files (x86)\AviSynth+\plugins\Builds.txt [2014-05-11]
C:\Program Files (x86)\AviSynth+\plugins\DecombFAQ.html [2008-06-13]
C:\Program Files (x86)\AviSynth+\plugins\DecombReferenceManual.html [2008-06-13]
C:\Program Files (x86)\AviSynth+\plugins\DecombTutorial.html [2008-06-13]
C:\Program Files (x86)\AviSynth+\plugins\degrainmedian.html [2006-10-08]
C:\Program Files (x86)\AviSynth+\plugins\Demo.avs [2008-02-23]
C:\Program Files (x86)\AviSynth+\plugins\dv2film.txt [2010-01-15]
C:\Program Files (x86)\AviSynth+\plugins\exinpaint-rus.html [2011-09-16]
C:\Program Files (x86)\AviSynth+\plugins\exinpaint.cbp [2008-01-14]
C:\Program Files (x86)\AviSynth+\plugins\exinpaint.cpp [2008-01-30]
C:\Program Files (x86)\AviSynth+\plugins\exinpaint.dsp [2008-01-14]
C:\Program Files (x86)\AviSynth+\plugins\exinpaint.dsw [2008-01-14]
C:\Program Files (x86)\AviSynth+\plugins\exinpaint.html [2011-09-16]
C:\Program Files (x86)\AviSynth+\plugins\exinpaint.rc [2008-01-30]
C:\Program Files (x86)\AviSynth+\plugins\FDecimateHelp.html [2008-07-03]
C:\Program Files (x86)\AviSynth+\plugins\ffms2-avisynth.html [2012-01-11]
C:\Program Files (x86)\AviSynth+\plugins\ffms2.lib [2016-12-29]
C:\Program Files (x86)\AviSynth+\plugins\ffmsindex.exe [2016-12-29]
C:\Program Files (x86)\AviSynth+\plugins\fft3dfilter-rus.html [2007-12-02]
C:\Program Files (x86)\AviSynth+\plugins\FFT3DFilter.cbp [2007-02-20]
C:\Program Files (x86)\AviSynth+\plugins\FFT3DFilter.cpp [2007-02-21]
C:\Program Files (x86)\AviSynth+\plugins\fft3dfilter.html [2007-12-02]
C:\Program Files (x86)\AviSynth+\plugins\FFT3DFilter.rc [2007-02-21]
C:\Program Files (x86)\AviSynth+\plugins\fft3dfilter_3dnow.cpp [2005-08-30]
C:\Program Files (x86)\AviSynth+\plugins\fft3dfilter_c.cpp [2006-09-09]
C:\Program Files (x86)\AviSynth+\plugins\fft3dfilter_sse.cpp [2006-05-11]
C:\Program Files (x86)\AviSynth+\plugins\fftwlite.h [2006-11-27]
C:\Program Files (x86)\AviSynth+\plugins\GetSystemEnv.html [2008-06-09]
C:\Program Files (x86)\AviSynth+\plugins\GNUGPLv2.txt [2006-11-04]
C:\Program Files (x86)\AviSynth+\plugins\gpl-rus.txt [2003-11-29]
C:\Program Files (x86)\AviSynth+\plugins\gpl.txt [2003-10-02]
C:\Program Files (x86)\AviSynth+\plugins\info.h [2003-05-02]
C:\Program Files (x86)\AviSynth+\plugins\inpainted.jpg [2008-01-14]
C:\Program Files (x86)\AviSynth+\plugins\inpainting.cpp [2008-01-30]
C:\Program Files (x86)\AviSynth+\plugins\inpainting.h [2008-01-30]
C:\Program Files (x86)\AviSynth+\plugins\InterFrame2.html [2015-05-21]
C:\Program Files (x86)\AviSynth+\plugins\knlmeans doc.txt [2016-02-19]
C:\Program Files (x86)\AviSynth+\plugins\makefile [2005-08-13]
C:\Program Files (x86)\AviSynth+\plugins\masked.jpg [2008-01-14]
C:\Program Files (x86)\AviSynth+\plugins\masktools2-x86.zip [2016-06-07]
C:\Program Files (x86)\AviSynth+\plugins\motion.html [2006-07-22]
C:\Program Files (x86)\AviSynth+\plugins\MT.html [2007-03-02]
C:\Program Files (x86)\AviSynth+\plugins\nnedi2 - Readme.txt [2010-05-16]
C:\Program Files (x86)\AviSynth+\plugins\nnedi3 - Readme.txt [2011-06-10]
C:\Program Files (x86)\AviSynth+\plugins\original.jpg [2008-01-14]
C:\Program Files (x86)\AviSynth+\plugins\overlap.gif [2005-04-05]
C:\Program Files (x86)\AviSynth+\plugins\PointSize_readme.txt [2010-05-19]
C:\Program Files (x86)\AviSynth+\plugins\QTGMC-3.32.html [2011-05-05]
C:\Program Files (x86)\AviSynth+\plugins\QTGMC-3.32.rar [2020-01-07]
C:\Program Files (x86)\AviSynth+\plugins\QTGMC.rar [2020-01-07]
C:\Program Files (x86)\AviSynth+\plugins\readme.txt [2014-01-11]
C:\Program Files (x86)\AviSynth+\plugins\register_avssr.exe [2014-01-10]
C:\Program Files (x86)\AviSynth+\plugins\ReInterpolate411.aps [2003-08-01]
C:\Program Files (x86)\AviSynth+\plugins\ReInterpolate411.cpp [2003-08-01]
C:\Program Files (x86)\AviSynth+\plugins\ReInterpolate411.dsp [2003-08-01]
C:\Program Files (x86)\AviSynth+\plugins\ReInterpolate411.plg [2003-08-01]
C:\Program Files (x86)\AviSynth+\plugins\ReInterpolate411.rc [2003-08-01]
C:\Program Files (x86)\AviSynth+\plugins\resource.h [2003-07-31]
C:\Program Files (x86)\AviSynth+\plugins\RgTools-x86.zip [2016-06-07]
C:\Program Files (x86)\AviSynth+\plugins\Rm_logo.avs [2016-06-07]
C:\Program Files (x86)\AviSynth+\plugins\test-pattern.avs [2014-06-05]
C:\Program Files (x86)\AviSynth+\plugins\testpic.png [2014-06-05]
C:\Program Files (x86)\AviSynth+\plugins\yadif.html [2009-10-10]
C:\Program Files (x86)\AviSynth+\plugins\yadifmod - Readme.txt [2007-09-15]
poisondeathray
8th January 2020, 03:35
@Trixter -
You need to clean up your plugins directory. Too much junk. All those old 2.5 plugins
For example you have 2 masktools. That's probably the current problem. Move the obsolete one somewhere else
C:\Program Files (x86)\AviSynth+\plugins\mt_masktools-25.dll [2.0.48.0, 2010-12-31]
C:\Program Files (x86)\AviSynth+\plugins\masktools2.dll [2.2.18.0, 2018-09-05]
Trixter
8th January 2020, 06:29
Moving the old masktools out of the way got the script running, thanks. (The perils of being an avisynth user since 2003 -- I never want to get rid of a hacked plugin to support 2006-era scripts, LOL)
Unfortunately, while the script is working and the output is indeed 10-bit, the results are terrible; the motion is not stable, details are lost, and the "very slow" and "placebo" presets produce black dot artifacts. Now that I know it's possible for the script to run, I'll have to completely empty my plugins directory and start putting things back one by one, I guess.
Trixter
8th January 2020, 06:51
By doing ConvertBits(8).ConvertToYUY2(), I've confirmed that the artifacts (jittery motion, blurry detail, distorted edges) only show up when trying to process the footage as YUV422P10. When it's YUY2, GTQMC works perfectly. I'm already running the latest version of the plugins, especially mvtools, so I'm not sure what I'm doing wrong.
8-bit content is fine:
https://i.ibb.co/6vyDdFy/ve-yuy2.png
...but 10-bit content is distorted and jumps every frame (see the non-rectangular fence in the center of the background, and the fuzzy edges around the wire light in the very upper right):
https://i.ibb.co/9NNJqFt/ve-10bit.png
poisondeathray
8th January 2020, 07:18
I'm already running the latest version of the plugins, especially mvtools, so I'm not sure what I'm doing wrong.
Not according to post 773. For example rgtools 2014-02-12 is old. Some of those very old plugins might be interfering
For example, RemoveGrain() the call is part of rgtools, but also RemoveGrain.dll from 2007. It's the same call. Same name.
What happens when it autoloads the old plugin ? Which one gets used?
#1 cause of these sorts of problems is cluttered autoload directory. Clean it out
e.g. FFMS2 2016-12-29 is old. Is it "old enough" to cause problems? I don't know.
I'll have to completely empty my plugins directory and start putting things back one by one, I guess.
Yes. Or LoadPlugin manually. Keep only frequently used items in the autoload directory
Trixter
8th January 2020, 07:45
I appreciate the advice. I'll give this another shot by completely disabling autoload and LoadPlugin everything manually. Thanks!
Trixter
8th January 2020, 17:40
e.g. FFMS2 2016-12-29 is old.
It's actually more recent than the latest version listed here: https://github.com/FFMS/ffms2/releases
If both the version I have is old, and the official github release is old, where should I be getting FFMS2?
Groucho2004
8th January 2020, 18:39
It's actually more recent than the latest version listed here: https://github.com/FFMS/ffms2/releases
If both the version I have is old, and the official github release is old, where should I be getting FFMS2?I believe it's this one (https://forum.doom9.org/showthread.php?p=1894414#post1894414).
Trixter
10th January 2020, 06:19
Update: After emptying all my plugins and starting from scratch, I am now successful maintaining a 10-bit pipeline with qtgmc. All artifacts reported previously are gone. The final result:
[CPP 2.6 Plugins (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins\DePan.dll [2.13.1.4, 2019-05-02]
C:\Program Files (x86)\AviSynth+\plugins\DePanEstimate.dll [2.10.0.3, 2019-05-02]
C:\Program Files (x86)\AviSynth+\plugins\ffms2.dll [x.x.x.x, 2020-01-01]
C:\Program Files (x86)\AviSynth+\plugins\fft3dfilter.dll [2.6.0.0, 2019-01-31]
C:\Program Files (x86)\AviSynth+\plugins\masktools2.dll [2.2.18.0, 2018-09-05]
C:\Program Files (x86)\AviSynth+\plugins\mvtools2.dll [2.7.41.0, 2019-05-02]
C:\Program Files (x86)\AviSynth+\plugins\nnedi3.dll [0.9.4.53, 2019-06-06]
C:\Program Files (x86)\AviSynth+\plugins\RgTools.dll [0.98.0.0, 2019-08-14]
[Scripts (AVSI)] [Time stamp]
C:\Program Files (x86)\AviSynth+\plugins\AnimeIVTC.avsi [2017-02-09]
C:\Program Files (x86)\AviSynth+\plugins\QTGMC.avsi [2019-07-20]
C:\Program Files (x86)\AviSynth+\plugins\smdegrain.avsi [2019-07-21]
[Uncategorized DLLs (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins\libfftw3-3.dll [x.x.x.x, 2016-07-30]
C:\Program Files (x86)\AviSynth+\plugins\libfftw3f-3.dll [x.x.x.x, 2016-07-30]
C:\Program Files (x86)\AviSynth+\plugins\libfftw3l-3.dll [x.x.x.x, 2016-07-30]
Thanks to all who gave me pointers. Now I'm off to fight with ffmpeg :-)
StainlessS
10th January 2020, 12:23
Delete these [not used for avisynth]
C:\Program Files (x86)\AviSynth+\plugins\libfftw3-3.dll [x.x.x.x, 2016-07-30]
C:\Program Files (x86)\AviSynth+\plugins\libfftw3l-3.dll [x.x.x.x, 2016-07-30]
This one sometimes also renamed to fftw3.dll for some plugins (some more recent plugs can load under either name).
C:\Program Files (x86)\AviSynth+\plugins\libfftw3f-3.dll [x.x.x.x, 2016-07-30]
Both above [both alternate names] can be moved to system32 or sysWOW64 on x64 (but should run ok from plugins, I dont like any rubbish in my plugins).
EDIT: Also note for future, only use one of below [there is more than one similar plugin group in your prev posted list]
C:\Program Files (x86)\AviSynth+\plugins\RSharpen.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\RSharpenS.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\RSharpenSSE2.dll [x.x.x.x, 2007-10-24]
C:\Program Files (x86)\AviSynth+\plugins\RSharpenSSE3.dll [x.x.x.x, 2007-10-24]
SSE3 is for SSE3 machine SSE2 for SSE2, S is static linked, ie dont need VS cpp runtimes, and the naked named dll is C only, so you just pick one.
[SSE3 is little better than SSE2, and some people used to say that SSE3 versions sometimes had problems, so most used SSE2]
EDIT: Lastly, dont just chuck everything in plugin zip into yor plugins folder, you had source code and html and even zip's in yours.
EDIT: To below: Thank You maestro.
Groucho2004
10th January 2020, 12:29
C:\Program Files (x86)\AviSynth+\plugins\libfftw3f-3.dll [x.x.x.x, 2016-07-30]
Both above [both alternate names] can be moved to system32 or sysWOW64 on x64 (but should run ok from plugins, I dont like any rubbish in my plugins).Only if the plugins path is in the 'PATH' environment variable. People should use the default directories for the fftw DLLs, namely System32 and/or SysWoW64 which provide a clear distinction between 32/64 bit modules.
wonkey_monkey
10th January 2020, 13:01
namely System32 and/or SysWoW64 which provide a clear distinction between 32/64 bit modules.
It's certainly a distinction, although I wouldn't say it's a "clear" one what with (on a 64-bit system) 64-bit DLLs going into System32 and 32-bit DLLs going into SysWow64.
Groucho2004
10th January 2020, 13:18
It's certainly a distinction, although I wouldn't say it's a "clear" one what with (on a 64-bit system) 64-bit DLLs going into System32 and 32-bit DLLs going into SysWow64.Can you elaborate? I'm not sure if I understand your point.
StainlessS
10th January 2020, 13:44
Yep, M$ has their own unique [patent pending] way of keeping I.T. guys in work, the system/system32/SysWOW64 conundrum is not the only one of its kind.
EDIT: My own favourite is,
"The system drive is the drive you boot to, and the boot drive is the one your system is on".
wonkey_monkey
10th January 2020, 14:13
Can you elaborate? I'm not sure if I understand your point.
64 bit DLLs -> System32
32 bit DLLs -> Syswow64
It's confused plenty of people in its time.
Groucho2004
10th January 2020, 14:18
64 bit DLLs -> System32
32 bit DLLs -> Syswow64
It's confused plenty of people in its time.
Ah, I see what you mean. On that subject, here is a very good and compact explanation on how this came about:
https://stackoverflow.com/questions/949959/why-do-64-bit-dlls-go-to-system32-and-32-bit-dlls-to-syswow64-on-64-bit-windows/37823671#37823671
manolito
15th January 2020, 09:56
I believe it's this one (https://forum.doom9.org/showthread.php?p=1894414#post1894414).
No, DO NOT use this version. It reintroduced the old seeking bug which has been fixed for a while. Take this version instead:
https://forum.doom9.org/showthread.php?p=1891279#post1891279
MikeT
17th January 2020, 17:51
I'm also running into issues with v210 10bit input through QTGMC, and would like to ask for any pointers that you guys could give me.
I have a recent and clean installation of VirtualDub2, AviSynth+ and QTGMC. All 64bit working in a Windows10 environment.
My simple Avisynth script works well with 8bit (uncompressed) input, but fails with 10bit v210 (uncompressed) input, giving the following error:
---------------------------
File open error
---------------------------
Avisynth open failure:
TemporalSoften: Scenechange not available on RGB32/64
(D:/Program Files (x86)/AviSynth+/plugins64+/QTGMC.avsi, line 468)
(D:\Users\miket\Videos\Process VHS Tapes\Files De-Interlaced\10bit Test 01.avs, line 10)
---------------------------
OK
---------------------------
Basic AVI script is as follows:
AviSource("D:\Users\miket\Videos\Process VHS Tapes\Files Capture\10bit Test 01.avi")
#
#Settings for use of de-interlacing using QTGMC via AviSynth
#
#Version()
SetFilterMTMode("QTGMC",2) # Put QTGMC into multithreading mode 2
#ConvertToYUY2()
AssumeTFF() # Top Frame First or BFF
QTGMC(Preset="Slower", Edithreads=2)
Prefetch(threads=6)
And AVSMeter info is as follows:
AVSMeter 2.9.7 (x64), 2012-2019, Groucho2004
VersionString: AviSynth+ 3.4 (r2923, 3.4, x86_64)
VersionNumber: 2.60
File / Product version: 3.4.0.0 / 3.4.0.0
Interface Version: 6
Multi-threading support: Yes
Avisynth.dll location: C:\WINDOWS\SYSTEM32\avisynth.dll
Avisynth.dll time stamp: 2019-10-20, 13:58:12 (UTC)
PluginDir2_5 (HKLM, x64): D:\Program Files (x86)\AviSynth+\plugins64
PluginDir+ (HKLM, x64): D:\Program Files (x86)\AviSynth+\plugins64+
[CPP 2.6 Plugins (64 Bit)] [Version, Time stamp]
D:\Program Files (x86)\AviSynth+\plugins64+\ConvertStacked.dll [x.x.x.x, 2019-10-20]
D:\Program Files (x86)\AviSynth+\plugins64+\DirectShowSource.dll [x.x.x.x, 2019-10-20]
D:\Program Files (x86)\AviSynth+\plugins64+\ffms2.dll [x.x.x.x, 2016-12-29]
D:\Program Files (x86)\AviSynth+\plugins64+\ImageSeq.dll [x.x.x.x, 2019-10-20]
D:\Program Files (x86)\AviSynth+\plugins64+\masktools2.dll [2.2.18.0, 2018-09-05]
D:\Program Files (x86)\AviSynth+\plugins64+\mvtools2.dll [2.7.41.0, 2019-05-02]
D:\Program Files (x86)\AviSynth+\plugins64+\nnedi3.dll [0.9.4.53, 2019-06-06]
D:\Program Files (x86)\AviSynth+\plugins64+\RgTools.dll [0.98.0.0, 2019-06-03]
D:\Program Files (x86)\AviSynth+\plugins64+\Shibatch.dll [x.x.x.x, 2019-10-20]
D:\Program Files (x86)\AviSynth+\plugins64+\TimeStretch.dll [x.x.x.x, 2019-10-20]
D:\Program Files (x86)\AviSynth+\plugins64+\VDubFilter.dll [x.x.x.x, 2019-10-20]
[Scripts (AVSI)] [Time stamp]
D:\Program Files (x86)\AviSynth+\plugins64+\AnimeIVTC.avsi [2020-01-05]
D:\Program Files (x86)\AviSynth+\plugins64+\colors_rgb.avsi [2019-10-20]
D:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi [2020-01-05]
D:\Program Files (x86)\AviSynth+\plugins64+\smdegrain.avsi [2020-01-05]
[Uncategorized files] [Time stamp]
D:\Program Files (x86)\AviSynth+\plugins64+\colors_rgb.txt [2019-10-20]
Am I missing any crucial plugins or .dll's ? ffms2.dll looks a bit long-in-the-tooth. Could that be the issue?
Any help would be gratefully received.
nhope
15th March 2020, 11:18
HOW TO DEAL WITH ZOOMS?
I am deinterlacing 1440x1080-25i HDV with QTGMC 3.364. I am having problems deinterlacing one clip that includes a fairly rapid zoom. Here's a short sample (https://drive.google.com/file/d/1KZXwiJojKtzbTJKpjLRRaqqfhYRE8szf/view?usp=sharing). Below is the type of script I'm using (in reality I'm frameserving AVI and using AviSource but DirectShowSource works directly on the sample clip):
SetMemoryMax(16384)
DirectShowSource("e:\HDV-zoom-sample.m2t")
AssumeTFF()
ConvertToYV12(interlaced=true)
QTGMC(Preset="Medium", EdiThreads=4)
Spline36Resize(1920,1080)
AssumeFPS(50)
Prefetch(16)
When stepping through the deinterlaced file in 50p it zooms in and out with each frame.
Is there any way to deal with this?
As a workaround I threw half the frames away with fpsdivisor=2 and then doubled the framerate with MFlowFps but the result isn't great.
Groucho2004
15th March 2020, 12:00
When stepping through the deinterlaced file in 50p it zooms in and out with each frame.The clip you posted is BFF, change AssumeTFF to AssumeBFF. You can easily test the field order as described here (http://rationalqm.us/faq.html#order).
Also, Directshowsource would not be my first choice as a source filter (in fact, it should be a last resort). DGIndex/DGDecode work just fine with this source.
By the way, your underwater videos are amazing.
stax76
15th March 2020, 19:35
Does anybody know if i7-3770K supports AVX2 and if any of the following plugins might crash using this CPU?
AddGrainC.dll
Average.dll
Decomb.dll
dfttest.dll
dither.dll
EEDI2.dll
EEDI3.dll
ffms2.dll
fft3dfilter.dll
KNLMeansCL.dll
LSMASHSource.dll
masktools2.dll
modPlus.dll
MPEG2DecPlus.dll
mvtools2.dll
Plugins_JPSDR.dll
RgTools.dll
TDeint.dll
yadifmod2.dll
Problem is somebody with Core i7-3770K gets 1114/0x45a ERROR_DLL_INIT_FAILED trying to use QTGMC.
Timestamps and versions are listed here:
https://docs.google.com/spreadsheets/d/1D43U9_403jwOFhAQnZpJz95lM_mHKDsQXNm48cRb-lo/edit?usp=sharing
Github Issue is here:
https://github.com/staxrip/staxrip/issues/125
There have been minimum 5 bug reports with some terrible dfttest.dll error in recent months:
https://www.google.com/search?q=staxrip+dfttest.dll&oq=staxrip+dfttest.dll&aqs=chrome..69i57j69i60.4575j0j9&sourceid=chrome&ie=UTF-8
StaxRip isn't particular smart when it tries to figure out which plugins need to be loaded, it analyzes the script code for function names and loads all plugins a script supports and not only the ones the filter configuration will actually use.
pinterf
15th March 2020, 20:49
3770 is avx only
pinterf
15th March 2020, 20:57
Average, masktools2, mvtools, rgtools, fft3dfilter are automatic regarding cpu detection. Jpsdr plugins do have different builds for different processor architectures.
nhope
16th March 2020, 12:43
The clip you posted is BFF, change AssumeTFF to AssumeBFF. You can easily test the field order as described here (http://rationalqm.us/faq.html#order).
I suspected that and had tried AssumeBFF before posting, but with a similar "in-out" result. Just checked the field order using the method in your link and it looks "wrong" ("in-out") with either AssumeTFF or AssumeBFF.
The original HDV is TFF (I hope, as I've been using AssumeTFF with it for 10 years!), it was rendered in VEGAS as TFF, and MediaInfo reports TFF. I'm wondering whether the problem is simply related to the rate of zoom of the clip somehow making the fields seem reversed :confused:
Also, Directshowsource would not be my first choice as a source filter (in fact, it should be a last resort). DGIndex/DGDecode work just fine with this source.
This was just a one-off sample file for my forum post. Usually I am frameserving from VEGAS Pro and using AviSource.
By the way, your underwater videos are amazing.
:thanks:
Groucho2004
16th March 2020, 13:15
I suspected that and had tried AssumeBFF before posting, but with a similar "in-out" result. Just checked the field order using the method in your link and it looks "wrong" ("in-out") with either AssumeTFF or AssumeBFF.
The original HDV is TFF (I hope, as I've been using AssumeTFF with it for 10 years!), it was rendered in VEGAS as TFF, and MediaInfo reports TFF. I'm wondering whether the problem is simply related to the rate of zoom of the clip somehow making the fields seem reversed :confused:
This was just a one-off sample file for my forum post. Usually I am frameserving from VEGAS Pro and using AviSource.
Well, I can only use the clip you posted and my result is this:
Script:
Import("E:\Apps\VideoTools\AVSPlugins\QTGMC.avsi")
LoadPlugin("E:\Apps\VideoTools\DGDec\DGDecode.dll")
MPEG2Source("F:\HDV-zoom-sample.d2v")
AssumeBFF()
QTGMC(preset = "Slow")
Spline36Resize(1920,1080)
AssumeFPS(50000, 1000)
Encoded clip:
https://www.mediafire.com/file/swdxg6yvxhuecr5/HDV-zoom-sample.mkv/file
stax76
16th March 2020, 13:58
@pinterf
Thanks, one user could make it run by replacing Plugins_JPSDR as suggested by another user, I had the avx2 version included and replaced it now with the avx version. The other user did not reply yet. I don't have a particular interest in CPUs otherwise I would have avoided the issue or found the solution myself.
nhope
17th March 2020, 18:35
@Groucho2004
That file is indeed BFF and I have absolutely no idea why. I checked others in my archive, including clips in the same sequence, and they are TFF, as they should be for HDV. I fixed it with the following script:
#Change field order in Vegas project to BFF and the clip on the timeline to BFF then frameserve
AVISource("D:\fs.avi")
AssumeBFF()
SeparateFields()
weave()
The output of that then worked nicely with QTGMC.
Thanks very much for your help.
johnmeyer
17th March 2020, 21:07
Nick, it's always nice to hear from you again. I miss all of our discussions in the old Vegas forum.
FWIW, whenever I have any problem, either with my own video or something someone gives me, I always first open it with this script:
AssumeTFF()
Separatefields()
and walk through it one field at a time. If I see a problem, I change to BFF and try again.
The number of videos out there with unexpected field order is enormous. In this country I still see video, every single day, that has field reversal, which gives you that funny, "juddery" look on any sort of fast movement.
nhope
18th March 2020, 04:55
@johnmeyer Hi John, nice to see you. Your old posts came up frequently whilst I was troubleshooting this.
I did suspect a field order problem before posting here, and did try BFF. But unfortunately, being out of the habit of using DGIndex/DGDecode, I chose to use DirectShowSource just for the purpose of getting the .m2t file open in AviSynth for troubleshooting. But DirectShowSource gets it totally wrong; it gives a weird and incorrect result for both TFF and BFF when stepping through the file at 50p; for example on that zooming clip, instead of "IN > OUT > IN > OUT etc" it goes "IN > DIFFERENT BUT NEITHER IN NOR OUT > OUT A BIT > IN > etc.".
Sharc
18th March 2020, 08:32
FWIW, whenever I have any problem, either with my own video or something someone gives me, I always first open it with this script:
AssumeTFF()
Separatefields()
and walk through it one field at a time. If I see a problem, I change to BFF and try again.
And avoid DirectShowSource as a source filter, especially for interlaced video. It should be ditched for video analysis. Also we must not blindly trust MediaInfo. For nhope's clip MediaInfo reports the field order as TFF which is obviously wrong.
Edit:
ffprobe (ffmpeg) also reports the field order like 'field_order=tt'.
Apparently the mpeg2 TFF flag is set but in fact the field order has been reversed . Don't know how this can happen.
LigH
18th March 2020, 09:38
DirectShowSource can only be trusted as far as you actively control the selection of filters ... which many users may not be able to achieve. There might be a Telecine you are not aware of, or frame skips due to performance, whatever.
But even the material might be a mess. There are norm conversions of the worst kind, and the most pervert is content stuffing to achieve more time for ads (in case of TV broadcasts).
Try to use a source filter one can trust. DG*Decode are among these, as well as FFMS2 or L-SMASH Works (with exceptions in rare cases, depending on the release).
nhope
19th March 2020, 02:56
...
Edit:
ffprobe (ffmpeg) also reports the field order like 'field_order=tt'.
Apparently the mpeg2 TFF flag is set but in fact the field order has been reversed . Don't know how this can happen.
It's been through a lot.... The clip was originally shot with a Sony HVR-Z1P. It was then captured with HDVSplit. It was then probably trimmed Womble MPEG Video Wizard DVD, which was the only way of losslessly trimming HDV that I knew of in 2007. That would have converted it to an elementary or program stream. Then it was probably converted back to a transport stream with TMPGEnc XPress (to make it "match" my non-trimmed HDV footage rather than for any other logical reason).
The Sony camera would have got the field order right. One of the subsequent operations may have messed it up. User error also highly possible!
(And finally the short excerpt for this forum was rendered in VEGAS Pro 17, which didn't change the field order; damage already done previously.)
Sharc
19th March 2020, 08:56
It's been through a lot....
Oh I see. This explains it. Thanks.
johnmeyer
19th March 2020, 20:09
My bet is that TMPGEnc messed it up. Also, in the era when you did that work, we were still making the transition from SD (predominantly BFF) to HD (all TFF), and a lot of tools were not adapting correctly.
As one example of not adapting, Nick will remember some very long posts in the Vegas forum back around that time (2007) where those of us shooting in HD were still delivering on DVDs (SD, obviously). What we were all finding is that Vegas did a lousy job creating sharp MPEG-2 SD video from HD and HDV. The short version of several horrendously long threads is that we discovered that Vegas did not handle switching the field order correctly. It didn't actually cause field reversal, like Nick's current clip, but instead did some sort of weird blending, resulting in softness.
After a huge number of workarounds were posted, I stumbled into the best solution which was to simply render to MPEG-2 using TFF rather than the Vegas MPEG-2 codec default which was BFF. DVD players are indifferent to BFF or TFF.
I don't think Sony or Magix ever actually fixed the problem but, after I contacted the engineers with what I found, all Vegas versions after than point (around version 10 or 11, I think) had the MPEG-2 DVD Architect rendering default changed to TFF, with the obvious assumption that most people were now rendering from HD source material.
StainlessS
19th March 2020, 20:46
the transition from SD (predominantly BFF) to HD (all TFF),
JFYI.
I've only ever come across a couple of PAL's that were BFF (DVD), [EDIT: each of which may (or may not have been) Perverse Telecine]
All my scripts start with (or at some point have) "AssumeTFF", especially as default is BFF.
johnmeyer
19th March 2020, 22:22
JFYI.
I've only ever come across a couple of PAL's that were BFF (DVD), [EDIT: each of which may (or may not have been) Perverse Telecine]
All my scripts start with (or at some point have) "AssumeTFF", especially as default is BFF.Yes, you are undoubtedly correct, especially since I deal with PAL only occasionally.
PAL SD tended to be TFF, whereas NTSC SD was always BFF.
LigH
20th March 2020, 09:02
DV ("Digital Video" camera footage) is quite certainly BFF.
Selur
25th March 2020, 09:27
Trying to get QTGMC running in Avisynth+ 64bit, but I'm lacking 64bit builds of nnedi and nnedi2 anyone got a link to 64bit builds of those?
LigH
25th March 2020, 12:55
Are you sure you seriously need those? NNEDI3 is the only EDI filter selected via a preset. All the others are only used when explicitly requested.
Selur
25th March 2020, 13:20
@LigH: Yes, I can survive without it. I just hoped/assumed that QTGMC is a wide spread script that all it's dependencies are available for 64bit nowadays.
LigH
25th March 2020, 13:22
Well possible that some of the plugins it supports are either not available in sources, or are superseded by newer versions in features or performance, so no developer invested time in porting them.
gispos
25th March 2020, 20:45
I packed my QTGMC 64bit directory into an archive.
I load the required plugins directly into the script.
I think some functions are also loaded via other scripts.
That's how it works for me. Maybe it helps.
https://www.sendspace.com/file/x0nxrl
#LoadPlugin(ScriptDir() + "TDeinterlace.dll")
LoadPlugin(ScriptDir() + "dfttest.dll")
LoadPlugin(ScriptDir() + "EEDI2.dll")
LoadPlugin(ScriptDir() + "eedi3.dll")
#LoadPlugin(ScriptDir() + "FFT3DFilter.dll")
#LoadPlugin(ScriptDir() + "mvtools2.dll")
#LoadPlugin(ScriptDir() + "nnedi.dll")
#LoadPlugin(ScriptDir() + "nnedi2.dll")
LoadPlugin(ScriptDir() + "nnedi3.dll")
#load_stdcall_plugin(ScriptDir() + "yadifmod2_avx2.dll")
import(ScriptDir() + "SMDegrain.avs")
#for yuv2 support
#LoadPlugin(ScriptDir() + "PlanarTools.dll")
#import(ScriptDir() + "AnimeIVTC.avs")
#-------------------------------------------------------------------#
# #
# QTGMC 3.362, by Vit, 2012, 2018 mod by A.SONY #
Music Fan
6th April 2020, 19:39
Strange error message with v3.364 on Windows 7 64 with AVS+ 3.5.1 (x86 version) ;
https://nsa40.casimages.com/img/2020/04/06/mini_200406084717603717.jpg (https://www.casimages.com/i/200406084717603717.jpg.html)
:confused:
StainlessS
6th April 2020, 19:59
MF,
Script utility functions pointed to in real.finder stuff thread as:- note:- Zs_RF_Shared.avsi (Shared Functions and utility V1.05 or up) is needed
https://raw.githubusercontent.com/realfinder/AVS-Stuff/master/avs%202.5%20and%20up/Zs_RF_Shared.avsi
Music Fan
6th April 2020, 20:08
You rule, that works ;)
Micheal813
13th April 2020, 00:34
I'm using Avisynth Plus and VirtualDub 2. What is the proper MT Mode? Do I need to use Prefetch and edithreads?
real.finder
13th April 2020, 10:14
I'm using Avisynth Plus and VirtualDub 2. What is the proper MT Mode? Do I need to use Prefetch and edithreads?
I think Prefetch is Enough, with set edithreads=1
StainlessS
28th April 2020, 02:23
@RF, Perhaps take peek here:- https://forum.doom9.org/showthread.php?t=181337
Music Fan
29th April 2020, 09:43
Hi,
I noticed that the luma level was modified by Qtgmc (especially the minimum ; from 16 to 0) ; does it mean it uses a sort of levels function or does it convert to matrix PC.601 ?
Here is a comparative with ColorYUV(analyze=true), original on the left, with Qtgmc on the right ;
https://nsa40.casimages.com/img/2020/04/29/mini_200429104913248402.jpg (https://www.casimages.com/i/200429104913248402.jpg.html)
Here are my scripts ;
avisource("K:\avi\capture ext LAGA 25 YV12.avi", pixel_type="YV12")#720.576
assumeTFF()
crop(24,0,-20,-16)#676.560
ColorYUV(analyze=true)
SetMemoryMax(1024)
SetFilterMTMode("DEFAULT_MT_MODE", 2)
avisource("K:\avi\capture ext LAGA 25 YV12.avi", pixel_type="YV12")#720.576
assumeTFF()
crop(24,0,-20,-16)#676.560
QTGMC(Preset="slow", EdiThreads=4, SourceMatch=3, Sharpness=0.5, TR2=2, Lossless=2)
ColorYUV(analyze=true)
Prefetch(4)
If I need 16-235 color space (for a dvd), should I simply add limiter() after Qtgmc or is there better ?
StainlessS
29th April 2020, 11:14
MF, Take a look at Histogram(Mode="Levels")
maybe just a few extreme pixels
Music Fan
29th April 2020, 11:32
Ok, I tried but I don't know how to interpret the result and what to do ;
https://nsa40.casimages.com/img/2020/04/29/mini_200429124240319589.jpg (https://www.casimages.com/i/200429124240319589.jpg.html)
StainlessS
29th April 2020, 11:47
Also take look at "Before" histogram
Maybe look at frame that does not have that bright screen in it.
Music Fan
29th April 2020, 12:13
The maximum level changes depending on the presence or not of the bright screen.
If I add limiter(), everything stays between 16 and 235.
But if I put limiter() before Qtgmc which thus gets 16-235, the levels are between 0 and 255 after Qtgmc.:confused:
That's what I'd like to understand, especially for the low levels which are never below 16 on the original video.
StainlessS
29th April 2020, 12:45
Well any kind of serious filtering can produce significant min/max changes,
take a look at stacked limiter and no limiter, choose which makes you happiest.
EDIT: There is almost no difference in your Loose Minimum and Loose Maximim levels,
your minimum/maximum's differences shown via ColorYUV are probably just down to them being very close to the
loose min/max thresholds.
Stereodude
29th April 2020, 13:19
If I need 16-235 color space (for a dvd), should I simply add limiter() after Qtgmc or is there better ?
Unless it's really bothering you, just leave it.
real.finder
29th April 2020, 17:56
maybe I will did some update about KNLMeansCL and "device_type=GPU"
and add tvrange_out to clamp output like what f3kdb did
Music Fan
30th April 2020, 14:56
Well any kind of serious filtering can produce significant min/max changes,
take a look at stacked limiter and no limiter, choose which makes you happiest.
EDIT: There is almost no difference in your Loose Minimum and Loose Maximim levels,
your minimum/maximum's differences shown via ColorYUV are probably just down to them being very close to the
loose min/max thresholds.
Ok, but I still wonder why the minimum level became 0 on most of images after Qtgmc.
I'd like to be sure to have the good settings before encoding.
Unless it's really bothering you, just leave it.
Do you mean it doesn't matter for a dvd ? I'm afraid to let it out of range.
DiKey
13th May 2020, 09:22
-
Deleted.
It's very strange, that new "QTGMC" script need function "AvsPlusVersionNumber", but it preset only in the last version of "SMDegrain" script, which wasn't published on AviSynth Wiki. Also, "SMDegrain" is not necessary script for "QTGMC". Please, update info on the Wiki.
StainlessS
13th May 2020, 12:45
Lirk,
Real.Finder Zs_RF_Shared.avsi utility functions here:- https://github.com/realfinder/AVS-Stuff/blob/master/avs%202.5%20and%20up/Zs_RF_Shared.avsi
AvsPlusVersionNumber() at very end of script.
Real.Finder avs-Stuff on Github:- https://github.com/realfinder/AVS-Stuff/tree/master/avs%202.5%20and%20up
EDIT: Put it in your Plugins folder.
Lirk,
Real.Finder Zs_RF_Shared.avsi utility functions here:- https://github.com/realfinder/AVS-Stuff/blob/master/avs%202.5%20and%20up/Zs_RF_Shared.avsi
AvsPlusVersionNumber() at very end of script.
Real.Finder avs-Stuff on Github:- https://github.com/realfinder/AVS-Stuff/tree/master/avs%202.5%20and%20up
EDIT: Put it in your Plugins folder.
I mean, that after updating or new installation of "QTGMC" by Wiki info, it won't work. In my case script work after updating "SMDegrain".
StainlessS
13th May 2020, 13:07
Zs_RF_Shared.avsi has utility functions used by many real.finder scripts.
SMDegrain probably also has that utility function in it.
[EDIT: It may be that future version of SMdegrain will have that function removed.]
kedautinh12
13th May 2020, 13:16
https://github.com/realfinder/AVS-Stuff?files=1
For avs2.5 and 2.6
hello_hello
13th May 2020, 14:23
SMDegrain is still listed as a requirement in the QTGMC script itself.
https://github.com/realfinder/AVS-Stuff/blob/master/avs%202.6%20and%20up/QTGMC.avsi
Line 119
# SMDegrain (3.1.2.100s or above) unless you set tv_range=false
I'm not sure if the required function has also been moved to the "shared" script, but I'm in the middle of an encode so I didn't want to risk causing a problem by checking.
AvsPlusVersionNumber() appears to have been moved to the shared script already and SMDegrain no longer includes it.
It probably wouldn't hurt to update the changelog in the script too, as the following line is no longer correct.
# v3.362s
# - some changes for avs+ and avs neo, need IsAvsNeo(), IsAvsPlus() and AvsPlusVersionNumber(), they are in SMDegrain v3.1.2.101s or up
real.finder,
if you care, you haven't updated the SMDegrain version number in line 507 of the SMDegrain script. For v3.1.2.107s it still says:
SMDegrain Mod v3.1.2.105s
https://github.com/realfinder/AVS-Stuff/blob/master/avs%202.5%20and%20up/SMDegrain.avsi
real.finder
13th May 2020, 22:38
SMDegrain is not needed now, the wiki is up to date and there are Zs_RF_Shared.avsi link in it
the info in QTGMC is not updated yet, even SMDegrain need Zs_RF_Shared.avsi now
Katie Boundary
18th May 2020, 04:29
The DS9 upscale project has gotten me curious about experimenting with QTGMC again, but the last time I played with QTGMC was several hard drive formats and OS reinstallations ago. I've therefore lost whatever files originally got it working. I think I've taken care of all the dependencies but I'm getting this error:
https://i.imgur.com/rNhuNx5.png
What's wrong and how do I fix it?
FranceBB
18th May 2020, 04:36
I think I've taken care of all the dependencies but I'm getting this error:
https://i.imgur.com/rNhuNx5.png
What's wrong and how do I fix it?
Not all of them, you still need this: https://raw.githubusercontent.com/realfinder/AVS-Stuff/master/avs%202.5%20and%20up/Zs_RF_Shared.avsi
This contains the AvsPlusVersionNumber() function you are looking for. :)
Hopefully there are no more dependencies left after this. :)
P.s what am I doing at 5am on Doom9 it's still a mistery. Time to go back to sleep a few more hours. Damn insomnia...
Katie Boundary
18th May 2020, 06:00
That did it, thanks!
bananenmann
21st May 2020, 17:05
Hello,
I'm trying to deinterlace PAL- and NTSC-Music-Videoclips with QTGMC, because it seems to be the best Deinterlacer available at the moment. Afterwards I want to Upscale and encode them with x264 codec (with adding Borders) to achieve Bluray-Compatible Outputs with Resolutions of 1440x1080p (4:3) or 1920x1080p (16:9). I've got a strong machine (Ryzen 3900x and can use Cuda from my GTX 1080p with DGIndexNV) - so time doesn't play a role. I just want to get the best results possible. I've read the Wiki (but English is for me a foreign language, so I'm not shure I do understand everthing by 100%). I tried out a lot of parameters and the result is really great, but maybe I can achieve better results with your help. My aim is to get the best possible quality while keeping the original framerate (no bobbing). Although doubling the Framerate seems to produce the best Quality, the resulting 59,4 FPS (from NTSC) or 50 FPS (Pal) @ 1080p would't be Bluray-Compatible. I also want to get the clearest, sharpest Video possible (not too much smoothing) and without Combing and Artifacts.
These are the Parameters I tried out since now:
1. QTGMC(preset="Very Slow", InputType=0, FPSDivisor=2)
2. GTGMC(preset="Very Slow", InputType=0, sourceMatch=3, sharpness=0.2, tr2=2, Lossless=2, FPSDivisor=2, ShutterBlur=2, ShutterAngleSrc=180, ShutterAngleOut=180, SBlurLimit=8)
3. QTGMC(preset="Very Slow", matchpreset="very slow", InputType=0, FPSDivisor=2, SourceMatch=3, Sharpness=0.1, TR2=0, Lossless=2, EZKeepGrain=0.4)
4. QTGMC(preset="Very Slow", InputType=0, SourceMatch=3, Lossless=2, MatchEnhance=0.75, FPSDivisor=2, ShutterBlur=1, ShutterAngleSrc=30, ShutterAngleOut=180)
As I said, I don't really understand by 100%, what each Parameter stands for, despite having read the wiki. All of this is new for me. E.g. when using Sourcematch, the standard-sharpen Parameter is reduced to 0.2. When I want to get it more sharpen, do I have to reduce this number (e.g. 0.1) or raise it? It tried both variants (0.1, 0.2, 0.4, 0.7), but I'm honest - I can't see any difference :)
By now the results are quite good, but for me the videos seem to be a little much too smooth/blurred. I tried Parameter-Settings like TR2=0, EZKeepGrain=0.4, MatchPreset=3, MatchEnhance=0.75, Lossless=2 or Lossless=1 - but I can't see any difference in the Result?!
Maybe I'm making another Mistake? For my Work I use Staxrip. The Order I'm processing the video is:
1. Index with: Source: DGindexNV
2. Deinterlace with: Field: QTGMC (Parameters)
3. Crop with: Crop (manual in Preview-window)
4. Resize with: Spline64Resize
5. AddBorders: AddBorders
Is this order correct? I thought it would be necesserary to deinterlace first, then crop and finaly resize, because, when cropping or resizing first, it would produce faulty results trying to deinterlace it. Is this right, or am I wrong? Either way I would appreciate a lot if someone can help me finding my perfect Parameters or - at least - giving hints to get better results.
With best regards,
Bananenmann
real.finder
14th June 2020, 15:55
update that has bug fix and to make manolito happy again
StainlessS
14th June 2020, 16:06
Cheers RF, its so difficult keeping mani happy, he's such a stern task master :)
real.finder
14th June 2020, 17:51
Hi,
I noticed that the luma level was modified by Qtgmc (especially the minimum ; from 16 to 0) ; does it mean it uses a sort of levels function or does it convert to matrix PC.601 ?
Here is a comparative with ColorYUV(analyze=true), original on the left, with Qtgmc on the right ;
https://nsa40.casimages.com/img/2020/04/29/mini_200429104913248402.jpg (https://www.casimages.com/i/200429104913248402.jpg.html)
Here are my scripts ;
avisource("K:\avi\capture ext LAGA 25 YV12.avi", pixel_type="YV12")#720.576
assumeTFF()
crop(24,0,-20,-16)#676.560
ColorYUV(analyze=true)
SetMemoryMax(1024)
SetFilterMTMode("DEFAULT_MT_MODE", 2)
avisource("K:\avi\capture ext LAGA 25 YV12.avi", pixel_type="YV12")#720.576
assumeTFF()
crop(24,0,-20,-16)#676.560
QTGMC(Preset="slow", EdiThreads=4, SourceMatch=3, Sharpness=0.5, TR2=2, Lossless=2)
ColorYUV(analyze=true)
Prefetch(4)
If I need 16-235 color space (for a dvd), should I simply add limiter() after Qtgmc or is there better ?
can you try with keep_tv_range=true in 3.367 ?
ENunn
23rd June 2020, 00:04
I just updated my Avisynth+ to the latest version, now I'm getting this:
https://i.imgur.com/mJGaRls.png
Does anyone know how to fix this? It worked fine before I updated.
StainlessS
23rd June 2020, 00:39
Probably need this,
Real.Finder Zs_RF_Shared.avsi:- https://github.com/realfinder/AVS-Stuff/blob/master/avs%202.5%20and%20up/ZS%20AVS%20Shared%20Functions.avsi
and probably also smdegrain.avsi if not already updated. [also any other Real.finder script that are required for current QTGMC, they were pretty much all updated]
Emulgator
23rd June 2020, 09:55
bananenmann:
Although doubling the Framerate seems to produce the best Quality, the resulting 59,4 FPS (from NTSC) or 50 FPS (Pal) @ 1080p would't be Bluray-Compatible. I also want to get the clearest, sharpest Video possible (not too much smoothing) and without Combing and Artifacts.
This is what I do every other day with interlaced SD sources:
PAL to 1280x720x50p on Blu-ray
NTSC to 1280x720x59,94p on Blu-ray.
As these formats came out I was wondering why, but a few years later I became very thankful
that these (JVC-suggested ?) double-framerate formats had been standardised for Blu-ray.
Your path is correct. Something along the lines of
LWLibavSource (DGSource)->(Q)TGMC->ChromaShiftSP (for VHS sources) ->Stab->SmoothAdjust->MedSharp2->Crop&Resize->GrainFactory3->AddBorders
will do what I need, maybe you want to try that too.
Depending on parameters QTGMC will introduce smoothing, you can turn that off.
The QTGMC script tells a lot how to. The wiki tells more.
Maybe you want to use SourceMatch=3.
You can even have a OSD for QTGMC.
x264 -> tsMuxeR -> BD-folder -> testwatch MPC-HC -> ImgBurn to Blu-ray.
ENunn
24th June 2020, 21:12
Probably need this,
Real.Finder Zs_RF_Shared.avsi:- https://github.com/realfinder/AVS-Stuff/blob/master/avs%202.5%20and%20up/ZS%20AVS%20Shared%20Functions.avsi
and probably also smdegrain.avsi if not already updated. [also any other Real.finder script that are required for current QTGMC, they were pretty much all updated]
that seems to fix it, however, the sourcematch option gives me an access violation error. any help?
https://i.imgur.com/SmoaOnJ.png
It works perfectly fine with AVS+ 3.5, guess I'll be using that until there's a solution.
real.finder
24th June 2020, 21:34
that seems to fix it, however, the sourcematch option gives me an access violation error. any help?
https://i.imgur.com/SmoaOnJ.png
It works perfectly fine with AVS+ 3.5, guess I'll be using that until there's a solution.
line 899
(EdiMode == "RepcYadif") ? isyuy2(Input) ? Repair( Input.Yadif( mode=3 ).nonyuy2clipin(true), default( Fallback, Input.QTGMC_Bob( 0,0.5 ) ).nonyuy2clipin(true), 2, 0 ).nonyuy2clipout(true) : \
Repair( Input.Yadif( mode=3 ), default( Fallback, Input.QTGMC_Bob( 0,0.5 ) ), 2, 0 ) : \
default( Fallback, Input.QTGMC_Bob( 0,0.5 ) )
do you have PlanarTools and your video is YUY2? then remove PlanarTools.dll from your plugins folder
also make sure that all plugins are updated, if they are then can you post script with ColorBars that show the problem?
ENunn
25th June 2020, 03:44
do you have PlanarTools and your video is YUY2? then remove PlanarTools.dll from your plugins folder
I do not have planartools and my video is YUY2.
also make sure that all plugins are updated, if they are then can you post script with ColorBars that show the problem?
i̶s̶ ̶t̶h̶e̶r̶e̶ ̶a̶n̶ ̶e̶a̶s̶y̶ ̶w̶a̶y̶ ̶t̶o̶ ̶u̶p̶d̶a̶t̶e̶ ̶a̶l̶l̶ ̶m̶y̶ ̶p̶l̶u̶g̶i̶n̶s̶ ̶i̶n̶s̶t̶e̶a̶d̶ ̶o̶f̶ ̶s̶e̶a̶r̶c̶h̶i̶n̶g̶ ̶e̶a̶c̶h̶ ̶p̶l̶u̶g̶i̶n̶?̶ all required plugins are up to date and i'm still having problems. and i don't think can show the issue with color bars if qtgmc has an access violation.
script:
Import("D:\avisynth+ deinterlace\scripts\vhs mt.avs")
v = AVISource("FILE.avi", pixel_type="YUY2")
a = FFAudioSource("FILE.wav")
AudioDub(v,a)
AssumeTFF()
Trim(X, Y)
ConvertToYV12(interlaced=true, matrix="Rec601")
CNR2_x64_Cnr2(mode="oxx", scdthr=10, ln=16, lm=192, un=100, um=255, vn=100, vm=255, log=false, sceneChroma=false)
QTGMC(Preset="faster", ChromaMotion=true,ChromaNoise=true, DenoiseMC=true, Lossless=2, SourceMatch=3, MatchEnhance=1, TR2=1, Rep2=2, SLMode=2, edithreads=4)
hqdn3d()
MergeChroma(aWarpSharp2(depth=20))MergeChroma(aWarpSharp2(depth=10))
Santiag(strh=3,strv=3)
Spline64Resize(640,480)
#Crop(L,U,-D,-R)
#x = float(width) / float(height)
#spline64resize(round(x * 720.0),720)
Prefetch(10)
real.finder
25th June 2020, 05:10
can you test if this work for you?
ColorBars(pixel_type="YUY2")
QTGMC(Preset="faster", ChromaMotion=true,ChromaNoise=true, DenoiseMC=true, Lossless=2, SourceMatch=3, MatchEnhance=1, TR2=1, Rep2=2, SLMode=2, edithreads=4)
it work fine with me
ENunn
25th June 2020, 07:32
can you test if this work for you?
ColorBars(pixel_type="YUY2")
QTGMC(Preset="faster", ChromaMotion=true,ChromaNoise=true, DenoiseMC=true, Lossless=2, SourceMatch=3, MatchEnhance=1, TR2=1, Rep2=2, SLMode=2, edithreads=4)
it work fine with me
nope, didn't work
Groucho2004
25th June 2020, 08:48
nope, didn't workRun AVSMeter with this command line:
"AVSMeter avsinfo". Check if it reports any errors.
If it doesn't report any errors, run your script with AVSMeter:
"AVSMeter yourscript.avs". Again, check for errors.
ENunn
25th June 2020, 18:01
Run AVSMeter with this command line:
"AVSMeter avsinfo". Check if it reports any errors.
If it doesn't report any errors, run your script with AVSMeter:
"AVSMeter yourscript.avs". Again, check for errors.
it just says there's a required library that i already have installed, other than that nothing too serious
AVSMeter 3.0.2.0 (x86), (c) Groucho2004, 2012-2020
VersionString: AviSynth+ 3.6.1 (r3300, 3.6, i386)
VersionNumber: 2.60
File / Product version: 3.6.1.0 / 3.6.1.0
Interface Version: 8
Multi-threading support: Yes
Avisynth.dll location: C:\WINDOWS\SysWOW64\avisynth.dll
Avisynth.dll time stamp: 2020-06-20, 02:48:04 (UTC)
PluginDir2_5 (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins
PluginDir+ (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins+
[C 2.5 Plugins (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins\ffavisynth.dll [1.3.4532.0, 2014-07-18]
[C++ 2.5 Plugins (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\autolevels_0.6_20110109.dll [0.6.0.0, 2019-08-15]
C:\Program Files (x86)\AviSynth+\plugins+\Decomb.dll [n/a, 2019-12-01]
C:\Program Files (x86)\AviSynth+\plugins+\DGAVCDecode.dll [1.0.9.0, 2009-03-11]
C:\Program Files (x86)\AviSynth+\plugins+\DGDecode.dll [1.5.8.0, 2010-03-06]
C:\Program Files (x86)\AviSynth+\plugins+\svpflow1.dll [4.0.0.128, 2016-02-22]
C:\Program Files (x86)\AviSynth+\plugins+\svpflow2.dll [4.0.0.128, 2016-02-22]
C:\Program Files (x86)\AviSynth+\plugins+\TDeint.dll [1.1.0.0, 2019-11-17]
C:\Program Files (x86)\AviSynth+\plugins\Decomb521.dll [n/a, 2004-05-19]
C:\Program Files (x86)\AviSynth+\plugins\Deen.dll [n/a, 2004-06-07]
C:\Program Files (x86)\AviSynth+\plugins\UnDot.dll [0.0.1.1, 2004-06-07]
[C++ 2.6 Plugins (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\ConvertStacked.dll [n/a, 2020-06-20]
C:\Program Files (x86)\AviSynth+\plugins+\DePan.dll [2.13.1.4, 2019-05-02]
C:\Program Files (x86)\AviSynth+\plugins+\DePanEstimate.dll [2.10.0.3, 2019-05-02]
C:\Program Files (x86)\AviSynth+\plugins+\DirectShowSource.dll [n/a, 2020-06-20]
C:\Program Files (x86)\AviSynth+\plugins+\ffms2.dll [n/a, 2016-12-29]
C:\Program Files (x86)\AviSynth+\plugins+\ImageSeq.dll [n/a, 2020-06-20]
C:\Program Files (x86)\AviSynth+\plugins+\masktools2.dll [2.2.18.0, 2018-09-05]
C:\Program Files (x86)\AviSynth+\plugins+\mvtools2.dll [2.7.41.0, 2019-05-02]
C:\Program Files (x86)\AviSynth+\plugins+\nnedi3.dll [0.9.4.52, 2019-05-31]
C:\Program Files (x86)\AviSynth+\plugins+\RgTools.dll [0.97.0.0, 2018-07-02]
C:\Program Files (x86)\AviSynth+\plugins+\Shibatch.dll [n/a, 2020-06-20]
C:\Program Files (x86)\AviSynth+\plugins+\TimeStretch.dll [n/a, 2020-06-20]
C:\Program Files (x86)\AviSynth+\plugins+\TIVTC.dll [1.0.14.0, 2019-02-07]
C:\Program Files (x86)\AviSynth+\plugins+\VDubFilter.dll [n/a, 2020-06-20]
[Scripts (AVSI)] [Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\colors_rgb.avsi [2020-05-20]
C:\Program Files (x86)\AviSynth+\plugins+\ffms2.avsi [2019-06-06]
C:\Program Files (x86)\AviSynth+\plugins+\InterFrame2.avsi [2015-05-21]
C:\Program Files (x86)\AviSynth+\plugins+\QTGMC.avsi [2018-03-16]
C:\Program Files (x86)\AviSynth+\plugins+\smdegrain.avsi [2019-06-06]
C:\Program Files (x86)\AviSynth+\plugins\ffavisynth.avsi [2013-04-16]
[Uncategorized DLLs (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\libavcodec.dll [n/a, 2008-08-07]
[Uncategorized files] [Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\colors_rgb.txt [2020-05-20]
C:\Program Files (x86)\AviSynth+\plugins+\ffms2.lib [2016-12-29]
C:\Program Files (x86)\AviSynth+\plugins+\ffmsindex.exe [2016-12-29]
[Plugin errors/warnings]
___________________________________________________________________________________________________________
"C:\Program Files (x86)\AviSynth+\plugins+\DePanEstimate.dll" requires the FFTW library for some functions.
Note: 'libfftw3f-3.dll' can be downloaded here:
http://www.fftw.org/install/windows.html
'libfftw3f-3.dll' should be placed in "System32" and/or "SysWoW64"
___________________________________________________________________________________________________________
"C:\Program Files (x86)\AviSynth+\plugins+\mvtools2.dll" requires the FFTW library for some functions.
Note: 'libfftw3f-3.dll' can be downloaded here:
http://www.fftw.org/install/windows.html
'libfftw3f-3.dll' should be placed in "System32" and/or "SysWoW64"
___________________________________________________________________________________________________________
this is what it says when i run avsmeter through the script:
LoadVirtualdubPlugin: Error opening "C:\Program Files (x86)\AviSynth+\plugins64+\ccd_64bit.vdf", error=0xc1
(D:\avisynth+ deinterlace\scripts\avisource\messing around.avs, line 2)
removing the line doesn't fix the issue
real.finder
25th June 2020, 18:34
it just says there's a required library that i already have installed, other than that nothing too serious
AVSMeter 3.0.2.0 (x86), (c) Groucho2004, 2012-2020
VersionString: AviSynth+ 3.6.1 (r3300, 3.6, i386)
VersionNumber: 2.60
File / Product version: 3.6.1.0 / 3.6.1.0
Interface Version: 8
Multi-threading support: Yes
Avisynth.dll location: C:\WINDOWS\SysWOW64\avisynth.dll
Avisynth.dll time stamp: 2020-06-20, 02:48:04 (UTC)
PluginDir2_5 (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins
PluginDir+ (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins+
[C 2.5 Plugins (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins\ffavisynth.dll [1.3.4532.0, 2014-07-18]
[C++ 2.5 Plugins (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\autolevels_0.6_20110109.dll [0.6.0.0, 2019-08-15]
C:\Program Files (x86)\AviSynth+\plugins+\Decomb.dll [n/a, 2019-12-01]
C:\Program Files (x86)\AviSynth+\plugins+\DGAVCDecode.dll [1.0.9.0, 2009-03-11]
C:\Program Files (x86)\AviSynth+\plugins+\DGDecode.dll [1.5.8.0, 2010-03-06]
C:\Program Files (x86)\AviSynth+\plugins+\svpflow1.dll [4.0.0.128, 2016-02-22]
C:\Program Files (x86)\AviSynth+\plugins+\svpflow2.dll [4.0.0.128, 2016-02-22]
C:\Program Files (x86)\AviSynth+\plugins+\TDeint.dll [1.1.0.0, 2019-11-17]
C:\Program Files (x86)\AviSynth+\plugins\Decomb521.dll [n/a, 2004-05-19]
C:\Program Files (x86)\AviSynth+\plugins\Deen.dll [n/a, 2004-06-07]
C:\Program Files (x86)\AviSynth+\plugins\UnDot.dll [0.0.1.1, 2004-06-07]
[C++ 2.6 Plugins (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\ConvertStacked.dll [n/a, 2020-06-20]
C:\Program Files (x86)\AviSynth+\plugins+\DePan.dll [2.13.1.4, 2019-05-02]
C:\Program Files (x86)\AviSynth+\plugins+\DePanEstimate.dll [2.10.0.3, 2019-05-02]
C:\Program Files (x86)\AviSynth+\plugins+\DirectShowSource.dll [n/a, 2020-06-20]
C:\Program Files (x86)\AviSynth+\plugins+\ffms2.dll [n/a, 2016-12-29]
C:\Program Files (x86)\AviSynth+\plugins+\ImageSeq.dll [n/a, 2020-06-20]
C:\Program Files (x86)\AviSynth+\plugins+\masktools2.dll [2.2.18.0, 2018-09-05]
C:\Program Files (x86)\AviSynth+\plugins+\mvtools2.dll [2.7.41.0, 2019-05-02]
C:\Program Files (x86)\AviSynth+\plugins+\nnedi3.dll [0.9.4.52, 2019-05-31]
C:\Program Files (x86)\AviSynth+\plugins+\RgTools.dll [0.97.0.0, 2018-07-02]
C:\Program Files (x86)\AviSynth+\plugins+\Shibatch.dll [n/a, 2020-06-20]
C:\Program Files (x86)\AviSynth+\plugins+\TimeStretch.dll [n/a, 2020-06-20]
C:\Program Files (x86)\AviSynth+\plugins+\TIVTC.dll [1.0.14.0, 2019-02-07]
C:\Program Files (x86)\AviSynth+\plugins+\VDubFilter.dll [n/a, 2020-06-20]
[Scripts (AVSI)] [Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\colors_rgb.avsi [2020-05-20]
C:\Program Files (x86)\AviSynth+\plugins+\ffms2.avsi [2019-06-06]
C:\Program Files (x86)\AviSynth+\plugins+\InterFrame2.avsi [2015-05-21]
C:\Program Files (x86)\AviSynth+\plugins+\QTGMC.avsi [2018-03-16]
C:\Program Files (x86)\AviSynth+\plugins+\smdegrain.avsi [2019-06-06]
C:\Program Files (x86)\AviSynth+\plugins\ffavisynth.avsi [2013-04-16]
[Uncategorized DLLs (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\libavcodec.dll [n/a, 2008-08-07]
[Uncategorized files] [Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\colors_rgb.txt [2020-05-20]
C:\Program Files (x86)\AviSynth+\plugins+\ffms2.lib [2016-12-29]
C:\Program Files (x86)\AviSynth+\plugins+\ffmsindex.exe [2016-12-29]
[Plugin errors/warnings]
___________________________________________________________________________________________________________
"C:\Program Files (x86)\AviSynth+\plugins+\DePanEstimate.dll" requires the FFTW library for some functions.
Note: 'libfftw3f-3.dll' can be downloaded here:
http://www.fftw.org/install/windows.html
'libfftw3f-3.dll' should be placed in "System32" and/or "SysWoW64"
___________________________________________________________________________________________________________
"C:\Program Files (x86)\AviSynth+\plugins+\mvtools2.dll" requires the FFTW library for some functions.
Note: 'libfftw3f-3.dll' can be downloaded here:
http://www.fftw.org/install/windows.html
'libfftw3f-3.dll' should be placed in "System32" and/or "SysWoW64"
___________________________________________________________________________________________________________
this is what it says when i run avsmeter through the script:
LoadVirtualdubPlugin: Error opening "C:\Program Files (x86)\AviSynth+\plugins64+\ccd_64bit.vdf", error=0xc1
(D:\avisynth+ deinterlace\scripts\avisource\messing around.avs, line 2)
removing the line doesn't fix the issue
the log is for avs+ 32 and you use avs+ 64
ENunn
25th June 2020, 19:31
the log is for avs+ 32 and you use avs+ 64
Good catch, I didn't run AVSMeter64.
I can't show the whole code because of character limits but I have this here:
_________________________________________________________________________________________________________
'C:/Program Files (x86)/AviSynth+/plugins64+/KNLMeansCL.dll' cannot be used as a plugin for AviSynth.
_________________________________________________________________________________________________________
'C:/Program Files (x86)/AviSynth+/plugins64+/yadifmod2.dll' cannot be used as a plugin for AviSynth.
_________________________________________________________________________________________________________
'C:/Program Files (x86)/AviSynth+/plugins64+/yadifmod2_avx2.dll' cannot be used as a plugin for AviSynth.
_________________________________________________________________________________________________________
Don't know why its saying "x cannot be used as a plugin for AviSynth." when they're avisynth plugins
n̶e̶v̶e̶r̶t̶h̶e̶l̶e̶s̶s̶ ̶I̶ ̶r̶e̶m̶o̶v̶e̶d̶ ̶t̶h̶o̶s̶e̶ ̶p̶l̶u̶g̶i̶n̶s̶ ̶a̶n̶d̶ ̶n̶o̶w̶ ̶i̶'̶m̶ ̶g̶e̶t̶t̶i̶n̶g̶ ̶"̶t̶h̶e̶r̶e̶'̶s̶ ̶n̶o̶ ̶s̶u̶c̶h̶ ̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶n̶a̶m̶e̶d̶ ̶'̶y̶a̶d̶i̶f̶m̶o̶d̶2̶'̶"̶ aha, i updated yadifmod2. i checked the required plugins on the wiki and it didn't even bring yadifmod2 up. odd. i wonder why it depends on yadifmod2? oh well, looks like its working now. thanks for the help!
real.finder
25th June 2020, 22:30
Good catch, I didn't run AVSMeter64.
I can't show the whole code because of character limits but I have this here:
_________________________________________________________________________________________________________
'C:/Program Files (x86)/AviSynth+/plugins64+/KNLMeansCL.dll' cannot be used as a plugin for AviSynth.
_________________________________________________________________________________________________________
'C:/Program Files (x86)/AviSynth+/plugins64+/yadifmod2.dll' cannot be used as a plugin for AviSynth.
_________________________________________________________________________________________________________
'C:/Program Files (x86)/AviSynth+/plugins64+/yadifmod2_avx2.dll' cannot be used as a plugin for AviSynth.
_________________________________________________________________________________________________________
Don't know why its saying "x cannot be used as a plugin for AviSynth." when they're avisynth plugins
n̶e̶v̶e̶r̶t̶h̶e̶l̶e̶s̶s̶ ̶I̶ ̶r̶e̶m̶o̶v̶e̶d̶ ̶t̶h̶o̶s̶e̶ ̶p̶l̶u̶g̶i̶n̶s̶ ̶a̶n̶d̶ ̶n̶o̶w̶ ̶i̶'̶m̶ ̶g̶e̶t̶t̶i̶n̶g̶ ̶"̶t̶h̶e̶r̶e̶'̶s̶ ̶n̶o̶ ̶s̶u̶c̶h̶ ̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶n̶a̶m̶e̶d̶ ̶'̶y̶a̶d̶i̶f̶m̶o̶d̶2̶'̶"̶ aha, i updated yadifmod2. i checked the required plugins on the wiki and it didn't even bring yadifmod2 up. odd. i wonder why it depends on yadifmod2? oh well, looks like its working now. thanks for the help!
well, it should say "for AviSynth+" but you should told that to avs+ dev :)
anyway, you use some settings that need optional Plugins
https://i.postimg.cc/hG5frhQ4/Screenshot-2020-06-26-QTGMC-Avisynth-wiki.png (https://postimages.org/)
LigH
26th June 2020, 09:47
By the way: You have both yadifmod2.dll and yadifmod2_avx2.dll in your plugins directory. One of both is sufficient, the other may cause duplicate functions warnings. And if your CPU does not support AVX2, trying to use the AVX2 DLL may cause a crash.
The reason why a plugin cannot be used for AviSynth+ may be that it uses an outdated programming interface which was suitable for AviSynth 2.5, but AviSynth+ requires one that got updated since AviSynth 2.6.
pinterf
26th June 2020, 10:33
And the new yadifmod (https://github.com/Asd-g/yadifmod2/releases) is automatically using avx or avx2 (?) when available, there is no need for specific dll version.
ziher13
17th August 2020, 08:30
Hello!
English is not my first language, so excuse me for any errors.
I'm quite new to encoding, so I wanted to ask a question.
I was trying to deinterlace fully interlaced clip using QTGMC. The script I used is this:
LoadPlugin("C:\Downloads\MeGUI-2913-64\tools\lsmash\LSMASHSource.dll")
LWLibavVideoSource("C:\Sanya\work\haneb qtgmc\orig\00006.m2ts")
#deinterlace
#crop
#resize
#denoise
QTGMC( Preset="Medium", SourceMatch=1, TR2=3, Lossless=2, Sharpness=0.2 )
I am using latest version of MeGUI64 and latest versions of plugins, required for QTGMC. (At first I was using not latest plugins, but I upgraded them.)
Since I'm not using FPSDivisor or SelectEven() I'm getting a 60fps video with double the number of frames, compared to original. First half of the video is completely fine, but as soon as video gets past the middle it gets distorted.
This is short clip of the video (500 frames before and 500 frames after the middle). The change is easily noticeable in upper left corner.
https://drive.google.com/file/d/1ACtoIQqgmYwLEvAmcs9uLKnolANsiUTU/view?usp=sharing
After experimenting with my script, I found that this bug disappears in 2 cases.
1. If I delete "Lossless=2" from my script.
OR
2. If I use FFMS as indexer instead of LWLibavVideoSource.
So, my question is, is this some bug/interference between LSMASHSource and QTGMC, or is there something wrong with my script?
I get the feeling, that it is somehow connected to doubling number of frames.
I tested this in both Avisynth+3.5.1 included in MeGui and separated Avisynth+3.6.1. I tested plugins and script using AVSMeter3020, It does not show any errors, script works.
Original m2ts file is 7.52GB if it will be needed.
Thanks for reading all this!
like.no.other
1st September 2020, 22:07
Hello there!
I always get a "TemporalSoften" error; "Scenechange not available on RGB32/64".
I am using AviSynth+ 3.6.1 x86 plus x64 with the most up to date plugins from the wiki for each.
But wiki says that TemporalSoften does work with RGB32 since years (avisynth.nl/index.php?title=Soften). Do you have any clue what my issue may be caused by?
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 22.05.2020 23:00 249856 DePan.dll
-a---- 22.05.2020 23:00 148480 DePanEstimate.dll
-a---- 13.08.2020 12:36 3943424 masktools2.dll
-a---- 02.06.2020 10:08 2424832 mvtools2.dll
-a---- 21.07.2020 19:28 13873664 nnedi3.dll
-a---- 27.07.2020 23:48 86771 QTGMC.avsi
-a---- 27.04.2020 23:04 781312 RgTools.dll
-a---- 27.07.2020 23:48 85958 Zs_RF_Shared.avsi
Thank you very much in advance,
Nico
jeffk
23rd October 2020, 12:40
Hi,
I've read QTGMC documentation and preset mode, QTGMC should include a Denoiser right ?
Even with ChromaNoise= true, NoiseProcess=1 and NoisePreset=Slow/whatever it doesnt do anything.
The best thing i've found for Chroma Noise is vsTTempSmooth with high value, where the default values are 5, I must set something like 100 to remove blue/yellow line.
vsTTempSmooth(maxr=3, ythresh=4, uthresh=100, vthresh=100, ymdiff=0, umdiff=3, vmdiff=3, strength=2, scthresh=12.0, fp=true, y=true, u=true, v=true)
DeafYakuza
24th January 2021, 03:26
Hello,
I have a problem with Avisynth "ConvertToYV12" and can't to get solve it. I installed all latest plugins to the folders and I also installed new version of AvsPmod and Avisynth+ 3.70. The last time was sucess with that. Can someone help me?
Avisynth Sript:
Import("C:\Program Files (x86)\AviSynth+\plugins+\QTGMC.avsi")
#Import("C:\Program Files (x86)\AviSynth+\plugins+\SRestore.avsi")
LoadPlugin("C:\Program Files (x86)\AviSynth+\plugins+\nnedi3.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth+\plugins+\masktools2.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth+\plugins+\mvtools2.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth+\plugins+\RgTools.dll")
FFmpegSource2("I:\Captures\Untitled_03.avi", atrack=1)
ConvertToYV12(interlaced=true)
AssumeBFF()
QTGMC(Preset="slow",TR0=2,TR1=2,TR2=0,Sharpness=0.0,SourceMatch=3,EZKeepGrain=0.0,NoisePreset="faster",GrainRestore=1.2)
SelectEven()
Super = MSuper(sharp=2)
bvec3 = MAnalyse(Super, isb=true, delta=3, blksize=16, overlap=8, search=3, truemotion=true, dct=5)
bvec2 = MAnalyse(Super, isb=true, delta=2, blksize=16, overlap=8, search=3, truemotion=true, dct=5)
bvec1 = MAnalyse(Super, isb=true, delta=1, blksize=16, overlap=8, search=3, truemotion=true, dct=5)
fvec1 = MAnalyse(Super, isb=false, delta=1, blksize=16, overlap=8, search=3, truemotion=true, dct=5)
fvec2 = MAnalyse(Super, isb=false, delta=2, blksize=16, overlap=8, search=3, truemotion=true, dct=5)
fvec3 = MAnalyse(Super, isb=false, delta=3, blksize=16, overlap=8, search=3, truemotion=true, dct=5) #dct was =5
MDegrain3(Super, bvec1, fvec1, bvec2, fvec2, bvec3, fvec3, plane=4, thsad=800)
#SMDegrain(tr=8,thSAD=400,thsadc=1200,str=2,pel=2,refinemotion=true,blksize=16,truemotion=true)
#SRestore(frate=23.976)
Crop(8,4,-6,-6)
Spline16Resize(720,486)
AVSInfo:
PS I:\captures> avsmeter .\Untitled_03.avs
AVSMeter 3.0.7.0 (x86), (c) Groucho2004, 2012-2020
AviSynth+ 3.7.0 (r3382, 3.7, i386) (3.7.0.0)
SeparateFields: YUV420 height must be multiple of 4
(C:\Program Files (x86)\AviSynth+\plugins+\QTGMC.avsi, line 838)
(C:\Program Files (x86)\AviSynth+\plugins+\QTGMC.avsi, line 442)
(I:\captures\Untitled_03.avs, line 10)
AVSMeter:
AVSMeter 3.0.7.0 (x86), (c) Groucho2004, 2012-2020
VersionString: AviSynth+ 3.7.0 (r3382, 3.7, i386)
VersionNumber: 2.60
File / Product version: 3.7.0.0 / 3.7.0.0
Interface Version: 8
Multi-threading support: Yes
Avisynth.dll location: C:\Windows\SysWOW64\avisynth.dll
Avisynth.dll time stamp: 2021-01-11, 15:46:40 (UTC)
PluginDir2_5 (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins
PluginDir+ (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins+
[C++ 2.5 Plugins (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\Decomb.dll [n/a, 2013-02-26]
[C++ 2.6 Plugins (32 Bit)] [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\ConvertStacked.dll [n/a, 2021-01-11]
C:\Program Files (x86)\AviSynth+\plugins+\DePan.dll [2.13.1.6, 2020-05-22]
C:\Program Files (x86)\AviSynth+\plugins+\DePanEstimate.dll [2.10.0.4, 2020-05-22]
C:\Program Files (x86)\AviSynth+\plugins+\DirectShowSource.dll [n/a, 2021-01-11]
C:\Program Files (x86)\AviSynth+\plugins+\ffms2.dll [n/a, 2020-08-22]
C:\Program Files (x86)\AviSynth+\plugins+\ImageSeq.dll [n/a, 2021-01-11]
C:\Program Files (x86)\AviSynth+\plugins+\masktools2.dll [2.2.26.0, 2020-09-04]
C:\Program Files (x86)\AviSynth+\plugins+\mvtools2.dll [2.7.44.0, 2020-12-14]
C:\Program Files (x86)\AviSynth+\plugins+\nnedi3.dll [0.9.4.57, 2020-08-02]
C:\Program Files (x86)\AviSynth+\plugins+\RgTools.dll [1.1.0.0, 2021-01-04]
C:\Program Files (x86)\AviSynth+\plugins+\Shibatch.dll [n/a, 2021-01-11]
C:\Program Files (x86)\AviSynth+\plugins+\TDeint.dll [1.8.0.0, 2020-12-14]
C:\Program Files (x86)\AviSynth+\plugins+\TimeStretch.dll [n/a, 2021-01-11]
C:\Program Files (x86)\AviSynth+\plugins+\TIVTC.dll [1.0.25.0, 2020-12-14]
C:\Program Files (x86)\AviSynth+\plugins+\VDubFilter.dll [n/a, 2021-01-11]
[Scripts (AVSI)] [Time stamp]
C:\Program Files (x86)\AviSynth+\plugins+\colors_rgb.avsi [2021-01-11]
C:\Program Files (x86)\AviSynth+\plugins+\FFMS2.avsi [2015-05-22]
C:\Program Files (x86)\AviSynth+\plugins+\GrainFactory3.avsi [2020-12-05]
C:\Program Files (x86)\AviSynth+\plugins+\QTGMC.avsi [2018-03-16]
C:\Program Files (x86)\AviSynth+\plugins+\SMDegrain.avsi [2019-07-21]
C:\Program Files (x86)\AviSynth+\plugins+\SRestore.avsi [2021-01-24]
C:\Program Files (x86)\AviSynth+\plugins+\Zs_RF_Shared.avsi [2021-01-24]
[Plugin errors/warnings]
________________________________________________________________________________
Function duplicates:
"AvsPlusVersionNumber" : "C:\Program Files (x86)\AviSynth+\plugins+\SMDegrain.avsi"
"AvsPlusVersionNumber" : "C:\Program Files (x86)\AviSynth+\plugins+\Zs_RF_Shared.avsi"
"ContraSharpeningHD" : "C:\Program Files (x86)\AviSynth+\plugins+\SMDegrain.avsi"
"ContraSharpeningHD" : "C:\Program Files (x86)\AviSynth+\plugins+\Zs_RF_Shared.avsi"
"Dither_Luma_Rebuild" : "C:\Program Files (x86)\AviSynth+\plugins+\SMDegrain.avsi"
"Dither_Luma_Rebuild" : "C:\Program Files (x86)\AviSynth+\plugins+\Zs_RF_Shared.avsi"
"Dither_YUY2toInterleaved16" : "C:\Program Files (x86)\AviSynth+\plugins+\SMDegrain.avsi"
"Dither_YUY2toInterleaved16" : "C:\Program Files (x86)\AviSynth+\plugins+\Zs_RF_Shared.avsi"
"Dither_YUY2toInterleaved" : "C:\Program Files (x86)\AviSynth+\plugins+\SMDegrain.avsi"
"Dither_YUY2toInterleaved" : "C:\Program Files (x86)\AviSynth+\plugins+\Zs_RF_Shared.avsi"
"Dither_YUY2toPlanar16" : "C:\Program Files (x86)\AviSynth+\plugins+\SMDegrain.avsi"
"Dither_YUY2toPlanar16" : "C:\Program Files (x86)\AviSynth+\plugins+\Zs_RF_Shared.avsi"
"Dither_YUY2toPlanar" : "C:\Program Files (x86)\AviSynth+\plugins+\SMDegrain.avsi"
"Dither_YUY2toPlanar" : "C:\Program Files (x86)\AviSynth+\plugins+\Zs_RF_Shared.avsi"
"IsAvsNeo" : "C:\Program Files (x86)\AviSynth+\plugins+\SMDegrain.avsi"
"IsAvsNeo" : "C:\Program Files (x86)\AviSynth+\plugins+\Zs_RF_Shared.avsi"
"IsAvsPlus" : "C:\Program Files (x86)\AviSynth+\plugins+\SMDegrain.avsi"
"IsAvsPlus" : "C:\Program Files (x86)\AviSynth+\plugins+\Zs_RF_Shared.avsi"
"MinBlur" : "C:\Program Files (x86)\AviSynth+\plugins+\SMDegrain.avsi"
"MinBlur" : "C:\Program Files (x86)\AviSynth+\plugins+\Zs_RF_Shared.avsi"
"sbr" : "C:\Program Files (x86)\AviSynth+\plugins+\SMDegrain.avsi"
"sbr" : "C:\Program Files (x86)\AviSynth+\plugins+\Zs_RF_Shared.avsi"
poisondeathray
24th January 2021, 03:38
Hello,
I have a problem with Avisynth "ConvertToYV12" and can't to get solve it. I installed all latest plugins to the folders and I also installed new version of AvsPmod and Avisynth+ 3.70. The last time was sucess with that. Can someone help me?
It tells you what the problem is
SeparateFields: YUV420 height must be multiple of 4
486px height is not evenly divisible by 4
You can use ConvertToYV16(interlaced=true) instead (and back to YV12 at the end if you need 4:2:0), or crop to mod4 before QTGMC
FFmpegSource2("I:\Captures\Untitled_03.avi", atrack=1)
ConvertToYV16(interlaced=true)
AssumeBFF()
QTGMC(Preset="slow",TR0=2,TR1=2,TR2=0,Sharpness=0.0,SourceMatch=3,EZKeepGrain=0.0,NoisePreset="faster",GrainRestore=1.2)
SelectEven()
Super = MSuper(sharp=2)
bvec3 = MAnalyse(Super, isb=true, delta=3, blksize=16, overlap=8, search=3, truemotion=true, dct=5)
bvec2 = MAnalyse(Super, isb=true, delta=2, blksize=16, overlap=8, search=3, truemotion=true, dct=5)
bvec1 = MAnalyse(Super, isb=true, delta=1, blksize=16, overlap=8, search=3, truemotion=true, dct=5)
fvec1 = MAnalyse(Super, isb=false, delta=1, blksize=16, overlap=8, search=3, truemotion=true, dct=5)
fvec2 = MAnalyse(Super, isb=false, delta=2, blksize=16, overlap=8, search=3, truemotion=true, dct=5)
fvec3 = MAnalyse(Super, isb=false, delta=3, blksize=16, overlap=8, search=3, truemotion=true, dct=5) #dct was =5
MDegrain3(Super, bvec1, fvec1, bvec2, fvec2, bvec3, fvec3, plane=4, thsad=800)
#SMDegrain(tr=8,thSAD=400,thsadc=1200,str=2,pel=2,refinemotion=true,blksize=16,truemotion=true)
#SRestore(frate=23.976)
Crop(8,4,-6,-6)
Spline16Resize(720,486)
#ConvertToYV12()
DeafYakuza
24th January 2021, 03:58
Thanks for fast reply!
It has solved but the picture runs 4-2-4-2.... :eek:
EDIT: I will check tomorrow, now I’m on bed. :p
poisondeathray
24th January 2021, 04:01
It has solved but the picture runs 4-2-4-2.... ��
I don't understand what you mean by that...
4 duplicates, 2 duplicates ?
DeafYakuza
24th January 2021, 11:04
Just easy, 1, 2, 3, 4, 4, 5, 6, 7, 8, 8, 9, 10, 11, 12, 12, 13, ..... Every fourth picture is duplicated.
poisondeathray
24th January 2021, 16:15
Just easy, 1, 2, 3, 4, 4, 5, 6, 7, 8, 8, 9, 10, 11, 12, 12, 13, ..... Every fourth picture is duplicated.
You can use TDecimate
Probably you don't need to use QTGMC, you should IVTC
DeafYakuza
24th January 2021, 22:56
Thanks, it fixed well.
hintlou
10th February 2021, 03:12
“BWDIF+NNEDI3” ,"BWDIF+EEDI3" can be edimodes.Could "TDeint+eedi2","Yadif+nnedi3" or "Yadif+eedi3" be edimodes?I hope QTGMC could have a blend mode....
real.finder
11th February 2021, 02:02
“BWDIF+NNEDI3” ,"BWDIF+EEDI3" can be edimodes.Could "TDeint+eedi2","Yadif+nnedi3" or "Yadif+eedi3" be edimodes?I hope QTGMC could have a blend mode....
you can use anything in EdiExt parameter
44vince44
25th February 2021, 09:08
Hi everyone.
Please acknowledge this test made by a (Staxrip) user who has a TURKISH locale, and could not work with QTGMC due to script error There is no function named 'NNEDI3'.
He opened QTGMC.avsi and replaced all occurences of "NNEDI3" with "nnedi3".
The script error was fixed and QTGMC worked flawlessly.
Is there any action you could take for that ?
LigH
25th February 2021, 11:11
:confused: Are there locales with forced case dependency?
stax76
25th February 2021, 14:18
Turkish has something special with i, I know this, one staxrip bug related to that was fixed a few days ago, and another one a few years ago.
ABCÇDEFGĞH I İ JKLMNOÖPRSŞTUÜVYZQWX
abcçdefgğh ı i jklmnoöprsştuüvyzqwx
https://en.wikipedia.org/wiki/Turkish_alphabet
All avisynth tools in staxrip have a UTF-8 manifest:
https://github.com/staxrip/staxrip/wiki/AviSynth-Unicode-support-on-Windows-10-1903
That is applied on Windows 10 1903 or later and the user has such a new Windows version. That means all avisynth tools use UTF-8 as code page.
I tried to reproduce it by using the full Turkish alphabet in both upper and lower case as startup path and also as source file path, it's not reproducible.
I also changed my system code page:
https://github.com/staxrip/staxrip/issues/543#issuecomment-785857273
Here are the discussions:
https://github.com/staxrip/staxrip/discussions/487
https://github.com/staxrip/staxrip/issues/543
44vince44
25th February 2021, 18:42
Yes Turkish Windows seems to be case sensitive indeed...
Maybe to be able to reproduce it on another Windows, you must enable case dependencies in the working folder, using this command in a (admin) command prompt.
fsutil.exe file SetCaseSensitiveInfo C:\folder\path enable
Of course "disable" will disable it and return to standard Windows behaviour. This only affects the specified folder.
44vince44
25th February 2021, 20:56
@Stax76 has fixed it in StaxRip. This info might be useful: https://github.com/staxrip/staxrip/issues/543#issuecomment-786157676 explaining how he fixed it.
FranceBB
21st October 2021, 22:40
As per v3.382, using QTGMC( Preset="Slower", InputType=1 ) in 4:2:2 16bit planar makes the encode start but eventually it hangs on Avisynth 3.7.1 test 1 to 21 x64. It never happens on the same frame, sometimes it happens sooner rather than later but eventually it hangs. By "hang" I mean that FFMpeg has RAM allocated and is just waiting frames but Avisynth doesn't serve any. I've conducted several tests on several different sources and the behaviour is always the same.
This happened on different Intel Xeon servers belonging to different supply chains in our farm.
Boulder
22nd October 2021, 09:27
As per v3.382, using QTGMC( Preset="Slower", InputType=1 ) in 4:2:2 16bit planar makes the encode start but eventually it hangs on Avisynth 3.7.1 test 1 to 21 x64. It never happens on the same frame, sometimes it happens sooner rather than later but eventually it hangs. By "hang" I mean that FFMpeg has RAM allocated and is just waiting frames but Avisynth doesn't serve any. I've conducted several tests on several different sources and the behaviour is always the same.
This happened on different Intel Xeon servers belonging to different supply chains in our farm.
Have you tested Dogway's mod from https://forum.doom9.org/showthread.php?t=182881 ?
real.finder
22nd October 2021, 13:34
well, those kind of problems are in plugins 99% of times (or maybe the avs core itself) not the script, maybe masktools or mvtools or nnedi3 or something else
FranceBB
22nd October 2021, 13:52
Have you tested Dogway's mod from https://forum.doom9.org/showthread.php?t=182881 ?
Ah!
Dang it, I wasn't aware of that, however I've just tried and tried and tried again to reproduce the issue and I've nailed it down to MVTools.
well, those kind of problems are in plugins 99% of times (or maybe the avs core itself) not the script, maybe masktools or mvtools or nnedi3 or something else
Yeah, I've realized it's actually MVTools, but it took me quite some time to test and reproduce this.
coolgit
22nd October 2021, 21:57
What was the filesize?
I had this hanging nonsense a few times and seems to happen only when the filesize is huge.
I shutdown staxrip and tried again, sometimes work, sometimes it doesn't.
I broke the file into 3 parts using trim and it worked.
FranceBB
22nd October 2021, 23:24
What was the filesize?
I had this hanging nonsense a few times and seems to happen only when the filesize is huge.
I shutdown staxrip and tried again, sometimes work, sometimes it doesn't.
I broke the file into 3 parts using trim and it worked.
They're pretty big as they're v210 lossless tapes, so they range from 34 GB to 210 GB easily in SD.
I call everything from the command line and it's hard to reproduce as it gets stuck at different points every time.
coolgit
22nd October 2021, 23:54
They're pretty big as they're v210 lossless tapes
Same here but dvd vob files extracted losslessly.
See if trim works for you. 100,000 frames per clip.
FranceBB
23rd October 2021, 08:33
Well I mean I can do that but I feel like this should be addressed once and for all
coolgit
23rd October 2021, 15:16
Call it a stop gap measure. Also curious whether it will work for you.
DTL
24th October 2021, 14:04
As per v3.382, using QTGMC( Preset="Slower", InputType=1 ) in 4:2:2 16bit planar makes the encode start but eventually it hangs on Avisynth 3.7.1 test 1 to 21 x64. It never happens on the same frame, sometimes it happens sooner rather than later but eventually it hangs. By "hang" I mean that FFMpeg has RAM allocated and is just waiting frames but Avisynth doesn't serve any. I've conducted several tests on several different sources and the behaviour is always the same.
This happened on different Intel Xeon servers belonging to different supply chains in our farm.
I read you use internal multithreading (with avstp.dll) in mvtools. Did you try to use external multithreading with avisynth (Prefetch()) ? It may be faster and may be not suffer from this bug.
FranceBB
24th October 2021, 14:24
I read your reply. How do I disable internal multithreading in mvtools then?
Boulder
24th October 2021, 14:34
I'd remove avstp.dll from the plugins folder to be sure :)
FranceBB
24th October 2021, 15:00
I'd remove avstp.dll from the plugins folder to be sure :)
Oh ok, cool.
I'll test and let you know.
DTL
24th October 2021, 15:13
May be better to set mt=false to all used mvtools functions. Or try to remove avstp.dll from any possible places of searching (it may try to look in local folder and may be system path and other places). Also removing avstp.dll will stop internal mt in all other plugins. Best way is to remove avstp.dll from all system drives and test it can not be found by search tools in any place (drive/folder).
Also it may be tested with small testscript using mvtools if mt really disabled (it can not found avstp.dll).
As I understand the idea of avstp was to use single thread pool for all plugins to save system resources. But it in theory can cause undesired effects.
real.finder
24th October 2021, 15:36
with my edit of QTGMC you can disable all internal multithreading
Global set_plugins_threads = 1
sourcecall() #or whatever
QTGMC()
pooksahib
12th December 2021, 20:46
Hi. I've just installed MeGUI 64-bit and AviSynth+ 3.7.0 64-bit (from the Universal Avisynth Installer). I want to be able to call up QTGMC but I'm confused. The first post of this thread has a link to the QTGMC wiki page where the version is shown as 3.364s and beneath that is a link to the QTGMC avsi file. But the current version is apparently 3.382 and when I click the link (page one of this thread) it takes me here:
https://github.com/realfinder/AVS-Stuff/blob/a487858224a063101b9bfc1e128a0953ee6c5046/avs%202.6%20and%20up/QTGMC.avsi
and I can't find anything there that looks like an avsi download.
Can someone help me out? Many thanks.
gispos
12th December 2021, 21:32
Hi. I've just installed MeGUI 64-bit and AviSynth+ 3.7.0 64-bit (from the Universal Avisynth Installer). I want to be able to call up QTGMC but I'm confused. The first post of this thread has a link to the QTGMC wiki page where the version is shown as 3.364s and beneath that is a link to the QTGMC avsi file. But the current version is apparently 3.382 and when I click the link (page one of this thread) it takes me here:
https://github.com/realfinder/AVS-Stuff/blob/a487858224a063101b9bfc1e128a0953ee6c5046/avs%202.6%20and%20up/QTGMC.avsi
and I can't find anything there that looks like an avsi download.
Can someone help me out? Many thanks.
Click 'Raw' and then save page or copy everything and save it in a text file and rename it to QTGMC.avsi
pooksahib
12th December 2021, 22:15
Excellent. Thanks, gispos. The wiki tells me I need five core things: MaskTools2, MVTools2, nnedi3, RgTools and Zs_RF_Shared.
Zs_RF_Shared is an avsi so I've put it into plugins alongside qtgmc.avsi. The other four are folders - how are they dealt with? Thank you.
EDIT: Think I sussed it - I moved the 64-bit dll's out of their folders and into plugins. Is it then necessary to keep the folders that MaskTools2 etc came in? Most just contain licences and alternate versions of the dll.
But for MaskTools2 there's a 'normal' dll and one with 'with_dual_filter_signatures'. Which to use (if it matters...)? Thanks again.
kedautinh12
13th December 2021, 04:27
real.finder was deleted QTGMC and change name to STGMC
https://github.com/realfinder/AVS-Stuff/blob/Community/avs%202.6%20and%20up/STGMC.avsi
LigH
13th December 2021, 08:46
Since QTGMC got optimized for AviSynth+ at some point, STGMC is mainly preserving compatibility to legacy AviSynth 2.6, I have been told.
kedautinh12
13th December 2021, 09:45
Since QTGMC got optimized for AviSynth+ at some point, STGMC is mainly preserving compatibility to legacy AviSynth 2.6, I have been told.
But STGMC still perfome result same QTGMC old ver. When QTGMC new ver will change result of another scripts still use QTGMC old ver in dependence.
real.finder
13th December 2021, 23:08
Since QTGMC got optimized for AviSynth+ at some point, STGMC is mainly preserving compatibility to legacy AviSynth 2.6, I have been told.
also there are some settings that changed or removed by Dogway
Danette
21st March 2022, 13:14
I’m struggling with the line: QTGMC(InputType=0,Preset=”Faster”,Denoiser=”KNLMeansCL(a=1,h=3)”). When I apply this, nothing happens, i.e.; there is no denoising. When I use KNLMeansCL(a=1,h=3), in a separate line just below QTGMC(InputType=0,Preset=”Faster”), the expected denoising occurs.
I’m using QTGMC v3.382, KNLMeansCL v1.1.1e and Avisynth+ v3.7.0
kedautinh12
21st March 2022, 13:37
you need update latest QTGMC ver
https://github.com/realfinder/AVS-Stuff/blob/Community/avs%202.6%20and%20up/QTGMC.avsi
and avs+ stable is 3.7.2 now
real.finder
22nd March 2022, 00:09
you can't use Denoiser=”KNLMeansCL(a=1,h=3)” you should use it like Denoiser=”KNLMeansCL”
the wiki said http://avisynth.nl/index.php/QTGMC
Select denoiser to use for noise bypass / denoising. Select from ”KNLMeansCL”, "dfttest" or "fft3dfilter". dfttest is better, but slower. Unknown value selects "fft3dfilter". Default: fft3dfilter
btw, the red words didn't added to the wiki yet :)
edit: also you should set EZDenoise to something or "Denoiser" parameter will do nothing
Danette
22nd March 2022, 02:26
Well, none of these suggestions work. I tried adding EZDenoise=0, but there was no effect when adding Denoiser=”knlmeanscl’
I was hoping that, by using KNLMeansCL in the QTGMC code that it would disable all other denoising/degraining activity in QTGMC. I have no problem using KNLMeansCL as standalone filter. However, is there a way to disable all denoising/degraining activity in QTGMC, since the Denoiser=”knlmeanscl’ call seems unusable?
kedautinh12
22nd March 2022, 05:28
You need write correct KNLMeansCL not knlmeanscl and you need write correct ”KNLMeansCL” not ”knlmeanscl’
https://github.com/realfinder/AVS-Stuff/blob/5a0d5b45fd0a3e502706e4c039ec70f8ba664258/avs%202.6%20and%20up/QTGMC.avsi#L801
real.finder
22nd March 2022, 05:36
also EZDenoise=0 will do nothing since it the default
Danette
22nd March 2022, 14:22
Thanks, all.
Yes, I did follow the code contained in QTGMC, initially: I used Denoiser=”KNLMeansCL” (the single quote was just a typo on this thread). It did nothing.
Using EZDenoise also does nothing. As an example; I’ve tried EZDenoise=1 and I get the expected denoising, but it is all due to EZDenoise, not KNLMeansCL.
Further, when I apply ShowSettings, KNLMeansCL does appear in the list of filters being employed by QTGMC as the denoiser. However, when using the “User Sliders” capability in AvsPmod and looking at the QTGMC “Denoiser” drop-downs, KNLMeansCL does not appear as one of the options. Only dfttest and fft3dfilter appear.
Danette
23rd March 2022, 23:55
In the absence of further comments upon my inquiry regarding the failure of KNLMeansCL to work within QTGMC (probably due to a lack of interest in KNLMeansCL), I would like to state my opinion of the issue, for the benefit of others that may stumble upon this post when trying to find a way to make KNLMeansCL work within QTGMC.
Using this script line: QTGMC(InputType=0,Preset="[any preset]",Denoiser="KNLMeansCL") and with variations including; Denoiser="knlmeanscl" or EZDenoise=[any acceptable number] included in the line, results in no implementation of KNLMeansCL by QTGMC.
This test was conducted using the current (as of this date) versions of the following: AviSynth+ v3.7.2, QTGMC v3.384, KNLMeansCL v1.1.1e and AvsPmod v2.7.0.9
However, I was pleased to find, today, this recent comment from a member that I respect: “By default, QTGMC's noise removal is disabled.” For my purposes, this means that I can use KNLMeansCL as a stand-alone script line without concern that QTGMC is adding more denoising. So, this satisfies my initial inquiry.
Incidentally, I’ve found that using TNLMeans(Ax=1,Ay=1.h=3.0) gives me the same (maybe slightly better) performance vs. KNLMeansCL(a=1,h=3) and about a 45% improvement in speed. Tried DGDenoiser and EZDenoise but both, while close, had noticeably more blurring at comparable grain reduction levels to the N-l means versions. Of course, the latter are much faster than the N-l means versions.
real.finder
24th March 2022, 16:05
“By default, QTGMC's noise removal is disabled.”
that the point, but you still got some noise removal anyway since QTGMC main core is MVTools MDegrain, KNLMeansCL part in QTGMC was backport from vs QTGMC so you should ask them
Further, when I apply ShowSettings, KNLMeansCL does appear in the list of filters being employed by QTGMC as the denoiser. However, when using the “User Sliders” capability in AvsPmod and looking at the QTGMC “Denoiser” drop-downs, KNLMeansCL does not appear as one of the options. Only dfttest and fft3dfilter appear.
that because these thing didn't updated to know there are KNLMeansCL in QTGMC
anyway, did you try with dfttest? if not try and see
Danette
25th March 2022, 01:35
anyway, did you try with dfttest? if not try and see
Yes, I did try it, but I may have given it short shrift, as I abandoned it before trying to optimize it. The wiki, for it, does not give an indication of general effects, to my understandings, as to how any of the settings affect speed or file size, so I didn’t know where to start optimization efforts.
I used the default settings for dfttest and doing so adds 50% to the time (as measured by AVSMeter), vs. the TNLMeans(Ax=1,Ay=1.h=3.0) I settled upon, and also is noticeably more blurry. The denoising effect was indistinguishable from TNLMeans.
kedautinh12
25th March 2022, 01:37
You can try neo-dfttest, maybe it's will faster
https://github.com/HomeOfAviSynthPlusEvolution/neo_DFTTest
Danette
25th March 2022, 02:22
Thanks, but I think that I'll sit tight with the current TNLMeans I'm using, as it gives me the optimum blur, speed and denoising/degraining for my tastes. The only possible improvement that I would consider changer for would be in speed, and it is hard to imagine that such a successful balance of benefits could be improved upon with a significant speed increase. It seems that there is an almost limitless supply of various denoisers out there, and trying them all would be more of a time commitment than I would like to do ...at this time.
PoeBear
25th March 2022, 05:38
Are there any settings to adjust/tweak the level of decombing filtering? Anytime there's a vent or grate in frame (or any similar, multiple parallel lines) on my 480i inputs, it tries to decomb it, and ends up scrambling that part of the image
Just running QTGMC(Preset="Placebo", SourceMatch=3, Sharpness=0.0, TR2=0, Rep2=3, Lossless=1)
Danette
15th April 2022, 23:25
Using MT, with an optimized thread number (via AVSMeter), I’ve had no problems until I try using EZDenoise in QTGMC. When I do that, I am able to batch process about 4-5 files and then the processing crashes with the message: "ffmpeg.exe has stopped working."
I’m using MeGUI with the following script:
SetFilterMTMode("DEFAULT_MT_MODE",2)
MPEG2Source("C:\xxxx.d2v", cpu=0)
Greyscale()
TFM(slow=2)
Decimate()
AssumeTFF()
QTGMC(InputType=1,Preset="Medium",EZDenoise=3.0)
VagueDenoiser(chromaT=0)
#TNLMeans(Ax=1,Ay=1,h=3.0)
LimitedSharpenFaster(strength=300)
CropResize(0,0, 0, 0, 0, -0,InDAR=15.0/11.0,ResizeWO=True,Resizer="Lanczos4Resize")
GradFun3()
Prefetch(3)
AviSynth+ v3.7.2, QTGMC v3.384 and MEGui v2913
real.finder
16th April 2022, 00:11
Using MT, with an optimized thread number (via AVSMeter), I’ve had no problems until I try using EZDenoise in QTGMC. When I do that, I am able to batch process about 4-5 files and then the processing crashes with the message: "ffmpeg.exe has stopped working."
I’m using MeGUI with the following script:
SetFilterMTMode("DEFAULT_MT_MODE",2)
MPEG2Source("C:\xxxx.d2v", cpu=0)
Greyscale()
TFM(slow=2)
Decimate()
AssumeTFF()
QTGMC(InputType=1,Preset="Medium",EZDenoise=3.0)
VagueDenoiser(chromaT=0)
#TNLMeans(Ax=1,Ay=1,h=3.0)
LimitedSharpenFaster(strength=300)
CropResize(0,0, 0, 0, 0, -0,InDAR=15.0/11.0,ResizeWO=True,Resizer="Lanczos4Resize")
GradFun3()
Prefetch(3)
AviSynth+ v3.7.2, QTGMC v3.384 and MEGui v2913
like I said before https://forum.doom9.org/showpost.php?p=1955519&postcount=876
very high possibility it's mvtools and avstp, try remove avstp.dll from your system from wherever you find it
Danette
16th April 2022, 00:45
like I said before https://forum.doom9.org/showpost.php?p=1955519&postcount=876
very high possibility it's mvtools and avstp, try remove avstp.dll from your system from wherever you find it
Someone (perhaps it was you) had also recommended that I remove all instances of avstp.dll for a different issue, quite a while ago, and I did. So, it has not been on my computer for quite a while. Still, the ffmpeg crash continues.
real.finder
17th April 2022, 19:16
Someone (perhaps it was you) had also recommended that I remove all instances of avstp.dll for a different issue, quite a while ago, and I did. So, it has not been on my computer for quite a while. Still, the ffmpeg crash continues.
now I think it maybe c api problem, try to ask here https://forum.doom9.org/showthread.php?t=181351
but before that, EZDenoise by default use neo_fft3d or fft3dfilter if you don't have neo_fft3d, so what do you have of both? or you got both of them? try with each one and see
Hacker?pcs
21st April 2022, 22:22
I have an issue with
QTGMC(EdiMode="BWDIF+NNEDI3",ThSAD1=1500,MatchTR2=2,tr2=2,EdiThreads=3)
There are some unexpected white dots on certain spots (hat here)
https://thumbs2.imgbox.com/9b/2b/rl2oO7uU_t.png (https://imgbox.com/rl2oO7uU)
that aren't there on source
https://thumbs2.imgbox.com/83/70/IT7ld5Ju_t.png (https://imgbox.com/IT7ld5Ju)
also doesn't happen on
QTGMC(preset="Medium")
https://thumbs2.imgbox.com/33/0d/BIPb3q8T_t.png (https://imgbox.com/BIPb3q8T)
and also not on
QTGMC(preset="Slower").QTGMC(Preset="Medium", InputType=1)
https://thumbs2.imgbox.com/df/ba/IkYSweoN_t.png (https://imgbox.com/IkYSweoN)
same thing on another instance on subtitles
https://thumbs2.imgbox.com/6b/0f/g3YPqrHk_t.png (https://imgbox.com/g3YPqrHk)
source:
https://thumbs2.imgbox.com/e4/e6/ZZCMP79h_t.png (https://imgbox.com/ZZCMP79h)
Source for above scenes + encodes:
https://mega.nz/folder/lrxgUYrS#f_V9LBCajNPH_EBI1NKE1A
QTGMC is on latest version v3.384s
https://github.com/realfinder/AVS-Stuff/blob/Community/avs%202.6%20and%20up/QTGMC.avsi
real.finder
22nd April 2022, 00:40
it's vinverse problem, see here https://github.com/Asd-g/vinverse/issues/4
get back to https://github.com/realfinder/AVS-Stuff/blob/90c7f3575be91f5d3568543a94154ed7eb6f2568/avs%202.6%20and%20up/QTGMC.avsi for now until vinverse fixed
Hacker?pcs
22nd April 2022, 07:14
0.9.4 seems to have fixed it, thanks!
Danette
22nd April 2022, 22:25
Regarding the crash report a few threads above:
Just wanted to circle back and retract my suspicion that this crash was due to EZDenoise and MT. It is MT related, but does not involve EZDenoise. Since I had never used EZDenoise and MT together, I assumed that the problem was with EZDenoise (MT had never caused crashes with other denoisers). So, I tried MT with other denoisers that I knew had worked successfully in the past. The crashes resumed.
The problem is with the video itself. There are 117 episodes of this TV series and the crashes persisted through the entire series. I have no idea what it may be. They were ripped with MakeMKV, demuxed, indexed with DGIndex (which showed no abnormality in the log files) and then compressed with MeGUI …just as I have done with a hundred other series.
No solution is necessary, as I have completed processing them by simply leaving the multithreading out. It will remain a mystery.
real.finder
22nd April 2022, 22:55
if you can made small sample with simple script to reproduce it so pinterf can debug it
Danette
24th April 2022, 23:32
if you can made small sample with simple script to reproduce it so pinterf can debug it
Thanks, but it seems to be an issue more related to MEGUI crashing with MT. I'll post my current perception of the problem on the MeGUI thread.
kedautinh12
25th April 2022, 01:48
I think you need add report to here
https://sourceforge.net/p/megui/discussion/create_topic/
Danette
25th April 2022, 20:38
I think you need add report to here
https://sourceforge.net/p/megui/discussion/create_topic/
Thanks. I just did it.
Ceppo
26th April 2022, 14:13
Just wandering, if you use x264.exe with a .bat file does it work?
jmartinr
27th April 2022, 11:40
Of course it does.
Danette
11th June 2022, 16:35
I am moving to 64-bit and have encountered errors when applying EZDenoise. It is throwing off error messages about “Zs_Rf_Shared.avsi, line 1619” and “QTGMC.avsi, line 799” (which refers to FFT3D). However, I have the current related dll’s for these filters in both SYSWOW and plugins64.
Without EZDenoise, QTGMC works fine. It also works, with EZDenoise, when I run QTGMC in Avisynth 32-bit.
UPDATE: This seems to be caused by the fft3dfilter.dll (currently using v2.10). I suspect this because, when I remove the 32-bit version from the Avisynth 32-bit plugins folder, I get the same errors. It is as though the 64-bit fft3dfilter.dll does not exist in the plugins64 folder ...but it is there. I did try downloading it, again, to see if the first one was corrupted.
kedautinh12
12th June 2022, 02:16
fft3dfilter.dll 3.3.10 here
https://forum.doom9.org/showthread.php?p=1965537#post1965537
Danette
12th June 2022, 14:58
fft3dfilter.dll 3.3.10 here
https://forum.doom9.org/showthread.php?p=1965537#post1965537
Worked. Thanks.
You would think that the "AviSynth+ x64 plugins" page would reference the link that you posted, rather than the defective fftw-3.3.5-dll64.zip
However, I found some behavior that contradicts instructions on the QTGMC wiki page for placement of the DLL's and am looking for confirmation that it is ok to do this:
For 64-bit Avisynth, I found that renaming the 64-bit libfftw3f-3.dll to FFTW3.dll, as instructed, then placing that FFTW3.dll file in the plugins64 folder is necessary for 64-bit functionality. The libfftw3f-3.dll is not needed at all, although having libfftw3f-3.dll in SysWOW64 does not negatively affect 64-bit Avisynth.
For 32-bit Avisynth, it is necessary to place the 32-bit libfftw3f-3.dll into either the System32 or SysWOW64 folders for 32-bit functionality, and the FFTW3.dll is not needed at all.
kedautinh12
12th June 2022, 22:58
For windows x64, copy libfftw3f-3.dll and FFTW3.dll to System32 folder if you use avisynth 64 bit, copy libfftw3f-3.dll and FFTW3.dll to sysWOW64 folder if you use avisynth 32 bit
Danette
12th June 2022, 23:37
For windows x64, copy libfftw3f-3.dll and FFTW3.dll to System32 folder if you use avisynth 64 bit
That’s not what I found in Win 64, when using 64-bit Avisynth+. When I did that, the error message, mentioned above, appears (I use AvsPmod). Only when I put the FFTW3.dll (renamed from the 64-bit libfftw3f-3.dll) into the plugins64 folder does it function correctly. If the FFTW3.dll is renamed from the 32-bit libfftw3f-3.dll, it doesn’t do anything no matter what folder it is in. The libfftw3f-3.dll file is unnecessary, other than using the 64-bit version to rename as FFTW3.dll.
copy libfftw3f-3.dll and FFTW3.dll to sysWOW64 folder if you use avisynth 32 bit
This works in Win 64, when using 32-bit Avisynth+. However, not only is the FFTW3.dll unnecessary, the libfftw3f-3.dll file can be placed in either the sysWOW64 folder or the System32 folder.
So …as mentioned in the OP, this is for QTGMC functionality using EZDenoise. If I do what I pointed out works: FFTW3.dll (64-bit) in plugins64 and libfftw3f-3.dll (32-bit) in either sysWOW64 or System32, can you foresee any other difficulties with QTGMC behavior, when running either Avisynth+ 64-bit or Avisynth+ 32-bit?
kedautinh12
13th June 2022, 01:56
That’s not what I found in Win 64, when using 64-bit Avisynth+. When I did that, the error message, mentioned above, appears (I use AvsPmod). Only when I put the FFTW3.dll (renamed from the 64-bit libfftw3f-3.dll) into the plugins64 folder does it function correctly. If the FFTW3.dll is renamed from the 32-bit libfftw3f-3.dll, it doesn’t do anything no matter what folder it is in. The libfftw3f-3.dll file is unnecessary, other than using the 64-bit version to rename as FFTW3.dll.
This works in Win 64, when using 32-bit Avisynth+. However, not only is the FFTW3.dll unnecessary, the libfftw3f-3.dll file can be placed in either the sysWOW64 folder or the System32 folder.
So …as mentioned in the OP, this is for QTGMC functionality using EZDenoise. If I do what I pointed out works: FFTW3.dll (64-bit) in plugins64 and libfftw3f-3.dll (32-bit) in either sysWOW64 or System32, can you foresee any other difficulties with QTGMC behavior, when running either Avisynth+ 64-bit or Avisynth+ 32-bit?
Your win have problem. My win 11 x64 install like i said and work both x64 and x86
kedautinh12
13th June 2022, 02:00
Some plugins required libfftw3f-3.dll and some plugins required FFTW3.dll. I recommend you copy both to carefully about required
Danette
13th June 2022, 02:30
You're probably right about the Win version. My video processing OS is still Win 7.
me7
3rd August 2022, 14:27
Hi, I have 2 questions ragarding restoration of badly deinterlaced video:
1. The documentation states that InputType=3 "complements field parity of the input", what does this mean in layman's terms? Is InputType=3 a bit slower than InputType=2 but possible more pleasing to the eye?
2. Is InputType=2/3 comparable in quality to InputType=0 with SelectEven()? InputType=2/3 only produces frames for half of the fields, but does it still use the "discarded" fields as information sources for the frames it produces? Or does it have less information to work with than InputType=0? Or is this question stupid and I have a wrong impression of how QTGMC works?
LigH
3rd August 2022, 19:41
InputType=3 uses ComplementParity (http://avisynth.nl/index.php/ComplementParity#ComplementParity)
DTL
18th September 2022, 12:00
Some user tried use QTGMC https://raw.githubusercontent.com/realfinder/AVS-Stuff/master/avs%202.6%20and%20up/QTGMC.avsi for both deinterlacing and denoising but increasing TR2 for poor quality VHS recordings makes almost no result. So the recommendation was to increase ThSAD2 from default 4*8*8=256 to some higher (like 400 and more). But other user points to very small ThSCD1 default value of 180.
Typically setting of thSAD > thSCD1 for MDegrain makes almost no effect because low thSCD1 fail total frame as 'scene change' so it is not included in 'denoise' process. But I have idea may be too low ThSCD1 is also used for some other purposes inside QTGMC (not only denoise) so it is no good to raise ThSCD1 if noise level is high at input clip and increasing of TR2 and ThSAD2 make no help to denoising ? Or it is safe to increase ThSCD1 to any required value for denoise only and it will not harm other parts of deinterlacing ?
Also why defaults of ThSCD1 of 180 is visibly lower of ThSAD2 of 256 ? In typical mvtools/MDegrain defaults thSCD1 is 400 and thSAD is 400. So thSCD1 is about equal to thSAD.
real.finder
20th September 2022, 01:37
Some user tried use QTGMC https://raw.githubusercontent.com/realfinder/AVS-Stuff/master/avs%202.6%20and%20up/QTGMC.avsi for both deinterlacing and denoising but increasing TR2 for poor quality VHS recordings makes almost no result. So the recommendation was to increase ThSAD2 from default 4*8*8=256 to some higher (like 400 and more). But other user points to very small ThSCD1 default value of 180.
Typically setting of thSAD > thSCD1 for MDegrain makes almost no effect because low thSCD1 fail total frame as 'scene change' so it is not included in 'denoise' process. But I have idea may be too low ThSCD1 is also used for some other purposes inside QTGMC (not only denoise) so it is no good to raise ThSCD1 if noise level is high at input clip and increasing of TR2 and ThSAD2 make no help to denoising ? Or it is safe to increase ThSCD1 to any required value for denoise only and it will not harm other parts of deinterlacing ?
Also why defaults of ThSCD1 of 180 is visibly lower of ThSAD2 of 256 ? In typical mvtools/MDegrain defaults thSCD1 is 400 and thSAD is 400. So thSCD1 is about equal to thSAD.
well, better ask -Vit- (https://forum.doom9.org/member.php?u=185232) or dogway since he did many big changes in his https://github.com/Dogway/Avisynth-Scripts/blob/d18b1a5902de51aaca89ea89b94ff8fa55916b6a/MIX%20mods/QTGMC+.avsi
flossy_cake
10th March 2023, 05:25
It seems QTGMC has an issue with moire on high frequency patterns. This is stronger moire than you would get with just Bob() or bwdif(field=-2, thr=2)
A suggestion posted by Didee here (https://forum.doom9.org/showthread.php?p=1492538#post1492538) was to do a lowpass filter beforehand. I've implemented something like this, but the issue I've run into is that it blends with pixel above+below which for interlaced video could be previous/next frame and so you end up with blended frames on motion.
I am thinking there must be some way to apply a low pass filter to interlaced material without first deinterlacing it. Back in analogue days when they used deflicker filter for CRT's I don't think they are deinterlacing it first before applying the deflicker filter. So there must be some way to lowpass filter each field without resulting in blended frames in motion - can anyone advise?
:thanks:
poisondeathray
10th March 2023, 06:23
A suggestion posted by Didee here (https://forum.doom9.org/showthread.php?p=1492538#post1492538) was to do a lowpass filter beforehand. I've implemented something like this, but the issue I've run into is that it blends with pixel above+below which for interlaced video could be previous/next frame and so you end up with blended frames on motion.
I am thinking there must be some way to apply a low pass filter to interlaced material without first deinterlacing it
Did you try separating fields ?
ie. separatefields(), apply some lowpass (e.g. vertical blur) , weave()
flossy_cake
10th March 2023, 08:41
Did you try separating fields ?
ie. separatefields(), apply some lowpass (e.g. vertical blur) , weave()
Wow, how did I not think of that
:thanks:
edit: ah yeah, it doesn't seem to work very well.
https://i.lensdump.com/i/TKWGxQ.png
SeparateFields()
strength = 0.25 # 0.0=off, 0.25=mid, 0.5=max
orig = last
shift_up = PointResize(orig.width, orig.height, 0.0, 1.0, orig.width, orig.height)
shift_down = PointResize(orig.width, orig.height, 0.0, -1.0, orig.width, orig.height)
blend_up = Merge(orig, shift_down, strength)
blend_down = Merge(orig, shift_up, strength)
Merge(blend_up, blend_down, 0.50)
AssumeFieldBased()
Weave()
flossy_cake
10th March 2023, 10:58
I see QTGMC has a ton of parameters that can be fine tuned - does anyone know which ones might affect moire? I'm talking about this sort of thing: https://imgsli.com/MTYxMTM3 (look at her left sleeve... it's more noticeable in motion)
Tried playing with some of the nnedi3 search radius params without success. Here is the source clip: https://drive.google.com/file/d/15UXCxDS1mE70tVjDOkvRsFyhFT20dswA/view?usp=sharing
lollo2
10th March 2023, 12:34
I see the "moire effect" also on the original video, at least using FFMpeg2 as filter source: https://imgsli.com/MTYxMTYx
QTGMC extends it to more areas / frames
flossy_cake
10th March 2023, 14:10
I see the "moire effect" also on the original video, at least using FFMpeg2 as filter source: https://imgsli.com/MTYxMTYx
QTGMC extends it to more areas / frames
It looks like you are comparing it with a combed frame, which of course will have those kinds of artefacts. For 3:2 video you will have 3 progressive frames followed by 2 combed frames, or turn them all into progressive frames with TFM(PP=0).
And yes I do acknowledge that if we interpolate fields to progressive frames with Bob() or bwdif() there will be moire artefacts too, but they are a lot less intense than QTGMC. Probably because QTGMC is trying really hard to make these smooth antialiased lines everywhere so that just naturally results in more contiguous moire bands and I'm not sure there is any solution to that.
lollo2
10th March 2023, 14:52
Probably because QTGMC is trying really hard to make these smooth antialiased lines everywhere so that just naturally results in more contiguous moire bands and I'm not sure there is any solution to that.
I agree, and I do not see a simple solution rather than playing with QTGMC parameters :(
coolgit
10th March 2023, 15:23
I see QTGMC has a ton of parameters that can be fine tuned - does anyone know which ones might affect moire? I'm talking about this sort of thing: https://imgsli.com/MTYxMTM3 (look at her left sleeve... it's more noticeable in motion)
Tried playing with some of the nnedi3 search radius params without success. Here is the source clip: https://drive.google.com/file/d/15UXCxDS1mE70tVjDOkvRsFyhFT20dswA/view?usp=sharing
Try turning off QTGMC parameters to off, one by one until there is no moire.
poisondeathray
10th March 2023, 15:51
And yes I do acknowledge that if we interpolate fields to progressive frames with Bob() or bwdif() there will be moire artefacts too, but they are a lot less intense than QTGMC. Probably because QTGMC is trying really hard to make these smooth antialiased lines everywhere so that just naturally results in more contiguous moire bands and I'm not sure there is any solution to that.
bwdif looks pretty bad and intense in terms of moire too. That's why you shouldn't deinterlace progressive material . I know this series has other problems in some scenes, but IVTC with TFM(pp=0) looks better
For me, the moire is very distracting ; more distracting than other artifacts
flossy_cake
11th March 2023, 01:10
bwdif looks pretty bad and intense in terms of moire too.
Yes however I find the severity is lower with bwdif, maybe because I am using thr=2 which requires more motion before switching from weave to bob (default is thr=0, higher number = more weaving, but potentially more combing artefacts).
Also make sure you have the latest version of bwdif as that clip I uploaded is BFF and there was a recent bugfix for BFF video: https://github.com/Asd-g/AviSynth-BWDIF/issues/5#issuecomment-1407702275
That's why you shouldn't deinterlace progressive material . I know this series has other problems in some scenes, but IVTC with TFM(pp=0) looks better
Oh I know. The only reason I'm not using IVTC is because this particular DVD release of this show has this field alignment issue and I'm trying to get a smoothing effect to reduce it, which QTGMC seems to provide. I can smooth it by using the deflicker filter instead, but then image is quite soft, whereas QTGMC smooths but also maintains sharpness, but then that extra sharpness seems to come at the cost of moire.
imo bwdif(field=-2, thr=2, pass=true, edeint=nnedi3(field=-2)) is quite a bit superior to QTGMC, and very cheap on the CPU. I think some sources look better without the edeint param tho, eg. if the source already has antialiasing baked into it, then the nnedi3 pixels just make it look a bit softer. But for very sharp unfiltered 480i/576i then I would say nnedi3 pixels look subjectively "better".
coolgit
12th March 2023, 14:29
I had this before and rechecked what I did to solve it.
InputType=0 or 2 or 3 created moire but InputType=1 was superb.
I used this:- QTGMC(preset="Medium", InputType=1, sourceMatch=3, sharpness=0.2, tr2=2, ediThreads=8)
Filters like MAA2, DAA, HQDeringmod() made it slightly worse and Sangnom2 created moire as same as InputType=0 or 2 or 3
flossy_cake
13th March 2023, 03:33
I had this before and rechecked what I did to solve it.
InputType=0 or 2 or 3 created moire but InputType=1 was superb.
I used this:- QTGMC(preset="Medium", InputType=1, sourceMatch=3, sharpness=0.2, tr2=2, ediThreads=8)
Filters like MAA2, DAA, HQDeringmod() made it slightly worse and Sangnom2 created moire as same as InputType=0 or 2 or 3
Thanks for that.
It seems that with InputType=1 there is no deinterlacing done, so we must feed it progressive frames with TFM(PP=0).TDecimate() beforehand. So InputType>0 is really just a "repair pixels" mode for progressive frames - that's useful for me as I want to repair the field alignment issue mentioned in Babylon 5.
I found that InputType=1 would not repair the field alignment issue at all, but InputType=2/3 does repair it (but SourceMatch must by >0 for it to work).
But the downside is I am seeing shimmer/flicker on moving pixels (like you would get with mocomp deinterlacing - moving parts of the image dropping to half vertical res) and there is still some moire on her sleeve that the simple nnedi3 blend solution doesn't have:
https://imgsli.com/MTYxODI2
https://imgsli.com/MTYxODI3
Again for context: the source video has field alignment issue and the whole purpose of using QTGMC was only to repair the field alignment issue without softening the picture too much and without introducing significant moire artefacts.
coolgit
18th March 2023, 15:46
TDeint and eedi filters creates moire. Also when using pel or subpel parameters. ie. pel=1 or 2 or 4, avoid using pel=1 as it creates slight moire. Use pel=2 is best.
You mentioned Babylon 5, done that. Most of the frames are progressive according to TFM. Interlaced is common on space scenes, badly out of focus and damage scenes - generally have bigger black borders compare to progressive live scenes. Use TFM then QTGMC.
flossy_cake
20th March 2023, 12:24
Does anyone have any tips for the best settings when using QTGMC only for interpolated pixels, like eg. bwdif(edeint=qtgmc) or tdeint(edeint=qtgmc).
The best I've gotten so far is this:
LWLibavVideoSource("c:\480i 3-2.mkv", stream_index=-1, repeat=true, cache=true)
propDelete("_FieldBased").bwdif(field=-2, thr=2, edeint=QTGMC(preset="slow", Sharpness=0.0, SrchClipPP=0, Rep0=1))
Comparison vs without those last 3 params: https://imgsli.com/MTYzMzg0
The issue appears to be that QTGMC pixels are so different from original pixels, that using them as interpolated pixels is risky because they don't necessarily weave very nicely with original pixels, so you can get this aliasing/mice teeth effect. But those last 3 params seem to be mitigating it quite a bit, not sure why.
edit: for reference these (https://i2.lensdump.com/i/Teu4b2.png) are the pixels being interpolated, shown by bwdif(debug=true). I believe dark green means weave, the others like light green, pink etc. are interpolated, i.e swapped/blended for QTGMC pixels.
lollo2
20th March 2023, 19:32
Not sure if it helps, but a setting trying to force QTGMC to "retain" original look can be something like:
QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", sourcematch=3, tr1=2, tr2=1, NoiseTR=2, sharpness=0.1)
flossy_cake
20th March 2023, 22:24
Ah yes, the source matching mode, also with lossless=1 setting. It definitely helps, but the performance penalty is quite high - precludes realtime use for me.
With stock settings I am surprised to find QTGMC is fast enough to run in realtime on "slow" and "slower". I'm seriously considering using it now for watching older DVDs that don't detelecine so well (dodgy ones with lots of weird edits, cadence breaks, video sections spliced in, etc.). The look of the QTGMC image can be stunning at times, very smooth almost artificial and dreamlike, but not in a bad way. I love that it produces 60p output so the frame pacing is perfect - all those 90's CGI and opening sequences animating perfectly how it was meant to look. Of course this comes at a price - not full 480p res, and some moire artefacts on stippled patterns. But God damn it looks really good at times. There's a certain softness and smoothness to the image.
flossy_cake
25th March 2023, 21:11
I am astonished to find that QTGMC also cleans up analogue dot crawl and rainbows better than any of the others dedicated filters like DeDot, TComb and DotKill.
After playing around for a couple of hours, DeDot and TComb seem to only work on static images - anything that moves still has dotcrawl on it. For animation this is quite noticeable. DotKillZ seems to work on moving objects but only treats every 2nd frame (and it says so in the wiki as well, I've no idea if this can be worked around by somehow stacking up 2 offset clips and interleaving them - I tried without success - just got blended frames coming out).
But QTGMC comes along and filters it out perfectly, and doesn't even mention it in the wiki.
flossy_cake
27th March 2023, 13:10
There is something weird that QTGMC does with 2:2 and 3:2 cadence video - it produces a geometric "warbling" on edges of moving objects. Seems to be something to do with the motion analysis part of QTGMC. If I step through each frame of the 60p output, rocking back and forth +/- 1 frame (field in the source) the shapes of objects are quite different between the two fields. Like a circle will be warbling slightly into an ellipse. At normal playback speed this warbling is unnoticeable. But it does seems to make very slow moving objects appear to have soap opera effect. It's like those tiny geometric distortions trick my brain into thinking there was a whole new intermediate frame in there, and it looks a bit like soap opera effect. It's extremely mild though, I'd imagine most people wouldn't notice it at all.
edit: here's (https://lensdump.com/i/Tonlzi) an animated png showing it. The video source is 480i 3:2 TFF. The 3 images you're seeing are all from the 3 sequence in 3:2, so they all originate from the same progressive frame, yet it appears as though there are 3 separate images with motion. Notice the changing shape of the window skirting. Weirdly this is totally unnoticeable when played back at normal speed, so luckily it's not a dealbreaker as I otherwise love this plugin for lower quality sources.
flossy_cake
28th March 2023, 18:32
bwdif looks pretty bad and intense in terms of moire too.
This might be superior to QTGMC alone - seems to resolve more resolution with less moire:
# weave static parts of image, nnedi3 interpolation on changing parts
propDelete("_FieldBased").bwdif(field=-2, thr=2, edeint=nnedi3(field=-2))
# QTGMC "progressive repair" mode to remove shimmering, aliasing & moire on changing pixels:
cores=4
QTGMC(InputType=1, preset="slow", Sharpness=1.0, FPSDivisor=1, EdiThreads=cores/2)
Prefetch(cores)
Fast enough for realtime use too :eek:
Downsides are QTGMC suppresses film grain, and the soap opera effect on very small movements of 2:2 or 3:2 cadence.
edit: test clip - https://drive.google.com/file/d/1WfW3yXmGhIvUCiexQGYD18gSiXRe2bze/view?usp=share_link
Note that 1px patterns are fully resolved (weaved) while motion (like the glasses frames) get the QTGMC smoothing - best of both worlds?
kolak
28th March 2023, 19:38
Why would you deinterlace source with 3:2 pulldown though?
Remove pulldown and you get "best" result possible.
flossy_cake
28th March 2023, 20:38
Why would you deinterlace source with 3:2 pulldown though?
If the source is clean and good 3:2 with minimal cadence breaks, yes absolutely TFM.TDecimate all the way.
But I've been buying a lot of DVDs of older TV shows lately and many are using multiple cadences (mixture of 3:2, 2:2 and 1:1 sections) have too much compression noise, rainbows, dotcrawl, field alignment issue etc. It's a nice option to just throw the deinterlacer at it and get a nice perfectly frame paced 60p with high quality antialiasing and smoothing. Solve all the issues in 1 hit.
Especially with the frame pacing, I spent days tuning my display modes in CRU to get no dropped frames only to end up with 41ms dropped frames here and there due to occasional cadence breaks in the source.
Even with a "good" source you will still be needing to handle the odd combed frame here or there and it makes those frames look nicer too so you don't have to worry so much about the false positives of combed frame detection
TFM(mode=0, slow=2, scthresh=100, PP=3, cthresh=9, MI=96,
\ clip2=propDelete("_FieldBased").bwdif(field=-1, thr=2, edeint=nnedi3(field=-1)))
TDecimate(mode=0, cycleR=1, cycle=5, hybrid=1, viddetect=2, vidthresh=4.5,
\ denoise=true, chroma=false, hint=false)
QTGMC(InputType=1, preset="slow", FPSDivisor=1, EdiThreads=cores/2, Sharpness=1.0)
Prefetch(cores)
flossy_cake
5th April 2023, 03:31
Does anyone know if it's possible to completely disable motion vectors in QTGMC? I think they are responsible for (1) geometric warbling and (2) soap opera effect on small movements, when playing 2:2 or 3:2 cadence video.
I am not sure if motion vectors are needed for other stuff QTGMC does, like shimmer reduction etc., so maybe my request is unreasonable.
I can avoid the issue by outputting half frame rate with FPSDivisor=2. But I want full frame rate, not half.
Maybe something in MVTools can be turned off?
edit: Rep0=13 seems to suppress the effect:
Scene 1 (slow camera pan): default (https://lensdump.com/i/Tonlzi) , Rep0=13 (https://lensdump.com/i/TfLIqo)
Scene 2 (medium camera pan): default (https://lensdump.com/i/TfLVYF) , Rep0=13 (https://lensdump.com/i/TfLd23)
Even though there is still a fair bit of geometric distortion, my brain cannot detect any soap opera effect from it on small movements, so that issue is solved.
I still don't know if the distortion is low enough to not trick TDecimate into thinking there was a whole new frame there.
edit: well here is what I consider to be the best deinterlacing mode in Avisynth. I reckon it gives TIVTC a run for its money, and is fast enough for real time use:
propdelete("_FieldBased").bwdif(field=-2, thr=2, edeint=nnedi3(field=-2))
QTGMC(InputType=1, preset="slow", Sharpness=1.0, Rep0=13, Border=true, EdiThreads=cores/2)
Prefetch(cores)
I did find that with the new Rep0=13 setting, there are some high frequency rainbow/dotcrawl patterns that don't get smoothed as well as the default Rep0 setting, but that is a price I am willing to pay.
flossy_cake
19th May 2023, 16:46
What does QTGMC stand for?
anton_foy
19th May 2023, 16:50
What does QTGMC stand for?
Quick Temporal Gauss Motion Compensation?
Yes. Once upon a time, Didée modified TempGaussMC (http://avisynth.nl/index.php/TempGaussMC).
Citaln
5th June 2023, 10:16
I had some border problems that took me quite a while to troubleshoot. I thought I had someone misaligned the fields on the first/last lines only. I was using border=true and I really don't understand why it does what it does, as an example:
White = BlankClip(length=1,width=40,height=160,color=$FFFFFF)
Black = BlankClip(length=1,width=40,height=160,color=$000000)
BlankClip(length=1,width=40,height=160,color=$FFFFFF)
StackHorizontal(Last,Black)
StackHorizontal(Last,Black)
Frame1 = StackHorizontal(Last,Black)
BlankClip(length=1,width=40,height=160,color=$000000)
StackHorizontal(Last,White)
StackHorizontal(Last,Black)
Frame2 = StackHorizontal(Last,Black)
BlankClip(length=1,width=40,height=160,color=$000000)
StackHorizontal(Last,Black)
StackHorizontal(Last,White)
Frame3 = StackHorizontal(Last,Black)
BlankClip(length=1,width=40,height=160,color=$000000)
StackHorizontal(Last,Black)
StackHorizontal(Last,Black)
Frame4 = StackHorizontal(Last,White)
Interleave(Frame1,Frame2,Frame3,Frame4)
SeparateFields().SelectEvery(4,0,3).Weave()
converttoYV16
qtgmc(border=true)
With border true, the bottom and top lines are just plain 50% of the previous or next field. Is this correct/intended?
guest
7th June 2023, 10:02
[deleted - redundant]
Hey flossy, if you want to actually delete a message simply go into Edit then in the bottom right corner there's Delete option then you go over to the bottom left corner Delete this message, and then go back over to the right corner and delete it.
Citaln
9th June 2023, 07:30
Trying to post again, since I'm not sure if my post got lost in the moderation queue. I have some edge artifacts with QTMC that I tried to solve with the border option and I just don't understand what border does or why; it seems like the top/bottom rows are 50% of the previous field. Is that intentional? For example:
White = BlankClip(length=1,width=40,height=160,color=$FFFFFF)
Black = BlankClip(length=1,width=40,height=160,color=$000000)
BlankClip(length=1,width=40,height=160,color=$FFFFFF)
StackHorizontal(Last,Black)
StackHorizontal(Last,Black)
Frame1 = StackHorizontal(Last,Black)
BlankClip(length=1,width=40,height=160,color=$000000)
StackHorizontal(Last,White)
StackHorizontal(Last,Black)
Frame2 = StackHorizontal(Last,Black)
BlankClip(length=1,width=40,height=160,color=$000000)
StackHorizontal(Last,Black)
StackHorizontal(Last,White)
Frame3 = StackHorizontal(Last,Black)
BlankClip(length=1,width=40,height=160,color=$000000)
StackHorizontal(Last,Black)
StackHorizontal(Last,Black)
Frame4 = StackHorizontal(Last,White)
Interleave(Frame1,Frame2,Frame3,Frame4)
SeparateFields().SelectEvery(4,0,3).Weave()
converttoYV16
qtgmc(border=true)
With border=false, deinterlace is done correctly, with border=true I get problem mentioned, which is on the horizontal axis so why would a vertical padding do that?
flossy_cake
28th June 2023, 07:31
Hey flossy, if you want to actually delete a message simply go into Edit then in the bottom right corner there's Delete option then you go over to the bottom left corner Delete this message, and then go back over to the right corner and delete it.
Thanks - done.
On a separate note I was wondering if anyone familiar with the QTGMC source code could say definitively whether the EdiThreads parameter is used when InputType==1?
Looking at QTGMC.avsi it seems like it just returns the input clip without doing any EDI and thus not using the EdiThreads param:
function QTGMC_Interpolate( clip Input, int InputType, string EdiMode, int NNSize, int NNeurons, int EdiQual, int EdiMaxD, int EdiThreads, clip "Fallback", string "ChromaEdi" )
{
interp = (InputType == 1) ? Input :
In this case I'm curious to know what InputType==1 is actually doing? I thought it still needed to blend or compare the input clip with EDI clip to know where to smooth edges?
:thanks:
With border true, the bottom and top lines are just plain 50% of the previous or next field. Is this correct/intended?
I think so, because QTGMC uses temporal filtering that blends with previous/next frame as part of its antialiasing/deshimmering magic. So I think some of that blending is bleeding through into the previous/next frame at the top and bottom where it was blanked off.
Perhaps what you could do instead is blank off the top and bottom pixel rows with Letterbox(1, 1, 0, 0) and then simply copy paste the neighbouring row into it. Although I am not sure how to do that 2nd step - I usually just zoom the image in by that many pixels, but that may not be desirable if you want to preserve the pixel alignment...
/*------------------ Vertical zoom ------------------*/
zoomY = 2.0 # pixels to zoom in vertically
Spline36Resize(width, height,
\ zoomY*(float(width)/float(height)), /*left*/
\ zoomY, /*top*/
\ -zoomY*(float(width)/float(height)), /*right*/
\ -zoomY) /*bottom*/
/*----------------- Horizontal zoom -----------------*/
zoomX = 2.0 # pixels to zoom in horizontally
Spline36Resize(width, height,
\ zoomX, /*left*/
\ zoomX*(float(height)/float(width)), /*top*/
\ -zoomX, /*right*/
\ -zoomX*(float(height)/float(width))) /*bottom*/
BilboFett
28th July 2023, 08:53
new Avisynth+ 3.7.3. broke my QTGMC.
Everything is in their proper folders and paths, I double checked.
Even after uninstalling, rebooting, reinstalling 3.7.2, rebooting, ..I still get this message.
https://i.imgur.com/wDoKd2m.jpg
I even tried importing the QTGMC.AVSI file
Everything worked fine before the upgrade.
It still works fine inside Vapoursynth imported into Avisynth.
Nothing else has changed on this system.
Please help, TIA
(cross-posting to Avisynth thread)
FranceBB
28th July 2023, 09:37
@BilboFett... it's probably something related to your environment or your build.
https://i.imgur.com/1VMjFhK.png
kedautinh12
28th July 2023, 09:44
Or conflict with 2 or more function name QTGMC in your same folder plugins. Check with avsmeter
If importing file also not work - you can copy and paste QTGMC function to the beginning of the script manually.
LigH
28th July 2023, 20:53
Besides, DirectShowSource is not the source filter I would recommend primarily for MKV files...
But yes, first test both the general environment and the processing of this script using AVSMeter.
BilboFett
29th July 2023, 03:04
If importing file also not work - you can copy and paste QTGMC function to the beginning of the script manually.
do you see the screenshot? I'm not sure what you're telling me to do.. is the function of QTGMC not there in my script, near the beginning? I can't have it as the very 1st line, of course
BilboFett
29th July 2023, 03:05
Or conflict with 2 or more function name QTGMC in your same folder plugins. Check with avsmeter
nope, only one function named QTGMC inside only one folder. Same as before when it was working prior to the upgrade.
BilboFett
29th July 2023, 03:07
Besides, DirectShowSource is not the source filter I would recommend primarily for MKV files...
But yes, first test both the general environment and the processing of this script using AVSMeter.
What would you recommend for source filter? FFVideoSource?
I'll use Avsmeter and report back
kedautinh12
29th July 2023, 03:12
He said copy all of text from qtgmc.avsi to beginning of the script. After use your scripts below
kedautinh12
29th July 2023, 03:13
nope, only one function named QTGMC inside only one folder. Same as before when it was working prior to the upgrade.
You need check with Avsmeter for sure. If two or more duplicate functions name, Avsmeter will announced you
kedautinh12
29th July 2023, 03:14
What would you recommend for source filter? FFVideoSource?
I'll use Avsmeter and report back
Ffms2, L-SMASH-Works or DGindexNV will better
BilboFett
29th July 2023, 03:22
You need check with Avsmeter for sure. If two or more duplicate functions name, Avsmeter will announced you
There is only one function named, only one QTGMC in one single folder, just as before the upgrade when it worked fine.
real.finder
29th July 2023, 05:15
There is only one function named, only one QTGMC in one single folder, just as before the upgrade when it worked fine.
try with simple QTGMC() (without any parameters)
LigH
29th July 2023, 14:49
I found a clip QTGMC has trouble with: It works nicely when a diagonal line is rather vertical (>50°), but when the camera turns so that this line becomes rather horizontal (<40°), the result is very jagged. Are there any parameters which can help avoiding that?
I tried different presets, tested with different SourceMatch and Lossless parameters (which are supposed to help against aliasing). Did not yet find a cure against a gentle slope being turned into a sawtooth line; steep slopes are straightened pretty well though.
The unprocessed material looks better in this scene than the deinterlaced result by QTGMC. Is there a threshold to keep more original material when only little motion is detected?
__
Question cancelled. Apparently the "bad scene" is progressive, between interlaced scenes.
flossy_cake
30th July 2023, 05:46
Question cancelled. Apparently the "bad scene" is progressive, between interlaced scenes.
Try InputType=1 which is for antialiasing progressive material, check out this demo: https://drive.google.com/file/d/1D4PEbuTlkjxLRacP2cd8XB0k3Mbi2ZLB/view?usp=sharing
Make sure to download the file and play it in your media player not in web browser which is Google's transcode
LigH
30th July 2023, 09:45
Good to know for the next time; but this material revealed several more issues, so I decided it's "beyond repair".
BilboFett
2nd August 2023, 07:46
try with simple QTGMC() (without any parameters)
same thing; "there is no function known as QTGMC"
BilboFett
2nd August 2023, 07:49
He said copy all of text from qtgmc.avsi to beginning of the script. After use your scripts below
did that, same answer:
"there is no function known as QTGMC"; but I found the error, it cannot load ANY video files, using ANY source loader
AVSMeter 3.0.9.0 (x86), (c) Groucho2004, 2012-2021
AviSynth+ 3.7.3 (r4003, 3.7, i386) (3.7.3.0)
DirectShowSource: Could not open as video or audio.
Video returned: "DirectShowSource: RenderFile, the filter graph manager won't talk to me"
Audio returned: "DirectShowSource: RenderFile, the filter graph manager won't talk to me"
DTL
2nd August 2023, 11:26
Maybe try to use a simple internal source first like BlankClip() instead of a complex DirectShowSource. In some bad cases when AVS+ tries to load DirectShowSource in some unknown Windows environment it may damage some internal memory of AVS+ process and cause some never known issues.
To make bugs reproducible it is better to use as small a script as possible and a simple internal source like ColorBars() or BlankClip().
DirectShowSource may depend on Windows SDK and Microsoft very frequently update it and the used version of Windows SDK (including DirectX SDK now) for building of DirectShowSource for 3.7.3 release may have its internal issues. Also it is good to be sure the used directshowsource.dll updated from 3.7.3 release.
kedautinh12
2nd August 2023, 11:40
Why don't change to L-SMASH-Works, FFMS2, DGindexNV will better than DirrectShowSource
BilboFett
2nd August 2023, 14:10
Why don't change to L-SMASH-Works, FFMS2, DGindexNV will better than DirrectShowSource
Because I was using DirectShowSource just fine for the past 7 years on multiple computers, installs and OS's and its always worked fine up until this latest version of avisynth?
And, FFVideoSource also cannot load any videos, same error.
For troubleshooting purposes, I'll try L-Smash-Works, FFMS2 and DGindexNV
UPDATE: Tried FFMS2 (freshly installed, checked the DLLs just now):
"AVSMeter 3.0.9.0 (x86), (c) Groucho2004, 2012-2021
AviSynth+ 3.7.3 (r4003, 3.7, i386) (3.7.3.0)
Script error: There is no function named 'FFMS2'."
BilboFett
2nd August 2023, 14:12
Maybe try to use a simple internal source first like BlankClip() instead of a complex DirectShowSource. In some bad cases when AVS+ tries to load DirectShowSource in some unknown Windows environment it may damage some internal memory of AVS+ process and cause some never known issues.
To make bugs reproducible it is better to use as small a script as possible and a simple internal source like ColorBars() or BlankClip().
DirectShowSource may depend on Windows SDK and Microsoft very frequently update it and the used version of Windows SDK (including DirectX SDK now) for building of DirectShowSource for 3.7.3 release may have its internal issues. Also it is good to be sure the used directshowsource.dll updated from 3.7.3 release.
ColorBars() and BlankClip() both work.
All the *.DLLs (like Directshowsource) are dated 15th of July, from the latest version of Avisynth+
DTL
2nd August 2023, 17:25
"ColorBars() and BlankClip() both work."
So with simple script like
ColorBars()
QTGMC()
It can find QTGMC from imported .avsi and all run OK ? And if replace ColorBars() with any (external) mediafile load function it fails to load even external file load function ?
If try to load a source with internal AVISource() ?
"AviSynth+ 3.7.3 (r4003, 3.7, i386) (3.7.3.0)
Script error: There is no function named 'FFMS2'.""
Maybe it is a general AVS+ 3.7.3 issue and it needs to be posted to the main AVS+ development thread ? Try to make the smallest script example to reproduce errors. Do you load ffms2.dll with LoadPlugin() ?
BilboFett
3rd August 2023, 04:01
"ColorBars() and BlankClip() both work."
So with simple script like
ColorBars()
QTGMC()
It can find QTGMC from imported .avsi and all run OK ? And if replace ColorBars() with any (external) mediafile load function it fails to load even external file load function ?
If try to load a source with internal AVISource() ?
"AviSynth+ 3.7.3 (r4003, 3.7, i386) (3.7.3.0)
Script error: There is no function named 'FFMS2'.""
Maybe it is a general AVS+ 3.7.3 issue and it needs to be posted to the main AVS+ development thread ? Try to make the smallest script example to reproduce errors. Do you load ffms2.dll with LoadPlugin() ?
No, it cannot find QTGMC.
They deleted my post on the Avisynth thread saying its clearly a QTGMC issue.
I will try AVISource() next
kedautinh12
3rd August 2023, 04:11
No, it cannot find QTGMC.
They deleted my post on the Avisynth thread saying its clearly a QTGMC issue.
I will try AVISource() next
They not delete, mod just trans your comment to here cause everyone don't have your issue so it't belong to QTGMC post
StvG
3rd August 2023, 09:43
Either redistributable runtimes are missing or avs+ doesn't look at the right path to autoload the plugins.
@BilboFett, load explicitly ffms2 by adding LoadPlugin("path_to_ffms2/ffms2.dll") at the top of the script and just add ffvideosource("video_file"). If you still get error "no function...", then you need redistributable runtimes. If the video loads properly, then you need to correct the default plugins path.
BilboFett
4th August 2023, 01:17
Either redistributable runtimes are missing or avs+ doesn't look at the right path to autoload the plugins.
@BilboFett, load explicitly ffms2 by adding LoadPlugin("path_to_ffms2/ffms2.dll") at the top of the script and just add ffvideosource("video_file"). If you still get error "no function...", then you need redistributable runtimes. If the video loads properly, then you need to correct the default plugins path.
that worked, so I don't need redistributable runtimes.
Something really got messed up w/ my autoloadplugins path entries in the Windows registry. The HKLocalMachine entries are now default but the HKCU entries for Avisynth (and all Avisynth) are missing.. ?!
When I've specified these lines at the top of my test scripts:
ClearAutoloadDirs()
AddAutoloadDir("C:\Program Files (x86)\AviSynth+\plugins64+")
it *sorta helps, but if I clear it out, it again cannot find ffvideosource(ffms2, etc.)
Avsmeter still thinks I have no function known as QTGMC, even if I import it, even if I correctly set folder paths and retry.
Something strange also happened during the Avisynth 3.7+ install that messed w/ my plugins (especially QTGMC) in my folders. The folders are so disconbubulated now I'm not sure what's correct and what should be in the 32-bit folders, the 64-bit, and the plus. I wish there was a way to right click and immediately see if something is 32-bit or 64-bit, and + only, or just "regular Avisynth".
I'm afraid I'm going to have to completely uninstall everything for Avisynth, delete ALL plugin folders, make no backups, reboot, check the registry to make sure no traces are left, then install from scratch as if Avisynth never touched this computer, then slowly build my plugins folders back, (especially QTGMC) one by one, checking all dependencies. What a pain.
Unless someone else has any ideas?
*P.S. IMPORTANT:
Do I need QTGMC.avsi and QTGMC+.avsi (different sizes and dates) in every plugin folder, and Zs_RF_Shared.avsi as well? Or which folders should they not be in?
I've never called "QTGMC+()" as a function in a *.avs script, but when I did, this time avsmeter said "syntax error". As soon as I removed the "+" sign on the name, it again said "no function known as QTGMC"
Avisynth Info Tool 32-bit test report:
"
[Plugin errors/warnings]
________________________________________________________________________________
Buffer overflow________________________________________________________________________________
LoadPlugin: ƒvƒ‰ƒOƒCƒ“�‰Šú‰»ƒGƒ‰�[
LoadPlugin: ƒvƒ‰ƒOƒCƒ““Ç�žƒGƒ‰�[
Dependencies that could not be loaded:
VSScript.dll
_____________________________________________________________"
x64 test report:
"[Plugin errors/warnings]
_____________________________________________________________
Function duplicates:
"ex_Bob" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC+.avsi"
"ex_Bob" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi"
"ex_ReduceFlicker" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC+.avsi"
"ex_ReduceFlicker" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi"
"ex_vinverse" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC+.avsi"
"ex_vinverse" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi"
"QTGMCp_ApplySourceMatch" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC+.avsi"
"QTGMCp_ApplySourceMatch" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi"
"QTGMCp_Generate2ndFieldNoise" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC+.avsi"
"QTGMCp_Generate2ndFieldNoise" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi"
"QTGMCp_GetUserGlobal" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC+.avsi"
"QTGMCp_GetUserGlobal" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi"
"QTGMCp_Interpolate" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC+.avsi"
"QTGMCp_Interpolate" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi"
"QTGMCp_KeepOnlyBobShimmerFixes" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC+.avsi"
"QTGMCp_KeepOnlyBobShimmerFixes" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi"
"QTGMCp_MakeLossless" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC+.avsi"
"QTGMCp_MakeLossless" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi"
"QTGMCp_SetUserGlobal" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC+.avsi"
"QTGMCp_SetUserGlobal" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi"
"QTGMCp" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC+.avsi"
"QTGMCp" : "C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi"
"undefined" : "[InternalFunction]"
"Undefined" : "C:\Program Files (x86)\AviSynth+\plugins64+\Zs_RF_Shared.avsi"
____________________________________________________________"
Thanks for all the help.
Emulgator
4th August 2023, 01:46
You might want to use
https://forum.doom9.org/showthread.php?t=172124
and look at the first and last page.
BilboFett
4th August 2023, 01:56
You might want to use
https://forum.doom9.org/showthread.php?t=172124
and look at the first and last page.
I've used it before, I hope it could fix this issue, but I'm doubtful.
I'll give it a shot.
Before I do this, anyone else want to comment about what QTGMC related files/plugins/scripts need to be in exactly which folders? I want to do 64-bit+
Emulgator
4th August 2023, 02:04
The Groucho will allow to specify your own paths.
Have as many Avisynth installations as you like, (well 10 ATM, but you can extend the given principle), and where you like.
kedautinh12
4th August 2023, 04:02
Only choose one QTGMC+ or QTGMC, i think you use 2 ver from Dogway ver. Dogway was updated QTGMC to QTGMC+, you need delete QTGMC.avsi and change your script from QTGMC() to QTGMCp(). About runtime, you can install this one
https://github.com/abbodi1406/vcredist/releases
BilboFett
5th August 2023, 02:23
Got it fixed!
1. Uninstalled all versions, deleted all registry entries, deleted the plugins folder.
2. Some combination of installing/uninstalling/rebooting using both the Universal Avisynth Installer AND the official release build got everything reset and cleaned up properly. Just uninstalling-then-reinstalling the main release didn't do it.
3. Slowly started dropping in plugins to the 64+ plugins folder, one by one, then trying QTGMC until all dependencies were linked and in the same folder (the x64+ plugins folder, just the one. I put nothing in the regular/32-bit plugins folders.)
4. The plugins now autoload (as they should), I don't have to manually load or specify paths.
Appreciate all the help.
flossy_cake
11th December 2023, 20:08
I just can't get my head around how good QTGMC's progressive repair modes are at making DVD's look cleaner and less compressed.
Animated png:
https://a.l3n.co/i/syjrSr.png
I am totally addicted to running all my DVDs through InputType=1 + TR2=1!
For even stronger antialiasing InputType=2 really smooths out any stair stepping.
The only thing I can't decide on is what QTGMC Sharpness setting to use - the default is 1.0 but in an A-B comparison I can see that is sharpening the image beyond the original image sharpness. So I think 1.0 is overcompensating a bit.
For now I'm using Sharpness=0.2 which the documentation references as the default value for it's "lossless" mode. Actually 0.0 would be ideal but subjectively looks slightly softer than the original unprocessed image, so I go with 0.2 for now.
Just to clarify my above comments are in relation to QTGMC's progressive repair modes (InputType=1/2), not it's default mode as a deinterlacer (InputType=0).
I use a script that gives me the best results when improving a VHS image (progressive).
QTGMC(preset="slow",InputType=1,TR2=3)
FFT3Dfilter() # better but much slower dfttest()
As I see, QTGMC also has a denoising option, and shouldn't ff3dfilter be called already during executing QTGMC?
1. With what parameters should I call QTGMC to get the same result as above? (The instructions are quite enigmatic from a technical point of view)
2. Will it be faster? :)
kedautinh12
4th March 2024, 15:42
I use a script that gives me the best results when improving a VHS image (progressive).
QTGMC(preset="slow",InputType=1,TR2=3)
FFT3Dfilter() # better but much slower dfttest()
As I see, QTGMC also has a denoising option, and shouldn't ff3dfilter be called when executing QTGMC?
1. With what parameters should I call QTGMC to get the same result as above? (The instructions are quite enigmatic from a technical point of view)
2. Will it be faster? :)
SMDegrain or TemporalDegrain2
SMDegrain or TemporalDegrain2
Yes, TD2 gives me good results, but only in combination with QTGMC. And then the script is very slow. FFT3DFilter is a good compromise.
lollo2
4th March 2024, 17:52
There has been in the past an attempt to merge QTGMC and TD2, because the second use the motion vectors search from the first: https://forum.doom9.org/showthread.php?t=182343
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.