Page 9 of 17

Re: About DGDenoise

Posted: Thu Feb 23, 2017 6:37 pm
by Guest
Volta?
Heck, I was talking about the triple slot Titan X
5760 cuda cores vs 2560 for a 1080

Re: About DGDenoise

Posted: Thu Feb 23, 2017 6:50 pm
by admin
LOLZ :lol:

Re: About DGDenoise

Posted: Thu Feb 23, 2017 7:17 pm
by Guest
that should be Titan Z, my boo boo

Re: About DGDenoise

Posted: Thu Feb 23, 2017 7:51 pm
by admin
I thought it was Titan X (compute 6.1) or GTX Titan Z (compute 3.5).

Re: About DGDenoise

Posted: Fri Feb 24, 2017 1:37 am
by Sharc
The speed of DGDenoise makes it possible to use the NLM algo even on my relatively slow system. That's quite something!
Some observations based on VHS tape sources::
For strength >0.05 the denoiser tends to smoothen low contrast areas, e.g. slightly darker grey areas on a brighter gray background get gradually washed out (a kind of detail loss, the picture tends to looks flat). This is however not specific to DGDenoise, it's similar with KNLMeansCL. (I am using interleave(original,filtered) rather than stackhorizontal for comparison.) As I mentioned before, I found the combination of DGDenoise with x264 --nr most efficient and effective.
Temporal smoothing: On some sources I have to apply temporal smoothing. I do this currently by adding temporalsoften(4,4,8,10,mode=2). Just curious whether the proposed temporal denoising in DGDenoise would do similar in one step?

Re: About DGDenoise

Posted: Fri Feb 24, 2017 5:52 am
by admin
Hi Sharc. Thank you for your feedback. Of course, as you say, all denoisers are going to struggle to reliably distinguish noise from real detail. That's something that only humans are currently very good at. But the NLM algorithm does a fair job of it.

I haven't decided the exact temporal denoising to be implemented [thank you for pointing out TemporalSoften()], but it will surely be done with additional parameters and not by adding a new filter. Regarding algorithms developers always try to do better than the existing ways in quality or performance, but one can't always succeed in that. We'll see.

Re: About DGDenoise

Posted: Fri Feb 24, 2017 4:06 pm
by Guest
Re: Speed of DGDenoise
One source --- two encodes
DGDenoise(strength=0) 56.88 fps
DGDenoise(strength=0.15) 67.30 fps

Re: About DGDenoise

Posted: Fri Feb 24, 2017 5:56 pm
by admin
Don't invoke DGDenoise(strength=0). It is not a no-op like DGSource(strength=0.0) is. Maybe it should be, or maybe we should punish people that add filters that do nothing. :scratch:

Re: About DGDenoise

Posted: Fri Feb 24, 2017 5:59 pm
by Guest
Sorry for the confusion
Didn't invoke DGDenoise(strength=0.0)
Was just trying to illustrate speed with no DGDenoise in the mix
maybe we should punish people that add filters that do nothing. :scratch:
Oh Jeez, Am I in for a beating?

Re: About DGDenoise

Posted: Fri Feb 24, 2017 6:01 pm
by admin
gonca wrote:Was just trying to illustrate speed with no DGDenoise in the mix
Just leave it out next time. ;) Put that little # thing at the front of the script line, to comment it out.

Anyway, it looks like your encode process is the bottleneck, because you were reporting 288 fps for DGDenoise() alone.

As always, I appreciate your feedback, especially with data. High numbers...but only for DG tools. OK? Only for DG. Carry on. 8-)

Re: About DGDenoise

Posted: Fri Feb 24, 2017 6:06 pm
by admin
I can't believe no-one went :wow: :wow: :wow: over my CUDASynth idea. Just ahead of the times, what can I do?

Re: About DGDenoise

Posted: Fri Feb 24, 2017 6:16 pm
by Guest
CUDASynth
That would be awesome!

Re: About DGDenoise

Posted: Fri Feb 24, 2017 6:18 pm
by admin
How much memory on your GPU, gonca? I'm going to need a power tester for CUDASynth.

Re: About DGDenoise

Posted: Fri Feb 24, 2017 6:25 pm
by Guest
8 GB of GDDR5

Re: About DGDenoise

Posted: Fri Feb 24, 2017 6:31 pm
by admin
Sweet, how many CUDA cores?

I tried to play with core clock but it was too unstable and didn't give much improvement.

Re: About DGDenoise

Posted: Fri Feb 24, 2017 6:39 pm
by Guest
1920 cuda cores

Cuda is scalable through SLI is it not?

Re: About DGDenoise

Posted: Fri Feb 24, 2017 6:47 pm
by admin
Perhaps, but we don't need SLI to use multiple GPUs. We would expect CUDASynth to handle it transparently.

Re: About DGDenoise

Posted: Mon Feb 27, 2017 12:37 pm
by Guest 2
admin wrote:I haven't decided the exact temporal denoising to be implemented [thank you for pointing out TemporalSoften()], but it will surely be done with additional parameters and not by adding a new filter.
As first iteration, get a look to KNLMeansCL source and just kick in the temporal part. I am curious to see speed.

And, please, give us more parameters to play with frame span, noise window, etc :bow:

Re: About DGDenoise

Posted: Mon Feb 27, 2017 12:51 pm
by admin
Greetings Guest 2.

Good advice, thanks. I'll have a look. I don't know if it uses a full 3D NLM or if it just hacks in some kind of temporal filter. I'm close to deciding not to bother anyway, unless someone shows me a clip that really needs the temporal component.

Exposing the search size and patch size by making them parameters is not so easy when the loops are unrolled at compile time (loop unrolling gives a massive speed-up). I could provide a set of selectable kernels with different fixed parameters (call them presets). What fixed parameter sets would be useful for you?

I've been looking for ways to make NLM separable, as that could give a substantial speed-up. One paper I saw does it by recasting NLM as a convolution, but I'm still grokking the details.

BTW, I added licensing checks to DGDecodeNV.dll in order to protect included standalone filters that don't depend on a DGI file. I want to reward only legit and loyal DG users (and not people at other forums that abuse me with full support of the administrators; at my core I am a decent, generous guy, but I hit back hard when attacked). Anyway, gonca kept asking me to add licensing. :D

Re: About DGDenoise

Posted: Mon Feb 27, 2017 3:32 pm
by Guest
Anyway, gonca kept asking me to add licensing. :D
Just thought you should be rewarded for your hard work, or at least some of your server costs covered.
Besides that, good beer and triple malt scotch aint cheap!! :(
Your loyalty and devotion to legitimate DG tools users is appreciated. :D

Re: About DGDenoise

Posted: Mon Feb 27, 2017 3:56 pm
by admin
Thanks! Getting ready to optimize the inner loop...

Image

Re: About DGDenoise

Posted: Mon Feb 27, 2017 4:26 pm
by Guest
Moonshine? :wow:

Re: About DGDenoise

Posted: Mon Feb 27, 2017 4:30 pm
by admin
Heck no, only the best for DG.

Re: About DGDenoise

Posted: Tue Feb 28, 2017 11:03 am
by admin
I slipstreamed 2053 to add a searchw parameter for the denoising. You can set it to 5, 7, or 9. The default is 5, corresponding to a=2 for KNLMeansCL.

Re: About DGDenoise

Posted: Tue Feb 28, 2017 12:07 pm
by Guest 2
admin wrote:What fixed parameter sets would be useful for you?
Fixed is of little use, as every movie has different noise (and film grain too).

Anyway, time is on your side. Thanks for all your efforts. :bow: