View Full Version : Dogway's Filters Packs
salvo00786
26th February 2022, 17:48
Ok, I downloaded the new file, but same error. I use Ripbot not Avisynth. Can you help me on Ripbot?
Dogway
26th February 2022, 18:22
It uses AviSynth+ as the backend, but it is still using the version from one year ago.
Simply install latest AVS+ version or replace by hand "%PROGRAMFILES%\AviSynth+".
I also modified the RipBot installer so simply save it to the extracted folder of "Avisynth_3.7.2_20220208_test3.7z" and execute the file, to let it do automatically.
modified install.cmd:
@ECHO OFF
cd /d %~dp0
ECHO AviSynth+ MT (r3622 x86/x64) Installer by Atak_Snajpera (modified)
ECHO =======================================================
SET HasAdminRights=0
FOR /F %%i IN ('WHOAMI /PRIV /NH') DO (
IF "%%i"=="SeTakeOwnershipPrivilege" SET HasAdminRights=1
)
IF NOT %HasAdminRights%==1 (
ECHO Error:No admin rights detected.
ECHO This script must be run as an Administrator.
ECHO.
GOTO END
)
if "%ProgramW6432%" == "" (
SET InstallPath="%PROGRAMFILES%\AviSynth+"
) else (
SET InstallPath="%PROGRAMFILES(x86)%\AviSynth+"
)
if "%ProgramW6432%" == "" (
xcopy "x86\plugins" "%InstallPath%\plugins+\" /Y
xcopy "x86\AviSynth.dll" "%SYSTEMROOT%\System32\" /Y
xcopy "x86\system\DevIL.dll" "%SYSTEMROOT%\System32\" /Y
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Avisynth /ve /d %InstallPath% /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Avisynth /v plugindir2_5 /d %InstallPath%\plugins /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Avisynth /v plugindir+ /d %InstallPath%\plugins+ /f
ECHO =================================================================
) else (
xcopy "x86\plugins" "%InstallPath%\plugins+\" /Y
xcopy "x64\plugins" "%InstallPath%\plugins64+\" /Y
xcopy "x64\AviSynth.dll" "%SYSTEMROOT%\System32\" /Y
xcopy "x86\AviSynth.dll" "%SYSTEMROOT%\SysWOW64\" /Y
xcopy "x64\system\DevIL.dll" "%SYSTEMROOT%\System32\" /Y
xcopy "x86\system\DevIL.dll" "%SYSTEMROOT%\SysWOW64\" /Y
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Avisynth /ve /d %InstallPath% /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Avisynth /v plugindir2_5 /d %InstallPath%\plugins64 /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Avisynth /v plugindir+ /d %InstallPath%\plugins64+ /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Avisynth /ve /d %InstallPath% /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Avisynth /v plugindir2_5 /d %InstallPath%\plugins /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Avisynth /v plugindir+ /d %InstallPath%\plugins+ /f
ECHO =================================================================
)
:END
rem pause
salvo00786
27th February 2022, 00:05
ok, thanks but:
1)When I try to install avs+ the program is in directory program files x86 and not in program files
2)I can find only 7z portable version of ripbot. Where is your modded version?
3)I downloaded Avisynth_3.7.2_20220208_test3.7z and i created install cmd with your text, but when i extract Avisynth_3.7.2_20220208_test3.7z, in the root directory of 7z, your file doesn't start
salvo00786
27th February 2022, 01:10
I tried to copy manually the x86 plugins in RipBot264v1.26.0\Tools\AviSynth\AviSynth+\plugins+ and x64 plugins in RipBot264v1.26.0\Tools\AviSynth\AviSynth+\plugins64+. The same operation in the C:\Program Files (x86)\AviSynth+ directory. Now when I try to start the script this error appear
guest
27th February 2022, 01:28
ok, thanks but:
1)When I try to install avs+ the program is in directory program files x86 and not in program files
2)I can find only 7z portable version of ripbot. Where is your modded version?
3)I downloaded Avisynth_3.7.2_20220208_test3.7z and i created install cmd with your text, but when i extract Avisynth_3.7.2_20220208_test3.7z, in the root directory of 7z, your file doesn't start
Hi salvo00786,
At last, another RipBot user :)
How long have you been using it ??
Have you "created" many scripts before ??
Why I ask is, how do you "implement" your QTGMC script ???, do you copy it into the script window of RipBot ??, it's just that without trying your script myself, I can see at least 2 major problems.
Oh, and there is an easier way of "installing" Avisynth so that RipBot can use it...
salvo00786
27th February 2022, 01:43
I haven't created many scripts before. I have user Ripbot many times but only for deinterlacing or for denoising files with KNLMEANSCL. But I have used the integrated QTGMC until now. Now i want to use the latest version. Yes, I copy the scripts under the Deinterlace section of Script Windows in Ripbot. Please tell me what are these 2 major problems and the easier way of installing avisynth so that Ripbot can use it
guest
27th February 2022, 01:49
I haven't created many scripts before. I have user Ripbot many times but only for deinterlacing or for denoising files with KNLMEANSCL. But I have used the integrated QTGMC until now. Now i want to use the latest version. Yes, I copy the scripts under the Deinterlace section of Script Windows in Ripbot. Please tell me what are these 2 major problems and the easier way of installing avisynth so that Ripbot can use it
Thanks for your quick reply...
Not sure how often you "visit" the RipBot forum, but RipBot is definitely dying a slow death, unfortunately.
Like I said, I haven't tested your script, so I don't want to say anything right now, but like I said, I can see 2 errors, but will confirm.
I don't use QTGMC much, as I have very little interlaced material to work with.
So I will see what I can come up with and get back to you either here or a PM.
salvo00786
27th February 2022, 02:16
ok, thanks
guest
27th February 2022, 02:55
ok, thanks
OK, I think I've got it sussed...
You need to be VERY, VERY particular with the "calls" within the script, meaning their EXACT location !!!
So copy this into Notepad, save as an .avs, not .txt.
#Custom
Loadplugin("%AVISYNTHPLUGINS%\dfttest\dfttest.dll") may not need this
Loadplugin("%AVISYNTHPLUGINS%\SysInfo_0129\SysInfo64.dll")
Loadplugin("%AVISYNTHPLUGINS%\vinverse\vinverse.dll")
Loadplugin("%AVISYNTHPLUGINS%\vsTCanny-1.1.5\vsTCanny.dll")
Loadplugin("%AVISYNTHPLUGINS%\RgTools\RgTools.dll")
Loadplugin("%AVISYNTHPLUGINS%\nnedi3\nnedi3.dll")
Loadplugin("%AVISYNTHPLUGINS%\masktools\masktools2.dll")
Loadplugin("%AVISYNTHPLUGINS%\mvtools\mvtools2.dll")
Import("%AVISYNTHPLUGINS%\scripts\extras\ExTools76.avs")
Import("%AVISYNTHPLUGINS%\scripts\extras\SMDegrain347d.avs")
Import("%AVISYNTHPLUGINS%\scripts\extras\Zs_RF_Shared.avs")
Import("%AVISYNTHPLUGINS%\Scripts\QTGMC.avs")
video=AssumeTFF(video).QTGMC(Preset="Medium",FPSDivisor=1)
Save it into the Custom Folder under Tools / Avisynth plugins / Scripts / Custom..
You'll have to download ExTools, SMDegrain & Zs_RF_Shared and create a new folder called extras (as shown in script)
Then from in RipBot you can just choose it from the Custom Scripts "list", check with AVSMeter.
orig
#Deinterlace
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\SysInfo0129\SysInfo64.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\vinverse\vinverse.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\vsTCanny\vsTCanny.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\RgTools\RgTools.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\nnedi3\nnedi3.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\masktools\masktools2.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\mvtools\mvtools2.dll")
Import("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\Scripts\QTGMC.avsi")
video=AssumeTFF(video).QTGMC(Preset="Medium",FPSDivisor=1)
------------------------------------------------------------
Ok, so for Avisynth, extract the "test 3" .7z with WinRar.
From there go to the x64 & x86 folders..
Copy the AviSynth.dll & DevIL.dll (from the system folder), into the x64 & x86 folders, respectively, under "Tools / Avisynth / Libraries" folder in RipBot main folder.
Then run the "install.cmd" in the main Avisynth folder, as Admin.
Good luck
guest
27th February 2022, 04:02
Error with ExTools v7.6, from v7.5, with DFTTest (for prefilter=4)
Error at Line 251 in SMDegrain v3.4 7d
pinterf
27th February 2022, 08:30
But I will wait until you add selective frameprop copy if you still plan to add it.
Yes, probably next week second half.
salvo00786
27th February 2022, 11:03
Hi...
TDS, thanks for your reply.
This is my complete script
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\vinverse\vinverse.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\SysInfo0129\SysInfo64.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\SysInfo0129\SysInfo32.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\vsTCanny\vsTCanny.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\RgTools12\RgTools.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\NNEDI309460\nnedi3.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\masktools22230\masktools2.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\mvtools2745\mvtools2.dll")
Import("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\Scripts\SMDEGRAIN347d.avsi")
Import("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\Scripts\Zs_RF_Shared1157.avsi")
Import("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\Scripts\ExTools.avsi")
Import("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\Scripts\QTGMC.avsi")
video=AssumeTFF(video).QTGMC(Preset="Slower")
I can tell you that all these strings are correct because i have all these plugin in the directories that you can see in my script.
1)I renamed vsTCanny-1.1.5 to vsTCanny, SysInfo_0129 to SysInfo0129.
2)All my scripts are in the scripts directory, and not in extra.
3)The new QTGMC in QTGMC.avsi, if I write QTGMC.avs, the program use the old QTGMC integrated.
salvo00786
27th February 2022, 11:19
Ok. Now it works. The resolutive step was the installation of the avisynth, thanks.
Another question. When I copied the dlls, for the 64bit dlls I used the dlls in the x64_CUDA_enable directory instead of the x64 directory, because I have a RTX3070 card. Is this correct?
guest
27th February 2022, 11:24
Hi...
TDS, thanks for your reply.
This is my complete script
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\vinverse\vinverse.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\SysInfo0129\SysInfo64.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\SysInfo0129\SysInfo32.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\vsTCanny\vsTCanny.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\RgTools12\RgTools.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\NNEDI309460\nnedi3.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\masktools22230\masktools2.dll")
Loadplugin("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\mvtools2745\mvtools2.dll")
Import("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\Scripts\SMDEGRAIN347d.avsi")
Import("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\Scripts\Zs_RF_Shared1157.avsi")
Import("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\Scripts\ExTools.avsi")
Import("A:\PORTABLE\RipBot264v1.26.0\Tools\AviSynth plugins\Scripts\QTGMC.avsi")
video=AssumeTFF(video).QTGMC(Preset="Slower")
I can tell you that all these strings are correct because i have all these plugin in the directories that you can see in my script.
1)I renamed vsTCanny-1.1.5 to vsTCanny, SysInfo_0129 to SysInfo0129.
2)All my scripts are in the scripts directory, and not in extra.
3)The new QTGMC in QTGMC.avsi, if I write QTGMC.avs, the program use the old QTGMC integrated.
OK, if that's how you want to have it setup, that's entirely up to you.
I use the "extra" folder, as I have added so many other scripts to RipBot, some of them have the same name, and they can't be in the same folder.
I don't use avsi, they should be avs, for RipBot, but again, if they work for you...good :)
As for QTGMC, you'll have to put it where the "old" one is, just rename the original, so that the process uses Dogway's build.
guest
27th February 2022, 11:27
Ok. Now it works. The resolutive step was the installation of the avisynth, thanks.
Another question. When I copied the dlls, for the 64bit dlls I used the dlls in the x64_CUDA_enable directory instead of the x64 directory, because I have a RTX3070 card. Is this correct?
So it obviously needed the newest version :)
I don't use the CUDA version, but if it works for you, then why not...you can always "test" the non CUDA ones.
I did ask that very same question, I'll see if I can find it, and let you know.
https://forum.doom9.org/showthread.php?p=1955585#post1955585
Dogway
27th February 2022, 15:03
Error with ExTools v7.6, from v7.5, with DFTTest (for prefilter=4)
Error at Line 251 in SMDegrain v3.4 7d
Yes, noticed yesterday, a stupid typo in ExTools, updating later today with some other features.
EDIT: Updated ExTools, besides the fix I improved ex_corner() temporal coherence for that I needed a motion mask, since I didn't want to go to the MVTools route I made a new motion mask filter called ex_occlusion() works well as a MMask replacement and it's very fast.
gispos
27th February 2022, 19:27
@Dogway, please give your versions different names than the 'original'.
For example In your version of 'QTGMC' other parameters and functions are used. And it's also kind of misleading (what am I using right now).
And also the sub functions should be renamed from QTGMC.
I also can't create a function definition in AvsPmod for two times QTGMC, so I can only ban your version completely.
As default I use the normal QTGMC, it is faster for me.
I am so cheeky:). Dogway's QTGMC renamed to ex_QTGMC, also sub functions. (2. upload)
A few places sub function rename forgotten and AvsPmod function definetion added.
https://www.mediafire.com/file/id2q3qi044qa95u/ex_QTGMC.7z/file
kedautinh12
27th February 2022, 21:04
QTGMC changed name to STGMC by real.finder. I think you need change your QTGMC to STGMC. Why you need the developer of QTGMC from 2015 like Dogway need change his QTGMC to other name?? I think the person need change QTGMC to other name is you
https://github.com/realfinder/AVS-Stuff/blob/Community/avs%202.6%20and%20up/STGMC.avsi
Dogway
27th February 2022, 22:58
@gispos what version is your 'original' QTGMC? My version is called QTGMC mod, you can name it like so since old version is outdated already (circa 2011) so I don't think there should be a name conflict. In 2012 I implemented 16-bit processing with Dither Tools and from 2015 real.finder took over, maybe you want to use STGMC (https://github.com/realfinder/AVS-Stuff/blob/Community/avs%202.6%20and%20up/STGMC.avsi)?
The main reason Expr() is slower than MaskTools is explained in this (https://forum.doom9.org/showthread.php?p=1943743#post1943743)post. The reason it's almost on par with real.finder QTGMC is because I optimized the filter to the extreme (merging expressions, wiser maths), same for LSFmod and other mods.
guest
28th February 2022, 02:13
Yes, noticed yesterday, a stupid typo in ExTools, updating later today with some other features.
EDIT: Updated ExTools, besides the fix I improved ex_corner() temporal coherence for that I needed a motion mask, since I didn't want to go to the MVTools route I made a new motion mask filter called ex_occlusion() works well as a MMask replacement and it's very fast.
Nice, fixed, thanks.
Not sure what to do with all the other options within your scripts.
Dogway
28th February 2022, 02:44
Nice, fixed, thanks.
Not sure what to do with all the other options within your scripts.
What options?
guest
28th February 2022, 03:48
What options?
Maybe "options" was the wrong term, but if I look thru all the many, many lines of code, etc, there just seems (to me) that there are other filters & codes that maybe used as a stand alone.
eg:- ex_corner() and ex_occlusion()
or are these just part of the "big picture" of the main script ??
Forgive me, this is the "noobie" in me coming out.
gispos
28th February 2022, 18:41
QTGMC changed name to STGMC by real.finder. I think you need change your QTGMC to STGMC. Why you need the developer of QTGMC from 2015 like Dogway need change his QTGMC to other name?? I think the person need change QTGMC to other name is you
https://github.com/realfinder/AVS-Stuff/blob/Community/avs%202.6%20and%20up/STGMC.avsi
@gispos what version is your 'original' QTGMC? My version is called QTGMC mod, you can name it like so since old version is outdated already (circa 2011) so I don't think there should be a name conflict. In 2012 I implemented 16-bit processing with Dither Tools and from 2015 real.finder took over, maybe you want to use STGMC (https://github.com/realfinder/AVS-Stuff/blob/Community/avs%202.6%20and%20up/STGMC.avsi)?
The main reason Expr() is slower than MaskTools is explained in this (https://forum.doom9.org/showthread.php?p=1943743#post1943743)post. The reason it's almost on par with real.finder QTGMC is because I optimized the filter to the extreme (merging expressions, wiser maths), same for LSFmod and other mods.
I'm probably behind the times. But it completely eludes me the logic.
QTGMC has been renamed to STGMC and the Dogway's full modeled version is now called QTGMC. What a mess.
I have hundreds of scripts with the original videos on CD and DVD, all old movies, many scripts contain QTGMC...
My version.
#-------------------------------------------------------------------#
# #
# QTGMC 3.33 by Vit, 2012 #
# QTGMC 3.382 2021 mod by A.SONY, based on v3.33d by Dogway #
# #
# A high quality deinterlacer using motion-compensated temporal #
# smoothing, with a range of features for quality and convenience #
# Originally based on TempGaussMC_beta2 by Didée #
# #
#-------------------------------------------------------------------#
#
# Full documentation is in the 'QTGMC' html file that may comes with this script, or even better see avisynth wiki
#
# --- LATEST CHANGES ---
#
# v3.382s
# - fix for n16 family
#
# v3.380s based on v3.34d (mod) by Dogway
# - Added Refinemotion Option for more accurate denoising.
This is from version v3.382s, Information is missing in STGMC 3.385, Has something changed?
# --- REQUIREMENTS ---
#
# Input colorspaces: YV12, YUY2, others as plugins supports
#
# Core plugins:
# MVTools2 (2.7.26 or above)
# MaskTools2 (v2.2.17 or above)
# NNEDI3 (0.9.4.6 or above)
# RgTools
#
# Core scripts:
# Zs_RF_Shared.avsi
#
# Additional plugins and scripts:
Short test with STGMC went well, or are other things needed after all? How many children did QTGMC get now, is there also a QTGMCmod? :rolleyes:
Dogway
28th February 2022, 20:03
Short test with STGMC went well, or are other things needed after all? How many children did QTGMC get now, is there also a QTGMCmod? :rolleyes:
Two only, three if I change to QTGMCmod.
# QTGMC 3.382 2021 mod by A.SONY, based on v3.33d by Dogway #
QTGMC mod is my branch for HBD (and now also for frameprops plus other), and indeed if you compare STGMC with QTGMC mod my version is way faster.
I don't claim my branch to be the official Vit's QTGMC replacement, so if you are very bothered by it and still want to use the 2011 version I can rename it to QTGMCM(). But as I say, for 8-bit QTGMC mod is not slightly slower than STGMC because I did something wrong in the code, if it's slower report upstream to improve Expr().
Also function names weren't a problem back then, you used the same name as a drop-in replacement, specially if the filter development ceased, that was in fact the intention so all your hundreds of old scripts wouldn't run into issues. As far as I'm concerned real.finder can still use QTGMC() or SMDegrain().
If you insist I should change the function name of most my filters, namely: GrainFactory3mod, SMDegrain, DestripeH and V, LSFmod, GMSD, MDSI, vsSSIM, BBSIM, SSIM_downsample, _IQA_downsample, RoundHalfToEven, Deblock_QED, MSUDeCor, SmoothDeblockn, SmoothD2c, ChromaReconstructor, ChromaReconstructor_faster, SPresso, SeeSaw, SeeSawMulti, FineSharp, NonlinUSM, SlopeBend, DetailSharpen, MedianSharp, SSSharpFaster, SSSharp, ReCon, blah, MedSharp, SharpenComplex2, pSharpen, CASm, Soothe and mmod (probably more)
Maybe "options" was the wrong term, but if I look thru all the many, many lines of code, etc, there just seems (to me) that there are other filters & codes that maybe used as a stand alone.
eg:- ex_corner() and ex_occlusion()
or are these just part of the "big picture" of the main script ??
What can you use in replacement for ex_corner()? I wouldn't make something if I didn't see a value. AFAIK there's no corner detection filter in either AVS or VS (unless you use external libraries like OpenCV). As for motion masks, mt_motion/ex_motion is too primitive and MVTools' MMask() is too slow (5~15fps), ex_occlusion() runs at 470fps and worked well for my purpose, still it's first version so it can be improved.
If you don't write script filters ExTools might not be of much interest to you, it's basically a backend library to feed higher level filters. Readily usable filters are in EX/MIX mods or my other Packs.
guest
1st March 2022, 01:22
What can you use in replacement for ex_corner()? I wouldn't make something if I didn't see a value. AFAIK there's no corner detection filter in either AVS or VS (unless you use external libraries like OpenCV). As for motion masks, mt_motion/ex_motion is too primitive and MVTools' MMask() is too slow (5~15fps), ex_occlusion() runs at 470fps and worked well for my purpose, still it's first version so it can be improved.
If you don't write script filters ExTools might not be of much interest to you, it's basically a backend library to feed higher level filters. Readily usable filters are in EX/MIX mods or my other Packs.
Hi Dogway, No, I don't write script filters, because I wouldn't know where to start, but I doubt that I need to do anything like that, for what I do.
I use ExTools because the other filters, etc, that you create, this is a major dependency, so I just go with what works for me.
Why I asked the question was simply because I see all these other "functions" within SMDegrain, ExTools (for example), and I just wondered if they could be used individually, if I knew how to....that's all.
Sorry for the frustration, just keep doing what you're doing, it's awesome :)
Cheers
gispos
1st March 2022, 17:14
If you insist I should change the function name of most my filters, namely:
I don't want to answare directly to that.
Suppose I want to use the 'original' filter and not your version, the reason should not matter now.
I load my filters via an avsi, so for example NonlinUSM is also loaded. Now I make my settings, ok, try a filter from Dogway.
What happens now? My NonlinUSM will be replaced by your version as soon as I load your SharpenerPack.
And your NonlinUSM version gives other results.
Possibly other values or parameters are necessary to achieve the same result (must not, but can be).
This is a no go for me.
Using the same names leads to confusion and is misleading.
coolgit
1st March 2022, 19:40
Using the same names leads to confusion and is misleading.
I have to agree with Gispos here.
I have used some of your filters and it clashed with some filters already in my plugins folders and had to fanny around sorting it out. Eventually I had to remove them.
When newbies search for avisynth they will end up at this main official site
http://avisynth.nl/index.php/Main_Page
then
http://avisynth.nl/index.php/QTGMC
then
click on QTGMC.avsi and get 404 error. One can get to realfinder's page and see STGMC and either get confused or download it.
Correct me if i am wrong, the main difference between current QTGMC and yours is yours has high bit depth (HBD).
If so then why not use QTGMC_HBD like Stainlesss did with ScSelect_HBD. https://forum.doom9.org/showthread.php?t=182392
Realfinder can carry on using QTGMC. Avisynth site just need to add your filter in external filter page with documentation. That why it would be neat and tidy and won't scare the newbies away.
real.finder
1st March 2022, 20:00
my QTGMC (STGMC) also work with HBD
I don't mind if dogway keep the name if the function give same output as old one (which I think it do aside from SMDegrain which is not)
coolgit
1st March 2022, 20:39
OK that's good, thought it was 8 bit only.
The main avisynth site weblink needs to change QTGMC to STGMC and a new page for Dogway QTGMC. That's assuming the 'how to use documentation' is different.
Just checked your STGMC and can see it has been updated a bit.
Dogway
1st March 2022, 23:50
I don't want to answare directly to that.
Suppose I want to use the 'original' filter and not your version, the reason should not matter now.
I load my filters via an avsi, so for example NonlinUSM is also loaded. Now I make my settings, ok, try a filter from Dogway.
What happens now? My NonlinUSM will be replaced by your version as soon as I load your SharpenerPack.
And your NonlinUSM version gives other results.
Possibly other values or parameters are necessary to achieve the same result (must not, but can be).
This is a no go for me.
Using the same names leads to confusion and is misleading.
If it gives other results REPORT. Must of my ports are meant to sanitize and unify code not to redefine its purpose (unless inconsistency). Why do you need 2 or 3 versions of NonlinUSM? A few handful versions of mod4(), two versions of Destripe or SPresso, 7 versions of Deblock_QED(), and so on... See my point? that leads to confusion and is misleading.
You need to understand what I'm doing. Why do you need:
"x x y - x y - abs 0.0001 + / *"
to change sign when you can now do
"x dup y - sgn *"
Same with the hundreds and inefficient ways to blur (I have even seen blur(1).blur(1).blur(1).blur(1).blur(1)...), like in your HighlightLimiter function.
NonlinUSM uses an unpredictable and non-linear way of blurring (what (https://forum.doom9.org/showthread.php?p=1821106#post1821106) is 'rad' here anyway?):
bicubicresize(round(width()/rad/4)*4,round(height()/rad/4)*4).bicubicresize(width(),height(),1,0)
blurring more when small? Shouldn't you want to preserve the intention regardless of resolution? It should be the other way around (it was also reported (https://forum.doom9.org/showthread.php?p=1821019#post1821019) earlier). For that I need to go back to the original thread and find out what resolution it was tested on and fit a function to scale that to any resolution.
In this case I ran into several issues because I developed NonlinUSM at the same time I worked on ex_GaussianBlur, but this was my take (it will never match the above SoftCubic100 upscale but the goal is to minimize error):
ex_GaussianBlur(rad*0.83825-0.0631,pad=true)
To make it work at any resolution simply scale rad based on it
ex_GaussianBlur((w/720.)*rad*0.83825-0.0631,pad=true)
Another point is filters with different arg names for the same purpose. 'show', 'showsettings', 'debug'... I do unify those so you don't have to look up the function arg list to find out. Same with 'chroma', bool 'UV', int 'UV', etc. Others like 'th', 'thr', 'thres', 'threshold'... or 'lo' and 'hi' in my filters which are a staple instead of 'low' and 'high', or 'th1' and 'th2', 'b' and 'w', 'dark' and 'bright', etc.
So the question goes back to, why do you want to use old, unmaintained and slow filters and what can we do to improve it?
I'm open to change the name of those that intentionally changes the output though (despite for fixing or improving purposes).
my QTGMC (STGMC) also work with HBD
I don't mind if dogway keep the name if the function give same output as old one (which I think it do aside from SMDegrain which is not)
Didn't mean that, my point was (replying gispos) that despite QTGMC mod being a tiny bit slower than STGMC at 8-bit it's way faster for HBD which was it's main purpose for the mod to start with. I changed a few output related things some months back and plan to do further with Zopti findings so I'll be doing more changes.
I will change the name of QTGMC and LSFmod to start with since I added critical output improvement. Probably with 'plus' as suffix since now it supports also frameprops aside HBD.
kedautinh12
2nd March 2022, 00:32
@Dogway I think you don't need change name when result don't different. And i say again why need Dogway change name of plugin when he develope it from 2015??
https://github.com/Dogway/Avisynth-Scripts/blob/361d4b3609e9da732248e3ec2cb059b308b9e383/MIX%20mods/QTGMC.avsi#L4
coolgit
2nd March 2022, 01:09
Currently the avisynth site QTGMC link doesn't work since realfinder change his link to STGMC. My point is that newbies need simple access and working links. If dogway QTGMC is the current version then the links need to reflect that. Broken links put newbies off. Avisynth is hard to learn step by step and broken links isn't going to help.
Staxrip has the ability to update avs filters but can not access QTGMC at the moment. It seems there are some communication breakdown. Perhaps realfinder changed QTGMC to STGMC too early. Better coordination of changes to links would be the way to go.
Dogway
2nd March 2022, 01:29
It's a matter of coming to an agreement. My stance was it was ok to keep function name but now if we agree (given gispos issues) we can change the name if output differs purposefully, doesn't matter how you reach there code-wise.
So in those terms for me real.finder can keep name and I will change those that changed behaviour like LSFmod or QTGMC. An exception for SMDegrain since I built it from the ground up basically.
If other filters' output are the same or very near the same, like Deblock_QED(), NonlinUSM() (should be identical to original, currently further refining it for resolution-aware), etc for me it's fine to keep function name the same, albeit calling the filter blabla mod or something. Maybe we can also do the same for abandon-ware, an example is ChromaReconstructor_faster, I modified it to have different bicubic coefficients but the purpose is the same. Same with SPresso(), output should be the same I just extended it to support HD sources but keeping the intention.
real.finder
2nd March 2022, 03:02
Didn't mean that, my point was (replying gispos) that despite QTGMC mod being a tiny bit slower than STGMC at 8-bit it's way faster for HBD which was it's main purpose for the mod to start with. I changed a few output related things some months back and plan to do further with Zopti findings so I'll be doing more changes.
I will change the name of QTGMC and LSFmod to start with since I added critical output improvement. Probably with 'plus' as suffix since now it supports also frameprops aside HBD.
well, my QTGMC mod based on your old mod, also I did make it use dither_luma_rebuild by default so it also not 100% same output and speed as the original one, so I will keep it as STGMC
'plus' as suffix
this is the best option that will also let the user know that it is a version for avs+ only
StvG
2nd March 2022, 11:59
I agree that the duplicated names should be changed especially if both versions are still maintained.
And moreover not only if the output is different but also if the requirements are totally different. For example when I use X filter and see a newer or modded filter with the same name I'm assuming that I can just download the new X filter and use it directly out of the box, but this is not the case here - we have to download a whole new set of requirements.
Reel.Deel
2nd March 2022, 12:46
I agree that the duplicated names should be changed especially if both versions are still maintained.
And moreover not only if the output is different but also if the requirements are totally different. For example when I use X filter and see a newer or modded filter with the same name I'm assuming that I can just download the new X filter and use it directly out of the box, but this is not the case here - we have to download a whole new set of requirements.
I 100% agree with the requirement argument. If the "mod" script requires x amount of other supporting scripts/plugins to work then it should have a different name. I have always tried to maintain the QTGMC wiki page up-to-date but have not recently, not only because of other things I'm doing but because of the requirements changing. I remember when the script all of a sudden required SMDegrain to work, and then for YUY2 you needed PlanarTools (because converting to YV16 and and back to YUY2 at the end is waaaayyy too hard lol). For some other options you needed AnimeIVTC... and the list goes on. It will be one thing if at least it were documented, but sometimes it was not, and that is very off-putting and causes confusion. In those cases I think it's better for everyone if it has a different name.
TL;DR: if the modded script cannot be used as turnkey drop-in replacement, maybe it's best if it has a different name.
StainlessS
2nd March 2022, 12:50
Yip, seems we are tryin' to emulate M$ DLL hell :)
DLL Hell:- https://en.wikipedia.org/wiki/DLL_Hell
gispos
2nd March 2022, 18:26
@Dogway, I think it's great what you are doing and some things I really like. But please, I don't want to be forced to use all of your filters if I only want to use one.
With time (if you modify even more filters) it will become even more confusing. And filters are replaced in the background without my knowledge.
But I would like to determine myself what I use and certainly not be forced to do so. Or I have to rename the filters myself or copy them to another avs.
If you do not know, as was the case with me, you wonder what is suddenly going on and is an eternity looking for why the settings no longer fit.
kedautinh12
3rd March 2022, 02:00
Dogway changed QTGMC to QTGMCp and LSFmod to LSFplus. When real.finder changed QTGMC to STGMC and don't change back QTGMC. I need download again old QTGMC which don't different STGMC, it's waste space for this. "Thank" anyone who request Dogway change name of QTGMC
real.finder
3rd March 2022, 04:29
Dogway changed QTGMC to QTGMCp and LSFmod to LSFplus. When real.finder changed QTGMC to STGMC and don't change back QTGMC. I need download again old QTGMC which don't different STGMC, it's waste space for this. "Thank" anyone who request Dogway change name of QTGMC
avsi scripts take only few Kilobytes
kedautinh12
3rd March 2022, 04:51
avsi scripts take only few Kilobytes
I'm obsessive-compulsive personality disorder (OCPD) :D
Dogway
3rd March 2022, 11:47
I updated LSFmod to LSFplus and QTGMC to QTGMCp. For others I'm waiting for propCopy to support negative selection, since many of my next versions will fall in round numbers and I don't plan to touch them any further.
I took the last day to think about it, and I'm not sure you thought on the implications.
I 100% agree with the requirement argument. If the "mod" script requires x amount of other supporting scripts/plugins to work then it should have a different name. (...) I remember when QTGMC all of a sudden required SMDegrain to work, and then for YUY2 you needed PlanarTools (because converting to YV16 and and back to YUY2 at the end is waaaayyy too hard lol). For some other options you needed AnimeIVTC... and the list goes on. It will be one thing if at least it were documented, but sometimes it was not, and that is very off-putting and causes confusion. In those cases I think it's better for everyone if it has a different name.
TL;DR: if the modded script cannot be used as turnkey drop-in replacement, maybe it's best if it has a different name.
I make a great effort on documenting dependencies (not always sub-dependencies though).
...I'm assuming that I can just download the new X filter and use it directly out of the box, but this is not the case here - we have to download a whole new set of requirements.
Yip, seems we are tryin' to emulate M$ DLL hell :)
DLL Hell:- https://en.wikipedia.org/wiki/DLL_Hell
I'm not sure if you are for or against. Would you rather have heavy plugin+script fragmentation? ie. only for variable gaussian/binomial blur: GBlur2, ablur, BinomialBlur, GBlur, FastBlur, GaussianBlur, FRC_GaussianBlur42, FastGaussBlur. All unmaintained and/or slower than ex_gaussianblur() or vsTCanny(). Then each script doing the same task (like Highlightlimiter and ex_highlightlimiter() ) but you would rather keep VariableBlur.dll (for gaussianblur) and all the hundreds of duplicate plugins because different scripts require different plugins, having half a thousand files in the plugins directory with filters that do the exact same task. For me this is extremely confusing, specially for beginners.
In contrast for most of my mods the only dependencies are ExTools and ResizersPack, not adding this dependencies on top but shifting them from masktools, rgtools and the myriad of blurring filters. That means, most of my scripts are VERY low on dependencies (more so in EX mods) since ExTools already includes a bunch of low level filters like mean/gaussian/median/bilateral blurs and spatial/temporal denoisers.
To put it in perspective, this is a change of paradigm because most of my mods (even those I rescued from the death) will have to change name, same for real.finder mods which also have external dependencies (mostly Zs_RF_Shared), and now we will end with 3 script versions of the same filter and the end user being further confused. QTGMC, STGMC and QTGMCp. Is this ok?
______________
On another note I refined NonlinUSM() the fit was mostly fine (was fine in a previous commit), but on my reference script I had at the end:
mt_lutxy(o,"x 0 > x y ? ")
Which I tried to trace back but didn't find any reference. So I removed it from the expression and now the filter gives 1:1 match to original.
Now comes the resolution issue and I need feedback because there are two approaches, mimic what it does at low resolution (I assumed it is designed around 480p), or adapt it for HD resolution. Comment and uncomment and let me know which one do you think fits best for HD.
function NonlinUSM(clip o, float "str", float "z", float "pow", float "rad", float "ldmp", int "UV") {
rgb = isRGB(o)
w = width(o)
h = height(o)
bi = BitsPerComponent(o)
fs = propNumElements (o,"_ColorRange") > 0 ? \
propGetInt (o,"_ColorRange") == 0 : rgb
str = Default(str, 0.7) # strength
z = Default(z, 6.0) # zero point
pw = Default(pow, 1.6) # power
rad = Default(rad, 9.0) # radius for "gauss"
ldmp= Default(ldmp, 0.001) # damping for verysmall differences
UV = Default(UV, rgb ? 3 : 1)
z = ex_bs(z, 8, bi, fulls=true, flt=true)
ldmp = ex_bs(ldmp, 8, bi, fulls=true, flt=true)
zd = 1. / z
pw = 1. / pw
# g = o.ex_GaussianBlur((w/720.)*rad*0.79-0.122,pad=true) # This is to match 480p
g = o.ex_GaussianBlur((720./w)*rad*0.79-0.122,pad=true) # This is to adapt to HD sources (inversely proportional)
p = Format(pw == 1 ? "{str} * " : "{zd} * {pw} ^ {z} {str} * * ")
ex_lutxy(o, g, Format("x dup y - A@ abs "+p+" A dup * dup {ldmp} + / * A sgn * +"), UV=UV, fulls=fs)
}
coolgit
3rd March 2022, 14:19
To put it in perspective, this is a change of paradigm because most of my mods (even those I rescued from the death) will have to change name, same for real.finder mods which also have external dependencies (mostly Zs_RF_Shared), and now we will end with 3 script versions of the same filter and the end user being further confused. QTGMC, STGMC and QTGMCp. Is this ok?
I do not have a problem if you replace QTGMC with an improved version, if the original is no longer worked on, but my issue is this link http://avisynth.nl/index.php/QTGMC should be updated simultaneously if the page is going to be redirected from realfinder to yours. Otherwise newbies will be confused.
What about a QTGMC pack with all the other relevant filters according to the requirements, so newbies and others can download one file to unzip rather than 5, 10 15, 20 or so files separately.
kedautinh12
3rd March 2022, 14:34
yeah, that's right, many versions with QTGMC when Dogway changed name. I think newbie hard to understand when looking for avs in first time
real.finder
3rd March 2022, 18:15
I do not have a problem if you replace QTGMC with an improved version, if the original is no longer worked on, but my issue is this link http://avisynth.nl/index.php/QTGMC should be updated simultaneously if the page is going to be redirected from realfinder to yours. Otherwise newbies will be confused.
I did update the wiki to freeze it on the last working QTGMC of my mod, but as I said, for people like gispos they have to set TV_range=false to get same output as Vit one
that all I can do for now
edit: @gispos check https://pastebin.com/raw/SYMD7ij5 the last update ever
coolgit
3rd March 2022, 20:11
So when the time is right the present avisynth QTGMC link will direct to STGMC (still use TV_range=false) and a new page for updated dogway's QTGMC. Also http://avisynth.nl/index.php/External_filters deinterlacing section present QTGMC should be renamed STGMC (keeping description, plugin, colour format and author, the same) and a new addition for dogway's QTGMC (with new description, plugin, colour format and author).
Would the above be the best sensible way to go forwards?
real.finder
3rd March 2022, 20:38
if gispos will be happy with https://pastebin.com/raw/SYMD7ij5 I will bring back the QTGMC to https://github.com/realfinder/AVS-Stuff and make the STGMC as a wrapper for QTGMC with TV_range as true by default
coolgit
3rd March 2022, 23:13
Dogway QTGMC requirements.
ExTools can't be found on main avisynth site. Also where is v8.0 or above, best i have found is 7.7.
SMDegrain avisynth link is dead, 404.
Zs_RF_Shared not in avisynth external filter page.
AddGrainC v1.8.4 avisynth page version number needs updating.
Dogway
3rd March 2022, 23:20
Dogway QTGMC requirements.
ExTools can't be found on main avisynth site. Also where is v8.0 or above, best i have found is 7.7.
SMDegrain avisynth link is dead, 404.
Zs_RF_Shared not in avisynth external filter page.
AddGrainC v1.8.4 avisynth page version number needs updating.
That's not my issue but the wiki maintainers so report to them. In my repo you will find all you need.
As I said above I was waiting for propCopy to update (updated today) so I can update the rest of the filters.
As for updating the names, it looks like there's no agreement? real.finder back to QTGMC, and keeping function names, same as I.
coolgit
4th March 2022, 01:19
That's not my issue but the wiki maintainers so report to them.
I would have thought those who create filters/plugins inform the maintainers rather than the maintainers lurking around forums on the off chance someone done an update, etc.
In my repo you will find all you need.
As I said above I was waiting for propCopy to update (updated today) so I can update the rest of the filters.
Does this updating the rest of the filters includes filters that QTGMC is relying on. I have downloaded all the necessary files and about to test your QTGMC and do some comparison. Should i hold off a bit until you finish your update or what?
As for updating the names, it looks like there's no agreement? real.finder back to QTGMC, and keeping function names, same as I.
I think what realfinder is doing is temporary to fix broken link on avisynth site. I could be wrong.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.