本発明の1つまたは複数の実施形態による複数のコンピュータ間でイメージ・データの通信を可能にするために接続することのできるシステムを示すブロック図である。
本発明の1つまたは複数の実施形態による、その中に少なくとも2つの関心領域を有するイメージを示すブロック図である。
本発明の1つまたは複数の実施形態による、本明細書で開示されるテクノロジの諸態様を用いる「仮想ブック」を示すブロック図である。
本発明の1つまたは複数の実施形態による図3の仮想ブックの3次元バージョンを示す図である。
本発明の1つまたは複数の実施形態による、1つまたは複数のポータブル・デバイスと1つまたは複数の他のコンピュータとの間のイメージ・データ通信を管理するシステムを示すブロック図である。
既存の手法を用いる不完全なイメージ・データ・ダウンロードの結果を示す図である。
本発明の1つまたは複数の実施形態による不完全なイメージ・データ・ダウンロードの結果を示す図である。
本発明の1つまたは複数の実施形態による、1つの物理ディスプレイ(スクリーン)および2つの仮想ディスプレイを含むことができる「共通スペース」を示すブロック図である。
本発明の1つまたは複数の実施形態に従って1つのモンタージュに詰め込まれた1000枚を超えるイメージのコレクション(さまざまなサイズのディジタル化された地図のコレクション)を示す図である。
本発明の1つまたは複数の実施形態にしたがってランダム構成に動的に再配置された約3000枚のイメージのスナップショットを示す図である。
本発明の1つまたは複数の実施形態と共に使用されるように適合させることができるコンピュータ・システムを示すブロック図である。
アペンディックス(付録)
A1
(表題)ズーミング・ユーザ・インターフェースにおける正確なレンダリングのためのシステムおよび方法(SYSTEM AND METHOD FOR EXACT RENDERING IN A ZOOMING USER INTERFACE)
(発明者)BLAISE HILARY AGUERA Y ARCAS
(発明の分野)
本発明は、全般的にはコンピュータのグラフィカル・ズーミング・ユーザ・インターフェース(ZUI:zooming user interface)に関する。より具体的には、本発明は、計算的に効率的である(よいユーザ反応性および高いフレーム・レートをもたらす)こと、ならびにベクトル・ドローイング、テキスト、および他の非写真コンテンツが最終的に再サンプリングなしで描かれる(再サンプリングは、通常はイメージ品質の劣化につながることになる)という意味で正確であることの両方である形で、ズーム可能ビジュアル・コンテンツをプログレッシブにレンダリングするシステムおよび方法である。
(発明の背景)
ほとんどの現在のグラフィカル・コンピュータ・ユーザ・インターフェース(GUI)は、固定されたスペース的スケールのビジュアル・コンポーネントを使用して設計されている。しかし、コンピュータ・グラフィックスという分野の誕生から、ビジュアル・コンポーネントがディスプレイ上で固定されたスペース的スケールを有するのではなく、ビジュアル・コンポーネントをズーム・インまたはズーム・アウトできる形で、ビジュアル・コンポーネントを表現でき、操作できることが認められた。ズーム可能コンポーネントの望ましさは、多くの応用領域、たとえば、地図のビューイング、新聞などの大きい異種テキスト・レイアウトのブラウジング、ディジタル写真のアルバムのビューイング、および大きいデータ・セットのビジュアライゼーションを用いる作業などで明白である。スプレッドシートおよびレポートなどの普通のドキュメントを見るときであっても、しばしば、ドキュメントの概観を見、次に、関心を持たれた領域にズーム・インできることが有用である。Microsoft(登録商標)Word(登録商標)および他のOffice(登録商標)プロダクト(表示メニューの下のズーム)、Adobe(登録商標)Photoshop(登録商標)、Adobe(登録商標)Acrobat(登録商標)、QuarkXPress(登録商標)など、多くの現代のコンピュータ・アプリケーションに、ズーム可能コンポーネントが含まれる。ほとんどの場合に、これらのアプリケーションは、ドキュメントのズーム・インおよびズーム・アウトを可能にするが、必ずしもアプリケーション自体のビジュアル・コンポーネントのズーム・インおよびズーム・アウトを可能にはしない。さらに、ズームは、通常、ソフトウェアとのユーザの対話の周辺態様であり、ズーム・セッティングは、時たま変更されるのみである。ドキュメント上での連続的なパンは、標準的である(すなわち、スクロール・バーまたはカーソルを使用して、見られているドキュメントを左、右、上、または下に平行移動させること)が、連続的にズームする能力は、ほとんど必ず存在しない。より一般化されたズーミング・フレームワークでは、すべての種類のビジュアル・コンテンツをズームすることができ、ズームは、パンのようにユーザの体験の一部になるはずである。この線に沿ったアイデアは、1960年代ほど早期のものさえ含む多数の映画の未来的なコンピュータ・ユーザ・インターフェースとして現れ1、最近の映画は、その傾向を継続している2。複数の連続的ズーミング・インターフェースが、1970年代から現在までに考えられ、かつ/または開発されてきた3。1991年に、これらのアイデアのいくつかが、ニューヨーク大学のKenneth PerlinおよびJacob Schwartzによる米国特許第5341466号(Fractal Computer User Centerface with Zooming Capability)で正式に承認された。Perlinおよび同僚によって開発されたプロトタイプ・ズーミング・ユーザ・インターフェースすなわちPadとその後継者であるPad++は、その後にある開発を受けた4。しかし、本発明者の知る限り、フルZUI(ズーミング・ユーザ・インターフェース)に基づく主要なアプリケーションは、複数の技術的不足に部分的に起因して、まだ大量市場には現れておらず、これらの技術的不足のうちの1つが、本発明で対処される。
<1>Stanley Kubrick’s 2001: A Space Odyssey, Turner Entertainment Company, a Time Warner company (1968)
<2>Steven Spielberg’s Minority Report, 20th Century Fox and Dreamworks Pictures (2002)
<3>最初の出現は、W.C. Donelson, Spatial Management of Information, Proceedings of Computer Graphics SIGGRAPH (1978), ACM Press, p. 203−9である。最近の例は、Zanvas.comであり、これは、2002年の夏に立ち上げられた。
<4>Perlinは、http://mrl.nyu.edu/projects/zui/でその後の開発を記述している。
(発明の概要)
本発明は、新たに開発されたズーミング・ユーザ・インターフェース・フレームワーク(以下では、その作業名であるVossによって参照する)がそれに基づく新規のアイデアを実施する。Vossは、そのソフトウェア・アーキテクチャにおける複数の革新に起因して、それに先行するものより強力であり、より反応が速く、より視覚的に説得力があり、より一般的なユーティリティである。本発明は、具体的には、オブジェクト・タイリングおよび非写真コンテンツの演出(rendition)に対するVossの手法における革新のうちの1つに関する。
複数分解度ビジュアル・オブジェクトは、通常、異なる分解度または詳細レベルのサンプリングされたイメージの離散的セット(「イメージ・ピラミッド」)からレンダリングされる。3Dゲーミングなど、連続的ズームが使用されるいくつかの技術的コンテクストにおいて、所望の詳細レベルを一括する2つの隣接する詳細レベルが、各フレームをレンダリングするために一緒にブレンディングされる。というのは、通常、所望の詳細レベルが、正確に、離散的セットによって表される詳細レベルの1つではないからである。そのような技法を、時々トライ・リニア・フィルタリングまたはミップマッピングと称する。結果の補間された演出は、通常、写真コンテンツについては満足できるが、テキスト、グラフ、ドローイング、および手短に言えばユーザが外部のゲーミング・アプリケーションまたはマルチメディア・アプリケーションと対話するのに用いるビジュアル・コンテンツのほとんどなど、幾何プリミティブに関して定義されるコンテンツについては満足できるものではない。これは、詳細レベルのブレンディングが、必ず、ぼけ効果およびエイリアシング効果を導入するからである。この問題に対する理想的な解決策は、先在する分解度の離散的セットに頼らずに、各フレームのビューを正確にリアルタイムでレンダリングすることであるはずである。原則として、これは、各フレームの完全な演出を可能にするけれども、実用的でない場合がある。というのは、しばしば、あまりにも長い時間が、最初から各フレームを高品質でレンダリングするのに必要とされるからである。したがって、フレーム・レートが大幅に低下するので、この方法は、対話型アプリケーションにとって魅力のないものになる。
本発明は、ハイブリッド戦略を用い、このハイブリッド戦略では、離散個数の詳細レベルを有するイメージ・ピラミッド・ベースの手法が、通常は高速のズームおよびパンの間に使用されるが、ビューが十分に安定しているときには、「正確なビュー」が、複数のフレームにまたがってレンダリングされ、ブレンド・インされる。人間の視覚系は、まだ動いている間にはビジュアル・コンテンツの微細な詳細に鈍感なので、このハイブリッド戦略は、計算的な負荷をほんの少しのかけるだけで、連続的な「完全なレンダリング」の錯覚を生み出すことができる。
本発明の目的は、テキスト、プロット、チャート、ドローイング、地図、およびすべての他のベクトル・ベース・コンテンツ(ベクトリアル・コンテンツ(vectorial content)とも称する)を、普通のGUIでの可能な最高品質演出に対する相対的な最終的なイメージ品質の劣化なしに、ズーミング・ユーザ・インターフェース内でレンダリングできるようにすることである。
本発明のもう1つの目的は、任意に大きいまたは複雑なベクトル・ベース・コンテンツをズーミング・ユーザ・インターフェース内で見ることを可能にすることである。
本発明のもう1つの目的は、任意に複雑なベクトル・ベース・ビジュアル・コンテンツのほぼ即座のビューイングを、このコンテンツが最終的に非常に大量のデータを使用して表される場合であっても、また、これらのデータがリモート位置で格納され、低帯域幅ネットワークを介して共有される場合であっても、可能にすることである。
本発明のもう1つの目的は、コンテンツの明快な、ぼけていないビューを維持し、対話的フレーム・レートを維持しながら、ユーザが、ベクトリアル・コンテンツに任意にズーム・インできるようにすることである。
本発明のもう1つの目的は、コンテンツの全体的外見の保存と対話的フレーム・レートの維持との両方の過程で、複雑なベクトリアル・コンテンツの概観を得るために、ユーザが任意に極端にズーム・アウトできるようにすることである。
本発明のもう1つの目的は、対話期間中の複数の詳細レベルまたは複数の演出品質の間の遷移についてのユーザによる知覚を最小にすることである。
本発明のもう1つの目的は、ベクトリアル・コンテンツのある部分の正確な演出が、これらをレンダリングするのに必要な情報が入手不能であること、または正確な演出がまだ進行中であることのいずれかのゆえにまだ行うことができないときに、ぼけによるイメージ品質のグレースフル・デグラデーションを可能にすることである。
本発明のもう1つの目的は、ベクトリアル・コンテンツのある部分の正確な演出が初めて使用可能になるときに、シャープニングによってイメージ品質を優雅に高めることである。
本発明の上記および他の目的は、次の明細書の再検討から当業者に明白になるであろう。
(従来技術:複数分解度像(imagery)およびズーミング・ユーザ・インターフェース)
技術的視点から、このズーミング・ユーザ・インターフェースは、ビジュアル・コンピューティングの基礎となる通常の概念の一般化であり、古典的なユーザ/コンピュータ/ドキュメント対話モデルに固有の複数の限界を克服することを可能にする。そのような限界の1つが、コンピュータ・アプリケーションから「開く」ことができるドキュメントのサイズに関する限界である。というのは、伝統的に、ビューイングまたは編集を開始できるようになる前に、そのようなドキュメントの全体を「ロード」しなければならないからである。特定のコンピュータが使用可能な短期メモリ(通常はRAM)の量が多いときであっても、この限界が感じられる。というのは、ドキュメント情報のすべてを、開く間に、あるリポジトリから(たとえば、ハードディスクからまたはネットワークを介して)短期メモリに転送しなければならず、したがって、限られた帯域幅が、「開く」コマンドの発行と、ビューイングまたは編集を開始できるまでの間の遅延を、受け入れがたく長くする可能性があるからである。
複数の静止ディジタル・イメージは、この問題のよい例と、コンピュータ・サイエンス・コミュニティがこの問題の克服においてビジュアル・コンピューティングの標準的なモデルを超えてどのように動いてきたかの例示と、の両方を提供する。下の表1に、最小の有用なイメージ(時々アイコンとして使用される、サムネイル)から現在一般に使用されている最大の有用なイメージまでの、さまざまな異なるイメージ・タイプの通常の圧縮後のサイズについての異なる帯域幅でのダウンロード時間を示す。文字にアンダーランが付けられたボックスは、対話ブラウジングが特定の接続速度で難しいか不可能であるイメージ・サイズを示す。
*これらの数字が、生のイメージ・データではなく中間品質の現実的な圧縮後のサイズを表すことに留意されたい。具体的には、40MBまでのサイズについては1ビット/ピクセルを、一般により圧縮可能であるより大きいイメージについては0.25ビット/ピクセルを仮定する。
**ローカル無線ネットワークは、かなりより高速である場合がある。この数字は、無線PDAにしばしば使用されるタイプの無線広域ネットワークを指す。
現在ウェブ上にあるほとんどすべてのイメージが、100K(0.1MB)未満である。というのは、ほとんどのユーザが、DSLまたはより低帯域幅でウェブに接続され、より大きいイメージが、ダウンロードに時間がかかりすぎるからである。ローカル・セッティングであっても、通常のユーザのハード・ドライブ上で、500K(0.5MB)を超えるイメージに出会うことは、普通ではない。より大きい(すなわち、より詳細な)イメージがしばしば有用であることは、平均的な家庭内の絵本、地図帳、地図、新聞、およびアートワークに、非常に多数のイメージが含まれ、これらは、フル分解度でディジタル化された場合にサイズにおいてすぐに数十メガ・バイトになることになるという事実によって立証される。
数年前には、大きなイメージは存在しなかったことは、主に、リポジトリ内の格納スペースの不足に起因したが、ハード・ドライブ・テクノロジの進歩、CDROMを焼くことのたやすさ、および大型のネットワーク化されたサーバの高まる普及は、リポジトリ・スペースを、もはや制限要因ではなくした。主要なボトルネックは、現在、帯域幅であり、これに、短期メモリ(すなわち、RAM)スペースが続く。問題は、実際には、上の表によって暗示されるものよりはるかに悪い。というのは、ほとんどのコンテクストで、ユーザは、単一のイメージを見ることだけに関心を持つのではなく、イメージのコレクション全体を見ることに関心を持ち、イメージが、ある適度なサイズより大きい場合には、あるイメージが別のイメージの後にダウンロードされる時間を待つことは、非実用的になる。
JPEG20005などの現代のイメージ圧縮標準規格は、この問題に正確に対処するように設計されている。イメージ・コンテンツを直線の形で(すなわち、通常は上から下、左から右への、ピクセル上の単一のパスで)格納するというよりも、これらの標準規格は、複数分解度分解(multi−resolution decomposition)に基づく。イメージは、まず、通常は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
イメージの複数分解度バージョンのシーケンスが、増加するサイズの順序でリポジトリに格納されると考えるならば、イメージがデータリンクを介してキャッシュに転送されるにつれて、ユーザは、イメージ全体の低分解度概観を非常に素速く入手することができ、次第に微細になる詳細が、その後、伝送が進行するにつれて「充填」されることになるということは、当然の結果である。これは、「増分(incremental)」伝送または「プログレッシブ(progressive)」伝送として知られている。正しく実装されたならば、この伝送は、リポジトリへの接続の帯域幅が非常にささやかな場合であっても、すべてのイメージを、それがどれほど大きいものであれ、そのスペース的全体を(完全な詳細ではないが)ほとんど即座に見ることができるというプロパティ(特性)を有する。完全に詳細なイメージをダウンロードするのに必要な時間の最終的な長さは、同一のままであるが、この情報が送信される順序は、イメージの大きなスケールでの特徴(features)がまず送信されるように、変更されており、これは、ピクセル情報を、完全な詳細レベルで、上から下、左から右への「読取順序」で、送信するよりも、ユーザにとってはるかに役立つ。
これに先だって隠されているものは、前のセクションで説明した古典的なアプリケーション・モデルに適合しない、イメージを「開く」ことを意味することについての新しい概念である。本発明者は、現在、ユーザが、そのイメージを、それがダウンロードされるにつれて見ることができると想像しており、この概念、その有用性は、イメージの幅広いストロークがダウンロード開始の直後に、おそらくはダウンロードが完了するより十分に前に使用可能になるという事実から生じる。したがって、アプリケーションが、ダウンロードが終了する迄の期間待つことをユーザに強制することは、意味をなさず、アプリケーションは、その代わりに、そのドキュメントについて表示できるものを即座に表示すべきであり、詳細を「バックグラウンドで」ダウンロードを継続している期間、ユーザとの対話を遅延させ、またはその対話を不必要に中断させてはならない。これは、アプリケーションが、複数のタスクを同時に行うことを必要とし、これをマルチ・スレッディングと称される。ほとんどの現代のウェブ・ブラウザが、ウェブ・ページ上のイメージを同時にダウンロードし、この間、ウェブ・ページの原文レイアウト(textual layout)を表示し、その間にユーザへの反応を維持するために、わずかに異なる能力で、マルチ・スレッディングを使用することに留意されたい。この場合に、埋め込まれたイメージ自体を、追加の詳細レベルと考えることができ、この追加の詳細レベルは、ウェブ・ページのベア・ボーン(bare−bones)・テキスト・レイアウトからなる基本詳細レベルを強化する。この類比は、重要であることが後で示される。
明らかに、階層イメージ表現、およびイメージ・ドキュメントのプログレッシブ伝送は、直線表現(linear representation)および直線伝送(linear transmission)を超える前進である。しかし、イメージが、その最高詳細レベルで、ユーザのディスプレイが同時に表示できるものより多くの情報(たとえば、より多くのピクセル)を有するときに、さらなる前進が重要になる。現在のディスプレイ・テクノロジを用いると、これは、通常、表1の下部の4種類のイメージにあてはまるが、より小さいディスプレイ(PDAスクリーンなど)は、下部の8種類でさえ表示することができない場合がある。これは、大きいイメージに対してズーム機能を避けられないものにする。すなわち、追加の詳細を発見するためにズーム・インすることが不可能である場合には、ディスプレイより大きいイメージを見ることは、無益である。
大きいイメージのダウンロードが開始されるときに、おそらくは、ユーザは、そのイメージの全体を見ている。第1詳細レベルは、しばしば、非常に粗いので、表示されるイメージは、入手可能な少ない量の情報を大きい表示領域上で拡散するのに使用される「補間」の種類に依存して、ブロック状(blocky)に、あるいはぼけて、見える。次に、イメージは、プログレッシブに洗練されるが、あるポイントで、ディスプレイを情報で「飽和」させ、ダウンロードされる追加詳細のいずれをも、視覚的効果を有しないものにする。したがって、このポイントを超えてダウンロードを継続することは、全く意味をなさない。しかし、ユーザが、特定の領域をはるかに詳細に見るためにズーム・インすると決定し、イメージの有効投影サイズを物理スクリーンより実質的に大きくする、と仮定する。次に、前のセクションで説明したダウンローディング・モデルでは、より高い詳細レベルが、高まる順序で、ダウンロードされることを必要とすることになる。問題は、すべての詳細レベルが、前の詳細レベルの約4倍の情報を含み、ユーザがズーム・インするときに、ダウンロード・プロセスが、不可避的に遅れをとることである。さらに悪いことに、ダウンロードされる情報のほとんどが、その情報が、ビューイング領域の外部の高分解度詳細からなるにつれて、無駄にされる。明らかに、必要なものは、ある詳細レベルの選択された部分だけをダウンロードする能力である、すなわち、可視可能領域で見ることができる詳細だけをダウンロードしなければならない。この変更(alteration)があれば、任意に大きいサイズのイメージを見ることができるだけではなく、どの詳細レベルでもそのようなイメージを通して効率的にナビゲートする(すなわち、ズームし、パンする)こともできるイメージ・ブラウジング・システムを作ることができる。
ドキュメント・アクセスの以前のモデルは、本来シリアルであり、これは、情報オブジェクトの全体が直線の順序で伝送されることを意味する。このモデルは、対照的に、ランダム・アクセスであり、これは、情報オブジェクトの選択された部分だけが要求され、これらの要求を、任意の順序で、長い時間期間にわたってすなわち、ビューイング・セッションの間に行うことができることを意味する。コンピュータおよびリポジトリは、今や、ディスプレイ上で見られているドキュメントとのユーザの「dialogue(対話)」に平行する長期の対話に従事する。
ランダム・アクセスを効率的にするためには、各詳細レベルを、グリッド正方形またはタイルなどの、グリッドに再分割し、このグリッド正方形またはタイルを伝送の基本単位とすることが便利である。各タイルのピクセル単位のサイズは、増加した詳細レベルに、前の詳細レベルより約4倍多いタイルが含まれるように、一定のサイズ、あるいはそれ以下に保つことができる。イメージの寸法が公称タイル・サイズの正確な倍数でない場合があるので、小さいタイルが、イメージのエッジで発生する場合があり、また、最低詳細レベルでは、イメージ全体が、単一の公称タイルより小さくなる可能性がある。結果のタイリングされたイメージ・ピラミッドを、図A1−2に示す。ピラミッドの「先端」では、ダウン・スケーリングされたイメージが単一のタイルより小さいが、この「先端」が、図A1−1のタイリングされていないイメージ・ピラミッドに似て見えることに留意されたい。JPEG2000イメージ・フォーマットには、タイリングされたイメージ、複数分解度イメージ、およびランダム・アクセス・イメージを表現するための、説明したばかりの機能のすべてが含まれる。
ここまでは、静的イメージの場合だけを考慮してきたが、同一の技法を、アプリケーション固有の変更を伴って、ほとんどすべてのタイプのビジュアル・ドキュメントに適用することができる。これには、大きいテキスト、地図または他のベクトル・グラフィックス、スプレッドシート、ビデオ、およびウェブ・ページなどの混合ドキュメントが含まれる(しかし、これらに限定はされない)。これまでの本明細書の議論は、暗黙のうちに、ビューイング専用アプリケーションすなわち、開くことおよび描くことに対応するアクションまたはメソッドだけを定義する必要があるアプリケーションを考慮してもいた。明らかに、ペイント・プログラムによって実装される静的イメージ用の編集コマンド、ワード・プロセッサによって実装されるテキスト用の編集コマンドなど、他のメソッドが望ましい場合がある。しかし、テキストを編集するという問題を考慮されたい。タイプされた入力の挿入などの通常のアクションは、基礎になるドキュメントに対する相対的なスペース的スケールのある範囲にわたってのみ関係がある。テキストがもはや読み取れないほどにズーム・アウトした場合には、対話的編集は、もはや不可能である。単一の文字がスクリーン全体を満たすほどにズーム・インした場合に、対話的編集はもはや不可能であると論ずることもできる。したがって、ズーミング・ユーザ・インターフェースは、あるメソッドのアクションを、それに関連する詳細レベルに制約することもできる。
ビジュアル・ドキュメントが、内部的にイメージとして表されるのではなく、テキスト、スプレッドシート・エントリ、またはベクトル・グラフィックスなどのより抽象的なデータとして表されるときには、前のセクションで導入したタイリング概念を一般化することが必要である。静止イメージについて、タイルをレンダリングするプロセスは、タイルが入手されたならば自明である。というのは、情報(圧縮解除されると)が、そのタイルについての正確にピクセルごとのコンテンツであるからである。さらに、速度ボトルネックは、通常、コンピュータへの圧縮データの転送(たとえば、ダウンロード)である。しかし、いくつかの場合には、速度ボトルネックが、タイルの演出(rendition)に存在する。その演出を行うのに使用される情報は、既にキャッシュ内にある場合があり、あるいは、非常にコンパクトであり、その結果、ダウンロードがもはや遅延を引き起こさなくなる場合がある。したがって、本発明者は、「タイル・ドローイング要求」に応答して、完了し完全に描かれたタイルの作成を、これが低速プロセスである場合があるとの理解の下で、タイル・レンディション(演出)と呼ぶ。必要なデータがかなりのものであり、低速接続を介してダウンロードされなければならないという理由で、あるいはレンディション・プロセス自体が計算処理的に負荷が重いと言う理由で、これが低速であるかどうかは、要点を外した議論である。
完全なズーミング・ユーザ・インターフェースは、これらのアイデアを、ユーザが、大きくおそらくは動的な合成ドキュメント(そのサブ・ドキュメントは通常はスペース的にオーバーラップしない)を見ることができる形で、組み合わせる。これらのサブ・ドキュメントは、次々に(通常はオーバーラップしない)サブ・サブ・ドキュメントを含むことができ、以下同様である。したがって、ドキュメントは、ツリーすなわち、各ドキュメントがサブ・ドキュメントまたは子のコレクションへのポインタを有し、これらのサブ・ドキュメントまたは子のそれぞれが、親ドキュメントのスペース的境界の中に含まれる構造、を形成する。本発明者は、ツリーのプログラミング用語から借用して、各そのようなドキュメントをノードと呼ぶ。ドローイング・メソッドは、すべての詳細レベルのすべてのノードについて定義されるが、アプリケーション固有機能性に対応する他のメソッドを、ある種のノードだけについて定義することができ、そのアクションを、ある種の詳細レベルだけに制約することができる。したがって、一部のノードを、ペインティングと類似のコマンドを使用して編集できる静的イメージとすることができ、他のノードを、編集可能テキストとすることができ、他のノードを、ビューイングおよびクリックのために設計されたウェブ・ページとすることができる。これらのノードのすべてが、共通の大きいスペース的環境すなわち「スーパー・ノード」内で共存することができ、このスーパー・ノードを、ズームおよびパンによってナビゲートすることができる。
良好に実装されたズーミング・ユーザ・インターフェースについて幾つかの直接的な結果があり、これには以下が含まれる。
− 非常に大きいドキュメントを、その全体をリポジトリからダウンロードせずにブラウズすることが可能である。したがって、使用可能な短期メモリより大きいドキュメント、または、別の方法では禁止されることになるサイズのドキュメントでさえ、制限なしに見ることができる。
− コンテンツは、ナビゲーション中に必要に応じてダウンロードされるだけであり、使用可能な帯域幅について好ましい効率的な使用がもたらされる。
− ズームおよびパンは、スペース的に直観的に理解できる動作であり、大量の情報を簡単に理解される形で編成することを可能にする。
− 「スクリーン・スペース」が実質的に制限されないので、同時に複数のドキュメントまたはビューについて作業するために、ウィンドウを最小化したり、複数のデスクトップを使用したり、またはウィンドウを互いの後ろに隠したりすることは、不要である。そうではなく、ドキュメントを望み通りに配置することができ、ユーザは、すべてのドキュメントの概観を得るためにズーム・アウトしたり、または特定のドキュメントにズーム・インしたりすることができる。このことは、それらのドキュメントの任意の組合せを同時にスクリーン上で有用なスケールで可視にすることを可能にするためにそのようなドキュメントの位置を(またはスケールさえも)再配置する可能性を排除しない。また、これは、ズームをより伝統的な手法と組み合わせることを必ずしも排除しない。
− ズームは、ナビゲーションについての本質的な態様なので、すべての種類のコンテンツを、適当なスペース的スケールで見ることができる。
− 高分解度ディスプレイは、もはや、テキストおよびイメージを小さい(時々読み取れない)サイズに縮小することを意味しなくなる。ズームのレベルに応じて、高分解度ディスプレイは、より多くのコンテンツを同時に見ること、またはコンテンツを通常のサイズでより高い忠実度で見ること、のいずれかを可能にする。
− 視覚障害者は、単純にさらにズーム・インすることによって、通常の視力を有する人と同一のコンテンツを簡単にナビゲートすることができる。
これらの利点は、ウェブに接続された普通のコンピュータから利用できる情報の量が激増した現在では、特に貴重である。10年前には、ZUIが見ることを可能にする種類の非常に大きいドキュメントは、まれであり、さらに、そのようなドキュメントは、非常に多くのスペースを占めることになるので、ほとんどのコンピュータで使用可能なリポジトリ(たとえば、40MBハードディスク)におさまるドキュメントは殆どなかった。しかし、現在、我々は、非常に異なる情況に直面しており、サーバは、膨大なドキュメントおよびドキュメント階層を簡単に格納することができ、この情報を、ウェブに接続されたすべてのクライアントから使用可能にすることができる。それでも、これらの潜在的に膨大なリポジトリと普通のユーザとの間の接続の帯域幅は、ローカル・ハードディスクへの接続の帯域幅よりはるかに低い。これが、まさに、ZUIが普通のグラフィカル・ユーザ・インターフェースに対するその最大の利点を与えるシナリオである。
(発明の詳細な説明)
次では、2つの変数名fおよびgを使用する。fは、ディスプレイに対する相対的なタイルのサンプリング密度を指す。このサンプリング密度または「相対的な詳細レベル」は、ズーム依存であるが、f=(タイル・ピクセル単位での直線タイル・サイズ)/(スクリーン・ピクセル単位で測定されたスクリーン上の投影されたタイルの長さ)によって与えられる。f=1の場合に、タイル・ピクセルは、スクリーン・ピクセルに対して1:1であり、f=10の場合に、タイル内の情報は、そのディスプレイが表示できるものよりはるかに詳細であり(10*10=100個のタイル・ピクセルが、単一のスクリーン・ピクセルの内側におさまる)、f=0.1の場合に、タイルは、ディスプレイに対して相対的に粗い(すべてのタイル・ピクセルが、10*10=100個のディスプレイ・ピクセルをカバーするように「ストレッチ」または補間されなければならない)。タイリングの細分性(granularity)は、変数gとして記述されるが、次に低いLODの直線タイリング・グリッド・サイズに対する、より高いLODの直線タイル・グリッド・サイズの比として定義される。前のセクションで考慮したJPEG2000の例では、g=2であり、概念的に、各タイルは、次に高いLODで2×2=4個のタイルに「分割」される。細分性2は、類似するアプリケーションで圧倒的に最も一般的であるが、現在のコンテクストでは、gは、他の値をとることができる。
これまでに説明した詳細レベルの方式が、細分性gの倍率だけ隔てられた異なるスケールでのLODの固定された離散的セットを用いることに留意されたい。その結果、ディスプレイの任意の領域に描かれるイメージは、通常、2つの詳細レベルすなわち、ディスプレイ分解度より多少微細なレベル(f>1)と多少より粗いレベル(f<1)との間の重み付きブレンドである(ただし、より一般的には、本発明は、イメージ領域が過渡的に単一のアンダー・サンプリングされたLOD、または3つ以上のLODの間のブレンドである場合にも適用される)。この方式は、無修正で、ディジタル写真またはビデオなど、サンプリングされたイメージによって定義されるコンテンツに対して視覚的に説得力のある結果を生み出す。しかし、ユーザが定期的に対話するコンテンツの多くは、そうではなく、ベクトリアル(ベクトル的)に定義され、これには、テキスト、ならびに、直線、四辺方形、円、および他のベクトル・プリミティブの組合せが含まれる。ベクトリアル・グラフィック要素に特有なものは、これらが数学的に正確なエッジを伴うことであり、正確な結果を生み出すために、単一のディスプレイ・ピクセルの値に対する制御が一般に必要である。同一のことが、黒ピクセルおよび白ピクセルのチェッカー・ボードなどのディジタル・フィル・パターン(digital fill patterns)にもあてはまる。この種類のビジュアル・コンテンツは、これまでに説明したブレンディング方法によって、上手に再生されない。結果のビジュアル・アーティファクトの例を、図A1−3に示す。これらのアーティ・ファクトには、ブラリネス(blurriness)、変化するスケールに伴うブラリネスの期待されない変化、およびズーム中にシフトするモアレ・パターン、が含まれる。図示のイメージのすべてが、小さいピクセル寸法を有し、ピクセル・レベルで何が起きるかを明瞭に示すために拡大されている。図A1−3(a)は、(アンチ・エイリアシングなしで)純黒および純白でレンダリングされたテキストの例であり、(b)は、アンチ・エイリアシングを用いてレンダリングされた同一のテキストであり、(c)は、狭いスペースをおかれた線のパターンであり、(d)は、交番する黒ピクセルおよび白ピクセルのチェッカーボード・フィル・パターンである。イメージの最も下の行は、最も上の行の正確なイメージに対するLODブレンディング効果を示す。明らかに、(a)のブレンディングされたテキストのエッジのぼけは、(b)の一番上のイメージのピクセルについて正確なアンチ・エイリアシングの結果より劣る。その一方で、テキストが正しくアンチ・エイリアシングされ始める場合に、LODブレンディングは、それをさらにぼけさせ、やはり準最適イメージをもたらす。したがって、(a)および(b)は、ひどい結果を生み出しはしないが、正確なバージョンは、各場合におけるよりも明らかにベターである。他の2つのイメージは、偽のモアレ・パターン、微光(shimmer)、スペックル(speckling)、および、ぼけ(blurring)を含む、より深刻なエラー(誤差)を生じる。
本発明は、この種類のコンテンツを有するノードに対するプログラム的なタイル・ドローイング・メソッドを定義し、これらのノードが、ディスプレイ・ピクセルに精密にマッピングする、すなわちf=1の場合に、正確にマッピングする特別な正確なタイルをレンダリングすることを可能にする。ズーム中またはパン中のすべてのフレーム・リフレッシュでこのメソッドを単純に呼び出すことは、一般に、低速すぎる。正確なドローイング・メソッドは、たやすく、実行に数フレームを要する可能性があり、いくつかの場合に、それよりさらに低速になる可能性がある。これは、正確なドローイング・メソッドに固有ではなく、「普通の」ドローイング・メソッドも低速である可能性があり、特に、低帯域幅での情報のダウンロード、または広範な計算の実行を伴う場合に低速になる可能性がある。しかし、「普通の」ドローイング・メソッドのターゲットは、パンおよびズームの範囲全体にわたって関連して残存するタイルであり、キューイング方式および分解度フォールバック方式を実装することが可能にし、これは、タイル・レンディションが低速であり且つ非同期である場合であっても、滑らかなナビゲーションおよびイメージ品質のグレースフル・デグラデーションを可能にする。対照的に、正確なタイルは、完全な品質を有するが、特定のビューに固有である。したがって、本発明者は、ハイブリッド手法を採用し、このハイブリッド手法では、離散LOD表現の強味が、望ましくない情況(すなわち、低帯域幅、またはより一般的に、低速のタイル・ドローイング・メソッド)下であっても、反応が速いナビゲーションを可能にするために活用され、正確なドローイング・メソッドが、視覚的な正確さのために使用される。これは、ユーザが休止状態にあるときに、正確なドローイング・メソッドを使用して正確なタイルを要求することによって行われ、これらの要求は、詳細のすべての関連する固定されたレベルの次ぎにキューイングされる。したがって、正確なタイルは、表示の精細化(display refinement)の最終ステージに存在する。正確なタイルは、ユーザがパンするかズームするときに使用不能になるという意味で「使い捨ての品」である。というのは、ユーザが、パンまたはズームして、正確に古いビューに戻る可能性が低いからである。ズームだけではなくパンも、正確なタイルを無効化することに留意されたい。というのは、タイルが正確であるために、スケールfが正確に1であることが必要であるだけではなく、タイル・ピクセルがディスプレイ・ピクセルに正確に位置合せされることも必要であるからである。したがって、正確な位置合せは、パンが整数個数のディスプレイ・ピクセルによるものでない限り、パン中に失われる。したがって、パンおよびズームは、すべてのキャッシングされた正確なタイルを破棄し、ビューが休止状態になったときに限って、新しい正確なタイルに関する要求が、キューイングされる。正確なタイルが使用可能になると、それらの正確なタイルは、下にある「不正確な」タイルの「上」で(すなわち、それを隠して)ディスプレイになるようにブレンディングされる。このブレンディングは、時間をかけて行われ、鮮明度の突然の変化を回避する。
本発明の全体的な効果は、大きいボリュームのテキストまたは他のベクトル・グラフィックス上でパンまたはズームするときに、ナビゲーション性能が変化せずに持続することであり、そのようなナビゲーション中には、レンダリングされるイメージは、理想より劣るが、イメージが動いているので、大多数の場合に、劣化は顕著ではない。休止状態になると、正確なタイルが、要求され、到着するにつれてフォービアルに(foveally)ブレンド・インされ、ディスプレイの中心付近から始まって外向きに広がるイメージについてのシャープニングがもたらされる。スペース的および時間的なブレンディングは、一般に、このシャープニングを、目によって検出するのが難しいものにすることができるが、結果のイメージは、完全な品質を有し、すなわち、離散的な詳細レベルの間での連続的補間に基づくZUIアーキテクチャが動作することを可能にするぼかす動作およびブレンディング動作によって、影響されない。
A2
(表題)ズーミング・ユーザ・インターフェースでのフォービエイテッドで(foveated)シームレスでプログレッシブなレンダリングのシステムおよび方法(SYSTEM AND METHOD FOR FOVEATED, SEAMLESS, PROGRESSIVE RENDERING IN A ZOOMING USER INTERFACE)
(発明者)BLAISE HILARY AGUERA Y ARCAS
(発明の分野)
本発明は、全般的にはコンピュータのズーミング・ユーザ・インターフェース(ZUI)に関する。より具体的には、本発明は、よいユーザ反応性および高いフレーム・レートを維持しながら、ズーミング環境で任意に大きいまたは複雑なビジュアル・コンテンツをプログレッシブにレンダリングするシステムおよび方法である。いくつかの情況で、これらの目標を満足するために演出(レンディション)についての品質を一時的に劣化させることが必要ではあるが、本発明は、人間の視覚系の周知の特性(プロパティ)を活用することによって、この劣化を十分にマスクする。
(発明の背景)
ほとんどの現在のグラフィカル・コンピュータ・ユーザ・インターフェース(GUI)は、固定されたスペース的スケールのビジュアル・コンポーネントを使用して設計されている。しかし、コンピュータ・グラフィックスという分野の誕生から、ビジュアル・コンポーネントがディスプレイ上で固定されたスペース的スケールを有するのではなく、ビジュアル・コンポーネントをズーム・インまたはズーム・アウトできる形で、ビジュアル・コンポーネントを表現でき、操作できることが認められた。ズーム可能コンポーネントの望ましさは、多くの応用領域、たとえば、地図のビューイング、新聞などの大きい異種テキスト・レイアウトのブラウジング、ディジタル写真のアルバムのビューイング、および大きいデータ・セットのビジュアライゼーションを用いる作業などで明白である。スプレッドシートおよびレポートなどの普通のドキュメントを見るときであっても、しばしば、ドキュメントの概観を見、次に、関心を持たれた領域にズーム・インできることが有用である。Microsoft(登録商標)Word(登録商標)および他のOffice(登録商標)プロダクト(表示メニューの下のズーム)、Adobe(登録商標)Photoshop(登録商標)、Adobe(登録商標)Acrobat(登録商標)、QuarkXPress(登録商標)など、多くの現代のコンピュータ・アプリケーションに、ズーム可能コンポーネントが含まれる。ほとんどの場合に、これらのアプリケーションは、ドキュメントのズーム・インおよびズーム・アウトを可能にするが、必ずしもアプリケーション自体のビジュアル・コンポーネントのズーム・インおよびズーム・アウトを可能にはしない。さらに、ズームは、通常、ソフトウェアとのユーザの対話の周辺態様であり、ズーム・セッティングは、時たま変更されるのみである。ドキュメント上での連続的なパンは、標準的である(すなわち、スクロール・バーまたはカーソルを使用して、見られているドキュメントを左、右、上、または下に平行移動させること)が、連続的にズームする能力は、ほとんど必ず存在しない。より一般化されたズーミング・フレームワークでは、すべての種類のビジュアル・コンテンツをズームすることができ、ズームは、パンのようにユーザの体験の一部になるはずである。この線に沿ったアイデアは、1960年代ほど早期のものさえ含む多数の映画の未来的なコンピュータ・ユーザ・インターフェースとして現れ1、最近の映画は、その傾向を継続している2。複数の連続的ズーミング・インターフェースが、1970年代から現在までに考えられ、かつ/または開発されてきた3。1991年に、これらのアイデアのいくつかが、ニューヨーク大学のKenneth PerlinおよびJacob Schwartzによる米国特許第5341466号(Fractal Computer User Centerface with Zooming Capability)で正式に承認された。Perlinおよび同僚によって開発されたプロトタイプ・ズーミング・ユーザ・インターフェースすなわちPadとその後継者であるPad++は、その後にある開発を受けた4。しかし、本発明者の知る限り、フルZUI(ズーミング・ユーザ・インターフェース)に基づく主要なアプリケーションは、複数の技術的不足に部分的に起因して、まだ大量市場には現れておらず、これらの技術的不足のうちの1つが、本発明で対処される。
<1>Stanley Kubrick’s 2001: A Space Odyssey, Turner Entertainment Company, a Time Warner company (1968)
<2>Steven Spielberg’s Minority Report, 20th Century Fox and Dreamworks Pictures (2002)
<3>最初の出現は、W.C. Donelson, Spatial Management of Information, Proceedings of Computer Graphics SIGGRAPH (1978), ACM Press, p. 203−9である。最近の例は、Zanvas.comであり、これは、2002年の夏に立ち上げられた。
<4>Perlinは、http://mrl.nyu.edu/projects/zui/でその後の開発を記述している。
(発明の概要)
本発明は、新たに開発されたズーミング・ユーザ・インターフェース・フレームワーク(以下では、その作業名であるVossによって参照する)がそれに基づく新規のアイデアを実施する。Vossは、そのソフトウェア・アーキテクチャにおける複数の革新に起因して、それに先行するものより強力であり、より反応が速く、より視覚的に説得力があり、より一般的なユーティリティである。本発明は、具体的には、オブジェクト・タイリング、詳細レベルのブレンディング、およびレンダ・キューイングに対するVossの手法に関する。
複数分解度ビジュアル・オブジェクトは、通常、異なる分解度または詳細レベルのサンプリングされたイメージの離散的セット(イメージ・ピラミッド)からレンダリングされる。3Dゲーミングなど、連続的ズームが使用されるいくつかの技術的コンテクストにおいて、所望の詳細レベルを一括する2つの隣接する詳細レベルが、各フレームをレンダリングするために一緒にブレンディングされる。というのは、通常、所望の詳細レベルが、正確に、離散的セットによって表される詳細レベルの1つではないからである。そのような技法を、時々トライ・リニア・フィルタリングまたはミップマッピングと称する。ほとんどの場合に、ミップマッピングされたイメージ・ピラミッドは、事前に作られ、ズーム動作中に連続的に短期メモリ(すなわち、RAM)内に保たれ、したがって、すべての必要な詳細レベルが、常に使用可能である。いくつかの高度な3Dレンダリング・シナリオでは、イメージ・ピラミッド自体を、アニメーション・ループ内でレンダリングしなければならないが、この場合に、この最初のレンダリング・パスの複雑さは、全体的なフレーム・レートが損害を受けないようにするために、注意深く制御されなければならない。
このコンテクストでは、任意の視覚的複雑さのある無制限の量のコンテンツの各場所ズームし、パンすることによって連続的にナビゲートできることが望ましい。このコンテンツは、素速くレンダリングされない場合があり、さらに、即座に使用可能で内可能性がある。しかし、このコンテンツは、低帯域幅接続を介してリモート位置からダウンロードされる必要がある。したがって、所望のディスプレイ・フレーム・レート(第2パス)に匹敵するフレーム・レートで詳細レベルをレンダリングすること(第1パス)は、常に可能とは限らない。さらに、一般に、すべてのコンテンツについて、事前に作られたイメージ・ピラミッドをメモリ内で保つことは可能ではなく、イメージ・ピラミッドは、必要に応じてレンダリングされ、または再レンダリングされなければならず、このレンダリングは、所望のフレーム・レートと比較して低速である場合がある。
本発明は、イメージ・ピラミッドのうちで現在のディスプレイに関連する部分の(潜在的に遅い)レンディションに優先順位を与える戦略と、部分的情報すなわちイメージ・ピラミッドの現在使用可能なサブセットだけに基づいてレンダリングされたコンテンツの滑らかな連続的知覚をユーザに与える戦略と、の両方を用いる。組み合わされて、これらの戦略は、不完全なイメージ・ピラミッドから生じるすべてのイメージ劣化を可能な範囲までマスクしながら、使用可能な計算能力または帯域幅を最適に近く利用する。スペース的および時間的なブレンディングは、イメージ鮮明度の不連続性または突然の変化を避けるのに活用される。
本発明の目的は、サンプリングされた(すなわち「ピクセル化された」)ビジュアル・コンテンツを、相対的な最終的なイメージ品質において、普通のトライ・リニア補間に関連する劣化なしで、ズーミング・ユーザ・インターフェースでレンダリングすることを可能にすることである。
本発明のもう1つの目的は、任意に大きいまたは複雑なビジュアル・コンテンツをズーミング・ユーザ・インターフェース内で見ることを可能にすることである。
本発明のもう1つの目的は、任意に複雑なビジュアル・コンテンツのほぼ即座のビューイングを、このコンテンツが最終的に非常に大量のデータを使用して表される場合であっても、また、これらのデータがリモート位置で格納され、低帯域幅ネットワークを介して共有される場合であっても、可能にすることである。
本発明のもう1つの目的は、対話的フレーム・レートを維持しながら、ユーザが、ビジュアル・コンテンツに任意にズーム・インできるようにすることである。
本発明のもう1つの目的は、コンテンツの全体的外見の保存と対話的フレーム・レートの維持との両方の過程で、複雑なビジュアル・コンテンツの概観を得るために、ユーザが任意にズーム・アウトできるようにすることである。
本発明のもう1つの目的は、対話中の詳細レベルまたはレンディション品質の間の遷移についてのユーザによる知覚を最小にすることである。
本発明のもう1つの目的は、詳細なビジュアル・コンテンツをレンダリングするのに必要な情報が使用不能であると言う理由で、またはレンディションがまだ進行中であるという理由のいずれかの理由ゆえに、詳細なビジュアル・コンテンツがまだ使用不能であるときに、連続的にぼけさせることによってイメージ品質のグレースフル・デグラデーションを可能にすることである。
本発明のもう1つの目的は、ビジュアル・コンテンツのある部分のレンディションが初めて使用可能になるときに、漸進的シャープニングによってイメージ品質を優雅に高めることである。
本発明の上記および他の目的は、次の明細書の再検討から当業者に明白になるであろう。
(従来技術:複数分解度像(imagery)およびズーミング・ユーザ・インターフェース)
技術的視点から、このズーミング・ユーザ・インターフェースは、ビジュアル・コンピューティングの基礎となる通常の概念の一般化であり、古典的なユーザ/コンピュータ/ドキュメント対話モデルに固有の複数の限界を克服することを可能にする。そのような限界の1つが、コンピュータ・アプリケーションから「開く」ことができるドキュメントのサイズに関する限界である。というのは、伝統的に、ビューイングまたは編集を開始できるようになる前に、そのようなドキュメントの全体を「ロード」しなければならないからである。特定のコンピュータが使用可能な短期メモリ(通常はRAM)の量が多いときであっても、この限界が感じられる。というのは、ドキュメント情報のすべてを、開く間に、あるリポジトリから(たとえば、ハードディスクからまたはネットワークを介して)短期メモリに転送しなければならず、したがって、限られた帯域幅が、「開く」コマンドの発行と、ビューイングまたは編集を開始できるまでの間の遅延を、受け入れがたく長くする可能性があるからである。
複数の静止ディジタル・イメージは、この問題のよい例と、コンピュータ・サイエンス・コミュニティがこの問題の克服においてビジュアル・コンピューティングの標準的なモデルを超えてどのように動いてきたかの例示との両方を提供する。下の表1に、最小の有用なイメージ(時々アイコンとして使用される、サムネイル)から現在一般に使用されている最大の有用なイメージまでの、さまざまな異なるイメージ・タイプの通常の圧縮後のサイズについての異なる帯域幅でのダウンロード時間を示す。文字にアンダーラインを付けられたボックスは、対話ブラウジングが特定の接続速度で難しいか不可能であるイメージ・サイズを示す。
*これらの数字が、生のイメージ・データではなく中間品質の現実的な圧縮後のサイズを表すことに留意されたい。具体的には、40MBまでのサイズについては1ビット/ピクセルを、一般により圧縮可能であるより大きいイメージについては0.25ビット/ピクセルを仮定する。
**ローカル無線ネットワークは、かなりより高速である場合がある。この数字は、無線PDAにしばしば使用されるタイプの無線広域ネットワークを指す。
現在ウェブ上にあるほとんどすべてのイメージが、100K(0.1MB)未満である。というのは、ほとんどのユーザが、DSLまたはより低帯域幅でウェブに接続され、より大きいイメージが、ダウンロードに時間がかかりすぎるからである。ローカル・セッティングであっても、通常のユーザのハード・ドライブ上で、500K(0.5MB)を超えるイメージに出会うことは、普通ではない。より大きい(すなわち、より詳細な)イメージがしばしば有用であることは、平均的な家庭内の絵本、地図帳、地図、新聞、およびアートワークに、非常に多数のイメージが含まれ、これらは、フル分解度でディジタル化された場合にサイズにおいてすぐに数十メガバイトになることになるという事実によって立証される。
数年前には、大きなイメージが存在しなかったことは、主に、リポジトリ内の格納スペースの不足に起因したが、ハード・ドライブ・テクノロジの進歩、CDROMを焼くことのたやすさ、および大型のネットワーク化されたサーバの高まる普及は、リポジトリ・スペースを、もはや制限要因ではなくした。主要なボトルネックは、現在、帯域幅であり、これに短期メモリ(すなわち、RAM)スペースが続く。問題は、実際には、上の表によって暗示されるものよりはるかに悪い。というのは、ほとんどのコンテクストで、ユーザは、単一のイメージを見ることだけに関心を持つのではなく、イメージのコレクション全体を見ることに関心を持ち、イメージが、ある適度なサイズより大きい場合には、あるイメージが別のイメージの後にダウンロードされる時間を待つことは、非実用的になる。
JPEG20005などの現代のイメージ圧縮標準規格は、この問題に正確に対処するように設計されている。イメージ・コンテンツを直線の形で(すなわち、通常は上から下、左から右への、ピクセル上の単一のパスで)格納するのではなく、これらの標準規格は、複数分解度分解(multi−resolution decomposition)に基づく。イメージは、まず、通常は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
イメージの複数分解度バージョンのシーケンスが、増加するサイズの順序でリポジトリに格納されると考えるならば、イメージがデータリンクを介してキャッシュに転送されるにつれて、ユーザは、イメージ全体の低分解度概観を非常に素速く入手することができ、ますます微細になる詳細が、その後、伝送が進行するにつれて「充填」されることになるということは、当然の結果である。これは、増分(incremental)伝送またはプログレッシブ(progressive)伝送として知られている。正しく実装されたならば、この伝送は、リポジトリへの接続の帯域幅が非常にささやかな場合であっても、すべてのイメージを、それがどれほど大きいものであれ、そのスペース的全体を(完全な詳細ではないが)ほとんど即座に見ることができるというプロパティ(特性)を有する。完全に詳細なイメージをダウンロードするのに必要な時間の最終的な長さは、同一のままであるが、この情報が送信される順序は、イメージの大きなスケールでの特徴(features)がまず送信されるように、変更されており、これは、ピクセル情報を、完全な詳細レベルで、上から下、左から右への「読取順序」で送信するよりも、ユーザにとってはるかに役立つ。
これに先だって隠されているものは、前のセクションで説明した古典的なアプリケーション・モデルに適合しない、イメージを「開く」ことを意味することについての新しい概念である。本発明人は、現在、ユーザが、そのイメージを、そのイメージがダウンロードされるにつれて見ることができると想像しており、この概念、その有用性は、イメージの幅広いストロークがダウンロード開始の直後に、おそらくはダウンロードが完了するより十分に前に使用可能になるという事実から生じる概念である。したがって、アプリケーションが、ダウンロードが終了するまでの期間待つことをユーザに強制することは、意味をなさず、アプリケーションは、その代わりに、ドキュメントについて表示できるものを即座に表示すべきであり、詳細を「バックグラウンドで」ダウンロードを継続している期間、ユーザとの対話を遅延させ、またはその対話を不必要に中断させてはならない。これは、アプリケーションが、複数のタスクを同時に行うことを必要とし、これはマルチ・スレッディングと称される。ほとんどの現代のウェブ・ブラウザが、ウェブ・ページ上のイメージを同時にダウンロードし、この間、ウェブ・ページの原文レイアウト(textual layout)を表示し、その間にユーザへの反応を維持するために、わずかに異なる能力で、マルチ・スレッディングを使用することに留意されたい。この場合に、埋め込まれたイメージ自体を、追加の詳細レベルと考えることができ、この追加の詳細レベルは、ウェブ・ページのベア・ボーン(bare−bones)・貧弱なテキスト・レイアウトからなる基本詳細レベルを強化する。この類比は、重要であることが後で示される。
明らかに、階層イメージ表現、およびイメージ・ドキュメントのプログレッシブ伝送は、直線表現(linear representation)および直線伝送(linear transmission)を超える前進である。しかし、イメージが、その最高詳細レベルで、ユーザのディスプレイが同時に表示できるものより多くの情報(たとえば、より多くのピクセル)を有するときに、さらなる前進が重要になる。現在のディスプレイ・テクノロジを用いると、これは、通常、表1の下部の4種類のイメージにあてはまるが、より小さいディスプレイ(PDAスクリーンなど)は、下部の8種類でさえ表示することができない場合がある。これは、大きいイメージに対してズーム機能を避けられないものにする。すなわち、追加の詳細を発見するためにズーム・インすることが不可能である場合には、ディスプレイより大きいイメージを見ることは、無益である。
大きいイメージのダウンロードが開始されるときに、おそらくは、ユーザは、そのイメージの全体を見ている。第1詳細レベルは、しばしば、非常に粗いので、表示されるイメージは、入手可能な少ない量の情報を大きい表示領域上で拡散するのに使用される補間の種類に依存して、ブロック状(blocky)に、あるいはぼけて、見える。次に、イメージは、プログレッシブに洗練されるが、あるポイントで、ディスプレイを情報で「飽和」させ、ダウンロードされる追加詳細のいずれをも、視覚的効果を有しないものにする。したがって、このポイントを超えてダウンロードを継続することは、全く意味をなさない。しかし、ユーザが、特定の領域をはるかに詳細に見るためにズーム・インすると決定し、イメージの有効投影サイズを物理スクリーンより実質的に大きくする、と仮定する。次に、前のセクションで説明したダウンローディング・モデルでは、より高い詳細レベルが、高まる順序で、ダウンロードされることを必要とすることになる。問題は、すべての詳細レベルが、前の詳細レベルの約4倍の情報を含み、ユーザがズーム・インするときに、ダウンロード・プロセスが、不可避的に遅れをとることである。さらに悪いことに、ダウンロードされる情報のほとんどが、その情報が、ビューイング領域の外部の高分解度詳細からなるにつれて、無駄にされる。明らかに、必要なものは、ある詳細レベルの選択された部分だけをダウンロードする能力である、すなわち、可視可能領域で見ることができる詳細だけをダウンロードしなければならない。この変更(alteration)があれば、任意に大きいサイズのイメージを見ることができるだけではなく、どの詳細レベルでもそのようなイメージを通して効率的にナビゲートする(すなわち、ズームし、パンする)こともできるイメージ・ブラウジング・システムを作ることができる。
ドキュメント・アクセスの以前のモデルは、本来シリアルであり、これは、情報オブジェクトの全体が直線の順序で伝送されることを意味する。このモデルは、対照的に、ランダム・アクセスであり、これは、情報オブジェクトの選択された部分だけが要求され、これらの要求を、任意の順序で、長い時間期間にわたってすなわち、ビューイング・セッションの間に行うことができることを意味する。コンピュータおよびリポジトリは、今や、ディスプレイ上で見られているドキュメントとのユーザの「dialogue(対話)」に匹敵する長期の対話に従事する。
ランダム・アクセスを効率的にするためには、各詳細レベルを、グリッド正方形またはタイルなどの、グリッドに再分割し、このグリッド正方形またはタイルを伝送の基本単位とすることが便利である(絶対に必要ではないが)。各タイルのピクセル単位のサイズは、増加した詳細レベルに、前の詳細レベルより約4倍多いタイルが含まれるように、一定のサイズ、あるいはそれ以下に保つことができる。イメージの寸法が公称タイル・サイズの正確な倍数でない場合があるので、小さいタイルが、イメージのエッジで発生する場合があり、また、最低詳細レベルでは、イメージ全体が、単一の公称タイルより小さくなる。結果のタイリングされたイメージ・ピラミッドを、図A2−2に示す。ピラミッドの「先端」では、ダウン・スケーリングされたイメージが単一のタイルより小さいが、この「先端」が、図A2−1のタイリングされていないイメージ・ピラミッドに似て見えることに留意されたい。JPEG2000イメージ・フォーマットには、タイリングされたイメージ、複数分解度イメージ、およびランダム・アクセス・イメージを表現するための、説明したばかりの機能のすべてが含まれる。
ここまでは、静的イメージの場合だけを考慮してきたが、同一の技法を、アプリケーション固有の変更を伴って、ほとんどすべてのタイプのビジュアル・ドキュメントに適用することができる。これには、大きいテキスト、地図または他のベクトル・グラフィックス、スプレッドシート、ビデオ、およびウェブ・ページなどの混合ドキュメントが含まれる(しかし、これらに限定はされない)。これまでの本明細書の議論は、暗黙のうちに、ビューイング専用アプリケーションすなわち、開くことおよび描くことに対応するアクションまたはメソッドだけを定義する必要があるアプリケーションを考慮してもいた。明らかに、ペイント・プログラムによって実装される静的イメージ用の編集コマンド、ワード・プロセッサによって実装されるテキスト用の編集コマンドなど、他のメソッドが望ましい場合がある。しかし、テキストを編集するという問題を考慮されたい。タイプされた入力の挿入などの通常のアクションは、基礎になるドキュメントに対する相対的なスペース的スケールのある範囲にわたってのみ関係がある。テキストがもはや読み取れないほどにズーム・アウトした場合には、対話的編集は、もはや不可能である。単一の文字がスクリーン全体を満たすほどにズーム・インした場合に、対話的編集はもはや不可能であると論ずることもできる。したがって、ズーミング・ユーザ・インターフェースは、あるメソッドのアクションを、それに関連する詳細レベルに制約することもできる。
ビジュアル・ドキュメントが、内部的にイメージとして表されるのではなく、テキスト、スプレッドシート・エントリ、またはベクトル・グラフィックスなどのより抽象的なデータとして表されるときには、前のセクションで導入したタイリング概念を一般化することが必要である。静止イメージについて、タイルをレンダリングするプロセスは、タイルが入手されたならば自明である。というのは、情報(圧縮解除されると)が、そのタイルについての正確にピクセルごとのコンテンツであるからである。さらに、速度ボトルネックは、通常、コンピュータへの圧縮データの転送(たとえば、ダウンロード)である。しかし、いくつかの場合には、速度ボトルネックが、タイルの演出(rendition)に存在する。その演出を行うのに使用される情報は、既にローカルに格納されている場合があり、あるいは、非常にコンパクトであり、その結果、ダウンロードがもはや遅延を引き起こさなくなる場合がある。したがって、本発明者は、タイル・ドローイング要求に応答して、完了し完全に描かれたタイルの作成を、これが低速プロセスである場合があるとの理解の下で、タイル・レンディション(演出)と呼ぶ。必要なデータがかなりのものであり、低速接続を介してダウンロードされなければならないという理由で、あるいはレンディション・プロセス自体が計算処理的に負荷が重いという理由で、これが低速であるかどうかは、要点を外した議論である。
完全なズーミング・ユーザ・インターフェースは、これらのアイデアを、ユーザが、大きくおそらくは動的な合成ドキュメント(そのサブ・ドキュメントは通常はスペース的にオーバーラップしない)を見ることができる形で、これらのアイデアを組み合わせる。これらのサブ・ドキュメントは、次々に(通常はオーバーラップしない)サブ・サブ・ドキュメントを含むことができ、以下同様である。したがって、ドキュメントは、ツリーすなわち、各ドキュメントがサブ・ドキュメントまたは子のコレクションへのポインタを有し、これらのサブ・ドキュメントまたは子のそれぞれが、親ドキュメントのスペース的境界の中に含まれる構造、を形成する。本発明者は、ツリーのプログラミング用語から借用して、各そのようなドキュメントをノードと呼ぶ。ドローイング・メソッドは、すべての詳細レベルのすべてのノードについて定義されるが、アプリケーション固有機能性に対応する他のメソッドを、ある種のノードだけについて定義することができ、そのアクションを、ある種の詳細レベルだけに制約することができる。したがって、一部のノードを、ペインティングと類似のコマンドを使用して編集できる静的イメージとすることができ、他のノードを、編集可能テキストとすることができ、他のノードを、ビューイングおよびクリックのために設計されたウェブ・ページとすることができる。これらのノードのすべてが、共通の大きいスペース的環境すなわち「スーパー・ノード」内で共存することができ、このスーパー・ノードを、ズームおよびパンによってナビゲートすることができる。
良好に実装されたズーミング・ユーザ・インターフェースについて幾つかの直接的な結果があり、これには以下が含まれる。
− 非常に大きいドキュメントを、その全体をリポジトリからダウンロードせずにブラウズすることが可能である。したがって、使用可能な短期メモリより大きいドキュメント、または、別の方法では禁止的されることになる大きいサイズのドキュメントでさえ、制限なしに見ることができる。
− コンテンツは、ナビゲーション中に必要に応じてダウンロードされるだけであり、使用可能な帯域幅について好ましい効率的な使用がもたらされる。
− ズームおよびパンは、スペース的に直観的に理解できる動作であり、大量の情報を簡単に理解される形で編成することを可能にする。
− 「スクリーン・スペース」が実質的に制限されないので、同時に複数のドキュメントまたはビューについて佐合するために、ウィンドウを最小化したり、複数のデスクトップを使用したり、またはウィンドウを互いの後ろに隠したりすることは、不要である。そうではなく、ドキュメントを望み通りに配置することができ、ユーザは、すべてのドキュメントの概観を得るためにズーム・アウトしたり、または特定のドキュメントにズーム・インしたりすることができる。このことは、それらのドキュメントの任意の組合せを同時にスクリーン上で有用なスケールで可視にすることを可能にするためにそのようなドキュメントの位置を(またはスケールさえも)再配置する可能性を排除しない。また、これは、ズームをより伝統的な手法と組み合わせることを必ずしも排除しない。
− ズームは、ナビゲーションについての本質的な態様なので、すべての種類のコンテンツを、適当なスペース的スケールで見ることができる。
− 高分解度ディスプレイは、もはや、テキストおよびイメージを小さい(時々読み取れない)サイズに縮小することを意味しなくなる。ズームのレベルに応じて、高分解度ディスプレイは、より多くのコンテンツを同時に見ること、またはコンテンツを通常のサイズでより高い忠実度で見ること、のいずれかを可能にする。
− 視覚障害者は、単純にさらにズーム・インすることによって、通常の視力を有する人と同一のコンテンツを簡単にナビゲートすることができる。
これらの利点は、ウェブに接続された普通のコンピュータから利用できる情報の量が激増した現在では、特に貴重である。10年前には、ZUIが見ることを可能にする種類の非常に大きいドキュメントは、まれであり、さらに、そのようなドキュメントは、非常に多くのスペースを占めることになるので、ほとんどのコンピュータで使用可能なリポジトリ(たとえば、40MBハードディスク)におさまるドキュメンとは殆どなかった。しかし、現在、我々は、非常に異なる情況に直面しており、サーバは、膨大なドキュメントおよびドキュメント階層を簡単に格納することができ、この情報を、ウェブに接続されたすべてのクライアントから使用可能にすることができる。それでも、これらの潜在的に膨大なリポジトリと普通のユーザとの間の接続の帯域幅は、ローカル・ハードディスクへの接続の帯域幅よりはるかに低い。これが、まさに、ZUIが普通のグラフィカル・ユーザ・インターフェースに対するその最大の利点を与えるシナリオである。
(発明の詳細な説明)
ある所望の分解度でのノードの特定のビューには、あるLODのタイルのセットがあり、これは、そのレンディション(rendition)が、1スクリーン・ピクセルあたり少なくとも1つのサンプルを含むように描かれる必要がある。通常、ビューは、ノードのLODのうちの1つの分解度丁度に位置するのではなく、これらの複数の分解度のうちの2つの間の中間分解度になることに留意されたい。したがって、理想的には、ズーミング環境で、クライアントは、これらのLODの両方(実際の分解度のすぐ上とすぐ下)で可視タイルのセットを生成し、ある補間を使用して、この情報に基づいてディスプレイ上のピクセルをレンダリングする。最も一般的なシナリオは、スペース的に及び2つの詳細レベルの間の両方での線形補間であり、グラフィックス分野では、通常、これをトライ・リニア補間と称する。密接に関連する技法が、テクスチャリングのために3Dグラフィックス・アーキテクチャで一般的に使用されている6。
<6>S.L. Tanimoto and T. Pavlidis, A hierarchical data structure for picture processing, Computer Graphics and Image Processing, Vol. 4, p. 104−119 (1975); Lance Williams, Pyramidal Parametrics, ACM SIGGRAPH Conference Proceedings (1982)
残念ながら、タイルのダウンロード(またはプログラム的レンダリング)は、しばしば低速であり、特に素速いナビゲーション中に、必要なタイルのすべてが常に使用可能にはならない。したがって、本特許におけるイノベーションは、タイルのダウンロードまたは作成が低速に非同期に行われている環境で、この理想的なイメージを近似するイメージで、スペース的および時間的に連続したコヒーレントなイメージ、を見る人に与える戦略の組合せに、焦点を合わせることにある。
次では、2つの変数名fおよびgを使用する。fは、#1で定義された、ディスプレイに対する相対的なタイルのサンプリング密度を指す。タイリングの細分性は、変数gとして記述されるが、次に低いLODの直線タイリング・グリッド・サイズに対する、あるLODの直線タイル・グリッド・サイズの比として定義される。これは、一般に、所与のノードの異なる詳細レベルにまたがって一定であると仮定されるが、本明細書で提示されるイノベーションのどれも、定数のgには依存しない。前のセクションで考慮したJPEG2000の例では、g=2であり、概念的に、各タイルは、次に高いLODで2×2=4個のタイルに「分割」される。細分性2は、類似するアプリケーションで圧倒的に最も一般的であるが、現在のコンテクストでは、gは、他の値をとることができる。
1.詳細レベル・タイル要求キューイング(Level of detail tile request queuing)。
まず、クライアントが合成イメージを漸進的に、光学機器との類比によって、「焦点が合った」状態にすることを可能にするタイル要求をキューイングするシステムおよび方法を紹介する。
階層的にタイリングされたノードを含む情報リポジトリへの、不安定で、おそらくは低帯域幅の接続という問題に直面して、ズーミング・ユーザ・インターフェースは、ナビゲーション中にどのようにタイルを要求するかという問題に対処しなければならない。多くの情況で、すべてのそのような要求がタイムリーな形で満足されると仮定すること非現実的であり、またはそれらの要求が、情報が関連する期間中に(すなわち、ユーザがズームし終えるかどこかにパンし終える前に)とにかく満足されると仮定することでさえも非現実的である。したがって、タイル要求にインテリジェントに優先順位を与えることが望ましい。
タイル要求キューイングの「最も外側」のルールは、そのディスプレイに関連して詳細レベルを増加させることである。この「相対的な詳細レベル」は、f=(タイル・ピクセル単位での直線タイル・サイズ)/(スクリーン・ピクセル単位で測定されたスクリーン上の投影されたタイルの長さ)によって与えられる。f=1の場合に、タイル・ピクセルは、スクリーン・ピクセルに対して1:1であり、f=10の場合に、タイル内の情報は、そのディスプレイが表示できるものよりはるかに詳細であり(10*10=100個のタイル・ピクセルが、単一のスクリーン・ピクセルの内側におさまる)、f=0.1の場合に、タイルは、ディスプレイに対して相対的に粗い(すべてのタイル・ピクセルが、10*10=100個のディスプレイ・ピクセルをカバーするように「ストレッチ」または補間されなければならない)。このルールは、ディスプレイのある領域が、ディスプレイの残りに対して相対的にアンダー・サンプリングされる(すなわち、粗く定義されるだけである)場合に、クライアントの最初の優先順位が、この「分解度の穴(resolution hole)」を充填することになる、ことを保証する。複数の詳細レベルが、この穴の中で欠けている場合には、f<1のすべての詳細レベルに関する要求と、次に高い詳細レベル(LODブレンディングを可能にするために、#5を参照されたい)とが、増加する順序でキューイングされる。一見したところ、これは、不必要なオーバーヘッドを導入するように思われる。というのは、これらの詳細レベルのうちで最も微細なものだけが、現在のビューをレンダリングするのに厳密に必要であり、より粗い詳細レベルは、それらがディスプレイ上のより低い分解度のイメージを定義するという点で冗長であるからである。しかし、これらのより粗いレベルは、より大きい面積をカバーし、一般に、ディスプレイよりかなり大きい面積をカバーする。すべてのノードの最も粗い詳細レベルは、実際に、構成によって単一のタイルだけを含み、したがって、あるノードのすべてのビューをレンダリングするクライアントは、必ず、この「最も外側」のタイルを最初にキューイングする。
これは、ビューイングの堅牢性(robustness)にとって重要なポイントである。堅牢性によって、本発明人は、満たされるのを待っているタイル要求の大きいバックログ(backlog)がある場合であっても、クライアントが、ユーザのパンおよびズームに反応して表示すべきものに関して絶対に「途方に暮れ」ないことを意味する。クライアントは、単純に、ディスプレイ上のすべての領域について、使用可能な最良の(すなわち、最高分解度の)イメージを表示する。最悪でも、これは、最も外側のタイルになり、この最も外側のタイルは、そのノードに関連してこれまでに要求された最初のタイルである。したがって、そのノードのすべてのスペース的部分は、最初のタイル要求だけに基づいて常にレンダリング可能になり、すべての後続タイル要求は、詳細さを増加させるもの(incremental refinements)と考えることができる。
より低い分解度のタイルに頼ることは、イメージをぼかすという印象を作り出す。したがって、全体的な効果は、ディスプレイが、かなり大きなパンまたはズームの後にぼけて見える場合があることである。その後、タイル要求が満たされるとに、そのイメージはシャープになる。
単純な計算から、「冗長な」より低い分解度のタイルを要求することによってもたらされるオーバーヘッドは、実際には些細であり、具体的には、ノード・イメージを最初からすべての場所で明確に定義させるという堅牢性のためのわずかな代償である、ことが示される。
2.フォービエイテッド・タイル要求キューイング(Foveated tile request queuing)。
1つの相対詳細レベル内では、タイル要求は、図A2−3に示されているように、スクリーンの中心からの距離が増加するにしたがってキューイングされる。このテクノロジは、高分解度のために特殊化された中央領域、すなわち中心窩(fovea)、を有する人間の目がヒントになっている。ズームは、通常はディスプレイの中央領域における関心対象に関連付けられるので、フォービエイテッド・タイル要求キューイングは、通常、内向きのズーム中のビジュアル情報に関するユーザの暗黙の優先順位付けを反映する。さらに、ユーザの目は、一般に、エッジよりもディスプレイの中心付近の領域を見ることにより長い時間を費やすので、ディスプレイのエッジにある残留ブラリネス(ぼけ)は、中心付近より顕著でない。
フォービアル・タイル要求順序を使用するズーム・インによって作られるディスプレイの中心付近での鮮明度の、過渡的で相対的な向上は、ズーム・アウトの自然な結果をも再現する。図A2−4を参照されたい。この図には、2つの代替の「ナビゲーション・パス」が示されており、最上部の行では、ユーザは、ディスプレイの約2/3を占める単一のドキュメント(またはノード)を見ながら静止したままであり、このドキュメントは、非常に高い分解度で表示できると仮定される。当初に、ノード・コンテンツは、単一の低分解度タイルによって表され、次に、次のLODのタイルが、使用可能になり、ノード・コンテンツが、4(=2×2)個のタイルを用いて2倍の分解度で可視にされ、4×4=16タイル・バージョンおよび8×8=64タイル・バージョンがそれに続く。2番目の行では、最上部の行に表示されたイメージが完全に詳細化される前に、ユーザが、陰影付きの正方形にズーム・インする場合に起きることを追跡する。より高い詳細レベルのタイルが、やはりキューイングされるが、この場合には、部分的にまたは完全に可視のタイルだけがキューイングされる。詳細化は、最上部の行の詳細化に匹敵するポイントまで進行する(ディスプレイ上の可視タイルの個数に関して)。3番目の行には、その後のユーザが再びズーム・アウトした場合に使用可能であるものと、欠けている詳細がどのように充填されるかが示されている。すべての詳細レベルが示されているが、実際には、非常に微細なレベルは、ディスプレイが伝えられるものより微細な詳細を表すので、おそらくは最下部の行でディスプレイから省略されることになることに留意されたい。
ズーム・アウトが、通常は、ディスプレイの中心を周辺より詳細なタイルで満たされたままにすることに留意されたい。したがって、タイル要求のこの順序付けは、すべてのナビゲーション中にディスプレイの中心領域の鮮明度に一貫して優先順位を与える。
3.時間的LODブレンディング(Temporal LOD blending)。
さらなる詳細化がなければ、現在のディスプレイに必要なタイルが、初めてダウンロードされるか、構成されかして描かれると、そのタイルは、おそらくは同一のコンテンツを表す、下にある、より粗いタイルの一部を即座に隠すことになり、ユーザは、この遷移を、ディスプレイのある領域内のブラリネスの突然の変化として体験する。そのような突然の遷移は、見苦しく、ユーザの注意をソフトウェアの実装の詳細まで不必要に引き付ける。ZUI設計に対する本発明者の全般的手法は、ユーザのためにシームレスなビジュアル体験を作成することであり、この体験は、タイルの存在に注意を引き付けず、または「under the food(裏方の役割、舞台裏)」に留まらなければならないソフトウェアの他の態様に注意を引き付けない。したがって、タイルが初めて使用可能になるときに、それらのタイルは、即座に表示されるのではなく、複数のフレームにまたがって、通常は約1秒にわたってブレンド・インされる。ブレンディング関数は、線形関数(すなわち、新しいタイルの不透明度は、そのタイルが使用可能になったときからの時間の線形関数であり、その結果、固定されたブレンドイン・インターバルの中間ポイントでは、新しいタイルは50%不透明になる)、指数関数的に、または任意の他の補間する関数に従うものとすることができる。指数ブレンディングでは、すべての短い一定の時間のインターバルが、不透明度の一定のパーセントの変化に対応し、たとえば、新しいタイルが、すべてのフレームで20%だけより不透明になるものとすることができ、これは、連続するフレームにまたがる不透明度のシーケンス、20%、36%、49%、59%、67%、74%、79%、83%、87%、89%、91%、93%などをもたらす。数学的には、指数は絶対に100%に到達しないが、実際には、不透明度は、短いインターバルの後に100%と区別不能になる。指数ブレンディングは、不透明度の最大の増加が、ブレンド・インの先頭付近で発生し、これによって、許容できる時間的連続性を保存しながら、新しい情報を素速くユーザに可視にするという利点を有する。本発明者の参考的な実装では、作成される錯覚は、必要な情報が使用可能になるにつれて、ディスプレイの諸領域が滑らかに合焦点になることである。
4.連続的LOD(Continuous LOD)。
タイルのダウンロードまたは作成が、ユーザのナビゲーションに遅れをとっている情況で、ディスプレイの隣接領域が、異なる詳細レベルを有する場合がある。前の革新(#3)は、詳細レベルの時間的不連続性の問題に対処するが、別の革新が、詳細レベルのスペース的不連続性の問題に対処するために必要となる。補正されない場合に、これらのスペース的不連続性は、イメージ内の継ぎ目としてユーザに可視であり、ビジュアル・コンテンツが、その継ぎ目の片側でよりシャープに描かれる。本発明者は、各タイルの不透明度をタイル領域にまたがって変化することを可能にすることによってこの問題を解決する。具体的に言うと、この不透明度は、タイル・エッジが、より低い相対詳細レベルを有するディスプレイ上の領域に接する場合に、そのエッジで0になるようにされる。いくつかの情況で、タイルの各コーナーの不透明度を、そのコーナーがより低い相対的な詳細レベルの領域に接する場合に、0にすることも重要である。
図A2−5に、タイル破片(tile shard)と称する四辺形および三角形のそれぞれの上で不透明度が連続的に変化するように、各タイルをどのようにタイル破片に分解することができるかに関する本発明者の最も単純な、参考の実装を示す。正方形acegによって境界を示されるタイルXは、左、右、上、および下に、隣接するタイルL、R、T、およびBを有し、これらのそれぞれが、1つのエッジを共有する。タイルXは、単一のコーナーを共有する隣接物TL、TR、BL、およびBRをも有する。タイルXが、存在すると仮定する。その「内側正方形」iiiiは、完全に不透明である(繰り返された小文字が、同一の頂点不透明度値を示すことに留意されたい)。しかし、周囲の四辺形フレームの不透明度は、隣接するタイルが存在する(および、完全に不透明である)かどうかによって決定される。したがって、タイルTLが存在しない場合には、ポイントgが、完全に透明になり、Lが存在しない場合には、ポイントhが、完全に透明になるなどである。本発明者は、タイルの境界領域(iiiiの外側のX)をブレンディング・フラップ(blending flap)と呼ぶ。
図A2−6に、破片にまたがって不透明度を補間するのに使用される参考の方法を示す。パート(a)は、一定の不透明度の四辺形を示す。パート(b)は、2つの対向するエッジの不透明度が異なる四辺形であり、内側の不透明度は、単純に、各内側のポイントの2つのエッジからの最短距離に基づく線形補間である。パート(c)は、3つすべてのコーナーabcの不透明度が異なる場合があるときの、三角形内部の不透明度を補間する双一次方法を示す。概念的に、すべての内側のポイントpは、この三角形を、面積A、B、およびCを有する図示の3つのサブ三角形に再分割する。pでの不透明度は、単純に、コーナーでの不透明度の加重和であり、ここで、重みは、3つのサブ三角形の分数面積である(すなわち、A、B、およびCが、三角形総面積A+B+Cによって除算される)。この公式が、pがある頂点に移動したときにその頂点での不透明度を与えること、およびpが三角形のエッジ上にある場合に、pの不透明度が2つの接続された頂点の間の線形補間であることを、たやすく検証することができる。
ある破片の中の不透明度は、完全にその頂点での不透明度によって決定され、隣接する破片は、必ず頂点を共有する(すなわち、T字形接合ポイントはない)ので、この方法は、不透明度が、タイリングされた表面全体にわたって非常に滑らかに変化することを保証する。#3の時間的LODブレンディングと共同して、この戦略は、ユーザに可視の相対詳細レベルを、ディスプレイ領域および時間経過の両方で、連続関数にする。スペース的継ぎ目と時間的不連続性との両方が、これによって回避され、ユーザに、シーンを連続的に合焦点の状態に至らせる光学器械を連想させるビジュアル体験を与える。大きいドキュメントのナビゲートについて、シーンを合焦点にする速度は、リポジトリへの接続の帯域幅、またはレンディションの速度のうちの遅い方の関数である。最後に、革新#2のフォービエイテッド優先順位付けと共同して、連続的詳細レベルは、ディスプレイの中心領域がまず合焦点になるように偏らされる。
5.一般化された線形ミップマップ線形LODブレンディング(Generalized linear−mip−map−linear LOD blending)。
ノード上の見かけのLODにおけるスペース的および時間的な滑らかさを保証するための戦略および基準実装を述べてきた。しかし、詳細レベルが連続的なズーム動作中にブレンディングされる態様を、まだ、扱っていない。使用される方法は、トライ・リニア補間の一般化であり、この一般化では、隣接する詳細レベルが、スケールの中間範囲にわたって線形にブレンディングされる。各詳細レベルでは、各タイル破片が、描かれる際に不透明度を有し、この不透明度は、スペース的滑らかさのために同一詳細レベルの隣接するタイル破片を使用してスペース的に平均をとられ、経時的な滑らかさのために時間的に平均をとられる。ターゲット不透明度は、詳細レベルがディスプレイをアンダー・サンプリングする、すなわち、f<1である(#1を参照されたい)場合に、100%である。しかし、詳細レベルがディスプレイをオーバー・サンプリングする場合には、ターゲット不透明度は、オーバー・サンプリングがg倍である場合に、0になるように、線形に(または、任意の他の単調関数を使用して)減らされる。トライ・リニア補間に似て、これは、ズーム動作期間に連続的ブレンディングを引き起こし、知覚される詳細レベルが突然に変化することな決してないことを保証する。しかし、普通のトライ・リニア補間(2つの詳細レベルのブレンディングを必ず伴う)とは異なって、この方式でのブレンディングされる詳細レベルの個数は、1個、2個、または3個以上とすることができる。3個以上の個数は、過渡的であり、複数の詳細レベルのタイルが、まだ時間的に十分にブレンディングされていないことによって引き起こされる。単一のレベルも、通常は、理想より低いLODが、まだダウンロードされていないか構成されておらず、ブレンド・インされていない、より高いLODについて100%不透明度で「代役を務めている」、ときに発生するという点で、通常は過渡的である。
1つのノード用の複数ののタイル破片からなるセットをレンダリングする最も単純な基準実装は、いわゆる「ペインターズ・アルゴリズム(painter’s algorithm)」を使用することであり、すべてのタイル破片が、後ろから前への順序で、すなわち、最も粗いもの(最低LOD)から最も微細なもの(g倍未満でディスプレイをオーバー・サンプリングする最高LOD)への順序でレンダリングされる。最高LODを除くすべてのLODのターゲット不透明度は、100%であるが、これらのLODは、その時間的ブレンディングが不完全である場合に、より低い透明度で過渡的にレンダリングされる可能性がある。最高LODは、上で述べたように、それがディスプレイをどれほどオーバー・サンプリングするかに応じて、可変不透明度を有する。明らかに、この参考の実装は、後にレンダリングされる破片によって完全に隠される破片をレンダリングする場合があるという点で、最適ではない。より最適の実装は、3Dグラフィックスで陰面消去に使用されるものに似たデータ構造およびアルゴリズムの使用を介して可能である。
6.動き予想(Motion anticipation)。
素速いズームまたはパンの間には、タイル要求が需要について行くことが、特に難しい。それでも、この素速いナビゲーションパターン中に、ズームまたはパンの動きは、線形外挿によって局所的によく予測される傾向がある(すなわち、方向の突然の逆転または変更を行うことは難しいが)。したがって、本発明者は、この時間的な動きのコヒーレンスを活用して、わずかに早めにタイル要求を生成し、これによりビジュアル品質を改善する。これは、パンまたはズームのとの動きの方向に関して引き延ばすか膨張するか収縮する仮想ビュー・ポートを使用してタイル要求を行い、これにより追加タイルに関する要求をプリエンプトすることによって、達成される。ナビゲーションが停止すると、仮想ビュー・ポートは、短い時間のインターバルで解除され、実際のビュー・ポートに戻る。
上の革新のどれもが、四辺形タイリングに制約されず、三角形タイリングもしくは六角形タイリング、またはそのような形状の混合からなる異種タイリング、あるいは完全に任意のタイリングなど、グリッド上で定義できるすべてのタイリング・パターンに、明白な形で一般化されることに留意されたい。そのような代替タイリングに対処するために行う必要がある唯一の明示的な変更は、エッジおよび内側の不透明度のすべてを独立に制御できるように、図A2−5の三角形分割に似たタイル形状の三角形分割を定義することである。
図2A−1
A3 (表題)複数分解度のビジュアル・データを効率的に、動的に、および連続的に表示のためのシステムおよび方法(SYSTEM AND METHOD FOR THE EFFICIENT, DYNAMIC AND CONTINUOUS DISPLAY OF MULTI−RESOLUTION VISUAL DATA)
(発明者)BLAISE HILARY AGUERA Y ARCAS
(発明の分野)
本発明は、全般的には複数分解度の像(imagery)に関する。より具体的には、本発明は、コンテンツのビジュアル表現を、リアルタイムに、異なる分解度または異なる詳細レベルで、一緒に効率的にブレンディングするシステムおよび方法に関する。この方法は、ビジュアライズされるデータが連続して変化し、部分的データだけが所与の時点で使用可能である可能性がある、非常に動的なコンテンツにおいてさえ、知覚的連続性を保証する。本発明は、コンピュータのズーミング・ユーザ・インターフェース(ZUI)を含む(しかし、これに限定はされない)多数の分野に応用例を有する。
(発明の背景)
複雑なビジュアル・データの表示を伴う多くの情況で、これらのデータは、異なる詳細レベル(LOD)の表現のコレクションとして、階層的に格納され、または計算される。多くの複数分解度方法および複数分解度表現が、ディジタル・イメージ用のウェーブレットおよび3Dモデル用のプログレッシブ・メッシュ(progressive mesh)を含む(たとえば、限定なしに)異なる種類のデータ用に、考案されてきた。複数分解度方法は、おそらくは長期にわたる計算を、より「粗く」またはより「微細に」実行できる情況で、数学シミュレーションおよび物理シミュレーションにも使用されている。本発明も、そのようなシミュレーションに、および複数分解度ビジュアル・データを対話的に生成できる他の情況に、適用される。さらに、本発明は、ビジュアル・データを、たとえば機械制御可能なパンおよびズームを有するカメラから、異なる詳細レベルで「オン・ザ・フライで」入手できる情況に適用される。本発明は、1つまたは複数の2Dディスプレイ(CRTスクリーンまたはLCDスクリーンなど)でのそのような複数分解度ビジュアル・データの動的ディスプレイに対する一般的なアプローチである。
本発明の説明では、大きいディジタル・イメージのウェーブレット分解(展開)(wavelet decomposition)(たとえば、JPEG2000イメージ・フォーマットで使用されるもの)を主な例として使用する。この分解は、その出発ポイントとして、通常は規則的な四辺形グリッド上のサンプルのアレイである、オリジナル・ピクセル・データを採用する。各サンプルは、通常、そのグリッド座標に対応するスペース内のポイントで測定された色または輝度を表す。いくつかの応用例で、グリッドは、非常に大きく、たとえば1辺が数万個のサンプル(ピクセル)またはそれ以上とすることができる。この大きいサイズは、特にそのようなイメージが、サーバ(イメージが格納される)が低帯域幅接続によってクライアント(イメージが見られる)に接続される環境で、リモートでブラウズされるときに、対話型ディスプレイについてかなりの困難さを与える可能性がある。イメージ・データが、単純なラスタ順でサーバからクライアントに送信される場合に、クライアントがイメージ全体の概観を生成できるようになる前に、すべてのデータが伝送されなければならない。これは、長い時間を要する可能性がある。そのような概観の生成は、おそらく、計算処理上で負荷が重い可能性があり、たとえば、20000×20000ピクセルのイメージを500×500ピクセルにダウン・サンプリングすることを必要とする場合がある。そのような動作は、対話性を可能にするのに遅すぎるだけではなく、クライアントが完全なイメージ・データを格納するのに十分なメモリを有することも必要とし、このメモリは、上で引用した例では、8ビットRGBカラー・イメージについて1.2ギガバイト(=3*20000^2)である。
現在ウェブ上にあるほとんどすべてのイメージが、100K(0.1MB)未満である。というのは、ほとんどのユーザが、DSLまたはより低帯域幅でウェブに接続され、より大きいイメージが、ダウンロードに時間がかかりすぎるからである。ローカル・セッティングであっても、通常のユーザのハード・ドライブ上で、500K(0.5MB)を超えるイメージに出会うことは、普通ではない。より大きい(すなわち、より詳細な)イメージがしばしば有用であることは、平均的な家庭内の絵本、地図帳、地図、新聞、およびアートワークに、多数のイメージが含まれ、これらは、フル分解度でディジタル化された場合にサイズにおいてすぐに数十メガバイトになることになるという事実によって立証される。
数年前に、大きなイメージが存在しなかったことは、主に、不揮発性ストレージス・ペース(リポジトリ・スペース)の不足に起因したが、ハード・ドライブ・テクノロジの進歩、CDROMを焼くことのたやすさ、および大型のネットワーク化されたサーバの高まる普及は、リポジトリ・スペースを、もはや制限要因ではなくした。主要なボトルネックは、現在、帯域幅であり、これに短期メモリ(すなわち、RAM)スペースが続く。
JPEG20001などの現代のイメージ圧縮標準規格は、この問題に正確に対処するように設計されている。イメージ・コンテンツを直線の形で(すなわち、通常は上から下、左から右への、ピクセル上の単一のパスで)格納するのではなく、これらの標準規格は、複数分解度分解(multi−resolution decomposition)に基づく。イメージは、まず、通常は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と呼ばれる。一見したところでは、この一連の異なるサイズを有するイメージの格納要件は、高分解度イメージだけの格納要件より多い可能性があるかのように思われるが、実際にはそうではなく、低分解度イメージは、次に高い分解度の「プレディクタ」として働く。このことは、イメージ階層全体が、非常に効率的に、実際に、高分解度イメージだけの非階層表現を用いて通常可能になるはずのものに較べて、より効率的に、エンコードされることを可能にする。
<1>http://www.jpeg.org/JPEG2000.html
イメージの複数分解度バージョンのシーケンスが、増加するサイズの順序でサーバのリポジトリに格納されると考えるならば、イメージがサーバからクライアントに転送されるにつれて、クライアントは、イメージ全体の低分解度概観を非常に素速く入手することができ、次第に微細になる詳細が、その後、伝送が進行するにつれて「充填」されることになるということは、当然の結果である。これは、増分(incremental)伝送またはプログレッシブ(progressive)伝送として知られており、複数分解度表現の主要な利点の1つである。プログレッシブ伝送が正しく実装されるときには、サーバへの接続の帯域幅が非常にささやかな場合であっても、すべてのイメージを、それがどれほど大きいものであれ、そのスペース的全体を(完全な詳細ではないが)クライアントによってほとんど即座に見ることができる。完全に詳細なイメージをダウンロードするのに必要な時間の最終的な長さは、同一のままであるが、この情報が送信される順序は、イメージの大きなスケールでの特徴能がまず送信されるように変更されており、これは、ピクセル情報を、完全な詳細レベルで、上から下、左から右への「読取順序」で送信するよりも、クライアントにとってはるかに役立つ。
動的で対話的なコンテクストでランダム・アクセスを効率的にするためには、各詳細レベルをグリッドに再分割し、このグリッド正方形またはタイルが伝送の基本単位になるようにすることが便利である(絶対に必要ではないが)。各タイルのピクセル単位のサイズは、各増加した詳細レベルに、前の詳細レベルより約4倍多いタイルが含まれるように、一定のサイズ以下に保つことができる。イメージの寸法が、公称タイル・サイズの正確な倍数でない場合があるので、小さいタイルが、イメージのエッジで発生する場合があり、また、最低詳細レベルでは、イメージ全体が、単一の公称タイルより小さくなる。したがって、64×64ピクセルのタイルを仮定する場合に、前に検討した512×512ピクセルのイメージは、その最高詳細レベルで8×8個のタイルを有し、256×256レベルで4×4個、128×128レベルで2×2個、残りの詳細レベルで単一のタイルを有する。JPEG2000イメージ・フォーマットは、タイリングされた複数分解度イメージおよびランダム・アクセス・イメージを表すための、説明したばかりの機能を含む。
大きいタイリングされたJPEG2000イメージが、限られたサイズおよび分解度を有する2Dディスプレイ上でクライアントによって対話的に見られている場合に、ある詳細レベルの隣接するタイルの特定のセットが、正確なレンディションを作るために必要である。しかし、動的なコンテクストでは、これらがすべて使用可能ではない場合がある。しかし、特にユーザがイメージの大まかな概観から始める場合に、より粗い詳細レベルのタイルが、しばしば使用可能である。より粗い詳細レベルのタイルは、スペース的にはるかに広い面積にまたがるので、関心を持たれている領域全体が、使用可能な複数のタイルからなる幾つかの組合せによってカバーされる可能性が高い。これは、使用可能なイメージ分解度が、ディスプレイ領域にまたがって一定でないことを暗示する。
前に出願した特許仮出願で、本出願人は、同一詳細レベルの空白スペースに接する場合にタイルのエッジを「フェード・アウト」する方法を提案した。これは、そうでなければ微細詳細レベルの「カバレッジ」が不完全であるときに生じる鮮明度の不意の視覚的不連続性を回避する。ブレンディング用に予約されたタイルのエッジ領域を、ブレンディング・フラップと称する。完成した合成イメージを表示する最も単純な基準実装は、「ペインターズ・アルゴリズム」であり、最も粗い詳細レベル内のすべての関連するタイル(すなわち、ディスプレイ領域にオーバーラップするタイル)が、まず描かれ、これに、プログレッシブにより微細になる詳細レベルのすべての関連するタイルが続く。各詳細レベルでは、ブレンディングが、説明された不完全な領域のエッジで適用される。その結果は、望まれる通りに、より粗い詳細レベルが、より微細な詳細レベルによって隠されない場所に限って「透けて見える」ことである。
この単純なアルゴリズムは、役に立つが、複数の短所を有する。第1に、タイルが最終的に部分的にまたは完全に隠されるときであってもタイルが描かれるので、このアルゴリズムは、プロセッサ時間について無駄が多い。具体的に言うと、fを最低詳細レベルに対する相対的なディスプレイの拡大の因数とすると、単純な計算から、各ディスプレイ・ピクセルが、しばしば、log2(f)回(再)描画されることが示される。第2に、この技法は、フレーム・バッファ内での合成に頼り、これは、ドローイング動作中の中間ポイントで、描かれる領域がその最終的な外見を有しないことを意味する。これは、フリッカを生じる分解度の出現を避けるために、ダブル・バッファリングまたは関連する方法を使用すること、およびオフ・スクリーンで合成を実行すること、を必要とする。第3に、追加の合成動作が適用されない限り、この技法は、不透明レンディションに使用することしかできず、たとえば、最終的なレンディションがどこでも50%不透明度を有し、他のコンテンツが「透けて見える」ことを可能にすることを保証することは、不可能である。これは、ペインターズ・アルゴリズムが、1つの「ペイントのレイヤ」(すなわち、詳細レベル)が、下のレイヤを完全に隠すという効果に正確に頼るからである。ある詳細レベルが隠されることになる場所およびそうでない場所は、前もって知られてはいない。
(本発明)
本発明は、ペインターズ・アルゴリズムのすべての利点を保存しながら、これらの問題を解決する。これらの利点の1つは、任意の種類のLODタイリングを扱う能力であり、これには、四辺形以外のまたは不規則なタイリング、ならびに本発明者が別々の特許仮出願を出願している無理数のグリッド・タイリングを含む。タイリングは、一般に、ビジュアル・コンテンツを含む領域の多角形への再分割またはテッセレーションからなる。タイリングが複数分解度コンテクストで有用になるためには、より低い詳細レベルのタイルの面積がより高い詳細レベルのタイルの面積より大きいことが一般に望ましく、それらのサイズがそれだけ異なる乗法係数が、細分性gであり、この細分性gは、定数であると仮定される(ただし、限定しないが)。以下では、無理数であるが四辺形のタイリング・グリッドを使用して、改善されたアルゴリズムを説明する。他のタイリング方式への一般化は、当業者には明白であろう。
この改善されたアルゴリズムは、4つのステージからなる。第1ステージでは、合成グリッドが、描かれるべきすべての詳細レベルでのすべてのタイル・グリッドの可視部分についての重ね合せから、イメージの基準フレーム内に構成される。無理数タイリング革新(irrational grid tilings:別の特許仮出願で詳細に説明される)が使用されると、これは、図A3−1に概略的に示された不規則な合成グリッドをもたらす。このグリッドは、各詳細レベルでタイル「ブレンディング・フラップ」を描くのに必要になるx値およびy値に対応するグリッド線によって増補される(結果のグリッドが密集しすぎ、視覚的に混乱させることになるので、図A3−1には図示せず)。この合成グリッドは、グリッド線のx値およびy値のソートされたリストによって定義することができるが、すべての可視タイル(そのブレンディング・フラップを含む)を描くのに必要になるすべての四辺形および三角形の頂点が、xグリッド線とyグリッド線との交差点にあるというプロパティを有する。x軸に平行なn本のグリッド線と、y軸に平行なm本のグリッド線とがあるものとする。次に、エントリがグリッドの正方形に対応する、2次元n*mテーブルを構成する。各グリッド・エントリは、2つのフィールドすなわち、0に初期化される不透明度と、当初は空である特定のタイルへの参照のリストとを有する。
第2ステージは、減少する詳細レベルによってソートされた(単純な実装と反対に)タイルをウォーク・スルーすることである。各タイルは、整数個数の合成グリッド正方形をカバーする。これらの正方形のそれぞれについて、そのテーブル・エントリが100%未満の不透明度を有するかどうかを検査して調べる、有する場合には、現在のタイルをそのリストに追加し、不透明度をそれ相応に増やす。このステップで使用されるタイルごとの不透明度は、タイル・データ構造体に格納される。この第2ステージが完了したときに、合成グリッドは、各グリッド正方形内に描かれるタイルの正しい片に対応するエントリを、これらの「タイル破片」を描くのに用いられる不透明度と一緒に含む。通常、これらの不透明度は、合計が1になる。完全に隠される低分解度タイルは、このテーブル内のどこでも参照されず、部分的に隠されるタイルは、それらが部分的に可視であるタイル破片でのみ参照される。
このアルゴリズムの第3ステージは、合成グリッドのトラバーサルであり、このトラバーサルでは、合成グリッド頂点でのタイル破片不透明度が、同一詳細レベルの隣接する頂点の平均をとることによって調整され、これに、各頂点での合計不透明度(通常は100%)を保存するための頂点不透明度の再調整が続く。これによって、別の特許仮出願に記載されたスケールのスペース的平滑化の洗練されたバージョンが実装される。この洗練は、合成グリッドが、一般に、特に低分解度タイルについて、革新#4で定義された1タイルあたり3×3のグリッドより密であるという事実に由来する(より高いLODでは、構成によって、合成グリッド作成が、少なくとも必要なだけ微細になる)。これによって、平均化技法が、事実上、より多数のタイル破片からなる、より滑らかなブレンディング・フラップを作成することによって、見かけの詳細レベルでのより高い滑らかさを達成できるようになる。
最後に、第4ステージでは、合成グリッドをもう一度トラバースし、タイル破片を実際に描く。このアルゴリズムは、データに対する複数のパスおよびある量のブックキーピング(bookkeeping)を用いるが、最終的に、ドローイングを行わなければならないのがずっと少なくなるので、単純なアルゴリズムよりはるかによい性能をもたらし、レンダリングされるすべてのタイル破片が、時々低い不透明度でではあるが、ユーザに可視である。一部のタイルが、全く描かれない場合がある。これは、表示される領域と交差するすべてのタイルをそっくりそのまま描く単純なアルゴリズムと対照的である。
このアルゴリズムについてのさらなる利点は、単純に総不透明度ターゲットを100%からより低い値に変更することによって、部分的に透明なノードを描くことを可能にすることである。これは、単純なアルゴリズムを用いては不可能である。というのは、すべての下にあるがより低い分解度のタイルを完全に「上塗りする」ために、最も詳細なものを除くすべての詳細レベルを完全な不透明度で描かなければならないからである。
ビューが、x−y平面内でノードに対して相対的に回転されるときに、効率のためにある些細な変更を行う必要がある。合成グリッドは、通常の形で構成することができ、この合成グリッドは、より大きい座標範囲が対角線に沿って可視なので、回転されない場合のそのグリッドより大きくすることができる。しかし、複数のタイルをウォーク・スルーするときには、可視のタイルだけを考慮する必要がある(単純な、交差する多角形の判断基準によって)。また、ビューイング領域の外部の合成グリッド正方形は、第2ステージまたは第3ステージでのトラバーサル中に更新される必要がなく、第4ステージで描かれる必要がない。複数の他の実装詳細を変更して、性能を最適化することができることに留意されたい。このアルゴリズムは、本明細書では、その動作および本質的機能を最も理解しやすくする形で提示されている。当技術分野における技量を有するグラフィックス・プログラマは、これらの最適化する実装詳細を簡単に追加することができる。たとえば、タイル破片ごとにタイルのリストを保持する必要はなく、その代わりに、各詳細レベルを、完了したときに即座に正しい不透明度を用いて描くことができ、したがって、どの時にも1破片あたり単一のタイル識別の格納だけが必要になる。もう1つの例示的最適化は、(面積)×(残りの不透明度)の形で表される、まだ残っている総不透明度レンダリングを記憶でき、その結果、このアルゴリズムが、すべてを既に描き終えている場合に早期に終了できるようにすることであり、低い詳細レベルは、必要でない場合には全く「辿る(アクセスする)」必要がない。
このアルゴリズムは、頂点不透明度およびタイル破片識別子を格納するのに、グリッドではなく制約付きドローネ三角分割法を使用することによって、任意の多角形タイリング・パターンに一般化することができる。このデータ構造は、そのエッジがオリジナルLODグリッドのすべてに含まれるすべてのエッジを含む三角形分割(triangulation)を効率的に作成するが、特定の三角形または頂点へのアクセスは、効率的な動作であり、オーダーn*log(n)の時間で行うことができる(ここで、nは、追加される頂点または三角形の個数である)。結果の三角形は、さらに、ほとんどのグラフィックス・プラットフォームでグラフィック・レンダリングに使用される基本プリミティブである。
A4
(表題)ズーミング・ユーザ・インターフェースにおける無限精度座標のためのシステムおよび方法(SYSTEM AND METHOD FOR INFINITE PRECISION COORDINATES IN A ZOOMING USER INTERFACE)
(発明の分野)
本発明は、全般的にはコンピュータのズーミング・ユーザ・インターフェース(ZUI)に関する。より具体的には、本発明は、ズーム可能コンテンツが効果的に無限精度のスペース的位置決めおよびサイズを有することを可能にする階層データ構造を使用してズーム可能コンテンツを効率的に表し、ナビゲートするシステムおよび方法である。これは、制限されないスケールまたは深さのズーム可能環境を可能にする。
(発明の背景)
ほとんどの現在のグラフィカル・コンピュータ・ユーザ・インターフェース(GUI)は、固定されたスペース的スケールのビジュアル・コンポーネントを使用して設計されている。しかし、コンピュータ・グラフィックスという分野の誕生から、ビジュアル・コンポーネントがディスプレイ上で固定されたスペース的スケールを有するのではなく、ビジュアル・コンポーネントをズーム・インまたはズーム・アウトできる形で、ビジュアル・コンポーネントを表現でき、操作できることが認められた。ズーム可能コンポーネントの望ましさは、多くの応用領域、たとえば、地図のビューイング、新聞などの大きい異種テキスト・レイアウトのブラウジング、ディジタル写真のアルバムのビューイング、および大きいデータ・セットのビジュアライゼーションを用いる作業などで明白である。スプレッドシートおよびレポートなどの普通のドキュメントを見るときであっても、しばしば、ドキュメントの概観を見、次に、関心を持たれた領域にズーム・インできることが有用である。Microsoft(登録商標)Word(登録商標)および他のOffice(登録商標)プロダクト(表示メニューの下のズーム)、Adobe(登録商標)Photoshop(登録商標)、Adobe(登録商標)Acrobat(登録商標)、QuarkXPress(登録商標)など、多くの現代のコンピュータ・アプリケーションに、ズーム可能コンポーネントが含まれる。ほとんどの場合に、これらのアプリケーションは、ドキュメントのズーム・インおよびズーム・アウトを可能にするが、必ずしもアプリケーション自体のビジュアル・コンポーネントのズーム・インおよびズーム・アウトを可能にはしない。さらに、ズームは、通常、ソフトウェアとのユーザの対話の周辺態様であり、ズーム・セッティングは、時たま変更されるのみである。ドキュメント上での連続的なパンは、標準的である(すなわち、スクロール・バーまたはカーソルを使用して、見られているドキュメントを左、右、上、または下に平行移動させること)が、連続的にズームする能力は、ほとんど必ず存在しない。より一般化されたズーミング・フレームワークでは、すべての種類のビジュアル・コンテンツをズームすることができ、ズームは、パンのようにユーザの体験の一部になるはずである。この線に沿ったアイデアは、早くも1960年代に多数の映画の未来的なコンピュータ・ユーザ・インターフェースとして現れ1、最近の映画は、その傾向を継続している2。複数の連続的ズーミング・インターフェースが、1970年代から現在までに、考えられ、かつ/または開発されてきた3。1991年に、これらのアイデアのいくつかが、ニューヨーク大学のKenneth PerlinおよびJacob Schwartzによる米国特許第5341466号(Fractal Computer User Centerface with Zooming Capability)で正式に承認された。Perlinおよび同僚によって開発されたプロトタイプ・ズーミング・ユーザ・インターフェースすなわちPadとその後継であるPad++は、その後にある開発を受けた4。しかし、本発明者の知る限り、フルZUI(ズーミング・ユーザ・インターフェース)に基づく主要なアプリケーションは、複数の技術的不足に部分的に起因して、まだ大量市場には現れておらず、これらの技術的不足のうちの1つが、本発明で対処される。
<1>Stanley Kubrick’s 2001: A Space Odyssey, Turner Entertainment Company, a Time Warner company (1968)
<2>Steven Spielberg’s Minority Report, 20th Century Fox and Dreamworks Pictures (2002)
<3>最初の出現は、W.C. Donelson, Spatial Management of Information, Proceedings of Computer Graphics SIGGRAPH (1978), ACM Press, p. 203−9である。最近の例は、Zanvas.comであり、これは、2002年の夏に立ち上げられた。
<4>Perlinは、http://mrl.nyu.edu/projects/zui/で、その後の開発を記述している。
(発明の概要)
本発明は、新たに開発されたズーミング・ユーザ・インターフェース・フレームワーク(以下では、その作業名であるVossによって参照する)の基本となる新規のアイデアを実施する。Vossは、そのソフトウェア・アーキテクチャにおける複数の革新に起因して、それに先行するものより強力であり、より反応が速く、より視覚的に説得力があり、より一般的なユーティリティである。本発明は、具体的には、座標系およびナビゲーションに対するVossの手法に関する。
ほとんどのグラフィックス・アーキテクチャは、その出発ポイントとして2D座標系を選び、この2D座標系は、通常はx座標およびy座標と称する、原点(0,0)からの水平および垂直の変位を表す数の対(x,y)として2次元(2D)スペース内のポイントを定義する。また、時々、2Dポイントは、極座標など、非デカルト座標系を使用して表され、次の議論の実質的な諸態様は、すべてのそのような座標系に同等にあてはまる。3次元(3D)グラフィックスの分野では、数の3つ組(x,y,z)によって表される3D座標系が、通常、スペース内のポイントを表すのに使用され、やはり、これらは、デカルト座標であってもなくてもよい。ディスプレイは、通常は2次元なので、ビュー依存数学変換が、3次元ワールド座標を2次元スクリーン座標に換算するために必要である。どの場合でも、操作される座標は、通常、整数または浮動小数点のいずれかの、コンピュータにネイティブな数値データ型を使用して表される。そのようなデータ型は、通常、16ビットと64ビット(2進桁)との間のメモリを使用する。その限られた表現サイズのゆえに、これらの数は、限られた精度を有する、すなわち、その10進拡張は、ある限られた個数の有効な桁までで定義されるに過ぎない。64ビット浮動小数点の場合に、これは、約15個の10進桁である。
座標系がディスプレイに「ロックされる」ときすなわち、各2D座標対(x,y)がディスプレイ表面上の固定されたポイントに対応するときに、この精度は、適度を上回るものである。しかし、ズーミング・ユーザ・インターフェースのコンテクストでは、ユーザは、たやすくズーム・インし、前に単一ピクセルによってカバーされた領域にディスプレイ全体を満たさせることができ、あるいは、ズーム・アウトし、ディスプレイ全体のコンテンツを単一ピクセルのサイズに縮小させることができる。各そのようなズームは、効果的に、約1000の因数を(x,y)座標を乗算したり、除算したりする場合がある。したがって、複数のそのようなズーム・インまたはズーム・アウトは、すべての標準的な内部浮動小数点表現の精度を使い果たす(たとえば、5回のそのようなズーム動作は、64ビット浮動小数点数の精度を完全に使い果たすはずである。このコンテクストで、打ち切り誤差または「丸め誤差」から生じるビジュアル・アーティファクトは、3回のそのようなズームの後に顕著になり始めることになる)。それでも、ズーミング・ユーザ・インターフェースでは、はるかに多数の回数だけズーム・インまたはズーム・アウトすることが望ましい可能性がある。これは、グローバル座標またはワールド座標を、ズームの範囲を厳しく制約せずに標準的なマシン・フォーマットに格納することができないことを意味する。
本発明は、完全にワールド座標なしで済ませることによって、この問題を解決する。その代わりに、すべてのズーム動作およびパン動作が、集合的にコンテンツのズーム可能「ユニバース」を定義するローカル座標系のツリー(または、より一般的には、有向グラフ)内で行われる。コンテンツは、ノードの集合を含み、これらのノード自体は、マシン精度座標のローカル2D座標系を使用して定義される。したがって、標準的な64ビット浮動小数点数が使用される場合に、単一のノードは、1座標あたり約15個の10進桁の精度を有することに制限され、あるいは、ピクセルに関して、1辺に多くとも約10^14個のピクセルであることに制限される。しかし、あるノードは、それぞれが幾何学的に親の境界内に含まれる複数の子ノードの親であることができる。親に対する相対的な子のサイズおよび位置は、親のローカル座標系で指定することができ、したがって、マシン精度の数におさめることができるが、子は、それ自体のローカル座標系を有することができ、このローカル座標系は、子が、(たとえば)1辺に10^14ピクセルまでの分解度を有することを可能にする。このように子ノードを子ノード内に埋め込むことによって、ビジュアル・コンテンツの無限に深いネスティングを可能にすると同時に、マシン精度の数だけを使用する幾何学的計算の格納、操作、および実行を行う構成が得られる。本発明の本体は、この方式をさらに解明し、ここで説明したデータ構造を使用するパン動作およびズーム動作の例示的実装の概要を示す。
本発明の目的は、有限の「物理サイズ」を有するが任意に高い複雑さまたは分解度を有するパン可能かつズーム可能な2Dスペースを、より大きいパン可能かつズーム可能な2Dスペースの明確に定義された領域に、埋め込むことを可能にすることである。
本発明のもう1つの目的は、ビジュアル・オブジェクトの幾何ツリーまたは有向グラフを、上述の埋込プロシージャによって構成できるようにし、そのようなツリーまたはグラフが任意に大きく複雑になることを可能にすると同時に、その結果生じたスペースをパンし、ズームする能力を持ち続けることである。
したがって、本発明の目的は、普通の現在のコンピュータ・アーキテクチャ上で潜在的に無制限の視覚的な複雑さおよび詳細を有する仮想2Dユニバースでの流動的なズームおよびパンを可能にすることである。
本発明のもう1つの目的は、ネイティ・ブマシン精度の数に対して実行される座表計算の計算速度を持ち続けながら、パン可能かつズーム可能な2Dスペースの座標に対する無限精度算術の挙動を模倣することである。ソフトウェア・パッケージMathematica(商標)((C)Wolfram Research)は、無限精度算術に関するデータ構造およびアルゴリズムの例示的実装を提供する(しかし、Mathematicaは、これらと同一の判断基準を満足しない)。
本発明のもう1つの目的は、パン可能かつズーム可能な2Dスペースの座標に対する無限精度算術の挙動を模倣すると同時に、無限精度の数についての大きいメモリ消費を避けることである。
本発明のもう1つの目的は、埋め込まれるコンテンツ内の座標または他のデータ構造の更新を一切必要とせずに、参照によって再利用可能なビジュアル・コンテンツをズーム可能かつパン可能な2Dスペースに埋め込むことを可能にすることである。これは、新しい子の座標系ツリーをトラバーサルすることなく、2Dスペースを別の2Dスペースに埋め込むことを可能にするので、この能力は、複雑さに関係なく、すべての2Dスペースの埋込みを可能にする。
本発明のもう1つの目的は、循環参照に起因するズーム可能かつパン可能なコンテンツ内の無限ネスティングを可能にすることである。コンテンツBを有するノードを、コンテンツAを有するノードの子にする(すなわち、Bが幾何学的にAの内側に現れる)ことができ、順に、ノードBが、コンテンツAを有するノードを子として含むことができる。ビジュアル・コンテンツが再利用され、参照によって含められることができる複雑なズーム可能環境では、このタイプの再帰が、非常に簡単に発生する可能性がある。これは、関連する座標系を有するノードのツリーという概念を、関連する座標系を有するノードの有向グラフという概念に一般化する。
本発明のもう1つの目的は、深いズーム・インの後のズーム・アウトが、ウェブ・ブラウザの「戻る」ボタンのように機能することを可能にし、ユーザがビジュアル・ナビゲーションを介する自分のステップをたどりなおすことを可能にすることである。
本発明のもう1つの目的は、ズーム・アウトの直後のズーム・インが、ウェブ・ブラウザの「進む」ボタンに似て機能することを可能にし、ユーザが任意に長いズーム・アウトの効果を正確に元に戻すことを可能にすることである。
本発明のもう1つの目的は、ノードが、非常に多数の子ノード(たとえば、10^28個まで)を有することを可能にすることである。
本発明のもう1つの目的は、ノードが、それ自体の子をオン・ザ・フライでプログラム的に生成することを可能にし、ナビゲーション中にコンテンツを動的に定義し、作成し、または変更することを可能にすることである。
本発明のもう1つの目的は、任意に複雑なビジュアル・コンテンツが最終的に非常に大量のデータを使用して表される場合であっても、これらのデータがリモート位置で格納され、低帯域幅ネットワークを介して共有される場合であっても、このコンテンツのほぼ即座のビューイングを可能にすることである。
本発明のもう1つの目的は、対話的フレーム・レートを維持しながら、ユーザが、ビジュアル・コンテンツに任意にズーム・インすることを可能にすることである。
本発明のもう1つの目的は、コンテンツの全体的外見の保存と対話的フレーム・レートの維持との両方の過程で、複雑なビジュアル・コンテンツの概観を得るために、ユーザが任意にズーム・アウトできるようにすることである。
本発明の上記および他の目的は、次の明細書の再検討から、当業者に明白になるであろう。
(記法(Conventions))
次では、複数の擬似コード記法を使用する。データ構造体(時々、抽象データ型すなわちADTとしても知られる)は、語Structureおよびそれに続く中括弧(curly braces)内の材料{...}を使用して導入される。中括弧内では、フォーマット
で、フィールド、すなわちその構造体を構成するデータ要素、がリストされ、ここで、DataTypeは、あらかじめ定義された構造体またはプリミティブ型のいずれかであり、variableNameは、そのフィールドの名前である。データ型および関数は必ず大文字から始まり、変数名またはフィールド名は必ず小文字から始まることに留意されたい。使用されるプリミティブ型は、Boolean(値trueまたはfalseをとることができる)、Double(C言語のdouble型に対応する64ビット浮動小数点数)、Integer(64ビット符号付き整数データ型)、およびString(文字列)である。構造体および変数の名前ならびに使用されるデータ型およびフォーマットの詳細は、例示的であり、本発明の代替実装は、任意の個数の追加フィールドを含めて、これらの詳細のいずれをも変更することができ、あるいは、異なる構造体または内部表現を使用することができる。
便宜のために、(それぞれ)2Dデカルト平面上のポイントの位置およびその平面上の軸に位置合せされた四辺形の位置を格納する次の構造体を、ここで定義する。
x軸が水平で右に向かって増加し、y軸が垂直で上に向かって増加する、数学的な座標系を仮定する(制約なしに)。Rectangle内のポイントloおよびhiは、四辺形領域の左下角および右上角を表す。構造体のフィールドを参照するには、次の擬似コードのように、ピリオド(「.」)を使用する。
この関数は、あるポイントが四辺形内にあるかどうかを決定する。returnなどのステートメントは、そのC言語の対応物と同等である。使用される構文は、当業者の誰にでも理解可能であろう。斜体は、擬似コード内で、抽象的アクションまたは複雑なアクションを示すのに使用され、これらは、英語では最も簡単に表現できる。
最後に、2つのコンテナ・データ型すなわち、型Tのオブジェクトの順序なしセットを格納するCollection<T>と、後入れ先出し(LIFO)ベースで型Tのオブジェクトを格納するStack<T>とを定義する。コレクションを通って反復するために、構文
を使用するが、ここで、collectionは、型Collection<T>であり、xは、コンテナ内の型Tの各オブジェクトの代役を務め、そのようなオブジェクトごとに、中括弧内のコードが実行される。オブジェクトが処理される順序は、問題ではないと仮定する。スタックについて、次の関数を定義する。
Push関数は、オブジェクトtをスタックに付加し、Pop関数は、最後にプッシュされた要素を除去し、その要素を返す。Countは、スタック内のオブジェクトの個数(0以上の整数)を返し、Elementは、インデックスによってスタック内の要素をルックアップし、その要素を返すが、スタックを未変更のままにする。Cの記法に従えば、有効なインデックスは、最初の要素の0から始まり、Count(stack)−1まで増える。
(発明の詳細な説明)
本明細書では、ディスプレイがカメラであり、このカメラを介して、ユーザが2次元表面すなわち2Dユニバースの一部を見ることができる、ユーザ・インターフェース・メタファを仮定する。便宜のために、そうする必要はないが、物理的次元をこのユニバースに帰し、その結果、このユニバースを、たとえば1メートルの正方形とすることができるようにする。
このユニバースは、2Dオブジェクトすなわちノードを含み、ノードは、ビジュアル表現を有し、動的または対話的とすることもできる(すなわち、ビデオ・クリップ、アプリケーション、編集可能なテキストドキュメント、CAD図面、または静止イメージ)。ノードが可視になるためには、そのノードは、そのノードを全体的にまたは部分的にディスプレイのある領域に描くことができるレンダリング・メソッドに関連付けられなければならない。各ノードは、有限精度のローカル座標系を与えられる。例示のために、本明細書では、ノードが、四辺形であり、上で定義したPoint2Dデータ構造体およびRectangleデータ構造体を使用してそのローカル座標を表すと仮定する。したがって、Rectangleは、ローカル座標系の境界を定義する。より一般的に、ノードは、四辺形以外であることができ、かつ/または異なる座標系を使用することができる。したがって、本明細書では、
を定義し、ここで、省略記号(...)は、Nodeが他のフィールドをも有することを示すが、この他のフィールドは、後で指定する。したがって、ノード(本明細書ではデータ型Nodeが与えられる)の最小限のレンダリング・メソッドは、次の引数を必要とする。
この例示的関数は、onNode四辺形によって定義されるnodeの部分(そのノードの座標系での)を、onDisplayによって定義されるディスプレイ上の四辺形(ディスプレイ座標または「スクリーン」座標での)にレンダリングするであろう。四辺形onNodeは、一般に、node.coordSystem内にある必要がある。レンディションが可視になるためには、四辺形onDisplayは、ディスプレイ座標でディスプレイの境界を定義する四辺形の中にある必要がある。
各ノードは、0個以上の子ノードを有することができ、これらの子ノードを参照によってアドレッシングする。これは、ノードが、各子ノードの全情報を含む必要がなく、一般に含まず、その代わりに、子ノードを入手するのに必要な情報を提供するアドレスだけを含むことを意味する。URL(http://...)が、そのようなアドレスの例であるが、アドレスは、たとえばメモリ内のポインタ、グローバル一意識別子、ハードウェア・ポートなど、他の形をとることができる。一般的にアドレスを表すために抽象データ型Addressを定義し、ノードのアドレスを与えられてそのノードへの参照を返す関数
を定義する。
子ノードのアドレスのほかに、子への参照は、親ノードの座標系での子のサイズおよび位置を指定しなければならない。したがって、
があり、ここで、やはり、placementは、親の中すなわち親のcoordSystemの内側にある必要がある。したがって、ノードの定義を拡張する。
異なるノードは、おそらくは異なるスペース配置で、その子の一部またはすべてを共有することができ、同一の情報の異なるビューの可能性が可能になる。
ここで、ノード・レンダリング・メソッドの包括的挙動を、幾分かより詳細に定義することができる。
この関数は、ノードおよび、再帰的に、その子をレンダリングする。CalcRectangle関数は、親のディスプレイ四辺形と、親の中での子の配置とを与えられて、子によって占められるディスプレイ四辺形を計算する。このレンダリング・メソッドは、たとえば親が可視である場合にその子のすべても可視であると仮定することによって、かなり単純化されている。しかし、このレンダリング・メソッドは、次の重要な設計判断基準を満たす。
1.グローバル座標を使用しない。
2.子ノードがその親ノードより小さいと仮定すると、最終的に子ノードがminimumAreaより小さくなるので、この関数は、有限の時間で終了する。これは、ツリー内に無限の個数のノードがある場合であっても真である。
3.minimumAreaが十分に小さくされる場合に、描かれないすべてのノードが、ディスプレイの全体的な外見に影響するには小さすぎるので、切り詰められたレンディションの視覚的影響を、無視可能になる可能性がある。
4.再帰が許容される、すなわち、あるノードを、それ自体の子孫とすることができる。したがって、「の子」関係によって定義されるノードの有向グラフが、サイクルを有することができる(その有向グラフを、もはやグラフ理論の意味でのツリーではなくする)。子が、その親の面積のうちの実質的な部分を占め、グラフ・サイクルが小さい(すなわち、A→B→AまたはA→B→C→A)場合に、これは、「鏡の間」効果(hall−of−mirrors effect)をもたらす。
ノードにテキストをタイプすることなどの、ノードとのユーザ対話は、通常、そのノードが可視であることを必要とする。複数の異なるモデルを、対話が行われるノードを選択するのに使用することができ、たとえば、タブ・キーが、ノードをサイクル・スルーすることができ、あるいは、マウス・ポインタの下のノードを、ターゲットにすることができる。どの場合でも、ユーザ対話の候補であるノードの個数は、レンダリングされるノードの個数と同一のオーダーであり、したがって有限である。上で説明したレンダリング関数に似たメソッドを使用して、ユーザ対話メッセージをノードに渡すことができ、このメッセージは、それらのノードの将来の挙動または外見に影響することができる。したがって、このアーキテクチャは、ノードを単に静的ビジュアル・オブジェクトではなく、完全なソフトウェア・アアプリケーションにすることを可能にするのに十分である。
ノードを見ることおよびノードとの対話に加えて、ユーザは、連続的ズーム動作および連続的パン動作を使用してナビゲートすることができる。ズーム・インは、ディスプレイ上で可視のコンテンツの一部をプログレッシブに拡大し、その結果、その部分がディスプレイ上でより多くの面積を占めるようにすることを意味し、その後、より小さい面積が、より詳細に可視になる。ズーム・アウトは、その逆の動作である。本明細書では、ユニバースの物理的寸法が制限されると仮定したので、ズーム・アウトは、制限付き動作であり、ユニバース全体が可視になったならば、さらなるズーム・アウトは、新しいコンテンツを見えるようにすることは一切できず、単に、ユニバースをディスプレイ全体より小さい面積に縮小する。したがって、ユニバース全体を含むものとしてルート・ノードを定義することが自然であり、このルート・ノードは、十分にズーム・アウトされたときに可視である子ノードを有し、これらの子ノードは、それ自体の子ノードを有するなどである。子は、幾何学的に親の境界内になければならないので、子ノードは、一般に親ノードより小さい。しかし、各ノードは、それ自体のローカル座標系を有し、したがって、この構成は、ますます微細になる座標系のカスケードを、したがって潜在的に無限のスペース分解度のユニバースを、可能にする。これは、ズーム・インが、制限付きの動作ではないことを意味し、ノード・グラフが複数のサイクルを有する場合に、人は、「コンテンツ・ループ」に永久にズーム・インすることができ、あるいは、より興味深いことに、ノード・グラフは、非常に多数のノードまたは無限の個数のノードさえ有することができ、始終、新しいコンテンツを見ながら、いつまでもズーム・インすることが可能になる。
このアーキテクチャが無限分解度を真に可能にするためには、(潜在的に無限の)ノード・グラフを常時トラバースせずに、効率的にディスプレイをパンし、ズームし、レンダリングすることができる必要がある。本発明者は、我々が当初にこのノードに対してRenderNode関数を呼び出す場合に、ディスプレイ上で可視のノードによって占められる面積のレンディションが、有限の時間で行われることを知った。ここで、可視ノードを動的なズームおよびパンの間に一般にどのようにして見つけることができるかという質問に対処しなければならない。
これは、ノード構造体へのフィールドの追加と、追加のアドレス・スタック・データ構造体とを用いて達成することができる。拡張されたNodeの定義は、
である。新しいviewフィールドは、ノード座標でのそのノードの可視領域すなわち、ノード座標でのディスプレイ四辺形のイメージを表す。この四辺形は、そのノードが部分的にオフ・スクリーンであるときなど、coordSystemによって定義されるノードの領域と部分的にオーバーラップするだけである場合がある。明らかに、viewフィールドを、すべてのノードについて常に更新された状態に保つことはできない。というのは、必ずしもノードの有向グラフ全体を有限の時間でトラバースすることができないからである。
スタック構造体は、次ぎのように定義される。
ここで、このスタックは、クライアント(ディスプレイに接続されたコンピュータ)のグローバル変数である。例示のために、ナビゲーションが、ルート・ノードによって定義されるコンテンツのユニバースの概観から始まると仮定する。次に、このルート・ノードが、viewStackにプッシュされ、ルート・ノードのviewフィールドを、ルート・ノードの領域全体になるように初期化することができる、すなわち、
とすることができる。
概略的に言うと、viewStackは、ディスプレイに対する相対的な、1つのポイントによって「貫かれた」ノードのシーケンスのアドレスを指定することになり、このポイントは、本発明の例示的実装では、ディスプレイの中心であるものと解釈される。このシーケンスは、ルート・ノードから始まらなければならないが、無限とすることができる。したがって、このシーケンスを切り捨てなければならず、これは、RenderNodeで使用されたものと同一の判断基準を使用して行われ、このシーケンスは、「貫かれた」ノードが、上でminimumAreaとして定義された、ある最小サイズより小さくなると停止する。次に、現在のビューは、viewStack内のすべてのノードのviewフィールドによって表され、これらのviewフィールドのそれぞれは、ノードのローカル座標系に関して現在のビューを指定する。ユーザが、ユニバースに非常に深くズームした場合に、ディスプレイの詳細な位置は、スタック内の最後のノードのviewフィールドによって最も正確に与えられる。しかし、最後の要素のviewフィールドは、ユーザの視点をユニバース全体に対して相対的に指定するのではなく、そのローカル座標に対して相対的に指定するのみである。その一方で、ルート・ノードのviewフィールドは、ユニバース内のどこをユーザが見ているかを指定するが、丸めおよび離散化の誤差に起因して、ルート・ノードのview.loおよびview.hiが1つのポイントに収縮されている可能性があり、このポイントは、実際のビュー位置に対する有限精度の近似に過ぎない。したがって、viewStackの「微細の終点(fine end)」により近いノードは、ユニバース内の徐々に狭くなる面積に対してではあるが、高まる精度でビュー位置を指定する。
このコンテクストでは、前に定義したRenderNode関数の単純な実装は、CalcRectangle関数が、トラバースされる各ノードのplacementフィールドと再帰的に伝えられるonDisplay引数とを順次使用して、ルート・ノードから始めて各ノードとのディスプレイのオーバーラップを計算するという点で、欠陥があることに留意されたい。深いズームでは、精度の徐々の消失は、この計算が正しい結果を与えるのを失敗させる。訂正されたバージョンでは、CalcRectangle関数は、単純にノードのviewフィールドによって置換される。次に、問題は、次のように変換される:すべての可視ノードのビュー(すなわち、viewフィールド)は、ユーザがユニバースを通ってナビゲートする、すなわちパンおよびズームのときに同期化された状態に保たれなければならない。これらを同期化された状態に保つことができないと、ノードが、結合力があり物理的に一貫した2D表面として振る舞うのではなく、互いに独立にディスプレイ上で移動するという外見がもたらされる。
すべてのナビゲーション動作中のビューの変更は、次のように進行する。viewStack内の最後のノードが、ビューの最も正確な表現を有するので、第1ステップは、この最後のノードのviewフィールドを変更することである。この変更されたビューは、正しい新しいビューとして採用され、すべての他の可視ノードは、後について行かなければならない。第2ステップは、この新しいビューをルート・ノードに向かって「上向きに」伝搬させることであり、これには、スタック内でより以前のノードのviewフィールドに対する徐々にますます小さくなる変更を行うことが含まれる。ユーザが深くズームする場合に、上向きの伝搬のあるポイントで、ビューに対する変更が、正確に表現されなくなるほどに非常に小さくなる可能性があり、上向きの伝搬は、このノードで停止する。上向き伝搬の各ステージで、変更は、未変更のRenderNode擬似コードの手法を使用して、下向きに他の可視ノードにも伝搬される。したがって、まず、最後のノードの親のビューが変更され、次に、下向きの伝搬で、最後のノードの「姉妹」のビューが変更される。次の上向きの伝搬は、祖父のビューを変更し、第2の下向きの伝搬は、最初の叔父を変更し、次に最初の従兄弟を変更する。下向きの伝搬は、前と同様に、「従兄弟ノード」の面積がminimumAreaより小さくなるとき、またはあるノードが完全にオフ・スクリーンになるときに、停止される。
パン動作は、最後のノードを、それがもはやviewStackに属さない程十分遠くに移動する場合がある。その代わりに、ズーム・インが、最後のノードの子をminimumAreaを超えて拡大し、viewStackを延ばすことを必要にする場合があり、あるいは、ズーム・アウトが、最後のノードの面積をminimumArea未満にして、viewStackの切捨を必要にする場合がある。これらの場合のすべてで、最後のノードのアイデンティティが変化する。これらの情況は、下向き伝搬中に検出され、これによって、viewStackがそれ相応に変更され、潜在的にviewStackがより長くなるかより短くなる場合がある。
このアイデアの拡張は、長い外向きのズームに反応する即座のviewStackの切捨を回避することである。viewStackの切捨は、ユーザがその後にパンする場合に限って必要である。長い外向きのズームは、深くズームされたノードのviewフィールドに非常に大きく(したがって、数値的に不正確に)ならせるが、view四辺形の中心ポイントを表すフィールド
をNode構造体に追加することができ、したがって、パンなしのズームは、どのノードのviewCenterフィールドも変更しない。この構成は、極端なズーム・アウトの後に、直ちにその逆のズーム・インが続くことを可能にする。viewStackは、変更されないままなので、ユーザは、開始したビューに正確に戻ることができる。この挙動は、ウェブ・ブラウザの「戻る」ボタンおよび「進む」ボタンに似ており、「戻る」は、ズーム・アウトに類似し、「進む」は戻るズーム・インに類似する。ウェブ・ブラウザでは、ユーザが、前のウェブ・ページに戻るために「戻る」を使用するが、その後、代替リンクを後続させると、その時点で、「進む」が働くのを止める。したがって、代替リンクを後続させることは、ズーム・アウトの後のパンに類似する。
A5
(表題)ゼノン・キャッシュ(Zeno cache):可変圧縮可能データ・オブジェクトに関するmost−recently−used(MRU)キャッシングの有効性を高めるシステム(a system for increasing the effectiveness of most− recently−used (MRU) caching for variably compressable data objects)
(序論)
nが1から無限大まで変化し、p>1である級数y(n)=n^−pの無限和は、有限である。同様に、y=1/b^nの和は、b>1について有限である(たとえば、後者の場合に、b=2であれば、和は正確に2である)。これらなどの収束級数の概念を使用して、本発明者が有名なゼノンのパラドックスにちなんでゼノン・キャッシュと呼ぶ、非常に効率的な形のデータ・キャッシングを実装することができる。ゼノンは、1歩(議論のために、彼は毎秒1歩進むと言うことができる)で、すべての競争場(racetrack)の終わりまでの距離の半分を行くほどに速い走者であり、パラドックスは、もちろん、すべての1歩で前に移動するにもかかわらず、彼が絶対にその競争場の決勝線に入らないということである。このパラドックスは、b=2とし、n=2から無限大までの和をとる場合の、上述した1/b^n級数に簡単に関係付けられる。
(先行技術)
「MRUキャッシング」(MRUは、「most recently used(最も最近に使用された)」を表す)は、クライアント−サーバ・システムでのクライアント・サイド・メモリの実装に関する周知の概念である。サーバが、クライアントにアクセスでき、多数のデータ・オブジェクトをクライアントに供給でき、これらのデータ・オブジェクトが、集合体の形で、大量のメモリを占める可能性があると仮定する。しかし、クライアントとサーバとの間の使用可能な帯域幅は、限られており、したがって、サーバからデータ・オブジェクトが送信されることを求めるクライアント要求は、時間がかかる。データ・オブジェクトへのアクセスが、適度に「コヒーレント」である(クライアントが最近要求したオブジェクトが、近い将来にもう一度必要になる可能性が高いことを意味する)場合に、MRUキャッシングは、クライアント−サーバ・システムの効率を大幅に高める方法である1。このアイデアは、クライアントが、ある限られた量のメモリ(一般に、サーバ上のオブジェクトのすべてを格納するのに必要なる量よりはるかに少ない)を用意しておき、そこにおさまる、できる限り多くの、最も最近に要求されたオブジェクトをこのメモリに格納するということである。新しいオブジェクトが、サーバからクライアントに送信され、クライアントのキャッシュ・スペースが、使い果たされたときには、最近最も使用されていない(least recently used、LRU)オブジェクトが、余地を作るためにキャッシュから消去される。本明細書では、キャッシュのLRU端およびMRU端に言及し、オブジェクトは、必ずMRU端に追加され、LRU端から消去される(メモリ内のオブジェクトの物理的レイアウトが、LRU−MRUレイアウトに対応する必要がないことに留意されたい。このアーキテクチャは、単に、クライアントが、本明細書に記載の形でオブジェクトを見つけ、挿入し、消去することが可能であることを必要とするだけである。直線状のLRU−MRU配置は、単に概念的に好都合であるだけである)。クライアントがデータ・オブジェクトを必要とするときに、まず、そのオブジェクトがキャッシングされているかどうかを知るために、キャッシュが検査される。キャッシングされている場合には、キャッシングされた表現が使用され、負荷のかかるサーバ要求の必要がなくなる。通常、キャッシングされた表現の利用は、そのオブジェクトをキャッシュのMRU端に「昇格(promote)」させもする。この方式の性能上の利点は、明白である。
<1>上で説明したコヒーレンスの概念の一般化は、当業者に理解されるであろう。キャッシングは、あるオブジェクトに関するクライアント要求が近い将来に他のオブジェクトを要求する尤度の確率分布に影響するすべての情況で、性能の利点を与えることができる。単純なMRUキャッシングは、同一のオブジェクトをもう一度要求することの高められた尤度としてこの変更が単純にモデリングされる場合に最適化されるが、一般化が存在し、本発明を、これらの一般化に拡張することができる)。
(ゼノン・キャッシングの概念)
いくつかの情況で、供給されるデータ・オブジェクトは、圧縮可能であり、圧縮可能とは、本発明の目的に対しては、ロッシイ・データ圧縮技法に従うことを意味する。ロッシイ・データ圧縮は、完全(full)表現より少ないバイトでデータ・オブジェクトを表す能力によって特徴づけられ、より高い圧縮率(より多くの圧縮を意味する)は、より大きい歪みまたはより低い品質に対応する。ゼノン・キャッシングに関して、データおよび関連する圧縮アルゴリズムの性質は、次の特性を有しなければならない。
必要とされる、データの圧縮されたバージョンは、非圧縮データの代役として適切でなければならない。歪みがあるレベル未満では、その圧縮表現は十分に適当である可能性があり、歪みがあるレベルを超えると、その圧縮表現は、クライアントがデータの非圧縮バージョン、ロスレス・バージョン、またはより高品質のバージョンを待っている間の当座しのぎとして適切である可能性がある。
機能強化された実施形態では、より低い品質の表現は、より高い品質の表現のサブセットであり、これは、サーバ・サイドで使用可能な追加情報を使用してクライアント・・サイドで表現品質を改善することが、データの完全に新しいバージョンを再送信することではなく、欠けているデータまたは差分の送信を必要とするに過ぎないことを意味する。これは、冗長性を回避し、したがって、効率を実質的に高める。
上述の機能強化された実施形態は、通常、あるオブジェクトの表現品質を下げることが、再圧縮ではなく、単にデータの一部を捨てることを伴うことをも意味する。このプロパティも、効率にとって重要である。
機能強化された実施形態では、圧縮技法が、ロッシイからロスレス(すなわち、完全な表現またはゼロ歪み表現)までスケーリングされる。上述の機能強化された実施形態と組み合わされて、これは、データ・オブジェクトの完全な表現を、複数のステップで、高いロッシイからロスレスへ、最初にロスレス・バージョン全体を当初に送信することに対して相対的に余分な総コストをほとんどまたは全く伴わずに、作り上げることを可能にする。
上記のすべてを満足するデータ型および圧縮テクノロジの例が、JPEG2000標準規格によって例証されている、イメージのウェーブレット圧縮である。
これらのプロパティを与えられると、メモリが「連続である」(すなわち、バイトに離散化されていない)場合に、理論的に、単にオブジェクトの圧縮後のサイズが本開示の先頭で与えたものに似た収束級数に従うという制約を強制することによって、無限の個数のデータ・オブジェクトを有限の量のメモリにキャッシングすることが可能になることになる。最も最近に使用されたオブジェクトは、少ない歪みで表現され、最近最も使用されていないオブジェクトは、徐々により多く圧縮される。すべてのオブジェクトのサイズの和を、以下で示すように、それでも有限の数にすることができる。
実際には、この方式は、次の2つの理由から変更されなければならない。
メモリは離散的であり、その結果、たとえば、通常、オブジェクトを1ビットより小さい表現に圧縮することは、実際には無意味である。
上の収束公式のうちの1つによって記述される圧縮率の連続曲線を強制することは、あるスペースが解放される必要が生じるたびに、キャッシュ内のすべてのオブジェクトを訪れ、その表現サイズを減らすことを必要とすることになる。これは、理論的には無限回数の動作である(実際には、多数の動作になりことになる)。
実用的なバージョン
キャッシュ内のオブジェクトの個数は、実際には有限になるが、ゼノン・キャッシュの概念を使用することによって、この個数を、普通のMRUキャッシングを用いて可能になる個数よりはるかに多くすることができる。さらに、キャッシングされるオブジェクトは、最近に使用された場合にキャッシュ内で高品質で表現されることになり、この品質は、オブジェクトが最近アクセスされていない場合に徐々に劣化することになるというプロパティを有する。この意味で、ゼノン・キャッシングは、おそらくは人間の記憶に非常に似た形で機能する。
メモリは離散的であり、それ未満では圧縮表現がユーザにとっての価値を有しない最小の圧縮後のサイズがあるので、キャッシングされる表現は、最大圧縮率の支配下にある。したがって、このキャッシュに格納できるオブジェクトの絶対最大個数は、オブジェクトのすべてが等しいサイズである(もちろん、そうである必要はない)と仮定して、キャッシュサイズをこの最小の圧縮後のサイズで割った値である。
前に与えた理論的な式(または任意の他の収束和)によって上述に制限された、したがって有限の和をも有する級数を設計する多数の形がある。追加の制約をも導入することができ、それは、かなり少ない個数の離散的な値の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、などの和は、y=1/2^nと全く同様に2であるが、この級数をn=16000まで取り出すならば、yの約log2(16000)個または14個の値だけが使用される。n=百万では、約20個の値だけが使用される。これは、スペースがキャッシュ内で解放されなければならないときに、キャッシュの現在の住人をそのクォータ(割当量)に「調和して」保つために(大多数は既に正しいサイズまで圧縮されている)、ごく少数の動作を行う必要があることを意味する。
多数の他の数列も、この必要な判断基準を満足する。さらに、理論的には収束しない(すなわち、その和が無限大である)級数を使用することが可能である。というのは、実際には、どの場合にも有限の個数の項が合計されるからである。
一般化
確率論的一般化。ランダム・アルゴリズムを使用して、基本アルゴリズムを複数の形で改善することができる。上の2*1/4、8*1/16などの級数の主な不利な点は、その長所すなわち、とる値の個数の少なさから生じる。ランダムな選択を使用して、あるターゲット量のスペースが解放されるまで、重み付きの形でキャッシュ要素のランダムなサブセットを「圧縮する」ことができる。これがうまく働くのは、キャッシュ内の正確な位置が、大きなnにつれて重要度が漸減的になるからである。圧縮の量は、(多少)ランダムとすることもできる。これらなどのランダム手法を使用することによって、オブジェクト品質の明らかな不連続性または閾値を除去することができる。
MRU/LRUだけではなく、キャッシングに、どのオブジェクトが次に必要になる可能性があるかに関するインテリジェントな推測を含めることもでき、したがって、必要になる可能性がより少ないオブジェクトを、将来に必要になるとのより高い尤度を有するオブジェクトの前に「圧縮」することができる。これを、ランダム・アルゴリズムと組み合わせることができる。
(特許請求の範囲)
実質的に説明された通りであることを特徴とするMRU/LRUキャッシング・システム。
A6
(表題)大きいテキスト、メタデータ、および他のコヒーレントにアクセスされる非イメージ・データをスペース的にエンコードする方法(METHOD FOR SPATIALLY ENCODING LARGE TEXTS, METADATA, AND OTHER COHERENTLY ACCESSED NON−IMAGE DATA)
最近、JPEG2000/JPIP1などのイメージ圧縮標準規格が、要求の厳しいエンジニアリング目標を満足するために、すなわち、非常に大きいイメージ(すなわち、サイズにおいてギガ・ピクセル)をサーバからクライアントへ低帯域幅通信チャネルを介して増分的にまたは選択的に配信することを可能にするために、導入されてきた。そのようなイメージがフル分解度で見られているときには、限られた領域だけが、任意の所与のときにクライアントのグラフィカル・ディスプレイにおさまることができる。これらの新しい標準規格は、そのような領域に選択的にアクセスすること、およびその領域に関連するデータだけを通信チャネルを介して送信すること、に向けて適合されている。この「関心領域」すなわちROIが、連続的に変化する場合に、クライアントとサーバとの間の低帯域幅チャネルを介する連続的対話は、ROIの内側の領域のクライアントの表現を正確に保つ続けることができる。
<1>David TaubmanのKakadu、www.kakadusoftware.comの実装を参照。TaubmanはJPEG2000 ISO標準委員会にいた。
本発明は、これらの選択的に圧縮解除可能なイメージ圧縮技法およびイメージ伝送技法のテキスト・データまたは他の非イメージ・データへの拡張に関する。最も単純な例示で、大きいテキスト、たとえば、ジェームズ・ジョイスによる書籍ユリシーズを想像されたい。各章をそれ自体の列に置き、連続する章の列が左から右に配置される状態で、このテキストをフォーマットすることができる。列は、文字単位の最大幅、たとえば100を有すると仮定される。図A6−2に、各テキスト文字が単一のピクセルに対応する、この形でイメージとしてエンコードされたユリシーズのテキスト全体を示す。図A6−1のピクセル強度値(pixel intensity value)は、単純に、対応する文字のASCIIコードである。グレイ・スケール・ピクセルとASCII文字との両方が、8ビット(値0〜255)におさまるので、ピクセル値と文字との間の対応は、非常に自然である。普通のASCII表現での(すなわち、.txtファイルとしての)ユリシーズの全テキストは、1.5MBであり、これは、狭帯域通信チャネルを介してその全体を送信するには大きすぎる可能性がある。ロスレスJPEG2000としてエンコードされた図A6−1のASCIIテキスト・イメージは、2.2MBである。このサイズは、この本の章が長さにおいてより均等であり、テキスト・イメージ内により少ない空のスペース(0としてエンコードされる)がもたらされる場合に、多少は減るはずである。しかし、総ファイル・サイズよりはるかに重要なのが、普通のJPIPサーバがこのファイルをクライアントに選択的に増分的に供給する能力である。文字を読むのに十分なズーム・レベルで(これは、クライアント・サイド・ディスプレイで1ピクセル/文字を十分に超えることを必要とする)テキストを見るすべてのクライアントは、JPIPを使用して、テキストの関連する部分だけを要求することができる。この動作は、効率的であり、テキスト全体をダウンロードすることを禁止することになる条件下で、サーバへの非常に低い帯域幅の接続状態であっても、テキストのリーダーにとって適度な性能を達成することができる。
類似する効果を、特に大きいテキストへの選択的アクセスのために設計されたクライアント/サーバ・テクノロジを使用して達成できるが、テキスト・イメージ手法(本発明者はそう呼ぶ)が、普通の実装を上回る、次の複数の利点を有することに留意されたい。
テキスト・イメージ手法は、非常に大きいデータ・ボリューム用に設計された既存のテクノロジおよびプロトコルを使用する。
テキスト・イメージ手法は、一切の性能の劣化なしに、サイズにおいて数ギガバイト以上のテキストまで簡単にスケールアップされる。
アクセスが、生来的に2次元なので、多くの情況で(たとえば、ユリシーズのケースのように、テキストが列で見られるときに)この手法は、テキストを1次元ストリングとして扱う手法よりはるかに効率的である。
ウェーブレットはJEPG2000で使用されているので、テキストは、複数分解度表現の対象になる。テキストは、最終的な(最も詳細な)分解度以外では読むことができないが、低分解度ウェーブレットのより幅広いスペース的サポートは、関心領域の近くのテキストに関するインテリジェントなクライアント・サイド・キャッシュを自然にもたらす。したがって、スクロール中などのROIの移動は、非常に効率的である。
フォーマットされたテキスト、Unicode、または他のメタデータを扱うためにこの手法を拡張するのは、単純である。というのは、すべてのそのようなデータを、おそらくは埋め込まれたエスケープ・シーケンスを伴う、ASCIIテキスト・ストリングを使用して表すことができるからである。
多くの応用例で、JPEG2000は、ロッシイ圧縮フォーマットとして使用され、これは、デコードされたイメージ・バイトが、必ずしもオリジナルのバイトと同一ではないことを意味する。明らかに、イメージ・バイトがテキストを表す場合には、ロッシイ圧縮は受け入れられない。しかし、JPEG2000の設計目標の1つは、ロスレス圧縮を効率的にサポートすることであった。というのは、これが、イメージング・コミュニティのある種のセクタ(たとえば、医療および科学)で重要であるからである。写真イメージのロスレス圧縮率は、通常は約2:1に過ぎず、視覚的に受け入れられるロッシイ・イメージと比べると、通常、それは、簡単に24:1で圧縮できる。
ロッシイとロスレスとの両方のイメージ圧縮は、よいスペース的連続性を有する(隣接するピクセルの強度値の間の差が最小化されていることを意味する)イメージに対して最もよく動作することができる。生のASCIIエンコーディングは、明らかに、この展望からは最適ではない。エンコーディングを改善する1つの非常に単純な形は、テキスト内の頻度または単純に英語における頻度によって、最高から最低へ、文字を並べかえることであり、コード0は、空のスペースのままであり、コード1は、スペース文字であり、コード2以降は、e、t、a、o、i、n、s、r、h、lなどである。図A6−2および−3で、ASCIIエンコーディングを用いるテキスト・イメージと、この種の文字頻度エンコーディングを用いるテキスト・イメージとを比較する。明らかに、ピクセル値は、0付近でクラスタ化する傾向があり、少なくとも、同様に重要なことに、ある文字と次の文字との間の差は、実質的に減らされる傾向がある。この頻度エンコードされたテキスト・イメージが、JPEG2000としてロスレスに圧縮されるときに、ファイル・サイズは、1.6MBであり、これは、生のASCIIテキスト・ファイル(1.5MB)よりわずかに大きく、ASCIIエンコードされたテキスト・イメージより37%小さい。文字エンコーディングのさらなる最適化を用いると、圧縮後のファイル・サイズを、ASCIIテキスト・ファイルサイズより十分に下まで下げることができる。さらなる最適化には、次を含めることができるが、これらに限定はされない。
単なる頻度(マルコフ−0)ではなく、エンコーディングを展開するのに文字遷移確率(マルコフ−1)を使用すること。
文字自体ではなく、ある文字と次の文字との間のデルタすなわち差をピクセルとしてエンコードすること。
これらの追加された最適化を用いると、サーバ・サイドで、この形で供給される準備ができたテキストが、生のASCIIに対して相対的に実際に圧縮されることが、前にリストした利点に追加される。
この新しい発明は、本明細書では、選択的イメージ圧縮解除テクノロジとしてのJPEG2000/JPIPのコンテクストで論じられたが、本発明に関するなにであれ、本発明をその特定のフォーマットまたはプロトコルに限定はしない。たとえば、LizardTech社のMrSIDフォーマットおよびMrSIDプロトコルは、類似するプロパティを有し、同じように機能するだろう。
(特許請求の範囲)
複数の文字のそれぞれのascii値を強度レベルにエンコードすることを備えることを特徴とする、大きいテキストおよび類似物をスペース的にエンコードする方法。
A7
(表題)仮想ブック、ウィザード、またはスライド・ショーの非線形キャッシング(NONLINEAR CACHING FOR VIRTUAL BOOKS, WIZARDS OR SLIDESHOWS)
本発明は、通常はイメージであるビジュアル・データにコンピュータによってアクセスする新規の方法に関する。本発明は、ビジュアル・コンテンツが、ある確立された順序で一時に1つまたは少数ずつビューされる一連のオブジェクトからなる、すべての情況に適用可能である。
nが1から無限大まで変化し、p>1である級数y(n)=n^−pの無限和は、有限である。同様に、y=1/b^nの和は、b>1について有限である(たとえば、後者の場合に、b=2であれば、和は正確に2である)。これらなどの収束級数の概念を使用して、本発明者が前に出願した仮出願である添付の付録Aに記載のものなど、非常に効率的な形のデータ・キャッシングを実装することができる。このデータ・キャッシングは、仮想ブック(または「e−book」)、「ウィザード」(グラフィカル・ユーザ・インターフェースの意味では、複数ステップ・プロセスを実行するための対話ウィンドウの直線的進行を意味する用語)、仮想スライド・ショー、またはビジュアル・コンテンツの時間的進行に基づく他の類似する表示に特に適用可能である。
(先行技術)
たとえば、ACD Systems社のACDSee(商標)など、一部の人気のあるイメージ・ブラウジング・アプリケーションは、「先読み」戦略および「リード・ビハインド(read−behind)」戦略を実装して、仮想イメージ・スライド・ショー中のフリッカまたは反応性の不足を回避する。これには、現在のピクチャに加えて、プレゼンテーション内の次のイメージ・ファイルおよび前のイメージ・ファイルをロードし、圧縮解除することが含まれる。ユーザがキーを押すか、タイマが満了するか、ある他のイベントがイメージの変更をシグナリングするときに、表示されているイメージが、「舞台の袖で出番を待っていた」次のイメージによって即座に置換され、続くイメージが、次の遷移の準備をするために読み取られ、デコードされる。古い前のイメージ(現在は2イメージ後ろ)は、通常はメモリから消去され、メモリ内のイメージの個数が3個に保たれる。「リード・ビハインド」は、逆に、オン・スクリーンのイメージの、前のイメージによる瞬間的な置換を可能にする。事実上、この戦略は、コンピュータを、常に次のイメージまたは前のイメージを(ユーザのフレーム進行のレートがコンピュータのイメージ・デコーディング・レートを凌駕しない限り)表示する「準備ができている」ようにする。先読みがなければ、ユーザが次のイメージを要求するときに、コンピュータは、一般に、次のイメージが読み取られ、デコードされ終えるまで反応を遅延させるか、または次のイメージがデコードされるにつれて増分的に表示を更新するかのいずれかを行わなければならず、しばしば、点滅、フリッカ、または他の気を散らす遷移がもたらされる。これらの両方の妥協することは、ユーザには煩わしい。
先読み/リード・ビハインドの欠点は、
− ユーザは、利益を除去し、遅延、反応性の欠如、またはフリッカを再導入しなければ、前後に複数イメージだけスキップすることができず、
− ユーザが、イメージを通って順方向または逆方向のいずれかに、イメージを完全に圧縮解除できるレートより素速く移動する場合に、利益がやはり除去され、
− メモリ使用量が、現在のイメージを保持するのに必要な量の3倍になる(すべてのイメージが同一サイズであると仮定して)
ことである。
(発明の詳細)
本発明は、複数分解度像に関連して先読み/リード・ビハインドの概念を拡張する。複数分解度像を、分解度のはしごで、たとえば、フル・サイズ、ハーフ・サイズ(各辺で)、1/4サイズ、1/8サイズなどで圧縮解除することができる。一般に、1/8サイズのイメージを圧縮解除するのに必要な時間は、フル分解度のそのイメージを圧縮解除するのに必要な時間の約1/8であるべきであり、もちろん、1/8サイズのイメージを保持するには、1/8のメモリが必要である。
その最も単純な例示で、本発明は、現在のイメージのメモリ内の完全な表現、次のイメージおよび前のイメージのハーフ・サイズ表現、最後の前のイメージおよび次の後のイメージの1/4サイズ表現などを維持することを含む。イメージ・サイズの両側無限和が、…+1/16+1/8+1/4+1/2+1+1/2+1/4+1/8+1/16+…=3であることは、簡単に検証される。したがって、格納要件は、普通の先読み/リード・ビハインドの格納要件と同一である。しかし、理論的には、任意の表現の「すべての」イメージ(または、数学的には、無限の個数のイメージ)は、ある分解度(おそらくは非常に低いが)で表される。実際には、有限のイメージ・サイズおよび離散的メモリは、有限の個数のイメージだけがおさまることを意味するが、この個数は、非常に大きい可能性がある。いくつかの応用例で、次のイメージだけまたは前のイメージだけをキャッシングすることが望ましい場合があり、この場合に、和は3ではなく2になる。分解度数列(resolution progression)は、関数r(i)として定義することができ、ここで、i=…,−3,−2,−1,0,1,2,3,…は、現在のイメージi=0に対する相対的なイメージ・キュー内の位置を表す(i=1は次のイメージであり、i=−1は前のイメージである)。r(0)=1であり、iが0と等しくない場合にr(i)<=1であり、絶対値|i|が増えるときにr(i)が増えないという一般的プロパティを有する他の分解度進数列も、適切である可能性がある。r(i)の和が有限の数に収束しない漸化数列であっても、適切である可能性がある。というのは、実際には、通常は無限の個数のイメージがないからである。
イメージのこのマルチ・スケール表現は、クライアントまたはビューワが、イメージを切り替えるためのユーザ要求に瞬間的に反応することを可能にするために、複数分解度レンダリング方式と結合されなければならない。そのようなレンダリング方式は、単純に、高分解度スクリーンでの表示ためにイメージのより低い分解度の表現を補間するか「アップサンプリング」する。追加のより高い分解度のイメージ・データが使用可能になるにつれて、ディスプレイは、新しいより高い品質のデータを反映するように動的に洗練されなければならない。この洗練は、瞬間的とすることができ、あるいは、低いビジュアル品質から高いビジュアル品質への遷移をマスクする漸進的ブレンディングまたは他の技法を使用して達成することができる。一般に、非常に低い分解度のイメージ・データからの補間は、ぼけた外見をもたらす。高分解度像がより低い分解度の補間された像を置換し、経時的にブレンディングされる場合に、知覚的効果は、イメージが「合焦点になる」ように見えることである。
異なるイメージへの遷移の際に、ビューワまたはクライアントは、サーバに追加データを要求するか、ファイルから追加データをロードして、新しい現在のイメージと周囲のイメージ(通常は、イメージを進行させる場合には新しい次のイメージ、逆方向にステップする場合には新しい前のイメージ)との両方の品質を改善しなければならない。不必要な高分解度データを、現在のイメージが変化するときに破棄して、総メモリのフットプリント(footprint:設置面積)を維持することもできる。
この方式は、次を含む、伝統的なルック・アヘッド/ルック・ビハインドを上回る多数の利点を有する。
− ユーザは、一時に任意の個数のイメージを前後にスキップすることができ、より大きいスキップは、単純に、新しいイメージのよりぼけた最初の外見をもたらす。
− メモリのフットプリントは、伝統的な方法より大きくはない可能性があり、関数r(i)に、よりシャープに省略する、たとえば…1/64、1/16、1/4、1、1/4、1/16、1/64…とすることによって、(必要と思われる場合には)より小さくすることもできる。
− ユーザがイメージを「フリップ・スルー」できるレートは、無制限であり、素速いフリップは、単純に、フリップ中のぼけた外見をもたらす。動いている視覚的刺激内の微細な詳細の知覚に関する心理学的限界に起因して、フリップ中のこのブラリネスの一部またはすべてが、ユーザに不可視のままになる場合もある。
拡張
前述の議論では、変化するイメージ分解度だけに言及したが、より多いまたはより少ないデータを使用してイメージを表現でき、追加データが使用可能になるときのイメージ品質の動的改善を伴う他のプログレッシブ圧縮解除方式が存在することに留意されたい。たとえば、変換ベース・コーディングでは、追加の変換係数が、品質を徐々に改善することができる。上で説明した方法は、これらのプログレッシブな(必ずしも複数分解度ではないが)方式に自然に拡張される。
上で説明した発明は、イメージの線形シーケンスに適用されるが、イメージの「グラフ」すなわち、あるイメージに(潜在的にユーザ選択によって)複数の可能な次のイメージを続けるか複数の可能な前のイメージを先行させることができるイメージのコレクションに拡張することができる。この場合に、オリジナルの関数r(i)を、1つの遷移、2つの遷移などを介して現在のイメージに続くことができるすべてのイメージに適用することができ、あるいは、イメージのセットを通る特定の「パス」に優先的に重みを付けることができ、あるいは、制約を使用して、ある割振りアルゴリズムに従って、すべての可能な先行するイメージまたは後続のイメージの間である固定された量のメモリを割り振ることができる。
最後に、前述の議論では、イメージが静的であり、あらかじめ圧縮されていると仮定したが、説明された技法のすべてが、イメージ・コンテンツが、動的に生成され、計算の出力またはプログラムもしくはアプレットのビジュアル・インターフェースを表す情況において、同等に適用可能である。この場合に、計算、プログラム、またはアプレットは、大きいまたは小さい「仮想ディスプレイ」に、すなわち異なる分解度で、それ自体をレンダリングする(あるいは、ある非ピクセル表現を使用して、変化する度合でより粗くまたはより微細にそれ自体をレンダリングする)ことができなければならない。この場合、複数のイメージと同様に、プログラムがそれ自体を1/4サイズでレンダリングするのに要する時間は、フル・サイズでレンダリングするのに要する時間の約1/4であることになる。
(特許請求の範囲)
イメージをキャッシングすることを備え、キャッシングする前記ステップは非線形であることを特徴とする方法。
A8
(表題)多数の、潜在的に大きいイメージを有するリモート写真アルバムを動的に、効率良く対話する方法(METHOD FOR EFFICIENTLY INTERACTING WITH DYNAMIC, REMOTE PHOTO ALBUMS WITH LARGE NUMBERS OF POTENTIALLY LARGE IMAGES)
JPEG2000/JPIP1などの最近開発されたイメージ圧縮標準規格およびイメージ伝送標準規格は、狭帯域幅通信チャネルを介する大きいイメージ(すなわち、サイズにおいてギガ・ピクセル)の対話型表示を可能にした。しかし、これらの新生の標準規格およびテクノロジは、より曖昧な目標を達成する明白な手段すなわち、それぞれが潜在的に非常に大きい場合もある非常に多数のイメージとの柔軟な視覚的対話を同時に可能にする明白な手段を提供しない。本発明は、そのような対話を可能にする。次のシナリオは、本システムの技術的能力を具体的にすると同時に、本テクノロジによって可能にされる応用例の一部を説明する。
<1>David TaubmanのKakadu、www.kakadusoftware.comの実装を参照。TaubmanはJPEG2000 ISO標準委員会にいた。
シナリオ#1a。あるユーザが、ディジタル写真(それぞれ5メガ・ピクセル)のコレクション全体をそのユーザのノートブック・コンピュータのハード・ドライブ上に保持する。このユーザは、熱心な写真家であり、数年後に、このコレクションは、合計25000個のイメージになる。このユーザは、本発明を使用してコレクション全体を編成し、データ、サイズ、色、または他のプロパティによって写真をソートするために写真を動的に再配置することができ、サブセットを抽出する。コレクション全体を見るときに、このユーザは、写真のすべてがビューに入るまで、滑らかに連続的にズーム・アウトすることができ2、単一の写真の詳細を見るためにズーム・インすることができ、あるいは、任意の中間ビューまでズームすることができる。
<2>ディスプレイが、高分解度(1920×1200=2.3メガ・ピクセル)であると仮定すると、25000個のイメージのコレクション全体を同時に見ることは、1イメージあたり約92個の正方形ピクセルを与え、したがって、各「サムネイル」は、1辺が約sqrt(92)=9.6ピクセルである。驚くべきことに、これらの非常に小さいサムネイルですら、しばしば、イメージの人物を連想させることができ、最小限でも、類似する色域または色構成を有するシリーズからのイメージは、明らかに識別可能である)
シナリオ#1b。シナリオ#1aのユーザは、そのユーザのホーム・コンピュータをサーバとして構成し、その後、シナリオ#1aと全く同様に、リモート・クライアント・コンピュータからその写真コレクション全体をナビゲートすることができる。
シナリオ#2a。ある美術館が、その絵画(100メガピクセル以上)のすべての高分解度スキャンに投資し、記述的な説明文と共に空間的に編成された、これらの絵画のうちの数十点または数百点を特集したオンライン展示を企画する。本発明を使用すると、この展示品にその美術館の中からローカルにアクセスできるだけではなく、低帯域幅コネクションを介してこのコレクションをブラウズするリモート・ユーザさえもが、シナリオ#1aおよび#1bと全く同様に、パンし、ズーム・インし、またはズーム・アウトして、素材(material)をナビゲートすることができる。
シナリオ#2b。その美術館は、3Dモデル内の「地理的に正しい」位置に芸術作品のすべての高分解度スキャンを備えた、その美術館の建物を表す仮想3次元スペースを作成する。あるいは、3次元美術館仮想スペースを、物理的対応物なしで作成することができる。これらの3Dモデルを、シナリオ#2aの2Dバージョンに似た形で、ローカルに、
またはリモートに、のいずれかで、ナビゲートすることができる。ズーム・インという2次元動作の類似物は、イメージ表面のより近くに移動することであり、ズーム・アウトは、イメージ表面から離れて移動することに類似する。
シナリオ#2c。その美術館は、非常に高い分解度でその14世紀の時祷書をもスキャンし、100メガピクセル超の数百個のイメージを作る。これらは、オンラインで使用可能な「仮想ブック」すなわちオリジナルの高品質代用物に組み立てられる。このブックを、3次元でめくることのできるページを用いて、ローカルにまたはリモートにナビゲートすることができる。
本発明を使用可能にすることに関連する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)が使用可能でない場合がある。
たとえば512×512イメージの256×256分解度からの32×32ピクセル・セクションなど、所与の分解度のイメージの一部分(「関心領域」またはROIと呼ばれる)だけを選択的に圧縮解除する能力。
このマルチ・スケール選択的圧縮解除をサーバ上で効率的に実行し(すなわち、イメージ・ファイル全体を解析はせずに)、関心領域および関心を持たれている分解度を再構成するのに限られた量の必要な情報だけをリモート・クライアントに供給する能力。送信される情報の量は、ROIのサイズにほぼ比例しなければならない。
これらの要件を満足するすべての他のイメージ圧縮フォーマット/プロトコルは、同等に適切であるはずである。本明細書では、イメージ・フォーマットを、JPEG2000のようにウェーブレット・ベースとするか、他のテクノロジに基づくものとすることができることの理解の下で、イメージ・フォーマットを単に「マルチ・スケール」と称する。
本発明は、上でリストしたシナリオを実装するためにさまざまな構成で使用できる、事前計算されるステップ(pre−computed steps)と対話型レンダリング・アルゴリズムとを定義する。これらのシナリオのすべてが、イメージの「ユニバース」とのユーザ対話を伴い、したがって、事前計算の開始ポイントは、ファイル名、URL、または個々のイメージを参照する他のストリングのリストである。ユーザが、これらのイメージのすべてを同時に見るのに十分にズーム・アウトするときに、クライアントまたはサーバのいずれかがすべてのイメージ・ファイルをトラバースすることは、非常に多数のイメージ・ファイルがある場合があるので、非実用的である。たとえば、個々のイメージがオン・スクリーンの2×2=4ピクセルを占める体制では、数千個のイメージのうちの数十個または数百個がビュー内にある場合があるが、これらのイメージが効率的な低分解度アクセスをサポートする場合であっても、単に100000個のファイルをオープンし、クローズすることは、大きいオーバーヘッドを伴い、対話的なタイム・スケールで達成することはできない。したがって、「モンタージュ」と呼ばれる、これらのイメージの低分解度バージョンのキャッシングされた表現を使用することが必要である。モンタージュは、図A8−1に示されているように、低分解度でレンダリングされ、四辺形領域に効率的に詰め込まれた、すべてのイメージのモザイクまたはコラージュである。モンタージュ・イメージ・ファイルに埋め込むか別々に格納することができる補助メタデータが、特定のイメージ・ファイルに伴うモンタージュ・イメージ上の四辺形領域を識別する。
本発明の最も単純な実装では、モンタージュ・イメージ自体を、ズームおよびパンのインターフェースを使用してナビゲートすることができる。ユーザが、モンタージュ・イメージ内で使用可能な分解度を使い果たすのに十分にズーム・インするときに、メタデータは、クライアントに個々のイメージ・ファイルを参照させ、クライアントは、これらからの像(imagery)を使用して、より高い分解度でレンダリングする。ピクセル単位の総モンタージュサイズは、少数のイメージだけが同時に可視である段階でのズーム・イン中に限ってその分解度が使い果たされるように選択され、したがって、一時に少数以上のイメージにアクセスする必要は、絶対にない。後続のズーム中およびパン中には、イメージ・ストリームは、任意の所与のときにオープンされる個数を制限するために、必要に応じてオープンされ、クローズされる。
高分解度の多数のイメージをナビゲートするこの最も単純な手法は、大きい障害をこうむる。すなわち、モンタージュ・レイアウトは、詰込み効率のために設計されるが、ユーザは、オン・スクリーンの異なるビジュアル配置を望む場合がある。さらに、ユーザは、スクリーン上のイメージのレイアウトを動的に再配置できることを望む場合がある。これを可能にするために、「テクスチャ・マッピング」と称するグラフィックス・レンダリング技法を利用することができ、このテクスチャ・マッピングは、ソフトウェアで実装することができるが、一般に、現代のパーソナル・コンピュータではハードウェア・アクセラレートされる。テクスチャ・マッピングは、「テクスチャ」またはソース・イメージの一部をディスプレイに描き、任意選択としてイメージを再スケーリングし、回転し、3次元透視変換(three−dimensional perspective transform)を実行することを可能にする。他のハードウェア・アクセラレーテッド変換が、しばしばサポートされ、これには、色訂正または色変更、完全な透明性または部分的な透明性、照明、オクルージョン、および座標再マッピングが含まれる。モンタージュの低分解度バージョンを、「テクスチャ」として使用することができ、その結果、ユーザがズーム・アウトしたときに、モンタージュ内の個々のイメージを、図A8−2に示されているように、任意の形で動的に再マッピングすることができる。複数のテクスチャ・マップを使用することができ、その場合に、各テクスチャ・マップを、イメージのサブセットを含むモンタージュとすることができる。
もう1つの機能強化された実施形態では、テクスチャ・マッピング技法(一般に、1つまたは複数のモンタージュ・イメージの低分解度レンディションだけに適用可能である)を、動的再配置中にのみ使用することができる。イメージ配置が静的であるときに、ソフトウェア合成を使用して、オン・スクリーンのより高精細度の再配置されたモンタージュのすべてまたは一部を組み立てることができる。このソフトウェア合成方法は、その写しが、別紙A10として、US特許出願番号10/790,253に記載されたレイジイ複数分解度レンダリング技法(lazy multi−resolution rendering techniques)と共同して特に貴重である。この方法は、事実上、オリジナルのモンタージュの像を再配置することによって新しい「ディスプレイ・モンタージュ」を作成する。
この種のモンタージュ再配置を使用して、テクスチャ・マッピングに頼らずにイメージの再編成をサポートすることが可能である。この場合に、配置の間の遷移は、アニメーション付きとしても、そうしなくてもよい。
さらなる拡張
テクスチャ・マッピング、ソフトウェア・レンダリング、またはこの2つの任意の組合せを使用して、平面ではなく3次元で像(imagery)をレンダリングすることができる。3次元での動的再配置も可能である。3次元応用例に、特に本出願人によって本願と同時に出願された、別紙Bとして本明細書に添付された同時係属の仮出願に記載の発明と共同して使用されるときの、仮想ギャラリまたは他のウォーク・スルー環境ならびに仮想ブックが含まれる。仮想ブック応用例を、図A8−3に示す。この例には、部分的透明性(粗いエッジ)のためのアルファ・チャネルが、赤、緑、および青の色成分に加えてイメージ情報として格納される、本方法の拡張も示されている。ハードウェア・アクセラレーテッド・テクスチャ・マッピングのほとんどの実装は、アルファ・チャネルをサポートする。2Dまたは3Dのいずれかで適用可能なもう1つの拡張は、たとえばこのブックのページがめくられるときにそのページを曲げることなど、イメージの動的変形である。
本発明は、ビジュアル計算またはアプリケーションもしくはアプレットの出力など、静的イメージ以外のビジュアル・オブジェクトをサポートするように拡張することもできる。
(特許請求の範囲)
動的再配置中にテクスチャ・マッピングを実行すること、および当該動的再配置が停止するとテクスチャ・マッピングの実行を停止することを備えることを特徴とする方法。
A9
(表題)イメージとして地理空間(geospatial)データまたは他のベクトル・データをエンコードし、供給する方法(METHOD FOR ENCODING AND SERVING GEOSPATIAL OR OTHER VECTOR DATA AS IMAGES)
最近、JPEG2000/JPIP1(などのイメージ圧縮標準規格が、要求の厳しいエンジニアリング目標を満足するために、すなわち、非常に大きいイメージ(すなわち、サイズにおいてギガ・ピクセル)をサーバからクライアントへ低帯域幅通信チャネルを介して増分的にまたは選択的に配信することを可能にするために、導入されてきた。そのようなイメージが、フル分解度で見られているときには、限られた領域だけが、任意の所与のときにクライアントのグラフィカル・ディスプレイにおさまることができる。これらの新しい標準規格は、そのような領域に選択的にアクセスすること、およびその領域に関連するデータだけを通信チャネルを介して送信することを対象とする。この「関心領域」すなわちROIが、連続的に変化する場合に、クライアントとサーバとの間の低帯域幅チャネルを介する連続的対話が、ROIの内側の領域のクライアントの表現を正確に保つために継続される可能性がある。
<1>David TaubmanのKakadu、www.kakadusoftware.comの実装を参照。TaubmanはJPEG2000 ISO標準委員会にいた。
本発明は、これらの選択的に圧縮解除除可能なイメージ圧縮テクノロジおよびイメージ伝送テクノロジの地理空間データまたは概略データ(schematic data)への拡張に関する。本発明は、(1)別紙A6として添付されたMethod for spatially encoding large texts, metadata, and other coherently accessed non−image dataおよび(2)別紙A12として添付されたMETHODS AND APPARATUS FOR NAVIGATING AN IMAGEの以前の特許出願で導入された方法を組合せ、拡張する。(2)では、連続的マルチ・スケール道路地図レンダリングの概念が、導入された。(2)の発明の基礎は、異なる分解度の道路地図または他のベクトル・ベースの図のイメージの事前にレンダリングされた「スタック」であり、このスタックでは、ビジュアル要素のカテゴリ(たとえば、国道、州道、および地方道路を含む道路の等級)が、異なる分解度で異なる視覚的重みを用いてレンダリングされる。クライアント/サーバ対話中に、これらのイメージのうちの複数のイメージの対応する領域が、ダウンロードされ、クライアントのディスプレイは、これらの領域のブレンディングされた組合せを示し、ブレンディング係数およびブレンディングされるイメージ分解度の選択は、ズーム・スケールに依存する。正味の結果は、クライアント・サイドのユーザが、連続的にズームし、パンしながら、大きい地図(たとえば、米国のすべての道路)をナビゲートでき、ズーム・スケールが変更されるときに道路のカテゴリが現れる、または消えるなどの視覚的不連続性を一切体験しないことである。そのような不連続性ではなく、すべてのスケールで、最も関連するカテゴリが、強調され、たとえば、国全体を見るためにズーム・アウトされるときに、最大級の主要道路が、強く重みを付けられ、明瞭に目立つようにされ、州レベルでは、二級主要道路も、明瞭になるのに十分に強く重みを付けられる。ユーザが、最も詳細な事前レンダリングされたイメージが使用されているポイントまでズーム・インしたときには、すべての道路が、明瞭に可視であり、地理空間データの好ましい実施形態では、すべての要素が、その物理的に正しいスケール(縮尺)の近くで示される。これらの最も詳細な事前レンダリングされたイメージの最大の穏当な分解度は、約15メートル/ピクセルとすることができるが、ユーザの観点からは、さらにズーム・インできることが望ましい。より高い詳細での事前レンダリングは、次の複数の理由から望ましくない。第1に、サーバ・サイドのファイル・サイズが極端に大きくなる(15メートル/ピクセルの単一のユニバーサル横メルカトル(UTM)ゾーン・イメージは、既にギガ・ピクセル範囲に含まれる可能性がある)からであり、第2に、事前レンダリングされたイメージは、高分解度地図レンダリングに通常関連付けられた種類の非常に疎な白黒データの非効率的表現であるからであり、第3に、クライアントが、静的ビジュアル表現を超えた計算タスクを実行するために「実際の」ベクトル・データを必要とする場合があるからである。たとえば、経路案内システム(route guidance system)は、ある道路を強調表示するか、その色を変更することができ、これは、クライアントが、事前レンダリングされたイメージだけとは対照的に、ベクトル・データにアクセスできる場合に限って、クライアント・サイドで行うことができる。ベクトル・データには、道路名、住所、および選択的にレイアウトし、レンダリングする柔軟性をクライアントが有しなければならない他の情報、も含まれる場合がある。街路名ラベルを地図イメージ・スタックに事前レンダリングすることは、明らかに望ましくない。というのは、これらのラベルが、クライアント・ビューの正確な位置およびスケールに応じて、異なる場所に異なるサイズで描かれなければならないからであり、ユーザがズームするときに、異なるラベル・レンディションを互いにブレンディングしてはならないからである。そのようなデータの事前レンダリングは、フォントに関する柔軟性もすべて除去するはずである。
要約すると、ベクトル・データ(本明細書では、この用語は、幾何情報と、場所の名前などの他の情報との両方を包括的に指すのに使用される)は、両方ともクライアント自体にとって重要であり、また、望まれる分解度が高いときに、事前レンダリングされた像よりも、より効率的な情報の表現である。しかし、大きい領域が低分解度でレンダリングされる場合には、ベクトル・データが、極端に大きく複雑になり、事前レンダリングされたイメージがより効率的な表現になる場合があることに留意されたい。しかし、低分解度であっても、主な主要道路の名前など、ベクトル・データについての幾つかのサブ・セットが必要である。
本発明は、(1)で導入された方法を拡張して、おそらくは(2)の事前レンダリングされた像と共に、スペース・ベクトル・データを選択的に増分式にエンコードし、クライアントに送信することを可能にする。従来技術を使用すると、これは、地理空間データベースを使用して達成されることになる。このデータベースは、スペース的にインデクシングされた、すべての関連するベクトル・データを含む必要があることになる。そのようなデータベースは、多数の実装の課題を提示する。本発明では、普通のデータベースを使用するのではなく、JPEG2000/JPIPによってサポートされるものなどのスペース的にアドレッシング可能なイメージを使用して、ベクトル・データをエンコードし、供給する。
本明細書の例示的実施形態では、次の3つのイメージまたはチャネルが、それぞれ8ビット深さの地図データを表すのに使用される。
事前レンダリング済みレイヤは、(2)による、道路地図の事前計算された正確なレンディションであり、
ポインタレイヤは、通常は交差点である、それが参照する道路地図地物(roadmap features)にまたはその非常に近くに位置決めされた2*2ピクセルのブロックからなり、
データ・レイヤは、それらを参照する2*2個のポインタを中心とするかその近くに位置決めされたn*mピクセルのブロックからなる。
この3つのチャネルは、等しいサイズを有し、互いに位置決めされているので、単一のカラーイメージを作るために異なる色(コンピュータ・ディスプレイでは赤、緑、青、あるいは、印刷媒体についてはシアン、マゼンタ、イエロー)でオーバーレイすることができる。そのようなイメージが、図A9−2〜−3に再現されている。図A9−1は、比較および位置付けのために、事前レンダリング済みレイヤだけを示す。示されている領域は、米国ワシントン州キング郡であり、シアトルおよびその多数の近郊住宅地区を含む。図A9−3aおよび−3bは、それぞれこの地図の近郊区域および都市区域からのクローズアップである。
ユーザが、図A9−3aに示された地図のビューにナビゲートする場合に、クライアントは、サーバに、図示の3つのイメージ・レイヤの関連部分を要求する。事前レンダリング済みレイヤ(イエローで図示)は、この3つのうちで、そのままでスクリーンに表示される唯一のレイヤである。他の2つは、ベクトルデータを指定する。ポインタ・イメージは、2×2ピクセルグリッドに位置合せされた2×2ピクセルのブロックからなり、このブロックのそれぞれは、それ自体の位置からデータ・レイヤ内の対応するデータ・ブロックの先頭(左上角)までの(x,y)ベクトル・オフセット(ベクトルのx成分およびy成分のそれぞれは、16ビット整数を含み、したがってそれぞれ2ピクセルである)を指定する。対応するデータ・ブロックは、データ・ブロックの幅および高さを指定する2つの16ビット値(4ピクセル)から始まる。幅が、まず指定され、少なくとも2になるように制約され、したがって、幅および高さの読取での曖昧さが回避される。データ・ブロックの残りは、ベクトル、テキスト、または他の情報の任意の組合せを含むことができるバイナリ・データとして扱うことができる。図A9−2〜−3の例では、データ・ブロックは、市街地図情報を含み、この市街地図情報は、街路の名前、住所の範囲、およびベクトル表現を含む。
ポインタ・レイヤおよびデータ・レイヤは、事前レンダリング済みレイヤが事前計算されるのと同様に事前計算される。ポインタ・レイヤおよびデータ・レイヤの事前計算は、関連するベクトル・データのすべてをデータ・ブロックにエンコードすること、およびポインタとデータ・ブロックとの両方をできる限り効率的にそのそれぞれのイメージ内に詰め込むことからなる。田舎の、またはまばらな近郊区域(図A9−3aを参照されたい)では、地物(features)が、明確に分離される傾向があり、ポインタ・イメージおよびデータ・イメージ内の大きい空白領域がもたらされる。ポインタが発生する場合には、ポインタは、それが参照する地物(features)に正確に乗り、それに対応するデータ・ブロックは、しばしば、正確にそのポインタを中心とする。しかし、密な都市区域(図A9−3bを参照されたい)では、地物(features)は、しばしば、ポインタおよびデータ・ブロックのすべてがおさまるには近すぎる。したがって、四辺形詰込みアルゴリズムを使用して、ポインタおよびデータ・ブロックを、オーバーラップなしでその所望の位置のできる限り近くに置くことを試みることが必要である。その結果は、図A9−3bで明白であり、シアトル付近の池および海岸は、地上の地物(features)に対応するデータブロックで満たされている。すべての都市区域が、よりまばらな区域(近郊住宅地区、山、または水域)によって囲まれているので、都市データブロックを地図上のどこかに配置することは、必ず可能であり、一般に、密な都市の中であっても、この「あふれだし」が過度に深刻ではない十分な空のスペースがある。あふれだしの割合が高いほど、地図ベクトルデータは、より悪く局所化されるようになる。あふれだしは、データレイヤ・イメージの分解度が高められるときに劇的に減少し、効率および非局所性が適当にバランスをとられる分解度を見つけることは、必ず可能である。北米では、15m/ピクセルが、よい選択であると思われる。これは、田舎区域では「やりすぎ」であるが、都市付近では、これが、図A9−2および−3bに示されているようにあふれだしを制限する。
効率的な四辺形詰込みは、計算的に難しい問題ではあるが、計算幾何の文献に、これを解くための多数の近似アルゴリズムがあり、本発明は、これらのうちのどの特定の1つをも明記しない。実際に使用されるアルゴリズムは、階層「四辺形ツリー」を用いるが、これは、次の動作を高速にする。
・所与の四辺形が既にそのツリーに含まれる他の四辺形のいずれかと交差するかどうかをテストする、
・オーバーラップしない四辺形を挿入する、
・ターゲット・ポイントpの周囲の半径r0<=r<r1のリング内の「空のコーナー」(すなわち、空のスペースに接する既に挿入されている四辺形に接するコーナー)の完全なセットを見つける。
ターゲット・ポイントのできる限り近くに新しい四辺形を挿入するのに使用される「グリーディ・アルゴリズム(greedy algorithm)」は、次のように進行する。
・ターゲット・ポイントを中心とする四辺形の挿入を試みる。これが成功する場合には、アルゴリズムは終了する。
・そうでない場合には、四辺形の長さまたは幅の最小値の半分になるように半径r0を定義し、r1=r0*2と定義する。
・r0とr1との間のすべての「空のコーナー」を見つけ、増加する半径によってソートする。
・これらのコーナーのそれぞれに次々と四辺形を置くことを試み、成功の際には、アルゴリズムは終了する。
・試みられた挿入のどれもが成功しない場合には、r0にr1をセットし、r1に2*r0をセットし、ステップ3に進む。
このアルゴリズムは、イメージ内のどこかに少なくとも正しい寸法の空のスペースが存在するならば、最終的に四辺形を置くことに必ず成功する。このアルゴリズムは、一時に単一の四辺形を置き、できる限り効率的にn個の四辺形を詰め込むという全体的論問題を解くことは試みないという意味で「貪欲(greedy)」である(全体論的アルゴリズムは、詰込み効率の明示的尺度の定義、ならびに無駄にされるスペースの最小化と、四辺形とその「ターゲット・ポイント」との間の距離の最小化との間の所望のトレード・オフの指定を必要とするはずである。グリーディ・アルゴリズムは、上のアルゴリズムの説明から明瞭であるように、このトレードオフを明示的に指定することを必要としない)。
図A9−4に、3つの場合に関する基本的な詰込みアルゴリズムの出力を示す。それぞれの場合で、このアルゴリズムは、複数の四辺形を共通のポイントのできる限り近くに連続して置いた。四辺形詰込み問題に対するこの解は、例としてのみ提供される。
貪欲な詰込みアルゴリズム(greedy packing algorithm)が地図のどの特定の区域をも優先しないようにするために、四辺形挿入の順序をランダム化することが望ましい。したがって、好ましい実施形態では、ポインタ/データ・ブロック対が、ランダムな順序で挿入される。他の順序付けが、ある種の情況で詰込み効率をさらに改善する場合があり、たとえば、小さいブロックの前に大きいブロックを挿入することによって、無駄にされるスペースを最小にすることができる。
ポインタは、必ず2×2である(本明細書の表記は、行(row:縦)×列(column:横)である)が、データ・ブロックについては、アスペクト比選択における自由があり、正方形ピクセル単位の必要なブロック面積は、そのブロックにおさめなければならないデータの量によって決定されるが、この面積は、多数の異なる形状の四辺形におさまる可能性がある。たとえば、24バイトのデータブロック(4バイトの高さおよび幅情報と、20バイトの任意データとを含む)は、正確に1×24、2×12、3×8、4×6、6×4、8×3、または12×2として表すことができる(上で説明したように、ブロック寸法がクライアント・サイドで既知になる前に2バイト幅をデコードするためにブロック幅が少なくとも2でなければならないので、24×1は、失格にされる)。このブロックは、1バイトを使い残して、5×5として表すこともできる。本明細書では、近似因数分解5×5に加えて、上でリストしたすべての因数分解の集合を、「シーリング因数分解(ceiling factorizations)」と称する。有効なシーリング因数分解の要件は、その面積が、少なくとも要求された面積であること、およびどの行または列も完全には無駄にされないことである。たとえば、7×4または3×9は、それぞれ6×4および3×8に縮小できるので、無効なシーリング因数分解である。最も単純な実装では、ブロック寸法を、データ長のシーリング因数分解だけに基づいて選択することができるが、一般に、「より正方形の」ブロック(4×6など)は、不等辺のブロック(2×12など)よりもよく詰め込まれる。したがって、最も単純なブロックサイズ決定アルゴリズムは、無駄にされるバイトに対して「正方形への近さ(squareness)」をどのようにトレード・オフするかに応じて、4×6または5×5のいずれかを選択することになる。より洗練されたブロックサイズ選択アルゴリズムは、ターゲットポイントの近くでの空のスペースの検索の一部として、適応式にブロック寸法を選ぶことができる。1つの実装では、上述のアルゴリズムのステップ1および4が、次のように変更される。
より正方形に近い因数分解を優先し、おそらくは無駄にされるバイトに関するペナルティを伴って、望ましさによって、必要なデータ長のシーリング因数分解をソートする。各シーリング因数分解によって与えられる寸法の四辺形を、順番にターゲット・ポイントpに置くことを試みる。これらの挿入のいずれかが成功する場合に、アルゴリズムは終了する。
…
「空のコーナー」cのそれぞれについて、順番に、シーリング因数分解のそれぞれによって与えられる寸法の四辺形を順番にcに置くことを試みる。成功の際にはアルゴリズムが終了する。
このアルゴリズムのさらなる洗練は、挿入に関するスコアリング関数の指定を伴い、このスコアリング関数は、全体論的最適化関数と同様に、無駄にされるスペースと、非正方形アスペクト比と、ターゲット・ポイントからの距離とをトレードオフする。
3つの地図レイヤ、すなわち事前レンダリング済み道路、ポインタ、およびデータのそれぞれが、JPEG200表現または類似するスペース的にアクセス可能な表現として格納される。しかし、この3つのレイヤの格納要件は、異なる。事前レンダリング済み道路レイヤは、ロスレスである必要はなく、表示されるときに適度な知覚的正確さを有することだけが必要である。15m/ピクセルでは、0.5ビット/ピクセル・ロッシイ・ウェーブレット圧縮が十分に適当であることがわかっている。しかし、ポインタ・レイヤおよびデータレイヤは、ロスレスに表現されなければならない。というのは、これらのレイヤに、クライアントが正確に再構成できなければならないデータが含まれるからである。ロスレス圧縮は、通常は、非常に効率的ではない。たとえば、通常のディジタル像は、通常、最善でも約2の因数を超えてロスレスに圧縮はされない。
ロッシイ圧縮またはロスレス圧縮のいずれかのほとんどの形について、イメージ関数の大きさを小さくし、したがってより少ない有意ビットを使用するようにすることによって、性能を最適化することができる。したがって、機能強化された実施形態では、オリジナル・データを「平坦化する」ために、特殊なコーディング技法が使用される。これらの技法の結果は、図A9−5で明白であり、図A9−5には、「平坦化」の前後の、データ・イメージの同一の人口稠密領域が示されている。平坦化の前に、データ・イメージが、フル8ビットダイナミック・レンジを有し、高い周波数および構造化されたパターンを示し、これらが、このイメージを非常に悪く圧縮させる(実際に、このイメージのロスレスJPEG2000は、オリジナルの生のサイズより小さくはない)ことに留意されたい。「平坦化」の後には、構造のほとんどが消え、ピクセルの大多数は、8未満の値を有し、したがって、3ビットにおさまる。対応するJPEG2000は、3:1より高い圧縮を有する。「平坦化」は、次を含む複数の単純なデータ変換からなるものとすることができる(これは、図A9−5の例に適用された変換の完全なリストである)。
データ・ブロックの幅または高さなどの「16ビット符号なし値」は、通常は、上位バイトおよび下位バイトを使用してエンコードされる。値が、時々不特定の量だけ255(8ビット限界)を超えるので、16ビットが必要となる可能性があるが、それでも、大多数の場合に、値は小さい。8ビットにおさまる値について、上位バイトは0になる。頻繁な0上位バイトとそれに続く大きい下位バイトは、図A9−5aの諸部分で明白な2ピクセル周期性の多くを説明する。16ビットを、次のように再マッピングすることができる。
左の8列は、対の第1ピクセルすなわち以前の上位バイトを表し、右の8列は、第2ピクセルすなわち以前の下位バイトを表す。ビットをこの形で再配分することによって、アクセス可能な値の範囲(0〜65535)は変化しないままになるが、この2つのバイトがはるかに対称になる。たとえば、すべての16ビット値0〜255について、この2つのバイトのそれぞれが、16未満の値をとる。
類似する技法が、32ビット以上の整数値に適用される。これらの技法は、符号付きの量にも拡張可能である。道路ベクトルの差分コーディングについて発生する、符号が頻繁に変化する変数について、符号ビットを、位置0に割り当てることができ、絶対値を、上のように交番するバイトでエンコードすることができる。説得力のある形で描かれるために、道路ベクトル・データが、しばしば、ピクセル精度を超える精度で表現されなければならないことに留意されたい。1ピクセルより小さい任意の単位を、その代わりに使用することができ、あるいは、これと同等に、上の技法と共同して、固定小数点を使用してサブピクセル精度を実装することができる。本発明の例示的実施形態では、1/16ピクセル精度のために、4つのサブ・ピクセル・ビットが使用されている。
数が上で説明したようにエンコードされるときには、数をできる限り小さくすることが望ましい。時々、コンテクストが、これを行う明白な形を暗示し、たとえば、すべてのデータ・ブロックの幅は、少なくとも2でなければならないので、本発明者は、エンコーディングの前にデータから2を引く。より重要なことに、ポインタとデータ・・ブロック内でエンコードされるすべての位置ベクトルとの両方が、絶対座標ではなくポインタ位置に対して相対的にピクセル単位で指定される。これは、エンコードされる数の大きさを大幅に減らすだけではなく、データ・イメージの一部分を、この部分の絶対位置に関わりなくローカル座標系でベクトル的にデコードし、レンダリングすることをも可能にする。
曲線(たとえば、道路の)を定義するポイントのシーケンスのベクトル・レンダリングについて、最初のポイントだけが、オリジナルのポインタ位置に対して相対的に指定される必要があり、後続のポイントは、「デルタ」すなわち前のポイントからのステップ・ベクトルとしてエンコードすることができる。第2のそのようなポイントの後に、後続のポイントは、二次導関数すなわち現在のデルタと前のデルタとの間の差としてエンコードすることができる。二次導関数を使用するエンコーディングは、一般に、道路などの構造に効率的である。というのは、これらの構造が、導関数の連続性を有する曲線の離散化である傾向がある、すなわち、方向を漸進的に変更するからである。
もう1つの「平坦化」技法が、テキスト・データと共に使用することに関して[1]に記載されており、このテキスト・データは、1バイトあたり単一文字で、通常はASCIIとしてエンコードされる。[1]に記載の応用例では、英語テキストがエンコードされており、したがって、文字は、英語の代表的サンプルでの文字出現の減少する頻度に基づいて再マッピングされる。同一の技法を、このコンテクストで使用することができるが、地図内のエンコードされるテキストは、ほとんどが道路名からなり、普通の英語とは非常に異なる統計を有する。たとえば、数字および大文字が、はるかに顕著である。
上で提示したポインタまたはデータのエンコーディングの特定の方法が、例示であり、多数の他のエンコーディングも可能であることに留意されたい。「よい」エンコーディングは、一般に、滑らかであり、かつ/または低いダイナミック・レンジを有するイメージをもたらす。
上の技法を使用すると、15m/ピクセルのキング郡道路地図は、次のように圧縮される。
驚くべきことに、JPEG2000表現(ロッシイ事前レンダリングされた道路地図イメージ、ロスレス・ポインタ・レイヤ、およびロスレス・データ・レイヤを含む)は、実際に、表にされたテキストとしてのオリジナル・データを表す圧縮ZIPファイル(このファイルは、米国勢調査局の2002年TIGER/Lineデータベースの一部である)より小さい。しかし、オリジナルZIPと異なって、新しい表現は、クライアントに対話的に供給される準備ができており、連続的にパン可能かつズーム可能なスペース的アクセスの効率的サポートを伴う。
[2]で導入されたオリジナルのプリレンダリングされたマルチ・スケール地図の発明は、単一の事前レンダリングされたイメージではなく、線(または他の可視機能)の再スケーリングされた重みを伴う、徐々により粗い分解度でレンダリングされたそのようなイメージのスタックを含んだ。これらのレンディションのどれからも機能は省略されないが、いくつかの機能は、たとえば都市の地方道路が州全体のレベルでかすかな灰色のぼけになるなど、集約の意味でのみ明瞭に可視になるのに十分に強調するのをやめられる。本発明を、オリジナルのベクトル・データのサブセットだけが表される、より粗い事前レンダリングされた道路地図イメージに対応するポインタ・イメージおよびデータ・イメージを含むように拡張することができる。たとえば、州全体のポインタ・イメージおよびデータ・イメージは、図A9−1〜−3のイメージよりはるかに低い分解度であるが、すべての地方道路を除外して、州道および国道のデータだけを含む場合がある。これらのより粗いデータは、たとえばベクトルではなく道路名だけを指定する、「要約」とすることもできる。異なる分解度のデータは、オリジナル・データの変化する混合物またはサブセット、あるいは要約されたバージョンを含むことができる。この技法は、関連するデータのすべてをより小さい粗いイメージにおさめることを可能にすると同時に、そのスケールでのナビゲーションに関連するベクトル情報のサブ・セットをクライアントに与える。
上で概要を示した実装は、すべての分解度での8ビット・グレイ・スケール事前レンダリング済み地図イメージを提案するが、事前レンダリングされるイメージを、カラーにすることもできる。さらに、事前レンダリングされるイメージが単一チャネルイメージである場合であっても、それらのイメージをクライアントによってカラーで表示することができる。というのは、ベクトル・データを使用して、事前レンダリングされた材料と異なる色で重要な道路を描くことができるからである。最後に、事前レンダリングされるイメージは、クライアントがイメージとベクトリアル材料を適当に合成することに頼って、ベクトリアル・データ内に存在するある種の機能または道路を省略することができる。
(特許請求の範囲)
四辺形詰込みおよびJPEG表現を使用することを特徴とするイメージをコーディングする方法。
A10
APPLICATION FOR LETTERS PATENT
FOR
SYSTEM AND METHOD FOR EXACT RENDERING IN A ZOOMING USER INTERFACE
BY
BLAISE HILARY AGUERA Y ARCASKaplan & Gilman, LLP
Attorny No. 489/2
A10
(表題)ズーミング・ユーザ・インターフェースにおける正確なレンダリングのためのシステムおよび方法(SYSTEM AND METHOD FOR EXACT RENDERING IN A ZOOMING USER INTERFACE)
(関連出願)
本願は、2003年3月5日に出願した米国特許仮出願第60/452075号(A1)、2003年3月12日に出願した米国特許仮出願第60/453897号(A2)、2003年6月5日に出願した米国特許仮出願第60/475897号(A3)、および2003年5月30日に出願した米国特許仮出願第60/474313号(A4)の優先権を主張するものである。
(発明の分野)
本発明は、全般的にはコンピュータのグラフィカル・ズーミング・ユーザ・インターフェース(ZUI:zooming user interface)に関する。より具体的には、本発明は、計算的に効率的である(よいユーザ反応性および対話的フレーム・レートをもたらす)こと、ならびにベクトル・ドローイング、テキスト、および他の非写真コンテンツが最終的に再サンプリングなしで(再サンプリングは、通常はイメージ品質の劣化につながることになる)、他のイメージの補間なしで(これも劣化につながることになる)描かれるという意味で正確であることの両方である形で、ズーム可能ビジュアル・コンテンツをプログレッシブにレンダリングするシステムおよび方法である。
(発明の背景)
ほとんどの現在のグラフィカル・コンピュータ・ユーザ・インターフェース(GUI)は、固定されたスペース的スケールのビジュアル・コンポーネントを使用して設計されている。しかし、コンピュータ・グラフィックスという分野の誕生から、ビジュアル・コンポーネントがディスプレイ上で固定されたスペース的スケールを有するのではなく、ビジュアル・コンポーネントをズーム・インまたはズーム・アウトできる形で、ビジュアル・コンポーネントを表現でき、操作できることが認められた。ズーム可能コンポーネントの望ましさは、多くの応用領域、たとえば、地図のビューイング、新聞などの大きい異種テキスト・レイアウトのブラウジング、ディジタル写真のアルバムのビューイング、および大きいデータ・セットのビジュアライゼーションを用いる作業などで明白である。スプレッドシートおよびレポートなどの普通のドキュメントを見るときであっても、しばしば、ドキュメントの概観を見て、次に、関心を持たれた領域にズーム・インできることが有用である。Microsoft(登録商標)Word(登録商標)および他のOffice(登録商標)プロダクト(表示メニューの下のズーム)、Adobe(登録商標)Photoshop(登録商標)、Adobe(登録商標)Acrobat(登録商標)、QuarkXPress(登録商標)など、多くの現代のコンピュータ・アプリケーションに、ズーム可能コンポーネントが含まれる。ほとんどの場合に、これらのアプリケーションは、ドキュメントのズーム・インおよびズーム・アウトを可能にするが、必ずしもアプリケーション自体のビジュアル・コンポーネントのズーム・インおよびズーム・アウトを可能にはしない。さらに、ズームは、通常、ソフトウェアとのユーザの対話の周辺態様であり、ズーム・セッティングは、時たま変更されるのみである。ドキュメント上での連続的なパンは、標準的である(すなわち、スクロール・バーまたはカーソルを使用して、見られているドキュメントを左、右、上、または下に平行移動させること)が、ユーザ・フレンドリな形で連続的にズームし、パンする能力は、従来技術のシステムには存在しない。
まず、複数の定義を示す。ディスプレイとは、レンダリングされた像(imagery)をユーザに出力するのに使用される1つまたは複数のデバイスである。フレーム・バッファは、ディスプレイの少なくとも一部の内容を動的に表すのに使用される。ディスプレイ・リフレッシュ・レートとは、物理ディスプレイまたはその一部が、フレーム・バッファの内容を使用してリフレッシュされるレートである。フレーム・バッファのフレーム・レートとは、フレーム・バッファが更新されるレートである。
たとえば、通常のパーソナル・コンピュータでは、ディスプレイ・リフレッシュ・レートは60〜90Hzである。たとえば、ほとんどのディジタル・ビデオは、24〜30Hzのフレーム・レートを有する。したがって、ディジタル・ビデオの各フレームは、実際には、ディスプレイがリフレッシュされる回数の少なくとも2倍表示される。複数のフレーム・バッファを、異なるフレーム・レートで利用することができ、したがって、同一のディスプレイに実質的に同時に表示することができる。これは、たとえば、異なるフレーム・レートを有する2つのディジタル・ビデオは、同一ディスプレイ上で異なるウィンドウ内で再生されているときに、発生することになる。
ズーミング・ユーザ・インターフェース(ZUI)に関する1つの問題は、ユーザがズームするときに、ビジュアル・コンテンツを異なる分解度で表示しなければならないことである。この問題に対する理想的な解決策は、すべての連続するフレームで、基礎になるビジュアル・コンテンツに基づく正確な新たに計算されたイメージを表示することになる。そのような手法に関する問題は、ユーザがズームするときのリアル・タイムでのビジュアル・コンテンツの各分解度の正確な再計算が、基礎になるビジュアル・コンテンツが複雑である場合に計算的に非実用的であることである。
前述の結果として、従来技術のZUIシステムは、それぞれが同一のビジュアル・コンテンツの異なる分解度での表現である複数の事前計算されたイメージを使用する。本明細書では、これらの異なる事前計算されたイメージのそれぞれを、詳細レベル(LOD)と称する。概念上は減少する分解度のイメージのスタックとして編成される、LODの完全なセットを、LODピラミッドと称する。図A10−1を参照されたい。そのような従来技術のシステムでは、ズームが発生するときに、システムは、LODの間で補間し、結果のイメージを所望の分解度で表示する。この手法は、計算的問題を解決するが、しばしばぼけ、非現実的な、異なるLODの補間を表すという事実に起因してしばしば情報の消失を伴う、最終的な損なわれたイメージを表示する。これらの補間誤差は、ユーザがズームを停止し、どのLODの分解度とも正確には一致しない選択された分解度で静止イメージを見る場合に、特に顕著である。
事前計算されたLODの間の補間に関するもう1つの問題は、この手法が、通常、ベクトル・データを写真データまたはイメージ・データと同一の形で扱うことである。青写真または線画などのベクトル・データは、レンダリング・アルゴリズムを使用して抽象命令のセットを処理することによって表示され、このレンダリング・アルゴリズムは、すべての所望の分解度で直線、曲線、および他のプリミティブ形状をレンダリングすることができる。スケーラブル・フォントを使用してレンダリングされるテキストは、ベクトル・データの重要なスペシャル・ケースである。イメージ・データまたは写真データ(ビット・マップ・フォントを使用してレンダリングされるテキストを含む)は、そのように生成されるのではなく、事前計算されたLODの間の補間によって、またはオリジナル・イメージの再サンプリングによって、のいずれかで表示されなければならない。この後者を、本明細書では非ベクトル・データと称する。
ズーム・シーケンス中にフレームごとに新しい分解度でベクトル・データを再表示するのにレンダリング・アルゴリズムを使用する従来技術のシステムは、対話的フレーム・レート達成するために、単純なベクトル・ドローイングにそれ自体を制約しなければならない。その一方で、ベクトル・データについてLODを事前計算し、それらの間で補間する従来技術のシステムは、非ベクトル・データに関して、ほとんどのベクトル・データ・レンディションに固有のシャープなエッジが、特に補間誤差に敏感なので、著しく劣化したビジュアル品質を欠点として持つ。この劣化は、ベクトル・データのスペシャル・ケースであるテキスト・コンテンツについて、通常は受け入れられない。
本発明の目的は、ユーザが実際に物理オブジェクトを見て、その物理オブジェクトをそのユーザ自身のより近くに移動した場合にそのユーザが見ることになるズーム効果を再生するZUIを作成することである。
本発明の目的は、適当な分解度でイメージを表示するが、最終的な表示されるイメージ内の補間誤差を避けるか減らすZUIを作成することである。本発明のもう1つの目的は、コンテンツの明快なぼけていないビューを維持し、対話的フレームレートを維持しながら、ユーザが、ベクトル・コンテンツに任意にズームインできるようにすることである。
本発明のもう1つの目的は、コンテンツの全体的外見を保存し、対話的フレームレートを維持しながら、複雑なベクトリアル・コンテンツの概観を得るために、ユーザが任意にズーム・アウトできるようにすることである。
本発明のもう1つの目的は、対話中のLODまたはレンディション品質の間の遷移についてのユーザによる知覚を減らすことである。
本発明のもう1つの目的は、イメージの諸部分をレンダリングするのに通常は必要な情報がまだ不完全であるときに、ぼけによるイメージ品質のグレースフル・デグラデーションを可能にすることである。
本発明のもう1つの目的は、イメージの諸部分をレンダリングするのに必要な、より完全な情報が使用可能になるにつれて、イメージによりシャープな合焦点をもたらすことによって、イメージ品質を漸進的に高めることである。
本発明の目的は、ベクトル・データと非ベクトル・データとの両方を最適に独立にレンダリングすることである。
本発明の上記および他の目的は、次の明細書の再検討から当業者に明白になるであろう。
(発明の概要)
従来技術の上記および他の問題は、本発明に従って克服され、本発明は、ユーザがズーム・インし、ズーム・アウトし、回転し、パンし、または他の形でイメージのそのユーザのビューを変更するときに、動的に変化する分解度でイメージを表示できるようにするZUIを実装するためのハイブリッド戦略に関する。ビューのそのようなすべての変化を、ナビゲーションと称する。事前定義のLODのどの分解度とも等しくない分解度へのイメージのズームは、所望の分解度を「周囲の」、複数の事前定義のLODから補間された新しい分解度で、イメージを表示することによって達成される。「周囲のLOD」とは、所望の分解度より高い最低の分解度のLODと、所望の分解度より低い最高の分解度のLODとを意味する。所望の分解度が、最高の使用可能な分解度を有するLODの分解度より高い、または最低の分解度を有するLODの分解度より低い、のいずれかである場合には、単一の「周囲のLOD」だけがあることになる。事前計算されたLODのセットに基づく所望の分解度でのイメージの動的補間を、文献では、ミップマッピングまたはトライ・リニア補間と称する。後者の用語は、さらに、双一次サンプリングが、周囲のLODを再サンプリングするのに使用され、これに、これらの再サンプリングされたLOD(したがって、トライリニア)の間の線形補間が続くことを示す。Lance Williams. “Pyramidal Parametrics,” Computer Graphics (Proc. SIGGRAPH ’83) 17(3): 1−11 (1983)を参照。前述のドキュメントは、参照によってその全体を本明細書に組み込まれている。Williamsによって導入されたミップマッピング技法の明白な変更またはこれに対する拡張は、周囲のLODの非線形再サンプリングおよび/または補間を使用する。本発明では、再サンプリング動作または補間動作がゼロ次(最近傍)、線形、より高次、またはより一般に非線形、であるかどうかは重要でない。
本明細書で説明する発明によれば、ユーザが、正確な所望の分解度(この分解度が事前定義のLODのうちの1つの分解度であることはほとんど絶対にない)を決めるときに、最終イメージは、好ましくは、まず中間最終イメージを表示することによって表示される。中間最終イメージは、本明細書で後で説明するようにイメージが洗練される前に、所望の分解度で表示される最初のイメージである。中間最終イメージは、従来技術を使用して所望の分解度で表示されるはずのイメージに対応するものとすることができる。
好ましい実施形態では、中間最終イメージから最終イメージへの遷移は、以下で詳細に説明するように漸進的とすることができる。
機能強化された実施形態では、本発明は、以下で詳細に説明するように、無理数増分(すなわち、2つの整数の比として表すことができない、連続するLODの間の拡大率または縮小率)を含む任意の分解度増分で、LODが間隔をおいて配置されることを可能にする。
もう1つの機能強化された実施形態では、各異なるLODからなるイメージの各部分が、タイルと称され、そのようなタイルは、見る人に知覚されるすべての不完全さを最小にする順序でレンダリングされる。他の実施形態では、表示されるビジュアル・コンテンツは、複数のLOD(潜在的には上で説明した周囲のLODのスーパーセット)から作成され、これらのLODのそれぞれは、適切なプロポーションおよび位置に、不完全さを隠す形で最終イメージにフェード・インする表示となるように、表示される。
複数のLOD内のさまざまなタイルのレンディションは、本システムがほとんどのラップトップ・コンピュータおよびデスクトップ・パーソナルコンピュータで使用可能な通常のクロック速度を有する標準的なコンピュータで動作できるようにするために、受けれられるレベルの計算的複雑さの中に留まりながら、ビジュアルコンテンツの外見を最適にする順序で、達成される。
本発明は、イメージが素速いズームおよびパンの期間には事前定義のLODを使用して表示されるが、ビューが十分に安定するときには、正確なLODがレンダリングされて、表示される、ハイブリッド戦略を用いる。正確なLODは、ユーザによって選択された丁度その分解度でレンダリングされ、表示され、この分解度は、通常、事前定義のLODとは異なる。人間の視覚系は、ビジュアル・コンテンツがまだ動いている間にはビジュアル・コンテンツの微細な詳細に鈍感なので、このハイブリッド戦略は、はるかにより少ない計算を用いて連続的な「完全なレンダリング」という錯覚を生み出すことができる。
(図面の簡単な説明)
(図A10−1)LODピラミッドを示す図である(この例では、最高分解度表現を表すピラミッドの基部は、512×512サンプル・イメージであり、このイメージの連続する縮小は、2の因数で示されている)。
(図A10−2)本発明の例示的実施形態で使用されるフローチャートを示す図である。
(図A10−3)本システムがズーム後の最終イメージをどのように表示するかを示すもう1つのフローチャートである。
(図A10−4)各LODのサンプル単位で等しいサイズの四辺形タイルへの副分割を示すグリッド線が追加された、図1のLODピラミッドを示す図である。
(図A10−5)本発明に関連して使用される、レンダリングされたタイルをディスプレイに表示するプロセスを示すフローチャートである。
(図A10−6)本明細書でより詳細に説明される、無理数タイリングと称する概念を示す図である。
(図A10−7)上でより十分に説明されたように、合成タイルおよび合成タイルを構成するタイルを示す図である。
(好ましい実施形態の詳細な説明)
図A10−2に、本発明の実装の基本技法のフローチャートを示す。図A10−2のフローチャートは、本発明の例示的実施形態を表し、イメージが初期分解度で表示される際に、実行を開始する。本発明を、クライアント/サーバ・モデルで使用することができるが、クライアントおよびサーバを、同一のマシン上または異なるマシン上としてもよいことに留意されたい。したがって、たとえば、ホスト・コンピュータでリモートに格納された離散的なLODのセットを設けることができ、ユーザを、ローカルPCを介して前記ホストに接続することができる。利用される実際のハードウェア・プラットフォームおよびシステムは、本発明にとってクリティカルではない。
このフローチャートには、特定の分解度のイメージの初期ビューの場合に開始ブロック201に入る。この例では、イメージは、静的と解釈される。そのイメージは、ブロック202で表示される。ユーザは、たとえばコンピュータマ・ウスを移動することによって、そのイメージをナビゲートすることができる。ブロック202で表示された初期ビューは、ユーザがそのイメージをナビゲートすると変化する。基礎になるイメージ自体は、モーション・ビデオの場合など、動的とすることができるが、この例においては、イメージ自体は静的として扱われることに留意されたい。上で説明したように、表示されるすべてのイメージは、テキスト・データもしくは他のベクトル・データならびに/または写真および他のイメージなどの非ベクトルデータを有することもできる。本発明および以下の議論全体は、イメージがベクトル・データまたは非ベクトル・データあるいはその両方のどれを含むかに関わりなく適用可能である。
ブロック202で表示されるビジュアル・コンテンツのタイプに関わりなく、この方法は、判断ポイント203に制御を移し、この判断ポイント203では、ナビゲーション入力を検出することができる。そのような入力が検出されない場合には、この方法は、ブロック202にループバックし、静止ビジュアル・コンテンツの表示を継続する。ナビゲーション入力が検出される場合には、制御は、図示のようにブロック204に移される。
判断ポイント203は、動きを検出する特定の信号を探すソフトウェア内の絶え間のないループ、ハードウェアでの割込みシステム、または任意の他の所望の方法論、によって実装することができる。ナビゲーション要求を検出し、分析するのに利用される特定の技法は、本発明にとってクリティカルではない。使用される方法論に関わりなく、本システムは、要求を検出することができ、したがって、イメージをナビゲートしたいという望みを示すことができる。本明細書の議論の多くは、ズームに関するが、これらの技法が、ズーム、パン、または他の形のナビゲートに適用可能であることに留意されたい。実際に、本明細書で説明される技法は、すべてのタイプの動的変換またはイメージ上の遠近法での変化に適用可能である。そのような変換には、たとえば、3次元の平行移動(three dimensional translation)および回転、イメージ・フィルタの適用、ローカル・ストレッチング、イメージの選択された領域に適用される動的スペース的歪曲、またはより多くの情報を明らかにする可能性があるすべての他の種類の歪曲、を含めることができる。もう1つの例は、仮想拡大鏡であり、これは、イメージ上を移動することができ、仮想拡大鏡の下のイメージ部分を拡大する。判断ポイント203が、ユーザがナビゲーションを開始しようとしていることを検出するに、ブロック204が、イメージの新しいビューをレンダリングし、表示する。この新しいビューは、たとえば、前の表示されたビューと異なる分解度であってもよい。
新しいビューを表示する1つの単純な従来技術の技法は、ユーザがズーム・インまたはズーム・アウトするときにLODを補間することに基づく。選択されるLODは、所望の分解度すなわち新しいビューの分解度の「周囲の」2つのLODとすることができる。補間は、従来のシステムでは、ユーザがズームするときにコンスタントに発生し、したがって、しばしば、速度を達成するために直接ハードウェアで実装される。判断ポイント205での動きの検出と、ブロック204での適当な補間されたイメージの実質的に即座の表示との組合せは、ユーザがナビゲートするときにイメージが連続的にズームして見えることをもたらす。ズーム・インまたはズーム・アウトの期間には、イメージは動いているので、補間されたイメージは、現実感があり、明瞭であるように見えるのには十分である。補間誤差は、イメージのコンスタントに変化するビューによって隠されるので、人間の視覚系によって最小限に検出可能であるに過ぎない。
判断ポイント205では、本システムは、動きが実質的に止まったか否かをテストする。これは、たとえばビューの1つまたは複数のパラメータの変化のレートを測定することを含む、さまざまな技法を使用して達成することができる。すなわち、この方法論は、ユーザがズームを完了したポイントに、達したか否かを確かめる。判断ポイント205でのそのような安定化に基づいてに、制御は、ブロック206に移され、このブロック206で、正確なイメージがレンダリングされ、その後、制御はブロック203に戻る。したがって、ある所望の分解度で、本システムは、正確なLODを最終的に表示する。
特筆すべきことに、この表示は、2つの事前定義のLODの補間によって単純にレンダリングされ、表示されるのではなく、初期ビューがブロック202で表示されたときにテキスト・データまたは他のベクトル・データをレンダリングするのに使用されたオリジナル・アルゴリズムを使用してベクト・ルデータを再レンダリングすることによってレンダリングし、表示することができる。非ベクトル・データは、レンダリングのために再サンプリングすることができ、正確な要求されたLODで表示される。要求された再レンダリングまたは再サンプリングは、所望の分解度での表示に要求された丁度その分解度だけではなく、所望のビューに基づいて計算される、基礎になるコンテンツに相対的なディスプレイピクセルの正しい位置に正確に対応するサンプリング・グリッドに基づいて実行することができる。例として、ディスプレイ平面上で1/2ピクセルの、ディスプレイ上でのイメージの平行移動は、必要な分解度を変化させないが、サンプリング・グリッドを変更し、これにより、正確なLODの再レンダリングまたは再サンプリングを必要とする。
図A10−2の前述のシステムは、ビューが変化している(たとえば、ナビゲーションが行われている)間には事前定義のLODに基づく補間が利用されるが、ビューが実質的に静止状態になると正確なビューがレンダリングされ、表示される、ハイブリッド手法を表している。
本明細書での説明において、用語「レンダリングする」は、コンピュータにより、ベクトル・データまたは非ベクトル・データに基づいて、特定のLODでタイルを生成すること、を指す。非ベクトル・データに関して、より高いまたはより低い分解度でオリジナルのイメージを再サンプリングすることによって、これらの非ベクトルデータを任意の分解度でレンダリングすることができる。
ここで、図A10−2のブロック206によって表される正確な最終イメージを達成するのに必要なビジュアル・コンテンツの個々の部分をレンダリングし、表示する方法論に移る。図A10−3を参照すると、ナビゲーションが止まったと決定される、制御は、ブロック303に移され、補間されたイメージが、ズーム中の場合と同様に、即座に表示される。本明細書では、ナビゲーションが止まった後に一時的に表示され得るこの補間されたイメージを、中間最終イメージまたは単に中間イメージと呼ぶ。このイメージは、周囲のLODの補間から生成される。いくつかの場合に、以下でより詳細に説明するように、中間イメージは、3つ以上の離散したLODから、または所望の分解度の周囲のLOD以外の、2つの離散したLODから補間される場合がある。
中間イメージを表示したならば、ブロック304に入り、このブロック304は、そのイメージに、そのイメージの正確なレンディション(本明細書で最終イメージと称する)に向かって漸進的にフェードすることを開始させる。この最終イメージは、この最終イメージがどの事前定義のLODの補間をも伴わない場合があるという点で、前述の中間イメージと異なる。あるいは、最終イメージまたはその各部分は、新たにレンダリングされるタイルを備えることができる。写真データの場合には、新たにレンダリングされるタイルを、オリジナル・データの再サンプリングに由来するものとすることができ、ベクトル・データの場合には、新たにレンダリングされるタイルを、所望の分解度でのラスタライゼーションに由来するものとすることができる。
ブロック303から305に直接にスキップし、補間されたイメージを、最終的な正確なイメージに即座に置換することが可能であることにも留意されたい。しかし、好ましい実施形態では、ステップ304が実行され、したがって、中間最終イメージから最終イメージへの切替えは、漸進的に滑らかに行われる。この漸進的フェードは、時々ブレンディングと呼ばれるが、ナビゲーションが停止するとイメージに漸進的に合焦点になるようにさせ、カメラまたは他の光学機器のオートフォーカスに似た効果を生み出す。この効果によって作成される肉体的適応力(physicality)についての錯覚は、本発明の重要な態様である。
次は、イメージ内の知覚される不規則性、突然の変化、継ぎ目、および他の不完全さを最小にするために、このフェードまたはブレンディングを行うことができることについての議論である。しかし、フェードの特定の技法が、本発明にとってクリティカルではなく、多数の変形形態が、当業者には明白であることを理解されたい。
個々のLODは、基礎になるビジュアル・コンテンツの物理的面積あたりのサンプル数の形で異なる。したがって、第1LODが、ビューイング可能なオブジェクトの1インチ(25.4mm)×1インチ(25.4mm)の面積を占め、単一の32×32サンプル・タイルを生成する場合がある。しかし、この情報を、同一の1インチ(25.4mm)×1インチ(25.4mm)の面積をとり、これを64×64サンプルであるタイルとして、したがってより高い分解度で表現することによって、レンダリングすることもできる。
本発明者は、無理数タイリングと呼ばれる概念を定義する。タイリングの細分性は、変数gとして記述されるが、次に低い分解度のLODの直線タイリング・グリッドサイズに対する、より高い分解度のLODの直線タイル・グリッドサイズの比として定義される。トライリニア補間を紹介するWilliamsの論文では、g=2である。gのこの同一の値が、他の従来技術で使用されてきた。LODは、任意の形でタイルに副分割されることができるが、例示的実施形態では、各LODは、一定の個数のサンプルを含む正方形または四辺形のタイルのグリッドに副分割される(ビジュアル・コンテンツのエッジで必要な場合を除く)。概念上、g=2のときに、あるLODの各タイルは、図A10−4に示されているように、次に高い分解度のLODで2×2=4個のタイルに「分割」される(やはり、潜在的にエッジを除く)。
粒度2のタイリングには、根本的な欠点がある。通常、ユーザが、タイル内のランダムなポイントにズーム・インする場合に、ズームにおけるすべてのg倍の増加は、ユーザがそれに向かってズームしているポイントの付近の次に高い分解度に対応する単一の追加タイルのレンディションを必要とする。しかし、ユーザが、タイリング・グリッド内のグリッド線にズーム・インしている場合には、その両側で1つずつの、2つの新しいタイルが、レンダリングされる必要がある。最後に、ユーザが、2つのグリッド線の交差点にズーム・インしている場合には、4つの新しいタイルが、レンダリングされる必要がある。これらのイベント(各g倍ズームに伴って1つ、2つ、または4つの新しいタイルを必要とする)が、長いズーム・シーケンス全体にわたってランダムに散在する場合には、全体的な性能は、一貫したものになる。しかし、すべての整数細分性タイリング(すなわち、gが整数である場合)のグリッド線は、すべてのより高い分解度のLODについて、以前としてグリッド線のままになる。
たとえば、細分性2でタイリングされた非常に大きいイメージの中心へのズーム・インを考慮されたい。本明細書では、ビジュアル・コンテンツがコーナー(0,0)、(0,1)、(1,0)、および(1,1)を有する正方形に含まれるという規約を採用して、このポイントの(x,y)座標を(1/2,1/2)と書く。中心は、2つのグリッド線の交差点にあるので、ユーザが各より高い分解度のLODに達するときに、4つの新しいタイルが、毎回レンダリングされる必要があり、これは、この特定のポイントでのズームに関する遅い性能および非効率性をもたらす。その一方で、ユーザが、無理数ポイント(xおよびyを2つの整数の比として表現することができないグリッド・ポイント(x,y)を意味する)にズーム・インすると想定されたい。そのような数の例が、パイ(=3.14159…)および2の平方根(=1.414213…)である。次に、すべてのg倍のズームについてレンダリングされる必要があるタイルの個数によって与えられる1、2、および4のシーケンスが、擬似ランダムである、すなわち、周期的なパターンに従わないことを、簡単に実証することができる。この種の擬似ランダム・シーケンスは、性能の観点から明らかにより望ましく、性能の観点からは、ズームに関する区別されるポイントはない。
無理数タイリングは、この問題を解決する。g自体は、無理数、通常は3、5、または12の平方根になるようにされる。これは、所与のLODでの平均3個、5個、または12個のタイル(gに対応して)が、次に低い分解度のLODの単一のタイル内に含まれることを意味するが、連続するLODでのタイリング・グリッドは、もはや、この方式ではどのグリッド線とも「一致」しないことに留意されたい(潜在的に、ビジュア・ルコンテンツの先頭のエッジすなわちx=0およびy=0と、各軸に沿ったある他の事前に選択された単一のグリッド線を除く)。gが、どの整数のn乗根でもなくなるように選択される(パイはそのような数である)場合には、どのLODも、グリッド線を全く共有しない(やはり、潜在的にx=0およびy=0を除く)。したがって、各タイルが、次に低いLODで1個、2個、または4個のタイルにランダムにオーバーラップすることができることを示すことができるが、g=2では、この個数が必ず1である。
したがって、無理数タイリング細分性を用いると、任意のポイントへのズーム・インは、1個、2個、または4個のタイルの要求の擬似ランダム・ストリームを作り、性能は、どこにズーム・インするときであっても平均して均一になる。おそらく、無理数タイリングの最大の利益は、深いズーム後のパンに関連して現れる。ユーザが、深くズーム・インした後にイメージをパンするときには、あるポイントで、グリッド線が、ディスプレイ上で移動される。通常は、このグリッド線の他方の側の領域が、ディスプレイの残りより低い分解度のLODに対応することになるが、これらの分解度の間の差は、できる限り小さいことが望ましい。しかし、整数のgを用いると、この差は、グリッド線が多数の連続するLODにまたがってオーバーラップし得るので、しばしば極端に大きくなる。これは、図A10−6(a)に示されている、ノード領域にまたがる分解度の「深い亀裂」を生み出す。
その一方で、無理数タイリングのグリッド線は、隣接するLODのグリッド線と絶対にオーバーラップしない(やはり、そのイメージの1つのコーナーでは、各方向に1つのグリッド線があるという例外があるが)ので、複数のLODの分解度の不連続性は、発生しない。相対分解度におけるこの高められた滑らかさは、スペース的な連続性の錯覚をはるかに説得力のあるものにすることを可能にする。
図A10−6(b)に、無理数タイリング細分性によって得られる利点を示す。図A10−6は、ビジュアル・コンテンツの複数のLODを通る断面を示し、各棒は、四辺形タイルの断面を表す。したがって、上から2番目のレベルは、2つの棒があるが、2×2=4タイルLODとすることができる。最上部から最下部まで描かれた曲線601は、ズーム動作中の関連するLODでのビジュアル・コンテンツの可視領域の境界を表し、分解度が高められる(より多くの詳細を明らかにするためにズーム・インする)ときには、検査中の面積が減る。より暗い色の棒(たとえば、602)は、ズームの過程で既にレンダリングされているタイルを表す。より明るい色の棒は、まだレンダリングされておらず、したがって、表示することができない。タイリングが、図A10−6(a)に示されているように整数的であるときには、スペースにまたがる分解度の不意の変化が、一般的であり、ユーザがズームの直後にパンすることを求める場合には、矢印によって示されるスペース的境界で、4つのLODが不意に「終わる」ことに留意されたい。この結果のイメージは、この境界の左側ではシャープに見えるが、右側では極端にぼけて見える。無理数タイリング細分性を使用して表された同一のビジュアルコンテンツは、そのような分解度の「亀裂」がなく、隣接するLODは、左のエッジに示されたものを除いて、タイル境界を共有しない。数学的には、この共有される境界は、多くとも、x軸上の1つの位置およびy軸上の1つの位置で発生し得る。図示の実施形態では、この共有される境界が、y=0およびx=0に位置決めされているが、存在する場合に、これらを、任意の他の位置に置くこともできる。
無理数タイリング細分性のもう1つの利益は、特にgが大きすぎない有用な範囲にわたって、整数よりはるかに多数の無理数があるので、無理数タイリング細分性がgのより微細な制御を可能にすることである。この追加の自由は、ある種のアプリケーションのズーム性能をチューニングするのに有用である可能性がある。gに、整数の無理数平方根(sqrt(2)、sqrt(5)、またはsqrt(8)など)がセットされる場合に、上で説明した実施形態では、交互のLODのグリッド線が、正確に位置合せされるはずであり、gが無理数三乗根である場合には、3つおきのLODが、正確に位置合せされるはずであり、以下同様である。これは、以下で定義される合成タイルの複雑さを制限することに関する追加の利益を与える。
本発明の重要な態様は、タイルがレンダリングされる順序である。より具体的に言うと、さまざまなLODのさまざまなタイルは、すべての可視タイルが最初にレンダリングされるように、最適にレンダリングされる。非可視タイルは、全くレンダリングされない場合がある。可視タイルのセット内で、レンディションは、高まる分解度の順序で進行し、その結果、低分解度LOD内のタイルが、最初にレンダリングされるようになる。どの特定のLODの中であっても、タイルは、ディスプレイの中心からの増加する距離の順序でレンダリングされ、本発明者は、これをフォービエイテッド・レンダリングと称する。そのようなタイルを説明された順序でソートするために、ヒープ・ソート、クイック・ソート、または他のソートなどの多数のソート・アルゴリズムを使用することができる。この順序付けを実装するために、レキシグラフィック・キー(lexigraphic key)を、「要求」をソートするのに使用して、タイルをレンダリングすることができ、外側のサ・ブキーが可視性、中央のサ・ブキーが物理単位あたりのサンプル内の分解度、内側のサブ・キーがディスプレイの中心までの距離になる。タイル・レンダリング要求を順序付ける他の方法も、使用することができる。タイルの実際のレンダリングは、本明細書に記載のナビゲーションおよび表示に対する並列プロセスとして最適に行われる。レンダリングおよびナビゲーション/表示が並列プロセスとして進行するときには、ユーザ反応性は、タイルのレンダリングが遅いときであっても高いままになる可能性がある。
ここで、例示的実施形態でタイルをレンダリングするプロセスを説明する。あるタイルが、ストローク・ベース・フォントのアルファベット活版印刷などのベクトル・データを表す場合に、このタイルのレンダリングは、アルファベット・データをラスタライズするアルゴリズムを実行することと、おそらくはそのデータをクライアントからサーバに送信することとを伴う。代替案では、ラスタライゼーション・アルゴリズムに供給されるデータを、クライアントに送信することができ、クライアントは、タイルをラスタライズするアルゴリズムを実行することができる。もう1つの例で、ディジタル・サンプリングされた写真データを伴うタイルのレンダリングは、適当なLODでタイルを生成するためにそのデータを再サンプリングすることを用いることができる。事前に格納される離散LODについて、レンダリングは、後の表示のためにクライアント・コンピュータにタイルを単純に送信することだけを用いることができる。最終イメージ内のタイルなど、離散LODの間に含まれるタイルについて、上で説明した、あるさらなる計算が必要になる場合がある。
タイルがレンダリングされ、イメージが正確なイメージに向かってフェードし始めるときに、常に、実際のディスプレイには、異なるLODからの異なるタイルの異なる混合物が含まれる可能性がある。したがって、ディスプレイの任意の部分に、たとえばLOD 1からの20%、LOD 2からの40%、およびLOD 3からの40%が含まれる可能性がある。表示されるタイルに関わりなく、本アルゴリズムは、表示用にレンダリングされたタイルをそれが最も必要とされるときに供給するのに最も適する優先順序で、さまざまなLODからのタイルをレンダリングすることを試みる。レンダリングされたタイルの実際の表示は、図A10−5に関して後でより詳細に説明する。
次では、イメージ詳細のスペース的および時間的連続性を保証できるアルゴリズムを使用して複数のLODを描く方法を説明する。このアルゴリズムは、同一のディスプレイ領域をカバーする、より低い分解度のタイルに優先して高分解度タイルを使用し、なおかつ、各LOD間のシャープな境界を避けるためにスペース的ブレンディングを使用し、より高い詳細が使用可能になる場合に、そのときに(すなわち、より高い分解度のタイルがレンダリングされ終えたときに)そのより高い詳細をブレンド・インするために時間的に累進的なブレンディング重みを使用して、すべてのレンダリングされるタイルについて最も良い使用をするように設計されている。従来技術と異なって、このアルゴリズムおよびその変形は、ディスプレイ上の所与のポイントで3つ以上のLODが一緒にブレンディングされることをもたらすことができ、ディスプレイ領域にまたがって滑らかに変化するブレンディング係数をもたらすこともでき、ユーザがナビゲートするのをやめた後であっても経時的に漸進的に変化するブレンディング係数をもたらすことができる。この例示的実施形態では、このアルゴリズムは、以下で明白になるように、上述した効果にも拘わらず計算的に効率的であり、像を部分的に透明として、またはイメージ領域にまたがって変化する全体的な透明度を用いてレンダリングするのに、使用することができる。
本発明者は、本明細書で合成タイル領域または単に合成タイルを定義する。合成タイルを定義するために、互いの上に積み重ねられたLODのすべてを考慮する。各LODは、それ自体のタイル・グリッドを有する。合成グリッドは、すべてのLODからのすべてのグリッドを単一の平面に投影することによって形成される。合成グリッドは、個々のLODのすべてからのタイルの境界によって定義される、異なるサイズのさまざまな合成タイルから構成される。これを、図A10−7に概念的に示す。図A10−7は、すべてが同一のイメージを表す、3つの異なるLOD 701から703のタイルを示す。LOD 701から703が、互いの上に積み重ねられていると想像することができる。その場合に、これらのLODのそれぞれのコーナー750の位置を合わせ、互いの上に積み重ねた場合に、740によって表される領域は、730によって表される領域の内側になり、730および740によって表される領域は、720によって表される領域の内側になる。図A10−7の領域710は、単一の「合成タイル」710があることを示す。合成タイルのそれぞれは、各フレーム中に検査され、フレーム・レートは、通常は毎秒10フレームを超えるものとすることができる。上で説明したように、このフレーム・レートが、必ずしもディスプレイ・リフレッシ・ュレートではないことに留意されたい。
図A10−5に、タイルがレンダリングされるにつれてフレーム・バッファを更新するアルゴリズムのフローチャートを示す。図A10−5の処理は、フレーム・バッファが更新されるたびに、表示されるイメージ内のすべての合成タイルに関して操作することを意図したものである。したがって、たとえば、フレーム持続時間が1秒の1/20である場合に、スクリーン全体の合成タイルのそれぞれが、1秒の1/20のそれぞれの間に検査され、更新されることが好ましい。合成タイルが、図A10−5のプロセスによって操作されるときには、その合成タイルに、1つまたは複数のLOD内の関連するタイルが欠けている場合がある。図A10−5のプロセスは、その合成タイルがその中にあるすべての使用可能な重畳されたタイルの加重平均として各合成タイルを表示することを試みる。合成タイルは、任意の所与のLODで正確に1つのタイルに含まれる形で定義され、したがって、その加重平均を、各LODの相対的な比率として表すことができることに留意されたい。このプロセスは、上で述べた最終イメージに向かってイメージに漸進的にフェードさせるために、合成タイル内の各LODの適当な重みを決定することと、スペースおよび時間にまたがって漸進的にこれらの重みを変更することとを試みる。
合成グリッドには、複数の頂点が含まれ、これらは、合成グリッドにおけるグリッド線の任意の交差点またはコーナーになるように定義される。これらを、合成グリッド頂点と称する。本明細書では、LODごとに、各合成グリッド頂点で不透明度を定義する。この不透明度は、0.0と1.0との間の重みとして表すことができ、したがって、各頂点でのすべてのLOD重みの和は、所望の結果がイメージが完全に不透明になることである場合には1.0でなければならない。LODごとの各頂点での任意の特定時刻の現在の重みは、メモリ内で維持される。
頂点重みを更新するアルゴリズムは、以下で説明するように進行する。
次の変数は、0.0と1.0との間の数になるが、タイルごとにメモリ内で保持される:centerOpacity、各コーナーのcornerOpacity(タイリングが四辺形グリッドである場合に4個)、およびエッジごとのedgeOpacity(タイリングが四辺形グリッドである場合に4個)。タイルが初めてレンダリングされるときには、ここでリストした、それらの不透明度のすべてに、通常は1.0がセットされる。
ドローイング・パス中に、このアルゴリズムは、最高分解度LODから始めて、関連するLODごとに1回、合成タイリングをウォーク・スルーする。タイルごとの変数のほかに、このアルゴリズムは、次の変数を維持する:levelOpacityGridおよびopacityGrid。これらの変数の両方は、やはり0.0と1.0との間の数であり、合成タイリング内の頂点ごとに維持される。
このアルゴリズムは、最高分解度から最低分解度への順序で、次の動作を実行しながら各LODを順番にウォークスルーする。まず、0.0を、すべての頂点のlevelOpacityGridに割り当てる。次に、そのLODのレンダリングされるタイルごとに(いくつかのタイルがまだレンダリングされていない場合には、そのLODのタイルのセットのサブ・セットになる場合がある)、このアルゴリズムは、そのタイルのcenterOpacity値、cornerOpacity値、およびedgeOpacity値に基づいて、levelOpacityGridのうちでそのタイルに触れる部分を次のように更新する。
頂点が完全にそのタイルの内側にある場合には、その頂点は、centerOpacityを使用して更新される。
頂点が、たとえばそのタイルの左エッジにある場合には、その頂点は、左のedgeOpacityを用いて更新される。
頂点が、たとえばその右上コーナーにある場合には、その頂点は、右上のcornerOpacityを用いて更新される。
「更新」は、次を意味する。事前に存在するlevelOpacityGrid値が0.0より大きい場合には、新しい値に、現在の値またはこの変数がそれに更新されようとしている値のうちの最小値をセットする。事前に存在する値が0である(すなわち、この頂点がまだ操作されていない)場合には、levelOpacityGrid値に、この変数がそれに更新されようとしている値をセットする。最終的な結果は、各頂点位置のlevelOpacityGridに、この変数がそれに更新される最小の非ゼロ値がセットされることである。
次に、このアルゴリズムは、levelOpacityGridをウォークスルーし、穴と称するまだレンダリングされていないタイルに接するすべての頂点に0.0をセットする。これは、ブレンディングのスペース的連続性すなわち、合成タイルが穴に含まれる場合に、いつでも、現在のLODで、ドローイング不透明度が、その穴に接するすべての頂点で0にフェードしなければならないことを保証する。
機能強化された実施形態では、このアルゴリズムは、次に、levelOpacityGrid値を緩和して、LODブレンディングのスペース的連続性をさらに改善する。これまでに説明した情況は、次のようにビジュアライズすることができる。すべての頂点は、テント支柱に類似し、そのポイントでのlevelOpacityGrid値は、テント支柱の高さである。このアルゴリズムは、これまでに、穴に接するすべてのポイントで、テント支柱がゼロの高さを有し、レンダリング済みのタイルの内側では、テント支柱にある(おそらくは)非ゼロ値がセットされることを保証している。極端な場合に、レンダリングされたタイルの内側のおそらくはすべての値に、1.0がセットされる。例示において、レンダリングされたタイルが、まだレンダリングされた隣接タイルを有しておらず、したがって境界値が0.0であると仮定する。本明細書では、「マージン」が、0.0の境界テント支柱と1.0の内部テント支柱との間でどれほど狭いかは、指定してこなかった。このマージンが小さすぎる場合には、ブレンディングが技術的に連続である場合であっても、遷移は、スペースにまたがる不透明度導関数(opacity derivative)として測定されるときにシャープに過ぎる可能性がある。緩和動作は、テントを平滑化し、0.0の値を必ず保存するが、おそらくは他のテント支柱を下げてテント表面によって定義される関数をより滑らかにする、すなわち、その最大のスペース的導関数(spatial derivative)を制限する。さまざまな方法のうちのどれがこの動作を実装するのに使用されるかは、本発明にとって重要ではなく、1つの手法は、たとえば、選択的低域フィルタリングを使用し、ゼロを手付かずのまま残しながら、すべての非ゼロの値をその隣接する値の加重平均に局所的に置換することである。他の方法も、当業者には明白であろう。
次に、このアルゴリズムは、すべての合成グリッド頂点を通ってウォークし、各頂点のlevelOpacityGridおよびopacityGridの対応する値を検討し、levelOpacityGridが1.0−opacityGridより大きい場合には、levelOpacityGridに1.0−opacityGridをセットする。次に、やはり頂点ごとに、levelOpacityGridの対応する値を、opacityGridに加算する。前のステップに起因して、これが、opacityGridに1.0を超えさせることは、絶対にできない。このアルゴリズムのこれらのステップは、より高い分解度のLODが使用可能になるときに、できる限り多くの不透明度が、それらのより高い分解度のLODによって寄与され、穴がある場合に限ってより低い分解度のLODが「透けて見える」ことを許すことを保証する。
現在のLODのトラバーサルの最後のステップは、頂点ごとの不透明度値としてlevelOpacityGridを使用して、現在のLODの合成タイルを実際に描くことである。機能強化された実施形態では、levelOpacityGridに、ドローイングの直前に0.0から1.0までの範囲内のスカラoverallOpacity変数を乗じることができ、これによって、overallOpacityによって与えられる部分的透明度を用いてイメージ全体を描くことが可能になる。各頂点で異なる不透明度を有する、四辺形などの、イメージを含む多角形のドローイングが、標準的なプロシージャであることに留意されたい。これは、たとえば、OpenGLグラフィックス・ライブラリまたはDirect3Dグラフィックス・ライブラリを使用する産業標準のテクスチャ・マッピング関数を使用して達成することができる。実際には、各そのような多角形の内部の中の描かれる不透明度は、スペース的に補間され、多角形にまたがる不透明度の滑らかな変化がもたらされる。
上で説明したアルゴリズムのもう1つの機能強化された実施形態では、タイルは、centerOpacity、cornerOpacity、およびedgeOpacityの現在の値(現在値と呼ばれる)だけではなく、targetCenterOpacity、targetCornerOpacity、およびtargetEdgeOpacityと呼ばれる値の平行セット(ターゲット値と呼ばれる)をも維持する。この機能強化された実施形態では、現在値は、タイルが初めてレンダリングされるときに、すべてに0.0がセットされるが、ターゲット値は、すべてに1.0がセットされる。その後、各フレームの後に、現在値は、ターゲット値により近い新しい値に調整される。これは、複数の数学公式を使用して実施することができるが、例として、次の形で行うことができる。新しい値=古い値*(1−b)+ターゲット値*b、ただし、bは、0.0を超え1.0未満のレートである。0.0に近いbの値は、ターゲット値に向かう非常に遅い遷移をもたらし、1.0に近いbの値は、ターゲット値に向かう非常に速い遷移をもたらす。不透明度を更新するこの方法は、ターゲットに向かう指数関数的収束をもたらし、時間的連続性の視覚的に満足な印象をもたらす。他の公式が、同一の結果を達成することができる。
前述は、本発明の好ましい実施形態を説明するものである。本発明は、そのような好ましい実施形態に限定されず、以下の特許請求の範囲に合致するさまざまな変更も、本発明に含まれる。
(特許請求の範囲)
1.ビジュアル・コンテンツを表示する方法であって、
前記ビジュアル・コンテンツの複数の異なる詳細レベル(LOD)を生成すること、
前記ビジュアル・コンテンツがナビゲートされる間、前記LODの補間として前記ビジュアル・コンテンツを表示すること、および
前記ナビゲーションが実質的に停止すると、少なくとも前記LODの補間ではない部分を含む最終イメージを表示すること
を備えることを特徴とする方法。
2.前記ナビゲーションは、2次元または3次元の平行移動、回転、イメージ・フィルタリング、ローカル・ストレッチング、動的スペース的歪曲、拡大または縮小、のうちの1つまたは複数を備えることを特徴とする請求項1に記載の方法。
3.前記最終イメージが表示される前に、中間最終イメージが、前記複数の前記LODからの補間によって生成されることを特徴とする請求項1に記載の方法。
4.前記中間最終イメージは、漸進的に前記最終イメージに変化することを特徴とする請求項3に記載の方法。
5.前記最終イメージまたは前記中間イメージは、タイル・バイ・タイル・ベースでレンダリングされることを特徴とする請求項4に記載の方法。
6.各LODは、複数のタイルを備え、前記最終イメージまたは前記中間最終イメージは、合成タイルとして表示される複数のLODからの複数のタイルを使用して表示されることを特徴とする請求項3、4、または5に記載の方法。
7.各LODの前記タイルは、前記タイルがその中にある前記LOD、または前記タイルが現在ビューイング可能などうか、またはそのようなタイルのフォービエイション(foveation)の度合に、少なくとも部分的に依存する順序でフレーム・バッファへの入力に使用可能にされることを特徴とする請求項6に記載の方法。
8.ビューイング可能なタイルは、最初にレンダリングされ、前記ビューイング可能なタイルの中で、タイルは、増加する分解度の順序でレンダリングされ、類似する分解度のタイルの中で、タイルは、フォービエイテッドな順序でレンダリングされることを特徴とする請求項7に記載の方法。
9.無理数タイリングを実装することをさらに備えることを特徴とする請求項8に記載の方法。
10.前記ビジュアル・コンテンツは、ベクトル・データおよび非ベクトル・データを備えることを特徴とする請求項6に記載の方法。
11.前記複数のLODは、リモート端末で生成され、前記中間最終イメージおよび前記最終イメージは、ローカルにビューイング可能な端末で生成されることを特徴とする請求項10に記載の方法。
12.ナビゲーション中のビジュアル・コンテンツを表示する方法であって、前記ナビゲーション中に複数のLODの補間として前記ビジュアル・コンテンツを表示すること、および前記ナビゲーションが実質的に停止すると少なくとも部分的に複数のLODの補間ではない前記ビジュアル・コンテンツを表示することを備えることを特徴とする方法。
13.複数のLODの補間として前記ビジュアル・コンテンツを表示することは、複数のLODの補間ではない前記ビジュアル・コンテンツを表示することに漸進的にフェードすることを特徴とする請求項12に記載の方法。
14.LODのセットを生成することによってビジュアル・コンテンツを表す方法であって、各LODは、複数のタイルを備え、第1LOD内の多数のタイルおよび第2LOD内の多数のタイルは、前記セット内の第1LODおよび第2LODの少なくとも1つのサブセットについて整数の比を形成しないことを特徴とする方法。
15.お互いの上に積み重ねられたさまざまなLODからのタイルの部分の組合せとして合成タイルをレンダリングすることを備えることを特徴とする請求項14に記載の方法。
16.まずビューアビリティ(viewability)によって、前記ビューイング可能なタイル内ではLODによって、各LOD内ではフォービエイションのレベルによってソートされた順序で、複数のLODのそれぞれからのタイルをレンダリングすることをさらに備えることを特徴とする請求項16に記載の方法。
17.ビジュアル・コンテンツを表示する方法であって、ビジュアル・コンテンツを表す複数のLODを組み合わせること、および前記表示されるビジュアル・コンテンツが、より良く表示されるイメージをレンダリングするための情報が使用可能になることに応答して、前記より良く表示されるイメージに向かって漸進的に変化するようにするために、前記LODのうちの少なくとも1つに帰せられる寄与を漸進的に変更することを備えることを特徴とする方法。
18.前記寄与は、複数のLOD内の複数のタイルに少なくとも1つの重みを割り当てること、およびその後に前記重みを変更することによって漸進的に変更されることを特徴とする請求項17に記載の方法。
19.前記割り当てることは、少なくとも1つのLOD内の前記タイルのそれぞれに複数の重みを割り当てることを特徴とする請求項17に記載の方法。
20.前記複数の重みは、前記タイルの複数のコーナーのそれぞれでの不透明度、前記タイルの複数のエッジのそれぞれでの不透明度、および前記タイルのそれぞれの中の1ポイントでの不透明度を含むことを特徴とする請求項19に記載の方法。
21.LOD内の複数の位置に関する変数のlevelopacitygridセットを計算することをさらに備え、変数の前記levelopacitygridセットは、前記levelopacitygridが計算される頂点に接する前記LOD内の全タイルについて請求項20に記載の重みのうちの少なくともいくつかを利用することによって計算されることを特徴とする請求項18に記載の方法。
22.少なくとも1つのLODに関する変数の前記levelopacitygridセットをスペース的にフィルタリングすることをさらに備えることを特徴とする請求項21に記載の方法。
23.前記組合せは、ディスプレイの分解度に近い、より高い分解度のLODからの組合せが、当該より高い分解度のLODが使用可能であるときに、より低い分解度のLODより強調されるように行われることを特徴とする請求項17に記載の方法。
24.ビジュアル・コンテンツを表す方法であって、第1LODを第2LODと組み合わせることを備え、前記LODのそれぞれは、複数のタイルからなり、前記タイルは、前記LOD内の前記タイルのエッジが実質的にすべての前記ビジュアル・コンテンツを通じて位置合せされなくなるように配置されることを特徴とする方法。
25.増加する分解度を有する3つ以上の上記LODに適用され、前記LODが増加する分解度の順序で配置されるときに、2つの連続するLODは、分解度において有理数の倍数だけ異なることがないことを特徴とする請求項16に記載の方法。
26.ビジュアル・コンテンツを表示するために複数のLODを組み合わせる方法であって、関連する寄与を用いて前記LODのそれぞれに重みを付けること、および時間およびスペースにまたがって各LODによって提供される前記寄与を変更することを備えることを特徴とする方法。
27.前記重み付けは、不透明度レベルであることを特徴とする請求項26に記載の方法。
28.前記組み合わされたLODの総不透明度は、100%未満であることを特徴とする請求項27に記載の方法。
29.時間にまたがって前記変更することは、ターゲット値に向かう漸近収束をもたらすことを特徴とする請求項28に記載の方法。
30.LODごとに、不透明度レベルは、複数の頂点のそれぞれについて計算されることを特徴とする請求項29に記載の方法。
31.時間およびスペースにまたがって前記変更することは、目で感知可能な不連続性を減らすように設計されることを特徴とする請求項30に記載の方法。
32.前記重み付けを表す値は、低域フィルタリングされることを特徴とする請求項31に記載の方法。
33.中間最終イメージを表示すること、およびその後に最終イメージを表示することを備える方法であって、前記最終イメージおよび中間最終イメージは、フォービエイテッドな順序でレンダリングされる複数のタイルを備え、表示される中間最終イメージから最終イメージへの遷移は、ナビゲーションが実質的に停止したことの検出に基づいて発生することを特徴とする方法。
34.より低い分解度のタイルは、より高い分解度のタイルの前に表示されることを特徴とする請求項33に記載の方法。
35.前記遷移は、漸進的であることを特徴とする請求項34に記載の方法。
36.ナビゲーションが実質的に停止した後に最終イメージを表示する装置であって、ナビゲーションの発生中、補間されたイメージを表示する手段、およびナビゲーションが実質的に停止したことを検出し、前記最終イメージを表示するために別々のアルゴリズムを使用してベクトルデータおよび非ベクトルデータをレンダリングする手段を備えることを特徴とする装置。
37.前記最終イメージは、ベクトル・データと非ベクトル・データとの両方を含むタイルを有し、当該タイルの少なくとも1つは、このレンダリングを達成するために2つの異なるアルゴリズムを使用してレンダリングされることを特徴とする請求項36に記載の装置。
38.中間イメージから最終イメージにフェードするためにソフトウェアを実装するプロセッサをさらに備えることを特徴とする請求項37に記載の装置。
39.ビジュアル・コンテンツを表示する方法であって、ビジュアル・コンテンツを表す複数のLODを組み合わせること、および前記表示されるビジュアル・コンテンツが漸進的に変化するようにするために前記LODのうちの少なくとも3つに帰せられる寄与を漸進的に変更することを備えることを特徴とする方法。
40.前記寄与は、複数のLOD内の複数のタイルに少なくとも1つの重みを割り当てること、およびその後に前記重みを変更することによって漸進的に変更されることを特徴とする請求項17に記載の方法。
41.前記割り当てることは、少なくとも1つのLOD内の前記タイルのそれぞれに複数の重みを割り当てることを特徴とする請求項40に記載の方法。
42.前記複数の重みは、前記タイルの複数のコーナーのそれぞれでの不透明度、前記タイルの複数のエッジのそれぞれでの不透明度、および前記タイルのそれぞれの中の1ポイントでの不透明度を含むことを特徴とする請求項41に記載の方法。
43.LOD内の複数の位置に関する変数のlevelopacitygridセットを計算することをさらに備え、変数の前記levelopacitygridセットは、前記levelopacitygridが計算される頂点に接する前記LOD内の全タイルについて請求項19に記載の重みのうちの少なくともいくつかを利用することによって計算されることを特徴とする請求項42に記載の方法。
44.少なくとも1つのLODに関する変数の前記levelopacitygridセットをスペース的にフィルタリングすることをさらに備えることを特徴とする請求項43に記載の方法。
45.前記組合せは、より高い分解度のLODからの組合せが、より低い分解度のLODからの寄与を上回って増やされるように行われることを特徴とする請求項17に記載の方法。
(要約)
ナビゲーション中には補間されたイメージを表示し、ナビゲーションが停止するとより正確なイメージを表示することによって、ビジュアル・コンテンツの現実的なナビゲーションを容易にする方法および装置を開示する。知覚可能な不連続性を最小にするために、「タイル」すなわちビジュアル・コンテンツの一部を異なる詳細レベルでレンダリングし、表示する方法論を開示する。
A11
(表題)複数ノード・ディスプレイのシステムおよび方法(A SYSTEM AND METHOD FOR MULTIPLE NODE DISPLAY)
(関連出願)
本願は、その開示が参照によって全体的に本明細書に組み込まれている米国特許仮出願第60/474313号(A4)の利益を主張するものである。
(発明の背景)
本発明は、コンピュータのズーミング・ユーザ・インターフェース(ZUI)に関する ほとんどの今日のグラフィカル・コンピュータ・ユーザ・インターフェースは、固定されたスペース的スケールのビジュアル・コンポーネントを使用して設計されている。ビジュアル・コンテントは、ズーム・インもしくはズーム・アウトまた他の形でそれをナビゲートすることによって操作することができる。しかし、さまざまなオブジェクトの座標をそれによって表すことができる精度は、そのような座標を表すために指定される、通常は16と64との間のビット数によって極端に制限される。この限られた表現サイズのゆえに、限られた精度がある。
ズーミング・ユーザ・インターフェースのコンテクストで、ユーザは、ズーム・インして、その前には単一ピクセルだけをカバーした領域がディスプレイ全体を満たすようにさせることが簡単にできる。逆に、ユーザは、ズーム・アウトし、ディスプレイ全体のコンテンツを、単一ピクセルのサイズに縮小させることができる。各ズーム・インまたはズーム・アウトは、xy座標を多数の桁によって乗算し、または除算することができるので、ほんの1〜2回のそのようなズームが、たとえば64ビット浮動小数点数を用いて使用可能な精度を完全に使い果たす。その後は、丸めが、イメージ品質を顕著に劣化させる。
本発明の目的は、より大きい範囲のズームが可能であるZUIを提供することである。
本発明のもう1つの目的は、座標が表現される精度が、特定のズーム詳細レベルで必要な要求された精度に関連付けられるZUI、を提供することである。本発明のもう1つの目的は、有限の物理サイズの、しかし任意に高い複雑さまたは分解度を有するパン可能かつズーム可能な2次元スペースを、より大きいパン可能かつズーム可能な2次元スペースの明確に定義された領域に埋め込むことを可能にすることである。
本発明のもう1つの目的は、深いズーム・インの後のズーム・アウトが、ウェブ・ブラウザの「戻る」ボタンのように振る舞うことを可能にし、ユーザがビジュアル・ナビゲーションを介するそのユーザのステップをたどりなおす(retrace)ことを可能にすることである。
本発明のもう1つの目的は、ズーム・アウトの直後のズーム・インが、ウェブ・ブラウザの「進む」ボタンに似て振る舞うことを可能にし、ユーザが任意に長いズームアウトの効果を正確に元に戻す(undo)ことを可能にすることである。
本発明のもう1つの目的は、ノードすなわち以下でより正確に定義されるビジュアル・オブジェクトが、非常に多数の子ノード(たとえば、10^28個まで)を有することを可能にすることである。
本発明のもう1つの目的は、ノードが、オン・ザ・フライでそれ自体の子をプログラム的に生成することを可能にし、ナビゲーション中にコンテンツを動的に定義し、作成し、または変更することを可能にすることである。
本発明のもう1つの目的は、このコンテンツが最終的に非常に大量のデータを使用して表現される場合であっても、そのデータがリモート位置に格納され、低帯域幅ネットワークを介して共有される場合であっても、任意に複雑なビジュアル・コンテンツのほぼ即座のビューイングを可能にすることである。
本発明のもう1つの目的は、対話的フレーム・レートを維持しながら、ユーザがビジュアル・コンテンツに任意にズーム・インすることを可能にすることである。
本発明のもう1つの目的は、コンテンツの全体的外見の保存と対話的フレーム・レートの維持との両方の過程で、複雑なビジュア・ルコンテンツの概観を得るために、ユーザが任意にズーム・アウトできるようにすることである。
本発明の上記および他のより広義の目的は、次の明細書の再検討から、当業者に明白になるであろう。
(発明の概要)
本発明の上記および他の目的は、ビジュアル・コンテンツを複数の「ノード」として表示することによって達成される。各ノードは、好ましくはそれ自体の座標系およびレンダリング・メソッドを有するが、1つの親ノード内に含まれることができ、その親ノードの座標系およびレンダリング・メソッドで表されることができる。ユーザが、たとえばズーム・インまたはズーム・アウトによって、このビジュアル・コンテンツをナビゲートするときに、一つのノードが、ズームが適当な詳細レベルをもたらすときに「起動」されるのみである。ノードの起動は、異なるノードの座標系および/またはレンダリング・メソッドではなく、そのノードがそれ自体の座標系および/またはレンダリング・メソッドで表されることを引き起こす。
ノードが起動される前に、そのノードは、親ノードの座標系で表されるか、あるいは全く表されないかのいずれかになる。ノードが必要なときに限ってノードを起動することによって、座標系の精度は、表示されているもののズーム詳細レベルの関数になる。これは、システムが動作するコンピュータのメモリによって許される最大値を含みその最大値までの可変レベルの精度を可能にする。
(図面の簡単な説明)
例示のために、現在好ましい形が図面に示されているが、本発明が、図示の正確な配置および手段に限定されないことを理解されたい。
(図A11−1)ディスプレイ上のビジュアル・コンテンツを示す図である。
(図A11−2)異なる詳細レベルの図A11−1のビジュアル・コンテンツのイメージを示す図である。
(図A11−3)本発明の実施形態を示す図である。
(図A11−4)ディスプレイ上の複数のノードを示す、本発明の例示的実施形態を示す図である。
(図A11−5)図A11−4に示された例示的実施形態に対応するツリー図を示す図である。
(好ましい実施形態の詳細な説明)
本明細書では、ディスプレイがカメラであり、このカメラを介して、ユーザが2次元表面すなわち2Dユニバースの一部を見ることができる、ユーザ・インターフェース・メタファを仮定する。便宜のために、そうする必要はないが、物理的次元をこのユニバースに帰し、その結果、このユニバースを、たとえば1メートルの正方形とすることができるようにする。本発明は、N次元表現に同等に適用可能である。
例示的なユニバースは、2Dオブジェクトすなわちノードを含み、ノードは、ビジュアル表現を有し、動的または対話的(すなわち、ビデオ・クリップ、アプリケーション、編集可能なテキストドキュメント、CAD図面、または静止イメージ)とすることもできる。ノードが可視になるためには、そのノードは、そのノードを全体的にまたは部分的にディスプレイのある領域に描くことができるレンダリング・メソッドに関連付けられなければならない。各ノードは、有限精度のローカル座標系をも与えられる。例示のために、本明細書では、ノードが、四辺形であり、ローカル座標系によって表されると仮定する。
これらの2つのパラメータ、すなわちレンダリング・メソッドおよび座標系は、ノードの表示方法、およびノード内のアイテムの位置を指定する。各ノードは、0個以上の子ノードを有することができ、これらの子ノードは、参照によってアドレッシングされる。ノードは、各子ノードの全情報を含む必要がなく、一般に含まず、その代わりに、子ノードを入手するのに必要な情報を提供するアドレスだけを含む。ユーザがナビゲートし、たとえばズーム・インし、ズーム・アウトするときに、ノードは、たとえば図A11−1に示されているようにスクリーン上に表示される。
一般に、「ノード」は、本発明における機能性の基本単位である。ほとんどのノードは、ナビゲーション中にユーザのディスプレイにビジュアルに現れ、一部のノードは、アニメーションされ、かつ/またはユーザ入力に反応することもできる。ノードは、あるノードが子ノードを含むことができるという点で階層的である。含むノードを、親ノードと呼ぶ。親ノードが子ノードを含むときには、子ノードのビジュアル・マニフェステーション(manifestation)も、親のビジュアル・マニフェステーションに含まれる。各ノードは、論理座標系を有し、親ノードの広がり全体が、この論理座標系内で定義される例示的四辺形に含まれ、たとえば、あるノードは、そのノードが四辺形(0,0)−(100,100)に含まれるように論理座標系を定義することができる。
各ノードは、そのプロパティを定義する次のデータを有することができる。
○その論理サイズ(上の例では100×100)を含む、ノードの論理座標系、
○(親)ノードの論理座標系で指定される、すべての子ノードのアイデンティティ、位置、およびサイズ、
○任意選択として、任意の必要なユーザ・データ、
− 次の動作または「メソッド」を定義する実行可能コード
○「コンストラクション引数」に基づくノード・データの初期化、
○ノードの視覚的外見のすべてまたは一部のレンダリング(このメソッドの出力は、レンダリングされたタイルである)、
○任意選択として、キーボード・イベントまたはマウス・イベントなどのユーザ入力に対する反応。
実行可能コードは、「ノード・クラス」を定義し、多数の「ノード・インスタンス」の間で共有されることができる。ノード・インスタンスは、そのデータ・コンテンツにおいて異なる。したがって、あるノード・クラスは、JPEGイメージをレンダリングするのに必要なロジックを定義することができる。初期化コードに与えられる「コンストラクション引数」は、表示されるJPEGイメージのURLを含むはずである。特定のイメージを表示するノードは、JPEGノード・クラスのインスタンスになることになる。あるノードの複数のインスタンスは、ソフトウェア・アプリケーションを同時に複数回インスタンス化できるのに似た形で、同一のビジュアル・コンテンツ内で見えるものになることができる。
複雑なビジュアルドキュメントまたはアプリケーションでは、通常、必要な機能性を多数の異なる方法でノードに分割することが可能であることに留意されたい。たとえば、複数のイメージ、プルダウン・メニュー、およびボタンを含むスクリプトされたウェブページ様のドキュメントを、複合レンダリング・メソッド(complex rendering)およびユーザ入力メソッドを有する単一のノードとして実装することができる。代替案では、そのドキュメントを、ページの全体的レイアウトを定義するのみの親ノードとして実装し、すべての構成イメージおよびボタンを子ノードとして実装することができる。これは、機能性をより効果的に再利用しまたは「ファクタリングする」という明白な利点を有し、ボタンは、すべてが同一の挙動を有し、したがって、すべてを同一のノード・クラスのインスタンスとすることができ、イメージは、すべてを同一フォーマットとすることができ、したがって、共通のノード・クラスのインスタンスとすることもできるなどである。これは、レイアウトの再配置をも単純化し、親ノードは、子ノードを簡単に移動し、または子ノードのサイズを変更することができる。
本発明によれば、ビジュアル・コンテンツを、ユーザによるナビゲーション入力の状態に依存する形で表示することができる。たとえば、図A11−1に、都市の一部のイメージとすることのできるノード105を示す。ノード105は、子ノード101〜103を含むことができる。ノード101は、この都市内のビルディングのイメージとすることができ、ノード102は、運動場のイメージとすることができ、ノード103は、スポーツアリーナとすることができる。図示のズームのレベルでは、ノード101〜103は、比較的小さく、したがって、これらを、ノード105の座標系内の正しい位置に置かれた、ノード105内の詳細なしの小さい暗くされた領域として表すことができる。ノード105の座標系およびレンダリング・メソッドだけが必要である。
ユーザがズーム・インし、その結果、図A11−2に示されたものなどの異なる詳細レベル(LOD)が生じる場合を考慮されたい。図A11−2のLODでは、ノード101および102は、ビジュアル・コンテンツがはるかにより大きく表示されるという事実に起因して、もはやスクリーン上で可視ではない。さらに、スポーツ・アリーナ・ノード103が表示されるサイズが今ははるかにより大きいので、個々のシート、フィールドなどのスポーツ・アリーナの詳細が、今は表示されなければならないことに留意されたい。
前述を促進するために、スポーツ・アリーナ・ノード103は、今は、ノード105の座標系内で詳細なしの暗くされた領域として表示されるのではなく、それ自体の座標系およびレンダリング・メソッドを使用して表示されるために「起動」される。それ自体の座標系およびレンダリング・メソッドを使用して表示されるときに、シーティング(seating)、競技のフィールドなどの詳細が、個別に示されるはずである。上で述べた、およびノード103に関連する他の機能も、ノード103が起動されるポイントで実行を開始するはずである。ノード103またはこれに関するすべてのノードの起動を引き起こす特定のナビゲーション条件は、設計選択の関数であり、本発明にとってクリティカルではない。
ノード103が表示される精度は、ノード105によって利用される座標系ならびにノード103によって使用される座標系の組み合わされた精度である。したがって、たとえば、前記ノードのそれぞれの座標系が8ビットを利用する場合に、組み合わされた精度は、ノード103の座標系がノード103内のアイテムの位置を指定することだけに利用されるが、ノード105内のノード103の全体的な位置がノード105の座標系内で指定されるので、16ビットになる。このネスティングは、スポーツ・アリーナ103自体がその中に追加ノードを含む場合に繰り返して継続し得ることに留意されたい。たとえば、1つのそのようなノード201を、実際に、このスポーツ・アリーナ内の特定の場内売り場とすることができる。これは、ノード103の座標系およびレンダリング・メソッド内で多くの詳細なしで表される。ユーザが、スポーツ・アリーナ103へのズーム・インを継続するときに、あるポイントで、ノード201が起動される。ノード201が、8ビットの精度を使用して表示される場合に、これらの8ビットは、ノード201座標系内のどこに特定のアイテムが表示されなければならないかを指定する。それでも、ノード103内のノード201の位置は、ノード103の座標系内で8ビットの精度まで維持され、このノード103の位置は、ノード105の座標系内で8ビットを使用して維持される。したがって、ノード201内のアイテムは、最終的に、24ビットの精度を使用して表示される。
ノード内でノードをネストすることによって、ビジュアル・コンテンツを最終的に表示できる精度は、コンピュータのメモリ容量だけによって制限される。ノード内のビジュアル・コンテンツが、そのノードが起動された後に表示される最終的な精度は、効果的に、すべての親ノードの組み合わされた精度および起動されたノードの精度になる。したがって、ネスティングのレベルに応じて、精度を、必要に応じて、コンピュータの格納容量によってのみ制限されて高めることができ、このコンピュータの格納容量は、必ず、十分よりはるかに多い。さらに、高められた精度は、必要なときに限って利用される。というのは、イメージが、起動を必要としないLODにある場合に、上の説明によれば、そのイメージは、そのノードが起動された場合に含まれるノードの精度で表示されるに過ぎないからである。したがって、他のノード内にネストされたノードについて、人が、最も外側のノードから内側に移動するときに、人は、まだ起動されていないノードに最終的に達するまで、起動済みのノードをトラバースすることができる。すべてのそのような未起動ノードおよびさらにその中にあるノードは、起動された最後にトラバースされたノードの精度でのみ表示される。
これは、「アコーディオン」タイプの精度をもたらし、ここで、ビジュアル・コンテンツが表示される精度は、必要に応じて、ユーザのナビゲーション入力による命令に従って伸び縮みし、より高い精度のために必要なときに限ってシステム・リソースを使用することによってシステム・リソースの効率を最大化する。
また、ノードが起動するときに、そのノードの表示が、親ノードの座標およびレンダリング・メソッドに基づくものから子ノードの座標およびレンダリング・メソッドに変化することに留意されたい。その変化は、たとえば、米国特許出願第10/790253号明細書(A10)に記載されているように、ブレンディングの使用を介して最適に漸進的にされる。しかし、親ノードの座標系およびレンダリング・メソッドでの情報の表示から子ノードに漸進的に変化する他の方法論が、可能である。たとえば、特定の範囲にわたって、親から子へのブレンディングが発生するシステムを、プログラムすることができる。次に、ユーザが、ズーム中にその範囲を通ってトラバースするときに、ナビゲーションがその範囲中で止められない限り、切替えが発生し、止められた場合には、ブレンディングは、適当な座標系で完全に表示されるまで継続することができる。
本発明によって解決される追加の問題は、表示中のすべてのノードの間のスペース的相互関係を維持するシステムに関する。より具体的に言うと、ズームおよびパンなどの動的ナビゲーション中に、多くの異なる座標系が、潜在的に異なるノードを表示するのに使用されている。一部のノードは、上で説明したように、単に他のノードの座標系内のイメージとして表示されており、一部のノードは、それ自体の座標系で表示されている。実際に、ビジュアル・ディスプレイ全体に、異なる座標系内の異なる位置に表示されるノードを取り込むことができ、さまざまなノードに使用される座標系および精度は、ナビゲーション中に、ノードが起動されるときに変化する場合がある。したがって、各ノードはそれ自体の座標系を知っているだけなので、ノードが互いに関して正しく置かれていることを保証することが重要である。本発明は、各ノードが、それ自体をレンダリングしなければならない全体的なビュー内での正しい位置を「知る」ようにするために、すべてのノードの間で相対位置情報を伝搬し、必要なときにその情報を更新する技法を提供する。
前述は、ノード構造体へのフィールドの追加および追加のアドレス・スタック・データ構造体を用いて達成することができる。拡張されたノード定義には、本明細書で「view」フィールドと称する、ディスプレイ全体に対して相対的にノード自体を置くのにノードによって使用されるフィールドが含まれる。viewフィールドは、そのノードの座標で、そのノードの可視領域すなわち、そのノードの座標でのディスプレイ四辺形のイメージを表す。この四辺形は、ノードが部分的にオフ・スクリーンであるときなど、そのノードの領域と部分的にオーバーラップするだけである場合がある。明らかに、viewフィールドを、すべてのノードについて必ず更新された状態に保つことはできない。というのは、必ずしも、ナビゲーションが発生するときにリアルタイムでノードの有向グラフ全体をトラバースすることができないからである。
スタック構造体は、次のように定義される。
ここで、このスタックは、クライアント(ディスプレイに接続されたコンピュータ)のグローバル変数である。例示のために、本明細書では、ナビゲーションが、ルート・ノードによって定義されるコンテンツのユニバースの概観から始まると仮定する。その後、このルート・ノードは、viewStackにプッシュされ、ルート・ノードのviewフィールドは、ルート・ノードの領域全体になるように初期化することができる、すなわち、
概略的に言うと、viewStackは、ディスプレイに対する相対的な、1つのポイントによって「貫かれた」ノードのシーケンスのアドレスを指定することになり、このポイントは、この例示的実装では、ディスプレイの中心であるものと解釈される。このシーケンスは、ルート・ノードから始まらなければならないが、無限である場合があり、したがって、切り捨てられなければならない。例示的実施形態では、このシーケンスは、「貫かれた」ノードが、minimumAreaとして定義される、ある最小サイズより小さくなるときに切り捨てられる。次に、現在のビューは、viewStack内のすべてのノードのviewフィールドによって表され、これらのviewフィールドのそれぞれは、ノードのローカル座標系に関して現在のビューを指定する。ユーザが、ユニバースに非常に深くズームした場合に、ディスプレイの詳細な位置は、スタック内の最後のノードのviewフィールドによって最も正確に与えられる。しかし、最後の要素のviewフィールドは、ユニバース全体に対して相対的にではなく、そのローカル座標に対し相対的にユーザの視点を指定するに過ぎない。その一方で、ルート・ノードのviewフィールドは、ユニバース内のどこをユーザが見ているかを指定する。したがって、viewStackの「微細な端」により近いノードは、ユニバース内の徐々に狭くなる面積に対して相対的にではあるが、高まる精度でビュー位置を指定する。これが、図A11−3に概念的に示されており、図A11−3では、起動済みの3つのノードのうちで、ノード303が、その座標系が「最も微細」なので、ユーザが見ているところの最も正確な表示を提供するが、ノード301が、それほど微細ではないが、ビジュアル・コンテンツのはるかにより大きい領域に関する情報を提供することがわかる。
次に、問題は、次のように変換される:すべての可視ノードのビュー(すなわち、viewフィールド)は、ユーザがユニバースを通ってナビゲートする、すなわちパンおよびズームのときに同期化された状態に保たれなければならない。これらを同期化された状態に保つことができないと、ノードが、結合力があり物理的に一貫した2D表面として振る舞うのではなく、互いに独立にディスプレイ上で移動するという外見がもたらされる。
すべてのナビゲーション動作中のビューの変更は、次のように進行する。viewStack内の最後のノードが、ビューの最も正確な表現を有するので、第1ステップは、この最後のノードのviewフィールドを変更することである。この変更されたビューは、正しい新しいビューとして採用され、すべての他の可視ノードは、後について行かなければならない。第2ステップは、この新しいビューをルート・ノードに向かって「上向きに」伝搬させることであり、これには、スタック内でより以前のノードのviewフィールドに対する徐々にますます小さくなる変更を行うことが含まれる。ユーザが深くズームする場合に、上向きの伝搬のあるポイントで、ビューに対する変更が、正確に表現されなくなるほどに非常に小さくなる可能性があり、上向きの伝搬は、このノードで停止する。上向き伝搬の各ステージで、変更は、下向きに他の可視ノードにも伝搬される。したがって、まず、最後のノードの親のビューが変更され、次に、下向きの伝搬で、最後のノードの「姉妹」のビューが変更される。次の上向きの伝搬は、祖父のビューを変更し、第2の下向きの伝搬は、最初の叔父を変更し、次に最初の従兄弟を変更する。下向きの伝搬は、前と同様に、「従兄弟ノード」の面積がminimumAreaより小さくなるとき、またはあるノードが完全にオフ・スクリーンになるときに、停止される。
前述の技法は、さまざまなノードのレイアウトをツリーに変換することを伴い、これは、概念的に図A11−4および5に示されている。図A11−4および−5からわかるように、ノードの特定の表示されるセットの対応するツリーがあり、このツリー構造を使用して、前に説明したようにビュー情報を伝搬させることができる。
パン動作は、最後のノードがもはやviewStackに属さなくなるのに十分に遠くに、その最後のノードを移動する場合がある。その代わりに、ズーム・インが、viewStackを延ばすことが必要になる範囲まで子を拡大する場合があり、あるいは、ズーム・アウトが、最後のノードの面積を最小面積未満にし、viewStackの切捨を必要にする場合がある。これらの場合のすべてで、最後のノードのアイデンティティが変化する。これらの情況は、下向き伝搬中に検出され、これによって、viewStackがそれ相応に変更され、潜在的にviewStackがより長くなるかより短くなる場合がある。
前述の1つの単純な場合が、ズーム中に、あるノードが起動され、その結果、いまそのノードが、ビュー・スタックに置かれることを必要とすることである。もう1つの例は、ズーム・アウトによって、前に可視のノードが、ビュー・スタックから除去されなければならないほどに小さくなることである。
このアイデアの拡張は、長い外向きのズームに反応する即座のviewStackの切捨を回避することである。viewStackの切捨は、ユーザがその後にパンする場合に限って必要である。長い外向きのズームは、深くズームされたノードのviewフィールドに非常に大きく(したがって、数値的に不正確に)ならせるが、ビュー四辺形の中心ポイントを表すフィールド
をNode構造体に追加することができ、したがって、パンなしのズームは、どのノードのviewCenterフィールドも変更しない。この構成は、極端なズーム・アウト後に、直ちにその逆のズーム・インが続くことを可能にする。viewStackは、変更されないままなので、ユーザは、開始したビューに正確に戻ることができる。この挙動は、ウェブ・ブラウザの「戻る」ボタンおよび「進む」ボタンに似ており、「戻る」は、ズーム・アウトに類似し、「進む」は戻るズーム・インに類似する。ウェブ・ブラウザでは、ユーザが、前のウェブ・ページに戻るために「戻る」を使用するが、その後、代替リンクを後続させると、この時点で、「進む」が働くのを止める。したがって、代替リンクを後続させることは、ズーム・アウトの後のパンに類似する。
前述は、アプリケーションが走っているコンピュータ・システムの容量だけによって制限される実質的に無限の精度で、さまざまな形でビジュアル・コンテンツを表示でき、ナビゲートできることを提供する。任意の所与のときに表示されるビジュアル・コンテンツは、ノードのアセンブリとして表示され、ここで、特定のビューに必要なノードだけが、起動済みであり、すべての他のノードは、別のノードの一部として起動されることなく表示されるか、全く表示されない。さまざまな他の実施形態が当業者に明白になること、および本発明が本明細書で説明された実施形態に限定されないことを理解されたい。
(請求の範囲)
1.ビジュアル・コンテンツを表示する方法であって、前記ビジュアル・コンテンツは、少なくとも2つのノードを備え、前記方法は、少なくとも第1ノードおよび少なくとも第2ノードに関連付けられた前記ビジュアル・コンテンツを、事前に決定されたナビゲーション条件が検出されるまで前記第1ノードのレンダリング・メソッドおよび座標系を使用して表示すること、および前記事前に決定されたナビゲーション条件が検出された後に前記第2ノードのレンダリング・メソッドおよび座標系を使用して前記第2ノードを表示することを備えることを特徴とする方法。
2.前記レンダリング・メソッドまたは前記座標系のうちの少なくとも1つは、前記第1ノードと前記第2ノードとの間で異なることを特徴とする請求項1に記載の方法。
3.前記事前に決定されたナビゲーション条件は、ディスプレイのサイズであることを特徴とする請求項2に記載の方法。
4.複数のノードに編成されたビジュアル・コンテンツを表示する方法であって、第1ノードに関連付けられたビジュアル・コンテンツを、ズームの規定された範囲の間にそれ自体の座標系を使用して表示すること、およびズームの前記規定された範囲の外部で第2ノードの座標系を使用して前記第1ノードに関連付けられたビジュアル・コンテンツを表示することを備えることを特徴とする方法。
5.前記第1ノードは、前記第2ノード内にあることを特徴とする請求項4に記載の方法。
6.前記第1ノードは、ズームの前記範囲の間にはそれ自体のレンダリング・メソッドを使用して、ズームの前記範囲の外部では前記第2ノードのレンダリング・メソッドを使用して表示されることを特徴とする請求項5に記載の方法。
7.ズームの前記範囲の境界では、前記ビジュアル・コンテンツは、第1レンディションから第2レンディションへのブレンディングによって表示されることを特徴とする請求項4または6に記載の方法。
8.前記第2ノードは、前記第1ノードへのポインタを含むことを特徴とする請求項7に記載の方法。
9.前記第2ノードは、前記第1ノードのサイズおよび位置を示す情報をも含むことを特徴とする請求項8に記載の方法。
10.前記第1レンディションおよび前記第2レンディションは、異なる座標系を使用することを特徴とする請求項7に記載の方法。
11.前記第1レンディションおよび前記第2レンディションは、異なるレンダリング・メソッドを使用することを特徴とする請求項7に記載の方法。
12.前記第1レンディションおよび前記第2レンディションは、異なるレンダリング・メソッドおよび異なる座標系を使用することを特徴とする請求項7に記載の方法。
13.ビジュアル・コンテンツを表示する方法であって、第1ノードに関連付けられたビジュアル・コンテンツを、ズームの第1範囲の間に第2ノードの座標系およびレンダリング・メソッドを使用して表示すること、前記第1ノードに関連付けられた前記ビジュアル・コンテンツを、ズームの第2範囲の間にそれ自体の座標系およびレンダリング・メソッドを使用して表示すること、およびズームの第3範囲の間に前記第1ノードに関連付けられた前記ビジュアル・コンテンツを表示するのを止めることを備えることを特徴とする方法。
14.前記ビジュアル・コンテンツは、ズームの前記第1および第2の範囲の境界とズームの前記第2および第3の範囲の境界とで漸進的にブレンディングされることを特徴とする請求項13に記載の方法。
15.事前に決定されたサイズより大きい、前記ディスプレイに対する相対的なポイントによって貫かれたすべてのノードのビューのビュー・スタックを生成すること、前記ノードのうちの1つに関連付けられたビューを選択すること、および前記ビューを、それに関連付けられたビジュアル・コンテンツが表示される他のノードに伝搬させることを備えることを特徴とする方法。
16.少なくとも2つのノードに関連付けられたビジュアル・コンテンツは、実質的に同時に表示されることを特徴とする請求項15に記載の方法。
17.関連付けられた前記ビューは、それが伝搬される各ノードによって、そのノード自体の座標系に変換されることを特徴とする請求項16に記載の方法。
18.前記選択されたビューは、その後にビューイング可能なビジュアル・コンテンツに関連付けられた複数のノードに向けて、上向きに、その後、下向きに伝搬されることを特徴とする請求項17に記載の方法。
19.前記上向きの伝搬および前記下向きの伝搬は、伝搬しようとするノードが指定された条件を満足するときに、そのノードへの伝搬が止まることを特徴とする請求項18に記載の方法。
20.前記指定された条件のうちの少なくとも1つは、サイズであることを特徴とする請求項19に記載の方法。
21.前記ビュー・スタック内のエントリは、前記ビジュアル・コンテンツのナビゲーションに基づいて削除されまたは追加されることを特徴とする請求項20に記載の方法。
22.前記ビュー・スタック内で表され、表示されるノードは、ズーム・アウト動作の後にもはや表示されないが、それでも前記ビュー・スタック上で維持され、これによって正確に再ズーム・インすることを可能にすることを特徴とする請求項21に記載の方法。
23.複数のノードのそれぞれに関連付けられたビジュアル・コンテンツを実質的に同時に表示する方法であって、各ノードは、それ自体の座標系を有し、前記方法は、各ノードがディスプレイ領域内のそれ自体の位置を示す情報を導出すること、および前記ディスプレイ領域内で実質的に同時に前記ノードのそれぞれに関連付けられたビジュアル・コンテンツを表示することを備えることを特徴とする方法。
24.前記導出することは、少なくとも1つのノードについて、もう1つのノードから位置情報を受け取ること、および前記位置情報を第1座標系から第2座標系に変換することを含むことを特徴とする請求項23に記載の方法。
25.前記位置情報は、前記ディスプレイ領域内の事前に決定された位置に関連付けられた位置であることを特徴とする請求項24に記載の方法。
26.前記ノードのそれぞれに関連付けられたビジュアル・コンテンツは、特定のノードに関連付けられたレンダリング・メソッドを使用して表示されることを特徴とする請求項25に記載の方法。
27.ビジュアル・コンテンツを表示する方法であって、第1座標系を有する第1ノードを表示すること、前記座標系内で第2ノードを表示すること、およびその後、ユーザによるナビゲーションに応答して前記第2ノードをそれ自体の座標系内で表示することを備えることを特徴とする方法。
28.前記第2座標系は、前記第1座標系より正確であることを特徴とする請求項27に記載の方法。
29.座標系に関連付けられた精度は、桁数単位で測定され、前記桁数は、可変であることを特徴とする請求項28に記載の方法。
30.関連付けられた前記精度は、前記方法が動作しているコンピュータの記憶容量によって制限される最大値まで変化することを特徴とする請求項29に記載の方法。
31.ディスプレイ上にビジュアル・コンテンツを表示する方法であって、それぞれが指定された座標系内にある複数のサイズの複数のノードを表示することを備え、各座標系は精度を有し、座標系が表示される前記精度は、前記ノードが表示されるサイズに依存することを特徴とする方法。
32.前記精度は、可変であり、ノードが表示される前記座標系がナビゲーション中に変化するときに増えることを特徴とする請求項31に記載の方法。
33.前記精度は、可変であり、ノードが表示される前記座標系がナビゲーション中に変化するときに減ることを特徴とする請求項32に記載の方法。
34.第1座標系でノードを表示すること、およびナビゲーションの事前定義の範囲の間に前記第1座標系から前記第2座標系に漸進的にブレンディングすることによって第2座標系で前記ノードを表示することを備えることを特徴とする方法。
35.前記ノードに使用されるレンダリング・メソッドも、第1のそのようなレンダリング・メソッドから第2のレンダリング・メソッドへ漸進的に変化することを特徴とする請求項34に記載の方法。
36.前記ナビゲーションは、ズームまたはパンのいずれかを備えることを特徴とする請求項35に記載の方法。
37.ビューに関する情報は、前記ナビゲーションが発生するときに複数のノードの間で伝搬されることを特徴とする請求項36に記載の方法。
38.前記伝搬は、数学的ツリーを使用して達成されることを特徴とする請求項37に記載の方法。
(要約)
必要なときだけに起動されるノードを利用するビジュアル・コンテンツの表示の方法を開示する。ノードは、適当なときに、別のノード、おそらくは親ノードの座標系でレンダリングされ、かつ/または表示されることができる。ディスプレイ・オブジェクトの精度向上が達成される。
A12
(表題)イメージをナビゲートする方法および装置(METHODS AND APPARATUS FOR NAVIGATING AN IMAGE)
(関連出願)
本願は、その開示全体が参照によって本明細書に組み込まれている、2003年3月12日に出願した米国特許仮出願第60/453897号(A2)、名称「SYSTEM AND METHOD FOR FOVEATED, SEAMLESS, PROGRESSIVE RENDERING IN A ZOOMING USER INTERFACE」の利益を主張するものである。
(発明の背景)
本発明は、滑らかで連続的なナビゲーション動きについての外見を提供する形で、オブジェクトのイメージ上で、ズームおよびパンなど、ナビゲートする方法および装置に関する。
ほとんどの普通のグラフィカル・コンピュータ・ユーザ・インターフェース(GUI)は、固定されたスペース的スケールのビジュアル・コンポーネントを使用して設計されているが、ビジュアル・コンポーネントを、ディスプレイ上で固定されたスペース的スケールを有しないように表現し、操作することができることが久しく認められており、実際に、ビジュアル・コンポーネントをパンし、かつ/またはズーム・インもしくはズーム・アウトすることができる。イメージにズーム・インし、ズーム・アウトする能力は、たとえば、地図を見ること、新聞などのテキスト・レイアウトのブラウジング、ディジタル写真を見ること、青写真または図面を見ること、および他の大きいデータ・セットを見ることに関連して望ましい。
Microsoft Word、Adobe Photo Shop、Adobe Acrobatなどの多数の既存のコンピュータ・アプリケーションには、ズーム可能なコンポーネントが含まれる。一般に、これらのコンピュータ・アプリケーションによって提供されるズーム機能は、ソフトウェアとのユーザの対話の周辺態様であり、ズーム機能は、時々用いられるだけである。これらのコンピュータ・アプリケーションは、ユーザが、滑らかに連続的にイメージ上でパンする(たとえば、スクロール・バーまたはカーソルを使用して、見られるイメージを左、右、上、または下に平行移動する)ことを可能にする。しかし、そのようなコンピュータ・アプリケーションに関する重要な問題は、これらのコンピュータ・アプリケーションが、ユーザが滑らかに連続的にズームすることを可能にしないことである。実際に、これらのコンピュータ・アプリケーションは、10%、25%、50%、75%、100%、150%、200%、500%など、離散的ステップでのズームを提供する。ユーザは、カーソルを使用して所望のズームを選択し、それに反応して、イメージは、選択されたズーム・レベルに不意に変化する。
不連続ズームの望ましくない質は、インターネットベースのコンピュータ・アプリケーションにも存在する。www.mapquest.comのウェブ・サイトを基礎とするコンピュータ・アプリケーションが、このポイントを示す。MapQuestウェブ・サイトは、ユーザが、1つまたは複数の住所を入力し、それに反応して道路地図のイメージを受信することを可能にする。図A12−1〜−4は、米国ニューヨーク州ロングアイランドの地域地図のクエリに反応してMapQuestウェブ・サイトから入手できるイメージの例である。MapQuestウェブ・サイトは、ユーザが、10レベルなどの離散レベルにズーム・インし、ズーム・アウトすることを可能にする。図A12−1は、約100メートル/ピクセルであるズーム・レベル5のレンディションである。図A12−2は、約35メートル/ピクセルであるズーム・レベル6のイメージである。図A12−3は、約20メートル/ピクセルであるズーム・レベル7のイメージである。図A12−4は、約10メートル/ピクセルであるズーム・レベル9のイメージである。
図A12−1〜−4を比較することによってわかるように、ズーム・レベルの間の不意の遷移は、ズーム・アウトするときの突然の不意の詳細の消失およびズーム・インするときの突然の不意の詳細の追加をもたらす。たとえば、地方道路、二級道路、または連絡道路は、図A12−1(ズーム・レベル5)では見ることができないが、二級道路および連絡道路は、まさに次のズームレ・ベルである図A12−2で突然に現れる。そのような不意の不連続性は、MapQuestウェブ・サイトを利用するときに非常に不愉快である。しかし、MapQuestソフトウェア・アプリケーションが、たとえばズーム・レベル5(図A12−1)で一般道路のビューを許容するように変更された場合であっても、結果は、それでも不満足であることに留意されたい。地図の視覚的密度は、ズーム・レベルに伴って変化するはずであり、あるズームのレベルで、結果が満足になる可能性がある(たとえば、レベル7すなわち図A12−3で)が、ズームインしたときに、道路が太くはならず、地図が非常にまばらに見えるようになるはずである。ズーム・アウトしたときには、道路は、最終的に互いに合体し、急速に、個々の道路が区別不能になる、中身の詰まった入れ子(solid nest)を形成することになる。
道路地図のイメージについて滑らかで連続的なズームを提供する能力は、道路カテゴリに関連付けられたさまざまなレベルの粗さ(coarseness:雑然さ、洗練されていないこと)のゆえに問題をはらんでいる。米国には、道路の約5つのカテゴリ(米国勢調査局によって配布されるTIGER/Line Dataの下での分類による)、A1すなわち一級主要道路、A2すなわち一級道路、A3すなわち州道、二級道路、および連絡道路、A4すなわち一般道路、都市街路、および田舎道、ならびにA5すなわち未舗装道路がある。これらの道路は、全体的なオブジェクト(すなわち、道路地図)の要素と考えることができる。道路要素の粗さは、A3道路よりかなり多数のA4道路があり、A2道路よりかなり多数のA3道路があり、A1道路よりかなり多数のA2道路があるということに現れる。さらに、道路の物理的寸法(たとえば、その幅)は、大きく変化する。A1道路は、約16メートル幅である場合があり、A2道路は、約12メートル幅である場合があり、A3道路は、約8メートル幅である場合があり、A4道路は、約5メートル幅である場合があり、A5道路は、約2.5メートル幅である場合がある。
MapQuestコンピュータ・アプリケーションは、特定のズーム・レベルで適当と思われる道路カテゴリだけを表示することによって、この変化するレベルの粗さを扱う。たとえば、国全体のビューは、A1道路だけを示すことができ、州全体のビューは、A1道路およびA2道路を示すことができ、郡全体のビューは、A1道路、A2道路、およびA3道路を示すことができる。MapQuestが、道路地図の連続的ズームを可能にするように変更された場合であっても、この手法は、ズーム中の道路カテゴリの突然の出現および消滅につながり、これは、混乱を招き、視覚的に不愉快である。
前述に鑑みて、当技術分野には、オブジェクトの要素のサイズまたは重要性に基づいて、それらの要素の間の視覚的区別を保存すると同時に、イメージの滑らかで連続的なズームを許容する、複雑なオブジェクトのイメージをナビゲートする新しい方法および装置が必要とされている。
(発明の概要)
本発明の1つまたは複数の態様によれば、少なくとも1つのオブジェクトを有するイメージのズーム・インまたはズーム・アウトを含むさまざまなアクションを実行する方法および装置が企図され、ここで、少なくとも1つのオブジェクトの少なくともいくつかの要素は、ズームに関連する1つまたは複数のズーム・レベルに非物理的比例する(non−physically proportional)形でスケール・アップされかつ/またはスケール・ダウンされる。
非物理的比例スケーリング(non−physically proportional scaling)は、次の公式p=c・d・zaによって表すことができ、pは、ズーム・レベルでのオブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、cは、定数であり、dは、オブジェクトの1つまたは複数の要素の物理単位での直線サイズであり、zは、物理直線サイズ/ピクセルの単位でのズーム・レベルであり、aは、スケール・パワー(scale power:スケールを表す「ベキ」数)であり、a≠−1である。
非物理的スケーリングの下では、スケール・パワーaは、ズーム・レベルz0およびz1の範囲内で−1と等しくなく(通常は−1<a<0である)、z0は、z1より小さい物理直線サイズ/ピクセルを有する。z0およびz1のうちの少なくとも1つは、オブジェクトの1つまたは複数の要素について変化することができることが好ましい。a、c、およびdも、要素ごとに異なることができることに留意されたい。
少なくとも1つのオブジェクトの少なくともいくつかの要素は、ズームに関連する1つまたは複数のズーム・レベルに物理的比例する(physically proportional)形でもスケール・アップされ、かつ/またはスケール・ダウンされることができる。物理的比例するスケーリングは、公式、p=c・d/zによって表すことができ、pは、ズーム・レベルでのオブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、cは、定数であり、dは、オブジェクトの1つまたは複数の要素の物理単位での直線サイズであり、zは、物理直線サイズ/ピクセルの単位でのズーム・レベルである。
このドキュメントで、これまでに説明した、および/または後で説明する方法および装置を、標準ディジタル回路、アナログ回路、ソフトウェアおよび/またはファームウェア・プログラムを実行するように動作するすべての既知のプロセッサ、プログラマブル・ディジタル・デバイスまたはプログラマブル・ディジタル・システム、プログラマブル・アレイ・ロジック・デバイス、あるいは上記の任意の組合せなど、既知のテクノロジのどれを利用しても達成できることに留意されたい。本発明は、適切な記憶媒体での格納した、および処理ユニットによる実行のための、ソフトウェア・プログラムの形で実現することもできる。
オブジェクトの要素は、変化する度合の粗さ(varying degrees of coarseness)を有するものとすることができる。たとえば、上で述べたように、道路地図オブジェクトの要素の粗さは、A3道路よりかなり多数のA4道路があり、A2道路よりかなり多数のA3道路があり、A1道路よりかなり多数のA2道路があるということに現れる。道路カテゴリの粗さの度合は、平均道路長、交差点の頻度、および最大曲率などのプロパティにも現れる。他のイメージ・オブジェクトの各エレメントの粗さは、その全体をリストするには多すぎる他の複数の形で、現れる可能性がある。したがって、所与の事前に決定されたイメージ内の要素のスケーリングは、(i)上記要素の粗さの度合および(ii)所与の事前に決定されたイメージのズーム・レベルのうちの少なくとも1つに基づいて物理的比例するまたは非物理的比例するものとすることができる。たとえば、オブジェクトは、道路地図とすることができ、オブジェクトの要素は、道路とすることができ、変化する度合の粗さは、道路階層とすることができる。したがって、所与の事前に決定されたイメージ内の所与の道路のスケーリングは、(i)所与の道路の道路階層および(ii)所与の事前に決定されたイメージのズーム・レベルに基づいて物理的比例するまたは非物理的比例するものとすることができる。
本発明の1つまたは複数のさらなる態様によれば、道路地図の変化するズーム・レベルの複数の事前レンダリングされたイメージをクライアント端末で受信すること、ズーム情報を含む1つまたは複数のユーザ・ナビゲーション・コマンドをクライアント端末で受け取ること、およびクライアント端末での中間イメージの表示が滑らかなナビゲーションの外見を提供するように、事前レンダリングされたイメージのうちの複数をブレンディングして、ナビゲーション・コマンドのズーム情報に対応する中間ズーム・レベルについての中間イメージの中間イメージを入手すること、を含むさまざまなアクションを実行するための方法および装置が企図される。
本発明の1つまたは複数のさらなる態様によれば、さまざまなアクションを実行するための方法および装置が企図され、このアクションには、
・少なくとも1つのオブジェクトについてズーム・レベルを変化させた複数の事前レンダリングされたイメージ、
・複数の事前に決定されたイメージを作るために、スケール・アップされ、かつ/またはスケール・ダウンされた少なくとも1つのオブジェクトからなる少なくともいくつかの要素、
・スケーリングであって、(i)ズーム・レベルに物理的比例する、および(ii)ズーム・レベルに非物理的比例する、のうちの少なくとも1つのスケーリング
をクライアント端末で受信すること、
ズーム情報を含む1つまたは複数のユーザ・ナビゲーション・コマンドをクライアント端末で受信すること、
ナビゲーション・コマンドのズーム情報に対応する中間ズーム・レベルについての中間イメージを入手するために、事前レンダリングされたイメージのうちの複数をブレンディングすること、および
中間イメージをクライアント端末で表示すること
が含まれる。
本発明の1つまたは複数のさらなる態様によれば、道路地図についてズーム・レベルを変化させた複数の事前レンダリングされたイメージを通信チャネルを介してクライアント端末に送信すること、複数の事前レンダリングされたイメージをクライアント端末で受信すること、クライアント端末を使用してズーム情報を含む1つまたは複数のユーザ・ナビゲーション・コマンドを発行すること、事前レンダリングされたイメージのうちの2つ以上をブレンディングして、ナビゲーション・コマンドのズーム情報に対応する中間ズームレベルの中間イメージを生成し、当該中間イメージのクライアント端末での表示が滑らかなナビゲーションの外見をもたらすようにすること
を含むさまざまなアクションを実行するための方法および装置が企図される。
本発明の1つまたは複数のさらなる態様によれば、さまざまなアクションを実行するための方法および装置が企図され、このアクションには、
・少なくとも1つのオブジェクトについてズーム・レベルを変化させた複数の事前レンダリングされたイメージ、
・複数の事前レンダリングされたイメージを作るために、スケール・アップされ、かつ/またはスケール・ダウンされた少なくとも1つのオブジェクトからなる少なくともいくつかの要素、
・スケーリングであって、(i)ズーム・レベルに物理的比例する、および(ii)ズーム・レベルに非物理的比例する、のうちの少なくとも1つのスケーリング
を通信チャネルを介してクライアント端末に送信すること、 複数の事前レンダリングされたイメージをクライアント端末で受信すること、
クライアント端末を使用してズーム情報を含む1つまたは複数のユーザ・ナビゲーション・コマンドを発行すること、
事前レンダリングされたイメージのうちの2つをブレンディングして、ナビゲーション・コマンドのズーム情報に対応する中間ズーム・レベルについての中間イメージを入手すること、および
中間イメージをクライアント端末で表示すること
が含まれる。
本発明の他の態様、機能、および利点は、添付図面と共に本明細書の説明を解釈するときに、当業者に明白になるであろう。
(図面の簡単な説明)
本発明を例示するために、現在好ましい形が図面に示されているが、本発明が図示された正確な配置および手段に限定されないことを理解されたい。
(図A12−1)ズーム・レベル5である、MapQuestウェブ・サイトからとられたイメージを示す図である。
(図A12−2)ズーム・レベル6である、MapQuestウェブ・サイトからとられたイメージを示す図である。
(図A12−3)ズーム・レベル7である、MapQuestウェブ・サイトからとられたイメージを示す図である。
(図A12−4)ズーム・レベル9である、MapQuestウェブ・サイトからとられたイメージを示す図である。
(図A12−5)本発明の1つまたは複数の態様による約334メートル/ピクセルのズーム・レベルで作られたロングアイランドのイメージを示す図である。
(図A12−6)本発明の1つまたは複数のさらなる態様による約191メートル/ピクセルのズーム・レベルで作られたロングアイランドのイメージを示す図である。
(図A12−7)本発明の1つまたは複数のさらなる態様による約109.2メートル/ピクセルのズーム・レベルで作られたロングアイランドのイメージを示す図である。
(図A12−8)本発明の1つまたは複数のさらなる態様による約62.4メートル/ピクセルのズーム・レベルで作られたロングアイランドのイメージを示す図である。
(図A12−9)本発明の1つまたは複数のさらなる態様による約35.7メートル/ピクセルのズーム・レベルで作られたロングアイランドのイメージを示す図である。
(図A12−10)本発明の1つまたは複数のさらなる態様による約20.4メートル/ピクセルのズーム・レベルで作られたロングアイランドのイメージを示す図である。
(図A12−11)本発明の1つまたは複数のさらなる態様による約11.7メートル/ピクセルのズーム・レベルで作られたロングアイランドのイメージを示す図である。
(図A12−12)本発明の1つまたは複数のさらなる態様による、イメージの滑らかで連続的なナビゲーションを提供するために実行することのできるプロセス・ステップを示すフローチャートである。
(図A12−13)本発明のさまざまな態様による、イメージを滑らかにナビゲートするために実行することのできるさらなるプロセス・ステップを示すフローチャートである。
(図A12−14)本発明の1つまたは複数のさらなる態様による、ピクセル単位の線幅対物理的スケーリングおよび非物理的スケーリングを示すメートル/ピクセル単位のズーム・レベルを示す両対数グラフである。
(図A12−15)図A12−14の物理的スケーリングおよび非物理的スケーリングの変形形態を示す両対数グラフである。
(図A12−16A)その端点がピクセル座標に正確にセンタリングされたアンチ・エイリアシングされた垂直線を示す図である。
(図A12−16B)その端点がピクセル座標に正確にセンタリングされたアンチ・エイリアシングされた垂直線を示す図である。
(図A12−16C)その端点がピクセル座標に正確にセンタリングされたアンチ・エイリアシングされた垂直線を示す図である。
(図A12−16D)その端点がピクセル座標に正確にセンタリングされたアンチ・エイリアシングされた垂直線を示す図である。
(図A12−17A)端点が正確なピクセル座標になるように位置決めされてはいない、傾いたアンチ・エイリアシングされた線を示す図である。
(図A12−17B)端点が正確なピクセル座標になるように位置決めされてはいない、傾いたアンチ・エイリアシングされた線を示す図である。
(図A12−17C)端点が正確なピクセル座標になるように位置決めされてはいない、傾いたアンチ・エイリアシングされた線を示す図である。
(図A12−18)増分線幅を示す水平線と、2つの隣接する垂直線の間のインターバルにまたがる線幅が2ピクセルを超えて変化しないようにスペースをおかれた垂直線とを含む、図A12−14の線幅対ズーム・レベルを示す両対数グラフである。
(発明の詳細な説明)
ここで図面を参照すると、図面では、類似する符号が類似する要素を示すが、図A12−5〜−11に、米国ニューヨーク州ロングアイランドの道路網を表す一連のイメージが示されており、各イメージは、異なるズーム・レベル(または分解度)である。本発明がどのように実装されるかの技術的詳細を調べる前に、これらのイメージを、本発明の使用から得られた望ましい特徴、すなわち、少なくとも、情報の完全性を維持しながらの、滑らかで連続的なナビゲーション、特にズームの外見に関連して、これから述べる。
以下で述べる本発明のさまざまな態様を、道路地図イメージのナビゲーション以外のコンテクストに適用できることに留意されたい。実際に、それについて本発明を用いることのできるイメージおよび実装の範囲は、その全体をリストするには多すぎる。たとえば、本発明の機能を、人間の解剖学、複雑なトポグラフィ、配線図または青写真などの工学図面、ジーン・オントロジ(gene ontology)などのイメージをナビゲートするのに使用することができる。しかし、本発明は、その要素が、変化する詳細レベルまたは粗さを有するイメージをナビゲートすることに特定の適用可能性を有することがわかっている。したがって、短く明瞭にするために、本発明のさまざまな態様を、特定の例すなわち、道路地図のイメージに関連して述べる。
滑らかで連続的なズームの外見を、特許文書内で示すことは不可能であるが、この特徴は、Pentium(登録商標)ベース・コンピュータ上で適切なソフトウェア・プログラムを実行することによる実験およびプロトタイプ開発を介して実証された。図A12−5に示された道路地図のイメージ100Aは、物理的長さ/ピクセル(または物理的直線サイズ/ピクセル)の単位の特徴があるものとすることのできるズーム・レベルである。言い換えると、ズーム・レベルzは、イメージ100Aの単一ピクセルが表す実際の物理直線サイズを表す。図A12−5では、ズーム・レベルは、約334メートル/ピクセルである。当業者は、請求される本発明の趣旨および範囲から逸脱せずに、ズーム・レベルを他の単位で表すことができることを諒解するであろう。図A12−6は、図A12−5と同一であるが、ズーム・レベルzが約191メートル/ピクセルである道路地図のイメージ100Bである。
本発明の1つまたは複数の態様によれば、本発明の1つまたは複数の態様を実施するソフトウェア・プログラムのユーザは、図A12−5および−6に示されたレベルの間でズーム・インし、またはズーム・アウトすることができる。そのようなズームが、334メートル/ピクセルレベル(図A12−5)から191メートル/ピクセル・レベル(図A12−6)およびその間の任意のレベルへ/からの滑らかで連続的な遷移の外見を有することに留意することが重要である。同様に、ユーザは、z=109.2メートル/ピクセル(図A12−7)、z=62.4メートル/ピクセル(図A12−8)、z=35.7メートル/ピクセル(図A12−9)、z=20.4メートル/ピクセル(図A12−10)、およびz=11.7メートル/ピクセル(図A12−11)など、他のレベルにズームすることができる。やはり、これらのズーム・レベルおよびそれらの間のすべてのレベルを通る遷移は、滑らかで連続的な動きの外見を有利に有する。
図A12−5〜−11に示された本発明のもう1つの重要な特徴は、あるレベルから別のレベルにズームするときに、詳細がほとんどまたは全く、不意に現れたり、消滅したりしないことである。図A12−8(z=62.4メートル/ピクセルのズーム・レベル)に示された詳細は、図A12−5(334メートル/ピクセルのズーム・レベル)でも見つけることができる。これは、この例では道路地図であるイメージ・オブジェクトが、変化する度合の粗さの要素(すなわち、道路)を含む場合であってもそうである。実際に、図A12−8の道路地図100Dには、少なくとも102などのA1主要道路、104などのA3二級道路、および106などのA4地方道路が含まれる。それでも、これらの詳細は、A4地方道路106であっても、まだ図A12−5のイメージ100Aで見ることができ、図A12−5は、図A12−8のイメージ100Dと比較してかなりズーム・アウトされている。
さらに、A4地方道路106を、z=334メートル/ピクセル(図A12−5)のズーム・レベルで見ることができるが、A1道路、A2道路、A3道路、およびA4道路を、互いから区別することができる。A1一級主要道路102とA2一級道路108との間の差であっても、レンダリングされたイメージ100A内でそのような道路に与えられる相対重みに関して、互いに区別することができる。
道路階層の間で区別する能力は、ユーザが、たとえば図A12−10のイメージ100Fに示されたz=20.4メートル/ピクセルのズーム・レベルまでズーム・インし続けるときにも有利に維持される。A1一級主要道路102の重みは、図A12−8のz=62.4メートル/ピクセルのズーム・レベルと比べて大きく増えるが、A4地方道路106またはA5未舗装道路などの他の詳細を覆い隠すほどの範囲まで増えはしない。それでも、A4地方道路106など、より下位の階層レベルの道路の重みは、図A12−8のズーム・レベルz=62.4メートル/ピクセルでの対応物と比べて、重みにおいて大きく増える。
したがって、図A12−5に示されたものと図A12−11に示されたものとの間のズーム・レベルのダイナミックレンジは、かなりのものであり、詳細は、実質的に一貫したままである(すなわち、道路は、滑らかにズームしている間に突然に現れも消えもしない)が、ユーザが所与のズーム・レベルで入手しようと努める情報は、望ましくないアーチファクトによって隠されはしない。たとえば、z=334メートル/ピクセルのズーム・レベル(図A12−5)では、ユーザは、どの一級主要道路が存在し、それらがどの方向に伸びるかの全般的な感じを得ることを望む場合がある。この情報は、A4地方道路106も表示される場合であっても、たやすく得ることができる。z=62.4メートル/ピクセル(図A12−8)というズーム・レベルでは、ユーザは、特定のA1一級主要道路102またはA2一級道路108が特定の都市またはその近隣にサービスするかどうかを決定することを望む場合がある。やはり、ユーザは、A4地方道路106またはA5未舗装道路の存在および広がりなど、他のはるかにより詳細な情報からの干渉なしに、この情報を入手することができる。最後に、11.7メートル/ピクセルのズーム・レベルでは、ユーザは、112などの特定のA4地方道路を見つけることに関心を持つ場合があり、A1一級主要道路102などの大幅により大きい道路による干渉なしにそれを行うことができる。
上で述べた本発明のさまざまな態様のうちの1つまたは複数を達成するために、1つまたは複数のコンピューティング・デバイスが、そのコンピューティング・デバイスに適当なアクションを実行させる1つまたは複数のソフトウェア・プログラムを実行することが企図されている。これに関して、図A12−12〜−13をこれから参照するが、図A12−12〜−13は、好ましくは1つまたは複数のコンピューティング・デバイスおよび/または関連機器によって実行されるプロセス・ステップを示すフローチャートである。
このプロセス・フローは、市販コンピューティング機器(Pentium(登録商標)ベースのコンピュータなど)によって実行されることが好ましいが、複数の他の技法のどれであっても、請求される本発明の趣旨および範囲から逸脱せずに、これらのプロセス・ステップを実行するのに用いることができる。実際に、用いられるハードウェアは、標準的なディジタル回路、アナログ回路、ソフトウェアおよび/またはファームウェア・プログラムを実行するように動作するすべての既知のプロセッサ、プログラマブル読取専用メモリ(PROM)などの1つまたは複数のプログラマブル・ディジタル・デバイスまたはプログラマブル・ディジタル・システム、プログラマブル・アレイ・ロジック・デバイス(PAL)、上記の任意の組合せなど、任意の他の既知の、または以下で展開されるテクノロジを利用して実装することができる。さらに、本発明の方法は、既知のまたは以下で展開される媒体のいずれかで格納できるソフトウェア・プログラムで実施することができる。
図A12−12は、本発明の実施形態を示し、この実施形態では、複数のイメージが準備され(それぞれ異なるズーム・レベルまたは分解度で)、アクション200、これらのイメージのうちの複数が、一緒にブレンディングされて、ズームなどの滑らかなナビゲーションの外見を達成する(アクション206)。本発明を実践するのに必要ではないが、図A12−12に示された手法は、サービス・プロバイダ−クライアント関係に関連して用いられることが企図されている。たとえば、サービス・プロバイダは、複数の事前レンダリングされたイメージを準備する(アクション200)ためにリソースを費やし、これらのイメージを、インターネットなどの通信チャネルを介してユーザのクライアント端末から使用可能にする(アクション202)。代替案では、事前レンダリングされたイメージを、ユーザがそのユーザのコンピュータにロードし、そこで実行するアプリケーション・プログラムの一体の部分または関連する部分とすることができる。
実験を通じて、ブレンディング手法が使用されるときに、次のズーム・レベルのイメージのセットが、イメージ・オブジェクトが道路地図であるときによく働くことがわかっている:30メートル/ピクセル、50メートル/ピクセル、75メートル/ピクセル、100メートル/ピクセル、200メートル/ピクセル、300メートル/ピクセル、500メートル/ピクセル、1000メートル/ピクセル、および3000メートル/ピクセル。しかし、本発明の範囲から逸脱せずに、任意の個数のイメージを任意の個数の分解度で用いることができることに留意されたい。実際に、他のコンテクストの他のイメージ・オブジェクトは、特定のズーム・レベルが上の例と異なる場合に、より多数またはより少数のイメージによって最もよく供給される場合がある。
イメージがクライアント端末によってどのように入手されるかに関わりなく、ズーム・コマンドなど、ユーザが開始したナビゲーション・コマンドに応答して(アクション204)、クライアント端末は、そのナビゲーション・コマンドと一致する中間分解度のイメージを作るために複数のイメージをブレンディングするように動作することが好ましい(アクション206)。このブレンディングは、Lance Williams(Pyramidal Parametrics, Computer Graphics, Proc. SIGGRAPH ’83, 17(3):1−11 (1983))によって開示された周知のトライリニア補間技法(その開示全体が参照によって本明細書に組み込まれている)など、複数の方法によって達成することができる。双三次線形補間など、イメージ補間の他の手法も、本発明に関連して有用であり、さらに他の手法が、将来に開発される可能性がある。本発明が、これらのブレンディング方法のどの特定の1つも必要とせず、これに依存しないことに留意されたい。たとえば、図A12−8に示されているように、ユーザが、62.4メートル/ピクセルのズーム・レベルにナビゲートすることを望む場合がある。このズーム・レベルは、事前レンダリングされたイメージの2つの間にある可能性がある(この例では、ズーム・レベル50メートル/ピクセルとズーム・レベル75メートル/ピクセルとの間にある)ので、62.4メートル/ピクセルの所望のズーム・レベルは、トライ・リニア補間技法を使用して達成することができる。さらに、50メートル/ピクセルと75メートル/ピクセルとの間のすべてのズーム・レベルは、上で説明したブレンディング技法を利用して入手することができ、このブレンディング技法は、実行される場合に、滑らかで連続したナビゲーションの外見を十分に素速く提供する。このブレンディング技法は、図A12−9に示された35.7メートル/ピクセルなど、他のズーム・レベルまでやり遂げることができる。その場合に、このブレンディング技法は、これまでに述べた例の30メートル/ピクセルおよび50メートル/ピクセルの事前レンダリングされたイメージの間で実行することができる。
上のブレンディング手法は、本発明がそこで実行される処理ユニットの計算能力が、(i)まず第1にレンダリング動作を実行するのにおよび/または(ii)滑らかなナビゲーションのための高いイメージ・フレーム・レートを達成するためにイメージ・レンダリングを「ジャスト・イン・タイムで」または「オン・ザ・フライで」(たとえば、リアル・タイムで)実行するのに十分に高くはないときに、使用することができる。しかし、以下で述べるように、本発明の他の実施形態は、ブレンディング・アプリケーションおよび/または高フレーム・レート・アプリケーションのためのクライアント端末でのレンダリングが可能な既知のまたは以下で展開される高性能処理ユニットの使用を企図している。
図A12−13のプロセス・フローは、本発明に従って1つまたは複数のイメージを準備するために行われることが好ましい詳細なステップおよび/またはアクションを示す。アクション220で、既知のまたは以下で展開される技法のいずれかを使用して、1つまたは複数のイメージ・オブジェクトに関する情報を入手する。通常、そのようなイメージ・オブジェクトは、多角形、線、ポイントなどの適当なプリミティブを使用してモデリングされる。たとえば、イメージ・オブジェクトが道路地図であるときには、すべての万国横メルカトル(UTM)ゾーン内の道路のモデルを、たやすく入手することができる。このモデルは、通常、そのゾーン内の道路を含む線分(任意の座標系内の)のリストの形である。このリストは、既知のまたは以下で展開されるレンダリング・プロセスのいずれかが、ピクセル(スペース的)領域内の所与のプリミティブの重み(たとえば、見かけの厚さまたは実際の厚さ)を決定するある種の技法を組み込んでいる限り、そのレンダリング・プロセスを使用してスペース的領域内のイメージ(ピクセル・イメージ)に変換することができる。上の道路地図の例に従って、このレンダリング・プロセスは、スペース的領域内で道路地図の道路をモデリングする線の重みを決定する、ある種の技法を組み込まれなければならない。これらの技法を、以下で述べる。
アクション222(図A12−13)では、オブジェクトの要素を分類する。道路地図オブジェクトの場合には、この分類は、既に存在するカテゴリすなわち、A1、A2、A3、A4、およびA5の形をとることができる。実際に、これらの道路要素は、粗さの変化する度合を有し、以下で述べるように、この分類に基づいて異なってレンダリングされ得る。アクション224では、ズーム・レベルに基づいて、異なる道路要素に数学的スケーリングを適用する。以下でより詳細に述べるように、この数学的スケーリングは、要素分類に基づいて変化するものとすることもできる。
背景として、地図の道路などのイメージ要素をレンダリングする2つの普通の技法すなわち、実物理的スケーリングおよび事前設定ピクセル幅がある。実物理的スケーリング技法は、道路地図が、異なるスケールで道路の実際の物理的イメージを見ているかのようにレンダリングされることを規定する。たとえば、A1主要道路は、16メートル幅である可能性があり、A2道路は、12メートル幅である可能性があり、A3道路は、8メートル幅である可能性があり、A4道路は、5メートル幅である可能性があり、A5道路は、2.5メートル幅である可能性がある。これは、地図の小さい領域にズーム・インしたときに、見る人にとって許容できるものである可能性があるが、ズーム・アウトしたときには、主要道路と重要でない道路との両方のすべての道路が、詳細に描くには細くなりすぎる。あるズーム・レベル、たとえば州レベル(たとえば、約200メートル/ピクセル)では、道路が全く見られなくなることになる。
事前設定ピクセル幅手法は、すべての道路が、ディスプレイ上の幅で1ピクセルなど、あるピクセル幅であることを規定する。主要道路などの主な道路は、それらを2ピクセル幅などにすることによって強調することができる。残念ながら、この手法は、人がズーム・インし、ズーム・アウトするときに、地図の視覚的密度を変化させる。あるズームのレベルで、たとえば小さいサイズの国レベルで、結果が、満足である場合がある。しかし、ズーム・インするときには、道路は、太くならず、地図が過度にまばらに見えるようになる。さらに、ズーム・アウトするときには、道路は、互いに合体し、急速に、個々の道路が区別不能になる、中身の詰まった入れ子(solid nest)を形成することになる。
本発明の1つまたは複数の態様によれば、アクション224で、イメージは、少なくともいくつかのイメージ要素が、以下でより詳細に述べるパラメータに応じて、(i)ズーム・レベルに物理的比例してまたは(ii)ズーム・レベルに非物理的比例してのいずれかでスケール・アップされ、かつ/またはスケール・ダウンされる形で作られる。
「ズーム・レベルに物理的比例する」スケーリング・レベルは、要素のサイズが人間の目からの距離に伴って変化して見えるはずなので、道幅を表すピクセルの個数が、ズーム・レベルに伴って増加し、または減少することを意味することに留意されたい。物理サイズdのオブジェクトの見かけの長さyを与える遠近法の公式は、
y=c・d/x
であり、ここで、cは、有角透視(angular perspective)を決定する定数であり、xは、見る人からのオブジェクトの距離である。
本発明では、物理直線サイズd’のオブジェクトのディスプレイ・ピクセル単位の直線サイズpは、
p=d’・za
によって与えられ、ここで、zは、物理直線サイズ/ピクセル(たとえば、メートル/ピクセル)単位でのズーム・レベルであり、aは、べき法則(power law)である。a=−1かつd’=d(オブジェクトの実際の物理直線サイズ)のときに、この式は、次元的に正しく、遠近法の公式と同等になり、p=yかつz=x/cである。これは、物理ズームと透視変換との間の同等を表し、ズーム・インは、見る人のより近くにオブジェクトを移動することと同等であり、ズーム・アウトは、オブジェクトをより遠くに移動することと同等である。
非物理的スケーリングを実装するためには、aに、−1以外のべき法則をセットすることができ、d’に、実際の物理直線サイズd以外の物理直線サイズをセットすることができる。道路地図のコンテクストでは、pが、道路の表示される幅をピクセル単位で表すことができ、d’が、物理単位に帰せられる幅(imputed width)を表すことができるが、「ズーム・レベルに非物理的比例する」は、ディスプレイ・ピクセル単位の道幅が、ズーム・レベルに物理的に比例すること以外の形でズーム・レベルに伴って増加し、または減少すること、すなわちa≠−1を意味する。スケーリングは、ある種の望ましい結果を達成する形で、ゆがめられる。
「直線」サイズは、1次元のサイズを意味することに留意されたい。たとえば、2次元オブジェクトを考慮し、その「直線サイズ」を2倍にする場合に、その面積は、4=22を乗じられる。2次元の場合に、オブジェクトの要素の直線サイズは、長さ、幅、半径、直径、および/またはユークリッド平面上でものさしを用いて読み取ることのできるすべての他の測定値を含むことができる。線の太さ、線の長さ、円または円盤の直径、多角形の1辺の長さ、および2ポイント間の距離は、すべてが直線サイズの例である。この意味で、2次元での「直線サイズ」は、2Dユークリッド平面上のオブジェクトの2つの識別されたポイントの間の距離である。たとえば、直線サイズは、(dx2+dy2)の平方根をとることによって計算することができ、ここで、dx=x1−x0、dy=y1−y0であり、2つの識別されたポイントは、デカルト座標(x0,y0)および(x1,y1)によって与えられる。
「直線サイズ」の概念は、3つ以上の次元に自然に拡張され、たとえば、ボリュメトリック・オブジェクト(volumetric object)を考慮する場合に、その直線サイズを2倍にすることは、体積を8=23倍に増やすことを伴う。直線サイズの同様の測定値を、球の表面など、非ユークリッド・スペースについて定義することもできる。
すべてのべき法則a<0は、要素のレンダリングされるサイズを、ズーム・アウトのときに減らさせ、ズーム・インのときに増やさせる。a<−1のときには、要素のレンダリングされるサイズは、ズーム・アウトのときに、比例物理的スケーリングより素速く減る。逆に、−1<a<0のときには、レンダリングされる要素のサイズは、ズーム・アウトのときに、比例物理的スケーリングよりゆっくり減る。
本発明の少なくとも1つの態様によれば、p(z)は、所与のオブジェクトの所与の長さについて、実質的に連続的になることを許され、その結果、ナビゲーション中に、ユーザは、イメージの要素のサイズについて突然のジャンプまたは不連続性を体験しなくなる(最も極端な不連続性すなわちナビゲーション中の要素の突然の出現または消滅を許す普通の手法と異なって)。さらに、p(z)は、ズーム・アウトがオブジェクトの要素をより小さくし(たとえば、道路がより細くなる)、ズーム・インがオブジェクトの要素をより大きくするように、ズーム・アウトに伴って単調に減少することが好ましい。これは、ユーザに、イメージのオブジェクトに関する、肉体的適応力についての感覚(sense of physicality)を与える。
上で述べたスケーリング機能は、図A12−14に関してより十分に理解することができ、図A12−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インチ(38.1cm)ディスプレイ(1600×1200ピクセル分解度を有する)上の地図スケールとして表されるときに、約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道路は、ズーム・アウトのときに可視(かつ、他のより小さい道路から区別可能)のままであることが可能になる。たとえば、図A12−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キロメートル/ピクセルになるはずである。世界全体を見る場合に、米国主要道路が、国だけのビューに対して相対的な高められた重要性を帯びる理由はない可能性がある。
したがって、上の例では約3300メートル/ピクセルであるz1を超えるズーム・レベルでは、道幅のスケーリングは、やはり、ズーム・レベルに物理的比例するが、好ましくは、p(z)の連続性のためにより大きいd’(実際の幅dよりはるかに大きい)を有する。このゾーンでは、p=d’・zaというスケーリング公式が用いられ、a=−1である。レンダリングされる道幅が、z1=3300メートル/ピクセルで連続するために、A1主要道路の新しい帰せられる物理的幅、たとえばd’=1.65キロメートルが選択される。z1およびd’の新しい値は、外側スケールz1で、線のレンダリングされる幅が適度な個数のピクセルになるように選択されることが好ましい。この場合に、国全体をディスプレイ上で見ることができるズーム・レベル(約3300メートル/ピクセル)で、A道路は、約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)の上の形は、6つのパラメータすなわちz0、z1、d0、d1、d2、およびaを有する。z0およびz1は、p(z)の挙動が変化するスケールをマークする。ズーム・インされたゾーン(z≦z0)では、ズームは、物理的であり(すなわち、zの指数は−1であり)、d0の物理的幅を有し、これは、実際の物理的幅dに対応することが好ましい。ズーム・アウトされたゾーン(z≧z1)では、ズームは、やはり物理的であるが、d1の物理的幅を有し、これは、一般にdに対応しない。z0とz1との間では、レンダリングされる線幅は、aのべき法則を用いてスケーリングされ、このaは、−1以外の値とすることができる。p(z)が連続的であるというプリファレンスを与えられれば、z0、z1、d0、およびd2を指定することは、図A12−14に明瞭に示されているように、d1およびaを一意に決定するのに十分である。
上でA1道路に関して述べた手法は、道路地図オブジェクトの他の道路要素に適用することができる。このスケーリング技法のA1道路、A2道路、A3道路、A4道路、およびA5道路への適応の例を、図A12−15の両対数グラフに示す。この例では、すべての道路についてz0=0.5メートル/ピクセルであるが、これは、コンテクストに応じて、要素ごとに変更することができる。A2道路は、一般にA1道路より多少より小さいので、d0=12メートルである。さらに、A2道路は、たとえば米国の州レベルで、「重要」であり、したがって、z1=312メートル/ピクセルであり、これは、おおむね、単一の州に関するレンダリング分解度(直線スケールで国の約1/10)である。このスケールでは、1ピクセルの線幅が望ましいことがわかっており、したがって、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=20mである。これらのパラメータセッティングを使用すると、A5未舗装道路は、ズームアウトされたズーム・レベルではますます街路に似て見えるが、ズーム・インされたときの物理的スケールは、半分の幅になることに留意されたい。
図A12−15の両対数プロットに、複数の道路タイプに関するスケーリング挙動を要約する。すべてのスケールで、A1>A2>A3>A4>=A5という見かけの幅に留意されたい。また、未舗装道路を除いて、べき法則のすべてが、a=−0.41の近傍に現れることに留意されたい。破線のすべてが、−1の傾きを有し、異なる物理的幅での物理的スケーリングを表す。上から下に、これらの破線の対応する物理的幅は、1.65キロメートル、312メートル、100メートル、20メートル、16メートル、12メートル、8メートル、5メートル、および2.5メートルである。
複数の事前レンダリングされたイメージの間の補間が使用されるときには、多くの場合に、結果の補間が、物理的スケーリングの式および非物理的スケーリングの式によって決定される正しい幅のすべての線および他のプリミティブ幾何要素の理想的なレンディションと、人間には区別不能またはほぼ区別不能であることを保証することが、可能である。本発明のこの代替実施形態を諒解するために、アンチ・エイリアシングされた線画に関するある背景を、以下で提示する。
アンチ・エイリアシングされた線画の議論を、上で長々と述べた道路地図の例に従って提示するが、上の道路地図の例では、すべてのプリミティブ要素が、線であり、線幅は、前に説明したようにスケーリングの式に支配される。図A12−16Aを参照すると、白の背景の上に黒で描かれ、線の水平位置がピクセル・グリッドに正確に位置合せされている1ピクセル幅の垂直線は、単純に、白の背景の上の黒ピクセルの1ピクセル幅の列からなる。本発明のさまざまな態様によれば、線幅が非整数個数のピクセルである場合を考慮し、これに対処することが望ましい。図A12−16Bを参照すると、線の端点が固定されたままであるが、線の幅が1.5ピクセル幅に増やされる場合に、アンチ・エイリアシングされたグラフィックス・ディスプレイ上では、中心列の左右のピクセルの列は、25%グレイで描かれる。図A12−16Cを参照すると、2ピクセル幅では、これらの側面に位置する列は、50%グレイで描かれる。図A12−16Dを参照すると、3ピクセル幅では、これらの側面に位置する列は、100%黒で描かれ、その結果は、期待されるとおり、3つのべた塗りの黒の列である。
ピクセル化されたディスプレイで非整数幅の線を描くこの手法は、線幅が変化するときに視覚的連続性の感覚(または錯覚)をもたらし、異なる幅の線が、幅において1ピクセルの分数だけ異なる場合であっても、それらの線を明瞭に区別できるようにする。一般に、この手法は、アンチ・エイリアシングされた線画として知られているが、描かれる線に対する垂線での強度関数(または、白の背景の上の黒の線については「1−強度」関数)の線積分が線幅と等しいことを保証するように設計される。この方法は、その端点が正確にピクセルの中心にあるのではない線、垂直以外の方位の線、および曲線にたやすく一般化される。
図A12−16A〜Dのアンチ・エイリアスされた垂直線を描くことは、一方(イメージA)は線が1ピクセル幅であり、他方(イメージB)は線が3ピクセル幅である2つのイメージのアルファ・ブレンディングによって達成することもできることに留意されたい。アルファ・ブレンディングは、ディスプレイ上の各ピクセルに(1−アルファ)*(イメージA内の対応するピクセル)+アルファ(イメージB内の対応するピクセル)を割り当てる。アルファが0と1との間で変化するときに、レンダリングされる線の有効幅は、1ピクセルと3ピクセルとの間で滑らかに変化する。このアルファ・ブレンディング手法は、イメージAおよびB内の2つのレンダリングされる線幅の間の差が1ピクセル以下の最も一般的な場合によい視覚的結果を作るのみであり、それ以外の場合には、線は、中間幅で後光がさして見える可能性がある。この同一の手法を、ポイント、多角形、および異なる直線サイズの多数の他のプリミティブ幾何要素のレンダリングに適用することができる。
もう一度図A12−16A〜Dに移ると、1.5ピクセル幅の線(図A12−16B)および2ピクセル幅の線(図A12−16C)は、1ピクセル幅の線(図A12−16A)と3ピクセル幅の線(図A12−16D)との間のアルファ・ブレンディングによって構成することができる。図A12−17A〜Cを参照すると、1ピクセル幅の線(図A12−17A)、2ピクセル幅の線(図A12−17B)、および3ピクセル幅の線(図A12−17C)が、任意の方位で示されている。線がピクセルグリッドに正確に位置合せされている場合と同一の原理が、図A12−17A〜Cの任意の方位にも適用されるが、その間でアルファ・ブレンディングが行われる線幅のスペーシング(spacing of the line widths between which to alpha−blend)は、よい結果を得るために、2ピクセルより微細にする必要がある場合がある。
現在の地図の例のコンテクストで、異なる分解度のイメージのセットを、図A12−14〜15の両対数プロットを参照して、事前レンディションのために選択することができる。たとえば、ここで図A12−18を参照するが、図A12−18は、水平線および垂直線のセットを含むことを除いて、図A12−14に実質的に類似する。水平線は、1ピクセルの増分で、1ピクセルと10ピクセルとの間の線幅を示す。垂直線は、2つの隣接する垂直線の間のインターバルにまたがる線幅が2ピクセルを超えて変化しないようにスペースをおかれている。したがって、垂直線は、事前レンディションに適切なズーム値のセットを表し、2つの隣接するそのような事前レンダリングされたイメージの間のアルファ・ブレンディングは、連続的に可変の幅で道路を表す線のレンダリングとほぼ同等の特性を生み出す。
図A12−18に示された垂直線によって表される6つの分解度の間の補間は、約9メートル/ピクセル以上で図示のスケーリング曲線を使用してA1主要道路を正確にレンダリングするのに十分である。約9メートル/ピクセル未満のレンディションは、そのようなビューが非常にズーム・インされており、したがって非常に少数の道路を示すので、事前レンディションを必要とせず、これらをベクトリアルにレンダリングすることを、事前レンダリングされたイメージの間で補間することよりも、計算的に効率的(かつ、データ格納要件に関してより効率的)にする。約1000メートル/ピクセルを超える分解度では(そのようなビューは、地球の表面の大きい部分を含む)、最終的な事前レンダリングされたイメージだけを使用することができる。というのは、これが、1ピクセル幅の線を使用するレンディションであるからである。単一ピクセルより細い線は、同一ピクセルをよりかすかにレンダリングする。したがって、A1線が0.5ピクセル幅であるイメージを作るためには、1ピクセル幅の線のイメージに、0.5のアルファをかけることができる。
実際には、分解度の多少より大きいセットが、事前レンダリングされ、分解度の間の各インターバルにまたがって、図A12−15のスケーリング曲線のすべてが、1ピクセルを超えて変化しないようになる。許容される変動を1ピクセルに減らすことは、改善されたレンダリング品質をもたらすことができる。特筆すべきことに、その開示全体が参照によって本明細書に組み込まれている同時係属の米国特許出願第10/790253号明細書(A10)(「SYSTEM AND METHOD FOR EXACT RENDERING IN A ZOOMING USER INTERFACE」という名称で2004年3月1日い出願された((弁理士番号489/2)))で企図され、述べられているタイリング技法を、本発明に関連して考慮することができる。このタイリング技法は、特定のズーム・レベルが事前レンダリングされたイメージと一致しない場合であっても、そのレベルでイメージを解決するのに用いることができる。分解度のいくらか大きなセット内の各イメージが、適当な分解度で事前レンダリングされ、タイリングされる場合に、その成果は、任意の複雑さの道路地図を通ってズームしパンするナビゲーション用の完全なシステムとなり、すべての線が、本明細書で開示されるスケーリングの式に従って、幅において連続的に変化するように見える。
本発明の実装に関連して用いることができる、イメージをブレンディングする他の技法に関する追加の詳細を、その開示全体が参照によって本明細書に組み込まれている米国特許仮出願第60/475897号明細書(A3)(「SYSTEM AND METHOD FOR THE EFFICIENT, DYNAMIC AND CONTINUOUS DISPLAY OF MULTI RESOLUTIONAL VISUAL DATA」という名称で2003年6月5日に出願された)に見出すことができる。本発明の実装に関連して用いることができるブレンディング技法に関するさらなる詳細を、米国特許仮出願第60/453897号明細書(A2)で見出すことができる。
有利なことに、本発明の上で述べた諸態様を用いると、ユーザは、さまざまなズーム・レベルを通る滑らかで連続的なナビゲーションの外見を享受する。さらに、あるレベルから別のレベルにズームするときに、詳細が不意に現れたり、または消えたりすることは、ほとんど、または全くない。これは、技術的現状に対する重要な前進を表す。
本発明のさまざまな態様を、インターネット上の対話型ソフトウェア・アプリケーション、自動車ベースのソフトウェア・アプリケーション、および類似物などの、多数の製品に適用できることが考えられる。たとえば、本発明を、ユーザ要求に応答してクライアント端末に地図およびドライビング指示を供給するインターネット・ウェブ・サイトにおいて用いることができる。代替案では、本発明のさまざまな態様を、自動車内のGPSナビゲーション・システムで用いることができる。本発明は、医療イメージング機器に組み込むこともでき、これによって、たとえば患者の循環系、神経系などに関する詳細情報を、上で説明したようにレンダリングし、ナビゲートすることができる。本発明の応用例は、その全体をリストするには多すぎるが、当業者は、それらが本明細書で企図され、請求される本発明の範囲に含まれることを認めるであろう。
本発明を、宣伝したり、あるいは他の形で商取引を促進する手段としてレンダリングされたイメージを提供する他の応用例に関連して利用することもできる。本発明のこれらの態様および使用に関する追加の詳細は、本願と同時に出願され、その開示全体が参照によって本明細書に組み込まれている仮特許出願60/ (「METHODS AND APPARATUS FOR EMPLOYING MAPPING TECHNIQUES TO ADVANCE COMMERCE」という名称で同日に出願された((弁理士番号489/7)))で見出すことができる。
本明細書で、本発明を特定の実施形態を参照して説明したが、これらの実施形態が、本発明の原理および応用例の単なる例示であることを理解されたい。したがって、多数の変更を、これらの例示的実施形態に対して行うことができ、他の構成を、特許請求の範囲によって定義される本発明の趣旨および範囲から逸脱せずに考案できることを理解されたい。
(特許請求の範囲)
1.少なくとも1つのオブジェクトを有するイメージをズーム・インまたはズーム・アウトすることを備え、前記少なくとも1つのオブジェクトの少なくともいくつかの要素は、前記ズームに関連付けられた1つまたは複数のズーム・レベルに非物理的比例する形で、スケールアップされかつ/またはスケール・ダウンされることを特徴とする方法。
2.前記非物理的比例するスケーリングは、pがズーム・レベルでの前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、d’が物理単位での前記オブジェクトの前記1つまたは複数の要素の帰せられる直線サイズであり、zが物理直線サイズ/ピクセルの単位での前記ズーム・レベルであり、aがべき法則(power law)であり、a≠−1であるとすると、公式p=d’・zaによって表すことができることを特徴とする請求項1に記載の方法。
3.d’およびaのうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項2に記載の方法。
4.前記べき法則は、ズーム・レベルz0およびz1の範囲内で−1<a<0であり、z0は、z1より小さい物理直線サイズ/ピクセルを有することを特徴とする請求項2に記載の方法。
5.z0、z1、d’、およびaのうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項4に記載の方法。
6.前記少なくとも1つのオブジェクトの少なくともいくつかの要素は、前記ズームに関連付けられた1つまたは複数のズーム・レベルに物理的比例する形でもスケール・アップされ、かつ/またはスケール・ダウンされることを特徴とする請求項1に記載の方法。
7.前記物理的比例するスケーリングは、pが前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、cが定数であり、dが前記オブジェクトの前記1つまたは複数の要素の物理単位での実際のまたは帰せられる直線サイズであり、zが物理直線サイズ/ピクセル単位での前記ズーム・レベルであるとすると、公式p=c・d/zによって表すことができることを特徴とする請求項6に記載の方法。
8.前記オブジェクトの前記要素は、変化する度合の粗さを有し、
所与のズーム・レベルでの前記要素の前記スケーリングは、(i)上記要素の粗さの度合および(ii)前記ズーム・レベル、のうちの少なくとも1つに基づいて物理的比例するまたは非物理的比例することを特徴とする請求項6に記載の方法。
9.前記オブジェクトは、道路地図であり、前記オブジェクトの前記要素は、道路であり、前記変化する度合の粗さは、道路階層であり、
所与のズーム・レベルでの所与の道路の前記スケーリングは、(i)前記所与の道路の前記道路階層および(ii)前記ズーム・レベルに基づいて物理的比例するまたは非物理的比例することを特徴とする請求項8に記載の方法。
10.少なくとも1つのオブジェクトを有するイメージのズーム・インまたはズーム・アウトを備えるアクションを処理ユニットに実行させるように動作する1つまたは複数のソフトウェア・プログラムを含む格納媒体であって、前記少なくとも1つのオブジェクトの少なくともいくつかの要素は、前記ズームに関連付けられた1つまたは複数のズーム・レベルに非物理的比例する形でスケールアップされ、かつ/またはスケール・ダウンされることを特徴とする格納媒体。
11.前記非物理的比例するスケーリングは、pが前記ズーム・レベルでの前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、d’が物理単位での前記オブジェクトの前記1つまたは複数の要素の帰せられる直線サイズであり、zが物理直線サイズ/ピクセルの単位での前記ズーム・レベルであり、aがべき法則であり、a≠−1であるとすると、公式p=d’・zaによって表すことができることを特徴とする請求項10に記載の格納媒体。
12.d’およびaのうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項11に記載の方法。
13.スケール・パワーは、z0とz1との間のズーム・レベルの範囲内で−1<a<0であり、z0は、z1より小さい物理直線サイズ/ピクセルを有することを特徴とする請求項11に記載の格納媒体。
14.z0およびz1のうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項13に記載の格納媒体。
15.前記少なくとも1つのオブジェクトの少なくともいくつかの要素は、前記ズームに関連付けられた1つまたは複数のズーム・レベルに物理的比例する形でもスケール・アップされ、かつ/またはスケール・ダウンされることを特徴とする請求項9に記載の格納媒体。
16.前記物理的比例するスケーリングは、pが前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、cが定数であり、dが前記オブジェクトの前記1つまたは複数の要素の物理単位での実際のまたは帰せられる直線サイズであり、zが物理直線サイズ/ピクセル単位での前記ズーム・レベルであるとすると、公式p=c・d/zによって表すことができることを特徴とする請求項15に記載の格納媒体。
17.前記オブジェクトの前記要素は、変化する度合の粗さを有し、
所与のズーム・レベルでの前記要素の前記スケーリングは、(i)上記要素の粗さの度合および(ii)前記ズーム・レベル、のうちの少なくとも1つに基づいて物理的比例するまたは非物理的比例することを特徴とする請求項15に記載の格納媒体。
18.前記オブジェクトは、道路地図であり、前記オブジェクトの前記要素は、道路であり、前記変化する度合の粗さは、道路階層であり、
所与のズーム・レベルでの所与の道路の前記スケーリングは、(i)前記所与の道路の前記道路階層および(ii)前記ズーム・レベルに基づいて物理的比例するまたは非物理的比例することを特徴とする請求項17に記載の格納媒体。
19.少なくとも1つのオブジェクトを有するイメージのズーム・インまたはズーム・アウトを備えるアクションを処理ユニットに実行させるように動作する1つまたは複数のソフトウェア・プログラムの制御の下で動作する前記処理ユニットを含む装置であって、前記少なくとも1つのオブジェクトの少なくともいくつかの要素は、前記ズームに関連付けられた1つまたは複数のズーム・レベルに非物理的比例する形でスケール・アップされ、かつ/またはスケールダウンされることを特徴とする装置。
20.前記非物理的比例するスケーリングは、pが前記ズーム・レベルでの前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、d’が物理単位での前記オブジェクトの前記1つまたは複数の要素の帰せられる直線サイズであり、zが物理直線サイズ/ピクセルの単位での前記ズーム・レベルであり、aが、べき法則であり、a≠−1であるとすると、公式p=d’・zaによって表すことができることを特徴とする請求項19に記載の装置。
21.d’およびaのうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項20に記載の方法。
22.前記べき法則は、ズーム・レベルz0およびz1の範囲内で−1<a<0であり、z0は、z1より小さい物理直線サイズ/ピクセルを有することを特徴とする請求項20に記載の装置。
23.z0およびz1のうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項22に記載の装置。
24.前記少なくとも1つのオブジェクトの少なくともいくつかの要素は、前記ズームに関連付けられた1つまたは複数のズーム・レベルに物理的比例する形でもスケールアップされ、かつ/またはスケール・ダウンされることを特徴とする請求項19に記載の装置。
25.前記物理的比例するスケーリングは、pが前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、cが定数であり、dが前記オブジェクトの前記1つまたは複数の要素の物理単位での実際のまたは帰せられる直線サイズであり、zが物理直線サイズ/ピクセル単位での前記ズーム・レベルであるとすると、公式p=c・d/zによって表すことができることを特徴とする請求項24に記載の装置。
26.前記オブジェクトの前記要素は、変化する度合の粗さを有し、
所与のズーム・レベルでの前記要素の前記スケーリングは、(i)上記要素の粗さの度合および(ii)前記ズーム・レベルのうちの少なくとも1つに基づいて物理的比例するまたは非物理的比例する
ことを特徴とする請求項24に記載の装置。
27.前記オブジェクトは、道路地図であり、前記オブジェクトの前記要素は、道路であり、前記変化する度合の粗さは、道路階層であり、
所与のズーム・レベルでの所与の道路の前記スケーリングは、(i)前記所与の道路の前記道路階層および(ii)前記ズーム・レベルに基づいて物理的比例するまたは非物理的比例することを特徴とする請求項26に記載の装置。
28.少なくとも1つのオブジェクトの異なるズーム・レベルの複数のイメージを準備することを備え、前記少なくとも1つのオブジェクトの少なくともいくつかの要素は、1つまたは複数のズーム・レベルに非物理的比例する形でスケール・アップされ、かつ/またはスケールダウンされることを特徴とする方法。
29.前記イメージは、クライアント端末への配信のためにソース端末で事前レンダリングされることを特徴とする請求項28に記載の方法。
30.前記非物理的比例するスケーリングは、pが前記ズーム・レベルでの前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、d’が物理単位での前記オブジェクトの前記1つまたは複数の要素の帰せられる直線サイズであり、zが物理直線サイズ/ピクセルの単位での前記ズーム・レベルであり、aが、べき法則であり、a≠−1であるとすると、公式p=d’・zaによって表すことができることを特徴とする請求項28に記載の方法。
31.d’およびaのうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項30に記載の方法。
32.前記べき法則は、z0とz1との間のズーム・レベルの範囲内で−1<a<0であり、z0は、z1より小さい物理直線サイズ/ピクセルを有することを特徴とする請求項30に記載の方法。
33.z0およびz1のうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項32に記載の方法。
34.前記少なくとも1つのオブジェクトの少なくともいくつかの要素は、前記ズームに関連付けられた1つまたは複数のズーム・レベルに物理的比例する形でもスケール・アップされ、かつ/またはスケール・ダウンされることを特徴とする請求項28に記載の方法。
35.前記物理的比例するスケーリングは、pが前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、cが定数であり、dが前記オブジェクトの前記1つまたは複数の要素の物理単位での実際のまたは帰せられる直線サイズであり、zが物理直線サイズ/ピクセル単位での前記ズーム・レベルであるとすると、公式p=c・d/zによって表すことができることを特徴とする請求項34に記載の方法。
36.前記オブジェクトの前記要素は、変化する度合の粗さを有し、
所与のズーム・レベルでの前記要素の前記スケーリングは、(i)上記要素の粗さの度合および(ii)前記ズーム・レベル、のうちの少なくとも1つに基づいて物理的比例するまたは非物理的比例する
ことを特徴とする請求項34に記載の方法。
37.前記オブジェクトは、道路地図であり、前記オブジェクトの前記要素は、道路であり、前記変化する度合の粗さは、道路階層であり、
所与のズーム・レベルでの所与の道路の前記スケーリングは、(i)前記所与の道路の前記道路階層および(ii)前記ズーム・レベルに基づいて物理的比例するまたは非物理的比例する
ことを特徴とする請求項36に記載の方法。
38.前記べき法則は、z0とz1との間のズーム・レベルの範囲内で−1<a<0であり、z0は、z1より小さい物理直線サイズ/ピクセルを有することを特徴とする請求項37に記載の方法。
39.z0およびz1のうちの少なくとも1つは、前記道路地図の前記道路のうちの1つまたは複数について変化することができることを特徴とする請求項38に記載の方法。
40.道路地図の変化するズーム・レベルの複数の事前レンダリングされたイメージをクライアント端末で受信すること、
ズーム情報を含む1つまたは複数のユーザ・ナビゲーション・コマンドを前記クライアント端末で受け取ること、および
前記ナビゲーション・コマンドの前記ズーム情報に対応する中間ズーム・レベルの中間イメージの前記クライアント端末での表示が滑らかなナビゲーションの外見を提供するように、前記中間イメージを入手するために、前記事前レンダリングされたイメージのうちの複数をブレンディングすること
を備えることを特徴とする方法。
41.前記道路地図の少なくともいくつかの道路は、複数の事前に決定されたイメージを作るためにスケール・アップされ、かつ/またはスケール・ダウンされ、前記スケーリングは、(i)前記ズーム・レベルに物理的比例するおよび(ii)前記ズーム・レベルに非物理的比例する、のうちの少なくとも1つであることを特徴とする請求項40に記載の方法。
42.前記物理的比例するスケーリングは、pが前記ズーム・レベルの前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、cが定数であり、dが物理単位での前記オブジェクトの前記1つまたは複数の要素の実際のまたは帰せられる直線サイズであり、zが物理直線サイズ/ピクセル単位での前記ズーム・レベルであるとすると、公式p=c・d/zによって表すことができることを特徴とする請求項41に記載の方法。
43.前記非物理的比例するスケーリングは、pが前記ズーム・レベルでの前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、d’が物理単位での前記オブジェクトの前記1つまたは複数の要素の帰せられる直線サイズであり、zが物理直線サイズ/ピクセルの単位での前記ズーム・レベルであり、aが、べき法則であり、a≠−1であるとすると、公式p=d’・zaによって表すことができることを特徴とする請求項41に記載の方法。
44.d’およびaのうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項43に記載の方法。
45.前記べき法則は、z0とz1との間のズーム・レベルの範囲内で−1<a<0であり、z0は、z1より小さい物理直線サイズ/ピクセルを有することを特徴とする請求項43に記載の方法。
46.z0およびz1のうちの少なくとも1つは、前記道路地図の1つまたは複数の道路について変化することができることを特徴とする請求項45に記載の方法。
47.前記道路地図の前記道路は、変化する度合の粗さを有し、
所与の事前レンダリングされたイメージ内の前記道路の前記スケーリングは、(i)上記道路の粗さの度合および(ii)前記所与の事前レンダリングされたイメージの前記ズーム・レベル、のうちの少なくとも1つに基づいて物理的比例するまたは非物理的比例する
ことを特徴とする請求項40に記載の方法。
48.少なくとも1つのオブジェクトであって、前記少なくとも1つのオブジェクトの少なくともいくつかの要素は、複数の事前に決定されたイメージを作るためにスケール・アップされ、かつ/またはスケール・ダウンされ、前記スケーリングは、(i)前記ズーム・レベルに物理的比例するおよび(ii)前記ズーム・レベルに非物理的比例する、のうちの少なくとも1つであるオブジェクト、の変化するズーム・レベルの複数の事前レンダリングされたイメージをクライアント端末で受信すること、
ズーム情報を含む1つまたは複数のユーザ・ナビゲーション・コマンドを前記クライアント端末で受け取ること、
前記ナビゲーション・コマンドの前記ズーム情報に対応する中間ズーム・レベルの中間イメージを入手するために、前記事前レンダリングされたイメージのうちの複数をブレンディングすること、および
前記中間イメージを前記クライアント端末で表示すること
を備えることを特徴とする方法。
49.前記ブレンディングするステップは、アルファブ・レンディング、トライ・リニア補間、および双三次線形補間(bicubic−linear interpolation)のうちの少なくとも1つを実行することを含むことを特徴とする請求項48に記載の方法。
50.事前レンダリングされたイメージの個数は、それらの間のブレンディングが滑らかなナビゲーションの外見を提供するようなものであることを特徴とする請求項48に記載の方法。
51.事前レンダリングされたイメージの前記ズーム・レベルおよび前記スケーリングは、前記オブジェクトの前記要素のうちの所与の1つまたは複数のそれぞれのピクセル単位の直線サイズpが、1つの事前レンダリングされたイメージとより高い分解度のもう1つの事前レンダリングされたイメージとの間でピクセルの事前に決定された個数を超えて変化しないように選択されることを特徴とする請求項48に記載の方法。
52.ピクセルの前記事前に決定された個数は、約2であることを特徴とする請求項51に記載の方法。
53.前記事前にレンダリングされたイメージのうちの最低分解度イメージのズーム・レベルを超えるズーム・レベルへのナビゲーションを容易にするために、前記事前にレンダリングされたイメージの前記最低分解度イメージをダウンサンプリングすることをさらに備えることを特徴とする請求項50に記載の方法。
54.前記物理的比例するスケーリングは、pが前記ズーム・レベルの前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、cが定数であり、dが物理単位での前記オブジェクトの前記1つまたは複数の要素の実際のまたは帰せられる直線サイズであり、zが物理直線サイズ/ピクセルの単位での前記ズーム・レベルであるとすると、公式p=c・d/zによって表すことができることを特徴とする請求項48に記載の方法。
55.前記非物理的比例するスケーリングは、pが前記ズーム・レベルでの前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、d’が物理単位での前記オブジェクトの前記1つまたは複数の要素の帰せられる直線サイズであり、zが物理直線サイズ/ピクセルの単位での前記ズーム・レベルであり、aが、べき法則であり、a≠−1であるとすると、公式p=d’・zaによって表すことができることを特徴とする請求項48に記載の方法。
56.d’およびaのうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項55に記載の方法。
57.前記べき法則は、z0とz1との間のズーム・レベルの範囲内で−1<a<0であり、z0は、z1より小さい物理直線サイズ/ピクセルを有することを特徴とする請求項55に記載の方法。
58.z0およびz1のうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項57に記載の方法。
59.前記複数の事前レンダリングされたイメージは、パケッタイズド・ネットワーク(packetized network)を介して前記クライアント端末によって受信されることを特徴とする請求項48に記載の方法。
60.前記パケッタイズド・ネットワークは、インターネットであることを特徴とする請求項59に記載の方法。
61.前記オブジェクトの前記要素は、変化する度合の粗さを有し、
所与の事前レンダリングされたイメージ内の前記要素の前記スケーリングは、(i)上記要素の粗さの度合および(ii)前記所与の事前レンダリングされたイメージの前記ズーム・レベル、のうちの少なくとも1つに基づいて物理的比例するまたは非物理的比例する
ことを特徴とする請求項48に記載の方法。
62.前記オブジェクトは、道路地図であり、前記オブジェクトの前記要素は、道路であり、前記変化する度合の粗さは、道路階層であり、
所与の事前レンダリングされたイメージ内の所与の道路の前記スケーリングは、(i)前記所与の道路の前記道路階層および(ii)前記所与の事前レンダリングされたイメージの前記ズーム・レベルに基づいて物理的比例するまたは非物理的比例する
ことを特徴とする請求項61に記載の方法。
63.前記非物理的比例するスケーリングは、pが前記ズーム・レベルでの前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、d’が物理単位での前記オブジェクトの前記1つまたは複数の要素の帰せられる直線サイズであり、zが物理直線サイズ/ピクセルの単位での前記ズーム・レベルであるとすると、公式p=d’・zaによって表すことができることを特徴とする請求項62に記載の方法。
64.d’およびaのうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項63に記載の方法。
65.前記べき法則は、z0とz1との間のズーム・レベルの範囲内で−1<a<0であり、z0は、z1より小さい物理直線サイズ/ピクセルを有することを特徴とする請求項63に記載の方法。
66.z0およびz1のうちの少なくとも1つは、前記道路地図の前記道路のうちの1つまたは複数について変化することができることを特徴とする請求項65に記載の方法。
67.少なくとも1つのオブジェクトであって、前記少なくとも1つのオブジェクトの少なくともいくつかの要素は、前記複数のイメージを作るためにスケール・アップされ、かつ/またはスケール・ダウンされ、前記スケーリングは、(i)前記ズーム・レベルに物理的比例するおよび(ii)前記ズーム・レベルに非物理的比例するのうちの少なくとも1つであるオブジェクト、の変化するズーム・レベルの複数のイメージを通信チャネルを介して端末に送信する、
前記複数のイメージを前記端末で受信すること、
前記端末を使用してズーム情報を含む1つまたは複数のユーザ・ナビゲーション・コマンドを発行すること、
前記ナビゲーション・コマンドの前記ズーム情報に対応する中間ズーム・レベルの中間イメージを入手するために、前記イメージのうちの少なくとも2つをブレンディングすること、および
前記中間イメージを前記端末で表示すること
を備えることを特徴とする方法。
68.前記ブレンディングするステップは、アルファ・ブレンディング、トライ・リニア補間、および双三次線形補間のうちの少なくとも1つを実行することを含むことを特徴とする請求項67に記載の方法。
69.イメージの個数は、それらの間のブレンディングが滑らかなナビゲーションの外見を提供するようなものであることを特徴とする請求項67に記載の方法。
70.事前レンダリングされたイメージの前記ズーム・レベルおよび前記スケーリングは、前記オブジェクトの前記要素のうちの所与の1つまたは複数のそれぞれのピクセル単位の直線サイズpが、1つの事前レンダリングされたイメージとより高い分解度のもう1つの事前レンダリングされたイメージとの間でピクセルの事前に決定された個数を超えて変化しないように選択されることを特徴とする請求項67に記載の方法。
71.ピクセルの前記事前に決定された個数は、約2であることを特徴とする請求項70に記載の方法。
72.前記イメージのうちの最低分解度イメージのズーム・レベルを超えるズーム・レベルへのナビゲーションを容易にするために、前記イメージの前記最低分解度イメージをダウン・サンプリングすることをさらに備えることを特徴とする請求項69に記載の方法。
73.前記物理的比例するスケーリングは、pが前記ズーム・レベルの前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、cが定数であり、dが物理単位での前記オブジェクトの前記1つまたは複数の要素の実際のまたは帰せられる直線サイズであり、zが物理直線サイズ/ピクセル単位での前記ズーム・レベルであるとすると、公式p=c・d/zによって表すことができることを特徴とする請求項69に記載の方法。
74.前記非物理的比例するスケーリングは、pが前記ズーム・レベルでの前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、d’が物理単位での前記オブジェクトの前記1つまたは複数の要素の帰せられる直線サイズであり、zが物理直線サイズ/ピクセルの単位での前記ズーム・レベルであり、aが、べき法則であり、a≠−1であるとすると、公式p=d’・zaによって表すことができることを特徴とする請求項69に記載の方法。
75.d’およびaのうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項74に記載の方法。
76.前記べき法則は、ズーム・レベルz0およびz1の範囲内で−1<a<0であり、z0は、z1より小さい物理直線サイズ/ピクセルを有することを特徴とする請求項74に記載の方法。
77.z0およびz1のうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項76に記載の方法。
78.前記複数のイメージは、パケッタイズド・ネットワークを介して前記端末によって受信されることを特徴とする請求項69に記載の方法。
79.前記パケッタイズド・ネットワークは、インターネットであることを特徴とする請求項78に記載の方法。
80.前記オブジェクトの前記要素は、変化する度合の粗さを有し、
所与のイメージ内の前記要素の前記スケーリングは、(i)上記要素の粗さの度合および(ii)所与の事前レンダリングされたイメージの前記ズーム・レベル、のうちの少なくとも1つに基づいて物理的比例するまたは非物理的比例する
ことを特徴とする請求項69に記載の方法。
81.前記オブジェクトは、道路地図であり、前記オブジェクトの前記要素は、道路であり、前記変化する度合の粗さは、道路階層であり、
所与内の所与の道路の前記スケーリングは、(i)前記所与の道路の前記道路階層および(ii)前記所与の事前レンダリングされたイメージの前記ズーム・レベルに基づいて物理的比例するまたは非物理的比例することを特徴とする請求項80に記載の方法。
82.前記非物理的比例するスケーリングは、pが前記ズーム・レベルでの前記オブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、d’が物理単位での前記オブジェクトの前記1つまたは複数の要素の帰せられる直線サイズであり、zが物理直線サイズ/ピクセルの単位での前記ズーム・レベルであり、aが、べき法則であり、a≠−1であるとすると、公式p=d’・zaによって表すことができることを特徴とする請求項81に記載の方法。
83.d’およびaのうちの少なくとも1つは、前記オブジェクトの1つまたは複数の要素について変化することができることを特徴とする請求項82に記載の方法。
84.スケールべきは、z0とz1との間のズーム・レベルの範囲内で−1<a<0であり、z0は、z1より小さい物理直線サイズ/ピクセルを有することを特徴とする請求項82に記載の方法。
85.z0およびz1のうちの少なくとも1つは、前記道路地図の前記道路のうちの1つまたは複数について変化することができることを特徴とする請求項84に記載の方法。
(要約)
少なくとも1つのオブジェクトを有するイメージのズーム・インまたはズーム・アウトを含むさまざまなアクションを実行する方法および装置が企図され、ここで、少なくとも1つのオブジェクトの少なくともいくつかの要素は、ズームに関連する1つまたは複数のズーム・レベルに非物理的比例する形でスケール・アップされかつ/またはスケールダウンされ、たとえば、非物理的比例するスケーリングは、pがズーム・レベルでのオブジェクトの1つまたは複数の要素のピクセル単位の直線サイズであり、d’がオブジェクトの1つまたは複数の要素の物理単位での帰せられる直線サイズであり、zが物理直線サイズ/ピクセルの単位でのズーム・レベルであり、aが、べき法則であり、a≠−1であるとすると、公式p=d’・zaによって表すことができる。
A13
(表題)効率的なデータ・キャッシュ(EFFICIENT DATA CACHE)
(関連出願の相互参照)
本願は、その開示の全体が参照によって本明細書に組み込まれている、2004年6月1日に出願した米国特許仮出願第60/575987号(A5)、名称「The Zeno cache: a system for increasing the effectiveness of most−recently−used (MRU) caching for variably compressable data objects」の利益を主張するものである。
(背景技術)
「MRUキャッシング」(MRUは、「most recently used」を表す)は、クライアント−サーバ・システムでのクライアント・サイド・メモリの実装に関する既知の概念である。サーバが、クライアントにアクセスされ、多数のデータ・オブジェクトをクライアントに供給でき、これらのデータ・オブジェクトが、集合体として、大量のメモリを占有する可能性があると仮定する。しかし、クライアントとサーバとの間の使用可能な帯域幅は、限られており、したがって、サーバからデータ・オブジェクトが送信されることを求めるクライアント要求は、時間がかかる。データ・オブジェクトへのアクセスが、適度に「コヒーレント」である(クライアントが最近必要としたオブジェクトが、近い将来にもう一度必要になる可能性が高いことを意味する)場合に、MRUキャッシングは、クライアント−サーバシステムの効率を高めることができる。この手法を用いると、クライアントは、一般に、ある限られた量のメモリ(一般に、サーバ上のオブジェクトのすべてを格納するのに必要なるものよりはるかに少ない)をとっておき、このメモリ(キャッシュ)に、そこにおさまる、できる限り多くの、最も最近に要求されたオブジェクトを格納する。新しいオブジェクトが、サーバからクライアントに送信され、クライアントのキャッシュ・スペースが、使い果たされたときには、最近、最も使用されていない(LRU)オブジェクトが、新しいオブジェクトを格納できるデータ格納スペースを作成するために、キャッシュから消去される。
一般に、クライアントがデータ・オブジェクトを必要とするときに、キャッシュが、まず、そのオブジェクトがキャッシングされているかどうかを知るために検査される。キャッシングされている場合には、キャッシングされた表現が使用され、低速なまたは計算的に負荷のかかるサーバ要求の必要がなくなる。通常、キャッシングされた表現を利用することは、また、そのオブジェクトを、キャッシュのMRU端に「昇格」させる。この手法は、一般に、アクセスされるすべてのデータ・オブジェクトについてサーバにデータを要求しなければならないことを上回る実質的な性能上の利点をもたらす。
新しいオブジェクトが、コンピューティング・システムによってアクセスされ、キャッシュに格納される際の最近最も使用されていないオブジェクトのキャッシュからの消去は、キャッシュ使用の非効率性を引き起こす可能性がある。キャッシュ内の最近最も使用されていない、消去されたオブジェクトさえもが、サーバによってもう一度要求される場合がある。これが発生するときには、サーバは、メイン・メモリまたはマス・ストレージ・デバイスなどのデータ・ストレージのよりリモートなソースからこのオブジェクトを取り出すという比較的低速なまたは計算的に負荷のかかるタスクに取りかかる場合がある。キャッシュ・メモリに有限のサイズを与えられれば、オブジェクト消去は、ある頻度で発生する可能性があり、これによって、サーバまたは他のコンピューティング・システムに、かつてはキャッシュ・メモリ内に便利に格納されていたデータを得るためによりリモートなメモリにアクセスしてかなりのリソースを費やさせる。したがって、当技術分野には、キャッシュ・メモリ管理に対するより効率的で柔軟な手法が必要とされている。
(発明の概要)
一態様によれば、本発明は、それぞれが、初期圧縮率を有し、格納されたデータを含むキャッシュ・オブジェクトの初期グループを有するコンピューティング・システム内のキャッシュを提供すること、所与のキャッシュ・オブジェクト以外のキャッシュ・オブジェクトの少なくとも1つのキャッシュ・オブジェクトによって占められるデータ格納スペースの量を減らすこと、および所与のキャッシュ・オブジェクトによって占められるデータ格納スペースの量を増やすことを備えることを特徴とする方法を提供することができる。減らすことは、データ格納スペースの量を所与の量だけ減らすことを備えることが好ましい。増やすことは、所与のキャッシュ・オブジェクトによって占められるデータ格納スペースの量を所与の量だけ増やすことを備えることが好ましい。減らすことは、少なくとも1つのキャッシュ・オブジェクトの初期圧縮率を増やすことを備えることが好ましい。増やすことは、所与のキャッシュオブジェクトの初期圧縮率を減らすことを備えることが好ましい。所与のキャッシュ・オブジェクトは、キャッシュ・オブジェクトのうちで最も最近に使用されたキャッシュ・オブジェクトであることが好ましい。減らすステップが実行される少なくとも1つのキャッシュ・オブジェクトは、キャッシュ・オブジェクトのうちで最近最も使用されていないキャッシュ・オブジェクトを含むことが好ましい。
減らすことは、少なくとも1つのキャッシュ・オブジェクトに関する格納されたデータの一部を除去することを備えることが好ましい。増やすことは、所与のキャッシュ・オブジェクトに関する格納されたデータを増補することを備えることが好ましい。キャッシュ・オブジェクトのそれぞれについて使用可能なデータ格納スペースの量は、有限個数の離散値のうちの1つと等しいものとすることができることが好ましい。減らすことは、キャッシュ・オブジェクトのうちで所与のキャッシュ・オブジェクト以外の少なくとも1つのランダムに選択されたキャッシュ・オブジェクトに関するデータ格納スペースの量を減らすこと備えることが好ましい。減らすことは、少なくとも1つのランダムに選択されたキャッシュ・オブジェクトに関するデータ格納スペースの量をランダムに決定された範囲まで減らすことを備えることが好ましい。ランダムに選択されたキャッシュ・オブジェクトは、ランダム方法および擬似ランダム方法のうちの1つを使用して選択されることが好ましい。ランダムに選択されたキャッシュ・オブジェクトの選択は、ヒューリスティックによって案内されることが好ましい。
この方法は、増やすことの後に、所与のキャッシュ・オブジェクトをロスレス圧縮された形で格納することをさらに備えることが好ましい。この方法は、増やすことの後に、所与のキャッシュ・オブジェクトを非圧縮の形で格納することをさらに備えることが好ましい。減らすことは、キャッシュ・オブジェクトのうちで所与のキャッシュオブジェクト以外の少なくとも1つのキャッシュ・オブジェクトを除去することを備えることが好ましい。
もう1つの態様によれば、本発明は、メイン・メモリと機能的に通信できる少なくとも1つのプロセッサを有するコンピューティング・システム、およびキャッシュ・オブジェクトの初期グループを有するコンピューティング・システム内のキャッシュであって、各キャッシュ・オブジェクトは、初期圧縮率を有し、格納されたデータを含む、キャッシュを備え、コンピューティング・システムは、キャッシュ・オブジェクトの所与のキャッシュ・オブジェクト以外のキャッシュ・オブジェクトの少なくとも1つのキャッシュ・オブジェクトによって占められるデータ格納スペースの量を減らし、所与のキャッシュ・オブジェクトによって占められるデータ格納スペースの量を増やすように動作することを特徴とする装置を提供することができる。減らすことは、データ格納スペースの量を所与の量だけ減らすことを備えることが好ましい。増やすことは、所与のキャッシュ・オブジェクトによって占められるデータ格納スペースの量を所与の量だけ増やすことを備えることが好ましい。減らすことは、少なくとも1つのキャッシュ・オブジェクトの初期圧縮率を増やすことを備えることが好ましい。増やすことは、所与のキャッシュ・オブジェクトの初期圧縮率を減らすことを備えることが好ましい。
所与のキャッシュ・オブジェクトは、キャッシュ・オブジェクトのうちで最も最近に使用されたキャッシュ・オブジェクトであることが好ましい。減らすことは、少なくとも1つのキャッシュ・オブジェクトに関する格納されたデータの一部を除去することを備えることが好ましい。増やすことは、所与のキャッシュ・オブジェクトに関する格納されたデータを増補することを備えることが好ましい。キャッシュ・オブジェクトのそれぞれについて使用可能なデータ格納スペースの量は、有限個数の離散値のうちの1つと等しいものとすることができることが好ましい。減らすことは、キャッシュ・オブジェクトのうちで所与のキャッシュ・オブジェクト以外の少なくとも1つのランダムに選択されたキャッシュ・オブジェクトに関するデータ格納スペースの量を減らすことを備えることが好ましい。減らすことは、少なくとも1つのランダムに選択されたキャッシュ・オブジェクトに関するデータ格納スペースの量をランダムに決定された範囲まで減らすことを備えることが好ましい。
もう1つの態様によれば、本発明は、コンピューティング・システム内でキャッシュを提供することであって、キャッシュは、初期条件を有するように提供すること、不十分なデータ格納スペースが、キャッシュ内に少なくとも1つの新しいオブジェクトを格納するために初期条件の下でキャッシュ内に存在する場合に、少なくとも1つの新しいオブジェクトのためにデータ格納スペースをクリアするためにキャッシュ内の少なくとも1つのオブジェクトを圧縮すること、および少なくとも1つの新しいオブジェクトをキャッシュ内に格納することを備えることを特徴とする方法を提供する。初期条件は、キャッシュが空であることに対応することが好ましい。この方法は、不十分なデータ格納スペースがすべての追加の新しいオブジェクトを格納するためにキャッシュ内に残るまで、キャッシュ内に格納されたオブジェクトを圧縮せずにキャッシュ内に新しいオブジェクトを格納することを継続することをさらに備えることが好ましい。この方法は、少なくとも1つの新しいオブジェクトを格納するための十分なスペースが初期条件の下でキャッシュに存在する場合に、圧縮することなくキャッシュ内に少なくとも1つの新しいオブジェクトを格納することをさらに備えることが好ましい。
他の態様、機能、利点などは、本明細書の本発明の好ましい実施形態の説明が添付図面と共に解釈されるときに、当業者に明白になるであろう。
(図面の簡単な説明)
本発明のさまざまな態様を例示するために、図面に、現在好ましい形が示されているが、本発明が、図示の正確な配置および手段に限定されないことを理解されたい。
(図A13−1)本発明の1つまたは複数の実施形態による、キャッシュ内でのキャッシュ・オブジェクトの使用の新しさの関数としてキャッシュ内の個々のキャッシュ・オブジェクトのデータ格納サイズを示すグラフである。
(図A13−2)本発明の1つまたは複数の実施形態による、合計されるキャッシュ・オブジェクトの個数「N」に対してプロットされた、キャッシュ内のキャッシュ・オブジェクトによって占められるデータ格納スペースの累積和を示すグラフである。
(図A13−3)本発明の1つまたは複数の実施形態による、複数のキャッシュ・オブジェクトを含むデータ・キャッシュを示すブロック図である。
(図A13−4)キャッシュ・オブジェクトが本発明の1つまたは複数の実施形態に従ってサイズを変更されている、図A13−3のデータ・キャッシュを示すブロック図である。
(図A13−5)アクセスされたキャッシュ・オブジェクトが、本発明の1つまたは複数の実施形態に従ってサイズを変更され、キャッシュに復元されている、図A13−4のデータ・キャッシュを示すブロック図である。
(図A13−6)本発明の1つまたは複数の実施形態による、データ・キャッシュ内のキャッシュ・オブジェクトにアクセスし、データ・キャッシュを更新する方法を示すフローチャートである。
(図A13−7)本発明の1つまたは複数の実施形態による使用のために適合可能なコンピューティング・システムを示すブロック図である。
(発明を実施するための最良の形態)
本開示では、キャッシュのLRU端およびMRU端に言及する。オブジェクトは、一般にMRU端に追加され、一般にLRU端から消去される。しかし、本発明は、そのような方式に限定されない。キャッシュ内のキャッシュ・オブジェクトの物理的レイアウトが、LRU−MRUレイアウトに対応する必要がないことに留意されたい。キャッシュのレイアウトは、単に、コンピューティング・システムが、本明細書に記載の形でオブジェクトを見つけ、挿入し、かつ/または消去することを好ましく可能にする。直線状のLRU−MRU配置は、キャッシュの動作を記述する便利な機構であるが、キャッシュ・メモリの多数の可能な実装の1つを表すに過ぎない。本明細書では、用語「キャッシュ」および「キャッシュ・メモリ」が、同義的に使用される。
本明細書で開示されるMRUキャッシングおよびその拡張は、クライアント/サーバ・アーキテクチャのコンテクストで論じられるが、類似する原理が、単一のコンピュータでの効率的なハードディスク・アクセス(ハードディスクへのアクセスが、RAMへのアクセスより低速であり、したがって、RAMが、ハードディスク上の最も最近に使用された内容をキャッシングするのに使用される)など、多数の他のシナリオにも適用されることに留意されたい。1つまたは複数の他の実施形態では、データは、ディスクからロードされまたはネットワークを介して送信されるのではなく、環境から収集されるたり、コンピュータによる計算処理から生成される。どの場合でも、クライアントは、小さいが高速の一時キャッシュ・メモリと、より大きいがより低速のデータ・ソースとにアクセスでき、このデータ・ソースに、情報が繰り返して要求される。このより低速のデータソースを、本明細書では一般に「サーバ」と称する。
収束級数の次の議論は、本明細書で開示されるキャッシュ・メモリの装置および方法への導入として提供されるものである。
nが1から無限大まで変化し、p>1である級数y(n)=n^−pの無限和は、有限である。同様に、y=1/b^nの和は、b>1について有限である。たとえば、後者の場合に、b=2であれば、和は正確に2である。そのような収束級数の基礎になる概念を使用して、本明細書に記載の効率的なデータ・キャッシングの方法および装置の1つまたは複数の実施形態を実装することができる。
本明細書に記載の方法および装置の1つまたは複数の実施形態は、以下で説明する「ゼノンのパラドックス」に関する概念を用いることができる。この議論は、本明細書に記載の1つまたは複数の実施形態に適用可能な概念的土台を提供するが、本発明は、以下で述べる概念的諸態様によって限定されない。
ゼノン・キャッシングの概念
ゼノンは、1歩(議論のために、彼は毎秒1歩進むと仮定する)で、彼の現在位置からすべての競争場の終わりまでの距離の半分を行くほどに速い走者である。パラドックスは、彼がどの1歩でも前に移動するにもかかわらず、彼が絶対にその競争場の決勝線に入らないということである。このパラドックスは、b=2を有し、n=2から無限大までの和をとる、上の1/b^n級数に簡単に関係付けられる。この概念は、キャッシュ・オブジェクトを使用またはアクセスの減少する新しさに伴って徐々により大きい範囲まで圧縮できるようにすることによって、キャッシュ・オブジェクトの格納に拡張することができる(キャッシュ自体は、「競技場」になぞらえられる)。したがって、キャッシュのMRU端からそのLRU端への進行において、ますます減少するサイズの理論的に無限の個数の追加キャッシュオブジェクトを、決してスペースを使い果たさずに導入することができる。この原理を、本明細書ではゼノン・キャッシュ概念と称する。
本明細書に関係するキャッシュ・オブジェクトは、圧縮可能であることが好ましく、圧縮可能とは、本開示では、ロッシイ・データ圧縮技法に従うことに対応する。ロッシイ・データ圧縮は、データ・オブジェクトのフル表現より少ないバイトでデータ・オブジェクトを表す能力の特徴がある。より高い圧縮率は、一般に、データ・オブジェクトのより大きい歪みおよび圧縮データを使用してレンダリングされるイメージのより低い品質をこうむる(このオブジェクトには、1つまたは複数のイメージ・ファイルが含まれる)。限定なしに、ロッシイ圧縮技法を、サウンド、ビデオ、および多数の他のデータ型に適用可能とすることもできる。
1つまたは複数の実施形態で、データの圧縮されたバージョンは、非圧縮データの代用物として適切とすることができる。歪みの所与のレベル未満では、データの圧縮表現が、十分に適当である可能性があり、歪みの所与のレベルを超えると、圧縮表現は、クライアントがデータのより高品質のバージョンを待っている間の一時的手段として適切である可能性がある。より高品質のバージョンは、単に、一時的に使用されるバージョンより低く圧縮されたものとすることができ、あるいは、ロスレス圧縮または非圧縮とすることができる。
1つまたは複数の実施形態では、より低い品質の表現は、より高い品質の表現のサブセットとすることができ、これは、クライアント・サイドでの表現品質の改善が、より低い品質の表現を増補し、これによって、より高い品質の表現を提供するために、単にデータの送信を用いることができることを意味する。好ましくは、この手法を用いると、高品質表現に関連するデータの完全に新しいセットを送信するという重荷をこうむる必要がない。この手法は、好ましくは、冗長性を回避し、したがって、好ましくは、効率を実質的に高める。
上で述べた手法と一貫して、あるオブジェクトの表現品質を下げるという逆のプロセスは、イメージの高品質表現に使用されるデータの圧縮または再圧縮を必要とするのではなく、その高品質表現に用いられるデータの一部を単に除去することを用いることができる。このプロパティも、好ましくは、本明細書で開示されるキャッシング装置および方法の効率を高める。
1つまたは複数の実施形態で、圧縮技法は、ロッシイからロスレスまでスケーリングされる圧縮レベルでオブジェクトを提供することができる。この機能は、データ・オブジェクトのロスレス表現を、複数のステップで、非常にロッシイからロスレスへ、ロスレス・バージョンを当初に送信することに対して相対的に余分な総コストをほとんどまたは全く伴わずに作り上げることを可能にすることができる。上記の機能を可能にするデータ型および圧縮テクノロジの例が、JPEG2000標準規格によって具現される、イメージのウェーブレット圧縮である。しかし、本発明は、JPEG2000標準規格の使用に限定されない。
上のプロパティを与えられれば、メモリが「連続である」(すなわち、バイトに離散化されていない)場合に、理論的に、単にオブジェクトの圧縮後のサイズが本明細書で前に述べた収束級数のルールに従うという制約を強制することによって、無限の個数のデータオブジェクトを有限の量のメモリにキャッシングすることが可能になるはずである。上で述べた理論に従って機能することができるキャッシュの動作を、図A13−1および−2に関連して以下で説明する。
図A13−1のグラフでは、変数「N」は、好ましくは各キャッシュ・オブジェクトの番号に対応し、各キャッシュ・オブジェクトの番号の値は、各そのようなキャッシュ・オブジェクトの使用の新しさを表し、Nの増加する値は、その番号に関連するキャッシュ・オブジェクトの使用の減少する新しさに対応する。変数「Y」は、各キャッシュ・オブジェクトのサイズに対応することが好ましい。「Y」変数について、「1」の値は、最高品質条件すなわち全く圧縮されていないときのキャッシュ・オブジェクトのサイズに対応するものとすることができる。最も最近に使用されたオブジェクトは、少ない歪みを用いて表すことができ、最近により使用されていないオブジェクトは、その最後の使用の新しさと一貫する圧縮の範囲に従属するものとすることができる。図A13−1では、圧縮後のキャッシュ・オブジェクト・サイズYの値が、関係あるキャッシュ・オブジェクトの使用の減少する新しさに伴って減少することがわかる。「Y」変数は、キャッシュ内の各オブジェクト(圧縮されるか否かのいずれか)の絶対サイズ(任意の単位で表される)に対応するものとすることができることに留意されたい。その代わりに、1つまたは複数の他の実施形態で、「Y」は、圧縮率に対応することができ、たとえば、値「1」が、フル・サイズ・オブジェクトに対応し、値「0.5」が、非圧縮サイズの半分を占めるオブジェクトに対応する。
図A13−2を参照すると、1からNまでの番号を付けられたオブジェクトのサイズYの累積和は、Nの値ごとに、図A13−2に示されているようにそれでも有限の数になる可能性がある。変数「Y」の単位は、1つの代表的な完全に展開された(非圧縮の)キャッシュ・オブジェクトのサイズに対応するデータ格納スペース(またはそれが必要とするデータ格納スペース)の単位とすることができる。図A13−1および−2は、本発明の1つまたは複数の実施形態の理論の理解を助けるので、データのビットおよび/またはバイト単位でキャッシュ・オブジェクトのサイズを記述する情報は、本明細書では提供しない。
1つまたは複数の実施形態で、上で説明した理論的実装は、2つの理由から、変更されることが好ましい。第1に、実際には、メモリ・ストレージは、離散格納ユニットからなることが好ましい。したがって、たとえば、通常、キャッシュ・オブジェクトを1ビットより小さい格納スペースの量を占めるように圧縮することは、実際には無意味である。第2に、キャッシュに対して実行される動作の総数は、有限であることが好ましい。対照的に、上の収束公式のうちの1つによって記述される圧縮率の連続曲線を強制することは、追加キャッシュ格納スペースが必要になるたびに、キャッシュ内のすべてのキャッシュ・オブジェクトのサイズを減らすことを伴う可能性がある。これは、非実用的に多数の動作を必要とすることになる。
1つまたは複数の実施形態で、キャッシュ内のオブジェクトの個数は、実際には有限になる。しかし、ゼノン・キャッシュの概念が使用される場合には、この個数を、普通のMRUキャッシングを用いて可能になる個数よりはるかに多くすることができる。さらに、キャッシングされるオブジェクトは、最近に使用された場合に高品質レベル(低いレベルの歪みまたは圧縮ロッシイ・ネスからロスレス圧縮、非圧縮データまでのどこか)で格納できるというプロパティを有する。キャッシュ・オブジェクトのこの品質レベルは、キャッシュ・オブジェクトがアクセスされない各連続するキャッシュ・メモリ・アクセスに伴って徐々により悪くなる(すなわち、徐々により高いレベルの歪みまたは圧縮ロッシイ・ネスを受ける)ものとすることができる。
コンピュータ・メモリは離散的であり、それ未満ではキャッシュ・オブジェクトがユーザにとっての価値を有しない可能性があるキャッシュ・オブジェクトの最小の圧縮後のサイズがある場合があるので、キャッシングされる表現は、この最小の圧縮後のサイズを生じる最大圧縮率の支配下にある可能性がある。したがって、1つまたは複数の実施形態で、キャッシュに格納できるキャッシュ・オブジェクトの最大個数は、オブジェクトのすべてが等しいサイズである場合に、キャッシュ内の総データ格納スペースを、上で説明した最小の圧縮後のサイズを有する1つのキャッシュ・オブジェクトが占めるデータ格納スペースの量によって割ったものと等しいものとすることができる。しかし、キャッシュ・オブジェクトは、すべてが等しいサイズである必要はない。
上で述べた式のうちの1つ(または任意の他の収束和)によって制限された、したがって。有限の和を有する級数を設計する多数の形がある。追加の制約をも導入することもでき、それは、具体的には、用いられる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、などの和は、本明細書で前に述べたように、y=1/2^nと全く同様に2である。しかし、この級数をn=16000まで取り出すならば、y(オブジェクト・データ格納サイズ)の約log2(16000)個すなわち約14個の値だけを使用することができる。
1つまたは複数の実施形態で、上で説明した対数関数は、Y(キャッシュ・オブジェクトの可能なサイズ)の使用可能な値の個数に、Nの値よりはるかにゆっくりと増加させる1つの形を提供する。しかし、本発明は、この対数関数の使用に限定されず、Yの値の個数にNの値よりゆっくりと増加させる他の数学演算を、本発明に関連して用いることができる。
1つまたは複数の実施形態で、N=百万のときに、Yの20個もの少数の値を(上述した対数ベースの公式を使用して決定されるように)使用することができる。これは、スペースがキャッシュ内で解放されなければならないときに、キャッシュ・オブジェクトの大多数が、好ましくは変更される必要のない、ある量のデータ格納スペースを占めるので、少数の動作だけが、キャッシュ・オブジェクトの間でデータ格納スペースの適切な割振りを確立するのに必要になる可能性があることを意味する。
他の数学級数も、キャッシュ・メモリ管理のシステムおよび方法での使用に関する所望の判断基準を満足することができる。さらに、理論的には収束しない(すなわち、その和が無限大である)級数を使用することが可能である。というのは、実際には、どの場合にも有限の個数の項が合計されるからである。
1つまたは複数の実施形態では、ランダム・アルゴリズムを使用して、基本アルゴリズムを複数の形で改善することができる。1つまたは複数の実施形態では、上で説明した2*1/4、4*1/16などの級数に、少数の使用可能なキャッシュ・オブジェクト・サイズだけが含まれ、おそらくはキャッシュ内の異なるオブジェクトの間の圧縮率の明確な差につながる場合がある。ランダムな選択を使用して、あるターゲット量のスペースが新しいキャッシュ・オブジェクトのために使用可能にされるまで、キャッシュ・オブジェクトのランダムに選択されたサブ・セットを重み付きの形で「圧縮(squeeze)する」(それによって使用されるデータ格納スペースを減らす)ことができる。この手法は、有益な結果をもたらすことができる。というのは、キャッシュ・オブジェクトのキャッシュ内の正確な位置が、キャッシュ内のオブジェクトの増加する個数に伴って重要性において減少し得るからである。各オブジェクトが「圧搾」される量を、少なくとも部分的にランダム化することもできる。本明細書で述べるものに似たランダム化アルゴリズムを使用することによって、キャッシュ内に格納されたキャッシュ・オブジェクトを使用してレンダリングされるイメージ内で知覚される可能性のある、キャッシュ・オブジェクト品質の明らかな不連続性または閾値を減らすことができる。
次では、本発明の1つまたは複数の態様によるデータ・キャッシュ内のキャッシュ・オブジェクトの管理の例示的な例を提示する。
図A13−3は、本発明の1つまたは複数の実施形態による、複数のキャッシュ・オブジェクト302〜310を含むデータ・キャッシュ300のブロック図である。図A13−4は、キャッシュ・オブジェクト302、304、308、および310が本発明の1つまたは複数の実施形態に従ってサイズを変更されている、図A13−3のデータ・キャッシュ300のブロック図である。図A13−5は、アクセスされたキャッシュ・オブジェクト306が、本発明の1つまたは複数の実施形態に従ってサイズを変更され、キャッシュ300に復元されている、図A13−4のデータ・キャッシュのブロック図である。
図A13−3に示されたものを含む1つまたは複数の実施形態で、キャッシュ300に、5つのキャッシュ・オブジェクト(図を簡潔にするために図A13−3〜−6では「CO」と省略する)CO 1 302、CO 2 304、CO 3 306、CO 4 308、およびCO 5 310を含めることができる。図A13−3に示されたキャッシュ・オブジェクトの個数(5)は、本明細書で説明するさまざまな原理を示す際の便宜のために選択されたものである。しかし、5つより少数またはより多数のキャッシュ・オブジェクトを、キャッシュ300内に含めることができる。原則として、キャッシュ300内に含めることができるキャッシュ・オブジェクトの個数に対する下限はない。原則として、キャッシュ300内に含めることができるキャッシュ・オブジェクトの個数の上限は、キャッシュの総サイズを最小の受け入れられる可能なキャッシュ・オブジェクト・サイズ(本明細書の他所で論ずる)によって割った値に対応するものとすることができる。
図A13−3〜−5では、本明細書で開示されるさまざまな概念を説明するために、各図示のキャッシュ・オブジェクトの幅は、そのキャッシュ・オブジェクトによって使用されるデータ格納スペースに比例することが意図されている。また、図A13−3〜−5では、左端のキャッシュ・オブジェクトから右端のキャッシュ・オブジェクトに進むことは、表示されるキャッシュ・オブジェクトのアクセスの増加する新しさに対応し、キャッシュ・オブジェクトのうちで最近最も使用されていないものが、左端に示され、キャッシュ・オブジェクトのうちで最も最近に使用されたものが、右端に示されている。
図A13−4は、CO 3 306が、キャッシュ300を使用する、コンピューティング・システム700などのコンピューティング・システムによってアクセスされた後のキャッシュ300を示す。この例では、CO 3 306は、キャッシュ300内のそのオリジナルの位置に示されていない。というのは、この位置が、図A13−4に示されたキャッシュ300の条件で上書きされているからである。さらに、空きスペース402が、CO 3 306の展開されたバージョンのための場所を作るために作成され、この展開されたバージョンは、図A13−3のCO 3のオリジナル・バージョンより多い、キャッシュ300内のデータ格納スペースを占める可能性がある。図A13−5では、CO 306の展開されたバージョンが、キャッシュ300のうちで図A13−4に示されたキャッシュ300条件で空きスペース402によって占められていた部分に書き込まれている。
図A13−6は、本発明の1つまたは複数の実施形態による、データ・キャッシュ300内のキャッシュ・オブジェクトにアクセスし、データ・キャッシュ300を更新する方法600のフローチャートである。次では、図A13−3〜−6を参照する。
ステップ602で、キャッシュ・オブジェクト302、304、306、308、および310を、キャッシュ300にアクセスするプログラムに提供する。当初にキャッシュ300内に存在するキャッシュ・オブジェクトのグループは、図A13−3に示されている。キャッシュ300のこの初期条件は、または複数のプログラム内のデフォルト・セッティングから、あるいは1つまたは複数のプログラム内で前に実行されたプログラム・ステップから生じる可能性がある。どの場合でも、次の議論で重要なのは、図A13−3に示された初期条件の確立の後でキャッシュ300に対して行われる変更である。さまざまなコンピューティング・システムのうちのいずれかで動作する多数のプログラムのうちのどれであっても、キャッシュ300と通信することができるが、便宜のために、キャッシュ300にアクセスできるソフトウェアを、次では単に「プログラム」と称する。
ステップ604で、どのキャッシュ・オブジェクトがプログラムによって次に使用されるかの表示を提供することができる。ステップ606で、この例ではCO 3 306である、示されたキャッシュ・オブジェクトに、プログラムによってアクセスすることができる。
ステップ608では、アクセスされたキャッシュ・オブジェクトが拡張可能であるかどうかに関する決定を行うことができる。本明細書では、キャッシュ・オブジェクトは、より低い圧縮率を受けることによってより多くのデータ格納スペースを占めることができるときに、拡張可能である。そのような拡張開は、新しい圧縮率に対応する(または圧縮無しに対応する)データの完全に新しいセットを供給することによるのではなく、キャッシュ・オブジェクトに既に存在するデータを増補することによって達成することができる。
アクセスされたキャッシュ・オブジェクトが展開可能ではない場合には、そのキャッシュ・オブジェクトは、ステップ610でキャッシュに復元(restore)されることが好ましい。好ましくは、ステップ610で、復元されるキャッシュ・オブジェクトは、アクセスの後に、そのアクセスの前に占めていたのと同一の量のデータ格納スペースを占める。LRU−MRUキャッシングの原理に整合性を有するように、キャッシュ300に復元されるときに、アクセスされたキャッシュ・オブジェクトを、キャッシュ300の右端またはMRU端に書き込むことができる。しかし、その代わりに、アクセスされたキャッシュ・オブジェクトを、キャッシュ300のどの部分にでも書き込むことができる。方法600のこの分岐を継続すると、方法600は、ステップ612で終了することが好ましい。
ステップ608を参照すると、キャッシュ・オブジェクト306などの、アクセスされたキャッシュ・オブジェクトが、展開可能である場合には、そのキャッシュ・オブジェクトは、本発明の1つまたは複数の実施形態に従って展開されることが好ましい(ステップ614)。本明細書で前に述べたように、上で説明したキャッシュ・オブジェクトの展開は、最も最近におよび/または最も頻繁にアクセスされるキャッシュ・オブジェクトがキャッシュ300に最高品質レベルで格納される配置を提供するのを好ましく助ける。
1つまたは複数の実施形態で、キャッシュ内に「N」個のキャッシュ・オブジェクトがある場合に、そのようなキャッシュ・オブジェクトの可能なサイズの個数(データ格納スペース単位で測定される)を、log2(N)と等しい量までに制限することができる。上で説明したように限られた有限の個数の可能なキャッシュ・オブジェクト・サイズを確立することは、ステップ614で展開される、CO 306などのキャッシュ・オブジェクトに関する新しい展開されたサイズを決定する計算処理上の負荷を好ましく制限する。
1つまたは複数の実施形態で、CO 306の展開された(または、言い換えればより少なく圧縮された)バージョンに必要なデータ格納スペースの量は、キャッシュ300にアクセスできるコンピューティング・システム(図示せず)によって計算することができる。キャッシュ300が、まだCO 306の展開されたバージョンを受け取る準備ができていない場合には、CO 306の展開されたバージョンを、そこでの一時的格納のために別のメモリ格納位置(図示せず)に書き込むことができる。
ステップ616で、CO 306の展開されたバージョンを格納するのに必要なデータ格納スペース402を、キャッシュ300内で使用可能にすることが好ましい。キャッシュ300内のどのキャッシュ・オブジェクトをも変更せずにCO 306の展開されたバージョンを格納するのに十分なスペースがキャッシュ300に存在する場合には、キャッシュ300内の1つまたは複数のキャッシュ・オブジェクトのサイズの縮小を、省略することができる。しかし、キャッシュ300内の格納スペースのすべてまたは実質的にすべてが、CO 306がアクセスされる前に占められていた場合には、CO 306以外の1つまたは複数のキャッシュ・オブジェクトは、キャッシュ306の展開されたバージョンの格納のためにキャッシュ300内のスペースを解放するために、サイズの縮小を受ける場合がある。
1つまたは複数の実施形態で、キャッシュ・オブジェクト・サイズ縮小動作の個数は、限られた個数の可能なキャッシュ・オブジェクト・サイズがある場合に減らすことができる。キャッシュ・オブジェクト・サイズ縮小動作の個数を制限することは、キャッシュ300にアクセスするコンピューティング・システムへの計算の重荷を減らすように好ましく動作し、全体的なコンピューティングシ・ステム効率を好ましくもたらす。
1つまたは複数の実施形態で、所望の量のデータ格納スペースのクリアを達成するさまざまな形がある場合がある。本明細書では、用語「クリア」は、キャッシュ300内の1つまたは複数のキャッシュ・オブジェクトに割り振られたデータ格納スペースを減らすことによって、データ格納スペースをキャッシュ300内で使用可能にすることに対応するものとすることができる。
1つまたは複数の実施形態で、クリアされるデータ格納スペースの量は、展開されるキャッシュ・オブジェクトがコンピューティング・システムによる最も最近のアクセスの前に占めていたスペースを超える、その展開されるキャッシュ・オブジェクトが必要とする追加ストレージの量に対応するものとすることができる。しかし、他の実施形態では、クリアされるスペースの量を、最も最近にアクセスされたキャッシュ・オブジェクトがサイズにおいて増加するスペースの量より少なくまたはより多くすることができる。
1つまたは複数の実施形態で、最も最近に使用された展開されるキャッシュ・オブジェクトのためにクリアされるスペースは、図A13−5に示されているように、キャッシュ300の一方の端にあるものとすることができる。しかし、他の実施形態では、クリアされるスペースを、キャッシュ300内の他の位置に置くことができる。
1つまたは複数の実施形態で、使用可能にされるデータ格納スペースを、CO 3 306(最も最近に使用されたキャッシュ・オブジェクト)以外の図A13−3の1つまたは複数のキャッシュ・オブジェクトを犠牲にして設けることができる。具体的には、1つの残りのキャッシュ・オブジェクトだけのサイズを減らすことによって、または最も最近に使用されたキャッシュ・オブジェクトを除くすべてのキャッシュ・オブジェクトのサイズを減らすことによって、必要な追加スペースを設けることが可能である場合がある。さらに、この2つの極端の間の任意の個数のキャッシュ・オブジェクトに、展開される最も最近に使用されたキャッシュ・オブジェクトを優先して、格納スペースを捨てさせることができる。次では、最も最近にアクセスされたキャッシュ・オブジェクト以外のすべてのキャッシュ・オブジェクトが、「サイズ縮小に好適である」と考えられる。
1つまたは複数の実施形態で、サイズ縮小に好適な1つまたは複数のキャッシュ・オブジェクトのサイズ縮小の範囲は、1つまたは複数の考慮事項に従って選択することができる。一実施形態で、サイズ縮小に好適なキャッシュ・オブジェクトは、等しい量または実質的に等しい量の格納スペースを捨てることができる。もう1つの実施形態で、好適なキャッシュ・オブジェクトは、展開される最も最近に使用されたキャッシュ・オブジェクト用のスペースをクリアするために、その事前縮小サイズのうちの等しい比率または実質的に等しい比率を捨てることができる。
1つまたは複数の他の実施形態で、各キャッシュ・オブジェクトのサイズ縮小の範囲は、そのキャッシュ・オブジェクトが最後にどれほど最近にアクセスされたかに基づくものとすることができる。具体的には、サイズ縮小に好適なキャッシュ・オブジェクトは、その最後のアクセスの減少する新しさに伴って徐々により多くの格納スペースを捨てることができる。したがって、この手法の下では、サイズ縮小に好適なキャッシュ・オブジェクトのうちで最も最近に使用されたものは、相対的に少量の格納スペースを捨てることができ、最近最も使用されていないキャッシュ・オブジェクトは、相対的に大量の格納スペースを捨てることができ、この2つの極端の間のキャッシュ・オブジェクトは、中間の量の格納スペースを捨てることができる。
本明細書での格納スペース縮小の議論は、主に、最も最近にアクセスされたものではないキャッシュ・オブジェクトのサイズの単なる縮小を対象とするが、1つまたは複数の実施形態では、1つまたは複数のキャッシュ・オブジェクトを、データ格納スペースをクリアするためにキャッシュ300から除去することができる。さらに、そのようなキャッシュ・オブジェクト除去は、単独でまたはキャッシュ300内に残るキャッシュ・オブジェクトのキャッシュ・オブジェクトデータ格納スペース縮小と共同してのいずれかで実践することができる。
図A13−5の実施形態では、キャッシュ300に残る4つのキャッシュ・オブジェクト302、304、308、および310のすべてが、キャッシュ300の右端に示された位置へのCO 306の書込用のデータ格納スペースをクリアするために、サイズにおいて減らされている。しかし、代替実施形態では、サイズ縮小に好適な4つのキャッシュ・オブジェクト302、304、308、および310のうちの3つまたはより少数が、サイズ縮小を体験することができる。好ましくは、この方法は、ステップ620で終了する。
1つまたは複数の実施形態では、キャッシュ・オブジェクト・サイズを決定する際の変数として各キャッシュ・オブジェクトの使用の新しさだけを用いてキャッシュ内のオブジェクトを管理するのではなく、キャッシュ・オブジェクト管理に、どのオブジェクトが次に必要になる可能性があるかに関するインテリジェントな推測を含めることもできる。したがって、必要になる可能性がより低いオブジェクトを、将来に必要になるより高い尤度を有するオブジェクトの前に「圧縮」することができる。1つまたは複数の実施形態では、この推測手法を、圧搾のためにキャッシュ内のオブジェクトをランダムに選択することができ、さらに、選択されたオブジェクトの圧搾のランダムに変化する量を生成できるアルゴリズムと組み合わせることができる。
図A13−7は、本発明の1つまたは複数の実施形態と共に使用するために適合可能なコンピューティング・システム700のブロック図である。1つまたは複数の実施形態で、中央処理装置(CPU)702を、バス704に結合することができる。さらに、バス704を、発明的キャッシュ300、ランダム・アクセス・メモリ(RAM)706、読取専用メモリ(ROM)708、入出力(I/O)アダプタ710、通信アダプタ722、ユーザ・インターフェース・アダプタ706、およびディスプレイ・アダプタ718に結合することができる。
1つまたは複数の実施形態で、RAM 706および/またはROM 708は、ユーザ・データ、システム・データ、および/またはプログラムを保持することができる。I/Oアダプタ710は、ハード・ドライブ712、CD−ROM(図示せず)または他のマスストレージ・デバイスなどの格納デバイスをコンピューティング・システム700に接続することができる。通信アダプタ722は、コンピューティング・システム700をローカル・エリア・ネットワーク、広域ネットワーク、またはインターネット・ネットワーク724に結合することができる。ユーザ・インターフェース・アダプタ716は、キーボード726および/またはポインティング・デバイス714などのユーザ入力デバイスをコンピューティング・システム700に結合することができる。さらに、ディスプレイ・アダプタ718を、CPU 702によって駆動して、ディスプレイ・デバイス720上の表示を制御することができる。CPU 702は、任意の汎用CPUとすることができる。
これまでに説明したおよび/または本明細書でこの後に説明する方法および装置を、標準ディジタル回路、アナログ回路、ソフトウェアおよび/またはファームウェア・プログラムを実行できるすべての既知のプロセッサ、プログラマブル・ディジタル・デバイスまたはプログラマブル・ディジタル・システム、プログラマブル・アレイ・ロジック・デバイス、あるいは上記の任意の組合せなど、既知のテクノロジのどれを利用しても達成できることに留意されたい。本発明の1つまたは複数の実施形態は、適切な格納媒体での格納および処理ユニットによる実行のためにソフトウェア・プログラムで実施することもできる。
本明細書では、本発明を、特定の実施形態を参照して説明したが、これらの実施形態が、単に本発明の原理および応用例を例示するものであることを理解されたい。したがって、これらの例示的実施形態に対して多数の変更を行うことができること、および添付の特許請求の範囲によって定義される本発明の趣旨および範囲から逸脱せずに他の配置を考案できることを理解されたい。
(特許請求の範囲)
1それぞれが、初期圧縮率を有し、格納されたデータを含むキャッシュ・オブジェクトの初期グループを有するコンピューティング・システム内のキャッシュを提供する、
所与のキャッシュ・オブジェクト以外の前記キャッシュ・オブジェクトの少なくとも1つのキャッシュ・オブジェクトによって占められるデータ格納スペースの量を減らすこと、および
前記所与のキャッシュ・オブジェクトによって占められるデータ格納スペースの量を増やすこと
を備えることを特徴とする方法。
2.前記減らすことは、データ格納スペースの前記量を所与の量だけ減らすことを備えることを特徴とする請求項1に記載の方法。
3.前記増やすことは、前記所与のキャッシュ・オブジェクトによって占められるデータ格納スペースの前記量を前記所与の量だけ増やすことを備えることを特徴とする請求項2に記載の方法。
4.前記減らすことは、前記少なくとも1つのキャッシュ・オブジェクトの前記初期圧縮率を増やすことを備えることを特徴とする請求項1に記載の方法。
5.前記増やすことは、前記所与のキャッシュ・オブジェクトの前記初期圧縮率を減らすことを備えることを特徴とする請求項1に記載の方法。
6.前記所与のキャッシュ・オブジェクトは、前記キャッシュ・オブジェクトのうちで最も最近に使用されたキャッシュ・オブジェクトであることを特徴とする請求項1に記載の方法。
7.前記減らすステップを体験する前記少なくとも1つのキャッシュ・オブジェクトは、前記キャッシュ・オブジェクトのうちで最近最も使用されていないキャッシュ・オブジェクトを備えることを特徴とする請求項1に記載の方法。
8.前記減らすことは、前記少なくとも1つのキャッシュ・オブジェクトに関する格納されたデータの一部を除去することを備えることを特徴とする請求項1に記載の方法。
9.前記増やすことは、前記所与のキャッシュ・オブジェクトに関する前記格納されたデータを増補することを備えることを特徴とする請求項1に記載の方法。
10.前記キャッシュ・オブジェクトのそれぞれについて使用可能なデータ格納スペースの量は、有限個数の離散値のうちの1つと等しいものとすることができることを特徴とする請求項1に記載の方法。
11.前記減らすことは、前記キャッシュ・オブジェクトのうちで前記所与のキャッシュ・オブジェクト以外の少なくとも1つのランダムに選択されたキャッシュ・オブジェクトに関するデータ格納スペースの前記量を減らすことを備えることを特徴とする請求項1に記載の方法。
12.前記減らすことは、前記少なくとも1つのランダムに選択されたキャッシュ・オブジェクトに関するデータ格納スペースの前記量をランダムに決定された範囲まで減らすことを備えることを特徴とする請求項11に記載の方法。
13.前記ランダムに選択されたキャッシュ・オブジェクトは、ランダム方法および擬似ランダム方法のうちの1つを使用して選択されることを特徴とする請求項11に記載の方法。
14.前記ランダムに選択されたキャッシュ・オブジェクトの前記選択は、ヒューリスティックによって案内されることを特徴とする請求項11に記載の方法。
15.前記増やすことの後に、前記所与のキャッシュ・オブジェクトをロスレス圧縮された形で格納することをさらに備えることを特徴とする請求項1に記載の方法。
16.前記増やすことの後に、前記所与のキャッシュ・オブジェクトを非圧縮の形で格納することをさらに備えることを特徴とする請求項1に記載の方法。
17.前記減らすことは、前記キャッシュ・オブジェクトのうちで前記所与のキャッシュオブジェクト以外の少なくとも1つのキャッシュ・オブジェクトを除去することを備えることを特徴とする請求項1に記載の方法。
18.メイン・メモリと機能的に通信できる少なくとも1つのプロセッサを有するコンピューティング・システム、および
それぞれが、初期圧縮率を有し、格納されたデータを含むキャッシュ・オブジェクトの初期グループを有する前記コンピューティング・システム内のキャッシュ
を備え、前記コンピューティング・システムは、
前記キャッシュ・オブジェクトの所与のキャッシュオブジェクト以外の前記キャッシュ・オブジェクトの少なくとも1つのキャッシュ・オブジェクトによって占められるデータ格納スペースの量を減らし、
前記所与のキャッシュ・オブジェクトによって占められるデータ格納スペースの量を増やすように動作する
ことを特徴とする装置。
19.前記減らすことは、データ格納スペースの前記量を所与の量だけ減らすことを備えることを特徴とする請求項18に記載の装置。
20.前記増やすことは、前記所与のキャッシュ・オブジェクトによって占められるデータ格納スペースの前記量を前記所与の量だけ増やすことを備えることを特徴とする請求項19に記載の装置。
21.前記減らすことは、前記少なくとも1つのキャッシュ・オブジェクトの前記初期圧縮率を増やすことを備えることを特徴とする請求項18に記載の装置。
22.前記増やすことは、前記所与のキャッシュ・オブジェクトの前記初期圧縮率を減らすことを備えることを特徴とする請求項18に記載の装置。
23.前記所与のキャッシュ・オブジェクトは、前記キャッシュ・オブジェクトのうちで最も最近に使用されたキャッシュ・オブジェクトであることを特徴とする請求項18に記載の装置。
24.前記減らすことは、前記少なくとも1つのキャッシュ・オブジェクトに関する格納されたデータの一部を除去することを備えることを特徴とする請求項18に記載の装置。
25.前記増やすことは、前記所与のキャッシュ・オブジェクトに関する前記格納されたデータを増補することを備えることを特徴とする請求項18に記載の装置。
26.前記キャッシュ・オブジェクトのそれぞれについて使用可能なデータ格納スペースの量は、有限個数の離散値のうちの1つと等しいものとすることができることを特徴とする請求項18に記載の装置。
27.前記減らすことは、前記キャッシュ・オブジェクトのうちで前記所与のキャッシュ・オブジェクト以外の少なくとも1つのランダムに選択されたキャッシュ・オブジェクトに関するデータ格納スペースの前記量を減らすことを備えることを特徴とする請求項18に記載の装置。
28.前記減らすことは、前記少なくとも1つのランダムに選択されたキャッシュ・オブジェクトに関するデータ格納スペースの前記量をランダムに決定された範囲まで減らすことを備えることを特徴とする請求項27に記載の装置。
29.コンピューティング・システム内でキャッシュを提供することであって、前記キャッシュは、初期条件を有するように提供すること、
不十分なデータ格納スペースが、前記キャッシュ内に少なくとも1つの新しいオブジェクトを格納するために前記初期条件の下で前記キャッシュ内に存在する場合に、前記少なくとも1つの新しいオブジェクトのためにデータ格納スペースをクリアするために前記キャッシュ内の少なくとも1つのオブジェクトを圧縮すること、および
前記少なくとも1つの新しいオブジェクトを前記キャッシュ内に格納すること
を備えることを特徴とする方法。
30.前記初期条件は、前記キャッシュが空であることに対応することを特徴とする請求項29に記載の方法。
31.不十分なデータ格納スペースがすべての追加の新しいオブジェクトを格納するために前記キャッシュ内に残るまで、前記キャッシュ内に格納された前記オブジェクトを圧縮せずに前記キャッシュ内に新しいオブジェクトを格納することを継続することをさらに備えることを特徴とする請求項30に記載の方法。
32.前記少なくとも1つの新しいオブジェクトを格納するための十分なスペースが前記初期条件の下で前記キャッシュに存在する場合に、前記圧縮することなしで前記キャッシュ内に前記少なくとも1つの新しいオブジェクトを格納することをさらに備えることを特徴とする請求項29に記載の方法。
(要約)
初期圧縮率を有し、格納されたデータを含むキャッシュ・オブジェクトの初期グループを有するコンピューティング・システム内のキャッシュを提供すること、キャッシュ・オブジェクトの所与のキャッシュ・オブジェクト以外のキャッシュ・オブジェクトの少なくとも1つのキャッシュ・オブジェクトによって占められるキャッシュ内のデータ格納スペースの量を減らすこと、および所与のキャッシュ・オブジェクトによって占められるキャッシュ内のデータ格納スペースの量を増やすことを含むことができる方法を開示する。
A14
(書類名)明細書
(発明の名称)イメージとして地理空間データまたは他のベクトル・データをエンコードし、供給する方法(METHOD FOR ENCODING AND SERVING GEOSPATIAL OR OTHER VECTOR DATA AS IMAGES)
(関連出願の相互参照)
本願は、その開示全体が参照によって本明細書に組み込まれている、2004年10月28日に出願した米国特許仮出願第60/622867号(A9)、名称「METHOD FOR ENCODING AND SERVING GEOSPATIAL OR OTHER VECTOR DATA AS IMAGES」の利益を主張するものであり、本願は、2004年10月8日に出願した米国特許仮出願第60/617485号(A6)、名称「Method for Spatially Encoding Large Texts, Metadata, and Other Coherently Accessed Non−Image Data」の利益をも主張するものであり、本願は、その開示全体が参照によって本明細書に組み込まれている、2004年3月1日に出願した米国特許出願第10/790253号(A10)、名称「System and Method for Exact Rendering In a Zooming User Interface」の一部継続出願であり、米国特許出願第10/790253号は、2003年3月5日に出願した米国特許仮出願第60/452075号(A1)、名称「System and Method for Exact Rendering in a Zooming User Interface」、2003年3月12日に出願した米国特許仮出願第60/453897号(A2)、名称「System and Method for Foveated, Seamless, Progressive Rendering in a Zooming User Interface」、2003年6月5日に出願した米国特許仮出願第60/475897号(A3)、名称「System and Method for the Efficient, Dynamic, and Continuous Display of Multiresolution Visual Data」、および2003年5月30日に出願した米国特許仮出願第60/474313号(A4)、名称「System and Method for Infinite Precision Coordinates in a Zooming User Interface」の利益を主張するものであり、これらの仮出願の開示全体が参照によって本明細書に組み込まれており、本願は、その開示全体が参照によって本明細書に組み込まれている、2004年5月26日に出願した米国特許出願第10/854117号(A11)、名称「A System And Method For Multiple Node Display」の一部継続出願でもあり、本願は、その開示全体が参照によって本明細書に組み込まれている、2004年3月17日に出願した米国特許出願第10/803,010号(A12)、名称「Methods and Apparatus For Navigating an Image」の一部継続出願でもある。
(背景技術)
最近、JPEG2000/JPIP(たとえば、Kakaduソフトウェア・ウェブ・サイト、www.kakadusoftware.comで入手可能なDavid TaubmanのKakaduの実装を参照されたい)などのイメージ圧縮標準規格が、要求の厳しいエンジニアリング目標を満足するために、すなわち、非常に大きいイメージ(すなわち、サイズにおいてギガ・ピクセル)をサーバからクライアントへ低帯域幅通信チャネルを介して増分的にまたは選択的に配信することを可能にするために、導入されてきた。そのようなイメージがフル分解度で見られているときには、限られた領域だけが、任意の所与のときにクライアントのグラフィカル・ディスプレイにおさまることができる。これらの新しい標準規格は、そのような領域に選択的にアクセスすること、およびその領域に関連するデータを通信チャネルを介して送信することだけを対象とする。この「関心領域」すなわちROIが、連続的に変化する場合に、クライアントとサーバとの間の低帯域幅チャネルを介する連続的対話が、ROIの内側の領域のクライアントの表現を正確に保つために継続される可能性がある。従来のテクノロジは、通常、離散的にサンプリングされたイメージの増分的選択的伝送に制限される。本発明は、ベクトル・データ、ハイパーリンク、および他のスペース的に局所化された地物(features)を含めるためにこの表現および伝送のモデルを拡張する。
(発明の概要)
本発明の1つまたは複数の実施形態は、これらの選択的に圧縮解除除可能なイメージ圧縮テクノロジ、およびイメージ伝送テクノロジの地理空間データまたは概略データへの拡張に関する。この1つまたは複数の実施形態は、本願に組み込まれている文献に記載の方法を組み合わせ、拡張する。これら文献は、(1)「Method for Spatially Encoding Large Texts, Metadata, and Other Coherently Accessed Non−Image Data」(A6)、(2)「Methods And Apparatus For Navigating An Image」(A12)、(3)「System and Method For The Efficient, Dynamic And Continuous Display Of MultiResolution Visual Data」(A3)、(4)「System and Method For Foveated, Seamless, Progressive Rendering In A Zooming User Interface」(A2)、および(5)「System and Method for Multiple Node Display」(A11)である。
これまでに説明したおよび/または本明細書でこの後に説明する方法および装置を、標準ディジタル回路、アナログ回路、ソフトウェアおよび/またはファームウェア・プログラムを実行できるすべての既知のプロセッサ、プログラマブル・ディジタル・デバイスまたはプログラマブル・ディジタル・システム、プログラマブル・アレイ・ロジック・デバイス、あるいは上記の任意の組合せなど、既知のテクノロジのどれを利用しても達成できることに留意されたい。本発明の1つまたは複数の実施形態は、適切な格納媒体での格納および処理ユニットによる実行のためにソフトウェア・プログラムで実施することもできる。
一態様によれば、本発明は、イメージを示す情報を送信する方法であって、第1イメージとして情報の1つまたは複数のノードを送信すること、第1イメージ内の事前に決定された位置での表示に利用される特性を定義するベクトルを示す情報を含む第2イメージを送信すること、ならびに第1および第2のイメージを受信するレシーバが第1および第2のイメージを相関させて、事前に決定された位置でベクトルを利用することができるように、第1および第2のイメージの間のマッピングを備える第3イメージを送信すること、を備えることを特徴とする方法を提供する。第1イメージは、地図であり、第2イメージは、事前に決定された詳細レベルで表示されるのみであるビジュアル・データを定義するベクトルのセットであることが好ましい。第1イメージは、地図であることが好ましい。第2イメージは、ハイパーリンクを含むことが好ましい。第1イメージは、地図であり、第2イメージは、ベクトルのセットを含み、ベクトルのうちの複数のベクトルは、第1イメージ上のベクトルが適用される位置に対応する位置に置かれ、ベクトルのうちの複数のベクトルは、第1イメージ上のベクトルが適用される位置に対応しない第2イメージ上の位置に置かれることが好ましい。この方法は、1つまたは複数のベクトルが現れる第2イメージ上の位置と1つまたは複数のベクトルが適用される第1イメージ上の位置との間のスペースの量を減らすために第2イメージを構成するのに効率的な詰込みアルゴリズム(packing algorithm)を利用することをさらに備えることが好ましい。ベクトルは、ノードまたはサブ・ノードを起動するための情報を含むことが好ましい。
もう1つの態様によれば、本発明は、リモート・コンピュータからデータの第1、第2、および第3のセットを受信することを備え、第1データセットは、イメージを表し、第2データ・セットは、規定された位置でのイメージの特性を定義するベクトルを表し、第3データ・セットは、位置を規定するように働くことを特徴とするイメージをレンダリングする方法を提供する。規定された位置は、地図上の街路位置であることが好ましい。ベクトルは、サブ・ノードを表し、どの条件の下でサブ・ノードを起動しなければならないかを示す情報を含むことが好ましい。ベクトルは、宣伝材料などの外部コンテンツおよび/または埋め込まれたビジュアル・コンテンツからなる群の少なくとも1つへのハイパーリンクを含むことが好ましい。ベクトルは、宣伝材料へのハイパーリンクを含むことが好ましい。ベクトルは、イメージ内の事前に決定された位置でのイメージの諸部分のレンダリング方法を指定する情報を含むことが好ましい。
もう1つの態様によれば、本発明は、イメージの第1レイヤであって、内部に位置を有するイメージの地物(features)を含む第1レイヤを提供すること、およびイメージの第2レイヤであって、地物(features)のそれぞれの1つに対応するデータ・ブロックを含み、各データ・ブロックは、各データ・ブロックに対応する地物(feature)の第1レイヤ内の位置に実質的に対応する第2レイヤ内の位置にあり、第2レイヤのサイズおよび形状は、第1レイヤのサイズおよび形状に実質的に対応する、第2レイヤを提供すること、を備えることを特徴とする方法を提供する。各データ・ブロックは、各データ・ブロックに対応する特徴の少なくとも1つの特性を記述することが好ましい。この方法は、イメージの第3レイヤであって、ポインタを含み、各ポインタは、地物(feature)のそれぞれの1つおよびデータ・ブロックのそれぞれの1つに対応する第3レイヤを提供すること、をさらに備えることが好ましい。各ポインタは、各ポインタの位置に関する各ポインタの対応するデータ・ブロックの位置を示すことが好ましい。記述することは、少なくとも1つの地物(feature)に関するテキスト・データを提供することを備えることが好ましい。記述することは、少なくとも1つの地物(feature)のグラフィカル・イラストレーションを提供することを備えることが好ましい。記述することは、少なくとも1つの地物(feature)を示す幾何データを提供することを備えることが好ましい。記述することは、少なくとも1つの地物(feature)の2次元または3次元の形状データまたは輪郭データを提供することを備えることが好ましい。記述することは、少なくとも1つの地物(feature)のカラー情報を提供することを備えることが好ましい。記述することは、少なくとも1つの地物(feature)に関する宣伝情報またはハイパーリンク情報を提供することを備えることが好ましい。記述することは、少なくとも1つの地物(feature)に関する外部ウェブ・サイトへの少なくとも1つのリンクを提供することを備えることが好ましい。記述することは、少なくとも1つの地物(feature)に関する埋め込まれたビジュアル・コンテンツを提供することを備えることが好ましい。記述することは、少なくとも1つの地物(feature)に関する宣伝情報を提供することを備えることが好ましい。記述することは、道路セグメントの概略詳細を提供することを備えることが好ましい。記述することは、少なくとも1つの道路、少なくとも1つの公園、領域のトポグラフィ、水域の水路学(hydrography)、少なくとも1つのビルディング、少なくとも1つの公衆便所、少なくとも1つのwireless fidelityステーション、少なくとも1つの電力線、および少なくとも1つのスタジアムからなる群の少なくとも1つの概略詳細を提供することを備えることが好ましい。
もう1つの態様によれば、本発明はイメージの第1レイヤであって、内部に位置を有するイメージの地物(features)を含む第1レイヤを提供すること、およびイメージの第2レイヤであって、地物(features)のそれぞれの1つに対応するデータ・ブロックを含み、各データブロックは、各データ・ブロックに対応する地物(feature)の第1レイヤ内の位置に実質的に対応する第2レイヤ内の位置にあり、第2レイヤのサイズおよび形状は、第1レイヤのサイズおよび形状に実質的に対応する、第2レイアを提供することを含むアクションを処理ユニットに実行させるように動作する1つまたは複数のソフトウェア・プログラムの制御の下で動作する処理ユニットを含むことを特徴とする装置を提供する。
もう1つの態様によれば、本発明は、イメージの第1レイヤであって、内部に位置を有するイメージの地物(features)を含む第1レイヤを提供すること、およびイメージの第2レイヤであって地物(features)のそれぞれの1つに対応するデータ・ブロックを含み、各データブロックは、各データ・ブロックに対応する地物(feature)の第1レイヤ内の位置に実質的に対応する第2レイヤ内の位置にあり、第2レイヤのサイズおよび形状は、第1レイヤのサイズおよび形状に実質的に対応する、第2レイヤを提供すること、を含むアクションを処理ユニットに実行させるように動作する1つまたは複数のソフトウェア・プログラムを含むことを特徴とする格納媒体を提供する。もう1つの態様によれば、本発明は、イメージの第1レイヤであって、内部に位置を有するイメージの地物(features)を含む第1レイヤを提供すること、イメージの第2レイヤであって、地物(features)のそれぞれの1つに対応し、これを記述するデータ・ブロックを含み、各データ・ブロックは、各データ・ブロックに対応する地物(feature)の第1レイヤ内の位置に少なくとも実質的に対応する第2レイヤ内の位置にある、第2レイヤを提供すること、およびイメージの第3レイヤであって、第3レイヤ内の位置を有するポインタを含み、各ポインタは、地物(features)のそれぞれの1つおよびデータ・ブロックのそれぞれの1つに対応し、第3レイヤ内の各ポインタの位置は、各ポインタに対応する地物(feature)の第1レイヤ内の位置に少なくとも実質的に対応する、第3レイヤを提供することを備えることを特徴とする方法を提供する。第2レイヤおよび第3レイヤは、それぞれ、第1レイヤのサイズおよび形状に対応するサイズおよび形状を有することが好ましい。この方法は、第1レイヤ、第2レイヤ、および第3レイヤの組合せから地図イメージを形成することをさらに備えることが好ましい。
この方法は、地図イメージ内のデータを平坦化する(flattening)ことをさらに備えることが好ましい。各ポインタは、各ポインタの位置に関する各ポインタの対応するデータの位置を示すことが好ましい。示すことは、2次元でオフセットを識別することを備えることが好ましい。オフセットの各次元は、ピクセルの整数個数、たとえば2または4に対応する単位で表されることが好ましい。示すことは、ヒルベルト曲線に沿った1次元距離としてオフセットを識別することを備えることが好ましい。1次元曲線に沿ったオフセットは、ピクセルの単位で表されることが好ましい。1次元曲線に沿ったオフセットは、ピクセルの整数個数に対応する単位で表されることが好ましい。1次元曲線に沿ったオフセットは、ピクセルの整数倍数に対応する単位で表されることが好ましい。各データ・ブロックを置くことは、第2レイヤ内の各データ・ブロックのターゲット位置であって、各データ・ブロックに対応する地物(feature)の第1レイヤ内の位置に対応するターゲット位置への各データ・ブロックの最大近接を達成するために詰込みアルゴリズムを用いて各データ・ブロックを置くこと、を備えることが好ましい。詰込みアルゴリズムは、第2レイヤ内のどの2つのデータ・ブロックもが互いにオーバーラップしないことを保証することが好ましい。
最大近接は、各データ・ブロックの位置と各データ・ブロックのターゲット位置との間の最短直線距離に基づいて決定されることが好ましい。最大近接は、各データ・ブロックの位置と各データ・ブロックのターゲット位置との間の2つの次元のそれぞれでのオフセットの絶対値の和に基づいて決定されることが好ましい。最大近接は、各データ・ブロックの位置と各データ・ブロックのターゲット位置との間の最小ヒルベルト曲線長に基づいて決定されることが好ましい。
もう1つの態様によれば、本発明は、イメージの第1レイヤであって、第1レイヤ内の位置を有するイメージの地物(features)を含む第1レイヤを提供すること、イメージの第2レイヤであって、地物(features)のそれぞれの1つに対応し、これを記述するデータ・ブロックを含み、各データ・ブロックは、各データ・ブロックに対応する地物(feature)の第1レイヤ内の位置に少なくとも実質的に対応する第2レイヤ内の位置にある、第2レイヤを提供すること、およびイメージの第3レイヤであって、第3レイヤ内の位置を有するポインタを含み、各ポインタは、地物(features)のそれぞれの1つおよびデータブロックのそれぞれの1つに対応し、第3レイヤ内の各ポインタの位置は、各ポインタに対応する地物(feature)の第1レイヤ内の位置に少なくとも実質的に対応する、第3レイヤを提供すること、を備えるアクションを処理ユニットに実行させるように動作する1つまたは複数のソフトウェア・プログラムを含むことを特徴とする格納媒体を提供する。
もう1つの態様によれば、本発明は、イメージの第1レイヤであって、第1レイヤ内の位置を有するイメージの地物(features)を含む第1レイヤを提供すること、イメージの第2レイヤであって、地物(features)のそれぞれの1つに対応し、これを記述するデータ・ブロックを含み、各データ・ブロックは、各データ・ブロックに対応する地物(feature)の第1レイヤ内の位置に少なくとも実質的に対応する第2レイヤ内の位置にある、第2レイヤを提供すること、およびイメージの第3レイヤであって、第3レイヤ内の位置を有するポインタを含み、各ポインタは、地物(features)のそれぞれの1つおよびデータ・ブロックのそれぞれの1つに対応し、第3レイヤ内の各ポインタの位置は、各ポインタに対応する地物(feature)の第1レイヤ内の位置に少なくとも実質的に対応する、第3レイヤを提供すること、を備えるアクションを処理ユニットに実行させるように動作する1つまたは複数のソフトウェア・プログラムの制御の下で動作する処理ユニットを含むことを特徴とする装置を提供する。
他の態様、特徴(feature)、利点などは、本明細書の本発明の好ましい実施形態の説明が添付図面と共に解釈されるときに、当業者に明白になるであろう。
(図面の簡単な説明)
本発明のさまざまな態様を例示するために、図面に、現在好ましい形が示されているが、本発明が、図示の正確な配置および手段に限定されないことを理解されたい。
(図A14−1)本発明の1つまたは複数の実施形態による、データ・ブロック内の記述に適切な複数の地物(features)を含む道路地図イメージの事前レンダリング済みレイヤを示す図である。
(図A14−2)本発明の1つまたは複数の実施形態による、図A14−1の道路地図と、道路セグメントの低い集中を有する領域内のそれぞれの道路セグメントに対応するポインタおよびデータ・ブロックとを示す図である。
(図A14−3)本発明の1つまたは複数の実施形態による、1つの主な道路と共に複数の道路に属する道路セグメントの集中セットならびに交差点の高い集中を有する領域内の道路セグメントに対応するポインタおよびデータ・ブロックを示す図である。
(図A14−4)本発明の1つまたは複数の実施形態による、3つのケースに関する貪欲な四辺形詰込みアルゴリズムのテスト出力を示す図である。
(図A14−5A)本発明の1つまたは複数の実施形態による、バージン諸島の道路地図データの平坦化の前のそのデータ・イメージの密な領域からとられたバイナリ8ビット・データのイメージを示す図である。
(図A14−5B)本発明の1つまたは複数の実施形態による、バージン諸島の道路地図データの平坦化の後のそのデータ・イメージの密な領域からとられたバイナリ8ビットデータのイメージを示す図である。
(図A14−6)本発明の1つまたは複数の実施形態による、ヒルベルト曲線に沿った1次元距離dへの2次元ポインタ・ベクトルのマッピングのための一次ヒルベルト曲線を示す図である。
(図A14−7)本発明の1つまたは複数の実施形態による、ヒルベルト曲線に沿った1次元距離dへの2次元ポインタ・ベクトルのマッピングのための二次ヒルベルト曲線を示す図である。
(図A14−8)本発明の1つまたは複数の実施形態による、ヒルベルト曲線に沿った1次元距離dへの2次元ポインタ・ベクトルのマッピングのための三次ヒルベルト曲線を示す図である。
(図A14−9)本発明の1つまたは複数の実施形態による、ヒルベルト曲線に沿った1次元距離dへの2次元ポインタ・ベクトルのマッピングのための四次ヒルベルト曲線を示す図である。
(図A14−10)本発明の1つまたは複数の実施形態による、ヒルベルト曲線に沿った1次元距離dへの2次元ポインタ・ベクトルのマッピングのための五次ヒルベルト曲線を示す図である。
(図A14−11)本発明の1つまたは複数の実施形態による使用のための4ピクセル×4ピクセル・サイズ・データ・ブロックを組み込んだ米国バージン諸島のうちの1つのイメージを示す図である。
(図A14−12)本発明の1つまたは複数の実施形態による使用のための6ピクセル×6ピクセル・サイズ・データ・ブロックを組み込んだ米国バージン諸島のうちの1つのイメージを示す図である。
(図A14−13)本発明の1つまたは複数の実施形態による使用のための8ピクセル×8ピクセル・サイズ・データ・ブロックを組み込んだ米国バージン諸島のうちの1つのイメージを示す図である。
(発明を実施するための最良の形態)
以下で述べる本発明のさまざまな態様を、地図データのエンコーディングおよび/または供給のコンテクストで適用できることに留意されたい。実際に、それについて本発明を用いることのできるイメージおよび実装の範囲は、その全体をリストするには多すぎる。たとえば、本発明の特徴(features)を、人間の解剖学、複雑なトポグラフィ、配線図または青写真などの工学図面、ジーン・オントロジなどのイメージをエンコードし、かつ/または伝送するのに使用することができる。しかし、本発明は、その要素が変化する詳細レベルまたは粗さのレベルを有するイメージのエンコードおよび/または供給への特定の適用可能性を有することがわかっている。したがって、簡潔におよび明瞭にするために、本発明の諸態様を、特定の例すなわち、地図のイメージのエンコードおよび/または供給に関連して述べる。
上述した文献(2)では、連続的マルチスケール道路地図レンダリングの概念が、導入された。文献(2)の発明の1つまたは複数の実施形態の基礎は、異なる分解度の道路地図または他のベクトル・ベースの図のイメージの事前にレンダリングされた「スタック」であり、このスタックでは、ビジュアル要素のカテゴリ(たとえば、国道、州道、および地方道路を含む道路の等級)が、異なる分解度で異なる視覚的重みを用いてレンダリングされる。
クライアント/サーバ対話中に、これらのイメージのうちの複数のイメージの対応する領域を、ダウンロードでき、クライアントのディスプレイは、これらの領域のブレンディングされた組合せを示すことができる。ブレンディング係数およびイメージ分解度の選択を、ズーム・スケールに依存してブレンディングすることができる。最終結果は、クライアント・サイドのユーザが、連続的にズームし、パンしながら、大きい地図(たとえば、米国のすべての道路)をナビゲートでき、ズーム・スケールが変更されるにつれて道路のカテゴリが現れたり、または消えたりする、などの視覚的不連続性を一切体験しないことである。
そのような不連続性ではなく、すべてのスケールで、最も関連するカテゴリを強調することができる。たとえば、国全体を見るためにズーム・アウトされるときに、最大級の主要道路に、強く重みを付け、明瞭に目立つようにすることができ、州レベルでは、二級主要道路にも、明瞭に可視になるのに十分に強く重みを付けることができる。ユーザが、最も詳細な事前レンダリングされたイメージが使用されているポイントまでズーム・インしたときには、すべての道路が、明瞭に可視であり、地理空間データの好ましい実施形態では、すべての要素が、その物理的に正しいスケール(縮尺)に近いスケールで示されることが好ましい。これらの最も詳細な事前レンダリングされるイメージの最大の穏当な分解度は、約15m/ピクセルとすることができる。しかし、ユーザの観点からは、さらにズーム・インできることが望ましい。
しかし、さらにより高い詳細レベルでの事前レンダリングは、次の複数の理由から望ましくない。第1に、サーバ・サイドのファイル・サイズが極端に大きくなる(15m/ピクセルの単一の万国横メルカトル・ゾーン・イメージは、既にギガ・ピクセル範囲に含まれる可能性がある)からであり、第2に、事前レンダリングされるイメージは、高分解度道路地図レンダリングに通常関連する種類の非常に疎な白黒データの非効率的表現であるからであり、第3に、クライアントが、静的ビジュアル表現以外の、コンピュータによる複数のタスクを実行するために「実際の」ベクトル・データを必要とする場合があるからである。
たとえば、経路誘導システム(route guidance system)は、ある道路がモニタまたは印刷媒体でユーザに表示されるときに、その道路を強調表示するか、その色を変更することができる。これは、クライアントが、事前レンダリングされるイメージだけとは対照的に、ベクトル・データにアクセスできる場合に限って、クライアント・サイドで行うことができる。ベクトル・データには、道路名、住所、および選択的にレイアウトし、レンダリングする柔軟性をクライアントが有することが好ましい他の情報も含まれる場合がある。道路名ラベルを地図イメージ・スタックに事前レンダリングすることは、望ましくない。というのは、これらのラベルが、クライアント・ビューの正確な位置およびスケールに応じて、異なる場所に描かれることが好ましく、異なるサイズで提供されることが好ましいからである。ユーザがズームするときに、異なるラベル・レンディションを互いにブレンディングしてはならない。そのようなデータの事前レンダリングは、フォントに関する柔軟性もすべて除去するはずである。
要約すると、ベクトル・データ(本明細書では、この用語は、幾何情報と、場所の名前などの他の情報との両方を包括的に指すのに使用される)は、クライアント自体にとって有益であり、また、望まれる分解度が高いときに、事前レンダリングされた像より効率的な情報の表現であるの両方である。しかし、大きい領域が低分解度でレンダリングされる場合には、完全なベクトル・データが、極端に大きく複雑になり、事前レンダリングされるイメージがより効率的な表現になる場合がある。しかし、低分解度であっても、主な主要道路の名前など、ベクトル・データのあるサブ・セットが有益である。ベクトル・データのこのサブ・セットは、低分解度の事前レンダリング済みレイヤに関連する低分解度データ・レイヤに含めることができ、より詳細なベクトル・データは、より高い分解度の事前レンダリング済みレイヤに関連するデータ・レイヤ内で入手可能である。
本発明の1つまたは複数の実施形態は、文献(1)で導入された方法を拡張して、おそらくは、文献(2)の事前レンダリングされる像と共に、スペース・ベクトル・データを選択的に増分式にエンコードし、クライアントに送信することを可能にする。従来技術では、これは、地理空間データベースを使用して達成されるであろう。このデータベースは、スペース的にインデクシングされた、すべての関連するベクトル・データを含む必要があるであろう。そのようなデータベースは、多数の実装の課題を提示する。本発明の1つまたは複数の実施形態では、普通のデータベースを使用するのではなく、JPEG2000/JPIPによってサポートされるものなどのスペース的にアドレッシング可能なイメージを使用して、ベクトル・データをエンコードし、供給する。
複数のイメージ・マップ・データ表現(Multiple Image Map Data Representation)
1つまたは複数の実施形態では、3つのイメージまたはチャネルが、それぞれ8ビット深さで、地図データを表すのに使用される。事前レンダリング済みレイヤは、文献(2)による、道路地図の事前計算された正確なレンディションであることが好ましい。ポインタ・レイヤは、2*2ピクセルのブロックを含むことが好ましく、このブロックは、ポインタ・レイヤ内の位置に置かれることが好ましく、この位置は、そのポインタが対応するそれぞれの地物(features)の、事前レンダリング済みレイヤ内の、位置に密接に対応し、時々同一である。データ・レイヤは、それらを参照する2*2個のポインタを中心とするかその近くに位置決めされたn*mピクセルのブロックからなることが好ましい。事前レンダリング済みレイヤは、24ビット・カラーまたは任意の他のカラー・スペースもしくはビット深さであるものとすることもできる。
事前レンダリング済みレイヤ、ポインタ・レイヤ、およびデータ・レイヤが、本質的に、バイナリ・データのさまざまな量を格納する2次元メモリ・スペースであることに留意されたい。これらの3つのレイヤは、クライアントに対する道路地図または他の2次元イメージ表現の主題である共通の2次元イメージ領域に対応することが好ましい。本明細書で使用されるときに、用語レイヤの「サイズ」および「形状」は、一般に、それぞれ、そのレイヤ内のデータが関連する2次元イメージのサイズおよび形状に対応する。
特定の地図イメージを形成する事前レンダリング済みレイヤ、ポインタ・レイヤ、およびデータ・レイヤは、たとえば、少なくとも互いに非常に近いかおそらくは互いに同一である2次元イメージ(これらの3つのレイヤから形成される)内の「サイズ」および「形状」を有することが好ましい。この3つのレイヤ用の格納データは、データ処理システムの物理メモリ内で分散されるけれども、このことは、当てはまる。
一実施形態で、事前レンダリング済みレイヤ内の該当する「地物(features)」を、道路セグメントとすることができる。10個の道路セグメントを有する地図において、ポインタ・レイヤ内のポインタ1は、事前レンダリング済みレイヤ内の道路セグメント1およびデータ・レイヤ内のデータ・ブロック1に対応することになる。ポインタ2は、道路セグメント2およびデータ・ブロック2に対応することになり、以下同様にして、各場合のポインタ「n」は、n=1からn=10について、道路セグメント「n」およびデータ・ブロック「n」に対応する。さらに、ポインタ1は、事前レンダリング済みレイヤ内の道路セグメント1(または、より一般的には「地物(feature)1」)の位置に密接に対応し、おそらくは同一に対応する、ポインタ・レイヤ内の位置にあることが好ましい。
さまざまな地図レイヤ(事前レンダリング済みのポインタ、およびデータ)は、いずれかのレイヤ内のエントリ(地物(feature)、ポインタ、またはデータ・ブロック)の、これらの3つのレイヤの他のいずれかのレイヤ内の対応するエントリ(地物(feature)、ポインタ、またはデータ・ブロック)に対する、関連の備えの観点から、互いに重畳されていると考えることができる。したがって、3つの地図レイヤのサイズおよび形状は、互いに密接に対応し、必要に応じて、これらのレイヤのいずれかおよびこれらのレイヤ内の各エントリのいずれかにアクセスするように構成されたデータ処理システム内で、それぞれの地図レイヤ内の各エントリについての所望の関連をできる限りシームレスにすることが好ましい。本明細書の議論は、主にデータの3つのレイヤから形成された地図を対象とするが、本発明を、3つより少数または3つより多数のデータのレイヤを使用して実行することが可能であり、そのような変形形態のすべてが、本発明の範囲に含まれることが意図されていることを諒解されたい。
3つの地図レイヤは、等しいサイズを有し、互いに位置決めされていることが好ましいので、単一のカラー・イメージを作るために異なる色(コンピュータ・ディスプレイでは赤、緑、青、あるいは、印刷媒体についてはシアン、マゼンタ、イエロー)でオーバーレイすることができる。図1〜3を、カラーで(電子ディスプレイ上または印刷媒体上のいずれかで)表示することができ、単一のカラーJPEG2000としてサーバサイドで格納することができる。しかし、説明を単純にするために、図A14−1〜−3は、本願では白黒で提示される。プリレンダリング済みレイヤだけが、クライアントのディスプレイ上で、この形で、実際に可視であることが好ましい。
図A14−1に、102から124までの符号を付けられた複数の地物(features)を含む道路地図の事前レンダリング済みレイヤを示す。図を単純にするために、図A14−1では、図示の地物(features)は、すべてが道路セグメントである。しかし、地物(features)に、スポーツ・アリーナ、公園、大きいビルディングなど、多数の他のエンティティを含めることができる。図A14−1に示された領域は、例示のために含まれ、実世界の都市または街路レイアウトには対応しない。
図A14−2に、本発明の1つまたは複数の実施形態による、図A14−1の道路地図、ならびに、道路セグメントの低い集中を有する領域内のそれぞれの道路セグメントに対応するポインタおよびデータ・ブロックを示す。道路セグメント102が、図A14−2に示されており、図A14−1からの他の道路セグメントが、図A14−2で再生されている。しかし、スペース制限に起因して、他の11個の道路セグメントの符号(104〜124)は、図A14−2には示されていない。図A14−2および−3の全体を通じて、ポインタは、暗い灰色のブロックとして図示され、データ・ブロックは、より大きい明るい灰色のブロックとして図示されている。
図A14−2には、単位面積あたりの道路セグメントの比較的低い集中を有する領域が示されているので、ポインタが対応するそれぞれの地物(features)の地図200の第1レイヤ(事前レンダリング済みレイヤ)内の位置に密接に対応し、おそらくは同一に対応する地図200の第2レイヤ(ポインタ・レイヤ)内の位置でポインタ(202、204、206、208、210、212、214、216、218、220、222、および224)を置くことは難しくない。同様に、データ・ブロック(242、244、246、248、250、252、254、256、258、260、262、および264)を、データ・ブロックが対応するそれぞれの地物(features)の地図200の事前レンダリング済みレイヤ内の位置に適度に密接に対応する地図200の第3レイヤ(データ・レイヤ)内の位置に置くことができる。
図A14−3に、本発明の1つまたは複数の実施形態による、複数の下位の道路320および少数の主な道路310の道路セグメントの集中セットならびに道路セグメントの高い集中を有する領域内のそれぞれの道路セグメントに対応するポインタおよびデータ・ブロックを示す。符号330は、ポインタのすべてを指し、符号340は、データ・ブロックのすべてを指す。
図A14−3の例示的領域内で、地物(features)の集中は、すべてのポインタまたはすべてのデータ・ブロックを、それらが対応するレイヤ1内の地物(features)の位置に正確に対応するそれぞれのレイヤ内の位置に置くことを可能にするには、高すぎる。ポインタ位置のオフセットの度合は、混雑の度合に応じて、小さいまたは大きい場合がある。しかし、図A14−3の道路セグメントの集中は、データ・ブロックが対応するレイヤ1内のそれぞれの地物(features)の位置に密接に対応するレイヤ3内の位置にデータ・ブロックを置くことを妨げる。
したがって、データ・ブロック340は、都合良く地物(features)がない近くの空の領域350を利用し、これにより、データ・ブロック340が空の領域350にオーバー・フローすることを可能にすることによって、データ・ブロック340の対応するポインタのできる限り近くに分配される。空の領域350は、たとえば水域(body of water)または農園など、関連するポインタおよびデータ・ブロックを有する地物(features)の大きい集中を有しないすべてのタイプの領域とすることができる。詰込みアルゴリズムを用いて、地図300内にデータ・ブロック340を効率的置くことができる。このタイプのアルゴリズムは、本願で後で述べられ、したがって、その議論は、このセクションでは繰り返さない。
ユーザが、図A14−1に示された地図100のビューにナビゲートする場合に、クライアントは、図示の3つすべてのイメージ・レイヤの関連する部分をサーバに要求することができる。事前レンダリング済みレイヤは、一般に、この3つのイメージ・レイヤのうちで、地理的領域の物理的レイアウトを表すイメージ・コンポーネントを表示する唯一のレイヤである。他の2つのイメージ・レイヤは、事前レンダリング済みレイヤ内の地物(features)に対応するポインタおよびデータ・ブロックを指定することが好ましい。
一実施形態で、ポインタ・イメージは、2×2ピクセル・グリッドに位置合せされた2×2ピクセルのブロックからなり、このブロックのそれぞれは、それ自体の位置からデータ・レイヤ内の対応するデータ・ブロックの先頭(左上コーナー)までの(x,y)ベクトル・オフセット(ベクトルのx成分およびy成分のそれぞれは、Z6ビット整数を含み、したがってそれぞれ2ピクセルである)を指定する。
この実施形態では、対応するデータ・ブロックは、データ・ブロックの幅および高さを指定する2つの16ビット値(4ピクセル)から始まることができる。幅が、まず指定され、少なくとも2ピクセルの大きさを有するように制約され、したがって、幅および高さの読取での曖昧さが回避されることが好ましい。データ・ブロックの残りは、ベクトル、テキスト、または他の情報の任意の組合せを含むことができるバイナリ・データとして扱うことができる。図A14−2〜−3の例では、データ・ブロックは、通りの名前、住所の範囲、およびベクトル表現を含む市街地図情報を含むことができる。
圧縮(Compression)
このセクションでは、上で述べたポインタ・レイヤとデータ・レイヤとの組合せの1つまたは複数の実施形態の、既存の手法を上回る利点を提示する。1つの既存の解決策は、ウィンドウ・オブ・インタレスト(window of interest)内のすべての関連するテキスト/ベクトル情報に関する要求をスペース的データベースに送信することを用いる。次に、サーバは、ある量のテキストを応答する。既存のスペース的データベース・システムは、実質的にプレーン・テキストとしてこの情報を送り返す。
しかし、本発明の1つまたは複数の実施形態では、ウェーブレット圧縮を適用することができ、これによって、サーバが、データ要求を満足すると同時に、既存システムが送信するものよりはるかに少ない量のデータを送信することを可能にする。データ・レイヤおよびポインタ・レイヤ上のデータ格納領域の間に置かれた、データ・ストレージを有しない領域は、イメージがラスタ順序で非圧縮で送信される場合よりはるかに少ない無駄を生み出す。というのは、これらの領域が、0の複雑さを有し、ウェーブレット表現で非常に少数のビットに圧縮され得るからである。
スペース的コヒーレンスの活用(Exploitation of Spatial Coherence)
通常のブラウジング・パターンには、漸進的なズームおよびパンが含まれる。複数分解度ストリーミング・イメージ・ブラウジング技法は、このコンテクストでよく働くように設計される。完全な情報を、ウィンドウ・オブ・インタレストについて送信することができ、部分的な情報を、ウィンドウ・オブ・インタレストを直接に周囲の領域について送信することができる。パンまたは他の動きの際には、関連する新しい情報(「デルタ」)だけが送信されることが好ましい。このすべてを、非常に効率的な形で行うことができる。たとえば、特に大きいデータ・ブロックを、ウィンドウ・オブ・インタレストがそのデータ・ブロックのアンカ・ポイントと交差するより十分に前に部分的に送信することができる。
性能(Performance)
本発明の1つまたは複数の実施形態で、ポインタ・レイヤは、データ・ブロックが、それが対応するポインタからどれほど離れているかを示す。田舎の区域で、データ・ブロックをポインタ位置に直接にセンタリングできることを想起されたい。この場合に、すべてのデータが、完全にローカルになることになる。しかし、都市区域では、データが「混雑」し始め、データ・ブロックが、そのデータ・ブロックが対応するそれぞれのポインタ(ポインタ・イメージ内)およびそれぞれの地物(features)(事前レンダリングされるイメージ内)からオフセットした位置にある場合がある。
本発明の1つまたは複数の実施形態では、地図が生成されるときに、事前レンダリングされるイメージ内でデータ・ブロックが対応する地物(feature)からのそのデータ・ブロックの最大変位に、上限を課すことができる。これは、事前レンダリングされるイメージ内の所与のサイズのウィンドウ・オブ・インタレストに関連するデータ・レイヤの部分の最大面積を制限し、したがって、その部分の最大の複雑さを制限する。たとえば、最大変位が32ピクセルである場合に、データ・イメージ内のウィンドウは、事前レンダリングされるイメージ内のウィンドウ・オブ・インタレストより各辺で32ピクセル大きいことだけが必要である。
データ密度が、詰込みが可能であるポイントを超えて高まる場合に、必ず、分解度を、たとえば15メートル/ピクセルから12メートル/ピクセルに、高めることができる。これは、データに、より多くの「動きまわれるスペース(breathing space)」を与える。異なる種類のデータを、異なる詳細レベルの間で分散させることもできることに留意されたい。したがって、たとえば、40メートル/ピクセルの分解度でのデータの過度の混雑は、そのデータのあるクラスを30メートル/ピクセル・レベルでよりよく格納される可能性があることを意味する。
混雑は、データ・レイヤ内およびポインタ・レイヤ内で可視になる場合がある。データの異なるクラスに適当な分解度は、スペースにまたがって変化する可能性があり、その結果、たとえば、小さい街路のベクトル・データが、田舎区域では30メートル/ピクセルでエンコード可能であるが、都市区域では12メートル/ピクセルでのみエンコード可能になる場合がある。要するに、ポインタ・イメージおよびデータ・イメージは、視覚的にまたはデータ処理アルゴリズムを使用してのいずれかにより、データ混雑を検出し、訂正するのを簡単にする。データ・イメージの結果の階層は、任意の所与のビューに必要なデータの量を、上限を超えないように制御できるので、低帯域幅セッティングにおいてさえ、高性能ベクトル・ブラウジングを確実にするのを助けることができる。この種類の上限は、既存の地理空間データベースでは、強制することが、または定義することさえも、極端に困難である。
実装の便宜(Implementation Convenience:)
本発明の1つまたは複数の態様は、地理空間データベース問題をリモート・イメージ・ブラウジング問題にマッピングすることに関する。大量のエンジニアリングが、リモート・イメージ・ブラウジングを効率的に働かせることに投入されてきた。基本的な圧縮テクノロジに加えて、これには、キャッシング、帯域幅管理、クライアントとサーバとの両方に関するメモリ使用量、およびサーバ・サイドでのファイル表現の最適化が含まれる。このテクノロジは、普通の地理空間データベース・テクノロジと対比すると、成熟しており、複数の実装で使用可能である。
したがって、本発明の1つまたは複数の実施形態は、適切に配置された地理空間データベースと、その地理空間データベースと相互作用するリモート・イメージ・ブラウジング・テクノロジとの間の効率的な協力をもたらすことを企図したものである。さらに、本発明の1つまたは複数の実施形態では、クライアント・サイドのデータに関するごく単純なアダプタを有する単一のシステムだけが、イメージ・ブラウジングとデータ・ブラウジングとの両方に使用される必要がある。前述は、一方はイメージ・ブラウジング用、もう一方はデータ・ブラウジング用の、2つの準独立の複雑システムを有することより好ましい。
ポインタを表す代替方法
本発明の1つまたは複数の代替実施形態では、時々ヒルベルト−ペアノ曲線とも呼ばれるヒルベルト曲線を考慮する。ヒルベルト曲線は、スペース充填曲線として知られる再帰的に定義された曲線の系列に属する(たとえば、http://mathworld.wolfram.com/HilbertCurve.html、または参照によって本明細書に組み込まれている、オリジナルの文献、Hilbert, D. “Ueber die stetige Abbildung einer Linie auf ein Flachenstueck.” Math. Ann. 38, 459−460, 1891を参照)。次数1、2、3、4、および5のヒルベルト曲線を、それぞれ図A14−6、−7、−8、−9、および−10に示す。
高次の極限で明白であるとおり、この1次元曲線は、単位正方形全体を充填する(形式的には、単位正方形内で密になる)。n次曲線は、単位正方形上の4^n個のポイントを訪れる。一次の場合に(4^1)、これらのポイントは、正方形のコーナーである。本発明に関連する目的のためには、n次曲線が正方形内の整数座標(0,0)−(2^n−1,2^n−1)のすべてを訪れることが好ましい。ビット操作を使用することによって、n次ヒルベルト曲線上の経路長と(x,y)座標との間で相互変換する既知の素速いアルゴリズム(Warren, Henry S. Jr., Hacker’s Delight, Addison−Wesley 2003, chapter 14を参照)、があり、このアルゴリズムは、これによって、参照によって本明細書に組み込まれる。たとえば、二次曲線について、この相互変換は、次の表の左列から右列へまたはその逆に写像することになる。
ヒルベルト曲線は、単一の数dとして2次元ベクトル(成分xおよびyを有する)をエンコードすると同時に「近傍関係」を比較的よく保存する便利な形をヒルベルト曲線が提供するので、ポインタ・イメージのエンコーディングという問題に関係する。近傍関係とは、一般にその「d」値が近いポイントは、2次元スペース内でも近いので、ベクトル位置がゆっくり変化するときに、dもゆっくり変化する傾向があることを意味する。しかし、この関係は、必ず成り立つわけではない。たとえば、次数2の場合に、(1,0)から(2,0)に移動するときに、経路距離「d」は、1から14になる。2Dスペースを1D曲線で充填し、必ず近傍関係を保存することは、可能ではない。
n次ヒルベルト曲線の経路距離dを表すことは、2*n(2かけるn)ビットを必要とする。2次元表現を用いるときには、x座標およびy座標のそれぞれが、経路距離d上に置かれた1ポイントを表すのにnビットを必要とする。したがって、ベクトルを「ヒルベルト」コーディングすることによって、数の対(x,y)が単一の数dとして再パッケージ化されるが、入力(x,y)と出力dとの両方は、同一のビット数すなわち2nを使用する。小さい(x,y)ベクトルは、dの小さい値にエンコードされる。実際に、n次ヒルベルト曲線が、この(n+1)次曲線の左下1/4に過ぎないことを観察することができる。
したがって、8ビット・イメージ内のすべてのピクセルの値を、4次ヒルベルト曲線上の経路距離と解釈することができ、したがって、範囲(0,0)−(15,15)すなわち16*16グリッド上のすべての場所のベクトルをエンコードすることができる。xの4ビットを下位ニブルに、yの4ビットを上位ニブルに詰め込むのではなく、ヒルベルト・コーディングされたピクセルは、xとyの両方が4未満の場合には16未満、xとyの両方が2未満の場合には4未満の値を有する。データ詰込みアルゴリズムは、アンカ・ポイント(ポインタが挿入される場所)のできる限り近くにデータ・ブロックを詰め込むことが好ましいので、小さい値を有するベクトルは、一般的である。さらに、これらのベクトルがヒルベルト・コーディングされる場合に、これは、ポインタ・イメージ内での小さいピクセル値に変換され、したがって、よりよいイメージ圧縮性能に変換される。
一実施形態では、16ビット・イメージまたは24ビットイメージが利用され、これらのイメージは、それぞれ256*256グリッドまたは4096*4096グリッド上の(x,y)ベクトルをエンコードすることができる。値256は、2^8と等しく、値4096は、2^12と等しい。
一実施形態で、ヒルベルト・コーディング・アルゴリズムは、符号付きベクトルに対処するように変更され、ここで、x値およびy値は、正数と負数との両方にまたがる範囲にわたる。この変更は、経路距離dに沿って、ベクトル象限を識別する2つの余分なビットを指定することを伴う。これらの2ビットは、xおよびyの符号ビットである。次に、xおよびyの絶対値を、通常通りにヒルベルト・コーディングする(二重カバレッジを避けるために、x=0およびy=0は、正の象限に属し、負のxまたはyの絶対値は、−1−xまたは−1−yとして計算される)。この実施形態では、符号ビットは、出力値の2つの最下位ビット位置に割り当てられ、その結果、象限のそれぞれのコーディングされるベクトルの数値範囲は、ほぼ等しくなる。したがって、16ビット・イメージの例について、両端を含んで−128と+127との間のx値およびy値を有するベクトルを、象限ごとに七次ヒルベルト曲線を使用してコーディングすることができる。−63と+63との間のx値およびy値を有するベクトルは、14ビットを用いて表すことのできるピクセル値を割り当てられ、ここで、2^14=16384である。xおよびyが−8と7との間にある場合には、この値は、2^8=256未満である。
詰込みアルゴリズム(packing algorithm)
1つまたは複数の実施形態で、ポインタ・レイヤおよびデータ・レイヤは、事前レンダリング済みレイヤと同様に事前に計算される。ポインタ・レイヤおよびデータ・レイヤの事前計算は、関連するベクトル・データのすべてをデータ・ブロックにエンコードすること、およびポインタとデータ・ブロックとの両方をできる限り効率的にそのそれぞれのレイヤに詰め込むこと、からなる。田舎区域またはまばらな近郊区域(図A14−2を参照されたい)では、地物(features)は、よく分離される傾向があり、ポインタ・イメージおよびデータ・イメージ内の大きい空の領域をもたらす。ポインタが発生する場合に、ポインタは、それが参照する地物(feature)に正確に乗ることが好ましく、それに対応するデータ・ブロックは、しばしば、正確にそのポインタにセンタリングされる。しかし、密な都市区域(図A14−3を参照されたい)では、地物(features)は、しばしば、事前レンダリング済みレイヤ内の対応する地物(features)の位置に密接に対応する位置にポインタおよびデータ・ブロックをおさめるには互いに近すぎる。したがって、四辺形詰込みアルゴリズムを使用して、ポインタおよびデータ・ブロックを、一切オーバーラップなしでその所望の位置のできる限り近くに置くことを試みることが役に立つ。
その結果は、図A14−3で明白である。空の領域350は、道路310に沿って複数の道路320との交差点に存在する地物(features)に対応するデータ・ブロック340を充填される。都市区域は、通常、よりまばらな区域(近郊住宅地区、山、または水域)によって囲まれているので、都市データ・ブロックを、地図上のどこかで、それが対応する地物(features)を有する都市区域の適度に近くに置くことが可能である。
一般に、人口密集都市内であっても、この「あふれだし」が過度に極端にはならない、十分な空きスペースがある。一般に、あふれだしのレートが高いほど、地図のベクトル・ベータはより不明確に局所化されるようになる。あふれだしは、一般に、データ・レイヤ・イメージの分解度が高められるときに劇的に減る。効率および非局所性が適度にバランスをとられる分解度を見つけることが、有益である。北米では、15メートル/ピクセルが、一般によい選択である。15メートル/ピクセルという分解度は、田舎区域では「やりすぎ」であるが、都市付近では、この分解度の選択は、あふれだしを制限する傾向がある。
効率的な四辺形詰込みは、計算的に困難な問題である。しかし、計算幾何学の文献に、これを解くための多数の近似アルゴリズムがあり、本発明は、これらのうちのどの特定の1つにも限定されない。言い換えると、計算幾何学の文献に記載され、当業者に既知の四辺形詰込みアルゴリズムの1つまたは複数を、本発明の1つまたは複数の実施形態と共に用いて、データ・レイヤ内にデータ・ブロックを置くことができる。
本発明の1つまたは複数の実施形態と共に既に使用されている好ましいアルゴリズムは、階層「四辺形ツリー」を用いるが、これは、次の動作を素速く行うことを可能にする:所与の四辺形が既にそのツリーに含まれる他の四辺形のいずれかと交差するかどうかをテストすること、オーバーラップしない四辺形を挿入すること、およびターゲット・ポイントpの周囲の半径r0<=r<r1のリング内の「空のコーナー」(すなわち、空のスペースに接する既に挿入されている四辺形に接するコーナー)の完全なセットを見つけること。
「貪欲なアルゴリズム」は、ターゲット・ポイントのできる限り近くに新しい四辺形を挿入するのに使用され、次のように進行する。
1)ターゲット・ポイントを中心とする四辺形の挿入を試みる。これが成功する場合には、アルゴリズムは終了する。
2)そうでない場合には、四辺形の長さまたは幅の最小値の半分になるように半径r0を定義し、r1=r0*2と定義する。
3)r0とr1との間のすべての「空のコーナー」を見つけ、半径を増大させてソートする。
4)これらのコーナーのそれぞれに次々と四辺形を置くことを試み、成功の際には、アルゴリズムは終了する。
試みられた挿入のどれもが成功しない場合には、r0にr1をセットし、r1に2*r0をセットし、ステップ3に進む。
好ましい実施形態では、このアルゴリズムは、置かれる四辺形の寸法と一致するかこれを超える空のスペースがイメージ内のどこかに存在するならば、四辺形を置くことに最終的に成功する。このアルゴリズムは、一度に一つの四辺形を置くという意味で「貪欲」である。この貪欲なアルゴリズムは、できる限り効率的にn個の四辺形を詰め込むという全体的論問題を解くことは試みない。全体論的アルゴリズムは、詰込み効率の明示的尺度の定義、無駄にされるスペースの最小化と、四辺形とその「ターゲット・ポイント」との間の距離の最小化との間の所望のトレードオフの指定、を含む。貪欲なアルゴリズムは、より少なく最適であるが、上のアルゴリズムの説明から明瞭であるように、このトレードオフを明示的に指定することを必要としない。
図A14−4に、3つの場合に関する基本的な詰込みアルゴリズムの出力を示す。それぞれの場合で、このアルゴリズムは、複数の四辺形を共通のポイントのできる限り近くに連続して置いた。四辺形詰込み問題に対するこの解決策は、例として提供される。左端の場合では、四辺形のほとんどが、小さく細い。3つのうちの中央の例、大きく、および少なくとも実質的に正方形の四辺形が、使用される。右端の例では、小さい四辺形と大きい四辺形の混合が使用される。
貪欲な詰込みアルゴリズムが地図のどの特定の区域をも配置について優先しないようにするために、四辺形挿入の順序をランダム化することが望ましい。したがって、好ましい実施形態では、ポインタ/データ・ブロック対が、ランダムな順序で挿入される。他の順序付けが、ある種の情況で詰込み効率をさらに改善する場合がある。たとえば、小さいブロックの前に大きいブロックを挿入することによって、無駄にされるスペースを最小にすることができる。
好ましい実施形態では、ポインタ・データは、2ピクセル×2ピクセル(行に沿った2ピクセルおよび列に沿った2ピクセルを意味する)ユニットに編成される。したがって、ピクセル単位では、各ポインタが、2×2である(この表記は行×列である)ことが好ましい。しかし、代替実施形態では、ポインタの行サイズおよび列サイズを変更することができる。代替実施形態では、ポインタを、12次ヒルベルト・コーディングを使用して、単一の24ビット・カラー・ピクセルによって表すことができる。
データ・ブロックについては、データ・ブロックのアスペクト比選択における自由があり、正方形ピクセル単位のブロック面積は、そのブロックにおさまるデータの量によって決定されるが、この面積は、多数の異なる形状の四辺形に適合する可能性がある。たとえば、24バイトのデータ・ブロック(4バイトの高さおよび幅情報と、20バイトの任意データとを含む)は、正確に1×24、2×12、3×8、4×6、6×4、8×3、または12×2として表すことができる(この実施形態では、上で説明したように、ブロック寸法がクライアント・サイドで既知になる前に2バイト幅をデコードできるようにするためにブロック幅が少なくとも2でなければならないので、24×1は、失格にされる)。
このデータ・ブロックは、1バイトを使い残して、5ピクセル×5ピクセル・ブロック(または「5×5」)内で表すこともできる。本明細書では、近似因数分解5×5に加えて、上でリストしたすべての因数分解の集合を、「シーリング因数分解」と称する。有効なシーリング因数分解の仕様は、その面積が、当のデータ・ブロックの寸法と一致するかこれを超えること、およびどの行または列も完全には無駄にされないことである。たとえば、7×4または3×9は、それぞれ6×4および3×8に縮小できるので、好ましいシーリング因数分解ではない。最も単純な実装では、ブロック寸法を、データ長のシーリング因数分解だけに基づいて選択することができる。一般に、「より正方形の」ブロック(4×6など)は、不等辺のブロック(2×12など)よりもよく詰め込まれる。
したがって、最も単純なブロック・サイズ決定アルゴリズムは、無駄にされるバイトに対して「正方形への近さ」をどのようにトレードオフするかに応じて、4×6または5×5のいずれかを選択することができる。より洗練されたブロックサイズ選択アルゴリズムは、ターゲット・ポイントの近くでの空のスペースの検索の一部として、適応式にブロック寸法を選ぶことができる。1つの実施形態では、上のアルゴリズムのステップ1および4が、次のように変更される。1)より正方形に近い因数分解を優先し、おそらくは無駄にされるバイトに関するペナルティを伴って、望ましさによって、必要なデータ長を有するシーリング因数分解をソートする。2)各シーリング因数分解によって与えられる寸法の四辺形を、順番にターゲット・ポイントpに置くことを試みる。3)これらの挿入のいずれかが成功する場合に、アルゴリズムは終了する。4)「空のコーナー」cのそれぞれについて、順番に、シーリング因数分解のそれぞれによって与えられる寸法の四辺形を順番にcに置くことを試みる。成功の際にはアルゴリズムが終了する。
このアルゴリズムのさらなる洗練は、挿入に関するスコアリング関数の指定を伴い、このスコアリング関数は、全体論的最適化関数と同様に、無駄にされるスペースと、非正方形アスペクト比と、ターゲット・ポイントからの距離とをトレードオフする。
3つの地図レイヤすなわち事前レンダリング済みレイヤ、ポインタ・レイヤ、およびデータ・レイヤのそれぞれが、JPEG2000表現または類似するスペース的にアクセス可能な表現として格納されることが好ましい。しかし、データ圧縮の許容可能な条件は、3つのレイヤの異なる1つについて異なる。
事前レンダリング済み道路レイヤの圧縮は、ロスレスである必要がないが、表示されたときに適度な知覚的精度を有することが有益である。15m/ピクセルでは、0.5ビット/ピクセル・ロッシイ・ウェーブレット圧縮が十分に適当であることがわかっている。しかし、好ましい実施形態では、ポインタ・レイヤおよびデータ・レイヤは、ロスレスに表現される。というのは、これらのレイヤに、クライアントがその正確な再構成を必要とするデータが含まれるからである。ロスレス圧縮は、通常は、非常に効率的ではない。たとえば、通常のディジタル像は、通常、最善でも約2の因数を超えてロスレスに圧縮はされない。データ・レイヤおよびポインタ・レイヤに関してはるかにより高いロスレス圧縮率を達成し、なおかつ標準的なウェーブレット・ベースのJPEG2000圧縮を用いる技法が、開発された(下の「平坦化」で説明する)。
代替の詰込み方法
データ・レイヤ内のデータ・ブロックを詰め込む代替実施形態を、このセクションで提示する。好ましい実施形態では、「割振り」関数が、所与の個数のバイト(ピクセルに対応する)を割り振るために定義される。この割振り関数は、類似する普通のメモリ割振り関数(Cでは「malloc」)とは3つの形で異なることが好ましい。
1)普通のメモリ割振り関数は、1次元アドレス・スペース内の連続する割り振られたインターバルの始めのアドレスに対応するスカラ・ポインタを返すが、本発明の割振り関数によって返されるポインタは、データ・イメージ内の開始位置を指定する2次元ベクトルである。
2)本明細書で開示される割振り関数によって割り振られるピクセルは、関数「malloc」によって返されるアドレスから始まる割り振られたバイトのようにすべてが連続しているのではない場合がある。
3)本明細書で開示される割振り関数は、割り振られるピクセルの所望の個数だけではなく、データ・イメージ上のターゲット位置も渡される。ピクセルの所望の個数は、すべての前に割り振られたピクセルを避けながら、ターゲット位置のできる限り近くで割り振られる。
「詰込みアルゴリズム」セクションで説明される「割振り」関数および以下で説明する代替の「割振り」関数は、これらの特性を共有する。しかし、前の「割振り」関数は、必ずピクセルの単一の四辺形を割り振るが、以下で説明する関数は、より柔軟にスペースを割り振ることができる。
データ・イメージの望ましいプロパティ(Alternative Packing Method)
1)少ないデータ・オーバーヘッド:今までに調査されたデータ・イメージの1つまたは複数の実施形態は、ある補助データをエンコードすることを必要とする。予備バージョンでは、このデータに、幅および高さに関する16ビット値として格納されるブロック寸法が含まれる。したがって、オーバーヘッドは、データの割り振られたチャンクあたり4ピクセルであった。
2)最小限の無駄にされるスペース:これまでに調査されたデータ・イメージの1つまたは複数の実施形態は、いくつかのピクセルを無駄にする場合がある。たとえば、一実施形態で、26ピクセルを要求することが、8×4ピクセル・ブロックの割振りをもたらした場合がある。8×4=32個の結果のピクセルのうちで、4個はオーバーヘッドであり、もう2個は無駄にされる。
3)よいスペース的局所化:同一のターゲット位置付近でのデータのかなり大きいチャンクの繰り返される割振りは、「混雑」をもたらす。データ・ピクセルは、ターゲットにできる限り近いことが望ましい。
4)コヒーレンス:性能の理由と、データ・イメージへの固定サイズのウィンドウを与えられて不完全なデータ・チャンクの個数を減らすこと、の両方のために、単一のチャンクのピクセルをできる限り連続した状態に保つことが望ましい。
これらのプロパティの間のトレードオフは、一般に行われなければならない。たとえば、コヒーレンスおよびスペース的局所化は、類似するプロパティであるように思われるが、これらは、しばしば衝突する。長いデータ・チャンクが、混雑したスポットの近くで割り振られる場合に、最も近い連続領域が、遠くにあり、一方、データ・チャンクがその代わりに割れ目を満たすために分割されるならば、必要な個数のピクセルを近くで割り振ることができ、よりよい局所化がもたらされるが、より悪いコヒーレンスがもたらされる場合がある。
本発明の1つまたは複数の実施形態は、n*mピクセル・ブロックになるようにデータ割振りの基本スペース単位をセットすることによって、データ詰込みを単純化し、ここで、nおよびmは、小さいが、2*2より小さくはなく、スペーシングn*mを用いてグリッド上で整列される。したがって、これらのブロックは、「スーパー・ピクセル」と考えることができる。
単一の割り振られたチャンクは、通常、n*mを超えるバイトを有し、したがって、そのチャンクは、複数のブロックにまたがらなければならない。したがって、ブロックは、連鎖されることが好ましい。あるブロックの最初の2つのピクセルは、チェーン内の次のブロックをポイントするポインタを備えることが好ましい(このポインタは、上で説明したようにヒルベルト・コーディングすることができる)。これは、事実上、単一リンク・リストの2次元類似物である。ベクトルは、現在のブロックに対して相対的にグリッド単位で指定することができ、その結果、たとえば、あるブロックがベクトル(+1,0)を指定する場合には、これは、そのチャンクが右側の次のブロックに連続することを意味し、あるブロックが(−2,−1)を指定する場合には、これは、そのチャンクが左側の2ブロックおよび上の1ブロックに連続することを意味する。(0,0)ベクトル(ヌル・ポインタと同等)は、現在のブロックがチェーン内の最後のブロックであることを示すのに使用することができる。
この方式でのデータ・オーバーヘッドは、ブロック・サイズが非常に小さい場合に多くなる可能性がある。2×2ブロックの限定的な場合について、1ブロックあたり4つのピクセルのうちの2つは、次のブロックへのポインタとして働き、オーバーヘッド・データが、ブロックの全データのうちの半分になる。しかし、多数の相殺される要因がある。1つは、詰込み問題が大幅に単純化され、より少ない無駄にされるスペースおよびよりよい局所化を伴うより最適の解決策がもたらされることである。
一実施形態で、チャンク割振りアルゴリズムは、n*mブロックをシーケンシャルに割り振ることによって働く。kバイトについて、ceil((n*m−2)/k)個のブロックを割り振ることができる。あるブロックの割振りは、ターゲット・ポイントに最も近い空のブロックを突き止めること、およびそれをフルとしてマークすることからなるものとすることができる。要求された個数のブロックを割り振った後に、データおよび次ブロック・ポインタが、これらのブロックに書き込まれる。「最も近い」は、さまざまな尺度を使用して定義することができるが、有用なプロパティを有する4つの選択は、次の通りである。
1)ユークリッド(L2)ノルム:これは、ターゲットまでの最短直線距離を有するブロックを選択し、同心リング内のブロックを充填する。
2)マンハッタン(L1)ノルム:この距離尺度は、xオフセットおよびyオフセットの絶対値の和である。円は、L2ではターゲット・ポイントから等距離のポイントのポイントの集合を定義するが、L1では、四辺形がこの集合を定義する。したがって、ブロックは、この尺度を使用するときには、集中的に、(複数の)四辺形を充填する。L1尺度は、ほとんどの応用例についてL2より意味をなす。というのは、データ・イメージへのウィンドウ自体が四辺形であり、2次元ポインタの最大範囲が四辺形であるからである。
3)ヒルベルト曲線ノルム:このノルムは、実際のヒルベルト曲線経路長を使用して定義され、象限は、前のセクションで説明したように下位2ビットにエンコードされる。したがって、このノルムを最小化することは、ポインタの大きさを直接に最小化する。また、前の2つのノルムと異なって、このノルムは、非縮退であり、これは、ターゲット・ポイント(最も近いブロック位置に丸められる)から任意の他のブロックまでの距離が一意であることを意味する。したがって、この実施形態では、「最も近い」割り振られていないブロックは、一意に定義される。
4)四辺形スパイラル・ノルム:この距離は、L1ノルムに似ているが、ターゲットからL1等距離の四辺形経路内のブロックに対する一貫した順序付けを課すことによって、L1ノルムの縮退を破る。この経路は、この四辺形上の任意のポイントで始まり、終わることができる。便宜のために、時計回りの進行で、下x、下yコーナーを指定することができる。このノルムは、ヒルベルト曲線ノルムに似て、「最も近い」割り振られていないブロックを一意に定義するという利点を有する。先在するフルブロックとの衝突がないと仮定すると、シーケンシャル・ブロックは、隣接し、これによって、ターゲットの回りで延びるスパイラルが形成される。
割振り中にチェーン内の最良の(空き)次ブロックを選ぶ他の手段も、可能である。一実施形態で、アロケータは、ターゲット・ポイントからの各ブロックの距離だけではなく、前のブロックからの各ブロックの距離をも考慮に入れることができる。同一の尺度を、この2つの距離を測定するのに使用することができる。代替案では、異なる尺度を使用することができ、この2つの距離を、相対重み付け係数と加算するか他の形で組み合わせて、組み合わされた距離を与えることができる。次ブロックの位置を判断する際に前のブロックからの距離に大きい重みを付けることは、コヒーレンスを優先し、ターゲット・ポイントまでの絶対距離に大きい重みを付けることは、スペース的局所化を優先する。したがって、この方式は、単一のパラメータを調整することよって任意の所望の形でコヒーレンスと局所化とをトレードオフすることを可能にする。
他の重要なパラメータは、ブロック・サイズ「n」である。この議論では、ブロックが正方形である、すなわちn=mであると仮定する。nがmと等しくない非正方形ブロックは、ターゲット・ポイントの密度が水平と垂直で異なる情況で、またはコヒーレントなスキャン・ライン・アクセスを優先するコンピュータ・アーキテクチャでのよりよい性能のために、有用である可能性がある。ブロック・サイズは、普通の1D(1次元)メモリ内の「メモリ・アライメント」に似て、メモリ細分性を定義する。大きいブロック・サイズは、次ブロック・ポインタが割り振られるスペースの分数2/n^2を使用するのでデータ・オーバーヘッドを減らし、コヒーレンスをも改善する。しかし、大きいブロック・サイズは、ブロック全体が一時に割り振られるので、無駄にされるスペースを増やす。無駄にされるスペースは、スペース的局所化を悪化させる可能性がある。ブロック・サイズの適当な選択は、期待されるチャンク長の分布ならびにターゲット・ポイントのスペース的分布に依存する。最良の選択を行うことは、複雑であり、一般に、典型的なデータを使用する実験によって行われなければならない。
地図ベクトル・データに関して、4ピクセル×4ピクセル・ブロックが、よいサイズであることがわかっている。データ・オーバーヘッドは、データ全体の1/8であり、これは、かなり多いが、無駄にされるスペースの減らされた量から生じるより隙間のない詰込みは、増やされたオーバーヘッドを好ましく、相殺する。図A14−11〜−13に、4*4ブロック(図A14−11)、6*6ブロック(図A14−12)、および8*8ブロック(図A14−13)を使用する米国バージン諸島のうちの1つのデータイメージ(高コントラスト用に画質を向上)を示す。無駄にされるスペースは、図を明瞭にするために図A14−11〜−13では白として描かれている(実際には、改善された圧縮性能のために、無駄にされるスペースは、値0または黒を割り当てられる)。明らかに、8*8ブロックは、大量のスペースを無駄にすると同時に貧弱な局所化を提供するが、4*4ブロックは、はるかに少ないスペースを無駄にし、よりよく局所化する。図A14−11の4*4ブロック・イメージは、他の2つより小さいファイル・サイズに圧縮されもする。
データ構造が、どのブロックがフルであるかを記憶し、ターゲット・ポイントおよび前のブロック位置に基づいて最も近い空のブロックを見つけるために必要であることに留意されたい。Rツリー(Antonin Guttman, R−Trees: A Dynamic Index Structure for Spatial Searching, SIGMOD Conference 1984: 47−57、これは参照によって本明細書に組み込まれている)は、この問題を解決するのに使用できる効率的な疎データ構造の例を提供する。単純にビット・マップを使用することも可能であり、ここで、「0」ビットは空きブロックを示し、「1」ビットは充填されたブロックを示す。これらのデータ構造の両方が、ストライピングをサポートすることができ、これによって、イメージ全体の一部だけが、任意の所与のときにワーキング・メモリ内に保持される。これは、非常に大きいスペース的データベース・イメージをオフラインで作成することを可能にする。局所化は、よく制限されるので、後続スペース的クエリに関するこのデータ・ベースの使用は、小さいウィンドウが一時に「可視」であることだけを必要とする。
イメージデータの平坦化(Flattening Image Data)
ロッシイ圧縮またはロスレス圧縮のいずれかのほとんどの形について、イメージ関数の大きさを小さくし、したがってより少ない上位ビットを占めるようにすることによって、性能を最適化することができる。したがって、いくつかの実施形態では、オリジナル・データを「平坦化する」ために、特殊なコーディング技法が使用される。これらの技法の結果は、図A14−5で明白であり、図A14−5には、平坦化の前(図A14−5A)および平坦化の後(図5B)の、データ・イメージの同一の人口稠密領域が示されている。図A14−5に使用されたデータ・イメージは、バージン諸島の道路地図データイメージである。図A14−5Bが、本出願書でより可視になるように故意に暗くされていることに留意されたい。図A14−5Bでは、提示されているように、全体としての四辺形イメージが、灰色のかすかな陰影である。さらに、図A14−5Aで非常に明白な少量のピクセル値変動は、まだ、図A14−5Bで、ほとんどはイメージの下半分で可視である。図A14−5Bのピクセルの大多数を通じたピクセル値の一貫性は、図A14−5Aのデータの「平坦化」の範囲の有効性を証言するものである。
図A14−5Aを参照すると、平坦化の前に、データ・イメージは、フル8ビットダイナミック・レンジを有し、高い周波数および構造化されたパターンを示し、これらが、このイメージを非常に悪く圧縮させる(実際に、このイメージのロスレスJPEG2000圧縮されたバージョンは、オリジナルの生のサイズより小さくはない)。「平坦化」の後には、構造のほとんどが消え、ピクセルの大多数は、8未満の値を有し、したがって、わずか3ビットを使用して表現することができる。このイメージの対応するJPEG2000圧縮されたバージョンは、3:1よりよい圧縮を有する。
「平坦化」は、次を含む複数の単純なデータ変換からなるものとすることができる(これは、図A14−5の例に適用された変換の完全なリストである)。
図A14−5に適用された平坦化技法
図A14−5の平坦化技法では、データ・ブロックの幅または高さなどの16ビット符号なし値は、通常は、上位バイトおよび下位バイトを使用してエンコードされる。値が、時々指定されない量だけ255(8ビット限界)を超えるので、16ビットを使用することができる。しかし、大多数の場合に、これらの値は、255を超えない。8ビットにおさまる値について、上位バイトは0になる。頻繁な0上位バイトとそれに続く大きい下位バイトは、図A14−5Aの諸部分で明白な2ピクセル周期性の多くを説明する。16ビットを、下の表2に示されているように再マッピングすることができる。
表2では、左の8列は、以前に上位バイトであった対の第1ピクセルを表し、右の8列は、以前に下位バイトであった第2ピクセルを表す。ビットをこの形で再配分することによって、アクセス可能な値の範囲(0〜65535)は変化しないままになるが、この2つのバイトがはるかに対称になる。たとえば、すべての16ビット値0〜255について、この2つのバイトのそれぞれが、16未満の値をとる。
類似するビットインターリービング技法が、32ビット以上の整数値に適用される。これらの技法は、符号付きの量にも拡張可能である。道路ベクトルの差分コーディングについて発生する、符号が頻繁に変化する変数について、符号ビットを、位置0に割り当てることができ、絶対値を、上のように交番するバイトでエンコードすることができる。説得力のある形で描かれるために、道路ベクトル・データを、ピクセル精度を超える精度で表現できることに留意されたい。1ピクセルより小さい任意の単位を、その代わりに使用することができ、あるいは、これと同等に、上の技法と共同して、固定小数点算術を使用してサブ・ピクセル精度を実装することができる。本発明の例示的実施形態では、1/16ピクセル精度のために、4つのサブ・ピクセル・ビットが使用されている。
数が上で説明したようにエンコードされるときには、数をできる限り小さくすることが望ましい。時々、コンテクストが、これを行う明白な形を暗示する。たとえば、好ましい実施形態では、各データ・ブロックは、2ピクセル以上の幅なので、エンコーディングの前にデータから2を引くことができる。より重要なことに、ポインタとデータ・ブロック内でエンコードされるすべての位置ベクトルとの両方が、絶対座標ではなくポインタ位置に対して相対的にピクセル単位で指定される。これは、エンコードされる数の大きさを大幅に減らすだけではなく、データ・イメージの一部分を、この部分の絶対位置に関わりなくローカル座標系でベクトル的にデコードし、レンダリングすることをも可能にする。
好ましい実施形態では、曲線(たとえば、道路の)を定義するポイントのシーケンスのベクトル・レンダリングについて、最初のポイントだけが、オリジナルのポインタ位置に関して相対的に指定される必要がある。後続のポイントは、「デルタ」すなわち前のポイントからのステップ・ベクトルとしてエンコードすることができる。第2のそのようなポイントの後に、追加の後続のポイントは、二次導関数すなわち現在のデルタと前のデルタとの間の差としてエンコードすることができる。二次導関数を使用するエンコーディングは、一般に、道路などの構造に効率的である。というのは、これらの構造が、導関数の連続性を有する曲線の離散化である傾向があるからである。言い換えると、道路は、その方向を漸進的に変更する傾向がある。
代替の平坦化技法
もう1つの「平坦化」技法が、テキスト・データと共に使用することに関して文献(1)(付録A6として本明細書に添付)に記載されており、このテキストデータは、1バイトあたり単一文字で、通常はASCIIとしてエンコードされる。文献(1)に記載の応用例では、英語テキストがエンコードされており、したがって、文字は、英語の代表的サンプルでの文字出現の減少する頻度に基づいて再マッピングされる。同一の技法を、このコンテクストで使用することができるが、地図内のエンコードされるテキストは、ほとんどが道路名からなり、普通の英語とは非常に異なる統計を有する。たとえば、数字および大文字が、はるかに顕著である。
上で提示したポインタまたはデータのエンコーディングの特定の方法が、例示であり、多数の他のエンコーディングも可能であることに留意されたい。「よい」エンコーディングは、一般に、滑らかであり、かつ/または低いダイナミック・レンジを有するイメージをもたらす。
上の技法を使用すると、1ピクセルあたり15メートル(m)の米国ワシントン州キング郡の道路地図は、下の表3に示されているように圧縮される。
驚くべきことに、この地図データのJPEG2000表現(ロッシイ事前レンダリングされた道路地図イメージ、ロスレス・ポインタ・レイヤ、およびロスレス・データ・レイヤを含む)は、実際に、表にされたテキストとしてのオリジナル・データを表す圧縮ZIPファイル(このファイルは、米国勢調査局の2002年TIGER/Lineデータベースの一部である)より小さい。しかし、オリジナルZIPファイルと異なって、新しい表現は、クライアントに対話的に供給される準備ができており、連続的にパン可能かつズーム可能なスペース的アクセスの効率的サポートを伴う。
文献(2)(別紙A12として本明細書に添付)で導入されたオリジナルの事前レンダリングされたマルチ・スケール地図の発明は、単一の事前レンダリングされるイメージではなく、線(または他の可視地物(features))の再スケーリングされた重みを伴う、プログレッシブに、より粗い分解度でレンダリングされるそのような複数のイメージのスタックを含んだ。これらのレンディションのどれからも地物(features)は省略されないが、いくつかの地物(features)は、明瞭に集約の意味でのみ可視になるのに十分な程度には、強調されていない。たとえば、都市の地方道路は、州全体のレベルでかすかな灰色のぼけになる。
本発明の1つまたは複数の実施形態を、オリジナルのベクトル・オブジェクトのサブ・セットだけが表される、より粗い事前レンダリングされた道路地図イメージに対応するポインタ・イメージおよびデータ・イメージを含むように拡張することができる。たとえば、州全体のポインタ・イメージおよびデータ・イメージは、事前レンダリングされるイメージに使用されるイメージよりはるかに低い分解度であるが、地方道路を除外して、州道および国道のデータだけを含む場合がある。これらのより粗いデータは、たとえばベクトルではなく道路名だけを指定する、「要約」とすることもできる。異なる分解度のデータは、オリジナルデータの変化する混合物またはサブ・セット、あるいは要約されたバージョンを含むことができる。この技法は、関連するデータのすべてをより小さい粗いイメージにおさめることを可能にすると同時に、そのスケールでのナビゲーションに関連するベクトル情報のサブ・セットをクライアントに与える。
上で概要を示した実装は、すべての分解度での8ビット・グレイ・スケール事前レンダリング済み地図イメージを提案するが、事前レンダリングされるイメージを、カラーにすることもできる。さらに、事前レンダリングされるイメージが単一チャネル・イメージである場合であっても、それらのイメージをクライアントによってカラーで表示することができる。というのは、ベクトル・データを使用して、事前レンダリングされた材料と異なる色で重要な道路を描くことができるからである。最後に、事前レンダリングされるイメージは、クライアントがイメージとベクトル材料を適当に合成することに頼って、ベクトル・データ内に存在するある種の地物(features)または道路を省略することができる。
本明細書の発明を、特定の実施形態を参照して説明したが、これらの実施形態が、単に本発明の原理および応用例を例示するものであることを理解されたい。したがって、これらの例示的実施形態に対して多数の変更を行うことができること、および特許請求の範囲によって定義される本発明の趣旨および範囲から逸脱せずに他の配置を考案できることを理解されたい。
(特許請求の範囲)
1.イメージを示す情報を送信する方法であって、
第1イメージとして情報の1つまたは複数のノードを送信すること、
前記第1イメージ内の事前に決定された位置での表示に利用される特性を定義するベクトルを示す情報を含む第2イメージを送信すること、および
前記第1および第2のイメージのレシーバが前記事前に決定された位置で前記ベクトルを利用するために前記第1および第2のイメージを相関させることができるように前記第1および第2のイメージの間のマッピングを備える第3イメージを送信すること
を備えることを特徴とする方法。
2.前記第1イメージは、地図であり、前記第2イメージは、事前に決定された詳細レベルで表示されるのみであるビジュアル・データを定義するベクトルのセットであることを特徴とする請求項1に記載の方法。
3.前記第1イメージは、地図であることを特徴とする請求項1に記載の方法。
4.前記第2イメージは、ハイパーリンクを含むことを特徴とする請求項1に記載の方法。
5.前記第1イメージは、地図であり、前記第2イメージは、ベクトルのセットを含み、前記ベクトルのうちの複数のベクトルは、前記第1イメージ上の前記ベクトルが適用される位置に対応する位置に置かれ、前記ベクトルのうちの複数のベクトルは、前記第1イメージ上の前記ベクトルが適用される前記位置に対応しない前記第2イメージ上の位置に置かれることを特徴とする請求項1に記載の方法。
6.1つまたは複数のベクトルが現れる前記第2イメージ上の位置と前記1つまたは複数のベクトルが適用される前記第1イメージ上の位置との間のスペースの量を減らすために前記第2イメージを構成するのに効率的な詰込みアルゴリズム(packing algorithm)を利用することをさらに備えることを特徴とする請求項5に記載の方法。
7.前記ベクトルは、ノードまたはサブ・ノードを起動するための情報を含むことを特徴とする請求項6に記載の方法。
8.リモート・コンピュータからデータの第1、第2、および第3のセットを受信することを備え、前記第1データ・セットは、イメージを表し、前記第2データ・セットは、規定された位置での前記イメージの特性を定義するベクトルを表し、前記第3データ・セットは、前記位置を規定するように働くことを特徴とするイメージをレンダリングする方法。
9.前記規定された位置は、地図上の街路位置であることを特徴とする請求項8に記載の方法。
10.前記ベクトルは、サブ・ノードを表し、どの条件の下で前記サブ・ノードを起動しなければならないかを示す情報を含むことを特徴とする請求項8に記載の方法。
11.前記ベクトルは、外部ウェブ・サイトおよび埋め込まれたビジュアル・コンテンツからなる群の少なくとも1つへのハイパーリンクを含むことを特徴とする請求項8に記載の方法。
12.前記ベクトルは、宣伝材料へのハイパーリンクを含むことを特徴とする請求項8に記載の方法。
13.前記ベクトルは、イメージ内の事前に決定された位置での前記イメージの諸部分のレンダリング方法を指定する情報を含むことを特徴とする請求項8に記載の方法。
14.イメージの第1レイヤを提供することであって、前記第1レイヤは、前記第1レイヤ内の位置を有する前記イメージの地物(features)を含むように提供すること、および
前記イメージの第2レイヤであって、前記地物(features)のそれぞれの1つに対応するデータ・ブロックを含み、各前記データ・ブロックは、各前記データ・ブロックに対応する前記地物(feature)の前記第1レイヤ内の位置に実質的に対応する前記第2レイヤ内の位置にあり、前記第2レイヤのサイズおよび形状は、前記第1レイヤのサイズおよび形状に実質的に対応する第2レイヤを提供すること
を備えることを特徴とする方法。
15.各前記データ・ブロックは、各前記データ・ブロックに対応する前記地物(feature)の少なくとも1つの特性を記述することを特徴とする請求項14に記載の方法。
16.前記イメージの第3レイヤであって、ポインタを含み、各前記ポインタは、前記地物(features)のそれぞれの1つおよび前記データ・ブロックのそれぞれの1つに対応する、前記第3レイヤを提供することをさらに備えることを特徴とする請求項14に記載の方法。
17.各前記ポインタは、各前記ポインタの位置に関する各前記ポインタの対応するデータ・ブロックの位置を示すことを特徴とする請求項16に記載の方法。
18.前記記述することは、少なくとも1つの前記地物(feature)に関するテキスト・データを提供することを備えることを特徴とする請求項15に記載の方法。
19.前記記述することは、少なくとも1つの前記地物(feature)のグラフィカル・イラストレーションを提供することを備えることを特徴とする請求項15に記載の方法。
20.前記記述することは、少なくとも1つの前記地物(feature)を示す幾何学的データを提供することを備えることを特徴とする請求項15に記載の方法。
21.前記幾何学的データは、輪郭データを備えることを特徴とする請求項20に記載の方法。
22.前記記述することは、少なくとも1つの前記地物(feature)のカラー情報を提供することを備えることを特徴とする請求項15に記載の方法。
23.前記記述することは、少なくとも1つの前記地物(feature)に関する外部ウェブ・サイトへの少なくとも1つのリンクを提供することを備えることを特徴とする請求項15に記載の方法。
24.前記記述することは、少なくとも1つの前記地物(feature)に関する埋め込まれたビジュアル・コンテンツを提供することを備えることを特徴とする請求項15に記載の方法。
25.前記記述することは、少なくとも1つの前記地物(feature)に関する宣伝情報を提供することを備えることを特徴とする請求項13に記載の方法。
26.前記記述することは、道路セグメントの概略詳細を提供することを備えることを特徴とする請求項15に記載の方法。
27.前記記述することは、
少なくとも1つの道路、少なくとも1つの公園、領域の地形(topography)、水域のhydrography、少なくとも1つのビルディング、少なくとも1つの公衆便所、少なくとも1つのwireless fidelityステーション、少なくとも1つの電力線、および少なくとも1つのスタジアムからなる群の少なくとも1つの概略詳細(schematic detail)を提供すること
を備えることを特徴とする請求項15に記載の方法。
28.イメージの第1レイヤであって、前記第1レイヤ内の位置を有する前記イメージの地物(features)を含む、前記第1レイヤを提供すること、および
前記イメージの第2レイヤであって、前記地物(features)のそれぞれの1つに対応するデータ・ブロックを含み、各前記データ・ブロックは、各前記データ・ブロックに対応する前記地物(feature)の前記第1レイヤ内の位置に実質的に対応する前記第2レイヤ内の位置にあり、前記第2レイヤのサイズおよび形状は、前記第1レイヤのサイズおよび形状に実質的に対応する、第2レイヤを提供すること
を備えるアクションを処理ユニットに実行させるように動作する1つまたは複数のソフトウェア・プログラムの制御の下で動作する前記処理ユニットを含むことを特徴とする装置。
29.イメージの第1レイヤであって、前記第1レイヤ内の位置を有する前記イメージの地物(features)を含む、第1レイヤを提供すること、および
前記イメージの第2レイヤであって、前記地物(features)のそれぞれの1つに対応するデータ・ブロックを含み、各前記データ・ブロックは、各前記データ・ブロックに対応する前記地物(feature)の前記第1レイヤ内の位置に実質的に対応する前記第2レイヤ内の位置にあり、前記第2レイヤのサイズおよび形状は、前記第1レイヤのサイズおよび形状に実質的に対応する、第2レイヤを提供すること
を備えるアクションを処理ユニットに実行させるように動作する1つまたは複数のソフトウェア・プログラムを含むことを特徴とする格納媒体。
30.イメージの第1レイヤであって、前記第1レイヤ内の位置を有する前記イメージの地物(features)を含む、第1レイヤを提供すること、
前記イメージの第2レイヤであって、前記地物(features)のそれぞれの1つに対応し、これを記述するデータ・ブロックを含み、各前記データ・ブロックは、各前記データ・ブロックに対応する前記地物(feature)の前記第1レイヤ内の位置に少なくとも実質的に対応する前記第2レイヤ内の位置にある、第2レイヤを提供すること、および
前記イメージの第3レイヤであって、前記第3レイヤ内の位置を有するポインタを含み、各前記ポインタは、前記地物(features)のそれぞれの1つおよび前記データ・ブロックのそれぞれの1つに対応し、前記第3レイヤ内の各前記ポインタの前記位置は、各前記ポインタに対応する前記地物(feature)の前記第1レイヤ内の前記位置に少なくとも実質的に対応する、第3レイヤを提供すること
を備えることを特徴とする方法。
31.前記第2レイヤおよび前記第3レイヤは、それぞれ、前記第1レイヤのサイズおよび形状に対応するサイズおよび形状を有することを特徴とする請求項30に記載の方法。
32.前記第1レイヤ、前記第2レイヤ、および前記第3レイヤの組合せから地図イメージを形成することをさらに備えることを特徴とする請求項30に記載の方法。
33.前記地図イメージ内のデータを平坦化(flattening)することをさらに備えることを特徴とする請求項32に記載の方法。
34.各前記ポインタは、各前記ポインタの位置に関する各前記ポインタの対応するデータ・ブロックの位置を示すことを特徴とする請求項30に記載の方法。
35.前記示すことは、2次元でオフセットを識別することを備えることを特徴とする請求項34に記載の方法。
36.前記オフセットの各前記次元は、ピクセル単位で表されることを特徴とする請求項35に記載の方法。
37.前記示すことは、ヒルベルト曲線に沿った1次元距離としてオフセットを識別することを備えることを特徴とする請求項35に記載の方法。
38.前記1次元曲線に沿った前記オフセットは、ピクセルの単位で表されることを特徴とする請求項37に記載の方法。
39.前記1次元曲線に沿った前記オフセットは、ピクセルの整数倍数に対応する単位で表されることを特徴とする請求項37に記載の方法。
40.前記イメージの前記第2レイヤの前記提供することは、
前記第2レイヤ内の各前記データ・ブロックのターゲット位置であって、各前記データ・ブロックに対応する前記地物(feature)の前記第1レイヤ内の位置に対応する、ターゲット位置への各前記データ・ブロックの最大近接を達成するために詰込みアルゴリズム(packing algorithm)を用いて各前記データ・ブロックを置くこと
を備えることを特徴とする請求項30に記載の方法。
41.前記最大近接は、各前記データ・ブロックの位置と各前記データ・ブロックの前記ターゲット位置との間の最短直線距離に基づいて決定されることを特徴とする請求項40に記載の方法。
42.前記最大近接は、各前記データ・ブロックの位置と各前記データ・ブロックの前記ターゲット位置との間の2つの次元のそれぞれでのオフセットの絶対値の和に基づいて決定されることを特徴とする請求項40に記載の方法。
43.前記最大近接は、各前記データ・ブロックの位置と各前記データ・ブロックの前記ターゲット位置との間の最小ヒルベルト曲線長に基づいて決定されることを特徴とする請求項40に記載の方法。
44.イメージの第1レイヤであって、前記第1レイヤ内の位置を有する前記イメージの地物(features)を含む、第1レイヤを提供すること、
前記イメージの第2レイヤであって、前記地物(features)のそれぞれの1つに対応し、これを記述するデータ・ブロックを含み、各前記データ・ブロックは、各前記データ・ブロックに対応する前記地物(feature)の前記第1レイヤ内の位置に少なくとも実質的に対応する前記第2レイヤ内の位置にある、第2レイヤを提供すること、および
前記イメージの第3レイヤであって、前記第3レイヤ内の位置を有するポインタを含み、各前記ポインタは、前記地物(features)のそれぞれの1つおよび前記データ・ブロックのそれぞれの1つに対応し、前記第3レイヤ内の各前記ポインタの前記位置は、各前記ポインタに対応する前記地物(feature)の前記第1レイヤ内の前記位置に少なくとも実質的に対応する、第3レイヤを提供すること
を備えるアクションを処理ユニットに実行させるように動作する1つまたは複数のソフトウェア・プログラムを含むことを特徴とする格納媒体。
45.前記第2レイヤおよび前記第3レイヤは、それぞれ前記第1レイヤのサイズおよび形状に対応するサイズおよび形状を有することを特徴とする請求項44に記載の格納媒体。
46.前記処理ユニットは、
前記第1レイヤ、前記第2レイヤ、および前記第3レイヤの組合せから地図イメージを形成するさらなるアクション
を実行することを特徴とする請求項44に記載の格納媒体。
47.各前記ポインタは、各前記ポインタの位置に関する各前記ポインタの対応するデータ・ブロックの位置を示すことを特徴とする請求項44に記載の格納媒体。
48.前記示すことは、2次元でオフセットを識別することを備えることを特徴とする請求項44に記載の格納媒体。
49.前記イメージの前記第2レイヤの前記提供することは、
前記第2レイヤ内の各前記データ・ブロックのターゲット位置であって、各前記データ・ブロックに対応する前記地物(feature)の前記第1レイヤ内の位置に対応するターゲット位置への各前記データブロックの最大近接を達成するために詰込みアルゴリズム(packing algorithm)を用いて各前記データ・ブロックを置くこと
を備えることを特徴とする請求項44に記載の格納媒体。
50.前記最大近接は、各前記データ・ブロックの位置と各前記データ・ブロックの前記ターゲット位置との間の最短直線距離に基づいて決定されることを特徴とする請求項49に記載の格納媒体。
51.イメージの第1レイヤであって、前記第1レイヤ内の位置を有する前記イメージの地物(features)を含む、第1レイヤを提供すること、
前記イメージの第2レイヤであって、前記地物(features)のそれぞれの1つに対応し、これを記述するデータ・ブロックを含み、各前記データ・ブロックは、各前記データ・ブロックに対応する前記地物(feature)の前記第1レイヤ内の位置に少なくとも実質的に対応する前記第2レイヤ内の位置にある、第2レイヤを提供すること、および
前記イメージの第3レイヤであって、前記第3レイヤ内の位置を有するポインタを含み、各前記ポインタは、前記地物(features)のそれぞれの1つおよび前記データ・ブロックのそれぞれの1つに対応し、前記第3レイヤ内の各前記ポインタの前記位置は、各前記ポインタに対応する前記地物(feature)の前記第1レイヤ内の前記位置に少なくとも実質的に対応する、第3レイヤを提供すること
を備えるアクションを処理ユニットに実行させるように動作する1つまたは複数のソフトウェア・プログラムの制御の下で動作する前記処理ユニット
を含むことを特徴とする装置。
52.前記第2レイヤおよび前記第3レイヤは、それぞれ前記第1レイヤのサイズおよび形状に対応するサイズおよび形状を有することを特徴とする請求項51に記載の装置。
53.前記処理ユニットは、
前記第1レイヤ、前記第2レイヤ、および前記第3レイヤの組合せから地図イメージを形成するさらなるアクション
を実行することを特徴とする請求項51に記載の装置。
54.各前記ポインタは、各前記ポインタの位置に関する各前記ポインタの対応するデータ・ブロックの位置を示すことを特徴とする請求項51に記載の装置。
55.前記示すことは、2次元でオフセットを識別することを備えることを特徴とする請求項54に記載の装置。
56.前記イメージの前記第2レイヤの前記提供することは、
前記第2レイヤ内の各前記データ・ブロックのターゲット位置への各前記データブロックの最大近接を達成するために詰込みアルゴリズム(packing algorithm)を用いて各前記データ・ブロックを置くことであって、前記第2レイヤ内の前記ターゲット位置は、各前記データ・ブロックに対応する前記地物(feature)の前記第1レイヤ内の位置に対応するように置くこと
を備えることを特徴とする請求項51に記載の装置。
57.前記最大近接は、各前記データ・ブロックの位置と各前記データ・ブロックの前記ターゲット位置との間の最短直線距離に基づいて決定されることを特徴とする請求項56に記載の装置。
(要約)
イメージの第1レイヤを提供することであって、第1レイヤは、第1レイヤ内の位置を有するイメージの地物(features)を含むように提供すること、およびイメージの第2レイヤを提供することであって、第2レイヤは、地物(features)のそれぞれの1つに対応するデータ・ブロックを含み、各データ・ブロックは、各データ・ブロックに対応する地物(feature)の第1レイヤ内の位置に実質的に対応する第2レイヤ内の位置にあり、第2レイヤのサイズおよび形状は、前記第1レイヤのサイズおよび形状に実質的に対応するように提供することを含む方法およびシステムを開示する。