中文摘要
随着互联网技术的不断发展,基于对等网络开发的软件得到了广泛的应用。课题依据对等网络应用程序设计模型,设计每个对等端同时拥有服务器和客户端的双重功能,开发了一个基于对等网络的图像传输软件,能够通过网络得到从对方计算机传来的屏幕图像数据,并实现了对异地计算机的远程控制和访问功能。系统设计中,由于图像的远程传输的位图数据量巨大,会占用很大的带宽,在比较分析数字图像处理原理的基础上,深入地研究了屏幕图像的分格截取、压缩和传输等技术及其软件实现方法,采用霍夫曼编码和行程编码压缩算法实现了计算机图像的压缩与实时传输。
关键词:对等网络;图像传输;数据压缩;远程监控
目 录 1 绪论 1 1.1 课题背景 1 1.2 远程监控原理 1 1.3 系统目标分析 2 2 数字图像原理 2 2.1 数字图像概念 2 2.1.1 设备相关位图 3 2.1.2 设备无关位图 4 2.1.3 BMP文件结构 4 2.2 计算机屏幕图像特征 5 2.3 图像编码技术 6 2.3.1 图像压缩的必要性和可能性 7 2.3.2 数据压缩编码分类 7 2.3.3 图像编码技术 9 3 系统开发环境及技术分析 10 3.1 Visual C++ 6.0 10 3.2 软件开发环境 11 3.3 Windows Sockets 技术 11 3.4 屏幕图像分格传输技术 12 4 项目开发 12 4.1 概述 12 4.2 总体设计 13 4.3 服务器端模块设计 14 4.3.1 通信模块设计 14 4.3.2 屏幕图像获取模块设计 15 4.3.3 图像数据更新的判断 17 4.3.4 数据压缩模块设计 19 4.3.5 信息模块设计 19 4.4 客户端模块设计 20 4.4.1 屏幕图像显示模块设计 20 4.4.2 通信模块设计 21 4.4.3 信息模块设计 22 4.4.4 图像保存模块设计 23 4.5 界面设计 25 4.5.1 服务器端界面设计 25 4.5.2 客户端界面设计 25 5 系统测试 25 结 论 28 致 谢 29 参考文献 30
1 绪论 1.1 课题背景 对等网络( Peer-to-Peer,P2P )曾被美国《财富》杂志称为改变因特网发展的四大新技术之一,甚至被认为是无线宽带互联网的未来。P2P技术不仅为个人用户提供了前所未有的自由和便利,同时也试图有效地整合互联网的潜在资源,将基于网页的互联网转变成动态存取、自由交互的海量信息网络。作为能够改变现有Internet应用模式的主要技术之一,目前P2P已经成为新一代互联网技术的研究热点。 P2P网络是一种具有较高扩展性的分布式系统结构,其对等概念是指网络中的物理节点在逻辑上具有相同的地位,而并非处理能力的对等。相对于传统的集中式客户/服务器模型,P2P弱化了服务器的概念,系统中的各个节点不再区分服务器和客户端的角色关系,每个节点既可请求服务,也可提供服务,节点之间可以直接交换资源和服务而不必通过服务器。 P2P技术在最近几年获得了高速的发展,也出现了较多应用。但截至目前,P2P中仍有很多的关键技术问题并没有得到解决,其中最典型的就是带宽吞噬、网络可扩展性差和路由效率低下等问题。这导致P2P至少在目前的技术水平而言只能是一种小范围不可靠的应用或是满足特定任务需求的专门应用。 1.2 远程监控原理 远程监控程序是随着互联网应用的发展而逐渐得到重视的一种新型网络应用技术。现在已经有许多比较成功的产品。这些软件最大的特点是能够访问到远程主机的屏幕,并进行相应的操作,使得通过本地计算机来访问远程主机屏幕成为了可能。 所谓远程屏幕监控,实际上是指通过在本机上一个叫做监控服务器的软件能够在线浏览和操作在远方的安装有远程监控客户端的软件的计算机屏幕,以实现监控的目的。目前远程屏幕监控程序几乎都是基于客户/服务器模式,客户端主要是监听、执行服务器端发来的请求或指示,如键盘按键、鼠标的动作等,同时还要定期发送屏幕位图到服务器端。而服务器端则负责把接收到的屏幕位图显示在服务器端的窗体上并把服务器端的键盘、鼠标动作发送给客户端应用程序。 因为远程监控具有这些特点,所以远程监控在实际的生产、生活中有着广泛的应用。如公司企业对员工工作情况的考察和管理,学校管理员对机房的管理等等。 1.3 系统目标分析 软件设计的目的和功能是为了能够实现对等网络内部计算机的屏幕进行监控,功能类似于一般地远程监控软件。远程监控软件程序之间的通信属于网间进程通信。网间进程通信的特点是,非对称性和异步性。它的主要模式是客户机/服务器模式,即客户端向服务器发送请求,服务器在接收到请求后提供相应的服务。服务器进程一般是先于客户请求启动,在通信之前双方必须先建立一种通信机制,然后二者才能同步交换数据。考虑到软件的功能构成,同样将目标软件设计为客户端部分和服务器端部分。 开发基于对等网络的图像传输软件,通过对等网内远程计算机的屏幕图像的传输,实现对远程计算机的实时监控。在实现提高图像的传输效率的时,并没有完全走前人在提高数据压缩方面的老路,而是采取了另外一种方案。在对计算机屏幕图像的获取时,采用了先对计算机屏幕进行分格,划分为一些较小的区域,相应对各个区域屏幕图像获取并传输。在传输图像数据时,由于图像数据的数据量较大,考虑对屏幕图像数据先进行压缩后传输。 软件在第一次实现了平面图像的传输成功后,当再次需要发送屏幕图像数据时,采取了先比较各截取区域屏幕图像数据是否发生变化,从而有选择的继续发送该变化区域的屏幕图像数据,达到提高图像传输效率的目的。软件同时采用了消息发送和处理的机制,将控制端的鼠标和键盘消息传输给被控端,从而实现远程计算机访问控制功能。在系统开发过程,需要综合利用数字图像压缩技术及网络编程技术,选择有效的压缩编码,重点实现图像的分格传输,提高程序的有效性。 远程监控的实现涉及到数字图像原理,本文后面的部分首先分析数字图像的基本原理,然后在此基础上详细分析本课题的设计与实现过程。 2 数字图像原理 2.1 数字图像概念 所谓图像,是指视觉景物的某种形式的表示和记录。在日常生活中,人眼看到的自然界的图像都是连续的模拟图像,其现状和形态表现由图像各位置的颜色决定。数字图像又称计算机图像,是离散化后的图像数据。计算机只能处理离散的数据,图像若需要用计算机进行存储、显示或处理,首先需要进行数字化,即转变成二进制数。 在Windows环境中最重要的图像就是位图。位图是存储在计算机内存和外存中的图像数据,它包含了图像中所有的信息。Windows位图包括两种类型的位图:设备相关位图(DDB)和设备无关位图(DIB)。 2.1.1 设备相关位图 设备相关位图是Windows的主要资源类型之一,主要用于显示图像和生成画刷。而设备无关位图主要用于保存图像以及图像处理中像素数据的存储。 计算机有不同的显示模式,目前常用的是真彩色显示模式。真彩色显示模式有24位真彩与32位真彩之分。图像模式有二值图象,16色图像,256色图像和真彩色等多种模式。因此图像显示时数据格式间的转换是一个无法回避的操作。最理想的情况是需要显示的位图与显示模式为同一类型,这时显示只需要复制数据,而不用进行像素数据格式的转换,提高了显示速度。设备相关位图就是为这种情况设计的。实际上,它的像素数据的存储格式就是Windows运行环境所设置的图像显示模式下显示存储器中图像数据的存储格式。用设备相关位图记录的像素数据不用转换即可以直接传输到显示存储器进行显示,显示速度极快。Windows是一种单用户多任务操作系统,计算机使用时窗口切换十分频繁,屏幕显示的内容需要不断进行刷新。因此,图像数据存放在设备相关位图里,窗口刷新方便迅速。 当用户通过一个设备描述表在位图上描绘图时,实际上就是把生成的图像记录在此位图上。设备相关位图是直接使用Windows API设计的。Windows的图形图像功能十分强大,有大量的函数支持这些功能,而这些函数的操作对象就是设备相关位图。Windows中设备相关位图的数据结构如下: typedef struct tagBITMAP{ int bmType; //位图类型(设为0) int bmWidth; //以像素为单位的位图宽度 int bmHeight; //以扫描行为单位的位图高度 int bmWidthBytes; //以字节为单位的位图宽度(必须为偶数) BYTE bmPlanes; //位平面数(总为1) BYTE bmBitsPixel; //每像素彩色位的个数 LPSTR bmBits; //指向存放像素数据的数组的远程指针 }BITMAP; 这个结构用于存放图像像素的结构信息,此外,还需要一块内存区域用于存放像素数据,结构的最后一个成员参数,指针bmBits用来指向这一区域。设备相关位图中不包括颜色信息,因此显示时是以系统的调色板为基础进行各位的颜色映射,Windows只能保证系统调色板的前二十种颜色稳定不变,设备相关位图只能保证正确显示少于20色的位图。 2.1.2 设备无关位图 设备无关位图也是Windows中的一个重要概念,它实际上就是存入内存中的去掉了14个字节位图头文件的BMP文件。它由两部分组成,即位图信息和像素数据,位图信息又由位图信息头和调色板数据两个部分,真彩色图像的位图信息中没有调色板数据。 Windows 3.1以上版本提供了对设备无关位图的DIB的支持。DIB位图可以在不同的机器或系统中显示位图所固有的图像。与DDB相比而言,DIB是一种外部的位图格式,经常存储为以BMP为后缀的位图文件。另外,DIB位图支持图像数据的压缩。 2.1.3 BMP文件结构 BMP文件是在Microsoft Windows使用的系统图像文件格式,应用非常广泛。它由位图文件头(BTIMAPFILEHEADER)、位图信息(BITMAPINFO)和像素数据3部分组成。位图信息又由位图信息头(BITMAPINFOHEADER)和调色板(PALETTE)数据组成。如图 2.1所示,位图文件头、位图信息头为固定长度,分别为14、40字节,它们构成图像文件头。调色板数据的多少与图像所用的色彩数有关,它的字节数是色彩数的4倍。真彩色BMP图像文件中没有调色板数据。 图2.1 BMP图像文件结构 其中,位图文件头包括图像文件的特征字符、图像文件的尺寸和像素数据的存储位置,见表2.1所示。 表2.1 BMP图像位图文件头结构 数据类型 标识符 内容 Char bfType[2] ASCII 字符‘BM’ DWORD bfSize 文件大小(以4字节为单位) WORD bfReserved1 备用单位1 WORD bfReserved2 备用单位2 DWORD bfOffBits 图像开始处的字节偏移 位图信息头则包含了位图基本属性及特征,位平面数、像素位数和压缩类型等信息,见表2.2所示。 表2.2 BMP图像位图信息头结构 数据类型 标识符 内容 DWORD biSize 位图头信息,40字节 DWORD biWidth 位图宽度,以像素为单位 DWORD biHeight 位图高度,以像素为单位 WORD biPlanes 位平面数,总为1 WORD biBitCount 每像素位数,为1、4、8或24 DWORD biCompression 压缩类型,0为不压缩 DWORD biSizeImage 压缩图像大小的字节数 DWORD biXpelspermeter 水平分辨率 DWORD biYpelspermeter 垂直分辨率 DWORD biClrUsed 使用的色彩数 DWORD biClrImportant 重要色彩数 调色板数据是指二值、16色和256色彩色图像中的色调数据。真彩色图像的像素数据中已有颜色分量,不需要调色板数据。在调色板显示系统中,每一幅图像都有自己的调色板,而每一个活动窗口或应用程序都根据自己的需要操作当前的调色板。在窗口中显示的每一个图像的调色板都保存在内存中,称为逻辑调色板。 像素数据以位图的形式存放,有压缩和不压缩之分,压缩数据可以节省存储容量,但在存取时需进行压缩和解压缩处理,处理速度稍慢。 2.2 计算机屏幕图像特征 现代计算机操作系统都是基于图形用户界面接口(GUI)的。通过良好用户界面,用户可以和计算机进行直接对话,从而高效的完成任务。计算机屏幕图像与一般的图像不同,具有其特殊性。 屏幕图像的连续性和非连续性特征,一般当计算机正在播放视频文件时,这时显示的图像具有连续性。然而更多的时候,计算机是用来工作和学习的。在使用过程中,需要不断的切换窗口,一个窗口的关闭可能导致大面积图像或整屏图像的所有像素值发生改变,因为前后两幅图像完全不同,图像的变化具有跳跃性,即非连续性特征。 屏幕图像的区域性特征,屏幕图像与普通图像的差别是屏幕图像有明显的区域性特征,且边界分明。在计算机桌面屏幕上,经常存在有大量的块状和条形区域,它们具有相同的背景颜色。相同颜色的像素的存在,因而也存在大量的空间冗余。 屏幕图像要求精确显示特征,计算机屏幕图像的分辨率一般较高,在捕获后显示时要求恢复失真度小。在一些特殊情况下,屏幕图像要求精确显示,如文本图像。 根据计算机屏幕的显示特征,可以将屏幕图像简单的划分为以下两种类型。第一种,动态屏幕图像类型,诸如计算机运行播放视频文件或当前正在运行大型图形、图像类游戏程序,屏幕的图像变化率较大。第二种,静态屏幕图像类型,比如计算机显示图形用户操作界面,或者当前正在处理如WORD文字编辑软件时所显示的图像,这些图像的共同特点是图像内容变化率较低,或者说屏幕在一段时间内仅发生小范围的改变。 综合屏幕图像的诸多特征,为屏幕图像获取和传输提供了参考价值。计算机屏幕区域一般会有大片连续的背景色,假设能够将这些背景色进行压缩,将能够大大的减少图像的数据量。考虑到计算机使用过程中,任一微小时间内屏幕图像仅发生局部改变。结合本文屏幕监控的特点,通过分析已有的屏幕图像编码传输技术,给出了一种分格屏幕压缩传输方法。在图像处于静态时,减少数据的传输量,以满足不同网络应用环境下屏幕图像传输的需要。 2.3 图像编码技术 图像编码是对图像采用不同的表达方法以减少表示图像所需的数据量,也称图像压缩。压缩的理论是信息论。从信息论的角度来说,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息。近年来,随着计算机与数字通信技术的迅速发展,特别是网络和多媒体技术的兴起,图像数据压缩和编码得到了广泛、深入的研究,已经形成了一系列系统化的数据压缩方法。 数据压缩的核心是计算方法,不同的计算方法,产生不同形式的压缩编码,以解决不同数据的存储与传送问题。数据冗余类型和数据压缩的算法是对应的,一般根据不同的冗余类型采用不同的编码形式,随后是采用特定的技术手段和软硬件,以实现数据压缩。 2.3.1 图像压缩的必要性和可能性 远程屏幕传输的目标是要求完整、实时、有较好视觉效果地将一台计算机的屏幕传送至一台或多台计算机上并且重新再现出来。由于屏幕是一个大数据量的多媒体信息,要达到这个目标并不是一件十分容易的事情。下面计算一下在没有任何数据压缩的情况下,远程屏幕传输中涉及到的数据量。首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5 相关论文
首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5