(信号与信息处理专业论文)基于linux环境的视频监控前端设计及系统实现.pdf_第1页
(信号与信息处理专业论文)基于linux环境的视频监控前端设计及系统实现.pdf_第2页
(信号与信息处理专业论文)基于linux环境的视频监控前端设计及系统实现.pdf_第3页
(信号与信息处理专业论文)基于linux环境的视频监控前端设计及系统实现.pdf_第4页
(信号与信息处理专业论文)基于linux环境的视频监控前端设计及系统实现.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 随着微电子、通信以及计算机技术的迅速发展,视频监控技术及其设备产品也不断 推陈出新,传统的监控方式己不能满足日益增长的市场需求,数字化、网络化、小型化和 智能化已经成为当前监控产品的主要发展趋势。 本文的主要目的是构造一个性能稳定且具有较强处理能力的数字化视频监控前端。 对于前端系统,除了应当具有通用的网络接口和可靠的本地存储能力外,我们还希望它能 集成一定程度的智能处理能力,并具有较高的稳定性和适用性。为此,我们提出了一种基 于p c 结构和l i n u x 操作系统的设计实现方案。采用p c 结构可以有效利用各种现有的计算 机技术以增强前端的功能和处理能力;而采用l i n u x 不仅在操作系统层次上保证了稳定性, 更重要的在于它小巧的内核和系统重组的灵活性使我们可以方便地实现整个软件系统和数 据载体的小型化,这有利于构建一个小型稳定的前端系统。 本文首先介绍视频监控系统的一般结构和发展概况,并阐述了当前监控系统的发展 趋势以及本文的主要工作。 第2 章对目前监控前端的几种实现方案做了分析和比较在此基础上提出了本文的 实现方案。 第3 章讨论了l i n u x 环境下视频采集处理软件的设计,结合l i n u x 下的一些重要机制 ( 如消息投递、信号响应以及进程问同步等) 对软件系统的整体结构和各个模块的具体实 现做了较为详细的探讨。 网络传输和客户端软件的设计不是本文的重点,因此我们只在第4 章中作简单讨论。 第5 章中,我们对l i n u x 在嵌入式系统中的应用以及如何构建一个适用于视频监控 的小型l i n u x 系统做了研究。通过对内核及文件系统的裁剪和重配置,我们实现了一个仅 为几兆字节大小的软件系统( 含操作系统和应用程序) ,并采用性能更为稳定的小型f l a s h 盘取代计算机硬盘作为程序和数据的载体。 在全文的最后部分,我们对即将成为新一代视频压缩标准的h 2 6 4 标准草案做了初 步的研究,对其编解码器的结构和所引入的一些新特性做了简单介绍和分析,希望能为后 续研究者提供一些帮助。 关键字:视频监控,l i n u x ,嵌入式系统,i - i 2 6 4 a b s t r a c t a b s t r a c t w i t ht h ef a s t i m p r o v e m e n t s i n m i c r o e l e c t r o n i c s ,t e l e c o m m u n i c a t i o n s ,a n d c o m p u t e rs c i e n c e ,n e ws u r v e i l l a n c et e c h n i q u e sa n dp r o d u c t sa r ep r e s e n t e dq u i c k l y a n dc o n t i n u o u s l y t r a d i t i o n a ls u r v e i l l a n c em e t h o d sc a nn o tm e e tt h e i n c r e a s i n g r e q u i r e m e n t s o ft h em a r k e t a n ym o r e d i g i t a l ,n e t w o r k b a s e d ,m i n i m i z e d ,a n d i n t e l l i g e n ts u r v e i l l a n c es y s t e m s a r et h em a i nt r e n d si nt h en e a rf u t u r e i nt h i s p a p e r ,w ep r e s e n t ad e s i g ns c h e m eo ft h ef r o n t e n do ft h ev i d e o s u r v e i l l a n c es y s t e mb a s e do np c - s t r u c t u r ea n dl i n u xo p e r a t i o ns y s t e m b ya d o p t i n g t h ep c s t r u c t u r e ,w ec a l lu s et h ea v a i l a b l ec o m p u t e rt e c h n o l o g yc o n v e n i e n t l ya n d r e a l i z et h eg e n e r a ln e t w o r ki n t e r f a c ee a s i l y b yu s i n gl i n u xa st h eo p e r a t i o ns y s t e m , w ec a nm a k eo u r s y s t e mm o r es t a b l e ,e n h a n c ei t sn e t w o r kf u n c t i o n a l i t ye a s i l y , a n dt h e m o s ti m p o r t a n tt h i n gi st h a tt h em i n i m a lk e m e lo fl i n u xc a nh e l pu st or e a l i z ea m i n i m a lf r o n t - e n ds o f t w a r es y s t e m ,w h i c hc a nb es t o r e di ns o m es m a l la n ds t a b l e s t o r a g ed e v i c e s i nt h ef i r s tp a r to ft h i sp a p e r , t h eg e n e r a ls t r u c t u r ea n dt h ed e v e l o p m e n ts i t u a t i o n o ft h ev i d e os u r v e i l l a n c es y s t e ma r ei n t r o d u c e d a l s o ,o u rm a i nw o r ko ft h i sp a p e ri s d e s c r i b e d i nc h a p t e r2 ,s o m ed i f f e r e n tr e a l i z a t i o n so ft h ef r o n t e n ds y s t e ma r ec o m p a r e d , a n da f t e rt h a t ,o u rd e s i g no f t h es y s t e mi sp r o p o s e d i n c h a p t e r3 ,w e d i s c u s st h es o f t w a r e d e s i g n o ft h i sf r o n t - e n da n dt h e d e v e l o p m e n to fs o m ei m p o r t a n tm o d u l e s i nd e t a i l i nt h i sc h a p t e r , s o m ek e yf e a t u r e s o fl i n u xa r ea l s oi n t r o d u c e d t h er e a l i z a t i o n so ft h en e t w o r km o d u l ea n dt h eu s e r e n ds o f t w a r ea r ee x p l a i n e d i nc h a p t e r4 t h i sp a r ti sn o tt h ee m p h a s i so f t h i sp a p e ra n dw e j u s td i s c u s s e di tb r i e f l y h e r e i n c h a p t e r5 ,h o wt o b u i l dam i n i m a ll i n u xs y s t e mi sd i s c u s s e d ,a n di nt h i s c h a p t e r w e d e v e l o p e d as o f t w a r e - b a s e d s m a l lf r o n t e n d s y s t e m ,i n c l u d i n g i t s o p e r a t i o ns y s t e ma n da p p l i c a t i o np r o g r a m s ,w h i c hc a n b es t o r e di nas m a l lf l a s h d i s k ( 1 e s st h a n8 m b ) i nt h ef i n a lp a r t ,w ei n t r o d u c et h en e wv i d e oc o m p r e s s i o ns t a n d a r dd r a f t h2 6 4 t h ef r a m e w o r ko ft h ee n c o d e r d e c o d e ra n ds o m en e wc h a r a c t e r i s t i c so fh 2 6 4a r e d i s c u s s e di nb r i e f n e s s k e y w o r d s :s u r v e i l l a n c es y s t e m s ,l i n u x ,e m b e d d e ds y s t e m ,h 2 6 4 学位论文独创- 性声明 y 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包 含其他人己经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签 名:叠阻日 期:。业l 3 哆 关于学位论文使用授权的说明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学 位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。 本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文外, 允许论文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分内容。论文 的公布( 包括刊登) 授权东南大学研究生院办理。 签名:丑蚪导师签名:拗日期: 汐歹尹 哆 第一章绪论 第一章绪论 本章首先对监控系统及其发展概况做一个简单的介绍。 1 1 监控系统概述 人们对周围环境的感知和分析能力通常受到人体器官本身物理能力的限制,如:不能 同时专注于多个渠道的信息获取:所关注的空间范围受限于感觉器官的物理能力;同一时 间内对信息的储存和处理能力有限:等等。而对于监控系统,我们可以把它看作是一个对 人们感知外界事物起辅助作用的技术工具,它可以有效地扩展人们所能观察的时空范围以 及增强人们对监控现场的观察和分析的能力 1 】。 当然,监控系统所能提供给人们的辅助是与监控技术的发展相适应的,当前的监控技 术领域是一个涉及数字信号( 尤其是图像信号) 处理、通信、计算机视觉等多个方面的“全 数字”技术领域,系统所集成的传感器越来越多,其灵活性和健壮性也越来越好。 当前,随着人们生活水平的日益提高,公众对城市居住环境和公共场所的安全要求也 随之目益提高,而低价传感器和处理器的普及,则大大提高了人们对监控系统的兴趣。另 外,相关领域一些技术和理论算法的成熟,也使得监控系统在安全、交通、工业自动化等 领域拥有了更大的应用空间,特别是无人环境下的远程监控近年来受到了极大的关注。可 以看到,目前监控系统的应用主要在以下几个方面: 交通安全:铁路、车站、机场、公路等场所的安全监控: 工业领域的安全和质量控制:如电厂以及一些自动化设备的监控: 居住环境和公共场所安全:如银行、超市、大厦、停车场,以及对病人和一些特殊群 体的远程监控等: 军事领域:空中监视、战场中对部队移动的监视等。 1 2 视频监控系统的一般结构 监控系统往往涉及视觉、听觉以及其它物理传感器,不过我们通常把视觉信息的采集 和处理作为主要的考虑方面,一般来说,图像视频信号的采集、通信、处理和理解通常被 认为是一个监控系统的基本组成,这主要是基于以下一些原因: 1 )基于时间组织的视觉信息是人们的主要信息来源。 2 )若考虑到所覆盖的范围以及所提供信息的可分析性,则视觉传感器的成本相对于 其它类型的传感器是最低的。 3 ) 随着摄像头数目的增加,直接由人眼和人脑对事件的视觉信息进行人为监控易于 使操作者产生疲劳并造成错误。这时,监控系统对视觉信息的自动处理可以看作 是一个置于人眼之前的“前置滤波器”,对于一个高水平的监控系统的人机交互界 面,所提供的应当是友好且易于操作人员接受的信息表征。 3 第一章绪论 4 )在视频,图像处理和模式识别领域存在大量成熟的理论和技术,这有利于构造有效 和健壮的实时系统。 本文主要讨论视频监控系统。视频监控系统的一般结构如图1 1 所示,整个系统通常 由3 个主要部分组成:视频采集设备、视频信号传输通道、面向操作人员的显示和处理设 备1 2 0 】。 图1 - 1 多媒体监控系统的组成 前端视频采集设备主要完成监控视频信号的采集和预处理。通常,一个采用c c d 传感 器的模拟摄像头就构成了一个简单的前端视频采集设备,其输出为p a l 制或n t s c 制的电 视信号。为了方便视频数据的传输,现在的视频采集前端往往还要完成视频信号的数字化 和压缩编码,以及与其它附加信息的复合。为了能从多角度进行现场监控,视频采集前端 还配有转动云台,因而前端还包括了云台电机伺服控制。还有的视频监控系统为了能同时 监控多个现场,将多个前端采集的视频信息通过多画面分割器进行复合,由此多个前端和 多画面分割器共同构成一个前端视频采集系统 18 】。 视频通信传输设备主要完成视频传输的工作。以往,一根传输视频信号的同轴电缆便 构成了简单的视频通信传输设各。现在,随着通信技术的发展和通信网的建设,视频信号 的传输也有了多种方式。就视频信号本身而言,可用的信道可以是模拟传输信道也可以是 数字传输信道,可以采用有线传输方式或无线传输方式。为了有效利用现有的通信网,普 及监控的范围,现在利用i n t e m e t 的监控视频传输方式已经成为研究与应用的热点。 终端视频显示和处理设备用于完成视频的显示、后处理和存储工作。简单的视频终端 可以是一台模拟电视监视器还可以配接电视录象设备以完成视频的存储。随着视频监控 系统向数字化发展,终端设备可使用服务器和大容量数字硬盘作为终端视频的显示和存储。 同时终端设备还提供了友好的人机交互界面,并与计算机数据库相结合为终端用户提供监 控信息的浏览、查询和检索等功能。 1 3 监控系统的发展 电子视频监控系统的发展可以从技术角度将其分为连续的3 代,其最早的出现通常被 认为是在1 9 6 0 年代,标志为闭路电视系统的出现从而使得在线监控成为可能【1 。 第一代视频监控系统( 1 g s s ,1 9 6 0 1 9 8 0 年代) 这一代监控系统主要是对人们的感知能力进行空间上的基本扩展,它通过采用多个摄 像头从多个远端位置获取视频信号并在一个地点( 通常是监控中心) 进行集中显示和存储。 这类系统是完全基于模拟信号的传输、处理和存储的。视频信号通过远端的摄像头采 集,通过模拟线路传输给控制中心,位于控制中心的操作人员通过一组模拟监视器对各个 场景进行监控。图l 一2 表示了一个典型的i g s s 系统。 4 第一章绪论 图l - 2 第一代监控系统结构示例i l 】 第一代监控系统的限制和弊端主要是由模拟信号处理和传输技术产生的: 1 )由于模拟信号传输对带宽有着较高的要求,监控通道的数目通常受到限制。 2 )传输过程中噪声会损害视频信号质量,而且很难恢复。 3 )由于这类系统对于视觉信息的报警检测主要依赖监视器前的操作人员,因此当监 控场点增多或事件复杂度增加的时候,对于视觉信号的报警检测难度增加,唯一 有效的解决方法是增加操作人员的数量。 4 )对于磁带等模拟存储介质进行信息检索是较为困难和烦琐的事情。 第二代视频监控系统( 2 g s s ,1 9 8 0 2 0 0 0 年代) 从1 9 8 0 年起在多个基础技术领域出现了高速的技术提高,摄像头分辨率的提高以及 低成本计算机的普及促进了视频处理和检测算法的发展,它们同早期的数字视频通信一起 推动了第二代监控系统的发展。 这一代系统主要受益于数字视频通信和处理技术:采用数字编码技术后,传输信号所 占用的带宽大大减少,传输可靠性则得到增强:通过数字图像处理技术,可以对视觉信息 进行预处理以方便操作人员对重要事件进行监控。这一期间人们对监控技术的研究涉及很 多领域,包括二维( 2 d ) 图像序列的分割、实时分析、复杂场景下的多目标对象跟踪和识 别、人类行为理解、多传感器数据融合、智能人机界面、视频处理算法性能分析、无线和 有线宽带接入网、新的视频压缩算法以及多媒体数据传输等等。 但是,第二代监控系统只对信号的传输和处理提供了数字化的解决方案,它对系统的 划分以及许多个别问题的解决并没有提供数字化的解决方法。另外,对于第二代监控系统, 人们衡量其性能的主要依据是图像画面的质量以及有效监控的视频通道数量。 第三代视频监控系统( 3 g s s ,从本世纪初开始,目前还在发展中) 这一代监控系统的主要目标是提供系统设计上的全数字化解决方案,包括从传感器层 面到面向操作人员的信息表达层面提供全数字的解决方案,它更强调系统的智能处理功能。 第三代监控系统的主要技术基础之一是宽带多媒体数字通信,另一项则是嵌入式数字 传感器的出现,从而可以对采集到的信号进行本地处理。另外,处理器计算能力的提高以 及相应硬件成本的降低,也有利于系统自动化、智能化的提高。因此,推动第三代监控系 第一章绪论 统发展的技术主要基于3 方面: 1 )宽带多媒体数字通信技术。 2 )处理器硬件成本的快速降低。 3 )嵌入式智能处理系统的出现。 图1 - 3 第三代监控系统结构示例【l j 图1 - 3 表示了一个典型的3 g s s 系统,其中摄像机构成了传感器层,周边的智能处理 和传输设备构成了本地处理层,传感器和本地处理层可以合并在一起构成所谓的智能摄像 头,本地处理层采用数字压缩以节约带宽。网络层的主要功能器件是所谓的智能节点,它 将对来自各低层的数据进行面向应用的组合与处理,提供给更高层。在操作者层面,智能 人机交互界面能辅助操作人员更有效地对感兴趣事件进行监视和处理。信号的传输完全采 用数字方式,通信介质可以是无线局域网也可以是移动数字设备( g p r s ) 及宽带媒质如 光纤等。 由于目前已有越来越多功能强大的通信方式、传感器和处理单元供选择,因此系统的 结构选择具有高度的灵活性和多样性,合理的定制可以获得满意的效果。与此同时,系统 架构本身也开始成为一个重要问题,采用不同的架构可以使处理智能位于从传感器到控制 中心的不同层次上,而多种网络和传输机制的采用也是多样性的一个来源。 从通用意义上,一个3 g s s 系统应当支持以下几点: 一组面向用户充分扩展的功能以及与之相应的一组传感器功能单元,可以为监控 任务提供足够的空间和时间上的支持( 功能完整性) 。 基于同一组采集所得的数据,根据不同的接入用户提供多种不同的服务( 可控的 多用户访问) 。 分配给一个和多个功能单元的一组功能,可以根据当前激活的服务以及工作条件 进行灵活的改变和重配置( 基于工作单元的重配置性) 。 6 第一章绪论 当然,对于一个完整的监控系统下面两项功能也是应当包括的: 用于产生实时报警的实时报警机制( 实时响应) 。 分布的数字存储能力,用于提供可供访问的本地数据库,离线记录一些突发的本 地事件( 离线记录) 。 1 4 本文的工作 本文的主要目的是构造一个性能稳定的嵌入式视频采集处理前端。为此,我们对l i n u x 环境下视频采集处理软件系统的构造以及l i n u x 在嵌入式系统中的应用进行了一系列研 究。在下面的章节中,我们将对目前的网络监控系统的一般结构、我们的设计方案、l i n u x 环境下视频采集处理软件的设计和实现、以及如何构建一个适用于监控系统的小型l i n u x 系统进行具体讨论;客户端软件和网络模块的构造不是本文的重点,因此我们只在第4 章 中简要提及;在全文的最后部分,对新一代视频压缩标准草案h 2 6 4 的一些新特性做了探 讨,当然,这部分工作只是最初步的,有待于后续者进一步研究。 第二章系统设计方案 第二章系统设计方案 本文的主要目的是构建一个具有高度稳定性的以视频为主的前端采集设备,本章首先 讨论一下目前监控系统的一般结构。 2 1 系统整体结构 图2 - 1 给出了一个数字视频监控系统整体结构的简单示例。 图2 - 1 数字视频监控系统的整体结构 可以看到,整个系统可分为4 个层次3 个部分,其中传感器层和本地处理层构成了前 端采集设备,完成数据的采集和本地处理:网络层构成数据的传输通道,既可以是内部的 局域网,也可以是像i n t e m e t 这样的广域网以及其它的数字通信方式:监控中心接受来自 各个监控现场的数据,进行汇总、分析和自动处理,并通过人机交互界面给操作人员提供 友好的信息表征,同时也对各个采集前端的工作方式进行管理。 由于采用计算机网络作为信息传输通道,用户无需身处监控中心也可以对数据信息进 行浏览。通过网络服务,用户既可以实时地对监控现场进行监控,也可以通过视频点播的 方式浏览过去存储的信息。这种网络服务既可以由监控中心的服务器提供,也可以直接由 前端采集设备提供,而用户通过所在地的台式p c 或者随身的笔记本计算机,只需要接入 计算机网络即可进行数据浏览。当然,根据不同的服务方式,用户可能需要有专门的客户 端软件,而当服务器提供w e b 服务方式时,用户只需具有i e 等w e b 浏览器即可。通过 计算机网络对信息进行访问的用户通常会受到权限限制,普通用户可能只能对某些监控现 第二章系统设计方案 场的信息进行浏览和查询。而一些高级用户则可以对前端工作单元以及控制中心进行远程 管理。 由于前端采集设备是本文研究的重点,下面我们将对其实现方式进行讨论。 2 2 前端设计方案 由于普通的摄像头等传感器设备不具备数字通信接口,无法直接接入计算机网络,为 了实现远程监控和进行有效的数据传输,需要把摄像头和本地处理单元结合在一起构成前 端采集设备,由本地处理单元提供网络接口。 对于采集前端的构造。目前主要有两种方案,一是利用小型嵌入式设备( 采用d s p 或 嵌入式处理器等技术) 实现,构造所谓的“智能摄像头”或“i p 摄像头”,如图2 - 2 便给出 了一种基于嵌入式处理器的构造方式:另一种方案则是采用基于p c 的平台,摄像头通过 采集卡等设备按入计算机,再通过网卡等通信接口联入网络。 图2 - 2 一种基于嵌入式处理器的监控前端实现方案【1 8 】 比较上述两种方案我们可以看到,采用小型嵌入式系统的优点在于结构小巧,性能稳 定,系统专用性强并适合应用于多种场合,是最为理想的一种方案,但由于前端系统中 需要同时集成视频采集、压缩处理、必要的数据存储检索以及网络通信等一系列功能,这 样的嵌入式系统对软硬件设备及开发通常都有着极高的要求,其所能实现的功能在很大程 度上受到硬件设备的限制;另外,由于视频的压缩标准仍在不断发展中,用户的需求也多 种多样且日益提高,因而专用设备的灵话性就显得欠缺。而采用后一种方案,依托计算机 的处理能力以及服务器操作系统强大的网络支持功能,可以有效地增强前端系统的功能, 并可以方便地利用软件编程实现对多种信号媒体和传感器参量的监控,同时其开发成本也 较低,但缺点则是系统成本较高,专用性不强,可靠性不如专用系统,在许多场合应用( 如 无人、小型、低功耗等) 受限。为了增强前端的稳定性并使其可以在一些恶劣的环境下工 作,我们可以使用专门的1 业机箱,并用f l a s h 电子盘代替计算机硬盘存储数据,以提高 系统的稳定性能。 总的说来,采用嵌入式前端是大势所趋,本实验室的刘毅峰和周林两位硒究生此前已 经开始了利用嵌入式系统实现“i p 摄像头”的工作,本文的主要工作是利用计算机平台构 9 第二章系统设计方案 造工作于l i n u x 操作系统下的前端采集软件系统,并希望最终向基于l i n u x 的嵌入式系统 移植。 2 3 系统实现方案 由于本文的主要工作是构造前端系统,因此在实现上采用图2 3 的系统平台,前端由 摄像头、采集卡和p c 机组成视频采集服务器,采用l i n u x 操作系统。因为不涉及专用的 嵌入式设备,并且l i n u x 本身是免费的,因此系统的开发成本较低。同时,l i n u x 作为一种 优秀的网络操作系统,不仅具有极好的稳定性,而且可以提供极为强大的网络服务功能, 这些都是我们所需要的。另外,由于近年来l i n u x 在嵌入式领域得到了广泛的应用,在l i n u x 操作系统环境下开发的系统今后也可以较为方便地向嵌入式系统移植。客户端依然采用 w i n d o w s 作为操作系统平台,并提供图形化的人机交互界面,以方便用户进行远程浏览和 管理。 图2 - 3 系统实现平台 对于前端采集处理的控制软件,为了方便以后向基于l i u n x 的嵌入式系统移植,我们 采用标准c 语言开发,并且所用到的函数调用基本上都采用l i u n x y u n i x 环境下的标准系统 调用,由于系统调用直接进入内核运行,而不涉及外部库函数,从而使得系统的可移植性 增强:对于网络通信模块,由于涉及不同操作系统间的通信,我们采用基于基本s o c k e t 的 c c + + 语言编程实现:而客户端软件工作于w i n d o w s 环境,并且向用户提供人机界面,在 实现上采用与w i n d o w s 兼容最好的v i s u a lc + + 开发环境。 1 0 第三章l i n u x 环境下视频采集处理软件系统的设计与实现 第三章l i n u x 环境下视频采集处理软件系统的设计与实现 本章将详细讨论l i n u x 操作系统环境下用于控制多路视频采集和进行本地处理的软件 系统设计方案和具体实现。 由于我们的设计目的是前端能在无人值守的环境下工作,也就是说只要启动电源并接 入互联网后,只要不出现意外掉电,系统就应当能长时间稳定地工作,并且在一般情况下, 用户只需通过网络登陆即可实现系统管理。因此,作为前端服务器的p c 机,大可不需要 显示器和鼠标键盘之类的交互外设,并且在很多情况下前端可利用专用的工业机箱来实现。 这样,对于前端系统来说,就无需设计专门的用户界面,即不需要前端的人机交互,程序 只要在启动时读入必要的配置文件使系统按用户预设的要求开始正常工作,而后所有的控 制命令都接受自从网络上远程登陆的授权用户。而对于视频采集处理模块,这部分命令都 是来自网络服务器模块的。从视频采集处理模块的角度看,网络服务模块即相当于一个人 机交互界面,它从网络模块获取控制信息,并将网络模块所要求获得的数据信息传递给网 络模块。 对于整个前端软件系统,其功能大致可以分成两大部分一部分是对视频及其它媒体 数据的采集和处理,包括数据的多路实时采集、数据的压缩编码、对重要数据的存储以及 对存储数据的检索回放、对采入信号进行智能处理并实时产生报警信号等;另一部分则包 括网络通信控制、向用户发送数据信息及接受用户的远程控制命令等。我们的系统也据此 划分为两大模块:视频采集处理模块和网络服务器模块。整个前端系统的模块结构如图3 1 所示。 图3 1 采集处理前端模块结构 视频采集处理模块是一个本地模块,我们在设计中将努力保证该模块中不包含任何与 网络通信有关的信息,所有和网络通信相关的具体信息都在网络服务器模块中加以处理, 目的是为了加强模块之间的独立性便于系统的维护和升级:当我们需要对网络服务器模 块进行改动以增强系统的网络服务功能时,就不需要对视频采集处理模块做什么修改。 第三章l i n u x 环境下视频采集处理软件系统的设计与实现 下面将结合l i n u x 操作系统下的一些机制对各个模块的功能和具体实现方式做讨论。 3 1 多路视频采集模块的设计与实现 如果一台p c 机仅用于单路视频数据的采集和处理,无疑是对资源的极大浪费,因此 我们所要实现的是多路视频采集和处理。 在同一台p c 机上实现多路视频采集可以采用多路采集卡,也可以采用一机多卡的方 式,包括在同一台计算机上安装多块单路采集卡甚至多块多路采集卡,例如对于台拥有 4 条空闲p c i 插槽的计算机,若同时安装4 块4 路采集卡,即可同时完成1 6 通道的视频数 据采集。 对于多路视频采集,目前国内的普通采集卡通常采取分时处理的方法来实现多通道采 集,在实现上一般无法做到多路实时,而一些国外视频采集卡虽然已经能够实现多路实时 采集,但大都价格不菲。 本系统采用了北京微视公司基于b t 8 4 8 芯片的单路多路视频采集卡及s d k 开发包, 支持l i n u x 环境下的一机多卡工作方式,其多路采集通过分时处理方式完成。 3 1 1l i n u x 下的视频采集方式 对于l i n u x 环境下的视频采集,通常有以下几种方式实现。 1 ) 单帧采集模式:这是最简单的实现方式,一般的采集卡驱动都会提供这种方式。在 l i n u x 下安装硬件设备时,超级用户需要在d e v 目录下创建相应的设备文件,而系统所有 涉及硬件的操作都通过对该设备文件的操作来进行。对于单帧采集,只要打开采集卡对应 的设备文件,并设置采集图像的大小、格式等必要参数,即可通过简单的调用系统函数r e a d ( ) 从设备文件读取视频数据。在这种方式下,设各只在用户需要数据的时候才进行采集,因 此其缺点往往是速度较慢,同时效率也较低。 2 ) 内存映射的非同步采集方式:这种方式在程序运行期阃需预先分配一块内存空间作 为视频数据的缓冲区,当启动采集后,视频数据将不断送入该缓冲区,而当用户需要视频 数据时即从该缓冲区读取。这种方式较前种方式在速度上有明显提高,但缺点是用户并 不知道采集设备何时采完了一帧数据,而只是在需要时去缓冲区中读取已采集到的最新数 据。 3 ) 内存映射的同步采集方式:此时图像采集和应用程序同步进行。和非同步方式一样, 需要事先分配一块内存作为采集数据缓冲区。而不同的则是在程序运行期间,采集数据被 送入缓冲区时,每获得一帧新图像数据采集驱动程序便向应用程序发送一个信号,上层程 序通过响应该信号来实现图像数据的实时处理。当然,为了保证与采集的同步运行,应用 程序对数据的处理速度应不低于图像采集速度,否则应当考虑降低采集速度或提高数据处 理速度。 从上述讨论可以看出,普通实现只需单帧采集模式即可,一般采集卡驱动都能支持, 实现也较简单。而对于对实时性要求较高的系统,最好还是采取第三种方式。下面我们将 1 2 第三章l i n u x 环境下视频采集处理软件系统的设计与实现 根据厂家提供的采集卡驱动和s d k 开发包来设计我们的视频采集模块。 由于我们使用的采集卡驱动程序和开发包只提供了一种晟简单的即单帧采集方式,因 此采集模块只能据此来设计。在我们的采集模块接口中,对于外部程序仍然提供两种方式 采集方式,其一是当用户程序需要视频数据的时候直接调用接口函数进行单帧采集,这种 方式实现较为简单,基本上是直接进行系统函数r e a e 0 的调用,但用户程序必须为r e a d ( ) 函数的返回而等待:而由于我们的系统在大部分情况下要求进行连续实时的采集,所以必 须在单帧采集的基础上自己建立一种同步采集的方式,下面我们主要介绍这一方式。 采集模块用一个专门韵采集线程进行单帧采集,通过软件实现通道的切换。由于驱动 程序本身为分时处理方式,所以只采用一个线程进行采集工作并不影响采集速度。该线程 主要的工作是通过单帧方式将视频数据采集到指定的内存区,并且在每采完一帧数据的时 候通过发送信号通知应用程序进行数据处理。由于这种方式本身是建立在单帧采集方式基 础上的,所以其采集速度应当低于直接在驱动程序中实现的内存映射的同步采集方式,但 可以很好地实现采集和应用程序的同步进行。同时可以对上层程序保持一致的接口,这样, 当换用其它支持内存映射同步采集方式的驱动程序的时候,我们就无需对上层应用程序做 什么改动。 3 1 2 回调函数的实现方式 为了对采集到的数据实时处理,必须实时响应采集模块的采集完成信号,这通常通过 回调函数来实现。在采集启动前,应用程序应对所要响应的信号设置相应的处理函数,而 当信号产生时,该函数被系统自动调用,这就是所谓的回调函数。我们可以通过l i n u x u n i x 环境下的信号机伟4 来实现回调函数。 信号是一种软中断方式,在很多u n i x l i n u x 下比较重要的程序中都需要对信号进行处 理。p o s i x i 一共定义了3 1 个不同的信号,都以s i g 这3 个字符开头,在头文件 中,这些信号都定义为正整数( 信号编号) 3 。在l i n u x 下,很多条件都可以产生信号: 1 1当用户按下某些终端键的时候:如终端上按下d e l e t e 键通常产生中断信号 ( s i g i n t ) : 2 )硬件产生信号:除数为0 、无效的存储访问等; 3 )进程用k i l l ( ) i 医i 数可以向本进程或其它进程发送信号: 4 )当检测到某种软件条件已经发生,并将其通知有关进程时:如s i g a l r m ( 进程 所设置的闹钟时间已经超时) 。 产生信号的事件对进程而言是随机出现的,进程不能只测试一个变量来判断是否产生 了一个信号,而是必须告诉内核在此信号发生时,要执行何种操作。系统在某个信号出现 时按下列3 种方式之一进行: 1 1忽略此信号。大多数信号都可以用这种方式进行处理,除了s i g k i l l 和s i g s t o p , 这两种信号向超级用户提供了终止和停止进程的可靠方法。 2 )捕捉信号。为了做到这一点,应当通知内核在信号发生时,调用一个用户函数, 在该函数中可执行用户希望对事件进行的处理。 3 )执行系统默认动作,这也是系统对大多数信号的处理方式。 1 3 第三章l i n u x 环境下视频采集处理软件系统的设计与实现 在3 1 个l i n u x 信号中,绝大部分都有专门用途,在应用程序设计中。可以根据需要对 其选择合适的处理方式,但不应当在应用程序中随便产生这类系统信号,否则会带来意想 不到的后果。但有两个信号例外,s i g u s r l 和s i g u s r 2 它们是系统提供给用户进行自 定义的信号,可以在应用程序中使用,我们可以用这两个信号之一来实现采集回调函数。 当执行一个程序的时候,所有信号的状态都是系统默认或忽略建立信号相应机制最 简单的方法是使用s i g n a l 0 1 函数,其原型为: v o i d ( + s i g n a l ( i n ts i g n o ,v o i d ( + f u n c ) ( i n t ) ) ) ( i n t k s i g n o 为信号名,两f u n e 为处理方式,可以为s i gi g n ( 忽略) 、s i gd f l ( 默认) 或 要调用的处理函数名。 在信号的使用中,需要注意系统调用的中断问题。在早期的u n i x 系统中,如果在进程 执行一个低速系统调用而阻塞期间捕捉到一个信号,则该系统调用就被中断而不再继续执 行,该系统调用返回出错。为了支持这种特性,可以将系统调用分成两类:低速系统调用 和其它系统调用。低速系统调用是可能会使进程永远阻塞的一类系统调用,其中值得注意 的是磁盘i o 以及网络读写有关的系统调用,在大部分情况下i ,o 操作总会很快返回,但 在某些情况下线程可能会阻塞很长时间。 为了使应用程序不必处理被中断的系统调用,后来的u n i x 系统引进了某些被中断的系 统调用的自动再启动,但是,某些应用程序并不希望这些函数被中断后再启动,因为这种 自动再启动的处理方式也会带来麻烦,因此,目前的l i n u x u n i x 系统一般都允许在每个信 号各别处理的基础上选择是否使用此功能。 不同的u n i x 系统对于系统调用重启的默认处理方式可能会有所不同,但用户可以对其 改变,这时就不能再使用s i g n a l o i 函数而应当使用s i g a c t i o n 0 区j 数,该函数原型为: i n ts i g a c t i o n ( i n ts i g n o ,c o a s ts t r e e ts i g a c t i o n4 a c t , s t r e e ts i g a c t i o n + o a c t ) ; 可以通过设置a c t 参数中的s ar e s t a r t 选项来选择是否采用系统调用的自动重启功能。 另外,并非所有系统调用都有自动再启动的功能,有些系统调用会因发送信号而被中 断并终止,在程序设计中这些都需要注意。 对于数据的实时处理,我们还可以采用消息处理机制来实现,这通常需要建立专门的 消息队列和消息处理线程,这将在后面的章节中介绍。 3 1 3 采集控制 在一个实时系统中,当要求采集与上层程序同步进行的时候,应用程序对于采集数据 的处理速度应当高于采集速度。而在某些情况下,当数据处理涉及较为复杂的运算如软压 缩而处理器性能又不太高时,上层程序的处理速度往往跟不上采集速度。这时候,通常可 以采取两种方法来解决:一是减少数据处理时间,简单将采集数据拷贝到其它数据缓冲区, 等事后再做处理:二是限制采集速度,使其低于处理速度。当然这两种方法都不利于实时 系统,前者影响数据的实时处理,后者无法做到实时采集。 我们的采集模块通过一个采集缓冲区队列来实现多路采集,并在软件处理速度太慢的 情况下限制采集速度。需要启动采集时,应用程序将多个数据缓冲区交给采集模块,采集 1 4 第三章l i n u x 环境下视频采集处理软件系统的设计与实现 模块将其填入一个先进先出( f i f o ) 的采集缓冲区队列,并对每个缓冲区赋予一个短整数 值以标识所要进行采集的通道号。采集线程每次对队列首部缓冲区完成对应通道的数据采 集,并通过消息传递将该缓冲区交给应用程序,同时将其从队列中删除,然后采集下一个 缓冲区。应用程序完成数据处理后,如果要继续采集则将数据缓冲区交还给采集模块,继 续填入采集队列进行。这样,在应用程序处理速度太慢的情况下,采集线程将会因为采集 队列空而暂时停止采集。当然,也可以通过软件定时的方式来粗略地控制采集速度,使其 满足我们的要求。 下面将给出采集模块的主要接口函数及流程,图3 - 2 为采集模块的主要结构和流程图。 采集模块的主要接口函数: b o o li n i t v i d e o d e v i c e ( i n tn c a r d n u m ) ;# 初始化采集模块,参数为允许打开的采集通道 数 v o i dt e r m v i d e o d e v i e e 0 ;终止采集模块 b o o l o p e n d e v i c e ( i n tn c h a n n e l ) ;g q 开参数所标识的采集通道 v o i dc l o s e d e v i c e ( i n tn c h a n n e l ) ;关闭参数所标识的采集通道 b o o la d d c a p b u f f e r ( v o i d + l p d a t a ) ;将数据缓冲区加入到采集模块的缓冲队列,从而 启动连续采集 b o o l c a p t u r e s i n g l e ( i n tn c h a n n e l ,l p d a t al p d a t a , i n tn b u f l e n g t h ) ;:采集单帧数据 b o o ls e t c a p t u r e s i z e ( i n tn c h a n n e l ,u n s i g n e di n t u p o s x ,u n s i g n e d i n t u p o s y , u n s i g n e di n t u w i d t h 。u n s i g n e di n tu h e i g h 0 ;# 调整单一通道图像尺寸 b o o l a d j u s t v i d e o c o l o r ( i n tn c h a n n e l ,i n tn v a r s a t u r a t i o n ,i n tn v a r b r i g h t n e s s , i n tn v a r h u e ,i n tn v a r c o n t r a s t ,i n tn v a r c h r o m a ) ;调整单一通道视频参数 另外在启动连续采集之前,外部程序应当建立对采集信号的相应函数,之后通过 a d d c a p b u f f e r o 启动采集。 第三章l i n u x 环境下视频采集处理软件系统的设计与实现 启动函数 终止函数 ; 数据填充函数 图3 2 采集模块流程图 1 6 采集线程 y e s ,姗j 第三章l i n u x 环境下视频采集处理软件系统的设计与实现 3 2 系统控制 系统控制模块的主要作用在于控制整个系统的工作模式,协调各个模块的工作,以及 进行数据和消息传递等。合理地设计控制模块,可以有效地提高一个系统的实时性和稳定 性。下面我们将结合l i n u x 的进程和进程问通信机制来设计我们的系统控制模块。 3 2 1l i

温馨提示

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

评论

0/150

提交评论