访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
基于GO7007SB的MPEG-4网络视频监控系统
内容导读:

摘要 主要介绍基于MPEG-4压缩标准的嵌入式网络视频监控系统的总体系统结构设计及两个子系统的结构和功能规划;论述该系统的视频采集、压缩、传输和系统控制等方面的设计;提供基于TCP/IP 协议的B/S 软件结构的设计与实现方法。

关键词 嵌入式系统 MPEG-4 GO7007SB S3C2510 网络视频监控

引言
随着计算机技术、图像处理技术和网络技术的发展,传统模拟视频监控系统和半数字视频监控系统由于自身的不足,已经不能满足现代社会应用中不断涌现出来的新需求,于是新型的网络数字视频监控系统就应运而生了。
简单地说,网络数字视频监控就是将传统的模拟视频信号转换为数字信号,通过网络传输,最后在监控终端通过计算机软件来处理和再现图像信息。系统将传统的视频、音频及控制信号数字化,以IP包的形式在网络上传输,实现视频/音频的数字化、系统的网络化、应用的多媒体化以及管理的智能化。这是监控系统发展的必然趋势。
1系统的总体结构设计
图1是该嵌入式网络数字监控系统的总体结构。系统由嵌入式前端机子系统和PC主机子系统两大部分组成。嵌入式前端机子系统由嵌入式系统和监控现场(摄像机、麦克风、报警设备等)组成;PC主机子系统由安装监控终端软件的PC和监图1系统总体结构控中心数据库服务器组成。这两个子系统通过网络进行数据的交互和信息的传递。传输网络可以是Internet或Intranet,网络须支持IP组播技术。
2基于GO7007SB和S3C2510的嵌入式
前端机子系统2.1嵌入式前端机子系统的硬件结构
远程现场的嵌入式前端机子系统由本地数据源(包括采集视频图像数据的摄像头,采集音频数据的麦克风,以及采集报警信息的报警设备等)和嵌入式采集压缩传输模块构成,硬件电路的功能是实现图像采集、图像压缩、数字图像信号输出以及报警和云台控制等功能。前端机子系统的硬件结构如图2所示。
图2硬件结构图硬件电路主要模块包括:CPU处理单元模块、视频输入模块、音频输入模块、视频输出模块、云台控制模块、Flash、SDRAM、电源模块、调试模块和报警模块。嵌入式系统硬件板卡的工作原理可以表述如下:现场的数据采集设备采集到各自的数据,送给嵌入式系统硬件板卡。嵌入式系统硬件板卡对不同数据进行不同处理:对视频数据交付给MPEG4压缩芯片进行压缩;对音频数据进行PCM编码;对报警通道信息进行匹配处理,看是否有报警事件需要报警输出。然后,将三类数据进行不同的封装,形成视频流、音频流、报警数据流,放到网络接口层,通过一个RJ45接口交付给网络进行传输。另一方面,如果现场摄像机的镜头、云台是可控的,那么需要接收处理的控制信息由网络流入嵌入式终端子系统后,由嵌入式系统软件进行命令解析并发出相应处理指令,来控制现场的摄像机空间的切换及镜头、云台的各种动作等。嵌入式系统硬件板卡集合了数据的采集、压缩、数据交付网络等功能,是系统的数据处理和交互中心。嵌入式系统板卡可以外挂摄像机视频接口输入、麦克风音频接口输入、报警设备报警接口输入以及报警接口输出。
2.2基于GO7007SB的视频压缩模块
嵌入式系统硬件板卡上采用GO7007SB芯片作为系统的MPEG4视频压缩芯片。GO7007SB是美国WIS公司的一款支持多格式的MPEG4视频编码芯片。它采用多种高精度压缩算法,能输出MPEG4、MPEG2、MPEG1、H.263、MJPEG等数据流格式;支持完美的音视频同步输出;图4S3C2510结构框图能在30帧/s的帧率下,以完整的Dl分辨率(NTSC为720/480,PAL为720/576)输出视频流。GO7007SB的内部结构如图3所示。
在MPEG4压缩技术下,GO7007SB能使开发者将高分辨率视频流以较低的码率传输到因特网、宽带网和移动通信网中。该芯片提供了丰富的外围硬件接口:支持10位RGB Bayer视频解码器接口、32位数据、100 MHz的SDRAM 数据总线接口、I2C总线接口、I2S外部音频/PCM 编码器/DSP接口以及灵活的HPI主机接口;可以支持多种类型的CPU,多数CMOS和CCD传感器以及Philips公司SAA711X视频处理器,都能无缝连接到视频输入接口。
2.3基于S3C2510的嵌入式微
处理器模块系统的嵌入式处理器选择Samsung公司的S3C2510芯片。它是一款基于ARM940内核的SOC芯片,结构框图如图4所示,主要功能是实现整个系统的控制和调度管理,如系统级别初始化、配置、用户接口、用户命令执行、PC通信和系统控制等。S3C2510本身也带有众多功能模块,如定时器、Flash/ROM/SRAM控制器、中断控制器、可编程的I/O口、总线仲裁器、DMA通道、DES/3DES加密硬件加速模块、看门狗、USB接口和串口等,为系统应用提供了众多选择和支持。系统中以源码开放的uClinux嵌入式操作系统为子系统的软件开发平台。uClinux是针对控制领域的嵌入式Linux操作系统。它从Linux 2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性,适合不具备内存管理单元的微处理器/微控制器;支持TCP/IP协议,可方便地搭建Web服务器,在嵌入式系统领域得到广泛的应用。
图3GO7007SB内部结构2.4系统的存储器模块
系统的存储器模块采用数据不易失的Flash来存储固化的引导程序、操作系统内核和应用程序,它具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)和擦除等特点,并且可由内部嵌入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用;采用读写速度较高的SDRAM来给uClinux操作系统和应用程序提供运行空间并缓存大量的音视频处理的中间数据。其中,根据ARMBoot、内核映像、应用程序的大小,选用4 MB(2 M×16位)的Flash。根据SDRAM功能的不同及优化整个系统的性能,采用两片SDRAM。一片提供给ARM使用,大小为16 MB(4M×32位)。系统上电后,首先将ARMBoot从Flash读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM指定的地址空间,然后将内核映像下载到SDRAM并运行操作系统及应用程序;同时,系统及用户堆栈、运行数据也都放在SDRAM中,实现网络摄像机的正常工作。另外,音/视频编码算法非常复杂,会产生大量的中间数据。GO7007SB采用1片8 MB(2M×32位)SDRAM作为外部数据缓存器。
2.5ARM与GO7007SB之间的通信
在ARM940和GO7007SB之间,有两种主要的通信模式:
① GO7007SB引导时,ARM向GO7007SB加载代码或重新加载程序;
② 在控制GO7007SB时,使用HPI来实现ARM到GO7007SB通信协议。
为了让系统能够获得最高性能,GO7007SB子系统负责高速的运算处理,S3C2510控制所有子系统。为了让流水线充满,S3C2510必须管理GO7007SB数据空间的数据输入输出。这些是通过HPI的接口来实现的。S3C2510和GO7007SB通过HPI通信。HPI物理上连接GO7007SB端口和ARM的总线控制器BUSC,S3C2510通过编程HPI在GO7007SB内存映射中打开一个32 K字窗口,然后再访问GO7007SB内存。这样,S3C2510和GO7007SB都可以访问SDRAM,从而有效地共享大量的图像数据块。S3C2510和GO7007SB共享一种数据结构,用于命令请求、确认和数据的交互。
3PC主机后端子系统
PC主机后端子系统由1台或多台配置相对较高的监控主机以及1台数据库服务器组成。监控主机安装有监控终端软件,不管该监控主机处于何处,只要该监控主机通过了监控授权认证,然后做加入要监控摄像机对应的组播组的工作,那么该主机就可以远程监控该路摄像机了。当然,前提是摄像机正处于工作状态,而且网络传输畅通。数据库服务器负责监控的申请处理以及权限的控制和认证工作,同时负责存储各监控主机的参数信息、现场摄像机群的各个参数信息以及记录报警事件的信息,方便用户查询。
PC主机后端子系统的核心部分是监控终端软件。安装有监控终端软件的PC主机,在通过了监控授权和认证之后,就可以根据自己的需要任意选择监控现场来进行实时监控。它既可以完成对远程现场视频图像数据的实时接收、播放和存储,也可以发送控制命令来控制各个现场的摄像机切换,镜头、云台的动作,又可以接收并处理各现场的报警信息。
该子系统通过传输网络获得从嵌入式终端子系统出来的音频视频数据流和报警数据,对音频视频流的处理使PC用户获得远程现场的实时信息,对报警数据的处理使用户知晓远程现场的设备运行情况和各类报警信息,帮助用户及时作出决断和采取措施。控制流由PC主机子系统主动发出,通过传输网络最终到达嵌入式终端子系统,由嵌入式终端子系统来辅助实现用户对远程现场的摄像机镜头、云台的参数变化以及报警通道的开关和参数设置等进行控制。
4数据存储方案
多媒体监控系统以其多媒体累积数据量大为显著特征。如何妥善地设计多媒体数据的存储方案,是一个评判多媒体远程监控系统优劣的重要标准之一。本系统中在正常情况下,嵌入式终端子系统在接收现场监测设备采集到的数据后,进行MPEG4的压缩编码,然后处理封装后发送, PC主机子系统负责实时数据的接收和解码播放,同时做数据的存储工作。运行监控终端软件的每台PC主机可以选择接收存储16路视频。网络出现故障时,可以设定让现场设备暂存,在网络恢复时再将不足的数据补回。这种存储方案有利于视频数据的分散存储,嵌入式前端机子系统只需准备较小容量的空间来缓存网络故障情况下的视频数据。
5PC主机监控终端软件的设计与实现
PC主机监控中心是整个视频监控系统的中枢。它的主要功能如下:
◆ 通过局域网向前端机发送用户控制指令,如前端机的选择、视频通道的选择、图像参数(包括帧速率、码流量的大小、色度、亮度、饱和度和对比度)的调节、声音编码音量的调节等;
◆ 接收多路前端机的视频编码数据,保存在本地硬盘上,同时进行解码,并显示多路解码图像;
◆ 点播保存视频数据,供客户端查询;
◆ NTSC/PAL选择功能;
◆ 报警管理、录影、备份、查询等,能在同一画面上同时观看多路图像;
◆ 可选择画面更新速度、画面大小、画面品质、摄影机数目、使用者数目。
PC主机监控终端软件模块清单如表1所列。
表1PC主机监控终端软件模块
模块名称〖〗功能用户连接模块〖〗网络摄像机验证用户身份,并获得相应权限网络接收模块〖〗向摄像机发出监控要求,接收前端网络摄像机监控点视频数据解码模块〖〗处理接收数据,得到1帧图像,然后解码显示模块〖〗实时显示解码视频数据视频点播模块〖〗接收客户端用户的要求,将保存的视频文件进行视频点播图像保存模块〖〗将接收的视频数据保存到图像库(抓图)或录像(如AVI或MPG)视频回放模块〖〗对保存的视频流文件进行回放云台控制模块〖〗控制云台、镜头、雨刷辅助设备系统设置模块〖〗管理员对网络摄像机进行设置参数,可以增加、删除用户等图像报警模块〖〗远程启动报警提示模块,提醒用户;将故障状态写入故障文件或者Email报警、FTP报警动态检测模块〖〗监控地点有运动目标及时报警并保存现场图像
该PC主机监控终端软件采用B/S模式,选择了SQLServer作为系统的数据库。监控中心服务器软件是在Windows 2000下用VC++6.0开发的。首先,服务器程序将根据配置文件的系统参数进行初始化,这些系统参数用户可以根据自己的需要在配置文件中进行修改。然后,程序向指定IP的网络摄像机发出连接要求,并建立会话,接收网络摄像机发送过来的视频流,实时解码显示,并可保存视频流为MPG格式文件。监控中心服务器对视频保存文件进行视频点播,以供远程客户端查询。
客户端程序采用ActiveX 技术来实现,使得用户可以在不安装客户端软件的情况下,直接通过IE浏览器就可以选择浏览到监控页面。由于ActiveX 控制可以直接嵌入Web页面,随着Web页面进行传播,不需要配备任何的网络环境,只要满足Internet/Intranet 的标准,并且用户在客户端几乎不需要任何配置,只需安装IE3.0 以上版本的浏览器就可以了。系统采用组播传输模式,组播技术将重复数据流的发送用单一数据流的发送代替,网络中的数据流量不会因为接受者数量的增加而增加。
整个联网大系统中设置1台或数台中心管理服务器。中心管理服务器对整个系统进行管理,包括指挥、调度、权限设置、跨网络的监控、录像查询等网络中心管理监控控制功能。网络上的任何一台监控端均可在授权或申请下对联网的大系统中任何一台监控前端机进行调看、控制、查看历史图像等。
结语
该监控系统稳定性高, 支持基于Internet的数据传输,B/S的结构体系允许用户进行远端操纵系统的工作方式。系统的各个子模块相对独立,通过采用MPEG4视频压缩技术,图像高清晰,画质可接近DVD效果,能够实现单画面轮流监看和1~16个画面同屏监看。支持远程和本地云台控制,支持多任务工作方式,而且图像存储、监看、远程控制可同步进行。监控距离随网络延伸而不断加长,具有良好的发展应用前景。
参考文献
1GO7007SB MPEG Encoder Datasheet. WIS Technologies, 2003
2Samsung Electronics. S3C2510A 32BIT RISC MICROPROCESSOR USER'S MANUAL.  2003
3刘富强. 数字视频监控系统开发及应用. 北京:机械工业出版社, 2003
4万加福. 网络监控系统原理与应用.  北京: 机械工业出版社,2003

标签:
来源:单片机与嵌入式系统应用 作者:西南交通大学 田晓;四川师范大学 李艳莉 时间:2006/2/12 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐