自适应抖动缓存的制作方法

文档序号:7587389阅读:314来源:国知局
专利名称:自适应抖动缓存的制作方法
背景本发明涉及电信,更具体而言是涉及使用互联网协议的分组网络,甚至更具体而言是涉及将这些网络中分组传送的时延减到最小。
在不可靠互联网协议(IP)网络上发送实时数据流的应用程序存在许多需要克服的问题,包括长和可变的时延以及丢失和失序的分组。今天,这些问题可通过使用诸如实时协议(RTP)和抖动缓存器来减少。
RTP是在组播或单播网络业务上提供适于应用程序传输实时数据,如音频、视频或仿真数据的端到端网络传输功能的实时传输协议。RTP不做资源预留,也不保证实时业务的服务质量。RTP提供序列编号,以告知接收节点分组是按序到达还是按任何其它方式。通过控制协议(RTCP)增强数据传输,以便允许以一种可升级到大型的组播网络中的方式进行数据传送监视,并提供最小控制和识别功能。RTP和RTCP被设计为独立于下面的传输层和网络层。RTP在H.Schulzrinne等人的Request for Comments 1889"RTPA TransportProtocol for Real-Time applications"(请求评注1889“RTP关于实时应用程序的传输协议”)中作了详细说明,http//194.52.182.96/rfc/rfc1889.html(1996年2月1日)。
抖动缓存器在接收节点中是用于将分组分类到正确序列中并根据需要对分组进行延时以补偿其网络时延中的偏差的存储器。RTP规范在6.3.1节和附录A.8中讨论了这样的两次到达间时间间隔的抖动,提供用以组成RTP数据分组两次到达间时间间隔的统计偏差的32位估计值,该抖动以时标单位计并表示为无符号整数。两次到达间时间间隔的抖动J被定义为分组间距的差值D的平均偏差(平滑的绝对值),该分组间距差值为一对分组的分组间距在接收方处相对于发送方处的差值。如以下方程所示,它等于两个分组的“相对转接时间”中的差值;相对转接时间是指分组的RTP时标和接收器在到达时间上的时标之间的差值,这是以相同单位测量的。如果Si是来自分组i的RTP时标,而Ri以RTP时标单位计的关于分组i的到达时间,那么对于两个分组i和j,D可以表示为D(i,j)=(Rj-Ri)-(Sj-Si)=(Rj-Sj)-(Ri-Si)两次到达间时间间隔的抖动在从源端接收到每个数据分组i时使用关于那个分组和按到达顺序的前一个分组i-1的差值D进行连续计算,依据的公式为J=J+(|D(i-1,i)|-J)/16这个算法是最佳的一阶估算器,而增益参数1/16在保持合理的收敛速度的同时提供了良好的噪声减少率。
现在的问题是要确定在抖动缓存器中需要的延迟时间,以实现在没有过多时延的情况下获得提供给应用程序的平滑数据。这个问题能严重影响使用互联网/内联网作为传输话音骨干网的话音通信。此外,当IP电话用户数量增加时,关于更灵活使用网络带宽的需要将变得越来越重要。
在移动蜂窝电话和无线基站间的通信中,通常使用一种称为不连续传输(DTX)的技术,主要用于节省移动站的电池能量。简而言之,DTX意味着如果发送器没有任何新数据要发送就不发送任何数据。当移动站检测到用户没有在说话时,该移动站仅发送含有背景噪声的静音指示(SID)帧。SID帧一般以大约480毫秒周期发送,而在SID帧之间移动站不作任何发送。
使用DTX来节省带宽的思想已在IMTC IP承载话音业务论坛技术委员会(V61P 1A 1.0)中提出,但有关它的实现还没有进行讨论。而且在IP网络上使用DTX时还存在一些需要解决的特殊情况。
概述本申请人的发明解决了确定在抖动缓存器中需要的延迟时间的问题,并实现了在没有过多时延的情况下获得提供给应用程序的平滑数据的目的。因此,本申请人的发明改善了使用互联网/内联网作为传输语音骨干网的话音通信,同时更智能地使用网络带宽。
在本发明的一个方面,在分组通信系统中提供了一个含有可变大小的抖动缓存器的接收节点,该抖动缓存器存储到达接收节点的分组,并将存储的分组释放给正在接收节点中执行的应用程序,其中每个分组都有各自的序号,存储的分组被周期地释放,抖动缓存器中的每个条目具有多种状态中的一种状态;此外接收节点还含有一个基于由已存储分组到达时间导出的分组传输时延的估计偏差来改变抖动缓存器大小的处理器。
接收节点可进一步包含一个偏差缓存器,它存储了已存储分组到达时间的偏差,第一个到达分组的释放时间是基于第一个分组的到达时间和初始时延的,而分组传输时延的估计偏差由已存储的偏差导出。
抖动缓存器的条目状态可以是空闲、忙和已使用,空闲状态表明没有到达的分组存储在抖动缓存器的那个位置中,忙状态表明一个到达的分组存储在抖动缓存器的那个位置中,而已使用状态表明一个存储在那个位置中的到达的分组正被释放给应用程序。于是,到达的分组可存储在标为忙状态的各个位置中;分组可被释放以响应应用程序的查询;并当应用程序向抖动缓存器查询下一个分组时,该分组相应的位置可变为已使用状态,而先前到达的分组的各自位置可变为空闲状态。
处理器在接收节点处于不连续传输模式时可以减少抖动缓存器的大小,从而避免丢弃带有语音信息的已到达分组。因而接收节点可包含一个用以存储到达接收节点的被选分组的DTX缓存器。至少基于以下条件之一选择到达的分组正到达的分组是否是一个语音周期之后第一个到达的并带有全部的噪声信息,以及该正到达的分组是否含有噪声更新信息、在一个语音周期之后到达以及带有各自的、紧接早先前到达的带有语音信息的分组序号之后的序号。然后处理器在分组被选择时改变抖动缓存器的大小,从而避免丢弃含有语音信息的分组。
在本发明的另一个方面,提供了一种在分组通信系统中将到达接收节点的分组存储在缓存器中并向在接收节点中执行的应用程序释放到达分组的方法。该方法包括确定将第一个到达的分组释放给应用程序的时间Tr的步骤,时间Tr等于第一个分组的到达时间Ta加上一个初始时延,在等待要从缓存器释放的第一个到达分组时,将当前时间与时间Tr进行比较并在时间Tr已经过去时释放第一个到达的分组,接着在第一个到达的分组被释放后,按第一个时间间隔周期地释放存储的分组。
这种比较可被执行以响应来自应用程序按第二个时间间隔周期发生的查询,在第一个到达的分组之后到达的已存储分组可被释放以响应来自应用程序按第一个时间间隔周期发生的查询,而第一个间隔可能至少与第二个间隔一样长。同样,第一个间隔也可能基本上等于到达分组之间的传输间隔。
在本发明又一方面,提供一种在分组通信系统中调整存储到达接收节点的分组的缓存器大小的方法。该方法包括的步骤有对多个其具有的序号比存储在缓存器中最早到达分组的序号小的到达分组计数;将该数值与接受的丢失参数进行比较,如果该数值大于接受的丢失参数,就增大变化指示计数器,而如果该数值等于或小于接受的丢失参数,就减少变化指示计数器;当变化指示计数器到达指示器的顶端参数时,如果缓存器还没有处于其最大的允许值就增加缓存器的大小;而当变化指示计数器到达指示器的底端参数时,如果缓存器还没有处于其最小的允许值就减少缓存器的大小。
确定缓存器大小的步骤可通过确定一个与分组序列的第一个分组到达时间有关的期望分组到达时间来执行;确定分组到达时间偏差;确定作为分组在缓存器中将被延迟的时间的测量时延;确定基于到达时间偏差和接受的丢失参数的期望时延;以及确定基于期望时延和测量时延的缓存器的大小。
到达时间偏差可存储在偏差缓存器中,并进行分类与标准化。此外,测量的时延可为具有被存储在偏差缓存器中的到达时间偏差的分组进行累加,而期望时延则基于被存储的、标准化的到达时间偏差和接受的丢失参数来确定。然后根据期望时延和自累加的测量时延导出的平均测量时延来确定缓存器的大小。
当接收节点处于不连续传输模式时可以减少缓存器的大小,从而避免丢弃带有语音信息的到达分组。于是这种方法可包含将到达接收节点的被选分组存储在DTX缓存器中的步骤。至少基于以下条件之一选择一个到达的分组到达的分组是否是在一个语音周期之后第一个到达并带有全部噪声信息的,以及该到达的分组是否含有噪声更新信息、在一个语音周期之后以及具有各自的、紧接先前到达的带有语音信息的分组序号之后的序号。然后当分组被选择时改变缓存器的大小,从而避免丢弃带有语音信息的分组。
附图简述本发明及其目的与优点将通过结合附图阅读描述来获得理解,其中

图1描述了分组的头标格式;图2A、2B描述了一个具有抖动缓存器的接收节点;图3描述了一种在抖动缓存器中存储和释放分组的方法;图4描述了一种确定何时改变抖动缓存器大小的方法;图5描述了一种确定抖动缓存器改变的大小的方法;图6A、6B描述了一个用于存储分组到达时间偏差的缓存器;图7A描述了在抖动缓存器中关于分组的测量的时延;图7B描述了确定缓存器改变的大小的原理;以及图8A、8B描述了使用不连续分组传输的抖动缓存器的运行。
详述本申请人的发明解决了确定抖动缓存器中所需的延迟时间的问题,以实现在没有过多延迟的情况下将平滑数据提供给应用程序。本申请人的解决方案仅需要被提供以一个初始时延值,此后它通过测量到达时间的偏差和众多到达过迟的分组来使自己适应适当的时延。本申请人的解决方案是基于假定发送器按接收器已知的间隔,如规则间隔,来发送数据分组的。
依照本申请人的发明,自适应抖动缓存器存储到达IP网络上的一个节点的数据分组并处理迟到或失序的数据分组。发送器使用如RTP协议在网络上发送数据分组,这样RTP提供每个分组中各自的序号,以此告知接收缓存器到达分组应该按什么序列被输入缓存器。
作为一个实用协议的实例,RTP分组的头标格式由图1加以说明,图的上部显示了比特位置以及八位字节数。每个头标含有至少12个八位字节,组成以下固定头标字段版本(V)2比特填充(P)1比特扩展(X)1比特作用源(CSRC)计数(CC)4比特标记(M)1比特净荷类型(PT)7比特序号16比特时间标记32比特同步源(SSRC)32比特CSRC列表0-15项,每项32比特最开始的12个八位字节出现在每个RTP分组中,而CSRC列表标识符仅当被RTP混合器插入时才出现。固定头标字段的细节在RTP技术说明的5.1节中进行了描述。这里注意到PT字段识别RTP净荷格式并通过即将使用该净荷的应用程序来确定净荷的解释便足够了。一种简档规定了净荷类型代码到净荷格式的一种默认静态映射。其它的净荷类型代码可被动态定义。RTP发送器在任一给定时间发送一个单RTP净荷类型。
对每个被发送的RTP数据分组使序号加1,而且序号可被接收器用来检测分组丢失以及恢复分组序列。序号初始值是随机的(不可预知的)以使对于加密的已知明文的攻击更加困难,即使源端本身不加密也会如此,因为分组可能流过一个对其加密的翻译器。因此,应当理解,发送器不必使用RTP而仅在分组中提供适当的序号即可。
依照本申请人的发明,接收节点确定从自适应抖动缓存器向应用程序释放到达分组的时间。接收节点1的配置在图2A中以示意性的方式进行了很好的描述,而接收节点1中的抖动缓存器10的配置则在图2B中有更为详细的描述。节点1接收被提供给接收节点中一个处理器CPU的到达分组的流或序列2。如图2A所示,处理器执行组成分组被导向的应用程序的指令以及组成控制抖动缓存器10和将在下文详述的偏差缓存器20(若提供的话)的方法的指令。缓存器10、20位于接收节点1中提供的存储器中。
图2B显示了被存储在抖动缓存器10中箭头A所示的各自位置上的入数据分组5、6、7……的序列。已经到达的分组从缓存器10释放给箭头B所示的应用程序。图2B描述了已到达的分组3、4已被存储在缓存器10的位置中的情况。缓存器10中的位置针对以下解释的理由被标识成空闲、已使用或忙。
图3描述了存储入分组和释放已到达分组给应用程序的过程。这种方法的一个重要方面就是计算释放第一个到达分组给应用程序的时间Tr(步骤302)。其实,这个如下所述决定的时间是第一个分组到达的时间Ta加上一个指定的初始时延,该初始时延是期望时延Td的初始估计值。
当应用程序等待要从抖动缓存器10中释放的数据时,应用程序可按一个短的时间间隔(步骤304)周期性地查询缓存器。只要应用程序没有从抖动缓存器得到数据分组,应用程序就不会做任何事情。每次应用程序为向缓存器查询第一个数据分组时,缓存器就比较当前时间t和第一个分组的释放时间Tr(步骤306)。应当理解更多的分组,即在第一个到达的分组后到达的分组,能在第一个分组已被释放之前的步骤304、306期间到达。释放时间过去后,缓存器将第一个数据分组给应用程序,下次应用程序发送一个短间隔或“快速”查询给抖动缓存器10(步骤308),或者可能更精确地给接收节点中控制抖动缓存器10的处理器。
在将第一个分组送给应用程序后,优选地,当释放分组时不需要做更多的时间比较。入分组被存储在如下所述的抖动缓存器中(步骤310),只要应用程序查询分组便将分组提供给该应用程序(步骤312、314)。这些针对更多数据的查询能够以它们之间的某一时间间隔到达抖动缓存器10,该时间间隔基本等于或长于“快速”查询之间的时间间隔(即这些查询比起针对第一个到达分组的查询要慢)。以上所提到的接收器已知的慢查询间的时间间隔不必远小于分组间的传输时间间隔。在一个简单的通信系统中,分组以规则的时间间隔进行传输,即传输时间间隔基本上彼此完全相等。实际上,优选地,慢查询间的时间间隔最好基本上等于分组传输的间隔。
应当理解,快查询和慢查询不需要由应用程序引起,而更一般的是如来自一个定时器或多个定时器的任何信号,该定时器能使得第一个到达的分组和/或随后到达的分组被释放给应用程序。
再参考图2B,每个抖动缓存器条目可处于三种不同状态中的一种状态空闲、忙和已使用。空闲状态说明没有到达的分组被存储在缓存器中的那个位置;忙状态说明一个到达的分组被存储在那个位置;而已使用状态说明存储在那个位置的已到达的分组正被释放给应用程序或由其访问。根据读指针的值从抖动缓存器10中释放分组,该读指针的值在每次收到从应用程序来的查询时用以表明要访问哪个缓存器的位置。应当理解,读指针其实不过是一个循环计数器,其中的每个计数值对应于抖动缓存器中一个相应的位置。
当分组从抖动缓存器释放给应用程序时,条目状态按以下方式变化。实际到达的第一个分组存储在标记为忙状态的位置,并且读指针被初始化以指向那个位置。如上所述,在第一个到达的分组已释放给应用程序后,该位置变为已使用状态。这通常对将当前正被应用程序访问的分组(即处于已使用状态的缓存器条目)视为缓存器10中的第一个分组有利。当到了应用程序取下一个分组的时候,现为已使用状态的条目变为空闲状态,而缓存器中的下一个条目(由读指针所标识的)由忙状态转换到已使用状态。如果缓存器中的下一个条目为空闲状态,则没有分组送给应用程序(因为没有到达的分组存储在该位置),且指示下一次应用程序为分组而查询缓存器时要读的那个缓存器位置的读指针前移。如果入分组的序号小于已使用状态分组的序号,则入分组将被视为到达过迟而被丢弃。
可以方便地用四个参数配置适合于改变通信条件的抖动缓存器特征的本申请人的方法采样间隔是在执行缓存器大小变化计算前测量到的数据分组数。可接受丢失是在改变缓存器大小前的一个采样间隔内可接受的由于时延而丢失的数据分组数。指示器顶端和指示器底端参数用于控制该方法的灵敏度。应用于本申请人方法的这些和其它参数一般可在任何时候按要求进行更改。
这些参数和变化指示计数器用于如图4流程图所述的确定何时改变缓存器大小的本申请人方法中,图4流程图首先设置参数并将变化指示计数器初始化为零(步骤402)。这个方法有时能在接收分组的应用程序提示下执行,但现在应认为该方法优选地当分组被接收时连续运行。
抖动缓存器10将入分组存储在各自的存储器位置中(步骤404),并检查缓存器是否已接收到采样间隔参数所指定的分组数(步骤406)。当接收到的分组数大于采样间隔参数时,到达过迟的分组数,即那些带有的序号比正被应用程序访问的分组(即已使用状态中的缓存器条目)的序号小的到达分组数,从一个丢失分组计数器中读出(步骤408)。“丢失分组”计数只包括延时的分组,而不包括丢失的分组。丢失分组计数器在相应于采样间隔参数的采样间隔起始处初始化为零后收到每个分组时进行更新。
用于采样间隔的丢失分组计数与接受的丢失参数进行比较(步骤410)。如果丢失分组计数大于接受的丢失参数,则变化指示计数器加1(步骤412)。如果丢失分组计数等于或小于接受的丢失参数,则变化指示计数器减1(步骤414)。在某些情况下,当丢失分组计数等于接受的丢失参数时,不减少变化指示计数器值是有益的。例如这些情况包括当应用程序要求更多的关于减少抖动缓存器大小的警告时。分组在抖动缓存器大小减少时被丢弃,因此更多的告警通常适于避免在网络传输时延中存在快速增/减变化时过多地丢弃分组。如果执行这一步,则用于图4所描述的方法中的接受的丢失参数必须不为零。
当变化指示计数器到达指示器顶端参数时(步骤416),若抖动缓存器10还没有处于其最大允许尺寸,此时便增加该抖动缓存器10的大小(步骤418)。当变化指示计数器到达指示器底端参数时(步骤420),若缓存器还没有处于其最小允许尺寸,此时便减小该缓存器的大小(步骤422)。目前应当认为与抖动缓存器中的最长时延对应的最大缓存器大小依赖于应用程序。此外,应当注意如果接受的丢失参数为零,那么抖动缓存器的最长时延与最长的期望时延Td相同。例如,对于双向话音或视频通信,一秒钟的时延都认为是不可接受的,而这种时延甚至更长的时延对于数据文件传输和单向视频通信却是可以接受的。目前应当认为最小的缓存器大小典型地为一个分组,即最短的时延Td典型地为分组传输间隔。应当想到最小的缓存器大小可能是零个分组,即分组可能一到达就被立即释放(Td≈0),但是这将要求通信网络在传输时延中如果有则具有极小偏差。
一旦确定了抖动缓存器10的大小将按图4所述的方法进行变化,则缓存器新的大小(步骤418或步骤422)就能由图5所述的方法确定,与图4所述方法一样该方法以抖动缓存器10将入分组存储于各自存储器位置开始(步骤502)。此时,不需要检查缓存器是否已收到采样间隔参数所指定的分组数,虽然如果要求的话能这么做。
在采样间隔期间,每个分组的到达时间与这个分组序列的第一个分组的到达时间进行比较。通过使分组传输间隔与连续分组序号之间差值的乘积加上第一个分组的到达时间,就能确定相对于第一个分组到达时间的某一特定分组的预期到达时间(步骤504)。这个序号为n的分组的预期到达时间Tan由以下表达式给出Tan=ti·(Nn-N1)+Ta1其中Ta1是第一个分组的到达时间,ti是分组传输间隔,Nn是当前到达的分组序号,以及N1是第一个分组的序号。本方法不使用序列中第一个分组的到达时间,而是使用当前采样间隔中第一个分组的到达时间。此外作为步骤504的一部分,测量的时延将按以下更为详细的说明进行累积。
当分组n到达时,分组n的到达时间偏差v是根据以下表达式确定的v=Tactualn-Tan其中Tactualn是分组实际到达时间。依照本发明的一个方面,这个偏差可存储在偏差缓存器20中(步骤506)。优选地,用于存储偏差的缓存器20从抖动缓存器10中分离出来,并具有与采样间隔长度相同的大小,因此偏差一个接一个地被存储起来直到缓存器20已满(步骤508)。如图6A所述,缓存器20的第一个条目代表这个采样间隔的第一个分组,而最后一个条目代表这个采样间隔的最后一个分组。缓存器20的偏差条目被进行分类和标准化(步骤510)使得图6B所述的最小值为零。
应当理解一般不需要使用偏差缓存器20,并且期望时延,即抖动缓存器的大小,能够在每个分组到达时根据每个分组各自的偏差v被确定。因此,步骤506、508、510的方法在某种程度上可被视为基于单个偏差操作,即到达分组之一的偏差。
基于缓存器20的内容或刚才所述的单个偏差,期望时延Td能被确定(步骤512)。图6B所述的实例显示了到达时间偏差为17个时间单位。这说明如果接受的丢失参数设为零(意味着不能丢失分组),那么在这个采样间隔期间抖动缓存器10中的期望时延Td为17个时间单位。如果接受的丢失参数设为1(意味着一个分组能被丢失),那么在这个采样间隔期间抖动缓存器中的期望时延Td为13个时间单位。期望时延Td一般由以下表达式给出Td=缓存器(采样间隔-接受的丢失)如果缓存器20使用基于1的索引机制,其中缓存器的第一个条目编为索引1,第二个条目编为索引2等等。
在采样间隔期间,一个累积的测量的时延能通过如上所提到的方法连同步骤504进行保存。测量的时延是当前到达的分组在缓存器中将被延迟的时间,如图7A所示。采样间隔内分组的测量时延能在分组到达时累积起来以导出被如下使用的平均测量的时延Md。
根据本申请人的发明,期望时延Td和测量的时延Md被用来确定任何必要的抖动缓存器尺寸变化的大小(步骤514)。图7B以图解的方式描述了在不使到达分组(Ta)被认为延迟的情况下如何通过(Td/2-Md)时间单位来改变当前抖动缓存器10的大小。
分组到达时间偏差如图7B中的横坐标所示。Ta是当应用程序请求新的数据分组时分组到达的时间偏差。当应用程序以规则时间间隔请求分组时,Ta中的偏差将不存在或可忽略不计。直线Dl和Du表示采样间隔内的分组在其到达时间中偏差范围的下限和上限,而Dl和Du间的短竖线表示单个分组的偏差。应当理解Du是关于按前面表达式中的期望时延Td所选择的分组的偏差。如果Dl-Du的范围包括采样间隔期间的所有偏差,那么Td就为接受的丢失值为零的那个值。Md为平均测量的时延,它可通过在这个采样间隔期间实际到达的分组,即按时到达(在Dl-Du范围内)和过迟到达的分组的累加测量时延并除以分组数来获得。
步骤514的目的是移动Dl以使其尽可能地接近Ta,即在不丢失分组的情况下最小化抖动缓存器中的测量的时延,按照下列表达式时延修改=Td/2-Md时延修改值表明了抖动缓存器的大小应被增加或减少的时间单位数。这个值被四舍五入为最接近分组传输间隔倍数的值,然后除以传输间隔以得到抖动缓存器中所需的或多或少的分组数。
如步骤516所示,抖动缓存器大小通过依照步骤514所确定的数值拒绝应用程序最近到达的分组而增加,并通过依照步骤514所确定的数值丢弃多个分组来减少。应当理解从步骤510到516都与步骤418和422相一致。这样,抖动缓存器的大小便适应在采样间隔期间存在的通信条件。
调节抖动缓存器大小的本申请人的方法结合DTX可方便地执行,如上所述的DTX意味着当发送器没有任何新数据要发送时将不发送任何分组。如果使用这种方法,则将有一段时期抖动缓存器不接收任何新数据,因此有可能在不丢弃分组的情况下减少缓存器的大小。
如果分组来自语音应用程序,如IP网络之上的话音业务,那么就提供了带有自适应抖动缓存器的DTX的另一个优点。自适应抖动缓存器有时能改变自身大小,并当缓存器大小减少时某些语音帧将被丢弃。这会干扰语音声码器,使语音失真。不过,在DTX期间丢弃或丢失分组,如静音,可避免干扰。如上所述,当用户不说话时,发送器只周期地发送包含背景噪声的SID帧。一般地,为语音应用程序使用带有自适应抖动缓存器的DTX需要在接收节点1的存储器的一个单独位置中而不是在抖动缓存器10中存储SID帧。
以下描述了带有自适应抖动缓存器的DTX在按照全球移动通信系统(GSM)标准的通信系统中的应用。这样的通信系统在本领域里是众所周知的,因此这里就不再详述了。应当理解,DTX可以在分组携带除了语音和噪声信息以外的信息时使用,应当理解这意味着更一般而言,任何用于通信系统中的第一和第二种类型信息都使用DTX。
在GSM系统的DTX中,象移动站这样的发送器产生两种SID帧或分组并将它们发送给无线基站(RBS),该无线基站可以是如上所述的接收节点1或者它可以简单地向接收节点1转发分组。一种SID分组类型包含全部的噪声信息,而另一种SID分组类型仅包含噪声的更新。一般地,一个全噪声SID分组在一个静音周期内被第一个发送,随后,在除以下要更详细说明的情况外发送噪声更新SID分组。
当RTP分组或移动站可以自己产生这种分组时,RBS可重新格式化从移动站接收的分组,但是无论如何,带有语音或SID数据的每个RTP分组的净荷含有两个标志的空间表明净荷是否带有语音或SID数据的SID标志,和识别分组是完全噪声SID分组还是噪声更新SID分组的TAF标志。因此,节点通过检测这些包含在分组中的标志或信息单元能够发现完全噪声SID分组与噪声更新SID分组间的区别。
RBS向IP网络发送从移动站接收的SID分组,通过两个标志来表明净荷是否为SID数据,如果是,该SID数据是更新还是完全噪声信息。因为完全噪声SID非常重要,又因为语音数据作为用户数据报(UDP)分组进行发送,因此可通过不止一次地发送分组,或者几次一起,或者例如当SID丢失正常发生时及当发送下一个噪声更新SID分组时发送,来减少丢失SID的风险。UDP是IP标准协议,它使位于第一个处理器上的应用程序能够使用IP传递分组来向位于第二个处理器上的应用程序发送数据报。
RBS或其他接收节点1检测净荷是否带有语音或SID数据,如果分组是SID分组,那么分组就存储在不同于以上所述的抖动缓存器10的接收节点存储器区域中。同样如上所述,在一个静音周期内的第一个SID分组通常十分重要,因为它带有背景噪声的全部信息。没有这个信息,接收节点中的声码器就不能重建噪声。
在目前的GSM系统中,象移动站这样的发送器需要至少约24个语音帧或分组的一个周期以便能准备一个带有全部噪声信息的SID分组。因此,在一个静音周期期间,如果发送器检测到一个短语音脉冲串(如少于24个语音分组的脉冲串),发送器将在短语音脉冲串后发送最后一个噪声更新SID而不是完全噪声SID。这有时在DTX标准中被称为“余音”情况,它是接收节点不应移至DTX模式的情况,即不应将正到达的(SID)分组引导给抖动缓存器之外的存储器位置(参见图8B)。因此,存在两种接收节点1应移至DTX模式时的情况,即应将正到达的(SID)分组引导给存储器位置而不是抖动缓存器。(参见图8A)在第一种情况,当第一个到达的SID分组在一个语音周期后带有全部的噪声信息时接收节点应移至DTX模式。在第二种情况,当噪声更新SID分组在一个语音周期后到达并且它的序号为(先前的)语音帧序号的下一个或随后的一个时,接收节点应移至DTX模式。这两种情况通过图8A进行了描述,它描述了抖动缓存器10和三种类型分组DTX(SID)分组D、语音分组S以及过迟的、丢失的或未接受到的分组X。从图8A应当理解到,因为除了“余音”情况以外语音分组没有在完全噪声SID和噪声更新SID之间出现,所以在7个语音分组序列后到达的分组D应为噪声更新SID分组。在已经移至DTX模式后,在最后一个语音分组之后到达的SID分组按预定的过程释放给应用程序。在GSM系统中,应用程序将仅发送一个特定的SID分组给如移动电话这样的接收节点一次。当处于DTX模式时,接收节点在带有语音信息的分组到达时移出DTX模式。
除了图8A所述的两种情况以外,分组不应释放给应用程序,即当节点正在接收噪声更新SID以及最后一个分组丢失时。这样导致的情况与IP网络中语音分组丢失的情况相似,如图8B所示,从中可以看出在分组D之前到达的分组X可能已经是一个完全噪声SID,这使分组D成为噪声更新SID。如果是这种情况,即当完全噪声SID已经丢失时,由于接收的信息将难以恢复,所以不应将接收节点移至DTX模式。
不管接收节点是否移至DTX模式,抖动缓存器都不应对在接收SID分组期间丢失的分组计数。换句话说,目前应当认为如图4、5所述的方法在SID分组正在到达时不应执行,除非到抖动缓存器大小能够基于先前的、在DTX期间到达的非SID分组而改变的程度。
假设分组正在到达RBS以便向移动站传输,则在静音周期开始的第一个SID分组通常在RBS和移动站间建立的业务信道中被发送给移动站。在静音周期期间所有其他的SID帧通常在控制信道,特别是慢关联控制信道(SACCH)中被发送。如果第一个SID帧是完全噪声SID帧,则它仅向移动站发送一次,但是如果最后一个被发送的SID帧是完全噪声SID帧,而噪声更新SID帧还未到达且又到了在SACCH中向移动站发送新的SID帧的时间,那么就可能存在问题。因此,此时,带有表明在噪声中没有变化的信息的噪声更新SID帧应根据本申请人发明的一个方面进行发送。这个SID可称为Δ(delta)0SID分组或帧,而含有Δ(delta)0 SID的帧在需要时可动态(实时地)被硬编码或生成。
本领域普通的技术人员应当理解,在不脱离本发明必要特征的情况下,能采用其他特定形式进行实施。因此如上所述的实施方案在各方面都应被认为是起说明作用的而不是限制性的。本申请人发明的范围由下面的权利要求确定,并且该范围内所有的改变形式都被规定为包含在其中。
权利要求
1.一种分组通信系统中的接收节点包括具有可变尺寸的抖动缓存器,它存储到达接收节点的分组,并向在接收节点中执行的应用程序释放已存储的分组,其中每个分组有各自的序号,存储的分组被周期释放,并且抖动缓存器中的每个条目具有多种状态中的一种状态;以及基于由被存储分组到达时间导出的分组传输时延的估计偏差来改变抖动缓存器大小的处理器。
2.权利要求1的接收节点,进一步包含一个存有被存储分组到达时间偏差的偏差缓存器,其中第一个到达的分组被释放的时间是基于该第一个分组到达时间和初始延迟时间的,并且分组传输时延的估计偏差由存储的偏差导出。
3.权利要求1的接收节点,其中抖动缓存器条目的状态为空闲、忙和已使用,空闲状态表明没有到达的分组被存储在抖动缓存器中的那个位置,忙状态表明一个到达的分组存储在抖动缓存器中的那个位置,而已使用状态表明存储在那个位置的到达分组正被释放给应用程序。
4.权利要求3的接收节点,其中到达的分组存储在标记为忙状态的各自的位置中;分组被释放以响应应用程序的查询;以及当应用程序为下一个分组查询抖动缓存器时,分组各自的位置变为已使用状态而先前到达的分组的各自位置变为空闲状态。
5.权利要求1的接收节点,其中处理器在接收节点处于不连续传输模式时减少抖动缓存器的大小,从而避免丢弃带有语音信息的到达分组。
6.权利要求5的接收节点,进一步包含一个存储到达接收节点的被选分组的DTX缓存器;其中到达分组的选择基于以下至少一个条件到达的分组是否在一个语音周期后第一个到达并带有完全噪声信息,以及该到达的分组是否含有噪声更新信息、在一个语音周期后到达以及带有相应的、紧接先前到达的带有语音信息的分组序号之后的序号;以及处理器在分组正被选择时减少抖动缓存器的大小,从而避免丢弃带有语音信息的分组。
7.一种在分组通信系统中将到达接收节点的分组存储在缓存器中并向在接收节点中执行的应用程序释放该到达分组的方法,包含的步骤有确定向应用程序释放第一个到达分组的时间Tr,其中时间Tr是第一个分组的到达时间Ta加上一个初始时延;当等待从缓存器释放第一个到达的分组时,将当前时间与时间Tr进行比较并在时间Tr过去时释放该第一个到达的分组;以及在第一个到达的分组释放后,按第一个时间间隔周期地释放存储的分组。
8.权利要求7的方法,其中执行比较以响应来自应用程序的以第二个时间间隔周期发生的查询,释放在第一个到达分组之后到达的存储分组以响应来自应用程序的以第一个时间间隔周期发生的查询,而第一个时间间隔至少与第二个时间间隔一样长。
9.权利要求7的方法,其中第一个时间间隔基本上等于到达分组间的传输间隔。
10.一种在分组通信系统中调整存储到达接收节点的分组的缓存器大小的方法,包括的步骤有对已到达的多个分组计数,这些分组的序号小于存储在缓存器中最早到达分组的序号;比较该序号与接受的丢失参数;如果该序号高于接受的丢失参数,就增大变化指示计数器,而如果该序号等于或低于接受的丢失参数,就减少变化指示计数器;当变化指示计数器到达指示器顶端参数时,如果缓存器还没有处于其最大允许尺寸就增加缓存器的大小;以及当变化指示计数器到达指示器底端参数时,如果缓存器还没有处于其最小允许尺寸就减少缓存器的大小。
11.权利要求10的方法,其中该序号在缓存器已经存储了多个由采样间隔参数指定的分组时被比较。
12.权利要求10的方法,进一步包括通过执行以下步骤来确定缓存器大小的步骤确定与分组序列的第一个分组到达时间有关的期望分组到达时间;确定关于分组的到达时间偏差;确定分组在缓存器中将被延迟的时间的测量时延;基于到达时间偏差和接受的丢失参数确定期望时延;以及基于期望时延和测量的时延确定缓存器大小。
13.权利要求12的方法,其中到达时间偏差存储在偏差缓存器中,存储的到达时间偏差被进行分类和标准化,对具有被存储在偏差缓存器中的到达时间偏差的分组累积测量的时延,基于已分类的、标准化的到达时间偏差和接受的丢失参数来确定期望时延,以及基于期望时延和由累积的测量时延导出的平均测量时延来确定缓存器的大小。
14.权利要求10的方法,其中抖动缓存器的大小在接收节点处于不连续传输模式时减少,从而避免丢弃带有语音信息的到达分组。
15.权利要求14的方法,进一步包括在DTX缓存器中存储到达接收节点的被选分组的步骤;其中到达分组的选择基于以下至少一个条件到达的分组是否是在一个语音周期后第一个到达并带有完全噪声信息的,以及该到达的分组是否含有噪声更新信息、在一个语音周期后到达以及带有相应的、紧接先前到达的带有语音信息的分组序号之后的序号;以及抖动缓存器的大小在分组正被选择时减少,从而避免丢弃带有语音信息的分组。
全文摘要
在分组通信系统中,抖动缓存器中所需的时延通过基于由所存储分组到达时间所导出的分组传输时延的估计偏差而改变抖动缓存器大小的方法和装置来确定,使得在没有过多时延的情况下能够将平滑数据提供给应用程序。偏差缓存器存储被存储分组的到达时间的偏差,而分组传输时延的估计偏差由该存储的偏差导出。抖动缓存器的大小在不连续分组传输期间能优先地改变。
文档编号H04L12/56GK1352846SQ99816428
公开日2002年6月5日 申请日期1999年12月28日 优先权日1999年1月14日
发明者S·伦德奎斯特, M·奥尔松, J·尼格伦 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1