概述
论文:Enabling High Quality Real-Time Communications with Adaptive Frame-Rate
这篇论文研究了如何为高质量的实时通信(RTC)应用优化解码器队列延迟。主要内容和贡献总结如下:
引言部分指出,随着5G等新网络技术的发展,高清和高帧率的实时通信应用日益普及,如云游戏、虚拟现实等。这些应用对端到端延迟要求极高(约100ms)。
作者通过实测发现,在这些应用中,解码器队列经常出现拥塞,成为延迟的主要来源。这是由于高帧率增加了帧的到达速率,而高清的视频解码时间更长,两者共同导致了解码器队列利用率过高。
作者提出了自适应帧率控制器(AFR),它可以动态调整帧率,减少解码器队列的排队延迟。AFR包含两个控制器:固定控制器根据解码速率预测潜在的排队延迟;瞬变控制器则根据实际队列状态做出反应。
在仿真和实际部署中对AFR进行了评估。结果显示,AFR可以将排队延迟的99分位数量降低7.4倍,将严重排队的帧比例降低26倍;同时也减少了总体延迟,提高了用户体验。
AFR已在云游戏产品中使用超过一年,为数万用户提供服务。
原理
AFR中的两个控制器具体如下:
固定控制器(Stationary Controller)
这个控制器的目的是预测和控制解码器队列的常态排队延迟。它的工作流程如下:
(1) 测量视频帧的到达间隔(enqueue 过程)和解码延迟(dequeue过程)的统计值,包括平均值和方差。
(2) 根据这些统计值,利用Kingman公式预测解码器排队的预期延迟。
(3) 根据预期延迟和目标延迟,计算出目标帧率,以减少排队延迟。
这样设计的好处是可以提前感知到解码器负载的变化,比直接测量排队延迟响应更快。同时使用了双EWMA滤波,可以平衡测量的敏感性和稳定性。
瞬变控制器(Transient Controller)
这个控制器的目的是处理突发的排队延迟增加,例如解码卡顿或网络突发。它的工作原理如下:
(1) 根据当前队列最前端帧的等待时间,判断当前增加的排队延迟是由解码还是网络造成的。
(2) 如果是解码卡顿,那么大幅降低目标帧率以减轻解码器压力;如果是网络突发,则不调整帧率。
这样设计的好处是可以区分不同原因导致的突发排队增加,做出不同的控制,避免过度反应。
总体来说,两个控制器作为层次式控制的不同层次,能够合作应对解码器排队延迟的各种变化, Keep 一个 Ultra Short的排队延迟。
kingman公式
Kingman公式是评估G/G/1队列的平均排队延迟的一个经典近似公式。其表达形式为:
其中:
:平均排队延迟
:系统利用率,定义为 ,即到达率与服务率的比值
:平均服务时间
:,到达过程变异系数,是到达间隔的标准差,是平均到达间隔
:,服务过程变异系数,其定义方式与相同
可以看出,平均排队延迟与以下因素相关:
系统利用率:利用率越高,排队延迟越长
服务时间:平均服务时间越长,排队延迟越长
过程变异系数,:过程变异越大,排队延迟也越长
Kingman公式结合了队列特性中重要的因素,可以有效估算排队延迟,且计算简单,因此被广泛使用。
AFR使用Kingman公式来预测排队延迟,以便及早做出帧率控制,这是其的一个创新之处。
瞬变控制器关键设计
瞬变控制器判断是解码卡顿还是网络突发的方法比较巧妙。主要利用了队首帧的“等待时间”这一指标。
具体来说,定义队首帧(即最先进入队列的帧)的等待时间为tQ,计算方式如下:
其中,
:当前帧的进入队列时间
:队首帧的进入队列时间
也就是说,tQ反映了队首帧进入队列到当前帧进入队列的这段时间。
根据tQ的大小可以判断:
(1) 如果tQ很短,比如在几毫秒级别,说明之前的帧都是突发进入队列的,很可能是网络突发的原因。这时不需要降低帧率。
(2) 如果tQ很长,比如超过50ms,说明之前的帧在队列中等待了很久,很可能是解码卡顿的原因。这时需要立即降低帧率以减轻压力。
所以tQ这个指标反映了导致排队的具体原因,这使得瞬变控制器可以有针对性地做出不同控制,而不会过度反应。这是其设计的一个亮点。
网友评论