0 引言
i.Mx27多媒体应用处理器是飞思卡尔半导体DragONBall家族的最新成员,片内集成H.264/MPEG4/H.263全双工硬件编解码视频处理单元,可广泛应用于视频监控、数字录像机、网络广告机、V2IP可视电话、IPTV机顶盒、智能手机、便携式多媒体播放器、移动电视、车载多媒体产品等。
设计了一种基于i.MX27的移动视频监控终端,应用于公交视频监控系统中。终端采集的视频数据和GPS位置信息可以实时传输到公交调度监控中心,在网络不佳的情况下也可以在本地保存视频数据和GPS位置信息,在公交车到站后通过WIFI无线网络集中高速传输到监控中心。
1 公交视频监控系统组成及功能描述
1.1 系统组成
整个系统分为前端车载监控系统、通讯线路、监控平台 前端车载监控系统又包括车载硬盘录像机、监控摄像机、监听头、报警按钮、报警闪灯、液晶显示屏、对讲耳机、GPS等 通讯线路包含前端移动传输(EDGE/CDMA 1X)和后台指挥中心以太网网络 监控平台包含监控软件及GIS、流媒体、数据库、应用服务器等一系列服务群,可以根据需要在公交分局、市公安局、派出所等单位建设多极监控平台,级别的逻辑关系根据需求可灵活配置,系统具有良好的扩展性。
系统组成的结构图如图1所示。
1.2 系统功能描述
(1)视频监控功能。车载设备最多支持4个摄像头,可分别监控前后车门、车厢前后;
(2)GPS定位功能。视频监控设备应该从GPS设备获取当前时间、经纬度信息,并以时间标签形式嵌入录制的视频文件或视频流中(即字幕方式);GPS的信息(每秒1条)同时写入日志文件,用于后期的增值处理:视频设备内部保存的视频文件与此GPS日志文件一一对应;
(3)成批通讯功能。当车辆位于停车场、站等有WIFI/WinMax等高速无线网络的位置时,可随时进入后台的数据传输工作模式。传输的内容包括视频文件与GPS日志;
(4)实时通讯功能。当终端安装有GPRS/CDMA网络通讯模块功能时,可以进行实时视频数据和GPS位置信息的传输。
2 移动视频监控终端硬件设计
移动视频监控传输终端采用i.MX27为核心器件,外扩了GPS模块、WIFI模块实现了对移动视频的采集、存储、无线传输功能。同时通过GPS信息可以准确地定位移动设备的实时位置。
系统硬件结构图如图2所示。
3 移动视频监控终端软件设计
终端系统采用嵌入式Linux操作系统,以提高服务的可靠性和系统效率。软件主流程框图如图3所示。
3.1 终端应用软件
3.1.1 视频采集、编码、存储
视频编码采用H.264标准,以较少的数据提高更高的视频清晰度。视频本地存储采用大容量SD卡或U盘。不采用移动硬盘,以避免公交车运行中因震动而造成移动硬盘的损坏。
3.1.2 无线网络传输
终端系统设计有WIFI高速无线网络和GPRS/CDMA网络,以适应不同的应用场合。在WIFI热点遍及的地方采用WIFI无线网络进行高速数据传输,其他情况下可以通过GPRS/CDMA无线网络传输数据。
无线网络技术涵盖的范围很广,既包括允许用户建立远距离无线连接的全球语音和数据网络,也包括为近距离无线连接进行优化的红外线技术及射频技术。通常用于无线网络的设备包括便携式计算机、台式计算机、手持计算机、个人数字助理 (PDA)、移动电话、笔式计算机和寻呼机。无线技术用于多种实际用途。例如,手机用户可以使用移动电话查看电子邮件。使用便携式计算机的旅客可以通过安装在机场、火车站和其他公共场所的基站连接到 Internet。在家中,用户可以连接桌面设备来同步数据和发送文件。无线网络传输机制无线网络技术的信息传输机制。
3.1.3 GPS信息及其他信息的采集和处理
终端系统每秒保存实时GPS信息,并实现和视频数据的时间同步。同时还定时采集其他一些报警检测等周边信号,供系统处理。
3.2 关键技术实现原理
3.2.1 视频实时传输处理机制
在网络带宽不稳定或者较差的情况下,为了尽量保证网络视频服务器传输到服务器的视频数据的完整性和实时性,系统采用了双重处理机制:
(1)单位时间内比较视频历史缓冲中的数据包个数,如果发现数据包个数大于500包,则执行清除历史缓冲操作,并重新关闭打开编码器来编码出一个新的IDR帧用于传输;
(2)定时比较当前编码帧的时间与待发送的数据包的时间的差值,如果时间大于5s,则执行清除历史缓冲的操作,并重新关闭打开编码器来编码出一个新的IDR帧用于传输;
(3)另外为了保证对带宽的充分利用,保证传输到服务器端的码流可以正常播放,现在在清除历史缓冲的时候增加了I帧的完整性判断,必须保证当前传输的视频数据非I帧才执行清除历史缓冲的操作;
3.2.2 视频捕获和编码部分的具体实现
(1)设置编码头序列参数,返回缓冲区地址和大小
encHeaderParam.headerType=SPS RBSP;
vpu_EncGiveCommand(handle,ENC_PUT_AVC_HEADER,
&encHeaderParam)
bsBuf0=encHeaderParam.buf
size0=encHeaderParam.size;
codecparam.len=0
(2)取得参数存入编码参数缓冲区
bitstream addr=virt_stream_buf+bsBuf0
bit_steam_buf.phy_addr
memcpy(codecparam.buf+codecparam.len,(char
*)bitstream_addr,size0);codecparam.len+=size0;
(3)设置编码头图象参数,返回缓冲区地址和大小
encHeaderParam.headerType=PPS_RBSP;
vpu_EncGiveCommand(handle,ENC_PUT_AVC_HEADER,
&encHeader.Param);
4 结束语
本文阐述了基于i.MX27的移动视频监控终端的实现原理以及在公交调度监控中的应用,着重介绍了移动视频监控终端的设计方案和实现方法,并对其中的一些关键技术的实现作了详细的描述。该系统已经在公交监控中试运行,并取得了良好的使用效果。