OK, zugegeben, das fällt einem ausgebildeten Informatiker leichter, der ist das Denken mit Variablen gewohnt... :redface:
Wie sieht es aus, kannst du mir die Parametereinstellungen von TempGaussMC ins Deutsche übersetzen? Es ist ja erst freitags und das Wochenende kommt noch.
(Die Doku ist in der AVS selbst!)
Ich gehe von dem empfohlenen Setting aus, aber es gibt's bestimmt einiges zu Verfeinern.
# ===============
# TempGaussMC
# ===============
# (version: something point something, beta-3)
#
# A motion-compensated bob deinterlacer, based on temporal gaussian blurring
#
# Changes/additions from beta-2 to beta-3:
# - support NNEDI3 (with exposed parameters: "nsize", "nns", "qual", and "nthreads"
# - support for "kernel bob" via tdeint (EdiMode="kernel1" => soft kernel // "kernel2" => sharp kernel
# - feature: Output conversion 50 fps <> 60 fps via the new "convFPS" parameter.
# 25i input will be converted to 60p output // 30i input will be converted to 50p output
# convFPS = -1 (default) - no framerate conversion, simple bobbing, as it has ever been
# convFPS = 0 - straight framerate conversion
# convFPS = 1/2 - framerate conversion with (1)some or (2)some more motion blur
#
#
# Responsible for the impossible: Didée
#
#
# DISCLAIMER:
# - With default settings, TGMC does NOT leave the original fields unchanged!
# - Moreover, it reduces noise/grain of the source!
# (As of beta-2, one can use the "lossless" option: original fields are kept, noise reduction is less.)
#
# Overall, the output is rich of detail, and probably the most calm/stable you've ever got from a bob deinterlacer.
#
# REQUIRED PLUGINS:
# - MVTools2
# - RemoveGrain + Repair
# - VerticalCleaner
# - MaskTools v2
# - NNEDI3 / NNEDI2 / NNEDI / EEDI2 / Yadif / tdeint, depending on which EdiMode you want to use
#
# VariableBlur: Not used anymore, because of a serious memory leak in BinomialBlur(). (Replaced with other filters giving the same result.)
# ( v1u (unofficial, by Terranigma): Modded to use MVTools2 and added "nnedi2" as an interpolater option. Kudos to Didée for an amazing script.
function TempGaussMC_beta3(clip clp, int "tr0", int "tr1", int "tr2", int "rep0", int "rep1", int "rep2", string "EdiMode", int "EEDI2maxd", int "qual",int "nsize", int "nns", int "nthreads",
\ 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 "pel",
\ 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", int "convFPS")
{
clp
# Defaults for temporal gauss filtering
tr0 = default( tr0, 1 ) # temporal radius for temporal Gauss before motion compensation (1 or 2)
tr1 = default( tr1, 1 ) # temporal radius for temporal Gauss with motion compensation (1 or 2)
tr2 = default( tr2, 1 ) # temporal radius for final MDegrain (1, 2 or 3)
# Defaults for EDI interpolation
EdiMode = default( EdiMode,"NNEDI3") # interpolator to use: "nnedi2", "NNEDI", "EEDI2" "Yadif". Any other string: use plain bicubic bob (fast!)
EEDI2maxd = default( EEDI2maxd, 8 ) # EEDI2 interpolation only: spatial search distance value
_qual = default( qual, 1 ) # nnedi2/3 only: quality vs speed option. 1-3.
_nsize = default( nsize, 6 ) # nnedi3 only: size of local neighborhood examined (speed-vs-connectivity, see nnedi3.readme!)
_nns = default( nns, 1 ) # nnedi3 only: number of neurons in network (speed-vs-quality, see nnedi3.readme!)
# Defaults for temp-gauss reparation
rep0 = default( rep0, 4 ) # repair temporalsoften-defects for searchclip
rep1 = default( rep1, 0 ) # repair MDegrain-defects for output (stage1)
rep2 = default( rep2, 4 ) # repair MDegrain-defects for output (stage2)
lossless = default( 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".
convFPS = default(convFPS, -1 ) # -1=simple bobbing. 0/1/2 will motion-interpolate PAL<>NTSC (0=straight, 1=plus some motionblur, 2=more motionblur)
# Defaults for contra-sharpening of the temp-gauss'ed clip
sharp0 = default( sharpness, 0.25+(tr1+tr2)/6.) # strength of sharpening, 0.0 to 1.0, or more if you like
Smode = default( 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
SLmode = default( 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)
SLrad = default( 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)
Sbb = default( Sbb, 1 ) # 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
SVthin = default( SVthin, 1.0 ) # Vertical thinning of broadened horizontal edges. 0.0=OFF 0.5=weak 3.0=strrrong
Sovs = default( Sovs, 0 ) # Allowed "overshoot" for sharpness limiting (a little cheating, that is)
# Defaults for important MV-parameters
_bs = default( blocksize,16 ) # Blocksize for motion search
_ovlp = default( overlap,_bs/2) # Overlap size for ME blocks
_tm = default( truemotion,false) # Whether to use MAnalyse's "truemotion" defaults
_global = default( globalmtn, true) # "global" parameter of MAnalyse
# Defaults for "less important" MV-parameters
_search = default( search, 4 ) # search method
_ME = default( searchparam,2) # search depth
_pel = default( pel, 2 ) # subpel precision
_pelsrch = default( pelsearch, 2 ) # accuracy of pel level search: 1 = fast, 2 = accurate
_shrp = default( sharp, 2 ) # sharpness of subpel interpolation
_DCT = default( DCT, 0 ) # DCT mode. Various modes may help or may harm ... default is 0 = OFF. (DCT=5 is slower, but often "better quality")
_lambda = default( lambda, _tm ? 1000*_bs*_bs/64 : 100*_bs*_bs/64 ) # vector coherence
_pnew = default( pnew, _tm ? 50 : 25 ) # penalty for new vectors over predicted vectors
_plevel = default( plevel, _tm ? 1 : 0 ) # lamda level scaling mode
_lsad = default( lsad, _tm ? 1200*_bs*_bs/64 : 400*_bs*_bs/64 ) # local lambda resetting threshold
# Scenechange thresholds and MDegrain thSAD value.
# ***** DO NOT TOUCH WITHOUT SPECIFIC REASON *****
_SCth1 = default( SCth1, 180 ) # SAD threshold for "bad blocks"
_SCth2 = default( SCth2, 98 ) # percentage of bad blocks to trigger a scenechange
_thSAD1 = default( thSAD1, 6* 128 ) # SAD threshold for 1st MDegrain (gaussian stage)
_thSAD2 = default( thSAD2, 2* 128 ) # SAD threshold for 2nd MDegrain (linear stage)
# other stuff
border = default( border, true ) # true = padd borders internally to catch "half scanlines" at top + bottom (broadcast material)
draft = default( draft, 0 ) # '1' outputs a quick draft, and '2' is even more draft'ier :p
pel2hr = default( pel2hr, 0.0 ) # 0.0 is OFF. 0.1 ~ 0.3 can be useful to reduce halo-amplifying of pel=2 subsampling
# I can't prove and might be wrong, but have the /suspicion/ that the combination SetMTmode + NNEDI3(threads=many)
# is not fully stable. To be on the safer side, use only 1 NNEDI3 thread when SetMTmode usage is detected:
mtmod = 0 # GetMTmode(false)
nthreads = default(nthreads, (mtmod>1&&mtmod<5) ? 1 : 0 )
# parameter adjustments for internal usage
sharpness = default(sharpness, (SLmode==1||SLmode==3) ? sharp0 : 2*sharp0 ) # temporal limiting can afford more than spatial limiting
ed0 = rep0<10 ? rep0 : rep0/10
od0 = rep0<10 ? 0 : rep0-ed0*10
ed1 = rep1<10 ? rep1 : rep1/10
od1 = rep1<10 ? 0 : rep1-ed1*10
ed2 = rep2<10 ? rep2 : rep2/10
od2 = rep2<10 ? 0 : rep2-ed2*10
trmax = (tr1 > tr2) ? tr1 : tr2
use1 = (trmax > 0) ? true : false
use2 = (trmax > 1) ? true : false
use3 = (trmax > 2 SLrad>1) ? true : false
thinn = SVthin * 6.0
Ich bedanke mich, wenn es in Arbeit genommen wird.
Vielleicht meldet sich auch der Urheber von TempGaussMC in Deutsch, würde mich sehr freuen!! :daumen: