专利名称:共享图像的制作方法
技术领域:
本发明涉及共享图像。特别地,本发明涉及在第一终端和第二终端之间共享图像。
背景技术:
图像可以在网络中的多个不同终端之间共享。这允许图像在每个终端处被显示。这能够通过在不同终端之间传输表示图像的图像数据来实现。此外,如果在第一终端处图像被改变,则将改变了的图 像版本传输至第二终端可能是有益处的。以这种方式,第二终端处的用户能够看到在第一终端处对图像做出的改变。在第一终端处对图像做出的改变可以被传输至多于一个的其它终端。其中将对图像做出的改变从第一终端传输至第二终端是有益处的一个例子是在实现屏幕共享时。对于在两个终端之间的通信,屏幕共享是有益处的技术。在第一终端(或“共享者”终端)的第一屏幕上显示的图像能够被传输至第二终端(或“观看者”终端)并在第二终端的第二屏幕上显示。对于屏幕共享,图像是第一屏幕的截屏(screen capture)。实现屏幕共享的终端能够使用点对点通信来彼此通信。作为一个例子,当第一终端处的第一用户(“共享者”)尝试向第二终端处的第二用户(“观看者”)解释他们在他们的屏幕上所看到的东西时,屏幕共享是特别有用的,因为通过屏幕共享观看者能够看到在共享者的屏幕上显示的图像。当共享者终端处的图像被改变时,然后那些改变被传输至观看者终端,并且在观看者的屏幕上显示的图像能够据此更新以反映该改变。当在共享者终端处只有图像的特定区域被改变时,表示需要更新的那些区域的屏幕矩形则从该共享者终端被传输至观看者终端。当共享者的屏幕上的图像被改变,观看者的屏幕上的图像的更新被实时地执行,这通常是较优选的。当例如共享者和观看者同时地参与屏幕共享和诸如呼叫或即时消息会话之类的通信会话中时,这是特别优选的。
发明内容
根据本发明的第一方面,提供了一种在第一终端和第二终端之间共享图像的方法,该方法包括在服务器处从第一终端接收原始版本的图像;在服务器处从第一终端接收平铺块(tile),每个平铺块表示图像的至少一部分,并且包括在第一终端处对图像做出的改变;在服务器处保持图像状态,其标识需要哪些平铺块用于形成最新版本的图像;当确定要在第二终端处形成最新版本的图像时,基于图像状态从服务器传输平铺块至第二终端以形成最新版本的图像。根据本发明的第二方面,提供了一种用于在第一终端和第二终端之间共享图像的服务器,该服务器包括接收装置,用于从第一终端接收原始版本的图像,该接收装置进一步用于从第一终端接收平铺块(tile),每个平铺块表示图像的至少一部分,并且包括在第一终端处对图像做出的改变;保持装置,用于在服务器处保持图像状态,其标识需要哪些平铺块用于形成最新版本的图像;传输装置,用于在确定要在第二终端处形成最新版本的图像时,基于图像状态传输平铺块至第二终端以形成最新版本的图像。根据本发明的第三方面,提供了一种网络,包括根据本发明的第二方面的服务器;第一终端;和第二终端。根据本发明的第四方面,提供了一种计算机程序产品,包括计算机可读指令,其由在服务器处的计算机处理装置执行以在第一终端和第二终端之间共享图像,该指令包括指令用于在服务器处从第一终端接收原始版本的图像;在服务器处从第一终端接收平铺块,每个平铺块表示图像的至少一部分,并且包括在第一终端处对图像做出的改变;在服务器处保持图像状态,其标识需要哪些平铺块用于形成最新版本的图像;和确定要在第二终端处形成最新版本的图像时,基于图像状态从服务器传输平铺块至第二终端,以形成最新版本的图像。图像状态标识需要哪些平铺块用于形成最新版本的图像。当图像在第一终端处被改变时,可能只有图像的一部分被改变而图像的其余部分没有改变。表示改变的图像部分 的平铺块被传输至服务器并可以代替先前接收的表示已经改变的图像部分的平铺块。图像状态据此被更新以标识新的平铺块而不是先前接收的平铺块,先前接收的平铺块已经被该新的平铺块所取代。然而,图像状态将仍然标识先前接收的表示没有被新平铺块表示的那些图像部分的平铺块。以这种方式,图像状态标识完整地呈现最新版本的图像所需要的平铺块。在服务器处可以在不同的时间接收由图像状态标识的平铺块。图像状态能够被看作是可以被用于重绘最新版本的图像的平铺块的列表。图像状态能够被第二终端使用以确定需要哪些平铺块以形成最新版本的图像。服务器或者第二终端可以确定由图像状态标识的平铺块中的哪些还没有存储在第二终端中,然后那些所确定的平铺块能够被传输至第二终端,这样第二终端能够形成最新版本的图像。当第二终端具有低速链路用于从服务器接收数据的情况,图像状态中只有一些可以被传输至第二终端。例如,与表示最新版本的图像的平铺块从第一终端被接收相比,表示最新版本的图像的平铺块可能较不频繁地被传输至第二终端。在第二终端这端,就较低的更新速率而言,这导致优雅降级(graceful degradation),由此有效地实现了被发送至第二终端的数据的简单速率控制。特别地,在第二终端处对最新版本的图像的请求之间被覆盖的中间平铺块不被发送至第二终端。这允许该方法适应于第二终端的特定属性。这允许较慢的接收方,即具有相对较慢的下行链路连接、或者相对较慢的处理器的那些终端,接收较少的图像更新,因此减少了在接收方终端(例如第二终端)处所使用的带宽或所需要的处理能力。在服务器上平铺块和图像状态的存储允许新的观看客户端(在另一个终端上)在任何时间加入图像共享会话,而不需要共享客户端(在第一终端处)上传任何额外的数据。新的观看客户端向服务器请求形成最新版本的图像所需要的平铺块。服务器能够基于图像状态返回所需要的平铺块以允许新的观看客户端形成最新版本的图像。可以实现此,而不需要第一终端为该新的观看客户端传输任何额外的数据,甚至可以在第一终端不知道访问该图像的新的观看者的情况下实现。因此,与其中数据被直接地从第一终端传输至第二终端的点对点系统相比,用于实现屏幕共享的基于服务器的系统能够具有优势。
在一些实施方式中,该方法通过一种屏幕共享的方法来实现。通过传输包括对第一终端处的图像做出的任何改变的编码的图像部分(即平铺块),对在共享者屏幕上显示的图像的改变被传输至服务器。观看者可以根据图像状态请求或通过推送而接收来自服务器的平铺块,所述平铺块是形成最新版本的图像所需要的。
为了更好地理解本发明并展示如何实施本发明,现在将通过示例的方式参考附图,在附图中
图I是根据优选实施方式的通信网络的示意性表示;
图2a是根据优选实施方式更新图像状态的处理的流程 图2b是传输平铺块至第二终端的处理的流程图;
图3是形成原始图像的平铺块的表示;
图4a是改变的图像的第一平铺块的表示;
图4b是接收到第一平铺块之后的图像状态的表示;
图5a是改变的图像的其它平铺块的表示;
图5b是接收到其它平铺块之后的图像状态的表示;
图6a是在第一合并中合并平铺块的步骤之后的图像状态的表示;
图6b是在第二合并中合并平铺块的步骤之后的图像状态的表示。
具体实施例方式参考图1,现在描述一种通信网络100,其中第一用户102能够与第二用户118通信。第一用户102与网络100中的第一终端104相关联,第二用户118与网络100中的第二终端120相关联。网络100还包括服务器112。第一终端104包括显示器106、用于处理数据的中央处理单元(CPU) 108和用于存储数据的存储器110。第二终端120包括显示器122、用于处理数据的CPU 124和用于存储数据的存储器126。第一终端104处的CPU 108能够处理图像数据以在显示器106上显示图像。图像数据可以被存储在存储器110中。类似地,第二终端120处的CPU 124能够处理图像数据以在显示器122上显示图像。图像数据可以被存储在存储器126中。服务器112包括用于处理数据的CPU 114和用于存储数据的存储器116。第一终端104能够通过网络与服务器112通信,例如使用在第一终端104和服务器112处的网络接口(未示出)。服务器112能够通过网络与第二终端120通信,例如使用在服务器112和第二终端120处的网络接口(未示出)。还在图I中示出了与网络100中的另一个终端130关联的另一个用户128。该另一个终端130包括显示器132、用于处理数据的中央处理单元(CPU)134和用于存储数据的存储器136。在另一个终端130处的CPU134能够处理图像数据以在显示器132上显示图像。图像数据可以被存储在存储器136中。服务器112能够通过网络与另一个终端130通信,例如使用在服务器112和另一个终端130处的网络接口(未示出)。在运行中,在第一终端104处对图像的更新将被传输至第二终端120。图像数据能够通过网络100从第一终端104经由服务器112被传输至第二终端120。需要更新的图像的部分能够被编码为平铺块。平铺块是能够被编码并从第一终端104通过网络100传输的图像的一块。第二终端120能够使用接收到的平铺块以更新平铺块所涉及的图像中的特定块。以这种方式,在第一终端104处对图像所做出的改变也能够在第二终端120处对图像做出。以相同的方式,在第一终端104处对图像所做出的改变也能够在另一个终端130处做出。在优选的实施方式中,对图像的更新被用于在第一终端104和第二终端120之间的屏幕共享,其中在第一终端104的显示器106上显示的图像也被显示在第二终端120的显示器122上。第二终端120是屏幕共享会话中的观看者终端。在屏幕共享会话中可以有多于一个的观看者终端。例如,在屏幕共享会话中,第二终端120和另一个终端130都可以是观看者终端。在图I中为了清楚起见而仅示出了两个观看者终端(第二终端120和另一个终端130),与此处关于图I所描述的那些相比,在屏幕共享会话中可以有更多的观看者终端。现在参考图2a和2b的流程图描述根据优选实施方式在第一终端104和第二终端 120之间共享图像的方法。相同的原理适用于在第一终端104和另一个终端130之间共享图像。在步骤S202中,表示第一终端104处的图像的图像数据在服务器112处被接收。图像数据第一次被发送至服务器112时,整个图像(即原始图像)被传输。以这种方式,月艮务器112具有形成原始图像所需要的全部数据。如上面所描述的,图像被编码为平铺块以从第一终端104传输至服务器112。与新版本的图像相比,关于原始图像没有什么特殊的。图像可以被编码为覆盖整个图像的单个平铺块,这能够被称为“完整平铺块”。可替换地,图像可以被编码为多个平铺块,每个平铺块表示图像的一部分。图3是图像的表示,其中四个平铺块(302,304,306和308)被用于表示图像。在图3中示出的8x8方格仅是用于图示的目的并且被用来示出图像中平铺块的位置。从图3中可清楚地看出,四个平铺块302、304、306和308足够完整地呈现整个图像。因此四个平铺块302、304、306和308能够从服务器112被传输至第二终端120以允许第二终端120形成图像。表示图像的平铺块能够被存储在服务器112的存储器116中。在第一终端104处图像可以被改变。在步骤S204中,在服务器112处从第一终端104接收新平铺块。该新平铺块表示图像的至少一部分,并包括在第一终端104处对图像做出的改变。无论何时在第一终端104处对图像做出了改变,平铺块从第一终端104被传输至服务器112,其中平铺块表示对图像做出的改变。以这种方式,将形成最新版本的图像所需要的所有平铺块提供给服务器112。图4a显示了平铺块402的例子,其从第一终端104被传输至服务器112。平铺块402包括已经在第一终端104处对图像做出的改变。在图4a中示出的例子中能够看出平铺块402表示与在服务器112处先前接收的平铺块302完全相同的图像部分。因此新接收的平铺块402代替平铺块302。因此,最新版本的图像(在接收平铺块402之后)能够使用平铺块304、306、308和402形成,如在图4b中所示出的。在步骤S206中,服务器112更新图像状态。图像状态标识需要哪些平铺块用于形成最新版本的图像。例如,在已经接收平铺块402之后,图像状态将标识在图4b中示出的平铺块,即平铺块304、306、308和402。图像状态由此在服务器112处被保持并且能够被用于确定需要哪些平铺块以形成最新版本的图像。该最新版本的图像是最近更新的版本的图像。图像状态能够被用于确定哪些平铺块需要被传输至第二终端120,以便该第二终端形成最新版本的图像。在服务器112处的CPU 114能够被用于在服务器112处执行的数据处理步骤。图像状态被更新,这样平铺块302不再被图像状态标识,因为不再需要该平铺块302用于形成最新版本的图像。当平铺块(诸如平铺块302)不再被图像状态标识时,该平铺块可以从服务器112的存储器116中被移除。这减少了在服务器112的存储器116中存储的非必要数据的数量。可替换地,当平铺块不再被图像状态标识时,该平铺块可以不从服务器112的存储器116中被移除。一旦在服务器112处已经接收到平铺块402,可以在服务器112处执行图像状态的更新。可替换地,图像状态的更新可以在第一终端104处执行,并与平铺块一起上载至服务器112。使用这种可替换的实现方式,不需要服务器112能够进行复杂操作,服务器112可以例如只是标准的web服务器。由此, 在这个可替换的实现方式中,服务器112能够被认为是网络100中的存储/转发机器。在步骤S206之后,服务器112存储了形成最新版本图像所需要的更新后的平铺块和标识那些需要的平铺块的更新后的图像状态。参考图2b,在步骤S208中,确定要在第二终端120处形成最新版本的图像。该确定可以以多种不同的方式被执行。例如,服务器112可以确定第二终端120应当被通知在第一终端104处对图像做出的改变。服务器112可以确定无论何时在第一终端104处对图像做出了改变,第二终端120都应当接收平铺块以形成最新版本的图像。可替换地,第二终端120可以确定其要形成最新版本的图像。例如,如果自从上次第二终端120更新图像起的时间周期超过了阈值,则第二终端120可以确定最新版本的图像要在第二终端120处被形成,例如显示在显示器122上。可替换地,第二用户118可以指示要在第二终端120处形成最新版本的图像。一旦在步骤S208已经确定要在第二终端120处形成最新版本的图像,则方法转到步骤S210。在步骤S210中,基于图像状态,平铺块从服务器112被传输至第二终端120。以这种方式,形成最新版本的图像所需要的平铺块被传输至第二终端120。当第二终端120已经存储了由图像状态标识的平铺块中的一些时,则那些平铺块可以被再次传输或者可以不被再次传输至第二终端120。由图像状态标识的尚未被存储在第二终端120处的那些平铺块从服务器112被传输至第二终端120。由此,第二终端120被提供了由图像状态所标识的用于形成最新版本的图像的全部平铺块。在一些实施方式中,在第二终端120处的CPU 124上执行的观看客户端请求来自服务器112的屏幕更新。通知从第二终端120被发送至服务器112,通知服务器112要在第二终端120处形成最新版本的图像。这可以是在上述的步骤S208中那样确定第二终端120要形成最新版本的图像。作为响应,服务器112传输图像状态至第二终端120。基于图像状态,第二终端120确定图像状态标识的平铺块中的哪些尚未存储在第二终端120处。然后第二终端120传输对于所确定的平铺块的请求至服务器112。作为响应,如上面步骤S210中所描述的,服务器112传输所请求的平铺块至第二终端120,以在第二终端120处形成最新版本的图像。在其它实施方式中,服务器112推送图像状态至第二终端120,而不是等待第二终端120通知服务器112要在第二终端120处形成最新版本的图像。在这个实施方式中,在步骤S208中,服务器112确定第二终端要形成最新版本的图像。服务器112可以通过如下方式做出该确定,即,通过跟踪更新的平铺贴被传输至第二终端120的时间。例如,服务器112可以确定第二终端120应当按照规律的时间间隔接收最新版本的图像。可替换地,无论何时在服务器112处从第一终端104接收到平铺贴,服务器112可以确定第二终端120应当接收最新版本的图像,这样对图像的所有更新被传输至第二终端120。一旦在第二终端120处接收到图像状态,所述方法以与上述相同的方式进行。这意味着第二终端120确定由图像状态标识的平铺块的哪些尚未存储在第二终端120处。然后第二终端120传输对所确定的平铺块的请求至服务器112。作为响应,如上面所描述的,在步骤S210中,服务器112传输所请求的平铺块至第二终端120,以在第二终端120处形成最新版本的图像。在另一个实施方式中,图像状态没有被传输至第二终端120,其意味着在第二终端120上执行的观看客户端(用于处理图像数据)不知道该图像状态。确定第二终端120要形成最新版本的图像能够以上面描述的两种方式中任一种实现(即该确定能够通过第二终端120使用发送至服务器112的通知而做出,或者该确定能够由服务器112自己做出)。服务·器112传输形成最新版本的图像所需要的那些平铺块至第二终端120。服务器112可以传输由图像状态标识的所有平铺块。可替换地,服务器112可以只传输尚未存储在第二终端120处的由图像状态标识的平铺块。为了实现此,服务器112保留已经被传输至并存储在第二终端120处的平铺块的记录。结果是第二终端120只接收呈现最新版本的图像所需要的平铺块。不传输图像状态至第二终端120的优势在于在第一终端104处做出改变之后,在第二终端120处更新图像的延迟被减少,网络上的带宽效率增加了(因为图像状态不在网络上传输)。然而,这些优势以增加服务器复杂性为代价。减少服务器112的复杂性能够是有益处的,这样非常简单的服务器能够被用于实现该方法。在一些实施方式中,服务器112确定图像状态。这意味着服务器112计算哪些平铺块要由图像状态标识为是形成最新版本的图像所需要的。该计算是基于从第一终端104接收的平铺块。图像中平铺块的位置被用于确定平铺块应当如何被用于形成图像。因此,优选地,平铺块包括平铺块头部,其标识平铺块在图像中的位置。例如,平铺块头部可以指示平铺块的第一像元(picture element)位置以及平铺块的宽度和高度。这将导致平铺块作为图像的矩形部分。其它形状的平铺块也是可能的。术语“矩形部分”在此处被用于表示具有四个直角的四边形部分。在这个意义上,“矩形部分”可以是其边不是都具有相同长度的矩形形式,“矩形部分”也可以是其边都具有相同长度的正方形形式。平铺块能够具有任意的大小,并且实际上平铺块的大小能够是变化的。例如,具有1024个像元(或“像素”)的宽度(w)和768个像元的高度(h)的图像的两个平铺块可以具有如下的属性
平铺块[
{seq:O, x:0, y:0, w:1024, h:700},
{seq: I, x:0, y:700, w: 1024, h:68}
]
此处,“seq”指示平铺块编号,“x”和“y”指示平铺块中第一像元的像元位置。这个例子强调如下事实使用作为图像的矩形部分的平铺块允许图像中平铺块的位置被非常容易地编码。使用平铺块的位置,服务器112能够确定新接收的平铺块是否应当代替先前接收的平铺块或者新接收的平铺块和先前接收的平铺块是否都是形成最近更新的版本的图像(即最新版本的图像)所需要的。作为例子,图4a中示出的平铺块402表示与先前接收的平铺块302 (在图3中示出)完全相同的图像部分。因此,服务器112将确定平铺块402代替平铺块302并且图像状态应当标识平铺块402而非平铺块302。在其它实施方式中,第一终端104确定图像状态。换句话说,第一终端104计算哪些平铺块要由图像状态标识为是形成最新版本的图像所需要的。例如,第一终端104可以使用CPU 108执行共享客户端,以在处理与第二终端120的屏幕共享会话的数据中使用。共享客户端能够执行确定图像状态所需要的数据处理操作。然后在第一终端104处确定的图像状态能够与每个表示一个截屏的改变的平铺块的集合一起被传输至服务器112。在第一终端处执行计算(例如使用共享者客户端)的优势在于服务器112的复杂性和计算要求能够被显著地降低。实际上,服务器112可以是标准的Web服务器,其可以不具有执行实现此处所述方法所需要的关于平铺块的计算的能力。·在图2中示出并在上面描述的方法步骤能够以软件实现,其可以例如在服务器112处的CPU 114上执行。可替换地,那些方法步骤可以例如在服务器112处以硬件块的形式实现。平铺块的配置可以是灵活的。特别地,平铺块的位置、大小和形状可以是变化的。这允许平铺块高效地表示已经在第一终端104处被改变的图像的部分。以这种方式平铺块的配置是灵活的情况下,在服务器112处接收的新的平铺块可能不是表示与先前接收的平铺块完全相同的图像部分。例如,如图4b中示出的由平铺块304、306、308和402表示的图像可以在第一终端处被进一步改变,如在图5a中示出的三个平铺块502、504和506可以被传输至服务器112以表示对图像做出的改变。在图5a中能够看出,平铺块502、504和506中没有一个具有完全对应于图像状态中标识的先前接收的平铺块(304、306、308和402)中任一个的位置的图像中的位置。因此,在图像状态中标识的先前接收的平铺块(304、306、308和402)中没有一个能够被新接收的平铺块(502、504和506)完全代替。如在图5b中示出的,平铺块304、306、308、402、502、504和506全都是形成最新版本的图像所需要的。因此图像状态被更新以标识所有这些平铺块。图像状态可以被通过多种方式来控制。例如,不让图像状态增长太大是有益的,因为传输由图像状态标识的平铺块(例如至希望观看最新版本的图像的新的观看者)将需要大量数据被下载以呈现最新版本的图像。平铺块可以有优势地使用任意压缩算法压缩,诸如联合图像专家组(JPEG)压缩或者便携式网络图形(PNG)压缩,由此减少了在网络上传输的平铺块中包含的数据量。此外,由图像状态标识的平铺块中包含的数据量可以不被允许超过设定阈值。该阈值例如可以是千字节。如果超过了阈值,则两个或多个平铺块能够被合并以形成较大的平铺块。该合并的(多个)平铺块表示由被合并以形成该合并的(多个)平铺块的两个或多个平铺块所表示的图像部分。这有效地减少了由图像状态标识的平铺块的数目,并减少了在图像状态中包含的数据量。在被合并的平铺块在图像中具有重叠的位置的情况下,在减少由图像状态标识的平铺块中包含的数据量方面,这是特别有效的。在这种情况下,与被合并的平铺块的总和相比,合并的平铺块表示较小的图像数据部分。此外,每个平铺块具有平铺块头部,其包含用于平铺块的控制数据,例如图像中平铺块的位置。通过合并平铺块,平铺块头部的数目被减少,因此在由图像状态标识的平铺块中包含的数据量被减少。例如,平铺块306、402、502和504可以被合并为单个平铺块610a,如图6a中所示出的。然后图像状态被更新以只标识平铺块304、308、506和610a,因为如在图6a中所示出的,这些是完整地呈现最新版本的图像所需要的平铺块。以这种方式合并平铺块被认为是“减少”图像状态。代替确定由图像状态标识的平铺块中包含的数据量何时超出阈值,可以确定由图像状态标识的平铺块的数目是否超出阈值。在这种情形中,触发状态减少的阈值是按照平铺块的数目而不是在平铺块中包含的数据量。当由图像状态标识的平铺块的数目超出阈值时,平铺块能够按照上述相同的方式被合并,由此减少了图像状态。在一些实施方式中,由图像状态标识的平铺块的数据量和数目都被考虑以确定何时合并平铺块。当确定平铺块应当被合并以由此减少图像状态时,将图像状态标识的所有平铺块合并为单个平铺块可能是有益的。这在图6b中被示出,其中平铺块610b表示先前由图像状态标识的所有平铺块的合并。平铺块610b表示整个图像。然后图像状态将被更新以便只标识平铺块610b。当以这种方式所有平铺块被合并时,这被称为“刷新(flushing)”图像状态。在网络100上,图像可以与多于一个其它终端被共享。例如,第一终端104可以参与在网络100上与多于一个其它终端的屏幕共享会话。除了如上所述的与第二终端120共享图像之外,另一个终端130可以在任何时间进入共享会话。该另一个终端130能够与服务器112通信。由于服务器112保持图像状态,服务器112能够通知该另一个终端130需要哪些平铺块用于形成最新版本的图像。所需要的平铺块然后能够从服务器112被传输至另一个终端130,由此允许另一个终端130呈现最新版本的图像。在不需要第一终端104传 输任何进一步的数据的情况下,这也是可能的。甚至第一终端不知道另一个终端130正在观看图像的情况下,这也是可能的。对图像的更新被传输至另一个终端130的方式与上述的对图像的更新被传输至第二终端120的方式是相同的。网络100中多于两个的终端可以接收平铺块以形成最新版本的图像。第二终端120可以发送它的硬件、带宽和观看能力至服务器112,这样服务器112能够适应性调整(adapt)提供给第二终端120的那些数据。此外,服务器112可以将属性信息传递回到第一终端104,这样第一终端104能够适应性调整要传输的那些数据。例如,在服务器112和第二终端120之间的链路较慢的情况下,与较快链路的情况相比较不频繁地发送新平铺块至第二终端120可能是有益处的。或者在第二终端120具有较慢链路的情况下,与较快链路的情况相比它可以在该操作模式下较不频繁地自然地请求平铺块。类似地,如果第二终端120处理数据的能力相对较低(例如,如果第二终端是便携式设备,其具有的CPU 124具有有限的处理能力,而不是具有大处理能力的固定终端),则按照相应的相对较低的频率发送新平铺块至第二终端120可能是有益处的。发送新平铺块至第二终端120的频率低于在服务器112处从第一终端104接收新平铺块的频率的情况下,在服务器112处接收的一些平铺块则可以被随后接收的平铺块代替,而不被发送至第二终端120。以这种方式,在第二终端120处对最新版本的图像的请求之间已经被覆盖的中间平铺块不被发送至第二终端120。这允许第二终端120以较低的带宽和使用较低的处理能力运行,由此结果是在第二终端120处图像更新速率的优雅降级(graceful degradation)。在有多于一个终端从服务器112接收图像的更新的情况下,不同终端可以根据终端的不同属性按照彼此不同的速率接收更新。以这种方式,每个终端能够以适于相应终端的特定属性的方式接收更新。图像的“移动版本”可以被支持。如果观看对图像的更新的一个或多个终端是移动终端(典型地具有比个人计算机小得多的屏幕),诸如移动电话,则覆盖整个图像但是缩小尺寸以更好地适合移动设备的屏幕的特殊移动平铺块能够在第一终端104处(例如在共享客户端中)被生成并且移动终端可以只接收这个特殊平铺块。这样做的益处在于移动平铺块对于呈现而言较不复杂,并且消耗较少的带宽。更普遍地,在第一终端104处生成的平铺块的尺寸可以被适应性调整以适合第二终端120的特定属性,例如第二终端120的屏幕尺寸。可以是这样,即只有当移动电话上的客户端尝试观看完整图像时,才从第一终端 104传输特殊“移动平铺块”。如果移动电话的用户尝试放大图像,则他们得到“正常的”平铺块表示,由此保证在移动电话的屏幕上显示的图像中不会有质量退化。根据需要,(多个)“移动平铺块”可以在服务器112上被计算。以这种方式,每个移动终端能够接收被裁剪以适合它的屏幕的移动平铺块。当使用“移动平铺块”时,在服务器112上图像状态中的信息据此被更新。图像状态然后可以标识按照不同的分辨率表示最新版本的图像的至少一个平铺块的集合。此外,标识以不同方式(例如按照不同分辨率)表示最新版本的图像的平铺块的不同图像状态可以被提供给不同的观看者。为了重申上面关于屏幕共享的方法而描述的一些要点,通过传输包括对图像做出的任何改变的已编码的用户屏幕的部分(即平铺块),在第一终端104处对于共享者屏幕的改变被传输至服务器112。服务器112保留图像状态,其描述需要哪些平铺块以完整地呈现在共享者屏幕上示出的图像。在服务器112上保留图像状态的益处是多方面的
-在稍后的阶段加入屏幕共享会话的新的观看者可以只请求呈现共享者屏幕上最近更新的图像所需要的平铺块;
-能够实现简单的速率控制。在较慢的链路上的观看者可以较不频繁地请求(和/或接收)图像状态(和平铺块),导致在他们这端上就较慢的更新速率而言的优雅降级。(特别地,在请求之间已经被重写的中间平铺块可以不被发送)。上面描述的方法步骤可以被编码为计算机程序产品,其包括计算机可读指令,由计算机处理装置执行用于实现方法步骤,这对于本领域技术人员来说是清楚的。例如,CPU114可以执行计算机可读指令,由此执行上面关于图2的流程图描述的方法。虽然本发明已经参照优选的实施方式被特别地示出和描述,但是本领域技术人员将能够理解在形式和细节上可以做出多种改变而不脱离如所附权利要求限定的本发明的范围。
权利要求
1.一种在第一终端和第二终端之间共享图像的方法,该方法包括 在服务器处从第一终端接收原始版本的图像; 在服务器处从第一终端接收平铺块,每个平铺块表示图像的至少一部分,并且包括在第一终端处对图像做出的改变; 在服务器处保持图像状态,其标识需要哪些平铺块用于形成最新版本的图像;和 在确定要在第二终端处形成最新版本的图像时,基于图像状态从服务器传输平铺块至第二终端,以形成最新版本的图像。
2.权利要求I的方法,其中从服务器传输至第二终端的平铺块由图像状态标识并且尚未被存储在第二终端处。
3.权利要求I或2的方法,其中该方法被用于在第一终端和第二终端之间的屏幕共享,其中图像在第一终端处的第一显示器上显示,并且对于在第一显示器上显示的图像的改变也在第二终端处的第二显示器上显示。
4.任一前述权利要求的方法,进一步包括在服务器处确定接收到的平铺块中的哪些将被图像状态标识为是形成最新版本的图像所需要的。
5.权利要求I至3中任意一个的方法,进一步包括 在第一终端处确定哪些平铺块要被图像状态标识为是形成最新版本的图像所需要的;和 将图像状态与平铺块一起从第一终端传输至服务器。
6.任一前述权利要求的方法,其中使用压缩算法压缩平铺块。
7.任一前述权利要求的方法,进一步包括合并由图像状态标识的至少两个平铺块以形成合并的平铺块,该合并的平铺块表示由该至少两个平铺块表示的图像的部分。
8.权利要求7的方法,其中当由图像状态标识的平铺块中包含的数据量超过阈值时,该至少两个平铺块被合并。
9.权利要求7的方法,其中当由图像状态标识的平铺块的数目超过阈值时,该至少两个平铺块被合并。
10.权利要求7的方法,其中该至少两个平铺块根据如下各项被合并 在由图像状态标识的平铺块中包含的数据量,和 由图像状态标识的平铺块的数目。
11.权利要求7至10中任意一个的方法,其中由图像状态标识的所有平铺块被合并以形成单个平铺块。
12.任一前述权利要求的方法,其中第二终端确定要在第二终端处形成最新版本的图像,该方法进一步包括在服务器处从第二终端接收要在第二终端处形成最新版本的图像的通知。
13.权利要求I至11中任意一个的方法,其中服务器确定要在第二终端处形成最新版本的图像。
14.权利要求12或13的方法,进一步包括响应于确定要在第二终端处形成图像,从服务器传输图像状态至第二终端。
15.权利要求14的方法,进一步包括 在第二终端处使用图像状态来确定由图像状态标识的平铺块中的哪些尚未存储在第_■终%5处;和 从第二终端传输对于所确定的平铺块要被传输至第二终端的请求至服务器。
16.权利要求12或13的方法,进一步包括,响应于确定要在第二终端处形成图像,在服务器处使用图像状态以确定由图像状态标识的平铺块中的哪些尚未存储在第二终端处,其中服务器保留在第二终端处存储的平铺块的记录。
17.任一前述权利要求的方法,进一步包括依据第二终端的属性确定哪些平铺块从服务器传输至第二终端。
18.权利要求17的方法,进一步包括从第二终端传输属性至服务器。
19.权利要求18的方法,进一步包括从服务器传输属性至第一终端。
20.权利要求17至19中任意一个的方法,其中属性包括在显示图像中使用的第二终端的硬件能力、第二终端的带宽能力和第二终端的软件能力中的至少一个。
21.任一前述权利要求的方法,其中图像状态标识按照不同分辨率表示图像的至少一个平铺块的不同集合。
22.任一前述权利要求的方法,其中图像状态标识的平铺块根据第二终端的屏幕的尺寸被适应性调整。
23.权利要求22的方法,其中第二终端是移动终端,图像状态标识表示整个图像的单个平铺块。
24.任一在前权利要求的方法,其中有多个第二终端。
25.权利要求24的方法,其中依据相应第二终端的属性,不同的平铺块被传输至不同的第二终端。
26.一种在第一终端和第二终端之间共享图像中使用的服务器,该服务器包括 接收装置,用于从第一终端接收原始版本的图像,该接收装置进一步用于从第一终端接收平铺块,每个平铺块表示图像的至少一部分,并且包括在第一终端处对图像做出的改变; 保持装置,用于在服务器处保持图像状态,其标识需要哪些平铺块用于形成最新版本的图像;和 传输装置,用于在确定要在第二终端处形成最新版本的图像时,基于图像状态传输平铺块至第二终端,以形成最新版本的图像。
27.权利要求26的服务器,进一步包括确定装置,用于确定接收到的平铺块中的哪些要被图像状态标识为是形成最新版本的图像所需要的。
28.权利要求26或27的服务器,进一步包括合并装置,用于合并由图像状态标识的至少两个平铺块以形成合并的平铺块,该合并的平铺块表示由该至少两个平铺块表示的图像的部分。
29.权利要求26至28中任意一个的服务器,进一步包括用于确定要在第二终端处形成最新版本的图像的装置。
30.一种网络,包括 根据权利要求26至29中任意一个的服务器; 弟一终端;和 第二终端。
31.权利要求30的网络,其中第一终端进一步包括确定装置,用于确定接收到的平铺块中的哪些要被图像状态标识为是形成最新版本的图像所需要的。
32.权利要求30或31的网络,其中第一终端进一步包括合并装置,用于合并由图像状态标识的至少两个平铺块以形成合并的平铺块,该合并的平铺块表示由该至少两个平铺块表示的图像的部分。
33.一种计算机程序产品,包括计算机可读指令,其由在服务器处的计算机处理装置执行以在第一终端和第二终端之间共享图像,该指令包括指令用于 在服务器处从第一终端接收原始版本的图像; 在服务器处从第一终端接收平铺块,每个平铺块表示图像的至少一部分,并且包括在第一终端处对图像做出的改变; 在服务器处保持图像状态,其标识需要哪些平铺块用于形成最新版本的图像;和 在确定要在第二终端处形成最新版本的图像时,基于图像状态从服务器传输平铺块至第二终端,以形成最新版本的图像。
全文摘要
用于在第一终端和第二终端之间共享图像的方法、服务器、网络和计算机程序产品。在服务器处从第一终端接收原始版本的图像。然后在服务器处从第一终端接收平铺块,每个平铺块表示图像的至少一部分,并且包括在第一终端处对图像做出的改变。在服务器处保持图像状态,其标识需要哪些平铺块以形成最新版本的图像。在确定要在第二终端处形成最新版本的图像时,基于图像状态从服务器传输平铺块到第二终端,以形成最新版本的图像。
文档编号H04N7/26GK102959955SQ201180032928
公开日2013年3月6日 申请日期2011年6月29日 优先权日2010年6月30日
发明者F.布拉希斯, J.林德布隆 申请人:斯凯普公司