栾博超¹,张一龙²
(1.中国煤矿文工团,北京 100013;2.中国传媒大学,北京 100024)
随着网络音频技术的发展,在近几年音视频系统的网络化化已经成为主流趋势,AoIP和VoIP作为主架构的音视频系统已经有了大量的应用案例,网络的便捷,使音视频系统有了更多的可能性。在多系统联合制作中,系统内可能存在多个主时钟设备,导致系统同步出现问题。笔者探讨网络构架下的音视频系统中,如何利用PTP的原理对多系统主时钟进行分离,使各系统同步互不影响。
模拟时代的音频系统中,声信号通过传声器转换为电信号,并通过线缆携带电子信号从一个音频器件传输到另一个音频器件,最后又通过扬声器还原为声信号。在这种传输方式下只可以实现点对点的连接和信号的传输,并且每条线路只可以传输一个通道。
当时的录制设备大多采用磁记录录音机和录像机,因此,当多系统进行录制时,常采用SMPTE(Society of Motion Picture and Television Engineers)时间码来实现多设备同步。在磁带上有专用轨道记录时间码,与视频的同步信号一一对应,其格式是:(小时:分钟:秒:帧)。当需要同步两台设备时,需要严格控制两盘磁带的起始时刻、终止时刻及带速,SMPTE时间码信息可以以音频信息的形式存储在磁带中,主设备播放时,同步设备会一直调整两台设备的带速,使其达到相同位置实现初始同步。之后每过一段时间,同步设备会对两设备的带速进行调整校正,使其一直保持准确的同步状态。
在数字音频系统中,信息传递方式有了很大的变化,将电信号通过模数转化为二进制数据进行存储及各设备之间的传输,使设备之间的连接及信号的传输都变得便捷高效。因此,数字音频时代不再局限于点对点传输,随着数字音频协议的不断升级,可以实现一条线缆传输多路信号,数据的传输与存储更加方便。
数字音频系统的同步除了SMPTE时间码,还可以采用字时钟(Word Clock)来实现。字时钟是一种脉冲信号,通过精确的采样频率来控制数字音频系统中数据的流动速度。每台音视频设备内部其实都可自行产生字时钟信号,而在多个设备的系统中,采样频率如果不统一则无法同步,所以只能有一个字时钟发生源。因此,要选择一台设备作为主时钟设备(Master),其余设备为从属时钟(Slave)设备,主时钟设备会将字时钟信号传输到从属时钟设备,使整个系统达到同步的状态。
随着网络技术的使用,网络音视频设备渐渐在广电及文艺演出领域普及,让音频、视频系统有了更高的灵活性、更多的可行性。在网络音频系统中,线缆数量大大减少,系统搭建及拆装的效率得到了很大的提升。
在网络系统中,由于以太网同步时钟的能力不足,为了实现设备的时间同步,开发了网络时间协议NTP(Network Time Protocol),它可以使计算机对其服务器或时钟源实现同步,并且可以提供高精准度的时间校正。尽管早期NTP的准确度可以达到200 μs,但时间戳(Time stamping)在精度上还是无法满足长时间工作的设备对于同步准确度的需求,而且时间包间隔过大。因此,网络精密时钟同步委员会(Network precision clock synchronization committee)提出了PTP协议,有效地解决了这一问题。
IEEE 1588标准简称PTP(Precision Time Protocol,精准时间协议)。PTP的主要原理是通过一个主时钟发送周期性的同步信号,从而对网络系统中全部节点进行同步校正,可以令整个以太网系统中各个节点设备都实现精确同步,PTP时钟同步可以在组播网络(Multicast Network)中使用。
在PTP系统中,通过发送报文产生时间戳记录,根据时间戳的记录,可以计算出网络中的延时和主时钟的偏移量,从而实现系统内部的主从PTP时钟同步。
PTP同步的实现,首先是利用最优主时钟算法进行主从时钟的确定,然后开始测量网络中的传输延时量,其原理如图1所示。主PTP时钟设备每间隔一段时间会向域内从时钟设备发送同步消息(Sync),并且记录发送时间为t1,再发送跟随报文(Sync Follow_up),并在跟随报文中嵌入时间戳t1来告知从时钟设备。从时钟设备接收到同步消息,记录接收报文的时间t2,并且还会收到包含时间戳信息t1的跟随报文。经过一段时间,在t3时刻,从时钟设备将延时请求信息(Delay_Req)发回到主时钟设备,并且记录发送该消息的时间t3。主时钟设备接收延迟请求报文并记录接收时间t4。最后主节点向从节点发送延时应答信息(Delay Resp),并将时间戳t4嵌入到报文中,使从时钟得到时间戳信息t4。
在消息交换结束时,从机拥有t1、t2、t3、t4所有4个时间戳。这些时间戳的数值可用于计算从属时钟相对于主时钟的偏移量(Offset)以及两个时钟之间消息的平均传播时间和链路传输延时值(Delay),得到偏移量(Offset)可以用来修正从时钟的值。
当从时钟收到t1与t2两个时间戳时:Delay=t2-t1-Offset
当从时钟收到t3与t4两个时间戳时:Delay=t4-t3+Offset
联立以上两个公式可以计算出:
主从时钟间的单向延时为(对称网络)Delay=[(t2-t1)+(t4-t3)]/2
从时钟相对于主时钟偏移量为Offset=[(t2-t1)-(t4-t3)]/2
图1 主从端对端同步原理模型
由以上公式得出链路传输延时值(Delay)和主时钟的偏移量(Offset)后,通过时钟内部同步算法,可对从时钟进行补偿,使其跟随主时钟,从而锁定主从同步关系。
在大型网络系统中,各节点的PTP设备相距较远,并且传输路径和距离各不相同,无法完全对称,若采用端对端同步机制,同步报文和延时请求报文的路径不一致,如果还按照原路径执行同步会出现偏差,影响同步精度。为解决这一问题,可以使用点对点同步机制,在实现对等延时机制的两个端口间测量链路延时的机制如图2所示,共享一个链路的两个端口独立地进行测量,因此两个端口都知道链路延时。
链路延时测量开始时,从端口1发出延时请求消息(Pdelay_Req)并为Pdelay_Req消息生成时间戳t1。端口2接收Pdelay_Req消息并为此生成时间戳t2。为了最小化由于两个端口之间的任何频率偏移引起的误差,端口2在接收到Pdelay_Req消息后尽快返回延时响应消息(Pdelay_Resp),端口2返回Pdelay_Resp消息并为此生成时间戳t3。端口1在接收到Pdelay_Resp消息时生成时间戳t4。然后端口1使用这4个时间戳来计算平均链路延时。
当端口2 收到端口1 发送的P d e l a y_R e q 可得:Delay=t2-t1-Offset
当端口1收到端口2发送的Pdelay_Resp可得:Delay=t4-t3+Offset
联立以上两个公式计算得:
链路延时值为Delay=(t2-t1+t4-t3)/2
虽然点对点同步的测量方法与端对端同步机制类似,都是通过报文之间的时间戳信息计算链路延时值。端对端机制需要正反双向发送消息进行测量,更适用于路径对称且主从时钟精度一致的网络中,若路径不对称,同步消息(Sync)与延时请求信息(Delay_Req)若通过不同路径发送,会产生误差。而点对点机制使用单路径测量信息,不需要从设备与主设备双向发送消息,只需对一条物理线路上的传输延时进行测量,因此测出的延时结果更加准确。点对点机制适用于使用边界时钟或透明时钟的交换机的系统,网络系统中的每个节点都会周期性地测量与相邻节点的链路延时值并交换测量的信息,从而每个节点都能实时补偿自己与相邻时钟节点设备的链路延时。
图2 点对点同步原理图
图3 基本时钟节点树状拓扑结构示意图
在PTP域(Domain)中,时钟设备的节点称为时钟节点,在PTP精准时间协议中,规定了三种PTP时钟节点的类型,如图3所示。
在同一个PTP域中,普通时钟(Ordinary Clock,OC)只能满足一个物理端口参与PTP时间同步。在一个域内的普通时钟可以获取上游时间信息进行同步,也可以向下游发送同步信号。因此,在一个系统中,普通时钟既可以作为主时钟,也可以作为从时钟。
边界时钟(Boundary Clock,BC)可作为同步系统中的子时钟。边界时钟拥有多个PTP端口参与时间同步,可以通过其中的一个端口以从模式向上游时钟节点同步时间,并通过其余端口以主模式向下游时钟节点发布时间。使用边界时钟可以将PTP网络隔离开,有效地降低上游主时钟的负荷,若上游主时钟出现问题,边界时钟设备可以临时担任主时钟维持一段时间时钟晶振。
透明时钟(Transparent Clock,TC)可以担负同步系统中信号分配器的角色。它拥有多个PTP端口,不需要像普通时钟和边界时钟一样与其他节点进行时间同步,仅负责在端口之间转发PTP报文时,对其进行转发延时校正(在PTP报文中增加时间校正信息)。
上述三种时钟节点在同一个PTP域中的位置如图4所示。
使用PTP协议的网络为PTP域,域由一个或多个PTP设备组成,这些设备的通信按照协议的定义。在每一个PTP域中,只能有一个同步时钟信号同步该域内的设备,不同域的时标是独立的。所以,同一套PTP系统中,只有当系统中的所有PTP设备都处在同一个域中时,才可实现系统的同步;不同域中的设备不参与另一个域的时钟选举。
对于不同域的划分,由0 ~2 5 5 的整数(见表1)标识域值(Domain Number)。Domain Number应是可配置的,且遵从PTP协议中规定限制。
表1 Domain Number的定义
图4 同一域内三种时钟节点示意图
在PTP时钟同步系统中,主时钟的确认至关重要,一个可靠、稳定、精确的主时钟选举机制,决定了PTP系统同步的安全与稳定。因此,PTP自身定义了最优主时钟算法(Best Master Clock Algorithm,BMCA),依据各个主时钟所发送的声明报文中所携带的信息,用于确定同一PTP网络域中的最优主时钟。在同一个PTP网络域中,只能有一个最优主时钟,若当前主时钟设备出现问题无法继续工作,会通过BMCA选举出当前PTP网络域内最精确的PTP设备为新的最优主时钟接管同步任务。其他设置在主时钟模式下的时钟,都会工作在被动模式下(Passive)。当设备端口处于被动状态下,不会参与到时钟同步中,以防止链路形成闭环,所以它们只会发送声明报文,不与从时钟有任何的报文交互。而主时钟(Master)节点、与从时钟(Slave)节点都会依照BMCA,确定系统中的最优主时钟源。
根据前一章的介绍可知,主时钟只能在同一个域内选举,且每个域只能存在一个主时钟。对于大部分音视频系统来说,现场工作时间比较紧缺,考虑到工作效率、系统的安全性以及两个系统之间责任的划分,可以结合PTP域和最优主时钟的概念,使系统时钟同步采用音频和视频时钟分离的方式,即音频系统和视频系统各自锁定各自的主时钟。由于多系统之间传输的音频信号为数字信号也需要同步,根据ST 2110-10中规定,IP组播包中封装了RTP时间戳,因此数字音视频信号传输时根据UDP报文中封装的时间戳信息进行同步。
EFP(Electronic Field Production,电子现场制作)系统的同步如图5所示。为了保证系统安全,希望实现视频系统时钟分离,只获取音频的制作信号,在满足这样的系统需求过程中有以下两点问题需要解决:
(1)在音频系统与视频系统的网络交互中,只传递数字音频信号,不传递PTP时钟信息;
(2)两套系统采用两套时钟风险较高,如何确保系统能够正常工作。
该方案是笔者根据PTP相关概念提出的设想,采用将音视频系统划分为不同的域来分离时钟信息。在IEEE1588-2008中,规定了域值的范围是0~127;而在ST 2110-10中,介绍了音频系统的默认域值为0,视频系统中默认域值为127。因此,在这套系统中,可以对音频系统和视频系统分别设置,分别采用不同的域值。两套系统时钟在不同的域中,则无法参与到对方的主时钟选举中,因此各自系统的时钟信息不会影响另一套系统,可以实现时钟分离,只传输音频信号。
由于在这两个系统中分别采用两套时钟,两个主时钟设备无法保证同时晶振,无法做到绝对时间同步,有可能会因此无法识别数据包,或者由于无法同步引发噪声。所以,要在系统配置中选择相对时间振动模式,即频率同步(如图6),在这个模式下,可以忽略不同时钟所导致的报头无法对齐的问题,只要两个系统的时钟以同样的频率晶振就可满足同步。
尽管如此,此设想还是存在很大的安全隐患。在一个系统中若存在两个主时钟,虽通过频率同步方式的设置可以锁定同步,但还是存在一些隐患,交换机端口需要识别并处理两个不同的时钟报文,若长时间工作可能导致交换机端口数据量过载,发生丢包的问题。因此,还须使两系统时钟尽量保持同一起振时刻,可以通过锁定卫星同步系统对于两个系统的主时钟提供一个时基标准,在设备选择时应当选择具备GPS授时功能的时钟设备(如图7)。当两个时钟都支持GPS锁相,两个时钟都跟随GPS时间标准发出同步信号,尽管两套系统间不传输时钟信息,却仍工作在同一个时钟内。
图5 采用两个主时钟的音视频系统同步示意图
图6 Ravenna设备的频率同步模式设置
由于在实际工作中对于时钟设备的应用越来越广泛,如今的时钟设备的功能也越来越完善。一些时钟设备可实现多个Domain配置并提供多个物理端口连接下游时钟节点设备,如图8为SPG8000A同步信号发生器参数,此设备最多可以配置3个不同的Domain值(Primary Master,Primary Slave,Secondary Master)由这台设备作为主时钟可以更灵活地划分Domain。
当一台主时钟设备可以设定不同的Domain,则只需要一台主时钟设备便能实现音、视频系统之间只传输音频信号,不传递时钟信息(如图9)。由于主时钟来源于同一台设备,所以虽然两套系统不传输时钟,音视频系统却都可以锁定主时钟同步。在这样的系统中,只需要对一台主时钟的Domain参数进行配置,就能达到分离时钟信息的目的,大大提高了调试的效率。
在时钟的配置中, 除了Domain需要设置以外,还要对优先级(Priority)进行配置,在主时钟的竞选规则中,数值越小优先级越靠前。因此,要权衡音、视频系统的重要性做取舍,将更主要的系统设为第一优先级。在这样的系统中,虽然只使用了一台主时钟设备,只要对其进行精准配置,不仅可以完全实现时钟分离功能,还可以解决双主时钟系统所导致的两个时钟无法同时发出时钟晶振所导致的问题。
图7 两系统主时钟设备锁定GPS
图8 SPG8000A参数
图9 采用一台主时钟设备构架的EFP同步系统
采用PTP域划分的方法虽然可以实现初步的需求,但还是有问题存在,虽然通过选择不同的Domain,分离了PTP信息,但其实PTP数据一直占用着网络中的带宽,也进入到另一系统的端口中参与了数据包的转发,只是没有参与彼此主时钟的选举,因此笔者做了如下对比分析。
1. 使用划分Domain实现多系统时钟分离的优势
1)当某一音视频设备时钟发生问题需要紧急分离两个系统的时钟时,通过改变Domain分离时钟,可以更快地解决问题,操作比较灵活。
2)仅需一套支持多Domain设置的主时钟设备(如图9)就可实现时钟分离,在两个系统互相不传递时钟信息的同时,能令两个系统锁定同一个主时钟,提升了系统工作中的安全性。
2. 使用划分Domain实现多系统时钟分离可能出现的问题
这一方法是根据PTP时钟域的特性设计的,尽管两套系统彼此不参与对方主时钟的选举,但时钟数据仍在通过端口传输,交换机会对这些报文转发,而终端设备仍需通过IP层解封装来判断是否需要处理此报文。在此过程中,端口转发的数据量以及交换机对报文的处理量并不会减少,虽然从结果上实现了时钟分离,但如果大型系统传输内容占用大量带宽,系统长时间工作可能会导致交换机CPU资源占用过多,发生丢包的情况。
笔者讨论的时钟分离是由于网络音视频系统越来越复杂而产生的需求,采用GPS锁相功能的时钟设备根据GPS历元提供精准时间,保障音频和视频系统安全稳定的同步状态。而在实际工作中,还须根据现场环境进行考量,若系统使用于场馆内,会降低GPS信号质量,此时工作人员须根据现场情况对系统需求进行取舍,GPS信号质量无法保障时须舍弃时钟系统分离方案,避免丢失主时钟导致的播出事故。
现今的IP技术还不够完善,希望随着科技的不断发展,音视频行业能够运用更先进的技术,实现更加完备的系统,系统时钟问题的解决会越来越便捷,为系统安全提供更可靠的保障。