一种动态调整抖动缓存的方法、装置和电子设备的制作方法

文档序号:7708775阅读:95来源:国知局
专利名称:一种动态调整抖动缓存的方法、装置和电子设备的制作方法
技术领域
本发明涉及通信技术,尤其涉及一种动态调整抖动缓存的方法、装置和电子设备。
背景技术
随着internet (互联网)应用的普及和技术的不断成熟,使得传统的语音信息承 载在internet上传输成为可能,因此,VoIP (Voice over Internet Protocol,基于互联网 协议的语音)相关的各项技术也就应运而生。其中JB(Jitter Buffer,抖动缓存)技术正 是VoIP的核心技术之一,JB的功能是在网络的接收方对接收的语音数据包进行缓存处理, 然后,再进行播放处理,从而可以有效地降低丢包率,减少网络抖动对语音质量的影响。JB 技术直接影响到VoIP的语音质量。JB技术主要分为两类静态JB技术和动态JB技术。目前internet网络中固有的延时、抖动、丢包、乱序已经证明静态JB技术不能很 好地起到抗抖动的效果,因此,针对不断变化的网络质量状况,只有采用可动态调整深度的 动态JB才能有效地去除网络抖动,达到低延时、低丢包率的效果,从而保证网络中传输的 语音的质量。现有的动态JB的实现方案中,一种是基于平均延时和平均抖动的动态JB方案,另 一种是基于最小延时和平均抖动的动态JB方案。在第一种方案中,对每个到达接收网关的数据包,都进行平均延时和平均抖动的 统计,如下公式rij = aj-tsj(1)Cli = α XcIh+(1-α ) Xni(2)Vi = α X Vh+ (I— α ) X | 屯-叫 | , (O 彡 α 彡 1) (3)其中,Cli为i个包的平均延时;Vi为i个包的平均抖动;α为可调的权值因子,通 过α的调整可以设置本次数据包对平均值的影响程度,可在实现中根据实际网络状况选 择最优的权值;发送第i个包的时间,该时间为来自发送网关的DSP采样时间; 为第 i个包到达接收网关的时间,该时间为来自接收网关的系统时间叫为第i个包在网络中的 总延时。在计算每个包的播放时间时,按如下公式Pi = tSi+di+Y Vi(4)Pj = Pi+tSj-tSj(5)其中,i为语音段第一个数据包,j为语音段的后续数据包。Y表示对平均抖动的 放大倍数,可在实现中根据实际网络状况选择最优的放大倍数。在第二种方案中,对每个到达接收网关的数据包,都进行最小延时和平均抖动的 统计,如下公式rij = aj-tsj(6)dmin = min (dmin, Iii)(7)Vi = α XvH+d-α ) X (Iii-(Imin) (8)
其中,dmin为最小延时。在计算每个包的播放时间时,同样按照如上公式⑷和 (5)。在实现本发明过程中,发明人发现现有技术至少存在以下缺陷动态JB方案都基于平均抖动进行JB的调整,计算的每个包的播放时间受参数α 和Y的影响较大,不同的网络需要设置不同的参数,不具有普适性。并且,现有的动态JB 方案并没有涉及到延时因素(DF,Delay Factor),而实际上DF是媒体数据包到达和送出的 时间差,其反映的是与媒体流相关的抖动变化情况。对DF的忽视无疑会影响JB调整的质 量,从而影响语音播放的效果。

发明内容
本发明实施例提供一种动态调整抖动缓存的方法及装置,以根据语音传输过程中 利用媒体传输质量指标(MDI,Media Delivery Index)得到的DF值以及目标DF值对JB的 深度进行相应的调整,从而提高语音质量。本发明实施例提供一种动态调整抖动缓存的方法,应用于语音传输过程,包括利用媒体传输质量指标获取延时因素;根据获取的所述延时因素和预先确定的目标延迟因素的差值确定语音传输过程 中需要调整的抖动值;根据所述需要调整的抖动值以及语音传输过程中的延时对抖动缓存进行深度调
iF. ο本发明实施例还提供一种动态调整抖动缓存的装置,包括延时因素获取单元,用于利用媒体传输质量指标获取延时因素;抖动值确定单元,用于根据获取的所述延时因素和预先确定的目标延迟因素的差 值确定语音传输过程中需要调整的抖动值;调整单元,用于根据所述需要调整的抖动值以及语音传输过程中的延时对抖动缓 存进行深度调整。本发明实施例还提供一种电子设备,包括上述动态调整抖动缓存的装置。本发明实施例根据语音传输过程中利用媒体传输质量指标得到延时因素DF值, 根据DF值以及预先确定的目标延迟因素得到的差值确定语音传输过程中需要调整的抖动 值,对抖动缓存进行深度调整,可以提高语音质量。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用 的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域 普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附 图。图1为本发明实施例1的动态调整JB的方法流程图;图2为本发明实施例2的动态调整JB的方法流程图;图3为图2中步骤22的具体流程图;图4为图2中步骤23的具体流程5
图5为本发明实施例中动态调整JB的装置结构框图;图6为本发明实施例中调整单元的结构框图;图7为本发明实施例中电子设备的结构框图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。实施例一本实施例提供一种语音传输过程中动态调整抖动缓存的方法,如图1所示,该方 法包括步骤110,在语音传输过程中利用媒体传输质量指标(MDI)获取延时因素(DF)。MDI有两部分组成延时因素DF和媒体丢包率(MLR,Media LossRate),因此利用 MDI可以得到DF。步骤120,根据获取的DF和预先确定的目标DF之间的差值确定语音传输过程中需 要调整的抖动值。其中,目标DF通常为根据网络对抖动的要求确定的DF值,例如,语音传输网络对 抖动有一定要求,则需要保证语音传输过程中的抖动值不能超过某个上限,据此可以确定 一个目标DF。根据语音质量的要求,MDI也可以有建议的目标DF值。确定了目标DF值后,便可以根据MDI测得的DF值和目标DF的差值确定语音传输 过程中需要调整的抖动值。当前语音段的需要调整的抖动值可以有MDI测得的DF值和目标DF之间的差值以 及前一个语音段的抖动值确定,也可以直接由MDI测得的DF值和目标DF的差值得出,在后 面的实施例中会有更详细的描述。步骤130,在需要对抖动缓存进行深度调整时,根据需要调整的抖动值以及语音传 输过程中的延时对抖动缓存进行深度调整。所述延时可以取平均延时,但并不限于此。例如,根据语音传输过程中的平均延时 以及需要调整的抖动值确定当前语音数据包的新播放时间;而根据当前语音数据包的原播 放时间与新播放时间的差值抖动缓存进行深度调整。本发明实施例中,可选地,可根据上一次抖动缓存深度调整的时间距本次抖动缓 存深度调整的时间的间隔值确定是否需要对抖动缓存进行深度调整,在上一次抖动缓存深 度调整的时间距本次抖动缓存深度调整的时间的间隔值大于设定的允许进行抖动缓存深 度调整的最小间隔时间时,则根据所述需要调整的抖动值以及语音传输过程中的延时对抖 动缓存进行深度调整,否则,可不进行抖动缓存的深度调整。这样可以避免频繁地对JB进 行深度的调整从而影响了系统的稳定性。本发明实施例方法也可以根据实际需要对各个步骤顺序进行调整。本发明实施例利用MDI获取的DF值来进行JB的动态调整,由于MDI的目标DF值 的大小是可以反映语音质量的,因此通过目标DF值来控制JB的动态调整,可以保证语音质
6量。实施例2本实施例提供一种语音传输过程中动态调整抖动缓存的方法,如图2所示,该方 法包括步骤21,在语音传输过程中利用MDI获取DF。本发明实施例中,可以在上一个语音传输过程中利用MDI获取DF,或者说,通过对 上一个语音传输过程中的MDI获取DF。具体地,利用MDI获取DF可包括在;用MDI获取经过抖动缓存的语音数据包的DF 值(DFl)或者用MDI获取未经过抖动缓存的语音数据包的DF值(DF2)。步骤22,根据获取的DF和预先确定的目标DF之间的差值确定语音传输过程中需 要调整的抖动值。如图3所示,该步骤22可进一步包括步骤221,将MDI测得的DF值与目标DF值进行比较,获得一个差值因子DifT Diff =测得的DF值-目标DF值。步骤222 根据差值因子确定当前语音段的抖动值。语音数据包在传输过程中需要调整的抖动值由Diff值得来,由于Diff值时根据 获取的DF得来,因此也可以说需要调整的抖动值是基于MDI获取的DF值得来,具体如下若获取的是经过抖动缓冲器之后的DF值,即经过抖动缓存的DF值,则当前语音段 的抖动值,即需要调整的抖动值为Vk = vH+Diff ;若获取的是未经过抖动缓冲器的DF值,则当前语音段的抖动值为vk = Diff。即第k个语音段的抖动值Vk可以通过第k-Ι个语音段的抖动值ν15—1来确定,或者 直接由差值因子得出。步骤23,根据需要调整的抖动值以及语音传输过程中的延时对抖动缓存进行深度 调整。具体地,如图4所示,该步骤23还可包括步骤231,根据当前的系统时间确定当前语音数据包的原播放时间。该当前语音数据包的播放时间可定义为原播放时间,所述的原播放时间为根据当 前的系统时间确定,例如可以从操作系统时间直接获取。步骤232,根据语音传输过程中的平均延时以及需要调整的抖动值确定当前语音 数据包的新播放时间。语音传输过程中的平均延时值Cli可采用现有的平均延时计算公式计算,可表示 为Cli = α X d^+(1-α ) Xni ;其中,α为通过测试,例如通过网络时延变化的仿真测试,获得的权值因子,且 O^ α ^ 1, α大小可调,通过α的调整可以设置本次数据包对平均值的影响程度,可在 实现中根据实际网络状况选择最优的权值;i为语音数据包的序号Ai为第i个语音数据包 在网络中的总延时,且Hi = ai_tSi,其中涉及的 为第i个语音数据包到达接收网送的时 间,ts,为发送第i个语音数据包的时间。根据所述的平均延时及需要调整的抖动值Vk确定当前语音数据包的新播放时间 为
pf = ts^ + d丨 + VkPj = p. +tSj -ts^其中,i为语音段第一个数据包的序号,j为语音段的后续数据包的序号,k为语音 段的序号,Cli为所述平均延时,Vk为所述需要调整的抖动值,pf为当前语音段第一个数据包 的新播放时间,M为当前语音段第一个数据包的后续数据包的新播放时间,化4和<分别为 发送端发送第i个和第j个语音数据包的时间。步骤233,根据当前语音数据包的原播放时间与新播放时间的差值对抖动缓存进 行深度调整。首先计算新播放时间与原播放时间的差值,如果该差值的绝对值大于预设的最大 调整幅度值,则以允许的最大调整幅度值为本次抖动缓存调整的幅度值,否则,以所述的差 值的绝对值作为本次抖动缓存调整的幅度值。根据本次抖动缓存调整的幅度值,可通过调整抖动缓存的出队指针在语音传输过 程中相应静音段的开始点进行抖动缓存深度的调整。此处,进行抖动缓存深度的调整包括进行增加抖动缓存深度的操作和缩短抖动缓 存深度的操作。当进行所述缩短抖动缓存深度的操作时,如果确定遇到语音数据包,则停止 相应的缩短抖动缓存深度的操作。当需要对JB深度进行调整时,与现有的动态JB实现方法中涉及的JB调整处理过 程相同,即具体的JB深度调整点选择在每个静音段的开始点,尤其是对JB深度进行缩短调 整时更应当选择在静音段进行,以避免在语音段开始点进行缩短JB深度的调整,导致丢弃 该语音段的前面若干语音数据包,造成语音质量下降的现象出现。作为本发明另一实施例,本发明实施例中,可选地,在执行步骤23时,可根据上一 次抖动缓存深度调整的时间距本次抖动缓存深度调整的时间的间隔值确定是否需要对抖 动缓存进行深度调整,在上一次抖动缓存深度调整的时间距本次抖动缓存深度调整的时间 的间隔值大于设定的允许进行抖动缓存深度调整的最小间隔时间时,则根据所述需要调整 的抖动值以及语音传输过程中的延时对抖动缓存进行深度调整,否则,可不进行抖动缓存 的深度调整。这样可以避免频繁地对JB进行深度的调整从而影响了系统的稳定性。本发明如上实施例,将MDI获取的DF值引入到动态抖动缓存控制中,利用MDI获 取的DF值来进行JB的动态调整,实现起来比较简单,同时MDI的目标DF值的大小是可以 反映语音质量的,因此通过目标DF值来控制JB的动态调整,可以保证语音质量。本发明实施例中,通过对上一个语音传输过程中的MDI获取以及当前允许的DF值 确定当前语音段的JB深度。因此,本发明实施例是结合允许的DF值进行分析,从而得出针 对后续的语音数据包的接收缓冲处理时需要调整的JB深度值,使得语音传输过程中,可以 满足网络允许的时延要求(DF值)。即本发明的实现使得可以在网络中根据实际需要确定 最佳的网络延时,从而可以保证语音质量。本发明实施例方法也可以根据实际需要对各个步骤顺序进行调整。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通 过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,比如 ROM/RAM、磁碟、光盘等。
实施例3本发明实施例还提供一种语音传输过程中动态调整抖动缓存的装置,如图5所 示,该装置包括延时因素获取单元310,用于在语音传输过程中利用媒体传输质量指标获取延时 因素;抖动值确定单元320,用于根据获取的所述延时因素和预先确定的目标延迟因素 的差值确定语音传输过程中需要调整的抖动值;调整单元330,用于在需要对抖动缓存进行深度调整时,根据所述需要调整的抖动 值以及语音传输过程中的延时对抖动缓存进行深度调整。本发明实施例中,所述延时因素获取单元利用媒体传输质量指标获取经过抖动缓 存的数据包的延迟因素或获取未经过抖动缓存的延迟因素。本发明另一实施例中,如图6所示,所述调整单元包括第一确定单元330,用于根据当前的系统时间确定当前语音数据包的原播放时 间;第二确定单元332,根据语音传输过程中的平均延时以及需要调整的抖动值确定 当前语音数据包的新播放时间;子调整单元333,用于根据当前语音数据包的原播放时间与新播放时间的差值对 抖动缓存进行深度调整。本发明实施例的装置可以实现实施例1和实施例2中的方法。需要说明的是,本发 明实施例的装置可以集成电路或芯片中,包括CPU、或DSP (数字信号处理,Digital Signal Processing)、或通信芯片等,也可以是软件模块,也可以是软件和硬件的结合体。本发明实 施例的各个单元可以集成于一体,也可以分离部署。上述单元可以合并为一个单元,也可以 进一步拆分成多个子单元。实施例4本发明实施例还提供一种电子设备,如图7所示,该电子设备包括上述实施例提 供的动态调整抖动缓存的装置40和应用抖动缓存的装置42,其中,动态调整抖动缓存的装置40,用于利用媒体传输质量指标获取延时因素;根据获 取的延时因素和预先确定的目标延迟因素的差值确定语音传输过程中需要调整的抖动值; 以及,在需要对抖动缓存进行深度调整时,根据需要调整的抖动值以及语音传输过程中的 延时对抖动缓存进行深度调整。该动态调整抖动缓存的装置42的技术方案可以结合参考 实施例1至实施例3提供的技术方案,在此不作赘述。应用抖动缓存的装置42,与动态调整抖动缓存的装置40连接,用于对经抖动缓存 深度调整的语音数据包进行缓存处理,然后,再进行输出播放处理。本发明实施例的电子设备可以是路由器、交换机、网关、数字用户线路接入复用器 (DSLAM)、手机、计算机、服务器、机顶盒等,或者可以是其他硬件或软件模块。本发明实施例利用MDI获取的DF值来进行JB的动态调整,由于MDI的目标DF值 的大小是可以反映语音质量的,因此通过目标DF值来控制JB的动态调整,可以保证语音质 量。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单
9元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件 和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这 些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专 业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不 应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的 软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器 (ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域 内所公知的任意其它形式的存储介质中。以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在 本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护 范围之内。
10
权利要求
一种动态调整抖动缓存的方法,其特征在于,应用于语音传输过程,包括利用媒体传输质量指标获取延时因素;根据获取的所述延时因素和预先确定的目标延迟因素的差值确定语音传输过程中需要调整的抖动值;根据所述需要调整的抖动值以及语音传输过程中的延时对抖动缓存进行深度调整。
2.根据权利要求1所述的方法,其特征在于,所述利用媒体传输质量指标获取延时因 素包括利用媒体传输质量指标获取经过抖动缓存的数据包的延迟因素或获取未经过抖动缓 存的延迟因素。
3.根据权利要求2所述的方法,其特征在于,所述根据获取的所述延时因素和预先确 定的目标延迟因素的差值确定语音传输过程中需要调整的抖动值包括如果获取的所述延时因素为经过抖动缓存的数据包的延迟因素,则根据如下公式确定 语音传输过程中需要调整的抖动值vk = Vk-^Diff ;如果获取的所述延时因素为未经过抖动缓存的数据包的延迟因素,则根据如下公式确 定语音传输过程中需要调整的抖动值vk = Diff ;其中,Vk表示第k个语音段的抖动值,Diff表示测得的延迟因素值与目标延迟因素值 的差值,k为大于1的整数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述需要调整的抖动值以及语 音传输过程中的延时对抖动缓存进行深度调整包括根据当前的系统时间确定当前语音数据包的原播放时间;根据语音传输过程中的平均延时以及需要调整的抖动值确定当前语音数据包的新播 放时间;根据当前语音数据包的原播放时间与新播放时间的差值对抖动缓存进行深度调整。
5.根据权利要求4所述的方法,其特征在于,当前语音数据包的新播放时间满足Pkl =tsl;+di+vkPki 二 ρ1 +ts] -ts)其中,i为语音段第一个数据包的序号,j为语音段的后续数据包的序号,k为语音段的 序号,d,为所述平均延时,vk为所述需要调整的抖动值,Z为当前语音段第一个数据包的新 播放时间,¥为当前语音段第一个数据包的后续数据包的新播放时间,W和 < 分别为发送 端发送第i个和第j个语音数据包的时间。
6.根据权利要求4所述的方法,其特征在于,所述根据当前语音数据包的原播放时间 与新播放时间的差值对抖动缓存进行深度调整包括计算新播放时间与原播放时间的差值,如果该差值的绝对值大于预设的最大调整幅度 值,则以允许的最大调整幅度值为本次抖动缓存调整的幅度值,否则,以所述的差值的绝对 值作为本次抖动缓存调整的幅度值;根据确定的本次抖动缓存调整的幅度值,通过调整抖动缓存的出队指针在语音传输过 程中相应静音段的开始点进行抖动缓存深度的调整。
7.根据权利要求6所述的方法,其特征在于,所述进行抖动缓存深度的调整包括增加抖动缓存深度或者缩短抖动缓存深度;当进行所述缩短抖动缓存深度的操作时,如果确定遇到语音数据包,则停止相应的缩 短抖动缓存深度的操作。
8.根据权利要求1所述的方法,其特征在于,根据所述需要调整的抖动值以及语音传 输过程中的延时对抖动缓存进行深度调整包括如果上一次抖动缓存深度调整的时间距离本次抖动缓存深度调整的时间的间隔值大 于设定的允许进行抖动缓存深度调整的最小间隔时间,则根据所述需要调整的抖动值以及 语音传输过程中的延时对抖动缓存进行深度调整。
9.一种动态调整抖动缓存的装置,其特征在于,包括 延时因素获取单元,用于利用媒体传输质量指标获取延时因素;抖动值确定单元,用于根据获取的所述延时因素和预先确定的目标延迟因素的差值确 定语音传输过程中需要调整的抖动值;调整单元,用于根据所述需要调整的抖动值以及语音传输过程中的延时对抖动缓存进 行深度调整。
10.根据权利要求9所述的装置,其特征在于所述延时因素获取单元用于利用媒体传输质量指标获取经过抖动缓存的数据包的延 迟因素或获取未经过抖动缓存的延迟因素。
11.根据权利要求9所述的装置,其特征在于,所述调整单元包括第一确定单元,用于根据当前的系统时间确定当前语音数据包的原播放时间; 第二确定单元,根据语音传输过程中的平均延时以及需要调整的抖动值确定当前语音 数据包的新播放时间;子调整单元,用于根据当前语音数据包的原播放时间与新播放时间的差值对抖动缓存 进行深度调整。
12.一种电子设备,其特征在于,所述电子设备包括如权利要求9 11任一项所述的装置。
13.根据权利要求12的电子设备,其特征在于,所述电子设备的类型包括路由器、或 交换机、或网关、或手机、或计算机、或服务器。
全文摘要
本发明实施例提供一种调整抖动缓存的方法、装置和电子设备,所述方法包括在语音传输过程中利用媒体传输质量指标获取延时因素;根据获取的所述延时因素和预先确定的目标延迟因素的差值确定语音传输过程中需要调整的抖动值;在需要对抖动缓存进行深度调整时,根据所述需要调整的抖动值以及语音传输过程中的延时对抖动缓存进行深度调整。本发明实施例根据语音传输过程中利用媒体传输质量指标得到的DF值以及目标DF值对JB的深度进行相应的调整,可以提高语音质量。
文档编号H04M7/00GK101924683SQ20091014665
公开日2010年12月22日 申请日期2009年6月9日 优先权日2009年6月9日
发明者侯晓钧, 司艳华, 才金辉, 许方华 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1