- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于网络和H.264的视频监控系统设计
随着公众安全防护意识的越来越强,视频安全监控系统因其直观,便利,信息内容含量丰富等特征而被广泛应用。市面上的监控设施大部分采用网络作为传输媒介。本文在网络通信技术的基础上设计了一种视频监控系统方案,该系统由前端视频服务器终端外加网络络和视频监控中心3部分组成。视频服务器端使用摄像头记录视频数据,经过DM643 7DSP进行H.264硬件编码压缩,RTP封包后经网络传输。当视频监控中心接收到网络传来的RTP封包后,将其传输给监控中心的上位机进行软件解码处理,最后实时显示视频。网络视频监控的显著特征就是具有广泛的分布范围,能够便捷地在居民住宅区,工厂企业,大型商场,医院等场所设置,组建网络化监控系统。
1 系统总体设计
系统总体结构如图1所示。
硬件设计部分有包含视频记录模块和DM6437DSP模块。其中,DM6437 DSP模块为此硬件系统设计的关键,这个模块承担整个嵌入式系统的控制与调度任务。通电后,DM6437 DSP自动引导有关的外围硬件设备驱动,用于控制视频记录模块实时获取视频数据流,并对录制的视频数据以网络抽象层单元的形式进行H.264硬件编码操作,然后对其进行RTP封包操作并通过RJ45网络接口传送至网络进行传输。软件设计工程可分解为前端视频服务器软件开发和视频监控中心软件开发两部分。前端视频服务器软件开发设计包括建立CCS开发环境,在CCS下编写摄像头和网卡等有关外围设备驱动程序,以及编写视频数据记录和H.264压缩编码代码,编写通信代码模块等。监控中心的软件设计工程包含网络数据的接收和解包模块代码,视频数据的解码模块代码以及界面显示代码。系统软件流程如图2所示。
2 系统硬件设计
DM6437 DSP模块硬件电路设计结构如图3所示。
系统主控芯片采用TT公司基于第三代高性能VelociTI超长指令字架构的DM6437 DSP,这是一种功耗低,性价比高的定点DSP,拥有内部存储资源和强大的视频处理能力。DM64 37另外增加了视频处理模块以方便视频前端的预处理和视频后端的显示,同时也减少了DSP核心的运算量。NAND Flash使用存储空间为512 MB的K9F2G08UOM模块,用于存储启动文件、软件内核、根文件系统以及应用程序。SDRAM采用两片存储空间为128 MB的K4X51163PC芯片,该芯片工作电压范围为1.8~3.3 V,用于存储和读取系统运行时的程序和程序运行时产生的数据。网络卡芯片使用Davicom公司设计的10/100 Mbit·s-1支持网速自适应的网络卡芯片DM9000AE,因此网络物理层和数据链路层的通信得以实现。
3 系统软件设计
系统软件设计按功能划分为前端视频服务器终端软件设计以及视频监控中心软件设计两部分。
3.1 视频服务器终端软件设计
视频服务器终端的软件系统设计主要包含微软Windows XP系统配置和应用程序开发组成。该系统使用Windows XP作为硬件平台的操作系统,借助对核心程序的调整去掉与系统不相关的外围硬件驱动,并安装了USB摄像头驱动程序和DM9000AE网卡驱动程序等,共同组成应用程序正常运行所需要的软件操作环境。应用程序的设计是软件模块设计的关键,共包含视频数据的记录、H.264硬件编码压缩和RTP协议打包发送3个模块。
3.1.1 视频数据采集
在Windows操作系统中,TI公司的DSP软件开发工具CCS为用户空间提供了一套完整的接口函数API,通过调用这些接口函数可对视频记录设备进行打开、采集和关闭等操作,视频采集流程如图4所示。在进行其他操作前,应先调用接口函数open()以阻塞方式启动摄像头设备,设备名称为“video0”。然后借助ioctl()函数调整视频采集参数,包括图像尺寸、帧率、视频格式等,例如将视频格式设置为YUV422。CCS支持两类视频数据记录方式:一种是通过使用read()函数直接读取摄像头;另一种是通过调用内存映射函数mmap()将采集到的视频数据存储到对应的用户缓冲区再进行读取。第二种更加快捷便利,所以本文采用此方式读取记录视频数据。记录到的视频数据为YUV422格式,但H.264编码器匹配的输入视频格式却为YUV420P,所以为了将已经记录的视频数据传送至H.264编码器进行编码,还需将YUV422格式的视频数据转换为YUV420P格式。视频格式的转换过程使用FFmpeg开源库提供的API函数完成。
3.1.2 H.264编码
DM6437 DSP内部集成有多媒体硬件编解码模块,该模块支持MPEG-4,H.263以及H.264编解码方案,具备优异的编解码性能。该方案通过该多媒体硬件编解码模块模块进行H.264硬件编码。当操作系统加载了多媒体硬件编解码模块驱动后,应用程序主进程可以调用多媒体硬件编解码模块函数接口实现视频数据的H.264硬件编码。
3.1.3 RTP协议打包及传输
经H.264编码后的视频数据通常分为两个不同的层:视频编码层(Video Coding Layer,VCL)和网络适配层(Network Adaptation Layer,NAL)。这两个层各有分工,视频编码层主要功能是以H.264规定的编码方式表示视频信息,而网络适配层则负责根据网络实际情况对数据进行封包,目的是使视频编码层数据的格式方便网络传输。根据RFC3984,H.2 64视频流的封包模式可有以下3种形式:单一网络适配层单元模式,组合封包模式以及分片封包模式。(1)对于长度
3.2 监控中心软件设计
监控中心系统主要负责H.264编码后的视频数据流接收,软件解码以及界面显示。解码后的数据通过网络接收,使用UDP Socket编程;而H.264视频流的软件解码使用开源的FFmpeg函数编写实现,界面显示通过使用开源跨平台的多媒体库,即SDL(Simple DirectMedie Layer)实现。监控中心软件流程如图5所示。
4 系统测试及分析
在实验室内进行系统综合测试,在视频监控前端采用设定的视频服务器终端,对应的监控主机使用台式PC机。监控前端设置的视频记录像素分辨率为1 024×768,视频传输速率为30 Sample·s-1,按顺序先后运行服务器端程序以及客户端程序。记录到的视频监控系统运行效果如图6所示,截图画面显示视频播放流畅、清晰度高,较好地满足了系统设计要求。
5 结束语
结合网络通信技术和流媒体技术,基于DM6437DSP和嵌入式Windows操作系统,设计并实现了一种可通过网络传输的视频监控系统,并将此方案在实验室内进行了网络验证。实验结果表明,这种方案工作正常,较好地满足了设计要求。
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...
天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...
上一篇:经验之谈,工程师在电路设计中的八大误区
下一篇:基于FPGA的天线选通电路设计