Conference

Streaming of rendered content with adaptive frame rate and resolution

Yaru Liu, Joseph G. March, Rafał K. Mantiuk

University of Cambridge

一句话总结

针对云游戏/串流渲染场景,训练一个轻量神经网络,根据画面内容、运动速度和可用带宽,实时预测”帧率 × 分辨率”的最优组合,在带宽受限下既提升感知质量、又大幅降低服务器渲染开销。

研究背景

  • 领域现状:把画面在服务器/PC 上渲染好再串流到算力薄弱的移动端(手机、平板、一体式 AR/VR 头显),是让海量设备用上高质量图形的可行路径。现有方案基本沿用视频编解码器(H.264/H.265/AV1),在固定帧率(通常 60 fps)下只调分辨率来适配带宽。
  • 核心痛点:固定帧率无法做”帧率与分辨率之间的权衡”。快速运动的画面即便牺牲分辨率也应优先提高帧率,低速画面则应优先保分辨率;固定帧率两头都够不着,导致带宽受限时质量次优。已有的自适应渲染工作(如按运动速度和眼动选帧率/分辨率、变率着色 VRS)都假设瓶颈是 GPU 的每秒渲染像素数,没有把视频串流的带宽、编解码器等真实约束纳入考虑。
  • 本文 idea:利用人眼时空感知的极限,联合考虑内容、运动、带宽三要素,用神经网络预测最佳”帧率 + 分辨率”组合。方案与编解码器无关(codec-agnostic),几乎不改动现有渲染管线即可接入。

方法

整体框架:在改造过的 Nvidia Falcor 引擎上搭建”渲染—HEVC 实时编码—解码—显示”的原型系统。每帧从渲染结果里随机取一个 128×128 的图块(patch),用 G-buffer 的运动矢量算出最近 500 ms 的平均运动速度,把图块、速度、当前带宽一起喂给网络,预测出维持高感知质量、同时最小化渲染成本的分辨率—帧率组合。

flowchart LR
  A["渲染帧 + 运动矢量"] --> B["随机取 128x128 图块 / 运动平均"]
  B --> C["Patch 编码器 (6 层 CNN)"]
  C --> D["拼接速度 v 与带宽 B"]
  D --> E["预测 MLP 分类器"]
  E --> F["预测分辨率 r / 帧率 f"]
  F --> G["视频编码与串流"]

关键设计:

  1. 数据集与质量标签。用 15 个场景渲染 3 秒短片,覆盖多种内容、运动速度、分辨率(360p 到 1080p)与帧率(30 到 120 Hz),并在 2/3/4 Mbps 三档码率下用 NVENC 实时编码,共 69,611 段视频。由于片段数量太大无法做主观实验,作者扩展了感知视频质量度量 ColorVideoVDP,使其能比较帧率不同的测试视频与参考视频(做法是把测试视频按参考的 166 Hz 复帧重采样,准确模拟低帧率观感)。参考视频用 1080p、166 Hz、近乎无损的 CRF=5 生成;选 166 Hz 是为了让任何测试帧率都无法通过整数倍时间下采样恰好对齐参考,避免不公平优势。

  2. 用”最省算力”的标签定义最优组合。观察到质量曲线在峰值附近很平,稍微改动分辨率/帧率对质量影响不大。于是标签不取绝对最高质量,而是在允许质量下降不超过 0.25 JOD(Just-Objectionable-Difference)的前提下,选渲染像素最少的组合:

\[f^*, r^* = \arg\min_{f,r} f r^2, \quad \text{s.t.} \quad Q^* - Q(f,r) \le 0.25\]

其中 \(f r^2\) 作为每秒渲染像素数(GPU 负载的朴素代理)。仅允许 0.25 JOD 的质量下降,平均就能少渲染约 53% 的像素。

  1. 预测网络 FRRP。输入复杂(图块、速度、带宽)、输出简单(帧率、分辨率),因此用”卷积 + 全连接”的紧凑网络:patch 编码器是 6 层 CNN,把 128×128 图块编成 32 维隐向量,再与速度、带宽拼接送入分类器,输出 5 档分辨率、10 档帧率的离散预测。模型仅 293,103 个参数,推理约 2 ms,可在独立线程跨多帧运行。运动速度先在整帧上平均、再取 500 ms 滑动平均,并从 NDC 换算成度/秒以摆脱物理显示设备的影响;因运动分布严重偏向低速,对运动输入做对数变换,并以 80°/s 为上界(超过此速度人眼平滑追踪 SPEM 已无法跟随)。

  2. 动态切换与稳定性。频繁改分辨率会触发 I 帧、增加带宽开销,频繁改帧率也会被察觉。因此预测虽每帧运行,但用 Viterbi 算法在带权转移图上做平滑,实际每 2 秒才更新一次帧率/分辨率,并把 HEVC 的 GOP 设为 2 秒以对齐分辨率切换处的 I 帧。转移图里偏离当前状态超过 30 Hz 的帧率跳变权重为 0,禁止突变。

实验结果

主实验是”系统验证”用户研究(Experiment 2):让 10 名观察者在 2/4/8 Mbps 下,把本方法与两种基线做成对偏好比较——固定帧率+分辨率基线(720p@60Hz 或 1080p@60Hz),以及只自适应分辨率、帧率固定 60 Hz 的基线。下表为”选择本方法的概率”(>0.5 即偏好本方法,均达到统计显著):

对比基线 慢速运动 中速运动 快速运动
固定帧率+分辨率 (2 Mbps) 0.63 0.68 0.67
固定帧率+分辨率 (8 Mbps) 0.77 0.81 0.85
仅分辨率自适应 (2 Mbps) 0.82 0.92 0.86
仅分辨率自适应 (8 Mbps) 0.60 0.70 0.74

结果表明本方法在几乎所有码率、各运动速度下都被更偏好;相较固定基线在 2 Mbps 以上提升最明显,相较”仅分辨率自适应”基线则在 4 Mbps 以下提升最明显(低码率下整体失真更大,判断更难形成)。

另外两项支撑实验:Experiment 1 验证了 0.25 JOD 的质量下降几乎不可察——参考(最高质量)被选中的概率仅 0.55,二项检验未能拒绝”随机猜测”的原假设。消融实验显示,去掉运动或图块信息都会掉点:运动对帧率预测影响更大,图块对分辨率预测影响更大;把图块从 32 增大到 128 显著降低误差。完整模型的帧率误差 22%、分辨率误差 17%,且混淆矩阵表明大多数误判只差一档,基本不会造成可感知退化。

亮点与局限

  • 亮点:
    • 把”帧率与分辨率联合自适应”引入串流渲染,与编解码器无关、几乎不改渲染管线即可部署,工程落地性强。
    • 允许微小(0.25 JOD)质量下降即可平均节省约 53% 的每秒渲染像素,对降低 GPU 功耗、提升单卡 vGPU 并发很有价值。
    • 用扩展后的 ColorVideoVDP 感知度量自动标注 6.9 万段视频,绕开了大规模主观实验的成本;网络仅 29 万参数、2 ms 推理,真正实时。
    • 两项用户研究同时验证了标签阈值的合理性与系统整体质量优势。
  • 局限:
    • 对静态 UI 叠层(小地图、状态栏)不友好——方法为动态内容优化,可能降低 UI 清晰度;理想做法是 UI 单独渲染/串流,或改为控制着色率而非分辨率。
    • 不处理网络时延,而时延对体验质量影响很大。
    • 数据集以室内、无透明/粒子/动态光照/非真实感着色的场景为主;当屏幕运动无法被 G-buffer 运动矢量捕捉时(动态光照、透明粒子等),预测器性能会下降。
    • 原型未实现真正的网络传输,仅用限制编码器码率来模拟带宽。

延伸思考

这项工作把 Mantiuk 组一脉相承的”感知驱动自适应渲染”(Denes 2020 的运动质量模型、Jindal 2021 的 VRS 自适应着色)从”GPU 瓶颈”扩展到了”带宽瓶颈”的串流场景,核心增量是把视频编码码率真正纳入决策。值得追问的方向:一是把”控制分辨率”替换为”控制着色率”(VRS/纹理空间着色),既能解决 UI 退化问题,又能与 split-rendering 路线结合;二是把网络时延与抖动纳入预测目标,形成端到端的体验质量优化;三是扩充数据集到透明、粒子、动态光照等运动矢量失效的内容,并考察 ColorVideoVDP 重训后的收益。对做实时渲染/云游戏管线的人来说,”帧率-分辨率联合调度 + 感知度量自动标注”是一个可直接借鉴的低成本增益点。