View Full Version : Avisynth+ plugin modernization efforts
Pages :
1
2
3
4
5
[
6]
7
8
real.finder
14th August 2019, 23:47
Thank you, again, Ferenc! :)
+1 for DFTTest. It's my favorite filter when it comes to Denoise and it's a shame that it only supports 16bit stacked.
Now that f3kdb has been updated to support 16bit planar, all my filter-chain is on native high bit depth... except for DFTTest.
As a side note, if you are actually going to port it, or if someone is gonna port it, please please please just add High Bit Depth but don't remove 16bit stacked support for compatibility reasons.
I can't do these things (like c++ coding)
if pinterf did it I think he will keep it as he keep it in mvtools
StainlessS
15th August 2019, 00:47
R.F.
Methinks you would make a pretty damn good C coder, why not give it a bash, really, steep hill at first but not so much later.
(You dont really need CPP, some of us get by reasonably well without).
Please, at least have a play with it, nowt to lose.
EDIT: I found that the hardest part about "C" stuff, was to figure out where to scatter the semi-colons, apart from that, not much different to avs script.
Sparktank
15th August 2019, 01:35
What a nice summer this is :) Thanks for the update.
real.finder
15th August 2019, 03:32
R.F.
Methinks you would make a pretty damn good C coder, why not give it a bash, really, steep hill at first but not so much later.
(You dont really need CPP, some of us get by reasonably well without).
Please, at least have a play with it, nowt to lose.
EDIT: I found that the hardest part about "C" stuff, was to figure out where to scatter the semi-colons, apart from that, not much different to avs script.
I already tried years ago with libass (C) and mp_pipeline (C++) but with no luck so I give up
FranceBB
15th August 2019, 18:02
and mp_pipline (C++) but with no luck so I give up
As a side note, speaking of MPPipeline, development stopped years ago and it has been lacking audio support since then... and on top of it, sometimes it fails spectacularly with modern Avisynth+ high bit depth and colorspace.
real.finder
15th August 2019, 22:29
- Add documentation (from old docs, new part: gcc/clang howto)[/CODE]
in RgTools.txt
removegrain modes:
-1= bypass (output=0) faster than mode=0 (copy)
0 = copy
1 = medianblur. Same as Undot, but faster. (single dots)
2 = medianblur. Round up to the second closest minimum luma value in a 3x3 window matrix, if this second lowest value is lower than X pixel value, then leave unchanged. (1x2 spots)
3 = medianblur. Sames as mode 2 but rounded up to third minimum value (but artifact risky). (3pixel-clusters)
4 = medianblur. Sames as mode 2 but rounded up to fourth minimum value (but artifact risky). (up to 2x2-pixel-clusters)
5 = medianblur. Edge sensitive. Only line pairs are used. Strong edge protection.
6 = medianblur. Edge sensitive. Only line pairs are used. Fairly edge protection.
7 = medianblur. Edge sensitive. Only line pairs are used. Mild edge protection.
8 = medianblur. Edge sensitive. Only line pairs are used. Faint edge protection.
9 = medianblur. Edge sensitive. Only line pairs are used. Barely edge protection. Practically a spatial variant of trbarry's ST Median filter.
10 = Minimal sharpening. Replaces center pixel by its nearest neighbour. "Very poor denoise sharpener"
11 = Blur. 3x3 kernel convolution blur. Better than its counterpart internal Blur(1) (and faster)
12 = Blur. Same as 11 but fastest and only <= 1% less precise (still better than Blur(1))
13 = Smart bob (for interlaced content). Interpolates the top field. Similar to Trbarry's weird bob (Tomsmocomp).
14 = Smart bob (for interlaced content). Interpolates the bottom field. Similar to Trbarry's weird bob (Tomsmocomp).
15 = Smart bob (for interlaced content). Same as mode 13 but more quality and slightly slower.
16 = Smart bob (for interlaced content). Same as mode 14 but more quality and slightly slower.
17 = medianblur. Same as mode 4 but better edge protection (similar to near artifact free mode 2). Probably best mode of all.
18 = medianblur. Same as mode 9 but better edge protection (Same as what mode 17 was to mode 4, but in this case to mode 9, and far less denoising than mode 17)
19 = Blur. Average of its 8 neighbours.
20 = Blur. Uniform average of its 8 neighbours. Better than 19 but slower. Very similar to blur(1.58) but faster.
21 = medianblur. Clipping is done with respect to averages of neighbours. Best for cartoons.
22 = medianblur. Same as mode 21 but much faster (fastest mode of all)
23 = Dehalo. Fixes small (as one pixel wide) haloes.
24 = Dehalo. Same as 23 but considerably more conservative and slightly slower. Preferred.
25 = Minimal sharpening.
26 = medianblur. Based off mode 17, but preserves corners, but not thin lines.
27 = medianblur. Same as mode 26 but preserves thin lines.
but if I use 25 or up I will get error message :rolleyes:
StainlessS
16th August 2019, 07:06
but if I use 25 or up I will get error message
RemoveGrain.cpp
RemoveGrain::RemoveGrain(PClip child, int mode, int modeU, int modeV, bool skip_cs_check, bool use_avx2, IScriptEnvironment* env)
: GenericVideoFilter(child), mode_(mode), modeU_(modeU), modeV_(modeV), functions(nullptr) {
if (!(vi.IsPlanar() || skip_cs_check)) {
env->ThrowError("RemoveGrain works only with planar colorspaces");
}
if (mode <= UNDEFINED_MODE || mode_ > 24 || modeU_ > 24 || modeV_ > 24) {
env->ThrowError("RemoveGrain mode should be between -1 and 24!");
}
pinterf
16th August 2019, 08:11
in RgTools.txt
but if I use 25 or up I will get error message :rolleyes:
"Add documentation (from old docs,..."
Yep, copied there, as-is. As a first step.
@Anyone: feel free to revise (correctness) and update it :)
When someone is bored, likes challenges in general (ice bucket, bottle cap, etc.) and reverse engineers the assembler codes for modes over 25 and give me a C (or any pseudo) code than I'll include it. I don't have those free days or weeks at the moment.
LigH
16th August 2019, 08:44
When someone is boring...
:o When someone is bored... boring people would drag you down.
real.finder
17th April 2020, 16:45
how many temporal dimension frames checkmate use? since it even with tthr2=0 it's still cause some artifacts in motion, so maybe using it with MC will make better
real.finder
3rd October 2020, 03:27
any idea of porting BlindPP to new plugin with HBD? or if we can replace it with something else that give at least similar if not 100% identical output? I tried with deblock and aside from the parameters are not similar I didn't get to make the output the same or similar
I need BlindPP since some scripts use it like FunkyDeBlock and SoftSharpen
real.finder
12th October 2020, 03:29
is it possible to have http://avisynth.nl/index.php/IT add edeint parameter like TDeint and tfm do? since there are some Japanese sources only work better with IT and the internal deinterlace is not that good
there are https://github.com/HomeOfVapourSynthEvolution/VapourSynth-IT to backport if updating original avs one is hard
LigH
3rd February 2021, 19:09
Are there any image stabilizer plugins available yet? I read a question about VDub DeShaker today, which may not yet be available for VDub2 x64, and looking through the Wiki page for AviSynth+ x64 plugins, I could not find anything related to DePan or Stab ...
Reel.Deel
3rd February 2021, 22:02
Are there any image stabilizer plugins available yet? I read a question about VDub DeShaker today, which may not yet be available for VDub2 x64, and looking through the Wiki page for AviSynth+ x64 plugins, I could not find anything related to DePan or Stab ...
Update Depan is distributed with MVTools: https://github.com/pinterf/mvtools/releases
Here's a full list of plugins that are available in x64: http://avisynth.nl/index.php/Category:Plugins_x64
Deshaker is available in x64, although I've have not tried it with VDub2.
real.finder
6th March 2021, 13:51
I did update some old posts (https://forum.doom9.org/showpost.php?p=1923877&postcount=656) with this Reply (note the colors)
ok, so I will mention what not has HBD yet
1st is plugins that has VS ports with HBD:-
1 - EEDI3 (https://github.com/pinterf/EEDI3) (no HBD yet (https://github.com/HomeOfVapourSynthEvolution/VapourSynth-EEDI3))
2 - Dither_resize16/fmtconv (no yet) here https://github.com/EleonoreMizo/fmtconv the vs port
3 - SangNom2/SangNomMod (done by Asd (https://github.com/Asd-g/AviSynth-SangNom2))
4 - TTempSmooth (done by Asd (https://github.com/Asd-g/AviSynth-vsTTempSmooth))
5 - EEDI2 (done by Asd (https://github.com/Asd-g/AviSynth-EEDI2))
6 - TCanny (there are TCannymod by chikuzen but I think with no HBD) (done by Asd (https://github.com/Asd-g/AviSynth-vsTCanny))
7 - Yadifmod (there are Yadifmod2 by chikuzen with not completed HBD) (done by Asd (https://github.com/Asd-g/yadifmod2))
8 - DeblockPP7 (done by Asd (https://github.com/Asd-g/AviSynth-vsDeblockPP7))
9 - median (not yet) here https://github.com/dubhater/vapoursynth-median the VS port
10 - tbilateral (done by Asd (https://github.com/Asd-g/AviSynth-vsTBilateral))
11 - tedgemask (done by Asd (https://github.com/Asd-g/AviSynth-vsTEdgeMask))
12 - MSmooth (done by Asd (https://github.com/Asd-g/AviSynth-vsMSmooth))
13 - ASharp (done by Asd (https://github.com/Asd-g/AviSynth-ASharp))
14 - degrainmedian (no yet) here https://github.com/dubhater/vapoursynth-degrainmedian the VS port
15 - TDeint (done by pinterf (https://github.com/pinterf/TIVTC))
plugins that has VS ports but no HBD:-
1 - scxvid (there are no x64 in avs yet)
2 - hqdn3d (there are avs port but with 16bit hack)
3 - ssiq (there are no x64 in avs yet)
and there are some filters seems has no VS ports
1 - VariableBlur (it was planed by tp7 (https://forum.doom9.org/showthread.php?p=1658610&highlight=VariableBlur#post1658610))
2 - frfun7 (useful for Dot Crawl Removal, used in DDComb)
3 - GradFun2db (maybe it can be replaced with f3kdb?)
4 - LGhost (HolyWu Recently did the VS port, avs+ done by Asd (https://github.com/Asd-g/AviSynthPlus-vsLGhost))
so a lot of those are done now by Asd here https://github.com/Asd-g?tab=repositories and there are some that I didn't mention like https://github.com/Asd-g/AviSynth-CAS and https://github.com/Asd-g/AviSynth-FillBorders and https://github.com/Asd-g/AviSynth-vsTMM and https://github.com/Asd-g/AviSynth-BWDIF and https://github.com/Asd-g/AviSynth-JincResize and https://github.com/Asd-g/RawSource_2.6x and https://github.com/Asd-g/MTCombMask and https://github.com/Asd-g/ReduceFlicker and there are many others!
note: the ones that has "vs" in their names because they are not same as old avs one (Missing things from avs old one or different parameters)
tormento
6th March 2021, 14:21
I did update
:thanks:
I really would like to have HBD dither.
Boulder
6th March 2021, 18:07
:thanks:
I really would like to have HBD dither.
What functionalities of Dither you are looking for? It already has the 16bit hack implemented, but it could be that the functionality can be achieved by some other tool.
tormento
6th March 2021, 19:50
What functionalities of Dither you are looking for? It already has the 16bit hack implemented, but it could be that the functionality can be achieved by some other tool.
I'd like to see how good and how fast it dithers from 16 bit to 8-12 bit / deband with proper HBD support.
pinterf
6th March 2021, 20:22
z_ConvertFormat probably dithers using AVX2 as well, maybe even utilizes AVX512.
Boulder
6th March 2021, 20:44
z_ConvertFormat probably dithers using AVX2 as well, maybe even utilizes AVX512.
At least according to the docs, it does.
http://avisynth.nl/index.php/Avsresize
real.finder
6th March 2021, 23:36
z_ConvertFormat is good, but it's not a full replace for dither tools, there are https://github.com/EleonoreMizo/fmtconv as dither tools vs port, so it's better to back port it than update the old dither tools
edit: even fmtconv can't be a full replacement for dither tools, since the functions in dither tools has additional features like soft and maxts in Dither_add_grain16 (addgrainc alternative) and fmtconv don't has Dither_add_grain16 alternative edit: https://forum.doom9.org/showthread.php?p=1937771#post1937771
Arx1meD
7th March 2021, 06:39
Good day to all.
Has anyone found Convolution3D (http://hellninjacommando.com/con3d/beta/index.html) for Windows 64-bit?
I know MipSmooth exists, but it works a little differently and slower.
pinterf
10th March 2021, 09:12
Good day to all.
Has anyone found [suspicious_url] for Windows 64-bit?
I know MipSmooth exists, but it works a little differently and slower.
Hi, are you aware of the link you put behind "Convolution3D" link to redirect?
LigH
10th March 2021, 11:05
That was indeed the homepage of the author once. But it vanished. The AviSynth Wiki links to a WebArchive of this domain for the 32-bit version.
I guess you can simulate such a generic plugin with MaskTools etc. but an optimized plugin will probably be more efficient, especially with a variety of color spaces...
Arx1meD
10th March 2021, 13:40
Hi, are you aware of the link you put behind "Convolution3D" link to redirect?
This is a link from the http://avisynth.nl
I found the source code on another site, but I don’t know what to do with it. I am not a software developer.
pinterf
10th March 2021, 14:46
After looking the code:
From coder's point of view its internal asm is incompatible with x64 (e.g. using 32 bit registers for pointers).
Instead of hacking that it would need a SIMD intrinsic rewrite: asm{} block syntax is not valid for x64. And one should use SSE2 instead of MMX. Surely it needs some hours of working time.
Webarchive source:
http://web.archive.org/web/20130118045049/http://hellninjacommando.com/con3d/beta/con3d-yv12-beta5.zip
Arx1meD
10th March 2021, 17:02
pinterf thanks for the answer. Excuse me, but I do not understand what you are talking about. :confused: Sorry.
wonkey_monkey
10th March 2021, 17:30
Could it be emulated with Expr?
pinterf
11th March 2021, 08:22
pinterf thanks for the answer. Excuse me, but I do not understand what you are talking about. :confused: Sorry.
Sorry, there was a first - non-technical - sentence there which I deleted.
Really, the last sentence was for you:
"Surely it needs some hours of working time."
The rest is just a note for those (incl. me) who are considering touching the plugin. Interesting and not so hard task, but when someone starts working on it, please note it here and I'll then not spend time on that.
pinterf
11th March 2021, 08:58
Could it be emulated with Expr?
Looking into the description (Convolution3d.txt) it is not that straightforward doing it with Expr.
Unfortunately there is no C version - so at least the code has to be reverse-engineered if it's doing the same as stated in the description. So strange that old coders are starting immediately with coding assembler. A huge contrast to present coding standards where there must be a working C prototype to understand and simulate the basic behaviour even if it is optimized later for a specific processor and thus the code written in C won't not run at all. (until someone recognizes that the compiler sometimes generate quicker code than the hand-written assembler :) and drop old assembler routines)
Arx1meD
11th March 2021, 12:58
pinterf thanks for the explanation. I cannot ask to redo something.
:thanks:
pinterf
11th March 2021, 14:27
Never mind, tidying up ugly or ancient codes is my daily adrenaline. Almost done. Anyway, original source was a bit buggy and gave artifacts, no wonder it was called 'beta'. Sooner or later you'll get it.
ChaosKing
11th March 2021, 17:28
Never mind, tidying up ugly or ancient codes is my daily adrenaline.
You should change your user title to "Avisynth plugin archaeologist" or something like that :D
StainlessS
11th March 2021, 17:37
Yeah, better than current "Registered User", you aint just anybody, fluff it up a bit.
pinterf
11th March 2021, 18:06
Check it please. Convolution 3D v1.1 as-is.
https://github.com/pinterf/Convolution3D/releases
Arx1meD
11th March 2021, 20:00
pinterf thank you so much! I never even dreamed of such a thing.
I still used all 32-bit plugins for AviSynth because I couldn't find Convolution3d in 64-bit. Yes, I really like how Convolution3d works.
I need some time to test it.
Reel.Deel
12th March 2021, 09:48
Check it please. Convolution 3D v1.1 as-is.
https://github.com/pinterf/Convolution3D/releases
Thanks pinterf.
WIP: http://avisynth.nl/index.php/Convolution3D
kedautinh12
12th March 2021, 09:51
Asd was port vapoursynth-tedgemask: https://github.com/Asd-g/AviSynth-vsTEdgeMask
kedautinh12
12th March 2021, 09:54
Thanks pinterf.
WIP: http://avisynth.nl/index.php/Convolution3D
I seen mistake:
Examples
hqdn3d with all default values:
AviSource("Blah.avi")
Convolution3D (matrix=0, ythresh=3, cthresh=4, t_ythresh=3, t_cthresh=4, influence=3.0)
FranceBB
12th March 2021, 10:50
Wow! Another one to add to the collection.
When I replaced the DLL inside the plugins folder I didn't believe my eyes: I put it there in 2003!
Yeah, better than current "Registered User", you aint just anybody, fluff it up a bit.
Yeah, he's is right. You have done so much for the community by taking care of lots and lots of plugins and also (and most importantly) developing the core that you should have a big fat title in there, you deserve it!
After all, you're the current Avisynth maintainer, without you updating the core we're lost... (I mean it).
StainlessS
12th March 2021, 12:22
I seen mistake:
What would that mistake be then ?
I suspect you think that this
Examples
hqdn3d with all default values:
is some kind of Copy/Paste error, maybe it just means that with those Convolution3D args, it does the same job as hqdn3d().
Yeah, he's is right.
Hows bout "Avisynth Authoritarian",
Adjective: authoritarian
1) Characteristic of an absolute ruler or absolute rule; having absolute sovereignty.
2) Expecting unquestioning obedience.
or "Avisynth Autocrat"
Noun: autocrat
A cruel and oppressive dictator.
Both pretty tasty :)
EDIT: Your "Custom User Title" is set in your user Control Panel, "Edit Your Details" / "Custom User Title",
And appears under your User Name and above your Avatar (if you had one), where mine says ""HeartlessS Usurer".
Noun: Usurer
1) Someone who lends money at excessive rates of interest. [loan shark, moneylender, shylock]
and TinMan aint got no heart, and Userer instead of User, fiendishly clever huh! :)
Boulder
12th March 2021, 14:16
Curator of Avisynth ;)
pinterf
12th March 2021, 19:41
New (final) release.
Convolution3D v1.2
https://github.com/pinterf/Convolution3D/releases
Enjoy the life.
2021/03/12 v1.2 (pinterf)
- Implement routines in pure C
- Fix left/right edge buffer overread (theoretical crash)
- Add Y8 format
- parameter 'opt' when 0 it forces the C-only routines (disable SSE2)
- Add CMake build environment - linux/gcc compatible.
- Support INTEL_INTRINSIC define in code + CMake (non-x64 linux architecture support)
- Update README.md with build instructions
- Update documenation
real.finder
12th March 2021, 20:06
Asd was port vapoursynth-tedgemask: https://github.com/Asd-g/AviSynth-vsTEdgeMask
so I did update the list https://forum.doom9.org/showthread.php?p=1937480#post1937480 for this
tidying up ugly or ancient codes is my daily adrenaline.
if you have time, can you have a look on BlindPP? https://github.com/chikuzen/MPEG2DecPlus/blob/mpeg2decplus/src/dgdecode/BlindPP.cpp (it was part of MPEG2Dec, better to be moved as standalone plugin since Asd-g remove it from D2VSource/previously aka MPEG2Dec)
tormento
12th March 2021, 20:15
if you have time, can you have a look on BlindPP?
We should get a queue number. Poor Pinterf.
[emoji23]
LigH
12th March 2021, 23:05
And I'm still hoping for a new VDub2 with recent ffmpeg plugin ... okay, different thread.
Reel.Deel
13th March 2021, 09:01
What would that mistake be then ?
I suspect you think that this
Examples
hqdn3d with all default values:
is some kind of Copy/Paste error, maybe it just means that with those Convolution3D args, it does the same job as hqdn3d().
Just a copy paste error, when making a new page I usually just take another page from the same category and edit that.
tormento
13th March 2021, 09:58
You should change your user title to "Avisynth plugin archaeologist" or something like that :D
Given his passion for Ferenc Pinter (pinterf, are you italian?), perhaps "Avisynth visionary". And, at least, have one of his most iconic job as avatar.
https://i2.lensdump.com/i/IQgqQZ.md.jpg (https://lensdump.com/i/IQgqQZ)
StainlessS
13th March 2021, 13:55
OK, thanks R.D. looks like my guess was totally wrong
Convolution3D (matrix=0, ythresh=3, cthresh=4, t_ythresh=3, t_cthresh=4, influence=3.0)
is not about same as
hqdn3d(ls=4.0, cs=3.0, lt=6.0, ct=4.5, restart=7)
All defaults for both.
EDIT:
are you italian?
Methinks, Hungarian, igan ?.
Hows bout,
"Avisynth Ambassador"
Noun: ambassador:
1) A diplomat of the highest rank; accredited as representative from one country to another.
2) An informal representative. ""an ambassador of good will"".
"Avisynth Armourer", [ Noun: Armourer: A worker/craftsman skilled in making armour or arms. ]
"Avisynth Artisan", [ Noun: Artisan: A skilled worker/craftsman who practices some trade or handicraft. ]
"Avisynth Artificer",
Noun: Artificer:
1) Someone who is the first to think of or make something.
2) A skilled worker/craftsman who practices some trade or handicraft
3) An enlisted man responsible for the upkeep of small arms and machine guns etc.
FranceBB
13th March 2021, 14:24
Methinks, Hungarian, igan ?.
Given the famous Hungarian footballer Ferenc Puskás, it looks like "Ferenc" is an Hungarian name, so thinking that our Ferenc (Pinter) is Hungarian is a pretty safe guess.
hqdn3d(ls=4.0, cs=3.0, lt=6.0, ct=4.5, restart=7)
Uhm... HQDN3D? Is that the one from HDRCore, so 16bit interleaved only?
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.