(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-10
(45)【発行日】2023-05-18
(54)【発明の名称】点群コーディングのための方法、装置およびコンピュータプログラム
(51)【国際特許分類】
G06T 9/00 20060101AFI20230511BHJP
H04N 19/597 20140101ALI20230511BHJP
H04N 19/46 20140101ALI20230511BHJP
G06T 9/40 20060101ALI20230511BHJP
【FI】
G06T9/00 100
H04N19/597
H04N19/46
G06T9/40
(21)【出願番号】P 2021563121
(86)(22)【出願日】2021-06-16
(86)【国際出願番号】 US2021037638
(87)【国際公開番号】W WO2022035505
(87)【国際公開日】2022-02-17
【審査請求日】2021-10-22
(32)【優先日】2020-08-14
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-05-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シャン・ジャン
(72)【発明者】
【氏名】ウェン・ガオ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】橋爪 正樹
(56)【参考文献】
【文献】特表2018-534881(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 9/00- 9/40
G06T 17/00-17/30
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
プロセッサ
が実行する点群コーディングの
ための方法であって、
ビットストリームから、点群に対応するデータを受信するステップと、
前記点群に関連する属性の複数のコンポーネントの中から第1のコンポーネントの第1の予測残差を、前記データから取得するステップと、
前記第1の予測残差を再構成するステップと、
前記再構成された第1の予測残差および少なくとも1つのモデルパラメータに基づいて、予測される第2の予測残差を決定するステップと、
前記予測される第2の予測残差に基づいて前記複数のコンポーネントの中から第2のコンポーネントの第2の予測残差を取得するステップと、
前記第2の予測残差を再構成するステップと、
前記再構成された第1の予測残差および前記再構成された第2の予測残差に基づいて、前記点群に対応する前記データを復号するステップと
を含む、方法。
【請求項2】
前記少なくとも1つのモデルパラメータに対応するモデルは、線形モデル、二次モデル、および多項式モデルのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記再構成された第1の予測残差と、前記再構成された第2の予測残差と、前記少なくとも1つのモデルパラメータとに基づいて、予測される第3の予測残差を決定するステップと、
前記予測される第3の予測残差に基づいて、前記複数のコンポーネントの中から第3のコンポーネントの第3の予測残差を取得するステップと、
前記第3の予測残差を再構成するステップと、
前記再構成された第1の予測残差と、前記再構成された第2の予測残差と、前記再構成された第3の予測残差とに基づいて、前記点群に対応する前記データを復号するステップと
をさらに含む、請求項1
または2に記載の方法。
【請求項4】
前記予測される第2の予測残差は、以下の第1の式:
p
1=α
0R
0
を使用して決定され、
前記予測される第3の予測残差は、以下の第2の式:
p
2=α
1R
0+β
1R
1
を使用して決定され、
R
0は前記再構成された第1の予測残差を表し、p
1は前記予測される第2の予測残差を表し、R
1は前記再構成された第2の予測残差を表し、p
2は前記予測される第3の予測残差を表し、α
0、α
1、およびβ
1は前記少なくとも1つのモデルパラメータのモデルパラメータを表す、請求項3に記載の方法。
【請求項5】
前記予測される第2の予測残差は、以下の第1の式:
p
1=α
0R
0
を使用して決定され、
前記予測される第3の予測残差は、以下の第2の式:
p
2=α
1R
0
を使用して決定され、
R
0は前記再構成された第1の予測残差を表し、p
1は前記予測される第2の予測残差を表し、p
2は前記予測される第3の予測残差を表し、α
0およびα
1は前記少なくとも1つのモデルパラメータのモデルパラメータを表す、請求項3に記載の方法。
【請求項6】
前記予測される第2の予測残差は、以下の第1の式:
p
1=α
0R
0
を使用して決定され、
前記予測される第3の予測残差は、以下の第2の式:
p
2=β
1R
1
を使用して決定され、
R
0は前記再構成された第1の予測残差を表し、p
1は前記予測される第2の予測残差を表し、R
1は前記再構成された第2の予測残差を表し、p
2は前記予測される第3の予測残差を表し、α
0およびβ
1は前記少なくとも1つのモデルパラメータのモデルパラメータを表す、請求項3に記載の方法。
【請求項7】
前記予測される第2の予測残差は、以下の第1の式:
p
1=α
0R
0
を使用して決定され、
前記予測される第3の予測残差は、以下の第2の式:
p
2=α
0R
0
を使用して決定され、
R
0は前記再構成された第1の予測残差を表し、p
1は前記予測される第2の予測残差を表し、p
2は前記予測される第3の予測残差を表し、α
0は前記少なくとも1つのモデルパラメータのモデルパラメータを表す、請求項3に記載の方法。
【請求項8】
前記予測される第2の予測残差は、以下の第1の式:
p
1=α
0R
0
を使用して決定され、
前記予測される第3の予測残差は、以下の第2の式:
p
2=α
0R
1
を使用して決定され、
R
0は前記再構成された第1の予測残差を表し、p
1は前記予測される第2の予測残差を表し、R
1は前記再構成された第2の予測残差を表し、p
2は前記予測される第3の予測残差を表し、α
0は前記少なくとも1つのモデルパラメータのモデルパラメータを表す、請求項3に記載の方法。
【請求項9】
前記少なくとも1つのモデルパラメータは、前記データにおいてシグナリングされる、請求項1
~8のいずれか一項に記載の方法。
【請求項10】
前記少なくとも1つのモデルパラメータは、予め決定されたモデルパラメータである、請求項1
~8のいずれか一項に記載の方法。
【請求項11】
前記少なくとも1つのモデルパラメータは、前記再構成された第1の予測残差および前記再構成された第2の予測残差の少なくとも1つに基づいて適応的に学習される、請求項1
~8のいずれか一項に記載の方法。
【請求項12】
前記第1のコンポーネントは、第1のコンテキストモデルに関連付けられており、
前記第2のコンポーネントは、前記第1のコンテキストモデルとは異なる第2のコンテキストモデルに関連付けられている、請求項1
~11のいずれか一項に記載の方法。
【請求項13】
点群コーディングのためのコンピュータシステムであって、前記コンピュータシステムは、
コンピュータプログラムコードを記憶するように構成された1つまたは複数のコンピュータ可読非一時的記憶媒体と、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによる指示に従って動作するように構成された1つまたは複数のプロセッサであって、前記コンピュータプログラムコードは、
前記1つまたは複数のプロセッサに、請求項1~12のいずれか一項に記載の方法を実行させる、1つまたは複数のプロセッサと
を含む、コンピュータシステム。
【請求項14】
請求項1~12のいずれか一項に記載の方法を行うように構成された装置。
【請求項15】
1つまたは複数のコンピュータプロセッサに、
請求項1~12のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
〔関連出願の相互参照〕
本願は、米国特許商標庁に2020年8月14日に出願された米国仮出願第63/066,121号に基づく優先権を主張する、2021年5月27日に出願された米国特許出願第17/332,213号の優先権の利益を主張し、参照によりそれらの全体が本明細書に組み込まれる。
【0002】
本開示は、概して、データ処理の分野に、より具体的には点群コーディングに関する。
【背景技術】
【0003】
点群は近年広く利用されている。たとえば、自動運転車で物体の検出と位置特定に使用される。また、地理情報システム(GIS)でマッピングに使用され、文化遺産で文化遺産のオブジェクトやコレクションなどを視覚化およびアーカイブするために使用される。点群には、通常は3次元(3D)の高次元の点のセットが含まれ、それぞれに3Dの位置情報と、色、反射率などの追加の属性が含まれる。それらは、複数のカメラと深度センサー、またはさまざまなセットアップのLidarを使用してキャプチャでき、元のシーンをリアルに表現するために、数千から数十億の点で構成されてもよい。より高速な伝送またはストレージの削減のために、点群を表すために必要なデータの量を減らすための圧縮テクノロジーが必要である。
【発明の概要】
【課題を解決するための手段】
【0004】
実施形態は、点群コーディングのための方法、システムおよびコンピュータ可読媒体に関する。一態様によれば、点群コーディングのための方法が提供される。方法は、ビットストリームから、点群に対応するデータを受信するステップと、前記点群に関連する属性の複数のコンポーネントの中から第1のコンポーネントの第1の予測残差を、前記データから取得するステップと、前記第1の予測残差を再構成するステップと、前記再構成された第1の予測残差および少なくとも1つのモデルパラメータに基づいて、予測される第2の予測残差を決定するステップと、前記予測される第2の予測残差に基づいて前記複数のコンポーネントの中から第2のコンポーネントの第2の予測残差を取得するステップと、第2の予測残差を再構成するステップと、前記再構成された第1の予測残差および前記再構成された第2の予測残差に基づいて、前記点群に対応する前記データを復号するステップとを含んでもよい。
【0005】
別の態様によれば、点群コーディングのためのコンピュータシステムが提供される。コンピュータシステムは、1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数のコンピュータ可読有形記憶デバイスと、1つまたは複数のメモリの少なくとも1つを介する前記1つまたは複数のプロセッサの少なくとも1つによる実行のために1つまたは複数の記憶デバイスの少なくとも1つに記憶されたプログラム命令とを含んでもよく、それによって、コンピュータシステムは方法を実行できる。方法は、ビットストリームから、点群に対応するデータを受信するステップと、前記点群に関連する属性の複数のコンポーネントの中から第1のコンポーネントの第1の予測残差を、前記データから取得するステップと、前記第1の予測残差を再構成するステップと、前記再構成された第1の予測残差および少なくとも1つのモデルパラメータに基づいて、予測される第2の予測残差を決定するステップと、前記予測される第2の予測残差に基づいて前記複数のコンポーネントの中から第2のコンポーネントの第2の予測残差を取得するステップと、第2の予測残差を再構成するステップと、前記再構成された第1の予測残差および前記再構成された第2の予測残差に基づいて、前記点群に対応する前記データを復号するステップとを含んでもよい。
【0006】
さらに別の態様によれば、点群コーディングのためのコンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つまたは複数のコンピュータ可読記憶デバイスと、1つまたは複数の有形記憶デバイスの少なくとも1つに記憶されたプログラム命令とを含んでもよく、プログラム命令はプロセッサによって実行可能である。プログラム命令は、ビットストリームから、点群に対応するデータを受信するステップと、前記点群に関連する属性の複数のコンポーネントの中から第1のコンポーネントの第1の予測残差を、前記データから取得するステップと、前記第1の予測残差を再構成するステップと、前記再構成された第1の予測残差および少なくとも1つのモデルパラメータに基づいて、予測される第2の予測残差を決定するステップと、前記予測される第2の予測残差に基づいて前記複数のコンポーネントの中から第2のコンポーネントの第2の予測残差を取得するステップと、第2の予測残差を再構成するステップと、前記再構成された第1の予測残差および前記再構成された第2の予測残差に基づいて、前記点群に対応する前記データを復号するステップとを適宜含んでもよい方法を実行するためのプロセッサによって実行可能である。
【図面の簡単な説明】
【0007】
これらおよび他の目的、特徴および利点は、添付の図面に関連して読まれるべき例示的な実施形態の以下の詳細な説明から明らかになるであろう。図面の様々な特徴は、詳細な説明と併せて当業者の理解を容易にすることを明確にするための図であるため、縮尺どおりではない。
【
図1】少なくとも1つの実施形態に係るネットワーク化されたコンピュータ環境を示す。
【
図2A】少なくとも1つの実施形態に係る点群更新システムのブロック図である。
【
図2B】少なくとも1つの実施形態に係る点群更新システムのブロック図である。
【
図2C】少なくとも1つの実施形態に係る領域適応階層変換(RAHT)の図である。
【
図2D】少なくとも1つの実施形態に係る予測残差の構文要素の表である。
【
図3A】少なくとも1つの実施形態に係る点群コーディングのためのプログラムによって実行されるステップを示す動作フローチャートである。
【
図3B】少なくとも1つの実施形態に係る点群コーディングのためのプログラムによって実行されるステップを示す動作フローチャートである。
【
図4】少なくとも1つの実施形態に係る
図1に示されるコンピュータおよびサーバの内部および外部コンポーネントのブロック図である。
【
図5】少なくとも1つの実施形態に係る
図1に示されるコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図6】少なくとも1つの実施形態に係る
図5の例示的なクラウドコンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0008】
特許請求の範囲に記載される構造および方法の詳細な実施形態は、本明細書に開示される。しかしながら、開示される実施形態は、様々な形態で具体化され得る特許請求の範囲に記載される構造および方法の単なる例示であることが理解され得る。しかしながら、これらの構造および方法は、多くの異なる形態で具体化されてもよく、本明細書に記載の例示的な実施形態に限定されると解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が十分かつ完全であり、その範囲を当業者に完全に伝えるために提供される。明細書では、提示される実施形態を不必要に曖昧にすることを回避するために、周知の特徴および技術の詳細は省略されてもよい。
【0009】
実施形態は、概して、データ処理の分野に、より具体的には、点群コーディングに関連する。以下に説明する例示的な実施形態は、とりわけ、点群属性データをコーディングするためのコンポーネント間の相関方法を使用するためのシステム、方法、およびコンピュータプログラムを提供する。したがって、いくつかの実施形態は、点群データの最近傍を見つけることを必要としないことによって点群コーディングの効率を高めることを可能にすることによって、コンピューティングの分野を改善する能力を有する。
【0010】
前述のように、点群は近年広く使用されている。たとえば、自動運転車で物体の検出と位置特定に使用される。また、地理情報システム(GIS)でマッピングに使用され、文化遺産で文化遺産のオブジェクトやコレクションなどを視覚化およびアーカイブするために使用される。点群には、通常は3次元(3D)の高次元の点のセットが含まれ、それぞれに3Dの位置情報と、色、反射率などの追加の属性が含まれる。それらは、複数のカメラと深度センサー、またはさまざまなセットアップのLidarを使用してキャプチャでき、元のシーンをリアルに表現するために、数千から数十億の点で構成されてもよい。より高速な伝送またはストレージの削減のために、点群を表すために必要なデータの量を減らすための圧縮テクノロジーが必要である。予測ベースの属性コーディングでは、現在点の属性は、現在点に近いすでにコーディングされた点から予測される。
【0011】
TMC13モデルでは、ジオメトリ情報と、色や反射率などの関連する属性が個別に圧縮される。点群の3D座標であるジオメトリ情報は、その占有情報とともに八分木パーティションによってコード化される。次いで、予測、リフティング、および領域適応階層変換技術を使用して、再構成されたジオメトリに基づいて属性が圧縮される。しかしながら、各点の3D空間で最も近い点を見つけるには、コストがかかる場合がある。さらに、RGBカラーなどの複数のチャネル属性のロスレスおよびニアロスレスコーディングの場合、複数のチャネルは色空間変換なしで直接処理され、個別にコーディングされる。しかしながら、通常、特にRGBドメインでは、異なるカラーチャネル間に強い相関関係がある。このような相関関係を利用しないと、コーディング効率の点でパフォーマンスが低下する可能性がある。したがって、コンポーネント間の相関関係を使用すると有利な場合がある。
【0012】
態様は、様々な実施形態に係る方法、装置(システム)、およびコンピュータ可読媒体のフローチャート図および/またはブロック図を参照して本明細書に記載される。フローチャート図および/またはブロック図の各ブロック、およびフローチャート図および/またはブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解される。
【0013】
ここで
図1を参照すると、点群データをコーディングするための点群コーディングシステム100(以下「システム」)を示すネットワーク化されたコンピュータ環境の機能ブロック図である。
図1は、1つの実装の例示のみを提供し、異なる実施形態が実装され得る環境に関する制限を意味するものではないことは理解されるべきである。示されている環境には、設計と実装の要件に基づいて多くの変更を加えることができる。
【0014】
システム100は、コンピュータ102およびサーバコンピュータ114を含んでもよい。コンピュータ102は、通信ネットワーク110(以下、「ネットワーク」)を介してサーバコンピュータ114と通信してもよい。コンピュータ102は、プロセッサ104と、データ記憶デバイス106に記憶され、ユーザとインターフェースし、サーバコンピュータ114と通信することが可能であるソフトウェアプログラム108とを含んでもよい。
図4を参照して以下で説明されるが、コンピュータ102は、それぞれ内部コンポーネント800Aおよび外部コンポーネント900Aを含んでもよく、サーバコンピュータ114は、それぞれ、内部コンポーネント800Bおよび外部コンポーネント900Bを含んでもよい。コンピュータ102は、例えば、モバイルデバイス、電話、携帯情報端末、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、またはプログラムを実行し、ネットワークにアクセスし、データベースへのアクセスすることができる任意のタイプのコンピューティングデバイスであってもよい。
【0015】
サーバコンピュータ114はまた、
図5および
図6に関して以下で説明するように、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、またはサービスとしてのインフラストラクチャ(laaS)などのクラウドコンピューティングサービスモデルにおいて動作してもよい。サーバコンピュータ114はまた、プライベートクラウド、コミュニティクラウド、パブリッククラウド、またはハイブリッドクラウドなどのクラウドコンピューティング展開モデルに配置されてもよい。
【0016】
点群コーディングに使用されうるサーバコンピュータ114は、データベース112と相互作用することができる点群コーディングプログラム116(以下、「プログラム」)を実行することができる。点群コーディングプログラム方法は、
図3A~3Bを参照して以下でより詳細に説明される。一実施形態では、コンピュータ102は、ユーザインターフェースを含む入力デバイスとして動作してもよく、一方で、プログラム116は主にサーバコンピュータ114上で実行されてもよい。代替的な実施形態では、プログラム116は、主に1つまたは複数のコンピュータ102上で実行されてもよく、一方、サーバコンピュータ114は、プログラム116によって使用されるデータの処理および記憶のために使用されてもよい。プログラム116が、スタンドアロンプログラムであってもよく、または、より大きな点群コーディングプログラムに統合されてもよいことは留意されるべきである。
【0017】
しかしながら、プログラム116の処理が、場合によっては、コンピュータ102とサーバコンピュータ114との間で任意の比率で共有されてもよいことは留意されるべきである。別の実施形態では、プログラム116は、複数のコンピュータ、サーバコンピュータ、またはコンピュータとサーバコンピュータのいくつかの組み合わせ、例えば、ネットワーク110を介して単一のサーバコンピュータ114と通信する複数のコンピュータ102上で動作してもよい。別の実施形態では、例えば、プログラム116は、ネットワーク110を介して複数のクライアントコンピュータと通信する複数のサーバコンピュータ114上で動作してもよい。代替的には、プログラムは、ネットワークを介してサーバおよび複数のクライアントコンピュータと通信するネットワークサーバ上で動作してもよい。
【0018】
ネットワーク110は、有線接続、無線接続、光ファイバ接続、またはそれらのいくつかの組み合わせを含んでもよい。一般に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続およびプロトコルの任意の組み合わせであり得る。ネットワーク110は、例えば、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、公衆交換電話ネットワーク(PSTN)などの電気通信ネットワーク、無線ネットワーク、パブリックスイッチドネットワーク、サテライトネットワーク、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動体通信網(PLMN)、メトロポリタンエリアネットワーク(MAN)、プライベートネットワーク、アドホックネットワーク、イントラネット、光ファイバーベースのネットワークなど、および/またはこれらまたは他のタイプのネットワークの組み合わせなどの様々なタイプのネットワークを含んでもよい。
【0019】
図1に示されるデバイスおよびネットワークの数および配置が実施例として提供される。実際には、
図1に示されるものに比べて、追加のデバイスおよび/またはネットワーク、より少ないデバイスおよび/またはネットワーク、異なるデバイスおよび/またはネットワーク、または異なる配置のデバイスおよび/またはネットワークがあってもよい。さらに、
図1に示される2つ以上のデバイスは、単一のデバイス内で実装されてもよく、または
図1に示される単一のデバイスは、複数の分散デバイスとして実装されてもよい。さらに、または代替的に、システム100のデバイスのセット(例えば、1つまたは複数のデバイス)は、システム100の別のデバイスのセットによって実行されると説明される1つまたは複数の機能を実行してもよい。
【0020】
ここで、
図2Aおよび2Bを参照すると、点群更新システムのブロック
図200Aおよび200Bが示されている。ブロック
図200Aは、リフティングスキームにおける直接または順方向変換を示してもよい。ブロック
図200Bは、リフティングスキームにおける逆方向変換を示してもよい。
【0021】
予測ベースの属性コーディングの場合、(P
i)
i=1…Nを点群点に関連付けられた位置のセットとし、(M
i)
i=1…Nを(P
i)
i=1…Nに関連付けられたモートン(Morton)コードとする。まず、点はそれらに関連するモートンコードに従って昇順で並べ替えられる。lをこのプロセスに従って順序付けられた点インデックスの配列とする。エンコーダ/デコーダは、lで定義された順序に従って、それぞれ点を圧縮/解凍する。それぞれの反復で、点P
iが選択される。P
iから前の点のs(たとえば、s=64)までの距離が分析され、P
iの最近傍のk(たとえば、k=3)が予測に使用されるために選択される。より正確には、属性値(a
i)
i∈0…k-1が、点iの最近傍の距離に基づく線形補間プロセスを使用して予測される。
【数1】
を現在の点iのk最近傍のセットとし、
【数2】
をそれらの復号/再構成された属性値とし、
【数3】
を現在の点までのそれらの距離とする。予測される属性値
【数4】
は次の式:
【数5】
によって与えられる。
【0022】
リフティングベースの属性コーディングは、予測ベースのコーディングに基づいて構築される。予測ベースのスキームと比較した主な違いは、2つの追加ステップが導入されていることである。1つ目は、更新演算子の導入である。2つ目は、適応量子化戦略の使用である。
【0023】
ここで
図2Cを参照すると、領域適応階層変換(RAHT)の
図200Cが示されている。ブロック
図200Cは、順方向変換202Aおよび逆方向変換202Bを示してもよい。RAHTコーディングの場合、
【数6】
であり、w
0は入力係数F
l+1,2nの重みの表記であり、一方で、w
1はF
l+1,2n+1の場合と同じである。
【0024】
異なるコンポーネント間の相関関係を利用するために、予測ベースの属性コーディング、リフティングベースの属性コーディング、およびRAHTベースの属性コーディングなどの異なる属性コーディング方法で予測スキームを適用することができる。クロスコンポーネント予測は、元の信号または予測残差または変換係数に適用されることができる(RAHTなどの変換手法が適用されている場合)。以下の実施形態では、予測ベースの属性コーディングが実施例として使用され、クロスコンポーネント予測スキームが、異なるチャネル(またはコンポーネント)の予測残差に適用される。
【0025】
線形モデル、二次モデル、その他の多項式モデルなど、さまざまなモデルを構築して、コンポーネント間の信号を予測できる。以下の実施形態では、線形モデルが実施例として使用される。
【0026】
クロスコンポーネント予測は、RGBカラー属性のみに限定されるものではなく、コーディングされた属性のタイプが複数あり、それらの間に相関関係がある限り、他の属性にも利用されることができる。次の実施形態では、RGBカラー属性が実施例として使用される。
【0027】
R、G、およびBコンポーネントの予測残差がそれぞれr0,r1,r2であり、これらの信号が線形に相関していると仮定する。これらのコンポーネントは、任意の順序でコーディングされ得る。コーディング順序は、すべての場合に固定することも、またはケースバイケースで異なる方法で構成され、シーケンスパラメータセット、ジオメトリパラメータセット、スライスヘッダーなどの高レベル構文の一部としてビットストリームで指定され得る。以下の実施形態では、コーディング順序は、最初にRであり、その後にGおよびBが続くと想定される。したがって、Gの予測残差をコーディングする場合、Rの再構成された予測残差を予測として使用でき、Bの予測残差をコーディングする場合、RとGの再構成された予測残差を予測に使用できる。
【0028】
より具体的には、Rコンポーネントの予測残差、すなわち、r0が最初にコーディングされ、量子化/量子化解除後のその再構成された値がR0であると仮定する。次いで、Gコンポーネントの予測残差、つまり、r1は、R0によって次のように予測され得る:
p1=α0R0+β0
α0およびβ0は線形モデルパラメータであり、p1はGの予測される予測残差である。したがって、予測残差、つまり、r1を直接コーディングする代わりに、r1とp1の間の2次残差、すなわち、r1’=r1-p1をコーディングできる。次いで、Gの2次残差、つまりr1’がコーディングされ、量子化/量子化解除後のその再構成された値はR1’であり、Gコンポーネントの再構成された予測残差はR1=R1’+p1である。最後に、Bコンポーネントの予測残差、つまり、r2は、R0およびR1の両方によって次のように予測でき、
p2=α1R0+β1R1+γ1
α1と、β1と、γ1は、線形モデルパラメータであり、p2はBの予測された予測残差である。したがって、予測残差、つまりr2を直接コーディングする代わりに、r2とp2の間の2次残差、つまり、r2’=r2-p2をコーディングできる。次いで、Bの2次残差、つまりr2’がコーディングされ、量子化/量子化解除後のその再構成された値は、R2’であり、Bコンポーネントの再構成された予測残差は、R2=R2’+p2である。
【0029】
線形モデルは、次に提案されるように、さまざまな方法で単純化され得る。ただし、単純化の方法は他の同様の形式であり得ることに留意されたい。一実施形態では、線形モデルは以下のように単純化される:
p1=α0R0、p2=α1R0+β1R1
β0およびγ1はゼロとして固定される。別の実施形態では、線形モデルは以下のように単純化でき、
p1=α0R0、p2=α1R0
β0およびγ1およびβ1はゼロとして固定される。別の実施形態では、線形モデルは以下のように単純化でき、
p1=α0R0、p2=β1R1
β0およびγ1およびα1はゼロとして固定される。別の実施形態では、線形モデルは以下のように単純化でき、
p1=α0R0、p2=α0R0
β0およびγ1およびβ1はゼロとして固定され、α1=α0である。別の実施形態では、線形モデルは以下のように単純化でき、
p1=α0R0、p2=α0R1
β0およびγ1およびα1はゼロとして固定され、β1=α0である。
【0030】
上記の線形モデルでは、モデルパラメータはエンコーダとデコーダの両方で、すべての場合に固定されうる。一実施形態では、予測を次のように導き出すことができる:
p
1=R
0、p
2=R
0、
p
1=R
0、p
2=R
1、または
【数7】
【0031】
しかしながら、モデルパラメータは点群ごとに異なる可能性があり、パラメータは、シーケンスパラメータセット、属性パラメータセット、またはスライスヘッダーなどの高レベルの構文でシグナリングされることができる。
【0032】
他の実施形態では、モデルパラメータは、「低レベル構文」としてシグナリングされることもでき、これは、各コーディングユニット(ノード)が異なるパラメータのセットを有してもよいことを意味する。
【0033】
別の実施形態では、モデルパラメータを明示的にシグナリングすることを回避するために、再構成された予測残差からオンザフライでパラメータを適応的に学習できる。エンコーダとデコーダは、平均二乗誤差を最小化することにより、コーディング中に同じ訓練段階を進めてもよい。
【0034】
ここで
図2Dを参照すると、予測残差の構文要素の表200Dが示されている。予測残差をより効率的にコーディングするために、異なる属性コンポーネントが別々のコンテキストを使用してもよい。一実施形態では、R、G、およびBコンポーネントの両方が、異なるコンテキストモデルを使用する。prediction_residual_is_zero[i]は、i番目のコンポーネントの予測残差が0に等しいかどうかを指定する。prediction_residual_is_one[i]は、i番目のコンポーネントの予測残差が1に等しいかどうかを指定する。prediction_residual_is_two[i]は、i番目のコンポーネントの予測残差が2に等しいかどうかを指定する。prediction_residual_minus_three[i]は、i番目のコンポーネントの予測残差をprediction_residual_minus_three[i]+3として指定する。別の実施形態では、Rコンポーネントは別個のコンテキストモデルを使用し、GおよびBコンポーネントは同じコンテキストモデルを使用する。
【0035】
図3Aおよび3Bは、点群コーディングのための例示的なプロセス300Aおよび300Bを示すフローチャートである。
図3A~3Bは、
図1および2A~2Dの助けを借りて説明されてもよい。実施形態では、プロセス300Aおよびプロセス300Bの1つまたは複数のブロックを任意の順序で組み合わせられてもよい。例えば、実施形態では、プロセス300Bのブロックは、プロセス300Aからの結果を使用して、プロセス300Aのブロックの後に実行されてもよい。
【0036】
図3Aに示されるように、プロセス300Aは、ビットストリームから、点群に対応するデータを受信することを含んでもよい(ブロック311)。
【0037】
図3Aにさらに示されるように、プロセス300Aは、前記点群に関連する属性の複数のコンポーネントの中から第1のコンポーネントの第1の予測残差を、前記データから取得することを含んでもよい(ブロック312)。
【0038】
図3Aにさらに示されるように、プロセス300Aは、前記第1の予測残差を再構成することを含んでもよい(ブロック313)。
【0039】
図3Aにさらに示されるように、プロセス300Aは、前記再構成された第1の予測残差および少なくとも1つのモデルパラメータに基づいて、予測される第2の予測残差を決定することを含んでもよい(ブロック314)。
【0040】
図3Aにさらに示されるように、プロセス300Aは、前記予測される第2の予測残差に基づいて前記複数のコンポーネントの中から第2のコンポーネントの第2の予測残差を取得することを含んでもよい(ブロック315)。
【0041】
図3Aにさらに示されるように、プロセス300Aは、第2の予測残差を再構成することを含んでもよい(ブロック316)。
【0042】
図3Aにさらに示されるように、プロセス300Aは、前記再構成された第1の予測残差および前記再構成された第2の予測残差に基づいて、前記点群に対応する前記データを復号することを含んでもよい(ブロック317)。
【0043】
図3Bに示されるように、プロセス300Bは、前記再構成された第1の予測残差と、前記再構成された第2の予測残差と、前記少なくとも1つのモデルパラメータとに基づいて、予測される第3の予測残差を決定することを含んでもよい(ブロック321)。
【0044】
図3Bにさらに示されるように、プロセス300Bは、前記予測される第3の予測残差に基づいて、前記複数のコンポーネントの中から第3のコンポーネントの第3の予測残差を取得することを含んでもよい(ブロック322)。
【0045】
図3Bにさらに示されるように、プロセス300Bは、前記第3の予測残差を再構成することを含んでもよい(ブロック323)。
【0046】
図3Bにさらに示されるように、プロセス300Bは、前記再構成された第1の予測残差と、前記再構成された第2の予測残差と、前記再構成された第3の予測残差とに基づいて、前記点群に対応する前記データを復号することを含んでもよい(ブロック324)。
【0047】
実施形態では、第1、第2、および第3のコンポーネントは、
図1および2A~2Cに関して上述したコンポーネントに対応してもよい。例えば、第1、第2、および第3のコンポーネントは、上述したR、G、およびBコンポーネント、または必要に応じて他の任意のコンポーネントまたはチャネルに様々に対応してもよい。
【0048】
実施形態では、プロセス300Aおよびプロセス300Bのブロックは、上述した式のいずれかを使用して実行されてもよい。たとえば、実施形態では、R0は再構成された第1の予測残差を表してもよく、p1は予測される第2の予測残差を表してもよく、R1は再構成された第2の予測残差を表してもよく、p2は予測される第3の予測残差を表してもよく、α0、α1、β1、およびγ1は、少なくとも1つのモデルパラメータのモデルパラメータを表してもよい。
【0049】
実施形態では、前記少なくとも1つのモデルパラメータに対応するモデルは、線形モデル、二次モデル、および多項式モデルのうちの少なくとも1つを含んでもよい。
【0050】
実施形態では、前記少なくとも1つのモデルパラメータは、前記データにおいてシグナリングされてもよい。
【0051】
実施形態では、前記少なくとも1つのモデルパラメータは、予め決定されたモデルパラメータであってもよい。
【0052】
実施形態では、前記少なくとも1つのモデルパラメータは、前記再構成された第1の予測残差および前記再構成された第2の予測残差の少なくとも1つに基づいて適応的に学習されてもよい。
【0053】
実施形態では、前記第1のコンポーネントは、第1のコンテキストモデルに関連付けられてもよく、前記第2のコンポーネントは、前記第1のコンテキストモデルとは異なる第2のコンテキストモデルに関連付けられてもよい。
【0054】
図3A~3Bは、実装の例示のみを提供し、異なる実施形態がどのように実装され得るかに関する任意の制限を意味するものではないことは理解されてもよい。示されている環境には、設計と実装の要件に基づいて多くの変更が行われてもよい。
【0055】
図4は、例示的な実施形態に係る
図1に示されるコンピュータの内部および外部コンポーネントのブロック
図400である。
図4は、1つの実装の例示のみを提供し、異なる実施形態が実装されてもよい環境に関する任意の制限を意味するものではないことは理解されるべきである。示されている環境への多くの変更が、設計と実装の要件に基づいて変更が行われてもよい。
【0056】
コンピュータ102(
図1)およびサーバコンピュータ114(
図1)は、
図5に示される内部コンポーネント800A、Bおよび外部コンポーネント900A、Bのそれぞれのセットを含んでもよい。内部コンポーネント800の各セットは、1つまたは複数のプロセッサ820と、1つまたは複数のバス826上の1つまたは複数のコンピュータ可読RAM822および1つまたは複数のコンピュータ可読ROM824と、1つまたは複数のオペレーティングシステム828と、1つまたは複数のコンピュータ可読有形記憶デバイス830とを含む。
【0057】
プロセッサ820は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実装される。プロセッサ820は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理コンポーネントである。いくつかの実装形態では、プロセッサ820は、機能を実行するようにプログラムされることができる1つまたは複数のプロセッサを含む。バス826は、内部コンポーネント800A、B間の通信を可能にするコンポーネントを含む。
【0058】
1つまたは複数のオペレーティングシステム828と、ソフトウェアプログラム108(
図1)と、サーバコンピュータ114(
図1)上の点群コーディングプログラム116(
図1)は、それぞれのRAM822(典型的にはキャッシュメモリを含む)のうちの1つまたは複数を介してそれぞれのプロセッサ820のうちの1つまたは複数によって実行するためのそれぞれのコンピュータ可読有形記憶デバイス830の1つまたは複数上に記憶される。
図4に示される実施形態では、コンピュータ可読有形記憶デバイス830のそれぞれは、内蔵ハードドライブの磁気ディスク記憶デバイスである。代替的には、コンピュータ可読有形記憶デバイス830のそれぞれは、ROM824、EPROM、フラッシュメモリ、光ディスク、磁気光学ディスク、ソリッドステートディスク、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、および/またはコンピュータプログラムとデジタル情報を記憶できる別のタイプの非一時的なコンピュータ可読の有形記憶デバイスなどの半導体記憶デバイスである。
【0059】
内部コンポーネント800A、Bの各セットはまた、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスクまたは半導体記憶デバイスなどの1つまたは複数の携帯型コンピュータ可読有形記憶デバイス936からの読み取りおよび書き込みのためのR/Wドライブまたはインターフェース832を含む。ソフトウェアプログラム108(
図1)および点群コーディングプログラム116(
図1)などのソフトウェアプログラムは、それぞれの携帯型コンピュータ可読有形記憶デバイス936のうちの1つまたは複数に記憶され、それぞれのR/Wドライブまたはインターフェース832を介して読み取り、かつそれぞれのハードドライブ830にロードされることができる。
【0060】
内部コンポーネント800A、Bの各セットはまた、TCP/IPアダプタカード、無線Wi-Fiインターフェースカード、または3G、4G、もしくは5G無線インターフェースカードもしくはその他の有線または無線通信リンクなどのネットワークアダプタまたはインターフェース836を含む。ソフトウェアプログラム108(
図1)およびサーバコンピュータ114(
図1)上の点群コーディングプログラム116(
図1)は、ネットワーク(例えば、インターネット、ローカルエリアネットワークまたは他の広域ネットワーク)およびそれぞれのネットワークアダプタまたはインターフェース836を介して、外部コンピュータからコンピュータ102(
図1)およびサーバコンピュータ114にダウンロードされることができる。ネットワークアダプタまたはインターフェース836から、サーバコンピュータ114上のソフトウェアプログラム108および点群コーディングプログラム116が、それぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含んでもよい。
【0061】
外部コンポーネント900A、Bの各セットは、コンピュータディスプレイモニタ920、キーボード930、およびコンピュータマウス934を含むことができる。外部コンポーネント900A、Bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、および他のヒューマンインターフェイスデバイスを含むことができる。内部コンポーネント800A、Bの各セットはまた、コンピュータディスプレイモニタ920、キーボード930、およびコンピュータマウス934にインターフェースするためのデバイスドライバ840を含む。デバイスドライバ840、R/Wドライブまたはインターフェース832、およびネットワークアダプタまたはインターフェース836は、ハードウェアおよびソフトウェア(記憶デバイス830および/またはROM824に記憶されている)を備える。
【0062】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に列挙される教示の実施はクラウドコンピューティング環境に限定されないことを事前に理解されたい。むしろ、いくつかの実施形態は、現在知られている、または今後開発される任意の他のタイプのコンピューティング環境と組み合わせて実装されることができる。
【0063】
クラウドコンピューティングは、最小限の管理作業またはサービスのプロバイダーとの対話で、迅速にプロビジョニングおよびリリースされることができる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、サービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするサービス配信のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含んでもよい。
【0064】
特性は以下の通りである:
オンデマンドセルフサービス:クラウドコンシューマーは、サービスプロバイダーとの人間の対話を必要とせずに、必要に応じてサーバタイムやネットワークストレージなどのコンピューティング機能を一方的にプロビジョニングできる。
ブロードネットワークアクセス:機能はネットワーク経由で利用可能であり、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による使用を促進する標準メカニズムを介してアクセスされる。
リソースプーリング:プロバイダーのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者にサービスを提供するためにプールされ、さまざまな物理リソースと仮想リソースが需要に応じて動的に割り当てられ、再割り当てされる。消費者は通常、提供されたリソースの正確な場所を制御または認識することはできないが、より高いレベルの抽象化(国、州、データセンターなど)で場所を指定できる場合があるという点で、ある意味では場所に依存しない。
迅速な順応性:機能は、迅速かつ順応的にプロビジョニングされ、場合によっては自動的に、迅速にスケールアウトされ、迅速にリリースされて迅速にスケールインされることができる。消費者にとって、プロビジョニングに使用できる機能はしばしば無制限に見え、いつでも、いくつでも購入できる。
測定されたサービス:クラウドシステムは、サービスのタイプ(ストレージ、処理、帯域幅、アクティブなユーザーアカウントなど)に適したいくらかの抽象化レベルで計測機能を活用することにより、リソースの使用を自動的に制御および最適化する。リソースの使用状況は、監視、制御、および報告され、利用するサービスのプロバイダーとコンシューマーの両方に透明性を提供する。
【0065】
サービスモデルは以下の通りである:
サービスとしてのソフトウェア(SaaS):コンシューマーに提供される機能は、クラウドインフラストラクチャで実行されているプロバイダーのアプリケーションを使用することである。アプリケーションには、Webブラウザ(Webベースの電子メールなど)などのシンクライアントインターフェイスを介して、さまざまなクライアントデバイスからアクセス可能である。コンシューマーは、可能性のある限られたユーザ固有のアプリケーション構成設定を除いて、ネットワーク、サーバ、オペレーティングシステム、ストレージ、またはさらには個々のアプリケーション機能を含む基盤となるクラウドインフラストラクチャを管理または制御しない。
サービスとしてのプラットフォーム(PaaS):コンシューマーに提供される機能は、プロバイダーによってサポートされるプログラミング言語とツールを使用して作成された、コンシューマーが作成または取得したアプリケーションをクラウドインフラストラクチャに展開する。コンシューマーは、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む基盤となるクラウドインフラストラクチャを管理または制御しないが、展開されたアプリケーションと、場合によってはアプリケーションホスティング環境の構成を制御する。
サービスとしてのインフラストラクチャ(laaS):コンシューマーに提供される機能は、処理、ストレージ、ネットワーク、およびその他の基本的なコンピューティングリソースをプロビジョニングすることであり、コンシューマーはオペレーティングシステムやアプリケーションを含むことができる任意のソフトウェアを展開および実行できる。コンシューマーは、基盤となるクラウドインフラストラクチャを管理または制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御し、場合によっては選択したネットワークコンポーネント(ホストファイアウォールなど)を限定的に制御する。
【0066】
展開モデルは以下の通りである:
プライベートクラウド:クラウドインフラストラクチャは、組織のためだけに運用される。組織またはサードパーティによって管理されてもよく、オンプレミスまたはオフプレミスに存在してもよい。
コミュニティクラウド:クラウドインフラストラクチャは複数の組織で共有され、懸念事項(ミッション、セキュリティ要件、ポリシー、コンプライアンスの考慮事項など)を共有している特定のコミュニティをサポートする。組織またはサードパーティによって管理されてもよく、オンプレミスまたはオフプレミスに存在してもよい。
パブリッククラウド:クラウドインフラストラクチャは、一般の人々または大規模な業界グループが利用できるようになっており、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、一意のエンティティのままであるが、データとアプリケーションポータビリティ(クラウド間で負荷分散のためのクラウドバーストなど)を可能にする標準化された、または独自のテクノロジーによって結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の構成である。
【0067】
クラウドコンピューティング環境は、ステートレス、低結合、モジュール性、およびセマンティック相互運用性に重点を置いたサービス指向である。クラウドコンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0068】
図5を参照すると、例示的なクラウドコンピューティング環境500が示されている。示されるように、クラウドコンピューティング環境500は、1つまたは複数のクラウドコンピューティングノード10を含み、例えば、携帯情報端末(PDA)または携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、および/または自動車コンピュータシステム54Nなどのクラウドコンシューマーによって使用されるローカルコンピューティングデバイスと通信してもよい。クラウドコンピューティングノード10は、互いに通信することができる。それらは、物理的または仮想的に、上記のプライベート、コミュニティ、パブリック、またはハイブリッドクラウド、またはそれらの組み合わせなどの1つまたは複数のネットワークにグループ化されてもよい(図は示せず)。これにより、クラウドコンピューティング環境500は、クラウドコンシューマーがローカルコンピューティングデバイス上でリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム、および/またはソフトウェアを提供することができる。
図5に示されるコンピューティングデバイス54A~Nのタイプは、例示のみを目的としており、クラウドコンピューティングノード10およびクラウドコンピューティング環境500は、任意のタイプのネットワークおよび/またはネットワークアドレス可能接続を介して(例えば、ウェブブラウザを使用して)任意のタイプのコンピュータ化されたデバイスと通信できることが理解される。
【0069】
図6を参照すると、クラウドコンピューティング環境500(
図5)によって提供される機能的抽象化層600のセットが示されている。
図6に示されるコンポーネント、層、および機能は、例示のみを目的としており、実施形態はそれに限定されないことは事前に理解されるべきである。示されているように、以下の層および対応する機能が提供される。
【0070】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶デバイス65、およびネットワーク並びにネットワーキングコンポーネント66を含む。いくつかの実施形態では、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0071】
仮想化層70は、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーション並びにオペレーティングシステム74、および仮想クライアント75が提供され得る抽象化層を提供する。
【0072】
一例では、管理層80は、以下に説明する機能を提供してもよい。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を提供する。メータリングと価格設定82は、リソースがクラウドコンピューティング環境内で利用されるときのコスト追跡、およびこれらのリソースの消費に対する料金または請求を提供する。一例では、これらのリソースは、アプリケーションソフトウェアライセンスを含んでもよい。セキュリティは、クラウドコンシューマーおよびタスクに対するID検証、およびデータ並びにその他のリソースに対する保護を提供する。ユーザーポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要なサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を提供する。サービスレベルアグリーメント(SLA)計画および履行85は、SLAに従って将来の要件が予想されるクラウドコンピューティングリソースの事前準備と調達を提供する。
【0073】
ワークロード層90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングとナビゲーション91、ソフトウェア開発とライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、および点群コーディング96を含む。点群コーディング96は、コンポーネント間の相関に基づいて点群データを復号してもよい。
【0074】
いくつかの実施形態は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、および/またはコンピュータ可読媒体に関係してもよい。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読非一時的記憶媒体(または複数の媒体)を含んでもよい。
【0075】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるために命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、これらに限定されないが、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述の任意の適切な組み合わせであってもよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、以下、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラム可能な読み取り専用メモリ(EPROMまたはフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、および前述の任意の適切な組み合わせを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波管または他の伝送媒体を通って伝播する電磁波(例えば、光ファイバケーブルを通る光パルス)またはワイヤを介して伝送される電気信号などの一時的な信号自体であると解釈されるべきではない。
【0076】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワークおよび/または無線ネットワークを介して外部コンピュータまたは外部記憶デバイスにダウンロードされることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含んでもよい。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0077】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、統合回路の構成データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語と、「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで記述されたいずれかのソースコードまたはオブジェクトコードであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、一部はユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、一部はユーザのコンピュータ上でかつ一部はリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行されてもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または、当該接続は外部コンピュータにされてもよい(たとえば、インターネットサービスプロバイダーを使用したインターネット経由で)。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、態様または動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行してもよい。
【0078】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されて、コンピュータのプロセッサまたは他のプログラム可能なデータ処理装置を介して実行される命令が、フローチャートおよび/またはブロック図ブロックまたは複数のブロックで指定された機能/動作を実施するための手段を作成するように、機械を製造してもよい。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラム可能なデータ処理装置、および/または他のデバイスに特定の方法で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよく、その結果、命令が格納されているコンピュータ可読記憶媒体は、フローチャートおよび/またはブロック図ブロックまたは複数のブロックで指定された機能/動作の態様を実施する命令を含む製造品を含む。
【0079】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の動作ステップを実行させて、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行される命令が、フローチャートおよび/またはブロック図ブロックまたは複数のブロックで指定された機能/動作を実装するように、コンピュータ実装プロセスを生成してもよい。
【0080】
図中のフローチャートおよびブロック図は、様々な実施形態に係るシステム、方法、およびコンピュータ可読媒体の可能な実装のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または命令の一部を表してもよく、これは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む。方法、コンピュータシステム、およびコンピュータ可読媒体は、図に示されているものに比べて、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。いくつかの代替の実装では、ブロックに示されている機能は、図に示されている順序とは異なってもよい。たとえば、連続して示される2つのブロックは、実際には同時にまたは実質的に同時に実行されてもよく、または、関連する機能に応じて、時にはブロックが逆の順序で実行されてもよい。ブロック図および/またはフローチャート図の各ブロック、およびブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能または動作を実行し、特定の目的のハードウェアとコンピュータ命令の組み合わせを実行する特定の目的のハードウェアベースのシステムによって実装できることにも留意されたい。
【0081】
本明細書に記載のシステムおよび/または方法は、異なる形態のハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実装されてもよいことは明らかである。これらのシステムおよび/または方法を実装するために使用される実際の特殊な制御ハードウェアまたはソフトウェアコードは、実装を制限するものではない。従って、システムおよび/または方法の動作および振る舞いは、特定のソフトウェアコードを参照せずに本明細書で説明され-ソフトウェアおよびハードウェアは、本明細書の説明に基づいてシステムおよび/または方法を実装するように設計されてもよいことが理解される。
【0082】
本明細書で使用されている要素、動作、または指示は、明示的に説明されていない限り、重要または必須であると解釈されるべきではない。また、本明細書で使用されるように、冠詞「1つの」および「ある」は、1つまたは複数の項目を含むことを意図しており、「1つまたは複数」と交換可能に使用されてもよい。さらに、本明細書で使用されるように、「セット」という用語は、1つまたは複数の項目(例えば、関連項目、非関連項目、関連項目と非関連項目の組み合わせなど)を含むことを意図し、「1つまたは複数」と交換可能に使用されてもよい。1つの項目のみが意図されている場合、「1つ」または同様の言語という用語が使用される。また、本明細書で使用されるような、「含む」、「有する」、「備える」などの用語は、自由形式の用語を意図している。さらに、「基づく」というフレーズは、特に明記しない限り、「少なくとも部分的に基づく」を意味することを意図している。
【0083】
様々な態様および実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示される実施形態に限定されることを意図するものでもない。特徴の組み合わせが特許請求の範囲に記載され、かつ/または明細書に開示されているとしても、これらの組み合わせは、可能な実施の開示を制限することを意図するものではない。実際、これらの特徴の多くは、特許請求の範囲および/または明細書に具体的に開示されていない方法で組み合わせられてもよい。以下に記載された各従属請求項は、1つの請求項のみに直接従属してもよいが、可能な実装の開示は、請求項セット内の他のすべての請求項と組み合わせた各従属請求項が含む。説明された実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実際の適用または技術的改善を最もよく説明するため、または当業者が本明細書に開示される実施形態を理解できるようにするために選択された。
【符号の説明】
【0084】
10 クラウドコンピューティングノード
54A 携帯電話
54B デスクトップコンピュータ
54C ラップトップコンピュータ
54N 自動車コンピュータシステム
60 ソフトウェア層
61 メインフレーム
62 サーバ
63 サーバ
64 ブレードサーバ
65 記憶デバイス
66 ネットワーキングコンポーネント
67 ネットワークアプリケーションサーバソフトウェア
68 データベースソフトウェア
70 仮想化層
71 仮想サーバ
72 仮想ストレージ
73 仮想ネットワーク
74 オペレーティングシステム
75 仮想クライアント
80 管理層
81 リソースプロビジョニング
82 価格設定
83 ユーザーポータル
84 サービスレベル管理
85 履行
90 ワークロード層
91 ナビゲーション
92 ライフサイクル管理
93 仮想教室教育配信
94 データ分析処理
95 トランザクション処理
96 点群コーディング
100 点群コーディングシステム
102 コンピュータ
104 プロセッサ
106 データ記憶デバイス
108 ソフトウェアプログラム
110 通信ネットワーク
112 データベース
114 サーバコンピュータ
116 点群コーディングプログラム
500 クラウドコンピューティング環境
600 機能的抽象化層
820 プロセッサ
826 バス
828 オペレーティングシステム
830 有形記憶デバイス
832 インターフェース
836 インターフェース
840 デバイスドライバ
900A 外部コンポーネント
900B 外部コンポーネント
920 コンピュータディスプレイモニタ
930 キーボード
934 コンピュータマウス
936 携帯型コンピュータ可読有形記憶デバイス