IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7345652点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス
<>
  • 特許-点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス 図1
  • 特許-点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス 図2A
  • 特許-点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス 図2B
  • 特許-点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス 図3
  • 特許-点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス 図4
  • 特許-点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス 図5
  • 特許-点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス 図6
  • 特許-点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-07
(45)【発行日】2023-09-15
(54)【発明の名称】点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス
(51)【国際特許分類】
   G06T 9/40 20060101AFI20230908BHJP
【FI】
G06T9/40
【請求項の数】 15
(21)【出願番号】P 2022527931
(86)(22)【出願日】2021-05-13
(65)【公表番号】
(43)【公表日】2023-02-10
(86)【国際出願番号】 US2021032210
(87)【国際公開番号】W WO2021247216
(87)【国際公開日】2021-12-09
【審査請求日】2022-06-13
(31)【優先権主張番号】63/034,113
(32)【優先日】2020-06-03
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/066,103
(32)【優先日】2020-08-14
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/314,843
(32)【優先日】2021-05-07
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャン,シャン
(72)【発明者】
【氏名】ガオ,ウェン
(72)【発明者】
【氏名】リウ,シャン
【審査官】松永 隆志
(56)【参考文献】
【文献】国際公開第2019/240285(WO,A1)
【文献】米国特許出願公開第2019/0385355(US,A1)
【文献】中国特許出願公開第108920574(CN,A)
【文献】中国特許出願公開第108961390(CN,A)
【文献】国際公開第2020/70191(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00-19/20
(57)【特許請求の範囲】
【請求項1】
プロセッサが実行できる点群データをデコーディングする方法であって、
点群に対応するデータを受信するステップと、
現在のノードに関連付けられた1つ又は複数の隣接ノードに対応するハッシュ要素を認識するステップと、
前記ハッシュ要素のうち、前記1つ又は複数の隣接ノードの非辺縁領域に対応する1つ又は複数のハッシュ要素の削除に基づいて、ハッシュテーブルのサイズを減少するステップと、
サイズが減少された前記ハッシュテーブルに基づいて、前記点群に対応する前記データをデコーディングするステップとを含む、方法。
【請求項2】
前記点群に対応する前記データに対して、前記ハッシュテーブルの最大サイズを定義する、請求項1に記載の方法。
【請求項3】
前記最大サイズは、シーケンスパラメータセット、幾何学的パラメータセット又はスライスヘッダーにシグナリングされる、請求項2に記載の方法。
【請求項4】
前記ハッシュテーブルが前記最大サイズに達したことに基づいて、前記ハッシュテーブルから一部の要素を除去することで、前記ハッシュテーブルを減少する、請求項2に記載の方法。
【請求項5】
前記ハッシュ要素に関連付けられたモートン順序に基づいて、前記ハッシュテーブルを減少する、請求項1に記載の方法。
【請求項6】
前記1つ又は複数の隣接ノードに関連付けられた境界サイズは、シーケンスパラメータセット、幾何学的パラメータセット又はスライスヘッダーにシグナリングされる、請求項1に記載の方法。
【請求項7】
使用されていない親レベルのコンテキスト情報に基づいて、前記ハッシュテーブルを減少する、請求項1に記載の方法。
【請求項8】
点群データをデコーディングするためのコンピュータシステムであって、
コンピュータプログラムコードを記憶するように構成される1つ又は複数のコンピュータ読み取り可能な非一時記憶媒体と、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードの指示に従って動作するように構成される1つ又は複数のコンピュータプロセッサと、を含み、
前記コンピュータプログラムコードは、
前記1つ又は複数のコンピュータプロセッサに、点群に対応するデータを受信させるように構成される受信コードと、
前記1つ又は複数のコンピュータプロセッサに、現在のノードに関連付けられた1つ又は複数の隣接ノードに対応するハッシュ要素を認識させるように構成される認識コードと、
前記1つ又は複数のコンピュータプロセッサに、前記ハッシュ要素のうち、前記1つ又は複数の隣接ノードの非辺縁領域に対応する1つ又は複数のハッシュ要素の削除に基づいて、ハッシュテーブルのサイズを減少させるように構成される減少コードと、
前記1つ又は複数のコンピュータプロセッサに、サイズが減少された前記ハッシュテーブルに基づいて、前記点群に対応する前記データをデコーディングさせるように構成されるデコーディングコードとを含む、コンピュータシステム。
【請求項9】
前記点群に対応する前記データに対して、前記ハッシュテーブルの最大サイズを定義する、請求項8に記載のコンピュータシステム。
【請求項10】
前記最大サイズは、シーケンスパラメータセット、幾何学的パラメータセット又はスライスヘッダーにシグナリングされる、請求項9に記載のコンピュータシステム。
【請求項11】
前記ハッシュテーブルが前記最大サイズに達したことに基づいて、前記ハッシュテーブルから一部の要素を除去することで、前記ハッシュテーブルを減少する、請求項9に記載のコンピュータシステム。
【請求項12】
前記ハッシュ要素に関連付けられたモートン順序に基づいて、前記ハッシュテーブルを減少する、請求項8に記載のコンピュータシステム。
【請求項13】
前記1つ又は複数の隣接ノードに関連付けられた境界サイズは、シーケンスパラメータセット、幾何学的パラメータセット又はスライスヘッダーにシグナリングされる、請求項8に記載のコンピュータシステム。
【請求項14】
使用されていない親レベルのコンテキスト情報に基づいて、前記ハッシュテーブルを減少する、請求項8に記載のコンピュータシステム。
【請求項15】
1つ又は複数のコンピュータプロセッサに、請求項1乃至6のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は2021年5月7日に出願された米国特許出願第17/314,843号の優先権を主張し、当該米国特許出願は2020年6月3日に出願された米国仮出願第63/034,113号、及び2020年8月14日に出願された米国仮出願第63/066,103号の優先権を主張し、その全ての内容は本明細書に援用される。
【0002】
[技術分野]
本開示の内容は、一般的に、データ処理の分野に関し、より具体的に、点群(point clouds)に関する。
【背景技術】
【0003】
近年、点群コーディングは広く使用されている。点群コーディングは、例えば、自動運転車両において、オブジェクト検出及び位置決めに用いられ、さらに地理情報システム(GIS,geographic information system)において、描画に用いられ、及び文化遺産において、文化遺産オブジェクト及び収蔵などを可視化及びアーカイブするために用いられる。点群は高次元点のセットを含み、一般的に3次元(3D,three dimensional)であり、各高次元点は3D位置情報、及び色、反射率などの付加的な属性を含む。これらの高次元点は、複数のカメラ及び深度センサー、又は様々な装置におけるレーザーレーダーによってキャプチャされ、数千から数十億の点から構成されることで、元のシーンをリアルに表示する。伝送を高速化したり、ストレージを削減したりするために、圧縮技術で点群を表示するために必要なデータ量を削減する。ISO/IEC MPEG(JTC 1/SC 29/WG 11)は、静的又は動的点群圧縮技術を標準化するためのアドホック(ad-hoc)グループ(MPEG-PCC)を既に作成した。
【発明の概要】
【0004】
実施形態は、点群データをデコーディングするための方法、システム及びコンピュータ読み取り可能な媒体に関する。1つの態様によれば、点群データをデコーディングするための方法を提供する。当該方法は点群に対応するデータを受信するステップを含み得る。現在のノードと関連付けられた1つ又は複数の隣接ノードに対応するハッシュ要素を認識する。ハッシュ要素のうち、1つ又は複数の隣接ノードの非辺縁領域に対応する1つ又は複数のハッシュ要素を削除することで、ハッシュテーブルのサイズを減少する。サイズが減少されたハッシュテーブルに基づいて、点群に対応するデータをデコーディングする。
【0005】
別の態様によれば、点群データをデコーディングするためのコンピュータシステムを提供する。当該コンピュータシステムは、1つ又は複数のプロセッサと、1つ又は複数のコンピュータ読み取り可能なメモリと、1つ又は複数のコンピュータ読み取り可能な有形記憶装置と、1つ又は複数の記憶装置のうちの少なくとも1つに記憶され、1つ又は複数のメモリのうちの少なくとも1つを介して、1つ又は複数のプロセッサのうちの少なくとも1つによって実行されることで、コンピュータシステムに以下の方法を実行させるためのプログラム命令とを含む。当該方法は、点群に対応するデータを受信するステップを含み得る。現在のノードに関連付けられた1つ又は複数の隣接ノードに対応するハッシュ要素を認識する。ハッシュ要素のうち、1つ又は複数の隣接ノードの非辺縁領域に対応する1つ又は複数のハッシュ要素の削除に基づいて、ハッシュテーブルのサイズを減少する。サイズが減少されたハッシュテーブルに基づいて、点群に対応するデータをデコーディングする。
【0006】
別の態様によれば、点群データをデコーディングするためのコンピュータ読み取り可能な媒体を提供する。当該コンピュータ読み取り可能な媒体は、1つ又は複数のコンピュータ読み取り可能な記憶装置と、1つ又は複数の有形記憶装置のうちの少なくとも1つに記憶され、プロセッサによって実行されるプログラム命令とを含む。プログラム命令はプロセッサによって実行されることで、以下の方法を実行させるために使用され得、当該方法は、対応して、点群に対応するデータを受信するステップを含む。現在のノードに関連付けられた1つ又は複数の隣接ノードに対応するハッシュ要素を認識する。ハッシュ要素のうち、1つ又は複数の隣接ノードの非辺縁領域に対応する1つ又は複数のハッシュ要素の削除に基づいて、ハッシュテーブルのサイズを減少する。サイズが減少されたハッシュテーブルに基づいて、点群に対応するデータをデコーディングする。
【図面の簡単な説明】
【0007】
上記及び他の目的、特徴及び利点は、添付の図面に関連して読まれる例示的な実施形態の以下の詳細な説明から明らかになる。図面は詳細な説明に関連して当業者の理解を容易にすることを明確にするためのものであるので、図面の様々な特徴は縮尺通りではない。図面では。
図1】少なくとも1つの実施形態によるネットワーク化コンピュータ環境を示す。
図2A】少なくとも1つの実施形態による点群データの八分木の構成図である。
図2B】少なくとも1つの実施形態による点群データの八分木パーティションの図である。
図3】少なくとも1つの実施形態による、境界要素を保持しながらハッシュ縮小を行う図である。
図4】少なくとも1つの実施形態による、点群データをデコーディングするプログラムが実行するステップの操作フローチャートである。
図5】少なくとも1つの実施形態による、図1に示されるコンピュータ及びサーバの内部コンポーネント、外部コンポーネントのブロック図である。
図6】少なくとも1つの実施形態による、図1に示されるコンピュータシステムを含む模式的なクラウドコンピューティング環境のブロック図である。
図7】少なくとも1つの実施形態による、図6の模式的なクラウドコンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0008】
請求項に記載の構造及び方法の詳細な実施形態は本明細書において開示される。しかし、開示の実施形態は、単に様々な形式で具現され得る請求項に記載の構造及び方法を例示するものであることが理解できる。しかし、これらの構造及び方法は、多くの異なる形式で具現されてもよく、本明細書に記載の例示的な実施形態に限定されるものと解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が完全且つ包括的であり、当業者に当該範囲を十分に伝えるために提供される。説明において、周知の特徴及び技術の詳細は、提示される実施形態を不要に不明瞭にすることを回避するために省略されることがある。
【0009】
実施形態は、一般的にデータ処理の分野に関し、より具体的に点群に関する。以下に説明される例示的な実施形態は、点群コーディングのための占有データのハッシュベースのアクセスを最適化するためのシステム、方法及びコンピュータプログラムを提供する。したがって、いくつかの実施形態は、境界要素を保持しながらハッシュデータを縮小することで、改善された点群コーディングを可能にし、コンピューティング分野を改善する能力を有する。
【0010】
近年、点群コーディングは広く使用されている。点群コーディングは、例えば、自動運転車両において、オブジェクト検出及び位置決めに用いられ、さらに地理情報システム(GIS,geographic information system)において、描画に用いられ、及び文化遺産において、文化遺産オブジェクト及び収蔵などを可視化及びアーカイブするために用いられる。点群は高次元点のセットを含み、一般的に3次元(3D,three dimensional)であり、各高次元点は3D位置情報、及び色、反射率などの付加的な属性を含む。これらの高次元点は、複数のカメラ及び深度センサー、又は様々な装置におけるレーザーレーダーによってキャプチャされ、数千から数十億の点から構成されることで、元のシーンをリアルに表示する。伝送を高速化したり、ストレージを削減したりするために、圧縮技術で点群を表示するために必要なデータ量を削減する。ISO/IEC MPEG(JTC 1/SC 29/WG 11)は、静的又は動的点群圧縮技術を標準化するためのアドホック(ad-hoc)グループ(MPEG-PCC)を既に作成した。
【0011】
以前は、ハッシュマッピング技術を利用して、幾何学的占有情報を記憶していた。ただし、特に、キャッシュメモリに大量の幾何学的占有情報を記憶する場合、実現の点で、ハッシュが安価でない場合がある。したがって、占有コーディングの更新されたコンテキストモデリング方法を利用して、改善された点群コーディングのためのハッシュ実現を最適化することは、有利である。
【0012】
様々な実施形態による方法、装置(システム)及びコンピュータ読み取り可能媒体のフローチャート及び/又はブロック図を参照して、態様を本明細書で説明する。フローチャート及び/又はブロック図の各ブロック、及びフローチャート及び/又はブロック図のブロックの組み合わせは、コンピュータ読み取り可能プログラム命令によって実現できることが理解される。
【0013】
以下に説明される例示的な実施形態は、点群コーディングのための幾何学的占有情報へのハッシュベースのアクセスを最適化するシステム、方法及びコンピュータプログラムを提供する。ここで図1を参照して、ネットワーク化コンピュータ環境の機能ブロックは、点群データをコーディング及びデコーディングするための点群コーディングシステム100(以下、「システム」)を示す。図1は、1つの実現の例のみを提供しており、異なる実施形態が実現され得る環境に関する如何なる限定も意味しないことが認識されるべきである。図示の環境に対する多くの変更は設計及び実装要件に基づいて行われてもよい。
【0014】
システム100は、コンピュータ102と、サーバコンピュータ114とを含んでもよい。コンピュータ102は、通信ネットワーク110(以下、「ネットワーク」)を介してサーバコンピュータ114と通信してもよい。コンピュータ102は、プロセッサ104と、データ記憶デバイス106に記憶され且つユーザとインターフェースしてサーバコンピュータ114と通信することを可能にするソフトウェアプログラム108とを含んでもよい。図5を参照して以下に説明するように、コンピュータ102は、それぞれ内部コンポーネント800A及び外部コンポーネント900Aを含んでもよく、サーバコンピュータ114は、それぞれ内部コンポーネント800B及び外部コンポーネント900Bを含んでもよい。コンピュータ102は、例えば、モバイルデバイス、電話、パーソナルデジタルアシスタント、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、又はプログラムを実行してネットワークにアクセスしてデータベースにアクセスすることができる任意のタイプのコンピューティングデバイスでもよい。
【0015】
また、サーバコンピュータ114は、図6及び図7に関して以下に説明するように、ソフトウェアアズアサービス(SaaS,Software as a Service)、プラットフォームアズアサービス(PaaS,Platform as a Service)又はインフラストラクチャアズアサービス(Iaas,Infrastructure as a Service)のようなクラウドコンピューティングサービスモデルにおいて動作してもよい。また、サーバコンピュータ114は、プライベートクラウド、コミュニティクラウド、パブリッククラウド又はハイブリッド型クラウドのようなクラウドコンピューティング展開モデルに配置されてもよい。
【0016】
点群のコーディング及びデコーディングに使用できるサーバコンピュータ114は、データベース112とインタラクションできる点群コーディングプログラム116(以下、「プログラム」)を実行することができる。以下、図4を参照して、点群コーディングプログラムの方法をより詳しく説明する。1つの実施形態では、コンピュータ102はユーザインターフェースを含む入力デバイスとして動作してもよく、一方、プログラム116は、主にサーバコンピュータ114上で動作してもよい。別の実施形態では、プログラム116は、主に1つ以上のコンピュータ102上で動作してもよく、一方、サーバコンピュータ114は、プログラム116によって使用されるデータの処理及び記憶のために使用されてもよい。プログラム116は、スタンドアローンプログラムでもよく、或いは、より大きい点群コーディングプログラムに統合されてもよい。
【0017】
しかし、プログラム116の処理は、いくつかの場合に、コンピュータ102とサーバコンピュータ114との間で任意の比率で共有されてもよい点に留意すべきである。他の実施形態では、プログラム116は、1つよりも多くのコンピュータ、サーバコンピュータ又はコンピュータとサーバコンピュータとのいくつかの組み合わせで動作してもよく、例えば、複数のコンピュータ102はネットワーク110を通じて単一のサーバコンピュータ114と通信する。他の実施形態では、例えば、プログラム116は、ネットワーク110を通じて複数のクライアントコンピュータと通信する複数のサーバコンピュータ114上で動作してもよい。或いは、プログラムは、ネットワークを通じてサーバ及び複数のクライアントコンピュータと通信するネットワークサーバ上で動作してもよい。
【0018】
ネットワーク110は、有線接続、無線接続、光ファイバ接続又はこれらの組み合わせを含んでもよい。一般的に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続及びプロトコルのいずれかの組み合わせとすることができる。ネットワーク110は、例えば、ローカルエリアネットワーク(LAN,local area network)、インターネットのような広域ネットワーク(WAN,wide area network)、公衆交換電話網(PSTN,Public Switched Telephone Network)のような電気通信ネットワーク、無線ネットワーク、公衆交換ネットワーク、衛星ネットワーク、セルラネットワーク(例えば、第5世代(5G,fifth generation)ネットワーク、ロングタームエボリューション(LTE,long-term evolution)ネットワーク、第3世代(3G,third generation)ネットワーク、符号分割多元接続(CDMA,code division multiple access)ネットワーク等)、公衆陸上移動ネットワーク(PLMN,public land mobile network)、メトロポリタンエリアネットワーク(MAN,metropolitan area network)、プライベートネットワーク、アドホックネットワーク、イントラネット、光ファイバベースのネットワーク等、及び/又は上記又は他のタイプのネットワークの組合せのような様々なタイプのネットワークを含んでもよい。
【0019】
図1に示すデバイス及びネットワークの数及び構成は、一例として提供されている。実際には、追加のデバイス及び/又はネットワーク、少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、又は図1に示されるものと異なって構成されたデバイス及び/又はネットワークが存在してもよい。さらに、図1に示す2つ以上のデバイスは、単一のデバイス内に実現されてもよく、或いは、図1に示す単一のデバイスは、複数の分散デバイスとして実現されてもよい。さらに或いは代替として、システム100のデバイスのセット(例えば、1つ以上のデバイス)は、システム100の他のデバイスのセットによって実行されると記載される1つ以上の機能を実行してもよい。
【0020】
これから、図2Aを参照して、八分木構造200Aの図面を示している。TMC13において、八分木幾何学的コーデックを利用すると、幾何学的エンコーディングは以下のように進む。まず、2つの点(0,0,0)と(2M-1,2M-1,2M-1)で、立方体の軸合わせ境界ボックスBを定義し、2M-1はBのサイズを定義し、Mはビットストリームで指定される。そして、Bを再帰的に細分化することで、八分木構造200Aを構築する。各段階で、立方体は8つのサブ立方体に細分化される。そして、1ビット値を各サブ立方体に関連付けることで、8ビットコード、即ち、占有コードを生成することで、点を含む(即ち、フルで値が1である)か、含まない(即ち、空で値が0である)かを指示する。サイズが1以上である完全なサブ立方体(即ち、非ボクセル)のみが、さらに細分化される。
【0021】
これから、図2Bを参照して、八分木パーティション200Bの図を示す。八分木パーティション200Bは、2レベルの八分木パーティション202及び対応する占有コード204を含んでよく、暗い立方体及びノードは、点により占有されていることを示す。そして、算術エンコーダは各ノードの占有コード204を圧縮する。占有コード204はSとして示されてもよく、Sは8ビットの整数であり、Sにおける各ビットは、各サブノードの占有状況を示す。TMC13には、ビット単位のエンコーディング方法及びバイト単位のエンコーディング方法という2つの占有コード204のエンコーディング方法が存在し、ビット単位のエンコーディングはデフォルトで有効にされる。何れかの方式はコンテキストモデリングを利用して、算術コーディングを実行することで、占有コード204をエンコーディングし、コンテキスト状態はコーディングプロセス全体の開始時に初期化され、コーディングプロセス中に更新される。
【0022】
ビット単位のエンコーディングでは、Sにおける8つのビンは特定の順序でエンコーディングされ、各ビンは、隣接ノードのサブノード及び隣接ノードの占有状況を参照してエンコーディングされ、隣接ノードは、現在のノードと同じレベルにある。バイト単位のエンコーディングでは、Sはアダプティブルックアップテーブル(A-LUT,adaptive look up table)及びキャッシュを参照してエンコーディングされ、当該アダプティブルックアップテーブルは、N個(例えば、32個)の最も頻繁な占有コードを追跡し、当該キャッシュは、最後に観察された異なるM個(例えば、16個)の占有コードを追跡する。
【0023】
SがA-LUTにあるかどうかを指示するバイナリフラグはエンコーディングされる。SがA-LUTにあると、バイナリ算術エンコーダを利用してA-LUTにおけるインデックスをエンコーディングする。SがA-LUTにないと、Sがキャッシュにあるかどうかを指示するバイナリフラグがエンコーディングされる。Sがキャッシュにあると、バイナリ算術エンコーダを利用して、そのインデックスのバイナリ表示をエンコーディングする。Sがキャッシュにないと、バイナリ算術エンコーダを利用して、Sのバイナリ表示をエンコーディングする。デコーディングプロセスは、ビットストリームから境界ボックスBの次元を解析することで開始される。そして、デコーディングされた占有コードに基づいて、Bを細分化することで、同じ八分木構造を構築する。
【0024】
ここで図3を参照して、境界要素を保持しながらハッシュ縮小を行う図300を示している。ハッシュ縮小はハッシュ要素302A~302C、境界ハッシュ要素304A~304C、及び現在のノード306を含み得る。1つ又は複数の実施形態によれば、コーディングされた幾何学的占有情報はキャッシュメモリに保存され得るが、これは、後にコーディングされたノードは、当該情報をコンテキストとして使用する必要があるからである。
【0025】
【数1】
【0026】
現在のノードの占有値をエンコーディング/デコーディングする場合、ハッシュテーブルHから、隣接ノードの占有情報を取得する。現在のノードの占有値をエンコーディング/デコーディングした後、コーディングされた占有値はHに記憶される。ハッシュの実現を最適化/加速させるために、ハッシュテーブルを可能な限り小さくすることで、情報記憶のコストを削減し、且つ検索速度を高速化することができる。
【0027】
1つ又は複数の実施形態では、ハッシュテーブルの最大サイズを定義することができる。ここで、最大サイズは、全ての場合に固定され得るか、又は、1つずつ異なって構成され、ビットストリームにハイレベル構文の一部として、例えば、シーケンスパラメータセット、幾何学的パラメータセット又はスライスヘッダーなどとして送信され得る。ハッシュテーブルが最大容量に達した場合、ハッシュテーブルは、その一部の要素を除去することで縮小される。どの要素を除去するかに関するルールは、場合に応じて異なることがある。1つの実施形態において、ハッシュテーブルは、ブロック境界に位置しない要素を除去する。
【0028】
ブロック境界は、現在のノードの位置座標に基づいて定義され得る。一般的に、ブロックサイズは2の累乗として定義される。例えば、ブロックサイズは3D空間で(2,2,2)であり得る。したがって、座標が(2iM-1,2jM-1,2kM-1)(i,j,k=1,2,3,...)である位置は境界である。したがって、キー値Morton(2iM-1,2jM-1,2kM-1)を有する全てのハッシュ要素を保持し、他の全ての要素をテーブルから削除する。したがって、境界ハッシュ要素304A~304Cは境界に位置し、境界(即ち、非辺縁領域)に属しない可能性があるハッシュ要素302A~302Cを除去する。ここで、境界サイズMは、全ての場合に固定され得るか、又は、1つずつ異なって構成され、ビットストリームにハイレベル構文の一部として、例えば、シーケンスパラメータセット、幾何学的パラメータセット又はスライスヘッダーなどとして送信され得る。しかしながら、いくつかの実施形態では、親レベルのコンテキスト情報を利用すると、ハッシュ縮小を利用して最適なパフォーマンスを実現しない可能性がある。親レベルのコンテキストを利用しないと、パフォーマンスを低下させることなく、境界要素を保留しながら、ハッシュテーブルを縮小しても、安全である。
【0029】
以前、ノードによる幾何学的コーディングは、幅優先の八分木パーティションを介して、点群全体を、いくつかのサブノードにパーティションし、各サブノードは異なって又は並行してコーディングを行うことができる。当該スキームにおいて、各サブノードは、個別のハッシュテーブルを保持でき、異なるサブノードからの各ハッシュテーブルは互いに独立する。この場合、各サブノードはいずれも元の点群の一部であるため、ハッシュテーブルの最大サイズも減少される。ただし、コンテキスト情報はノード境界を超えて共有されないため、コーディング効率の点でパフォーマンスが低下する可能性がある。損失を補償するために、別の実施形態において、ノード境界での要素は保留され、異なるサブノードに使用されることができる。
【0030】
ここで、図4を参照すると、点群データをコーディングするためのプログラムが実行する方法400のステップの操作フローチャートが示されている。
【0031】
402において、方法400は点群に対応するデータを受信するステップを含むことができる。
【0032】
404において、方法400は、現在のノードに関連付けられた1つ又は複数の隣接ノードに対応するハッシュ要素を認識するステップを含むことができる。
【0033】
406において、方法400は、ハッシュ要素のうち、1つ又は複数の隣接ノードの非辺縁領域に対応する1つ又は複数のハッシュ要素の削除に基づいて、ハッシュテーブルのサイズを減少するステップを含むことができる。
【0034】
408において、方法400は、サイズが減少されたハッシュテーブルに基づいて、点群に対応するデータをデコーディングするステップを含むことができる。
【0035】
図4は1つの実現の例のみを提供しており、異なる実施形態がどのように実現され得るかに関する限定を意味しないことが理解され得る。図示の環境に対する多くの変更は設計及び実装要件に基づいて行われてもよい。
【0036】
図5は、例示的な実施形態による、図1に示すコンピュータの内部及び外部コンポーネントのブロック図500である。図5は1つの実現の例のみを提供しており、異なる実施形態が実現され得る環境に関する如何なる限定も意味しないことが認識されるべきである。図示の環境に対する多くの変更は、設計及び実現要件に基づいて行われてもよい。
【0037】
コンピュータ102(図1)及びサーバコンピュータ114(図1)は、図5に示す内部コンポーネント800A、800B及び外部コンポーネント900A、900Bのそれぞれのセットを含んでもよい。内部コンポーネント800のセットのそれぞれは、1つ以上のバス826上の1つ以上のプロセッサ820、1つ以上のコンピュータ読み取り可能なRAM822及び1つ以上のコンピュータ読み取り可能なROM824と、1つ以上のオペレーティングシステム828と、1つ以上のコンピュータ読み取り可能な有形記憶デバイス830とを含む。
【0038】
プロセッサ820は、ハードウェア、ファームウェア又はハードウェアとソフトウェアとの組み合わせで実現される。プロセッサ820は、中央処理装置(CPU,central processing unit)、グラフィックス処理装置(GPU,graphics processing unit)、加速処理装置(APU,accelerated processing unit)、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP,digital signal processor)、フィールドプログラマブルゲートアレイ(FPGA,field-programmable gate array)、特定用途向け集積回路(ASIC,application-specific integrated circuit)又は他のタイプの処理コンポーネントである。いくつかの実施態様では、プロセッサ820は、機能を実行するようにプログラム可能な1つ以上のプロセッサを含む。バス826は、内部コンポーネント800A、800Bの間の通信を可能にするコンポーネントを含む。
【0039】
サーバコンピュータ114(図1)上の1つ以上のオペレーティングシステム828、ソフトウェアプログラム108(図1)及び点群コーディングプログラム116(図1)は、それぞれのRAM822(典型的にはキャッシュメモリを含む)のうち1つ以上を介してそれぞれのプロセッサ820のうち1つ以上によって実行するために、それぞれのコンピュータ読み取り可能な有形記憶デバイス830のうち1つ以上に記憶される。図5に示す実施形態では、コンピュータ読み取り可能な有形記憶デバイス830のそれぞれは、内部ハードドライブの磁気ディスク記憶デバイスである。或いは、コンピュータ読み取り可能な有形記憶デバイス830のそれぞれは半導体記憶デバイスであり、例えば、ROM824、EPROM、フラッシュメモリ、光ディスク、光磁気ディスク、ソリッドステートディスク、コンパクトディスク(CD,compact disc)、デジタル多用途ディスク(DVD,digital versatile disc)、フロッピーディスク、カートリッジ、磁気テープ、及び/又はコンピュータプログラム及びデジタル情報を記憶できる他のタイプの非一時的なコンピュータ読み取り可能な有形記憶デバイスである。
【0040】
内部コンポーネント800A、800Bのセットのそれぞれは、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク又は半導体記憶デバイスのような1つ以上のポータブルコンピュータ読み取り可能な有形記憶デバイス936から読み書きするためのR/Wドライブ又はインターフェース832をさらに含む。ソフトウェアプログラム108(図1)及び点群コーディングプログラム116(図1)のようなソフトウェアプログラムは、それぞれのポータブルコンピュータ読み取り可能な有形記憶デバイス936のうち1つ以上に記憶され、それぞれのR/Wドライブ又はインターフェース832を介して読み取られ、それぞれのハードドライブ830にロードされてもよい。
【0041】
内部コンポーネント800A、800Bのセットのそれぞれは、TCP/IPアダプタカード、無線Wi-Fiインターフェースカード、又は3G、4G若しくは5G無線インターフェースカード、又は他の有線若しくは無線通信リンクのようなネットワークアダプタ又はインターフェース836を含む。サーバコンピュータ114(図1)上のソフトウェアプログラム108(図1)及び点群コーディングプログラム116(図1)は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク又は他の広域ネットワーク)及びそれぞれのネットワークアダプタ又はインターフェース836を介して、外部コンピュータからコンピュータ102(図1)及びサーバコンピュータ114にダウンロードされてもよい。ネットワークアダプタ又はインターフェース836から、サーバコンピュータ114上のソフトウェアプログラム108及び点群コーディングプログラム116がそれぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含んでもよい。
【0042】
外部コンポーネント900A、900Bのセットのそれぞれは、コンピュータ表示モニタ920と、キーボード930と、コンピュータマウス934とを含んでもよい。外部コンポーネント900A、900Bは、タッチスクリーンと、仮想キーボードと、タッチパッドと、ポインティングデバイスと、他のヒューマンインターフェースデバイスとをさらに含んでもよい。内部コンポーネント800A、800Bのセットのそれぞれは、コンピュータ表示モニタ920、キーボード930及びコンピュータマウス934にインターフェース接続するためのデバイスドライバ840をさらに含む。デバイスドライバ840、R/Wドライブ又はインターフェース832と、ネットワークアダプタ又はインターフェース836とは、ハードウェア及びソフトウェア(ストレージデバイス830及び/又はROM824に記憶される)を含む。
【0043】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載される教示の実現は、クラウドコンピューティング環境に限定されないことが予め理解される。むしろ、いくつかの実施形態は、現在知られているか或いは後に開発される他のタイプのコンピューティング環境と共に実現可能である。
【0044】
クラウドコンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン及びサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするためのサービス提供のモデルであり、最小限の管理作業又はサービスのプロバイダーとのインタラクションにより迅速に提供及びリリースできる。このクラウドモデルは、少なくとも5つの特徴と、少なくとも3つのサービスモデルと、少なくとも4つの展開モデルとを含んでもよい。
【0045】
特性は以下の通りである。
オンデマンドセルフサービス:クラウド利用者は、サービスのプロバイダーとの人間によるインタラクションを必要とせずに、必要に応じて自動的に、サーバ時間及びネットワークストレージのような計算機能を一方的に提供することができる。
幅広いネットワークアクセス:機能はネットワーク経由で利用可能であり、異種のシンクライアント又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ及びPDA)による使用を促進する標準メカニズムを通じてアクセスされる。
リソースプーリング:プロバイダーの計算リソースは、マルチテナントモデルを使用して複数の利用者にサービスを提供するためにプーリングされ、異なる物理リソース及び仮想リソースはニーズに応じて動的に割り当て及び再割り当てされる。一般的に利用者は提供されるリソースの正確な位置を制御しないまたは知識を持っていないが、より高いレベルの抽象化(例えば、国、州、データセンタ)で場所を指定できる可能性があるという点で、場所に依存しないという感覚がある。
迅速な弾力性:機能は、迅速にスケールアウトされ、迅速にリリースされて迅速にスケールインされるように、迅速かつ弾力的に(場合によっては自動的に)プロビジョニングされる。利用者にとって、提供するのに利用可能な機能はしばしば無制限であるように見え、いつでもどんな量でも購入できる。
測定サービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適した抽象化のレベルで計量機能を利用することにより、自動的にリソースの使用を制御して最適化する。リソースの使用を監視、制御及び報告し、利用するサービスのプロバイダーと利用者との双方に透明性を提供できる。
【0046】
サービスモデルは以下の通りである。
ソフトウェアアズアサービス(SaaS,Software as a Service):利用者に提供される機能は、クラウドインフラストラクチャ上で運行されているプロバイダーのアプリケーションを使用することである。アプリケーションには、ウェブブラウザ(例えば、ウェブベースの電子メール)のようなシンクライアントインタフェースを通じて様々なクライアントデバイスからアクセス可能である。利用者は、ネットワーク、サーバ、オペレーティングシステム、ストレージ又は個々のアプリケーション機能を含む、基礎となるインフラストラクチャを管理又は制御しない。ただし、限られたユーザに固有のアプリケーションの構成設定は例外である。
プラットフォームアズアサービス(PaaS,Platform as a Service):利用者に提供される機能は、クラウドインフラストラクチャ上で、プロバイダーによりサポートされるプログラミング言語及びツールを使用して作成された、利用者によって作成又は取得されたアプリケーションを展開することである。利用者は、ネットワーク、サーバ、オペレーティングシステム又はストレージを含む、基礎となるクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション、及び場合によってはアプリケーションホスティング環境の構成の制御を制限する。
インフラストラクチャアズアサービスとしてのインフラストラクチャ(IaaS,Infrastructure as a Service):利用者に提供される機能は、処理、ストレージ、ネットワーク、及び利用者がオペレーティングシステム及びアプリケーションを含む任意のソフトウェアを展開して実行することができる他の基本的なコンピューティングリソースである。利用者は、基礎となるクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御し、場合によっては選択されたネットワークコンポーネント(例えば、ホストファイアウォール)の制御を制限する。
【0047】
配置モデルは以下の通りである。
プライベートクラウド:クラウドインフラストラクチャは、専ら組織について運用される。クラウドインフラストラクチャは組織又は第三者によって管理されてもよく、オンプレミス(on-premises)又はオフプレミス(off-premises)に存在してもよい。
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー及びコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。クラウドインフラストラクチャは組織又は第三者によって管理されてもよく、オンプレミス又はオフプレミスに存在してもよい。
パブリッククラウド:クラウドインフラストラクチャは、一般公衆又は大規模な業界団体に利用可能にされ、クラウドサービスを販売する組織によって所有される。
ハイブリッド型クラウド:クラウドインフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ又はパブリック)の構成であり、固有のエンティティのままであるが、データ及びアプリケーションのポータビリティを可能にする標準化技術又はプロプライエタリ技術(例えば、クラウド間の負荷分散のためのクラウドバースト)によって結合される。
【0048】
クラウドコンピューティング環境は、ステートレス、低結合、モジュール性及びセマンティック相互運用性に焦点を当てたサービス指向型である。クラウドコンピューティングの核心は、相互接続されたノードのネットワークで構成されるインフラストラクチャである。
【0049】
図6を参照すると、例示的なクラウドコンピューティング環境600が示されている。図示のように、クラウドコンピューティング環境600は、1つ以上のクラウドコンピューティングノード10を含み、クラウド利用者により使用されるローカルコンピューティングデバイス、例えば、パーソナルデジタルアシスタント(PDA)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C及び/又は自動車コンピュータシステム54Nが、1つ以上のクラウドコンピューティングノード10と通信してもよい。クラウドコンピューティングノード10は、互いに通信してもよい。これらは、物理的又は仮想的に、上記のようなプライベート、コミュニティ、パブリック若しくはハイブリッド型クラウド、又はこれらの組み合わせのような1つ以上のネットワークにグループ化されてもよい(図示せず)。これは、クラウド利用者がローカルコンピューティングデバイス上のリソースを維持する必要がないサービスとして、クラウドコンピューティング環境600がインフラストラクチャ、プラットフォーム及び/又はソフトウェアを提供することを可能にする。図6に示すコンピューティングデバイス54A~54Nのタイプは、例示的なものに過ぎず、クラウドコンピューティングノード10及びクラウドコンピューティング環境600は、任意のタイプのネットワーク及び/又はネットワークアドレス可能な接続を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータデバイスと通信できることが理解される。
【0050】
図7を参照して、クラウドコンピューティング環境600(図6)によって提供される機能抽象化レイヤのセット700が示されている。ここで、図7に示すコンポーネント、レイヤ及び機能は、例示的なものに過ぎず、実施形態はこれに限定されないことが予め理解されるべきである。図示のように、以下のレイヤ及び対応する機能が提供される。
【0051】
ハードウェア及びソフトウェアレイヤ60は、ハードウェア及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は、メインフレーム61と、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ62と、サーバ63と、ブレードサーバ64と、ストレージデバイス65と、ネットワーク及びネットワークコンポーネント66とを含む。いくつかの実施形態では、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67と、データベースソフトウェア68とを含む。
【0052】
仮想化レイヤ70は、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティングシステム74、並びに仮想クライアント75のような仮想エンティティの例が提供され得る抽象化レイヤを提供する。
【0053】
一例では、管理レイヤ80は、以下に説明する機能を提供してもよい。リソース提供81は、クラウドコンピューティング環境内のタスクを実行するために利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計量及び価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例では、これらのリソースは、アプリケーションソフトウェアライセンスを含んでもよい。セキュリティは、クラウド利用者及びタスクについての身元確認と、データ及び他のリソースの保護とを提供する。ユーザポータル83は、利用者及びシステム管理者のためにクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されるサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当て及び管理を提供する。サービスレベル合意(SLA,Service Level Agreement)の計画及び履行85は、SLAに従って将来の要件が予測されるクラウドコンピューティングリソースの事前準備及び調達を提供する。
【0054】
ワークロードレイヤ90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。このレイヤから提供され得るワークロード及び機能の例は、マッピング及びナビゲーション91と、ソフトウェア開発及びライフサイクル管理92と、仮想教室教育配信93と、データ分析処理94と、トランザクション処理95と、点群コーディング96とを含む。点群コーディング96は、点群コーディングのための占有データのハッシュベースのアクセスを最適化することができる。
【0055】
いくつかの実施形態は、任意の可能な技術的詳細レベルの統合におけるシステム、方法及び/又はコンピュータ読み取り可能媒体に関し得る。コンピュータ読み取り可能媒体は、プロセッサに操作を実行させるためのコンピュータ読み取り可能プログラム命令を有するコンピュータ読み取り可能な非一時記憶媒体(又は媒体)を含んでもよい。
【0056】
コンピュータ読み取り可能記憶媒体は、命令実行デバイスによって使用される命令を保持及び記憶できる有形のデバイスでもよい。コンピュータ読み取り可能記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス又はこれらのいずれかの適切な組み合わせでもよいが、これらに限定されない。コンピュータ読み取り可能記憶媒体のより具体的な例の非網羅的なリストは、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードのような機械的にエンコーディングされたデバイス、又は記録された命令を有する溝にある隆起構造、及びこれらのいずれか適切な組み合わせを含む。本明細書で使用されるコンピュータ読み取り可能記憶媒体は、電波又は他の自由伝搬電磁波、導波管又は他の伝送媒体を通じて伝搬する電磁波、或いは他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを通じて伝送される電気信号のような、それ自体で一時的な信号であると解釈されるべきではない。
【0057】
本明細書に記載のコンピュータ読み取り可能プログラム命令は、コンピュータ読み取り可能記憶媒体から各コンピューティング/処理デバイスにダウンロードされてもよく、或いは、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク及び/又は無線ネットワーク)を介して外部コンピュータ又は外部記憶デバイスにダウンロードされてもよい。当該ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含んでもよい。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ読み取り可能プログラム命令を受信し、各コンピューティング/処理デバイス内のコンピュータ読み取り可能記憶媒体に記憶するためにコンピュータ読み取り可能プログラム命令を転送する。
【0058】
操作を実行するためのコンピュータ読み取り可能プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA,instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、又はSmalltalk、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような手続き型プログラミング言語を含む、1つ以上のプログラミング言語のうちいずれかの組み合わせで記述されたソースコード又はオブジェクトコードでもよい。コンピュータ読み取り可能プログラム命令は、ユーザのコンピュータ上で完全に、スタンドアローンソフトウェアパッケージとしてユーザのコンピュータ上で部分的に、ユーザのコンピュータ上で部分的に且つリモートコンピュータ上で部分的に、或いはリモートコンピュータ又はサーバ上で完全に実行されてもよい。リモートコンピュータ又はサーバ上で完全に実行される場合に、リモートコンピュータは、ローカルエリアネットワーク(LAN)又は広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、或いは、(例えば、インターネットサービスプロバイダーを使用してインターネットを通じて)外部コンピュータに接続されてもよい。いくつかの実施形態では、例えば、プログラム可能論理回路、フィールドプログラマブルゲートアレイ(FPGA)又はプログラマブルロジックアレイ(PLA,programmable logic array)を含む電子回路は、態様又は動作を実行するために、コンピュータ読み取り可能プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ読み取り可能プログラム命令を実行してもよい。
【0059】
これらのコンピュータ読み取り可能プログラム命令は、汎用コンピュータ、専用コンピュータ又は他のプログラム可能データ処理装置のプロセッサに提供され、コンピュータ又は他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の1つ以上のブロックに指定された機能/動作を実現するための手段を生成するように、機械を生成してもよい。また、これらのコンピュータ読み取り可能プログラム命令は、コンピュータ、プログラム可能データ処理装置及び/又は他のデバイスに対して特定の方式で機能するように命令できるコンピュータ読み取り可能記憶媒体に記憶されてもよく、それにより、記憶された命令を有するコンピュータ読み取り可能記憶媒体は、フローチャート及び/又はブロック図の1つ以上のブロックに指定された機能/動作の態様を実施する命令を含む製造物を含む。
【0060】
コンピュータ読み取り可能プログラム命令は、コンピュータ、他のプログラム可能データ処理装置又は他のデバイスにロードされ、コンピュータ、他のプログラム可能装置又は他のデバイスに一連の動作ステップを実行させ、コンピュータ実装プロセスを生成させてもよく、それにより、コンピュータ、他のプログラム可能装置又は他のデバイスで実行される命令が、フローチャート及び/又はブロック図の1つ以上のブロックに指定された機能/動作を実施する。
【0061】
図面におけるフローチャート及びブロック図は、様々な実施形態によるシステム、方法及びコンピュータ読み取り可能媒体の可能な実装のアーキテクチャ、機能及び動作を示す。この点に関し、フローチャート又はブロック図の各ブロックは、指定の論理機能を実現するための1つ以上の実行可能命令を含む、モジュール、セグメント又は命令の一部を表してもよい。方法、コンピュータシステム及びコンピュータ読み取り可能媒体は、図面に示すものよりも多くのブロック、少ないブロック、異なるブロック又は異なる配置のブロックを含んでもよい。いくつかの別の実現では、ブロックに記載の機能は、図面に記載の順序から外れてもよい。例えば、連続して示す2つのブロックは、実際には、同時又は実質的に同時に実行されてもよく、或いは、関与する機能に応じて、ブロックが場合によっては逆の順序で実行されてもよい。また、ブロック図及び/又はフローチャートの各ブロック、及びブロック図及び/又はフローチャートのブロックの組み合わせは、指定の機能又は動作を実行する専用のハードウェアベースのシステム、又は専用のハードウェアとコンピュータ命令との組み合わせによって実現されてもよい点に留意されたい。
【0062】
本明細書に記載のシステム及び/又は方法は、異なる形式のハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装されてもよいことが明らかである。これらのシステム及び/又は方法を実装するために使用される実際の特殊制御ハードウェア又はソフトウェアコードは、実装を限定するものではない。したがって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実施するように設計されてもよいことが理解される。
【0063】
本明細書で使用される要素、動作、または命令は、そのように明示的に記載されていない限り、重要または必須であると解釈されるべきではない。また、本明細書において、冠詞「a」および「an」は、1つまたは複数の項目を含むことが意図され、「1つまたは複数」と交換可能に使用されてもよい。さらに、本明細書において、「セット」という表現は、1つまたは複数の項目(例えば、関連アイテム、無関連アイテム、関連アイテムと無関連アイテムとの組合せなど)を含むことを意図しており、「1つまたは複数」と交換可能に使用されてもよい。1つの項目のみが意図される場合、「1つ」という表現または同様の表現が使用される。また、本明細書において、「有する」という表現は、オープンエンド用語を意図している。さらに、「に基づいて」というフレーズは、特に明記しない限り、「少なくとも部分的に」を意味することを意図している。
【0064】
様々な態様及び実施形態の説明が例示の目的で提示されているが、網羅的であること又は開示の実施形態に限定されることを意図するものではない。特徴の組み合わせが特許請求の範囲に記載されている及び/又は明細書に開示されているとしても、これらの組み合わせは、可能な実装の開示を限定することを意図するものではない。実際に、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない方法及び/又は明細書に開示されていない方法で組み合わされてもよい。以下に記載の各従属項は、1つの請求項のみに直接従属することがあるが、可能な実装の開示は、請求項のセットの中の他の全ての請求項と組み合わせた各従属項を含む。多くの変更及び変形は、説明した実施形態の範囲から逸脱することなく当業者には明らかになる。本明細書で使用される用語は、実施形態の原理、市場で見出される技術に対する実際の適用又は技術的な改良を最もよく説明するために、或いは、当業者が本明細書に開示される実施形態を理解することを可能にするために選択されている。
図1
図2A
図2B
図3
図4
図5
図6
図7