一种针对窄带网络情况下视频传输的调节控制方法
技术领域
本发明涉及一种针对窄带网络情况下视频传输的调节策略和控制方法主要涉及音视频等媒体数据网络传输技术,主要适用于安防视频监控领域。
背景技术
1、近些年来由于信息技术的发展和家庭网络的普及,几乎家家都通互联网,同时大部分手机也都开通3G网络,所以对于视频监控领域的也提出了随时随地都要能够进行掌控的期望。
2、当前的视频压缩技术虽然已得到很大的提升,即在低码率的情况下所能达到的图像效果也已经较之前算法有很大的增强。但由于我们的网络环境仍然并不是很成熟,大部分地区的网络带宽还是没有办法满足传输高清视频的要求。所以为保证用户能够实时的进行视频监控,必须要针对窄带情况下的视频传输做一定调节和控制。
3、对于3G等无线网络环境,由于其传输信号在开放环境中传播,更加容易受到干扰和影响,而导致网络带宽波动比较大的。所以如何针对这种网络情况作出实时和合理的调节也至关重要。
4、在有限的网络带宽下,如何进行合理的视频调节和发送控制来达到更高的带宽利用率,并且在一定的传输数据量的基础上,结合音视频数据固有的特征,采用“抓主要舍次要”的原则使用户达到更好的感官效果。这也是推动视频监控的网络化普及的过程中需要解决的问题。
5、为了应对不同场合的监控需求,有画质优先、流畅优先等控制选项。他们分别采用控制帧率或控制码率的手段,或者选择在采集端丢帧和发送端丢帧等策略。那么如何快速而又稳定的进行调节控制,使需要发送的数据量和当前带宽匹配,以达到不同的调节效果,这也是一个需要重要的课题。
发明内容
本发明是要克服上述现有技术中存在的不足,而提供一种能准确预测网络带宽并相对快速和平稳的跟踪当前网络带宽情况,针对窄带网络情况下视频传输的调节控制方法。
本发明采用的技术方案是:本发明所述的针对窄带网络情况下视频传输的调节控制方法,该方法包括网络带宽预测、目标码率计算和节流配置三个步骤;所述的网络带宽预测是指根据前一个周期所得的网络发送的统计值来预测当前的网络带宽;所述的目标码率计算是指根据前一个周期所得的网络发送的统计值计算目标码率;所述的节流配置是指根据窄带策略采用不同的丢帧和降码率方式而达到画质优先、流畅优先和网传优先三种方式;所述的统计值包括网络发送速度、网络的发送阻塞程度、以及队列现存数据量。
所述的网络带宽预测:当统计值中的队列现存数据量大于设定阈值时,则将统计值中的网络发送速度作为预测所得的当前网络带宽;当统计值中的发送速度大于上一个预测周期计算得到的网络带宽时,将统计值中的发送速度就作为预测所得的当前网络带宽。
所述的目标码率计算方法:当处于稳定状态时目标码率保持不变,按计算公式:目标码率=网络带宽;当处于拥塞状态时目标码率等于在上一步中预测出来的网络带宽减去一定的拥塞比例,计算公式:目标码率=网络带宽-网络带宽×拥塞百分比;当处于非拥塞状态时目标码率等于当前目标码率自己增加一定的上调比例,计算公式:目标码率=当前目标码率+当前目标码率×上调比例。
所述的拥塞百分比为轻拥塞时取10%,重拥塞时取30%;所述的上调比例为5%~30%。
本发明还在目标码率计算和节流配置中间增设一个根据误差码率变化的开环补偿环节。
所述开环补偿的计算公式:补偿后目标码率=目标码率+偏差;所述的偏差是指设定到编码器中的码率和编码器产生的实际码率之间的偏差。
本发明的有益效果是:与现有技术相比,针对常用的有线网络,本方法能够较为准确的预测出当前的网络带宽,并且能够相对快速而平稳的跟踪当前的实际网络带宽,即充分的发挥限定带宽情况下的数据传输的效率,且能够快速而且准确的控制和调节视频源的所产生的数据量,使之实时的和当前有效带宽进行匹配。提供较快的调节时间和相对较小的超调量使实际监控效果做到较优。
附图说明
图1是本发明的系统框图。
图2是本发明的状态转换图。
图3是本发明的调节流程图。
具体实施方式
下面将结合附图对本发明作详细的介绍:如图1所示,一种针对窄带网络情况下视频传输的调节控制方法的主要功能框图。本方法主体调节过程分成如下几个步骤,带宽预测、目标码率计算和节流配置这样三个大的阶段。上一个步骤的计算结果作为下一个步骤的计算输入。
所述的网络带宽预测是指根据前一个周期所得的网络发送的统计值来预测当前的网络带宽,当统计值中的队列现存数据量大于设定阈值时,则将统计值中的网络发送速度作为预测所得的当前网络带宽;当统计值中的发送速度大于上一个预测周期计算得到的网络带宽时,将统计值中的发送速度就作为预测所得的当前网络带宽。这里的统计值是指:选用一定的时间间隔作为一个调节周期,在每一调节周期内,实时统计网络发送的情况,统计值包括,网络发送速度、网络的发送阻塞程度(通过计算用户放入到发送队列中的数据量和成功从发送队列中发送出去的数据量的比值得到)、以及队列现存数据量。根据这些统计信息来对网络状态的进行判断,以快速的达到网络调节的动态平衡。在进行数据统计时,采用同时参考当前队列延时状态和发送阻塞程度这样两个参考量,前者作为当前状态的判断依据,后者作为发展趋势的判断依据,从多维度的观测网络状态,以提前估算变化趋势,在调节的实时性和鲁棒性上同时有较大的改善。
如图3所示,详细描述了各个核心环节的工作流程。本方法主体调节过程分成如下几个步骤:
1、网络带宽预测:根据前一个周期所得的网络发送的统计值来预测当前的网络带宽。情况一,当统计值中的队列现存数据量大于设定阈值(可选固定值)时,则将统计值中的网络发送速度就作为预测所得的当前网络带宽。情况二,当统计值中的发送速度大于上一个预测周期计算得到的网络带宽时,则将统计值中的发送速度就作为预测所得的当前网络带宽。这个预测出来的带宽值的精确度非常重要,他用来作为后续计算的依据。结合各周期实时数据统计的结果,动态更新当前带宽的预测值,并针对一些极低带宽的情况的特殊分析,能做到适应各种网络环境的需求。
2、目标码率计算:根据前一个周期所得的网络发送的统计值计算目标码率。首先,根据统计值中的发送阻塞程度和队列现存数据量的状态,将网络状态划分为非阻塞无延时、非阻塞轻延时、非阻塞重延时、阻塞无延时、阻塞轻延时以及阻塞重延时这样六个调节状态。如图2所示,这六个状态又分为稳定态、拥塞态和非拥塞态这样三大类。
情况一,当处于稳定状态时目标码率保持不变,按计算公式:目标码率=网络带宽。情况二,当处于拥塞状态时目标码率等于在上一步中预测出来的网络带宽减去一定的拥塞比例,按计算公式:目标码率=网络带宽-网络带宽×拥塞百分比。其中拥塞百分比取值可采用如下推荐值,轻拥塞时取10%,重拥塞时取30%。情况三,当处于非拥塞状态时目标码率等于当前目标码率自己增加一定的上调比例,按计算公式:目标码率=目标码率+目标码率×上调比例。其中上调比例可取5%-30%之间,前几次上调比例适当取低值,后几次适当取高值。
3、开环补偿:由于配置码率值和实际码率值之间可能会存在一些偏差,所以在每一调节周期内,需要计算设定到编码器中的码率和编码器产生的实际码率之间的偏差,针对一些单调场景或者特殊复杂场景,对实际码流和配置码率相差较大的情况进行了控制量补偿,以抵消实际码率和配置码率之间的偏差,以使达到调节和控制效果更加准确的目标。按计算公式:补偿后目标码率=目标码率+偏差。该算式所得的补偿后目标码率就作为后面节流配置的输入。
4、节流配置:采用不同的丢帧和降码率方式,提供画质优先、流畅优先和网传优先三种控制策略,以达到不同的调节效果使其适用于不同客户的监控要求。
而上面所列策略的不同之处就是在执行力分配的时候加以区别。当控制策略为画质优先的时候,帧率和码率保持不变,仅通过调节丢包率来达到控制发送数据量的效果,即发送端丢帧的方式。丢包率计算公式:丢包率=补偿后目标码率/编码器实际码率(百分比)。当控制策略为流畅优先的时候,则降低编码器的画质,即不降帧率降码率。计算公式:丢包率=0(不丢包);帧率=不变;码率=补偿后目标码率。当控制策略为网传优先的时候,则采用采集端降帧的方式来降低实际输出码率。丢包率==0(不丢包);码率=补偿后目标码率;帧率=配置帧率×补偿后目标码率/编码器实际码率(百分比)。
针对3G等无线网络环境,由于其本身扰动比较的大,所以在调节的过程中,我们采用采用"调一步,看两下"的策略,即进行一次节流配置之后等待两个统计周期,以应对系统反应特征上的滞后效应。
5、控制输出:此步骤仅将前步计算所得的帧率、码率、丢包率等信息通知到具体的执行机构。
如图2所示,描述了当前网络状态的状态转换图。当状态出现在稳定态左侧的非拥塞态时,要上调目标码率值,反之当状态出现在稳定态右侧的拥塞态时,要上下调目标码率值,以使之。总之调节的目标是就是要让系统一直处于其中非阻塞轻延时和阻塞无延时这两个稳定态之间,保持动态平衡。
在基于TCP传输协议或者安全UDP协议的应用中,在算法本身采用同时参考当前阻塞状态和未来阻塞趋势两个参考量,结合相应的调节逻辑,使算法在调节控制的实时性和鲁棒性上同时有较大的改善。