延时控制的方法及其装置转让专利

申请号 : CN200710007529.6

文献号 : CN100583724C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 余凡邱超

申请人 : 华为技术有限公司

摘要 :

本发明提供了一种延时控制的方法及其装置,所述方法包括根据所述接收缓存接收的数据包的时戳信息计算网络抖动统计值;根据播放时隙表的时隙长度以及数据包的时戳信息,将所述网络抖动统计值换算得到播放延时值,所述播放时隙表的时隙长度小于所述数据包的打包时长;根据播放延时值调整播放时隙表中各通道数据包的对应时隙,所述时隙用于指示各通道数据包在所述接收缓存中做出队处理的时间;根据调整后的播放时隙表控制各通道数据包从接收缓存中的出队时间。通过本发明提供的技术方案用户可以配置以小于打包时长为单位的调整步长,对数据包在接收缓存中的延时进行控制,能更精确有效地控制数据包的延时,为数据的传输提供更好的实时性。

权利要求 :

1.一种延时控制的方法,用于实现对接收缓存中各通道数据包延时的控 制,其特征在于,所述方法包括:根据所述接收缓存接收的数据包的时戳信息计算网络抖动统计值;

根据播放时隙表的时隙长度以及数据包的时戳信息,将网络抖动统计值 向上取整到最近的以播放时隙表中的时隙长度为单位的播放延时值,所述播 放时隙表的时隙长度小于所述数据包的打包时长;

根据播放延时值调整播放时隙表中各通道数据包的对应时隙,所述数据 包的对应时隙用于指示各通道数据包在所述接收缓存中做出队处理的时间;

根据调整后的播放时隙表控制各通道数据包从接收缓存中的出队时间。

2.根据权利要求1所述的延时控制的方法,其特征在于,在所述根据播 放延时值调整播放时隙表中各通道数据包的对应时隙之前还包括:确定当前 播放延时值小于门限值。

3.根据权利要求1所述的延时控制的方法,其特征在于,在所述根据播 放延时值调整播放时隙表中各通道数据包的对应时隙之前还包括:确定当前 播放延时值小于门限值且播放延时的变化小于打包时长。

4.根据权利要求2或3所述的延时控制的方法,其特征在于,所述门限 值由上层应用单元预先设置。

5.根据权利要求1所述的延时控制的方法,其特征在于,所述接收缓存 和播放时隙表均为表格式或均为链表式结构,或者接收缓存和播放时隙表二 者其中之一为表格式结构,另一为链表式结构。

6.根据权利要求1所述的延时控制的方法,其特征在于,所述根据播放 延时值调整播放时隙表中各通道数据包的对应时隙具体为:若所述数据包为接收缓存中各通道所接收的第一个数据包,则根据所述 数据包的播放延时值确定所述播放时隙表中各通道数据包的对应时隙;

若所述数据包为接收缓存中各通道所接收的除第一个数据包以外的其他 数据包,则按如下步骤对各通道数据包的播放时隙进行调整:如果当前网络抖动值相对于前一时刻的播放延时值增大,则根据增大幅 度将所述数据包的播放时隙推后;如果当前网络抖动值相对于前一时刻的播 放延时值减少,则根据减少幅度将所述数据包的播放时隙提前。

7.根据权利要求1或6所述的延时控制的方法,其特征在于,所述播放 时隙表中还配置有单个时隙允许进行出队操作的通道总数上限,所述方法还 包括:在所述根据播放延时值调整播放时隙表中数据包的对应时隙之后,如果 数据包的对应时隙调整到对应的通道总数已达到上限的时隙,则继续搜索满 足延时要求的新时隙或者放弃本次延时调整。

8.一种延时控制的装置,用于实现对接收缓存中各通道数据包延时的控 制,其特征在于,所述延时控制的装置包括:播放时隙表,包括至少一个小于打包时长的时隙,所述数据包的时隙用 于指示各通道数据包在所述接收缓存中做出队处理的时间;

计算单元,用于根据所述接收缓存接收的数据包的时戳信息计算网络抖 动统计值,并将网络抖动统计值向上取整到最近的以播放时隙表中的时隙长 度为单位的播放延时值;

调整执行单元,根据所述计算单元换算得到的播放延时值更新所述播放 时隙表,并根据所述播放时隙表进行延时控制。

9.根据权利要求8所述的延时控制的装置,其特征在于,所述计算单元 包括:网络抖动计算单元,用于根据接收的数据包的时戳信息计算网络抖动值;

网络抖动统计单元,用于根据所述网络抖动值计算网络抖动统计值;

延时计算单元,用于将网络抖动统计值向上取整到最近的以播放时隙 表中的时隙长度为单位的播放延时值。

10.根据权利要求9所述的延时控制的装置,其特征在于,还包括判断单 元,用于确定所述延时计算单元计算得到的当前播放延时值小于门限值时, 控制所述调整执行单元根据播放时隙表的时隙进行延时控制。

说明书 :

技术领域

本发明涉及通信技术领域,特别涉及一种延时控制的技术。

背景技术

随着互联网(Internet)的普遍使用及其自身技术的不断发展,人们经常在网 络上进行各种资讯的交流。然而,网络中存在延时、抖动(Jitter)、丢包、乱序 等问题会对网络上的资讯交流造成不可避免的影响,其中网络中的抖动是较 为常见的问题之一。网络中,数据被封装成不同的数据包在网络中传输,由 于在分组交换网中每个数据包走的路径可能不同,那么网络延时也就不同, 从而造成数据包到达时间的改变,这种延时变化就叫抖动。在网络设备接收 端采用增加延时消除网络侧的抖动,被称为去抖缓存(JB,Jitter Buffer),延时 的大小即JB的深度决定了去除网络抖动的能力。
目前JB分为静态JB和动态JB,其中,静态JB为引入固定延时来消除 网络抖动,但这个固定延时可能与实际需要的延时深度不同,影响了业务的 延时或质量。动态JB可以根据网络的情况自动调整延时,使得在一定的丢包 率情况下保证较小的延时。因此目前动态JB调整策略是保证网络传输质量的 关键技术。
在现有技术中,为了解决网络抖动的问题,实时传输协议(RTP)提出了JB 概念来消除网络的抖动。在RTP协议中对Jitter的定义和计算如下:
Si表示第i个包的源端时戳,Ri表示第i个包的本地时戳,Sj表示第j 个包的源端时戳,Rj表示第j个包的本地时戳,则i、j两个RTP包网络传输 时间之差D可以表示为:
D(i,j)=(Rj-Ri)-(Sj-Si)=(Rj-Sj)-(Ri-Si)(1)
网络的Jitter值每到一个数据包要更新统计,将统计值和新到数据包的|D| 以不同权重相加得到新的Jitter统计值。
J(i)=(15/16)×J(i-1)+(1/16)×|D(i-1,i)|(2)
JB深度即播放延时就是根据这个Jitter统计值换算得到。一般只要JB深 度也就是播放延时大于网络的实际抖动就可以消除网络抖动。
现有技术中,携带时戳信息的网络报文的时戳精度一般为1/8ms,因此网 络jitter统计值的单位通常也是1/8ms。一个网络报文的打包间隔与所承载的 具体业务相关,一般为5ms的整数倍,例如以10ms为打包间隔的VOIP业务 报文。
接收端通常将接收的报文根据序号或时戳的先后顺序串成一个链表或写 到一个存储矩阵中,其延时控制的精度是以打包间隔为单位的,其延时调整 操作为删除或者插入一个数据包。通常JB深度就是将jitter统计值取整到大 于它的最接近的一个10ms。比如jitter统计值是357,统计值单位为1/8ms, 即44.625ms,则当前JB深度取整到50ms。
例如打包间隔10ms,JB深度50ms,如果JB深度变为60ms,则JB深度 需要上调,对于链表式JB,即在JB链表中插入一个补偿的10ms数据包,如 果JB深度变为40ms时,则JB深度需要下调,即在JB链表中删除一个10ms 数据包。
从上述现有技术延时控制的方法可以看出,延时控制的精度是以打包间 隔为单位的,所以供用户配置的JB深度只有打包时长的整数倍,当网络延时 变化小于打包时长,如果按照打包时长的整数倍调整数据包在接收缓存中的 延时,会引入一些不必要的延时,影响到上层业务的实时性。

发明内容

有鉴于此,本发明实施例提出了一种能够以小于打包时长的调整步长进 行延时控制的方法及其装置。
为解决上述技术问题,本发明实施例的目的是通过以下技术方案实现的:
一种延时控制的方法,用于实现对接收缓存中各通道数据包延时的控制, 所述方法包括:
根据所述接收缓存接收的数据包的时戳信息计算网络抖动统计值;
根据播放时隙表的时隙长度以及数据包的时戳信息,将网络抖动统计值 向上取整到最近的以播放时隙表中的时隙长度为单位的播放延时值,所述播 放时隙表的时隙长度小于所述数据包的打包时长;
根据播放延时值调整播放时隙表中各通道数据包的对应时隙,所述数据 包的对应时隙用于指示各通道数据包在所述接收缓存中做出队处理的时间;
根据调整后的播放时隙表控制各通道数据包从接收缓存中的出队时间。
一种延时控制的装置,用于实现对接收缓存中各通道数据包延时的控制, 所述延时控制的装置包括:
播放时隙表,包括至少一个小于打包时长的时隙,所述数据包的时隙用 于指示各通道数据包在所述接收缓存中做出队处理的时间;
计算单元,用于根据所述接收缓存接收的数据包的时戳信息计算网络抖 动统计值,并将网络抖动统计值向上取整到最近的以播放时隙表中的时隙长 度为单位的播放延时值;
调整执行单元,根据所述计算单元换算得到的播放延时值更新所述播放 时隙表,并根据所述播放时隙表进行延时控制。
通过本发明实施例提供的延时控制的方法及其系统,用户可以采用小步 长进行延时调整,即配置以小于打包时长的时隙为单位对数据包在接收缓存 中延时进行控制,因此能够能更精确有效地控制数据包在接收缓存中的延时, 可以满足高实时性和高精确延时的业务传输。

附图说明

图1为本发明延时控制装置较佳实施例的结构图;
图2为本发明延时控制方法较佳实施例的流程图;
图3A为单向链表式结构示意图;
图3B为双向链表式结构示意图。

具体实施方式

本发明实施例提供一种延时控制的方法及其装置,通过计算网络抖动统 计值,将所述网络抖动统计值换算为数据包的播放延时值,然后根据所述播 放延时值,调整播放时隙表中数据包的对应时隙,再根据调整后的播放时隙 表实现数据包在接收缓存中的延时控制。
为使本发明的技术方案更加清楚明白,以下参照附图并列举实施例,对 本发明进一步详细说明。
请参照图1,为本发明延时控制的装置较佳实施例的结构图。所述延时控 制装置1包括接口单元11、播放时隙表12、调整执行单元13、计算单元10 以及判断单元17。所述计算单元10包括网络抖动计算单元14、网络抖动统 计单元15、延时计算单元16。
所述接口单元11用于接收和发送延时控制装置1与接收缓存2之间传递 的信息,例如从接收缓存2获取延时控制所需要的信息:各通道数据包到达 接收缓存的时间、从接收缓存中出队的时间等、接收缓存2的空间结构信息 如表格式、链表式或者两者的组合等。
所述播放时隙表12包括若干小于打包时长的时隙,所述数据包的时隙用 于指示各通道数据包在所述接收缓存中做出队处理的时间。
所述网络抖动计算单元14用于根据从接口单元11获取的新数据包的时 间信息计算新的网络抖动值。
所述网络抖动统计单元15根据所述网络抖动值计算网络抖动统计值。
所述延时计算单元16根据网络抖动统计值以一设定的时间间隔计算播放 延时值,当前时刻计算所得的播放延时值称为理想播放延时值,当前时刻正 在使用的播放延时值称为当前播放延时值,计算播放延时值的方式为将网络 抖动统计值向上取整到最近的以时隙为单位的延时值。比如统计值为36.2ms, 如果时隙单位是1ms,则取整得到37ms为当前的播放延时,如果时隙单位是 2ms,则取整到38ms,即16个时隙长度为当前的播放延时,并将每次计算所 得的播放延时值发送至判断单元17。
所述判断单元17根据从延时计算单元16得到的当前播放延时值与上层 应用单元3预先设置的绝对门限值的大小关系以及当前播放延时与理想播放 延时之间的差值与打包时长的大小关系,判断采用大步长即打包时长还是采 用小步长即根据播放时隙表进行延时调整,以及进行调整的方向。
调整执行单元13根据所述判断单元17的指示采用大步长或者小步长进 行调整,如果采用小步长调整,则根据所述播放时隙表12进行延时调整,如 果采用大步长调整,则采用大步长进行延时调整,例如通过接口单元11在缓 存中删除或者插入数据包。
请参照图2,为本发明在接收缓存中实现高精度延时控制的方法较佳实施 例的流程图,所述延时控制方法具体包括:
步骤201:根据所述接收缓存接收的数据包的时戳信息计算网络抖动统计 值Jitter,同时更新网络抖动统计值,所述计算网络抖动统计值方法与现有技 术相同,这里不做赘述。
步骤202:判断是否到了延时调整时刻,如果是则进行步骤203,如果否, 则进行步骤211;
所述延时调整每隔一段时间进行一次,间隔时间可以根据需要以及网络 状况进行设置。所述设置延时调整步骤可以根据具体情况来采用,可以省略 此步骤。
步骤203:根据播放时隙表的时隙长度以及数据包的时戳信息,将所述网 络抖动统计值换算得到数据包的播放延时值,所述播放时隙表的时隙长度小 于所述数据包的打包时长,即将Jitter统计值向上取整到最近的以时隙为单位 的值即为播放延时值,其中对某一时刻而言,当前时刻计算所得的播放延时 值称为理想播放延时值,当前时刻正在使用的播放延时值称为当前播放延时 值;
所述播放时隙表包括至少一个小于打包时长的时隙,用于指示每一时隙 有哪些通道需要做数据包出队处理。
接收缓存的空间结构有链表式、表格式等。表1为表格式接收缓存的空 间表,假设接收缓存用于接收N个通道的数据业务,且每个通道可以容纳M 个数据包,因此需要一个N×M大小的存储空间表。
表1表格式接收缓存的空间表

播放时隙表同样可以采用表格式或链表式结构进行存储。例如采用表格 式结构,假设数据包的打包时间间隔为Xms,延时调整的精度即延时调整步 长为(X/Y)ms,其中Y为整数,用户可以进行配置,那么需要建立的播放时隙 表大小为Y×N,如表2所示:
表2表格式接收缓存对应的播放时隙表

链表式结构分为双向和单向链表,单向链表为每个单元包含一个指针指 向它后一个单元。图3A所示为单向链表式结构图,单向链表指每个单元均包 含一个指针指向它后一个存储数据的单元,有无头部和尾部即头指针和空指 针,由具体情况决定。图3B所示为双向链表式结构图,双向链表指每个单元 均包含两个指针分别指向它前一个存储数据的单元和后一个存储数据的单 元,有无头部和尾部即头指针和空指针,也由具体情况决定。接收缓存和播 放时隙表可以用这种链表式结构进行存储数据包。在链表式结构的播放时隙 表中,属于同个时隙的通道号串在一个链表中。
通常将数据包写入接收缓存称为入队,从接收缓存将数据包输出交付上 层称为出队,假设数据包的打包时间间隔X为10ms,Y取整数10,则调整步 长为1ms,表2中每行代表一个1ms时隙,总共有10个时隙,每个单元格均 有一个标志位,用于标识某个时隙有哪些通道需要做出队处理,即某个通道 是在哪个时隙出队。
步骤204:判断当前播放延时值是否大于绝对门限值,如果是,则进行步 骤205,如果否,则进行步骤206;
所述绝对门限值可以由上层应用单元预先设定,如果当前延时值超过所 述绝对门限值,则说明当前网络延时较大,这时候对深度的微调效果不明显, 可以采用大步长进行延时调整;如果当前延时值未超过所述绝对门限值,说 明当前网络延时较小,可以进一步改善业务的实时性,可以采用小步长调整 步长进行延时调整。
步骤205:采用大步长即打包时长为调整步长进行延时控制,通过在接收 缓存中增加或删除一个数据包来调整接收缓存的延时。
步骤206:判断理想播放延时值与当前播放延时值之间的差值是否超过打 包时长,如果是,则进行步骤205,如果否,则进行步骤207;
当理想播放延时值相对当前播放延时值变化较大已经超过打包时长时, 采用大步长调整可以更快的将延时调整到位,但是采用小步长调整也是同样 可以的,因此这个步骤可以由用户选择是否采用。
步骤207:判断新时隙上的通道总数是否已达到预设上限,如果是,则进 行步骤208,如果否,则进行步骤209;
在播放时隙表中配置每个时隙的出队通道总数的上限,用于根据上层的 处理能力来限制一个时隙向上交付的数据包总数。设备初始化时,各时隙通 道密度设置0,在工作状态下可以配置一个时隙的通道总数上限,即如果某时 隙时出队通总道数已经达到上限,则不允许新的通道将出队时间修改至本时 隙。
步骤208:继续搜索通道总数未达到预设上限且满足延时要求的新时隙;
例如,前一时刻JB深度是13ms,新统计的JB深度是11ms,则可以将该 通道的原时隙标志3清除,在时隙2的格子中置有效。如果此时时隙2上的 出队通道总数已达上限,则JB深度可以选择继续前推到时隙1,或保持时隙 3不变。
步骤209:调整播放时隙表;
若所述数据包为接收缓存中各通道所接收的第一个数据包,则根据所述 数据包的播放延时值确定所述播放时隙表中各通道数据包的对应时隙:
第一个数据包播放时刻(ms)=第一个数据包接收时戳(ms)+初始延时(ms);
某通道时隙号=第一个数据包播放时刻%打包时长X。
其中,“A%B”表示A对B取模,即A除以B后的余数,例如,打包时 长为10ms,第一个数据包接收时戳为10ms,初始延时为3ms,则第一个数据 包播放时刻为13ms,取整求余得到某通道时隙号为3,此时将时隙号为3的 某通道单元格中的标志置位有效。其他通道业务采用同样的做法。
若所述数据包为接收缓存中各通道所接收的除第一个数据包以外的其他 数据包,则按如下步骤对各通道数据包的播放时隙进行调整:
如果当前网络抖动值相对于前一时刻的播放延时值增大,则根据增大幅 度将所述数据包的播放时隙推后;如果当前网络抖动值相对于前一时刻的播 放延时值减少,则根据减少幅度将所述数据包的播放时隙提前。
相对于表格式播放时隙表而言,当所述当前Jitter值超过前一时刻的播放 延时值时,说明需要增加数据包在接收缓存中的延时,因此需根据增大幅度 将数据包的播放时隙推后,例如将该通道的原始播放时隙对应的标志改为无 效,而将后面适合的播放时隙所对应的标志设为有效;当所述当前Jitter值小 于前一时刻的播放延时值时,说明需要减少数据包在接收缓存中的延时,因 此需根据减少幅度将数据包的播放时隙提前,例如将通道在原始播放时隙对 应的标志改为无效,而将前面适合的播放时隙所对应的标志设为有效。
相对于链表式播放时隙表而言,当所述当前Jitter值超过前一时刻的播放 延时值时,说明需要增加数据包在接收缓存中的延时,从播放时隙表中当前 播放时隙对应的通道链表查找该通道号,删除该通道号,并将该通道号插入 下一个播放时隙对应的通道链表中,可以是通道链表尾部或者通道序号对应 的其他位置;当所述当前Jitter值小于前一时刻的播放延时值时,说明需要减 少数据包在接收缓存中的延时,从播放时隙表中当前播放时隙对应的通道链 表查找该通道号,删除该通道号,并将该通道号插入上一个播放时隙对应的 通道链表中。
由此可知,链表结构一般是动态分配内存空间,其优势在于节省空间且 分配灵活;而表格式结构则相当于静态分配内存,可能造成空间的浪费,但 不需要动态查找通道号的位置,速度上有优势。
步骤210:更新当前播放延时为理想播放延时;
步骤211:按照当前的播放时隙表对各通道的数据包在接收缓存的延时进 行控制,即控制数据包从接收缓存中的出队时间。
在播放时隙表中每个时隙检查该时隙号对应的播放时隙表格行,查看有 哪些通道的数据包需要出队处理,并完成出队操作,在下一时隙检查下一行, 如此从1~Y行进行反复检查并作出数据包出队处理。当下一次轮到某时隙 时,正好为一个数据包的打包时长,也是在此时隙出队的通道中下一个数据 包出队的时刻。
通过本发明实施例提供的延时控制的方法及其系统,用户可以采用小步 长进行延时调整,即配置以小于打包时长的时隙为单位对数据包在接收缓存 中延时进行控制,因此能够能更精确有效地控制数据包在接收缓存中的延时, 可以满足高实时性和高精确延时的业务传输。
以上对本发明所提供的一种延时控制的方法及系统进行了详细介绍,本 文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的 说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一 般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变 之处,综上所述,本说明书内容不应理解为对本发明的限制。