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

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

 

Go Back   Doom9's Forum > Capturing and Editing Video > VapourSynth

Reply
 
Thread Tools Search this Thread Display Modes
Old 26th January 2023, 10:54   #101  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,153
@Dogway, if you had problem with KNLMeansCL, you can ask Asd-g to port nlm_cuda to avs+
https://github.com/Asd-g/AviSynthPlus-Scripts/issues
kedautinh12 is offline   Reply With Quote
Old 26th January 2023, 11:48   #102  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 2,352
I think he is taking a break, anyway I think it's better he does what he pleases.
DGDenoise is CUDA NL Means, but it lacks the options KNLMeansCL has besides the important 'rclip' for guidance.

BTW, updated Oyster to fix a chroma issue, chroma always happens to be an afterthought, poor chroma...
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread
Dogway is offline   Reply With Quote
Old 26th January 2023, 11:50   #103  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
This as a graph
Code:
clip = core.vivtc.VFM(clip,0).vivtc.VDecimate()

clip = core.fmtc.bitdepth( clip, bits = 32 )
clip = core.fmtc.resample( clip, css = "444")

ref_s = Oy.Basic(clip, short_time=True,radius=2)
clip = Oy.Deringing(clip, ref_s, block_step=2,radius=2)
Oyster: https://i.imgur.com/ggNKprI.png
My gpu mod: https://i.imgur.com/2uvZ1Z7.png

I counted 10 KNLMeansCL calls and 4 Dfttest calls

You can created it with vspipe -g full or simple
Use https://dreampuf.github.io/GraphvizOnline with dot engine
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database

Last edited by ChaosKing; 26th January 2023 at 11:52.
ChaosKing is offline   Reply With Quote
Old 26th January 2023, 12:10   #104  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 2,352
My gosh... did he ever manage to run that? in 2017 or therebouts?
Looks like he did some kind of manual NN, using NLMeans residuals and then refining the output.

I liked the deblocking, looks like a clean reinterpretation, I wonder if there's any actual ML model designed for this task.

As for neo_dfttest I tested it before but didn't make a big difference speed wise, just testing on AvsPmod GuidedBlur felt much faster but haven't benchmarked, also I had to parametrize it. GuidedBlur is also in VS so maybe you can check if it makes it any faster.

Those graphs look cool, although I'm still searching for an IDE with logic highlighting.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread
Dogway is offline   Reply With Quote
Old 26th January 2023, 12:18   #105  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
Quote:
Originally Posted by Dogway View Post
My gosh... did he ever manage to run that? in 2017 or therebouts?
You click on run, got to sleep and in the morning 5 seconds are rendered

He showed mostly Britney Spears music videos, so not that unreasonable for a ~3min long clip if Oyster was created for these short clips.

I think it was more for education purpouses.
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database
ChaosKing is offline   Reply With Quote
Old 26th January 2023, 12:33   #106  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
Quote:
Originally Posted by Dogway View Post
As for neo_dfttest I tested it before but didn't make a big difference speed wise, just testing on AvsPmod GuidedBlur felt much faster but haven't benchmarked, also I had to parametrize it. GuidedBlur is also in VS so maybe you can check if it makes it any faster.
Where did you saw GuidedBlur for VS?
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database
ChaosKing is offline   Reply With Quote
Old 26th January 2023, 13:00   #107  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 2,352
Sorry was called GuidedFilter.
Yes I remember encoding anime shorts at 0.1 fps with tnlmeans, the good days haha
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread
Dogway is offline   Reply With Quote
Old 26th January 2023, 22:15   #108  |  Link
zorr
Registered User
 
Join Date: Mar 2018
Posts: 447
There's also WNNM. I'm running some tests with it but can't say anything conclusive yet. It's supposed to be better quality than BM3D.
zorr is offline   Reply With Quote
Old 26th January 2023, 23:18   #109  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
Quality seems to be better with the loop approach compared to plain bm3d (not Oyster related)

Code:
ref = haf.SMDegrain(clip,tr=3, thSAD=1000)
clip = core.fmtc.bitdepth( clip, bits = 32)
ref = core.fmtc.bitdepth( ref, bits = 32 )

for i in range(5):
    if i == 0:
        previous = clip
    elif i == 1:
        previous = denoised
    else:
        previous = core.std.Expr([clip, previous, denoised], "x y - {factor} * z +".format(factor=0.1))
    denoised = previous.wnnm.WNNM(sigma=7,  radius = 3, rclip = ref)
The more iterations the lower sigma needs to be it seems.
Even 10 iterations are still faster then Oyster
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database

Last edited by ChaosKing; 26th January 2023 at 23:22.
ChaosKing is offline   Reply With Quote
Old 27th January 2023, 00:32   #110  |  Link
zorr
Registered User
 
Join Date: Mar 2018
Posts: 447
Quote:
Originally Posted by ChaosKing View Post

Code:
ref = haf.SMDegrain(clip,tr=3, thSAD=1000)
...
    denoised = previous.wnnm.WNNM(sigma=7,  radius = 3, rclip = ref)
I was wondering about the reference clip. The official implementation doesn't use it and it's probably there just because BM3D has it and it was easy to add.

Perhaps the loop approach is a replacement for the reference clip. Or maybe you're supposed to generate a new ref clip for each iteration. Have you tried it without the reference clip?
zorr is offline   Reply With Quote
Old 27th January 2023, 01:28   #111  |  Link
Emulgator
Big Bit Savings Now !
 
Emulgator's Avatar
 
Join Date: Feb 2007
Location: close to the wall
Posts: 1,531
AviSynth+ 3.7.3 Oyster attempt, thanks Dogway for your patience !
<Sourcefilter>
<Sourcefilter>
va=AudioDub(v,a)
clp=va.ConvertToYV24().ConvertBits(32)
sup = oyster_Super(clp)
ref_f = oyster_Basic(clp, sup, short_time=False)
ref_s = oyster_Basic(clp, sup, short_time=True)
oyster_Deblocking(clp, ref_f, block_step=2)

still gets me
"nnedi3wrap: Field must be 0 or 1 for scaling"
ResizersPack 10.9.avsi, line 678
DeblockPack 2.7.avsi, line 396
Path\File\script.avs line 62,
(which is sup=oyster_Super(clp))

Which version of nnedi3 is it I am hunting ?
I have NNEDI3CL.dll 1.0.6.0 with nnedi3_weights.bin
and nnedi3.dll 0.9.4.61
Attached Images
 
__________________
"To bypass shortcuts and find suffering...is called QUALity" (Die toten Augen von Friedrichshain)
"Data reduction ? Yep, Sir. We're that issue working on. Synce invntoin uf lingöage..."

Last edited by Emulgator; 27th January 2023 at 01:35.
Emulgator is offline   Reply With Quote
Old 27th January 2023, 02:52   #112  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 2,352
Maybe your source is tagged as interlaced in frameprops?
Try with:
Code:
propSet("_FieldBased",0)

sup = oyster_Super(clp)
ref_s = oyster_Basic(clp, sup, short_time=True)
oyster_Deblocking(clp, ref_s, block_step=2)
You also need latest yugefunc on my repo.
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread
Dogway is offline   Reply With Quote
Old 27th January 2023, 14:22   #113  |  Link
Emulgator
Big Bit Savings Now !
 
Emulgator's Avatar
 
Join Date: Feb 2007
Location: close to the wall
Posts: 1,531
Thanks for the tip, Dogway!
I had yugefunc 0.9, now 1.0 is in, still no success.
Properties were Frame Based before and still is...

P.S. Ouch, AvsPMod tells so at its status bar.

The real frame properties are _FieldBased (2 [top-field])
(Source is 23.976 pulldowned to 29.97fps.
Sourcefilter was .d2v with Forced Film so good I hoped.)

propSet("_FieldBased",0) returns error: invalid arguments to propSet, I have to dig...
Was MYFAULTOFCOURSE, I had videostream named variable, so last() was empty or contained something else...


To use PropSet was the right hint, thanks again, Dogway.
Now with these elaborated scripts under AviSynth+ I have to use these property guided thingies much more often.

And now under AviSynth+ oyster_Deblocking has indeed delivered the first frame in like 30secs ! Yay !
And the next frames within 1..2secs. RTX3080 doing the dirty work. Wow.

Many thanks to all involved ! That had been a nice community climbing.
__________________
"To bypass shortcuts and find suffering...is called QUALity" (Die toten Augen von Friedrichshain)
"Data reduction ? Yep, Sir. We're that issue working on. Synce invntoin uf lingöage..."

Last edited by Emulgator; 28th January 2023 at 01:17.
Emulgator is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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

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

Forum Jump


All times are GMT +1. The time now is 19:01.


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