SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023

实时通信(RTC)系统在传输过程中往往会丢失一些帧以应对拥塞的情况。虽然帧丢失有助于提高系统的低延迟性能,但它可能会造成丢帧率突然上升和显著的 QoE (Quality of Experenece)下降。在这篇文章中,我们提出了一个新的 RTC 系统,SAFR (System of Adaptive Frame Rate 自适应帧率系统), 联合优化 QoE 性能的所有关键指标。首先,我们设计了一种帧率控制器(FRC, Frame Rate Controller) ,用于做出合理的帧率变更决策。在此基础上,提出了一种基于强化学习的带宽预测模块——目标速率控制器(TRC, Target Rate Controller) ,结合 FRC 的特性提高带宽利用率。最后,在接收端设计了基于 AI 的插帧模块,以减小渲染端帧率的降低。与传统的 RTC 系统相比,SAFR 实现了 16.3% -26.7% 的帧延迟降低,61.8% -69.9% 的丢帧率降低,6.4% -11.3% 的 QoE 改进,同时节省了多达 25.3% 的带宽。特别是,SAFR 在更糟糕的网络条件下显示出更大的优势。补充材料[10]进一步讨论了 FRC 超参数的设置及伪代码。我们的测试 demo 放置于 https://github.com/xiaosayin/safr

论文题目: “SAFR: A Real-Time Communication System with Adaptive Frame Rate”
作者: WenPei Yin, BingCong Lu, Yan Zhao, Jun Xu, Li Song.
发表会议: Mobisys workshop NetAISys 2023
测试 Demo 链接:https://github.com/xiaosayin/safr
内容整理: 尹文沛

简介

流媒体直播服务近年来发展迅猛,随之而来的是实时通信(RTC)技术和协议的出现。QoE 是系统评估的一个综合性关键指标,它与 RTC 系统的帧延迟、丢帧率和帧质量密切相关。为了保障低延迟性能,当网络中发生拥塞时,RTC 系统往往会在传输过程中丢失一些帧。然而,这种草率的帧丢失策略可能导致丢帧率突然增加、明显的视频不连续性和不可接受的 QoE 降低。此外,[14]在解码器队列中自适应地丢弃帧,以减少 RTC 系统中的队列延迟,代价是丢帧率的增大和带宽浪费。

针对 QoE 性能的三个关键指标,我们提出了一个新的 RTC 系统,SAFR (自适应帧速率系统, SAFR: System of Adaptive Frame Rate) ,以便在直播场景中提供更好的用户体验。首先,我们设计了一个帧率控制器(FRC)来自适应地调整发送帧速率。一方面,这种帧率改变策略有助于降低帧延迟;。另一方面,在总带宽保持不变的情况下,要传输的帧数越少意味着每帧可以获得更高的质量。

许多带宽预测算法已经被提出用于 RTC 系统了。GCC[1]是最具代表性的启发式算法。基于学习的算法主要利用强化学习(RL)网络,其中 HRCC [13]和 CLCC [5]是典型的离线训练方法,OnRL [19]和 Loki [18] 都采用在线训练策略。但是,这些方法很少考虑帧丢失的影响,可能会导致带宽利用率不高。因此,我们进一步提出了一种基于 RL 的目标速率控制器(TRC)来实时校准原始带宽预测,并结合 FRC 特性提高带宽利用率。

最后,在 SAFR 的接收端引入了一个基于 RIFE [3]的视频插帧模块(VFI, Video Frame Interpolation) ,以弥补由于 FRC 引起的帧率下降。

总的来说,本文提出了一个新的 RTC 框架 —— SAFR。通过以下精心设计的模组,SAFR 可联合优化 QoE 的三个主要指标,并提供更佳的流媒体直播用户体验,特别是在恶劣的网络环境下:

  1. FRC: 帧率控制器用于自适应调整发送帧率,从而减少帧延迟,提高传输帧质量。
  2. TRC: 提出了一种基于 RL 的目标速率控制器,根据 FRC 的决策校准带宽预测来改善带宽利用率。
  3. VFI: 在接收端部署了基于 AI 的视频插帧模块,降低了丢帧率。

系统概述

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023
图1 系统概览

我们的 SAFR 是在 AlpharTC 的基础上实现的。图 1 展示了整个系统的设计。

在发送端,视频编码器将根据 FRC 分配的帧率级别对捕获的帧进行编码,然后将输出流交给 Pacer。Pacer 根据 TRC 预测的瞬时目标码率,将帧分成若干 RTP 分组,逐步发送给接收端。由于视频编码器要准确地以目标码率产生视频流,因此编码过程不仅受到 FRC 的影响,还受到 TRC 的影响。为减轻接收端的计算负担,TRC 被放置在 SAFR 的发送端。

在接收端,在接收到 RTP 流后,接收端缓冲区将其交给视频解码器,同时收集相应的包级和帧级信息。所有这些信息都将存储在接收者信息缓冲区中,并在每个时间间隔 τ (τ = 500ms,与[1]中的默认设置相同)反馈给发送者,以协助 FRC 和 TRC 进行帧速率调整和带宽预测。

在 FRC 和 TRC 的帮助下,发送端的编码和发送策略可以根据最近  时间段内的反馈周期性地改变。在接收端部署与渲染器耦合的 VFI 模块,以减轻帧率降低和降低丢帧率。

系统设计

帧率控制器

如前所述,降低发送帧率有助于 QoE 的改进。然而,过于激进的帧率降低会给 VFI 模块带来过大的负担,并可能进一步导致帧率实时恢复的失败。因此,我们在 SAFR 的发送端引入一个帧率控制器(FRC) ,以自适应地进行合理的帧率调整。

为了在传输过程中提供更多的灵活性,时域可分层特性在 RTC 系统中得到了广泛的支持。利用分层时序结构,通过选择性地丢弃一个或多个时序增强层,就可以实现在可变的帧率水平上对帧序列进行编码。如图 2 所示,本文采用了一种常见的三层时间结构{L0,L1,L2}。在这种情况下,选择三个合理的帧率级别 {f0,f1,f2}。 表示丢弃 L2 层, f1表示只丢弃 L2 中以 L1 为参考的帧,而 f2 表示完整的 3 层结构。

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023
图2 帧率等级控制原理图

基于 RTC 系统内部的时域可分层性,FRC 被设计成一个有限状态机,通过该状态机,就可以在每个时间间隔内在支持的帧率级别之间动态切换发送帧率。

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023
SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023
图3 FRC 状态机
SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023

目标码率控制器

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023
图4 说明在基于 GCC 的带宽预测算法的指导下带宽利用不足(在 
f0 帧率的情况下)

如图 2 所示,视频编码器理想情况下以目标比特率(即瞬时可用带宽)产生视频流,这意味着用较少的帧进行编码,每帧的质量可以得到改善。然而,如图 4 所示,由 FRC 引起的帧率降低可能导致带宽使用不足,因为传统的基于 GCC 的带宽预测算法过于保守,当可用带宽突然增加时无法及时上调预测带宽。因此,提出了一种基于 RL 的目标速率控制器来校准基于 GCC 的带宽预测,从而提高带宽利用率。

QoE 性能直接关系到帧级信息,如帧质量、帧延迟和帧丢失。因此,TRC 不同于[1][13] ,其中仅考虑了包级信息,TRC 联合利用从传输层和应用层收集的包级和帧级信息,借助 RL 进行合理的带宽预测。

TRC 是基于最近策略优化(PPO)算法[11]建立的,其网络结构如图 5 所示。Actor 网络每 τ 产生动作 m,而 Critic 网络需要估计当前状态的值函数 V,指导 Actor 网络的更新。下面将详细讨论其状态空间、行为空间和奖励函数设计。

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023
图5 PPO 网络结构

1. 状态空间

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023

2. 动作空间

如前所述,使用保守的基于 GCC 的带宽预测算法,由 FRC 带来的帧率降低可能导致带宽使用不足。因此,agent 行为被定义为选择范围从 1 到 1.2 的校准因子 m (如[10]所述) ,使得当帧率水平降低时,GCC 预测的带宽可以立即增加。

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023

3. 奖励函数

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023

VFI 模块

作为一种高效的 VFI 模块,它可以以极高的精度进行实时推理,RIFE [3]被部署在 SAFR 的接收端,用于生成渲染缓冲区中导致帧序号不连续的缺失帧,从而减轻由帧率改变和帧丢失造成的影响。如前所述,FRC 和 TRC 可以提高传输帧的质量。由于插值帧是以高质量的帧为参考生成的,因此插值帧的质量也可以得到提升。

实验表明,RIFE 使用 RTX 3060 laptop GPU 插值一个1280×720 分辨率的帧不超过21ms,这比每帧渲染时间(30fps 视频流为33ms)要短。嵌入在 RTC 系统中的渲染缓冲区的大小通常是几百毫秒[18] ,因此插帧过程不会引入任何额外的延迟。VFI 模块只有在接收端检测到帧丢失(即接收帧帧序号的不连续)时才能工作。而且,在连续帧丢失的情况下,RIFE 只会插值一帧,以保证实时性。随着硬件设备和 VFI 算法的升级,这种局限性可以逐步消除。

实验

实验设置

视频数据集: 从 Xiph.org [16]中选择了一些分辨率为 1280×720 的视频,并剪辑到 90s 的长度进行训练和评估,其中训练集由 Ducks take off, Big buck bunny, Johnny 和 KristenAndSara 组成,评估集包括 FourPeople,Vidyo1,Vidyo3 和 Vidyo4。在训练和测试过程中,发送方和接收方的默认帧率都设置为 30fps。

网络 traces: 在 Mahimahi [7]的帮助下,我们模拟了总共 1000 个网络跟踪用于训练,其中一半是从 LTE traces[12]中选择的,并按照目标带宽范围缩放,另一半是在带宽([0.2,4] Mbps) ,丢包率([0,6]%)和队列大小([6,349]) ,带宽变化率([1,5] Hz)的限制下随机生成的。具体来说,在网络跟踪中,带宽每200 毫秒到 1 秒变化一次,而丢包率和队列大小在整个 trace 中保持不变。生成这样的跟踪是为了模拟下行链路(发送方到接收方)条件。对于上行(接收者到发送者)传输,我们使用 6Mbps 的恒定带宽来确保反馈的可靠性。

用同样的方法,我们得到了另一批用于测试的 trace。他们进一步分为三组,每组 100 人,根据他们的带宽。窄带宽([250Kbps ,1Mbps] )和严重抖动(其中每次带宽变化大于500Kbps )的 trace 被用来代表恶劣的网络条件。在这项工作中,通用商业服务[18]中常用的带宽被模拟为[250Kbps ,2Mbps] ,。为了反映 SAFR 的一般性能表现,我们采用了较宽的频宽,设置为 [250Kbps ,4Mbps]。

实现: 如图 1 所示,SAFR 的整体系统包括发送端和接收端。在这项工作中,用于训练和评估的发送和接收设备都是联想 Y9000X 2022 笔记本电脑,带有 RTX 3060 laptop GPU。TRC 中使用的 PPO 算法用 Adam 优化器[4]训练超过 300代,其中  值设置为 0.999。学习率最初设定为 0.003,每 100 代除以 10。

评估指标

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023

QoE 性能比较

我们将 SAFR 的 QoE 性能与基线(‘BASE’)进行比较,基线是 AlphaRTC [2]和基于 GCC 带宽预测算法的组合。与 BASE 相比,SAFR 不仅增加了三个关键模块(FRC、 TRC、 VFI) ,而且还为帧级信息建立了反馈管道。如图 6 所示,我们的方法优于基线,平均 VMAF 改善 2.28%-3.85%,平均丢帧率降低 61.8%-69.9% ,平均帧延迟降低 16.3% -26.7%。

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023
图6 SAFR 与 BASE 相比的 QoE 性能

在所有指标方面,SAFR 的四分位间距均远低于基准,这证实了 SAFR 的稳健性。特别是,在较差的网络条件下,SAFR 可以发挥更大的优势。如表 1 所示,SAFR 的表现优于基准测试,在峰值信噪比(PSNR)、 SSIM 失真度指标略有提升,以及在带宽节省方面有着显著提升(12.0% -25.3%),这进一步证实了 SAFR 的优越性。

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023
表1 SAFR 及 BASE 在不同网络环境下的平均实验结果

消融实验

FRC 模块的有效性:为了评估 FRC 的有效性,分别进行了三个固定帧率设置 {f0,f1,f2}的比较。如图 8 所示,在几乎所有网络条件下,FRC 都优于固定帧率设置在250Kbps-1Mbps ,250Kbps -2Mbps,250Kbps – 4Mbps 带宽范围内,QoE 最多可以提高 6.37,5.42 和 3.48。虽然  设置在较差的网络条件下(250Kbps ,1Mbps 带宽) 比 FRC 性能稍好一些,但它的鲁棒性比 FRC 差。值得注意的是,在 f2 设置下(公式 8)直接采用 GCC 预测的目标带宽。在这种情况下,SAFR 和 BASE 之间的唯一区别就是 VFI 模块。因此,在一个固定的 f2 设置下,对 BASE 的正 QoE 增益也证明了我们的 VFI 模块的有效性。

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023
图8 固定和自适应帧率设置之间的 QoE 比较

TRC 模块的有效性:为了研究 TRC 的有效性,我们设计了三个替代框架,将 SAFR 的 TRC 替换为: (i)基于 GCC 的启发式算法; (ii) Gemini [17] ; (iii) HRCC [13]。图 7 显示了这些情况下的接收率曲线。红色曲线的接收速率明显接近实际可用带宽(灰色曲线) ,这表明 TRC 在提高带宽利用率方面是有效的。相对于 BASE 的 QoE 值如图 9 所示。随着对帧率降低的快速反应,TRC 在 QoE 性能方面比其他方法具有明显的优势。

SAFR: 自适应帧率的 RTC 系统 | NetAISys 2023
图9 不同网络条件下不同带宽预测算法之间的 QoE 比较。

总结

在本文中,我们提出了一个新的 RTC 框架 SAFR 来提高所有三个关键指标的 QoE 性能。使用精心设计的 FRC 和 TRC,可以实现更低的帧延迟、更好的帧质量和更高的带宽利用率。在接收端进一步部署 VFI 模块以减少丢帧率。实验验证了 SAFR 在帧质量、丢帧率、帧延迟、带宽使用和整体 QoE 方面的优势,特别是在恶劣的网络条件下。同时我们也进行了消融研究,以揭示每个模块的贡献。

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论