用于设置接收器延迟时间的系统、方法和计算机可读介质转让专利

申请号 : CN200880023621.4

文献号 : CN101731011A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 安德鲁·怀特艾丹·威廉斯

申请人 : 奥迪耐特有限公司

摘要 :

本发明涉及媒体通道例如音频和视频通道的发送和接收。这些通道可以作为数据包从一个或多个发送装置发送至一个或多个接收装置以用于播放。本发明的一些实施方案包括用于确定数据网络延迟时间的系统、方法和计算机可读介质,以同步播放所接收的信号。此外,本发明的一些实施方案包括使与数据网络连接的装置之间同步播放的系统、方法和计算机可读介质。

权利要求 :

1.一种使与网络通信的多个接收装置同步播放媒体通道的方法,其特征在于:为与网络通信的多个接收装置提供共享的时间概念;

获得所述多个接收装置中每一个的最小延迟时间值和最大延迟时间值;

传送所述多个接收装置中每一个的所述最小延迟时间值和最大延迟时间值;

基于所述多个接收装置中每一个的所述最小延迟时间值和最大延迟时间值选择当前延迟时间值;和根据所述当前延迟时间值从所述多个接收装置中播放所述媒体通道。

2.根据权利要求1所述的方法,其中所述提供共享时间概念的步骤包括用精确时间协议使所述多个接收装置同步。

3.根据权利要求1所述的方法,其中所述多个接收装置中每一个的所述最小延迟时间值包括所述媒体通道的端至端延迟时间值。

4.根据权利要求1所述的方法,其中所述多个接收装置中每一个的所述最小延迟时间值是最坏情况时的延迟时间值。

5.根据权利要求1所述的方法,其中获得所述多个接收装置中每一个的所述最小延迟时间值的步骤包括测量数字域延迟时间值。

6.根据权利要求5所述的方法,其中测量所述数字域延迟时间值的步骤包括确定在初始时间戳和接收时间之间的差。

7.根据权利要求1所述的方法,其中根据每个接收装置的缓冲器大小确定所述多个接收装置中每一个的所述最大延迟时间值。

8.根据权利要求1所述的方法,其中传送所述多个接收装置中每一个的所述最小延迟时间值和所述最大延迟时间值的步骤还包括发布至数据库。

9.根据权利要求8所述的方法,其中所述数据库是分布式数据库。

10.根据权利要求1所述的方法,其中传送所述多个接收装置中每一个的所述最小延迟时间值和所述最大延迟时间值的步骤还包括发送多播消息。

11.根据权利要求1所述的方法,其中选择当前延迟时间值的步骤包括从所述多个接收装置的所述最小延迟时间值中的每一个中选择最低的最小延迟时间值。

12.根据权利要求1所述的方法,其中所述媒体通道发送压缩的音频。

13.一种使至少一个接收装置接收的至少一个媒体通道基本同步播放的方法,其特征在于包括以下步骤:确定至少一个媒体通道的最短延迟时间;

接收至少另一个接收器的最短延迟时间;和

使用所述确定的最短延迟时间或接收的最短延迟时间中较大值来确定所述至少另一个媒体通道的播放时间。

14.根据权利要求13所述的方法,其中所述确定的最短延迟时间是所述媒体通道的端至端延迟时间值。

15.根据权利要求13所述的方法,其中所述接收的最短延迟时间是所述媒体通道的端至端延迟时间值。

16.根据权利要求14或15所述的方法,其中所述媒体通道的所述端至端延迟时间值包括数字域延迟时间值。

17.根据权利要求14或15所述的方法,其中所述媒体通道的所述端至端延迟时间值包括来自所述数字域之外的至少一个延迟时间值。

18.根据权利要求16所述的方法,其中所述数字域延迟时间值包括接收器延迟时间值。

19.根据权利要求16所述的方法,其中所述数字域延迟时间值包括传送器延迟时间值。

20.根据权利要求16所述的方法,其中所述数字域延迟时间值包括传输延迟时间值。

21.根据权利要求17所述的方法,其中所述来自所述数字域之外的延迟时间值包括传送器延迟时间值。

22.根据权利要求21所述的方法,其中所述传送器延迟时间值接收自所述发传送器。

23.根据权利要求13至22中任一项所述的方法,其还包括确定最大延迟时间值的步骤。

24.根据权利要求23所述的方法,其中所述最大延迟时间值包括来自所述数字域之外的延迟时间值。

25.根据权利要求23所述的方法,其中所述最大延迟时间值包括最长缓冲器延迟时间。

26.根据权利要求13所述的方法,其中接收所述另一个接收器的所述最小延迟时间值的步骤包括从所述另一个接收器或从中央数据库接收多播消息。

27.根据权利要求13所述的方法,其还包括接收所述确定的最小延迟时间值或所述接收的所述另一个接收器的最小延迟时间值中较大值的步骤。

28.根据权利要求13所述的方法,其还包括基于包含在媒体信号中的时间戳来估计所述数字域延迟时间值。

29.一种计算机可读介质,所述可读介质存储了程序,该程序被设置以使得计算机执行权利要求1-28的步骤。

30.一种系统,其包括被设置为执行权利要求1-28的步骤的处理器和存储器。

31.一种使至少一个接收装置接收的至少一个通道基本同步播放的系统,其特征在于包括:具有存储器和处理器的接收器,其被设置以确定至少一个通道的第一延迟时间值,接收至少另一个接收器的第二延迟时间,和使用所述第一延迟时间或所述第二延迟时间中的较大值确定媒体通道的播放时间。

32.一种使至少一个接收装置接收的至少一个通道同步播放的系统,其特征在于包括:为至少一个接收器确定至少一个通道的最短延迟时间的装置;

为所述至少一个接收器接收至少另一个接收器的最短延迟时间的装置;和用所述确定的最短延迟时间或接收的最短延迟时间中的较大值为所述至少一个接收器确定所述媒体通道的播放时间的装置。

33.单独或联合地在此公开或在本申请说明书中提到的步骤、特征、整体、部分和/或组合,以及两个或更多所述步骤或特征的任意和全部组合。

说明书 :

技术领域

本发明涉及媒体通道例如音频和视频通道等的发送与接收。这些通道可以作为数据包从一个或多个传送装置传送至一个或多个用于播放的接收装置。本发明的一些实施方案包括用于确定数据网络延迟时间的系统、方法和计算机可读介质,以同步播放所接收的信号。此外,本发明的一些实施方案包括使与数据网络连接的装置之间同步播放的系统、方法和计算机可读介质。

发明背景

很多常规的媒体系统由模拟布线相连。通常,线路从设备的少数中央件辐射出去。沿电缆的传播延迟很短,以至于可以忽略。在这些实施中,由于设备仅有少数中央件,因此对于输入和输出延迟时间的补偿可以人工进行。
但是,几种因素能够导致设备的不同部分之间播放不同步。例如,不同的接收器(放大器和/或扬声器)播放信号所需的时间长短会不同,中间处理装置的存在与否将导致不同的延迟。
简单的模拟音频系统(短电缆运行,扬声器相同)通常使用完全同步的主-从系统。这样的实例可以是放大器和扬声器,其中放大器将信号置于线路中,扬声器受控于该信号并将其播出而不必担心计时。如果多个扬声器用来处理音频的时间大致相同,这通常是充分可行的(如果是同一种扬声器,通常处理音频的时间大致相同)。在大多数情况下,线缆上消耗的时间很少,以至于没有影响。但是在较大系统中,多个放大器和扬声器位于分散的位置处,延迟就不能被忽略了。此外,混合媒体情况(音频加视频)下,播放装置通常不相同。
但是,由于网络在信号分布和媒体装置大规模数字化方面的优点,分散式网络系统正在取代大规模模拟系统。数字系统通常会改善模拟音频的问题,但是会出现有关计时的新问题。
即使对于单一的传送器和接收器,数字音频系统也会有计时问题。数字系统中的传输路径通常涉及缓冲器和数字采样,这意味着数据必须根据时钟进入和离开缓冲器。该时钟速率通常需要与数字(采样)音频同步。如果该速率不同步,则接收器对采样的使用将快于传送器对采样的发送(并用尽采样)或者慢于传送器对采样的发送(并溢出其缓冲器)。因此传送器和所有的接收器都必须严格按照(平均)相同的速率运行以避免产生音频赝象。
可以用速率和偏移来描述时钟差异。速率应用于所有时钟,指该时钟运行得有多快。如果两个时钟以不同速率运行,则会发生缓冲器溢出和欠载。偏移仅应用于维持时间值的时钟,用于测量每个时钟当前值之间的差异。简单的数字计时机制仅仅使速率同步。利用一种机制使得传送器或网络上的特定装置为该网络上的每个装置指示和规定时钟速率。
一些结构(例如“AES”)使用在1-4个采样范围内的非常小的缓冲器。AES传送器将复合数字音频沿专用线发送。这些结构中的接收器直接受控于该传送器并读取每个采样的数据。通常速率由采样的到达来控制,而偏移通常被忽略。
相反,可以采用基于数据包的结构。这些结构通常需要大得多的缓冲器,因为该缓冲器必须容纳完整“数据包”,相当于采样加上足够空间,以允许该数据包媒体用任意长时间来发送数据包。实现这种结构的常用方式是为该系统限定整个系统的固定延迟,然后在发送协议中使用计时机制来实现计时的一致性。
例如,一种技术可以用数据包中的计时信息控制速率和时间,并且规定在播放前所有节点必须允许3ms的延迟。通常,在所有组件规格几乎一致且网络被紧密控制(例如所有的I/O都是通过一个厂家的硬件板完成)的系统中这是充分可行的,但是在具有明显差异组件的系统中将存在问题。
一些这样的系统(例如“CobraNet”)仅受速率控制,使用定期的管理数据包(conductor packet)来控制计时和规范时钟。管理数据包的一个缺点是每个网络跳跃都增加延迟以至于多个时钟相对于偏移不同步。在这样的系统中,输出时间的变化可以是几百微秒或者更多。
通常,基于数据包的不太复杂的结构不会强制进行持续同步。时钟通过最初的发送而大致同步,然后就自由运行。通过定期重新同步音频(例如在每首歌之后)来处理缓冲问题和同步化。这对于经常停顿的低精度系统(例如家庭音响流)可以获得令人满意的效果,但是对于专业音响就不行了。(例如)个人电脑的时钟在5-10分钟内能够轻易漂移50ms,这足以产生明显的音频赝象。例如,对于未规范的晶体振荡器(undisciplinedoscillator crystal),自“标称”值出现50-100PPM(百万分之一)误差(在10分钟内30-60ms)不算偶然。可以自由运行的规范的晶体(disciplined crystal)相互之间能够保持1-2PPM,但是这首先要有一个同步机制对它们进行规范。
当存在多于一个传送器时,主-从系统也可能遇到问题。不同传送器之间的时钟速率会不同。为了解决这一点,时钟可以被单一源设备同步;例如,传输网络中的主机或外部文字时钟(word clock)。或者,接收器对于每一个输出可以运行不同的时钟和缓冲域,然后进行后续处理以相对于该接收器的内部时钟速率(可能受控于输入信号)调整输入。后一策略的结果是接收器对不同时钟域的后续处理可能不是正确同步的,来自不同时钟范围的发送也可能不是正确同步的。
常规数字音频网络可以涉及分布式数字媒体系统,其由各种各样的现成网络装置和电缆组成,但终端节点通常是专有装置。结果是分布式媒体系统包括许多用于让媒体信号在网络上通过的匣子。
现有的数字媒体网络技术通常存在许多问题,例如但不限于以下列出的问题:
·整个网络的数据包大小和采样速率是固定的
·固定或受限的拓扑结构,例如延迟时间的固定上限
·传输延迟非常长以至于无法忽略
·打包(Packetisation)延迟(用于收集采样并将它们打包的时间),这是基于TCP/IP或以太网的音频网络所固有的,其非常长以至于无法忽略
此外,现有的音频网络技术通常:
·无法解决网络中逐个跳跃引入的延迟时间
·视所有发送器和接收器具有相同的特征(例如,输入延迟时间、打包延迟、传输计时中的变化)
·由于所有的发送器和接收器具有相同的延迟时间,因此以网络中最慢节点的延迟时间运行
·通常人工管理延迟时间(即,给定网络拓扑结构,用笔和纸计算),或者将整个网络的延迟时间设为最糟情况下的最大值。
这些类型的局限性已经限制了对现有媒体网络技术的利用。

发明内容

本发明的某些实施方案致力于解决一部分上述问题和局限。
本发明的某些实施方案的应用能够使媒体网络中的延迟时间最小化。
本发明的某些实施方案的应用能够使多组信号(例如,立体声左/右声道、多个扬声器和音乐会或会议上的视频屏幕)同步。
本发明的某些实施方案的应用能够设定延迟时间以确保可靠的接收。
本发明的某些实施方案的应用能够尽可能容易地设定延迟时间,并且在某些方面对于用户来说是自动的。
本发明的某些实施方案的应用能够获得采样的精确计时,这意味着在一个采样周期中计时是精确的(例如,对于96KHz音频采样为+/-10μs)。
本发明的某些实施方案的应用能够在一个或多个接收器上得到一组输出,它们的信号可以是从多个传送器发出的,并且接收器基本上在相同时间播放它们。
本发明的某些实施方案的应用能够根据信号和播放装置(例如接收器)给不同组的输出设置不同的延迟时间(或者甚至是“不予理睬”值)。
在某些实施方案中,本发明关注使多个接收器装置接收的媒体通道的播放同步化的系统、方法和计算机可读介质。
在某些实施方案中,本发明关注使与网络通信的多个接收装置之间的媒体通道播放同步化的系统、方法和计算机可读介质,其特征在于以下步骤:向与网络通信的多个接收装置提供共享的时间概念;获得所述多个接收装置中每一个的最小延迟时间值和最大延迟时间值;传送所述多个接收装置中每一个的最小延迟时间值和最大延迟时间值;基于所述多个接收装置中每一个的最小延迟时间值和最大延迟时间值选择当前延迟时间值;和根据所述当前延迟时间值,从所述多个接收装置播放媒体通道。
在某些实施方案中,本发明关注使至少一个接收器装置接收的至少一个通道的播放同步化的系统、方法和计算机可读介质,其特征在于以下步骤:
至少一个接收器确定至少一个通道的最短延迟时间;
所述至少一个接收器接收至少另一个接收器的最短延迟时间;和
所述至少一个接收器利用所确定的最短延迟时间和所接收的最短延迟时间中的较大值来确定所述媒体通道的播放时间。
在某些实施方案中,本发明关注使至少一个接收器装置所接收的至少一个通道的播放基本同步化的系统、方法和计算机可读介质,该方法包括以下步骤:
至少一个接收器确定至少一个通道的第一延迟时间;
所述至少一个接收器接收至少另一个接收器的第二延迟时间;和
所述至少一个接收器利用所述第一延迟时间和所述第二延迟时间中的较大值来确定所述媒体通道的播放时间。
在某些实施方案中,本发明关注使至少一个接收器装置接收的至少一个通道的播放同步化的系统、方法和计算机可读介质,其特征在于:
为至少一个接收器确定至少一个通道的最短延迟时间的装置;
为所述至少一个接收器接收至少另一个接收器的最短延迟时间的装置;和
为所述至少一个接收器利用所确定的最短延迟时间和所接收的最短延迟时间中的较大者来确定所述媒体通道的播放时间的装置。
这可以允许媒体网络的接收器根据它们自身特征适应性地设置播放时间,并在它们之间协定延迟时间的时间值。在一些方面,由于不需要传送器来直接决定播放时间,因此消除或者基本消除了对于来自发送装置的延迟时间值进行协定的必要。改由更容易获得传输和播放延迟信息的接收器来做这些决定。
对于所述媒体通道,所确定(和所接收)的最短延迟时间可以是端到端的延迟时间值。所述端到端的延迟时间值可以包括:
数字域延迟时间值;和
所述数字域之外的延迟时间值。
所述数字域延迟时间值可以包括:
接收器延迟时间值;
传送器延迟时间值;和
传输延迟时间值。
所述数字域之外的延迟时间值可以包括传送器延迟时间值,例如从提取采样到为该采样标记时间戳所用的时间。可以从所述传送器接收该传送器延迟时间值。
在某些实施方案中,所述系统、方法和计算机可读介质还可以包含确定最大延迟时间值的步骤。所述最大延迟时间值可以包括但不限于以下部分:
所述数字域之外的延迟时间值;和
最大缓冲器延迟时间。
如果确定的所述媒体通道播放时间的延迟时间比所确定的接收器最长延迟时间还长,所述接收器可以执行一些动作,例如,发送错误消息。
在某些实施方案中,接收器可以从另一个接收器或中央数据库接收另一个接收器的最小延迟时间值作为多播消息。
在某些实施方案中,所述系统、方法和计算机可读介质可以包括以下步骤:发送另一接收器的所确定的最小延迟时间值或所接收的最小延迟时间值中的较大者。此外,这可以作为多播消息或发送至中央数据库。
所披露的系统、方法和计算机可读介质可以由接收相同媒体通道的每个接收器执行或与其一起运行。这些接收器可以被视为一组。如果该组的任何一个接收器用于再接收一个媒体通道,以与所述媒体通道同步播放,则为该接收器确定的最短延迟时间可以是该接收器将要接收的全部媒体通道的最短延迟时间中的最大值。
当接收器加入和离开所述组或所接收的媒体信号变化时,为了更新该接收器使用的延迟时间值,可以在接收媒体通道之前执行或运行所述系统、方法和计算机可读介质。
对媒体通道播放时间的确定可以包括确定接收器缓冲器的延迟时间偏移。
所述系统、方法和计算机可读介质可以进一步包括基于包含在媒体信号中的时间戳来建立数字域延迟时间值。可以基于估算的数字域延迟时间值来修改所确定的最短延迟时间。
某些实施方案还关注可以根据在此披露的方法来操作接收器的计算机软件程序。
某些实施方案还关注至少一种用于执行在此所披露的方法的接收器装置。
某些实施方案还关注向至少一个传送器装置传送所述接收装置延迟时间的至少一个传送器装置。
某些实施方案还关注至少一种数据网络,其包含至少一个接收器装置和至少一个传送器装置。

附图说明

图1A和图1B显示具有根据某些实施方案的接收器装置和传送器装置的示例性数据网络;
图2是根据某些实施方案在数据网络传输过程中具有不同量跳跃的两个信号的示意图;
图3A至图3D显示根据某些实施方案具有多个接收器装置、多个传送器装置和共同时间概念的示例性数据网络;
图4和图5显示根据某些实施方案的数据网络延迟时间的示意图;
图6显示根据某些实施方案由接收器发送的消息格式的示意图;
图7显示根据某些实施方案的某些系统、方法和计算机可读介质的流程图;和
图8显示根据某些实施方案的数据网络。
示例性实施方案的详细说明
尽管在此参照传输和接收媒体通道的具体示例性实施方案对本发明进行了描述,但是根据本说明书,本领域技术人员应当容易地理解,在此披露的本发明并不限于这些实施方案。
在整个说明书中,相似的参考数字在图中用于表示相同特征。
本发明的某些实施方案可以在具有多个传送器和接收器(包含不同种类(不一样)和/或同类(基本一样)装置)的系统中有效地处理媒体通道。独立的计时协议(clocking protocol)可以在每个节点上规定本地时钟的速率和数值,给每个装置提供共同时间概念(在几微秒以内,或者甚至更精确)。
本发明的某些实施方案消除了对现有媒体网络技术的限制,支持现成网络的灵活而有效的网络联接。这样的灵活性能够实现网络系统终端用户原本难以管理或设置的许多特征。因为不同类型的音频装置通常具有不同的性能特征,如果人工设置具有两个以上装置的网络,用户需要应付过多的旋钮和操作盘。本发明所述的自动技术可以减轻用户的负担并增加装置操作的可靠性(例如,接收器延迟时间的错误设置可能导致音频故障)。
本发明某些实施方案解决的一个问题是,在网络媒体系统中,为了实现可接受的同步化,每一个潜在的传送器与接收器的配对都会引入一个必须要考虑和设置的新变量。一些常规系统通过设置固定参数(例如,经过该系统的延迟时间将被设置为3ms)来解决这一问题,但是这样会限制混合和匹配不同类型装置的能力。这意味着较好的装置无法较快运行,而较慢的装置根本无法运行。具有高精度计时和快速传输路径(例如,一次切换跳跃和千兆比特以太网)的装置能够在短于1ms的时间内可靠地将数据移动通过该系统的数字部分。未来对以太网、芯片硬件和计时技术的改进还可以使其变得更快。在许多使用情形中,值得去开发这样的短延迟时间。另一些系统,例如基于软件的系统,受到不精确计时的困扰,极少数情况下会使时钟慢多达5-10ms。系统中具有3ms超时的这种装置偶尔会导致数据丢失。
到底什么样的同步化可以被接受取决于具体应用和一些其它因素。例如,对于音响效果而言同步化是复杂的,例如,当你移动头部时,左右喇叭之间的距离在改变。此外,存在所谓的Haas效应。这种Haas效应也被称为优先效应,描述了下述人体心理声学现象,即,正确识别两耳都听到但却是在不同时间到达的声源的方向。由于头部的几何结构,来自于任一声音源的直达声音首先进入最接近该声音源的耳朵,然后才是距离较远的耳朵。该Haas效应告诉我们,如果后面的声音能在25-35ms之内到达,则人类基于首先到达的声音定位声音来源。如果后面的声音到达时间比25-35ms还长,则人类听到两个截然不同的声音。
Haas效应能够产生使一对立体声扬声器中的一个音量明显增加的效果。在高质量的高保真系统中,当两个立体声通路之间仅有1-2ms的时间差时就能察觉到该效应,当时间差达到大约25ms时该效应逐渐变得明显。更长时间的滞后将被感知为回音和回响。因此,为了避免Haas效应,需要将网络连接的多通道扬声器同步化。
如果采样不通过扬声器播放,而是经不同路径传入混频装置(例如音频混频器)中,则1ms就太不准确了。即使单次采样的差异也会导致相同输入信号之间的干扰,当输入漂移更加不协调时,干扰就变得更加明显。
对于数字系统,可接受的同步化可以用术语“采样准确同步化”来描述。当把两个信号数字化结合时,可以将它们与采样同步。如果它们不与采样同步,频率扭曲效应(如梳状滤波)会影响所产生的声音质量。采样准确计时取决于采样率。例如,在48KHz时,采样周期是大约21μs。为了及时明确地同步采样,通常会用大约20%的采样周期作为同步化对象。对于192KHz的采样频率,其被转换为±1μs相位的同步化准确度。
本发明的实施方案可以包括一种或多种以下特征的组合,这些特征中的每一个将在下文中详细介绍:
(1)装置之间共享的“时间”概念(例如,通过IEEE 1588-2002标准中所定义的精确时间协议(PTP)同步化的不同的内部时钟);
(2)获得接收装置和播放装置通道的延迟时间值的机制;
(a)解决传送引起的延迟时间的机制;
(b)解决接收装置内部处理过程中的延迟时间的机制;
(3)对将要共享播放共同延迟时间的装置“组”进行定义的机制;和
(4)在组内成员之间共享延迟时间信息并选择满足全部制约条件的值的机制(或者确定无法满足所述制约条件并有效地从该状态中恢复的机制)。
图1A显示了用于传输媒体信号的示例性网络10。合适的网络可以包括可以传送媒体的任何数据传送结构。例如,网络可以包括一个或组合的有线和/或无线以太网网络(例如,802.11,常规以太网)、火线(Firewire)或类似的媒体总线、光纤分布式数据接口(FDDI)/光纤网络、和/或点对点形式的声音传送网络(例如,AES)。源信号通过三个发送装置16、106、206被发送至网络上。典型的音频源可以包括例如一个或多个麦克风、乐器、唱盘、CD/磁带/声音FX平台和计算机的组合。三个接收装置18、108、208接收这些信号并处理和播放。典型的音频接收装置可以包括例如扬声器、放大器和记录装置。尽管在此示例性地示出了三个发送装置和三个接收装置,可以使用任意数量的发送装置和接收装置的任何组合。此外,一个或多个所述装置可以既是音频源又是音频接收装置。这样的装置的实例可以包括混音台(可以由计算机充当)、FX和其它处理单元,和与其它传输媒体连接的接口。存在视频或其它信号媒体的模拟装置,例如摄影机和电视监视器。
所示的媒体信号通常是一些数字或离散格式形式的。对于音频和视频,所述信号可以是周期性采样。其它媒体可以发送非周期性数据(例如,MIDI)。
在一些实施中,源设备16、106、206与接收器18、108、208之间的时间同步化是重要的。时间同步化不好会导致缓冲错误和播放不同步。因此,在一些实施中,期望在接收器18、108、208之间以及在发送器16、106、206和接收器18、108、208之间存在牢固的计时关系。
控制缓冲和/或速率也是有益的。接收器18、108、208通常将采样的数字媒体数据置于缓冲器中处理。如果来自网络的采样信号以比它们的消除速率更快的速率放入缓冲器,该缓冲器会溢出,数据丢失。如果接收采样信号的速率比它们的消除速率慢,则该缓冲器最终将变空,播放会产生故障。
因此,常常对传送器16和接收器18彼此参照地进行速率控制,使接收器移除采样的速率与传送器输入采样信号的速率相同。缓冲器允许一些误差,但通常这必须是(相对)很小的,并且平均速率通常要匹配。
或者,可以使用一种机制(例如同步采样速率转换器)对所接收的采样信号进行再处理以匹配接收器的实际采样速率。但是,这很费时并且昂贵,还会降低采样信号质量。
使用多个接收器18、108、208播放单一信号增加了额外的复杂程度。不仅需要根据信号源对每个接收器进行速率控制,还需要在“同一”时间对播放相同媒体的每个接收器进行这样的操作。就音频而言,即使是几毫秒的差异也能够被一些听众察觉;而几十或上百毫秒的差异会变得非常明显。
对于多个信号,播放同步化也是很重要的。例如,如果将音频信号发送到“左”和“右”扬声器,它们需要在相同时间播放,否则会产生明显的赝象。
某些媒体传送机制不需要控制速率,通常是因为它们不是建立在采样机制上。模拟音频或MIDI命令就是这样的实例。但是,这样的系统仍然能够从播放同步化中获益。
图1B显示了表示多媒体来源的示例性系统。如图所示,用于音乐会的单个网络可以具有针对表演者的返送或耳内监听系统,其要求极短的延迟时间;针对听众的台前混音系统(front-of-house),其要求适度短的延迟时间;混音控制台;以及记录表演的节点(例如,计算机),其通常以长延迟时间运行。
参考图2所示的示例性系统,一个信号路径20从源16经过单次跳跃在接收器108播放,而其它信号路径21、22、23必须经过三次跳跃才到达接收器18。假设每次跳跃都会增加无法忽略的延迟量,经过单次跳跃的信号20引起的延迟24较短并比经过多次跳跃引起较长延迟的信号21、22、23显著更早地播放。在某些实施方案中,可以通过使较快的信号20(通常在接收器108上)延迟的机制来补偿延迟24与26的差异,从而使得所有信号都同时播放。
某些实施方案为网络中的部分或全部装置提供共享时间概念。共享时间概念(而不仅仅是速率)有利地避免了某些延迟时间同步化的问题。如果网络中的多个接收器共享相同的时间并具有充足的缓冲器(随后介绍),则某些实施方案允许所述接收器在特定时间之前缓冲每个采样,然后播放。有利的是,这可以消除打包和传输造成的一些延迟时间同步化问题。但是,应当注意,这样的延迟时间对于总体系统延迟时间仍然很重要,例如对于实况音乐会而言,但对于同步化播放而言没有影响。需要解决的其余延迟时间差异是每个装置的内部处理延迟时间。
在某些实施方案中,当处理单一来源和数字数据采样时,速率控制机制使接收器的时钟速率受控于通信连接。该接收器使时钟速率与输入的采样信号的平均速率匹配,因此在传送器正确发送时维持速率受控的时钟。
同样的机制可以运用在级联中,每个接收器的速率与上游的传送器匹配。但是,当单个接收器必须受控于不止一个传送器时(例如,混音台)上述机制不再适用,除非那些传送器的速率也是互控的。这个机制不提供播放同步化,除非在接收器中人工地增加人为延迟。
在某些方面,可以使用替代机制,其取消级联并引入总时钟(globalclock),该总时钟管理网络中的传送器和接收器。网络上的全部或几乎全部的活动都受控于该时钟的脉冲。
这可以消除级联跳跃引起的延迟,并为全部或基本上全部接收器提供同步化和速率控制。但是,存在升级(scalability)问题。因为信号仍然由时钟同步脉冲/数据包的周期性到达来计时,网络被限制为一定大小、速度和带宽(其能够传送与该时钟脉冲一致的数据)。
在某些使用总时钟的系统(例如,Cobranet)中,当时钟脉冲通过网络切换时它们被逐个跳跃延迟。在这样的情况下,一个接收器与另一个接收器的路径长度会不同,因此播放同步化成为一个问题。
更强大的系统共享下述时钟,该时钟的速率和偏移均被控制。这使得采样可以在参考公共时基的特定时间被播放。由于所有的采样在播放之前可以被同步,所以这类系统较少受到传输时间变化的影响。
在某些实施方案中,优选的解决方案可以使计时和数据传送解耦。参考图3A,每个装置16和18以其自身独立的时钟30和32运行,并且利用机制规范所有这些时钟,使得它们共享“相同”的时间34(达到一定程度的准确性)。所述规范运算公式不记录网络的时间,而是确保各个时钟不会不可接受地漂移。这样,网络就能够容忍短时间(根据时钟质量,这里的“短”可以多达几分钟或者甚至几小时)没有时钟规范但仍然继续可靠地运行。
这样的计时结构提供了速率和时间/相的同步化。时钟不仅以相同的平均速率运行(提供速率控制),而且这些装置能够有意义地彼此传送绝对计时信息。
某些实施方案假设网络中的发送器和接收器具有时钟形式的共享时间,该时钟提供相和频率信息。该时钟一般以秒/纳秒来表示时间并通过网络时间协议使从时钟与主装置同步化。
出于管理或升级原因,可以将给定的网络分为几个区域,每个区域可以有一个主时钟。例如,如图3B中所示,可以以一定层次设置多个时钟。如图所示,在不同地理位置的网络主时钟可以受控于例如GPS时间源。例如,主音频网络桥可以根据IEEE 1588进行单播,从而为整个网络的从音频网络桥提供一致的时间观念。从音频网络桥可以根据IEEE 1588依次多播,为各个音频装置(图3B中的RX)提供一致的时间观念。
接收器上的缓冲器可以补偿发送器和网络的计时抖动。所述接收器缓冲器可以视为从时间零点(立即被发送器和接收器共享的时间)延伸至将来某一N×T的时间,其中T是信号的采样周期,N是采样数量,它们都可以存储在所述缓冲器中。存储采样的缓冲器位置可以如下计算:所述接收器对这一通道的延迟时间加上接收的音频数据包中的时间戳。
但是,接收器缓冲器不一定要从零点开始,它可以在零点之后开始。考虑以下情形,网络在发送器和接收器之间具有长时间的传输延迟(即,100ms),但该接收器对音频采样只具有10ms的缓冲。倘若数据包到达的间隔时间在10ms之内,则该接收器通过在零点+100ms启动接收缓冲器就能够顺利地接收音频,由此表明如图3C所示缓冲器结束时间为110ms。
这些对接收器缓冲器时间跨度的观察可以支持具有一个以上时基的网络。在这样的网络中,假设多个时钟主机具有稳定和准确的频率源但是绝对时基不同(例如,它们的秒/纳秒相位信息是不同的)。高度稳定的频率源是容易获得的(例如,使用铷振荡器产生精确的10MHz频率源的AntelopeAudio Isochrone 10M)。另一种稳定的频率源是GPS,其可以用于规范本地主时钟的频率而不设定绝对秒/纳秒时间。
图3D显示存在两个演播室(即演播室A和演播室B)的示例性结构。演播室A在第一网络中运行,该第一网络具有稳定的铷主时钟,其保持从1000.0(秒.μs)开始的时基时间。演播室B在第二网络中运行,该第二网络具有稳定的铷主时钟,其保持从500000.0(秒.μs)开始的时基时间。当演播室A中的发送器向演播室B中的接收器发送数据时,由于499000的时基差会存在一些差异。如图3D中所示,演播室B中的接收器在计算采样缓冲器位置时通过减去两个网络之间的时基差以补偿该时基差。
在某些实施方案中,缓冲器位置=((数据包_时间戳_sec_ns+(时基_B-时基_A))/T+RX_延迟时间)mod N
其中:
所述接收缓冲器是循环缓冲器且存储N个采样
RX延迟时间在采样中表示
T是采样周期
媒体数据有两个明显的时基。第一个为自然时间:秒、纳秒等。对于以固定速率提供的媒体(例如音频采样,视频帧),以这些单位(我们通常会将其称为“采样”)测量时间会更容易一些。
计时系统具有“时点(epoch)”或时间0的概念。其可以是一个特定日期(对于POSIX系统是1970年1月1日午夜),或者只是该迭代的计时系统启动的时间。时间表示为从时点的偏移。
某些时间形式是从时点开始的最小表达单位的简单计数。例如,系统可以用从时点开始的采样数来表示时间。转换到较高单位需要细分计数。另一些形式使用分级表示法,例如秒+纳秒或者秒+从时点起的采样数。这更便于某些应用。
使用基于采样而不是自然时间来进行测量的优点是基于采样的操作通常关注于已经流逝了多少采样,而不是多少秒或纳秒。从自然时间到采样计数的转换通常不能在秒以下均分,这样在转换后的时间中出现各种舍入效果(rounding effect),使它们不太便于使用。以浮点或其它分数表示形式来表示时间都具有类似的问题。
采样的缺点在于,它们仅在每一个都使用采样速率相同的采样媒体数据时才有效。种类不同的系统或者处理非周期数据的系统使用自然时间形式会更好。例如,使采样速率不同的音频和视频或者音频同步化时使用自然时间会更加清楚。
请注意:用秒+纳秒作为自然时间计量方式只是一个例子。不排除使用毫秒、微秒、天或任何其它自然时间的计量方式。
本说明书下文中的时间可能表示为微秒(或另一种自然时间形式)、或采样数、或一种完全不同的时间形式。假设存在一种时间形式的标准化机制。其可以简单地指定在本发明的特定情形下总是使用特定的时间形式。
在某些实施方案中,在网络中发送的全部、基本全部、大部分或一些数据可以用共享的网络时间来标记时间戳。因此,任何具有正确规范的时钟的接收器都可以准确地为每一项媒体数据计时,而不考虑传输延迟。如果单项媒体数据的多个接收器被指示在特定时间播放该单项媒体数据,则它们能够在相同时间播放该单项媒体数据而不考虑网络间的不同延迟。计时问题由此简化为“这个信号能足够快地到达那里吗?”以及“我如何能够使延迟最小化?”
媒体时间戳通常有两种形式:“呈现时间”时间戳和“来源/发送器”时间戳。“呈现时间”时间戳表示该采样将被播放或“被演示”的时间。“来源/发送器”时间戳表示该采样被收集而不是其要被呈现的时间。优选的实施方案采用“来源/发送器”时间戳,因为这种方式简化了对延迟时间的管理并使采样更容易在时间上同步以进行混合。
但是,通过减去包含在呈现时间中的恒定延迟,在此公开的某些实施方案可以用于使用呈现时间戳的系统。使用呈现时间戳的示例性系统为:火线/1394、MPEG和最近使用的AVB标准成果(从火线承继而来)。通常这些系统假定恒定的传送延迟时间(例如,对于AVB是2ms),对于外发数据包,发送器用“现在时间+恒定的延迟时间”作为呈现时间对每个媒体数据包进行标记时间戳。
通常,在一项媒体数据上的时间戳反映该数据创建于何时。因此,信号源会用每个信号被数字化(例如输入到模数转换器)或被合成的时间作为每个信号的时间戳。时间戳的创建时间(而不是,比方说传送时间)使得可以对不同装置传输信号的时间戳进行有意义的比较和同步。
在实践中,这造成了复杂的情形,尤其对于输入的延迟时间不同的装置。因此,可以在发送装置中一个适当的点(例如,当采样进入数字域时)对数据包进行标记时间戳,并且可以将表示来源时间和时间戳之间的延迟的附加参数传送给接收器。
需要注意,给每一项或基本上每一项媒体数据标记时间戳不需要给(例如)音频数据的每个采样加上物理性时间戳。如果来自单个信号周期性音频数据的20个采样在一个数据包中被发送,仅仅给第一个采样标记时间戳即也代表了其余采样的时间戳。
延迟时间是在信号传送路径中或通过信号传送路径的延迟。例如,在某时间点,被及时标记时间戳的一项媒体数据直到两微秒之后才能在接收器上播放,该项媒体数据的延迟时间是两微秒。
在本发明的某些实施方案中,延迟时间受到一些制约条件的限制。下限可以是一组中(下面介绍)每个通道的延迟时间。上限可以是该组中每个通道支持的最长延迟时间(通常缓冲受限)。例如,接收器所支持的总延迟时间可以取决于缓冲器大小。能够缓冲256个采样(在48KHz时为5.3ms)的接收器能够存储任何单个采样不超过5.3秒,而不会发生缓冲溢出错误。只要能够确认采样不会早于播放时间之前5.3ms到达接收器,具有长传输延迟的系统就能够应对超过5.3ms的延迟时间。例如,对于数据包要用至少2ms才能到达接收器的传输媒体,其允许7.3ms的延迟时间。在非桥接的以太网环境中,可以非常快速地传递数据包,因此设定缓冲器尺寸=支持的最长延迟时间是理望的。可以在系统中设置最小值或最大值的其它限制(例如,通过用户)。
延迟时间可以影响时间同步的播放。如果需要两微秒才能将数据从标记时间戳的点可靠地移动到用于播放的接收器,那么该接收器必须在该时间戳所指示的时间之后至少两微秒再播放该媒体数据。接收器可以等待更长的时间,但是如果接收器选择比这更短的延迟,则当接收器试图播放该数据时该数据可能还没有到达。
在某些实施方案中,传送器会给媒体数据标记时间戳(例如,给每个数据包中的第一个采样写上时间戳并外推至其余采样)。每个接收器会具有“延迟时间偏移”值,将该值与时间戳相加以确定播放时间。可以实施服务发现协议(service discovery protocol)或其它机制,以允许传送器通知接收器该传送器推荐的最小延迟时间偏移。接收器可以将该值与本地值结合以确定播放的适当偏移。此外,因为接收器对采样的缓冲通常必须从接收采样开始直到播放时间,因此延迟时间偏移能够确定该接收器的最大缓冲。
影响传送器提供的偏移的因素可能包括以下一项或几项:
-传送器时钟和计时抖动(如果传送器会发送延迟的数据包,可以在偏移中对其进行补偿);
-传送器处理时间;
-记录数据包到达网络的时间;和
-网络传输时间。
影响接收器本地偏移的因素可能包括以下一项或几项:
-时钟和计时抖动(在传送器和接收器之间的时钟偏差,能够使传输时间似乎更长(接收器时钟较早)或更短(接收器时钟较晚));
-接收器处理时间;和
-网络传输时间(因为发送者可能不太了解网络)。
在某些实施方案中,接收器还可以测量所接收的数据包的时间与本地时间戳之间的差异,以获得对延迟时间的估计(使用所接收的最长值)。如果测量值比传送器的估计值小,则最为保守的做法是使用传送器的估计值(尽管这不是要求的),因为其很可能包括了对传送器计时抖动的补偿。该抖动甚至在几秒的采样中可能都不会显现。为了允许系统中的延迟时间,接收器会将其播放时间从同步化的总时钟偏移固定的量。由传送器标记时间戳为T的采样将在T+X时播放,时间戳为T+1的采样会在T+X+1时播放,依此类推。如果X太短,则一些采样或全部采样将没有足够的时间从传送器到达接收器,无法被播放。如果X太长,则实时接收器在播放它们的采样时会太慢,以至于对演员、音乐家、观众或其它适合的用户形成明显延迟。X也受到接收器采样缓冲器大小的限制;如果在接收采样的时间和播放采样的时间之间存在过长延迟,则接收器的存储量可能不足以保存全部采样。
例如,轻便装置上的缓冲器可能为256个采样长度,而传送器可能会在一个数据包中发送相当于20帧的采样。其它适合的缓冲器大小可以是任何采样数量的长度,例如,8、16、32、64、128、512、1024、2048或更大的采样长度。在96KHz时,256个采样大约为2.7毫秒,而20帧大约是200微秒。假设时间记录良好且没有传送或处理延迟,则传送器需要200μs来为数据包收集采样,因此任何小于200μs(20个采样)的X值都会导致采样丢失。相反,大于2.7ms(256个采样)的X值会导致采样被写到缓冲器外面。为了允许传输和处理延迟,所述装置可能需要使用1ms(1000μs,96个采样)的默认延迟时间。
已知X为接收器延迟时间偏移(或仅是延迟时间偏移)——接收器中用于补偿延迟时间的时间偏移。
网络需要相当长的时间来传送信号(在100Mbit以太网中,几百微秒或更多,特别是具有多次切换跳跃时),并且这个时间是可变的。例如,假设模拟信号进入发送装置(例如,从麦克风)并由接收装置(例如,扬声器)播放。这之间存在大量的处理步骤,并且每个步骤都会增加延迟。这些延迟之和称为延迟时间。
首先,发送装置需要通过模拟数字(A/D)转换器将模拟信号转化为数字采样流。然后,在将数据包作为字节序列(sequence of bits)发送至其网络接口之前,发送装置将一定数量这样的采样缓冲在一起形成数据包。A/D转换器需要一定的时间来处理这些信号,在等待收集到足够的采样时产生了额外的延迟,最后A/D转换器花时间将这些采样组合为数据包并通过网络接口对每个字节“计时发出(clock out)”。
数据包作为字节序列必须通过网络到达接收器。在该过程中,数据包会经过一个或多个切换,每个这样的切换必须将数据包从线上读取下来(假设是有线网络,其实无线连接也是一样的),可能对数据包进行缓冲以进行处理或等待另一线路变为可用,接着再次将数据包作为数位序列写到另一线路上。与处理、缓冲数据包一样,将这些字节读取至线路之上和从线路上读取下来也需要时间。如果所确定的目标线路已经占用,就会产生非常明显的延迟。
最后,接收器必须将数据包从线路上读取下来,呈递数据包以进行缓冲和处理,最后使每个采样运行通过D/A转换器并将采样传送至模拟线路以播放。
此外,真实的时钟并不理想。在某些情况下,无法将有缺陷的真实时钟所引起的误差与传输延迟加以区分。在这些情况下,时钟抖动或处理延迟会造成某些数据显得其似乎发送“迟了”,进一步增加了延迟。
在某些实施方案中,由于上面所包含的因素,对系统而言可以使用两种不同延迟时间值。现在参考图4,第一个延迟时间44是从该数据包被标记时间戳38(并进入“标记了时间戳的数字域”)起至该数据包被读出接收器18的输出缓冲器40并传送出该系统(例如,到达D/A转换器)时的延迟时间。因此该延迟时间44测量了整个数字媒体网络的延迟时间,当从缓冲器40提取采样时,接收器18的“延迟时间偏移”必须考虑该延迟时间。可以以几种方式获得传输延迟时间。例如,在某些实施方案中,接收器可以通过将它们的时间与所接收的采样的时间进行比较而测量该延迟时间。在其它实施方案中,传送器可以提供它们自身延迟时间的估计值,接收器可以将其用于自身启发法。
处理过程也可以在标记时间戳的数字域之外进行。第二延迟时间46测量值是整个所述系统的端至端的延迟时间,从信号被采样时48到其被播放时50。这包含了通过数字媒体网络的延迟时间44,因此延迟时间46必定要大于第一延迟时间44。对于任何给定的装置,处理延迟时间通常应当是公知或公布的,但是也可以通过测量来获得。
简单的情况是从单一传送器向单一接收器发送单一信号(或者单独一组的同步信号)。当应对多个传送器和/或多个接收器时,情况就变得更复杂了。
当单一的传送器向多个接收器发送单一数据包流时,每个接收器可以具有不同的通过网络的延迟时间。类似的,接收器也可以由具有不同总延迟时间的不同装置播放。为了实现同步播放,可以对接收器进行设置,使得所有接收器对于单一信号具有相同的端至端延迟时间。这可以与具有相同的延迟时间偏移一样,也可以不一样。
在多个传送器的情况下,不同信号可以具有不同的总延迟时间。这也会发生在来自单独发送器的各个独立的信号上(例如:音频和视频可以分别具有不同的延迟时间)。不同的采样机制或传送路径也会导致不同的端至端延迟时间。如果接收器想要保持同步的播放时间,其必须为每个信号设计相同的端至端延迟时间。因此用于所有信号的该延迟时间必须足够大以适应任何可出现的信号延迟时间的最坏情况。
为了实现在多个接收器情况下的同步播放,希望每个接收器具有相同或基本相同的端至端延迟时间。因此,用来设置所有接收器的延迟时间满足所述组中任何接收器接收的任何信号所需要的最短延迟时间和所述组中任何接收器所支持的最长延迟时间。每个接收器能够将所述端至端延迟时间转换为适于其缓冲器的延迟时间偏移。
也可以使用一对用于自动设置适当的接收端至端延迟时间和延迟时间偏移的机制。
第一个机制允许传送器向接收器传送信号的本地延迟时间测量值60。然后接收器将传输时间的延迟时间测量值和接收器处理的延迟时间测量值相加,得到端至端延迟时间测量值(并由此设立延迟时间偏移)。
第二个机制允许接收共同来源信号的一组装置协定共同的端至端延迟时间46。该协定适用于每个信号。接收并播放信号的装置需要共享该信号的相同端至端延迟时间。由此产生的偏移对每个装置而言可以不同。
可以将装置和信号分组。针对单一组特定信号的成套装置将协定共同的端至端延迟时间。该组之外的装置也可以接收相同的信号;这些装置不直接影响该协定。类似的,延迟时间可以用于一组信号而不是仅仅一个信号。这样,在该组中任何信号的最长延迟时间将决定该组的延迟时间。
可以在信号创建到信号播放的传送路径中的许多点引入延迟时间。一些延迟时间被引入标记时间戳的数字域之外,而另一些延迟时间被引入该域之内。在某些实施方案中,可以对每一个进行单独处理。
在某些实施方案中,当补偿延迟时间和计算延迟时间偏移的时候,一个很大的数值可能是最糟情况的延迟时间。某些实施方案的目标是使总延迟时间最小化,同时确保没有数据丢失或数据丢失最少。如果系统具有比较低的延迟时间值,伴随偶尔的突波(spikes)(例如,因为时钟抖动、不常见的处理延迟、或者偶发的网络拥堵),则会期望延迟时间估计值足以确保这些突波不会导致明显的数据丢失。
因为接收器通常具有准确的同步时钟,并且因为每个音频数据包包含代表该采样进入数字域时间的时间戳,因此该接收器能够测量数据包到达时间间隔(即,数据包计时抖动)的分布和从发送器到接收器的延迟时间的分布(即,通过计算接收该数据包的时间与该数据包中的时间戳之间的差异)。在某些实施方案中,接收器能够测量并使用这些分布,报告连接质量并确保对于给定网络设置的有效性/安全限度。
发送器公布最坏情况下延迟时间的好处是接收器通常会在其得到音频数据包之前获得一个参数,该接收器可以用这个参数测量所述数据包。对音频数据包的测量也给路由设置增加了延迟时间,并且会用很长时间为不太可能发生的离群事件(outliers)的分布(例如,软件驱动器通常会以非常短的延迟时间运行,但是在一百万个音频数据包中会有一个出现的非常晚,因为操作系统正运行另一线路)获得可靠的估计值。这种最坏情况提供了一个保守的估计。但是,在某些实施方案中,也可以使用不同于该最坏情况值的其它值,例如通过测量接收器或传送器的延迟时间分布所获得的值。
发送器通常公布下述一项或多项:
输入延迟时间(通常为固定量);
打包延迟时间(通常为固定量);和
数据包从发送器进入网络的计时分布(网络可以进一步抖动数据包的定时,但是发送器不会获得该信息)。
在某些实施方案中,发送器能够公布计时分布、分布类型(例如,Poisson)以及该分布的相关参数(例如,λ)。在其它实施方案中,发送器可以公布延迟时间,从而导致例如大约99.999%、大约99.9999%、大约99.99999%或大约99.999999%的数据包通过直接连接的接收器顺利接收而没有传输错误。
参考图5,为了在标记时间戳的域44内量化延迟时间,延迟时间可以被分为三个主要来源:
传送器16中的延迟时间50,从标记时间戳的点至网络
将数据从传送器16移送到接收器18所需的传输延迟时间52
数据被接收后在接收器18内的延迟时间54
可以将这些延迟时间相加。数字域44中的总延迟时间为传送器延迟时间50加上传输延迟时间52再加上接收器延迟时间54。某些不常见的系统会在各个延迟时间之间存在相关性,但是在大多数情况下,各延迟时间是独立的(即,改变传送器延迟时间不会影响传输)。
无论是否使用同步输出,标记了时间戳的域之内的延迟时间是重要的。接收器18可以在其缓冲器内选择延迟时间偏移(用于补偿延迟时间),该偏移应足够大以确保没有数据丢失,但又要足够小使得数据不会溢出该缓冲器。完成同步化的端至端延迟时间46将额外的外部制约条件加到该标记了时间戳的域中。在此,该延迟时间被称为“标记了时间戳的延迟时间”44。
再次参考图4,将标记了时间戳的域44之外的延迟时间分成两个值:
从数据元素被“采样”到其在传送器上被标记时间戳的延迟时间60;
从将数据元素写入接收器输出缓冲器到其被播放的延迟时间61。
在此,该延迟时间被称为“外部延迟时间”。
这些与标记了时间戳的域44的延迟时间相加,获得总的端至端延迟时间46的值。一般来说,对于给定的信号源或输出,它们是固定的。为了简单起见,下文不介绍每个延迟时间是如何计算或输入系统的,因为通过外部机制,传送器16可以获得时间戳之前的延迟时间60,接收器18可以获得输出延迟时间61。
在某些实施方案中,为了获得现有数据流的大致标记了时间戳的延迟时间44测量值,接收器18将采样时间戳与其当前时间进行比较。对于低抖动数据流,最大差值将提供总延迟时间的大致估值。
在某些情况下,在使用该值时要小心。某些数据流的最长延迟时间明显高于平均延迟时间,而在某些实施方案中,最坏情况下的延迟时间可以确定传输是否没有故障。如果所测量的最坏情况下的延迟时间明显偏离平均情况,则可以认为总延迟时间有高抖动,会需要更大的安全限度。
可以通过外部延迟时间60和61的值加上值44,来计算端至端延迟时间。
或者,标记时间戳的延迟时间值44可以来源于三个区域50、52、54中每一个延迟时间的组合。如果没有可以用来估计延迟时间的机制,就可能这样做;或者这样做以保护来自传送器的估值(该传送器最坏情况时的延迟时间明显大于其平均水平延迟时间(即,高度变化的延迟时间))。
对于接收器18自身对最坏情况延迟时间的贡献部分54,可以用适当的值来设置该接收器。类似地,对于传送器16的贡献50,也可以用适当的值来设置该发送器,并能够将其建议给接收器18。也可以加上用于传输延迟时间52的设置值,并且该总和被作为总的延迟时间偏移46使用。
作为安全检查,可以将传送器和接收器的值50和54与所述估值进行比较。如果与传送器的计算延迟时间相比所述估值太低,则表明传送器会偶尔经受较长延迟时间;应加大该估值以防出现这种情况。
未超载的高性能网络(例如,千兆比特以太网)的最大传送延迟时间52可以明显小于传送器延迟时间50或接收器延迟时间54,由此该最大传送延迟时间52可以被包含在这些值的误差容许量内。较低性能网络(例如,无线网络)可以具有需要被单独考虑的最长延迟时间。对许多系统,传送延迟时间的上限是预先或在安装时知道的。一般在网络连接的音频系统中使用的固定传送延迟时间52可以包括1.33ms、2.66ms和5.33ms。
同步播放需要所有接收装置18使用相同或基本相同的端至端延迟时间46,使得该信号基本上在一组中的全部装置上同时播放。一旦一个接收器18计算了对自身可行的端至端延迟时间46,它就能够与和其同步化的其它装置共享该延迟时间。多个接收器18能够就适合的延迟时间46达成一致,该延迟时间通常至少和该组装置中最大的单独延迟时间一样大,并且通常不超过任何一个该组成员所支持的最长延迟时间。
当对实况媒体(例如,音频)进行同步化时,传送时间通常不是主要的关注点。相反,在同一时间的一个或多个点(例如,经过麦克风)进入所述系统的音频在一个或多个点(例如,经过扬声器或存储媒体)离开该系统时会被同步化。在某些实施方案中,需要一种机制使得时间戳与信号进入时间和离开时间相关联,而不仅仅是和传送时间关联。
相反,进入RX输出缓冲器的偏移通常只取决于时间戳和通过标记了时间戳的域44的延迟。可能存在以下最小延迟时间偏移和最大延迟时间偏移,小于该最小延迟时间偏移则数据包会被漏掉,大于该最大延迟时间偏移则缓冲器不够大。
每个接收的信号通常具有最小延迟时间偏移和最大延迟时间偏移。
在某些实施方案中,最小延迟时间偏移通常需要去应对来自接收器18的最坏情况下的标记了时间戳的延迟时间。写入输出缓冲器的信号通常被延迟至少这么长的时间。
在某些实施方案中,最大延迟时间偏移是接收器18的输出缓冲器所支持的最长延迟时间。信号被延迟超过该时间就会丢失。对最长延迟时间的简单测量是缓冲器的大小减去该接收器输出处理中对任何不规律性的容限(allowance)。实际上,只要最佳状况下的传输时间足够长,大于该缓冲器大小的最长延迟时间就是安全的。也就是说,会期望最长延迟时间减去传输时间小于缓冲器的大小。
上述值是标记了时间戳的延迟时间44。端至端的最短延迟时间和最长延迟时间是通过将外部延迟时间60和61加上这些值而获得的。
对于单独的信号,接收器可以使用适当的延迟时间偏移以确保数据丢失最少或者没有数据丢失。为了执行播放同步化,还可以知道时间戳之前的延迟时间50。在自动设置的系统中,接收器18可以不必预先了解传送器16的延迟时间特征,而是可以自动获得该特征。
在某些实施方案中,传送器16将其本地延迟时间值50输入与信号有关的信息数据库中。在动态环境中,可以将信号名称和特征输入数据库中,接收器18使用该数据库以发现和连接该信号。添加传送器延迟时间50,使得接收器18可以在获得连接信息的同时获得缺少的延迟时间信息。然后接收器18将发送器延迟时间52和接收器延迟时间12的值相加以形成总的延迟时间偏移和端至端延迟时间46,从而对自身编程。
如果接收器18连接具有不同延迟时间50的不同装置16,接收器18能够重新计算合适的最长延迟时间。如果传送器16不提供延迟时间值50,则可以使用保守的默认值。
或者,公布的传送器延迟时间50能够被用于对估计的延迟时间作合理性检查。
传送器延迟时间50测量标记了时间戳的采样到达网络所花费的时间。该延迟时间包含缓冲延迟:数据包的第一采样或帧等待将要获得的该数据包的其余采样或帧时的延迟。该延迟时间还包含对发送器输出中的不规律性的容限(allowence);如果数据包处理中的抖动会造成数据包在发送之前被延迟超过(例如)5ms,则接收器需要容忍这一点。
接收器18能够测量经过数字域44的总延迟时间。应当将该值与传送器的RX延迟时间50比较,以识别不规律的传送器。
时间戳之前的延迟时间60是从信号被“采样”到被标记时间戳之间的延迟时间。例如,这可以是当模拟信号被采样和当模拟信号被数字输出至模数转换器(ADC)进行标记时间戳之间的时间。与传送器延迟时间50相似,也可以通过某些机制(例如,共享数据库,例如多播DNS上的DNS-SD)公布该延迟时间,使得其可被大多数或所有接收特定通道的装置获得。从时间戳中减去该值以获得该信号的真正创建时间。
由于信号来源于存储,或者由于传送器不能获得该信息,所述参数可能不是对所有信号都适合。在这样的情况下,可以将所述值设置为0或者忽略该值。
在此所述的“延迟时间组”是由一组接收器接收的一组信号,所述接收器设置它们的延迟时间偏移(或其它延迟时间管理机制)以获得单一的端至端延迟时间46。然后可以将这些信号播放同步化。一组延迟时间组通常具有标识以将其区别于其它组。
首先,每个接收器为该组内的每一个接收的信号计算最短和最长的端至端延迟时间。最短延迟时间中最长的一个变成这些接收器的最短延迟时间,而最长延迟时间中最短的一个变成这些接收器的最长延迟时间。所述接收器将其“当前延迟时间”设置为与其最短延迟时间相同。
尽管不太可能,但是接收器18也可能会发现没有合法的值;最长的最短延迟时间大于最短的最长延迟时间。这种情况下,所述接收器可以将错误以管理界面的某些形式记录下来并暂停该延迟时间组的的资格。无法找到合法值的最可能原因是两个不同信号的外部延迟时间差大于该接收器的缓冲器所能做的补偿。
一旦被初始化,每个接收器18能够使用共享通信媒体(例如,数据库或自定义多播协议)向该组的其它成员通告其延迟时间值。示例性条目(或消息)包含以下信息:
延迟时间组标识
最短延迟时间
当前延迟时间
最长延迟时间
例如,在某些实施方案中,数据库能够存储一组中每个成员记录的一个副本,该记录配合该组的“标识”。每个记录可以包含有关该节点的最短延迟时间、当前延迟时间以及最长延迟时间。该延迟时间组的成员可以查询该组的一些记录或全部记录以获得合适的延迟时间值。通告机制使得当任何记录被更新时,其它成员即被告知。
在某些实施方案中,尽管数据库的内容仍然近似单一的数据库查询和更新机制,其可以分布在多个节点。例如,某些实施方案可以使用DNS服务发现(service discovery),其使用动态名称服务数据库(Dynamic NameService database)作为通用数据库。在某些实施方案中,可以使用多播DNS,这是一种DNS的实施方式,其中询问不被发送到具体的服务器,而是在本地网络中多播。任何拥有该询问的节点(如果有的话)答复该询问。多播DNS(和DNS)支持具有单一名称的单一记录的多个副本。例如,使用.TXT类型的记录,装置能够为延迟时间组1.延迟时间.本地(latencygroup1._latency.cocal)创建记录。“延迟时间组1(latencygroup1)”是组标识的例子,组标识可以是任何等同的一串文字数字字符。记录内容可以是:
装置ID(devid)=“myname”(接收装置的名称,该例子中为“myname”)
最小(min)=“500000(以纳秒为单位的支持的最短延迟时间)
最大(max)=“5000000(以纳秒为单位的支持的最长延迟时间)
当前(curr)=“1000000(以纳秒为单位的当前延迟时间)
需要注意的是,在优选实施方案中,即使存在多个通道,每个接收器也仅接收单个记录,因为接收器可以设置覆盖其所有通道的最小和最大值。
有利的是,利用数据库分布信息可以比仅仅使用多播消息提供更多信息,因为这使得获取当前状态的完整概念变得相对容易。应当注意的是,可以省略该数据库或消息中的“当前”字段(field),但是当通道组改变时(例如,如果增加新的通道或者装置离线),“当前”字段会比较有利。如果全部装置使用了在全部装置记录中的最小值,则减少装置会导致重新计算延迟时间。有时希望这种情况发生,但对于现场音频常常不希望这种情况发生。类似地,新通道具有“当前”值使得其可以准确选取当前使用的延迟时间,同时也表明其目前没有延迟时间。
在某些实施方案中,每个接收器可以直接向网络发送作为自定义多播消息的数据。在这个模式下,不需要了解整个网络的状态;每个接收器只需要在另一接收器的当前延迟时间更长时更新自己的当前延迟时间,并且每次其自身值改变时发送该信息。
在某些实施方案中,可以用网络中的单个装置维持数据库,接收器公布和询问该装置以找出要使用的延迟时间。出于分散式操作的目的,如果第一个装置被撤走,新的装置要能够担当这一任务。
在公布其自身延迟时间信息之前,每个接收器首先要检查其它接收器公布的现有信息(如果有的话)。如果另一成员的当前延迟时间比该接收器自身的当前延迟时间更长,该接收器会增加其当前延迟时间以匹配。然后公布其延迟时间信息。如果该接收器的当前延迟时间比组内其它成员的当前延迟时间更长,则当这些成员看到该公布的信息时会更新它们的当前延迟时间。
每个成员公开了它们的信息后,该组的当前延迟时间会保持不变或增加。如果其增加,则全部组成员会将它们各自的组延迟时间更新为这个新值。
在改变当前组延迟时间之前,接收器18应当确认其公布的当前延迟时间不比该组任何现有成员的最长延迟时间更长。如果不是这样,该接收器将记录错误并暂缓该组的成员资格。类似的,如果组的另一个成员增加当前延迟时间使之超过接收器的最长延迟时间,其可以记录错误并暂缓该组的成员资格。
在某些实施方案中,可以将各组合并。例如,在一个以上的同步组中设置一个通道可有效地合并这些组。因为单个通道可以仅具有一个延迟时间偏移,所以该共享通道通常会将该限制从每个组传到其它组。
在某些实施方案中,可以将多个组拆分。当拆分一个组时,存在至少两种可能的情形:
(1)新的组保持它们的当前值
(2)新的组协定新值
如果这些组保持它们的当前值,则拆分不会导致任何改变,直到发生破坏当前值的事件。
如果这些组协定新值,则可以是一个破坏性事件(此时,可能希望重新初始化原来的各组)或者可以存在“漂移(drifting)”延迟时间偏移的机制。
在任何一种情况下,可以接受一种算法,其为每个通道保持最终的“良好”延迟时间偏移值直到达成新的偏移值(参见下文),然后改变该值。由此各组能够被任意设置,并只会当系统稳定在一个值时各组才有效果。
在优选的实施方案中,假定所述系统在播放媒体之前变得“稳定”(组内的全部通道具有相同的值)。一旦所有接收器都具有自己的数据,实际的表决过程能够在几百毫秒内完成(根据组的情况可能更短或更长)。通过了解组内全部通道的机制能够对“稳定性”进行衡量;每个通道只了解它们自身以及共享的参数。
只要可能,应当在发送现场数据开始之前计算延迟时间的偏移。改变该延迟时间偏移是一个快速的过程,但是当时间相对于接收器缓冲器“跳动”时,可能会伴随故障。因为偏移通常是增加的,采样导向的系统可能最终将该采样的一部分播放两次。
但是,某些实施方案可能包括在“实况”时改变接收器偏移值的机制,在“实况”情况下,要考虑稳定性和偏移(skew)。首先,装置最好不要改变它们的接收器延迟时间值,除非它们比较确定所掌握的值是希望使用的值。例如,该装置可以使用从最后一次改变后经过的时间(例如,250ms或1s或类似的)。还有一个潜在的问题是在修改过程中可能在不同装置之间发生偏移。
某些实施方案通过控制系统来处理该问题,控制系统设置流程和延迟时间组,监测它们直到稳定,然后启动音频。这时,可以锁定延迟时间值,使得如果发生意外改变,它们不会漂移。锁定就是将通道延迟时间的合法范围有效地设置为单一值。这能够基于逐个通道实现,也能够通过发消息给所述组以“锁定”该组的延迟时间来实现。此外,可以在该组内增加新的通道,但是必须使用“锁定的”延迟时间值(否则不能与该组同步)。如果要改变该值,则控制系统明确地解除该通道锁定,使得它们可以稳定于一个新值,然后再次锁定它们。在这个时间过程中,可以暂停媒体以防止出错。
在某些实施方案中,组的延迟时间可以被缩短。缩短该组的延迟时间意味着该组中的全部接收器切换到一个新(更低)的延迟时间偏移。一旦切换,它们仍然会同步播放。在切换过程中,常常希望音频不要发生明显的故障。
下面所述的运算法则为一个或多个通道的一组接收器计算较短延迟时间。如果导致该组的延迟时间较长的一个具体接收器(例如,在计算机上执行的软件)要脱离该组,该组的接收器能够以较短延迟时间运行。根据应用的要求,可以通过多种方式减少组的延迟时间而不用重新初始化整个组。
例如,当新的成员加入所述组时,接收器的延迟时间可以自动延长,因为该新的接收器有机会更新该组的接收延迟时间。但是,为了减少一个组的延迟时间,需要通知接收器重复获得该组合适延迟时间的过程。在某些实施方案中,可以向接收器发送明确的消息,使得它们重新计算它们为组设置的延迟时间,并使之最小化。该消息可以被不时地发送,例如每分钟、每10分钟、每30分钟或每小时发送。在某些实施方案中,定期地使延迟时间最小化就可以了(例如在凌晨2点钟)。因为接收器具有同步的时钟,如果需要,它们可以在指定时间切换至较短的延迟时间。
在某些实施方案中,可以通过它们共享的媒体信号实现协调(例如,在静默过程中切换、信号基本没有变化的静止期、启动音调(triggeringtone)、或某些其它信号特征)。例如,在公共广播的应用中,通常有时没有音频(例如,在发言之间,或在歌曲之间)。在这种应用中,接收器能够检测到音频的缺失并在静默期内重新协定下调它们的延迟时间。
在某些实施方案中,在重新计算一组的延迟时间时,使音频和视频赝象最小化是有利的。这可以等同地应用于增加和减少延迟时间。例如,由于播放时间调整导致的音频故障能够通过以下一种或多种方式得到改善:
-选择合适的时间(例如,在无人的凌晨2点);
-在静默或低信号等级的周期中调整;
-消音,转换,然后再取消消音(可以逐渐降低和逐渐升高至消音,或在零交叉边界上消音/取消消音);
-每次在几秒钟的时间内由一个采样来调整;或者
-平顺具有信号处理的转换周期对音频的影响。
对于视频,丢失一帧或者重复一帧是可以接受的。此外,可以使用DSP技术使同步转换造成的任何可见赝象最小化。
在某些实施方案中,接收器可以公布当前延迟时间为零。这是一个特殊值,使得接收器变为组的一部分而没有改变任何其它成员的当前延迟时间的风险。这对于接收器只能通过加入组才能得到有关其它成员信息的实施方式是有用的。某些实施方式(例如数据库)允许在没有其它成员相互影响的情况下浏览条目。
接收器18之间共享的RX延迟时间值46是数据采样和播放该数据之间的时间延迟。其包括信号通过该网络的时间、进入接收器的输出缓冲器的时间、以及离开数字域44的时间,加上播放前的延迟时间61和传送器16输入端上的时间戳之前的延迟时间60。
在某些实施方案中,假定接收器18可以获得其通道中每一个的播放前延迟时间61。通常它还可以获得其最大缓冲器延迟时间(由缓冲器的大小决定)和最小缓冲器延迟时间44(由对采样或数据包标记时间戳到将其写入该缓冲器之间的延迟时间决定)。
最小RX延迟时间80=时间戳之前的延迟时间60+播放前延迟时间61+最小缓冲器延迟时间44。
最大RX延迟时间82=时间戳之前的延迟时间60+播放前延迟时间61+最大缓冲器延迟时间。
当前延迟时间是接收装置上的一组通道的当前RX延迟时间(通过商定,所述接收装置组)。
最长延迟时间是装置能够支持的最长RX延迟时间。这通常是其播放缓冲器大小的函数。
最短延迟时间是基于当前评估的延迟时间(参见下文)或某些固定值装置能够安全支持的最短RX延迟时间。最短延迟时间无需包含在延迟时间消息中,但是出于监测原因也可以包含在延迟时间消息中。理论上,组的当前延迟时间应当是该组中某些装置的最短延迟时间。如果不是这种情况,当前延迟时间会比其所需的长。如果延迟时间的最小化很重要,重新初始化该组从而减少当前延迟时间是有用的。
如果单一接收器18具有在单一组中的多个通道,其通常会计算适用于全部这些通道的最短延迟时间和最长延迟时间。如果不存在这样的值,则该接收器会记录错误并暂停该组中的成员资格。
在接收器18上的一个或多个通道可以是多个分离的组的成员。这样,该接收器可以选择适应两个组的当前延迟时间,有效地合并这两个组。在这种情况下,如果可能会希望明确地合并两个组。
该运算法则只会导致偏移增加。理想的,该组的当前延迟时间应当是该组中具有最长延迟时间的成员的最短延迟时间。如果不是这样,管理者会希望将偏移重新设置到合适的水平。可以提供具体的重新设置消息来进行这工作。
如果在设置延迟时间之后有成员脱离该组,可能会出现不必要长的延迟时间。如果接收器的延迟时间有其它限制,例如第二组成员资格(参见上文),这种情况也可能发生。
一旦向接收器提供了适合的当前延迟时间,其必须减去外部延迟时间60和61从而将该延迟时间转换为延迟时间偏移。该延迟时间偏移被编程到接收处理中,其中,为了计算输出缓冲器位置,将该延迟时间偏移加到数据包时间戳上。
在使用定期采样数据的基于数据包的系统中,可以通过改变传送器的缓冲特征来管理传送器延迟时间。将较少的采样放入每个数据包中,减少了传送器必须等待收集全部采样的时间,从而减少延迟时间。但是,这意味着更多的数据包,增加了网络负载(因为数据包开销(packet overhead)与数据包尺寸相比会非常高)。
实施例
下列实施例参考图7流程图描述了用于公布TX延迟时间和协定接收器延迟时间偏移的机制。在本实施例中做以下假定:
-使多个参与装置的网络时间同步。
-传送器根据共享时间概念给它们输出的帧/采样标记时间戳。
-接收器能够用共享时间以及帧或采样的时间戳对输出进行时间同步。
每个传送通道都具有本地传送器延迟时间50和与其相关的外部延迟时间60。接收器18通过共享数据库(例如,DNS-SD)中的条目能够得到这些值。接收器18不应选择小于值50的延迟时间值,为了确定设定的标记了时间戳的延迟时间44,在步骤92中,计算接收器延迟时间50与该接收器可得到的任何其它延迟时间值52和54的总和。
如果不存在传送器延迟时间50的值,可以用合适的默认值对接收器18编程。
在步骤94中,接收器18可以将该确定的标记了时间戳的延迟时间44与估计的标记了时间戳的延迟时间进行比较(通过将数据包的时间戳与当前时间比较而获得估计的标记了时间戳的延迟时间),如果必要,对确定的延迟时间进行调整。
在参与协定延迟时间之前,在步骤96中,接收器18基于传送器延迟时间或者设置的值,通过估计步骤92计算其自身最短延迟时间46。接收器18在步骤98中还具有基于其缓冲器和外部延迟时间60与61的最长延迟时间值。
在步骤100中,接收器18通过发送消息参与协商。在图6中示出了该消息格式的示意图。延迟时间值的形式是一种商定执行的表示形式。例如,假定它们为从时点开始的秒和纳秒。
对于接收器18上的任何给定通道,最大延迟时间偏移82是恒量。如果接收器没有实际的最大值,则应当使用合适的大数值。
从上述计算中(传送器延迟时间+其它延迟时间)获得最小延迟时间偏移80。
当前延迟时间84是接收器当前使用的延迟时间值。如果当前没有设置延迟时间,该当前延迟时间值可以为零。
该消息还包含接收器希望成为其一部分的组的相应组ID 91。
接收器18加入有具体延迟时间的组,其(在本实施例中)以多播组、端口和组ID实现。一旦加入该组,该接收器用1秒钟接收获得现有的通信量。如果没有接收到该组的消息,该接收器以当前延迟时间0发送消息。
一旦接收到消息,在步骤102中,该组中的每个接收器18可以将该消息中的当前延迟时间与其自身设置的当前延迟时间进行比较。如果该消息的当前延迟时间值小于该接收器的当前延迟时间,则该接收器回复该消息的发送器,仅提供其自身的值。如果该接收消息的当前设置的延迟时间更长,则接收器提高其自身当前延迟时间以匹配。如果该接收消息的当前设置的延迟时间与该接收器的当前延迟时间相同,则该接收器18忽略该消息。如果该接受消息中设置的当前延迟时间比接收器18所支持的最大值还要大,则接收器以某种管理员形式记录错误,并暂停该组中的成员资格。
只要接收器18延长其设置的当前延迟时间,它就向该组中全部成员发送含有新设置的当前延迟时间的消息。
如果接收器18发现该组的当前延迟时间比其最短延迟时间还短,其应当首先向所有成员发送消息以获得它们的当前延迟时间和最长延迟时间(通过声明其自身设置的当前延迟时间为零)。如果其最短延迟时间比其在回复中接收的最长延迟时间的最小值还要短,则该接收器会将该组(和其自身的)设置的当前延迟时间增加到其自身的最短延迟时间。另外,它可以记录错误并暂停该组中的成员资格。
基于商定的当前延迟时间,在步骤104中,接收器18基于该商定的当前延迟时间运行以确定其接收的每个媒体通道的延迟时间偏移。
还可以利用中央数据库设置延迟时间。每个接收器获得该数据库的地址,然后对指定区域的共享数据进行读和写。数值可作为多播实例。对于中央数据库,需要某些附加机制以保持接收器不断更新。接收器可以调查数据库,优选该数据库具有可用于启动更新的召回机制。
完备的机制可以为每个接收器保持记录。这将允许数据库在接收器脱离所述组并(可能)相应地减小延迟时间时加以注意。
可以通过如下方式提供安全性:具有共享机密或密码的字段,或将现有的加密技术应用到消息中。
在处理信号时接收器不需要重新设定时间戳。可以在信号原始来源处给信号标记时间戳,然后在数个步骤中数个装置不同步地处理该信号,同时保持该时间标记。通过设置合适的延迟时间偏移,即使当信号经由不同处理路径传送时,一组接收装置也能够实现对所传送(或修改的)信号的同步播放。
事实上,这在端至端传输路径中增加了处理步骤以及简单传送。
例如,混频器可以决定保存在一组(时间同步的)信号上的原始时间戳,使这些信号连同原始时间戳通过。这对下游装置的唯一影响是延迟时间显得更长了。当公布新数据流的传送器延迟时间时,混频器不仅应当包含其自身的传送器延迟时间,还应当包含把信号从它们的原始来源发送到该混频器时所获得的延迟时间。
显然,增加延迟时间的任何情况都会需要较大的接收器缓冲器以确保数据包不会丢失。
通过仅操作时间戳可以产生一些效果。例如,通过简单地将一组采样的时间戳跳到将来时间从而延迟它们的播放,能够创建回声效果。如果修改后的数据流被重新发送并与原始数据流混合,就会产生回声。
一些装置可以具有数字数据包处理之外的缓冲。这样的装置通过利用它们的外部缓冲能够支持更大的最长RX延迟时间。
故意延迟输出(例如在扬声器堆栈(speaker stack)上的音频延迟补偿)的装置应当根据标定的播放时间而不是延迟的播放时间来商定RX延迟时间。
某些示例性的实施方案可以在网络的所有装置上持续设置默认的接收器延迟时间,从而实现整个网络同步化。图8中显示了一种根据这些实施例的示例性系统。如果使用,默认的接收器延迟时间意味着所有接收器将在整个网络上同步播放音频。可以用装有装置的管理控制台上运行的软件来设置默认的接收器延迟时间。
在这些实施方案中,软件节点可以被用来向不能满足默认接收器延迟时间所要求的计时的处理器发送音频。这样,该默认的接收器延迟时间会被软件执行所公布的传送器延迟时间所取代。管理控制台还可以在具体接收器上设置较低的默认接收器延迟时间,从而允许网络中的某些路径/接收器具有较低的延迟时间并不用与该网络中的每个其它装置同步运行。
本发明的实施方案可以适用于压缩的音频和视频和非压缩的音频和视频。通常,使压缩的音频或视频成为周期序列帧的恒定比特率采样流。上述延迟时间管理技术可以用于确保来自解码器的CBR数据流输出与另一装置上的另一信号的执行时间同步。
在此所述的技术很适合管理具有压缩媒体的网络的延迟时间。在压缩编解码的情况下,由于编译码处理消耗,通常在发送器和接收器中产生额外的延迟时间。通过发送器将该压缩延迟作为输入延迟进行公布,本发明的实施方案能够容易地解决发送器和接收器编译码延迟。从而接收器能够了解压缩造成的发送器延迟时间,并可以自动对其进行补偿。此外,接收器可以计算合适的延迟时间值,其包括解压处理引起的输出延迟,并且接收器可以将所计算的延迟时间通知同步组中希望与该媒体信号同步的其它接收器。
在常规系统中,系统用户人工地将延迟插入它们的信号处理链中,以确保所有信号同步离开媒体系统。例如,同时处理音频和视频的媒体系统(例如,电视播放)通常使视频信号通过专门的视频处理装置,使音频信号通过专门的音频处理装置。音频和视频可以同步进入该系统,但是,音频和视频处理路径不同并可能具有完全不同的延迟时间。视频编译码处理通常明显增加延迟(数十毫秒)。音频的完成与视频处理相比延迟要少得多,因此当音频离开该处理系统时,为了保持与视频的同步要对其进行延迟。
本发明的实施方案具有很多优点。但是,没有特定的实施方案必须具备任何或全部所述优点。
某些实施方案的优点是实现同步化的同时使端至端延迟时间最小化。
某些实施方案的另一优点是可以使数个不同种类的传送器和数个接收器同步。
某些实施方案的另一个优点是传送器或接收器可以处理多个不同的信号。
某些实施方案的又一个优点是能够同步化具有严格延迟时间要求的信号(例如,现场音频播放),同时也能够同步化其它要求不那么严格的信号同步。
某些实施方案的另一优点是可以兼顾无法处理严格延迟时间要求的装置。例如,特定的硬件能够保持严格的计时,而个人电脑由于时钟抖动需要宽松的延迟时间。例如另一个例子,千兆比特以太网具有非常短的传输时间并非常可靠,而无线网络则慢得多,且需要转发数据。
某些实施方案的再一个优点是系统的不可靠性会使延迟时间的补偿增加,这又使得该系统对延迟时间的改变更加宽容。
某些实施方案的又一优点是可以基于共享的参考时钟测量延迟时间,从而传送器和网络中的延迟对播放计时几乎没有或根本没有影响。
某些实施方案的另一个优点是在实施媒体网络过程中,用户不需要考虑处理、切换跳转、网络负载变化、不同的装置等。
某些实施方案的再一个优点是所述方法和系统能够自动确定一个“安全”但“小”的延迟时间补偿,由该组中的所有节点共享。
某些实施方案的另一个优点是所有或大多数通道保持同步(以准确计时),除了分配组之外不需要用户执行任何具体通道设置。
本领域技术人员会理解,在不脱离概括性描述的本发明精神和范围的情况下,可以对在具体实施方案中所展示的本发明进行许多变化和修改。因此,从各方面考虑,这里的实施方案都被视为说明性而不是限制性的。
优先权文件
本申请要求下述申请的优先权:于2007年5月11日提交的名为“Configuring Receiver Latency”(设定接收器延迟时间)的澳大利亚临时专利申请号2007902513,和于2007年5月15日提交的名为“ConfiguringReceiver Latency”(设定接收器延迟时间)的澳大利亚临时专利申请号2007902582。通过全文引用将上述每件申请都并入本文。
对相关申请的交叉引用
本申请与下列共同未决申请有关:
于2006年4月21日提交的名为“Method for Transporting Digital Media”(用于传送数字媒体的方法)的美国专利申请序列号11/409,190;
于2007年5月17日提交的名为“Transmitting and Recieiving MediaPacket Streams”(传送和接收媒体数据包流)的PCT申请号PCT/AU2007/000668;和
于2007年5月17日提交的名为“Redundant Media Packet Streams”(冗余媒体数据包流)的PCT申请号PCT/AU2007/000667。通过全文引用将上述每件申请都并入本文。