View Full Version : Does this look any good, as intra-frame noise reduction goes?
wonkey_monkey
3rd March 2021, 23:27
Just wondered what people's thoughts might be on this example of noise reduction, as it's not something I do a lot of myself:
(the world "Original" is burned into the video so it was also subject to denoising)
https://i.imgur.com/N5vEWfG.png
https://i.imgur.com/HttExy2.png
https://i.imgur.com/oahRTVy.png
Would you say that's good, bad, or mediocre? Too "glowy"? Too much lost contrast or detail, compared to the amount of denoising?
poisondeathray
3rd March 2021, 23:41
Would you say that's good, bad, or mediocre? Too "glowy"? Too much lost contrast or detail, compared to the amount of denoising?
Yes too "glowy" - the radius of the "blur" is too high, too much detail loss
videoh
4th March 2021, 02:44
Maybe try an NLMeans based algorithm? KNLMeansCL, DGDenoise, etc.
feisty2
4th March 2021, 06:36
bad,,,
FranceBB
4th March 2021, 09:33
I'm kinda known for being one that filters a lot, so take my advice with a bit of salt, but I would do something like:
super = MSuper(pel=2, sharp=1)
bv1 = MAnalyse(super, isb = true, delta = 1, overlap=4)
fv1 = MAnalyse(super, isb = false, delta = 1, overlap=4)
bv2 = MAnalyse(super, isb = true, delta = 2, overlap=4)
fv2 = MAnalyse(super, isb = false, delta = 2, overlap=4)
MDegrain2(super,bv1,fv1,bv2,fv2,thSADC=800, thSAD=800)
for temporal degrain followed by a spatial one if it's needed like DFTTest:
dfttest(sigma=64, tbsize=1, lsb_in=false, lsb=false, Y=true, U=true, V=true, opt=0, dither=0)
KNLMeansCL - as suggested by others - is also kinda good and it uses the GPU dedicated memory, so it's faster.
You can start with:
KNLMeansCL(d=1, a=2, s=4, h=4, device_type="auto")
and increase step by step 'till you find your sweet spot.
Oh and by the way, all the ones above can work in 16bit planar, so I would also suggest you to work with 16bit precision to avoid banding and then use f3kdb to deband a bit before you dither down to 8bit or whatever bit depth you wanna get as output.
We can definitely get something more out of the source, but I'm curious about what you used in your screenshot. Is it Deen() or eDeen()? It looks like it, but I would advise against it as it's known to destroy details and there are better alternatives nowadays. Anyway, let me know. If you could share a little sample it would be appreciated as we can't denoise images since they're... well... static and temporal filters wouldn't work.
Cheers,
Frank
ChaosKing
4th March 2021, 12:57
Too much detail loss and "glowy". If you can provide a sample I'm sure you'll get some better script/filter advices.
wonkey_monkey
4th March 2021, 13:54
To clarify, I'm not looking for other ways to denoise this clip, but rather comments on this particular denoising. It's a sort of side effect of another filter I'm working on but I wasn't sure if it was worth spending any time on the denoising thing. Sounds like it isn't, so that will save me time. Just in case here are a few more examples with varying parameters.
https://i.imgur.com/akg6qux.png
feisty2
4th March 2021, 14:58
vaporsynth has come to save the world
import vapoursynth as vs
core = vs.get_core()
clp = core.imwri.Read(r'C:\Users\Administrator\Desktop\N5vEWfG.png', float_output=True)
clp = core.std.Crop(clp, 0, 480,0,0)
clp = core.dfttest.DFTTest(clp, smode=0, sosize=0, tbsize=1, tosize=0, tmode=0, sbsize=41, slocation=[0,1024, 0.5,0, 1,0])
ref = core.bm3d.Basic(clp,sigma=10,th_mse=10*160+1200,hard_thr=3.2,block_size=8,block_step=1,group_size=32,bm_range=24,bm_step=1)
ref = core.bm3d.Basic(ref,sigma=8,th_mse=8*160+1200,hard_thr=3.2,block_size=4,block_step=1,group_size=32,bm_range=24,bm_step=1)
clp = core.bm3d.Final(clp,ref,sigma=5,th_mse=5*120+800,block_size=4,block_step=1,group_size=32,bm_range=24,bm_step=1)
clp = core.bm3d.Final(clp,ref,sigma=4,th_mse=4*120+800,block_size=4,block_step=1,group_size=32,bm_range=24,bm_step=1)
clp.set_output()
https://i.imgur.com/aaP6jE1.png
feisty2
4th March 2021, 15:13
for temporal degrain followed by a spatial one if it's needed like DFTTest:
dfttest(sigma=64, tbsize=1, lsb_in=false, lsb=false, Y=true, U=true, V=true, opt=0, dither=0)
you wouldn't be using dfttest with such silly settings if you know anything at all about frequency domain denoisers
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.