跳转至

Stream-DiffVSR: Low-Latency Streamable Video Super-Resolution via Auto-Regressive Diffusion

会议: ECCV2026
论文: ECCV 原文
PDF: 论文全文
项目: Stream-DiffVSR
领域: 视频生成 / 视频超分辨率
关键词: 视频超分辨率、自回归扩散、轨迹蒸馏、光流对齐、时序一致性

一句话总结

Stream-DiffVSR 用四步扩散去噪、光流对齐的历史输出引导和时序解码,逐帧恢复高清视频,在不读取未来帧的条件下取得 REDS4 LPIPS 0.099 与 RTX 4090 上 720p 首帧延迟 0.328 秒,但尚非通常意义的实时高清视频处理。

研究背景与动机

视频超分辨率要从低分辨率输入恢复高分辨率画面,难点不只是把单帧变清晰,还要避免细节在相邻帧之间跳动。 CNN 和 Transformer 方法可以较快地重建图像,但逐像素保真与感知细节并不总是一致:较高 PSNR 不意味着纹理一定更自然。 扩散模型的生成先验能补充逼真细节,然而 StableVSR、MGLD-VSR 等方法通常需要大量去噪步骤,而且会使用双向时序信息。 这使它们面临两种不同的等待:计算一个结果本身很慢,以及为了产生第一个结果必须先处理后续帧。

在直播、视频会议或交互式渲染中,平均每帧耗时不能单独描述体验。 即便一个分块模型的平均吞吐量不错,接收端也可能需要等整块数据到齐才能显示第一帧。 论文因此把每帧运行时间与首帧时间 TTFF 分开报告,并要求当前输出只能依赖当前输入与过去状态。 不过,完全逐帧独立地调用一个快速图像扩散模型也不够:上一帧生成的纹理没有进入下一帧,时间闪烁依然存在。

本文从已有 Stable Diffusion ×4 Upscaler 出发,将“减少去噪计算”和“让过去的信息进入当前重建”分别处理。 少步模型负责保留图像生成先验,历史高质量输出则先经过运动对齐,再进入潜空间去噪和 RGB 解码两个阶段。 这样既不用等待未来帧,也不把时序一致性完全寄托在某一个表示层上。 核心 idea:通过完整四步轨迹蒸馏压缩单帧计算,再把光流对齐的上一帧输出同时作为去噪条件和解码条件,以严格因果的数据流维持视频细节的连续性。

方法详解

整体框架

输入是一条低质量视频流,输出是逐帧产生的 ×4 超分辨率视频;模型不是从文本生成新视频,而是在输入画面约束下恢复细节。 当前时刻保留上一帧低质量输入和上一帧已经生成的高质量输出,后者承载历史纹理与累积时序信息。 图 4 使用相邻低质量帧的上采样版本估计运动,再把上一帧高质量结果变换到当前帧坐标系。 对齐后的历史 RGB 帧供自回归时序引导使用,其编码特征也供自回归时序解码器使用。 去噪器完成四步 DDIM 更新后,时序解码器生成当前 RGB 输出,并将结果留给下一时刻。

下图中虚线表示训练产生的参数依赖,实线表示逐帧推理的数据流;历史反馈不代表同一帧内部反复生成视频。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
        Train["训练 LQ/HQ 对"] -.-> Rollout["四步轨迹蒸馏"]
        Rollout -.->|冻结去噪器参数| ARTG["自回归时序引导<br/>ARTG"]
        Current["当前 LQ 帧<br/>与初始潜变量"] --> ARTG
        History["上一帧 HQ 输出<br/>与相邻 LQ 帧"] --> Warp["光流对齐<br/>历史 RGB 与编码特征"]
        Warp --> ARTG
        ARTG -->|四步去噪后的潜变量| Decoder["自回归时序解码<br/>TPM"]
        Warp --> Decoder
        Decoder --> Output["当前 HQ 输出"]
        Output -->|下一时刻| History

关键设计

1. 四步轨迹蒸馏:让训练直接面对实际使用的短去噪链

基础模型是原本采用 50 步推理的 Stable Diffusion ×4 Upscaler,论文不通过更换 U-Net 架构实现加速。 它在每次训练迭代中运行完整的四步去噪过程,得到最终的干净潜变量,再对这个终点施加监督。 这与随机选一个中间扩散时间步进行训练不同:被优化的对象是部署时真正会经历的短轨迹及其最终输出。 这里的 rollout 首先指扩散去噪链的展开,不应仅凭名称将其等同于完整长视频上的自生成历史训练。 主文把更完整算法放在附录,因此没有充分依据补写跨视频时刻的梯度截断方式或历史采样比例。

终点监督同时考虑潜变量重建、解码后的 LPIPS 感知差异以及对抗损失。 潜变量项约束结果接近目标表示,感知项防止仅匹配数值却丢失视觉结构,对抗项鼓励生成自然细节。 这些损失并不是额外的推理步骤;训练结束后,线上只执行四步 DDIM 去噪和一次解码。 因此,加速的关键是让一个短轨迹本身学会恢复,而不是在运行时仍调用完整的 50 步模型。 表 11 进一步表明,对该系统增加采样步数不保证所有感知或时序指标单调改善。

2. 自回归时序引导:让上一帧细节参与当前潜变量的恢复

上一帧生成的高质量结果不能直接当成当前帧的静态模板,因为相机或物体可能已经移动。 ARTG 先借助相邻输入估计的光流对齐历史输出,再把对齐后的 RGB 内容作为 U-Net 去噪过程的时序条件。 在四次更新中,去噪器都能利用已经恢复的细节,而不是对当前帧重新进行一次完全独立的随机恢复。 这使同一物体的纹理具有跨帧延续的来源,同时仍由当前低质量输入约束本帧应出现的结构。

这个机制的因果性来自信息方向:当前帧只接收过去已经完成的输出,不调用未来高质量帧。 直接状态只需要上一帧,但上一帧本身受更早输出影响,因此历史信息可以递归传播。 与此同时,递归传播也意味着历史错误可能进入后续恢复,光流错位并不会因为使用扩散模型而自动消失。 论文在 ARTG 训练时冻结去噪 U-Net 和解码器,使用相邻 LQ/HQ 帧对训练新增的时序条件能力。 其损失仍结合潜变量重建、LPIPS 和对抗项,目标是加入时间信息而不破坏已学到的空间恢复能力。

3. 自回归时序解码:在恢复 RGB 细节时再次约束时间连续性

潜空间去噪已经参考历史,并不代表解码后的细纹理一定稳定;基础上采样器的潜表示仍只有目标空间分辨率的四分之一。 放大并映射到 RGB 的过程中,局部特征的差异可能再次表现为边缘抖动或纹理变化。 因此,论文把对齐后的上一帧送进冻结编码器,取其特征,与当前干净潜变量一起用于解码。 时序处理模块 TPM 插入解码器的空间卷积之后,在多个尺度融合当前特征与历史特征,而不是只在最终 RGB 上做平滑。

图 2 展示的 TPM 包含平均池化、拼接、一维卷积、激活、时序处理与特征拆分,随后进行带门控的融合和插值上采样。 其中当前分支乘以 \(1-\alpha\),历史分支乘以 \(\alpha\);门控控制模型依赖上一帧的程度。 用处理后的同尺度特征表示,图中的加权融合可写为:

\[ f_{\mathrm{mix}}=(1-\alpha)f_{\mathrm{current}}+\alpha f_{\mathrm{previous}}^{\mathrm{warp}}. \]

这里是对图 2 融合操作的记号化说明,不是补写损坏的原文损失公式,也不表示简单地混合两张 RGB 图像。 主文说明门控参数可学习,但没有充分说明它是否按像素变化,不能将其直接解释为显式遮挡置信度。 TPM 的监督除重建、感知与对抗项外,还比较预测帧对和真实帧对的光流,以约束运动关系。 因此 ARTG 决定去噪时怎样利用过去,TPM 则约束这些潜变量转成像素时怎样保持一致,二者针对不同阶段。

一个完整示例

考虑连续输入的 ×4 超分辨率视频,其中镜头向右移动,同一处纹理在相邻帧中的位置随之变化。 第一帧尚无正常的历史高质量输出;作者将早期帧质量下降列为冷启动问题,但当前缓存没有给出初始化伪代码。 因此不能假定首帧一定复制输入、使用零状态或调用另一种恢复网络。 从已经得到第一帧 HQ 结果之后开始,第二帧到来时,用两帧 LQ 输入估计运动并对齐第一帧 HQ。 对齐历史引导第二帧的四步去噪,其编码特征同时参与 TPM 解码,最后得到第二帧 HQ。 第三帧沿用同一过程,但历史被替换成模型刚生成的第二帧,而不是测试集真实的第二帧 HQ。 这一差别解释了为什么在线推理既能够持续运行,又可能累积对齐错误或生成错误。 没有未来帧等待也不等于没有计算延迟:720p 在 RTX 4090 上仍需约 0.328 秒完成一帧。

损失函数 / 训练策略

按图 3,训练依次涉及去噪 U-Net 蒸馏、解码器 TPM 训练、冻结前两部分后训练 ARTG。 TPM 使用真实帧学习时序融合,其余权重保持固定;ARTG 再学习如何利用对齐的历史输出。 第 3.5 节也用“并行”描述 TPM 训练,至少可以确定这几个目标是分离优化,而非所有参数从头联合更新。 TPM 的像素重建项明确采用 SmoothL1,另外使用光流差异、LPIPS 与对抗监督。 U-Net 与 ARTG 的重建监督主要作用于最终潜变量,并通过解码输出计算感知和对抗项。 当前缓存的公式有明显抽取损坏,损失权重、精确范数写法及完整实现超参数不在本笔记中猜补。 图 3 图注把 TPM 和 ARTG 的目标写为式 (3) 与式 (6),但正文中式 (3) 属于 ARTG、式 (6) 属于 TPM;本笔记按正文模块描述理解其归属。 表 10 的联合训练结果为 LPIPS 0.124、tLP 17.816,分阶段训练为 0.099、4.265,支持解耦训练在该实验中的作用。

实验关键数据

主实验

下表选取原文表 2(第 10 页)的 REDS4 双三次下采样质量结果,以及表 3(第 11 页)同方法在 RTX 4090 上的效率结果。 输出为 720p,TTFF 按 100 帧序列测量;PSNR 越高越好,LPIPS、tLP、tOF 和时间越低越好。 tLP 是时间感知差异指标,tOF 是时间光流差异指标;表 2 分别以 100 倍和 10 倍缩放值报告,下面原样保留,不与未缩放指标混用。 主文未提供完整评测公式,因此这里不把它们进一步猜写成某一种具体实现。

方法 时序访问 PSNR LPIPS tLP tOF 每帧时间(秒) TTFF(秒)
BasicVSR++ 双向 / 离线 32.386 0.132 9.017 2.490 0.098 9.8
StableVSR 双向 / 离线 27.928 0.102 5.755 2.742 46.2 4620
MGLD-VSR 双向 / 离线 26.53 0.151 18.139 5.910 43.6 218
TMP 单向 / 在线 30.672 0.194 10.424 2.480 0.041 0.041
RealViformer 单向 / 在线 26.763 0.129 11.261 4.037 0.099 9.9
Stream-DiffVSR 单向 / 在线 27.256 0.099 4.265 3.620 0.328 0.328

与 TMP 相比,LPIPS 从 0.194 降到 0.099,绝对降低 0.095,但 PSNR 和 tOF 更差,而且每帧计算更慢。 与 MGLD-VSR 相比,43.6/0.328 约为 132.9 倍每帧加速;这与 TTFF 的改善是不同量,不应混为一个加速指标。 表 4、5(第 11–12 页)在 Vimeo-90K-T 上报告 LPIPS 0.056、tLP 4.307、tOF 2.689 和 0.041 秒每帧,输出尺寸为 448×256,并非 720p。 表 6(第 12 页)的混合退化结果来自按 DOVE 退化管线在 REDS 上额外微调:本文 LPIPS 0.220,MGLD-VSR 为 0.246,不能把这项结果称为未经适配的泛化。

消融实验

第一张消融表取自原文表 9(第 13 页),实验范围为 REDS4;只保留能看清时序模块作用的指标。 “独立逐帧”同时禁用 ARTG 与 TPM;“TPM 不对齐”保留 TPM,但不对其历史输入进行光流对齐。

配置 LPIPS DISTS tLP tOF TTFF(秒)
独立逐帧 0.099 0.071 7.261 4.201 0.208
去掉 ARTG 0.117 0.070 6.132 3.910 0.235
去掉 TPM 0.116 0.078 12.847 4.639 0.300
TPM 不对齐 0.122 0.082 12.846 5.689 0.320
完整模型 0.099 0.062 4.265 3.620 0.328

第二张消融表取自原文表 11(第 14 页),比较 Stream-DiffVSR 内部的 DDIM 步数,而不是直接比较四步本文与另一套 50 步基线系统。 第 4.3 节称该比较保持模型权重固定;图 7 同时另有微调四步版本的可视化标签,本表不据此额外推导训练配置。

去噪步数 LPIPS DISTS tLP tOF 每帧时间(秒)
50 0.102 0.068 18.798 3.826 3.460
10 0.122 0.072 9.990 3.625 0.718
1 0.138 0.076 9.899 3.882 0.106
4 0.099 0.062 4.265 3.620 0.328

关键发现

  • 单帧 LPIPS 相同也可能有不同的视频稳定性:独立逐帧与完整模型同为 0.099,但 tLP 从 7.261 降至 4.265,说明仅看单帧感知质量会漏掉收益。
  • 去掉 TPM 后 tLP 为 12.847,完整模型为 4.265;历史特征不对齐时也达到 12.846,说明解码端时序融合需要正确的运动对应。
  • 四步比一步更慢,但 LPIPS 从 0.138 改善为 0.099;比 50 步更快且表中时序指标更好,支持在该模型内选择短而匹配训练的采样轨迹。
  • 数据一致性提醒:第 9 页正文写 REDS4 tLP/tOF 为 4.198/3.638,而表 2、9、10、11 为 4.265/3.620,本笔记采用表值并保留冲突说明。
  • 效率一致性提醒:表 1 为 3.05 FPS,表 9 完整模型为 3.408 FPS,却都报告 0.328 秒 TTFF;后者与每帧时间的倒数不一致,不能将两组 FPS 合并为统一测量。

亮点与洞察

  • 首帧延迟是独立的设计目标。严格逐帧因果推理消除了等待后续帧的结构性开销,但仍须单独优化每帧计算。
  • 时序信息在两个表示层发挥作用。潜空间条件约束生成内容,解码端融合约束高分辨率细节的落地,模块消融比单纯宣称“时序感知”更有解释力。
  • 完整短轨迹训练让监督位置接近实际输出。可迁移的启发是优化部署轨迹的结果,而不是默认更多采样步骤必然带来更好的视频。

局限与展望

  • 作者承认模型仍比 CNN、Transformer 方法更重,快速运动下光流可能引入伪影,最初几帧还有冷启动质量问题。
  • 720p 的 0.328 秒每帧约对应 3.05 FPS,不能据此宣称满足 25/30 FPS 的实时直播或 AR/VR 显示预算;“低延迟”主要是相对既有扩散方法而言。
  • 严格因果也意味着无法借助未来观测纠正当前遮挡。遮挡置信度、历史状态重置和长序列错误累积评测是读者提出的后续方向,并非本文已验证的模块。
  • 真实退化实验经过额外微调,VideoLQ 又没有配对真值,因而无参考质量改善不能充分证明恢复内容忠实于原场景。
  • 缓存只有主文与参考文献,没有附录算法和完整实验设置;部分公式损坏、图注式号及指标存在冲突,精确复现仍需回查原始补充材料。

相关工作与启发

  • vs StableVSR / MGLD-VSR:二者代表较慢、依赖未来信息的扩散 VSR;本文改变了去噪预算与时序访问方式,但不能据 LPIPS 一项宣称所有保真和运动指标都更好。
  • vs TMP:TMP 是直接的在线恢复对照,REDS4 上更快且 PSNR 更高;本文更强调生成式感知质量和较低 tLP,适用取舍不同。
  • vs FlashVSR:分块流式与逐帧因果不能只用平均耗时比较;分块缓冲影响 TTFF,显存及速度还必须在相同 GPU 条件下比较。
  • 联系 CausVid / Self Forcing:它们说明少步自回归扩散和训练时历史分布的重要性;本文针对受 LQ 视频约束的恢复任务,不能直接套用开放式视频生成的训练细节。

评分

  • 新颖性: 4/5。将短轨迹蒸馏与潜空间、解码端双重因果条件结合,贡献主要在系统设计而非全新扩散理论。
  • 实验充分度: 4/5。覆盖质量、首帧延迟、时序模块和训练策略,但数值冲突及长序列误差边界仍需进一步澄清。
  • 写作质量: 3/5。动机与模块作用清楚,图注式号和多处报告不一致增加了核验负担。
  • 价值: 4/5。为低等待的生成式视频恢复提供了可借鉴方案,但算力开销与实时部署要求仍有明显距离。