本文公开内容的一个方面涉及在网络中传输数据,并且更具体地涉及在网络中的设备之间传输音频数据。
背景技术
当通过网络流式传输数据时,通常使用技术标准来管理网络中设备之间数据的传输。例如,来自ieee802.1音频视频桥接/时间敏感网络(avb/tsn)组的avb/tsn标准提供了用于保证在avb/tsn网络上行进的数据流的低延迟和充足带宽的机制。此外,ieee1722(avtp)标准提供音频、视频和其他传输协议,该协议利用avb/tsn服务来提供网络上音频、视频和其他媒体和控制信号的低延迟保证的流式传输。
附图说明
在附图的图示中通过举例而非限制的方式示出了本文的实施方案,在附图中类似的附图标号指示类似的元件。应当指出的是,在本公开中提到“一”或“一个”实施方案未必是同一实施方案,并且其意指至少一个。另外,为了简洁以及减少附图的总数,某个附图可能被用于示出不止一个实施方案的特征,并且对于某个实施方案,可能并不需要该附图中的所有元素。
图1是用于解释根据本文实施方案的示例性网络中的互连节点的代表性视图。
图2a、图2b、和图2c是传统数据分组结构的代表性视图。
图3是用于解释根据本文实施方案的数据分组结构的代表性视图。
图4是用于解释根据本文实施方案的在第一网络元件和第二网络元件之间传输音频数据的过程的流程图。
图5是用于解释根据本文实施方案的示例性节点的代表性视图。
具体实施方式
现在参考所附附图解释若干实施方案。只要未明确限定方面,实施方案就不只限于所示部件,其仅是为了举例说明的目的。另外,虽然阐述了许多细节,但应当理解,一些实施方案可在没有这些细节的情况下被实施。在其他情况下,未详细示出熟知的电路、结构和技术,以免模糊对该描述的理解。
如本文所用,术语“网络”非限制性地是指被配置为将数据作为被称为分组的群组来进行传送的任何网络。分组网络可将数据流(由分组的序列构成)递送给设备的群体。在传送过程中,分组被缓冲和排队,并且可能根据网络中的流量负荷而经历可变的延迟和吞吐量。如本文所用,术语“主”或“上游”节点是指被配置为对信息进行打包以用于经由基于分组的网络进行传送的设备或接口。术语“从”或“下游”节点是指被配置为从分组提取信息的设备或接口。“节点”是指接收分组并将分组转发给另一设备的设备。术语“时间戳”是指由节点的时钟确定的关于某个事件何时发生的任何指示(字符序列或编码信息)。这些定义不被认为是限制性的,并且仅用于澄清本文所讨论的各种方面。
常规地,为音频系统的多个音频通道发送音频数据常常需要生成分组以及协商分组的大小,以便预留适当量的带宽。通常,分组大小(例如,分组中的样本数量)在音频流的整个寿命上是固定的。如果分组大小需要被增大或减小,则必须重新协商带宽大小。在音频信号回放期间,无论具体通道的音频数据是否包括声音,所有所预留带宽通道的音频数据通常都被传输。
本文的实施方案旨在动态地调整分组的大小,使得不必重新协商带宽。根据一个方面,仅包括声音的所述多个音频通道的音频数据在回放期间被传输,而不包括声音的所述多个音频通道的音频数据不被传输。分组大小因此能动态地调整大小,因为在分组中传输的样本的数量可根据对于特定音频通道是否存在声音而改变。
因此,所述多个音频通道的所有音频数据仅在每个通道包括具有活动声音的音频数据的情况下才被传输。如果所述多个通道的并非所有音频数据都包括声音(因此不被传输),则可以使未使用的带宽可供音频系统使用以用于发送其他数据流量而不必改变带宽请求。此外,初始预留的带宽仍然被保证,使得如果所述多个音频通道的所有音频数据包括声音并且因此被传输,则不必执行另一带宽预留(有拒绝的风险)。
常规地,在网络中传输音频数据时,所有音频通道被打包到单个分组中。在一种情况下,音频数据可以交错格式被发送。在交错格式中,同一采样时刻的每个通道的所有音频样本被连续发送,然后是下一采样时刻的每个通道的所有样本。图2a示出了用于具有4个音频通道并且每个音频通道具有8个样本的音频系统的具有交错格式的示例性分组201a,其中所述多个音频通道的音频数据被交错。所述分组可包括标头。具体地讲,图2a示出了用于四个通道(通道a至d)和八个样本时刻(s0至s7)的示例性数据分组201a。如图2a所示,首先提供通道a的采样时刻0,然后提供通道b的采样时刻0,之后是通道c和d。然后,提供通道a的下一采样时刻s1,以此类推,直到已经为通道a至d中的每一者提供了所有这八个样本时刻。通常,所需带宽的量可由分组的大小来确定。应当注意的是,虽然图2a例示了四个通道和八个样本时刻,但可以使用任意数量的通道和样本时刻。
在另一情况下,音频数据可以非交错格式发送。在非交错格式中,第一通道的所有样本被发送,然后是第二通道的所有样本,等等。图2b示出了具有非交错格式的示例性分组201b,其中通道a的样本序列后面跟着通道b的样本序列,以此类推。通常,音频系统使用交错格式,而不是非交错格式,因为音频通道常常被音频系统同时需要。具体地讲,图2b示出了用于四个通道(通道a至d)和八个样本时刻(s0至s7)的示例性数据分组201b。如图2b所示,首先提供通道a的采样时刻s0,然后提供通道a的采样时刻s1,之后是通道a的采样时刻s2至s7。然后,提供通道b的采样时刻s0至s7,以此类推,直到已经为通道a至d中的每一者提供了所有这八个样本时刻。
在图2a和图2b所示的每一种情况中,对数据的打包遵循每个分组固定数量的通道和固定数量的样本的设定图案。例如,在常规的avb系统中,对于n个通道,每个分组会有6个样本,其中每125μs一个分组。本文发明人已发现,在流式传输音频数据的常规方法中,流可以始终包含n个通道的样本,即使仅在一个子组的通道上存在音频,而这可能导致对于所述流始终使用最大量的带宽。
本文的一个实施方案针对以上问题而通过仅传输包括通道的分组来为所述流提供对带宽量的更有效利用,所述通道具有音频数据的活动采样集。在该实施方案中,音频数据在第一网络元件和第二网络元件之间被传输。具体地讲,第一网络元件将多通道音频数据通过通道分成多个单独通道。第一网络元件将所述多个单独通道中的每一者与音频数据的对应采样集一起打包到单个分组中。第一网络元件向第二网络元件传输包括通道的每个分组,所述通道具有音频数据的活动采样集。
在一个实施方案中,仅包括通道的那些分组被第一网络元件传输给第二网络元件,所述通道具有音频数据的活动采样集。
在一个实施方案中,如果分组不包括活动通道,则该分组不被第一网络元件传输。在该实施方案中,通道由系统设置根据音频是否被溯源到该通道而明确地选择为是否是活动的。在这种情况下,特定通道的分组可能因为它是活动的但没有任何音频而是静默的(例如,具有8通道流,但仅活动地使用2个通道,因此这些通道中的6个通道是非活动的,并且这6个非活动通道的数据分组将不被发送)。在上述情况下,应当指出的是,那2个活动通道可能在其上具有静默。
在另一实施方案中,电平检测器和/或静默检测器基于所有音频是否是静默的来选择活动和非活动通道,其中如果所有音频都是静默的,则数据分组不被发送。例如,模拟电平检测器可用于选择活动和非活动通道,将非常低电平的噪声作为静默对待。
在一个实施方案中,每个分组可以还包括分组中所包括的通道的位置和运动信息。分组的格式可被提取以包括每个通道的位置和运动信息,从而使得其中音频回放来自组合的系统,该组合于是在节点内如适合特定扬声器那样被再现。
在avb/tsn网络中,带宽预留和流量成形系统为所预留的流诸如音频数据分配和保证带宽。然而,本文发明人已发现,如果所预留的流不使用所有所分配的带宽,则尽力服务流量(例如,电子邮件,web浏览等)仍可使用该带宽,但当所预留的流量开始使用所分配的带宽时将自动收回。
由于本文所述的布置,在使用可在任何时间具有可变数量的通道活动的流时,可以利用前述发现。这可以通过使用稀疏流格式来实现,与传统的流格式不同,稀疏流格式对于每个通道使用单个分组,从而将通道分到多个分组中而不是单个分组。流的源于是只为具有活动音频的通道发送分组,其中在每个传输周期中传输至少一个通道的音频以保持媒体时钟。
在示例性混合环境诸如家中,系统可为全128声音源预留带宽,这只会在影片或歌曲的小部分中被使用。使用稀疏流格式就通过在影片或歌曲需要声音时利用所有所分配的带宽、并允许其他用户在影片或歌曲需要远远更少通道的其余部分期间使用所述带宽而提供了高效利用带宽的有利效果。
图1是示出根据本文实施方案的第一示例性网络中的互连节点的代表性视图。在图示实施方案中,网络100包括分别通过链路130(单独链接130a、130b、130c、130d、130e...130n)与多个从节点120(单独从节点120a、120b、120c、120d、120e...120n)通信的主节点110。节点110和120例如是服务器、计算机(台式计算机、膝上型计算机、手持式计算机等)、路由器、防火墙、网关、网络和个人媒体设备、电子设备和移动设备等。
节点110和120中的每一者通常是包括其自己的本地时钟源的时间感知系统,并且从节点120中每一者能够将其自己的本地时钟与已被指定作为主节点的节点(诸如主节点110)的时钟同步。节点110和120中的每一者使用其时钟和一种加时间戳过程,诸如硬件实现的过程或软件实现的过程来生成时间戳。例如,对于硬件实现的加时间戳,当消息离开或到达节点时,专门的硬件从本地时钟生成时间戳。对于软件实现的加时间戳,当消息到达节点的应用层时,处理器执行存储在存储器中的软件程序或计算机可执行方法以便基于本地时钟生成时间戳。一般来讲,由硬件实现的过程生成的时间戳比由软件实现的过程生成的时间戳更准确。在一个实施方案中,时间戳格式以纳秒实现。
链路130是有线类型的或者是无线类型的。在一个实施方案中,链路130是以太网链路,并且主节点110和从节点120是基于以太网的媒体设备。主节点110和从节点120之间的每种类型的链路对于执行时间同步具有不同的精度度量。例如,在有线链路类型上的时间同步消息中提供的时间戳通常比在无线链路类型上的时间同步消息中提供的时间戳更准确。利用链路130,主节点110和从节点120交换消息以便执行音频传输和回放。在一个实施方案中,主节点110根据本文所述的过程(例如,结合图4所述的过程400)将多个音频通道的音频数据传输给从节点120中的一者或多者。在一个实施方案中,主节点110和从节点120根据ieee1722标准和ieee802.1标准操作。
虽然图1例示了示例性网络配置,但应当理解,本文的公开内容涉及任何网络配置,包括点对点网络、通过总线连接的网络、星形网络、环形网络、网状网络、混合式网络和菊链式网络。
图3是根据本文实施方案的数据分组结构(数据分组301a、301b和301c)的代表性视图。为了进行示意性的说明,数据分组301a至301c是用于六个采样(s0-s5)和八个通道(通道a至h)。每个样本可为例如16、24或32位,并且可以是例如125微秒(μs)的音频数据。就这一点而言,图2c示出了具有交错格式的常规数据分组201c,也包括八个通道(通道a至h)的六个采样(s0-s5)。
如图3所示,通道a至h中的每个通道被分离到单个数据分组中,从而得到多个数据分组301a至301c。在数据分组301a至301c中的每一者中包括一组样本(s0-s5),其对应于数据分组中所包括的特定通道。例如,数据分组301a包括对应于通道a的样本s0-s5,数据分组301b包括通道b的样本s0-s5,等,并且数据分组301c包括通道h的样本s0-s5。当然,实施方案不限于八个通道和六个样本,并且可使用任意其他数量的通道和样本。例如,分组的格式会例如类似于ieee1722-2016中所述的单通道avtp音频格式分组;但对于n通道流,每125μs(或样本速率的适当周期)会有它们的1-n。
因此,根据图3的实施方案,不是将所有音频通道打包到单个分组中,而是将每个通道打包到其自己的单叶单通道分组中。如上所述,图3示出该实施方案的一个示例,其中通道a的样本s0-s5已被打包到分组301a中,通道b的样本s0-s5已被打包到分组301b中,...通道h的样本s0-s5已被打包到分组301c中,等等。根据一个实施方案,只有包括包含声音的通道的分组被传输。例如,如果确定通道a和通道h包括声音,则只有分组301a和301c被传输,而分组301b不被传输。
图4是示出根据本文实施方案的主节点和从节点之间音频流式传输过程的流程图。就这一点而言,以下实施方案可被描述为过程400,该过程通常被描绘为流程图、流程框图、结构图或框图。虽然流程图可将操作描述为顺序的过程,但是这些操作中的多个操作可并行执行或同时执行。此外,操作的顺序可被重新排列。过程在其操作被完成时终止。过程可对应于方法、程序等。过程400可由包括硬件(例如电路、专用逻辑等)、软件(例如实现在非暂态计算机可读介质上)或它们两者的组合的处理逻辑来执行。
在一个示例性实施方案中,过程400由主节点110和一个或多个从节点120执行。就这一点而言,尽管图4的过程400结合图1所示的网络配置进行了描述,但应当理解,该过程可应用于其他网络配置,非限制性地包括图1的网络100。
参见图4,在框401处,主节点110将多通道音频数据通过通道分成多个单独通道。例如,如上文结合图3所述,通道a至h被分成8个单独的数据分组(例如,数据分组301a至301c)。在框402处,主节点110将所述多个单独通道中的每一者与音频数据的对应采样集(例如,以上结合图3描述的s0-s7)打包到单个分组中。在框403处,主节点110将包括通道的每个分组传输给从节点120中的一者或多者,所述通道具有音频数据的活动采样集。
在一个实施方案中,如果分组不包括活动通道,则该分组不被主节点110传输。在该实施方案中,通道由系统设置根据音频是否被溯源到该通道而明确地选择为是否是活动的。在这种情况下,特定通道的分组可能因为它是活动的但没有任何音频而是静默的(例如,具有8通道流,但仅活动地使用2个通道,因此这些通道中的6个通道是非活动的,并且这6个非活动通道的数据分组将不被发送)。在上述情况下,应当指出的是,那2个活动通道可能在其上具有静默。
在另一实施方案中,主节点110中包括的电平检测器和/或静默检测器基于所有音频是否是静默的来选择活动和非活动通道,其中如果所有音频都是静默的,则数据分组不被发送。例如,模拟电平检测器可用于选择活动和非活动通道,将非常低电平的噪声作为静默对待。
在框403处,主节点110在单个流上传输数据分组中的每一者。音频数据的活动采样集可包括声音的至少一个采样时刻。在一个实施方案中,在流式传输期间,主节点110在每个传输周期期间传输至少一个分组。
因此,在回放期间,与所述多个分离的音频通道的数量对应的多个通道被预留。但是,只有非静默的数据分组被传输以满足所预留的最大通道带宽。因此,可以使未使用的带宽可供进行传输的设备使用。
在框404处,从节点120接收主节点110所发送的数据分组。每个分组可包括通道标识符,该通道标识符用于在第二网络元件处放置分组中所包括的音频数据。在框405处,从节点110由所接收的数据分组基于数据分组中包括的通道标识符来重构音频数据。如果对于特定通道没有接收到数据分组,则从节点120知道为所述特定通道提供静默。
图5是示出根据本文实施方案的示例性节点500的代表性视图。节点500是用于实施本文所公开的技术的节点110和120的示例。节点500包括处理器501,该处理器可包括一个或多个处理设备。处理器501的示例非限制性地包括微处理器、专用集成电路(asic)、状态机或其他合适的处理设备。处理器501通信地耦接到计算机可读存储介质诸如存储器504,并且访问存储在存储器504中的信息,诸如时间戳和质量链信息。存储器504还存储计算机可执行指令,计算机可执行指令当由处理器501执行时使得处理器501执行本文所述的操作。存储器504可以是例如固态存储器、光学和磁性介质或者任何其他非暂态机器可读介质。存储器504的非限制性示例包括硬盘、光盘、闪存存储器、非易失性存储器、易失性存储器、一个或多个磁盘等。节点500还包括用于与网络的其他节点通信的网络接口503、以及用于生成时间戳的时钟502。如上所述,时钟502可通过硬件或软件实现。节点500还包括检测器505,诸如电平检测器、静默检测器或用于检测通道的声音的模拟检测器。
图5仅是特定具体实施的一个示例,并且仅旨在说明在节点中可能存在的部件的类型。虽然节点500被例示为具有多种部件,但其并不旨在表示将这些部件互连的任何特定架构或方式;因为此类细节与本文的实施方案没有密切关系。还应理解,具有更少部件或可能更多部件的网络计算机、手持式计算机、移动电话、服务器和/或其他数据处理系统也可与本文的实施方案一起使用。因此,本文所述的过程不限于与图5的硬件和软件一起使用。
本文所述的过程和块不限于所述的特定示例,并且不限于在本文中作为示例使用的特定次序。相反,可根据需要对任何处理块进行重新排序、组合或移除、并行或串行地执行,以实现上述结果。与实施本文所公开的结构和过程相关联的处理块可通过一个或多个可编程处理器执行存储在非暂态计算机可读存储介质上的一个或多个计算机程序来执行,以执行所述系统的功能。网络的全部或部分可被实现为专用逻辑电路(例如,fpga(现场可编程门阵列)和/或asic(专用集成电路))。网络的全部或部分可利用包括电子器件诸如例如处理器、存储器、可编程逻辑器件或逻辑门中至少一者的电子硬件电路来实现。另外,过程可在任何组合硬件设备和软件部件中实现。
虽然已描述并且在附图中示出了某些实施方案,但应当理解,此类实施方案仅是举例说明而不是限制性的,并且实施方案并不限于所示和所述的特定构造和布置,因为对于本领域的普通技术人员而言可想到各种其他修改。因此,要将描述视为示例性的而非限制性的。