基于实时网络远程图像传输技术_第1页
基于实时网络远程图像传输技术_第2页
基于实时网络远程图像传输技术_第3页
基于实时网络远程图像传输技术_第4页
基于实时网络远程图像传输技术_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、基于网络的远程图像传输技术和远程控制技术java实现Author:马俊2007年11月16日研究生论坛研究生论坛-第一讲第一讲远程控制技术介绍远程控制技术介绍 电脑中的远程控制技术,始于电脑中的远程控制技术,始于DOS时代,只不过当时时代,只不过当时由于技术上没有什么大的变化,网络不发达,市场没由于技术上没有什么大的变化,网络不发达,市场没有更高的要求,所以远程控制技术没有引起更多人的有更高的要求,所以远程控制技术没有引起更多人的注意。但是,随着网络的高度发展,电脑的管理及技注意。但是,随着网络的高度发展,电脑的管理及技术支持的需要,远程操作及控制技术越来越引起人们术支持的需要,远程操作及控制

2、技术越来越引起人们的关注。远程控制一般支持下面的这些网络方式:的关注。远程控制一般支持下面的这些网络方式:LAN、WAN、拨号方式、互联网方式。传统的远程、拨号方式、互联网方式。传统的远程控制软件一般使用控制软件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP/IP等协议来实现远程控制,不过,随着网络技等协议来实现远程控制,不过,随着网络技术的发展,目前很多远程控制软件提供通过术的发展,目前很多远程控制软件提供通过Web页页面以面以Java技术来控制远程电脑,这样可以实现不同技术来控制远程电脑,这样可以实现不同操作系统下的远程控制操作系统下的远程控制.远程控制软件的原理远程控制软

3、件的原理 远程控制软件一般分两个部分:一部分是客户端程序远程控制软件一般分两个部分:一部分是客户端程序Client,另一部分是服务器端程序,另一部分是服务器端程序Server,在使用前,在使用前需要将客户端程序安装到主控端电脑上,将服务器端需要将客户端程序安装到主控端电脑上,将服务器端程序安装到被控端电脑上。它的控制的过程一般是先程序安装到被控端电脑上。它的控制的过程一般是先在主控端电脑上执行客户端程序,像一个普通的客户在主控端电脑上执行客户端程序,像一个普通的客户一样向被控端电脑中的服务器端程序发出信号,建立一样向被控端电脑中的服务器端程序发出信号,建立一个特殊的远程服务,然后通过这个远程服

4、务,使用一个特殊的远程服务,然后通过这个远程服务,使用各种远程控制功能发送远程控制命令,控制被控端电各种远程控制功能发送远程控制命令,控制被控端电脑中的各种应用程序运行,我们称这种远程控制方式脑中的各种应用程序运行,我们称这种远程控制方式为基于远程服务的远程控制为基于远程服务的远程控制.远程控制软件的原理远程控制软件的原理 通过远程控制软件,我们可以进行很多方面的远程通过远程控制软件,我们可以进行很多方面的远程控制,包括获取目标电脑屏幕图像、窗口及进程列控制,包括获取目标电脑屏幕图像、窗口及进程列表;记录并提取远端键盘事件(击键序列,即监视表;记录并提取远端键盘事件(击键序列,即监视远端键盘输

5、入的内容);可以打开、关闭目标电脑远端键盘输入的内容);可以打开、关闭目标电脑的任意目录并实现资源共享;提取拨号网络及普通的任意目录并实现资源共享;提取拨号网络及普通程序的密码;激活、中止远端程序进程;管理远端程序的密码;激活、中止远端程序进程;管理远端电脑的文件和文件夹;关闭或者重新启动远端电脑电脑的文件和文件夹;关闭或者重新启动远端电脑中的操作系统;修改中的操作系统;修改Windows注册表;通过远端注册表;通过远端电脑上、下载文件和捕获音频、视频信号等。电脑上、下载文件和捕获音频、视频信号等。 远程控制技术的应用:远程控制技术的应用:1.远程办公远程办公2.远程技术支持远程技术支持3.远

6、程交流远程交流4.远程维护和管理远程维护和管理这种远程的办公方式不仅大大缓这种远程的办公方式不仅大大缓解了城市交通状况,减少了环境污解了城市交通状况,减少了环境污染,还免去了人们上下班路上奔波染,还免去了人们上下班路上奔波的辛劳,更可以提高企业员工的工的辛劳,更可以提高企业员工的工作效率和工作兴趣。作效率和工作兴趣。通常,远距离的技术支持必须依赖技术通常,远距离的技术支持必须依赖技术人员和用户之间的电话交流来进行,这人员和用户之间的电话交流来进行,这种交流既耗时又容易出错有了远程控制种交流既耗时又容易出错有了远程控制技术,技术人员就可以远程控制用户的技术,技术人员就可以远程控制用户的电脑,就像

7、直接操作本地电脑一样,只电脑,就像直接操作本地电脑一样,只需要用户的简单帮助就可以得到该机器需要用户的简单帮助就可以得到该机器存在的问题的第一手材料,很快就可以存在的问题的第一手材料,很快就可以找到问题的所在,并加以解决。找到问题的所在,并加以解决。利用远程技术,商业公司可以实现和利用远程技术,商业公司可以实现和用户的远程交流,采用交互式的教学用户的远程交流,采用交互式的教学模式,通过实际操作来培训用户,使模式,通过实际操作来培训用户,使用户从技术支持专业人员那里学习示用户从技术支持专业人员那里学习示例知识变得十分容易。而教师和学生例知识变得十分容易。而教师和学生之间也可以利用这种远程控制技术

8、实之间也可以利用这种远程控制技术实现教学问题的交流,学生可以不用见现教学问题的交流,学生可以不用见到老师,就得到老师手把手的辅导和到老师,就得到老师手把手的辅导和讲授。学生还可以直接在电脑中进行讲授。学生还可以直接在电脑中进行习题的演算和求解,在此过程中,教习题的演算和求解,在此过程中,教师能够轻松看到学生的解题思路和步师能够轻松看到学生的解题思路和步骤,并加以实时的指导。骤,并加以实时的指导。网络管理员或者普通用户可以通过远网络管理员或者普通用户可以通过远程控制技术为远端的电脑安装和配置程控制技术为远端的电脑安装和配置软件、下载并安装软件修补程序、配软件、下载并安装软件修补程序、配置应用程序

9、和进行系统软件设置。置应用程序和进行系统软件设置。远程控制软件介绍远程控制软件介绍 当前比较流行的商业化的远程控制软件大概有: Pcanyware Netop Radmin vnc 各种虚拟教室软件Radmin演示演示VNC 介绍介绍VNC(Virtual Network Computing,虚拟网络计算)最早是一套由英国剑桥大学,虚拟网络计算)最早是一套由英国剑桥大学AT&T实实验室在验室在2002年开发的轻量型的远程控制计算机软件,其采用了年开发的轻量型的远程控制计算机软件,其采用了 GPL 授权条款,任何人都可授权条款,任何人都可免费取得该软件。免费取得该软件。VNC软件主要由两

10、个部分组成:软件主要由两个部分组成:VNC server及及VNC viewer。用户需先。用户需先将将VNC server安装在被控端的计算机上后,才能在主控端执行安装在被控端的计算机上后,才能在主控端执行 VNC viewer 控制被控端。控制被控端。VNC server 与与 VNC viewer 支持多种操作系统,如支持多种操作系统,如 windows,Linux,MacOS 及及 Unix 系列(系列(Unix,Solaris等),因此可将等),因此可将 VNC server 及及 VNC viewer 分别安装在不同的操作分别安装在不同的操作系统中进行控制。系统中进行控制。Real

11、VNC 的优越性还在于如果操作系统的主控端计算机没有安装的优越性还在于如果操作系统的主控端计算机没有安装 VNC viewer,也可以通过一般的网络浏览器(如,也可以通过一般的网络浏览器(如 IE 等)来控制被控端(需要等)来控制被控端(需要 Java 虚拟机的支虚拟机的支持)。持)。整个整个 VNC 一般运行的工作流程如下:一般运行的工作流程如下:(1) VNC 客户端通过浏览器或客户端通过浏览器或 VNC Viewer 连接至连接至 VNC Server。(2) VNC Server 传送一对话窗口至客户端,要求输入连接密码(可能为空),以及存取传送一对话窗口至客户端,要求输入连接密码(可

12、能为空),以及存取的的 VNC Server 显示装置。显示装置。(3) 在客户端输入连接密码后,在客户端输入连接密码后,VNC Server 验证客户端是否具有存取权限。验证客户端是否具有存取权限。(4) 若是客户端通过若是客户端通过 VNC Server 的验证,客户端即要求的验证,客户端即要求 VNC Server 显示桌面环境。显示桌面环境。(5) 被控端将画面显示控制权交由被控端将画面显示控制权交由 VNC Server 负责。负责。(6) VNC Server 将把被控端的桌面环境利用将把被控端的桌面环境利用 VNC 通信协议送至客户端,并且允许客户通信协议送至客户端,并且允许客户

13、端控制端控制 VNC Server 的桌面环境及输入装置。的桌面环境及输入装置。VNC可以是无控制端的远程控制软件,我们可以使用浏览可以是无控制端的远程控制软件,我们可以使用浏览器结合器结合JAVA插件对远程计算机进行控制,所以直接在被控插件对远程计算机进行控制,所以直接在被控机上安装机上安装VNC即可完成被控端的操作。即可完成被控端的操作。vnc 演示演示Ajax VNC 演示演示自编的远程救助系统演示自编的远程救助系统演示工作原理图工作原理图数据获取数据获取 数据分析和压缩数据分析和压缩通过网络传输通过网络传输将显存的数据直接抓将显存的数据直接抓过来过来,再进行二次组织再进行二次组织,Ro

14、bot类完成类完成通过通过TCP连接来传输连接来传输怎样在有限的怎样在有限的带宽条件下带宽条件下,传传输我们得到的输我们得到的图像数据图像数据,难点难点!图像块的截取运算图像块的截取运算(Robot类类)网络传输网络传输 (ServerSocket类和类和Socket类类)ServerSocket sc=new ServerSocket(58787);Socket socket=sc.accept();OutputStream out=socket.getOutputStream();inputStream in=socket.getInputStream();Socket s1=new So

15、cket(host,port);OutputSteam out=s1.getOutputStream();InputStream in=s1.getInputStream();用到的类用到的类-Java.awt.Robot类类 This class is used to generate native system input events for the purposes of test automation, self-running demos, and other applications where control of the mouse and keyboard is neede

16、d. The primary purpose of Robot is to facilitate automated testing of Java platform implementations. BufferedImageBufferedImage createScreenCapturecreateScreenCapture( (RectangleRectangle screenRect)screenRect) Creates an image containing pixels read from the screen.用到的类用到的类-Javax.ImageIO类类目前支持目前支持G

17、IF,PNG,JPG格式格式A class containing static convenience methods for locating ImageReaders and ImageWriters, and performing simple encoding and decoding. 用到的类用到的类- AudioFormat类类 An instance of the AudioFileFormat class describes an audio file, including the file type, the files length in bytes, the lengt

18、h in sample frames of the audio data contained in the file, and the format of the audio data. 下一版想实现的技术下一版想实现的技术 将桌面去掉 传输无损压缩的图像 仅传输图像差值 或 根据带宽智能选择 传输有损压缩图像 到服务端作补偿运算下一版想实现的技术下一版想实现的技术 完善界面控制 完善支持语音的采样和压缩传输 添加文件传输功能 支持嵌入式系统 完全绿色化图像块的差运算图像块的差运算图像的压缩图像的压缩 图像数据的压缩基于两点: (1)像信息存在着很大的冗余度,数据之间存在着相关性,如相邻像素之

19、间色彩的相关性等。 (2)人眼是图像信息的接收端。因此,可利用人的视觉对于边缘急剧变化不敏感(视觉掩盖效应),以及人眼对图像的亮度信息敏感、对颜色分辨率弱的特点实现高压缩比,而解压缩后的图像信号仍有着满意的主观质量。 图像的压缩图像的压缩 从信号系统的角度理解,数据的压缩就是对原来从信号系统的角度理解,数据的压缩就是对原来信号进行某种变换。借助这种变换,信号的表达信号进行某种变换。借助这种变换,信号的表达更经济,存储传输更为方便。从信息论角度理解,更经济,存储传输更为方便。从信息论角度理解,信号本身的具体表达形式不过是其内在携带信息信号本身的具体表达形式不过是其内在携带信息的外在表象,一定的信

20、息可以用各种形式加以体的外在表象,一定的信息可以用各种形式加以体现,每种表达形式的表达效率并不相同,存在着现,每种表达形式的表达效率并不相同,存在着信息冗余。数据压缩的目的就是寻找在一定约束信息冗余。数据压缩的目的就是寻找在一定约束条件下最为高效的信息表达方式。从压缩技术的条件下最为高效的信息表达方式。从压缩技术的角度理解,数据压缩一般分为:建模、去相关、角度理解,数据压缩一般分为:建模、去相关、量化、编码四道工序。量化、编码四道工序。 由此发展出数据压缩的两类基本方法:无损压缩由此发展出数据压缩的两类基本方法:无损压缩和有损压缩。和有损压缩。 图像的压缩图像的压缩 无损压缩是将相同的或相似的

21、数据或数据特征归类,使用较少的数据量描述原始数据,达到减少数据量的目的。无损压缩又称信息保持编码,或叫做熵保持编码。图像的无损压缩通常分为两步,即去相关和编码。去相关就是要去除图像冗余,降低信源熵。 有损压缩是有利用人眼的视觉特性有针对性地简化不重要的数据,以减少总的数据量。有损算法有很多种,比较常见的主要是预测编码、变换编码等。 预测编码法中最重要的是线性预测法,通常也成为“差值脉冲编码调制法” DPCM.常用的图像压缩算法常用的图像压缩算法数数据据压压缩缩冗余度压缩冗余度压缩(熵编码)(熵编码)统计编码统计编码霍夫曼编码、游程编码、二进制信源编码等霍夫曼编码、游程编码、二进制信源编码等算术

22、编码算术编码基于字典的编码:基于字典的编码:LZW编码等编码等其他编码其他编码完全可逆的小波分解完全可逆的小波分解+统计编码等统计编码等熵压缩熵压缩特征抽取特征抽取分析分析/综合编码综合编码子带、小波、分形、模型基等子带、小波、分形、模型基等量化量化其他其他无记忆量化无记忆量化均匀量化、均匀量化、Max量化、压扩量化等量化、压扩量化等有有记记忆忆量量化化序列量化序列量化预测编码预测编码增量调制、线性预测、非线性预测、增量调制、线性预测、非线性预测、自适应预测、运动补偿预测等自适应预测、运动补偿预测等其他方法其他方法序贯量化等序贯量化等分组量化分组量化直接映射直接映射矢量量化、神经网络、方块结尾

23、等矢量量化、神经网络、方块结尾等变换编码变换编码正交变换:正交变换:KLTDCTDFTWHT等等非正交变换非正交变换其他函数变换等其他函数变换等当前方法当前方法-Jpeg压缩算法介绍压缩算法介绍Jpeg压缩算法介绍压缩算法介绍基于基于Huffman编码压缩编码压缩哈夫曼编码基于不同符号的概率分布,对出现次数较多的符号赋予较短的代码,哈夫曼编码基于不同符号的概率分布,对出现次数较多的符号赋予较短的代码,出现次数较少的符号赋予较长的代码。这里,以一个例子说明如何赋予各个符号出现次数较少的符号赋予较长的代码。这里,以一个例子说明如何赋予各个符号哈夫曼码值,即如何生成哈夫曼表。哈夫曼码值,即如何生成哈

24、夫曼表。 假设将对由假设将对由1,2,3,4,5,6,7,共,共7个字符组成的原始信息进行哈夫曼编码,个字符组成的原始信息进行哈夫曼编码,首先应对信息中各个数字出现的次数进行统计,得出各个数字的出现的首先应对信息中各个数字出现的次数进行统计,得出各个数字的出现的相对概率。假设各个数据出现的次数如表相对概率。假设各个数据出现的次数如表2-1所示。所示。 数字数字1234567出现的次数出现的次数1010102020255相对概率相对概率0.10.10.10.20.20.250.05Table 2-1 Statistic distribution of the 7 numbers基于基于Huffm

25、an编码压缩编码压缩码值码值1234567码字码字1000100110100001111011由图由图2-1得到的码字和码值的对应关系得到的码字和码值的对应关系Lz77压缩算法压缩算法 1、从当前压缩位置开始,考察未编码的数据,并试图在滑动窗口中找出最长的匹配字符串,如果找到,则进行步骤 2,否则进行步骤 3。 2、输出三元符号组 ( off, len, c )。其中 off 为窗口中匹配字符串相对窗口边界的偏移,len 为可匹配的长度,c 为下一个字符。然后将窗口向后滑动 len + 1个字符,继续步骤 1。 3、输出三元符号组 ( 0, 0, c )。其中 c 为下一个字符。然后将窗口向后

26、滑动len + 1 个字符,继续步骤 1。 字典模型字典模型 说起来,字典模型的思路相当简单,我们日常生活中就经常在使用这种压缩思想。 我们常常跟人说“奥运会”、“IBM”、“TCP”之类的词汇,说者和听者都明白它 们指的是“奥林匹克运动会”、“国际商业机器公司”和“传输控制协议”,这实际就是信息的压缩。我们之所以可以顺利使用这种压缩方式而不产生语义上的误解 ,是因为在说者和听者的心中都有一个事先定义好的缩略语字典,我们在对信息进行压缩(说)和解压缩(听)的过程中都对字典进行了查询操作。字典压缩模型正是基于这一思路设计实现的。 有理数压缩模型有理数压缩模型:双方要约定好传输和解释的字典模型双方

27、要约定好传输和解释的字典模型!Gzip算法工作原理算法工作原理 gzip 对于要压缩的文件,首先使用lz77算法进行压缩,对得到的结果再使用huffman编码的方法进行压缩。 java.util.zip 类类 GZIPOutputStreamjava.lang.Object java.io.OutputStream java.io.FilterOutputStream java.util.zip.DeflaterOutputStream java.util.zip.GZIPOutputStreamjava.util.zip.GZIPOutputStream 条目条目 类型类型描述描述Check

28、sum接口接口被类被类Adler32和和CRC32实现的接口实现的接口Adler32类类使用使用Alder32算法来计算算法来计算Checksum数目数目CheckedInputStream类类一个输入流,保存着被读取数据的一个输入流,保存着被读取数据的ChecksumCheckedOutputStream类类一个输出流,保存着被读取数据的一个输出流,保存着被读取数据的ChecksumCRC32类类使用使用CRC32算法来计算算法来计算Checksum数目数目Deflater类类使用使用ZLIB压缩类,支持通常的压缩方式压缩类,支持通常的压缩方式DeflaterOutputStream类类一个

29、输出过滤流,用来压缩一个输出过滤流,用来压缩Deflater格式数据格式数据GZIPInputStream类类一个输入过滤流,读取一个输入过滤流,读取GZIP格式压缩数据格式压缩数据GZIPOutputStream类类一个输出过滤流,读取一个输出过滤流,读取GZIP格式压缩数据格式压缩数据Inflater类类使用使用ZLIB压缩类,支持通常的解压方式压缩类,支持通常的解压方式InlfaterInputStream类类一个输入过滤流,用来解压一个输入过滤流,用来解压Inlfater格式的压缩数据格式的压缩数据ZipEntry类类存储存储ZIP条目条目ZipFile类类从从ZIP文件中读取文件中读

30、取ZIP条目条目ZipInputStream类类一个输入过滤流,用来读取一个输入过滤流,用来读取ZIP格式文件中的文件格式文件中的文件ZipOutputStream类类一个输出过滤流,用来向一个输出过滤流,用来向ZIP格式文件口写入文件格式文件口写入文件DataFormatException异常类异常类抛出一个数据格式错误抛出一个数据格式错误ZipException异常类异常类抛出一个抛出一个ZIP文件文件Java.util包中的压缩类包中的压缩类无损压缩无损压缩程序演示程序演示7zip压缩算法介绍压缩算法介绍7z 是一种新的压缩格式,它拥有目前最高的压缩比是一种新的压缩格式,它拥有目前最高的

31、压缩比!7z 格式的主要特征:格式的主要特征: 公开的结构编辑功能公开的结构编辑功能 最高的压缩比最高的压缩比 强大的强大的 AES-256 加密加密 可更改和配置压缩的算法可更改和配置压缩的算法 最高支持最高支持 16000000000 GB 的文件压缩的文件压缩 以以 Unicode 为标准的文件名为标准的文件名 支持固实压缩支持固实压缩 支持档案的文件头压缩支持档案的文件头压缩 7z 已公开了结构编辑功能,所以它可以支持任何一种新的压缩算已公开了结构编辑功能,所以它可以支持任何一种新的压缩算法。到目前为止,下列压缩算法已被整合到了法。到目前为止,下列压缩算法已被整合到了 7z 中:中:压缩算法压缩算法备注备注LZMALZ77 改良和优化算法后的最新版本改良和优化算法后的最新版本PPMD基于基于 Dmitry Shkarin 之

温馨提示

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

评论

0/150

提交评论