视频技术
随着自动化技术和软硬件技术的不断发展,传统工业对于自动化技术的要求显著提高,极大地促进了视频监视技术的发展;同时由于“911”事件的影响,世界对于安全的注重超过以往任何时候,安全防护成了各项活动的重中之重。在工业中,仪器设备的正常运行对工厂的安全正常运行有着决定性的意义,所以很有必要对这些仪器、设备进行监视。在安防中,由于涉及到巨大的人身及财产伤害,对于监视的实时性以及准确性的要求不言而喻。基于此,视频监视技术取得了长足的发展。而在视频监视技术的发展过程中,监视视频的质量成为视频监视系统中最重要的部分。因此对监视视频质量的优化策略研究直接影响整个视频监视系统的性能。
1 存在的问题
监视视频的质量主要体现在实时性、流畅性和清晰度等性能指标上。在一般视频监视系统中,实时性主要由监视终端视频处理性能决定。实时性要求客户端软件以最快的速率进行网络视频数据解码。由于远程监视系统中,监视终端存在接收缓冲区,缓存网络数据流,因此实时性要求数据在缓冲区中几乎不进行缓存。而对于视频流畅性,主要由监视终端解码、显示速率与网络视频流接收速率的相对关系决定,当解码、显示速率比视频流接收速率高时,解码、显示会阻塞等待视频接收,由于此等待过程并非平均分布在每一帧,因此会造成播放视频流畅性问题。清晰度主要和视频数据的丢包率有关,在网络状况理想的情况下,丢包率主要与监视终端数据处理效率有关,当终端数据处理速率较低时,由于视频数据累积,会造成接收缓冲区溢出,从而导致丢包率升高,引起清晰度问题。在实际应用中,网络拥塞对丢包率影响很大,决定了视频的清晰度。
由上述分析可知,要想保证视频实时性能,必须提高视频终端的处理性能。而同时由于实时性和流畅性存在矛盾:实时性要求监视终端以最快速率进行数据处理;流畅性要求视频流进行缓冲,同时控制监视终端解码、显示速率。为了达到好的监视效果,必须找到均衡控制策略,一方面让视频进行缓冲,保证视频解码、显示不阻塞,另一方面保证数据快速解码,不产生累积时延。同时必须对网络拥塞进行抑制,以保证视频清晰度。
2 优化控制策略
2.1 零拷贝缓冲区策略
流媒体编程中处理的数据量非常大,减少数据拷贝可以提高客户端对流媒体数据的处理速度、降低时延以及减轻处理器的负载;也可以减少客户端因为数据拷贝,来不及处理后续数据包而带来的丢包现象。从而节约系统资源,提高流媒体的播放质量。零拷贝缓冲区策略通过合理的缓冲区设计,能减少90%的数据拷贝工作,大大提高系统性能。
零拷贝缓冲区策略合并接收缓冲区和解码器输入缓冲区,使得缓冲区间的数据拷贝操作变成指针操作。
零拷贝缓冲区原理图如图1所示,Read-ptr:视频解码指针,指向待解码的数据;Write_ptr:接收数据指针,指向网络数据的存放地址;valid_data_ptr:有效缓冲区首地址,网络数据存放的首地址。备用缓冲区不存放从网络接收的视频流,当如图2所示,有效数据分为2块时,并且解码数据分别存在于缓冲区中的2个部分,则传递给解码器Read-ptr并不能满足要求,因此需要使用到备用缓冲区,具体策略是将Read-ptr后的数据拷贝到Buffer_ptr里,使得解码数据变成一块连续缓冲区。由于在视频监视系统中,一帧数据的数据量比接收缓冲区小得多,因此发生这种拷贝的几率很少,而且每次拷贝的数据量也很少,能大大优化系统性能,提高监视终端解码、显示的效率。
2.2 网络拥塞抑制策略
当通信网络中有太多的分组需要传输时,会使整个网络的性能降低,传输质量下降,产生网络拥塞现象。当发生网络拥塞时,如果不能及时地对网络拥塞进行抑制,视频延时会上升、网络丢包率急剧增长,同时也会带来一定的流畅性问题,给视频质量造成很大的影响。对于拥塞的解决办法无非只有2种:增加网络资源和降低负荷。前者由整个互连网络决定,没有办法进行控制,后者由每个用户决定。当出现网络拥塞时,适当地减少服务器端视频采集的速率,这样既减少了传输的数据,降低了网络负载,同时又降低了客户端数据的需求,减少了视频质量下降的几率。
在RTP协议中,使用RTCP(实时传送控制协议)来进行流量控制和拥塞控制。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中有5种不同类型的RTCP控制分组,其中有2种:SR(Sender Report)发送者报告,用于当前发送者的发送情况和接收情况的统计;RR(Receiver Report)接受者报告,用于当前接受者的接受情况的统计。
RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。
在客户端可以周期性统计接收数据包的总个数以及丢失数据包的个数,然后按照RTCP的数据包格式填充数据包,发送至服务器端,然后服务器端通过相应的流量控制算法,利用客户端传输过来的具体参数,则可以动态的调节数据包的采集以及发送速率。
2.3 编解码速率协调策略
在一般视频监视系统,监视终端进行视频解码时,为了确保每帧数据的完整性,需要判断接收缓冲区中数据是否达到一定要求Limit_ A,但是由于监视图像在背景固定和背景剧烈运动时,每帧数据量相差非常大,剧烈运动时的数量量往往是静止时的几倍,因此对于Limit_A的选择比较困难。当Limit_A选择较小时,在剧烈运动的情况下,解码数据可能不是完整一帧,造成视频质量问题;当Limit_A选择较大时,在几乎静止的情况下,可能会造成视频的停顿以及长时间的视频延时。因此Limit_A必须是动态变化的,同时缓冲区中的数据由于静止和运动时的数据量不同,数据量也必须进行严格的控制,防止在静止情况下出现大规模延时。
在监视系统中,接收缓冲区就像一个漏斗,从网络接收数据写入缓冲区就像往漏斗里注水,从缓冲区取出数据进行解码播放,就像从漏斗出水一样。在一个漏斗中,当入水和出水相同时,不仅能使水流顺畅,同时漏斗里的储水量也几乎恒定,如图3所示。当然在监视的系统中,由于存在时间差(往缓冲区里存储的帧与从缓冲区中取出的帧在时间上存在着差异),“出水速率”和“入水速率”(帧的大小)往往不相同;当视频从运动变为静止时,“出水速率”会比“入水速率”大,当视频从静止变为运动时,“出水速率”会比“入水速率”小。因此不能简单地套用此模型。
由于视频显示速度不是以比特(bit)为单位而是以“f/s”为单位,所以当“水”的单位变为“f”,相应的“出水速率”和“入水速率”也变成“f/s”,则整个系统模型变为:当输入帧率和输出帧率相同时,就可以保证缓冲区中具有恒定的帧数stay_M,如图4所示。同时只要确保Limit_A的值正确,那么每帧数据都可以是完整的,视频也会是流畅、完整的。
输入速率就是从网络接收视频帧的速率,理想地来讲,也即是监视服务器采集、发送视频的速率;而输出速率应是从缓冲区取出数据进行解码的速率,由于视频质量最后呈现给用户的部分是显示部分,因此将输出速率改为显示速率更为妥当,同时为了保证视频帧的完整性,解码速率也要进行适当的控制。
此策略的实施办法就是控制服务器端视频采集、编码的速率和客户端视频显示的速率,使它们速度相同,同时在Limit_A的选取上,根据视频连续性的关系,由实际消耗数据决定下一帧Limit_A的值,同时平滑解码速率,使得每帧的解码过程能够平均分布。
3 实验结果分析
本文的测试环境为:监视服务器运行Davinci开发平台,具有ARM+DSP双核结构,ARM子系统进行常规处理,DSP子系统进行快速数字信号处理。ARM子系统最高主频为297 MHz,DSP子系统最高主频为594 MHz,最高速度为每秒4 752百万条指令;监视终端运行于PC机,处理器为奔腾42.8 GHz,内存1 GB,显存256 MB,内置100 Mb/s网卡,160 GB硬盘,操作系统为Windows XP。监视服务器与监视终端通过校园网络相连。测试内容主要是针对客户端发出连接请求后5 s,10 s,30 s,60 s,90 s,120 s,150 s,200 s,250 s,300 s时的系统状态:主要包括时延、丢包率以及产生停顿现象帧的百分比率。测试过程为单用户情况下,对优化前后视频质量进行比较。如图5所示为优化前、后的时延变化图。从图中可以观察出,优化前时延随着监视时间的增加而增长,这是由于监视终端缓冲区之间拷贝操作过多,造成客户端解码显示、速度相对较低,因而引起监视终端累积延时。而优化后的时延基本稳定,大概在1.5 s左右,没有累积时延。这是由于缓冲区策略的控制,监视终端视频解码、显示速度有了大幅提高,同时在编解码速率协调策略的控制下,视频编解码速度相对比较平均,有效的抑制了累积时延,保证了系统实时性。因此优化控制策略对于时延的控制十分有效。
如图6所示为优化前、后的丢包率变化图。从图中可以观察出,优化前,系统丢包率在开始监视的时比较稳定,但随着监视时间的增长,丢包率迅速增加。由于累积时延存在,缓冲区必定会溢出,因此导致丢包率迅速增加。而在优化后的系统中,由于不存在累积时延,因此系统缓冲区利用率比较小,不会造成由于缓冲区溢出而产生的丢包现象,因此确保了系统的监视视频质量。在优化后的系统中,丢包率依然存在较大波动,这是因为在网络拥塞的情况下,不可避免会产生较大丢包率,但是由于拥塞控制的作用,丢包率会受到抑制,缓慢恢复到正常水平。
图7为停顿帧百分比的变化图。从图中可以看出,优化后的停顿帧百分比比优化前有了较大的提升,优化后的停顿帧百分比大概稳定在1.5%左右。随着视频实时性的提高,视频缓冲的时间也大大减小,缓冲区数据量也大大减小,因此造成监视终端解码、线程间歇性等待网络数据流,从而造成停顿百分比增高,视频出现停顿现象。由于优化后视频停顿百分比基本稳定且居于可以接受的范围,这也进一步表明编解码速率协调策略进行了有效的控制。
4 结语
视频监视系统中,对系统软件硬件设计实现完成后,很重要的工作就是对监视视频质量的优化,只有监视视频的质量达到要求,系统才能满足实际应用的需求。因此本文基于这个问题,首先分析了监视视频性能指标的影响因素,然后提出2种优化策略,实验结果表明,这两种策略有效地提高了监视视频的质量,保证了监视视频的实时性,流畅性和高清晰度。
全部0条评论
快来发表一下你的评论吧 !