作者孙镝,一位长期奋战在一线的年轻音频工程师,经历大场面无数,善于从小处入手解释大问题。今日来稿,探索AoIP延时量,不吐不快,很是契合“IP同学会”的探讨氛围,欢迎指正。
前言
近期一些项目中笔者被问到了一些AoIP延时量方面的问题,比如:
1、IP音频和基带音频两条链路的延时量差多少?
2、为什么音频备路PGM延时量比主路PGM多这么多?
3、收流延时大点好还是小点好?
笔者怀着好奇的心态查阅了一些书籍和产品资料,并做了一个实验,希望能够对上面这些问题做一些粗浅的解释,并希望能够提供一种粗略预估AoIP架构延时量的计算方法,为广电音频工作者提供一些帮助。
#01
AES67音频帧解构
AES67中的数字音频信息采用的是PCM编码,如下图,剥离二层以太网帧头、三层IP包头、UDP包头之后,里面的内容实际是RTP,RPT包头最后一部分内容为SSRC ID,占4个字节,随后就是本包中的靠前个声道的靠前个采样值。例如,本图所示的音频帧一共包含8个声道,采用24bit的PCM编码,因此图中红框部分的三个0x020851、0x03aa16、0x053bd0组成了该帧中靠前个声道的前三个采样值。SMPTE ST2110-30、GY/T 304等标准中的音频帧结构类似。
#02
网络设备转发
无论如何我们都希望网络转发所消耗时间越短越好。“交换”显然比“路由”所需要的时间更少,因此如无特殊的需要,一般来说一个演播室、一个转播车、一个录音棚,这样的*系统由于网络规模很小,都会尽量采用交换机来进行组网。
数据帧进入网络设备,被某个端口的Rx接收后,基本都要先查表后转发,不论是MAC表还是ARP表亦或是组播表,总之是要查表的,查完表后,网络设备才会根据表项作出一些动作,比如直接从某个或某几个端口的Tx发出。
采用“存储转发”型的交换机,交换机还会对接收到的数据帧进行校验(FCS),验证通过后才会做下一步动作,根据帧的长度不同,交换机这个环节所消耗的时间也不同。按照64字节的帧计算,千兆网络转发的时间至少需要64 * 8 /(1024*1024*1024)大约0.4768微秒,1500字节的帧大约需要11.1759微秒。这里忽略了查表时间以及涉及到Vlan、ACL等技术所消耗的时间。这里没有考虑和两种技术。
#03
物理连接
笔者曾经幼稚的以为电信号在电缆中的传输速度也是大约3x10^8m/s,后来通过查阅资料发现,铜线是有“折射率”的,电信号在电缆中的传输速度大约可以按照2.3x10^8m/s计算,而光纤传输光信号大概可以按照2x10^8m/s计算。按照这种粗略的计算方法,1米的连接线大概用0.005微秒,10米的连接线大概要用0.05微秒,100米的连接线大概要用0.5微秒,等等。
#04
收流延时
在笔者的实际应用中,收流延时才是广电AoIP架构里真正的大磨叽。收流延时值设置较大,可以有效降低由于负载均衡、路由多跳、物理链路较长(公里级)等情况造成的数据包到达太慢或顺序错误带来的风险。尤其对远程制作场景来说,非专线的情况下,较大的收流延时还是有必要的。某些品牌的网关设备可以达到30000个以上音频采样的收流延时,按照48k采样计算大约可以达到0.625秒也就是半秒多的延时,在笔者看来算是比较高了。
#05
简便计算表格
如果上面的估算方法偏差不大的话,可以大致列出以下计算表格:
这样看,延时量在交换机这个环节可以达到12微秒左右,并且,组播音频帧每经过一个交换机,就可能会增加12微秒的延时(100米以上光传输未考虑)。按照广播电视音频常用的48kHz采样频率计算,采样和采样之间间隔1/48000秒,大约20.8333微秒,因此,交换机的转发速度对于音频来说,是足够快的。
#06
实际应用
比如现在有一个人贴着话筒说话,经过话筒、话筒线、接口箱(网关)、网线、交换机、网线、调音台、网线、交换机、接口箱、模拟音频线、耳机放大器、耳机,最终听到自己的声音,那么这个人从说话开始,到听见自己的声音为止,通过刚才这条线路传输,需要经历的时间大概是:
即,不到9毫秒,对应视频的50p帧率来说,不到半帧。当然真实场景可能会比上面这个场景复杂。
附:花絮
前言中提到的“一个实验”,是这样的:
为了验证“交换机转发速度足够快”,笔者设计了一个实验,使用两个声道的信号,其中一个经过交换机,另一个不经过交换机,分别录进Protools
实验系统框图:
实验设置:
1、图中三个黑色实线(以太网连接)的线缆长度均在10米之内
2、音频设备均工作在48kHz时钟频率。
3、Nova73、A MADI6、华为6865交换机处于同一个PTP时钟域内,华为6865运行边界时钟,Nova73、A MADI6均为PTPSlave;Protools同步源为Avid MTRX的MADI IN。
4、LAWO调音台DSP Input 1的 Out节点分别连接到 Tx接口的2个 即Ch1、Ch2上
5、Ravenna Tx建立靠前条1声道组播流,抓取Ch1并送出,打包时间为1ms,量化精度为24bit,通过一组ST2022-7SPS端口同时发出,并生成SDP信息。
6、Ravenna Tx建立第二条1声道组播流,抓取Ch2并送出,打包时间为1ms,量化精度为24bit,通过一组ST2022-7SPS端口同时发出,并生成SDP信息。
7、A MADI6建立2个“接收器”,分别接收上述2个1声道组播流,分别通过内部路由将信号送至同一个MADI Out的Ch1、Ch2,
8、Avid MTRX使用一个MADI IN接收A MADI6送来的信号,录进Protool。
实验步骤:
1、开启Protools录音;采用1000Hz、-6dBFS的正弦波信号连接到Nova73的DSP Input1上,间隔约2秒后断开连接,间隔约2秒后再次连接,间隔约2秒后再次断开连接;停止录音,观察记录下来的2个声道的波形时间差。
2、开启Protools录音;采用17997Hz、-6dBFS的正弦波信号连接到Nova73的DSP Input1上,间隔约2秒后断开连接,间隔约2秒后再次连接,间隔约2秒后再次断开连接;停止录音,观察记录下来的2个声道的波形时间差。
3、将发出的两条流的声道数量改为10,靠前条流中的靠前个声道抓取Ch1,其余九个声道不抓取任何音频,第二条流中的第二个声道抓取Ch2,其余九个声道不抓取任何音频,重复1、2步骤。
实验结果与分析:
4次观察波形的结果都是,经过了交换机与没经过交换机的两路信号,在Protools中的波形是严格对应的,换句话说,他们到达Protools硬件接口的时间差小于1个采样(即小于1/48000秒),Protools就认为他们是同时到达的了。
理论上一个数据包越大,在交换机中转发需要的时间就越久,而10个声道48kHz/24bit的流参数设置下,每个音频数据包的荷载为1440Byte,基本达到了MTU。而Protools仍然能够录到2个同时起振的波形。
因此可以认为本次实验中的对于组播音频的转发延迟是小于1个采样的,可以忽略不计。
俩波形没时间差,这实验真是做了个寂寞。。。
欢迎关注转播调光区微信公众号