DGDenoise
Re: About DGDenoise
Here you go:
http://rationalqm.us/misc/NLM.rar
I may uprev to 2053 when I include this in the formal distribution.
http://rationalqm.us/misc/NLM.rar
I may uprev to 2053 when I include this in the formal distribution.
Re: About DGDenoise
Don't I need a DGDenoise.dll for the standalone filter (avisynth plugin)?
Where to put the dgdenoise.ptx file?
I want to denoise an .avi using the sourcefilter AviSource() followed by DGDenoise(). I can't index an .avi with DGIndexNV .....
Where to put the dgdenoise.ptx file?
I want to denoise an .avi using the sourcefilter AviSource() followed by DGDenoise(). I can't index an .avi with DGIndexNV .....
Re: About DGDenoise
Put the PTX file with DGDecodeNV.dll.
Just load the DGDecodeNV.dll and then put DGDenoise() in your script. You don't need to invoke DGSource().
Is the documentation not clear?
Just load the DGDecodeNV.dll and then put DGDenoise() in your script. You don't need to invoke DGSource().
Is the documentation not clear?
Re: About DGDenoise
Now it works, thanks. I had still an old DGDenoise.dll in my avisynth plugins folder.
Speed is very good. Congrats! With which settings of KNLMeansCL did you compare (d parameter)?
Speed is very good. Congrats! With which settings of KNLMeansCL did you compare (d parameter)?
Re: About DGDenoise
Give me an hour or so and I will try to run some tests on it
Hope I don't have the same brain fart as last time
Hope I don't have the same brain fart as last time
Re: About DGDenoise
Default, i.e., 0.Sharc wrote:With which settings of KNLMeansCL did you compare (d parameter)?
Re: About DGDenoise
Here some first results, tested on the fields of a noisy 720x576i video:
KNLMeansCL(0,3,4,4.0) 15.8fps
KNLMeansCL(1,3,4,4.0) 4.9fps
DGDenoise(strength=0.13) 13.2fps (strength>0.2 loosing details)
GPU: GT730
KNLMeansCL(0,3,4,4.0) 15.8fps
KNLMeansCL(1,3,4,4.0) 4.9fps
DGDenoise(strength=0.13) 13.2fps (strength>0.2 loosing details)
GPU: GT730
Re: About DGDenoise
Can you please give me the video and your script so I can look into the detail loss you mentioned, and also compare performance? I have a 1050 Ti.
Re: About DGDenoise
What did I mess up this time on the script
LoadPlugin("C:\Program Files (Portable)\dgdecnv\DGDecodeNV.dll")
DGSource("W:\HD\WORKFILES\VID_00000.DGI", fieldop=0)
DGDenoise(strength=0.5)
ConvertToYV12().AssumeFPS(24000,1001)
LoadPlugin("C:\Program Files (Portable)\dgdecnv\DGDecodeNV.dll")
DGSource("W:\HD\WORKFILES\VID_00000.DGI", fieldop=0)
DGDenoise(strength=0.5)
ConvertToYV12().AssumeFPS(24000,1001)
- Attachments
-
- VID_00000.AVS
- (184 Bytes) Downloaded 585 times
Re: About DGDenoise
You don't need the ConverttoYV12() and probably also the AssumeFPS(). Also, you can invoke the denoising in DGSource() and omit the DGDenoise() if you like.
Are you having a problem? Make sure you don't have an old DGDenoise.dll lying around to be autoloaded.
Are you having a problem? Make sure you don't have an old DGDenoise.dll lying around to be autoloaded.
Re: About DGDenoise
Cannot render file in MPC-BE and AVSMeter will not process it
New avs DGDenoise.ptx
New avs DGDenoise.ptx
Re: About DGDenoise
Please post the script directly. Don't attach it.
Open the script in VirtualDub. What is the error or exception?
What is the point of your graphic with the PTX file circled?
"will not process it" is not helpful. What is the error?
Open the script in VirtualDub. What is the error or exception?
What is the point of your graphic with the PTX file circled?
"will not process it" is not helpful. What is the error?
Re: About DGDenoise
Error in VDub is There is no function called DGDenoise
The image shows where I located DGDenoise.ptx
There are no old DGDenoise.dll on my system
AVSMeter opens and closes without doing anything, guess it can't load the script
The image shows where I located DGDenoise.ptx
There are no old DGDenoise.dll on my system
AVSMeter opens and closes without doing anything, guess it can't load the script
Re: About DGDenoise
Looks like you have a wrong DGDecodeNV.dll. Looking at your graphic it shows a date of 12/26 for DGDecodeNV.dll! You have to use the one I gave in the rar file. The code for DGDenoise() is in the new DGDecodeNV.dll.
Re: About DGDenoise
You are good
You just fixed dumb
Guess I was too antsy to try your denoiser
Thanks, all seems to be good again
You just fixed dumb
Guess I was too antsy to try your denoiser
Thanks, all seems to be good again
Re: About DGDenoise
Good to hear. Don't ding yourself, gonca; I can see how one might think if you invoke DGDenoise(), rather than using DGSource() parameters, you might need only the PTX. I'll clarify that in the doc. Thank you for your testing.
Re: About DGDenoise
Nah, I just jumped the gun and shot myself in the butt
I saw DGDecodeNV.dll and just left it, knowing full well that this dll has to be different from the old one to in-cooperate the new features.
I guess I was a kid in a candy store
Once again thanks for your patience
I will do some testing tomorrow after work
I saw DGDecodeNV.dll and just left it, knowing full well that this dll has to be different from the old one to in-cooperate the new features.
I guess I was a kid in a candy store
Once again thanks for your patience
I will do some testing tomorrow after work
Re: About DGDenoise
Your attitude and self-reflection is refreshing.
Looking forward to your test results.
Looking forward to your test results.
Re: About DGDenoise
Here the script which I used for the tests and speed comparison:admin wrote:Can you please give me the video and your script so I can look into the detail loss you mentioned, and also compare performance? I have a 1050 Ti.
Code: Select all
clip=AviSource("k:\Video Tape Captures\capture (2010-07-23 at 17-34-40).avi")
clip=converttoyv12(clip,interlaced=true)
clip=separatefields(clip)
#Filter=KNLMeansCL(clip,1,3,4,4.0)
Filter=DGDenoise(clip,strength=0.15)
out=weave(Filter)
return out
I will also run test with DGDenoise(deinterlace=2,strength=0.15)
Edit 1:
The latter doesn't make sense, I can't deinterlace/bob with DGDenoise, right?
GPU deinterlacing/bobbing works only via DGSource, correct?
Edit 2:
For visual inspection (blur, details) on PC monitor I am using:
Code: Select all
clip=AviSource("k:\Video Tape Captures\capture (2010-07-23 at 17-34-40).avi")
clip=converttoyv12(clip,interlaced=true)
clipbobbed=tdeint(clip,mode=1,order=1)
#Filter=KNLMeansCL(clipbobbed,1,3,4,4.0) #.separatefields().selectevery(4,0,3).weave() #for re-interlaceing
Filter=DGDenoise(clipbobbed,strength=0.15) #.separatefields().selectevery(4,0,3).weave() #for re-interlacing
out1=clipbobbed
out2=Filter
return stackhorizontal(out1,out2)
Here is the sample:
http://www.mediafire.com/file/71i6u0pmc ... ample1.avi
Re: About DGDenoise
First, if you want to compare the quality and performance you have to use comparable parameters. But even with the ones you
chose (that favor KNLMeansCL) I see no detail loss or any significant differences with this script:
loadplugin("dgdecodenv.dll")
loadplugin("knlmeanscl.dll")
src=avisource("noisysample1.avi").separatefields().converttoyv12()
d=src.DGDenoise(strength=0.15).weave.subtitle("DG")
k=src.knlmeanscl(h=4.0).weave.subtitle("K")
stackhorizontal(k,d)
If you disagree, please show it with screenshots.
Coming to performance, now we have to use comparable parameters, i.e., we don't want to unfairly disadvantage KNLMeansCL by using settings that slow it down. For example, DGDenoise implements only d=0. Here is the script I use:
loadplugin("dgdecodenv.dll")
loadplugin("dgdenoise.dll")
loadplugin("knlmeanscl.dll")
dgsource("rat.dgi").assumefps(10000)
DGDenoise(strength=0.5)
#knlmeanscl(h=4.0)
Note that I use 64-bit everything. Ignore the 10000 frame rate. I do that for playing in VirtualDub. I use a 1050 Ti with i7-4770. Following are the respective results.
-------------------------------------------------------------------------------------
KNLmeansCL
Number of frames: 839
Length (hh:mm:ss.ms): 00:00:00.084
Frame width: 1920
Frame height: 1080
Framerate: 10000.000 (10000/1)
Colorspace: YV12
Frames processed: 839 (0 - 838)
FPS (min | max | average): 6.272 | 15.78 | 15.46
Memory usage (phys | virt): 190 | 303 MiB
Thread count: 21
CPU usage (average): 12%
Time (elapsed): 00:00:54.275
-------------------------------------------------------------------------------------
DGDenoise
Number of frames: 839
Length (hh:mm:ss.ms): 00:00:00.084
Frame width: 1920
Frame height: 1080
Framerate: 10000.000 (10000/1)
Colorspace: YV12
Frames processed: 839 (0 - 838)
FPS (min | max | average): 19.35 | 24.10 | 23.74
Memory usage (phys | virt): 225 | 314 MiB
Thread count: 17
CPU usage (average): 12%
Time (elapsed): 00:00:35.339
And here my results for noisysample1 (without the KNLM comparison). BTW, it's better to use longer clips for performance testing.
-------------------------------------------------------------------------------------
DGDenoise
Number of frames: 93
Length (hh:mm:ss.ms): 00:00:03.720
Frame width: 720
Frame height: 576
Framerate: 25.000 (25/1)
Colorspace: YV12
Frames processed: 93 (0 - 92)
FPS (min | max | average): 39.11 | 42.78 | 41.53
Memory usage (phys | virt): 133 | 126 MiB
Thread count: 14
CPU usage (average): 12%
Time (elapsed): 00:00:02.240
Bottom line: I cannot reproduce your reported results, either for quality or for speed. So if speed was more important than possible gains from using slower KNLMeansCL parameters, then DGDenoise is to be preferred. If you must have the slower settings, then KNLMeansCL is to be preferred. I would be very interested to see cases where those settings really help very much.
chose (that favor KNLMeansCL) I see no detail loss or any significant differences with this script:
loadplugin("dgdecodenv.dll")
loadplugin("knlmeanscl.dll")
src=avisource("noisysample1.avi").separatefields().converttoyv12()
d=src.DGDenoise(strength=0.15).weave.subtitle("DG")
k=src.knlmeanscl(h=4.0).weave.subtitle("K")
stackhorizontal(k,d)
If you disagree, please show it with screenshots.
Coming to performance, now we have to use comparable parameters, i.e., we don't want to unfairly disadvantage KNLMeansCL by using settings that slow it down. For example, DGDenoise implements only d=0. Here is the script I use:
loadplugin("dgdecodenv.dll")
loadplugin("dgdenoise.dll")
loadplugin("knlmeanscl.dll")
dgsource("rat.dgi").assumefps(10000)
DGDenoise(strength=0.5)
#knlmeanscl(h=4.0)
Note that I use 64-bit everything. Ignore the 10000 frame rate. I do that for playing in VirtualDub. I use a 1050 Ti with i7-4770. Following are the respective results.
-------------------------------------------------------------------------------------
KNLmeansCL
Number of frames: 839
Length (hh:mm:ss.ms): 00:00:00.084
Frame width: 1920
Frame height: 1080
Framerate: 10000.000 (10000/1)
Colorspace: YV12
Frames processed: 839 (0 - 838)
FPS (min | max | average): 6.272 | 15.78 | 15.46
Memory usage (phys | virt): 190 | 303 MiB
Thread count: 21
CPU usage (average): 12%
Time (elapsed): 00:00:54.275
-------------------------------------------------------------------------------------
DGDenoise
Number of frames: 839
Length (hh:mm:ss.ms): 00:00:00.084
Frame width: 1920
Frame height: 1080
Framerate: 10000.000 (10000/1)
Colorspace: YV12
Frames processed: 839 (0 - 838)
FPS (min | max | average): 19.35 | 24.10 | 23.74
Memory usage (phys | virt): 225 | 314 MiB
Thread count: 17
CPU usage (average): 12%
Time (elapsed): 00:00:35.339
And here my results for noisysample1 (without the KNLM comparison). BTW, it's better to use longer clips for performance testing.
-------------------------------------------------------------------------------------
DGDenoise
Number of frames: 93
Length (hh:mm:ss.ms): 00:00:03.720
Frame width: 720
Frame height: 576
Framerate: 25.000 (25/1)
Colorspace: YV12
Frames processed: 93 (0 - 92)
FPS (min | max | average): 39.11 | 42.78 | 41.53
Memory usage (phys | virt): 133 | 126 MiB
Thread count: 14
CPU usage (average): 12%
Time (elapsed): 00:00:02.240
Bottom line: I cannot reproduce your reported results, either for quality or for speed. So if speed was more important than possible gains from using slower KNLMeansCL parameters, then DGDenoise is to be preferred. If you must have the slower settings, then KNLMeansCL is to be preferred. I would be very interested to see cases where those settings really help very much.
Re: About DGDenoise
I don't disagree at all. That's exactly why I choose strength=0.15 (and h=4.0 for KNLMeanCL) in my test, to obtain similar denoising results for both filters.admin wrote:First, if you want to compare the quality and performance you have to use comparable parameters. But even with the ones you
chose (that favor KNLMeansCL) I see no detail loss or any significant differences with this script:
loadplugin("dgdenoise.dll")
loadplugin("knlmeanscl.dll")
src=avisource("noisysample1.avi").separatefields().converttoyv12()
d=src.DGDenoise(strength=0.15).weave.subtitle("DG")
k=src.knlmeanscl(h=4.0).weave.subtitle("K")
stackhorizontal(k,d)
If you disagree, please show it with screenshots.
What I was saying is that when I set strength > 0.2 it begins to blur/loose details for my clip. I wrote this just because in your example (portrait) and documentation you set strength=0.5 (default?) which would be too high for my test clip, I felt. Don't you agree?
Edit:
Now I am confused by the first line of your script loadplugin("dgdenoise.dll"). Do I still need a dgdenoise.dll, or should this be dgdecodeNV.dll ?
Re: About DGDenoise
Ah, I see now. Strength 0.5 is too much for typical clips. That's a good point. The default is actually 0.0, so that denoising is off by default. I was using 0.5 for the portrait_noise clip, which needs very strong denoising. I will change the example in the doc to 0.15. Thank you.
Of course, high values of h will do the same for KNLMeansCL. BTW, strength and h are not defined the same way and do not scale the same way. You just have to choose your strength and h empirically.
Do you have any ideas about our discrepant performance results?
Of course, high values of h will do the same for KNLMeansCL. BTW, strength and h are not defined the same way and do not scale the same way. You just have to choose your strength and h empirically.
Do you have any ideas about our discrepant performance results?
Re: About DGDenoise
That was my mistake. DGDenoise() is available in DGDecodeNV.dll. I will edit it. Well spotted and thanks for pointing it out.Sharc wrote:Now I am confused by the first line of your script loadplugin("dgdenoise.dll"). Do I still need a dgdenoise.dll, or should this be dgdecodeNV.dll?
(I had it as a stand-alone filter before I put it into DGDecodeNV.dll.)
Re: About DGDenoise
No, not yet. I will repeat the test after the current job has finished. I'll report back.admin wrote: Do you have any ideas about our discrepant performance results?
Re: About DGDenoise
Sweet, thank you.