智能分块图像传输系统及方法

文档序号:8514826阅读:514来源:国知局
智能分块图像传输系统及方法
【技术领域】
[0001]本发明涉及一种智能分块图像传输系统及方法。
【背景技术】
[0002]目前许多远程桌面控制软件大都是基于PC (Personal Computer,个人计算机)与PC之间的控制,也就是说可以从一台PC看到对端PC的界面,并加以操作控制,如VNC(Virtual Network Computing,虚拟网络计算机)。近期流行PC和移动终端之间建立连接而实现桌面共享和文件传输的简单且快速的解决方案,如TeamViewer。其运行原理是在两个远程桌面(被控端和主控端)之间传送对方(PC或者移动设备)的桌面图像,由被控端(PC)截取自己的界面图像,然后通过网络传送到主控端(PC或移动设备),在主控端的软件上显示被控端的界面。一旦被控端的界面发生变化,将重新截取被控端的界面图像传送到主控端。这样在主控端的桌面软件上看到被控端的界面图像,从而能够对被控端桌面进行操作。
[0003]有些软件对这种方式进行了改进,当发现被控端的屏幕图像发生变化时,只截取屏幕中发生变化的像素点组成一个数据包传送到主控端。但是此方法存在明显的缺点是其数据量相当大,在网络宽带不高的情况下,会出现卡死现象;同时在数据传输过程中,当数据包大于一个MTU (Maximum Transmiss1n Unit,最大传输单元)时,在对端不得不将这些数据包重新整包,若有一个包丢失,就要进行重传。在应用层,如果最大超时时间内仍没有收到数据包,则整个数据包将会被重传,原有的被丢弃。这种现象在处理能力有限的移动设备上表现得更加明显。

【发明内容】

[0004]鉴于以上内容,有必要提供智能分块图像传输系统,实现数据包单包发送,同时提高数据包的传送成功率。
[0005]此外,还有必要提供一种智能分块图像传输方法。
[0006]一种智能分块图像传输系统,该系统包括:接收信息模块,用于在被控端与主控端之间建立连接后,接收从被控端的第一屏幕中所截取的整个屏幕像素点数据;保存模块,用于保存第一屏幕的像素点数据于存储设备中;处理模块,用于将所述第一屏幕分块成各个数据包后通过网络传送到主控端,并将所述各个数据包组合称为第一组数据包;所述的接收信息模块,还用于当被控端屏幕的像素点数据发生变化时,再次接收从被控端的第二屏幕中所截取的整个屏幕像素点数据,并保存于存储设备中;比对模块,用于将第二屏幕的像素点数据与所述第一屏幕的像素点数据进行比较,并将所述第二屏幕的像素点数据智能分块成各个数据包后通过网络传送给主控端,将所述各个数据包组合称为第二组数据包,所述主控端根据所述第二组数据包对所述第一组数据包进行更新,再将更新后的第一组数据包进行比例缩放后显示到主控端的屏幕中。
[0007]—种智能分块图像传输的方法,该方法包括如下步骤:
[0008]接收信息步骤一,在被控端与主控端之间建立连接后,接收从被控端的第一屏幕中所截取的整个屏幕像素点数据;
[0009]保存步骤,保存第一屏幕的像素点数据于存储设备中;
[0010]处理步骤一,将所述第一屏幕分块成各个数据包后通过网络传送到主控端,并将所述各个数据包组合称为第一组数据包;
[0011]接收信息步骤二,当被控端的像素点数据发生变化时,再次接收从被控端的第二屏幕中所截取的整个屏幕像素点数据,并保存于存储设备中;
[0012]比对步骤,将第二屏幕的像素点数据与所述第一屏幕的像素点数据进行比较,并将所述第二屏幕的像素点数据智能分块成各个数据包后通过网络传送给主控端,将所述各个数据包组合称为第二组数据包所述主控端根据所述第二组数据包对所述第一组数据包进行更新,再将更新后的第一组数据包进行比例缩放后显示到主控端的屏幕中;
[0013]处理步骤二,将所述第二屏幕的像素点数据记为第一屏幕像素点数据;
[0014]返回保存步骤,直到所述被控端与主控端之间的连接断开。
[0015]相较于现有技术,所述的智能分块图像传输系统及方法,通过智能分块实现数据包单包发送,减少了数据组包,减轻终端负担,同时大大提高了数据包的传送成功率。
【附图说明】
[0016]图1是本发明智能分块图像传输系统较佳实施例的运行环境图。
[0017]图2是本发明智能分块图像传输系统较佳实施例的功能模块图。
[0018]图3是本发明智能分块图像传输的方法较佳实施例的流程图。
[0019]图4是图3中步骤S05的细化流程图。
[0020]图5是本发明智能分块图像传输方法中划分一个数据包的模拟示意图。
[0021]主要元件符号说明
[0022]被控端I
[0023]网络2
[0024]主控端3
[0025]智能分块图像传输系统 10
[0026]接收信息模块101
[0027]保存模块102
[0028]处理模块103
[0029]比对模块104
[0030]判断模块105
[0031]存储设备11
[0032]处理器12
[0033]如下【具体实施方式】将结合上述附图进一步说明本发明。
【具体实施方式】
[0034]参阅图1所示,是本发明智能分块图像传输系统较佳实施例的运行环境图,所述的智能分块图像传输系统10安装并运行于被控端I中。所述的被控端I与主控端3通过网络2相连,所述的智能分块图像传输系统10将被控端I的桌面(未显示)屏幕内容传送给主控端3。该被控端I还包括,但不仅限于,存储设备11及处理器12。所述的被控端I和主控端3可以是电脑、手机、PAD (Personal Digital Assistant,个人数字助理)等。所述的网络2可以是有线网络和无线网络(如W1-Fi)。
[0035]参阅图2所示,是本发明智能分块图像传输系统较佳实施例的功能模块图。所述的智能分块图像传输系统10包括接收信息模块101、保存模块102、处理模块103、比对模块104及判断模块105。本发明所称的功能模块是指一种能够被被控端I的处理器12所执行并且能够完成固定功能的一系列程序指令段,其存储在被控端I的存储设备11中。因此本发明以下对软件都用模块加以描述。关于各功能模块101-105将于图3的流程图中作详细描述。
[0036]参阅图3所示,是本发明智能分块图像传输方法较佳实施例的流程图。根据不同需求,该流程图中步骤的顺序可以改变,某些步骤可以省略或合并。
[0037]步骤SOl,接收信息模块101在被控端I与主控端3之间建立连接后,接收从被控端I的当前屏幕(记为第一屏幕)中所截取的整个屏幕像素点数据信息。
[0038]步骤S02,保存模块102保存第一屏幕的像素点数据于存储设备11中,便于下一次的比较计算。
[0039]步骤S03,处理模块103将所述第一屏幕分块成各个数据包后通过网络2传送到主控端3,并将所述各个数据包组合称为第一组数据包。
[0040]在本实施例中,我们设定所述第一屏幕像素点数为MXN,一个MTU (以字节为单位)数据包最大能存储Dmax个字节。每个像素点占用4个字节,则一个MTU数据包能传送Dmax/4个像素点。所述的MTU数据包是指网络上传送的最大数据包,如果IP层有一个IP包要传,其数据长度比链路层上的MTU值大,则需要将此IP包进行分块处理,并且被分块的每个数据包都要等于或小于这个MTU值,一般是最后一个数据包小于这个值。例如,所述第一屏幕内像素点数据的所有字节数大于MTU值时,需将所述第一屏幕分块成各个数据包,并且所述各个数据包中字节数小于或等于MTU值,再通过网络2传送所述数据包。
[0041]步骤S04,当被控端I中当前屏幕发生变化时,接收信息模块101再次接收从被控端I发生变化的屏幕(记为第二屏幕)中所截取的整个屏幕像素点数据,并通过保存模块102将第二屏幕像素点数据保存于存储设备11中。
[0042]步骤S05,比对模块104将所述第二屏幕内像素点数据与所述第一屏幕内像素点数据进行比较,并将所述第二屏幕中有变化的区域智能分块成各个数据包后通过网络2传送给主控端3,将所述各个数据包组合称为第二组数据包。所述主控端3根据所述第二组数据包对所述第一组数据包进行更新,再将更新后的第一组数据包进行比例缩放后显示到主控端3屏幕中。所述更新是指各个数据包中的数据在屏幕中都有对应的位置点,根据搜索第二组数据包中各个数据包的起始位在屏幕中的位置点来对应更新整个数据包。有关步骤S05中将第二屏幕中有变化的区域智能分块成各个数据包的详细步骤在图4中做详细描述。
[0043]步骤S06,处理模块103将所述第二屏幕的像素点数据记为第一屏幕像素点数据。
[0044]步骤S07,判断模块105判断被控端I与主控端3之间是否断开连接。当被控端I与主控端3之间断开连接时,结束流程;当被控端I与主控端3之间的连接没有断开时,流程返回步骤S03。
[0045]参阅图4所示,是图3中步骤S05的细化流程图。
[0046]步骤S051,初始化k=0,i=0 ;k的取值从O到R,i的取值从O到Dmax/4。在本实施例中,R指所述第一屏幕或者所述第二屏幕的像素点总数,例如上文中的MXN ;Dmax/4是指一个MTU数据包所能传送的最多像素点数。在这里需说明的是,所述第一屏幕与所述第二屏幕的像
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1