一种快速缩减抖动缓冲区的方法及装置制造方法及图纸

技术编号:20875152 阅读:28 留言:0更新日期:2019-04-17 11:17
本申请公开了一种快速缩减抖动缓冲区的方法及装置,通过检测抖动缓冲区内是否设置监测点,所述监测点为从参考点向前搜索到的第一个丢失的数据包后面紧邻的数据包,所述参考点为作为搜索的起始数据包;如果设置有所述监测点,检测所述监测点前的数据包是否有更新;如果所述监测点前的数据包没有更新,开始监测抖动缓冲区内数据包的接收,每监测一次则实际监测次数加1;当实际监测次数达到预设监测次数时,清除所述监测点前的所有数据包。通过上述执行步骤,在出现巨大抖动后,网络恢复平稳时,尽可能快速的缩减抖动缓冲区长度,以更快恢复低延迟,达到实时交流的目的。

【技术实现步骤摘要】
一种快速缩减抖动缓冲区的方法及装置
本申请涉及通信
,尤其涉及一种快速缩减抖动缓冲区的方法及装置。
技术介绍
随着通信技术的快速发展,使用诸如语音、视频进行实时通信已成必不可少的通信方式。比如,使用语音聊天,使用视频软件召开远程医疗视频会议等等。例如,在利用网络发送实时通话语音数据时,发送端将检测到的语音信号封装为多个语音数据包,并通过网络将该多个语音数据包发送至接收端,接收端在接收到该多个语音数据包时,将其解封装为语音信号提供给用户,从而实现语音通信。由于实时语音通信对时延的敏感性,基本上是采取DUP的传送方式,即“尽力服务”,所以就很难对语音数据包传送有很好的控制。在时变的信道中,这种服务将会导致分组丢失和不可预测的时延等,所以语音质量就得不到保证。目前衡量语音质量的参数主要包括:语音数据包传送的时延、时延抖动、语音数据包的丢包率等带宽指标。抖动是分组延迟的变化程度。如果网络发生拥塞,排队延迟将影响发送端到接收端的延迟,并导致通过同一通讯链路上传输的分组延迟各不相同,而抖动,就是用来描述这样一延迟变化的程度。为了解决此抖动,可在数据包的接收端设置抖动缓冲区,抖动缓冲区的大小由抖动程度决定。以包序控制抖动缓冲区的长度是在一次性收取到大量数据包时,将所有数据包都进行缓存,则不会发生丢包现象。在网络抖动,造成大量数据包在某一个输出取包间隔内到达的情况下,根据到达数据包的个数,设置抖动缓冲区长度,以此减少丢包。并在网络趋于平稳后,由于在取包间隔内到达的数据包个数减少,因而抖动缓冲区长度相应减小,以此减少抖动缓冲区造成的延迟。在以包序控制抖动缓冲区长度的方法中,当发现抖动缓冲区长度target_level比当前接收到的数据包总长度current_level要大,需要主动收缩抖动缓冲区。由于连续收缩将会引发语音不连续情况,因此需要间隔一定时间逐渐收缩,考虑到声音连续性需要,所以收缩较慢。受到抖动影响,若网络严重拥塞后恢复,大量语音数据包涌入抖动缓冲区,将会出现current_level较大的情况,由于current_level将影响target_level值,将造成抖动缓冲区延迟较大。此时网络已经恢复,因此target_level需要迅速减小,但受到抖动缓冲区收缩操作的制约,即使target_level减小,抖动缓冲区的收缩仍然需要大量时间。因此,需要在出现巨大抖动后,网络恢复平稳时,尽可能快速的缩减抖动缓冲区长度,以更快恢复低延迟,达到实时交流的目的。
技术实现思路
本申请提供了一种快速缩减抖动缓冲区的方法及装置,以解决现有方法在出现巨大抖动后,网络恢复平稳时,抖动缓冲区收缩缓慢的问题。第一方面,为实现上述目的,本申请提供了一种快速缩减抖动缓冲区的方法,所述方法包括:检测抖动缓冲区内是否设置监测点,所述监测点为从参考点向前搜索到的第一个丢失的数据包后面紧邻的数据包,所述参考点为作为搜索的起始数据包;如果设置有所述监测点,检测所述监测点前的数据包是否有更新;如果所述监测点前的数据包没有更新,开始监测抖动缓冲区内数据包的接收,每监测一次则实际监测次数加1;当实际监测次数达到预设监测次数时,清除所述监测点前的所有数据包。优选地,所述的快速缩减抖动缓冲区的方法还包括:检测是否设置所述参考点;如果设置有所述参考点,搜索所述参考点前的第一个丢失的数据包;判断所述第一个丢失的数据包之前的丢失的数据包总数与抖动缓冲区应接收的数据包总数之比是否大于第一预设比;如果大于第一预设比,设置所述第一个丢失的数据包后面紧邻的数据包为所述监测点;如果小于第一预设比,重置所述参考点、所述监测点与所述预设监测次数。优选地,所述检测是否设置参考点之后,还包括:如果没有设置所述参考点,判断是否达到使用快速缩减抖动缓冲区的预设条件,所述预设条件包括:所述抖动缓冲区内是否有超过1000ms时间长度的数据包和/或所述抖动缓冲区内丢失的数据包总数与抖动缓冲区应接收的数据包总数之比大于第二预设比;如果达到所述预设条件,设置抖动缓冲区队列尾的数据包为所述参考点,重置所述监测点与所述预设监测次数。优选地,所述如果设置有所述监测点,检测所述监测点前的数据包是否有更新之后,还包括:如果所述监测点前的数据包有更新,则将更新的数据包设置为所述参考点,重置所述监测点与所述预设监测次数。优选地,如果设置有所述监测点,检测所述监测点前的数据包是否有更新,包括:如果新接收的数据包插入所述抖动缓冲区的位置在队列尾或在所述监测点之后,则所述监测点前的数据包没有更新;如果新接收的数据包插入抖动缓冲区的位置在所述监测点前,则所述监测点前的数据包有更新。第二方面,提供一种快速缩减抖动缓冲区的装置,所述装置包括:监测点检测模块,用于检测抖动缓冲区内是否设置监测点,所述监测点为从参考点向前搜索到的第一个丢失的数据包后面紧邻的数据包,所述参考点为作为搜索的起始数据包;数据包检测模块,用于如果设置有所述监测点,检测所述监测点前的数据包是否有更新;数据包监测模块,用于如果所述监测点前的数据包没有更新,开始监测抖动缓冲区内数据包的接收,每监测一次则实际监测次数加1;数据包清除模块,用于当实际监测次数达到预设监测次数时,清除所述监测点前的所有数据包。优选地,所述快速缩减抖动缓冲区的装置,还包括:参考点检测模块,用于检测是否设置所述参考点;数据包搜索模块,用于如果设置有所述参考点,搜索所述参考点前的第一个丢失的数据包;第一判断模块,用于判断所述第一个丢失的数据包之前的丢失的数据包总数与抖动缓冲区应接收的数据包总数之比是否大于第一预设比;监测点设置模块,用于如果大于第一预设比,设置所述第一个丢失的数据包后面紧邻的数据包为所述监测点;重置模块,用于如果小于第一预设比,重置所述参考点、所述监测点与所述预设监测次数。优选地,所述快速缩减抖动缓冲区的装置,还包括:第二判断模块,用于如果没有设置所述参考点,判断是否达到使用快速缩减抖动缓冲区的预设条件,所述预设条件包括:所述抖动缓冲区内是否有超过1000ms时间长度的数据包和/或所述抖动缓冲区内丢失的数据包总数与抖动缓冲区应接收的数据包总数之比大于第二预设比;参考点设置模块,用于如果达到所述预设条件,设置抖动缓冲区队列尾的数据包为所述参考点,重置所述监测点与所述预设监测次数。优选地,所述重置模块还用于:如果所述监测点前的数据包有更新,则将更新的数据包设置为所述参考点,重置所述监测点与所述预设监测次数。优选地,所述数据包检测模块具体用于:如果新接收的数据包插入所述抖动缓冲区的位置在队列尾或在所述监测点之后,则所述监测点前的数据包没有更新;如果新接收的数据包插入抖动缓冲区的位置在所述监测点前,则所述监测点前的数据包有更新。第三方面,为实现上述目的,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一项快速缩减抖动缓冲区的方法的步骤。第四方面,为实现上述目的,本申请提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面任一项快速缩减抖动缓冲区的方法的步骤。由以上技术方案可见,本申请实施例提供的一种快速缩减抖动缓冲区的方法及装置,通过检测抖动缓本文档来自技高网
...

【技术保护点】
1.一种快速缩减抖动缓冲区的方法,其特征在于,所述方法包括:检测抖动缓冲区内是否设置监测点,所述监测点为从参考点向前搜索到的第一个丢失的数据包后面紧邻的数据包,所述参考点为作为搜索的起始数据包;如果设置有所述监测点,检测所述监测点前的数据包是否有更新;如果所述监测点前的数据包没有更新,开始监测抖动缓冲区内数据包的接收,每监测一次则实际监测次数加1;当实际监测次数达到预设监测次数时,清除所述监测点前的所有数据包。

【技术特征摘要】
1.一种快速缩减抖动缓冲区的方法,其特征在于,所述方法包括:检测抖动缓冲区内是否设置监测点,所述监测点为从参考点向前搜索到的第一个丢失的数据包后面紧邻的数据包,所述参考点为作为搜索的起始数据包;如果设置有所述监测点,检测所述监测点前的数据包是否有更新;如果所述监测点前的数据包没有更新,开始监测抖动缓冲区内数据包的接收,每监测一次则实际监测次数加1;当实际监测次数达到预设监测次数时,清除所述监测点前的所有数据包。2.根据权利要求1所述的快速缩减抖动缓冲区的方法,其特征在于,还包括:检测是否设置所述参考点;如果设置有所述参考点,搜索所述参考点前的第一个丢失的数据包;判断所述第一个丢失的数据包之前的丢失的数据包总数与抖动缓冲区应接收的数据包总数之比是否大于第一预设比;如果大于第一预设比,设置所述第一个丢失的数据包后面紧邻的数据包为所述监测点;如果小于第一预设比,重置所述参考点、所述监测点与所述预设监测次数。3.根据权利要求2所述的快速缩减抖动缓冲区的方法,其特征在于,所述检测是否设置参考点之后,还包括:如果没有设置所述参考点,判断是否达到使用快速缩减抖动缓冲区的预设条件,所述预设条件包括:所述抖动缓冲区内是否有超过1000ms时间长度的数据包和/或所述抖动缓冲区内丢失的数据包总数与抖动缓冲区应接收的数据包总数之比大于第二预设比;如果达到所述预设条件,设置抖动缓冲区队列尾的数据包为所述参考点,重置所述监测点与所述预设监测次数。4.根据权利要求1所述的快速缩减抖动缓冲区的方法,其特征在于,所述如果设置有所述监测点,检测所述监测点前的数据包是否有更新之后,还包括:如果所述监测点前的数据包有更新,则将更新的数据包设置为所述参考点,重置所述监测点与所述预设监测次数。5.根据权利要求4所述的快速缩减抖动缓冲区的方法,其特征在于,如果设置有所述监测点,检测所述监测点前的数据包是否有更新,包括:如果新接收的数据包插入所述抖动缓冲区的位置在队列尾或在所述监测点之后,则所述监测点前的数据包没有更新;如果新接收的数据包插入抖动缓冲区的位置在所述监测点前,则所述监测点前的数据包有更新。6.一种快速缩减抖动缓冲区的装置,其特征在于...

【专利技术属性】
技术研发人员:周平胡海
申请(专利权)人:贵阳朗玛信息技术股份有限公司
类型:发明
国别省市:贵州,52

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1