(57)【特許請求の範囲】
【請求項１】
コンピュータにおいて可視化プラットフォームの最適化を提供するための方法であって、
可視表現を定義することと、
複数の形状ベクトルを作成することと、
前記可視表現を表示する要求を受信することと、
複数の形状ベクトルの反復処理を行うことと、
ゼロレングスの線分の検出、前記複数の形状ベクトルの総数、データポイントの総数、ディスプレイサイズ、データタイプ、および可視表現タイプのうちの少なくとも１つの基準を含む形状スキップアルゴリズムに従って、前記複数の形状ベクトルのうち少なくとも１つの第１のベクトルをスキップするステップと、
前記複数の形状ベクトルのうちの少なくとも１つの第２のベクトルを少なくとも１つの描画命令に変換することと、
前記可視表現を表示装置に表示することと
を備えることを特徴とする方法。
【請求項２】
前記複数の形状ベクトルのうちの前記少なくとも１つの第２のベクトルが、前記複数の形状ベクトルのうちの少なくとも１つの第３のベクトルに関連付けられたピクセル位置を含むかどうかを判断することと、
前記複数の形状ベクトルのうちの前記少なくとも１つの第２のベクトルが、前記複数の形状ベクトルのうちの前記少なくとも１つの第３のベクトルに関連付けられたピクセル位置を含むと判断したことに応答して、前記複数の形状ベクトルのうちの前記少なくとも１つの第３のベクトルをスキップすることと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記変換された複数の形状ベクトルをアプリケーションに送信することと、
前記アプリケーションによる表示のために前記変換された複数の形状ベクトルをレンダリングすることと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記アプリケーションから、変換された複数の形状ベクトルに対するバッチの要求を受信することと、
前記変換された複数の形状ベクトルのサブセットを前記アプリケーションに送信することであって、前記変換された複数の形状ベクトルの前記サブセットは、前記受信したバッチの要求に関連付けられた、変換された形状ベクトルを含むことと、
前記複数の変換された形状ベクトルのうちの残りのサブセットを送信するのを待つことと
をさらに備えることを特徴とする請求項３に記載の方法。
【請求項５】
前記複数の形状ベクトルのうちの前記少なくとも１つの第２のベクトルを少なくとも１つの描画命令に変換することは、前記複数の形状ベクトルのうちの少なくとも１つを線形化することを備えることを特徴とする請求項１に記載の方法。
【請求項６】
少なくとも１つのサポートされた描画命令を受信することをさらに備え、
前記複数の形状ベクトルのうちの前記少なくとも１つの第２のベクトルを少なくとも１つの描画命令に変換することは、前記複数の形状ベクトルのうちの前記少なくとも１つの第２のベクトルを前記少なくとも１つのサポートされた描画命令に変換することを含むことを特徴とする請求項１に記載の方法。
【請求項７】
記憶装置と、
前記記憶装置に結合された処理装置であって、
複数のデータ値に関連付けられる可視オブジェクトを作成し、
前記複数のデータ値のうちの少なくとも１つの第１の値を前記可視オブジェクトに関連付けられた形状ベクトルに構成し、
前記複数のデータ値のうちの少なくとも１つの第２の値の構成をスキップし、
複数の形状ベクトルのうちの少なくともサブセットを複数の描画命令に変換する
ように動作可能な処理装置と
を備え、前記複数の形状ベクトルの前記サブセットは、ゼロレングスの線分の検出、前記複数の形状ベクトルの総数、データポイントの総数、ディスプレイサイズ、データタイプ、および可視表現タイプのうちの少なくとも１つの基準を含む形状スキップアルゴリズムに従って選択されることを特徴とする可視化プラットフォームの最適化を提供するためのシステム。
【請求項８】
前記形状スキップアルゴリズムは、さらに、
前記複数の形状ベクトルのうちの少なくとも１つの第１のベクトルを、少なくとも１つの描画命令に変換し、
前記複数の形状ベクトルのうちの少なくとも１つの第２のベクトルを反復処理し、
前記複数の形状ベクトルのうちの前記少なくとも１つの第２のベクトルが、前記少なくとも１つの第１のベクトルに関連付けられた前記可視オブジェクト上のポイントに近接した前記可視オブジェクト上のポイントを備えるかどうかを判断し、
前記複数の形状ベクトルのうちの前記少なくとも１つの第２のベクトルが、前記少なくとも１つの第１のベクトルに関連付けられた前記可視オブジェクト上のポイントに近接した前記可視オブジェクト上のポイントを備えると判断したことに応答して、前記少なくとも１つの第２のベクトルを少なくとも１つの描画命令に変換することをスキップする
ように動作することを特徴とする請求項７に記載のシステム。
【請求項９】
実行されると、可視化プラットフォームを最適化するための方法をコンピュータに実行させる、命令のセットを格納するコンピュータ読取可能記憶媒体であって、前記方法は、
可視オブジェクトを作成する要求をユーザアプリケーションから受信することであって、前記要求は複数のデータ値および可視表現タイプを含み、前記可視オブジェクトは、各データポイントが関連する値を備える一連のデータポイントの２次元表現を含むことと、
前記可視オブジェクトに関連付けられた複数の形状ベクトルを構成することであって、前記複数の形状ベクトルを構成することは、
前記複数のデータ値のうちの少なくとも１つに関連付けられた少なくとも１つの形状ベクトルを構成すること、および
ディスプレイサイズ、データタイプ、表示すべきデータポイントの総数、前記複数の形状ベクトルの総数、およびディスプレイオブジェクト間において重複しているサイズのうちの少なくとも１つを含む基準に応じて前記複数のデータ値のうちの少なくとも１つのデータ値をスキップすること
を含むことと、
前記ユーザアプリケーションからレンダリング要求を受信することと、
前記複数の形状ベクトルのサブセットの各々を、少なくとも１つの描画命令に変換することであって、前記複数の形状ベクトルの前記サブセットは、ゼロレングスの線分の検出、前記複数の形状ベクトルの総数、前記データポイントの総数、前記ディスプレイサイズ、前記データタイプ、および前記可視表現タイプのうちの少なくとも１つの前記基準を含む形状スキップアルゴリズムに従って選択されることと、
前記複数の形状ベクトルの前記サブセットの各々に関連付けられた前記少なくとも１つの描画命令を前記ユーザアプリケーションに送信することと、
前記可視オブジェクトをレンダリングすることであって、該可視オブジェクトをレンダリングすることは、前記複数の形状ベクトルの前記サブセットの各々に関連付けられた前記少なくとも１つの描画命令を表示装置にレンダリングすることを含むことと、
前記レンダリングされた可視オブジェクトに影響を与える変更の検出に応答して、前記ユーザアプリケーションから第２のレンダリング要求を受信することと、
前記複数の形状ベクトルの第２のサブセットの各々を、少なくとも１つの描画命令に変換することと、
前記複数の形状ベクトルの前記第２のサブセットの各々に関連付けられた前記少なくとも１つの描画命令を、前記ユーザアプリケーションに送信することと、
前記可視オブジェクトを再レンダリングすることと
を含むことを特徴とするコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ可視化プラットフォームのパフォーマンスを最適化することに関する。
【背景技術】
【０００２】
データ可視化プラットフォーム（data visualization platform）のパフォーマンスの最適化により、視覚オブジェクト（visual object）の生成において改善されたパフォーマンスが提供される。一部の状況において、視覚オブジェクトの生成は、コンピュータにとって非常にパフォーマンスが集中することがある。例えば、チャートおよび地図の生成は、オブジェクトが多数のデータポイントを含むときは特に、相当な処理能力および／またはメモリを必要とする。従来の方法では、結果として得られるオブジェクトの大きさにかかわらず、全てのデータポイントをレンダリングする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
これは、オブジェクトに対する特定の操作がコンピュータの応答を遅くさせてしまうことがあるため、問題を引き起こすことがある。例えば、大きな地図を表示すること、詳細なチャートの一部を選択すること、オブジェクトをスクロールし、印刷し、および／または修正することは、相当な処理能力を必要とすることがあり、コンピュータの応答を遅くさせてしまうことがある。
【課題を解決するための手段】
【０００４】
データ可視化プラットフォームのパフォーマンスの最適化を提供する。この課題を解決するための手段の記載は、以下の詳細な説明においてさらに説明する概念の選択を簡略化した形式で紹介するために提供される。この課題を解決するための手段は、特許請求される主題の主要な特徴、または本質的な特徴を識別することを意図するものではない。また、この課題を解決するための手段は、特許請求される対象の範囲を限定するために使用されることを意図するものではない。
【０００５】
データ可視化プラットフォームの最適化を提供する。アプリケーションは、データ値を提供して、データ可視化プラットフォーム（ＤＶＰ：data visualization platform）に可視表現（visualization）の作成を要求する。ＤＶＰは、可視表現のデータ値のサブセットに関連付けられた複数の形状ベクトルを構成することができる。アプリケーションは、形状ベクトルの反復処理（iterate）を行い、該ベクトルのサブセットを表示装置に出力するための描画命令に変換することによって、可視表現をレンダリングすることができる。
【０００６】
上述の概要および以下の詳細な説明は双方とも例を提供するものであって、説明のためのものにすぎない。したがって、上述の概要および以下の詳細な説明は、限定的なものと見なされるべきではない。さらに、本明細書で説明されるものに加えて、特徴または変形物が提供され得る。例えば、実施形態は、詳細な説明において記述される様々な特徴の組合せ、およびサブコンビネーションを対象とすることができる。
【０００７】
本開示に組み込まれ、本開示の一部を構成する添付の図面は、本発明の様々な実施形態を図示する。
【図面の簡単な説明】
【０００８】
【図１】動作環境のブロック図である。
【図２】可視化プラットフォームのパフォーマンスを最適化するための方法のフローチャートである。
【図３】コンピューティング装置を含むシステムのブロック図である。
【発明を実施するための形態】
【０００９】
以下の詳細な説明では添付の図面を参照する。可能な限り、図面、および以下の説明にでは、同じ参照番号を使用して、同じまたは類似の要素を示す。本発明の諸実施形態を説明するが、修正、適応、および他の実装形態が可能である。例えば、図面に図示される要素に対して置換、追加、または修正を行うことができ、本明細書に記述される方法は、開示される方法に対する段階の置換、順序変更、または追加によって修正されてよい。したがって、以下の詳細な説明は本発明を限定するものではない。代わりに、本発明の正確な範囲は添付の特許請求の範囲によって定義される。
【００１０】
データ可視化プラットフォーム（ＤＶＰ：Data Visualization Platform）のパフォーマンスの最適化を提供する。本発明の実施形態に従って、ＤＶＰは、ディスプレイ解像度に従ってオブジェクトの構成の間にデータポイントをスキップすることができ、形状ベクトルの最小のセットをメモリ内に構築することができる。ＤＶＰは、オブジェクトのレンダリングの間、構成されたベクトルをスキップすることもできる。ＤＶＰはさらに、最大メモリ消費、時間、および／またはデータポイントカウントなどの設定に対する制御を可能にするアプリケーションプログラミングインターフェース（ＡＰＩ）を使用することなどによって、データポイントおよび／またはベクトルをスキップするためのアルゴリズムをスケーリングして、異なる品質設定を公開することを可能にすることができる。
【００１１】
図１は、可視化プラットフォーム１０５を提供するためのオペレーティング環境１００のブロック図である。可視化プラットフォーム１０５は、オブジェクトモジュール１１０、レイアウトエンジン１１５、および形状イテレータ（geometry iterator）１２５を備えることができる。レイアウトエンジン１１５は、データポイントスキップアルゴリズム１２０を備えることができる。形状イテレータ１２５は、形状スキップアルゴリズム１３０を備えることができる。形状イテレータ１２５およびレイアウトエンジン１１５は、複数の形状ベクトルデータ１３５を作成し、更新し、読み取り、抽出し、および／または提供することができる。オペレーティング環境１００は、モニタ、スクリーン、プリンタ、および／または他の表示装置などの出力装置１５０に描画命令をレンダリングするように動作可能なレンダラ（renderer）１４５を有するアプリケーション１４０をさらに備えることができる。可視化プラットフォーム１０５は、チャートなどのデータの可視表現の作成を可能にするアーキテクチャを備えることができ、対話的な特徴を可視表現上に公開することができる。アーキテクチャは、複数のレンダリングプラットフォームの統合を提供することができる。公開された特徴をユーザが選択すると、アーキテクチャは、その選択を共通のフォーマットに変換し、そしてレンダリングプラットフォームとは独立に、レイアウトルールに従ってデータの可視表現を修正することができる。
【００１２】
アプリケーション１４０は、オブジェクトモジュール１１０を通じて可視表現を定義することができる。オブジェクトモジュール１１０は、形状ベクトルの集合を形状ベクトルデータ１３５としてメモリ内に構築することができるレイアウトエンジン１１５を、呼び出すことができる。アプリケーション１４０は、後に可視表現をレンダリングする必要がある場合があり、形状ベクトルデータ１３５にアクセスして該データをアプリケーション１４０に返すことができる形状イテレータ１２５を呼び出すことができる。アプリケーション１４０は、形状ベクトルデータ１３５内の各形状プリミティブ（geometry primitive）を、出力装置１５０にレンダリングするための描画命令に変換することができる。
【００１３】
可視化プラットフォーム１０５は、対話的な可視表現を提供するためのソフトウェアライブラリおよび／またはユーティリティを備える共有コア（shared core）を備えることができる。共有コアは、例えばＣ＋＋またはＣ＃で実装され、プラットフォームに依存しないものとすることができる。共有コアは、レイアウト、形（shape）および／または形状、ラインサービス、３次元レンダリング、アニメーションフレーム生成、ならびに／あるいは対話的ホットスポットを提供するための可視化ユーティリティを備えることができる。可視化プラットフォーム１１０は、アプリケーション１４０と対話するためのアプリケーションプログラミングインターフェース（ＡＰＩ）をさらに備えることができる。
【００１４】
形状ベクトルデータ１３５の構成、および形状ベクトルデータ１３５のレンダリング用の描画命令への変換の間において、パフォーマンスの最適化のための２つの領域があり得る。例えば、形状ベクトルデータ１３５の構成の間、データの量が増加することにより、メモリの利用が非常に増加することがある。データのサブセットの形状ベクトルを構成できるように、必要なメモリの量を、データポイントスキップアルゴリズム１２０の使用を通じて低減させることができる。形状スキップアルゴリズム１３０は、形状ベクトルデータ１３５のサブセットを変換することによって、レンダリングするのに必要な描画命令の数を低減させるように動作することができる。
【００１５】
図２は、データ可視化プラットフォームの最適化を提供するために、本発明の実施形態に係る方法２００に含まれる一般的な段階を説明するフローチャートである。方法２００は、以下で図３を参照してより詳細に説明されるように、コンピューティング装置３００を使用して実装することができる。方法２００の諸段階を実装する手法は、以下でより詳細に説明される。方法２００は開始ブロック２０５で始まり、段階２１０に進み、段階２１０において、コンピューティング装置３００が可視表現を定義することができる。例えば、アプリケーション１４０は、可視化プラットフォーム１０５に、視覚オブジェクトを作成することを求める要求を送信することができる。この要求には、データ値、データシリーズ、および／または折れ線グラフ、棒グラフ、円グラフ、もしくはグラフなどのオブジェクトタイプを含めることができる。可視化プラットフォーム１０５は、オブジェクトマネージャを使用して視覚オブジェクトのメモリ位置を定義することができる。
【００１６】
方法２００は、コンピューティング装置３００が可視表現を定義した段階２１０から段階２２０に進み、段階２２０において、コンピューティング装置３００は、可視表現に関連付けられた少なくとも１つの形状ベクトルを構成することができる。例えば、アプリケーション１４０は、１０００個のデータポイントを含むチャートの可視表現を定義することができ、各データポイントが、描画された８角形で表される。従来のシステムでは、可視化プラットフォーム１０５は、１０００個のデータポイントの各々に対して形状ベクトルを構成する。本発明の実施形態によると、レイアウトエンジン１１５は、データポイントスキップアルゴリズム１２０を使用して、１０００個のデータポイントのサブセットに対して形状ベクトルを構成することができる。これにより、ドラフトおよび／またはプレビュー品質の視覚オブジェクトの表示が可能になる。さらに本発明の実施形態によると、レイアウトエンジン１１５は、１０００個のデータポイント内のデータポイントが、アプリケーション１４０および／または出力装置１５０の特徴に基づいて区別できないほど相互に近接しているかどうかを決定するように動作することができる。例えば、１０００個のデータポイントのサブセットの３０個のデータポイントが全て重なり合っているか、５ピクセル内など、相互に予め定められたしきい値内にあるとき、データポイントスキップアルゴリズム１２０は、３０個のデータポイントの全ての構成をスキップするように動作することができ、そして３０個のデータポイントのうちの１つだけを構成することができる。
【００１７】
本発明の実施形態によると、アプリケーション１４０は、１００００個のデータポイントを含むカラムチャートを定義することができる。レイアウトエンジン１１５は、データをウォークスルーできるカラムシリーズクラス（column series class）を呼び出して、データポイントのボックスに対するベクトルを構成して、これらを形状ベクトルデータ１３５にすることができる。レイアウトエンジン１１５は、例えばアプリケーション１４０から、ピクセルでのチャートサイズを受信し、そのサイズのチャートにどれくらい多くのデータポイントを表示できるか決定することができる。例えば、３００ピクセルの幅のチャートが、重ならずに表示できるのは３００データポイントだけである。したがって、レイアウトエンジン１３５は、１００００個のデータポイントのうち３００ポイントのサブセットに対するベクトルデータを構成することができる。サブセットのサイズは、例えば、出力装置１５０の解像度に基づくものとすることができる。
【００１８】
また、サブセットのサイズは、例えば、あるデータポイントが他のデータポイントによって覆われる（cover）こととなるという、レイアウトエンジン１１５による決定に基づくものとすることもでき、この場合、レイアウトエンジン１１５は、覆われたデータポイントのベクトルデータの構成をスキップすることができる。本発明の実施形態によると、レイアウトエンジン１１５は、後のデータポイントが前のデータポイントと全く同じピクセルを占めると決定し、これにより、後のデータポイントをスキップできると決定することもある。本発明のさらなる実施形態によると、データポイントスキップアルゴリズム１２０は、構成可能な基準（configurable criterion）を使用して、後のポイントが、スキップするのに十分なほど前のデータポイントに近いかどうかを決定することができる。例えば、レイアウトエンジン１１５は、前のデータポイントの５ピクセル内のデータポイントをスキップするように基準を設定することができる。さらに、本発明の実施形態によると、形状ベクトルデータ１３５の構成によって消費されるメモリの量を制限するために、構成段階が進むにつれて基準を上げることができる。ユーザインターフェーススロットル制御のユーザ選択などを通じて、アプリケーション１４０から基準を受け取ることもある。
【００１９】
コンピューティング装置３００が、段階２２０において形状ベクトルを構成すると、方法２００は段階２３０に進み、段階２３０において、コンピューティング装置３００は、可視表現をレンダリングするよう求める要求を受信する。例えば、アプリケーション１４０が、ユーザコマンドに従って、可視表現のレンダリングを要求することができる。
【００２０】
コンピューティング装置３００が、段階２３０においてレンダリング要求を受信した後、方法２００は段階２４０に進み、段階２４０において、コンピューティング装置３００は、構成された形状ベクトルの反復処理を行い、それらを描画命令に変換することができる。例えば、可視化プラットフォーム１０５は、チャートオブジェクトのｘ軸の形状ベクトルを、線とするための描画命令に変換することができ、この描画命令は、線の開始点、線の終点、線の色、および／または線の幅など、関連するデータを備える。
【００２１】
本発明の実施形態によると、可視化プラットフォーム１０５は、少なくとも１つのサポートされた描画命令をアプリケーションから受信することができる。可視化プラットフォーム１０５は、構成された形状ベクトルをサポートされた描画命令に変換するように動作することができる。例えば、可視化プラットフォーム１０５は、８角形の形状ベクトルを、出力装置１５０に８角形をレンダリングするのに使用される１組の８つの線のそれぞれに対する開始点と終点を備える描画命令に線形化するように動作することができる。代わりに、あるいは加えて、アプリケーション１４０は、可視化プラットフォーム１０５が、８角形を線形化するのではなく、８角形の形状ベクトルをサポートされた描画命令に変換することができるように、８角形の中心点および幅を備えるサポートされた描画命令を、可視化プラットフォームに通知することもできる。したがって、アプリケーション１４０は、可視化プラットフォーム１０５が提供する必要がある、変換された描画命令の数を減少させることができる。
【００２２】
コンピューティング装置３００は、形状スキップアルゴリズム１３０を用いて、変換およびレンダリングする必要がある形状ベクトルの数を減少させることができる。例えば、可視表現が、データポイントに８角形を使用する１００ピクセル×２００ピクセルのチャートを備えるとき、各８角形は１０ピクセル×１０ピクセルまたはそれより小さい形であり、一部の線分（line segment）はゼロの長さを有することがある。形状スキップアルゴリズム１３０は、例えば、特定の形状ベクトルが、同じ開始点および終点を有する線の描画命令に変換されることなど、特定の形状ベクトルが、スキップするための基準に関連付けられていると決定することができる。このような例では、形状スキップアルゴリズム１３０は、特定の形状ベクトルを描画命令に変換してレンダリングのためにアプリケーション１４０に送信する代わりに、その特定の形状ベクトルをスキップすることができる。形状スキップアルゴリズム１３０は、ディスプレイサイズ、データタイプ、可視表現タイプ、データポイントの総数、および形状ベクトルの総数などの多くの他の基準に従って、形状ベクトルのうちの１つをスキップすることができる。
【００２３】
本発明の実施形態によると、アプリケーション１４０は、描画命令をバッチでフェッチすることができる。例えば、アプリケーション１４０は、描画命令のうちの５０の描画命令を受信するのに十分なメモリを割り当てることができる。次いで、可視化プラットフォーム１０５は、５０の描画命令を提供して、さらなる描画命令が待機しているかどうかをアプリケーション１４０に通知することができる。可視化プラットフォーム１０５は、アプリケーション１４０が後続のバッチを要求するのを待って、処理を繰り返す。
【００２４】
方法２００は段階２４０から段階２５０に進み、段階２５０において、コンピューティング装置３００は、可視表現を出力装置にレンダリングすることができる。例えば、アプリケーション１４０は、描画命令をレンダラ１４５において受信し、出力装置１５０を含む、画面上に可視表現を描画することができる。
【００２５】
コンピューティング装置３００が、段階２５０において可視表現をレンダリングすると、方法２００は段階２６０に進み、段階２６０において、コンピューティング装置３００は、表示内に変化が生じたかどうかを決定することができる。例えば、表示された可視表現が、移動され、ズームされ、サイズ変更され、および／または全体的もしくは部分的に隠されることがある。コンピューティング装置が、可視表現の表示に変化が生じたと決定すると、方法３００は段階２５０に戻り、コンピューティング装置３００は可視表現を再レンダリングすることができる。データポイントスキップは、形状ベクトルデータ１３５がキャッシュされるとき、段階２２０における構成の間に起こることがあるが、形状スキップは、段階２５０において可視表現がレンダリングされるたびに起こり得る。したがって、例えば、ウインドウが移動され、最小化され、最大化され、または拡大されるときなど、アプリケーション１４０が可視表現をレンダリングしなければならないたびに、アプリケーション１４０は、描画命令の新しいセットを形状イテレータ１２５から受信する。例えば、アプリケーション１４０が縮小すると、可視表現に表示できるピクセルはより少なくなり、形状スキップはより積極的に行われ、より多くの形状ベクトルがスキップされる。
【００２６】
本発明の実施形態に従って、データポイントスキップおよび形状スキップを、別個に、および／または一緒に使用することができ、そして、ユーザ公開される構成の選好を通じて制御することができる。例えば、チャートに対する極めて詳細な拡大を望むユーザは、最大量のデータを提供するためにデータポイントスキップを無効にし、拡大された状態では可視でないベクトルの変換を防ぐために形状スキップを有効にすることができる。
【００２７】
コンピューティング装置３００が、段階２６０において表示内に変化が生じたかどうかを決定し、必要に応じて可視表現を再レンダリングすると、方法２００は段階２７０において終了する。
【００２８】
本発明に係る一実施形態は、可視化プラットフォームの最適化を提供するためのシステムを備えることができる。このシステムは、記憶装置、および記憶装置に結合された処理装置を備えることができる。処理装置は、可視表現を定義し、複数の形状ベクトルを作成し、可視表現を表示する要求を受信し、複数の形状ベクトルの反復処理を行い、複数の形状ベクトルのうちの少なくとも１つを少なくとも１つの描画命令に変換し、可視表現を表示装置に表示するように動作することができる。
【００２９】
本発明に係る別の実施形態は、可視化プラットフォームの最適化を提供するためのシステムを備えることができる。このシステムは、記憶装置、および記憶装置に結合された処理装置を備えることができる。処理装置は、複数のデータ値に関連付けられる可視オブジェクトを作成し、複数のデータ値のうちの少なくとも１つの第１の値を可視オブジェクトに関連付けられた形状ベクトルに構成し、複数のデータ値のうちの少なくとも１つの第２の値の構成をスキップするように動作することができる。
【００３０】
本発明に係るさらに別の実施形態は、可視化プラットフォームの最適化を提供するためのシステムを備えることができる。このシステムは、記憶装置、および記憶装置に結合された処理装置を備えることができる。処理装置は、ユーザアプリケーションから可視オブジェクトを作成する要求を受信し、可視オブジェクトに関連付けられる複数の形状ベクトルを構成し、ユーザアプリケーションからレンダリング要求を受信し、複数の形状ベクトルのサブセットの各々を少なくとも１つの描画命令に変換し、複数の形状ベクトルのサブセットの各々に関連付けられた少なくとも１つの描画命令をユーザアプリケーションに送信して可視オブジェクトをレンダリングするように動作することができる。処理装置は、さらに、レンダリングされた可視オブジェクトに影響を与える変更の検出に応答してユーザアプリケーションから第２のレンダリング要求を受信し、複数の形状ベクトルのそれぞれの第２のサブセットを少なくとも１つの描画命令に変換し、複数の形状ベクトルの第２のサブセットの各々に関連付けられた少なくとも１つの描画命令をユーザアプリケーションに送信して、可視化オブジェクトを再レンダリングするように動作することができる。
【００３１】
図３は、コンピューティング装置３００を備えるシステムのブロック図である。本発明の実施形態に従って、上述の記憶装置および処理装置を、図３のコンピューティング装置３００などのコンピューティング装置に実装することができる。ハードウェア、ソフトウェア、またはファームウェアの任意の適切な組合せを使用して、記憶装置および処理装置を実装することができる。例えば、記憶装置および処理装置を、コンピューティング装置３００を用いて実装することができ、あるいはコンピューティング装置３００とともに他のコンピューティング装置３１８のいずれかを用いて実装することもできる。上述のシステム、装置、およびプロセッサは例示であり、本発明の諸実施形態に従って、他のシステム、装置、およびプロセッサが上述の記憶装置および処理装置を備えることができる。さらに、コンピューティング装置３００は、上述のようにシステム１００のためのオペレーティング環境を備えることができる。システム１００は、他の環境において動作してもよく、コンピューティング装置３００には限定されない。
【００３２】
図３を参照すると、本発明の実施形態に係るシステムは、コンピューティング装置３００などのコンピューティング装置を含むことができる。基本的な構成では、コンピューティング装置３００は、少なくとも１つの処理装置３０２およびシステムメモリ３０４を含むことができる。コンピューティング装置の構成およびタイプに応じて、システムメモリ３０４は、揮発性メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））、不揮発性メモリ（例えば、読み取り専用メモリ（ＲＯＭ））、フラッシュメモリ、または任意の組合せを含むことができるが、これらには限定されない。システムメモリ３０４は、オペレーティングシステム３０５、１つまたは複数のプログラミングモジュール３０６を含むことができ、そして可視化プラットフォーム１１０を含むことができる。オペレーティングシステム３０５は、例えば、コンピューティング装置３００の動作を制御するのに適したものとすることができる。一実施形態において、プログラミングモジュール３０６はユーザアプリケーション１４０を含むことができる。さらに、本発明の実施形態を、グラフィックライブラリ、他のオペレーティングシステム、または任意の他のアプリケーションプログラムとともに実施することができ、いずれかの特定のアプリケーションまたはシステムには限定されない。この基本的な構成は、図３において、点線３０８内のコンポーネントによって図示されている。
【００３３】
コンピューティング装置３００は、追加の特徴または機能を有することができる。例えば、コンピューティング装置３００は、例えば、磁気ディスク、光ディスク、またはテープなどの追加のデータ記憶装置（取り外し可能および／または取り外し不可能）を含むこともできる。このような追加の記憶装置は、図３では、取り外し可能記憶装置３０９および取り外し不可能記憶装置３１０によって図示されている。コンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するために任意の方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可能な媒体を含むことができる。システムメモリ３０４、取り外し可能記憶装置３０９、および取り外し不可能記憶装置３１０は、全てコンピュータ記憶媒体（すなわち、記憶装置）の例である。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または情報を格納するのに使用可能であってコンピューティング装置３００によってアクセス可能な任意の他の媒体が含まれるが、これには限定されない。このような任意のコンピュータ記憶装置は、装置３００の一部とすることができる。コンピューティング装置３００は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置３１２を有することもできる。ディスプレイ、スピーカ、プリンタなどの出力装置３１４を含むこともできる。上述の装置は例示であり、他のものも使用することができる。
【００３４】
コンピューティング装置３００は、該装置３００が、例えばイントラネットまたはインターネットなど、分散コンピューティング環境においてネットワークを介して他のコンピューティング装置３１８と通信できるようにする通信接続３１６も含むことができる。通信接続３１６は通信媒体の一例である。通信媒体は、典型的に、コンピュータ読取可能命令、データ構造、プログラムモジュール、または搬送波もしくは他の移送機構などの変調されたデータ信号内の他のデータによって具現化され、任意の情報伝達媒体を含む。「変調されたデータ信号」という用語は、１つまたは複数の特徴のセットを有するか、または信号内の情報を符号化するように変更された信号を示すことができる。限定ではなく例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、および音響、無線周波数（ＲＦ）、赤外線、および他の無線媒体などの無線媒体を含むことができる。本明細書で使用されるコンピュータ読取可能媒体という用語は、記憶媒体と通信媒体の双方を含み得る。
【００３５】
上述のように、複数のプログラムモジュールおよびデータファイルを、オペレーティングシステム３０５を含むシステムメモリ３０４に格納することができる。処理装置３０２において実行する間、プログラミングモジュール３０６（例えば、ユーザアプリケーション１４０）は、例えば上述のような方法２００の１つまたは複数の段階を含む処理を実行することができる。上述の処理は例示であり、処理装置３０２は他の処理を実行することもできる。本発明の実施形態に従って使用され得る他のプログラミングモジュールには、電子メールおよび連絡先アプリケーション、文書処理アプリケーション、表計算アプリケーション、データベースアプリケーション、スライドプレゼンテーションアプリケーション、描画またはコンピュータ支援アプリケーションプログラムなどが含まれる。
【００３６】
一般的に、本発明の実施形態によると、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データタイプを実装することができるルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造を含むことができる。さらに、本発明の実施形態は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含め、他のコンピュータシステム構成を用いて実施することができる。本発明の実施形態を、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される、分散コンピューティング環境において実施することもできる。分散コンピューティング環境では、ローカルなメモリ記憶装置およびリモートのメモリ記憶装置の双方にプログラムモジュールを配置することができる。
【００３７】
さらに、本発明の実施形態を、個別の電子的要素を含む電気回路、論理ゲートを含むパッケージ型もしくは統合型電子チップ、マイクロプロセッサを用いた回路、または電子的要素もしくはマイクロプロセッサを含む単一のチップにおいて実施することができる。本発明の実施形態を、例えば、これに限定されないが、機械技術、光技術、流体技術、および量子技術を含む、ＡＮＤ、ＯＲ、およびＮＯＴなどの論理演算を実行することができる他の技術を使用して実施することもできる。さらに、本発明の実施形態を、汎用コンピュータ内において、または任意の他の回路もしくはシステムにおいて実施することができる。
【００３８】
本発明の実施形態を、例えば、コンピュータ処理（方法）、コンピューティングシステムとして、またはコンピュータプログラム製品もしくはコンピュータ読取可能媒体などの製品として実装することができる。コンピュータプログラム製品は、コンピュータシステムによって読み取ることができ、コンピュータ処理を実行するための命令のコンピュータプログラムを符号化するコンピュータ記憶媒体とすることができる。コンピュータプログラム製品は、コンピューティングシステムによって読み取ることができ、コンピュータ処理を実行するために命令のコンピュータプログラムを符号化する搬送波の伝搬信号とすることもできる。したがって、本発明は、ハードウェアおよび／またはソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）により具現化することができる。言い換えれば、本発明の実施形態は、命令実行システムによる使用のため、または命令実行システムと関連して使用するために媒体内に具現化されたコンピュータ使用可能またはコンピュータ読取可能プログラムコードを有する、コンピュータ使用可能またはコンピュータ読取可能記憶媒体に対するコンピュータプログラム製品の形式とすることができる。コンピュータ使用可能またはコンピュータ読取可能媒体は、命令実行システム、機器、もしくは装置による使用のため、またはこれらと関連して使用するためのプログラムを含み、格納し、通信し、伝搬し、または伝送することができる任意の媒体とすることができる。
【００３９】
コンピュータ使用可能またはコンピュータ読取可能媒体は、例えば、電子、磁気、光、電磁気、赤外線、または半導体のシステム、機器、装置、または伝搬媒体とすることができるが、これらには限定されない。より詳細なコンピュータ読取可能媒体の例（非限定的なリスト）には、コンピュータ読取可能媒体は、１つまたは複数の有線を有する電気接続、ポータブルコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読出し専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、光ファイバ、およびＣＤ−ＲＯＭが含まれ得る。コンピュータ使用可能またはコンピュータ読取可能媒体は、プログラムを、例えば紙または他の媒体の光スキャンを介して電子的にキャプチャして、次いでコンパイルし、変換し、必要に応じて適切に処理し、そしてコンピュータメモリに格納することができるように、プログラムを印刷できる紙または他の適切な媒体とすることもできることに留意されたい。
【００４０】
本発明の実施形態を、例えば、本発明の実施形態に係る方法、システム、およびコンピュータプログラム製品のブロック図および／またはオペレーション図を参照して上述した。ブロック内に示される機能／動作は、いずれかのフローチャートに示したものとは異なる順序で起こることもある。例えば、関連する機能／動作に応じて、連続して示される２つのブロックが実際にはほぼ同時に実行されることもあり、あるいはブロックが逆の順序で実行されることもある。
【００４１】
本発明の特定の実施形態を説明してきたが、他の実施形態も存在し得る。さらに、本発明の実施形態を、メモリまたは他の記憶媒体に格納されたデータに関連付けられるように説明したが、データを、ハードディスク、フロッピー（登録商標）ディスク、もしくはＣＤ−ＲＯＭ、インターネットからの搬送波、または他の形式のＲＡＭまたはＲＯＭなどの２次記憶装置のような、他のタイプのコンピュータ読取可能媒体に格納し、そこから読み出すこともできる。さらに、開示された方法の諸段階は、本発明から逸脱することなく、段階の順序変更、および／または段階の挿入もしくは削除を含め、任意の方法で修正することができる。
【００４２】
本明細書に含まれるコード内の著作権を含む全ての権利は、本件出願人の権利に帰属する。本件出願人は本明細書に含まれるコード内の全ての権利を保持および保有し、与えられた特許の複製に関連する目的以外の資料の複製を許可しない。
【００４３】
本明細書は例示を含むが、本発明の範囲は添付の特許請求の範囲によって示される。さらに、本明細書では構造的特徴および／または方法論的動作に特有の言語で記述してきたが、特許請求の範囲は上述の特徴または動作には限定されない。むしろ、上述の特定の特徴および動作は、本発明の実施形態の例として開示されている。
【図１】
0005508521.tif 000002
【図２】
0005508521.tif 000003
【図３】
0005508521.tif 000004