一种适用视频通信的丢包处理方法与流程

文档序号:16935819发布日期:2019-02-22 20:41阅读:498来源:国知局
一种适用视频通信的丢包处理方法与流程
本发明涉及通信
技术领域
,尤其涉及一种适用视频通信的丢包处理方法。
背景技术
:在视频通信的传输层,由于无线网络的信号不稳定或互联网链路的不可靠等因素导致网络丢包,从而导致高度压缩的和已经去除冗余包的视频无法被正确解码播放。同时,由于实时视频通信需要较低的网络延迟(低于200ms是理想的),当网络延迟较高时,尽量避免采用自动请求重发(arq,automaticrepeat-request),因为自动请求重发在发现错误时会通知发送方重新发送,因此会使网络延迟更高,此时需要采用发送冗余数据的前向纠错(fec,forwarderrorcorrection)的方法来实现对抗随机丢包。fec是一种在通信系统中单向控制传输错误的技术,通过连同数据发送额外的信息进行错误恢复,以降低误码率。具体来讲,fec可以分为很多种类,包括对数据位的可靠性保护,以及对数据报文的丢包保护等。在视频通信的传输层会产生网络丢包的情况下,前向纠错可以通过冗余包来生成那些已丢失的包。前向纠错在发现错误时,不需要通知发送方重新发送,因此不会带来网络延时问题。但是前向纠错产生的冗余信息会占用大量带宽,使视频质量下降。网络的丢包情况有3个特点:1、无线网络的固有丢包的情况多数是离散的随机丢包,根据实验统计,随机丢1~3个包的情况最多,丢包情况中96%为随机丢包;2、网络带宽不足时的丢包更多的是连续丢包,如果定义丢包个数为15~64为连续丢包(超过64定义为网络断连),根据实验统计,则丢包情况中4%为连续丢包;3、网络数据包过小,丢包率会大概率上升,这可能是网络设备包处理能力的问题。因此对于随机丢包,fec在视频通话中是非常有效的,但对于连续丢包fec是无效的。如果是网络拥塞导致的连续丢包,应通过降低码率的方式来避免,不需要使用fec。由此可见,在发生丢包时是否需要使用fec关系到网络延时和用户视频通信的质量,而fec本身的冗余包数量同样影响到用户的视频通信质量。现有技术中对于上述两方面的控制方法尚有不足。技术实现要素:针对现有技术中存在的上述问题,现提供一种旨在实现在视频通信过程中对数据传输网络中发生的丢包进行处理的计算量小,占用内存空间少的适用视频通信的丢包处理方法。具体技术方案如下:一种适用视频通信的丢包处理方法,应用于视频通信过程中,其中,丢包处理方法包括以下步骤,步骤s1:采集视频通信过程中在传输层中的环境数据;步骤s2:根据环境数据判断每一帧视频通信数据是否符合预设条件:若当前帧的视频通信数据符合预设条件,则转向步骤s3;若当前帧的视频通信数据不符合预设条件,则采用自动请求重发机制对丢包进行处理,并退出;步骤s3:计算得到当前帧的总包个数;步骤s4:根据总包个数处理得到前向纠错冗余数;步骤s5:根据前向纠错冗余数对当前帧进行前向纠错编码,以采用前向纠错机制对丢包进行处理。优选的,适用视频通信的丢包处理方法,其中,环境数据包括:当前时刻的总可用码率,当前帧的帧率,用于表示传输层是否开启自动请求重发机制的重传状态,用于表示当前帧是否为关键帧的关键帧类型,根据历史数据统计得到的丢包率,根据丢包率统计得到的包到达率,以及根据历史数据统计得到的网络往返延迟。优选的,适用视频通信的丢包处理方法,其中,步骤s2中,根据环境数据判断每一帧视频通信数据是否符合预设条件具体包括以下步骤:步骤s21:根据关键帧类型判断当前帧是否为关键帧;当当前帧为关键帧时,执行步骤s22;当当前帧不为关键帧时,执行步骤s23;步骤s22:根据重传状态判断是否启用自动请求重发机制;当未启用自动请求重发机制,执行步骤s3;当已启用自动请求重发机制,执行步骤s23;步骤s23:计算得到当前帧的字节数,并判断字节数是否大于预定数值;当字节数大于预定数值时,执行步骤s24;当字节数不大于预定数值时,采用自动请求重发机制对丢包进行处理,并退出;步骤s24:判断网络往返延迟是否超出预定范围;当网络往返延迟超出预定范围时,执行步骤s3;当网络往返延迟未超出预定范围时,采用自动请求重发机制对丢包进行处理,并退出。优选的,适用视频通信的丢包处理方法,其中,步骤s23中,依据下述公式计算得到当前帧的字节数:其中:b用于表示当前帧的字节数,tbr用于表示总可用码率,fps用于表示当前帧的每秒传输帧数。优选的,适用视频通信的丢包处理方法,其中,预定数值为0.8mtu,其中mtu表示最大传输单元。优选的,适用视频通信的丢包处理方法,其中,步骤s3中,依照下述公式计算得到当前帧的总包个数:其中:tq表示当前帧的总包个数,mtu表示最大传输单元。优选的,适用视频通信的丢包处理方法,其中,步骤s4具体包括以下步骤,步骤s41:判断总包个数的数量值是否超过预设的第一范围;当总包个数的数量值超过预设的第一范围时,建立第一关系模型,得到冗余包比例,随后转向步骤s42;当总包个数的数量值未超过预设的第一范围时时,建立第二关系模型,得到冗余包比例,随后转向步骤s42;步骤s42:根据冗余包比例计算得到前向纠错冗余数。优选的,适用视频通信的丢包处理方法,其中,第一关系模型为frpr(tq,plr)其中,rpri=min(rpri,50%),compensate=0.005tq0.5,rpr表示冗余包比例。优选的,适用视频通信的丢包处理方法,其中,第二关系模型为setrpri=0,tq=1iftq≤0.8;setrpri=0.25,tq=4if0.8<tq≤1.6;settq=4if1.6<tq≤4。优选的,适用视频通信的丢包处理方法,其中,步骤s42中,依照下述公式计算得到前向纠错冗余数:rq=tq*rpri。上述技术方案具有如下优点或有益效果:实现在视频通信过程中对数据传输网络中发生的丢包进行处理的计算量小,占用内存空间少。附图说明参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和阐述,并不构成对本发明范围的限制。图1为本发明适用视频通信的丢包处理方法实施例的主流程图;图2为本发明适用视频通信的丢包处理方法实施例的步骤s2的流程图;图3为本发明适用视频通信的丢包处理方法实施例的步骤s4的流程图;图4为本发明适用视频通信的丢包处理方法实施例的不同的包到达率par和不同总包数tq下的对应的前向纠错冗余数rq的折线图;图5为本发明适用视频通信的丢包处理方法实施例的不同的包到达率par和不同总包数tq下的对应的前向纠错冗余数rq的第一曲线图;图6为本发明适用视频通信的丢包处理方法实施例的不同的包到达率par和不同总包数tq下的对应的前向纠错冗余数rq的第二曲线图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。本发明包括一种适用视频通信的丢包处理方法,应用于视频通信过程中,如图1所示,丢包处理方法包括以下步骤,步骤s1:采集视频通信过程中在传输层中的环境数据;步骤s2:根据环境数据判断每一帧视频通信数据是否符合预设条件:若当前帧的视频通信数据符合预设条件,则转向步骤s3;若当前帧的视频通信数据不符合预设条件,则采用自动请求重发机制对丢包进行处理,并退出;步骤s3:计算得到当前帧的总包个数;步骤s4:根据总包个数处理得到前向纠错冗余数;步骤s5:根据前向纠错冗余数对当前帧进行前向纠错编码,以采用前向纠错机制对丢包进行处理。进一步地,在上述实施例中,环境数据包括:当前时刻的总可用码率,当前帧的帧率,用于表示传输层是否开启自动请求重发机制的重传状态,用于表示当前帧是否为关键帧的关键帧类型,根据历史数据统计得到的丢包率,根据丢包率统计得到的包到达率,以及根据历史数据统计得到的网络往返延迟。进一步地,在优选的实施方式中,当前时刻的总可用码率为当前预测可用带宽得到的总可用码率,其中包括编码的有效载荷(payload)、包头、fec(forwarderrorcorrection:前向纠错)冗余包,其中,当前时刻的总可用码率不包括arq包、控制包等;当前帧的帧率(frame-rate)是音视频引擎算法基于质量优化模型根据当前时刻的总可用码率、分辨率和编码量化精度目标计算出来的动态值。包到达率(par)=1-丢包率(plr),只需要对瞬时丢包进行过滤,只要统计随机丢包的丢包率就可以得到包到达率。其中当连续丢包超过15个以上的丢包不进行统计。进一步地,在上述实施例中,步骤s2中,如图2所示,根据环境数据判断每一帧视频通信数据是否符合预设条件具体包括以下步骤:步骤s21:根据关键帧类型判断当前帧是否为关键帧;当当前帧为关键帧时,执行步骤s22;当当前帧不为关键帧时,执行步骤s23;步骤s22:根据重传状态判断是否启用自动请求重发机制;当未启用自动请求重发机制,执行步骤s3;当已启用自动请求重发机制,执行步骤s23;步骤s23:计算得到当前帧的字节数,并判断字节数是否大于预定数值;当字节数大于预定数值时,执行步骤s24;当字节数不大于预定数值时,采用自动请求重发机制对丢包进行处理,并退出;步骤s24:判断网络往返延迟是否超出预定范围;当网络往返延迟超出预定范围时,执行步骤s3;当网络往返延迟未超出预定范围时,采用自动请求重发机制对丢包进行处理,并退出。进一步地,在上述实施例中,步骤s23中,依据下述公式计算得到当前帧的字节数:其中:b用于表示当前帧的字节数,tbr用于表示总可用码率,fps用于表示当前帧的每秒传输帧数。进一步地,在优选的实施方式中,预定数值为0.8mtu,其中mtu表示最大传输单元,mtu可以设置为1500;当当前帧的字节数b小于或等于0.8mtu时,表明此时每一帧的码率很低,不适合使用前向纠错方法对丢包进行处理,使用前向纠错方法会导致编码的有效载荷码率更低,进而导致视频质量过差,因此采用自动请求重发机制对丢包进行处理。当当前帧的字节数b大于0.8mtu,并且网络往返延迟较小(例如≤60)时,可以采用自动请求重发机制对丢包进行处理;当当前帧的字节数b大于0.8mtu,并且网络往返延迟过大时(例如>300),前向纠错方法对丢包进行处理。进一步地,在优选的实施方式中,预定范围包括第一阈值:60ms,第二阈值:300ms,当出现如下逻辑策略的情况时,可以继续计算得到当前帧的总包个数。逻辑策略如下所示:setfecrq=0ifrtt≤60||(b≤1.6mtu&&rtt≤300);(2)splitframetogettqifrtt>60&&(b>1.6mtu||rtt>300);(3)其中,上述公式(2)和上述公式(3)中的预定范围的第一阈值和第二阈值的数值可以进行调整,第一阈值的调整范围为20ms~100ms,第二阈值的调整范围为100ms~500ms。如果希望视频通信以流畅度优先,则应将上述第一阈值和第二阈值往低的趋势调整,如果希望视频通信以清晰度优先,则应将上述第一阈值和第二阈值往高的趋势调整。进一步地,在上述实施例中,步骤s3中,依照下述公式计算得到当前帧的总包个数:其中:tq表示当前帧的总包个数,mtu表示最大传输单元。进一步地,在上述实施例中,如图3所示,步骤s4具体包括以下步骤,步骤s41:判断总包个数的数量值是否超过预设的第一范围;当总包个数的数量值超过预设的第一范围时,建立第一关系模型,得到冗余包比例,随后转向步骤s42;当总包个数的数量值未超过预设的第一范围时时,建立第二关系模型,得到冗余包比例,随后转向步骤s42;步骤s42:根据冗余包比例计算得到前向纠错冗余数。进一步地,在优选的实施方式中,预设的第一范围为4~100,即总包个数的数量值大于或等于4,并且总包个数的数量值小于或等于100。进一步地,在上述实施例中,步骤s4中,可以采用下述公式计算得到前向纠错机冗余数:其中,far用于表示视频通信的过程中一个完整帧的帧到达率;par用于表示包到达率;n用于表示当前帧的总包个数;ii的取值范围为0~n-k,其中k用于表示当前帧原始包个数。其中,far可以被设定为99%,即设定far的目标为99%。当然,该目标是可变的,例如,若希望流畅度优先,则可以适当提高far的设定数值,例如设定为99.5%,若希望清晰度优先,则可以适当降低far的设定数值,例如设定为98.5%,在此不再赘述。然而,由于上述公式(5)中存在阶乘,对于求解rq较为困难。因此在申请技术方案中提供另外一种等效求解rq的方式,具体如下:通过设定不同的par、tq和rq来进行计算实验,如下表1所示的关联关系:tq23456789101520253035404550556065707580859095100par:85%12233444467891112131415161718192021222324par:90%112233334566789101011121313141515161718par:95%112222223344556677788999101011par:98%111111222223333444445555566表1该关联关系中,在相同的far要求下,tq和rq的对应关系如图4中所示,需要说明的是,当采集点越接近原点时,各个采集点越密集,因此在图4靠近原点处出现了层叠的情况。进一步地,采用下述公式将rq转换为冗余包比例(redundantpacketsratio,rpr):rpr=rq/tq;(6)并依据公式(6)和图4进一步得到rpr和tq之间的关联关系,如图5如图5中所示。随后,可以建立第一关系模型:其中,rpri=min(rpri,50%),compensate=0.005tq0.5。需要说明的是,由于最终求值rq是离散值,因此我们可以将这个模型离散化。其中,i的选择基于当前丢包率处于哪个区间,i的选择区间如下表2所示:itheactualplrmi1mi2plri1[0.1%,3%]0.5312-0.4922%2(3%,7%]0.6522-0.4045%3(7%,12%]0.6636-0.2910%4(12%,30%]0.7843-0.26115%表2上述第一关系模型可以求解得到当4≤tq≤100(预设的第一范围)时的rpr,对于上述范围之外的tq取值而言,可以采用下述第二关系模型(公式(8)-(10))处理得到rpr:setrpri=0,tq=1iftq≤0.8;(8)setrpri=0.25,tq=4if0.8<tq≤1.6;(9)settq=4if1.6<tq≤4。(10)即当总包个数的数量值小于或等于0.8时,将rpri设置为0,并将tq设置为1;当总包个数的数量值大于0.8并且小于等于1.6时,将rpri设置为0.25,并将tq设置为4;当总包个数的数量值大于1.6并且小于等于4时,将tq设置为4。进一步地,在上述实施例中,步骤s42中,在得到tq和rpr之后,就可以依照下述公式计算得到前向纠错冗余数rq:rq=tq*rpri。(11)最后,根据计算得到的前向纠错冗余数rq对当前帧进行fec编码,以采用fec机制对丢包进行处理。经过上述公式(7)-(11)计算得到的结果如下表3和图6中所示,其直观结果与严格的概率公式(5)较为接近,因此是可行的计算方法。plr\tq45678910152030508010015%0.500.500.500.490.470.460.450.420.360.350.320.290.2910%0.450.430.410.390.380.370.360.340.290.270.250.230.225%0.380.350.330.310.300.280.270.250.200.190.170.160.152%0.280.250.230.220.210.200.190.170.130.130.110.110.111%0.260.230.210.200.190.180.170.150.110.110.090.090.09表3进一步地,对上述计算结果进行测试,即计算rq是否能满足帧到达率far需求,计算结果如下表4所示,表4经上述测试结果可知,在带宽(码率)充足的情况下,经过fec保护,帧到达率far是能接近99%到达的,在带宽不足的情况下,帧到达率会降低。因此我们认为,经过上述丢包处理方法得到的丢包处理结果是具有较好效果的。以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1