CN101501664A - 用于传送网页数据的系统和方法 - Google Patents

用于传送网页数据的系统和方法 Download PDF

Info

Publication number
CN101501664A
CN101501664A CNA200680009406XA CN200680009406A CN101501664A CN 101501664 A CN101501664 A CN 101501664A CN A200680009406X A CNA200680009406X A CN A200680009406XA CN 200680009406 A CN200680009406 A CN 200680009406A CN 101501664 A CN101501664 A CN 101501664A
Authority
CN
China
Prior art keywords
image
data
resolution
client devices
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA200680009406XA
Other languages
English (en)
Inventor
B·阿格拉亚阿卡斯
J·沃克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101501664A publication Critical patent/CN101501664A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

公开了一种系统和方法,包括由代理服务器访问因特网站点;将来自因特网站点的图像数据转换成多分辨率表示;以及将所述多分辨率表示的图像数据发送给客户机设备。

Description

用于传送网页数据的系统和方法
背景技术
长期以来都认为在诸如个人数字助理(PDA)、蜂窝电话或无线终端等小设备上浏览Web是有用的。在这类设备上实现web浏览所涉及的难点一般不会由于计算能力的限制而出现。相反,这些难点源于以下两个原因。首先,显示器通常是非常小的,从而使得它们难以显示特别地为较大的显示器或窗口(例如,通常至少是800×200或1024×768像素)设计的网页。其次,小无线设备通常以低带宽连接到广域网,从而使得传统的web浏览由于需要在查看HTML(超文本标记语言)页面之前完整地下载它们而变成一件麻烦的事情。
存在对这一问题的某些部分解决方案。例如,一个计算机硬件制造商设计了一种用于基于BREW(用于无线的二进制运行时环境)无线地将内容传送到小设备的新平台。然而,这种解决方案要求内容供应商同意使用BREW技术来提供其内容,或者要求第三方内容聚集者使用专用于该内容或应用程序的格式来连续地将现有内容重新打包,从而再次使用BREW技术来供应结果。
另一种部分解决方案是结合Opera移动加速器(Opera Mobile Accelerator)和Small-Screen RenderingTM(小屏幕呈现)的Opera For Mobile(用于移动的Opera)。这些技术基于常用的Web浏览器—Opera,该浏览器被移植到移动无线平台。Small-Screen RenderingTM试图动态地重新格式化网页以适合移动终端显示器的水平尺寸。Opera移动加速器使用代理服务器来按需以其原始HTML形式访问网页,然后压缩该HTML并将压缩版本转发到移动终端。根据Opera,Opera移动加速器将网页的大小减小了约50%-70%,但是它具有将其减小多达90%的能力。有了这一概念之后,数据能被更快地检索且网页可被更迅速地显示。一般而言,速度上的提高取决于正在访问的站点类型。这两种技术都提出了对与Web浏览有关的移动终端显示器大小和带宽的问题的部分解决方案。然而,本领域中需要一种用于向具有有限带宽或其它通信和/或处理能力限制的数字设备提供网页数据的经改进的系统和方法。
发明公开
根据一方面,本发明公开了一种方法,可包括:由代理服务器访问因特网站点;将来自因特网站点的图像数据转换成多分辨率表示;以及将多分辨率表示的图像数据发送到客户机设备。较佳地,该方法还包括
由客户机设备导航网页。较佳地,该导航步骤包括(a)由代理服务器导航因特网站点图像数据;以及(b)由客户机设备导航多分辨率图像数据,其中导航步骤(a)和导航步骤(b)基本同时发生。
较佳地,导航包括在代理服务器处储存至少基本全部网页的多分辨率图像数据;以及由客户机设备导航所储存的多分辨率图像数据。较佳地,转换步骤包括:如客户机设备的导航所需地连续转换因特网站点图像数据。较佳地,转换步骤包括:在客户机设备导航需要所选图像数据之前由代理服务器预转换来自因特网站点的所选图像数据;以及在代理服务器处储存预转换的图像数据。
较佳地,该方法还包括如客户机设备导航所需地将所储存的图像数据发送给客户机设备。较佳地,该方法还包括确保在将所储存的预转换的图像数据发送到客户机设备之前它不会过时。较佳地,确保步骤包括将预转换的图像数据的时间戳和校验和之一与源自因特网站点的对应图像数据的时间戳和校验和中相应的一个进行比较。较佳地,预转换步骤包括由代理服务器转换至少一个网页的图像数据;以及在代理服务器处储存至少一个网页的经转换的图像数据。
较佳地,该方法还包括允许客户机设备和因特网站点之间的双向交互式通信。较佳地,交互式通信包括:将导航命令从客户机设备发送到代理服务器。较佳地,该方法还包括由代理服务器仿真用于客户机设备的动态因特网图形。较佳地,仿真步骤包括仿真以下的至少一个:动态HTML(超文本标记语言);以及小程序。较佳地,导航包括:在客户机设备处选择用于查看网页的至少一部分的分辨率水平。
较佳地,导航包括选择网页的一个区域以在客户机设备上显示。较佳地,导航还包括选择用于查看网页的该区域的分辨率。较佳地,导航步骤包括选择网页的多个部分以在客户机设备处查看。较佳地,导航步骤还包括选择用于查看多个网页部分的多个相应的分辨率。较佳地,导航多分辨率图像数据包括扫视多分辨率图像数据。较佳地,导航多分辨率图像数据包括:在多分辨率图像数据上放大。
根据另一方面,本发明可提供一种装置,包括:客户机设备;以及与该客户机设备和因特网站点通信并担当这两者之间的中介的代理服务器,其中代理服务器可用于将来自因特网站点的图像数据转换成多分辨率可视数据格式。较佳地,多分辨率可视数据格式是JPEG2000。较佳地,客户机设备是蜂窝电话,且其中蜂窝电话包括:用于导航多分辨率可视数据格式的图像数据的至少一个机制。较佳地,该机制是触摸垫并且该触摸垫允许扫视多分辨率可视数据格式的图像数据。较佳地,该机制允许在多分辨率可视数据格式的图像数据上放大。较佳地,用于缩放的机制包括可由客户机设备的用户旋转的滚轮。较佳地,客户机设备是由以下各项构成的组中的一个:蜂窝电话、PDA(个人数字助理)、笔记本计算机、台式计算机、平板计算机、以及电视机。
当结合附图考虑本发明的较佳实施例的描述时,本领域的技术人员将清楚其它方面、特征和优点等。
附图简述
为说明本发明的各方面起见,附图中示出了目前较佳的形式,然而可以理解,本发明不限于所示的精确排列和手段。
图1是根据本发明的一个或多个实施例的包括代理服务器和客户机设备的通信系统的框图;
图2A是根据本发明的一个或多个实施例定制的客户机设备的正视图,该设备可以是蜂窝电话;
图2B是根据本发明的一个或多个实施例定制的客户机设备的背面的正视图,该设备可以是蜂窝电话;
图2C是根据本发明的一个或多个实施例定制的客户机设备的背面的正视图,该设备可以是蜂窝电话;
图3是根据本发明的一个或多个实施例的用于由客户机设备导航图像数据的方法的流程图;
图4是根据本发明的一个或多个实施例的在客户机设备上看到的网页栏的视图;
图5A是根据本发明的一个或多个实施例的在以每秒20千比特的速率加载约2秒之后图4的网页的视图;
图5B是根据本发明的一个或多个实施例的在以每秒20千比特的速率加载约10秒之后图4的网页的视图;
图6A是根据本发明的一个或多个实施例的在以每秒20千比特加载数据约2秒之后图4的网页的顶部部分的视图;
图6B是根据本发明的一个或多个实施例的在以每秒20千比特加载数据约10秒之后图4的网页的顶部部分的视图;
图7是根据本发明的一个或多个实施例的在捕捉了图6的视图之后不久捕捉的图4的网页的一部分的放大视图;
图8A和8B分别是根据本发明的一个或多个实施例的图4的网页的一部分的纵向和横向视图;以及
图9是适用于本发明的一个或多个实施例的计算机系统的框图。
实现本发明的最佳方式
图1是根据本发明的一个或多个实施例的包括代理服务器150和客户机设备230的通信系统140的框图。通信系统140可包括因特网180、客户机设备230以及代理服务器150,代理服务器150进而包括高速缓存160。因特网180可以被解释为包括允许代理服务器150以常规方式浏览因特网所需的通信链路和计算及通信硬件。尽管较佳地在代理服务器150和因特网180之间使用高带宽连接,但是诸如本领域中已知的任何通信链路可用于将代理服务器150连接到因特网180。一般而言,代理服务器150可以连接到作为整体担当到因特网的网关的因特网服务供应商(ISP)(未示出)。在此处的一个或多个实施例中,因特网180旨在包括这一因特网服务供应商。
代理服务器150可以是被适当地配置成与因特网通信、并处理从其中下载的包括图像数据在内的数据的个人计算机或其它计算设备。代理服务器150较佳地能够向因特网180发送命令并从其中接收图像数据。
代理服务器150可包括用于储存包括图像数据在内的数据以允许对这些数据的快速且容易访问的高速缓存160。高速缓存160可诸如通过位于与代理服务器150相同的物理外壳内而在物理上被结合在服务器150中。或者,高速缓存160可以与代理服务器150分开放置,但是代理服务器160可访问高速缓存160。
客户机设备230较佳地是能够与代理服务器150进行通信的便携式计算设备。然而,客户机设备可以是诸如台式计算机等较大的非便携式计算设备。客户机设备230可以是蜂窝电话、个人数字助理(PDA)、笔记本计算机、台式计算机、平板计算机和电视机中的一种。然而,客户机设备230不限于前述各项之一。较佳地,如果客户机设备230是电视机,则该电视机能够从诸如但不限于代理服务器150的外部设备接收多分辨率图像数据并向其发送导航命令。客户机设备230也可包括数据存储能力,包括易失性和/或非易失性存储,用于储存从代理服务器150接收到的多分辨率图像数据。这一数据存储可包括但不限于:RAM(随机存取存储器)、ROM(只读存储器)、硬盘驱动器、CD-ROM驱动器、读写CD以及磁泡存储器。在需要时,客户机设备230的数据存储可包括高速缓冲存储器。
代理服务器150可用作因特网180和客户机设备230之间的中介以允许客户机设备230能够在将来自因特网180的图像数据转换成多分辨率格式之后浏览这些图像数据,如结合图2更详细讨论的。
图2A是根据本发明的一个或多个实施例定制的客户机设备230的正视图,该设备可以是蜂窝电话。图2B是图2A的客户机设备230的背面的正视图。并且图2C是图2A的客户机设备的背面的正视图。
在图2的图示所覆盖的一个或多个实施例中,客户机设备230是特别地被配置成浏览多分辨率图像数据的蜂窝电话或PDA。客户机设备240可包括主体232、显示器234、天线236、触摸垫238、操纵杆240和/或滚轮242。在图2中,滚轮242被示为从客户机设备230的主体232突出某一程度。该凸出仅为说明性目的示出。滚轮或操纵轮242只需是客户机设备240的用户可达到的。由此,它可从主体232非常轻微地突出。或者,可提供主体232的侧面中嵌有操纵轮242的凹槽(未示出),由此使得操纵轮242不会突出超过客户机设备230的主体232的侧面的直边部分。
在一个或多个实施例中,显示器234可位于客户机设备230的正面(图2A)。然而,在其它实施例中,显示器234可以位于客户机设备230上的任何地方。触摸垫238可以位于客户机设备230的背后(图2B),并可用于扫视从代理服务器150接收到的图像数据。然而,作为替代,触摸垫238可以位于客户机设备230的任一表面上。或者,触摸垫238可以用于缩放图像数据。在一个或多个其它实施例中,触摸垫238可用于扫视和缩放图像数据。
客户机设备230的用户可通过沿着触摸垫238的表面移动手指来扫视或缩放图像数据。除此之外或作为替代,触摸垫238可用于在显示器234上显示的一个或多个图像区域或网页区域上移动光标。当在显示器234上显示多个图像(可能但不一定来自两个不同网页)时,使用光标可能有益于为在其上执行导航步骤的目的而标识这些图像之一。
在一个替换实施例中,除了触摸垫238之外或作为其替代,可采用操纵杆240(图2C)来扫视图像数据。操纵杆可用于通过在与客户机设备230的用户希望扫视图像的方向相对应的方向上推动操纵杆240来扫视图像数据。如同触摸垫238一样,操纵杆240可位于客户机设备230的任一表面上。
在一个或多个实施例中,缩放可以使用诸如操纵轮242等单独设备或诸如滑块(未示出)等其它设备,或使用触摸垫238上的固定形式的手势,如沿触摸垫238表面的一边上下滑动手指来实现。在后一情况下,可在触摸垫上同时使用两个食指,一个用于扫视而另一个用于缩放。
在同时包括触摸垫240和操纵轮242的一个或多个实施例中,客户机设备230的用户可在缩放和扫描之间迅速来回切换,或者可甚至同时进行缩放和扫描。此处,操纵轮242也可被称为“滚轮”。
采用上述特征中的一个或多个,扫视和/或缩放可成为触觉体验,如同客户机设备230的用户正在较大的表面上浏览显示器(屏幕)234一样。一只手的食指可敲击触摸垫238,从而扫视图像并提供了使用触摸垫238从显示器234背后移动较大的图像的感觉。以类似的方式,使用操纵轮242在图像上放大可用于提供操纵轮242的移动将“较大的图像”移至靠近或远离显示器234(取决于操纵轮242的旋转方向)的感觉。
上述触觉接口可提供带有浅学习曲线的自然且熟悉的“感觉”。一个或多个实施例也可提供与使用触摸屏的更常规解决方案相比允许在手指敲击触摸垫238以扫视图像时显示的畅通无阻视图的优点。此外,在一个或多个实施例中,可通过能够容易地在扫视和缩放之间交替和/或同时或基本同时进行这两个活动(无论是使用触摸垫238和操纵轮242还是使用其它导航机制)来获得协作的好处。
在一个或多个实施例中,触摸垫238可具有大约2英寸×1.5英寸的尺寸,然而,触摸垫238可以在任一维度上比所列出的值更小或更大。
图3是根据本发明的一个或多个实施例的用于由客户机设备230导航图像数据的方法320的流程图。图3所示的步骤不限于以所示的顺序来执行。在某些情况下,可同时执行所示步骤中的两个或多个。在下文中,列出并概括了这些步骤,之后讨论这些步骤对基本交互式浏览及其变型的应用。
方法320可包括由代理服务器150访问(322)因特网180处的因特网站点。代理服务器可将来自所访问的因特网站点的图像数据转换(324)成支持空间随机访问的多分辨率可视数据格式(多分辨率图像数据)。JPEG2000是这一可视数据格式的一个可能的示例。然而,本发明不限于使用这一标准。此处,术语“转换”一般对应于术语“重新打包”,它们适用于将普通的网页数据变成多分辨率图像数据。
方法320可包括由代理服务器150将多分辨率图像数据发送(326)给客户机设备230以在客户机设备230上进行最终显示(328)。客户机设备230可在步骤326中的发送之后或与其同时导航(330)所发送的多分辨率图像数据。客户机设备230所导航(330)的已发送多分辨率图像数据可包括仿真的因特网图形特征,诸如但不限于动态HTML和小程序功能。
在一个实施例中,代理服务器150将来自因特网180上的网页的图像数据转换(324)成多分辨率图像数据,因为这些数据是客户机设备230的导航330所需的。
多分辨率图像数据然后较佳地被发送(326)给客户机设备230并在其上显示(328)。在该实施例中,代理服务器150对因特网站点(可以是网页)的访问322以及客户机设备230对多分辨率图像数据的导航可以基本同时发生。由此,在本实施例中,网页(或其它类型的)图像数据的转换324响应于客户机设备230进行的导航330基本“在进行中”发生。导航330可包括但不限于客户机设备230的扫视和缩放。
在另一实施例中,代理服务器可将一个或多个完整的网页或其它形式的因特网图像数据转换或“预转换”成多分辨率图像数据,并将经转换的数据储存在高速缓存160或代理服务器150可访问的其它存储器设备中,以供客户机设备230容易地访问并发送到客户机设备230。这一预转换可在需要有关的网页数据之前响应于客户机设备230的导航(330)命令来执行。
在一个或多个实施例中,代理服务器150可通过验证原始HTML内容与高速缓存的版本相比未更改来确保:在服务来自客户机设备230的对于图像数据的请求时高速缓存的经预转换的多分辨率图像数据不会“过时”。这一验证可通过比较时间戳、校验和或通过使用其它公知方法来实现。对“过时”的某些容限可以是内置的,以界定代理服务器必须作出的HTML请求的数目。在本公开中,不“过时”的数据是“新鲜”的。
在一个或多个实施例中,代理服务器150担当因特网180,或更具体地是因特网180的站点或因特网页面与客户机设备230之间的中介。因此,代理服务器150与因特网180的通信较佳地响应于客户机设备230对多分辨率图像数据的浏览。并且,图3所示的步骤中的两个或多个可交互地和/或同时发生,而不是每次发生一个并且严格地以所示的顺序发生。
一般而言,网页图像数据从因特网180流至代理服务器150,在那里它可被转换成多分辨率图像数据。此时,多分辨率图像数据可被储存在高速缓存160中和/或发送到客户机设备230以在其上显示。客户机设备在需要时可储存所接收的多分辨率图像数据。
导航或浏览命令一般以相反的方向前进。具体地,导航请求和/或涉及浏览网页或因特网站点的其它命令可在客户机设备230处发起,前进到代理服务器150,之后可能以修改的形式从代理服务器150发送到因特网180。对在代理服务器150处从客户机设备230接收到的命令的适当转换或重新配置可在向因特网180重新发送这些命令之前在代理服务器150处实现。例如,在客户机设备230点击至另一网页的链接的情况下,代理服务器150可将这一链接命令重新发送到因特网180以访问目标网页。可由客户机设备230发送的命令可包括诸如扫视和缩放等导航命令。其它命令可包括用鼠标或其它设备点击、键入、说话(其中语音命令可在客户机设备230处得到理解)、做手势、沿触摸垫238的表面移动手指或工具、移动操纵轮242或移动操纵杆240。
考虑其中访问(322)单个网页、将其转换(324)成多分辨率图像数据并储存在高速缓存160中的第一示例。在储存于高速缓存160中之后,多分辨率图像数据可由客户机设备230在需要时浏览。
继续该示例,假定客户机设备230接收到以低分辨率水平对经转换网页的初始呈现。从这一起始点(“分辨率水平1”)处,客户机设备230的用户在该网页的选择区域“A”上放大。假定客户机设备在其本地存储中没有更高分辨率的图像数据,则该缩放命令较佳地被发送到代理服务器150,后者可从高速缓存160中检索所需数据并且可将该图像数据发送给客户机设备230。
较佳地,客户机设备230所请求的缩放程度可以与代理服务器150所选的分辨率水平(出于本示例的目的,为“分辨率水平2”)相关联。所得的分辨率水平可以选自所选区域(区域“A”)的一组预定义分辨率水平之一。或者,如果所选分辨率水平没有精确地对应于预定义分辨率水平之一,则所请求的分辨率水平可通过进行如此处结合的文献中所公开的一种或多种内插计算来计算。
客户机设备230的显示器234然后较佳地以所选分辨率示出所选区域“A”。假定然后在显示器234上基本仅显示经转换网页的区域A。
继续该示例,考虑其中客户机设备230的用户接着希望在网页内从区域“A”到区域“B”(未示出的区域)进行横向扫视,同时较佳地维持最后用于显示区域“A”的分辨率水平(“分辨率水平2”)的情形。假定区域“B”的多分辨率图像数据在客户机设备230内不可用,则朝向区域“B”扫视的步骤较佳地使得代理服务器150从高速缓存160或代理服务器150可访问的其它数据存储设备中寻找区域“B”的图像数据,并将该数据发送给客户机设备230。在接收到该数据之后,客户机设备230应当能够以“分辨率水平2”显示区域“B”。注意,如果分辨率水平2的图像数据在高速缓存160中尚不可用,则代理服务器150较佳地再次访问所涉及的来自因特网180的网页,并且将该网页的数据转换成具有比高速缓存160中所储存的更高分辨率的多分辨率图像数据。
继续该示例,接着考虑其中客户机设备230的用户希望激活第一网页内,较佳地在第一网页的区域B内的超链接的情形。
当客户机设备230的用户点击该超链接时,代理服务器150可确定与该超链接相关联的网页图像数据不位于高速缓存160中。因此,代理服务器150较佳地在其与因特网180的通信中重复对该超链接的目标网页的请求。
较佳地,代理服务器150然后访问该超链接的目标网页。代理服务器150然后可将来自目标网页的图像数据转换成多分辨率图像数据,并动态地将该多分辨率图像数据流传送到客户机设备230以在其上显示。作为替代或除此之外,代理服务器150可在高速缓存160中储存目标网页的全部或部分多分辨率图像数据以供稍后客户机设备230在需要时访问。高速缓存160或其它合适的存储设备中的这一存储可以是有益的,因为客户机设备230一次可能无法接收并显示目标(超链接的)网页的所有多分辨率图像数据。这种无能力更可能在客户机设备230选择了用于查看目标网页的一个或多个区域的高分辨率水平的情况下存在。注意,一般而言,客户机设备用于显示多分辨率图像数据的(所显示区域的)分辨率越高,所显示的区域将越小。
在一个或多个实施例中,客户机设备230可能能够显示一个网页的多个区域或从多个相应网页中取得的多个区域。在这一情况下,客户机设备230较佳地能够对每一这样的所显示区域独立地选择显示分辨率。在这一情况下,客户机设备230内的触摸垫238或其它机制较佳地能够在每一图像上,进而为对每一这样的图像选择期望分辨率的目的而移动光标。
此外,在任一图像内(图像可仅形成网页的一部分),分辨率无需是恒定的。分辨率可以按需改变,以协调以高分辨率查看感兴趣区域的竞争优先级、并避免接收以高分辨率显示整个图像所需的量的多分辨率图像数据的数据存储和数据通信负担。
此处对代理进行的Web浏览描述的方法的一个或多个实施例可提供以下讨论的特征。
如上所述,可随代理进行的web浏览一起提供缩放功能。由此,为查看比客户机设备230更宽的显示器而格式化的网页仍然能以其全栏宽地在诸如显示器234等小显示器上看见。如果文本相对于栏大小较小,则水平地扫视以整体读取单行可能是有益的。然而,对连续缩放的使用可允许许多文本栏即使在176像素宽的显示器(其宽度是某些市场上可购买的移动电话的特征)上也能整体读取。
在一个或多个实施例中,这在没有任何重新格式化的情况下是可行的,这将更改网页的布局。图4示出了以此方式查看的网页(原本是为在800×200像素的显示器上查看而设计的)的栏。
如果至多分辨率图像数据格式的转换相当快、或者高速缓存的多分辨率图像内容已在高速缓存160处可用,则可使整个网页的初始视图在请求所涉及的网页之后不久在客户机设备230处可见。这一能力可对任意长度的网页提供。不论网页的初始视图是整个页面的缩小概观还是网页的顶部(或任何其它部分)的放大视图,该能力都适用。
图5A和6A示出了这些情形,分别提供了在通过20千比特/秒的连接加载约2秒之后大网页的概观和顶部视图。图5B和6B分别示出了在约10秒的数据加载时间之后图5A和6A的更清楚版本。
对于具有各种内容的复杂网页,诸如报纸,客户机可连续立即聚焦在感兴趣的区域上,而无需等待下载整个文档。见图7。
实际上长度无限的网页可在不使客户机设备230的资源受到重负、不延迟到初始视图的时间、以及不导致退化性能的情况下查看。
在一个或多个实施例中,网页可具有非常大的图像,客户机设备230可对该图像进行放大来看到其精细的细节,而不会使客户机230的资源受到重负、不延迟到网页的初始视图的时间、和/或不导致退化的性能。
在某些情况下,小设备显示器的高度要比其宽度大(例如,对
Figure A200680009406D0014114948QIETU
SGH-D410移动电话而言为176像素宽×220像素高)。而对于Web浏览,最受约束的变量可能是栏宽度,从而使得蜂窝显示器期望使用“横向”而非“纵向”页面设置。由于多分辨率图像数据允许可视内容旋转一可选择的角距离,因此可在内容浏览期间尽其最大努力地使用较大尺寸的显示器。见图8A和8B。
在一个或多个实施例中,可允许访问多分辨率图像数据的客户机设备230查看在能够访问多分辨率图像数据的任何服务器上发起的图像内容,而不仅仅是由代理服务器150生成的多分辨率图像数据。由此,可允许这一客户机设备150连续地导航大量的大图像、大多分辨率向量地图、以及使用常规HTML可能难以或不可能供应的其它种类的图像内容。
以上列出的优点可以足够引人注目以使得使用代理服务器150的多分辨率图像数据浏览不仅对蜂窝电话用户,而且对较大设备的用户都是有益的,这些较大设备包括但不限于:PDA或掌上型无线设备;具有无线因特网的笔记本计算机;经由诸如调制解调器等窄带连接连接到因特网的家庭计算机用户;和/或家庭宽带用户。
在家庭宽带用户的情况下,使用代理服务器150来向客户机设备230发送多分辨率图像数据的系统的一个或多个实施例可提供各种特征,包括但不限于:
a)网页可被连续缩放以改善小类型的易读性或检查图像的细节;
b)为小显示器设计的网页可在高分辨率显示器上以清晰的细节(对于文本或向量组件)浏览;
c)可在丰富的2D(二维)或3D(三维)多比例缩放环境中对多个网页进行重新排列、操纵和调整大小,从而提供了对常规的多窗口或带选项卡浏览的替换的用户体验;和/或
d)通过对代理服务器150高速缓存的明智使用,可将可能无限数目的网页聚集到Web的实况大比例“视图”中,而不要求过多的客户机设备230存储器或其它资源。
最后,由于显示多分辨率图像数据格式的图像可对大显示器、高带宽平台和小显示器、低带宽平台提供补充的优点,因此以此方式显示可统一用户体验并且可简化跨平台工程设计和开发,而不是要求对不同平台提供可视内容和/或浏览器的不同版本。
图9是适用于本发明的一个或多个实施例的计算系统800的框图。在一个或多个实施例中,中央处理单元(CPU)802可耦合到总线804。另外,总线804可耦合到随机存取存储器(RAM)806、只读存储器(ROM)808、输入/输出(I/O)适配器810、通信适配器822、用户接口适配器806以及显示适配器818。
在一个或多个实施例中,RAM 806和/或ROM 808可保持用户数据、系统数据和/或程序。I/O适配器810可将诸如硬盘驱动器812、CD-ROM(未示出)或其它大容量存储设备等存储设备连接到计算系统800。通信适配器822可将计算系统800耦合到局域网、广域网或因特网824。用户接口适配器816可将诸如键盘826和/或定点设备814等用户输入设备耦合到计算系统800。此外,显示适配器818可由CPU 802驱动以控制显示设备820上的显示。CPU 802可以是任何通用CPU。
注意,本文中迄今为止所描述的和/或以后描述的方法和装置可利用已知技术中的任一种来实现,诸如标准数字电路、模拟电路、可用于执行软件和/或固件程序的已知处理器中的任一种、可编程数字设备或系统、可编程阵列逻辑设备、或以上的任何组合。本发明的一个或多个实施例也可用软件程序来实施以储存在适当的存储介质中并由处理单元来执行。
尽管此处参考特定实施例描述了本发明,但是可以理解这些实施例仅说明了本发明的原理和应用。因此可以理解,可对说明性实施例作出众多修改并且可设计出其它排列而不脱离如本说明书结尾所附的权利要求书所定义的本发明的精神和范围。
注意,附加的公开文本附加于此,该公开文本在本申请的权利要求书和摘要之前。
用于在缩放用户界面中进行精确呈现的系统和方法
发明领域
本发明一般涉及计算机的图形缩放用户界面(ZUI)。更具体而言,本发明是一种用于以既在计算上高效又精确的方式来渐进地呈现可缩放可视内容的系统和方法,计算上的高效能得到良好的用户响应性和交互式帧速率,而精确的意义在于向量图形、文本和其它非照相内容最终在不进行通常导致图像质量降低的重采样且不进行同样导致降低的其它图像内插的前提下绘出。
发明背景
大多数当前的图形计算机用户界面(GUI)是使用固定空间比例的可视组件来设计的。然而,从计算机图形领域的诞生可以认识到,可视组件可以用使得它们在显示器上不具有固定空间比例,而是可被放大或缩小的方式来表示和处理。对可缩放组件的期望在许多应用领域中都是明显的;此处仅举几个例子:查看地图、浏览诸如报纸等大型的不同种类文本布局、查看数码照片的相册、以及用大数据集的可视化来工作。即使在查看诸如电子表格和报表等普通文档时,能够粗看一下文档概述,然后在感兴趣的区域上放大通常也是有用的。许多现代的计算机应用程序包括可缩放组件,诸如和其它
Figure A200680009406D0017115133QIETU
产品(View(视图)菜单下的Zoom(缩放))、
Figure A200680009406D0017115148QIETU
Figure A200680009406D0017115154QIETU
Figure A200680009406D0017115208QIETU
等等。在大多数情况下,这些应用程序允许对文档进行放大和缩小,但是无需对应用程序本身的可视组件进行放大和缩小。此外,缩放一般是用户与软件的交互的一个外围方面,且缩放设置仅偶尔被更改。尽管对文档的连续扫视是标准(即,使用滚动条或光标来将所查看的文档向左、右、上或下平移),但现有技术的系统中缺少以用户友好方式连续缩放和扫视的能力。
首先,阐明若干个定义。显示器是用于向用户输出所呈现图像的一个或多个设备。帧缓冲区用于动态地表示显示器的至少一部分的内容。显示器刷新率是物理显示器或其一部分使用帧缓冲区的内容来刷新的速率。帧缓冲区的帧速率是更新帧缓冲区的速率。
例如,在典型的个人计算机中,显示器刷新率是60-90Hz。大多数数字视频例如具有24-30Hz的帧速率。由此,数字视频的每一帧实际上以至少刷新显示器的两倍的速率来显示。可在不同的帧速率利用多个帧缓冲区,且由此这些帧缓冲区基本同时地在同一显示器上显示。这例如在具有不同帧速率的两个数字视频在同一显示器的不同窗口中播放时发生。
缩放用户界面(ZUI)的一个问题是当用户缩放时可视内容必须以不同的分辨率来显示。对这一问题的理想解决方案是在每一连贯的帧中基于底层的可视内容显示精确且新计算的图像。这一方法的问题是如果底层的可视内容是复杂的,则当用户缩放时可视内容的每一分辨率的实时精确重计算在计算上是不切实际的。
作为以上内容的结果,许多现有技术的ZUI系统使用多个预计算的图像,其每一个是同一可视内容但在不同分辨率下的表示。将这些不同的预计算图像的每一个称为一细节水平(LOD)。在概念上组织为分辨率递减的图像栈的完整的LOD集合被称为LOD金字塔—见图10。在这些现有技术的系统中,当发生缩放时,系统在LOD之间进行内插并以期望分辨率显示所得的图像。尽管该方法解决了计算问题,但是它显示通常模糊且无真实感的最终受损图像,且由于它表示不同LOD的内插而通常涉及信息的丢失。这些内插误差在用户停止缩放、且有机会以不精确地匹配任一LOD的分辨率的选定分辨率来查看静止图像时尤其引人注意。
在预计算的LOD之间内插的另一问题是该方法通常以与照相或图像数据相同的方式来处理向量数据。诸如蓝图或线条画等向量数据是通过使用一呈现算法处理一组抽象指令来显示的,该呈现算法能够以任何期望的分辨率呈现直线、曲线和其它图元形状。使用可按比例缩放字体呈现的文本是向量数据的一个重要的特殊情况。图像或照相数据(包括使用位图化字体呈现的文本)并不是这样生成的,而是必须通过在预计算的LOD之间内插或通过对原始图像重采样来显示。此处将后者称为非向量数据。
在缩放序列期间对每一帧使用呈现算法来以新分辨率重新显示向量数据的现有技术系统必须将其自身限于简单的向量绘图,仅仅是为了达到交互式帧速率。另一方面,如对非向量数据那样对向量数据预计算LOD并在它们之间内插的现有技术系统遭受显著降低的视觉质量,因为大多数向量数据呈现中固有的锐边对内插误差特别敏感。这一降低通常对于作为向量数据的特殊情况的文本内容是不可接受的。
本发明的一个目的是创建复制用户在他或她实际查看物理对象并将其移向他或她自己时所看到的缩放效果的ZUI。
本发明的另一目的是创建以适当的分辨率显示图像、但是避免或减少最终显示图像中的内插误差的ZUI。本发明的又一目的是允许用户在对向量内容进行任意程度的放大的同时维持内容的明晰的、未混和视图,并维持交互式帧速率。
本发明的再一目的是允许用户进行任意程度的缩小以获得复杂的向量内容的概观,同时既保留了内容的总体外观又维持了交互式帧速率。
本发明的还有一个目的是减小交互期间用户对LOD或呈现质量之间的转变的感知。
本发明的另有一个目的是允许在呈现图像的各部分通常所需的信息尚未完整时通过混和来适度降低图像质量。
本发明的进一步的一个目的是当呈现图像的各部分所需的更完整信息变得可用时通过使其锐聚焦来逐渐提高图像质量。
本发明的此外一个目的是最优地且独立地呈现向量和非向量数据两者。
本发明的这些和其它目的在本领域的技术人员仔细阅读了以下说明书之后将变得显而易见。
发明概述
现有技术的上述和其它问题根据本发明来克服,本发明涉及一种用于实现在用户放大或缩小、旋转、扫视或改变他或她的图像视图时允许图像以动态变化的分辨率来显示的ZUI的混合策略。视图中任何这样的改变被称为导航。图像缩放到不等于预定LOD中任一个的分辨率是通过以从“环绕”期望分辨率的预定LOD内插的新分辨率来显示图像来实现的。“环绕LOD”意味着大于期望分辨率的最低分辨率的LOD和小于期望分辨率的最高分辨率的LOD。如果期望分辨率大于具有最高可用分辨率的LOD的分辨率,或小于具有最低分辨率的LOD的分辨率,则将仅有单个“环绕LOD”。基于一组预计算的LOD在期望分辨率向对图像的动态内插在文献中被称为MIP映射或三线性内插。后一术语还指示使用双线性采样来对环绕LOD进行重采样,之后在这些重采样的LOD之间进行线性内插(因此是三线性的)。例如,参见Lance Williams的“Pyramidal Parametrics”,ComputerGraphics(SIGGRAPH′83会议论文集)17(3):1-11(1983)。以上文献通过整体引用结合于此。对由Williams介绍的MIP映射技术的明显修改或扩展使用了对环绕LOD的非线性重采样和/或内插。在本发明中,重采样和内插操作是否为零阶的(最接近的邻居)、线性的、更高阶的或更一般地非线性的是不重要的。
根据此处所描述的本发明,当用户定义永远不会是预定义LOD之一的分辨率的精确期望分辨率时,最终图像然后通过较佳地首先显示中间最终图像来显示。中间最终图像是在图像如下文所述地细化之前以期望分辨率显示的第一个图像。中间最终图像可对应于使用现有技术以期望分辨率显示的图像。
在一个较佳实施例中,从中间最终图像到最终图像的转变可以是逐步的,如将在下文中更详细解释的。
在一个增强实施例中,本发明允许LOD以任何分辨率增量间隔,包括无理增量(即,不能被表达为两个整数之比的连续LOD之间的放大倍数或缩小倍数),如将在下文更详细地解释的。
在另一增强实施例中,每一不同LOD下图像的各部分被表示为小块,且这些小块以使对查看者感知到的任何缺陷最小化的顺序来呈现。在其它实施例中,所显示的可视内容由多个LOD(可能是如上所述的环绕LOD的超集)组成,其每一个都以正确的比例和位置显示以使得显示器以隐藏缺陷的方式逐渐渐隐到最终图像。
各小块在多个LOD中的呈现是以优化可视内容的外观同时保持在可接受的计算复杂度水平内的顺序来实现的,使得系统可在具有大多数膝上型和台式个人计算机中可用的典型时钟速度的标准计算机上运行。
本发明涉及一种混合策略,其中图像在快速缩放和扫视期间使用预定义LOD来显示,但是当视图足够稳定时,呈现并显示精确LOD。精确LOD是以用户选择的精确分辨率来呈现和显示的,该分辨率一般与预定义LOD不同。由于人类视觉系统在可视内容仍在运动中时对于可视内容的精细细节是不敏感的,因此该混合策略可以用少得多的计算来产生连续的“完美呈现”的假象。
附图简述
图10描述了一个LOD金字塔(在此情况下,表示最高分辨率表示的金字塔底部是512x512样本图像,且对该图像的相继缩小倍数按2的因子示出);
图11描述了在本发明的一个示例性实施例中使用的流程图;
图12是示出系统如何在缩放之后显示最终图像的另一流程图;
图13是图1的添加了网格线的LOD金字塔,它示出了将每一LOD细分成样本大小相等的矩形小块;
图14是结合本发明使用的另一流程图,它描绘了用于在显示器上显示所呈现的小块的过程;
图15示出了此处更详细解释的称为无理小块的概念;
图16描述了如以下更全面解释的合成小块以及组成该合成小块的小块;以及
图17描述了根据本发明的一个或多个实施例的图4的LOD金字塔的第二层以凹入顺序的呈现的相继阶段,各相继阶段分别在图17A、17B、17C和17D中示出。
较佳实施例的详细描述
图11示出了用于实现本发明的基本技术的流程图。图11的流程图表示本发明的一个示例性实施例,并且在以初始分辨率显示图像时开始执行。注意,本发明可在客户机/服务器模型中使用,但是客户机和服务器可以在相同或不同的机器上。由此,例如,可以有远程地储存在主机计算机上的一组离散LOD,并且用户可通过本地PC连接到所述主机。所利用的实际的硬件平台和系统对于本发明并不是关键的。
该流程图以特定分辨率下的图像的初始视图进入起始框241。在本示例中,图像被取为静态的。在框242处显示该图像。用户可通过例如移动计算机鼠标来导航该图像。在框242处显示的初始视图在用户导航该图像时将改变。注意,底层图像本身可以是动态的,诸如在运动视频的情况中那样,然而,出于本示例的目的,该图像被视为是静态的。如上所述,要显示的任何图像也可具有文本或其它向量数据和/或诸如照片和其它图像等非向量数据。本发明以及以下全部讨论无论图像是包括向量还是非向量数据还是包括两者都是适用的。
无论在框242中显示的可视内容的类型是什么,该方法都将控制传递到判别点243,在该点处可检测导航输入。如果未检测到这一输入,则该方法循环回到框242,并继续显示静止的可视内容。如果检测到导航输入,则控制将如图所示被传递到框244。
判别点243可通过查找检测移动的特定信号的软件中的连续循环、硬件中的中断系统或任何其它期望的方法来实现。用于检测和分析导航请求的特定技术对本发明不是关键的。无论所使用的方法是什么,该系统都可检测到请求,由此指示导航图像的期望。尽管此处大多数讨论涉及缩放,但是要注意,这些技术适用于缩放、扫视或其它导航。实际上,此处所描述的技术适用于对图像的任何类型的动态变换或感知变化。这些变换可包括例如三维平移和旋转、图像过滤器的应用、局部拉伸、应用于图像选中区域的动态空间变形、或可能展示更多信息的任何其它种类的变形。另一示例是虚拟放大镜,它可在图像上移动并放大该虚拟放大镜下的图像部分。当判别点243检测到用户正在发起导航时,框244然后呈现并显示图像的新视图,该新视图可具有例如与先前显示的视图不同的分辨率。
显示新视图的一种直截了当的现有技术是基于用户放大或缩小时内插LOD。所选LOD可以是“环绕”期望分辨率,即新视图的分辨率的那两个LOD。在现有技术系统中,内插总是在用户缩放时发生,且由此通常直接用硬件实现来获得速度。判别点245中对移动的检测与框244处对适当内插图像的基本立即显示的组合导致图像看似在用户导航时连续缩放。在放大或缩小期间,由于图像正在移动,因此内插图像足以看上去逼真且清晰。任何内插误差仅最小程度地可由人类视觉系统来检测,因为这些误差通过不断改变图像的视图而被掩饰。
在判别点245,系统测试移动是否已基本停止。这可使用各种技术,包括例如测量视图的一个或个参数的改变速率来实现。即,该方法确定用户是否已到达他完成缩放的点。在判别点245处这一稳定之后,控制被传递到框246,其中呈现精确的图像,之后控制返回到框243。由此,以任何期望的分辨率,系统将最终显示精确LOD。
值得注意的是,显示并不是简单地通过两个预定义LOD的内插来呈现和显示的,而是可通过在框242处显示初始视图时使用用于呈现文本或其它向量数据的原始算法重新呈现向量数据来呈现和显示。非向量数据也可被重采样以在精确的所需LOD下呈现和显示。所需的重新呈现或重采样不仅可在以期望分辨率显示所需的精确分辨率下执行,而且还可在精确对应于如基于期望视图计算的显示器像素相对于底层内容的正确位置的采样网格上执行。作为一个示例,显示器上的图像在显示平面内平移1/2像素不会改变所需的分辨率,但是它的确改变了采样网格,因此需要对精确LOD的重新呈现或重采样。
上述图11的系统表示在视图改变(例如,发生导航)时利用基于预定义LOD的内插,但是在视图变得基本静止时呈现和显示精确视图的混合方法。
为此处解释的目的,术语呈现指的是计算机基于向量或非向量数据以特定LOD生成小块。对于非向量数据,这些可通过以更高或更低分辨率对原始图像重采样来以任意分辨率呈现。
现在转向呈现和显示如由图11的框246表示地实现精确最终图像所需的可视内容的不同部分的方法。参考图12,当确定导航已停止时,控制被传递到框333,并且立即显示内插的图像,正如缩放期间的情况一样。将可在导航停止之后临时显示的该内插图像称为中间最终图像,或简称为中间图像。该图像是从环绕LOD的内插生成的。在某些情况下,如将在下文更详细解释的,中间图像可从两个以上离散LOD内插,或从除环绕期望分辨率的LOD之外的两个离散LOD内插。
一旦显示了中间图像,则进入框334,使得图像开始朝图像的精确呈现—称为最终图像—渐变。最终图像与中间图像的不同之处在于,最终图像可能不涉及任何预定义LOD的内插。相反,最终图像或其部分可包括新呈现的小块。在照相数据的情况下,新呈现的小块可从对原始数据的重新采样得到,而在向量数据的情况下,新呈现的小块可从期望分辨率下的光栅化得到。
还要注意,可直接从框333跳至335,从而立即用最终且精确的图像替换内插图像。然而,在该较佳实施例中,执行步骤334以使从中间最终图像到最终图像的转变逐步且平滑地完成。该渐变有时候称为混和,它使得图像在导航停止时逐步聚焦,从而产生类似于照相机或其它光学仪器中自动聚焦的效果。由这一效果产生的物理性假象是本发明的一个重要方面。
以下是对发生该渐变或混和以最小化感知到的图像中的不规则性、突然变化、缝隙和其它缺陷的方式的讨论。然而,可以理解,特定的渐变技术对于本发明并不是关键的,且本领域的技术人员可以清楚许多变体。
不同LOD的不同之处在于底层可视内容的每一物理面积中的样本数。由此,第一个LOD可取可查看对象的1英寸×1英寸面积,并生成单个32×32样本小块。然而,该信息也可通过取同样的1英寸×1英寸面积并将其表示为64×64样本的小块来呈现,因此是以较高分辨率来呈现的。
定义称为无理小块的概念。将写作变量g的小块粒度被定义为较高分辨率LOD下线性小块网格大小与下一较低分辨率LOD下线性小块网格大小之比。在Williams的介绍三线性内插的论文中,g=2。其它现有技术中已使用了该同样的g值。尽管LOD可用任何方式细分成小块,但是在一个示例性实施例中,每一LOD被细分成包含常数个样本(除了如所需的在可视内容的边缘处)的正方形或矩形小块的网格。在概念上,当g=2时,某一LOD下的每一小块在下一较高分辨率LOD下“分裂”成2 x 2=4个小块(再一次,除了可能在边缘处以外),如图13所示。
粒度为2的小块存在基本的缺点。通常,如果用户在小块中的一个随机点上放大,则缩放中的每一次g倍增大将需要呈现对应于靠近用户正在向其缩放的点的下一较高分辨率LOD的单个附加小块。然而,如果用户正在小块网格中的网格线上放大,则需要呈现两个新小块,在该线的每一侧上有一个。最后,如果用户在两条网格线的交点上放大,则需要呈现四个新小块。如果对每一次g倍缩放请求1、2或4个新小块的事件被随机地散布在扩展的缩放序列中,则总体性能将是一致的。然而,任何整数粒度小块(即,其中g是整数)中的网格线对每一较高分辨率LOD都保留一网格线。
例如,考虑在以粒度2小块化的非常大的图像的中心放大。将该点的(x,y)坐标写成(1/2,1/2),采用可视内容落在具有角(0,0)、(0,1)、(1,0)和(1,1)的正方形内的约定。由于中心在两条网格线的交点处,因此当用户到达每一更高分辨率LOD时,每次都需要呈现四个新小块;这导致较慢的性能以及在该特定点上缩放的低效率。另一方面,假定用户在一无理点上缩放,无理点意味着x和y不能被表达为两个整数之比的网格点(x,y)。这样的数的示例是pi(=3.14159...)以及2的平方根(=1.414213...)。然后,可以容易地证明由对每一次g倍缩放需要呈现的小块数给出的1、2和4的序列是准随机的,即不遵循任何周期性模式。从性能观点来看,很清楚,这种准随机序列是更合乎需要的;因此从性能观点来看没有用于缩放的特异点。
无理小块解决以下问题:g本身被取作无理数,通常是3、5或12的平方根。尽管这意味着在下一较低分辨率LOD下在单个小块中包含给定LOD下的平均3、5或12个小块(相应地),但注意在该方案中,连贯的LOD下的小块网格不再在任何网格线上“一致”(除了可能在可视内容的前沿处、x=0且y=0处、或在沿每一轴的某一其它预先选择的单条网格线处之外)。如果选择g使得它不是任何整数的n次根(pi是这样一个数字),则没有LOD会共享任何网格线(再一次,可能除了x=0且y=0处之外)。因此,可以示出每一小块可在下一较低LOD处随机地与1、2或4个小块重叠,而在g=2时该数字总是为1。
采用无理小块粒度,在任一点上放大因此将产生对1、2或4个小块的请求的准随机流,且性能将在每一处缩放时平均上是均一的。可能无理小块的最大益处随着在深缩放之后扫视而浮现。当用户在深度放大之后扫视图像时,在某一点处,网格线被移至显示器上。情况通常是该网格线的另一侧的区域将对应于比显示器的剩余部分更低的分辨率LOD;然而,理想的是使这些分辨率之间的差异尽可能小。然而,采用整数g,差异通常极大,因为网格线可在许多连贯的LOD上重叠。这造成了节点区域上分辨率中的“深裂”,如图15(a)所示。
另一方面,由于无理小块中的网格线从不与相邻LOD的网格线重叠(再次可能除了每一方向上的一条网格线之外,该网格线可能在图像的一个角上),因此一个以上LOD的分辨率中的不连续性不会出现。这一相对分辨率中增加的平滑度允许空间连续性的假象更令人信服。
图15(b)示出了由无理小块粒度获得的优点。图6示出了穿过可视内容的若干LOD的横截面;每一条表示一矩形小块的横截面。因此,其中有两条的从上而下的第二级可能是2 x 2=4小块的LOD。从上到下绘出的曲线631表示在缩放操作期间相关LOD下可视内容的可视区域的边界:当分辨率增加(放大以展示更多细节)时,所检查的区域减小。深色的条(例如,632)表示已在缩放期间呈现的小块。较浅的条尚未被呈现,因此不能显示。注意,当小块如图15(a)所示是整数时,空间上分辨率的突然变化是常见的;如果用户要在缩放之后立即扫视,则在由箭头指示的空间边界处,四个LOD将突然“结束”。所得的图像看上去在该边界的左侧是尖锐的,且在右侧是极其模糊的。使用无理小块粒度表示的同一可视内容没有这样的分辨率“裂痕”:相邻LOD不共享小块边界,除了如图所示在左边缘处之外。在数学上,这一共享的边界最多在x轴上的一个位置以及y轴上的一个位置上出现。在所示的实施例中,这些共享边界位于y=0且x=0处,但是如果存在,则它们也可位于任何其它位置。
无理小块粒度的另一好处是它允许对g的更精细控制,因为无理数要比整数多得多,尤其是在g不是太大的可用范围上。这一附加的自由度对于调整某些应用的缩放性能可能是有用的。如果g被设为整数的无理平方根(诸如sqrt(2)、sqrt(5)或sqrt(8)),则在以上所述的实施例中,交替LOD的网格线会精确对齐;如果g是无理的立方根,则每三个LOD会精确对齐;依此类推。这提供了对于限制如以下所定义的合成小块的复杂度的附加益处。
本发明的一个重要方面是呈现小块的顺序。更具体而言,各个LOD的各种小块被最优地呈现,使得所有可见小块被首先呈现。不可见小块可能完全不被呈现。在可见小块集中,呈现以递增分辨率的顺序进行,使得低分辨率LOD内的小块被首先呈现。在任何特定LOD内,小块以与显示器中心的递增距离的顺序呈现,这称为凹入呈现。为了以所描述的顺序对这些小块排序,可使用诸如堆排序、快速排序或其它排序等众多排序算法。为实现这一排序,可使用语素关键字来对呈现小块的“请求”排序,使得最外面的子关键字是可见的,中间的子关键字是以每物理单位样本数为单位的分辨率,而最里面的子关键字是与显示器中心的距离。也可使用用于对小块呈现请求排序的其它方法。小块的实际呈现最优地作为带有此处所描述的导航和显示的并行过程发生。当呈现和导航/显示作为并行过程来进行时,即使在小块呈现较慢的情况下用户响应性也可保持较高。
现在描述一个示例性实施例中呈现小块的过程。如果小块表示向量数据,诸如基于笔划字体中的字母印刷,则小块的呈现涉及运行光栅化字母数据的算法以及可能将该数据从服务器发送到客户机。或者,馈入光栅化算法的数据可被发送到客户机,且客户机可运行光栅化小块的算法。在另一示例中,涉及数字地采样的照相数据的小块的呈现可涉及对该数据的重采样以在适当LOD下生成小块。对于预存的离散LOD,呈现可仅涉及将小块发送到客户机计算机以供随后的显示。对于落在离散LOD之间的小块,诸如最终图像中的小块,可能需要如上所述的某些进一步的计算。
在任何给定时刻,当呈现小块且图像开始朝精确图像渐变时,实际显示可包括来自不同LOD的不同小块的不同混合。由此,显示的任一部分可包含例如来自LOD 1的20%、来自LOD 2的40%、以及来自LOD 3的40%。无论所显示的小块是什么,该算法试图以最适合提供所呈现的小块以供如最需要它们那样地显示的优先级顺序来呈现来自各个LOD的小块。所呈现小块的实际显示将在下文参考图14更详细地解释。
在下文中,描述一种用于使用可保证图像细节的空间和时间连续性的算法来绘出多个LOD的方法。该算法被设计成最佳地利用所有呈现的小块,它优先于覆盖同一显示区域的较低分辨率小块地使用高分辨率小块,但使用空间混和来避免LOD之间的尖锐边界,以及在较高细节变得可用时(即,当已呈现了较高分辨率小块时)使用临时定级的混和权重以在高细节下混和。与现有技术不同,该算法及其变体可导致两个以上LOD在显示器上的给定点处被混和在一起;它还可得到在显示区域上平滑变化的混和系数;并且它可得到甚至在用户停止导航之后随时间进展的混和系数。尽管如此,如将清楚的,在该示例性实施例中,它在计算上仍是高效的,且可用于将图像呈现为局部透明,或具有在图像区域上改变的总体透明度。
此处定义了合成小块区域,或简称为合成小块。为定义合成小块,考虑堆叠在彼此之上的所有LOD。每一LOD具有其自己的小块网格。合成网格然后通过将来自所有LOD的所有网格投影到单个平面上来形成。合成网格因此由大小不同的各种合成小块构成,由来自所有不同LOD的小块的边界来定义。这在图16中概念性地示出。图16描述了来自三个不同LOD的小块701到703,所有这些小块都表示同一图像。可以想像LOD 701到703堆叠在彼此之上。在这一情况下,如果将来自这些LOD的每一个的角750排齐并将它们堆叠在彼此之上,则由740表示的区域将在由730表示的区域之内,并且由734和740表示的区域将在由720表示的区域之内。图16的区域710示出了将有单个“合成小块”710。每一合成小块在每一帧期间检查,其中帧速率通常大于每秒10帧。注意,如上所解释的,该帧速率并不一定是显示器刷新率。
图14描绘了用于在呈现小块时更新帧缓冲区的算法的流程图。图14的安排旨在每次更新帧缓冲区时对所显示图像中的每一合成小块操作。由此,例如,如果帧持续时间是1/20秒,则整个屏幕上的每一合成小块较佳地在每一个1/20秒期间检查和更新。当合成小块由图14的过程操作时,该合成小块可能缺少一个或多个LOD中的相关小块。图14的过程试图将每一合成小块显示为该合成小块所处的所有可用叠加小块的加权平均值。注意,合成小块是以使得它们精确地落在任何给定LOD下的一个小块内的方式来定义的;因此该加权平均值可被表达为每一LOD的相对比例。该过程试图对合成小块内的每一LOD确定适当的权重,并随着空间和时间上的变化逐步改变这些权重以使图像逐步朝上述的最终图像渐变。
合成网格包括被定义为合成网格中网格线的任何交点或角的多个顶点。这些被称为合成网格顶点。在每一合成网格顶点处对每一LOD定义不透明度。不透明度可被表达为0.0和0.1之间的权重,且因此如果期望结果是使图像完全不透明,则每一顶点处所有LOD权重之和是1.0。对每一顶点处的每一LOD,在任何特定时刻的当前权重被保存在存储器中。
用于更新顶点权重的算法如下所述地进行。
取为0.0和1.0之间的数的以下变量对每一小块被保持在存储器中:centerOpacity(中心不透明度)、每一角的cornerOpacity(角不透明度)(如果小块是矩形网格则为4)、以及每一边的edgeOpacity(边不透明度)(如果小块是矩形网格则为4)。当小块被首先呈现时,所列出的所有其不透明度一般被设为1.0。
在一遍绘图期间,该算法从最高分辨率LOD开始,对每一相关LOD走查合成小块一次。除每一小块的变量之外,该算法保留以下变量:levelOpacityGrid(等级不透明度网格)和opacityGrid(不透明度网格)。这些变量同样也是0.0和1.0之间的数字,并且对合成小块中的每一顶点保留。
该算法进而以从最高分辨率到最低分辨率的顺序走查每一LOD,从而执行以下操作。首先将0.0分配给所有顶点处的levelOpacityGrid。然后,对该LOD处的每一呈现小块(如果尚未呈现某些小块,则可以是该LOD处的小块集的一个子集),该算法基于小块的centerOpacity、cornerOpacity和edgeOpacity值更新接触该小块的levelOpacityGrid的各部分:
如果顶点完全在小块的内部,则它使用centerOpacity来更新。
如果顶点例如在小块的左边缘上,则它用左edgeOpacity来更新。
如果顶点例如在右上角,则它使用右上cornerOpacity来更新。
“更新”意味着:如果预先存在的levelOpacityGrid值大于0.0,则将新值设为当前值的最小值或它正用以更新的值。如果预先存在的值是0(即,该顶点尚未接触),则仅将levelOpacityGrid值设为它正用以更新的值。最终结果是每一顶点位置处的levelOpacityGrid被设为正用于更新它的最小非零值。
该算法然后走查levelOpacityGrid,并将接触尚未呈现的小块,称为洞的任何顶点设为0.0。这确保混和的空间连续性:只要在合成小块落在洞内的任何地方,在当前LOD下,绘图不透明度应当在邻接该洞的所有顶点处渐变为0。
在一个增强实施例中,该算法然后放松所有levelOpacityGrid值以进一步改善LOD混和的空间连续性。迄今为止所描述的情况可如下可视化:每一顶点类似于帐篷支柱,其中每一点处的levelOpacityGrid值是帐篷支柱的高度。该算法迄今确保了在与洞接壤的所有点处,帐篷支柱的高度为0;并且在已呈现的小块的内部,帐篷支柱被设为某一(可能)非零值。在极端情形中,可能已呈现小块中的所有值都被设为1.0。为说明起见,假定已呈现小块尚未有呈现邻居,因此边框值为0.0。尚未指定0.0边框帐篷支柱和1.0内部帐篷支柱之一之间的“余量”可以有多窄。如果该余量太小,则即使混和在技术上是连续的,当作为空间上的不透明度导数来测量时转变也可能太尖锐。放松操作平滑了该帐篷,它总是保留0.0值,但是可能降低其它帐篷支柱以使得由帐篷表面定义的函数更平滑,即限制其最大空间导数。使用各种方法中的哪一种来实现该操作对本发明是无关紧要的;例如,一种方法是使用选择性的低通滤波,从而用其邻居的加权平均值来局部替换每一非零值、同时将零保持原样。本领域的技术人员也可清楚其它方法。
该算法然后走查所有合成网格顶点,考虑每一顶点处的对应的levelOpacityGrid和opacityGrid值:如果levelOpacityGrid大于1.0-opacityGrid,则将levelOpacityGrid设为1.0-opacityGrid。然后,再次对每一顶点,将对应的levelOpacityGrid值加到opacityGrid。由于前一步,这永远不会使opacityGrid大于1.0。该算法中的这些步骤确保在较高分辨率LOD可用时由其贡献尽可能多的不透明度,从而允许较低分辨率LOD仅在有洞时“隐约显出”。
遍历当前LOD的最后一步是使用levelOpacityGrid作为每一顶点的不透明度值在当前LOD下实际绘出合成网格。在一个增强实施例中,levelOpacityGrid可在绘制之前乘以范围在0.0到1.0中的标量overallOpacity(总体不透明度)变量:这允许整个图像以由overallOpacity给出的局部透明度绘出。注意,以每一顶点处不同的不透明度绘制诸如矩形等含有图像的多边形是一种标准过程。例如,它可使用利用OpenGL或Direct3D图形库的行业标准纹理映射函数来实现。在实践中,每一这样的多边形内部所绘出的不透明度在空间上内插,从而得到多边形上透明度的平滑改变。
在上述算法的另一增强实施例中,小块不仅保留其当前的centerOpacity、cornerOpacity和edgeOpacity值(称为当前值),还保留称为targetCenterOpacity(目标中心不透明度)、targetCornerOpacity(目标角不透明度)和targetEdgeOpacity(目标边缘不透明度)的一组并行值(称为目标值)。在该增强实施例中,在首先呈现小块时当前值都被设为0.0,但是目标值都被设为1.0。然后,在每一帧后,当前值被调整为更接近目标值的新值。这可使用多个数学公式来实现,但是作为一个示例,它可按以下方式来完成:newValue=oldValue*(1-b)+targetValue*b,其中b是大于0.0且小于1.0的速率。接近0.0的b值导致朝目标值的非常慢的转变,而接近1.0的b值导致朝目标值的非常迅速的转变。该更新不透明度的方法导致朝向目标的指数收敛,并导致时间连续性的视觉上令人满意的印象。其它公式可实现相同的结果。
图17描绘了根据本发明的一个或多个实施例的的图17的LOD金字塔的第二层以凹入顺序的呈现的相继阶段。
以上描述了本发明的较佳实施例。本发明不限于这一较佳实施例,并且与所附权利要求书相一致的各种修改也都被包括在本发明内。
用于多节点显示的系统和方法
发明背景
本发明涉及用于计算机的缩放用户界面(ZUI)。
大多数当今的图形计算机用户界面是使用固定空间比例的可视组件来设计的。可视内容可通过放大或缩小或以其它方式导航来操纵。然而,可用于表示各种对象的坐标的精度极大地受到被指定来表示这些坐标的位数(通常在16和64之间)的限制。由于其有限的可表示大小,因此存在有限的精度。
在缩放用户界面的环境中,用户能够容易地放大,使得先前仅被单个像素覆盖的区域填满整个显示器。相反,用户可缩小,使得整个显示器的内容收缩至单个像素的大小。由于每一次放大或缩小可将xy坐标乘以或除以多个数量级,因此仅有少数这样的缩放能完全用尽在例如64位浮点数下可用的精度。之后,舍入导致引人注意的图像质量降低。
本发明的一个目的是提供一种其中大范围缩放成为可能的ZUI。
本发明的另一目的是提供一种其中表示坐标的精度与特定缩放细节水平下需要的所需精度有关的ZUI。本发明的又一目的是允许有限物理大小、但任意高复杂度或分辨率的可扫视和可缩放二维空间被嵌入到较大的可扫视和可缩放二维空间的定义良好的区域中。
本发明的再一目的是允许在深放大之后缩小以类似于web浏览器的“后退”按钮表现,从而让用户折回他或她通过可视导航的步骤。
本发明的此外一个目的是允许在缩小之后立即放大以类似于web浏览器的“前进”按钮表现,从而让用户精确地撤消任意长的缩小的效果。
本发明的另有一个目的是允许一节点,即如下更精确地定义的可视对象具有非常大量的子节点(例如,多达10^28)。
本发明的再有一个目的是允许节点在进行中程序性地生成它自己的子节点,从而允许在导航期间动态地定义、创建或修改内容。
本发明的还有一个目的是即使在任意复杂的可视内容最终是使用非常大量的数据来表示,且即使数据被储存在远程位置且通过低带宽网络共享的情况下也允许接近立即地查看该内容。
本发明的进一步的一个目的是允许用户在可视内容上进行任意程度的放大同时维持交互式帧速率。
本发明的更进一步的一个目的是允许用户在保留内容的总体外观并维持交互式帧速率的过程中进行任意程度的缩小以获得复杂可视内容的概观。
本发明的这些和其它更宽泛的目的在本领域技术人员仔细阅读了以下说明书之后将变得显而易见。
发明概述
本发明的以上和其它目的通过将可视内容显示为多个“节点”来实现。每一节点较佳地具有其自己的坐标系统和呈现方法,但是可被包含在一父节点内,且可以用该父节点的坐标系统和呈现方法来表示。当用户例如通过放大或缩小来导航可视内容时,节点仅在缩放导致适当的细节水平时才被“启动”。节点的启动使得节点以其自己的坐标系统和/或呈现方法、而非一不同节点的坐标系统和/或呈现方法来表示。
在启动节点之前,节点要么以父节点的坐标系统来表示,要么完全不被表示。通过仅在需要时启动节点,坐标系统的精度取决于正被显示的内容的缩放细节水平。这允许一可变的精度水平,它可高达且包括该系统在其中运行的计算机的存储器所允许的最大值。
附图说明
为说明起见,附图中示出了当前较佳的形式,然而可以理解,本发明不限于所示的精确排列和手段。
图18是显示器上的可视内容的描述;
图19是不同细节水平下的图18的可视内容的图像;
图20是本发明的一个实施例的表示;
图21是示出显示器上的多个节点的本发明的一个示例性实施例;
图22是对应于图21中所示的示例性实施例的树图。
图23是对应于图22的树图的一部分的框图。
较佳实施例的详细描述
假定其中显示器是照相机的用户界面比喻,通过该照相机用户可查看二维表面或2D全域的一部分。为方便起见,尽管不必如此,但仍将物理维度归于该全域,使得它例如可以是一米见方。本发明同样适用于N维表示。
该示例性全域进而包含2D对象,即节点,它具有可视表示,且也可以是动态或交互式的(即,视频剪辑、应用程序、可编辑文本文档、CAD绘图或静止图像)。为使节点可见,它必须与能够将其全部或部分绘制在显示器的某一区域上的呈现方法相关联。每一节点也被赋予有限精度的局部坐标系统。为说明起见,假定节点是矩形的,且由局部坐标系统来表示。
呈现方法和坐标系统这两个参数指定了如何显示节点以及节点中项的位置。每一节点可具有0个或多个子节点,它们通过引用来寻址。节点无需且一般不包含每一子节点的所有信息,而是仅包含提供获得子节点所必需的信息的地址。当用户导航时,例如放大和缩小时,节点例如如图18所示地被显示在屏幕上。
一般而言,“节点”是本发明中的基本功能单元。大多数节点在导航期间可视地显现在用户的显示器上,且某些节点也可加动画和/或响应用户输入。节点在节点可包含子节点的意义上是分层的。包含节点因此被称为父节点。当父节点包含子节点时,子节点的视觉表现也被包含在父节点的视觉表现中。每一节点具有一逻辑坐标系统,使得节点的整个范围被包含在该逻辑坐标系统中定义的示例性矩形中;例如,节点可定义一逻辑坐标系统,使得它被包含在矩形(0,0)-(100,100)中。
每一节点可具有定义其特性的以下数据:
o 节点的逻辑坐标系统,包括其逻辑大小(在以上示例中为100x100);
o 任何子节点的身份、位置和大小,以(父)节点的逻辑坐标指定;
o 可任选的任何必要的用户数据。
可执行码定义这些操作或“方法”:
o 基于“构造自变量”的节点数据的初始化
o 呈现节点的全部或一部分可视外观(该方法的输出是呈现的小块);
o 可任选地响应于用户输入,诸如键盘或鼠标事件。
可执行码定义了“节点类”,并且可在许多“节点实例”之间共享。节点实例在其数据内容上不同。因此,节点类可定义呈现JPEG图像所需的逻辑。给予初始化代码的“构造自变量”因此包括JPEG图像到显示器的URL。显示特定图像的节点是JPEG节点类的一个实例。节点的多个实例可在同一可视内容中查看,这类似于软件应用程序可同时被多次实例化的方式。
注意,在复杂的可视文档或应用程序中,通常可将必要的功能以多种不同方式划分成节点。例如,包含多个图像、下拉菜单和按钮的脚本化的类似网页的文档可被实现为具有复杂的呈现和用户输入方法的单个节点。或者,它可被实现为仅定义页面的总体布局,且每一构成图像和按钮是一子节点的父节点。这具有更有效地重复使用或“分解”功能的明显优点:按钮可以都具有相同的行为,并且因此都是同一节点类的实例;图像可以都采用相同的格式,因此也可以是一公共节点类的实例,等等。这还简化了对布局的重新排列—父节点可容易地移动子节点或调整其大小。
根据本发明,可视内容可用取决于用户输入的导航状态的方式来显示。例如,图18示出了可以是城市的一部分的图像的节点105。节点105可包含子节点101-103。节点101可以是城市中的建筑物的图像,节点107可以是游乐场的图像,节点103可以是竞技场。在所示的缩放水平下,节点101-103相对较小,因此它们可被表示为位于节点105的坐标系统的正确位置上、且没有节点105中的任何细节的小深色区域。仅需节点105的坐标系统和呈现方法。
考虑用户放大以得到诸如图19所示的不同细节水平(LOD)的情况。在图19的LOD中,由于可视内容被显示得大得多的这一事实,节点101和102不再在屏幕上可见。另外,注意,由于显示竞技场节点103的大小现在要大得多,因此诸如个别座位、场地等竞技场的细节现在必须被显示。
进一步以上内容,竞技场节点103现在不被显示为节点105的坐标系统中没有细节的深色区域,而是被“启动”以使用其自己的坐标系统和呈现方法来显示。当使用其自己的坐标系统和呈现方法来显示时,诸如座位、比赛场地等细节将被个别地示出。上述与节点103相关联的其它功能也在节点103被启动的点处开始执行。引起节点103或就此而言的任何节点的启动的特定导航条件取决于设计选择,且对本发明不是关键的。
将显示节点103的精度是节点105利用的坐标系统以及节点103利用的坐标系统的组合精度。由此,例如,如果每一所述节点的坐标系统利用8位,则组合精度是16位,因为节点103的坐标系统仅用于指定节点103中项的位置,而节点103在节点105内的总体位置在节点105的坐标系统中指定。注意,如果竞技场103本身包含其中的附加节点,则该嵌套可重复地继续。例如,一个这样的节点201实际上可以是竞技场内的特定特许看台。它不用节点103的坐标系统和呈现方法中的许多细节来表示。当用户继续在竞技场103上放大时,在某一点处节点201将启动。如果它是使用8位精度来显示的,则这8位将指定要在节点201内何处显示坐标系统的特定项。然而,节点201在节点103内的位置可被保持在节点103的坐标系统内的8位精度,节点103的位置进而可使用8位保持在节点105的坐标系统内。因此,节点201内的项最终将使用24位精度来显示。
通过在节点内嵌套节点,最终可显示可视内容的精度仅受计算机的存储器容量的限制。在节点被启动之后显示节点中可视内容的最终精度实际上是所有父节点的精度与已启动节点的精度的组合。此处,取决于嵌套级别,该精度可如所需地增加,且仅受计算机的存储容量限制,而存储容量几乎总是比足够的要大得多。另外,增加的精度仅在必要时才使用,因为如果图像在不需要启动的LOD下,则根据以上描述,如果节点已被启动,则它仅用包含它的节点的精度来显示。由此,对于嵌套在其它节点内的节点,当从最外面的节点向内移动时,可遍历已启动的节点直到最终到达尚未启动的节点。任何这样的未启动节点以及其内的进一步节点将仅用最后一个遍历的已启动节点的精度来显示。
这导致“褶”型精度,其中显示可视内容的精度在需要时且如由用户的导航输入指示地扩展和收缩,从而通过仅在对较高精度需要时使用它们来最大化系统资源的效率。
还要注意,当节点启动时,该节点的显示从基于父节点的坐标和呈现方法改为基于子节点的坐标和呈现方法。这一改变通过使用例如在共同待决的美国专利申请第10/790,253号中描述的混和来最优地逐步作出。然而,逐步从父节点的坐标系统和呈现方法中的信息显示改为子节点的其它方法也是可能的。系统可被编程为例如在特定范围上发生从父节点到子节点的混和。然后,当用户在缩放期间遍历该范围时发生这一转变,除非在该范围期间停止导航,在这一情况下混和可继续直到在适当的坐标系统中完全显示。
本发明所解决的另一问题涉及一种用于在显示期间维持所有极点之间的空间相互关系的系统。更具体而言,在诸如缩放和扫视等动态导航期间,使用许多不同的坐标系统来显示可能不同的节点。如上所述,某些节点仅作为图像在其它节点的坐标系统中显示,而某些节点在其自己的坐标系统中显示。实际上,整个可视显示可用在不同坐标系统中的不同位置处显示的节点来填充,且用于各个节点的坐标系统和精度在节点被启动时可在导航期间改变。因此,重要的是确保节点相对于彼此正确地定位,因为每一节点仅知道其自己的坐标系统。本发明提供了一种用于在所有节点之间传播相对位置信息、以及用于在需要时更新该信息以使每一节点“知道”在总体视图中它应当呈现它自己的正确位置的技术。
上述内容可通过向节点数据结构添加字段并添加一额外的地址栈数据结构来实现。所扩展的节点定义包括称为“view(视图)”字段的字段,且它由节点用于相对于整个显示器定位其自身。view字段在该节点的坐标中表示该节点的可视区域—即,该节点的坐标中显示器矩形的图像。该矩形仅部分地与节点的区域重叠,如当节点部分地在屏幕外的时候。很清楚,view字段不必总是保持对每一节点更新,因为不必在发生导航时实时地遍历整个节点有向图。
栈结构定义如下:
Stack<Address>viewStack;
其中该栈是客户机(连接到显示器的计算机)的全局变量。为示例性的目的,假定导航以由根节点定义的内容全域的概观开始;然后该根节点被压入viewStack,且根节点的view字段可被初始化为根节点的整个区域,即
rootNode.view=rootNode.coordSystem;
Push(viewStack,rootNode);
示意性地,viewStack将指定由点“刺穿”的节点序列相对于显示器的地址,该地址将在本示例性实现中用作显示器的中心。该序列必须以根节点开始,但是可以是无限的,因此必须被截断。在一个示例性实施例中,该序列在“刺穿”的节点变得小于被定义为minimumArea的某一最小大小时停止。然后,当前视图由viewStack中所有节点的view字段来表示,其每一个按照节点的局部坐标系统指定了当前视图。如果用户对全域进行了非常深的放大,则显示的详细位置将由栈中的最后一个节点的view字段最精确地给出。然而,最后一个元素的view字段没有指定用户相对于整个全域的视点,而是仅指定了相对于其局部坐标的视点。另一方面,根节点的view字段指定了用户正在查看全域中的何处。由此,较靠近viewStack的“精细端”的节点以递增的精度但相对于全域中逐渐变小的区域指定了视图位置。这在图20中概念性地示出,其中可以看到,在已启动的三个节点301、303和303中,节点303提供了对用户正在查看何处的最准确的指示,因为其坐标系统是“最精细的”,但是节点301提供了关于可视内容的大得多的区域的信息,尽管该信息并不是那样精细。
然后该问题缩减为以下:所有可见节点的视图(即,view字段)必须保持与用户导航全域、扫视和缩放同步。无法使它们保持同步会导致节点的外观在显示器上独立于彼此地移动而非作为结合在一起且物理上一致的2D表面来表现。
在任何导航操作期间改变视图如下进行。由于viewStack中的最后一个节点具有该视图的最精确表示,因此第一步是改变该最后一个节点的view字段;该改变的视图被认为是正确的新视图,且任何其它可见节点必须遵从。第二步是将新视图朝向根节点“向上”传播,这需要对栈中较早的节点的view字段进行逐渐变小的改变。如果用户进行深缩放,则在向上传播中的某一点,对视图的更改可以很小,使得它停止以可准确地表示;向上传播在这一节点处停止。在向上传播的每一阶段,改变也向下传播到其它可见节点。因此,首先修改最后一个节点的父节点的视图;然后在向下传播中,修改最后一个节点的“兄弟节点”。下一向上传播修改祖父节点的视图,且第二个向下传播修改第一个叔父节点,然后修改第一个表兄弟节点。向下传播如前一样在“表兄弟节点”的面积变得小于minimumArea时或在节点完全落在屏幕之外时暂停。
上述技术涉及将各节点的布局转换成树,这在图21和22中概念性地示出。如可从图21和22中见到的,对特定的所显示的一组节点有一对应的树,且树结构可用于如上所述地传播视图信息。节点401到408中的每一个对应于图22所示的树上具有类似号码的点。图20中概念性地示出的是将关于节点储存的信息,诸如指针和例如指示另一节点的大小和位置的信息。图23是对应于图22的树图的一部分的框图,其中采用示例性值来示出可用于定义节点403的属性的数据。在该示例性情况下,节点403包括指向子节点406的指针、关于子节点406的逻辑大小(100x100)的信息、以及指定子节点406在节点403的坐标中的位置:10,20的数据。
扫视操作可将最后一个节点移得足够远,使得它不再属于viewStack。或者,放大可将子节点扩大到需要延长viewStack的程度,或者缩小可能使最后一个节点的面积变得小于最小面积,从而需要截断viewStack。在所有这些情况中,最后一个节点的身份改变。这些情况在向下传播期间被检测到,这可相应地改变viewStack,从而可能使其更长或更短。
上述的一个简单情况是在缩放期间节点被启动,使得现在它需要被放到视图栈中。另一示例是通过缩小,先前可见的节点变得太小以使其必须从视图栈中移除。
这一概念的扩展是避免响应于长缩小立即截断viewStack。截断viewStack仅在用户然后扫视时才必要。尽管长缩小将导致深缩放的节点的view字段变得非常大(因此在数值上不准确),但可将字段
Point2D viewCenter;
添加到Node结构中,表示view矩形的中心点;因此,没有扫视的缩放不会更改任何节点的viewCenter字段。这一构造允许在放大回来之后立即进行程度大的缩小。由于viewStack保持不变,因此用户然后可精确地返回到起始视图。这一行为类似于web浏览器的“后退”和“前进”按钮:“后退”类似于缩小,且“前进”类似于放大回来。在web浏览器中,如果用户使用“后退”来返回到前一网页,但是然后点击另一链接,则在这一点处“前进”不再起作用。之后点击另一链接因此类似于在缩小之后扫视。
以上提供了可视内容可用各种方式以基本无限的精度来显示和导航,且仅受应用程序在其中运行的计算机系统的容量的限制。在任何给定时刻显示的可视内容因而作为节点的组合来显示,其中仅启动对特定视图所需的节点,并且所有其它节点在不启动的情况下作为另一节点的一部分来显示或完全不显示。可以理解,各种其它实施例对本领域的技术人员而言都是显而易见的,且本发明不限于此处所描述的实施例。
用于导航图像的方法和装置
发明背景
本发明涉及用于以提供平滑的、连续的导航移动的外观的方式在对象的图像上进行诸如缩放和扫视等导航的方法和装置。
大多数常规图形计算机用户界面(GUI)是使用固定空间比例的可视组件来设计的,然而,长久以来认识到可视组件可以被表示和操纵成使得它们在显示器上不具有固定的空间比例;实际上,可视组件可被扫视和/或放大或缩小。对于例如查看地图、浏览诸如报纸等文本布局、查看数字照片、查看蓝图或图表以及查看其它大数据集等,在图像上放大和缩小的能力是合乎需要的。
许多现有的计算机应用程序,诸如Microsoft Word、Adobe Photo Shop、AdobeAcrobat等都包括可缩放组件。一般而言,由这些计算机应用程序提供的缩放能力是用户与软件的交互的外围方面,且缩放特征仅偶尔被采用。这些计算机应用程序允许用户在图像上平滑且连续地扫视(例如,利用滚动条或光标来将查看的图像向左、右、上或下平移)。然而,这些计算机应用程序的一个重大问题是它们不允许用户平滑且连续地缩放。实际上,它们提供了离散步骤中的缩放,诸如10%、25%、50%、75%、100%、150%、200%、500%等。用户使用光标选择期望的缩放,且作为响应,图像急剧地改变到所选择的缩放级别。
不连续缩放的不合需要的质量也存在于基于因特网的计算机应用程序中。作为www.mapquest.com网站的基础的计算机应用程序表明了这一点。MapQuest网站允许用户输入一个或多个地址,并作为响应接收道路地图的图像。图1-4是可响应于对美国纽约州的Long Island的地区地图的查询而从MapQuest网站获得的图像的示例。MapQuest网站允许用户放大和缩小到离散的级别,诸如10级。图1是缩放级别5下的呈现,它大约是100米/像素。图2是缩放级别6下的图像,它大约是35米/像素。图3是缩放级别7下的图像,它大约是20米/像素。图4是缩放级别9下的图像,它大约是10米/像素。
如可通过比较图1-4看到的,缩放级别之间的急剧转变导致在缩小时突然且急剧的细节丢失,以及在放大时突然且急剧的细节增加。例如,非本地的、次要的或连接的道路可在图24中见到(在缩放级别5下),而次要且连接的道路在作为紧接着的下一缩放级别的图25中突然出现。这一急剧的不连续性在利用MapQuest网站时是非常令人不满的。然而,要注意,即使MapQuest软件应用程序被修改成允许例如缩放级别5(图24)下的地方街道的视图,但是结果仍是不令人满意的。尽管地图的视觉密度随着缩放级别而改变,使得在某一缩放级别处,结果可能是令人满意的(例如,图26的级别7处),但是当放大时,道路不会变粗,从而使得地图看上去过度稀疏。当放大时,道路最终彼此相撞,从而迅速形成其中个别道路不能区分的实心嵌套。
由于与道路类别相关联的变化的粗略度级别,提供对道路地图图像的平滑、连续的缩放是有问题的。在美国,大约有五类道路(如在由美国人口普查局发布的Tiger/Line数据下分类的):A1,主要高速公路;A2,主要道路;A3;州级高速公路、次要道路和连接道路;A4,地区街道、城市街道和乡村道路;以及A5,土路。这些道路可被视为是总体对象(即,道路地图)的元素。道路元素的粗略度显现是因为A4道路比A3道路多得多,A3道路比A2道路多得多,而A2道路比A1道路多得多。另外,道路的物理尺寸(例如,其宽度)显著变化。A1道路可以约为16米宽,A2道路可以约为12米宽,A3道路可以约为8米宽,A4道路可以约为5米宽,而A5道路可以约为2.5米宽。
MapQuest计算机应用程序通过仅显示在特定缩放级别下被认为适当的道路类别来处理这些变化的粗略度级别。例如,国家级视图可能仅示出A1道路,而州级视图可能示出A1和A2道路,且县级视图可能示出A1、A2和A3道路。即使MapQuest被修改成允许对道路地图的连续缩放,该方法也会导致在缩放期间道路类别的突然出现和消失,这是混乱且在视觉上不是令人愉悦的。
鉴于以上原因,本领域中需要用于导航复杂对象的图像的方法和装置,它允许对图像进行平滑且连续的缩放,同时也基于其大小或重要性保留了对象的元素之间的视觉区别。
发明概述
根据本发明的一个或多个方面,构想了执行各种动作的方法和装置,这些动作包括:放大或缩小具有至少一个对象的图像,其中至少一个对象的至少某些元素以在物理上与同缩放关联的一个或多个缩放级别不成比例的方式按比例地放大和/或缩小。
物理上不成比例的缩放可通过以下公式来表达:p=c·d·za,其中p是该缩放级别下对象的一个或多个元素的以像素为单位的线性大小,c是常量,d是该对象的一个或多个元素的按照物理单位的线性大小,z是按照物理线性大小/像素的单位的缩放级别,而a是比例幂,其中a≠-1。
在非物理比例缩放下,比例幂a在缩放级别z0和z1的范围内不等于-1(通常-1<a<0),其中z0的物理线性大小/像素比z1低。较佳的是,z0和z1中的至少一个可对于对象的一个或多个元素变化。注意,a、c和d也可在各元素之间变化。
至少一个对象的至少某些元素也可以在物理上与同缩放相关联的一个或多个缩放级别成比例的方式按比例放大和/或缩小。物理上成比例的缩放可由以下公式表达:p=c·d/z,其中p是该缩放级别下对象的一个或多个元素的以像素为单位的线性大小,c是常量,d是按照物理单位的对象的一个或多个元素的线性大小,而z是按照物理线性大小/像素的单位的缩放级别。
注意,迄今和/或本文中以后所描述的方法和装置可利用已知技术中的任一种来实现,诸如标准数字电路、模拟电路、可用于执行软件和/或固件程序的已知处理器中的任一种、可编程数字器件或系统、可编程阵列逻辑器件或以上的任何组合。本发明也可用软件程序来实施,以储存在合适的存储介质中并由处理单元来执行。
对象的元素可以有变化的粗略程度。例如,如上所述,道路地图对象的元素的粗略度显现,因为A4道路比A3道路多得多,A3道路比A2道路多得多,而A2道路比A1道路多得多。道路类别中的粗略程度在诸如平均道路长度、相交频率和最大曲率等特性中也是显然的。其它图像对象的元素的粗略度可用其它方式来显现,这些方式太多以致于无法全部列出。由此,对给定预定图像内的元素的缩放可基于以下的至少之一在物理上成比例或物理上不成比例:(i)这些元素的粗略程度;以及(ii)给定预定图像的缩放级别。例如,对象可以是道路地图,而对象的元素可以是道路,且变化的粗略程度可以是道路层次。由此,给定预定图像中给定道路的缩放可以基于以下而在物理上成比例或在物理上不成比例:(i)给定道路的道路层次,以及(ii)给定预定图像的缩放级别。
根据本发明的一个或多个其它方面,构想了执行各种动作的方法和装置,这些动作包括:在客户机终端处接收道路地图的多个变化缩放级别的预呈现图像;在客户机终端处接收包括缩放信息的一个或多个用户导航命令;以及混和两个或多个预呈现图像以获得对应于导航命令的缩放信息的中间缩放级别的中间图像,使得客户机终端上中间图像的显示提供平滑导航的外观。
根据本发明的一个或多个另外的方面,构想了执行各种动作的方法和装置,这些动作包括:在客户机终端处接收至少一个对象的多个变化缩放级别的预呈现图像,该至少一个对象的至少某些元素被放大和/或缩小以产生多个预定图像,且缩放是以下的至少一种:(i)与缩放级别物理上成比例;以及(ii)与缩放级别物理上不成比例;在客户机终端处接收包括缩放信息的一个或多个用户导航命令;混和两个或多个预呈现图像以获得对应于导航命令的缩放信息的中间缩放级别的中间图像;以及在客户机终端上显示该中间图像。
根据本发明的一个或多个另外的方面,构想了执行各种动作的装置和方法,这些动作包括:通过通信信道向客户机终端发送道路地图的多个变化缩放级别的预呈现图像;在客户机终端处接收多个预呈现图像;使用客户机终端发出包括缩放信息的一个或多个导航命令;以及混和两个或多个预呈现图像以获得对应于导航命令的缩放信息的中间缩放级别的中间图像,使得客户机终端上中间图像的显示提供平滑导航的外观。
根据本发明的一个或多个另外的方面,构想了执行各种动作的装置和方法,包括:通过通信信道向客户机终端发送至少一个对象的多个变化缩放级别的预呈现图像,该至少一个对象的至少某些元素被放大和/或缩小以产生多个预定图像,且缩放可以是以下的至少一种:(i)与缩放级别物理上成比例;以及(ii)与缩放级别物理上不成比例;在客户机终端处接收多个预呈现图像;使用客户机终端发出包括缩放信息的一个或多个用户导航命令;混和两个预呈现图像以获得对应于导航命令的缩放信息的中间缩放级别的中间图像;以及在客户机终端上显示中间图像。
本领域普通技术人员在结合附图考虑此处的描述时可以清楚其它方面、特征和优点。
附图简述
为图示本发明的目的,在附图中示出了各种形式,但是可以理解,本发明不限于所示的精确排列和手段。
图24是从MapQuest网站取得的缩放级别5下的图像;
图25是从MapQuest网站取得的缩放级别6下的图像;
图26是从MapQuest网站取得的缩放级别7下的图像;
图27是从MapQuest网站取得的缩放级别9下的图像;
图28是根据本发明的一个或多个方面在约334米/像素的缩放级别下产生的Long Island的图像;
图29是根据本发明的一个或多个另外的方面在约191米/像素的缩放级别下产生的Long Island的图像;
图30是根据本发明的一个或多个另外的方面在约109.2米/像素的缩放级别下产生的Long Island的图像;
图31是根据本发明的一个或多个另外的方面在约62.4米/像素的缩放级别下产生的Long Island的图像;
图32是根据本发明的一个或多个另外的方面在约35.7米/像素的缩放级别下产生的Long Island的图像;
图33是根据本发明的一个或多个另外的方面在约20.4米/像素的缩放级别下产生的Long Island的图像;
图34是根据本发明的一个或多个另外的方面在约11.7米/像素的缩放级别下产生的Long Island的图像;
图35是示出根据本发明的一个或多个方面可执行以提供图像的平滑且连续的导航的处理步骤的流程图;
图36是示出根据本发明的各方面可执行以平滑地导航图像的其它处理步骤的流程图;
图37是示出根据本发明的一个或多个另外的方面的物理和非物理比例缩放的以像素为单位的线宽对以米/像素为单位的缩放级别的对数-对数曲线图;以及
图38是示出图37的物理和非物理比例缩放中的变化的对数-对数曲线图。
图16A-D示出了其端点精确地位于像素坐标的中心的相应的抗混叠垂直线;
图17A-C示出了其端点不被定位成落在精确的像素坐标上的斜坡上的相应的抗混叠线;以及
图41是图37的线宽对缩放级别的对数-对数曲线图,包括指示增量线宽的水平线,以及被间隔成使得两条相邻垂直线之间的间隔上的线宽不会改变两个以上像素的垂直线。
发明详述
现在参考附图,其中相同的标号表示相同的元素,图5-11中示出了表示美国纽约州Long Island的道路系统的一系列图像,其中每一图像在不同的缩放级别(或分辨率)下。在深入研究如何实现本发明的技术细节之前,将结合使用本发明的期望结果特征,即至少是特别在缩放时平滑且连续导航的外观、同时保持信息完整性来讨论这些图像。
注意,将在以下讨论的本发明的各方面可在除道路地图图像的导航之外的环境中应用。实际上,对其可采用本发明的图像和实现的范围非常多以致于无法全部列出。例如,本发明的特征可用于导航人体解剖的图像、复杂地形、诸如接线图或蓝图等工程图、基因本体等等。然而,可以发现本发明尤其适用于导航其中其元素具有变化的细节水平或粗略度的图像。因此,出于简明和清楚的目的,将结合一特定示例,即道路地图的图像来讨论本发明的各方面。
尽管在专利文献中展示平滑且连续的缩放的外观是不可行的,但是该特征可通过在基于Pentium的计算机上执行合适的软件程序经由实验和原型开发来展示。图28所示的道路地图的图像100A在可按照物理长度/像素(或物理线性像素/像素)为单位来表征的缩放级别。换言之,缩放级别z表示图像100A的单个像素所表示的实际物理线性大小。在图28中,缩放级别约是334米/像素。本领域技术人员可以理解,缩放级别可以用其它单位来表达而不脱离所要求保护的本发明的精神和范围。图29是与图28相同的道路地图的图像100B,然而缩放级别z是约191米/像素。
根据本发明的一个或多个方面,实施本发明的一个或多个方面的软件程序的用户可在图5和6所示的级别之间放大或缩小。重要的是注意,这样的缩放具有从334米/像素(图28)到/自191米/像素级别(图29)以及其间的任何级别的平滑且连续的转变的外观。同样,用户可缩放到其它级别,诸如z=109.2米/像素(图30)、z=62.4米/像素(图31)、z=35.7米/像素(图32)、z=20.4米/像素(图33)以及z=11.7米/像素(图34)。通过这些缩放级别以及其间的任何级别的转变同样也有利地具有平滑且连续的移动的外观。
图5-11中示出的本发明的另一重要特征是在从一个级别缩放到另一级别时只有极少细节或没有细节突然出现或消失。图31所示的细节(在z=62.4米/像素的缩放级别下)也可在图28中找到(在z=334米/像素的缩放级别下)。即使图像对象(该情况中为道路地图)包括粗略度程度变化的元素(即,道路)时也是如此。实际上,图31的道路地图100D至少包括诸如102等A1高速公路、诸如104等A3二级公路以及诸如106等A4地方道路。然而,这些细节,即使是A4地方道路也仍可在图28的图像100A中见到,它与图31的图像100D相比被充分缩小。
此外,尽管A4地方道路106可在z=334米/像素的缩放级别(图28)下看到,但A1、A2、A3和A4道路可彼此区分。甚至A1主要高速公路102和A2主要道路108之间的差别也可关于给予所呈现图像100A中的这些道路的相对深浅度来彼此区分。
在道路层次中进行区分的能力在用户继续例如放大到如图33的图像100F所示的z=20.4米/像素的缩放级别时也被有利地保留。尽管A1主要高速公路102的深浅度与图31中z=62.4米/像素的缩放级别相比显著增加,但是它没有增加到消除诸如A4地方道路106或甚至是A5土路等其它细节的程度。尽管如此,较低层次级别下的道路,诸如A4地方道路106的深浅度与图31中z=62.4米/像素的缩放级别处其对应物相比仍显著增加。
由此,即使图28所示的缩放级别和图34所示的缩放级别之间的动态范围是充足的,且细节基本保持一致(即,在平滑缩放时没有道路突然出现或消失),用户试图在给定缩放级别下获得的信息也不会被不合需要的伪像遮挡。例如,在z=334米/像素的缩放级别(图28)下,用户可能希望获得存在什么主要高速公路以及它们在什么方向上延伸的一般感觉。该信息即使在还描绘了A4地方道路106的情况下也可容易地获得。在z=62.4米/像素的缩放级别下(图31),用户可能希望确定特定的A1主要高速公路102或A2主要道路108是否服务特定的城市或街区。用户同样可在没有来自诸如A4地方道路106或甚至A5土路的存在和范围等其它详细得多的信息的干扰的情况下获得该信息。最后,在z=11.7米/像素的缩放级别下,用户可能对找到诸如112等特定的A4地方道路感兴趣,并且可在没有受到诸如A1主要高速公路102等大得多的道路的干扰的情况下完成该事项。
为了实现以上讨论的本发明的各方面的一个或多个,可以构想一个或多个计算设备执行使得该计算设备进行适当动作的一个或多个软件程序。在这一点上,现在对图12-13作出参考,图12-13是示出较佳地由一个或多个计算设备和/或相关设备执行的处理步骤的流程图。
尽管较佳的是由市场上可购买的计算设备(诸如基于Pentium的计算机)来执行该处理流程,但是可采用许多其它技术中的任一种来执行这些处理步骤而不脱离所要求保护的本发明的精神和范围。实际上,所采用的硬件可利用任何其它已知的或此后开发的技术来实现,诸如标准数字电路、模拟电路、可用于执行软件和/或固件程序的已知处理器中的任一种、一个或多个可编程数字器件或系统,诸如可编程只读存储器(PROM)、可编程阵列逻辑器件(PAL)、以上的任何组合、等等。此外,本发明的方法可用可被储存在已知或此后开发的介质的任一个上的软件程序来实施。
图35示出了本发明的一个实施例,其中准备多个图像(其每一个在不同的缩放级别或分辨率下)(动作200),并将两个或多个图像混和在一起以实现诸如缩放等平滑导航的外观(动作206)。尽管不是实施本发明所必需的,但是可以构想图35中所示的方法可结合服务供应商-客户机关系来使用。例如,服务供应商可花费资源来准备多个预呈现图像(动作200)并通过诸如因特网等通信信道使得这些图像对用户的客户机终端可用(动作202)。或者,预呈现图像可以是用户在他或她的计算机上加载并执行应用程序的整体或相关部分。
通过实验可以发现,当使用混和方法时,在图像对象是道路地图时以下缩放级别下的一组图像表现良好:30米/像素、50米/像素、75米/像素、100米/像素、200米/像素、300米/像素、500米/像素、1000米/像素以及3000米/像素。然而,注意,在任何数量的分辨率下可以采用任何数量的图像而不脱离本发明的范围。实际上,其它环境中的其它图像对象可由较大或较小数目的图像来最佳地提供,其中特定缩放级别不同于以上示例。
不管图像是如何由客户机终端获得的,响应于用户发起的诸如缩放命令等导航命令(动作204),客户机终端较佳地可用来混和两个或多个图像以产生与导航命令相一致的中间分辨率图像(动作206)。该混和可通过多种方法来实现,诸如由Lance Williams在Pyramidal Parametrics,SIGGRAPH′83的Computer Graphics会议论文集17(3):1-11(1983)中描述的公知的三线性内插技术,该文献的全部公开内容通过引用结合于此。图像内插的其它方法也可结合本发明来使用,诸如双三次线性内插,且还有其它一些方法将在未来开发。注意,本发明并不要求或依赖于这些混和方法中的任何特定的一个。例如,如图31所示,用户可能希望导航到62.4米/像素的缩放级别。因为这一缩放级别可以在两个预呈现图像之间(例如,在本示例中在缩放级别50米/像素和缩放级别75米/像素之间),因此所需的62.4米/像素的缩放级别可使用三线性内插技术来实现。此外,50米/像素和75米/像素之间的任何缩放级别可利用如上所述的混和方法来获得,该方法如果被执行得足够快将提供平滑且连续的导航的外观。混和技术可对其它缩放级别,诸如图32所示的35.7米/像素级别执行。在这一情况下,该混和技术可被执行为在迄今为止所讨论的示例的30米/像素和50米/像素的预呈现图像之间。
以上混和方法可在其上实现本发明的处理单元的计算能力不够高以(i)执行第一实例中的呈现操作,和/或(ii)“即时”或“在进行中”(例如,实时)执行图像呈现时使用,以实现对于平滑导航的高图像帧速率。然而,如以下将讨论的,本发明的其它实施例构想了对已知的或此后开发的能够在客户机终端处呈现混和和/或高帧速率应用程序的高能力处理单元的使用。
图36的处理流程示出了被较佳地进行以准备根据本发明的一个或多个图像的详细步骤和/或动作。在动作220处,使用已知的或此后开发的技术中的任一种来获得关于一个或多个图像对象的信息。通常,这些图像对象是使用适当的图元,诸如多边形、线、点等来建模的。例如,当图像对象是地图时,可容易地获得任何通用横向Mercator(UTM)区中的道路的模型。该模型通常采用构成区中的道路的线段(以任何坐标系统)的列表的形式。该列表可使用已知的或此后开发的呈现过程中的任一种转换成空间域中的图像(像素图像),只要该过程结合了用于确定像素(空间)域中给定图元的深浅度(例如,外观或真实厚度)的特定技术即可。与以上道路地图示例相一致,呈现过程应当结合用于确定空间域中对道路地图的道路建模的线的深浅度的特定技术。这些技术将在以下讨论。
在动作222处(图36),将对象的元素分类。在道路地图对象的情况下,分类可采取识别已经存在的类别,即A1、A2、A3、A4和A5的形式。实际上,这些道路元素具有变化的粗略程度,并且如以下所讨论的,可以基于该分类被不同地呈现。在动作224处,基于缩放级别向不同的道路元素应用数学比例缩放。如将在以下更详细讨论的,数学比例缩放也可基于元素分类来变化。
作为背景,有两种用于呈现诸如地图道路等图像元素的常规技术:实际物理比例缩放以及预设像素宽度。实际物理比例缩放技术规定:道路地图如同以不同的比例查看道路的实际物理图像那样来呈现。例如,A1高速公路可能是16米宽,A2道路可能是12米宽,A3道路可能是8米宽,A4道路可能是5米宽,而A5道路可能是2.5米宽。尽管这在地图的小区域上放大时对查看者可能是可接受的,但是当缩小时,所有主要和次要道路都变得太细以致于无法辨认出。在某一缩放级别下,如在州级别(例如,约200米/像素)下,根本没有道路能被看见。
预设像素宽度方法规定每一道路是某一特定像素宽度,诸如显示器上宽为1像素。诸如高速公路等主要道路可通过使它们变为2像素宽等来强调。不幸的是,该方法使得地图的视觉密度在放大和缩小时改变。在某一缩放级别下,结果可能是令人满意的,例如在小尺寸的乡村级别下。然而,当缩小时,道路不被加粗,从而使得地图看上去过于稀疏。此外,当缩小时,道路将彼此相撞,从而迅速地形成其中个别道路不可分辨的实心嵌套。
根据本发明的一个或多个方面,在动作224处,以使得至少某些图像元素取决于将在以下更详细讨论的参数(i)物理上与缩放级别成比例地;或(ii)物理上不与缩放级别成比例地放大和/或缩小的方式来产生图像。
注意,缩放“在物理上与缩放级别成比例”意味着表示道路宽度的像素数随着缩放级别而增加或减少,因为元素的大小将看似随其离人类眼睛的距离而改变。给定物理大小为d的对象的外观长度y,透视公式为:
y=c·d/x
其中c是确定成角透视的常量,x是对象与查看者的距离。
在本发明中,物理线性大小为d′的对象以显示器像素p为单位的线性大小由下式给出:
p=d′·za
其中z是以物理线性大小/像素(例如,米/像素)为单位的缩放级别,a是幂律。当a=-1且d′=d(对象的真实物理线性大小)时,该等式在维度上正确并变得等价于p=y且z=x/c的透视公式。这表示物理缩放和透视变换之间的等价性:放大等价于将对象移向查看者,而放大等价于将对象移开。
为实现非物理比例缩放,可将a设为除-1之外的幂律,并可将d′设为除实际物理线性大小d之外的物理线性大小。在道路地图的环境中,其中p可表示以像素为单位的道路的显示宽度,而d′可表示采用物理单位的估算宽度,“物理上与缩放级别不成比例”意味着以显示器像素为单位的道路宽度以除物理上与缩放级别成比例之外的方式,即a≠-1随缩放级别增加或减少。比例缩放以实现某些期望结果的方式来变形。
注意,“线性大小”意味着一维大小。例如,如果考虑任何二维对象并将其“线性大小”加倍,则将面积乘以4=22。在二维情况下,对象的元素的线性大小可涉及长度、宽度、半径、直径和/或可用尺在欧几里得平面上读出的任何其它度量。线的粗细度、线的长度、圆或盘的直径、多边形一侧的长度以及两点之间的距离都是线性大小的示例。在这一意义上,二维中的“线性大小”是在2D欧几里得平面上对象的两个标识点之间的距离。例如,线性大小可通过取(dx2+dy2)的平方根来计算,其中dx=x1-x0,dy=y1-y0,且两个标识点由笛卡尔坐标(x0,y0)和(x1,y1)给出。
“线性大小”的概念自然地延及多于二维;例如,如果考虑体积对象,则将其线性大小加倍涉及将体积增大到8=23倍。也可对非欧几里得空间,诸如球体表面定义类似的线性大小度量。
a<0的任何幂律都将导致元素的呈现大小在缩小时减小并在放大时增大。当a<-1时,元素的呈现大小在缩小时将比对于成比例物理缩放时更快地减小。相反,当-1<a<0时,呈现元素的大小在缩小时将比成比例物理缩放时更慢地减小。
根据本发明的至少一个方面,对给定对象的给定长度,允许p(z)基本连续以使得在导航其间用户不经历图像元素大小的突然跳跃或不连续(这与允许最极端的不连续性—导航其间元素的突然出现或消失的常规技术相反)。此外,较佳的是p(z)在缩小时单调递减,使得缩小导致对象元素变小(例如,道路变细),并使得放大导致对象元素变大。这给予用户关于图像对象的物理性意义。
以上讨论的比例缩放特征可以参考图37来更完全地理解,图37是对A1高速公路以像素为单位的呈现线宽对以米/像素为单位的缩放级别的对数-对数曲线图。(在x轴上绘出log(z)并在y轴上绘出log(p)是方便的,因为由于关系log(xa)=a·log(x),曲线变为直线)。线(道路)宽度对缩放级别曲线图的基本特性是:
(i)道路宽度的比例缩放在放大时(例如,最高达约0.5米/像素)可以与缩放级别在物理上成比例;
(ii)道路宽度的比例缩放在缩小时(例如,约0.5米/像素之上)可以与缩放级别在物理上不成比例;
(iii)道路宽度的比例缩放在进一步缩小(例如,约50米/像素之上或更高,取决于将在下文更详细讨论的参数)时可以与缩放级别在物理上成比例。
对于其中道路宽度的比例缩放与缩放级别在物理上成比例的区域,采用比例缩放公式p=d′·za,其中a=-1。在该示例中,对于实际的A1高速公路的物理宽度的合理值是约d′=16米。由此,代表A1高速公路的线的呈现宽度在至少缩小到某一缩放级别z0,如z0=0.5米/像素时随物理比例缩放而单调递减。
对于z0=0.5的缩放级别被选为内部比例,在该比例之下应用物理比例缩放。这避免了在道路地图与具有真实物理尺寸的其它精细比例GIS内容组合时的非物理外观。在该示例中,z0=0.5米/像素或2像素/米,它在被表达为15英寸显示器(具有1600x1200的像素分辨率)上的地图比例时对应于约1:2600的比例。在作为对于A1道路的合理真实物理宽度的d=16米处,所呈现的道路在放大(0.5米/像素或更小)时看似为其实际大小。在0.1米/像素的缩放级别下,所呈现的线约是160像素宽。在0.5米/像素的缩放级别下,所呈现的线是32像素宽。
对于其中道路宽度的比例缩放与缩放级别物理上不成比例的区域,采用比例缩放公式p=d′·za,其中-1<a<0(在缩放级别z0和z1的范围内)。在该示例中,在约z0=0.5米/像素和在z1=3300米/像素之间进行非物理比例缩放。再一次,当-1<a<0时,所呈现道路的宽度在缩小时比在成比例物理缩放时更慢地减小。有利的是,这允许A1道路在缩小时保持可见(且可与其它较小的道路区分)。例如,如图28所示,A1道路102在缩放级别z=334米/像素下保持可见且可与其它道路区分。假定A1道路的物理宽度是d′=d=16米,则使用物理比例缩放呈现的线的宽度在约3300米/像素的缩放级别下将是约0.005像素,使得它基本上不可见。然而,使用其中-1<a<0(本示例中a约为-0.473)的非物理比例缩放,所呈现线的宽度在3300米/像素的缩放级别下约为0.8像素,使得它清晰可见。
注意,z1的值被选为给定道路仍具有“大于物理的”重要性的最大缩小比例。作为示例,如果整个美国被呈现在1600x1200像素的显示器上,则分辨率将是约3300米/像素或3.3千米/像素。如果查看整个世界,则没有理由使美国高速公路呈现出相对于单独的国家视图有增强的重要性。
由此,在超过z1的缩放级别,在以上示例中是约3300米/像素,道路宽度的比例缩放再一次与缩放级别在物理上成比例,但是为p(z)的连续性起见较佳地具有较大的d′(比真实宽度d要大得多)。在这一区中,采用p=d′·za的比例缩放公式,其中a=-1。为了使所呈现道路的宽度在z1=3300米/像素下连续,选择新估算的A1高速公路的物理宽度,例如d′=1.65千米。较佳地以这样一种方式来选择z1和新的d′值:使得在外部比例z1下,所呈现的线宽将是合理个数的像素。在这一情况下,在其中整个国家可在显示器上看见的缩放级别下(约3300米/像素),所有道路可以是约1/2像素宽,这虽然较细但仍清晰可见;这对应于估算的物理道路宽度1650米,即1.65千米。
以上建议了用于所呈现线宽作为缩放级别的函数的一组特定公式:
p(z)=d0·z-1,如果z≤z0
p(z)=d1·za,如果z0<z<z1
p(z)=d2·z-1,如果z≥z1
以上形式的p(z)具有六个参数:z0、z1、d0、d1、d2和a。z0和z1标记了p(z)的行为改变的比例。在放大区(z≤z0)中,缩放是物理宽度为d0的物理缩放(即,z的指数是-1),这较佳地对应于真实物理宽度d。在缩小区(z≥z1)中,缩放同样是物理的,但物理宽度为d1,这一般不对应于d。在z0和z1之间,所呈现的线宽随着幂律a比例缩放,a可以是除-1之外的值。给定p(z)连续的优先选择,则指定z0、z1、d0和d2足以唯一地确定d1和a,这在图37中清楚地示出。
以上相对于A1道路讨论的方法可以应用于道路地图对象的其它道路元素。将这些比例缩放技术应用于A1、A2、A3、A4和A5道路的示例在图15的对数-对数曲线图中示出。在本示例中,对于所有的道路z0=0.5米/像素,尽管它可以取决于环境而在各元素之间不同。因为A2道路一般比A1道路略小,因此d0=12米。此外,A2道路例如在美国州级上是“重要的”,因此z1=312米/像素,这大致是单个州的呈现分辨率(线性比例下约为国家的1/10)。在这一比例下,可以发现一个像素的线宽是合乎需要的,因此d2=312米是合理的设置。
使用以上对A1和A2道路列出的一般方法,可建立地图对象的剩余元素的参数。A3道路:d0=8米,z0=0.5米/像素,z1=50米/像素且d2=100米。A4街道:d0=5米,z0=0.5米/像素,z1=20米/像素且d2=20米。而A5土路:d0=2.5米,z0=0.5米/像素,z1=20米/像素且d2=20米。注意,使用这些参数设置,A5土路在放大缩放级别下看上去越来越像街道,而其物理比例在被放大时为一半宽。
图38的对数-对数曲线图概括了道路类型的比例缩放行为。注意,在每一比例下,外观宽度为A1>A2>A3>A4>=A5。还要注意,除了土路之外,幂律都在a=-0.41附近出现。虚线都具有-1的斜率,且表示不同物理宽度下的物理比例缩放。从上到下,这些虚线的对应物理宽度为:1.65千米、312米、100米、20米、16米、12米、8米、5米和2.5米。
当使用多个预呈现图像之间的内插时,在许多情况下有可能确保所得的内插与所有线或其它图元几何元素在其如由物理和非物理比例缩放公式确定的正确像素宽度下的理想呈现是人类不可分辨或几乎不可分辨的。为理解本发明的这一替换实施例,以下将呈现关于抗混叠线绘制的某些背景。
对抗混叠线绘制的讨论将根据以上详细讨论的道路地图示例来呈现,其中所有的图元是线,且线宽服从先前所述的比例缩放公式。参考图39A,1像素宽的垂直线用黑色绘制在白色背景上,使得该线的水平位置与像素网格精确对齐,该线仅由白色背景上1像素宽的黑色像素列构成。根据本发明的各方面,期望考虑并适应其中线宽是非整个像素的情况。参考图39B,如果线的端点保持固定,但是线的粗细度被增加到1.5像素宽,则在抗混叠图形显示器上,中心列的左侧和右侧的像素列用25%的灰度绘出。参考图39C,在2像素宽下,这些侧面列用50%灰度绘出。参考图39D,在3像素宽下,侧面列用100%黑色绘出,且结果是所期望的三个实心黑色列。
在像素化显示器上绘出非整数宽度的线的这一方法导致线宽改变时视觉连续性的感觉(或假象),从而允许不同宽度的线即使在它们的宽度仅相差一个像素的一小部分时也可清楚地区分。一般而言,称为抗混叠线绘制的这一方法被设计成确保强度函数(或者对于白色背景上的黑色线,为“1-强度”函数)在对于所绘出的线的垂线上的线积分等于线宽。该方法可容易地推广到其端点不精确地位于像素中心的线、处于除垂直以外的其它方向的线、以及曲线。
注意,图16A-D的抗混叠垂直线的绘制也可通过对两个图像进行α混和来实现,其中一个图像(图像A)的线是1像素宽,而另一图像(图像B)的线是3像素宽。α混和向显示器上的每一像素分配(1-α)*(图像A中的对应像素)+α*(图像B中的对应像素)。当α在0和1之间变化时,所呈现的线的有效宽度在1和3个像素之间平滑变化。该α混和方法仅在图像A和B中两个所呈现线宽之差是1个像素或更小的大多数一般情况下才产生良好视觉结果;否则,线在中间宽度处可显现为晕圈。同一方法可应用于以不同的线性大小呈现点、多边形、以及许多其它不同的图元图形元素。
再次转向图16A-D,1.5像素宽的线(图39B)和2像素宽的线(图39C)可通过1像素宽的线(图39A)和3像素宽的线(图39D)之间的α混和来构造。参考图17A-C,1像素宽的线(图40A)、2像素宽的线(图40B)和3像素宽的线(图40C)被示出在任意的方向上。关于其中线与像素网格精确对齐的情况的同一原理应用于图17A-C中的任意方向,尽管在它们之间进行α混和的线宽的间距为了得到良好结果可能需要比两个像素更精细。
在本地图示例的上下文中,参考图14-15的对数-对数曲线图可选择不同分辨率的一组图像用于进行预呈现。例如,现在参考图41,它基本上类似于图37,除了图41包括一组水平线和垂直线之外。水平线指示1和10像素之间的线宽,以1个像素为增量。垂直线被间隔成使得两条相邻垂直线之间间隔上的线宽不改变多于两个像素。由此,垂直线表示适于预呈现的一组缩放值,其中两个相邻的这样的预呈现图像之间的α混和将产生几乎等效于以连续可变宽度呈现表示道路的线的特性。
由图41所示的垂直线表示的六个分辨率之间的内插足以使用以约9米/像素及以上示出的比例缩放曲线来准确地呈现A1高速公路。以下关于9米/像素的呈现不需要预呈现,因为这些视图已放大了很多且因此示出了非常少的道路,从而使得垂直地呈现它们比在预呈现图像之间内插在计算上更有效(且对于数据存储要求更有效)。在大于约1000米/像素的分辨率下(这些视图包含地球表面的很大部分),可单独使用最终的预呈现图像,因为它是使用1像素宽的线的呈现。比单个像素细的线更微弱地呈现同一像素。因此,为了产生其中A1线是0.5像素宽的图像,可将1像素宽的线图像乘以值为0.5的α。
在实践中,预呈现略大的一组分辨率,使得在分辨率之间的每一间隔上,图38的比例缩放曲线中没有一个会变化1个像素以上。将允许的变化减小到1像素可得到改进的呈现质量。值得注意的是,在以下共同待决的申请中构想并讨论的小块技术可结合本发明来考虑:2004年3月1日提交的题为SYSTEM AND METHODFOR EXACT RENDERING IN A ZOOMING USER INTERFACE的美国专利申请第10/790,253号,代理案卷号489/2,其全部公开内容通过引用结合于此。该小块技术可用于以特定缩放级别解析图像,即使该级别并不与预呈现图像一致。如果一组略大分辨率中的每一图像以适当的分辨率预呈现并被小块化,则结果是用于对任意复杂度的道路地图进行缩放和扫视导航的完整系统,使得所有的线都看似根据此处所公开的比例缩放公式在宽度上连续变化。
关于可结合实现本发明采用的用于混和图像的其它技术的另外的细节可在2003年6月5日提交的题为SYSTEM AND METHOD FOR THE EFFICIENT,DYNAMIC AND CONTINUOUS DISPLAY OF MULTI RESOLUTIONAL VISUALDATA的美国临时专利申请第60/475,897号中找到,该申请的全部公开内容通过引用结合于此。关于可结合实现本发明采用的混和技术的进一步细节可在2003年3月12日提交的题为SYSTEM AND METHOD FOR FOVEATED,SEAMLESS,PROGRESSIVE RENDERING IN A ZOOMING USER INTERFACE的美国临时专利申请第60/453,897号中找到,该申请的全部公开内容通过引用结合于此。
有利的是,采用以上讨论的本发明的各方面,用户享受通过各缩放级别的平滑且连续的导航的外观。此外,当从一个级别缩放到另一个时,极少细节或没有细节会突然出现或消失。这表示优于现有技术的重大进步。
构想本发明的各方面可应用于众多产品,诸如因特网上的交互式软件应用程序、基于车辆的软件应用程序等等。例如,本发明可由响应于用户请求向客户机终端提供地图和驾驶方向的因特网网站使用。或者,本发明的各方面可用于汽车中的GPS导航系统。本发明也可被结合到医学成像设备中,其中关于例如患者的循环系统、神经系统等的详细信息可如上所述地呈现和导航。本发明的应用很多以致于无法全部列出,但是本领域技术人员可以认识到,它们都在此处被构想并落入所要求保护的本发明的范围之内。
本发明也可结合其中所呈现图像提供用于做广告和其它超前商务的手段的其它应用来使用。关于本发明的这些方面和用途的其它细节可以在与其同日提交的题为METHODS AND APPARATUS FOR EMPLOYING MAPPING TECHNIQUESTO ADVANCE COMMERCE的美国临时专利申请第60/553,803号,代理案卷号489/7中找到,该申请的全部公开内容通过引用结合于此。
尽管在本文中本发明是参考特定实施例来描述的,但是可以理解,这些实施例仅示出了本发明的原理和应用。因此可以理解,可以对所示的实施例作出众多修改并可设计其它安排而不脱离如所附权利要求书定义的本发明的精神和范围。
高效数据高速缓存
背景
“MRU”高速缓存是一种用于在客户机-服务器系统中实现客户机方存储器的公知概念,其中MRU代表“最近最常使用”。假定服务器能够访问客户机并能够向其提供大量数据对象,这些数据对象总计占据了大量存储器。然而,客户机和服务器之间的可用带宽是有限的,因此对从服务器发送数据对象的客户机请求要花费时间。如果对数据对象的访问是合理地“相干的”,这意味着客户机当前需要的对象可能在不久的将来再次需要,则MRU高速缓存可提高客户机-服务器系统的效率。采用这一方法,客户机留出某些有限量的存储器(一般比储存服务器上的所有对象所需的要少得多),并在该存储器(高速缓存)中储存与适合的一样多的最近最常请求的对象。当新对象从服务器发送到客户机且客户机的高速缓存空间已被用尽时,从高速缓存中擦除最近最少使用(LRU)对象以创建其中可储存新对象的数据存储空间。
一般而言,当客户机需要数据对象时,客户机首先检查该对象是否被高速缓存。如果是,则使用高速缓存的表示,从而消除了对缓慢或计算上昂贵的服务器请求的需要。通常,利用高速缓存的表示也将该对象“提升”到高速缓存的MRU端。该方法一般提供了优于对访问的每一数据对象必须向服务器请求数据的实质性能优势。
当计算系统访问新对象并将其储存在高速缓存中时,从高速缓存中擦除最近最少使用对象可导致高速缓存使用率的低效。即使被擦除,高速缓存中的最近最少使用对象也可能再次被服务器请求。当发生这一情况时,服务器可能承担相当慢或计算上昂贵的从更遥远的数据存储源,诸如主存储器或大容量存储设备中检索这一对象的任务。给定高速缓冲存储器的有限大小,对象擦除可能以某一频率进行,由此使得服务器或其它计算系统花费大量的资源来访问更遥远的存储器以获得曾经被方便地储存在高速缓冲存储器中的数据。因此,本领域中需要一种高速缓冲存储器管理的更高效且灵活的方法。
发明概述
根据一方面,本发明可提供一种方法,包括:提供计算系统中具有一组初始高速缓存对象的高速缓存,每一高速缓存对象具有初始压缩比并包括所储存的数据;减少由除高速缓存对象中给定的一个之外的至少一个高速缓存对象所占据的数据存储空间的量;以及增加由该给定高速缓存对象占据的数据存储空间的量。较佳地,减少包括将数据存储空间的量减少一给定量。较佳地,增加包括将由给定高速缓存对象所占据的数据存储空间的量增加一给定量。较佳地,减少包括增大至少一个高速缓存对象的初始压缩比。较佳地,增加包括减小给定高速缓存对象的初始压缩比。较佳地,给定高速缓存对象是高速缓存对象中最近最常使用的高速缓存对象。较佳地,经受减少步骤的至少一个高速缓存对象包括高速缓存对象中最近最少使用的高速缓存对象。
较佳地,减少包括对至少一个高速缓存对象移除所储存数据的一部分。较佳地,增加包括对给定高速缓存对象补充所储存的数据。较佳地,对每一高速缓存对象可用的数据存储空间的量可等于有限个数的离散值中的一个。较佳地,减少包括对高速缓存对象中除给定高速缓存对象之外的至少一个随机选择的高速缓存对象减少数据存储空间的量。较佳地,减少包括将用于至少一个随机选择的高速缓存对象的数据存储空间的量减少到随机确定的程度。较佳地,随机选择的高速缓存对象是使用随机方法和伪随机方法之一来选择的。较佳地,随机选择的高速缓存对象的选择是通过试探来引导的。
较佳地,该方法还包括在增加之后以无损压缩的形式储存给定高速缓存对象。较佳地,该方法还包括在增加之后以未压缩形式储存给定高速缓存对象。较佳地,减少包括移除除给定高速缓存对象之外的至少一个高速缓存对象。
根据另一方面,本发明可提供一种装置,包括具有能够在操作上与主存储器通信的至少一个处理器的计算系统;以及该计算系统中具有一组初始高速缓存对象的高速缓存,每一高速缓存对象具有一组初始压缩比并包括所储存的数据;其中该计算系统可用于减少由除高速缓存对象中给定的一个之外的至少一个高速缓存对象所占据的数据存储空间的量;以及增加由该给定高速缓存对象所占据的数据存储空间的量。较佳地,减少包括将数据存储空间的量减少一给定量。较佳地,增加包括将由给定高速缓存对象占据的数据存储空间的量增加一给定量。较佳地,减少包括增大至少一个高速缓存对象的初始压缩比。较佳地,增加包括减小给定高速缓存对象的初始压缩比。
较佳地,给定高速缓存对象是高速缓存对象中最近最常使用的高速缓存对象。较佳地,减少包括对至少一个高速缓存对象移除所储存数据的一部分。较佳地,增加包括对给定高速缓存对象补充所存储的数据。较佳地,对每一高速缓存对象可用的数据存储空间的量等于有限个数的离散值之一。较佳地,减少包括减少用于高速缓存对象中除给定高速缓存对象之外的至少一个随机选择的高速缓存对象的数据存储空间的量。较佳地,减少包括将用于至少一个随机选择的高速缓存对象的数据存储空间的量减少到随机确定的程度。
根据另一方面,本发明提供一种方法,包括:提供计算系统中的高速缓存,该高速缓存具有一初始条件;如果在该初始条件下在该高速缓存中没有足够的数据存储空间以在该高速缓存中储存至少一个新对象,则压缩该高速缓存中的至少一个对象以为了该至少一个新对象清除数据存储空间;以及在该高速缓存中储存至少一个新对象。较佳地,初始条件对应于高速缓存为空。较佳地,该方法还包括在不压缩储存在高速缓存中的对象的情况下继续在高速缓存中储存新对象,直到高速缓存中没有剩余足够的数据存储空间来储存任何另外的新对象。较佳地,该方法还包括如果在初始条件下在高速缓存中有足够的空间来储存至少一个新对象,则在不压缩的情况下在高速缓存中储存至少一个新对象。
当结合附图考虑本发明的较佳实施例的描述时,本领域技术人员可以清楚其它方面、特征和优点等。
附图简述
图42是根据本发明的一个或多个实施例的高速缓存中个别高速缓存对象取决于该高速缓存对象在该高速缓存内的使用新近性的数据存储大小的曲线图;
图43是根据本发明的一个或多个实施例的由高速缓存中的高速缓存对象所占据的数据存储空间的累计和相对于所累加的高速缓存对象的个数“N”所绘制的曲线图;
图44是根据本发明的一个或多个实施例的包括多个高速缓存对象的数据高速缓存的框图;
图45是根据本发明的一个或多个实施例的其中高速缓存对象已被调整大小的图44的数据高速缓存的框图;
图46是根据本发明的一个或多个实施例的其中所访问的高速缓存对象已被调整大小并被恢复到高速缓存的图45的数据高速缓存的框图;
图47是根据本发明的一个或多个实施例的用于访问数据高速缓存中的高速缓存对象和更新数据高速缓存的方法的流程图;以及
图48是适用于本发明的一个或多个实施例的计算系统的框图。
为图示本发明的各方面起见,附图中示出了当前较佳的形式,但是可以理解,本发明不限于所示的精确排列和手段。
较佳实施例的详细描述
本发明公开参考了高速缓存的LRU和MRU端。对象一般在MRU端处添加,并且一般从LRU端擦除。然而,本发明不限于这一方案。注意,高速缓存中高速缓存对象的物理布局不需要对应于LRU-MUR布局。高速缓存的布局仅较佳地使得计算系统能够以此处所描述的方式来找到、插入和/或擦除对象。线性LRU-MRU排列是一种用于描述高速缓存的操作的方便机制,但是仅代表了高速缓冲存储器的许多可能实现。此处,术语“高速缓存”和“高速缓冲存储器”被互换地使用。
注意,尽管此处公开的MRU高速缓存及其扩展是在客户机/服务器体系结构的上下文中讨论的,但是类似的原理也适用于许多其它情形,诸如单个计算机上的高效硬盘访问(其中对硬盘的访问比对RAM的访问慢,且因此RAM被用来高速缓存硬盘上最近最常使用的内容)。在一个或多个其它实施例中,数据是从环境中收集或在计算上生成的,而不是从盘加载或通过网络发送的。在每一情况下,客户机能够访问较小但快速的临时高速缓冲存储器,以及从中重复地请求信息的较大但较慢的数据源。该较慢的数据源在此处一般称为“服务器”。
以下对收敛级数的讨论作为对此处所公开的高速缓冲存储器装置和方法的引言。
级数y(n)=n^-p的无穷和对p>1是有穷的,其中n从1到无穷大。类似地,y=1/b^n的和对b>1是有穷的。例如,在后一情况下,如果b=2,则该和恰好为2。这样的收敛级数底层的原理可用于实现如此处所描述的高效数据高速缓存方法和装置的一个或多个实施例。
此处所描述的方法和装置的一个或多个实施例可采用涉及以下描述的“Zeno悖论”的概念。尽管该讨论提供了适用于此处所描述的一个或多个实施例的概念上的支持,但是本发明不受到以下讨论的概念性方面的限制。
Zeno高速缓存概念
Zeno是非常快以致于一步(为辩论起见,可认为他每秒跨一步)就覆盖了从其当前位置到任何跑道的终点的距离的一半的奔跑者。悖论是即使每一步都向前进,但他永远不能完成该路线。该悖论容易地相关于以上b=2且从n=2到无穷大求和的1/b^n级数。这一概念可通过允许高速缓存对象随着使用或访问的新近性的减少被压缩到逐渐变大的程度,来扩展到高速缓存对象的存储(其中高速缓存本身类似于“跑道”)。由此,在前述的从高速缓存的MRU端到其LRU端中,理论上无穷个大小不断减小的另外的高速缓存对象可被放置在适当的位置而空间永远不会被用尽。该原理此处被称为Zeno高速缓存概念。
较佳地,此处所考虑的高速缓存对象是可压缩的,这在本发明的公开中对应于受到有损数据压缩技术的作用。有损数据压缩的特征在于用比数据对象的完全表示少的字节来表示数据对象的能力。较高的压缩比一般导致数据对象的较高失真以及使用压缩数据所呈现的图像的较低质量(其中对象包括一个或多个图像文件)。没有局限地,有损压缩技术也可适用于声音、视频和许多其它数据类型。
在一个或多个实施例中,数据的压缩形式可适用作对未压缩数据的代替。在给定失真水平之下,数据的压缩表示可以完全是适当的,而在给定的失真水平之上,压缩表示作为在客户机等待较高质量形式的数据时的权宜之计可以是适当的。较高质量形式可仅仅比权益使用形式少压缩,或者可被无损压缩或不压缩。
在一个或多个实施例中,较低质量表示可以是较高质量表示的子集,这意味着改进客户机方的表示质量可涉及仅发送补充较低质量表示的数据,由此提供了较高质量表示。较佳地,采用这一方法,无需导致发送与较高质量表示相关联的一组全新数据的负担。该方法较佳地避免了冗余性且因此较佳地实质上提高了效率。
依照上述方法,降低对象的表示质量的相反过程可涉及仅移除用于图像的高质量表示的数据的一部分,而不要求对用于高质量表示的数据进行压缩或重新压缩。这一特性较佳地也提高了此处所公开的高速缓存装置和方法的效率。
在一个或多个实施例中,压缩技术可提供具有范围从有损到无损的压缩级别的对象。该特征可允许以相对于最初通过无损形式发送的极少额外总成本或没有额外总成本来从高度有损到无损地逐步构建数据对象的无损表示。允许以上特征的数据类型和压缩技术的一个示例是如由JPEG2000标准例示的图像的小波压缩。然而,本发明不限于使用JPEG2000标准。
给定以上特性,如果存储器是“连续的”(即,不被离散化成字节),则理论上可能仅通过实施对象的压缩大小符合如此处先前所讨论的收敛级数的规则的约束而在有限量的存储器中储存无穷个数据对象。以下结合图1和2描述能够根据以上所讨论的理论来工作的高速缓存的操作。
在图42的曲线图中,变量“N”较佳地对应于每一高速缓存对象的号码,且每一高速缓存对象的号码的值表示对每一这样的高速缓存对象的使用的新近性,其中递增的N值对应于对与该号码相关联的高速缓存对象的使用的递减的新近性。变量“Y”较佳地对应于每一高速缓存对象的大小。对于“Y”变量,值“1”可对应于高速缓存对象在其最高质量条件下,即当它完全不被压缩时的大小。最近最常使用对象可以用低失真来表示,而最近较少使用对象可以服从与其最后一次使用的新近性相一致的压缩程度。在图42中可以看到,压缩的高速缓存对象大小Y的值随着相关高速缓存对象的使用的新近性降低而下降。注意,“Y”变量可对应于高速缓存中每一对象(无论是否被压缩)的绝对大小(以任意单位来表示)。或者,在一个或多个其它实施例中,“Y”可对应于一压缩比,对该压缩比例如值“1”对应于全大小对象,而值“0.5”对应于占据了其未压缩大小的一半的对象。
参考图43,对每一N值,标号从1到N的对象的大小Y的累计和仍是有穷数,如图43所示。变量“Y”的单位可以用对应于一个完全展开(未压缩)的高速缓存对象的大小的数据存储空间(或其所需的数据存储空间)为单位。由于图1和2有助于理解本发明的一个或多个实施例的理论,因此此处不提供以数据的位和/或字节为单位来描述高速缓存对象的大小的信息。
在一个或多个实施例中,以上所描述的理论实现较佳地出于两个原因而被修改。首先,在实践中,存储器存储较佳地由离散的存储单元组成。由此,例如,在实践中,压缩一高速缓存对象以占据小于1位的存储空间量通常是毫无意义的。其次,对高速缓存执行的操作的总数较佳地是有限的。相反,强迫由以上的收敛公式之一描述的压缩比的连续曲线可涉及每次当需要额外的高速缓存存储空间时减小高速缓存中每一高速缓存对象的大小。这会需要不切实际地大量的操作。
在一个或多个实施例中,高速缓存中对象的个数实际上将是有限的。然而,在采用Zeno高速缓存概念的情况下,该数字可以比对于常规的MRU高速缓存所可能的要大得多。此外,高速缓存的对象可具有如果最近被使用则能以高质量水平(从较低失真水平或压缩有损性到无损压缩、到未压缩数据中的任何一点)储存的特性。高速缓存对象的质量水平随着其中未访问这些高速缓存对象的每一次接连的高速缓冲存储器访问而逐渐变差(即,遭受逐渐变高的失真水平或压缩有损性)。
由于计算机存储器是离散的,且可以有高速缓存对象的最小压缩大小,在该最小压缩大小之下高速缓存对象对用户毫无价值,因此高速缓存的表示可以服从产生该最小压缩大小的最大压缩比。由此,在一个或多个实施例中,如果对象都是相同大小,则可被储存在高速缓存中的高速缓存对象的最大个数可以等于高速缓存中的总数据存储空间除以由具有上述最小压缩大小的高速缓存对象所占据的数据存储空间的量。然而,高速缓存对象无需都是相同大小。
可以有许多方法来设计由以上讨论的公式之一(或任何其它收敛和)界定且因此具有有穷和的级数。可以引入一附加的约束,即特别地,任何给定值在一级数的连续值中重复的可能性在较高的N值处增加,使得所采用的不同Y值的个数可限于一合理数。
这一级数的一个示例是1,1/4,1/4,1/16,1/16,1/16,1/16,1/64,1/64,1/64,1/64,1/64,1/64,1/64,1/64,1/256,等等。
很清楚,级数1、两个1/4、四个1/16、八个1/64等的和为2,正如先前所讨论的y=1/2^n一样。但是,如果将该级数取到n=16000,则可仅使用约log2(16000),即约14个y值(对象数据存储空间大小)。
在一个或多个实施例中,上述对数函数提供了使得可用Y值的个数(高速缓存对象的可能大小)比N的值更缓慢地增加的一种方法。然而,本发明不限于对这一对数函数的使用,并且结合本发明可使用使得Y值的个数比N值更缓慢地增加的其它数学运算。
在一个或多个实施例中,当N=1百万时,只需使用少至20个Y值(如使用以上引用的基于对数的公式所确定的)。这意味着当必须释放高速缓存中的空间时,仅需少数操作来建立在高速缓存对象之中的数据存储空间的适当分配,因为大部分高速缓存对象将占据较佳地不需改变的数据存储空间的量。
其它数学级数也可满足在高速缓存存储器管理系统和方法中使用的期望准则。另外,可使用理论上不收敛的级数(即,其和为无穷大),因为在实践中,在任何情况下对有限个项求和。
在一个或多个实施例中,可使用随机算法来以多种方式改进该基本算法。在一个或多个实施例中,上述2*1/4、4*1/16等级数可仅包括少量可用高速缓存对象大小,这可能导致高速缓存内不同对象之间压缩比的显著差异。可使用随机选择来以加权方式“挤压”(减小所使用的数据存储空间)高速缓存对象的一随机选择的子集,直到使某一目标空间量对新高速缓存对象可用。该方法可提供有益的结果,因为高速缓存对象在高速缓存中的确切位置的重要性可随着高速缓存中对象的个数增加而减小。每一对象被“挤压”的量也可至少部分地被随机化。使用类似此处所讨论的这些随机化算法可减少可在使用高速缓存中所储存的高速缓存对象呈现的图像中感知到的高速缓存对象质量的明显不连续性或阈值。
在下文中,提出根据本发明的一个或多个方面的管理数据高速缓存中的高速缓存对象的一个说明性示例。
图44是根据本发明的一个或多个实施例的包括多个高速缓存对象302-310的数据高速缓存300的框图。图45是根据本发明的一个或多个实施例的其中高速缓存对象302、304、308和310已被调整大小的图44的数据高速缓存300的框图。图46是根据本发明的一个或多个实施例的其中访问的高速缓存对象306已被调整大小并被恢复到高速缓存300的图45的数据高速缓存的框图。
在一个或多个实施例中,包括图44所示的实施例,高速缓存300可包括五个高速缓存对象(在图3-6中为简明起见缩写为“CO”):CO 1 302、CO 2 304、CO 3 306、CO 4 308以及CO 5 310。图44所示的高速缓存对象的个数(5)是为了方便示出此处所描述的各种概念而选择的。然而,高速缓存300内可以包括比五个更多或更少的高速缓存对象。原则上对可被包括在高速缓存300内的高速缓存对象的个数没有下限。原则上,可被包括在高速缓存300内的高速缓存对象的上限可对应于高速缓存的总大小除以最小可接受的可能高速缓存对象大小,这将在本文的别处讨论。
在图3-5中,为描述此处所公开的各种概念起见,每一示出的高速缓存对象的宽度旨在与该高速缓存对象使用的数据存储空间成正比。并且,在图3-5中,从最左边的高速缓存对象前进到最右边的高速缓存对象对应于对所显示的高速缓存对象的访问的递增的新近性,其中最近最少使用的高速缓存对象在最左边示出,而最近最常使用的高速缓存对象在最右边示出。
图45示出了在CO 3 306被诸如计算系统700等采用高速缓存300的计算系统访问了之后的高速缓存300。在该示例中,CO 3 306不在高速缓存300内其原始位置上示出,因为该位置在图45所示的高速缓存300的情况下已被盖写。此外,创建了自由空间402以为可以比图44中CO 3的原始形式占据更多数据存储空间的CO 3 306的展开形式留出空间。在图46中,CO 306的展开形式被写入高速缓存300中由图45所示的高速缓存300情况中的自由空间402所占据的一部分中。
图47是根据本发明的一个或多个实施例的用于访问数据高速缓存300中的高速缓存对象和更新数据高速缓存300的方法600的流程图。以下参考图3-6。
在步骤602处,向能够访问高速缓存300的程序提供高速缓存对象302、304、306、308和310。最初存在于高速缓存300中的该组高速缓存对象在图44中示出。高速缓存300的该初始条件可从一个或多个程序的默认设置或从先前在一个或多个程序中执行的程序步骤中得到。在任何情况下,在以下讨论中感兴趣的是在建立了图44所示的初始条件之后对高速缓存300作出的改变。尽管在各种计算系统的任一个上运行的许多程序中的任一个可以与高速缓存300通信,但是为方便起见,能够访问高速缓存300的软件在下文中被简称为“程序”。
在步骤604处,可提供关于程序接着将使用哪一高速缓存对象的指示。在步骤606处,程序可访问所指示的高速缓存对象,在本示例中是CO 3 306。
在步骤608处,可确定所访问的高速缓存对象是否可被展开。此处,高速缓存对象在它可通过服从较低的压缩比来占据更多数据存储空间时是可展开的。这一展开可通过补充已经存在于高速缓存对象中的数据而非通过提供对应于新压缩比(或对应于缺少压缩)的一组全新的数据来实现。
如果所访问的高速缓存对象是不可展开的,则在步骤610中较佳地将其恢复到高速缓存300中。较佳地,在步骤610中,恢复的高速缓存对象在访问之后占据与在这些访问之前所占据的相同的数据存储空间量。依照LRU-MRU高速缓存原理,在被恢复到高速缓存300之后,所访问的高速缓存对象可被写入高速缓存300的最右侧,即MRU端。然而,作为替换,所访问的高速缓存对象可被写入高速缓存300的任一部分。继续方法600的这一分支,方法600较佳地在步骤612处结束。
参考步骤608,如果所访问的高速缓存对象,诸如高速缓存对象306是可扩展的,则根据本发明的一个或多个实施例,较佳地展开该对象(步骤614)。如本文先前所讨论的,如上所述地展开高速缓存对象较佳地帮助提供了一种其中最近最常和/或最频繁访问的高速缓存对象以最高质量水平被储存在高速缓存300中的安排。
在其中高速缓存中有“N”个高速缓存对象的一个或多个实施例中,这些高速缓存对象的可能大小(如在数据存储空间中测得的)的个数可限于等于log2(N)的量。如上所述建立有限的、有穷个可能的高速缓存对象大小较佳地限制了为诸如CO 306等要在步骤614中展开的高速缓存对象确定新的、展开的大小的计算开销。
在一个或多个实施例中,CO 306的展开(或换言之,较少压缩的)形式所需的数据存储空间的量可由能够访问高速缓存300的计算系统(未示出)来计算。在高速缓存300尚未准备好接收CO 306的展开形式的情况下,CO 306的展开形式可被写入另一存储器存储位置(未示出)以便临时储存在那里。
在步骤616处,较佳地使得储存CO 306的展开形式所需的数据存储空间402在高速缓存300内可用。如果在高速缓存300内存在足够的空间来储存CO 306的展开形式而不更改高速缓存300内的任何高速缓存对象,则可省略高速缓存300中一个或多个高速缓存对象大小的减小。然而,在高速缓存300中的所有或基本上所有存储空间在CO 306被访问之前已被占据的情况下,除CO 306之外的一个或多个高速缓存对象可经受大小的减小以释放高速缓存300的空间,来储存高速缓存对象306的展开形式。
在一个或多个实施例中,高速缓存对象大小减小操作的数目可在存在有限个可能高速缓存大小的情况下减少。限制高速缓存对象大小减小操作的数目较佳地用于减少访问高速缓存300的计算系统上的计算负担,并较佳地提供了总体计算系统效率。
在一个或多个实施例中,可以有各种方法来实现期望的数据存储空间量的清除。此处,术语“清除”可对应于通过减少分配给高速缓存300内的一个或多个高速缓存对象的数据存储空间来使数据存储空间在高速缓存300中可用。
在一个或多个其它实施例中,要清除的数据存储空间的量可对应于除展开的高速缓存对象在其被计算系统最近一次访问之前所占据的空间之外所需的附加存储的量。然而,在其它实施例中,要清除的空间的量可以小于或大于最近最常访问的高速缓存对象大小上增大的空间的量。
在一个或多个实施例中,为最近最常使用的展开的高速缓存对象清除的空间可以在高速缓存300的一端,如图46所示。然而,在其它实施例中,所清除的空间可被置于高速缓存300内的其它位置。
在一个或多个实施例中,要变得可用的数据存储空间能以图44中除CO 3 306(最近最常使用的高速缓存对象)之外的一个或多个高速缓存对象为代价来提供。具体地,可通过减小仅一个剩余高速缓存对象的大小或通过减小除了最近最常使用的高速缓存对象之外的所有高速缓存对象的大小来提供所需的附加空间。此外,可使得在这两个极端之间的任何个数的高速缓存对象放出(shed)存储空间以支持该展开的最近最常使用的高速缓存对象。在下文中,除最近最常访问的高速缓存对象之外的所有高速缓存对象被认为是“有资格减小大小”。
在一个或多个实施例中,有资格减小大小的一个或多个高速缓存对象的大小减小的程度可根据一个或多个考虑事项来选择。在一个实施例中,有资格减小大小的高速缓存对象可放出相等或基本相等的存储空间的量。在另一实施例中,合格的高速缓存对象可放出其预减小大小的相等或基本相等的比例以便为展开的最近最常使用的高速缓存对象清除空间。
在一个或多个其它实施例中,每一高速缓存对象的大小减小的程度可以基于该高速缓存对象最后一次被访问的新近性。具体地,有资格减小大小的高速缓存对象可随着其最后一次访问的新近性的减小而放出越来越多的存储空间。由此,在这一方法中,有资格减小大小的最近最常使用的高速缓存对象可放出相对少量的存储空间,而最近最少使用的高速缓存对象可放出相对大量的数据存储空间,且在这两个极端之间的高速缓存对象放出中间量的存储空间。
尽管此处对存储空间减少的讨论主要涉及仅减小不是最近最常访问的高速缓存对象的大小,但在一个或多个实施例中,可从高速缓存300中移除一个或多个高速缓存对象来清除数据存储空间。此外,这一高速缓存对象移除可单独地实施,或与将保留在高速缓存300内的高速缓存对象的高速缓存对象数据存储空间减少组合实施。
在图46的实施例中,保留在高速缓存300中的所有四个高速缓存对象302、304、308和310的大小都被减小,以清除数据存储空间来将CO 306写入高速缓存300的最右侧端处所示的位置。然而,在替换实施例中,有资格减小大小的四个高速缓存对象302、304、308和310中的三个或更少可经受大小减小。较佳地,该方法在步骤620处结束。
在一个或多个实施例中,并非仅采用每一高速缓存对象的使用新近性作为确定高速缓存对象大小时的变量来管理高速缓存中的对象,而是高速缓存对象管理也可涉及关于接下来可能需要哪些对象的智能猜测。由此,较不可能需要的对象可在具有将来需要的较高可能性的对象之前被“挤压”。在一个或多个实施例中,这一猜测方法可以与可随机地选择高速缓存中的对象来挤压并可为选择的对象另外生成随机变化的挤压量的算法相组合。
图48是适用于本发明的一个或多个实施例的计算系统900的框图。在一个或多个实施例中,中央处理单元(CPU)902可耦合到总线904。另外,总线904可以耦合到本发明的高速缓存300、随机存取存储器(RAM)906、只读存储器(ROM)908、输入/输出(I/O)适配器910、通信适配器922、用户接口适配器906以及显示适配器918。
在一个或多个实施例中,RAM 906和/或ROM 908可以保存用户数据、系统数据和/或程序。I/O适配器910可将诸如硬盘驱动器912、CD-ROM(未示出)或其它大容量存储设备等存储设备连接到计算系统900。通信适配器922可以将计算系统900耦合到局域网、广域网或因特网924。用户接口适配器916可将诸如键盘926和/或定点设备914等用户输入设备耦合到计算系统900。此外,显示适配器918可以由CPU 702驱动以控制显示设备920上的显示。CPU 902可以是任何通用CPU。
注意,本文中迄今为止所描述和/或稍后描述的方法和装置可利用已知技术中的任一种来实现,诸如标准数字电路、模拟电路、可用于执行软件和/或固件程序的公知处理器中的任一种、可编程数字装置或系统、可编程阵列逻辑器件或以上的任何组合。本发明的一个或多个实施例也可被包含在软件程序中以便储存在适当的存储介质中并由处理单元来执行。
尽管本发明此处是参考特定实施例来描述的,但是可以理解,这些实施例仅示出了本发明的原理和应用。因此,可以理解,可对说明性实施例作出众多修改并可设计出其它安排而不脱离如所附权利要求书定义的本发明的精神和范围。
用于高效地编码数据的系统和方法
近来,已引入了诸如JPEG2000/JPIP(JPEG 2000交互式协议)等图像压缩标准来满足所需的工程目标:使得非常大的图像(例如,大小为千兆像素)能够通过低带宽通信信道从服务器递增地或选择性地递送到客户机。(参见www.kakadusoftware.com上David Taubman的Kakadu实现)。当以全分辨率查看这些图像时,在任何给定时刻仅每一图像的有限区域可适合客户机的图形显示器;新标准朝向选择性地访问这些区域并通过通信信道仅发送与该区域相关的数据来调整。如果该“感兴趣的区域”,即ROI连续地改变,则客户机和服务器之间通过低带宽信道的连续对话可继续将该区域的客户机表示保持在ROI准确度之内。
然而,现有方法一般需要传送大量数据以显著移动感兴趣区域的位置,由此限制了可实现这种移动的速度。此外,现有方法一般取决于对线性文本串的顺序访问,由此在客户机试图显著改变感兴趣区域的位置时对文本导航施加了很大的负担。因此,需要一种用于将数据从服务器发送到客户机的改进的方法。
发明概述
根据一个或多个实施例,本发明提供了一种方法,包括:将标识多个视觉特征的数据转换成多个像素特性数据值;以及用具有相应的像素特性数据值的像素形成图像文件。较佳地,多个视觉特征包括至少一个图形符号。较佳地,视觉特征标识数据包括ASCII码。较佳地,视觉特征标识数据包括视觉特征的频率顺序位置。较佳地,视觉特征标识数据是基于a)视觉特征的使用频率,以及b)连续的各个视觉特征之间的转换概率的组合来确定的。较佳地,像素特性数据值包括选自由以下各项构成的组的至少一个数据类型:像素强度数据值、像素色彩数据值、以及图像对比度数据值。
较佳地,像素特性数据值包括像素色彩数据值。较佳地,像素色彩数据值包括选自由以下各项构成的组的至少一个色彩-数据值类型:RBG(红、蓝、绿)像素色彩数据值、HSV(色调饱和值)像素色彩数据值、以及CMYK(青、品红、黄、黑)色彩数据值。
较佳地,该方法还包括无损地压缩所述图像文件。较佳地,视觉特征标识数据包括连续的各个视觉特征的标识数据的值的差别。较佳地,视觉特征包括字母数字字符。较佳地,该方法还包括以与所述字母数字字符在原始文档内定序相同的顺序在所述图像文件中定位像素。较佳地,该方法还包括将图像文件发送到客户机。较佳地,该方法还包括将所述图像文件的至少一个区域解码成字母数字字符以供客户机查看。较佳地,该方法还包括允许客户机在第一维度中浏览所解码的图像文件区域。
较佳地,该方法还包括允许客户机在第一和第二维度中浏览所解码的图像文件区域。较佳地,在所述第一维度中浏览包括沿一行字母数字字符前进,而在第二维度中浏览较佳地包括在多行字母数字字符上滚动。较佳地,浏览包括以仿真原始文档内浏览的方式浏览所解码的图像文件。较佳地,该方法还包括使像素在图像文件中的位置与对应于所述像素的字母数字字符在含有该字母数字字符的原始文档中的位置相关。
较佳地,像素在图像文件内的位置至少基本上对应于相应的字母数字字符在原始文档中的位置。较佳地,像素在图像文件内的位置基本与相应的字母数字字符在原始文档中的位置相同。较佳地,该方法还包括将图像文件的至少一个区域从服务器发送到客户机。较佳地,该方法还包括由客户机向服务器请求图像文件的区域。
较佳地,该方法还包括由服务器发送图像文件的所请求区域。较佳地,发送步骤包括发送适于由客户机解码的压缩数据。
根据另一方面,本发明的一个或多个实施例提供了一种装置,包括在软件程序的指令下操作的处理器,该软件程序使得该装置执行以下动作:将标识多个视觉特征的数据转换成多个像素特性数据值;以及用具有相应的像素特性数据值的像素形成图像文件。
根据又一方面,本发明的一个或多个实施例可提供一种含有软件程序的存储介质,该软件程序可用于使一包括在该软件程序的指令下操作的处理器的装置执行以下动作:将标识多个视觉特征的数据转换成多个像素特性数据值;以及用具有相应的像素特性数据值的像素形成图像文件。
当结合附图考虑以下本发明的较佳实施例的描述时,本领域技术人员将清楚其它方面、特征、优点等。
附图简述
为图示本发明的各方面起见,附图中示出了目前较佳的形式,然而,可以理解,本发明不限于所示的精确排列和手段。
图49是根据本发明的一个或多个实施例的使用原始ASCII编码的“Ulysses”的全文的文本图像,其中白色具有数值0,而黑色具有数值255;
图50是根据本发明的一个或多个实施例的使用原始ASCII编码的Ulysses的前五章的文本图像;
图51是根据本发明的一个或多个实施例的使用频率顺序编码来编码的Ulysses的前五章的文本图像;
图52是适用于本发明的一个或多个实施例的计算系统的框图。
较佳实施例的详细描述
本发明的一个或多个实施例可涉及将可解压图像压缩和传送技术选择性地扩展到可使用二进制表示来标识的文本或其它数据。
此处,标识和/或描述视觉特征的二进制数据可从诸如ASCII(美国信息互换标准代码)或其它格式等初始格式转换成适于结合到诸如但不限于像素强度数据的图像数据中的格式。
以上所称的视觉特征可包括但不限于图形符号和/或字母数字字符。然而,此处的视觉特征可包括可使用二进制数据来描述和/或标识的任何可视图像特征。此外,尽管这类数据可被编码成像素强度数据,但本发明不限于以此格式编码。
在一个或多个实施例中,初始数据(视觉特征标识数据)可被转换成若干种可能类型的像素特性数据,包括但不限于像素强度数据、像素色彩数据、图像对比度数据和/或其它形式的图像数据。上述像素色彩数据可包括但不限于红、蓝、绿(RBG)像素色彩数据;色调饱和值(HSV)像素色彩数据;青、品红、黄、黑(CMYK)像素色彩数据和/或其它形式的像素色彩数据。
在以下讨论中,考虑了一个大文本,具体地为James Joyce的书“Ulysses”。在一个或多个实施例中,该文本可通过将每一章节放入其自己的栏中,且对于连续章节的栏从左到右排列来格式化。然而,可以理解,可实现章节的其它排列。栏被假定为具有字符的最大宽度,诸如100。图49示出了以此方式编码为图像的Ulysses的整个文本,其中图49中的每一像素对应于原始文本文档中的单个文本字符(或不包括文本的字符位置,诸如空白区)。图50示出了使用图49中的相同编码方法的Ulysses的前五章的文本图像。
在一个或多个实施例中,每一像素的强度值可被设为等于该像素中编码的字符的ASCII码。由于灰度像素和ASCII字符都可使用8位序列(都可具有范围0-255中的值)来表示,因此可容易地实现像素值和字符之间的对应性。在本公开中,尽管文本和其它字符可用将ASCII码用作为像素强度值的像素来表示,但是可以理解为此目的可采用用于文本或其它字符的其它代码。
一般而言,普通ASCII表示(即,作为标准文本文件)的Ulysses的全文占据1.5MB的存储空间,这可能太大以致于无法通过窄带通信信道来全文发送。编码为无损JPEG2000图像的图49字符数据的像素-字符-数据表示(此处称为“字符-像素图像”,也称为“文本-图像”)需要约2.2MB(兆字节)的数据存储空间。如果书中各章的长度更均等,则可显著降低该存储空间要求,从而导致字符-像素图像(文本-图像)中的较少空白区(编码为零)。
然而,比总体文件大小更重要的是普通JPIP服务器将该文件选择性地并增量地提供给客户机的能力。具体地,此处关注的是服务器以可控制的分辨率增量来提供文件的所选部分的能力。
在一个或多个实施例中,以足以阅读字符的缩放级别(可能需要客户机方显示器上的超过1像素/字符)来查看文档的客户机可使用JPIP(或其它合适的协议)来仅请求文本的相关部分。这一操作是高效的,且在可能由于下载中所涉及的数据量而禁止下载整个文本的条件下,可对甚至具有到服务器的非常低的带宽连接的文本阅读者实现足够的性能。
在一个或多个实施例中,可使用为对大文本的选择性访问特别设计的客户机/服务器技术实现类似的效果,但是上述字符-像素图像方法具有优于常规实现的多个优点,列出如下。
1)字符-像素图像方法可使用为非常大的数据量设计的现有技术和协议。
2)字符-像素图像方法可容易地按比例放大到大小为许多千兆字节或甚至更大的文本,而不会降低性能。
3)对感兴趣区域内的文本或其它视觉特征的访问在本发明的一个或多个实施例中较佳地是二维的。由此,在许多情况下(例如,当如Ulysses情况中那样要按栏来查看文本时),此处公开的字符-像素图像方法较佳地允许比使用将文本作为一维串来处理的现有方法能获得的更高效浏览。
4)由于在JPEG2000中使用了小波,因此字符-像素图像较佳地服从多分辨率表示。尽管使用视觉特征标识数据标识的文本或其它视觉特征一般在除最终(最详细)分辨率之外的分辨率下是不可读的,但是对较低分辨率小波的较宽空间支持较佳地提供了对感兴趣区域附近的文本和/或其它视觉特征的智能客户机方高速缓存。如在以传统方式滚动通过文本时所做的那样在原始文本的各个区域上移动ROI因此可使用本发明的一个或多个实施例来高效地执行。
在一个或多个实施例中,以上概念可被容易地扩展以处理格式化文本、Unicode或其它元数据,因为所有这些数据都可使用可能带有嵌入的换码序列的ASCII文本串来表示。
在所选的应用中,JPEG2000可用作有损压缩格式,这意味着所解码的图像字节不必与原始字节相同。此处,术语“解码”指的是将文本图像中的像素数据转换回原始文本数据或其它视觉特征数据。如果图像字节表示文本,则有损压缩一般是不可接受的。然而,JPEG2000的设计目标之一是有效地支持无损压缩,因为这对于某些成像功能(诸如对于医学和科学应用)是重要的。与通常可按照24:1来容易地压缩的视觉上可接受的有损图像相比,用于照片图像的无损压缩比通常仅为约2:1。
有损和无损图像压缩一般在具有良好空间连续性的图像上操作最佳,这意味着相邻像素的强度值之间的差别较低。原始ASCII编码从这一观点来看不是最优的,因为用ASCII编码的连续文本字符可能具有变化很大的值。由此,以下考虑某些替换方案。
图51是根据本发明的一个或多个实施例的使用频率顺序编码来编码的Ulysses的前五章的图像文本。
频率编码
在本发明的一个或多个实施例中,编码效率可通过整体地以英语或另一语言根据字符在所属文本中的出现频率从最高频率到最低频率对字符重新排序来改进。由此,在一个或多个实施例中,空白区具有代码0,并且在字符-像素图像中具有像素值0。“空白”字符可接收代码“1”(其在字符-像素图像中的对应值也为“1”)。可使诸如e、t、a、o、i、n、s、r、h、1等…字符序列转换成以“2”(对应于“e”)开始、并从那里向上前进到值255的连续像素值。
可能在使用这一方法将大文本中的所有字符转换成像素值之后所有255个像素值可在被使用的情况下结束。然而,按照此处所构想的文本字符(或其它视觉特征)到像素值的转换的最本质特性,像素值出现较佳地随着其数值的增大而变得越来越稀少。
图51的图像示出了这一点。像素值倾向于在零附近聚集。至少重要的是,在图51的实施例中连续字符-像素值之间的像素值差别较佳地低于图50的实施例中的差别。
在范围0-255中的所有像素值都同样有可能的情况下,一般将需要8位来表示每一像素值。然而,在其中某些像素值比其它像素值频繁得多地出现的实施例中,像素值较佳地可使用更少的位来表示而不会丢失任何信息。
考虑示出这一点的一个示例。在这一极端情况下,像素值在99%的时间都等于0,并且在剩余时间具有0和255之间某一处的另一值。在这一情况下,编码算法可用单个“0”比特来编码0值,并用前导的“1”比特(以表示非零值的存在)后跟非零值的8位表示来编码非零值。由此,该方法对于100个像素中的99个,每像素节省了7位,但使用一个额外的像素来表示仅在1%的时间出现的非零像素。对应于上述编码算法的解码算法因此较佳地将“0”比特解释为表示0比特值,并且以“1”比特值开头的比特序列具有由在该前导“1”比特之后的比特表示的值。
然而,即使在较不极端的情形中,比其它像素值频繁得多地出现的像素值的存在仍允许存储空间的可观节省而不会导致任何像素数据丢失,并且通过逻辑扩展实现这一节省而不会导致由像素数据表示的视觉特征数据的任何丢失。一般而言,一般可使用逐渐增加的位数来表示以减少频率出现的值来建立值出现频率的两个或多个类别。以此方式,可在大多数时间使用较小的比特序列,由此节省了数据存储空间和数据通信带宽要求。
在一个中间示例中,可使用5位来表示最频繁出现的像素值,并使用9位来表示较不频繁出现的值。对于最频繁出现的视觉特征,可提供可以为“0”的前导比特,之后可跟表示该像素的实际值的4个比特。对于较不频繁出现的像素值,可提供可以为“1”的前导比特,之后可跟表示该像素的实际值的8个比特。
在一个或多个其它实施例中,频率编码可获益于空间相干性以使用减少的位数来表示文本图像。具体地,图像可被划分成8×8的像素块,由此提供了每一块中64个像素,其中每一像素表示一频率编码的视觉特征(可以是文本字符)。该编码方法然后可审阅每一块并确定表示该块中的最高值像素值所需的位数。这一所确定的位数然后可用于表示该块中的所有像素值。
对于任何给定图像内的许多块,最高值像素能够用四个或更少的位来表示。由此,在采用这一逐块方法时可获得数据存储要求的可观节省。
在一个或多个实施例中,当将Ulysses的频率编码的文本-图像无损地压缩为JPEG2000图像时,文件大小是1.6MB,略大于原始ASCII文件(1.5MB),并且比ASCII编码的文本-图像小37%。采用对字母编码的进一步优化,压缩文件大小可显著降至ASCII文本文件大小以下。进一步优化可包括但不限于:使用字母转换概率(Markov-1)来形成编码而非仅仅使用频率(Markov-0);和/或将一个字符和下一字符之间的增量或差别而非编码字符本身编码为像素。
采用这些附加的优化,要以此方式提供的文本实际上可占据比原始ASCII少的数据存储空间。
此处讨论的本发明的一个或多个实施例包括使用JPEG2000/JPIP作为一种选择性图像解压技术,但是本发明不限于使用这一图像压缩技术。可结合本发明采用其它图像压缩格式和协议,包括但不限于例如具有类似特性的LizardTech的MrSID格式和协议。
图52是适用于本发明的一个或多个实施例的计算系统1400的框图。在一个或多个实施例中,中央处理单元(CPU)1402可耦合到总线1404。另外,总线1404可被耦合到随机存取存储器(RAM)1406、只读存储器(ROM)1408、输入/输出(I/O)适配器1410、通信适配器1422、用户接口适配器1406以及显示适配器1418。
在一个或多个实施例中,RAM 1406和/或ROM 1408可保持用户数据、系统数据和/或程序。I/O适配器1410可将诸如硬盘驱动器1412、CD-ROM(未示出)或其它大容量存储设备等存储设备连接到计算系统1400。通信适配器1422可将计算系统1400耦合到局域网、广域网或因特网1424。用户接口适配器1416可将诸如键盘1426和/或定点设备1414等用户输入设备耦合到计算系统1400。此外,显示适配器1418可由CPU 1402驱动以控制在显示设备1420上的显示。CPU 1420可以是任何通用CPU。
注意,本文中迄今为止所描述和/或稍后描述的方法和装置可利用已知技术中的任一种来实现,诸如标准数字电路、模拟电路、可用于执行软件和/或固件程序的公知处理器中的任一种、可编程数字装置或系统、可编程阵列逻辑器件或以上的任何组合。本发明的一个或多个实施例也可被包含在软件程序中以便储存在适当的存储介质中并由处理单元来执行。
尽管本发明此处是参考特定实施例来描述的,但是可以理解,这些实施例仅示出了本发明的原理和应用。因此,可以理解,可对说明性实施例作出众多修改并可设计出其它安排而不脱离如所附权利要求书定义的本发明的精神和范围。
用于管理图像数据的传送和/或存储的系统和方法
发明背景
最近开发的诸如JPEG2000/JPIP等图像压缩和传输标准已使得大图像(即大小为千兆像素级)能在窄带宽信道上交互式显示。然而,这些新兴的标准和技术并不提供用于实现更为远大目标的手段:允许同时与极大量图像的灵活视觉交互,其中每一个图像也可能极大。因此,本领域中需要一种用于传送和/或存储图像数据的经改进系统和方法。
发明概述
根据一方面,本发明提供了一种方法,该方法可包括在通信链路上建立第一计算机和第二计算机之间的通信,该第二计算机具有以经压缩图像数据的形式存储其中的图像集合;在该集合中选择多个图像以传送给所述第一计算机;以及在发送任一个选定图像的全分辨率图像数据之前将所有选定图像的低分辨率图像数据从第二计算机发送到第一计算机。
当结合附图在本文中对本发明优选实施例进行描述时,其它方面、特征、优点等将变得对本领域技术人员显而易见。
附图简述
为了说明本发明的各个方面,目前较佳的方面以附图形式示出,但可以理解,本发明并不限于所示的精确配置和手段。
图53是根据本发明一个或多个实施例的可相连以使得图像数据能在多个计算机之间传送的系统的框图;
图54是根据本发明一个或多个实施例的其中具有至少两个感兴趣区域的图像的框图;
图55是根据本发明一个或多个实施例的采用在本文中公开的技术的多个方面的“虚拟书”的框图;
图56是根据本发明一个或多个实施例的图55虚拟书的三维版本的示图;
图57是根据本发明一个或多个实施例的用于管理一个或多个便携式设备与一个或多个其它计算机之间的图像数据通信的系统的框图;
图58A示出采用一现有方法的不完全图像数据下载的结果;
图58B示出根据本发明一个或多个实施例的不完全图像数据下载的结果;
图59是根据本发明一个或多个实施例的可包括物理显示(屏幕)和两个虚拟显示的“共用空间”的框图;
图60示出根据本发明一个或多个实施例的压缩成一综合画(montage)的一千个以上图像的集合(各种大小的数字化地图的集合);
图61示出根据本发明的一个或多个实施例的已被动态地重新排列成一随机配置的约三千个图像的快照;以及
图62是可适用于本发明的一个或多个实施例的计算机系统的框图。
较佳实施例的详细描述
图53是根据本发明一个或多个实施例的可相连以使得图像数据能在多个计算机之间传送的系统170的框图。系统170较佳地包括与显示器184和数据存储设备186相连的客户机计算机182。系统170较佳地还包括可与数据存储设备190相连的服务器计算机188。服务器计算机188还可与因特网180相连。
在一个或多个实施例中,图像数据可在多个计算机182、188之间传送,以便于允许使用其间相对较低的带宽连接来查看可能较大图像的较大集合。例如,存储在服务器计算机188上的图像的期望查看和导航可通过以可控的分辨率水平发送存储在服务器计算机188上的图像数据的选定部分来实现。对图像数据114的选择性可以是诸如选择高分辨率的特定图像、或甚至是高分辨率的特定图像的选定部分。
在本文中讨论了各个实施例,它们包括改变:用作客户机计算机182和服务器188的设备的类型、在其间传输的图像数据114的类型、以及以指定分辨率水平发送选定图像数据的能力的各种应用。
图54是根据本发明一个或多个实施例的其中具有至少两个感兴趣区域252、254的图像250的框图。图像250可以是图像数据114的一个子集。或者,取决于客户机计算机182请求了哪些图像数据,图像数据114可表示图像250的一个子集。
在一个或多个实施例中,图像250可以压缩形式存储在服务器计算机188上,或存储在存储设备190内。较佳地,当以此方式存储时,可存储图像250中各个区域的多个分辨率水平的数据,并可请求由客户机计算机182下载这些数据。
在一个或多个实施例中,一特定图像或图像的一特定部分存储在客户机计算机182上的分辨率水平可容易地提高或降低。当先前的下载导致区域或图像以第一分辨率水平(可低于全分辨率)存储时,该第一分辨率水平可通过添加表示下一更高水平分辨率的数据而提高(较佳地在不丢弃表示该第一分辨率的数据的情况下),由此避免在此设想的图像数据通信的重复并提高其效率。相反,存储在客户机182上的一区域或图像的分辨率水平在不丢失与同一区域或图像的较低水平分辨率相对应的数据的情况下可通过丢弃存储其中的最高水平分辨率而降低。这种分辨率的降低可在客户机182上实现,以清除不同于丢弃其数据的区域或图像的一个或多个区域或图像所需的数据存储空间。
相关的图像压缩可通过例如使用JPEG2000或另一基于离散小波变换的图像压缩方案来提供。然而,本发明并不限于任何特定压缩格式或图像数据表示的使用。可采用其它格式,包括其字节大小实际上不比未经压缩的图像数据小的图像格式。只有选定图像格式容许图像数据的多级表示和存储才是较佳的。
在一个或多个实施例中,客户机计算机182可能想要下载图像250的一个或多个区域,其中这些区域可以是图像250的一部分。感兴趣的一个或多个区域252、254可以是客户机计算机182想要下载的唯一区域。或者,客户机计算机(客户机)182可能仅仅想要以比下载图像250的其余部分更高的分辨率来下载一个或多个选定区域。在任一情形中,客户机182可通过标识要下载的图像250的指定区域和将由服务器计算机(服务器)188提供的该指定区域的分辨率水平来请求一下载。
在图54的示例中,客户机182较佳地请求以低分辨率下载全部图像280。(下载大批量图像250的确切分辨率水平与本讨论无关。)然而,客户机182想要以更高分辨率、甚至全分辨率下载感兴趣的区域1 252。因此,客户机182较佳地向服务器188指定感兴趣区域1252的坐标和期望的分辨率水平。因而,除了以低分辨率下载大批量的图像250(包括在感兴趣区域1 252之外的部分)之外,客户机182较佳地以指定的更高分辨率下载感兴趣区域1 252。在其它情形中,客户机182会仅想下载感兴趣的(多个)区域并略去对图像250的其余部分的下载。
以此方式,客户机计算机182的用户可在不必以高分辨率下载图像250的全部的情况下以该高分辨率查看感兴趣区域1 252。因而,客户机182和服务器188之间的相对较低带宽的数据通信链路可仍然发送图像250的全部,同时以高分辨率提供特别感兴趣的区域(在该情形中为感兴趣区域1 252),由此对于如果客户机182已经以高分辨率下载了图像250的全部就会出现的感兴趣区域,向查看者提供相同的查看体验,然而该后一选择需要显著更长的下载时间以及在客户机计算机182或数据存储设备186处的更多数据存储空间。
转换感兴趣区域
在一个或多个实施例中,客户机计算机182的用户可能想要在图像250上扫视。通常,从感兴趣区域252扫视到另一个感兴趣区域254将涉及在客户机182上以将要查看这些区域的分辨率水平下载这两个区域。此外,通常感兴趣区域1 252和感兴趣区域2 254之间的所有图像区域将被存储在客户机计算机182上以使所述扫视能够进行。如以下所描述的,在本发明的一个或多个实施例中,查看这些感兴趣区域252、254可通过下载比上述方法中少得多的数据、并使用客户机计算机182上更少的存储空间来实现。
在一个或多个实施例中,客户机182可从感兴趣区域1 252转换到感兴趣区域2 254的高分辨率查看。较佳地,与感兴趣区域2 254的低分辨率表示相对应的图像数据已因为下载了图像250而在客户机计算机182中存在,如上所述。在该情形中,所需要的全部是用描述相关的较高分辨率水平的附加图像数据来补充感兴趣区域2 254的现有图像数据,以在客户机计算机182上达到感兴趣区域2 254的高分辨率表现。如果需要,表示感兴趣区域1 252的较高分辨率水平的图像数据可被丢弃或重写,以在数据存储设备186中腾出空间或其它数据存储空间,用于对感兴趣区域2 254下载的附加图像数据。
在一个或多个实施例中,从感兴趣区域1 252到感兴趣区域2 254的查看的转换可逐步实现,以向显示器184的查看者提供可精确地模拟在以高分辨率下载图像250的全部的计算机上的查看体验的查看体验。具体地,显示感兴趣区域1 252的分辨率水平可逐步降低到表示图像250的大部分的分辨率水平。然后,显示器184上的视图可表示在感兴趣区域1 252与感兴趣区域2 254之间的低分辨率区上的逐步扫视。最后,在到达感兴趣区域2 254时,在完成图像250上的扫视之后、或与该扫视操作的后半部分同时,显示器184上的视图可增至感兴趣区域2 254的高分辨率表现。较佳地,在所述过程结束时,感兴趣区域2 254可以高分辨率存储在客户机计算机182上,并可以该高分辨率在显示器184上显示。
图55是根据本发明一个或多个实施例的采用本文中所公开技术的多个方面的“虚拟书”350的框图。虚拟书350可包括显示器352、后向高速缓存354和前向高速缓存356。尽管高速缓存354、356各自示为其中存储了两个页面,但在高速缓存354、356的任一个中都可存储任何数量的页面。
在一个或多个实施例中,对于虚拟书350的特定情形,虚拟书352采用以可控分辨率水平提供选定图像数据的能力。在虚拟书350中,每一图像可以是虚拟书350的显示器352内的一页。显示器352可对应于图53的显示器184,或者可以是适用虚拟书350的特定特征的专用显示器。虚拟书350可对应于图53的客户机计算机182,或者可以是实际上限于传送、存储和显示书的页面的专用计算机。
在一个或多个实施例中,虚拟书350可以只包括以全分辨率存储和/或显示的一个页面,而在所显示的一系列页面的前后的其它页面可以是各种其它分辨率。
在一个或多个实施例中,当前在显示器184上显示的页面(即活动页面)以全分辨率显示,该活动页面在图55中为“页面10”。在这些实施例中,随着页面距活动页面的距离增大,其它页面可以逐步降低的分辨率显示。更具体地,存储每一页面的分辨率可等于显示在显示器356中的活动页面的分辨率除以一个量,该量等于2的各存储页面和活动页面之间的页数次幂。因而,应用该方法,页面11(在前向高速缓存356中)和页面9(在后向高速缓存354中)可各自占据由显示器352中的活动页面所占的数据存储空间量的一半。继续用该方法,页面12(在前向高速缓存356中)和页面8(在后向高速缓存354中)可各自占据由显示器352中的活动页面所占的数据存储空间量的一半。
尽管在以上讨论中分配给每一页面的数据存储空间量相对于其直接相邻的页面相差2的倍数,但本领域技术人员可以理解,大于或小于2的值可被用作除法因数。此外,与活动页面的数据存储空间除以一常数不同的算术公式可被用来确定数据存储空间对存储在高速缓存354和356中的连续页面的分配。
在一个或多个实施例中,可选择一新的活动页面来替代图55所示的页面10。该新选定的页面可以是,但不必是紧邻页面10的页面(页面9或页面11)。即,从相关的书(或具有离散页面的任何其它类型的印刷物)中1到最后一页的任一页面都可以是新的活动页面。
在一个或多个实施例中,在选择新的活动页面之后,较佳地进行当前的活动页面和新的活动页面之间的转换。这种到新的活动页面的转换可包括获取该新的活动页面的附加图像数据,以使得新的活动页面能以全分辨率存储和/或显示。如果新的活动页面是“页面11”,并且采用上述“因数2”的实施例,则分配给页面11的数据存储空间量将较佳地为两倍。继续“因数2”实施例的应用,作为从页面10到页面11的转换的一部分,分配给页面10的数据存储空间最好变成一半作为活动页面。不包括在转换后页面10中的页面10的活动版本的数据可被丢弃(可包括其重写)。但是可选择地,页面10的该“剩余”数据可被存储在另一个高速缓存中。如果在从页面10转换出来之后很快(即在合理数量的页面转换内)进行向页面10的转换,则页面10的剩余数据的这种高速缓存可提供效率。
在一个或多个实施例中,从页面10向页面11(或其它新的活动页面)的转换可包括从页面10的逐步淡出和页面11的逐步淡入,以向虚拟书350的用户提供视觉上的愉悦体验和/或物理页面转换回忆的体验。可任选地,可提供显示旧活动页面的折页和翻页的一系列图像以使得虚拟页面转换看起来更像物理翻页的回忆。
图56是根据本发明一个或多个实施例的图55虚拟书的三维版本的示图。图56的实施例示出除红色、绿色和蓝色分量以外可将部分透明度(毛边)的α通道存储为图像信息的一种方法。尽管有如上所述的色彩分量,但为了方便起见本文中仅提供图56的图像的黑白再现。
在一个或多个实施例中,可采用硬件加速的纹理映射来支持α通道。可连同虚拟书的两维或三维实施例一起实现的另一个特征是图像的动态变形,例如在该书翻页时弯曲页面,如图56所示。
管理一个或多个便携式设备中的图像数据
在本节中,描述基于逐行和隔行视觉集合传输来存储数字图像并与之交互的多种机制。在本发明的一个或多个实施例中,对本文中公开的方法的变体允许:在台式计算机、移动设备或其它设备上接近即时地查看存储在第二移动设备上的一个大图像集合;为了查看图像而使用远程存储来增大移动设备的本地存储器;以及从移动设备浏览大图像集合。本发明一个或多个实施例所允许的各种变换可依赖于通用的客户机/服务器成像和集合表示架构。
本发明的一个或多个实施例可提供一种方法,它可包括:在服务器上提供数字图像或其它视觉对象的一个集合;在一客户机与所述服务器之间建立通信;以及允许通过客户机对驻留在服务器上的可视对象的收集的有效多级导航。
在本公开中,术语“数字图像数据”可包括数字照片、数字图像、可视文档、或其它形式的可视内容。在本文中,术语“图像”通常与术语“数字图像”相对应,并且这些术语中的任一个都可对应于“数字照片”。在本文中,术语“客户机”通常对应于术语“客户机方”和术语“客户机设备”。在本文中,术语“便携式设备”、“便携式相机设备”和“相机设备”通常指数字图像捕捉设备和/或数字图像存储设备。在本文中,“数字图像捕捉设备”可包括但不限于数码相机、启用了相机的移动电话(可称为启用相机的手机)、个人数字助理、和/或能记录数字静止图像的数字录影机。“数字图像捕捉设备”可包括能够通过直接光学地接收和记录这些数据(诸如用标准数码相机)来接收图像数据的设备,并且还可包括能通过有线或无线因特网或其它网络连接来接收图像数据的设备。
本文所述方法的一个或多个实施例可使用一种多分辨率方法来解决存储、同步、浏览和组织数字图像数据的集合(可以是可视文档)的问题。可以某分辨率表示为彩色像素阵列的数字照片(例如1024 x 768像素=0.75百万像素,2592 x 1944像素=约5百万像素等)是最终用户可使用数码相机、启用相机的移动电话和数字录像机以及其它设备来创建的一种通用可视文档类型。
本文所述的一种或多种方法还可应用于除图像之外的可视数据对象,诸如申请人参考文献489/17NP(序列号为11/082,556的美国专利申请)的道路地图或其它向量数据、或申请人参考文献489/13(序列号为60/617,485的美国临时专利申请)的文本数据等。(这两个文档在本文开始时更详细地标识,并且两个文档都通过引用结合于此)。
现有系统用户所面对的问题是相机设备能快速创建大量的可能较大的可视文档。然而,这些设备通常没有足够的存储器或视觉浏览工具根据来允许这些文档的令人满意的存档、查看或组织。
存储在相机或其它便携式设备中的数字照片或其它数字图像数据通常周期性地下载到桌面或笔记本计算机、从相机的存储器中清除以允许拍摄更多图片、并且在桌面或笔记本计算机上组织和/或查看。然后,可通过将数字照片的选择贴到一个或多个因特网网站来与朋友们共享数字图片。
管理便携式设备上的图像数据的传统方法
当使用常规方法来管理便携式设备上的图像数据时可遵循以下步骤。首先,可以是数码相机或其它数字图像数据捕捉设备的移动设备拍摄图片。然后,可能在图片的某些精选之后,图片可被下载到相机用户的PC(个人计算机)并从该相机设备中删除。相机设备的本地存储是有限的,并且在该常规方法中仅瞬时地保存图像,直到它们被安全地存储在PC上。
该PC可在其存储器(例如硬盘驱动器或其它非易失性存储)中永久地保留数字照片的任何子集。用户可随后将那些图像的某些进一步精选子集(通常以降低分辨率)上传到由web照片发布服务所拥有的web服务器。所上传的图像可使用PC或其它设备上的web浏览器由任何第三方、或具有有限访问权限的那些用户的部分子集公开浏览。
现有方法的限制可包括从相机设备到PC的冗长下载时间。通常还有对相机设备上持久存储的较差管理。相机设备通常具有较小的彩色显示器,在这些彩色显示器上查看者理论上可查看与人们通常在皮夹中所带的类型相同(诸如家人和宠物)的永久存储图像,以及与PDA(个人数字助理)上的呼叫者或其它联系人相关联的照片。然而,对现有相机设备中持久存储的限制使得以上任务难以实现。
此外,现有的相机设备施加了其它限制。在现有相机设备中,对存储在相机设备中的图像的导航通常是难用和困难的。在现有相机设备中,缺少在相机设备或PC上都会带给用户一致体验的对图像集合的统一可视界面。现有相机设备往往在下载变成必需之前对可存储其上的图片数量施加极有限制性的限制。因而,当采用现有方法时,在使得图像对第三方可用时通常涉及一系列冗长的步骤。
根据本发明的一个或多个实施例管理图像数据
图57是根据本发明一个或多个实施例的用于管理一个或多个便携式设备562、572与一个或多个其它计算机之间的图像数据通信的系统550的框图。系统550可包括客户机方560和服务器方570。然而,在可选实施例中,图57所示的设备分组的客户机和服务器状态可相反。
在一个或多个实施例中,系统550可包括便携式设备1562、便携式设备2572、个人计算机182(基本上与图53的客户机计算机182相同)、服务器188(基本上与图53的服务器计算机188相同)和/或附加计算机574。较佳地,设备562、572和计算机182、188和574的每一个都具有包括其中的存储器和一个或多个显示器。可选择地或除此之外,图57的设备和计算机可与存储器和/或显示器通信。
图57示出了根据本发明的一个或多个实施例可使用的各条可能路径。一个或多个实施例可使用比图57所示的全部数据路径少的路径。图57所示的可用数据路径可具有共同的以下特征的一个或多个:1)各数据路径可涉及服务器方570(图像数据的发起者)和客户机方560(图像数据的接收者);2)双向数据路径(由两端有箭头的线示出)指示这些箭头指向的设备能以客户机或服务器能力服务;3)连接可采用硬接线网络(例如通用串行总线(USB)、火线或以太网)或无线网络(例如对于邻近设备为蓝牙,以及对于更远的连接为WiFi或无线广域联网协议);和/或4)所示连接可以是或可以不是自组织(ad-hoc)的。
在一个或多个实施例中,客户机方560和服务器方570可包括一个或多个数字计算和/或存储设备,包括但不限于:相机设备、个人计算机、以及个人数字助理。
在一个或多个实施例中,客户机设备(客户机)可具有一个或多个显示器。客户机可使用申请人参考文献489/15P(题为“用于与具有大量可能较大图像的动态远程相册有效交互的方法”(“Method for Efficiently Interacting with Dynamic,Remote Photo Albums with Large Numbers of Potentially Large Images”)的序列号为60/619,118的美国临时申请,该申请通过引用结合于此)中所述的一种或多种有效多分辨率浏览方法来浏览驻留在服务器上的文档集合。这些方法允许大图像或其它可视图像的大集合能有效地在低带宽连接上导航。这些图像集合的缩放、扫视和动态重新排列在参考文献中描述。
在一个或多个实施例中,该导航方法的特性之一是当信息从服务器发送到客户机时显示内容可逐步聚焦。该信息聚焦的速率可根据连接带宽与显示像素之比来管理。当用户缩放、扫视或重新排列客户机方560上的文档使得新文档变得可见时,该内容再次显现为模糊、然后聚焦。
虚拟显示器
在一个或多个实施例中,客户机的“显示器”对于最终用户而言并非必需是物理的或可见的。在一个或多个实施例中,该显示器可以是“虚拟显示器”,即具有指定分辨率的显示器的抽象模型。这种“虚拟显示器”可表示为客户机存储器中的像素值阵列,而不管那些像素值是否会提交给屏幕。虚拟显示器可包括至少部分地描述一个或多个图像的小波数据。该小波数据较佳地能够以可能分辨率范围来表示一图像。在一个或多个实施例中,小波数据可对应于使用JPEG2000所采用的小波数据。在一个或多个实施例中,虚拟显示器可包括完整地描述一个或多个图像的足够的小波数据。
例如,如果期望设备以指定分辨率获取集合中所有图像的缩略图,则该设备可创建适当大小的“虚拟显示器”,建立与服务器的连接,并请求查看整个集合。然后缩略图全集可被发送并呈现在该“虚拟显示器”上。如果在所有相关数据从服务器发送到客户机之前传输中断,则客户机的虚拟显示器尚未使所有缩略图图像处于理想聚焦状态。然而全部所请求的缩略图较佳地以足够的分辨率存储在客户机的虚拟显示器内,以允许在屏幕上呈现这些图像的可见版本。以所述方式呈现的图像具有通常比图像的传输已无中断地结束的情形低的视觉质量。因而,一些图形退化可在使用来自不完整的、中断的传输的数据所呈现的图像中存在。
然而,所述退化对于在网络上发送缩略图集的现有技术方法而言仍然是较佳的,在该方法中各缩略图的完整图像依次发送。在该现有技术的方法中,连接的太早中断会导致一些缩略图全部可用(即以全分辨率),并导致其它缩略图不完全可用。图58示出该区别。图58A示出采用现有方法的不完全图像数据下载的结果;而图58B示出根据本发明一个或多个实施例的不完全图像数据下载的结果。
图55A示出一现有技术情形,其中已接收到三个缩略图(示为方形)的所有数据,而根本没有接收到剩下的九个缩略图(示为X)。图55B示出采用本发明一个或多个实施例会发生的一种情形,其中已经以某分辨率水平接收到了所有的十二个缩略图(示为网状阴影线方形),该分辨率水平较佳地对于查看是可接受的,但可能低于在完成完整且未中断的传输之后所将获得的分辨率。
在一个或多个实施例中,客户机可具有高速缓存最近查看的可视内容的客户机方高速缓存。标准的MRU(最近使用)高速缓存可针对本发明一个或多个实施例的缓存需要而采用。然而,通过引用结合于此的题为“有效数据高速缓存”(Efficient Data Cache)的序列号为11/141,958的美国专利申请(委托人参考文献489/10NP)中所公开的高速缓存可有利地用来允许更为复杂的客户机方高速缓存。在任一情形中,给定量的客户机方存储器可专用于高速缓存。因而,返回至最近查看图像的导航可允许使用存储在高速缓存中的图像数据,而无需该图像数据再次从服务器发送。
客户机可具有多个显示器。给定显示器可以是物理的或虚拟的。给定显示器可直接通过用户输入驱动,或者它可通过诸如计算机182等客户机计算机内的软件来用程序推动。所有显示器的以像素为单位的总尺寸可以是固定的或受某些限制的约束,并且该限制可限定可视内容所需的客户机方存储器的最小量。该客户机方存储器较佳地与分配给高速缓冲存储器的存储空间分开。
涉及物理显示器和虚拟显示器的一个实施例如下所述。较佳地,客户机设备内的物理显示器对用户可见,并允许对数字地存储的图像集合的缩放和扫视导航以及重新排列。用户还可从该集合中选择一个或多个图像,并将它们发送给可用作存储用户选定图像的地方的“保存笔(holding pen)”。该保存笔可以某方式在物理显示器上可视化。将图像添加到保存笔较佳地使图像被置于对用户不可见的虚拟显示器上。当图像被添加到保存笔时,表示保存笔的虚拟显示器逐步填满。
该虚拟显示器在尺寸(按像素数测量)上可增至某限制,然后其尺寸可保持固定为该限制。虚拟显示器可能会太小而不能以全分辨率显示保存笔上的所有图像。在该情形中,驻留在虚拟显示器中的图像所需的数据存储空间较佳地按需减小以使图像适应虚拟显示器。因此,屏幕外视图(虚拟显示器)较佳地在用户将可查看图像置入保存笔时即得到图像的补充。这种屏幕外视图的补充可对用户不可见地进行。
一种浏览方法在题为“用于在缩放用户界面中准确呈现的系统和方法”(System and Method for Exact Rendering in a Zooming User Interface)的序列号为10/790,253的美国专利申请(申请人参考文献489/2NP)中公开,该申请通过引用结合于此。在该文献中公开的基于客户机视图确定信息从服务器发送到客户机的顺序的方法可针对多显示器情形而作更改。489/2NP文献公开了视觉信息可分成多个小块(tile),其中每个小块以给定分辨率覆盖空间中的一个区域。然后低分辨率小块可占据大物理区域,而高分辨率小块可占据小物理区域,从而每一个小块的信息量基本上相同。
489/2NP文献公开了使用以下所述的准则对多个小块排序的方法。一种准则可以是显示器上的小块分辨率和小块位置。小块的排序可以是词典顺序的,从而较低分辨率小块总是在较高分辨率小块之前,且空间位置仅在解析分辨率内的顺序时起作用。(词典顺序排序在此指推广的多元组含义—例如三元组集{(1,2,3),(0,3,1),(4,0,0),(0,0,1),(0,3,2)}的词典排序为(0,0,1),(0,3,1),(0,3,2),(1,2,3),(4,0,0)。)
或者,可采用非词典排序准则。例如,多个属性的线性组合可用来对多个小块排序。这些属性可包括但不限于:该小块的分辨率(可用对数单位表达)和该小块离显示器中心的距离。在本文中,术语“排序关键字”对应于术语“排序准则”。
在本实施例中,较低分辨率小块可优先于较高分辨率小块发送,并且靠近显示器中心的小块可优先于靠近周边的小块发送,但这些属性可彼此权衡。
较佳地,可实现最小的变化来适应以上对多显示器情形的方案。在一实施例中,显示器编号可被添加为额外的字典顺序排序关键字。因而,第一显示器可在任意小块相关于第二显示器发送之前(根据其它排序关键字)完全精细化(refine)。
在另一实施例中,显示器编号可以是线性组合中所包括的一个附加变量,从而允许显示器编号以某些方式与分辨率和到显示器中心的接近度权衡。在又一实施例中,显示器可共存于虚构的“共用空间”中,并且分辨率和与中心的接近度排序关键字可与前面一样使用。“共用空间”是建立多个显示器之间的虚构空间关系的概念空间,就像它们是单个更大显示器的区域一样。限定该虚构空间关系确定了区分多个显示器中多个小块的优先级所需的所有参数。
图59是根据本发明一个或多个实施例的可包括物理显示器(屏幕)742和两个虚拟显示器744、746的“共用空间”740的框图。物理显示器742较佳地以正常大小处于“共用空间”740的中心。虚拟显示器V1 744和V2 746较佳地在两侧,并且V2较佳地缩小,从而其像素较佳地是物理显示器的像素的线性大小的一半。这表示,假设小块的排序顺序是纯粹的字典顺序,则V1 746中各分辨率水平的内容较佳地在物理显示器的相应分辨率之后从服务器发送到客户机(因为V1离开该空间的中心比物理显示器上的任一点都远)。V2 746中的分辨率可在已经以两倍精细的分辨率发送了物理显示器742和V1 744的所有小块之后发送。可以理解,“共用空间”740不必对应于任何真实的较大显示器或存储器地址空间。“共用空间”740仅仅是为了在概念上便于建立不同显示器上小块属性之间的关系。
显然许多权衡是可能的。这些权衡可具有与以上字典顺序示例一样的给予物理显示器742的精细化最高优先级的结果,同时使用使物理显示器聚焦所不需要的任何额外时间和带宽来继续精细化虚拟显示器744、746。权衡可替换地在物理显示器已大部分但尚未完全聚焦之后开始精细化虚拟显示器。在物理显示器742已大部分聚焦之后,物理和虚拟显示器744、746可共享带宽资源以协调地精细化。
如果集合中的图像是JPEG2000图像,则给定图像的任何数据子集本身可包括一个JPEG2000图像文件。在一图像的导航期间,客户机可从服务器逐步下载图像数据,从而补充客户机图像子集的质量,并给予客户机创建逐步精确地接近全图像的JPEG2000文件的能力。
如果客户机已导航了图像中的任一处,或者已经以全分辨率查看整个图像达足够长的时间以至于发送出所有图像数据,则客户机可对该图像重新创建整个原始JPEG2000文件。如果客户机仅靠近大图像的一部分缩放,则客户机仍然可创建JPEG2000文件,但除了客户机放大之处之外它将缺乏细节。JPEG2000的该属性也可被扩展到其它多分辨率文档类型。如果客户机不再放大到超过给定分辨率,则没有有关超过该给定分辨率的图像内容的信息可用。在该情形中,可由客户机创建和/或存储的JPEG2000图像的版本可具有比该图像的原始版本低的整体分辨率。
上述虚拟显示器情形的一个应用是改善对来自相机的图像下载时间较长的问题。在一个或多个实施例中,相机或启用相机的移动设备可作为服务器操作,并且PC可作为客户机操作。
在一个或多个实施例中,当相机和PC相连时,不启动全部图像向PC的耗时批量下载,而是PC可快速浏览相机上可用的图像全集。在导航期间,可选择一组图像并将其置入保存笔。注意,如果将相机上的所有图像全部下载到PC,则完成该传送所需的总时间保持为与现有技术相同。然而,对于缩略图发送的密切相关问题,本方法可提供优于图像的常规串行下载的许多优点,如以下所列示和讨论的。本发明并不限于以下所列示的特征。
相机或其他移动设备上的图像全集的图像下载和用户导航在使用带宽时可以是并发和协作的(实际上,导航仅仅影响各小块从服务器向客户机的发送顺序)。
如果PC的显示器比移动设备的显示器大,则可作出有关哪些图像要下载、哪些要保留在移动设备上、以及哪些图像要丢弃的较佳选择,而在判定之前不会引起全集下载的延迟。
分别在PC和移动设备(假设它还具有显示器)上浏览的体验较佳地是简单的、并且是实际上相似的,由此增加可使用性。
如果需要保存笔中图像的较低分辨率版本,则通过减小虚拟显示器上项的大小来适当地限制下载数据的细节是较为直接的。注意,用该方式减小图像大小可较大倍数地加快下载—即每放弃一分辨率水平加快4倍—并需要PC上较少的空间。
通过按需限制虚拟显示器的大小并减少其中图像的数量,可约束分配给PC上的照片的存储器的量。此外,可对不同的照片设置不同的约束,因此可基于新近性或一个或多个其它准则来分配空间。
在一个或多个实施例中,连接的太早中断导致要下载的部分或全部图像的质量退化,而不会从下载操作中完全去除部分图像。(注意,图像的成批数据量具有极高分辨率细节,其中一部分是相机噪声,并且全部细节对于普通查看而言不如更粗糙的图像结构重要。因此,较佳的是在已经全部发送全部图像的较低分辨率图像数据之后发送所有图像的高分辨率图像数据。)图像数据的混合优先排序也是可能的,例如赞成在精细化第二集到超过缩略图细节之前完整下载照片的子集。
在一个或多个实施例中,本文所公开的一种或多种方法适于间歇连接,因为任一JPEG2000对象都可在任何时刻持续增补附加信息,同时允许浏览已经接收到的任何可视数据并与之交互。
关于以上对a)减小物理显示器上项的大小,和b)约束分配给PC上的照片的存储器的量的引用,注意典型的家庭用户可能并不想丢弃任何他们的图像(在起初挑选了这些图像之后)。如果这些用户继续将足够的存储添加到其PC中,则当然没有必要丢弃任何内容。添加存储本身可增加虚拟显示器的最大尺寸。因此,如果可创建足够大的虚拟显示器(即如果有足够可用的客户机方存储),则可略去以上(a)和(b)的特征。
因为客户机方用户并不清楚何时可完成下载“保存笔”图像,所以需要某种形式的完成视觉指示。作为示例,当图像完成下载时,可在它们旁边显现“√”或绿色点。当“保存笔”中的所有图像都包括绿色点时,连接可无损耗地中断。
诸如使用客户机计算机(可以是PC)请求相机丢弃部分其图像的操作可超过申请人参考文献489/15P中所预期的获益于从客户机到服务器的一些附加通信。在一个或多个实施例中,客户机方还可指示服务器方(可以是诸如数码相机或移动电话等移动设备)起动它自己的客户机方,并创建它自己的视图以接收来自PC的内容。
这类似于在万维网环境中开发的“推”(push)方法。PC可呈现PC上的内容的相机/移动电话“视图”,因而(例如)对从PC上传到相机的图像显示上述绿色完成点。图57的各个双向箭头可使用“推”或“拉”(pull)配置来实现。具体地,可从客户机方560(“拉”)或从服务器方570(“推”)控制视口设置、布置和其它导航设置。与一个设备交互的用户可互换地与另一个设备连接,由此使“拉”和“推”能同时进行。
现在枚举图57所示的可能的客户机-服务器连接,并简要描述可如何使用它们和为什么它们是有用的。
可以是相机或启用相机的移动电话的移动设备562可向用户的PC(个人计算机)182提供内容。该连接通常可替代USB电缆或蓝牙自组织无线网络。优点如上所述。
PC 182可将内容返回提供给移动设备562。这可对以下应用等有用。
“皮夹照片”可从PC发送到相机或移动电话,即使那些照片并不是由该移动设备拍摄的。
PC可以是无显示器的家用电器,并且移动设备因此可被用作到存档可视材料的主要视觉接口。本环境中的移动设备可以是数码相机、启用相机的手机、PDA、或具有显示器的移动书写板PC。
第一移动设备可直接连接到另一个移动设备(“客机”),或与之形成一个自组织网络。然后这两个移动设备可查看和共享彼此的照片。
PC可将图像上传(通过推)到远程服务器。该服务器可以是一照片共享服务,并且因此可实现在以上减小物理显示器上项的大小和约束分配给PC上的照片的存储器量的过程中预期的那类空间约束。远程服务器然后可将其集合提供给一个或多个附加PC。通常这会是一宽带连接。然而,也可采用其它连接类型。
远程服务器还可将集合提供给移动设备用户。通常这会是一个移动无线广域网。
移动设备可经由“推”(即,在移动设备的控制下)将其图像上传到远程服务器。在一个或多个实施例中,上传可以是自动化的,从而允许该移动设备通过免费地将内容传送给服务器并在传送完成后局域地删除它来透明地扩展其表观存储空间。
关于以上最后两项,注意移动设备562上的本地高速缓存可允许移动设备562仅使用本地存储来支持浏览极大的缩略图集合,即使该本地存储是有限的。如果相关信息仍然在该移动设备的本地高速缓存中,则放大最近查看的图像的细节也是可能的。
放大其细节仅在远程服务器上可用的图像可导致一模糊和无细节的图像。但是,如果移动设备在包括远程服务器188的网络上,则随着越来越多的详细图像数据被下载到移动设备562,模糊图像会逐步变得更加精细。如果移动设备不与可提供附加图像数据的网络相连,则不能向该图像提供比初始缩略图中可用的更多的细节。
低分辨率图像的综合画
本发明的一个或多个实施例可定义预计算步骤和交互式呈现算法,它们可用于各种配置以对各种应用实现以可控分辨率水平下载选定图像或图像区域。这些应用中的许多(诸如聚焦感兴趣的区域、虚拟书等)可涉及用户与图像“全域”的交互。
在一个或多个实施例中,预计算的起始点因此可以是引用各个图像的文件名、URL、或其它字符串的列表。当用户缩小到足够远以一次查看所有这些图像时,对于客户机或服务器而言一次遍历所有图像文件是不切实际的,因为有极大量的图像。例如,用单个图像在屏幕上占据2 x 2=4个像素的方式,能看见数万或数十万个图像。即使这些图像支持有效的低分辨率访问,但仅仅打开和关闭10万个文件就涉及大的开销,并且在交互式时标上完成也是不切实际的。因此可能需要使用这些图像的低分辨率版本的高速缓存的表示,在本文中称为“综合画(montage)”。
在一个或多个实施例中,综合画可以是以低分辨率呈现并有效地填塞到一个矩形区域的所有图像的镶嵌或拼贴,如图60所示。可嵌入综合画图像文件或单独存储的辅助元数据可用一特定图像文件来标识该综合画图像上的矩形区域。
在一实施例中,综合画图像本身可使用缩放和扫视界面来导航。当用户放大到足够大以穷尽该综合画内的一个或多个图像的综合画版本中可用的分辨率时,该图像的元数据可向客户机提交一个或多个单个图像文件,并且客户机可使用根据这些图像文件的成像来以更高分辨率呈现这些图像。
在一个或多个实施例中,以像素为单位的综合画的总体尺寸被选择成使得其分辨率仅当放大到只可同时看到本文中称为图像“集”的少量图像的状态时才穷尽。因此,较佳地在任何给定时刻都不需要以高分辨率访问该少量以上数量的图像。在随后的缩放和扫视期间,图像流可按需打开和关闭以限制在任何给定时刻打开的高分辨率图像的数量。
导航许多高分辨率图像的以上方法产生一个限制:综合画布局较佳地是为填塞效率和设计的,但用户可能想要屏幕上图像的另一种排列。此外,用户可能想要能够在屏幕上动态地重新排列图像的布局。
在一个或多个实施例中,为了允许这样的重新排列,可使用称为“纹理映射”的图形呈现技术,该技术可用通常在现代个人计算机上经硬件加速的软件来实现。纹理映射允许“纹理”或源图像的一部分在显示器上绘制,从而可任选地重新缩放该图像、旋转它、和/或执行三维立体变换。常常支持其它经硬件加速的变换,包括色彩校正或变更、全或部分透明度、调光、遮挡和坐标重映射。综合画的低分辨率版本可被用作“纹理”,从而当用户缩小时综合画内的各个图像都可以任一方法动态地重新映射,如图61所示。可使用一个以上的纹理映射,在该情形中每一纹理映射可以是包含图像的一个子集的综合画。可使排列之间的转换变为或不变为动画。注意,当用户放大时可进行重新排列,但是因为该重新排列可导致先前不在屏幕上的图像的新的放大视图,所以新图像在开始时候会非常模糊。
在另一实施例中,纹理映射技术仅可在图像动态排列期间使用。当图像排列为静态时,可使用软件合成来组装屏幕上全部或部分的更高清晰度的重新排列综合画。该软件合成方法结合在序列号为10/790,253的美国专利申请(申请人参考文献489/2NP)中描述的多分辨率呈现技术是特别有价值的,这些技术稍早在本公开中标识。该方法可通过重新排列原始综合画的成像来有效地创建新的“显示综合画”。
纹理映射还可用来显示高分辨率图像,但在该情形中并不使用包含多个图像综合画的纹理,而是使用包含各个图像的小块的纹理。该技术还在序列号为10/790,253(申请人参考文献489/2NP)的美国专利申请中描述。
在一个或多个实施例中,综合画重新排列可用来在不求助于纹理映射的情况下支持图像的重新组织。
在一个或多个其它实施例中,纹理映射、软件呈现、或两者的任意组合可用来三维地而非在一维平面上呈现成像。三维的动态重新排列也是可能的。三维应用可包括虚拟画廊或其它走查环境、以及虚拟书。虚拟书在本文中描述,并进一步在序列号为60/619,053的临时专利申请中描述。
图62是适用于本发明一个或多个实施例的计算系统1000的框图。在一个或多个实施例中,中央处理单元(CPU)1002可耦合到总线1004。此外,总线1004可耦合到随机存取存储器(RAM)1006、只读存储器(ROM)1008、输入/输出(I/O)适配器1010、通信适配器1022、用户接口适配器1006、以及显示适配器1018。
在一个或多个实施例中,RAM 1006和/或ROM 1008可保存用户数据、系统数据和/或程序。I/O适配器1010可将诸如硬盘驱动器1012、CD-ROM(未示出)等存储设备或其它大容量存储设备连接到计算系统1000。通信适配器1022可将计算系统1000耦合到局域网、广域网或因特网1024。用户接口适配器1016可将诸如键盘1026和/或定位设备1014等用户输入设备耦合到计算系统1000。此外,显示适配器1018可由CPU 1002驱动以控制显示设备1020上的显示。CPU 1002可以是任一通用CPU。注意,本文档中迄今为止和/或下面所述的方法和装置可使用诸如标准数字电路、模拟电路等任一公知技术、可用来执行软件和/或固件程序的任一公知处理器、可编程数字设备或系统、可编程阵列逻辑器件、或以上的任意组合来实现。本发明的一个或多个实施例还可用存储于适当存储介质中并通过处理单元执行的软件程序来实现。
尽管在本文中已参考特定实施例描述了本发明,但可以理解这些实施例仅仅说明本发明的原理和应用。因此,可以理解可对说明性实施例进行许多更改,并且可设计其它配置而不背离本发明的由所附权利要求限定的精神和范围。
采用图像导航技术来促进商业的方法和装置
发明背景
本发明针对在促进商业时例如通过提供用于为产品和/或服务做广告和购买产品和/或服务的环境来应用图像导航技术的方法和装置。
数字地图制作和地理空间(geospatial)应用是一个急速发展的行业。它们在许多不同的市场中—从像Federal Express、服装店到快餐连锁店等候选者,已经吸引了来自企业的迅速增长投资。在过去的几年中,地图制作也成为web上除搜索引擎、基于web的电子邮件和婚姻介绍之外的产生重大兴趣的极少数软件应用程序(也称为“佼佼者应用程序(killer app)”)之一。
尽管地图制作原则上应是高度可视的,但是此时其对终端用户的实用性几乎完全在于生成驾驶指示。不变地伴随着驾驶方向的地图图像通常被不良地呈现、传达极少的信息、并且不能方便地导航,从而使得它们只不过是一种橱窗装饰。点击扫视或缩放控件会导致长延迟,在这一延迟期间web浏览器变得不响应,之后是与前一图像几乎没有视觉关系的新地图图像的出现。尽管原则上计算机应当能够比导航纸质地图集更有效地导航数字地图,但是实际上计算机对地图的视觉导航仍是拙劣的。
发明描述
本发明旨在结合允许甚至在低带宽连接上对地图(或任何其它图像)进行连续且快速的视觉导航的新颖技术来使用。该技术涉及用于在扫视和缩放环境中连续地呈现地图的新技术。它是分形几何(fractal geometry)对线和点呈现的一种应用,从而允许以所有比例绘制道路(1D曲线)和点标记位置(0D点)的网络,并产生连续物理缩放的假象,同时仍保持地图的“视觉密度”受到约束。相关技术应用于文本标签和图标内容。这一新呈现方法避免了诸如缩放期间小道路的突然出现或消失、数字地图绘制中典型的不利效果等效果。本导航技术的细节可以在与其同日提交的题为METHODS AND APPARATUS FOR NAVIGATING AN IMAGE、代理案卷号为489/9的美国专利申请No.10/803,010中找到,该申请的全部公开内容通过引用结合于此。该导航技术此处可被称为“Voss”。
对Voss技术的使用允许多种新颖且有商业价值的商业模型用于因特网地图制作。这些模型取如Yahoo!Maps和MapQuest等从地理广告中产生收入的证明商业成功作为其出发点。然而,本文的方法远超出了做广告,它利用了新技术为企业和终端用户两者大量增值的能力。基本理念是允许企业和人们出租地图上通常在其物理地址处可嵌入可缩放内容的“不动产”。该内容当在大比例地图上查看时可按图标形式,即麦当劳的金色拱门出现,但是然后在更接近地查看时被平滑且连续地分解成任何种类的类似web内容。通过将此处的地图制作应用程序与动态用户内容和企业/住宅地址数据集成,由此启用一种“地理万维网”。
除了用于消费者和零售商的大水平市场之外,与现有的地理信息服务(GIS)供应商和相关工业的协作可获得诸如汽车导航系统、蜂窝电话和PDA、不动产租售、分类广告以及其它更多。这些领域中的可能商业关系包括技术许可、策略合伙以及直接垂直销售。
本发明的新导航技术的能力在上述美国专利申请中有详细描述。对于本申请,该基本技术的最相关方面是:
-以感知连续性和高级带宽管理通过2D世界的平滑缩放和扫视;
-无限精度坐标系统,从而允许无限制地嵌套可视内容;
-嵌套储存在许多不同服务器上的内容的能力,使得空间包含等价于超链接。
对于后两个要素,附加细节可以在2003年5月30日提交的题为SYSTEM ANDMETHOD FOR INFINITE PRECISION COORDINATES IN A ZOOMING USERINTERFACE的美国临时专利申请No.60/474,313中找到,该申请的全部公开内容通过引用结合于此。
地图由许多信息层构成;最终,Voss地图应用程序将允许用户打开和关闭这些层中的大多数层,从而使得地图是高度可定制的。这些层包括:
1.道路;
2.水路;
3.行政界线;
4.基于航空照相的正图像(orthoimagery)(被数字地“解除翘曲”使得它完美地平铺地图的航空照相);
5.地形;
6.公共基础设施位置,例如学校、教堂、共用电话、公厕;
7.以上每一项的标签;
8.云层、降雨和其它天气状况;
9.交通状况;
10.广告;以及
11.个人和商业用户内容;等等。
从典型的用户观点来看最显著的层是1-4和7。本专利申请中有特殊兴趣的广告/用户内容层10-11也是相当感兴趣的。许多地图层—包括1-7—已经以高质量和可忽略的成本可从美国联邦政府获得。可使如8-9(以及其它)等增值层可在开发期间或甚至在开发之后的任何时刻获得。
若干公司提供了具有指示单行道、高速公路的驶入和驶出匝道、以及对于生成驾驶指示重要但对于视觉地理不重要的其它特征的注释的增强的道路数据。对此处应用提供的最相关商业地理信息服务(GIS)是地理编码,它允许将街道地址转换成精确的经度/纬度坐标。已确定获得地理编码服务将不会太过昂贵。
除了地图数据之外,国家黄页/白页数据在实现本发明时也可能是有价值的。该信息也可被许可。国家黄页/白页数据可结合地理编码使用来允许地理用户搜索企业或过滤(例如,“加亮曼哈顿的所有餐馆”)。可能最重要的是,结合地理编码的目录清单将极大地简化企业和个人用户与地理位置的关联,从而允许经由在线交易出租或分配“不动产”并避免了对大量销售人员的需求。
为电话销售而设计的国家电话和地址数据库可廉价地在CD上获得,但是这些不一定是高质量的—其覆盖范围通常仅是局部的,并且它们通常会过时。多个公司提供了具有为如本文中的面向软件企业设计的API的健壮目录服务器。其中最好的是W3Data(www.w3data.com),它使用基于XML的API提供了所谓的“接近当时(neartime)”国家电话清单,收费最少为$500/月,从$0.10/命中开始直到对于250,000/月的量的$0.05/命中或超过1,000,000/月的量的$0.03/命中。覆盖了整个美国和加拿大。反向查询也是可能的,即给定电话号码查找姓名。“接近当时”数据至少每90天更新。与已在本端获得的条目的90天高速缓存相结合,这是获得高质量国家清单的非常经济的方法。每夜更新的“实时数据”也是可用的,但是更昂贵($0.20/命中)。实时数据与411操作人员所使用的那些数据相同。
也存在类似于W3Data的按照类别来产生国家企业清单的服务提供商,它们具有可比的商业和定价模型。
基于经典广告的商业模型以及涉及专有数据格式和可下载插件(诸如Flash、Adobe Acrobat和Real Player)的“媒体播放器”模型通常面对“鸡和蛋”问题。广告地点仅仅在人们已经注视的时候才变得值得做广告;插件(即使是免费的)仅在已经有了有用的内容来查看时才变得值得下载;且内容仅在已经有了准备好查看该内容的已安装用户基础时才变得对作出投资有吸引力。
尽管Voss地图制作应用程序需要可下载客户端软件并通过做广告来产生收入,但是它不会遭受经典的基于广告的商业模型的缺点。即使在“出租”了任何实质上的商业空间之前,本发明也将提供一种查看地图并搜索地址的有用且视觉上引人注目的方式—即,与现有地图制作应用程序类似的功能,但是具有极大改进的视觉界面。此外,本发明的方法免费地为非商业用户提供了有限但有价值的服务以吸引用户基础。该有限服务包括在用户的地理位置处—通常是房屋中为每一用户主存少量(5-15MB)服务器空间。该客户端软件可包括简单的创作能力,从而允许用户将图像和文本拖放到其“物理地址”,然后可由具有该客户端软件的任何其它授权用户查看这些图像和文本。(口令保护是可用的)。由于缩放用户界面方法对于导航数字照片集合—尤其是在有限的带宽上—有着显著的优势,因此单单相册共享潜力就可吸引大量的用户。附加服务器空间可在支付了适度年费的情况下可用。这一非常水平市场很可能成为一种主要收入来源。
因此,通过从头开始提供有价值服务,即对搜索引擎和其它有用(且现在产生利润的)web服务起很好作用的方法,避免了通常的“鸡和蛋”问题。这与例如只有在构建了用户基础之后才有用的在线约会服务形成鲜明的对比。
根据本发明的各方面,收入来源可包括:
1.地图上对应于物理地址的空间的商业“出租”;
2.面向商业用户调整的“附加服务”(以下定义)的费用;
3.面向非商业用户调整的“附加服务”的费用;
4.专业可缩放内容创作软件;
5.与PDA、蜂窝电话、汽车导航系统等销售商和服务供应商的许可或合伙;
6.信息。
地图上空间的基本商业出租可使用以下变量的组合来定价:
1.地图上场所的数目;
2.每一场所的地图面积(“覆盖区”),以平方米为单位;
3.基于总计的查看统计量对不动产的期望程度;
4.主存内容所需的服务器空间,以MB为单位。
对于商业用户的附加服务面向专营权、希望进行电子商务或对web做出其它更复杂使用的企业、以及希望增加其广告可见性的企业来调整:
1.更大的可见高度—可提供若干级别,从而允许可见但不唐突的图标或“标志”来指示比本来可见的更远(被缩小得更多)的商业场所的位置。
2.聚焦优先级—当数据变得可用时Voss在导航期间将图像区域聚焦。默认地,所有视觉内容被同等地对待,且聚焦从屏幕中心开始向外进行。聚焦优先级允许商业内容比其它情况下更快地变清晰,从而增加其在用户“周边视觉”中的突出性。这一特征可被调节以在不损害用户的导航体验的情况下递送商业值。
3.在可缩放内容中包括常规web超链接—这些可被清楚地标记(例如,用常规的带下划线的蓝色文本),并且在用户点击时打开web浏览器。可为包括这一超链接收费,或者可像Google一样对每次点击收费。
4.使得出租的地理区域引用外部商业服务器,该服务器本身主存任何类型和大小的可缩放内容—这是#3的更奇特版本,并允许经由地图进行任何种类的电子商务。可再一次收取固定费用或对连接到外部服务器的每一用户收费(通过这一手段不再需要点击,只需放大)。
5.告示牌—与真实生活中一样,地图的许多高可见性区域将具有相当多的空白区。公司可购买这一空间并插入内容,包括超链接和“超跳转(hyperjump)”,它们在被点击时将使得用户通过空间跳转到地图上的其它商业场所。与普通的商业空间形成对比,告示牌空间无需在固定的位置处出租;其位置可在用户导航期间在进行中生成。
该最后一个服务引发了“生态学”或地图的视觉审美和可使用性问题。期望地图是有吸引力的且保留对用户的真诚服务,这意味着对广告和有鉴赏力的“分区规则”的限制。如果地图变得因告示牌或不反映真实世界地理的其它内容而过度混乱,则用户将被关闭且地图作为广告和电子商务收入的价值也将下降。
当收集使用统计量时,这些商业“附加服务”中的许多的价值在数量上可能是明显的。具竞争力的优点的定量证据应增加这些额外物的销售。
面向非商业用户调整的附加服务包括相同产品中的某一些,但这些产品被按比例缩放、定价并不同地营销。
可缩放Voss内容的有限创作从免费客户端内是可行的。这将包括插入文本、拖放数字照片以及设置口令。专业创作软件可以是被设计成允许更灵活的可缩放内容创建的客户端、以及用于制作超链接和超跳转并插入自定义小程序的工具的经修改版本。
对本发明的使用可生成关于空间注意力密度、导航路线和其它模式的大量总计和个别信息。这些数据都是有商业价值的。

Claims (28)

1.一种方法,包括:
由代理服务器访问因特网站点;
将来自所述因特网站点的图像数据转换成多分辨率表示;以及
将所述多分辨率表示的所述图像数据发送到客户机设备。
2.如权利要求1所述的方法,其特征在于,还包括:
由所述客户机设备导航网页。
3.如权利要求2所述的方法,其特征在于,所述导航包括:
(a)由所述代理服务器导航所述因特网站点图像数据;以及
(b)由所述客户机设备导航所述多分辨率图像数据,其中所述导航步骤(a)和所述导航步骤(b)基本同时发生。
4.如权利要求2所述的方法,其特征在于,所述导航包括:
在所述代理服务器处储存至少基本全部所述网页的多分辨率图像数据;以及
由所述客户机设备导航所述储存的多分辨率图像数据。
5.如权利要求2所述的方法,其特征在于,所述转换步骤包括:
如所述客户机设备的所述导航所需地连续地转换所述因特网站点图像数据。
6.如权利要求2所述的方法,其特征在于,所述转换步骤包括:
在所述客户机设备导航需要来自所述因特网站点的选中图像数据之前,由所述代理服务器预转换所述选中图像数据;以及
在所述代理服务器处储存所述预转换的图像数据。
7.如权利要求6所述的方法,其特征在于,还包括:
如所述客户机设备导航所需地将所述储存的图像数据发送给所述客户机设备。
8.如权利要求6所述的方法,其特征在于,还包括:
在将所述储存的预转换图像数据发送给所述客户机设备之前,确保所述图像数据没有过时。
9.如权利要求8所述的方法,其特征在于,所述确保包括:
将所述预转换的图像数据的时间戳与校验和之一与源自所述因特网站点的对应图像数据的时间戳与校验和中相应的一个进行比较。
10.如权利要求6所述的方法,其特征在于,所述预转换步骤包括:
由所述代理服务器转换至少一个网页的图像数据;以及
在所述代理服务器处储存所述至少一个网页的所述经转换的图像数据。
11.如权利要求2所述的方法,其特征在于,还包括:
允许所述客户机设备和所述因特网站点之间的双向交互式通信。
12.如权利要求11所述的方法,其特征在于,所述交互式通信包括:
将来自所述客户机设备的导航命令发送给所述代理服务器。
13.如权利要求2所述的方法,其特征在于,还包括:
由所述代理服务器仿真用于所述客户机设备的动态因特网图形。
14.如权利要求13所述的方法,其特征在于,所述仿真步骤包括仿真以下的至少之一:
动态HTML(超文本标记语言);以及
小程序。
15.如权利要求2所述的方法,其特征在于,所述导航包括:
在所述客户机设备处选择用于查看所述网页的至少一部分的分辨率水平。
16.如权利要求2所述的方法,其特征在于,所述导航包括:
选择所述网页的一个区域以在所述客户机设备上显示。
17.如权利要求16所述的方法,其特征在于,所述导航还包括:
选择用于查看所述网页的所述区域的分辨率。
18.如权利要求2所述的方法,其特征在于,所述导航包括:
选择所述网页的多个部分以在所述客户机设备处查看。
19.如权利要求18所述的方法,其特征在于,所述导航还包括:
选择用于查看所述多个网页部分的多个相应的分辨率。
20.如权利要求2所述的方法,其特征在于,所述导航所述多分辨率图像数据包括:
扫视所述多分辨率图像数据。
21.如权利要求2所述的方法,其特征在于,所述导航所述多分辨率图像数据包括:
在所述多分辨率图像数据上放大。
22.一种装置,包括:
客户机设备;以及
与所述客户机设备和因特网站点通信并担当两者之间的中介的代理服务器,其中所述代理服务器可用于将来自所述因特网站点的图像数据转换成多分辨率可视数据格式。
23.如权利要求22所述的装置,其特征在于,所述多分辨率可视数据格式是JPEG2000。
24.如权利要求2所述的装置,其特征在于,所述客户机设备是蜂窝电话,且其中所述蜂窝电话包括:
用于导航所述多分辨率可视数据格式的图像数据的至少一个机制。
25.如权利要求24所述的装置,其特征在于,所述机制是触摸垫,且所述触摸垫允许扫视所述多分辨率可视数据格式的图像数据。
26.如权利要求22所述的装置,其特征在于,所述机制允许在所述多分辨率可视数据格式的图像数据上放大。
27.如权利要求26所述的装置,其特征在于,所述用于缩放的机制包括可由所述客户机设备的用户旋转的滚轮。
28.如权利要求22所述的装置,其特征在于,所述客户机设备是由以下各项构成的组中的一个:蜂窝电话、PDA(个人数字助理)、笔记本计算机、台式计算机、平板计算机和电视机。
CNA200680009406XA 2005-03-29 2006-03-29 用于传送网页数据的系统和方法 Pending CN101501664A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US66614205P 2005-03-29 2005-03-29
US60/666,142 2005-03-29
US60/670,510 2005-04-12
US11/141,958 2005-06-01
US11/247,513 2005-10-11
US11/252,181 2005-10-17

Publications (1)

Publication Number Publication Date
CN101501664A true CN101501664A (zh) 2009-08-05

Family

ID=40947443

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200680009406XA Pending CN101501664A (zh) 2005-03-29 2006-03-29 用于传送网页数据的系统和方法

Country Status (1)

Country Link
CN (1) CN101501664A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102543126A (zh) * 2010-12-28 2012-07-04 新奥特(北京)视频技术有限公司 一种基于金字塔式多分辨率的音频波形绘制方法
CN104137099A (zh) * 2011-12-22 2014-11-05 诺基亚公司 方法、装置、计算机程序和用户接口
CN104243929A (zh) * 2014-09-26 2014-12-24 武汉烽火众智数字技术有限责任公司 一种电子地图上摄像机可视范围的展示方法
CN105917682A (zh) * 2014-01-27 2016-08-31 高通股份有限公司 用于分层地图拼贴的方法和设备
CN106156407A (zh) * 2016-06-24 2016-11-23 国家电网公司交流建设分公司 多分辨率三维cad模型生成方法
CN108536698A (zh) * 2017-03-02 2018-09-14 腾讯科技(深圳)有限公司 web数据三维展示方法及装置
CN109325215A (zh) * 2018-12-04 2019-02-12 万兴科技股份有限公司 Word文本的输出方法及装置
CN110516171A (zh) * 2019-07-29 2019-11-29 深圳点猫科技有限公司 一种跨域获取网络图片资源的方法及装置
CN110809185A (zh) * 2019-10-22 2020-02-18 四川长虹电器股份有限公司 一种智能电视基于Web化视频预览的主页呈现方法
CN111783000A (zh) * 2020-06-30 2020-10-16 中国工商银行股份有限公司 门户网站的静态化处理方法及装置
CN112150431A (zh) * 2020-09-21 2020-12-29 京东数字科技控股股份有限公司 Ui视觉的走查方法和装置、存储介质、电子装置
CN117762889A (zh) * 2024-02-20 2024-03-26 成都融见软件科技有限公司 同文件多窗口状态同步方法、电子设备和介质

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102543126A (zh) * 2010-12-28 2012-07-04 新奥特(北京)视频技术有限公司 一种基于金字塔式多分辨率的音频波形绘制方法
CN104137099A (zh) * 2011-12-22 2014-11-05 诺基亚公司 方法、装置、计算机程序和用户接口
CN105917682A (zh) * 2014-01-27 2016-08-31 高通股份有限公司 用于分层地图拼贴的方法和设备
CN104243929A (zh) * 2014-09-26 2014-12-24 武汉烽火众智数字技术有限责任公司 一种电子地图上摄像机可视范围的展示方法
CN106156407A (zh) * 2016-06-24 2016-11-23 国家电网公司交流建设分公司 多分辨率三维cad模型生成方法
CN108536698A (zh) * 2017-03-02 2018-09-14 腾讯科技(深圳)有限公司 web数据三维展示方法及装置
CN109325215B (zh) * 2018-12-04 2023-02-10 万兴科技股份有限公司 Word文本的输出方法及装置
CN109325215A (zh) * 2018-12-04 2019-02-12 万兴科技股份有限公司 Word文本的输出方法及装置
CN110516171A (zh) * 2019-07-29 2019-11-29 深圳点猫科技有限公司 一种跨域获取网络图片资源的方法及装置
CN110809185A (zh) * 2019-10-22 2020-02-18 四川长虹电器股份有限公司 一种智能电视基于Web化视频预览的主页呈现方法
CN110809185B (zh) * 2019-10-22 2021-06-22 四川长虹电器股份有限公司 一种智能电视基于Web化视频预览的主页呈现方法
CN111783000A (zh) * 2020-06-30 2020-10-16 中国工商银行股份有限公司 门户网站的静态化处理方法及装置
CN111783000B (zh) * 2020-06-30 2023-08-08 中国工商银行股份有限公司 门户网站的静态化处理方法及装置
CN112150431A (zh) * 2020-09-21 2020-12-29 京东数字科技控股股份有限公司 Ui视觉的走查方法和装置、存储介质、电子装置
CN117762889A (zh) * 2024-02-20 2024-03-26 成都融见软件科技有限公司 同文件多窗口状态同步方法、电子设备和介质
CN117762889B (zh) * 2024-02-20 2024-04-19 成都融见软件科技有限公司 同文件多窗口状态同步方法、电子设备和介质

Similar Documents

Publication Publication Date Title
CN101147174B (zh) 用于管理图像数据的传送和/或存储的系统和方法
CN101501664A (zh) 用于传送网页数据的系统和方法
AU2006230233B2 (en) System and method for transferring web page data
CA2812008C (en) Methods and apparatus for navigating an image
CN100517316C (zh) 图像文件一览显示装置
CN100451921C (zh) 用户界面系统和用于显示界面上条目的计算机实现的方法
Craglia et al. Next-generation digital earth
US6785667B2 (en) Method and apparatus for extracting data objects and locating them in virtual space
EP1756521A2 (en) Method for encoding and serving geospatial or other vector data as images
US6650326B1 (en) Method of handling context during scaling with a map display
CN109313768B (zh) 用于在线门票市场的天气增强的图形预览的方法和系统
CN103398719A (zh) 数字地图描绘系统
CN116301348A (zh) 一种博物馆展厅个性化游览布局方法及系统
CA2558833C (en) Methods and apparatus for navigating an image
JP2008535098A (ja) ウェブページデータを転送するシステムおよび方法
Hudson-Smith et al. Virtual cities: Digital mirrors into a recursive world
Echavarria et al. Augmented reality (AR) maps for experiencing creative narratives of cultural heritage
Pierret et al. 4D visual delivery of big climate data: A fast web database application system
Gibin et al. Collaborative mapping of London using google maps: the LondonProfiler
Boulos Principles and techniques of interactive Web cartography and Internet GIS
Yano et al. Developing and Evaluating Virtual Heiankyō AR
Green et al. The digital globe
Evans Interoperable Web-based services for digital orthophoto imagery
Król et al. Interactive “Image Viewers"—comparison of selected tools and application examples
Batty et al. Virtual cities: digital mirrors into a recursive world

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20090805