首页> 中国专利> 在服务器与客户机终端之间使用缓存管理来发送对象的方法、相应的传输系统、服务器及终端

在服务器与客户机终端之间使用缓存管理来发送对象的方法、相应的传输系统、服务器及终端

摘要

本发明涉及一种经由服务器和至少一个客户机终端的至少一个通信网络来传输名为对象的数据的方法,至少一个高速缓冲存储器被设计成保存所述服务器发送的至少一些所述对象,所述高速缓冲存储器在所述网络中的至少一个所述客户机终端相关联。本发明的特征在于它在所述客户机终端的上游对与所述客户机终端相关联的所述高速缓冲存储器中给出的至少一个对象列表进行管理,以便限制涉及所述客户机终端与所述服务器之间的所述高速缓冲存储器内容的信息交换。

著录项

  • 公开/公告号CN1615629A

    专利类型发明专利

  • 公开/公告日2005-05-11

    原文格式PDF

  • 申请/专利权人 法国电信公司;

    申请/专利号CN02827377.X

  • 发明设计人 奥利维尔·奥博特;

    申请日2002-12-05

  • 分类号H04L29/06;H04L12/18;

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人李玲

  • 地址 法国巴黎

  • 入库时间 2023-12-17 16:08:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-26

    未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20090624 终止日期:20161205 申请日:20021205

    专利权的终止

  • 2009-06-24

    授权

    授权

  • 2005-07-13

    实质审查的生效

    实质审查的生效

  • 2005-05-11

    公开

    公开

说明书

技术领域

本发明的领域是经由通信网络的数据传输。更确切地说,本发明涉及的是交互式显示数据的传输以及相应的缓存管理。

背景技术

目前,在通信网络方面所进行的卓越研发使得用户能以交互方式实时显示例如图像、文本、几何模型或3D场景模型。通常,用户借助一个恰当的终端而与一个远程服务器相连,这个远程服务器将用户执行该显示所需要的全部信息都集中在一个数据库中(应该注意的是,尽管在此情况下使用的是术语“显示”,但是这类信息也可以包括各种类型的数据,尤其是声音数据、分页数据等等)。

这样一来,举例来说,用户可以访问那些使之能在3D虚拟环境中移动的全新应用,举例来说,所述3D虚拟环境可以是虚拟博物馆、地形地貌或古典音乐音乐会。因此在这些应用上下文中,服务器根据用户在场景中的位置而将重建全局场景需要的信息连同场景中进入用户视野(或听觉区域)的不同对象的信息一起发送到客户机。

特别地,本发明适合那些用户为了以后使用而可以经由数据服务器访问的所有类型信息的传输和存储,但是并不仅限于此。

举例来说,为了能够(像上面描述的那样)实时显示场景或视频,用户终端通常与一个保存了终端实时再现场景所需要的所有信息的高速缓存相关联。

这类高速缓存通常存储了“过去”数据,也就是那些终端已经用以再现了场景或图像的数据,但是这些数据根据用户需要而有可能在稍后得到使用。此外,所述高速缓存还保存了“当前”数据,也就是终端当前正在使用的数据,并且所述高速缓存最终有可能还保存了终端近期所必需的“未来”数据,这些“未来”数据源自服务器对用户需要所做的预期。

很容易理解的是,服务器发送的信息量以及在高速缓存中需要管理的信息量都是相当大的,在用户想要显示诸如大型三维场景这类极大的数据项的情况下则更是如此。

目前可以引入几种方法来对那些涉及在客户机与相应服务器之间进行大量数据交换的问题加以解决,其中尤其包括:

-置换算法,该算法可用于在缓存填充率很高的时候选择所要删除的存储数据,以便释放存储空间,

-传输方法,该方法对服务器选择发送到客户机的数据以及这些数据的传输方式进行控制。

目前已知有两种主要方法用于在客户机与服务器之间创建对话并将发送到客户机的信息告知服务器。

特别地,在J.H.P.Chim等人发表于VRST’98第24~34页的“Multi-Resolution Model transmission in Distributed VirtualEnvironments”一文中描述了第一种已知的传输方法。

根据第一种方法,服务器可以在四个连续步骤中发送客户机想要显示的数据:

-在一个步骤,客户机终端将涉及用户在所显示场景中的位置的信息发送到服务器;

-当服务器接收到这个位置信息时,它对用户需要的所有对象进行计算,并且在第二个步骤中发送对象的必要的<O,L0>对的列表,其中O是对象坐标,L0是与之对应的细节级别;

-然后,作为其缓存内容的一个函数,客户机终端使用这个列表来选择与其希望接收的对象相对应的配对,并且在第三个步骤中将其选择结果发送到服务器;

-在第四个步骤,服务器传送客户机终端请求的对象。

这种依照现有技术的技术方法的一个缺陷在于:每次当用户在场景中的位置发生变化的时候,并且由此每次在服务器需要向用户发送一个或几个新对象的时候,在用户通过其高速缓冲存储器访问一个或多个必要对象之前,服务器与客户机终端之间将会需要进行两次以往返移动为形式的完整数据交换。

因此,这类技术方法不适合那些经由等待时间很长的通信网络所进行的数据传输;对这类网络而言,这类技术方法不能实时显示服务器发送的数据。

第二种已知的传输方法是在J.H.P Chim等人发表于Proceedingsof the sixth ACM international conference on Multimedia,1998的第171~180页的“On Caching and Prefetching of Virtual Objects inDistributed Virtual Environments”一文中描述的。

这种方法尤其适合传输渐进编码的对象,根据第二种方法,客户机终端将其在显示场景中的每次移动的信息连同位置信息和涉及其缓存内容的信息一起以<O,L0>对的形式发送到服务器。同样,O表示的是客户机高速缓存中包含的对象的坐标,而L0则将关联于所述对象的细节级别告知服务器。

然后,作为用户在场景中的位置的一个函数,服务器对在视觉方面相关的所有对象进行计算,检查用户高速缓存中是否存在这些对象并且将所有那些丢失的对象全都发送到客户机。

在使用这种方法的情况下,有必要在客户机与服务器之间进行单个往来,以便将显示场景所需要的数据传送到客户机。

然而,这种依照现有技术的技术方法的缺陷在于:它耗费了很多网络资源,尤其是带宽方面的资源。对用户在场景中每一次移动来说,客户机终端将与其缓存内容有关的所有信息(也就是与其缓存中包含的对象相对应的所有<O,L0>对)都传送到服务器。

因此,对大型场景的显示而言,从客户机终端发送到服务器的信息量是非常大的,特别地,对低速通信网络而言,这个问题是很难解决的。

发明内容

本发明的一个目的是克服依照现有技术所带来的缺陷。

更确切地说,本发明的一个目的是提供一种技术方法,用于将实时显示大量数据所需要的信息从服务器发送到客户机终端,从而将服务器与客户机终端之间的传输减至最少。

本发明的另一个目的是实施这类简单并且易于执行的数据传输方法。

本发明的另一个目的是借助一个通信网络来提供这种数据传输技术,其中该技术适合任何类型的网络,特别地,所述技术同样适合等待时间很长的网络以及低速网络。

本发明的另一个目的是通过实施这种数据传输技术来避免服务器到客户机终端的数据传输冗余。

本发明的还有一个目的是提出这样一种数据传输技术,该技术消除或者至少减少了客户机终端发送到服务器的数据请求。

这些目的以及稍后将会清楚的其他目的是借助了一种通过服务器和至少一个客户机终端之间的至少一个通信网络而对名为对象的数据进行传输的方法来实现的,至少一个保存了由所述服务器发送的至少一些对象的高速缓冲存储器与所述网络内部至少一个所述客户机相关联。

根据本发明,管理在与所述客户机终端之一相关联的所述高速缓冲存储器中的至少一个对象列表,以便对涉及所述客户机终端与所述服务器之间的所述高速缓冲存储器内容的信息交换加以限制。

因此,本发明基于一种管理高速缓冲存储器的全新发明方法。本发明尤其依赖于一种全新的有利思想,那就是在数据服务器可以访问的客户机终端的输入端(上游)上维护一个表示与客户机相关联的高速缓存的内容的列表。这样一来,通过使用这种解决方案,服务器可以随时了解客户机高速缓存的内容而不需要在服务器上复制这些内容。因此,本发明提供了这样一种解决方案,就资源尤其是用于服务器的存储器而言,所述解决方案并不昂贵,但是该方案可以在客户机显示场景或一组对象的时候显著减少那些在服务器与客户机之间交换的信息。特别地,对低容量客户机终端或性能有限的通信网络而言,这类解决方案是非常有利的。

目前存在几种已知的几种技术方法,特别地,在专利文献US6,098,064和US5,956,039中描述了这些技术,这些技术方法旨在管理服务器与客户机终端之间的交换场景中的对象列表或文档列表。然而不论是就形式还是功能而言,这些列表与依照本发明的列表都存在着很大差别。

因此,专利文献US6,098,064描述的是一种用于判定计算机高速缓冲存储器中所保存文档(尤其是网页形式)的技术,以此作为用户以后需要这些文档的概率的一个函数。在使用这种技术方法的情况下,通过列举终端高速缓冲存储器中给出的文档或是用户以后可能感兴趣的文档而拟定了一个需要列表。

与依照本发明的列表所不同,上述列表的功能并不是在客户机显示文档时减少服务器与客户机终端之间交换的次数和/或信息量,并且所述列表也无法用于这个目的。

专利文献US5,956,039介绍的是一种用于改进3D场景中的实时导航系统性能的技术方法。这种类型的技术方法包括为场景中的不同对象分配优先级,由此客户机终端首先接收的是具有最高优先级的对象。而这些优先级则是在一个数据库中得到管理的,其中该数据库包含了关于当前场景中的每个对象的信息。

然而,这个数据库不是在客户机终端的输入端(上游)得到管理的,由此不能像本发明那样解决减少服务器与终端之间交换的技术问题。

非常有利的是,对至少一个所述对象来说,每一个所述对象的标识符都与再现所述对象的信息一起保存在所述列表中。

因此,服务器不但可以访问客户机高速缓存中包含的对象列表,而且可以访问客户机再现对象时所在的再现级别。

优选地,关于至少一个所述对象的所述再现信息与所述对象的优化(refinement)级别相关联。

因此,举例来说,服务器可以知道客户机终端是否能以粗糙或细节形式再现对象。

优选地,所述列表包含了用于所述高速缓冲存储器中保存的各个所述对象的<O,L0>对,其中所述<O,L0>对包含了所述对象的所述O标识符以及所述对象的所述再现信息L0

根据本发明的一个有利特征,至少一个名为显示信息的有关所述客户机终端和/或所述客户机终端用户的信息项与每个所述客户机终端的所述列表相关联,由此形成了一个上下文。

对每一个连接到服务器的客户机而言,服务器管理包括关联于客户机的高速缓存状态的典型列表以及显示信息。特别地,这类信息可以表示客户机终端容量及其执行方法的速度。

优选地,所述显示信息属于包括以下信息的群组:

-所述用户的位置信息;

-所述用户的观察方向;

-所述对象的选择参数。

例如,这类选择参数包括一个对象选择阈值和一个观察者视角。对客户机终端的3D场景显示而言,位置信息可以用一个3D点的形式来表示,相对于场景中心而言,这个点的坐标与观察者的位置相对应。而观察方向则可以用3D矢量的形式来表示。

非常有利的是,所述列表由所述服务器或是所述网络的中间部件来进行管理。

例如,该列表可以由介于服务器与客户机之间的代理服务器来管理。然后,服务器可以向所述代理发送请求,以便确定客户机高速缓存的内容状态。由于产生了更多的信息交换,因此这种解决方案的性能很低,但在服务器与代理经由一个高性能网络相连并且有必要“减轻”服务器负载(例如服务器性能很低)的情况下,则有可能关注到这种解决方案。

根据本发明的一个优选实施例,这类方法包括一个预先初始化阶段,其中包括用于每个所述客户机终端的第一传输步骤,在第一传输步骤中将初始显示信息发送到所述服务器,以及一个存储步骤,在存储步骤中所述服务器在所述相应上下文中保存所述初始显示信息。

非常有利的是,所述预先初始化阶段还包括一个第二传输步骤,在第二传输步骤中所述服务器向所述客户机终端进行传输,以便发送一个将要由所述客户机终端再现的粗糙版本的场景。

因此,依照本发明,与根据现有技术的解决方案所不同,在初始化时并未发送所有那些包含了客户机想要显示的对象的数据库,由此大量节省了客户机的存储器和网络带宽。对一个大约100兆比特的数据库来说,我们设想客户机与服务器是通过一个最高速度为500kb/s的ADSL“非对称数字用户线”类型的网络相连的。因此,在初始化客户机与服务器之间连接的时候,将会发送加载客户机上所显示的整个场景所需要的全部基底(base),这至少需要200秒的时间。本发明免除了初始化时进行这种传输的需要,因此特别有利于客户机,因为这意味着客户机能以几乎即时的方式来显示场景的粗糙表示,由此消除了依照现有技术的技术方法所施加的至少200秒即3分钟以上的较长等待时间。

优选地,每一个所述客户机终端都执行了一个将显示信息的至少一些所述项目在预定时间间隔和/或在修改所述显示信息时传送到所述服务器的步骤。

应该指出的是,如果在从最后一次传输以来已经修改了信息,那么选择包含在预定时间间隔传送显示信息会使传输数目减至最小。

根据本发明的第一有利实施例,所述预定时间间隔是由所述客户机终端确定的。

特别地,举例来说,作为客户机用以刷新所显示场景的频率的一个函数,所述预定时间间隔可以由客户机强制确定。

根据本发明的第二有利实施例,所述预定时间间隔取决于所述通信网络的至少一个特性。

特别地,举例来说,这些时间间隔可以取决于网络负载或是网络的吞吐量或等待时间。

优选地,在所述客户机终端实施的所述传送步骤末端,所述方法将会执行在相应的所述上下文内部更新所述显示信息的步骤。

优选地,在这个更新步骤末端,所述服务器将会执行以下步骤:

-确定步骤,作为至少一些所述经过更新的显示信息的函数,所述步骤确定所述客户机终端需要的至少一个标识符对象O以及相应的再现级别L0

-对表示与所述客户机终端相关联的所述高速缓冲存储器的所述列表进行分析,以便在具有所述客户机终端需要的与一个或多个所述标识符对象O相对应并且再现级别为L0的<O,L0>对的情况下,识别所述<O,L0>对,而不是将其存储在所述列表中的步骤;

-在具有所述客户机终端需要的一个或多个再现级别为L0的所述标识符对象O的情况下,将所述标识符对象发送到所述客户机终端的步骤,其中所述标识符对应于所述列表中并未存储的一个或多个所述<O,L0>对;

-对表示与所述客户机终端相关联的所述高速缓冲存储器的所述列表进行更新,由此在具有一个或多个与所述发送的一个或多个对象相对应的所述<O,L0>对的情况下,将所述<O,L0>对添加到客户机终端中的步骤。

确定客户机需要的一个或几个对象的步骤可以是作为客户机上下文中所保存信息的一个函数而由服务器执行的计算的结果。举例来说,这类计算还可以在建立客户机连接之前由与服务器相关联的独立计算实体来完成;然后,判定步骤包括服务器对这个计算结果进行查看,从而识别出一个或多个作为与客户机相关联的显示信息的函数的必要对象。因此,与依照现有技术的技术方法相比,本发明提供了一种将客户机需要的对象计算从客户机终端转移到服务器或与之相关的计算实体的手段。

非常有利的是,所述服务器还可以使用:

-根据至少一个预定概率判据来确定所述客户机终端需要的至少一个再现级别为L0的标识符对象O的步骤;

-预先将具有再现级别L0的所述至少一个标识符对象O发送到所述客户机终端的步骤。

例如,作为观察者先前位移变化的一个函数,服务器对观察者向场景中某个对象移动的概率进行评估,如果这个概率大于预定阈值,则在其实际继续沿同一方向移动的情况下,服务器将会主动发送一个客户机近期需要的对象。

优选地,在接收所述服务器发送的至少一个对象的时候,所述客户机终端将会执行以下步骤:

-如果与所述客户机终端关联的所述高速缓冲存储器的填充率小于预定阈值,则在所述高速缓冲存储器中执行保存所述接收对象的步骤;

-否则执行一个用于评估所述接收对象的相关性判据的步骤;

-如果保存在所述高速缓冲存储器中的至少一个所述对象具有一个值比所述接收对象的所述相关性判据更小的相关性判据,则所述客户机终端执行从所述高速缓冲存储器中删除所述相关性较低的对象的子步骤以及将所述接收对象保存在所述高速缓冲存储器中的子步骤。

-否则,所述客户机终端执行拒绝所述接收对象的子步骤。

举例来说,这种相关性判据可以取决于对象与观察者之间的距离。

根据本发明的一个有利特征,在所述消除子步骤和/或所述拒绝子步骤之后,所述客户机终端向所述服务器发送至少一个信息项,以便更新与所述客户机终端相关联的所述高速缓冲存储器,由此所述服务器从表示所述高速缓冲存储器的所述列表中消除至少一个与所述删除子步骤中删除的所述对象和/或在所述传送步骤中由所述服务器发送的对象相对应的<O,L0>对,而没有将其保存在所述高速缓冲存储器中。

优选地,至少一些所述对象包含至少一个索引,由此能够有选择地发送一部分始于所述相关索引的所述对象。

特别地,举例来说,这些对象可以是下列类型的数据之一:

-2D图像;

-网格;

-纹理;

-声音;

-几何模型;

-3D场景;

-视频数据;

-分页数据。

很明显,这个列表并非穷举而仅仅是用于说明目的。

本发明还涉及一种用于通过服务器和至少一个客户机终端之间的至少一个通信网络来传送名为对象的数据的系统,至少一个高速缓冲存储器被设计成保存所述服务器发送的至少一些所述对象,所述高速缓冲存储器则与所述网络内部的至少一个所述客户机终端相关联。

根据本发明,这类系统可以包括处于所述客户机终端的输入端的管理装置,用于管理与在与所述客户机终端之一相关联的所述高速缓冲存储器中给出的至少一个对象列表,从而限制那些涉及所述客户机终端与所述服务器之间的所述高速缓冲存储器内容的信息交换。

本发明还涉及一种用于名为对象的数据的数据服务器,所述服务器经由至少一个通信网络而与至少一个客户机终端相连,至少一个高速缓冲存储器被用于保存所述服务器发送的至少一些所述对象,所述服务器与所述网络内部的至少一个所述客户机终端相关联。这类服务器包括对在关联于至少一个所述客户机终端的所述高速缓存中给出的至少一个对象列表进行管理的装置,以便限制与所述相关客户机终端所进行的信息交换,其中所述信息对应于与所述高速缓冲存储器的内容相关的信息。

本发明还涉及一种用于如上所述的数据服务器的客户机终端,包括将至少一个更新信息项发送到所述服务器,以使所述服务器更新关联于所述终端的表示所述高速缓冲存储器的所述列表的装置。

附图说明

在阅读了以下关于优选实施例的描述以及附图之后,可以更清楚地了解本发明的其他特征和优点,其中所述优选实施例是作为示范性而不是限制性实例给出的,并且其中:

-图1介绍的是适合本发明的实施方式的客户机-服务器架构的框图;

-图2描述的是依照本发明而在服务器上添加对象列表管理模块而被实现的图1的架构;

-图3描述的是依照本发明使用的客户机-服务器对话的一个实例;

-图4a到4c显示的是处于由几何小波编码的3D模型上下文内部的本发明的例示实施例;

-图5描述的是用于使用非渐进细节级别的对象的本发明实施例的第二实例;

-图6显示的是依照本发明而由服务器在显示阶段使用的不同步骤的框图;

-图7描述的是依照本发明而在初始阶段使用的不同步骤;

-图8显示的是依照本发明而在客户机终端接收对象的过程中使用的不同步骤的框图。

具体实施方式

本发明的一般原理基于在客户机终端(上游)的输入端上对与终端相关联的高速缓冲存储器中给出的对象列表进行管理,以便减少客户机终端将对象请求所定址的服务器与客户机终端自身之间的信息交换。

本文档的剩余部分描述的是本发明的一个特殊应用,其中通过通信网络来进行渐进数据传输,以便由客户机实时显示场景(应该记住的是,本发明不仅限于对象显示,而且还可用于侦听声音对象等等)。

现在我们将参考图1来描述一个可以在本发明的上下文内部使用的例示网络架构。

这种类型的网络架构是一个客户机-服务器架构。高速缓存1与客户机2相关联:这个高速缓存1能够保存那些由服务器3经由通信网络3发送的数据。

在高速缓存1中保存的数据既可以是“当前”数据(也就是在客户机终端2中使用的数据),也可以是“未来”数据(也就是计划稍后使用的数据)或是“过去”数据(也就是先前用过而现在则至少临时舍弃的数据)。

高速缓存1既可以集成在客户机终端2中,也可以仅仅与客户机终端2相关联,同时仍旧处于网络中的另一点;举例来说,高速缓存1可以集成在图1并未显示的服务器3与客户机2之间的中间服务器上,尤其是代理类型的服务器。在本发明的一个变体实施例中,高速缓存1可以由若干个客户机2共享。为了简化起见,本文档的剩余部分仅限于描述本发明的特定实施例,其中将高速缓存1集成在客户机终端2中。

作为屏幕上所要显示的对象的可视性的一个函数,客户机终端2对选择这些对象所需要的一组信息进行管理,其中举例来说,所述信息可以是客户机在所显示场景中的位置、观测方法以及所要显示或再现的对象的选择参数,例如对象选择阈值、视角等等。

服务器3对聚合了客户机2想要显示的一组对象的数据库5进行管理。优选地,在数据库5的内部,这些对象是由服务器3和客户机2都能识别的单个标识符来引用的。举例来说,这些对象可以是渐进传输的3D网格、声音或其他类型的原始数据。数据库5还可以包括客户机终端2再现场景所需要的具有不同特性的若干个对象;举例来说,如果客户机2想要显示的是一场古典音乐音乐会,那么数据库5可以包括以图形方式再现场景的3D对象以及再现乐器所产生的声音的3D声音。

根据本发明的一个优选实施例,如图2所示,服务器3还对涉及客户机2的高速缓存1的列表6进行管理。根据本发明的一个变体,这个列表6是在客户机2的输入端而不是服务器3上得到管理的,举例来说,所述列表是在图2并未显示的客户机2与服务器3中间的代理服务器中得到管理的。为了简化起见,我们在本文档的剩余部分只描述本发明的特定实施例,其中列表6由服务器3管理,但是本领域技术人员很容易从本描述中推导出当在服务器3外部即客户机终端2的上游管理列表6的情况下所实施的本发明实施例。

列表6是由一组<O,L0>对构成的,其中O是对象标识符,L0则对应于所设想的对象再现级别,并且其中将所述<O,L0>对传送到客户机终端2。如参考图4和5而在文档剩余部分中所描述的那样,L0可以依照所用对象O的类型而采用若干种不同的形式。

服务器3还可以在图2并未显示的客户机上下文内部管理一组关联于列表6的客户机终端和/或客户机2的信息。例如,这个信息包括客户机在与所显示场景相关联的基底中的位置,客户机的观察方向以及所显示对象的选择参数(尤其是选择阈值和场景中的对象的视角)。

在本发明的上下文中,可以使用图2中给出的架构来将一些与显示数据选择有关的计算从客户机终端2转移到服务器3,由此有利减少了客户机2与服务器3之间的交换。在说明书剩余部分将通过参考图3更详细地描述本发明的这个方面。

参考图7,在图2中的架构上下文中,描述在服务器3与客户机2之间的对话初始化阶段中包含的不同步骤。因此,一些数据是在将客户机2与服务器3相连的时候传送的,由此初始化所述服务器3。

在步骤索引71,客户机终端2将诸如客户机在所显示场景中的位置、其方向、视角或对象选择阈值之类的初始显示信息传送到服务器3(尤其是以此作为客户机2想要获取的细节级别的一个函数)。应该注意的是,如本文档的剩余部分所述,作为所设想对象类型的一个函数,选择阈值的类型可能会发生变化。

在存储步骤72,服务器3将初始接收的显示信息保存在与客户机终端2相关联的上下文中。

服务器3于是可以在名为映射的操作中向客户机终端2发送(73)所再现场景的一个粗糙版本。这类映射与数据库5的一个基础版本相对应,并且能使客户机2在开始连接的时候显示至少一个将要显示在其终端上的场景的粗糙视图。

特别地,当客户机2接收到这个映射时,它可以在高速缓存1内部创建保存那些从服务器3接收的数据所需要的不同子高速缓存。

根据本发明,在这里确定将所有那些从服务器3接收的相同类型的对象都保存在子高速缓存中。如果所显示场景中的所有对象都具有相同特性,则没有必要在高速缓存1内部创建子高速缓存。在特定实施例中,客户机2在其终端上显示的是地形,而较为优选的是,在高速缓存1内部创建对那些与地域几何形状相关的数据加以保存的第一子高速缓存,以及保存地域纹理的第二子高速缓存。

在这类初始化阶段之后,客户机2与服务器3可以发送和接收那些来自基底5的数据,以便由客户机2显示所设想的场景。

我们现在参考图3和6来描述在显示客户机终端2再现场景的过程中所进行的客户机-服务器对话。

这种显示阶段的一般原理基于客户机2将信息发送到服务器3,而服务器3将所述信息保存在与客户机2相关联的上下文中,然后则使用该信息来向客户机2发送继续显示场景所需要的数据或对象。

这个信息具有不同的特性,特别地,所述信息可以由客户机2以不同的频率来加以修改。这样一来,由于客户机2或者更确切的说,与客户机相关联的观察者是在场景中四处移动和浏览场景的,因此只要显示了场景,则要对涉及所再现场景中的客户机位置及其观测方向的信息进行修改。

在图3中用实线显示的一个或多个箭头表示了将这个信息从客户机2传送到服务器3的过程。这个过程是在一个可以由客户机2定义(例如每隔5秒)的频率上完成的,或者所述频率作为网络4与终端2的容量的一个函数而被确定(举例来说,对高速网络而言,可以将发送显示信息的频率固定在2秒,而对低速网络而言则是6秒)。非常有利的是,这个信息的传输(a)同样依赖于一个事件相关判据,以限制客户机2与服务器3之间的交换(a)数目:因此,除非在最后一次向服务器3发送(a)了位置和观测方向信息之后修改了该信息,否则不会进行位置及观测方向信息的传输(a)。

举例来说,如果客户机2在最后一次向服务器3发送(a)了位置和观测方向信息之后在场景中进行了移动,那么将会在5秒之后再次发送那些经过修改的信息(如果将传输频率固定在5秒)。

根据本发明,在进行发送(a)的时候,客户机2不会等待来自服务器3的响应,因此,这个传输是以无连接模式(例如UDP(用户数据报协议)类型)进行的。

如图6所示,在接收61到客户机2发送(a)的方向和位置信息时,服务器3更新62与客户机2相关联的上下文,从而将新的接收位置和方向信息存储在所述上下文中。

而诸如所发送对象的选择参数或是高速缓存1的更新信息之类的其它信息则最好依照一个事件相关判据即所述信息的修改来进行发送。在图3中,这类从客户机2到服务器3的传输是由虚线形式显示的箭头(b)来表示的。在接收时,服务器3将这个信息保存在列表6(用于缓存更新信息)中,而更为普遍的则是将其保存在与客户机2相关联的上下文中。

因此,对用于客户机2的高速缓存1的更新信息来说,在每次发生下列情况的时候,所述信息都是以与高速缓存1(或是高速缓存1的子高速缓存之一)中所给出对象相对应的<O,L0>对列表的形式传送到服务器3的:

-客户机终端2从高速缓存1中删除一个或几个对象,以便保存服务器3发送的新对象;或者

-当客户机终端2拒绝服务器3发送的一个或几个对象的时候。

在下文中将结合图8来对这些方面进行更详细的描述,其中图8描述的是客户机终端2在接收了服务器3发送的对象之后实施的方法。

O表示的是场景中的对象的标识符,L0则是关于对象O的再现细节级别的信息。很明显,L0的结构取决于对象类型O和用于对相关细节级别进行编码的方法。因此,如下文中参考图4和5所述,L0可以是一个表示细节级别的值(举例来说,如果本发明使用了一种HOLD“分层的细节级别”技术),或是一组对对象O的几何优化进行编码的典型值。

同样,对象选择参数(例如对象选择阈值,视角或任何其它用于修改对象选择的信息)是在值被修改的时候发送的。举例来说,在这里可以设想客户机2能在显示阶段决定对在初始化阶段中定义的选择阈值进行修改,以便降低这个阈值,从而给出一个更细致的场景再现。

应该记得的是,这类选择阈值可以通过多种不同方式来定义,特别地,它可以通过度数、投影像素、大小等参数而被评估。因此,当在客户机终端2的屏幕上显示了对象之后,服务器3可以只将虚拟观察者在1°或更大角度上看到的对象发送到客户机2。举例来说,对一个与小波编码的网格相关联的对象而言,所述选择阈值可以是固定的,由此它只选择那些引入了大于或等于2°的网格失真的小波系数。如果所设想的对象是一个声音,那么选择阈值可以取决于这个声音的频率或是持续时间。选择阈值和所有其他选择参数都可以通过任何其他方法来定义,以使服务器3能够选择将要发送到客户机2的相关对象。

根据与客户机2相关联的上下文中所包含的信息(位置信息、观测方向信息、选择参数、关于高速缓存1的内容的信息),服务器3将那些在视觉上相关的对象或数据传送到客户机2。这个传送是由图3中显示的连续灰色箭头(c)来表示的。对视觉相关对象的判定可以源于服务器3或是网络4中另一个实体执行的计算。此外还可以在服务器3与客户机2之间建立连接之前对所述判定进行计算,并且将其存储在网络内部,例如将其存入服务器3。

因此,在图6显示的特定实施例中,作为客户机2的上下文中包含的一些或全部显示信息的一个函数(例如作为客户机2的位置和观测方向信息以及选择参数的一个函数),服务器3在恰当的再现级别确定(63)客户机终端2需要的一个或多个对象。

然后,服务器3在恰当的优化级别L0对与客户机终端2的高速缓存1相关联的列表6进行分析(64),以便确定在客户机2的高速缓存1中是否保存了客户机2所需要的一个或多个对象,其中所述列表是作为最近接收的更新数据的一个函数而被更新的。

如果没有的话,则服务器3将这个或这些对象发送(65)到客户机终端2。

根据本发明,如果服务器预期那些客户机2仍不需要的对象会在不久的将来变得必不可少,则可以执行一种预测方法以使服务器3能够发送(c)所述对象。举例来说,如果服务器3确定客户机2沿同一方向移动了若干次,那么它可以向这个客户机2发送(C)一个尚未关联客户机2的对象,其中如果客户机2继续沿相同方向移动,则所述对象不久将会进入客户机视野。

在执行这个传输(c)的时候,设想在高速缓存1中保存了发送到客户机的所有数据,则服务器3以<O,L0>对的形式添加那些发送(c)到客户机2的数据,从而对关联于客户机2的列表6进行修改。在图6中,这个更新步骤是由步骤索引66来描述的。这类针对列表6所进行的修改有利地减少了传输冗余。所述修改可以在高速缓存1中并未保存由服务器3发送(c)到客户机2的一些数据的时候进行,例如在出现了涉及网络的传输差错的情况下,而这种情况将会导致高速缓存1的状态与列表6之间丧失一致性。非常有利的是,本发明包含了一种克服这个问题的方法。而高速缓存1的状态与列表6之间的一致性则是如稍后结合图8更详细描述的那样得到维护的。

现在我们将参考图4A到4C来描述一个由客户机2执行的几何小波编码的三维模型的示例显示。应该记得的是,在这里使用了“小波”编码方法来表示一个作为连续细节添加到基底网格中的网格。特别地,在M.Lounsbery、T.DeRose和J.Warren发表的“MultiresolutionAnalysis for Surfaces of Arbitrary Topological Type”(ACMTransactionon on Graphics第16卷第1号第34~73页,1997年1月)一文中对这种技术的一般原理进行了描述。

如上所述,在客户机-服务器对话的初始化阶段之后,服务器3将关于名为基底5的映射的一个粗糙版本发送到客户机终端2。举例来说,对由一组3D模型(如图4A到4C所示)构成的基底5而言,这个映射对应的是一组以围绕这些对象的方框41A和42A的位置和大小的形式而向客户机终端2告知基底5的不同对象的位置和大小的值。

然后,根据这些对象的可视性(也就是作为它们是否部分或全部处于观察者视野之中以及与观察者的距离等等的一个函数),服务器3将这些对象的基底网格41B、42B发送到客户机2。之后,客户机2使用这些基底网格41B、42B来构造所需要的不同子高速缓存,以便保存那些来自服务器3的数据,并且创建一个相应的<O,L0>对的初始列表。

在图4A到4C的实例中,设想每一个基底网格41B、42B都包含了n个表面。因此,由服务器3管理的用于客户机2的列表6将会包括一组<O,<N1,...,Nn>>对,其中O表示对象标识符,Ni表示的是处于高速缓存1中的用于基底网格41B、42B的表面i的小波系数。在发送基底网格41B、42时,用于i[l,n]的Ni值全都初始化为零。

应该注意的是,如果预先为每个表面确定了用于小波系数的排序次序,那么对服务器3而言,要精确判定存在于客户机2的高速缓存1中的小波系数,则需要准确了解用于i∈[l,n]的Ni值。因此,如果客户机2在图3的步骤(b)中向服务器3告知它具有用于网格41B的第8个表面的30个系数,那么服务器3将会开始发送与网格41B的第8个表面相关联的系数,并且还会发送从第31个系数开始的关联于客户机2的系数。应该记得的是,相关参数的选择顾及了客户机上下文中存储的显示信息,例如位置信息、观测方向信息和选择参数。

优选地,对用于每个网格表面的系数进行排序的顺序将会在其到达客户机终端2的时候得到保持。

客户机终端2可以从服务器发送的用于基底网格41B,41C的每个可视表面的系数开始而在场景中重建对象的细节显示41C、42C。

我们现在参考图5来为使用了非渐进细节级别的对象给出本发明的第二例示实施例。与使用小波编码技术的先前实例所不同,我们现在给出的是使用四个连续细节级别索引51到54来表示一个对象的情况,而在先前实例中可以将对象或部分对象作为用户视角的函数来加以优化。

与图4A~4C中的实例一样,服务器3是通过将数据库5的映射传送到客户机2而开始运作的,其中客户机2将会使用所述映射来了解应该显示的数据。然后,对服务器3设想可能会被看到的基底5中的每个对象而言,服务器3将所述对象的最低细节级别54(也就是对象的最粗糙版本)发送到客户机2。然后,在显示过程中,服务器3将根据客户机2在场景中的位置来发送更高细节级别53到51。因此,如果客户机2逐渐向图5中的对象移动,那么作为观察者到对象的距离的一个函数,服务器3将会逐渐发送细节级别53,然后是52,再然后是51。

对与对象O相关联的优化级别L0所进行的编码依赖于所使用的应用强加的约束条件,尤其是是否有必要按照相关细节级别来传送对象。

因此,如果服务器3必须按照对象优化级别的顺序来向客户机2发送对象,那么将会确定将L0设定成与用于对象O的高速缓存1中存在的最高细节级别的值相等。如果高速缓存1包含了用于对象O的优化级别索引54(优化级别0)和53(优化级别1),那么L0将会等于值“1”。然后,列表6将会包含<O,″1″>对,并且服务器3将会推导出高速缓存1包含了用于对象O的优化级别0和1。随后,如果需要的话,所述服务器只向客户机2发送紧接着的更高细节级别,也就是与优化级别“2”相对应的级别索引52。

如果没有必要按照优化级别的顺序来进行从服务器3到客户机2的传输,则L0将会表示客户机高速缓存1中为对象O存储的所有优化级别。举例来说,在这里可以选择在若干个比特上对L0进行编码,这样一来,对在L0中的位置与客户机2的高速缓存1中存储的细节级别相对应的比特来说,所述比特与值1是相等的。在图5的实例中,如果客户机2的高速缓存1包含了分别对应于显示索引54和52的优化级别“0”和“2”,那么L0将会等于0101。然后,服务器3将会知道它可以根据用户在场景中的位置(尤其是它与所设想对象的距离及其观察方向)来发送分别对应于显示索引53和51的细节级别1和3。

同样,在设想一个与八个连续细节级别相关联的对象时,如果客户机2的高速缓存1包含了关于这个对象的细节级别1、2、4和7,那么L0的值将会是“01001011”。然后,服务器3将会知道它可以基于相关上下文中保存的显示信息来向客户机2发送级别3、5、6和8。

应该注意的是,这类L0编码并不局限于由多个表面构成的3D对象,而是可以应用于由非渐进细节级别构成的任何类型的数据,例如多解析度纹理。

我们现在将对本发明的第三例示实施例进行简要描述,该实施例涉及的是声音或视频类型的原始数据的情况,也可以是分页数据(库存管理、人事管理等等)的情况。

举例来说,对原始声音类型的数据而言,服务器3未必需要发送映射。它还可以对应于服务器3及时传送一组数据,例如向客户机2告知应该在30秒内播放或重现小提琴的声音。例如对这类声音对象而言,再现信息L0对应于所传输数据的百分比。因此,举例来说,L0的值能使服务器3知道在客户机2的高速缓存1中保存了持续长达2分30秒的前15秒的声音。

举例来说,对分页数据而言,服务器3在初始化过程中发送的映射与数据库5中用于每个数据的页面总数相对应。在这种情况下,再现信息L0可以是采用<N,N0,...,Nn>形式的可变数据,其中N表示的是涉及这个对象的已知页面数目(也就是客户机高速缓存中保存的用于这个对象的页面数目),而Ni表示的是第i个页面的名称。

我们现在参考图8来描述当客户机终端2接收到81到服务器3在图3的传输索引(c)中发送的一个或几个对象OR的时候所实施的不同步骤。为了简化起见,我们只描述服务器3向客户机2发送单个对象OR的情况。然而从这种情况中很容易导出在客户机2和/或高速缓存1接收若干个对象OR的情况下所使用的技术。

在步骤索引82,客户机终端检查与之关联的高速缓存1的填充率。如果没有将高速缓存1集成到终端2中,则这个检查是由负责管理高速缓存1的实体执行的,例如由一个集成了高速缓存1的代理服务器来执行。

如果高速缓存1的填充率小于预定填充阈值,并且由此表明可以在高速缓存1中保存一个或几个新对象,则将接收到的对象OR存储(83)在客户机2的高速缓存1中。

否则,在现有状态中不能将来源于服务器3的对象OR保存在高速缓存1中。然后则判定(84)高速缓存1中是否存在一个对象OS,其中与用于观察者的接收对象OR相比,所述对象在视觉方面的相关性较小。举例来说,这种类型的对象OS可以是因为近期位移或是客户机2的观察方向的改变而处于客户机2视野之外的对象。

如果存在一个这种相关性较小的对象OS,则从高速缓存1中将其删除(86),由此可以将来自服务器3的新对象OR存入OS在高速缓存1的位置。

然后,客户机终端2通过发送(87)信息来更新高速缓存1的状态,从而向服务器3告知已经从高速缓存1中删除了对象OS并且已经相应保存了对象OR

另一方面,如果高速缓存1保存的所有对象在视觉上都比来源于服务器3的对象OR更为相关,那么负责管理高速缓存1的实体(例如客户机终端2)将会拒绝这个对象OR

然后,客户机终端2发送一个用于高速缓存1的状态的更新信息,以便向服务器3告知它不能将对象OR保存在高速缓存1中。

服务器3还使用这个更新信息来保持高速缓存1的状态以及表示其内容一致的列表6。特别地,在接收了这个更新信息之后,服务器3可以对其发送到客户机2的所有对象进行检查,由此在客户机2和/或高速缓存1无错接收对象的情况下其添加到列表6中的对象进行检查。特别地,由此可以对那些可能涉及网络4的故障的传输问题进行追踪。

因此,服务器3对从客户机2和列表6接收的更新信息进行比较,以便检查它们是否一致,并且在合适的情况下还对作为接收到的更新信息的一个函数的列表进行更新。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号