局域网监控系统的设计与实现.pdf
北京工业大学硕士学位论文局域网监控系统的设计与实现姓名:王宇冬申请学位级别:硕士专业:软件工程指导教师:蔡永泉;黄翔20061201摘要摘要局域网监控系统是通过获取被控端的系统信息,实现可靠、实用、方便、高效的计算机安全管理系统。它主要应用远程监控技术对局域网内的计算机运行状态进行监控。通过获取被控端计算机实时的运行信息,局域网管理者可以在控制端查看任意一段时间内被控端计算机的使用情况,随时监视局域网内计算机的运转状况,实现对局域网内所操作的计算机的安全管理。本文首先介绍了网络监控系统的发展现状和发展趋势,概述了局域网监控系统开发中所应用到的关键技术:图像及图像压缩技术、W m s o c k 的网络编程技术和多线程技术,并在此基础上提出了局域网监控系统的总体框架和设计然后详述了在系统开发过程中所遇到的网络传送量过大和提高系统可扩展性两大难题的解决方法。针对网络传输量过大的问题,本系统将屏幕分块进行截取,并只将变化了的小块屏幕传送给控制端,这样可以大大的减少网络的负载;为了提高系统的可扩展性,本系统采用面向对象的设计方法设计了一个消息引擎,其可将网络中传输的所有控制消息和数据封装成格式相同的消息。最后对局域网监控系统的监控端和被控端的各个模块的具体实现进行了详细阐述。被控端的主要模块有:系统状态信息获取模块、被控端消息引擎和网络传输模块。系统状态信息获取有四个功能模块:屏幕信息的获取、进程信息的获取、C P U 状态信息的获取和系统目录状态信息的获取。控制端主要的模块有:控制模块、控制端消息引擎、网络传输模块和数据库存储模块。该监控系统以监控信息的实时操作和实时控制为中心,充分利用了现有的局域网资源。整个系统采用分层的、面向对象的设计方法,具有结构模块化、层次化、接口简单、适应性强、升级扩展方便等特点,并具有良好的开放性和实用性。该监控系统在局域网内进行了测试,运行状况良好。关键词网络监控;消息引擎;消息模拟北京工业大学工程硕士学位论文i iA b s t r a c tC o m p u t e rm o n i t o r i n gs y s t e mf o rL A Nf L o lA r e an e t w o r k)i sam a n a g e m e n ts y s t e mf o rm o r er e l i a b l e,p r a c t i c a l,c o n v e n i e n ta n de f f i c i e n tm a n a g i n ga l lc o m p u t e r si nl o c a ln e tb yc a p t u r i n gt h es y s t e mi n f o r m a t i o no fc o n t r o l l e dc o m p u t e r,a n dr e m o t ec o n t r o lt e c l m o l o g yi su s i n gt oi m p l e m e n tt h i ss y s t e m B yc a p t u r er e a l-t i m ei n f o r m a t i o no fc o n t r o l l e dc o m p u t e r s,t h ea d m i n i s t r a t o ro fL A Nc a nk n o wa n yc o n t r o l l e dc o m p u t e r ss t a t u si na n yt i m eS Oa st oh o l da n dc o n t r o la l lt h ec o m p u t e r si nL A N F i r s t l y,t h i sp a p e rs u m m a r i z e st h ec u r r e n ts i t u a t i o na n dd e v e l o p m e n tt r e n do fn e t w o r km o n i t o r i n gs y s t e m,i n t r o d u c e st h ek e yt e c h n o l o g i e su s e di nd e v e l o p i n gm o n i t o r i n gs y s t e mf o rL A N,w h i c hi n c l u d et h ei m a g ec o m p r e s s i o nt e c h n o l o g y,t h eW i u s o c kn e t w o r kp r o g r a mt e c h n o l o g ya n dt h em u l t i t h r e a d i n gt e c h n o l o g y,a n dp r e s e n t st h ef i a m c w o r ko ft h i sn e t w o r km o n i t o r i n gs y s t e m S e c o n d l y,t h i sp a p e ri n t r o d u c e st h ek e yp r o b l e m si nd e v e l o p i n gt h i ss y s t e m,p r e s e n t st h es 甜e e nc a p t u r ea l g o r i t h mf o rr e d u c i n gt h ed a t at r a n s f e ro fn e t w o r k,a n dp r o v i d e si n f o r m a t i o ne n g i n ef o ri m p r o v i n gs c a l a b i l i t y F i n a l l y,t h i sp a p e rd i s c u s s e st h ed e t a i l e dd e s i g no f c o n t r o l l e ra n dc o n t r o l l e dc o m p u t e r T h em a i nm o d u l e so fc o n t r o l l e dc o m p u t e ri n c l u d et h em o d u l eo f c a p t u r i n gs y s t e ms t a t ei n f o r m a t i o n(i n c l u d ec a p t u r i n gi n f o r m a t i o no f s c r e e a a,p r o c e s s,C P Us t a t ea n ds y s t e md i r e c t o r ys t a t e)c o n t r o l l e dc o m p u t e r s m e s s a g ee n 昏n ea n dt r a n s f e r r i n gm o d u l e n 摇m a i nm o d u l e so fc o n t r o l l e ri n c l u d ec o n t r o l l i n gm o d u l e,c o n t r o l l e r Sm e s s a g ee n g i n e,t r a n s f e r r i n gm o d u l ea n dd a t a b a s em o d u l e T t l i sm o n i t o r i n gs y s t e mf o c u s e so nr e a l t i m ec o n t r o la n dm o n i t o r,t a k e sf u l la d v a n t a g eo ft h ee x i s t i n gl o c a la r e an e t w o r kr e s o u r c e s W i t ht h eo b j e c t-o r i e n t e dd e s i g na n dl a y e r e ds t n l c t u r e d,t h ew h o l es y s t e mp o s s e s s e st h e s ef e a t u r e s:m o d e l e d,l a y e r e d,s i m p l ei n t e r f a c e,e a s yo p e r a t i o n,s t r o n ga d a p t a t i o n,u p g r a d e a b l ea n ds oo n I th a sb e e nt e s t e di nl o c a la r e an e t w o r ka n di sr u n n i n gi ng o o dc o n d i t i o n K e y w o r d sn e t w o r km o n i t o r i n ga n dc o n t r o l;m e s s a g ee n g i n e;m e s s a g es i m u l a t i o nl l独创性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取德的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。签名:互整日期:刍趔垒汹关于论文使用授权的说明本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。(保密的论文在解密后应遵守此规定)签名:王整导师签名:盔童叠日期:2 业垒蠲沏碍第1 章绪论第1 章绪论本章首先介绍局域网监控系统的研究意义与国内外研究现状,然后对本文的研究内容进行概述,最后介绍本文的组织结构1 1 研究背景随着计算机网络的飞速发展,计算机已经被广泛的应用到各个行业和领域。为了实现内部资源的共享,局域网的应用得到了长足的发展,同时为了更好地利用互联网的功能。越来越多的公司、学校以及各种职能部门都提供了和互联网互联互通的功能。毫无疑问,这样的举措可以带来很多的益处,但是同时也应该注意到通过网络观看电影、进行网络游戏,甚至登录各种不健康网站等负面影响由于这些行为不易发现和管理,因此如何有效地解决这个突出问题成为人们关注的一个焦点。据国外数据统计,开通互联网办公的企业中,企业员工平均每天有超过二分之一的上班时间用来上网聊天,浏览娱乐色情网站或者处理个人事务。我国各行业自从1 9 9 9 年底开始按入I n t e r n e t 办公后,内部的局域网也存在着类似的问题。如浏览国家明令禁止的网站、工作时间上网打游戏聊天、下载和实际工作无关的电影、歌曲,甚至利用各行业的网络,对国内外的某些网站发起恶意攻击,这些行为某些已经违反了国家互联网的有关管理条俪,更多的是消耗了网络带宽的资源,使网络得不到充分的利用,影响了正常的办公业务。因此如何加强对计算机的管理,更好地利用网络资源,为企事业单位服务成了日益突出的问题,局域网监控也就应运而生。本文针对计算机和网络给管理方面带来的不利影响,研究了局域网实时监控相关的各种技术,实现了一个局域网实时监控系统。1 2 网络监控系统网络监控是指本地计算机系统通过网络(特别是I n t e m e t)对远端的控制系统进行监测和控制。网络监控又叫远程监控,从字面意思理解,远程指不是近距北京工业大学工程硕士学位论文离的,监控指的是监测和控制。远程监控的又一解释是在网络上由一台电脑(主控端、客户端)远距离去控制另一台电脑(被控端服务器端)的技术,这里的远程不是字面意思的远距离,一般指通过网络控制远端电脑。网络监控是建立在现代的计算机网络技术、通信技术、控制技术以及图形图像技术上的一个新的应用。它采用多元的信息传输、监控、管理和一体化的集成,实现了信息、资源和任务的共享,达到了监控的实时、快速和高效,并能够和其他的计算机网络进行互连,向人们提供了一个更高效、更全面、更安全、更便捷的服务模式,改交了传统的监控模式。仿真监控系统的技术指标有以下几麒1 词:(1)实时性,它的含义是指能够实时地反映现场设备的运行状况。(2)一致性,仿真监控系统的一致性体现在:外观:主要指仿真的物体在外观上与原件相似,包括颜色、尺寸、样式等;显示:数据的刷新与显示与现场一致;感觉:操作的感觉与现场基本一致。(3)可靠性和稳定性,监控系统在运行过程中应该可靠、稳定的运行。网络监控系统属于仿真监控系统的一种,所以它除了应该具有仿真监控系统的以上技术指标以外,由于网络监控系统还涉及到数据的大量传输,所以还应具有区别于其他监控系统的特点,主要有以下两点【3 卅:数据传输的实时性;数据传输的可靠性。网络监控功能的实现一般采用客户机,服务器模式(C l i e n t S e r v e r)模式,由客户端和服务器端两部分组成。服务器程序安放在被控制的计算机端,客户机程序安装在控制端。在客户端和服务器端都安装成功之后,客户端在网络上一搜寻到已经安装了服务器的远程计算机,就发出获得服务器端的连接指令,两台P C 建立起连接,然后就可以通过网络的互联协议T C P 佃进行远程控制。服务器端和客户端是相对而言的。一个应用程序既可以是S e r v e r 端,也可以是C l i e n t 端。一般情况下,被监控的计算机系统工作于服务器模式,监控者为客户端。客户端主要向服务器端发出获取该端信息的请求并将从服务器端发送回来的信息在本地实时显示出来,或者向服务器端发送控制指令。而服务器端主要负2第1 章绪论责响应客户端的请求并发送信息。服务器程序安装在被控制的计算机端,客户机程序安装在控制端,工作时一端先启动,等待另一端的连接一旦两台P C 建立起连接,就可以通过网络互连协议进行远端控制1 3 网络监控系统研究现状和发展趋势1 3 1 研究现状计算机领域经历了一场新的革命,它结合了现代通讯技术、控制技术、图形技术,其目标是随时随地给人们提供无缝的、高质量的、易用的、廉价的信息通信,使其真正进入人们的生活,即所谓的“U b i q u i t o u s A c c e s s”。在计算机技术、电子技术和通讯技术迅猛发展的过程中,监控系统的技术水平也从初期的模拟信息传输和控制飞速发展到了数字化、网络化信息传输和控制。作为生活生产中非常重要的一项技术即网络监控技术的重要性正逐渐被人们所认识和重视另外,各种基于网络与分布式概念的系统大量应用于科学研究与工程实践,这一应用带来了许多变化和影响,衍生出许多新的生产方式,如网络制造、计算机集成制造等等。作为现代工业技术的一个重要支撑技术与组成要素,网络监控技术近几年越来越受到人们的重视,许多新的监控方法不断涌现出来,如智能监控、在线监控和远程监控,遥测、遥信、遥控、遥调即四遥功能等。网络监控的发展是与通讯技术的发展密不可分的,伴随着通讯技术的发展,出现了现代的网络监控的实时监控的模式。其显著特点是现场设备将各种设备获取的信号,通过网络传送给网络诊断工程师,工程师再利用计算机和现代信号处理技术对收到的数字信号进行分析处理,对设备状态进行评估,并对远程客户端发出一系列指令,并将这些评估和指令返回到远程用户。由于数字信号远程传输的保真度高,不受时间和空间影响,因此可以实现真正意义上的实时在线网络监控。目前,网络监控系统已经在安全监控、生产过程监控、住宅小区等监控等领域被广泛应用。9 1 1 之后,网络监控技术仿佛一夜之间就风行于美国市场,同样S A R S 肆虐也使网络监控技术在国内市场炙手可热,互联网、报纸、杂志等各种媒体上关于网络监控的宣传报道扑面而来,颇有些山雨欲来风满楼的势头。网络监控系统以其远距离监控的独特优势逐渐赢得广大客户的青睐,网络监控系统将3北京工业大学工程硕士学位论文会有着广泛的应用前景,对其进行研究将带来巨大的社会效益和经济效益【5 l。国内不少高校及科研单位已投入设计和开发各类网络监控系统。西安交大电子信息学院开发了基于组态王组态软件的三峡大坝分布式网络监控系统,上层采用标准以太网,底层网络采用R S-4 8 5 协议总线技术,加上服务器、监控工作站,构成一个适合工业现场的局域网远程控制系统。另外还有西北工业大学自动化学院和空军工程大学电讯工程学院联合开发的航空科学基金资助项目。伴随着I n t e m e t 技术的迅速发展,网络监控技术越来越完善。起初的网络监控功能用于P C 用户在离开办公室的时候能访问台式P C 硬盘中的信息,甚至可以通过其台式P C 访问企业网络资源。今天,许多企业和增值分销商正把网络监控功能作为有效的技术支持工具,如网络管理员采用具有该功能的软件对局域网进行管理,出差在外的商务人员可以随时随地提取公司数据和资料。而网络监控技术最显著的表现是将远程监控技术应用于工业控制力一面。由西安交通大学开发的基于I n t e m e t 的快速成型和快速加工技术,只要用户安装W W C W 浏览器,就可以通过H T T P 获得远程服务部T S B(1-c l e S e r v i c eB U l e a l l)在线技术支持和数据交换。比如提供S D C A D(S c i e n t i f i c D e t e c t i v ec o m p u t e r a i d e dd e s i g n,科学探测计算机辅助设计)文件和物理模型,加工测试数据反馈给T S B等。另外此项目得到国家8 6 3 计划的资助。1 9 9 8 年,S w i s sF e d e r a l 技术学院的ES a u c y 博士进行了基于I n t e m e t 的移动机器人的远程控制试验【5】。由上可见,许多基于I n t e r a e t 的远程监控功能的系统已投入到实际的应用领域,并取得良好的反响。1 3 2 发展趋势网络监控系统的发展趋势如下:1 家庭办公将成为时尚G a r t n e rG r o u p 公司预言,到2 0 0 5 年全世界将有1 亿8 0 0 万以上的人会经常不在办公室内工作。2 远程技术支持的流行技术支持必须依赖技术人员和用户之间的口头交流来进行,这种交流既耗时又容易出错。许多商业用户对计算机知之甚少,然而当遇到问题时,他们必须向技术人员提供故障情况及相关操作。比如向无法看到计算机屏幕的技术人员描述问题的症状,按技术人员的提示精确地描述屏幕上的内容。在尝试解决问题时,4第l 苹绪论技术人员可能指导用户执行一系列复杂的过程,而这些过程对用户来说或许完全不熟悉;如果用户不能正确地按要求操作,反而使问题恶化以上这些情形费时又费事,工作效率很低。此外,如果通过电话不能解决问题,那么在技术人员亲自到用户现场解决问题之前,计算机将一直不能使用。网络监控软件能使技术人员直接操作远程计算机,就像操作本地机器一样,无须用户介入,技术人员就能得到该机器的问题的第一手材料,从而加快了问题的解决。实际上,使用远程控制工具的技术人员能够做到解答疑难问题,安装和配置软件,把软件修补程序下载到用户计算机上,配置应用程序和系统软件设置并可通过实际操作培训用户。3 远程教学的快速发展在远程教学中需要大量使用计算机远程教学管理软件,通过这种软件,师生可进行实时的通信,交流信息,对话和传递文件。因此,网络监控软件在远程教学中是大有作为的4,企业内部管理随着社会的发展,企业规模越来越大,大家都在同一个办公室的时代早就一去不复返了员工不在一栋办公楼内,不在同一个城市,甚至不在一个国家里办公。这样的企业越来越多,他们所面临的问题就是如何在不同的地方共享共同的资源。特别是工T 企业,企业管理人员如何知道他的员工在于什么,是否外泄了公司内部的程序源代码,这一直都是r r 公司管理的一大难题。随着人们观念的更新,现在很多企业开始使用网络监控系统,用摄像的方式来监控员工的行为。但是,这种监控系统对员工的敲键,发送邮件等细小的行为依然无能为力。网络监控软件却能轻松地管理这些细节问题,因此网络监控软件在企业的内部管理上将发挥很大的作用。1 4 研究内容本文利用图像及图像压缩技术、网络通信技术和多线程技术实现了一个局域网实时监控系统。该系统的体系结构采用了客户机服务器模式,具体实现采用了面向对象的开发技术,程序的界面和框架利用M F C 来实现,网络通信部分采用了W i n s o c k 网络编程技术。该系统可以根据不同的需求和环境进行灵活的扩展,是一个简单、实时、高效的监控系统其优点是充分利用了现有的局域网资S北京工业大学工程硕士学位论文源,以最高的性价比,以信息的实时操纵和实时控制为中心,实现信息的及时传递和管理。1 5 论文组织结构本文共分为四章:第一章:介绍了局域网监控系统的研究意义与国内外研究现状,概述了本文的研究内容,并介绍了本文的组织结构;第二章:介绍了系统楣关的关键技术,主要包括:图像及本系统所应用的图片压缩技术、W h I s o c k 网络编程技术、和多线程技术等;第三章:介绍了系统的整体设计框架,并对各个模块之间的关系进行了详细描述。同时对在系统开发过程中所遇到的主要问题及其解决办法进行了说明;第四章:对各个功能模块进行了详细介绍,最后用一个实例说明系统的运行情况;最后对本论文的工作进行了总结和展望。6第2 章关键技术第2 章关键技术本章主要介绍局域网开发中所应用到的关键技术,主要包括:图像及图像压缩技术、W m s o c k 网络编程技术和W m d o w s 多线程技术2 1 图像技术【6】W m d o w s 系统不允许应用程序直接访问视频存储区,而是提供了一个抽象的接口,称作图形设备接口(G D I)W m d o w s 已经提供了各种显示卡的驱动程序,这样我们的程序就不用关心与系统相连的显示卡的类型,可以通过调用G D I 函数来和硬件打交道。各种G D I 函数会自动参考被称为设备环境的数据结构。W m d o w s 会自动将设备环境结构映射到相应的物理设备,并且提供正确的输入输出指令,G D I 在处理速度上几乎和直接进行视频访问一样快。B M P 图形文件是W m d o w s 采用的图形文件格式,在W i n d o w s 环境下运行的所有图像处理软件都支持B M P 图像文件格式W m d o w s 系统内部各图像绘制操作都是以B M P 为基础的。W i n d o w s3 0 以前的B M P 图文件格式与显示设备有关,因此把这种B M P 图像文件格式称为设备相关位图(D D B)格式。W m d o w s3 0以后的B M P 图像文件与显示设备无关,因此把这种B M P 图像文件格式称为设备无关位图(D I B)格式。位图文件可看成由4 个部分组成;位图文件头(b i t m a p-f i l eh e a d e r)、位图信息头(b i t m a p-i n f o r m a t i o nh e a d e r)、彩色表(c o l o rt a b l e)和定义位图的字节阵列(1)B g P 文件头B M P 文件头数据结构含有B M P 文件的类型、文件大小和位图起始位置等信息。其结构定义如下:t y p e d e f s t r u c tt a g B I T M A P F I L E H E A D E RW O R Db f r y p e;,位图文件的类型,必须为B MD W O R Db f S i z e;,位图文件的大小,以字节为单位W O R Db I R e s c r v c d l;臌图文件保留字,必须为07北京工业大学工程颂士学位论文W O R Db I R e s e r v e d 2;位图文件保留字,必须为0D W O R Db f O f f B i t s;,位图数据的起始位置,以相对于位图文件头的偏移量表示,单位是字节 B I T M A P F I L E H E A D E R;(2)B M P 位图信息头B M P 位图信息头数据用于说明位图的尺寸等信息,其结构定义如下:t y p e d e f s t r u c tt a g B I T M A P I N F O H E A D E R D W O R Db i S i z e;结构所占用字节数L O N Gb i W i d t h;,位图的宽度,以像素为单位L O N Gb i H e i g h t;位图的高度,以像素为单位W O R Db i p l a n e s;目标设备的级别,必须为lW O R Db i B i t C o u n t;每个像素所需的位数,必须是l(双色),4(1 6 色),8(2 5 6 色)或2 4(真彩色)之一D W O R Db i C o m p r e s s i o n;位图压缩类型,必须是O(不压缩),I(B I _ R L E 8 压缩类型)或2(B IR L E 4 压缩类型)之一D W O R Db i S i z e 工m a g e;位图的大小,以字节为单位L O N Gb i X P e l s P e r M e t e r;所芷图水平分辨率。每米像素数L O N Gb i Y P e l s P e r M e t e r;位图垂直分辨率,每米像素数D W O R Db i C l r U s e d;,位图实际使用的颜色表中的颜色数D W O R Db i C l r I m p o r t a n t;,位图显示过程中重要的颜色数 B I T M A P I N F O H E A D E R;(3)调色板(颜色表)调色板用于说明位图中的颜色,它有若干个表项,每一个表项是一个R G B Q U A D 类型的结构,定义一种颜色。R O B Q U A D 结构的定义如下:t y p e d e f s t r u c tt a g R G B Q U A D B Y T Er g b B l u e;蓝色的亮度(值范围为0-2 5 5)B Y T Eg b G r e e n;绿色的亮度(值范围为0-2 5 5)B Y T Er g b R e d;红色的亮度(值范围为0-2 5 5)B Y T Er g b R e s e r v e d;v 采留,必须为0)R G B Q U A D;第2 荦关键技术颜色表中R G B Q U A D 结构数据的个数由b i B i t C o u n t 来确定:当b i B i t C o u n 卢l,4,8 时,分别有2,1 6,2 5 6 个表项;当b i B i t C o u n t=2 4 时,没有颜色表项。位图信息头和颜色表组成位图信息,B 1 T M A P I N F O 结构定义如下:t y p c d e f s t r u c tt a g B I T M A P I N F O B I T M A P I N F o H E A D E Rb m i I-I e a d e r;,位图信息头R G B Q U A Db m i C o l o r s 1 ;,颜色表 B I T M A P I N F O;(4)位图数据位图数据记录了位图的每一个像素值,记录顺序是扫描行内从左到右,扫描行之问从下到上。位图的一个像素值所占的字节数:当b i B i t C o 岫产l 时,8 个像素占1 个字节;当b i B i t C o u n t-4 时,2 个像素占1 个字节;当b i B i t C o t m t=8 时,1 个像素占1 个字节;当b i B i t C o u n t=2 4 时,1 个像素占3 个字节。W i n d o w s 规定下个扫描行所占的字节数必须是4 的倍数(即以l o n g 为单位),不足的以0 填充。一个扫描行所占的字节数计算方法:D a t a S i z e P e r L i n 萨(b i W i d t h b i B i t C o u n t+3 1)8;,卜个扫描行所占的字节数D a t a S i z e P c r L i n c r=D a t a S i z e P e r L i n e 4+4:字节数必须是4 的倍数位图数据的大小(不压缩情况下)D a t a S i z e=D a t a S i z e P e r L i n e b i H e i#t;2 2 图像压缩编码解码算法p q】位图原稿数字化后的数据量非常惊人,在硬盘上存储时颇占地盘,并给传输带来了很多不便,所以图像压缩得到了广泛的运用。压缩的目的就是满足存储容量和传输带宽的要求,而付出的代价是大量的计算。图像数据压缩技术总的来说就是利用图像数据固有的冗余性和相干性,将一个大的数据文件转换成较小的同性质的文件。图像压缩主要根据两个基本事实来实现。一是图像数据中有许多重复的数据,使用数学方法来表示这些重复数据就可以减少数据量;二是人的眼睛对图像9北京丁业大学工程硕士学位论文细节和颜色的辨认有一个极限,把超过极限的部分去掉,也就达到了压缩数据的目的。利用前一个事实的压缩技术就是无损压缩技术,即压缩后的图像数据还原后与未压缩时严格相同,没有失真,如T I F F 图像文件格式;利用后一个事实的压缩技术就是有损压缩技术,即压缩后的图像数据与未压缩时有所不同,但不影晌人们对原始资料表达的信息造成误解,如J P E G 图像文件格式。实际的图像压缩其实是综合使用各种有损和无损压缩技术来实现的。采取有损压缩的方法进行数据压缩,在解压时会造成较大的误差扩。所以本系统采用的数据压缩方式是无损压缩,用到的主要无损压缩方法有:霍夫曼编码、多遍霍夫曼编码、行程编码、霍夫曼与行程编码等,本文将对霍夫曼编码与行程编码进行详细介绍。2 2 1 图像压缩编码理论基础图像压缩编码对图像采用不同的表达方式以减小表示图像所需的数据量,所以也常称为数据压缩。压缩的理论基础是信息论。从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息(可推知的),也就是用一种更接近信息本质的描述来代替原有冗余的描述。这个本质的因素就是信息量(即不确定因素)。假如用n 1 和1 1 2 分别代表用来表达相同信息的2 个数据集合中的信息载体单位的个数,那么压缩率C R 为:C t=n l n 2,一般情况下C r 在开区间(0,+一)中取值。在数字图像压缩中,有3 种基本的数据冗余:像素相关冗余,编码冗余,心理视觉冗余。如果能减少或消除其中的一种或多种冗余,就能取得数据压缩的效果。相关冗余:像素相关冗余是指对应图像目标的像素之间一股均有相关性。根据相关性,由一个像素的性质往往可获得其邻域像素的性质,这种冗余也常称为空间冗余或几何冗余。另外在连续序列图像中的各连续帧间的冗余也是一种像素相关冗余。码冗余:图像数据需要使用一系列符号,图像编码需要用这些符号根据一定的规则来表达图像。这里对每个信息或事件所赋的符号序列称为码字。而每个码字里的符号的个数称为码字的长度。编码所用符号构成的集合称为码本。在实际图像中,每个信息或者事件出现的几率不一样,如果他们对应的码字的长度都一样的话,就不能使编码产生的符号序列1 0第2 章关键技术达到最小,从而产生编码冗余。心理视觉冗余:人观察图像的目的是为了获得有用的信息。但眼睛并不是对所有视觉信息有相同的敏感度,在具体的应用中,人也不是对相同的信息具有相同的关心程度。一般来说。有些信息(在特定的场合和时间)与另外一些信息相比来说,不那么重要,这些信息可认为是心理视觉冗余的,去除这些信息并不会明显的降低所感受到的图像质量或所期望的图像作用。心理视觉冗余从本质上来说与前两中冗余不同,它是与实在的视觉信息联系着的。因为去除心理视觉冗余数据能导致定量信息的损失。一般情况下编码器包括顺序的3 个独立操作,而对应的解码器包括反序的2个独立操作,如图所示:图像输入映射嚣卜_ 叫量化器卜_ 叫符号编码器编码输出解码输入符号解码器H 反映射器图像输出图2 一l 图像编码解码F i g u r e2-1I m a g ec o d i n ga n de n c o d i n g在编码器中,映射器通过变换输入数据以减少像素相关冗余;量化器通过减少映射器输出的精确度来减少心理视觉冗余;符号编码器通过将最短的码赋给最频繁出现的量化器输出值以减少编码冗余。解码器只包括2 个子模块,因为量化操作是不可反转的,所以在解码器里没有对量化的逆操作模块图像压缩一般是通过改变图像的表达方式来达到的,因此图像压缩和编码是分不开的。图像压缩编码的主要应用是图像信息的传输和存储。2 2 2 霍夫曼(H u 伍n a n)编码【乳1 0】大多数图像常含有单色大面积图块,而且某些颜色比其它颜色出现更频繁。因此,为了节省空间,在对数据进行编码时,就有可能对那些经常出现的数据指定较少的位数表示,而那些不常出现的数据指定较多的位数表示。这样从总的效果看还是节省了存储空间。用这种方法得到的代码,其码的位数,也即码长就是不固定的,故称为变长码。霍夫曼(H u f f m a n)在1 9 5 2 年根据香农(S h a n n o n)在1 9 4 8 年和范若(F a n o)北京工业大学工程碗士学位论文在1 9 4 9 年阐述的这种编码思想提出了一种不定长编码的方法,也称霍夫曼编码。霍夫曼编码的基本方法是先对图像数据扫描一遍,计算出各种像素出现的概率,按概率的大小指定不同长度的唯一码字,由此得到一张该图像的霍夫曼码表。编码后的图像数据记录的是每个像素的码字,而码字与实际像素值的对应关系记录在码表中,当然码表是附在图像文件中的。实际应用中,霍夫曼编码也常与别的编码方法一起结合起来使用,如把霍夫曼编码与增量调制编码结合起来对图像进行编码,得到的压缩比要比采用单一的编码方法所得的压缩比高,效果更好。霍夫曼编码(H u f f m a nE n c o d i n g)是通过用不固定长度的编码代替原始数据来实现的。霍夫曼编码最初是为了对文本文件进行压缩而建立的,迄今已经有很多变体。它的基木思路是图像数据中出现频率越高的值,其对应的编码长度越短,反之出现频率越低的值,其对应的编码长度越长。霍夫曼编码将各数据出现的概率按从大到小的顺序排列,然后再按照下列规律列成个二叉树结构,便可直接写成霍夫曼代码,具体步骤如下:将两个最小概率的自由结点组成二叉树枝,树枝的权为其概率值;建立二叉树枝的父结点,父结点的权为两树枝权的代数和;将父结点和余下的最小权自由结点组成新的二叉树枝和结点。依次进行下去,便构成了霍夫曼树。表2-1 霍夫曼编码T h b k2-1H u f f n m nc o d i n g二进制数出现次数概率霍夫曼编码0 0 03 l0 4 8 4Ol O I1 00 1 5 61 0l l O80 1 2 51 0 00 1 07O 1 0 9l l l O0 0 150 0 7 81 1 1 1 l1 0 020 0 3 2I l l l 0 1O l l10 0 1 6l l l l 0 0l l lO总计6 4l,0 0 0比较各二叉树枝的权进行编码。例如权数大者编成“l”,权数小者编成“0”,或者相反。根据上述规律,将表2-1 中数据构成的霍夫曼树见图2 2。上例中霍夫曼编码将l b i t 码分配给概率最大的二进制数0 0 0,把最长的6 b i t码