用于等时交换分组化媒体流的系统和方法与流程

文档序号:18978000发布日期:2019-10-29 03:26阅读:184来源:国知局
用于等时交换分组化媒体流的系统和方法与流程
本申请要求2016年10月14日提交的美国专利申请号15/294,549的优先权,该专利申请的全部内容通过引用结合于此。本文所披露的系统和方法涉及媒体流的传输,并且更具体地涉及用于等时交换分组化媒体流的系统和方法。
背景技术
:随着媒体生产迁移至基于分组的数据基础设施,该行业对在这种基础设施或结构内进行干净交换的需求持续增加。一般来说,电视制作需要在源之间进行干净转变(cleantransition),这是在推荐的惯例smpterp-168(即,“用于同步视频交换定义的竖直间隔交换点”)中充分记录的做法。对于rp-168,基础设施假设公共视频帧速率的所有源与主时钟是共同同步的,通常是黑色或三电平同步,并且在设施内管理信号以进行紧密相位对准,例如,远远少于半行视频。虽然本申请人开发的现有技术已经提供了在分组化域中“在线上(onthewire)”交换这些新的分组化信号,但是信号必须仍然是共同同步的。此外,在该行业中,已知竖直交换是在竖直消隐间隔期间即刻发生的合断交换。干净交换要求两个视频源存在于系统中的某个点处,通常在位于网络边缘或端点处的接收器处。此外,为了执行干净交换,这两个信号必须存在一段时间,例如,视频的一帧或视频帧的重要部分。存在用于模拟竖直交换的多种折衷方法。这些方法基于向视频信号添加多少延迟、需要多少带宽、需要多长的附加带宽、以及交换可以多快、基于发起对交换的请求等而不同。由于当前技术的进步,现有ip路由器很少(如果有的话)对分组进行分段。但是,即使在路由技术的这种改进下,挑战仍然存在,因为现有ip路由器将基于互联网组管理协议(“igmp”)命令序列、带内的标准路由改变请求或软件定义网络(“sdn”)命令来改变路由。在所有情况下,进行改变的请求和该改变发生的时刻都不清楚竖直间隔。因此,交换很可能在图像的活动部分期间发生,这不是所期望的,因为该交换将被观察者认为是可见的伪像或“故障”。为了解决这个问题,本申请人还为分组化媒体设计了有助于分组交换竖直准确的可扩展的物理层流处理器。该技术在2016年9月8日提交的美国专利临时申请号62/385,205中有所描述,该专利临时申请的全部内容通过引用结合于此。如本文所描述的,系统在竖直间隔处改变存储器读取指针值。然而,这种方法仍然需要ip路由器的上游编制以生成预选择,并且存在两个信号使得至少在一些时间内消耗两倍的带宽。为了使交换过程进一步复杂化,有必要考虑现代交换设计倾向于用于更大设施或者甚至是模块化路由器的机箱内的叶脊架构。事实上,这种设计现在是用于数据中心和内容数据网络(“cdn”)的实际拓扑。在这种情况下,对三件设备的交换动作进行排序就变得非常重要:叶路由器、脊路由器以及然后是叶路由器,或者三个模块:i/o,然后是结构,然后是i/o。题为“用于广播应用的三级路由器”的美国专利号6,430,179解释了这种排序的重要性并且提供了用于传统sdi类型信号的解决方案,该专利通过引用结合于此。最近,已经提出用于改变ip5元组中的端口地址的某些路由器设计,该ip5元组是一组包括传输控制协议/互联网协议(tcp/ip)连接的五个不同的值,包括源ip地址/端口号、目的地ip地址/端口号和正在使用的协议。例如,一个现有设计检查用户数据报协议(“udp”)端口地址,并且然后基于值的改变执行动作以执行竖直准确的交换。但是,这种设计需要对将数据馈送给路由器的每个源设备进行大量编制。因此,每个设备必须预先使用正确的新端口地址排队,使得在源设备从外部应用的参考中推断出的下一个竖直间隔处,源设备可以将端口地址改变成包括新的目的地地址。应理解的是,实施这种系统的开销成本非常高并且这意味着每个源设备必须符合此能力的某个控制标准。采用这种技术似乎不太可能,因为每个源设备都需要被定制成用于执行必要的交换。另外,将目的地添加到此源,即,使新的加入命令将目的地添加到当前多播组也存在问题。因为端口地址不一定会改变,所以路由器无法轻易确定如何开始将分组转发至新地址。此外,如果使用igmp,则无法指示加入命令应在何时发生。因此,需要一种有助于数据流在更精确的时间进行交换而无需双倍带宽缩放的系统和方法。技术实现要素:为了解决现有技术的上述限制,本文披露了一种用于等时交换分组化媒体的方法和系统。具体地说,该方法和系统解析该ip数据报内的rtp报头以提取为唯一ip流提供时间值的rtp时间戳。因此,通过检查该报头,能够在rtp时间戳值改变或者与目标值相匹配的时间点处交换该流。一方面,该系统和方法仅查找该rtp时间戳值的改变,并且基于检测到的改变执行该交换。另一方面,在对一组信号来说可能是唯一的指定时间戳值处或者基于发布到所有端口的共用“同步”值执行该交换。为了执行该交换,该分组转发算法必须改变。分组转发将基于该报头地址的该值发生,但方式不同。如果该值从其先前值改变,则该转发地址可能会改变。如果该值与参考值相匹配,则该转发地址或多个转发地址可能会改变。优选地,此转发发生在该ip路由器的输入端口处,在该输入端口处数据平面获得对信号的访问。在一些情况下,控制平面可能支持某些操作。例如,作为示例,一些ip路由器经由该控制平面将端口数据转发至被视作该控制平面的一部分的次级处理器以供多播复制。基于存储在该控制平面的hash或t-cam存储器中的映射表,正确地管理这些地址,并且然后将经复制的流转发至该路由器中的所有必要端口。因此,根据示例性实施例,披露了一种用于等时交换分组化媒体的方法。在这个方面,该方法包括:通过ip分组路由器的输入端口接收至少一个分组化媒体流;通过该ip分组路由器解析该至少一个分组化媒体流的帧的rtp报头信息,以标识rtp时间戳;检测该rtp时间戳的改变;并且当检测到该rtp时间戳的改变时,将该至少一个分组化媒体流重新路由至该ip分组路由器的输出端口。根据另一个示例性方面,提供了一种用于等时交换分组化媒体的ip分组路由器。在这个方面,该ip分组路由器包括:至少一个输入端口,被配置成通过ip分组路由器的输入端口接收至少一个分组化媒体流;至少一个输出端口,通信地耦合至目的地设备;以及至少一个rtp解析器,耦合至该至少一个输入端口并且被配置成解析该至少一个分组化媒体流的帧的rtp报头信息以标识rtp时间戳;以及处理器,被配置成检测该rtp时间戳的改变,并且当检测到rtp时间戳的改变时,控制将该至少一个分组化媒体流重新路由至该至少一个输出端口。根据另一个示例性方面,提供了一种用于等时交换分组化媒体的系统。在这个方面,该系统包括控制器,被配置成生成用于控制该等时交换的命令流。此外,该系统进一步包括ip分组路由器,该ip分组路由器通信地耦合至该控制器以基于该命令流执行该等时交换,该ip分组路由器包括:至少一个输入端口,被配置成从ip分组路由器的输入端口接收至少一个分组化媒体流;至少一个输出端口,通信地耦合至目的地设备;以及至少一个rtp解析器,耦合至该至少一个输入端口并且被配置成解析该至少一个分组化媒体流的帧的rtp报头信息以标识rtp时间戳;以及处理器,被配置成检测该rtp时间戳的改变,并且当检测到该rtp时间戳的改变时,控制将该至少一个分组化媒体流重新路由至该至少一个输出端口。在这个方面的细化中,该ip分组路由器的该处理器进一步被配置成在通过该输入端口接收到该至少一个分组化媒体流时,控制将该至少一个分组化媒体流路由至该ip分组路由器的第一输出端口;并且在检测到该rtp时间戳的改变时,控制将该至少一个分组化媒体流重新路由至该ip分组路由器的第二输出端口。另一方面,该控制器被配置成将命令流作为数据表传输,该数据表包括触发值和该ip分组路由器的该输出端口的与该触发值相关联的新转发地址。在另外的方面,该ip分组路由器的该处理器进一步被配置成:当检测到该rtp时间戳的该改变时确定该rtp时间戳的值;将该rtp时间戳的该值与该触发值进行比较;并且当该rtp时间戳的该值与该触发值相匹配时,控制将该至少一个分组化媒体流重新路由至该ip分组路由器的该输出端口。在又一附加方面,该ip分组路由器的该处理器进一步被配置成通过用该新转发地址替换该至少一个分组化媒体流的当前转发地址来控制重新路由该至少一个分组化媒体流。此外,一方面,该控制器基于精确时间协议同步信号生成该触发值。此外,该控制器可以基于igmp命令和sdn命令中的至少一个来生成用于将该至少一个分组化媒体流重新路由至该至少一个输出端口的该命令流。以上示例方面的简要概述用于提供对本披露的基本理解。此概述不是所有设想的方面的广泛概要并且不旨在标识所有方面的关键要素或重要要素也不界定本披露的任何或所有方面的范围。该概述的唯一目的是以简化的形式呈现一个或多个方面作为之后披露的更加详细说明的序言。为了实现上述目的,本披露的一个或多个方面包括权利要求中所描述的特征以及指出的示例。附图说明结合在本说明书中并构成本说明书的一部分的附图展示了本披露的一个或多个示例方面,并且与具体实施方式一起用于解释其原理以及实现方式。图1展示了根据示例性实施例的用于等时交换分组化媒体的系统的框图。图2展示了根据示例性实施例的用于等时交换分组化媒体的时序图。图3展示了根据示例性实施例的用于等时交换分组化媒体的另一时序图。图4a展示了根据示例性实施例的用于等时交换分组化媒体的控制和数据路径的流程图。图4b展示了根据示例性实施例的用于等时交换分组化媒体的比图4a中示出的流程图更详细的示例。图5展示了根据示例性实施例的用于等时交换分组化媒体的方法的流程图。图6展示了根据示例性实施例的用于等时交换分组化媒体的系统的高级框图。具体实施方式现在参考附图描述所披露的系统和方法的各个方面,其中,类似的附图标记贯穿全文用于表示相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节以促进对本披露的一个或多个方面的透彻理解。然而,在一些或所有实例中显而易见的是,可以在不采用以下描述的特定设计细节的情况下实践以下描述的任何方面。在其他实例中,为了有助于描述一个或多个方面,以框图形式示出了公知的结构和设备。以下呈现了本发明的一个或多个方面的简要概述以提供对其的基本理解。图1展示了根据示例性实施例的用于等时交换分组化媒体的系统的框图。在示例性方面,系统100提供了促进数据流之间的竖直准确和时间准确的转变的视频交换网络。如所示出的,系统100包括控制器140和一个或多个ip分组路由器130,如具有多个端口的以太网视频路由器(或交换机)。一般来说,控制器140可以被视为充当系统100的“控制平面”架构的控制传入媒体分组的路由协议的一部分。如以下将详细描述的,控制器140控制传入至ip路由器130的数据流的转发地址以及与其相关联的传出接口。此外,控制平面逻辑还可以定义要丢弃的某些分组以及优先处理其高质量服务被这种机制定义为差异化服务的某些分组。在所展示的实施例中,ip路由器130被示出具有三个输入端口132a、132b、…、132n和三个输出端口134a、134b、…、134n。此外,输入端口132a、132b、…、132n可以是能够从一个或多个网络120(例如,tcp/ip或udp网络)接收分组化媒体流的任何类型的输入端口,如以太网mac端口。此外,应当理解,虽然仅示出了三个物理端口,但是所披露的ip路由器130决不仅限于三个端口并且该概念可扩展为多于仅受限于存储器访问速度的端口。在示例性实施例中,输入端口132a、132b、…、132n可以使用例如smpte2202-7接收唯一数据流和/或冗余数据流。应注意的是,术语数据流和媒体流在本文中可互换使用。如所示出的,系统100包括第一分组化媒体数据源(数据流a的源)110a,该第一分组化媒体数据源将具有第一源ip地址,并且被示为由输入端口132a经由网络120接收。此外,系统100包括第二分组化媒体数据源(数据流b的源)110b,该第二分组化媒体数据源将具有第二源ip地址,并且被示为由输入端口132b经由网络120接收。此外,系统100包括第三分组化媒体数据源(数据流c的源)110n,该第三分组化媒体数据源将具有第三源ip地址,并且被示为由输入端口132n经由网络120接收。如以下将详细描述的,控制器140被配置成控制ip路由器130将数据流从数据源110a、110b、…、110n路由和交换至一个或多个目的地设备(例如,sdi设备和madi设备)。在所展示的示例中,ip路由器130将数据流a输出至目的地设备150a并且将数据流c输出至目的地设备150b。此外,ip路由器130当前不输出数据流b。例如,通过转发从控制器140传输至ip路由器130并且存储在存储器136中的地址来定义对到不同目的地设备150a和150b的分组化媒体流的控制。应理解的是,如上所述,虽然在示例性实施例中仅展示了两个数据流a和b,但是ip路由器130可以处理附加数据流并且仅受限于其硬件约束。因此,如所示出的,控制器140通信地耦合至ip路由器130并且被配置成向ip路由器130提供定义哪个输入端口132a、132b、…、132n将通信地耦合至哪个输出端口134a、134b、…、134n的数据和命令,从而允许分组化视频数据从一个或多个源110a至110n流向一个或多个目的地150a至150b。应理解的是,数据可以从单个源流向多个目的地设备(例如,多播技术),或者从多个源流向一个目的地设备。例如,附接至ip路由器130上的单个输出端口(例如,输出端口134a)的目的地设备(例如,150a)可以处理来自具有不同源或目的地多播ip地址的多个源(例如,源110a和110b)的多个视频信道。如进一步示出的,ip路由器130包括计算机处理单元(“cpu”)138以及通信地耦合至该cpu的存储器136。在示例性方面,cpu或处理器138充当端口处理器(每个端口可以有多个端口处理器)并且被配置成使用存储在相关联的存储器136中的指令执行本文所描述的操作。替代性地或另外地,可以使用专用电子硬件来执行本文所描述的操作中的一些或所有。此外,尽管在示例性实施例中仅展示了一个ip路由器130,但是该系统可以包括由控制器140控制的任何数量的交换机ip路由器130。此外,尽管在示例性实施例中控制器140被展示为单独部件,但是根据替代性方面,控制器140可以是ip路由器130的内部部件和/或cpu138的一部分。根据示例性方面,ip路由器130包括分别耦合至输入端口132a、132b、…、132n并且被配置成从每个数据分组解析实时传输协议(“rtp”)报头信息以及附加信息的一个或多个过滤器(未示出)。一般来说,由ip路由器130接收到的每个传入分组化媒体流包括多个数据分组,每个分组具有包括多个字段的报头以及有效载荷或数据部分。如本领域技术人员所知的,每个数据分组的rtp分组报头将包括32位同步时间戳(即,“rtp时间戳”)。根据示例性实施例,ip路由器被配置成解析由每个输入端口132a、132b、…、132n接收的传入分组化媒体流的每个帧的报头信息以解析rtp报头信息。rtp时间戳向每个唯一ip流提供真实时间值。因此,例如,如果ip路由器130正在实施用于ip音频的互操作性的aes-67标准或其他未来的rtp标准,则在给定的rtp有效载荷内可以存在多个信道。基于rtp时间戳,这些信道被及时结合,并且出于定时和路由目的可以被视作一个逻辑流。通过检查rtp报头并解析时间戳,ip路由器130被配置成在时间戳值改变或与目标值相匹配的时间点处交换(多个)数据流。一般而言,例如,编写根据smpte2110和vsftr-03的规范,使得与视频帧相关联的所有有效载荷媒体的时间戳值将具有相同的时间戳。因此,新帧在每帧的开始处具有新的且可指定的时间戳。根据示例性方面,ip路由器130被配置成标识给定数据流的rtp时间戳的值的改变并且在那个时间执行交换。在附加方面,ip路由器130被配置成在指定的rtp时间戳值处执行数据流交换,该指定时间戳值对一组信号来说可能是唯一的。又另一方面,ip路由器被配置成关于发布至所有端口的公共“同步”值交换数据流。为了执行数据流交换,ip路由器130必须改变分组转发算法。如以上所描述的,ip路由器130包括存储器136。在示例性实施例中,存储器136可以是被配置成接收和存储每个接收到的数据分组的转发地址的任何类型的常规电子存储器(例如,ram)。在这个方面,作为ip路由器130的一部分的存储器136可以被视为“数据平面”(也称为“转发平面”)的一部分,该部分定义了路由器架构的部件,该部件控制如何路由到达入站接口,即输入端口132a、132b、…、132n的分组。此外,在示例性实施例中,数据平面使用来自控制器140的(多个)表,在该表中ip路由器130查找传入分组的转发地址并且检索确定从输入端口、通过ip路由器130的内部转发结构并且到适当的传出接口,即输出/目的地端口134a、134b、…、134n的路径所必需的信息。换句话说,ip路由器130使用该表作为数据流的索引并且当ip路由器130(以及更具体地,端口引擎)应当控制将分组化媒体数据从第一目的地端口重新路由至第二目的地端口时发出信号。因此,根据示例性实施例,数据(即,控制器140)被配置成将命令流传输至与存储器136结合用作ip路由器130的“端口引擎”的cpu138。根据一个方面,命令流是包括每个输入端口的转发地址和可以是asap(“尽快”)的指定时间戳值的表。下面的表1展示了从控制器140传输至cpu138的示例性命令流:表1转发地址时间戳端口a,ipaasap端口b,ipbt=τ端口n,ipnt=2τ因此,根据示例性方面,控制器140传输包括此数据表的命令流,例如,该命令流定义由每个输入端口接收的分组化媒体的等时交换。应理解的是,端口a对应于输入端口132a,端口b对应于输入端口132b,并且端口n对应于输入端口132n。此外,ipa对应于输出端口134a,ipb对应于输出端口134b并且ipn对应于输出端口134n。该交换由命令流表中定义的rtp时间戳值定义。例如,当在输入端口134a处接收到的接收到分组化媒体流的rtp时间戳由于数据流中的新帧而为新的时,ip路由器130被控制以交换在端口a(即,输入端口132a)处接收到的要被路由至ipa(即,输出端口134a)的数据流。有利地,因为在检测到rtp时间戳(即,来自以上讨论的rtp报头解析)的改变时触发分组路由的交换,所以该交换有效地发生在竖直消隐间隔交换点期间。因为竖直消隐间隔交换点不包含图像数据,所以当分组被解码时,观察者将不会察觉到交换。图2展示了根据示例性实施例的用于等时交换分组化媒体的时序图。如所示出的,命令流被异步地馈送至控制平面,该控制平面然后用于控制数据平面。根据示例性方面,短命令指示单个地址改变并且长持续时间命令指示一连串命令。此外,应理解的是,如果命令需要在特定时间发生(例如,期望交换在rtp时间戳下一次改变时发生),则必须在该时间之前发送特定命令,因为本质上存在少量延迟。因此,如所示出的,如果要在该时间戳改变期间执行交换,则必须在rtp时间戳改变220之前发送命令210。因此,当端口引擎检测到由输入端口132a接收到的数据流的rtp时间戳的改变时,转发地址将从当前或旧转发地址(例如,输出端口134a)改变为新转发地址(例如,输出端口134b)。再次,重述如上所描述的,可以使用本文所描述的算法实施任何类型的数据流交换并且图2中所示的两个输出端口之间的交换仅是一个示例性实例。返回参考以上所示的表1,还可以基于指定时间戳值来进行交换。换句话说,如果rtp时间戳值与命令流中定义的参考值相匹配,这对于小组或整个ip路由器130可能是常见的,则(多个)转发地址可以改变。如以上所示出的,rtp时间戳可以基于可以被视为视频帧速率的理想持续时间间隔的时间间隔τ。此外,系统时间可以根据如以下将更详细讨论的精确时间协议(“ptp”)时钟进行同步。在这个方面,时间经由ptp传输并被锁定到时期,这意味着时钟被锁定到充当交换的参考点的时刻(t=n)。图3展示了根据示例性实施例的用于等时交换分组化媒体的另一时序图。如所示出的,定时信号由ptp在间隔n(即,时期),n+τ,n+2τ等处驱动。在这个示例中,如以上所描述的,命令流异步地传输,并且包括一连串命令信号310。假设该命令包括针对端口a(即,输入端口132a)的转发地址的指定时间戳,即时间戳t=n+2τ。然而,该命令流不包括针对端口b(即,输入端口132b)的转发地址的指定时间戳。因此,如所示出的,在时间t=n+2τ处检测到rtp时间戳改变320。此外,端口a(即,输入端口132a)的转发地址是基于在此检测到的rtp时间戳改变处触发交换的命令而定义的。因此,在此输入端口132a处接收到的分组化媒体流被交换到新转发地址。然而,与此同时,端口b(即,输入端口132b)没有指定时间戳值。因此,不进行交换,并且维持在此输入端口132b处接收到的分组化媒体流的当前或旧转发地址。因此,端口引擎在rpt时间戳改变时检测时间值,并将此值与在命令流中发送的指定时间值进行比较。如果这些值相匹配,则交换到新转发地址。根据示例性实施例,由ip路由器130进行的转发发生在数据平面获得对流入分组化媒体流的访问的输入端口处。在某些方面,可以在控制平面支持路由操作中的一些操作。例如,作为示例,一些ip路由器经由该控制平面将端口数据转发至被视作该控制平面的一部分的次级处理器以供多播复制。如以上所描述的,基于存储在控制平面的存储器的散列或三元cam(“tcam”)中的映射表(例如,表1)正确地管理转发地址,并且然后将经复制的流转发至ip路由器130中的所有必要端口。图4a展示了根据示例性实施例的用于等时交换分组化媒体的控制和数据路径的流程图。更具体地说,该图提供了系统中的通信路径的概念性表示,以及特别地,图1中示出的和以上描述的控制器140和ip路由器130。如所示出的,图400a包括例如被展示为输入端口132a、132b、…、132n的多个输入端口。此外,控制平面410被提供用于将控制平面分组(即,控制数据)传输至端口132a至132n以控制ip路由器130如何将分组化数据分组路由至指定目的地。如以上所描述的,被提供用于实施控制平面功能的硬件部件可以包括可以是单独部件或单个部件的控制器140和/或cpu138。如本文所描述的,控制平面数据被提供用于配置端口以执行对分组化媒体的等时交换。因此,控制平面维持包括接收到的分组化媒体流的转发地址的地址映射,使得数据在其移动通过ip路由器130时可以被访问和路由,示出为数据流。此外,数据平面420表示路由器架构,该路由器架构在分组到达入站接口,即输入端口132a、132b、…、132n之后控制分组化数据(即,流数据)如何通过ip路由器130路由。如以上所描述的,数据平面使用由控制平面410提供的表,在该表中ip路由器130查找传入分组的转发地址并且检索确定从输入端口、通过ip路由器130的内部转发结构并且到适当的传出接口(例如,输出端口134a、134b、…、134n)的路径所必需的信息。如本领域技术人员将理解的,系统400a的数据平面420可以包括存储器缓冲器、交点式交换机以及常规ip路由器中发现的其他硬件部件(未示出),以完成将媒体流物理路由至指定目的地设备。此外,如本领域技术人员将理解的,输入端口132a、132b、…、132n与控制平面410之间以及控制平面410和数据平面420之间的可选的流数据路径可以被提供用于促进数据信号的复制。图4b展示了根据示例性实施例的用于等时交换分组化媒体的比图4a中示出的流程图更详细的示例。如所示出的,所展示的主要部件与以上关于图4a所描述的相同,并且在本文中将不进行重复。然而,如进一步示出的,控制平面410接收外部事件时间调度器信号412和ptp时间同步信号414。更具体地说,在示例性实施例中,用于执行ip路由器130的媒体交换功能的控制信号可以是用于由特定输入端口获取日期的软件定义的网络(“sdn”)命令和/或互联网管理协议(“igmp”)。这些信号由控制器140接收并被解释为外部事件时间调度器信号412的一部分。因此,如以上所讨论的,这些信号可以定义何时应进行交换,即,当检测到下一个rtp时间戳改变时或在指定rtp时间戳改变处。此外,控制平面410由ptp时间信号414驱动。一般而言,精确时间协议(“ptp”)实现数据分组网络上时钟的精确同步。ptp在题为“用于联网测量和控制系统的精确时钟同步协议的标准”的ieee-1588-2008标准中定义,该标准通过引用结合于此。简单地说,ptp用于将“祖父(grandmaster)”时钟的精确当日时间分配给从时钟,如用于驱动控制平面410的内部时钟。这使用ptp分组时间戳交换完成。因此,控制平面410将ptp时间信号作为参考信号接收。根据所提出的和现有的标准和规范,分组化媒体流的rtp时间戳与外部参考信号的ptp时间戳有关。控制器140(即,控制平面410)被配置成使用此信息对命令本身进行预先排队,或向数据平面端口队列处理器分配时间参考的命令。一方面,将向输入端口132a至132n本身馈送外部参考时钟414的副本。根据示例性方面,根据如由ieee和smpte标准定义的常规技术处理ptp分组,以产生相当于视频定时信号的信号,如竖直间隔指示或水平线起始指示。根据示例性方面,ptp时间戳的实际值用于指示这些完全相同的事件。以这种方式,具有不同频率或格式的视频格式可以由共用时钟容易地交换。而且,如音频和辅助数据等其他信号可以在给定时间戳值处交换。通过使用ptp时间戳值,现在能够关于任何流(stream)、流(flow)或其组的共用时间基在唯一标识的时间点、一致且等时地将其交换,因为它们与ieee1588和smpte2059所定义的epoch绑定。另外,当已知信号被锁定到epoch时,能够基于给定当日时间值,如中午12:00,gmt–9小时来计算ptp时间戳值。这个方面提供了在更容易在当日时间运行的调度软件之间架桥的可能性。由于比例要求和其他控制平面响应考虑,根据示例性实施例,接收到的分组化媒体流的交换被认为在传入端口132a至132n处发生。因此,如所示出的,控制平面410使用外部事件时间调度器信号412生成命令流(以上所讨论的),该命令流根据作为短事件序列的ptp时钟信号414递送至所有输入端口。因此,传入数据的流量管理被推送至端口,并分布到整个ip路由器130,而不是局部地分布到在控制平面410。图4b展示了作为端口132a至132n处的分布式控制实体的用于提供如以上描述的队列和转发功能的这种分布式流量管理。有利的是,分布式控制提供了用于管理和路由传入分组化媒体流的更快速且更高效的系统,特别是在ip路由器130的端口数量增加的情况下。此外,这种设计使传入端口能够自主地行动以执行带内和/或带外命令。如以上所描述的,用于执行ip路由器130的媒体交换功能的控制信号可以是例如sdn命令(例如,openflow协议)和/或igmp命令。在ip路由器130的数据平面420由sdn控制的实施例中,由控制器140生成的转发地址表应被格式化以确保任何需要的离开命令(即,目的地端口丢弃源)在任何加入命令(即,目的地端口添加新源)之前被执行。在此实施例中,(多个)源的不再需要的所需转发地址应通过来自控制平面410的直接命令从对应源端口(即,输入端口132a至132n)转发表中移除,而不是作为igmp命令序列的一部分。图5展示了根据此示例性实施例的用于等时交换分组化媒体的方法的流程图。如所示出的,最初在步骤505处,控制平面410(例如,控制器140)从南向应用程序接口(“api”)接收用于执行一个或多个交换的命令。如以上所描述的,这些命令可以被接收为外部事件时间调度器信号412。然后,在步骤510处,控制平面410解析这些命令以确定/决定ip路由器130接收的分组化媒体流的转发地址。然后控制平面410创建/定义(多个)转发地址表并且将这些命令流传输至输入端口132a至132n的一个或多个处理器(例如,cpu138)。应理解的是,某些数据源可能需要被丢弃并且某些数据源可能需要添加到输入端口。这个信息通过控制平面410传送至数据平面420的端口处理器。如以上所描述的,示例性实施例考虑了两种类型的交换/采取(take)命令:立即交换/采取(即,“asap”)和在指定时间戳处交换/采取。如步骤520处所示出的,cpu138基于包括在命令流中的转发地址判定是否存在指定时间戳或交换是否应发生为asap。如上所述,基于现有和所提出规范和标准,图像帧的rtp时间戳应在该图像开始时改变,并且应在该图像帧的持续时间内保持不变(即,验证帧=字段1和字段2)。因此,理想的交换点是分组化媒体流的rtp时间戳改变的时间,因为这种改变指示新的帧的开始。因此,在步骤525处,输入端口(例如,输入端口132a)的rtp解析器解析传入分组化媒体流的报头信息并在步骤530处标识时间戳改变。在检测到此下一个时间戳改变时,数据平面420的cpu138继续进行到步骤545并且执行交换到输入端口132a接收的传入媒体流的新转发地址。例如,此时,存储器136中的端口表删除(多个)旧转发地址(例如,多个地址可以在多播环境中定义)并且停止向该(多个)地址转发信号。与此同时,cpu138添加由来自控制平面410的命令流定义的(多个)新转发地址并开始将传入媒体信号转发至(多个)新转发地址。应理解的是,一方面,要删除的转发地址和要添加的转发地址可以在同一表中,并且然后仅在适当的时间采取行动。此外,另一方面,存储器136可以作为双缓冲器存储器被提供,该双缓冲器存储器可以包含当前和下一个转发地址的添加和删除。在触发事件为真时(例如,检测到媒体流的rtp时间戳的下一次改变),预设缓冲器项被传递至当前缓冲器并且改变状态。如以上进一步描述的,可以进一步限定交换点,使得在rtp时间戳值改变且rtp时间戳值等于给定触发值时发生交换。当端口处理器(例如,cpu138)检测到交换的指定时间戳时,这在步骤520中示出。在这种情况下,过程继续进行到步骤535,与步骤525类似,该步骤解析rtp报头信息以检测rtp时间戳值的下一次改变。然后,端口处理器在步骤540处判定rtp时间戳是否与指定或触发值相匹配。如果是,则该方法继续进行到步骤545并执行如以上描述的交换。如果否,则该方法返回至步骤535并解析下一个数据帧以检测下一个rtp时间戳。重复此过程,直到端口处理器检测到触发事件。如以上进一步描述的,对于ip路由器,可以使用igmp实施示例性实施例,该igmp是用于为控制平面410提供与外部sdn将以其他方式提供的信息相同的所有信息的带内信令协议。一般而言,igmp命令序列包括两个主要步骤。首先,是离开请求,其中目的地端口丢弃源。然后,是加入请求,其中目的地端口添加新源。在常规操作下,目的地端口(例如,输出端口134a)请求先离开一个流然后加入另一个流。在请求离开流时,该流的源端口(例如,输入端口132a)立即从其转发地址丢弃请求目的地并停止转发分组。然后,在请求加入新流时,新源端口(例如,输入端口132b)开始将该流转发至目的地端口(例如,输出端口134a)。在这个示例中,例如,控制平面410代理此交易并在hash或t-cam中记录地址。一个明显的限制是,在没有信息流的情况下存在间隙,并且因此,由目的地端口(例如,输出端口134a)和与其耦合的目的地设备接收的数据中存在中断。根据示例性实施例,本文所描述的控制平面410被修改使得命令被逻辑地执行但没有实际执行,直到控制平面410监测到要在两个端口完成的离开和加入协议。然后,关于所有端口的流以相同方式同时执行交换命令,就像以上关于图5描述的sdn操作已经发生那样。一般而言,应注意的是,现有媒体ip路由器在端口处使用存储器缓冲器管理业务流和整形。这些缓冲器可以平滑目的地端口处的流之间的转变以适应欠重叠(underlap)和重叠。因为这些流是等时的,所以可以基于时间间隔、网络传输速度(即,位速率)和流量形状(即,突发性)来设计缓冲器以确保适当的存储器深度。此外,现有媒体路由器是具有多于级间最小数量的交叉点和连接器的交叉点和连接器的多级结构,以便通过多播提供无阻塞。在这种情况下,可能需要对某些路由重新指定路径以找到各级之间的连接器中的块周围的空间。在这种事件中,这些重新路由由控制平面410计算,并且向之前一样在数据平面420将命令馈送至端口处理器。一方面,如本文所描述的,可以针对三级路由器(即,叶脊架构)实施所述系统和方法,其中每个叶路由器和脊路由器提供相同的能力。因此,所披露的算法由每一级执行,并且该系统提供相同的整体能力。因为采取或交换命令是基于帧准确的rtp时间戳改变而发生的,所以重新指定路径不会引起对连贯视频信号的中断,如本领域技术人员将理解的。图6展示了根据示例性实施例的用于等时交换分组化媒体的系统的高级框图。如所示出的,系统600包括可以与以上讨论的ip路由器130相对应的ip路由器607。一般而言,本文所描述的接收器的部件可以被实施为fpga代码,但还可以通过硬件和软件组件的组合实施。另外,如所示出的,ip路由器607可以包括控制电路系统,该控制电路系统可以是例如cpu609(对应于cpu138)和存储器608(对应于存储器136)。如本领域技术人员已知的,cpu609可以是任何类型的计算机处理器,如微处理器等,该计算机处理器被配置成使用以上示出的算法和操作控制ip路由器130。此外,cpu609被配置成控制由617a和617b指示的输入端口a和b。端口a和b可以对应于以上描述的输入端口,如端口132a至132n。如所示出的,端口a和b各自具有耦合至接收器ip路由器607的一个或多个输出。此外,如本领域技术人员将理解的,端口a和b通信地耦合至ip网络a和b(由620a和620b指示),例如,在这些网络中输入端口可以从源110a至110n接收分组化媒体流。ip路由器607包括耦合至边缘路由设备618的输出,该边缘路由设备可以通过多个输入/输出端口818a、818b和818c(在一个示例中,对应于输出端口134a至134n)将已交换和已输出媒体流路由至一个或多个sdi和madi设备819。此外,在示例性方面,ip路由器607和边缘路由设备618都是单一设备。另外,图6展示了附加的各种硬件部件和其他特征,以根据本文呈现的方面使用。本文所呈现的方面可以使用硬件、软件或其组合来实施,并且还可以在一个或多个计算机系统或其他处理系统中实施。因此,根据示例性实施例,系统600也可以包括一个或多个处理器,如处理器602,这些处理器可以与控制器140相对应并且可以与接收器607分离,或者替代性地与cpu609相对应并且作为ip路由器607的部件,或者在一个实施例中是独立处理器。在任一事件中,处理器602连接至通信接口606(例如,通信总线、跨接叉线(cross-overbar)或网络)。在此示例计算机系统方面描述了各种软件实施方式。通信接口606包括可以接收如ptp时钟信号414和外部事件时间调度器信号412等外部信号的多个输入/输出端口603。通过举例,要素或要素的任何部分或任何要素组合可以使用包括一个或多个处理器的“处理系统”来实施。该处理系统进一步包括用于执行本文所描述的算法的一个或多个模块。这些模块可以是在处理器602和/或cpu609中运行的软件模块、驻留/存储在存储器610例如计算机可读介质中的软件模块、耦合至处理器602的一个或多个硬件模块或其某种组合。处理器的示例包括微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑设备(pld)、状态机、门控逻辑、离散硬件电路以及被配置成执行整个本公开中描述的各种功能的其他适当硬件。处理系统中的一个或多个处理器可以执行软件。软件应当被宽泛地解释成意指指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行线程、规程、函数等,无论其被称为软件、固件、中间件、微代码、硬件描述语言还是其他皆是如此。计算机系统600还包括主存储器604,优选地随机存取存储器(ram),并且还可以包括辅助存储器610。辅助存储器610可以包括例如代表软盘驱动器、磁带驱动器、光盘驱动器等的硬盘驱动器6110和/或可移动存储驱动器612。可移动存储驱动器612以众所周知的方式对可移动存储单元616进行读取和/或写入。可移动存储单元616代表可以通过可移动存储驱动器612读取和写入的软盘、磁带、光盘等。应理解,可移动存储单元816包括具有存储于其中的计算机软件和/或数据的计算机可用存储介质。在替代性实施方式中,辅助存储器610可以包括用于允许计算机程序或其他指令加载到计算机系统600中的其他类似设备。这种设备的示例可以包括允许软件和数据从可移动存储单元610传送至计算机系统600的程序盒和盒式接口(如存在于视频游戏设备中的接口)、可移动存储器芯片(如可擦可编程只读存储器(eprom)或可编程只读存储器(prom))以及相关联插口。通过举例而不是进行限制,这种计算机可读介质可以包括ram、rom、eeprom、cd-rom或者其他光盘存储设备、磁盘存储设备或其他磁性存储设备或者可以用来以指令或数据结构形式承载或存储期望程序代码并且可以被计算机访问的任何其他介质。如本文所使用的,盘和碟包括压缩光碟(cd)、激光碟、光碟、数字通用光碟(dvd)和软盘,其中,盘通常磁性地复制数据,而碟利用激光光学地复制数据。上述内容的组合还应当包括在计算机可读介质的范围内。计算机程序(也称作计算机控制逻辑)存储在主存储器604和/或辅助存储器610中。这种计算机程序当被执行时使计算机系统600能够执行本文所讨论的方面的特征。具体地,计算机程序当被执行时使处理器602能够执行本文所呈现的特征。因此,此类计算机程序代表计算机系统600的控制器。如果以软件实施,则可以将功能作为计算机可读介质上的一个或多个指令或代码进行存储或编码。计算机可读介质包括计算机存储介质。因此,当各方面使用软件来实施时,可以将软件存储在计算机程序产品中或使用例如可移动存储驱动器612或硬盘驱动器611将软件加载到计算机系统600中。控制逻辑(软件)当由处理器602执行时使处理器602执行本文描述的功能。在另一种示例实施方式中,可以主要地使用例如如专用集成电路(asic)等硬件部件以硬件实施各方面。实施硬件状态机以便执行本文描述的功能对于(多个)相关领域的技术人员而言将是显而易见的。还可以使用硬件和软件两者的组合来实施各方面。因此,在一个或多个示例方面中,所描述的功能可以以硬件、软件、固件或其任何组合实施。此外,虽然ip路由器在示例性实施例中被描述为分组交换设备,但应理解,该交换可以由如智能电话、膝上型计算机、个人计算机等具有适当处理、通信和输入/输出能力的任何处理设备实施。虽然已经结合上文概述的示例实施方式描述了各方面,但是对于本领域的至少普通技术人员而言,各种替代方案、修改、改变、改进和/或实质等效物可能变得明显,无论其是已知的还是当前未预见或当前可能未预见的。因此,如上所述的本发明的示例实施方式旨在是说明性的而非限制性的。在不偏离各方面的精神和范围的情况下,可以做出各种改变。因此,各方面旨在涵盖所有已知的或稍后开发的替代方案、修改、改变、改进和/或实质等效物。因此,权利要求书不旨在限制于本文所示的方面,而是旨在符合与权利要求书的语言一致的全部范围,其中,以单数形式引用要素并不意在指“有且仅有一个”,而是指“一个或多个”,除非特别如此声明。除非特别另外声明,否则术语“一些”指的是一个或多个。本领域的技术人员已知或之后知道的贯穿本公开所描述的各个方面的要素的所有结构和功能等效物都通过引用明确地结合在本文中并且旨在被权利要求书包含。并且,本文中所公开的任何内容都并非旨在贡献给公众,无论这种公开是否在权利要求书中被明确地叙述。任何权利要求要素都不应被解释为装置加功能,除非使用短语“用于……的装置”明确陈述了该要素。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1