QualityScaler-Go 用户操作手册

适用平台: Windows 10/11 | 语言: 简体中文


目录

  1. 快速入门
  2. 环境要求
  3. 版本选择指南
  4. AI 模型详解
  5. 参数选项说明
  6. 显存分级与推荐配置
  7. 管线模式详解:Memory vs Disk
  8. 人脸增强
  9. 常见问题排查

1. 快速入门

1.1 基本操作流程

  1. 添加文件 — 点击左侧「添加文件」或「添加文件夹」,或直接拖拽文件到窗口
  2. 选择 AI 模型 — 在「AI 核心」标签页选择适合的模型(默认 LVAx2 适用于大多数场景)
  3. 设置输出目录 — 点击右侧「浏览」选择保存位置
  4. 开始处理 — 点击「开始处理」按钮

1.2 界面概览

区域 功能
左侧 — 文件列表 添加/清空待处理文件,显示处理状态
中央 — 处理参数 4 个标签页:AI 核心、性能与硬件、图像处理、视频处理
右侧上方 — 分辨率预览 实时预览源分辨率 → 输入缩放 → 模型放大 → 输出分辨率
右侧下方 — 输出/进度/控制 输出目录选择、处理进度、开始/停止按钮

2. 环境要求

2.1 操作系统

  • Windows 10/11 64-bit(主要支持平台)
  • Linux(实验性支持,部分功能可能不可用)

2.2 必装基础环境

Visual C++ Redistributable 2015-2022(所有版本必需)

ONNX Runtime 底层依赖 VC++ 运行时库。如果缺失,程序启动时会报 DLL 错误(如 VCRUNTIME140.dll not found)。

📥 下载:vc_redist.x64.exe

2.3 NVIDIA GPU 加速环境

GPU 加速需要显卡驱动、CUDA 和 cuDNN。各版本的依赖见 2.4 节。TensorRT 运行时随 tensorrt-gpufull 发布包提供,不需要单独安装。

第一层:NVIDIA 显卡驱动

所有 GPU 加速方案的基础。建议通过 NVIDIA GeForce Experience 或官网下载最新 Game Ready / Studio 驱动。

验证方式:

nvidia-smi

如果命令正常输出 GPU 信息,说明驱动已安装。

第二层:CUDA Toolkit 12.4+(必需)

CUDA 提供 GPU 并行计算的基础运行时库(cudart64_*.dll 等),是 ONNX CUDA 和 TensorRT 的通用前提

  • 版本要求: CUDA 12.4 或更高版本
  • 安装路径: 默认 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.1\
  • 环境变量: 安装器通常自动设 CUDA_PATH

验证方式:

# 检查 CUDA 版本
nvcc --version
# 或检查环境变量
echo $env:CUDA_PATH

第三层:cuDNN 9.x(ONNX CUDA / TensorRT 必需)⚠️ 关键

仅安装 CUDA 是不够的! ONNX Runtime 的 CUDA provider 依赖 cuDNN(CUDA Deep Neural Network Library)才能启用 GPU 加速。缺少 cuDNN 是最常见的 GPU 未生效原因。

  • 推荐版本: cuDNN 9.x(v9.0 以上)
  • 安装路径: C:\Program Files\NVIDIA\CUDNN\v9.x\bin\
  • 关键 DLL: cudnn_engines_runtime_compiled64_9.dll

📥 下载:从 NVIDIA cuDNN 官网 下载(需注册 NVIDIA Developer 账号,免费)

安装步骤:

  1. 下载 cuDNN 9.x for CUDA 12.x(ZIP 包)
  2. 解压后将 bin/include/lib/ 目录合并到 CUDA 安装目录:
    将 cudnn\bin\*.dll      复制到 → C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.1\bin\
    将 cudnn\include\*.h     复制到 → C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.1\include\
    将 cudnn\lib\x64\*.lib   复制到 → C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.1\lib\x64\
    
  3. 或者使用 NVIDIA 官方安装器(exe),安装到 C:\Program Files\NVIDIA\CUDNN\v9.x\

验证 cuDNN 是否生效:

  • 程序启动时日志会输出 Added cuDNN to PATH: ...(表示已检测到)
  • 如果 CUDA 已安装但推理仍走 CPU,大概率是缺少 cuDNN

TensorRT 运行时(仅 tensorrt-gpu / full 版本)

TensorRT 只在 tensorrt-gpufull 版本中启用。运行时、qualityscaler_tensorrt.dll 以及相关 NVIDIA DLL 都已随发布包提供,用户不需要从 NVIDIA 官网另行下载或安装 TensorRT。

请保留发布包中的 DLL,不要用其他 CUDA、cuDNN 或 TensorRT 安装中的文件覆盖它们。混用不同版本的 DLL 可能导致后端加载失败。不需要 TensorRT 时,onnx-cuda 版本即可满足一般使用。

2.4 各版本依赖汇总

组件 onnx-cpu onnx-cuda tensorrt-gpu full
VC++ Redist 2015-2022
ONNX Runtime DLL
NVIDIA 显卡 + 驱动
CUDA Toolkit 12.4+
cuDNN 9.x 必需 必需 必需
TensorRT 运行时 DLL(随包提供) ✅ 内置 ✅ 内置
qualityscaler_tensorrt.dll ✅ 内置 ✅ 内置
OpenCV (gocv) ✅ 内置 ✅ 内置 ✅ 内置 ✅ 内置

2.5 依赖关系图

基础层(所有版本)
  └─ Visual C++ Redistributable 2015-2022
  └─ ONNX Runtime DLLs (onnxruntime.dll + onnxruntime_providers_shared.dll)
  └─ OpenCV (gocv)

GPU 加速(onnx-cuda / tensorrt-gpu / full)
  ├─ NVIDIA 显卡驱动
  ├─ CUDA Toolkit 12.4+
  └─ cuDNN 9.x  ← ⚠️ 最易遗漏!没有它,ONNX Runtime 无法使用 GPU

TensorRT 加速(tensorrt-gpu / full)
  └─ 发布包内置 TensorRT 运行时和 qualityscaler_tensorrt.dll
  └─ 不需要单独安装 TensorRT

2.6 环境验证清单

安装完成后,按以下步骤验证环境是否就绪:

# 1. 检查显卡驱动
nvidia-smi
# 预期:显示 GPU 型号、驱动版本、CUDA 版本

# 2. 检查 CUDA
nvcc --version
# 预期:显示 CUDA 版本号(如 12.6)

# 3. 检查 cuDNN(查看 DLL 是否存在)
ls "C:\Program Files\NVIDIA\CUDNN\v9*\bin\cudnn_engines_runtime_compiled64_9.dll"
ls "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v*\bin\cudnn_engines_runtime_compiled64_9.dll"
# 预期:至少一处能找到该 DLL

# 4. 检查 VC++ Redist
# 控制面板 → 程序和功能 → 查找 "Microsoft Visual C++ 2015-2022 Redistributable (x64)"

程序内验证(最可靠的方式): 启动 QualityScaler-Go,观察标题栏或日志中的推理后端信息:

  • TensorRT (GPU) — 全部就绪,极致性能 ✅
  • CUDA (GPU 0) — CUDA + cuDNN 正常,GPU 加速生效 ✅
  • CPU (ONNX) — GPU 未生效,请检查 CUDA 和 cuDNN 安装 ❌

如果程序无法启动、GPU 后端加载失败或运行异常,请先更新 NVIDIA 显卡驱动,再检查 CUDA 和 cuDNN。驱动版本过旧也可能导致 GPU 后端不可用。

2.7 常见环境坑

❌ "我装了 CUDA,为什么还是 CPU 推理?"多数情况是没有安装 cuDNN。CUDA Toolkit 不包含 cuDNN,需单独下载安装。详见上方「第三层:cuDNN 9.x」段落。

❌ "cuDNN 装了,但程序找不到?" → 检查 cuDNN 的 bin/ 目录是否在系统 PATH 中。程序会自动搜索 C:\Program Files\NVIDIA\CUDNN\v9*\bin\,如果放在其他位置,需要手动添加 PATH 或将 DLL 复制到 CUDA 的 bin/ 目录。

❌ "TensorRT 引擎文件报错?".engine 文件绑定具体 GPU 架构(SM 版本),不可跨显卡使用。换显卡后需要删除 AI-tensorrt/*.engine 重新生成。不要替换发布包内的 TensorRT DLL。详见 3. 版本选择指南

❌ "ffmpeg 找不到 / 报错?" → 发布包通常自带 ffmpeg,如果缺失,从 ffmpeg.org 下载 Windows 版本,将 ffmpeg.exeffprobe.exe 放到程序目录或系统 PATH 中。


3. 版本选择指南

QualityScaler-Go 提供 5 个版本,根据你的硬件选择:

版本 推理后端 适用人群 需要环境
onnx-cpu ONNX CPU 无 NVIDIA 显卡,兼容性最强 无需 GPU
onnx-cuda ONNX + CUDA 有 N 卡,不想配置 TensorRT NVIDIA 显卡 + CUDA DLL
onnx-directml ONNX + DirectML 支持 DirectML 的 Windows GPU DirectML 兼容驱动
tensorrt-gpu TensorRT → ONNX → CPU 回退 追求极限性能的 N 卡用户 内置 TensorRT;需要 CUDA 12.4+
full 内置全部推理引擎,可手动切换 需要在不同引擎之间切换的用户 与所选引擎对应的环境

说明: 各版本都内置 OpenCV。普通版本只包含当前版本所需的引擎,以及用于回退的向下兼容引擎;full 版本包含全部引擎,并支持手动切换。

3.1 图片超分与视频超分的硬件要求

两类任务的瓶颈不同。图片超分主要受单张图片分辨率、模型和显存峰值影响;视频超分还需要持续完成解码、帧传输、推理和编码,因此对 CPU、内存、显存、磁盘和散热稳定性更敏感。

任务 基础要求 推荐配置 主要限制
图片超分 支持 ONNX CPU 的 Windows 电脑;GPU 可选 8GB 以上内存;兼容 DirectML 的核显或独显,或 NVIDIA GPU + CUDA 大图、BSRGAN、去模糊和人脸增强会提高显存峰值
视频超分 支持 FFmpeg 的 Windows 电脑;CPU 可运行 ONNX CPU 16GB 以上内存;具备硬件编码器的 GPU;SSD 临时空间 长视频、4K 输出、多线程和 Disk 管线会增加持续资源占用

图片超分建议

  • 无 NVIDIA GPU 时优先尝试 onnx-cpuonnx-directml
  • 低显存设备使用较小模型、降低输入缩放,并将 batch 保持为 1。
  • 超大图片应预留额外内存和显存;发生 OOM 时先降低输入尺寸或切换轻量模型。

视频超分建议

  • 先确认输入视频能够被 FFmpeg 正常解码,输出编码器也可用。
  • CFR 视频优先使用 Memory 管线;VFR 视频、需要断点恢复或逐帧检查时使用 Disk 管线。
  • 长视频不建议一开始就启用高并发和大 batch;应根据显存和内存逐步增加线程数。
  • Disk 管线需要为中间帧预留磁盘空间,具体大小取决于视频时长、帧数、分辨率和帧格式。

4. AI 模型详解

4.1 模型速查表

模型 倍率 类型 速度 显存占用 最佳场景
LVAx2 ×2 轻量增强 ⚡⚡⚡ 最快 🟢 低 轻度增强、保持自然感
RealESR_Gx4 ×4 通用超分 ⚡⚡ 较快 🟡 中 真实照片、风景、写实影视
RealESR_Animex4 ×4 动漫优化 ⚡⚡ 较快 🟡 中 动漫、插画、2D 游戏画面
BSRGANx2 ×2 降噪增强 ⚡⚡ 较快 🟡 中 低画质素材、未知退化
BSRGANx4 ×4 重度修复 ⚡ 较慢 🔴 高 极差画质、老旧素材、大量底噪
MSharpx4 ×4 锐化增强 ⚡⚡ 较快 🟡 中 模糊素材、需要强化轮廓
IRCNN_Mx1 ×1 去噪修复 ⚡⚡⚡ 最快 🟢 低 中度噪声去除(保持分辨率)
IRCNN_Lx1 ×1 重度修复 ⚡⚡ 较快 🟡 中 重度图像损伤修复(保持分辨率)

4.2 模型详细说明

LVAx2 — 轻量自然放大

  • 特点: 提升分辨率的同时保持极高的边缘保真度,处理风格自然
  • 优点: 速度快、显存占用低、画面自然不 "AI 感"
  • 缺点: 仅 ×2 倍率,放大倍数有限
  • 适用: 低倍率放大需求、不希望画面过度处理的轻度增强任务

RealESR_Gx4 — 真实照片增强(推荐)

  • 特点: 针对真实世界复杂退化设计,具备极强的泛化能力
  • 优点: 平衡纹理重建与噪声抑制,通用性最强
  • 缺点: 对极端低画质素材效果有限
  • 适用: 日常照片、风景、写实类影视素材 — 大多数用户的首选

RealESR_Animex4 — 动漫/插画专用

  • 特点: 专为二次元内容优化,强调线条平滑度与色块纯净度
  • 优点: 显著消除压缩伪影(Ringing/Artifacts),线条干净
  • 缺点: 处理真实照片效果不佳,会产生过度平滑
  • 适用: 动漫、插画、2D 游戏画面、线稿

BSRGANx2 / BSRGANx4 — 降噪与修复

  • 特点: 基于 "随机降级空间" 训练,对未知干扰容忍度极高
  • 优点: 对画质极差的素材也有不错的修复效果
  • 缺点: 速度较慢,可能引入细微纹理变化
  • 适用: 画质极差、带有大量未知底噪、多次低质量压缩的老旧素材
    • x2: 轻度降级素材
    • x4: 重度降级素材

MSharpx4 — 高对比度锐化

  • 特点: 强调视觉上的高对比度与轮廓清晰度
  • 优点: 对模糊素材能强行勾勒主体轮廓
  • 缺点: 可能过度锐化,产生不自然的边缘
  • 适用: 原始素材过于模糊(Soft)、需要突出轮廓的特定场景

IRCNN_Mx1 / IRCNN_Lx1 — 去噪修复(不放大)

  • 特点: 非放大类修复模型,专注于保持原分辨率前提下去卷积与降噪
  • 优点: 不改变分辨率,专注修复;可与其他放大模型级联使用
  • 缺点: 不提升分辨率
  • 适用: 作为预处理步骤
    • IRCNN_Mx1: 中度噪声去除
    • IRCNN_Lx1: 重度图像损伤修复

4.3 场景选型指南

你的需求 首选模型 备选模型
真实照片放大 RealESR_Gx4 BSRGANx4
动漫/插画增强 RealESR_Animex4 LVAx2
极端低画质修复 BSRGANx4 IRCNN_Lx1 → RealESR_Gx4
保持原尺寸去噪 IRCNN_Mx1
高对比度/锐化边缘 MSharpx4
轻度增强(不想 AI 感太重) LVAx2 RealESR_Gx4(降低输出缩放)

5. 参数选项说明

5.1 AI 核心标签页

AI 模型

选择用于超分辨率的主模型。详见 第 4 章 AI 模型详解

去模糊模型

在超分前对图像进行去模糊/去噪预处理。

选项 说明
OFF 不启用去模糊(默认,推荐)
SCUNet-GAN 生成对抗网络训练,修复效果更强,视觉质量更好
SCUNet-PSNR PSNR 导向训练,保真度更高,但可能保留部分噪声

⚠️ 启用去模糊会额外占用约 2GB 显存,并增加处理时间约 30-50%。


5.2 性能与硬件标签页

性能模式

模式 AI 线程数 批处理 融合强度 特点
Balanced(推荐) CPU 核心数/2(≤4) 1 不改动 速度与质量平衡
Extreme Performance CPU 核心数(≤8) 4 强制 OFF 最快速度,适合批量处理
Quality 1 1 不改动 最稳定,兼容性最好

GPU

选择用于 AI 推理的显卡。

选项 说明
Auto(推荐) 自动选择高性能 GPU
GPU 1 对应任务管理器中的 GPU 0
GPU 2-4 多卡系统中的其他显卡

⚠️ 选择不存在的 GPU 可能导致回退到 CPU,速度极慢。

显存 (GB)

限制 AI 推理可使用的显存预算。这是最重要的性能参数之一

  • 建议设置为显卡实际可用显存(例如 8GB 显卡设为 8)
  • 设置过低:导致 tile 尺寸过小,速度变慢
  • 设置过高:可能导致显存溢出(OOM),推理失败
  • 集成显卡建议从 2GB 开始尝试

详见 第 7 章 显存分级与推荐配置

多线程

控制视频逐帧处理时的并行线程数。

选项 适用场景
Auto 让程序根据 CPU 核心数自动选择
OFF 最稳定,内存/显存占用最低
2 threads 轻度并行
4 threads 中度并行(推荐给 6-8 核 CPU)
6 threads 高度并行
8 threads 最大并行(需要充足显存和内存)

⚠️ 线程越多速度可能越快,但显存和内存占用也越大。如果遇到 OOM,先降低线程数。

TRT 精度(仅 TensorRT/Full 版本)

控制 TensorRT 引擎的量化精度。

精度 速度 显存占用 精度损失 推荐场景
fp16(推荐) ⚡⚡⚡ 最快 🟢 低 极小 日常使用
fp32 ⚡ 较慢 🔴 高(约 2×) 对精度要求极高的专业场景
int8 ⚡⚡⚡ 最快 🟢 最低 较大 需要校准数据集,显存极度紧张时

Tile 重叠 (px)

AI 推理时分块(Tile)之间的重叠像素数。

  • 默认值: 16px
  • 增大(32/64): 可消除 tile 接缝,代价是轻微增加推理时间
  • 减小(0): 略微加速,但可能出现可见的网格接缝
  • 范围: 0-256

GPU 批处理

GPU 一次处理多少帧(仅 TensorRT 版本)。

说明
1(推荐) 逐帧推理,最稳定
2/4/6/8 批处理,速度更快但显存占用成倍增加

⚠️ 需要 TensorRT 引擎支持动态 batch dimension,否则自动回退到 1。

管线模式 ⭐

控制视频处理的数据管线。这是最关键的选项之一

模式 说明
Memory(默认) 纯内存管道,速度快,无临时文件
Disk 文件管线,兼容 VFR/断点续传,需磁盘空间

📖 详细对比和故障排除请阅读 第 6 章


5.3 图像处理标签页

输入缩放 %

送入 AI 模型前的图像缩放比例。

  • 25%(默认): 大幅减少计算量,速度最快
  • 50%: 保留更多原始细节
  • 100%: 原始分辨率送入 AI,质量最好但速度最慢
  • >100%: 插值放大后再处理(不推荐,不会增加真实细节)

💡 对 4K 视频建议用 25-50%,1080p 视频可用 50-100%。

输出缩放 %

对 AI 输出结果再次缩放。

  • 100%(默认): 保持 AI 原生输出尺寸
  • <100%: 缩小输出,减小文件体积与处理时间
  • >100%: 仅插值放大,不会增加真实细节

💡 最终分辨率 = 源分辨率 × 输入缩放% × 模型倍率 × 输出缩放%

AI 融合

将原始图像与 AI 超分结果按比例混合。

  • OFF: 完全保留 AI 输出(最清晰)
  • Low (0.3): 30% 原图 + 70% AI 输出
  • Medium (0.5): 50% 原图 + 50% AI 输出
  • High (0.7): 70% 原图 + 30% AI 输出(最接近原图)

💡 AI 输出偶尔会有不自然的纹理,适当融合可以保留原图的自然感。

图像格式

输出图片的格式。

格式 质量 体积 适用场景
.jpg(默认) 有损压缩 🟢 小 日常使用、Web 分享
.png 无损 🔴 大 高质量存档、后续编辑
.bmp 无损无压缩 🔴 极大 特定工具链兼容
.tiff 无损/有损可选 🟡 中-大 专业图像处理、归档

保留帧

控制是否保留视频处理中间帧文件。

  • OFF(默认): 任务完成后自动清理临时帧
  • ON: 保留中间帧,便于排错或复用(会用掉大量磁盘空间)

5.4 视频处理标签页

视频格式

输出视频的封装格式。

格式 兼容性 特点
.mkv(默认) 🟡 较好 高质量、支持多音轨/字幕
.mp4 🟢 最好 几乎所有设备兼容
.avi 🟡 一般 适合特定工具链,体积较大
.mov 🟡 一般 Apple 生态、专业剪辑软件

视频编码

输出视频的编码器。按硬件分三类

CPU 软件编码(兼容性最好):

编码器 说明
x264(默认 ONNX 版) H.264 CPU 编码,兼容性最好
x265 H.265 CPU 编码,同码率质量更高,编码慢

NVIDIA GPU 硬件编码(速度最快):

编码器 说明
h264_nvenc(默认 TRT 版) NVIDIA H.264 硬件编码
hevc_nvenc NVIDIA H.265 硬件编码
av1_nvenc NVIDIA AV1 硬件编码(RTX 40 系列+)

AMD GPU 硬件编码:

编码器 说明
h264_amf AMD H.264 硬件编码
hevc_amf AMD H.265 硬件编码
av1_amf AMD AV1 硬件编码

Intel GPU 硬件编码:

编码器 说明
h264_qsv Intel QuickSync H.264
hevc_qsv Intel QuickSync H.265
av1_qsv Intel QuickSync AV1(Arc 显卡+)

通用 AV1 编码:

编码器 说明
av1_svt CPU AV1 编码,同码率质量最高,编码极慢

💡 硬件编码速度快 5-10 倍但同码率质量略低于软件编码。日常使用推荐 h264_nvenc(N 卡)或 x264(其他)。

帧率模式

模式 说明
CFR(默认) 恒定帧率,兼容性最好,适合 Memory 管线
VFR 可变帧率,保留原始时间戳,需 Disk 管线

⚠️ VFR 模式必须使用 Disk 管线,Memory 管线不支持 VFR。

码率质量

控制输出视频的码率(影响文件大小和画质)。

级别 码率乘数 说明
Extreme ×2.0 超大文件,极致画质
High(默认) ×1.0 标准高质量
Medium ×0.75 适中体积
Low ×0.5 较小文件
Compatible ×0.3 最小文件,兼容优先

6. 显存分级与推荐配置

6.1 显存分级总览

显存 等级 GPU 示例 推荐模型 输入缩放 性能模式 多线程 批处理
≤2GB 入门 GT 1030, 集成显卡 LVAx2, IRCNN 25% Quality OFF 1
4GB 入门+ GTX 1050 Ti, GTX 1650 LVAx2, RealESR_Gx4 25% Quality OFF 1
6GB 主流 GTX 1060, GTX 1660, RTX 2060 RealESR_Gx4, 动漫 25-50% Balanced 2 1
8GB 主流+ RTX 2070, RTX 3070, RTX 4060 全部模型 25-50% Balanced 2-4 1-2
12GB 高端 RTX 3080, RTX 4070, RTX 5070 全部模型 50-100% Extreme Perf 4-6 2-4
16GB+ 旗舰 RTX 4080, RTX 4090, RTX 5080 全部模型 50-100% Extreme Perf 6-8 4-8
24GB 专业 RTX 3090, RTX 4090, RTX 5090 全部 + 去模糊 + 人脸 100% Extreme Perf 8 8

6.2 分级详解

🟢 入门级(≤4GB 显存)

限制与注意事项:

  • tile 尺寸自动降至 256×256,推理速度较慢
  • 批处理必须设为 1
  • 多线程建议 OFF 或 Auto
  • 避免同时启用人脸增强和去模糊

推荐配置:

模型: LVAx2 或 RealESR_Gx4
输入缩放: 25%
输出缩放: 100%
性能模式: Quality
多线程: OFF
批处理: 1
去模糊: OFF
人脸增强: 关闭
管线模式: Disk

🟡 主流级(6-8GB 显存)

这是大多数用户的配置区间,可以流畅使用大部分模型。

推荐配置:

模型: 按需选择(推荐 RealESR_Gx4)
输入缩放: 25-50%
输出缩放: 100%
性能模式: Balanced
多线程: 2-4 线程
批处理: 1
去模糊: OFF(开启时需降低多线程)
人脸增强: 可选(会额外占用约 1-2GB 显存)
管线模式: Memory(默认)

🔴 高端/旗舰(12GB+ 显存)

几乎无限制,可以同时开启所有增强功能。

推荐配置:

模型: 按需选择
输入缩放: 50-100%
输出缩放: 按照需求
性能模式: Extreme Performance
多线程: 4-8 线程
批处理: 2-8
去模糊: 可选
人脸增强: 开启
管线模式: Memory

6.3 集成显卡 / AMD 显卡用户

  • 设置显存为 2GB 起步,根据实际效果调整
  • 性能模式选择 Quality
  • 多线程选择 OFF
  • 使用 x264 CPU 编码(不要用 NVENC/AMF 除非确认可用)

7. 管线模式详解:Memory vs Disk

7.1 两种管线的架构差异

Memory 管线(纯内存管道)

ffmpeg 解码 → stdout → [原始视频帧数据] → Go AI 推理 → [处理后帧数据] → stdin → ffmpeg 编码
                    ↑                              ↑
              无磁盘 I/O,全部在内存中完成         无中间文件产生

特点:

  • 速度快: 省去 JPEG 编码/解码和磁盘读写,I/O 开销为零
  • 无临时文件: 不产生中间帧文件,不占用额外磁盘空间
  • 内存效率高: 帧数据流式处理,不会在磁盘上积累大量文件
  • 不支持 VFR: 可变帧率视频只能走 Disk 管线
  • 不支持断点续传: 中断后无法从上次进度恢复,需从头开始
  • 可能卡死: 在特定条件下(如 ffmpeg 版本兼容性、管道阻塞等)可能出现进程挂起

Disk 管线(文件管线)

ffmpeg 提取帧 → 写入磁盘 → 读取帧文件 → AI 推理 → 写入超分帧 → 读取超分帧 → ffmpeg 组装视频
     ↑                        ↑                      ↑
  磁盘 I/O                磁盘 I/O                磁盘 I/O

特点:

  • 支持 VFR: 可变帧率视频完全兼容
  • 断点续传: 中断后可恢复,已超分的帧不会丢失
  • 稳定性高: 每阶段独立,不会因管道问题卡死
  • 可排错: 保留的中间帧文件可用于检查每帧的处理效果
  • 磁盘占用大: 需要存储所有中间帧(如 4K 视频 10 万帧 × 1MB/帧 = 100GB)
  • 速度较慢: 额外的 JPEG 编码/解码和磁盘 I/O 增加处理时间约 10-20%

7.2 如何选择

场景 推荐管线 原因
CFR 视频(大多数情况) Memory 速度最快,无磁盘占用
VFR 视频 Disk(强制) Memory 不支持 VFR
超大视频(>50GB 源文件) Disk 避免内存压力过大
需要断点续传 Disk 中断后可恢复
处理过程中需要排错 Disk + 保留帧 ON 可检查中间帧
磁盘空间紧张 Memory 不产生临时文件
Memory 管线卡死/报错 Disk ⬅️ 见下方排查指南

7.3 ⚠️ Memory 管线卡死排查与解决

症状识别:

  • 进度条长时间不动(超过预期帧处理时间的 3 倍以上)
  • 没有错误提示,但程序无响应
  • 任务管理器中 ffmpeg 进程存在但 CPU 使用率为 0
  • 日志停在 "Upscaling video" 阶段

根本原因(常见):

  1. ffmpeg 版本兼容性问题:某些版本的 rawvideo 管道不够稳定
  2. 管道缓冲区已满:解码速度超过 AI 推理速度,管道因此阻塞
  3. GPU 显存不足:多线程配合大模型可能耗尽显存,让推理线程停住
  4. 输入视频编码特殊:部分编码格式可能导致 rawvideo 解码异常

解决方案(按优先级排序):

🔧 第一步:切换到 Disk 管线

在「性能与硬件」标签页中,将「管线模式」从 Memory 改为 Disk。 这是最直接的排查方法。已有测试中,大多数卡死问题在切换到 Disk 后可以正常完成。

Disk 管线通常会慢 10-20%,但更稳定,适合优先排查 Memory 管线卡死问题。

第二步:降低并发压力

  • 性能模式改为 QualityBalanced
  • 多线程改为 OFF2 threads
  • 批处理设为 1

第三步:检查显存设置

  • 确认显存 (GB) 设置为显卡实际大小
  • 如果仍然卡死,尝试将显存值降低 2GB(如 8GB 设为 6GB)

第四步:降低输入分辨率

  • 输入缩放从 25% 进一步降低到 10-15%
  • 或者先用其他工具将视频缩小后再处理

第五步:尝试其他 AI 模型

  • 切换到显存占用更低的模型(如 LVAx2 替代 BSRGANx4)

7.4 Memory vs Disk 性能对比

论文记录了一组初步测试结果。测试素材是一段约 45 秒的 1080p Sintel 视频,输出为 2160p,测试平台为 RTX 5070 Ti Laptop GPU。I100O50 表示输入 100%、输出 50%;1b8t 表示 batch=1、8 个工作线程。下面的时间均来自单次运行,只用于展示这套环境下的差异:

配置 Memory 管线 Disk 管线
TensorRT 1b8t 3:42 4:04
ONNX CUDA 1b8t 7:48 8:02
TensorRT 1b1t 9:52 10:45
DirectML 1b1t 12:25 12:42
ONNX CUDA 1b1t 15:28 15:45
QualityScaler 基线 18:41 不适用

在另一组 I50O100 实验中,TensorRT 1b8t 在 Memory 和 Disk 下分别用时 50 秒和 95 秒。由于输入负载不同,这组结果不能直接与上表比较。

7.5 DIV2K 兼容性测试记录

下面是使用 DIV2K Validation Set 中 0801.jpeg 的单图测试结果,配置为 1b1t I50O100

平台 ONNX CPU DirectML
Intel Core Ultra 7 28 秒 3 秒(核显)
第 13 代 Intel Core i5-13500H 28 秒 4 秒(核显)

该表只反映这张图片和当前测试环境下的兼容性表现,不能代表不同硬件或后端的整体性能排名。


8. 人脸增强

8.1 功能说明

人脸增强是在超分完成后,对人脸区域进行专门的细节修复。适用于视频中人物面部占比较大的内容(如访谈、Vlog、影视剧)。

8.2 人脸模型

模型 输出尺寸 质量 说明
codeformer(推荐) 固定 512×512 🟢 最好 Transformer 架构,修复效果自然
face_dat_x4 4× 超分 🟡 一般 旧版模型,简单放大

8.3 参数说明

颜色匹配

  • 开启: 融合前做颜色直方图匹配,消除人脸与背景的色调差异
  • 关闭(默认): 不做颜色匹配

保真度权重 (0.00 - 1.00)

控制人脸修复强度与原图保真度的平衡:

  • 0.0: 最强修复,最清晰,但可能产生噪点/失真,远离原图
  • 0.5(默认): 平衡点,修复清晰同时保留自然感
  • 1.0: 完全保留原图,不修复

💡 推荐值:0.5~0.7。如果人脸出现扭曲或过度平滑,调高此值。

8.4 注意事项

  • 人脸增强需要额外约 1-2GB 显存
  • 处理时间增加约 20-40%(取决于画面中人脸数量和大小)
  • 对于没有人脸或人脸极小的视频(远景、风景),建议关闭以节省时间

9. 常见问题排查

9.1 处理速度太慢

  1. 检查推理后端: 确认标题栏显示 TensorRT 或 CUDA,如果显示 CPU 则 GPU 未生效
  2. 提高输入缩放: 默认 25% 已经很快,如果还慢 → 降低输入缩放到 10-15%
  3. 切换模型: LVAx2 比 BSRGANx4 快 3-5 倍
  4. 性能模式: 切换到 Extreme Performance
  5. 关闭去模糊和人脸增强: 这两个功能会显著增加处理时间

9.2 显存不足 (OOM) / 程序崩溃

  1. 降低多线程: OFF → 2 threads 逐步尝试
  2. 降低批处理: 设为 1
  3. 切换更小显存占用的模型: BSRGANx4 → RealESR_Gx4 → LVAx2
  4. 降低输入缩放: 25% → 15% → 10%
  5. 关闭去模糊和人脸增强
  6. 切换到 Disk 管线(减少内存压力)

9.3 输出视频没有声音

  • 检查源视频是否有音轨(部分视频源无音频)
  • Disk 管线会自动保留音频
  • Memory 管线通过 -map 1:a? 复制音频流,如果源视频音频编码特殊可能导致失败

9.4 画面出现网格状接缝

  • 增大 Tile 重叠 参数(16 → 32 或 64)
  • 切换到 Quality 性能模式
  • 适当提高输入缩放比例

9.5 AI 输出画面过于 "塑料感"

  • 开启 AI 融合,选择 Low 或 Medium
  • 切换到更自然的模型(如 LVAx2)
  • 使用 IRCNN 先做去噪预处理

9.6 程序启动后无响应/白屏

  1. 确认运行目录下存在 Assets/ 文件夹及 ONNX Runtime DLL
  2. 安装 Visual C++ Redistributable 2015-2022
  3. 如果使用 TensorRT,确认发布包内的 qualityscaler_tensorrt.dll 和相关 DLL 没有被删除或替换

附录:处理流水线全貌

输入文件 (图片/视频)
    │
    ├─ 图片: 直接进入 AI 推理
    │
    └─ 视频:
        │
        ├─ Memory 管线:
        │   ffmpeg 解码 → stdout → Go 读取 → AI 推理 → Go 写入 → stdin → ffmpeg 编码 → 输出
        │
        └─ Disk 管线:
            ffmpeg 提取帧 → 磁盘存储 → AI 超分逐帧 → 磁盘存储 → ffmpeg 组装 → 输出
                │                                              │
                └─ [可选] 去模糊预处理                          └─ [可选] VFR 时间码
                └─ [可选] 人脸检测+增强

📧 问题反馈与技术支持: 请在项目仓库提交 Issue。