摘要:本文提出了一种基于以太网的视频监控系统的设计方案。采用TMS320DM642 为处理器,设计了视频采集、显示模块和网络接口模块,开发了H.264 压缩算法和流媒体实时传输协议(RTP),并编写了软件,实现了视频图像的编码压缩、本地存储和网络传输。运行结果表明,本系统能够满足实时监控的要求,且压缩效率高,图像质量好。
1 引言
在银行、学校、企事业等公共场所的安全监控中需要大量视频监控系统。随着图像处理技术的发展和计算机网络的普及,视频监控系统已经进入数字化、网络化时代。因此,使用嵌入式技术,开发基于以太网的视频监控系统具有重要的现实意义。
目前的视频监控系统普遍采用专用的视频编解码芯片,很难适应不断完善的视频压缩算法,不易于升级更新,且成本较高。而且大多数采用MPEG-4 压缩标准,压缩率较低,对带宽的要求高。
本文研制了一种基于以太网的视频监控系统。采用TI 公司的32 位定点DSPTMS320DM642 为处理器,以H.264 为视频压缩算法,采用流媒体实时传输协议进行视频传输。TMS320DM642(以下简称DM642)是一款面向数字多媒体应用的高性能DSP,片内集成了视频和网络外设接口,减少了视频监控终端的成本和开发难度。H.264 是新一代视频压缩标准,在同等的图像质量条件下,H.264 的压缩率比MPEG-4 高1.5-2 倍,并且引入了面向IP 包的编码机制,能够增强网络适应能力[1]。用软件实现视频压缩算法,比传统的专用视频编解码芯片灵活性强,易于升级更新,且开发周期短。
2 视频监控系统的设计方案
视频监控系统是由处理器DM642,视频采集、显示模块,网络接口模块和本地存储模块组成,如图1所示。
图1 视频监控系统框图
DM642 作为处理器,完成图像的H.264 压缩、视频压缩数据的网络传输、本地存储和系统流程的控制。DM642 是一款高性能多媒体处理器,在600MHz 的时钟频率下,处理速度可达4800MIPS。内部具有256k 字节的二级缓存结构,64 位的外部存储器接口(EMIF)。可以实时实现多路视频编码运算,非常适于开发基于以太网的视频监控系统[2]。在本系统中,实现了4 通路的视频输入接口与1 个通路的视频输出接口。摄像头采集到的模拟视频信号先送入视频解码器(TVP5150),视频解码器将采集到的PAL/NTSC 制式的标准模拟视频信号转换成BT.656 视频数据流,传送给DM642,DM642 对接收的数字信号进行压缩编码,将压缩处理后的数字视频信号打包,通过以太网将视频数据传给远端服务器,用户可以通过流媒体服务器远程监控现场状况。考虑到视频预览和测试的需要,本系统设计了1 路的视频显示,将经DM642 压缩处理的数字视频流送入视频编码器(SAA7121),转换为标准模拟视频信号,直接输出到本地的LCD 显示器上。
DSP 内部有程序/数据缓存,但容量较小,对于直接处理数据图像是不够的, 因此扩展了本地存储模块作为外部存储器空间。大容量的SDRAM 用来暂存原始帧、参考帧和重建帧的数据,FLASH 用来存放应用程序,ATA 硬盘用来录制视频图像。
3 系统的硬件设计
3.1 视频采集、显示模块
视频采集、显示模块主要由摄像头,视频解码芯片TVP5150,视频编码芯片SAA7121,LCD 显示器组成,如图2 所示。DM642 内部集成了3 个视频端口VP[2:0],提供了与通用A/D 转换芯片的无缝接口,因而不需要外加可编程逻辑器件和FIFO 就可以满足系统设计的要求。每个视频口被分为上(B)、下(A)2 个通道,可被配置为视频输入口或输出口,所以多可支持6 路8位BT.656 数字视频接口。在本系统中,用其中4 路(VP0A、VP1A、VP2A、VP2B)来作为视频输入端口,与4 个视频解码器TVP5150 相连,采集从TVP5150 输出的8 位BT.656格式的数字视频数据。
图2 视频采集模块框图
TVP5150 是一款高性能视频解码器,可将NTSC、PAL 视频信号转换成数字色差信号(YUV4:2:2),可以接受2 路复合视频信号(CVBS)输入和1 路超级视频信号(S-Video =Super-Video,Y/C)输入,输出格式为 ITU-R BT.656。DM642 通过IIC 总线控制TVP5150的内部寄存器,在本系统中,TVP5150 的IIC 总线数据传送速率配置为100Kbits/s。来自摄像头的视频信号送入视频解码器 TVP5150 进行数字化处理,经TVP5150 处理后的数字视频信号送入DSP 的视频端口,视频端口与TVP5150 接口处具有一个大小为2560字节的内部FIFO,其中1280 字节存放亮度数据,剩下的1280 字节存放色度数据。依据视频端口的内部逻辑,TVP5150 输出的亮度和色度数据被存储到相应的FIFO 中。在视频采集过程中,根据视频端口内部FIFO 的状态,使用EDMA 完成视频数据的读取,传入本地存储器,以供视频应用程序使用。
系统的 1 路视频显示用于本地监控。这1 路视频输出与其中1 路视频输入复用VP0A通道。视频编码器采用Phillips 公司的SAA7121H,将DM642 处理后的8 位BT.656 视频数据流转换成标准的模拟视频信号,输出给LCD 显示器。
3.2 网络接口模块
网络接口模块主要由网络处理芯片 BCM5221,网络变压器BH1102 组成,如图3 所示。
图3 网络接口模块框图
由于 DM642 上集成了以太网MAC 接口,所以需要一个物理层网络处理芯片,本系统采用Broadcom 公司的BCM5221 芯片。BCM5221 是10/100Base-TX 以太网控制器,兼容IEEE802.3 标准,提供MII 接口,可与DM642 的MII 接口对接。BH1102 是Pulse 公司的1:1 隔离变压器,主要作用是阻抗匹配、波形修复、杂波抑制、信号传输以及高电压隔离。从DM642 传输来的数据经BCM5221 转换为以太网物理层能接收的数据后,经由网络变压器,通过RJ-45 接口传输到以太网。
4 系统的软件设计
4.1 系统软件流程
系统的软件流程如图 4 所示。在进入任务调度之前,首先进行以下四个步骤的初始化:(1)DM642 处理器和系统板的初始化:初始化DSP/BIOS 操作系统和芯片支持库(CSL),设置使用128K 的二级高速缓存,映射到EMIF 的CE0 和CE1 空间,设置DMA 优先级序列长度取值,设置二级高速缓存的请求优先级。(2)RF-5 模块的初始化:初始化RF-5 框架中用于内部单元通信和消息传递的SCOM 模块。(3)配置视频采集驱动并建立一个视频采集通道。(4)建立一个编码单元并向RF-5 框架注册。
图4 系统软件流程图
初始化后,DSP/BIOS 操作系统开始依次对视频采集任务,图像压缩任务和编码传输任务进行调度,这3 个任务的优先级相同,但高于空闲任务的优先级。模块中各任务之间的消息传递是通过RF-5 参考框架中同步通信SCOM 消息来完成的。在视频采集任务中,主要操作是循环采集一帧图像,发送消息给图像压缩任务并等待传输完成消息;在图像压缩任务中,主要操作是循环等待视频采集任务发来的采集完成消息,然后调用H.264 编码模块压缩图像,当H.264 码流形成,发送编码完成消息给码流传输任务;在码流传输任务中进行的操作也是在不断循环等待编码任务信号,使用TCP/IP 协议传输H.264 码流,再发送传输完成消息给编码任务。三个任务互相协作,完成图像的采集、压缩、传输功能。
4.2 H.264 压缩算法
H.264 压缩算法的突出特点在于基于宏块层率失真优化理论,用小尺寸、多模式预测提高空域和时域压缩率,用整数变换量化提高频域压缩率,用增强的熵编码高效压缩符号冗余,从而达到在各种开放环境下高压缩率的设计目标[3]。由于H.264 算法较为复杂,在本设计中,结合DM642 芯片的体系结构,对H.264 编码程序进行规划。采用C 语言和汇编语言混合编程,对一些关键耗时模块采用线性汇编语言编写,以提高代码效率。
H.264 编码时需要进行运动估计和运动补偿,在数据存储器中通常保存一帧原始图像和至少一帧预测图像,因此编码时首先要确定输入的一帧图像编码是I 帧还是P 帧,然后采用小帧模式,对图像进行片组划分和片划分,以确定每个宏块所属的片。划分完后,先编码一个片头,再对每个宏块进行编码,直到编写完所有的片。宏块编码完成后,对重建图像进行1/4 像素插值处理、参考帧缓冲区处理等工作,用于下一帧的高的运动估计,至此,编码一帧的工作完成。
4.3 网络协议的选择
由于视频监控系统对图像数据的实时性要求较高,同时又允许在性能要求范围内存在数据错误率和丢失率。因此,本系统的传输层协议选用UDP 协议。UDP 协议是无连接的传输协议,不提供可靠性措施,不必在数据报丢失或出错时要求服务器再重发,适合于实时性要求高的数据传输场合。
但是由于 UDP 存在不可靠性,基于UDP 的应用程序,必须自己解决诸如报文丢失、重复、失序和流量控制等问题。因此,在UDP 协议之上,还必须使用流媒体实时传输协议RTP。RTP 协议提供实时的、端到端的数据传送服务。采用RTP 协议对视频数据进行封装,即使在某些包被丢失的情况下也能对其他包进行解码。RTP 与实时传输控制协议RTCP 一起配合使用。RTCP 用于监视网络的服务质量和数据接收双方的信息传递,提供关于数据传输质量的反馈,该功能与其他传输协议的流量控制和拥塞控制机制相对应[4]。
由多媒体应用程序生成的视频数据块被封装在 RTP 信息包中,每个RTP 信息包在传输层被封装在UDP 消息段中,然后被封装在IP 数据包中。在进行软件设计时,把RTP 执行程序看成是应用程序的一部分。在发送端,应用程序把RTP 信息包发送到UDP 的套接接口(socket interface)。同样,在接收端,应用程序从套接接口处接收RTP 信息包,并从RTP 信息包中取出视频数据块。
5 结束语
对本视频监控系统在以太网上进行实验。本监控系统使用C/S 模式,在服务器端主机上安装一个VC++开发的流媒体播放器,可以同时接收4 路视频数据流。运行结果表明,本文研制的基于以太网的视频监控系统可以较好地进行视频图像压缩,并能将压缩后的视频数据通过以太网进行实时传输。服务器端解码恢复后的视频图像清晰、流畅、没有抖动现象,效果良好,能够满足实时监控的要求。本视频监控系统可广泛应用于工业控制、公共场所等视频监控领域,具有广泛的应用前景。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。