768p → 2× 超分方法对比

SwiftVR 5B 生成式 CDA-VSR 3.11M 判别式 各含官方配置 + 自研优化 20 条标准片源 × 4 组 = 80 次运行 RTX 5090 32G

统一任务:输入 768p,输出 2× 放大。20 条片源覆盖 5 种宽高比、每个比例 4 个不同的人、73–362 帧不等。 全部 80 次运行零失败。四组产出同一目标分辨率,可直接并排对比。

SwiftVR 优化版
306.5
20 条总耗时 · 最快
CDA-VSR 优化版
443.3
慢 1.45× · 但吃 ×4 劣势
显存差距
4.6×
22.11 vs 4.85 GiB 峰值
参数量差距
1600×
5B vs 3.11M

四组总览

配置20 条总耗时自身优化幅度显存峰值上限显存中位相对最快
SwiftVR 官方892.9 s基线 29.68 GiB29.002.91× 慢
SwiftVR 优化306.5 s2.91× 22.11 GiB19.72最快
CDA-VSR 官方1015.7 s基线 5.16 GiB3.943.31× 慢
CDA-VSR 优化443.3 s2.29× 4.85 GiB3.701.45× 慢
这不是同一量级的对比。SwiftVR 是 5B 参数的生成式一步 DiT,CDA-VSR 是 3.11M 参数的判别式在线 VSR, 小 1600 倍。而且 CDA-VSR 是在架构劣势下比的 —— 它发布的重建头只有 ×4,为了产出 2× 必须先算到 3072p(16:9 时 5376×3072,16.5 Mpx)再降采样,多出来的算力全部计入它的耗时。

逐条耗时

SwiftVR 官方 SwiftVR 优化 CDA-VSR 官方 CDA-VSR 优化

横轴按帧数排序。片子越长四条线越收敛 —— 两边的固定 warmup 开销都被摊薄了。

显存

SwiftVR 官方 SwiftVR 优化 CDA-VSR 官方 CDA-VSR 优化
显存是这次对比里差距最大的一项:SwiftVR 优化版仍需 22.11 GiB,CDA-VSR 只要 4.85 GiB。 SwiftVR 在 32G 卡上只能单路常驻;CDA-VSR 一张卡可以并行跑 6 路。

视频对比

五条片源,每条给出输入(bicubic 2× 放到同一画布,仅作参照)和四组输出。四组产出分辨率完全相同。 网页版统一截取前 5 秒并重新编码,细节有损失;判画质请用机器上的原始输出。

客观代理指标

2× 任务没有 ground truth,所以算不了 PSNR/SSIM。下面两个是代理量, 只能横向比同一条片子的不同配置,不能当作画质分数 —— 锐度既会因真实细节上升、也会因振铃和过锐上升;闪烁里混着真实运动。

SwiftVR 优化 CDA-VSR 优化
锐度差距很大且系统性存在(20 条全部如此)。这符合两者的性质:SwiftVR 是生成式的,会「补」出 训练分布里的细节;CDA-VSR 是判别式的,只从压缩域先验和历史帧里「recover」,风格保守得多。 锐度高不等于更正确 —— 生成的细节可能并不存在于原始内容中。这一点必须靠人眼在上面的视频里判断。

我做了哪些优化

SwiftVR — 2.91×,显存 −7.6 GiB

CDA-VSR — 2.29×

优化后 CDA-VSR 只有 52% 的时间在 GPU 上(230.2s / 443.3s),其余是 IO 和编码 —— 它的瓶颈已经不在模型,而在压缩域先验的数据量(20 条片子的先验共 18 GB)。这是它的架构代价。

口径与已知问题

测试机 viggle_new_5090(8×RTX 5090 32G,驱动 580.159.03)· SwiftVR:conda swiftvr, torch 2.10.0+cu130,官方 H-oliday/SwiftVR 权重 bf16 未量化 · CDA-VSR:conda cdavsr, torch 2.10.0+cu128,mmcv 2.2.0 源码编译(sm_120),官方 best.pth,权重 0 missing / 0 unexpected · 片源为 MiniMax-H3 历史输出,20 条覆盖 5 种宽高比 · 2026-08-21