Log in

View Full Version : VagueDenoiser 0.35.1: a 2D Wavelet denoiser/smoother


Pages : 1 [2] 3 4 5

Lefungus
23rd September 2003, 17:58
It has no special case for interlaced videos. Interlaced videos introduce too many headaches amongst too many devs, so i've just skipped it :D

About 0.27:
- faster
- even if it's not icl compiled, it's faster for pentium 4 too !
- Qian thresholding that should keep more details than soft, but still be more effective than hard.
- experimental adaptive thresholding mode, that compute a threshold for each levels of the wavelet decomposition
- debug mode that show wavelets coefficients

Feedback would be cool, for the new adaptive mode, or the Qian thresholding.

Kurosu
25th September 2003, 19:34
Fixed YUY2 problem, added RGB24/32 support while I was at it.
Link as above, or at the start of this thread when Lefungus has edited it.

unplugged
25th September 2003, 21:11
Originally posted by Mr_Khyron
can VagueDenoiser be used on interlaced videos or do i have to deinterlace?
:confused:
Discussed many times.
Of course if you don't want deinterlace, like me and others:

# Fast method for non-temporal cleaners (beware, more aggressive vertically!)
SeparateFields()
AnySpatialCleanerYouLike()
Weave()
...
# Optimal method for spatial/temporal cleaners (must for temporal)
ComplementParity().Bob(0,0.5)
AnySpatialCleanerYouLike()
AnyTemporalCleanerYouLike()
SeparateFields().SelectEvery(4,1,2).Weave()
Voilą! ;)

Piper
25th September 2003, 23:34
@Kurosu

Thanks for the quick fix, only it appears as though the zip at VagueDenoiser (http://kurosu.inforezo.org/avs/VagueDenoiser/index.html) contains the 0.27.0.0 dll version.

Kurosu
26th September 2003, 01:43
It should work anyway for the matter you encountered, as I just forgot to edit the version file.

I however found something rather fishy. While fixing the bug increase by 50% the filter's speed, there are still strange result for lower resolutions.

Piper
26th September 2003, 03:09
Originally posted by Kurosu
It should work anyway for the matter you encountered, as I just forgot to edit the version file.

It did. Thanks again.

Shayne
18th October 2003, 00:23
Like to say this is a super denoiser right out of the box. I have finally found the replacement for my old DNR2.

I will need to play with the settings some. Anyone been tweaking and have some settings to share?

cipher
23rd October 2003, 12:57
I've just started using this filter rencently, and it gave really good results!
This idea of using wavelet is quite interesting and creative.
Nice work, Lefungus!

edit:
btw, would it be possible in the future it'll be working in RGB colorspace?:)
thx!

Mango Madness
10th December 2003, 05:44
chroma option with method 2 crashes

Chainmax
14th December 2003, 20:58
Awesome, I have been looking for a replacement to Dust to be used on my DVD rips. Can anyone tell me what settings would make VagueDenoiser act closest to Spacedust()?

Lefungus
14th December 2003, 23:15
Dust is temporal (motion involved) whereas Vaguedenoiser is spatial only, so i don't think you could clone dust behaviour with this filter

@Mango Madness:
I don't think i'll improve this filter soon, i'll try to look at it, and i may just disable method 2

@Cipher
Rgb filtering has already been added by Kurosu in 0.28. I haven't tried it, as it's already slow as hell in yv12, but it should work

Dali Lama
15th December 2003, 00:38
LeFungus,

Chainmax was talking about replicating "SpaceDust" which is a spatial only filter. It is a setting of the Dust filter.

bye,

Dali

Chainmax
16th December 2003, 19:05
Yeah, that's right. I am about to rip my Simpsons DVDs and would like to apply some slight noise reduction before IVTCing/Deinterlacing. Since I'd like to avoid colorspace conversions [(Space)Dust works in YUY2], I want to try VagueDenoiser instead.

Chainmax
20th December 2003, 20:56
I am trying VagueDenoiser (in the Simpsons rip I mentioned earlier) for slight denoising before IVTCing. If I use

SeparateFields()
VagueDenoiser(threshold=1.2,method=1,nsteps=6,chroma=true)
Weave()

VDubMOD crashes when loading the avs and WMP reports an error in the VagueDenoiser settings line. However, if I use

ComplementParity().Bob(0,0.5)
VagueDenoiser(threshold=1.2,method=1,nsteps=6,chroma=true)
SeparateFields().SelectEvery(4,1,2).Weave()

like unplugged suggested, the problem is gone. Can anyone tell me why? I'm using Avisynth 2.53 on an 850Mhz Athlon with 160Mb Ram and W2k.

Chainmax
23rd December 2003, 19:05
Well?

Lefungus
23rd December 2003, 20:37
Try to reduce nsteps, it means how much you decompose the original picture. If the original picture is too small, the filter won't be able to do n passes on it, so it may bork. nsteps=3 may give good enough results, and you'll gain speed.
If it's not an nsteps issue, then i don't know..

Chainmax
24th December 2003, 00:22
I'm not resizing, so frame size is 720x480. My computer has been acting weird lately and a formatting is long overdue anyway. I'm going to try again with SeparateFields()+Weave() after resintalling the OS and report back.

RadicalEd
24th December 2003, 06:39
Well, seperatefields() still feeds vaguedenoiser a 720x240 image.

Chainmax
24th December 2003, 17:55
I wouldn't call 720x240 a small image, it's the same number of pixels than 480x360...
Oh well, as I said I'm going to try using separatefields+weave without lowering the nsteps after I format my machine. If that doesn't work, then I'll try your alternative. In any case, I'll tell you guys how it turns out. Thanks for the suggestions :).

Xndo
29th January 2004, 20:11
so what would you suggest for a 512x384 res.

Chainmax
29th January 2004, 21:15
Well, that is a ~14% bigger frame size than 720x240. Try using nsteps=6, the worst that can happen is that VDubMod will shutdown and you'll have to lower the setting.

Xndo
30th January 2004, 13:10
well I'm aleady haveing thread deadlock issues with vdub right now, so I don't think if it errors out on that setting, isn't going to matter much ;P

Chainmax
30th January 2004, 17:19
Be sure to use version 1.5.4.1 of VDubMod. I read somewhere in here that later version are severely bug-ridden.

Xndo
31st January 2004, 18:56
i just went back to using the 1.76 project file from d2v, seems to work just fine. Also i didn't have any errors on using nsteps=6 or nsteps=3, though it did add another hour to per pass, on my encoding time =(... o well, at least it looks better

Lefungus
5th March 2004, 17:40
Vaguedenoiser 0.29:

Updated version from Kurosu
- Lots of changes in asm parts, now under NASM
- Many bugs fixed, in particular with colorspaces and interlaced mode


You shouldn't see any more version anytime soon from me or Kurosu as we have both quite dropped its development.

Kurosu have also done some work on a similar Vaguedenoiser filter for Gimp. if anyone is interested, you know his email :)

P0l1m0rph1c
5th March 2004, 22:23
@Lefungus: are you sure you updated your page? I can only see links to download Vaguedenoiser 0.28 there.

But anyway, i edited the link myself (http://perso.wanadoo.fr/reservoir/dl/VagueDenoiser-0.29.rar), and in the readme it says it's version 0.28.2.

I supose you forgot to update something, right?

BTW, I can't reach Kurosu's page, which is in the first post of this thread. It gives a 404.

ARDA
5th March 2004, 22:28
First of all thanks for the great work both have been doing with this filter.

with the following script

mpeg2source("mysource.d2v")
crop(12,0,704,476,align=true)
LanczosResize(672,384)
SeparateFields()
VagueDenoiser(threshold=0.8,method=1,nsteps=3,chroma= true)

I've got access violation or an image with distortion
I've tested with divx, xvid and ffdshow decoder,in any case
I don't get it to work correctly.Other resolution after
SeparateFields also gives problems.
Maybe I should use interlaced=true and apply SeparateFields afterwards
So I don't know if it is a bug or filter limitation that should be
mentioned.
Thanks again.ARDA

P0l1m0rph1c
5th March 2004, 22:51
Originally posted by P0l1m0rph1c
@Lefungus: are you sure you updated your page? I can only see links to download Vaguedenoiser 0.28 there.
Stupid me, I was reading Lefungus' page from cache :confused:

But anyway, i edited the link myself (http://perso.wanadoo.fr/reservoir/dl/VagueDenoiser-0.29.rar), and in the readme it says it's version 0.28.2.
It seems readme has been updated too now. And it seems also Kurosu removed his page.

I would like to thank you all for your great work in this filter
:)

Lefungus
5th March 2004, 22:55
This filter is sensitive to resolution, so i would advise using separatefields() after it. If the source is interlaced, maybe using interlaced=true is enough.
I'm not sure what separatefields exactly do. With a resolution of 672x192, vaguedenoiser works fine, but not after separatefields, i'll try to find why, and correct this at least.

killerhis
7th March 2004, 22:15
Avisynth open failure:
LoadPlugin: unbable to load "C:\blabla\vaguedenoiser.dll"

WTF is this... just reinstalled my pc.. wanna try the new vaguedenoiser, and I get this error, what am I missing, by the way, path is right... copy/pasted it and check it 5 times! If I remove it, then my script works perfectly.. but I want vague :devil:

who can help me?

serbersan
9th March 2004, 23:49
Yes I have had the same problem with the last version, it seems a problem of .29 version, I've downloaded the version 0.27 from downloads page of doom9 and it works ok””

DarkNite
10th March 2004, 01:26
I confirm that unable to load error. Version .29 will not load on any of the pc's here.

Previous versions are working though. Just revert to a previous version until it all gets worked out.

killerhis
15th March 2004, 17:50
asd;ljaslkdjas :angry: :angry: :angry:

I hate this, please fix this in new release.. meanwhile I'll go back to old version :angry:

Sigmatador
15th March 2004, 23:30
Originally posted by killerhis
asd;ljaslkdjas :angry: :angry: :angry:

I hate this, please fix this in new release.. meanwhile I'll go back to old version :angry:

...

GrofLuigi
16th March 2004, 02:13
If I have VagueDenoiser.dll present in my AVISYNTH plugins directory, VirtualDubMod throws the following error on START:

"VirtualDubMod.exe - Unable To Locate Component

This application has failed to start because libmmd.dll was not found. Re-installing the application may fix this problem."

and then it continues to work normally. It is reproducable, if I remove Vague Denoiser, all is well. If I put it back in... you get the idea. Again, this is on startup of VirtualDubMod, even before I get the chance to open ANY file.

BTW, libmmd.dll is present in some Adobe products.

GL

celtic_druid
16th March 2004, 06:11
libmmd.dll is an Intel compiler library... Simply means that the plugin was compiled with ICL.

Valky
31st March 2004, 17:35
Originally posted by d'Oursse
hello,

i wanted to try your plugin but it requires libmmd.dll. I think it is the library that comes from the intel compiler. Am I right ?

Another possibillity is that you compile statically your plugin.

thanks !

So version 0.29 needs this dll in my machine too (Athlon XP). Any chance to get this filter work without it?

Valky
31st March 2004, 17:43
Originally posted by serbersan
Yes I have had the same problem with the last version, it seems a problem of .29 version, I've downloaded the version 0.27 from downloads page of doom9 and it works ok””

Couldn't find it there..could you help a little bit? In which section it is suppose to be there?

DarkNite
31st March 2004, 19:11
You can always try warpenterprises (http://www.avisynth.org/warpenterprises/).

Soulhunter
11th April 2004, 22:07
Link... (http://forum.doom9.org/showthread.php?s=&postid=473342#post473342) ;)


Bye

Lefungus
12th April 2004, 08:29
I haven't had time yet to fix the 0.29 issue, but for those who need it, my site still host some old vd versions, just change the version number of the last link. (dll only 0.25/0.251/0.27/0.28/0.29, with sources 0.221/0.25/0.27/0.28/0.29 ).

ProTech
14th April 2004, 11:37
Originally posted by Valky
So version 0.29 needs this dll in my machine too (Athlon XP). Any chance to get this filter work without it?
http://www.rarewares.org/files/libmmd7.zip

Alxemi
27th June 2004, 14:25
Hi I“m trying to use VagueDenoiser because i“ve read very good things about it :)
But i must confess that get lost a little with the settings.. have you think about code some presets like 3cd/mipsmooth has?
Or maye someone in the forum that could suggest settings for typical confs (moviehq, movielq, animehq, etc)

Thanks a million!!

Soulhunter
27th June 2004, 17:44
I like this configs...

# Slight noise

Clip=last
clip1=clip.VagueDenoiser( threshold=0.25, method=1, nsteps=6, chroma= false )
clip2=clip.VagueDenoiser( threshold=0.50, method=1, nsteps=6, chroma= true )
clip1.mergechroma(clip2)


# Normal noise

Clip=last
clip1=clip.VagueDenoiser( threshold=0.50, method=1, nsteps=6, chroma= false )
clip2=clip.VagueDenoiser( threshold=1.00, method=1, nsteps=6, chroma= true )
clip1.mergechroma(clip2)

For stronger noise I also add a temporal de-noiser, but for anime mainly Deen !!!

Lefungus
29th June 2004, 21:50
Just to be sure:
chroma=false apply filtering on luma only
chroma=true apply filtering both on luma AND chroma

So i don't understand why you're filtering like this

Soulhunter
29th June 2004, 22:24
To use separate thresholds for luma and chroma denoising... :rolleyes:


Bye

Fizick
1st July 2004, 23:12
I tryed to tweak Vaguedenoiser for my grainy clip without great success, but probably tweaked version will be helpful to somebody else. However it is quite experimental (beta).
So, Ver. 0.30 from Fizick.
Added (restored) Brislawn 9/7 wavelet (C version only) and wavelet selection option.
Added WienerChop two-pass denoising mode using two different wavelet basises.
Replaced boolean "chroma" parameter to float "chromaT" as threshold value for chroma planes.
Added automatic (adaptive) threshold estimation .
3DNow mode of hard thesholding temporary replaced by SSE or C versions.
Fixed possible memory leakage bug for non YV12 modes.

http://bag.hotmail.ru

Kurosu
2nd July 2004, 10:44
Originally posted by Fizick
Added (restored) Brislawn 9/7 wavelet (C version only) and wavelet selection option.
Restored? Or did you make the option available. AFAIK, I had hidden it because only one wlt was present. Btw, I guess that's not a 9/7 Brislawn wavelet but a Daubechies one. I don't know if the code/framework is compatable, but you have optimized GPL code for that here (http://sourceforge.net/project/showfiles.php?group_id=38123&package_id=79794)


Added WienerChop two-pass denoising mode using two different wavelet basises.
Very easily optimizable, but I guess it's coming.

Added automatic (adaptive) threshold estimation.
You should contact Lefungus, he had something up his sleeve too.

3DNow mode of hard thesholding temporary replaced by SSE or C versions.
Why is that? Crash/unexpected result?

Fixed possible memory leakage bug for non YV12 modes.Didn't know about this one, so, well done.

Fizick
2nd July 2004, 18:51
Kurosu! I am glad to see you !
1. I say about restoring similar option from old version 0.221.
2. I use Brislawn 9/7 wavelet from v.0.221 source.
There are many 9/7 wavelets: Antonini, Villa1, Odegard, etc (but not Daubechies).

EDITED: Seems, Brislawn 9/7 is popular CDF 9/7 wavelet (A. Cohen, I. Daubechies, and J. C. Feauveau)


I do not know what is used in "Wavelet 9/7 codec". Thanks for link.
It is possibly, that some new wavelet types can give better results (coiflets etc). It is still researched.

3. Very easily optimizable, but I guess it's coming.
May be later.
But seems, I have not any difference in speed not with 3dnow not with SSE (probably due to slow SDR memory for Athlon XP 2400).
Anybody can post some speed results with 0.29 and 0.30 (for various settings)?

4. 3DNow mode of hard thesholding simly not works (null transform) for my compiled source of original version 0.29. I try VC6 and NASM 098. Released binary 0.29 works O.K.
You must look to it (not my 0.30 version, but enough original 0.29).
May be released 0.29 source (from Lefungus homepage) is not last one?
It is probably true, for example the main part of code was:

void VagueDenoiser::filterBlockPlane(int h, int w, const unsigned char* src,
unsigned char* dst, int srcPitch, int dstPitch)
{
if (!itlc)
{
/* Most usual case, always this one for YUY2 and RGBx */
if (w != srcPitch) byte2float(h, w, src, srcPitch, block);
else byte2float1D(w*h, src, block);

//Apply filtering

wavelet->transform2d(block,w,h,nsteps);
//if (method != -1) filter(block, w*h, thresh, w, h);
if (!debug)
wavelet->invert2d(block,w,h,nsteps);



Yes, "filter(...) was a comment! I spend a lot of time until see it.:confused:
Probably it was your "anti-hacker protection"? :D

Fizick
3rd July 2004, 11:46
Seems, Qian method=3 do not work with wavelet=1 on Athlons?