动态抖动缓冲方法、装置和计算机设备与流程

文档序号:17626820发布日期:2019-05-10 23:44阅读:132来源:国知局
动态抖动缓冲方法、装置和计算机设备与流程

本发明涉及网络通信技术领域,具体而言,涉及一种动态抖动缓冲方法、装置、计算机设备和计算机存储介质。



背景技术:

在网络通信中,为了缓解网络数据传输中的延迟、丢包以及乱序等造成的接收端数据缺失等问题,会在接收端中引入缓冲功能。

现有的接收端的缓冲功能一般采用固定的缓冲延时,在网络传输环境较好的情况下,采用固定的缓冲延时将会加大接收端对数据应用的延时,而在网络传输环境较差的情况下,采用固定的缓冲延时将会增加数据丢失的可能性。

总的来说,现有的接收端采用的数据接收缓冲方式,在面对网络环境变化时,会增加数据的丢失率。



技术实现要素:

鉴于上述问题,本发明提供了一种动态抖动缓冲方法、装置、计算机设备和计算机存储介质,以根据传输的数据包组的完整性动态增减额外延时的长度,使数据包的传输在延时与丢包之间得到均衡,以可以降低数据包组的丢失率。

为了实现上述目的,本发明采用如下的技术方案:

一种动态抖动缓冲方法,包括:

利用抖动缓冲器按照预设缓冲延时接收数据包组,并判断所述数据包组是否完整;

当所述数据包组不完整时,等待预设额外延时继续接收所述数据包组;

在等待预设额外延时后,释放所述数据包组,并根据被释放的所述数据包组的完整性确定预设额外延时的有效性;

根据预设额外延时的有效性以及所述数据包组传输的往返时延,更新预设额外延时。

优选地,所述的动态抖动缓冲方法,还包括:

根据历史数据包组的丢失率以及传输耗时计算加权抖动延时,并利用所述加权抖动延时更新所述预设缓冲延时。

优选地,所述“在等待预设额外延时后,释放所述数据包组,并根据被释放的所述数据包组的完整性确定预设额外延时的有效性”包括:

判断被释放的所述数据包组是否完整,当被释放的所述数据包组完整时,确定预设额外延时有效;

当被释放的所述数据包组不完整时,确定预设额外延时无效。

优选地,所述“根据预设额外延时的有效性以及所述数据包组传输的往返时延,更新预设额外延时”包括:

当预设额外延时无效时,按照预设规则增加预设额外延时的时间长度;

当预设额外延时有效时,按照预设规则减少预设额外延时的时间长度,其中,预设额外延时大于或等于所述往返时延。

本发明还提供一种动态抖动缓冲装置,包括:

包组完整判断模块,用于利用抖动缓冲器按照预设缓冲延时接收数据包组,并判断所述数据包组是否完整;

额外延时模块,用于当所述数据包组不完整时,等待预设额外延时继续接收所述数据包组;

有效性判断模块,用于在等待预设额外延时后,释放所述数据包组,并根据被释放的所述数据包组的完整性确定预设额外延时的有效性;

额外延时更新模块,用于根据预设额外延时的有效性以及所述数据包组传输的往返时延,更新预设额外延时。

优选地,所述的动态抖动缓冲装置,还包括:

缓冲延时更新模块,用于根据历史数据包组的丢失率以及传输耗时计算加权抖动延时,并利用所述加权抖动延时更新所述预设缓冲延时。

优选地,所述有效性判断模块包括:

有效判断单元,用于判断被释放的所述数据包组是否完整,当被释放的所述数据包组完整时,确定预设额外延时有效;

无效判断单元,用于当被释放的所述数据包组不完整时,确定预设额外延时无效。

优选地,所述额外延时更新模块包括:

延时增加单元,用于当预设额外延时无效时,按照预设规则增加预设额外延时的时间长度;

延时减少单元,用于当预设额外延时有效时,按照预设规则减少预设额外延时的时间长度,其中,预设额外延时大于或等于所述往返时延。

本发明还提供一种计算机设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述计算机设备执行所述的动态抖动缓冲方法。

本发明还提供一种计算机存储介质,其存储有所述的计算机设备中所使用的计算机程序。

本发明提供一种动态抖动缓冲方法,该动态抖动缓冲方法包括:利用抖动缓冲器按照预设缓冲延时接收数据包组,并判断所述数据包组是否完整;当所述数据包组不完整时,等待预设额外延时继续接收所述数据包组;在等待预设额外延时后,释放所述数据包组,并根据被释放的所述数据包组的完整性确定预设额外延时的有效性;根据预设额外延时的有效性以及所述数据包组传输的往返时延,更新预设额外延时。本发明的动态抖动缓冲方法,可以根据传输的数据包组的完整性动态增减额外延时的长度,使数据包的传输在延时与丢包之间得到均衡,以降低数据包组的丢失率。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明范围的限定。

图1是本发明实施例1提供的一种动态抖动缓冲方法的流程图;

图2是本发明实施例2提供的一种动态抖动缓冲方法的流程图;

图3是本发明实施例3提供的一种动态抖动缓冲方法的更新额外延时的流程图;

图4是本发明实施例4提供的一种动态抖动缓冲装置的结构示意图;

图5是本发明实施例4提供的另一种动态抖动缓冲装置的结构示意图;

图6是本发明实施例4提供的一种动态抖动缓冲装置的有效性判断模块的结构示意图;

图7是本发明实施例4提供的一种动态抖动缓冲装置的额外延时更新模块的结构示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

图1是本发明实施例1提供的一种动态抖动缓冲方法的流程图,该方法包括如下步骤:

步骤s11:利用抖动缓冲器按照预设缓冲延时接收数据包组,并判断所述数据包组是否完整。

本发明实施例中,当用户使用接收端接收发送端传输的数据包组时,可以使用抖动缓冲器按照预设缓冲延时加收该数据包组。其中,该抖动缓冲器也即为接收端的一个共享数据区域,在这个区域中可以设置一段均匀的时间间隔,也即缓冲延时,用于在该时间间隔内从网络中接收数据包组,进行该包组的缓冲后发送至处理器。数据包组到达的缓冲器的时间变化即为抖动,也即延时是变化的。例如接收端接收的是语音包,利用抖动缓冲器可以有意延迟到达的语音包,这样接收端就可以获取一个完整的语音包,而当接收下一次语音包时,抖动缓冲器则可根据上一语音包的接收情况对延时进行调整。

本发明实施例中,该接收端为连接网络的计算机设备,例如可以为手机、电脑以及平板电脑等,在接收端中还可以设置有算法或应用程序,在利用抖动缓冲器按照预设缓冲延时接收数据包组后,可以利用算法或应用程序判断该数据包组是否完整。

步骤s12:当所述数据包组不完整时,等待预设额外延时继续接收所述数据包组。

本发明实施例中,当抖动缓冲器在预设的缓冲延时过后所接收的数据包组不完整时,该抖动缓冲器可以等待预设额外延时继续接收该数据包组,也即按照预设时长增加数据包组从网络中进行接收的时间。其中,该预设额外延时的初始时间值可以由接收端用户进行设置,也可以有由抖动缓冲器按照算法自行设定,其初始时间值不小于数据包组传输的往返时延。

步骤s13:在等待预设额外延时后,释放所述数据包组,并根据被释放的所述数据包组的完整性确定预设额外延时的有效性。

本发明实施例中,在接收的数据包组不完整的情况下进行额外延时的接收后,抖动缓冲器将释放该数据包组,将数据包组传输至接收端的处理器进行处理。在进行数据包组的处理过程中包括有数据包组完整性的判断,该数据包组完整性判断过程可以利用算法或应用程序来实现,例如可以在接收端中设置有应用程序,利用该应用程序对被释放的数据包组进行完整性的判断,从而确定该预设额外延时的有效性。其中,当数据包组完整时可以确定该额外延时是有效的,也可以设置一个完整度阈值,当数据包组的完整度大于该完整度阈值时,可判定该额外延时有效,否则无效。例如该完整度阈值为80%,当接收的数据包组完整度达到80%以上时,可以确定该预设额外延时是有效的,否则无效。

步骤s14:根据预设额外延时的有效性以及所述数据包组传输的往返时延,更新预设额外延时。

本发明实施例中,该接收端还可以根据预设额外延时的有效性以及数据包组传输的往返时延更新该预设额外时延。例如,在预设额外延确定为无效时,可以更新该预设额外延时的时间值,增加该预设额外延时的时间长度,以提高接收下一组数据包组的完整度。其中,该预设额外时延的更新过程可以利用应用程序来实现,例如可以在接收端中设置有更新预设额外延时的应用程序,该应用程序可以根据预设额外延时的有效性以及往返时延,按照预设规则更新该额外预设时延。

实施例2

图2是本发明实施例2提供的一种动态抖动缓冲方法的流程图,该方法包括如下步骤:

步骤s21:利用抖动缓冲器按照预设缓冲延时接收数据包组,并判断所述数据包组是否完整。

此步骤与上述步骤s11一致,在此不再赘述。

步骤s22:当所述数据包组不完整时,等待预设额外延时继续接收所述数据包组。

此步骤与上述步骤s12一致,在此不再赘述。

步骤s23:在等待预设额外延时后,释放所述数据包组,并根据被释放的所述数据包组的完整性确定预设额外延时的有效性。

此步骤与上述步骤s13一致,在此不再赘述。

步骤s24:根据预设额外延时的有效性以及所述数据包组传输的往返时延,更新预设额外延时。

此步骤与上述步骤s14一致,在此不再赘述。

步骤s25:根据历史数据包组的丢失率以及传输耗时计算加权抖动延时,并利用所述加权抖动延时更新所述预设缓冲延时。

本发明实施例中,在接收端通过算法或应用程序确定被释放的数据包组的完整性后,可以根据该被释放数据包组的完整性信息更新目前历史数据包组的丢失率,并且还可以记录被释放数据包组的传输耗时。在获得目前接收端的历史数据包组的丢失率以及传输耗时后,该接收端可以利用历史数据包组的丢失率以及传输耗时计算加权抖动延时,并利用加权抖动延时更新预设缓冲延时。其中,该计算加权抖动延时的过程可以利用应用程序来实现,例如可以在接收端中设置有基于加权抖动延时算法的应用程序,该应用程序可以定期利用历史数据包组的丢失率以及传输耗时进行预设缓冲延时的更新。

实施例3

图3是本发明实施例3提供的一种动态抖动缓冲方法的更新额外延时的流程图,包括如下步骤:

步骤s31:判断被释放的所述数据包组是否完整,当被释放的所述数据包组完整时,确定预设额外延时有效。

步骤s32:当被释放的所述数据包组不完整时,确定预设额外延时无效。

步骤s33:当预设额外延时无效时,按照预设规则增加预设额外延时的时间长度。

步骤s34:当预设额外延时有效时,按照预设规则减少预设额外延时的时间长度,其中,预设额外延时大于或等于所述往返时延。

本发明实施例中,当接收端确定被释放的数据包组为完整时,可以确定该预设额外延时有效,并且还可以通过预设规则进行该预设额外延时的更新,减少预设额外延时的长度,从而减少数据包组传输的延时,增加通信速率。当接收段确定被释放的数据包组为不完整时,可以确定该预设额外延时无效,并且还可以通过预设规则进行预设额外延时的更新,增加预设延时的长度,从而增加下一数据包组的完整率,减少丢失率。

本发明实施例中,通过上述对预设额外延时的动态调整,使该数据包组的传输在延时与丢包之间得到均衡,既保证数据包组传输的速率,也可以降低丢失率。其中,上述动态调整预设额外延时的过程可以利用算法或应用程序来实现,这里不做限定。

实施例4

图4是本发明实施例4提供的一种动态抖动缓冲装置的结构示意图。

该动态抖动缓冲装置400包括:

包组完整判断模块410,用于利用抖动缓冲器按照预设缓冲延时接收数据包组,并判断所述数据包组是否完整。

额外延时模块420,用于当所述数据包组不完整时,等待预设额外延时继续接收所述数据包组。

有效性判断模块430,用于在等待预设额外延时后,释放所述数据包组,并根据被释放的所述数据包组的完整性确定预设额外延时的有效性。

额外延时更新模块440,用于根据预设额外延时的有效性以及所述数据包组传输的往返时延,更新预设额外延时。

如图5所示,该动态抖动缓冲装置400还包括:

缓冲延时更新模块450,用于根据历史数据包组的丢失率以及传输耗时计算加权抖动延时,并利用所述加权抖动延时更新所述预设缓冲延时。

如图6所示,该有效性判断模块430包括:

有效判断单元431,用于判断被释放的所述数据包组是否完整,当被释放的所述数据包组完整时,确定预设额外延时有效。

无效判断单元432,用于当被释放的所述数据包组不完整时,确定预设额外延时无效。

如图7所示,该额外延时更新模块440包括:

延时增加单元441,用于当预设额外延时无效时,按照预设规则增加预设额外延时的时间长度。

延时减少单元442,用于当预设额外延时有效时,按照预设规则减少预设额外延时的时间长度,其中,预设额外延时大于或等于所述往返时延。

本发明实施例中,上述各个模块以及单元更加详细的功能描述可以参考前述实施例中相应部分的内容,这里不再赘述。

此外,本发明还提供了一种计算机设备,该计算机设备可以包括智能电话、平板电脑、车载电脑、智能穿戴设备等。该计算机设备包括存储器和处理器,存储器可用于存储计算机程序,处理器通过运行所述计算机程序,从而使计算机设备执行上述方法或者上述动态抖动缓冲装置中的各个模块的功能。

存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本实施例还提供了一种计算机存储介质,用于储存上述计算机设备中使用的计算机程序。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1