xekon
11th January 2013, 02:56
From the denoisers ive tried, I settled on FFT3Dgpu two pass after reading this thread: http://forum.doom9.org/showthread.php?t=139028
Let me start by saying that I dont really care for grain in my anime, some people love it, some do not.
The cleaning power of the two pass FFT3D was the best of everything I had tried.
I started to notice however that it did blur out more detail than I would have liked.
Lines that were fairly clean/sharp in the original were noticeably softer after FFT3D.
So then I had a look at this thread with the chalkboard pictures: http://forum.doom9.org/showthread.php?t=162598
I picked out all of the images that resulted in a strong denoise without losing the fine details. (Mdegrain/Nlmeans/dfttest/MCTemporalDenoise)
Mdegrain seemed to do the best job at retaining detail, but it just wasnt doing Heavy enough denoising for my taste (for anime)
Nlmeans seemed to do an amazing job at denoising and retaining detail, however it was noted it was too slow to be useable in most cases, then I found NLMeansCL on here.
NLMeansCL works best spatialy from what I can tell, so alone this denoises well, but there are still a large amount of fluctuating pixels on grainy sources.(because no temporal)
So I tried using the two together and I really love the result that I am seeing.
It gives me the same amount or more denoising than what I got from the two pass FFT3D but retains detail better!
I even get a smaller file size than two pass FFT3D.(not that file size mattered to me)
original:
http://i1208.photobucket.com/albums/cc361/xekon/sdbz4-orig001096_zps0f37c79f.png
SMDegrain+NLMeansCL:
http://i1208.photobucket.com/albums/cc361/xekon/sdbz0-both001096_zpsbf940ae1.png
FPS when encoding this clip (q9450@3.2+gtx480):
SMDegrain+NLMeansCL 1.11 fps (7,084KB)
SMDegrain 2.70 fps (8,936KB)
NLMeansCL 1.36 fps (9,350KB)
fft3dgpu 3.73 fps (7,255KB)
no denoise-x264 8.93 fps (18,772KB)
original-m2v 23.9 fps (51,900KB)
.avs using both:
MPEG2Source("F:\AviSynth\095.d2v")
ColorMatrix()
inH = height
inW = width
Spline64Resize(inW*2, inH*2).Stab(dxmax = 1, dymax = 1, range = 1, mirror = 15).Spline64Resize(inW, inH)
SMDegrain(tr=3,thSAD=500, RefineMotion=False, Search=5)
NLMeansCL(hC=2.2, A=10, S=3, B=0, plane=4, aa=100)
LSFmod(strength=50)
Masked_DHA(rx=1.5, ry=1.5, darkstr=0.6, brightstr=1, lowsens=50, highsens=50, ss=1.0)
HQDeringmod()
Spline64Resize(640, 480)
GradFun3(0.465)
The attached file has a small test .m2v clip (1,417 frames), 5 comparison encodes of the test clip, the .avs files used, and the .bat used to do the encoding.
http://www.mediafire.com/?e9geqru9q0gajth
I am still relatively new at denoising when compared to some of the Avisynth users with years experience under their belt.
So although I like what I see when I look at the results of Mdegrain + NLMeansCL, I am worried that I might be overlooking something that could use improvement.
So if you notice artifacts, or anywhere I could make an improvement please let me know what you noticed and what you think would improve it.
Also if you manage to speed the SMDegrain+NLMeansCL .avs up at all I would love to hear about that as well.
One Thing that I did notice is that there is some banding on some of the frames, I am still trying to figure out what I need to adjust to resolve that. Looking closer the frames where I am noticing banding, the banding appears to be present in the source, but the amount of grain is pretty heavy so the banding goes unnoticed mostly, I am thinking I could live with the small amount of banding that I am noticing if I had to.
SMDegrain() Mod v2.1d: http://doom10.org/index.php?topic=2178.0
NLMeansCL v0.3.2: http://forum.doom9.org/showthread.php?t=158925
ColorMatrix v2.5: http://web.missouri.edu/~kes25c/
Stab: http://avisynth.org/mediawiki/Image:Stab.avsi
LSFmod v1.9: http://forum.doom9.org/showthread.php?t=142706
Masked DeHalo_alpha: http://forum.doom9.org/showthread.php?t=148498
hqdering_mod_v0.7: http://pastebin.com/SYMK6Mh8
dither 1.22.1: http://forum.doom9.org/showthread.php?p=1386559
Let me start by saying that I dont really care for grain in my anime, some people love it, some do not.
The cleaning power of the two pass FFT3D was the best of everything I had tried.
I started to notice however that it did blur out more detail than I would have liked.
Lines that were fairly clean/sharp in the original were noticeably softer after FFT3D.
So then I had a look at this thread with the chalkboard pictures: http://forum.doom9.org/showthread.php?t=162598
I picked out all of the images that resulted in a strong denoise without losing the fine details. (Mdegrain/Nlmeans/dfttest/MCTemporalDenoise)
Mdegrain seemed to do the best job at retaining detail, but it just wasnt doing Heavy enough denoising for my taste (for anime)
Nlmeans seemed to do an amazing job at denoising and retaining detail, however it was noted it was too slow to be useable in most cases, then I found NLMeansCL on here.
NLMeansCL works best spatialy from what I can tell, so alone this denoises well, but there are still a large amount of fluctuating pixels on grainy sources.(because no temporal)
So I tried using the two together and I really love the result that I am seeing.
It gives me the same amount or more denoising than what I got from the two pass FFT3D but retains detail better!
I even get a smaller file size than two pass FFT3D.(not that file size mattered to me)
original:
http://i1208.photobucket.com/albums/cc361/xekon/sdbz4-orig001096_zps0f37c79f.png
SMDegrain+NLMeansCL:
http://i1208.photobucket.com/albums/cc361/xekon/sdbz0-both001096_zpsbf940ae1.png
FPS when encoding this clip (q9450@3.2+gtx480):
SMDegrain+NLMeansCL 1.11 fps (7,084KB)
SMDegrain 2.70 fps (8,936KB)
NLMeansCL 1.36 fps (9,350KB)
fft3dgpu 3.73 fps (7,255KB)
no denoise-x264 8.93 fps (18,772KB)
original-m2v 23.9 fps (51,900KB)
.avs using both:
MPEG2Source("F:\AviSynth\095.d2v")
ColorMatrix()
inH = height
inW = width
Spline64Resize(inW*2, inH*2).Stab(dxmax = 1, dymax = 1, range = 1, mirror = 15).Spline64Resize(inW, inH)
SMDegrain(tr=3,thSAD=500, RefineMotion=False, Search=5)
NLMeansCL(hC=2.2, A=10, S=3, B=0, plane=4, aa=100)
LSFmod(strength=50)
Masked_DHA(rx=1.5, ry=1.5, darkstr=0.6, brightstr=1, lowsens=50, highsens=50, ss=1.0)
HQDeringmod()
Spline64Resize(640, 480)
GradFun3(0.465)
The attached file has a small test .m2v clip (1,417 frames), 5 comparison encodes of the test clip, the .avs files used, and the .bat used to do the encoding.
http://www.mediafire.com/?e9geqru9q0gajth
I am still relatively new at denoising when compared to some of the Avisynth users with years experience under their belt.
So although I like what I see when I look at the results of Mdegrain + NLMeansCL, I am worried that I might be overlooking something that could use improvement.
So if you notice artifacts, or anywhere I could make an improvement please let me know what you noticed and what you think would improve it.
Also if you manage to speed the SMDegrain+NLMeansCL .avs up at all I would love to hear about that as well.
One Thing that I did notice is that there is some banding on some of the frames, I am still trying to figure out what I need to adjust to resolve that. Looking closer the frames where I am noticing banding, the banding appears to be present in the source, but the amount of grain is pretty heavy so the banding goes unnoticed mostly, I am thinking I could live with the small amount of banding that I am noticing if I had to.
SMDegrain() Mod v2.1d: http://doom10.org/index.php?topic=2178.0
NLMeansCL v0.3.2: http://forum.doom9.org/showthread.php?t=158925
ColorMatrix v2.5: http://web.missouri.edu/~kes25c/
Stab: http://avisynth.org/mediawiki/Image:Stab.avsi
LSFmod v1.9: http://forum.doom9.org/showthread.php?t=142706
Masked DeHalo_alpha: http://forum.doom9.org/showthread.php?t=148498
hqdering_mod_v0.7: http://pastebin.com/SYMK6Mh8
dither 1.22.1: http://forum.doom9.org/showthread.php?p=1386559