PDA

View Full Version : New favorite prefilter for TemporalDegrain()


g-force
15th July 2008, 21:54
denoise = last.TemporalSoften(7,255,255,24,2).Repair(last,9).VagueDenoiser(threshold=6)
TemporalDegrain(denoise=denoise)

Try this out with your favorite source and compare to TemporalDegrain(). Should be faster. Let me know what you think.

-G

Didée
15th July 2008, 23:32
(From some answer that never was posted)
Or, when the grain has caused low-frequency DCT flicker in the source, then the spatial repair step will re-introduce the flicker that the to-be-repaired temporal filter already had removed ...
... and VagueDenoiser definetly is not suited to remove low-frequency temporal flicker.

NB: when spatially repairing TemporalSoften() with Repair(), then a temporal radius of 7 is hopelessly overkill. 3 should be sufficient, usually. Sometimes even 2.

Here we present you: "The revenge of low frequency (http://www.mediafire.com/?432jj1tnb9e) DCT errors caused by strong grain" (http://www.mediafire.com/?432jj1tnb9e) (~5MB, MediaFire)

g-force
15th July 2008, 23:51
...NB: when spatially repairing TemporalSoften() with Repair(), then a temporal radius of 7 is hopelessly overkill. 3 should be sufficient, usually. Sometimes even 2.


Didée, "NB" as in "not bad", or "Note Well"?

-G

Didée
16th July 2008, 00:04
Errrrmh ... well ... probably "NB" as in "No Brain"? Because, that was supposed to read "Besides, ...". Now, don't ask me how it became "NB". Call me "scatterbrained". :D

Didée
16th July 2008, 01:17
To complete this example, here comes another sample. Above, you saw just the result of the given prefilter-chains. In the following, I let MVDegrain3 denoise the original input, using vectors that were created on the respectively pre-filtered clips. The MVDegrain settings were exactly the same. (However, I did put an additional "MinBlur(1).removegrain(11)" before FluxSmoothT, damping remaining spots, in order to get more appropriate SAD scaling.)

Here is the result (http://www.mediafire.com/?mxxh093oilc) (~4.5MB, MediaFire).

The effect to be seen is: if low-frequency flicker is still present, then MVAnalyse will create vectors that follow this flicker, making the overall denoising less stable (top). Only IF the low-frequency flicker is sufficiently removed, the vector field will be stable, and so will the result (bottom).

The real point is, tell it over and over again, that there is no "one-fits-it-all" prefilter. Something that's good for some sources will be bad for some other sources, and vice versa.

Then, the reason why I had used FFT3DFilter as prefilter for the initial TemporalDegrain script is that FFT3DFilter does a pretty reasonable job on a very wide variety of different clips, with only little tweaking needed. You can probably come up with a "better" prefilter for each and every single source, yeah, but it's a lot of fiddling. The versatile-ness of FFT3DFilter is outstanding ... scale sigma's according to need, perhaps bt, and that's all to make it a "quite good" prefilter for almost anything.

Leak
16th July 2008, 01:59
Errrrmh ... well ... probably "NB" as in "No Brain"? Because, that was supposed to read "Besides, ...". Now, don't ask me how it became "NB". Call me "scatterbrained". :D
Nota bene: don't post while being scatterbrained... :p

Terranigma
16th July 2008, 18:18
The versatile-ness of FFT3DFilter is outstanding ... scale sigma's according to need, perhaps bt, and that's all to make it a "quite good" prefilter for almost anything.

Maybe we'll see dfttest with configurable parameters for each of the frequencies like with fft3d. ;)

although as I was told, one could do something like that with the "cfile" parameter by specifying a sigma value for every coefficient.

g-force
18th July 2008, 18:23
The real point is, tell it over and over again, that there is no "one-fits-it-all" prefilter. Something that's good for some sources will be bad for some other sources, and vice versa.


I know, I know! I just wish there was something that could compete with fft3Dfilter as a "one-size-fits-many" prefilter. What do you think of the following?

orig = last
last.TemporalSoften(1,255,255,24,2).Repair(last,9)
last.TemporalSoften(2,255,255,24,2).Repair(last,9)
last.VagueDenoiser(threshold=6)
denoise = last

orig.TemporalDegrain(denoise=denoise)

closer?

-G

jeffy
19th July 2008, 22:39
Here we present you: "The revenge of low frequency (http://www.mediafire.com/?432jj1tnb9e) DCT errors caused by strong grain" (http://www.mediafire.com/?432jj1tnb9e) (~5MB, MediaFire)

Can anyone download this file? I can't get it!
NOTICE: No servers are currently available with the requested data on them. Please retry your request in a moment.

Ranguvar
20th July 2008, 05:07
I can get it.

jeffy
22nd July 2008, 00:25
@Ranguvar: thank you, it is working now. Must have been some temporary problem, but I have not encountered the abovementioned error before.