efficient-hr · 线 A

Efficient VSR Benchmark

UDM10 ×4(318×180 → 1272×720,10 段 × 32 帧)上,高效生成式视频超分方法的画面效果、质量指标和效率对比。所有方法都用统一的 wrapper 跑:输出无损 PNG,严格 4×,逐帧和 GT 对齐(shift 0)。

要点

效果对比

拖动画面上的分割线对比两个方法;视频模式下两路同步播放;放大网格用来对比同一位置的细节。

放大网格:点击参考图选择位置(帧与 clip 同上方)

GT 参考图,点击选择放大位置

保真 vs 感知

横轴 PSNR(保真,越右越好),纵轴 MUSIQ(无参考感知质量,越上越"锐")。虚线是 GT 自身的 MUSIQ。

指标表

点列名排序。每列最好的值加粗(只在完整跑完的方法里比,不含 GT)。↑ 越大越好,↓ 越小越好。

效率

UDM10 上单个 clip(32 帧,输出 1272×720)的推理时间,单张 H200,bf16。

⚠️ 初步数字,不能当速度结论: 720p × 32 帧太短,固定开销占比大;有的方法测前做了预热,有的是冷启动(见"预热"列);另外从约 20:10 UTC 起,这台机器的 GPU 和其他用户的任务共享。正式测速会单独做分辨率扫描(720p → 5872²),在独占 GPU 上跑。

高分辨率的初步发现(5872² 全景单面)

  • FlashVSR-tiny:1468² 的面(输出 5872²)整面跑会 OOM。KV cache 在 kv_ratio=3、5888² 下常驻约 200 GB,和帧数无关,单卡 141 GB 也放不下。必须做空间切块:768² 输入 tile × 33 帧 = 26.4 s、峰值 81.9 GB(这次测量时 GPU 被共享)。
  • InfVSR:DiT 不切块;5872² 下每个 12 帧 chunk 约 404K token,只是上一个 chunk 的 cache 就约 75 GB,同样需要切块。
  • SoL-Refiner:输出 1280×768 时峰值就有 75.8 GB;在这么小的 token 规模下 SoL-Engine 没有加速。

方法

口径说明

指标

  • PSNR / SSIM:BT.601 Y 通道(16–235),不裁边,99 dB 封顶,和 BasicSR 实现一致。
  • LPIPS:AlexNet v0.1;DISTS、MUSIQ(KonIQ)、CLIP-IQA(基础版)、MANIQA(KonIQ)都用 pyiqa,无参考指标取 32 帧平均。
  • DOVER:完整 DOVER.pth,官方 [0,1] 归一化;technical 分支的采样位置用 seed 0 固定,所有方法相同。
  • E*warp (GT flow):光流和遮挡 mask 都用 GT 计算(RAFT-things,迭代 20 次),所有方法在同一批像素上比较,×1e-3。
  • tLPIPS:TecoGAN 定义,mean |LPIPS(Ot,Ot+1) − LPIPS(Gt,Gt+1)| ×100。它衡量的是帧间变化幅度和 GT 是否一致,不是稳定性本身。

运行

  • LQ 不满足模型的尺寸或帧数要求时,先在右下 reflect pad,时间上复制末帧,跑完再裁回;不做中心裁剪,不丢帧。
  • 各方法都用官方默认参数(color-fix、稀疏比例、窗口大小等),seed 0,bf16。ReCaVSR (wavelet) 是额外加的变体。
  • SwiftVR 本身是同尺寸复原模型,按上游做法先 bilinear ×4。SoL-Refiner 的路径是:LQ pad 到 320×192 → Lanczos 2× → 2× latent upsampler → 1 步 DiT。
  • 测试数据是 UDM10(SparkVSR 版本),LQ 带真实退化。