QTGMC 去交错

  • ~7.50K 字
  1. 1. 基础
  2. 2. 核心参数设置
  3. 3. 运动分析参数
  4. 4. 插值参数
  5. 5. 锐化参数
  6. 6. 源匹配 / 无损 (Source Match / Lossless)
  7. 7. JET

翻译自 avisynth 文档

1
src  = haf.QTGMC(src, Preset="slow", SourceMatch=1, Lossless=2, TFF=True)

注意下面很多代码都是 avs 的代码,主要用于参考功能

基础

大多数用户仅需使用预设选项。"预设"功能会为指定编码速度选择合理配置。可选预设包括:

"Placebo"(实验性) • "Very Slow"(极慢) • "Slower"(较慢) • "Slow"(慢速) • "Medium"(中等) • "Fast"(快速) • "Faster"(更快) • "Very Fast"(极快) • "Super Fast"(超快) • "Ultra Fast"(终极速) • "Draft"(草稿)
默认预设为"Slower"(较慢)。请勿盲目追求最慢设置,其画质提升可能微乎其微却需耗费大量时间。特别提示:高清素材使用极端设置效果提升有限。高清(HD)素材的处理速度比标清(SD)慢6到8倍。

核心参数设置

要点提示:最实用的参数是TR2,用于控制输出画面的平滑度。

TR0 (1,2) 用于生成运动搜索画面的时间二项式平滑半径。通常:2=画质优先,1=速度优先

TR1 (1,2) 对插值生成的初始输出画面应用的时间二项式平滑半径。通常:2=画质优先,1=速度优先

TR2 (0,1,2,3) 用于最终画面稳定/降噪的时间线性平滑半径。数值越高,输出画面越平滑

Rep0 (int) 修复运动搜索画面(0=关闭):修正因TR0时间平滑导致的非预期模糊

Rep1 (int) 修复初始输出画面(0=关闭):修正因TR1时间平滑导致的非预期模糊

Rep2 (int) 修复最终输出画面(0=关闭):修正因TR2时间平滑导致的非预期模糊(若未启用Rep1,也会修复TR1导致的模糊)

RepChroma (bool) 修复模式是否影响色度。默认值:True(启用)

RepX语法说明:

第一位数字(0-5):控制可消除的细密闪烁线条的最大宽度(1像素至约3像素)

第二位数字(0-3):控制在检测到的线条边缘略微恢复细节

若仅输入单数字,则视为第一位数字(例如 "5" 等同于 "50")

算法原理详解
核心流程:

  1. 对源素材片段进行 Bob 处理(场分离)。对 Bob 处理(场分离)后的结果进行时域平滑以消除闪烁 (shimmer),然后分析其运动。
  2. 更精确地对源素材片段进行插值(例如使用 NNEDI3)。利用上一步的运动分析结果,通过运动补偿对这个插值结果进行时域平滑处理。这样可以在保留细节的同时消除闪烁。对结果进行重新锐化以抵消可能产生的模糊。
  3. 最后进行一次轻度的时域平滑,以优化最终效果(在视频处理语境下,通常指去除残留的噪点、瑕疵或不稳定因素,使画面更纯净。)

阶段说明:

阶段0 & 1:使用二项式平滑(类高斯分布)消除去隔行闪烁,对应参数TR0(运动分析阶段)和TR1(初始输出阶段)

阶段2:使用线性平滑进行最终优化,对应参数TR2

技术要点:

TR0/TR1建议≥1以确保消闪效果,TR0=2可提升运动匹配精度

TR1/TR2值越大画面越稳定且降噪更强,但会牺牲细节并可能加剧运动分析错误导致的伪影

锐化参数可部分补偿平滑导致的模糊

消闪原理
算法专攻"场分离闪烁"(隔行信号插值产生的水平线闪烁)。修复模块Rep0/Rep1/Rep2通过只允许水平方向的修正变化,有效防止时间平滑导致的运动模糊。

运动分析参数

要点提示:预设已优化参数组合,非必要请勿修改。调整前请详阅MVTools2文档

参数 取值范围 说明
SrchClipPP 0-3 运动搜索画面预过滤:0=无,1=简易模糊,2=高斯模糊,3=高斯模糊+边缘柔化
SubPel 1/2/4 运动分析亚像素精度:1=整像素,2=1/2像素,4=1/4像素
SubPelInterp 0-2 亚像素插值算法:0=双线性(柔化),1=双立方(锐利),2=维纳(极锐)
Blocksize 4-32 运动匹配块尺寸
Overlap 0-块尺寸/2 运动分析块重叠量(提升块边缘平滑度但增加计算量)
Search 0-5 运动匹配搜索算法(详见MVTools2文档)
PelSearch - 最细亚像素层级的搜索参数
ChromaMotion bool 是否分析色度运动(关闭可提速但可能误判)
Lambda 0+ 运动矢量场一致性系数(需按公式缩放)
LSAD 0+ 复杂运动区域降低一致性需求参数
PNew 0+ 新运动矢量选择惩罚系数
GlobalMotion bool 是否估计全局(摄像机)运动辅助分析

默认参数组合:

TrueMotion=false时:Lambda=(1000*块尺寸²)/64, LSAD=400, PNew=25

TrueMotion=true时:Lambda=(100*块尺寸²)/64, LSAD=1200, PNew=50

插值参数

要点提示:预设已优化插值方案,推荐使用NNEDI3系算法

参数 说明
EdiMode 插值算法:可选NNEDI3(推荐)、EEDI3、Yadif等
NNSize NNEDI3预测区域尺寸(非线性质级关系,详见NNEDI3文档)
NNeurons NNEDI神经元数量(0-4,值越大质量越优)
EdiMaxD EEDI系算法的空间搜索距离
EdiThreads 多线程数(0=自动=逻辑处理器数)
示例配置:
1
2
QTGMC( Preset="Slow", EdiMode="EEDI3", EdiMaxD=16 )  # 指定EEDI3算法+16像素搜索半径
QTGMC( Preset="Very Slow", EdiThreads=2 ) # 多线程优化配置

锐化参数

要点提示:建议始终根据实际效果调整Sharpness参数(默认1.0偏锐,使用源匹配时默认0.2)

参数 说明
Sharpness 锐化强度(0.0为原始画面)
SLMode 锐化限制模式:0=关闭,[1/3=空间限制],[2/4=时间限制]
SLRad 限制半径(时间模式仅支持0/1/3)
SOvs 时间限制模式下允许的过冲量(微量过锐化许可)
SVThin 单像素线细化强度(修复插值导致的线条膨胀)
技术细节:

时间限制模式(SLMode=2/4)防过锐效果更强但更吃性能

后期限制模式(SLMode=3/4)可保留更多锐度但可能产生伪影

Sbb参数可混合锐化前后画面提升细节保真度

源匹配 / 无损 (Source Match / Lossless)

注意:此功能的效果既微妙又精确,仅用于追求极致细节。请先确保您能够分辨出这些极致的细节。

核心要点 (Key Points):

源匹配 (Source-match) 通过额外的处理来创建保真度更高的输出。

通过设置 SourceMatch = 1, 2 或 3 来启用。数值越高,速度越慢,但精度也越高。

可与 无损 (Lossless) 设置(尤其是 Lossless=2)结合使用,以获取更多细节。

使用 MatchPreset(类似于 Preset)来调整速度。

该功能会保留源中的瑕疵 (artefacts),因此最适合用于高质量的源素材。

默认情况下,Sharpness(锐度)会变为 0.2,且锐度限制 (SLMode) 会被关闭,因此请谨慎调整锐度。

快速入门 (Quickstart):

以下模板的质量依次提高,但处理速度也依次变慢。请根据需要选择预设,但请注意,那些处理速度非常快的预设并不适合(与此功能搭配使用)。默认 Sharpness 为 0.2,但您可能希望稍微将其调高。

对于干净的源素材,设置 TR2=1。

如果需要更强的降噪效果,设置 TR2=2 或 TR2=3(速度更慢),或者使用(其他的)噪点处理功能。

1
2
3
4
QTGMC( Preset=XXXX, SourceMatch=1, Sharpness=XXX, TR2=X )             # Basic mode, fastest
QTGMC( Preset=XXXX, SourceMatch=1, Sharpness=XXX, TR2=X, Lossless=2 ) # Good quality, efficient, minor residual combing
QTGMC( Preset=XXXX, SourceMatch=2, Sharpness=XXX, TR2=X ) # Good quality, slower, no combing
QTGMC( Preset=XXXX, SourceMatch=3, Sharpness=XXX, TR2=X, Lossless=2 ) # Best quality, slowest, very minor residual combing

直观上,一个反交错器应该只是在源视频中插入新的“场”(field),并保持原始像素不变。然而,本脚本中的时间模糊/锐化处理意味着上述情况并不会发生——源像素在输出中被改变了。(可选的)源匹配 (source-match) 步骤就是为了修复这个问题,让处理结果更接近源视频。其工作原理是:在算法的不同阶段检查输出与源的差异,并对这些差异进行校正。

匹配源视频可以捕捉更多源细节,并减少过度锐化/光晕(haloing)现象。需要注意的是: 默认算法会进行时间平滑处理,但源匹配模式下的平滑效果则要弱得多(这是其原理和设计所决定的)。源匹配可能会忠实地再现源视频中的瑕疵(例如色块、色带和一些噪点),因此更适合用于高质量的源素材。SourceMatch 设置用于设定模式:0=关闭(标准的 [Q]TGMC 算法),1、2、3 的精度和处理耗时依次递增。模式 2 和 3 能恢复几乎完全一样的源细节,但对噪点敏感,且偶尔会引入锯齿(aliasing)(模式 3 受影响较小)。模式 1 是一个更保守的折中方案,极少会引入瑕疵。

由于源匹配本身会恢复锐度,因此 Sharpness(锐度)的默认值被降低到了 0.2。源匹配模式起初可能看起来不如标准处理锐利,因为它不会进行过度锐化。然而,如果您要提高锐度,请务必小心,因为锐度限制功能默认是关闭的。这是因为锐度限制会降低这些(源匹配)模式的精确度。您可以使用 MatchEnhance 设置来增强模式 2 和 3 找回的额外细节。这会带来一种锐化/细节增强的效果,在合理的数值下效果很好——但这是一种取巧的手段,需要谨慎使用,因为它也很容易增强噪点。由于源匹配对源噪点很敏感,您可能需要将 TR2 设置为 2 或 3,和/或使用一些噪点处理(见下文)。

额外的无损 (Lossless) 模式旨在将源匹配的理念推向其逻辑终点:无损模式 1 会将源的精确像素恢复到输出中(前提是 NoiseRestore=0)。这种模式能恢复更多一点的源细节,但也可能引入闪烁(shimmering)、轻微拉丝(combing)、噪点等问题。请注意,Sharpness 和 MatchEnhance 设置在无损模式 1 中几乎没有效果。无损模式 2 则是在进行锐化和最终的时间平滑之前,使剪辑达到无损状态。这能消除大部分无损模式带来的瑕疵,并且也允许进行锐度控制。该模式不会提供完全无损的输出,但能获取到更多一点的细节。

源匹配设置会引入额外的处理流程。SourceMatch 模式 1 需要进行第二次插值(例如 NNEDI3),但它可以使用比主处理阶段质量更低的设置。SourceMatch 模式 2 需要再进行一次插值,但仅使用 bob 插值就能有效工作(不过使用更好的插值器可以减少偶尔出现的锯齿)。模式 3 只增加了少量额外处理,但通常是值得的,因为它能减少瑕疵。用户无法精确控制这些插值所用的具体参数(因为需要的设置项太多),作为替代,提供了 MatchPresets 预设,其工作方式与主 Preset 预设类似。额外的处理流程听起来会让速度慢很多,但实际上,将源匹配与高速预设(MatchPreset 和 Preset 两者)结合使用,其效果可以媲美不开启源匹配时的慢速预设。话虽如此,源匹配带来的额外细节非常微妙,对于那些速度极快的主预设来说,其效果可能并不显著。

参数 (Parameter) 可选值 (Values) 描述 (Description)
SourceMatch (0,1,2,3) 0 = 关闭源匹配 (标准算法), 1 = 基础源匹配, 2 = 精细匹配, 3 = 二次精细匹配。
Lossless (0,1,2) 将源的精确场 (field) 放入结果中并清理任何瑕疵。0=关闭, 1=在最终时间平滑后, 2=在重新锐化前。此模式会增加一些额外细节,但:模式 1 会产生闪烁/轻微拉丝,模式 2 更稳定、可调性更高,但并非严格无损。默认值:0
以下参数仅当 SourceMatch = 1, 2, 3 时生效
MatchPreset (字符串) 用于基础源匹配处理的速度/质量预设,可选:"Placebo", "Very Slow", "Slower", "Slow", "Medium", "Fast", "Faster", "Very Fast", "Super Fast", "Ultra Fast" (无 "Draft")。理想选择是与主 Preset 预设相同,但也可以选择一个更快的设置(但不能更慢)。默认值:比主 Preset 快 3 档。
MatchEdi (字符串) 覆盖基础源匹配的默认插值方法。默认方法与主 EdiMode 设置相同(通常是 NNEDI3)。仅当主插值使用慢速方法(如 EEDI3)而您希望为源匹配使用一个更快的方法时,才需要覆盖此项。默认值:EdiMode 的值。
以下参数仅当 SourceMatch = 2, 3 时生效
MatchPreset2 (字符串) 用于精细源匹配处理的速度/质量预设,可选值同上。通常使用较快的设置就足够了,但如果出现额外的锯齿,使用较慢的设置会很有用。默认值:比 MatchPreset 快 2 档。
MatchEdi2 (字符串) 覆盖精细源匹配的插值方法。为了提升速度,选择 MatchEdi2="Bob" 是个好主意。默认值:NNEDI3
MatchTR2 (0,1,2) 用于精细源匹配的时间半径。2=更平滑, 1=更快/更锐利, 0=不推荐。效果差异非常微小。基础源匹配不需要此设置,因为其时间半径必须与核心设置 TR1 匹配(即不存在 MatchTR1)。默认值:1
MatchEnhance (0.0...) 增强源匹配模式 2 和 3 找回的细节。这是一种取巧的手段——如果设置过高会增强噪点。最好设置在 1.0 以下。默认值:0.5

JET

笔记
https://jaded-encoding-thaumaturgy.github.io/vs-jetpack/api/vsdeinterlace/qtgmc/?h=qtempgaussmc#vsdeinterlace.qtgmc.QTempGaussMC

https://github.com/Jaded-Encoding-Thaumaturgy/vs-jetpack/issues/135

1
src = core.std.SetFrameProp(src, prop="_FieldBased", intval=0)

上面的 issue 需要这个代码

对于 vs-jetpack
可以使用 deepwiki

https://deepwiki.com/search/-qtempgaussmcinputtyperepair-d_5c969c27-a961-47e9-8d11-9d9f99fefbfd

上面需要注意是 sharpen 那块里面都是 float,里面的数值有问题会导致报错。

打赏
打赏提示信息
分享
分享提示信息