在话音ip网络中用于包丢失补偿的子包插入的制作方法

文档序号:2822274阅读:140来源:国知局
专利名称:在话音ip网络中用于包丢失补偿的子包插入的制作方法
技术领域
本发明一般涉及数字信号传输,特别涉及在话音IP网络(VOIP)中对包丢失补偿方法的子包插入方法。
在IP网络上从一个端点(例如电话)来看,包丢失以任意的、不可预测的方式发生。包丢失不受端点的控制并且一般由于冲突或某些网络的过载(例如在路由器或网关)而发生。由于包丢失会在网络的实际设备内(例如在电缆中的冲突)发生,当一个包遗失时,没有一个有保证的机制来通知接收机。因此,用序列号来允许接收机检测包丢失。而且,一旦发生丢失,由于在实时电话应用中在重发过程中相关的延迟被禁止,因此该包不会被重发。这样,在接收端点的责任是在网络中对包丢失执行某些形式的检测和补偿。在这方面的挑战是充分地重建原始信号和保持话音质量的足够电平。
包延迟和包抖动是另外的网络现象,其需要补偿措施以保持话音质量。当包从一个源端点传播到目标端点时,一般沿着该路径通过不同的路由器或网络集线器被延迟。作为可变的排队延迟和可变地选择路径的结果,连续的周期性的包从源送出,而无序地到达目标端点并有相当的延迟和抖动。典型情况下,接收机通过实现一包缓冲器以平滑该可变抖动,并且允许接收机将包重新排列成其正确的次序,来管理这些问题。不幸的是,这样一种缓冲器依据其尺寸增加了音频流的标称延迟,由于音频延迟对话音质量有负面影响,象这种延迟必须减小。这种极小化在接收机中阻止对延迟和抖动的100%补偿,并且由于一个滞后的包不能插入到正在前进的音频流中,这种极小化可大大增加系统中的包丢失率。
大多数应用使用上述的包缓冲器以处理抖动和包延迟。管理这种缓冲器的例行程序监视输入的序列号并且检测丢失和滞后的包。在电话应用中,包通常被强迫延迟10、20或30毫秒大。为补偿这种持续时间的丢失,接收端点可以重播先前的包、减少播出率(假设抖动缓冲器有足够大的尺寸),内插样本或进行无声检测和插入方案。
由于当包丢失增加时,话音质量明显变差,先前包的简单重播在计算上是小事,仍然经常产生不满意的结果。这种方案的改变是用一空的或零的包替换丢失的包,但是在均匀的临界包丢失情况下,这也是足以引起注意的。
减少播出率和在两个样本之间的内插在效果上是相同的;其都是改变了接收样本率以减少样本的消耗率。播出调整在现有技术中是通过硬件调整样本时钟或样本帧长度来实现的,而内插在现有技术中是利用平均方法插入附加样本的软件方法来实现的。两种方法都有令人不快的负作用,即由于取样率的变化产生一个信号的频率漂移。为减少该频率漂移,仅能对取样率进行小的调整。但是,在包丢失的情况下,小的调整不能提供足够的补偿。
现有技术的无声检测算法监视信号流以确定两个话音之间的间隔,在该间隔中信号仅由背景噪声组成。无声插入是使用无声检测信息以插入附加的无声周期以对丢失的包进行补偿的过程。假如有很多无声的间隔或假如抖动缓冲器是足够大而在大部分时间能保证某些无声间隔,则这种方法将会有效。不幸的是在话音通话中,无声周期经常是非常短(在几个字之间),并且在典型的抖动缓冲器的时间帧的期间,该无声周期不能得到保证。此外和其他现有技术的补偿方法相比,无声检测强加了一个额外的处理负担。
最佳实施例的详细说明任何话音IP网络设备的基本特点是由一IP网络分隔发射和接收端点。该IP网络包括多个互连单元,例如网络集线器、路由器和网关。然而从一个端点来看,该接口是一简单的连接IP电缆,其能被看作从发射方到接收方的专用连接。
这样,如

图1所示,在IP网络上,发射端点1简单地将来自模数转换处理(TDM到以太网(T2E))的样本根据顺序累积入一个包或在端点1内的有效载荷缓冲器。一旦缓冲器装满,和已知的现有技术一样,该端点发射器对该有效载荷缠上一包头,并且通过网络3传送在报头具有适当地址和连续信息的包。在报头的路由选择信息描述了最终目标地址并且附加到每一包(例如,Seq#0,Seq#1,等)。由于多个网络路由选择路径和/或通过IP网络3在每一个路由段的可变队列延迟,传送的连续包在接收端点变得无序。其显示在图1中,第四个包(Seq#3)在第三个包(Seq#2)前面到达。在数模转换(以太网到TDM(E2T)处理)和通过多媒体数字信号编解码器9及喇叭11回放之前,该接收端点5通过在抖动缓冲器7内将包以正确顺序缓存而修正这些排序错误。
抖动缓冲器7可以用传统的方式实现为一个顺序排列的IP包缓冲器的简单环缓冲器。如图2所示,每一个包缓冲器包含一个IP报头段,一个RTP(实时协议)报头段和包有效载荷。该有效载荷包含一个根据在RTP报头中的连续号播放的样本的缓冲器。抖动处理能力是由抖动缓冲器7的尺寸确定的。然而,如前面提到的那样,这个尺寸(以包的数量计)是一结构参数,抖动缓冲器7必须缩小以限制端对端延迟。当包抖动超出缓冲器的能力时,这能导致有效包丢失。另外,假如在网络3中由于冲突或过载(例如,假如在图1中的Seq#3是丢失而不是无序),抖动缓冲器7将检测在包次序中的不匹配,但不能补偿。
在现有技术中,重放话音流的任意一个子组的包丢失补偿方案是一内插的形式。和上面指出的一样,在现有技术中重播整个包以补偿包丢失是常事。由于包尺寸持续时间通常是数十毫秒,该方法给大多数用户带来非常明显的口吃效果。本领域的人都知道,一次重播一个样本或内插以产生一个附加样本,两种方法都有降低话音信号频率的缺点。每隔五或十个样本的均匀内插造成明显的频率漂移,并且对即时地补偿包丢失经常是不够的。
根据本发明,每一个包缓冲器被分成更小的子包以允许子包的重播,以作为一在上面讨论过的两个现有技术方案的折衷方案。子包不过是在给定包缓冲器的有效载荷中包含的样本的一短序列。子包方法的不明显的益处是当子包尺寸增加时,样本内插的频率漂移变得不是很明显,而当子包的尺寸下降时,包重播的口吃效果降低。这样,子包尺寸的选择在这两个矛盾要求的平衡中变得很重要。根据本发明的最佳方式,基于实验结果子包的尺寸选择为1毫秒。
图3给出了根据本发明具有n个样本的包有效载荷缓冲器怎样被分成子包。对n典型的值是160个样本(即20毫秒的话音)。这样,根据本发明的最佳方式,对每一个包缓冲器选择一毫秒产生20个子包。
当接收机5检测到包丢失或检测抖动缓冲器7的样本数开始下溢时,根据本发明接收机能起动包丢失补偿算法。已经通过实验确定,保留一个包在抖动缓冲器7中代表了有效检测门限。如图4所示,包丢失补偿方法包括在每隔一个子包周期之后(在这种情况下是1毫秒)插入一个用于播出的内插子包。选择的这种重播周期既要减少口吃效果又要减少频率漂移,同时快速恢复丢失的包(即在抖动缓冲器7内保留的样本被“扩大”了50%)。插入的子包被内插以减少两个子包之间的转移影响。这通过一简单的加权方案可以实现,该方案是使被重播子包的第一样本类似于下一个将要被播出的子包的第一个样本(这样首先播放的已经流入而不需要补偿)。
为更进一步减少口吃效果,仅当下溢的情况严重时,采用本发明的补偿方法。这样,如果对数个包已经产生补偿,并且新的、后续的包到达,则补偿算法被暂停直到样本数再次降低到临界门限时再起动。这种就自动以逐步减少的比率展开补偿,对人耳的影响小得多。
这种子包插入方案的计算负担和现有技术的无声检测/插入方案相比较轻。由于前面的子包缓冲器能经常被重复使用并且仅有三个样本需要修改以实现平滑处理,每隔一个子包周期将一个子包插入到播放流中是简单的。插入的子包由两个样本的简单比例确定,然后通过平均产生(如果比例被选择为2的幂,通常用移位器来实现)。
根据本发明,下列伪码显示一子包插入方法的优选实现例<pre listing-type="program-listing"><![CDATA[  #define SUN_PACKET_SIZE 8 /*In samples*/  int current_sp{SUB_PACKET_SIZE};  int nex_sp{SUB_PACKET_SIZE};  void smooth sub_packet(void)  {  current_sp
=(current_sp
+3*next_sp
)>>2;  current_sp[1]=(2*current_sp[1]+2*next_sp[1])>>2;  current_sp[2]=(3*current_sp[2]+next_sp[2])>>2;  }  if(packet compensation mode AND in_odd_sub_packet)  {  CALL smooth_sub_packet and RESEND current_sp  }]]></pre>通过在每隔一个子包周期之后插入加权的子包,本发明的包丢失补偿方法能以50%的补偿率对丢失的包补偿。这样,当补偿开始时,假如数据保持20毫秒,接收机5在数据不足之前将用30毫秒播完数据,则有足够的时间接收后续包。
该发明可能选择其它的实施例和变化。
该最佳实施例提出了一个特定加权因子和子包尺寸的例子。根据系统的结构,对于具体的应用,这些参数的变化如包尺寸、样本尺寸、取样率和音频类型的变化有可能产生更好的效果。此外,根据包丢失的比率平滑的方法也能变化。例如,在某些应用中包丢失可能十分罕见,所以只需要在每一个包缓冲器中内插入一个子包,以便提供足够的包丢失补偿。
此外,尽管本发明的包丢失补偿方案的原理使用是在话音IP体系结构(VoIP),即在传统的电话应用和业务中,该发明的原理也可被应用到通过IP网络3发送的其它音频源(例如音乐)的应用。这样,该发明的一般应用是对在IP网络上对发送的音频包丢失进行补偿,这里音频是指定用人耳接收和解释。
应当理解,所有这些选择和变化都在所附权利要求限定的本发明的领域和范围之内。
权利要求
1.一种在接收端点内对IP网络传送音频包的丢失进行补偿的方法,其包括以下步骤在一缓冲器内存储样本的包缓冲器作为多个子包;在所述的缓冲器中在两个连续的子包之间插入至少一个内插的子包;以及从所述的缓冲器播放所述的子包。
2.如权利要求1所述的方法,其中每个所述内插的子包包括所述缓冲器的要被播放的所述连续子包中当前包和下一个子包的加权平均,这样该内插的子包的第一个样本与所述连续子包的所述下一个包的样本类似。
3.如权利要求2所述的方法,其中所述加权平均是PNm=0-(M-1)=(mPm+(M-m)Nm/M,其中P0-(M-1)表示当前子包的M个样本的0至(M-1)个,以及N0-(M-1)表示下一个子包的M个样本的0至(M-1)个。
4.如权利要求3所述的方法,其中每个所述内插的子包是这样插入的<![CDATA[  #define SUN_PACKET_SIZE 8 /*In samples*/  int current_sp{SUB_PACKET_SIZE};  int nex_sp{SUB_PACKET_SIZE};  void smooth_sub_packet(void)  {  current_sp
=(current_sp
+3*next_sp
)>>2;  current_sp[1]=(2*current_sp[1]+2*next_sp[1])>>2;  current_sp[2]=(3*current_sp[2]+next_sp[2])>>2;}  if(packet compensation mode AND in_odd_sub_packet)  {  CALL smooth_sub_packet and RESEND current_sp  }。]]>
5.如权利要求1所述的方法,其还包括步骤在所述缓冲器中在每隔一个所述的子包之间插入内插的子包。
6.如权利要求5所述的方法,其中所述子包的每一个具有1毫秒的持续时间。
7.如权利要求1所述的方法,其中,仅当所述缓冲器包含的子包少于一预定的子包的门限数目时,执行所述在连续子包之间至少插入一个内插子包的步骤。
8.如权利要求7所述的方法,其中所述子包的预定门限数目等同于在单个包缓冲器里的样本数。
全文摘要
一种在接收端点内对IP网络传送音频包的丢失进行补偿的方法。其包括以下步骤:在一抖动缓冲器内存储一样本的包缓冲器以作为多个子包,在缓冲器中在两个连续的子包之间至少插入一个内插子包,以及从该缓冲器播完所述的子包。这样仅有抖动缓冲器的一小部分以一特定的次数被重播以减少对话音质量的负面影响。本发明的方法插入重播部分以对包丢失进行补偿,这一方法仅产生较低的处理负担。
文档编号G10L19/005GK1364289SQ01800431
公开日2002年8月14日 申请日期2001年3月6日 优先权日2000年3月6日
发明者罗杰·巴斯廷 申请人:扎林克半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1