1、基于TMS320 DM355监控服务器设计和实现本设计以TI企业DaVinci系列芯片作为硬件平台,结合嵌入式Linux操作系统,实现了基于TMS320DM355视频服务器。本文叙述了各硬件模块选型和功效,和服务器软件架构和实现。同时给出了整个网络视频监控系统框架,包含视频服务器、网络传输链路及用户监控端。本设计采取MPEG4视频编码标准,由DM355内部MPEG/JPEG协处理器完成。试验表明,在带宽充足条件下,可实现实时监控。 1引言多媒体监控一直是大家关注应用技术热点之一,它以直观、方便、信息内容丰富等特点被广泛应用于很多场所。而伴随嵌入式系统和视频压缩技术不停发展,基于嵌入式技术视频监
2、控系统也得到了快速发展和应用。其经过把摄像机输出模拟信号转化为数字信号,再经过嵌入式系统编码和传输。在用户端,经过安装监控软件,或直接经过Web进行监控。采取嵌入式Linux操作系统视频监控系统含有编码处理、网络通信、自动控制等强大功效,直接支持网络传输和网络管理,使得监控范围达成了一定广度。另外,嵌入式处理器发展也日新月异,有专注于控制ARM系列处理器,擅长快速计算DSP处理器,还有部分针对性很强处理器,能够实现硬件视频编解码等。而德州仪器(TI)新近推出针对便携式高清(HD)视频产品市场达芬奇(DaVinci)处理器TMS320DM355处理器,结合了它们专长。其内部含有一个ARM9EJ-
3、S主处理器,负责整个系统控制,同时也集成了一个MPEG/JPEG协处理器,专注于MPEG/JPEG算法实现。其内部视频处理子系统(VPSS)及其它外设可方便快速实现视频采集、预处理、显示、网络传输等功效。同时,其低廉价格也为用户降低了成本。而本设计即选择此处理器。2视频监控系统整体框架本嵌入式网络视频监控系统由视频服务器、网络传输链路、用户监控端等3部分组成。视频服务器负责音视频等数据采集、压缩处理等,网络传输链路将视频服务器压缩和发送多媒体数据进行传输,而用户端监控部分接收音视频数据,进行解压、显示和对视频服务器控制等。整个系统示意图图1所表示。图1视频监控系统示意图2.1视频服务器视频服务
4、器采取德州仪器(TI)新近推出达芬奇(DaVinci)系列处理器TMS320DM355作为主处理器,接收CCD摄像头采集视频信号,进行预处理及MPEG4压缩,然后将压缩后数据经过网络传输。同时,接收上位机发送命令,解析而且实施。每个设备全部含有唯一ID,当用户端进行连接时,服务器会首先检验ID号是否匹配,以预防恶意连接。另外,当视频服务器运行异常时,其内部守护进程会进行监视,合适时候进行重启。2.2网络传输链路网络传输链路负责多媒体数据传输。此处,能够依据实际需求,进行网络传输链路选择。局域网(LAN)、无线局域网(WLAN)、INTERNET、CDMA、3G等全部是可供选择传输链路。其中,局
5、域网(LAN)和无线局域网(WLAN)带宽充足、稳定,而且设备简单,易于实现,但会受到距离限制。INTERNET和CDMA网络能够使监控距离得到扩展,不过其带宽受限,图像质量会受到影响。而最新3G网络也是一个不错选择,带宽在静止状态下能够达成2Mbps,不过其在稳定性方面还待测试。用户能够依据自己需求进行选择,或直接搭建专线网络,以实现各自监控指标。2.3用户监控端用户端关键和各个视频服务器进行连接,以实现监控。用户端能够采取PC机或便携式设备,和网络传输链路相连,经过上位机软件和视频服务器连接,接收视频服务器发送多媒体数据,进行解码,然后在上位机显示。同时,向视频服务器发送控制命令,实现云台
6、、镜头等控制。3视频服务器硬件设计3.1整体框架视频服务器完成视频采集、MPEG4压缩和网络传输,和云台、镜头等控制。其硬件结构框图图2所表示。图2视频服务器硬件结构框图4.1系统上电及引导程序系统上电时,是由DM355输入引脚BTSEL1:0来决定从ROM或AEMIF开启。此设计处选择从ROM开启。此时,系统直接跳转到内部ROM起始地址(0X00008000)实施指令。内嵌ROM开启代码(RBL)进行部分配置操作,然后读取BOOTCFG寄存器来决定是从NAND、MMC/SD或UART开启。本设计选择NAND开启。NANDflash里预先烧写好了U-boot、Linux内核和根文件系统。NAN
7、D开启以后,会读取bootloaderstage1部分指令对系统进行必需设置,然后将stage2部分代码搬移到SDRAM中进行实施。当用户选择开启内核时,bootloader将内核从NANDflash里搬运到SDRAM,然后跳转到内核起始地址进行实施,开启内核。4.2嵌入式Linux操作系统嵌入式Linux操作系统是针对不一样应用需求,对Linux内核进行裁剪修改使之能在嵌入式计算机系统上运行一个操作系统。它开放源码,内核小、效率高,适适用于多个CPU和硬件平台,性能稳定,可移植性好等特点为其开辟了一片属于自己空间。本设计选择嵌入式Linux操作系统作为软件平台,实现各硬件模块驱动添加及移植,
8、用户应用程序编写及调试。4.3用户应用程序本设计中将整个应用程序分为2个进程,data进程和command进程。Data进程关键负责音视频数据采集、压缩和网络传输。其中,又分为3个线程,capture线程、编码线程和control线程。Capture线程控制采集设备进行图像及声音采集及预处理;编码线程从capture线程读取数据,进行MPEG4(视频)或G.711(音频)压缩。Control线程从编码线程读取压缩完数据,经过网络发送给用户端。而command进程接收上位机命令,解析、实施,而且控制云台,镜头及测温等。Command进程还加入了用户ID检验等功效,提供简单保护机制。应用程序步骤图
9、图4所表示。图4应用程序步骤图4.4MPEG/JPEG协处理器编码因为DM355内部集成了MPEG/JPEG协处理器,对于音视频编解码关键是经过它来完成。而对它操作是依靠TI企业制订基于eXpressDSP算法互用性标准(xDAIS)xDAIS-DM标准实现。此标准定义了一组统一API,这些API是建立在多种多媒体算法之上,这么即简化了集成难度,同时确保了互用性。TI提出CodecEngine就是一组用于示例和运行xDAIS算法API,而VISA(Video,Image,Speech,Audio)类是用来和xDAIS-DM算法标准定义基于多种多媒体算法API函数集进行交互接口。在应用程序编程中
10、,经过进行以下操作来完成视频编码。打开编解码引擎:staticStringengineName=videncEngine_Handlece;Engine_Errorerrorcode;ce=Engine_open(engineName,NULL,&errorcode);视频编码类提供四个API函数:创建视频编码类:VIDENC_Handlehenc;staticStringencoderName=mpeg4enc;henc=VIDENC_create(ce,encoderName,NULL);其中ce为打开编码引擎时返回句柄。对视频编码类进行控制,设置视频编码动态参数:VIDENC_contr
11、ol(henc,XDM_SETPARAMS,&dynamicParams,&encStatus);处理数据,进行编码:VIDENC_process(henc,&inBufDesc,&outBufDesc,&inArgs,&outArgs);其中参数henc为创建VISA类句柄,inBufDesc为原始数据buffer,outBufDesc为压缩后数据buffer,inArgs和outArgs为输入输出配置参数。销毁创建视频编码类:VIDENC_delete(henc);在应用程序中调用以上API,即可利用MPEG/JPEG协处理器对原始视频数据进行压缩,而音频数据压缩和这类似。 5总结 本文介
12、绍了基于最新Davinci平台视频监控服务器设计和实现,包含硬件组成和软件设计。整个视频服务器利用DM355内部ARM926EJ-S核运行嵌入式Linux操作系统,而用MPEG/JPEG协处理器进行MPEG4编码相关计算。文中对利用MPEG/JPEG协处理器进行编码也做了介绍,同时给出了整个视频监控系统框架。经过在局域网内测试,能够实现D1格式视频实时传输,同时能够进行云台及镜头等控制。利用该系统可实现楼宇、街道等场所视频监控。 参考文件 1CodecEngineApplicationDeveloperUsersGuide 2xDAIS-DM(DigitalMedia)UserGuide 3王田苗.嵌入式系统设计和实例开发北京:清华大学出版社.10 4李善平,刘文峰,王焕龙.Linux和嵌入式系统(第2版)北京:清华大学出版社.3 5杜春雷.ARM体系结构和编程北京:清华大学出版社.8本文起源:慧聪安防网作者:中国农业大学信息和电气工程学院李熙涛 王库
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100