Sequence or Nodes to reduce Noise in video?

I am interested in using the Dynamic Noise Reduction sequence plugin (./plugins/sequence/dnr.c) .

I am following the compiling instructions using lcc . http://wiki.blender.org/index.php/Manual/Blender’s_Plugins_System#Compiling:_2

I am able to create the dll, load it into the sequence editor, but then when i move to one of the frames where the effect is applied I get an instant crash.

My end goal here is to make some noisy grainy video look better. Any ideas??? I would also be interested in a noodle setup if someone happens to know a good way to reduce noise in images there. Thanks!

If the noise is a specific color, you can use nodes to isolate that color and replace it with a pixel computed by a blur of the good pixels. Noise reduction is some complicated stuff though, sorta like AI to determine which is a bad pixel and which is a good one.

I know there was a program that compared two frames to determine what had changed, and then computed a mask for that frame to mask out what was changed.

But noise is just random pixels being altered in like color or intensity. You would almost have to like take the average of like 3+ frames to throw out one that was substantially different from the other two.

Best way would be to diagnose why the plugin is crashing and fix it.

The “old” sequence plugins doesn’t work on 32bits float images, it makes blender crash instantly. Only works till 2.42 I think … perhaps is that your pb.

Well if the plugin is out of reach for current versions of blender perhaps I can do something with the sequencer to make raw video more visually appealing… I’ll post results here if I come up with anything useful. Anyone have any sequence node ideas?

My idea is two renderlayers. One gets Frame X, the other is set to play from Frame X+1. They feed a mix node set to difference. That output is used as a mask to Frame X using Frame X+1 pixels. That way, if a pixel is noise in Frame X, it will be replaced by Frame X+1.

Now that I got that idea across, you need to extend that idea with a third Renderlayer for X+2 and take the average of the three frame. This is necessary because X might be good and X+1 might be noise.

It’s like OSA but in time.

You could always download virtual dub.
http://www.virtualdub.org/download.html

It has a denoiser built in.

Multiple renderlayers are probably the way to go, plus you could blur the noise out while preserving edges, the way to do that is to input a copy of the image, put it through a sobel filter, into a strong colorband, and into the fac. input in the blur node. You could also scale the image to be double or triple its size and blur it then and scale it back down.

cheater. :stuck_out_tongue:

Ok, I am using virtual dub for capturing and filtering now. I am amazed at the amount of filters out there… there are at least 3 good smooth/denoisers that I have found. To all who have mentioned rendering, my question was about video taken with a camera and not rendering in this case. One thing that would be really cool is if the sequence editor could load virtual dub filters (vdf file). But until then I’ll do first stage of pp in vdub, mix in blender, then make my dvds. Thanks for all your input folks!

Here is one place for some cool filters. Check out the cartoon one for example!

Nice cartoon filter !