专利名称:基于自适应抖动缓冲的调度策略的调整方法
技术领域:
本发明涉及IP网络,尤其是基于IP网络的多媒体实时传输系统中基 于自适应抖动缓冲的调度策略的调整方法。
背景技术:
在Internet中实时传输多媒体数据,例如语音或视频流是比较困难 的,IP网络不是设计为实时应用的,所以网络延时、丢包、延时抖动等 现象都对语音质量有严重影响。这些参数与发送者和接收者的位置有关, 典型分组丢失率是0-20%,单向延时一般5-500ms。在正常的语音通话中, 一些相关的研究表明当分组丢失率大于5%,单向延时超过400ms,通话就 变得比较困难。因此在VoIP( Voice over IP)系统中, 一般采用抖动缓 冲器、或者是自适应抖动缓冲器等技术,以获得实时连续的语音流,它 是保证语音质量的关键问题,也是技术难点。有关自适应动态buffer (adaptive jitter buffer)的研究中,主 要涉及网络延迟(delay)或延迟抖动(jitter,变化)的估计,以及根据 估计的网络时延给出下一个帧(数据包)的调度时刻scheduling time (播放时间)。目前有关网络延时的估计方法主要可以分为两大类,一 类是基于统计的方法,即根据接收分组的延时平均值、方差、最小值等 统计参数来估计网络延时,例如Exponentia1-Average (Exp-Avg)、 Fast-Exponential-Average (F-Exp-Avg) 、 Min-Delay (Min-D)等;另 一类是基于MOS值的方法,主要思想是直接将两个参数延时和分组丢失 率映射到MOS (Mean Opinion Score)函数中,在力求MOS值最大的条件 下估计延时,例如Enhanced-MOS-based (E-MOS) 、 Maximise-MOS (M-MOS) 等。这些方法在不同的网络环境下各有优劣。根据估计的网络延时能够给出下一个数据帧的播放时刻(scheduling time)。
但是值得注意的是有关自适应动态buffer的调度策略仅考虑网络延 时、分组丢失率等参数,没有考虑实际运行的平台的缓冲以及CPU的负载。 也就是说在现有的这些方案中均假设,调度者能理想的根据自适应动态 buffer给出的scheduling time播放指定帧或者执行指定动作。但是在实 际的实时多任务环境下,尤其是当系统任务比较繁重时,这种假设几乎 是不成立的。造成的问题是,由于调度者不能按照自适应动态buffer给 出的scheduling time来进行调度,而导致在接收端语音包延迟越来越 大,异常丢包,最终导致自适应动态buffer完全失去作用,无法进行实时 通话。发明内容本发明的目的是提出一种基于自适应抖动缓冲的调度策略的调整方 法及设备。按照本发明的一方面, 一种基于自适应抖动缓冲的调度策略的调整 方法,在接收端包括步骤a) 缓冲接收到的数据包,并根据接收的数据包估计网络延时或延时 抖动;b) 根据当前估计的网络延时或延时抖动调整下一个数据包的调度时刻t;;c) 如果当前时刻超过所述下一个数据包的调度时刻,并且他们的间 隔大于给定的调整阀值,同时距上次调整的时刻大于两次调整给 定的时间阀值,则压縮动态缓冲的大小;d) 更新下一个数据包的调度时刻;e) 若当前时刻大于下一包的调度时刻,则从缓冲中取出一个数据包 并播放。按照本发明的另一方面, 一种实现权利要求l方法的设备,在接收端包 括a) 网络协议模块,实现TCP/IP协议,RTP/RTCP协议等网络协议;b) Audio驱动模块,用于处理设备部分的语音的输入/输出;c) 协议处理模块,用于处理H.323以及相关协议、MGCP协议以及SIP 协议等;d) 媒体处理模块,负责设备端与网络端的语音数据的转换及控制, 以及语音质量QOS的保证等功能,所述媒体处理模块包括控制模块,负责网络端以及设备端的语音数据流的输入输出,和 各子模块间的语音数据流的传输;语音编解码模块,处理语音的编码;UAJB模块,自适应抖动缓冲的实现模块;PLC模块,实现分组损失隐藏PLC;信号音生成模块,用于生成VoIP所需的各种信号音;语音质量控制模块,包含回波抵消、回波抑制,静音检测抑制, 舒适噪音生成,自动增益等多种语音质量处理功能。本发明提出的方法能很好的协调自适应动态buffer的功能,能减少 自适应动态buffer异常时的连续丢包;在实时多任务环境下,甚至是任 务比较繁重的场合仍能实现实时双向语音通话;实现简单,在机顶盒项 目中,采用上述方法后取得了较好效果。
图l是本发明基于自适应抖动缓冲器的调度策略的调整方法;图2是采用OLA方法压縮语音流的过程;图3是本发明采用UAJB的VOIP设备的结构框图。
具体实施方式
基于自适应抖动缓冲器的调度策略,我们提出一种改进方法。 一些 变量的含义如下U 调度者的当前时刻;r : 下一个帧的调度(播放)时刻;S—TRHRES:给定的调整阀值;ADJUST—DELAY:两次调整之间的时间间隔; 上次调整地时刻;一种基于自适应抖动缓冲器的调度策略的调整方法UAJB(Updated Adaptive Jitter Buffer),参照图l,在接收端主要包括如下步骤在所述图的101步缓冲接收到的数据包,并根据他们估计网络延时 或者是延时抖动;例如可以采用e-mos方法来进行估计;在所述图的102步据当前估计的网络延时或者是延时抖动调整下一个数据包的调度(播放)吋刻t;;在所述图的103步如果当前时刻超过所述下一个数据包的调度(播放)时刻j;,并且他们的间隔大于给定的调整阀值,同时距上次调整的时刻大于两次调整给定的时间阀值,也即同时满足如下公式(1)和公式(2):— > S—TRHRES (1)(L— 一) 〉 ADJUST—DELAY (2)在所述图的104步压縮动态buffer的大小,也就是说在时间轴上收 縮一个数据包长对应的时间间隔;例如可以直接读出一个数据包并丢掉, 或者利用OLA(overlap ADD)技术将读出数据包与下一个数据包进行叠 加;在所述图的105步将下一个帧的调度时刻(scheduling time)更新为j; = z;+上述丢掉数据包长对应的时间间隔;在所述图的106步若当前时刻大于数据包的调度(播放)时刻,即r, 〉 t;,则从缓冲中取出一个数据包并播放。在所述102步据当前估计的网络延时或者是延时抖动调整下一个数据包的调度(播放)时刻r。, 一种可选方式如下z;=该数据包的发送时刻+当前估计的抖动延时+包长对应的时 间间隔;在所述图的104步中采用OLA(overlap ADD)平滑处理的方法压縮语 音,是为了使压縮语音段的前后语音流能够平滑过度,使听者感觉不到
数据包的压縮。进行平滑即OLA (加权迭加)的长度为一个数据包长。 参照图2,其中A和B为两个相邻的语音段,要由A过度到B,所以对A 进行下斜坡(down-sl叩ing)乘,对B进行上斜坡乘(up-sloping),假设 t为权值增大和减小的幅度,具体的过程主要包括如下步骤1) 对A进行下斜坡乘如公式(3),即A中的每个样值点A(i)与一个 权值(scale)相乘,并且这个权值随着样值点数的增加逐渐减小;AA (i) =A (i) * (1- (i-l) *t) ""|A| (3)t为按样值减小的幅度,可取1/IAI;2) 对B进行上斜坡乘(up-sloping),如公式(4),即B中的每个 样值点B(i)与一个权值(scale)相乘,并且这个权值随着样值点 数的增加逐渐增大;BB (i) =B (i) * (i*t) (4)t为增大幅度,可取l/问;由于IAI和问是相同的,因此t与l)中 的湘同;3) 将1)禾卩2)的结果的对应样值相加即得C,丢掉A且用C代替B 即得压縮后的语音段。本发明所述方法可以理解为是对自适应抖动缓冲器给出的调度结果 的一种补充。在我们的支持VoIP的机顶盒(STB, Set T叩Box)项目中,为了能 保证语音双向通话时的最大延时小于200ms,我们取SJTRHRES = 200ms, ADJUST—DELAY= 40ms时,上述方法取得了很好效果。参照图3,采用了本发明提出的UAJB方法的VoIP (voice over IP) 设备,其接收端的主要功能模块包括在所述图的301:网络协议模块,实现TCP/IP协议,RTP/RTCP协议等 网络协议;在所述图的302: Audio驱动模块,处理设备部分的语音的输入输出;在所述图的303:协议处理模块,例如处理H.323以及相关协议、MGCP 协议以及SIP协议等; 在所述图的304:媒体(Media)处理模块,负责设备端与网络端的语 音数据的转换及控制,以及语音质量QOS的保证等功能,其又主要包含 如下子模块,在所述图的3041:控制模块,负责网络端以及设备端的语音数据流 的输入输出,和各子模块间的语音数据流的传输;在所述图的3042: UAJB,即采用本发明提出的一种新的自适应抖动 缓冲(jitter buffer);在所述图的3043:语音编解码(Codec)模块,处理语音的编码;在所述图的3044: PLC模块,实现分组损失隐藏PLC方法的功能模块;在所述图的3045:信号音生成模块,用于生成VoIP所需的各种信号音,在所述图的3046:语音质量控制模块,可能包含回波抵消、回波抑 制,静音检测抑制,舒适噪音生成,自动增益等多种语音质量处理功能。注意上述介绍的VoIP (voice over P)设备的主要功能的描述仅说明 了与本发明相关的部分,其它部分有所省略。功能模块的划分仅是一种示意说明,不能理解为对本发明的限制。
权利要求
1. 一种基于自适应抖动缓冲的调度策略的调整方法,在接收端包括步骤a) 缓冲接收到的数据包,并根据接收的数据包估计网络延时或延时 抖动;b) 根据当前估计的网络延时或延时抖动调整下一个数据包的调度时 刻K ;c) 如果当前时刻超过所述下一个数据包的调度时刻,并且他们的间 隔大于给定的调整阀值,同时距上次调整的时刻大于两次调整给定的 时间阀值,则压縮动态缓冲的大小;d) 更新下一个数据包的调度时刻;e) 若当前时刻大于下一包的调度时刻,则从缓冲中取出一个数据包 并播放。
2. 如权利要求l所述的方法,其特征在于在步骤a)中,采用E-MOS方 法对网络延时或延时抖动进行估计。
3. 如权利要求l所述的方法,其特征在于在步骤b)中,所述z;为r 二该数据包的发送时刻+当前估计的抖动延时+包长对应的时间间隔。
4. 如权利要求l所述的方法,其特征在于步骤c)中所述的条件满足如下 公式(rcur - r ) 〉 S—TRHRES(L- V—) 〉 ADJUST—DELAY 其中,T^表示调度者的当前时刻;T;表示自适应动态buffer给出的 下一个帧的调度时刻;S一TRHRES为给定的调整阀值;ADJUST—DELAY为 两次调整之间的时间间隔;7;"一表示上次调整地时刻。
5. 如权利要求l所述的方法,其特征在于在步骤c)中,所述压縮动态缓 冲的大小包括在时间轴上收縮一个数据包长对应的时间间隔。
6. 如权利要求1所述方法,其特征在于步骤C)中,所述压縮动态缓冲大小的方法是直接读出一个数据包并丢掉或利用OLA技术将读出数据包与下一个数据包进行叠加。
7. 如权利要求6所述的方法,其特征在于所述利用OLA技术来压縮数据包 的方法包括如下步骤a) 对A进行下斜坡乘AA (i) =A (i) * (1- (i-l) *t) B"|A|其中,A(i)为语音段A中第i个样值点,t为增大幅度,可取1/|八|;b) 对B进行上斜坡乘BB (i) =B (i) * (i*t) B/^MI 其中,B(i)为语音段B中第i个样值点,t为减小幅度,可取1/|B|=1/|A|;c) 将a)禾卩b)的结果的对应样值相加即得C,丢掉A且用C代替B即得压縮后的语音段。
8. 如权利要求l所述的调整方法,其特征在于在步骤d)中,所述的更新下一个帧的调度时刻z;为r = z;+上述压縮数据包长对应的时间间隔。
9. 一种实现权利要求l方法的设备,在接收端包括a) 网络协议模块,实现TCP/IP协议,RTP/RTCP协议等网络协议;b) Audio驱动模块,用于处理设备部分的语音的输入/输出;c) 协议处理模块,用于处理H. 323以及相关协议、MGCP协议以及SIP 协议等;d) 媒体处理模块,负责设备端与网络端的语音数据的转换及控 制,以及语音质量QOS的保证等功能,所述媒体处理模块包括控制模块,负责网络端以及设备端的语音数据流的输入输出,和 各子模块间的语音数据流的传输;语音编解码模块,处理语音的编码;UAJB模块,自适应抖动缓冲的实现模块; PLC模块,实现分组损失隐藏PLC;信号音生成模块,用于生成VOIP所需的各种信号音;语音质量控制模块,包含回波抵消、回波抑制,静音检测抑制, 舒适噪音生成,自动增益等多种语音质量处理功能。
全文摘要
一种基于自适应抖动缓冲的调度策略的调整方法,在接收端包括步骤缓冲接收到的数据包,并根据接收的数据包估计网络延时或延时抖动;根据当前估计的网络延时或延时抖动调整下一个数据包的调度时刻T<sub>n</sub>;如果当前时刻超过所述下一个数据包的调度时刻,并且他们的间隔大于给定的调整阀值,同时距上次调整的时刻大于两次调整给定的时间阀值,则压缩动态缓冲的大小;更新下一个数据包的调度时刻;若当前时刻大于下一包的调度时刻,则从缓冲中取出一个数据包并播放。本发明能减少自适应动态buffer异常时的连续丢包;在实时多任务环境下,甚至是任务比较繁重的场合仍能实现实时双向语音通话;实现简单,在机顶盒项目中,采用上述方法后取得了较好效果。
文档编号H04L1/00GK101123571SQ200610104000
公开日2008年2月13日 申请日期2006年8月7日 优先权日2006年8月7日
发明者杨武学, 炜 王, 王春花 申请人:北京三星通信技术研究有限公司;三星电子株式会社