RIFE AI 插帧

RIFE 是一种基于名为 IFNet 的神经网络的实时中间流估计算法(Real-time Intermediate Flow Estimation),可以直接从图像中估计中间帧的光流。SVP 既能在转码模式下使用 RIFE 引擎,也能用于实时播放。

优点

  • 中间帧质量非常高
  • 大部分计算在 GPU 上运行

缺点

  • 非常吃硬件(与 SVP 自带的插帧方法相比),实时播放需要一块像样的显卡

实时播放的 GPU 要求

估算值,同样适用于 AMD 和 Apple Mx:

视频规格Generic(任意 GPU)TensorRT(仅 NVidia)
720p @48 fps>= RTX 2060、M1 Max、M41660(?)
1080p @48 fps、720p @60-72 fps>= RTX 3070>= RTX 2060
1080p @60-72 fps>= RTX 3080>= RTX 3060
4K @48 fpsRTX 4090>= RTX 4080
4K @60-72 fps???>= RTX 4090

安装

Windows

  1. 通过 SVP 菜单 → Utilities → Update or add feature 安装名为 [DS_64][VPS_64] RIFE AI interpolation engine 的附加组件,然后重启 SVP
  2. 你会看到新增了一个名为 RIFE AI engine 的视频配置文件。

面向 NVidia RTX 显卡的 TensorRT

TensorRT 是一个针对 NVidia GPU 深度优化的神经网络引擎。它最高可比 ncnn/Vulkan 实现快 100%,但也有一些缺点,比如非常漫长的优化过程。

想试试的话,通过 SVP 菜单 → Utilities → Additional programs and features 安装名为“TensorRT”的附加组件,然后在 RIFE 视频配置文件中选择 TensorRT 引擎。

TensorRT 仅支持 VapourSynth,因此你需要先把 MPC-HC(或其他 DirectShow 播放器)切换到 VapourSynth Filter:

  1. 关闭 MPC-HC
  2. SVP 菜单 → Utilities → Set environment variables for Vapoursynth → Continue
  3. 运行 MPC-HC,View → Options → External filters,取消勾选“Avisynth Filter”,添加“VapourSynth Filter”,勾选并设为“Prefer”

macOS

如果你运行过“Install mpv.command”脚本,那一切已经装好了。否则你可能需要手动补几个软件包:

# Apple silicon CPU
/opt/homebrew/bin/brew install vulkan-loader molten-vk
# Intel CPU
/usr/local/bin/brew install vulkan-loader molten-vk

如果一切顺利,重启 SVP 后就能看到 RIFE AI engine 视频配置文件了。

使用

转码:

  1. 打开转码面板
  2. 浏览选择视频文件
  3. 选择 RIFE 视频配置文件
  4. 开始转码!

实时播放(前提是你有一块高端显卡),推荐程度由高到低:

  • mpv 或 VLC
  • 使用 VapourSynth Filter 的 DirectShow 播放器(MPC-HC 等):需要设置环境变量:SVP 菜单 → Utilities → Set environment variables for Vapoursynth
  • 使用 Avisynth Filter 的 DirectShow 播放器(MPC-HC 等):需要 Avisynth 3.7.2;不支持 TensorRT。

开始播放后,如有需要请切换到 RIFE 视频配置文件 —— 根据当前的配置文件条件,它可能在「其他配置文件」(Other profiles)子菜单里。

注意:运行优化过程时,命令行窗口停留几分钟是正常的。别关它!等着!

配合配置文件条件的高级用法:例如,你可以设定只有 <= 720p 的视频才在实时播放时用 RIFE,而转码时所有视频都用。

RIFE 配置文件的 720p 应用条件设置
只对 720p 及以下视频应用 RIFE 的配置文件条件示例

注意:SVP 只自带少量 AI 模型,但你可以把其他模型放进 SVP 4\rife\models 子文件夹(macOS 上是 SVP 4 Mac.app\Contents\Resources\rife\models)。例如 GitHub 上就有一堆模型可供试验。

配置文件选项

  • 引擎(Engine) – ncnn/Vulkan 或 TensorRT。
  • AI 模型(AI model) – 决定插帧质量、性能、内存占用等。4.6 模型质量更高,但比 4.4 慢约 10-15%。另一方面,4.4 模型占用内存略少,可以在 8 GB 显存的显卡上做 4K 插帧。
  • GPU 设备(GPU device) – 如果有多块显卡,可以在这里选择。
  • GPU 线程(GPU threads) – 在 GPU 上运行多个计算线程以提高利用率。即使是 RTX 4090 也不需要超过 3;有些 GPU 只接受 1 个线程(如 Apple M1)。
  • 性能提升(Performance boost) – 仅 TensorRT。可提升约 5% 性能并降低内存占用,代价是每遇到一种新的视频分辨率都要在命令行窗口里跑一次 5-10 分钟的优化过程。之前跑过的会被缓存。例如:第一次打开 1080p 视频要等 5 分多钟;之后所有 1080p 视频都能秒开,但一旦画面尺寸变了(比如裁掉了黑边),就又要再等 5 分多钟。
  • 场景切换阈值(Scene change threshold) – 判断相邻两帧是否属于不同场景,即两帧是同一画面(略有位移)还是完全不同。如果是不同场景,这两帧之间就不做插值。阈值越高,漏检场景切换时插帧伪影越多;阈值越低,误检时“卡顿”(用重复帧代替插值帧)越多。

添加 TensorRT 模型

  1. 从这里下载 ONNX 模型。
  2. 把 .onnx 文件放进 SVP 4\rife\models\rife 文件夹(“V2”模型则放进 SVP 4\rife\models\rife_v2)。
  3. 重启 SVP。

添加 ncnn/Vulkan 模型

  1. 从这里下载模型。
  2. 把包含 .bin 和 .param 文件的文件夹放进 SVP 4\rife\models。
  3. 重启 SVP。

问题与排查

Vulkan 报错

Vulkan 可能没有安装和/或配置正确。如果你看到“no Vulkan devices found”或“invalid GPU device”之类的错误 —— 可能需要重装显卡驱动,或者在视频配置文件里选对“GPU device”。

TensorRT —— 完全不工作

  • 确认你已经把视频滤镜切换到 VapourSynth Filter!
  • 确认你已经修改了环境变量,然后重启 MPC-HC。双击“VapourSynth Filter”检查一下,一切正常的话属性窗口应该能打开。

TensorRT —— 初始化缓慢

实时播放时的首次初始化可能真的非常非常慢。耐心点。

TensorRT —— 优化过程报错

多半是显存不够。<=1440p 需要 6-8 GB 显存,4K 至少要 10 GB。降低内存需求的方法:

  • 选用 AI 模型 4.4 而不是 4.6
  • 打开“性能提升”(Performance boost)

任务管理器里 GPU 占用很低

任务管理器里的总体 GPU 占用率未必反映实际的算力使用情况。切换到“Compute_1”(NVIDIA)图表看看。

黑白画面或 Avisynth 相关问题

通过 Avisynth Filter 播放时出现黑白画面或其他任何问题:请确保安装了 Avisynth+ 3.7.2!

在 macOS 的 Intel 核显上不工作

……对此我们也无能为力。

外部链接与致谢