已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 摘要 目静,传统的模拟摄像机视频监控系统的应用领域非常广泛,其相关技术也已经 i t 常的成熟,图像获取技术、传输技术、显示技术都已经取得了长足的进步。但是随 着用户需求的提高,传统的视频监控系统由于其系统架构自身的局限性和缺点,已经 越来也无法满足当前的需要。其不足之处主要有以下几点:( 1 ) 模拟视频信号传输 距离非常的有限,通常只适合用于小范围的区域监控。( 2 ) 模拟视频监控无法联网, 只能以点对点的方式监视现场。这使得系统的椎线工程量极大,而且扩展能力差。( 3 ) 模拟视频信号数据占用的存储空间很大,而目它所采用的存储磁带容易磨损,失真严 重,视频质量无法保证。 数字视频压缩编码技术的同益成熟和计算机网络的普及,为基于t c p i p 的网络 搬缘机监控系统刨造了条件。本文针对传统视频监控系统缺点和不足,以数字化视频 压缩编码解码技术、计算机网络通信技术以及w i n d o w s 多线程编程技术为依托,设 汁并实现了一个的基于t c p f l p 的网络摄像机视频监控系统,介绍了相关的系统硬件 和软件技术,设计和实现了各个功能模块以及系统结构流程。蕊控系统采用数字视频 j e 缩技术后,如果长时间的连续录制,所占的存储空间也是比较大的。为了解决这一 问题,利用运动侦测技术和抽取关键帧的技术对系统的存储策略做出了改进和优化。 通过比较改进前后的数据差异,发现这一改进有效的节省了存储空间。经过实际测试 年使用,证明了整个系统的可行性,而且其可扩腱性也较好,能够满足当前的需要, 其有很高的实用性,适用于许多领域和坏境。 在文章的最后,还讨论了下一步要进行的工作,对网络摄像机监控系统的发展方 向及前景进行了展望。 火键涧:视频编码视频解码 - _ _ _ _ _ 。_ 一 一、 一。 多线程信号量 - - - _ _ _ - - - 一 渣寺噻儆 谗题馒箍 运动矢量 符拿有繁t 毒 套接字 运动侦测 华中科技大学硕士学位论文 a b s t r a c t n o w a d a y s t h et r a d i t i o n a la n a l o gv i d e os u r v e i l l a n c es y s t e mi sw i d e l yu s e di na l lk i n d s o ff i e l d s a n dr e l a t e dt e c h n o l o g i e sa r ea l r e a d yv e r ym a t u r e i m a g ec a p t u r et e c h n o l o g y , t r a n s m i s s i o nt e c h n o l o g ya n dd i s p l a yt e c h n o l o g yh a v em a d eb i gp r o g r e s s e s b u tt h eu s e r s n e e da r er a p i d l yi n c r e a s i n g ,a n di ti sm o r ea n dm o r ed i f f i c u l tf o rt h et r a d i t i o n a lv i d e o s u r v e i l l a n c es y s t e mt ob ec o m p e t e n tf o rc u r r e n tr e q u i r e m e n t sb e c a u s eo ft h er e s t r i c t i o na n d s h o r t c o m i n g so fi t ss y s t e ma r c h i t e c t u r e t h es h o r t c o m i n g sm a i n l yi n c l u d e :( 1 ) t h ed i s t a n c e o fa n a l o gs i g n a l sc a l lb et r a n s f e r di sv e r yl i m i t e d ,i tm a i n l ys u i t sf o ras m a l la r e a s m w e i l l a n c e ,f 2 ) a n a l o gv i d e os u r v e i l l a n c es y s t e m sc a n n o tc o n n e c t 、州t 1 1e a c ho t h e r , s ow e c a r lo n l yw a t c ht h et a r g e ts c e n e sp o i n tt op o i n ta n dd i s p o s a l i n gs i g n a ll i n e sb e c o m e sv e r y d i f f i c u l t ( 3 ) a n a l o gv i d e os i g n a ld a t au s u a l l yn e e dl a r g es p a c et os t o r e ,a n dv i d e o t a p ei se a s y t ob ew e a ra n dt e a r t h es i g n a lm a yb eq u i t ed i f f e r e n tf r o mo r i g i n a ld a t a ,a n dt h eq u a l i t yo f v i d e oc a n n o tb eg u a r a n t e e d d i g i t a lv i d e oc o m p r e s sc o d i n gt e c h n o l o g i e sa r em o r ea n dm o r em a t u r e ,a n dc o m p u t e r n e t w o r ki sw i d e s p r e a d e d ,t h e yc r e a t e dc o n d i t i o n sf o rt c p i pn e t w o r kb a s e dc a m e r a s u r v e i l l a n c es y s t e m t h i sp a p e ra i m sa tr e s o l v et h el i m i t a t i o na n ds h o r t c o m i n g o f t r a d i t i o n a lv i d e os u r v e i l l a n c es y s t e m ,u s i n gd i g i t a lv i d e ot e c h n o l o g i e s ,c o m p u t e rn e t w o r k c o m m u n i c a t i o nt e c h n o l o g i e sa n dw i n d o w sm u l t i t h r e a dp r o g r a m m i n gs k i l l s ,d e s i g na n d i m p l e m e n tat c p i pn e t w o r kb a s e dc a m e r as u r v e i l l a n c es y s t e m f i r s tw ei n t r o d u c er e l a t e d h a r d w a r ea n ds o f t w a r et e c h n o l o g i e s ,a n dt h e nd e s i g na n di m p l e m e n te a c hf u n c t i o nm o d u l e a n ds h o wt h es y s t e ma r c h i t e c t u r ef l o wc h a r t s 。a f t e ru s i n gv i d e oc o m p r e s sc o d i n g t e c h n o l o g i e s ,i tw i l ls t i l lt a k eq u i t el a r g es t o r a g es p a c ei fw er e c o r dc o n t i n u o u sv i d e of o ra 、e r ) 7l o n gt i m e i no r d e rt os o l v et h i sp r o b l e m w eu s em o t i o n - d e t e c t i o nt e c h n o l o g ya n dk e y f r a m ee x t r a c t i o nt e c h n o l o g yt oi m p r o v et h er e c o r dp o l i c yo ft h es y s t e m c o m p a r i s o nt h e d a t ao fb e f o r ea n da f t e ri m p r o v e dp r o v e st h a t t h i si m p r o v e m e n tc a ne f f e c t i v e l yd e s c r e a s e t h eu s a g eo fs t o r a g es p a c e a f t e rt e s ta n dp r a c t i c a lu s e ,w ef i n dt h en e ws y s t e mi su s a b l e a n dcand e c r e a s et h ec o s t t h es y s t e mc a ns a r i s 毋c u r r e n tr e q u i r e m e n t sa n dh a sh i g h p r a c t i c a b i l i t y i t ss u i t a b l ef o ral o to ff i e l d sa n da l lk i n d so f e n v i r o n m e n t s a tt h ee n do ft h i sp a p e r ,w ed i s c u s st h n h e rj o ba n dl o o kt b r w a r dt ot h ee v o l u t i o n d i r e c t i o na n dp r o s p e c t i v e n e s so f n e t w o r kc a m e r as u r v e i l l a n c es y s t e m k e yw o r d s :v i d e o - e n c o d e v i d e o d e c o d ev i d e o t r a n s f e rs o c k e t m u l t i t h r e a d s e m a p h o r e m o t i o n v b c t o r m o t i o n - d e t e c t i o n 华中科技大学硕士学位论文 1 绪论 1 1 课题背景、目的及意义洲5 1 1 1 3 | i i ,5 1 i 模拟视频技术和电视技术出现之后,因为人们在一些领域对安全的需要,诞生了 展1 - 模拟 见频技术的监控系统,目前大部分都足以模拟设备为主的闭路电视监控系 统。随着科技的发展,传统的模拟视频监控系统由f 其技术本身固有的局限性,已经 越来越无法满足当前监控系统的需求。 到了2 0 世纪9 0 年代中期,随着计算机处理能力的大幅提高和数字视频技术的发 展,人们利用计算机高速的数据处理能力来进行视频数据的采集和处理,从而大大的 提高了图像的质量,相对于模拟的视频监控系统来说,其核心设备是数字设备,所以 叫数字视频监控系统。 随着网络技术的飞速发展和普及、网络带宽和存储容量的大幅提升,以及各种数 字视频信息处理技术的出现,视频监控系统进入了网络时代。 2 0 0 2 年某公司与华中科技大学工程计算弓仿真研究所丌始合作丌发网络摄像机 监控系统。陔监控系统支持多用户多摄像机并发处理,实现了实时监控、无人值守录 制、历史文件回放等功能。本文根据该项目的实际开发经验,介绍了系统的存储服务 器软件模块、主控服务软件器模块和客户端软件模块的开发与研究。在系统了= f 发过程 中建立了自己的软件系统架构,并且利用相关软件技术对系统的存储策略做出了改进 和优化,节省了存储空间,降低了系统成本,取得了满意的效果。 1 2 本文主要内容 本文对课题的开发过程中系统软件架构的设计进行了介绍和探讨,其中主要包括 软件功能模块的划分与设计、数据库系统的设计、通信协议和数据结构的设计,以及 各软件模块之间的数据传输和通信控制等。 本文的第二章介绍了传统的模拟视频监控系统的原理和架构。先介绍了传统视频 监控系统的硬件组成和几个功能模块,然后分析了传统视频监控系统存在的缺点和不 足之处。 第三章针对传统模拟视频监控系统的缺陷,介绍了几种改进方案,并提出了基于 数字视频_ r 匿缩编码技术、计算机网络传输技术和w i n d o w s 多线程技术的网络摄像机 监控系统。大致介绍了它的系统硬件结构和功能,还着重介绍了网络摄像机监控系统 的相关软件理论基础,其中包括数字视频的压缩编码和解码技术、w i n d o w s 操作平台 华中科技大学顽士学位论文 l i 目 l j _ _ ; ;= 自目_ i _ _ _ _ _ _ - _ - - _ f 的网络编程技术和w i n d o w s 多线程同步技术。 第四章结合在项目的实际歼发过程中所从事的工作,构建了一个基于t c p f l p 的 网络摄像机监控系统。本文把整个系统按照功能的不同划分为几个模块,并分别设计 和实现了每个模块的功能和系统流程结构:设计了一套通信协议和数据结构,用于几 个功能模块之间的数据传输和通信控制。 第五章利用数字视频的相关软件技术,对已经构造好的网络摄像机系统的存储模 块进行了改进和优化,并对比分析改进前后的数据,取得了比较理想的结果。 最后在第六章总结了整个项目取得的成果和系统的特点,并且对网络摄像机监控 系统下一步要进行的工作和发展方向进行了介绍和展望。 华中科技大学硕士学位论文 2 传统模拟视频监控系统概述 2 1 引言 本章将介绍传统的模拟视频监控系统的架构,按照功能的不同把整个系统分为几 个模块,然后依次介绍每个模块的组成和原理,最后介绍传统视频监控系统存在的问 题和不足。 2 2 传统视频监控系统的组成 传统的模拟视频监控系统一般由如下几个模块组成:图像获取模块、图像传输模 块、图像显示和图像录制模块。 1 图像获取模块川【2 】【1 7 】 图像获取模块是监控系统的前端部分。这个模块一般包括摄像机、镜头、云台等 设备。图像获取模块的主要功能是获取目标场景的图像信息并转换成模拟的视频信 号,其物理过程是一个光电的转换过程,在这个转换过程中起主要作用的是摄像机器 材镜头和云台主要完成目标景物的聚焦和取景等功能。从整个系统- 束看,图像获取 模块所获取的图像是原始信号源,图像获耿的好坏将直接影响到图像信号的质量和整 个系统的质量。 目前的视频设备所要求的输入信号是模拟的视频基带信号,大多数都采用c c d 摄像机,因为c c d 摄像机在图象分辨率、图像还原性以及灵敏度等性能指标上都达 到了很高的水平。 2 图像传输模块f 2 】【1 7 1 图像信号的传输就是监控系统的图像信号通路。传输模块的功能之一就是往指定 的地方传送图像信息,另外还包括一个功能就是传送控制信号( 对云台,焦距等的控 制信号) 。对于图像信号的传输,要求在经过传输之后保持原始图象信号的清晰度、 色彩度,不能产生过大的噪声和失真。传统的模拟传输方式要保证信号具有比较高的 信噪比和比较低的失真度是很困难的。 3 图像显示和图像录制模块 图像显示模块是整个监控系统中面向最终用户的终端设备,这一模块主要负责把 传输模块传送过来的视频信号转换成监视器上的光信号,在监视器的屏幕上再现目标 场景的图像。有时候用户需要记录传送过来的图像信息,那么还需要图像记录设备, 传统的模拟视频监控系统一般采用长延时录像机,把目标场景的图象信息记录到磁带 华中科技大学硕士学位论文 上,以供将来查看。 一个简化的传统模拟视频监控系统硬件结构如图2 1 所示: 幽2 - 1 一个简化的模拟视颜监控系统结构 2 3 传统视频监控系统存在的问题川川3 1 7 i 传统的模拟视频监控系统由于其自身硬件结构的局限性,具有以下一些缺点: ( 1 ) 监控范围小。因为模拟视频信号的传输距离有限,如果采用同轴电缆, 与传输距离大于1 0 0 0 米时,视频信号容易产生衰减并且容易受到干扰,无法保证 图像的质量。因此,传统的模拟视频监控系统只适用于小范围的区域监控。 ( 2 ) 布线工程复杂繁琐。传统的模拟视频监控系统必须铺设单独的视频传输 电缆,这往往是非常大的一项工程,而且对于已经铺设好的传输线路,改动起来 电非常麻烦,所以整个系统的扩展性比较差。 ( 3 ) 存储管理不便。模拟视频监控系统大多采用录像机录制,以录像带作为 存储介质,这种方法不仅记录信息量有限,而且磁带容易变形,不易保存:另外 磁带和磁头之间的磨损比较大,再加上是采用模拟信号的方式来记录和读取,容 易导致图像失真;从已经录制好的磁带中查询某个片断也很不方便。 4 华中科技大学硕士学位论文 3网络摄像机监控系统概述 3 1 引言 基于t c p i p 的网络摄像机监控系统是建立在数字视频处理技术的基础上的,它 是以计算机为处理中心,利用视频数据压缩编码和解码技术( j p e g 、m p e g 1 或 m p e g 4 ) 、计算机网络技术和多线程技术的一种新型的监控系统。 视频信号在网络摄像机监控系统中是以数字化的形式来进行传输和存储的。在系 统的功能上,因为计算机强大的数字化处理能力,使得它除了具有传统的模拟视频监 控系统的所有功能外,还具有远程视频传输与回放、更方便的视频数据存储和检索等 功能:多线程编程技术的运用使得系统可以支持多摄像机多用户的并发处理,资源利 用效率更高;如果连接上相应的传感器,还能具有自动报警等功能。在系统的性能上, 囚为数字视频信号具有频谱效率高、抗干扰能力强、失真少等模拟信号无法比拟的优 点,使得网络摄像机监控系统的传输质量和失真度都大大优于传统的模拟视频监控系 统。另外,随着数字压缩芯片和数字摄像机同趋成熟,其成本也大幅下降,这使得网 络摄像机监控系统的总成本也大大降低。具有很好的性价比。 3 2网络摄像机监控系统的硬件结构 3 2 1 视频获取部分的硬件结构 目前的数字视频监控系统的视频获取硬件有两种方案。 第一种方案是使用模拟摄像机,通过视频压缩编码卡把模拟摄像机获取到的模拟 视频图像信号转换为数字视频图像信号,一块压缩卡一般支持l 路至4 路视频采集压 缩。视频压缩卡的质量和性能的好坏直接影响到整个监控系统的质量和性能。这种方 案比较适合升级改造原来的模拟视频监控系统,如果使用这种方案,旧系统的模拟摄 像机还可以继续使用。 第一种方案是直接使用数字的摄像机。数字摄像机获取目标场景的图像信息后直 接输出经过压缩编码的数字视频图像信号,然后通过网络把数字化的视频信号传送到 计算机中。这种方案比较适合建设全新的数字盟控系统。从技术的角度来讲,这种方 案是未来网络视频监控系统的发展方向,它具有很高的灵活性和可扩展性。 通过视频获取模块得到数字化的视频信号之后,再通过计算机网络传送到计算机 f 视频服务器) ,视频服务器可以对图像进行处理,然后在监视器上显示目标景物的 华中科技大学硕士学位论文 实时画面,电可以根据实际的需要存储起束。 采用模拟摄像机的网络摄像机监控系统大致结构如图3 1 所示: 幽3 - 1 采用模拟摄像机的网络监控系统结构 采用数字摄像机的网络监控系统大致结构如图3 2 所示 幽3 - 2 采用数字摄像机的监控系统结构 3 2 2 数字视频信号的传输1 1 7 i i 蚓 数字视频信号的传输可以分为有线传输和无线传输两大类。在图像监控系统中, 传输方式主要根据传输距离的远近、摄像机的多少以及其他方面的要求来确定,因为 数字图像监控系统占用的带宽较大,所以要根据具体的情况柬选择相应的传输方式。 1 电缆传输 在图像监控系统中,同轴电缆是传输视频图像最常见的媒介。同轴电缆截面的圆 心为导体,外面用聚乙烯同心圆状的绝缘体覆盖,再外一层是用会属编织物组成的屏 蔽层,最外层为聚乙烯封皮。同轴电缆对外界电磁波和静电场具有屏蔽作用,导体截 而积越大,传输损耗越小,视频信号可以传送的距离也就越远。 电缆传输的特性与信号的频率有密切关系,如果要保证能够清晰的显示,那么同 轴r c i 缆的长度有限制。高频信号的衰减与频率的平方根成正比,因此需要用电缆均衡 器加以校正。在不同频段相移也不同,因此会使视频信号产生相位失真。 摄像机输出的视频信号通过同轴电缆直接传输到监视器,如果要传送到更远的地 6 华中科技大学硕士学位论文 方,一种方法是改用横截面积更大的同轴电缆,另一种方法是在靠近监视器的地方安 装一台看均衡视频放大器,通过补偿视频信号中容易衰减的高频部分使经过长距离传 输的视频信号仍然能保持一定的强度,从而增长传输距离。 2 电话线传输 电话线传输就是利用现有的电话网络,通过调制解调器与电话线相连,这样就构 成了一个视频传输系统。电话线传输方式是利用平衡电缆对的传送方式。由于这种传 输方式在远距离、低成本方面具有优越的性能,所以目前广泛的应用于高速公路的交 通监控系统、邮电局的总站与分站、变电所与变电站之间,以及各大宾馆、饭店之间 的视频服务网中。这种方式的传输所使用的平衡电缆对和其他各种设备都是由电信部 门经营管理,从而摆脱了工业电视系统自成体系独立运行的模式,节省了传输系统的 投资。 电话线传输方式的主要优点是传输距离与电信网络覆盖相同,而且线路对称平 衡, ;易受到低频杂波的干扰。其缺点是由于l 电话线路的带宽限制和视频图像数据量 大的矛盾,导致传输到终端监视器的图像不连续,而且分辨率越高,帧间隔时间就越 长:要想取得比较连续的画面,就必须牺牲图像的清晰度。 3 光缆传输 光纤是能使光以最小的衰减从一端传到另一端的透明玻璃或者塑料纤维,一般由 芯线、包层、防护层组成。 光纤传输的有点是损耗低、速度快、容量大、保密性好、抗电磁干扰能力强。其 弱点是光纤设备比较昂贵,建网造价高,施工技术难度大。 4 射频传输 当所处的环境不便铺设有线线路的时候,利用无线传输是最方便的。无线视频传 输由发射机和接收机组成,每一对发射机和接收机有相同的频率,可以传输黑白和彩 色信号。 射频传输的优点是设备体积小、重量轻、一般采用直流供电。由于无线传输具有 一定的穿透性,所以不需要铺设视频传输线路,另外还可以利用g p r s 或者c d m a 等公用无线网络来传输数据,也可以利用卫星或专用电台来传输数据。 5 计算机网络传输 计算机网络实现了计算机的互联,为计算机之间的文件传送、资源共享提供服务。 计算机j 删络又可以分为局域网、广域网和国际互联网。视频流数据可以象普通的数据 一样利用网络通信协议通过i n t r a n e t 或i n t e r n e t 传播,传送到制定的目的地。 目前t c p i p 网络通信协议是一种事实上的一 业通信标准,视频远程监控系统采 用t c p i p 协议,可在各种不同计算机网络结构中运行而不必考虑操作系统平台的差 7 华中科技大学硕士学位论文 异。如果采用计算机网络作为传输视频信号的媒介,那么就无需再另外铺设传输线路, 行省了成本,而且还大大的扩展了传输范围,只要有网络的地方就可以传输到,这使 得整个监控系统也具有了极大的灵活性。 3 3 网络摄像机监控系统的相关软件技术 基于t c p i p 的网络摄像机监控系统涉及到的软件技术主要有三个方面:数字视 频压缩编解码技术( 用于视频信号的编解码) 、w i n d o w s 网络编程技术( 用于客户机 和服务器之问的交互以及视频信号的传输) 、w i n d o w s 多线程编程技术( 用于支持多 摄像机和多用于访问) 。这三个方面的技术也是整个网络摄像机监控系统的理论基础, 下面将详细介绍系统所用到的这三个方面的技术。 3 3 1 数字视频压缩编解码技术 1 运动图像压缩标准( m p e 0 ) 【7 1 1 2 0 l f 2 2 1 1 4 7 】【5 1 1 m p e g 是m o v i n gp i c t u r e se x p e r t sg r o u p ( 运动图像专家组) 的英文缩写。运动图 像家组足在1 9 8 8 年由国际标准化组织和国际电工委员会联合成立的专家组,负责 丌发电视图像数据和声音数据的编码、解码和它们的同步等标准。这个专家组开发的 ,j :准称为m p e g 标准。到目前为止,已经丌发和萨在丌发的m p e g 标准有: m p e g 1 :数字电视标准,1 9 9 2 年正式发布。 m p e g 2 :数字电视标准。 m p e g 3 :已经于1 9 9 2 年7 月合并到高清晰电视h d t v 工作组。 m p e g 一4 :多媒体应用标准,1 9 9 9 年发布。 m p e g 7 :多媒体内容描述接口标准。 m p e g 一2 l :多媒体框架结构,于2 0 0 0 年6 月提出,目前还在研究中。 2 m p e g 1 视频编码标准【1 7 】【2 0 】【2 2 i 4 7 】f 5 1 1 m p e g 一1 是用于数据速率高达约1 5 m b p s 的数字存储媒体的电视图像和伴音编码 的标准。这个标准在1 9 9 2 年被i s o i e c 采纳。它包括三个部分:m p e g 视频、m p e g 音频和m p e g 系统。用m p e g 1 标准的平均压缩比达到5 0 :l ,其处理能力达到3 6 0 x 2 4 0 像索。 m p e g 视频图像数据流是一个分层结构,其目的是把位流中逻辑上独立的实体分 丌,防止语意模糊,并减轻解码过程的负担。对分层的要求是支持通用性、灵活性和 有效性。m p e g 标准的通用性可以用m p e g 位流来更好的说明。 ( 1 ) m p e g 1 的位流语法层 8 华中科技大学硕士学位论文 m p e g 1 的视频位流分层结构如图3 3 所示f ”i : 团 y l 鳘j 像序列层 剀像组层 图像层 宏块片层 宏块层 块层 图3 - 3l v l p e g 1 视频位流分层结构 一共包括六层,每一层支持一个确定的函数,或者是一个信号处理函数( d c t 运动补偿) ,或者是一个逻辑函数( 同步,随即存取点) 等。 m p e g 1 视频位流语法六个层次的功能如表3 1 所示【”1 : 表3 - 1m p e g 1 视频侮流语法的六个层次 序号说明 1 图像序列层( 随机存取单元:上下文) 2 图像组层( 随机存取单元:视频编码) 3图像层( 基本编码单元) 6 块层( d c t 单元) 每一个层的开始有一个头,作为说明参数。在图像序列层的头中,装有视频序列 参数,如图像的宽度、图像的高度、像素长宽比、帧率、位率、缓冲区尺寸等。 ( 2 ) m p e g 1 帧问编码 m p e g 采用了三种类型的图像:帧内图( i n t r a p i c t u r e s ,i ) ,预测图( p r e d i c t e d p i c t u r e s ,p ) 和插补图,即双向预测图( b i d i r e c t i o n a lp r e d i c t i o n ,b ) 。帧内图可以提 供随机存取的存取位置,但压缩比不大;帧阳j 插补可以减少时域的冗余信息。i 帧、p 9 华中科技大学硕士学位论文 帧和bj 陵沿时间轴的排列顺序如图3 5 所示【引1 : 图3 巧m p e g 帧间编码 3 3 2w i n d o w s 网络编程技术 本文中的网络摄像机监控系统采用计算机网络来传输视频数据。系统的通信在 w i n d o w s 2 0 0 0 平台上采用了基于t c p i p 协议的w i n d o w s 套接字( s o c k c t ) 来实现视 频数据的实时传输,下面将介绍用w i n d o w ss o c k e t s 进行网络编程的原理和方法。 1 w i n d o w ss o c k e t s 规范概述1 3 3 1 1 3 4 1 4 0 1 5 2 i w i n d o w ss o c k e t s 规范以u c b e r k e l e y 大学b s du n i x 中流行的s o c k e t 接口为范 例定义了一套w i n d o w s 下的网络编程接口。它不仅包含b e r k e l e ys o c k e t 风格的库函 数还包含了一组专门针对w i n d o w s 的扩展库函数。应用程序通过调用w i n s o c k 的 a p i 函数来实现相互之间的通信,而w i n d o w ss o c k e t s 则利用下层的网络通信协议功 能和操作系统调用来实现具体的通信工作。e t f 3 z l a je 拘关系如图3 - 6 所示【5 2 】。 网络编程界面( w i n d o w ss o c k e t s ) 上t 网络通信协议界面( t c p i p ) 上t 操作系统( w i n d o w s ) 上t 物理通信介质 幽3 - 6 应用样序平i iw i n d o w ss o c k e t s 天系 2 套接字( s o c k e t s ) 5 2 1 0 华中科技大学硕士学位论文 食接字足通信的基石,是支持t c p i p 肌议的网络通信的基本操作。可以把套接 字看作不同主机间的进程进行双向通信的端点,它构成了在单个主机内以及整个网络 的编程界面。套接字根据通信的性质可以分为流套接字和数据报套接字。 ( 1 ) 流套接字:流套接字提供双向的、有序的、无重复的并且无记录边界的数 据流服务,它适合用来处理大量的数据: f2 ) 数据报套接字:数据报套接字支持双向的数据流,但是它并不能保证数据 传输的可靠性、有序性和无重复性。 3 w i n s o c k 编程原理 ( 1 ) w i n s o c k 的启动和终止 w i n s o c k 的服务是以动态链接库的形式来实现的,在使用前要先调用w s a s t a r t u p ( ) 函数进行初始化。应用程序关闭套接字后,还应调用w s a c l e a n u p 0 终止对链接库的 使用。 ( 2 ) w i n s o c k 编程模型 套接字有两种模型:流套接字和数据报套接字。 流套接字编程模型 如果使用流套接字编程模型,那么通信前必须创建客户套接字和服务套接字并在 邑们之m 建立连接,然后才能进行数据传输。具体的编程步骤如下: a 服务进程创建套接字 服务进程必须在客户进程之自口执行,服务进程首先调用s o c k e t ( ) 函l 数来创建一个流 套接字。s o c k e t ( ) i 函数的原型如下: s o c k e t s o c k e t ( i r aa f , i n tt y p e ,i n tp r o t o c 0 1 ) ; 参数t y p e l 来指定套接字的类型,设置为s o c ks t r e a m 将创建一个流套接字, 使用t c p 协议;设置为s o c kd g r a m 则创建一个数据报套接字,使用u d p 协议。 b 将刚j 所创建的套接字绑定到本机地址 必须将套接字绑定到本机地址才能在网络上标识该套接字,这个过程通过调用 b i n d ( ) 函数来实现。 c 把套接字詈为监听模式并准备接收客户端的请求。 b i n d ( ) 函数的作用是把一个套接字和指定的i p 地址以及端口关联起来,l i s t e n ( ) 函数 则是把一个套接字的状态转换为监听状念,等候连接请求的进入。其原型为: i n tl i s t e n ( s o c k e ts ,i n tb a c k l o g ) ; 套接字进入监听状态之后,还需要调用a c c e p t ( ) i 函数来使套接字做好接收客户连接 的准备。 d 客户机调用s o c k e t ( ) 函数创建客户端的套接字。 华中科技大学硕士学位论文 创建方法与服务器相同,只是客户端套接字无需和i p 地址及端口绑定。 e 客户机向服务进程发送连接请求。 c o n n e c t ( ) 函数用于把客户机套接字与指定的服务器字连接起来。函数原型为: i n tc o n n e c t ( s o c k e ts ,c o n s ts t r u c ts o c k a d d r + n a m e ,i n tn a m e l e n ) ; 数据的传输 当客户机套接字收到来自服务器的接收信号,就表示客户机与服务器已经连接上 了,此时可以进行数据传输。流套接字使用s e n d ( ) 和r e c v ( ) 函数来发送和接收数据。 g 关闭套接字 任务完成之后,必须关闭套接字释放套接字所占用的系统资源。一般用函数 c l o s t s o c k e t o 来关闭套接字。 流套接字编程的基本流程图如图3 8 所示【52 i : l 俎 客户机 图3 - 8 流套接字编样的基本流程图 数据报套接字编程模型 数据报套接字是不可靠的、无连接的。在发送数据之前无需事先在服务器套接字 和客户端套接字之i 刨建立连接,因此与流套接字相比,它的编程过程要简单一些。具 体编程方法如下: 1 2 华中科技大学硕士学位论文 a 发送端用s o c k e t ( ) 函数创建数据报套接字。 b 用b i n d ( ) 函数把发送端套接字和准备接收数据的i p 地址及端口绑定。 c 使用r e c v f r o m o 函数接收数据。 d 发送端调用s o c k e t o 函数创建数据报套接字。 e 发送端调用s e n d t o o 函数向指定的接收端发送数据。 f 任务完成后,调用c l o s e s o c k e t o 函数关闭套接字。 数据报套接字编程的基本流程如图3 9 所示: 服务器 s o c k e t ( ) 客户机 s o c k e “) bn d ( ) r r e a d f r o m ( ) b i n d ( ) 呲点。白特提 i 4 基一竺客户数据 服务请求 。三t “) t 阻塞,等待客户数据 0 。 ,+ 。 , s e n d t o o 7 j r e a d f r o m o ii c l o s e ( )c l o s e ( ) 圈3 - 9 数据报套接字编群的基本流程幽 两种套接字编程模型的比较 流套接字是面向连接的、有序的、可靠的、双向的;数据报套接字是无连接的、 无序的、不可靠的。它们有各自的优点和缺点。流套接字的传输稳定可靠,但是每次 传输数据之胁必须要先在服务器套接字和客户机套接字之间建立连接,这个过程通常 是比较耗费时i 剐的,而且要保证数据的可靠性和有序性,就需要对数据进行验证和校 验,这样数据传输的效率就更低了。数据报套接字传输无序不可靠,但是这种方式在 传输数据之静无需事先在收发双方建立连接,而且数据无需校验,所以数据传输速度 快、效率高。流套接字比较适合数据量少、对可靠性和有序性要求高的情况,数据报 套接字则比较适合数据量大、对可靠性和有序性要求不是十分严格、而对速度要求比 3 华中科技大学硕士学位论文 较高的场合,我们可以根据具体的需求来选择套接字类型。 3 3 3w i n d o w s 多线程编程技术 作为一个完备的网络摄像机监控系统,必须要支持多摄像机同时监控和对多个用 户吲时提供服务,要达到这个要求,就必须使用多线程编程技术。下面将介绍在 w i n d o w s 操作平台下的多线程编程技术。 1 线程与进程的概念川口2 】【3 3 】【3 4 】 进程和线程是两个不同的概念。进程是个由操作系统装载到内存的可执行单 ,操作系统为进程创建一个虚拟的地址空间。线程是一个用于运行代码的对象,被 操作系统当作准备执行的一个执行体。一个应用程序可以有一个或多个进程,一个进 程可以有一个或多个线程。 进程与线程的不同之处在于,每一个进程都拥有自己专用的虚拟地址空问。线程 的一个重要特点就是与创建自己的进程共享内存它可以存取调用进程的代码和数 据。当个进程内有一个或者多个线程时,每个线程都与进程共享同一个虚拟地址空 | 日j ,而且都能够获取进程的系统资源和访问全局变量。 使用多线程技术的好处在于:多线程使得进程可以同时执行多个任务。例如。个 应用程序可以使用一个线程执行用户界面来响应用户的操作,在响应用户操作的同时 使用其他线程来执行后台的数据处理等任务,这样可以充分利用系统资源,大大提高 程序的运行性能。 :线程的创建和终止f 5 2 l w i n 3 2 操作系统是以对象的方式来管理进程和线程,这些对象有几种不同的类 型,常用对象如表3 2 所示: 表3 - 2w i n d o w s 中的一些对象 t h r e a do b j e c t s线程对象 p r o c e s so b j e c t s进样对象 e v e n t0 b j e c t s事州:对象 m u t e x0 b i e c t s互斥体对象 c r i t i c a ls e c t i o no b j e c t s临界医对象 s e m a p h o r eo b j e c t s 信号姑对象 这些对象可以通过调用不同的w i n 3 2a p i 函数来创建,使用完毕后应该调用 c l o s e h a n d l e 来释放系统资源。 ( 1 ) 线程的创建和终止 1 4 华中科技大学硕士学位论文 创建一个线程的方法是调用w i n 2 3a p i 函数c r e a t e t h r e a d o ,一个线程完成任务 后,就应该终止这个线程,以释放它所占用的系统资源。 终止 个线程的方法有直接终止和l 刈接终止两种。一个线程从函数中返回时会自 然死亡,这种情况就是自然终止。如果线程执行的代码中调用e x i t t h r e a d o 函数,那 么线程自身就会结束,这种情况就是主动终止。系统中的某个线程调用 t e r m i n a t e t h r e a d o 函数就会终止指定的线程,这种情况是被动终止。如果一个线程所 属的进程终止了,那么这个进程中所有的线程都会终止,这就是间接终止。要终止一 个进程可以调用e x i t p r o c e s s 函数或者t e r m i n a t e p r o c e s s 函数。 3 线程的同步1 1 ”j 当使用多线程的时候,可能会发生两个或多个线程同时访问一个对象( 比如全局 变萎、共享资源等) 的情况,这可能会导致程序出现错误。因此,在多线程应用程序 中必须采取一些措施来同步线程的执行。 。j w 汤d o w s 操作系统提供了多种同步对象来同步线程,典型的方法是使用事件、临 界区、互斥量和信号量。 ( 1 ) 事件对象 事件对象( e v e n t ) 是最简单的同步对象,它通常用在应用程序访问某一资源前必须 等待的情况。当事件处于信号状态时,所有等待这一事件的线程都可以通过,当事件 处于非信号状态时,所有等待这一事件的线程都会阻塞。创建一个事件对象可以用函 数c r e a t e e v e n t 0 ,关闭一个事件对象可以简单的用c l o s e h a n d l e ( ) 函数实现。 ( 2 ) 临界区 临界区是一个特殊的w i n 3 2 变量结构,它可以使一个代码段以独占的方式执行而 不收到其他线程的干扰。在使用临界区之前,必须用i n i t i a l i z e c r i t i c a l s e c t i o n 函数来进 行初始化的工作。在使用完临界区对象后,必须销毁该对象以释放系统资源,销毁临 界区对象可以使用函数d e l e t e c r i t i c a l s e c t i o n 。使用临界区有一个缺点,就是只能在同 个进程中使用,不同进程中的临界区不能互相访问。 ( 3 ) 互斥量 互斥量的作用和临界区相似,它们的区别在f :互斥量是可以命名的,其名字是 一个字符串名,互斥量可以跨越进程使用。创建互斥量需要的资源更多,所以如果只 在进程内部使用的话使用临界区会带来速度上的优势并能够减少资源占用量。互斥量 足跨进程的,互斥量旦被创建,就可以通过名字打丌它。创建互斥量的函数是 c r e a t e m u t e x o 。互斥量使用完毕后,应该调用c l o s e h a n d l e 函数关闭。 ( 4 ) 信号量 信号量具有互斥量的功能,而且比互斥量的功能更强大。一个互斥量在同一时刻 华中科技大学硕士学位论文 只允许一个线程获得对它的访问权,而信号量有对资源计数的能力,它允许指定个数 的线程同时获得对它的访问权。 在使用信号量之前必须先创建一个信号量,创建信号量的函数是 c r e a t e s e m a p h o r e o 。和信号量有关的函数还有三个:o p e n s e m a p h o r e 、r e l e a s e s e m a p h o r e 和c l o s e s e m a p h o r e ,它们的作用分别是打丌信号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 景观灯采购合同
- 二年级道德与法治上册 我上二年级了 第2课《我为集体添光彩》教案 北师大版
- 2024-2025学年高中物理 第二章 原子结构 3 光谱 氢原子光谱教案1 教科版选修3-5
- 2024年学年八年级语文上册 第五单元 心灵诗语 第18课《采莲曲》教案 沪教版五四制
- 2023三年级英语上册 Unit 2 Colours Part B 第二课时教案 人教PEP
- 八年级政治下册 第五单元 我是中国公民 5.1 我们都是公民情境探究型教案 粤教版
- 2024-2025学年高中物理 第四章 机械能和能源 5 机械能守恒定律教案1 教科版必修2
- 高考地理一轮复习第十九章环境安全与国家安全第一节环境安全、全球气候与国家安全课件
- 最简单的居间合同(2篇)
- 汉子人教版课件
- 诺如病毒的护理查房
- 2024年高考真题-文综政治(全国甲卷) 含解析
- 建筑物拆除人员安全教育考核试卷
- 《智能网联汽车智能传感器测试与装调》电子教案
- 关注合规经营的年度措施计划
- 信息科技大单元教学设计之八年级第三单元简单物联功能实践
- 【团体标准】TDZJN 77-2022 锂离子电池产品碳足迹评价导则
- 期中模拟卷(含答案)2024-2025学年浙教版七年级数学上册
- 期末模拟测试卷(试卷)-2024-2025学年四年级数学上册人教版
- 2024年江苏苏州市(12345)便民服务中心招聘座席代表人员高频难、易错点500题模拟试题附带答案详解
- 2024年湖南省长沙市中考历史试卷真题(含答案解析)
评论
0/150
提交评论