3G无线视频监控系统设计
扫描二维码
随时随地手机看文章
引言
本文针对网络视频监控设备的实际应用需求,融合视频压缩、嵌入式系统无线通信等新技术,设计实现了基于3G技术的H.264无线视频监控系统。由于H.264标准中码率控制策略过于强调通用性而没有考虑无线网络的误码率高、抖动性大以及嵌入式终端处理能力有限的因素,而本系统在实现了H.264标准中码率控制策略的基础上进行了优化,增强了系统的稳定性。
1 视频监控系统总体结构
视频监控系统由视频拍摄节点、视频采集控制模块、网络代理模块和观看终端组成。其中,拍摄节点为高精度摄像机,负责采集原始视频;视频采集控制模块由采集卡以及控制软件组成,采集卡安装在嵌入式主板上,把摄像机采集的原始视频数据压缩成H.264格式的码流并回调给系统处理;控制软件运行在嵌入式Linux系统上,通过采集卡的驱动程序获取压缩后的H.264格式的码流,并控制与网络代理模块的连接以及数据和命令的传输及响应,如将压缩后的码流传输给网络代理,对某个摄像机通过串口发控制命令;网络代理模块负责与视频观看终端进行网络连接的管理以及控制命令和视频数据的传输;观看终端为主流的基于Symbian操作系统的智能手机。
2 系统硬件构成及主要模块
手机视频监控系统的硬件环境由摄像机、采集卡、嵌入式主板以及智能手机组成。摄像机使用的是SONYFCB2EX480CP;嵌入式主板使用的是威盛EPIANR系列Nano2ITX嵌入式主板,型号为EPIANR10000EG;智能手机使用当前主流的基于Symbian操作系统的手机诺基亚N95。系统框图如图1所示,拍摄节点为可控制摄像头。下面主要介绍视频采集控制模块和网络代理模块的功能及构成。
2.1 视频采集控制
视频采集控制模块主要负责视频的采集、压缩和控制命令的响应,采集视频时主要负责采集卡的启动、初始化和各种控制操作,同时也负责摄像头相关的一些控制操作。具体的软件构架如图2所示。其中:NCCMain模块负责管理各个子模块,打开Socket监听7020端口,当有从网络代理模块的连接请求时,则响应并接收数据;数据处理模块负责处理各种命令(如视频的开启和焦距调整命令),并对这些命令发送确认消息进行响应;RS2232串口线控制模块通过RS2232串口线控制摄像机的拍摄焦距,以响应焦距调整命令;板卡采集管理模块主要负责板卡的初始化、采集信道的开启、H.264各种参数(I、P帧的间距、量化参数、编码格式(CIF、QCIF)等)的设置、回调函数的设置,与代理进行连接从而向代理发送视频流等操作。该模块基于采集卡开发包,通过接口调用厂商提供的驱动程序来实现各种功能。
该模块的工作流程如下:
a)调用厂商提供的驱动程序设置视频采集的初始参数;
b)启动网络管理程序,打开套接字监听7020端口,当收到连接请求便响应连接请求并接收命令,收到命令后调用命令处理模块,根据不同命令进行不同处理;
c)当收到启动视频命令,向代理发连接请求,请求响应后连接建立,通过该连接向代理发送视频数据,并将连接描述符保存到转发表中;
d)当收到视频关闭命令,关闭与代理的视频传输连接,将转发表对应的表项清空;
e)当收到焦距调整命令后,调用RS2232串口控制模块设置摄像头的拍摄焦距,然后与网络代理监听的7005端口建立连接,将当前的焦距级数信息报告给网络代理。
2.2 网络代理
网络代理模块主要负责响应手持设备的连接请求和控制命令,并向其发送视频数据,它又包含以下子模块:
a)连接请求监听模块。该模块作为一个单独的线程,监听9000端口,如收到手持设备的代理信息请求命令则回送一个确认消息。
b)控制命令处理模块。它负责处理手持设备发来的各种命令,并向视频采集控制模块发送对应的处理命令;接收视频采集控制模块的命令响应,并对手持设备的命令作相应的响应。
c)视频数据收发模块。当接收到来自视频采集控制模块的H.264视频码流便将此视频数据流转发给发出点播命令的手持设备。网络代理模块的结构关系如图3所示。
2.3 视频监控系统通信流程
无线视频监控系统的总体流程如下:
a)手持设备接入网络。手持设备通过3G无线网络跨过移动网关接入有线网,与视频服务网络代理交互,注册自己的信息,并从代理节点得到网络中采集设备的信息。
b)进行视频浏览操作。手持设备接入网络后,可根据需要进行视频浏览,用户选定要进行浏览的节点和摄像头,向其发送控制命令,开启摄像头进行采集,得到的视频数据通过视频服务网络代理经3G网络传输给手持设备,在手持设备上进行观看。
c)进行视频控制操作。手持设备获得拍摄节点视频后,可根据需要对拍摄节点进行控制以获取更感兴趣的视频区域,如用户对拍摄节点更远处的场景感兴趣,可发送放大指令,让采集视频的摄像机向远处变焦;用户也可以根据自己的需要发送摄像机或节点切换指令给代理,代理进行响应并按用户需求启动相应的摄像机。
3 码率控制优化算法
在H.264标准中,码率控制是根据当前的带宽和缓冲区使用情况来动态地调节量化参数等系数实现的。考虑到移动终端的处理能力差异大以及无线网络误码率高抖动大等因素,本系统在实现了H.264标准中码率控制策略的基础上进行了优化,即在码率控制过程中,不仅考虑到带宽和缓冲区的使用度,还结合终端的视频处理能力以及无线网络的状况,动态地调节编码器的参数,此外,增加了跳帧策略,并结合本系统优化了跳帧策略,从而达到更好的码率控制效果。3.1 移动终端反馈信息优化
H.264标准中,码率控制根据式(1)计算第i个z帧组的第j帧配比特数:
其中:u(ni,j)表示编码第i组第j帧时信道可获带宽;Fr表示预定帧率;Tbl(ni,j)表示第i个帧组编码第j帧时目标缓冲区的使用量;Bc(ni,j)表示编码完第j-1帧时缓冲区的占用量。
式(1)强调通用性而没有对无线环境以及嵌入式设备进行相关处理。本文结合无线网络误码率高以及移动终端处理能力弱的特点对标准中算法进行了优化。首先移动终端统计误码率和丢包率,分别记为Ei,j和Li,j,并设定一个值Mi,j表示移动终端反馈的其缓冲使用度。移动终端定时把几项数据反馈给网络代理模块,网络代理根据移动终端的反馈信息重新对网络带宽可用度进行评估并对原算法公式进行调整,计算式为:
其中:BWij表示根据移动终端反馈信息获取的当前带宽可用度;γi,j表示移动终端承载能力因子;β1、β2、β3和β4为加权系数。在帧组层码率控制计算第j帧分配的码字时把原算法的式(1)调整为式(4)。
3.2 跳帧
为了避免溢出,当缓存区内比特数超过缓存区空间的85%时,跳过当前帧而不对其进行编码,直到其低于临界值后再进行编码。在H.264码率控制算法的第二步中,根据目标缓存使用量、帧率、可用带宽和实际缓存占用度以及当前编码图像的复杂度,可以由下式计算得到第i个帧组第j帧的目标比特数,计算式如下:
其中:。f(ni,j)表示考虑剩余比特数和图像复杂度后应该增加的比特数;γ为一常数,一般取值0.5,当没有B帧的情况下取值0.25;.f(ni,j)与式(1)的意义相同。本文利用该公式结果进行码率控制的同时,优化跳帧策略,即当预测的码率加上当前缓冲区使用量大于预定阈值Kmax(目前定位为95%)时,可进行主动丢帧处理,即如果不是i帧,就将其丢掉,不作编码处理。
计算如下:
当收到移动终端的反馈值M大于85%时,同样采取跳帧策略,避免造成移动终端缓冲区不够的丢帧现象发生,因为丢帧丢的如果是i帧,会影响后续视频帧的重建。该策略可以通过跳过一些复杂度较低、对于整个序列而言并不重要的图像来为后面复杂度较高、不能丢失的图像留出缓存区空间。
4 测试结果
针对本文的无线视频系统和优化算法,主要测试系统总体性能和码率控制优化的效果,码率控制的结果主要以传输比特数和PSNR值来衡量。在接收端程序中加入了iBufSizeTotal变量,用来统计发送的数据大小的总和;在拍摄端加入了编码启动时间iTimeStart和编码结束时间iTimeEnd,并加入了变量iFrameCount来统计共编码了多少帧。针对计算码率控制的效果,计算码率控制算法优化前和优化后平均每秒的输出比特数(码率),计算式如下:
针对编码优化的效果计算出编码器优化前后编码的平均每秒编码帧数(帧率),计算式如下所示:
在进行系统的测试时,将拍摄节点放置在以下四种背景环境中:
a)纹理简单,运动缓慢;
b)纹理比较丰富,运动平缓;
c)纹理丰富,运动中等;
d)纹理复杂,运动剧烈。拍摄的摄像头采样模式均设为YUV的4∶2∶0格式。表1显示了编码器优化前后的四种背景下每秒帧率的情况。
对于码率控制优化算法实验的结果通过表格的形式给出。
表2给出了标准中原码率控制算法和本文提出的算法对于六种标准序列在不同目标码率和帧率下的实际编码码率和平均重建图像的峰值信噪比PSNR值的测试结果;表3给出了原标准算法和本文算法对应的比特率偏移与平均PSNR值差值比较。
从表3中可以看出,本文提出的算法可以更为合理地控制码率,六个序列中四个的峰值信噪比原算法有一定提高,表明本文提出的图像复杂度因子是合理有效的。
为了进一步对比改进算法的效果,本文将视频序列每帧的PSNR值通过坐标图的形式给出,图中横坐标为帧的编号,纵坐标为对应的PSNR值。本文中给出了具有mobile(码率限制较高比特128kbps)的视频序列PSNR图,如图4所示,即限定码率分别为32kbps、64kbps和128kbps的典型视频。从图4中可以看出,改进算法的PSNR值波动相对较小,从而在视觉上不会感觉到明显的图像质量变化,这就保证了图像质量的平稳过渡,具有较高的主观视觉质量。
5 结语
本文设计并实现了基于3G和H.264技术的无线实时监控系统,并结合无线传输以及智能手机处理能力弱的特点,对H.264标准中码率控制策略进行了优化。