提高帧率

SVP 的主要功能是计算中间帧并把它们插入视频流。插帧涉及多种参数,而「配置」(profile)用于动态调整这些设置。一般来说,常规设置只需指定一次,不需要频繁更改,这些设置都在 SVP 主菜单中完成。

配置

配置是一组用于在运动插值过程中计算新帧的选项。可以创建多个配置,并为不同类型的内容选择最优设置。默认情况下,SVP 使用「自动配置」(Automatic profile),其选项根据电脑硬件性能自动确定。不能重命名或删除自动配置,也不能手动更改它的参数或使用条件。

配置包含:

  • 配置的名称;
  • 目标帧率;
  • 中间帧计算参数;
  • 配置的使用条件。

播放视频时,SVP 会使用最符合当前条件的配置选项。

对配置所做的任何更改都会自动保存;在切换到其他配置之前,还可以撤销所做的更改——点击「撤销」(Revert)按钮即可。

SVP 配置列表
配置列表

点击「列出所有视频配置」(List all video profiles)按钮可以查看所有配置或在配置之间切换。如果在播放视频时从该列表切换到另一个配置,正在播放的视频不会立即更换配置。详情请参阅使用配置一节。

添加配置

控制面板中的视频配置部分
控制面板中的「视频配置」(Video profiles)部分

要添加新配置:

  1. 在 SVP 控制面板中打开「视频配置」(Video profiles)部分。
  2. 从列表中选择任意配置,然后点击「新建」(New)按钮,即可打开一个新配置。当前配置中的所有参数和条件都会复制到新配置中。
  3. 为新配置指定以下设置:
    • 输入配置的名称。之后可以点击「修改配置标题」(Modify profile title)按钮重命名。不能重命名自动配置。
    • 如果需要 SVP 提高视频帧率,请点击「开启帧插补」(Do frame rate conversion)按钮,也可以在此关闭该功能。
      开启帧插补按钮
      「开启帧插补」按钮
    • 选择目标帧率。
      选择目标帧率
      选择目标帧率
      默认情况下(以及在自动配置中),目标帧率等于屏幕刷新率。通过相应按钮和「其他目标帧率」(Other target frame rates)附加菜单可以选择以下取值:
      • 相对于原始视频帧率:×2、×2.5、×3、×4、×5;
      • 相对于屏幕刷新率:/1、/2、/3;
      • 固定帧率:48 fps、50 fps、60 fps、72 fps、75 fps、90 fps、120 fps。其他取值可以在控制面板「应用程序设置」(Application settings)部分的 fi_target 数值参数中指定。播放可变帧率视频时,建议使用 ×2。
    • 如有需要,可以更改中间帧计算参数。请参阅自动选择选项和手动选择选项两节。
    • 在「如果……则应用此配置」(Apply this profile IF)列表中,选择配置的使用条件(请参阅配置的使用条件一节)。

要删除当前选中的配置,请点击「删除配置」(Delete profile)按钮。不能删除自动配置。

自动选择选项

点击并按住「自动选项选择」(Automatic option selection)按钮,SVP 会根据电脑硬件性能和视频特点自动选择大多数选项,在保证画质的同时控制系统负载。

自动选项选择按钮
「自动选项选择」按钮

在某些情况下,自动选择算法可能判断失误,结果是:

  • CPU 负载过高;或
  • CPU 负载过低,此时 SVP 选择的选项远低于能提供高画质的选项。

出现这些情况时,可以拖动「更高性能 / 更高质量」(Higher performance / Higher quality)滑块来调整算法允许的 CPU 负载上限。滑块越靠左,选择的选项越低;越靠右,选项越高,但不会超过 SVP 开发者认为画质最佳的选项。例如在 8 核的高性能系统上,无论滑块在什么位置,大多数视频格式都会选择同样的「最高」选项。

还可以选择以下附加选项:

  • 优化对象——「动画模式」(Animation mode):采用一组为动画片优化的计算参数,适合边缘对比强烈、背景静止的手绘动画。
  • 「伪影去除」(Artifacts masking)——即附加的错误抑制,分为几个级别,用于抑制中间帧中出现的计算失真。抑制级别越高,动作的平滑程度和画面清晰度下降越多。

自动选项选择算法基于 SVP 安装后首次运行时进行的电脑性能测量。可以从主菜单选择「工具 → 测试系统性能」(Utilities → Assess system performance)重新进行测量。测量前请关闭所有占用资源较多的应用程序(如浏览器)。

手动选择选项

手动选项面板
手动选项

要切换到手动模式,请关闭「自动选项选择」按钮。

不过,建议 SVP 新手不要使用此模式。使用它需要了解每个选项的效果。如果将所有选项都设为最大值,运动插值的质量反而会下降,系统负载则会明显提高。

必须理解:视频的平滑度与中间帧计算中出现的失真(可见瑕疵)数量之间需要保持平衡。视频越平滑,失真越明显;失真越少,平滑度越低。不存在一组完美的选项,能在不增加失真的前提下提供最大的平滑度。

手动模式下有以下选项:

  • 「渲染选项」(Rendering options)——影响根据已求得的运动矢量生成插值帧的过程。这部分主要由 GPU 执行,不影响 CPU 负载。
    • 「帧插补模式」(Frames interpolation mode)——定义原始帧数与插值帧数的比例。插值帧越少,平滑度越低,失真也越少。
      • 「2m」(伪影最少,min artifacts)——插值帧数量最少。例如帧率提升 2.5 倍时,每个原始帧最多重复两次。
      • 「1m」(普通模式,average mode)——每个原始帧使用一次。
      • 「1.5m」(少量伪影,less artifacts)——与 1m 模式类似,但插值帧的时间位置更接近原始帧,可以降低失真的可见度。
      • 「恒定帧间隔」(Uniform,最流畅,max fluidity)——均匀插值可以提供最大的平滑度,但在某些情况下(如帧率提升系数不是整数时),会导致大多数帧都是插值帧。
      • 「自适应」(Adaptive)——根据求得的运动矢量质量自动选择模式。在难以分析的场景中,平滑度可能下降。
    • 「SVP 着色器」(SVP shader)——计算插值帧的算法,使用两个或多个原始帧以及求得的运动矢量。
      • 「1. 最快」(Fastest,适用于慢速电脑)——最快的算法,适合 CPU 较慢或没有 GPU 的系统。
      • 「2. 锐利」(Sharp,适用于动画)——能保持画面锐利,因为它不混合相邻两帧。推荐观看手绘动画时使用。
      • 「11. 简单清淡」(Simple Lite)——基于运动进行简单的帧融合。
      • 「10. 分块」(By blocks,仅使用 CPU)——利用图像分块进行运动插值的简单帧融合算法。在不使用 GPU 的情况下,它比其他算法执行得更快。
      • 「21. 简单」(Simple)——进行简单的帧融合并添加掩模,有助于减少运动物体周围和帧边缘出现的光晕。
      • 「13. 标准」(Standard)——「11. 简单清淡」的变体,但没有掩模功能;失真可见度会提高,但平滑度更高。
      • 「23. 复杂」(Complicated)——使用最复杂的掩模。
    • 「伪影去除力度」(Artifacts masking)——额外的掩模,用于修正运动矢量不可靠的帧区域中可能出现的失真。它会用带一定透明度的原始帧内容覆盖这些区域。掩模越强,画面越模糊,平滑度越低。
      • 「禁用」(Disabled)——不使用掩模;
      • 「最轻微 / 轻微」(Weakest, Weak)——推荐取值;
      • 「中等」(Average)——可能产生一些特殊失真,如三重轮廓;
      • 「强 / 最强」(Strong, Strongest)——最大力度,但不推荐使用。
  • 「运动向量选项」(Motion vectors options)——搜索运动矢量的选项。这组参数会显著影响 CPU 负载。
    • 「运动向量精度」(Motion vectors precision)——提高搜索精度可以增加慢速运动的平滑度(如黑底白字的电影片尾字幕)。高精度会显著增加内存占用,在不使用 GPU 时尤其明显。例如,对 Ultra HD 视频使用高精度时,可能需要超过 5 GB 内存。
    • 「运动向量网格」(Motion vectors grid)——搜索运动矢量的算法按视频帧的小块进行处理。帧块越小,越有可能检测到小物体的运动,但物体轮廓上的波动失真也越明显。
    • 「减小网格步长」(Decrease grid step)——把帧块缩小一半,进一步细化运动矢量。
    • 「搜索半径」(Search radius)——运动矢量的搜索范围,它限制最大矢量长度和画面的「流动」程度。搜索范围越大,越有可能得出错误的运动矢量,从而产生更多插值失真。
      • 「小并且快速」(Small and fast)——禁用比较帧块的高开销 SADT 功能;
      • 「小 / 中等 / 大」(Small, Average, Large)。
    • 「宽范围搜索力度」(Wide search)——如果普通搜索不能得到满意的结果,可以用更大的范围再次搜索运动矢量。
    • 「粗等级处理的最大宽度」(Width of top coarse level)——运动矢量的分层搜索会在不同层级上使用不同的搜索参数;较高层级使用更大的搜索范围,而较低层级使用更简单的参数以减少 CPU 负载。该值越小,越多高层级会使用更简单的参数。
  • 其他选项
    • 「场景变换处理」(Processing of scene changes)——切换场景(即没有运动矢量时)生成中间帧的方式:
      • 「混合相邻帧」(Blend adjacent frames)——通过简单混合两个帧,在两个场景之间平滑过渡;
      • 「帧重复」(Repeat frame)——重复播放原始帧,实现瞬间的场景切换。
    • 「渲染设备」(Rendering device)——可以为本配置指定与主菜单不同的 GPU 设备。
    • 「处理线程」(Processing threads)——在主菜单「处理线程」设置基础上的补充。计算线程的数量直接影响内存占用。
  • 「用户定义选项」(User defined options)——任意自定义选项,可以在控制面板的「设置」部分添加,供 JavaScript 代码使用。请参阅管理脚本生成一节。

使用配置

视频一开始播放,SVP 就会选择最合适的配置,并按其参数计算中间帧。自动选择的依据是每个配置中指定的使用条件(请参阅配置的使用条件一节)。

如果要改用其他配置的参数,请在「为当前视频选择配置」(Profile for an active video)菜单中指定。可以通过以下方式打开该菜单:

  1. 通过 SVP 主菜单:
    通过 SVP 主菜单选择配置
    通过 SVP 主菜单选择配置
  2. 点击控制面板底部的配置名称:
    通过控制面板选择配置
    通过控制面板底部的配置名称选择配置
  3. 用左键点击通知区域的 SVP 图标:
    通过通知区域图标选择配置
    通过通知区域的 SVP 图标选择配置

此外,还可以用快捷键「循环切换至下一视频配置」(Cycle to the next video)在配置之间循环切换(请参阅热键一节)。

配置的使用条件

使用条件示例
示例:只有当电脑使用电池供电时,本配置才用于 10-bit(HDR)视频播放

当配置中指定的所有条件都得到满足时,该配置才适用于视频播放。没有附加条件的配置(如自动配置)可以匹配任何视频。

如果多个配置的条件都得到满足,则应用条件更多的配置(参见下文的评分说明)。

每个条件包含三个要素:「对象」(object)、「关系」(relation)和「值」(value)。例如:「帧宽度」「大于」「1000 像素」,或者「文件名」「包含」「星球大战」。

添加使用条件
添加使用条件

要添加新条件,请点击「如果……则应用此配置」(Apply this profile IF)按钮,在列表中选择「对象」,指定「关系」和「值」。如果在视频播放时添加条件,「值」字段会自动填入当前值;否则请将「值」字段留空。

条件的对象与关系列表
可设置的对象与关系

可以为以下「对象」和「关系」设置条件:

  • 视频基本参数:
    • 「视频帧率」(Video frame rate)——原始帧率高于或低于指定的 fps 值;
    • 「帧宽度」(Frame width)——裁剪和缩放后的帧宽度大于或小于指定的像素值;
    • 「帧高度」(Frame height)——裁剪和缩放后的帧高度大于或小于指定的像素值;
    • 「帧大小」(Frame area)——裁剪和缩放后的帧面积大于或小于指定的兆像素值;
    • 「原始帧大小」(Source frame area)——裁剪和缩放前的帧面积大于或小于指定的兆像素值。
  • 名称和路径:
    • 「文件名 / URL」(File name / URL)——视频文件的名称或 URL(通过网络播放视频流时)等于或包含指定字符串,可以使用正则表达式(见下文);
    • 「文件扩展名」(File extension)——文件扩展名等于指定字符串,可以使用正则表达式;
    • 「完整路径」(Full file path)——文件的完整路径包含指定字符串,可以使用正则表达式。
  • 视频来源:
    • 「是网络流媒体」(Is network stream)——视频是否为网络视频流:是或否;
    • 「视频播放器」(Video player)——视频播放器可执行文件的完整路径包含指定字符串,可以使用正则表达式。
  • 附加视频参数:
    • 「视频编码」(Video codec)——视频编码格式(如 avc 或 h264)等于指定字符串,可以使用正则表达式;
    • 「颜色位深度」(Color depth)——色深高于或低于指定的比特数(如 8 比特或 10 比特);
    • 「是 3D 视频」(Is stereo)——视频是否为 3D(立体)格式:是或否;
    • 「是隔行扫描的视频」(Is interlaced)——视频是否为隔行扫描视频(如 DVD、1080i):是或否。如果是,必须先在播放器中进行去隔行(deinterlace)处理。
  • 电脑状态:
    • 「正在使用电池」(Is on battery)——电脑是否使用电池供电(而非交流电源):是或否。使用电池供电时,便携式系统通常会降低性能。
  • 其他:
    • 列表中每个满足的条件都会为配置增加一定的评分,总分显示在配置选择菜单中配置名称的旁边。评分越高,配置的优先级越高,评分最高的配置会被自动选中。出现「平局」(即多个配置得分相同且都适用于当前视频)时,可以通过「增加评分」(Expert: add scores)为配置的总分附加任意分值来指定优先级。

字符串取值可以使用正则表达式来匹配一组字符串,用反斜杠 \…\ 将表达式括起来,例如 \mp4|mkv\ 表示「字符串等于 mp4 或 mkv」。有关正则表达式的说明,请参阅Qt 的 QRegExp文档。

全局参数

影响提高帧率功能的全局参数在主菜单中设置,不需要频繁更改。

「应用程序设置」(Application settings)菜单:

应用程序设置菜单
「应用程序设置」菜单
  • 「GPU 加速」(GPU acceleration)——选择用于计算中间帧的 GPU 设备。可以在视频配置中覆盖此设置。
    • 「禁用」(No acceleration)——不使用 GPU。这会降低计算质量,并显著增加 CPU 负载;
    • 「使用 <显卡名称>」(Using <video card name>)——使用指定的 GPU。对于同时配备独立 GPU 和集成 GPU 的系统,如果集成 GPU 性能较弱,应选择独立 GPU。不过,在笔记本上使用独立 GPU 会缩短续航并增加发热。
  • 附加选项
    附加选项
    附加选项
    • 「假定隔行视频有双倍帧率」(Assume double frame rate for interlaced videos)——SVP 不能直接处理隔行扫描视频(DVD、1080i),必须先将其转换为逐行扫描格式,转换通常由视频解码器完成。根据所用转换算法的不同,原始的 50i/60i 视频会变为 25p/30p 或 50p/60p。通过此设置,告诉 SVP 你选择的是帧率加倍还是不加倍的算法。
    • 「允许 10 bit 输出」(Allow output in 10-bit color depth)——允许处理 10 比特视频而不降低质量。只能在基于 mpv(开源命令行播放器)或 VLC(流行的开源播放器)的播放器中使用。如果禁用此设置,中间帧计算将始终使用 8 比特色深,即使源视频是 10 比特的。
    • 「启用多路视频」(Running multiple videos)——SVP 可以同时处理多个视频;可以在「为当前视频选择配置」(Profile for an active video)菜单中选择它们:
      为当前视频选择配置菜单
      「为当前视频选择配置」菜单
      • 「对所有播放中的视频使用 SVP」(Use SVP in all opened videos)——并行处理所有视频;
      • 「仅对第一个打开的视频使用」(First opened video only)——只处理第一个打开的视频;其余视频将被忽略,直到第一个视频关闭;
      • 「仅对最后一个打开的视频使用」(Latest opened video only)——只处理最后打开的视频;SVP 将停止处理先前打开的视频。
    • 「处理线程」(Processing threads)——计算线程的数量。数值越大越能充分利用 CPU,但需要更多内存。如果不确定用途,请保持「自动」(Auto)。可以在视频配置中覆盖此设置。