在连网计算环境中共享应用数据的系统和方法

文档序号:6624972阅读:79来源:国知局
专利名称:在连网计算环境中共享应用数据的系统和方法
背景技术
连网计算机的迅速扩大已促进应用共享技术的发展。应用共享技术允许地理上完全不同的用户基本实时地共享图像、文本和数据。这里使用的实时指的是以这样的方式使在两个或更多的连网计算机上运行的计算机驱动的事件同步,使得对于共同位于相应计算机的用户来说,同步事件仿佛同步发生。于是,实时事件能够容忍同步延迟、传输延迟和处理延迟,只要用户感觉不到这些延迟。
例如,应用共享环境可如下所述。医学成像系统,例如计算机断层扫描(CAT)可在医院内的监视器上产生本地显示图像。位于医院之外的专家可能希望在图像被产生时查看所述图像,以便指导操作成像系统的技师。理想地,专家应得到实时图像更新,使得专家的监视器上的图像基本上和技师的显示器上的图像同时出现,从而专家能够有效地指导技师。
即使利用目前的高带宽网络和强大的计算平台,在应用共享环境中共享图像仍然存在问题。由于典型的现代计算机图像由超过一百万的像素组成,出现这样的一个问题。另外,远程计算机上的显示应以足以避免对远程用户来说可感知的屏幕闪烁的速率来更新。
由于连接主计算机和远程计算机的链路并不总是由最快的可能技术组成,因此出现另一问题。例如,与两个远程地点共享图像的主机不得不通过带宽不断变化的链路通信。例如,第一个远程计算机可能与高速千兆位以太网网络连接,而第二个远程用户由住宅电信提供商提供的慢得多的数字用户线路(DSL)连接。
从而需要改进应用共享技术,尤其是改进图像的特殊共享。利用迄今为止阻碍图像数据的共享的网络和计算机,允许应用共享环境实时工作的系统仍然是合乎需要的。

发明内容
根据本发明的系统和方法使得连网应用能够有效地传送图像数据。通过使主计算机只传送图像的相对于通过网络发送给接收计算机的初始或基准图像发生变化的那些部分,实现网络带宽的有效利用通过采用使检测图像内的变化所需的像素比较的数目降至最小的方法,该系统快速并且有效地检测主计算机上图像中的变化。具体地说,系统有效地选择包含与当前图像相关的像素的区域,并逐个像素地将其与保存在存储器中的对应区域进行比较。如果系统确定与保存的像素相关的值不同于与当前显示区域中的对应像素相关的值,那么与当前显示区域相关的所有像素通过网络被发送给接收计算机。系统采用各种方法来简化这些快速并且有效的逐个像素比较。例如,一种方法可选择位于当前正被检查的区域的边界的像素。如果该边界像素的值相对于对应的保存像素发生变化,那么该方法可使包含该像素的区域通过网络被发送,使得使相邻或邻近的区域通过网络被发送。这种方法适合于存在对边界像素的改变从一个区域横越到另一区域的可能性的应用。在其它情况下,该方法可被配置成在区域的外边界开始显示区域内的逐个像素比较,并且每次递增一个像素朝内螺旋前进。在其它情况下,该方法可跳过一个或多个像素,使得不比较相邻的像素和它们的保存的对应像素。采用跳过一个或多个像素的方法进一步提高了系统的操作系统。另外,可根据某一区域包含改变的像素的可能性,指定该区域用于搜索,从而增大在搜索的最早阶段查出改变的区域的机会。可选择其它区域定义和像素搜索策略,以使像素比较的所需数目降至最小。如下所述,本发明的实施例通过使为识别变化像素所需的计算次数最小化,简化了显示图像的快速且有效的逐个像素比较。另外,本发明的实施例大大降低了主计算机的CPU上的计算负载,因为只处理显示区像素的一个子集,例如只处理某一区域内的像素。
根据本发明的一个优选实施例,提供一种与接收计算机共享在主计算机上运行的应用的方法,所述接收计算机在操作上与主计算机在其上运行的网络耦接。主计算机上的显示区由多个像素组成,每个像素具有与之相关的值。显示区被分解成两个或更多的区域,从而产生一个分割的显示区。分割的显示区的每个区域包含构成显示区的像素的一个子集。进行比较,以确定构成显示区的多个像素的子集的元素是否不同于和代表呈现在显示器上的早先图像的保存像素相关的值。如果确定包含在构成显示区的像素的子集之一中的某一像素的值不同于其对应的保存像素的值,那么执行某一动作。可执行的动作的例子是(但不限于)传送包含在显示区的包含值已发生变化的像素的子集内的所有像素。使用上述方法使得能够减少网络带宽的使用,因为只通过网络发送显示图像的其值相对于已传送给接收计算机的图像发生变化的那些部分。
根据本发明的另一方面,提供一种评估包含在一个显示(display)的某一区域内的多个像素的方法。该区域具有与之相关的多个边界,每个边界能够接触或者邻近包含在该显示图像内的另一区域。该方法中使用的显示在连网应用共享环境中工作,使得它能够把显示数据发送给在网络上运行的其它计算机。该方法确定说明包含在该区域内的每个像素的存在和位置的像素群(population)。该方法随后接受用于识别处理顺序(sequence)的标准。当处理包含在显示图像的该区域内的那些像素时,处理顺序能够自适应地跳过可变数目的相邻像素。
根据本发明的另一方面,提供一种从应用共享环境中的主计算机接收图像更新的方法。接收计算机一般从主计算机接收区域布局索引(index)。区域布局索引由接收计算机用于处理从主计算机接收的图像片段。随后,接收计算机接收包含多个区域的基准图像,每个区域包含多个像素。基准数据被呈现在位于接收计算机的显示器上。随后,接收计算机通过网络从主计算机接收一个或多个更新的区域。利用区域布局索引,把更新的区域插入基准数据显示中。更新的区域和基准显示的未更新部分一起被显示在位于接收计算机的显示装置上。
根据本发明的另一方面,提供一种通过网络共享应用的设备。所述设备包括利用网络,把更新的显示区域发送给接收计算机的接口。所述设备还包括保存包括第一组多个或第一组像素的基准显示的存储器。存储器还保存由数目与第一组多个像素相等的第二组多个或第二组像素组成的更新显示。另外,存储器保存区域布局索引,它被用于把基准显示分解成第一组多个区域,以及把更新显示分解成第二组多个区域,同时允许相互比较所述第一组多个和第二组多个区域中的相应区域。所述设备还包括显示基准显示和更新显示的显示装置。另外,所述设备还包括用于在把基准显示保存在存储器中之前,便于在显示装置上显示基准显示的处理器。处理器还使用区域布局索引来分解基准显示,以及分解和显示更新显示。处理器还被用于处理包含在第二组多个区域之一中的一个像素,从而产生一个已处理像素。把已处理像素与位于第一组多个区域之一内的第一组多个像素之一进行比较,所述第一组多个区域之一与包含已处理像素的所述第二组多个区域之一相关联,如果已处理像素不同于所述第一组多个像素之一,那么把该区域发送给接收计算机。
在本发明的另一方面,提供一种共享在操作上与网络耦接的主计算机上运行的应用的方法。显示区被分解成两个或更多的区域,从而产生分割的显示区。随后,分割的显示区被应用于包含多个像素的第一显示,每个像素具有与之相关的值。分割显示区的应用还产生两个或更多的显示区域,每个显示区域包含多个像素的子集。这些显示区域被保存在与主计算机相关的存储器中。随后,更新显示被载入主计算机。更新显示包含和存在于保存在存储器中的显示中的像素数目相同的像素。更新显示的每个像素也具有与之相关的值。分割的显示区被应用于更新显示,从而产生两个或更多的更新显示区域,每个更新显示区域包含其中包括的多个像素的子集。更新显示的区域能够与它们的包含在保存的显示区域中的对应区域相关联。随后选择更新显示区域之一,从而产生选择的区域。处理该选择的区域,确定与包含于其中的像素之一相关的值是否不同于保存在存储器中的对应像素的值。如果这两个比较像素的值不同,那么执行某一动作。
根据如附图中图解说明的系统和方法的优选实施例的下述更详细描述,在连网计算环境中共享应用数据的系统和方法的前述及其它特征和优点将变得明显,其中在不同的视图中,相同的附图标记相同的部分。


图1图解说明根据本发明的实现应用共享的例证系统;图2A-2B图解说明根据本发明的包括多个区域的例证显示区;图3A-3C图解说明根据本发明的一个优选实施例的评估某一区域内的像素的例证方法;图4A-4B图解说明根据本发明的评估某一区域内的像素的例证方法;图5A-5B图解说明根据本发明的一个优选实施例的实现应用共享的例证方法;图6图解说明根据本发明的定义应用共享环境的区域布局的例证方法;图7图解说明根据本发明的和在应用共享环境中使用的接收计算机一起工作的例证方法;图8图解说明根据本发明的适合于供应用共享环境里使用的通用计算设备的例证体系结构;图9图解说明根据本发明的能够保存与应用共享环境相关的信息的例证计算机可读数据结构。
具体实施例方式
这里描述的发明简化通过如图1中所示的通信网络的应用共享。系统100采用机器可执行代码来有效选择供评估的显示区内的最佳区域。当某一区域被选择时,利用用来快速确定显示像素的值是否已相对于保存在存储器中的基准(baseline)区域相关的对应像素发生改变的各种方法之一,检查位于该区域内的一个或多个像素。图1图解说明包括主计算机102,主显示器104,电缆106,网络110,接收计算机112和接收显示器114的例证系统100。
主计算机102充当将通过网络110被发送给接收计算机112的图像的始发设备。主计算机102和接收计算机112,总称为计算机,可由具有处理器并且能够执行机器可读指令的任意设备构成。例如,计算机可由桌上型个人计算机(PC),膝上型计算机,服务器,个人数字助手(PDA),具有web能力的蜂窝电话机等组成。
主显示器104靠近主计算机102呈现本地图像。主显示器104可通过电缆106与主计算机102通信耦接。电缆106可包括用于在主计算机102和主显示器104之间传送电力和/或数据信号的刚性或半刚性电连接器。另外,电缆106可由能够传送机器可读的数据信号的光纤、自由空间光学链路或者射频(RF)链路组成。链路108利用网络110在主计算机102和接收计算机112之间传送数据信号或者传输。链路108可以是硬连线链路,例如同轴电缆,双绞线电缆,光纤等,或者可以是无线链路,例如RF链路,自由空间光学链路等。
网络110可由运行任意类型的网络协议,例如同步光学传输网络(SONET),异步传输模式(ATM),网际协议(IP),帧中继,简单老式电话系统(POTS)等的任意类型的模拟或数字网络。
接收计算机112根据本发明通过网络110接收共享图像数据。接收显示器114向与之位于一地的远程用户呈现接收的图像。
本发明的优选实施例通过只把发生变化的图像数据从主计算机102传送到接收计算机112,有效地利用处理能力和网络带宽。例如,如果包括例如1024×2048像素的初始图像或者基准图像已从主计算机102发送给接收计算机112,那么该图像的更新可能只包含整个像素集的一个子集。例如,对初始显示图像的更新可能只涉及位于该图像的整个1024×2048区的一部分内的110×100邻近像素块。把全部1024×2048像素发送给接收计算机112是低效的,因为较大百分比的传输像素的值未发生改变,即未在主计算机102上被更新。本发明的优选实施例通过比较初始图像中的像素与更新图像中的像素,解决了这个问题。如果像素已发生变化,那么只把这些像素连同靠近其的像素一起发送给接收计算机112。接收计算机112随后产生一个由初始图像中的未变化像素和刚收到的变化像素组成的新的显示图像。下面提供上述技术的细节。系统吞吐量被显著提高,因为较小数目的像素被处理并通过网络110传输。
图2A图解说明和主显示器104一起使用的例证显示区200。在本发明的优选实施例中,主计算机102执行机器可读指令,机器可读指令再把显示区200划分成多个区域202A-202P。在多数实施例中,显示区200将被划分成一定数目的同样大小的区域。例如,显示区200可被分成均具有比方说100像素宽和100像素高的预定面积的16个区域。虽然本例中使用了16个区域,不过本发明并不局限于此。事实上,可以使用任意数目的区域。此外,确定区域的数目可取决于诸如显示的信息的类型,更新的频率,显示区内的像素的数据,网络带宽之类的因素。另外,区域的数目以及要处理的第一区域的选择一般利用系统的操作参数以及待显示的数据的类型来确定。利用自适应方法,例如用于选择解析和处理参数的那些自适应方法便于高的系统吞吐量,因为在该方法中,变化的像素(如果有的话)将在早期被查出。
图2B图解说明显示区201的一个备选实施例,显示区201的某一子集的区域被进一步划分成多个子区域。具体地说,区域202F、G、J和K都被再分成四个相同大小的子区域202F(1-4)、202G(1-4)、202J(1-4)和202K(1-4),每个子区域包含位于相应区域内的像素的四分之一。在只有一部分的显示区201规律地发生变化的应用中,诸如图2B中所示的备选实施例是有用的。通过进一步细分靠近规律变化的像素的区域,和图2A中所示的实施例相比,能够进一步减少从主计算机102传送给接收计算机112的显示数据的数量。
在另一个备选实施例中,显示区201可被划分成大小不断变化的区域202,而不使用子区域。当典型的显示图像可能包含位于显示图像的限定区内的变化像素时,这样的实施例是可取的。在这种情况下,最好在对像素的预期变化的附近具有较小的区域,同时在预期不具有频繁变化的像素的显示区中使用较大的区域。可以看出,区域202的数目和大小不受约束。
图3A图解说明评估构成某一区域,例如区域202A的像素的例证方法。图3A中所示的区域202A的实施例由排成20×20网格的400个像素组成。每个像素可具有唯一的标识符,例如数字或者地理坐标,当进行逐像素比较操作和当更新显示区200时,使用所述标识符。
在如图3A中所示评估像素之前,完整形式的显示区200被保存在计算机可读存储器中。该初始形式的显示区200被称为基准显示图像。在一个优选实施例中,基准显示图像包含构成显示区200的每个像素。在基准显示图像被保存之后,显示区200被更新。更新的显示图像可包含构成显示区200的每个像素的新值,或者它可以只包含构成显示区200的像素的子集的新值。
在一个优选实施例中,位于区域202的转角(outer corner)中的一个像素(称为起始像素302)被选择。由于区域202A位于显示区200的最左上角(图2B),因此可取的是选择还邻近位于另一区域,例如区域202B内的一个或多个像素的转角像素。选择接近另一区域的转角像素可增大遭遇更新像素的可能性。事实上,可采用特定的方法通过利用邻近的像素优化系统性能。当该方法开始时,利用主计算机102比较起始像素302的当前值或者更新值和保存的起始像素302的基准值。如果和基准值相比,起始像素302的当前值已改变,那么在存储器中设置区域改变标志。区域改变标志表示相应区域(这里是区域202A)内的至少一个像素已被更新。在本发明的优选实施例中,每当某一区域内的一个像素已被更新时,构成该区域的所有像素被传送给接收计算机112。
如果起始像素302的当前值和基准值相同,那么随后评估沿着区域202A的外边界的邻近像素304。当评估邻近像素304时,把其当前值与它的保存的基准值进行比较。如果当前值不同于基准值,那么设置区域改变标志。相反,如果邻近像素304的当前值和基准值相同,那么如上所述评估下一个邻近像素。
在图3A中,从上到下评估沿着区域202A的右侧边的所有像素。如果在各个像素的当前值和基准值之间没有检测到任何变化,那么从右到左评估沿着底侧的外边界的像素。如果沿着低侧边没有检测到任何变化的像素,那么从下到上评估沿着左侧边的外边界像素。沿着区域202A的外边界以顺时针方向继续评估过程,直到检测到变化的像素为止。每当检测到变化的像素时,设置区域改变标志,随后从转角像素开始,并沿顺时针方向继续检查相邻的区域。
如果该过程完成围绕区域202A的外边界的顺时针循环,而没有遇到改变的像素,那么利用区域202A内的邻近像素沿顺时针方向开始新的评估循环。图3B图解说明了关于区域202A的完成的第二个评估循环,图3C图解说明关于区域202A的第三个评估循环的完成。
可连同沿着正被处理的区域内的边界评估像素一起,采用利用邻近区域的方法。例如,一种方法可被这样配置,使得沿着202A的边界区域的改变像素的检测使区域202A的像素以及包含在邻近区域内的像素被传送给接收计算机。该方法还可被这样配置,使得沿着区域的边界的改变像素的检测使检查的区域的像素被传送接收计算机112,以及使被检测的区域邻接或者接触的每个区域相关的像素被传送给接收计算机112。可提出采用边界像素和邻近区域的方法,用在特定类型的显示数据上。例如,如果特定的显示应用一般包含具有跨越边界的变化的数据,那么计算机可执行的代码可被用于有效地处理边界像素,以便于快速处理。特别地,在前进到指定区域或者显示图像的其它区域内的其它像素之前,该方法可从最可能包含改变像素的边界开始。
图4A图解说明对包含在某一区域(这里再次为区域202A)内的像素进行评估循环的备选方法。在图4A中,起始像素302保持相同,并按照结合图3A说明的方式评估。但是,如果对于起始像素302没有检测到任何变化,那么跳过相邻像素304,评估下一像素(这里称为第一跳跃像素402)。如果当比较第一跳跃像素402的当前值和其基准值时,未检测到任何变化,那么评估第二跳跃像素404。在图4A的备选实施例中,在通过评估每个像素获得的分辨率和通过每隔一个像素跳跃而获得的速度的加倍之间进行折衷。
采用一个或多个跳过像素的方法可被用于进一步增大处理速率和系统吞吐量。虽然结合图4A描述了单跳跃实施例,不过本发明并不局限于此。可以利用每次跳跃跳过固定数目的多个像素的实施例,以及其中在后续跳跃中跳过数目变化的像素的实施例。利用计算机可执行的代码便于要跳过的像素的数目的确定,以及哪些像素应被采样的确定。此外,所述确定可基于某一区域的特定部分内的像素将发生变化的可能性,基于特定区域将发生变化的可能性,以及基于其它参数,例如显示面积,显示图像的分辨率,图像更新的频率,网络带宽,处理能力等。在本发明的实施例中采用的方法还可被设计成有效地选择评估改变像素的出现,以及确保有效地进行显示区域和保存区域之间的比较的最佳区域。另外,像素跳跃方法可被设计使得为了促成与某一区域相关的所有像素的传输,需要一个以上的像素改变。要求一个以上的改变像素确保像素跳跃方法将以可预测的并且有效的方式操作,而不会导致不必要地把像素传送给接收计算机。当需要常规的邻近像素处理时,操作员可关闭像素跳跃方法。
图4B图解说明了评估某一区域(这里同样是区域202A)内的像素的另一备选实施例。结合图3A和4A描述的评估像素的方法从区域202A的外边界上的像素开始,并且向内螺旋前进,直到遇到改变的像素为止。相反,图4B中图解说明的方法利用随机数发生器来选择区域202A内的像素。图4B的像素内的数字表示评估随机选择的像素的顺序。例如,首先选择并评估像素1,随后是像素2等。继续随机选择像素,直到遇到改变的像素为止。当遇到改变的像素时,主计算机102对区域202A设置区域改变标志,随后通过网络110把构成区域202A的像素的当前值传送给接收计算机112。
图5A和5B图解说明根据本发明的一个优选实施例的在主计算机102和接收计算机112之间实现显示共享的例证方法。当在步骤502,在主计算机102上激活显示共享功能可执行代码时开始该方法。在步骤504,显示区200被划分成预定数目的区域,所述预定数目用M表示,M可以是任意整数。在步骤506,在主显示器104上呈现基准图像。
与在主显示器104上呈现基准图像同时,在步骤508,通过网络110把该图像传送给接收计算机112,以便在接收显示器114上显示。随后在步骤510,主计算机102保存该基准图像。在步骤512,用称为当前图像的新图像更新主显示器104上的基准图像。在步骤514,利用区域计数器“m”,从显示区200先前被分成的总共M个区域中选择起始区域。在步骤516进行评估,以确定对该起始区域来说,区域改变标志是否被设置。如果区域改变标记被设置,那么相应的区域已被评估,从而相对于保存在存储器中的基准区域,至少一个像素已发生改变。从而,在显示区200被再次更新之前,该区域不必被重新评估。如果区域改变标志被设置,那么处理流程进入下面说明的步骤538。相反,如果区域改变标志未被设置,那么处理流程进入图5B的步骤518。
在图5B中,在步骤518,从一个区域中的N个可用像素中选择第一像素。在步骤520进行评估,以确定出自区域(M)内的特定像素(N)(这里表示成像素(M,N)是否已相对于包含在保存的基准图像中的像素(这里表示成B(M,N))的值发生变化。如果像素(M,N)已相对于B(M,N)发生变化,那么在步骤522,对当前正在评估的区域设置区域改变标志。
相反,如果像素(M,N)相对于B(M,N)没有改变,那么在步骤534进行评估,以确定像素(N)是否小于区域(M)内的像素的总数。如果像素计数器“n”小于N,表示该区域内的最后像素还未被分析,那么在步骤536,像素编号被加1,流程返回步骤518。返回位于步骤522的输出端的主数据流程,在步骤524,发生变化的区域内的像素被发送给接收计算机112。
该方法随后在步骤526确定像素(M,N)是否另一区域。如果另一区域与像素(M,N)邻近,那么在步骤528,可设置每个相邻区域的区域改变标志。在靠近所检查的区域的外边界的改变像素可能是溢出到相邻区域中的一系列改变像素的一部分的应用中,对邻近区域设置标志是可取的。随后在步骤530,通过网络110把邻近区域发送给接收计算机112。返回步骤526,如果像素(M,N)不与另一区域邻近,那么方法进入步骤532。在步骤532中进行评估,确定显示更新是否完成。如果显示更新完成,那么主计算机102再不必把更新的区域发送给接收计算机112,于是该方法可结束。
现在参见步骤534,如果n不小于所检查区域中的像素的总数,那么这表示评估的像素是相应区域中的最后像素,于是对于该区域来说,n不再被递增。当在步骤534中产生该条件时,流程进入步骤538。在步骤538中,进行评估以确定m是否小于M(显示区200中的区域的总数)。如果m小于M,表示还没有到达显示区200内编号最大的区域。当产生该条件时,在步骤540,m被加1,之后方法流程返回步骤514,并开始评估显示区200中的下一区域。如果m不小于M,那么表示已到达显示区200的最后区域。当产生该条件时,在步骤542,区域改变标志被重置为0,之后流程返回步骤510,在步骤510,主计算机102上的当前显示区200被保存,并变成对照其比较下一个更新的显示区200的基准显示。在显示区200被新的图像更新之后,该方法再次如前所述从步骤514开始处理每个区域,以确定是否任意像素具有改变的值。当显示区200被更新时,在先图像用作与新显示图像比较的基准图像。
图6图解说明根据本发明的一个实施例,把显示区分成许多区域的方法。图6的方法可随同图5A的步骤504一起实现。当借助与在主计算机102中工作的数字处理器相关的机器可读指令执行图6的方法时,在步骤602,要求用户利用像素输入显示区200。在图6中未示出的本发明的一个备选实施例中,主计算机102能够自动确定显示区,而不涉及用户。返回图6,在步骤604,主计算机102显示区数据由其用户输入。随后在步骤606,主计算机102可要求用户输入希望的区域的数目。在步骤608,主计算机102接受区域数据,并在步骤610请求用户确定区域的分配。例如,用户可规定所有区域大小相等,如图2A中所示,或者围绕显示区200的外边界的区域为第一尺寸,而更接近显示区200的中心的区域为第二尺寸,如图2B中所示。
在步骤612,主计算机102可确定用户是否请求尺寸固定的区域的分配,如上所述。如果区域具有固定的尺寸,那么在步骤616,显示区200可被分成适当数目和大小的区域。相反,如果用户请求不固定的分配,那么在步骤618,主计算机102可实现可变的或者自适应的区域指定和选择方法。例如,主计算机102可执行使其监视一系列的更新图像,以便识别具有最高变化发生率的显示区200的多个部分的机器可执行指令。并且根据结果,主计算机102可自适应地改变显示区200内的区域的大小,使得按照优化通过网络110发送的图像数据的数量的方式确定频繁遭遇更新的显示区的大小。在步骤616或步骤618之后,在步骤620,希望的区域大小被呈递给用户。
图7图解说明根据本发明实施例的在接收计算机上操作,使之能够共享应用和图像的例证方法。在步骤702,接收计算机112利用网络110与主计算机102建立连接。在步骤704,从主计算机102接收初始的或者基准的显示图像以及区域布局索引。在步骤706,基准显示数据被显示在接收显示器114上。
随后在步骤708,接收计算机112确定是否已从主计算机102收到会话结束指示符。会话结束指示符可由主计算机102用作向接收计算机112通知将不发送任何另外区域的有效机构。可和确定所有显示更新是否完成的步骤532一起产生会话结束指示符。如果收到了会话结束指示符,那么终止操作。相反,如果在步骤708没有收到会话结束指示符,那么在步骤710,主计算机102确定更新区域是否已被接收。
如果没有收到更新后的区域,那么在步骤712,以足以避免用户可感觉到闪烁的刷新速率重新显示存在于显示装置200上的现有图像。在步骤712之后,方法返回步骤708,检查会话结束指示符。返回步骤710,如果收到了更新区域,那么在步骤714识别这些更新区域。当更新区域被识别时,确定区域编号和在显示区200内的位置。在步骤716,更新区域被用于分别重写具有相同标识符的现有区域。随后在步骤718,在接收显示器114上显示更新区域。在步骤718之后,方法返回步骤708,确定是否已从主计算机102收到会话结束指示符。
图8图解说明可自适应更改的例证的通用计算设备,它利用计算机可读指令和硬件来执行与主计算机102、接收计算机112或网络110相关的操作。
通用计算机800可由处理器802、主存储器804、只读存储器(ROM)806、存储装置808、总线810、显示器812、键盘814、光标控制装置816和通信接口818组成。处理器802可以是解释并执行指令的任意类型的常规处理装置。主存储器804可以是随机存取存储器(RAM)或者类似的动态存储装置。主存储器804保存供处理器802执行的呈机器可读形式的信息和指令。主存储器804还可被用于保存在处理器802执行指令期间的临时变量或其它中间信息。要认识到ROM 806可由其它类型的静态存储装置,例如可编程ROM,可擦可编程ROM等替换。数据存储装置808可包括任意类型的磁介质或光介质及其对应接口和操作硬件。数据存储装置808保存供处理器802使用的信息和指令。总线810可包括便于计算机的组件之间的数据传输的一组硬件线路(导体,光纤等)。
显示装置812可以是向用户显示信息的阴极射线管(CRT),液晶显示器(LCD)等。键盘814和光标控制装置816允许用户与计算机800交互作用。光标控制装置可以是例如鼠标。在一种备选结构中,键盘814和光标控制装置816可用麦克风和语音识别装置替换,以使用户能够与计算机800交互作用。
通信接口818使计算机800能够通过任意通信介质与其它设备/系统通信。例如,通信接口818可以是调制解调器,到IP网络的以太网接口或者打印机接口。另一方面,通信接口818可以是能够实现计算机800和其它设备或系统之间的通信的任意其它接口。
例如,在利用处理器802处理当前显示区的一个或多个区域之前,主计算机802可把基准显示图像保存在主存储器804中。如果在一个或多个区域内检测到改变的像素,那么通信接口818可利用网络110把这些区域传送给接收计算机112。
图9图解说明根据本发明实施例的,能够保存与显示数据的应用共享相关的信息的例证计算机可读数据结构900。数据结构900可包括区域标识符字段902、更新字段904、改变标志字段906、发送字段908、错误字段10和计数器字段912。区域标识符字段902可包含唯一地参考构成显示区200的许多区域的字母数字标识符。更新字段904可包含与用于表示构成相应区域的像素何时已被更新的标志相关的值。例如,1可表示相应区域中的像素已被更新,而0表示区域由基准像素构成。
改变标志字段906可包括表示相应区域内的至少一个像素何时相对于相同区域的基准像素已被更新的标志。例如,值为1的改变标志字段906可表示某一像素已相对于基准像素发生变化,而0表示像素未被改变或者相应区域还未被分析。发送字段908可被用于指示与相应区域相关的改变像素是否已被发送给接收计算机112。错误字段910可被用于追踪与系统100的产生相关的错误,计数器字段912可被用于记录与特定区域相关的像素已多少次从主计算机102被发送给接收计算机112。
虽然这里说明了选择的优选实施例;不过本发明并不局限于此。事实上,符合本发明的应用共享系统可采取许多形式。例如,在第一个备选实施例中,图5A和5B的方法可被修改,并不对照其在先像素单独比较每个像素。在第一个备选实施例中,可计算代表一行基准区域内的每个像素的值的散列值。随后可在主计算机102上对更新后的区域计算相同行的散列值。如果这两个散列值不同,那么该行内的至少一个更新像素的值相对于基准显示中的对应像素发生了变化。更新的区域随后可被发送给接收计算机112。另一方面,与每个更新行相关的散列值可通过网络110被发送,并在接收计算机112利用已知密钥解密,从而产生该行中的每个更新像素的正确值。
在第二个备选实施例中,可用分布式或并行体系结构实现主计算机102和/或接收计算机112。例如,如果主计算机102是分布式体系结构,那么处理器802可位于显示器812附近,而存储装置808位于远程位置,并通过网络110和通信接口818与处理器802耦接。
在第三个备选实施例中,主计算机102和接收计算机112都可同时充当主计算机和接收器。在本实施例中,主计算机102可把区域发送给接收计算机112,同时在基本相同的时候,从接收计算机112接收更新的区域。该第三实施例可存在于连网视频游戏中,在连网视频游戏中,位于任一位置的用户可把数据加入显示的图像中或者在显示图像中处理数据。
在第四个备选实施例中,主计算机102可以是企业管理应用(application),例如IBM公司开发和出售的Lotus NotesTM。企业管理应用被用于支持劳动力协作和通信。从而,作为视频会议能力的一部分,主计算机102可与接收计算机112通信。并且,就这种能力来说,主计算机102可把更新的区域传送给接收显示器114。
权利要求不应被理解为局限于所述顺序或要素,除非另作说明。于是,本发明要求保护在下述权利要求及其等同物的范围和精神内的所有实施例。
权利要求
1.一种共享在操作上与网络耦接的主计算机上运行的应用的方法,所述方法包括下述步骤把包括多个像素的显示区分解成两个或更多的区域,每个像素具有与之相关的值,从而产生分割的显示区,其中所述分割的显示区的每个区域包含所述多个像素的一个子集;确定所述多个像素的所述子集的元素是否不同于同样数目的可关联子集,每个可关联子集具有由可关联像素组成的同样多个元素,每个可关联像素均具有存储值,并且被保存在存储器中;和对所述显示区的所述区域中,具有其值不同于与保存在所述存储器中的所述可关联像素的对应一个像素相关的所述存储值的元素的那些区域进行操作。
2.按照权利要求1所述的方法,其中所述分解步骤包括把所述显示区分成两个或更多的相同大小的区域,使得所述两个或更多区域中的每个区域包含相同数目的像素。
3.按照权利要求1所述的方法,其中所述分解步骤包括把所述显示区分成两个或更多的可变大小的区域,使得所述两个或更多区域中的第一个区域包含少于所述两个或更多区域中的其它区域的像素。
4.按照权利要求1所述的方法,其中所述确定步骤还包括下述步骤比较所述显示区的每个所述子集内的所述像素之一和该像素的保存在所述存储器中的相应可关联像素,出自所述显示区的每个子集的所述像素之一是选择的像素。
5.按照权利要求4所述的方法,其中所述选择的像素与所述显示区的所述两个或更多区域中的另一区域邻近,如果所述选择的像素的值不同于所述相应可关联像素的所述值,那么还传送所述邻近区域的接近所述选择像素的那些像素。
6.一种评估包含在一个显示的多个区域中的至少一个区域内的多个像素的方法,所述多个区域中的所述至少一个区域是选择区域,所述选择区域还具有能够接触所述多个区域中的其它区域的多个边界,所述显示用在连网应用共享环境中,所述方法包括下述步骤确定像素群,所述群说明所述多个像素中的每一个的存在和位置,所述群利用具有行坐标和列坐标的矩阵计数,以便于所述计数;接受标准;和识别确定所述多个像素中将被检查的那些像素的处理顺序,当进行所述确定时,所述处理顺序使用所述标准,并且当处理所述多个像素中的像素时,所述处理顺序还能够自适应地跳过可变数目的相邻像素。
7.按照权利要求6所述的方法,还包括下述步骤利用所述处理顺序选择起始像素,所述起始像素是所述选择区域内被处理的第一个像素;评估所述起始像素,确定其值是否不同于与保存在存储器中的可关联像素相关的值;和如果所述起始像素值和所述可关联值相符,那么利用所述处理顺序选择所述多个像素中的另一像素。
8.按照权利要求7所述的方法,其中所述选择步骤还包括选择所述选择区域内的所述多个像素中的任意其它像素,包括不和所述起始像素相邻的那些所述像素。
9.按照权利要求7所述的方法,还包括下述步骤如果所述起始像素或者沿着所述多条边界之一的任意所述后续处理的像素的值不同于保存在所述存储器中的相应可关联像素的值,那么识别所述多个区域中接触所述选择区域的所述多条边界之一的那些区域;和利用所述网络,把所述多个区域中接触所述边界的那些区域传送给接收计算机。
10.一种包含机器可读指令的计算机可读介质,所述机器可读指令指令处理器执行通过网络共享应用的操作,所述计算机可读介质包括把显示区分解成两个或多个区域,从而产生分割显示区的指令;把所述分割显示区应用于包括第一组多个像素的第一显示的指令,所述第一组多个像素的每一个均具有与其相关的第一值,所述应用产生两个或更多个第一显示区域,每个第一显示区域包含所述第一组多个像素的子集;把所述两个或更多的第一显示区域保存在通信上与所述主计算机通信的存储器中的指令;载入包括同样多个像素的更新显示的指令,所述同样多个像素的每个像素具有与其相关的第二值,并且还可分别与所述第一组多个像素中的一个相关联;把所述分割显示区应用于所述更新的显示,从而产生两个或多个的更新显示区域的指令,每个更新显示区域包含所述同样多个像素的子集,每个更新显示区域还与所述第一显示区域之一相关联;选择所述更新显示区域之一,从而产生选择区域的指令;处理所述选择区域,确定与所述同样多个像素的所述子集的至少一个像素相关的所述第二值是否不同于与所述第一组多个像素的所述可关联像素相关的所述第一值的指令;和如果所述第二值不同于所述第一值,那么对所述选择区域执行操作的指令。
11.按照权利要求10所述的计算机可读介质,其中所述处理指令还包括比较出自包含在所述选择区域内的所述同样多个像素的所述子集的一个像素和所述第一组多个像素的所述可关联像素的指令。
12一种通过网络共享应用的设备,所述设备包括通过所述网络,把更新区域发送给接收计算机的接口;保存包括第一组多个像素的基准显示,并且保存包含数目与所述第一组多个像素相等的第二组多个像素的更新显示的存储器,所述存储器还保存区域布局索引,用于把所述基准显示分解成第一组多个区域,以及把所述更新显示分解成第二组多个区域,同时使得所述第一组多个和第二组多个区域中的相应区域相互相关联;显示所述基准显示和所述更新显示的显示装置;处理器,用于执行机器可读指令,用以在把所述基准显示保存在所述存储器中之前,在所述显示装置上显示所述基准显示,使用所述区域布局索引分解所述基准显示,显示所述更新显示,分解所述更新显示,处理包含在第二组多个区域之一中的一个像素,从而产生一个已处理像素,并把所述已处理像素与位于所述第一组多个区域之一内的所述第一组多个像素之一进行比较,所述第一组多个区域之一与包含所述已处理像素的所述第二组多个区域之一相关联,以及如果所述已处理像素不同于所述第一组多个像素所述之一,把所述区域发送给所述接收计算机。
13.按照权利要求12所述的设备,其中所述网络是网际协议(IP)网络。
14.按照权利要求13所述的设备,其中所述设备是企业管理系统的一部分。
15.一种共享在操作上与网络耦接的主计算机上运行的应用的方法,所述方法包括下述步骤把显示区分解成两个或更多的区域,从而产生分割显示区;把所述分割显示区应用于包含第一组多个像素的第一显示,第一组多个像素中的每一个具有与之相关的值,所述应用还产生两个或更多的第一显示区域,每个第一显示区域包含所述第一组多个像素的子集;把所述两个或更多的第一显示区域保存在通信上与所述主计算机相关联的存储器中;载入包含同样多个像素的更新显示,所述同样多个像素中的每个像素具有与之相关的第二值,并且还可分别与所述第一组多个像素中的一个像素相关联;把所述分割显示区域应用于所述更新显示,从而产生两个或更多的更新显示区域,每个更新显示区域包含所述同样多个像素的子集,每个更新显示区域还与所述第一显示区域之一相关联;选择所述更新显示区域之一,从而产生选择区域;处理所述选择区域,确定与所述同样多个像素的所述子集的至少一个像素相关的第二值是否不同于与所述第一组多个像素中的所述可关联像素相关的第一值;和如果所述第二值不同于所述第一值,那么对所述选择区域执行操作。
16.按照权利要求15所述的方法,其中所述分解步骤包括把所述显示区分成两个或更多的相同大小的区域,使得所述两个或更多区域中的每一个包含相同数目的像素。
17.按照权利要求15所述的方法,其中所述分解步骤包括把所述显示区分成两个或更多的可变大小的区域,使得所述两个或更多区域中的第一个区域包含的像素少于所述两个或更多区域中的其它区域。
18.按照权利要求15所述的方法,其中所述处理步骤还包括下述步骤比较出自包含在所述选择区域内的所述同样多个像素的所述子集的像素与所述第一组多个像素的所述可关联像素。
19.按照权利要求18所述的方法,其中所述像素邻近所述两个或更多的更新显示区域中的另一更新显示区域。
20.按照权利要求19所述的方法,其中所述处理步骤还包括如果所述比较确定所述像素和所述第一组多个像素中的所述可关联像素相同,那么选择所述选择区域内的相邻像素。
21.按照权利要求20所述的方法,其中所述处理步骤还包括选择所述选择区域内的每隔一个像素,并将其与其相应的可关联像素进行比较,直到检测到值的不同为止。
22.按照权利要求20所述的方法,其中如果所述第二值不同于所述第一值,那么所述更新显示区域中邻近所述像素的那些更新显示区域被发送给接收计算机。
全文摘要
提供一种简化连网环境中的应用共享的系统和方法。具体地说,所述系统把主计算机上的显示区分成多个区域,每个区域由预定数目的当前像素组成。系统随后评估选择区域内的当前像素,并将它们与保存在存储器中的对应像素进行比较。如果系统确定当前像素的值不同于保存的对应像素的值,那么该区域内的所有像素通过网络被发送给接收计算机。接收计算机把接收的区域插入显示中,从而它和所述区域源于的主计算机上的显示相符。
文档编号G06F3/14GK1713169SQ20051007896
公开日2005年12月28日 申请日期2005年6月21日 优先权日2004年6月24日
发明者詹姆斯·S·乔纳森, 马克·S·克雷辛, 威廉·M·奎恩 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1