(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-05
(45)【発行日】2024-04-15
(54)【発明の名称】点群コーディングのための方法、コンピュータプログラム、システム、および非一時的コンピュータ読み取り可能媒体
(51)【国際特許分類】
G06F 16/51 20190101AFI20240408BHJP
【FI】
G06F16/51
(21)【出願番号】P 2022533335
(86)(22)【出願日】2021-07-12
(86)【国際出願番号】 US2021041253
(87)【国際公開番号】W WO2022046301
(87)【国際公開日】2022-03-03
【審査請求日】2022-06-03
(32)【優先日】2020-08-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-12-02
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-07-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャン,シアン
(72)【発明者】
【氏名】ガオ,ウエン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】長 由紀子
(56)【参考文献】
【文献】米国特許出願公開第2020/0043199(US,A1)
【文献】中国特許出願公開第111405281(CN,A)
【文献】国際公開第2019/078047(WO,A1)
【文献】国際公開第2020/101021(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-958
G06T 9/00
H04N 19/00
(57)【特許請求の範囲】
【請求項1】
プロセッサによって実行可能な
非可逆点群コーディングの方法であって、
ビットストリームから、点群に対応するデータを受信するステップ
であって、前記データは、前記点群と、前記点群に含まれる各点の幾何学位置及び属性値と、を含む、ステップと、
単一の幾何学位置に対応する複数の重複点
を含むブロックの中の最初の点である第1重複点の第1属性値を再構成するステップ
であって、前記ブロックの中の複数の重複点は、前記属性値に基づいてソートされている、ステップと、
前記複数の重複点の中から
前記第1重複点以外の少なくとも1つの残りの重複点の少なくとも1つの残りの属性値に対応する少なくとも1つの予測残差を取得するステップと、
前記再構成された第1属性値および前記少なくとも1つの予測残差に基づいて、前記少なくとも1つの残りの属性値を再構成するステップ
であって、ある重複点の属性値は、前記ある重複点の予測残差と、前記属性値に基づいて前記ブロックの中でソートされた前記複数の重複点の順序で前の重複点の再構成された属性値と、に基づき再構成される、ステップと、
前記再構成された第1属性値および前記再構成された少なくとも1つの残りの属性値に基づいて、前記点群
に含まれるすべての点の属性値を再構成するステップと、
を含
み、
前記複数の重複点の前記予測残差は、以下:
(1)前記複数の重複点のすべての重複点の予測残差は、フロア演算によって量子化され、丸め込まれる、又は、
(2)負である前記予測残差はゼロと見なされる、又は、
(3)前記第1重複点の予測残差は量子化されず、負である前記少なくとも1つの残りの重複点の予測残差はゼロと見なされる、
のいずれか1つにより常に正であることを保証される、方法。
【請求項2】
前記複数の重複点は、前記複数の重複点のうちの複数成分属性に含まれる成分の成分値に従ってソートされる、請求項1に記載の方法。
【請求項3】
前記属性値は、反射率又はRGBカラーの最初の色成分の値を表し、前記少なくとも1つの予測残差の符号は、
前記ブロックの中の前記複数の重複点が、前記属性
値の昇順で
ソートされた場合に正であると推定され、前記属性
値の降順で
ソートされた場合に負であると推定される、請求項1
又は2に記載の方法。
【請求項4】
前記(1)の場合、
前記
複数の重複点のすべての重複点の予測残差が、
Q=(R*QS)>>shiftにより量子化され、Qは量子化残差であり、Rは予測残差であり、QSは量子化スカラーであり、>>shiftは右シフト演算を示す、又は、
前記第1重複点の予測残差は量子化されず、前記少なくとも1つの残りの重複点の予測残差はQ=(R*QS+offset)>>shiftにより量子化され、Qは量子化残差であり、Rは予測残差であり、QSは量子化スカラーであり、>>shiftは右シフト演算を示し、offsetはオフセットを示す、請求項
1に記載の方法。
【請求項5】
非可逆点群コーディングのためのコンピュータシステムであって、前記コンピュータシステムは、コンピュータプログラムコードを格納するよう構成される1つ以上のコンピュータ読み取り可能非一時的記憶装置と、前記コンピュータプログラムコードにアクセスし前記コンピュータプログラムコードにより指示されるように動作するよう構成される1つ以上のプロセッサと、を含み、前記コンピュータプログラムコードは、
前記1つ以上のプロセッサに、ビットストリームから、点群に対応するデータを受信させるよう構成される受信コード
であって、前記データは、前記点群と、前記点群に含まれる各点の幾何学位置及び属性値と、を含む、受信コードと、
単一の幾何学位置に対応する複数の重複点
を含むブロックの中の最初の点である第1重複点の第1属性値を再構成させるよう構成される第1再構成コード
であって、前記ブロックの中の複数の重複点は、前記属性値に基づいてソートされている、第1再構成コードと、
前記1つ以上のプロセッサに、前記複数の重複点の中から
前記第1重複点以外の少なくとも1つの残りの重複点の少なくとも1つの残りの属性値に対応する少なくとも1つの予測残差を取得させるよう構成される取得コードと、
前記1つ以上のプロセッサに、前記再構成された第1属性値および前記少なくとも1つの予測残差に基づいて、前記少なくとも1つの残りの属性値を再構成させるよう構成される第2再構成コード
であって、ある重複点の属性値は、前記ある重複点の予測残差と、前記属性値に基づいて前記ブロックの中でソートされた前記複数の重複点の順序で前の重複点の再構成された属性値と、に基づき再構成される、第2再構成コードと、
前記1つ以上のプロセッサに、前記再構成された第1属性値および前記再構成された少なくとも1つの残りの属性値に基づいて、前記点群
に含まれるすべての点の属性値を再構成させるよう構成される
再構成コードと、
を含
み、
前記複数の重複点の前記予測残差は、以下:
(1)前記複数の重複点のすべての重複点の予測残差は、フロア演算によって量子化され、丸め込まれる、又は、
(2)負である前記予測残差はゼロと見なされる、又は、
(3)前記第1重複点の予測残差は量子化されず、負である前記少なくとも1つの残りの重複点の予測残差はゼロと見なされる、
のいずれか1つにより常に正であることを保証される、コンピュータシステム。
【請求項6】
前記複数の重複点は、前記複数の重複点のうちの複数成分属性に含まれる成分の成分値に従ってソートされる、請求項
5に記載のコンピュータシステム。
【請求項7】
前記属性値は、反射率又はRGBカラーの最初の色成分の値を表し、前記少なくとも1つの予測残差の符号は、
前記ブロックの中の前記複数の重複点が、前記属性
値の昇順で
ソートされた場合に正であると推定され、前記属性
値の降順
ソートされた場合に負であると推定される、請求項
5又は6に記載のコンピュータシステム。
【請求項8】
前記(1)の場合、
前記
複数の重複点のすべての重複点の予測残差が、
Q=(R*QS)>>shiftにより量子化され、Qは量子化残差であり、Rは予測残差であり、QSは量子化スカラーであり、>>shiftは右シフト演算を示す、又は、
前記第1重複点の予測残差は量子化されず、前記少なくとも1つの残りの重複点の予測残差はQ=(R*QS+offset)>>shiftにより量子化され、Qは量子化残差であり、Rは予測残差であり、QSは量子化スカラーであり、>>shiftは右シフト演算を示し、offsetはオフセットを示す、請求項
5に記載のコンピュータシステム。
【請求項9】
点群コーディングのためのコンピュータプログラムを格納している非一時的コンピュータ読み取り可能媒体であって、前記コンピュータプログラムは、1つ以上のコンピュータプロセッサに、
ビットストリームから、点群に対応するデータを受信させ、
前記データは、前記点群と、前記点群に含まれる各点の幾何学位置及び属性値と、を含み、
単一の幾何学位置に対応する複数の重複点
を含むブロックの中の最初の点である第1重複点の第1属性値を再構成させ、
前記ブロックの中の複数の重複点は、前記属性値に基づいてソートされており、
前記複数の重複点の中から
前記第1重複点以外の少なくとも1つの残りの重複点の少なくとも1つの残りの属性値に対応する少なくとも1つの予測残差を取得させ、
前記再構成された第1属性値および前記少なくとも1つの予測残差に基づいて、前記少なくとも1つの残りの属性値を再構成させ、
ある重複点の属性値は、前記ある重複点の予測残差と、前記属性値に基づいて前記ブロックの中でソートされた前記複数の重複点の順序で前の重複点の再構成された属性値と、に基づき再構成され、
前記再構成された第1属性値および前記再構成された少なくとも1つの残りの属性値に基づいて、前記点群
に含まれるすべての点の属性値を再構成させる、
よう構成され
、
前記複数の重複点の前記予測残差は、以下:
(1)前記複数の重複点のすべての重複点の予測残差は、フロア演算によって量子化され、丸め込まれる、又は、
(2)負である前記予測残差はゼロと見なされる、又は、
(3)前記第1重複点の予測残差は量子化されず、負である前記少なくとも1つの残りの重複点の予測残差はゼロと見なされる、
のいずれか1つにより常に正であることを保証される、非一時的コンピュータ読み取り可能媒体。
【請求項10】
プロセッサによって実行可能な
非可逆点群コーディングの方法であって、
点群
と、前記点群に含まれる各点の幾何学位置に基づいて、
前記点群に含まれる点をソートするステップと、
単一の幾何学位置に対応する複数の重複点
をブロックにグループ化し、前記複数の重複点の属性値に基づいて前記ブロックの中で前記複数の重複点をソートするステップと、
前記複数の重複点の予測残差を取得するステップ
であって、
(1)前記複数の重複点のすべての重複点の予測残差は、フロア演算によって量子化され、丸め込まれる、又は、
(2)負である前記予測残差はゼロと見なされる、又は、
(3)前記ブロックの中の最初の点である第1重複点の予測残差は量子化されず、前記第1重複点以外の負である少なくとも1つの残りの重複点の予測残差はゼロと見なされる、
のいずれか1つにより常に正であることを保証される、ステップと、 を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、2020年8月26日に出願された米国仮出願第63/070,471号、2020年12月2日に出願された米国仮出願第63/120,557号、および2021年7月6日に米国特許商標庁に出願された米国仮出願第17/368,133号に基づく優先権を主張し、それらの全体が参照により本明細書に組み込まれる。
【0002】
「技術分野」
本開示は、一般に、データ処理の分野に関し、より具体的には、点群コーディングに関する。
【背景技術】
【0003】
近年、点群(Point Cloud)が広く使用されている。たとえば、物体の探知位置確認のための自律走行車両や、地図作成のための地理情報システム(GIS)、文化遺産の可視化保存のための文化遺産、コレクションなどにも利用されている。点群は、通常、三次元(3D)の高次元点のセットを含み、それぞれは、3D位置情報および色、反射率などの追加属性を含む。複数のカメラや奥行きセンサー、あるいはさまざまな設定でライダーを使って撮影することができ、オリジナルのシーンを現実的に表現するために数千から数十億の点で構成することができる。圧縮技術は、点群を表すのに必要なデータ量を減らして、より高速な転送やストレージの削減を行う必要がある。
【発明の概要】
【0004】
実施形態は、点群コーディングのための方法、システムおよびコンピュータ読み取り可能媒体に関連する。一態様によると、プロセッサによって実行可能な点群コーディングの方法であって、
ビットストリームから、点群に対応するデータを受信するステップと、
前記データに基づいて、単一の幾何学位置に対応する複数の重複点の中から第1重複点の第1属性値を再構成するステップと、
前記複数の重複点の中から少なくとも1つの残りの重複点の少なくとも1つの残りの属性値に対応する少なくとも1つの予測残差を取得するステップと、
前記再構成された第1属性値および前記少なくとも1つの予測残差に基づいて、前記少なくとも1つの残りの属性値を再構成するステップと、
前記再構成された第1属性値および前記再構成された少なくとも1つの残りの属性値に基づいて、前記点群に対応する前記データを復号するステップと、
を含み得る方法が提供される。
【0005】
別の態様によると、点群コーディングのためのコンピュータシステムであって、前記コンピュータシステムは、コンピュータプログラムコードを格納するよう構成される1つ以上のコンピュータ読み取り可能非一時的記憶装置と、前記コンピュータプログラムコードにアクセスし前記コンピュータプログラムコードにより指示されるように動作するよう構成される1つ以上のプロセッサと、を含んでよく、前記コンピュータプログラムコードは、
前記1つ以上のプロセッサに、ビットストリームから、点群に対応するデータを受信させるよう構成される受信コードと、
前記1つ以上のプロセッサに、前記データに基づいて、単一の幾何学位置に対応する複数の重複点の中から第1重複点の第1属性値を再構成させるよう構成される第1再構成コードと、
前記1つ以上のプロセッサに、前記複数の重複点の中から少なくとも1つの残りの重複点の少なくとも1つの残りの属性値に対応する少なくとも1つの予測残差を取得させるよう構成される取得コードと、
前記1つ以上のプロセッサに、前記再構成された第1属性値および前記少なくとも1つの予測残差に基づいて、前記少なくとも1つの残りの属性値を再構成させるよう構成される第2再構成コードと、
前記1つ以上のプロセッサに、前記再構成された第1属性値および前記再構成された少なくとも1つの残りの属性値に基づいて、前記点群に対応する前記データを復号させるよう構成される復号コードと、
を含む、コンピュータシステムが提供される。
【0006】
また別の態様によると、点群コーディングのためのコンピュータ読み取り可能媒体であって、前記コンピュータ読み取り可能記憶媒体は、1つ以上のコンピュータ読み取り可能記憶装置と、1つ以上の有形記憶装置のうちの少なくとも1つに格納されたコンピュータプログラムと、を含み、前記コンピュータプログラムは、1つ以上のプロセッサに、
ビットストリームから、点群に対応するデータを受信するステップと、
前記データに基づいて、単一の幾何学位置に対応する複数の重複点の中から第1重複点の第1属性値を再構成するステップと、
前記複数の重複点の中から少なくとも1つの残りの重複点の少なくとも1つの残りの属性値に対応する少なくとも1つの予測残差を取得するステップと、
前記再構成された第1属性値および前記少なくとも1つの予測残差に基づいて、前記少なくとも1つの残りの属性値を再構成するステップと、
前記再構成された第1属性値および前記再構成された少なくとも1つの残りの属性値に基づいて、前記点群に対応する前記データを復号するステップと、
を生じさせるよう構成され得る、コンピュータ読み取り可能媒体が提供される。
【図面の簡単な説明】
【0007】
これらおよび他の目的、特徴、および利点は、添付の図面と関連して読まれるべき、説明のための実施形態の以下の詳細な説明から明らかになるだろう。図面の種々の特徴は、詳細な説明と関連して、当業者の理解を促進する際に、明確さのために縮尺通りではない。以下の図面がある。
【
図1】少なくとも1つの実施例によるネットワーク接続されたコンピュータ環境を示す図である。
【
図2A】少なくとも1つの実施形態による、点群更新システムのブロック図である。
【
図2B】少なくとも1つの実施形態による、点群更新システムのブロック図である。
【
図2C】少なくとも1つの実施形態による、領域適応階層変換の図である。
【
図2D】少なくとも1つの実施形態による、予測残差のための構文要素の表である。
【
図2E】少なくとも1つの実施形態による、予測残差のための構文要素の表である。
【
図2F】少なくとも1つの実施形態による、予測残差のための構文要素の表である。
【
図2G】少なくとも1つの実施形態による、予測残差のための構文要素の表である。
【
図3】少なくとも1つの実施形態による、点群コーディングのためのプログラムによって実行されるステップを示す、動作フローチャートである。
【
図4】少なくとも1つの実施形態による、
図1に示されたコンピュータおよびサーバーの内部および外部構成要素のブロック図である。
【
図5】少なくとも1つの実施形態による、
図1に示されるコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図6】少なくとも1つの実施形態による、
図5の例示的なクラウドコンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0008】
請求項に係る構造および方法の詳細な実施形態は、本明細書に開示されているが、開示された実施形態は、単に、種々の形態で実施され得る請求項に係る構造および方法を例示するに過ぎないことを理解することができる。しかしながら、これらの構造体および方法は、多くの異なる形態で具体化することができ、本明細書に記載の例示的な実施形態に限定されるものと解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が網羅的かつ完全であり、当業者に範囲を完全に伝えるように提供される。説明では、周知の特徴および技術の詳細は、提示された実施形態を不必要に不明瞭にすることを避けるために省略することができる。
【0009】
実施形態は、概して、データ処理の分野に関し、より詳細には、点群コーディングに関する。以下に説明する例示的な実施形態は、とりわけ、点群属性データをコーディングするための構成要素間相関方法を使用するためのシステム、方法、およびコンピュータプログラムを提供する。従って、いくつかの実施形態は、点群データの最も近い隣接を見つける必要がないことによって、点群コーディングの効率を向上させることを可能にすることによって、計算の分野を改善する能力を有する。
【0010】
前述したように、近年、点群は広く利用されている。たとえば、物体の探知位置確認のための自律走行車両や、地図作成のための地理情報システム(GIS)、文化遺産および集合などを可視化保存するために文化遺産のためにも利用されている。点群は、通常、三次元(3D)の高次元点のセットを含み、それぞれは、3D位置情報および色、反射率などの追加属性を含む。複数のカメラや奥行きセンサー、あるいはさまざまな設定でライダーを使って撮影することができ、オリジナルのシーンを現実的に表現するために数千から数十億の点で構成することができる。圧縮技術は、点群を表すのに必要なデータ量を減らして、より高速な転送やストレージの削減を行う必要がある。予測ベース属性コーディングでは、現在の点の属性は、現在の点に近い既にコーディングされた点から予測される。
【0011】
TMC13モデルでは、幾何学的情報と、カラーや反射率などの関連する属性は、別々に圧縮される。地形情報は、点群の3D座標であり、占有情報と共に8分木パーティションによってコーディングされる。次いで、予測、リフティングおよび領域適応階層変換技法を用いて、再構成された幾何学に基づいて属性が圧縮される。しかし、各点の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に関して後述するように、サービスとしてのソフトウェア(Software as a Service (SaaS))、サービスとしてのプラットフォーム(Platform as a Service (PaaS))、またはサービスとしてのインフラストラクチャー(Infrastructure as a Service (laaS))などのクラウドコンピューティングサービスモデルにおいて動作することができる。サーバーコンピュータ114はまた、プライベートクラウド、コミュニティクラウド、パブリッククラウド、またはハイブリッドクラウドのようなクラウドコンピューティング展開モデル内に配置されてもよい。
【0016】
点群コーディングに使用できるサーバーコンピュータ114は、データベース112と対話することができる点群コーディングプログラム116(以下、「プログラム」という)を実行することができる。点群コーディングプログラムの方法は、
図3に関して以下により詳細に説明される。一実施形態では、コンピュータ102は、ユーザーインターフェースを含む入力デバイスとして動作することができ、一方、プログラム116は、主としてサーバーコンピュータ114上で動作することができる。代替的な実施形態では、プログラム116は、主として1つ以上のコンピュータ102上で動作し、サーバーコンピュータ114は、プログラム116によって使用されるデータの処理および記憶のために使用される。プログラム116は、独立したプログラムであってもよいし、より大きな点群コーディングプログラムに統合されてもよいことに留意されたい。
【0017】
しかしながら、プログラム116のための処理は、ある場合には、コンピュータ102とサーバーコンピュータ114との間で任意の比率で共有され得ることに留意されたい。別の実施形態では、プログラム116は、2つ以上のコンピュータ、サーバーコンピュータ、またはコンピュータとサーバーコンピュータのいくつかの組み合わせ、たとえば、ネットワーク110を介して単一のサーバーコンピュータ114と通信する複数のコンピュータ102で動作することができる。別の実施形態では、たとえば、プログラム116は、ネットワーク110を介して複数のクライアントコンピュータと通信する複数のサーバーコンピュータ114上で動作することができる。あるいは、プログラムは、ネットワークを介してサーバーおよび複数のクライアントコンピュータと通信するネットワークサーバー上で動作してもよい。
【0018】
ネットワーク110は、有線接続、無線接続、光ファイバー接続、またはそれらの組み合わせを含んでいてもよい。一般に、ネットワーク110は、コンピュータ102とサーバーコンピュータ114との間の通信をサポートする接続とプロトコルの任意の組み合わせとすることができる。ネットワーク110は、たとえば、ローカルエリアネットワーク(local area network (LAN))、インターネットのような広域ネットワーク(wide area network (WAN))、公衆交換電話ネットワーク(Public Switched Telephone Network (PSTN))のような電気通信ネットワーク、無線ネットワーク、公衆交換ネットワーク、衛星ネットワーク、セルラーネットワーク(たとえば、第5世代(5G)ネットワーク、ロングタームエボリューション(long-term evolution (LTE))ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(code division multiple access (CDMA))ネットワーク等)、公衆陸上移動ネットワーク(public land mobile network (PLMN))、大都市エリアネットワーク(metropolitan area network (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コードとする。まず、点は関連するMortonコードに従って昇順に並べ替えられる。この過程に従って順序付けられた点インデックスの配列を考える。エンコーダ/デコーダは、Iで定義された順序に従って各点を圧縮/解凍する。各反復で、点P
iを選択する。P
iの前のs個(たとえば、s=64)の点までの距離が分析され、P
iの最も近い隣接点(たとえば、k=3)が予測に使用されるように選択される。より正確には、点iの最も近い近隣点の距離に基づいた線形補間法を用いて、属性値(a
i)
i∈0…k-1を予測する。現在の点iのk個の最も近い隣接の集合を以下の通りとし:
【数1】
それらの復号/再構成された属性値を以下とし:
【数2】
それらの現在の点までの距離を以下とする:
【数3】
iの予測属性値は、以下の(1)式によって与えられる:
【数4】
【0022】
リフティングベースの属性コーディングは、予測ベースのコーディングに基づいて構築される。予測に基づく方式と比較した主な相違点は、2つの付加ステップが導入されることである。1つ目は、更新演算子の導入である。2つ目は適応量子化戦略の使用である。
【0023】
次に、
図2Cを参照すると、領域適応階層変換(region adaptive hierarchical transform (RAHT))の
図200Cが示されている。ブロック
図200Cは、順変換202Aおよび逆変換202Bを示すことができる。RAHTコーディングでは、
【数5】
とw
0は入力係数F
l+1,2nの重みの表記であ
り、w
1はF
l+1,2n+1
の重みの表記である。
【0024】
多くの異なる理由により、点群は重複点を含むことがあり、それらの幾何学位置は同じであるが、それらの属性値は同じである場合も同じでない場合もある。実施形態は、重複点のこれらの属性値をより効率的にコーディングすることに関連し得る。
【0025】
実施形態は、別々に、または任意の順序で組み合わせて使用され得る。さらに、方法(または実施形態)、エンコーダ、およびデコーダのそれぞれは、処理回路(たとえば、1つ以上のプロセッサ、または1つ以上の集積回路)によって実装されてもよい。一例では、1つ以上のプロセッサは、非一時的コンピュータ読み取り可能媒体に格納されたプログラムを実行する。
【0026】
この開示は、TMC13ソフトウェアまたはMPEG-PCCまたはAVS-PCC標準に限定されるものではなく、ほとんどのPCCシステムの一般的なソリューションであることに留意されたい。
【0027】
重複点の属性予測
属性コーディングは幾何学コーディングの後に実行されるので、与えられた点の属性値をコーディングするとき、その再構成された幾何学位置は既知である。従って、属性のコーディング効率を改善するために、そのような幾何学的情報を利用することができる。
【0028】
{Xi}(i=1,2,…,N)は3D点の集合であり、各点Xiは幾何学位置Piと属性Aiに関連付けられているとする。実施形態は、属性コーディングに関連し得るため、幾何学位置、すなわち、Piは、属性予測のために公知であると仮定され得る。
【0029】
最初に、これらの点は、それらの幾何学位置に基づいてソート/グループ化される。いくつかの実施態様において、点は、幾何学位置のMortonコードに従ってソートされる。すべての重複点は、ブロックにグループ化され、属性値に従って並べ替えられる。具体的には、
【数6】
は重複点のグループを含む。ここで、N
kはグループ内の点の数であり、それらの幾何学位置は同じであり、それらの属性値はたとえば昇順または降順でソートされる。以下の議論では、属性値は昇順でソートされると仮定されていることに注意されたい。すなわち、
【数7】
属性が反射率のように一次元である場合、ソートはそれらの値によって直接行うことができる。もし属性がRGB色のように多次元であるなら、ソートは一つの特定の次元(たとえば、RかGかBのどちらか)で行われるべきである。ソートステップは、デコーダが属性予測残差を直接解析する間に、エンコーダ側でのみ適用されることに注意されたい。
【0030】
次に、属性値によってソートされる重複点のブロックに対して、このブロックのまさに最初の点を除いて、ブロックの残りの点は、そのブロックの前の再構成点の属性値から予測される。具体的には、
【数8】
は、ブロック内のまさに最初の点の属性であり、任意の方法でコーディングすることができるが、これは本明細書の焦点ではない。
【数9】
について、それは前の点の再構成された属性値から予測することができる。すなわち、
【数10】
【0031】
最後に、予測残差
【数11】
はエントロピーコーディングによってコーディングされる。属性値は昇順に並べ替えられるため、以下が保証される。
【数12】
したがって、
【数13】
の符号ビットは、明示的なシグナルなしに推測することができる。
【0032】
重複点の予測残差の解析
上述の実施形態は、エンコーダの視点に関するものであってもよい。さらなる実施形態は、重複点の予測残差の構文解析処理のデコーダの視点に関連してもよい。すなわち、
【数14】
【0033】
実施形態において、属性は、一次元、たとえば反射率であってもよい。このような予測残差の構文表は、
図2Dに示される通りであってよい。
【0034】
次に、
図2Dを参照すると、予測残差のための構文要素の表200Dが示されている。prediction_residual_is_zeroは、予測残差の絶対値が0に等しいかどうかを指定してよい。prediction_residual_abs_is_oneは、予測残差の絶対値が1に等しいかどうかを指定してよい。prediction_residual_abs_is_twoは、予測残差の絶対値が2に等しいかどうかを指定してよい。prediction_residual_abs_minus_threeは、予測残差の絶対値をprediction_residual_minus_three+3として指定してよい。prediction_residual_signは予測残差の符号を指定してよい。isSignInterredは、prediction_residual_signが推測できるか、またはシグナリングされる必要があるかを指定してよい。isSignBitInferredは、ある点が前のコーディング点と同じ幾何学位置を持つ場合、すなわち、それが重複点である場合にtrueに設定される。
【0035】
別の実施形態では、属性はRGBカラーのような多次元である。点が最初のR成分に関して昇順に並べられていると仮定する。このような予測残差の構文表は、
図2Eに示される通りであってよい。
【0036】
次に、
図2Eを参照すると、予測残差のための構文要素の表200Eが示されている。prediction_residual_is_zero prediction_residual_is_zero[i]は、i番目の成分の予測残差が0に等しいかどうかを指定してよい。prediction_residual_abs_is_one[i]は、i番目の成分の予測残差の絶対値が1に等しいかどうかを指定してよい。prediction_residual_abs_is_two[i]は、i番目の成分の予測残差の絶対値が2に等しいかどうかを指定してよい。prediction_residual_abs_minus_three[i]は、i番目の成分の予測残差の絶対値をprediction_residual_minus_three[i]+3として指定してよい。isSignBitInferredは、prediction_residual_signが推測できるか、またはシグナリングされる必要があるかを指定してよい。isSignBitInferredは、ある点が前のコーディング点と同じ幾何学位置を持つ場合、すなわち、それが重複点である場合にtrueに設定される。この実施形態では、R成分に対してソートが実行されるので、R成分のみがisSignBitInferredでチェックされることに留意されたい。
【0037】
非可逆属性コーディング
上述の実施形態は、可逆属性コーディングに関連し得る。非可逆属性コーディングでは、予測残差
【数15】
は、再構成された属性値
【数16】
が元の属性値
【数17】
よりも大きくなり得るので、負であってよい。従って、予測残差
【数18】
の符号ビットは、非可逆属性コーディングでは推定できず、さもなければ、エンコーダ-デコーダ不一致問題が発生する。
【0038】
以下に説明する実施形態は、損失性のある属性コーディングに関するこの不一致問題に取り組むことができる。
【0039】
不一致の問題は粗い量子化によって引き起こされる可能性があり、予測残差
【数19】
の符号ビットは推定できない。この問題を解決するために2つの方法を提案した。一つは予測(または量子化)法を変更し、予測残差
【数20】
が常に0以上であることを確認することである。別の方法は、予測残差の符号ビットを符号化することである。これら2種類の方法の例を以下に示す。
【0040】
一般に、予測残差に関するスカラー量子化は、量子化スカラーを除算した後に、以下の式(2)に示す丸め込み演算によって行うことができる:
【数21】
ここで、RとQは予測残差であり、量子化残差である。QSは量子化スカラーであり、オフセットとシフトはQSの値によって決まる。
【0041】
一実施形態では、重複属性の予測残差が常に正であることを保証するために、すべての重複点の予測残差の量子化処理、すなわち、
【数22】
が、以下の式(3):に示されるように、量子化スカラーを除算した後に、フロア演算によって適用される。
【数23】
ここで、オフセット値はゼロに設定される。
【0042】
別の実施形態では、グループG
kにおける第1重複点の予測残差、すなわち、
【数24】
は、量子化なしで可逆的にコーディングされ、グループG
kにおける重複点の残りの予測残差、すなわち、
【数25】
は、(2)によって量子化され、エントロピーコーディングによってコーディングされる。
【0043】
別の実施形態では、エンコーダ側では、重複点の予測残差、すなわち
【数26】
が負であると検出された場合、それは、ゼロに等しくなり、ゼロとしてコーディングされる。
【0044】
別の実施形態では、グループG
kにおける第1重複点の予測残差、すなわち、
【数27】
は、量子化なしで可逆的にコーディングされる。グループG
kにおける重複点の残りの予測残差、すなわち
【数28】
は、ゼロに設定され、陰性として検出された場合、ゼロとしてコーディングされる。
【0045】
重複点の残りの符号ビットをコーディングする方法
予測残差が正であることを保証できない場合、重複点の予測残差の符号ビットが明示的にシグナリングされてよい。重複点は、一般に、前のコーディング点と同じ幾何学位置を持つ点群内の点を参照する。
【0046】
一実施形態では、属性は、反射率のような一次元である。このような予測残差の構文表は、
図2Fに示されるようにすることができる。
【0047】
次に、
図2Fを参照すると、予測残差のための構文要素の表200Fが示されている。prediction_residual_is_zeroは、予測残差の絶対値が0に等しいかどうかを指定してよい。prediction_residual_abs_is_oneは、予測残差の絶対値が1に等しいかどうかを指定してよい。prediction_residual_abs_is_twoは、予測残差の絶対値が2に等しいかどうかを指定してよい。prediction_residual_abs_minus_threeは、予測残差の絶対値をprediction_residual_minus_three+3として指定してよい。prediction_residual_signは予測残差の符号を指定してよい。isDuplicatePointは、ある点が前のコーディング点と同じ幾何学位置を持つ場合、すなわちそれが重複点である場合にtrueに設定される。isAttributeLosslessCodedは、属性残差が量子化なしでコーディングされる場合はtrueに設定され、そうでない場合はfalseに設定される。isAttributeLosslessCodedがfalseであるか、isDuplicatePointがfalseである場合、prediction_residual_signは明示的にコーディングされる。そうでない場合、prediction_residual_signは正であると推測できる。prediction_residual_is_zero、prediction_residual_abs_is_one、prediction_residual_abs_is_two、prediction_residual_abs_minus_three、およびprediction_residual_signを含む構文は、コンテキストの有無にかかわらずエントロピーコーディングによってコーディングできることに注意する。もしそれらがコンテキストでコーディングされるなら、フラグisDuplicatePointは、コーディング効率を高めるためにコンテキストの一つとして使うことができる。
【0048】
別の実施形態では、属性はRGBカラーのような多次元である。点がR成分、すなわち最初の成分に関して昇順に並べられていると仮定する。このような予測残差の構文表は、
図2Gに示される通りであってよい。
【0049】
次に、
図2Gを参照すると、予測残差のための構文要素の表200Gが示されている。prediction_residual_is_zero[i]は、i番目の成分の予測残差が0に等しいかどうかを指定してよい。prediction_residual_abs_is_one[i]は、i番目の成分の予測残差の絶対値が1に等しいかどうかを指定してよい。prediction_residual_abs_is_two[i]は、i番目の成分の予測残差の絶対値が2に等しいかどうかを指定してよい。prediction_residual_abs_minus_three[i]は、i番目の成分の予測残差の絶対値をprediction_residual_minus_three[i]+3として指定してよい。isDuplicatePointは、ある点が前のコーディング点と同じ幾何学位置を持つ場合、すなわちそれが重複点である場合にtrueに設定される。この実施形態では、R成分に対してソートが実行されるので、R成分のみがisDuplicatePointでチェックされることに注意する。isAttributeLosslessCodedは、属性残差が量子化なしでコーディングされる場合はtrueに設定され、そうでない場合はfalseに設定される。iが0でない場合、またはisAttributeLosslessCodedがfalseである場合、またはisDuplicatePointがfalseである場合、prediction_residual_signは明示的にコーディングされる。そうでない場合、prediction_residual_signは正であると推測できる。prediction_residual_is_zero[i]、prediction_residual_abs_is_one[i]、prediction_residual_abs_is_two[i]、prediction_residual_abs_minus_three[i]、およびprediction_residual_sign[i]を含む構文は、コンテキストの有無にかかわらずエントロピーコーディングによってコーディングできることに注意されたい。もしそれらがコンテキストでコーディングされるなら、フラグisDuplicatePointは、コーディング効率を高めるためにコンテキストの一つとして使うことができる。
【0050】
図3は、点群コーディングのための例示的なプロセス300を示すフローチャートである。
図3は、
図1および2A~2Eの助けを借りて説明することができる。実施形態において、プロセス300の1つ以上のブロックは、任意の順序で組み合わされてもよい。
【0051】
図3に示すように、プロセス300は、ビットストリームから、点群に対応するデータを受信することを含んでいてもよい(ブロック311)。
【0052】
図3にさらに示されるように、プロセス300は、データに基づいて、単一の幾何学位置に対応する複数の重複点の中から第1の重複点の第1の属性値を再構成することを含んでいてもよい(ブロック312)。
【0053】
さらに
図3に示すように、プロセス300は、複数の重複点の中から、少なくとも1つの残りの重複点の少なくとも1つの残りの属性値に対応する少なくとも1つの予測残差を得るステップを含んでいてもよい(ブロック313)。
【0054】
図3にさらに示されるように、プロセス300は、再構成された第1の属性および少なくとも1つの予測残差に基づいて、少なくとも1つの残りの属性値を再構成することを含んでいてもよい(ブロック314)。
【0055】
図3にさらに示されるように、プロセス300は、再構成された第1の属性値および再構成された少なくとも1つの残りの属性値に基づいて、点群に対応するデータを復号するステップを含んでいてもよい(ブロック315)。
【0056】
実施形態において、複数の重複点は、複数の重複点の属性値に従ってソートされてもよい。
【0057】
実施形態において、複数の重複点は、複数の重複点の複数の構成要素属性に含まれる構成要素の構成要素値に従ってソートされてもよい。
【0058】
実施形態において、少なくとも1つの予測残差の符号を示す符号ビットは、データにおいてシグナリングされないことがある。
【0059】
実施形態において、少なくとも1つの予測残差の符号は、正であると推定され得る。実施形態において、少なくとも1つの予測残差の符号は、属性が昇順である場合に正であると推定され得、少なくとも1つの予測残差の符号は、属性が降順である場合に負であると推定され得る。
【0060】
実施形態において、少なくとも1つの予測残差の符号を示す符号ビットは、データにおいてシグナリングされてもよい。
【0061】
実施形態において、データは、重複点の属性値の予測残差がゼロ以上でなければならないように符号化されてもよい。実施形態において、データは、重複点の属性値の予測残差が、属性が昇順である場合にはゼロ以上であり、属性が降順である場合には予測残差がゼロ以下であるように符号化されてもよい。
【0062】
実施形態において、予測残差は、フロア演算を使用して符号化されてもよい。実施形態において、予測残差は、フロア演算によって量子化され、丸め込まれてもよい。
【0063】
実施形態において、データは、重複点の属性値の予測残差のうちの負の予測残差がゼロとして符号化されるように符号化されてもよい。実施形態において、データは、重複点の属性値の予測残差の中からの予測残差がゼロとして符号化されるように符号化されてもよい。
【0064】
図3は、実装の例示のみを提供し、異なる実施形態がどのように実装され得るかに関して制限を意味しないことが理解されよう。図示された環境に対する多くの修正は、設計および実施要件に基づいて行われ得る。
【0065】
図4は、例示的な実施形態による、
図1に示されたコンピュータの内部および外部構成要素のブロック
図400である。
図4は、1つの実装の例示にすぎず、異なる実施形態が実装され得る環境に関するいかなる制限も意味しないことを理解されたい。図示された環境に対する多くの修正は、設計および実施要件に基づいて行われ得る。
【0066】
コンピュータ102(
図1)およびサーバーコンピュータ114(
図1)は、
図5に示される内部構成要素800A、Bおよび外部構成要素900A、Bのそれぞれのセットを含むことができる。内部構成要素800のセットのそれぞれは、1つ以上のプロセッサ820、1つ以上のコンピュータ読み取り可能RAM822、および1つ以上のバス826上の1つ以上のコンピュータ読み取り可能ROM824、1つ以上のオペレーティングシステム828、および1つ以上のコンピュータ読み取り可能有形記憶装置830を含む。
【0067】
プロセッサ820は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実装される。プロセッサ820は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理構成要素である。いくつかの実施態様では、プロセッサ820は、機能を実行するようにプログラムされ得る1つ以上のプロセッサを含む。バス826は、内部構成要素800A、B間の通信を可能にする構成要素を含む。
【0068】
サーバーコンピュータ114(
図1)上の1つまたは複数のオペレーティングシステム828、ソフトウェアプログラム108(
図1)、および点群コーディングプログラム116(
図1)は、それぞれのRAM822(通常はキャッシュメモリを含む)の1つまたは複数を介してそれぞれのプロセッサ820のうちの1つまたは複数によって実行するために、それぞれのコンピュータ読み取り可能有形記憶装置830のうちの1つまたは複数に記憶される。
図4に示す実施形態では、コンピュータ読み取り可能有形記憶装置830のそれぞれは、内部ハードドライブの磁気ディスク記憶装置である。あるいは、コンピュータ読み取り可能有形記憶装置830のそれぞれは、ROM824、EPROM、フラッシュメモリ、光ディスク、光磁気ディスク、固体ディスク、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、および/またはコンピュータプログラムおよびデジタル情報を記憶することができる他のタイプの非一時的コンピュータ読み取り可能有形記憶装置のような半導体記憶装置である。
【0069】
内部構成要素800A、Bの各セットはまた、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク、または半導体記憶装置のような1つ以上のポータブルコンピュータ読み取り可能有形記憶装置936から読み書きするためのR/Wドライブまたはインターフェース832を含む。ソフトウェアプログラム108(
図1)および点群コーディングプログラム116(
図1)などのソフトウェアプログラムは、それぞれのポータブルコンピュータ読み取り可能有形記憶装置936の1つ以上に記憶され、それぞれのR/Wドライブまたはインターフェース832を介して読み込まれ、それぞれのハードドライブ830にロードされる。
【0070】
内部構成要素800A、Bの各セットは、TCP/IPアダプターカード、無線Wi-Fiインターフェースカード、または3G、4G、または5G無線インターフェースカード、または他の有線または無線通信リンクなどのネットワークアダプターまたはインターフェース836も含む。サーバーコンピュータ114(
図1)上のソフトウェアプログラム108(
図1)および点群コーディングプログラム116(
図1)は、ネットワーク(たとえば、インターネット、ローカルエリアネットワークまたは他の広域ネットワーク)およびそれぞれのネットワークアダプターまたはインターフェース836を介して、外部コンピュータからコンピュータ102(
図1)およびサーバーコンピュータ114にダウンロードすることができる。ネットワークアダプターまたはインターフェース836から、サーバーコンピュータ114上のソフトウェアプログラム108および点群コーディングプログラム116がそれぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバー、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバーを含むことができる。
【0071】
外部構成要素900A、Bのセットのそれぞれは、コンピュータ表示モニター920、キーボード930、およびコンピュータマウス934を含むことができる。外部構成要素900A、Bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、および他のヒューマンインターフェースデバイスを含むことができる。内部構成要素800A、Bのセットのそれぞれは、コンピュータ表示モニター920、キーボード930、およびコンピュータマウス934にインターフェースするためのデバイスドライバ840も含む。デバイスドライバ840、R/Wドライブまたはインターフェース832、およびネットワークアダプターまたはインターフェース836は、ハードウェアおよびソフトウェア(記憶装置830および/またはROM824に記憶)を備える。
【0072】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載される教示の実装は、クラウドコンピューティング環境に限定されないことが、予め理解される。むしろ、いくつかの実施形態は、現在知られているか、または後に開発される任意の他のタイプのコンピューティング環境と共に実施可能である。
【0073】
クラウドコンピューティングは、構成可能なコンピューティングリソースの共有プール(ネットワーク、ネットワーク帯域幅、サーバー、処理、メモリ、ストレージ、アプリケーション、仮想マシン、サービス)への便利でオンデマンドなネットワークアクセスを可能にするためのサービス提供のモデルであり、最小限の管理努力またはサービスの提供者とのやりとりで迅速にプロビジョンおよびリリースすることができる。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことができる。
【0074】
特徴は以下の通りである:
オンデマンドセルフサービス:クラウド利用者は、必要に応じて、サービスプロバイダーとの人的なやりとりを必要とせずに、サーバーの時間やネットワークストレージなどのコンピューティング機能を一方的に提供することができる。
広域ネットワークアクセス:機能は、ネットワーク上で利用可能であり、異種のシンまたはシッククライアントプラットフォーム(たとえば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準メカニズムを通じてアクセスされる。
リソースプーリング:プロバイダーのコンピューティングリソースは、マルチテナントモデルを使用して複数の利用者にサービスを提供するためにプールされ、物理リソースと仮想リソースは、需要に応じて動的に割り当てられ再割り当てされる。消費者は、一般に、提供されたリソースの正確な位置に関する制御や知識を持たないが、より高いレベルの抽象化(たとえば、国、州、データセンター)で位置を特定することができるという点で、位置の独立性の感覚がある。
迅速な弾力性:能力は、場合によっては自動的に、急速にスケールアウトし、急速にスケールインするために、迅速に、かつ弾力的に提供することができる。消費者にとって、プロビジョニングに利用可能な能力はしばしば無制限であるように見え、いつでもどんな量でも購入できる。
被測定サービス:クラウドシステムは、サービスのタイプに適する何らかの抽象化レベル(たとえば、記憶、処理、帯域幅、およびアクティブユーザーアカウント)における測定能力を利用することにより、リソース使用を自動的に制御し最適化する。リソース使用は、モニターされ、制御され、および報告されることができ、利用されるサービスのプロバイダーおよび消費者の両者に透過性を提供する。
【0075】
サービスモデルは次の通り:
SaaS(Software as a Service):クラウドインフラ上で動作するプロバイダーのアプリケーションを利用することで、利用者に提供される機能。アプリケーションは、Webブラウザのようなシンクライアントインターフェース(たとえば、Webベースの電子メール)を介して、さまざまなクライアントデバイスからアクセスできる。ユーザーは基盤にあるインフラストラクチャーを、ネットワークであれ、サーバーであれ、オペレーティングシステムであれ、ストレージであれ、各アプリケーション機能ですら、管理したり制御したりすることはない。ただし、ユーザーに固有のアプリケーションの構成の設定はその例外となるだろう。
PaaS(Platform as a Service):クラウドインフラストラクチャー上に、プロバイダーがサポートするプログラミング言語やツールを使用して、コンシューマが作成または取得したアプリケーションを実装する機能。利用者は、ネットワーク、サーバー、オペレーティングシステム、ストレージなどの基盤となるクラウドインフラストラクチャーを管理または制御することはしないが、実装されたアプリケーションや、場合によってはアプリケーションホスティング環境の構成を制御することができる。
laaS(Infrastructure as a Service):消費者に提供される機能は、処理、ストレージ、ネットワーク、およびその他の基本的なコンピューティングリソースを提供することであり、消費者は、オペレーティングシステムおよびアプリケーションを含む任意のソフトウェアを配備し、実行することができる。利用者は、基盤となるクラウドインフラストラクチャーを管理または制御することはしないが、オペレーティングシステム、ストレージ、実装されたアプリケーション、および選択されたネットワーク構成要素(たとえば、ホストファイアウォール)の制限された制御を制御することができる。
【0076】
展開モデルは、以下の通りである:
プライベートクラウド:クラウドインフラストラクチャーは組織専用に運用される。組織または第三者によって管理され、敷地内または敷地外に存在することがある。
コミュニティクラウド:クラウドインフラストラクチャーは、いくつかの組織で共有され、共通の関心事(たとえば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス関心事項)を持つ特定のコミュニティをサポートする。組織または第三者によって管理され、敷地内または敷地外に存在する可能性がある。
パブリッククラウド:クラウドインフラストラクチャーは、クラウドサービスを販売する組織によって所有され、一般市民または大規模な業界団体が利用できるようになっている。
ハイブリッドクラウド:クラウドインフラストラクチャーは、2つ以上のクラウド(プライベート、コミュニティ、パブリック)から構成されており、ユニークなエンティティのままであるが、データとアプリケーションの移植性を可能にする標準化された、または独自の技術(クラウド間の負荷分散のためのクラウドバーストなど)によって結合されている。
【0077】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味論的相互運用性に焦点を当てたサービス指向である。クラウドコンピューティングの核心は、相互接続されたノードのネットワークからなるインフラストラクチャーである。
【0078】
図5を参照すると、例示的なクラウドコンピューティング環境500が示されている。図示のように、クラウドコンピューティング環境500は、1つ以上のクラウドコンピューティングノード10を含み、クラウド利用者が使用するローカルコンピューティングデバイス、たとえば、パーソナルデジタルアシスタント(PDA)または携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、および/または自動車コンピュータシステム54Nが、それらと通信することができる。クラウドコンピューティングノード10は、互いに通信することができる。それらは、物理的または仮想的に、上述のようなプライベート、コミュニティ、公共、またはハイブリッドクラウド、またはそれらの組み合わせのような1つまたは複数のネットワークにグループ化(図示せず)されてもよい。これにより、クラウドコンピューティング環境500は、クラウド利用者がローカルコンピューティングデバイス上のリソースを維持する必要のないサービスとして、インフラストラクチャー、プラットフォームおよび/またはソフトウェアを提供することができる。
図5に示すコンピュータ装置54A~54Nのタイプは、単に例示的なものであることを意図したものであり、クラウドコンピューティングノード10およびクラウドコンピューティング環境500は、任意のタイプのネットワークおよび/またはネットワークアドレス指定可能接続(たとえば、ウェブブラウザを使用する)を介して任意のタイプのコンピュータ装置と通信することができることが理解される。
【0079】
図6を参照すると、クラウドコンピューティング環境500(
図5)によって提供される一組の機能抽象化層600が示されている。
図6に示す構成要素、層、および機能は、例示的なものに過ぎず、実施形態はこれに限定されるものではないことを予め理解されたい。図示のように、以下の層および対応する機能が提供される。
【0080】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例としては、メインフレーム61、RISCアーキテクチャーベースのサーバー62、サーバー63、ブレードサーバー64、ストレージデバイス65、およびネットワークおよびネットワーク構成要素66が挙げられる。いくつかの実施形態では、ソフトウェア構成要素は、ネットワークアプリケーションサーバーソフトウェア67およびデータベースソフトウェア68を含む。
【0081】
仮想化層70は、仮想サーバー71、仮想記憶装置72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、および仮想クライアント75の仮想エンティティの例を提供する抽象化層を提供する。
【0082】
一例において、管理層80は、以下に記載される機能を提供することができる。リソースプロビジョニング81は、クラウドコンピューティング環境内のタスクを実行するために利用されるコンピューティングリソースおよびその他のリソースの動的な調達を提供する。計測と価格82は、クラウドコンピューティング環境内でリソースが利用されるときのコスト追跡、およびこれらのリソースの消費に対する請求または請求を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを含むことができる。セキュリティは、クラウド利用者とタスクのための身元確認と、データやその他のリソースの保護を提供する。ユーザーポータル83は、利用者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されるサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を提供する。SLA(Service Level Agreement)の企画および充足85は、SLAに従って将来の要件が予測されるクラウドコンピューティングリソースの事前準備および調達を提供する。
【0083】
負荷層90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供される負荷および機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、および点群コーディング96を含む。点群コーディング96は、構成要素間相関に基づいて点群データを復号することができる。
【0084】
いくつかの実施形態は、可能なあらゆる技術的詳細レベルの集積化において、システム、方法、および/またはコンピュータ読み取り可能媒体に関することができる。コンピュータ読み取り可能媒体は、プロセッサに動作を実行させるためのコンピュータ読み取り可能なプログラム命令をその上に有するコンピュータ読み取り可能な非一時記憶媒体を含むことができる。
【0085】
コンピュータ読み取り可能記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置であってもよい。コンピュータ読み取り可能記憶媒体は、たとえば、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、またはこれらの適切な組み合わせであってもよいが、これらに限定されない。コンピュータ読み取り可能記憶媒体のより具体的な例の非網羅的リストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ、読み出し専用メモリ、消去可能プログラマブル読み出し専用メモリ、スタティックランダムアクセスメモリ、ポータブルコンパクトディスク読み出し専用メモリ、デジタル汎用ディスク、メモリスティック、フロッピーディスク、パンチカードのような機械的にコーディングされたデバイス、またはそれらに記録された命令を有する溝内の隆起構造、およびこれらの任意の適切な組み合わせを含む。本明細書で使用されるコンピュータ読み取り可能記憶媒体は、それ自体、たとえば、電波または他の自由に伝搬する電磁波、導波管または他の伝送媒体を通って伝搬する電磁波(たとえば、光ファイバーケーブルを通過する光パルス)、またはワイヤを通って伝送される電気信号のような、一時的な信号であると解釈されるべきではない。
【0086】
本明細書に記載のコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な記憶媒体から各コンピュータ/処理装置にダウンロードすることができ、あるいは、ネットワーク、たとえば、インターネット、ローカルエリアネットワーク、広域ネットワークおよび/または無線ネットワークを介して、外部コンピュータまたは外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバーを含むことができる。各計算/処理装置内のネットワークアダプターカードまたはネットワークインターフェースは、ネットワークからコンピュータ読み取り可能なプログラム命令を受け取り、コンピュータ読み取り可能なプログラム命令を、各計算/処理装置内のコンピュータ読み取り可能な記憶媒体に記憶するために転送する。
【0087】
演算を実行するためのコンピュータ読み取り可能プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャー命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、またはSmalltalk、C++などのようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語のような手続きプログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードのいずれかであってもよい。コンピュータ読み取り可能プログラム命令は、ユーザーのコンピュータ上で、一部はユーザーのコンピュータ上で、一部はユーザーのコンピュータ上で、一部はユーザーのコンピュータ上で、一部はリモートコンピュータ上で、一部はリモートコンピュータまたはリモートコンピュータまたはサーバー上で、スタンドアローンのソフトウェアパッケージとして、完全に実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカルエリアネットワークまたはワイドエリアネットワークを含む任意の種類のネットワークを介してユーザーのコンピュータに接続されてもよく、または、接続は、外部コンピュータ(たとえば、インターネットサービスプロバイダーを使用するインターネットを介して)に行われてもよい。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、態様または動作を実行するために、コンピュータ読み取り可能プログラム命令の状態情報を利用して、電子回路をパーソナライズすることによって、コンピュータ読み取り可能プログラム命令を実行することができる。
【0088】
これらのコンピュータ読み取り可能プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されて、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャートおよび/またはブロック図ブロックに指定された機能/動作を実行するための手段を生成するように、機械を製造することができる。これらのコンピュータ読み取り可能プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置、および/または他の装置を特定の方法で機能させることができるコンピュータ読み取り可能記憶媒体に記憶されてもよく、その結果、その中に記憶された命令を有するコンピュータ読み取り可能記憶媒体は、フローチャートおよび/またはブロック図ブロックに特定された機能/動作の態様を実行する命令を含む製造物品を含む。
【0089】
コンピュータ読み取り可能プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、または他の装置にロードされて、コンピュータ、他のプログラマブル装置、または他の装置で実行される命令がフローチャートおよび/またはブロック図ブロックに指定された機能/動作を実行するように、コンピュータ、他のプログラマブル装置、または他の装置に一連の動作ステップを実行させて、コンピュータ実施プロセスを生成させることができる。
【0090】
図におけるフローチャートおよびブロック図は、さまざまな実施形態によるシステム、方法、およびコンピュータ読み取り可能媒体の可能な実施形態のアーキテクチャー、機能性、および動作を示す。この点に関し、フローチャートまたはブロック図の各ブロックは、特定の論理機能を実装するための1つ以上の実行可能な命令を含む、モジュール、セグメント、または命令の一部を表すことができる。この方法、コンピュータシステム、およびコンピュータ読み取り可能媒体は、図面に示されたものよりも、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでいてもよい。いくつかの代替的な実装では、ブロックに記載された機能は、図に記載された順序から外れてもよい。たとえば、連続して示される2つのブロックは、実際には、同時または実質的に同時に実行されてもよく、または、関連する機能に応じて、ブロックは、逆の順序で実行されてもよい。また、ブロック図および/またはフローチャート図の各ブロック、およびブロック図および/またはフロー図のブロックの組み合わせは、指定された機能または動作を実行するか、または特定目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特定目的のハードウェアベースのシステムによって実現することができることに留意されたい。
【0091】
本明細書に記載したシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせの異なる形態で実施することができることは明らかであろう。これらのシステムおよび/または方法を実施するために使用される実際の専用制御ハードウェアまたはソフトウェアコードは、実施を制限するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実施するように設計されてもよいことが理解される。
【0092】
本明細書中で使用されるいかなる要素、動作、または命令も、明示的に記述されない限り、重要または必須と解釈されるべきではない。また、本願明細書において使用されるとき、冠詞「a」および「an」は、1つ以上の項目を含むことを意図し、「1つ以上の」と同義的に使用されてよい。さらに、本願明細書において使用されるとき、用語「セット」は、1つ以上の項目(たとえば、関連する項目、無関係の項目、関連する項目と無関係の項目との組合せ)を含むことを意図し、「1つ以上の」と同義的に使用されてよい。1つの項目のみが意図されるとき、用語「1つ」または同様の言葉が使用される。また、本明細書で使用される用語「有する(has、have、having)」などは、オープンエンドの用語であることが意図されている。さらに、語句「に基づく」は、明示的に別段の記載がない限り、「少なくとも部分的に基づく」を意味することが意図されている。
【0093】
種々の態様および実施形態の説明は、説明のために提示されてきたが、開示された実施形態を網羅することを意図するものではなく、限定するものでもない。特徴の組み合わせが特許請求の範囲に記載され、かつ/または明細書に開示されているとしても、これらの組み合わせは、可能な実施の開示を制限するものではない。実際、これらの特徴の多くは、請求項に具体的に記載されていない、および/または明細書に開示されていない方法で組み合わせることができる。以下に列挙される各従属請求項は、1の請求項のみに直接依存することができるが、可能な実装の開示は、各従属請求項を、請求項のセットの中の他の全ての請求項と組み合わせて含む。多くの修正および変形は、説明した実施形態の範囲から逸脱することなく、当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見出される技術に対する実際的な応用または技術的な改良を最もよく説明するため、または当業者が本明細書で開示される実施形態を理解することを可能にするために選択された。