免费获取
|
论文天下网
|
原创毕业论文
|
论文范文
|
论文下载
|
计算机论文
|
论文降重
|
毕业论文
|
外文翻译
|
免费论文
|
开题报告
|
心得体会
|
全站搜索
当前位置:
论文天下网
->
免费论文
->
计算机论文
对等网络图像传输软件设计(二)
典型的显示配置为:分辨率为800×600,颜色深度为32 位色。则一幅整屏图像的数据量为:800×600×32/8/1024/1024=1.83 MB。要想达到一个可以接受的实时传送效果,则每秒至少需要传送3-4个屏幕图像。在没有任何压缩的情况下,每秒钟需要传送的数据量至少为:1.83MB×3/s=5.49MB/s。虽然近几年来计算机存储介质和网络技术有了很大的发展,硬盘的存储容量不断加大,网络传输带宽逐渐从10 Mb/s向100 Mb/s过渡,但仍无法满足上述巨大数据量的存储和传输需求,采用数据压缩技术去除不必要的冗余数据以减少所需传输的数据量是唯一的出路。
另一方面 ,图像数据中确实存在大量的冗余数据。首先,从空间上来看,屏幕数据像素之间存在很大的相关性。一幅图像的许多区域是相同或相似的,没有必要记录所有点的像素值。对于Windows这种基于GUI窗口界面的操作系统,屏幕经常出现一大片颜色相同的背景块和前景块。例如:单一颜色的桌面和应用程序背景、浅灰色的按钮和窗口边框等。同时,屏幕数据在颜色表示上也存在冗余。目前典型显示器的颜色配置有256色、16位色和32位色,颜色深度越大所表示的颜色数越多, 但同时所需的数据量也越大。各个不同的颜色深度所需要的数据量是不一样的。其次,从时间的角度来考虑,由于图像变换的连续性,相邻两帧图像数据中有大量相同之处,可以只记录它们的差别。
针对以上图像数据的特点,可以采取不同的方案对远程屏幕传输的图像进行压缩。这就使得我们可以通过采用适当的压缩算法去除图像数据在空间上和时间上的冗余,大大减少所需存储或传输的数据量。
2.3.2 数据压缩编码分类
多媒体数据压缩方法根据不同的依据可产生不同的分类。如根据质量有无损失可分为无损压缩和有损压缩。如图2.2所示。
图 2.2 多媒体数据压缩编码分类
1)无损压缩,是指使用压缩后的数据进行重构(或叫做还原,解压缩),重构后的数据与原来的数据完全相同,无损压缩用于要求重构的信号与原始信号完全一致的场合。无损压缩编码基于信息熵原理,属于可逆编码。其所谓“可逆” ,是指压缩的数据可以不折不扣地还原成原始数据。一个很常见的例子是磁盘文件压缩。根据目前的技术水平,无损压缩算法一般可把普通文件数据压缩到原来的1/2~1/4,压缩比一般不高。香农在创立信息论时,提出把数据看成是信息和冗余度的组合,无失真压缩的工作原理是去除(至少是减少)数据中的冗余,而不损失数据所包含的信息,因而是一个可逆过程。这类编码方法包括霍夫曼编码、游程长度编码、算术编码、LZW编码等,主要用于对数据质量要求较高、不允许产生失真的应用环境,如电报报文编码、计算机文件压缩等等。
2)有损压缩,是指使用压缩后的数据进行重构,重构后的数据与原来的数据有所不同,但不会让人对原始资料表达的信息造成误解。有损压缩适用于重构信号不一定非要和原始信号完全相同的场合。例如,图像和声音的压缩就可以采用有损压缩,因为其中包含的数据往往多于我们的视觉系统和听觉系统所能接收的信息,丢掉一些数据而不至于对声音或者图像所表达的意思产生误解,但可大大提高压缩比。解码后的数据与原始数据不一致。该编码在压缩时舍弃部分数据,还原后的数据与原始数据存在差异。有损压缩具有不可恢复性和不可逆性。有损压缩编码类型有:预测编码、变换编码等。
2.3.3 图像编码技术
一幅数字图像包含大量的信息,而表达图像所需的数据量也通常很大。这对存储、处理和传输都带来许多问题。表达无用信息或其他数据已表示的数据称为冗余数据,消除图像中的冗余数据,以减少表达给定量信息的方法称为图像的压缩,可以通过图像的编解码完成。
a) 霍夫曼编码
霍夫曼编码是一种常用的压缩编码方法,是霍夫曼(Huffman)于1952年为压缩文本文件而建立的,是一种无损压缩编码。它的基本原理是按照所对应信号出现概率大小顺序排列信源信号,并设法按逆序分配码字字长,使编码的码字是可识别的。
假设一个文件中出现了8种消息S0、S1、S2、S3、S4、S5、S6、S7,那么每种消息要编码,至少需要3比特。假设编码成000、001、010、011、100、101、110、111,那么符号序列S0S1S7S0S1S6S2S2S3S4S5S0S0S1共用了42比特。但是如果S0、S1、S2这3个消息出现的频率比较大,其他的消息出现的频率比较小,如果采用01、11、101、0000、0001、0010、0011、100对上述消息进行编码,则序列共用了39比特。实现了数据的压缩。
霍夫曼编码的码长是变化的,对于出现频率高的信息,编码的长度较短;而对于出现频率低的信息,编码长度较长。这样,处理全部信息的总码长一定小于实际信息的符号长度。产生霍夫曼编码需要对原始数据扫描两遍,第一遍扫描要精确地统计出原始数据中的每个值出现的频率,第二遍是建立霍夫曼树并进行编码,由于需要建立二叉树并遍历二叉树生成编码,因此数据压缩和还原速度都较慢,但简单有效,因而得到广泛的应用。
b) 游程编码
游程编码(RLE)又称“运行长度编码”或“行程编码”,是一种统计编码。该编码属于无损压缩编码。游程编码原理简单计算效率高,对于二值图像非常有效。
行程编码的基本原理是:行程编码通过将信源中相同符号序列转换成一个计数字段再加上一个重复字符标志实现压缩。译码时按照与编码时采用的相同规则进行,还原后得到的数据与压缩前的数据完全相同。因此,RLE是压缩技术是可逆的。
行程编码分为定长行程编码和不定长行程编码两种类型。行程编码是连续精确的编码,在传输过程中,如果其中一位符号发生错误,即可影响整个编码序列,使行程编码无法还原回原始数据。
例如,有一个原始数据序列:5555557777733322221111111。行程编码为:(5,6)(7,5)(3,3)(2,4)(1,7)。可见,行程编码的位数远远少于原始字符串的位数。在对图像数据进行编码时,沿一定方向排列的具有相同灰度值的像素可看成是连续符号,用字串代替这些连续符号,可大幅度减少数据量。
行程编码的特点:RLE所能获得的压缩比有多大,这主要是取决于图像本身的特点。如果图像中具有相同颜色的图像块越大,图像块数目越少,获得的压缩比就越高。反之,压缩比就越小。RLE压缩编码尤其适用于计算机生成的图像,对减少图像文件的存储空间非常有效。RLE对颜色丰富的自然图像就显得力不从心,因此,在自然图像的压缩中一般不能单纯使用RLE一种编码方法,需要和其他的压缩编码技术联合应用。因为串长度并非等概率分布,所以一般要配合以统计编码(如Huffman编码)。 c) JPEG编码方法 JPEG(联合图像专家组)是由国际标准组织(ISO)和国际电话电报咨询委员会(CCITT)为静态图像所建立的第一个国际数字图像压缩标准。和相同图像质量的其他常用图像文件格式相比,JPEG是目前静态图像中压缩比最高的。它采用有损压缩方式来进行图像压缩,但失真的程度非常小,肉眼几乎无法辨认。
图2.3 JPEG编码流程
图2.4 JPEG解码器流程
3 系统开发环境及技术分析
3.1 Visual C++ 6.0
Visual C++是Microsoft公司推出的开发Win32程序环境,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可以使其生成的程序框架支持数据库接口、OLE2、WinSock网络、3D控制界面。由于Visual C++本身就是一个图形的开发界面,它提供了丰富的关于位图操作的函数,对开发图像处理系统提供了极大的方便。因此,它现在已经成为Win32程序,包括图像处理程序的主要开发工具。虽然其他开发工具如Delphi、Visual Basic等也可以进行数字图像处理,但是在实现速度以及灵活性方面,却远远比不上Visual C++。
3.2 软件开发环境
硬件环境:程序应在Pentium II的计算机上运行,建议采用Pentium IV计算机,基本内存256MB,显示内存16MB,20GB以上硬盘。
软件环境:Microsoft Windows XP Sp2操作系统,Microsoft Visual Studio 6.0开发环境等,开发工具选用Visual C++ 6.0。
在开发软件时,考虑到软件的开发需要和环境,选择在局域网中搭建对等网络,方法是使用双绞线交叉连接两台计算机的网卡,从而模拟对等互联。在学校实验室中,同时处于一个内网中的计算机也同样可以比作对等网络的对等端。
3.3 Windows Sockets 技术
套接字(Socket)是一种网络编程接口,是对通信端点的一种抽象,它提供了发送和接收远程数据的机制。Winsock,即基于Windows的套接字,是专门为网络开发人员开发网络应用程序设计的编程接口。Windows套接字规范经过多年的发展已经从1991年的1.0版进化到1995年的2.0版,其中的几个标志性的版本是:Winsock 1.0、Winsock 1.1 和Winsock 2.0。现在Winsock已成为Windows网络编程事实上的标准。
Winsock由两部分组成:开发组件和运行组件。开发组件:Windows Sockets 实现文档、应用程序接口(API)引入库和一些头文件。运行组件:Windows Sockets 应用程序接口的动态链接库(WINSOCK.DLL)。
套接字是通信的基础,是支持网络协议数据通信的基本接口。应用程序在网络上传输,接收的信息都通过这个Socket接口来实现的。从某种意义上讲,可以将套接字看作是不同主机的进程进行通信的端点,它构成了应用程序与整个网络间的编程界面。WinSock有流式套接字和数据报套接字。流式套接字采用TCP协议,提供可靠的数据流服务,但速度较慢,可用来传输命令和控制信息的一些要求较高的数据。数据报套接字采用UDP协议,提供无连接数据报传输,不可靠但通信速率较高,可用作一些对数据可靠性要求不高的通信,如传输数据量较大的屏幕信息。
3.4 屏幕图像分格传输技术
计算机屏幕图像不是在时时刻刻全部变化着,大部分时间里只有部分图像在变化。如果仅对发生改变的图像进行传输,这将能大大减少屏幕数据传输的流量。因此,借鉴MPEG影像动态压缩的思路,对屏幕图像采用分格传输的方法,如将屏幕图像划分为2×2 共4个格子,在传输图像前比较前后时间每格图像是否发生改变,仅对发生改变的屏幕图像的网格区域进行压缩和传输。由于只需要传输发生改变的图像数据,在进行远程监控时,控制端所显示的远端屏幕就能够得到较好的刷新速率,从而实现更好的交互。
图3.1屏幕分格传输原理图
4 项目开发
4.1 概述
本课题为实现对等网络图像传输软件的设计。在翻阅了大量的资料之后,分析了当前P2P应用软件实现原理,综合考虑远程控制软件的实现方法。决定在对等局域网中模拟对等网络,基于TCP/IP通信协议,采用Winsock技术,使用Visual C++ 6.0开发该图像传输应用软件。软件模式设计为客户机/服务器(Client/Server)体系结构,但软件同时具有客户端和服务器的功能。软件采用了屏幕分格压缩传输的方法,使得屏幕图像能够快速的由一端传输到另外一端,实现了异地屏幕的实时传输和监控。
在实际应用开发中,仅使用其中一种压缩方法并不能达到很好的压缩效果,所以综合利用各类编码技术长处的,混合编码以提高数据压缩率。
4.2 总体设计
软件开发的目的是为了能够实现局域网内快速、有效的传输异地对等端计算机的当前屏幕图像,从而起到监视和控制的目的。本软件重点部分在于如何实现对计算机屏幕的截取、压缩和传输部分。另外软件还应具有一般远程控制软件的功能,如操作对方计算机的鼠标、键盘等,从而实现异地远程控制功能,实现对另外一台计算机的控制操作,如同使用本地计算机一样。
软件根据客户/服务器端模式,设计成两个部分。一个是服务器端软件,实现服务器端地址和端口的绑带,具有打开和关闭服务器功能;服务器端在接受远程计算机的连接后,开始分格截取当前计算机屏幕,压缩并传输给远程计算机;同时计算机响应远程计算机传输的键盘和鼠标信息。软件的设计功能模块图4.1所示。
图 4.1软件功能模块图
首页
上一页
1
2
3
4
5
下一页
尾页
2
/5/5
相关论文
上一篇
:
基于VB和Access的电信人事管理系..
下一篇
:
网络多媒体资源管理信息系统的开发
推荐论文
本专业最新论文
Tags:
对等
网络
图像
传输
软件
设计
【
返回顶部
】
相关栏目
自动化相关
计算机论文
工程管理论文
法律论文
医学论文
人力资源
电子专业
电气工程
英语论文
行政管理
电子商务
社科文学
教育论文
物流专业
金融专业
财务管理
会计专业
化学化工材料科学
电子通信
环境科学
经济类
机械模具类
报告,总结,申请书
其他专业论文