<p>Elaboration on temporal solve:</p>

<p>I don't have much concrete info for you, but I'm drawing from the idea of "temporal anti aliasing".</p>

<p>Basically, if a camera was stationary, you could average pixel values over the last N frames, possibly using harmonic mean or something else like that to help filter out spikes.  The result would be a cleaner, less noisy, more correct image.</p>

<p>But not all cameras (or objects!) are stationary, so what then?  Well, if you have some way of identifying where a pixel this frame matches a pixel on the previous N frames, you could average them in the same way.  If a current pixel has no matching previous pixel (due to something previously occluding becoming visible) you just show the raw current value.</p>

<p>Games use this for antialiasing by simulating super sampling over time, but they have the benefit of per pixel motion vectors as well as the current and previous camera matrix, so it's a lot harder in your situation!</p>

CC BY-SA 3.0
2015-09-01T19:15:45.790Z
2015-09-01T20:03:34.453Z
2015-09-01T20:03:34.453Z
Alan Wolfe
<p>A fairly basic but effective technique is <a href="https://en.wikipedia.org/wiki/Median_filter" rel="nofollow noreferrer">median filtering</a>.  For video, you can apply it (spatio)temporally by replacing the value of each pixel in each frame by the median of the values of the pixel (and its neighbors) in the current and the <em>N</em> previous and later frames.</p>

<p>A nice feature of median filtering is that it preserves linear edges (and, when used temporally, edges that move at a steady rate).  It does, however, tend to erode sharp corners and narrow ridges (and, temporally, narrow fast-moving features).  When overused, spatial median filtering has a tendency to create an over-smooth "plastic" appearance, while excessive temporal median filtering can even make small, fast-moving objects disappear completely.  (<a href="https://photo.stackexchange.com/a/20960">Sometimes</a> this is considered a <a href="http://www.deke.com/content/dekes-techniques-022-removing-people-with-image-stacks" rel="nofollow noreferrer">feature.</a>)</p>

<p>It's possible to fine-tune and improve median filtering further with advanced techniques like motion tracking and threshold detection, but those also introduce an extra layer of complexity, and thus extra opportunities for unwanted artifacts if applied carelessly.  For many purposes, a simple median filter <em>of moderate size and strength</em> is often all you really need.</p>

CC BY-SA 3.0
2015-09-15T23:13:13.823Z
2015-09-15T23:13:13.823Z
2017-04-13T12:44:05.773Z
Ilmari Karonen
<p>In 2009 it seems there was a development of an hierarchical and comparison motion detection algorithm that was proposed in this paper:</p>

<p><a href="http://perso.ensta-paristech.fr/~manzaner/Publis/icip09.pdf" rel="nofollow">Motion detection: fast and robust algorithms for embedded systems</a></p>

<p>They managed to get a decent reduction of noise, as you can see in the last image of the paper. It seems it's the "morphological post-processing" that removes stand-alone pixels (section <strong>2.4 New hierarchical algorithm</strong>). Perhaps a similar technique can be applied to denoise the video.</p>

CC BY-SA 3.0
2015-09-15T12:01:59.980Z
2015-09-15T12:01:59.980Z
Armfoot
<p>Video noise is random and not correlated in time. I assume, the best method is using <strong>wavelet denoise</strong> in this case, right? If yes, how is wavelet denoise implemented for video? Is there something to consider in order to apply the calculation to the whole image sequence?</p>

CC BY-SA 3.0
2015-09-01T16:17:03.930Z
I feel like temporal coherence could be used to denoise video as well.
Alan Wolfe
CC BY-SA 3.0
2016-02-23T07:04:54.733Z
Why do you think Wavelet based Denoising would be best?
Royi
CC BY-SA 3.0
2016-02-24T06:42:29.020Z
@poor, What make you think that (Not that I think the other way, I'm just wondering)?
Royi
CC BY-SA 3.0
2016-02-24T12:26:51.637Z
@Drazick I've read this somewhere 2-3 years ago. Not sure, but I guess it's probably a mixture of different algorithms for different situations. May I ask why you are interested in this? Is there any better approach? *Note: I'm not a physicist. However I'm using denoisers for video very frequently and I'm just curious how they work* :) Also see: http://dsp.stackexchange.com/questions/20086/denoise-images-with-wavelets
p2or
CC BY-SA 3.0
2016-02-25T06:56:27.483Z
I would also guess Wavelets, but here - https://ni.neatvideo.com/overview/how-does-it-work the imply something else. Regarding the approach, I'm not sure, Non Local Means should also be good but harder to tune and slower to run.
Royi
CC BY-SA 3.0
2016-02-25T10:46:52.927Z
@Drazick That's neat image, a stand alone app to denoise *images*.
p2or
CC BY-SA 3.0
2016-02-25T11:02:13.980Z
It is the same for Video. But you deleted the comment which creates the context.
Royi
<image><denoise><video><image-processing>
How to denoise video?
p2or
# How to denoise video?

(Asked by: username_0 on 2015-09-01)

Video noise is random and not correlated in time. I assume, the best method is using **wavelet denoise** in this case, right? If yes, how is wavelet denoise implemented for video? Is there something to consider in order to apply the calculation to the whole image sequence?

**Tags:** image, denoise, video, image-processing

> **Comments:**
> **username_1**: I feel like temporal coherence could be used to denoise video as well.  
> **username_2**: Why do you think Wavelet based Denoising would be best?  
> **username_2**: @poor, What make you think that (Not that I think the other way, I'm just wondering)?  
> **username_0**: @Drazick I've read this somewhere 2-3 years ago. Not sure, but I guess it's probably a mixture of different algorithms for different situations. May I ask why you are interested in this? Is there any better approach? *Note: I'm not a physicist. However I'm using denoisers for video very frequently and I'm just curious how they work* :) Also see: http://dsp.stackexchange.com/questions/20086/denoise-images-with-wavelets  
> **username_2**: I would also guess Wavelets, but here - https://ni.neatvideo.com/overview/how-does-it-work the imply something else. Regarding the approach, I'm not sure, Non Local Means should also be good but harder to tune and slower to run.  
> **username_0**: @Drazick That's neat image, a stand alone app to denoise *images*.  
> **username_2**: It is the same for Video. But you deleted the comment which creates the context.  

---

## 3 answers

### Answer by username_1 on 2015-09-01. Score: 3

Elaboration on temporal solve:

I don't have much concrete info for you, but I'm drawing from the idea of "temporal anti aliasing".

Basically, if a camera was stationary, you could average pixel values over the last N frames, possibly using harmonic mean or something else like that to help filter out spikes. The result would be a cleaner, less noisy, more correct image.

But not all cameras (or objects!) are stationary, so what then? Well, if you have some way of identifying where a pixel this frame matches a pixel on the previous N frames, you could average them in the same way. If a current pixel has no matching previous pixel (due to something previously occluding becoming visible) you just show the raw current value.

Games use this for antialiasing by simulating super sampling over time, but they have the benefit of per pixel motion vectors as well as the current and previous camera matrix, so it's a lot harder in your situation!


---

### Answer by username_3 on 2015-09-15. Score: 2

A fairly basic but effective technique is [median filtering](https://en.wikipedia.org/wiki/Median_filter). For video, you can apply it (spatio)temporally by replacing the value of each pixel in each frame by the median of the values of the pixel (and its neighbors) in the current and the *N* previous and later frames.

A nice feature of median filtering is that it preserves linear edges (and, when used temporally, edges that move at a steady rate). It does, however, tend to erode sharp corners and narrow ridges (and, temporally, narrow fast-moving features). When overused, spatial median filtering has a tendency to create an over-smooth "plastic" appearance, while excessive temporal median filtering can even make small, fast-moving objects disappear completely. ([Sometimes](https://photo.stackexchange.com/a/20960) this is considered a [feature.](http://www.deke.com/content/dekes-techniques-022-removing-people-with-image-stacks))

It's possible to fine-tune and improve median filtering further with advanced techniques like motion tracking and threshold detection, but those also introduce an extra layer of complexity, and thus extra opportunities for unwanted artifacts if applied carelessly. For many purposes, a simple median filter *of moderate size and strength* is often all you really need.


---

### Answer by username_4 on 2015-09-15. Score: 1

In 2009 it seems there was a development of an hierarchical and comparison motion detection algorithm that was proposed in this paper:

[Motion detection: fast and robust algorithms for embedded systems](http://perso.ensta-paristech.fr/~manzaner/Publis/icip09.pdf)

They managed to get a decent reduction of noise, as you can see in the last image of the paper. It seems it's the "morphological post-processing" that removes stand-alone pixels (section **2.4 New hierarchical algorithm**). Perhaps a similar technique can be applied to denoise the video.


---

