本次分享将分为三个部分:第一部分介绍低延迟视频所涉及到的关键技术,包括低延迟视频编解码、视频传输、视频处理低延时框架、视频采集和显示;第二部分重点介绍5G环境下低延迟视频对抗弱网提出的要求,包括:弱网状态的探测、拥塞控制等;最后一部分会结合实际测试结果,介绍在港口远控、远程驾驶等场景下的应用范例。
文/沈灿
整理/LiveVideoStack
网络技术发展带来了延时低这一问题的讨论。以前网络的延迟比较高,芯片的处理都需要时间,所以延时一直都做得不够完美。随着技术的发展,芯片的处理能力提高和网络的发展,低延迟视频开始能够运用在一些比较特殊的场景,所以今天我想讲的主要内容包括:首先把“低延时”这一问题抛出来,然后介绍一下如何解决这些问题和相关技术,最后介绍低延迟视频的应用场景。
-01-
低延迟视频面对的问题
延时是做视频都会遇到的一个关键技术指标。平时面对面实时交流,一般200ms的延时就能达到满意的状态,因为人与人之间交流的反应速度没有这么快。但是人和机器交流或机器和机器间对接,对延迟的要求就会比较高,因为机器的反应速度远快于人。例如受操控的中等速度的工程车,通常100ms的延迟速度能够满足控制要求,较典型的例子是远程控制车上的机械臂。
另外,游戏也有比较高的延迟需求,最好是在100ms以下,最好能够做到50ms、60ms左右。因为游戏虽然是人在操控,但控制的是较为激烈的游戏场景,例如开车、开枪,可能延迟差一点点游戏就输了,因此延迟对于用户体验而言是很关键的。远程开车速度通常有60公里/小时,延迟如果在60ms左右,控制时就会有1米左右的误差。再如在高速公路上操控无人机,“智慧道路”要求在控制的同时告知操控人前方是否有事故或障碍物,因此延迟需要达到30ms左右才能满足用户的要求。
那么如何定义延迟呢?
从视频的产生、采集到显示(在云游戏场景下,即从视频产生的时候算起)产生的延时,即视频经过发送、网络传输、接收,一直到显示器,这整个环节就属于端到端的延时。中间段的延时也可以单独计算,例如从发送端到接收端,不计算头和尾的延时。这中间的很多环节都会产生延时,所以每个环节的延时都需要计算、都需要考虑指标能做到多少,这样才能把完整的延时定义出来。同时,还需要考虑内容的产生来源,例如内容是从某个云端产生,这其中的延时也需要计算。因此,技术指标是需要考虑到各个方面的。以上就是它的定义。
可以通过列表来估算每个环节会产生多大的延迟,哪些环节是容易产生延迟的。第一个环节是采样,如果是30帧/秒,其中会有33ms左右的间隔。这个(过程)本身也是有延迟的,因为采集有固定间隔,其固定间隔就是采样的延时。接下来是媒体的前处理,主要是ISP芯片带来的延迟,例如降噪、畸变校正等,其中的运算、数据传输都会产生延时,这部分就和它的处理能力有关,我们也可以对其进行估算。
然后是发送缓冲、网络传输、接收缓冲,这些也都需要时间,因为网络的带宽是有限的,如果带宽非常宽,则传输时间可以忽略不计。后面会详细介绍这其中会带来什么问题。这部分是延时产生的主要来源。
再之后是后处理,后处理和前处理相同,都属于媒体的处理,这部分的延迟比较固定,其数值不会波动太大。而中间的网络部分(的延迟)波动是比较大的,是随着网络条件、环境变化而变化的,也和丢不丢包有关。最终的显示,解码之后进入显示缓存和显示器,显示也是存在等待延迟的。综合上面的计算,根据目前系统的能力来看,如果不计算采样延时,(延时)大概在20到几百之间。