丢包补偿方法、装置、数据报文传输系统和存储介质与流程

文档序号:22622709发布日期:2020-10-23 19:29阅读:151来源:国知局
丢包补偿方法、装置、数据报文传输系统和存储介质与流程

本申请涉及通信技术领域,具体而言,涉及一种丢包补偿方法、装置、数据报文传输系统和存储介质。



背景技术:

在基于ip的语音传输(voiceoverinternetprotocol,voip)通信中,语音数据通常采用用户数据报协议(userdatagramprotocol,udp)在网络中进行传输。由于udp协议为非可靠连接,在数据传输过程中会随着网络通信质量的变差而出现数据报文丢失等现象,因此导致语音通话质量的下降或不可用。

为了解决数据报文丢包问题,解决方法可分为两大类:一种是通过恢复数据报文方式解决丢包,即在数据报文内容中增加信息通过某种机制恢复丢失数据报文;另一种是通过补偿数据报文方式解决丢包,即在传输上通过某种方式补偿丢失的数据报文。但上述方法存在下列问题:增加音频数据编码器的复杂度、无法保障低延时或无法在高丢包率下适用。



技术实现要素:

本申请实施例的目的在于提供一种丢包补偿方法、装置、数据报文传输系统和存储介质,用以在不增加音频数据编码器复杂度,保证低延时且在高丢包率的情况下仍然有效的基础上,解决在数据传输过程中会随着网络通信质量的变差而出现数据报文丢失的问题。

第一方面,本发明实施例提供一种丢包补偿方法,应用于数据报文传输系统所包括的第一数据报文传输设备的发送端,所述数据报文传输系统还包括第二数据报文传输设备,所述第二数据报文传输设备的接收端与所述发送端通信连接,所述方法包括:

接收所述接收端基于前次数据报文所发送的网络状况反馈信息;

根据所述网络状况反馈信息计算补偿率;

根据补偿率生成并发送当前数据报文。

通过检测网络状况信息,根据网络状况信息生成网络状况反馈信息,根据网络状况反馈信息计算补偿率,对数据报文进行丢包补偿并发送具有一定冗余量的数据报文,使得在不增加音频数据编码器复杂度的基础上,达到抗丢包的效果,同时保证低延时且在高丢包率的情况下仍然适用。

在可选的实施方式中,所述根据所述网络状况反馈信息计算补偿率包括:

初始化补偿率值;

根据网络状况反馈信息对经初始化的补偿率值进行调整,生成所述补偿率。

通过初始化补偿率值,去除了前一时刻补偿率值的影响,减少误差,提高生成的补偿率的准确性。

在可选的实施方式中,所述网络状况反馈信息包括:丢包率、延时和抖动,所述根据网络状况反馈信息对所述初始化补偿率值进行调整包括:

计算丢包率补偿率、延时补偿率和抖动补偿率;

获取丢包率补偿率权值、延时补偿率权值和抖动补偿率权值;

根据所述丢包率补偿率、延时补偿率、抖动补偿率、丢包率补偿率权值、延时补偿率权值和抖动补偿率权值计算所述补偿率。

由于丢包率、延时和抖动对音频数据报文影响的存在差异,通过采用加权求和方式得到补偿率,提高了计算所得的补偿率的准确性。

在可选的实施方式中,所述当前数据报文包括补偿数据报文和待发送数据报文,所述根据补偿率生成并发送当前数据报文包括:

根据所述补偿率计算补偿数据量;

根据所述补偿数据量从发送列队获取所述补偿数据报文并向所述接收端发送所述补偿数据报文和所述待发送数据报文。

通过根据补偿率计算出需要的补偿数据量,将补偿数据与待发送数据一起发送,形成对待发送数据的冗余发送,从而在网络出现丢包和网络抖动等情况下,能够快速发送补偿数据报文,达到较好的抗丢包性,使音频质量得到保障。

第二方面,本发明实施例提供一种丢包补偿方法,应用于数据报文传输系统所包括的第二数据报文传输设备的接收端,所述数据报文传输系统还包括第一数据报文传输设备,所述第一数据报文传输设备的发送端与所述接收端通信连接,所述方法包括:

接收所述发送端发送的数据报文;

根据所述数据报文生成网络状况反馈信息,所述网络状况反馈信息用于指示所述发送端进行丢包补偿。

在可选的实施方式中,所述数据报文包括序号和时间戳,所述根据所述数据报文生成网络状况反馈信息包括:

根据所述序号和所述时间戳生成网络状况反馈信息。

第三方面,本发明实施例提供一种丢包补偿装置,应用于数据报文传输系统所包括的第一数据报文传输设备的发送端,所述数据报文传输系统还包括第二数据报文传输设备,所述第二数据报文传输设备的接收端与所述发送端通信连接,所述装置包括:

第一接收模块,用于接收所述接收端基于前次数据报文所发送的网络状况反馈信息;

计算模块,用于根据所述网络状况反馈信息计算补偿率;

发送模块,用于根据补偿率生成并发送当前数据报文。

第四方面,本发明实施例提供一种丢包补偿装置,应用于数据报文传输系统所包括的第二数据报文传输设备的接收端,所述数据报文传输系统还包括第一数据报文传输设备,所述第一数据报文传输设备的发送端与所述接收端通信连接,所述装置包括:

第二接收模块,用于接收所述发送端发送的报文数据;

生成模块,用于根据所述报文数据生成网络状况反馈信息,所述网络状况反馈信息用于指示所述发送端进行丢包补偿。

第五方面,本发明实施例提供一种数据报文传输系统,所述数据报文传输系统包括:

第一数据报文传输设备,包括发送端,用于执行如第一方面或第一方面的任一种可能的实现方式所述的丢包补偿方法;

第二数据报文传输设备,包括接收端,用于执行如第二方面或第二方面的任一种可能的实现方式所述的丢包补偿方法。

第六方面,本发明实施例提供一种存储介质,所述存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如前述实施方式中任一项所述的丢包补偿方法的步骤。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种报文传输系统的结构框图;

图2为本申请实施例提供的一种丢包补偿方法的流程图;

图3为本发明实施例提供的一种丢包补偿装置的结构框图;

图4为本发明实施例提供的另一种丢包补偿装置的结构框图。

图标:10-报文传输系统;101-第一数据报文传输设备;102-第二数据报文传输设备;11,21-发送端;111,211-分析器;112,212-补偿器;113,213-发送器;12,22-接收端;121,221-接收器;122,222-探测器;301-第一接收模块;300,400-丢包补偿装置;302-计算模块;303-发送模块;401-第二接收模块;402-生成模块。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

图1为本申请实施例提供的一种报文传输系统的结构框图,该报文传输系统10包括:第一数据报文传输设备101和第二数据报文传输设备102。

第一数据报文传输设备101与第二数据报文传输设备102通信连接且相互之间可以进行数据交互。第一数据报文传输设备101与第二数据报文传输设备102可以具有相同的结构,或者也可以具有不同的结构。本实施例中,第一数据报文传输设备101与第二数据报文传输设备具有相同的结构。

本实施例中,第一数据报文传输设备101包括发送端11和接收端12。具体的,发送端11可以包括:分析器111、补偿器112和发送器113。接收端12可以包括:接收器121和探测器122。

相应地,第二数据报文传输设备102包括发送端21和接收端22。发送端21可以包括分析器211,补偿器212和发送器213。接收端22可以包括接收器221及探测器222。

为了方便后续说明,将第一数据报文传输设备101作为数据报文发送方,将第二数据报文传输设备102作为数据报文接收方。第一数据报文传输设备101的发送端11与第二数据报文传输设备102的接收端22通信连接。

在进行数据报文传输时,接收端22通过接收器221接收发送端11的发送器113发送的数据报文。然后,接收端22的探测器222根据接收到的数据报文侦测数据报文传输的网络状况信息。网络状况信息具体可以包括丢包率、延时、抖动等。接着将网络状况信息发送给发送端11的分析器111,分析器111对网络状况信息进行分析并得到补偿率,将补偿率发送给补偿器112。补偿器112根据补偿率生成补偿数据报文,将补偿数据报文发送给发送器113。发送器113将补偿数据报文和待发送的数据报文一同发送给接收端22。接收端22在接收到数据报文后,重复上述步骤。通过检测网络状况信息,对数据报文进行丢包补偿并发送具有一定冗余量的数据报文,能够达到抗丢包的效果。

需要说明的是,也可以将第一数据报文传输设备101作为数据接收方,将第二数据报文传输设备102作为数据发送方。此时,第一数据报文传输设备101的接收端12与第二数据报文传输设102的发送端21连接,具体的交互方式与第一数据报文传输设备101的发送端11与第二数据报文传输设102的接收端22的交互方式相对应,为使说明书简洁,相同或相近部分可互相参照,在此不再赘述。

为便于理解本方案,下面将以第一数据报文传输设备101作为数据发送方,第二数据报文传输设备102作为数据接收方为例,对如何进行丢包补偿进行详细说明。

请参阅图2,图2为本申请实施例提供的一种丢包补偿方法的流程图,该丢包补偿方法可以包括如下步骤:

步骤s201:接收端接收发送端发送的数据报文。

步骤s202:接收端根据数据报文生成网络状况反馈信息,网络状况反馈信息用于指示发送端进行丢包补偿。

步骤s203:发送端接收接收端基于前次数据报文所发送的网络状况反馈信息。

步骤s204:发送端根据网络状况反馈信息计算补偿率。

步骤s205:发送端根据补偿率生成并发送当前数据报文。

下面将结合示例对上述流程进行详细说明。

步骤s201:接收端接收发送端发送的数据报文。

本实施例中,第二数据报文传输设备102的接收端22与第一数据报文传输设备101的发送端11通信连接。其中,连接方式可以为有线连接或无线连接。有线连接的方式可以为通过光纤进行连接。无线连接的方式可以为通过4g、5g、wifi等进行连接。

发送端11与接收端22通过udp协议进行数据报文传输。接收端22的接收器221由内部接收线程驱动,从udp套接字中接收发送端11的发送器113发送的数据报文。

需要说明的是,数据报文的形式可以为音频数据报文或视频数据报文等,本申请对此不做限定。为了方便说明,以下以数据报文为音频数据报文进行说明。

步骤s202:接收端根据数据报文生成网络状况反馈信息,网络状况反馈信息用于指示发送端进行丢包补偿。

本申请实施例中,接收端22接收到发送端11发送的音频数据报文后,接收端22的探测器222对接收到的音频数据报文进行分析,生成网络状况反馈信息。

其中,网络状况反馈信息可以包括丢包率、延时和抖动三者中的至少一者。网络的传输状况可以通过丢包率、延时和抖动三者中的至少一者表征。相应地,探测器222通过对接收到的音频数据报文进行分析,计算当前网络传输状况下的丢包率、延时和抖动信息三者中的至少一者。本实施例中,网络状况反馈信息包括丢包率、延时和抖动。相应地,网络的传输状况通过丢包率、延时和抖动共同表征。探测器222通过对接收到的音频数据报文进行分析,计算当前网络传输状况下的丢包率、延时和抖动信息。

举例来说,每次以2秒为一次统计时间间隔,探测器222每2秒对接收到的音频数据报文进行分析,计算音频数据报文的丢包率、延时和抖动信息,这些信息可以反馈当前的网络传输状况,然后生成网络状况反馈信息并发送给发送端11。发送端11根据网络状况反馈信息进行丢包补偿。需要说明的是,上述以2秒为一次统计时间间隔仅为本实施例的一种示例性方式,其并不作为本实施例的限定。统计时间间隔可以为3秒、5秒等,本申请对此不做限定。

具体的,步骤s202可以包括如下步骤:

根据序号和时间戳生成网络状况反馈信息。

本申请实施例中,探测器222根据数据报文中的序号和时间戳,进行计算,生成网络状况反馈信息。

具体的,假设探测器222以2秒为一次统计时间间隔,对接收到的一组音频数据报文进行分析,首先根据音频数据报文中携带的序号信息计算出网络的丢包率;然后根据音频数据报文中携带的时间戳信息计算网络的延时和抖动。再将丢包率、延时和抖动作为网络状况反馈信息,发送给发送端11。进行完上述步骤后,以同样的步骤继续处理接下来2秒的下一组音频数据报文,如此循环。

步骤s203:发送端接收接收端基于前次数据报文所发送的网络状况反馈信息。

本申请实施例中,发送端11的分析器111接收探测器222发送的网络状况反馈信息。需要说明的是,此处的网络状况反馈信息,是接收端22基于发送端11前一次发送给接收端22的音频数据报文得出的网络状况反馈信息。

步骤s204:发送端根据网络状况反馈信息计算补偿率。

分析器111接收到网络状况反馈信息后,根据网络状况反馈信息分析并计算出针对目前网络传输质量的补偿率。当网络传输质量较好时,生成的补偿率值较低;反之,当网络传输质量较差时,生成的补偿率值则相应增大。

具体的,步骤s204可以包括如下步骤:

第一步,初始化补偿率值;

第二步,根据网络状况反馈信息对经初始化的补偿率值进行调整,生成补偿率。

本申请实施例中,分析器111接收到网络状况反馈信息后,首先初始化补偿率值。本申请实施例中,假设探测器222以2秒为一次统计时间间隔进行网络状况探测,补偿率是根据网络状况反馈信息确定的,网络状况反馈信息是探测器222根据每2秒的网络传输质量生成的,因此,补偿率是一个根据网络传输质量不断变化的值。在每次计算补偿率时,需要先对补偿率值进行初始化(例如,置零),以避免计算出的当前时刻的补偿率值受到前一时刻补偿率值的影响,出现误差。

通过初始化补偿率值,去除了前一时刻补偿率值的影响,减少误差,提高生成的补偿率的准确性。

初始化补偿率值后,根据网络状况反馈信息对初始化补偿率值进行调整,生成补偿率。

可选的,根据网络状况反馈信息对初始化补偿率值进行调整,生成补偿率可以包括如下步骤:

第一步,计算丢包率补偿率、延时补偿率和抖动补偿率;

第二步,获取丢包率补偿率权值、延时补偿率权值和抖动补偿率权值;

第三步,根据丢包率补偿率、延时补偿率、抖动补偿率、丢包率补偿率权值、延时补偿率权值和抖动补偿率权值计算补偿率。

本申请实施例中,分析器111根据丢包率、延时和抖动分别计算丢包率补偿率、延时补偿率和抖动补偿率。

首先对当前的丢包率进行评估,判断丢包率是否大于触发变更的阈值。如果丢包率大于此阈值,则通过下列公式计算丢包率补偿率:

c1=at*l

其中,c1为丢包率补偿率,at为当前阈值下的常量值,l为丢包率。

然后对当前的延时进行评估,判断延时是否大于触发变更的阈值。如果延时大于此阈值,则通过下列公式计算延时补偿率:

c2=d/bt

其中,c2为延时补偿率,bt为当前阈值下的常量值,d为延时值。

最后对当前的抖动进行评估,判断抖动是否大于触发变更的阈值。如果抖动大于此阈值,则通过下列公式计算延时补偿率:

c3=j/wt

其中,c3为抖动补偿率,wt为当前阈值下的常量值,j为延时值。

此时,可以通过下列公式计算补偿率:

c=c1+c2+c3

其中,c为补偿率,c1为丢包率补偿率,c2为延时补偿率,c3为抖动补偿率。

可以理解,计算丢包率补偿率,延时补偿率及抖动补偿率没有严格的先后顺序,可以同时进行,也可以先计算延时补偿率或抖动补偿率,本申请对此不做限定。

根据网络状况反馈信息计算出的补偿率c将直接影响到音频传输的补偿结果。补偿率计算的准确与否将影响数据传输及补偿效果,如果计算出的补偿率较实际所需补偿率偏大,会因为音频补偿数据过度而给网络发送带来压力;如果计算出的补偿率较实际所需补偿率偏小,又不能有效补偿因网络状况导致的音频数据报文丢失。考虑到丢包率、延时和抖动对音频数据报文的影响存在差异,因此,可以采用加权求和的方式,得到补偿率c,使得补偿率c更加准确。

具体的,采用加权求和方式得到补偿率c的计算公式可以为:

c=p1*c1+p2*c2+p3*c3

其中,p1为丢包率补偿率权值、p2为延时补偿率权值、p3为抖动补偿率权值。

需要说明的是,丢包率补偿率权值、时补偿率权值和抖动补偿率权值可以为预先设定好的定值,也可以随网络传输状况进行调整,本申请不以此为限。

由于丢包率、延时和抖动对音频数据报文的影响存在差异,通过采用加权求和方式得到补偿率,提高了计算补偿率的准确性。

步骤s205:发送端根据补偿率生成并发送当前数据报文。

本申请实施例中,补偿器112接收分析器111发送的补偿率信息,然后根据补偿率计算出需要的补偿数据量,其计算公式为:

y=c*v

其中,c为分析器111计算的补偿率,v为当前需要发送的数据量,y为补偿数据量。

可选的,根据补偿率生成并发送当前数据报文可以包括如下步骤:

第一步,根据补偿率计算补偿数据量;

第二步,根据补偿数据量从发送列队获取补偿数据报文并向接收端发送补偿数据报文和待发送数据报文。

举例来说,假设探测器222以2秒为一次统计时间间隔,生成网络状况反馈信息。探测器222根据发送端11前2秒发送的音频数据报文,生成网络状况反馈信息,分析器111根据该网络状况反馈信息计算出补偿率c为40%。接下来2秒内需要发送的音频数据报文的数据量v为100个数据包,则补偿数据量y为40,即40个数据包。补偿器112从发送数据队列中取出补偿数据报文,将补偿数据报文发送给发送器113。发送器113将补偿数据报文和待发送音频数据报文(即,接下来2秒内原本需要发送的数据报文)作为当前音频数据报文,发送给接收端22,接收端22的接收器221会同时收到音频数据报文和补偿数据报文。

通过根据补偿率计算出需要的补偿数据量,将补偿数据与待发送数据一起发送,形成对待发送数据的冗余发送,从而在网络出现丢包和网络抖动等情况下,能够快速发送补偿数据报文,达到较好的抗丢包性,使音频质量得到保障。

基于同一发明构思,本申请实施例提供一种丢包补偿装置。请参阅图3,图3为本发明实施例提供的一种丢包补偿装置的结构框图,该丢包补偿装置300应用于数据报文传输系统所包括的第一数据报文传输设备的发送端,所述数据报文传输系统还包括第二数据报文传输设备,所述第二数据报文传输设备的接收端与所述发送端通信连接,该丢包补偿装置300可以包括:

第一接收模块301,用于接收所述接收端基于前次数据报文所发送的网络状况反馈信息;

计算模块302,用于根据所述网络状况反馈信息计算补偿率;

发送模块303,用于根据补偿率生成并发送当前数据报文。

作为一种可选的实施方式,所述计算模块302还用于初始化补偿率值;

根据网络状况反馈信息对经初始化的补偿率值进行调整,生成所述补偿率。

作为一种可选的实施方式,所述网络状况反馈信息包括:丢包率、延时和抖动,所述计算模块302还用于计算丢包率补偿率、延时补偿率和抖动补偿率;

获取丢包率补偿率权值、延时补偿率权值和抖动补偿率权值;

根据所述丢包率补偿率、延时补偿率、抖动补偿率、丢包率补偿率权值、延时补偿率权值和抖动补偿率权值计算所述补偿率。

作为一种可选的实施方式,所述当前数据报文包括补偿数据报文和待发送数据报文,所述发送模块303还用于根据所述补偿率计算补偿数据量;

根据所述补偿数据量从发送列队获取所述补偿数据报文并向所述接收端发送所述补偿数据报文和所述待发送数据报文。

基于同一发明构思,本申请实施例提供一种丢包补偿装置。请参阅图4,图4为本发明实施例提供的另一种丢包补偿装置的结构框图,该丢包补偿装置400应用于数据报文传输系统所包括的第二数据报文传输设备的接收端,所述数据报文传输系统还包括第一数据报文传输设备,所述第一数据报文传输设备的发送端与所述接收端通信连接,该丢包补偿装置400可以包括:

第二接收模块401,用于接收所述发送端发送的数据报文;

生成模块402,用于根据所述数据报文生成网络状况反馈信息,所述网络状况反馈信息用于指示所述发送端进行丢包补偿。

作为一种可选的实施方式,所述数据报文包括序号和时间戳,所述生成模块402还用于根据所述序号和所述时间戳生成网络状况反馈信息。

此外,本申请实施例还提供了一种存储介质,在该存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行本申请任一项实施方式所提供的方法。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

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

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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