From Avisynth wiki
Jump to: navigation, search
Author Didée, Sagekilla, Vit, real.finder, ErazorTT
Version 2.3.1
Download TemporalDegrain-v2.3.1.avsi
Category Denoisers
License Public Domain
Discussion Doom9 Thread



This script builds on Temporal Degrain but it is able to clean the noise even further while impoving the sharpness in cases where orignal version had severe drops in visual quality.

Comparing to the original version there are improvements in the motion estimation by using the exceptional approach of QTGMC and an optional final step of FFT and dithering to further smooth the output. The performance will be especially better in regions of low contrast and diverging movement where the very mushy intermediate stream was losing motion vectors thus smearing the output considerably.

The result can be completely noiseless, perfectly sharp, much better compressable, without introducing any banding while still yielding a very natural look.


Required Plugins

Latest versions of the following filters are recommended unless stated otherwise.

Optional Plugins


May 15, 2018: v2.0
- use the exeptional motion estimation from QTGMC
- use MDegrainN for unbound temporal radius
- automatic tuning of default parameters based on input size
- add optional motion compensated post processing FFT filtering

Oct 19, 2018: v2.0.1
- rename function to TemporalDegrain2
- expose TrueMotion parameter through meTM, and let it default to false

Oct 22, 2018: v2.0.2
- use power of 2 blocksizes for MAnalyse which have much better performance
- check that Undot exists before calling it

Oct 23, 2018: v2.0.3
- use RemoveGrain(1) instead of Undot

Oct 26, 2018: v2.1
- tune motion estimation

Oct 27, 2018: v2.1.1
- allow for a controlled over-sharpen through extraSharp
- correct parameter types

Oct 30, 2018: v2.1.2
- correct usage of KNLMeansCL
- update comments

Nov 03, 2018: v2.1.3
- another try to fix KNLMeansCL
- expose KNLMeansCL device id through knlDevId

Nov 19, 2018: v2.1.4
- minor updates to code comments

Dec 26, 2018: v2.1.5
- convert TV range to PC range in search clip, improving motion estimation

Dec 27, 2018: v2.1.6
- tweaked parameters for higher noise removal

Dec 27, 2018: v2.1.7
- settings depening on input noise level, flag must be set manually
- add post processing behaviour of TemporalDegrain v1.23 to postFFT=-1
- change defaults and rewrite recommendations

Jan 02, 2019: v2.2
- high bit support, native "double width" format not "stacked" format
- currently just postFFT=0, 1 and 4 are supported for high bit

Feb 24, 2019: v2.2.1
- swap deprecated use of ConvertToXbit by ConvertBits
- relaxed settings for scene change detection, was too aggressive

Apr 12, 2019: v2.2.2
- refine input size categorization

Feb 02, 2021: v2.2.3
- rescale SAD/SCD thresholds when DCT is switched from SAD to SATD
- allow change of motion estimation also based on chroma (meChroma)

Feb 02, 2021: v2.2.4
- use optional high bitdepth processing for FFT3DGPU
- added postMix setting do be able to degrease filter strength

Feb 02, 2021: v2.2.5
- use neo fft
- add optional high bitdepth processing for dfttest

Feb 05, 2021: v2.2.6
- correct scaling for DCT=5 and set it as default

Feb 07, 2021: v2.3.0
- use native high bit format also for KNLMeansCL
- scale sigma of FFT3DGPU
- grainLevel is now interger range 0-2
- make setup of grainLevel easier by using parameter grainLevelSetup=true
- provide user with the choice which stage of the pipeline to output (outputStage)

Feb 07, 2021: v2.3.1
- tune grainLevel 1 to fit more centrally between 0 and 2
- reorganize arguments by impoprtance

Personal tools