Log in

View Full Version : Noise filters comparative


FuPP
28th January 2003, 22:44
I've done a few tests in order to evaluate different noise filter. I have chosen to compare only the ones I consider the more efficient for that purpose (ie removing noise on heavily noised sources, keeping fair amount of detail and delivering fine grain).

Anyway, I did not have time to compare all filters available around here :D

Candidates are therefore : PixieDust, FaeryDust, Peachsmoother and A3d (from Deen).

The source is a live performance probably filmed with digital cameras : because of filming conditions (darkness), one can see heavy noise on pictures

I have initially used a "calibration frame", enabling me to adjust filters parameters in order to lose details as few as possible. This frame represents a slightly bearded face : when filters are too strong, the beard becomes blured (I have actually observed some other details on the face to calibrate filters).

Here are attached pictures : a part of the one I used for calibation (ATEST), another part of the same picture showing noise ("green picture" = BTEST), and a last one showing lights halos with a lot of noise (CTEST).

Script used :
-------------
LoadPlugin("C:\video\avsfilters\MPEG2Dec3.dll")
LoadPlugin("C:\video\avsfilters\<NOISE FILTER>.dll")
mpeg2source("F:\test\vts_03_1.d2v",cpu=0,idct=2)
Crop(8,8,704,560)
<NOISE FILTER>
BicubicResize(448,320,0,0.5)
AddBorders(16,128,16,128)

Settings
--------

Faery : Faerydust(limit=4)
Pixie : Pixiedust(limit=3)
Peach : PeachSmoother(NoiseReduction=45,Stability=15,Spatial=70,NoiseLevel=4.8,Baseline=3.2)
deen : deen("a3d",4,6,8,9)

my observations :
-----------------
The green picture shows that all filters are efficient, but peach and a3d do the job better
The "halos" picture shows that once more all filters are good, but it seems to me that a3d has thiner and more natural grain.

About compressibility gain :

Normal (no filter) : 100 %
faery : 89.9%
pixie : 88.6%
Peach : 88,4%
a3d : 89.1%

my conclusion
-------------
Peach is still the best compromise between efficiency, speed (Pixie, Faery and a3d are terribly slow) and compressibility.

I though prefer a3d grain, which looks better and more natural for me than other filters.

But do not forget Xdust thingies are on early development, and have place for improvement !

Be aware that these results have to be taken for what they are : a specific observation in a specific context : you have to test on different sources and make your own opinion.

A last thing : Peach, Faery and Pixie are avisynth 2.07 filters, a3d is a 2.5 filter. That's the reason why I did not try to directly compare speeds.

Hope it is relevant and usefull
FuPP.

digitalman
16th March 2003, 03:06
I tried PeachSmoother with the settings recommended here, and to me the results were equal to FaeryDust. Plus, the speed of PeachSmoother is a lot faster than FaeryDust. Thanks FuPP for posting your test.

FuPP
16th March 2003, 11:40
My pleasure :)

Be aware though that these settings were used in a particular situation, and are therefore not 'universal'.

Regards,
FuPP.

jorel
16th March 2003, 15:12
hi FuPP :)

i never used cos don't know A3d filter,
but in your "pictures" the results are fantastics!

please,in what version of avisynth the A3d filter works ?

thanks in advance!
:)

editing:

i post this thread in another forum cos
see that FuPP tests will be apreciated!

http://kvcd.net/forum/viewtopic.php?t=3295&sid=311f247c8b3d600663658dc70a6ca3e6

great work FuPP!

FuPP
16th March 2003, 16:38
hi :)

works with 2.5x
Can be found here '(choose Deen)' : http://ziquash.chez.tiscali.fr/index.html

Cheers,
FuPP.

Boulder
16th March 2003, 21:20
Too bad Lindsey's gone missing, I would have liked to see PeachSmoother for AVS2.5 so that I could test it myself with some analog TV captures - so much Star Trek to encode:p

FuPP
16th March 2003, 23:00
"I would have liked to see PeachSmoother for AVS2.5"

So do I... (or a similar Lindsey's thingy). HSD, if you read us...

High Speed Dubb
17th March 2003, 09:19
Yeah, where is that guy, anyhow?

;)

I’ve been pretty busy. In any case, Peach Smoother will still need to run in YUY2, even after it has been converted.

FuPP — About that comparison — Were the scenes you looked at in motion? The amount of motion is really important when evaluating the filtering.

Boulder
17th March 2003, 09:31
Good to see you around!

Personally I don't care if it wants YUY2 because I do my TV captures in YUY2:D I hope you find the time to do the port..

FuPP
18th March 2003, 21:40
Hi Lindsey :):):)

Originally posted by High Speed Dubb
FuPP — About that comparison — Were the scenes you looked at in motion? The amount of motion is really important when evaluating the filtering.

You are right, my very first post was not clear about the way I used PeachSmoother; in fact I have used different kind of scenes (including motion) for calibrating Noiselevel and Baseline. I simply used the static picture for adjusting Noise Reduction level.

In any case, Peach Smoother will still need to run in YUY2 even after it has been converted

Would be great anyway... till your next fruity denoiser :D

Cheers,
FuPP.

JuanC
19th March 2003, 07:02
Originally posted by FuPP
Hi Lindsey :):):)
Would be great anyway... till your next fruity denoiser :D I couldn't agree more. I haven't been as systematic comparing filters as Fupp, but after some tests, PeachSmoother has always been my first choice for reducing noise on my captures. It is really great and fast! If I had the chance to use it with AVS 2.5x, I would stop using AVS 2.0.x once and for all.
Thanks HSD!

jamesp
19th March 2003, 15:14
If the programmer of Peach has any time to look at anything, a bug has been noticed in Peachsmoother where some objects remain stationary when they should be moving very slightly. The thread with the bug is

http://www.kvcd.net/forum/viewtopic.php?t=3136&start=15

I've noticed the bug myself. Its a shame because other than this Peachsmoother is the nuts!:D

Jim



Originally posted by FuPP
"I would have liked to see PeachSmoother for AVS2.5"

So do I... (or a similar Lindsey's thingy). HSD, if you read us...

Wilbert
19th March 2003, 15:35
In case you didn't know that, it is possible to use peach in AviSynth v2.5 as long as you stay in YUY2. See Q&A: Q1.something.

Shayne
20th March 2003, 01:33
I think you need to also include the die hard dynamic noise reducer. Tweaked brightness thresholds wirth low color settings can do wonders.

http://members.tripod.co.jp/kiraru2002/#dnr2

converted readme

DNR2 - Dynamic Noise Reduction 2 (YUY2/RGB32/YV12 (CS_YV12, CS_I420))
Download DNR2 v0.7 (included Source files)

VirtualDub plugin - dynamic noise reduction (transplantation edition of MMX) by Steven Don and Avery Lee

DNR2 (threshY_hi, threshY_lo, threshU_hi, threshU_lo, threshV_hi, threshV_lo and type)


ThreshY_hi Brightness of the pixel of the frame data where one ago was accumulated (Y) threshold value 1
[ Default = 8 ]

ThreshY_lo Brightness of the pixel of the frame data where one ago was accumulated (Y) threshold value 2
[ Default = threshY_hi / 2 + 1 ]

ThreshU_hi Color difference information U of the pixel of the frame data where one ago was accumulated (the Cb) threshold value 1
[ Default = threshY_hi * 3 / 4 (YUY2/YV12): ThreshY_hi (RGB) ]

ThreshU_lo Color difference information U of the pixel of the frame data where one ago was accumulated (the Cb) threshold value 2
[ Default = threshU_hi / 2 + 1 ]

ThreshV_hi Color difference information V of the pixel of the frame data where one ago was accumulated (the Cr) threshold value 1
[ Default = threshY_hi * 3 / 4 (YUY2/YV12): ThreshY_hi (RGB) ]

ThreshV_lo Color difference information V of the pixel of the frame data where one ago was accumulated (the Cr) threshold value 2
[ Default = threshV_hi / 2 + 1 ]

Type " DNR2 " (or "") [ default ] OR " DNR1 "

In the CPU which supports MMX MMX is used.

Recommendation value 7 of threshold_hi - 12

Furthermore, in case of the RGB32, it corresponds to the respective Y:U:V = R:G:B.

Processing summary
Each point of the present frame and the point of the same position of the DNR processing end frame of one ago are compared,
It increases levels. Whether or not the difference within threshold with processing differs.

Case1: Type= " " OR " dnr2 " (default)
Presently the pixel = current of the frame, it makes the pixel = previous of the frame of one ago when
If |current - previous|
If |current - previous| > threshold_lo

Then new = (2 * current + previous) / 3 //current values to approach
Else new = (current + 3 * previous) / 4 //previous values to approach

Else new = current

Case2: Type= " dnr1 "
Presently the pixel = current of the frame, it makes the pixel = previous of the frame of one ago when
If |current - previous|
If |current - previous| > threshold_lo

Then new = (2 * current + previous) / 3 //current values to approach
Else new = previous
Else new = current

As for the DNR1 of the type and the difference of the DNR2, the DNR2 is high picture quality, but it does not become help of MPEG compression,
It becomes help of the high pressure reduction in regard to the point, the DNR1 MPEG compression.

Sample
DNR2(8,4,6,3,6,3,"dnr1")

JuanC
21st March 2003, 03:21
Originally posted by Wilbert
In case you didn't know that, it is possible to use peach in AviSynth v2.5 as long as you stay in YUY2. See Q&A: Q1.something.
Q1.23!! Very interesting. It works!!!

But unfortunately VDMod Crashes every time you quit. AppVer: 1.4.13.2; ModName: Unknown; offset: 059858c0

I'm using:
VDMod 1.4.13.1 with latest Bugfix (2003-01-31)
AVS 2.51 latest CVS snapshot (2003-03-20)
Latest LoadPluginEx from warpsharp package (2003-01-21)
DivX 5.0.3

VDMod will always crash on exit every time you use the LoadPlugin sentence in the AVS script (using the LoadPluginEx.dll), not just when putting it in the Autoload Plugin directory) and you don't even need to use the "loaded" plugin (i.e. peach) to make it happen.

High Speed Dubb
24th March 2003, 06:00
Jim wrote
If the programmer of Peach has any time to look at anything, a bug has been noticed in Peachsmoother where some objects remain stationary when they should be moving very slightly...

You’re seeing the standard behavior where the Peach is really, really sure that there’s no motion. Usually that means the noise estimate is off — Take a look at the docs on the “dot” option and on the “I’m seeing lots of blurring...” question.

Wilbert
24th March 2003, 10:18
VDMod will always crash on exit every time you use the LoadPlugin sentence in the AVS script (using the LoadPluginEx.dll), not just when putting it in the Autoload Plugin directory) and you don't even need to use the "loaded" plugin (i.e. peach) to make it happen.
I got the same problem. Dunno whether the problem is AviSynth or this plugin. The problem is that this japanese guy doesn't read this forum ?

FredThompson
23rd July 2003, 06:28
I've got similar crashing with Simon Walters' BorderControl filter. Loading it is enough. It doesn't have to be executed. Happens with AviSynth 2.5.2 latest CVS

JuanC
23rd July 2003, 07:31
Originally posted by FredThompson
I've got similar crashing with Simon Walters' BorderControl filter. Loading it is enough. It doesn't have to be executed. Happens with AviSynth 2.5.2 latest CVS I haven't had any problems since I moved the "LoadPluginEx.dll", and any plugin included in the WarpSharp package, away from the AviSynth autoload plugin directory (\Program Files\AviSynth 2.5\plugins).

If you use LoadPluginEx and your issues are related to it, take a look at the thread started by Richard Berg on a smart workaround to this problem (http://forum.doom9.org/showthread.php?s=&threadid=57875).

Hope that helps, :J

P.S. You could also take a look at the following threads to see what kind of problems you could have by leaving the LoadPluginEx at the autoload plugin directory:

http://forum.doom9.org/showthread.php?s=&threadid=49384
http://forum.doom9.org/showthread.php?s=&threadid=49492&highlight=loadplugin+juanc

EDIT: Also, you should be aware that after you Load the "loadPlugInEx" you can only load AviSynth 1.x/2.0.x plugIns...

FredThompson
23rd July 2003, 07:39
I'm sorry, I should have been more explicit. The crashing I'm seeing has nothing to do with loadpluginex. In fact, while it's crashing, the comment really doesn't belong in this thread.

DoW
23rd July 2003, 18:33
Not to hijack, but you talk about Xdust, and I was wondering if this is related to Dustv5? Where did you find info on this?

FredThompson
23rd July 2003, 18:44
Originally posted by Boulder
Too bad Lindsey's gone missing, I would have liked to see PeachSmoother for AVS2.5 so that I could test it myself with some analog TV captures - so much Star Trek to encode:p
keep your eyes open, Christmas might come early this year.

Kurosu
24th July 2003, 14:41
Originally posted by DoW
Not to hijack, but you talk about Xdust, and I was wondering if this is related to Dustv5? Where did you find info on this?
Xlist=(faery spatial pixie gold)
for X in $Xlist
do
filter=$Xdust
done
;-)

i.e., Xdust stands for one of the various kind of filters inside dustv5.

[EDIT]
I've been scripting too much in bash shell and the above is a proof of that excess... Avisynth doesn't have for loops.

DoW
25th July 2003, 17:20
Man, you got my hopes up!