基于丢包区分的移动视频监控带宽自适应方法
【技术领域】
[0001]本发明属于无线传输技术领域,特别涉及一种基于丢包区分的移动视频监控带宽自适应方法。
【背景技术】
[0002]随着移动互联网的快速发展,视频监控行业正在经历着一次蜕变,视频监控业务正从传统的固网模式发展到现在的无线网络模式,用户对以手持终端作为视频监控客户端的需求也变得愈加强烈。
[0003]无线网络环境复杂,容易出现网络拥塞,而视频传输对网络拥塞、丢包等比较敏感,一旦出现网络拥塞、带宽不足,视频播放就会不流畅,出现马赛克,严重影响用户体验。因此,在移动视频监控系统中,如何保障在移动网络环境中数据发送的实时性,避免拥塞,实现客户端播放的流畅性,是设计者需要考虑的问题。
[0004]目前主流的流媒体传输协议有RTP (Real-time Transport Protocol实时传输协议)、RTCP (Real-time Transport Control Protocol 实时传输控制协议)。RTP对数据进行封包,提供端到端的数据传输功能,RTCP获取丢包、时延对RTP传输提供服务质量的保证。但RTP、RTCP是针对有线网络设计的,有线网络丢包类型只有拥塞丢包,而无线网络有拥塞丢包和无线链路丢包两种类型。如果在无线网络中仅将丢包归结于网络拥塞,当发生丢包时降低传输速率,而丢包状况没有解决,就会不断降低传输速率,使得传输速率维持在一个较低水平,严重降低网络吞吐量,信道利用率也下降。目前无线流媒体传输的丢包算区分法主要有两类:基于网关的代理方法和基于端到端的方法。基于网关代理的方法需要在基站或接入点保存大量流信息,造成网络结构改变,工作负担加重;而基于端到端的方法未对网络进行改变,没有额外的网络设施,比较适用。目前,主流的基于端到端的丢包区分算法有:Biaz、Spike、ZigZag等,Biaz算法是根据相邻两个数据包的间隔区分丢包类型,当相邻两个数据包间隔大于阈值时,判断为拥塞丢包反之无线链路丢包;而Spike、ZigZag算法是根据R0TT (Relative One way Trip Time,单向传输时延),R0TT比阈值大的时候判为拥塞丢包,反之为无线丢包,这几种算法存在的问题是:阈值确定比较单一、采用单个R0TT进行判别容易造成误判。
[0005]移动视频监控带宽自适应方法的设计需要考虑网络带宽、丢包区分和用户需求等多种因素,针对不同的网络环境设计自适应的控制机制。无线网络中丢包有拥塞丢包和由于多径效应、码间串扰引起的无线链路丢包,而传统的流媒体传输协议不具备丢包区分、带宽自适应等。
【发明内容】
[0006]本发明的目的在于针对已有技术存在的缺陷,提供一种基于丢包区分的移动视频监控带宽自适应方法,在无线网络不稳定的环境下,准确推断出拥塞丢包的丢包率,进而进行码流控制,保障客户端视频播放的流畅性。
[0007]为达到上述目的,本发明的构思是:针对无线视频传输丢包类型有拥塞丢包和无线链路丢包两种类型及根据丢包状况进行带宽自适应而发明,发明引入了丢包区分算法和带宽自适应机制。
[0008]根据上述发明构思,本发明采用下述技术方案:
[0009]—种基于丢包区分的移动视频监控带宽自适应方法,包含数据传输机制连接建立、数据传输丢包区分和数据传输带宽自适应三个过程,具体步骤如下:
[0010]a.所述数据传输机制连接建立包含的实现步骤:
[0011](a-Ι)、移动视频监控服务端初始化阶段,对指定端口进行监听等待新的连接的到来,客户端在访问时向指定端口发送请求即可;
[0012](a-2)、客户端发起包含有URL的DESCRIBE请求;
[0013](a-3)、服务端解析DESCRIBE请求,分析出所请求的资源,如果资源存在则以SDP (Sess1n Descript1n Protocol,会话描述协议)协议的形式生成媒体资源的信息,以文本形式附加在DESCRIBE请求的应答消息之后;
[0014](a-4)、客户端收到服务端发来的应答消息后,发起SETUP请求,请求会话建立并准备传输,SETUP命令包含了 RTP的传输协议,传输方式等信息;
[0015](a-5)、服务端收到客户端的SETUP请求后,生成一个会话序列号,将SETUP应答消息发送至客户端;
[0016](a-6)、客户端收到服务端发来的SETUP应答消息后,客户端将发出PLAY请求,目的是请求播放视频;
[0017](a-7)、服务端收到客户端的PLAY请求后,会向RTP模块发出消息,RTP模块将视频数据封装成RTP数据包,根据SETUP时指定的传输协议发送,同时RTCP也进入工作状态;
[0018](a-8)、客户端收到RTP数据包后,进行解码播放,如果客户端要结束会话,则向服务端发出TEARDOWN请求。
[0019]b.所述数据传输丢包区分的实现步骤:
[0020](b-Ι)、服务端记录上次发送的SR (send report)包,并接收客户端发来的RR (receiver report)包,并判断当前是否有丢包事件发生;
[0021](b-2)、根据 SR、RR 包,提取 RTP 包时间戳,计算 RTT(i) = Tarrive ⑴ _Tsend(i);其中RTT(i)表示第i个包的双向传输时延,TalT1TC(i)为第i个包到达时间,T_d(i)为第i个包发送时间;
[0022](b-3)、对 RTT(i)做平滑处理,计算 RTT (i) = (1_ γ ) *RTT (i) + γ *RTT (i_l),其中γ为平滑因子;
[0023](b-4)、根据公式计算 Bstart、Bend,Bstart= RTT _+α * (RTTnax-RTT_)、Bend=ΚΤΤ_+β *(RTT_-RTT_);其中RTTjP RTT _分别为统计时间内RTT最小值和最大值,α和β为调节因子;
[0024](b-5)、当检测到丢包事件时,判断RTT(i)与阈值的关系,如果大于BstaJlJ判断为拥塞丢包,如果小于BOTd则判为无线链路丢包,如果介于B start、BOTd之间则处于待定区;
[0025](b-6)、当检测到当前RTT(i)为待定区时,需要进一步做RTT变化趋势判断,计算RTT (i)与RTT (1-Ι)大小关系,如果RTT (i) >RTT (i_l),判为拥塞丢包,反之判为无线链路丢包;
[0026](b-7)根据丢包类型判断,统计丢包率,并根据丢包率判断当前网络状况为轻载、满载和过载。
[0027]c.所述数据传输带宽自适应的实现步骤:
[0028]c-Ι.根据相邻I帧之间的差别,判断为静态视频后带宽自适应的实现步骤:
[0029](c-1-l)、根据步骤2所述,依据丢包率大小判断当前网络负载状态,分别为网络过载、网络轻载和网络满载;
[0030](c-1-2)、判断为网络过载时,需要进一步判断是否满帧,如果满帧则降低30%帧率,反之丢弃下一个G0P区间内的所有I帧、P帧、B帧;
[0031](c-1-3)、判断为网络轻载时,需要进一步判断是否是最高分辨率,如果不是,则提高一级分辨率,反之保持参数不变;
[0032](c-1-4)、判断为网络满载时,保持参数不变。
[0033]c-2.根据相邻I帧之间的差别,判断为动态视频后带宽自适应的实现步骤:
[0034](c-2-l)、根据步骤2所述,依据丢包率大小判断当前网络负载状态,分别为网络过载、网络轻载和网络满载;
[0035](c-2-2)、判断为网络过载时,需要进一步判断是否是最高分辨率,如果是则降低一级分辨率,反之减小P帧增加B帧,降低传输速率;
[0036](c-2-3)、判断为网络轻载时,需要进一步判断是否满帧,如果满帧则进一步判断是否最高分辨率,如果是最高分辨率则参数不变,反之提高一级分辨率;如果不满帧,则提高帧数至满帧状态;
[0037](c-2-4)、判断为网络满载时,保持参数不变。
[0038]本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著技术进步:
[0039]本方法在网络状况不稳定的情况下,尽可能保持视频播放的流畅性,与以往的流媒体传输的带宽自适应方法相比,本发明方法引入了改进的Spike的丢包区分算法,能区别出拥塞丢包和无线链路丢包,进而准确根据丢包率判断当前网络负载状况。本发明方法在带宽自适应机制上根据相邻I帧的差别判断当前画面动态程度并分为静态和动态分别进行码流调整,并根据不同的网络负载状况采用适应的帧率、分辨率等;本发明方法具有准确度高、带宽适应性强等特点,是一种有效的应用于移动视频监控系统中的带宽自适应方法。
【附图说明】
[0040]图1为一种基于丢包区分的移动视频监控带宽自适应方法总体框架图。
[0041]图2为本发明数据传输建立阶段。
[0042]图3为本发明数据传输丢包区分流程图。
[0043]图4为本发明网络负载状况图。
[0044]图5为静态视频带宽自适应机制流程图。
[0045]图6为动态视频带宽自适应机制流程图。
【具体实施方式】
[0046]本发明的优选实施例结合附图详述如下:
[0047]根据图1描述总体框架图,可以看出,在经过RTSP控制层的身份认证并完成RTSP交互后,服务端才开始将采集编码后的数据经过RTP打包处理发给客户端。RTCP处理模块的主要作用是提供和处理反馈信息