刘 嵩
(湖北民族学院 信息工程学院,湖北 恩施 445000)
视频监控是安防系统的重要组成部分,正朝着智能化、数字化、网络化的方向快速发展,广泛应用于高速公路、住宅小区等多种场合[1].目前的视频监控系统的实现方案主要有:①ARM+专用视频编解码芯片.该方案系统性能稳定、处理速度较快,很容易实现实时处理,但灵活性不够,不便于升级;②FPGA+IP软核.该方案设计周期短,容易改进升级,但视频处理算法占用资源较大,复杂度、体积和功耗都大大增加;③采用面向多媒体处理的专用DSP.该方案运行速度较快,而且可以移植多种图像处理算法,所以能够不断对产品性能改进升级[2].本文给出了一种基于DSP芯片DM642的视频监控系统的实现.
DM642是TI公司推出的一款高性价比、采用velociTI体系结构的定点DSP.它具有极强的单核处理能力以及高度的灵活性和可编程性;在600 MHz的时钟频率下,数字处理能力可达4 800 MIPS;还具有两级高速缓存L1 Cache和L2 cache、64位的DMA控制器,负责片内L2 cache与其它外设之间的数据传输;三个视频专用接口(video Port)与2个音频串口复用,集成有10/100 M以太网MAC[3,4].
图1 系统的总体框图
图2 采集模块方框图
图3 网络模块结构框图
图4 系统的数据流图
系统的总体框图如图1所示.整个系统以DM642为核心,由视频采集模块、存储模块、网络模块、电源模块和时钟模块等几个部分构成.视频采集模块把采集到的模拟信号转换为DM642可以处理的数字信号,并通过DMA控制器搬移到存储模块存储;DM642对采集到的数字信号进行压缩等处理;网络模块将处理后的数据打包上传到上位机,于是远端用户可以通过客户端软件监控视频信号;存储模块通过EMIF与DSP实现无缝连接,包括SDRAM和FLASH.其中SDRAM存储采集到的视频信号以及处理过程中的临时数据,FLASH用来存储程序,实现系统的自启动;电源模块为整个系统提供稳定的能量保证,DM642芯片采用双电源供电,核电压1.4 V,外围电压3.3 V,采用开关电源来为系统供电[5].
DM642有3个双通道视频口,每个视频口都可以由软件配置为输入口或者输出口,可实现与解码芯片的无缝连接[6],本系统的解码芯片采用Philip公司生产的多制式视频解码器SAA7115,摄像头送来的视频信号经SAA7115数字化后转换为待处理的数字图像数据,存入外部存储器.DM642通过其I2C总线配置管理视频解码器SAA7115,采集模块部分的方框图如图2所示.
网络传输模块负责将视频信号处理模块处理后的数据进行网络传输,传输过程符合TCP/IP协议.本系统采用Intel公司的LXT971作为快速以太网物理层自适应收发器,因为DM642内部集成有以太网媒体存取控制器(MAC),提供了DSP与网络之间的高效接口,所以LXT971可以和DM642实现无缝连接.网络模块结构框图如图3所示.DM642压缩打包处理数据,然后通过LX971转换为以太网物理层能接收的数据,经过RJ45传输到因特网.
系统软件架构采用了的参考框架RF5(Reference Frameworks 5),参考框架保证了软件方便容易与用户硬件接口,每一个参考架构均被打包成基于TI DSP的开发工具包或其他板卡的完整的应用程序.RF5适用于含有多通道和多算法结构的高密集度应用程序,RF5使用线程阻塞,可用于包含线程间有复杂依赖关系的应用程序.另外,RF5还具有可变的通道管理、高效的任务间通信,以及结构化的线程安全控制机制,且易于替换I/O驱动设备和易于调试,RF5使用同步通讯机制(SCOM)来实现线程的通讯[7,8].系统的数据流图如图4所示.根据信号流程图在系统的软件设计中利用实时操作系统DSP/BIOS静态建立视频输入、视频处理和网络传输3个线程任务来完成系统的监控功能.其中输入任务和处理任务优先级相同且高于网络任务的优先级.
系统在进入任务调度之前,要对多个模块初始化,其中包括:
1)处理器的初始化 : 初始化DSP/BIOS环境,设置DM642 cache、DMA传输模块等;
2)RF5模块初始化:建立RF5的通道模块,初始化SCOM;
3)建立视频输入通道.
表1 测试结果
系统完成初始化后,就进入了三个任务的调度状态.三个任务通过SCOM模块互相发消息通讯.
1)视频输入任务
视频输入任务从输入设备驱动程序中获得图像,并进行降采样,然后通过SCOM发送消息到处理任务,并等待处理任务的反馈消息.主要的源代码如下:
yuv422to420(inBuf, outBuf, LINE_SZ, NUM_LINES);
SCOM_putMsg(fromInputtoProc, pMsgBuf);
FVID_exchange(capChan, &capFrameBuf);
pMsgBuf = SCOM_getMsg(fromProctoInput, SYS_FOREVER);
2)视频处理任务
视频处理任务收到输入任务发来的消息后,立即获得输入数据的地址指针并对指针指向的数据进行压缩处理,处理完毕同时通知输入任务和网络任务.
3)网络任务模块
网络任务收到处理任务的消息后,启动网络传输.网络传输采用TI公司推出的NDK(Network Developer's Kit)网络开发包,通过socket编程完成系统网络传输功能,本系统采用了UDP协议.主要的程序代码有 :
FD_SET(slisten, &ibits);
setsockopt( speer, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout) );
send( speer, (UINT8 *)&jpg_size, 4,0)
在各个子模块验证测试通过之后就可以进行系统调试.系统首先上电自检,然后自动进行视频采集、处理与传输,在接收端图像传输流畅,无抖动现象。为了测试采集的视频信号,在采集与处理的程序代码首尾两端加入定时器,定时器的计时差值换算处理后就是视频信号采集处理所消耗的时间.测试结果如表1所示,由实验结果可知,系统能实时的处理视频信号.
本文给出了一种基于DM642的视频监控系统的实现.从试验结果来看系统运行稳定,网络传输流畅,满足了实时性要求.该系统可广泛用于智能家居、校园安全等领域的远程视频监控中,具有一定的实用性.
[1] 王运涛,方彦军,李世红.基于Intermet的嵌入式远程监控终端的开发[J].工业控制计算机,2004,17(5):13-14.
[2] Yoo H,Anderdon D.Hardware-efficient distributed arithmetic architecture for high order digit filters[C]//Proc IEEE Interna tional Conference on Acoustics,Speech,and Signal Processing,2005:125-128.
[3] 刘文怡,杨慧梁.基于DSP和以太网的视频监控系统的设计与实现[J].安防科技,2009,9(9):19-21.
[4] 晋春,徐荣青.采用DM642 DSP实现基于H.264的数字视频监控系统[J].安防科技,2007,7(2):20-21.
[5] 杨凡,李祥,涂军.基于DSP的远程视频监控系统的研究和实现[J].湖北工业大学学报,2007,22(5):25-27.
[6] 王跃平,苏月明,刘云生. 基于DM642的流媒体采集压缩系统的研制[J].计算机工程与科学,2010,32(2):114-116.
[7] 崔丽珍,张祥松.基于DM642的视频图像实时通信和传输电子与封装[J].2009,11(9):27:29.
[8] 魏宗冲,徐胜,朱彦伊.基于DM642的远程网络视频监控系统[J].电视技术,2008:32(5):81-83.