(计算机应用技术专业论文)基于手机的移动视频监控.pdf_第1页
(计算机应用技术专业论文)基于手机的移动视频监控.pdf_第2页
(计算机应用技术专业论文)基于手机的移动视频监控.pdf_第3页
(计算机应用技术专业论文)基于手机的移动视频监控.pdf_第4页
(计算机应用技术专业论文)基于手机的移动视频监控.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机应用技术专业论文)基于手机的移动视频监控.pdf.pdf 免费下载

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

文档简介

五邑大学硕士学位论文 摘要 随着通信、计算机、微电子等技术的飞速发展,许多基于移动互联网的服务开 始出现,随着无线传输技术的飞速发展、计算能力更强的智能手机的出现,使得原 本只能在p c 机上运行的应用开始进入移动领域。本文基于智能手机较强的计算能 力与无线传输技术g p r s 设计和实现基于手机的远程移动视频监控系统。 本文的手机应用开发以j 2 m e 为平台,主要工作包括:对j 2 m e 手机编程技术 进行了深入分析;提出了基于手机的移动视频监控系统,给出了系统结构的详细设 计;分析了h 2 6 4 图像编码方式,对相关的算法进行了改进并应用于所设计的移动 视频监控系统;实现了基卡j 2 m e 的系统客户端程序。 本文最后对所进行的工作进行了总结,提出了将来努力的方向。 关键词:h 2 6 4 ;j 2 m e ;m i d p ;远程视频监控 五邑大学硕士学位论文 a bs t r a c t w i t ht h er a p i dd e v e l o p m e n to ft e c h n o l o g ya b o u tc o m m u n i c a t i o n c o m p u t e r , a n dm i e r o e l e c t r o n i c , m a n ys e r v i c e sb a s e do nm o b i l ei n t e r n e tb e g i nt oa p p e a r a st h er a p i dd e v e l o p m e n to fw i r e l e s s t r a n s m i s s i o n t e c h n o l o g ya n dt h ee m e r g e n c eo fs m a r tp h o n e sw i t hm o r ec o m p u t i n gp o w e r , a p p l i c a t i o n sw h i c hr u no r i g i n a l l yo nap cm a c h i n eh a v eb e g u nt oe n t e rt h em o b i l es p a c e b a s e do n m o r ec o m p u t i n gp o w e ro fs m a r tp h o n e sa n dg p r sw i r e l e s st r a n s m i s s i o nt e c h n o l o g y , t h ea u t h o r d e s i g n sa n di m p l e m e n t sar e m o t em o b i l ev i d e os u r v e i l l a n c es y s t e mt h r o u g ham o b i l ep h o n ei nt h i s p a p e r i nt h i sp a p e r , t h ed e v e l o p m e n to fm o b i l ea p p l i c a t i o n si sf o rj 2 m e t h em a i nw o r ki n c l u d e s :t h e i n - d e p t ha n a l y s i sf o rt h ej 2 m et e c h n o l o g y ;p r e s e n t i n gt h em o b i l ep h o n e b a s e dv i d e os u r v e i l l a n c e s y s t e ma n dt h ed e t a i l e dd e s i g no ft h ea r c h i t e c t u r e ;a n a l y s i so ft h eh 2 6 4i m a g ec o m p r e s s i o na n dt h e i m p r o v e m e n to fr e l e v a n ta l g o r i t h m s ;i m p l e m e n t a t i o no ft h ec l i e n tt h i ss y s t e m f i n a l l y , t h ea u t h o rm a k e ss o m ec o n c l u s i o na n dp r o p o s e st h ef u t u r ed i r e c t i o ni nt h i sp a p e r k e yw o r d s :h 2 6 4 ;j 2 m e ;m i d p ;r e m o t ev i d e om o n i t o r 本人声明 我声明,本论文及其研究工作由本人在导师指导下独立完成,完成论文所用的 一切资料均已在参考文献中列出。 作者:兰瑛 签字:兰瑛 2 0 0 8 年4 月1 5 日 五邑大学硕士学位论文 1 1 课题来源 第一章绪论 近年来,由禽流感引发的公共卫生事件、由煤矿爆炸引发的安全事故,以及由 洪涝灾害引发的交通瘫痪等系列公共安全事件,已成为我国政府部门高度关注和重 点研究的课题【l 】,国家已将应急管理工作提到了议事日程上来,并相继出台了一系 列相关的政策和法规。例如:国务院明确规定将城市应急联动系统的建设纳入我国 的“十一五 发展规划,国务院在其所发布的国家中长期科学和技术发展规划纲 要2 0 0 6 2 0 2 0 中,明确强调要建设公共安全平台用于监控和快速反应。2 0 0 5 年7 月,国务院发布国家通信保障应急预案【2 】,信息产业部发布了信息产业部突 发公共事件应急专项预案,公安部发布了县、市级的“三台合一”相关规范,中 国电信网络视频监控业务技术规范2 0 也相继出台。 近年来,视频监控技术在各行各业得到了广泛的应用,生活中有小区安全监控、 电讯行业有基站监控、银行系统有柜员机监控、林业部门有火情监控、交通方面有 违章和流量监控等【3 1 。这些传统的监控系统一个很大的局限性在于监控设备必须安 装在一个联网的固定地点,只有在监控设备端才能看到所监控的情况。现在中国手 机用户已超过5 亿【4 1 ,手机已成为人们工作生活中的伴侣,其最大的优势是携带方 便。手机的功能越来越多,从单纯的通话、彩铃、到m p 3 。s m a r t d h o n e 、p o e k e t p c 、 新型智能手机的不断推出,使得移动终端的处理能力越来越强,利用无线网络和互 联网相结合建设移动远程视频监控系统逐渐成为监控系统的研究热点。本课题的来 源是江门市的科技攻关项目移动视频远程监控系统研究i 1 2 监控系统的分类 1 2 1 模拟监控系统 模拟监控系统主要由摄像机、视频矩阵、监视器、录像机等利用视频传输线将 来自摄像机的视频连接到监视器上,利用视频矩阵主机,采用键盘进行切换和控制, 五邑大学硕士学位论文 录像采用使用磁带的长时间录像机;远距离视频传输采用模拟光纤,利用光端机进 行视频的传输。在2 0 世纪9 0 年代初以前,主要是闭路电视监控系统,视频信息采 用视频电缆,以模拟方式传输,一般传输距离不远,主要应用于小范围内的监控, 监控视频一般只能在控制中心查看。 传统的模拟闭路电视监控系统有很多局限性【5 】: 1 ) 有线模拟视频信号的传输对距离十分敏感; 2 ) 有线模拟视频监控无法联网,只能以点对点的方式监视现场,并且使得布线 工程量极大; 3 ) 有线模拟视频信号数据的存储会耗费大量的存储介质。 1 2 2 数字网络监控系统 以太网技术的日益成熟,使得网络已经深入到各个生产、生活领域。利用公司 现有的计算机网络来传输视频,可以充分利用公司的资源并节省成本。网络监控系 统在某些领域已经取代了原有的模拟监控系统,并充分发挥了网络监控的优势。网 络监控系统是由数字摄像设备采集视频信息,并以数字的方式通过有线网络传输到 监控中心的设备,百兆以及千兆网络可以提供足够的网络带宽,以支持多个高质量 并发视频流的稳定传输。数字化视频监控的优点如下1 5 j : 1 ) 数字化视频可以在计算机网络( 局域网或广域网) 上传输视频数据,基本上不受 距离限制,信号不易受干扰,可大幅度提高视频品质和稳定性; 2 ) 数字视频可利用计算机网络联网,网络带宽可复用,无须重复布线; 3 ) 数字化存储成为可能,经过压缩的视频数据可存储在磁盘阵列中或保存在光 盘中,查询十分简便快捷。 数字化视频监控的缺点是: 1 ) 必需依赖有线网络,当被监控点没有固定网络的时候便无法传送实时的视像: 2 ) 受地形影响较大,对于需要移动监控的应用便无能为力。 1 2 3 移动视频监控系统 相对于传统的模拟监控和网络监控来说,移动视频监控采用了更新的技术和方 法。在移动视频监控系统中,c d m a 、g s m ( g l o b a ls y s t e mf o rm o b i l ec o m m u n i c a t i o n ) 2 五邑大学硕士学位论文 等网络主要扮演连接被监控点和监控中心数据传输链路的角色。通过移动网络可以 将远程的多个监控点设备连接起来,进行视频传输,满足灵活机动的应用需求。 1 2 3 1 移动互联网的定义 移动视频监控技术的产生是以移动互联网为基础的。可以对移动互联网下以下 的定义:移动互联网主要指由蜂窝移动通信系统通过终端接入互联网。移动互联网 可以和3 g 构成一个统一的无线、移动、互联网系统,使用户实现任何地点、任何时 间方便的接入互联网,获得互联网上海量的信息资源,享受到互联网上成千上万种 服务【6 1 。 1 2 3 2 移动互联网的基本结构 随着通信技术的发展,移动互联网也经历了从第一代到目前的第二代,以及第 三代的发展。但不论哪一代,移动互联网的基本组成都是包含移动节点,无线接入 网,核心网和互联网几个部分7 1 ,核心网通过网关联入互联网,如图1 1 所示。 1 2 3 3g p r s 概念及优点 图卜1移动互联网的基本组成 g p r s ( g e n e r a lp a c k e tr a d i os e r v i c e ,通用分组无线业务) 是一种采用分组交换技 术传输数据及信令的高效率数据传输方式。它采用存储转发机制,把不同终端的数 据分割成等长标准数据格式,通过非专用的逻辑子信道进行数据快速交换,即将信 息分成数据分组或信息包,再加上目的地址、分组编号、控制比特等的分组头,沿 不同路由进行传送,接收端按照分组编号重新组装成原始信息。分组通信的实质是 依靠高处理能力的计算机来充分利用宝贵的通信信道资源。基于分组交换的g p r s 业务理论上的速率可达到1 7 1 2 k b p s 引。 五邑大学硕士学位论文 由于g p r s 用户在分组交换模式下发送和接收数据,有数据传送需求时才占用信“ 道,从而提高了宝贵的无线信道资源的利用率,极大的提高了无线资源的利用率。 相对于g s m ,g p r s 有如下优点【9 】: 1 资源利用率高; 2 传输速率高,g s m 网络的数据传输速率仅为9 6 k b p s 3 接入时间短,g p r s 的接入时间缩短为小于1 秒,能够提供快速的即时连接, 可大幅度提高一些事务( 如信用卡核对,远程监控等) 的效率; 4 支持x 2 5 协议和i p 协议,可与外部数据网进行互联; 5 用户永远在线,采用流量计费。 1 2 3 4g p r s 网络结构 g p r s 网络在g s m 网络上新增了g p r s 业务支持节点s g s n ( s e v e r i n gg p r s s u p p o r t i n gn o d e ) 和g p r s 网关节点g g s n ( g a t e w a yg p r ss u p p o r t i n gn o d e ) ,其s g s n 是g p r s 骨干网与无线接入网之间的接口,g g s n 是连接g p r s 网络与外部数据网络 的节点,起到一个网关的作用。连接s g s n 和g g s n 的网络称为g p r s 骨干网【i 。 s g s n 节点的主要功能是对移动终端进行鉴权和移动性管理,建立移动终端到 g g s n 的传输通道,接受从b s s 传来的移动终端分组数据。g g s n 的功能是负责接受 移动台发送的数据,选路到相应的外部网络,或者接受来自外部数据网络的数据, 通过隧道技术,传送给相应的s g s n 。 g p r s 骨干网是一个采用i p 协议的网络。该网络采用g p r s 隧道协议g t p ( g p r s t u n n e lp r o t o c 0 1 ) 来为其他协议的数据分组通过g p r s 骨干网提供隧道。g t p 可以利用 t c p 和u d p 协议分别提供可靠的连接服务和无连接服务。g p r s 骨干网由i n t r a p l m n 骨干网和i n t e r p l m n 骨干网构成。前者连接处于同一i p 专网的多个g g s n ,仅用于传 送g p r s 数据和g p r s 信令。后者通过边界网关协议b g p ( b o r d e rg a t e w a y sp r o t o c 0 1 ) 将多个i n t r a p l m n 网络连接起来,构成大规模的g p r s 网络。基于以上讨论,可以将 图1 1 扩展成图1 2 。 4 五邑大学硕士学位论文 图1 2g p r s 移动互联网结构 1 3 手机移动视频监控的意义 以网络、无线通信技术为平台的网络视频监控技术突破了地域的限制,实现了 远程监控。通过建立完善的基于无线手机和互联网的远程监控系统,在我国有着广 阔的应用前景。 1 ) 交通监控 手机移动视频监控系统可对重要的铁路和公路路段进行实时监控,及时发现各 种异常情况并采取应急措施,保证铁路和公路高速、安全、经济地运营管理,有显 著的经济效益、社会效益和环境效益【1 1 1 。 2 ) 校园监控 利用手机移动视频监控系统对校园监控,可以有效防止安全事故的发生,让学 生更好遵守校纪校规,便于老师对学生的管理。 3 ) 大型厂区和公共场所监控 巡逻人员也可以通过手机移动视频监控系统观测各个监测点的视频,使保安更 加严密,有效保障人们的生命和财产安全。 4 ) 工程施工指挥和监理 在一些大型工程施工现场,利用移动监控技术,能够取代现场临时指挥部,指 挥者和监理人员在室内就能对施工情况了如指掌,减少了危险和提高了效率。 5 ) 居家安全 通过手机移动视频监控系统,可以及时了解家中小孩和老人的生活状况,他们 生病是可以及时被送到医院进行救治,当家中发生火灾或盗窃时及时报警,减少损 失。 5 五邑大学硕士学位论文 1 4 论文的主要工作 本文基于j 2 m e 平台的手机应用开发为主线,进行了理论研究、系统实际开发。 在对本系统进行设计和撰写论文过程中,作者参考了相关文献资料,并充分利用网 络资源解决技术难点,主要工作如下: 1 ) 对j 2 m e 手机编程技术进行了深入分析; 2 ) 提出了基于手机的移动视频监控系统,给出了系统结构的详细设计; 3 ) 分析了h 2 6 4 图像编码方式,对相关的算法进行了改进; 4 ) 实现了基于j 2 m e 的系统客户端程序。 1 5 论文的组织 第一章介绍论文的背景,监控系统的分类及本论文的研究意义。 第二章提出了基于手机的移动视频监控系统的总体设计思想并分析模块功能。 概述j 2 m e 技术,主要介绍j 2 m e 结构、功能以及j 2 m e 应用程序开发流程。 第三章分析视频压缩原理、视频编码标准以及h 2 6 4 编码器的相关知识,作出 了h 2 6 4 帧间算法改进。 第四章分析了服务器端的功能,讨论了其功能的实现,对服务器端出现的技术 难点给出了相应的解决方案。 第五章设计并实现以j 2 m e 为平台的移动远程视频监控系统手机客户端的应用 开发,使用m i d p 2 0 中提供的s o c k e t 连接与服务器通信,控制远程视频监控设备, 获取远程视频图像并展现给用户,同时提供图像保存功能方便用户存储图像信息。 第六章总结全文,同时对本课题中系统设计不完善部分进行分析,以便在今后 的工作中进一步改进。 6 五邑大学硕士学位论文 第二章移动视频监控系统设计 2 1 总体设计思想 远程监控系统是一个非常具有市场价值和实用价值的系统,它允许用户对监控 目标随时进系统一行监控,已广泛应用于安保,工控等多种领域。目前大多数使用 的监控般是由服务器端和客户端组成,二者或是通过i n t e m e t 传输数据,或是利用 无线网络传输数据,但很少系统实现监控方可以随时随地获得监控信息。 所以,如何真正让监控方实现在任何时候,任何地点方便的获取监控信息是亟 需解决的问题。利用移动互联网和智能移动设备开发移动互联应用可以真正地实现 让用户在任何时候,任何地点获取信息的目的,这也是本系统的出发点。 传统的远程监控系统一般通过专业设备和专用网络实现,监控系统结构一般分 为b s 和c s 两种结构,c s 模式1 1 2 j 主要由客户应用程序( c l i e n t ) 、服务器管理程序 ( s e r v e r ) 和中间件( m i d d l e w a r e ) 三个部件组成,b s 模式【1 3 】是一种以w e b 技术为基础 的新型的m i s 系统平台模式,把传统c s 模式中的服务器部分分解为一个数据服务 器与一个或多个应用服务器( w e b 服务器) ,从而构成一个三层结构的客户服务器体 系。c s 结构的优点有应用服务器运行数据负荷较轻、数据的储存管理功能较为透 明【1 4 】,很好地适应了当前网络中大量存在的资源分布和运算能力不均的现状【15 1 , 而随着智能手机计算能力的增强以及移动数据网络带宽的提高,使得以智能手机作 为终端的远程监控系统成为可能。实现这样的系统,将使手机用户能随时随地了解、 控制可能远在千里之外的监控现场,极大地方便人们的日常生活与管理活动。 如上所述,随着移动互联网的发展,移动接入网的覆盖区域已经基本上没有盲 点,同时接入速度也在不断的上升,g p r s 网络的数据流量的理论最大值已经达到 了1 7 2 k b p s ;另外,手持移动设备的计算能力不断进步,智能移动设备得到飞速发 展。利用移动互联网和智能移动设备开发移动互联应用可以真正的实现让用户在任 何时候,任何地方获取信息的目的。基于移动互联网技术和j 2 m e 技术,本系统实 现了监控方通过智能移动设备随时随地获取监控信息的功能。 设计思想是基于智能手机的远程视频监控,让用户通过手机对远程环境进行监 视和控制。系统的总体设计思路是,部署一台p c 服务器作为获得监控图像的服务 7 五邑大学硕士学位论文 器,服务器负责连接、控制监控设备并与用户的智能手机通信。智能手机则作为终 端设备负责显示监控画面,并提供控制设备的用户界面。智能手机通过g p r s 移动 数据网络与i n t e m e t 互联从而实现与用p c 服务器的通信。 2 2 系统功能需求与总体框架 本系统需完成的系统功能包括: 1 ) 视频图像编码 摄像头获取的视频图像以h 2 6 4 编码格式存放在服务器上。 2 ) 图像传输 手机客户端向服务器发送获取图像请求,服务器收到相应请求后把缓存的图像 数据发送给移动客户端。数据的传输建立在服务器端和客户端的s o c k e t 连接上。 3 ) 图像显示 该功能由移动设备端实现。获取图像后,移动设备端将图像展示出来,并尽量 保持其平滑和连续。 4 ) 用户身份验证 监控用户连接服务器后,在获取图像前要进行身份验证。服务器验证用户身份, 如果正确则提供监控服务,如果错误则提示用户重新输入正确的用户名和密码。 5 ) 网络流量控制 该功能由服务器和移动设备端共同实现。由于移动网络流量的不稳定性以及移 动设备端所处环境的复杂性,系统必须保证在不同的流量环境下尽量保证图像的实 时和连续。系统将按一定方法调整图像的质量或是每秒的帧数。实现对网络流量的 控制。 6 ) 监控设备控制 该功能由服务器和移动设备端共同实现。通过向服务器端发送相应请求,移动 设备端用户可以对选择监控设备进行监控,可以控制其转动方向等。服务器端解析 客户端命令并执行之,然后将随后的图像数据发送到移动设备端。 7 ) 保存监控图像 在监控的过程中,用户可以对监控图像中认为有价值的图像进行保存。移动设 备端将把这些图像进行保存。 8 五邑大学硕i j 学位论文 8 ) 多t r f 、并jj 二处理 服务器端可同时对多个客j 、l 端提供多个峪控设备的图像和控制功能。 9 ) 系统设j 爵 该功能由服务器端和移动设备端共同实现。用户可以对诸如服务器端i p ,用户 名及密码,初始图像长宽比及压缩比等各种参数进行设置。从用户的角度来看,本 系统给他提供以下的功能接口:图像获取与展示,用,、- 身份验证,图像抓取,系统 设置等。由此呵以得到系统的用例如幽2 1 所示。 远程视频峪控系统 一一 ,i 。+腑控设备选择、控制, 。 “l “。+ 、。“”。! 一一- 7 ,7, 一一 7 7 一一一一 ,7 i一+ 身份验证 ,j , ? 。 一一 一一 ,7 、 7 7 。、 图像碾示 一,一 :j 一一 、 一一一一 、 智能手机用户 。+ 图堡保砭一一一一、 图2 1 系统用例 本系统是基于g p r s 移动互联网的c s 系统,在客户端和服务器端的连接时需 要利用g p r s 蚓络,根据已有的分析,本系统具体实现的拓扑绵构如图2 2 所示。 砷卜而壤一层 融缁荔垣绺 图2 2 系统f 内拓扑结构幽 根据该图,综合已有分析,本系统的主要信息流向分析如下1 1 0 : 控制信息:由客户端流向服务器端。当客户端向服务器端发送控制信息的时候, 将该控制信息封装在t c p 协议中,发送到服务器端。具体的说,客户端会首先请求 分配信道,得到应答后,将t c p 数据分组封装后在预留的时隙内发送给b s s ( b a s e s t a t i o ns u b s y s t e m ) 。 b t s ( 基站收发台) 正确接收到数据后,给出f 宁定应答,将数据 发送给s g s n 。s g s n 然后将数据封装成传送协议,通过g p r s 骨r - 网发送给g g s n 。 9 五邑大学硕士学位论文 g g s n 将数据分组路由到互联网中,最后到达连接在互联网上的服务器端。服务器 端处理这些信后给出相应反馈。 图像信息:由服务器端流向客户端。服务器端由摄像头处获取图像信息并压缩 缓存之,收到客户端请求后,将图像信息封装在t c p 协议中,发送到i n t e r n e t 。该 信息将到达g g s n ,然后,g g s n 会将将分组封装,然后通过g p r s 骨干网路由到 s g s n 。s g s n 会请求m s c 在路由区内进行寻呼来找到该移动用户所处的小区。然 后,在需要的节点间建立路由,将分组从s g s n 经过m s c ( 移动交换中心) 和b s c ( 基 站控制器) ,送到b t s 。b t s 在p d c h ( d i g i t a lp r i v a t ec i r c u i tn e t w o r k ) 上预留一个时 隙,将分组封装成空中接口协议,然后发送给客户端。客户端则将数据分组解封, 显示图像,并同时给出应答。 2 3 系统服务器端框架 根据本系统总的功能需求,服务器端要实现如下功能:图像获取、图像传输、 用户身份验证、网络流量控制、监控设备控制、多用户并行处理、系统设置,可以 得到服务器端的用例如图2 3 所示。分析系统服务器端的功能需求,可以得出服务 器端的运行流程如图2 4 所示。 s e r v e rs y s t e m 一函磊再菊n 望堡笙! 兰堡里) “二堕堕) o ) i n tr e c v = n e t s t r e a m r e a d ( m e s s a g e ,s t a r k ,d a t a l e f l ) ;将消息读入m e s s a g e 中去 s t a r t 一= r e c v ; d a t a l e f l 一2 r e c v ;) 4 2 服务器端的技术难点及解决方案 服务器端需要解决的关键技术问题包括: 1 ) 如何实现连续图像的抓取7 2 ) 系统的服务器端是一个多客户端的服务器,如何利用多线程技术解决来自多 个客户端的请求以及如何解决多线程之间的资源争用问题? 4 2 1 利用w i n d o w s 定时器实现连续图像抓取 w i n d o w s 下实现定时器主要有三种方法3 4 】: 1 ) w i n d o w s 操作系统的定时器。该定时器利用w m t i m e r 消息映射来进行简 单的时间控制。其定时精度可达到5 5 m s 左右。由于w i n d o w s 操作系统工作方式为 多线程的抢先式多任务,并且w m t i m e r 消息的优先级较低,因此,这种定时方 法使用于要求定时精度不高的情况。 , 2 ) 多媒体定时器。该定时器拥有自己单独的线程,调用回调函数。它建立在中 3 6 五邑大学硕士学位论文 断的基础上。该定时器在2 0 m s 以上的定时任务中,精度可达1m s 。 3 ) 利用外部硬件时钟电路来获取精确的定时时间触发信号,将外部的定时触发 作为一个硬件中断,并实现该中断的处理,这种方法的定时精度可以达到几个微秒。 从实际情况考虑,本系统采用了第二种方法实现定时功能。该方法需要完成以下 步骤: 1 ) 该方法调用t i m e s e t e v e n t 0 函数开启定时器,定义其延时和精度,并提供该 定时器触发时的回调函数。 2 ) 实现定时器回调函数。该回调函数必须形如以下函数 v o i dc a l l b a c k i m e p r o c ( u i n tu i d ,u i n tu u s g ,d w o r dd w u s e r , d w o r dd w l ,d w o r dd w 2 ) ; 其中,u l d 指代定时器的编号,该编号由l i m e s e t e v e n l 函数返回;d w u s e r 指代由用 户提供u m s g 指代由用户指定的定时器数据指针,该指针由用户在t i m e s e t e v e n t 函 数中指定,本系统中把d w u s e r 指定为该定时器所在的m o n i t o r 对象的指针。其它的 三个参数都是保留参数,没有使用。 3 ) 使用结束后,调用t i m e k i l l e v e m 0 函数销毁定时器。 t i m c k i l l e v c n t ( u i n tu t i m e r l d ) ;其中,u t i m e r l d 指定要销毁的定时器的编号, 该编号也是由t i m e s e t e v e n t 函数返回的 4 2 2w i n d o w s 下的多线程编程 多线程应用程序比单线程应用程序要考虑更多的因素,但它有着明显的好处, 就是挖掘了宝贵的c p u 资源,提高了c p u 的利用效率。特别是对于本系统这种要 求多用户和快速响应的系统,不可避免的使用到多线程。 在m f c 类库中提供了多线程编程的支持。在m f c 中,线程包括用户接口线程 ( u s e ri n t e r f a c et h r e a d ) 和工作者线程( w o o e rt l l r e m ) 3 5 j ,前者常用来独立地处理用 户输入和响应用户事件;后者常用于处理后台任务,这些任务通常都需要比较大的运 算量,执行这些后台任务并不会耽搁用户对应用程序的使用。例如本系统中的图像 缩放和压缩的功能,由于涉及比较大的运算量,为了避免由它造成的响应放慢,所 以将它放入了工作者线程中。 v c 中要创建一个工作者线程,需要调用函数a f x b e g i n t h r e a d ,用于创建工作 者线程的a f x b e g i n t h r e a d 函数有六个参数,其中四个参数表示了当前线程的优先级, 3 7 五邑大学硕士学位论文 堆栈大小、创建标志和安全属性,它们都有默认值。但编程时一定要提供其中的两 个参数,这两个参数是控制函数和传递给控制函数的参数。工作者线程编程只需编 写线程控制函数和启动线程。 1 ) 实现控制函数。控制函数定义该线程,当进入该函数,线程启动;退出时, 线程终止。一个控制函数声明如下: u i n tc o n t r o l l i n g f u n c t i o n ( l p v o i dp a r a m ) ;该函数定义了线程要执行的代码 2 ) 启动线程。在程序中调用线程的函数,由函数a f x b e g i n t h r e a d 创建并初始 化一个c w i n t h r e a d 类的对象,启动并返回该线程的地址,线程进入运行状态。其 形式如下: a f x b e g i n t h r e a d ( m y w o r k t h r e a d ,p a r a m ,p r i o r i t y ) ; 其中m y w o r k t h r e a d 是线程要运行的函数的名字,也即是控制函数的名字,p a r a m 是准备传送给线程函数m y w o r k t h r e a d 的任意3 2 位值,p r i o r i t y 则是定义该线程的优 先级别。这样,就启动了线程来执行m y w o r k t h r e a d ( ) 函数。 3 ) 中止线程。对于工作者线程来说,控制函数运行结束,线程就中止了,同时 返回一个说明终止原因的值,0 表示执行成功。也可以利用a f x l n d t h r e a d ( ) 函数手 动中止一个工作者线程。 4 2 2 1 线程同步问题的提出 本系统中图像信息由摄像头到客户端的流程如下:首先,系统启动摄像头,并 为每个摄像头建立一个图像缓冲区( 一个f r a m e 类的数组) ,为这个数组建立一个索 引,指向当前写入的图像缓冲区。然后,一帧图像被捕获,写入当前的图像缓冲区 对象中,更新索引指向下一个写入缓冲区对象;当系统收到来自客户端的请求,把数 据从缓冲区中读出来,传送给客户端。可以看出,这个过程中出现了两种角色,一 种是图像信息的产生者和写入者,即图像抓取线程:另一种则是图像信息的消费者, 即客户端通信线程,两者都需要获取图像信息缓冲区。所以,本系统的线程同步问 题是一个典型的“读一写 问题。“读一写 问题是一个经典的进程同步问题,一个 数据对象可以被多个线程共享,有些线程要求读,有些线程要求对数据对象进行写 或修改。这种共享的数据对象是不允许一个写线程和其它读线程,或者两个以上的 写线程同时访问的。“读一写”问题就是指保证一个写线程必须与其它线程互斥地访 问共享对象的同步问题。在本系统中,共享的数据对象就是图像信息缓冲区,读就 是客户端通信线程,写就是图像抓取线程。本系统的同步问题就是如何保证图像抓 3 8 五邑大学硕士学位论文 取线程如何与其他线程互斥的访问图像信息缓冲区的问题。 4 2 2 2w i n d o w 中线程同步的方法 w i n d o w s 中提供了四种同步对象来实现各个线程协调工作,实现同步,这四种 对象分别是临界区、互斥量、信号量、事件。 1 ) 临界区临界区对应着一个共享的临界区对象( c c r i t i c a l s e c t i o n 对象) ,它是 保证在某一个时间只有一个线程可以访问数据的方法。无论哪个线程占有临界区对 象,都可以访问受到保护的数据,这时候其它的线程需要等待,直到该线程释放临 界区对象。当线程需要访问由该对象所控制的资源时,创建一个c m u l t i l o c k 或 c s i n g l e l o c k 类型的加锁变量,调用加锁对象的l o c k ( ) 成员函数占有临界区对象;当 线程需要离开由该对象所控制的资源时,调用加锁变量的u n l o c k ( ) 成员函数释放对 i 临界区对象的拥有权,以使另一个线程可以夺取临界区对象并访问受保护的数据。 2 ) 互斥量互斥量与临界区很相似,但是使用时相对复杂一些,它不仅可以在 同一应用程序的线程间实现同步,还可以在不同的进程间实现同步。互斥量允许在 任意时刻有且仅有一个线程或进程访问某资源。互斥量必须处于有信号或无信号的 两种状态之一。当互斥量处于有信号状态时,第一个等待该互斥量的线程将被唤醒, 并重新将该互斥量置为无信号状态。一旦拥有该互斥量的线程执行完成,它必须释 放该互斥量,下一个等待该互斥量的线程将被唤醒,拥有该互斥量,获得执行的机 厶 j 譬o 3 ) 信号量信号量对象允许多个线程访问某个共享资源,采用计数器来实现信号 量。每当有一个或多个资源变成可用时,可用的资源计数就加1 。信号量能自动地 进行测试和设置操作。当一个信号量请求资源时,操作系统负责检查该资源是否可 用,如果可用,就将其计数器减1 ,并允许线程访问该资源。当计数为0 时,任何 试图从该信号量请求资源的线程都被迫等待,等待计数重新变成大于o ,这时线程 才被允许访问信号量对象控制的资源。通过信号量,可以同时有若干线程得到由一 个信号量对象控制的资源的访问权。 4 ) 事件事件用来发信号以通知其他的线程某一操作已经开始或完成。有两种不 同类型的事件对象,人工重置事件和自动重置事件。人工重置事件用于一次向多个 线程同时发信号以表示某操作已经开始或完成,而自动重置事件用于向单个线程表 明某一操作已经开始或完成。 m f c 对上述的四种同步对象均进行了封装,对应的四个m f c 同步类分别是 3 9 五邑大学硕士学位论文 - c c f i t i c a 1 s e c t i o n 、c m u t e x 、c s e m a p h l o r e 和c e v e n t 。m f c 还提供了两个同步访问类 c m u l f i l o c k 和c s i n g l e l o c k ,同步访问类用来获得对这些控制资源的访问。 4 2 2 3 线程同步的实现 由上所述,本系统线程同步问题是一个典型的“读一写 问题,“读一写”问题 的解决可以用一系列的p ,v 操作来实现。 在本系统中,该问题的解决是在f r a m e 类中实现的,f r a m e 类的实现如下: c l a s sf r a m e t p r i v a t e : b y t e m d a t a s z e p i m a d e ;- - 帧图像数据的缓冲区 i n tmd a t a s i z e ;图像数据的长度 c s e m a p h o r e ms r e a d ; 读图像数据信号量 c s e m a p h o r e ms w r i t e ;写图像数据信号量 c s i n g l e l o c km _ r e a d ; - 读数据锁 c s i n g l e l o e k mw r i t e ; 写数据锁 i n tmr e a d e r c o u n t :当前读取数据的用户数 p u b l i c : i n tw r i t e d a t a ( b y t e ,i n t ) ;写入图像数据。 i n tr e a d d a t a ( b y t e 枣) ;读出数据单元,返回值为数据的长度 f r a m e ( ) ; ; f r a m e :f r a m e ( ) :m _ s r e a d ( m a x c l i e n t n u m b e r ,m a x c l e n t n u m b e r ) , m s w r i t e ( 1 ,1 ) ,m _ r e a d ( & m _ s r e a d ) ,m _ w r i t e ( & m _ s w r i t e ) ; 初始化f r a m e 对象,特别重要的是,将读者信号量的初始值设为系统允许最大 用户量m a x c l i e n t n u m b e r ,将写者信号量初始值设为1 ,然后分别对这两 个信号量关联上c s i n g l c l o c k 对象。 、 mr e a d e r c o u n t = 0 ; 设置当前读者数为零 i n tf r a m e :w r i t e d a t a ( b y t e s o u r c e ,, i n tl e n g t h ) 操作成功则返回t r u e ,否则返回f a l s e i f ( m _ w r i t e l o c k ( w r i t e l o c k t i m e ) ) m e m s e t ( t h i s m _ d a t a :,0 ,s i z e p i m a g e ) ; i 清空缓冲区原有数据 m e m c p y ( t h i s 一 m _ d a t a , s o u r c e ,l e n g t h ) ;写入缓冲区新数据 五邑大学硕士学位论文 t h i s 一 m _ d a t a s i z e = l e n g t h ; r e _ w r i t e u n l o c k ( ) ;解除写入锁 、 r e t u r nt r u e ; e l s er e t u mf a l s e ; i n tf r a m e :r e a d d a t a ( b y t e o u t p u t ) 用本帧md a t a 来填充o u t p u t ,返回值为被填充的缓冲区的长度 i f ( ! m _ r e a d l o c k ( r e a d l o c k t i m e ) ) r e t u r nf a l s e ; 如果当前读者数为0 ,则关闭写入锁,防止写入进程写入信息 i f ( m r e a d e r c o u n t = = 0 ) i f ( ! m _ w r i t e l o c k ( r

温馨提示

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

评论

0/150

提交评论