PDA

View Full Version : Verification of SpatialSoftenMMX parameters?


whosithis
8th May 2002, 07:13
I've looked everywhere that I know how (AviSynth_Soften.zip, google.com, searching this board) for an explanation of the parameters for SpatialSoftenMMX. I have not been able to find the source code to look at either. What I finally did was look at the hex code for the DLL. Could someone help me out and verify this?

SpatialSoftenMMX(1,4,6,false,false,4,4,6,8)

1 - radius
4 - luma threshold
6 - chroma threshold
false - circles (what does this mean?)
false - interlaced
4 - dnr luma bottom (?)
4 - dnr luma top (?)
6 - dnr chroma bottom (?)
8 - dnr chroma top (?)

What does circles mean? Does it weight the affect of surrounding pixels by distance?

Do the "dnr" parameters mean SpatialSoftenMMX is also doing some dynamic noise reduction like TemporalSmoother and TemporalSoften2? (I really appreciate how fast TemporalSoften2 is, thanks!)

Responses are appreciated in advance! Thanks!

dividee
8th May 2002, 20:33
You have the right parameters.

"Circles" means a circular area is used instead of a square area for filtering, but it's not implemented and has no effect.

Indeed, it performs dynamic noise reduction after the spatial filtering. Unfortunately, Mathias site disappeared and I don't have the doc. For the top and bottom values, I'm not 100% sure, maybe someone with better memory can confirm this :( :
If the chroma and luma of the pixels does not differ more from the same pixel in the previous frame than the 'bottom' value, the previous pixel is copied in the current frame. If the difference is above the 'bottom' treshold but below the 'top' treshold, the two pixels are averaged together. Above the 'top' treshold, the pixel is left as is.

whosithis
8th May 2002, 23:48
So should this filter still be used in conjunction with other temporal filters like TemporalSoften2? Or can I just use SpatialSoftenMMX to do the same job that TemporalSoften2 would do? I guess this may be a matter of taste as well...

OUTPinged_
11th May 2002, 12:31
whoisthis, the dnr acts similat to range1 temporalsoften, though it doesnt take into account "next" frame.

dividee, thanks for clearing up a meaning of "top" and "bottom" values.

it has some wierd issue, that dnr algo. if a difference between top and bottom value for luma is more than 2, it produces some "shit" pixels. any idea why does that happen?

dividee
11th May 2002, 14:52
I prefer to use TemporalSoften(2) or TemporalSmoother than the built-in DNR in SpatialSoftenMMX. But there's another issue with that DNR: you can't disable it because setting the tresholds to 0 would also give "shit" pixels.

sol314
14th May 2002, 15:49
Now I have to add something to this discussion.
(For those who don't know I'm the programmer of SpatialSoftenMMX.)

Actually, I didn't invent any new filter here. I just combined the spatialsoften algorithm of Avisynth with the dnr filter of VirtualDub. The main work was to write an MMX version of spatialsoften.

I did a lot of tests with that filter and it turned out that there are better ones :-(

To make a long story short: use TemporalSmoother, it is the best noise filter I ever have seen so far.

SpatialSoftenMMX is too slow.

The "circle" parameter is without effect because it doesn't make any difference if the surrounding area which is investigated for every pixel has the form of a circle or of a rectangle. That's why I decided to deactivate it to improve the performance.

Concerning the filter parameters: I'm afraid I forgot their meaning. Anybody who is interested should take a deep look at the source code :-)
The dnr parameters are the same as for the VirtualDub version.

Again: don't care about that filter anylonger, it is too slow.

Mathias

whosithis
14th May 2002, 19:41
Thanks for your replies!

OUTPinged_
17th May 2002, 02:18
sol, in fact your filter is pretty quick when one wants to have a temporal and spatial filters in one chain.

wonder if i have to bug you and request for shit fixing for dnr algo.