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

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

▶ クアルコム,インコーポレイテッドの特許一覧

特表2023-545381ジオメトリ点群圧縮における動き推定
<>
  • 特表-ジオメトリ点群圧縮における動き推定 図1
  • 特表-ジオメトリ点群圧縮における動き推定 図2
  • 特表-ジオメトリ点群圧縮における動き推定 図3
  • 特表-ジオメトリ点群圧縮における動き推定 図4
  • 特表-ジオメトリ点群圧縮における動き推定 図5
  • 特表-ジオメトリ点群圧縮における動き推定 図6
  • 特表-ジオメトリ点群圧縮における動き推定 図7
  • 特表-ジオメトリ点群圧縮における動き推定 図8
  • 特表-ジオメトリ点群圧縮における動き推定 図9
  • 特表-ジオメトリ点群圧縮における動き推定 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-30
(54)【発明の名称】ジオメトリ点群圧縮における動き推定
(51)【国際特許分類】
   G06T 9/40 20060101AFI20231023BHJP
【FI】
G06T9/40
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023519377
(86)(22)【出願日】2021-10-07
(85)【翻訳文提出日】2023-03-27
(86)【国際出願番号】 US2021053994
(87)【国際公開番号】W WO2022076701
(87)【国際公開日】2022-04-14
(31)【優先権主張番号】63/088,936
(32)【優先日】2020-10-07
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/090,627
(32)【優先日】2020-10-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/090,657
(32)【優先日】2020-10-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/495,428
(32)【優先日】2021-10-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】ケミン・カオ
(72)【発明者】
【氏名】アダルシュ・クリシュナン・ラマスブラモニアン
(72)【発明者】
【氏名】ヘルト・ファン・デル・アウウェラ
(72)【発明者】
【氏名】ジョン・スティーヴン・リマ
(72)【発明者】
【氏名】クリストファー・ブラナー
(72)【発明者】
【氏名】マルタ・カルチェヴィッチ
(72)【発明者】
【氏名】バッパディトヤ・レイ
(57)【要約】
点群データを符号化するためのデバイスであって、点群データを記憶するためのメモリと、メモリに結合され、回路に実装された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別するように構成されるデバイス。1つまたは複数のプロセッサは、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定し、グローバル動きパラメータの第2のセットに基づいて、基準フレームに動き補償を適用して現在のフレームについてのグローバル動き補償フレームを生成するようにさらに構成される。
【特許請求の範囲】
【請求項1】
点群データを符号化するためのデバイスであって、
前記点群データを記憶するためのメモリと、
前記メモリに結合され、回路に実装された1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別し、
前記グローバル動きパラメータの前記第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定し、
前記グローバル動きパラメータの前記第2のセットに基づいて、基準フレームに動き補償を適用して前記現在のフレームについてのグローバル動き補償フレームを生成するように構成されるデバイス。
【請求項2】
前記1つまたは複数のプロセッサは、前記グローバル動きパラメータの前記第2のセットをビットストリームにおいてシグナリングするように構成される、請求項1に記載のデバイス。
【請求項3】
前記1つまたは複数のプロセッサは、前記グローバル動きパラメータの前記第1のセットをビットストリームにおいてシグナリングするように構成される、請求項1に記載のデバイス。
【請求項4】
前記グローバル動きパラメータの前記第1のセットは、方位パラメータのセットを含む、請求項1に記載のデバイス。
【請求項5】
前記方位パラメータの前記セットは、前記現在のフレームについてのロール、ピッチ、ヨー、または角速度のうちの1つまたは複数を含む、請求項4に記載のデバイス。
【請求項6】
前記方位パラメータの前記セットは、前記現在のフレームと基準フレームとの間のロールの差、前記現在のフレームと前記基準フレームとの間のピッチの差、前記現在のフレームと前記基準フレームとの間のヨーの差、または前記現在のフレームと前記基準フレームとの間の角速度の差のうちの1つまたは複数を含む、請求項4に記載のデバイス。
【請求項7】
前記グローバル動きパラメータの前記第1のセットは、位置パラメータのセットを含む、請求項1に記載のデバイス。
【請求項8】
前記位置パラメータの前記セットは、前記現在のフレームについての変位または前記現在のフレームについての平均速度のうちの1つまたは複数を含む、請求項7に記載のデバイス。
【請求項9】
前記位置パラメータの前記セットは、East-North-Up座標系の東の速度、北の速度、または上の速度のうちの1つまたは複数を含む、請求項7に記載のデバイス。
【請求項10】
前記グローバル動きパラメータの前記第2のセットは、前記現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列ならびに前記現在のフレームについての平均速度を示す並進ベクトルを含む、請求項1に記載のデバイス。
【請求項11】
前記1つまたは複数のプロセッサは、前記現在のフレームについてのロール、前記現在のフレームについてのピッチ、前記現在のフレームについてのヨー、および前記現在のフレームについての平均速度を示す並進ベクトルをシグナリングするように構成される、請求項1に記載のデバイス。
【請求項12】
前記1つまたは複数のプロセッサは、前記現在のフレームと基準フレームとの間のロールの差、前記現在のフレームと前記基準フレームとの間のピッチの差、前記現在のフレームと前記基準フレームとの間のヨーの差、および前記現在のフレームの平均速度を示す並進ベクトルをシグナリングするように構成される、請求項1に記載のデバイス。
【請求項13】
前記1つまたは複数のプロセッサは、前記現在のフレームの平均速度を示す並進ベクトルをシグナリングし、前記現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列をシグナリングしないように構成される、請求項1に記載のデバイス。
【請求項14】
前記1つまたは複数のプロセッサは、前記現在のフレームの平均速度を示す大きさの並進ベクトルをシグナリングするように構成される、請求項1に記載のデバイス。
【請求項15】
前記1つまたは複数のプロセッサは、前記グローバル動き補償フレームに基づいて現在のフレームについての動きベクトル推定を実行するように構成され、かつ前記1つまたは複数のプロセッサは、動きベクトル推定を実行するために、ローカル動きについてのブロックサイズを最小予測ユニットサイズに等しくなるように制限するように構成される、請求項1に記載のデバイス。
【請求項16】
前記基準フレームは第1の基準フレームであり、前記現在のフレームは第1の現在のフレームであり、前記1つまたは複数のプロセッサは、第2の現在のフレームと第2の基準フレームとの間の平均2乗誤差を最小限に抑えることによって初期並進ベクトルを推定するように構成される、請求項1に記載のデバイス。
【請求項17】
前記現在のフレームは第1の現在のフレームであり、前記1つまたは複数のプロセッサは、
点が地上であるか否かを判定し、
前記点が地上であるか否かに基づいて第2の現在のフレームについての回転行列を推定するように構成される、請求項1に記載のデバイス。
【請求項18】
1つまたは複数のプロセッサは、前記点が地上であるか否かを示すラベルのセットをシグナリングするように構成される、請求項17に記載のデバイス。
【請求項19】
前記1つまたは複数のプロセッサは、前記点群データを生成するようにさらに構成される、請求項1に記載のデバイス。
【請求項20】
前記1つまたは複数のプロセッサは、前記点群データを生成することの一部として、LIDAR装置からの信号に基づいて前記点群データを生成するように構成される、請求項19に記載のデバイス。
【請求項21】
前記デバイスは、携帯電話、タブレットコンピュータ、車両、または拡張現実デバイスのうちの1つである、請求項1に記載のデバイス。
【請求項22】
デバイスは、符号化された点群データを送信するように構成されたインターフェースを備える、請求項1に記載のデバイス。
【請求項23】
点群データを符号化するための方法であって、
1つまたは複数のプロセッサによって、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別するステップと、
1つまたは複数のプロセッサによって、前記グローバル動きパラメータの前記第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定するステップと、
1つまたは複数のプロセッサによって、前記グローバル動きパラメータの前記第2のセットに基づいて、基準フレームに動き補償を適用して前記現在のフレームについてのグローバル動き補償フレームを生成するステップとを含む方法。
【請求項24】
前記1つまたは複数のプロセッサによって、前記グローバル動きパラメータの前記第2のセットをビットストリームにおいてシグナリングするステップをさらに含む、請求項23に記載の方法。
【請求項25】
1つまたは複数のプロセッサによって、前記グローバル動きパラメータの前記第1のセットをビットストリームにおいてシグナリングするステップをさらに含む、請求項23に記載の方法。
【請求項26】
前記グローバル動きパラメータの前記第1のセットは、方位パラメータのセットを含む、請求項23に記載の方法。
【請求項27】
前記方位パラメータの前記セットは、前記現在のフレームについてのロール、ピッチ、ヨー、または角速度のうちの1つまたは複数を含む、請求項26に記載の方法。
【請求項28】
前記方位パラメータの前記セットは、前記現在のフレームと基準フレームとの間のロールの差、前記現在のフレームと前記基準フレームとの間のピッチの差、前記現在のフレームと前記基準フレームとの間のヨーの差、または前記現在のフレームと前記基準フレームとの間の角速度の差のうちの1つまたは複数を含む、請求項26に記載の方法。
【請求項29】
前記グローバル動きパラメータの前記第1のセットは、位置パラメータのセットを含む、請求項23に記載の方法。
【請求項30】
前記位置パラメータの前記セットは、前記現在のフレームについての変位または前記現在のフレームについての平均速度のうちの1つまたは複数を含む、請求項29に記載の方法。
【請求項31】
前記位置パラメータの前記セットは、East-North-Up座標系の東の速度、北の速度、または上の速度のうちの1つまたは複数を含む、請求項29に記載の方法。
【請求項32】
前記グローバル動きパラメータの前記第2のセットは、前記現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列ならびに前記現在のフレームについての平均速度を示す並進ベクトルを含む、請求項23に記載の方法。
【請求項33】
前記現在のフレームについてのロール、前記現在のフレームについてのピッチ、前記現在のフレームについてのヨー、および前記現在のフレームについての平均速度を示す並進ベクトルをシグナリングするステップをさらに含む、請求項23に記載の方法。
【請求項34】
前記現在のフレームと基準フレームとの間のロールの差、前記現在のフレームと前記基準フレームとの間のピッチの差、前記現在のフレームと前記基準フレームとの間のヨーの差、および前記現在のフレームの平均速度を示す並進ベクトルをシグナリングするステップをさらに含む、請求項23に記載の方法。
【請求項35】
前記1つまたは複数のプロセッサによって、前記現在のフレームの平均速度を示す並進ベクトルをシグナリングし、前記現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列をシグナリングしないステップをさらに含む、請求項23に記載の方法。
【請求項36】
前記1つまたは複数のプロセッサによって、前記現在のフレームの平均速度を示す大きさの並進ベクトルをシグナリングするステップをさらに含む、請求項23に記載の方法。
【請求項37】
前記1つまたは複数のプロセッサによって、前記グローバル動き補償フレームに基づいて前記現在のフレームについての動きベクトル推定を実行するステップをさらに含み、動きベクトル推定を実行する前記ステップは、ローカル動きについてのブロックサイズを最小予測ユニットサイズに等しくなるように制限するステップを含む、請求項23に記載の方法。
【請求項38】
前記基準フレームは第1の基準フレームであり、前記現在のフレームは第1の現在のフレームであり、前記方法は、第2の現在のフレームと第2の基準フレームとの間の平均2乗誤差を最小限に抑えることによって初期並進ベクトルを推定するステップをさらに含む、請求項23に記載の方法。
【請求項39】
前記現在のフレームは第1の現在のフレームであり、前記方法は、
前記1つまたは複数のプロセッサによって、点が地上であるか否かを判定するステップと、
前記1つまたは複数のプロセッサによって、前記点が地上であるか否かに基づいて第2の現在のフレームについての回転行列を推定するステップとをさらに含む、請求項23に記載の方法。
【請求項40】
前記1つまたは複数のプロセッサによって、前記点が地上であるか否かを示すラベルのセットをシグナリングするステップをさらに含む、請求項39に記載の方法。
【請求項41】
前記1つまたは複数のプロセッサによって、前記点群データを生成するステップをさらに含む、請求項23に記載の方法。
【請求項42】
前記1つまたは複数のプロセッサによって、LIDAR装置からの信号に基づいて前記点群データを生成するステップをさらに含む、請求項41に記載の方法。
【請求項43】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令が、実行されたときに、1つまたは複数のプロセッサに、
グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別させ、
前記グローバル動きパラメータの前記第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定させ、
前記グローバル動きパラメータの前記第2のセットに基づいて、基準フレームに動き補償を適用させて前記現在のフレームについてのグローバル動き補償フレームを生成するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2021年10月6日に出願された米国特許出願第17/495428号、および2020年10月7日に出願された米国仮特許出願第63/088936号、および2020年10月12日に出願された米国仮特許出願第63/090627号、および2020年10月12日に出願された米国仮特許出願第63/090657号の優先権を主張し、これらの特許出願の各々の内容全体が参照により本明細書に組み込まれる。2021年10月6日に出願された米国特許出願第17/495428号は、2020年10月7日に出願された米国仮特許出願第63/088936号、および2020年10月12日に出願された米国仮特許出願第63/090627号、および2020年10月12日に出願された米国仮特許出願第63/090657号の優先権を主張する。
【0002】
本開示は、点群符号化および復号に関する。
【背景技術】
【0003】
点群とは、3次元空間における点の集合体である。点は、3次元空間内のオブジェクト上の点に対応し得る。したがって、点群は、3次元空間の物理的内容を表すのに使われてよい。点群は、非常に様々な状況における有用性を有し得る。たとえば、点群は、道路上のオブジェクトの位置を表すために、自律車両のコンテキストにおいて使われ得る。別の例では、点群は、拡張現実(AR)または複合現実(MR)アプリケーションにおいて仮想オブジェクトを位置決めする目的のために、環境の物理的内容を表すコンテキストにおいて使われ得る。点群圧縮とは、点群を符号化し、復号するためのプロセスである。点群を符号化すると、点群の記憶および送信に要するデータの量を削減することができる。
【発明の概要】
【課題を解決するための手段】
【0004】
概して、本開示では、3D Graphics Coding (3DG)グループによってMPEG内で開発中のジオメトリベースの点群圧縮(G-PCC)コーデックを使用し得る点群フレームの視覚化を改善するための技法について説明する。G-PCCコーダ(たとえば、G-PCCエンコーダまたはG-PCCデコーダ)は、基準フレームに動き補償を適用して動き補償フレームを生成するように構成されてもよい。たとえば、G-PCCエンコーダは、基準フレーム(たとえば、予測フレーム)に「グローバル」動き補償を適用して基準フレーム全体の回転および/または基準フレーム全体の並進に対応してもよい。この例では、G-PCCエンコーダは、「ローカル」動き補償を適用してグローバル動き補償よりも微細なスケールでの回転および/または並進に対応してもよい。たとえば、G-PCCエンコーダは、グローバル動き補償フレームの1つまたは複数のノード(たとえば、フレームの一部)のローカルノード動き補償を適用してもよい。
【0005】
本開示の技法によれば、G-PCCコーダ(たとえば、G-PCCエンコーダまたはG-PCCデコーダ)は、グローバルポジショニングシステム情報(たとえば、任意の衛星システム、たとえば、米国で実施されている全地球測位システム(GPS)などからの情報)に基づくグローバル動き補償を適用するように構成されてもよい。たとえば、G-PCCエンコーダは、グローバルポジショニングシステム情報からのグローバル動きパラメータ(global motion parameter)の第1のセットを識別してもよい。グローバル動きパラメータの第1のセットは、方位パラメータ(たとえば、ロール、ピッチ、ヨー、もしくは角速度)および/または位置パラメータ(たとえば、x次元、y次元、もしくはz次元に沿った変位もしくは速度)を含んでもよい。この例では、G-PCCエンコーダは、グローバル動きパラメータの第1のセットに基づいてグローバル動きパラメータの第2のセットを決定してもよい。たとえば、G-PCCエンコーダは、方位パラメータおよび/または位置パラメータを現在のフレームについての回転行列および並進ベクトルに変換してもよい。このようにして、G-PCCコーダ(たとえば、G-PCCエンコーダまたはG-PCCデコーダ)は、衛星情報を使用するグローバル動き補償を適用してもよく、このグローバル動き補償は、基準フレーム(たとえば、予測フレーム)と現在のフレームとの間の特徴点に基づいて現在のフレームについての回転行列および並進ベクトルを推定することよりも正確である場合がある。動き補償の精度を高めると、動き補償予測フレームの精度が高まることがあり、それによって、現在のフレームについて符号化される残差が低減してコーディング効率が高まることがある。
【0006】
一例では、本開示は、点群データを符号化するためのデバイスであって、点群データを記憶するためのメモリと、メモリに結合され、回路に実装された1つまたは複数のプロセッサとを備えるデバイスについて説明する。1つまたは複数のプロセッサは、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別するように構成される。1つまたは複数のプロセッサは、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定し、グローバル動きパラメータの第2のセットに基づいて、基準フレームに動き補償を適用して現在のフレームについてのグローバル動き補償フレームを生成するようにさらに構成される。
【0007】
別の例では、本開示は、点群データを符号化するための方法であって、1つまたは複数のプロセッサによって、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別するステップと、1つまたは複数のプロセッサによって、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定するステップとを含む方法について説明する。この方法は、1つまたは複数のプロセッサによって、グローバル動きパラメータの第2のセットに基づいて、基準フレームに動き補償を適用して現在のフレームについてのグローバル動き補償フレームを生成するステップをさらに含む。
【0008】
別の例では、本開示は、命令を記憶するコンピュータ可読記憶媒体であって、命令が、1つまたは複数のプロセッサによって実行されたときに、1つまたは複数のプロセッサに、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別させ、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定させるコンピュータ可読記憶媒体について説明する。この命令はさらに、1つまたは複数のプロセッサに、グローバル動きパラメータの第2のセットに基づいて、基準フレームに動き補償を適用させて現在のフレームについてのグローバル動き補償フレームを生成する。
【0009】
別の例では、本開示は、点群データを処理するためのデバイスであって、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別するための少なくとも1つの手段と、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定するための手段とを備えるデバイスについて説明する。このデバイスはさらに、グローバル動きパラメータの第2のセットに基づいて、基準フレームに動き補償を適用させて現在のフレームについてのグローバル動き補償フレームを生成する手段を備える。
【0010】
1つまたは複数の例の詳細が、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0011】
図1】本開示の技法を実施し得る例示的な符号化および復号システムを示すブロック図である。
図2】本開示の技法による、例示的なジオメトリ点群圧縮(G-PCC)エンコーダを示すブロック図である。
図3】本開示の技法による、例示的なG-PCCデコーダを示すブロック図である。
図4】本開示の技法による、例示的な動き推定フローチャートを示すブロック図である。
図5】本開示の技法による、グローバル動きを推定するための例示的なアルゴリズムを示すブロック図である。
図6】本開示の技法による、ローカルノード動きベクトルを推定するための例示的なアルゴリズムを示すブロック図である。
図7】地球の近似楕円体上で測定された点の測地緯度および軽度を示す概念図である。
図8】赤道および本初子午線(0°緯度および経度)に対するECEF(地心地球固定)座標系(X、Y、Z軸)を示す概念図である。
図9】本開示の技法による例示的な符号化プロセスを示すフローチャートである。
図10】本開示の技法による例示的な復号プロセスを示すフローチャートである。
【発明を実施するための形態】
【0012】
ジオメトリベースの点群圧縮(G-PCC)コーダ(たとえば、G-PCCエンコーダまたはG-PCCデコーダ)は、基準フレームに動き補償を適用して動き補償フレームを生成するように構成されてもよい。たとえば、G-PCCエンコーダは、基準フレームに「グローバル」動き補償を適用して基準フレーム全体の回転および/または基準フレーム全体の並進に対応してもよい。この例では、G-PCCエンコーダは、「ローカル」動き補償を適用してグローバル動き補償よりも微細なスケールでの回転および/または並進に対応してもよい。たとえば、G-PCCエンコーダは、グローバル動き補償フレームの1つまたは複数のノード(たとえば、フレームの一部)のローカルノード動き補償を適用してもよい。
【0013】
いくつかのシステムは、基準フレーム(たとえば、予測フレーム)と現在のフレームとの間の特徴点に基づいて現在のフレームについての回転行列および並進ベクトルを推定してもよい。たとえば、G-PCCエンコーダは、動き行列および並進ベクトルを推定して、基準フレームおよび現在のフレームのそれぞれの特徴点同士を「一致」させてよい。しかし、検出された特徴点は信頼できないことがあり、その場合、回転行列および/または並進ベクトルの推定が正しくなくなることがあり、グローバル動きが補償される代わりに、歪みが付加されることがある。この付加的な歪みは、回転行列および並進ベクトルを使用するG-PCCエンコーダおよびG-PCCデコーダのコーディング効率を低下させることがある。
【0014】
本開示の技法によれば、G-PCCエンコーダは、グローバルポジショニングシステム情報に基づくグローバル動き補償を適用するように構成されてもよい。たとえば、G-PCCエンコーダは、グローバル動きパラメータの第1のセットを識別してもよい。グローバル動きパラメータの第1のセットは、方位パラメータ(たとえば、ロール、ピッチ、ヨー、もしくは角速度)および/または位置パラメータ(たとえば、x次元、y次元、もしくはz次元に沿った変位もしくは速度)を含んでもよい。この例では、G-PCCエンコーダは、グローバル動きパラメータの第1のセットに基づいてグローバル動きパラメータの第2のセットを決定してもよい。たとえば、G-PCCエンコーダは、方位パラメータおよび/または位置パラメータを現在のフレームについての回転行列および並進ベクトルに変換してもよい。このようにして、G-PCCコーダ(たとえば、G-PCCエンコーダまたはG-PCCデコーダ)は、衛星情報を使用するグローバル動き補償を適用してもよく、このグローバル動き補償は、基準フレーム(たとえば、予測フレーム)と現在のフレームとの間の特徴点に基づいて現在のフレームについての回転行列および並進ベクトルを推定することよりも正確である場合がある。動き補償の精度を高めると、動き補償予測フレームの精度が高まることがあり、それによって、現在のフレームについて符号化される残差が低減してコーディング効率が高まることがある。
【0015】
図1は、本開示の技法を実施し得る例示的な符号化および復号システム100を示すブロック図である。本開示の技法は、一般に、点群データをコーディング(符号化および/または復号)すること、すなわち、点群圧縮をサポートすることを対象とする。一般に、点群データは、点群を処理するための任意のデータを含む。コーディングは、点群データを圧縮および/または圧縮解除するのに有効であり得る。
【0016】
図1に示すように、システム100は、ソースデバイス102および宛先デバイス116を含む。ソースデバイス102は、宛先デバイス116によって復号されるべき符号化点群データを提供する。詳細には、図1の例では、ソースデバイス102は、コンピュータ可読媒体110を介して宛先デバイス116に点群データを提供する。ソースデバイス102および宛先デバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、地上または海上車両、宇宙船、航空機、ロボット、LIDARデバイス、衛星などを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合、ソースデバイス102および宛先デバイス116は、ワイヤレス通信に対応し得る。
【0017】
図1の例では、ソースデバイス102は、データソース104、メモリ106、G-PCCエンコーダ200、および出力インターフェース108を含む。宛先デバイス116は、入力インターフェース122、G-PCCデコーダ300、メモリ120、およびデータコンシューマ118を含む。本開示によると、ソースデバイス102のG-PCCエンコーダ200および宛先デバイス116のG-PCCデコーダ300は、点群フレームの視覚化を改善するための技法に関する本開示の技法を適用するように構成されてよい。したがって、ソースデバイス102は符号化デバイスの例を表し、宛先デバイス116は復号デバイスの例を表す。他の例では、ソースデバイス102および宛先デバイス116は、他の構成要素または配置を含んでよい。たとえば、ソースデバイス102は、内部または外部ソースからデータ(たとえば、点群データ)を受信し得る。同様に、宛先デバイス116は、同じデバイスの中にデータコンシューマを含むのではなく、外部データコンシューマとインターフェースすればよい。
【0018】
図1に示すようなシステム100は一例にすぎない。概して、他のデジタル符号化および/または復号デバイスは、点群フレームの視覚化を改善するための技法を実行してもよい。ソースデバイス102および宛先デバイス116は、ソースデバイス102が宛先デバイス116への送信のためにコード化データを生成するようなデバイスの例にすぎない。本開示は、データのコーディング(符号化および/または復号)を実施するデバイスを「コーディング」デバイスと呼ぶ。したがって、G-PCCエンコーダ200およびG-PCCデコーダ300は、コーディングデバイス、具体的には、それぞれ、エンコーダおよびデコーダの例を表す。いくつかの例では、ソースデバイス102および宛先デバイス116は、ソースデバイス102および宛先デバイス116の各々が符号化および復号構成要素を含むように実質的に対称的な方法で動作し得る。したがって、システム100は、たとえば、ストリーミング、再生、ブロードキャスト、電話、ナビゲーション、および他のアプリケーションのために、ソースデバイス102と宛先デバイス116との間の一方向または双方向送信をサポートし得る。
【0019】
一般に、データソース104は、データのソース(すなわち、未加工の符号化されていない点群データ)を表し、データの逐次的な一連の「フレーム」をG-PCCエンコーダ200に提供してよく、エンコーダ200はフレームのためのデータを符号化する。ソースデバイス102のデータソース104は、様々なカメラもしくはセンサー、たとえば、3Dスキャナもしくは光検出および測距(LIDAR)デバイス、1つもしくは複数のビデオカメラ、以前にキャプチャされたデータを含むアーカイブ、ならびに/またはデータコンテンツプロバイダからデータを受信するためのデータフィードインターフェースのうちのいずれかなどの点群キャプチャデバイスを含み得る。代替または追加として、点群データは、スキャナ、カメラ、センサーまたは他のデータからコンピュータ生成されてよい。たとえば、データソース104は、コンピュータグラフィックスベースのデータをソースデータとして生成するか、またはライブデータとアーカイブされたデータとコンピュータ生成されたデータとの組合せを生じ得る。すなわち、データソース104は、点群データを生成してもよい。各場合において、G-PCCエンコーダ200は、キャプチャされた、事前にキャプチャされた、またはコンピュータ生成されたデータを符号化する。G-PCCエンコーダ200は、受信された順序(「表示順序」と呼ばれることがある)からコーディング用のコーディング順序にフレームを並べ替え得る。G-PCCエンコーダ200は、符号化データを含む1つまたは複数のビットストリームを生成してよい。次いで、ソースデバイス102は、たとえば、宛先デバイス116の入力インターフェース122による受信および/または取出しのために、符号化データを、出力インターフェース108を介してコンピュータ可読媒体110上に出力し得る。
【0020】
ソースデバイス102のメモリ106および宛先デバイス116のメモリ120は、汎用メモリを表す場合がある。いくつかの例では、メモリ106およびメモリ120は、未加工データ、たとえば、データソース104からの未加工データ、およびG-PCCデコーダ300からの未加工の復号データを記憶してよい。追加または代替として、メモリ106およびメモリ120は、たとえば、それぞれ、G-PCCエンコーダ200およびG-PCCデコーダ300によって実行可能なソフトウェア命令を記憶し得る。メモリ106およびメモリ120は、この例ではG-PCCエンコーダ200およびG-PCCデコーダ300とは別々に示されているが、G-PCCエンコーダ200およびG-PCCデコーダ300は、機能的に同様のまたは等価な目的で内部メモリも含み得ることを理解されたい。さらに、メモリ106およびメモリ120は、符号化データ、たとえば、G-PCCエンコーダ200からの出力およびG-PCCデコーダ300への入力を記憶し得る。いくつかの例では、メモリ106およびメモリ120の一部は、たとえば、未加工の復号および/または符号化データを記憶するための、1つまたは複数のバッファとして割り振られ得る。たとえば、メモリ106およびメモリ120は、点群を表すデータを記憶してよい。
【0021】
コンピュータ可読媒体110は、符号化データをソースデバイス102から宛先デバイス116にトランスポートすることが可能な任意のタイプの媒体またはデバイスを表す場合がある。一例では、コンピュータ可読媒体110は、たとえば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、ソースデバイス102が符号化データを宛先デバイス116にリアルタイムで直接送信することを可能にする通信媒体を表す。ワイヤレス通信プロトコルなどの通信規格に従って、出力インターフェース108が、符号化データを含む送信信号を変調してよく、入力インターフェース122が、受信された送信信号を復調してよい。通信媒体は、無線周波数(RF)スペクトル、または1つもしくは複数の物理伝送線路など、任意のワイヤレス通信媒体またはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102から宛先デバイス116への通信を容易にするために有用であり得る任意の他の機器を含んでもよい。
【0022】
いくつかの例では、ソースデバイス102は、符号化済みデータを出力インターフェース108から記憶デバイス112に出力してもよい。同様に、宛先デバイス116は、入力インターフェース122を介して、記憶デバイス112からの符号化済みデータにアクセスし得る。記憶デバイス112は、ハードドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化データを記憶するための任意の他の好適なデジタル記憶媒体のような、種々の分散型またはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。
【0023】
いくつかの例では、ソースデバイス102は、ソースデバイス102によって生成された符号化データを記憶し得るファイルサーバ114または別の中間記憶デバイスに、符号化データを出力してよい。宛先デバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114からの記憶されたデータにアクセスし得る。ファイルサーバ114は、符号化データを記憶し、その符号化データを宛先デバイス116に送信することが可能な任意のタイプのサーバデバイスであってよい。ファイルサーバ114は、(たとえば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、コンテンツ配信ネットワークデバイス、またはネットワーク接続ストレージ(NAS)デバイスを表し得る。宛先デバイス116は、インターネット接続を含む任意の標準的なデータ接続を通して、ファイルサーバ114からの符号化データにアクセスしてよい。これは、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、デジタル加入者回線(DSL)、ケーブルモデムなど)、またはファイルサーバ114上に記憶された符号化データにアクセスするのに適した両方の組合せを含み得る。ファイルサーバ114および入力インターフェース122は、ストリーミング送信プロトコル、ダウンロード送信プロトコル、またはそれらの組合せに従って動作するように構成され得る。
【0024】
出力インターフェース108および入力インターフェース122は、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキング構成要素(たとえば、イーサネットカード)、種々のIEEE 802.11規格のいずれかに従って動作するワイヤレス通信構成要素、または他の物理構成要素を表してもよい。出力インターフェース108および入力インターフェース122がワイヤレス構成要素を備える例では、出力インターフェース108および入力インターフェース122は、4G、4G-LTE(ロングタームエボリューション)、LTEアドバンスト、5Gなどのセルラー通信規格に従って、符号化データなどのデータを転送するように構成され得る。出力インターフェース108がワイヤレス送信機を備えるいくつかの例では、出力インターフェース108および入力インターフェース122は、IEEE 802.11仕様、IEEE 802.15仕様(たとえば、ZigBee(商標))、Bluetooth(商標)規格などの他のワイヤレス規格に従った、符号化データなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス102および/または宛先デバイス116は、それぞれのシステムオンチップ(SoC)デバイスを含み得る。たとえば、ソースデバイス102は、G-PCCエンコーダ200および/または出力インターフェース108に起因する機能性を実施するためのSoCデバイスを含むことができ、宛先デバイス116は、G-PCCデコーダ300および/または入力インターフェース122に起因する機能性を実施するためのSoCデバイスを含んでよい。
【0025】
本開示の技法は、自律車両の間の通信、スキャナ、カメラ、センサーおよびローカルもしくはリモートサーバなどの処理デバイスの間の通信、地理的マッピング、または他のアプリケーションなど、様々なアプリケーションのいずれかをサポートする符号化および復号に適用されてよい。
【0026】
宛先デバイス116の入力インターフェース122は、コンピュータ可読媒体110(たとえば、通信媒体、記憶デバイス112、ファイルサーバ114など)から、符号化ビットストリームを受信する。符号化ビットストリームは、コード化単位(たとえば、スライス、ピクチャ、ピクチャグループ、シーケンスなど)の特性および/または処理を記述する値を有するシンタックス要素などの、G-PCCデコーダ300によっても使用されるG-PCCエンコーダ200によって定義されるシグナリング情報を含み得る。データコンシューマ118は、復号データを使う。たとえば、データコンシューマ118は、物理オブジェクトのロケーションを判断するのに、復号データを使ってよい。いくつかの例では、データコンシューマ118は、点群に基づいて像を提示するためのディスプレイを備えてよい。
【0027】
G-PCCエンコーダ200およびG-PCCデコーダ300は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な適切なエンコーダおよび/またはデコーダ回路構成のいずれかとして実装されてよい。技法が部分的にソフトウェアにおいて実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェア用の命令を記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行し得る。G-PCCエンコーダ200およびG-PCCデコーダ300の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、それらのいずれも、それぞれのデバイスの中で複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。G-PCCエンコーダ200および/またはG-PCCデコーダ300を含むデバイスは、1つまたは複数の集積回路、マイクロプロセッサ、および/または他のタイプのデバイスを備えてよい。
【0028】
G-PCCエンコーダ200およびG-PCCデコーダ300は、ビデオ点群圧縮(V-PCC)規格またはジオメトリ点群圧縮(G-PCC)規格などのコーディング規格に従って動作してよい。本開示は、一般に、データを符号化または復号するプロセスを含めるように、ピクチャのコーディング(たとえば、符号化および復号)に言及することがある。符号化ビットストリームは、一般に、コーディング決定(たとえば、コーディングモード)を表すシンタックス要素のための一連の値を含む。
【0029】
本開示は、一般に、シンタックス要素などの特定の情報を「シグナリングすること」を指す。「シグナリング」という用語は、一般に、シンタックス要素および/または符号化データを復号するために使用される他のデータのための値の通信を指すことがある。すなわち、G-PCCエンコーダ200は、ビットストリーム中でシンタックス要素のための値をシグナリングし得る。一般に、シグナリングすることは、ビットストリーム中で値を生成することを指す。上述のように、ソースデバイス102は、実質的にリアルタイムで、または、宛先デバイス116によって後で取り出すためにシンタックス要素を記憶デバイス112に記憶するときに行われ得るなど、リアルタイムではなく、ビットストリームを宛先デバイス116にトランスポートし得る。
【0030】
ISO/IEC MPEG(JTC1/SC29/WG11)は、現行の手法のものを大幅に超える圧縮能力をもつ点群コーディング技術の規格化に対する潜在的必要性を調査しており、規格を作成することを目指している。このグループは、この分野の専門家により提案されている圧縮技術の設計を評価するために、3-Dimensional Graphics Team(3DG)として知られている共同研究において、この調査活動に一緒に取り組んでいる。
【0031】
点群圧縮活動は、2つの異なる手法にカテゴリ化される。第1の手法は「ビデオ点群圧縮」(V-PCC)であり、これは、3Dオブジェクトをセグメント化し、セグメントを複数の2D平面(2Dフレームにおける「パッチ」として表される)に投射し、これらは、高効率ビデオコーディング(HEVC)(ITU-T H.265)コーデックなどのレガシー2Dビデオコーデックによってさらにコーディングされる。第2の手法は「ジオメトリベース点群圧縮」(G-PCC)であり、これは、3Dジオメトリ、すなわち、3D空間中の点のセットの位置と、(3Dジオメトリに関連付けられた各点についての)関連付けられた属性値とを直接圧縮する。G-PCCは、カテゴリ1(静的点群)とカテゴリ3(動的に獲得された点群)の両方における点群の圧縮に対処する。G-PCC規格の最新の草案が、G-PCC DIS、ISO/IEC JTC1/SC29/WG11 w19088、ベルギー、ブリュッセル、2020年1月において入手可能であり、コーデックの記述が、G-PCC Codec Description v6、ISO/IEC JTC1/SC29/WG11 w19091、ベルギー、ブリュッセル、2020年1月において入手可能である。
【0032】
点群は、3D空間中の点のセットを含み、点に関連付けられた属性を有してよい。属性は、R、G、BもしくはY、Cb、Crなどの色情報、または反射率情報、あるいは他の属性であってよい。点群は、LIDARセンサーおよび3Dスキャナなど、様々なカメラまたはセンサーによってキャプチャされてよく、コンピュータ生成されてもよい。すなわち、ソースデバイス102は、LIDAR装置(たとえば、LIDARセンサーおよび/またはLIDARデバイス)からの信号に基づいて点群データを生成してもよい。点群データは、構築(モデリング)、グラフィックス(視覚化およびアニメーションのための3Dモデル)、ならびに自動車産業(ナビゲーションを助けるのに使われるLIDARセンサー)を含むが、それらに限定されない様々なアプリケーションにおいて使われる。
【0033】
点群データによって占有される3D空間は、仮想境界ボックスによって囲まれてよい。境界ボックス中での点の位置は、一定の精度で表されてよく、したがって、1つまたは複数の点の位置は、精度に基づいて量子化されてよい。最も小さいレベルにおいて、境界ボックスは、単位立方体によって表される、空間の最も小さい単位であるボクセルに分割される。境界ボックス中のボクセルは、ゼロ、1つ、または複数の点に関連付けられてよい。境界ボックスは、タイルと呼ばれ得る、複数の立方体/直方体領域に分割されてよい。各タイルは、1つまたは複数のスライスにコーディングされ得る。境界ボックスの、スライスおよびタイルへの区分は、各区分中の点の数に基づいて、または他の事項に基づいてよい(たとえば、特定の領域がタイルとしてコーディングされてよい)。スライス領域は、ビデオコーデックにおけるものと同様の分割決定を使って、さらに区分されてよい。
【0034】
本開示の技法によれば、G-PCCエンコーダ200は、グローバルポジショニングシステム情報に基づくグローバル動き補償を適用するように構成されてもよい。たとえば、G-PCCエンコーダ200は、グローバル動きパラメータの第1のセットを識別してもよい。グローバル動きパラメータの第1のセットは、方位パラメータ(たとえば、ロール、ピッチ、ヨー、もしくは角速度)および/または位置パラメータ(たとえば、x次元、y次元、もしくはz次元に沿った変位もしくは速度)を含んでもよい。この例では、G-PCCエンコーダ200は、グローバル動きパラメータの第1のセットに基づいてグローバル動きパラメータの第2のセットを決定してもよい。たとえば、G-PCCエンコーダ200は、方位パラメータおよび/または位置パラメータを現在のフレームについての回転行列および並進ベクトルに変換してもよい。このようにして、G-PCCエンコーダ200は、衛星情報を使用するグローバル動き補償を適用してもよく、このグローバル動き補償は、基準フレーム(たとえば、予測フレーム)と現在のフレームとの間の特徴点に基づいて現在のフレームについての回転行列および並進ベクトルを推定することよりも正確である場合がある。
【0035】
G-PCCエンコーダ200は、グローバル動きパラメータの第1のセット(たとえば、方位パラメータおよび/または位置パラメータ)をシグナリングしてもよい。いくつかの例では、G-PCCエンコーダ200は、グローバル動きパラメータの第2のセット(たとえば、現在のフレームについての回転行列および並進ベクトル)をシグナリングしてもよい。例では、現在のフレームについての回転行列および並進ベクトルをシグナリングしてグローバル動きパラメータの第2のセットをシグナリングすることについて説明するが、いくつかの例では、G-PCCエンコーダ200は、現在のフレームについての回転行列および並進ベクトルの一部および/または推定値をシグナリングしてもよい。たとえば、G-PCCエンコーダ200は、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルをシグナリングしてもよい。いくつかの例では、G-PCCエンコーダ200は、現在のフレームの平均速度のみを示す並進ベクトルを含むグローバル動きパラメータの第2のセットをシグナリングしてもよい。いくつかの例では、G-PCCエンコーダ200は、現在のフレームの平均速度を示す大きさの並進ベクトルのみを含むグローバル動きパラメータの第2のセットのみをシグナリングしてもよい。このようにして、G-PCCエンコーダ200は、衛星情報を使用するグローバル動き補償を適用してもよく、このグローバル動き補償は、基準フレーム(たとえば、予測フレーム)と現在のフレームとの間の特徴点に基づいて現在のフレームについての回転行列および並進ベクトルを推定することよりも正確である場合がある。動き補償の精度を高めると、動き補償予測フレームの精度が高まることがあり、それによって、現在のフレームについて符号化される残差が低減してコーディング効率が高まることがある。
【0036】
同様に、G-PCCデコーダ300は、グローバルポジショニングシステム情報に基づいてグローバル動き補償を適用してもよい。たとえば、G-PCCデコーダ300は、ビットストリームからグローバル動き情報(たとえば、グローバル動きパラメータの第1のセットおよび/またはグローバル動きパラメータの第2のセット)を復号してもよい。この例では、G-PCCデコーダ300は、グローバル動き情報に基づいて現在のフレームについてのグローバル動きを決定してもよい。たとえば、G-PCCデコーダ300は、現在のフレームについての回転行列および並進ベクトルに基づいてグローバル動き補償を適用してもよい。
【0037】
G-PCCデコーダ300は、ビットストリームから直接回転行列および並進ベクトルを復号してもよく、またはビットストリームにおいてシグナリングされたグローバル動き情報から回転行列および並進ベクトルを推定および/または導出してもよい。たとえば、G-PCCエンコーダ300は、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルをビットストリームから復号してもよい。この例では、G-PCCデコーダ300は、ロールの差、ピッチの差、ヨーの差、および並進ベクトルに基づいて回転行列および並進ベクトルを決定してもよい。いくつかの例では、G-PCCデコーダ300は、ビットストリームから並進ベクトルを復号し、回転行列を単位行列として近似してもよい。いくつかの例では、G-PCCデコーダ300は、現在のフレームの平均速度を示す大きさの並進ベクトルをビットストリームから復号し、受信された大きさに基づいて並進ベクトルを近似し、回転行列を単位行列として近似してもよい。このようにして、G-PCCデコーダ300は、衛星情報を使用するグローバル動き補償を適用してもよく、このグローバル動き補償は、基準フレーム(たとえば、予測フレーム)と現在のフレームとの間の特徴点に基づいて現在のフレームについての回転行列および並進ベクトルを推定することよりも正確である場合がある。動き補償の精度を高めると、動き補償予測フレームの精度が高まることがあり、それによって、現在のフレームについて符号化される残差が低減してコーディング効率が高まることがある。
【0038】
図2は、G-PCCエンコーダ200の概観を与える。図3は、G-PCCデコーダ300の概観を与える。図示されるモジュールは論理的であり、G-PCCコーデックの基準実装、すなわち、ISO/IEC MPEG(JTC1/SC29/WG11)によって研究されるTMC13テストモデルソフトウェアにおいて実装されるコードに必ずしも1対1で対応するわけではない。
【0039】
G-PCCエンコーダ200とG-PCCデコーダ300の両方において、点群位置が最初にコーディングされる。属性コーディングは、復号されたジオメトリに依存する。図2および図3において、グレーの陰影モジュールは、カテゴリ1データ用に通常使われるオプションである。斜め平行線付きモジュールは、カテゴリ3データ用に通常使われるオプションである。他のモジュールはすべて、カテゴリ1と3との間で共通である。
【0040】
カテゴリ3データの場合、圧縮されたジオメトリは通常、個々のボクセルのルートからリーフレベルまでにわたる8分木として表される。カテゴリ1データの場合、圧縮されたジオメトリは通常、刈り込み8分木(すなわち、ボクセルよりも大きいブロックの、ルートからリーフレベルまでの8分木)に、刈り込み8分木の各リーフ内の表面に近似するモデルを加えたものによって表される。このようにして、カテゴリ1および3データの両方が、8分木コーディング機構を共有し、カテゴリ1データは、表面モデルをもつ各リーフ内のボクセルにさらに近似してよい。使われる表面モデルは、ブロックごとに1~10個の三角形を含む三角測量であり、三角形スープを生じる。カテゴリ1ジオメトリコーデックはしたがって、Trisoupジオメトリコーデックとして知られ、カテゴリ3ジオメトリコーデックは、8分木ジオメトリコーデックとして知られる。
【0041】
8分木の各ノードにおいて、その子ノード(最大8つのノード)のうちの1つまたは複数について占有がシグナリングされる(推論されないとき)。(a)現在の8分木ノードと面を共有するノード、(b)現在の8分木ノードと面、エッジ、または頂点を共有するノードなどを含む複数の近傍が指定される。各近傍内で、ノードおよび/またはその子の占有率を使用して現在のノードまたはその子の占有率を予測してもよい。8分木のいくつかのノードにおいて過疎な点について、コーデックは、点の3D位置が直接符号化される直接コーディングモードもサポートする。直接モードがシグナリングされることを示すためのフラグがシグナリングされてよい。最も低いレベルにおいて、8分木ノード/リーフノードに関連付けられた点の数もコーディングされてよい。
【0042】
ジオメトリがコーディングされると、ジオメトリ点に対応する属性がコーディングされる。1つの再構築/復号されたジオメトリ点に対応する複数の属性点があるとき、再構築点を表す属性値が導出されてよい。
【0043】
G-PCCには3つの属性コーディング方法、すなわち、領域適応階層変換(RAHT)コーディング、補間ベース階層最近傍予測(予測変換)、および更新/リフティングステップを用いる補間ベース階層最近傍予測(リフティング変換)がある。RAHTおよびリフティングは通常、カテゴリ1データ用に使われ、予測は通常、カテゴリ3データ用に使われる。ただし、いずれの方法がどのデータに対して使われてもよく、単にG-PCCにおけるジオメトリコーデックでのように、点群をコーディングするのに使われる属性コーディング方法はビットストリームの中で指定される。
【0044】
属性のコーディングは、ある詳細度(LOD)で執り行われてよく、各詳細度を用いて、点群属性のより精密な表現が取得され得る。各詳細度は、近隣ノードからの距離メトリックに基づいて、またはサンプリング距離に基づいて指定されてよい。
【0045】
G-PCCエンコーダ200において、属性向けのコーディング方法の出力として取得された残差が量子化される。残差は、現在の点の近傍にある点に基づいて、かつすでに符号化された点の属性値に基づいて導出された予測から属性値を減算することによって取得されてもよい。量子化された残差は、コンテキスト適応算術コーディングを使ってコーディングされてよい。
【0046】
図2の例では、G-PCCエンコーダ200は、座標変換ユニット202、色変換ユニット204、ボクセル化ユニット206、属性転送ユニット208、8分木分析ユニット210、表面近似分析ユニット212、算術符号化ユニット214、ジオメトリ再構築ユニット216、RAHTユニット218、LOD生成ユニット220、リフティングユニット222、係数量子化ユニット224、および算術符号化ユニット226を含み得る。
【0047】
図2の例に示すように、G-PCCエンコーダ200は、点群内の点の位置のセットおよび属性のセットを取得してもよい。G-PCCエンコーダ200は、点群内の点の位置のセットおよび属性のセットをデータソース104から取得してもよい(図1)。位置は、点群の中の点の座標を含み得る。属性は、点群の中の点に関連付けられた色など、点群の中の点についての情報を含み得る。G-PCCエンコーダ200は、点群内の点の位置の符号化された表現を含むジオメトリビットストリーム203を生成してもよい。G-PCCエンコーダ200はまた、属性のセットの符号化された表現を含む属性ビットストリーム205を生成してもよい。
【0048】
座標変換ユニット202は、座標を初期ドメインから変換ドメインに変換するように、点の座標に変換を適用してよい。本開示では、変換された座標を変換座標と呼ぶ場合がある。色変換ユニット204は、属性の色情報を異なるドメインに変換するための変換を適用してよい。たとえば、色変換ユニット204は、色情報をRGB色空間からYCbCr色空間に変換してよい。
【0049】
さらに、図2の例では、ボクセル化ユニット206は、変換座標をボクセル化してよい。変換座標のボクセル化は、量子化と、点群のいくつかの点を除去することとを含み得る。言い換えると、点群の複数の点が単一の「ボクセル」内に包含されてよく、ボクセルはその後、いくつかの観点において1つの点として扱われてよい。
【0050】
8分木分析ユニット210は、ボクセル化された変換座標に基づいて8分木を生成し得る。本開示の技法によれば、8分木分析ユニットエンコーダ210は、グローバルポジショニングシステム情報に基づくグローバル動き補償を適用するように構成されてもよい。たとえば、8分木分析ユニット210は、グローバル動きパラメータの第1のセットを識別してもよい。グローバル動きパラメータの第1のセットは、方位パラメータ(たとえば、ロール、ピッチ、ヨー、もしくは角速度)および/または位置パラメータ(たとえば、x次元、y次元、もしくはz次元に沿った変位もしくは速度)を含んでもよい。この例では、8分木分析ユニット210は、グローバル動きパラメータの第1のセットに基づいてグローバル動きパラメータの第2のセットを決定してもよい。たとえば、8分木分析ユニット210は、方位パラメータおよび/または位置パラメータを現在のフレームについての回転行列および並進ベクトルに変換してもよい。このようにして、8分木分析ユニット210は、衛星情報を使用するグローバル動き補償を適用してもよく、このグローバル動き補償は、基準フレーム(たとえば、予測フレーム)と現在のフレームとの間の特徴点に基づいて現在のフレームについての回転行列および並進ベクトルを推定することよりも正確である場合がある。
【0051】
さらに、図2の例では、表面近似分析ユニット212が点を分析して、点のセットの表面表現を判断する可能性がある。算術符号化ユニット214は、8分木および/または表面近似分析ユニット212によって判断された表面の情報を表すシンタックス要素をエントロピー符号化してよい。G-PCCエンコーダ200は、これらのシンタックス要素をジオメトリビットストリーム203の中で出力してよい。ジオメトリビットストリーム203はまた、算術的に符号化されないシンタックス要素を含む他のシンタックス要素を含んでもよい。
【0052】
ジオメトリ再構築ユニット216は、8分木、表面近似分析ユニット212によって判断された表面を示すデータ、および/または他の情報に基づいて、点群の中の点の変換座標を再構築してよい。ジオメトリ再構築ユニット216によって再構築された変換座標の数は、ボクセル化および表面近似により、点群の点の元の数とは異なり得る。本開示では、得られた点を再構築点と呼ぶ場合がある。属性転送ユニット208は、点群の元の点の属性を、点群の再構築点へ転送してよい。
【0053】
さらに、RAHTユニット218は、RAHTコーディングを、再構築点の属性に適用してよい。いくつかの例では、RAHTの下で、2x2x2点位置のブロックの属性が得られて一方向に沿って変換され、4つの低周波数ノード(L)および4つの高周波数ノード(H)が取得される。その後、4つの低周波数ノード(L)は、第2の方向に変換されて、2つの低周波数ノード(LL)および2つの高周波数ノード(LH)が取得される。2つの低周波数ノード(LL)は、第3の方向に変換されて、1つの低周波数ノード(LLL)および1つの高周波数ノード(LLH)が取得される。低周波数ノードLLLはDC係数に相当し、高周波数ノードH、LH、およびLLHはAC係数に相当する。各方向における変換は、2つの係数重みによる1-D変換であってもよい。低周波数係数は、RAHT変換の次に高いレベルについての2x2x2ブロックの係数と見なされ、AC係数は、変更なしに符号化され、そのような変換が最上位根ノードまで継続する。符号化のための木走査は、係数に使用される重みを計算するために使用される上から下への走査であり、変換順は下から上である。次いで、係数が量子化されコーディングされてもよい。
【0054】
代替または追加として、LOD生成ユニット220およびリフティングユニット222が、LOD処理およびリフティングを、それぞれ、再構築点の属性に適用してよい。リフティングユニット222は、更新/リフティングステップ(リフティング変換)による解釈ベースの階層型最近傍法予測を実行するように構成されてもよい。いくつかの例では、リフティングユニット222は、グローバル動き補償を実行するように構成されてもよい。
【0055】
LOD生成ユニット220を使用して属性をそれぞれに異なるリファインメントレベルに分割してもよい。各リファインメントレベルは、点群の属性にリファインメントを与える。第1のリファインメントレベルは、粗な近似を提供し、小数の点を含む。その後のリファインメントレベルは一般に、より多くの点を含み、以下同様である。リファインメントレベルは、距離ベースのメトリックを使用して構成されてもよく、または1つもしくは複数の他の分類基準(たとえば、特定の順位からのサブサンプリング)を使用してもよい。したがって、リファインメントレベルにはすべての再構築された点が含まれてもよい。各詳細レベルは、特定のリファインメントレベルまでのすべての点の和集合を得ることによって生成され、たとえば、リファインメントレベルRL1に基づいてLOD1が取得され、RL1およびRL2に基づいて取得されLOD2が取得され、RL1, RL2, ...RLNの和集合によって取得されLODNが取得される。いくつかの場合には、LOD生成の後に予測方式(たとえば、予測変換)が実行され、LODにおける各点に関連付けられた属性が、先行する点の重み付き平均から予測され、残差が量子化され、エントロピーコードディングされる。リフティング方式は、予測変換機構上に構成され、更新演算子を使用して係数が更新され、係数の適応量子化が実行される。
【0056】
RAHTユニット218およびリフティングユニット222は、属性に基づいて係数を生成してよい。係数量子化ユニット224は、RAHTユニット218またはリフティングユニット222によって生成された係数を量子化してよい。算術符号化ユニット226は、量子化された係数を表すシンタックス要素に算術コーディングを適用してよい。G-PCCエンコーダ200は、これらのシンタックス要素を属性ビットストリーム205の中で出力してよい。属性ビットストリーム205は、非算術的に符号化されたシンタックス要素を含む他のシンタックス要素を含んでもよい。
【0057】
算術符号化ユニット214は、グローバル動きパラメータの第1のセット(たとえば、方位パラメータおよび/または位置パラメータ)をシグナリングしてもよい。いくつかの例では、算術符号化ユニット214は、グローバル動きパラメータの第2のセット(たとえば、現在のフレームについての回転行列および並進ベクトル)をジオメトリビットストリーム203においてシグナリングしてもよい。例では、現在のフレームについての回転行列および並進ベクトルをシグナリングしてグローバル動きパラメータの第2のセットをシグナリングすることについて説明するが、いくつかの例では、算術符号化ユニット214は、現在のフレームについての回転行列および並進ベクトルの一部および/または推定値をジオメトリビットストリーム203においてシグナリングしてもよい。たとえば、算術符号化ユニット214は、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルをシグナリングしてもよい。いくつかの例では、算術符号化ユニット214は、現在のフレームの平均速度のみを示す並進ベクトルを含むグローバル動きパラメータの第2のセットをシグナリングしてもよい。いくつかの例では、算術符号化ユニット214は、現在のフレームの平均速度を示す大きさの並進ベクトルのみを含むグローバル動きパラメータの第2のセットのみをシグナリングしてもよい。このようにして、算術符号化ユニット214は、衛星情報を使用するグローバル動き補償を適用してもよく、このグローバル動き補償は、基準フレーム(たとえば、予測フレーム)と現在のフレームとの間の特徴点に基づいて現在のフレームについての回転行列および並進ベクトルを推定することよりも正確である場合がある。
【0058】
図3の例では、G-PCCデコーダ300は、ジオメトリ算術復号ユニット302、属性算術復号ユニット304、8分木合成ユニット306、逆量子化ユニット308、表面近似合成ユニット310、ジオメトリ再構築ユニット312、RAHTユニット314、LOD生成ユニット316、逆リフティングユニット318、逆変換座標ユニット320、および逆変換色ユニット322を含んでもよい。
【0059】
G-PCCデコーダ300は、ジオメトリビットストリーム203および属性ビットストリーム205を取得し得る。デコーダ300のジオメトリ算術復号ユニット302は、ジオメトリビットストリーム203中のシンタックス要素に算術復号(たとえば、コンテキスト適応型2値算術コーディング(CABAC)または他のタイプの算術復号)を適用してもよい。同様に、属性算術復号ユニット304は、属性ビットストリーム205中のシンタックス要素に算術復号を適用してもよい。
【0060】
たとえば、ジオメトリ算術復号ユニット302は、ジオメトリビットストリーム203からグローバル動き情報(たとえば、グローバル動きパラメータの第1のセットおよび/またはグローバル動きパラメータの第2のセット)を受信してもよい。たとえば、ジオメトリ算術復号ユニット302は、グローバル動きパラメータの第2のセット(たとえば、現在のフレームについての回転行列および並進ベクトル)を受信してもよい。例では、現在のフレームについての回転行列および並進ベクトルを受信してグローバル動きパラメータの第2のセットをシグナリングすることについて説明するが、いくつかの例では、ジオメトリ算術復号ユニット302は、現在のフレームについての回転行列および並進ベクトルの一部および/または推定値を受信してもよい。たとえば、ジオメトリ算術復号ユニット302は、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルを受信してもよい。いくつかの例では、ジオメトリ算術復号ユニット302は、現在のフレームの平均速度を示す並進ベクトルのみを含むグローバル動きパラメータの第2のセットを受信してもよい。いくつかの例では、ジオメトリ算術符号化ユニット302は、現在のフレームの平均速度を示す大きさの並進ベクトルのみを含むグローバル動きパラメータの第2のセットを受信してもよい。
【0061】
8分木合成ユニット306は、ジオメトリビットストリーム203から解析されたシンタックス要素に基づいて8分木を合成してもよい。各8分木レベルにおける8つの子ノードの各々の占有率は、ビットストリームにおいて、8分木の根ノードから順にシグナリングされる。シグナリングが、特定の8分木レベルにおける子ノードが占有されていることを示すとき、この子ノードの子の占有率がシグナリングされる。各8分木レベルにおけるノードのシグナリングは、以後の8分木レベルに進む前に行われる。8分木の最終レベルでは、各ノードがボクセル位置に対応し、葉ノードが占有されると、ボクセル位置において1つまたは複数の点が占有されることが指定されることがある。いくつかの例では、量子化に起因して8分木のいくつかの枝は最終レベルよりも前に終端することがある。そのような場合、葉ノードは、子ノードを有さない占有されたノードと見なされる。ジオメトリビットストリーム203中で表面近似が使用される事例では、表面近似合成ユニット310は、ジオメトリビットストリーム203から解析されたシンタックス要素に基づき、かつ8分木に基づいて、表面モデルを決定してもよい。
【0062】
8分木合成ユニット306は、グローバル動き情報に基づいて現在のフレームについてのグローバル動きを判定してもよい。たとえば、8分木合成ユニット306は、現在のフレームについての回転行列および並進ベクトルに基づいてグローバル動き補償を適用してもよい。この場合も、ジオメトリ算術復号ユニット302は、ジオメトリビットストリーム203から回転行列および並進ベクトルを受信してもよい。8分木合成ユニット306は、グローバル動きパラメータの第1のセットおよび/または第2のグローバル動きパラメータの一部に基づいてグローバル動きパラメータの第2のセット(たとえば、回転行列および並進ベクトル)を決定または推定してもよい。
【0063】
たとえば、8分木合成ユニット306は、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルをジオメトリビットストリーム203から復号してもよい。この例では、8分木合成ユニット306は、ロールの差、ピッチの差、ヨーの差、および並進ベクトルに基づいて回転行列および並進ベクトルを決定してもよい。
【0064】
いくつかの例では、8分木合成ユニット306は、ジオメトリビットストリーム203から並進ベクトルを復号し、回転行列を単位行列として近似してもよい。いくつかの例では、8分木合成ユニット306は、現在のフレームの平均速度を示す大きさの並進ベクトルをジオメトリビットストリーム203から復号し、受信された大きさに基づいて並進ベクトルを近似し、回転行列を単位行列として近似してもよい。このようにして、8分木合成ユニット306は、衛星情報を使用するグローバル動き補償を適用してもよく、このグローバル動き補償は、基準フレーム(たとえば、予測フレーム)と現在のフレームとの間の特徴点に基づいて現在のフレームについての回転行列および並進ベクトルを推定することよりも正確である場合がある。
【0065】
8分木合成ユニット306は、方位パラメータおよび/または位置パラメータを現在のフレームについての回転行列および並進ベクトルに変換してもよい。このようにして、8分木合成ユニット306は、衛星情報を使用するグローバル動き補償を適用してもよく、このグローバル動き補償は、基準フレーム(たとえば、予測フレーム)と現在のフレームとの間の特徴点に基づいて現在のフレームについての回転行列および並進ベクトルを推定することよりも正確である場合がある。
【0066】
さらに、ジオメトリ再構築ユニット312は、点群の中の点の座標を判断するために、再構築を実施してよい。8分木の葉ノードにおける各位置について、ジオメトリ再構築ユニット312は、8分木内の葉ノードの2進表現を使用することによってノード位置を再構築してもよい。各それぞれの葉ノードにおいて、それぞれの葉ノードにおける点の数がシグナリングされ、このことは、同じボクセル位置における重複点の数を示す。ジオメトリ量子化を使用すると、点位置がスケーリングされて再構築点位置値が決定される。
【0067】
逆座標変換ユニット320は、点群の中の点の再構築座標(位置)を変換ドメインから初期ドメインに変換し戻すように、再構築座標に逆変換を適用してよい。点群における点の位置は、浮動小数点領域内であってもよいが、G-PCCコーデックにおける点位置は整数領域内でコーディングされる。逆変換を使用して位置を元の領域に変換し直してもよい。
【0068】
さらに、図3の例では、逆量子化ユニット308は属性値を逆量子化し得る。属性値は、属性ビットストリーム205から取得されたシンタックス要素(たとえば、属性算術復号ユニット304によって復号されたシンタックス要素を含む)に基づき得る。
【0069】
属性値がどのように符号化されるかに依存して、RAHTユニット314は、逆量子化された属性値に基づいて、点群の点についての色値を決定するために、RAHTコーディングを実施してよい。RAHT復号は、木の上から下へ行われる。各レベルにおいて、逆量子化プロセスから導出された低周波数係数および高周波数係数を使用して構成値が導出される。葉ノードにおいて、導出された値は係数の属性値に対応する。点についての重み導出プロセスは、G-PCCエンコーダ200に使用されるプロセスと同様である。代替として、LOD生成ユニット316および逆リフティングユニット318が、詳細度ベースの技法を使って、点群の点についての色値を決定してもよい。LOD生成ユニット316は、点の属性の漸進的に微細になる表現を示す各LODを復号する。予測変換を用いる場合、LOD生成ユニット316は、前のLOD内にある、または同じLOD内で以前に再構築された点の重み付き和から点の予測値を導出してもよい。LOD生成ユニット316は、予測値を残差(逆量子化後に取得される)に加算して属性の再構築値を取得してもよい。リフティング方式を使用するとき、LOD生成ユニット316は、属性値を導出するために使用される係数を更新するための更新演算子を含んでもよい。LOD生成ユニット316はまた、この場合は逆適応量子化を適用してもよい。
【0070】
さらに、図3の例では、逆色変換ユニット322は、色値に逆色変換を適用してもよい。逆色変換は、G-PCCエンコーダ200の色変換ユニット204によって適用される色変換の逆数であってもよい。たとえば、色変換ユニット204は、色情報をRGB色空間からYCbCr色空間に変換してもよい。したがって、逆色変換ユニット322は、色情報をYCbCr色空間からRGB色空間に変換してもよい。
【0071】
図2および図3の様々なユニットは、G-PCCエンコーダ200およびG-PCCデコーダ300によって実施される動作を理解するのを助けるために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。固定機能回路は、特定の機能性を提供する回路を指し、実施され得る動作があらかじめ設定される。プログラマブル回路は、様々なタスクを実施するようにプログラムされ得る回路を指し、実施され得る動作において柔軟な機能性を提供する。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義された方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は(たとえば、パラメータを受信するまたはパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは概して不変である。いくつかの例では、ユニットのうちの1つまたは複数はそれぞれに異なる回路ブロック(固定機能またはプログラマブル)であってもよく、いくつかの例では、1つまたは複数のユニットは集積回路であってもよい。
【0072】
本開示の技法によれば、G-PCCエンコーダ200は、点群データを記憶するためのメモリと、メモリに結合され回路に実装される1つまたは複数のプロセッサとを備えるデバイスの一例を表してもよい。1つまたは複数のプロセッサは、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別し、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定するように構成される。1つまたは複数のプロセッサは、グローバル動きパラメータの第2のセットを使用して基準フレームに動き補償を適用して、現在のフレームについてのグローバル動き補償フレームを生成するようにさらに構成される。
【0073】
G-PCCデコーダ300は、点群データを記憶するためのメモリと、メモリに結合され回路に実装される1つまたは複数のプロセッサとを備えるデバイスの一例を表してもよい。1つまたは複数のプロセッサは、グローバル動き情報を示すビットストリームのシンボルを復号し、グローバル動き情報に基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定するように構成されてもよい。1つまたは複数のプロセッサは、グローバル動きパラメータのセットを使用して基準フレームに動き補償を適用して、現在のフレームについてのグローバル動き補償フレームを生成するようにさらに構成されてもよい。
【0074】
G-PCC技法に関与する2種類の動き、すなわち、グローバル動き行列およびローカルノード動きベクトルがある。グローバル動きパラメータは、回転行列および並進ベクトルを含んでもよい。G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、基準フレーム(たとえば、予測フレーム)内のすべての点に対してグローバル動き補償を適用してもよい。8分木のノードのローカルノード動きベクトルは、予測(基準)フレームのノード内の点にのみ適用される動きベクトルである。たとえば、G-PCCコーダは、基準フレームの一部(たとえば、ノードのセット)に対してのみローカルノード動き補償を適用してもよい。
【0075】
図4は、本開示の技法による、例示的な動き推定フローチャートを示すブロック図である。予測フレーム402および現在のフレーム410が与えられれば、G-PCCエンコーダ200はまずグローバルスケールでグローバル動きを推定してもよい(404)。たとえば、G-PCCエンコーダ200は、本明細書で説明する技法に従って回転行列および並進ベクトルを生成してもよい。予測フレーム402に対してグローバル動きを適用した(406)後、G-PCCエンコーダ200は、ローカルノード動き推定を適用して(408)、より微細なスケールおよび8分木におけるノードレベルでのローカル動きを推定してもよい。G-PCCエンコーダ200は、動き補償において推定されるローカルノード動きを適用してもよい。たとえば、G-PCCエンコーダ200は、動き推定を適用して、動きベクトル情報および点情報を符号化してもよい(412)。
【0076】
図5は、グローバル動きを推定するための例示的なアルゴリズムを示すブロック図である。図5に示すプロセスは、図4のステップ404の一例であってもよい。G-PCCエンコーダ200は、予測(基準)フレームと現在のフレームとの間で特徴点を一致させるためのグローバル動き行列を定義するように構成されてもよい。グローバル動き推定アルゴリズム全体を3つのステップ、すなわち、特徴点を見つけるステップ(502)、特徴点対をサンプリングするステップ(504)、および最小2乗平均(LMS)アルゴリズムを使用する動き推定ステップ(506)に分割することができる。
【0077】
G-PCCエンコーダ200は、LMSアルゴリズムを実行して(506)、予測フレームと現在のフレームとの間の大きい位置変化を特徴点として有する点を定義してもよい。現在のフレーム内の各点について、G-PCCエンコーダ200は、予測フレーム内の最も近い点を見つけ、現在のフレームと予測フレームとの間の点対を構築してもよい(502)。対にされた点間の距離がしきい値よりも大きい場合、G-PCCエンコーダ200は、対にされた点を特徴点と見なしてもよい。
【0078】
特徴点を見つけた後、G-PCCコーダは、特徴点に対するサンプリングを実行して(たとえば、特徴点のサブセットを選択して動き推定の複雑さを低減させることによって)問題のスケールを低減させてもよい(504)。次いで、G-PCCエンコーダ200は、最小2乗平均(LMS)アルゴリズムを適用し、予測フレームおよび現在のフレーム内のそれぞれの特徴点間のエラーを低減させることを試みることによって動きパラメータを導出してもよい。このプロセスは、ステップ502の特徴点対の各々についてループしてもよい。
【0079】
図6は、ローカルノード動きベクトルを推定するための例示的なアルゴリズムを示すブロック図である。図6に示すプロセスは、図4のステップ408の一例であってもよい。図6の例では、G-PCCエンコーダ200は、動きベクトルを再帰的に推定してもよい。G-PCCエンコーダ200は、コスト関数を使用してレートひずみコストに基づく最適な動きベクトルを選択してもよい。
【0080】
現在のノードが8つの子に分割されない場合、G-PCCエンコーダ200は、現在のノード602と予測ノードとの間でコストを最低にすることができる動きベクトルを決定してもよい。現在のノードが8つの子に分割される(610)場合、G-PCCエンコーダ200は、動き推定アルゴリズムを適用して各子ノードについての動きを見つけ(612)、各子ノードの推定コスト値を加算する(614)ことによって分割条件の下で総コストを取得してもよい。G-PCCエンコーダ200は、分割と非分割との間でコストを比較することによって分割すべきか否かについての決定に到達してもよい。現在のノードが分割される場合、G-PCCエンコーダ200は、各サブノードにそれぞれの動きベクトルを割り当ててもよい(またはさらにサブノードの子に分割されてもよい)。現在のノードが分割されない場合、G-PCCエンコーダ200は、最低コストを実現する動きベクトルを見つけてもよく(604)、現在のノードに動きベクトルを割り当ててもよい。
【0081】
動きベクトル推定の性能に影響を与える2つのパラメータは、ブロックサイズ(BlockSize)および最小予測ユニットサイズ(MinPUSize)である。BlockSizeは、動きベクトル推定を適用するためにノードサイズの上限を定義し、MinPUSizeは下限を定義する。
【0082】
G-PCCエンコーダ200は、G-PCCエンコーダ200に予測(基準)フレームと現在のフレームとの間でそれぞれの特徴点を「一致させる」動き行列および並進ベクトルを生成してもよい。検出された特徴点が信頼できないことがあり、その場合、グローバル動きパラメータ推定は正しくなくなり、したがって、グローバル動きが補償される代わりに追加的なひずみが導入される。この追加的なひずみによって、グローバル動きが適切に補償されるときよりもコーディング効率が低下することがある。
【0083】
いくつかのシステムでは、連続的なフレームにおける検出される特徴点は一致しないことがある。たとえば、連続的なフレームにおけるそれぞれの特徴点間の相対的な回転および/または並進が異なる場合がある。G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)が連続的なフレームにおけるそれぞれの特徴点を互いに一致させる場合、ひずみが生じることがある。
【0084】
現在の動き推定構造に関する問題は実行効率である。総実行時間は、基準として使用されるアンカーバージョンよりも25倍長くなることがある。追加総実行時間では、一般的には、ほぼ2分の1の時間がグローバル動き推定に費やされ、一般的には、ほぼ2分の1がローカルノード動き推定に費やされる。そのような長い実行時間は、いくつかのアプリケーション(たとえば、点群補償のリアルタイムコーディング)では実際的ではないことがあり、したがって、そのようなアプリケーションにおける動き推定を妨げる。
【0085】
本開示の技法によれば、G-PCCコーダ(G-PCCエンコーダ200またはG-PCCデコーダ300)は、グローバルポジショニングシステム情報に基づくグローバル動き補償を適用するように構成されてもよい。本開示の技法によれば、G-PCCコーダは、次の技法のうちの1つまたは複数を使用して動き補償を適用するように構成されてもよい。
1)G-PCCエンコーダ200は、GPS(全地球測位システム)情報からグローバル動きパラメータの第1のセットを識別してもよい。本明細書では、全地球測位システムは、本明細書では単に"GPS"とも呼ばれ、たとえば、米国で実施されている全地球測位システム(GPS)などの任意の衛星システム、全地球ナビゲーション衛星システム(GLONASS)、Beidouナビゲーション衛星システム(BDS)、Galileo、準天頂衛星システム、(QZSS)、地球航法衛星システム(IRNSS)、または別の衛星システムを指すことがある。
a.グローバル動きパラメータの第1のセットは、方位パラメータのセット、たとえば、ロール、ピッチ、ヨー、角速度などを含んでもよい。すなわち、G-PCCエンコーダ200は、方位パラメータのセットを含むグローバル動きパラメータの第1のセットを識別してもよい。いくつかの例では、方位パラメータのセットは、現在のフレームについてのロール、ピッチ、ヨー、または角速度のうちの1つまたは複数を含んでもよい。
b.いくつかの例では、方位の3つのパラメータは、基準フレームに基づいて指定されてもよい。したがって、3つのパラメータはグローバル動きパラメータの第1のセットに含まれてもよい。たとえば、最後のフレームについてのロール、ピッチ、およびヨーが与えられれば、方位パラメータは、現在のフレームと最後のフレームとの間のロール、ピッチ、およびヨーの差を含んでもよい。すなわち、G-PCCエンコーダ200は、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、または現在のフレームと基準フレームとの間の角速度の差のうちの1つまたは複数を含む方位パラメータのセットを識別してもよい。
c.グローバル動きパラメータの第1のセットは、位置パラメータのセット、たとえば、x、y、およびz次元における変位、または速度(たとえば、速度x、速度y、速度z)を含んでもよい。すなわち、G-PCCエンコーダ200は、位置パラメータのセットを含む方位パラメータのセットを識別してもよい。いくつかの例では、位置パラメータのセットは、現在のフレームについての変位または現在のフレームについての平均速度のうちの1つまたは複数を含んでもよい。
d.いくつかの例では、3つの位置パラメータは、基準フレームに基づいて指定されてもよい。すなわち、G-PCCエンコーダ200は、基準フレームに基づく3つの位置パラメータを含む方位パラメータのセットを識別してもよい。したがって、3つのパラメータはグローバル動きパラメータの第1のセットに含まれてもよい。たとえば、East-North-Up座標系を使用して位置パラメータを算出することができる。すなわち、位置パラメータのセットは、East-North-Up座標系の東の速度、北の速度、または上の速度のうちの1つまたは複数を含んでもよい。
2)G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、グローバル動き推定に使用されるグローバル動きパラメータの第1のセットからグローバル動きパラメータの第2のセットを導出してもよい。すなわち、G-PCCコーダは、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定してもよい。
a.グローバル動きパラメータの第2のセットは、回転行列および並進ベクトルを表し得る(たとえば、記述し得る)、グローバル動き行列の要素を含んでもよい。すなわち、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列、ならびに現在のフレームについての平均速度を示す並進ベクトルを含むグローバル動きパラメータの第1のセットからグローバル動きパラメータの第2のセットを導出してもよい。
b.グローバル動きパラメータの第2のセットは、グローバル動きパラメータの第1のセットから正確に算出するか、または近似することができる。
3)G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、グローバル動きパラメータの第2のセットを使用して基準フレームに動き補償を適用し、補償フレームを得てもよい。すなわち、G-PCCコーダは、グローバル動きパラメータの第2のセットを使用して、基準フレームに動き補償を適用して現在のフレームについてのグローバル動き補償フレームを生成する。
a.G-PCCコーダは、補償フレームを現在のフレームに対する動き補償についての基準として使用してもよい。
b.いくつかの例では、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、まず回転を適用し、次に並進を適用することによって補償を適用してもよい。
c.いくつかの例では、G-PCCコーダは、まず並進を適用し、次に回転を適用することによって補償を適用してもよい。
4)G-PCCエンコーダ200は、グローバル動きパラメータの第2のセットをビットストリームにおいてシグナリングしてもよい。G-PCCエンコーダ200は、グローバル動きパラメータの第2のセットを使用してG-PCCデコーダ300がグローバル動きを推定し予測または動き補償を適用するのを可能にしてもよい。すなわち、G-PCCエンコーダ200は、グローバル動きパラメータの第2のセットをビットストリームにおいてシグナリングしてもよい。たとえば、G-PCCエンコーダ200は、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列ならびに現在のフレームについての平均速度を示す並進ベクトルをシグナリングしてもよい。同様に、G-PCCデコーダ300は、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列ならびに現在のフレームについての平均速度を示す並進ベクトルをビットストリームから復号してもよい。
a.いくつかの例では、G-PCCエンコーダ200は、グローバル動きパラメータの第1のセットをビットストリームにおいてシグナリングしてもよい。たとえば、G-PCCデコーダ300は、グローバル動きパラメータの第2のセットを導出してもよい。すなわち、G-PCCエンコーダ200は、グローバル動きパラメータの第1のセットをビットストリームにおいてシグナリングしてもよい。たとえば、G-PCCエンコーダ200は、グローバルポジショニングシステム情報から識別された方位パラメータのセットまたは並進パラメータのセットのうちの1つまたは複数をシグナリングしてもよい。同様に、G-PCCデコーダ300は、グローバルポジショニングシステム情報から識別された方位パラメータのセットまたは並進パラメータのセットのうちの1つまたは複数をビットストリームから復号してもよい。以下に説明するように、G-PCCエンコーダ200は、グローバル動きパラメータの第1のセットおよび/またはグローバル動きパラメータの第2のセットの一部および/または推定値を符号化してもよい。
5)G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、ローカルノード動きベクトル推定のためのグローバル動きパラメータの適切な組合せを見つけて、実行時間と性能の間のバランスのとれたトレードオフを見つけることを試みてもよい。すなわち、G-PCCコーダは、ローカル動きについてのブロックサイズを最小予測ユニットサイズと等しくなるように制限してもよい。
a.G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、ローカル動きについてのblockSizeをminPuSizeと等しくなるように制限してもよい。このことは、ローカル動きベクトル推定についての実行時間を確実に最小限に抑えてコーディング効率に対する影響を限定する助けになる場合がある。
6)G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、以下のステップのうちの1つまたは複数によってグローバル動き推定アルゴリズムを改善してもよい。
a.まず、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、現在のフレームと基準フレームとの間の平均2乗誤差を最小限に抑えることによって初期並進ベクトルを推定してもよい。すなわち、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、現在のフレームと基準フレームとの間の平均2乗誤差を最小限に抑えることによって初期並進ベクトルを推定してもよい。初期並進ベクトルを推定する際、G-PCCコーダは、点が地上であるかか否かについてのラベルを考慮に入れてもよい。すなわち、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、点が地上であるか否かを判定してもよい。この例では、G-PCCコーダは、点が地上であるかか否かに基づいて第2の現在のフレームについての回転行列を推定してもよい。
b.G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、初期並進ベクトルを単位行列と組み合わせてもよく、組み合わされた初期並進ベクトルと単位行列を反復最近接点(iteraive closest point)方式または同様の方式に送り、回転行列および並進ベクトルを推定してもよい。
b.いくつかの例では、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、まず点が地上であるか否かについてのラベルに基づいて回転行列を推定してもよい。すなわち、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、点が地上であるか否かを判定してもよい。この例では、G-PCCコーダは、点が地上であるか否かに基づいて第2の現在のフレームについての回転行列を推定してもよい。たとえば、G-PCCエンコーダ200は、このラベルを導出し、G-PCCデコーダ300にラベルをシグナリングしてもよい。すなわち、G-PCCエンコーダ200は、点が地上であるか否かを示すラベルのセットをシグナリングしてもよい。いくつかの例では、G-PCCエンコーダ200およびG-PCCデコーダ300の各々は、ラベルを導出してもよい。G-PCCコーダは、グランド推定アルゴリズムに基づいてラベルを導出してもよく、そのようなアルゴリズムは、点の高さ、点の近傍における点群の密度、LIDAR原点/固定点からの点の相対距離などに基づくアルゴリズムであってもよい。
b.G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、ゼロ並進ベクトルを含む初期回転行列を反復最近接点方式または同様の方式に送り、回転行列および並進ベクトルを推定してもよい。
【0086】
この例では、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、GPS情報からグローバル動きパラメータを導出してもよい。GPS情報は、各タイムスタンプについてのEast-North-Up座標系の下でのロールピッチヨー情報および速度の導出において使用され得る値/パラメータ(または取得点もしくは各取得点についての推定値)を含むことができる。たとえば、G-PCCコーダは、提供された情報項目からグローバル動き行列および並進ベクトルを直接算出してもよい。
【0087】
回転行列は、基準フレームから現在のフレームへの軸の変更を定義してもよい。基準フレームについてのロール、ピッチ、およびヨー(ロールref、ピッチref、ヨーref)および現在のフレームについてのロール、ピッチ、およびヨー(ロールcur、ピッチcur、ヨーcur)が与えられれば、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、ロール、ピッチ、およびヨーの差を導出に使用してもよい。G-PCCコーダは、この差をΔroll=ロールcur-ロールref、Δpitch=ピッチcur-ピッチref、Δyaw=ヨーcur-ヨーrefとして算出してもよい。
ロールについての回転行列は次式の通りである。
【数1】
ピッチについての回転行列は次式の通りである。
【数2】
ヨーについての回転行列は次式の通りである。
【数3】
最終回転行列は次式の通りである。
R=RyawRpitchRroll
【0088】
いくつかの例では、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、ロール、ピッチ、およびヨーのうちの1つまたは複数の正の方向が生じたかどうかを判定するように構成されてもよい。したがって、正の方向は異なるように定義することができるので、G-PCCコーダは角度の符号を変更してもよい。
【0089】
並進ベクトルについて、East-North-Up(ENU)座標系は点群フレームについての座標系とうまく整合するので、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、ENUの速度を使用してもよい。G-PCCコーダは、基準フレームおよび現在のフレームの平均速度をV=(vEast、vNorth、vUp)として算出してもよい。G-PCCコーダは、速度ベクトルを基準フレームの座標系における座標に分解してもよい。
【0090】
G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、次式のように速度についての新しい回転行列を算出してもよい。
ロールについての速度の回転行列は次式の通りである。
【数4】
ピッチについての速度の回転行列は次式の通りである。
【数5】
ヨーについての速度の回転行列は次式の通りである。
【数6】
速度についての最終回転行列は次式の通りである。
【数7】
G-PCCは次式のように並進ベクトルを算出してもよい。
T=tRvV
ここで、tは1つのフレームについての時間である。さらに、正しい並進ベクトルを導出するには正の方向を考慮すべきである。
【0091】
この例では、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、グローバル動きについてのすべての12個の要素の代わりにロール-ピッチ-ヨーおよび並進ベクトルのみをシグナリングしてもよい。これによって、グローバル動きパラメータの数が12から6に減少する。すなわち、G-PCCエンコーダ200は、現在のフレームについての、9つの要素を含むヨー、ピッチ、およびロールを示す回転行列ならびに現在のフレームについての平均速度を示す、3つの要素を含む並進ベクトル(たとえば、合計で12の要素)をシグナリングしてもよい。いくつかの例では、G-PCCエンコーダ200は、完全なグローバル回転行列をシグナリングせずに、現在のフレームについてのロール、現在のフレームについてのピッチ、現在のフレームについてのヨー、および現在のフレームについての平均速度を示す並進ベクトル(たとえば、合計で6つの要素)をシグナリングしてもよい。
【0092】
G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、回転行列および並進ベクトルを決定してもよい。G-PCCコーダは、ロール、ピッチ、ヨーの差(Δroll、Δpitch、Δyaw)および並進ベクトルの主要パラメータを使用してもよい。回転行列全体を圧縮/シグナリングする代わりに、G-PCCエンコーダ200は、デルタおよび並進ベクトルのみをシグナリングしてもよく、それによってシグナリングされるパラメータの数が12(回転行列についての9個および並進ベクトルについての3個)から6(デルタ値についての3個および並進ベクトルについての3個)に減少する。たとえば、G-PCCエンコーダ200は、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルをシグナリングしてもよい(たとえば、6つの要素)。同様に、G-PCCデコーダ300は、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルを復号してもよい(たとえば、6つの要素)。
【0093】
さらに、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、近似によってグローバル動きパラメータの数を減少させてもよい。回転行列における要素は1および0に近く、それによって、G-PCCコーダは回転行列を単位行列として近似してもよい。それによって、6つのパラメータをさらに並進ベクトル用の3つのみに減少させることができる。すなわち、G-PCCエンコーダ200は、現在のフレームの平均速度を示す並進ベクトル(たとえば、3つの要素)をシグナリングし、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列をシグナリングしないようにしてもよい。同様に、G-PCCデコーダ300は、現在のフレームの平均速度を示す並進ベクトル(たとえば、3つの要素)を復号し、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列を復号しないようにしてもよい。
【0094】
(たとえば、LIDARを備えた)車両が大部分の時間の間前進すると仮定すると、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、並進ベクトルをTappr=[0,abs(T),0]と近似し、ここで、abs()は、並進ベクトルTの大きさを算出するための絶対関数である。その場合、グローバル動きパラメータの総数を1のみに減少させることができる。この例では、システムは、車両が正のy方向に移動しているように定義されるが、同様の導出を他のシステムにも適用することができる。すなわち、G-PCCエンコーダ200は、現在のフレームの平均速度を示す大きさの並進ベクトルをシグナリングしてもよい。同様に、G-PCCデコーダ300は、現在のフレームの平均速度を示す大きさの並進ベクトルを示す並進ベクトルを復号してもよい。
【0095】
実行時間と性能との間のバランスのとれたトレードオフポイントを見つけるために入力パラメータ、BlockSizeおよびMinPUSizeの様々な組合せが試行される。
【0096】
G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、性能利得と実行時間との間のバランスのとれたトレードオフを実現するために2倍のBlockSizeおよび2倍のMinPUSizeを決定してもよい。
【0097】
いくつかの例では、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、性能利得と実行時間との間のバランスのとれたトレードオフを実現するためにBlockSizeをMinPUSizeに等しく設定してもよい。すなわち、G-PCCコーダは、グローバル動き補償フレームに基づいて現在のフレームについての動きベクトル推定を実行してもよく、G-PCCコーダは、動きベクトル推定を実行するために、ローカル動きについてのブロックサイズを最小予測ユニットサイズに等しくなるように制限するように構成される。
【0098】
グローバル動き推定アルゴリズムは、まず現在のフレームと予測(基準)フレームとの間の平均2乗誤差(MSE)を最小限に抑えることによって並進ベクトルを推定するようにG-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)を構成することによって改善されてもよい。すなわち、G-PCCコーダは、第2の現在のフレームと第2の基準フレームとの間の平均2乗誤差を最小限に抑えることによって初期並進ベクトルを推定してもよい。次いで、推定された並進ベクトルを適用した後、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、回転行列を決定してもよい。
【0099】
新しいグローバル動き推定アルゴリズムには2つのステップがあってもよい。第1のステップは、G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)を初期並進ベクトルT'を算出するように構成することである。第2のステップは、G-PCCコーダにT'および単位行列を反復最近接点アルゴリズム(たとえば、open3dライブラリによって提供される)または同様の代替アルゴリズムに送らせることである。
【0100】
あるステップでは、G-PCCコーダをT'を推定するように構成する。T'=[a, b, c]を仮定する。並進ベクトルは、現在のフレームと予測フレームとの間のMSEを最小限に抑えることが仮定される。ここで、G-PCCは以下の損失関数からのMSEを表してもよい。
【数8】
ここで、以下の点
【0101】
【数9】
は、基準フレームにおける点であり、点
【数10】
は、現在のフレームにおける点であり、wiは、中心までの距離として定義される重み関数であり、
【数11】
によって表される。変数Nは、点の総数を示す。
Lを最小限に抑えるために、以下の関数を有する。
【数12】
aは以下のように算出される。
【数13】
bおよびcを導出することもできる。
【数14】
【0102】
しかし、フレーム間の動きは常に大きいのでa、b、およびcを1回算出しただけでは精度が十分ではないことがある。G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、ループ数lを定義してもよい。最初の反復では、基準フレームf0および現在のフレームが与えられれば、G-PCCコーダは、
【数15】
を算出してもよい。次いで、G-PCCコーダは、
【数16】
をf0に対して適用して新しい基準フレームf1を得てもよい。G-PCCコーダは、f1と現在のフレームとの間の
【数17】
を算出してもよい。G-PCCは、このループをl回実行して最終並進ベクトル
【数18】
を得てもよい。
【0103】
別の変更形態は重み関数についての変更形態である。地上点は、グローバル動きを推定するためにG-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)によって実行されるアルゴリズムを「混乱」させることがあり、したがって、G-PCCコーダは地上点を「オフにして」もよい。重み関数は、以下の数式によって修正することができる。
【数19】
【0104】
G-PCCコーダ(たとえば、G-PCCエンコーダ200またはG-PCCデコーダ300)は、高さ、点群フレームの中心からの距離、ある平面(たとえば、x-y平面)に沿ったフレーム内の点からの距離などの点の1つまたは複数の特徴に基づいて点が地上点であるかそうでないかを判定してもよい。
【0105】
ローカル基準に対するオブジェクト/シーン/点群の点の位置に加えて、いくつかのアプリケーションでは、地球上の固定位置に対する位置も使用する。点の地理的位置を記述するのに使用されるいくつかの座標系がある。以下では、いくつかのアプリケーションにおいて使用されるいくつかの座標系について簡単に説明する。
【0106】
1つのそのような座標系は測地座標系である。詳細は、https://en.wikipedia.org/wiki/Geodetic_datumに記載されている。測地座標系は、3つの値のセット、すなわち、緯度、経度、および高度を使用する。
【0107】
図7は、地球の近似楕円体上で測定された点の測地緯度および軽度を示す概念図である。図7は、点の測地緯度が、地球の表面上の点の法線(楕円体近似)および赤道面によって形成される角度として、どのように取得されるかを示す。角度φは、地球に対する点の南北位置を示す。経度は、本初子午線(イギリスのグリニッジにおける点として選択される)間の角度λ(度単位)として測定され、正の角度は本初子午線の東へ測定され、負の角度は西へ測定される。高度は、楕円体に垂直な方向において楕円体表面の上方の単位で測定された距離として定義される。詳細は、https://en.wikipedia.org/wiki/Geodetic_datumに記載されている。
【0108】
別の座標系には、地心地球固定(ECEF)座標系があり、この座標系について次に説明する。この座標系では、地球の中心が基準点として選択され、地球上の点の位置(または一般的には、地球の表面近くの、空間内のどこか)がこの原点に対するx、y、およびz次元における変位として表される。正のz軸は、原点から北極までの線として選択される。正のx軸は、緯度が0度で経度が0度である地球の表面上の点に向かって中心を接合する線として選択される。
【0109】
図8は、赤道および本初子午線(0°緯度および経度)に対するECEF(地心地球固定)座標系(X、Y、Z軸)を示す概念図である。緯度および経度に対するECEF座標系の図が図8に示されている。詳細は、https://en.wikipedia.org/wiki/ ECEFに記載されている。
【0110】
次に、局地水平面座標系(ENU、NED)について説明する。局地水平面座標系は、地球の表面上の局地水平面を指定し、その平面における、東、北、および上(ENU)への変位を有する点位置を表す。北、東、および下(NED)への変位を使用する同等の座標系について説明することがある。様々なアプリケーションにおいて様々な座標系が使用されることがある。いくつかの例では、変位をメートル単位で記述することがある。
【0111】
この座標系は、ENU/NED変位に加えて、変位が測定される基準も使用する。ENU/NED基準については、ECEFもしくは測地座標系、または別の座標系によって説明することがある。ENU/NED座標系の1つの利点は、相対変位値が一般に、ECEF座標としての絶対位置と比較して小さいことである場合がある。
【0112】
次に、点群の方位について説明する。シーン内の対象の方位はまた、周囲のシーンからの情報を用いて点群を視覚化することを望む場合があるアプリケーションには重要であることがある。点群を視覚化するには、固定基準に対する、点群フレームのx、y、およびz軸のうちの1つまたは複数の方位を認識しなければならない。このことは、点群フレームによって使用される軸への固定基準xyz軸の回転として表されることがある。回転は、行列またはロール-ピッチ-ヨー角のトリプレットとして表されることがある。
【0113】
G-PCCのいくつかの例では、G-PCCエンコーダ200およびG-PCCデコーダ300は、点群内の点x、y、z位置をスライス原点に対してコーディングしてもよく、スライス原点は、シーケンスパラメータセット(SPS)に指定された原点に対してコーディングされてもよく、シーケンスパラメータセット(SPS)はG-PCCエンコーダ200によってシグナリングされてもよい。これ(SPS原点と呼ばれる)は、点群フレームの実際の原点である。現在のシグナリングはまた、デコーダ側で非標準スケーリング動作を適用した後に得られる座標値がメートル単位を有するかどうかを示すスケールフラグを含む。
【0114】
しかし、SPS原点の絶対位置は、G-PCCの現在の例では指定されない。いくつかのアプリケーション(たとえば、地球空間的データ視覚化)では、フレーム原点の実際の位置を伝達して、点群がどこで取得されたか、または点群とジオ空間対象との関係を示すと有用である場合がある。たとえば、アプリケーションでは、特定の位置で同時に取得された他の属性に加えて点群情報をレンダリングすることを望むことがある。SPS原点の位置がない場合、G-PCCデコーダ300またはアプリケーションは、高価な登録および分離アルゴリズムを実行してSPS原点の位置を識別することが必要になることがある。
【0115】
いくつかの座標系では、点群原点の位置に加えて、方位情報も重要になることがある。G-PCCデコーダ300が点群を適切にレンダリングできるように、G-PCCエンコーダ200はG-PCCデコーダ300にx、y、z軸の方位を通知する。x、y、z軸の方位のこのような通知は現在、G-PCCではサポートされていない。より具体的な例では、自動車上のLIDARシステムが、自動車の運転方向(たとえば、車両は、車両の運転方向が正のy方向であると仮定してもよい)に対する点群を取り込み、自動車の運転方向はフレームごとに変化することがある。方位情報(SPS原点も)はフレーム固有の情報である場合がある。
【0116】
以下の技法のうちの1つまたは複数は、独立に適用されてもよく、または他のものと組み合わせて適用されてもよい。
【0117】
次に、ジオロケーション/GISプロジェクションについて説明する。いくつかの例では、G-PCCエンコーダ200は、固定された基準に対するSPS原点の位置をシグナリングしてもよい。G-PCCデコーダ300は、シグナリングされた位置を解析してもよい。より一般的には、点群フレームに関連付けられた原点の位置がシグナリングされてもよい。
【0118】
いくつかの例では、G-PCCエンコーダ200は、それぞれの次元におけるオフセットを使用して固定原点および座標軸に対するSPS原点の位置を指定してもよい。G-PCCデコーダ300は、指定された位置を解析してもよい。一例では、ECEF座標系を使用してSPS原点を表してもよい。一例では、ENU座標系を使用してSPS原点を表してもよい。一例では、測地座標系を使用してSPS原点を表してもよい。より一般的には、任意の測位システムが使用されてもよい。
【0119】
いくつかの例では、G-PCCエンコーダ200は、SPS原点の位置を表すために使用される座標系を示すために使用されるシンタックス要素をシグナリングしてもよい。G-PCCデコーダ300は、シンタックス要素を解析して座標系を決定してもよい。
【0120】
いくつかの例では、G-PCCエンコーダ200は、示された座標系におけるSPS原点の位置をコーディングするために使用されるビットの数を示す1つまたは複数のシンタックス要素をシグナリングしてもよい。G-PCCデコーダ300は、シンタックス要素を解析してビットの数を決定してもよい。
【0121】
次に方位について説明する。いくつかの例では、G-PCCエンコーダ200は、x、y、z軸の方位を表すパラメータを使用してもよい。たとえば、パラメータは、固定軸座標系(たとえば、ECEF XYZ座標系)からの回転を表してもよい。いくつかの例では、パラメータは回転行列を表してもよい。いくつかの例では、パラメータは、ロール、ピッチ、およびヨーを表してもよい。
【0122】
いくつかの例では、G-PCCエンコーダ200は、点群フレーム軸の方位を表すために使用される座標系を示すために使用されるシンタックス要素をシグナリングしてもよい。G-PCCデコーダ300は、シンタックス要素を解析して座標系を決定してもよい。
【0123】
いくつかの例では、G-PCCエンコーダ200は、パラメータをコーディングして点群フレームの方位を表すために使用されるビットの数を示す1つまたは複数のシンタックス要素をシグナリングしてもよい。G-PCCデコーダ300は、シンタックス要素を解析してビットの数を決定してもよい。
【0124】
次に、位置および方位に対する制限について説明する。G-PCCエンコーダ200は、使用されるアプリケーションシステムの特質に起因して適用可能なある制約に基づくある制限を適用してもよい。たとえば、G-PCCエンコーダ200は、自動車によって取り込まれるLIDARデータについて、緯度および経度のみを提供し、高度を指定しないことによって位置情報を制限してもよい。他の例では、LIDARによって取り込まれるデータについて、G-PCCエンコーダ200は、ENU方向の自動車の速度のみを提供してG-PCCデコーダ300が位置を導出するのを可能にしてもよく、同様に角速度を提供して複数のフレームにわたって方位を指定してもよい。
【0125】
いくつかの例では、角速度、角加速度、線速度、線加速度、点群フレームの取り込みに関連付けられた時間などの点群に関連付けられた他のパラメータがシグナリングされてもよい。
【0126】
次に、フレームベースのシグナリングとシーケンスベースのシグナリングとの関係について説明する。いくつかの例では、点群原点の位置および/または方位ならびに軸方位がシーケンスまたはビットストリーム全体について固定される。そのような場合、たとえば、G-PCCエンコーダ200は、点群原点の位置および軸方位をシーケンスごとに(たとえば、SPSなどのパラメータセットにおいて)一度のみシグナリングしてもよい。G-PCCデコーダ300は、パラメータセット内のシンタックス要素を解析して位置および方位を決定してもよい。
【0127】
いくつかの例では、点群原点の位置および/または方位がフレームごとに異なることがあり、G-PCCエンコーダ200は、1つまたは複数のフレームについて値をシグナリングしてもよい。G-PCCデコーダ300は、シグナリングされた値を解析して位置および方位を決定してもよい。
【0128】
以下の例は、点群原点の位置および座標をフレームごとにどのように表すかを示す。
【0129】
【表1】
【0130】
pcoo_update_flagが0に等しい場合、シンタックス構造が、それぞれpcoo_origin_coordinate_system_idおよびpcoo_origin_orientation_system_idによって示されるようないくつかの固定座標系に対する現在のフレームについてのSPS原点の位置および軸の方位の少なくとも一方を含む。pcoo_update_flagが1に等しい場合、シンタックス構造が、それぞれpcoo_origin_coordinate_system_idおよびpcoo_origin_orientation_system_idによって示されるようないくつかの固定座標系に対する現在のフレームについてのSPS原点の位置および軸の方位を含み、ここで、pcoo_origin_coordinate_val[]およびpcoo_origin_orientation_val[]は、pcoo_update_flagが0に等しかった前のフレームからのデルタコ-ディングされた値を示す。
【0131】
いくつかの例では、pcoo_update_flagが、ビットストリームから除去される可能性がないピクチャ(たとえば、最低フレームレートに関連付けられたフレーム、またはシーケンスの第1のフレーム)についてのみ0になり得るように、制限が付加されてもよい。
【0132】
一例では、IDが各シンタックス構造に指定され、pcoo_update_flagが1に等しいとき、基準位置および方位への基準IDがシグナリングされる。
【0133】
いくつかの例では、基準位置および方位は、現在のフレーム以下の一時IDを有する前の点群フレームとして選択される。
【0134】
代替的に、pcoo_update_flagが1に等しいとき、フレームインデックスがシグナリングされ、デルタコーディングされた位置および方位が、そのフレームの位置および方位に対して測定される。
【0135】
一例では、デルタコーディングは、位置値にのみ適用され、方位値には適用されない。
【0136】
pcoo_origin_info_present_flagが1に等しい場合、SPS原点の絶対位置情報がシグナリングされることが指定される。pcoo_origin_info_present_flagが0に等しい場合、点群フレームの絶対位置情報がシグナリングされないことが指定される。
【0137】
そのような場合には、デフォルトの絶対位置情報が選択されるか、または外部手段によって送られてもよい。
【0138】
pcoo_origin_coordinate_system_idは、現在のフレームについてのSPS原点の絶対位置を表すために使用される座標系を指定する。pcoo_origin_coordinate_system_idの値は、本明細書のこのバージョンに準拠するビットストリームについては0~2の範囲とするものとする。他の値は、将来ISO/IECによって使用されるように予約される。
【0139】
pcoo_origin_coordinate_num_paramsは、示された座標系における位置についてシグナリングされるパラメータの数を指定する。
【0140】
いくつかの代替形態では、pcoo_origin_coordinate_num_paramsはpcoo_origin_coordinate_system_idの値に基づいて固定され事前に決定される。いくつかの代替形態では、このシンタックス要素は、_minusNとしてコーディングされ、Nよりも小さい値はシグナリングされることを許可されない。
【0141】
pcoo_origin_coordinate_num_bitsは、pcoo_origin_coordinate_val[i]をシグナリングするための使用されるビットの数を指定するために使用される。
【0142】
i=0..pcoo_origin_coordinate_num_params-1の場合のpcoo_origin_coordinate_val[i]は、現在のフレームについてのSPS原点の位置を導出するために使用される。
【0143】
pcoo_origin_coordinate_val[]の解釈は、以下の表によって示され得る。
【0144】
【表2】
【0145】
上記の精度、および本開示の残りの部分における精度は例に過ぎず、本開示の技法がメートル、度、または他の単位の任意の精度に適用されることに留意されたい。
【0146】
一例では、いくつかの座標系については、同じ座標系のパラメータの数が、update_flagの値に基づいて異なる場合がある。たとえば、update_flagが0に等しいとき、ENU座標系は6つの点を有し、update_flagが1に等しいとき、ENU座標系は、ローカル変位に対応する3つの点のみを有し得る。
【0147】
別の例では、ローカル基準をシグナリングするオプションが許容されてもよい。ローカル基準は、ローカル基準が存在することを示すシンタックス要素(たとえば、local reference_present_flag)がシグナリングされるときにシグナリングされてもよい。
【0148】
pcoo_orientation_info_present_flagが1に等しい場合、点群フレームのXYZ軸の方位がシグナリングされることが指定される。pcoo_orientation_info_present_flagが0に等しい場合、点群フレームのXYZ軸の方位がシグナリングされないことが指定される。
【0149】
pcoo_orientation_system_idは、点群フレームのXYZ軸の方位を表すために使用される方位座標系を指定する。pcoo_orientation_system_idの値は、本明細書のこのバージョンに準拠するビットストリームについては0~1の範囲とするものとする。他の値は、将来ISO/IECによって使用されるように予約される。
【0150】
pcoo_orientation_coordinate_num_paramsは、示された座標系における向きについてシグナリングされるパラメータの数を指定する。
【0151】
いくつかの例では、pcoo_orientation_coordinate_num_paramsの値はpcoo_orientation_coordinate_system_idの値に基づいて固定され事前に決定されてもよい。いくつかの例では、このシンタックス要素は、_minusNとしてコーディングされてもよく、Nよりも小さい値はシグナリングされることを許可されない。
【0152】
pcoo_orientation_coordinate_num_bitsは、pcoo_origin_coordinate_val[i]をシグナリングするための使用されるビットの数を指定するために使用される。
【0153】
i=1の場合のpcoo_orientation_coordinate_val[i]。pcoo_orientation_coordinate_num_paramsは、点群フレームの方位XYZ軸を決定するために使用される。
【0154】
pcoo_orientation_coordinate_valの解釈は、以下の表によって示され得る。
【0155】
【表3】
【0156】
一例では、pcoo_orientation_info_present_flagおよびpcoo_origin_info_present_flagの少なくとも一方がシンタックス構造において1に等しくなるように制限される。
【0157】
いくつかの例では、インデックス付けされた0~8のパラメータは、回転行列の行方向に走査される要素に対応する(すなわち、第iのインデックスは、第(i/3)の行および第(i%2)の列に対応する)。より一般的には、回転行列要素の任意の走査パターンを選択してpcoo_orientation_coordinate_val[ i ] parametersを取得してもよい。
【0158】
図9は、本開示の技法による例示的な符号化プロセスを示すフローチャートである。G-PCCエンコーダ200(たとえば、8分木分析ユニット210)は、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別してもよい(902)。たとえば、G-PCCエンコーダ200は、グローバルポジショニングシステム情報から現在のフレームについての方位パラメータのセットおよび/または位置パラメータのセットを識別してもよい。
【0159】
G-PCCエンコーダ200(たとえば、8分木分析ユニット210)は、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定してもよい(904)。たとえば、G-PCCエンコーダ200は、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列ならびに現在のフレームについての平均速度を示す並進ベクトルを決定してもよい。
【0160】
G-PCCエンコーダ200(たとえば、8分木分析ユニット210)は、グローバル動きパラメータの第2のセットに基づいて、基準フレームに動き補償を適用して現在のフレームについてのグローバル動き補償フレームを生成してもよい(906)。たとえば、G-PCCエンコーダ200(8分木分析ユニット210)は、グローバル動きパラメータの第2のセット(たとえば、回転行列および並進ベクトル)に基づいて基準フレーム(たとえば、予測フレーム)内のすべての点に対してグローバル動き補償を適用してもよい。このようにして、G-PCCエンコーダ200は、衛星情報を使用するグローバル動き補償を適用してもよく、このグローバル動き補償は、基準フレーム(たとえば、予測フレーム)と現在のフレームとの間の特徴点に基づいて現在のフレームについての回転行列および並進ベクトルを推定することよりも正確である場合がある。
【0161】
G-PCCエンコーダ200(たとえば、8分木分析ユニット210)は、グローバル動き補償フレームに基づくローカルノード動き推定を適用し、現在のフレームについての動きベクトル情報および点情報を生成してもよい(908)。たとえば、G-PCCエンコーダ200(たとえば、8分木分析ユニット210)は、ローカルノード動き推定を適用してもよい。たとえば、G-PCCエンコーダ200(たとえば、8分木分析ユニット210)は、現在のノード内で力まかせ探索を適用してもよい。この例では、G-PCCエンコーダ200(たとえば、8分木分析ユニット210)は、現在のノード内の点の一部をサンプリングしてもよい。G-PCCエンコーダ200(たとえば、8分木分析ユニット210)は、初期動きベクトルが与えられると、補償点を生成し、それらの点と基準ノードにおける補償点の対との間のコストを算出し得る。G-PCCエンコーダ200(たとえば、8分木分析ユニット210)は、コストを最小限に抑える動きベクトルを最終推定ローカルノード動きベクトルとして選択してもよい。
【0162】
G-PCCエンコーダ200(たとえば、算術符号化ユニット214)は、グローバル動き情報、動きベクトル情報、および現在のフレームについての点情報をシグナリングしてもよい (910)。たとえば、G-PCCエンコーダ200(たとえば、算術符号化ユニット214)は、グローバル動きパラメータの第1のセット(たとえば、方位パラメータのセットおよび/または位置パラメータのセット)をシグナリングしてもよい。いくつかの例では、G-PCCエンコーダ200(たとえば、算術符号化ユニット214)は、グローバル動きパラメータの第2のセット(たとえば、回転行列および並進ベクトル)をシグナリングしてもよい。G-PCCエンコーダ200(たとえば、算術符号化ユニット214)は、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルをシグナリングしてもよい(たとえば、6つの要素)。いくつかの例では、G-PCCエンコーダ200(たとえば、算術符号化ユニット214)は、現在のフレームの平均速度を示す並進ベクトルをシグナリングしてもよい(たとえば、3つの要素)。G-PCCエンコーダ200(たとえば、算術符号化ユニット214)は、並進ベクトルの近似値をTappr=[0,abs(T),0]としてシグナリングしてもよく、ここで、abs()は、並進ベクトルTの大きさを算出するための絶対関数である。
【0163】
図10は、本開示の技法による例示的な復号プロセスを示すフローチャートである。G-PCCエンコーダ200(たとえば、ジオメトリ算術復号ユニット302)は、現在のフレームについてのグローバル動き情報、動きベクトル情報、および点情報を示すビットストリームのシンボルを復号してもよい(1002)。
【0164】
たとえば、G-PCCデコーダ300(たとえば、ジオメトリ算術復号ユニット302)は、ジオメトリビットストリームからグローバル動きパラメータの第1のセットおよび/またはグローバル動きパラメータの第2のセットを復号してもよい203。G-PCCデコーダ300(たとえば、ジオメトリ算術復号ユニット302)は、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルを復号してもよい。いくつかの例では、G-PCCデコーダ300(たとえば、ジオメトリ算術復号ユニット302)は、現在のフレームの平均速度を示す並進ベクトルを復号してもよい。いくつかの例では、G-PCCデコーダ300(たとえば、ジオメトリ算術符号化ユニット302)は、現在のフレームの平均速度を示す大きさの並進ベクトルを復号してもよい。
【0165】
G-PCCデコーダ300(たとえば、8分木分析ユニット306)は、グローバル動き情報に基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータのセットを決定してもよい(1004)。たとえば、G-PCCデコーダ300(たとえば、8分木合成ユニット306)は、ロールの差、ピッチの差、ヨーの差、および並進ベクトルに基づいて回転行列および並進ベクトルを決定してもよい。G-PCCデコーダ300(8分木合成ユニット306)は、ジオメトリビットストリーム203から並進ベクトルを復号し、回転行列を単位行列として近似してもよい。いくつかの例では、G-PCCデコーダ300(たとえば、8分木合成ユニット306)は、ジオメトリビットストリーム203から現在のフレームの平均速度を示す大きさの並進ベクトルを復号してもよい。この例では、G-PCCデコーダ300(たとえば、8分木合成ユニット306)は、受信された大きさに基づいて並進ベクトルを近似し、回転行列を単位行列として近似してもよい。
【0166】
G-PCCデコーダ300(たとえば、8分木合成ユニット306)は、グローバル動きパラメータのセットに基づいて、基準フレームにグローバル動き補償を適用して現在のフレームについてのグローバル動き補償フレームを生成してもよい(1006)。このようにして、G-PCCデコーダ300(8分木合成ユニット306)は、衛星情報を使用するグローバル動き補償を適用してもよく、このグローバル動き補償は、基準フレーム(たとえば、予測フレーム)と現在のフレームとの間の特徴点に基づいて現在のフレームについての回転行列および並進ベクトルを推定することよりも正確である場合がある。
【0167】
G-PCCデコーダ300(たとえば、8分木分析ユニット306)は、グローバル動き補償フレームに基づくローカルノード動き推定を適用して、現在のフレームを生成してもよい(1008)。G-PCCデコーダ300は、現在のフレームを出力してよい(1012)。たとえば、G-PCCデコーダ300は、ディスプレイに現在のフレームを出力させてもよい。
【0168】
本開示の様々な態様における例は、個々に、または任意の組合せで使用されてよい。
【0169】
条項A1 点群データを符号化するためのデバイスであって、点群データを記憶するためのメモリと、メモリに結合され、回路に実装された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別し、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定し、グローバル動きパラメータの第2のセットに基づいて、基準フレームに動き補償を適用して現在のフレームについてのグローバル動き補償フレームを生成するように構成されるデバイス。
【0170】
条項A2 1つまたは複数のプロセッサは、グローバル動きパラメータの第2のセットをビットストリームにおいてシグナリングするように構成される、条項A1に記載のデバイス。
【0171】
条項A3 1つまたは複数のプロセッサは、グローバル動きパラメータの第1のセットをビットストリームにおいてシグナリングするように構成される、条項A1に記載のデバイス。
【0172】
条項A4 グローバル動きパラメータの第1のセットは、方位パラメータのセットを含む、条項A1に記載のデバイス。
【0173】
条項A5 方位パラメータのセットは、現在のフレームについてのロール、ピッチ、ヨー、または角速度のうちの1つまたは複数を含む、条項A4に記載のデバイス。
【0174】
条項A6 方位パラメータのセットは、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、または現在のフレームと基準フレームとの間の角速度の差のうちの1つまたは複数を含む、条項A4に記載のデバイス。
【0175】
条項A7 グローバル動きパラメータの第1のセットは、位置パラメータのセットを含む、条項A1に記載のデバイス。
【0176】
条項A8 位置パラメータのセットは、現在のフレームについての変位または現在のフレームについての平均速度のうちの1つまたは複数を含む、条項A7に記載のデバイス。
【0177】
条項A9 位置パラメータのセットは、East-North-Up座標系の東の速度、北の速度、または上の速度のうちの1つまたは複数を含む、条項A7に記載のデバイス。
【0178】
条項A10 グローバル動きパラメータの第2のセットは、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列ならびに現在のフレームについての平均速度を示す並進ベクトルを含む、条項A1に記載のデバイス。
【0179】
条項A11 1つまたは複数のプロセッサは、グローバル動きパラメータは、現在のフレームについてのロール、現在のフレームについてのピッチ、現在のフレームについてのヨー、および現在のフレームについての平均速度を示す並進ベクトルをシグナリングするように構成される、条項A1に記載のデバイス。
【0180】
条項A12 1つまたは複数のプロセッサは、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルをシグナリングするように構成される、条項A1に記載のデバイス。
【0181】
条項A13 1つまたは複数のプロセッサは、現在のフレームの平均速度を示す並進ベクトルをシグナリングし、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列をシグナリングしないように構成される、条項A1に記載のデバイス。
【0182】
条項A14 1つまたは複数のプロセッサは、現在のフレームの平均速度を示す大きさの並進ベクトルをシグナリングするように構成される、条項A1に記載のデバイス。
【0183】
条項A15 1つまたは複数のプロセッサは、グローバル動き補償フレームに基づいて現在のフレームについての動きベクトル推定を実行するように構成され、かつ1つまたは複数のプロセッサは、動きベクトル推定を実行するために、ローカル動きについてのブロックサイズを最小予測ユニットサイズに等しくなるように制限するように構成される、条項A1に記載のデバイス。
【0184】
条項A16 基準フレームは第1の基準フレームであり、現在のフレームは第1の現在のフレームであり、1つまたは複数のプロセッサは、第2の現在のフレームと第2の基準フレームとの間の平均2乗誤差を最小限に抑えることによって初期並進ベクトルを推定するように構成される、条項A1に記載のデバイス。
【0185】
条項A17 現在のフレームは第1の現在のフレームであり、1つまたは複数のプロセッサは、点が地上であるか否かを判定し、点が地上であるか否かに基づいて第2の現在のフレームについての回転行列を推定するように構成される、条項A1に記載のデバイス。
【0186】
条項A18 1つまたは複数のプロセッサは、点が地上であるか否かを示すラベルのセットをシグナリングするように構成される、条項A17に記載のデバイス。
【0187】
条項A19 1つまたは複数のプロセッサは、点群データを生成するようにさらに構成される、条項A1に記載のデバイス。
【0188】
条項A20 1つまたは複数のプロセッサは、点群データを生成することの一部として、LIDAR装置からの信号に基づいて点群データを生成するように構成される、条項A19に記載のデバイス。
【0189】
条項A21 デバイスは、携帯電話、タブレットコンピュータ、車両、または拡張現実デバイスのうちの1つである、条項A1に記載のデバイス。
【0190】
条項A22 デバイスは、符号化された点群データを送信するように構成されたインターフェースを備える、条項A1に記載のデバイス。
【0191】
条項A23 点群データを符号化するための方法であって、1つまたは複数のプロセッサによって、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別するステップと、1つまたは複数のプロセッサによって、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定するステップと、1つまたは複数のプロセッサによって、グローバル動きパラメータの第2のセットに基づいて、基準フレームに動き補償を適用して現在のフレームについてのグローバル動き補償フレームを生成するステップとを含む方法。
【0192】
条項A24 1つまたは複数のプロセッサによって、グローバル動きパラメータの第2のセットをビットストリームにおいてシグナリングするステップをさらに含む、条項A23に記載の方法。
【0193】
条項A25 1つまたは複数のプロセッサによって、グローバル動きパラメータの第1のセットをビットストリームにおいてシグナリングするステップをさらに含む、条項A23に記載の方法。
【0194】
条項A26 グローバル動きパラメータの第1のセットは、方位パラメータのセットを含む、条項A23に記載の方法。
【0195】
条項A27 方位パラメータのセットは、現在のフレームについてのロール、ピッチ、ヨー、または角速度のうちの1つまたは複数を含む、条項A26に記載の方法。
【0196】
条項A28 方位パラメータのセットは、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、または現在のフレームと基準フレームとの間の角速度の差のうちの1つもしくは複数を含む、条項A26に記載の方法。
【0197】
条項A29 グローバル動きパラメータの第1のセットは、位置パラメータのセットを含む、条項A23に記載の方法。
【0198】
条項A30 位置パラメータのセットは、現在のフレームについての変位または現在のフレームについての角速度のうちの1つまたは複数を含む、条項A29に記載の方法。
【0199】
条項A31 位置パラメータのセットは、East-North-Up座標系の東の速度、北の速度、または上の速度のうちの1つまたは複数を含む、条項A29に記載の方法。
【0200】
条項A32 グローバル動きパラメータの第2のセットは、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列ならびに現在のフレームについての平均速度を示す並進ベクトルを含む、条項A23に記載の方法。
【0201】
条項A33 現在のフレームについてのロール、現在のフレームについてのピッチ、現在のフレームについてのヨー、および現在のフレームについての平均速度を示す並進ベクトルをシグナリングするステップをさらに含む、条項A23に記載の方法。
【0202】
条項A34 現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルをシグナリングするステップをさらに含む、条項A23に記載の方法。
【0203】
条項A35 1つまたは複数のプロセッサによって、現在のフレームの平均速度を示す並進ベクトルをシグナリングし、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列をシグナリングしないステップをさらに含む、条項A23に記載の方法。
【0204】
条項A36 1つまたは複数のプロセッサによって、現在のフレームの平均速度を示す大きさの並進ベクトルをシグナリングするステップをさらに含む、条項A23に記載の方法。
【0205】
条項A37 1つまたは複数のプロセッサによって、グローバル動き補償フレームに基づいて現在のフレームについての動きベクトル推定を実行するステップをさらに含み、動きベクトル推定を実行するステップは、ローカル動きについてのブロックサイズを最小予測ユニットサイズに等しくなるように制限するステップを含む、条項A23に記載の方法。
【0206】
条項A38 基準フレームは第1の基準フレームであり、現在のフレームは第1の現在のフレームであり、方法は、第2の現在のフレームと第2の基準フレームとの間の平均2乗誤差を最小限に抑えることによって初期並進ベクトルを推定するステップをさらに含む、条項A23に記載の方法。
【0207】
条項A39 現在のフレームは第1の現在のフレームであり、方法は、1つまたは複数のプロセッサによって、点が地上であるか否かを判定するステップと、1つまたは複数のプロセッサによって、点が地上であるか否かに基づいて第2の現在のフレームについての回転行列を推定するステップとをさらに含む、条項A23に記載の方法。
【0208】
条項A40 1つまたは複数のプロセッサによって、点が地上であるか否かを示すラベルのセットをシグナリングするステップをさらに含む、条項A39に記載の方法。
【0209】
条項A41 1つまたは複数のプロセッサによって、点群データを生成するステップをさらに含む、条項A23に記載の方法。
【0210】
条項A42 1つまたは複数のプロセッサによって、LIDAR装置からの信号に基づいて点群データを生成するステップをさらに含む、条項A41に記載の方法。
【0211】
条項A43 命令が記憶されたコンピュータ可読記憶媒体であって、命令が、実行されたときに、1つまたは複数のプロセッサに、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別させ、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定させ、グローバル動きパラメータの第2のセットに基づいて、基準フレームに動き補償を適用させて現在のフレームについてのグローバル動き補償フレームを生成するコンピュータ可読記憶媒体。
【0212】
条項B1 点群データを符号化するためのデバイスであって、点群データを記憶するためのメモリと、メモリに結合され、回路に実装された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別し、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定し、グローバル動きパラメータの第2のセットに基づいて、基準フレームに動き補償を適用して現在のフレームについてのグローバル動き補償フレームを生成するように構成されるデバイス。
【0213】
条項B2 1つまたは複数のプロセッサは、グローバル動きパラメータの第2のセットをビットストリームにおいてシグナリングするように構成される、条項B1に記載のデバイス。
【0214】
条項B3 1つまたは複数のプロセッサは、グローバル動きパラメータの第1のセットをビットストリームにおいてシグナリングするように構成される、条項B1に記載のデバイス。
【0215】
条項B4 グローバル動きパラメータの第1のセットは、方位パラメータのセットを含む、条項B1からB3のいずれか一項に記載のデバイス。
【0216】
条項B5 方位パラメータのセットは、現在のフレームについてのロール、ピッチ、ヨー、または角速度のうちの1つまたは複数を含む、条項B4に記載のデバイス。
【0217】
条項B6 方位パラメータのセットは、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、または現在のフレームと基準フレームとの間の角速度の差のうちの1つまたは複数を含む、条項B4に記載のデバイス。
【0218】
条項B7 グローバル動きパラメータの第1のセットは、位置パラメータのセットを含む、条項B1からB6のいずれか一項に記載のデバイス。
【0219】
条項B8 位置パラメータのセットは、現在のフレームについての変位または現在のフレームについての平均速度のうちの1つまたは複数を含む、条項B7に記載のデバイス。
【0220】
条項B9 位置パラメータのセットは、East-North-Up座標系の東の速度、北の速度、または上の速度のうちの1つまたは複数を含む、条項B7に記載のデバイス。
【0221】
条項B10 グローバル動きパラメータの第2のセットは、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列ならびに現在のフレームについての平均速度を示す並進ベクトルを含む、条項B1からB9のいずれか一項に記載のデバイス。
【0222】
条項B11 1つまたは複数のプロセッサは、現在のフレームについてのロール、現在のフレームについてのピッチ、現在のフレームについてのヨー、および現在のフレームについての平均速度を示す並進ベクトルをシグナリングするように構成される、条項B1、B4からB10のいずれか一項に記載のデバイス。
【0223】
条項B12 1つまたは複数のプロセッサは、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルをシグナリングするように構成される、条項B1、B4からB10のいずれか一項に記載のデバイス。
【0224】
条項B13 1つまたは複数のプロセッサは、現在のフレームの平均速度を示す並進ベクトルをシグナリングし、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列をシグナリングしないように構成される、条項B1、B4からB10のいずれか一項に記載のデバイス。
【0225】
条項B14 1つまたは複数のプロセッサは、現在のフレームの平均速度を示す大きさの並進ベクトルをシグナリングするように構成される、条項B1、B4からB10のいずれか一項に記載のデバイス。
【0226】
条項B15 1つまたは複数のプロセッサは、グローバル動き補償フレームに基づいて現在のフレームについての動きベクトル推定を実行するように構成され、かつ1つまたは複数のプロセッサは、動きベクトル推定を実行するために、ローカル動きについてのブロックサイズを最小予測ユニットサイズに等しくなるように制限するように構成される、条項B1からB14のいずれか一項に記載のデバイス。
【0227】
条項B16 基準フレームは第1の基準フレームであり、現在のフレームは第1の現在のフレームであり、1つまたは複数のプロセッサは、第2の現在のフレームと第2の基準フレームとの間の平均2乗誤差を最小限に抑えることによって初期並進ベクトルを推定するように構成される、条項B1からB15のいずれか一項に記載のデバイス。
【0228】
条項B17 現在のフレームは第1の現在のフレームであり、1つまたは複数のプロセッサは、点が地上であるか否かを判定し、点が地上であるか否かに基づいて第2の現在のフレームについての回転行列を推定するように構成される、条項B1からB15のいずれか一項に記載のデバイス。
【0229】
条項B18 1つまたは複数のプロセッサは、点が地上であるか否かを示すラベルのセットをシグナリングするように構成される、条項B17に記載のデバイス。
【0230】
条項B19 1つまたは複数のプロセッサは、点群データを生成するようにさらに構成される、条項B1からB18のいずれか一項に記載のデバイス。
【0231】
条項B20 1つまたは複数のプロセッサは、点群データを生成することの一部として、LIDAR装置からの信号に基づいて点群データを生成するように構成される、条項B19に記載のデバイス。
【0232】
条項B21 デバイスは、携帯電話、タブレットコンピュータ、車両、または拡張現実デバイスのうちの1つである、条項B1からB20のいずれか一項に記載のデバイス。
【0233】
条項B22 デバイスは、符号化された点群データを送信するように構成されたインターフェースを備える、条項B1からB21のいずれか一項に記載のデバイス。
【0234】
条項B23 点群データを符号化するための方法であって、1つまたは複数のプロセッサによって、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別するステップと、1つまたは複数のプロセッサによって、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定するステップと、1つまたは複数のプロセッサによって、グローバル動きパラメータの第2のセットに基づいて、基準フレームに動き補償を適用して現在のフレームについてのグローバル動き補償フレームを生成するステップとを含む方法。
【0235】
条項B24 1つまたは複数のプロセッサによって、グローバル動きパラメータの第2のセットをビットストリームにおいてシグナリングするステップをさらに含む、条項B23に記載の方法。
【0236】
条項B25 1つまたは複数のプロセッサによって、グローバル動きパラメータの第1のセットをビットストリームにおいてシグナリングするステップをさらに含む、条項B23に記載の方法。
【0237】
条項B26 グローバル動きパラメータの第1のセットは、方位パラメータのセットを含む、条項B23からB25のいずれか一項に記載の方法。
【0238】
条項B27 方位パラメータのセットは、現在のフレームについてのロール、ピッチ、ヨー、または角速度のうちの1つまたは複数を含む、条項B26に記載の方法。
【0239】
条項B28 方位パラメータのセットは、現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、または現在のフレームと基準フレームとの間の角速度の差のうちの1つもしくは複数を含む、条項B26に記載の方法。
【0240】
条項B29 グローバル動きパラメータの第1のセットは、位置パラメータのセットを含む、条項B23からB28のいずれか一項に記載の方法。
【0241】
条項B30 位置パラメータのセットは、現在のフレームについての変位または現在のフレームについての角速度のうちの1つまたは複数を含む、条項B29に記載の方法。
【0242】
条項B31 位置パラメータのセットは、East-North-Up座標系の東の速度、北の速度、または上の速度のうちの1つまたは複数を含む、条項B29に記載の方法。
【0243】
条項B32 グローバル動きパラメータの第2のセットは、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列ならびに現在のフレームについての平均速度を示す並進ベクトルを含む、条項B23からB31のいずれか一項に記載のデバイス。
【0244】
条項B33 現在のフレームについてのロール、現在のフレームについてのピッチ、現在のフレームについてのヨー、および現在のフレームについての平均速度を示す並進ベクトルをシグナリングするステップをさらに含む、条項B23に記載の方法。
【0245】
条項B34 現在のフレームと基準フレームとの間のロールの差、現在のフレームと基準フレームとの間のピッチの差、現在のフレームと基準フレームとの間のヨーの差、および現在のフレームの平均速度を示す並進ベクトルをシグナリングするステップをさらに含む、条項B23、B26からB33のいずれか一項に記載の方法。
【0246】
条項B35 1つまたは複数のプロセッサによって、現在のフレームの平均速度を示す並進ベクトルをシグナリングし、現在のフレームについてのヨー、ピッチ、およびロールを示す回転行列をシグナリングしないステップをさらに含む、条項B23、B26からB33のいずれか一項に記載の方法。
【0247】
条項B36 1つまたは複数のプロセッサによって、現在のフレームの平均速度を示す大きさの並進ベクトルをシグナリングするステップをさらに含む、条項B23、B26からB33のいずれか一項に記載の方法。
【0248】
条項B37 1つまたは複数のプロセッサによって、グローバル動き補償フレームに基づいて現在のフレームについての動きベクトル推定を実行するステップをさらに含み、動きベクトル推定を実行するステップは、ローカル動きについてのブロックサイズを最小予測ユニットサイズに等しくなるように制限するステップを含む、条項B23からB36のいずれか一項に記載の方法。
【0249】
条項B38 基準フレームは第1の基準フレームであり、現在のフレームは第1の現在のフレームであり、方法は、第2の現在のフレームと第2の基準フレームとの間の平均2乗誤差を最小限に抑えることによって初期並進ベクトルを推定するステップをさらに含む、条項B23からB37のいずれか一項に記載の方法。
【0250】
条項B39 現在のフレームは第1の現在のフレームであり、方法は、1つまたは複数のプロセッサによって、点が地上であるか否かを判定するステップと、1つまたは複数のプロセッサによって、点が地上であるか否かに基づいて第2の現在のフレームについての回転行列を推定するステップとをさらに含む、条項B23からB37のいずれか一項に記載の方法。
【0251】
条項B40 1つまたは複数のプロセッサによって、点が地上であるか否かを示すラベルのセットをシグナリングするステップをさらに含む、条項B39に記載の方法。
【0252】
条項B41 1つまたは複数のプロセッサによって、点群データを生成するステップをさらに含む、条項B23からB40のいずれか一項に記載の方法。
【0253】
条項B42 1つまたは複数のプロセッサによって、LIDAR装置からの信号に基づいて点群データを生成するステップをさらに含む、条項B41に記載の方法。
【0254】
条項B43 命令が記憶されたコンピュータ可読記憶媒体であって、命令が、実行されたときに、1つまたは複数のプロセッサに、グローバルポジショニングシステム情報からグローバル動きパラメータの第1のセットを識別させ、グローバル動きパラメータの第1のセットに基づいて、現在のフレームについてのグローバル動き推定に使用されるグローバル動きパラメータの第2のセットを決定させ、グローバル動きパラメータの第2のセットに基づいて、基準フレームに動き補償を適用させて現在のフレームについてのグローバル動き補償フレームを生成するコンピュータ可読記憶媒体。
【0255】
例によっては、本明細書で説明した技法のうちのいずれかのいくつかの行為またはイベントが、異なるシーケンスで実施されてよく、追加され、統合され、または完全に除外されてよい(たとえば、説明したすべての行為またはイベントが技法の実践にとって必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して並行して実施されてよい。
【0256】
1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せとして実装されてもよい。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は一般に、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応してもよい。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であってもよい。コンピュータプログラム製品がコンピュータ可読媒体を含んでもよい。
【0257】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用でき、コンピュータによってアクセスすることができる任意の他の媒体を備えることができる。また、いかなる接続も適切にコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0258】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の同等の集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行されてもよい。したがって、本明細書で使用する「プロセッサ」および「処理回路構成」という用語は、上記の構造、または本明細書で説明する技法の実装に適した任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明する機能性は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で提供されてよく、または複合コーデックに組み込まれてよい。また、技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
【0259】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置に実装されてもよい。開示される技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて本開示において説明したが、それらは必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わされてよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上で説明したような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【0260】
様々な例について説明してきた。これらおよび他の例は、以下の特許請求の範囲内に入る。
【符号の説明】
【0261】
100 システム
102 ソースデバイス
104 データソース
106 メモリ
108 出力インターフェース
110 コンピュータ可読媒体
112 記憶デバイス
114 ファイルサーバ
116 宛先デバイス
118 データコンシューマ
120 メモリ
122 入力インターフェース
200 G-PCCエンコーダ
202 座標変換ユニット
203 ジオメトリビットストリーム
204 色変換ユニット
205 属性ビットストリーム
206 ボクセル化ユニット
208 属性転送ユニット
210 8分木分析ユニット
212 表面近似分析ユニット
214 算術符号化ユニット
216 ジオメトリ再構築ユニット
218 RAHTユニット
220 LOD生成ユニット
222 リフティングユニット
224 係数量子化ユニット
226 算術符号化ユニット
300 G-PCCデコーダ
302 ジオメトリ算術復号ユニット
304 属性算術復号ユニット
306 8分木合成ユニット
308 逆量子化ユニット
310 表面近似合成ユニット
312 ジオメトリ再構築ユニット
314 RAHTユニット
316 LOD生成ユニット
318 逆リフティングユニット
320 逆変換座標ユニット
322 逆変換色ユニット
402 予測フレーム
602 現在のノード
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【国際調査報告】