引言
视频监控系统发展了短短二十几年时间,从早模拟监控到前些年火热数字监控再到现在方兴未艾网络视频监控,发生了翻天覆地变化。在IP技术逐步统一今天,我们有必要重新认识视频监控系统发展历史。从技术角度出发,视频监控系统发展划分为代模拟视频监控系统(CCTV),到第二代基于“PC+多媒体卡”数字视频监控系统(DVR),到第三代完全基于IP网络视频监控系统(IPVS)。
全IP视频监控系统与前面两种方案相比存在显著区别。该系统优势是摄像机内置Web服务器,并直接提供以太网端口。这些摄像机生成JPEG或MPEG4数据文件,可供任何经授权客户机从网络中任何位置访问、监视、记录并打印,而不是生成连续模拟视频信号形式图像。全IP视频监控系统它巨大优势是:
简便性-所有摄像机都通过经济高效有线或者无线以太网简单连接到网络,使您能够利用现有局域网基础设施。您可使用5类网络缆或无线网络方式传输摄像机输出图像以及水平、垂直、变倍(PTZ)控制命令(甚至可以直接通过以太网供)。
强大中心控制-一台工业标准服务器和一套控制管理应用软件就可运行整个监控系统。
易于升级与全面可扩展性-轻松添加更多摄像机。中心服务器将来能够方便升级到更快速处理器、更大容量磁盘驱动器以及更大带宽等。
全面远程监视-任何经授权客户机都可直接访问任意摄像机。您也可通过中央服务器访问监视图像。
坚固冗余存储器-可同时利用SCSI、RAID以及磁带备份存储技术保护监视图像不受硬盘驱动器故障影响。
视频监控系统在工业、军事、民用领域有着广泛的应用,为这些行业的安全防范和环境监控起到了不可忽视的作用。视频监控系统正逐步由模拟化走向数字化,随着半导体技术的飞速发展和多媒体视频编解码技术的日益成熟,高性能、复杂的视频流压缩算法在嵌入式系统中的应用成为了现实。如今监控系统多采用专用处理器或RISC嵌入式处理器与DSP相结合的方法实现,本文探讨的是用ARM处理器与软件压缩相结合的办法实现。
视频监控系统总体设计
首先需要对系统进行总体规划,将系统划分成几个功能模块,确定各个模块的实现方法。整个视频监控系统采用C/S结构,从主体上分为两部分:服务器端和客户端。服务器端主要包括S3C2410平台上运行的采集、压缩、传输程序,客户端是PC机上运行的接收、解压、回放程序。视频监控终端从现场的摄像头捕获实时的视频信息,压缩之后通过以太网传输到视频监控服务器上。 https://www.armforum.cn
如系统结构图(图1)所示,视频图像采集和打包发送在服务器端完成,图像的接收解包和回放将在客户端完成。
ARM
系统的硬件设计 M开发论坛
系统采用模块化设计方案,主要包括以下几个模块:主控制器模块、储存电路模块、外围接口电路模块、电源和复位电路,如图2所示。
S3C2410主控器模块
主控器模块是整个系统的,采用的S3C2410处理器是Samsung(三星)公司基于ARM920T处理器核的16/32位微控制器,该处理器运行频率可达到203MHz,它的低功耗、精简和全静态设计特别适合于对成本和功耗敏感的应用。S3C2410提供了丰富的片内资源,支持Linux,是本系统的合适选择。它能完成整个系统的调度工作,在系统上电时配置所有需工作的芯片的功能寄存器,完成视频流的编码,并通过以太网控制器控制物理层芯片发送视频码流。
系统存储电路模块
主控器还需一些外围存储单元如Nand Flash(是flash内存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等),和SDRAM。Nand Flash 中包含Linux 的Bootloader(是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为终调用操作系统内核准备好正确的环境)、系统内核、文件系统、应用程序以及环境变量和系统配置文件等;SDRAM读写速度快,系统运行时把它作为内存单元使用。设计采用了64M的Nand Flash和64M的SDRAM。
外围电路模块
本设计用到的外设有USB接口,网卡接口,RS232接口和JTAG接口。 ARM开发论坛
视频监控终端的USB主控制器模块通过专用的USB集线器与多个USB摄像头相连。在实时监控状态下,各个摄像头上捕获的图像数据通过USB集线器传输到视频监控终端的USB主控制器模块上,然后再由USB主控制器模块交由S3C2410处理器集中处理。S3C2410对采集到的图像进行实时编码压缩,编码之后的码流直接传输到发送缓冲区中,等候发送。
本设计采用CS8900A扩展网络接口,它是CIRRUS LOGIC公司(一家卓越的无生产线半导体公司,致力于为广阔的音频和能源市场开发高的模拟和混合信号集成电路)生产的16位以太网控制器,通过内部寄存器的设置来适应不同的应用环境。S3C2410通过地址、数据、控制线以及片选信号线对CS8900A网络芯片进行控制和通信。CS8900A与S3C2410的连接如图3所示,CS8900A由S3C2410的nGCS3信号选通,CS8900A的INTRQ0端用来产生中断信号,与S3C2410的16位数据总线相连,地址线使用了A[24:0]。 字串5
CS8900A以太网控制芯片通过DMA通道进行数据的传输。首先设置好传输控制和传输地址寄存器的参数,依次从指定的数据存储区域读取数据,送入内部发送缓冲器中,用MAC对数据进行封装发送。一组数据发送完后,请求DMA中断,由S3C2410进行处理。
RS-232接口与PC机串行总线相连,通过PC机对嵌入式系统进行相关信息显示和控制。而JTAG接口主要是对系统进行调试,还可将程序烧写到Flash中。 字串8
系统的软件设计 ARM
视频监控终端的软件设计主要完成两方面的工作: ARM开发论坛
(1)在硬件上搭建一个软件平台,搭建嵌入式Linux软件开发平台需要完成UBOOT移植、嵌入式Linux操作系统内核移植以及嵌入式Linux操作系统的设备驱动程序的开发等工作。
(2)在软件平台的基础上,开发系统的应用程序。借助交叉编译工具,开发视频监控终端上运行的采集、压缩、传输程序。
构建基于S3C2410的Linux平台
Linux具有许多优点,如开放源码;功能强大的内核,支持多用户、多线程、多进程、实时性好、功能强大稳定;大小功能可定制;支持多种体系结构。
构建嵌入式Linux开发平台需要先构建交叉编译环境,如图4所示。一套完整的交叉编译环境包括主机和目标机。在开发中主机是一台装有红帽公司的FedoreCore 2操作系统(是众多 Linux 发行套件之一。它是一套从Red Hat Linux发展出来的Linux系统,前身即Red Hat Linux)的PC机,目标机是基于S3C2410的视频监控终端。选用的交叉编译器是GCC3.3.4 for ARM版,嵌入式Linux内核源代码包版本号为2.6.8RC。
ARM开发论坛
2.6.8RC版的Linux内核源代码包中包含了所有的功能模块。系统中只用到了其中的一部分。因此,编译内核之前首先要配置内核,裁减掉冗余的功能模块,经过定制的内核才符合系统设计。具体步骤如下:
(1)键入命令make menuconfig,对内核进行配置,选择YAFFS文件系统,支持NFS启动,系统使用的是USB接口的摄像头,故要启用USB设备支持模块,包括USB设备文件支持模块、USB主控制器驱动模块等。此外,USB摄像头属于视频设备,为了使应用程序能够访问它,还需要启用Video4Linux模块。
(2)用make dep命令生成内核程序间依赖关系。 https://www.armforum.cn
(3)make zImage命令生成内核映像文件。
(4)make modules和make modules_install命令生成系统可加载模块。
这样就生成了zImage内核映像文件,把它到目标平台的Flash中。
视频监控终端软件的设计
视频监控终端软件按功能分为三部分:视频采集、压缩、传输。这个软件的开发都是基于先前配置好的嵌入式内核。
(1)视频采集部分
使用Video4Linux接口函数访问USB摄像头设备,捕获实时的视频流。首先完成v4l_struct数据结构的定义,如设备基本信息,图像属性,各个信号源属性等;采集模块一方面通过USB集线器采集USB摄像头中的图像,另一方面启动多个采集线程,分别在不同的端口上监听,一旦有请求连接,采集线程立即从设备缓冲区中把视频流数据读出,放入到视频处理缓冲区中进行下一步的处理。
(2)视频数据的压缩部分 https://www.armforum.cn
在视频监控系统中,大量的数据需要通过网络传输,为了保证传输质量和传输实时性,就需要在传输之前进行编码压缩以减少数据量,本文采用MPEG-4编码标准进行数据压缩。在网络上可以到开源的xvidcore软件作为视频压缩的算法,xvidcore是一个高效的、移植性很强的多媒体编码软件,将它在PC机上进行交叉编译,生成的文件拷贝到目标系统下。
(3) 视频数据传输部分
传输模块的作用在于把压缩之后的视频流传送到远程的PC机客户上,视频流数据的传输是基于TCP/IP协议。视频传输采用了标准的RTP传输协议。RTP是目前解决流媒体实时传输问题的办法,在Linux平台上进行实时流媒体编程,需要使用一些开放源代码的RTP库,如LIBRTP、JRTPLIB等。定义一种较为简单的握手协议:PC机端的采集程序不停地发请求数据包到采集终端,采集终端把已经捕获的图像打包返回给主机。每个RTP信息包被封装在UDP消息段中,然后再封装在IP数据包中发送出去。接收方自动组装接收到的数据帧,还原成视频数据。
结束语
视频监控是安全防范系统的重要组成部分,它是一种防范能力较强的综合系统。视频监控以其直观、准确、及时和信息内容丰富而广泛应用于许多场合。近年来,随着计算机、网络以及图像处理、传输技术的飞速发展,视频监控技术也有了长足的发展。
在视频技术不断的发展情况下,视频监控目前可分为两大类:数字视频监控系统和网络监控( 嵌入式视频监控系统 )。 解决视频监控联网问题,使用北京洛达公司的DSN-3000视频监控联网主机是目前的解决方案,DSN-3000是针对视频监控联网开发的,可以兼容数十个品牌的视频监控系统,可以无缝连接,已经广泛用于北京、广州、杭州、宁波、广西、新疆、河南、山东等地的“3111”平安城市的建设中。
本文介绍了一种基于ARM的视频监控系统的设计方案,采用软压缩算法,讨论了系统的硬件和软件设计。本系统和市场上其它视频监控系统相比,开发周期短,价格低廉,适用于对视频图像要求不太高的场合。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。