View Full Version : an experiment trying to convince people to move on with obsolete denoisers
feisty2
23rd January 2017, 14:27
I just can't believe it's 2017 now and some people are still convinced the old-fashioned fft3dfilter is ok to work as a MAIN denoising filter!!
and they claimed that math is crap and I'll have to have "experience" with all that.
so here we go, "experience" (the classic lena image) to prove that fft3d is a crappy (no offense, it was real good when I was born but it's 2017 now) denoising filter.
the goal is to remove all visible noise.
noisy
http://i.imgur.com/KCjM7up.png
NLMeans
KNLMeansCL(last, 0, 5, 2, 10)
http://i.imgur.com/32yuyiX.png
BM3D
#vaporsynth python script
ref = core.bm3d.Basic(clp, sigma=18, block_step=1)
clp = core.bm3d.Final(clp, ref, sigma=18, block_step=1)
http://i.imgur.com/lIKmYu2.png
now I'm asking that all the fft3dfilter experts out there, please, post the best possible result you could get with fft3d and let's just see how things go.
and some complained about performance and KNLMenasCL is reasonably fast with a decent GPU, not fast as fft3d but definitely worth the while.
thecoreyburton
23rd January 2017, 15:10
I'm not an expert on denoising, but I will be following this thread intently as I'm very interested in the results. I do have a request, however: would you be able to add a short clip to the tests as well (unless the test is exclusively spacial)? Static frames and images are a good reference but too many times in the past have I thought a clip looked alright on a frame-by-frame level, only to find that once playback commenced my perceptions changed.
I know this is meant to be more of an objective than subjective discussion but throwing a real-world example alongside each test could potentially further outline the temporal qualities of the each filter and back up any arguments for or against certain denoisers (at the very least, I don't think it would do any harm).
feisty2
23rd January 2017, 15:21
I'm not an expert on denoising, but I will be following this thread intently as I'm very interested in the results. I do have a request, however: would you be able to add a short clip to the tests as well (unless the test is exclusively spacial)? Static frames and images are a good reference but too many times in the past have I thought a clip looked alright on a frame-by-frame level, only to find that once playback commenced my perceptions changed.
I know this is meant to be more of an objective than subjective discussion but throwing a real-world example alongside each test could potentially further outline the temporal qualities of the each filter and back up any arguments for or against certain denoisers (at the very least, I don't think it would do any harm).
sure, it's gonna take some time to prepare but I'll do it
TCmullet
23rd January 2017, 17:03
I only heard of fft3dfilter recently and in connection with rm_logo. If you have a better way to denoise (which you apparently have already tried to demonstrate), please show code to do so using regular Avisynth, not things that many of us are not using such as "vaporsynth" or "python" (whatever those are). We need regular Avisynth tools. Thank you!!
Bloax
23rd January 2017, 18:40
If you want a super complicated test clip with very little original noise, then here you go - https://dl.dropboxusercontent.com/u/63152810/noise_test_sample.avi
Fuck it up good.
johnmeyer
23rd January 2017, 18:46
I don't take issue with comparing denoisers. However, I DO take issue with the stated goal of removing ALL noise (the emphasis is the OP's). I take issue with that because I don't think the goal is going to lead towards a pleasing result.
There is a reason that these tools are called "noise reduction" tools and not "noise elemination" tools. This is because total elimination of noise is going to introduce new artifacts that were not in the original video or film. This must be so because noise and picture are one and the same, and the more of the noise you eliminate, the more of the picture you are going to affect. Having said that, it is true that you can always show a single frame, or a single clip that looks good for a few frames, but just as optical flow technology looks really good until it comes across a clip where it totally fails, so too do various NR techniques break down with some clips, while looking great on others. This is why so many people have created so many different types of denoising.
I too will be watching this thread to see what sort of advances can be made with real-world videos (you have to use actual videos, not some where the noise has been artificially added). I am quite certain that there are better techniques, and if anyone can create something that is better, it is Feisty. However, I am betting that if ALL noise is eliminated, the result will not be as enjoyable to watch, even though it may compress to a smaller size when using a CQ encoder.
Bloax
23rd January 2017, 21:07
I am not a fan of the guy's obsession with complete noise elimination either, especially seeing that at a low enough resolution noise essentially becomes synonymous with detail.
Which would be why this picture
http://i.imgur.com/32yuyiX.png
looks super artificial and lacking in texture.
Personally I'm more of a fan of
Merge(Merge(last,KNLMeansCL(d=0,a=5,s=2,h=10),0.7),KNLMeansCL(d=0,a=9,s=2,h=5.1))
https://dl.dropboxusercontent.com/u/63152810/lenanoise.png
though it's slow as shit
dipje
23rd January 2017, 21:40
eliminating all noise is the way to discover what a denoise-algorithm sees as noise and nut and how good it is at separating detail from the noise.
That in real world situations you often then have a separate control for the amount, _OR_ you blend some of the original back in (most often luminance only, not bringing the chroma noise back) is logical.
_or_, at the end of an editing chain you introduce some noise or grain to your own taste. Indeed, this is all to get rid of the 'plasticy' look because a certain structure is now missing from the image after denoising.
This is most often how work is done in VFX houses though, specially with working from multiple camera sources and stuff like that. Clean everything up, grade it, comp it, whatever you do with it. At the end the same level of grain/noise is subtlety brought back in, but now it's a constant throughout everything. Specially in working with combined stuff from renders (100% noise free), digital cameras (less noise, digital noise) and film scans (analog grain) the defacto method is to remove it all, bring it all together, then add a single source of noise / grain.
In my photo work with film scans I also remove _all_ the noise, and like I said, I then blend in the original noisy image just a bit (with luminosity blend mode) to taste.
So, that all being said: In comparing denoisers -> remove all noise, go for the minimal amount of work to get the 'plasticy pure clean'-look. In real world -> do less or blend original back in a bit.
Finally my opinion: Never got the impressive 'wow' results from vBM3D that made me think it was superior to knlmeanscl (or at least worth it in the speed department). In practise (so taking speed into concideration) knlmeanscl is unbeatble. Together with vBM3D it's on of the unbeatable denoisers, and thanks to gpu stuff it's blazingly fast.
In certain (exceptional) cases I use mdegrain stuff after knlmeanscl. Not to reduce more noise, but if the image needs to be 'more stable'. If noise and grain starts leading to compression artifacts in the source material (high ISO shot AVCHD for instance) you get 'moving blocks / blobs' sometimes, which mdegrain helps to keep still.
I am using Neat Video (commercial paid plugin) most of the time though. It's on the level of knlmeanscl in speed and noise-removal, makes the 'blending back in trick' easy because it's built in (it got sliders for 'amount of noise', then sliders for 'amount of reduction'). But most importantly, the GUI and the different preview-modes (viewing high/mid/low freq on screen, viewing luminance, chroma 1 and chroma 2 on the screen, etc..) makes it very precise and quick to dial it in 'just perfect'.
I'm sure KnmeansCL can have the same performance, but to f*ck around with scripts to see what it's doing in certain frequency-ranges can be a pain. Since I mostly bring the stuff into After Effects anyway, workflow wins for Neat here (personal thing of course).
johnmeyer
23rd January 2017, 22:18
KNLMeansCL clearly does a better job maintaining subtle detail that shows in the contours and gradations in the hat. The merge of the two KNLMeansCL is really quite brilliant and is a result that I'd be really, really happy with. Nice job.
I'm going to steal that code ...
Groucho2004
23rd January 2017, 22:34
Personally I'm more of a fan of
Merge(Merge(last,KNLMeansCL(d=0,a=5,s=2,h=10),0.7),KNLMeansCL(d=0,a=9,s=2,h=5.1))though it's slow as shit
Speed obviously depends on the graphics adapter. With your code I get ~3 fps with my GTX750 and 1920x1080. Still much faster than any of feisty's scripts. :D
johnmeyer
23rd January 2017, 22:40
OK, I wanted to play with KNLMeansCL, but after downloading and placing the X86 version in my plugins folder, and then creating a one-line script that does nothing more than explicitly load the plugin (loadPlugin("C:\Program Files\AviSynth 2.5\plugins\KNLMeansCL.dll"), I get this error message:
AVISynth open failure:
LoadPlugin: unable to load "C:\Program Files\AviSynth 2.5\plugins\KNLMeansCL.dll", error 0x7f
I searched the web and the wiki for dependencies, and one source suggested that vc_redist.x86.exe needed to be installed, so I did that. Still no joy.
I am running 32-bit XP Pro, and AVISynth 2.60.
Groucho2004
23rd January 2017, 22:44
John, use this (http://repacks.net/forum/viewtopic.php?f=6&t=125) all-in-one runtime installer, it has a small footprint and saves you from a lot of headaches.
johnmeyer
23rd January 2017, 22:51
John, use this (http://repacks.net/forum/viewtopic.php?f=6&t=125) all-in-one runtime installer, it has a small footprint and saves you from a lot of headaches.Thanks for the quick response. I download and installed. It re-configured various existing installations, but in the end, I got the same error message.
I'm going to restore the computer to an earlier version and give up on this for now. While I'd love to play with this, I don't want to spend too much time on it, and I sure don't want to screw up anything (everything else is working).
Again, thanks for the help.
Groucho2004
23rd January 2017, 22:52
Thanks for the quick response. I download and installed. It re-configured various existing installations, but in the end, I got the same error message.
I'm going to restore the computer to an earlier version and give up on this for now. While I'd love to play with this, I don't want to spend too much time on it, and I sure don't want to screw up anything (everything else is working).
Again, thanks for the help.Run "AVSMeter -avsinfo -log" and post the log file ("avsinfo.log").
Edit: It's possible that you have to uninstall all existing runtimes before installing the AIO.
real.finder
23rd January 2017, 23:07
Speed obviously depends on the graphics adapter. With your code I get ~3 fps with my GTX750 and 1920x1080. Still much faster than any of feisty's scripts. :D
yes, I talk with him about that before https://forum.doom9.org/showthread.php?p=1771026#post1771026, and slower doesn't always mean better, there are a lot of filters that slow but not did good job, and there are asm vs c
and there other things that could make speed difference but with same or more or less effect, for instance https://forum.doom9.org/showthread.php?p=1188555#post1188555 and I did same thing in MotionRamp by mf (with fast=true)
edit: The nature of the source also has an effect too
dipje
23rd January 2017, 23:08
you sure it's nothing to do with Windows XP? I'm guessing recent builds won't support that anymore.
johnmeyer
23rd January 2017, 23:18
Here's the log file:Log created with: AVSMeter 2.4.7 (x86)
[OS/Hardware info]
Operating system: Windows XP (x86) Service Pack 3 (Build 2600)
CPU (brand string): Intel(R) Core(TM) i7 CPU 965 @ 3.20GHz
CPU (code name): Bloomfield (Core i7)
CPU instructions sets: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2
CPU clock (measured): 3340 MHz
CPU cores / Logical cores: 4 / 8
[Avisynth core info]
VersionString: AviSynth 2.60, build:Mar 9 2013 [13:28:27]
VersionNumber: 2.60
File version: 2.6.0.3
Interface Version: 5
Multi-threading support: Yes
Linker/compiler version: 10.0
Avisynth.dll location: C:\WINDOWS\system32\avisynth.dll
Avisynth.dll time stamp: 2013-03-09, 08:28:48 (UTC)
PluginDir2_5 (HKLM, x86): C:\Program Files\AviSynth 2.5\plugins
[C 2.0 / 32 Bit plugins]
C:\Program Files\AviSynth 2.5\plugins\IBob.dll
C:\Program Files\AviSynth 2.5\plugins\SmartDecimate.dll
[C 2.5 / 32 Bit plugins]
C:\Program Files\AviSynth 2.5\plugins\yadif.dll [1.7.0.0]
[CPP 2.5 / 32 Bit plugins]
C:\Program Files\AviSynth 2.5\plugins\AGC.dll
C:\Program Files\AviSynth 2.5\plugins\ApplyEvery.dll
C:\Program Files\AviSynth 2.5\plugins\AudGraph.dll
C:\Program Files\AviSynth 2.5\plugins\autolevels.dll [0.6.0.0]
C:\Program Files\AviSynth 2.5\plugins\autolevels_0.6_20110109.dll [0.6.0.0]
C:\Program Files\AviSynth 2.5\plugins\autolevels_06.dll [0.6.0.0]
C:\Program Files\AviSynth 2.5\plugins\Average.dll
C:\Program Files\AviSynth 2.5\plugins\avisynth_c.dll
C:\Program Files\AviSynth 2.5\plugins\aWarpSharp.dll
C:\Program Files\AviSynth 2.5\plugins\BlendBob.dll
C:\Program Files\AviSynth 2.5\plugins\ColorLooks.dll
C:\Program Files\AviSynth 2.5\plugins\DctFilter.dll [0.0.1.4]
C:\Program Files\AviSynth 2.5\plugins\dctfun4b.dll
C:\Program Files\AviSynth 2.5\plugins\deblock.dll [1.2.0.0]
C:\Program Files\AviSynth 2.5\plugins\declick.dll
C:\Program Files\AviSynth 2.5\plugins\deflicker.dll [0.4.0.0]
C:\Program Files\AviSynth 2.5\plugins\defreq.dll
C:\Program Files\AviSynth 2.5\plugins\DeJitter.dll
C:\Program Files\AviSynth 2.5\plugins\DePan.dll [1.10.1.0]
C:\Program Files\AviSynth 2.5\plugins\DePanEstimate.dll [1.9.2.0]
C:\Program Files\AviSynth 2.5\plugins\descratch.dll [0.9.0.0]
C:\Program Files\AviSynth 2.5\plugins\despot.dll [3.6.1.0]
C:\Program Files\AviSynth 2.5\plugins\DGAVCDecode.dll [1.0.9.0]
C:\Program Files\AviSynth 2.5\plugins\dgbob.dll
C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll [1.4.9.0]
C:\Program Files\AviSynth 2.5\plugins\dvinfo.dll
C:\Program Files\AviSynth 2.5\plugins\equlines.dll [0.3.0.0]
C:\Program Files\AviSynth 2.5\plugins\ExBlend.dll
C:\Program Files\AviSynth 2.5\plugins\exinpaint.dll [0.2.0.0]
C:\Program Files\AviSynth 2.5\plugins\FDecimate.dll
C:\Program Files\AviSynth 2.5\plugins\fft3dfilter.dll [2.1.1.0]
C:\Program Files\AviSynth 2.5\plugins\FFT3dGPU.dll [0.8.2.0]
C:\Program Files\AviSynth 2.5\plugins\FluxSmooth.dll
C:\Program Files\AviSynth 2.5\plugins\GamMac.dll
C:\Program Files\AviSynth 2.5\plugins\GetDups.dll [0.9.1.0]
C:\Program Files\AviSynth 2.5\plugins\GRunT.dll
C:\Program Files\AviSynth 2.5\plugins\GScript.dll
C:\Program Files\AviSynth 2.5\plugins\hotspot.dll [0.1.0.0]
C:\Program Files\AviSynth 2.5\plugins\hqdn3d.dll
C:\Program Files\AviSynth 2.5\plugins\kerneldeint140.dll
C:\Program Files\AviSynth 2.5\plugins\LeakKernelDeint.dll [1.5.4.0]
C:\Program Files\AviSynth 2.5\plugins\LimitedSupport_09Jan06B.dll
C:\Program Files\AviSynth 2.5\plugins\LoadDll.dll
C:\Program Files\AviSynth 2.5\plugins\MaskTools.dll [1.5.1.0]
C:\Program Files\AviSynth 2.5\plugins\medianblur.dll [0.8.4.1]
C:\Program Files\AviSynth 2.5\plugins\minmax.dll
C:\Program Files\AviSynth 2.5\plugins\MinMaxAudio.dll
C:\Program Files\AviSynth 2.5\plugins\Motion_06Dec05B.dll
C:\Program Files\AviSynth 2.5\plugins\Motion_12Dec05.dll
C:\Program Files\AviSynth 2.5\plugins\MPEGDecoder.dll
C:\Program Files\AviSynth 2.5\plugins\msu_fieldshiftfixer.dll
C:\Program Files\AviSynth 2.5\plugins\MT.dll [0.7.0.0]
C:\Program Files\AviSynth 2.5\plugins\mt_masktools-25.dll [2.0.48.0]
C:\Program Files\AviSynth 2.5\plugins\mt_masktools-26.dll [2.0.48.0]
C:\Program Files\AviSynth 2.5\plugins\MultiDecimate.dll
C:\Program Files\AviSynth 2.5\plugins\MVTools.dll
C:\Program Files\AviSynth 2.5\plugins\mvtools2.dll [2.5.11.2]
C:\Program Files\AviSynth 2.5\plugins\nnedi3.dll [0.9.2.0]
C:\Program Files\AviSynth 2.5\plugins\PeachSmoother.dll
C:\Program Files\AviSynth 2.5\plugins\QTSource.dll
C:\Program Files\AviSynth 2.5\plugins\RemoveDirt.dll
C:\Program Files\AviSynth 2.5\plugins\RemoveDirtSSE2.dll
C:\Program Files\AviSynth 2.5\plugins\RemoveGrain.dll
C:\Program Files\AviSynth 2.5\plugins\RemoveGrainS.dll
C:\Program Files\AviSynth 2.5\plugins\RemoveGrainSSE2.dll
C:\Program Files\AviSynth 2.5\plugins\RemoveGrainSSE3.dll
C:\Program Files\AviSynth 2.5\plugins\Repair.dll
C:\Program Files\AviSynth 2.5\plugins\RepairS.dll
C:\Program Files\AviSynth 2.5\plugins\RepairSSE2.dll
C:\Program Files\AviSynth 2.5\plugins\RepairSSE3.dll
C:\Program Files\AviSynth 2.5\plugins\RestoreFPS.dll
C:\Program Files\AviSynth 2.5\plugins\RoboCrop.dll
C:\Program Files\AviSynth 2.5\plugins\RSharpen.dll
C:\Program Files\AviSynth 2.5\plugins\RSharpenS.dll
C:\Program Files\AviSynth 2.5\plugins\RSharpenSSE2.dll
C:\Program Files\AviSynth 2.5\plugins\RSharpenSSE3.dll
C:\Program Files\AviSynth 2.5\plugins\RT_Stats.dll
C:\Program Files\AviSynth 2.5\plugins\SSE2Tools.dll
C:\Program Files\AviSynth 2.5\plugins\SSE3Tools.dll
C:\Program Files\AviSynth 2.5\plugins\SSETools.dll
C:\Program Files\AviSynth 2.5\plugins\SSEToolsS.dll
C:\Program Files\AviSynth 2.5\plugins\TCombMask.dll [0.9.4.0]
C:\Program Files\AviSynth 2.5\plugins\TCPDeliver.dll [1.0.0.6]
C:\Program Files\AviSynth 2.5\plugins\TDeint.dll [1.1.0.0]
C:\Program Files\AviSynth 2.5\plugins\Telecine.dll
C:\Program Files\AviSynth 2.5\plugins\TIVTC.dll [1.0.5.0]
C:\Program Files\AviSynth 2.5\plugins\unsharpHQ_v05_x86.dll
C:\Program Files\AviSynth 2.5\plugins\VagueDenoiser.dll [0.33.5.0]
C:\Program Files\AviSynth 2.5\plugins\VariableBlur.dll [0.4.0.0]
C:\Program Files\AviSynth 2.5\plugins\VerticalCleaner.dll
C:\Program Files\AviSynth 2.5\plugins\VerticalCleanerS.dll
C:\Program Files\AviSynth 2.5\plugins\VerticalCleanerSSE2.dll
C:\Program Files\AviSynth 2.5\plugins\VerticalCleanerSSE3.dll
C:\Program Files\AviSynth 2.5\plugins\vinverse.dll
C:\Program Files\AviSynth 2.5\plugins\warpsharp.dll
C:\Program Files\AviSynth 2.5\plugins\WeaveMan.dll
C:\Program Files\AviSynth 2.5\plugins\yadifmod.dll [1.0.0.0]
[CPP 2.6 / 32 Bit plugins]
C:\Program Files\AviSynth 2.5\plugins\AutoGain.dll [1.0.0.0]
C:\Program Files\AviSynth 2.5\plugins\DirectShowSource.dll [2.6.0.0]
C:\Program Files\AviSynth 2.5\plugins\ffms2.dll
C:\Program Files\AviSynth 2.5\plugins\masktools2.dll [2.1.0.0]
C:\Program Files\AviSynth 2.5\plugins\RoboCrop26.dll
C:\Program Files\AviSynth 2.5\plugins\RT_Stats26.dll
C:\Program Files\AviSynth 2.5\plugins\Zebra26.dll
[Plugin errors/warnings]
------------------------------------------------------------------------------
Plugin C:\Program Files\AviSynth 2.5\plugins\IBob.dll is not an AviSynth 2.6 or 2.5 plugin.
------------------------------------------------------------------------------
Plugin C:\Program Files\AviSynth 2.5\plugins\SmartDecimate.dll is not an AviSynth 2.6 or 2.5 plugin.
------------------------------------------------------------------------------
Plugin C:\Program Files\AviSynth 2.5\plugins\yadif.dll is not an AviSynth 2.6 or 2.5 plugin.
------------------------------------------------------------------------------
LoadPlugin: too many plugins loaded already (max. 50)
------------------------------------------------------------------------------
Groucho2004
23rd January 2017, 23:21
you sure it's nothing to do with Windows XP? I'm guessing recent builds won't support that anymore.Even the latest works on XP32/64
Groucho2004
23rd January 2017, 23:29
Oh dear. Here is the first (and possibly only) problem:
Here's the log file:
[Avisynth core info]
VersionString: AviSynth 2.60, build:Mar 9 2013 [13:28:27]
VersionNumber: 2.60
File version: 2.6.0.3
Interface Version: 5
Most of the newer filters require Interface Version 6, i.e. update your Avisynth to the latest release.
Also, the last error in the log says it all - clean up that mess. For example, all these removegrain, verticalcleaner, repair, etc. DLLs can be replaced by a single DLL (RGTools).
real.finder
23rd January 2017, 23:33
Oh dear. Here is the first (and possibly only) problem:
Most of the newer filters require Interface Version 6, i.e. update your Avisynth to the latest release.
Also, the last error in the log says it all - clean up that mess. For example, all these removegrain, verticalcleaner, repair, etc. DLLs can be replaced by a single DLL (RGTools).
I use this ver. sometimes and it work with newer filters, there are something else in his system make the problem (like opencl.dll) I can't see KNLMeansCL.dll in the log
Groucho2004
23rd January 2017, 23:40
I use this ver. sometimes and it work with newer filters, there are something else in his system make the problem (like opencl.dll) I can't see KNLMeansCL.dll in the logMaybe there's something else but I know that KNLMeansCL does not work with Interface Version 5.
Groucho2004
23rd January 2017, 23:46
Here's the log file:[Avisynth core info]
VersionString: AviSynth 2.60, build:Mar 9 2013 [13:28:27]
VersionNumber: 2.60
File version: 2.6.0.3
Interface Version: 5
Multi-threading support: Yes
Linker/compiler version: 10.0
There's something fishy about your Avisynth.dll. It reads "linker version 10" which means that it was built with VC2010. There is no official build that was built with this compiler.
real.finder
23rd January 2017, 23:49
There's something fishy about your Avisynth.dll. It reads "linker version 10" which means that it was built with VC2010. There is no official build that was built with this compiler.
it's 1st one in Older versions in https://forum.doom9.org/showthread.php?t=148782
Older versions:
2013.03.09: https://www.dropbox.com/s/xhqggxameg...th_20130309.7z (https://www.dropbox.com/s/xhqggxamegia420/avisynth_20130309.7z)
I think, it's was very stable (unlike 2013.09.28), I stick with it for a long time before
Groucho2004
23rd January 2017, 23:53
it's 1st one in Older versions in https://forum.doom9.org/showthread.php?t=148782I see, forgot about SEts versions.
johnmeyer
24th January 2017, 02:20
I moved a lot of the DLLs offline and got rid of the "more than 50 DLL" error. The plugin still will not load. I don't want to take this thread further OT, so as much as I'd like to try out KNLMeansCL, I don't have the time to go chasing this.
FWIW, this is the log I got after removing lots of DLLs:
Log created with: AVSMeter 2.4.7 (x86)
[OS/Hardware info]
Operating system: Windows XP (x86) Service Pack 3 (Build 2600)
CPU (brand string): Intel(R) Core(TM) i7 CPU 965 @ 3.20GHz
CPU (code name): Bloomfield (Core i7)
CPU instructions sets: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2
CPU clock (measured): 3339 MHz
CPU cores / Logical cores: 4 / 8
[Avisynth core info]
VersionString: AviSynth 2.60, build:Mar 9 2013 [13:28:27]
VersionNumber: 2.60
File version: 2.6.0.3
Interface Version: 5
Multi-threading support: Yes
Linker/compiler version: 10.0
Avisynth.dll location: C:\WINDOWS\system32\avisynth.dll
Avisynth.dll time stamp: 2013-03-09, 08:28:48 (UTC)
PluginDir2_5 (HKLM, x86): C:\Program Files\AviSynth 2.5\plugins
[C 2.0 / 32 Bit plugins]
C:\Program Files\AviSynth 2.5\plugins\SmartDecimate.dll
[C 2.5 / 32 Bit plugins]
C:\Program Files\AviSynth 2.5\plugins\yadif.dll [1.7.0.0]
[CPP 2.5 / 32 Bit plugins]
C:\Program Files\AviSynth 2.5\plugins\AGC.dll
C:\Program Files\AviSynth 2.5\plugins\Average.dll
C:\Program Files\AviSynth 2.5\plugins\avisynth_c.dll
C:\Program Files\AviSynth 2.5\plugins\aWarpSharp.dll
C:\Program Files\AviSynth 2.5\plugins\deblock.dll [1.2.0.0]
C:\Program Files\AviSynth 2.5\plugins\declick.dll
C:\Program Files\AviSynth 2.5\plugins\deflicker.dll [0.4.0.0]
C:\Program Files\AviSynth 2.5\plugins\defreq.dll
C:\Program Files\AviSynth 2.5\plugins\DePan.dll [1.10.1.0]
C:\Program Files\AviSynth 2.5\plugins\DePanEstimate.dll [1.9.2.0]
C:\Program Files\AviSynth 2.5\plugins\descratch.dll [0.9.0.0]
C:\Program Files\AviSynth 2.5\plugins\despot.dll [3.6.1.0]
C:\Program Files\AviSynth 2.5\plugins\DGAVCDecode.dll [1.0.9.0]
C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll [1.4.9.0]
C:\Program Files\AviSynth 2.5\plugins\dvinfo.dll
C:\Program Files\AviSynth 2.5\plugins\FDecimate.dll
C:\Program Files\AviSynth 2.5\plugins\fft3dfilter.dll [2.1.1.0]
C:\Program Files\AviSynth 2.5\plugins\GamMac.dll
C:\Program Files\AviSynth 2.5\plugins\GetDups.dll [0.9.1.0]
C:\Program Files\AviSynth 2.5\plugins\GRunT.dll
C:\Program Files\AviSynth 2.5\plugins\GScript.dll
C:\Program Files\AviSynth 2.5\plugins\hotspot.dll [0.1.0.0]
C:\Program Files\AviSynth 2.5\plugins\LimitedSupport_09Jan06B.dll
C:\Program Files\AviSynth 2.5\plugins\LoadDll.dll
C:\Program Files\AviSynth 2.5\plugins\MaskTools.dll [1.5.1.0]
C:\Program Files\AviSynth 2.5\plugins\medianblur.dll [0.8.4.1]
C:\Program Files\AviSynth 2.5\plugins\MPEGDecoder.dll
C:\Program Files\AviSynth 2.5\plugins\msu_fieldshiftfixer.dll
C:\Program Files\AviSynth 2.5\plugins\MT.dll [0.7.0.0]
C:\Program Files\AviSynth 2.5\plugins\mt_masktools-25.dll [2.0.48.0]
C:\Program Files\AviSynth 2.5\plugins\mt_masktools-26.dll [2.0.48.0]
C:\Program Files\AviSynth 2.5\plugins\MultiDecimate.dll
C:\Program Files\AviSynth 2.5\plugins\nnedi3.dll [0.9.2.0]
C:\Program Files\AviSynth 2.5\plugins\RemoveDirt.dll
C:\Program Files\AviSynth 2.5\plugins\RemoveDirtSSE2.dll
C:\Program Files\AviSynth 2.5\plugins\RestoreFPS.dll
C:\Program Files\AviSynth 2.5\plugins\RoboCrop.dll
C:\Program Files\AviSynth 2.5\plugins\RSharpen.dll
C:\Program Files\AviSynth 2.5\plugins\RSharpenS.dll
C:\Program Files\AviSynth 2.5\plugins\RSharpenSSE2.dll
C:\Program Files\AviSynth 2.5\plugins\RSharpenSSE3.dll
C:\Program Files\AviSynth 2.5\plugins\RT_Stats.dll
C:\Program Files\AviSynth 2.5\plugins\TCombMask.dll [0.9.4.0]
C:\Program Files\AviSynth 2.5\plugins\TCPDeliver.dll [1.0.0.6]
C:\Program Files\AviSynth 2.5\plugins\TDeint.dll [1.1.0.0]
C:\Program Files\AviSynth 2.5\plugins\Telecine.dll
C:\Program Files\AviSynth 2.5\plugins\TIVTC.dll [1.0.5.0]
C:\Program Files\AviSynth 2.5\plugins\warpsharp.dll
C:\Program Files\AviSynth 2.5\plugins\yadifmod.dll [1.0.0.0]
[CPP 2.6 / 32 Bit plugins]
C:\Program Files\AviSynth 2.5\plugins\AutoGain.dll [1.0.0.0]
C:\Program Files\AviSynth 2.5\plugins\DirectShowSource.dll [2.6.0.0]
C:\Program Files\AviSynth 2.5\plugins\KNLMeansCL.dll
C:\Program Files\AviSynth 2.5\plugins\masktools2.dll [2.1.0.0]
C:\Program Files\AviSynth 2.5\plugins\RoboCrop26.dll
C:\Program Files\AviSynth 2.5\plugins\RT_Stats26.dll
C:\Program Files\AviSynth 2.5\plugins\Zebra26.dll
[Plugin errors/warnings]
------------------------------------------------------------------------------
Plugin C:\Program Files\AviSynth 2.5\plugins\SmartDecimate.dll is not an AviSynth 2.6 or 2.5 plugin.
------------------------------------------------------------------------------
Plugin C:\Program Files\AviSynth 2.5\plugins\yadif.dll is not an AviSynth 2.6 or 2.5 plugin.
------------------------------------------------------------------------------
LoadPlugin: unable to load "C:\Program Files\AviSynth 2.5\plugins\KNLMeansCL.dll", error=0x7f
Dependencies that could not be loaded:
MSVCP140.dll
VCRUNTIME140.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-filesystem-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
Note: "Visual Studio 2015 Runtime doesn't seem to be installed"
------------------------------------------------------------------------------
LoadPlugin: unable to load "C:\Program Files\AviSynth 2.5\plugins\masktools2.dll", error=0x7e
Dependencies that could not be loaded:
MSVCP110.dll
MSVCR110.dll
Note: "Visual Studio 2012 Runtime doesn't seem to be installed"
------------------------------------------------------------------------------
FranceBB
24th January 2017, 03:06
@johnmeyer...
Dependencies that could not be loaded:
MSVCP140.dll
VCRUNTIME140.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-filesystem-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
MSVCP110.dll
MSVCR110.dll
Microsoft C++ Redistributable 2015 and 2012, I think.
Unfortunately for you, it seems that KNLMeansCL and masktools2 builds have not been statically linked.
P.s side note that will make all the XP users happy: Microsoft C++ Redistributable 2017 and Intel C++ Redistributable 2017 have been released for XP as well! :D
Groucho2004
24th January 2017, 10:31
@John
The problem is easily fixable. In order to avoid OT posts, create a new thread "Problem loading KNLMeansCL" or similar. A moderator will then hopefully delete all OT posts. For now, I suggest you do the following:
Get the latest avisynth.dll from SEt (if you need MT).
Uninstall all "Microsoft Visual C++ 2xxx Runtimes/Redistributables"
Re-install the AIO
thescrapyard
24th January 2017, 11:44
As BM3D appears to be a vapoursynth plugin, is there a way to get this to work with avisynth or specifically avisynth+
ref = core.bm3d.Basic(clp, sigma=18, block_step=1)
clp = core.bm3d.Final(clp, ref, sigma=18, block_step=1)
I'm aware there is a way to load avisynth plugins for use with vapoursynth that don't have the equivalent or that specific plugin in vapoursynth, but is there a way to get vapoursynth plugins/functions to work with avisynth
Thanks
feisty2
24th January 2017, 14:40
As BM3D appears to be a vapoursynth plugin, is there a way to get this to work with avisynth or specifically avisynth+
ref = core.bm3d.Basic(clp, sigma=18, block_step=1)
clp = core.bm3d.Final(clp, ref, sigma=18, block_step=1)
I'm aware there is a way to load avisynth plugins for use with vapoursynth that don't have the equivalent or that specific plugin in vapoursynth, but is there a way to get vapoursynth plugins/functions to work with avisynth
Thanks
avisynth plugins work in vaporsynth because it supports avisynth APIs
you could ask pinterf to add an API compatible layer for vaporsynth then you could use vaporsynth plugins in avisynth
feisty2
24th January 2017, 15:33
@johnmeyer and others
removing all visible noise is an intentionally set goal only for tests and comparisons, to see how good each individual denoiser is in extreme cases (mainly to amplify the quality difference between different denoisers).
generally if some denoiser is better even in the most extreme case, it should also be better in normal or less extreme cases.
of course it's your own choice how much noise you'd like to remove when you're actually using the denoiser.
BUT, I'll remove ALL visible noise for the testing purpose.
Bloax
24th January 2017, 15:37
It's useful for comparing the most extreme behaviours of the denoisers, but it's not really effective for seeing how good a result you can squish out of them.
and ultimately the latter is the important part ah hah hah
feisty2
24th January 2017, 15:44
It's useful for comparing the most extreme behaviours of the denoisers, but it's not really effective for seeing how good a result you can squish out of them.
and ultimately the latter is the important part ah hah hah
simple: better result in the extreme case, better result "you can squish out of" it, just the quality difference would be smaller when you're removing only part of the noise.
Bloax
24th January 2017, 16:05
The better result is simply the most visually pleasing result you can mix out of a given set of options.
It gets even blurrier once you start mixing denoiser outputs simply to make the interference mask out the quirks of either.
But then again I treat image/video filtering exactly like one would treat audio filtering, with a lot of blending of a little bit of this and a little bit of that.
feisty2
24th January 2017, 16:12
The better result is simply the most visually pleasing result you can mix out of a given set of options.
It gets even blurrier once you start mixing denoiser outputs simply to make the interference mask out the quirks of either.
But then again I treat image/video filtering exactly like one would treat audio filtering, with a lot of blending of a little bit of this and a little bit of that.
and that's not the point
it's your very own business to mix whatever you like.
this thread is NOT about mixing the results of different parameters
it however is about which denoiser is GENERALLY better under what kind of circumstance.
it won't tell you the ultimate answer but it tells you where to start.
dipje
24th January 2017, 16:38
The best a plugin is at separating noise and real detail / real image, the better the final result will be, it's that simple. Even if you then apply 'less of the effect' or you start blending some less-strong variants in to not remove all the noise, the same scale applies so the plugin that has the best result with 100% noise reduction will have the best result with 50% noise reduction.
The only thing that comes into play here is that when you for instance compare the plugins at 50% (or less noise reduction), the differences in result comes so close that it doesn't matter which one you pick. In other words, the fact that one is better doesn't come into play then... but it still makes one better than the other.
At this moment completely agree with fesity2: Comparing noise reduction should be done at 100% noise reduction. Actually using it in real life is a matter of personal taste which no one can argue about :).
But I do agree that it should also be looked at in motion, because the amount of temporal effect (and artifacts in that) plays a huge role. If the noise is changing and moving (well, 'different') every frame than a temporal denoiser (mdegrain?) can give results that blow every spatial denoiser out of the water :). Since knmeanscl and vBM3D both have a temporal element (vBM3D adds a temporal thing to BM3D, right?) and we're talking about video-denoising and not photo-denoising here, I think we should have a movie for the target, or at least 'a movie next to the image'.
On the other hand, I don't see a use in 'testing' it here. It's quite clear right? People stop using stuff besides knlmeanscl / bm3d / smdegrain (or mdegrain based stuff). Maybe as a prefilter other stuff comes in (RGTools can be handy inside of filters / functions sometimes for quick and easy removing of mosquito stuff) but otherwise all other stuff is outdated the way I see it.
Doesn't remove the fact that some people just get results with plugins they like or have trouble running a newer plugin (like KNMeansCL because of the gpu stuff, or vBM3D because of the speed + ram requirements).
It comes down to this I guess:
To everyone using older plugins: 'everyone listen up! all denoisers except knlmeanscl / vbm3d / mdegrain are outdated! Just so you know!'
To feisty2: 'To go on a mission to change people minds, or scripts or settings they've been using for a while is not worth your energy. People have their reasons to use what they use. You shouldn't (have to) care about people oblivious to newer stuff'
feisty2
24th January 2017, 17:28
I just finished the video test like minutes ago.
conclusion (judging from the sample clip I picked):
V-BM3D is the best among 3 in general, but it suffers from some kind of "liquefying" low frequency artifacts which does not exist in NLMeans nor MDeGrain.
unlike V-BM3D that makes use of both intra-patch correlations (wavelet shrinkage, wiener, etc..) and inter-patch correlations (self-similarity), NLMeans and MDeGrain are both a member of the inter-patch correlation based family, and both suffer from certain limitations because of that, NLMeans works better with high frequency components but destroys low and medium frequency components, MDeGrain on the other hand preserves low and medium frequency components better than NLMeans but blurs out high frequency components.
ranking:
quality of high frequency filtering: NLMeans > V-BM3D ? MDeGrain (no idea which is better)
quality of medium frequency filtering: V-BM3D > MDeGrain > NLMeans
quality of low frequency filtering: MDeGrain > V-BM3D > NLMeans
general quality: V-BM3D > NLMeans >(?) MDeGrain (NLMeans should be better theoretically, but the test shows each has its own cons and pros)
I'll upload the processed video clips and get back later.
Ground Truth
screenshot:
http://i.imgur.com/7bNejjs.png
Noisy
screenshot:
http://i.imgur.com/fSHKSCU.png
NLMeans (spatiotemporal)
screenshot:
http://i.imgur.com/z6ARtvb.png
KNLMeansCL(clip, 6, 32, 3, 4.0)
MDeGrain (enhanced vaporsynth variant, adaptive block size from 128x128 to 2x2 which is not available in avisynth MVTools)
screenshot:
http://i.imgur.com/EW4mr20.png
msuper_args = dict(sharp=2, levels=0)
manalyze_args = dict(search=3, truemotion=False, trymany=True, levels=0, badrange=-24, divide=0, dct=0)
mrecalculate_args = dict(truemotion=False, search=3, smooth=1, divide=0, dct=0)
mdegrain_args = dict(thscd1=16711680.0, thscd2=255.0)
supersoft = core.mvsf.Super(clip, rfilter=4, pel=4, **msuper_args)
vmulti = mvmulti.Analyze(supersoft, tr=6, overlap=64, blksize=128, **manalyze_args)
vmulti = mvmulti.Recalculate(supersoft, vmulti, tr=6, overlap=32, blksize=64, thsad=400, **mrecalculate_args)
vmulti = mvmulti.Recalculate(supersoft, vmulti, tr=6, overlap=16, blksize=32, thsad=400, **mrecalculate_args)
vmulti = mvmulti.Recalculate(supersoft, vmulti, tr=6, overlap=8, blksize=16, thsad=400, **mrecalculate_args)
vmulti = mvmulti.Recalculate(supersoft, vmulti, tr=6, overlap=4, blksize=8, thsad=400, **mrecalculate_args)
vmulti = mvmulti.Recalculate(supersoft, vmulti, tr=6, overlap=2, blksize=4, thsad=400, **mrecalculate_args)
vmulti = mvmulti.Recalculate(supersoft, vmulti, tr=6, overlap=1, blksize=2, thsad=400, **mrecalculate_args)
supersharp = core.mvsf.Super(clip, rfilter=2, pel=4, **msuper_args)
clip = mvmulti.DegrainN(clip, supersharp, vmulti, tr=6, thsad=2000, **mdegrain_args)
supersharp = core.mvsf.Super(clip, rfilter=2, pel=4, **msuper_args)
clip = mvmulti.DegrainN(clip, supersharp, vmulti, tr=6, thsad=2000, **mdegrain_args) #single pass is not strong enough to remove all visible noise
supersharp = core.mvsf.Super(clip, rfilter=2, pel=4, **msuper_args)
clip = mvmulti.DegrainN(clip, supersharp, vmulti, tr=6, thsad=2000, **mdegrain_args) #single pass is not strong enough to remove all visible noise
V-BM3D
screenshot:
http://i.imgur.com/mKwH6oa.png
ref = core.bm3d.VBasic(clip, profile="np",radius=6,sigma=12, block_step=2).bm3d.VAggregate(6,1)
clip = core.bm3d.VFinal(clip, ref, profile="np",radius=6,sigma=12, block_step=2).bm3d.VAggregate(6,1)
test clips(1280x534, 32bits fp, Gray): https://mega.nz/#F!XkkmzS5a!4bsVwaGjTEct9a_XGxkHAQ
dipje
25th January 2017, 11:23
which frame number is the screenshot you took, to compare?
ps: If you have a Ground Truth version, that means you added the noise artificially?
I had (have?) a bit of trouble getting your raw files to read. I finally found a x64 compiled vsrawsource plugin on your github of all places so I can read the files in vapoursynth.
But had trouble writing it out to an image sequence or something else without loosing the 32bit floating point. Best I could do was to write an EXR sequence so I get 16bit floating point, or to write any kind of TIF or PNG sequence, but since the ImageMagick in imwri is still Q16-based, it writes 16bit integer tif or PNG files.
So somewhere I always end up truncating your single-precision floats to 16bit integer.
Anyway, loaded it into After Effects, applied Neat Video and rendered it out to single-precision tif files. I do still want to load those tif files back into vapoursynth to use fmtconv (or zimg) to dither them down to 8bit for website viewing / posting... the dithering in After Effects is atrocious.
feisty2
25th January 2017, 13:29
which frame number is the screenshot you took, to compare?
ps: If you have a Ground Truth version, that means you added the noise artificially?
I had (have?) a bit of trouble getting your raw files to read. I finally found a x64 compiled vsrawsource plugin on your github of all places so I can read the files in vapoursynth.
But had trouble writing it out to an image sequence or something else without loosing the 32bit floating point. Best I could do was to write an EXR sequence so I get 16bit floating point, or to write any kind of TIF or PNG sequence, but since the ImageMagick in imwri is still Q16-based, it writes 16bit integer tif or PNG files.
So somewhere I always end up truncating your single-precision floats to 16bit integer.
Anyway, loaded it into After Effects, applied Neat Video and rendered it out to single-precision tif files. I do still want to load those tif files back into vapoursynth to use fmtconv (or zimg) to dither them down to 8bit for website viewing / posting... the dithering in After Effects is atrocious.
forgot about which frame, I honestly just picked that frame like randomly. but it's one of the 47 frames
you don't have to keep the 32bits precision cuz you're gonna compare the results from a monitor with your eyes, I'm sure there's no monitor, even the most high end, professional ones could do a full 32bits precision display (hell, some low end monitors are even less than 8bits), plus, even if there is such monitor, human eyes won't be able to tell the difference, just round or dither it down to 8bits (or 10bits if you have such monitor).
tormento
26th January 2017, 00:03
I just finished the video test like minutes ago.
Try SMDegrain with KNLMeansCL prefilter. :)
magnetite
26th January 2017, 02:16
I haven't found any other plugins that will remove cross-color and or dot crawl noise as well as some of the older plugins or scripts. I mainly use Avisynth+ 1858 MT.
feisty2
26th January 2017, 11:11
I haven't found any other plugins that will remove cross-color and or dot crawl noise as well as some of the older plugins or scripts. I mainly use Avisynth+ 1858 MT.
frfun7 is super effective against dot-crawl.
but that's not the normal kind of noise (can not be statistically approximated as Gaussian distribution).
and most typical kinds of noise like film grain and stuff, they always approximately follow the Gaussian distribution like statistically, so most denoising algorithms were targeting of removing Gaussian noise, including NLMeans BM3D and motion compensation.
the whole inter-patch correlation thing will fail if the noise does not follow Gaussian distribution.
Bloax
26th January 2017, 12:07
Well, I decided to fuck around with the little 640x400 clip I provided, and I sure made KNLMeansCL croak under the pressure:
ffmpegsource2("H:\noise_test_sample.avi")
a=BlankClip(last,color=$808080).ConvertToYV12()
b=BlankClip(last,width=480,height=300,color=$808080).ConvertToYV12()
c=BlankClip(last,width=320,height=200,color=$808080).ConvertToYV12()
d=BlankClip(last,width=64,height=40,color=$808080).ConvertToYV12()
lulz=BlankClip(last,color=$ffffff).ConvertToYV12()
a2=Merge(a.AddGrainC(45,64,0.5,0.2),a.AddGrainC(95,32,0.9,0.1))
b2=b.AddGrainC(60,45)
c2=Merge(c.AddGrainC(70,40,0.0,0.0),c.AddGrainC(150,32,0.9,0.1))
d2=Merge(d.AddGrainC(180,40,0.1,0.6),d.AddGrainC(200,32,0.8,0.1))
a3=a2
b3=b2.BicubicResize(640,400,b=0.2,c=-1)
c3=c2.BicubicResize(640,400,b=1.0,c=0.5)
d3=d2.BicubicResize(640,400,b=1.0,c=0.5)
last.ConvertToYV12()
Mt_AddDiff(last,a3,u=3,v=3)
Mt_AddDiff(last,b3,u=3,v=3)
Mt_AddDiff(last,c3,u=3,v=3)
Mt_AddDiff(last,d3,u=3,v=3)
^ The application of cardinal sin.
sb=4
str=7
u2=last.UToY().ConvertToY8()
v2=last.VToY().ConvertToY8()
u3=u2.knlmeanscl(a=3,s=sb,d=5,h=str*2)
v3=v2.knlmeanscl(a=3,s=sb,d=5,h=str*2)
yv=Merge(Merge(last,KNLMeansCL(d=5,a=4,s=4,h=str),0.77),KNLMeansCL(d=5,a=5,s=2,h=str*0.6))
YToUV(u3,v3,yv)
The additional snippet of trying to cleanse it of my sins.
http://i.imgur.com/Af9lo6T.gif
It makes a valiant attempt at cleansing it of the horrors I exposed it to - it's impressive how it keeps all important standout-details like the green/red line rectangle thingies -
but ultimately it seems too fucked up for knlmeans to handle alone. :)
The part where it chokes the most is definitely the massive low frequency noise I introduced through "d3".
other attempts very welcome!
feisty2
26th January 2017, 12:26
your video is not photographic, waifu2x is the kind of denoiser for CG contents specifically.
Bloax
26th January 2017, 12:28
Excuses. :^)
feisty2
26th January 2017, 12:38
that's not an excuse, CG images are very special and very different from photos, there're several "magic" algorithms for CG stuff but none works on photos.
Waifu2x produces extremely good upscaling results for CG images but very crappy and unappealing results for photos, and denoising is the same story here.
dipje
26th January 2017, 16:16
http://i.imgur.com/CNYuySW.png
I think this is the frame you picked, or a very close one.
edit: Uploaded a png, but it ends up being a jpg? Reuploaded to imgur
dipje
26th January 2017, 16:27
@Bloax: CG or not, can you post your 'noisy' version somewhere in a rgb lossless format? huffy / tif-sequence / png-sequence / ffv1, whatever. So I can have a play with it?
Tried your script (which points to a noise_test_sample2 btw, you uploaded something without the 2, just saying) but I tried getting it to run on a recent avs x64 setup but I'm fed up with it to get it working :)
dipje
26th January 2017, 17:34
got it somewhat working. MaskTools kept complaining about it requiring planar stuff, while lagarith seems to return rgb, or FFMS2 had troubles with the codec. Anyway, converting it to YUV444 ffv1 worked in reading it into avisynth, then using your script to render it to another FFV1 (RGB planar this time) file. That file into After Fx, Neat Video and back out into FF V1.
Detail retention is impressive and it cleans up _really_ well, but I do have the same issue you have: You see some weird color effect (like the sides of the image have a subtle 'under water' effect or something).
The very-low-frequency noise I can deal with.. it's the very-low-frequency _chroma_ noise that stays in that gives it a weird look. Every other thing, pretty impressive.
On the other hand, it looks like the commercial Neat video and KNMeansCL here don't really perform better than the other here. Maybe in dialing it (like always, GUI and workflow wins for me :P).
Bloax
27th January 2017, 13:40
Haha, yeah - I fucked up a little with the input seeing that the original has no '2' in it https://dl.dropboxusercontent.com/u/63152810/noise_test_sample.avi (the reason it had '2' in it was because I did another one prior to this which was suboptimal, and removed the 2 from the final upload)
The input is indeed RGB, so you can safely convert it to YV24.
It seems like my test scenario efforts weren't in vain - we've discovered that strange, very low frequency chroma noise is something that is very hard to handle for these two denoisers. :)
feisty2
27th January 2017, 13:44
Haha, yeah - I fucked up a little with the input seeing that the original has no '2' in it https://dl.dropboxusercontent.com/u/63152810/noise_test_sample.avi (the reason it had '2' in it was because I did another one prior to this which was suboptimal, and removed the 2 from the final upload)
The input is indeed RGB, so you can safely convert it to YV24.
It seems like my test scenario efforts weren't in vain - we've discovered that strange, very low frequency chroma noise is something that is very hard to handle for these two denoisers. :)
MDeGrain generally works better with low frequency noise.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.