Log in

View Full Version : Removing static chroma noise without destroying the image


thetoof
23rd January 2010, 00:45
Hi,

I'm filtering old animation with a lot of static backgrounds. Thing is... now I have a lot of sequences with annoying static noise. Usually fft3dfilter does a great job, but now the sigmas must be way too high to do the job (unless I didn't tweak them properly) since it can't use data from neighbor frames (they're all identical in the part of the frame that needs processing).
Luma "noise" doesn't really matter, since I like the grainy look. However, chroma is just ugly.

Little challenge for you folks - http://www.mediafire.com/?rqfwudo0yyl

thetoof
1st February 2010, 09:09
Anyone?

The Scientist
1st February 2010, 09:27
People probably aren't going to install the Lagarith Lossless Video Codec just to see these 5 frames.

Vitaliy Gorbatenko
1st February 2010, 13:56
Killer function + frfun7
PS: Lagarith Lossless Video Codec is very useful =) Good thing for filtring with low FPS.

zilog jones
1st February 2010, 14:28
fft3dfilter(plane=3,sigma=6)

Seems to help a lot, but it can't do much with just 5 frames (why such a small sample? :confused:)
You can usually get away with pretty high sigma values if you're just processing chroma, then again I'm usually dealing with VHS where the chroma is all noise :)

Didée
1st February 2010, 14:33
Killer cannot help. It's a temporal smoother, and thetoof says the chroma noise is static.

frfun7 is not bad here, but I found good old Deen does a better cleanup on chroma.

Try

deen("w2d",5,1,5,0,0,1.0)

or

deen("a2d",7,1,8,0,0,0.25)

osgZach
2nd February 2010, 00:13
People probably aren't going to install the Lagarith Lossless Video Codec just to see these 5 frames.

I did ! :stupid:


Then I ran away screaming :eek:

thetoof
2nd February 2010, 01:07
People probably aren't going to install the Lagarith Lossless Video Codec just to see these 5 frames. Here's an image you can load with imagesource then..... http://www.mediafire.com/?r4numy0f2ey
However when I have to choose between 1MB for 1 frame and 2MB for 5 frames, Lagarith wins.
fft3dfilter(plane=3,sigma=6)
This is exactly what I said I didn't want, as I've tried it before and it messes up the whole image. See how the red "faces" in the background become grayish? I'm also used to VHS processing (I offer this service professionally) where chroma is a big mess, but the difference here is that there is important chroma information I don't want to lose.
but it can't do much with just 5 frames (why such a small sample? :confused:)
Because the issue is spatial, not temporal and uploading a big sample would only mean a longer download for you. These 5 frames have enough motion to see the effect of spatial-only processing on moving parts, while being small enough to transfer very easily.

frfun7 is not bad here, but I found good old Deen does a better cleanup on chroma.
Try
deen("w2d",5,1,5,0,0,1.0)
or
deen("a2d",7,1,8,0,0,0.25)
I get invalid arguments; is this version the good one? http://avisynth.org/warpenterprises/

Thanks for the replies.

Didée
2nd February 2010, 01:31
Deen version I'm using: deen_25_dll_20030813.zip (http://www.mediafire.com/?gtm2xdhdrnn)

There's some confusion between "Deen beta-2" [DLL 104kB, 2005-07-05], and "Deen 1.0 beta-1" [DLL 240kB, 2003-08-13]. Deen from the older DLL has more functionalies. Don't ask me, I dunno.

Vitaliy Gorbatenko
2nd February 2010, 06:44
The static noise is. But the temporal noise is present accurate. Therefore advised Killer function. Old version Deen, I have not tested, can not say. But the new version of Deen just does not like the details ... frfun more tender.

thetoof
2nd February 2010, 07:20
Awesome. Less splotching and same denoising effect. Somewhat slower though, but I won't be the one to complain! Grain is also a bit smooth, but I can definitely live with that ^_^
I would have never thought that I'd need to use deen on a modern HD encode :p

Thanks!

edit to VG - I know the remaining grain will have to be processed with a temporal filter. That, I can manage. However, I absolutely needed a filter that'd remove chroma noise in the spatial domain. It happens to be successful in removing ALL of it, so I don't see why I should use any other (temporal) filter on chroma. For luma, I usually prefer a good old prefiltered clip with tweaked mdegrain or temporaldegrain... I haven't tried anything using mrecalculate yet (like Killer) since nothing dithyrambic about it was posted (from what I've seen).

Vitaliy Gorbatenko
2nd February 2010, 10:55
I'm see.. I'm try to test old Deen too ^_^ Didée thanks for the information =)

yup
2nd February 2010, 18:13
May be try fft3dfilter with plane=3 and bt=1 it is pure spatial filter?
Also may be try dfttest with tbsize=1?
I use both for prefiltering before using MVTools.
In last also can tune sigma for different frequencies.
Can use also bilateral filters, tritical plugin not very fast, but exist GPU version.
yup.

thetoof
2nd February 2010, 18:17
This is exactly what I had tried (bt=1 and tweaked sigmas). Deen works better in this case though.

DarkT
2nd February 2010, 21:32
mhmhmh, what worked god for me was FQDN3D+fft3d+VagueDenoiser... Each on strength of 3 to 4, with tweaks.

It should be much slower than jsut deen, but, I always prefer using various filters, coz' it always looks to me like 1 filter gets soem things other fitlers dont, and 1 fitler messes where others dont, so, like, with 3 fitlers I usually catch more bad stuff while leaving god stuff...

Jsut me maybe *shrugs*

thetoof
3rd February 2010, 01:17
what worked god for me ... leaving god stuff...Ouuuu divine filters :D

was FQDN3D+fft3d+VagueDenoiser... Each on strength of 3 to 4, with tweaks.Can you be more specific? (post a script of something...)

DarkT
3rd February 2010, 13:05
Ouuuu divine filters :D

Can you be more specific? (post a script of something...)

Sorry about the good ---> god thingy, it's a very inconvenient azerty keyboard, which has qwerty keyboard klayout used... and it's very insensitive to tapping! Grrr

Anyway - the script I use went something liek this:

fft3dfilter(sigma=3, bt=5, bw=32, bh=32, ow=16, oh=16, wintype=1, degrid=1)
VagueDenoiser(threshold=4, method=3, nsteps=5, chromaT=2.0)
hqdn3d(3,3,3,3)