CN101147174A - 用于管理图像数据的传送和/或存储的***和方法 - Google Patents
用于管理图像数据的传送和/或存储的***和方法 Download PDFInfo
- Publication number
- CN101147174A CN101147174A CNA2005800430579A CN200580043057A CN101147174A CN 101147174 A CN101147174 A CN 101147174A CN A2005800430579 A CNA2005800430579 A CN A2005800430579A CN 200580043057 A CN200580043057 A CN 200580043057A CN 101147174 A CN101147174 A CN 101147174A
- Authority
- CN
- China
- Prior art keywords
- image
- resolution
- computing machine
- data
- fritter
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 577
- 238000003860 storage Methods 0.000 title claims description 89
- 238000004891 communication Methods 0.000 title claims description 30
- 230000014509 gene expression Effects 0.000 claims description 75
- 238000006243 chemical reaction Methods 0.000 claims description 33
- 238000011049 filling Methods 0.000 claims description 32
- 230000005540 biological transmission Effects 0.000 claims description 29
- 230000003321 amplification Effects 0.000 claims description 21
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 21
- 230000001965 increasing effect Effects 0.000 claims description 19
- 238000013500 data storage Methods 0.000 claims description 13
- 230000000007 visual effect Effects 0.000 abstract description 71
- 238000009877 rendering Methods 0.000 abstract description 38
- 230000000875 corresponding effect Effects 0.000 description 214
- 239000013598 vector Substances 0.000 description 153
- 238000004422 calculation algorithm Methods 0.000 description 128
- 238000007906 compression Methods 0.000 description 89
- 230000006835 compression Effects 0.000 description 89
- 238000005516 engineering process Methods 0.000 description 79
- 230000008859 change Effects 0.000 description 76
- 230000006870 function Effects 0.000 description 61
- 230000015654 memory Effects 0.000 description 55
- 238000010586 diagram Methods 0.000 description 48
- 230000009471 action Effects 0.000 description 45
- 241000209094 Oryza Species 0.000 description 42
- 235000007164 Oryza sativa Nutrition 0.000 description 42
- 235000009566 rice Nutrition 0.000 description 42
- 235000013350 formula milk Nutrition 0.000 description 38
- 230000008569 process Effects 0.000 description 38
- 230000008901 benefit Effects 0.000 description 30
- 230000002452 interceptive effect Effects 0.000 description 30
- 238000012545 processing Methods 0.000 description 29
- 230000004044 response Effects 0.000 description 28
- 230000004304 visual acuity Effects 0.000 description 23
- 239000012634 fragment Substances 0.000 description 21
- 230000002829 reductive effect Effects 0.000 description 21
- 238000013461 design Methods 0.000 description 20
- 238000003384 imaging method Methods 0.000 description 19
- 238000005070 sampling Methods 0.000 description 19
- 230000000694 effects Effects 0.000 description 18
- 238000013507 mapping Methods 0.000 description 18
- 238000013459 approach Methods 0.000 description 17
- 230000000903 blocking effect Effects 0.000 description 16
- 238000009826 distribution Methods 0.000 description 15
- 230000004438 eyesight Effects 0.000 description 15
- 230000009466 transformation Effects 0.000 description 14
- 230000000750 progressive effect Effects 0.000 description 13
- 230000003068 static effect Effects 0.000 description 13
- 239000002699 waste material Substances 0.000 description 13
- 241001269238 Data Species 0.000 description 12
- 230000003467 diminishing effect Effects 0.000 description 12
- 239000000463 material Substances 0.000 description 11
- 230000006399 behavior Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 238000002156 mixing Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 230000001902 propagating effect Effects 0.000 description 9
- 238000004513 sizing Methods 0.000 description 9
- 238000012952 Resampling Methods 0.000 description 8
- 238000000354 decomposition reaction Methods 0.000 description 8
- 230000004807 localization Effects 0.000 description 8
- 239000000047 product Substances 0.000 description 8
- 238000010408 sweeping Methods 0.000 description 8
- 238000013519 translation Methods 0.000 description 8
- 230000003247 decreasing effect Effects 0.000 description 7
- 230000007812 deficiency Effects 0.000 description 7
- 238000001914 filtration Methods 0.000 description 7
- 238000007667 floating Methods 0.000 description 7
- 238000005192 partition Methods 0.000 description 7
- 230000008447 perception Effects 0.000 description 7
- 230000009467 reduction Effects 0.000 description 7
- 230000000717 retained effect Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000006378 damage Effects 0.000 description 6
- 230000009977 dual effect Effects 0.000 description 6
- 239000000203 mixture Substances 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 230000036961 partial effect Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 241001421757 Arcas Species 0.000 description 5
- 241000282376 Panthera tigris Species 0.000 description 5
- 239000012141 concentrate Substances 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 5
- 230000002596 correlated effect Effects 0.000 description 5
- 238000013144 data compression Methods 0.000 description 5
- 230000001976 improved effect Effects 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 230000003278 mimic effect Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 5
- 230000002708 enhancing effect Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 230000002950 deficient Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000004069 differentiation Effects 0.000 description 3
- 230000008034 disappearance Effects 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 238000009499 grossing Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004321 preservation Methods 0.000 description 3
- 230000035807 sensation Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 238000005728 strengthening Methods 0.000 description 3
- 201000009487 Amblyopia Diseases 0.000 description 2
- 244000287680 Garcinia dulcis Species 0.000 description 2
- 241000012186 Litura Species 0.000 description 2
- 241000282341 Mustela putorius furo Species 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000010009 beating Methods 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 238000005562 fading Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 239000010985 leather Substances 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003801 milling Methods 0.000 description 2
- 238000010428 oil painting Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000010422 painting Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000000704 physical effect Effects 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 230000008521 reorganization Effects 0.000 description 2
- 229920003987 resole Polymers 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241000894007 species Species 0.000 description 2
- 230000008093 supporting effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 244000105624 Arachis hypogaea Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 101100284369 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) has-1 gene Proteins 0.000 description 1
- 101150034459 Parpbp gene Proteins 0.000 description 1
- MFYFNUKUXIRYFV-JSGCOSHPSA-N Polygonone Natural products O=CC=1C(=O)C[C@H]2C(C)(C)CCC[C@@]2(C)C=1 MFYFNUKUXIRYFV-JSGCOSHPSA-N 0.000 description 1
- 208000037656 Respiratory Sounds Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000005574 cross-species transmission Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000002224 dissection Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 210000000873 fovea centralis Anatomy 0.000 description 1
- 238000003707 image sharpening Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000005039 memory span Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000007430 reference method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000029058 respiratory gaseous exchange Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000001711 saccadic effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000003756 stirring Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0483—Interaction with page-structured environments, e.g. book metaphor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/64—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
- H04N19/647—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/08—Bandwidth reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/36—Level of detail
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
- Facsimiles In General (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Facsimile Transmission Control (AREA)
- Information Transfer Between Computers (AREA)
Abstract
公开了一种***和方法,它可包括在通信链路上建立第一计算机与第二计算机之间的通信,所述第二计算机具有以压缩图像数据的形式存储其中的图像集合;在该集合中选择多个图像以传送给所述第一计算机;以及在发送任一选定图像的全分辨率图像数据之前从第二计算机向第一计算机发送全部选定图像的低分辨率图像数据。
Description
背景技术
最近开发的诸如JPEG2000/JPIP等图像压缩和传输标准已使得大图像(即大小为千兆像素级)能在窄带宽信道上交互式显示。然而,这些新兴的标准和技术并不提供用于实现更为远大目标的手段:允许同时与极大量图像的灵活视觉交互,其中每一个图像也可能极大。因此,本领域中需要一种用于传送和/或存储图像数据的经改进***和方法。
发明概述
根据一方面,本发明提供了一种方法,该方法可包括在通信链路上建立第一计算机和第二计算机之间的通信,该第二计算机具有以经压缩图像数据的形式存储其中的图像集合;在该集合中选择多个图像以传送给所述第一计算机;以及在发送任一个选定图像的全分辨率图像数据之前将所有选定图像的低分辨率图像数据从第二计算机发送到第一计算机。
当结合附图在本文中对本发明优选实施例进行描述时,其它方面、特征、优点等将变得对本领域技术人员显而易见。
附图简述
为了说明本发明的各个方面,目前较佳的方面以附图形式示出,但可以理解,本发明并不限于所示的精确配置和手段。
图1是根据本发明一个或多个实施例的可相连以使得图像数据能在多个计算机之间传送的***的框图;
图2是根据本发明一个或多个实施例的其中具有至少两个感兴趣区域的图像的框图;
图3是根据本发明一个或多个实施例的采用在本文中公开的技术的多个方面的“虚拟书”的框图;
图4是根据本发明一个或多个实施例的图3虚拟书的三维版本的示图;
图5是根据本发明一个或多个实施例的用于管理一个或多个便携式设备与一个或多个其它计算机之间的图像数据通信的***的框图;
图6A示出采用一现有方法的不完全图像数据下载的结果;
图6B示出根据本发明一个或多个实施例的不完全图像数据下载的结果;
图7是根据本发明一个或多个实施例的可包括物理显示(屏幕)和两个虚拟显示的“共用空间”的框图;
图8示出根据本发明一个或多个实施例的压缩成一综合画(montage)的一千个以上图像的集合(各种大小的数字化地图的集合);
图9示出根据本发明的一个或多个实施例的已被动态地重新排列成一随机配置的约三千个图像的快照;以及
图10是可适用于本发明的一个或多个实施例的计算机***的框图。
实现本发明的最佳方式
图1是根据本发明一个或多个实施例的可相连以使得图像数据能在多个计算机之间传送的***100的框图。***100较佳地包括与显示器104和数据存储设备106相连的客户机计算机102。***100较佳地还包括可与数据存储设备110相连的服务器计算机108。服务器计算机108还可与因特网112相连。
在一个或多个实施例中,图像数据可在多个计算机102、108之间传送,以便于允许使用其间相对较低的带宽连接来查看可能较大图像的较大集合。例如,存储在服务器计算机108上的图像的期望查看和导航可通过以可控的分辨率水平发送存储在服务器计算机108上的图像数据的选定部分来实现。对图像数据114的选择性可以是诸如选择高分辨率的特定图像、或甚至是高分辨率的特定图像的选定部分。
在本文中讨论了各个实施例,它们包括改变:用作客户机计算机102和服务器108的设备的类型、在其间传输的图像数据114的类型、以及以指定分辨率水平发送选定图像数据的能力的各种应用。
图2是根据本发明一个或多个实施例的其中具有至少两个感兴趣区域202、204的图像200的框图。图像200可以是图像数据114的一个子集。或者,取决于客户机计算机102请求了哪些图像数据,图像数据114可表示图像200的一个子集。
在一个或多个实施例中,图像200可以压缩形式存储在服务器计算机108上,或存储在存储设备110内。较佳地,当以此方式存储时,可存储图像200中各个区域的多个分辨率水平的数据,并可请求由客户机计算机102下载这些数据。
在一个或多个实施例中,一特定图像或图像的一特定部分存储在客户机计算机102上的分辨率水平可容易地提高或降低。当先前的下载导致区域或图像以第一分辨率水平(可低于全分辨率)存储时,该第一分辨率水平可通过添加表示下一更高水平分辨率的数据而提高(较佳地在不丢弃表示该第一分辨率的数据的情况下),由此避免在此设想的图像数据通信的重复并提高其效率。相反,存储在客户机102上的一区域或图像的分辨率水平在不丢失与同一区域或图像的较低水平分辨率相对应的数据的情况下可通过丢弃存储其中的最高水平分辨率而降低。这种分辨率的降低可在客户机102上实现,以清除不同于丢弃其数据的区域或图像的一个或多个区域或图像所需的数据存储空间。
相关的图像压缩可通过例如使用JPEG2000或另一基于离散小波变换的图像压缩方案来提供。然而,本发明并不限于任何特定压缩格式或图像数据表示的使用。可采用其它格式,包括其字节大小实际上不比未经压缩的图像数据小的图像格式。只有选定图像格式容许图像数据的多级表示和存储才是较佳的。
在一个或多个实施例中,客户机计算机102可能想要下载图像200的一个或多个区域,其中这些区域可以是图像200的一部分。感兴趣的一个或多个区域202、204可以是客户机计算机102想要下载的唯一区域。或者,客户机计算机(客户机)102可能仅仅想要以比下载图像200的其余部分更高的分辨率来下载一个或多个选定区域。在任一情形中,客户机102可通过标识要下载的图像200的指定区域和将由服务器计算机(服务器)108提供的该指定区域的分辨率水平来请求一下载。
在图2的示例中,客户机102较佳地请求以低分辨率下载全部图像200。(下载大批量图像200的确切分辨率水平与本讨论无关。)然而,客户机102想要以更高分辨率、甚至全分辨率下载感兴趣的区域1202。因此,客户机102较佳地向服务器108指定感兴趣区域1 202的坐标和期望的分辨率水平。因而,除了以低分辨率下载大批量的图像200(包括在感兴趣区域1202之外的部分)之外,客户机102较佳地以指定的更高分辨率下载感兴趣区域1202。在其它情形中,客户机102会仅想下载感兴趣的(多个)区域并略去对图像200的其余部分的下载。
以此方式,客户机计算机102的用户可在不必以高分辨率下载图像200的全部的情况下以该高分辨率查看感兴趣区域1202。因而,客户机102和服务器108之间的相对较低带宽的数据通信链路可仍然发送图像200的全部,同时以高分辨率提供特别感兴趣的区域(在该情形中为感兴趣区域1202),由此对于如果客户机102已经以高分辨率下载了图像200的全部就会出现的感兴趣区域,向查看者提供相同的查看体验,然而该后一选择需要显著更长的下载时间以及在客户机计算机102或数据存储设备106处的更多数据存储空间。
转换感兴趣区域
在一个或多个实施例中,客户机计算机102的用户可能想要在图像200上扫视。通常,从感兴趣区域202扫视到另一个感兴趣区域204将涉及在客户机102上以将要查看这些区域的分辨率水平下载这两个区域。此外,通常感兴趣区域1202和感兴趣区域2204之间的所有图像区域将被存储在客户机计算机102上以使所述扫视能够进行。如以下所描述的,在本发明的一个或多个实施例中,查看这些感兴趣区域202、204可通过下载比上述方法中少得多的数据、并使用客户机计算机102上更少的存储空间来实现。
在一个或多个实施例中,客户机102可从感兴趣区域1202转换到感兴趣区域2204的高分辨率查看。较佳地,与感兴趣区域2204的低分辨率表示相对应的图像数据已因为下载了图像200而在客户机计算机102中存在,如上所述。在该情形中,所需要的全部是用描述相关的较高分辨率水平的附加图像数据来补充感兴趣区域2204的现有图像数据,以在客户机计算机102上达到感兴趣区域2204的高分辨率表现。如果需要,表示感兴趣区域1202的较高分辨率水平的图像数据可被丢弃或重写,以在数据存储设备106中腾出空间或其它数据存储空间,用于对感兴趣区域2204下载的附加图像数据。
在一个或多个实施例中,从感兴趣区域1202到感兴趣区域2204的查看的转换可逐步实现,以向显示器104的查看者提供可精确地模拟在以高分辨率下载图像200的全部的计算机上的查看体验的查看体验。具体地,显示感兴趣区域1202的分辨率水平可逐步降低到表示图像200的大部分的分辨率水平。然后,显示器104上的视图可表示在感兴趣区域1202与感兴趣区域2204之间的低分辨率区上的逐步扫视。最后,在到达感兴趣区域2204时,在完成图像200上的扫视之后、或与该扫视操作的后半部分同时,显示器104上的视图可增至感兴趣区域2204的高分辨率表现。较佳地,在所述过程结束时,感兴趣区域2204可以高分辨率存储在客户机计算机102上,并可以该高分辨率在显示器104上显示。
图3是根据本发明一个或多个实施例的采用本文中所公开技术的多个方面的“虚拟书”300的框图。虚拟书300可包括显示器302、后向高速缓存304和前向高速缓存306。尽管高速缓存304、306各自示为其中存储了两个页面,但在高速缓存304、306的任一个中都可存储任何数量的页面。
在一个或多个实施例中,对于虚拟书300的特定情形,虚拟书302采用以可控分辨率水平提供选定图像数据的能力。在虚拟书300中,每一图像可以是虚拟书300的显示器302内的一页。显示器302可对应于图1的显示器104,或者可以是适用虚拟书300的特定特征的专用显示器。虚拟书3000可对应于图1的客户机计算机102,或者可以是实际上限于传送、存储和显示书的页面的专用计算机。
在一个或多个实施例中,虚拟书300可以只包括以全分辨率存储和/或显示的一个页面,而在所显示的一系列页面的前后的其它页面可以是各种其它分辨率。
在一个或多个实施例中,当前在显示器104上显示的页面(即活动页面)以全分辨率显示,该活动页面在图3中为“页面10”。在这些实施例中,随着页面距活动页面的距离增大,其它页面可以逐步降低的分辨率显示。更具体地,存储每一页面的分辨率可等于显示在显示器306中的活动页面的分辨率除以一个量,该量等于2的各存储页面和活动页面之间的页数次幂。因而,应用该方法,页面11(在前向高速缓存306中)和页面9(在后向高速缓存304中)可各自占据由显示器302中的活动页面所占的数据存储空间量的一半。继续用该方法,页面12(在前向高速缓存306中)和页面8(在后向高速缓存304中)可各自占据由显示器302中的活动页面所占的数据存储空间量的一半。
尽管在以上讨论中分配给每一页面的数据存储空间量相对于其直接相邻的页面相差2的倍数,但本领域技术人员可以理解,大于或小于2的值可被用作除法因数。此外,与活动页面的数据存储空间除以一常数不同的算术公式可被用来确定数据存储空间对存储在高速缓存304和306中的连续页面的分配。
在一个或多个实施例中,可选择一新的活动页面来替代图3所示的页面10。该新选定的页面可以是,但不必是紧邻页面10的页面(页面9或页面11)。即,从相关的书(或具有离散页面的任何其它类型的印刷物)中1到最后一页的任一页面都可以是新的活动页面。
在一个或多个实施例中,在选择新的活动页面之后,较佳地进行当前的活动页面和新的活动页面之间的转换。这种到新的活动页面的转换可包括获取该新的活动页面的附加图像数据,以使得新的活动页面能以全分辨率存储和/或显示。如果新的活动页面是“页面11”,并且采用上述“因数2”的实施例,则分配给页面11的数据存储空间量将较佳地为两倍。继续“因数2”实施例的应用,作为从页面10到页面11的转换的一部分,分配给页面10的数据存储空间最好变成一半作为活动页面。不包括在转换后页面10中的页面10的活动版本的数据可被丢弃(可包括其重写)。但是可选择地,页面10的该“剩余”数据可被存储在另一个高速缓存中。如果在从页面10转换出来之后很快(即在合理数量的页面转换内)进行向页面10的转换,则页面10的剩余数据的这种高速缓存可提供效率。
在一个或多个实施例中,从页面10向页面11(或其它新的活动页面)的转换可包括从页面10的逐步淡出和页面11的逐步淡入,以向虚拟书300的用户提供视觉上的愉悦体验和/或物理页面转换回忆的体验。可任选地,可提供显示旧活动页面的折页和翻页的一系列图像以使得虚拟页面转换看起来更像物理翻页的回忆。
图4是根据本发明一个或多个实施例的图3虚拟书的三维版本的示图。图4的实施例示出除红色、绿色和蓝色分量以外可将部分透明度(毛边)的α通道存储为图像信息的一种方法。尽管有如上所述的色彩分量,但为了方便起见本文中仅提供图4的图像的黑白再现。
在一个或多个实施例中,可采用硬件加速的纹理映射来支持α通道。可连同虚拟书的两维或三维实施例一起实现的另一个特征是图像的动态变形,例如在该书翻页时弯曲页面,如图4所示。
管理一个或多个便携式设备中的图像数据
在本节中,描述基于逐行和隔行视觉集合传输来存储数字图像并与之交互的多种机制。在本发明的一个或多个实施例中,对本文中公开的方法的变体允许:在台式计算机、移动设备或其它设备上接近即时地查看存储在第二移动设备上的一个大图像集合;为了查看图像而使用远程存储来增大移动设备的本地存储器;以及从移动设备浏览大图像集合。本发明一个或多个实施例所允许的各种变换可依赖于通用的客户机/服务器成像和集合表示架构。
本发明的一个或多个实施例可提供一种方法,它可包括:在服务器上提供数字图像或其它视觉对象的一个集合;在一客户机与所述服务器之间建立通信;以及允许通过客户机对驻留在服务器上的可视对象的收集的有效多级导航。
在本公开中,术语“数字图像数据”可包括数字照片、数字图像、可视文档、或其它形式的可视内容。在本文中,术语“图像”通常与术语“数字图像”相对应,并且这些术语中的任一个都可对应于“数字照片”。在本文中,术语“客户机”通常对应于术语“客户机方”和术语“客户机设备”。在本文中,术语“便携式设备”、“便携式相机设备”和“相机设备”通常指数字图像捕捉设备和/或数字图像存储设备。在本文中,“数字图像捕捉设备”可包括但不限于数码相机、启用了相机的移动电话(可称为启用相机的手机)、个人数字助理、和/或能记录数字静止图像的数字录影机。“数字图像捕捉设备”可包括能够通过直接光学地接收和记录这些数据(诸如用标准数码相机)来接收图像数据的设备,并且还可包括能通过有线或无线因特网或其它网络连接来接收图像数据的设备。
本文所述方法的一个或多个实施例可使用一种多分辨率方法来解决存储、同步、浏览和组织数字图像数据的集合(可以是可视文档)的问题。可以某分辨率表示为彩色像素阵列的数字照片(例如1024×768像素=0.75百万像素,2592×1944像素=约5百万像素等)是最终用户可使用数码相机、启用相机的移动电话和数字录像机以及其它设备来创建的一种通用可视文档类型。
本文所述的一种或多种方法还可应用于除图像之外的可视数据对象,诸如申请人参考文献489/17NP(序列号为11/082,556的美国专利申请)的道路地图或其它向量数据、或申请人参考文献489/13(序列号为60/617,485的美国临时专利申请)的文本数据等。(这两个文档在本文开始时更详细地标识,并且两个文档都通过引用结合于此)。
现有***用户所面对的问题是相机设备能快速创建大量的可能较大的可视文档。然而,这些设备通常没有足够的存储器或视觉浏览工具根据来允许这些文档的令人满意的存档、查看或组织。
存储在相机或其它便携式设备中的数字照片或其它数字图像数据通常周期性地下载到桌面或笔记本计算机、从相机的存储器中清除以允许拍摄更多图片、并且在桌面或笔记本计算机上组织和/或查看。然后,可通过将数字照片的选择贴到一个或多个因特网网站来与朋友们共享数字图片。
管理便携式设备上的图像数据的传统方法
当使用常规方法来管理便携式设备上的图像数据时可遵循以下步骤。首先,可以是数码相机或其它数字图像数据捕捉设备的移动设备拍摄图片。然后,可能在图片的某些精选之后,图片可被下载到相机用户的PC(个人计算机)并从该相机设备中删除。相机设备的本地存储是有限的,并且在该常规方法中仅瞬时地保存图像,直到它们被安全地存储在PC上。
该PC可在其存储器(例如硬盘驱动器或其它非易失性存储)中永久地保留数字照片的任何子集。用户可随后将那些图像的某些进一步精选子集(通常以降低分辨率)上传到由web照片发布服务所拥有的web服务器。所上传的图像可使用PC或其它设备上的web浏览器由任何第三方、或具有有限访问权限的那些用户的部分子集公开浏览。
现有方法的限制可包括从相机设备到PC的冗长下载时间。通常还有对相机设备上持久存储的较差管理。相机设备通常具有较小的彩色显示器,在这些彩色显示器上查看者理论上可查看与人们通常在皮夹中所带的类型相同(诸如家人和宠物)的永久存储图像,以及与PDA(个人数字助理)上的呼叫者或其它联系人相关联的照片。然而,对现有相机设备中持久存储的限制使得以上任务难以实现。
此外,现有的相机设备施加了其它限制。在现有相机设备中,对存储在相机设备中的图像的导航通常是难用和困难的。在现有相机设备中,缺少在相机设备或PC上都会带给用户一致体验的对图像集合的统一可视界面。现有相机设备往往在下载变成必需之前对可存储其上的图片数量施加极有限制性的限制。因而,当采用现有方法时,在使得图像对第三方可用时通常涉及一系列冗长的步骤。
根据本发明的一个或多个实施例管理图像数据
图5是根据本发明一个或多个实施例的用于管理一个或多个便携式设备512、522与一个或多个其它计算机之间的图像数据通信的***500的框图。***500可包括客户机方510和服务器方520。然而,在可选实施例中,图5所示的设备分组的客户机和服务器状态可相反。
在一个或多个实施例中,***500可包括便携式设备1512、便携式设备2522、个人计算机102(基本上与图1的客户机计算机102相同)、服务器108(基本上与图1的服务器计算机108相同)和/或附加计算机524。较佳地,设备512、522和计算机102、108和524的每一个都具有包括其中的存储器和一个或多个显示器。可选择地或除此之外,图5的设备和计算机可与存储器和/或显示器通信。
图5示出了根据本发明的一个或多个实施例可使用的各条可能路径。一个或多个实施例可使用比图5所示的全部数据路径少的路径。图5所示的可用数据路径可具有共同的以下特征的一个或多个:1)各数据路径可涉及服务器方520(图像数据的发起者)和客户机方510(图像数据的接收者);2)双向数据路径(由两端有箭头的线示出)指示这些箭头指向的设备能以客户机或服务器能力服务;3)连接可采用硬接线网络(例如通用串行总线(USB)、火线或以太网)或无线网络(例如对于邻近设备为蓝牙,以及对于更远的连接为WiFi或无线广域联网协议);和/或4)所示连接可以是或可以不是自组织(ad-hoc)的。
在一个或多个实施例中,客户机方510和服务器方520可包括一个或多个数字计算和/或存储设备,包括但不限于:相机设备、个人计算机、以及个人数字助理。
在一个或多个实施例中,客户机设备(客户机)可具有一个或多个显示器。客户机可使用申请人参考文献489/15P(题为“用于与具有大量可能较大图像的动态远程相册有效交互的方法”(“Method for Efficiently Interacting with Dynamic,Remote Photo Albums with Large Numbers of Potentially Large Images”)的序列号为60/619,118的美国临时申请,该申请通过引用结合于此)中所述的一种或多种有效多分辨率浏览方法来浏览驻留在服务器上的文档集合。这些方法允许大图像或其它可视图像的大集合能有效地在低带宽连接上导航。这些图像集合的缩放、扫视和动态重新排列在参考文献中描述。
在一个或多个实施例中,该导航方法的特性之一是当信息从服务器发送到客户机时显示内容可逐步聚焦。该信息聚焦的速率可根据连接带宽与显示像素之比来管理。当用户缩放、扫视或重新排列客户机方510上的文档使得新文档变得可见时,该内容再次显现为模糊、然后聚焦。
虚拟显示器
在一个或多个实施例中,客户机的“显示器”对于最终用户而言并非必需是物理的或可见的。在一个或多个实施例中,该显示器可以是“虚拟显示器”,即具有指定分辨率的显示器的抽象模型。这种“虚拟显示器”可表示为客户机存储器中的像素值阵列,而不管那些像素值是否会提交给屏幕。虚拟显示器可包括至少部分地描述一个或多个图像的小波数据。该小波数据较佳地能够以可能分辨率范围来表示一图像。在一个或多个实施例中,小波数据可对应于使用JPEG2000所采用的小波数据。在一个或多个实施例中,虚拟显示器可包括完整地描述一个或多个图像的足够的小波数据。
例如,如果期望设备以指定分辨率获取集合中所有图像的缩略图,则该设备可创建适当大小的“虚拟显示器”,建立与服务器的连接,并请求查看整个集合。然后缩略图全集可被发送并呈现在该“虚拟显示器”上。如果在所有相关数据从服务器发送到客户机之前传输中断,则客户机的虚拟显示器尚未使所有缩略图图像处于理想聚焦状态。然而全部所请求的缩略图较佳地以足够的分辨率存储在客户机的虚拟显示器内,以允许在屏幕上呈现这些图像的可见版本。以所述方式呈现的图像具有通常比图像的传输已无中断地结束的情形低的视觉质量。因而,一些图形退化可在使用来自不完整的、中断的传输的数据所呈现的图像中存在。
然而,所述退化对于在网络上发送缩略图集的现有技术方法而言仍然是较佳的,在该方法中各缩略图的完整图像依次发送。在该现有技术的方法中,连接的太早中断会导致一些缩略图全部可用(即以全分辨率),并导致其它缩略图不完全可用。图6示出该区别。图6A示出采用现有方法的不完全图像数据下载的结果;而图6B示出根据本发明一个或多个实施例的不完全图像数据下载的结果。
图3A示出一现有技术情形,其中已接收到三个缩略图(示为方形)的所有数据,而根本没有接收到剩下的九个缩略图(示为X)。图3B示出采用本发明一个或多个实施例会发生的一种情形,其中已经以某分辨率水平接收到了所有的十二个缩略图(示为网状阴影线方形),该分辨率水平较佳地对于查看是可接受的,但可能低于在完成完整且未中断的传输之后所将获得的分辨率。
在一个或多个实施例中,客户机可具有高速缓存最近查看的可视内容的客户机方高速缓存。标准的MRU(最近使用)高速缓存可针对本发明一个或多个实施例的缓存需要而采用。然而,通过引用结合于此的题为“有效数据高速缓存”(Efficient Data Cache)的序列号为11/141,958的美国专利申请(委托人参考文献489/10NP)中所公开的高速缓存可有利地用来允许更为复杂的客户机方高速缓存。在任一情形中,给定量的客户机方存储器可专用于高速缓存。因而,返回至最近查看图像的导航可允许使用存储在高速缓存中的图像数据,而无需该图像数据再次从服务器发送。
客户机可具有多个显示器。给定显示器可以是物理的或虚拟的。给定显示器可直接通过用户输入驱动,或者它可通过诸如计算机102等客户机计算机内的软件来用程序推动。所有显示器的以像素为单位的总尺寸可以是固定的或受某些限制的约束,并且该限制可限定可视内容所需的客户机方存储器的最小量。该客户机方存储器较佳地与分配给高速缓冲存储器的存储空间分开。
涉及物理显示器和虚拟显示器的一个实施例如下所述。较佳地,客户机设备内的物理显示器对用户可见,并允许对数字地存储的图像集合的缩放和扫视导航以及重新排列。用户还可从该集合中选择一个或多个图像,并将它们发送给可用作存储用户选定图像的地方的“保存笔(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)。
在另一实施例中,显示器编号可以是线性组合中所包括的一个附加变量,从而允许显示器编号以某些方式与分辨率和到显示器中心的接近度权衡。在又一实施例中,显示器可共存于虚构的“共用空间”中,并且分辨率和与中心的接近度排序关键字可与前面一样使用。“共用空间”是建立多个显示器之间的虚构空间关系的概念空间,就像它们是单个更大显示器的区域一样。限定该虚构空间关系确定了区分多个显示器中多个小块的优先级所需的所有参数。
图7是根据本发明一个或多个实施例的可包括物理显示器(屏幕)702和两个虚拟显示器704、706的“共用空间”700的框图。物理显示器702较佳地以正常大小处于“共用空间”700的中心。虚拟显示器V1704和V2706较佳地在两侧,并且V2较佳地缩小,从而其像素较佳地是物理显示器的像素的线性大小的一半。这表示,假设小块的排序顺序是纯粹的字典顺序,则V1706中各分辨率水平的内容较佳地在物理显示器的相应分辨率之后从服务器发送到客户机(因为V1离开该空间的中心比物理显示器上的任一点都远)。V2706中的分辨率可在已经以两倍精细的分辨率发送了物理显示器702和V1704的所有小块之后发送。可以理解,“共用空间”700不必对应于任何真实的较大显示器或存储器地址空间。“共用空间”700仅仅是为了在概念上便于建立不同显示器上小块属性之间的关系。
显然许多权衡是可能的。这些权衡可具有与以上字典顺序示例一样的给予物理显示器702的精细化最高优先级的结果,同时使用使物理显示器聚焦所不需要的任何额外时间和带宽来继续精细化虚拟显示器704、706。权衡可替换地在物理显示器已大部分但尚未完全聚焦之后开始精细化虚拟显示器。在物理显示器702已大部分聚焦之后,物理和虚拟显示器704、706可共享带宽资源以协调地精细化。
如果集合中的图像是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上传到相机的图像显示上述绿色完成点。图5的各个双向箭头可使用“推”或“拉”(pull)配置来实现。具体地,可从客户机方510(“拉”)或从服务器方520(“推”)控制视口设置、布置和其它导航设置。与一个设备交互的用户可互换地与另一个设备连接,由此使“拉”和“推”能同时进行。
现在枚举图5所示的可能的客户机-服务器连接,并简要描述可如何使用它们和为什么它们是有用的。
可以是相机或启用相机的移动电话的移动设备512可向用户的PC(个人计算机)102提供内容。该连接通常可替代USB电缆或蓝牙自组织无线网络。优点如上所述。
PC102可将内容返回提供给移动设备512。这可对以下应用等有用。
“皮夹照片”可从PC发送到相机或移动电话,即使那些照片并不是由该移动设备拍摄的。
PC可以是无显示器的家用电器,并且移动设备因此可被用作到存档可视材料的主要视觉接口。本环境中的移动设备可以是数码相机、启用相机的手机、PDA、或具有显示器的移动书写板PC。
第一移动设备可直接连接到另一个移动设备(“客机”),或与之形成一个自组织网络。然后这两个移动设备可查看和共享彼此的照片。
PC可将图像上传(通过推)到远程服务器。该服务器可以是一照片共享服务,并且因此可实现在以上减小物理显示器上项的大小和约束分配给PC上的照片的存储器量的过程中预期的那类空间约束。远程服务器然后可将其集合提供给一个或多个附加PC。通常这会是一宽带连接。然而,也可采用其它连接类型。
远程服务器还可将集合提供给移动设备用户。通常这会是一个移动无线广域网。
移动设备可经由“推”(即,在移动设备的控制下)将其图像上传到远程服务器。在一个或多个实施例中,上传可以是自动化的,从而允许该移动设备通过免费地将内容传送给服务器并在传送完成后局域地删除它来透明地扩展其表观存储空间。
关于以上最后两项,注意移动设备512上的本地高速缓存可允许移动设备512仅使用本地存储来支持浏览极大的缩略图集合,即使该本地存储是有限的。如果相关信息仍然在该移动设备的本地高速缓存中,则放大最近查看的图像的细节也是可能的。
放大其细节仅在远程服务器上可用的图像可导致一模糊和无细节的图像。但是,如果移动设备在包括远程服务器108的网络上,则随着越来越多的详细图像数据被下载到移动设备512,模糊图像会逐步变得更加精细。如果移动设备不与可提供附加图像数据的网络相连,则不能向该图像提供比初始缩略图中可用的更多的细节。
低分辨率图像的综合画
本发明的一个或多个实施例可定义预计算步骤和交互式呈现算法,它们可用于各种配置以对各种应用实现以可控分辨率水平下载选定图像或图像区域。这些应用中的许多(诸如聚焦感兴趣的区域、虚拟书等)可涉及用户与图像“全域”的交互。
在一个或多个实施例中,预计算的起始点因此可以是引用各个图像的文件名、URL、或其它字符串的列表。当用户缩小到足够远以一次查看所有这些图像时,对于客户机或服务器而言一次遍历所有图像文件是不切实际的,因为有极大量的图像。例如,用单个图像在屏幕上占据2×2=4个像素的方式,能看见数万或数十万个图像。即使这些图像支持有效的低分辨率访问,但仅仅打开和关闭10万个文件就涉及大的开销,并且在交互式时标上完成也是不切实际的。因此可能需要使用这些图像的低分辨率版本的高速缓存的表示,在本文中称为“综合画(montage)”。
在一个或多个实施例中,综合画可以是以低分辨率呈现并有效地填塞到一个矩形区域的所有图像的镶嵌或拼贴,如图8所示。可嵌入综合画图像文件或单独存储的辅助元数据可用一特定图像文件来标识该综合画图像上的矩形区域。
在一实施例中,综合画图像本身可使用缩放和扫视界面来导航。当用户放大到足够大以穷尽该综合画内的一个或多个图像的综合画版本中可用的分辨率时,该图像的元数据可向客户机提交一个或多个单个图像文件,并且客户机可使用根据这些图像文件的成像来以更高分辨率呈现这些图像。
在一个或多个实施例中,以像素为单位的综合画的总体尺寸被选择成使得其分辨率仅当放大到只可同时看到本文中称为图像“集”的少量图像的状态时才穷尽。因此,较佳地在任何给定时刻都不需要以高分辨率访问该少量以上数量的图像。在随后的缩放和扫视期间,图像流可按需打开和关闭以限制在任何给定时刻打开的高分辨率图像的数量。
导航许多高分辨率图像的以上方法产生一个限制:综合画布局较佳地是为填塞效率和设计的,但用户可能想要屏幕上图像的另一种排列。此外,用户可能想要能够在屏幕上动态地重新排列图像的布局。
在一个或多个实施例中,为了允许这样的重新排列,可使用称为“纹理映射”的图形呈现技术,该技术可用通常在现代个人计算机上经硬件加速的软件来实现。纹理映射允许“纹理”或源图像的一部分在显示器上绘制,从而可任选地重新缩放该图像、旋转它、和/或执行三维立体变换。常常支持其它经硬件加速的变换,包括色彩校正或变更、全或部分透明度、调光、遮挡和坐标重映射。综合画的低分辨率版本可被用作“纹理”,从而当用户缩小时综合画内的各个图像都可以任一方法动态地重新映射,如图9所示。可使用一个以上的纹理映射,在该情形中每一纹理映射可以是包含图像的一个子集的综合画。可使排列之间的转换变为或不变为动画。注意,当用户放大时可进行重新排列,但是因为该重新排列可导致先前不在屏幕上的图像的新的放大视图,所以新图像在开始时候会非常模糊。
在另一实施例中,纹理映射技术仅可在图像动态排列期间使用。当图像排列为静态时,可使用软件合成来组装屏幕上全部或部分的更高清晰度的重新排列综合画。该软件合成方法结合在序列号为10/790,253的美国专利申请(申请人参考文献489/2NP)中描述的多分辨率呈现技术是特别有价值的,这些技术稍早在本公开中标识。该方法可通过重新排列原始综合画的成像来有效地创建新的“显示综合画”。
纹理映射还可用来显示高分辨率图像,但在该情形中并不使用包含多个图像综合画的纹理,而是使用包含各个图像的小块的纹理。该技术还在序列号为10/790,253(申请人参考文献489/2NP)的美国专利申请中描述。
在一个或多个实施例中,综合画重新排列可用来在不求助于纹理映射的情况下支持图像的重新组织。
在一个或多个其它实施例中,纹理映射、软件呈现、或两者的任意组合可用来三维地而非在一维平面上呈现成像。三维的动态重新排列也是可能的。三维应用可包括虚拟画廊或其它走查环境、以及虚拟书。虚拟书在本文中描述,并进一步在序列号为60/619,053的临时专利申请中描述。
图10是适用于本发明一个或多个实施例的计算***1000的框图。在一个或多个实施例中,中央处理单元(CPU)1002可耦合到总线1004。此外,总线1004可耦合到随机存取存储器(RAM)1006、只读存储器(ROM)1008、输入/输出(I/O)适配器1010、通信适配器1022、用户接口适配器1006、以及显示适配器1018。
在一个或多个实施例中,RAM1006和/或ROM1008可保存用户数据、***数据和/或程序。I/O适配器1010可将诸如硬盘驱动器1012、CD-ROM(未示出)等存储设备或其它大容量存储设备连接到计算***1000。通信适配器1022可将计算***1000耦合到局域网、广域网或因特网1024。用户接口适配器1016可将诸如键盘1026和/或定位设备1014等用户输入设备耦合到计算***1000。此外,显示适配器1018可由CPU1002驱动以控制显示设备1020上的显示。CPU1002可以是任一通用CPU。注意,本文档中迄今为止和/或下面所述的方法和装置可使用诸如标准数字电路、模拟电路等任一公知技术、可用来执行软件和/或固件程序的任一公知处理器、可编程数字设备或***、可编程阵列逻辑器件、或以上的任意组合来实现。本发明的一个或多个实施例还可用存储于适当存储介质中并通过处理单元执行的软件程序来实现。
尽管在本文中已参考特定实施例描述了本发明,但可以理解这些实施例仅仅说明本发明的原理和应用。因此,可以理解可对说明性实施例进行许多更改,并且可设计其它配置而不背离本发明的由所附权利要求限定的精神和范围。
附录
标题:用于在缩放用户界面中进行精确呈现的***和方法
发明人:BLAISE HILARY AGUERA Y ARCAS
发明领域
本发明一般涉及计算机的图形缩放用户界面。更具体而言,本发明是一种用于以既在计算上高效又精确的方式来渐进地呈现可缩放可视内容的***和方法,计算上的高效能得到良好的用户响应性和高帧速率,而精确的意义在于向量图形、文本和其它非照相内容最终在不进行通常导致图像质量降低的重采样的前提下绘出。
发明背景
大多数当前的图形计算机用户界面(GUI)是使用固定空间比例的可视组件来设计的。然而,从计算机图形领域的诞生可以认识到,可视组件可以用使得它们在显示器上不具有固定空间比例,而是可被放大和缩小的方式来表示和处理。对可缩放组件的期望在许多应用领域中都是明显的;此处仅举几个例子:查看地图、浏览诸如报纸等大型的不同种类文本布局、查看数码照片的相册、以及用大数据集的可视化来工作。即使在查看诸如电子表格和报表等普通文档时,能够粗看一下文档概述,然后在感兴趣的区域上放大通常也是有用的。许多现代的计算机应用程序包括可缩放组件,诸如Microsoft_Word_和其它Office_产品(View(视图)菜单下的Zoom(缩放))、Adobe_Photoshop_、Adobe_Acrobat_、QuarkXPress_等等。在大多数情况下,这些应用程序允许对文档进行放大和缩小,但是无需对应用程序本身的可视组件进行放大和缩小。此外,缩放一般是用户与软件的交互的一个***方面,且缩放设置仅偶尔被更改。尽管对文档的连续扫视是标准(即,使用滚动条或光标来将所查看的文档向左、右、上或下平移),但连续缩放的能力几乎总是不存在。在一种更一般化的缩放框架中,可缩放任何种类的可视内容,且缩放几乎与扫视一样是用户体验的一部分。遵循这些思路的概念使得甚至在早至1960年代1的1例如Stanley Kubrick在2001年的:ASpace Odyssey,Turner Entertainment公司,Time Warner公司的子公司(1968)。
电影中已经出现了未来派的计算机用户界面;而近期的电影延续了这一趋势2。从1970年代开始到现在3,已构思和/或开发了多种连续缩放界面。在1991年,这些概念中的某一些在纽约大学的Kenneth Perlin和Jacob Schwarts的美国专利5,341,466(“Fractal Computer User Centerface with Zooming Capability”)中定形。由Perlin和同事Pad开发的原型缩放用户界面Pad及其后继产品Pad++自那以来经历了一些开发4。然而,就发明人所知,部分地由于多种技术不足,在大量市场上尚未出现基于全ZUI(缩放用户界面)的主要应用程序,这些技术不足中的一个在本发明中得以解决。
发明概述
本发明具体化了新开发的缩放用户界面框架(下文按其运作名称称为Voss)作为基础的新概念。Voss由于其软件体系结构中有多种革新而比其前驱产品更强大、更具响应性、视觉上更引人注目且更通用。本专利特别地是关于Voss方法中针对对象小块化和非照相内容的呈现的革新之一。
多分辨率可视对象通常是以不同的分辨率或细节水平(“图像金字塔”)从一组离散的经采样图像来呈现的。在诸如3D游戏等使用了连续缩放的某些技术上下文中,将期望的细节水平夹在中间的两个相邻细节水平被混合在一起以呈现每一帧,因为情况通常并不是期望的细节水平正是由该离散组所表示的那些细节水平之一。这些技术有时被称为三线性过滤或MIP映射。所得的经内插的呈现通常对于照相内容是令人满意的,但对于按照几何图元来定义的内容,诸如文本、图形、绘图以及简而言之用户在游戏或多媒体应用程序之外与其交互的大多数可视内容而言却不令人满意。这是因为混合细节水平必然会引入模糊和混叠效应。对于这一问题的理想解决方案是完全以实时方式呈现每一帧的视图,而不依赖于预先存在的一组离散的分辨率。尽管在原则上这将允许对每一帧的完美呈现,但是它可能是不切实际的,因为通常需要太多的时间来以高质量从零开始呈现每一帧。因此,帧速率
—————————
2例如,Steven Spielberg的MinorityReport,20th Century Fox and Dreamworks Pictures(2002)。
3早先出现在W.C.Donelson的SpatialManagement ofInformation,SIGGRAPH的Computer Graphics会议论文集(1978),ACM出版社第203-9页中。近来的一个示例是2002年夏天推出的Zanvas.com。
4Perlin在http://mrl.nyu.edu/projects/zui/上描了后继开发。将会极大地降低,从而导致该方法对于交互式应用程序而言将变得毫无吸引力。
本发明涉及一种混合策略,其中通常在快速缩放和扫视期间使用具有多个离散细节水平的基于图像金字塔的方法,但是当视图足够稳定时,呈现“精确视图”并将其在若干帧上混和。由于人类视觉***在可视内容仍处于运动中时对于其细微的细节是不敏感的,因此该混合策略可以一小部分计算负荷来产生连续的“完美呈现”的错觉。
本发明的一个目的是允许在缩放用户界面中呈现文本、曲线图、图表、绘图、地图以及任何其它基于向量的内容(此处也称为向量内容),而不会相对于普通GUI中的最高可能质量呈现降低最终图像质量。
本发明的另一目的是允许在缩放用户界面中查看任意大或复杂的基于向量的内容。
本发明的又一目的是即使在任意复杂的基于向量的可视内容最终是使用非常大量的数据来表示的情况下,以及即使在这些数据被储存在远程位置并通过低带宽网络共享的情况下,仍允许接近即时地查看这些内容。
本发明的再一目的是允许用户对向量内容进行任意程度的放大,同时维持内容的明晰、不模糊的视图并维持交互式帧速率。
本发明的还有一个目的是允许用户在保持复杂向量内容的总体外观和维持交互式帧速率的过程中进行任意程度的缩小以获得该内容的概观。
本发明的此外一个目的是在交互期间最小化用户对细节水平或呈现质量之间的转变的感知。
本发明的另有一个目的是允许在由于呈现向量内容的某些部分所需的信息不可用或由于精确呈现仍在进行中而使它们的精确呈现尚无法进行时通过模糊来适度降低图像质量。
本发明的进一步的一个目的是在向量内容的某些部分的精确呈现首先变得可用时通过锐化来适度提高图像质量。
本发明的这些和其它目的将在本领域的技术人员仔细阅读了以下说明书之后变得显而易见。
现有技术:多分辨率成像和缩放用户界面
从技术观点来看,缩放用户界面是作为视觉计算的根本的普通概念的推广,从而允许克服经典用户/计算机/文档交互模型中固有的多种限制。一个这样的限制是对于可从计算机应用程序“打开”的文档的大小的限制,因为传统上整个这样的文档必须在查看或编辑能够开始之前被“加载”。即使对特定计算机可用的短期存储器(通常是ROM)的量较大,但是仍会感受到这一限制,因为所有文档信息在打开期间必须从某一存储库(例如,从硬盘或通过网络)传送到短期存储器;由此,有限带宽可使得发出“打开”命令以及能够开始查看或编辑之间的延迟变得不可接受地长。
静态数字图像既提供了这一问题的一个极佳示例,又是对计算机科学团体如何在克服该问题时已超越用于可视计算的标准模型的说明。以下表1示出了对于典型压缩大小的各种不同图像类型,从最小的有用图像(缩略图,有时用作图标)到当今常用的最大图像的在不同带宽下的下载时间。打阴影的框表示对其难以或不可能按特定的连接速度进行交互式浏览的图像大小。
表1
图像描述 | 典型大小(MB,经压缩*) | 下载时间 | ||
LAN(10Mbit) | DSL(500Kbit) | 无线/调制解调器**(40Kbit) | ||
缩略图图像 | 0.001 | <1毫秒 | 0.02秒 | 0.2秒 |
web分辨率快照 | 0.025 | 0.02秒 | 0.4秒 | 5秒 |
媒体分辨率图像 | 0.1 | 0.08秒 | 1.6秒 | 20秒 |
照片质量图像 | 0.5 | 0.4秒 | 8秒 | 1.7分钟 |
整页杂志图像 | 2.5 | 2秒 | 40秒 | 8.3分钟 |
精美艺术或地图扫描 | 10 | 8秒 | 2.7分钟 | 33.3分钟 |
华盛顿市的道路地图 | 40 | 32秒 | 10.7分钟 | 2.2小时 |
小航空综合画照片 | 100 | 1.3分钟??? | 26.7分钟 | 5.6小时 |
大航空综合画照片 | 1000 | 13.3分钟 | 4.4小时 | 23天 |
夜空,6”望远镜分辨率 | 10000 | 2.2小时 | 1.9天 | 23.1天 |
*注意,这些数字表示中等质量的实际经压缩大小而非原始图像数据。具体地,对高达40MB的大小假定1位/像素,而对更大的图像假定0.25位/像素,这一般更可压缩。
**本地无线网络可以快得多;该数字指的是常用于无线PDA的类型的无线广域网。
目前Web上的几乎每一图像都在100K(0.1MB)以下,因为大多数用户以DSL或更低的带宽连接到Web,且较大的图像会花费太长时间来下载。即使是在本地设置中,在典型的用户硬盘驱动器上,一般也不会遇到大于500K(0.5MB)的图像。更大(即,更详细)的图像通常有用是用以下事实来证明的:普通家庭中带插图的书本、地图册、地图、报纸和艺术作品包括大量图像,这些图像如果以全分辨率数字化则大小很容易达到几十兆字节。
若干年前,缺少大图像很大程度是由于存储库中存储空间的短缺,但是硬盘驱动器技术的进步、刻录CDROM的方便以及大型联网服务器的日益普及已使得存储库空间不再是限制性因素。现在的主要瓶颈是带宽,然后是短期存储器(即,RAM)空间。该问题实际上比上表所暗示的恶劣得多,因为在大多数情况下,用户不仅仅对查看单个图像感兴趣,而且对查看整个图像集合感兴趣;如果图像大于某一适度大小,则等待一个接一个地下载图像变得不切实际。
设计了诸如JPEG20005等现代图像压缩标准恰好来解决该问题。并非以线性方式(即,通常从上到下且从左到右在像素上经过一遍)储存图像内容,而是使图像基于多分辨率分解。图像首先被调整大小成一分辨率比例层次,这通常以2为因数来进行;例如,512×512像素的图像被调整大小成256×256像素、128×128、64×64、32×32、16×16、8×8、4×4、2×2以及1×1。很明显,精细的细节只能以更高分辨率来捕捉,而宽的笔划则使用少得多的信息以低分辨率来捕捉。这就是不同大小的图像通常被称为细节水平或简称LOD的原因。乍看可能会看到对于该系列不同大小图像的存储要求好像可能比对于单独的高分辨率图像的要求更高,但是实际上情况并非如此;低分辨率图像用作下一更高分辨率的“预测器”。这允许非常高效地对整个图像层次编码一实际上比单独使用高分辨率图像的非分层表示可行的更高效。
如果想像按照逐渐增大的大小的顺序在存储库中储存图像的多分辨率版本的序列,则自然的结果是当经由数据链路将图像传送到高速缓存时,用户可非常迅速地获得整个图像的低分辨率概观;当传送进展时越来越精细的细节然后将“填入”。这被称为“递增”或“渐进”传送。当被正确实现时,它具有根本上所有图像一无论有多大一都可几乎立即在空间上整体查看(尽管并不是以其全细节来查看),即使与存储库的连接的带宽十分普通。尽管以全细节下载图像所需的最终时间量保持相同,但是发送该信息的顺序已改变,使得图像的大比例特征被首先发送;这比以全细节且按“读取顺序”从上到下和从左到右地发送像素信息对用户更有帮助。
————————————
5http://www.jpeg.org/JPEG2000.html
这样提前隐藏是对“打开”不适合前一节中所描述的经典应用程序模型的图像而言的新概念。现在正在想像用户能够如同下载时那样查看图像,这是因在下载开始之后不久且可能在下载完成之前很久图像的宽笔划即可用的这一事实而有用的概念。因此,应用程序强迫用户等待下载完成已经毫无意义;应用程序应当改为立即显示文档中它能显示的部分,并且在它继续“在后台”下载细节时不导致延迟或不必要地中断其与用户的交互。这要求应用程序一次性地完成一项以上任务,这被称为多线程化。注意,大多数现代web浏览器在略微不同的容量中使用多线程化:以便在显示网页的文本布局并保持对用户响应的同时下载网页上的图像。在这一情况下,可以将嵌入的图像本身视为是额外的细节水平,这增强了由网页的基本要素文本布局所构成的基本细节水平。这一类推在以后将会证明是重要的。
很清楚,图像文档的分层图像表示和渐进传送是优于线性表示和传送的进步。然而,当图像在其最高细节水平具有比用户的显示器能一次性示出的更多信息(即,更多像素)时,进一步的进展是重要的。采用当前的显示技术,这始终是对于表1中最底下四种图像的情况,但是较小的显示器(诸如PDA屏幕)可能无法示出甚至最底下八种图像。这使得缩放特征对于大图像是强制性的:如果无法放大以发现额外的细节,则查看比显示器更大的图像是无用的。
当大图像开始下载时,假定用户正在完整地查看该图像。第一细节水平通常相当粗略,使得所显示的图像会取决于在大显示区域上扩展少量可用信息所使用的“内插”的种类显现为块状或模糊。然后图像会逐渐细化,但是在某一点处它会使显示对信息“饱和”,从而使得所下载的任何额外的细节都没有任何可视效果。因此在这一点之后继续下载完全没有任何意义。然而,假定用户决定放大以更详细地查看一特定区域,从而使得图像的有效投影大小实质上比物理屏幕更大。然后,在前一节描述的下载模型中,将需要以递增的顺序下载更高的细节水平。难点是每一细节水平都包含前一细节水平约4倍的信息;当用户放大时,下载过程将不可避免地滞后。更糟的是,下载的大多数信息都被浪费,因为它是由查看区域之外的高分辨率细节构成的。很清楚,所需要的是仅下载某一细节水平的所选部分的能力一即仅可视的细节应被下载。有了这一改变,可制造不仅能够查看任意大小的图像,而且还能以任何细节水平有效地导航(即,缩放和扫视)这些图像的图像浏览***。
先前的文档访问模型本质上是串行的,这意味着信息对象的整体是以线性顺序传送的。相反,本模型是随机访问的,这意味着仅请求信息对象的所选部分,并且这些请求可按任何顺序且在延长的时间段上,即在查看会话的过程中作出。计算机和存储库现在参与扩展的对话,从而使得用户的“对话”与在显示器上查看的文档并行化。
为产生随机访问效果,方便(尽管并不是绝对必需)的是将每一细节水平细分成网格,使得网格正方形,即小块(tiIe)成为基本传送单元。每一小块以像素为单位的大小可被保持为恒定大小或以下,使得每一递增的细节水平包含大约前一细节水平的4倍的小块。较小的小块会出现在图像的边缘处,因为其尺寸可能并非正好是额定小块大小的倍数;同样,在最低细节水平,整个图像将小于单个额定小块。所得的小块化图像金字塔在图2中示出。注意,金字塔的“尖端”,即比例缩小的图像小于单个小块之处,看似图1的未小块化金字塔。JPEG2000图像格式包括刚描述的用于表示小块化的、多分辨率和随机访问图像的所有特征。
迄今为止仅考虑了静态图像的情况,但是带有应用程序专用更改的相同技术可以应用于几乎任何类型的可视文档。这包括(但不限于)大文本、地图或其它向量图形、电子表格、视频、以及诸如网页等混合文档。本文的讨论迄今为止已经隐含地考虑了仅供查看的应用程序,即其中只需定义对应于打开和绘图的动作或方法。显然其它方法也可能是合乎需要的,诸如由用于静态图像的画图程序实现的编辑命令、由用于文本的文字处理程序实现的编辑命令等。然而考虑编辑文本的问题:诸如***类型化输入等普通的动作仅仅在与底层文档有关的一定范围的空间比例上相关。如果缩小程度太大以致于文本不再清晰,则交互式编辑也不再可行。也可能会争论,如果放大成单个字母填满了整个屏幕,交互式编辑也不再可行。因此,缩放用户界面也可能将某些方法的动作限于其相关的细节水平。
当可视文档没有被内部表示为图像,而是被表示为更抽象的数据一诸如文本、电子表格条目或向量图形时一有必要推广在前一节中引入的小块化概念。对于静止图像,一旦获得即呈现小块的过程是平凡的,因为信息(一旦经解压)恰好是小块的逐个像素内容。此外,速度瓶颈通常是压缩数据向计算机的传输(例如,下载)。然而,在某些情况下,速度瓶颈在于小块的呈现;用于进行呈现的信息可能已经在高速缓存中,或者可能非常紧凑,使得下载不再会导致延迟。因此,将响应于“小块绘图请求”的已完成的、完全绘出的小块的产生称为小块呈现,并且要理解这可能是较慢的过程。它是因为所需的数据非常大量且必须通过慢连接来下载而缓慢、还是因为呈现过程本身是计算密集型而缓慢是无关紧要的。
完整的缩放用户界面以使得用户能够查看其子文档通常在空间上不重叠的大型且可能动态的合成文档的方式组合了这些概念。这些子文档进而可包含(通常不重叠的)子-子文档,依此类推。因此,文档形成了树,这是其中每一文档具有指向子文档,即孩子的集合的指针的结构,而每一子文档都包含在父文档的空间边界内。将每一这样的子文档称为节点,这借用了用于树的编程术语。尽管对所有节点以所有细节水平定义了绘图方法,但是可以仅对某些节点定义对应于应用程序专用功能的其它方法,且其动作可仅限于某些细节水平。因此,某些节点可以是可使用类似画图的命令来编辑的静态图像,而其它节点可以是可编辑文本,另一些节点可以是为查看和点击所设计的网页。所有这些都可在一公共的大空间环境一“超节点”一中共存,该超节点可通过缩放和扫视来导航。
对于实现良好的缩放用户界面,有多个直接结果,包括:
一它能够浏览非常大的文档而无需从存储库中整体地下载它们;由此即使文档大于可用的短期存储器,或文档大小以其它方式受到限制,文档也可无限制地查看。
一内容仅在导航期间才按需下载,这导致对可用带宽的最优有效使用。
一缩放和扫视是空间上直观的操作,从而允许以容易理解的方式组织大量信息。
一由于“屏幕空间”本质上是不受限的,因此无需最小化窗口、使用多个桌面、或将窗口隐藏在彼此之后以一次在多个文档或视图上工作。相反。文档可按需地排列,且用户可缩小以查看所有文档的概观,或可在特定文档上放大。这不排除重新排列这些文档的位置(或甚至是比例)以允许其任何组合同时在屏幕上以有用的比例可见的可能性。也不必排除以更传统的方法来组合缩放。
一由于缩放是导航的一个内在方面,因此能以适当的空间比例来查看任何种类的内容。
一高分辨率显示器不再意味着将文本和图像收缩至小的(有时候是难以辨认的)大小;取决于缩放水平,它们要么允许一次性查看更多内容,要么允许以正常大小和更高的保真度来查看内容。
一弱视的人只需更进一步地放大就可像视力正常的人一样容易地导航相同的内容。
这些益处紧随着对于连接到Web的普通计算机可用的信息量的***之后变得特别有价值。十几年前,ZUI允许人们查看的非常大的文档的种类是非常少的,此外这些文档会占据非常多的空间,使得很少有文档适合对大多数计算机可用的存储库(例如,40MB硬盘)。然而,当今面临的是非常不同的局势:服务器可容易地储存大量文档和文档分层结构,并且使得该信息对连接到Web的任何客户机可用。然而这些潜在大量的存储库和普通用户之间的连接的带宽远低于到本地硬盘的连接的带宽。这恰好是ZUI对于常规的图形用户界面具有最大优势的情形。
发明详述
在下文中,使用两个变量名f和g来指小块相对于显示器的采样密度。该采样密度或“相对细节水平”是取决于缩放的,它由f=(以小块像素为单位的线性小块大小)/(以屏幕像素为单位测量的屏幕上投影的小块长度)给出。如果f=1,则小块像素与屏幕像素为1∶1;如果f=10,则小块中的信息比显示器能够示出的要详细得多(10*10=100个小块像素拟合在单个屏幕像素内部);且如果f=0.1,则小块相对于显示器是粗略的(每一小块像素必须被“拉伸”或内插以覆盖10*10=100个显示器像素)。将写作变量g的小块化粒度定义为高LOD的线性小块化网格大小与下一较低LOD的线性小块化网格大小之比。在前一节中考虑的JPEG2000示例中,g=2:从概念上而言,每一小块在下一更高LOD上“***”成2×2=4个小块。粒度2到目前为止是类似应用程序中最常见的,但是在本文中,g可以取其它值。
注意,迄今为止所描述的细节水平方案涉及按粒度g为因数分割的不同比例下的一组固定的、离散的LOD。在显示器的任何区域上绘出的图像因而通常是两个细节水平之间的加权混和,其中一个细节水平比显示器分辨率略微精细(f>1),而另一细节水平略微粗略(f<1) (尽管更一般而言,如果图像区域是短暂的单个未采样LOD,或者是两个以上LOD之间的混和,则本发明也适用)。这一未经修改的方案对于由诸如数码照片或视频等采样图像定义的内容产生了视觉上引人注目的结果。然而,用户与之交互的大多数内容相反通常是向量地定义的;这包括文本以及线、矩形、圆以及其它向量图元的组合。对于向量图形元素特殊的是它们涉及数学上精确的边缘;因此对单个显示器像素的值的控制一般必须产生准确的结果。这对于诸如黑白像素的棋盘等数字填充图案也是如此。这种可视内容并不能通过迄今为止所描述的混和方法来很好地再现。所得的视觉伪像的示例在图3中示出。这些伪像包括模糊、比例变化的模糊度中的不期望的变化、以及在缩放期间移动的Moiré图案。所示的图像都具有小的像素尺寸,且被放大以清楚地示出在该像素水平发生了什么。图3(a)是纯黑白(没有混叠)地呈现的文本的一个示例;(b)是以混叠呈现的同一文本;(c)是间隔密集的线的图案;(d)是交替的黑白像素的棋盘填充图案。底行图像示出对于顶行中的精确图像的LOD混和效应。很清楚,(a)中混和文本的边缘模糊要次于(b)中顶部图像的像素级混叠的结果。另一方面,如果文本开始被适当混叠,则LOD混和将会使其进一步模糊,再次导致次最优图像。因此,(a)和(b)不产生糟糕的结果,但是很清楚在每一情况下精确的版本总是较好的。另两个图像产生更严重的错误,包括乱真的Moiré图案、闪光、斑点和模糊。
本发明定义了一种用于带有这种内容的节点的程序性小块绘图方法,从而允许它们呈现精确地,即正好以f=1映射到显示器像素的空间精确小块。在缩放或扫视期间的每一次帧刷新时简单地调用该方法一般都极慢;该精确绘图方法可容易地取若干帧来执行,且在某些情况下仍然慢得多。这并不是对于精确绘图方法是特定的;“普通的”绘图方法也可能较慢,尤其是当它可能涉及以低带宽下载信息或者执行扩展计算的时候。然而,“普通”绘图方法的目标是在扫视和缩放的整个范围上保持相关的小块,从而使得可实现即使在呈现较慢且异步的情况下也允许平滑导航和适度图像质量降低的排队和分辨率回落方案。相反,精确小块的质量是完美的,但是对于特定视图是专用的。因此采用了一种混合方法,其中充分利用离散LOD表示的优点来允许即使在不令人满意的情况下(即,低带宽,或更一般地,缓慢小块绘图方法)也进行响应性导航,同时为视觉准确度而使用精确绘图方法。这是通过当用户停顿时请求使用精确绘图方法的精确小块实现的;这些请求排队在所有相关的固定细节水平之后。由此,精确小块是显示细化的最终阶段。在精确小块在用户扫视或缩放时变得不可使用的意义上,它们是“抛弃物”,因为用户不可能精确地扫视或缩放回到旧视图。注意,不仅仅是缩放,扫视也会使精确小块无效,因为对于小块而言要使其精确,不仅有必要使比例f恰好为1;而且小块像素还必须与显示器像素精确地对齐。精确对齐因此会在扫视期间丢失,除非扫视是按照整数个显示器像素来进行的。因此,扫视和缩放丢弃任何高速缓存的精确小块;仅当视图达到停顿时才将对于新的精确小块的请求排队。当精确小块变得可用时,它们在底层的“非精确”小块“之上”(即,使其模糊)被混和到显示中。混和随时间推移而发生,从而避免了锐度的突然变化。
本发明的总体效果是当在大量文本或其它向量图形上扫视或缩放时导航性能保持不变;在这一导航期间,所呈现的图像较不理想,但是由于图像正在运动中,因此在大多数情况下劣化并不是注意得到的。当达到停顿时,请求精确小块并在它们到达时从接近显示器的中心开始并向外扩展将它们凹入地(foveally)混和,从而导致图像的锐化。空间和时间混和一般会使得这一锐化的进展难以用肉眼来检测,但是所得的图像质量是完美的,即不受允许基于离散细节水平之间的连续内插的ZUI体系结构操作的混和和模糊操作的影响。
标题:用于在缩放用户界面中进行凹入的、无缝的渐进呈现的***和方法
发明人:BLAISE HILARY AGUERA Y ARCAS
发明领域
本发明一般涉及用于计算机的缩放用户界面(ZUI)。更具体而言,本发明是一种用于在缩放环境中渐进地呈现任意大或复杂的可视内容,同时维持良好的用户响应性和高帧速率的***和方法。尽管在某些情况下必须临时降低呈现质量以满足这些目标,但是本发明很大程度上通过充分利用人类视觉***的公知特性来掩盖这一降低。
发明背景
大多数当前的图形计算机用户界面(GUI)是使用固定空间比例的可视组件来设计的。然而,从计算机图形领域的诞生可以认识到,可视组件可以用使得它们在显示器上不具有固定空间比例,而是可被放大和缩小的方式来表示和处理。对可缩放组件的期望在许多应用领域中都是明显的;此处仅举几个例子:查看地图、浏览诸如报纸等大型的不同种类文本布局、查看数码照片的相册、以及用大数据集的可视化来工作。即使在查看诸如电子表格和报表等普通文档时,能够粗看一下文档概述,然后在感兴趣的区域上放大通常也是有用的。许多现代的计算机应用程序包括可缩放组件,诸如Microsoft_Word_和其它Office_产品(View(视图)菜单下的Zoom(缩放))、Adobe_Photoshop_、Adobe_Acrobat_、QuarkXPress_等等。在大多数情况下,这些应用程序允许对文档进行放大和缩小,但是无需对应用程序本身的可视组件进行放大和缩小。此外,缩放一般是用户与软件的交互的一个***方面,且缩放设置仅偶尔被更改。尽管对文档的连续扫视是标准(即,使用滚动条或光标来将所查看的文档向左、右、上或下平移),但连续缩放的能力几乎总是不存在。在一种更一般化的缩放框架中,可缩放任何种类的可视内容,且缩放几乎与扫视一样是用户体验的一部分。遵循这些思路的概念使得甚至在早至1960年代1的
————————
1例如,Stanley Kubrick在2001年的:A Space Odyssey,Turner Entertainment公司,Time Warner公司的子公司(1968)。
电影中已经出现了未来派的计算机用户界面;而近来的电影延续了这一趋势2。从1970年代开始到现在3,构思和/或开发了多种连续缩放界面。在1991年,这些概念中的某一些在纽约大学的Kenneth Perlin和Jacob Schwarts的美国专利5,341,466(“Fractal Computer User Centerface with Zooming Capability”)中定形。由Perlin和同事Pad开发的原型缩放用户界面Pad及其后继产品Pad++自那以来经历了一些开发4。然而,就发明人所知,部分地由于多种技术不足,在大量市场上尚未出现基于全ZUI(缩放用户界面)的主要应用程序,这些技术不足中的一个在本发明中得以解决。
发明概述
本发明具体化了新开发的缩放用户界面框架(下文按其运作名称称为Voss)作为基础的新概念。Voss由于其软件体系结构中有多种革新而比其前驱产品更强大、更具响应性、视觉上更引人注目且更通用。本专利特别地是关于针对对象小块化、细节水平混和和呈现排队的Voss方法。
多分辨率可视对象通常是以不同的分辨率或细节水平(图像金字塔)从一组离散的经采样图像来呈现的。在诸如3D游戏等使用了连续缩放的某些技术上下文中,将期望的细节水平夹在中间的两个相邻细节水平被混合在一起以呈现每一帧,因为情况通常并不是期望的细节水平正是由该离散组所表示的那些细节水平之一。这些技术有时被称为三线性过滤或MIP映射。在大多数情况下,经MIP映射的图像金字塔是预先形成的,并在缩放操作期间被连续地保持在短期存储器(即,RAM)中;由此,任何所需的细节水平总是可用的。在某些高级3D呈现情形中,图像金字塔本身必须在动画循环中呈现;然而,在这些情况下,必须仔细地控制该第一遍呈现的复杂度,使得总体帧速率不会受损害。
在本文中,理想的是能够通过在不限量的任意视觉复杂度的内容上缩放和扫视来连续地导航。该内容可能不会快速呈现,且此外它可能不是立即可用的,而是
———————
2例如,Steven Spielberg的MinorityReport,20thCentury Fox and Dreamworks Pictures(2002)。
3早先出现在W.C.Donelson的SpatialManagement ofInformation,SIGGRAPH的Computer Graphics会议论文集(1978),ACM出版社第203-9页中。近来的一个示例是2002年夏天推出的Zanvas.com。
4Perlin在http://mrI.nyu.edu/projects/zui/上描述了后继开发。需要通过低带宽连接从远程位置下载。由此,以与期望的显示帧速率(第二遍)可比的帧速率呈现细节水平(第一遍)并非总是可行的。此外,一般对所有内容将预先形成的图像金字塔保持在存储器中也是不可行的;图像金字塔必须按需呈现或重新呈现,并且该呈现与期望帧速率相比可能是较慢的。
本发明涉及用于区分与当前显示有关的图像金字塔的各部分的(可能较慢的)呈现的优先级的策略,以及用于基于部分信息,即仅图像金字塔的当前可用子集来向用户给出所呈现内容的平滑的、连续的感觉的策略。这些策略组合起来接近最优地利用了可用的计算能力或带宽,同时对因不完整图像金字塔而引起的任何图像劣化作可能最大程度的掩盖。充分利用了空间和时间混和来避免图像锐度的不连续或突然变化。
本发明的一个目的是允许在缩放用户界面中呈现经采样的(即,“像素化的”)可视内容,而不会相对于常规的三线性内插降低最终图像质量。
本发明的另一目的是允许在缩放用户界面中查看任意大或复杂的可视内容。
本发明的又一目的是即使在任意复杂的可视内容最终是使用非常大量的数据来表示的情况下,以及即使这些数据储存在远程位置且通过低带宽网络来共享的情况下,允许接近即时地查看该内容。
本发明的再一目的是允许用户对可视内容进行任意程度的放大的同时维持交互式帧速率。
本发明的还有一个目的是允许用户在保存内容的总体外观且维持交互式帧速率的过程中进行任意程度的缩小以获得复杂可视内容的概观。
本发明的另有一个目的是最小化交互期间用户对于细节水平或呈现质量之间的转变的感知。
本发明的再有一个目的是允许在详细可视内容由于呈现它所需的信息不可用或由于呈现仍在进行中而尚不可用时通过连续地模糊来适度降低图像质量。
本发明的一个进一步目的是在可视内容的某些部分的呈现首先变得可用时通过适度锐化来适度提高图像质量。
本发明的这些和其它目的在本领域的技术人员阅读了以下说明书之后将变得显而易见。
现有技术:多分辨率成像和缩放用户界面
从技术观点来看,缩放用户界面是作为视觉计算的根本的普通概念的推广,从而允许克服经典用户/计算机/文档交互模型中固有的多种限制。一个这样的限制是对于可从计算机应用程序“打开”的文档的大小的限制,因为传统上整个这样的文档必须在查看或编辑能够开始之前被“加载”。即使对特定计算机可用的短期存储器(通常是ROM)的量较大,但是仍会感受到这一限制,因为所有文档信息在打开期间必须从某一存储库(例如,从硬盘或通过网络)传送到短期存储器;由此,有限带宽可使得发出“打开”命令以及能够开始查看或编辑之间的延迟变得不可接受地长。
静态数字图像既提供了这一问题的一个极佳示例,又是对计算机科学团体如何在克服该问题时已超越用于可视计算的标准模型的说明。以下表1示出了对于典型压缩大小的各种不同图像类型,从最小的有用图像(缩略图,有时用作图标)到当今常用的最大图像的在不同带宽下的下载时间。打阴影的框表示对其难以或不可能按特定的连接速度进行交互式浏览的图像大小。
表1
图像描述 | 典型大小(MB,经压缩*) | 下载时间 | ||
LAN(10Mbit) | DSL(500Kbit) | 无线/调制解调器**(40Kbit) | ||
缩略图图像 | 0.001 | <1毫秒 | 0.02秒 | 0.2秒 |
web分辨率快照 | 0.025 | 0.02秒 | 0.4秒 | 5秒 |
媒体分辨率图像 | 0.1 | 0.08秒 | 1.6秒 | 20秒 |
照片质量图像 | 0.5 | 0.4秒 | 8秒 | 1.7分钟 |
整页杂志图像 | 2.5 | 2秒 | 40秒 | 8.3分钟 |
精美艺术或地图扫描 | 10 | 8秒 | 2.7分钟 | 33.3分钟 |
华盛顿市的道路地图 | 40 | 32秒 | 10.7分钟 | 2.2小时 |
小航空综合画照片 | 100 | 1.3分钟 | 26.7分钟 | 5.6小时 |
大航空综合画照片 | 1000 | 13.3 分钟 | 4.4小时 | 23天 |
夜空,6"望远镜分辨率 | 10000 | 2.2小时 | 1.9天 | 23.1天 |
*注意,这些数字表示中等质量的实际经压缩大小而非原始图像数据。具体地,对高达40MB的大小假定1位/像素,而对更大的图像假定0.25位/像素,这一般更可压缩。
**本地无线网络可以快得多;该数字指的是常用于无线PDA的类型的无线广域网。
目前Web上的几乎每一图像都在100K(0.1MB)以下,因为大多数用户以DSL或更低的带宽连接到Web,且较大的图像会花费太长时间来下载。即使是在本地设置中,在典型的用户硬盘驱动器上,一般也不会遇到大于500K(0.5MB)的图像。更大(即,更详细)的图像通常有用是用以下事实来证明的:普通家庭中带插图的书本、地图册、地图、报纸和艺术作品包括大量图像,这些图像如果以全分辨率数字化则大小很容易达到几十兆字节。
若干年前,缺少大图像很大程度是由于存储库中存储空间的短缺,但是硬盘驱动器技术的进步、刻录CDROM的方便以及大型联网服务器的日益普及已使得存储库空间不再是限制性因素。现在的主要瓶颈是带宽,然后是短期存储器(即,RAM)空间。该问题实际上比上表所暗示的恶劣得多,因为在大多数情况下,用户不仅仅对查看单个图像感兴趣,而且对查看整个图像集合感兴趣;如果图像大于某一适度大小,则等待一个接一个地下载图像变得不切实际。
设计了诸如JPEG20005等现代图像压缩标准恰好来解决该问题。并非以线性方式(即,通常从上到下且从左到右在像素上经过一遍)储存图像内容,而是使图像基于多分辨率分解。图像首先被调整大小成一分辨率比例层次,这通常以2为因数来进行;例如,512×512像素的图像被调整大小成256×256像素、128×128、64×64、32×32、16×16、8×8、4×4、2×2以及1×1。很明显,精细的细节只能以更高分辨率来捕捉,而宽的笔划则使用少得多的信息以低分辨率来捕捉。这就是不同大小的图像通常被称为细节水平或简称LOD的原因。乍看可能会看到对于该系列不同大小图像的存储要求好像可能比对于单独的高分辨率图像的要求更高,但是实际上情况并非如此;低分辨率图像用作下一更高分辨率的“预测器”。这允许非常高效地对整个图像层次编码一实际上比单独使用高分辨率图像的非分层表示可行的更高效。
如果想像按照逐渐增大的大小的顺序在存储库中储存图像的多分辨率版本的序列,则自然的结果是当经由数据链路将图像传送到高速缓存时,用户可非常迅速地获得整个图像的低分辨率概观;当传送进展时越来越精细的细节然后将“填入”。这被称为“递增”或“渐进”传送。当被正确实现时,它具有根本上所有图像一无论有多大一都可几乎立即在空间上整体查看(尽管并不是以其全细节来查看),即使与存储库的连接的带宽十分普通。尽管以全细节下载图像所需的最终时间量保持相同,但是发送该信息的顺序已改变,使得图像的大比例特征被首先发送;这比以
——————————
5 http://www.jpeg.org/JPEG2000.html
全细节且按“读取顺序”从上到下和从左到右地发送像素信息对用户更有帮助。
这样提前隐藏是对“打开”不适合前一节中所描述的经典应用程序模型的图像而言的新概念。现在正在想像用户能够如同下载时那样查看图像,这是因在下载开始之后不久且可能在下载完成之前很久图像的宽笔划即可用的这一事实而有用的概念。因此,应用程序强迫用户等待下载完成已经毫无意义;应用程序应当改为立即显示文档中它能显示的部分,并且在它继续“在后台”下载细节时不导致延迟或不必要地中断其与用户的交互。这要求应用程序一次性地完成一项以上任务,这被称为多线程化。注意,大多数现代web浏览器在略微不同的容量中使用多线程化:以便在显示网页的文本布局并保持对用户响应的同时下载网页上的图像。在这一情况下,可以将嵌入的图像本身视为是额外的细节水平,这增强了由网页的基本要素文本布局所构成的基本细节水平。这一类推在以后将会证明是重要的。
很清楚,图像文档的分层图像表示和渐进传送是优于线性表示和传送的进步。然而,当图像在其最高细节水平具有比用户的显示器能一次性示出的更多信息(即,更多像素)时,进一步的进展是重要的。采用当前的显示技术,这始终是对于表1中最底下四种图像的情况,但是较小的显示器(诸如PDA屏幕)可能无法示出甚至最底下八种图像。这使得缩放特征对于大图像是强制性的:如果无法放大以发现额外的细节,则查看比显示器更大的图像是无用的。
当大图像开始下载时,假定用户正在完整地查看该图像。第一细节水平通常相当粗略,使得所显示的图像会取决于在大显示区域上扩展少量可用信息所使用的“内插”的种类显现为块状或模糊。然后图像会逐渐细化,但是在某一点处它会使显示对信息“饱和”,从而使得所下载的任何额外的细节都没有任何可视效果。因此在这一点之后继续下载完全没有任何意义。然而,假定用户决定放大以更详细地查看一特定区域,从而使得图像的有效投影大小实质上比物理屏幕更大。然后,在前一节描述的下载模型中,将需要以递增的顺序下载更高的细节水平。难点是每一细节水平都包含前一细节水平约4倍的信息;当用户放大时,下载过程将不可避免地滞后。更糟的是,下载的大多数信息都被浪费,因为它是由查看区域之外的高分辨率细节构成的。很清楚,所需要的是仅下载某一细节水平的所选部分的能力一即仅可视的细节应被下载。有了这一改变,可制造不仅能够查看任意大小的图像,而且还能以任何细节水平有效地导航(即,缩放和扫视)这些图像的图像浏览***。
先前的文档访问模型本质上是串行的,这意味着信息对象的整体是以线性顺序传送的。相反,本模型是随机访问的,这意味着仅请求信息对象的所选部分,并且这些请求可按任何顺序且在延长的时间段上,即在查看会话的过程中作出。计算机和存储库现在参与扩展的对话,从而使得用户的“对话”与在显示器上查看的文档并行化。
为产生随机访问效果,方便(尽管并不是绝对必需)的是将每一细节水平细分成网格,使得网格正方形,即小块(tile)成为基本传送单元。每一小块以像素为单位的大小可被保持为恒定大小或以下,使得每一递增的细节水平包含大约前一细节水平的4倍的小块。较小的小块会出现在图像的边缘处,因为其尺寸可能并非正好是额定小块大小的倍数;同样,在最低细节水平,整个图像将小于单个额定小块。所得的小块化图像金字塔在图2中示出。注意,金字塔的“尖端”,即比例缩小的图像小于单个小块之处,看似图1的未小块化金字塔。JPEG2000图像格式包括刚描述的用于表示小块化的、多分辨率和随机访问图像的所有特征。
迄今为止仅考虑了静态图像的情况,但是带有应用程序专用更改的相同技术可以应用于几乎任何类型的可视文档。这包括(但不限于)大文本、地图或其它向量图形、电子表格、视频、以及诸如网页等混合文档。本文的讨论迄今为止已经隐含地考虑了仅供查看的应用程序,即其中只需定义对应于打开和绘图的动作或方法。显然其它方法也可能是合乎需要的,诸如由用于静态图像的画图程序实现的编辑命令、由用于文本的文字处理程序实现的编辑命令等。然而考虑编辑文本的问题:诸如***类型化输入等普通的动作仅仅在与底层文档有关的一定范围的空间比例上相关。如果缩小程度太大以致于文本不再清晰,则交互式编辑也不再可行。也可能会争论,如果放大成单个字母填满了整个屏幕,交互式编辑也不再可行。因此,缩放用户界面也可能将某些方法的动作限于其相关的细节水平。
当可视文档没有被内部表示为图像,而是被表示为更抽象的数据一诸如文本、电子表格条目或向量图形时一有必要推广在前一节中引入的小块化概念。对于静止图像,一旦获得即呈现小块的过程是平凡的,因为信息(一旦经解压)恰好是小块的逐个像素内容。此外,速度瓶颈通常是压缩数据向计算机的传输(例如,下载)。然而,在某些情况下,速度瓶颈在于小块的呈现;用于进行呈现的信息可能已经在高速缓存中,或者可能非常紧凑,使得下载不再会导致延迟。因此,将响应于“小块绘图请求”的已完成的、完全绘出的小块的产生称为小块呈现,并且要理解这可能是较慢的过程。它是因为所需的数据非常大量且必须通过慢连接来下载而缓慢、还是因为呈现过程本身是计算密集型而缓慢是无关紧要的。
完整的缩放用户界面以使得用户能够查看其子文档通常在空间上不重叠的大型且可能动态的合成文档的方式组合了这些概念。这些子文档进而可包含(通常不重叠的)子-子文档,依此类推。因此,文档形成了树,这是其中每一文档具有指向子文档,即孩子的集合的指针的结构,而每一子文档都包含在父文档的空间边界内。将每一这样的子文档称为节点,这借用了用于树的编程术语。尽管对所有节点以所有细节水平定义了绘图方法,但是可以仅对某些节点定义对应于应用程序专用功能的其它方法,且其动作可仅限于某些细节水平。因此,某些节点可以是可使用类似画图的命令来编辑的静态图像,而其它节点可以是可编辑文本,另一些节点可以是为查看和点击所设计的网页。所有这些都可在一公共的大空间环境一“超节点”一中共存,该超节点可通过缩放和扫视来导航。
对于实现良好的缩放用户界面,有多个直接结果,包括:
一它能够浏览非常大的文档而无需从存储库中整体地下载它们;由此即使文档大于可用的短期存储器,或文档大小以其它方式受到限制,文档也可无限制地查看。
一内容仅在导航期间才按需下载,这导致对可用带宽的最优有效使用。
一缩放和扫视是空间上直观的操作,从而允许以容易理解的方式组织大量信息。
一由于“屏幕空间”本质上是不受限的,因此无需最小化窗口、使用多个桌面、或将窗口隐藏在彼此之后以一次在多个文档或视图上工作。相反。文档可按需地排列,且用户可缩小以查看所有文档的概观,或可在特定文档上放大。这不排除重新排列这些文档的位置(或甚至是比例)以允许其任何组合同时在屏幕上以有用的比例可见的可能性。也不必排除以更传统的方法来组合缩放。
一由于缩放是导航的一个内在方面,因此能以适当的空间比例来查看任何种类的内容。
一高分辨率显示器不再意味着将文本和图像收缩至小的(有时候是难以辨认的)大小;取决于缩放水平,它们要么允许一次性查看更多内容,要么允许以正常大小和更高的保真度来查看内容。
一弱视的人只需更进一步地放大就可像视力正常的人一样容易地导航相同的内容。
这些益处紧随着对于连接到Web的普通计算机可用的信息量的***之后变得特别有价值。十几年前,ZUI允许人们查看的非常大的文档的种类是非常少的,此外这些文档会占据非常多的空间,使得很少有文档适合对大多数计算机可用的存储库(例如,40MB硬盘)。然而,当今面临的是非常不同的局势:服务器可容易地储存大量文档和文档分层结构,并且使得该信息对连接到Web的任何客户机可用。然而这些潜在大量的存储库和普通用户之间的连接的带宽远低于到本地硬盘的连接的带宽。这恰好是ZUI对于常规的图形用户界面具有最大优势的情形。
发明详述
对于节点在某一期望分辨率下的特定视图,存在某一组特定LOD的小块,该组小块需要被绘出以使呈现对每一屏幕像素包括至少一个样本。注意,视图正常地不会精确地落在节点的LOD之一的分辨率上,而是在两个LOD之间的中间分辨率上。因此,理想的是在缩放环境中,客户机生成这些LOD上—恰好在实际分辨率之下和恰好在实际分辨率之上一的可视小块组,并使用某种内插来基于该信息在显示器上呈现像素。最常见的情形是空间上和细节水平之间的线性内插;在图形学文献中,这通常被称为三线性内插。通常在3D图形体系结构中使用密切相关的技术来用于纹理化6。
不幸的是,下载(或用程序呈现)小块通常是很慢的,尤其是在快速导航期间,并非所有必需的小块在所有时刻都可用。本专利中的革新因而集中于用于在小块下载或创建慢速且异步地进行的环境中向查看者呈现逼近理想图像的空间和时间连续且相干的图像的策略的组合。
在下文中,使用两个变量名f和g来指小块相对于显示器的采样密度,这在#1中定义。将写作变量g的小块粒度被定义为某一LOD的线性小块化网格大小与下一更低LOD的线性小块化网格大小之比。这一般被假定为对于给定节点在不同细节水平上恒定,尽管此处所提出的革新中没有一个是依赖于该常量g的。在前一节中考虑的JPEG2000示例中,g=2;概念上,每一小块在下一更高LOD上“***”成2×2=4个小块。粒度2目前为止是类似应用程序中最常见的,但是在本文中,g可以取其它值。
1.细节水平小块请求排队。首先介绍一种用于将允许客户机根据光学仪器类
—————————————
6S.L.Tanimoto和T.Pavlidis,Ahierarchical data structure for ptcture processtng, Computer Graphics andImage Processing第4卷,第104-119页(1975);Lance Williams,Pyramidal Parametrics,ACM SIGGRAPH会议论文集(1982)。
推来使合成图像逐渐“聚焦”的小块请求排队的***和方法。
面对到包含分层小块化节点的信息存储库的错误的、可能低带宽的连接的问题,缩放用户界面必须解决如何在导航期间请求小块的问题。在许多情形中,假定所有这些请求都以及时的方式来满足,或甚至它们将在信息相关的时间段期间(即,在用户在别处进行缩放或扫视之前)将全部得到满足是不切实际的。因此,理想的是智能地区分小块请求的优先级。
小块请求排队的“最外层”规则是相对于显示器递增的细节水平。该“相对细节水平”是取决于缩放的,它由数字f=(以小块像素为单位的线性小块大小)/(以屏幕像素为单位测量的屏幕上投影的小块长度)给出。如果f=1,则小块像素与屏幕像素为1∶1;如果f=10,则小块中的信息要比显示器能够示出的详细得多(10*10=100个小块像素拟合在单个屏幕像素内);而如果f=0.1,则小块相对于显示器较粗略(每一小块像素必须被“拉伸”或内插以覆盖10*10=100个显示器像素)。该规则确保:如果显示器的一个区域相对于显示器的剩余部分是采样不足的(即,仅被粗略地定义),则客户机的第一优先级将是填满该“分辨率洞”。如果洞中缺少一个以上细节水平,则对f<1的所有细节水平的请求加上对下一较高细节水平(以允许LOD混和一参见#5)的请求以递增的顺序排队。乍看之下,可能会假定这引入了不必要的额外开销,因为严格地只需这些细节水平中最精细的一个来呈现当前视图;较粗略的细节水平是冗余的,因为它们定义了显示器上的较低分辨率图像。然而,这些较粗略的细节覆盖了较大的区域一一般是比显示器要大得多的区域。对任何节点的最粗略的细节水平实际上仅包括构造的单个小块,因此呈现节点的任何视图的客户机将总是首先将“最外面的”小块排队。
这是查看健壮性的重要一点。健壮性意味着客户机永远不会对于响应于用户的扫视和缩放要显示什么而“感到困惑”,即使在有大量积压的小块请求等待满足的情况下。客户机仅仅显示对显示器上的每一区域可用的最佳(即,最高分辨率)图像。在最坏情况下,这将是最外面的小块,即关于节点所请求的第一个小块。因此,节点的每一空间部分可以总是单独基于第一个小块请求来呈现;随后后续的小块请求可被视为是递增细化。
退回到较低分辨率小块造成了模糊图像的印象;因此总体效果是显示器在可调整大小的扫视或缩放之后会显现为模糊的。然后,当小块请求得到满足时,图像锐化。
一个简单的计算示出通过请求“冗余的”较低分辨率小块而造成的额外开销实际上是微小的一特别地,它是为使节点图像从头开始在每一处都良好定义的健壮性而付出的较小代价。
2.凹入小块请求排队。在相对细节水平内,小块请求通过递增到屏幕中心的距离来排队,如图3所示。该技术受到了人类眼睛的启发,人类眼睛具有专门用于高分辨率的中心区一视网膜中央凹(fovea)。由于缩放通常与对显示器中心区的兴趣相关联,因此凹入小块请求排队通常反映了用户在放大期间对于可视信息的隐含优先级区分。此外,由于与边缘相比用户的眼睛一般花费更多的时间来看靠近显示器中心的区域,因此显示器边缘处的残留模糊比靠近中心处的模糊更不引人注意。
通过使用凹入小块请求顺序进行放大而产生的靠近显示器中心处的锐度的瞬时相对递增也反映了缩小的自然结果一见图4。该图示出了两个交替的“导航路径”:在顶行中,用户在查看占据大约2/3的显示器的单个文档(或节点)时保持静止,假定该文档能以非常高的分辨率来显示。最初,节点内容由单个低分辨率小块来表示;然后下一LOD的小块变得可用,从而使得节点内容以具有4个(=2x2)小块的两倍分辨率可见;之后是4×4=16以及8×8=64个小块的版本的分辨率。在第二行中,可跟踪如果用户在显示于顶行中的图像被完全细化之前要对打阴影的正方形进行放大时发生的情形。较高细节水平的小块再一次被排队,但是在这一情况下,仅那些部分或完全可见的小块才被排队。细化进展到与顶行的细化可比(按照显示器上可见小块的数目)的点。第三行示出如果用户随后再次缩小则有什么变得可用以及如何填充丢失的细节。尽管示出了所有的细节水平,但要注意,实际上非常精细的水平很可能在底行中被省略不进行显示,因为它们表示比显示器能够传达的更精细的细节。
注意,放大一般使显示器中心以比***更详细的小块来填充。因此,这一小块请求排序在所有导航期间一致地对显示器中心区域的锐度区分优先级。
3.时间LOD混和。如果没有进一步的细化,则当下载或构造当前显示所需的小块且首次绘出该小块时,它将立即遮挡假定表示同一内容的底层的较粗略小块的一部分;用户体验到这一转变是显示器某一区域中模糊度的突然变化。这一突然转变是不悦目的,且不必要地将用户的注意力吸引到软件实现的细节上。本发明对ZUI设计的一般方法是为用户创建无缝的视觉体验,该体验不会将注意力吸引到应当保持“在遮盖之下”的小块或软件的其它方面的存在。因此,当小块首先变得可用时,它们不是被立即显示,而是在多个帧上混和一通常在大致1秒的帧上掺和。该混和函数可以是线性的(即,新小块的不透明度是自从小块变得可用以来的时间的线性函数,使得在固定的混和间隔一半处新小块是50%透明的)、指数的、或遵循任何其它内插函数。在指数混和中,每一小的恒定时间间隔对应于不透明度中的恒定百分比变化;例如,新小块可以在每一帧处变得20%更不透明,这导致连续帧上的不透明度序列20%、36%、49%、59%、67%、74%、79%、83%、87%、89%、91%、93%等。在数学上,指数从不达到100%,但是实际上,不透明度在很短的间隔之后变得无法与100%区分。指数混和具有不透明度的最大增加出现在靠近混和的开始处的优点,这使得新信息迅速对用户可见,同时仍保持了可接受的时间连续性。在参考实现中,所造成的假象是当必要信息变得可用时显示器的区域平滑地聚焦。
4.连续LOD。在小块下载或创建滞后于用户导航的情形中,显示器的相邻区域可具有不同的细节水平。尽管先前的革新(#3)解决了细节水平的时间不连续性问题,但是需要单独的革新来解决细节水平的空间不连续性问题。如果不加以纠正,则这些空间不连续性如图像中的缝一样对用户是可见的,且可视内容更尖锐地绘制到缝的一侧。通过允许每一小块的不透明度在小块区域上可变来解决这一问题;具体地,如果小块边缘毗邻显示器上具有较低的相对细节水平的区域,则使该不透明度在该边缘上变为0。在某些情况下同样重要的是如果小块的各个角接触到较低的相对细节水平的区域,则使得该各个角上的不透明度变为0。
图5示出了对于如何可将每一小块分解成矩形和三角形,称为小块碎片,使得不透明度在每一小块碎片上连续变化的最简单的参考实现。由正方形aceg定界的小块X在左、右、上和下方分别具有相邻小块L、R、T和B,每一小块共享一边缘。它也具有共享单个角的邻居TL、TR、BL和BR。假定小块X存在。则其“内部正方形”iii是完全不透明的。 (注意,重复的小写字母表示相同的顶点不透明度值。)然而,环绕的矩形框的不透明度是由相邻小块是否存在(且完全不透明)来确定的。因此,如果小块TL不存在,则点g将是完全透明的;如果L不存在,则点h将是完全透明的,等等。将小块的边界区(在iiii外部的X)称为混和边盖(blending flap)。
图6示出了用于在碎片上内插不透明度的参考方法。部分(a)示出了恒定的不透明度矩形。部分(b)是其中两条相对边缘的不透明度不同的矩形;因此内部的不透明度简单地是基于每一内部点到两边缘的最短距离的线性内插。部分(c)示出用于在所有三个角abc的不透明度不相同时在三角形上内插不透明度的双线性方法。在概念上,每一内部点p如图所示将三角形细分成三个子三角形,它们分别具有面积A、B和C。p处的不透明度因此简单地是角上的不透明度的加权和,其中权重是三个子三角形的分数面积(即,A、B和C除以总三角形面积A+B+C)。可以容易地验证:该公式在p移至顶点时同样给出了顶点处的不透明度,且如果p在三角形边上,则其不透明度是两个相连顶点之间的线性内插。
由于碎片内的不透明度完全由其顶点处的不透明度来决定,且相邻的碎片总是共享顶点(即,没有T联结),因此该方法确保不透明度在整个小块化表面上平滑地变化。与#3的时间LOD混和相组合,该策略使得对用户可见的相对细节水平在显示面积和时间上都是连续函数。因此避免了空间缝和时间不连续性,从而向用户呈现了令人想起将场景连续聚焦的光学仪器的视觉体验。对于导航大文档,场景逐渐聚焦的速度是到存储库的联结的带宽、或小块呈现的速度(取两者中较慢的那一个)的函数。最后,与革新#2的凹入优先化相组合,连续的细节水平以使得显示器的中心区首先聚焦的方式偏斜。
5.推广的线性MIP映射-线性LOD混和。已经讨论了用于确保节点上显现的LOD中的空间和时间平滑度的策略和参考实现。然而,尚未集中于在连续缩放操作期间混和细节水平的方式。所使用的方法是三线性内插的推广,其中相邻的细节水平在中间范围的比例上线性地混和。在每一细节水平上,每一小块碎片都具有如所绘出的不透明度,该不透明度在同一细节水平上与相邻的小块碎片在空间上平均以获得空间平滑度,并在时间上平均以获得随时间的平滑度。如果细节水平对显示器欠采样,即f<1(见#1),则目标不透明度是100%。然而,如果细节水平对显示器过采样,则目标不透明度线性地(或使用任何其它单调函数)递减,从而如果过采样是g倍折叠(g-fold)的,则它变为0。与三线性内插一样,这导致在缩放操作上的连续混和,从而确保所感知到的细节水平从不突然改变。然而,与始终涉及两个细节水平的混和的常规三线性内插不同,本方案中混和的细节水平的数目可以是1、2或更多。大于2的数目是瞬时的,并且是由于一种以上细节水平的小块尚未在时间上完全混和而导致的。单个细节通常也是瞬时的,因为它一般在低于理想的LOD正在以100%的不透明度“代替”尚未被下载或构造并混和的较高LOD时发生。
用于呈现节点的该组小块碎片的最简单的参考实现是使用所谓的“画家算法”:所有小块碎片以从后到前的顺序呈现,即从最粗略(最低LOD)到最精细(对显示器进行了小于g倍折叠的过采样的最高LOD)。除最高LOD之外的所有LOD的目标不透明度是100%,尽管如果其时间混和未完成则它们能以较低的不透明度瞬时呈现。取决于最高LOD对显示器进行了多少过采样,如以上所讨论的,它可具有可变的不透明度。很清楚,该参考实现并不是最优的,因为它可能会呈现随后将会被后来呈现的碎片完全遮盖的碎片。通过使用类似于对3D图形学中的隐藏表面去除所使用的那些数据结构和算法,更优的实现是可能的。
6.运动预期。在快速缩放或扫视期间,对小块请求尤其困难的是跟上需求。然而在这些快速导航模式中,缩放或扫视运动往往由线性外推来本地地良好预测(即,难以在方向上作出突然倒转或变化)。由此,可以充分利用这一时间运动相干性以略微提前生成小块请求,由此改进视觉质量。这是通过在扫视或缩放时利用在运动方向上拉长、扩大或收缩的虚拟视见区来生成小块请求,由此预先清空了额外小块的请求来实现的。当导航停止时,虚拟视见区在简短的时间间隔上松弛回到实际视见区。
注意,以上革新中没有一种限于矩形小块化;它们以明显的方式推广到可在网格上定义的任何小块化图案,诸如三角形或六边形小块化、或由这些形状的混合构成的异构小块化、或完全任意的小块化。需要作出以适应这一替换小块化的唯一明确变化是定义类似于图5的小块碎片的三角测量,使得边缘和内部的不透明度都可以被独立地控制。
标题:用于多分辨率可视数据的高效、动态且连续显示的***和方法
发明人:BLAISE HILARY AGUERA Y ARCAS
发明领域
本发明一般涉及多分辨率成像。更具体而言,本发明是一种用于实时将不同分辨率或细节水平的内容的可视表示高效地混合在一起的***和方法。该方法确保即使在其中可视化的数据可能改变的高度动态环境中也有可感知的连续性,并且在任何给定时刻仅有部分数据可用。本发明在包括(但不限于)用于计算机的缩放用户界面(ZUI)在内的多个领域都有应用。
发明背景
在涉及复杂可视数据的显示的许多情形中,这些数据是作为不同细节水平(LOD)的表示的集合来分层地储存或计算的。对不同种类的数据已设计了许多多分辨率方法和表示,包括(例如,但不限于)用于数字图像的小波、以及用于3D模型的渐进网孔。在能够更“粗略”或更“精细”地执行可能冗长的计算的情况下,多分辨率方法也用于数学和物理模拟;本发明也适用于这些模拟以及其中多分辨率可视数据可交互地生成的其它情况。此外,本发明适用于其中可视数据能以不同的细节水平“在进行中”(例如从具有机器可控扫视和缩放的照相机)获得的情况。本发明是对于这一多分辨率可视数据在一个或多个2D显示器(诸如CRT或LCD屏幕)上的动态显示的一般方法。
在解释本发明时,将使用大数字图像(例如,如在JPEG2000图像格式中使用的)小波分解作为主要示例。该分解取原始像素数据,一般是常规矩形网格上的样本阵列作为其起始点。每一样本通常表示在对应于其网格坐标的空间点处测量的色彩或亮度。在某些应用程序中网格可能非常大,例如在一侧有几万个样本(像素)或更多。这一大尺寸对交互式显示会造成相当多的困难,尤其是在这类图像要在其中服务器(储存图像之处)通过低带宽连接连接到客户机(要查看图像之处)的环境中远程浏览的时候。如果图像数据以简单的光栅顺序从服务器发送到客户机,则所有的数据都必须在客户机能够生成整个图像的概观之前发送。这会耗费很长的时间。生成这一概观也可能是计算上昂贵的,它可能例如要求将20,000×20,000个像素图像向下采样到500×500个像素。不仅仅是这些操作太慢以致于不允许交互,而且它们还要求客户机具有足够的存储器来储存完整的图像数据,这在刚才所述的情况中对于8位RGB彩色图像(=3*20,000^2)是1.2千兆字节(GB)。
目前Web上的几乎每一图像都在100K(0.1MB)以下,因为大多数用户以DSL或更低的带宽连接到Web,且较大的图像会花费太长时间来下载。即使是在本地设置中,在典型的用户硬盘驱动器上,一般也不会遇到大于500K(0.5MB)的图像。更大(即,更详细)的图像通常有用是用以下事实来证明的:普通家庭中带插图的书本、地图册、地图、报纸和艺术作品包括大量图像,这些图像如果以全分辨率数字化则大小很容易达到几十兆字节。
若干年前,缺少大图像很大程度是由于非易失性存储空间(存储库空间)的短缺,但是硬盘驱动器技术的进步、刻录CDROM的方便以及大型联网服务器的日益普及已使得存储库空间不再是限制性因素。现在的主要瓶颈是带宽,然后是短期存储器(即,RAM)空间。
设计了诸如JPEG20001等现代图像压缩标准恰好来解决该问题。并非以线性方式(即,通常从上到下且从左到右在像素上经过一遍)储存图像内容,而是使图像基于多分辨率分解。图像首先被调整大小成一分辨率比例层次,这通常以2为因数来进行;例如,512×512像素的图像被调整大小成256×256像素、128×128、64×64、32×32、16×16、8×8、4×4、2×2以及1×1。将每一分辨率在大小上与下一更高的一此处为2一分辨率差别的因素称为粒度,用变量g来表示。粒度可在不同的比例上变化,但是此处,作为示例而非限制,假定g在“图像金字塔”上是恒定的。很明显,精细的细节只能以高分辨率来捕捉,而宽的笔划使用少得多的信息以低分辨率来捕捉。这就是不同大小的图像或比例通常被称为细节水平或简称LOD的原因。乍看可能会看到对于该系列不同大小图像的存储要求好像可能比对于单独的高分辨率图像的要求更高,但是实际上情况并非如此;低分辨率图像用作下一更高分辨率的“预测器”。这允许非常高效地对整个图像层次编码一实际上比单独使用高分辨率图像的非分层表示可行的更高效。
如果想像按照逐渐增大的大小的顺序在服务器的存储库中储存图像的多分辨率版本的序列,则自然的结果是如果图像从服务器传送到客户机时,客户机可非常迅速地获得整个图像的低分辨率概观;当传送进展时越来越精细的细节然后将“填入”。这被称为递增或渐进传送,并且是多分辨率表示的主要优点之一。当渐进传
——————
1http://www.jpeg.org/JPEG2000.html
送被正确实现时,根本上任何图像一无论有多大一都可几乎立即由客户机在空间上整体查看(尽管并不是以其全细节来查看),即使到服务器的连接带宽十分普通。尽管以全细节下载图像所需的最终时间量保持相同,但是发送该信息的顺序改变,使得图像的大比例特征被首先发送;这比以全细节且以“读取顺序”从上到下且从左到右发送像素信息对用户更有帮助。
为使随机访问在动态和交互式环境中有效,方便(尽管并不是绝对必需)的是将每一细节水平细分成网格,使得网格正方形,即小块(tile)是基本传送单元。每一小块以像素为单位的大小可被保持在恒定大小或以下,使得每一递增的细节水平包含大约前一细节水平的4倍的小块。较小的小块会出现在图像的边缘处,因为其尺寸可能不会正好是额定小块大小的倍数;同样,在最低细节水平,整个图像将小于单个额定小块。因此,如果假定64×64个像素小块,则先前所考虑的512×512像素图像在其最高细节水平具有8×8个小块,在256x256的水平具有4×4个小块,在128x128的水平具有2×2个小块,而在其余的细节水平只有单个小块。JPEG2000图像格式包括刚描述的用于表示小块化的、多分辨率和随机访问图像的所有特征。
如果大型的小块化JPEG2000图像的细节要由客户机在有限大小和分辨率的2D显示器上交互地查看,则需要某一细节水平的某一组特定的相邻小块来产生准确的呈现。然而,在动态环境中,这些可能并非都是可用的。然而,较粗略细节水平的小块通常是可用的,尤其是如果用户以图像的广泛概观开始。由于较粗略细节水平的小块在空间上跨越了宽得多的区域,因此整个感兴趣的区域可能被可用小块的某一组合覆盖。这意味着可用的图像分辨率将不再在显示区域上恒定。
在先前提交的临时专利申请中,提出了用于在小块毗邻同一细节水平的空白区的情况下使小块边缘“渐隐”的方法;这避免在精细细节水平的“覆盖范围”不完整时会导致的锐度的突然视觉不连续性。为混和保留的小块的边缘区被称为混和边盖。用于显示已完成的合成图像的简单参考实现是“画家算法”:最粗略细节水平的所有相关小块(即,重叠显示区的小块)被首先绘出,然后是逐渐精细的细节水平的所有相关小块。在每一细节水平处,如所描述地在不完整区域的边缘处应用混和。如所需的结果是较粗略的细节水平仅在它们不被较精细的细节水平遮挡的地方“隐约显出”。
尽管该简单算法起了作用,但是它具有若干缺点:首先,它浪费了处理器时间,因为即使在小块最终被部分或甚至完全遮挡的情况下也要绘出小块。具体地,一个简单的计算示出每一显示器像素通常被(重新)绘出log2(f)次,其中f是显示器相对于最低细节水平的放大因数。其次,该技术依赖于帧缓冲区中的合成一这意味着在绘图操作期间的中间点处,所绘出的区域不具备其最终外观;这使得必须使用双缓冲或相关方法并在屏幕外执行合成来避免闪烁分辨率的出现。第三,除非应用了额外的合成操作,否则该技术只能用于不透明呈现一例如,它不可能确保在每一处都最终呈现具有50%的不透明度,从而允许其它内容“隐约显出”。这是因为画家算法完全依赖于一个“绘图层”(即,细节水平)完全遮挡其下一层的效果;事先并不知道细节水平在哪里会被遮挡,以及在哪里不会被遮挡。
本发明
本发明解决这些问题,同时保留了画家算法的所有优点。这些优点之一是处理任何种类的LOD小块的能力,包括非矩形或不规则小块,以及无理(irrational)网格小块,对于后者已经提交了单独的临时专利申请。小块一般由包含成为多边形的可视内容的区域的细分或棋盘形格局组成。为使小块在多分辨率环境中有用,一般期望较低细节水平的小块的面积大于较高细节水平的小块的面积;其大小差别的乘法因数是粒度g,假定(但不限于)g是常量。在下文中,将使用无理但矩形的小块网格来描述该改进算法。对其它小块方案的推广对本领域的技术人员而言应是显而易见的。
该改进算法由四个阶段组成。在第一阶段,从要绘出的所有细节水平中的所有小块网格的可见部分的叠加中在图像的参考帧中构建合成网格。当使用无理小块的革新(在单独的临时专利申请中有详细描述)时,这导致在图1中示意性地示出的不规则合成网格。该网格由对应于x和y值的网格线进一步放大,该x和y值是在每一细节水平绘出小块“混和边盖”(图1中未示出,因为所得的网格太密集且在视觉上有混淆)所需的。该合成网格可由用于网格线的x和y值的有序列表来定义,它具有绘出所有可见小块(包括其混和边盖)的所有矩形和三角形的顶点都落在x和y网格线的交点处的特性。设有平行于x轴的n条网格线以及平行于y轴的m条网格线。然后构造带有对应于网格的正方形的条目的二维n*m表。每一网格条目具有两个字段:被初始化为0的不透明度,以及最初为空的对特定小块的引用的列表。
第二个阶段是走查按照递减的细节水平(与单纯实现相反)排序的小块。每一小块覆盖整数个合成网格正方形。对于这些正方形中的每一个,检查其表条目是否具有小于100%的不透明度,并且如果是,则将当前小块添加到其列表并相应地递增不透明度。这一步骤中使用的每一小块的不透明度被储存在小块数据结构中。当该第二阶段完成时,合成网格将包含对应于要在每一网格正方形中绘出的正确个数的小块、以及用于绘出这些“小块碎片”的不透明度的条目。这些不透明度一般总计为1。完全被遮挡的低分辨率小块在该表中不在任何地方引用,而部分遮挡的小块仅在它们部分可见的小块碎片中引用。
该算法的第三个阶段是遍历合成网格,其中合成网格顶点处的小块碎片不透明度通过与同一细节水平的相邻顶点平均来调整,然后重新调整顶点不透明度以保持每一顶点处的总计不透明度(通常是100%)。这实现了在单独临时专利申请中所描述的比例空间平滑的细化版本。该细化起因于合成网格一般比革新#4中定义的每一小块3×3个网格更致密这一事实,尤其对于低分辨率小块。 (在最高LOD下,通过构建合成网格至少如所需那样的精细。)这允许平均技术实际上通过创建由更大量的小块碎片构成的更平滑混和边盖而在明显的细节水平中实现更大的平滑度。
最后,在第四阶段中,再次遍历合成网格,并且实际绘出小块碎片。尽管该算法涉及在数据上通过多遍以及一定量的簿记,但它可导致比单纯算法好得多的性能,因为最终必须进行的绘制要少得多;所呈现的每一小块碎片对用户是可见的,尽管有时候是以低不透明度可见的。某些小块可能完全不被绘出。这与单纯算法相反,单纯算法将与所显示的区域相交的每一小块完整地绘出。
该算法的另一优点是它简单地通过将总不透明度目标从100%改为某一较低的值来允许绘出部分透明的节点。这对于单纯算法是不可行的,因为除最详细的细节水平之外的每一细节水平必须以完全不透明度绘出以完全“绘图覆盖”任何底下的、仍为较低分辨率的小块。
当视图在x-y平面内相对于节点旋转时,需要进行某些细微的变化以提高效率。合成网格可用普通方式来构建,它可比对于未旋转情况下的网格大,因为较大的坐标范围沿着对角线是可见的。然而,当走查小块时,只需考虑可见的小块(通过简单的相交多边形准则)。同样,在查看区之外的合成网格正方形无需在第二或第三阶段的遍历期间更新,也无需在第四阶段中绘出。注意,可修改多种其它实现细节以优化性能;该算法此处以使其操作和本质特征最易于理解的形式来提出。本领域的熟练图形程序员能够容易地添加优化实现细节。例如,不必保持每一小块碎片的小块列表;相反,可在完成之后以正确的不透明度立即绘出每一细节水平,由此在任一时刻对每一碎片只需存储单个小块身份。另一示例性优化是可跟踪按照(面积)x(剩余不透明度)来表达的剩余的要完成的总不透明度呈现,使得该算法在已经绘出所有东西之后可提早退出;因而如果不需要低细节水平,则可以完全无需“访问”这些低细节水平。
该算法可通过使用受约束的Delaunay三角测量代替网格来储存顶点不透明度和小块碎片标识符而被推广到任意的多边形小块图案。该数据结构有效地创建了其边缘包含所有原始LOD网格中的每一边缘的三角测量;访问特定的三角形或顶点是一项高效的操作,它可在n*log(n)数量级的时间上发生(其中n是所添加的顶点或三角形的个数)。此外,所得的三角形是用于在大多数图形平台上进行图形呈现的基本图元。
标题:用于缩放用户界面中无限精度坐标的***和方法
发明人:BLAISE HILARY AGUERA Y ARCAS
发明领域
本发明一般涉及用于计算机的缩放用户界面(ZUI)。更具体而言,本发明是一种用于使用允许内容具有实际上无限精度的空间定位和大小的分层数据结构来有效地表示和导航可缩放内容的***和方法。这允许无限比例或深度的可缩放环境。
发明背景
大多数当前的图形计算机用户界面(GUI)是使用固定空间比例的可视组件来设计的。然而,从计算机图形领域的诞生可以认识到,可视组件可以用使得它们在显示器上不具有固定空间比例,而是可被放大和缩小的方式来表示和处理。对可缩放组件的期望在许多应用领域中都是明显的;此处仅举几个例子:查看地图、浏览诸如报纸等大型的不同种类文本布局、查看数码照片的相册、以及用大数据集的可视化来工作。即使在查看诸如电子表格和报表等普通文档时,能够粗看一下文档概述,然后在感兴趣的区域上放大通常也是有用的。许多现代的计算机应用程序包括可缩放组件,诸如Microsoft???_Word???_和其它Office???_产品(View(视图)菜单下的Zoom(缩放))、Adobe???_Photoshop???_、Adobe???_Acrobat???_、QuarkXPress???_等等。在大多数情况下,这些应用程序允许对文档进行放大和缩小,但是无需对应用程序本身的可视组件进行放大和缩小。此外,缩放一般是用户与软件的交互的一个***方面,且缩放设置仅偶尔被更改。尽管对文档的连续扫视是标准(即,使用滚动条或光标来将所查看的文档向左、右、上或下平移),但连续缩放的能力几乎总是不存在。在一种更一般化的缩放框架中,可缩放任何种类的可视内容,且缩放几乎与扫视一样是用户体验的一部分。遵循这些思路的概念使得甚至在早至1960年代1的电影中已经出现了未来派的计算机用户界面;而近期的电影延续了这一趋势2。从
————————————
1例如Stanley Kubrick在2001年的:ASpace Odyssey,Turner Entertainment公司,Time Warner公司的子公司(1968)。
2例如,Steven Spielberg的Minority Report,20thCentury Fox and Dreamworks Pictures(2002)。
1970年代开始到现在3,已构思和/或开发了多种连续缩放界面。在1991年,这些概念中的某一些在纽约大学的Kenneth Perlin和Jacob Schwarts的美国专利5,341,466(“Fractal Computer User Centerface with Zooming Capability”)中定形。由Perlin和同事Pad开发的原型缩放用户界面Pad及其后继产品Pad++自那以来经历了一些开发4。然而,就发明人所知,部分地由于多种技术不足,在大量市场上尚未出现基于全ZUI(缩放用户界面)的主要应用程序,这些技术不足中的一个在本发明中得以解决。
发明概述
本发明具体化了新开发的缩放用户界面框架(下文按其运作名称称为Voss)作为基础的新概念。Voss由于其软件体系结构中有多种革新而比其前驱产品更强大、更具响应性、视觉上更引人注目且更通用。本专利特别地是关于对于坐标***和导航的Voss方法。
大多数图形体系结构取2D坐标***作为其出发点,该坐标***将二维(2D)空间中的一个点定义为一对数字,通常称为x和y坐标(x,y),它们表示从原点(0,0)的水平和垂直位移。2D点偶尔也使用非笛卡尔坐标***,诸如极坐标来表示;以下讨论的实质性方面同样适用于任何这样的坐标***。在三维(3D)图形学领域中,由三元组数字(x,y,z)定义的3D坐标***通常用于表示空间中的点;再一次,这些可以是或不是笛卡尔坐标。由于显示器通常是二维的,因此需要视图相关数学变换来将三维世界坐标缩减为二维屏幕坐标。在任一情况下,所处理的坐标通常使用计算机固有的整型或浮点型数值数据类型来表示。这些数据类型通常使用16和64位(二进制数位)之间的存储器。由于其有限的表示大小,这些数字具有有限的精度一即,其小数展开仅被定义到某一有限数目的有效位。在64位浮点数的情况下,这是大约15个小数位。
当坐标***被“锁定”到显示器,即每一2D坐标对(x,y)对应于显示器表面上的一个固定点时,该精度是过高的。然而,在缩放用户界面的环境中,用户能够
——————————
3早先出现在W.C.Donelson的Spatial Management ofInformation,SIGGRAPH的Computer Graphics会议论文集(1978),ACM出版社第203-9页中。近来的一个示例是2002年夏天推出的Zanvas.com。
4Perlin在http://mrl.nyu.edu/projects/zui/上描述了后继开发。
容易地进行放大,从而导致先前覆盖单个像素的区域填满了整个显示器;或者进行缩小,从而导致整个显示的内容收缩到单个像素的大小。每一这样的缩放实际上将(x,y)坐标乘以或除以约1,000的因子。因此,若干次这样的放大或缩小会用尽任何标准内部浮点表示的精度。 (例如,五次这样的缩放操作将完全用尽64位浮点数的精度。在该环境中,由离散化或“舍入误差”引起的视觉伪像在三次这样的缩放之后将开始引人注意。)然而,在缩放用户界面中,可能期望更大程度地放大或缩小。这意味着全局或世界坐标不能在不严重限制用于缩放的范围的情况下以标准机器格式来储存。
本发明通过完全省去世界坐标来解决这一问题。相反,所有的缩放和扫视操作在共同定义可缩放内容“全域”的局部坐标***的树(或更一般地,有向图)中进行。内容包括节点集合,节点本身是使用机器精度坐标的本地2D坐标***来定义的。如果使用标准的64位浮点数,则单个节点由此被限于具有每一坐标约15个精度小数位,或者按照像素来说,在一侧最多约有10^14个像素。然而,节点可以是多个子节点的父节点,每一子节点在几何上包含在父节点的边界内。子节点相对于父节点的大小和位置可在父节点的局部坐标***中指定,且由此适合机器精度数字;然而,子节点可具有它自己的局部坐标***,这允许它进而具有(例如)一侧达10^14个像素的分辨率。通过如此将子节点嵌入在子节点内,得到允许可视内容的无限深度嵌套,同时仍仅使用机器精度数字来储存、处理和执行几何计算的构造。本专利的主要部分进一步阐明了这一方案,列出了使用刚才所描述的数据结构的扫视和缩放操作的示例性实现。
本发明的一个目的是允许可扫视和可缩放的,但复杂度或分辨率任意高的有限“物理大小”的2D空间被嵌入到更大的可扫视和可缩放2D空间的明确定义区域中。
本发明的另一目的是允许通过上述嵌入过程来构造可视对象的几何树或有向图,从而允许这些树和图变得任意大和复杂,同时保留了在所得的空间中扫视和缩放的能力。
因此,本发明的一个目的是允许在当今的普通计算机体系结构上在可能无限的视觉复杂度和细节的虚拟2D全域中进行流畅的缩放和扫视。
本发明的另一目的是在可扫视和可缩放2D空间的坐标上模拟无限精度算术的行为,同时仍保留在本机机器精度数字上执行的坐标计算的计算速度。软件包MathematicaTM(_???Wolfram Research)提供了用于无限精度算术的数据结构和算法的示例性实现(然而仍不满足这些同样的准则)。
本发明的又一目的是在可扫视和可缩放2D空间的坐标上模拟无限精度算术的行为,同时避免对无限精度数字的大存储器消耗。
本发明的再一目的是允许将可重复使用的可视内容通过引用嵌入到可缩放和可扫视2D空间中,即无需更新要嵌入内容中的任何坐标或其它数据结构。由于这允许2D空间被嵌入另一空间中而无需遍历新子坐标***树,因此这一能力允许不管复杂度如何而嵌入任何2D空间。
本发明的还有一个目的是允许由于循环引用而引起的可缩放和可扫视内容中的无限嵌套:具有内容B的节点可以是具有内容A的节点的子节点(即,几何上B出现在A的内部),且节点B进而可包含具有内容A的节点作为子节点。在其中可视内容可通过引用来重复使用和包括的复杂可缩放环境中,这一类型的重复出现可以非常容易地发生。这将具有相关联坐标***的节点树的概念推广到具有相关联坐标***的节点的有向图的概念。
本发明的另外一个目的是允许在深度放大之后进行缩小以类似于web浏览器的“后退”按钮工作,从而让用户折回他或她通过视觉导航的步骤。
本发明的再有一个目的是允许在缩小之后立即进行放大以类似于web浏览器的“前进”按钮工作,从而让用户精确地撤消任意长的缩小的效果。
本发明的进一步一个目的是允许节点具有非常大量的子节点(例如,多达10^28) 。
本发明的此外一个目的是允许节点在进行中程序性地生成它自己的子节点,从而允许在导航期间动态地定义、创建或修改内容。
本发明的更进一步目的是即使在内容最终使用非常大量的数据来表示,且即使这些数据被储存在远程位置并通过低带宽网络共享的情况下也允许接近即时地查看任意复杂的可视内容。
本发明的再进一步目的是允许用户对可视内容进行任意程度的放大,同时保持交互式帧速率。
本发明的更深一层目的是允许用户在保留内容的总体外观和保持交互式帧速率的过程中任意程度地缩小以获得复杂可视内容的概观。
本发明的这些和其它目的在本领域的技术人员阅读了以下说明书之后将变得显而易见。
约定
在下文中,将使用若干伪代码约定。数据结构(有时候称为抽象数据类型,即ADT)将使用单词Structure及其后的波形括号中的内容{...}来介绍。在波形括号内将以以下格式列出构成该结构的字段或数据元:
数据类型 变量名
其中数据类型是先前定义的结构或原语类型,而变量名是字段名。注意,数据类型和函数总是以大写字母开头,而变量名或字段名总是以小写字母开头。所使用的原语类型是Boolean(可取值true或false)、Double(对应于C语言的double类型的64位浮点数)、Integer(64位带符号整型数据类型)、以及String(字符串)。结构和变量的名称以及所使用的数据类型和格式的细节是示例性的;本发明的替换实现可更改这些细节中的任一个、包括任何数目的附加字段、或使用不同的结构或内部表示。
为方便起见,立即定义以下结构,用于(分别)储存2D笛卡尔平面上点的位置以及该平面上与轴对齐的矩形:
Structure Point2D{
Double x;
Double y;
}
Structure Rectangle{
Point2D lo;
Point2D hi;
}
假定(而非限制)一数学坐标***,其中x轴为水平且向右递增,而y轴为垂直且向上递增。Rectangle中的点lo和hi表示矩形区域的左下和右上角。为引用结构的字段,将如以下伪代码中那样使用句点(“.”):
Boolean Function IsPointlnBox(Point2D p,Rectangler){
ifp.x>r.lo.x&p.x<r.hi.x&p.y>r.lo.y&p.y<r.hi.y{
return true;
}else{
returnfalse:
}
}
该函数确定一个点是否在矩形内。诸如return等语句等效于其在C语言中的对应语句。所使用的句法对本领域的任何技术人员应当都是可理解的。在伪代码中将使用斜体来表示最容易用英语来描述的抽象或复杂动作。
最后,定义两个容器数据类型:Collection<T>,它储存类型为T的对象的无序集,以及Stack<T>,它在后进先出(LIFO)的基础上储存类型为T的对象。为在集合上迭代,将使用句法
for collection中的所有x{对x做某些动作...}
其中collection为类型Collection<T>,而x对容器中每一类型T的对象代入;对每一这样的对象,执行波形括号中的代码。假定处理对象的顺序是无关紧要的。对于栈,定义以下函数:
Function Push(Stack<T>stack,Tt)
Function T Pop(Stack<T>stack)
Function Integer Count(Stack<T>stack)
Function T Element(Stack<T>stack,Integern)Push函数将对象t追加到栈,而Pop函数移除压入的最后一个元素并返回它。Count返回栈中对象的个数(大于或等于零的整数),而Element按照索引查找栈中的元素并返回该元素,但保持栈不变。遵循C约定,有效索引对第一个元素以零开始,并增长到Count(stack)-1。
发明详述
假定其中显示器是摄像机的用户界面比喻,通过该用户界面用户能够查看二维表面,即2D全域的一部分。为方便起见,尽管不必如此,但仍认为物理维度属于该全域,使得它可以例如是一米的正方形。
该全域进而包含2D对象,即节点,它们具有可视表示,并且也可以是动态或交互式的(即,视频剪辑、应用程序、可编辑文本文档、CAD绘图或静止图像)。为使节点可见,它必须与能够在显示器的某一区域上完全或部分地绘出它的呈现方法相关联。每一节点被赋予一有限精度的局部坐标***。为说明起见,假定节点是矩形并使用如上定义的Point2D和Rectangle数据结构来表示其局部坐标。由此,Rectangle将定义局部坐标***的边界。更一般地,节点可以是非矩形的和/或使用一不同的坐标***。由此,定义
Structure Node{
Rectangle coordSystem;
...
}
其中省略号(...)表示Node也将具有其它字段,这将在稍后指定。由此,用于节点(将给予数据类型Node)的最小呈现方法可能需要以下自变量:
Function RenderNode(Node node,Rectangle onDisplay,Rectangle onNode)
该示例性函数将由onNode矩形(节点坐标***中)定义的节点的一部分呈现为由onDisplay(显示器或“屏幕”坐标中)定义的显示器上的矩形。矩形onNode一般应在node.coordSystem中。为使呈现可见,矩形onDisplay应在以显示器坐标定义显示器边界的矩形内。
每一节点可具有零个或多个子节点,它通过引用来对子节点寻址。这意味着节点无需且一般不包含每一子节点的所有信息,而是仅包含提供获得该子节点所必需的信息的地址。URL(http://...)是这一地址的一个示例,但是地址可采用其它形式,例如存储器中的指针、全局唯一标识符、硬件端口等。定义抽象数据类型Address来一般地表示地址,并定义函数
Function Node Dereference(Address address)该函数给定其地址返回对节点的引用。
除子节点的地址之外,对子节点的引用必须指定子节点的大小和其在父节点的局部坐标***中的位置。由此,有Structure ChildReference{
Address address;
Rectangle placement;}
其中placement同样也应在父节点内,即在父节点的coordSystem内。由此,扩展对节点的定义:
Structure Node{
Rectangle coordSystem;
Collection<ChildReference>children;
}
不同的节点可共享某些或全部其子节点,但是可能在不同的空间排列中,从而允许同一信息的不同视图的可能性。
现在能够在某种更详细的程度上定义节点呈现方法的一般行为:
Function RenderNode(Node node,Rectangle onDisplay,Rectangle onNode){
...绘出节点...
for children中的所有childRef {
Rectangle childOnDisplay=
CalcRectangle(onDisplay,childRef.placement);
if Area(childOnDisplay)>=minimumArea{
Child child=Dereference(childRef);
RenderNode(child,childOnDisplay,child.coordSystem);
}
}
}
该函数现在将呈现一节点并递归地呈现其子节点。CalcRectangle函数在给定父节点的显示矩形和子节点在父节点内的位置时计算子节点所占据的显示矩形。假定例如父节点是可见的,且其所有子节点也是可见的,则该呈现方法是相当简单的。它满足重要设计准则,然而:
1.未使用全局坐标。
2.假定子节点小于其父节点,则函数在有限时间内终止,因为子节点最终都
小于minimumArea。这即使在树中有无限个节点时也是如此。
3.如果使minimumArea足够小,则截断呈现的可视效果将变得可忽略,因
为未绘出的任何节点太小以致于不会影响显示的总体外观。
4.允许重复出现:节点可以是它自己的后代。由此,由“是……的子节点”
关系定义的节点的有向图可以具有循环(使得它在图论意义上不再是树)。
如果子节点占据其父节点面积的大部分,且图循环较小(即,A→B→A
或A→B→C→A),则这得到镜厅的效果。
用户与节点的交互,诸如将文本键入到其中,通常要求节点是可见的。可使用多种不同的模型来选择要与其发生交互的节点;例如,tab键可循环通过节点,或者在鼠标指针下的节点可以是目标。在任何情况下,作为用户交互的候选的节点数与所呈现的节点在同一数量级上,因而是有限的。可使用类似于上述呈现函数的方法来将用户交互消息传递到节点,节点可影响其将来的行为或外观。这一体系结构因而足以允许节点是完整的软件应用程序而不仅仅是静态可视对象。
除了查看节点以及与节点交互之外,用户可使用连续的缩放和扫视操作来导航。放大意味着逐渐扩大显示器上可见的内容的一部分以使其占据显示器上的更多区域;较小的物理区域然后是可见的,但是更详细。缩小是相反的操作。由于假定全域的物理维度是有界的,因此缩小是有界操作:一旦整个全域可见,进一步的缩小不能将任何新内容带入视图,而是仅仅将全域收缩到小于整个显示器的区域。因此自然的是将根节点定义为包含整个全域;它具有当完全被缩小时可见的子节点,这些子节点具有它们自己的子节点,依此类推。由于在几何上子节点必须在父节点的边界内,因此子节点一般小于父节点。然而,每一节点具有其自己的局部坐标***,因此这一构造允许甚至更精细的坐标***的层叠,且由此允许可能无限的空间分辨率的全域。这意味着放大不是有界操作:如果节点图具有循环,则可在“内容循环”中永远放大;或更有趣的是,节点图可具有非常大的或甚至无限个节点,从而允许在始终查看新内容的同时无限地放大。
为使该体系结构真正地允许无限分辨率,必须能够有效地扫视、缩放和呈现显示,而无需在任何时刻遍历(可能无限的)节点图。已看到如果最初在该节点上调用RenderNode函数,则由显示器上可见的节点占据的区域的呈现可在有限时间内发生。现在必须解决一般如何能够在动态缩放和扫视期间找到可见节点的问题。
这可用向节点结构添加字段并添加额外的地址栈数据结构来实现。扩展的Node定义为:
Structure Node{
Rectangle coordSystem;
Collection<ChildReference>children;
Rectangle view;
}
该新的view字段在节点坐标中表示节点的可见区域一即节点坐标中显示矩形的图像。该矩形可以仅部分地重叠由coordSystem定义的节点区域,如节点部分地在屏幕外的时候那样。很清楚,view字段不能总是保持对每一节点都更新,因为不必在有限时间内遍历整个节点有向图。
栈结构定义如下:
Stack<Address>viewStack;其中该栈是客户机(连接到显示器的计算机)的全局变量。为示例性的目的,假定导航以由根节点定义的内容全域的概观开始;然后该根节点被压入viewStack,且根节点的view字段可被初始化为根节点的整个区域,即
rootNode.view=rootNode.coordSystem;
Push(viewStack,rootNode);
示意性地,viewStack将指定由点“刺穿”的节点序列相对于显示器的地址,该地址将在本示例性实现中用作显示器的中心。该序列必须以根节点开始,但是可以是无限的。因此必须截断该序列,并且使用RenderNode中使用的同一准则来完成:序列在“刺穿”的节点变得小于某一最小大小,如上定义为minimumArea时停止。然后,当前视图由viewStack中所有节点的view字段来表示,其每一个按照节点的局部坐标***指定了当前视图。如果用户对全域进行了非常深的放大,则显示的详细位置将由栈中最后一个节点的view字段最精确地给出。然而,最后一个元素的view字段没有指定用户相对于整个全域的视点,而是仅指定了相对于其局部坐标的视点。另一方面,根节点的view字段指定了用户正在查看全域中的何处,尽管由于舍入和离散化误差根节点的view.lo和view.hi可能已折叠到一点,且该点将仅是对真实视图位置的有限精度逼近。由此,较靠近viewStack的“精细端”的节点以递增的精度但相对于全域中逐渐变小的区域指定了视图位置。
在本文中要注意,先前所定义的RenderNode函数的单纯实现是有缺陷的,因为CalcRectangle函数渐进地使用递归地向下传递的所遍历的每一节点的placement字段和onDisplay自变量来计算显示与从根节点开始的每一节点的重叠。在深度缩放中,精度的逐渐丢失会使得该计算无法给出正确的结果。在一种经纠正的版本中,CalcRectangle函数简单地用节点的view字段来替换。然后该问题缩减为以下:所有可见节点的视图(即,view字段)必须保持与用户导航全域、扫视和缩放同步。无法使它们保持同步会导致节点的外观在显示器上独立于彼此地移动,而非作为结合在一起且物理上一致的2D表面来表现。
在任何导航操作起见改变视图如下进行。由于viewStack中的最后一个节点具有该视图的最精确表示,因此第一步是改变该最后一个节点的view字段;该改变的视图被认为是正确的新视图,且任何其它可见节点必须遵从。第二步是将新视图向根节点“向上”传播,这需要对栈中较早节点的view字段进行逐渐越来越小的改变。如果用户进行深度缩放,则在向上传播中的某一点,对视图的更改可以很小,使得它停止从而可被准确表示;向上传播在这一节点处停止。在向上传播的每一阶段,改变也使用未经修改的RenderNode伪代码的方法向下传播到其它可见节点。因此,首先修改最后一个节点的父节点的视图;然后在向下传播中,修改最后一个节点的“兄弟节点”。下一向上传播修改祖父节点的视图,且第二个向下传播修改第一个叔父节点,然后修改第一个表兄弟节点。向下传播如前一样在“表兄弟节点”的面积变得小于minimumArea时、或在节点完全落在屏幕之外时暂停。
扫视操作可将最后一个节点移得足够远使得它不再属于viewStack。或者,放大可将最后一个节点的子节点放大到超过minimumArea,从而需要延长viewStack,或者缩小可能使最后一个节点的面积变得小于minimimArea,从而需要截断viewStack。在所有这些情况中,最后一个节点的身份改变。这些情况在向下传播期间被检测到,这可相应地改变viewStack,从而可能使其更长或更短。
这一概念的扩展是避免响应于长时间缩小立即截断viewStack。截断viewStack仅在用户然后扫视时才必要。尽管长时间缩小将导致深度缩放的节点的view字段变得非常大(因此在数值上不准确),但可将字段
Point2D viewCenter;添加到Node结构中,从而表示view矩形的中心点;因此,没有扫视的缩放不会更改任何节点的viewCenter字段。这一构造允许在放大回来之后立即进行程度大的放大。由于viewStack保持不变,因此用户然后可返回到先前的起始视图。这一行为类似于web浏览器的“后退”和“前进”按钮: “后退”类似于缩小, “前进”类似于放大回来。在web浏览器中,如果用户使用“后退”来返回到前一网页,但是然后点击另一链接,则在这一点处“前进”不再起作用。之后点击另一链接因此类似于在缩小之后扫视。
Zeno高速缓存:
一种用于增加对于可变可压缩数据对象的最近最常使用(MRU)高速缓存的
有效性的***
介绍
级数y(n)=n^-p的无穷和对p>1是有穷的,其中n从1到无穷大。类似地,y=1/b^n的和对b>l是有穷的。 (例如,在后一情况下,如果b=2,则该和恰好为2。)像这样的收敛级数的概念可用于实现称为Zeno高速缓存(以著名的Zeno悖论来命名)的高度有效形式的数据高速缓存。Zeno是非常快以致于一步(为辩论起见,可认为他每秒跨一步)就跨越了到任何跑道的终点的距离的一半的奔跑者;当然,悖论是尽管每一步都向前进,但他永远不能跑完该路程。该悖论容易地相关于以上b=2且从n=2到无穷大求和的1/b^n级数。
现有技术
“MRU高速缓存”是一种用于在客户机-服务器***中实现客户机方存储器的公知概念,其中MRU代表“最近最常使用”。假定服务器能够访问客户机并能够向其提供大量数据对象,这些数据对象总计占据了大量存储器。然而,客户机和服务器之间的可用带宽是有限的,因此对从服务器发送数据对象的客户机请求要花费时间。如果对数据对象的访问是合理地“相干的”,这意味着客户机当前需要的对象可能在不久的将来会再次需要,则MRU高速缓存是一种极大地提高客户机-服务器***的效率的方式1。其理念是客户机留出某些有限量的存储器(一般比储存服务器上的所有对象所需的要少得多),并在该存储器中储存与适合的一样多的最近最常请求的对象。当新对象从服务器发送到客户机、且客户机的高速缓存空间已被用尽时,从高速缓存中擦除最近最少使用(LRU)对象以留出空间。将参考高速缓存的LRU和MRU端;对象总是在MRU端添加,并从LRU端擦除。 (注意,
———————
1本领域的技术人员可以理解如上所述的相干性的概念的推广。高速缓存可在其中对一个对象的客户机请求影响不久的将来请求其它对象的可能性的概率分布的任何情况下提供性能优势。直接MRU高速缓存对其中该变更仅仅被建模为再次请求同一对象的增加的可能性的情况进行优化,但是存在推广且本发明可延及这些推广。
存储器中对象的物理布局无需对应于LRU-MRU布局;该体系结构仅要求使客户机可能以此处所描述的方式找到、***和擦除对象。线性LRU-MRU排列仅仅是一种概念上的方便。)当客户机需要数据对象时,则客户机首先检查该对象是否被高速缓存。如果是,则使用高速缓存的表示,从而消除了对昂贵的服务器请求的需要;通常,利用高速缓存的表示也将该对象“提升”到高速缓存的MRU端。该方案的性能优势是显而易见的。
Zeno高速缓存概念
在某些情形中,所提供的数据对象是可压缩的,对于本文的目的而言这意味着要受到有损数据压缩技术的作用。有损数据压缩的特征在于用比完全表示少的字节来表示数据对象的能力;较高的压缩比(意味着更多压缩)对应于较高的失真或较低的质量。对于Zeno高速缓存,数据和相关联的压缩算0法的本质应具有以下特征:
必需一数据的经压缩形式应当适用作未压缩数据的替换。在特定失真水平下,压缩表示可以是完全适当的,而在特定失真水平之上,它们作为当客户机等待未压缩的、无损的或更高质量形式的数据时的权宜之计可以是适当的。
在一个增强的实施例中,较低质量的表示是较高质量表示的子集,这意味着在客户机方使用服务器方可用的附加信息来改善表示质量只需发送丢失的数据或差异,而不重发整个新版本数据。这避免了冗余并因此大大提高了效率。
以上增强实施例通常还意味着降低对象的表示质量仅仅涉及丢弃某些数据而无需重新压缩。该特性对于效率也是重要的。
在一个增强实施例中,压缩技术从有损换算到无损(即,完美的或零失真的表示)。与上述增强实施例组合,这允许从高度有损到无损以相对于最初跨无损形式发送的极少或无额外总成本地逐步地构建数据对象的完美表示。
满足以上所有要求的数据类型和压缩技术的一个示例是以JPEG2000标准为代表的图像的小波压缩。
给定这些特性,如果存储器是“连续的”(即,没有离散化成字节),则理论上有可能仅通过实施对象的经压缩大小遵循如在本讨论的开头给出的收敛级数的约束、而在有限量的存储器中高速缓存无限个数据对象。最近最常使用对象以低失真来表示,而最近最少使用对象逐步被压缩得更多。所有对象的大小之和仍可以是任何有穷数,如以下所示出的。
在实践中,该方案出于以下两个原因必须被修改:
存储器是离散的,使得例如在实践中将对象压缩到小于1位的表示通常是无意义的。
强迫由以上收敛公式之一描述的压缩比的连续曲线将要求访问高速缓存中的每一对象并在每次需要释放某一空间时减小其表示大小;这在理论上是无限次的操作(在实践中,可以是大量操作)。
实际版本
高速缓存中对象的个数实际上是有限的,但是通过使用Zeno高速缓存概念,这一数目可以比对常规的MRU高速缓存可行的要大得多。此外,高速缓存的对象具有以下特性:如果最近被使用则将在高速缓存中以高质量表示,且如果对象最近未被访问,则该质量将逐渐降低。在这一意义上,Zeno高速缓存可能更像人类记忆那样来工作。
由于存储器是离散的且存在最小压缩大小,在该最小压缩大小之下压缩表示对用户没有任何价值,因此高速缓存的表示将服从最小压缩比。由此,假定对象大小都相等(当然,它们无需相等),则可被储存在高速缓存中的对象的绝对最大个数是高速缓存大小除以该最小压缩大小。
有许多方式来设计由早先给出的理论公式之一(或任何其它收敛和)定界在上方并且因此也具有有穷和的级数。也可引入一附加的约束:任何给定值顺序地重复的可能性按使用相当少量的离散值y的方式以更高的n增加。这一级数的一个示例是
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、2个1/4、4个1/16、8个1/64等的和为2,正如y=1/2^n一样,但是如果将该级数取到n=16000,则仅使用大约log2(16000)即14个y值。在n=100万时,仅使用约20个值。这意味着当必须释放高速缓存中的空间时,只需进行少量的操作来保持高速缓存的当前内容“符合”其限额一大部分已经被压缩到正确的大小。
许多其它序列也满足必要的准则。另外,有可能使用理论上不收敛(即,其和是无穷的)的级数,因为在实践中在任何情况下都对有穷个数的项求和。
推广
随机推广。可使用随机算法来以多种方式改进该基本算法。以上2*1/4、8*1/16等级数的主要缺点来自于其强度一其少量的假定值。也可使用随机选择来以加权方式“挤压”高速缓存元素的一随机子集,直到释放了某一目标量的空间。这能起作用是因为高速缓存中的确切位置对于大n变得越来越不重要。挤压量(在某种程度上)也可以是随机的。使用像这样的随机方法可消除对象质量中明显的不连续性或阈值。
除了仅仅MRU/LRU之外,高速缓存还可涉及关于接着可能需要哪些对象的智能猜测;由此较不可能需要的对象可在具有将来需要的较高可能性的对象之前“挤压”。这可与随机算法相结合。
权利要求书:
基本如所描述的一种MRU/LRU高速缓存***。
用于对大文本、元数据和其它相干访问非图像数据进行空间编码的方法
近来,已引入了诸如JPEG2000/JPIP1等图像压缩标准来满足所需的工程目标:使得非常大的图像(例如,大小为千兆像素)能够通过低带宽通信信道从服务器递增地或选择性地递送到客户机。当以全分辨率查看这些图像时,在任何给定时刻仅有限的区域可适合客户机的图形显示器;新标准朝向选择性地访问这些区域并通过通信信道仅发送与该区域相关的数据来调整。如果该“感兴趣的区域”,即ROI连续地改变,则客户机和服务器之间通过低带宽信道的连续对话可继续将该区域的客户机表示保持在ROI准确度之内。
本发明涉及这些可选择性解压的图像压缩和传送技术对于文本或其它非图像数据的扩展。在最简单的例示中,想像例如James Joyce的书Ulysses等大文本。可通过将每一章节放入其自己的列来格式化该文本,其中对顺序章节的列从左到右排列。列被假定为具有以字符为单位的最大宽度,例如100。图2示出了以此方式编码为图像的整个Ulysses文本,其中每一文本字符对应于单个像素。图1中的像素强度值简单地是对应字符的ASCII码。由于灰度级像素和ASCII字符都适合8位(值0-255),因此像素值与字符之间的对应性是相当自然的。Ulysses以普通ASCII表示(即,作为.txt文件)的全部文本是1.5MB,这可能太大以致于无法通过窄带宽通信信道整体传送。被编码为无损JPEG2000的图1的ASCII文本图像是2.2MB。如果书的字符在长度上更多地是相等的,则该大小在某种程度上可被减小,导致文本图像中较少的空余空间(编码为0)。然而,比总体文件大小重要得多的是普通的JPIP服务器向客户机选择性地且递增地提供该文件的能力。以足以阅读字符的缩放水平(这要求客户机方显示器上多于1像素/字符)查看该文本的任何客户机可使用JPIP来仅请求文本的相关部分。该操作是高效的,且在使得无法下载整个文本的条件下,甚至对于到服务器的非常低的带宽连接,对该文本的读者也可实现足够的性能。
注意,可使用特别为对大文本的选择性访问而设计的客户机/服务器技术来实现类似的效果,但是文本图像方法(如此称呼它)具有优于常规实现的多个优点:
———————————
1例如参见David Taubman的Kakadu实现,www.kakadusoftware.com。Taubman是JPEG2000 ISO标准委员会成员。
它使用为非常大的数据量设计的现有技术和协议
它容易地按比例放大到大小为许多千兆字节或更多的文本,而没有任何性能降低
由于访问固有地为二维的,因此在许多情况下(例如,当文本如在Ulysses情况中那样要按列查看时)该方法比将文本作为一维串来处理的方法要高效得多
由于在JPEG2000中使用了小波,因此文本服从多分辨率表示;尽管文本不能以除最终(最详细)分辨率之外的分辨率来阅读,但是对较低分辨率小波的较宽的空间支持自然地为靠近感兴趣区域的文本提供了智能的客户机方高速缓存;在滚动期间移动ROI因而是高度有效的。
扩展该方法来处理格式化文本、Unicode或其它元数据是直截了当的,因为所有这些数据都可使用可能带有嵌入的转义序列的ASCII文本串来表示。
在许多应用中,JPEG2000用作一种有损压缩格式,这意味着解码的图像字节不必与原始字节相同。很清楚,如果图像字节表示文本,则有损压缩是不可接受的。然而,JPEG2000的设计目标之一是有效地支持无损压缩,因为这在成像领域的某些分区(例如,医学和科学)中是重要的。与通常能按24∶1来容易地压缩的视觉上可接受的有损图像相比,用于照片图像的无损压缩比通常仅在2∶1左右。
有损和无损图像压缩可在具有良好空间连续性的图像上最佳地操作,这意味着相邻像素的强度值之间的差异被最小化。原始的ASCII编码从这一观点来看很明显不是最优的。改进该编码的一种非常简单的方式是在文本中按照频率对字符重新排序,或者简单地在英语语言中,从最高频率到最低频率重新排序:代码0保留空白间隔,代码1变为间隔字符,代码2及之后的代码为e、t、a、o、i、n、s、r、h、1等。图2和3将文本图像与ASCII编码以及这种字符频率编码进行了比较。很清楚,像素值往往在O附近聚集;至少重要的是,一个字母和下一字母之间的差异往往被显著减小。当该频率编码的文本图像被无损压缩为JPEG2000时,文件大小是1.6MB,仅仅大于原始的ASCII文本文件(1.5MB)且比ASCII编码的文本图像小37%。采用对字母编码的进一步优化,经压缩文件大小可较好地下降到ASCII文本文件大小之下。进一步优化可包括但不限于:
使用字母转换概率(Markov-1)而非仅频率(Markov-0)来形成编码
将一个字符和下一字符之间的增量或差异而非字符本身编码为像素。
采用这些增加的优化,对先前列出的优点增加的是在服务器方,准备好以此方式提供的文本实际上相对于原始ASCII进行了压缩。
本发明此处是在JPEG2000/JPIP上下文中作为选择性的图像解压技术来讨论的,但是没有关于本发明的任何内容将其限于特定的格式或协议。例如,LizardTech的MrSID格式和协议具有类似的特性,且也能起作用。
图1完整的Ulysses文本图像,原始ASCII编码(白=O,黑=255)
图2 Ulysses的前5个字符(截断)的文本图像。原始ASCII编码:白=O,黑=255
图3按照频率编码的U1ysses的前5个字符(截断)的文本图像(最简单的重映射)
权利要求书:
一种对大文本等进行空间编码的方法,包括将多个字符中的每一个的ascii值编码成一强度水平。
用于虚拟书、向导或幻灯片的非线性高速缓存
本发明涉及用于由计算机访问通常为图像的虚拟数据的新颖方法。它适用于其中可视内容由以某种确立的次序一次查看一个或几个的一系列对象构成的任何情形。
级数y(n)=n^-p对p>l的无穷和是有穷的,其中n从1到无穷大。类似地,y=1/b^n的和对b>l是有穷的。 (例如,在后一情况下,如果b=2,则该和恰好为2)。像这样的收敛级数的概念可用于实现一种高效形式的数据高速缓存,如先前提交的临时申请,即附加的展示A中所描述的。它尤其适用于虚拟书(或“电子书”)、“向导”(在图形用户界面的意义上,表示用于执行多步骤过程的交互式窗口的线性进展的术语)、虚拟幻灯片或其它类似的基于虚拟内容的时间进展的显示。
现有技术
例如ACD Systems的ACDSeeTM等某些流行的图像浏览应用程序实现“向前读(read-ahead)”和“向后读(read-behind)”策略来避免虚拟图像幻灯片演示期间响应性的闪烁或缺乏。这涉及除当前图片之外还加载并解压演示中的下一和前一图像文件。当用户按下一个键时,定时器到期或者某一其它事件发信号通知图像改变,所显示的图像立即用“在后方等待”的下一图像来替换,且读取并解码后面的图像以准备好下一次转换。旧的前一图像一现在有两个图像在后面一通常从存储器中擦除,从而保持存储器中的图像数为3。“向后读”相反允许即刻用前一图像替换屏幕上的图像。实际上,该策略使得计算机总是“准备好”显示下一或前一图像(除非用户的帧前进速率超过了计算机的图像解码速率)。如果没有向前读,则当用户请求下一图像时,计算机一般必须延迟响应直到下一图像已被读取和解码,或者在解码下一图像时增量地更新显示,这通常导致闪光、闪烁或以其它方式分散注意的转换。这些损害对用户而言都是令人讨厌的。
向前读/向后读的不利方面如下:
- 用户不能在不消除好处、重新引入延迟、缺少响应性或闪烁的情况下向前或向后跳过一个以上图像;
- 如果用户比图像可被完全解压的速率更快地在图像中向前或向后移动,则该好处再一次被消除;
- 存储器使用是保持当前图像所需的三倍(假定所有图像大小相同)。
发明细节
本发明结合多分辨率成像扩展了向前读/向后读的概念。多分辨率成像能以分辨率阶梯来解压,例如全大小、半大小(在每一边上)、四分之一大小、八分之一大小等等。一般而言,以1/8大小解压图像所需的时间应当是以全分辨率解压该图像所需时间的1/8;并且当然,需要1/8的存储器来保持1/8大小的图像。
在其最简单的例示中,本发明涉及在存储器中保持当前图像的完整表示、下一和前一图像的半大小表示、前一图像之前和下一图像之后的图像的四分之一表示,依此类推。可以容易地验证,图像大小的双边无穷和是...+1/16+1/8+1/4+1/2+1+1/2+1/4+1/8+1/16+...=3。因此,存储要求与普通的向前读/先后读的要求相同。然而,在理论上,任何演示中的所有图像(或者从数学上来说无穷数目的图像)是以某一分辨率来表示的,虽然该分辨率可能非常低。在实践中,有限的图像大小和离散的存储器意味着仅有有限数目的图像适合,但是该数目可能相当大。在某些应用中,可能期望仅高速缓存接下来的图像,或者仅高速缓存先前的图像;这些情况求和为2而非3。分辨率级数可被定义为函数r(i),其中整数i=...,-3,-2,-1,0,1,2,3,...表示相对于当前图像i=O在图像队列中的位置。 (因此,i=1是下一图像,而i=-1是前一图像)。具有r(0)=1,如果i不等于0则r(i)<=1,且r(i)不随绝对值|i|的增加而增加的一般特性的其它分辨率级数也可以是适当的。甚至r(i)的和不收敛到有穷数的级数也可能是合适的,因为在实践中通常不会有无穷数目的图像。
这一图像的多比例表示必须与多分辨率呈现方案相耦合来允许客户机或查看者即时响应于用户请求切换图像。这一呈现方案简单地对图像的较低分辨率表示进行内插或“向上采样”以在高分辨率屏幕上显示。当另外的更高分辨率图像数据变得可用时,显示器然后必须动态地细化以反映该新的较高质量的数据。该细化可以是瞬时的,或者它可使用逐渐混和技术或掩盖从低到高视觉质量的转换的其它技术来实现。一般而言,从非常低分辨率的图像数据内插得到模糊的外观。如果高分辨率成像替代了低分辨率的内插成像、随时间的推移而混和,则感知效果是使图像看似“逐渐聚焦”。
在转换到一不同的图像之后,查看者或客户机必须向服务器请求附加数据或从文件加载附加数据,以改善新的当前图像以及周围图像(如果是前进图像,则通常是新的下一图像,或者如果后退,则是新的前一图像)的质量。当当前图像改变时也可丢弃不需要的高分辨率数据以保存总的存储器占用区(footprint)。
该方案具有优于传统的向前看/向后看方案的许多优点,包括:
- 用户可一次向前或向后跳过任意数目的图像一较大的跳过仅仅导致新图像的较模糊的初始外观;
- 存储器占用区可以不比传统方法大,且甚至可通过使得函数r(i)更急剧地下降,例如1/64,1/16,1/4,1,1/4,1/16,1/64,...而更小。
- 用户能够“翻阅”图像的速率是不受限制的;迅速翻阅仅仅导致翻阅期间的模糊外观。由于对移动视觉刺激中细节的感知的心理学限制,翻阅期间该模糊性的部分或全部甚至可保持对用户不可见。
扩展
尽管以上讨论专门涉及改变图像分辨率,但是注意存在可使用更多或更少数据来表示图像的其它渐进式分解方案,且当附加数据变得可用时图像质量有动态改善。例如,在基于变换的编码中,附加的变换系数可逐渐改善质量。以上所述的方法自然地延及这些其它渐进式(尽管不必是多分辨率的)方案。
以上所述的本发明适用于线性图像序列,但是它可延及图像的“图”,即其中一个图像之前或之后可以(可能通过用户选择)有一个以上可能的下一或前一图像的图像集合。在这一情况下,原始函数r(i)可经由一次转换、两次转换等应用于可能在当前图像之后的所有图像;或者可以有优先级地对通过图像集的特定“路径”加权;或者可根据某一分配算法使用约束在所有可能的前导或后继图像中分配某一固定量的存储器。
最后,尽管以上讨论假定图像是静态的且先前已被压缩,但所描述的所有技术同样适用于其中图像内容被动态生成的情况,这表示计算或程序或小程序的可视界面的输出。在这一情况下,计算、程序或小程序必须能够将其自身呈现到大或小“可视显示”上,即以不同的分辨率来呈现(或使用某一非像素表示以变化的程度粗略或精细地呈现其自身)。如同图像一样,情况必须是程序以四分之一大小呈现其自身所花费的时间大约是它以全大小呈现所花费的时间的四分之一。
权利要求书:
一种方法,包括高速缓存图像,所述高速缓存的步骤是非线性的。
用于与具有大量潜在大图像的动态、远程相册有效交互的方法
诸如JPEG2000/JPIP1等近来开发的图像压缩和传送标准允许通过窄带宽通信信道来对大图像(即,大小为千兆字节)进行交互式显示。然而,这些新兴标准和技术未提供用于实现更热望目标的任何显而易见的手段:允许同时与非常大量的图像进行灵活的可视交互,其中每一图像也可能非常大。本发明允许这样的交互。以下情形既使得该***的技术能力变得具体,又描述了通过该技术允许的某些应用。
情形#1a。用户将其整个数字照片(每张有5兆像素)集合保存在其笔记本计算机的硬盘上。她是一个殷切的摄影者,且在若干年之后,该集合总共有25,000个图像。她使用本发明来组织该整个集合,并且能够动态地重新排列照片以将它们按照日期、大小、颜色或其它特性来分类,并提取子集。当查看该整个集合时,她可平滑且连续地缩小直到所有照片都看得见2、放大以查看单张照片的细节、或缩放到任何中间视图。
情形#lb。情形1#a的用户可将其家庭计算机配置为服务器,并且然后如在情形#1a中那样从远程客户机计算机导航整个照片集合。
情形#2a。一个艺术博物馆投资于对所有其油画的高分辨率扫描(100兆像素及以上),并将以几十个或几百个这样的油画为特色的在线展示在空间上用描述性标题组织而放在一起。使用本发明,该展示不仅可从图书馆内本地访问,而且甚至通过低带宽通信来浏览该集合的远程用户也可如在情形#1a和#1b中那样扫视和放大或缩小以导航这些素材。
情形#2b。艺术博物馆创建了表示博物馆建筑物的虚拟三维空间,该3D模型内所有艺术品的高分辨率扫描都在其“地理上正确的”位置上。或者,三维虚拟博物馆空间可不用物理对应物来创建。这些3D模型可按类似于情形#2a的2D形式的方式本地或远程导航。对放大的二维操作的模拟是移至靠近图像表面,并且缩小类似于从图像表面移开。
————————————
1例如参见David Taubman的Kakadu实现,www.kakadusoftware.com。Taubman是JPEG2000 ISO标准委员会成员。
2假定显示器是高分辨率的(1920x1200=2.3兆像素),则同时查看25,000个图像的整个集合给出每一图像大约为92个正方形像素,因此每一“缩略图”约为一边有sqrt(92)=9.6像素。令人惊讶的是,甚至这些非常小的缩略图也通常能够暗示图像上的字符,且至少来自具有相似色域或成分的细节的图像将可被清楚地识别。
情形#2c。博物馆还以非常高的分辨率扫描了其14世纪的祈祷书,从而得到>100兆像素的数百个图像。这些图像被组装成一“虚拟书”,它是在线可用的对原始图像的高质量代用物。该书可用三维中可翻动的页面来本地或远程导航。
JPEG2000/JPIP中与允许本发明有关的关键特征是:
多比例图像表示,使得能够以低于全分辨率的分辨率阶梯解压图像文件。在大多数情况下,这些分辨率按照2的幂从原始图像向下采样,例如,如果原始图像是512×512像素,则256×256、128×128、64×64、32×32、16×16、8×8、4×4、2×2和1×1表示也是可用的。1×1形式仅仅是对应于整个图像的平均色的单个像素值;逐渐变高的分辨率逐渐增加更多细节。对于某些图像,最低分辨率(例如,4×4、2×2和1×1)可能不是可用的。
选择性地仅以给定分辨率解压图像的一部分(称为“感兴趣的区域”,即ROI),例如来自512×512图像的256×256分辨率的32×32像素部分的能力。
在服务器上有效地执行该多比例选择性解压(即,不解析整个图像文件),以及仅向远程客户机提供重建感兴趣的区域和分辨率所必需的限量信息的能力。所发送的信息量应当大致与ROI的大小成正比。
满足这些要求的任何其它图像压缩格式/协议都是同等适用的。在理解它如JPEG2000那样可以是基于小波的,或基于某一其它技术的基础上,将图像格式简称为“多比例”。
本发明定义了可在各种配置中用于实现以上列出的情形的预先计算的步骤和交互式呈现算法。所有这些情形涉及用户与图像“全域”的交互;因此用于预计算的起始点是引用个别图像的文件名、URL或其它字符串的列表。当用户缩小得足够远来一次性查看所有这些图像时,客户机或服务器遍历所有图像文件是不切实际的,因为可能有非常大量的图像。例如,在个别图像占据屏幕上2×2=4个像素的状况中,视图中可以有几万或几十万个图像;即使这些图像支持有效的低分辨率访问,仅仅打开和关闭100,000个文件也涉及大的额外开销且不能在交互式时间尺度上实现。因此,有必要使用这些图像的低分辨率版本的高速缓存的表示,称为“综合画”。综合画是以低分辨率呈现且被有效地填塞到一矩形区域中的所有图像的镶嵌或拼贴,如图1所示。可被嵌入综合画图像文件或单独储存的辅助元数据用特定图像文件标识了综合画图像上的矩形区域。
图1被填塞到综合画中的多于1000个图像(各种大小的数字化地图的集合)
在本发明的最简单实现中,综合画图像本身可使用缩放和扫视界面来导航。当用户放大得足以用尽综合画图像中可用的分辨率时,元数据将客户机指引到个别图像文件,且客户机使用来自这些文件的成像来以更高分辨率呈现。选择以像素为单位的总综合画大小以使得其分辨率在其中仅有几个图像同时可见的阶段中仅在放大期间被用尽;因此从不需要一次访问多于几个图像。在随后的缩放和扫视期间,图像流按需打开和关闭以限制任何给定时刻打开的数目。
该导航许多高分辨率图像的最简单方法遭受一个主要缺点:综合画布局是为填塞效率而设计的,但是用户可能希望屏幕上有不同的视觉排列。此外,用户可能希望能够在屏幕上动态地重新排列图像布局。为了允许这一情况,可利用称为“纹理映射”的图形呈现技术,该技术可用软件来实现,但是一般在现代的个人计算机上被硬件加速。纹理映射允许“纹理”或源图像的一部分被绘制在显示器上、可任选地重新按比例缩放该图像、旋转该图像、并执行三维透视变换。其它硬件加速变换常常也得到支持,包括色彩校正或改变、全透明或部分透明、采光、遮盖、以及坐标重映射。综合画的低分辨率版本可用作“纹理”,使得当用户放大时,综合画中的个别图像可用任何方式动态地重新映射,如图2所示。可使用一个以上纹理映射,在这一情况下,每一纹理映射可以是包含图像的一个子集的综合画。
在另一增强实施例中,纹理映射技术(一般仅适用于一个或多个综合画图像的低分辨率呈现)可仅在动态重新排列期间使用;当图像排列为静态时,可使用软件合成组装屏幕上更高清晰度重新排列的综合画的全部或部分。该软件合成方法与美国专利申请No.10/790,253中描述的惰性多分辨率呈现技术相组合尤其有价值,该专利申请的副本此处作为展示A来提供。该方法实际上通过重新排列原始的综合画的成像创建了新的“显示综合画”。
有可能使用这种综合画重新排列来支持对图像的重新组织而无需求助于纹理映射。在这一情况下,排列之间的转换可以是或可以不是动画的。
进一步扩展
纹理映射、软件呈现或两者的任何组合可用于在三维而非平面上呈现成像。三维中的动态重新排列也是可行的。三维应用包括虚拟图库或其它走查环境以及虚拟书,尤其是当结合由申请人与此同时提交并作为展示B附于此的共同待决的临时申请中所描述的发明使用的时候。虚拟书应用在图3中示出。该示例也示出了该方法的扩展,其中用于局部透明度(粗糙边缘)的阿尔法通道作为除红、绿和蓝色色彩分量之外的图像信息来储存。硬件加速的纹理映射的大多数实现都支持阿尔法通道。在2D或3D中适用的另一扩展是图像的动态变形,例如当翻书时使该书的页面弯曲。
图3 3D书
本发明也可被扩展成支持除静态图像之外的可视对象,诸如可视计算或应用程序或小程序的输出。
权利要求书:
一种方法,包括在动态重新排列期间执行纹理映射以及当这一动态重新排列停止时停止这样的执行。
用于将地理空间或其它向量数据作为图像来编码和提供的方法
近来,已引入了诸如JPEG2000/JPIP1等图像压缩标准来满足所需的工程目标:使得非常大的图像(例如,大小为千兆像素)能够通过低带宽通信信道从服务器递增地或选择性地递送到客户机。当以全分辨率查看这些图像时,在任何给定时刻仅有限的区域可适合客户机的图形显示器;新标准朝向选择性地访问这些区域并通过通信信道仅发送与该区域相关的数据来调整。如果该“感兴趣的区域”,即ROI连续地改变,则客户机和服务器之间通过低带宽信道的连续对话可继续将该区域的客户机表示保持在ROI准确度之内。
本发明涉及这些可选择性压缩的图像压缩和传送技术对于地理空间(geospatial)或图解数据的扩展。它组合并扩展了在先前的申请(1)作为展示A附加的Method for spatially encoding large texts,metadata,and other coherentlyaccessed non-image data(用于对大文本、元数据和其它相干访问非图像数据进行空间编码的方法)以及(2)作为展示B附加的METHODS AND APPARATUS FORNAVIGATING AN IMAGE(用于导航图像的方法和装置)中介绍的方法。在(2)中,介绍了连续的多比例道路地图呈现的概念。对于发明(2)的基础是以不同分辨率预先呈现的道路地图或其它基于向量的图的图像的“栈”,其中可视元素的类别(例如,道路类别,包括国家高速公路、州高速公路和地方道路)用不同的视觉权重以不同的分辨率来呈现。在客户机/服务器交互期间,下载一个以上这种图像的对应区域,并且客户机的显示器示出这些区域的混和组合;混和系数和要混和的图像分辨率的选择取决于缩放比例。最终结果是客户机方的用户可导航大地图(例如,美国所有的道路)、连续地缩放和扫视,而不经历任何视觉不连续性,诸如当缩放比例改变时道路类别出现或消失。相反,在每一比例下,强调最相关的类别;例如,当缩小以查看整个国家时,最大的高速公路被强烈地加权,从而使得它们清晰地突出,而在州级别时,次要的高速公路也被强烈地加权到足够清晰的程度。当用户放大到使用最详细的预呈现图像的点时,所有道路都清晰可见,且在用于地理空间数据的该较佳实施例中,所有元素以接近其物理上正确的比例示出。用于这些
—————————
1例如参见David Taubman的Kakadu实现,www.kakadusoftware.com。Taubman是JPEG2000 ISO标准委员会成员。
最详细预呈现图像的最大合理分辨率是约15米/像素;然而,从用户观点来看,期望能够更大程度地放大。以更高的细节预呈现出于以下若干原因是不合需要的:首先,因为服务器方的文件大小变得过大(15米/像素的单个普通横向Mercator区图像可能已经是千兆像素的范围);其次,因为预呈现图像是对于通常与高分辨率地图呈现相关联的非常粗略的那类黑白数据的低效表示;第三,因为客户机可能需要“真实的”向量数据来执行除静态可视演示之外的计算任务。例如,路线指南***可能突出道路或改变其颜色;与单独的预呈现图像相反,这仅当客户机能够访问向量数据时才能在客户机方完成。向量数据也可包括街道名、地址以及客户机必须能够灵活地布局并选择性地呈现的其它信息。将街道名标签预呈现到地图图像栈中很明显是不合需要的,因为这些标签必须取决于精确的位置和客户机视图的比例在不同的地方且以不同的大小绘出;不同的标签呈现不应在用户缩放时被彼此混和。预呈现这些数据也将消除对于字体的任何灵活性。
总而言之,向量数据(一般使用这一术语来指几何学信息和诸如地名等其它信息)在所需的呈现分辨率较高时因其本身的权利对客户机是重要的,同时是比预呈现成像更有效的信息表示。然而,注意,如果要以低分辨率呈现大区域,则向量数据可能变得过大且过于复杂,从而使得预呈现图像成为更高效的表示。然而,即使是在低分辨率下,向量数据的某些子集也是必需的,诸如主要高速公路的名称。
本发明扩展了(1)中所介绍的方法以允许空间向量数据被编码并可能连同(2)的预呈现成像一起被选择性地且递增地发送到客户机。使用现有技术,这可使用地理空间数据库来实现。数据库需要包括在空间上索引的所有相关的向量数据。这些数据库提出了许多实现上的挑战。此处,代替使用常规的数据库,使用诸如JPEG2000/JPIP所支持的空间可寻址图像来编码和供应向量数据。
在本示例性实施例中,使用三个图像或通道来表示地图数据,其每一个的深度为8位:
根据(2),预呈现层是道路地图的预计算文字呈现;
指针层由位于或非常接近它们所引用的道路地图特征(通常是交点)的2*2个像素块构成;
数据层由在引用它们的2*2个指针上居中或靠近该指针定位的n*m个像素块构成。
由于这三个通道大小相同且彼此对准,因此它们可用不同的颜色(在计算机显示器上为红、绿、蓝,或者对于打印介质为青、品红、黄)来覆盖以产生单色图像。这些图像在图2-3中再现。图1示出了单独的预呈现层用于比较和定向。所示的地区是华盛顿州的King County,它包括西雅图和许多其市郊。图3a和3b分别是该地图的市郊和市中心区域的特写。
图1预呈现的WA,King County的道路地图
图2示出预呈现的道路(黄色)、指针(品红色)和数据(青色)的彩色版本
图3a King County的市郊区的特写
图3b King County的市中心区的特写
如果用户导航到图3a所示地图的视图,则客户机将向服务器请求如所示出的所有三个图像层的相关部分。预呈现层(以黄色示出)是显示在屏幕上的三层中唯一照原样的一层。另外两层指定了向量数据。指针图像由在2x2的像素网格上对齐的2x2个像素块构成,每一像素网格指定了从其自己的位置到数据层中对应数据块的开始(左上角)的(x,y)向量偏移(x和y是向量的各自包括16位整数的分量,因此各自为2像素)。该对应的数据块进而以指定数据块宽度和高度的2个16位值(4像素)开始。宽度首先被指定,然后被约束为最少是2,因此避免了读取宽度和高度时的不明确。剩余的数据块可作为可包含向量、文本或其它信息的任何组合的二进制数据来对待。在图2-3的示例中,数据块包含包括街道名、地址范围和向量表示的街道地图信息。
指针和数据层像预呈现层一样是预计算的。指针和数据层的预计算包括将所有相关向量数据编码成数据块,以及尽可能高效地将指针和数据块填塞到其相应图像中。在乡村或稀疏的市郊区域(见图3a)中,特征往往是间隔良好的,导致在指针和数据图像中有大的空白区。在指针出现的地方,它们精确地落在它们所引用的特征上,且其对应的数据块进而通常精确地位于指针的中心。然而在密集的市中心区(见图3b),特征通常太靠近指针和数据块以致于无法全部适合。因此,有必要使用一种矩形填塞算法来尝试将指针和数据块放置得尽可能靠近其期望的位置而没有任何重叠。结果在图3b中很明显:靠近西雅图的湖和海岸用对应于陆地上的特征的数据块来填充。由于所有的市中心区都是由较稀疏的区域(市郊、山或大量水)围绕的,因此总是有可能将市中心数据块放置在地图上的某处;一般而言,即使在密集的城市内,也有使得该“外流(spillover)”不会过度严重的足够的空白区。外流速率越高,地图向量数据就变得定位越差。外流在数据层图像的分辨率增加时显著降低,且总是有可能找到效率和非局部性被适当平衡的分辨率。在北美,15m/像素看似为一种好的选择。它在市郊区域是“过多的”,但是在接近城市之处,它如图2和3b所示地限制的外流。
有效的矩形填塞在计算上是一个难题;然而,在计算几何文献中有众多逼近算法用于解该难题,且本发明并不规定这些算法中的任何特定的一个。实际使用的算法涉及分层“矩形树”,它使得以下操作变快:
测试给定矩形是否与树中已有的任何其它矩形相交;
***一非重叠矩形;
找出围绕目标点p的半径r0<=r<r1的环中完整的“空角” (即,毗邻已经***的接壤空白区的矩形的角)集。
用于尽可能地靠近目标点来***新矩形的“贪婪算法”然后如下继续:
尝试***中心在目标点上的矩形。如果这成功,则该算法结束。
否则,定义半径r0为该矩形的长度或宽度中的最小值的一半,以及r1=r0*2。
找出r0和r1之间的所有“空角”,并按照递增半径来排序。
尝试将该矩形按顺序放置在这些角中的每一个上,并且在成功时,该算法结束。
如果所尝试的***没有一个成功,则将r0设为r1,将r1设为2*r0,并去往步骤3。
该算法最终总能成功地放置矩形,只要图像中的某处存在至少为正确尺寸的空白区。在它一次放置单个矩形的意义上它是“贪婪的”;它并不尝试解出尽可能高效地填塞n个矩形的整个问题。(整体算法需要定义填塞效率的明确度量,从而指定最小化浪费的空间和最小化矩形与其“目标点”之间的距离之间的期望折衷。该贪婪算法并不要求明确地指定这一折衷,如可从上述算法中清楚的。)
图4示出了用于三种情况的基本填塞算法的输出。在每一种情况下,该算法顺序地将多个矩形尽可能靠近公共点来放置。对矩形填塞问题的这一解法仅作为示例来提供。
图4贪婪矩形填塞算法的测试输出。左边主要是较小的皮状矩形;中间是较大的正方形矩形;而右边是混合。
为使该贪婪填塞算法不对地图的任何特定区域给予位置偏好,理想的是随机化矩形***的次序。在一个较佳实施例中,由此以随机次序***指针/数据块对。其它排序在某些情况下可以进一步提高填塞效率;例如,将大块***到小块之前可最小化浪费的空间。
指针总是2×2的(表示法是行x列);然而,对于数据块,可自由地选择宽高比;以正方形像素为单位的所需块面积是由必须适合该块的数据量来确定的,但是该面积可以适合许多不同形状的矩形。例如,24字节的数据块(包括4字节的宽度和高度信息,以及20字节的任意数据)可恰好被表示为1×24、2×12、3×8、4×6、6×4、8×3或12×2。 (24x1是不合格的,因为如上所述,为使2字节的宽度在块尺寸在客户机方已知之前解码,块的宽度必须至少为2。)该块也可剩余一个字节地被表示为5×5。将以上列出的除近似因数分解5×5之外的所有因数分解的集合称为“天棚因数分解(ceiling factorization)”。对有效的天棚因数分解的要求是其面积至少是所需的面积,且没有行或列被完全浪费;例如,7×4或3×9是无效的天棚因数分解,因为它们分别可被缩减为6×4和3×8。在最简单的实现中,块尺寸可仅基于数据长度的天棚因数分解来选择;一般而言, “较正方形的”块(诸如4×6)比斜块(诸如2×12)能更好地填塞。最简单的数据块大小调整算法取决于它如何在“正方形”和浪费的字节之间折衷而选择4×6或者5×5。更复杂的块大小选择算法可自适应地选取块尺寸,作为搜索目标点附近的空白区的一部分。在一个实现中,以上算法的步骤1和4然后被修改如下:
按照期望程度对所需数据长度的天棚因数分解排序,其中偏好较正方形的因数分解并且可能以浪费的字节为代价。进而尝试在目标点p处放置尺寸由每一天棚因数分解给出的矩形。如果这些***中的任一次成功,则该算法结束。
进而对于每一“空角”c,试图在c处放置尺寸由每一天棚因数分解给出的矩形。一旦成功,该算法结束。
对该算法的进一步细化涉及指定用于交点的评分函数,它与整体优化函数一样在浪费的空间、非正方形的宽高比和与目标点的距离之间进行折衷。
这三个地图层一预呈现道路、指针和数据一中的每一个被储存为JPEG2000或类似的空间可访问表示。然而,对这三层的存储要求是不同的。预呈现道路层无需是无损的;它只需在显示时具有合理的感知准确度。在15m/像素下,可以发现0.5位/像素的无损小波压缩是完全足够的。然而,指针和数据层必须被无损地表示,因为它们包含客户机必须能够精确地重构的数据。无损压缩一般不是非常高效的;例如,典型的数字图像一般不能按照最多为2的因子来无损压缩。
对于大多数形式的有损或无损压缩,性能可通过使得图像函数的量值变小,由此占据较少的有效位来优化。因此,在增强实施例中,使用特殊的编码技术来“平坦化”原始数据。这些技术的结果从图5中可显而易见,图5示出了在“平坦化”之前和之后数据图像的同样密集填充的区域。注意,在平坦化之前,数据图像具有完整的8位动态范围,并展示出使得它非常差地压缩的高频和结构化图案(实际上,该图像的无损JPEG2000不会小于原始的未处理大小)。在“平坦化”之后,大多数结构不见了,并且绝大部分像素具有<8的值,因此适合3位。对应的JPEG2000具有比3∶1更好的压缩。“平坦化”可以包括多个简单的数据变换,包括以下(这是在图5的示例中应用的变换的完整列表):
诸如数据块的宽度或高度等16位无符号值通常使用一高位字节和一低位字节来编码。可能需要16位是因为值偶尔会超过255(8位限制)某一指定的量,然而在大多数情况下这些值都是很小的。对于适合8位的值,高位字节将为0。频繁的0高位字节后跟有效的低位字节解决了图5a部分中清楚的大多数2像素周期性。可如下重映射16位:
第一像素(最初在高位字节) | 第二像素(最初在低位字节) | |||||||||||||||
原始 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
新 | 15 | 13 | 11 | 9 | 7 | 5 | 3 | 1 | 14 | 12 | 10 | 8 | 6 | 4 | 2 | 0 |
位置 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
左边的8列表示该对的第一个像素,它先前在高位字节;右边的8列表示第二像素,它先前在低位字节。通过以此方式重新分配位,可访问值的范围(0-65535)保持不变,但是两个字节变得更对称。例如,对于所有的16位值0-255,两个字节各自假定值<16。
类似的技术可应用于32位或更大的整型值。这些技术也可扩展到有符号量。对于其中符号频繁改变的变量,如对于道路向量的差分编码所发生的,可向位置0分配有符号位,并且如上所述地以交替的字节编码绝对值。注意,为令人信服地绘制,道路向量数据必须通常以比像素精度更大的精度来表示。可改为使用小于像素的任意单位,或者等效地,可结合以上技术使用定点来实现子像素精度。在本示例性实施例中,对于1/16像素精度使用了4子像素的位。
当如上所述地对数字编码时,理想的是使得数字尽可能地小。有时候上下文建议了一种明显的方式来这样做;例如,由于任何数据块的宽度必须至少为2,因此在编码之前从数据宽度中减去2。更重要的是,数据块中编码的指针和任何位置向量都相对于指针位置以像素来指定,而非以绝对坐标来指定。这不仅极大减小了要编码的数字的大小;它还允许数据图像的一部分在局部坐标***中向量性地解码和呈现,而不考虑该部分的绝对位置。
对于定义曲线(例如,道路)的点序列的向量呈现,只需相对于原始指针位置指定第一点;随后的点可被编码为“增量”,或从前一点的步进向量。在第二个这样的点之后,后续的点可被编码为二阶导数,或者当前和前一增量之差。使用二阶导数来编码一般对于诸如道路等结构是高效的,因为它们往往是具有导数连续性的曲线的离散化一即,它们逐步地改变其方向。
用于文本数据的另一“平坦化”技术在[1]中有描述,文本数据通常被编码为ASCII,且对每一字节编码单个字符。在[1]中所描述的应用中,编码了英语文本,且因此字母基于字母在英语的代表性样本中出现的递减频率来重映射。同样的技术可在本文环境中使用,尽管地图中所编码的大部分由街道名构成的文本具有与普通英语相当不同的统计量。例如,数字和大写字母要重要得多。
注意,用于如上所述地编码指针或数据的特定方法是示例性的;许多其它编码也是可行的。“良好的”编码一般得到平滑和/或具有低动态范围的图像。
图5“平坦化”之前(上方,a)和之后(下方,b)的相同的二进制8位数据(从Virgin Islands的道路地图数据图像的密集区中取得)
使用以上技术,15m/像素下的King County道路地图压缩如下:
对象 | 大小 | 格式 |
原始的2002 TIGER/Line向量数据(TGR53033.ZIP) | 8089KB | 包含采用表格文本形式的所有向量数据的压缩ZIP文件 |
所呈现道路地图的未压缩的8位图像 | 41.5MB | 未经处理的,=41.5兆像素 |
预呈现的道路地图层 | 2602KB | JPEG2000,以0.5位/像素压缩 |
指针层 | 743KB | JPEG2000,无损(~0.18位/像素) |
数据层 | 3205KB | JPEG2000,无损(~0.77位/像素) |
预呈现+指针+数据 | 6550KB | JPEG2000,有损和无损 |
令人惊讶的是,JPEG2000表示(包括有损预呈现道路地图图像、无损指针层和无损数据层)实际上要小于将原始数据表示为表格文本的压缩ZIP文件。(该文件是美国人口普查局2002 TIGER/Line数据库的一部分。)然而,与原始的ZIP不同,该新表示已准备好交互式地向客户机供应,且有效地支持连续可扫视和可缩放空间访问。
[2]中介绍的原始的预呈现多比例地图发明不仅包括单个预呈现图像,还包括以逐渐粗略的分辨率呈现的、并带有重新按比例缩放的线宽(或其它可视特征)的这些图像的栈。尽管这些预呈现的任一个中都没有省略任何特征,但是某些特征被削弱得足以仅在总计意义上清晰可见,例如,城市的地区道路在州级变为暗淡的灰色模糊点。本发明可被扩展成包括对应于较粗略地预呈现的道路地图图像的指针和数据图像,其中仅表示了原始向量对象的一个子集。例如,在比图1-3的分辨率低得多的分辨率下的州级指针和数据图像可能仅包括用于州和国家高速公路的数据,而不包括所有的地区道路。这些较粗略的数据也可以是“抽象”,例如仅指定道路名而不指定向量。不同分辨率下的图像可能包括原始数据的变化的混合或子集,或经抽象的版本。该技术既允许所有相关数据都适应较小的粗略图像,又向客户机提供了对该比例下导航相关的向量信息的子集。
尽管以上列出的实现提出了每一分辨率下的8位灰度级预呈现地图图像,但是预呈现图像也可以是彩色的。此外,即使预呈现图像是单通道图像,它们也可由客户机彩色地显示,因为向量数据可用于以与预呈现素材不同的颜色绘出重要的道路。最后,预呈现图像可以省略向量数据中存在的某些特征或道路,从而依赖于客户机来适当地合成图像和向量素材。
权利要求书:
一种使用矩形填装和JPEG表示来编码图像的方法。
专利申请
用于在缩放用户界面中精确呈现的***和方法
BLAISE HILARY AGUERA Y ARCAS
Kaplan&Gilman,LLP
代理案卷号489/2
用于在缩放用户界面中精确呈现的***和方法
相关申请
本申请要求2003年3月5日提交的美国临时申请第60/452,075号、2003年3月12日提交的美国临时申请第60/453,897号、2003年6月5日提交的美国临时申请第60/475,897号、以及2003年5月30日提交的美国临时申请第60/474,313号的优先权。
发明领域
本发明一般涉及用于计算机的图形缩放用户界面(ZUI)。更具体而言,本发明是一种用于以既在计算上高效又精确的方式渐进地呈现可缩放可视内容的***和方法,在计算上高效能得到良好的用户响应性和交互式帧速率,而精确的意义在于向量绘图、文本和其它非照相内容最终可在不进行通常导致图像质量降低的重采样且不进行同样导致降低的其它图像内插的前提下绘出。
发明背景
大多数当前的图形计算机用户界面(GUI)是使用固定空间比例的可视组件来设计的。然而,从计算机图形领域的诞生可以认识到,可视组件可以用使得它们在显示器上不具有固定空间比例,而是可被放大和缩小的方式来表示和处理。对可缩放组件的期望在许多应用领域中都是明显的;此处仅举几个例子:查看地图、浏览诸如报纸等大型的不同种类文本布局、查看数码照片的相册、以及用大数据集的可视化来工作。即使在查看诸如电子表格和报表等普通文档时,能够粗看一下文档概述,然后在感兴趣的区域上放大通常也是有用的。许多现代的计算机应用程序包括可缩放组件,诸如Microsoft???_Word???_和其它Office???_产品(View(视图)菜单下的Zoom(缩放))、Adobe???_Photoshop???_、Adobe???_Acrobat???_、QuarkXPress???_等等。在大多数情况下,这些应用程序允许对文档进行放大和缩小,但是无需对应用程序本身的可视组件进行放大和缩小。此外,缩放一般是用户与软件的交互的一个***方面,且缩放设置仅偶尔被更改。尽管对文档的连续扫视是标准(即,使用滚动条或光标来将所查看的文档向左、右、上或下平移),但现有技术的***中缺少以用户友好方式连续缩放的能力。
首先,阐明若干个定义。显示器是用于向用户输出所呈现图像的一个或多个设备。帧缓冲区用于动态地表示显示器的至少一部分的内容。显示器刷新率是物理显示器或其一部分使用帧缓冲区的内容来重新刷新的速率。帧缓冲区的帧速率是更新帧缓冲区的速率。
例如,在典型的个人计算机中,显示器刷新率是60-90Hz。大多数数字视频例如具有24-30Hz的帧速率。由此,数字视频的每一帧实际上以至少刷新显示器的两倍的速率来显示。可在不同的帧速率利用多个帧缓冲区,且由此这些帧缓冲区基本同时地在同一显示器上显示。这例如在具有不同帧速率的两个数字视频在同一显示器的不同窗口中播放时发生。
缩放用户界面(ZUI)的一个问题是当用户缩放时可视内容必须以不同的分辨率来显示。对这一问题的理想解决方案是在每一连贯的帧中基于底层的可视内容显示精确且新计算的图像。这一方法的问题是如果底层的可视内容是复杂的,则当用户缩放时可视内容的每一分辨率的实时精确重计算在计算上是不切实际的。
作为以上内容的结果,许多现有技术的ZUI***使用多个预计算的图像,其每一个是同一可视内容但在不同分辨率下的表示。将这些不同的预计算图像的每一个称为一细节水平(LOD)。在概念上组织为分辨率递减的图像栈的完整的LOD集合被称为LOD金字塔一见图1。在这些现有技术的***中,当发生缩放时,***在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不同。由于人类视觉***在可视内容仍在运动中时对于可视内容的精细细节是不敏感的,因此该混合策略可以用少得多的计算来产生连续的“完美呈现”的假象。
附图简述
图1描述了一个LOD金字塔(在此情况下,表示最高分辨率表示的金字塔底部是512x512样本图像,且对该图像的相继缩小倍数按2的因子示出);
图2描述了在本发明的一个示例性实施例中使用的流程图;
图3是示出***如何在缩放之后显示最终图像的另一流程图;
图4是图1的添加了网格线的LOD金字塔,它示出了将每一LOD细分成样本大小相等的矩形小块;
图5是结合本发明使用的另一流程图,它描绘了用于在显示器上显示所呈现的小块的过程;
图6示出了此处更详细解释的称为无理小块的概念;以及
图7描述了如以下更全面解释的合成小块以及组成该合成小块的小块。
较佳实施例的详细描述
图2示出了用于实现本发明的基本技术的流程图。图2的流程图表示本发明的一个示例性实施例,并且在以初始分辨率显示图像时开始执行。注意,本发明可在客户机/服务器模型中使用,但是客户机和服务器可以在相同或不同的机器上。由此,例如,可以有远程地储存在主机计算机上的一组离散LOD,并且用户可通过本地PC连接到所述主机。所利用的实际的硬件平台和***对于本发明并不是关键的。
该流程图以特定分辨率下的图像的初始视图进入起始框201。在本示例中,图像被取为静态的。在框202处显示该图像。用户可通过例如移动计算机鼠标来导航该图像。在框202处显示的初始视图在用户导航该图像时将改变。注意,底层图像本身可以是动态的,诸如在运动视频的情况中那样,然而,出于本示例的目的,该图像被视为是静态的。如上所述,要显示的任何图像也可具有文本或其它向量数据和/或诸如照片和其它图像等非向量数据。本发明以及以下全部讨论无论图像是包括向量还是非向量数据还是包括两者都是适用的。
无论在框202中显示的可视内容的类型是什么,该方法都将控制传递到判别点203,在该点处可检测导航输入。如果未检测到这一输入,则该方法循环回到框202,并继续显示静止的可视内容。如果检测到导航输入,则控制将如图所示被传递到框204。
判别点203可通过查找检测移动的特定信号的软件中的连续循环、硬件中的中断***或任何其它期望的方法来实现。用于检测和分析导航请求的特定技术对本发明不是关键的。无论所使用的方法是什么,该***都可检测到请求,由此指示导航图像的期望。尽管此处大多数讨论涉及缩放,但是要注意,这些技术适用于缩放、扫视或其它导航。实际上,此处所描述的技术适用于对图像的任何类型的动态变换或感知变化。这些变换可包括例如三维平移和旋转、图像过滤器的应用、局部拉伸、应用于图像选中区域的动态空间变形、或可能展示更多信息的任何其它种类的变形。另一示例是虚拟放大镜,它可在图像上移动并放大该虚拟放大镜下的图像部分。当判别点203检测到用户正在发起导航时,框204然后呈现并显示图像的新视图,该新视图可具有例如与先前显示的视图不同的分辨率。
显示新视图的一种直截了当的现有技术是基于用户放大或缩小时内插LOD。所选LOD可以是“环绕”期望分辨率,即新视图的分辨率的那两个LOD。在现有技术***中,内插总是在用户缩放时发生,且由此通常直接用硬件实现来获得速度。判别点205中对移动的检测与框204处对适当内插图像的基本立即显示的组合导致图像看似在用户导航时连续缩放。在放大或缩小期间,由于图像正在移动,因此内插图像足以看上去逼真且清晰。任何内插误差仅最小程度地可由人类视觉***来检测,因为这些误差通过不断改变图像的视图而被掩饰。
在判别点205,***测试移动是否已基本停止。这可使用各种技术,包括例如测量视图的一个或个参数的改变速率来实现。即,该方法确定用户是否已到达他完成缩放的点。在判别点205处这一稳定之后,控制被传递到框206,其中呈现精确的图像,之后控制返回到框203。由此,以任何期望的分辨率,***将最终显示精确LOD。
值得注意的是,显示并不是简单地通过两个预定义LOD的内插来呈现和显示的,而是可通过在框202处显示初始视图时使用用于呈现文本或其它向量数据的原始算法重新呈现向量数据来呈现和显示。非向量数据也可被重采样以在精确的所需LOD下呈现和显示。所需的重新呈现或重采样不仅可在以期望分辨率显示所需的精确分辨率下执行,而且还可在精确对应于如基于期望视图计算的显示器像素相对于底层内容的正确位置的采样网格上执行。作为一个示例,显示器上的图像在显示平面内平移1/2像素不会改变所需的分辨率,但是它的确改变了采样网格,因此需要对精确LOD的重新呈现或重采样。
上述图2的***表示在视图改变(例如,发生导航)时利用基于预定义LOD的内插,但是在视图变得基本静止时呈现和显示精确视图的混合方法。
为此处解释的目的,术语呈现指的是计算机基于向量或非向量数据以特定LOD生成小块。对于非向量数据,这些可通过以更高或更低分辨率对原始图像重采样来以任意分辨率呈现。
现在转向呈现和显示如由图2的框206表示地实现精确最终图像所需的可视内容的不同部分的方法。参考图3,当确定导航已停止时,控制被传递到框303,并且立即显示内插的图像,正如缩放期间的情况一样。将可在导航停止之后临时显示的该内插图像称为中间最终图像,或简称为中间图像。该图像是从环绕LOD的内插生成的。在某些情况下,如将在下文更详细解释的,中间图像可从两个以上离散LOD内插,或从除环绕期望分辨率的LOD之外的两个离散LOD内插。
一旦显示了中间图像,则进入框304,使得图像开始朝图像的精确呈现一称为最终图像一渐变。最终图像与中间图像的不同之处在于,最终图像可能不涉及任何预定义LOD的内插。相反,最终图像或其部分可包括新呈现的小块。在照相数据的情况下,新呈现的小块可从对原始数据的重新采样得到,而在向量数据的情况下,新呈现的小块可从期望分辨率下的光栅化得到。
还要注意,可直接从框303跳至305,从而立即用最终且精确的图像替换内插图像。然而,在该较佳实施例中,执行步骤304以使从中间最终图像到最终图像的转变逐步且平滑地完成。该渐变有时候称为混和,它使得图像在导航停止时逐步聚焦,从而产生类似于照相机或其它光学仪器中自动聚焦的效果。由这一效果产生的物理性假象是本发明的一个重要方面。
以下是对发生该渐变或混和以最小化感知到的图像中的不规则性、突然变化、缝隙和其它缺陷的方式的讨论。然而,可以理解,特定的渐变技术对于本发明并不是关键的,且本领域的技术人员可以清楚许多变体。
不同LOD的不同之处在于底层可视内容的每一物理面积中的样本数。由此,第一个LOD可取可查看对象的1英寸×1英寸面积,并生成单个32×32样本小块。然而,该信息也可通过取同样的1英寸×1英寸面积并将其表示为64×64样本的小块来呈现,因此是以较高分辨率来呈现的。
定义称为无理小块的概念。将写作变量g的小块粒度被定义为较高分辨率LOD下线性小块网格大小与下一较低分辨率LOD下线性小块网格大小之比。在Williams的介绍三线性内插的论文中,g=2。其它现有技术中已使用了该同样的g值。尽管LOD可用任何方式细分成小块,但是在一个示例性实施例中,每一LOD被细分成包含常数个样本(除了如所需的在可视内容的边缘处)的正方形或矩形小块的网格。在概念上,当g=2时,某一LOD下的每一小块在下一较高分辨率LOD下“***”成2×2=4个小块(再一次,除了可能在边缘处以外),如图4所示。
粒度为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上重叠。这造成了节点区域上分辨率中的“深裂”,如图6(a)所示。
另一方面,由于无理小块中的网格线从不与相邻LOD的网格线重叠(再次可能除了每一方向上的一条网格线之外,该网格线可能在图像的一个角上),因此一个以上LOD的分辨率中的不连续性不会出现。这一相对分辨率中增加的平滑度允许空间连续性的假象更令人信服。
图6(b)示出了由无理小块粒度获得的优点。图6示出了穿过可视内容的若干LOD的横截面;每一条表示一矩形小块的横截面。因此,其中有两条的从上而下的第二级可能是2×2=4小块的LOD。从上到下绘出的曲线601表示在缩放操作期间相关LOD下可视内容的可视区域的边界:当分辨率增加(放大以展示更多细节)时,所检查的区域减小。深色的条(例如,602)表示已在缩放期间呈现的小块。较浅的条尚未被呈现,因此不能显示。注意,当小块如图6(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的不同小块的不同混合。由此,显示的任一部分可包含例如来自LOD1的20%、来自LOD2的40%、以及来自LOD3的40%。无论所显示的小块是什么,该算法试图以最适合提供所呈现的小块以供如最需要它们那样地显示的优先级顺序来呈现来自各个LOD的小块。所呈现小块的实际显示将在下文参考图5更详细地解释。
在下文中,描述一种用于使用可保证图像细节的空间和时间连续性的算法来绘出多个LOD的方法。该算法被设计成最佳地利用所有呈现的小块,它优先于覆盖同一显示区域的较低分辨率小块地使用高分辨率小块,但使用空间混和来避免LOD之间的尖锐边界,以及在较高细节变得可用时(即,当已呈现了较高分辨率小块时)使用临时定级的混和权重以在高细节下混和。与现有技术不同,该算法及其变体可导致两个以上LOD在显示器上的给定点处被混和在一起;它还可得到在显示区域上平滑变化的混和系数;并且它可得到甚至在用户停止导航之后随时间进展的混和系数。尽管如此,如将清楚的,在该示例性实施例中,它在计算上仍是高效的,且可用于将图像呈现为局部透明,或具有在图像区域上改变的总体透明度。
此处定义了合成小块区域或简称为合成小块。为定义合成小块,考虑堆叠在彼此之上的所有LOD。每一LOD具有其自己的小块网格。合成网格然后通过将来自所有LOD的所有网格投影到单个平面上来形成。合成网格因此由大小不同的各种合成小块构成,由来自所有不同LOD的小块的边界来定义。这在图7中概念性地示出。图7描述了来自三个不同LOD的小块701到703,所有这些小块都表示同一图像。可以想像LOD701到703堆叠在彼此之上。在这一情况下,如果将来自这些LOD的每一个的角750排齐并将它们堆叠在彼此之上,则由740表示的区域将在由730表示的区域之内,并且由734和740表示的区域将在由720表示的区域之内。每一合成小块在每一帧期间检查,其中帧速率通常大于每秒10帧。注意,如上所解释的,该帧速率并不一定是显示器刷新率。
图5描绘了用于在呈现小块时更新帧缓冲区的算法的流程图。图5的安排旨在每次更新帧缓冲区时对所显示图像中的每一合成小块操作。由此,例如,如果帧持续时间是1/20秒,则整个屏幕上的每一合成小块较佳地在每一个1/20秒期间检查和更新。当合成小块由图5的过程操作时,该合成小块可能缺少一个或多个LOD中的相关小块。图5的过程试图将每一合成小块显示为该合成小块所处的所有可用叠加小块的加权平均值。注意,合成小块是以使得它们精确地落在任何给定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来更新。
如果顶点例如在右上角,则它使用右上comerOpacity来更新。
“更新”意味着:如果预先存在的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值导致朝目标值的非常迅速的转变。该更新不透明度的方法导致朝向目标的指数收敛,并导致时间连续性的视觉上令人满意的印象。其它公式可实现相同的结果。
以上描述了本发明的较佳实施例。本发明不限于这一较佳实施例,并且与所附权利要求书相一致的各种修改也都被包括在本发明内。
权利要求书:
1.一种显示可视内容的方法,所述方法包括:
生成所述可视内容的多个不同细节水平(LOD);
在导航所述可视内容时将所述可视内容显示为所述LOD的内插;以及
在所述导航基本停止时显示包括不作为所述LOD的内插的至少一部分的最终图像。
2.如权利要求1所述的方法,其特征在于,所述导航包括以下的一个或多个:二维或三维平移、旋转、图像过滤、局部拉伸、动态空间变形、放大或缩小。
3.如权利要求1所述的方法,其特征在于,在显示所述最终图像之前,通过从所述多个LOD的内插生成中间最终图像。
4.如权利要求3所述的方法,其特征在于,所述中间最终图像逐步地改变成所述最终图像。
5.如权利要求4所述的方法,其特征在于,所述最终图像或所述中间图像是在逐个小块的基础上呈现的。
6.如权利要求3、4或5所述的方法,其特征在于,每一LOD由小块构成,且所述最终图像或所述中间最终图像通过使用被显示为合成小块的来自若干LOD的小块来显示。
7.如权利要求6所述的方法,其特征在于,每一LOD的小块可用于以至少部分地取决于该小块所处的LOD、或小块当前是否可见、或这一小块的凹入程度的顺序进入帧缓冲区。
8.如权利要求7所述的方法,其特征在于,首先呈现可查看小块,并且在所述可查看小块内,以递增分辨率的顺序呈现小块,且在相似分辨率的小块内,以凹入顺序呈现小块。
9.如权利要求8所述的方法,其特征在于,还包括实现无理小块。
10.如权利要求6所述的方法,其特征在于,所述可视内容包括向量和非向量数据。
11.如权利要求10所述的方法,其特征在于,所述多个LOD是在远程终端上生成的,且所述中间和最终图像是在本地可查看终端上生成的。
12.一种显示正被导航的可视内容的方法,包括在所述导航期间将所述可视内容显示为多个LOD的内插,以及当所述导航基本结束时将所述可视内容至少部分地不显示为多个LOD的内插。
13.如权利要求12所述的方法,其特征在于,将所述可视内容显示为多个LOD的内插逐步渐变成将所述可视内容不显示为多个LOD的内插。
14.一种通过生成一组LOD来表示可视内容的方法,每一LOD包括小块,对所述组中的第一和第二LOD的至少一个子集,第一LOD中的小块数和第二LOD中的小块数不形成整数比。
15.如权利要求14所述的方法,其特征在于,包括将合成小块呈现为来自各LOD的堆叠在彼此之上的部分小块的组合。
16.如权利要求16所述的方法,其特征在于,还包括以首先按可查看性排序、在所述可查看小块内按LOD排序、且在每一LOD内按凹入级别排序的顺序来呈现来自多个LOD的每一个的小块。
17.一种显示可视内容的方法,包括组合表示可视内容的多个LOD,并逐步改变可归于所述LOD的至少一个的贡献以使所述显示的可视内容响应于呈现更好显示图像的信息变得可用而逐步朝所述更好显示图像变化。
18.如权利要求17所述的方法,其特征在于,所述贡献是通过将至少一个权重分配给多个LOD中的多个小块,然后改变所述权重来逐步改变的。
19.如权利要求17所述的方法,其特征在于,所述分配向至少一个LOD中的每一所述小块分配多个权重。
20.如权利要求19所述的方法,其特征在于,所述多个权重包括所述小块的多个角的每一个处的不透明度、所述小块的多条边的每一条处的不透明度、以及每一所述小块内的一点处的不透明度。
21.如权利要求18所述的方法,其特征在于,还包括对LOD中多个位置计算一组levelOpacityGrid变量,所述一组levelOpacityGrid变量是通过对所述LOD中与要对其计算所述levelOpacityGrid的顶点相切的所有小块利用如权利要求20所述的权重中的至少某一些来计算的。
22.如权利要求21所述的方法,其特征在于,还包括对至少一个LOD空间滤波所述一组levelOpacityGrid变量。
23.如权利要求17所述的方法,其特征在于,形成所述组合使得当接近显示器分辨率的较高分辨率LOD可用时来自这一较高分辨率LOD的组合相对于较低分辨率LOD而被强调。
24.一种表示可视内容的方法,包括将第一LOD与第二LOD组合,每一所述LOD由多个小块组成,所述小块被排列成使得所述LOD中所述小块的边基本上在所有可视内容中都不对齐。
25.如权利要求16所述的应用于三个或多个这样的具有递增分辨率的LOD的方法,其特征在于,当所述LOD以递增分辨率的顺序排列时,没有两个连续的LOD的分辨率相差一有理倍数。
26.一种组合多个LOD以显示可视内容的方法,所述方法包括用相关联的贡献加权每一所述LOD,以及随时间和空间改变由每一LOD提供的贡献。
27.如权利要求26所述的方法,其特征在于,所述加权是不透明度级别。
28.如权利要求27所述的方法,其特征在于,所述组合LOD的总不透明度小于100%。
29.如权利要求28所述的方法,其特征在于,所述随时间改变导致朝目标值的渐近收敛。
30.如权利要求29所述的方法,其特征在于,对每一LOD,对多个顶点的每一个计算不透明度级别。
31.如权利要求30所述的方法,其特征在于,所述随时间和空间的改变被设计成减少可查看不连续性。
32.如权利要求31所述的方法,其特征在于,表示所述加权的值被低通滤波。
33.一种方法,包括显示中间最终图像、然后显示最终图像,所述最终图像和中间最终图像由以凹入顺序呈现的小块构成,从中间最终图像到所显示的最终图像的转变在检测到导航基本停止时进行。
34.如权利要求33所述的方法,其特征在于,较低分辨率小块在较高分辨率小块之前显示。
35.如权利要求34所述的方法,其特征在于,所述转变是逐步的。
36.一种用于在导航基本停止之后显示最终图像的设备,包括用于在发生导航时显示内插图像的装置、用于检测导航何时基本停止以及使用显示所述最终图像的单独算法来再呈现向量数据和非向量数据的装置。
37.如权利要求36所述的设备,其特征在于,所述最终图像具有同时包含向量和非向量数据两者的小块,且其中至少一个这样的小块使用实现呈现的两种不同算法来呈现。
38.如权利要求37所述的设备,其特征在于,还包括实现从中间图像渐变到最终图像的软件的处理器。
39.一种显示可视内容的方法,包括组合表示可视内容的多个LOD,并逐步改变可归于所述LOD中的至少三个的贡献以使所述显示的可视内容逐步变化。
40.如权利要求17所述的方法,其特征在于,所述贡献是通过将至少一个权重分配给多个LOD内的多个小块,然后改变所述权重来逐步改变的。
41.如权利要求40所述的方法,其特征在于,所述分配将多个权重分配给至少一个LOD中的每一所述小块。
42.如权利要求41所述的方法,其特征在于,所述多个权重包括所述小块的多个角的每一个处的不透明度、所述小块的多条边的每一条处的不透明度、以及每一所述小块内的一点处的不透明度。
43.如权利要求42所述的方法,其特征在于,还包括对LOD中的多个位置计算一组levelOpacityGrid变量,所述一组levelOpacityGrid变量是通过对所述LOD中与对其计算所述levelOpacityGrid的顶点相切的所有小块利用如权利要求19所述的权重中的至少某一些来计算的。
44.如权利要求43所述的方法,其特征在于,还包括对至少一个LOD空间滤波所述一组levelOpacityGrid变量。
45.如权利要求17所述的方法,其特征在于,形成所述组合使得来自较高分辨率LOD的组合相对于来自较低分辨率LOD的组合而增加。
摘要
公开了通过在导航期间显示内插图像并在导航停止时显示更精确图像来便于对可视内容的逼真导航的方法和装置。公开了用于以不同的细节水平呈现和显示“小块”,即可视内容的各部分来最小化可感知不连续性的方法。
用于多节点显示的***和方法
相关申请
本申请要求临时申请第60/474,313号的优先权,该申请的公开内容通过整体引用结合于此。
发明背景
本发明涉及用于计算机的缩放用户界面(ZUI)。
大多数当今的图形计算机用户界面是使用固定空间比例的可视组件来设计的。可视内容可通过放大或缩小或以其它方式导航来操纵。然而,可用于表示各种对象的坐标的精度极大地受到被指定来表示这些坐标的位数(通常在16和64之间)的限制。由于其有限的可表示大小,因此存在有限的精度。
在缩放用户界面的环境中,用户能够容易地放大,使得先前仅被单个像素覆盖的区域填满整个显示器。相反,用户可缩小,使得整个显示器的内容收缩至单个像素的大小。由于每一次放大或缩小可将xy坐标乘以或除以多个数量级,因此仅有少数这样的缩放能完全用尽在例如64位浮点数下可用的精度。之后,舍入导致引人注意的图像质量降低。
本发明的一个目的是提供一种其中大范围缩放成为可能的ZUI。
本发明的另一目的是提供一种其中表示坐标的精度与特定缩放细节程度下需要的所需精度有关的ZUI。本发明的又一目的是允许有限物理大小、但任意高复杂度或分辨率的可扫视和可缩放二维空间被嵌入到较大的可扫视和可缩放二维空间的定义良好的区域中。
本发明的再一目的是允许在深放大之后缩小以类似于web浏览器的“后退”按钮表现,从而让用户折回他或她通过可视导航的步骤。
本发明的此外一个目的是允许在缩小之后立即放大以类似于web浏览器的“前进”按钮表现,从而让用户精确地撤消任意长的缩小的效果。
本发明的另有一个目的是允许一节点,即如下更精确地定义的可视对象具有非常大量的子节点(例如,多达10^28)。
本发明的再有一个目的是允许节点在进行中程序性地生成它自己的子节点,从而允许在导航期间动态地定义、创建或修改内容。
本发明的还有一个目的是即使在任意复杂的可视内容最终是使用非常大量的数据来表示,且即使数据被储存在远程位置且通过低带宽网络共享的情况下也允许接近立即地查看该内容。
本发明的进一步的一个目的是允许用户在可视内容上进行任意程度的放大同时维持交互式帧速率。
本发明的更进一步的一个目的是允许用户在保留内容的总体外观并维持交互式帧速率的过程中进行任意程度的缩小以获得复杂可视内容的概观。
本发明的这些和其它更宽泛的目的在本领域技术人员仔细阅读了以下说明书之后将变得显而易见。
发明概述
本发明的以上和其它目的通过将可视内容显示为多个“节点”来实现。每一节点较佳地具有其自己的坐标***和呈现方法,但是可被包含在一父节点内,且可以用该父节点的坐标***和呈现方法来表示。当用户例如通过放大或缩小来导航可视内容时,节点仅在缩放导致适当的细节水平时才被“启动”。节点的启动使得节点以其自己的坐标***和/或呈现方法、而非一不同节点的坐标***和/或呈现方法来表示。
在启动节点之前,节点要么以父节点的坐标***来表示,要么完全不被表示。通过仅在需要时启动节点,坐标***的精度取决于正被显示的内容的缩放细节水平。这允许一可变的精度水平,它可高达且包括该***在其中运行的计算机的存储器所允许的最大值。
附图说明
为说明起见,附图中示出了当前较佳的形式,然而可以理解,本发明不限于所示的精确排列和手段。
图1是显示器上的可视内容的描述;
图2是不同细节水平下的图1的可视内容的图像;
图3是本发明的一个实施例的表示;
图4是示出显示器上的多个节点的本发明的一个示例性实施例;
图5是对应于图4中所示的示例性实施例的树图。
较佳实施例的详细描述
假定其中显示器是照相机的用户界面比喻,通过该照相机用户可查看二维表面或2D全域的一部分。为方便起见,尽管不必如此,但仍将物理维度归于该全域,使得它例如可以是一米见方。本发明同样适用于N维表示。
该示例性全域进而包含2D对象,即节点,它具有可视表示,且也可以是动态或交互式的(即,视频剪辑、应用程序、可编辑文本文档、CAD绘图或静止图像)。为使节点可见,它必须与能够将其全部或部分绘制在显示器的某一区域上的呈现方法相关联。每一节点也被赋予有限精度的局部坐标***。为说明起见,假定节点是矩形的,且由局部坐标***来表示。
呈现方法和坐标***这两个参数指定了如何显示节点以及节点中项的位置。每一节点可具有0个或多个子节点,它们通过引用来寻址。节点无需且一般不包含每一子节点的所有信息,而是仅包含提供获得子节点所必需的信息的地址。当用户导航时,例如放大和缩小时,节点例如如图1所示地被显示在屏幕上。
一般而言, “节点”是本发明中的基本功能单元。大多数节点在导航期间可视地显现在用户的显示器上,且某些节点也可加动画和/或响应用户输入。节点在节点可包含子节点的意义上是分层的。包含节点因此被称为父节点。当父节点包含子节点时,子节点的视觉表现也被包含在父节点的视觉表现中。每一节点具有一逻辑坐标***,使得节点的整个范围被包含在该逻辑坐标***中定义的示例性矩形中;例如,节点可定义一逻辑坐标***,使得它被包含在矩形(0,0)-(100,100)中。
每一节点可具有定义其特性的以下数据:
o节点的逻辑坐标***,包括其逻辑大小(在以上示例中为100x100);
o任何子节点的身份、位置和大小,以(父)节点的逻辑坐标指定;
o可任选的任何必要的用户数据。
可执行码定义这些操作或“方法”:
o基于“构造自变量”的节点数据的初始化
o呈现节点的全部或一部分可视外观(该方法的输出是呈现的小块);
o可任选地响应于用户输入,诸如键盘或鼠标事件。
可执行码定义了“节点类”,并且可在许多“节点实例”之间共享。节点实例在其数据内容上不同。因此,节点类可定义呈现JPEG图像所需的逻辑。给予初始化代码的“构造自变量”因此包括JPEG图像到显示器的URL。显示特定图像的节点是JPEG节点类的一个实例。节点的多个实例可在同一可视内容中查看,这类似于软件应用程序可同时被多次实例化的方式。
注意,在复杂的可视文档或应用程序中,通常可将必要的功能以多种不同方式划分成节点。例如,包含多个图像、下拉菜单和按钮的脚本化的类似网页的文档可被实现为具有复杂的呈现和用户输入方法的单个节点。或者,它可被实现为仅定义页面的总体布局,且每一构成图像和按钮是一子节点的父节点。这具有更有效地重复使用或“分解”功能的明显优点:按钮可以都具有相同的行为,并且因此都是同一节点类的实例;图像可以都采用相同的格式,因此也可以是一公共节点类的实例,等等。这还简化了对布局的重新排列一父节点可容易地移动子节点或调整其大小。
根据本发明,可视内容可用取决于用户输入的导航状态的方式来显示。例如,图1示出了可以是城市的一部分的图像的节点105。节点105可包含子节点101-103。节点101可以是城市中的建筑物的图像,节点102可以是游乐场的图像,节点103可以是竞技场。在所示的缩放水平下,节点101-103相对较小,因此它们可被表示为位于节点105的坐标***的正确位置上、且没有节点105中的任何细节的小深色区域。仅需节点105的坐标***和呈现方法。
考虑用户放大以得到诸如图2所示的不同细节水平(LOD)的情况。在图2的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的“精细端”的节点以递增的精度但相对于全域中逐渐变小的区域指定了视图位置。这在图3中概念性地示出,其中可以看到,在已启动的三个节点中,节点303提供了对用户正在查看何处的最准确的指示,因为其坐标***是“最精细的”,但是节点301提供了关于可视内容的大得多的区域的信息,尽管该信息并不是那样精细。
然后该问题缩减为以下:所有可见节点的视图(即,view字段)必须保持与用户导航全域、扫视和缩放同步。无法使它们保持同步会导致节点的外观在显示器上独立于彼此地移动而非作为结合在一起且物理上一致的2D表面来表现。
在任何导航操作期间改变视图如下进行。由于viewStack中的最后一个节点具有该视图的最精确表示,因此第一步是改变该最后一个节点的view字段;该改变的视图被认为是正确的新视图,且任何其它可见节点必须遵从。第二步是将新视图朝向根节点“向上”传播,这需要对栈中较早的节点的view字段进行逐渐变小的改变。如果用户进行深缩放,则在向上传播中的某一点,对视图的更改可以很小,使得它停止以可准确地表示;向上传播在这一节点处停止。在向上传播的每一阶段,改变也向下传播到其它可见节点。因此,首先修改最后一个节点的父节点的视图;然后在向下传播中,修改最后一个节点的“兄弟节点”。下一向上传播修改祖父节点的视图,且第二个向下传播修改第一个叔父节点,然后修改第一个表兄弟节点。向下传播如前一样在“表兄弟节点”的面积变得小于minimumArea时或在节点完全落在屏幕之外时暂停。
上述技术涉及将各节点的布局转换成树,这在图4和5中概念性地示出。如可从图4和5中见到的,对特定的所显示的一组节点有一对应的树,且树结构可用于如上所述地传播视图信息。
扫视操作可将最后一个节点移得足够远,使得它不再属于viewStack。或者,放大可将子节点扩大到需要延长viewStack的程度,或者缩小可能使最后一个节点的面积变得小于最小面积,从而需要截断viewStack。在所有这些情况中,最后一个节点的身份改变。这些情况在向下传播期间被检测到,这可相应地改变viewStack,从而可能使其更长或更短。
上述的一个简单情况是在缩放期间节点被启动,使得现在它需要被放到视图栈中。另一示例是通过缩小,先前可见的节点变得太小以使其必须从视图栈中移除。
这一概念的扩展是避免响应于长缩小立即截断viewStack。截断viewStack仅在用户然后扫视时才必要。尽管长缩小将导致深缩放的节点的view字段变得非常大(因此在数值上不准确),但可将字段
Point2D viewCenter;
添加到Node结构中,表示view矩形的中心点;因此,没有扫视的缩放不会更改任何节点的viewCenter字段。这一构造允许在放大回来之后立即进行程度大的缩小。由于viewStack保持不变,因此用户然后可精确地返回到起始视图。这一行为类似于web浏览器的“后退”和“前进”按钮:“后退”类似于缩小,且“前进”类似于放大回来。在web浏览器中,如果用户使用“后退”来返回到前一网页,但是然后点击另一链接,则在这一点处“前进”不再起作用。之后点击另一链接因此类似于在缩小之后扫视。
以上提供了可视内容可用各种方式以基本无限的精度来显示和导航,且仅受应用程序在其中运行的计算机***的容量的限制。在任何给定时刻显示的可视内容因而作为节点的组合来显示,其中仅启动对特定视图所需的节点,并且所有其它节点在不启动的情况下作为另一节点的一部分来显示或完全不显示。可以理解,各种其它实施例对本领域的技术人员而言都是显而易见的,且本发明不限于此处所描述的实施例。
权利要求书:
1.一种显示可视内容的方法,所述可视内容包括至少两个节点,所述方法包括使用第一节点的呈现方法和坐标***显示与至少第一节点和至少第二节点相关联的可视内容直到检测到预定的导航条件,然后使用所述第二节点的呈现方法和坐标***来显示所述第二节点。
2.如权利要求1所述的方法,其特征在于,所述呈现方法或所述坐标***中的至少一个在所述第一和第二节点之间不同。
3.如权利要求2所述的方法,其特征在于,所述预定导航条件是显示器大小。
4.一种显示组织成节点的可视内容的方法,所述方法包括在规定的缩放范围期间使用其自己的坐标***显示与第一节点相关联的可视内容,并在所述规定的缩放范围之外使用第二节点的坐标***显示与所述第一节点相关联的可视内容。
5.如权利要求4所述的方法,其特征在于,所述第一节点在所述第二节点内。
6.如权利要求5所述的方法,其特征在于,所述第一节点在所述缩放范围期间使用其自己的呈现方法来显示,而在所述缩放范围之外是使用所述第二节点的呈现方法来显示的。
7.如权利要求4或6所述的方法,其特征在于,在所述缩放范围的边界处,所述可视内容通过从第一呈现混和到第二呈现来显示。
8.如权利要求7所述的方法,其特征在于,所述第二节点包含指向所述第一节点的指针。
9.如权利要求8所述的方法,其特征在于,所述第二节点还包含指示所述第一节点的大小和位置的信息。
10.如权利要求7所述的方法,其特征在于,所述第一呈现和第二呈现使用不同的坐标***。
11.如权利要求7所述的方法,其特征在于,所述第一呈现和所述第二呈现使用不同的呈现方法。
12.如权利要求7所述的方法,其特征在于,所述第一和第二呈现使用不同的呈现方法和不同的坐标***。
13.一种显示可视内容的方法,所述方法包括在第一缩放范围期间使用第二节点的坐标***和呈现方法显示与第一节点相关联的可视内容、在第二缩放范围期间使用其自己的坐标***和呈现方法显示与所述第一节点相关联的所述可视内容、以及在第三缩放范围期间停止显示与所述第一节点相关联的所述可视内容。
14.如权利要求13所述的方法,其特征在于,所述可视内容在所述第一和第二缩放范围以及所述第二和第三缩放范围的边界处逐步混和。
15.一种方法,包括生成由相对于所述显示器的一点刺穿的、且大于预定大小的所有节点的视图的视图栈、选择与所述节点之一相关联的视图、以及将所述视图传播到要显示与其相关联的可视内容的其它节点。
16.如权利要求15所述的方法,其特征在于,与至少两个节点相关联的可视内容被基本上同时地显示。
17.如权利要求16所述的方法,其特征在于,所述相关联的视图由向其传播该视图的每一节点变换成该节点自己的坐标***。
18.如权利要求17所述的方法,其特征在于,所述选择的视图被向上传播、然后被向下传播到与然后可查看的可视内容相关联的节点。
19.如权利要求18所述的方法,其特征在于,所述向上传播和所述向下传播在对其否则会发生传播的节点满足指定条件时停止。
20.如权利要求19所述的方法,其特征在于,所述指定条件的至少一个是大小。
21.如权利要求20所述的方法,其特征在于,所述视图栈中的条目基于所述可视内容的导航来删除或添加。
22.如权利要求21所述的方法,其特征在于,在所述视图栈中表示并被显示的节点在缩小操作之后不再显示,但是仍保留在所述视图栈中,由此允许准确地重新放大。
23.一种基本上同时显示与多个节点中的每一个相关联的可视内容的方法,每一节点具有自己的坐标***,所述方法包括每一节点导出指示其在显示区域中自己的位置的信息、以及在所述显示区域中基本上同时地显示与所述节点的每一个相关联的可视内容。
24.如权利要求23所述的方法,其特征在于,所述对至少一个节点导出包括从另一节点接收位置信息,以及将所述位置信息从第一坐标***转换到第二坐标***。
25.如权利要求24所述的方法,其特征在于,所述位置信息是与所述显示区域内的预定位置相关联的位置。
26.如权利要求25所述的方法,其特征在于,与所述节点的每一个相关联的可视内容是使用与该特定节点相关联的呈现方法来呈现的。
27.一种显示可视内容的方法,包括显示具有第一坐标***的第一节点、在所述坐标***内显示第二节点、以及然后响应于用户导航在其自己的坐标***内显示所述第二节点。
28.如权利要求27所述的方法,其特征在于,所述第二坐标***比所述第一坐标***更精确。
29.如权利要求28所述的方法,其特征在于,与一坐标***相关联的精度是以位数测量的,且其中所述位数是可变的。
30.如权利要求29所述的方法,其特征在于,所述相关联的精度可高达由所述方法在其上操作的计算机的存储容量限制的最大值。
31.一种在显示器上显示可视内容的方法,所述方法包括以多个大小显示多个节点,每一节点被显示在一指定的坐标***中,每一坐标***具有一精度,显示坐标***的精度取决于显示所述节点的大小。
32.如权利要求31所述的方法,其特征在于,所述精度是可变的,且在其中显示节点的坐标***在导航期间改变时增加。
33.如权利要求32所述的方法,其特征在于,所述精度是可变的,且在其中显示节点的坐标***在导航期间改变时减小。
34.一种显示节点的方法,包括在第一坐标***中显示所述节点、以及在预定导航范围期间通过逐步从所述第一坐标***混和到第二坐标***而在所述第二坐标***中显示所述节点。
35.如权利要求34所述的方法,其特征在于,用于所述节点的呈现方法也逐步地从第一这样的呈现方法改为第二呈现方法。
36.如权利要求35所述的方法,其特征在于,所述导航包括缩放或扫视。
37.如权利要求36所述的方法,其特征在于,关于视图的信息在发生所述导航时在多个节点之间传播。
38.如权利要求37所述的方法,其特征在于,所述传播是使用数学树来实现的。
摘要
公开了一种利用仅在必要时启动的节点的可视内容的显示方法。节点可在适当时在另一节点,可能是父节点的坐标***中呈现和/或显示。实现了显示对象的精度的增加。
用于在图像中导航的方法和装置
相关申请的交叉引用
本申请要求2003年3月12日提交的题为SYSTEM AND METHOD FORFOVEATED,SEAMLESS,PROGRESSIVE RENDERINGINA ZOOMING USERINTERFACE的美国临时专利申请第60/453,897号的优先权,该申请的全部公开内容通过引用结合于此。
发明背景
本发明涉及用于以提供平滑的、连续的导航移动的外观的方式在对象的图像上进行诸如缩放和扫视等导航的方法和装置。
大多数常规图形计算机用户界面(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看到的,缩放级别之间的急剧转变导致在缩小时突然且急剧的细节丢失,以及在放大时突然且急剧的细节增加。例如,非本地的、次要的或连接的道路可在图1中见到(在缩放级别5下),而次要且连接的道路在作为紧接着的下一缩放级别的图2中突然出现。这一急剧的不连续性在利用MapQuest网站时是非常令人不满的。然而,要注意,即使MapQuest软件应用程序被修改成允许例如缩放级别5(图1)下的地方街道的视图,但是结果仍是不令人满意的。尽管地图的视觉密度随着缩放级别而改变,使得在某一缩放级别处,结果可能是令人满意的(例如,图3的级别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)与缩放级别物理上不成比例;使用客户机终端发出包括缩放信息的一个或多个用户导航命令;混和两个预呈现图像以获得对应于导航命令的缩放信息的中间缩放级别的中间图像;以及在客户机终端上显示中间图像。
本领域普通技术人员在结合附图考虑此处的描述时可以清楚其它方面、特征和优点。
附图简述
为图示本发明的目的,在附图中示出了各种形式,但是可以理解,本发明不限于所示的精确排列和手段。
图1是从MapQuest网站取得的缩放级别5下的图像;
图2是从MapQuest网站取得的缩放级别6下的图像;
图3是从MapQuest网站取得的缩放级别7下的图像;
图4是从MapQuest网站取得的缩放级别9下的图像;
图5是根据本发明的一个或多个方面在约334米/像素的缩放级别下产生的Long Island的图像;
图6是根据本发明的一个或多个另外的方面在约191米/像素的缩放级别下产生的Long Island的图像;
图7是根据本发明的一个或多个另外的方面在约109.2米/像素的缩放级别下产生的Long Island的图像;
图8是根据本发明的一个或多个另外的方面在约62.4米/像素的缩放级别下产生的Long Island的图像;
图9是根据本发明的一个或多个另外的方面在约35.7米/像素的缩放级别下产生的Long Island的图像;
图10是根据本发明的一个或多个另外的方面在约20.4米/像素的缩放级别下产生的Long Island的图像;
图11是根据本发明的一个或多个另外的方面在约11.7米/像素的缩放级别下产生的Long Island的图像;
图12是示出根据本发明的一个或多个方面可执行以提供图像的平滑且连续的导航的处理步骤的流程图;
图13是示出根据本发明的各方面可执行以平滑地导航图像的其它处理步骤的流程图;
图14是示出根据本发明的一个或多个另外的方面的物理和非物理比例缩放的以像素为单位的线宽对以米/像素为单位的缩放级别的对数-对数曲线图;以及
图15是示出图14的物理和非物理比例缩放中的变化的对数-对数曲线图。
图16A-D示出了其端点精确地位于像素坐标的中心的相应的抗混叠垂直线;
图17A-C示出了其端点不被定位成落在精确的像素坐标上的斜坡上的相应的抗混叠线;以及
图18是图14的线宽对缩放级别的对数-对数曲线图,包括指示增量线宽的水平线,以及被间隔成使得两条相邻垂直线之间的间隔上的线宽不会改变两个以上像素的垂直线。
发明详述
现在参考附图,其中相同的标号表示相同的元素,图5-11中示出了表示美国纽约州Long Island的道路***的一系列图像,其中每一图像在不同的缩放级别(或分辨率)下。在深入研究如何实现本发明的技术细节之前,将结合使用本发明的期望结果特征,即至少是特别在缩放时平滑且连续导航的外观、同时保持信息完整性来讨论这些图像。
注意,将在以下讨论的本发明的各方面可在除道路地图图像的导航之外的环境中应用。实际上,对其可采用本发明的图像和实现的范围非常多以致于无法全部列出。例如,本发明的特征可用于导航人体解剖的图像、复杂地形、诸如接线图或蓝图等工程图、基因本体等等。然而,可以发现本发明尤其适用于导航其中其元素具有变化的细节水平或粗略度的图像。因此,出于简明和清楚的目的,将结合一特定示例,即道路地图的图像来讨论本发明的各方面。
尽管在专利文献中展示平滑且连续的缩放的外观是不可行的,但是该特征可通过在基于Pentium的计算机上执行合适的软件程序经由实验和原型开发来展示。图5所示的道路地图的图像100A在可按照物理长度/像素(或物理线性像素/像素)为单位来表征的缩放级别。换言之,缩放级别z表示图像100A的单个像素所表示的实际物理线性大小。在图5中,缩放级别约是334米/像素。本领域技术人员可以理解,缩放级别可以用其它单位来表达而不脱离所要求保护的本发明的精神和范围。图6是与图5相同的道路地图的图像100B,然而缩放级别z是约191米/像素。
根据本发明的一个或多个方面,实施本发明的一个或多个方面的软件程序的用户可在图5和6所示的级别之间放大或缩小。重要的是注意,这样的缩放具有从334米/像素(图5)到/自191米/像素级别(图6)以及其间的任何级别的平滑且连续的转变的外观。同样,用户可缩放到其它级别,诸如z=109.2米/像素(图7)、z=62.4米/像素(图8)、z=35.7米/像素(图9)、z=20.4米/像素(图10)以及z=11.7米/像素(图11)。通过这些缩放级别以及其间的任何级别的转变同样也有利地具有平滑且连续的移动的外观。
图5-11中示出的本发明的另一重要特征是在从一个级别缩放到另一级别时只有极少细节或没有细节突然出现或消失。图8所示的细节(在z=62.4米/像素的缩放级别下)也可在图5中找到(在z=334米/像素的缩放级别下)。即使图像对象(该情况中为道路地图)包括粗略度程度变化的元素(即,道路)时也是如此。实际上,图8的道路地图100D至少包括诸如102等A1高速公路、诸如104等A3二级公路以及诸如106等A4地方道路。然而,这些细节,即使是A4地方道路也仍可在图5的图像100A中见到,它与图8的图像100D相比被充分缩小。
此外,尽管A4地方道路106可在z=334米/像素的缩放级别(图5)下看到,但A1、A2、A3和A4道路可彼此区分。甚至A1主要高速公路102和A2主要道路108之间的差别也可关于给予所呈现图像100A中的这些道路的相对深浅度来彼此区分。
在道路层次中进行区分的能力在用户继续例如放大到如图10的图像100F所示的z=20.4米/像素的缩放级别时也被有利地保留。尽管A1主要高速公路102的深浅度与图8中z=62.4米/像素的缩放级别相比显著增加,但是它没有增加到消除诸如A4地方道路106或甚至是A5土路等其它细节的程度。尽管如此,较低层次级别下的道路,诸如A4地方道路106的深浅度与图8中z=62.4米/像素的缩放级别处其对应物相比仍显著增加。
由此,即使图5所示的缩放级别和图11所示的缩放级别之间的动态范围是充足的,且细节基本保持一致(即,在平滑缩放时没有道路突然出现或消失),用户试图在给定缩放级别下获得的信息也不会被不合需要的伪像遮挡。例如,在z=334米/像素的缩放级别(图5)下,用户可能希望获得存在什么主要高速公路以及它们在什么方向上延伸的一般感觉。该信息即使在还描绘了A4地方道路106的情况下也可容易地获得。在z=62.4米/像素的缩放级别下(图8),用户可能希望确定特定的A1主要高速公路102或A2主要道路108是否服务特定的城市或街区。用户同样可在没有来自诸如A4地方道路106或甚至A5土路的存在和范围等其它详细得多的信息的干扰的情况下获得该信息。最后,在z=11.7米/像素的缩放级别下,用户可能对找到诸如112等特定的A4地方道路感兴趣,并且可在没有受到诸如A1主要高速公路102等大得多的道路的干扰的情况下完成该事项。
为了实现以上讨论的本发明的各方面的一个或多个,可以构想一个或多个计算设备执行使得该计算设备进行适当动作的一个或多个软件程序。在这一点上,现在对图12-13作出参考,图12-13是示出较佳地由一个或多个计算设备和/或相关设备执行的处理步骤的流程图。
尽管较佳的是由市场上可购买的计算设备(诸如基于Pentium的计算机)来执行该处理流程,但是可采用许多其它技术中的任一种来执行这些处理步骤而不脱离所要求保护的本发明的精神和范围。实际上,所采用的硬件可利用任何其它已知的或此后开发的技术来实现,诸如标准数字电路、模拟电路、可用于执行软件和/或固件程序的已知处理器中的任一种、一个或多个可编程数字器件或***,诸如可编程只读存储器(PROM)、可编程阵列逻辑器件(PAL)、以上的任何组合、等等。此外,本发明的方法可用可被储存在已知或此后开发的介质的任一个上的软件程序来实施。
图12示出了本发明的一个实施例,其中准备多个图像(其每一个在不同的缩放级别或分辨率下)(动作200),并将两个或多个图像混和在一起以实现诸如缩放等平滑导航的外观(动作206)。尽管不是实施本发明所必需的,但是可以构想图12中所示的方法可结合服务供应商-客户机关系来使用。例如,服务供应商可花费资源来准备多个预呈现图像(动作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)中描述的公知的三线性内插技术,该文献的全部公开内容通过引用结合于此。图像内插的其它方法也可结合本发明来使用,诸如双三次线性内插,且还有其它一些方法将在未来开发。注意,本发明并不要求或依赖于这些混和方法中的任何特定的一个。例如,如图8所示,用户可能希望导航到62.4米/像素的缩放级别。因为这一缩放级别可以在两个预呈现图像之间(例如,在本示例中在缩放级别50米/像素和缩放级别75米/像素之间),因此所需的62.4米/像素的缩放级别可使用三线性内插技术来实现。此外,50米/像素和75米/像素之间的任何缩放级别可利用如上所述的混和方法来获得,该方法如果被执行得足够快将提供平滑且连续的导航的外观。混和技术可对其它缩放级别,诸如图9所示的35.7米/像素级别执行。在这一情况下,该混和技术可被执行为在迄今为止所讨论的示例的30米/像素和50米/像素的预呈现图像之间。
以上混和方法可在其上实现本发明的处理单元的计算能力不够高以(i)执行第一实例中的呈现操作,和/或(ii)“即时”或“在进行中”(例如,实时)执行图像呈现时使用,以实现对于平滑导航的高图像帧速率。然而,如以下将讨论的,本发明的其它实施例构想了对已知的或此后开发的能够在客户机终端处呈现混和和/或高帧速率应用程序的高能力处理单元的使用。
图13的处理流程示出了被较佳地进行以准备根据本发明的一个或多个图像的详细步骤和/或动作。在动作220处,使用已知的或此后开发的技术中的任一种来获得关于一个或多个图像对象的信息。通常,这些图像对象是使用适当的图元,诸如多边形、线、点等来建模的。例如,当图像对象是地图时,可容易地获得任何通用横向Mercator(UTM)区中的道路的模型。该模型通常采用构成区中的道路的线段(以任何坐标***)的列表的形式。该列表可使用已知的或此后开发的呈现过程中的任一种转换成空间域中的图像(像素图像),只要该过程结合了用于确定像素(空间)域中给定图元的深浅度(例如,外观或真实厚度)的特定技术即可。与以上道路地图示例相一致,呈现过程应当结合用于确定空间域中对道路地图的道路建模的线的深浅度的特定技术。这些技术将在以下讨论。
在动作222处(图13),将对象的元素分类。在道路地图对象的情况下,分类可采取识别已经存在的类别,即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)在缩小时单调递减,使得缩小导致对象元素变小(例如,道路变细),并使得放大导致对象元素变大。这给予用户关于图像对象的物理性意义。
以上讨论的比例缩放特征可以参考图14来更完全地理解,图14是对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道路在缩小时保持可见(且可与其它较小的道路区分)。例如,如图5所示,A1道路102在缩放级别z=334米/像素下保持可见且可与其它道路区分。假定A1道路的物理宽度是d′=d=16米,则使用物理比例缩放呈现的线的宽度在约3300米/像素的缩放级别下将是约0.005像素,使得它基本上不可见。然而,使用其中-1<a<0(本示例中a约为-0.473)的非物理比例缩放,所呈现线的宽度在3300米/像素的缩放级别下约为0.8像素,使得它清晰可见。
注意,z1的值被选为给定道路仍具有“大于物理的”重要性的最大缩小比例。作为示例,如果整个美国被呈现在1600×1200像素的显示器上,则分辨率将是约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,这在图14中清楚地示出。
以上相对于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土路在放大缩放级别下看上去越来越像街道,而其物理比例在被放大时为一半宽。
图15的对数-对数曲线图概括了道路类型的比例缩放行为。注意,在每一比例下,外观宽度为A1>A2>A3>A4>=A5。还要注意,除了土路之外,幂律都在a=-0.41附近出现。虚线都具有-1的斜率,且表示不同物理宽度下的物理比例缩放。从上到下,这些虚线的对应物理宽度为:1.65千米、312米、100米、20米、16米、12米、8米、5米和2.5米。
当使用多个预呈现图像之间的内插时,在许多情况下有可能确保所得的内插与所有线或其它图元几何元素在其如由物理和非物理比例缩放公式确定的正确像素宽度下的理想呈现是人类不可分辨或几乎不可分辨的。为理解本发明的这一替换实施例,以下将呈现关于抗混叠线绘制的某些背景。
对抗混叠线绘制的讨论将根据以上详细讨论的道路地图示例来呈现,其中所有的图元是线,且线宽服从先前所述的比例缩放公式。参考图16A,1像素宽的垂直线用黑色绘制在白色背景上,使得该线的水平位置与像素网格精确对齐,该线仅由白色背景上1像素宽的黑色像素列构成。根据本发明的各方面,期望考虑并适应其中线宽是非整个像素的情况。参考图16B,如果线的端点保持固定,但是线的粗细度被增加到1.5像素宽,则在抗混叠图形显示器上,中心列的左侧和右侧的像素列用25%的灰度绘出。参考图16C,在2像素宽下,这些侧面列用50%灰度绘出。参考图16D,在3像素宽下,侧面列用100%黑色绘出,且结果是所期望的三个实心黑色列。
在像素化显示器上绘出非整数宽度的线的这一方法导致线宽改变时视觉连续性的感觉(或假象),从而允许不同宽度的线即使在它们的宽度仅相差一个像素的一小部分时也可清楚地区分。一般而言,称为抗混叠线绘制的这一方法被设计成确保强度函数(或者对于白色背景上的黑色线,为“1-强度”函数)在对于所绘出的线的垂线上的线积分等于线宽。该方法可容易地推广到其端点不精确地位于像素中心的线、处于除垂直以外的其它方向的线、以及曲线。
注意,图16A-D的抗混叠垂直线的绘制也可通过对两个图像进行α混和来实现,其中一个图像(图像A)的线是1像素宽,而另一图像(图像B)的线是3像素宽。α混和向显示器上的每一像素分配(1-α)*(图像A中的对应像素)+α*(图像B中的对应像素)。当α在0和1之间变化时,所呈现的线的有效宽度在1和3个像素之间平滑变化。该α混和方法仅在图像A和B中两个所呈现线宽之差是1个像素或更小的大多数一般情况下才产生良好视觉结果;否则,线在中间宽度处可显现为晕圈。同一方法可应用于以不同的线性大小呈现点、多边形、以及许多其它不同的图元图形元素。
再次转向图16A-D,1.5像素宽的线(图16B)和2像素宽的线(图16C)可通过1像素宽的线(图16A)和3像素宽的线(图16D)之间的α混和来构造。参考图17A-C,1像素宽的线(图17A)、2像素宽的线(图17B)和3像素宽的线(图17C)被示出在任意的方向上。关于其中线与像素网格精确对齐的情况的同一原理应用于图17A-C中的任意方向,尽管在它们之间进行α混和的线宽的间距为了得到良好结果可能需要比两个像素更精细。
在本地图示例的上下文中,参考图14-15的对数-对数曲线图可选择不同分辨率的一组图像用于进行预呈现。例如,现在参考图18,它基本上类似于图14,除了图18包括一组水平线和垂直线之外。水平线指示1和10像素之间的线宽,以1个像素为增量。垂直线被间隔成使得两条相邻垂直线之间间隔上的线宽不改变多于两个像素。由此,垂直线表示适于预呈现的一组缩放值,其中两个相邻的这样的预呈现图像之间的α混和将产生几乎等效于以连续可变宽度呈现表示道路的线的特性。
由图18所示的垂直线表示的六个分辨率之间的内插足以使用以约9米/像素及以上示出的比例缩放曲线来准确地呈现A1高速公路。以下关于9米/像素的呈现不需要预呈现,因为这些视图已放大了很多且因此示出了非常少的道路,从而使得垂直地呈现它们比在预呈现图像之间内插在计算上更有效(且对于数据存储要求更有效)。在大于约1000米/像素的分辨率下(这些视图包含地球表面的很大部分),可单独使用最终的预呈现图像,因为它是使用1像素宽的线的呈现。比单个像素细的线更微弱地呈现同一像素。因此,为了产生其中A1线是0.5像素宽的图像,可将1像素宽的线图像乘以值为0.5的α。
在实践中,预呈现略大的一组分辨率,使得在分辨率之间的每一间隔上,图15的比例缩放曲线中没有一个会变化1个像素以上。将允许的变化减小到1像素可得到改进的呈现质量。值得注意的是,在以下共同待决的申请中构想并讨论的小块技术可结合本发明来考虑:2004年3月1日提交的题为SYSTEM AND METHODFOR EXACT RENDERINGINA 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号中找到,该申请的全部公开内容通过引用结合于此。关于可结合实现本发明采用的混和技术的进一步细节可在美国临时专利申请第60/453,897号中找到。
有利的是,采用以上讨论的本发明的各方面,用户享受通过各缩放级别的平滑且连续的导航的外观。此外,当从一个级别缩放到另一个时,极少细节或没有细节会突然出现或消失。这表示优于现有技术的重大进步。
构想本发明的各方面可应用于众多产品,诸如因特网上的交互式软件应用程序、基于车辆的软件应用程序等等。例如,本发明可由响应于用户请求向客户机终端提供地图和驾驶方向的因特网网站使用。或者,本发明的各方面可用于汽车中的GPS导航***。本发明也可被结合到医学成像设备中,其中关于例如患者的循环***、神经***等的详细信息可如上所述地呈现和导航。本发明的应用很多以致于无法全部列出,但是本领域技术人员可以认识到,它们都在此处被构想并落入所要求保护的本发明的范围之内。
本发明也可结合其中所呈现图像提供用于做广告和其它超前商务的手段的其它应用来使用。关于本发明的这些方面和用途的其它细节可以在与其同日提交的题为METHODS AND APPARATUS FOR EMPLOYING MAPPING TECHNIQUESTO ADVANCE COMMERCE的美国临时专利申请第60/_______号,代理案卷号489/7中找到,该申请的全部公开内容通过引用结合于此。
尽管在本文中本发明是参考特定实施例来描述的,但是可以理解,这些实施例仅示出了本发明的原理和应用。因此可以理解,可以对所示的实施例作出众多修改并可设计其它安排而不脱离如所附权利要求书定义的本发明的精神和范围。
权利要求书:
1.一种方法,包括:放大或缩小具有至少一个对象的图像,其中所述至少一个对象的至少某些元素以与同所述缩放相关联的一个或多个缩放级别在物理上不成比例的方式放大和/或缩小。
2.如权利要求1所述的方法,其特征在于,所述物理上不成比例的缩放可通过以下公式来表达:p=d′·za,其中p是所述对象的一个或多个元素在所述缩放级别下的以像素为单位的线性大小,d′是按照物理单位的所述对象的一个或多个元素的估算的线性大小,z是按照物理线性大小/像素的单位的缩放级别,而a是幂律,其中a≠-1。
3.如权利要求2所述的方法,其特征在于,所述d′和a中的至少一个可对所述对象的一个或多个元素变化。
4.如权利要求2所述的方法,其特征在于,所述幂律在缩放级别z0和z1的范围内是-1<a<0,其中z0是低于z1的物理线性大小/像素。
5.如权利要求4所述的方法,其特征在于,z0、z1、d′和a中的至少一个可对所述对象的一个或多个元素变化。
6.如权利要求1所述的方法,其特征在于,所述至少一个对象的至少某些元素也以与同所述缩放相关联的一个或多个缩放级别物理上成比例的方式来放大和/或缩小。
7.如权利要求6所述的方法,其特征在于,所述物理上成比例的缩放可用以下公式来表达,p=c·d/z,其中p是所述对象的一个或多个元素的以像素为单位的线性大小,c是常量,d是所述对象的一个或多个元素的按照物理单位的真实或估算的线性大小,而z是按照物理线性大小/像素的单位的缩放级别。
8.如权利要求6所述的方法,其特征在于:
所述对象的元素具有变化的粗略程度;以及
给定缩放级别下所述元素的缩放基于以下的至少一个在物理上成比例或物理上不成比例:(i)这些元素的粗略程度;以及(ii)所述缩放级别。
9.如权利要求8所述的方法,其特征在于:
所述对象是道路地图,所述对象的元素是道路,且所述变化的粗略程度是道路层次;以及
给定缩放级别下给定道路的缩放基于(i)所述给定道路的道路层次;以及(ii)所述缩放级别而在物理上成比例或物理上不成比例。
10.一种包含一个或多个软件程序的存储介质,所述软件程序可用于使处理单元执行动作,所述动作包括:放大或缩小具有至少一个对象的图像,其中所述至少一个对象的至少某些元素以与同所述缩放相关联的一个或多个缩放级别物理上不成比例的方式来放大和/或缩小。
11.如权利要求10所述的存储介质,其特征在于,所述物理上不成比例的缩放可通过以下公式来表达:p=d′·za,其中p是所述对象的一个或多个元素在所述缩放级别下的以像素为单位的线性大小,d′是按照物理单位的所述对象的一个或多个元素的估算的线性大小,z是按照物理线性大小/像素的单位的缩放级别,而a是幂律,其中a≠-1。
12.如权利要求11所述的方法,其特征在于,d′和a中的至少一个可对所述对象的一个或多个元素变化。
13.如权利要求11所述的方法,其特征在于,所述比例幂在z0和z1之间的缩放级别范围内是-1<a<0,,其中z0是低于z1的物理线性大小/像素。
14.如权利要求13所述的存储介质,其特征在于,z0和z1中的至少一个可对所述对象的一个或多个元素变化。
15.如权利要求9所述的存储介质,其特征在于,所述至少一个对象的至少某些元素也以与同所述缩放相关联的一个或多个缩放级别物理上成比例的方式来放大和/或缩小。
16.如权利要求15所述的存储介质,其特征在于,所述物理上成比例的缩放可通过以下公式来表达:p=c·d/z,其中p是所述对象的一个或多个元素的以像素为单位的线性大小,c是常量,d是所述对象的一个或多个元素的按照物理单位的真实或估算的线性大小,而z是按照物理线性大小/像素的单位的缩放级别。
17.如权利要求15所述的存储介质,其特征在于:
所述对象的元素具有变化的粗略程度;以及
所述元素在给定缩放级别下的缩放基于以下的至少一个在物理上成比例或物理上不成比例:(i)这些元素的粗略程度;以及(ii)所述缩放级别。
18.如权利要求17所述的存储介质,其特征在于:
所述对象是道路地图,所述对象的元素是道路,并且所述变化的粗略程度是道路层次;以及
给定道路在给定缩放级别下的缩放基于(i)所述给定道路的道路层次;以及(ii)所述缩放级别而在物理上成比例或物理上不成比例。
19.一种包括处理单元的装置,所述处理单元在一个或多个软件程序的控制下操作,所述软件程序可用于使所述处理单元执行动作,所述动作包括:放大或缩小具有至少一个对象的图像,其中所述至少一个对象的至少某些元素以与同所述缩放相关联的一个或多个缩放级别物理上不成比例的方式放大和/或缩小。
20.如权利要求19所述的装置,其特征在于,所述物理上不成比例地缩放可用以下公式来表达:p=d′·za,其中p是所述对象的一个或多个元素在所述缩放级别下的以像素为单位的线性大小,d′是按照物理单位的所述对象的一个或多个元素的估算的线性大小,z是按照物理线性大小/像素的单位的缩放级别,而a是幂律,其中a≠-1。
21.如权利要求20所述的方法,其特征在于,所述d′和a中的至少一个可对所述对象的一个或多个元素变化。
22.如权利要求20所述的装置,其特征在于,所述幂律在缩放级别z0和z1的范围内是-1<a<0,其中z0是低于z1的物理线性大小/像素。
23.如权利要求22所述的装置,其特征在于,z0和z1中的至少一个可对所述对象的一个或多个元素变化。
24.如权利要求19所述的装置,其特征在于,所述至少一个对象的至少某些元素也以与同所述缩放相关联的一个或多个缩放级别物理上成比例的方式来放大和/或缩小。
25.如权利要求24所述的装置,其特征在于,所述物理上成比例的缩放可用以下公式来表达:p=c·d/z,其中p是所述对象的一个或多个元素的以像素为单位的线性大小,c是常量,d是所述对象的一个或多个元素的按照物理单位的真实或估算的线性大小,而z是按照物理线性大小/像素的单位的缩放级别。
26.如权利要求24所述的装置,其特征在于:
所述对象的元素具有变化的粗略程度;以及
给定缩放级别下的所述元素的缩放基于以下的至少一个在物理上成比例或物理上不成比例:(i)这些元素的粗略程度;以及(ii)所述缩放级别。
27.如权利要求26所述的装置,其特征在于:
所述对象是道路地图,所述对象的元素是道路,且所述变化的粗略程度是道路层次;以及
给定缩放级别下给定道路的缩放基于(i)所述给定道路的道路层次;以及(ii)所述缩放级别而在物理上成比例或物理上不成比例。
28.一种方法,包括:
准备至少一个对象的不同缩放级别的多个图像,其中所述至少一个对象的至少某些元素以与一个或多个缩放级别物理上不成比例的方式来放大和/或缩小。
29.如权利要求28所述的方法,其特征在于,所述图像在源终端处预呈现以递送到客户机终端。
30.如权利要求28所述的方法,其特征在于,所述物理上不成比例的缩放可用以下公式来表达:p=d′·za,其中p是所述对象的一个或多个元素在所述缩放级别下的以像素为单位的线性大小,d′是按照物理单位的所述对象的一个或多个元素的估算的线性大小,z是按照物理线性大小/像素的单位的缩放级别,而a是幂律,其中a≠-1。
31.如权利要求30所述的方法,其特征在于,所述d′和a中的至少一个可对所述对象的一个或多个元素变化。
32.如权利要求30所述的方法,其特征在于,所述幂律在z0和z1之间的缩放级别范围内是-1<a<0,其中z0是低于z1的物理线性大小/像素。
33.如权利要求32所述的方法,其特征在于,z0和z1中的至少一个可对所述对象的一个或多个元素变化。
34.如权利要求28所述的方法,其特征在于,所述至少一个对象的至少某些元素也以与同所述缩放相关联的一个或多个缩放级别物理上成比例的方式来放大和/或缩小。
35.如权利要求34所述的方法,其特征在于,所述物理上成比例的缩放可用以下公式来表达:p=c·d/z,其中p是所述对象的一个或多个元素的以像素为单位的线性大小,c是常量,d是所述对象的一个或多个元素的按照物理单位的真实或估算的线性大小,而z是按照物理线性大小/像素的单位的缩放级别。
36.如权利要求34所述的方法,其特征在于:
所述对象的元素具有变化的粗略程度;以及
给定缩放级别下的所述元素的缩放基于以下的至少一个在物理上成比例或物理上不成比例: (i)这些元素的粗略程度;以及(ii)所述缩放级别。
37.如权利要求36所述的方法,其特征在于:
所述对象是道路地图,所述对象的元素是道路,且所述变化的粗略程度是道路层次;以及
给定缩放级别下给定道路的缩放基于(i)所述给定道路的道路层次;以及(ii)所述缩放级别而在物理上成比例或在物理上不成比例。
38.如权利要求37所述的方法,其特征在于,所述幂律在z0和z1之间的缩放级别范围内是-1<a<0,其中z0是低于z1的物理线性大小/像素。
39.如权利要求38所述的方法,其特征在于,z0和z1中的至少一个可对所述道路地图的一个或多个道路变化。
40.一种方法,包括:
在客户机终端处接收道路地图的变化缩放级别的多个预呈现图像;
在所述客户机终端处接收包括缩放信息的一个或多个用户导航命令;以及
混和两个或多个所述预呈现图像以获得对应于所述导航命令的缩放信息的中间缩放级别下的中间图像,使得所述中间图像在所述客户机终端上的显示提供平滑导航的外观。
41.如权利要求40所述的方法,其特征在于,所述道路地图的至少某些道路被放大和/或缩小以产生所述多个预定图像,且所述缩放是以下的至少一个: (i)物理上与所述缩放级别成比例;以及(ii)物理上与所述缩放级别不成比例。
42.如权利要求41所述的方法,其特征在于,所述物理上成比例的缩放可用以下公式来表达:p=c·d/z,其中p是所述对象的一个或多个元素在所述缩放级别下的以像素为单位的线性大小,c是常量,d是所述对象的一个或多个元素的按照物理单位的真实或估算的线性大小,而z是按照物理线性大小/像素的单位的缩放级别。
43.如权利要求41所述的方法,其特征在于,所述物理上不成比例的缩放可用以下公式来表达:p=d′·za,其中p是所述对象的一个或多个元素在所述缩放级别下的以像素为单位的线性大小,d′是按照物理单位的所述对象的一个或多个元素的估算的线性大小,z是按照物理线性大小/像素的单位的缩放级别,而a是幂律,其中a≠-1。
44.如权利要求43所述的方法,其特征在于,所述d′和a中的至少一个可对所述对象的一个或多个元素变化。
45.如权利要求43所述的方法,其特征在于,所述幂律在z0和z1之间的缩放级别范围内是-1<a<0,其中z0是低于z1的物理线性大小/像素。
46.如权利要求45所述的方法,其特征在于,z0和z1中的至少一个可对所述道路地图的一个或多个道路变化。
47.如权利要求40所述的方法,其特征在于:
所述道路地图的道路具有变化的粗略程度;以及
给定预呈现图像中所述道路的缩放基于以下的至少一个在物理上成比例或物理上不成比例:(i)这些道路的粗略程度;以及(ii)所述给定预呈现图像的缩放级别。
48.一种方法,包括:
在客户机终端处接收至少一个对象的变化缩放级别的多个预呈现图像,所述至少一个对象的至少某些元素被放大和/或缩小以产生所述多个预定图像,且所述缩放是以下的至少一种:(i)与所述缩放级别物理上成比例;以及(ii)与所述缩放级别物理上不成比例;
在所述客户机终端处接收包括缩放信息的一个或多个用户导航命令;
混和两个或多个所述预呈现图像以获得对应于所述导航命令的缩放信息的中间缩放级别下的中间图像;以及
在所述客户机终端上显示所述中间图像。
49.如权利要求48所述的方法,其特征在于,所述混和步骤包括执行α混和、三线性内插和双三次线性内插中的至少一种。
50.如权利要求48所述的方法,其特征在于,所述预呈现图像的个数使得其间的混和提供平滑导航的外观。
51.如权利要求48所述的方法,其特征在于,所述缩放级别和所述预呈现图像的缩放被选为使得所述对象的元素中给定的一个或多个的以像素数p为单位的相应线性大小在一个预呈现图像和更高分辨率的另一预呈现图像之间不会变化多于预定个数的像素。
52.如权利要求51所述的方法,其特征在于,所述预定的像素数约为2。
53.如权利要求50所述的方法,其特征在于,还包括对所述预呈现图像中最低分辨率的一个进行向下采样,以便于导航到超过所述预呈现图像中最低分辨率的一个缩放级别的缩放级别。
54.如权利要求48所述的方法,其特征在于,所述物理上成比例的缩放可用以下公式来表达:p=c·d/z,其中p是所述对象的一个或多个元素在所述缩放级别下的以像素为单位的线性大小,c是常量,d是所述对象的一个或多个元素的按照物理单位的真实或估算的线性大小,而z是按照物理线性大小/像素的单位的缩放级别。
55.如权利要求48所述的方法,其特征在于,所述物理上不成比例的缩放可用以下公式来表达:p=d′·za,其中p是所述对象的一个或多个元素在所述缩放级别下的以像素为单位的线性大小,d′是按照物理单位的所述对象的一个或多个元素的估算的线性大小,z是按照物理线性大小/像素的单位的缩放级别,而a是幂律,其中a≠-1。
56.如权利要求55所述的方法,其特征在于,所述d′和a中的至少一个可对所述对象的一个或多个元素变化。
57.如权利要求55所述的方法,其特征在于,所述幂律在z0和z1之间的缩放级别范围内是-1<a<0,其中z0是低于z1的物理线性大小/像素。
58.如权利要求57所述的方法,其特征在于,z0和z1中的至少一个可对所述对象的一个或多个元素变化。
59.如权利要求48所述的方法,其特征在于,所述多个预呈现图像是由所述客户机终端通过分组化网络来接收的。
60.如权利要求59所述的方法,其特征在于,所述分组化网络是因特网。
61.如权利要求48所述的方法,其特征在于:
所述对象的元素具有变化的粗略程度;以及
给定预呈现图像中所述元素的缩放基于以下的至少一个在物理上成比例或物理上不成比例:(i)这些元素的粗略程度;以及(ii)所述给定预呈现图像的缩放级别。
62.如权利要求61所述的方法,其特征在于:
所述对象是道路地图,所述对象的元素是道路,且所述变化的粗略程度是道路层次;以及
给定缩放级别下给定道路的缩放基于(i)所述给定道路的道路层次;以及(ii)所述给定预呈现图像的缩放级别而在物理上成比例或物理上不成比例。
63.如权利要求62所述的方法,其特征在于,所述物理上不成比例的缩放可用以下公式来表达:p=d′·za,其中p是所述对象的一个或多个元素在所述缩放级别下的以像素为单位的线性大小,d′是按照物理单位的所述对象的一个或多个元素的估算的线性大小,而z是按照物理线性大小/像素的单位的缩放级别。
64.如权利要求63所述的方法,其特征在于,所述d′和a中的至少一个可对所述对象的一个或多个元素变化。
65.如权利要求63所述的方法,其特征在于,所述幂律在z0和z1之间的缩放级别范围内是-1<a<0,其中z0是低于z1的物理线性大小/像素。
66.如权利要求65所述的方法,其特征在于,z0和z1中的至少一个可对所述道路地图的一个或多个道路变化。
67.一种方法,包括:
通过通信信道向终端发送至少一个对象的变化缩放级别的多个图像,所述至少一个对象的至少某些元素被放大和/或缩小以产生所述多个图像,且所述缩放是以下的至少一种: (i)与所述缩放级别物理上成比例;以及(ii)与所述缩放级别物理上不成比例;
在所述终端处接收所述多个图像;
使用所述终端发出包括缩放信息的一个或多个用户导航命令;
混和至少两个所述图像以获得对应于所述导航命令的缩放信息的中间缩放级别的中间图像;以及
在所述终端上显示所述中间图像。
68.如权利要求67所述的方法,其特征在于,所述混和步骤包括执行α混和、三线性内插和双三次线性内插中的至少一个。
69.如权利要求67所述的方法,其特征在于,所述图像数使得其间的混和提供平滑导航的外观。
70.如权利要求67所述的方法,其特征在于,所述缩放级别和所述预呈现图像的缩放被选为使得所述对象的元素中给定的一个或多个的以像素数p为单位的相应线性大小在一个预呈现图像和更高分辨率的另一预呈现图像之间不会变化多于预定个数的像素。
71.如权利要求70所述的方法,其特征在于,所述预定的像素数是约为2。
72.如权利要求69所述的方法,其特征在于,还包括对所述预呈现图像中最低分辨率的一个进行向下采样,以便于导航到超过所述图像中最低分辨率的一个缩放级别的缩放级别。
73.如权利要求69所述的方法,其特征在于,所述物理上成比例的缩放可用以下公式来表达:p=c·d/z,其中p是所述对象的一个或多个元素在所述缩放级别下的以像素为单位的线性大小,c是常量,d是所述对象的一个或多个元素的按照物理单位的真实或估算的线性大小,而z是按照物理线性大小/像素的单位的缩放级别。
74.如权利要求69所述的方法,其特征在于,所述物理上不成比例的缩放可用以下公式来表达:p=d′·za,其中p是所述对象的一个或多个元素在所述缩放级别下的以像素为单位的线性大小,d′是按照物理单位的所述对象的一个或多个元素的估算的线性大小,z是按照物理线性大小/像素的单位的缩放级别,而a是幂律,其中a≠-1。
75.如权利要求74所述的方法,其特征在于,所述d′和a中的至少一个可对所述对象的一个或多个元素变化。
76.如权利要求74所述的方法,其特征在于,所述幂律在z0和z1之间的缩放级别范围内是-1<a<0,其中z0是低于z1的物理线性大小/像素。
77.如权利要求76所述的方法,其特征在于,z0和z1中的至少一个可对所述对象的一个或多个元素变化。
78.如权利要求69所述的方法,其特征在于,所述多个预呈现图像是由所述终端通过分组化网络来接收的。
79.如权利要求78所述的方法,其特征在于,所述分组化网络是因特网。
80.如权利要求69所述的方法,其特征在于:
所述对象的元素具有变化的粗略程度;以及
给定图像中所述元素的缩放基于以下的至少一个在物理上成比例或物理上不成比例:(i)这些元素的粗略程度;以及(ii)所述给定预呈现图像的缩放级别。
81.如权利要求80所述的方法,其特征在于:
所述对象是道路地图,所述对象的元素是道路,且所述变化的粗略程度是道路层次;以及
给定缩放级别下给定道路的缩放基于(i)所述给定道路的道路层次;以及(ii)所述给定预呈现图像的缩放级别而在物理上成比例或物理上不成比例。
82.如权利要求81所述的方法,其特征在于,所述物理上不成比例的缩放可用以下公式来表达:p=d′·za,其中p是所述对象的一个或多个元素在所述缩放级别下的以像素为单位的线性大小,d′是按照物理单位的所述对象的一个或多个元素的估算的线性大小,z是按照物理线性大小/像素的单位的缩放级别,而a是幂律,其中a≠-1。
83.如权利要求82所述的方法,其特征在于,所述d′和a中的至少一个可对所述对象的一个或多个元素变化。
84.如权利要求82所述的方法,其特征在于,所述缩放幂在z0和z1之间的缩放级别范围内是-1<a<0,其中z0是低于z1的物理线性大小/像素。
85,如权利要求84所述的方法,其特征在于,z0和z1中的至少一个可对所述道路地图的一个或多个道路变化。
发明摘要
构想了执行各种动作的方法和装置,这些动作包括:放大或缩小具有至少一个对象的图像,其中该至少一个对象的至少某些元素以与同缩放相关联的一个或多个缩放级别物理上不成比例的方式来放大和/或缩小,且其中,例如物理上不成比例的缩放可用以下公式来表达:p=d′·za,其中p是该对象的一个或多个元素在该缩放级别下的以像素为单位的线性大小,d′是按照物理单位的该对象的一个或多个元素的估算的线性大小,z是按照物理线性大小/像素的单位的缩放级别,而a是幂律,其中a≠-1。
高效数据高速缓存
相关申请的交叉引用
本申请要求2004年6月1日提交的题为“The Zeno cache:a system forincreasing the effectiveness of most-recently-used(MRU)caching for variablycompressable data objects”的美国临时专利申请第60/575,987号的优先权,该申请的全部公开内容通过引用结合于此。
发明背景
“MRU”高速缓存是一种用于在客户机-服务器***中实现客户机方存储器的公知概念,其中MRU代表“最近最常使用”。假定服务器能够访问客户机并能够向其提供大量数据对象,这些数据对象总计占据了大量存储器。然而,客户机和服务器之间的可用带宽是有限的,因此对从服务器发送数据对象的客户机请求要花费时间。如果对数据对象的访问是合理地“相干的”,这意味着客户机当前需要的对象可能在不久的将来再次需要,则MRU高速缓存可提高客户机-服务器***的效率。采用这一方法,客户机留出某些有限量的存储器(一般比储存服务器上的所有对象所需的要少得多),并在该存储器(高速缓存)中储存与适合的一样多的最近最常请求的对象。当新对象从服务器发送到客户机且客户机的高速缓存空间已被用尽时,从高速缓存中擦除最近最少使用(LRU)对象以创建其中可储存新对象的数据存储空间。
一般而言,当客户机需要数据对象时,客户机首先检查该对象是否被高速缓存。如果是,则使用高速缓存的表示,从而消除了对缓慢或计算上昂贵的服务器请求的需要。通常,利用高速缓存的表示也将该对象“提升”到高速缓存的MRU端。该方法一般提供了优于对访问的每一数据对象必须向服务器请求数据的实质性能优势。
当计算***访问新对象并将其储存在高速缓存中时,从高速缓存中擦除最近最少使用对象可导致高速缓存使用率的低效。即使被擦除,高速缓存中的最近最少使用对象也可能再次被服务器请求。当发生这一情况时,服务器可能承担相当慢或计算上昂贵的从更遥远的数据存储源,诸如主存储器或大容量存储设备中检索这一对象的任务。给定高速缓冲存储器的有限大小,对象擦除可能以某一频率进行,由此使得服务器或其它计算***花费大量的资源来访问更遥远的存储器以获得曾经被方便地储存在高速缓冲存储器中的数据。因此,本领域中需要一种高速缓冲存储器管理的更高效且灵活的方法。
发明概述
根据一方面,本发明可提供一种方法,包括:提供计算***中具有一组初始高速缓存对象的高速缓存,每一高速缓存对象具有初始压缩比并包括所储存的数据;减少由除高速缓存对象中给定的一个之外的至少一个高速缓存对象所占据的数据存储空间的量;以及增加由该给定高速缓存对象占据的数据存储空间的量。较佳地,减少包括将数据存储空间的量减少一给定量。较佳地,增加包括将由给定高速缓存对象所占据的数据存储空间的量增加一给定量。较佳地,减少包括增大至少一个高速缓存对象的初始压缩比。较佳地,增加包括减小给定高速缓存对象的初始压缩比。较佳地,给定高速缓存对象是高速缓存对象中最近最常使用的高速缓存对象。较佳地,经受减少步骤的至少一个高速缓存对象包括高速缓存对象中最近最少使用的高速缓存对象。
较佳地,减少包括对至少一个高速缓存对象移除所储存数据的一部分。较佳地,增加包括对给定高速缓存对象补充所储存的数据。较佳地,对每一高速缓存对象可用的数据存储空间的量可等于有限个数的离散值中的一个。较佳地,减少包括对高速缓存对象中除给定高速缓存对象之外的至少一个随机选择的高速缓存对象减少数据存储空间的量。较佳地,减少包括将用于至少一个随机选择的高速缓存对象的数据存储空间的量减少到随机确定的程度。较佳地,随机选择的高速缓存对象是使用随机方法和伪随机方法之一来选择的。较佳地,随机选择的高速缓存对象的选择是通过试探来引导的。
较佳地,该方法还包括在增加之后以无损压缩的形式储存给定高速缓存对象。较佳地,该方法还包括在增加之后以未压缩形式储存给定高速缓存对象。较佳地,减少包括移除除给定高速缓存对象之外的至少一个高速缓存对象。
根据另一方面,本发明可提供一种装置,包括具有能够在操作上与主存储器通信的至少一个处理器的计算***;并且该计算***中的高速缓存具有一组初始高速缓存对象,每一高速缓存对象具有一组初始压缩比并包括所储存的数据;其中该计算***可用于减少由除高速缓存对象中给定的一个之外的至少一个高速缓存对象所占据的数据存储空间的量;以及增加由该给定高速缓存对象所占据的数据存储空间的量。较佳地,减少包括将数据存储空间的量减少一给定量。较佳地,增加包括将由给定高速缓存对象占据的数据存储空间的量增加一给定量。较佳地,减少包括增大至少一个高速缓存对象的初始压缩比。较佳地,增加包括减小给定高速缓存对象的初始压缩比。
较佳地,给定高速缓存对象是高速缓存对象中最近最常使用的高速缓存对象。较佳地,减少包括对至少一个高速缓存对象移除所储存数据的一部分。较佳地,增加包括对给定高速缓存对象补充所存储的数据。较佳地,对每一高速缓存对象可用的数据存储空间的量等于有限个数的离散值之一。较佳地,减少包括减少用于高速缓存对象中除给定高速缓存对象之外的至少一个随机选择的高速缓存对象的数据存储空间的量。较佳地,减少包括将用于至少一个随机选择的高速缓存对象的数据存储空间的量减少到随机确定的程度。
根据另一方面,本发明提供一种方法,包括:提供计算***中的高速缓存,该高速缓存具有一初始条件;如果在该初始条件下在该高速缓存中没有足够的数据存储空间以在该高速缓存中储存至少一个新对象,则压缩该高速缓存中的至少一个对象以为了该至少一个新对象清除数据存储空间;以及在该高速缓存中储存至少一个新对象。较佳地,初始条件对应于高速缓存为空。较佳地,该方法还包括在不压缩储存在高速缓存中的对象的情况下继续在高速缓存中储存新对象,直到高速缓存中没有剩余足够的数据存储空间来储存任何另外的新对象。较佳地,该方法还包括如果在初始条件下在高速缓存中有足够的空间来储存至少一个新对象,则在不压缩的情况下在高速缓存中储存至少一个新对象。
当结合附图考虑本发明的较佳实施例的描述时,本领域技术人员可以清楚其它方面、特征和优点等。
附图简述
图1是根据本发明的一个或多个实施例的高速缓存中个别高速缓存对象取决于该高速缓存对象在该高速缓存内的使用新近性的数据存储大小的曲线图;
图2是根据本发明的一个或多个实施例的由高速缓存中的高速缓存对象所占据的数据存储空间的累计和相对于所累加的高速缓存对象的个数“N”所绘制的曲线图;
图3是根据本发明的一个或多个实施例的包括多个高速缓存对象的数据高速缓存的框图;
图4是根据本发明的一个或多个实施例的其中高速缓存对象已被调整大小的图3的数据高速缓存的框图;
图5是根据本发明的一个或多个实施例的其中所访问的高速缓存对象已被调整大小并被恢复到高速缓存的图4的数据高速缓存的框图;
图6是根据本发明的一个或多个实施例的用于访问数据高速缓存中的高速缓存对象和更新数据高速缓存的方法的流程图;以及
图7是适用于本发明的一个或多个实施例的计算***的框图。
为图示本发明的各方面起见,附图中示出了当前较佳的形式,但是可以理解,本发明不限于所示的精确排列和手段。
较佳实施例的详细描述
本发明公开参考了高速缓存的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描述能够根据以上所讨论的理论来工作的高速缓存的操作。
在图1的曲线图中,变量“N”较佳地对应于每一高速缓存对象的号码,且每一高速缓存对象的号码的值表示对每一这样的高速缓存对象的使用的新近性,其中递增的N值对应于对与该号码相关联的高速缓存对象的使用的递减的新近性。变量“Y”较佳地对应于每一高速缓存对象的大小。对于“Y”变量,值“1”可对应于高速缓存对象在其最高质量条件下,即当它完全不被压缩时的大小。最近最常使用对象可以用低失真来表示,而最近较少使用对象可以服从与其最后一次使用的新近性相一致的压缩程度。在图1中可以看到,压缩的高速缓存对象大小Y的值随着相关高速缓存对象的使用的新近性降低而下降。注意, “Y”变量可对应于高速缓存中每一对象(无论是否被压缩)的绝对大小(以任意单位来表示)。或者,在一个或多个其它实施例中,“Y”可对应于一压缩比,对该压缩比例如值“1”对应于全大小对象,而值“0.5”对应于占据了其未压缩大小的一半的对象。
参考图2,对每一N值,标号从1到N的对象的大小Y的累计和仍是有穷数,如图2所示。变量“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等级数可仅包括少量可用高速缓存对象大小,这可能导致高速缓存内不同对象之间压缩比的显著差异。可使用随机选择来以加权方式“挤压”(减小所使用的数据存储空间)高速缓存对象的一随机选择的子集,直到使某一目标空间量对新高速缓存对象可用。该方法可提供有益的结果,因为高速缓存对象在高速缓存中的确切位置的重要性可随着高速缓存中对象的个数增加而减小。每一对象被“挤压”的量也可至少部分地被随机化。使用类似此处所讨论的这些随机化算法可减少可在使用高速缓存中所储存的高速缓存对象呈现的图像中感知到的高速缓存对象质量的明显不连续性或阈值。
在下文中,提出根据本发明的一个或多个方面的管理数据高速缓存中的高速缓存对象的一个说明性示例。
图3是根据本发明的一个或多个实施例的包括多个高速缓存对象302-310的数据高速缓存300的框图。图4是根据本发明的一个或多个实施例的其中高速缓存对象302、304、308和310已被调整大小的图3的数据高速缓存300的框图。图5是根据本发明的一个或多个实施例的其中访问的高速缓存对象306已被调整大小并被恢复到高速缓存300的图4的数据高速缓存的框图。
在一个或多个实施例中,包括图3所示的实施例,高速缓存300可包括五个高速缓存对象(在图3-6中为简明起见缩写为“CO”):CO1302、CO2304、CO3306、CO4308以及CO5310。图3所示的高速缓存对象的个数(5)是为了方便示出此处所描述的各种概念而选择的。然而,高速缓存300内可以包括比五个更多或更少的高速缓存对象。原则上对可被包括在高速缓存300内的高速缓存对象的个数没有下限。原则上,可被包括在高速缓存300内的高速缓存对象的上限可对应于高速缓存的总大小除以最小可接受的可能高速缓存对象大小,这将在本文的别处讨论。
在图3-5中,为描述此处所公开的各种概念起见,每一示出的高速缓存对象的宽度旨在与该高速缓存对象使用的数据存储空间成正比。并且,在图3-5中,从最左边的高速缓存对象前进到最右边的高速缓存对象对应于对所显示的高速缓存对象的访问的递增的新近性,其中最近最少使用的高速缓存对象在最左边示出,而最近最常使用的高速缓存对象在最右边示出。
图4示出了在CO3306被诸如计算***700等采用高速缓存300的计算***访问了之后的高速缓存300。在该示例中,CO3306不在高速缓存300内其原始位置上示出,因为该位置在图4所示的高速缓存300的情况下已被盖写。此外,创建了自由空间402以为可以比图3中CO3的原始形式占据更多数据存储空间的CO3306的展开形式留出空间。在图5中,CO306的展开形式被写入高速缓存300中由图4所示的高速缓存300情况中的自由空间402所占据的一部分中。
图6是根据本发明的一个或多个实施例的用于访问数据高速缓存300中的高速缓存对象和更新数据高速缓存300的方法600的流程图。以下参考图3-6。
在步骤602处,向能够访问高速缓存300的程序提供高速缓存对象302、304、306、308和310。最初存在于高速缓存300中的该组高速缓存对象在图3中示出。高速缓存300的该初始条件可从一个或多个程序的默认设置或从先前在一个或多个程序中执行的程序步骤中得到。在任何情况下,在以下讨论中感兴趣的是在建立了图3所示的初始条件之后对高速缓存300作出的改变。尽管在各种计算***的任一个上运行的许多程序中的任一个可以与高速缓存300通信,但是为方便起见,能够访问高速缓存300的软件在下文中被简称为“程序”。
在步骤604处,可提供关于程序接着将使用哪一高速缓存对象的指示。在步骤606处,程序可访问所指示的高速缓存对象,在本示例中是CO3306。
在步骤608处,可确定所访问的高速缓存对象是否可被展开。此处,高速缓存对象在它可通过服从较低的压缩比来占据更多数据存储空间时是可展开的。这一展开可通过补充已经存在于高速缓存对象中的数据而非通过提供对应于新压缩比(或对应于缺少压缩)的一组全新的数据来实现。
如果所访问的高速缓存对象是不可展开的,则在步骤610中较佳地将其恢复到高速缓存300中。较佳地,在步骤610中,恢复的高速缓存对象在访问之后占据与在这些访问之前所占据的相同的数据存储空间量。依照LRU-MRU高速缓存原理,在被恢复到高速缓存300之后,所访问的高速缓存对象可被写入高速缓存300的最右侧,即MRU端。然而,作为替换,所访问的高速缓存对象可被写入高速缓存300的任一部分。继续方法600的这一分支,方法600较佳地在步骤612处结束。
参考步骤608,如果所访问的高速缓存对象,诸如高速缓存对象306是可扩展的,则根据本发明的一个或多个实施例,较佳地展开该对象(步骤614)。如本文先前所讨论的,如上所述地展开高速缓存对象较佳地帮助提供了一种其中最近最常和/或最频繁访问的高速缓存对象以最高质量水平被储存在高速缓存300中的安排。
在其中高速缓存中有“N”个高速缓存对象的一个或多个实施例中,这些高速缓存对象的可能大小(如在数据存储空间中测得的)的个数可限于等于log2(N)的量。如上所述建立有限的、有穷个可能的高速缓存对象大小较佳地限制了为诸如CO306等要在步骤614中展开的高速缓存对象确定新的、展开的大小的计算开销。
在一个或多个实施例中,CO306的展开(或换言之,较少压缩的)形式所需的数据存储空间的量可由能够访问高速缓存300的计算***(未示出)来计算。在高速缓存300尚未准备好接收CO306的展开形式的情况下,CO306的展开形式可被写入另一存储器存储位置(未示出)以便临时储存在那里。
在步骤616处,较佳地使得储存CO306的展开形式所需的数据存储空间402在高速缓存300内可用。如果在高速缓存300内存在足够的空间来储存CO306的展开形式而不更改高速缓存300内的任何高速缓存对象,则可省略高速缓存300中一个或多个高速缓存对象大小的减小。然而,在高速缓存300中的所有或基本上所有存储空间在CO306被访问之前已被占据的情况下,除CO306之外的一个或多个高速缓存对象可经受大小的减小以释放高速缓存300的空间,来储存高速缓存对象306的展开形式。
在一个或多个实施例中,高速缓存对象大小减小操作的数目可在存在有限个可能高速缓存大小的情况下减少。限制高速缓存对象大小减小操作的数目较佳地用于减少访问高速缓存300的计算***上的计算负担,并较佳地提供了总体计算***效率。
在一个或多个实施例中,可以有各种方法来实现期望的数据存储空间量的清除。此处,术语“清除”可对应于通过减少分配给高速缓存300内的一个或多个高速缓存对象的数据存储空间来使数据存储空间在高速缓存300中可用。
在一个或多个其它实施例中,要清除的数据存储空间的量可对应于除展开的高速缓存对象在其被计算***最近一次访问之前所占据的空间之外所需的附加存储的量。然而,在其它实施例中,要清除的空间的量可以小于或大于最近最常访问的高速缓存对象大小上增大的空间的量。
在一个或多个实施例中,为最近最常使用的展开的高速缓存对象清除的空间可以在高速缓存300的一端,如图5所示。然而,在其它实施例中,所清除的空间可被置于高速缓存300内的其它位置。
在一个或多个实施例中,要变得可用的数据存储空间能以图3中除CO3306(最近最常使用的高速缓存对象)之外的一个或多个高速缓存对象为代价来提供。具体地,可通过减小仅一个剩余高速缓存对象的大小或通过减小除了最近最常使用的高速缓存对象之外的所有高速缓存对象的大小来提供所需的附加空间。此外,可使得在这两个极端之间的任何个数的高速缓存对象放出(shed)存储空间以支持该展开的最近最常使用的高速缓存对象。在下文中,除最近最常访问的高速缓存对象之外的所有高速缓存对象被认为是“有资格减小大小”。
在一个或多个实施例中,有资格减小大小的一个或多个高速缓存对象的大小减小的程度可根据一个或多个考虑事项来选择。在一个实施例中,有资格减小大小的高速缓存对象可放出相等或基本相等的存储空间的量。在另一实施例中,合格的高速缓存对象可放出其预减小大小的相等或基本相等的比例以便为展开的最近最常使用的高速缓存对象清除空间。
在一个或多个其它实施例中,每一高速缓存对象的大小减小的程度可以基于该高速缓存对象最后一次被访问的新近性。具体地,有资格减小大小的高速缓存对象可随着其最后一次访问的新近性的减小而放出越来越多的存储空间。由此,在这一方法中,有资格减小大小的最近最常使用的高速缓存对象可放出相对少量的存储空间,而最近最少使用的高速缓存对象可放出相对大量的数据存储空间,且在这两个极端之间的高速缓存对象放出中间量的存储空间。
尽管此处对存储空间减少的讨论主要涉及仅减小不是最近最常访问的高速缓存对象的大小,但在一个或多个实施例中,可从高速缓存300中移除一个或多个高速缓存对象来清除数据存储空间。此外,这一高速缓存对象移除可单独地实施,或与将保留在高速缓存300内的高速缓存对象的高速缓存对象数据存储空间减少组合实施。
在图5的实施例中,保留在高速缓存300中的所有四个高速缓存对象302、304、308和310的大小都被减小,以清除数据存储空间来将CO306写入高速缓存300的最右侧端处所示的位置。然而,在替换实施例中,有资格减小大小的四个高速缓存对象302、304、308和310中的三个或更少可经受大小减小。较佳地,该方法在步骤620处结束。
在一个或多个实施例中,并非仅采用每一高速缓存对象的使用新近性作为确定高速缓存对象大小时的变量来管理高速缓存中的对象,而是高速缓存对象管理也可涉及关于接下来可能需要哪些对象的智能猜测。由此,较不可能需要的对象可在具有将来需要的较高可能性的对象之前被“挤压”。在一个或多个实施例中,这一猜测方法可以与可随机地选择高速缓存中的对象来挤压并可为选择的对象另外生成随机变化的挤压量的算法相组合。
图7是适用于本发明的一个或多个实施例的计算***700的框图。在一个或多个实施例中,中央处理单元(CPU)702可耦合到总线704。另外,总线704可以耦合到本发明的高速缓存300、随机存取存储器(RAM)706、只读存储器(ROM)708、输入/输出(I/O)适配器710、通信适配器722、用户接口适配器706以及显示适配器718。
在一个或多个实施例中,RAM706和/或ROM708可以保存用户数据、***数据和/或程序。I/O适配器710可将诸如硬盘驱动器712、CD-ROM(未示出)或其它大容量存储设备等存储设备连接到计算***700。通信适配器722可以将计算***700耦合到局域网、广域网或因特网724。用户接口适配器716可将诸如键盘726和/或定点设备714等用户输入设备耦合到计算***700。此外,显示适配器718可以由CPU702驱动以控制显示设备720上的显示。CPU702可以是任何通用CPU。
注意,本文中迄今为止所描述和/或稍后描述的方法和装置可利用已知技术中的任一种来实现,诸如标准数字电路、模拟电路、可用于执行软件和/或固件程序的公知处理器中的任一种、可编程数字装置或***、可编程阵列逻辑器件或以上的任何组合。本发明的一个或多个实施例也可被包含在软件程序中以便储存在适当的存储介质中并由处理单元来执行。
尽管本发明此处是参考特定实施例来描述的,但是可以理解,这些实施例仅示出了本发明的原理和应用。因此,可以理解,可对说明性实施例作出众多修改并可设计出其它安排而不脱离如所附权利要求书定义的本发明的精神和范围。
权利要求书:
1.一种方法,包括:
提供计算***中具有一组初始高速缓存对象的高速缓存,每一所述高速缓存对象具有一初始压缩比且包括所储存的数据;
减少由除所述高速缓存对象中给定的一个之外的至少一个所述高速缓存对象占据的数据存储空间的量;以及
增加由所述给定高速缓存对象占据的数据存储空间的量。
2.如权利要求1所述的方法,其特征在于,所述减少包括将所述数据存储空间的量减少一给定量。
3.如权利要求2所述的方法,其特征在于,所述增加包括将由所述给定高速缓存对象占据的所述数据存储空间的量增加所述给定量。
4.如权利要求1所述的方法,其特征在于,所述减少包括增大所述至少一个高速缓存对象的所述初始压缩比。
5.如权利要求1所述的方法,其特征在于,所述增加包括减小所述给定高速缓存对象的所述初始压缩比。
6.如权利要求1所述的方法,其特征在于,所述给定高速缓存对象是所述高速缓存对象中最近最常使用的高速缓存对象。
7.如权利要求1所述的方法,其特征在于,经受所述减少步骤的所述至少一个高速缓存对象包括所述高速缓存对象中最近最少使用的高速缓存对象。
8.如权利要求1所述的方法,其特征在于,所述减少包括:
对所述至少一个高速缓存对象移除所储存的数据的一部分。
9.如权利要求1所述的方法,其特征在于,所述增加包括对所述给定高速缓存对象补充所述储存的数据。
10.如权利要求1所述的方法,其特征在于,对每一所述高速缓存对象可用的数据存储空间的量可等于有限个离散值之一。
11.如权利要求1所述的方法,其特征在于,所述减少包括减少用于所述高速缓存对象中除所述给定高速缓存对象之外的至少一个随机选择的高速缓存对象的所述数据存储空间的量。
12.如权利要求11所述的方法,其特征在于,所述减少包括将用于所述至少一个随机选择的高速缓存对象的所述数据存储空间的量减少到一随机确定的程度。
13.如权利要求11所述的方法,其特征在于,所述随机选择的高速缓存对象是使用随机方法和伪随机方法之一来选择的。
14.如权利要求11所述的方法,其特征在于,所述随机选择的高速缓存对象的所述选择是通过试探来引导的。
15.如权利要求1所述的方法,其特征在于,还包括:
在所述增加之后以无损压缩的形式储存所述给定高速缓存对象。
16.如权利要求1所述的方法,其特征在于,还包括:
在所述增加之后以未压缩的形式储存所述给定高速缓存对象。
17.如权利要求1所述的方法,其特征在于,所述减少包括移除除所述给定高速缓存对象之外的至少一个所述高速缓存对象。
18.一种装置,包括:
具有能够在操作上与主存储器通信的至少一个处理器的计算***;以及
所述计算***中具有一组初始高速缓存对象的高速缓存,每一所述高速缓存对象具有一初始压缩比且包括所储存的数据;
其中,所述计算***可用于:
减少由除所述高速缓存对象中给定的一个之外的至少一个所述高速缓存
对象占据的数据存储空间的量;以及
增加由所述给定高速缓存对象占据的数据存储空间的量。
19.如权利要求18所述的装置,其特征在于,所述减少包括将所述数据存储空间的量减少一给定量。
20.如权利要求19所述的装置,其特征在于,所述增加包括将由所述给定高速缓存对象占据的所述数据存储空间的量增加所述给定量。
21.如权利要求18所述的装置,其特征在于,所述减少包括增大所述至少一个高速缓存对象的所述初始压缩比。
22.如权利要求18所述的装置,其特征在于,所述增加包括减小所述给定高速缓存对象的所述初始压缩比。
23.如权利要求1 8所述的装置,其特征在于,所述给定高速缓存对象是所述高速对象中最近最常使用的高速缓存对象。
24.如权利要求18所述的装置,其特征在于,所述减少包括对所述至少一个高速缓存对象移除所储存的数据的一部分。
25.如权利要求1 8所述的装置,其特征在于,所述增加包括对所述给定高速缓存对象补充所述储存的数据。
26.如权利要求1 8所述的装置,其特征在于,对每一所述高速缓存对象可用的数据存储空间的量可等于有穷个离散值之一。
27.如权利要求18所述的装置,其特征在于,所述减少包括减少用于所述高速缓存对象中除所述给定高速缓存对象之外的至少一个随机选择的高速缓存对象的所述数据存储空间的量。
28.如权利要求27所述的装置,其特征在于,所述减少包括将用于所述至少一个随机选择的高速缓存对象的所述数据存储空间的量减少到一随机确定的程度。
29.一种方法,包括:
提供计算***中的高速缓存,所述高速缓存具有一初始条件;
如果在所述初始条件下所述高速缓存中没有足够的数据存储空间以在所述高速缓存中储存至少一个新对象,则压缩所述高速缓存中的至少一个对象以便为所述至少一个新对象清除数据存储空间;以及
在所述高速缓存中储存所述至少一个新对象。
30.如权利要求29所述的方法,其特征在于,所述初始条件对应于所述高速缓存为空。
31.如权利要求30所述的方法,其特征在于,还包括在不压缩所述高速缓存中储存的所述对象的情况下继续在所述高速缓存中储存新对象,直到所述高速缓存中没有留下足够的数据存储空间来储存任何另外的新对象。
32.如权利要求29所述的方法,其特征在于,还包括如果在所述初始条件下在所述高速缓存中有足够的空间来储存所述至少一个新对象,则在没有所述压缩的情况下在所述高速缓存中储存所述至少一个新对象。
摘要
公开了一种方法,该方法可包括提供计算***中具有一组初始高速缓存对象的高速缓存,该高速缓存对象具有一初始压缩比并包括储存的数据;减少该高速缓存中由除该高速缓存对象中给定的一个之外的至少一个高速缓存对象占据的数据存储空间的量;以及增加该高速缓存中由该给定高速缓存对象占据的数据存储空间的量。
用于将地理空间或其它向量数据作为图像来编码和供应的方法
相关申请的交叉引用
本申请要求2004年10月28日提交的题为“METHOD FOR ENCODING ANDSERVING GEOSPATIAL OR OTHER VECTOR DATA AS IMAGES”的美国临时专利申请第60/622,867号的优先权,该申请的全部公开内容通过引用结合于此;本申请还要求2004年10月8日提交的题为“Method for Spatially Encoding Large Texts,Metadata,and Other Coherently Accessed Non-Image Data”的美国临时专利申请第60/617,485号的优先权,该申请的全部公开内容通过引用结合于此;本申请是2004年3月1日提交的题为“System and Method for Exact Rendering In a Zooming UserInterface”的美国专利申请第10/790,253号的部分延续申请,该申请的全部公开内容通过引用结合于此,且该申请要求以下美国临时专利申请的优先权:2003年3月5日提交的题为“System and Method for Exact Rendering in a Zooming UserInterface”的临时申请第60/452,075号、2003年3月12日提交的题为“System andMethod for Foveated,Seamless,Progressive Rendering in a Zooming User Interface”的临时申请第60/453,897号、2003年6月5日提交的题为“System and Method for theEfficient,Dynamic,and Continuous Display of Multiresolution Visual Data”的临时申请第60/475,897号、以及2003年3月30日提交的题为“System and Method forInfinite Precision Coordinates in a Zooming User Interface”的临时申请第60/474,313号,这些临时专利申请的全部公开内容都通过引用结合于此;本申请还是2004年3月26日提交的题为“A System And Method For Multiple Node Display”的美国专利申请第10/854,117号的部分延续,该申请的全部公开内容通过引用结合于此;本申请还是2004年3月17日提交的题为“Methods and Apparatus For Navigating anImage”的美国专利申请第10,803,010号的部分延续,该申请的全部公开内容通过引用结合于此。
发明背景
近来,已引入了诸如JPEG2000/JPIP1等图像压缩标准来满足所需的工程目标:
1例如参见David Taubman的Kakadu实现,www.kakadusoftware.com。Taubman是JPEG2000 ISO标准委使得非常大的图像(例如,大小为千兆像素)能够通过低带宽通信信道从服务器递增地或选择性地递送到客户机。当以全分辨率查看这些图像时,在任何给定时刻仅有限的区域可适合客户机的图形显示器;新标准朝向选择性地访问这些区域并通过通信信道仅发送与该区域相关的数据来调整。如果该“感兴趣的区域”,即ROI连续地改变,则客户机和服务器之间通过低带宽信道的连续对话可继续将该区域的客户机表示保持在ROI准确度之内。现有技术通常限于离散采样的图像的增量或选择性传送。本发明扩展了这一表示和传送模型以包括向量数据、超链接和其它空间定位的特征。
发明概述
本发明的一个或多个实施例涉及这些可选择性解压的图像压缩和传送技术对地理空间或图解数据的扩展。一个或多个实施例组合并扩展了在结合到本申请中的以下文档中描述的方法:(1)“Method for Spatially Encoding Large Texts,Metadata,and Other Coherently Accessed Non-Image Data”:(2)“Methods And Apparatus ForNavigating An Image”;(3)“System and Method For The Efficient,Dynamic AndContinuous Display Of MultiResolution Visual Data”:(4)“System and Method ForFoveated,Seamless,Progressive Rendering In A Zooming User Interface”;以及(5)“System and Method for Multiple Node Display”。
注意,本文中迄今为止所描述的和/或稍后描述的方法和装置可利用已知技术中的任一种来实现,诸如标准数字电路、模拟电路、可用于执行软件和/或固件程序的已知处理器中的任一种、可编程数字装置或***、可编程阵列逻辑器件、或以上的任何组合。本发明的一个或多个实施例也可被包含在软件程序中以储存在适当的存储介质中并由处理单元来执行。
根据一方面,本发明提供了一种发送指示图像的信息的方法,包括将一个或多个信息节点作为第一图像来发送、发送包括指示定义要用于在第一图像的预定位置上显示的特性的向量的信息的第二图像、以及发送包括第一和第二图像之间的映射使得第一和第二图像的接收者可使第一和第二图像相关来利用预定位置上的向量的第三图像。较佳地,第一图像是地图,而第二图像是定义仅在预定细节水平下
————————————
员会成员。
显示的可视数据的一组向量。较佳地,第一图像是地图。较佳地,第二图像包括超链接。较佳地,第一图像是地图,而第二图像包括一组向量,且其中这些向量中的多个位于对应于第一图像上要应用这些向量的位置的位置上,且这些向量中的多个位于第二图像上不与第一图像上要应用这些向量的位置相对应的位置上。较佳地,该方法还包括利用高效填塞算法来构造第二图像以减少第二图像上一个或多个向量出现的位置与第一图像上要应用一个或多个向量的位置之间的空间量。较佳地,向量包括启动节点或子节点的信息。
根据另一方面,本发明提供一种呈现图像的方法,包括从远程计算机接收第一、第二和第三数据集,第一数据集代表图像,第二数据集代表定义图像的规定位置处的特性的向量,而第三数据集用于规定这些位置。较佳地,规定位置是地图上的街道位置。较佳地,向量表示子节点并包括指示子节点应当在什么条件下启动的信息。较佳地,向量包括到由以下各项构成的组中的至少一个的超链接:诸如广告素材等外部内容和/或嵌入的可视内容。较佳地,向量包括到广告素材的超链接。较佳地,向量包括指定对在图像中的预定位置上的图像部分的呈现方法的信息。
根据另一方面,本发明提供一种方法,包括:提供图像的第一层,该第一层包括具有在该第一层内的位置的图像的特征;以及提供图像的第二层,该第二层包括对应于这些特征中相应的一个的数据块;每一数据块在第二层中基本上与第一层中对应于每一数据块的特征的位置相对应的位置上,其中第二层的大小和形状基本上对应于第一层的大小和形状。较佳地,每一数据块描述对应于每一数据块的特征的至少一个特性。较佳地,该方法还包括提供图像的第三层,该第三层包括指针,每一指针对应于这些特征中相应的一个以及这些数据块中相应的一个。较佳地,每一指针指示每一指针的相应数据块相对于每一指针的位置的位置。较佳地,描述包括为至少一个特征提供文本数据。较佳地,描述包括提供至少一个特征的图示。较佳地,描述包括提供指示至少一个特征的几何数据。较佳地,描述包括为至少一个特征提供二维或三维形状或轮廓信息。较佳地,描述包括为至少一个特征提供色彩信息。较佳地,描述包括提供与至少一个特征有关的广告或超链接信息。较佳地,描述包括提供与至少一个特征有关的到外部网站的至少一个链接。较佳地,描述包括提供与至少一个特征有关的嵌入的可视内容。较佳地,描述包括提供与至少一个特征有关的广告信息。较佳地,描述包括:提供路段的图解细节。较佳地,描述包括为由以下各项构成的组中的至少一个提供图解细节:至少一条道路、至少一个公园、区域的地形、水体的水文地理、至少一个建筑物、至少一个公共厕所、至少一个无线保真站、至少一条电力线、以及至少一个体育馆。
根据又一方面,本发明提供一种装置,包括在一个或多个软件程序的控制下操作的处理单元,该软件程序可用于使得该处理单元执行动作,这些动作包括:提供图像的第一层,该第一层包括具有第一层内的位置的图像的特征;以及提供图像的第二层,该第二层包括对应于这些特征中相应的一个的数据块;每一数据块在第二层中基本上与第一层中对应于每一数据块的特征的位置相对应的位置上,其中第二层的大小和形状基本上对应于第一层的大小和形状。
根据再一方面,本发明提供一种包含一个或多个软件程序的存储介质,该软件程序可用于使得处理单元执行动作,这些动作包括:提供图像的第一层,该第一层包括具有第一层内的位置的图像的特征;以及提供图像的第二层,该第二层包括对应于这些特征中相应的一个的数据块;每一数据块在第二层中基本上与第一层中对应于每一数据块的特征的位置相对应的位置上,其中第二层的大小和形状基本上对应于第一层的大小和形状。根据另一方面,本发明提供一种方法,包括:提供图像的第一层,该第一层包括具有第一层内的位置的图像的特征;提供图像的第二层,该第二层包括对应于并描述这些特征中相应的一个的数据块,每一数据块在第二层中至少基本上与第一层中对应于每一数据块的特征的位置相对应的位置上;以及提供图像的第三层,该第三层包括具有第三层中的位置的指针,每一指针对应于这些特征中相应的一个以及这些数据块中相应的一个,每一指针在第三层中的位置至少基本上对应于第一层中与每一指针相对应的特征的位置。较佳地,该第二层和第三层各自具有对应于第一层的大小和形状的大小和形状。较佳地,该方法还包括:从第一层、第二层和第三层的组合形成地图图像。
较佳地,该方法还包括:平坦化地图图像中的数据。较佳地,每一指针指示每一指针的对应数据块相对于每一指针的位置的位置。较佳地,指示包括标识二维的偏移。较佳地,该偏移的每一维以对应于整数的像素数,例如2或4的单位来表达。较佳地,指示包括将偏移标识为沿Hilbert曲线的一维距离。较佳地,沿一维曲线的偏移以像素为单位来表达。较佳地,沿一维曲线的偏移以对应于整数的像素数的单位来表达。较佳地,放置每一数据块包括:采用填塞算法定位每一数据块以实现每一数据块与每一数据块在第二层中的目标位置的最大接近度,第二层中的目标位置对应于第一层中与每一数据块相对应的特征的位置。较佳地,填塞算法确保第二层中没有两个数据块彼此重叠。
较佳地,最大接近度是基于每一数据块的位置与每一数据块的目标位置之间的最短直线距离来确定的。较佳地,最大接近度是基于每一数据块的位置与每一数据块的目标位置之间的二维中的每一维的偏移的绝对值之和来确定的。较佳地,最大接近度是基于每一数据块的位置与每一数据块的目标位置之间的最小Hilbert曲线长度来确定的。
根据另一方面,本发明提供一种包含一个或多个软件程序的存储介质,该软件程序可用于使得处理单元执行动作,这些动作包括:提供图像的第一层,该第一层包括具有第一层内的位置的图像的特征;提供图像的第二层,该第二层包括对应于并描述这些特征中相应的一个的数据块,每一数据块在第二层中至少基本与第一层中对应于每一数据块的特征的位置相对应的位置上;以及提供图像的第三层,该第三层包括具有第三层中的位置的指针,每一指针对应于这些特征中相应的一个以及这些数据块中相应的一个,每一指针在第三层中的位置至少基本对应于第一层中与每一指针相对应的特征的位置。
根据另一方面,本发明提供一种装置,包括在一个或多个软件程序的控制下操作的处理单元,该软件程序可用于使得处理单元执行动作,这些动作包括:提供图像的第一层,该第一层包括具有第一层内的位置的图像的特征;提供图像的第二层,该第二层包括对应于并描述这些特征中相应的一个的数据块,每一数据块在第二层中至少基本与第一层中对应于每一数据块的特征的位置相对应的位置上;以及提供图像的第三层,该第三层包括具有第三层中的位置的指针,每一指针对应于这些特征中相应的一个以及这些数据块中相应的一个,每一指针在第三层中的位置至少基本对应于第一层中与每一指针相对应的特征的位置。
当结合附图考虑本发明的较佳实施例的描述时,本领域的技术人员可以清楚其它方面、特征、优点等。
附图简述
为图示本发明的各方面起见,附图中示出了目前较佳的形式,然而可以理解,本发明不限于所示的精确安排和手段。
图1示出了根据本发明的一个或多个实施例的包括适用于以数据块来描述的多个特征的道路地图图像的预呈现层;
图2示出了图1的道路地图以及根据本发明的一个或多个实施例的对应于具有低浓度路段的区域中的相应路段的指针和数据块;
图3示出了根据本发明的一个或多个实施例的属于具有主要道路的多条道路的一组集中路段、以及对应于具有高浓度交叉点的区域中的路段的指针和数据块;
图4示出了根据本发明的一个或多个实施例的用于三种情况的贪婪矩形填塞算法的测试输出;
图5A是根据本发明的一个或多个实施例的在平坦化道路地图数据之前从Virgin Islands的道路地图数据图像的密集区域中取出的二进制8位数据的图像;
图5B是根据本发明的一个或多个实施例的在平坦化道路地图数据之后从Virgin Islands的道路地图数据图像的密集区域取出的二进制8位数据的图像;
图6示出了根据本发明的一个或多个实施例的用于将二维指针向量映射到沿Hilbert曲线的一维距离d的一阶Hilbert曲线;
图7示出了根据本发明的一个或多个实施例的用于将二维指针向量映射到沿Hilbert曲线的一维距离d的二阶Hilbert曲线;
图8示出了根据本发明的一个或多个实施例的用于将二维指针向量映射到沿Hilbert曲线的一维距离d的三阶Hilbert曲线;
图9示出了根据本发明的一个或多个实施例的用于将二维指针向量映射到沿Hilbert曲线的一维距离d的四阶Hilbert曲线;
图10示出了根据本发明的一个或多个实施例的用于将二维指针向量映射到沿Hilbert曲线的一维距离d的五阶Hilbert曲线;
图11描绘了根据本发明的一个或多个实施例使用的结合了4像素×4像素大小的数据块的美国Virgin Islands之一的图像;
图12描绘了根据本发明的一个或多个实施例使用的结合了6像素×6像素大小的数据块的美国Virgin Islands之一的图像;
图13描绘了根据本发明的一个或多个实施例使用的结合了8像素×8像素大小的数据块的美国Virgin Islands之一的图像。
较佳实施例的详细描述
注意,以下将讨论的本发明的各方面可适用于除编码和/或供应地图数据之外的其它环境。实际上,可采用本发明的图像和实现的范围很多以致于无法全部列出。例如,本发明的特征可用于编码和/或传送人体解剖、复杂地形、诸如布线图或蓝图等工程图、基因本体等的图像。然而,发现本发明尤其适用于编码和/或供应其中其元素具有变化的细节水平或粗略度的图像。因此,为简明和清楚起见,本发明的各方面将结合具体示例,即地图图像的编码和/或供应来讨论。
在(2)中,介绍了连续多比例道路地图呈现的概念。 (2)的发明的一个或多个实施例的基础是道路地图的图像或其它基于向量的图在不同分辨率下的预呈现“栈”,其中可视元素的类别(例如,道路类别,包括国家高速公路、州级高速公路和地方道路)以不同的视觉粗细度在不同的分辨率下呈现。
在客户机/服务器交互期间,可下载这些图像中一个以上的对应区域,且客户机的显示器可示出这些区域的混和组合。混和系数和图像分辨率的选择可取决于缩放比例来混和。最终结果是客户机方的用户可导航大地图(例如,美国的所有道路),连续地缩放和扫视,而不经历任何视觉不连续性,诸如当缩放比例改变时道路类别的出现或消失。
相反,在每一比例下,可强调最相关的类别。例如,当缩小以查看整个国家时,最大的高速公路被强烈地加强,从而使得它们清晰地突出,而在州级别时,次要的高速公路也被强烈地加强到足够清晰可见的程度。当用户放大到使用最详细的预呈现图像的点时,所有道路都清晰可见,且在用于地理空间数据的该较佳实施例中,所有元素以接近其物理上正确的比例示出。用于这些最详细预呈现图像的最大合理分辨率是约15米/像素;然而,从用户观点来看,期望能够更进一步地放大。
然而,以更高的细节水平预呈现出于以下若干原因是不合需要的:首先,因为服务器方的文件大小变得过大(15米/像素的单个世界横向Mercator区图像可能已经是千兆像素的范围);其次,因为预呈现图像是对于通常与高分辨率地图呈现相关联的非常粗略的黑白数据的种类的低效表示;第三,因为客户机可能需要“真实的”向量数据来执行除静态可视演示之外的计算任务。
例如,路线指南***在监视器或打印介质中向用户显示时可高亮道路或改变其颜色。与单独的预呈现图像相反,这仅当客户机能够访问向量数据时才能在客户机方完成。向量数据也可包括街道名、地址以及客户机较佳地能够灵活地布局并选择性地呈现的其它信息。将街道名标签预呈现到地图图像栈中很明显是不合需要的,因为这些标签取决于精确的位置和客户机视图的比例较佳地在不同的地方绘出且较佳地以不同的大小提供。不同的标签呈现不应在用户缩放时被彼此混和。预呈现这些数据也消除对于字体的任何灵活性。
总而言之,向量数据(一般使用这一术语来指几何学信息和诸如地点名等其它信息)在所需的呈现分辨率较高时因其本身的名义对客户机是重要的,同时是比预呈现图像更有效的信息表示。然而,如果要以低分辨率呈现大区域,则完整向量数据可能变得过大且过于复杂,从而使得预呈现图像成为更高效的表示。然而,即使是在低分辨率下,向量数据的某些子集也是有益的,诸如主要高速公路的名称。向量数据的这一子集可被包括在与低分辨率预呈现层相关联的低分辨率数据层中,且在与较高分辨率预呈现层相关联的数据层中有更详细的向量数据可用。
本发明的一个或多个实施例扩展了(1)中所介绍的方法以允许空间向量数据被编码并可能连同(2)的预呈现图像一起被选择性地且递增地发送到客户机。在现有技术中,这可使用地理空间数据库来实现。数据库需要包括在空间上索引的所有相关的向量数据。这些数据库提出了许多实现上的挑战。在本发明的一个或多个实施例中,代替使用常规的数据库,使用诸如JPEG2000/JPIP所支持的空间可寻址图像来编码和供应向量数据。
多图像地图数据表示
在一个或多个实施例中,使用三个图像或通道来表示地图数据,其每一个的深度为8位。根据(2),预呈现层较佳地是道路地图的预计算文字呈现。指针层较佳地包括较佳地位于指针层中接近地、有时候等同地与预呈现层中该指针所对应的相应特征的位置相对应的位置上的2*2个像素块。且数据层较佳地由在引用它们的2*2个指针上居中或靠近该指针定位的n*m个像素块构成。预呈现层也可以是24位色,或是任何其它色空间或位深度。
注意,预呈现层、指针层和数据层本质上是用于储存各种二进制数据量的二维存储器空间。这三层较佳地对应于作为对客户机的道路地图或其它二维图像表示的主体的公共二维图像区域。如此处所使用的,术语一层的“大小”和“形状”一般分别对应于该层中的数据所涉及的二维图像的大小和形状。
较佳地,形成特定地图图像的预呈现层、指针层和数据层例如具有在二维图像(从这三层形成)中至少非常接近或可能等同于彼此的“大小”和“形状”。这较佳地无论用于这三层的所储存数据在数据处理***的物理存储器中是如何分布的都是如此。
在一个实施例中,预呈现层中的相干“特征”可以是路段。在具有10个路段的地图中,指针层中的指针1对应于预呈现层中的路段1和数据层中的数据块1。指针2对应于路段2和数据块2,依此类推,其中对于n=1到n=10,在每一情况下指针“n”对应于路段“n”和数据块“n”。此外,指针1较佳地在指针层中接近地、且可能等同地与预呈现层中的路段1(或更一般地,“特征1”)的位置相对应的位置上。
从这三层的任一层中的项目(特征、指针或数据块)与任一其它层中的对应项目(特征、指针或数据块)的关联的容易性观点来看,各个地图层(预呈现、指针和数据)可被认为是叠加在彼此之上。由此,三个地图层的大小和形状较佳地彼此接近地对应以使得相应地图层中项目的期望关联在需要时在被配置成访问这些层中的任一层以及这些项目中的任一项的数据处理***中尽可能地无缝。可以理解,尽管此处的讨论主要针对从三层数据形成的地图,但是本发明可在使用多于或少于三层数据的同时实施,且所有这些变换都旨在落入本发明的范围之内。
由于三个地图层较佳地大小相等且彼此对准,因此它们可用不同的颜色(在计算机显示器上为红、绿、蓝,或者对于打印介质为蓝绿、品红、黄)来覆盖以产生单色图像。图1-3可以用彩色来显示(在电子显示器上或打印介质上),并且可作为单色的JPEG2000被储存在服务器方。然而,为简明起见,图1-3在本申请中以黑白来呈现。较佳地,仅预呈现层实际上可以在客户机的显示器上以此形式可见。
图1示出了包括标号为102到124的多个特征的道路地图的预呈现层。为简明起见,在图1中,所示的特征都是路段。然而,特征可包括许多其它项目,诸如体育竞技场、公园、大建筑物等。图1所示的区域是为了说明起见而被包括在内的,且不对应于任何真实世界的城市或街道布局。
图2示出了图1的道路地图以及根据本发明的一个或多个实施例的对应于具有低浓度路段的区域中的相应路段的指针和数据块。路段102在图2中示出,且来自图1的其它路段在图2中再现。然而,由于空间限制,其它七个路段(104-124)的参考标号未在图2中示出。贯穿图2和3,指针被示为深灰色块,而数据块被示为较大的浅灰色块。
由于图2示出了每一单位面积具有相对低浓度的路段的区域,因此可以毫无困难地将指针(202、204、206、208、210、212、214、216、218、220、222和224)定位在地图200的第二层(指针层)中接近地、且可能等同地与地图200的第一层(预呈现层)中该指针所对应的相应特征的位置相对应的位置上。类似地,数据块(242、244、246、248、250、252、254、256、258、260、262和264)可被放置在地图200的第三层(数据层)中相当接近地与地图200的预呈现层中该数据块所对应的相应特征的位置相对应的位置上。
图3示出了根据本发明的一个实施例的多个次要道路320和较少数的主要道路310的一组集中路段,以及对应于具有高浓度路段的区域中其相应路段的指针和数据块。参考标号330指所有的指针,而参考标号340指所有的数据块。
在图3的示例性区域中,特征浓度过高以致于无法使所有的指针或所有的数据块都位于其相应层内精确地与层内它们所对应的特征的位置相对应的位置上。指针位置的偏移程度取决于拥挤程度可以是微小或重大的。然而,图3中的路段浓度阻止将数据块放置在第三层中接近地与层中该数据块所对应的相应特征的位置相对应的位置上。
因此,数据块340尽可能地靠近其对应的指针来分布,从而利用了有利地无特征的几乎空白区域350,由此允许数据块340溢出到空白区域350中。空白区域350可以是没有高浓度的具有相关联指针和数据块的特征(诸如,例如水体或农场)的任何类型的区域。可采用填塞算法来有效地将数据块340放置在地图300内。这一类型的算法在本申请的稍后讨论,且其讨论因此不在本节中重复。
如果用户导航到图1所示的地图100的视图,则客户机可向服务器请求如图所示所有三个图像层的相关部分。预呈现层一般是三个图像层中显示表示地理区域的物理布局的图像组件的唯一层。另两个图像层较佳地指定了对应于预呈现层中的特征的指针和数据块。
在一个实施例中,指针图像由在2x2的像素网格上对齐的2x2像素块构成,每一网格指定了从其自己的位置到数据层中对应的数据块的开始(左上角)的(x,y)向量偏移(其中向量的x和y分量各自包括16位整数,因此各自是2个像素)。
在该实施例中,对应的数据块进而能以指定数据块宽度和高度的2个16位值(4个像素)开头。较佳地,首先指定宽度,并将其约束为具有至少2个像素的大小,因此避免了读取宽度和高度时的不明确。数据块的剩余部分可视为可包含向量、文本或其它信息的任何组合的二进制数据。在图2-3的示例中,数据块可包含包括街道名、地址范围和向量表示的街道地图信息。
压缩:
在本节中,提出以上讨论的指针层和数据层的组合的一个或多个实施例相对于现有方法的优点。一种现有的解决方案涉及向空间数据库发送对感兴趣窗口内的所有相关文本/向量信息的请求。服务器然后用一定量的文本来回复。现有的空间数据库***将信息基本上作为纯文本发回。
然而,在本发明的一个或多个实施例中,可应用小波压缩,由此允许服务器在满足数据请求的同时发送比现有***所发送的少得多的量的数据。位于数据和指针层上的数据存储区域之间的没有数据存储的区域与图像按光栅顺序以未压缩形式发送时一样造成极少的浪费,因为这些区域具有零复杂度且可被压缩成小波表示中非常少量的位。
空间相干性的充分利用:
典型的浏览模式涉及逐步缩放和扫视。多分辨率流图像浏览技术被设计成在这一环境中运作良好。可对感兴趣的窗口发送完整的信息,并且可对直接围绕该感兴趣窗口的区域发送部分信息。在扫视或其它移动之后,较佳地仅发送相关的新信息(“增量”)。所有这些都可以用非常高效的方式来完成。例如,特别大的数据块可在感兴趣的窗口与数据块的定位点相交之前被很好地部分发送。
性能:
在本发明的一个或多个实施例中,指针层示出数据块离它所对应的指针有多远。可以回想在农村地区,数据块可以直接位于指针位置的中心。在这一情况下,所有数据较佳地都是局部的。然而,在城市地区,数据开始“拥挤”,且数据块的位置可以偏离该数据块所对应的相应指针(在指针图像中)和相应特征(在预呈现图像中)。
在本发明的一个或多个实施例中,当生成地图时,可对数据块离预呈现图像中它所对应的特征的最大距离施加上限。这进而限制了数据层中与预呈现图像中给定大小的感兴趣窗口相关的一部分的最大面积,因此限制了最大复杂度。例如,如果最大距离是32个像素,则数据图像中的窗口在每一侧上只需比预呈现图像中的感兴趣窗口大32像素。
如果数据密度增加到超过可能填塞的点,则可总是将分辨率例如从15米/像素增大到12米/像素。这给予数据更多的“呼吸空间”。注意,不同种类的数据也可在不同的细节水平中分布。由此,例如,数据在40米/像素的分辨率下的过度拥挤意味着该数据的某一类可能更好地以30米/像素的水平来储存。
拥挤可以在数据层和指针层中可见。用于不同数据类的适当分辨率可随着空间改变,使得例如小街道向量数据在农村地区中可能以30米/像素来编码,而在城市地区中仅以12米/像素来编码。简言之,指针和数据图像使得数据拥挤易于在视觉上或使用数据处理算法检测和纠正。所得的数据图像的层次即使在低带宽设置中也能帮助确保高性能的向量浏览,因为对任何给定视图所需的数据的量可被控制成使其不会超过上限。这种上限在现有的地理空间数据库中极其难以实施或甚至定义。
实现便利性:
本发明的一个或多个方面涉及将地理空间数据库问题映射到远程图像浏览问题。已进行了使得远程图像浏览更高效地工作的大量工程设计。除了基本的压缩技术之外,这包括高速缓存的优化、带宽管理、客户机和服务器的存储器使用以及服务器方的文件表示。与常规的地理空间数据库技术形成对比,该技术是成熟的且可用于多个实现。
因此,本发明的一个或多个实施例构想了在适当安排的地理空间数据库和与该地理空间数据库交互的远程图像浏览技术之间形成有效的协作。此外,在本发明的一个或多个实施例中,对图像和数据浏览两者只需使用单个***,且对客户机方的数据只需简单的适配器。以上内容较佳地具有两个准独立复杂***,一个用于图像浏览,而另一个用于数据浏览。
用于表示指针的替换方法
在本发明的一个或多个替换实施例中,考虑Hilbert曲线,有时也称为Hilbert-Peano曲线。Hilbert曲线属于称为空间填充曲线的一簇递归定义曲线(见http://mathworld.wolfram.com/HilbertCurve.html,或者对于原始参考文献,参见Hilbert,D.的“über die stetige Abbildung einer Linie auf ein Flachenüstck”,Math.Ann.38,459-460,1891,该参考文献通过引用结合于此)。1、2、3、4和5阶Hilbert曲线分别在图6、7、8、9和10中示出。
如在高阶限制中清楚的,一维曲线填充整个单位正方形(形式上在该单位正方形中变得密集)。n阶曲线访问单位正方形上的4^n个点。对于一阶情况(对于4^1),这些点是正方形的角。对于涉及本发明的目的,较佳的是使n阶曲线访问正方形(0,0)-(2^n-1,2^n-1)中的所有整数坐标。使用位处理,已知有用于在n阶Hilbert曲线上的路径长度与(x,y)坐标之间互换的快速算法(参见Warren、HenryS.Jr.、Hacker的Delight,Addison-Wesley2003第14章),该参考文献通过引用结合于此。例如,对于二阶曲线,该互换将在下表中从左列映射到右列或相反地映射:
表1
0 | 0.0 |
1 | 1.0 |
2 | 1,1 |
3 | 0.1 |
4 | 0,2 |
5 | 0.3 |
6 | 1.3 |
7 | 1.2 |
8 | 2.2 |
9 | 2.3 |
10 | 3.3 |
11 | 3.2 |
12 | 3.1 |
13 | 2.1 |
14 | 2.0 |
15 | 3.0 |
Hilbert曲线与编码指针图像的问题有关,因为它提供了将二维向量(具有分量x和y)编码为单个数字d,同时相当良好地保持“邻域关系”的一种便利方法。邻域关系指的是当向量位置缓慢改变时,d趋向于也缓慢改变,因为一般其“d”值接近的指针在二维空间中也接近。然而,该关系并不总是成立。例如,在二阶情况下,当从(1,0)移至(2,0)时,路径距离“d”从1变为14。不可能用1D曲线填充2D空间且总是保持邻域关系。
表示n阶Hilbert曲线的路径距离d需要2*n(2乘以n)位。当采用二维表示时,x和y坐标各自需要n位来表示位于路径距离d上的点。因此,对一个向量进行“Hilbert编码”将数对(x,y)重新打包成单个数字d,但是输入(x,y)和输出d都使用相同的位数2n。小的(x,y)向量编码成小的d值。实际上,可以观察到,n阶Hilbert曲线只不过是(n+1)阶曲线的左下四分之一。
因此,8位图像中每一像素的值可被认为是4阶Hilbert曲线上的路径距离,由此对范围(0,0)-(15,15)中,即16*16网格上任何地方的向量进行了编码。作为在低位的四位字节中填塞4位x并在高位的四位字节中填塞4位y的替代,经Hilbert编码的像素在x和y都小于4时具有小于16的值,而在x和y都小于2时具有小于4的值。由于数据填塞算法较佳地将数据块填塞得尽可能靠近定位点(将***指针之处),因此具有小值的向量是常见的。此外,如果这些向量被Hilbert编码,则它们被转换成指针图像中的小像素值,因此具有较好的图像压缩性能。
在一个实施例中,利用16位图像或24位图像,它们可分别对256*256或4096*4096网格上的(x,y)向量编码。值256等于2^8,而值4096等于2^12。
在一个实施例中,修改Hilbert编码算法以适应有符号向量,其中x和y值在正和负数的范围上。修改涉及连同路径距离d一起指定两个额外的位,从而标识了向量象限。这两个位是用于x和y的符号位。x和y的绝对值然后如常被Hilbert编码。(为避免双重覆盖,x=0和y=0属于正象限,且负x或y的绝对值被计算为-1-x或-1-y)。在该实施例中,符号位被分配给输出值的两个最低位的位置,使得每一象限中经编码的向量的数值范围大致相等。因此,对于16位图像的示例,x和y值在-128和+127之间(包括这两个值)的向量可对每一象限使用7阶Hilbert曲线来编码。x和y值在-64和+63之间的向量被分配可用14位来表示的像素值,其中2^14=16384。如果x和y在-8和7之间,则值可以小于2^8=256。
填塞算法
在一个或多个实施例中,指针和数据层正如预呈现层一样被预计算。指针和数据层的预计算包括将所有相关向量数据编码成数据块,以及尽可能高效地将指针和数据块填塞到其相应的层中。在农村或稀疏郊区地区(见图2),特征往往是间隔良好的,导致指针和数据图像中的大空白区。在出现指针之处,它们较佳地精确地落在它们所引用的特征上,且其对应的数据块进而通常精确地位于指针中心。然而,在密集的城市地区(见图3),特征通常太接近以致于指针和数据块无法拟合在接近地与预呈现层中其对应特征特征的位置相对应的位置上。因此,使用矩形填塞算法来试图将指针和数据块尽可能放置得靠近其期望位置而没有任何重叠将是有帮助的。
图3中的结果是显而易见的。空白区350用对应于沿道路310在与多个道路320的交点处存在的特征的数据块来填充。由于城市地区通常被稀疏区域(郊区、山、或水体)围绕,因此有可能将城市数据块放置在地图上合理地接近其特征与它们对应的城市区的某处。
一般而言,即使在密集排列的城市中,也有这一“外流”不会过度严重的足够的空白区。一般而言,外流的速率越高,地图向量数据也变得定位越不良好。外流一般在数据层图像的分辨率增加时显著降低。有益的是找出效率和非局部性被适当平衡的分辨率。在北美,15米/像素一般是一个良好的选择。15米/像素的分辨率在农村地区中是“过多的”,但是在靠近城市之处,这一分辨率选择往往限制了外流。
高效矩形填塞在计算上是一个难题。然而,在计算几何学文献中有众多近似算法来解决这一难题,且本发明不限于这些算法中任何特定的一种。换言之,可结合本发明的一个或多个实施例采用计算几何学文献中描述的且对本领域技术人员已知的矩形填塞算法中的一种或多种来将数据块放置在数据层内。
已结合本发明的一个或多个实施例使用的一种较佳算法涉及分层“矩形树”,它允许迅速地进行以下操作:测试给定矩形是否与树中已有的任何其它矩形相交:***不重叠矩形;以及在目标点p周围的半径为r0<=r<r1的环内找出一组完整的“空角”(即,毗邻边界在空白区上的已***矩形的角)。
使用了“贪婪算法”来将新矩形***得尽可能靠近目标点然后如下进行:
1)尝试***中心在目标点上的矩形。如果这成功,则该算法结束。
2)否则,定义半径r0为该矩形的长度或宽度中的最小值的一半,以及
r1=r0*2。
3)找出r0和r1之间的所有“空角”,并按照递增半径来排序。
4)尝试将该矩形按顺序放置在这些角中的每一个上,并且在成功时,该算法结束。
如果所尝试的***没有一个成功,则将r0设为r1,将r1设为2*r0,并去往步骤3。
在一个较佳实施例中,该算法最终总能成功地放置矩形,只要图像中的某处存在满足或超过要放置矩形的尺寸的空白区。该算法在它一次放置单个矩形的意义上是“贪婪的”。该贪婪算法并不尝试解出尽可能高效地填塞n个矩形的整个问题。整体算法包括定义填塞效率的明确度量,从而指定最小化浪费的空间和最小化矩形与其“目标点”之间的距离之间的期望折衷。该贪婪算法不是最优的,但是不要求明确地指定这一折衷,如可从上述算法中清楚的。
图4示出了用于三种情况的基本填塞算法的输出。在每一种情况下,该算法顺序地将多个矩形尽可能靠近公共点来放置。对矩形填塞问题的这一解法仅作为示例来提供。在最左边的情况中,大多数矩形较小且较窄。使用了三个较大且至少基本为正方形的矩形的中间示例。而在最右边的示例中,采用了小和大矩形的混和。
为使该贪婪填塞算法不对地图的任何特定区域给予位置偏好,理想的是随机化矩形***的次序。在一个较佳实施例中,由此以随机次序***指针/数据块对。其它排序在某些情况下可以进一步提高填塞效率;例如,将大块***到小块之前可以最小化浪费的空间。
在一个较佳实施例中,指针数据被组织成2像素×2像素(意味着沿一行的两个像素和沿一列的两个像素)的单元。由此,采用像素为单位,每一指针较佳地是2×2(表示法是行x列)。然而,在替换实施例中,指针的行大小和列大小可以不同。在替换实施例中,指针可使用12阶Hilbert编码由单个24位彩色像素来表示。
对于数据块,可以自由地选择数据块的宽高比;以正方形像素为单位的块面积是由适合该块的数据量来确定的,但是该面积可以适合许多不同形状的矩形。例如,24字节的数据块(包括4字节的宽度和高度信息,以及20字节的任意数据)可恰好被表示为1×24、2×12、3×8、4×6、6×4、8×3或12×2。(24×1是不合格的,因为如上所述,在本实施例中,块的宽度必须至少为2,以使2字节的宽度在块尺寸在客户机方已知之前解码。)
该块也可剩余一个字节地在5像素×5像素(或5x5)的块中表示。将以上列出的除近似因数分解5x5之外的所有因数分解的集合称为“天棚因数分解(ceilingfactorization)”。对有效的天棚因数分解的要求是其面积满足或超过所讨论的数据块的尺寸,且没有行或列被完全浪费。例如,7×4或3×9不是较佳的天棚因数分解,因为它们分别可被缩减为6x4和3x8。在最简单的实现中,块尺寸可仅基于数据长度的天棚因数分解来选择;一般而言,“较正方形的”块(诸如4×6)比斜块(诸如2×12)能更好地填塞。
最简单的数据块大小调整算法取决于它如何在“正方形”和浪费的字节之间折衷而选择4×6或者5×5。更复杂的块大小选择算法可自适应地选取块尺寸,作为搜索目标点附近的空白区的一部分。在一个实施例中,以上算法的步骤1和4然后被修改如下:1)按照期望程度对具有所需数据长度的天棚因数分解排序,其中偏好较正方形的因数分解并且可能以浪费的字节为代价。2)进而尝试在目标点p处放置尺寸由每一天棚因数分解给出的矩形。3)如果这些***中的任一次成功,则该算法结束。4)进而对于每一“空角”c,依次试图在c处放置尺寸由每一天棚因数分解给出的矩形。一旦成功,该算法结束。
对该算法的进一步细化涉及指定用于交点的评分函数,它与整体优化函数一样在浪费的空间、非正方形的宽高比和与目标点的距离之间进行折衷。
这三个地图层一预呈现层、指针层和数据层一中的每一个较佳地被储存为JPEG2000或类似的空间可访问表示。然而,对三层中不同的层数据压缩的可允许条件是不同的。
预呈现道路层的压缩无需是无损的,但是它在显示时具有合理的感知准确度是有益的。在15m/像素下,发现0.5位/像素的无损小波压缩是完全足够的。然而,在一个较佳实施例中,指针和数据层被无损地压缩,因为它们包含客户机需要精确重构的数据。无损压缩一般不是非常高效的。例如,典型的数字图像一般不能按照最多约为2的因子来无损压缩。已开发了各种技术(如在以下“平坦化”一节中描述的)来对数据和指针层实现高得多的无损压缩率,同时仍采用标准的基于小波的JPEG2000压缩。
替换填塞方法
本节中提出了用于将数据块填塞到数据层中的替换实施例。在该较佳实施例中,定义一“分配”函数来分配给定数目的字节(对应于像素)。该分配函数较佳地与类似的常规存储器分配函数(在C中,为“malloc”)在三个方面不同。
1)尽管常规存储器分配函数返回对应于一维地址空间中连续分配间隔的开始的地址的标量指针,但是由此处的分配函数返回的指针是二维向量,它指定了数据图像中的起始位置。
2)由此处所公开的分配函数所分配的像素可能不全是连续的,而由函数“malloc”返回的地址处开始的已分配字节却是连续的。
3)此处所公开的分配函数不仅仅传入要分配的期望数目的像素,而且还传入了数据图像上的目标位置。期望数目的像素被分配得尽可能地接近目标位置,同时避开任何先前分配的像素。
“填塞算法”一节中所描述的“分配函数”以及以下描述的替换“分配”函数共享这些特性。然而,前一“分配”函数总是分配单个像素矩形,而以下描述的函数可更灵活地分配空间。
对于数据图像的期望特性:
1)低数据额外开销:迄今为止所探究的数据图像的一个或多个实施例需要编码某些任意辅助数据。在初步形式中,该数据包括块尺寸,它被储存为对于宽度和高度的16位值。由此,开销是对每一分配的数据组块4个像素。
2)最小浪费空间:迄今为止所探究的数据图像的一个或多个实施例可能会浪费某些像素。例如,在一个实施例中,请求26个像素可能导致分配8×4的像素块。对于8×4=32个所得的像素,4个是额外开销,且另外2个是浪费的。
3)良好的空间局部化:在同一目标位置附近的可定大小的数据组块的重复分配将导致“拥挤”。期望数据像素尽可能地接近目标。
4)相干性:期望保持单个组块的像素尽可能连续,这既是出于性能原因也是减少在给定数据图像中的固定大小的窗口的情况下不完整数据组块的数目。
一般必须作出这些特性之间的折衷。例如,尽管相干性和空间局部化看似为相似的特性,但是它们通常是冲突的。如果在拥挤的地区附近分配了长数据组块,则最接近的连续区域可能在很远,而如果数据组块相反被***以填充裂纹,则所需数目的像素会被分配在附近,从而导致良好的局部化但更差的相干性。
本发明的一个或多个实施例通过将数据分配的基本空间单位设为在间距为n*m的网格上排列的n*m像素块来简化数据填塞,其中n和m较小但不小于2*2。这些块因而可被认为是“超像素”。
单个分配的组块通常具有n*m以上个字节,且组块因此必须跨多个块。由此,块较佳地是链接的。块的前两个像素较佳地包括指向链中下一个块的指针(可以是如上所述经Hilbert编码的)。这实际上是单链表的二维模拟。向量可相对于当前块以网格单位来指定,使得例如如果块指定向量(+1,0),则它意味着组块在右边的下一块中继续;如果块指定(-2,-1),则它意味着组块在向左的两个块以及向上的一个块中继续。(0,0)向量(等价于空指针)可用于指示当前块是链中的最后一个。
这一方案中的数据额外开销在块大小非常小时可能很高。对于2x2块的限制情况,每一块的四个像素中的2个用作指向下一块的指针,使得额外开销数据是该块的总数据的一半。然而,可以有许多补偿因素。一个因素是填塞算法被极大简化,导致具有较少浪费空间和较佳局部化的更为最优的解决方案。
在一个实施例中,组块分配算法通过顺序地分配n*m个块来工作。对于k个字节,可分配cei1((n*m-2)/k)个块。块的分配可包括定位最接近目标点的空块以及将其标记为满。在分配了所需数目的块之后,然后将数据和下一块指针写入这些块中。“最接近”可使用各种度量来定义,但是带有有用特性的四个选择是:
1)Euclidean(L2)范数:这将选择具有到目标的最短直线距离的块,从而填充同心圆中的块。
2)Manhattan(L1)范数:该距离度量是x偏移和y偏移的绝对值之和。尽管圆在L2中定义了与目标点等距离的点集,但是矩形在L1中定义了该集合。由此,块将在使用该度量时填满同心矩形。L1度量对于大多数应用比L2度量有意义,因为数据图像中的窗口本身是矩形的,且因为二维指针的最大范围是矩形的。
3)Hilbert曲线范数:该范数是使用实际Hilbert曲线路径长度来定义的,其中象限如前一节所描述的在较低的两位中编码。最小化该范数因而直接最小化了指针大小。同样,与先前的两个范数不同,该范数是非简并的,这意味着从目标点(被舍入到最接近的块位置)到任何其它块的距离是唯一的。在本实施例中,“最接近的”未分配块因而是被唯一地定义的。
4)矩形螺线范数:该矩形类似于L1范数,但是它通过对与目标等距离的矩形路径L1中的块施加一致的排序来破坏L1范数的简并度。该路径可以在矩形上的任意点处开始和结束。为方便起见,可顺时针渐进地指定下部x、下部x角。该范数具有的优点是与Hilbert曲线范数一样,它唯一地定义了“最接近的”未分配块。假定与预先存在的满块没有冲突,则顺序块是相邻的,由此形成了围绕目标的展开螺线。
用于在分配期间选取链中的最佳(自由)下一块的其它度量也是可能的。在一个实施例中,分配程序可以不仅考虑每一块与目标点的距离,而且考虑每一块与前一块的距离。同一度量可用于测量这两个距离。或者,可使用不同度量,并且这两个距离可被添加或与相对加权因子组合以给出组合距离。在决定下一块的位置时对与前一块的距离给予大的加权有利于相干性,而对与目标点的绝对距离给予大的加权有利于空间局部化。因此,这一方案允许通过调整单个参数来以任何期望的方式折衷相干性和局部化。
另一重要的参数是块大小“n”。本讨论假定块是正方形的,即n=m。n不等于m的非正方形块在其中目标点的密度在水平和垂直方向上不同,或为了在偏好相干扫描行访问的计算机体系结构上的更好性能的情况下可能是有用的。块大小定义了存储器粒度,这类似于普通1D(一维)存储器中的“存储器排列”。大的块大小减小了数据额外开销,因为下一块指针使用已分配空间的2/n^2部分;并且它们也提高了相干性。然而,大的块大小增加了浪费的空间,因为整个块是一次性分配的。所浪费的空间进而可能使空间局部化变差。对块大小的适当选择取决于期望组块长度的分布以及目标点的空间分布。作出最佳选择是复杂的,且一般应当使用典型数据通过实验来完成。
对于地图向量数据,发现4像素×4像素的块是良好的大小。数据额外开销是总数据的八分之一,这是相当大的,但是因减少的浪费空间量导致的更紧密填塞较佳地补偿了增加的额外开销。图11-13示出了对于使用4*4个块(图11)、6*6个块(图12)和8*8个块(13)的美国Virgin Islands之一的数据图像(为高对比度而增强)。为清楚起见,所浪费的空间在图11-13中被绘出为白色(尽管在实践中,为改进压缩性能,浪费的空间被分配以值零或黑色)。很清楚,8*8个块既浪费了大量的空间又提供了较差的局部化,而4x4个块浪费了少得多的空间且局部化更好。图11的4*4块图像也压缩到比另外两个更小的文件大小。
注意,需要一数据结构来跟踪哪些块是满的,并基于目标点和前一块位置来找出最接近的空块。R树(Antonin Guttman的R-Trees:A Dynamic Index Structure forSpatial Searching,SIGMOD会议1984∶47-57,该参考文献通过引用结合于此)提供了可用于解决这一问题的一种有效的稀疏数据结构。也可仅使用位图,其中“0”位指示自由块,而“1”位指示填充的块。这些数据结构可都支持条带化,由此在任何给定时刻都只有总图像的一部分被保持在工作存储器中。这允许离线创建非常大的空间数据库。由于局部化被良好地界定,因此将数据库用于随后的空间查询只需每次有一小窗口“可见”。
平坦化图像数据
对于大多数形式的有损或无损压缩,性能可通过使得图像函数的量值变小,由此占据较少的有效位来优化。因此,在一些实施例中,使用特殊的编码技术来“平坦化”原始数据。这些技术的结果可从图5中清楚,图5示出了在平坦化之前(图5A)和平坦化之后(图5B)数据图像的同样密集填充的区域。图5中使用的数据图像是Virgin Islands的道路地图数据图像。注意,图5B被故意加深以便在本申请中更可见。在图5B中,如所呈现的,矩形图像作为一个整体是暗淡的灰色阴影。此外,图5A中极为明显的少量像素值变化在图5B中仍可见,它们大多在图像的下半部分。遍及图5B的绝大部分的像素值的一致性证明了对图5A的数据“平坦化”的程度的有效性。
注意,在平坦化之前,数据图像具有完整的8位动态范围,并展示出使得它非常差地压缩的高频和结构化图案(实际上,该图像的无损JPEG2000不会小于原始的未处理大小)。在“平坦化”之后,大多数结构不见了,并且绝大部分像素具有小于8且因此可仅使用3位来表示的值。该图像的相应JPEG2000压缩形式具有比3∶1更好的压缩。
“平坦化”可以包括多个简单的数据变换,包括以下(这是在图5的示例中应用的变换的完整列表):
应用于图5的平坦化技术
在图5的平坦化技术中,诸如数据块的宽度或高度等16位值通常使用高位字节和低位字节来编码。可使用16位是因为值偶尔会超过255(8位限制)某一未指定的量,然而在大多数情况下,这些值不会超过255。对于适合8位的值,高位字节将为0。频繁的0高位字节后跟有效的低位字节解决了图5A部分中清楚的大多数2像素周期性。可如下表2所示地重映射16位:
表2
原始13 | 第一像素<最初在高位字节)1512 | 第二像素(最初在低位字节)1411 | ||||||||||||||
10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 新 | 15 | 13 | 11 | 9 | 7 |
5 | 3 | 1 | 14 | 12 | 10 | 8 | 6 | 4 | 2 | 0 | 位置 | 128 | 64 | 32 | 16 | 8 |
在表1中,左边的8列表示该对的第一个像素,它先前在高位字节;右边的8列表示第二像素,它先前在低位字节。通过以此方式重新分配位,可访问值的范围(0-65535)保持不变,但是两个字节变得更对称。例如,对于所有的16位值0-255,两个字节各自假定值<16。
类似的位交错技术应用于32位或更大的整数值。这些技术也可扩展到有符号量。对于其中符号频繁改变的变量,如对于道路向量的差分编码所发生的,可向位置0分配符号位,并且绝对值可如上所述以交替的字节来编码。注意,为令人信服地绘出,道路向量数据可以用大于像素的精度来表示。代替地可使用小于像素的任意单位,或者等价地,可使用定点算术结合上述技术来实现子像素精度。在本示例性实施例中,对1/16的像素精度使用4个子像素的位。
当数字如上所述地编码时,期望使得数字尽可能小。有时候上下文暗示了达到这一目标的明显方式。例如,因为在一较佳实施例中每一数据块是2或更多像素宽,因此可在编码之前从数据宽度中减去2。更重要地,数据块中编码的指针和任何位置向量相对于指针位置以像素来指定而非以绝对坐标来指定。这不仅极大地减小了要编码的数字的大小,而且还允许数据图像的一部分在局部坐标***中向量性地解码和呈现,而不考虑该部分的绝对位置。
在一个较佳实施例中,对于定义曲线(例如,道路)的一系列点的向量呈现,只需相对于原始指针位置指定第一个点。随后的点可被编码为从前一点的“增量”或步进向量。在第二个这样的点之后,其它的后续点可被编码为二阶导数,或当前和前一增量之差。使用二阶导数来编码一般对于诸如道路等结构是高效的,因为它们往往是具有导数连续性的曲线的离散化。换言之,道路往往逐步改变其方向。
替换平坦化技术
在文献(1)(作为附录A附加于此)中讨论了用于一般可被编码为ASCII的每一字节具有单个字符的文本数据的另一种“平坦化”技术。在(1)中所描述的应用中,编码英文文本,并且因此字母基于字母在英语的代表性样例中出现的递减频率来重新映射。同一技术可在本文环境中使用,尽管地图中编码的大多由街道名构成的文本具有与原始英语相当不同的统计量。例如,数字和大写字母要重要得多。
注意,用于如上所述地编码指针或数据的特定方法是示例性的;许多其它编码也是可行的。“良好的”编码一般得到平滑和/或具有低动态范围的图像。
使用以上技术,15m/像素下的华盛顿州的King County的道路地图如下表3所示地压缩:
表3
对象 | 大小 | 格式 |
原始的2002 TIGER/Line向量数据(TGR53033.ZIP) | 8089KB | 包含采用表格文本形式的所有向量数据的压缩ZIP文件 |
所呈现道路地图的未压缩的8位图像 | 41.5MB | 未经处理的,=41.5兆像素 |
预呈现的道路地图层 | 2602KB | JPEG2000,以0.5位/像素压缩 |
指针层 | 743KB | JPEG2000,无损(~0.18位/像素) |
数据层 | 3205KB | JPEG2000,无损(~0.77位/像素) |
预呈现+指针+数据 | 6550KB | JPEG2000,有损和无损 |
令人惊讶的是,地图数据的JPEG2000表示(包括有损预呈现道路地图图像、无损指针层和无损数据层)实际上要小于将原始数据表示为表格文本的压缩ZIP文件。(该文件是美国人口普查局2002 TIGER/Line数据库的一部分。)然而,与原始的ZIP不同,该新表示已准备好交互式地向客户机供应,且有效地支持连续可扫视和可缩放空间访问。
文献(2)(作为展示B附加于此)中介绍的原始的预呈现多比例地图发明不仅包括单个预呈现图像,还包括以逐渐粗略的分辨率呈现的、并带有重新按比例缩放的线宽(或其它可视特征)的这些图像的栈。尽管这些预呈现的任一个中都没有省略任何特征,但是某些特征被削弱得足以仅在总计意义上清晰可见,例如,城市的地区道路在州级变为暗淡的灰色模糊点。
本发明的一个或多个实施例可被扩展成包括对应于较粗略地预呈现的道路地图图像的指针和数据图像,其中仅表示了原始向量对象的一个子集。例如,在比用于预呈现图像的分辨率低得多的分辨率下的州级指针和数据图像可能仅包括用于州和国家高速公路的数据,而不包括所有的地区道路。这些较粗略的数据也可以是“抽象”,例如仅指定道路名而不指定向量。不同分辨率下的图像可能包括原始数据的变化的混合或子集,或经抽象的版本。该技术既允许所有相关数据都适应较小的粗略图像,又向客户机提供了对该比例下导航相关的向量信息的子集。
尽管以上列出的实现提出了每一分辨率下的8位灰度级预呈现地图图像,但是预呈现图像也可以是彩色的。此外,即使预呈现图像是单通道图像,它们也可由客户机彩色地显示,因为向量数据可用于以与预呈现素材不同的颜色绘出重要的道路。最后,预呈现图像可以省略向量数据中存在的某些特征或道路,从而依赖于客户机来适当地合成图像和向量素材。
尽管本发明此处是参考特定实施例来描述的,但是可以理解,这些实施例仅示出了本发明的原理和应用。因此,要理解,可对说明性实施例作出众多修改并且可设计出其它排列而不脱离由所附权利要求书定义的本发明的精神和范围。
权利要求书
1.一种传送指示图像的信息的方法,包括将一个或多个信息节点作为第一图像来传送、传送包括指示定义要用于在所述第一图像中的预定位置处显示的特性的向量的信息的第二图像、以及传送包括所述第一和第二图像之间的映射的第三图像,使得所述第一和第二图像的接收者可使所述第一和第二图像相关以利用所述预定位置处的所述向量。
2.如权利要求1所述的方法,其特征在于,所述第一图像是地图,且其中所述第二图像是定义仅在预定细节水平下显示的可视数据的一组向量。
3.如权利要求1所述的方法,其特征在于,所述第一图像是地图。
4.如权利要求1所述的方法,其特征在于,所述第二图像包括超链接。
5.如权利要求1所述的方法,其特征在于,所述第一图像是地图,且其中所述第二图像包括一组向量并且其中所述向量中的多个位于与所述第一图像中要应用所述向量的位置相对应的位置上,且其中所述向量中的多个位于所述第二图像上不与所述第一图像上要应用所述向量的所述位置相对应的位置上。
6.如权利要求5所述的方法,其特征在于,还包括利用一高效填塞算法来构造所述第二图像以减少所述第二图像上出现一个或多个向量的位置与所述第一图像上要应用所述一个或多个向量的位置之间的空间的量。
7.如权利要求6所述的方法,其特征在于,所述向量包括启动节点或子节点的信息。
8.一种呈现图像的方法,包括:从远程计算机接收第一、第二和第三数据集,所述第一数据集代表图像,所述第二数据集代表定义所述图像在规定位置上的特征的向量,而所述第三数据集用于规定所述位置。
9.如权利要求8所述的方法,其特征在于,所述规定位置是地图上的街道位置。
10.如权利要求8所述的方法,其特征在于,所述向量表示子节点,并包括指示所述子节点应当在什么条件下启动的信息。
11.如权利要求8所述的方法,其特征在于,所述向量包括到由以下各项构成的组中的至少一个的超链接:外部网站和嵌入的可视内容。
12.如权利要求8所述的方法,其特征在于,所述向量包括到广告素材的超链接。
13.如权利要求8所述的方法,其特征在于,所述向量包括指定用于在所述图像中预定位置上的部分图像的呈现方法。
14.一种方法,包括:
提供图像的第一层,所述第一层包括具有所述第一层内的位置的所述图像的特征;以及
提供所述图像的第二层,所述第二层包括对应于所述特征中相应的一个的数据块;每一所述数据块在所述第二层中基本与所述第一层中对应于每一所述数据块的特征的位置相对应的位置上,其中所述第二层的大小和形状基本对应于所述第一层的大小和形状。
15.如权利要求14所述的方法,其特征在于,每一所述数据块描述了所述特征中对应于每一所述数据块的至少一个特性。
16.如权利要求14所述的方法,其特征在于,还包括:
提供所述图像的第三层,所述第三层包括指针,每一所述指针对应于所述特征中相应的一个以及所述数据块中相应的一个。
17.如权利要求16所述的方法,其特征在于,每一所述指针指示每一所述指针的对应数据块相对于每一所述指针的位置的位置。
18.如权利要求15所述的方法,其特征在于,所述描述包括:
提供至少一个所述特征的文本数据。
19.如权利要求15所述的方法,其特征在于,所述描述包括:
提供至少一个所述特征的图示。
20.如权利要求15所述的方法,其特征在于,所述描述包括:
提供指示至少一个所述特征的几何数据。
21.如权利要求20所述的方法,其特征在于,所述几何数据包括轮廓数据。
22.如权利要求15所述的方法,其特征在于,所述描述包括:
提供至少一个所述特征的色彩信息。
23.如权利要求15所述的方法,其特征在于,所述描述包括:
提供到与所述至少一个特征有关的外部网站的至少一个链接。
24.如权利要求15所述的方法,其特征在于,所述描述包括:
提供与至少一个所述特征有关的嵌入的可视内容。
25.如权利要求13所述的方法,其特征在于,所述描述包括:
提供与至少一个所述特征有关的广告信息。
26.如权利要求15所述的方法,其特征在于,所述描述包括:
提供路段的图解细节。
27.如权利要求15所述的方法,其特征在于,所述描述包括:
提供由以下各项构成的组中的至少一个的图解细节:至少一条道路、至少一个公园、区域地形、水体水文地理、至少一个建筑物、至少一个公共厕所、至少一个无线保真站、至少一条电力线、以及至少一个体育馆。
28.一种包括在一个或多个软件程序的控制下操作的处理单元的装置,所述软件程序用于使所述处理单元执行以下动作,包括:
提供图像的第一层,所述第一层包括具有所述第一层内的位置的所述图像的特征;以及
提供所述图像的第二层,所述第二层包括对应于所述特征中相应的一个的数据块;每一所述数据块在所述第二层中基本与所述第一层中对应于每一所述数据块的特征的位置相对应的位置上,其中所述第二层的大小和形状基本对应于所述第一层的大小和形状。
29.一种包含一个或多个软件程序的存储介质,所述软件程序用于使处理单元执行以下动作,包括:
提供图像的第一层,所述第一层包括具有所述第一层内的位置的所述图像的特征;以及
提供所述图像的第二层,所述第二层包括对应于所述特征中相应的一个的数据块;每一所述数据块在所述第二层中基本与所述第一层中对应于每一所述数据块的特征的位置相对应的位置上,其中所述第二层的大小和形状基本对应于所述第一层的大小和形状。
30.一种方法,包括:
提供图像的第一层,所述第一层包括具有所述第一层内的位置的所述图像的特征;
提供所述图像的第二层,所述第二层包括对应于并描述所述特征中相应的一个的数据块,每一所述数据块在所述第二层中至少基本与所述第一层中对应于每一所述数据块的特征的位置相对应的位置上;以及
提供所述图像的第三层,所述第三层包括具有所述第三层中的位置的指针,每一所述指针对应于所述特征中相应的一个以及所述数据块中相应的一个,每一所述指针在所述第三层中的位置至少基本对应于所述第一层中与每一所述指针相对应的特征的位置。
31.如权利要求30所述的方法,其特征在于,所述第二层和所述第三层各自具有对应于所述第一层的大小和形状的大小和形状。
32.如权利要求30所述的方法,其特征在于,还包括:
从所述第一层、所述第二层和所述第三层的组合形成地图图像。
33.如权利要求32所述的方法,其特征在于,还包括平坦化所述地图图像中的数据。
34.如权利要求30所述的方法,其特征在于,每一所述指针指示每一所述指针的对应数据块相对于每一所述指针的位置的位置。
35.如权利要求34所述的方法,其特征在于,所述指示包括标识二维中的偏移。
36.如权利要求35所述的方法,其特征在于,所述偏移的每一所述维以像素来表达。
37.如权利要求35所述的方法,其特征在于,所述指示包括将偏移标识为沿Hilbert曲线的一维距离。
38.如权利要求37所述的方法,其特征在于,沿所述一维曲线的所述偏移以像素为单位来表达。
39.如权利要求37所述的方法,其特征在于,沿所述一维曲线的所述偏移以对应于像素的整数倍的单位来表达。
40.如权利要求30所述的方法,其特征在于,所述提供所述图像的第二层包括:
采用一填塞算法来定位每一所述数据块以实现每一所述数据块与每一所述数据块在所述第二层中的目标位置的最大接近度,所述第二层中的所述目标位置对应于所述第一层中与每一所述数据块相对应的特征的位置。
41.如权利要求40所述的方法,其特征在于,所述最大接近度是基于每一所述数据块的位置与每一所述数据块的所述目标位置之间的最短直线距离来确定的。
42.如权利要求40所述的方法,其特征在于,所述最大接近度是基于每一所述数据块的位置与每一所述数据块的所述目标位置之间的二维中每一维的偏移的绝对值之和来确定的。
43.如权利要求40所述的方法,其特征在于,所述最大接近度是基于每一所述数据块的位置与每一所述数据块的所述目标位置之间的最小Hilbert曲线长度来确定的。
44.一种包含一个或多个软件程序的存储介质,所述软件程序可用于使得处理单元执行以下动作,包括:
提供图像的第一层,所述第一层包括具有所述第一层内的位置的所述图像的特征;
提供所述图像的第二层,所述第二层包括对应于并描述所述特征中相应的一个的数据块,每一所述数据块在所述第二层中至少基本与所述第一层中对应于每一所述数据块的特征的位置相对应的位置上;以及
提供所述图像的第三层,所述第三层包括具有所述第三层中的位置的指针,每一所述指针对应于所述特征中相应的一个以及所述数据块中相应的一个,每一所述指针在所述第三层中的位置至少基本对应于所述第一层中与每一所述指针相对应的特征的位置。
45.如权利要求44所述的存储介质,其特征在于,所述第二层和所述第三层各自具有对应于所述第一层的大小和形状的大小和形状。
46.如权利要求44所述的存储介质,其特征在于,所述处理单元还执行以下动作:
从所述第一层、所述第二层和所述第三层的组合形成地图图像。
47.如权利要求44所述的存储介质,其特征在于,每一所述指针指示每一所述指针的对应数据块相对于每一所述指针的位置的位置。
48.如权利要求44所述的存储介质,其特征在于,所述指示包括标识二维中的偏移。
49.如权利要求44所述的存储介质,其特征在于,所述提供所述图像的第二层包括:
采用一填塞算法来定位每一所述数据块以实现每一所述数据块与每一所述数据块在所述第二层中的目标位置的最大接近度,所述第二层中的所述目标位置对应于所述第一层中与每一所述数据块相对应的特征的位置。
50.如权利要求49所述的存储介质,其特征在于,所述最大接近度是基于每一所述数据块的位置与每一所述数据块的所述目标位置之间的最短直线距离来确定的。
51.一种包括在一个或多个软件程序的控制下操作的处理单元的装置,所述软件程序可用于使得所述处理单元执行以下动作,包括:
提供图像的第一层,所述第一层包括具有所述第一层内的位置的所述图像的特征;
提供所述图像的第二层,所述第二层包括对应于并描述所述特征中相应的一个的数据块,每一所述数据块在所述第二层中至少基本与所述第一层中对应于每一所述数据块的特征的位置相对应的位置上;以及
提供所述图像的第三层,所述第三层包括具有所述第三层中的位置的指针,每一所述指针对应于所述特征中相应的一个以及所述数据块中相应的一个,每一所述指针在所述第三层中的位置至少基本对应于所述第一层中与每一所述指针相对应的特征的位置。
52.如权利要求51所述的装置,其特征在于,所述第二层和所述第三层各自具有对应于所述第一层的大小和形状的大小和形状。
53.如权利要求51所述的装置,其特征在于,所述处理单元还执行以下动作:
从所述第一层、所述第二层和所述第三层的组合形成地图图像。
54.如权利要求51所述的装置,其特征在于,每一所述指针指示每一所述指针的对应数据块相对于每一所述指针的位置的位置。
55.如权利要求54所述的装置,其特征在于,所述指示包括标识二维中的偏移。
56.如权利要求51所述的装置,其特征在于,所述提供所述图像的第二层包括:
采用一填塞算法来定位每一所述数据块以实现每一所述数据块与每一所述数据块在所述第二层中的目标位置的最大接近度,所述第二层中的所述目标位置对应于所述第一层中与每一所述数据块相对应的特征的位置。
57.如权利要求56所述的装置,其特征在于,所述最大接近度是基于每一所述数据块的位置与每一所述数据块的所述目标位置之间的最短直线距离来确定的。
摘要
公开了一种***和方法,包括提供图像的第一层,该第一层包括具有第一层内的位置的图像的特征;以及提供图像的第二层,该第二层包括对应于这些特征中相应的一个的数据块;每一数据块在第二层中基本与第一层中对应于每一数据块的特征的位置相对应的位置上,其中第二层的大小和形状基本对应于所述第一层的大小和形状。
Claims (47)
1.一种方法,包括:
在通信链路上建立第一计算机和第二计算机之间的通信,所述第二计算机具有以压缩图像数据的形式存储其中的图像集合;
在所述图像集合中选择第一图像以在所述第一计算机上查看;
从所述第二计算机向所述第一计算机发送所述第一图像的压缩图像数据的至少一部分,其中所述发送包括将所述第一图像的第一感兴趣区域的全分辨率图像数据下载到所述第一计算机。
2.如权利要求1所述的方法,其特征在于,所述发送包括:
至少发送所述第一图像的在所述第一感兴趣区域之外的区域的低分辨率图像数据。
3.如权利要求2所述的方法,其特征在于,所述至少发送低分辨率图像数据包括:
发送外部区域的所述图像数据,其中所述外部区域图像数据是以随着逐步靠近所述第一感兴趣区域而增高的分辨率来提供的。
4.如权利要求3所述的方法,其特征在于,还包括:
至少部分地降低所述第一感兴趣区域的所述图像数据存储在所述第一计算机上的分辨率水平;以及
将所述第一图像的第二感兴趣区域的附加图像数据下载到所述第一计算机,以允许以全分辨率呈现所述第二感兴趣区域。
5.如权利要求4所述的方法,其特征在于,所述第二感兴趣区域与所述第一感兴趣区域重叠。
6.如权利要求4所述的方法,其特征在于,所述第二感兴趣区域不与所述第一感兴趣区域重叠。
7.如权利要求4所述的方法,其特征在于,还包括:
重复所述部分降低步骤和所述下载附加图像数据步骤以提供转换的感兴趣区域。
8.如权利要求1所述的方法,其特征在于,还包括:
在所述图像集合中选择多个附加图像;
在从所述第二计算机向所述第一计算机发送所述选定图像中的任一个的全部之前,从所述第二计算机向所述第一计算机发送所述选定图像的每一个的图像数据的至少一部分。
9.一种方法,包括:
在通信链路上建立第一计算机与第二计算机之间的通信,所述第二计算机具有以压缩图像数据形式存储其中的图像集合;
在所述集合中选择多个图像以传送给所述第一计算机;
在发送所述选定图像的任一个的全分辨率图像数据之前,从所述第二计算机向所述第一计算机发送全部所述选定图像的低分辨率图像数据。
10.如权利要求9所述的方法,其特征在于,还包括:
发送所述选定图像的给定之一的感兴趣区域的全分辨率图像数据,所述感兴趣区域比所述给定图像的全部小。
11.如权利要求10所述的方法,其特征在于,还包括:
发送所述给定图像在所述感兴趣区域外面的部分的低于全分辨率图像数据。
12.如权利要求11所述的方法,其特征在于,所述发送所述图像的所述外面部分的低于全分辨率图像数据包括:
发送所述外面部分图像数据,以使得所述给定图像的所述外面部分存储在所述第一计算机上的分辨率随着逐步靠近所述感兴趣区域而增高。
13.如权利要求9所述的方法,其特征在于,所述多个图像是一出版物的多个页面。
14.如权利要求13所述的方法,其特征在于,所述出版物的所述多个页面具有一限定的顺序次序。
15.如权利要求14所述的方法,其特征在于,具有所述顺序次序的所述页面被依次编号。
16.如权利要求14所述的方法,其特征在于,还包括:
以全分辨率呈现所述多个页面的第一选定页面,其中所述第一选定页面是第一活动页面。
17.如权利要求16所述的方法,其特征在于,还包括:
以低于全分辨率呈现所述多个页面中除所述第一活动页面之外的页面。
18.如权利要求17所述的方法,其特征在于,还包括:
以随着页面离所述第一活动页面的距离增大而降低的分辨率水平来呈现所述其它页面。
19.如权利要求18所述的方法,其特征在于,所述多个其它页面以多个分辨率呈现,所述多个分辨率等于呈现所述第一活动页面的所述全分辨率除以一常数的所述多个其它页面中的相应页面相对于所述第一活动页面放置的距离次幂。
20.如权利要求19所述的方法,其特征在于,所述常数等于2。
21.如权利要求17所述的方法,其特征在于,还包括:
丢弃所述图像数据的至少一部分,从而允许以所述全分辨率呈现所述第一活动页面;
以全分辨率呈现所述多个页面的第二选定页面,由此使所述第二选定页面成为第二活动页面。
22.如权利要求21所述的方法,其特征在于,所述第二活动页面按页面的所述顺序次序紧靠所述第一活动页面之前、或紧随所述第一活动页面之后。
23.如权利要求21所述的方法,其特征在于,所述第二活动页面按页面的所述顺序次序距离所述第一活动页面至少两个页面。
24.如权利要求9所述的方法,其特征在于,所述第二计算机是便携式设备。
25.如权利要求24所述的方法,其特征在于,所述第一计算机是个人计算机。
26.如权利要求24所述的方法,其特征在于,所述第一计算机是web服务器。
27.如权利要求9所述的方法,其特征在于,所述通信链路包括所述第一计算机和所述第二计算机之间的直接链路。
28.如权利要求9所述的方法,其特征在于,所述通信链路包括因特网通信链路。
29.如权利要求25所述的方法,其特征在于,所述便携式设备是数码相机,而所述多个图像是照片。
30.如权利要求29所述的方法,其特征在于,还包括:
完成所述照片的所述数据从所述数码相机向所述个人计算机的所述发送。
31.如权利要求30所述的方法,其特征在于,还包括:
将所述图片上传到web服务器。
32.如权利要求30所述的方法,其特征在于,还包括:
将所述发送数据存储在所述个人计算机的虚拟显示器中。
33.如权利要求32所述的方法,其特征在于,所述虚拟显示器包括能够至少部分地描述所述图像的小波数据。
34.如权利要求32所述的方法,其特征在于,还包括:
继续所述发送和所述存储,直到以指定分辨率表示所述虚拟显示器中的所述图像数据。
35.如权利要求34所述的方法,其特征在于,还包括:
在物理显示器上以所述指定分辨率呈现存储在所述虚拟显示器中的所述图像数据。
36.如权利要求9所述的方法,其特征在于,还包括:
在所述第一计算机上提供所述图像集合中所有图像的高速缓存的表示,其中所述高速缓存的表示以比所述图像集合存储在所述第二计算机中的分辨率更低的分辨率来存储,所述图像的所述高速缓存的表示是所述第一计算机的高速缓存内的高速缓存图像。
37.如权利要求36所述的方法,其特征在于,还包括:
将所述第一计算机的高速缓存内的所述高速缓存图像填塞到一综合画中,以使得所述高速缓存图像向物理显示器的呈现在所述物理显示器的紧凑区域内显示所述综合画。
38.如权利要求37所述的方法,其特征在于,所述紧凑区域至少基本上是矩形。
39.如权利要求37所述的方法,其特征在于,还包括:
允许所述第一计算机的用户放大和缩小所述综合画。
40.如权利要求37所述的方法,其特征在于,还包括:
允许所述第一计算机的用户扫视所述综合画。
41.如权利要求37所述的方法,其特征在于,还包括:
使元数据与所述高速缓存图像集相关联,所述集中具有至少一个高速缓存图像。
42.如权利要求41所述的方法,其特征在于,还包括:
用所述元数据将每一所述高速缓存图像集链接到每一所述集内的图像的更详细呈现。
43.如权利要求42所述的方法,其特征在于,还包括:
当对所述综合画的导航到达指定的缩放阈值时使用所述元数据调用到所述更详细呈现的所述链接。
44.如权利要求37所述的方法,其特征在于,还包括:
使用纹理映射重新排列所述高速缓存中的所述经填塞的高速缓存图像。
45.如权利要求44所述的方法,其特征在于,所述纹理映射用软件实现。
46.如权利要求44所述的方法,其特征在于,所述纹理映射是硬件加速的。
47.如权利要求44所述的方法,其特征在于,所述纹理映射包括:对所述综合画执行三维立体变换。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61907004P | 2004-10-15 | 2004-10-15 | |
US61905304P | 2004-10-15 | 2004-10-15 | |
US61911804P | 2004-10-15 | 2004-10-15 | |
US60/619,070 | 2004-10-15 | ||
US60/619,053 | 2004-10-15 | ||
US60/619,118 | 2004-10-15 | ||
US11/141,958 US7546419B2 (en) | 2004-06-01 | 2005-06-01 | Efficient data cache |
US11/141,958 | 2005-06-01 | ||
PCT/US2005/037226 WO2006052390A2 (en) | 2004-10-15 | 2005-10-17 | System and method for managing communication and/or storage of image data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101147174A true CN101147174A (zh) | 2008-03-19 |
CN101147174B CN101147174B (zh) | 2011-06-08 |
Family
ID=36336931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800430579A Active CN101147174B (zh) | 2004-10-15 | 2005-10-17 | 用于管理图像数据的传送和/或存储的***和方法 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1810249A4 (zh) |
JP (1) | JP4831071B2 (zh) |
CN (1) | CN101147174B (zh) |
WO (1) | WO2006052390A2 (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411763A (zh) * | 2010-09-20 | 2012-04-11 | 湖南科创信息技术股份有限公司 | 基于3g网络的移动车险查勘方法及*** |
CN103282944A (zh) * | 2010-11-05 | 2013-09-04 | 皇家飞利浦电子股份有限公司 | 基于图像内容的预测和图像高速缓存器控制器 |
CN103337090A (zh) * | 2013-06-17 | 2013-10-02 | 清华大学 | 月球模型远程交互浏览可视化方法、客户端及*** |
CN104025071A (zh) * | 2011-12-27 | 2014-09-03 | 高通股份有限公司 | 人群确定的文件尺寸上载方法、装置和*** |
CN104123235A (zh) * | 2013-04-26 | 2014-10-29 | 国际商业机器公司 | 访问存储在服务器上高速缓存中的数据记录的设备和方法 |
CN105653496A (zh) * | 2016-03-18 | 2016-06-08 | 联想(北京)有限公司 | 电子设备及其数据传输方法 |
CN105917682A (zh) * | 2014-01-27 | 2016-08-31 | 高通股份有限公司 | 用于分层地图拼贴的方法和设备 |
CN106031174A (zh) * | 2014-02-21 | 2016-10-12 | 索尼公司 | 传输装置、传输方法、接收装置以及接收方法 |
CN106716386A (zh) * | 2014-10-07 | 2017-05-24 | 谷歌公司 | 使用页面过滤器和***mmu的硬件辅助存储器压缩管理 |
CN107004135A (zh) * | 2014-10-15 | 2017-08-01 | 核心健康有限责任公司 | 大图像文件的远程查看 |
CN107331222A (zh) * | 2016-04-29 | 2017-11-07 | 北京学而思教育科技有限公司 | 一种图像数据处理方法及装置 |
CN107665101A (zh) * | 2016-07-29 | 2018-02-06 | 佳能株式会社 | 信息处理装置、信息处理方法、存储介质及图像形成装置 |
CN108573513A (zh) * | 2017-03-14 | 2018-09-25 | 腾讯科技(深圳)有限公司 | 随机元素生成方法及随机元素生成装置 |
CN109257952A (zh) * | 2016-08-09 | 2019-01-22 | 西门子股份公司 | 以减少的数据量进行数据传输的方法、***和程序产品 |
CN109345629A (zh) * | 2018-08-08 | 2019-02-15 | 安徽慧软科技有限公司 | 一种三维医学图像模糊凸显显示方法 |
CN110140353A (zh) * | 2016-04-01 | 2019-08-16 | 线性代数技术有限公司 | 用于适用于人类视觉机制的头戴式显示器的***和方法 |
CN112416347A (zh) * | 2020-11-25 | 2021-02-26 | 中睿信数字技术有限公司 | 一种基于栅格和动态磁贴的网页布局方法及*** |
CN113673405A (zh) * | 2021-08-14 | 2021-11-19 | 深圳市快易典教育科技有限公司 | 基于题目识别的习题批改方法、***及智能家教学习机 |
US11682106B2 (en) | 2017-12-29 | 2023-06-20 | Intel Corporation | Foveated image rendering for head-mounted display devices |
CN117627176A (zh) * | 2024-01-25 | 2024-03-01 | 华南理工大学 | 一种大尺度三维晶格结构的3d空间打印方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080086324A1 (en) * | 2006-09-14 | 2008-04-10 | Junichi Yamagata | Parts managing system, parts managing method, and computer program product |
GB2462589B (en) | 2008-08-04 | 2013-02-20 | Sony Comp Entertainment Europe | Apparatus and method of viewing electronic documents |
US9298372B2 (en) * | 2013-03-06 | 2016-03-29 | Dell Products, L.P. | System and method for managing storage system snapshots |
EP3005343A4 (en) * | 2013-05-31 | 2017-02-01 | Freedom Scientific Inc. | Vector-based customizable pointing indicia |
CN106062781A (zh) * | 2014-04-30 | 2016-10-26 | 英派尔科技开发有限公司 | 图像分辨率修改 |
US9978126B2 (en) | 2014-04-30 | 2018-05-22 | Empire Technology Development Llc | Image resolution modification |
TW201606746A (zh) | 2014-05-09 | 2016-02-16 | 萊芙麥斯公司 | 照片分享裝置顯示器上之影像捲動 |
FR3048524A1 (fr) * | 2016-03-07 | 2017-09-08 | Datexim | Systeme d'affichage a distance d'une image medicale |
CN106060382A (zh) * | 2016-05-27 | 2016-10-26 | 北京金山安全软件有限公司 | 一种图像处理方法、装置及电子设备 |
US11004178B2 (en) * | 2018-03-01 | 2021-05-11 | Nvidia Corporation | Enhancing high-resolution images with data from low-resolution images |
CN112384910A (zh) * | 2018-07-04 | 2021-02-19 | 瑞典爱立信有限公司 | 无线设备、计算机服务器节点及其方法 |
US20230061045A1 (en) * | 2020-07-29 | 2023-03-02 | Google Llc | Oversmoothing progressive images |
CN112445727B (zh) * | 2020-11-27 | 2023-08-25 | 鹏城实验室 | 基于视口特征的边缘缓存置换方法及装置 |
CN113031896B (zh) * | 2021-03-31 | 2023-01-20 | 卡莱特云科技股份有限公司 | 文本循环滚动播放方法、播放控制装置及计算机设备 |
CN113568996B (zh) * | 2021-07-29 | 2023-05-16 | 西安恒歌数码科技有限责任公司 | 一种基于osgEarth的多图层掉帧优化方法及*** |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341466A (en) * | 1991-05-09 | 1994-08-23 | New York University | Fractal computer user centerface with zooming capability |
US6348921B1 (en) * | 1996-04-12 | 2002-02-19 | Ze Hong Zhao | System and method for displaying different portions of an object in different levels of detail |
US6182114B1 (en) | 1998-01-09 | 2001-01-30 | New York University | Apparatus and method for realtime visualization using user-defined dynamic, multi-foveated images |
US6496607B1 (en) * | 1998-06-26 | 2002-12-17 | Sarnoff Corporation | Method and apparatus for region-based allocation of processing resources and control of input image formation |
SE513353C2 (sv) * | 1998-10-21 | 2000-08-28 | Ericsson Telefon Ab L M | Partiell hämtning av bilder i den komprimerade domänen |
GB9926131D0 (en) * | 1999-11-05 | 2000-01-12 | Superscape Limited | Image enhancement |
US6453330B1 (en) * | 1999-11-24 | 2002-09-17 | Ati International Srl | High-precision bilinear interpolation |
JP2002330951A (ja) * | 2001-05-11 | 2002-11-19 | Canon Inc | 画像符号化装置及び復号装置及び方法及びコンピュータプログラム及び記憶媒体 |
WO2002095608A1 (en) | 2001-05-23 | 2002-11-28 | New York University | Method and system for distributing foveated data in a network |
DE10300048B4 (de) * | 2002-01-05 | 2005-05-12 | Samsung Electronics Co., Ltd., Suwon | Verfahren und Vorrichtung zur Bildcodierung und -decodierung |
US6885939B2 (en) * | 2002-12-31 | 2005-04-26 | Robert Bosch Gmbh | System and method for advanced 3D visualization for mobile navigation units |
US7075535B2 (en) | 2003-03-05 | 2006-07-11 | Sand Codex | System and method for exact rendering in a zooming user interface |
US7546419B2 (en) | 2004-06-01 | 2009-06-09 | Aguera Y Arcas Blaise | Efficient data cache |
US7254271B2 (en) | 2003-03-05 | 2007-08-07 | Seadragon Software, Inc. | Method for encoding and serving geospatial or other vector data as images |
-
2005
- 2005-10-17 JP JP2007536990A patent/JP4831071B2/ja not_active Expired - Fee Related
- 2005-10-17 WO PCT/US2005/037226 patent/WO2006052390A2/en active Application Filing
- 2005-10-17 CN CN2005800430579A patent/CN101147174B/zh active Active
- 2005-10-17 EP EP05851225.2A patent/EP1810249A4/en not_active Ceased
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411763A (zh) * | 2010-09-20 | 2012-04-11 | 湖南科创信息技术股份有限公司 | 基于3g网络的移动车险查勘方法及*** |
CN103282944A (zh) * | 2010-11-05 | 2013-09-04 | 皇家飞利浦电子股份有限公司 | 基于图像内容的预测和图像高速缓存器控制器 |
US10015250B2 (en) | 2010-11-05 | 2018-07-03 | Koninklijke Philips N.V. | Image content based prediction and image cache controller |
CN104025071A (zh) * | 2011-12-27 | 2014-09-03 | 高通股份有限公司 | 人群确定的文件尺寸上载方法、装置和*** |
US9575927B2 (en) | 2012-11-21 | 2017-02-21 | International Business Machines Corporation | RDMA-optimized high-performance distributed cache |
US9569400B2 (en) | 2012-11-21 | 2017-02-14 | International Business Machines Corporation | RDMA-optimized high-performance distributed cache |
CN104123235A (zh) * | 2013-04-26 | 2014-10-29 | 国际商业机器公司 | 访问存储在服务器上高速缓存中的数据记录的设备和方法 |
CN103337090A (zh) * | 2013-06-17 | 2013-10-02 | 清华大学 | 月球模型远程交互浏览可视化方法、客户端及*** |
CN105917682A (zh) * | 2014-01-27 | 2016-08-31 | 高通股份有限公司 | 用于分层地图拼贴的方法和设备 |
CN106031174A (zh) * | 2014-02-21 | 2016-10-12 | 索尼公司 | 传输装置、传输方法、接收装置以及接收方法 |
CN106031174B (zh) * | 2014-02-21 | 2019-10-29 | 索尼公司 | 传输装置、传输方法、接收装置以及接收方法 |
CN106716386A (zh) * | 2014-10-07 | 2017-05-24 | 谷歌公司 | 使用页面过滤器和***mmu的硬件辅助存储器压缩管理 |
CN107004135A (zh) * | 2014-10-15 | 2017-08-01 | 核心健康有限责任公司 | 大图像文件的远程查看 |
CN105653496B (zh) * | 2016-03-18 | 2018-08-31 | 联想(北京)有限公司 | 电子设备及其数据传输方法 |
CN105653496A (zh) * | 2016-03-18 | 2016-06-08 | 联想(北京)有限公司 | 电子设备及其数据传输方法 |
CN110140353A (zh) * | 2016-04-01 | 2019-08-16 | 线性代数技术有限公司 | 用于适用于人类视觉机制的头戴式显示器的***和方法 |
CN107331222A (zh) * | 2016-04-29 | 2017-11-07 | 北京学而思教育科技有限公司 | 一种图像数据处理方法及装置 |
CN107331222B (zh) * | 2016-04-29 | 2019-11-15 | 北京学而思教育科技有限公司 | 一种图像数据处理方法及装置 |
CN107665101A (zh) * | 2016-07-29 | 2018-02-06 | 佳能株式会社 | 信息处理装置、信息处理方法、存储介质及图像形成装置 |
CN109257952B (zh) * | 2016-08-09 | 2022-05-27 | 西门子股份公司 | 以减少的数据量进行数据传输的方法、***和存储介质 |
CN109257952A (zh) * | 2016-08-09 | 2019-01-22 | 西门子股份公司 | 以减少的数据量进行数据传输的方法、***和程序产品 |
CN108573513A (zh) * | 2017-03-14 | 2018-09-25 | 腾讯科技(深圳)有限公司 | 随机元素生成方法及随机元素生成装置 |
CN108573513B (zh) * | 2017-03-14 | 2021-08-03 | 腾讯科技(深圳)有限公司 | 随机元素生成方法及随机元素生成装置 |
US11682106B2 (en) | 2017-12-29 | 2023-06-20 | Intel Corporation | Foveated image rendering for head-mounted display devices |
CN109345629A (zh) * | 2018-08-08 | 2019-02-15 | 安徽慧软科技有限公司 | 一种三维医学图像模糊凸显显示方法 |
CN112416347A (zh) * | 2020-11-25 | 2021-02-26 | 中睿信数字技术有限公司 | 一种基于栅格和动态磁贴的网页布局方法及*** |
CN113673405A (zh) * | 2021-08-14 | 2021-11-19 | 深圳市快易典教育科技有限公司 | 基于题目识别的习题批改方法、***及智能家教学习机 |
CN113673405B (zh) * | 2021-08-14 | 2024-03-29 | 深圳市快易典教育科技有限公司 | 基于题目识别的习题批改方法、***及智能家教学习机 |
CN117627176A (zh) * | 2024-01-25 | 2024-03-01 | 华南理工大学 | 一种大尺度三维晶格结构的3d空间打印方法 |
CN117627176B (zh) * | 2024-01-25 | 2024-03-26 | 华南理工大学 | 一种大尺度三维晶格结构的3d空间打印方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101147174B (zh) | 2011-06-08 |
EP1810249A2 (en) | 2007-07-25 |
JP4831071B2 (ja) | 2011-12-07 |
WO2006052390A3 (en) | 2007-03-01 |
WO2006052390A9 (en) | 2007-07-12 |
WO2006052390A2 (en) | 2006-05-18 |
EP1810249A4 (en) | 2014-09-10 |
JP2008517540A (ja) | 2008-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101147174B (zh) | 用于管理图像数据的传送和/或存储的***和方法 | |
EP1756521A2 (en) | Method for encoding and serving geospatial or other vector data as images | |
Vanegas et al. | Modelling the appearance and behaviour of urban spaces | |
CN101501664A (zh) | 用于传送网页数据的***和方法 | |
KR20070116925A (ko) | 웹 페이지 데이터 전송 시스템 및 방법 | |
KR100915209B1 (ko) | 엑스엠엘 기반의 입체 건물 입면 및 내부 자동 모델링 및내비게이션 시스템 및 그 방법 | |
Möser et al. | Context aware terrain visualization for wayfinding and navigation | |
Yu et al. | A hybrid system of expanding 2D GIS into 3D space | |
Aliaga | 3D design and modeling of smart cities from a computer graphics perspective | |
CN116301348A (zh) | 一种博物馆展厅个性化游览布局方法及*** | |
Sherlock et al. | Interactive data styling and multifocal visualization for a multigrid web-based Digital Earth | |
Lin et al. | Virtual geographic environments | |
JP2008535098A (ja) | ウェブページデータを転送するシステムおよび方法 | |
Bourdakis | The future of VRML on large urban models | |
Hudson-Smith et al. | Virtual cities: Digital mirrors into a recursive world | |
Belmonte et al. | Efficiently using connectivity information between triangles in a mesh for real-time rendering | |
Zhang et al. | A web-mapping system for real-time visualization of the global terrain | |
Wang | [Retracted] Optimization of Three‐Dimensional Model of Landscape Space Based on Big Data Analysis | |
Wardijono et al. | 3D virtual environment of Taman Mini Indonesia Indah in a web | |
Hüttner et al. | FlyAway: a 3D terrain visualization system using multiresolution principles | |
Boulos | Principles and techniques of interactive Web cartography and Internet GIS | |
Cartwright | Using 3D models for visualizing “The city as it might be” | |
CN118397208A (zh) | 基于连续性特征的泛地图连续表达变换方法及终端 | |
Leung | Real-time interactive client-server terrain rendering | |
Huang et al. | Visualizing massive terrain with transportation infrastructure by using continuous level of detail |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150504 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150504 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |