Log in

View Full Version : Help with mctmeporaldenoise settings... weird speckling artifacts


hunter_aran
10th March 2012, 18:45
Okay so I started working on doing some Batman TAS episodes which have a lot of noise, dot crawl, and rainbowing. First of all, I agree with many that strong denoising creates loss of detail and changes the look of "film" from how it was first envisioned, but for animation, especially very clean minimal art like in Batman, I think noise is not supposed to be there. Mctemporaldenoise has actually worked wonders to remove most of dot crawl and noise int he past for me.

I use the settings: mctemporaldenoise(settings="high", edgeclean=true, stabilize=true)

Now in Batman, especially in dark colors (which are EVERYWHERE) I get this weird splotchy speckling:
http://i975.photobucket.com/albums/ae236/hunter_aran/vlcsnap-2012-03-09-19h06m15s134.png
In the grey parts, especially it is a problem and worse in other scenes. I am encoding in x264 with a constant bit rate of 2500, which typically is enough to make it look no worse than the DVD under normal viewing. I am using 4 reframes and I know that more would probably help with some of this but I want the encodes to be compatible with iDevices which have a limit of 4.

Any ideas on how to prevent this and actually smooth out those sections? I mean they're just supposed to be solid colors so I assume this should be fairly easy... I just don't know what to do. Thanks for any help, this forum has been amazing! :thanks:

Emulgator
10th March 2012, 20:02
A: I would try lesser settings in MCTD.
"high" kills too much detail and may introduce artifacts of its own, but is still suitable for heavily decayed sources.

There are so many parameters in MCTD you may want to try...

MCTemporalDenoise( clip i, int "radius", int "sigma", bool "twopass", bool "useTTmpSm",
int "limit", int "limit2", bool "fixFFT3D", bool "chroma", bool "GPU", bool "MT", int "idx", bool "interlaced",
int "sharp", bool "adapt", int "strength", int "SHmode", int "SHmethod", int "Slimit", int "Sovershoot",
bool "Tlimit", int "Tovershoot", bool "protect", int "cutoff", int "threshold", int "maxdiff", bool "AA",
bool "useEEDI2", float "reduc", int "maxd", int "AAthr", int "method", bool "deblock", bool "useQED",
int "quant1", int "quant2", bool "edgeclean", int "ECrad", int "ECthr", string "ECmode", bool "stabilize",
int "maxr", int "TTstr", bool "flat", float "GFthr", int "AGstr", int "bias", int "bwbh", int "owoh",
int "blksize", int "overlap", bool "truemotion", bool "safe", bool "MVglobal", int "bt", int "ncpu",
int "precision", int "mode", int "thSAD", int "thSAD2", int "thSCD1", int "thSCD2", int "pel",
int "pelsearch", int "search", int "searchparam", int "MVsharp", int "DCT", clip "p",
string "settings", bool "show", int "screenW", int "screenH" )


B: A Add noise first (GrainFactory3) to mask other artifacts, then MCTD.

canuckerfan
10th March 2012, 20:07
let's see what you're throwing at the clip in terms of scripts. I am not familiar with animated material however you definitely wanna try lowering the strength.

cretindesalpes
10th March 2012, 20:50
The noise you removed acted as dithering. Solid colors that were between two integer YUV values were correctly represented by the noise averaged by the eyes. These colors are now forced to "choose" the closest YUV value, which depends on various things and will be not uniform, producing splotches. There are multiple solutions:

- Use a debanding filter to post-process the MCTD output. Not the best thing to do, but easy. IIRC MCTD has an option to enable GradFun2db. However this may result in (minor) additional detail loss.

- Restore a minimal amount of noise to keep the dithering effect:
mt_lutxy (unfiltered, filtered, "x y < y 1 - x y > y 1 + y ? ?", y=3, u=3, v=3)

- Use a high-bitdepth filter that can do the dithering directly, like SMDegrain Mod (http://forum.doom9.org/showthread.php?t=163604).

Vitaliy Gorbatenko
11th March 2012, 05:48
Frfun help you remove weird splotches.