Welcome Guest ( Log In | Register )


Important

The forums will be closing permanently the weekend of March 15th. Please see the notice in the announcements forum for details.

 
Algorithm Of "dynamic Noise Reduction", Who knows?
« Next Oldest | Next Newest » Track this topic | Email this topic | Print this topic
valja
Posted: Apr 18 2003, 05:15 PM


Advanced Member


Group: Members
Posts: 179
Member No.: 66
Joined: 1-August 02



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.
 
      Top
Kippesoep
Posted: Apr 18 2003, 10:20 PM


Moderator of the Virtualdub support forum


Group: Moderators
Posts: 447
Member No.: 441
Joined: 6-October 02



As the author of the DNR filter, I think I'm qualified to answer this wink.gif

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.
 
     Top
phaeron
Posted: Apr 19 2003, 02:12 AM


Virtualdub Developer


Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02



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. tongue.gif
 
    Top
Kippesoep
Posted: Apr 19 2003, 06:11 AM


Moderator of the Virtualdub support forum


Group: Moderators
Posts: 447
Member No.: 441
Joined: 6-October 02



Your words, not mine... From an e-mail you sent me, dated Sept. 19th 2000:

QUOTE

Please check your source against the V1.4a DNR source; there was a bug in
the MMX DNR code that got fixed in V1.4a and then crept back into V1.4b.
The MMX code should be pixel-locking just like the non-MMX code.


 
     Top
phaeron
Posted: Apr 19 2003, 06:25 AM


Virtualdub Developer


Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02



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.
 
    Top
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
4 replies since Apr 18 2003, 05:15 PM Track this topic | Email this topic | Print this topic

<< Back to VirtualDub Filters and Filter Development