Log in

View Full Version : Looking for a YV12 alternative to SpatialSoften good for non-visible noise


DrScotsman
15th January 2006, 16:02
Yeah, sorry for the crap title. Couldn't think of any other way to put it.

I have a DVD source that has next to no visual noise, however looking at histogram (mode="luma"), there is a lot of noise that kills compression (for the record, I'm aiming for x264 here).

For example, observe these images.

Histogram(mode="luma")

http://nuticulus.net/drscotsman/trash/images/2dtv/luma.png

ConvertToYUY2().SpatialSoften(4,4,8).ConvertToYV12
Histogram(mode="luma")

http://nuticulus.net/drscotsman/trash/images/2dtv/lumasoften.png

(There's more in the directory (http://nuticulus.net/drscotsman/trash/images/2dtv/), i.e. UToY().Histogram(mode="luma") and the images sans Histogram themselves, but this one demonstrates fine.)

The noise really hurts compression; from a 2586 frame sample compressed with FFV1 (lossless), the unfiltered (except cropping) one is 333MB whereas the softened source is 207MB. You can also see the difference in the PNG compression.

However, I'm not that fond of using colourspace conversions, and all of the (YV12) denoisers I've used seem to focus on visually repairing the image and thus destroy too much detail before removing the noise shown in the Histogram'd frames.

So my request, could someone point me in the direction of a YV12 denoiser that'll do the same thing as SpatialSoften(). If there's no other option, then I'd like to know if I should use the internal colourspace converters, or use a point sample (http://forum.doom9.org/showthread.php?p=764655#post764655) converter.

If you want to tell me how crap I am at testing other denoisers, by all means, here (http://www.nuticulus.net/drscotsman/trash/images/2dtv/nofilt2.avi)'s an unprocessed (again, other than cropping) 1 frame sample that you can test on (I can currently only upload to my server at ~2kB/s, so a bigger sample is kinda hard). YV12 HuffYUV made with ffdshow.

Didée
15th January 2006, 18:56
Have an eye on Deen (http://www.avisynth.org/warpenterprises/#deen). :)

MaskTools v2 contains mt_mappedblur(), which enables dynamic local thresholding (you can specify the threshold for each pixel by a 2nd clip), however it is limited to a 3x3 convolution.

Hmmmh ... mt_mappedDeen() ... :eek: