TempGaussMC
Abstract | |
---|---|
Author | Didée |
Version | beta2 |
Download | TempGaussMC_beta2.rar |
Category | Deinterlacers |
License | |
Discussion | Doom9 Thread |
Description
Motion-compensated bob deinterlacer, based on temporal Gaussian blurring. Reduces noise/grain of the source and does NOT leave the original fields unchanged. Output is rich with details and very stable. It is SLOW.
Requirements
Required Plugins
- MVTools
- RemoveGrain & Repair - part of the RemoveGrain v1.0b package.
- MaskTools2
- NNEDI2
- VerticalCleaner
Optional:
- NNEDI / EEDI2 / Yadif
Depending on which EdiMode you want to use. - RgTools
Recommended drop-in replacement for RemoveGrain, Repair, and VerticalCleaner!
Syntax and Parameters
TempGaussMC_beta2 (clip clp, int "tr0", int "tr1", int "tr2", int "rep0", int "rep1", int "rep2", string "EdiMode", int "qual", int "EEDI2maxd", int "lossless", float "sharpness", int "Smode", int "SLmode", int "SLrad", float "Sbb", float "SVthin", int "Sovs", int "blocksize", int "overlap", bool "truemotion", bool "globalmtn", int "search", int "searchparam", int "pelsearch", int "sharp", int "lambda", int "DCT", int "pnew", int "plevel", int "lsad", int "SCth1", int "SCth2", int "thSAD1", int "thSAD2", float "pel2hr", bool "border", int "draft", clip "edeint")
Note: some of the following parameters are not listed in the correct order as shown above.
Input clips
- clip clp =
- interlaced input clip to be processed.
- clip clp =
- clip edient =
- Optional input clip to provide externally created interpolated clip. By default this parameter is undefined, meaning the interpolated clip will be created using the method chosen via EdiMode.
- clip edient =
Defaults for temporal Gauss filtering
- int tr0 = 2
- Temporal radius for temporal Gauss before motion compensation (1 or 2).
- int tr0 = 2
- int tr1 = 2
- Temporal radius for temporal Gauss before motion compensation (1 or 2).
- int tr1 = 2
- int tr0 = 1
- Temporal radius for final MDegrain (1, 2 or 3)
- int tr0 = 1
Defaults for EDI interpolation
- string EdiMode = "EEDI2"
- Interpolator to use: "nnedi2", "NNEDI", "EEDI2", or "Yadif". Any other string: use plain bicubic bob (fast!).
- string EdiMode = "EEDI2"
- int qual = 1
- nnedi2 only: quality vs speed option. 1-3.
- int qual = 1
- int EEDI2maxd = 8
- EEDI2 interpolation only: spatial search distance value.
- int EEDI2maxd = 8
Defaults for temporal Gauss reparation
- int rep0 = 4
- Repair TemporalSoften-defects for searchclip.
- int rep0 = 4
- int rep1 = 0
- Repair MDegrain-defects for output (stage1).
- int rep1 = 0
- int rep2 = 4
- Repair MDegrain-defects for output (stage2).
- int rep2 = 4
- int lossless = -1
- "Lossless" mode will leave the original fields unchanged, i.e. the original input can be extracted from the result again
- -1 : deactivated (the old lossy mode)
- 0 : dumb-weave of orig-fields and TGMC-interpolated fields. Not good! It's only available as to try and see WHY it's not good. ;-)
- 1 : dumb-weave with weak spatial anticomb. Not really recommended. May suffice for sources with sufficiently strong lowpass.
- 2 : MC'ed temporal compensation (normal) followed by spatial anticomb. Better for sharp sources. Little less stable than "3".
- 3 : MC'ed temporal compensation (stronger) followed by spatial anticomb. More stable than "2".
- "Lossless" mode will leave the original fields unchanged, i.e. the original input can be extracted from the result again
- int lossless = -1
Defaults for contra-sharpening of the temporal-Gauss'ed clip
- float sharpness = 0.25+(tr1+tr2)/6.0
- Strength of sharpening, 0.0 to 1.0, or more if you like.
- float sharpness = 0.25+(tr1+tr2)/6.0
- int Smode = 2
- Which method to use for re-sharpening the MC'ed temporal gauss:
- 0 = not at all
- 1 = 3x3 kernel
- 2 = vertical min/max plus 3x3 kernel
- Which method to use for re-sharpening the MC'ed temporal gauss:
- int Smode = 2
- int SLmode = 2
- How to limit the sharpening:
- 0 = not at all
- 1 = spatial, before 2nd MV stage...........(fast)
- 2 = MC-temporal, before 2nd MV stage..(slow)
- 3 = spatial, after 2nd MV stage..............(fast)
- 4 = MC-temporal, after 2nd MV stage.....(slow)
- How to limit the sharpening:
- int SLmode = 2
- int SLrad = 1
- How much prev+next temporal neighbors to consider for sharpness limiting (SLmode = 2|4), resp. spatial radius for spatial sharpness limiting mode (SLmode = 1|3)
- int SLrad = 1
- float Sbb = 1.0
- Back-blending of Gauss-blurred sharpen's difference (slightly increases visual fidelity)
- 0 = no back-blending
- 1 = before sharp-limiting
- 2 = after sharp-limiting
- 3 = before AND after sharp-limiting
- Back-blending of Gauss-blurred sharpen's difference (slightly increases visual fidelity)
- float Sbb = 1.0
- float SVthin = 1.0
- Vertical thinning of broadened horizontal edges: 0.0=OFF 0.5=weak 3.0=strrrong
- float SVthin = 1.0
- int Sovs = 0
- Allowed "overshoot" for sharpness limiting (a little cheating, that is).
- int Sovs = 0
Defaults for important MV-parameters
- int blocksize = 16
- Blocksize for motion search.
- int blocksize = 16
- int overlap = blocksize/2
- Overlap size for ME blocks.
- int overlap = blocksize/2
- bool truemotion = false
- Whether to use MAnalyse's "truemotion" defaults.
- bool truemotion = false
- bool globalmtn = true
- "global" parameter of MAnalyse.
- bool globalmtn = true
Defaults for "less important" MV-parameters
- int search = 4
- Search method.
- int search = 4
- int searchparam = 2
- Search depth.
- int searchparam = 2
- int pelsearch = 2
- Accuracy of pel level search: 1 = fast, 2 = accurate.
- int pelsearch = 2
- int sharp = 2
- Sharpness of subpel interpolation.
- int sharp = 2
- int DCT = 0
- DCT mode. Various modes may help or may harm ... default is 0 = OFF.
- int DCT = 0
- int lambda = truemotion ? 1000*blocksize*blocksize/64 : 100*blocksize*blocksize/64
- Vector coherence, if truemotion is set to true it defaults to 1000*blocksize*blocksize/64, if false 100*blocksize*blocksize/64.
- int lambda = truemotion ? 1000*blocksize*blocksize/64 : 100*blocksize*blocksize/64
- int pnew = truemotion ? 50 : 25
- Penalty for new vectors over predicted vectors, if truemotion is set to true it defaults to 50, if false 25.
- int pnew = truemotion ? 50 : 25
- int plevel = truemotion ? 1 : 0
- Lamda level scaling mode, if truemotion is set to true it defaults to 1, if false 0.
- int plevel = truemotion ? 1 : 0
- int lsad = truemotion ? 1200*blocksize*blocksize/64 : 400*blocksize*blocksize/64
- Local lambda resetting threshold, if truemotion is set to true it defaults to 1200*blocksize*blocksize/64, if false 400*blocksize*blocksize/64.
- int lsad = truemotion ? 1200*blocksize*blocksize/64 : 400*blocksize*blocksize/64
Scenechange thresholds and MDegrain thSAD value
******** DO NOT TOUCH WITHOUT SPECIFIC REASON ********
- int SCth1 = 180
- SAD threshold for "bad blocks".
- int SCth1 = 180
- int SCth2 = 98
- Percentage of bad blocks to trigger a scenechange.
- int SCth2 = 98
- int thSAD1 = 5*128
- SAD threshold for 1st MDegrain (Gaussian stage).
- int thSAD1 = 5*128
- int thSAD2 = 2*128
- SAD threshold for 2nd MDegrain (linear stage).
- int thSAD2 = 2*128
Other stuff
- bool border = true
- true = pad borders internally to catch "half scanlines" at top + bottom (broadcast material).
- bool border = true
- int draft = 0
- '1' outputs a quick draft, and '2' is even more draft'ier :p
- int draft = 0
- float pel2hr = 0.0
- 0.0 is OFF. 0.1 ~ 0.3 can be useful to reduce halo-amplifying of pel=2 subsampling.
- float pel2hr = 0.0
History
Official
- 17 May 2008 - TempGaussMC initial public release?
- 27 May 2008 - TempGaussMC_alpha3 | prior changes: 2008-05-20 - 2008-05-23 - 2008-05-24
- 01 July 2008 - TempGaussMC_beta1 | updates: 2008-07-11 - 2008-08-26
- 28 Feb 2010 - TempGaussMC_beta2
Modifications
- 15 Jul 2008 - TempGaussMC_beta1_yuy2 - YUY2 support
- 05 Jan 2009 - TempGaussMC_beta1mod.avsi - mod for MVTools 1.9.7.7 & 2.x by thetoof
- 31 Oct 2009 - TempGaussMC_beta1u - Modded to use MVTools2 and added "nnedi2" as an interpolater option.
- 03 Nov 2009 - TempGaussMC_beta1u2 - fixed chroma shifting, added a parameter to change rfilter method's. Previously & permanently set to mvtools2's default [2]
- 24 Nov 2009 - TempGaussMC_beta1mod2 - MT version that incorporates EEDI3 and it's enabled by default
- 16 May 2010 - TempGaussMC_beta2u - includes "nnedi3" as an interpolator option, added nnedi3's "nns" parameter
- 08 June 2010 -
TempGaussMC_beta2z - includes changes from beta1mod, beta1u2, and beta2u(not recommended)
Continued development
- QTGMC - (Q-TempGaussMC) builds on the work done by TempGaussMC_beta2 and is considered by many to be its successor.
External Links
- Doom9 Forum - TempGaussMC discussion.
Back to External Filters ←