(57)【要約】  キー値データベースに空間データを保存するためにシステム及び方法が提供される。キー値データベースは、キー・データに関連して値データを保存し、及びキー・データに基づいて値データの取り出しを許容するように構成される。空間データは、それぞれ保存される値データがクラスタを表現するように保存され、クラスタは、空間データをブロックに区分けし、ブロックをクラスタにグループ化することにより生成される。それぞれ保存される値データのキー・データ(即ち、「キー・ネーム」)は、個々のクラスタの座標に基づく識別子を少なくとも含み、座標は空間データに関連付けられる座標系について決定される。これは、クラスタの座標に基づく識別子(の一部)を算出することにより、特定のクラスタの値データ(の一部)を取り出すことを許容する。従って、インデキシング情報を有するヘッダの必要性はなくなる。その保存は、例えばデータベースがクラウド・ベースのストレージ・システムで構成され、システムがクラウド・ベース・ストレージ・システムに接続されるクライアントにおいて構成される、或いは本方法がそれにより実行される場合など、遠隔的にアクセスされるデータベースに適している。（選択図）図２
2019531543.tif 000002
【特許請求の範囲】
【請求項１】
データベースに空間データを保存するように構成されるシステムであって：
前記データベースにアクセスするように構成されるデータベース・インターフェースであって、前記データベースは、キー・データに関連して値データを保存し、及び前記キー・データに基づいて前記値データの取り出しを許容するように構成されるキー値データベースである、データベース・インターフェース；
一群の命令を表現する命令データを有するメモリ；
前記データベース・インターフェース及び前記メモリと通信し、前記一群の命令を実行するように構成されるプロセッサ；
を有し、前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに：
前記空間データをブロックに区分けすること；
前記ブロックをクラスタにグループ化すること；及び
前記プロセッサに処理を行わせることにより前記データベースに各クラスタを保存すること；
を行わせ、前記処理は：
個々のクラスタを値データとして前記データベースに保存すること；
前記個々のクラスタの座標に基づいて前記クラスタの識別子を生成することであって、前記座標は画像データに関連付けられる座標系について決定される、こと；
前記クラスタの前記値データについて、前記クラスタの前記識別子を少なくとも有するキー・データを生成すること；及び
前記値データに関連して前記キー・データを前記データベースに保存することである、システム。
【請求項２】
前記一群の命令は、前記プロセッサにより実行されると：
各ブロックの個々の位置、又は前記値データにおける前記クラスタの一群のブロックについての少なくとも或るサブセットの個々の位置を表現するデータ・オフセット
を前記キー・データに更に含めることを行わせる、請求項1に記載のシステム。
【請求項３】
前記空間データに関連付けられる前記座標系は：
クラスタの空間座標を表す空間軸；
クラスタに含まれる前記空間データにより表現されるカラー成分を表すカラー軸；及び
クラスタに含まれる前記空間データにより表現される、波長又は波長レンジを示す波長軸
のうち少なくとも何れかを有する、請求項1又は2に記載のシステム。
【請求項４】
前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに：
空間充填曲線関数を利用して前記座標をエンコードすることにより、前記クラスタの前記識別子を生成すること
を行わせ、前記空間充填曲線関数は前記メモリにおける第1関数データにより表現される、請求項1又は2に記載のシステム。
【請求項５】
前記空間充填曲線関数はZオーダリング関数である、請求項4に記載のシステム。
【請求項６】
前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに：
前記空間データのウェーブレット変換の係数パーティションに基づいて、前記空間データを前記ブロックに区分けすること
を行わせる、請求項1-5のうち何れか一項に記載のシステム。
【請求項７】
前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに：
前記空間データのウェーブレット変換の冗長ロー・パス係数ブロックを各クラスタに含めること
を行わせる、請求項6に記載のシステム。
【請求項８】
前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに：
個々のクラスタを値データとして前記データベースに保存する前に、重要性オーダリング関数を利用して前記クラスタの各ブロックの前記データを順序付けること
を実行させ、前記重要性オーダリング関数は前記メモリにおける第2関数データにより表現される、請求項1-7のうち何れか一項に記載のシステム。
【請求項９】
前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに：
前記空間データのヘッダを値データとして前記データベースに保存すること；及び
選択的に、前記データベースに前記クラスタを保存する前に前記ヘッダを保存すること
を行わせる請求項1-8のうち何れか一項に記載のシステム。
【請求項１０】
データベースから空間データを取り出すように構成されるシステムであって：
前記データベースにアクセスするように構成されるデータベース・インターフェースであって、前記データベースは、キー・データに関連して値データを保存し、及び前記キー・データに基づいて前記値データの取り出しを許容するように構成されるキー値データベースであり、前記データベースは：
前記空間データをブロックに区分けし、前記ブロックをクラスタにグループ化することにより生成される個々のクラスタをそれぞれが表現する保存された値データ；
前記個々のクラスタの識別子を少なくとも有する各々の保存された値データについて保存されたキー・データであって、前記クラスタの前記識別子は前記個々のクラスタの座標に基づいて生成され、前記座標は前記空間データに関連する座標系について決定されている、保存されたキー・データ；
を有する、データベース・インターフェース；
一群の命令を表現する命令データを有するメモリ；
前記データベース・インターフェース及び前記メモリと通信し、前記一群の命令を実行するように構成されるプロセッサ；
を有し、前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに、前記空間データのクラスタの1つ以上のブロックを前記データベースから取り出すことを、プロセッサに処理を行わせることにより行わせ、前記処理は：
前記空間データに関連する前記座標系における前記クラスタの座標に基づいて、前記クラスタの少なくとも一部の識別子を生成すること；
前記少なくとも一部の識別子を有するキー・データについて前記データベースに問い合わせ、それにより1つ以上のキー・データを取得すること；
前記1つ以上のキー・データのうちのキー・データを選択すること；及び
前記キー・データに関連して前記データベースに保存されている少なくとも一部の値データを前記データベースから取り出すことである、システム。
【請求項１１】
請求項1-10のうち何れか一項に記載のシステムを有するワークステーション又はイメージング装置。
【請求項１２】
データベースに空間データを保存する方法であって、前記データベースは、キー・データに関連して値データを保存し、及び前記キー・データに基づいて前記値データの取り出しを許容するように構成されるキー値データベースであり、前記方法は：
前記空間データをブロックに区分けするステップ；
前記ブロックをクラスタにグループ化するステップ；及び
前記データベースに各クラスタを保存するステップ；
を有し、前記保存するステップは：
個々のクラスタを値データとして前記データベースに保存するステップ；
前記個々のクラスタの座標に基づいて前記クラスタの識別子を生成するステップであって、前記座標は前記空間データに関連付けられる座標系について決定される、ステップ；
前記クラスタの前記値データについて、前記クラスタの前記識別子を少なくとも有するキー・データを生成するステップ；及び
前記値データに関連して前記キー・データを前記データベースに保存するステップ；
により行われる、方法。
【請求項１３】
データベースから空間データを取り出す方法であって、前記データベースは、キー・データに関連して値データを保存し、及び前記キー・データに基づいて前記値データの取り出しを許容するように構成されるキー値データベースであり、前記データベースは：
前記空間データをブロックに区分けし、前記ブロックをクラスタにグループ化することにより生成される個々のクラスタをそれぞれが表現する保存された値データ；
前記個々のクラスタの識別子を少なくとも有する各々の保存された値データについて保存されたキー・データであって、前記クラスタの前記識別子は前記個々のクラスタの座標に基づいて生成され、前記座標は前記空間データに関連する座標系について決定されている、保存されたキー・データ；
を有し、前記方法は、前記空間データのクラスタの1つ以上のブロックを前記データベースから取り出すステップを有し、前記取り出すステップは：
前記空間データに関連する前記座標系における前記クラスタの座標に基づいて、前記クラスタの少なくとも一部の識別子を生成するステップ；
前記少なくとも一部の識別子を有するキー・データについて前記データベースに問い合わせ、それにより1つ以上のキー・データを取得すること；
前記1つ以上のキー・データのうちのキー・データを選択すること；及び
前記キー・データに関連して前記データベースに保存されている少なくとも一部の値データを前記データベースから取り出すステップ；
により行われる、方法。
【請求項１４】
プロセッサ・システムに請求項12又は13に記載の方法を実行させるように構成される命令を表現する一時的又は非一時的なデータを有するコンピュータ読み取り可能な媒体。
【請求項１５】
データベースを表現する一時的又は非一時的なデータを有するコンピュータ読み取り可能な媒体であって、前記データベースは、キー・データに関連して値データを保存し、及び前記キー・データに基づいて前記値データの取り出しを許容するように構成されるキー値データベースであり、前記データベースは：
空間データをブロックに区分けし、前記ブロックをクラスタにグループ化することにより生成される個々のクラスタをそれぞれが表現する保存された値データ；
前記個々のクラスタの識別子を少なくとも有する各々の保存された値データについて保存されたキー・データであって、前記クラスタの前記識別子は前記個々のクラスタの座標に基づいて生成され、前記座標は前記空間データに関連する座標系について決定されている、保存されたキー・データ；
を有する、コンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータベースに空間データを保存するシステム及び方法に関連する。本発明はデータベースから空間データを取り出すシステム及び方法に更に関連する。本発明は更に双方又は一方のシステムを有するワークステーション又はイメージング装置、プロセッサ・システムに双方又は一方の方法を実行させる命令を有するコンピュータ読み取り可能な媒体、及びデータベースに関連する。
【背景技術】
【０００２】
ディジタル画像は近年サイズが増大しており、例えば空間解像度、ビット深度及び/又はイメージング・センサーのダイナミック・レンジの増加に起因して、より多くのスライスをスキャンする医療分野におけるイメージング装置等に起因して、サイズは増大し続けるであろう。具体的な更なる非限定的な例は、ディジタル・パソロジ・スキャナ(digital  pathology  scanners)からのディジタル・スライド画像がギガバイト・レンジのサイズを有し得ることである。様々な他の例も存在する。従ってそのような画像を保存する保存要求が増大している。これら及び他の理由から、保存要求に対処することが可能なデータベースに画像を保存することが望ましい。典型的には、そのようなデータベースは、分散されたスケーラブルなストレージ・システムによりホストされる。そのようなストレージ・システムは、必須ではないが、クラウド・ベースのストレージ・システムであってもよく、アマゾンS3、グーグル・クラウド・ストレージ・アンド・オープンスタックSWIFTを含むがこれらに限定されず、これらはファイルその他のタイプのデータ構造のようなオブジェクトの保存及び取り出しを許容する。
【０００３】
画像データとは別に、かなり大きな空間データの他の形式が存在し得る。ここで、「空間データ」という用語は、少なくとも2つの空間次元を有する多次元データを指す。以下の例では画像のうちの画像データであるそのような空間データを、例えば1つのファイルのような単独のオブジェクトの形式でデータベースに保存することが知られている。
【０００４】
例えば、US8,582,849B2は、コンピュータ・システムにおける単独の画像ファイルに含まれる仮想スライドを説明している。単独ファイルのファイル・フォーマットは、ファイル情報を含むと考えられるヘッダと、ベースライン画像に対するリファレンスとを有し、リファレンスは、ライン・スキャナ・デバイスから受信されるようなネイティブ解像度で仮想スライド画像を含む。ベースライン画像は、ランダム・アクセスを促すようにブロックのシーケンスとして組織化される。個々のブロックは、例えばJPEG2000標準規格に従って圧縮されてもよい。
【０００５】
本発明者等は、非常に大きな空間データの場合、例えばファイル内の位置に対するブロック識別子の照合を可能にするインデックス情報を含むヘッダも、非常に大きくなり得ることを考察している。例えば、何ギガバイトもの空間データの場合、ヘッダは何百メガバイトものサイズになり得る。ヘッダはアクセスされ分析される必要があるので、これは例えば帯域幅に関してかなりのオーバーヘッドを意味し、大きなオーバーヘッドは、インターネットに対して帯域幅の制約を受けるネットワークのような帯域幅制限ネットワークでデータベースがアクセスされる場合に、特に欠点となってしまう。
【０００６】
US6,021,406は、データベースにマップ・データを保存する方法、及び所与のエリアでオブジェクトを発見し、ロケーションに最も近いオブジェクトを発見するためにデータベースを探す方法を開示する。マップ・データを生成するために、マップ平面は多数の正方形に分割され、それらの正方形は空間充填曲線に従って空間キー・ナンバーとともに番号付けられる。レストランやホテルのような場所を識別するオブジェクトは、オブジェクトにより占められるマップのエリアと交わる何れかの空間キー(オブジェクト・キー)とともに、データベースのメイン・テーブルに配置される。次に、データベースのセカンダリ・テーブルが作成され、あるカラムはメイン・テーブルに対応するオブジェクト・キーを含み、別のカラムはオブジェクト・キーにより識別されるオブジェクトに対する空間キーのレンジを識別する。所与のエリアでオブジェクトを発見するためにデータベースをサーチする際に、空間キーのレンジが、所与のエリアに対して算出され、セカンダリ・テーブル内のレンジと比較され、オブジェクト・キーを識別する。そして識別されるオブジェクト・キーはメイン・テーブルから所望のオブジェクトを取得するために使用される。
【０００７】
US6,633,688は、スピード、効率及び望ましい機能とともにユーザーに画像を提供するクライアント/サーバー・システムを開示する。クライアントは、画像におけるビュー(view)を生成するために必要な画像データを決定する手段の割り振りを受ける。クライアントはそのような必要な画像データのリクエストをサーバーへ発行し、サーバーはリクエストに応対し、要求された画像データをクライアントへ送付し、クライアントはビューを生成する。まだ提供されていない何れの画像データが必要とされているかをクライアントが決定できるようにし、そのデータのみの提供を要求することにより、システムは、パニングやズーミングのようなユーザー・アクションから生じるビューの変化に迅速に応答する。クライアントは、以前に要求されたが提供されず最早必要とされないデータのサービスをキャンセルするリクエストを発行するも可能である。
【発明の概要】
【０００８】
空間データの一部分がより少ないオーバーヘッドで取り出されることを許容する、データベースに空間データを保存するシステム及び方法を得ることは有利なことであろう。
【０００９】
本発明の以下の側面は、キー値データベースに空間データを保存することを含み、キー値データベースは、キー・データに関連して値データを保存し、及びキー・データに基づいて値データの取り出しを許容するように構成される。空間データは、保存されたデータ値がクラスタを表現するように保存され、クラスタは、空間データをブロックに区分けし、ブロックをクラスタにグループ化することにより生成される。各々保存される値データのキー・データは、空間データに関連付けられる座標系について決定される、個々のクラスタの座標に基づく識別子を少なくとも含む。これは、クラスタの座標に基づく識別子を算出することにより、特定のクラスタの値データ(の一部)を取り出すことを許容する。従って、インデキシング情報を有するヘッダの必要性はなくなる。
【００１０】
本発明の第1側面は、データベースに空間データを保存するように構成されるシステムを提供し、本システムは：
データベースにアクセスするように構成されるデータベース・インターフェースであって、データベースは、キー・データに関連して値データを保存し、及びキー・データに基づいて値データの取り出しを許容するように構成されるキー値データベースである、データベース・インターフェース；
一群の命令を表現する命令データを有するメモリ；
データベース・インターフェース及びメモリと通信し、一群の命令を実行するように構成されるプロセッサ；
を有し、一群の命令は、プロセッサにより実行されると、プロセッサに：
空間データをブロックに区分けすること；
ブロックをクラスタにグループ化すること；及び
プロセッサに処理を行わせることによりデータベースに各クラスタを保存すること；
を行わせ、その処理は：
個々のクラスタを値データとしてデータベースに保存すること；
個々のクラスタの座標に基づいてクラスタの識別子を生成することであって、座標は空間データに関連付けられる座標系について決定される、こと；
クラスタの値データについて、クラスタの識別子を少なくとも有するキー・データを生成すること；及び
値データに関連してキー・データをデータベースに保存することである。
【００１１】
本発明の別の側面は、データベースから空間データを取り出すように構成されるシステムを提供し、本システムは：
データベースにアクセスするように構成されるデータベース・インターフェースであって、データベースは、キー・データに関連して値データを保存し、及びキー・データに基づいて値データの取り出しを許容するように構成されるキー値データベースであり、データベースは：
空間データをブロックに区分けし、ブロックをクラスタにグループ化することにより生成される個々のクラスタをそれぞれが表現する保存された値データ；
個々のクラスタの識別子を少なくとも有する各々の保存された値データについて保存されたキー・データであって、クラスタの識別子は個々のクラスタの座標に基づいて生成され、座標は空間データに関連する座標系について決定されている、保存されたキー・データ；
を有する、データベース・インターフェース；
一群の命令を表現する命令データを有するメモリ；
データベース・インターフェース及びメモリと通信し、一群の命令を実行するように構成されるプロセッサ；
を有し、一群の命令は、プロセッサにより実行されると、プロセッサに、空間データのクラスタの1つ以上のブロックをデータベースから取り出すことを、プロセッサに処理を行わせることにより行わせ、その処理は：
空間データに関連する座標系におけるクラスタの座標に基づいて、クラスタの少なくとも一部の識別子を生成すること；
少なくとも一部の識別子を有するキー・データについてデータベースに問い合わせ、それにより1つ以上のキー・データを取得すること；
1つ以上のキー・データのうちのキー・データを選択すること；及び
キー・データに関連してデータベースに保存されている少なくとも一部の値データをデータベースから取り出すことである。
【００１２】
本発明の別の側面は、双方又は一方のシステムを有するワークステーション又はイメージング装置を提供する。
【００１３】
本発明の別の側面は、データベースに空間データを保存する方法を提供し、データベースは、キー・データに関連して値データを保存し、及びキー・データに基づいて値データの取り出しを許容するように構成されるキー値データベースであり、本方法は：
空間データをブロックに区分けするステップ；
ブロックをクラスタにグループ化するステップ；及び
データベースに各クラスタを保存するステップ；
を有し、保存するステップは：
個々のクラスタを値データとしてデータベースに保存するステップ；
個々のクラスタの座標に基づいてクラスタの識別子を生成するステップであって、座標は空間データに関連付けられる座標系について決定される、ステップ；
クラスタの値データについて、クラスタの識別子を少なくとも有するキー・データを生成するステップ；及び
値データに関連してキー・データをデータベースに保存するステップにより行われる。
【００１４】
本発明の別の側面は、データベースから空間データを取り出す方法を提供し、データベースは、キー・データに関連して値データを保存し、及びキー・データに基づいて値データの取り出しを許容するように構成されるキー値データベースであり、データベースは：
空間データをブロックに区分けし、ブロックをクラスタにグループ化することにより生成される個々のクラスタをそれぞれが表現する保存された値データ；
個々のクラスタの識別子を少なくとも有する各々の保存された値データについて保存されたキー・データであって、クラスタの識別子は個々のクラスタの座標に基づいて生成され、座標は空間データに関連する座標系について決定されている、保存されたキー・データ；
を有し、本方法は空間データのクラスタの1つ以上のブロックをデータベースから取り出すステップを有し、取り出すステップは：
空間データに関連する座標系におけるクラスタの座標に基づいて、クラスタの少なくとも一部の識別子を生成するステップ；
少なくとも一部の識別子を有するキー・データについてデータベースに問い合わせ、それにより1つ以上のキー・データを取得すること；
1つ以上のキー・データのうちのキー・データを選択すること；及び
キー・データに関連してデータベースに保存されている少なくとも一部の値データをデータベースから取り出すステップにより行われる。
【００１５】
本発明の別の側面は、プロセッサ・システムに双方又は一方の方法を実行させるように構成される命令を表現する一時的又は非一時的なデータを有するコンピュータ読み取り可能な媒体を提供する。
【００１６】
本発明の別の側面は、データベースを表現する一時的又は非一時的なデータを有するコンピュータ読み取り可能な媒体を提供し、データベースは、キー・データに関連して値データを保存し、及びキー・データに基づいて値データの取り出しを許容するように構成されるキー値データベースであり、データベースは：
空間データをブロックに区分けし、ブロックをクラスタにグループ化することにより生成される個々のクラスタをそれぞれが表現する保存された値データ；
個々のクラスタの識別子を少なくとも有する各々の保存された値データについて保存されたキー・データであって、クラスタの識別子は個々のクラスタの座標に基づいて生成され、座標は空間データに関連する座標系について決定されている、保存されたキー・データを有する。
【００１７】
上記の手段は、値データの形式で、キーに関連して、キー・データの形式で値を保存するように構成される所謂キー値データベース(a  so-termed  key-value  database)をデータベースとして提供することを含む。これは値がキーに基づいて取り出されることを許容する。そのようなキー値データベースはデータベースの分野でそれ自体知られていることに留意を要する。
【００１８】
データベースに空間データを保存するために、空間データはブロックに区分けされ、各々のブロックは空間データのうちの異なる部分を含む。ここで、「ブロック」という用語は空間データの多数の要素を指し、例えば空間データの非限定的な例において、画像データ、ピクセル又はボクセル又はウェーブレット係数であり、これらはシステムにより一単位として取り扱われる。例えば、ブロックは、画像からのボクセルのうちのピクセルの領域又はタイルにより構成されてもよい。そのような領域は、四角の形状を有することは必須ではなく、他の形状が同様に可能であることが認められるであろう。更に、ブロックは重複しないものだけでなく相互にオーバーラップするものであってもよい。
【００１９】
空間データをブロックに区分けすると、ブロックはクラスタにグループ化される。従って、各クラスタは異なるブロック群を有してもよい。そして、クラスタは「キー値」オブジェクトとしてデータベースに保存され、クラスタのデータはデータベースに値データとして保存され、対応するキーはキー・データとして生成及び保存される。例えば1つの「キー値」保存動作の間に、たとえ別個の動作として説明される場合であったとしても、キー・データ及び値データの双方は典型的にはデータベースに同時に保存されることに留意を要する。
【００２０】
キーは識別子に基づいて生成され、即ち各自のクラスタの座標のエンコードをリスト化又は表現し得る座標に基づく識別子(a  coordinate-based  identifier)であり、座標は空間データに関連付けられる座標系について決定される。追加的又は代替的に、識別子は、座標を囲む区間の符号化をリスト化又は表現するように表現されてもよい。一般に、キーが文字列により表現されるケースでは、文字列は識別子を含み得る。一般に、例えばキー・データであるキーの中身は、以下において、「キー・ネーム(key  name)」のように簡単に言及されてもよく、例えば数字又はアルファベットのキャラクタのようなシンボルのリニア・シーケンスのような文字列により表現可能であるキー、又は同様なフォーマットを有するキーを指す。従ってクラスタは、空間データの座標系におけるクラスタの座標、又は座標を囲む区間をリスト化又は表現するキー・ネーム下で保存されてもよい。
【００２１】
上記の手段は、ブロックのクラスタがキー・ネームに基づいてアクセスされ得るような方法で空間データがデータベースに保存されるような効果を有し、キー・ネームは少なくとも部分的にクラスタの座標から算出されてもよい。従って、どのブロックが取り出されるべきかが分かっており、ブロックを含むクラスタの座標が空間データの座標系で分かってる場合、座標識別子は、直接的に算出され、従ってキー・ネームの少なくとも一部であってもよい。以後データベースは座標識別子について問い合わせを受けるかもしれない。座標識別子がクラスタの正確な座標を表現する場合、問い合わせは例えば1つのキー・ネームのような唯1つの結果を返し、その結果の値データが以後に取り出され得る。そのような問い合わせは、キー・ネームの他の部分が未知であるかもしれないので、例えばキー・ネームが値データの中でブロックのデータ・オフセットを有する場合、更に行われる必要があることが認められるであろう。更に、クラスタの座標が近似的にしか分かっていない場合、例えば正確な座標ではなく空間レンジが分かっている場合、データベースは、例えばその空間レンジを表現する識別子の部分を提供することにより、その空間レンジ内に位置するキーについて問い合わせを受け、(典型的には限られている)多数のキーが、問い合わせによって返され得る。従ってインデックス情報を有するヘッダの必要性は無い。有利なことに、空間データがかなり大きな場合にかなり大きくなり得るそのようなインデックス情報を取り出すことは必要とされないようになり得る。従って、一部の空間データが僅かなオーバーヘッドとともに取り出され得る。これは、システムが、帯域幅の制限されたアクセス・ネットワークを介して、例えばインターネットに対するアクセス・ネットワークを介して、データベースに接続される場合に、特に有利であり得る。非限定的な具体例は、データベースがクラウド・ベースのストレージ・システム上で構成される一方、システムはクラウド・ベース・ストレージ・システムに接続されるクライアント内で構成され得る、或いは方法がそれにより実行され得る場合である。
【００２２】
選択的に、一群の命令は、プロセッサにより実行されると、キー・データにデータ・オフセットを更に含めることをプロセッサに行わせ、データ・オフセットは、各ブロックの個々の位置、又は値データにおけるクラスタの一群のブロックについての少なくとも或るサブセットの個々の位置を表現する。値データにおける各ブロックのデータ・オフセットを知ることによって、クラスタのブロックは個別的に取り出されてもよく、それによりクラスタのブロックに対する少なくとも或る程度のランダム・アクセスを可能にする。キー・ネームにデータ・オフセットを含めることにより、これらのデータ・オフセットを知るために、キー・ネームに対するアクセスを取得することが十分であり得る。キー・ネームに対するそのようなアクセスは、その近似的な座標に基づいて、例えば座標に基づく識別子に基づいてキーを探すことにより取得され得る。例えばキー・ネームに基づいてキーを探すことを可能にするキー値データベースそれ自体は既知である。従って、キー・ネーム、又は一般的にはキー・データは、サーチ結果として返されてもよく、以後、キー・ネームの下で保存される値データのブロックにランダム・アクセスするために使用されてもよい。
【００２３】
選択的に、空間データに関連付けられる座標系は、以下のうちの少なくとも何れかを有する：
各クラスタの空間座標を表す空間軸；
クラスタに含まれる空間データにより表現されるカラー成分を表すカラー軸；及び
クラスタに含まれる空間データにより表現される、波長又は波長レンジを示す波長軸。
【００２４】
空間データに関連する1つ以上の座標系が存在してもよい。典型的な具体例は、幅、高さ、深度等のような複数の次元を有する空間座標系であり、従って対応する空間軸を有する。別の具体例は、空間データが色成分を有してもよいことであり、例えば、空間データが画像データである場合である。この例では、カラー成分が軸上の座標として考えられてもよく、例えばレッドの場合に「1」、グリーンの場合に「2」、ブルーの場合に「3」等のような座標を有する。空間データの他の様々な側面が座標系により表現されてよい。座標系の組み合わせは再び座標系を結成し、例えば、空間及びカラー成分の軸を有する。任意のこれらの座標系はクラスタの識別子を計算するための基礎として使用されてもよい。従って、ブロックは個々の座標系に基づいて取り出され得る。
【００２５】
選択的に、一群の命令は、プロセッサにより実行されると、空間充填曲線関数(a  space-filling  curve  function)を利用して座標をエンコードすることにより、クラスタの識別子を生成することをプロセッサに行わせ、空間充填曲線関数はメモリにおける第1関数データにより表現される。従って、第1関数データは、機能を実行するためのプロセッサに対する命令を有してもよい。空間充填曲線関数を利用することにより、座標は、構造化された方法で識別子にエンコードされ得る。ここで、「エンコード(encoding)」という用語は、情報を符号に変換する一般的な概念を指し、座標に対する特定のデータ・フォーマットを利用することを含んでよい。特に、キー・ネームが、エンコードされた座標を始めに有す場合、キー・ネームの最初のキャラクタは、保存されているクラスタの座標を表現してもよい。これは、データベースにおけるキー値オブジェクトを迅速かつ効率的に探すことを許容する。特に、空間領域における複数のクラスタのキーは、単独のクエリを利用して効率的に取り出されることが可能であり、クエリは、クラスタの座標の最初のシンボル、例えば最重要部分を識別子として使用する。これら最初のシンボルは、空間充填曲線関数によるエンコーディングに起因して、空間データに関連する座標系における空間的な範囲を表現してもよい。これら最初のシンボルから始まる座標識別子を有するキー・ネームについてデータベースに問い合わせることにより、空間レンジに含まれるクラスタが識別され、データベースから(少なくとも部分的に)取り出され得る。そのような問い合わせは、正確なクラスタ座標が既知である場合にも生じる可能性があり、なぜならキー・ネームの他の部分例えばキー・ネームにおいてエンコードされているブロック・オフセットは未知であるかもしれないからである点に留意を要する。この場合、問い合わせは単独の結果を返すのみであるかもしれず、その結果はクラスタを取り出すために以後に使用され得る。
【００２６】
選択的に、空間充填曲線関数はZオーダリング関数(a  Z-ordering  function)である。そのようなZオーダリングは、多次元データを一次元にマッピングする一方、データ・ポイントの局所性を保ち、またそれ自体は数学的な分析及びコンピュータ・サイエンスの分野で既知であり、モートン・オーダー(Morton  order)又はモートン・コード(Morton  code)としても知られている。
【００２７】
選択的に、一群の命令は、プロセッサにより実行されると、空間データのウェーブレット変換の係数パーティションに基づいて、空間データをブロックに区分けすることを、プロセッサに行わせる。空間データのウェーブレット変換からブロックを導出することにより、周波数及び位置に従って区分けされる階層的なデータ・セットが取得され得る。例えば、1つ以上のクラスタは空間データのより低い周波数成分を表現する一方、1つ以上の他のクラスタはそのより高い周波数成分を表現するかもしれない。空間データは、従って、階層的な方法で保存され且つ取り出されてもよく、例えば周波数スケールに従って保存され且つ取り出されてもよい。ウェーブレット変換は再帰的なウェーブレット変換であってもよいことが認められるであろう。
【００２８】
選択的に、一群の命令は、プロセッサにより実行されると、空間データのウェーブレット変換の冗長ロー・パス係数ブロック(a  redundant  low  pass  coefficient  block)を各クラスタに含めることを、プロセッサに行わせる。空間データのウェーブレット変換の冗長ロー・パス係数ブロックを各クラスタに含めることにより、たとえクラスタがウェーブレット階層の全てのスケールを含んでいなかったとしても、クラスタの各スケールの再構築が可能になり得る。このことは、ストリーミング方式でクラスタから空間データを再構築する場合に特に有利になり得るが、その理由は、ロー・パス係数を各クラスタに保存することは、そのクラスタの係数のみから、オリジナル空間データの再構築(例えば、インバース・ウェーブレット変換)を許容するからである。特に、非常に大きな画像の最適的なウェーブレット変換の場合(例えば、パソロジ・スライド(pathology  slides)は9個又はそれより多い再帰的な変換を有するかもしれず、それはレベル又はスケールとも呼ばれる)、画像の一部を再構築することは、典型的には、そのエリア/ボリュームについて全ての再帰的スケールをカバーする全てのブロック/クラスタからデータを必要とするであろう。このことは、画像データのストリーミング再構築にとって特に欠点となり得るが、その理由は、再帰的な変換プロセスにおいて、最上位の再帰レベル・エリアが後の時点で作成され、即ちストリームにおいてかなり下流で見出されるからである。各クラスタが或る画像(サブ画像)に再構築されることを許容することにより、ストリーム消費者は、画像における処理が実行され得るように画像(の一部)を再構築し得る。従って上記の問題は回避され得る。
【００２９】
選択的に、一群の命令は、プロセッサにより実行されると、個々のクラスタを値データとしてデータベースに保存する前に、重要性オーダリング関数(a  significance  ordering  function)を利用してクラスタの各ブロックのデータを順序付けることを、プロセッサに実行させ、重要性オーダリング関数はメモリにおける第2関数データにより表現される。従って、第2関数データは機能を実行するためのプロセッサに対する命令を有し得る。各ブロックの重要性がより低いデータを落とすことにより、例えばデータベースに保存せず及び/又はデータベースから取り出さないことにより、空間データのより低品質の再構築が可能になり得る。追加的又は代替的に、ブロックの中で圧縮されるデータは、最上位から最下位まで順序付けられてもよく、ビットプレーンの相対的な位置が別個のメタデータ・フィールドに保存される。データの順序付けは、再帰的クラスタのデータのデータ圧縮の一部であってもよい。
【００３０】
選択的に、一群の命令は、プロセッサにより実行されると、空間データのヘッダを値データとしてデータベースに保存すること；及び選択的に、データベースにクラスタを保存する前にヘッダを保存することを、プロセッサに行わせる。ヘッダは、例えば空間データの次元、データ・レンジ等のような空間データを記述する情報を含み、インデックス情報を更には含まなくてよい。従って、ヘッダは、そのようなインデックス情報を有する従来のヘッダよりサイズ的に小さくなり得る。ヘッダは、データベースにおける別個のキー値オブジェクトとして保存され且つ取り出されてもよい。データベースに空間データを保存する前にヘッダを保存することにより、これは、データベースにオブジェクトを保存する場合に、以後に生成されるオブジェクトの推論及び/又はルーティングを許容し得る。即ち、データベースのインターフェースにおいて保存リクエストをインターセプトすることにより、キー・値ペア(the  key-value  pair)は、既に保存されているヘッダにおける(又はヘッダを通じて)情報と組み合わせられるキーにおけるキーに基づいてルーティング又は処理されることが可能である。そのようなインターセプトの非限定的な具体例は、データベースがレストフル・クラウド・データベース(a  Restful  cloud  database)である場合における「HTTP  PUT」コマンドのインターセプトである。
【００３１】
本発明の実施形態、実装及び/又は選択的な側面は、有用であると考えられる任意の方法で組み合わせられてよいことが、当業者により認められるであろう。システムについての説明された修正及び変形に対応する、方法及び/又はコンピュータ読み取り可能な媒体についての修正及び変形は、本件の説明に基づいて当業者により実行されることが可能である。
【００３２】
システム及び方法は、例えば様々な取得モダリティにより取得される二次元(2D)、三次元(3D)又は四次元(4D)画像のような多次元画像データに適用されてもよいことが認められ、取得モダリティは例えば標準的なX線イメージング、コンピュータ断層撮影(CT)、磁気共鳴イメージング(MRI)、超音波(US)、ポジトロン放出断層撮影  (PET)、単光子放出コンピュータ断層撮影(SPECT)、核医学(NM)、ディジタル・パソロジ(全身スライド画像)、及び明視野、蛍光又はスキャニング質量分析におけるものあるが、これらに限定されない。
【図面の簡単な説明】
【００３３】
本発明のこれら及び他の側面は、以下の説明における例により説明される実施形態を参照し及び添付図面を参照することにより明らかになり、更に説明される。
【図１】図1はキー値データベースに画像データを保存し、及び/又はキー値データベースから画像データを取り出すように構成されるシステムを示す。
【図２】図2はキー値オブジェクトとしてキー値データベースに画像データを保存することを示し、それぞれのキー値オブジェクトはキー・データと付随する値データとを有する。
【図３】図3は、画像のブロックへの空間パーティショニング、及び隣接ブロック・グループのクラスタへのグループピングを示す。
【図４】図4はキー値データベースに画像データを保存する方法を示す。
【図５】図5はキー値データベースから画像データを取り出す方法を示す。
【図６】図6はプロセッサ・システムに方法を実行させる命令を有するコンピュータ読み取り可能な媒体を示す。  図面は単に概略的なものであり、寸法を描いたものではないことに留意すべきである。図面において、既に説明した要素に対応する要素は同じ参照番号を有し得る。
【符号の説明】
【００３４】
以下の参照番号のリストは図面の解釈を促すように提供されており、特許請求の範囲を限定するように解釈されてはならない。
【００３５】
020  データベース
022  データベース通信
030  キー・データ
031-036  個々のキー・データ
040  値データ
041-046  個々の値データ
050  キー値オブジェクト
060  画像
070  クラスタ
080  ブロック
100  画像データを保存する及び/又は取り出すシステム
120  データベース・インターフェース
122  内部データ通信
140  プロセッサ
142  内部データ通信
160  メモリ
200  データベースに画像データを保存する方法
210  画像データをブロックに区分けする
220  ブロックをクラスタにグループ化する
230  各クラスタを保存する
240  クラスタを値データとしてデータベースに保存する
250  クラスタの識別子を生成する
260  識別子を有するキー・データを生成する
270  キー・データをデータベースに保存する
300  データベースから画像データを取り出す方法
310  クラスタのブロックを取り出す
320  クラスタの識別子の少なくとも一部を生成する
330  キー・データについてデータベースに問い合わせる
340  キー・データを選択する
350  データベースから対応する値データを取り出す
400  コンピュータ読み取り可能な媒体
410  命令を表現する非一時的なデータ
【発明を実施するための形態】
【００３６】
以下の説明は空間データが画像データであることに言及している。しかしながら、これは限定ではなく、画像データの代わりに他の任意のタイプの空間データが説明される方法でデータベースに保存されて取り出されてよい。他のタイプの空間データの具体例は、例えば、いわゆるk空間でサンプリングされる未処理MRIデータである。従って、「画像データ」を指す以下の言及は、「空間データ」を指すように等しく理解されてよい。
【００３７】
図1は、キー値データベースに画像データを保存し、及び/又はキー値データベースから画像データを取り出すように構成されてよいシステム100を示す。従って、システム100は、例えば保存又は取り出しのようなこれらの機能のうちの何れか、又は双方の機能を実行するように構成される。図1はデータベース020も示している。データベースは、キー値保存部のようにも言及されるキー値データベースであってもよく、キー値データベースは、キー・データに関連して値データを保存し、キー・データに基づいて値データの取り出しを許容するように構成される。非限定的な具体例では、データベース020がクラウド・ホスト・データベースであってもよく、アマゾンS3、グーグル・クラウド・ストレージ及びオープンスタックSWIFTを含むがこれらに限定されない。
【００３８】
システム100は、データベース200にアクセスするように構成されるデータベース・インターフェース120を有するように更に示されている。データベース・インターフェース120は、例えばインターネットのようなワイド・エリア・ネットワーク又はローカル・エリア・ネットワークに対するネットワーク・インターフェースや、内部又は外部のデータ・ストレージに対するストレージ・インターフェース等のような様々な形式をとり得る。特に、データベース・インターフェース120はデータベース020に対するアクセスに合致したタイプのものであってよい。例えば、データベース020がネットワークを介してアクセス可能である場合、データベース・インターフェース120はネットワーク・インターフェースにより構成されてもよく、データベース020がシステム100の内部データ・ストレージ上で構成される場合、データベース・インターフェース120は内部ストレージ・インターフェースにより構成されてもよい、等々である。
【００３９】
システム100は、データ通信122を介してデータベース・インターフェース120と内的に通信するように構成されるプロセッサ140と、データ通信142を介してプロセッサ140によりアクセス可能なメモリ160とを有するように更に示されている。メモリ160は、命令のセットを表現する命令データを有してもよく、命令のセットは、データベース020に画像データを保存し、データベース020から画像データを取り出し、或いは例えば画像データの保存及び取り出しのような双方の機能を実行するようにシステム100を構成する。
【００４０】
画像データを保存するように構成される場合、命令のセットは、プロセッサ140により実行される場合、以下の処理をプロセッサに実行させることにより、プロセッサ140が、画像データをブロックに区分けすること、ブロックをクラスタにグループ化すること、及び各クラスタをデータベース020に保存することを引き起こすことが可能であり、その処理は：個々のクラスタを値データとしてデータベース020に保存するステップ、個々のクラスタの座標に基づいてクラスタの識別子を生成するステップであって、座標は画像データに関連する座標系について決定される、ステップ、クラスタの値データのキー・データを生成するステップであって、キー・データはクラスタの少なくとも識別子を有する、ステップ、及び値データに関連するキー・データをデータベースに保存するステップである。
【００４１】
画像データを取り出すように構成される場合、命令のセットは、プロセッサ140により実行される場合に、以下の処理をプロセッサ140に実行させることにより、プロセッサ140が、データベース020から画像データのクラスタのうち1つ以上のブロックを取り出すことを引き起こすことが可能であり、その処理は、画像データに関連する座標系でのクラスタの座標に基づいてクラスタの識別子の少なくとも一部を生成するステップ、少なくとも一部の識別子を有するキー・データについてデータベースに問い合わせ、それにより1つ以上のキー・データを取得するステップ、1つ以上のキー・データのうちのキー・データを選択するステップ、及びキー・データに関連してデータベースに保存されている値データの少なくとも一部をデータベースから取り出すステップである。
【００４２】
図2及び図3を参照しながら双方の構成が更に説明される。ここで、本明細書を通じて、「画像」という用語への言及は、例えば画像データのような画像のデータ表現への言及として理解されてよいことに留意を要する。図1に示されてはいないが、システム100は、データベース020に画像データを保存するように構成される場合、データ・ストレージにおいて例えば単独ファイルのような別のフォーマットの画像データに先ずアクセスするかもしれないことに更に留意を要する。データ・ストレージは、内的又は外的な画像リポジトリであってもよく、例えば、病院情報システム(a  Hospital  Information  System：HIS)の画像保存通信システム  (a  Picture  Archiving  and  Communication  System：PACS)を含むがこれに限定されない。画像リポジトリにアクセスするために、システム100は画像インターフェース(図1では図示せず)を有していてもよく、画像インターフェースは、例えば、ローカル又はワイド・エリア・ネットワークに対するネットワーク・インターフェース、内部又は外部データ・ストレージに対するストレージ・インターフェース等のような適切な任意のタイプのものであってよい。特に、画像インターフェースは、画像リポジトリに対するアクセスに合致したタイプのものであってよい。例えば、画像リポジトリがネットワークを介してアクセス可能である場合、画像インターフェースはネットワーク・インターフェースにより構成されてもよく、画像リポジトリがシステム100の内部データ・ストレージ上で構成される場合、画像インターフェースは内部ストレージ・インターフェースにより構成されてもよい、等々である。
【００４３】
一般に、図1のシステム100は、ワークステーション又はイメージング装置のようなデバイス又は装置として又はその中で具現化されてよい。デバイス又は装置は、適切なソフトウェアを実行する1つ以上の(マイクロ)プロセッサを有していてもよい。システムのプロセッサ140は、1つ以上のこれらの(マイクロ)プロセッサにより具現化されてよい。例えば画像データの保存、画像データの取り出し、及び/又はその他のシステム機能を実現するソフトウェアは、例えばRAMのような揮発性メモリ内又はフラッシュのような不揮発性メモリ内のような、対応するメモリ160又はメモリ内にダウンロード及び/又は保存されていてもよい。代替的に、システムのプロセッサは、例えばフィールド・プログラマブル・ゲート・アレイ(FPGA)のようなプログラム可能なロジックの形式でデバイス又は装置において実現されてもよい。データベース・インターフェース及び選択的な画像インターフェースは、デバイス又は装置各自のインターフェースにより実現されてもよい。一般に、システムの各ユニットは回路の形式で実現されてもよい。システムは、例えば異なるデバイス又は装置を含むような分散される仕方で実現されてもよいことに留意を要する。例えば、システムの分散化はクライアント・サーバー・モデルに従っていても良い。
【００４４】
図2は、キー値オブジェクト(key-value  objects)としてキー値データベースに画像データの保存を行うことを示し、各々のキー値オブジェクトはキー・データと付随する値データとを有する。即ち、複数のキー値オブジェクト050が示されており、各々のキー値オブジェクトはキー・データ030-036と関連付けられている値データ040-046とを有する。画像データはこれらのキー値オブジェクト050に次のようにして保存されてよい。図2を参照しつつ更に図3も参照すると、画像データ060はブロック080に区分けされ得る。図3の例では、画像データ060が2次元画像のものであるように示されているが、このことは限定ではない。そのような区分けは、規則的なグリッドに従っていてもよく、例えば8×8又は16×16ピクセル、ボクセル又はその他の画像要素のブロックをもたらす。しかしながら、ブロックは他の任意の適切な形状を有していてもよく、不規則なグリッド上にあってもよく、及び/又は隣接する画像要素を有することさえ必須でなくてよい。画像データ060をブロック080に区分けすると、ブロック080はクラスタ070にグループ化されてもよく、クラスタ070の各々はこれらのブロック080の1つ以上を有する。更なる特定の非限定的な具体例は、クラスタが4×4又は8×8ブロックを有してもよいことであってもよい。そして各々のクラスタ070は次のようにしてキー値オブジェクトとしてデータベース020に保存されてもよい。クラスタ070の画像データは、値データ041-046としてデータベース020に保存されてよい。更に、個々のクラスタの一群のブロック080の座標に基づいて、クラスタ070の識別子が算出されてもよく、その座標は画像データ060に関連付けられている座標系について決定される。更に、キー・データ031-036が値データについて生成されてもよく、キー・データはクラスタの識別子を少なくとも有する。そしてキー・データ031-036は値データ041-046に関連してデータベースに保存されてよい。
【００４５】
特定の具体例は、各クラスタの左上ブロックの座標がクラスタの識別子として使用されてよいことである。一般に、そのような座標は、ブロック・グリッド、画像要素に関連するグリッドを基準としていてもよい。画像データに関連する座標系は、以下のうちの少なくとも何れかを有していてもよい：各ブロックの空間座標を示す1つ以上の空間軸、各ブロックに含まれる画像データが表現するカラー成分のカラー軸、及び各ブロックに含まれる画像データが表現する波長又は波長範囲の波長軸。座標系の他の様々な軸も同様に考えられる。
【００４６】
キー・データ031-036は、識別子に加えて、データ・オフセットを更に有するように生成されてもよく、データ・オフセットは、各ブロック080の各自の位置、又は値データ041-046のクラスタ070の一群のブロックのうちの少なくとも或るサブセットの各自の位置を表現する。そのようなデータ・オフセットは、例えば、クラスタ値データにおける個々のブロックの位置に対するバイト・オフセットであってもよく、オフセット・テーブルにおいてベース64(base64)でエンコードされていてもよい。クラスタの識別子を一般化する際に、座標は、例えばZオーダリング関数を使用することのような空間充填曲線を使用してエンコードされてもよい。以下クラスタ・キーとしても言及されるクラスタのキー・データの特定の具体例は、次のようなものであってもよい：
Cluster  key  [max  1024  chars]:
[UUID][delimiter][clustercoordinate][delimiter][clustertemplateID][blockoffsets]
ここで、「UUID」は画像のUUID(a  universally  unique  identifier)であってよい。「delimiter」は何らかの適切な区切り文字であってよい。「clustercoordinate」はクラスタの座標のzオーダリングされた符号化(the  Z-ordered  encoding)であってよい。「clustertemplateID」はクラスタ・タイプを選択的に記述してもよく、クラスタ・タイプは、各クラスタに固有ではなく、むしろテンプレートに記述される特徴について同じ値を有する全てのクラスタの間で共有されてよい。例えば、典型的な2D画像は、異なるタイプのクラスタを記述する10個のクラスタ・テンプレートを有し、各タイプは異なる「clustertemplateID」を有するかもしれない。具体例は例えばカラーであろう。クラスタが所定の領域について全てのブロックを例えばRGBのような全ての可能なカラーで含む場合、クラスタ・テンプレートはカラー空間の記述を含んでもよい。追加的な記述は、使用されるデータ圧縮方法、及びクラスタにおける画像データのビット深度等であってもよい。「clustertemplateID」と同様に、各ブロックは「blocktemplateID」を有してもよい。「block  offsets」は値データにおけるブロックの選択的なデータ・オフセットであってもよい。
【００４７】
図3に示されていないが、画像データは、画像データの(再帰的な)ウェーブレット変換の係数パーティションに基づいて区分けされてもよい。例えば、クラスタ内の各ブロックは画像の異なる部分を表現することが可能であるが、各クラスタは画像の異なる周波数スケールを表現し得る。特に、各クラスタは様々なスケール(例えば、空間周波数)でブロックを有してもよく、各クラスタは異なるスケールだけでなく、画像の異なる位置もカバーし得る。周波数スケールの独立したデコードを許容するために、画像データのウェーブレット変換の冗長的なロー・パス係数ブロックが、各クラスタの値データに含まれてもよい。
【００４８】
一般に、個々のクラスタを値データとしてデータベースに保存する前に、クラスタの各ブロックのデータは、重要性オーダリング関数を利用して順序付けられてもよい。例えば、ブロックのデータがウェーブレット係数により表現される場合、ウェーブレット係数は重要性に関して順序付けられてもよい。より低い重要性の情報を落とすことにより、画像のより低い品質の再構築が可能になり得る。任意の既知の重要性オーダリング関数が、コンピュータ・サイエンスの分野からそれ自体知られているように使用されてよい。重要性オーダリング関数は、ブロックのデータのタイプに基づいて選択されてもよい。一般に、画像データのヘッダは、例えば別個のキー値オブジェクトのように、データベース内の値データとして保存されてよい。ヘッダは、データベースからブロックおを取り出すための従来のインデックス情報を省略してよいが、例えばヘッダは、例えば画像のような保存されるデータ・セットの次元、クラスタの座標のzオーダリング符号化に使用されるようなzオーダリングされる次元のリスト、クラスタの次元のリスト、ブロックの次元のリスト等を有してもよい。ヘッダはXMLとしてエンコードされてもよい。ヘッダは、データベースにクラスタを保存する前に、システムによりデータベースに保存されてもよい。
【００４９】
一般に、データベースにアクセスし、画像データを保存し、そこから画像データを取り出すために、アプリケーション・プログラミング・インターフェース(API)が使用されてもよい。例えば、データベースが、例えば「クラウド・データベース」のようなアマゾン・ウェブ・サービス(AWS)シンプル・ストレージ・サービス(S3)のデータベースにより提供又は表現される場合、APIは「S3  API」であってもよい。
【００５０】
図4はデータベースに画像データを保存する方法200を示す。データベースは、図1を参照しながら説明されたようなタイプのもの、例えばキー値データベースであってよい。方法200は図1のシステム100の動作に対応していてもよいが、本方法は別のシステム、装置又はデバイスによって実行されてもよいので、そのことは限定ではない。
【００５１】
方法200は、「画像データをブロックに区分けする」というタイトルが与えられる動作において、画像データをブロックに区分けするステップ(210)を含んでよい。方法200は、「ブロックをクラスタにグループ化する」というタイトルが与えられる動作において、ブロックをクラスタにグループかするステップ(220)を更に含んでよい。方法200は、「各クラスタを保存する」というタイトルが与えられる動作において、各クラスタをデータベースに保存するステップ(230)、「クラスタを値データとしてデータベースに保存する」というタイトルが与えられる動作において、個々のクラスタを値データとしてデータベースに保存するステップ(240)、「クラスタの識別子を生成する」というタイトルが与えられる動作において、個々のクラスタの座標に基づいてクラスタの識別子を生成するステップ(250)であって、座標は画像データに関連する座標系について決定される、ステップ(250)、「識別子を有するキー・データを生成する」というタイトルが与えられる動作において、クラスタの値データについて、クラスタの識別子を少なくとも有するキー・データを生成するステップ(260)、及び「キー・データをデータベースに保存する」というタイトルが与えられる動作において、値データに関連してキー・データをデータベースに保存するステップ(270)を更に有していてもよい。
【００５２】
図5はデータベースから画像データを取り出す方法300を示す。データベースは、図1を参照しながら説明されたようなタイプのもの、例えばキー値データベースであってもよく、図1のシステム100又は図4の方法200により保存される画像データを含んでよい。方法300は図1のシステム100の動作に対応していてもよいが、本方法は別のシステム、装置又はデバイスによって実行されてもよいので、そのことは限定ではない。方法300は、「クラスタのブロックを取り出す」というタイトルが与えられる動作において、画像データのクラスタの1つ以上のブロックをデータベースから取り出すステップ(310)、「クラスタの識別子の少なくとも一部を生成する」というタイトルが与えられる動作において、画像データに関連する座標系におけるクラスタの座標に基づいて、クラスタの識別子の少なくとも一部を生成するステップ(320)、「キー・データについてデータベースに問い合わせる」というタイトルが与えられる動作において、少なくとも一部の識別子を有するキー・データについてデータベースに問い合わせ、それにより1つ以上のキー・データを取得するステップ(330)、「キー・データを選択する」というタイトルが与えられる動作において、1つ以上のキー・データのうちのキー・データを選択するステップ(340)、及び「データベースから対応する値データを取り出す」というタイトルが与えられる動作において、キー・データに関連してデータベースに保存されている値データの少なくとも一部を、データベースから取り出すステップ(350)を有していてもよい。
【００５３】
図4の方法200及び図5の方法300はそれぞれコンピュータ実装方法として、専用ハードウェアとして、又は双方の組み合わせとしてコンピュータ上で実現されてよい。図6に示されるように、例えば実行可能なコードのようなコンピュータ用の命令は、例えば一連のマシン読み取り可能な物理的なマーク410の形式で、及び/又は例えば磁気的、又は光学的な特徴又は値のような様々な電気特性を有する一連の要素として、コンピュータ読み取り可能な媒体400に保存されていてもよい。実行可能なコードは一時的又は非一時的な方法で保存されてもよい。コンピュータ利用可能な媒体の具体例は、メモリ・デバイス、光ストレージ・デバイス、集積回路、サーバー、オンライン・ソフトウェア等を含む。図6は光学ディスク400を示す。図6を引き続き参照すると、コンピュータ読み取り可能な媒体400は、代替的又は追加的に、本明細書で説明される構成のデータベースを表現する一時的又は非一時的なデータ410を有し、そのデータベースは、本明細書で説明されるように、保存されたキー・データ及び保存された値データを有する。
【００５４】
具体例、実施形態、又は選択的な特徴は、非限定的であるとして示されているか否かによらず、保護が請求される発明を限定するように理解されるべきではない。
【００５５】
本発明は、特に本発明を実装するように構成されるコンピュータ・プログラム、特にキャリア上又は内のコンピュータ・プログラムにも適用されることが認められるであろう。プログラムは、部分的にコンパイルされた形式、本発明による方法の実装に使用するのに適した他の任意の形式におけるもの等のような、ソース・コード、オブジェクト・コード、コード中間ソース及びオブジェクト・コードの形式におけるものであってよい。そのようなプログラムは多くの様々なアーキテクチャ設計を有し得ることも認められるであろう。例えば、本発明による方法又はシステムの機能を実現するプログラム・コードは、1つ以上のサブ・ルーチンに細分されてもよい。これらのサブ・ルーチンの中で機能を分散する多くの様々な方法が当業者にとって明らかであろう。サブ・ルーチンは内蔵プログラムを形成する1つの実行可能ファイルと一緒に保存されてもよい。そのような実行可能ファイルは、コンピュータ実行可能命令、例えばプロセッサ命令及び/又はインタラプタ命令(例えば、Java（登録商標）インタラプタ命令のような)を有してもよい。代替的に、1つ以上又は全てのサブ・ルーチンは、少なくとも1つの外部ライブラリ・ファイルに保存され、例えば実行時に動的に又は静的にメイン・プログラムにリンクされてもよい。メイン・プログラムは少なくとも1つのサブ・ルーチンに対する少なくとも1つの呼び出しを含む。サブ・ルーチンは互いにファンクション・コールを有してもよい。コンピュータ・プログラム・プロダクトに関連する実施形態は、本願における上記の少なくとも1つの方法の各処理段階に対応するコンピュータ実行可能命令を有する。これらの命令はサブ・ルーチンに細分され、及び/又は静的に又は動的にリンクされてよい1つ以上のファイルに保存されてもよい。コンピュータ・プログラム・プロダクトに関する別の実施形態は、本願における上記の少なくとも1つのシステム及び/又はプロダクトの各手段に対応するコンピュータ実行可能命令を有する。これらの命令はサブ・ルーチンに細分され、及び/又は静的に又は動的にリンクされてよい1つ以上のファイルに保存されてもよい。
【００５６】
コンピュータ・プログラムのキャリアは、プログラムを運ぶことが可能な任意のエンティティ又はデバイスであってよい。例えば、キャリアは、例えばCD-ROM又は半導体ROMであるROM、例えばハード・ディスクである磁気記録媒体のようなデータ・ストレージを含んでいてもよい。更に、キャリアは電気的又は光学的な信号のような伝送可能なキャリアであってもよく、信号は電気的又は光学的なケーブル又は無線若しくはその他の手段により運ばれてよい。プログラムがそのような信号で具現化される場合、キャリアはそのようなケーブル又はその他のデバイス若しくは手段により構成されてもよい。代替的に、キャリアはプログラムが組み込まれる集積回路であってもよく、集積回路は関連する方法を実行するように或いはその実行に使用されるように構成される。
【００５７】
上記の実施形態は本発明を限定するのではなく説明していること、当業者は添付の特許請求の範囲から逸脱することなく多くの代替的な実施形態を設計することが可能であることに留意すべきである。特許請求の範囲において、括弧内に配置される任意の参照符号は請求項を限定するように解釈されてはならない。「有する(comprising)」という動詞及びその活用形は、請求項で述べられているもの以外の要素又は段階の存在を排除してはいない。要素に先行する「ある(“a”  or  “an”)」という不定冠詞的な語はそのような要素の複数の存在を排除しない。本発明は、いくつかの別個の要素を有するハードウェアを利用することにより、及び適切にプログラムされたコンピュータを利用することにより実現されてよい。いくつかの手段を列挙する装置クレームにおいて、これらの幾つかの手段は1つの同じハードウェア・アイテムにより具現化されてもよい。何らかの複数の事項が互に異なる従属請求項で引用されているという単なるその事実は、これらの事項の組み合わせが有用に使用できないことを示すものではない。
【図１】
2019531543.tif 000003
【図２】
2019531543.tif 000004
【図３】
2019531543.tif 000005
【図４】
2019531543.tif 000006
【図５】
2019531543.tif 000007
【図６】
2019531543.tif 000008
【手続補正書】
【提出日】平成31年2月26日(2019.2.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データベースに空間データを保存するように構成されるシステムであって：
前記データベースにアクセスするように構成されるデータベース・インターフェースであって、前記データベースは、キー・データに関連して値データを保存し、及び前記キー・データに基づいて前記値データの取り出しを許容するように構成されるキー値データベースである、データベース・インターフェース；
一群の命令を表現する命令データを有するメモリ；
前記データベース・インターフェース及び前記メモリと通信し、前記一群の命令を実行するように構成されるプロセッサ；
を有し、前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに：
前記空間データを空間データのブロックに区分けすること；
空間データの前記ブロックを空間データのクラスタにグループ化すること；及び
前記プロセッサに処理を行わせることにより前記データベースに各クラスタを保存すること；
を行わせ、前記処理は：
個々のクラスタを値データとして前記データベースに保存すること；
前記個々のクラスタの座標に基づいて前記クラスタの識別子を生成することであって、前記座標は画像データに関連付けられる座標系について決定される、こと；
前記クラスタの前記値データについて、前記クラスタの前記識別子を少なくとも有するキー・データを生成すること；及び
前記値データに関連して前記キー・データを前記データベースに保存することである、システム。
【請求項２】
前記一群の命令は、前記プロセッサにより実行されると：
各ブロックの個々の位置、又は前記値データにおける前記クラスタの一群のブロックについての少なくとも或るサブセットの個々の位置を表現するデータ・オフセット
を前記キー・データに更に含めることを行わせる、請求項1に記載のシステム。
【請求項３】
前記空間データに関連付けられる前記座標系は：
クラスタの空間座標を表す空間軸；
クラスタに含まれる前記空間データにより表現されるカラー成分を表すカラー軸；及び
クラスタに含まれる前記空間データにより表現される、波長又は波長レンジを示す波長軸
のうち少なくとも何れかを有する、請求項1又は2に記載のシステム。
【請求項４】
前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに：
空間充填曲線関数を利用して前記座標をエンコードすることにより、前記クラスタの前記識別子を生成すること
を行わせ、前記空間充填曲線関数は前記メモリにおける第1関数データにより表現される、請求項1又は2に記載のシステム。
【請求項５】
前記空間充填曲線関数はZオーダリング関数である、請求項4に記載のシステム。
【請求項６】
前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに：
前記空間データのウェーブレット変換の係数パーティションに基づいて、前記空間データを前記ブロックに区分けすること
を行わせる、請求項1-5のうち何れか一項に記載のシステム。
【請求項７】
前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに：
前記空間データのウェーブレット変換の冗長ロー・パス係数ブロックを各クラスタに含めること
を行わせる、請求項6に記載のシステム。
【請求項８】
前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに：
個々のクラスタを値データとして前記データベースに保存する前に、重要性オーダリング関数を利用して前記クラスタの各ブロックの前記データを順序付けること
を実行させ、前記重要性オーダリング関数は前記メモリにおける第2関数データにより表現される、請求項1-7のうち何れか一項に記載のシステム。
【請求項９】
前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに：
前記空間データのヘッダを値データとして前記データベースに保存すること；及び
選択的に、前記データベースに前記クラスタを保存する前に前記ヘッダを保存すること
を行わせる請求項1-8のうち何れか一項に記載のシステム。
【請求項１０】
データベースから空間データを取り出すように構成されるシステムであって：
前記データベースにアクセスするように構成されるデータベース・インターフェースであって、前記データベースは、キー・データに関連して値データを保存し、及び前記キー・データに基づいて前記値データの取り出しを許容するように構成されるキー値データベースであり、前記データベースは：
前記空間データをブロックに区分けし、前記ブロックをクラスタにグループ化することにより生成される個々のクラスタをそれぞれが表現する保存された値データ；
前記個々のクラスタの識別子を少なくとも有する各々の保存された値データについて保存されたキー・データであって、前記クラスタの前記識別子は前記個々のクラスタの座標に基づいて生成され、前記座標は前記空間データに関連する座標系について決定されている、保存されたキー・データ；
を有する、データベース・インターフェース；
一群の命令を表現する命令データを有するメモリ；
前記データベース・インターフェース及び前記メモリと通信し、前記一群の命令を実行するように構成されるプロセッサ；
を有し、前記一群の命令は、前記プロセッサにより実行されると、前記プロセッサに、前記空間データのクラスタの1つ以上のブロックを前記データベースから取り出すことを、プロセッサに処理を行わせることにより行わせ、前記処理は：
前記空間データに関連する前記座標系における前記クラスタの座標に基づいて、前記クラスタの少なくとも一部の識別子を生成すること；
前記少なくとも一部の識別子を有するキー・データについて前記データベースに問い合わせ、それにより1つ以上のキー・データを取得すること；
前記1つ以上のキー・データのうちのキー・データを選択すること；及び
前記キー・データに関連して前記データベースに保存されている少なくとも一部の値データを前記データベースから取り出すことである、システム。
【請求項１１】
請求項1-10のうち何れか一項に記載のシステムを有するワークステーション又はイメージング装置。
【請求項１２】
データベースに空間データを保存する方法であって、前記データベースは、キー・データに関連して値データを保存し、及び前記キー・データに基づいて前記値データの取り出しを許容するように構成されるキー値データベースであり、前記方法は：
前記空間データを空間データのブロックに区分けするステップ；
空間データの前記ブロックを空間データのクラスタにグループ化するステップ；及び
前記データベースに各クラスタを保存するステップ；
を有し、前記保存するステップは：
個々のクラスタを値データとして前記データベースに保存するステップ；
前記個々のクラスタの座標に基づいて前記クラスタの識別子を生成するステップであって、前記座標は前記空間データに関連付けられる座標系について決定される、ステップ；
前記クラスタの前記値データについて、前記クラスタの前記識別子を少なくとも有するキー・データを生成するステップ；及び
前記値データに関連して前記キー・データを前記データベースに保存するステップ；
により行われる、方法。
【請求項１３】
データベースから空間データを取り出す方法であって、前記データベースは、キー・データに関連して値データを保存し、及び前記キー・データに基づいて前記値データの取り出しを許容するように構成されるキー値データベースであり、前記データベースは：
前記空間データをブロックに区分けし、前記ブロックをクラスタにグループ化することにより生成される個々のクラスタをそれぞれが表現する保存された値データ；
前記個々のクラスタの識別子を少なくとも有する各々の保存された値データについて保存されたキー・データであって、前記クラスタの前記識別子は前記個々のクラスタの座標に基づいて生成され、前記座標は前記空間データに関連する座標系について決定されている、保存されたキー・データ；
を有し、前記方法は、前記空間データのクラスタの1つ以上のブロックを前記データベースから取り出すステップを有し、前記取り出すステップは：
前記空間データに関連する前記座標系における前記クラスタの座標に基づいて、前記クラスタの少なくとも一部の識別子を生成するステップ；
前記少なくとも一部の識別子を有するキー・データについて前記データベースに問い合わせ、それにより1つ以上のキー・データを取得すること；
前記1つ以上のキー・データのうちのキー・データを選択すること；及び
前記キー・データに関連して前記データベースに保存されている少なくとも一部の値データを前記データベースから取り出すステップ；
により行われる、方法。
【請求項１４】
プロセッサ・システムに請求項12又は13に記載の方法を実行させるように構成される命令を表現する一時的又は非一時的なデータを有するコンピュータ読み取り可能な媒体。
【請求項１５】
データベースを表現する一時的又は非一時的なデータを有するコンピュータ読み取り可能な媒体であって、前記データベースは、キー・データに関連して値データを保存し、及び前記キー・データに基づいて前記値データの取り出しを許容するように構成されるキー値データベースであり、前記データベースは：
空間データをブロックに区分けし、前記ブロックをクラスタにグループ化することにより生成される個々のクラスタをそれぞれが表現する保存された値データ；
前記個々のクラスタの識別子を少なくとも有する各々の保存された値データについて保存されたキー・データであって、前記クラスタの前記識別子は前記個々のクラスタの座標に基づいて生成され、前記座標は前記空間データに関連する座標系について決定されている、保存されたキー・データ；
を有する、コンピュータ読み取り可能な媒体。
【国際調査報告】
2019531543.tif 000009
2019531543.tif 000010
2019531543.tif 000011