APP下载

基于ARM的远程实时视频监控系统的研制

2014-06-27王晓华贾继洋

西安工程大学学报 2014年5期
关键词:车载远程编码

王晓华,贾继洋

(西安工程大学 电子信息学院,陕西 西安 710048)

由于天气、道路以及许多人为因素,交通车辆有时会出现安全问题,因而对于交通车辆的实时定位与监控尤为重要[1-2].基于实时视频功能的车辆监控系统能满足交通公司对车辆实时行驶情况的及时掌握,尤其是在有突发事故发生时,能通过视频及时看到事故现场情况,可以提高对突发事故的反应速度[3-4].

目前,对车辆监管系统的研究,国内已取得了一些成果.文献[5]应用地理信息系统(GIS)技术及GPS技术,实现了对管理平台监控模块的电子地图操作,但没有对车厢内进行实时监控;文献[6]采用了嵌入式技术、无线通信(WIFI和GPRS)技术,提出了一种旅游车辆车载监控系统的设计方案,能够实现车厢内近距离的图片传输,但没有实现远程的视频传输.

本文研制了一套车辆远程实时视频监控系统.该系统能够实时将车辆的行驶状态和运行环境上传到车载视频监控平台;在突发紧急事件时,车载监控系统会把信息实时地记录下来发送到监控指挥中心,便于对事故的及时处理;能通过GPS实时定位车辆位置,并通过PC联网观看前端实时视频,在监控中心实现对车辆的远程实时监控.

1 监控系统设计及功能

1.1 车载监控终端系统

车载监控终端安装在旅游车辆上,它的主要功能是负责实时采集车辆内外的各种数据,实现车内视频查看和车辆控制功能,同时可以对采集到的视频数据进行压缩编码、封包并传输到远程监控中心.

车载监控终端的硬件组成如图1所示,其结构按照功能模块划分,主要包括主处理器模块、数据采集模块和数据传输模块3部分.主处理器模块主要包括嵌入式主处理器、电源、LCD显示器等功能模块;数据采集模块为摄像头模块、其他传感器模块;数据传输为3G模块.

图1 车载监控终端硬件组成

1.1.1 主处理器模块 主处理器选择基于S3C6410JZF-S内核的属于ARM11体系的微处理器S3C6410[7].它支持外扩存储器、内置了LCD控制器、I2C总线接口、UART串口和USB接口等,功能丰富,便于扩展LCD充当了监控终端的人机交互的接口,可以通过它对车辆进行控制以及播放本地视频图像.本地视频也可存放于存储器中或者被压缩、传输.

1.1.2 数据采集模块 数据采集模块包括ov9650摄像头、传感器和GPS模块.摄像头通过CAMEAR接口与ARM连接;传感器通过USB接口将采集到的车辆行驶数据传给ARM;定位数据采集则应用VK1513 GPS模块来实现,通过串口连接.

1.1.3 数据传输模块 数据传输模块选用中兴 MF190的3G无线上网卡,负责车辆监控系统中车载终端和监控中心之间的通信,该3G无线上网卡通过USB接口与ARM相连.

1.2 远程监控中心

远程监控中心是一台接入Internet的PC机,登录监控中心界面即可查看车辆视频信息以及车辆定位信息.车载监控终端与远程监控中心通过无线通讯网络沟通,车载监控终端信息通过移动通信网络发送给远程监控中心,同时将监控中心的反馈信息传输给车辆.

2 系统功能的实现

系统功能依托Linux系统、设备驱动程序和用户应用程序实现.嵌入式Linux系统和USB驱动、LCD驱动、GPS驱动、串口等外设的驱动技术都比较成熟.通常的外设驱动移植过程如下:首先对内核文件中的参数重新配置,使S3C6410可以支持驱动;接着添加外设地址,注册外设;然后重新编译内核并引导;然后编写驱动程序,编译成ko模块;最后加载驱动,在/dev目录下生成相应的设备文件.用户程序指为完成系统功能而编写的应用程序,下面介绍视频信号的采集、处理程序以及GPS定位程序.

图2 视频采集流程

2.1 视频采集

在Linux下,所有外设都被看成一种特殊的文件,成为“设备文件”,因此可以通过编写V4L2接口函数[8-9]对摄像头对应的设备文件video 0操作,从而实现视频采集.每采集一帧视频数据就对其编码、打包、发送.本系统把摄像头的内存映射到应用程序的地址空间,视频数据本身不被拷贝,只是交换指向数据缓冲区的指针,提高了采集效率.采集过程如图2所示.

2.2 H.264视频编码

H.264视频编码仅仅规定了输入码流的格式和输出比特流的句法结构,具体的编码器在实现上灵活.H.264编码器主要采用了帧内/帧间预测、运动估计、运动补偿、整数变换、量化和熵编码等方式,以提高对图像的压缩率[10-12].相比较其他基于H.264的开源编解码器,X264在不明显影响编码性能的情况下,裁剪了H.264中多参考帧等算法复杂的部分以提高运算速度.因此本系统采用了X264软编码对采集到的视频数据进行编码.用到的函数如下:

2.2.1 初始化函数 void compress-begin(Encoder *en, int width, int height);通过函数x264-param-default(en->param)对编码器进行参数设置,x264-picture-alloc()分配一个buffer,用以存放视频数据中的Y,U,V.

2.2.2 执行函数 int compress-frame(Encoder *en, int type, uint8-t *in, uint8-t *out);计算一个帧的长度,调用函数x264-encoder-encode(en->handle, &(en->nal), &nNal, en->picture,&pic-out)对该帧编码.

2.2.3 编码结束函数 void compress-end(Encoder *en);调用x264-picture-clean(en->picture),更新图片区,调用x264-encoder-close(en->handle),关闭编码器和输入输出文件.

2.3 视频数据封包及发送

H.264编码后的数据分为视频编码层(VCL)和网络提取层(NAL).VCL数据表示被压缩编码后视频数据序列,先被映射或封装进NAL单元中.每个NAL单元包括一个原始字节序列负荷和一组对应于视频编码的头信息.本系统通过C/S架构[13],在应用层采用RTSP控制协议,传输SDP文件开启会话,视频数据采用RTP封装后承载在UDP上,并通过RTCP协议监测传输质量,开销相对较小,传输效率较高.

2.4 GPS定位功能

GPS模块主要用于接收GPS导航卫星的信息[14],在车载终端显示车辆当前所处的位置、速度、方向等信息,并将此数据通过3G网络传送到远程监控中心,车辆的状态和运动轨迹在远程监控中心安装的电子地图上实时显示.

3 测试与讨论

在Ubuntu10.10系统环境下,选择Linux3.0.1内核版本,将GPS模块、3G模块以及摄像头模块需要的功能编译进内核,生成新的内核镜像zImage,并通过一键烧写将其烧写到对应的S3C6410开发板上.将各模块同开发板连接,并将各模块驱动文件手动加载到开发板,使模块都能够正常的工作,然后启动监控中心,在实验室的条件下进行联合测试.分别执行各应用程序,远程监控中心作为服务器端开始监控后,实时等待作为客户端的车载终端连接,并显示当前采集的视频和GPS数据.

通过在应用程序中设置不同的分辨率改变视频的采集帧率和数据传输所占带宽,以验证本文搭建的系统的性能.不同分辨率下视频采集的帧率占用的带宽见表1.

表1 不同分辨率下的帧率占用带宽情况

从表1可以看出,分辨率设置为176×144,320×240时,采集视频的帧率为27帧/s和16帧/s,视频显示流畅,可以满足视频监控的要求,但是显示快速运动的图像仍需要进一步的完善;分辨率设置为640×480时,采集的视频数据比较大,每秒仅仅可以采集8帧,视频显示有延迟,表明分辨率不能设置太大.

3G无线网络可以适应在不同分辨率下的带宽占用,但是当分辨率设置为640×480时,占用带宽有所下降,说明对视频数据的编码速度比网络传输的速度要慢,限制了传输的数据,因此采用高分辨率时,要考虑对编码器的优化,以进一步提高系统的实时性.

通过上述数据分析,最后设置的分辨率为320×240,采集的视频格式为YUV420;编码帧率分子为20、帧率分母为1、码率为1 024×10.将采集到的视频数据通过X264软编码,然后将编码后的视频数据进行基于RTP协议的封包并应用SOCKET编程将其发送到远程监控中心,PC机作为远程监控中心选用VLC播放器对接收的视频数据解码播放.视频信息在PC机上的实时解码播放,如图3所示.从图3可以看出,播放连续,视频清晰,表明视频编码基本没丢失视频的有效信息,传输过程也没有数据丢包现象.

图3 PC机实时视频播放

在实际的应用中,由于GPS定位数据通过无线网络远距离发送,所以对车辆定位的实时性有一定的影响,进而影响了定位的经度.除了数据传输过程中时延的影响,GPS本身误差和地图误差也对定位经度有一定的影响.通过差分传输方式可以很大部分地减小GPS本身带来的误差,通过采用多个控制点进行地图校准来减少地图误差.由于研究的环境限制,在实验室的条件下模拟车辆定位,通过GPS模块采集定位信息,然后通过无线网络将其发送到监控中心PC机上显示位置,定位误差为5~8m,与一般GPS定位系统误差相同.本系统同时将定位信息存储到access数据库中,由于风速对GPS模块天线的影响,所以定位精度在不断的微小变化,定位信息稳定在小数点后第三位.

4 结 论

(1) 构建的基于ARM的远程实时视频监控系统实现了将GPS定位、3G无线网络通信技术和视频编解码技术等技术的集成应用.

(2) 将本系统应用于车辆的远程实时监控中,管理者能根据车辆传来的信息实时了解车辆行驶状况,并能及时发现突发事件,以便解决.

(3) 本系统的模块化设计思想以及系统具有的开放性,可以在系统原有的基础上加入更多的外设,针对用户的需求进行修改,使其应用可以扩展到更多领域.

参考文献:

[1] JAYAVARDHANA Gubbi,RAJKUMAR Buyya,SLAVEN Marusic,et al.Internet of Things (IoT):A vision, architectural elements, and future directions[J].Future Generation Computer Systems, 2013,29(7):1645-1660.

[2] 蒋新华,陈宇,朱铨,等.交通物联网的发展现状及趋势研究[J].计算机应用研究,2013,30(8):2256-2261.

[3] 吴忠泽.中国智能交通行业发展现状与未来发展趋势[J].电气时代,2013(6):24-26.

[4] DIMITRAKOPOULOS G.Intelligent transportation systems based on internet-connected vehicles: Fundamental research areas and challenges[C].ITS Telecommunications (ITST), 2011 11th International Conference.New York:IEEE,2011:145-151.

[5] 杨苗.基于GPS/GIS的车载监控系统监控模块的设计与实现[D].西安:西安电子科技大学,2012:5-38.

[6] 李萍.基于嵌入式系统的旅游车辆监控终端的研制[D].西安:西安工程大学,2013:5-50.

[7] 施乐平,杨征宇,马宪民,等.ARM嵌入式系统综述[J].中国测试,2012,38(2):14-16.

[8] 刘登诚,沈苏彬,李 莉.基于V4L2的视频驱动程序设计与实现[J].微计算机信息,2011,27(10):56-58.

[9] LU yinli,YU Hongli,ZHANG Pengpeng.The implementation of embedded image acquisition based on V4L2[C].Electronics,Communications and Control (ICECC),New York:IEEE,2011:549-552.

[10] 茅炎菲.基于RTSP协议和H.264编码的网络视频监控系统的设计与实现[D].杭州:浙江大学,2011:53-54.

[11] ZHANG Dong,LI Bin,XU Jizheng,et al.Fast transcoding from H.264 AVC to high efficiency video coding[C].Multimedia and Expo (ICME),New York:IEEE,2012:651-656.

[12] 郑庆红.基于H.264的视频传输系统的设计与实现[J].无线电工程,2011,41(8):12-14.

[13] 解丹.基于C/S架构的车辆远程监控系统的设计与实现[D].武汉:华中科技大学,2011:17-48.

[14] 温宗周,陈改霞.基于GPS/GPRS的远程车辆管理系统的设计[J].电子测量技术,2013,36(8):76-79.

猜你喜欢

车载远程编码
让人胆寒的“远程杀手”:弹道导弹
一种车载可折叠宿营住房
远程工作狂综合征
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
《全元诗》未编码疑难字考辨十五则
高速磁浮车载运行控制系统综述
子带编码在图像压缩编码中的应用
奔驰S级48V车载电气系统(下)
Genome and healthcare
远程诈骗