基于移动网络丢包状态的直播视频数据传输差错控制方法转让专利

申请号 : CN201410386247.1

文献号 : CN104159166B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杜海鹏杜彪郑庆华李俊科吕宾张未展

申请人 : 西安交通大学

摘要 :

本发明公开了一种基于移动网络丢包状态的直播视频数据传输差错控制方法,其特点在于通过无线链路信噪比和移动网络拥塞丢包率,将移动网络丢包状态分为四种:链路误码丢包、连接中断丢包、拥塞-误码丢包、拥塞-中断丢包,针对不同的移动网络丢包状态,在应用层采用不同的差错控制方法;当移动网络处于链路误码丢包状态时,采用自适应动态FEC(前向纠错编码)差错控制方法;当移动网络处于连接中断丢包状态时,采用主动重传差错控制方法;当移动网络处于拥塞-误码或拥塞-中断丢包状态时,采用静态FEC差错控制方法;采用本发明可以有效地减少直播视频数据在传输过程中的丢包,提升移动直播视频的对终端用户的视觉体验。

权利要求 :

1.一种基于移动网络丢包状态的直播视频数据传输差错控制方法,当网络出现丢包时,通过无线链路信噪比和移动网络拥塞丢包率,将移动网络丢包状态分为四种:链路误码丢包、连接中断丢包、拥塞-误码丢包以及拥塞-中断丢包;针对不同的网络丢包状态,在应用层采用不同的差错控制机制,其特征在于,所述移动网络丢包状态认定步骤如下:Step1:数据转发中心(DTU)采用实时传输协议(Real-time Transport protocol,RTP)向移动终端发送编码好的视频数据包;

Step2:移动终端启动丢包统计定时器,并设定间隔时间为t;

Step3:移动终端接收到发送端发送的视频数据包后,计算连续丢包个数n,n=Ni-Ni-1-1,其中Ni表示当前到达接收端数据包的序列号,Ni-1表示最近一次到达接收端数据包的序列号,若n<0,表示该数据包失序,转Step5;若n=0,表示没有数据包丢失,转Step5;若n>0,表示有数据包丢失,则用当前时间减去时间戳字段值Ti,得到该数据包第i次丢包时的单向传输时延rotti,其中Ni和Ti均从RTP报头中获取;

Step4:利用Step3中获取的连续丢包个数n和数据单向传输时延rotti将丢包类型区分为拥塞丢包和无线链路传输错误丢包;

Step5:判断定时器是否超时,如果未超时则转Step3;否则,继续;

Step6:计算拥塞丢包率pc以及无线链路传输错误丢包率pw,其中,pc=Nc/N,pw=Ne/(N-Nc),Nc表示当前时间段t内拥塞丢包个数,N表示当前时间段t内发送的数据包总个数,Ne表示当前时间段t内无线丢包个数;

Step7:移动终端获取当前的信噪比值snr;

Step8:移动终端将pc、pw和snr值反馈给DTU;

Step9:DTU保存移动终端反馈回的pc、pw和snr值;

Step10:利用拥塞丢包率pc和snr值,对移动网络丢包状态进行判断,当snr>SNR,pcSNR,pc>=P时,判定当前移动网络丢包状态为拥塞-误码丢包状态,当snr=P时,判定当前移动网络丢包状态为拥塞-中断丢包状态,其中SNR和P都为常数,分别为无线链路信噪比阈值和拥塞丢包率阈值。

2.根据权利要求1所述基于移动网络丢包状态的直播视频数据传输差错控制方法,其特征在于,所述不同的差错控制机制为:当移动网络处于链路误码丢包状态时,采用自适应动态FEC差错控制方法;

当移动网络处于连接中断丢包状态时,采用主动重传差错控制方法;

当移动网络处于拥塞-误码或拥塞-中断丢包状态时,采用静态FEC差错控制方法。

3.根据权利要求2所述基于移动网络丢包状态的直播视频数据传输差错控制方法,其特征在于,所述自适应动态FEC差错控制方法的冗余度计算步骤如下:Step1:计算无线链路丢包个数期望值: 其中k为一次FEC编码的源视频数据包个数;

Step2:DTU设置FEC编码冗余度R值为 并使用该值对直播视频数据包进行FEC编码。

4.根据权利要求2所述基于移动网络丢包状态的直播视频数据传输差错控制方法,其特征在于,所述主动重传差错控制方法具体步骤如下:Step1:为使视频数据包丢失的概率降低到阈值以下,推导出重传次数的一个最小值,推导过程如下:式中,k′表示主动重传次数,P表示数据包丢失概率阈值,由于主动重传次数为整数,故k′的最小取值为Step2:为避免重传加重移动网络拥塞,推导出重传次数的一个最大值,推导过程如下:a)预测出当前移动网络的吞吐率B(pc),

式中,RTT表示往返时延,b表示每个ACK确认的数据包个数,T0表示超时时间,s表示数据包大小;

b)主动重传次数k′的最大值取 其中,rate表示当前的发送速率;

Step3:为在不引起移动网络拥塞的情况下,尽可能降低无线链路丢包率,主动重传次数k′的最终取值为Step4:DTU依据计算出的主动重传次数k′,采用实时传输协议将该时段内每个编码好的直播视频数据包向移动终端连续发送k′次。

5.根据权利要求4所述基于移动网络丢包状态的直播视频数据传输差错控制方法,其特征在于,所述b取值为1,T0取值为4*RTT。

6.根据权利要求2所述基于移动网络丢包状态的直播视频数据传输差错控制方法,其特征在于,所述静态FEC差错控制方法的步骤如下:Step1:计算静态FEC编码冗余度R'=k*Cr,其中k为一次FEC编码的源视频数据包个数,Cr为常数,表示FEC编码率;

Step2:DTU使用静态FEC编码冗余度R'对直播视频数据包进行FEC编码。

说明书 :

基于移动网络丢包状态的直播视频数据传输差错控制方法

技术领域

[0001] 本发明属于移动网络视频直播技术领域,涉及到视频数据的编解码以及传输技术,特别涉及到一种基于移动网络丢包状态的直播视频数据传输差错控制方法。

背景技术

[0002] 通信技术的日新月异带来了移动网络技术的大发展,移动网络已经进入到了3G、4G的普及阶段,新一代的移动网络的一大特点是带宽越来越大,与此同时,移动终端的硬件水平也越来越高,它们可承载的内容越来越丰富,主要体现在多媒体应用上,如移动网络视频直播。
[0003] 多媒体的传输对移动网络的服务质量带来了很大挑战,其原因在于多媒体数据的传输对时延、抖动、丢包、带宽都很敏感。例如对于视频会议系统,国际电信联盟ITU-T提出单向延时不大于150ms;视频数据的丢包率要少于1%。虽然,新一代的移动网络有很多优点,但其仍然没有解决无线链路不稳定的问题,在进行移动网络视频直播时,视频数据传输过程中很容易发生错误和丢失,这样会严重移动网络视频直播的观看体验。在有线网络中包丢失一般是由于网络拥塞造成的,而在移动网络中,丢包还可能是无线传输错误造成的,因而通过对移动网络丢包原因的区分以及计算无线链路的信噪比,从而预测移动网络不同的丢包状态,采用不同的差错控制策略,减少移动网络的丢包,提高移动网络视频直播的观看体验。
[0004] 据申请人检索和查新,检索到的以下几篇与本发明相关的属于移动视频直播领域的专利,它们分别是:
[0005] 1.发明专利2009101606785,无线视频通讯系统中差错控制的方法、装置及系统;
[0006] 2.发明专利2010102326055,一种视频传输的差错控制方法及系统;
[0007] 3.发明专利201310253438,基于信号强度的直播视频数据传输差错控制方法。
[0008] 上述专利1中,发明人公开了一种无线视频通讯系统中差错控制的方法,在所述方法中的终端通过向其他终端发送用于指示实施差错控制的消息,使其在本地实施差错控制,从而有效缩短差错控制所使用的时间,提高了无线视频系统的服务质量。
[0009] 上述专利2中。发明人公开了一种视频传输的差错控制方法及系统,所述方法包括误码掩盖过程,对受损宏块进行边缘集中程度的量化分析,以将受损宏块区分为平滑块或边缘块;对平滑块,采用双线性差值算法进行误码掩盖;对边缘块,采用方向插值算法进行误码掩盖,从而优化了视频传输图像解码质量,改善了视频解码效果。
[0010] 上述专利3中。发明人公开了一种基于信号强度的直播视频数据传输差错控制方法,通过计算视频数据包未按时到达移动终端的比率,将移动终端的网络状态分为波动和突发大量丢包两种,针对不同网络状态,采用不同的差错控制机制;当移动终端网络处于波动状态时,采用基于信号强度的动态FEC(前向纠错编码)策略;当移动终端网络处于突发大量丢包状态时,基于信号强度,采用延迟约束可选择性混合自动重传请求策略;从而有效地减少直播视频数据在传输过程中的丢包,提升移动终端用户对直播视频的视觉体验。
[0011] 上述相关发明专利都对视频传输质量的提高起到一定作用,但它们都没有对严重影响视频质量的丢包原因进行分析,本发明与上述专利的区别之一在于是将移动网络拥塞导致的丢包与非拥塞丢包区别对待,进而利用移动网络拥塞丢包率和无线链路信噪比对当前移动网络丢包状态进行区分;区别之二在于采用基于移动网络丢包率的自适应动态FEC和主动重传策略在不同移动网络丢包状态下进行差错控制。

发明内容

[0012] 本发明的目的在于提供一种基于移动网络丢包状态的直播视频数据传输差错控制方法,在充分有效利用移动网络带宽的同时,在时变的移动网络环境下,尽可能地纠正直播视频数据在移动网络传输过程中的错误,减少传输过程中的丢包,提升移动终端用户对直播视频的视觉体验。
[0013] 为了实现上述目的,本发明采用的技术方案是:
[0014] 一种基于移动网络丢包状态的直播视频数据传输差错控制方法,当网络出现丢包时,通过无线链路信噪比和移动网络拥塞丢包率,将移动网络丢包状态分为四种:链路误码丢包、连接中断丢包、拥塞-误码丢包以及拥塞-中断丢包;针对不同的网络丢包状态,在应用层采用不同的差错控制机制。
[0015] 而当移动网络状态良好(未出现丢包)时,DTU在应用层不对编码好的直播视频数据包做额外的处理,只是将按照其原本的顺序和大小向移动终端转发,这样可以尽可能提高网络带宽利用率和减少延时。
[0016] 所述移动网络丢包状态认定步骤如下:
[0017] Step1:数据转发中心(DTU)采用实时传输协议(Real-time Transport protocol,RTP)向移动终端发送编码好的视频数据包;
[0018] Step2:移动终端启动丢包统计定时器,并设定间隔时间为t;
[0019] Step3:移动终端接收到发送端发送的视频数据包后,计算连续丢包个数n,n=Ni-Ni-1-1,其中Ni表示当前到达接收端数据包的序列号,Ni-1表示最近一次到达接收端数据包的序列号,若n<0,表示该数据包失序,转Step5;若n=0,表示没有数据包丢失,转Step5;若n>0,表示有数据包丢失,则用当前时间减去时间戳字段值Ti,得到该数据包第i次丢包时的单向传输时延rotti,其中Ni和Ti均从RTP报头中获取;
[0020] Step4:利用Step3中获取的连续丢包个数n和数据单向传输时延rotti将丢包类型区分为拥塞丢包和无线链路传输错误丢包;
[0021] 区分的方法是根据公式:
[0022] n=1& &rotti
[0023] ||(n=2& &rotti
[0024] ||(n=3& &rotti
[0025] ||(n>3& &rotti
[0026] 若该公式结果为真,则判定为这n个连续包为无线链路传输错误丢包,否则判定为拥塞丢包,公式中rottmean表示单向传输时延的平均值,rottmean=(1-α)rottmean+α*rott,rottdev表示单向传输时延偏差;rottdev=(1-2α)rottdev+2α*|rott-rottmean|,α为比例系数因子。
[0027] Step5:判断定时器是否超时,如果未超时则转Step3;否则,继续;
[0028] Step6:计算拥塞丢包率pc以及无线链路传输错误丢包率pw,其中,pc=Nc/N,pw=Ne/(N-Nc),Nc表示当前时间段t内拥塞丢包个数,N表示当前时间段t内发送的数据包总个数,Ne表示当前时间段t内无线丢包个数;
[0029] Step7:移动终端获取当前的信噪比值snr;
[0030] Step8:移动终端将pc、pw和snr值反馈给DTU;
[0031] Step9:DTU保存移动终端反馈回的pc、pw和snr值;
[0032] Step10:利用拥塞丢包率pc和snr值,对移动网络丢包状态进行判断,当snr>SNR,pcSNR,pc>=P时,判定当前移动网络丢包状态为拥塞-误码丢包状态,当snr=P时,判定当前移动网络丢包状态为拥塞-中断丢包状态,其中SNR和P都为常数,分别为无线链路信噪比阈值和拥塞丢包率阈值。
[0033] 所述不同的差错控制机制为:
[0034] 当移动网络处于链路误码丢包状态时,采用自适应动态FEC(前向纠错编码)差错控制方法;
[0035] 当移动网络处于连接中断丢包状态时,采用主动重传差错控制方法;
[0036] 当移动网络处于拥塞-误码或拥塞-中断丢包状态时,采用静态FEC差错控制方法。
[0037] 所述自适应动态FEC差错控制方法的冗余度计算步骤如下:
[0038] Step1:计算无线链路丢包个数期望值: 其中k为一次FEC编码的源视频数据包个数;
[0039] Step2:DTU设置FEC编码冗余度R值为 并使用该值对直播视频数据包进行FEC编码。
[0040] 所述主动重传差错控制方法具体步骤如下:
[0041] Step1:为使视频数据包丢失的概率降低到阈值以下,推导出重传次数的一个最小值,推导过程如下:
[0042]
[0043] 式中,k′表示主动重传次数,P表示数据包丢失概率阈值,由于主动重传次数为整数,故k′的最小取值为
[0044] Step2:为避免重传加重移动网络拥塞,推导出重传次数的一个最大值,推导过程如下:
[0045] a)预测出当前移动网络的吞吐率B(pc),
[0046]
[0047] 式中,RTT表示往返时延,b表示每个ACK确认的数据包个数,通常取值为1,T0表示超时时间,通常取4*RTT,s表示数据包大小;
[0048] b)主动重传次数k′的最大值取 其中,rate表示当前的发送速率;
[0049] Step3:为在不引起移动网络拥塞的情况下,尽可能降低无线链路丢包率,主动重传次数k′的最终取值为
[0050] Step4:DTU依据计算出的主动重传次数k′,采用实时传输协议将该时段内每个编码好的直播视频数据包向移动终端连续发送k′次。
[0051] 所述静态FEC差错控制方法的步骤如下:
[0052] Step1:计算静态FEC编码冗余度R'=k*Cr,其中k为一次FEC编码的源视频数据包个数,Cr为常数,表示FEC编码率;
[0053] Step2:DTU使用静态FEC编码冗余度值R‘对直播视频数据包进行FEC编码。
[0054] 本发明的特点在于当移动网络直播视频数据发生丢包时,可以对不同的移动网络丢包状态,采用不同的差错控制机制;当移动网络处于链路误码丢包状态时,采用新的冗余数据包取值的自适应动态FEC策略;当移动网络处于连接中断丢包状态时,采用主动重传策略。采用本技术方案,可以有效提高移动网络直播视频的传输质量,进而提高用户观看体验。

附图说明

[0055] 图1为本发明基于移动网络丢包状态的直播视频数据传输差错控制方法的实例示意图。
[0056] 图2为本发明移动端视频数据接收子模块工作流程图。
[0057] 图3为本发明移动端视频数据丢包类型判断子模块工作流程图。
[0058] 图4为本发明移动端移动网络状态参数反馈子模块工作流程图。

具体实施方式

[0059] 为了增加对本发明的理解,下面结合附图与系统实施对本发明做进一步详细说明。
[0060] 如图1所示,本发明基于移动网络丢包状态的直播视频数据传输差错控制方法的实施由两部分构成,分别为发送端差错控制模块和接收端差错控制模块,它们分别部署在数据转发中心(DTU)和移动终端上。发送端主要由直播视频数据流接收模块(SM1)、移动网络丢包状态判断模块(SM2)、差错控制策略决策模块(SM3)和视频数据发送模块(SM4)构成;接收端主要由视频数据接收模块(RM1)、视频数据丢包类型判断模块(RM2)和移动网络状态参数反馈模块(RM3)构成。
[0061] 下面对本发明所述技术方案实施中各个模块功能和流程进行详细说明。
[0062] 1、发送端整体工作流程
[0063] Step1:接收来自直播端发送来的压缩后的直播视频基本数据流ES。
[0064] Step2:将基本数据流ES按照需要分成长度不等的数据包,并附上包头形成打包基本码流PES,并将PES包输入到差错控制策略决策模块。
[0065] Step3:移动网络丢包状态判断模块接收来自移动端的反馈参数,并以此为判断依据,将移动网络丢包状态分为链路误码丢包、连接中断丢包、拥塞-误码丢包以及拥塞-中断丢包四种状态,同时向差错控制策略决策模块发出动作命令。
[0066] Step4:差错控制决策模块根据所接受的动作命令将PES包封装成RTP数据包,并发往视频数据发送模块。
[0067] Step5:视频数据发送模块从发送缓冲队列依次取RTP包并发往接收端。
[0068] 2、发送端各模块详细工作流程
[0069] 发送端中模块SM1完成数据的接收与打包功能,模块SM2根据不同的网络状态向模块SM3发送决策动作命令,SM3根据SM2动作调用内部不同子模块进行差错控制,并向SM4输出RTP包,SM4负责按序发送直播视频数据包。
[0070] 其中SM1的详细工作过程如下:
[0071] Step1:开始侦听网络。
[0072] Step2:设置超时定时器,间隔period=1s。
[0073] Step3:是否接收到来自终端反馈的移动网络状态参数pc、pw、snr;如果接收到,表示移动网络发生丢包,转入Step4;如果没有,表示该段时间里没有发生移动网络丢包,转入Step5。
[0074] Step4:进入模块SM2,如果snr>SNR,pcSNR,pc>=P,判断当前移动网络丢包状态为拥塞-误码状态,或snr=P,判断当前移动网络丢包状态为拥塞-中断状态,向SM3发送动作代码SFEC,转Step6。
[0075] Step5:向SM3发送动作代码NE。
[0076] Step6:定时器是否超时,如果没有,转Step3;否则,转Step2。
[0077] 上述过程中动作代码AFEC表示SM3需要执行自适应动态FEC模块对PES包进行处理,IRT表示SM3需要执行主动重传模块对PES包处理,SFEC这表示SM3需要执行静态FEC模块对PES包处理,NE表示没有错误,SM3不需要对数据包进行额外处理。
[0078] 在SM3中,当执行自适应动态FEC模块时,其对数据的处理详细过程如下:
[0079] Step1:从SM1输入的PES包队列中取出k个数据包。
[0080] Step2:按本发明说明书前述公式 设置FEC编码冗余度
[0081] Step3:将这k个PES包,按冗余度R经过RS(Reed-Solomon)编码得到M=k+R个经FEC编码后的传输流TS包。
[0082] Step4:将这M个TS包按序封装成M个RTP包,并交给SM4模块。
[0083] 在SM3中,当执行静态FEC模块时,其对数据的处理与上述自适应动态FEC模块步骤相似,不同的是编码冗余度是一个常数,其值为R'=k*Cr。
[0084] 在SM3中,当执行主动重传模块时,其对数据的处理详细步骤如下:
[0085] Step1:从SM1输入的PES包队列中取出k个数据包。
[0086] Step2:计算每个包的重传次数k’,其取值为 且满足如下约束:
[0087] 1)
[0088] 2)
[0089] 式1)中,pw表示当前无线链路传输错误丢包率,k′表示重传次数,P表示数据包丢失概率阈值;
[0090] 式2)中,RTT表示往返时延,b表示每个ACK确认的数据包个数,通常取值为1,T0表示超时时间,通常取4*RTT,pc表示当前拥塞丢包率,s表示数据包大小,rate表示当前的发送速率。
[0091] Step3:将k个数据包中的每一个都复制k’份。
[0092] Step4:将这k*k’个数据包按序封装成RTP包,其中相同包有相同的序号,并交给SM4模块。
[0093] 在SM3中,当收到NE动作时,SM3只需要从SM1输入的PES包队列取k个,然后按序封装成RTP包,就可以交给SM4模块处理了。
[0094] SM4模块在其缓冲队列中依次读取由SM3模块输入的RTP包,并按序发往接收端。
[0095] 3.接收端整体工作流程
[0096] Step1:接收来自于DTU发送的直播视频数据包。
[0097] Step2:如果发生丢包,则进行丢包类型区分。
[0098] Step3:计算移动网络丢包状态参数,并反馈给DTU。
[0099] 4.接收端各模块详细工作流程
[0100] 接收端RM1模块主要完成直播数据包接收,连续丢包数的统计功能,并输出当前时段里总发包数N,连续丢包个数n,单向传输时延rotti到RM2模块中,其详细工作流程见附图2;当n>0时,RM2模块会被触发,RM2将按本发明前述公式(1)对丢包类型进行区分,同时输出该时段里无线丢包个数Ne和拥塞丢包个数Ne到模块RM3,其详细工作流程见附图3;RM3模块主要进行移动网络状态的参数计算,如无线丢包率pw和拥塞丢包率pc,无线链路信噪比snr,并将它们及时反馈给DTU,其详细工作流程见附图4。
[0101] 其中RM1的详细工作过程如下:
[0102] Step1:初始化RTP包接收缓冲队列。
[0103] Step2:初始化丢包统计参数N=Ni=Ni-1=Nc=Ne=n=0,i=1;其中N当前统计时间段内总的发包数,Ni为收到的第i个数据包的序号,Nc为拥塞丢包个数,Ne为错误丢包个数,n为连续丢包个数。
[0104] Step3:设置统计间隔定时器,间隔period=1s。
[0105] Step4:侦听接收缓冲队列。
[0106] Step5:从视频数据缓冲队列队首取出RTP包,提取包序号值Ni以及时间戳信息Ti,计算n=Ni-Ni-1-1,并保存Ti和n。
[0107] Step6:若n=0,则更新N=N+1,i++,转step7;若n<0,转step7;若n>0,计算单向传输时延rotti=Tcur-Ti,其中Tcur为当前时间,并更新N=N+n+1,i++,同时将rotti和n值一并交给RM2模块进行丢包类型区分,转step7。
[0108] Step8:判断直播是否结束,如果结束,则流程结束;否则,转step9。
[0109] Step9:统计间隔定时器是否超时,如果超时,转step2;否则,转step4。
[0110] 其中RM2的详细工作过程如下:
[0111] Step1:输入连续丢包个数n,以及单向传输时延rotti。
[0112] Step2:计算单向平均传输时延rottmean和单向传输时延偏差rottdev,其满足以下式子:
[0113] 1)rottmean=(1-α)rottmean+α*rott;
[0114] 2)rottdev=(1-2α)rottdev+2α*|rott-rottmean|;
[0115] 其中α为比例系数因子。
[0116] Step3:判断丢包类型,若下式:
[0117] n=1& &rotti
[0118] ||(n=2& &rotti
[0119] ||(n=3& &rotti
[0120] ||(n>3& &rotti
[0121] 为真,则更新Ne=Ne+n;否则,更新Nc=Nc+n。
[0122] Step4:输出Ne和Nc到RM3模块。
[0123] 其中RM3的详细工作过程如下:
[0124] Step1:输入该段时间里,总发包个数N,无线传输错误丢包个数Ne和拥塞丢包个数Nc。
[0125] Step2:计算无线丢包率pw=Nc/N以及拥塞丢包率pc=Ne/(N-Nc)。
[0126] Step3:计算当前无线链路信噪比snr。
[0127] Step4:保存当前snr、pw、pc,并反馈给发送端。