Log in

View Full Version : Need help to remove noise from MiniDV camcorder source


SomeoneElse
29th March 2004, 19:27
Hi,
Please view the attached image. I want to remove the noise you can see on the walls.

I have tried the following with AviSynth

TomsMoComp(1,30,1)
ConvertToYV12(interlaced=false)
eDeen(7,0,10,0,1,False) # Try to lower the 3rd value (10) to reduce chroma keying or increase to clean more (color only)
luma=Blur(0.7) # don't omit this! You can try between 0.7<>1.0
MergeLuma(luma)
ConvertToYUY2(interlaced=false)
PeachSmoother(NoiseReduction=30,Stability=0,DoSpatial=True)
Sharpen(0.5) # Optional

This was found on this forum and is doing a pretty good job but it loses a little detail on the cat. So I need your help to refine or suggest something totally different. In motion it looks a lot different.

Thanks!
P.S. If you can't see the images. Just send me an email.

No Filter
http://someone1977.no-ip.org/dvstuff/nofilter.png
Filtered
http://someone1977.no-ip.org/dvstuff/Filtered.png

stickboy
29th March 2004, 19:33
I don't have any filtering advice, but if you need to post lossless images, please use PNGs instead of BMP. (Irfanview can perform the conversion and is free for non-commercial use.)

Also, it's better to link to large images instead of inlining them; otherwise everyone who views this thread will have to download those images each time...

troy
30th March 2004, 06:50
I think for starters if you are using a minidv source then you need interlace=true.

Mug Funky
30th March 2004, 19:46
hmm... troy: no need to do that if he's deinterlacing before conversion.

actually, tomsmocomp will work on yv12 anyway, so you can jack the speed up by swapping those lines.

not much i can think of to denoise without losing detail in the cat, but this scene is almost too noisy to be worried about losing detail.

in that script, i think possibly the weakest link is peachsmoother. it looks good on the computer screen, but once it's on a TV it's quite an obvious temporal effect. perhaps kassandro's "removedirt" could help you here.


is this something you can re-shoot with some brighter lighting? 1-chip DV cams are not too good in low light (that is without that spiffy infra red mode), and underexposed footage will increase the relative noise from the DV compression (which is significant - the only thing that keeps DV looking good is the huge bitrate).

i find a good cheap lighting setup is an old tripod and an outdoor floodlight or two (500 watts... sweet).

[edit]

just to be a little more helpful, here's a home-brewed spatio-temporal smoother i'm using on a very grainy transfer of blade runner (this DVD is such a woefully hopeless transfer i use it to tweak scripts like these often).


function DenoiseMix (clip c, int "cut", int "rolloff", float "gamma",
\ int "radius", int "th", int "temp_radius", int "scenechange", bool "show")
{

radius=default(radius,4)
temp_radius=default(temp_radius,2)
scenechange=default(scenechange,20)
cut=default(cut,127)
rolloff=default(rolloff,30)
gamma=default(gamma,1.5)
th=default(th,4)
show=default(show,false)

low = c.bilinearresize(4*(c.width/radius),4*(c.height/radius))
\ .temporalsoften(temp_radius,th,th,scenechange,2)
\ .bicubicresize(c.width,c.height,1,0)

highmask = overlay(low,c,mode="difference")
\ .levels(cut,gamma,cut+rolloff,0,255,coring=false)

show==true ? highmask.greyscale() : overlay(low,c,mask=highmask)

}


i might start a new thread for this one, but i'm not sure how useful it is yet :)

to use it, just copy it into the top of your script, then add the line "denoisemix()" to your script. you maybe wont need the rest of those lines if it works well. otherwise tweak the "radius", "gamma" and "rolloff" params until it's noise-free and hopefully not ugly.

SomeoneElse
30th March 2004, 20:41
Thanks for the help guys. I will probably have time to play with this tomorrow! I will then come back to post how it went!

SomeoneElse
9th June 2004, 18:34
Hi,
I know it has been a long time but I only recently been able to do Video and from my early tests I see an improvement!

Thanks again for all the help!