点击一键订阅《云荐大咖》专栏,获取官方推荐优质内容,学技术不迷路!5G远程控制场景对实时音视频传输时延、卡顿率、弱网阻等要求非常高。本文将介绍如何结合5G网络的特点,对音视频通信链路进行联合优化,满足行业场景的远程控制需求,减少画面延迟。在上一篇文章中,我们介绍了远程控制的技术要点。从本章开始,笔者将依次介绍三种远程控制技术的应用和优化重点内容。本文将从实时音视频通信技术入手,主要用于解决在远程控制中将被控设备或车辆的周围环境画面和声音实时传输到遥控端,从而使远程驾驶员或操作员可以清楚地了解被控设备的周围情况,从而进行有针对性的操纵。例如,车辆行进时的车辆前后图像,挖掘机作业过程中抓取手臂的图像,都需要通过实时音视频技术进行远程传输。为了保证控制的实时性和流畅性,相对于声音的传输,遥控器主要对画面的传输要求非常高,尤其是画面延迟、卡顿率等核心指标和抗弱网能力。以低速远程驾驶场景为例,时延需要小于200ms,尽量接近100ms,卡顿率小于2‰,可以抗网络波动,媲美平均RTT极端情况下的延迟和20%-30%的丢包率。这些指标的要求往往明显高于以往的电话会议、直播、监控等应用场景。对于实时音视频技术来说,降低延迟往往与降低卡顿率和提高抗弱网能力是矛盾的。所以这是一个非常大的挑战。远程控制与其他应用场景指标对比如下图探索优化关键点典型视频传输链路示意图采集:从摄像头采集原始图像帧数据编码:对采集到的原始图像帧进行编码发送:发送打包编码的视频帧传输:从网络传输打包后的数据接收:接收打包后的数据并还原视频帧解码:解码视频帧并还原原始图像帧数据渲染:渲染原始图像帧数据并输出到实时音视频通信的screen,主要负责抗网络波动,减少卡顿接收模块中的jitterbuffer负责码率,也是延迟的主要贡献者之一。jitterbuffer在不同项目中的实现略有不同,但基本上都有乱序排列、帧检测、帧缓冲等功能。jitterbuffer主要负责正确接收视频帧并适当缓冲。在确认满足解码条件后,根据估计的帧间延迟(接收到的两帧之间的时间差-发送的两帧之间的时间差)对jitterbuffer进行平滑处理,然后发送给后续的解码和渲染模块。这样即使网络出现一定程度的波动,由于jitterbuffer的平滑性,相邻的视频帧仍然可以在接近预期的时间间隔内进行渲染,从而流畅播放。通常,为了应对丢包、乱序、时延抖动,网络RTT和时延抖动越大,需要的jitterbuffer就越大。这时由于缓存的增加,视频延迟也会相应增加。这是三个指标出现矛盾的根本原因。除了接收模块,我们再看看其他模块的情况。随着芯片计算能力的不断提升,编码、解码、渲染等模块的延迟已经很小,基本都在10ms以内,甚至可以达到5ms左右。优化空间不大,对三大核心指标影响较小。采集传输模块的时延主要受外界客观条件的影响,前者取决于摄像头,后者取决于网络。发送模块会影响数据传输的丢包、延迟和抖动,从而影响接收效果。因此,要实现三大核心指标,需要优化的主要是发送和接收模块。通过对发送模块的优化,在保证卡顿率和抗弱网能力的基础上,尽可能减小接收端jitterbuffer的大小,从而降低延迟。有的放矢,针对发送和接收模块的联合优化设计优化方案,不同项目的实现并不一致,复杂度和效果也大不相同。下面是实时音视频通信架构中比较复杂的收发模块的实现示意图。腾讯远程控制产品中的实时音视频通信也是采用这种结构。发送和接收模块表示发送模块主要由分组协议、拥塞控制、发送窗口、错误编码等组成。其中,为了提高传输效率和抵抗弱网络的能力,分组协议通常是基于标准的RTP协议,底层使用UDP协议。拥塞控制主要是估计网络状态,对发送步调窗口和比特率提出建议。纠错码主要是为了抵抗RTP包的丢失,提高前向纠错能力,使部分丢失的包可以通过纠错码恢复,而不需要依赖重传。接收模块中除了jitterbuffer涉及的乱序缓冲区、帧检测缓冲区、帧缓冲区外,还有解包、错误解码、链路状态估计反馈等模块;链路状态估计反馈主要用于估计链路丢失。Packet、delay、delayjitter用于指导jitterbuffer大小的设计,为发送端的拥塞控制提供参考。上文提到,优化的目的是减小jitterbuffer的大小,而帧间延迟波动是影响jitterbuffer大小的核心因素。除了网络波动外,丢包和重传也是延迟波动峰值的主要贡献者。因此,发送和接收的联合优化应该首先考虑减少丢包和重传。腾讯针对5G远程控制场景主要在拥塞控制和错误编码方面做了更好的优化,降低了丢包和重传的概率。拥塞控制:在实时音视频常见的拥塞控制方法中,BBR、GCC等比较好。BBR主要基于网络的延迟带宽积。它分别检测网络的最大带宽和最小延迟,认为两者的乘积就是网络所能承载的最大数据容量。它的优点是可以抵抗随机的网络延迟和丢包。波动噪声的缺点是在测量到最小延迟时会降低吞吐量。对于突然的网络恶化,减少到实际带宽需要更长的时间。而且BBR本来就不是为视频传输设计的,在实时音视频方面的应用体验比较有限。GCC同时基于延迟拥塞控制和丢包拥塞控制,取两者中的最小值。在时延拥塞控制中,为了平滑网络波动噪声对时延梯度估计的影响,GCC采用卡尔曼滤波器进行处理。GCC的优点是可以同时兼顾延迟和丢包,有很好的实际应用经验。错误编码:在网络传输中,丢包模型可以理解为一个删除通道,数据包在传输过程中会被随机删除。因此,应用于擦除通道的前向纠错编码(FEC)可用于通过增加数据包传输中的冗余量来恢复丢失的数据包。考虑到纠错性能和计算复杂度,线性分组码主要用于音视频传输,常用的有XOR码和RS码。由于FEC主要是针对随机错误设计的,因此这种方法可以在较短的编码长度(编码包数)下抵抗一定程度的随机丢包。但是,对于拥塞或网络质量下降导致的突发丢包,更短的码长仍然是不可抗拒的。这时,传统的方式是增加数据包之间的时间间隔,增加码长来抵抗突发性丢包。基于5G空口网络的优化增强在5G远程控制场景下,5G空口的时延和波动占网络时延的很大比例,5G空口的网络模型与传统路由器。传统路由主要关注拥塞丢包,本身没有重传;5G空口存在错误丢包和拥塞丢包,并有一定的重传量;传统路由时延的增加主要是拥塞造成的,而5G空口由于资源调度周期,也会有一定程度的时延波动,尤其是上行数据传输。5G空口带宽与信噪比和空口负载有关,会随时间变化;传统路由的带宽相对固定,主要受网络负载的影响。路由器与5G空口网络特性对比拥塞控制优化:可见5G空口网络与传统路由有很大区别。面对资源调度周期引起的时延抖动和信号质量引起的带宽波动,BBR拥塞控制的适用性有限。考虑到5G空口信号质量会导致网络带宽发生较大变化,可以在GCC时延和丢包拥塞控制的基础上增加基于空口SINR和网络负载估计的拥塞控制,让5G空口网络变化更加灵敏。同时,可以修改GCC中延迟梯度估计中使用的卡尔曼滤波算法,以更好地平滑资源调度周期引起的延迟梯度抖动。错误编码优化:根据5G空口网络的特点可以看出,5G空口由于自身重传丢包的概率更小,可以使用更短的码长来抵抗随机丢包.5G空口突发丢包往往是由于5G空口信号质量突然下降引起的。这种深度衰落循环通常与移动性有关。移动速度越快,周期越短,低速移动时为10ms左右。.传统的简单引入更长的包间隔和增加编码长度的方法不能有效应对,而且会增加发送的数据量,导致更严重的丢包。配合基于空口信干噪比的拥塞控制估计,实时预测突发丢包,通过降低码率,延长发送时间,降低突发丢包概率在不增加编码长度的情况下。同时可以引入包交织的方法对编码进行交织,在一定程度上抵抗突发性丢包。总的来说,5G远程控制场景对音视频时延要求非常高。虽然结合5G网络的特点,在发送和接收方面做了一些联合优化,可以满足一些中低速行业场景的远程控制需求。业界理想的100ms指标仍然存在一些挑战,尤其是在跨区域远程控制场景下。以后需要引入一些结合网络的联合优化方法。另外,我们也可以考虑在摄像头采集和编码上做更多的挖掘,尽可能提升端到端的效果。毛骏凌之前的精品文章推荐:解放人与设备的距离,5G时代如何实现远程控制《云荐大咖》是腾讯云+社区的优质内容栏目。云推荐官特邀行业领袖,聚焦前沿技术落地与理论实践,持续为您解读云时代热点技术,探索行业发展新机遇。点击一键订阅,我们会定期为您推送优质内容。
