(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-28
(54)【発明の名称】重複箇所を有する画像用の画像ストレージシステム
(51)【国際特許分類】
G06F 16/58 20190101AFI20241018BHJP
【FI】
G06F16/58
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024521335
(86)(22)【出願日】2022-10-13
(85)【翻訳文提出日】2024-04-09
(86)【国際出願番号】 EP2022078488
(87)【国際公開番号】W WO2023066780
(87)【国際公開日】2023-04-27
(32)【優先日】2021-10-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】フ、ロン
(72)【発明者】
【氏名】ワン、ウェン
(72)【発明者】
【氏名】イン、ジアン ドン
(72)【発明者】
【氏名】シェン、ハオ
(72)【発明者】
【氏名】ジャン、カン
(72)【発明者】
【氏名】ユ、チュアン チン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA02
5B175FB03
5B175HB03
5B175KA11
(57)【要約】
重複箇所を有する画像用の画像ストレージシステム画像ストレージスペースの管理が提供される。複数のプロセッサユニットが、類似画像グループ内のベンチマーク画像を識別する。類似画像グループ内でベンチマーク画像として識別されなかった複数の他の画像は、類似画像のセットである。複数のプロセッサユニットが、画像マッピングツリーを作成する。画像マッピングツリーは、ベンチマーク画像についてのルートブロック、及び、類似画像のセットに基づきルートブロックの下の層のセット内に配列されたブロックを有し;ブロックは、ベンチマーク画像の部分を表し;及び、下位層内のブロック内の複数の下位ブロックは、上位層内のブロック内の上位ブロック内の小区画に対応する。複数のプロセッサユニットは、ベンチマーク画像についての画像マッピングツリー内の対応するブロックのセットとの差異を有する選択されたブロックのセットを、類似画像のセットに記憶する。複数のプロセッサユニットは、画像マッピングツリー内の対応するブロックのセットからルートブロックへの画像マッピングツリー内のパスのセットを記述する、選択されたブロックのセットについてのメタデータを記憶する。
【特許請求の範囲】
【請求項1】
複数のプロセッサユニットが、類似画像グループ内のベンチマーク画像を識別する段階、ここで前記類似画像グループ内で前記ベンチマーク画像として識別されなかった複数の他の画像は、類似画像のセットである;
前記複数のプロセッサユニットが、画像マッピングツリーを作成する段階、ここで前記画像マッピングツリーは、前記ベンチマーク画像についてのルートブロック、及び、類似画像の前記セットに基づき前記ルートブロックの下の層のセット内に配列されたブロックを有し;前記ブロックは、前記ベンチマーク画像の部分を表し;及び、下位層内の前記ブロック内の複数の下位ブロックは、上位層内の前記ブロック内の上位ブロック内の小区画に対応する;及び
前記複数のプロセッサユニットが、前記ベンチマーク画像についての画像マッピングツリー内の対応するブロックのセットとの差異を有する選択されたブロックのセットを、類似画像の前記セットに記憶する段階;及び
前記複数のプロセッサユニットが、前記画像マッピングツリー内の対応するブロックの前記セットから前記ルートブロックへの前記画像マッピングツリー内のパスのセットを記述する、選択されたブロックの前記セットについてのメタデータを記憶する段階
を備える、画像ストレージスペースを管理するためのコンピュータ実装方法。
【請求項2】
前記複数のプロセッサユニットが、前記ベンチマーク画像内の新たな対応するブロックのセットとは異なる新たな画像についての新たなブロックのセットを前記画像マッピングツリーに記憶する段階;及び
前記複数のプロセッサユニットが、前記画像マッピングツリー内の新たな対応するブロックの前記セットから前記ベンチマーク画像についての前記ルートブロックへの新たなパスのセットを記述する、新たなブロックの前記セットについての新たなメタデータを前記画像マッピングツリーに記憶する段階
を更に備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記複数のプロセッサユニットが、新たな画像の前記セットが前記画像マッピングツリーについての画像の最大閾値内にある場合に、前記画像マッピングツリーを用いて新たな画像のセットを記憶する段階
を更に備える、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記複数のプロセッサユニットが、前記新たな画像のセットが新たな画像閾値に等しい、又はこれを上回る場合に、前記新たな画像のセット及び前記類似画像グループ内の画像を用いて前記画像マッピングツリーを再作成する段階
を更に備える、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記複数のプロセッサユニットが、前記類似画像グループについての前記画像マッピングツリーを作成する段階は:
前記複数のプロセッサユニットが、前記ベンチマーク画像を分割して前記ベンチマーク画像内に小区画を形成する段階;及び
前記ルートブロックの下方の層内に上位ブロックの上位層を作成する段階、その中で、前記上位ブロック内の各上位ブロックは、前記ベンチマーク画像内の前記小区画内の小区画に対応する
を有する、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記複数のプロセッサユニットが、前記類似画像グループについての前記画像マッピングツリーを作成する段階は:
前記複数のプロセッサユニットが、対応する上位ブロックのセットを形成するために、前記上位ブロック内の対応する上位ブロックとは異なる類似ブロックを有する類似画像の前記セット内の類似画像の数を判定する段階;
前記複数のプロセッサユニットが、対応する上位ブロックのセット内の各対応する上位ブロックを前記小区画に分割する段階;及び
前記複数のプロセッサユニットが、下位ブロックの下位層を作成する段階、その中で、前記下位ブロック内の各下位ブロックは、対応する上位ブロックの前記セット内の前記小区画内の前記小区画に対応する
を更に有する、請求項5に記載のコンピュータ実装方法。
【請求項7】
後続の下位層を作成するときの分割のために、前記下位ブロックは前記上位ブロックになり、
前記複数のプロセッサユニットが、前記判定する段階、分割する段階、及び作成する段階を反復して前記後続の下位層を形成する段階
を更に有する、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記複数のプロセッサユニットが、前記判定する段階、分割する段階、及び作成する段階を反復して、削減されるストレージ及び使用される処理リソースに基づき、別の下位層を形成する段階
を更に有する、請求項6に記載のコンピュータ実装方法。
【請求項9】
上位ブロックを分割することにより形成される前記下位ブロックの数は、分割される前記上位ブロックについての前記類似ブロックを有する類似画像の前記数に基づいている、請求項6に記載のコンピュータ実装方法。
【請求項10】
前記メタデータは、選択されたブロックの前記セットについての画像識別子のセット、前記ベンチマーク画像への参照、及び前記画像マッピングツリー内の対応するブロックの前記セットから前記ルートブロックへの前記画像マッピングツリー内のパスの前記セットを有する、請求項1に記載のコンピュータ実装方法。
【請求項11】
前記複数のプロセッサユニットが、前記類似画像グループ内の前記ベンチマーク画像を識別する段階は:
前記複数のプロセッサユニットが、複数の類似画像間の最小全体差異に基づき、前記複数の類似画像から前記ベンチマーク画像を識別する段階
を有する、請求項1に記載のコンピュータ実装方法。
【請求項12】
前記最小全体差異は、RGBカラーヒストグラム法、キーポイントマッチング法、画像ハッシュ法、又はビット計算法のうちの少なくとも1つを用いて判定される、請求項11に記載のコンピュータ実装方法。
【請求項13】
複数のプロセッサユニットが、ベンチマーク画像についてのルートブロック、及び、類似画像のセットに基づき前記ルートブロックの下の層のセット内に配列されたブロックを有する画像マッピングツリーを用いて、記憶するための新たな画像を受信する段階;ここで前記ブロックは、前記ベンチマーク画像の部分を表し、下位層内の前記ブロック内の複数の下位ブロックは、上位層内の前記ブロック内の上位ブロック内の小区画に対応する;
前記複数のプロセッサユニットが、前記画像マッピングツリー内の対応するブロックのセットとは異なる、前記新たな画像についての新たなブロックのセットを記憶する段階;及び
前記複数のプロセッサユニットが、前記画像マッピングツリー内の対応するブロックの前記セットから、前記ベンチマーク画像についての前記ルートブロックへの新たなパスのセットを記述する、新たなブロックの前記セットについての新たなメタデータを画像マッピングツリーに記憶する段階
を備える、画像ストレージスペースを管理するためのコンピュータ実装方法。
【請求項14】
複数のプロセッサユニットを備えるコンピュータシステムであって、前記複数のプロセッサユニットは:
前記複数のプロセッサユニットが、類似画像グループ内のベンチマーク画像を識別する手順、ここで前記類似画像グループ内で前記ベンチマーク画像として識別されなかった複数の他の画像は、類似画像のセットである;
前記複数のプロセッサユニットが、画像マッピングツリーを作成する手順、ここで前記画像マッピングツリーは、前記ベンチマーク画像についてのルートブロック、及び、類似画像の前記セットに基づき前記ルートブロックの下の層のセット内に配列されたブロックを有し;前記ブロックは、前記ベンチマーク画像の部分を表し;及び、下位層内の前記ブロック内の複数の下位ブロックは、上位層内の前記ブロック内の上位ブロック内の小区画に対応する;及び
前記複数のプロセッサユニットが、前記ベンチマーク画像についての画像マッピングツリー内の対応するブロックのセットとの差異を有する選択されたブロックのセットを、類似画像の前記セットに記憶する手順;及び
前記複数のプロセッサユニットが、前記画像マッピングツリー内の対応するブロックの前記セットから前記ルートブロックへの前記画像マッピングツリー内のパスのセットを記述する、選択されたブロックの前記セットについてのメタデータを記憶する手順
の前記手順を実行するためのプログラム命令を遂行する、コンピュータシステム。
【請求項15】
前記複数のプロセッサユニットが、前記ベンチマーク画像内の新たな対応するブロックのセットとは異なる新たな画像についての新たなブロックのセットを前記画像マッピングツリーに記憶する手順;及び
前記複数のプロセッサユニットが、前記画像マッピングツリー内の新たな対応するブロックの前記セットから前記ベンチマーク画像についての前記ルートブロックへの新たなパスのセットを記述する、新たなブロックの前記セットについての新たなメタデータを前記画像マッピングツリーに記憶する手順
を更に備える、請求項14に記載のコンピュータシステム。
【請求項16】
前記複数のプロセッサユニットが、新たな画像の前記セットが前記画像マッピングツリーについての画像の最大閾値内にある場合に、前記画像マッピングツリーを用いて新たな画像のセットを記憶する手順
を更に備える、請求項14に記載のコンピュータシステム。
【請求項17】
前記複数のプロセッサユニットが、前記新たな画像のセットが新たな画像閾値に等しい、又はこれを上回る場合に、前記新たな画像のセット及び前記類似画像グループ内の画像を用いて前記画像マッピングツリーを再作成する手順
を更に備える、請求項16に記載のコンピュータシステム。
【請求項18】
前記複数のプロセッサユニットが、前記類似画像グループについての前記画像マッピングツリーを作成する手順は:
前記複数のプロセッサユニットが、前記ベンチマーク画像を分割して前記ベンチマーク画像内に小区画を形成する手順;及び
前記ルートブロックの下方の層内に上位ブロックの上位層を作成する手順、その中で、前記上位ブロック内の各上位ブロックは、前記ベンチマーク画像内の前記小区画内の小区画に対応する
を有する、請求項14に記載のコンピュータシステム。
【請求項19】
前記複数のプロセッサユニットが、前記類似画像グループについての前記画像マッピングツリーを作成する手順は:
前記複数のプロセッサユニットが、対応する上位ブロックのセットを形成するために、前記上位ブロック内の対応する上位ブロックとは異なる類似ブロックを有する類似画像の前記セット内の類似画像の数を判定する手順;
前記複数のプロセッサユニットが、対応する上位ブロックのセット内の各対応する上位ブロックを前記小区画に分割する手順;及び
下位ブロックの下位層を作成する手順、その中で、前記下位ブロック内の各下位ブロックは、対応する上位ブロックの前記セット内の前記小区画内の前記小区画に対応する
を更に有する、請求項18に記載のコンピュータシステム。
【請求項20】
後続の下位層を作成するときの分割のために、前記下位ブロックは前記上位ブロックになり、
前記複数のプロセッサユニットが、前記判定する手順、分割する手順、及び作成する手順を反復して前記後続の下位層を形成する手順
を更に有する、請求項19に記載のコンピュータシステム。
【請求項21】
前記複数のプロセッサユニットが、前記判定する手順、分割する手順、及び作成する手順を反復して、削減されるストレージ及び使用される処理リソースに基づき、別の下位層を形成する手順
を更に有する、請求項19に記載のコンピュータシステム。
【請求項22】
上位ブロックを分割することにより形成される前記下位ブロックの数は、分割される前記上位ブロックについての前記類似ブロックを有する類似画像の前記数に基づいている、請求項19に記載のコンピュータシステム。
【請求項23】
前記メタデータは、選択されたブロックの前記セットについての画像識別子のセット、前記ベンチマーク画像への参照、及び前記画像マッピングツリー内の対応するブロックの前記セットから前記ルートブロックへの前記画像マッピングツリー内のパスの前記セットを有する、請求項14に記載のコンピュータシステム。
【請求項24】
複数のプロセッサユニットを備えるコンピュータシステムであって、前記複数のプロセッサユニットは:
ベンチマーク画像についてのルートブロック、及び、類似画像のセットに基づき前記ルートブロックの下の層のセット内に配列されたブロックを有する画像マッピングツリーを用いて、記憶するための新たな画像を受信する;ここで前記ブロックは、前記ベンチマーク画像の部分を表し、下位層内の前記ブロック内の複数の下位ブロックは、上位層内の前記ブロック内の上位ブロック内の小区画に対応する;
前記画像マッピングツリー内の対応するブロックのセットとは異なる、前記新たな画像についての新たなブロックのセットを記憶する;及び
前記画像マッピングツリー内の対応するブロックの前記セットから、前記ベンチマーク画像についての前記ルートブロックへの新たなパスのセットを記述する、新たなブロックの前記セットについての新たなメタデータを画像マッピングツリーに記憶する
ためのプログラム命令を遂行する、コンピュータシステム。
【請求項25】
画像ストレージスペースを管理するためのコンピュータプログラム製品であって、プログラム命令が具現化されたコンピュータ可読ストレージ媒体を備え、前記プログラム命令は、コンピュータシステムに:
複数のプロセッサユニットが、類似画像グループ内のベンチマーク画像を識別する手順、ここで前記類似画像グループ内で前記ベンチマーク画像として識別されなかった複数の他の画像は、類似画像のセットである;
前記複数のプロセッサユニットが、画像マッピングツリーを作成する手順、ここで前記画像マッピングツリーは、前記ベンチマーク画像についてのルートブロック、及び、類似画像の前記セットに基づき前記ルートブロックの下の層のセット内に配列されたブロックを有し;前記ブロックは、前記ベンチマーク画像の部分を表し;及び、下位層内の前記ブロック内の複数の下位ブロックは、上位層内の前記ブロック内の上位ブロック内の小区画に対応する;及び
前記複数のプロセッサユニットが、前記ベンチマーク画像についての画像マッピングツリー内の対応するブロックのセットとの差異を有する選択されたブロックのセットを、類似画像の前記セットに記憶する手順;及び
前記複数のプロセッサユニットが、前記画像マッピングツリー内の対応するブロックの前記セットから前記ルートブロックへの前記画像マッピングツリー内のパスのセットを記述する、選択されたブロックの前記セットについてのメタデータを記憶する手順
の方法を実行させるために前記コンピュータシステムによって遂行可能である、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概してコンピュータシステムの改良に関し、より具体的には、重複箇所を有する画像を効率的に記憶するコンピュータシステムに関する。
【背景技術】
【0002】
インターネット及びソーシャルネットワーキングプラットフォームの発展に伴い、膨大な量の情報が記憶されている。画像は、ソーシャルネットワーキングプラットフォーム上に記憶される情報の大きな割合を構成し得る。例えば、ソーシャルメディアプラットフォームのユーザは、1日あたり18億枚を超える画像など、非常に多数の画像をアップロードすることができる。インターネット上での画像の記憶は、人工知能システムについての画像認識トレーニングのためのトレーニングデータセットの作成、及び、多数の画像が必要とされ得る他の目的のために行われ得る。
【0003】
これらの画像を記憶するには、膨大な量のストレージスペースを要し、多額のコストを伴う。画像用のストレージスペースを管理するにあたり、ストレージスペースの量を削減するために、画像に圧縮技法が適用され得る。データ圧縮がデジタル画像に適用されて画像のサイズを縮小し、その結果、記憶又は伝送のためのコストが削減され得る。画像の圧縮の場合、圧縮は非可逆圧縮又は可逆圧縮であり得る。可逆圧縮が好まれるが、所望される程度の画像サイズを生成しない場合がある。
【0004】
更に、画像用のストレージスペースを管理するにあたり、重複画像が識別され得る。重複画像の識別により、画像の重複コピーを削除するための重複排除が実行され得る。1つの画像が、共有コピーとして保持され得る。しかしながら、記憶される画像の数は急速に増加し続けているため、同一画像の重複排除は、画像用のストレージスペースにおける所望の削減を提供しない場合がある。
【発明の概要】
【0005】
例示的な一実施形態によれば、画像ストレージスペースを管理するためのコンピュータ実装方法が提供される。複数のプロセッサユニットが、類似画像グループ内のベンチマーク画像を識別する。類似画像グループ内でベンチマーク画像として識別されなかった複数の他の画像は、類似画像のセットである。複数のプロセッサユニットが、画像マッピングツリーを作成する。画像マッピングツリーは、ベンチマーク画像についてのルートブロック、及び、類似画像のセットに基づきルートブロックの下の層のセット内に配列されたブロックを有する。ブロックは、ベンチマーク画像の部分を表し、下位層内のブロック内の複数の下位ブロックは、上位層内のブロック内の上位ブロック内の小区画に対応する。複数のプロセッサユニットは、ベンチマーク画像についての画像マッピングツリー内の対応するブロックのセットとの差異を有する選択されたブロックのセットを、類似画像のセットに記憶する。複数のプロセッサユニットは、画像マッピングツリー内の対応するブロックのセットからルートブロックへの画像マッピングツリー内のパスのセットを記述する、選択されたブロックのセットについてのメタデータを記憶する。他の例示的な実施形態によれば、画像ストレージスペースを管理するためのコンピュータシステム及びコンピュータプログラム製品が提供される。その結果、例示的な実施形態は、類似画像の部分を記憶することを通じて、必要とされる画像ストレージスペースの量を削減することにより、コンピュータシステムにおける性能を向上させる技術的効果を提供し得る。
【0006】
例示的な実施形態はまた、ベンチマーク画像内の新たな対応するブロックのセットとは異なる新たな画像についての新たなブロックのセットを画像マッピングツリーに許容的に記憶し、画像マッピングツリー内の新たな対応するブロックのセットからベンチマーク画像についてのルートブロックへの新たなパスのセットを記述する、新たなブロックのセットについての新たなメタデータを画像マッピングツリーに記憶し得る。例示的な実施形態は、新たな画像のセットが画像マッピングツリーについての画像の最大閾値内にある場合に、画像マッピングツリーを用いて新たな画像のセットを更に許容的に記憶する。例示的な実施形態はまた、新たな画像のセットが新たな画像閾値に等しい、又はこれを上回る場合に、新たな画像のセット及び類似画像グループ内の画像を用いて画像マッピングツリーを許容的に再作成し得る。類似画像グループについての画像マッピングツリーを作成するにあたり、例示的な実施形態は、ベンチマーク画像を許容的に分割してベンチマーク画像内に小区画を形成し、ルートブロックの下方の層内に上位ブロックの上位層を作成し、その中で、上位ブロック内の各上位ブロックは、ベンチマーク画像内の小区画内の小区画に対応する。類似画像グループについての画像マッピングツリーを作成するにあたり、例示的な実施形態は、許容的に、更に、対応する上位ブロックのセットを形成するために、上位ブロック内の対応する上位ブロックとは異なる類似ブロックを有する類似画像のセット内の類似画像の数を判定し;対応する上位ブロックのセット内の各対応する上位ブロックを小区画に分割し;及び、下位ブロックの下位層を作成し、その中で、下位ブロック内の各下位ブロックは、対応する上位ブロックのセット内の小区画内の小区画に対応する。その結果、例示的な実施形態は、類似画像のブロック及び当該ブロックについてのメタデータを記憶するための画像マッピングツリーの使用を通じ、類似画像用のストレージを削減することを可能にする技術的効果を提供した。
【0007】
別の例示的な例において、画像ストレージスペースを管理するためのコンピュータ実装方法が提供される。複数のプロセッサユニットは、ベンチマーク画像についてのルートブロック、及び、類似画像のセットに基づきルートブロックの下の層のセット内に配列されたブロックを有する画像マッピングツリーを用いて、記憶するための新たな画像を受信する。ブロックは、複数の下位ブロック内のベンチマーク画像の部分を表し、下位層内のブロックは、上位層内のブロック内のブロック内の小区画に対応する。複数のプロセッサユニットは、画像マッピングツリー内の対応するブロックのセットとは異なる、新たな画像についての新たなブロックのセットを記憶する。複数のプロセッサユニットは、画像マッピングツリー内の対応するブロックのセットからベンチマーク画像についてのルートブロックへの新たなパスのセットを記述する、新たなブロックのセットについての新たなメタデータを画像マッピングツリーに記憶する。他の例示的な実施形態によれば、画像ストレージスペースを管理するためのコンピュータシステム及びコンピュータプログラム製品が提供される。その結果、例示的な実施形態は、類似画像の部分を記憶することを通じて、必要とされる画像ストレージスペースの量を削減することにより、コンピュータシステムにおける性能を向上させる技術的効果を提供し得る。
【図面の簡単な説明】
【0008】
【
図1】例示的な実施形態が実装され得る、クラウドコンピューティング環境を示す図である。
【0009】
【
図2】例示的な実施形態による、抽象化モデル層を示す図である。
【0010】
【
図3】例示的な実施形態が実装され得る、データ処理システムのネットワークの図的表現である。
【0011】
【
図4】例示的な実施形態による、画像環境のブロック図である。
【0012】
【
図5】例示的な実施形態による、類似画像グループの説明図である。
【0013】
【
図6】例示的な実施形態による、画像マッピングツリーである。
【0014】
【
図7】例示的な実施形態による、画像用に保存されたブロックを記述するために使用されるメタデータである。
【0015】
【
図8】例示的な実施形態による、画像マッピングツリーへの新たな画像のマッピングである。
【0016】
【
図9】例示的な実施形態による、画像ストレージスペースツリーを管理するためのプロセスのフローチャートである。
【0017】
【
図10】例示的な実施形態による、新たな画像を記憶するためのプロセスのフローチャートである。
【0018】
【
図11】例示的な実施形態による、新たな画像のセットを処理するためのプロセスのフローチャートである。
【0019】
【
図12】例示的な実施形態による、画像マッピングツリーを作成するためのプロセスのフローチャートである。
【0020】
【
図13】例示的な実施形態による、画像マッピングツリーを作成するためのプロセスのフローチャートである。
【0021】
【
図14A】例示的な実施形態による、画像マッピングツリーを作成するためのプロセスのフローチャートである。
【
図14B】例示的な実施形態による、画像マッピングツリーを作成するためのプロセスのフローチャートである。
【0022】
【
図15】例示的な実施形態による、画像ストレージスペースツリーを管理するためのプロセスのフローチャートである。
【0023】
【
図16A】例示的な実施形態による、新たな画像を処理する画像ストレージスペースツリーを管理するためのプロセスのフローチャートである。
【
図16B】例示的な実施形態による、新たな画像を処理する画像ストレージスペースツリーを管理するためのプロセスのフローチャートである。
【0024】
【
図17】例示的な実施形態による、データ処理システムのブロック図である。
【発明を実施するための形態】
【0025】
例示的な実施形態は、複数の異なる考慮事項を認識及び考慮している。例えば、例示的な実施形態は、ストレージスペースを削減することを試みる場合、幾つかの重複部分を有する画像をハンドリングすることが困難であり得ることを認識及び考慮している。それらの実施形態は、画像間で重複箇所が存在する場合でも全ての画像を記憶することが必要であると認識及び考慮している。例示的な環境は、この状況が、クラウドストレージ、ソーシャルネットワーキングプラットフォーム、画像認識トレーニングデータを含む異なるシナリオ及び他のシナリオにおける共通の課題であることを認識及び考慮している。
【0026】
従って、上述の課題の少なくとも幾つか、並びに他の起こり得る課題を考慮した、コンピュータ実装方法、装置、コンピュータシステム、及びコンピュータプログラム製品を有することが望ましい。例えば、画像間で重複部分が存在する場合に、画像のストレージを1つに管理することに伴う技術的問題を克服する方法及び装置を有することが望ましい。
【0027】
本発明は、任意の可能な技術的詳細レベルで統合されたシステム、方法及び/又はコンピュータプログラム製品であり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(又は複数の媒体)を含み得る。
【0028】
コンピュータ可読ストレージ媒体は、命令遂行デバイスによる使用のための命令を保持及び記憶できる有形デバイスであり得る。コンピュータ可読ストレージ媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は上述の任意の好適な組み合わせであってもよいがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非包括的なリストは、以下:ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、その上に命令が記録されたパンチカード又は溝内の隆起構造などの機械的にエンコードされたデバイス、及び上述の任意の好適な組み合わせを含み得る。コンピュータ可読ストレージ媒体は、本明細書において使用される場合、電波又は他の自由に伝搬する電磁波、導波路又は他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを通じて伝送される電気信号などの一時的な信号自体として解釈されないものとする。
【0029】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスへダウンロードされてもよく、又は、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークを介して、外部コンピュータ又は外部ストレージデバイスへダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを有し得る。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
【0030】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)の命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、又は、Smalltalk(登録商標)又はC++などのようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語などの手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで書かれたソースコード又はオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロンのソフトウェアパッケージとして、ユーザのコンピュータ上で部分的かつリモートコンピュータ上で部分的に、又は、リモートコンピュータ又はサーバ上で全体的に遂行し得る。後者のシナリオでは、リモートコンピュータが、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続され得、又はその接続は、(例えば、インターネットサービスプロバイダを使用するインターネットを通じて)外部コンピュータに対して行われ得る。幾つかの実施形態において、本発明の態様を実行すべく、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、又は、プログラマブルロジックアレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を遂行し得る。
【0031】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明されている。フローチャート図及び/又はブロック図の各ブロック、及び、フローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装され得ることが理解されるであろう。
【0032】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサ、又は機械を生成する他のプログラマブルデータ処理装置に提供されてよく、それにより、コンピュータのプロセッサ又は他のプログラマブルデータ処理装置を介して遂行される命令は、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定される機能/作用を実装するための手段を作成する。これらのコンピュータ可読プログラム命令はまた、コンピュータ可読ストレージ媒体に記憶されてよく、当該命令は、コンピュータ、プログラマブルデータ処理装置及び/又は他のデバイスに対し、特定の様式で機能するよう指示し得、それにより、命令が記憶されたコンピュータ可読ストレージ媒体は、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/作用の態様を実装する命令を含む製品を備えるようになる。
【0033】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードされて、当該コンピュータ、当該他のプログラマブル装置又は他のデバイス上で一連の動作段階を実行させてコンピュータ実装プロセスを生成してよく、それにより、当該コンピュータ、他のプログラマブル装置又は他のデバイス上で遂行される当該命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/作用を実装する。
【0034】
図におけるフローチャート及びブロック図は、本発明の様々な実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図における各ブロックは、指定された論理機能を実装するための1つ又は複数の遂行可能命令を含む命令のモジュール、セグメント、又は部分を表し得る。幾つかの代替的な実装形態において、ブロック内に記されている機能は、図面中に記されている順序とは異なる順序で生じ得る。例えば、連続して示されている2つのブロックが、実際には、1つの段階として実現されてよく、同時に、実質的に同時に、部分的に又は全体的に時間が重複する様式で遂行されてよく、又は、ブロックは、場合によっては、関与する機能に応じて逆の順序で遂行されてよい。ブロック図及び/又はフローチャート図の各ブロック、及び、ブロック図及び/又はフローチャート図におけるブロックの組み合わせは、指定された機能又は作用を実行する、又は専用ハードウェア及びコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムにより実装され得ることにも留意されたい。
【0035】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に列挙される教示内容の実装形態は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在既知、又は、今後開発される任意の他のタイプのコンピューティング環境と併せて実装することが可能である。
【0036】
クラウドコンピューティングは、管理の労力又はサービスのプロバイダとの対話を最小限に抑えながら迅速にプロビジョニング及びリリースされ得る構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールに対する便利なオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルである。本クラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含み得る。
【0037】
特性は以下の通りである。
【0038】
オンデマンドセルフサービス:クラウドコンシューマは、サービスプロバイダとの人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間及びネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
【0039】
幅広いネットワークアクセス:能力は、ネットワークを介して利用可能であり、また、異種混交のシンクライアントプラットフォーム又はシッククライアントプラットフォーム(例えば、モバイル電話、ラップトップ、及びPDA(登録商標))による使用を促進する標準的なメカニズムを通じてアクセスされる。
【0040】
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数のコンシューマにサービス提供するようにプールされており、異なる物理リソース及び仮想リソースが需要に沿って動的に割り当て及び再割り当てされる。コンシューマは、概して、提供されたリソースの正確なロケーションに対する制御又は知識を有していないが、より高いレベルの抽象化(例えば、国、州、又はデータセンタ)においてロケーションを指定することが可能である場合があるという点で、ロケーションの独立性がある。
【0041】
迅速な弾力性:能力は迅速にかつ伸縮自在に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトすることも、迅速にリリースして素早くスケールインすることもできる。コンシューマにとって、多くの場合、プロビジョニングのために利用可能な能力は無制限であるように見え、任意の時点において任意の量で購入され得る。
【0042】
計測サービス:クラウドシステムは、或る抽象化レベルでサービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブユーザアカウント)に適した計測能力を活用することにより、リソースの使用を自動的に制御及び最適化する。リソース使用量をモニタリング、制御及び報告することができ、それにより、利用されるサービスのプロバイダ及びコンシューマの両方に透明性が提供される。
【0043】
サービスモデルは以下の通りである。
【0044】
サービスとしてのソフトウェア(SaaS):コンシューマに提供される能力は、クラウドインフラストラクチャ上で実行しているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインタフェースを通じて様々なクライアントデバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を考え得る例外として、ネットワーク、サーバ、オペレーティングシステム、ストレージ又は更には個々のアプリケーション能力を含む、基礎をなすクラウドインフラストラクチャを管理又は制御しない。
【0045】
サービスとしてのプラットフォーム(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成された、コンシューマが作成又は取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション、及び場合によってはアプリケーションホスティング環境構成に対して制御を有する。
【0046】
サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングすることであり、コンシューマは、オペレーティングシステム及びアプリケーションを含み得る任意のソフトウェアを展開し、実行することが可能である。コンシューマは、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションに対する制御を有するとともに、場合によっては選択されたネットワーキングコンポーネント(例えば、ホストファイアウォール)に対する限定的な制御を有する。
【0047】
展開モデルは以下の通りである。
【0048】
プライベートクラウド:クラウドインフラストラクチャは、組織のためだけに運用される。それは、組織又は第三者によって管理されてよく、オンプレミス又はオフプレミスで存在してよい。
【0049】
コミュニティクラウド:クラウドインフラストラクチャは、複数の組織により共有されており、共有の関心事(例えば、ミッション、セキュリティ要件、ポリシ、及び法令順守に関わる考慮事項)を有する特定のコミュニティをサポートする。それは、それらの組織又は第三者によって管理されてよく、オンプレミス又はオフプレミスで存在してよい。
【0050】
パブリッククラウド:クラウドインフラストラクチャは、一般大衆又は大規模な業界団体にとって利用可能になり、クラウドサービスを販売する組織により所有される。
【0051】
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ又はそれより多くのクラウド(プライベート、コミュニティ、又はパブリック)の複合体であり、これは、一意的なエンティティのままであるが、データ及びアプリケーションのポータビリティ(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準化された技術又は独自技術によって共に結合される。
【0052】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、及び意味的相互運用性に重点を置いたサービス指向型である。クラウドコンピューティングの中核には、相互接続されたノードのネットワークを含むインフラストラクチャが存在する。
【0053】
ここで
図1を参照すると、例示的な実施形態が実装され得る、クラウドコンピューティング環境を示す図が示されている。この例示的な例において、クラウドコンピューティング環境100は、例えば、パーソナルデジタルアシスタント又はスマートフォン120A、デスクトップコンピュータ120B、ラップトップコンピュータ120C及び/又は自動車コンピュータシステム120Nなど、クラウドコンシューマにより用いられるローカルコンピューティングデバイスが通信し得る1つ又は複数のクラウドコンピューティングノード110のセットを含む。
【0054】
クラウドコンピューティングノード110は、互いに通信してよく、上記で説明されたプライベートクラウド、コミュニティクラウド、パブリッククラウド又はハイブリッドクラウド、又はそれらの組み合わせなどの1つ又は複数のネットワークに物理的に又は仮想的にグループ化されてよい。これにより、クラウドコンピューティング環境100は、クラウドコンシューマがローカルコンピューティングデバイス120A~120Nなどのローカルコンピューティングデバイス上でリソースを維持する必要がないインフラストラクチャ、プラットフォーム及び/又はソフトウェアをサービスとして提供することが可能になる。ローカルコンピューティングデバイス120A~120Nのタイプは単に例示を意図するものであり、クラウドコンピューティングノード110及びクラウドコンピューティング環境100は、任意のタイプのネットワーク及び/又は例えばウェブブラウザを使用するネットワークアドレス指定可能接続を介して、任意のタイプのコンピュータ化デバイスと通信し得ることが理解される。
【0055】
ここで
図2を参照すると、例示的な実施形態による、抽象化モデル層を示す図が示されている。この例示的な例において示されている機能抽象化層のセットは、
図1におけるクラウドコンピューティング環境100などのクラウドコンピューティング環境によって提供され得る。
【0056】
本明細書において使用される場合、「~のセット」は、項目を参照して使用されるとき、1つ又は複数の項目を意味する。例えば、機能抽象化層のセットは、1つ又は複数の機能抽象化層である。
【0057】
図2に示されるコンポーネント、層、及び機能は例示のみを意図しており、本発明の実施形態はこれに限定されないことが事前に理解されるべきである。描写されている通り、以下の層及び対応する機能が提供される。
【0058】
クラウドコンピューティング環境の抽象化層200は、ハードウェア及びソフトウェア層202、仮想化層204、管理層206及びワークロード層208を含む。ハードウェア及びソフトウェア層202は、クラウドコンピューティング環境のハードウェアコンポーネント及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントは、例えば、メインフレーム210、RISC(縮小命令セットコンピュータ)アーキテクチャベースサーバ212、サーバ214、ブレードサーバ216、ストレージデバイス218、及び、ネットワーク及びネットワーキングコンポーネント220を含み得る。幾つかの例示的な実施形態において、ソフトウェアコンポーネントは、例えば、ネットワークアプリケーションサーバソフトウェア222及びデータベースソフトウェア224を含み得る。
【0059】
仮想化層204は、仮想エンティティの以下の例、すなわち、仮想サーバ226;仮想ストレージ228;仮想プライベートネットワークを含む仮想ネットワーク230;仮想アプリケーション及びオペレーティングシステム232;及び仮想クライアント234が提供され得る抽象化層を提供する。
【0060】
一例において、管理層206は、以下で説明される機能を提供してよい。リソースプロビジョニング236は、クラウドコンピューティング環境内のタスクを実行するために利用されるコンピューティングリソース及び他のリソースの動的調達を提供する。計測及び価格設定238は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、及びこれらのリソースの消費に対する請求又はインボイス作成を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを含んでもよい。セキュリティは、クラウドコンシューマ及びタスクのアイデンティティ検証、並びに、データ及び他のリソースの保護を提供する。ユーザポータル240は、コンシューマ及びシステムアドミニストレータに対してクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理242は、必要とされるサービスレベルが満たされるように、クラウドコンピューティングリソース割り当て及び管理を提供する。サービスレベルアグリーメント(SLA)計画及び履行244は、SLAに従って将来要件が予期されるクラウドコンピューティングリソースの事前準備及び調達を提供する。
【0061】
ワークロード層208は、クラウドコンピューティング環境が利用され得る機能の例を提供する。例えば、ワークロード層208によって提供され得るワークロード及び機能は、マッピング及びナビゲーション246、ソフトウェア開発及びライフサイクル管理248、仮想教室教育配信250、データ分析処理252、トランザクション処理254、及び画像管理256を含み得る。
【0062】
この例示的な例において、画像管理256は、クラウドコンピューティング環境100における画像のストレージを管理する。画像管理256は、幾つかの重複部分を有する画像のために必要とされるストレージスペースを削減する様式でストレージを管理することができる。
【0063】
ここで
図3を参照すると、例示的な実施形態が実装され得る、データ処理システムのネットワークの図的表現が示されている。ネットワークデータ処理システム300は、例示的な実施形態が実装され得るコンピュータのネットワークである。ネットワークデータ処理システム300は、ネットワーク302を収容し、これは、ネットワークデータ処理システム300内で共に接続された様々なデバイス及びコンピュータの間の通信リンクを提供するために用いられる媒体である。ネットワーク302は、有線、無線通信リンク、又は光ファイバケーブルなどの接続を含み得る。
【0064】
描写されている例において、サーバコンピュータ304及びサーバコンピュータ306は、ストレージユニット308と共にネットワーク302に接続されている。加えて、クライアントデバイス310は、ネットワーク302に接続している。描写されている通り、クライアントデバイス310は、クライアントコンピュータ312、クライアントコンピュータ314、及びクライアントコンピュータ316を含む。クライアントデバイス310は、例えば、コンピュータ、ワークステーション、又はネットワークコンピュータであり得る。描写されている例において、サーバコンピュータ304は、ブートファイル、オペレーティングシステム画像及びアプリケーションなどの情報をクライアントデバイス310に提供する。更に、クライアントデバイス310は、モバイル電話318、タブレットコンピュータ320及びスマートグラス322など、他のタイプのクライアントデバイスも含み得る。この例示的な例において、サーバコンピュータ304、サーバコンピュータ306、ストレージユニット308、及びクライアントデバイス310は、ネットワーク302に接続するネットワークデバイスであり、その中で、ネットワーク302は、これらのネットワークデバイスのための通信媒体である。クライアントデバイス310の幾つか又は全ては、モノのインターネット(IoT)を形成し得、その中で、これらの物理デバイスは、ネットワーク302に接続し、ネットワーク302上で、情報を互いに交換できる。
【0065】
この例において、クライアントデバイス310は、サーバコンピュータ304のクライアントである。ネットワークデータ処理システム300は、示されていない追加のサーバコンピュータ、クライアントコンピュータ、及び他のデバイスを含み得る。クライアントデバイス310は、有線、光ファイバ、又は無線接続のうちの少なくとも1つを利用してネットワーク302に接続する。
【0066】
ネットワークデータ処理システム300内に位置するプログラムコードは、コンピュータ記録可能ストレージ媒体に記憶され、使用のためにデータ処理システム又は他のデバイスへダウンロードされ得る。例えば、プログラムコードが、サーバコンピュータ304上のコンピュータ記録可能ストレージ媒体に記憶され、クライアントデバイス310上での使用のためにネットワーク302を介してクライアントデバイス310へダウンロードされ得る。
【0067】
描写されている例において、ネットワークデータ処理システム300は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)プロトコルスイートを使用して互いに通信するネットワーク及びゲートウェイの世界規模の集合体を表すネットワーク302を用いるインターネットである。インターネットの中核には、データ及びメッセージをルーティングする数千の商用コンピュータシステム、政府コンピュータシステム、教育コンピュータシステム、及び他のコンピュータシステムで構成される主要ノード又はホストコンピュータ間の高速データ通信回線のバックボーンがある。当然ながら、ネットワークデータ処理システム300はまた、複数の異なるタイプのネットワークを用いて実装され得る。例えば、ネットワーク302は、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)又はワイドエリアネットワーク(WAN)のうちの少なくとも1つで構成され得る。
図3は、異なる例示的な実施形態についてのアーキテクチャ上の制限としてではなく、例として意図されている。
【0068】
本明細書において使用される場合、「複数の」は、項目を参照して使用されるとき、1つ又は複数の項目を意味する。例えば、「複数の異なるタイプのネットワーク」は、1つ又は複数の異なるタイプのネットワークである。
【0069】
更に、「~のうちの少なくとも1つ(at least one of)」という語句は、項目のリストと共に使用される場合、リスト化された項目のうちの1つ又は複数の異なる組み合わせが使用され得ること、及び、リスト内の各項目のうちの1つのみが必要とされ得ることを意味する。換言すれば、「~のうちの少なくとも1つ」は、リストからの項目の任意の組み合わせ及び任意の数の項目が使用され得るが、リスト内の項目の全てが必要とされるわけではないことを意味する。項目は、特定のオブジェクト、物又はカテゴリであり得る。
【0070】
例えば、限定されないが、「項目A、項目B、又は項目Cのうちの少なくとも1つ」は、項目A、項目A及び項目B、又は項目Bを含み得る。この例はまた、項目A、項目B、及び項目C又は項目B及び項目Cを含み得る。当然ながら、これらの項目の任意の組み合わせが存在し得る。幾つかの例示的な例において、「~のうちの少なくとも1つ」は、例えば、限定されないが、項目Aのうち2個、項目Bのうち1個、項目Cのうち10個、項目Bのうち4個、及び項目Cのうち7個、又は、他の好適な組み合わせであり得る。
【0071】
この例示的な例において、画像管理システム330は、ストレージエリアネットワーク(storage area network:SAN)334における画像332のストレージを管理し得る。ストレージエリアネットワーク334は、ネットワーク302を介してアクセスされ得るストレージデバイスのネットワークである。描写されている通り、画像管理システム330は、画像332を記憶するときに、ストレージエリアネットワーク334内の画像ストレージスペース336を管理し得る。
【0072】
描写されている通り、画像管理システム330は、重複箇所を有する全ての画像を記憶するよりも少ないスペースを用いて、重複箇所を有する画像332の記憶をハンドリングし得る。例えば、第1の画像338及び第2の画像340の両方が、ブロックに分割され得る。第1の画像338及び第2の画像340のこの分割は、第2の画像340が第1の画像338内のブロックに対応するブロックを有するように実行され得る。例えば、各画像が4つのブロックを有するように、両方の画像が2×2に分割され得る。この例は、両方の画像が同じサイズを有すると想定している。第1の画像338及び第2の画像340のこの分割は、第1の画像338内の各ブロックが第2の画像340内の対応するブロックを有するようにするものであり得る。
【0073】
画像ストレージスペース336を管理するにあたり、画像管理システム330は、第1の画像338をストレージエリアネットワーク334に記憶し得る。第2の画像340に関し、画像管理システム330は、第2の画像340内のブロックを第1の画像338内の対応するブロックと比較し得る。第2の画像340内のブロックが第1の画像338内の対応するブロックと同じである場合、第2の画像340内の当該ブロックはストレージエリアネットワーク334に保存されない。第2の画像340内のブロックが第1の画像338内の対応するブロックと類似しているが同じではない場合、第2の画像340内の当該ブロックはストレージエリアネットワーク334に保存される。メタデータはまた、第2の画像340について記憶されたブロック及び第1の画像338内の対応するブロックの間の対応関係を識別するために、当該ブロックについて記憶され得る。その結果、十分に類似した互いの重複であり得る画像をハンドリングするにあたり、より少ないストレージスペースが必要とされる。
【0074】
この例において、この分析は第2の画像340について記憶されたブロックを第1の画像338内の対応するブロックにマッピングするための能力を提供する層を有する画像マッピングツリー342を用いることで容易になり得る。その結果、画像332内に類似画像が存在する場合に、画像332を記憶するために画像ストレージスペース336において必要とされるスペースの量が削減され得る。
【0075】
画像ストレージスペース336の使用におけるこの削減は、同じ量のストレージスペースにおいてより多くの画像を記憶するための能力を提供し得る。更に、互いに類似した画像がネットワーク302を介して転送される場合、画像の部分のみを転送するための能力を通じて、画像の転送の速度が向上し得る。
【0076】
画像管理システム330による画像332及びストレージエリアネットワーク334の管理の説明図が、例示的な例に従い、画像332のストレージが管理され得る1つの様式として提示される。この例示は、例の他のリストが実装され得る様式を限定することを意図するものではない。例えば、別の相対的な例において、ストレージエリアネットワーク334の代わりに、サーバコンピュータ304に接続されたソリッドステートディスクドライブが使用され得る。更に、更なる別の例示的な例において、ネットワーク302を通じて分散された複数のストレージコンポーネントは、画像332を記憶し得る。
【0077】
ここで
図4を参照すると、例示的な実施形態による、画像環境のブロック図が示されている。この例示的な例において、画像環境400は、
図3におけるネットワークデータ処理システム300で示されるハードウェアなどのハードウェアにおいて実装され得るコンポーネントを含む。画像管理システム402は、画像環境400において画像404を管理し得る。
【0078】
描写されている通り、画像管理システム402は、コンピュータシステム406及び画像マネージャ408を備える。画像マネージャ408は、コンピュータシステム406内に位置する。
【0079】
この例示的な例において、画像マネージャ408は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの組み合わせにおいて実装され得る。ソフトウェアが使用される場合、画像マネージャ408によって実行される動作は、プロセッサユニットなどのハードウェア上で実行するように構成されたプログラム命令において実装され得る。ファームウェアが使用される場合、画像マネージャ408によって実行される動作は、プログラム命令及びデータにおいて実装され、プロセッサユニット上で実行するように永続メモリに記憶され得る。ハードウェアが採用される場合、ハードウェアは、画像マネージャ408において動作を実行するように動作する回路を含み得る。
【0080】
例示的な例において、ハードウェアは、回路システム、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス、又は複数の動作を実行するように構成された何らかの他の好適なタイプのハードウェアのうちの少なくとも1つから選択される形態を取ることができる。プログラマブルロジックデバイスでは、デバイスは、複数の動作を実行するように構成され得る。デバイスは、後の時間に再構成されてもよく、又は、複数の動作を実行するように恒久的に構成されてもよい。プログラマブルロジックデバイスは、例えば、プログラマブルロジックアレイ、プログラマブルアレイロジック、フィールドプログラマブルロジックアレイ、フィールドプログラマブルゲートアレイ、及び他の好適なハードウェアデバイスを含む。加えて、プロセスは、無機コンポーネントと統合された有機コンポーネントにおいて実装することができ、人間を排除した有機コンポーネントから完全に構成することができる。例えば、プロセスは、有機半導体内の回路として実装され得る。
【0081】
コンピュータシステム406は、物理ハードウェアシステムであり、1つ又は複数のデータ処理システムを含む。1つよりも多くのデータ処理システムがコンピュータシステム406内に存在する場合、それらのデータ処理システムは、通信媒体を用いて互いに通信している。通信媒体は、ネットワークであり得る。データ処理システムは、コンピュータ、サーバコンピュータ、タブレットコンピュータ、又は何らかの他の好適なデータ処理システムのうちの少なくとも1つから選択され得る。
【0082】
描写されている通り、コンピュータシステム406は、例示的な例におけるプロセスを実装するプログラム命令412を遂行することが可能である複数のプロセッサユニット410を含む。本明細書において使用される場合、複数のプロセッサユニット410におけるプロセッサユニットは、ハードウェアデバイスであり、コンピュータを動作させる命令及びプログラムコードに応答してこれらを処理する、集積回路上のものなどのハードウェア回路で構成されている。複数のプロセッサユニット410がプロセスのためのプログラム命令412を遂行する場合、複数のプロセッサユニット410は、同じコンピュータ上又は異なるコンピュータ上にあり得る1つ又は複数のプロセッサユニットである。換言すれば、プロセスは、コンピュータシステム内の同じ又は異なるコンピュータ上におけるプロセッサユニット間で分散され得る。更に、複数のプロセッサユニット410は、同じタイプ又は異なるタイプのプロセッサユニットであり得る。例えば、複数のプロセッサユニットは、シングルコアプロセッサ、デュアルコアプロセッサ、マルチコアプロセッサ、汎用中央処理ユニット(central processing unit:CPU)、グラフィックス処理ユニット(graphics processing unit:GPU)、デジタル信号プロセッサ(digital signal processor:DSP)、又は何らかの他のタイプのプロセッサユニットのうちの少なくとも1つから選択され得る。
【0083】
この例において、画像マネージャ408は、画像マッピングツリー414を使用して、画像404を記憶するためのストレージシステム418内の画像ストレージスペース416を管理する。描写されている通り、ストレージシステム418は、1つ又は複数のストレージデバイスであり得る。例えば、ストレージシステム418は、ネットワークアタッチトストレージ(network attached storage :NAS)、ストレージエリアネットワーク(SAN)、メモリ、ディスクドライブ、ソリッドステート(solid-state:SSD)、ディスクアレイ、又は他のタイプのストレージのうちの少なくとも1つを含み得る。1つよりも多くのストレージコンポーネントが存在する場合、それらのコンポーネントは、通信リンク又はネットワークを通じて互いに接続され得る。
【0084】
例示的な例において、画像マネージャ408は、類似画像グループ422内のベンチマーク画像420を識別する。この例示的な例において、類似画像グループ422は、2つ又はそれより多くの画像404を含む。類似画像グループ422内でベンチマーク画像420として識別されなかった複数の他の画像は、類似画像424のセットである。この変更された例において、類似画像グループ422内の2つ又はそれより多くの画像間でこれらの画像の部分は同じであり得るため、類似画像424のセット内の画像は類似しているとみなされ得る。
【0085】
この変更された例において、複数の類似画像間の最小全体差異に基づき、類似画像グループ422内の複数の類似画像からベンチマーク画像420が判定され得る。この例において、複数の類似画像は、ベンチマーク画像420、及び、類似画像グループ422内の類似画像424のセットを含む。例えば、最小全体差異は、RGBカラーヒストグラム法、キーポイントマッチング法、画像ハッシュ法、ビット計算法、又は他の好適な技法のうちの少なくとも1つを用いることにより判定され得る。
【0086】
画像マネージャ408は、画像マッピングツリー414を作成する。この例示的な例において、画像マッピングツリー414は階層構造である。
【0087】
描写されている通り、画像マッピングツリー414は、ベンチマーク画像420についてのルートブロック428、及び、類似画像424のセットに基づきルートブロック428の下の層432のセット内に配列されたブロック430を有する。この例示的な例において、ブロック430は、ベンチマーク画像420の部分を表す。下位層436内のブロック430内の複数の下位ブロック434は、上位層442内のブロック430内の上位ブロック440内の小区画438に対応する。この例示的な例において、複数の下位ブロック434は、下位層436内にあるブロック430のサブセットであり得る。例えば、上位層442内のブロックが4つの小区画に分割される場合、上位層442内ブロックに対応する複数のブロック430が下位層436内に存在する。各複数のブロック430は、上位層442内の幾つかの対応するブロックを表す。
【0088】
この例示的な例において、ブロック430内の各ブロックは、ベンチマーク画像420の一部又は小区画を表す。下位層内のブロック430は、画像マッピングツリー414内の層432内の上位層内のブロック430と比較して、より高い粒度を有する。換言すれば、下位層436内のブロックは、上位層442内のブロックと比較して、ベンチマーク画像420のより小さい部分に対応する。
【0089】
画像マッピングツリー414を作成するにあたり、画像マネージャ408は、ベンチマーク画像420を分割してベンチマーク画像420内に小区画444を形成する。小区画は、層432内のブロック430に対応し得る。画像マネージャ408は、ルートブロック428の下方の層内に上位ブロック440の上位層442を作成し、その中で、上位ブロック440内の各上位ブロックは、ベンチマーク画像420内の小区画444内の小区画に対応する。
【0090】
画像マネージャ408は、対応する上位ブロック448のセットを形成するために、上位ブロック440内の対応する上位ブロック448とは異なる類似ブロック446を有する類似画像424のセット内の類似画像424の数を判定し得る。画像マネージャ408は、対応する上位ブロック448のセット内の各対応する上位ブロックを小区画438に分割し得る。加えて、画像マネージャ408は、下位ブロック434の下位層436を作成し得、その中で、下位ブロック434内の各下位ブロックは対応する上位ブロック448のセット内の小区画438内の小区画に対応する。
【0091】
上位ブロックを分割することにより形成されるブロック430の数は、分割される上位ブロックに対して類似の上位ブロックを有する類似画像424の数に基づき得る。例えば、分割される上位ブロックが、当該上位ブロックを有する5枚の類似画像を有する場合、上位ブロックは、9つの下位ブロックに分割され得る。別の例として、分割される上位ブロックが、当該上位ブロックを有する2枚の類似画像を有する場合、上位ブロックは、4つの下位ブロックに分割され得る。他の例示的な例において、上位ブロックは、16、25、36、又は何らかの他の数のブロック430に分割され得る。その結果、分割により作成されるブロックの数は、分割される類似の上位ブロックを有する類似画像の数に基づき得る。
【0092】
この例示的な例において、後続の下位層450を作成する場合に、判定する段階、分割する段階、及び作成する段階を実行して後続の下位層450を形成するとき、下位ブロック434は上位ブロック440になる。判定する、分割する、及び作成するこのプロセスが異なる回数にわたり反復されて、後続の下位層を形成し得る。
【0093】
作成される後続の下位層の数は、削減されるストレージ及び使用される処理リソースに基づき得る。下位層の数が増加するにつれて、画像マッピングツリー414までの時間が増加し、ブロックを記憶するために使用されるメタデータのサイズが増加する。これらの要因を使用して、後続の下位層がいくつ作成されるかを判定し得る。追加の下位層を作成することによって画像用のストレージがどれほど削減されるかを、それらの層を作成し、それらの層で画像マッピングツリー414をトラバースし、メタデータを収集及び記憶するために使用される処理リソースの量と対比した考慮事項が、後続の下位層がいくつ使用されるかを判定するために使用され得る。これらのパラメータは、下位層がいくつ作成されるかを判定するための条件を生成するにあたり使用され得る。これらの条件は、例えば、スペースに対する時間の比率、時間の閾値、及び画像マッピングツリー414内の層の最大数についての閾値のうちの少なくとも1つを含む。
【0094】
画像マッピングツリー414を使用して、類似画像424のセットの部分をベンチマーク画像420にマッピングすることができる。例示的な一例において、画像マネージャ408は、ベンチマーク画像420についての画像マッピングツリー414内の対応するブロック454のセットとの差異を有する選択されたブロック452のセットを、類似画像424のセットに記憶し得る。画像全体ではなく、類似画像424からのブロック456が記憶され得る。ブロック456は、ベンチマーク画像420についてのブロック又は小区画444に対応する。換言すれば、ベンチマーク画像420の対応する部分と厳密に同じではない画像の部分が保存される。
【0095】
加えて、画像マネージャ408は、画像マッピングツリー414内の対応するブロック454のセットからルートブロック428への画像マッピングツリー414内のパス460のセットを記述する、選択されたブロック452のセットについてのメタデータ458を記憶する。
【0096】
更に、画像マッピングツリー414を使用して、新たな画像を記憶することができる。例えば、画像マネージャ408は、ベンチマーク画像420についての新たな対応するブロック466のセットとは異なる新たな画像464についての新たなブロック462のセットを画像マッピングツリー414に記憶し得る。加えて、画像マネージャ408は、画像マッピングツリー414内の新たな対応するブロック466のセットから、画像マッピングツリー414内のベンチマーク画像420についてのルートブロック428への新たなパス468のセットを記述する、新たなブロック462のセットについての新たなメタデータ470を記憶し得る。
【0097】
更に、画像マネージャ408は、新たな画像を選択的に記憶し得る。例えば、画像マネージャ408は、新たな画像のセットが画像マッピングツリー414についての画像についての新たな画像閾値未満である場合に、画像マッピングツリー414を用いて新たな画像のセットを記憶し得る。新たな画像のセットが画像マッピングツリー414についての画像の最大閾値を上回る場合、画像マネージャ408は、新たな画像のセットが新たな画像閾値に等しい、又はこれを上回る場合に、新たな画像のセット及び類似画像グループ422内の画像404を用いて画像マッピングツリー414を再作成し得る。
【0098】
例示的な一例において、画像を記憶するときの画像ストレージスペースに関する技術的問題を克服する1つ又は複数の技術的ソリューションが存在する。その結果、1つ又は複数の技術的ソリューションは、互いの重複ではない類似画像を記憶するために必要とされるストレージスペースの量を削減する技術的効果を提供し得る。例示的な一例において、画像及びベンチマーク画像を記憶するために必要とされる画像ストレージスペースが、画像を記憶するための現在の技法と比較して削減されるよう、ベンチマーク画像とは異なる画像の部分を記憶することを可能にする技術的効果を提供する1つ又は複数の技術的ソリューションが存在する。更に、1つ又は複数の技術的ソリューションはまた、画像圧縮技法など画像ストレージスペースの使用を削減するための現在の技法と併せて使用され得る。加えて、1つ又は複数の技術的ソリューションは、必要とされる画像ストレージスペースの量を削減するための技術的効果を提供する。その結果、例示的な実施形態は、画像の部分のみが保存されるように、類似画像のブロック及び当該ブロックについてのメタデータを記憶するための画像マッピングツリーの使用を通じ、類似画像用のストレージを削減することを可能にする技術的効果を提供した。
【0099】
コンピュータシステム406は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの組み合わせを使用して、異なる例示的な例において説明される段階、動作、又は作用のうちの少なくとも1つを実行するように構成され得る。その結果、コンピュータシステム406は、コンピュータシステム406内の画像マネージャ408がディシジョンツリーを用いてストレージスペースを管理し、類似画像をより効率的に記憶することを可能にする専用コンピュータシステムとして動作する。特に、画像マネージャ408は、画像マネージャ408を有しない現在利用可能な汎用コンピュータシステムと比較して、コンピュータシステム406を専用コンピュータシステムに変遷させる。
【0100】
例示的な例において、コンピュータシステム406内の画像マネージャ408の使用は、ベンチマーク画像の対応する部分と類似した類似画像の部分を記憶する一方で、ベンチマーク画像の対応する部分と同じである類似画像の他の部分を記憶しないことを通じて、類似画像がより少ないストレージスペースを用いることを可能にすることにより、コンピュータシステム406の性能を向上させる、画像ストレージスペースを管理するための実際の応用にプロセスを統合する。換言すれば、コンピュータシステム406内の画像マネージャ408は、1つ又は複数の画像マッピングツリーが画像を記憶するコンピュータシステム406内の画像マネージャ408に統合されたプロセスの実際の応用を対象としている。ディシジョンツリーの使用により、ディシジョンツリーが作成された他の画像に類似した画像の部分を記憶することができる。例示的な例において、ディシジョンツリーは、画像マネージャ408が画像の部分についてのブロックを記憶することを可能にする。ディシジョンツリーがより多くの層を有するにつれて、粒度の増加が呈され、その結果、使用される画像ストレージスペースの量がますます節約され得る。
【0101】
この例示的な例において、コンピュータシステム406内の画像マネージャ408は、コンピュータシステム406の性能の向上、及び特に、コンピュータシステム406に画像を記憶するためのストレージスペースの使用率の改善をもたらす様式で、ディシジョンツリーを用いて画像を保存することができる。このようにして、コンピュータシステム406内の画像マネージャ408は、コンピュータシステム406の機能が向上するように画像ストレージスペースを管理するための実際の応用を提供する。
【0102】
図4における画像環境400の説明図は、例示的な実施形態が実装され得る様式に対する物理的又はアーキテクチャ上の制限を示唆することを意図するものではない。示されているものに加えて、又は示されているものの代わりに、他のコンポーネントが用いられ得る。幾つかのコンポーネントは不要であり得る。また、ブロックは、幾つかの機能コンポーネントを示すように提示されている。これらのブロックのうちの1つ又は複数は、例示的な実施形態において実装される場合、組み合わされてもよく、分割されてもよく、又は異なるブロックへと組み合わされ、分割されてもよい。
【0103】
例えば、画像マッピングツリー414に加えて、又はその代わりに、1つ又は複数の画像マッピングツリーが作成され、存在し得る。この例では、異なる画像マッピングツリーが、異なる類似画像グループについての異なるベンチマーク画像を有し得る。このようにして、新たな画像を適切な画像マッピングツリーと照合して、効率を高め、新たな画像を記憶することができる。
【0104】
ここで
図5を参照すると、例示的な実施形態による、類似画像グループの説明図が示されている。例えば、類似画像グループ500は、
図4においてブロック形式で示される類似画像グループ422の例である。この例示的な例において、類似画像グループ500は、ベンチマーク画像502、画像1 504、画像2 506、及び画像3 508の4つの画像を含む。ベンチマーク画像502は、
図4におけるベンチマーク画像420の例である。画像1 504、画像2 506、及び画像3 508は、
図4における類似画像424の例である。
【0105】
描写されている通り、ベンチマーク画像502は、小区画に分割又は細分割され得る。この例において、小区画は、ブロック1 510、ブロック2 512、ブロック3 514、及びブロック4 516の4つのブロックである。この例示的な例において、これらのブロックは、小区画とも称され得る。
【0106】
例示的な例において、画像1 504、画像2 506、及び画像3 508も、これらの画像のどの部分が記憶されるべきであり、どの部分が記憶される必要がないかを判定するための比較用に、ベンチマーク画像502を分割することにより作成されたブロックに対応するブロックに分割される。特定の画像からのブロックがベンチマーク画像502内の対応するブロックとは異なることを判定するために比較が行われる。
【0107】
この例示的な例において、画像1 504は、ブロック1 518、ブロック2 520、ブロック3 522、及びブロック4 524の4つのブロックを有する。描写されている通り、ブロック1 518はブロック1 510に対応し、ブロック2 520はブロック2 512に対応し、ブロック3 522はブロック3 514に対応し、かつブロック4 524はブロック4 516に対応する。
【0108】
この特定の例において、ブロック1 518はブロック1 510と同じであり、ブロック2 520はブロック2 512と同じであり、かつブロック4 524はブロック4 516と同じである。しかしながら、画像1 504及びベンチマーク画像502の間で、ブロック3 522はブロック3 514と同じではない。
【0109】
画像1 504を記憶するにあたり、ブロック1 518、ブロック2 520、及びブロック4 524は、ベンチマーク画像502を細分割することにより作成された対応するブロックと同じであるため、これらのブロックが記憶される必要はない。画像1 504内のブロック3 522は、このブロックがベンチマーク画像502内の対応するブロックであるブロック3 514と同じではないため、記憶される。
【0110】
この例示的な例において、ブロック3 514及びブロック3 522を比較のために更に細分割することによって、画像1 504を記憶するにあたっての更なる節約が実現され得る。この例において、これらのブロックの各々は、対応するブロックが互いに比較される9つのブロックに分割され得る。この比較では、対応するブロック内の画像1 504内のブロック530、ベンチマーク画像502内のブロック532を除き、全てのブロックが同じである。その結果、ブロックのこうした更なる分割が、粒度を増加させ、必要とされるストレージの量を削減する。
【0111】
画像の識別、及び、画像を分割することにより作成されたブロックの形式における小区画の識別は、画像マッピングツリーを用いて管理され得る。この画像マッピングツリーを使用して、ベンチマーク画像502を細分割することにより形成された対応するブロックに対する、記憶されたブロック及び画像のロケーションを識別することができる。
【0112】
この例では、画像2 506内のブロック534が、ロケーションが対応するブロックであるベンチマーク画像502内のブロック535を識別するメタデータと共に保存される。別の例として、ブロック536及びブロック538が画像3 508内に保存される。画像3 508及びベンチマーク画像502の間の対応するボックスのマッピングが提供されると、対応するロケーション、ブロック540、及びブロック542、及びベンチマーク画像502を識別するメタデータが保存される。
【0113】
図6を参照すると、例示的な実施形態による、画像マッピングツリーが示されている。社会的な例において、画像マッピングツリー600は、その
図4においてブロック形式で示された画像マッピングツリー414の例である。画像マッピングツリー600は、
図5における類似画像グループ500を用いて作成され得る。
【0114】
描写されている通り、画像マッピングツリー600は、ルートブロック602及び層604を有する。この例において、層604は、第1の層606及び第2の層608を含む。第1の層606は
図4における上位層442の例であり、第2の層608は
図4における下位層436の例である。
【0115】
各連続層により、画像を細分割するにあたっての追加的な粒度が提供される。例えば、
図5におけるベンチマーク画像502は、画像マッピングツリー600内のルートブロック602についての4つのブロック又は小区画に細分割され得る。4つの小区画へのベンチマーク画像502のこれらの分割は、第1の層606内のブロックで表され得る。描写されている通り、第1の層606はブロック1 610、ブロック2 612、ブロック3 614、及びブロック4 616を含む。これらのブロックの各々は、ルートブロック602内のベンチマーク画像502の小区画に対応する。
【0116】
第2の層608において、第1の層606内のブロックは、第2の層608内のブロックのグループが第1の層606におけるブロック内の小区画に対応するように、追加的な小区画に再び分割され得る。例えば、第1の層606内のブロック1 610は、4つの小区画に分割され得る。ブロック1 610の小区画は、ブロック1 620、ブロック2 622、ブロック3 624、及びブロック4 626を含むブロックのグループとして第2の層608において表される。換言すれば、第2の層608におけるこれら4つのブロックは、ブロック610内に対応する小区画を有する。
【0117】
第1の層606内のブロックについて作成される小区画の数は、同じである必要がある。描写されている通り、ブロック614は、4つの小区画の代わりに9つの小区画に細分割され得る。その結果、ブロック614についてのブロックのグループは、第2の層608内の9つのブロックであり得る。この例において、9つのブロックのうちのわずか1つのブロックであるブロック7 628及び第2の層608が示されている。更に、ブロック2 612及びブロック4 616についてのブロックのグループも、画像マッピングツリー600の本説明図には示されていない。これらの他のブロックは、例示的な例における特徴の説明図及び説明を不明瞭にすることを回避するために、第2の層608においては示されていない。
【0118】
この例において、各レベルでの各ブロックは、上位レベルでの対応するブロックに対するブロックの位置を示す識別子を有する。これらの識別子を使用して、画像用に保存されているブロックからルートブロックへのパスを識別するためのメタデータを生成することができる。これらの識別子及びパスを使用して、画像全体を保存することなく保存されている画像用に保存されたブロックに対応するベンチマーク画像502についての特定のブロックを識別することができる。
【0119】
例えば、ブロック1 610はラベル[4.1]を有し、ブロック2 612はラベル[4.2]を有し、ブロック3 614はラベル[4.3]を有し、かつブロック4 616はラベル[4.4]を有する。別の例として、ブロック7 628はラベル[9.7]を有する。この例において、ラベル内の第1の数は、上位層内のブロックからの小区画が存在することを示す。ラベル内の第2の数は、小区画内のブロックの位置を示す。
【0120】
例えば、
図5において、画像1 504について、画像1 504内のブロック530の位置及びベンチマーク画像502内のこのブロックの位置は、新たなブロック[4.3、9.7]として表され得る。このメタデータは、ブロック7 628からブロック1 614へ、そして次にルートブロック602へのパスを示す。その結果、ブロック530は、この例においてメタデータと共に保存され得、メタデータは、ベンチマーク画像502及び新たなブロック[4.3、9.7]への参照である。
【0121】
次に
図7を参照すると、例示的な実施形態による、画像用に保存されたブロックを記述するために使用されるメタデータが示されている。メタデータ700は、
図4においてブロック形式で示されているメタデータ458の例である。この例示的な例において、メタデータ700は、
図6内の画像マッピングツリー600を用いて
図5内の画像1 504、画像2 506、及び画像3 508を記憶することにより生成される。
【0122】
描写されている通り、メタデータ700は、表702及び表704として編成され得る。表702は、ベンチマーク画像を識別する。表702は、ベンチマーク画像ID706及び画像パス708を含む列を有する。ベンチマーク画像ID706はベンチマーク画像を識別し、画像パス708はベンチマーク画像のロケーションを識別する。
【0123】
例示的な例において、表704は、画像ID710、画像名712、ベンチマークID714、及びパス716を含む列を有する。画像ID710は画像を識別し、画像名712は、保存される画像の名称である。ベンチマークID714は、保存されている画像のベンチマーク画像を識別する。パス716は、画像ID710及び画像名712によって識別される画像用に保存されたブロックから、ベンチマークID714によって識別されるベンチマーク画像へのパスを識別する。このパスは、画像用に保存されたブロックに対応するベンチマーク画像内の小区画の識別を提供する。
【0124】
この例示的な例において、行718は、ベンチマーク画像についてのものである。行720は、
図5内の画像1 504についてのメタデータである。この例において、画像1 520内のブロック530は、このメタデータと共に保存される。行720において、ブロック628からブロック614を通ってルートブロック602に至るパスが、ブロック530の対応関係、ベンチマーク画像502内のブロック535内の小区画についての対応するブロックが識別され得るように識別される。その結果、画像1 520の再構築は、ベンチマーク画像502からの全てのブロックを用いること、及び、ブロック530を、行720内のパスによって識別される位置を用いて、位置及びベンチマーク画像502に挿入することによって行われ得る。
【0125】
描写されている通り、行722は、
図5内の画像2 506についてのものである。この例において、画像2 506内のブロック534は、このメタデータと共に保存され、ブロック620からブロック610を通ってルートブロック602に至るパスを識別する。行722内のこのメタデータは、ベンチマーク画像502、及び、画像2 506用に記憶されたブロック534を用いて画像2 506を再作成することを可能にする。
【0126】
別の例として、行724は、
図5内の画像3 508についてのものである。ブロック536及びブロック538は、画像3 508用に保存される。行724内のメタデータは、これらのブロックと、ベンチマーク画像502内のブロック542内のブロック540との対応関係を記述する。行724内のパスは、画像3 508用に保存されたブロック536及びブロック538を用いてベンチマーク画像502から画像3 508を再構築するために、これらのブロックについての対応するロケーションを知ることを可能にする画像マッピングツリー600内のパスを識別する。
【0127】
表内のメタデータ700の描写は、メタデータ700が実装され得る様式の例として提示されている。別の例示的な例において、メタデータ700は、アレイ、フラットファイル、コンテナ、又は何らかの他の好適なタイプのデータ構造を含む他のタイプのデータ構造を用いて編成され得る。
【0128】
図8において、例示的な実施形態による、画像マッピングツリーへの新たな画像のマッピングが示されている。例示的な例において、同じ参照番号が、1つよりも多くの図において用いられ得る。異なる図における参照番号のこうした再使用は、異なる図における同じ要素を表す。
【0129】
この例において、新たな画像800は12MBのサイズを有し、画像マッピングツリー600を用いて保存され得る。この例において、新たな画像800は画像マッピングツリー600内の第1の層606又は第2の層608のいずれかを用いて保存され得る。第2の層608は粒度の増加を提供し、その結果、より少ないストレージスペースを用いて新たな画像800が記憶される。
【0130】
例えば、第1の層606が使用される場合、新たな画像800の一部のみが保存されるように、第1の層606を用いて生成されたメタデータを有するブロック802及びブロック804が保存され得る。メタデータは、ベンチマーク画像502への参照を含む。メタデータはまた、ブロック802についてのパスが[4.2]であり、ブロック802についてのパスが[4.3]であることを含む。これらのブロックの各々は3MBのサイズであり、これら2つのブロックを保存すると、12MBと比較して6MBのストレージスペースを使用する。
【0131】
第2の層608が使用される場合、ブロック802及びブロック804の代わりにブロック806及びブロック808が保存されるように、新たな画像800は更に細分割され得る。メタデータは、ベンチマーク画像502への参照を含む。メタデータはまた、ブロック806についてのパスが[4.1、4.1]であり、ブロック808についてのパスが[4.4、9.7]であることを含む。この例では、ブロック806は3/4MBであり、ブロック808は3/9MBであり、合計13/12MBとなり、その結果、第1の層606を用いるよりも節約量が増加する。
【0132】
次に
図9を参照すると、例示的な実施形態による、画像ストレージスペースツリーを管理するためのプロセスのフローチャートが示されている。
図9における処理は、ハードウェア、ソフトウェア、又はその両方において実装され得る。ソフトウェアにおいて実装される場合、プロセスは、1つ又は複数のコンピュータシステム内の1つ又は複数のハードウェアデバイス内に位置する1つ又は複数のプロセッサユニットにより実行されるプログラム命令の形態を取り得る。例えば、プロセスは、
図4におけるコンピュータシステム406内の画像マネージャ408において実装され得る。
【0133】
プロセスは、類似画像グループ内のベンチマーク画像を識別することによって開始される(段階900)。段階900において、類似画像グループ内でベンチマーク画像として識別されなかった複数の他の画像は、類似画像のセットである。段階900において、複数の類似画像間の最小全体差異に基づき、複数の類似画像からベンチマーク画像を識別することが実行され得る。例示的な例において、最小全体差異は、RGBカラーヒストグラム法、キーポイントマッチング法、画像ハッシュ法、又はビット計算法のうちの少なくとも1つを用いて判定される。
【0134】
プロセスは、画像マッピングツリーを作成する(段階902)。段階902における画像マッピングツリーは、ベンチマーク画像についてのルートブロック、及び、類似画像のセットに基づきルートブロックの下の層のセット内に配列されたブロックを有する。ブロックは、ベンチマーク画像の部分を表し、下位層内のブロック内の複数の下位ブロックは、上位層内のブロック内の上位ブロック内の小区画に対応する。
【0135】
プロセスは、ベンチマーク画像についての画像マッピングツリー内の対応するブロックのセットとの差異を有する選択されたブロックのセットを、類似画像のセットに記憶する(段階904)。プロセスは、画像マッピングツリー内の対応するブロックのセットからルートブロックへの画像マッピングツリー内のパスのセットを記述する、選択されたブロックのセットについてのメタデータを記憶する(段階906)。プロセスは、その後終了する。メタデータは、選択されたブロックのセットについての画像識別子のセット、ベンチマーク画像への参照、及び画像マッピングツリー内の対応するブロックのセットからルートブロックへの画像マッピングツリー内のパスのセットを有し得る。
【0136】
図10を参照すると、例示的な実施形態による、新たな画像を記憶するためのプロセスのフローチャートが示されている。このフローチャートは、
図9におけるプロセスで実行され得る追加の段階の例である。
【0137】
プロセスは、ベンチマーク画像内の新たな対応するブロックのセットとは異なる新たな画像についての新たなブロックのセットを画像マッピングツリーに記憶する(段階1000)。プロセスは、画像マッピングツリー内の新たな対応するブロックのセットからベンチマーク画像についてのルートブロックへの新たなパスのセットを記述する、新たなブロックのセットについての新たなメタデータを画像マッピングツリーに記憶する(段階1002)。プロセスは、その後終了する。
【0138】
次に
図11を参照すると、例示的な実施形態による、新たな画像のセットを処理するためのプロセスのフローチャートが示されている。このフローチャートは、
図9におけるプロセスで実行され得る追加の段階の例である。
【0139】
プロセスは、新たな画像のセットが画像マッピングツリーについての画像の最大閾値内にある場合に、画像マッピングツリーを用いて新たな画像のセットを記憶する(段階1100)。プロセスは、新たな画像のセットが新たな画像閾値に等しい、又はこれを上回る場合に、新たな画像のセット及び類似画像グループ内の画像を用いて画像マッピングツリーを再作成する(段階1102)。プロセスは、その後終了する。
【0140】
次に
図12を参照すると、例示的な実施形態による、画像マッピングツリーを作成するためのプロセスのフローチャートが示されている。
図12において示されているプロセスは、
図9における段階902で画像マッピングツリーを作成するための一実装形態の例である。
【0141】
プロセスは、ベンチマーク画像を分割して、ベンチマーク画像内に小区画を形成することによって開始される(段階1200)。プロセスは、ルートブロックの下方の層内に上位ブロックの上位層を作成し、その中で、上位ブロック内の各上位ブロックは、ベンチマーク画像内の小区画内の小区画に対応する(段階1202)。プロセスは、その後終了する。
【0142】
図13を参照すると、例示的な実施形態による、画像マッピングツリーを作成するためのプロセスのフローチャートが示されている。
図13において示されているこのプロセスは、画像マッピングツリーを作成するために
図12におけるプロセスで実行され得る追加の段階である。
【0143】
プロセスは、対応する上位ブロックのセットを形成するために、上位ブロック内の対応する上位ブロックとは異なる類似ブロックを有する類似画像のセット内の類似画像の数を判定する(段階1300)。プロセスは、対応する上位ブロックのセット内の各対応する上位ブロックを小区画に分割する(段階1302)。プロセスは、下位ブロックの下位層を作成し、その中で、下位ブロック内の各下位ブロックは対応する上位ブロックのセット内の小区画内の小区画に対応する(段階1304)。
【0144】
別の下位層が形成されることになるかどうかについての判定が行われる(段階1306)。この判定は、任意の数の異なる方法で行われ得る。例えば、判定は、生成されるストレージ及び使用される処理リソースに基づき得る。これらの2つの要因間のバランスが分析され、削減されるストレージが、使用される処理リソースと対比して、画像ディシジョンツリーのために別の層を作成することを正当化するかどうかを判定し得る。
【0145】
画像ディシジョンツリーのために別の下位層が形成されることになる場合、後続の下位層を作成するときの分割のために、下位ブロックは上位ブロックになり、プロセスは次に、段階1300に戻る。再び段階1306を参照すると、別の層が作成されないことになった場合、プロセスは終了する。
【0146】
次に
図14A及び
図14Bを参照すると、例示的な実施形態による、画像マッピングツリーを作成するためのプロセスのフローチャートが示されている。
図14A及び
図14Bにおいて示されているプロセスは、
図9における段階902で画像マッピングツリーを作成するための一実装形態の例である。
【0147】
プロセスは、画像マッピングツリー内のルートノードにベンチマーク画像を設定することによって開始される(段階1402)。プロセスは次に、ベンチマーク画像を小区画に分割する(段階1404)。段階1404で、ベンチマーク画像は4つの小区画に分割され得る。プロセスは次に、ベンチマーク画像内の小区画を用いて画像マッピングツリー内にブロックの第1の層を作成する(段階1406)。段階1406で、各ブロックはベンチマーク画像内の小区画に対応している。例えば、ベンチマーク画像が4つの小区画に分割される場合、ブロックの第1の層内には4つのブロックが存在し、その中で、各ブロックが4つの小区画のうちの1つに対応する。
【0148】
プロセスは次に、処理するためのブロックの第1の層内の未処理のブロックを選択し、当該未処理のブロックについての類似画像カウンタSを0に設定する(段階1408)。プロセスは次に、ベンチマーク画像が識別された類似画像グループ内の未処理の画像を選択する(段階1410)。プロセスは、選択されたブロックを選択された画像内の対応するブロックと比較する(段階1412)。プロセスは、選択された画像内の対応するブロックが選択されたブロックと同じではない場合、選択されたブロックについての類似画像カウンタSをインクリメントする(段階1414)。
【0149】
プロセスは、選択されたブロックについて、類似画像グループ内に別の未処理の画像が存在するかどうかを判定する(段階1416)。この選択されたブロックについて別の未処理の画像が存在する場合、プロセスは次に、段階1410に戻る。そうでなければ、第1の層ブロック内に別の未処理のブロックが存在するかどうかについての判定が行われる(段階1418)。別の未処理のブロックが存在する場合、プロセスは次に、上記で説明された段階1408に戻る。
【0150】
段階1418において、別の未処理のブロックが存在しない場合、プロセスは、処理するための第1の層内の未処理のブロックを選択する(段階1420)。プロセスは、類似画像カウンタSが閾値X未満であるかどうかを判定する(段階1422)。類似画像カウンタSが閾値X未満である場合、プロセスは、選択されたブロックを、ブロックの下位層についての第1の数のブロックに分割する(段階1424)。類似画像カウンタSが閾値Xに等しい、又はこれを上回る場合、プロセスは、選択されたブロックを、ブロックの下位層についての第2の数のブロックに分割する(段階1426)。
【0151】
一例において、ブロックは、第1の数のブロックについて4つのブロックに分割され得る。ブロックは、第2の数のブロックについて9つのブロックに分割され得る。それらの例において、単一のブロック内の全ての小区画は同じサイズである。小区画は全て、ブロック内で同じ寸法を有する。
【0152】
分割のタイプは、特定の実装形態に応じて異なり得る。他の例において、第1の数のブロックは9つのブロックであり得、第2の数のブロックは25個のブロック又は36個のブロック、又は何らかの他の数のブロックであり得る。ブロックの数は、特定の実装形態に応じて異なり得る。他の例示的な例において、単一の数のブロックが使用され得る、又は、3つ又はそれより多くの異なる数のブロックが使用され得る。
【0153】
段階1424又は段階1426において選択されたブロックを分割した後、プロセスは、下位層ブロック内の未処理のブロックを選択し、選択されたブロックを有する類似画像カウンタSを0に等しく設定することに進む(段階1427)。プロセスは、類似画像グループ内の未処理の画像を選択する(段階1428)。
【0154】
プロセスは、選択されたブロックを選択された画像内の対応するブロックと比較する(段階1430)。プロセスは、選択された画像内の対応するブロックが選択されたブロックと同じではない場合、選択されたブロックについての類似画像カウンタSをインクリメントする(段階1432)。
【0155】
プロセスは、選択されたブロックについて、類似画像グループ内に別の未処理の画像が存在するかどうかを判定する(段階1434)。この選択されたブロックについて別の未処理の画像が存在する場合、プロセスは次に、段階1428に戻る。そうでなければ、第1の層ブロック内に別の未処理のブロックが存在するかどうかについての判定が行われる(段階1436)。別の未処理のブロックが存在する場合、プロセスは次に、上記で説明された段階1427に戻る。
【0156】
そうでなければ、別の層を作成するための条件のセットが存在するかどうかについての判定が行われる(段階1438)。別の層を作成するための条件のセットが存在する場合、プロセスは段階1420に戻る。そうでなければ、プロセスは終了し、画像マッピングツリーが完成する。
【0157】
段階1436において、条件のセットは、削減されるストレージの量及び使用される処理リソースの量に基づく1つ又は複数の条件であり得る。これらの要因を使用して、生成されるストレージに対する需要が、別の層を作成するために使用される処理リソースと対比して、当該層を作成することを正当化するかどうかを判定し得る。条件のセットは、画像サイズに対する時間の比率が事前定義された閾値R未満であるかどうか、時間が事前定義された閾値T(ディシジョンツリーを構築するための最大時間)未満であるかどうか、現在の層の数が事前定義された閾値L(最大層数)未満であるかどうか、又は、削減されるストレージの量及び使用される処理リソースの量を考慮した何らかの他の式のうちの少なくとも1つを含み得る。
【0158】
ここで
図15を参照すると、例示的な実施形態による、画像ストレージスペースツリーを管理するためのプロセスのフローチャートが示されている。
図15におけるプロセスは、ハードウェア、ソフトウェア、又はその両方において実装され得る。ソフトウェアにおいて実装される場合、プロセスは、1つ又は複数のコンピュータシステム内の1つ又は複数のハードウェアデバイス内に位置する1つ又は複数のプロセッサユニットにより実行されるプログラム命令の形態を取り得る。例えば、プロセスは、
図4におけるコンピュータシステム406内の画像マネージャ408において実装され得る。
【0159】
プロセスは、ベンチマーク画像についてのルートブロック、及び、類似画像のセットに基づきルートブロックの下の層のセット内に配列されたブロックを有する画像マッピングツリーを用いて、記憶するための新たな画像を受信することによって開始される(段階1500)。段階1500において、ブロックは、ベンチマーク画像の部分を表し、下位層内のブロック内の複数の下位ブロックは、上位層内のブロック内の上位ブロック内の小区画に対応する。
【0160】
プロセスは、対応するブロックのセットとは異なる新たな画像についての新たなブロックのセットを画像マッピングツリーに記憶する(段階1502)。プロセスは、画像マッピングツリー内の対応するブロックのセットからベンチマーク画像についてのルートブロックへの新たなパスのセットを記述する、新たなブロックのセットについての新たなメタデータを画像マッピングツリーに記憶する(段階1504)。プロセスは、その後終了する。
【0161】
ここで
図16A及び
図16Bを参照すると、例示的な実施形態による、新たな画像を処理する画像ストレージスペースツリーを管理するためのプロセスのフローチャートが示されている。
図16A及び
図16Bにおけるプロセスは、ハードウェア、ソフトウェア、又はその両方において実装され得る。ソフトウェアにおいて実装される場合、プロセスは、1つ又は複数のコンピュータシステム内の1つ又は複数のハードウェアデバイス内に位置する1つ又は複数のプロセッサユニットにより実行されるプログラム命令の形態を取り得る。例えば、プロセスは、
図4におけるコンピュータシステム406内の画像マネージャ408において、記憶するために実装され得る。このプロセスは、処理するために受信された各新たな画像について実行され得る。新たな画像は、更なる効率が得られ得るかどうかを判定するために、既に記憶された画像として受信され得る。プロセスはまた、記憶するために受信された新たな画像について実行され得る。
【0162】
プロセスは、処理するための新たな画像を受信することによって開始される(段階1600)。プロセスは、新たな画像についての類似画像グループを識別する(段階1602)。段階1602において、類似画像グループは、新たな画像のセットを異なる類似画像グループ内の画像と比較することによって使用され得る。例えば、最小全体差異は、新たな画像に最も類似している類似画像グループを識別するために使用され得る。単一の類似画像グループのみが存在する場合、当該グループは、段階1602において識別される。
【0163】
プロセスは、新たな画像の数が閾値M未満であるかどうかを判定する(段階1604)。新たな画像の数が閾値Mに等しい、又はこれを上回る場合、新たなベンチマーク画像が識別され、画像マッピングツリーが再作成されて(段階1606)、その後のプロセスが判定される。画像マッピングツリーの再作成は、
図13又は
図14A及び
図14Bにおける段階で実行される。
【0164】
新たな画像の数が新たな画像閾値M未満である場合、プロセスは、処理するための未処理の新たな画像を選択する(段階1607)。プロセスは、識別された類似画像グループについての画像マッピングツリー内の第1の未処理の層を、処理するための層として識別する(段階1608)。第1の未処理の層は、層内のブロック及び画像内の対応するブロックの間で一致が存在するかどうかを判定するために使用されていない、画像マッピングツリー内の第1の層である。
【0165】
プロセスは、層内のベンチマーク画像についての未処理のブロックを選択する(段階1610)。プロセスは、選択されたブロックを新たな画像内の対応するブロックと比較する(段階1612)。選択されたブロックが、新たな画像内の対応するブロックと同じであるかどうかについての判定が行われる(段階1614)。段階1614において、ベンチマーク画像についてのブロック及び新たな画像内の対応するブロックの間で同じであるブロックは、保存される必要がない。
【0166】
選択されたブロックが新たな画像内の対応するブロックと同じではない場合、プロセスは、新たな画像からの対応するブロックを、後に処理するためにアレイAに配置する(段階1616)。換言すれば、選択されたブロック及び対応するブロックの間に1つ又は複数の差異が存在する。対応するブロックを保存するにあたり、メタデータも保存され得る。例えば、ベンチマーク画像を収容するルートブロックへの参照、新たな画像の識別子、及び、選択されたブロックからルート画像へのパスがメタデータとして保存され得る。
【0167】
プロセスは、層内に別のブロックが存在するかどうかを判定する(段階1618)。別のブロックが存在する場合、プロセスは、段階1610に戻る。プロセスはまた、選択されたブロックが対応するブロックと同じである場合に、段階1614から段階1618に進む。
【0168】
そうでなければ、プロセスは、画像マッピングツリー内に別の次の層が存在するかどうかを判定する(段階1620)。別の次の層が存在する場合、プロセスは、処理するための次の層を選択する(段階1622)。
【0169】
プロセスは、次の層からのブロックに対応する未処理のブロックをアレイAから選択する(段階1624)。段階1624において、選択されたブロックは、新たな画像用にアレイAに以前保存されたブロックの小区画である。この段階において、次の層内のブロックとの比較を実行するために、より小さいブロックが選択される。
【0170】
プロセスは、アレイAから選択されたブロックを、次の層内の対応するブロックと比較する(段階1626)。プロセスは、アレイAから選択されたブロックが、次の層からの対応するブロックと同じであるかどうかを判定する(段階1628)。
【0171】
アレイAから選択されたブロックが次の層内の対応するブロックと同じではない場合、プロセスは、新たな画像用にアレイAから選択されたブロックをアレイBに保存する(段階1630)。別の未処理のブロックがアレイA内に存在するかどうかについての判定が行われる(段階1632)。別の未処理のブロックがアレイA内に存在する場合、プロセスは、段階1624に戻る。
【0172】
別の未処理のブロックがアレイA内に存在しない場合、プロセスは、アレイAをクリアして、アレイBのコンテンツをアレイAに記憶する(段階1634)。プロセスは、上記で説明された段階1620に戻る。
【0173】
再び段階1620を参照すると、別の次の層が画像マッピングツリー内に存在しない場合、プロセスは、アレイA内の新たな画像用の任意のブロック、及び、それらのブロックについてのメタデータを記憶する(段階1636)。メタデータは、ベンチマーク画像、及び、ブロックからベンチマーク画像を収容するルートブロックへのパスを識別する情報を識別し得る。プロセスは、新たな画像Cのカウントをインクリメントする(段階1638)。段階1638において、このカウントは、画像マッピングツリーを用いて記憶され得る新たな画像の数をカウントするために使用される。換言すれば、カウンタは、プロセスが終了した後にリセットされるのではなく、画像マッピングツリーを用いる処理のために提示される新たな画像を追跡するためのものである。プロセスは、その後終了する。
【0174】
異なる描写されている実施形態におけるフローチャート及びブロック図は、例示的な実施形態における装置及び方法の幾つかの可能な実装形態のアーキテクチャ、機能及び動作を示す。これに関し、フローチャート又はブロック図における各ブロックは、モジュール、セグメント、機能、又は動作又は段階の一部のうちの少なくとも1つを表し得る。例えば、これらのブロックのうちの1つ又は複数は、プログラム命令、ハードウェア、又はプログラム命令及びハードウェアの組み合わせとして実装され得る。ハードウェアにおいて実装される場合、ハードウェアは、例えば、フローチャート又はブロック図における1つ又は複数の動作を実行するように製造又は構成された集積回路の形態を取り得る。プログラム命令及びハードウェアの組み合わせとして実装される場合、実装形態は、ファームウェアの形態を取り得る。フローチャート又はブロック図における各ブロックは、異なる動作を実行する専用ハードウェアシステム、又は、専用ハードウェア及び専用ハードウェアによって実行されるプログラム命令の組み合わせを使用して実装され得る。
【0175】
例示的な実施形態の幾つかの代替的な実装形態において、ブロックに記される1つ又は複数の機能は、図面に記される順序とは異なる順序で行われ得る。例えば、幾つかの場合において、連続して示される2つのブロックは、関与する機能に応じて、実質的に同時に実行されてもよく、又はこれらのブロックが、場合によっては、逆の順序で実行されてもよい。また、フローチャート又はブロック図において示されるブロックに加えて、他のブロックが追加され得る。
【0176】
ここで
図17を参照すると、例示的な実施形態による、データ処理システムのブロック図が示されている。データ処理システム1700は、
図1におけるクラウドコンピューティングノード110、
図1におけるパーソナルデジタルアシスタント(PDA)又はスマートフォン120A、デスクトップコンピュータ120B、ラップトップコンピュータ120C及び/又は自動車コンピュータシステム120Nを実装するために用いられ得る。データ処理システム1700は、
図2におけるハードウェア及びソフトウェア層202内のコンピュータ並びに
図3におけるサーバコンピュータ304、サーバコンピュータ306、及びクライアントデバイス310を実装するために用いられ得る。データ処理システム1700はまた、
図4におけるコンピュータシステム406を実装するために用いられ得る。この例示的な例において、データ処理システム1700は、プロセッサユニット1704、メモリ1706、永続ストレージ1708、通信ユニット1710、入力/出力(input/output:I/O)ユニット1712、及びディスプレイ1714の間の通信を提供する通信フレームワーク1702を含む。この例において、通信フレームワーク1702は、バスシステムの形態を取る。
【0177】
プロセッサユニット1704は、メモリ1706にロードされ得るソフトウェア用の命令を遂行するように機能する。プロセッサユニット1704は、1つ又は複数のプロセッサを含む。例えば、プロセッサユニット1704は、マルチコアプロセッサ、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、物理処理ユニット(PPU)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、又は何らかの他の好適なタイプのプロセッサのうちの少なくとも1つから選択され得る。更に、プロセッサユニット1704は、単一のチップ上に主プロセッサが二次プロセッサと共に存在する1つ又は複数の異種混交プロセッサシステムを使用して実装され得る。別の例示的な例として、プロセッサユニット1704は、単一のチップ上の同じタイプの複数のプロセッサを収容する対称的なマルチプロセッサシステムであり得る。
【0178】
メモリ1706及び永続ストレージ1708は、ストレージデバイス1716の例である。ストレージデバイスは、例えば、限定されることなく、データ、機能的形式におけるプログラム命令、又は他の好適な情報のうちの少なくとも1つなどの情報を、一時的に、永久的に、のいずれか、又は一時的に、及び永久的に、の両方で記憶することが可能な任意の個数のハードウェアである。これらの例示的な例において、ストレージデバイス1716は、コンピュータ可読ストレージデバイスとも称され得る。これらの例におけるメモリ1706は、例えば、ランダムアクセスメモリ又は任意の他の好適な揮発性又は不揮発性ストレージデバイスであり得る。永続ストレージ1708は、特定の実装形態に応じて、様々な形態を取り得る。
【0179】
例えば、永続ストレージ1708は、1つ又は複数のコンポーネント又はデバイスを収容し得る。例えば、永続ストレージ1708は、ハードドライブ、ソリッドステートドライブ(SSD)、フラッシュメモリ、書き換え可能光ディスク、書き換え可能磁気テープ又は上述のものの何らかの組み合わせであり得る。永続ストレージ1708により用いられる媒体は、リムーバブルであってもよい。例えば、リムーバブルハードドライブが、永続ストレージ1708のために用いられ得る。
【0180】
これらの例示的な例における通信ユニット1710は、他のデータ処理システム又はデバイスとの通信を提供する。これらの例示的な例において、通信ユニット1710は、ネットワークインタフェースカードである。
【0181】
入力/出力ユニット1712は、データ処理システム1700に接続され得る他のデバイスとの間のデータの入力及び出力を可能にする。例えば、入力/出力ユニット1712は、キーボード、マウス又は何らかの他の好適な入力デバイスのうちの少なくとも1つを通じて、ユーザ入力のための接続を提供し得る。更に、入力/出力ユニット1712は、出力をプリンタに送信し得る。ディスプレイ1714は、情報をユーザに対して表示するためのメカニズムを提供する。
【0182】
オペレーティングシステム、アプリケーション、又はプログラムのうちの少なくとも1つのための命令は、通信フレームワーク1702を通じてプロセッサユニット1704と通信するストレージデバイス1716内に位置し得る。異なる実施形態のプロセスは、メモリ1706などのメモリ内に位置し得るコンピュータ実装命令を用いて、プロセッサユニット1704により実行され得る。
【0183】
これらの命令は、プロセッサユニット1704内のプロセッサにより読み取られて遂行され得るプログラム命令、コンピュータ使用可能プログラム命令、又はコンピュータ可読プログラム命令と称される。異なる実施形態におけるプログラム命令は、メモリ1706又は永続ストレージ1708など、異なる物理ストレージ媒体又はコンピュータ可読ストレージ媒体上で具現化され得る。
【0184】
プログラム命令1718は、選択的にリムーバブルであり、かつ、プロセッサユニット1704による遂行のためにデータ処理システム1700上へロード又は転送され得るコンピュータ可読媒体1720上に機能的形式で位置する。これらの例示的な例において、プログラム命令1718及びコンピュータ可読媒体1720は、コンピュータプログラム製品1722を形成する。例示的な例において、コンピュータ可読媒体1720は、コンピュータ可読ストレージ媒体1724である。
【0185】
コンピュータ可読ストレージ媒体1724は、プログラム命令1718を伝搬又は伝送する媒体ではなく、プログラム命令1718を記憶するために用いられる物理的な又は有形のストレージデバイスである。本明細書において使用される場合、コンピュータ可読ストレージ媒体1724は、電波又は他の自由に伝搬する電磁波、導波路又は他の伝送媒体を通して伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は、ワイヤを通して伝送される電気信号などの一時的な信号自体として解釈されないものとする。
【0186】
代替的に、プログラム命令1718は、コンピュータ可読信号媒体を用いてデータ処理システム1700に転送され得る。コンピュータ可読信号媒体は、信号であり、例えば、プログラム命令1718を収容する、伝搬されるデータ信号であり得る。例えば、コンピュータ可読信号媒体は、電磁信号、光信号、又は任意の他の好適なタイプの信号のうちの少なくとも1つであり得る。これらの信号は、無線接続、光ファイバケーブル、同軸ケーブル、ワイヤ又は任意の他の好適なタイプの接続など、接続を介して伝送され得る。
【0187】
更に、本明細書において使用される場合、「コンピュータ可読媒体1720」は、単数又は複数であり得る。例えば、プログラム命令1718は、単一のストレージデバイス又はストレージシステムの形態で、コンピュータ可読媒体1720内に位置し得る。別の例において、プログラム命令1718は、複数のデータ処理システムに分散されたコンピュータ可読媒体1720内に位置し得る。換言すれば、プログラム命令1718内の幾つかの命令が、1つのデータ処理システム内に位置し得る一方で、プログラム命令1718内の他の命令は、1つのデータ処理システム内に位置し得る。例えば、プログラム命令1718の一部は、サーバコンピュータにおけるコンピュータ可読媒体1720内に位置し得る一方で、プログラム命令1718の別の一部は、クライアントコンピュータのセット内に位置するコンピュータ可読媒体1720内に位置し得る。
【0188】
データ処理システム1700用に示されている異なるコンポーネントは、異なる実施形態が実装され得る様式に対するアーキテクチャ上の制限を設けることを意図するものではない。幾つかの例示的な例において、コンポーネントのうちの1つ又は複数は、別のコンポーネントに組み込まれてもよく、又はそうでなければ、別のコンポーネントの一部を形成してもよい。例えば、メモリ1706又はその部分は、幾つかの例示的な例において、プロセッサユニット1704に組み込まれ得る。異なる例示的な実施形態は、データ処理システム1700用に示されているものに加えて、又はそれらの代わりにコンポーネントを含むデータ処理システムにおいて実装され得る。
図17に示される他のコンポーネントは、示される例示的な例から変更され得る。異なる実施形態は、プログラム命令1718を実行することが可能な任意のハードウェアデバイス又はハードウェアシステムを用いて実装され得る。
【0189】
そのため、本発明の例示的な実施形態は、画像ストレージスペースを管理するためのコンピュータ実装方法、コンピュータシステム、及びコンピュータプログラム製品を提供する。複数のプロセッサユニットが、類似画像グループ内のベンチマーク画像を識別する。類似画像グループ内でベンチマーク画像として識別されなかった複数の他の画像は、類似画像のセットである。複数のプロセッサユニットが、画像マッピングツリーを作成する。画像マッピングツリーは、ベンチマーク画像についてのルートブロック、及び、類似画像のセットに基づきルートブロックの下の層のセット内に配列されたブロックを有し;ブロックは、ベンチマーク画像の部分を表し;及び、下位層内のブロック内の複数の下位ブロックは、上位層内のブロック内の上位ブロック内の小区画に対応する。複数のプロセッサユニットは、ベンチマーク画像についての画像マッピングツリー内の対応するブロックのセットとの差異を有する選択されたブロックのセットを、類似画像のセットに記憶する。複数のプロセッサユニットは、画像マッピングツリー内の対応するブロックのセットからルートブロックへの画像マッピングツリー内のパスのセットを記述する、選択されたブロックのセットについてのメタデータを記憶する。
【0190】
その結果、例示的な実施形態は、類似画像の部分を記憶することを通じて、必要とされる画像ストレージスペースの量を削減することにより、コンピュータシステムにおける性能を向上させる技術的効果を提供し得る。1つ又は複数の例示的な例において、画像マッピングツリーは、ベンチマーク画像内のブロックに類似した画像内のブロックを識別するために使用される。これらのブロックは、ベンチマーク画像を識別するメタデータ及びベンチマーク画像へのパスと共に、画像マッピングツリーに保存される。その結果、この画像マッピングツリーの使用を通じてベンチマーク画像内の対応するブロックと同じ又は同一ではない画像内の保存ブロックを識別する一方で、画像及びベンチマーク画像内の対応するブロックの間で同じであるブロックを保存しないことで、画像を保存するために必要とされるストレージスペースの量を削減することができる。
【0191】
その結果、1つ又は複数の例示的な例は、画像マッピングツリーを採用して、画像を記憶するための現在の技法に対する改善により、画像を記憶するために必要とされるストレージの量を削減することができる。画像マッピングツリーを用いて画像を記憶することによって、画像が転送され得る速度が向上し得るのみならず、ストレージスペースの量が削減され得る。更に、もう一回分の例を使用して、プロセッサリソースの使用に対する効率の向上及びストレージの増加のバランスをとり、最適なストレージソリューションを得ることができる。
【0192】
異なる例示的な実施形態の説明は、例示及び説明の目的で提示されており、包括的であること、又は、開示された形態における実施形態に限定されることを意図するものではない。異なる例示的な例は、作用又は動作を実行するコンポーネントについて説明している。例示的な実施形態において、コンポーネントは、説明された作用又は動作を実行するように構成され得る。例えば、コンポーネントは、コンポーネントによって実行されるものとして例示的な例において説明されている作用又は動作を実行する能力をコンポーネントに提供する構造用の構成又は設計を有することができる。更に、「含む(includes)」、「含む(including)」、「有する(has)」、「収容する(contains)」という用語及びそれらの変形が本明細書において用いられる範囲において、そのような用語は、任意の追加の又は他の要素を除外することなく、開放型転換語としての「備える(comprises)」という用語と同様の様式で包括的であることが意図されている。
【0193】
本発明の様々な実施形態の説明は例示の目的で提示されており、包括的であること、又は、開示された実施形態に限定されることを意図するものではない。実施形態の全てが、例示的な例において説明されている特徴の全てを含むわけではない。更に、異なる例示的な実施形態は、他の例示的な実施形態と比較して異なる特徴を提供し得る。説明された実施形態の範囲から逸脱することなく、多くの修正及び変形が当業者には明らかであろう。本明細書において使用される専門用語は、実施形態の原理、実際の応用又は市場で見られる技術に対する技術的改善を最も良好に説明し、又は、ここで開示された実施形態を他の当業者が理解することを可能にするように選択されている。
【手続補正書】
【提出日】2024-05-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
複数のプロセッサユニットが、類似画像グループ内のベンチマーク画像を識別する段階、ここで前記類似画像グループ内で前記ベンチマーク画像として識別されなかった複数の他の画像は、類似画像のセットである;
前記複数のプロセッサユニットが、画像マッピングツリーを作成する段階、ここで前記画像マッピングツリーは、前記ベンチマーク画像についてのルートブロック、及び、類似画像の前記セットに基づき前記ルートブロックの下の層のセット内に配列されたブロックを有し;前記ブロックは、前記ベンチマーク画像の部分を表し;及び、下位層内の前記ブロック内の複数の下位ブロックは、上位層内の前記ブロック内の上位ブロック内の小区画に対応する;及び
前記複数のプロセッサユニットが、前記ベンチマーク画像についての画像マッピングツリー内の対応するブロックのセットとの差異を有する選択されたブロックのセットを、類似画像の前記セットに記憶する段階;及び
前記複数のプロセッサユニットが、前記画像マッピングツリー内の対応するブロックの前記セットから前記ルートブロックへの前記画像マッピングツリー内のパスのセットを記述する、選択されたブロックの前記セットについてのメタデータを記憶する段階
を備える、画像ストレージスペースを管理するためのコンピュータ実装方法。
【請求項2】
前記複数のプロセッサユニットが、前記ベンチマーク画像内の新たな対応するブロックのセットとは異なる新たな画像についての新たなブロックのセットを前記画像マッピングツリーに記憶する段階;及び
前記複数のプロセッサユニットが、前記画像マッピングツリー内の新たな対応するブロックの前記セットから前記ベンチマーク画像についての前記ルートブロックへの新たなパスのセットを記述する、新たなブロックの前記セットについての新たなメタデータを前記画像マッピングツリーに記憶する段階
を更に備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記複数のプロセッサユニットが、新たな画像の前記セットが前記画像マッピングツリーについての画像の最大閾値内にある場合に、前記画像マッピングツリーを用いて新たな画像のセットを記憶する段階
を更に備える、請求項
1又は2に記載のコンピュータ実装方法。
【請求項4】
前記複数のプロセッサユニットが、前記新たな画像のセットが新たな画像閾値に等しい、又はこれを上回る場合に、前記新たな画像のセット及び前記類似画像グループ内の画像を用いて前記画像マッピングツリーを再作成する段階
を更に備える、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記複数のプロセッサユニットが、前記類似画像グループについての前記画像マッピングツリーを作成する段階は:
前記複数のプロセッサユニットが、前記ベンチマーク画像を分割して前記ベンチマーク画像内に小区画を形成する段階;及び
前記ルートブロックの下方の層内に上位ブロックの上位層を作成する段階、その中で、前記上位ブロック内の各上位ブロックは、前記ベンチマーク画像内の前記小区画内の小区画に対応する
を有する、請求項
1又は2に記載のコンピュータ実装方法。
【請求項6】
前記複数のプロセッサユニットが、前記類似画像グループについての前記画像マッピングツリーを作成する段階は:
前記複数のプロセッサユニットが、対応する上位ブロックのセットを形成するために、前記上位ブロック内の対応する上位ブロックとは異なる類似ブロックを有する類似画像の前記セット内の類似画像の数を判定する段階;
前記複数のプロセッサユニットが、対応する上位ブロックのセット内の各対応する上位ブロックを前記小区画に分割する段階;及び
前記複数のプロセッサユニットが、下位ブロックの下位層を作成する段階、その中で、前記下位ブロック内の各下位ブロックは、対応する上位ブロックの前記セット内の前記小区画内の前記小区画に対応する
を更に有する、請求項5に記載のコンピュータ実装方法。
【請求項7】
後続の下位層を作成するときの分割のために、前記下位ブロックは前記上位ブロックになり、
前記複数のプロセッサユニットが、前記判定する段階、分割する段階、及び作成する段階を反復して前記後続の下位層を形成する段階
を更に有する、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記複数のプロセッサユニットが、前記判定する段階、分割する段階、及び作成する段階を反復して、削減されるストレージ及び使用される処理リソースに基づき、別の下位層を形成する段階
を更に有する、請求項6に記載のコンピュータ実装方法。
【請求項9】
上位ブロックを分割することにより形成される前記下位ブロックの数は、分割される前記上位ブロックについての前記類似ブロックを有する類似画像の前記数に基づいている、請求項6に記載のコンピュータ実装方法。
【請求項10】
前記メタデータは、選択されたブロックの前記セットについての画像識別子のセット、前記ベンチマーク画像への参照、及び前記画像マッピングツリー内の対応するブロックの前記セットから前記ルートブロックへの前記画像マッピングツリー内のパスの前記セットを有する、請求項
1又は2に記載のコンピュータ実装方法。
【請求項11】
前記複数のプロセッサユニットが、前記類似画像グループ内の前記ベンチマーク画像を識別する段階は:
前記複数のプロセッサユニットが、複数の類似画像間の最小全体差異に基づき、前記複数の類似画像から前記ベンチマーク画像を識別する段階
を有する、請求項
1又は2に記載のコンピュータ実装方法。
【請求項12】
前記最小全体差異は、RGBカラーヒストグラム法、キーポイントマッチング法、画像ハッシュ法、又はビット計算法のうちの少なくとも1つを用いて判定される、請求項11に記載のコンピュータ実装方法。
【請求項13】
複数のプロセッサユニットが、ベンチマーク画像についてのルートブロック、及び、類似画像のセットに基づき前記ルートブロックの下の層のセット内に配列されたブロックを有する画像マッピングツリーを用いて、記憶するための新たな画像を受信する段階;ここで前記ブロックは、前記ベンチマーク画像の部分を表し、下位層内の前記ブロック内の複数の下位ブロックは、上位層内の前記ブロック内の上位ブロック内の小区画に対応する;
前記複数のプロセッサユニットが、前記画像マッピングツリー内の対応するブロックのセットとは異なる、前記新たな画像についての新たなブロックのセットを記憶する段階;及び
前記複数のプロセッサユニットが、前記画像マッピングツリー内の対応するブロックの前記セットから、前記ベンチマーク画像についての前記ルートブロックへの新たなパスのセットを記述する、新たなブロックの前記セットについての新たなメタデータを画像マッピングツリーに記憶する段階
を備える、画像ストレージスペースを管理するためのコンピュータ実装方法。
【請求項14】
複数のプロセッサユニットを備えるコンピュータシステムであって、前記複数のプロセッサユニットは:
前記複数のプロセッサユニットが、類似画像グループ内のベンチマーク画像を識別する手順、ここで前記類似画像グループ内で前記ベンチマーク画像として識別されなかった複数の他の画像は、類似画像のセットである;
前記複数のプロセッサユニットが、画像マッピングツリーを作成する手順、ここで前記画像マッピングツリーは、前記ベンチマーク画像についてのルートブロック、及び、類似画像の前記セットに基づき前記ルートブロックの下の層のセット内に配列されたブロックを有し;前記ブロックは、前記ベンチマーク画像の部分を表し;及び、下位層内の前記ブロック内の複数の下位ブロックは、上位層内の前記ブロック内の上位ブロック内の小区画に対応する;及び
前記複数のプロセッサユニットが、前記ベンチマーク画像についての画像マッピングツリー内の対応するブロックのセットとの差異を有する選択されたブロックのセットを、類似画像の前記セットに記憶する手順;及び
前記複数のプロセッサユニットが、前記画像マッピングツリー内の対応するブロックの前記セットから前記ルートブロックへの前記画像マッピングツリー内のパスのセットを記述する、選択されたブロックの前記セットについてのメタデータを記憶する手順
の前記手順を実行するためのプログラム命令を遂行する、コンピュータシステム。
【請求項15】
前記複数のプロセッサユニットが、前記ベンチマーク画像内の新たな対応するブロックのセットとは異なる新たな画像についての新たなブロックのセットを前記画像マッピングツリーに記憶する手順;及び
前記複数のプロセッサユニットが、前記画像マッピングツリー内の新たな対応するブロックの前記セットから前記ベンチマーク画像についての前記ルートブロックへの新たなパスのセットを記述する、新たなブロックの前記セットについての新たなメタデータを前記画像マッピングツリーに記憶する手順
を更に備える、請求項14に記載のコンピュータシステム。
【請求項16】
前記複数のプロセッサユニットが、新たな画像の前記セットが前記画像マッピングツリーについての画像の最大閾値内にある場合に、前記画像マッピングツリーを用いて新たな画像のセットを記憶する手順
を更に備える、請求項1
4又は15に記載のコンピュータシステム。
【請求項17】
前記複数のプロセッサユニットが、前記新たな画像のセットが新たな画像閾値に等しい、又はこれを上回る場合に、前記新たな画像のセット及び前記類似画像グループ内の画像を用いて前記画像マッピングツリーを再作成する手順
を更に備える、請求項16に記載のコンピュータシステム。
【請求項18】
前記複数のプロセッサユニットが、前記類似画像グループについての前記画像マッピングツリーを作成する手順は:
前記複数のプロセッサユニットが、前記ベンチマーク画像を分割して前記ベンチマーク画像内に小区画を形成する手順;及び
前記ルートブロックの下方の層内に上位ブロックの上位層を作成する手順、その中で、前記上位ブロック内の各上位ブロックは、前記ベンチマーク画像内の前記小区画内の小区画に対応する
を有する、請求項1
4又は15に記載のコンピュータシステム。
【請求項19】
前記複数のプロセッサユニットが、前記類似画像グループについての前記画像マッピングツリーを作成する手順は:
前記複数のプロセッサユニットが、対応する上位ブロックのセットを形成するために、前記上位ブロック内の対応する上位ブロックとは異なる類似ブロックを有する類似画像の前記セット内の類似画像の数を判定する手順;
前記複数のプロセッサユニットが、対応する上位ブロックのセット内の各対応する上位ブロックを前記小区画に分割する手順;及び
下位ブロックの下位層を作成する手順、その中で、前記下位ブロック内の各下位ブロックは、対応する上位ブロックの前記セット内の前記小区画内の前記小区画に対応する
を更に有する、請求項18に記載のコンピュータシステム。
【請求項20】
後続の下位層を作成するときの分割のために、前記下位ブロックは前記上位ブロックになり、
前記複数のプロセッサユニットが、前記判定する手順、分割する手順、及び作成する手順を反復して前記後続の下位層を形成する手順
を更に有する、請求項19に記載のコンピュータシステム。
【請求項21】
前記複数のプロセッサユニットが、前記判定する手順、分割する手順、及び作成する手順を反復して、削減されるストレージ及び使用される処理リソースに基づき、別の下位層を形成する手順
を更に有する、請求項19に記載のコンピュータシステム。
【請求項22】
上位ブロックを分割することにより形成される前記下位ブロックの数は、分割される前記上位ブロックについての前記類似ブロックを有する類似画像の前記数に基づいている、請求項19に記載のコンピュータシステム。
【請求項23】
前記メタデータは、選択されたブロックの前記セットについての画像識別子のセット、前記ベンチマーク画像への参照、及び前記画像マッピングツリー内の対応するブロックの前記セットから前記ルートブロックへの前記画像マッピングツリー内のパスの前記セットを有する、請求項1
4又は15に記載のコンピュータシステム。
【請求項24】
複数のプロセッサユニットを備えるコンピュータシステムであって、前記複数のプロセッサユニットは:
ベンチマーク画像についてのルートブロック、及び、類似画像のセットに基づき前記ルートブロックの下の層のセット内に配列されたブロックを有する画像マッピングツリーを用いて、記憶するための新たな画像を受信する;ここで前記ブロックは、前記ベンチマーク画像の部分を表し、下位層内の前記ブロック内の複数の下位ブロックは、上位層内の前記ブロック内の上位ブロック内の小区画に対応する;
前記画像マッピングツリー内の対応するブロックのセットとは異なる、前記新たな画像についての新たなブロックのセットを記憶する;及び
前記画像マッピングツリー内の対応するブロックの前記セットから、前記ベンチマーク画像についての前記ルートブロックへの新たなパスのセットを記述する、新たなブロックの前記セットについての新たなメタデータを画像マッピングツリーに記憶する
ためのプログラム命令を遂行する、コンピュータシステム。
【請求項25】
画像ストレージスペースを管理するためのコンピュータプログラ
ムであって
、コンピュータシステムに
:
類似画像グループ内のベンチマーク画像を識別する手順、ここで前記類似画像グループ内で前記ベンチマーク画像として識別されなかった複数の他の画像は、類似画像のセットである
;
画像マッピングツリーを作成する手順、ここで前記画像マッピングツリーは、前記ベンチマーク画像についてのルートブロック、及び、類似画像の前記セットに基づき前記ルートブロックの下の層のセット内に配列されたブロックを有し;前記ブロックは、前記ベンチマーク画像の部分を表し;及び、下位層内の前記ブロック内の複数の下位ブロックは、上位層内の前記ブロック内の上位ブロック内の小区画に対応する;及
び
前記ベンチマーク画像についての画像マッピングツリー内の対応するブロックのセットとの差異を有する選択されたブロックのセットを、類似画像の前記セットに記憶する手順;及
び
前記画像マッピングツリー内の対応するブロックの前記セットから前記ルートブロックへの前記画像マッピングツリー内のパスのセットを記述する、選択されたブロックの前記セットについてのメタデータを記憶する手
順
を実行させるた
めのコンピュータプログラ
ム。
【国際調査報告】