基于嵌入式linux视频监控系统毕业论文_第1页
基于嵌入式linux视频监控系统毕业论文_第2页
基于嵌入式linux视频监控系统毕业论文_第3页
基于嵌入式linux视频监控系统毕业论文_第4页
基于嵌入式linux视频监控系统毕业论文_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于嵌入式 Linux 的视频 监控系统的软件设计 广东网站 设计 设计人:王文峰 指导老师:夏利民 专业班级:自动化 0804 基于嵌入式 Linux 的视频监控系统的软件设计 王文峰 自动化 0804 0909081413 1、引言 随着计算机技术及网络技术的迅猛发展,公安、安防行业的发展趋势必然 是全面数字化、网络化。传统的模拟闭路电视监控系统有很多局限性:传输距 离有限、无法联网,而且模拟视频信号数据的存储会耗费大量的存储介质(如录 像带) ,查询取证时十分烦琐。 基于个人计算机的视频监控系统终端功能较强,但稳定性不好,视频前端 (如电压耦合元件等视频信号的采集、压缩、通讯)较为复杂,可靠性不高。基 于嵌入式 Linux 视频的网络监控系统不需要用于处理模拟视频信号的个人计算 机,而是把视频服务器内置一个嵌入式 Web 服务器,采用嵌入式实时多任务 操作系统。 由于把视频压缩和 Web 功能集中到一个体积很小的设备内,可以直接连 入局域网,即插即看,省掉复杂的电缆,安装方便(仅需设置一个 IP 地址),用 户也无需安装任何硬件设备,仅用浏览器即可观看。 基于嵌入式 Linux 的视频网络监控系统将嵌入式 Linux 系统连接上 Web,即视频服务器内置一个嵌入式 Web 服务器,摄像机传送来的视频信号 数字化后由高效压缩芯片压缩,通过内部总线传送到内置的 Web 服务器上。 2、绪论 视频监控系统是安全防范系统的组成部分,它是一种防范能力较强的综合 系统。视频监控以其直观、方便、信息内容丰富而广泛应用于许多场合。近年 来,随着计算机、网络以及图像处理、传输技术的飞速发展,涌现出大量的嵌 入式视频监控系统。 21 视频监控系统概述 视频监控是利用机器视觉和图像处理的方法对图像序列进行运动检测、运 动目标分类、运动目标跟踪以及对监视场景中目标行为的理解与描述。其中, 运动检测、目标分类、目标跟踪属于视觉中的低级和中级处理部分,而行为理 解和描述则属于高级处理。运动捡测、运动目标分类与跟踪是视频监控中研究 较多的三个问题;而行为理解与描述则是近年来被广泛关注的研究热点,它是 指对目标的运动模式进行分析和识别,并用自然语言等加以描述。 22 视频监控系统发展 视频监控技术的发展大致可分为四个阶段:闭路电视系统构建的模拟系统、 数字信号控制的模拟视频监控系统、数字硬盘录像设备为核心的视频监控系统 和现在的数字网络视频监控系统。 第一代视频监控系统是采用闭路电视系统构建的模拟系统,通过摄像机、 监视器、磁带录像机等构成 I 甜。由于模拟矩阵很难做到数十路的切换,不能 与报警系统联动,不能对前端进行控制且价格昂贵、操作管理复杂、很难实现 较大系统的要求,已经逐渐被淘汰。 第二代视频监控系统是数字信号控制的模拟视频监控系统。数字信号控制 的模拟视频监控系统又分为基于微处理器的视频切换控制加 PC 机的多媒体管 理和基于 PC 机实现对矩阵主机的切换控制及对系统的多媒体管理两种类型。 第三代视频监控系统是以数字硬盘录像设备为核心的视频监控系统。90 年 代末,随着多媒体技术、视频压缩编码技术、网络通讯技术的发展,数字录像 监控系统迅速崛起。 数字监控录像系统通常分为两类:一类是基于 PC 机组合的计算机多媒体 工作方式;另一类是嵌入式数字监控录像系统。 1基于 PC 的视频监控录像系统的组成结构为: 兼容工控 PC 机+视频采集卡+普通较可靠的操作系统平台+应用软件 从系统的组成结构来分析: a、PC 机 兼容 PC 机用于 24 小时不间断工作时,其性能通常是不可靠的,工控 PC 机相对兼容 Pc 机的稳定性有一个档次上的提高,适用于较复杂的工作环境; b、操作系统 以 Windows 98 为操作平台的系统:一般来说,Win98 的稳定性是有一 定 问题的,如果同时应用软件又不是很规范,这样就容易在使用过程中出现工作 稳定、死机等问题,而基于 PC 机的视频监控录像系统其软件的实现是在 Windows 9598NT 等通用操作系统上,同时系统文件、应用软件和图像 文件都存储在硬盘上,视频处理必须高密度输入大量数据,同时硬盘要进行多 工工作,普通的硬盘逻辑(如 Windows 的 FAT32)已无法适应,以致极易产生 系统的不稳定性,造成死机现象; c、应用软件 采用简易应用软件的系统是不能够应用安防领域的,视频监控系统的应用 软件能力上应支持多任务并发处理,如监视、录像、回放、备份、报警、控制 等的多工处理能力; d、视频采集卡 视频监控录像系统通常均为多路输入系统,视频采集卡可采用多卡方式, 也可采用单卡方式。一般说,单卡方式集成度高,稳定性会优于多卡方式,很 多采用一路一卡的方式很容易形成硬件冲突,其稳定性会有较大的影响。目前 市场上也有部分为追求高帧数而设计采用多卡进行迭加的多路单卡设备,但其 仍在计算机的总线上进行传输、处理,PCI 总线将是系统的瓶颈,不可能会有 质的飞跃。 22 嵌入方式的数字监控录像系统 嵌入式系统的优缺点 a、系统为专用系统,所以系统小,指令精简,处理速度快 b、系统数据置于 ROMFLASH MEMORY,调用速度快,不会被改变, 稳定性好 C、系统处理实时性好,性能稳定 d、文件管理系统更适合于大量的视频数据 e、该类系统目前四路以上机型还较为少见 f、在网络功能、音视频同步等方面也难令人满意。 第四代视频监控系统一数字网络视频监控系统 1数字网络视频监控系统的原理 数字网络视频监控系统 16J 的关键设备是网络视频信号采集终端( 也被称 为视频服务器) ,网络视频信号采集终端采用嵌入式实时多任务操作系统。摄像 机送来的视频信号在网络视频信号采集终端数字化后由高效压缩芯片压缩,通 过内部总线送到网络接口发送到网络上 l 刀,网络上用户可以直接用在 PC 机上 用浏览器观看网络视频信号采集终端传送过来的摄像机所拍摄的图像,授权用 户还可以通过计算机网络透过网络视频信号采集终端控制摄像机镜头和云台的 动作或对系统进行配置操作。由于把视频压缩和网络功能集中到一个体积很小 的设备内,可以直接连入局域网,达到即插即用,省掉多种复杂的电缆,安装 方便( 仅需设置一个坤地址 ),用户也无需安装任何硬件设备,仅通过 PC 机用 浏览器即可观看。 2数字网络视频监控系统与其它监控系统的比较 a、布控区域广阔 数字网络视频监控系统的网络视频信号采集终端直接连入网络,没有线 缆 长度和信号衰减的限制,同时网络是没有距离概念的,彻底抛弃了地域的概念, 扩展布控区域。 b、系统具有几乎无限的无缝扩展能力 所有设备都以 IP 地址进行标识,增加设备只是意味着口地址的扩充。 c、可组成非常复杂的监控网络 采用基于网络视频信号采集终端为核心的监控系统,在组网方式上与传统 的模拟监控和基于 PC 平台的监控方式有极大的不同,由于视频信号采集终端 输出已完成模拟到数字的转换并压缩,采用统一的协议在网络上传输,支持跨 网关、跨路由器的远程视频传输。 d、性能稳定可靠,无需专人管理 视频信号采集终端实际上基于嵌入式电脑技术,采用嵌入式实时多任务操 作系统,又由于视频压缩和网络功能集中到一个体积很小的设备内,直接连入 局域网或广域网,即插即看,系统的实时性、稳定性、可靠性大大提高,也无 需专人管理,非常适合于无人值守的环境。 e、当监控中心需要同时观看较多的摄像机图像时,对网络带宽就会有一定 的要求。 2 视频监控系统的应用概括来说,目前视频监控系统应用领域主要有以下 一些方面: 教育系统主要是校园安全监控、电子考场监控、网络教学、远程教育等; 电力系统主要是机房无人值守、变电站无人值守、发电厂安全生产管理 监控等; 公检法系统主要是社区监控、城市安全监控、监狱安全监控、庭审直播 等; 部队系统主要是通信机房监控、作战指挥系统、仓储物资监控、基层连 队的日常管理监控系统等; 石化系统主要是油井监控、储油库监控、加油站监控、石化工厂安全生 产监控等; 银行系统主要是银行监控系统的联网、储蓄监控、金库监控等; 铁路系统主要是站内调度管理系统(视频部分) 、站内安全管理、应急指 挥系统等; 税务系统主要是报税服务大厅监控; 钢铁系统主要是安全生产管理监控系统; 医疗系统主要是特护病房视频监控、手术直播及教学系统、日常安全管 理监控等。 本文主要研讨该系统的软件实现部分 3、总体设计 嵌入式 Linux 视频网络监控系统是电工电子装置、计算机软硬件以及 网络、通信等多方面的有机组合体,它以智能化、网络化、交互性为特征,结 构比较复杂。如果利用 OSI 七层模型的内容和形式,把相应的数据采集控制模 块硬件和应用软件以及应用环境等有机组合,可以形成一个统一的系统总体框 架,其系统总体框架示意图如图 l 所示。 系统总体框架示意图 摄像机传送来的视频信号数字化后,经过压缩,通过 RS-232/RS485 将 数据送到内置的 Web 服务器,嵌入式 LJnux 系统的 10/100M 以太网口实现 接入 Internet 网络,将现场信号送到客户端。整个系统的核心是嵌入式 Linux 系统。监控系统启动后,嵌入式 Linux 系统启动 Web Server 服务程序,接 收授权客户端浏览器的请求,Web Server 将根据通信协议完成相应的 监测。 3.1 硬件设计方案 系统硬件结构如图 1 所示,该系统采用 Samsung 公司的 ARM9 内核芯 片 S3C2440 作为硬件平台的中央处理器,该处理器主频可达 400MHz,硬件 接口和资源丰富,存储单元包括 Flash 和 SDRAM,Flash 具有掉电保持数据 的特性,用于存储 Bootloader 启动程序、Linux 内核映像、文件系统以及用 户应用程序等。SDRAM 数据存取速度大大高于 Flash 存储器,用于为操作系 统和应用程序提供运行空间。平台利用 RS232 接口输出调试信息,通过以太 网控制器芯片 DM9000 扩展了一个网口,用于与外部网络进行通信,通过 USB HOST 接口连接 USB 摄像头采集图像数据,经处理器压缩并打包成视 频流后经以太网进行传输,终端用户接收到视频流,解码后即可把视频图像显 示出来。 图1 系统硬件结构图 3.2 软件设计方案 软件平台采用的嵌入式操作系统为 Linux 2.6.13,Linux 具有内核小、 效率高、源码开放、内核直接提供网络支持等优点,但嵌入式系统的硬件资源 有限,因此需根据实际需求对内核进行裁剪,配置所需的功能模块,然后再移 植到硬件平台上。嵌入式系统的软件开发采用交叉编译调试的方式,在宿主机 上安装 Linux 系统,建立交叉编译环境,在宿主机编写程序代码,再利用交叉 编译工具生成目标机上可用的可执行文件,最后向目标机平台移植。 3.2.1 视频采集模块 视频采集模块通过嵌入式 Linux 操作系统调用 Video4Linux(V4L)5和 底层设备驱动程序来完成视频捕获。V4L 是 Linux 中关于视频设备的内核驱 动,它为 Linux 下的各种视频设备提供了统一的编程接口,应用程序通过这些 接口函数就可以操纵各种不同的设备。视频采集流程如图 2 所示。 图2 视频采集流程 (1)打开视频设备。Linux 下的视频设备文件一般为 “/dev/video0”, 通过调用函数 v4l_open( ),利用 vd-fd=open(“/dev/video0”,O_RDWR)打 开设备并获得设备文件描述符 vd-fd。 (2) 获取设备和图像信息。通过 v4l_get_capability( ) 函数获取设备信 息, 通过 v4l_get_picture( )函数获取图像信息。 (3)内存映射。获取图像的方式有两种: read( )直接读取和 mmap( )内 存映射。直接读取方式通过内核缓冲区来读取图像数据,而本文使用内存映射 方式 mmap( ),内存映射方式可以直接把设备文件映射到内存中,进程可以 像访问普通内存一样对文件进行访问,读取效率更高。初始化内存映射时,需 在内存中开辟一块空间,利用 ioctl(vd-fd,VIDIOCGMBUF, make install 。 (4) 交叉编译完成后会生成静态库 libxvidcore.a 和动态库 libxvidcore.so.*,用户程序可利用库文件所提供的编程接口调用 Xvid 里面 的函数。摄像头采集的视频帧为 YUV420 格式,通过 Xvid 编码器的 encoder_encode 函数实现视频压缩,该函数定义如下:int encoder_encode(Encoder * pEnc, XVID_ENC_FRAME * pFrame, XVID_ENC_STATS *pResult);其中,pEnc 为编码器实例的句柄;pFrame 是 XVID_ENC_FRAME 类型的结构体变量,负责传递参数信息给编码器,这 些信息包含色彩空间、编码质量、输入输出数据缓冲区指针等;pResult 是 XVID_ENC_STATS 类型的结构体变量,可以返回编码操作执行的状态信息。 3.2.3 视频传输模块 视频传输模块负责把压缩后的视频流传输到以太网,对实时性要求较高, 本文使用实时传输协议(Real-time Transport Protocol,RTP ),它可以在 一对一或者一对多的网络环境中实现流媒体数据的实时传输。JRTPLIB7是一 个利用 C+语言实现的开源 RTP 库,它完全遵循 RFC 1889 设计,使用 SOCKET 机制实现网络通讯,可运行于包括 Linux 和 Windows 在内的多种 不同操作系统上。本文使用 JRTPLIB 进行实时流媒体编程,发送端操作系统 为 Linux,接收端为 Windows。在 Linux 平台上用 JRTPLIB 进行实时多媒 体编程前,需先对 JRTPLIB 进行交叉编译。 (1) JRTPLIB 初始化通过调用 RTPSessionParams 类的 SetOwnTimestampUnit( )方法设置一个恰当的时间戳,调用 SetMaximumPacketSize( )方法设置允许传输的最大 RTP 包字节数(默认为 1400 字节);通过调用 RTPUDPv4TransmissionParams 类的 SetPortbase( )方法设置发送端数据传输所用的端口号(需为偶数) 。初始化完 这两个变量后,通过 RTPSession 类的 Create( )方法创建一个 RTP 会话。 (2) JRTPLIB 数据传输 RTP 会话创建完成后,还需指定数据发送的目标 地址,RTP 协议允许一个会话包含多个目标地址, 增加或删除目标地址可通 过 RTPSession 类的 AddDestination( ) 、DeleteDestination( )、 ClearDestinations( )方法来实现。目标地址指定之后,通过 RTPSession 类 的 SendPacket( )方法即可向指定的目标地址发送流媒体数据。 SendPacket( )是一个重载函数,具有多种形式,本文使用的形式为:int SendPacket(const void *data, size_t len, uint8_t pt, bool mark, uint32_t timestampinc); 当一帧数据所占字节数大于允许传输的最大 RTP 包字节数 MaxPacketSize 时,需对一帧数据进行分割传输,使每次发送的字节数不大于 MaxPacketSize,可使用 SendPacket( )的 mark 参数来标识传输的 RTP 包 是否属于同一帧数据,若一帧数据需分成 N 次发送,则前 N-1 次发送的 RTP 包的 mark 标志设为 0,第 N 次发送的 RTP 包的 mark 标志设为 1,即以 mark=1 来判断分割传输的数据是否发送完成。实现过程如下: do if(lengthMaxPacketSize) mark=0; 发送长度为 MaxPacketSize 的 RTP 包; length=length-MaxPacketSize; else mark=1; 发送长度为 length 的 RTP 包; break; /一帧数据发送完成 while(1); (3) JRTPLIB 数据接收 接收数据时,以 BeginDataAccess( )函数开始,以 EndDataAccess( )函数 结束。为了能正确接收同一数据源的数据报,必须先对数据源表(source table)加锁, BeginDataAccess( )函数可实现这一加锁操作,确保在使用数 据源表的同时轮询(poll)线程不能访问它,此时可进行数据接收操作,当正确 接收一个数据报后,调用 EndDataAccess( )函数即可实现对数据源表的解锁。 图3 RTP 发送与接收流程图 RTP 发送与接收流程图如图 3 所示。对于分割传输的 RTP 包,根据 RTP 包的 mark 标志来判断一帧数据是否接收完成,若

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论