基于实时的网络的远程图像传输技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
预测编码 序列量化 有 记 忆 量 化 分组量化 变换编码
其他方法
直接映射
序贯量化等
矢量量化、神经网络、方块结尾等 正交变换:KLT\DCT\DFT\WHT等 非正交变换 其他函数变换等
当前方法---Jpeg压缩算法介绍
Jpeg压缩算法介绍
基于Huffman编码压缩
哈夫曼编码基于不同符号的概率分布,对出现次数较多的符号赋予较短的代码, 出现次数较少的符号赋予较长的代码。这里,以一个例子说明如何赋予各个符号 哈夫曼码值,即如何生成哈夫曼表。
1. 数据获取 2. 数据分析和压缩
3. 通过网络传输
通过TCP连接来传输
图像块的截取运算(Robot类)
网络传输 (ServerSocket类和Socket类)
接收一 个一个 送到的 图像块, 并将其 组装到 待显示 缓存,最 后显示 到屏幕
IBM 兼容机
截取到 的图像 块一个 一个发 送到网 络输出 流中
图像的压缩
• 从信号系统的角度理解,数据的压缩就是对原来 信号进行某种变换。借助这种变换,信号的表达 更经济,存储传输更为方便。从信息论角度理解, 信号本身的具体表达形式不过是其内在携带信息 的外在表象,一定的信息可以用各种形式加以体 现,每种表达形式的表达效率并不相同,存在着 信息冗余。数据压缩的目的就是寻找在一定约束 条件下最为高效的信息表达方式。从压缩技术的 角度理解,数据压缩一般分为:建模、去相关、 量化、编码四道工序。 • 由此发展出数据压缩的两类基本方法:无损压缩 和有损压缩。
下一版想实现的技术
• • • • • • •
将桌面去掉 传输无损压缩的图像 仅传输图像差值 或 根据带宽智能选择 传输有损压缩图像 到服务端作补偿运算
下一版想实现的技术
• • • • •
完善界面控制 完善支持语音的采样和压缩传输 添加文件传输功能 支持嵌入式系统 完全绿色化
图像块的差运算
图像的压缩
图像的压缩
• 无损压缩是将相同的或相似的数据或数据特 征归类,使用较少的数据量描述原始数据, 达到减少数据量的目的。无损压缩又称信息 保持编码,或叫做熵保持编码。图像的无损 • 有损压缩是有利用人眼的视觉特性有针对 压缩通常分为两步,即去相关和编码。去相 性地简化不重要的数据,以减少总的数据 关就是要去除图像冗余,降低信源熵。 量。有损算法有很多种,比较常见的主要 是预测编码、变换编码等。 • 预测编码法中最重要的是线性预测法,通 常也成为“差值脉冲编码调制法” DPCM.
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 needed. The primary purpose of Robot is to facilitate automated testing of Java platform implementations.
套接字 连接
网络
套接字 连接
IBM 兼容机
ServerSocket sc=new ServerSocket(58787); Socket socket=sc.accept(); OutputStream out=socket.getOutputStream(); inputStream in=socket.getInputStream(); Socket s1=new Socket(host,port); OutputSteam out=s1.getOutputStream();
数据流
数据压缩
将显存的数据直接抓 过来,再进行二次组织, Robot类完成
internet网络
发送 和 接收
解压缩
数语音 据流
播放语音
系统 接口
将鼠标和 键盘事件 传递给系 统
源自文库
发送 和 接收
接收事件 对象
怎样在有限的 带宽条件下,传 打包为对象 输我们得到的 图像数据,难点!
系统 接口
监听鼠 标和键 盘事件
远程控制技术的应用:
1.远程办公 2.远程技术支持 3.远程交流 4.远程维护和管理
这种远程的办公方式不仅大大缓 通常,远距离的技术支持必须依赖技术 解了城市交通状况,减少了环境污 人员和用户之间的电话交流来进行,这 染,还免去了人们上下班路上奔波 种交流既耗时又容易出错有了远程控制 的辛劳,更可以提高企业员工的工 利用远程技术,商业公司可以实现和 技术,技术人员就可以远程控制用户的 作效率和工作兴趣。 用户的远程交流,采用交互式的教学 电脑,就像直接操作本地电脑一样,只 模式,通过实际操作来培训用户,使 需要用户的简单帮助就可以得到该机器 用户从技术支持专业人员那里学习示 存在的问题的第一手材料,很快就可以 例知识变得十分容易。而教师和学生 找到问题的所在,并加以解决。 之间也可以利用这种远程控制技术实 现教学问题的交流,学生可以不用见 到老师,就得到老师手把手的辅导和 讲授。学生还可以直接在电脑中进行 网络管理员或者普通用户可以通过远 习题的演算和求解,在此过程中,教 程控制技术为远端的电脑安装和配置 师能够轻松看到学生的解题思路和步 软件、下载并安装软件修补程序、配 骤,并加以实时的指导。 置应用程序和进行系统软件设置。
远程控制软件的原理
通过远程控制软件,我们可以进行很多方面的远程 控制,包括获取目标电脑屏幕图像、窗口及进程列 表;记录并提取远端键盘事件(击键序列,即监视 远端键盘输入的内容);可以打开、关闭目标电脑 的任意目录并实现资源共享;提取拨号网络及普通 程序的密码;激活、中止远端程序进程;管理远端 电脑的文件和文件夹;关闭或者重新启动远端电脑 中的操作系统;修改Windows注册表;通过远端 电脑上、下载文件和捕获音频、视频信号等。
VNC可以是无控制端的远程控制软件,我们可以使用浏览 器结合JAVA插件对远程计算机进行控制,所以直接在被控 机上安装VNC即可完成被控端的操作。
vnc 演示
Ajax VNC 演示
自编的远程救助系统演示
工作原理图
上副图 上副图
图像数据采集
本副图 图象差
数据压缩
解压缩
本副图 图象和
显示图像
语音 数据 采集
BufferedImage createScreenCapture(Rectangle screenRect)
Creates an image containing pixels read from the screen.
用到的类---Javax.ImageIO类
A class containing static convenience methods for locating ImageReaders and ImageWriters, and performing simple encoding and decoding.
目前支持GIF,PNG,JPG格式
用到的类--- AudioFormat类
• An instance of the AudioFileFormat class describes an audio file, including the file type, the file's length in bytes, the length in sample frames of the audio data contained in the file, and the format of the audio data.
假设将对由1,2,3,4,5,6,7,共7个字符组成的原始信息进行哈夫曼编码, 首先应对信息中各个数字出现的次数进行统计,得出各个数字的出现的 相对概率。假设各个数据出现的次数如表2-1所示。 Table 2-1 Statistic distribution of the 7 numbers 1 数字 出现的次数 相对概率 10 0.1 10 0.1 10 0.1 20 0.2 20 0.2 25 0.250.0 5 5 2 3 4 5 6 7
• 图像数据的压缩基于两点: • (1)像信息存在着很大的冗余度,数据之 间存在着相关性,如相邻像素之间色彩的 相关性等。 • (2)人眼是图像信息的接收端。因此,可 利用人的视觉对于边缘急剧变化不敏感 (视觉掩盖效应),以及人眼对图像的亮 度信息敏感、对颜色分辨率弱的特点实现 高压缩比,而解压缩后的图像信号仍有着 满意的主观质量。
常用的图像压缩算法
霍夫曼编码、游程编码、二进制信源编码等 冗余度压缩 (熵编码) 统计编码 算术编码 基于字典的编码:LZW编码等
其他编码
特征抽取
完全可逆的小波分解+统计编码等
子带、小波、分形、模型基等 分析/综合编码 其他
数 据 压 缩 熵压缩 量化
无记忆量化
均匀量化、Max量化、压扩量化等 增量调制、线性预测、非线性预测、 自适应预测、运动补偿预测等
远程控制软件介绍
• 当前比较流行的商业化的远程控制软件大 概有: • Pcanyware • Netop • Radmin • vnc • 各种虚拟教室软件
Radmin演示
VNC 介绍
• VNC(Virtual Network Computing,虚拟网络计算)最早是一套由英国剑桥大学AT&T实 验室在2002年开发的轻量型的远程控制计算机软件,其采用了 GPL 授权条款,任何人都可 免费取得该软件。VNC软件主要由两个部分组成:VNC server及VNC viewer。用户需先 将VNC server安装在被控端的计算机上后,才能在主控端执行 VNC viewer 控制被控端。 VNC server 与 VNC viewer 支持多种操作系统,如 windows,Linux,MacOS 及 Unix 系列(Unix,Solaris等),因此可将 VNC server 及 VNC viewer 分别安装在不同的操作 系统中进行控制。RealVNC 的优越性还在于如果操作系统的主控端计算机没有安装 VNC viewer,也可以通过一般的网络浏览器(如 IE 等)来控制被控端(需要 Java 虚拟机的支 持)。 整个 VNC 一般运行的工作流程如下: (1) VNC 客户端通过浏览器或 VNC Viewer 连接至 VNC Server。 (2) VNC Server 传送一对话窗口至客户端,要求输入连接密码(可能为空),以及存取 的 VNC Server 显示装置。 (3) 在客户端输入连接密码后,VNC Server 验证客户端是否具有存取权限。 (4) 若是客户端通过 VNC Server 的验证,客户端即要求 VNC Server 显示桌面环境。 (5) 被控端将画面显示控制权交由 VNC Server 负责。 (6) VNC Server 将把被控端的桌面环境利用 VNC 通信协议送至客户端,并且允许客户 端控制 VNC Server 的桌面环境及输入装置。
研究生论坛----第一讲
基于网络的远程图像传输技术和 远程控制技术—java实现
Author:马俊 2007年11月16日
远程控制技术介绍
电脑中的远程控制技术,始于DOS时代,只不过当时 由于技术上没有什么大的变化,网络不发达,市场没 有更高的要求,所以远程控制技术没有引起更多人的 注意。但是,随着网络的高度发展,电脑的管理及技 术支持的需要,远程操作及控制技术越来越引起人们 的关注。远程控制一般支持下面的这些网络方式: LAN、WAN、拨号方式、互联网方式。传统的远程 控制软件一般使用NETBEUI、NETBIOS、IPX/SPX、 TCP/IP等协议来实现远程控制,不过,随着网络技 术的发展,目前很多远程控制软件提供通过Web页 面以Java技术来控制远程电脑,这样可以实现不同 操作系统下的远程控制.
远程控制软件的原理
远程控制软件一般分两个部分:一部分是客户端程序 Client,另一部分是服务器端程序Server,在使用前 需要将客户端程序安装到主控端电脑上,将服务器端 程序安装到被控端电脑上。它的控制的过程一般是先 在主控端电脑上执行客户端程序,像一个普通的客户 一样向被控端电脑中的服务器端程序发出信号,建立 一个特殊的远程服务,然后通过这个远程服务,使用 各种远程控制功能发送远程控制命令,控制被控端电 脑中的各种应用程序运行,我们称这种远程控制方式 为基于远程服务的远程控制.