| Printable Version of Topic
Click here to view this topic in its original format |
| Unofficial VirtualDub Support Forums > VirtualDub Filters and Filter Development > Algorithm Of "dynamic Noise Reduction" |
| Posted by: valja Apr 18 2003, 05:15 PM |
| Who knows working algorithm of "Dynamic Noise Reduction" filter (by Steven Don and Avery Lee)? I use successfully both "dynamic noise reduction" and "temporal smoother" filters with noisy sources. Work of "temporal smoother" was very well explained by phaeron, but work of "dynamic noise reduction" is entirely unclear for me, so I can't estimate results and have no idea about possible side effects. |
| Posted by: Kippesoep Apr 18 2003, 10:20 PM |
| As the author of the DNR filter, I think I'm qualified to answer this The algorithm is pretty similar to that of temporal smoother (DNR is faster, but more limited). What it does is quite simple: it compares the value of a pixel to its value in the previous frame. If the difference between them is less than the threshold you set in the configuration dialog, this is considered the result of noise and the pixel's value is substituted with the old value. If the difference is greater, this is considered motion and the pixel is let through (and the reference pixel is updated). That was my original version. Avery Lee (phaeron) ported it to use MMX instructions (hence the shared credit), but he introduced a bug. This resulted in noise not being locked into place, but blended (when updating the reference value). This turns out to have a quality-enhancing effect, because the reference value has the noise smoothed out of it. It does however mean more changes in the frame and therefore won't help compression as much. |
| Posted by: phaeron Apr 19 2003, 02:12 AM |
| You know, if you considered this a bug, you should have told me before I released 8 versions of it in the capture module. This is the first I've heard of it. |
| Posted by: Kippesoep Apr 19 2003, 06:11 AM | ||
Your words, not mine... From an e-mail you sent me, dated Sept. 19th 2000:
|
| Posted by: phaeron Apr 19 2003, 06:25 AM |
| Oh, sorry. I thought you meant above that the reference plane wasn't supposed to be updated in the blend range, which was intriguing. This would have some ability to avoid drifting with noise as the current algorithm does, although I'm not sure it would be better. I wonder if having separate hold/blend ranges for output and reference would be better. |