c匹配本来就是保持原始画面不进行任何处理,TFM之后锯齿要么是clip2/PP的deint用得太烂了,要么是匹配错误了还没ovr,对30i如果确定是c匹配而肯定没误判成p匹配的话问题只可能是前者 = =
有个特殊情况例外:缟缟,或者单场上就有交错或者锯齿的奇葩。这种情况直接deint的话再好的deinterlacer都肯定继续锯齿…
类似tfm但是不匹配的方式应该是这样的:[syntax lang="avisynth"]TDeint(emask=TMM(1), edeint=QTGMC, ovr="ovr")[/syntax]有comb检测,有动态检测,有edeint相当于clip2,还可以ovr。
如果您那么喜欢手动的话[syntax lang="avisynth"]deint=QTGMC(FPSDivisor=2)
diadp=mt_merge(deint, TCombMask(lclinked=True), luma=True)
ConditionalSelect("index", last, diadp, deint)
ConditionalReader("ovr", "index")[/syntax]
然後这种ovr格式:
代码: 全选
Type Int
Default 0 # 默认不处理
R 100 199 1 # 第100~199帧只对画面comb部分deint
R 300 399 2 # 第300~399帧全画面deint
R 600 699 1 # 依此类推
如果是2.5的avs没有ConditionalSelect的话,把它换成[syntax lang="avisynth"]src = last
ConditionalFilter(src, deint, diadp, "index > 1", "==", "True")
ConditionalFilter(src, last, src, "index > 0", "==", "True")[/syntax]或者ConditionalFilter+ScriptClip+Eval的组合也可以(参考以前钻头写的教程或者avs wiki),不过ScriptClip的执行效率可能比较低…
自己根据视频情况调节各种参数/阈值,以及加RemoveGrain/mt_inflate之类的调整CombMask
CombMask不知道怎么调整或者调不到理想效果的话也可以地图炮:
diadp=mt_merge(vinverse, deint, TCombMask(lclinked=True), luma=True)