分组网络中的相关媒体流的动态缓冲和同步的制作方法

文档序号:7748280阅读:214来源:国知局
专利名称:分组网络中的相关媒体流的动态缓冲和同步的制作方法
技术领域
本发明一般涉及缓冲器的控制,并且具体地涉及对分组化通信中的抖动缓冲器 (jitter buffer)的控制。
背景技术
分组交换电信网络以被分割为或再分(subdivide)为称为分组的片段的诸如语 音、视频和/或文本之类的流量为特征。分组通信使用统计复用或动态带宽分配,其中,物 理通信信道被划分为多个可变比特速率信道或流。在目的地端,这些分组基于其分组编号 以及其它统计因素而被重新组装。分组交换流量经受着如下服务质量(“QoS”)问题,例如延时、抖动、丢弃分组、乱 序(out-of-order)的递送和/或分组恶化错误。例如,在典型的基于因特网协议的语音 (“VoIP”)系统中,第一人的语音流通过第一网关被数字化、压缩,并被再分为经编码二进 制数据的分组。这些分组通过虚拟私有网络(“VPN”)或未经调整的网络或公共网络被发 送,这些网络将它们递送到远端网关,其中,每个分组具有不同的延时量。远端网关对接收 到的分组重新排序,然后对经编码二进制数据解压缩(或者同义地,解码),由此向第二人 提供连续音频流。该音频流是第一人的音频流的被略微延迟的副本。在本示例中,QoS因 失真而被降低,失真例如是由从话语事件到收听的总延时、中断(drop out)以及其它人为 现象引入的,其它人为现象是由于分组太早(由于不同的运输路径长度)或太晚(例如由 于网络拥塞和/或不同路径长度)到达以至于不能正确地包括在音频流中、全部分组丢失、 缓冲器溢出以及其它因素引起的。对于必须确保同步地(均等地定时)递送诸如语音和视 频之类的不同类型流量的多媒体会议,QoS问题会变得更糟。已经开发了多种技术来控制不利地影响QoS的各种因素。这些技术包括抖动缓冲 器、Reservation协议(“RSVP”)、差别化服务(DiffServ)协议、冗余传输(例如RFC-2198 中规定的)、调度算法(例如,加权公平排队(“WFQ”))、基于类别的排队、拥塞避免机制(例 如,随机早期检测(“RED”)和加权随机早期检测(“WRED”)),等等。抖动缓冲器是减少由传输延时引起的抖动的硬件设备或软件过程。在抖动缓冲器 接收分组时,其按照到达顺序将它们写入存储器中。分组在最早的可能时间时按适当的序 列被读出;即,当乱序时分组被重新排序并且基于控制读指针的本地时钟而被重新定时。去 抖动缓冲器可应对的最大净抖动等于在开始播放媒体流之前引入的缓冲延时。如果不用抖 动缓冲器来平滑传输,则数据可能丢失,从而在语音信号的情况中,导致可感知到的断续音 频流。抖动缓冲器的大小对于收听者感知到的音频流的质量是很重要的。大的缓冲器虽 然准许较少地丢失分组,但是可能将大的延时引入输出的音频流中。相比而言,小的抖动缓 冲器虽然向输出音频流引入了较小的延时,但是可能导致大量分组丢失。当网络抖动超过 了抖动缓冲器的大小时,呼叫质量就会恶化。因此,通常采用中等容量的抖动缓冲器或者可 变容量的抖动缓冲器。
虽然单缓冲器是常见的,然而,现有技术的双缓冲器已被用在语音通信中。在一种 实现方式中,端口网络采用静态容量的双缓冲器以实现动态带宽分配。一个缓冲器对应于 时分复用(“TDM”)数据(其未被加时间戳(timestamped)),另一缓冲器对应于分组数据。 假设TDM数据总是按顺序被隐含地同步,并且优先于分组数据被取得。因此,TDM数据不会 因抖动或延迟而被重新排序。每个缓冲器具有读指针和写指针以维护缓冲器状态。出栈 (pop)指针使得能够对未按顺序到达的分组进行重新排序。当下一相继的存储器位置拥有 TDM数据时,控制器优先选择该TDM数据。每当TDM缓冲器未被占用时,就按需从分组数据 缓冲器读取以提供用于没有TDM数据的所选存储器位置的数据。尽管存在这些技术,远端网关处的QoS问题也仍然是一个问题。

发明内容
本发明的各个实施例和配置解决了这些以及其它需求。本发明一般涉及使用两个 或更多个缓冲器来更高效且更有效地管理分组抖动、延迟、丢失和/或同步。在第一实施例中,提供了一种方法,该方法包括以下步骤(a)在接收节点处接收第一分组和第二分组,第一分组和第二分组具有共同的分 组持续时间和共同的时间戳和/或序列号;(b)由处理器将第一分组写入第一缓冲器;(c)由处理器将第二分组写入第二缓冲器;以及(d)由控制模块选择如下⑴和(ii)中的至少一者(i)分别从第一缓冲器和第 二缓冲器读取第一分组和第二分组中的每个的时间,( )要读取第一分组和第二分组中的 哪个分组,其中,在(ii)中,第一分组和第二分组中的仅一者被用来填充数据流中的空隙。在第二实施例中,提供了一种方法,包括以下步骤(a)在接收节点处针对第一和第二组分组维护至少第一和第二缓冲器,其中,在第 一组分组中选择的第一成员具有与在第二组分组中的选择的第二成员相同的时间戳和序 列号中的至少一者;(b)在第一和第二缓冲器中的至少一者被占用时,由控制模块调节第一和第二缓 冲器中的所述至少一者的大小,所述调节大小是如下的至少一者的函数用来发送第一和 /或第二组分组中的至少一些成员的网络的状态、处理第一和/或第二组分组的成员的时 间、第一和第二缓冲器的相对占用、用户需求以及应用需求。在一种配置中,汇聚点(point-of-convergence)同时接受经由不同路由行进到 该目的地的多个实时传输协议(“RTP”)流。对于分组流的每个,汇聚点具有单独的缓冲器 空间。汇聚点具有控制机制,其检查分组的头部信息,尤其是时间戳和媒体描述符,当具有 相同时间戳的分组类型包含了相同的基本信息但是具有不同的质量时(例如,G. 711相对 于G. 729),优先选择较好质量的分组,当分组类型表示不同的媒体时(例如G. 711音频和 H. 264视频或G. 711音频和RFC-4103文本),利用分组的时间戳来同步或协调媒体的呈现, 并且优选地,基于媒体流类型,在QoS与不同步之间作出明智的折衷。在一种配置中,多个单独的具有控制逻辑的存储器阵列或者一个具有控制逻辑的 存储器阵列允许阵列内的动态划分。作为示例,阵列可以具有用于将媒体流写入存储器 的写指针、用于读出媒体流的读指针,以及能够对乱序的分组重新排序的“出栈”指针。控制逻辑检查分组编号、媒体类型以及其它统计信息,并且将分组源发到其它数字信号处理 (“DSP”)电路,例如下游的编解码器、下游的分组丢失隐匿算法等等。电路和存储器阵列 可以物理地由诸如现场可编程门阵列(“FPGA”)之类的可编程逻辑阵列、具有存储器的微 控制器、定制硅组成,或者可以由非专门设计的逻辑和存储器器件构成。可以用硬件、软件 或更有可能地用它们的组合来实现控制。存储器阵列可以充当抖动缓冲器,并且针对QoS和非同步性来优化对多个流采取 的动作。这些媒体流可以是进行了不同编码的相同信息并通过不同网络被发送,同时希望 针对单个信息流复原出完美的一组或接近完美的一组分组。或者,这些媒体流可以是需要 被同步以避免时间偏移的诸如语音和视频之类的多个流。另一变体可以是需要协调的诸如 语音和文本之类的多个媒体流。通过利用相关联的控制逻辑,可以对质量和同步性作出明 智的抉择。这是与传统系统的比较,在传统系统中,通常在网络中的不同点处作出折衷并且 对QoS的提高可能不利地影响同步性。本发明可以提供取决于具体配置的多个优点。本发明可以将不同步问题控制到可 接受水平或完全消除,并且为端用户维持较高的体验质量。其可以在分组交换网络上,尤其 对于VoIP通信维持较高的服务质量(“QoS”)。其可以利用被等同编码或者被交替编码的 媒体流的多个传输(其各自足以用来重建被发送的媒体流)来提高媒体传输的质量和可靠 性两者。其可以提高多个基于分组的媒体流的质量并且/或者针对同步递送或至少经协调 的递送而同步它们。其可以改善或消除抖动、错误分组序列,并且恢复多个基于分组的媒体 流的同步,并且可以基于所关注的媒体进行大幅地优化。将从这里包含的(一个或多个)发明的公开中清楚这些以及其它优点。短语“至少一个”、“一个或多个”以及“和/或”是在运用时既连接又分离的开放 式表达。例如,如下表达“A、B和C中的至少一个”、“A、B或C中的至少一个”、“A、B和C中 的一个或多个”、“A、B或C中的一个或多个”以及“A、B和/或C”中的每一种的意思是A单 独的、B单独的、C单独的、A和B —起、A和C 一起、B和C 一起或者A、B和C 一起。术语“一”或“一个”实体指代一个或多个该实体。这样,术语“一”(或“一个”)、 “一个或多个”和“至少一个”在这里可以互换使用。还要注意,术语“包含”、“包括”和“具 有”可以互换使用。如这里使用的术语“自动的”及其变体是指当任何处理或操作被执行时,在没有 实质性人力输入(material human input)的情况下完成该处理或操作。然而,如果输入是 在处理或操作的执行之前被接收的,则即使处理或操作的执行使用了实质性的或非实质性 的人力输入,处理或操作也可以是自动的。如果人力输入对处理或操作将如何被执行产生 了影响,则认为该输入是实质性的。同意处理或操作的执行的人力输入不被认为是“实质性 的”。“平均分组偏移”是(1)被指派给缓冲器中的到达分组的时间位置与(2)缓冲器的 前端(当前正被顺序地输出的分组)之间的时间上的偏移的运动平均。“平均分组方差”是量度分组延时或抖动的变化的参数。平均分组方差通常是分组 到达时间的方差的运动平均。“缓冲器”是例行程序或存储装置,用来当从一个设备(输入设备)向另一设备(输 出设备)传送数据时,补偿数据流的速率或事件发生的时间的差异。抖动缓冲器是补偿或移除抖动的专用类型的缓冲器。如这里使用的术语“计算机可读介质”是指参与向处理器提供指令供执行的任何 有形存储和/或传输介质。这种介质可以采取许多形式,包括但不限于非易失性介质、易失 性介质以及传输介质。非易失性介质例如包括NVRAM或者磁盘或光盘。易失性介质包括动 态存储器,例如主存储器。计算机可读介质的常见形式例如包括软盘、柔性磁盘、硬盘、磁带 或任何其它磁介质,磁光介质、CD-ROM、任何其它光介质,打孔卡、纸带、任何其它具有孔图 案的物理介质,RAM、PROM和EPROM,FLASH-EPR0M,类似存储卡的固态介质,任何其它存储器 芯片或存储器盒,如下面将描述的载波,或者计算机可以读取的任何其它介质。电子邮件的 数字文件附件或其它自容式信息文档或文档组被认为是等效于有形存储介质的分布式介 质。当计算机可读介质被配置为数据库时,将明白,该数据库可以是任何类型的数据库,例 如关系数据库、层次化数据库、面向对象的数据库等等。因此,认为本发明包括其中存储了 本发明的软件实现方式的有形存储介质或分布式介质以及现有技术认可的等同物和后继 介质。这里使用的术语“确定”、“计算”和“运算”及其变体可互换使用,并且包括任何类 型的方法、处理、数学操作或技术。术语“抖动”是被发送的数字信号的不希望的定时变化。这里使用的术语“模块”是指能够执行与该元件相关联的功能的任何公知的或以 后开发出的硬件、软件、固件、人工智能、模糊逻辑或硬件与软件的组合。此外,虽然根据示 例性实施例描述了本发明,然而,应当理解,可以单独地要求保护本发明的各个方面。“指针”是一种标识符,例如指示另一数据元素的位置的数据元素。指针的值或指 针值通常是被定位的数据元素的存储器地址。前面是本发明的简化概述以提供对本发明各个方面的了解。该概述既不是对本发 明及其各个实施例的广泛性综述也不是全面性综述。既不旨在标识出本发明的重要的或关 键性元素也不旨在记述本发明的范围,而是以简化的形式将本发明的所选概念呈现作为对 下面将呈现的更详细描述的介绍。如将会理解的,通过单独或组合地利用上面阐述的或下 面将详细描述的一个或多个特征,还可以作出本发明的其它实施例。


图1是根据第一实施例的系统的框图;以及图2是根据第一实施例的流程图。
具体实施例方式参考图1,将描述本发明的第一实施例。系统100包括分别经由第一和(可选的)第二网络108和112与接收节点116通 信的发送节点104。接收节点116包括多个组件,包括第一和第二缓冲器120和124、解分 组器128、解码器132、处理模块136、网络状态模块140以及控制模块144,所有这些组件通 过总线148通信。如将理解的,在全双工通信会话中,两个节点都将发送和接收分组,因此, 都将具有这些组件。发送和接收节点104和116可以是多种通信设备。示例性通信设备包括基于因特
6网协议的语音(“VoIP”)设备(例如IP软电话和硬电话)、交换机、媒体服务器、路由器、 会话边界控制器以及网关(例如,安全和端口网关)。通常,通信是软件控制的,并且包括通 用微处理器;然而,还可以使用专用数字信号处理器(“DSP”)。第一和第二网络108和112通常都是分组交换式的;然而,这些网络中的一个或 两个可以是电路交换式的。在一种配置中,仅第一网络108中的不同分组通信路径被使用。 在另一配置中,第一和第二网络108和112两者上的不同信号通信路径被采用。第一和第二缓冲器120和124具有多个存储槽(slot)或经编址的存储位置, 120-1、120-2、120-3、120-4…以及 124-1、124-2、124-3、124-4…,以接收、存储并适当地排 序(通过时间戳和/或分组编号)数据(通常为语音或视频数据)以供随后读出。取决于 配置,缓冲器120和124可以是硬件设备或软件过程,并且优选地为软件过程。在一种配置 中,第一和第二缓冲器120和124中的一者或两者是动态的、自适应性的,具有可变容量。第 一和第二缓冲器120和124是在控制模块144 (下面将讨论)控制下的受管理的存储器分 配。所分配的存储器可以是任何合适类型的可记录和可读介质。取决于配置,缓冲器可以 使用经划分的公共存储器或单独的存储器。另一等同的选择可以是在模块144控制下的专 用存储器块或寄存器。多个指针被用于缓冲器管理。第一和第二缓冲器120和124各自分别具有相对应 一对读和写指针152a、152b以及156a、156b。读指针指向上次读取的分组或其一部分,而写 指针指向上次写入或记录的分组或其一部分。虽然通常将包括分组头部、尾部和净荷的整 个分组写入缓冲器存储槽中,然而,替代配置仅将分组的所选部分写入存储槽中。这样的示 例可以是净荷,并且通常还可以是分组序列号或时间戳。读处理(未示出)读取存储槽内 容,而写处理(未示出)将内容写入每个存储槽。除了读和写指针152和156之外,出栈指 针160a、160b指向第一和第二缓冲器120和124内需要对乱序的分组重新排序的任何失序 的存储器位置。出栈指针可以被认为是非顺序读指针(其中,该指针指向分组序列中下一 个乱序的分组)或者,替代地,是返回序列读指针(其指向非顺序排序的分组中上次被排序 的分组)。在本发明中,可以以任一方式来使用出栈指针。解分组器128接收来自当前由读指针152a、152b所指的第一和第二缓冲器120和 124中的任一个的经重新排序的分组,并且从分组中移除分组头部和尾部。如果是经压缩 的,则净荷随后被传递给解码器132。在一种配置中,从缓冲器中移除并丢弃另一缓冲器中 被加有相对应的时间戳和/或序列号的分组。解码器132对净荷解压缩。解码器可以是任何合适的解压缩算法。如将理解的, 通常,压缩可以通过去除长串的相同比特或者在连续采样间隔(例如,视频帧或静音)中 未变化的比特,来减少对信息或信号编码所需要的比特数目或带宽。可以采用任何级别的 压缩。示例性压缩算法包括MPEG-2 (视频)、MPEG-4 (视频)、H. 264 (视频)、RFC-4103 (文 本)、G.711(音频)、G. 723. 1 (音频)、G. 729 (音频)等。处理模块136针对所需应用来处理解压缩后的净荷。对于音频净荷,模块136将音 频片段重新转换为用于收听者的音频(话语)流。取决于配置,模块136可以执行数模转 换或模数转换。模块136还可以通过声响心理透明的或最小侵入性的填充(数据扩充)或 抽取来执行遮罩变更(maskvariation)。为了扩充音频数据,有利地,选择性地复制与单词 和/或稳定的元音声之间的静音相对应的经编码分组。还可以得知本领域中的其它类似技术。对于视频净荷,取决于配置,模块136也可以执行数模转换或模数转换。模块136还可 用来改变视频流的特性,例如隔行扫描、显示分辨器、长宽比、每像素的比特以及色彩空间、 视频质量、比特速率和格式。网络状态模块140利用适当的技术来确定第一和/或第二网络108、112的状态。 网络状态可以利用多种参数来量化,这多种参数包括接入优先级、带宽可用性、抖动、分组 丢失、延迟、长话级品质、信元差错率、严重信元误块比率、信元丢失率、信元传输延时、平均 信元传输延时、信元延时变化性、平均分组偏移、平均分组方差等等。网络状态可以通过诸 如察看到达分组和/或缓冲器的特性之类的被动技术,以及诸如利用网络探测器并发送和 接收探索分组(Ping packet)之类的其它主动(侵入性的或非侵入性的)技术来确定。控制模块144不仅控制出栈指针160指向第一和第二缓冲器中的哪个而且控制第 一和第二缓冲器的每个的容量。如将会理解的,可以利用诸如分组计数、时间单位(微秒) 等之类的任何合适的度量来表示缓冲器容量。在控制由读指针152a、152b所选的缓冲器时,控制模块144包括两个缓冲器中 的哪个包含未经压缩或经较低级别压缩的数据(优选压缩或经低级别压缩的缓冲器),分 组序列中的特定分组是否到达优选缓冲器(当分组尚未到达并且其将被读出时,则该分组 从次优选缓冲器中被读出),以及用于向每个缓冲器发送分组的通信路径的网络状态(优 选具有较高服务质量(“QoS”)的通信路径)。在一种配置中,发送节点104通过第一网络 108来发送使用第一和第二级别的压缩以及相同时间戳或分组序列号以及源和目的地地址 对的所选视频或音频帧。具有第一级别的压缩的第一分组被存储在第一缓冲器中,并且第 二分组被存储在第二缓冲器中。具有较低级别的压缩的缓冲器优先被用作分组源,而另一 缓冲器被用于不在优选缓冲器中的分组。在另一配置中,第一和第二分组具有相同级别的 压缩(或未压缩)并且通过不同或相同的网络但通过不同的通信路径被发送。这些分组具 有相同的源地址和分组序列号和/或时间戳。当中间路由器接收到具有相同的源地址和分 组序列号和/或时间戳的这两个分组时,路由器沿着不同路径(或者经由不同的路由器接 口)重新发送分组。这通过由各个路由器在存储器中将来自先前遇到的分组头部的字段列 表维持选定的一段时间来实现。在任一种配置中,尽管分组通常具有在共同时间间隔(例如,20微秒)中提取的净 荷,然而,分组也可能具有或不具有相同的(复制的)净荷。例如,第一和第二分组可以具 有相同或不同类型的媒体净荷(例如,相同或不同的媒体描述符);即,第一和第二分组可 能具有相同的音频数据帧或者共同被加有时间戳的音频和视频数据帧(其在被呈现给用 户时必须被同步)。在一种净荷被复制的配置中,发送节点104是VoIP设备(硬电话或软电话),并且 发送节点104通过电路交换第一网络108(优选地通过蜂窝网络)和分组交换第二网络112 来发送同一组信息(实时控制协议(RTCP)情况中的控制信号和/或性能度量或者实时传 输协议(RTCP)情况中的音频信息)。通过第一网络108发送的第一组分组被压缩,而通过 第二网络112发送的第二组分组未被压缩。第二缓冲器124(其包括第二组分组)是用于 所选组信息的优选缓冲器,而第一缓冲器120 (其包括第一组分组)在当从第二缓冲器124 读取时该组信息中的给定成员缺失时使用。
在一种净荷未被复制的配置中,发送节点104接收与一组共同的事件(例如,多媒体电话呼叫、多媒体记录或者现场拍摄或呈现等)相对应的语音和视频流两者。每个音频 帧具有在同一时间间隔根据共同的事件生成的相对应视频帧。第一组分组包含来自音频流 的净荷,而第二组分组包含来自视频流的净荷。在接收节点116处,第一和第二缓冲器120 和124的大小被调整,以使得读取相对应的音频和视频信息对的时间大幅地使因分组抖动 或延迟引起的信息帧的丢失最小化。这可能使得第一和第二缓冲器120和124具有不同的 容量,这主要取决于第一和第二网络108和112的相对状态。对同步第一和第二组分组的 需要比因延迟向用户呈现引起的延迟更重要。虽然本示例是参考音频和视频来讨论的,然 而,将明白,也可等同地适用于文本、视频和/或音频的任何组合。在控制每个缓冲器的容量时,控制模块144考虑到多种因素。这些因素例如包括 用来发送针对所选缓冲器的分组的网络的网络状态(较低的QoS通常比较高的QoS需要更 大的缓冲器大小)、将存储在所选缓冲器中的分组的大小(具有较高级别压缩的净荷比具 有较低级别压缩的净荷需要更少存储器以被存储)、所选缓冲器的缓冲器占用、由解分组器 128、解码器132 (诸如G. 729之类的某些压缩算法比诸如G. 711之类的其它压缩算法需要 更多的解压缩处理)和/或处理模块136 (特别地,视频处理在处理需要将音频分组保存在 缓冲器中更长时间的视频分组时,可能引入大量延时)、用于所选缓冲器的可用(最大)存 储器、处理模块136可以容忍以满足用户或应用要求的最大延迟量(诸如VoIP之类的某些 应用比诸如图像处理之类的其它应用要求更低水平的延迟)、用于所选缓冲器的通信路径 的介质类型(电路交换网络通常具有比分组交换网络低的延迟和分组丢失)、被共同地加 有时间戳或编号的分组的净荷是否被第一和第二缓冲器复制(涉及被复制净荷的应用通 常可以容忍比未复制净荷小的延迟/抖动)、第一和第二缓冲器中被共同地加有时间戳或 编号的分组的净荷是否是不同类型的媒体或者是否具有不同的媒体描述符(例如,音频帧 和相匹配的视频帧)、净荷是控制信令还是载体数据(诸如双音多频(“DTMF”)信号之类 的控制信号需要与相对应的音频流同步)、所选缓冲器中的净荷的性质(例如,涉及讲话者 在更短时间内更频繁改变的VoIP交谈通常要求较低的延迟/抖动)。如将会理解的,第一 和第二缓冲器可以被动态地调节以具有相同或不同的容量。现在将参考图2讨论接收节点116的操作。在步骤200,网络状态模块140确定第一和/或第二网络的状态。在一种配置中, 接收节点将当前网络状态与根据上次网络状态确定得到的网络状态的(一个或多个)当前 值相比较。如果这(一个或多个)值中的一个或多个尚未具有所选改变量,则不执行后续 步骤 204,208 和 212。在步骤204,控制模块144确定第一和第二缓冲器120和124的当前状态。缓冲 器状态主要考虑缓冲器容量、读、写和/或出栈指针的位置,以及空闲存储槽120-1、120-2、 120-3、120-4、124-1、124-2、124-3、124-4…的数目和/或位置。在一种配置中,控制模块 144还确定解分组器128、解码器132和/或处理模块136中的一个或多个的当前状态。在步骤208,控制模块144接收来自网络状态模块140的当前网络状态,并且基于 规则和策略以及各种当前状态来确定对第一和第二缓冲器120和124的必要改变,如果有 的话。如所提到的,可能的改变包括出栈指针160a、160b,读指针152a、152b以及写指针 156a、156b的位置,以及第一和第二缓冲器120和124的容量。在步骤212,控制模块144按照步骤208所确定的那样来重新配置第一和第二缓冲
9器 120 和 124。已结合单工网络体系结构描述了本发明的示例性系统和方法。然而,为了不必要 地模糊本发明,前面的描述省略了多个公知的结构和设备。这种省略不被认为是对要求保 护的本发明的范围的限制。阐述了具体细节以提供对本发明的理解。然而,应理解,本发明 还可以按这里所阐述的具体细节以外的多种方式来实施。此外,虽然这里所示的示例性实施例示出了系统的各种组件被放在一起,但是,系 统的某些组件可以远程地位于诸如LAN和/或因特网之类的分布式网络的很远部分处,或 在专用系统内。因此,应当理解,系统的组件可以组合到一个或多个设备(例如,网关或交 换机)中,或者位于分布式网络(例如,模拟和/或数字通信网络、分组交换网络或电路交 换网络)的具体节点处。如从上面的描述中可以明白的,为了计算效率的原因,系统的组件 可以在不影响系统的运行的情况下被布置在组件的分布式网络内的任何位置。例如,各种 组件可以位于诸如PBX之类的交换机和媒体服务器、网关中、一个或多个通信设备中、一个 或多个用户的驻地(premises)处或它们的某种组合。类似地,系统的一个或多个功能部件 可以被分布在(一个或多个)电信设备和相关联的计算设备之间。此外,应当理解,连接元件的各种链路可以是有线或无线链路或它们的任何组合, 或者能够向以及从被连接的元件提供和/或传输数据的任何其它已知或以后开发出的(一 个或多个)元件。这些有线或无线链路还可以是安全链路并且能够传输加密的信息。用作 链路的传输介质例如可以是用于电信号的任何适当的载波,包括同轴电缆、铜线和光纤,并 且可以采取声波或光波的形式,例如在无线电波和红外数据通信期间生成的那些波。此外,虽然已经关于具体的事件序列讨论并图示说明了流程图,然而应当明白,可 以在对本发明的操作没有实质性影响的情况下对该序列进行改变、添加和省略。可以使用本发明的多种变体和修改。可以提供本发明的一些特征而不提供其它特 征。例如,在一个替代实施例中,双缓冲系统位于处理模块的下游,双缓冲器体系结构 位于诸如与音频处理器相比会引入大量处理延迟的图像或视频处理器之类的资源密集型 处理模块的上游或下游。例如,最大化分辨率的像素倍增(upscaling)是资源密集型的,并 且数字信号处理器在没有缓冲的情况下可能由于过采样而引起数学上的错误。以这种方 式,不同净荷类型的分组可以被成功地同步。在另一替代实施例中,当在诸如时分复用(“TDM”)信道之类的电路交换网络上出 现停运并且通信系统未能切换到分组交换网络时,双缓冲系统可以用来维持同步。在另一替代实施例中,双缓冲系统可以用来将控制信号与载体分组同步。在又一实施例中,本发明的系统和方法还可以结合如下装置来实现专用计算机、 编程微处理器或微控制器和(一个或多个)外围集成电路元件、ASIC或其它集成电路、数 字信号处理器、诸如分立元件电路之类的硬连线电路或逻辑电路、诸如PLD、PLA、FPGA、PAL 之类的可编程逻辑器件或门阵列、任何类似装置,等等。一般地,能够实现这里所述的方法 的(一个或多个)任何设备或装置可以用来实现本发明的各个方面。可用于本发明的示例 性硬件包括计算机、手持设备、电话(例如,蜂窝、因特网使能的、数字、模拟、混合以及其它 电话)以及本领域中已知的其它硬件。这些设备的一些包括处理器(例如,单个或多个微 处理器)、存储器、非易失性存储装置、输入设备和输出设备。此外,包括但不限于分布式处理或组件/对象分布式处理、并行处理或虚拟机处理的备选软件实现方式也可以被构建来 实现这里描述的本发明。 在另一实施例中,可以结合利用对象的软件或面向对象的软件开发环境来容易地 实现所公开的方法,这些软件和开发环境提供了在各种计算机或工作站平台上使用的可移 植源代码。可替换地,可以用使用标准逻辑电路或VLSI设计的硬件来部分地或全部地实现 所公开的系统。是用硬件还是软件来实现根据本发明的系统取决于系统的速度和/或效率 要求、具体的功能,以及所利用的具体软件或硬件系统或微处理器或微计算机系统。在又一实施例中,可以用被存储在存储介质中,并且在与控制器和存储器协同操 作的经编程通用计算机、专用计算机、微处理器等上运行的软件来部分地实现所公开的方 法。在这些情况中,本发明的系统和方法可以被实现为被嵌入在个人计算机上的程序(例 如小应用程序(applet)、JAVA 或CGI脚本)、驻留在服务器或计算机工作站上资源、被嵌 入在专用测量系统或系统组件等中的例程等等。还可以通过将系统和/或方法物理地结合 到软件和/或硬件系统中来实现本系统。虽然本发明参考特定的标准和协议描述了在实施例中实现的组件和功能,然而, 本发明不局限于这些标准和协议。这里未提到的其它类似标准和协议是存在的并且认为被 包括在本发明中。此外,这里提到的标准和协议以及这里未提到的标准和协议定期地被更 快更有效的具有基本上相同功能的等同物所替代。这些具有相同功能的取代标准和协议被 认为是包括在本发明中的等同物。在各个实施例、配置和方面中,本发明包括基本上如这里示出和描述的组件、方 法、处理、系统和/或装置,包括其各种实施例、子组合以及子集。本领域技术人员在理解了 本公开之后将明白如何作出和使用本发明。在各个实施例、配置和方面中,本发明包括在 缺少这里未示出和/或描述的项目时或者在其各种实施例、配置或方面中(包括在缺少诸 如在先前的设备或处理中为了提高性能、获得改善并/或减小实现成本所使用的项目时), 提供设备和处理。本发明的前面的讨论是为了说明和描述的目的而呈现的。前面的讨论不旨在将本 发明限制到这里公开的一种或多种形式。在前面的详细描述中,例如,为了简化本公开,在 一个或多个实施例、配置或方面中将本发明的各个特征成组在一起。在除上面讨论的那些 以外的本发明的替代实施例、配置或方面中,可以将本发明的实施例、配置或方面的特征相 组合。这种公开的方法不应被解释为反映了如下意图要求保护的发明需要比在每个权利 要求中明确记述的特征多的特征。而是,如下面的权利要求所反映的,创造性方面在于比前 面所公开的单个实施例、配置或方面的所有特征少。因此,下面的权利要求由此被结合到该 详细描述,其中,每个权利要求独立地作为本发明的单独的优选实施例。此外,尽管本发明的描述包括了对一个或多个实施例、配置或方面以及某些变更 和修改的描述,然而,例如在理解了本公开之后可能落在本领域技术人员的技术和知识内 的其它变更、组合和修改也在本发明的范围内。希望获得包括了在所允许程度内的替代实 施例、配置或方面的权利,其包括针对所要求保护的那些的替代、互换和/或等同的结构、 功能、范围或步骤,而无论这里是否公开了这些替代、互换和/或等同的结构、功能、范围或 步骤,并且不意图向公众贡献任何可专利的主题。相关申请的交叉引用
交叉引用了 2009 年 1 月 29 日提交的题为 “System and Method forProviding a Replacement Packet”、序列号为12/361,950的美国专利申请,通过此引用将该申请全部结
合于此。
权利要求
一种方法,包括a)在共同接收节点处接收第一分组和第二分组,所述第一分组和第二分组具有共同的分组持续时间和共同的时间戳和/或序列号;b)由处理器将所述第一分组写入第一缓冲器;c)由处理器将所述第二分组写入第二缓冲器;以及d)由控制模块选择如下i)和ii)中的至少一者i)从所述第一缓冲器和所述第二缓冲器分别读取所述第一分组和所述第二分组的每个的时间,ii)要读取所述第一分组和所述第二分组中的哪个分组,其中,在ii)中,所述第一分组和所述第二分组中的仅一者被用来填充数据流中的空隙。
2.一种系统,包括输入端,可操作来接收第一分组和第二分组,所述第一分组和第二分组具有共同的分 组持续时间和共同的时间戳和/或序列号;处理器,可操作来将所述第一分组写入第一缓冲器,并将所述第二分组写入第二缓冲 器;以及控制模块,可操作来确定如下i)和ii)中的至少一者i)从所述第一缓冲器和所述第 二缓冲器分别读取所述第一分组和所述第二分组的每个的时间,ii)要读取所述第一分组 和所述第二分组中的哪个分组,其中,在ii)中,所述第一分组和所述第二分组中的仅一者 被用来填充数据流中的空隙。
3.如权利要求1或2的发明,其中,所述第一分组和所述第二分组具有共同的源和目的 地地址对,其中,所述第一分组的净荷具有不超过第一级别的压缩。
4.如权利要求3的发明,其中,所述第二分组的净荷具有不超过第二级别的压缩,其 中,所述第一级别的压缩低于所述第二级别的压缩,并且其中,所述第一分组和所述第二分 组的净荷类型相同。
5.如权利要求1或2的发明,其中,i)被选择,其中,所述第一分组和所述第二分组具 有共同的源和目的地地址对,并且其中,所述第一分组和所述第二分组具有不同类型的媒 体净荷。
6.如权利要求1或2的发明,其中,ii)被选择,其中,所述第一分组和所述第二分组具 有共同的源和目的地地址对。
7.如权利要求5的发明,其中,所述第一分组和所述第二分组的净荷具有不同级别的 压缩,并且其中,所述第一分组和所述第二分组具有共同类型的媒体净荷。
8.如权利要求1或2的发明,其中,所述第一分组通过分组交换网络被发送,并且所述 第二分组通过电路交换网络被发送。
9.如权利要求7所述的发明,其中,ii)被选择,其中,所述第一分组被从第一队列读出 并且所述第二分组不被从第二队列读出,并且其中,在与所述第一分组从所述第一队列读 出时基本上相同的时刻,所述第二分组被从所述第二队列移除。
10.一种利用指令进行了编码的计算机可读介质,当所述指令被执行时,执行权利要求 1的步骤,并且其中,所述计算机可读介质与所述处理器通信。
全文摘要
本发明涉及分组网络中的相关媒体流的动态缓冲和同步。本发明针对在共同接收节点处使用两个或更多个缓冲器来减少抖动、分组丢失和/或分组延迟的影响,并且/或者同步不同类型的媒体。
文档编号H04L12/56GK101873255SQ20101016726
公开日2010年10月27日 申请日期2010年4月27日 优先权日2009年4月27日
发明者保罗·若勒·麦克里斯, 大卫·S·莫赫尔 申请人:阿瓦雅公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1