DGDenoise

These CUDA filters are packaged into DGDecodeNV, which is part of DGDecNV.
User avatar
Sherman
Posts: 576
Joined: Mon Jan 06, 2020 10:19 pm

DGDenoise

Post by Sherman »

People could smell it from miles away. Peww!
User avatar
Curly
Posts: 712
Joined: Sun Mar 15, 2020 11:05 am

DGDenoise

Post by Curly »

Who puts foinature in the kitchen? Is that a frog thing?
User avatar
Britney
Posts: 145
Joined: Sun Aug 09, 2020 3:24 pm

DGDenoise

Post by Britney »

Frogs don't have kitchens, do they?
DAE avatar
Guest 2
Posts: 903
Joined: Mon Sep 20, 2010 2:18 pm

DGDenoise

Post by Guest 2 »

Rocky wrote:
Wed Feb 02, 2022 12:30 pm
Nope. The low bits are filled with zeros anyway when upconverting the bit depth.
And if I feed it with UHD 10/12 bit video, it work on YUV420P16 internally with 16 bit precision, right?
DAE avatar
Guest 2
Posts: 903
Joined: Mon Sep 20, 2010 2:18 pm

DGDenoise

Post by Guest 2 »

Britney wrote:
Wed Feb 02, 2022 12:58 pm
Frogs don't have kitchens, do they?
We prefer to eat raw food. Whatever it comes. Popstars too.
User avatar
Rocky
Posts: 3557
Joined: Fri Sep 06, 2019 12:57 pm

DGDenoise

Post by Rocky »

Guest 2 wrote:
Thu Feb 03, 2022 9:41 am
And if I feed it with UHD 10/12 bit video, it work on YUV420P16 internally with 16 bit precision, right?
Yes. of course. But I doubt you gain much by feeding it YV12 converted to YUV420P16, versus just processing in YV12.
User avatar
Britney
Posts: 145
Joined: Sun Aug 09, 2020 3:24 pm

DGDenoise

Post by Britney »

Guest 2 wrote:
Thu Feb 03, 2022 9:44 am
We prefer to eat raw food. Whatever it comes. Popstars too.
Goodness gracious, you want to eat me? No! But I do appreciate you still putting me in the star category. Maybe we can hang out.
DAE avatar
Guest 2
Posts: 903
Joined: Mon Sep 20, 2010 2:18 pm

DGDenoise

Post by Guest 2 »

Rocky wrote:
Thu Feb 03, 2022 10:07 am
But I doubt you gain much by feeding it YV12 converted to YUV420P16, versus just processing in YV12.
Well, it actually does, both in speed and size. :D

Test on extract from Eternals BD, x265 -crf 22 --preset slow.

Code: Select all

SetMemoryMax()
SetFilterMTMode("DEFAULT_MT_MODE", 2)
LoadPlugin("D:\Eseguibili\Media\DGDecNV\DGDecodeNV.dll")
DGSource("F:\In\2_35 Eternals\eternals.dgi",ct=140,cb=140,cl=0,cr=0)
DGDenoise(strength=0.15, cstrength=0.15, blend=0.1, cblend=0.1, searchw=9)
encoded 4488 frames in 983.53s (4.56 fps), 1220.50 kb/s, Avg QP:25.91

Code: Select all

SetMemoryMax()
SetFilterMTMode("DEFAULT_MT_MODE", 2)
LoadPlugin("D:\Eseguibili\Media\DGDecNV\DGDecodeNV.dll")
DGSource("F:\In\2_35 Eternals\eternals.dgi",ct=140,cb=140,cl=0,cr=0)
ConvertBits(16)
DGDenoise(strength=0.15, cstrength=0.15, blend=0.1, cblend=0.1, searchw=9)
fmtc_bitdepth (bits=10,dmode=8)
encoded 4488 frames in 945.80s (4.75 fps), 1185.53 kb/s, Avg QP:25.94
User avatar
Rocky
Posts: 3557
Joined: Fri Sep 06, 2019 12:57 pm

DGDenoise

Post by Rocky »

You have to clear the windows cache between the two encodes. Need a special utility for that, or reboot.
DAE avatar
Boulder
Posts: 113
Joined: Fri Jul 29, 2011 7:22 am

DGDenoise

Post by Boulder »

It's faster because x265 works faster if the bitrate is lower.
User avatar
Rocky
Posts: 3557
Joined: Fri Sep 06, 2019 12:57 pm

DGDenoise

Post by Rocky »

Why is the bitrate lower?
DAE avatar
Boulder
Posts: 113
Joined: Fri Jul 29, 2011 7:22 am

DGDenoise

Post by Boulder »

The increased precision might cause a stronger denoising effect, or it simply stabilizes the image more and x265 is able to utilize reference frames better. It would also be interesting to know if the frame type decisions also change - I'd expect them to be different.
User avatar
Selur
Posts: 134
Joined: Mon Nov 05, 2012 3:49 pm
Location: Germany
Contact:

DGDenoise

Post by Selur »

Any plans to add DGDenoise to Vapoursynth too?

Cu Selur
User avatar
Rocky
Posts: 3557
Joined: Fri Sep 06, 2019 12:57 pm

DGDenoise

Post by Rocky »

If you take care of my request in the link below, I will do it.

https://www.rationalqm.us/board/viewtop ... 0a0#p16782
User avatar
Selur
Posts: 134
Joined: Mon Nov 05, 2012 3:49 pm
Location: Germany
Contact:

DGDenoise

Post by Selur »

No problem. Done.
btw. is there an option in the board software (could find it) to enable that I get an email when I get a notification?

Cu
Selur
User avatar
Rocky
Posts: 3557
Joined: Fri Sep 06, 2019 12:57 pm

DGDenoise

Post by Rocky »

Great thanks. At the bottom of the thread hit the wrench pulldown and select subscribe topic.
User avatar
Selur
Posts: 134
Joined: Mon Nov 05, 2012 3:49 pm
Location: Germany
Contact:

DGDenoise

Post by Selur »

I'm subscribed, but I don't get any email notifications.
(yes, I did check my spamfolder)
I'll switch to another email and see if that helps. :)

Cu Selur
DAE avatar
Guest 2
Posts: 903
Joined: Mon Sep 20, 2010 2:18 pm

DGDenoise

Post by Guest 2 »

Selur wrote:
Fri Jan 06, 2023 11:26 am
I'm subscribed, but I don't get any email notifications.
I have (had?) the same problem too.
User avatar
Selur
Posts: 134
Joined: Mon Nov 05, 2012 3:49 pm
Location: Germany
Contact:

DGDenoise

Post by Selur »

Thanks for letting me know it's not just me. (Changing the email didn't help.)

Cu
Selur
User avatar
Rocky
Posts: 3557
Joined: Fri Sep 06, 2019 12:57 pm

DGDenoise

Post by Rocky »

admin will look into it.
User avatar
Rocky
Posts: 3557
Joined: Fri Sep 06, 2019 12:57 pm

DGDenoise

Post by Rocky »

As promised here is a stand-alone Vapoursynth native (API4) version of DGDenoise. If it works fine for you, I will release it officially.

https://rationalqm.us/misc/DGDenoise_selur.rar
User avatar
thechaoscoder
Posts: 49
Joined: Tue Jul 14, 2020 8:34 am

DGDenoise

Post by thechaoscoder »

Cool :hat:

I noticed some minor things:
- strength/cstrength can go over 1.0? Documentaion says range is 0.1-1.0, but it accepts 8.0
- typo in error msg: DGDenoise: searchw must be 5, 7, or 90
- Normally function names in VS start with a capital letter. To keep it consistent with the rest I would suggest dgdenoise.DGDenoise()
or even better dgdenoise.Denoise(), <-- we already know it comes from dgdenoise via namespace
User avatar
Rocky
Posts: 3557
Joined: Fri Sep 06, 2019 12:57 pm

DGDenoise

Post by Rocky »

Greetings thechaoscoder! Thank you for the feedback.
thechaoscoder wrote:
Sat Jan 28, 2023 5:08 pm
- strength/cstrength can go over 1.0? Documentation says range is 0.1-1.0, but it accepts 8.0
The documentation says "Typically 0.1-1.0", so I'll leave it as is. It's inconsequential.
- typo in error msg: DGDenoise: searchw must be 5, 7, or 90
Fixed.
- Normally function names in VS start with a capital letter. To keep it consistent with the rest I would suggest dgdenoise.DGDenoise()
or even better dgdenoise.Denoise(), <-- we already know it comes from dgdenoise via namespace
I changed it to DGDenoise(). I prefer to leave the DG prefix to show that it is the same algorithm as the one in DGDecodeNV.

The RAR file was updated on line.
User avatar
thechaoscoder
Posts: 49
Joined: Tue Jul 14, 2020 8:34 am

DGDenoise

Post by thechaoscoder »

Rocky wrote:
Sat Jan 28, 2023 5:34 pm
The documentation says "Typically 0.1-1.0", so I'll leave it as is. It's inconsequential.
:agree:

Another small thing:
YUV444P8 - YUV444P16 are also accepted + Output is in YUV444P* then.
Perhaps the error message and docs need to be updated?

DGDenoise: input must be YV12 or YUV420P16

Doc: The input clip must be in the YV12 or YUV420P16 format. DGSource() delivers YUV420P16 when the source stream has a 10/12/16-bit depth.
User avatar
Rocky
Posts: 3557
Joined: Fri Sep 06, 2019 12:57 pm

DGDenoise

Post by Rocky »

I need to reject the 444 formats as the filter is not designed for them, and the result is undefined. Do you need 444 support?
Post Reply