Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

Domains: forum.doom9.org / forum.doom9.net / forum.doom9.se

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread
Old 18th September 2011, 20:14   #1  |  Link
Mounir
Registered User
 
Join Date: Nov 2006
Posts: 781
Black and white frame + black dots noise

I'm struggling to get rid off this noise at the moment:
http://imageshack.us/photo/my-images/405/noisy01.jpg/

This noise is present throughout the video (reception problem i guess). I've made tests with neat but if i want to remove all of these black dots it get blurry real quick (i can't even get a 60% profile quality by the way). Suggestions welcomed
Mounir is offline   Reply With Quote
Old 18th September 2011, 21:14   #2  |  Link
jmac698
Registered User
 
Join Date: Jan 2006
Posts: 1,866
It's called Pepper noise you need something like http://avisynth.org/vcmohan/DeSaltPe...altPepper.html
Only problem, your noise is more than 1 pixel, so maybe if you invert the video you can use descratch.
jmac698 is offline   Reply With Quote
Old 18th September 2011, 23:47   #3  |  Link
Mounir
Registered User
 
Join Date: Nov 2006
Posts: 781
This filter seem to do the job, thank you for the info
I use this:
assumetff()
separeatefields()
DeSaltPepper(opt = "pepper",UV = true, tol = 0, avg = true, feedback = 10 )
weave()

There are a few visible 'peppers' , a big improvement nonetheless
Mounir is offline   Reply With Quote
Old 19th September 2011, 01:30   #4  |  Link
jmac698
Registered User
 
Join Date: Jan 2006
Posts: 1,866
Glad it worked, didn't know there was a need for separate fields. Also just try temporalsoften(1,255,255)
jmac698 is offline   Reply With Quote
Old 19th September 2011, 02:50   #5  |  Link
Mounir
Registered User
 
Join Date: Nov 2006
Posts: 781
I'm not sure if it's the feedback parameter that's at fault but if i don't use grayscale() after this script the images have a greenish tint
Mounir is offline   Reply With Quote
Old 19th September 2011, 05:19   #6  |  Link
jmac698
Registered User
 
Join Date: Jan 2006
Posts: 1,866
Lucky you're dealing with greyscale, must be a bug. If you need color, it can be worked around with mergechroma or else, we can try a different filter.
I'm sure there's some other ways but I'll let someone else make a suggestion.
jmac698 is offline   Reply With Quote
Old 19th September 2011, 12:37   #7  |  Link
Ghitulescu
Registered User
 
Ghitulescu's Avatar
 
Join Date: Mar 2009
Location: Germany
Posts: 5,773
I don't think it's "pepper noise", I never met this defect myself, but I remember reading here, in doom9's forum, that some graphic cards exhibit this noise under particular conditions (bus congestion IIRC).
__________________
Born in the USB (not USA)
Ghitulescu is offline   Reply With Quote
Old 8th April 2014, 16:35   #8  |  Link
Mounir
Registered User
 
Join Date: Nov 2006
Posts: 781
this filter is fantastic i think, i just did new tweaks

First you must not use separatefields+weave for this filter (for an interlaced source), strange but it's like that
Second, the tolerance parameter seems to be critical, i've found -1 to be just fine for my video so that gives:
DeSaltPepper(opt = "pepper",UV = true, tol = -1, avg = true, feedback = 3 )

Third and last, use this filter with RemoveSpotsMC()after and you shall feel the force

desaltpepper will turn your black dots/lines (must be small lines) into white and removespots will happilly digest that stew with little artifacts (if any)
edit:
actually, ive found blending artifacts on fast motion so it's better to deinterlace before applying the filters


Last edited by Mounir; 8th April 2014 at 18:31.
Mounir is offline   Reply With Quote
Old 10th April 2014, 07:20   #9  |  Link
bxyhxyh
Registered User
 
Join Date: Dec 2011
Posts: 352
I'm sorry if i'm being off here.

Have you tried something like this?
Code:
#source()
AssumeTFF()
SeparateFields()
noisy   = last
nonoise = FFT3DFilter(sigma=13,bt=1) # Your favourite denoiser
diff    = 10                         # Difference between denoised and noisy clips
m       = mt_lutxy(noisy,nonoise,"y x - "+string(diff)+" - 255 *")
mt_merge(noisy,nonoise,m)
weave()
EDIT: LOL, I didn't notice this was 3 years old thread.

Last edited by bxyhxyh; 10th April 2014 at 08:43.
bxyhxyh is offline   Reply With Quote
Old 10th April 2014, 11:06   #10  |  Link
Mounir
Registered User
 
Join Date: Nov 2006
Posts: 781
yeah old thread but i'm still working on the same video since all that time

Your script rock the skies man with little artifacts i like it !
Mounir is offline   Reply With Quote
Old 10th April 2014, 11:24   #11  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,498
bxyhxyh,
Not sure that FFT3DFilter would best be used that way, FFT3DFilter is spacio/temporal and SeparateFields is not good
in such circumstance (spacial displacment between even/odd fields), use the FFT3DFilter Interlaced=true arg instead, then
perhaps SeparateiFields afterwards if the rest of script requires it (Have not tried it but looks wrong as it is to me).

EDIT: Maybe Add Interlaced=True, remove both Separatefields and Weave, leave rest as is.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 11th April 2014 at 16:16.
StainlessS is offline   Reply With Quote
Old 10th April 2014, 12:04   #12  |  Link
Mounir
Registered User
 
Join Date: Nov 2006
Posts: 781
works fine for me stainless
before:
http://img15.hostingpics.net/pics/9715841201.jpg
after:
http://img15.hostingpics.net/pics/2625187702.jpg

The only thing is that it introduce some kind of white fog (best i can describe it) along the edges.It's faint ,but it's there.
Perhaps a median filter would be best instead of fft3d ?

best results i get so far are with removedirtmc+ fft3d like this:

nonoise = RemoveDirtMC.fft3dfilter(sigma=7.0,sigma2=7.0,sigma3=7.0,sigma4=7.0, bt=1, bw=32, bh=32, ow=16, oh=16,plane=0, sharpen=0.0,interlaced=false,dehalo=0.0)

Last edited by Mounir; 10th April 2014 at 12:31.
Mounir is offline   Reply With Quote
Old 10th April 2014, 12:36   #13  |  Link
bxyhxyh
Registered User
 
Join Date: Dec 2011
Posts: 352
Quote:
Originally Posted by StainlessS View Post
bxyhxyh,
Not sure that FFT3DFilter would best be used that way, FFT3DFilter is spacio/temporal and SeparateFields is not good
in such circumstance (spacial displacment between even/odd fields)

EDIT: Maybe remove both Separatefields and Weave, leave rest as is.
You're right
My first version of this post was not included SeparateFields and Weave.
But I thought OP needs to remove noise before deinterlace.
It is safer to use after deinterlace.

Last edited by bxyhxyh; 10th April 2014 at 12:50.
bxyhxyh is offline   Reply With Quote
Old 10th April 2014, 13:07   #14  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,498
One option to keep interlacing while spatio/temporal processing is to process even/odd as two separate chains
(using SeparateFields, SelectEven, SelectOdd) before temporal processing on each chain, then interleave even/odd
and then weave to get back full clip.
An alternative is to use StickBoy functions in a script called something like JDL_Interleave.avs, find stickboy
stuff on Wiki (use the 'flip' option, or whatever its called).

EDIT: that was easy to find, here tis: http://www.avisynth.nl/users/stickboy/

JDL_FoldFieldsVertical and JDL_UnfoldFieldsVertical
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 10th April 2014 at 13:54.
StainlessS is offline   Reply With Quote
Old 10th April 2014, 13:44   #15  |  Link
bxyhxyh
Registered User
 
Join Date: Dec 2011
Posts: 352
Quote:
Originally Posted by StainlessS View Post
One option to keep interlacing while temporal processing is to process even/odd as two separate chains
(using SeparateFields, SelectEven, SelectOdd) before temporal processing on each chain, then interleave even/odd
and then weave to get back full clip.
An alternative is to use StickBoy functions in a script called something like JDL_Interleave.avs, find stickboy
stuff on Wiki (use the 'flip' option, or whatever its called).

EDIT: that was easy to find, here tis: http://www.avisynth.nl/users/stickboy/

JDL_FoldFieldsVertical and JDL_UnfoldFieldsVertical
Yes, It is helpful for temporal denoisers.

But bt=1 means pure spatial, so no need to use this. It is exactly same as not using interleave(even,odd).

@Mounir
"White fog" is caused by spatial denoisers. But I won't recommend temporal denoisers on this noise. Because very strong setting is needed. It can be lead to ghosting. Then ghosts can be masked here.

Still you can try MDegrain(truemotion=false).

Last edited by bxyhxyh; 10th April 2014 at 14:10. Reason: grammar
bxyhxyh is offline   Reply With Quote
Old 10th April 2014, 13:53   #16  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,498
Yes thank you bxyhxyh (catchy name you got ), forgot that FFT3DFilter has a 2D mode (I normally just use default bt=3,
I thought default was 1).

EDIT: I kinda like VagueDenoise() for basic 2D filtering (has an Interlaced arg too I think).

EDIT: Still, Using FFT3DFilter Interlaced=True, should remove necessity for SeparateFields, I think,
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 11th April 2014 at 16:18.
StainlessS is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 19:26.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.