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

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

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

特表2024-543548G-PCCのためのローカル適応インター予測
<>
  • 特表-G-PCCのためのローカル適応インター予測 図1
  • 特表-G-PCCのためのローカル適応インター予測 図2
  • 特表-G-PCCのためのローカル適応インター予測 図3
  • 特表-G-PCCのためのローカル適応インター予測 図4
  • 特表-G-PCCのためのローカル適応インター予測 図5
  • 特表-G-PCCのためのローカル適応インター予測 図6
  • 特表-G-PCCのためのローカル適応インター予測 図7A
  • 特表-G-PCCのためのローカル適応インター予測 図7B
  • 特表-G-PCCのためのローカル適応インター予測 図8
  • 特表-G-PCCのためのローカル適応インター予測 図9
  • 特表-G-PCCのためのローカル適応インター予測 図10
  • 特表-G-PCCのためのローカル適応インター予測 図11
  • 特表-G-PCCのためのローカル適応インター予測 図12
  • 特表-G-PCCのためのローカル適応インター予測 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-21
(54)【発明の名称】G-PCCのためのローカル適応インター予測
(51)【国際特許分類】
   G06T 9/00 20060101AFI20241114BHJP
   G06T 7/246 20170101ALI20241114BHJP
   G06T 9/40 20060101ALI20241114BHJP
   G06V 20/58 20220101ALI20241114BHJP
   G06V 20/20 20220101ALI20241114BHJP
   G06T 7/521 20170101ALI20241114BHJP
   G06T 7/593 20170101ALI20241114BHJP
【FI】
G06T9/00 100
G06T7/246
G06T9/40
G06V20/58
G06V20/20
G06T7/521
G06T7/593
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024531165
(86)(22)【出願日】2022-12-01
(85)【翻訳文提出日】2024-05-23
(86)【国際出願番号】 US2022080760
(87)【国際公開番号】W WO2023102484
(87)【国際公開日】2023-06-08
(31)【優先権主張番号】63/264,910
(32)【優先日】2021-12-03
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】18/060,208
(32)【優先日】2022-11-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】ファン・バン、ルオン
(72)【発明者】
【氏名】ファン・デル・オーウェラ、ゲールト
(72)【発明者】
【氏名】ラマスブラモニアン、アダルシュ・クリシュナン
(72)【発明者】
【氏名】カルチェビチ、マルタ
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA02
5L096AA06
5L096AA09
5L096BA04
5L096CA04
5L096CA17
5L096DA01
5L096DA02
5L096EA22
5L096FA15
5L096FA67
5L096FA69
5L096FA75
5L096GA38
5L096HA02
(57)【要約】
点群データを復号する方法は、点群データが、複数の最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定することと、LPUについての予測点を決定するためにインター予測を実施することと、LPUについての予測点に基づいて、PU内の点を再構成することと、を含む。

【特許請求の範囲】
【請求項1】
点群データを復号する方法であって、
前記点群データが、複数の最大予測単位(LPUs)であって、前記複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定することと、
前記LPUについての予測点を決定するためにインター予測を実施することと、
前記LPUについての前記予測点に基づいて、前記LPU内の点を再構成することと、を含む、方法。
【請求項2】
前記LPUの前記サイズが、八分木幾何コーディングによって決定される前記点群データの四分木-二分木分割と整列する、請求項1に記載の方法。
【請求項3】
前記LPUが、第1のLPUと第2のLPUとを含み、
前記LPU内の前記予測点を決定するためにインター予測を実施することが、
以前に再構成された点群にグローバル動き補償を適用することなく、前記以前に再構成された点群に基づいて前記第1のLPU内の予測点を決定することと、
前記以前に再構成された点群にグローバル動き補償を適用して、前記以前に再構成された点群に基づいて前記第2のLPU内の予測点を決定することと、を含む、
請求項1に記載の方法。
【請求項4】
前記LPU内の予測点を決定するためにインター予測を実施することが、
前記複数のLPUのうちの1つのLPUの動きを決定することと、
前記LPU内の点を予測するために、前記LPUの前記動きを使用することと、
を含む、請求項1に記載の方法。
【請求項5】
前記点群データが複数のLPUに分割されると決定することが、
第1のシグナリングされる指示に基づいて、前記点群データがx方向において前記LPUに分割されると決定すること、
第2のシグナリングされる指示に基づいて、前記点群データがy方向において前記LPUに分割されると決定すること、又は
第3のシグナリングされる指示に基づいて、前記点群データがz方向において前記LPUに分割されると決定すること、を含む、請求項1に記載の方法。
【請求項6】
前記点群データが前記LPUに分割されると決定することが、x、y、及びz方向のうちの少なくとも1つの方向について、前記点群データの分割が前記方向において有効にされるかどうかと、前記方向に沿った前記LPUのサイズとを示すシンタックス要素を取得することを含む、請求項1に記載の方法。
【請求項7】
前記点群データが前記LPUに分割されると決定することが、
前記点群データの分割がx、y、又はz方向のうちの少なくとも1つの方向に沿って有効にされないと決定することと、
前記点群データの分割が前記方向に沿った有効にされないという前記決定に基づいて、前記LPUのサイズが前記方向に沿った前記点群データのサイズに等しいと決定することと、を含む、請求項1に記載の方法。
【請求項8】
前記方向が、x、y及びz方向を含み、
前記点群データが垂直方向に分割され、x及びy方向における前記LPUの前記サイズが、前記x及びy方向における前記点群データのサイズに等しいこと、
前記点群データが水平x方向に分割され、y及びz方向における前記LPUの前記サイズが、前記x及びy方向における前記点群データのサイズに等しいこと、又は
前記点群データが水平y方向に分割され、y及びz方向における前記LPUの前記サイズが、前記x及びy方向における前記点群データのサイズに等しいこと、
のうちの1つを含む、
請求項1に記載の方法。
【請求項9】
前記点群データが前記複数のLPUに分割されると決定することが、ヘッダレベルにおいてシグナリングされるシンタックス要素に基づいて、前記点群データが前記方向のうちの1つのみにおいて前記LPUに分割されると決定することを含む、請求項1に記載の方法。
【請求項10】
点群データを符号化する方法であって、
前記点群データが、複数の最大予測単位(LPUs)であって、前記複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定することと、
前記LPUについての予測点を決定するためにインター予測を実施することと、
前記LPUについての前記予測点に基づいて、前記LPU内の点を符号化することと、を含む、方法。
【請求項11】
前記LPUの前記サイズが、八分木幾何コーディングによって決定される前記点群データの四分木-二分木分割と整列する、請求項10に記載の方法。
【請求項12】
前記LPUが、第1のLPUと第2のLPUとを含み、
前記LPU内の前記予測点を決定するためにインター予測を実施することが、
以前に再構成された点群にグローバル動き補償を適用することなく、前記以前に再構成された点群に基づいて前記第1のLPU内の予測点を決定することと、
前記以前に再構成された点群にグローバル動き補償を適用して、前記以前に再構成された点群に基づいて、前記第2のLPU内の予測点を決定することと、を含む、
請求項10に記載の方法。
【請求項13】
前記LPU内の予測点を決定するためにインター予測を実施することが、
前記複数のLPUのうちの1つのLPUの動きを決定することと、
前記LPU内の点を予測するために、前記LPUの前記動きを使用することと、を含む、請求項10に記載の方法。
【請求項14】
前記点群データがx方向において前記LPUに分割されるかどうかを示す第1の指示をシグナリングすること、
前記点群データがy方向において前記LPUに分割されるかどうかを示す第2のシグナリングされる指示をシグナリングすること、又は
前記点群データがz方向において前記LPUに分割されるかどうかを示す第3のシグナリングされる指示をシグナリングすること、を含む、
請求項10に記載の方法。
【請求項15】
x、y、及びz方向のうちの少なくとも1つの方向について、前記点群データの分割が前記方向において有効にされるかどうかと、前記方向に沿ったLPUの前記サイズとを示すシンタックス要素をシグナリングすることを更に含む、請求項10に記載の方法。
【請求項16】
前記方向が、x、y及びz方向を含み、
前記点群データが垂直方向に分割され、x及びy方向における前記LPUの前記サイズが、前記x及びy方向における前記点群データの前記サイズに等しいこと、
前記点群データが水平X方向に分割され、y及びz方向における前記LPUの前記サイズが、前記x及びy方向における前記点群データの前記サイズに等しいこと、又は
前記点群データが、水平Y方向に分割され、y及びz方向における前記LPUの前記サイズが、前記x及びy方向における前記点群データの前記サイズに等しいこと、
のうちの1つを含む、
請求項10に記載の方法。
【請求項17】
前記点群データが前記方向のうちの1つのみにおいて前記LPUに分割されることを示すシンタックス要素をヘッダレベルにおいてシグナリングすることを更に含む、請求項10に記載の方法。
【請求項18】
点群データを復号するためのデバイスであって、
前記点群データを記憶するように構成されたメモリと、
回路構成に実装される1つ又は複数のプロセッサであって、
前記点群データが、複数の最大予測単位(LPUs)であって、前記複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定し、
前記LPUについての予測点を決定するためにインター予測を実施し、
前記LPUについての前記予測点に基づいて、前記LPU内の点を再構成するように構成された、1つ又は複数のプロセッサと、
を備える、デバイス。
【請求項19】
前記1つ又は複数のプロセッサが、前記点群データが複数のLPUに分割されると決定することの一部として、
第1のシグナリングされる指示に基づいて、前記点群データがx方向において前記LPUに分割されると決定し、
第2のシグナリングされる指示に基づいて、前記点群データがy方向において前記LPUに分割されると決定し、又は
第3のシグナリングされる指示に基づいて、前記点群データがz方向において前記LPUに分割されると決定するように構成される、請求項18に記載のデバイス。
【請求項20】
前記1つ又は複数のプロセッサが、前記点群データが前記LPUに分割されると決定することの一部として、x、y、及びz方向のうちの各方向について、前記点群データの分割が前記方向において有効にされるかどうかと、前記方向に沿った前記LPUのサイズとを示すシンタックス要素を取得するように構成される、請求項18に記載のデバイス。
【請求項21】
前記1つ又は複数のプロセッサが、前記点群データが前記LPUに分割されると決定することの一部として、x、y、又はz方向のうちの少なくとも1つの方向に沿って前記点群データの分割が有効にされないと決定し、前記LPUのサイズが前記方向に沿った前記点群データのサイズに等しいと決定するように構成される、請求項18に記載のデバイス。
【請求項22】
前記方向が、x、y及びz方向を含み、
前記点群データが垂直方向に分割され、x及びy方向における前記LPUの前記サイズが、前記x及びy方向における前記点群データのサイズに等しいこと、
前記点群データが水平X方向に分割され、y及びz方向における前記LPUの前記サイズが、前記x及びy方向における前記点群データのサイズに等しいこと、又は
前記点群データが水平Y方向に分割され、y及びz方向における前記LPUの前記サイズが、前記x及びy方向における前記点群データのサイズに等しいこと、
のうちの1つを含む、
請求項18に記載のデバイス。
【請求項23】
前記点群データに基づいて像を表示するためのディスプレイを更に備える、請求項18に記載のデバイス。
【請求項24】
点群データを符号化するためのデバイスであって、
前記点群データを記憶するように構成されたメモリと、
回路構成に実装される1つ又は複数のプロセッサであって、
前記点群データが、複数の最大予測単位(LPUs)であって、前記複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定し、
前記LPUについての予測点を決定するためにインター予測を実施し、
前記LPUについての前記予測点に基づいて、前記LPU内の点を符号化するように構成された、1つ又は複数のプロセッサと、を備える、デバイス。
【請求項25】
前記1つ又は複数のプロセッサが、前記点群データが複数のLPUに分割されると決定することの一部として、
前記点群データがx方向において前記LPUに分割されるかどうかを示す第1の指示をシグナリングし、
前記点群データがy方向に前記LPUに分割されるか否かを示す第2のシグナリング指示をシグナリングし、又は
前記点群データがz方向において前記LPUに分割されるかどうかを示す第3のシグナリングされる指示をシグナリングするように構成される、請求項24に記載のデバイス。
【請求項26】
前記1つ又は複数のプロセッサが、x、y、又はz方向のうちの少なくとも1つの方向について、前記点群データの分割が前記方向において有効にされるかどうかと、前記方向に沿った前記LPUのサイズとを示すシンタックス要素をシグナリングするように構成される、請求項24に記載のデバイス。
【請求項27】
前記方向が、x、y及びz方向を含み、
前記点群データが垂直方向に分割され、x及びy方向における前記LPUの前記サイズが、前記x及びy方向における前記点群データのサイズに等しいこと、
前記点群データが水平X方向に分割され、y及びz方向における前記LPUの前記サイズが、前記x及びy方向における前記点群データのサイズに等しいこと、又は
前記点群データが水平Y方向に分割され、y及びz方向における前記LPUの前記サイズが、前記x及びy方向における前記点群データのサイズに等しいこと、
のうちの1つを含む、
請求項24に記載のデバイス。
【請求項28】
前記点群データを生成するためのセンサを更に備える、請求項24に記載のデバイス。

【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本出願は、2022年11月30日に出願された米国特許出願第18/060,208号、及び2021年12月3日に出願された米国仮特許出願第63/264,910号の優先権を主張し、その各々の内容全体が参照により本明細書に組み込まれる。2022年11月30日に出願された米国特許出願第18/060,208号は、2021年12月3日に出願された米国仮特許出願第63/264,910号の利益を主張する。
【0002】
[0002] 本開示は、点群符号化及び復号に関する。
【背景技術】
【0003】
[0003] 点群とは、3次元空間における点の集合である。点は、3次元空間内のオブジェクト上の点に対応し得る。よって、点群は、3次元空間の物理的コンテンツを表すために使用され得る。点群は、多種多様な状況において有用性を有し得る。例えば、点群は、自律走行車両のコンテキストにおいて、道路上のオブジェクトの位置を表すために使用され得る。別の例では、点群は、環境の物理的コンテンツを表すコンテキストにおいて、拡張現実(augmented reality、AR)又は複合現実(mixed reality、MR)アプリケーションにおいて仮想オブジェクトを配置する目的で使用され得る。点群圧縮とは、点群を符号化及び復号するプロセスである。点群を符号化することは、点群の記憶及び送信のために必要とされるデータの量を減らし得る。
【発明の概要】
【0004】
[0004] 概して、本開示は、座標ベース点群圧縮(Geometry Point Cloud Compression、G-PCC)のための技法について説明する。本開示の技法は、3次元グラフィックスチーム(3-Dimensional Graphics、3DG)グループによってMPEG内で開発されているG-PCC規格など、G-PCCのためのローカル適応インター予測を使用してインターコーディングの性能を改善し得る。点群は、複数の最大予測単位(Largest Prediction Units、LPUs)に分割され得る。本開示の技法によれば、複数のLPUのうちの少なくとも2つは、異なる方向に沿って異なるサイズを有する。例えば、LPUは、第1の方向(例えば、x、y、又はz方向)において第1のサイズを有し得、LPUは、第2の方向において第1のサイズとは異なる第2のサイズを有し得る。言い換えれば、LPUは厳密に立方体である必要はない。LPUが異なる次元に沿って異なるサイズを有することを可能にすることは、点群データが、点群データの八分木幾何コーディングのために使用される四分木-二分木分割に従ってLPUに分割されることを可能にし得る。G-PCCエンコーダは、LPUについての予測点を決定するためにインター予測を実施し得、LPUについての予測点に基づいて、LPU内の点を符号化し得る。G-PCCデコーダは、LPUについての予測点を決定するためにインター予測を実施し得、LPUについての予測点に基づいて、LPU内の点を再構成し得る。LPUが異なる方向に沿って異なるサイズを有することを可能にすることは、コーディング効率を高め得る。
【0005】
[0005] 一例では、本開示は、点群データを復号する方法について説明し、方法は、点群データが、最大予測単位(LPUs)のうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定することと、LPUについての予測点を決定するためにインター予測を実施することと、LPUについての予測点に基づいて、LPU内の点を再構成することと、を含む。
【0006】
[0006] 別の例では、本開示は、点群データを符号化する方法について説明し、方法は、点群データが、複数の最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定することと、LPUについての予測点を決定するためにインター予測を実施することと、LPUについての予測点に基づいて、LPU内の点を符号化することとを含む。
【0007】
[0007] 別の例では、本開示は、点群データを復号するためのデバイスについて説明し、デバイスは、点群データを記憶するように構成されたメモリと、回路構成に実装されている1つ又は複数のプロセッサであって、点群データが、複数の最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定し、LPUについての予測点を決定するためにインター予測を実施し、LPUについての予測点に基づいて、LPU内の点を再構成するように構成された、1つ又は複数のプロセッサと、を備える。
【0008】
[0008] 別の例では、本開示は、点群データを符号化するためのデバイスについて説明し、デバイスは、点群データを記憶するように構成されたメモリと、回路構成に実装されている1つ又は複数のプロセッサであって、点群データが、複数の最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定し、LPUについての予測点を決定するためにインター予測を実施し、LPUについての予測点に基づいて、LPU内の点を符号化するように構成された、1つ又は複数のプロセッサと、を備える。
【0009】
[0009] 1つ又は複数の例の詳細が、添付図面及び以下の説明に記載されている。他の特徴、目的、及び利点は、説明、図面、及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0010】
図1】[0010] 本開示の技法を実施し得る例示的な符号化及び復号システムを示すブロック図である。
図2】[0011] 例示的な座標ベース点群圧縮(G-PCC)エンコーダを示すブロック図である。
図3】[0012] 例示的なG-PCCデコーダを示すブロック図である。
図4】[0013] 例示的な動き推定アルゴリズムを示すフローチャートである。
図5】[0014] 最大予測ユニット(Largest Prediction Unit、LPU)を予測ユニット(Prediction Unit、PU)木に分割する一例を示す概念図である。
図6】[0015] 誤予測された兄弟の数を得るための親ノード及び親ノードの参照ノードの占有を示す概念図である。
図7A】[0016] 平面コピーモード(planar copy mode、PCM)モード及び非PCMモードの例を示す概念図である。
図7B】平面コピーモード(planar copy mode、PCM)モード及び非PCMモードの例を示す概念図である。
図8】[0017] 本開示の技法による、G-PCCエンコーダの例示的な動作を示すフローチャートである。
図9】[0018] 本開示の技法による、G-PCCデコーダの例示的な動作を示すフローチャートである。
図10】[0019] 本開示の1つ又は複数の技法で使用され得る、例示的な距離測定システムを示す概念図である。
図11】[0020] 本開示の1つ又は複数の技法が使用され得る、例示的な車両ベースのシナリオを示す概念図である。
図12】[0021] 本開示の1つ又は複数の技法が使用され得る、例示的なエクステンデッドリアリティシステムを示す概念図である。
図13】[0022] 本開示の1つ又は複数の技法が使用され得る、例示的なモバイルデバイスシステムを示す概念図である。
【発明を実施するための形態】
【0011】
[0023] 点群とは、3次元空間における点の集合である。一般に、点群データは、点群を表すデータなど、点群を処理するためのあらゆるデータを含む。点は、3次元空間内のオブジェクト上の点に対応し得る。よって、点群データは、3次元空間の物理的コンテンツを表すために使用され得る。点群データは、多種多様な状況において有用性を有し得る。例えば、点群データは、自律走行車両のコンテキストにおいて、道路上のオブジェクトの位置を表すために使用され得る。別の例では、点群データは、環境の物理的コンテンツを表すコンテキストにおいて、拡張現実(AR)又は複合現実(MR)アプリケーションにおいて仮想オブジェクトを配置する目的で使用され得る。点群圧縮は、点群データを符号化及び復号するプロセスである。点群データを符号化することは、点群データの記憶及び送信に必要なデータの量を低減し得る。座標ベースの点群圧縮(G-PCC)は、点群データを符号化及び記憶するのに必要なデータの量を低減するための手法である。
【0012】
[0024] 点群データを符号化することの一部として、G-PCCエンコーダは、八分木を生成し得る。八分木の各ノードは、直方体空間に対応する。直方体は、六面の立体を持つ六面体である。直方体の各面は四辺形である。説明を容易にするために、本開示は、いくつかの状況では、ノードと、ノードに対応する直方体空間とを互換的に言及する場合がある。八分木のノードは、0個の子ノード又は8つの子ノードを有し得る。他の例では、ノードは、他の木構造に従って、子ノードに分割され得る。例えば、八分木のノードは、4つ又は2つの子ノードに分割され得る。よって、八分木は、四分木又は二分木分割を含み得る。親の子ノードは、親ノードに対応する直方体内の直方体に対応する。点群の個々の点の位置は、点を含む直方体に対応するノードについてシグナリングされ得る。ノードが点群のいかなる点も含んでいない場合、ノードは占有されていないという。ノードが占有されていない場合、ノードに関する追加のデータをシグナリングする必要がないことがある。逆に、ノードが点群の1つ又は複数の点を含む場合、ノードは占有されているという。
【0013】
[0025] 加えて、同じ点群データが、等しいサイズの最大予測単位(LPUs)に分割され得る。よって、LPUの各々は、厳密な立方体であり得る。G-PCCエンコーダは、参照フレーム中の点に基づいて、LPUの点を予測するためにインター予測を実施し得る。参照フレームは、以前に再構成された点群データを含む。G-PCCエンコーダは、LPUについての予測点に基づいて、LPU内の点を符号化し得る。同様に、G-PCCデコーダは、参照フレーム中の点に基づいて、LPUの点を予測するためにインター予測を実施し得る。G-PCCデコーダは、LPUについての予測点に基づいて、LPU内の点を再構成し得る。
【0014】
[0026] LPUの各々が厳密な立方体であることを必要とすることに関連して、いくつかの欠点がある。例えば、LPUの境界は、八分木の直方体の境界と整列しない場合がある。別の例では、LPUの境界は、点群データの境界と四方に整列しない場合がある。境界のこの非整列は、コーディング効率を低下させ得、点群データを表すためにより多くのデータが記憶又は送信されることにつながる。
【0015】
[0027] 本開示の技法によれば、LPUのうちの少なくとも2つは、異なる方向に沿って異なるサイズを有し得る。よって、LPUのサイズは、八分木幾何コーディングによって決定される点群データの四分木-二分木分割と整列する。これは、符号化効率を高め、その結果、点群データを表すために記憶又は送信されるデータを少なくし得る。
【0016】
[0028] 図1は、本開示の技法を実施し得る例示的な符号化及び復号システム100を示すブロック図である。本開示の技法は、概して、点群データをコーディング(符号化及び/又は復号)すること、すなわち、点群圧縮をサポートすることに関する。一般に、点群データは、点群を処理するためのあらゆるデータを含む。コーディングは、点群データを圧縮及び/又は解凍するのに有効であり得る。
【0017】
[0029] 図1に示すように、システム100は、ソースデバイス102及びデスティネーションデバイス116を含む。ソースデバイス102は、デスティネーションデバイス116によって復号される符号化された点群データを提供する。具体的には、図1の例では、ソースデバイス102は、コンピュータ可読媒体110を介してデスティネーションデバイス116に点群データを提供する。ソースデバイス102及びデスティネーションデバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビ、カメラ、表示デバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、地上又は海上車両、宇宙船、航空機、ロボット、LIDARデバイス、衛星などを含む、広範囲のデバイスのいずれかを含み得る。場合によっては、ソースデバイス102及びデスティネーションデバイス116は、ワイヤレス通信に対応してもよい。
【0018】
[0030] 図1の例では、ソースデバイス102は、データソース104、メモリ106、G-PCCエンコーダ200、及び出力インターフェース108を含む。デスティネーションデバイス116は、入力インターフェース122、G-PCCデコーダ300、メモリ120、及びデータコンシューマ118を含む。本開示によれば、ソースデバイス102のG-PCCエンコーダ200、及びデスティネーションデバイス116のG-PCCデコーダ300は、GPCC規格のローカル適応予測を使用するインターコーディングに関連する、本開示の技法を適用するように構成され得る。よって、ソースデバイス102は符号化デバイスの例を表し、デスティネーションデバイス116は復号デバイスの一例を表す。他の例では、ソースデバイス102及びデスティネーションデバイス116は、他の構成要素又は配置を含み得る。例えば、ソースデバイス102は、内部又は外部ソースからデータ(例えば、点群データ)を受信し得る。同様に、デスティネーションデバイス116は、同じデバイスの中にデータコンシューマを含むのではなく、外部のデータコンシューマとインターフェースし得る。
【0019】
[0031] 図1に示すようなシステム100は一例にすぎない。一般に、他のデジタル符号化及び/又は復号デバイスは、GPCC規格のローカル適応予測を使用するインターコーディングに関連する、本開示の技法を実施し得る。ソースデバイス102及びデスティネーションデバイス116は、ソースデバイス102がデスティネーションデバイス116への送信のためにコーディングされたデータを生成するようなデバイスの例にすぎない。本開示は、データのコーディング(符号化及び/又は復号)を実施するデバイスを「コーディング」デバイスと呼ぶ。よって、G-PCCエンコーダ200及びG-PCCデコーダ300は、コーディングデバイス、具体的には、それぞれ、エンコーダ及びデコーダの例を表す。いくつかの例では、ソースデバイス102及びデスティネーションデバイス116は、ソースデバイス102及びデスティネーションデバイス116の各々が符号化及び復号構成要素を含むように実質的に対称的に動作し得る。それゆえに、システム100は、例えば、ストリーミング、再生、ブロードキャスト、電話、ナビゲーション、及び他の用途のために、ソースデバイス102とデスティネーションデバイス116との間の一方向送信又は双方向送信をサポートし得る。
【0020】
[0032] 一般に、データソース104は、データのソース(すなわち、未加工の符号化されていない点群データ)を表し、データの逐次的な一連の「フレーム」を、フレームのデータを符号化するG-PCCエンコーダ200に提供し得る。ソースデバイス102のデータソース104は、様々なカメラ若しくはセンサ、例えば、3Dスキャナ若しくは光検出及び測距(LIDAR)デバイス、1つ若しくは複数のビデオカメラ、以前にキャプチャされたデータを含むアーカイブ、並びに/又はデータコンテンツプロバイダからデータを受信するためのデータフィードインターフェースのうちのいずれかなどの、点群キャプチャデバイスを含み得る。代わりに又は加えて、点群データは、スキャナデータ、カメラデータ、センサデータ、又は他のデータからコンピュータ生成され得る。例えば、データソース104は、コンピュータグラフィクスベースのデータをソースデータとして生成し得る、又はライブデータ、アーカイブデータ、コンピュータ生成データの組み合わせを生成し得る。各々の場合において、G-PCCエンコーダ200は、キャプチャされたデータ、事前にキャプチャされたデータ、又はコンピュータ生成データを符号化する。G-PCCエンコーダ200は、受信順序(「表示順序」と呼ばれることがある)からコーディングのためのコーディング順序へとフレームを並べ替え得る。G-PCCエンコーダ200は、符号化されたデータを含む1つ又は複数のビットストリームを生成し得る。次に、ソースデバイス102は、例えば、デスティネーションデバイス116の入力インターフェース122による受信及び/又は取り出しのために、出力インターフェース108を介して符号化されたデータをコンピュータ可読媒体110上に出力し得る。
【0021】
[0033] ソースデバイス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は、点群を表すデータを記憶し得る。
【0022】
[0034] コンピュータ可読媒体110は、符号化されたデータをソースデバイス102からデスティネーションデバイス116にトランスポートすることが可能な任意のタイプの媒体又はデバイスを表し得る。一例では、コンピュータ可読媒体110は、例えば、無線周波数ネットワーク又はコンピュータベースのネットワークを介して、ソースデバイス102が符号化されたデータをデスティネーションデバイス116にリアルタイムで直接送信することを可能にする通信媒体を表す。ワイヤレス通信プロトコルなどの通信規格に従って、出力インターフェース108が、符号化されたデータを含む伝送信号を変調し得、入力インターフェース122が、受信した伝送信号を復調し得る。通信媒体は、無線周波数(radio frequency、RF)スペクトル又は1つ若しくは複数の物理伝送路などの、任意のワイヤレス又はワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、又はソースデバイス102からデスティネーションデバイス116への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0023】
[0035] いくつかの例では、ソースデバイス102は、出力インターフェース108から記憶デバイス112に、符号化されたデータを出力し得る。同様に、デスティネーションデバイス116は、入力インターフェース122を介して、記憶デバイス112から符号化されたデータにアクセスし得る。記憶デバイス112は、ハードドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性若しくは不揮発性メモリ、又は符号化されたデータを記憶するための任意の他の好適なデジタル記憶媒体など、種々の分散型又はローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。
【0024】
[0036] いくつかの例では、ソースデバイス102は、ソースデバイス102によって生成された符号化されたデータを記憶し得るファイルサーバ114又は別の中間記憶デバイスに、符号化されたデータを出力し得る。デスティネーションデバイス116は、ストリーミング又はダウンロードを介して、ファイルサーバ114から記憶されたデータにアクセスし得る。ファイルサーバ114は、符号化されたデータを記憶し、その符号化されたデータをデスティネーションデバイス116に送信することが可能な、任意のタイプのサーバデバイスとすることができる。ファイルサーバ114は、(例えば、ウェブサイトの)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、コンテンツ配信ネットワークデバイス、又はネットワーク接続ストレージ(NAS)デバイスを表し得る。デスティネーションデバイス116は、インターネット接続を含む任意の標準的なデータ接続を通じて、ファイルサーバ114から符号化されたデータにアクセスし得る。これは、ワイヤレスチャネル(例えば、Wi-Fi接続)、ワイヤード接続(例えば、デジタル加入者回線(digital subscriber line、DSL)、ケーブルモデムなど)、又はファイルサーバ114に記憶されている符号化されたデータにアクセスするのに適した両方の組み合わせを含み得る。ファイルサーバ114及び入力インターフェース122は、ストリーミング伝送プロトコル、ダウンロード伝送プロトコル、又はそれらの組み合わせに従って動作するように構成され得る。
【0025】
[0037] 出力インターフェース108及び入力インターフェース122は、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキング構成要素(例えば、イーサネットカード)、様々なIEEE802.11規格のうちのいずれかに従って動作するワイヤレス通信構成要素、又は他の物理構成要素を表し得る。出力インターフェース108及び入力インターフェース122がワイヤレス構成要素を備える例では、出力インターフェース108及び入力インターフェース122は、4G、4G-LTE(Long-Term Evolution)、LTE Advanced、5Gなどのセルラー通信規格に従って、符号化されたデータなどのデータを転送するように構成され得る。出力インターフェース108がワイヤレス送信機を備えるいくつかの例では、出力インターフェース108及び入力インターフェース122は、IEEE802.11仕様、IEEE802.15仕様(例えば、ZigBee(商標))、Bluetooth(商標)規格などの他のワイヤレス規格に従って、符号化されたデータなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス102及び/又はデスティネーションデバイス116は、それぞれのシステムオンチップ(system-on-a-chip、SoC)デバイスを含み得る。例えば、ソースデバイス102は、G-PCCエンコーダ200及び/又は出力インターフェース108に帰属する機能性を実施するためのSoCデバイスを含み得、デスティネーションデバイス116は、G-PCCデコーダ300及び/又は入力インターフェース122に帰属する機能を実施するためのSoCデバイスを含み得る。
【0026】
[0038] 本開示の技法は、自律走行車両間の通信、スキャナ、カメラ、センサと、ローカル若しくはリモートサーバなどの処理デバイスとの間の通信、地理的マッピング、又は他の用途などの、様々な用途のいずれかをサポートする符号化及び復号に適用され得る。
【0027】
[0039] デスティネーションデバイス116の入力インターフェース122は、コンピュータ可読媒体110(例えば、通信媒体、記憶デバイス112、ファイルサーバ114など)から、符号化されたビットストリームを受信する。符号化されたビットストリームは、コーディングされる単位(例えば、スライス、ピクチャ、ピクチャのグループ、シーケンスなど)の特性及び/又は処理を記述する値を有するシンタックス要素などの、G-PCCデコーダ300によっても使用される、G-PCCエンコーダ200によって定義されるシグナリング情報を含み得る。データコンシューマ118は、復号されたデータを使用する。例えば、データコンシューマ118は、物理オブジェクトのロケーションを決定するために、復号されたデータを使用し得る。いくつかの例では、データコンシューマ118は、点群に基づいて像を表示するためのディスプレイを備え得る。
【0028】
[0040] G-PCCエンコーダ200及びG-PCCデコーダ300は各々、1つ若しくは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(digital signal processors、DSPs)、特定用途向け集積回路(application specific integrated circuits、ASICs)、フィールドプログラマブルゲートアレイ(field programmable gate arrays、FPGAs)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせなどの、様々な適切なエンコーダ及び/又はデコーダ回路構成のいずれかとして実装され得る。技法が部分的にソフトウェアで実装されているとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を実行するために1つ又は複数のプロセッサを使用してハードウェアでその命令を実施し得る。G-PCCエンコーダ200及びG-PCCデコーダ300の各々は、1つ又は複数のエンコーダ又はデコーダに含められ得、それらのいずれもが、それぞれのデバイスの中で複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。G-PCCエンコーダ200及び/又はG-PCCデコーダ300を含むデバイスは、1つ又は複数の集積回路、マイクロプロセッサ、及び/又は他のタイプのデバイスを備え得る。
【0029】
[0041] G-PCCエンコーダ200及びG-PCCデコーダ300は、ビデオ点群圧縮(video point cloud compression、V-PCC)規格又は座標ベース点群圧縮(G-PCC)規格などのコーディング規格に従って動作し得る。本開示は、概して、データを符号化又は復号する処理を含む、ピクチャのコーディング(例えば、符号化及び復号)に言及することがある。符号化されたビットストリームは、一般に、コーディング決定(例えば、コーディングモード)を表すシンタックス要素の一連の値を含む。
【0030】
[0042] 本開示は、概して、シンタックス要素などの何らかの情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、一般に、シンタックス要素及び/又は符号化されたデータを復号するために使用される他のデータの値の通信を指すことがある。すなわち、G-PCCエンコーダ200は、ビットストリームにおいてシンタックス要素の値をシグナリングし得る。一般に、シグナリングとは、ビットストリーム内に値を生成することを指す。上述したように、ソースデバイス102は、デスティネーションデバイス116により後で取り出すためにシンタックス要素を記憶デバイス112に記憶するときなどに起こるように、実質的にリアルタイムで、又は非リアルタイムで、ビットストリームをデスティネーションデバイス116にトランスポートし得る。
【0031】
[0043] 点群圧縮活動は、2つの異なる手法へと分類される。第1の手法は「ビデオ点群圧縮」(V-PCC)であり、これは、3Dオブジェクトをセグメント化し、(2Dフレームの中の「パッチ」として表される)複数の2D平面内にセグメントを投影し、これは、高効率ビデオコーディング(High Efficiency Video Coding、HEVC)(ITU-T H.265)コーデックなどのレガシー2Dビデオコーデックによって更にコーディングされる。第2の手法は「座標ベースの点群圧縮」(G-PCC)であり、これは、3D座標、すなわち、3D空間の中の点のセットの位置と、(3D座標に関連する各点に)関連する属性値とを直接圧縮する。G-PCCは、カテゴリ1(静的な点群)とカテゴリ3(動的に取得される点群)との両方における点群の圧縮に対処する。
【0032】
[0044] 点群は、3D空間の中の点のセットを含み、点に関連する属性を有し得る。属性は、R、G、B、若しくはY、Cb、Crなどの色情報、又は反射率情報、あるいは他の属性とすることができる。点群は、LIDARセンサ及び3Dスキャナなどの様々なカメラ又はセンサによってキャプチャされてもよく、また、コンピュータ生成されてもよい。点群データは、建築(モデリング)、グラフィックス(視覚化及びアニメーションのための3Dモデル)、自動車産業(ナビゲーションを支援するために使用されるLIDARセンサ)を含むが、これらに限定されない用途、及びモバイルフォン、タブレットコンピュータ、又は他のモバイルコンピューティングデバイスを含む他の用途において使用される。
【0033】
[0045] 点群データによって占有される3D空間は、仮想的な境界ボックスによって囲まれ得る。境界ボックスにおける点の位置は、一定の精度で表され得、従って、1つ又は複数の点の位置は、その精度に基づいて量子化され得る。最小レベルにおいて、境界ボックスは、単位立方体によって表される空間の最小単位であるボクセルに分割される。境界ボックスの中のボクセルは、0個、1個、又は1個より多くの点と関連付けられ得る。境界ボックスは、タイルと呼ばれることがある複数の立方体/直方体領域に分割され得る。各タイルは、1つ又は複数のスライスにコーディングされ得る。スライス及びタイルへの境界ボックスの区分は、各区画の中の点の数に基づいてよく、又は他の考慮事項(例えば、特定の領域がタイルとしてコーディングされてよい)に基づいてもよい。スライス領域は、ビデオコーデックにおけるものと同様の分割の決定を使用して更に区分され得る。
【0034】
[0046] 図2は、G-PCCエンコーダ200の概要を提供する。図3は、G-PCCデコーダ300の概要を提供する。図示のモジュールは論理的なものであり、G-PCCコーデックのレファレンス実装、すなわち、ISO/IEC MPEG(JTC1/SC29/WG11)によって検討されたTMC13テストモデルソフトウェアにおける実装コードに、必ずしも1対1で対応するものではない。
【0035】
[0047] G-PCCエンコーダ200とG-PCCデコーダ300との両方において、点群の位置が最初にコーディングされる。属性コーディングは、復号された幾何に依存する。図2及び図3において、灰色の陰影モジュールは典型的に、カテゴリ1データに使われるオプションである。斜線網掛けのモジュールは典型的に、カテゴリ3のデータに使用されるオプションである。他の全てのモジュールは、カテゴリ1とカテゴリ3との間で共通である。
【0036】
[0048] カテゴリ3データの場合、圧縮された幾何は典型的に、ルートから個々のボクセルのリーフレベルまでの八分木として表される。カテゴリ1データの場合、圧縮された幾何は典型的に、刈り込まれた八分木(すなわち、ルートから、ボクセルよりも大きいブロックのリーフレベルまでの八分木)に、刈り込まれた八分木の各リーフ内の表面を近似するモデルを加えたものによって表される。このようにして、カテゴリ1データとカテゴリ3データとの両方が、八分木コーディングメカニズムを共有し、一方、カテゴリ1データは、追加として、表面モデルを用いて各リーフ内のボクセルを近似し得る。使用される表面モデルは、ブロックごとに1から10個の三角形を備える三角形分割であり、その結果、三角形スープが得られる。
【0037】
[0049] 八分木の各ノードにおいて、その子ノード(最大で8つのノード)のうちの1つ又は複数について、(推測されていないときに)占有がシグナリングされる。(a)現在の八分木ノードと面を共有するノード、(b)現在の八分木ノードと面、辺、又は頂点を共有するノードなどを含む、複数の近傍ノードが指定される。各近傍ノード内で、ノード及び/又はその子ノードの占有が、現在のノード又はその子の占有を予測するために使用され得る。八分木のいくつかのノードにおいてまばらに分布する点について、(例えば、G-PCCエンコーダ200又はG-PCCデコーダ300によって実装されている)コーデックはまた、点の3D位置が直接符号化される直接コーディングモードをサポートする。直接モードがシグナリングされることを示すために、フラグがシグナリングされ得る。最も低いレベルにおいて、八分木ノード/リーフノードに関連する点の数もコーディングされ得る。
【0038】
[0050] 幾何がコーディングされると、幾何点に対応する属性がコーディングされる。1つの再構成/復号された幾何点に対応する属性点が複数あるとき、再構成された点を表す属性値が導出され得る。
【0039】
[0051] G-PCCには、3つの属性コーディング方法、すなわち、領域適応階層変換(Region Adaptive Hierarchical Transform、RAHT)コーディング、補間ベースの階層最近傍予測(予測変換)、及び更新/リフティングステップ付き補間ベースの階層最近傍予測(リフティング変換)がある。RAHT及びリフティングは通常、カテゴリ1データに使用され、予測は通常、カテゴリ3データに使用される。しかしながら、いずれの方法をどのデータに使用してもよく、G-PCCにおける幾何コーデックでのように、点群をコーディングするために使用される属性コーディング方法はビットストリームにおいて指定される。
【0040】
[0052] 属性のコーディングは、詳細レベル(level-of-detail、LOD)で行われ得、各詳細レベルを用いて、点群属性のもっと細かい表現が取得され得る。各詳細レベルは、近隣のノードからの距離メトリックに基づいて、又はサンプリング距離に基づいて、指定され得る。
【0041】
[0053] G-PCCエンコーダ200において、属性のコーディング方法の出力として取得された残差が量子化される。残差は、現在の点の近傍点に基づいて、かつ以前に符号化された点の属性値に基づいて導出された予測から属性値を減算することによって、取得され得る。量子化された残差は、コンテキスト適応型算術コーディングを使用してコーディングされ得る。
【0042】
[0054] 図2の例では、G-PCCエンコーダ200は、座標変換ユニット202、色変換ユニット204、ボクセル化ユニット206、属性転送ユニット208、八分木分析ユニット210、表面近似分析ユニット212、算術符号化ユニット214、幾何再構成ユニット216、RAHTユニット218、LOD生成ユニット220、リフティングユニット222、係数量子化ユニット224、及び算術符号化ユニット226を含み得る。
【0043】
[0055] 図2の例に示すように、G-PCCエンコーダ200は、点群内の点の位置のセット及び属性のセットを取得し得る。G-PCCエンコーダ200は、点群内の点の位置のセット及び属性のセットをデータソース104から取得し得る(図1)。位置は、点群内の点の座標を含み得る。属性は、点群内の点に関連する色など、点群内の点についての情報を含み得る。G-PCCエンコーダ200は、点群内の点の位置の符号化された表現を含む幾何ビットストリーム203を生成し得る。G-PCCエンコーダ200はまた、属性のセットの符号化された表現を含む属性ビットストリーム205を生成し得る。
【0044】
[0056] 座標変換ユニット202は、座標を初期ドメインから変換ドメインに変換するように、点の座標に変換を適用し得る。本開示では、変換された座標を変換座標と呼ぶことがある。色変換ユニット204は、属性の色情報を異なるドメインに変換するために変換を適用し得る。例えば、色変換ユニット204は、色情報をRGB色空間からYCbCr色空間に変換し得る。
【0045】
[0057] 更に、図2の例では、ボクセル化ユニット206は、変換座標をボクセル化し得る。変換座標のボクセル化は、量子化と、点群のいくつかの点を除去することとを含み得る。言い換えると、点群の複数の点が単一の「ボクセル」内に包含され得、その後、いくつかの寒天において1つの点として扱われ得る。更に、八分木分析ユニット210は、ボクセル化された変換座標に基づいて、八分木を生成し得る。加えて、図2の例では、表面近似分析ユニット212は、点のセットの表面表現を決定し得るために、点を分析し得る。算術符号化ユニット214は、八分木及び/又は表面近似分析ユニット212によって決定された表面の情報を表すシンタックス要素をエントロピー符号化し得る。八分木分析ユニット210及び算術符号化ユニット214はともに、幾何コーディングユニットを形成し得る。いくつかの例では、八分木分析ユニット210は、インター予測及び/又はイントラ予測を実施し得る。G-PCCエンコーダ200は、これらのシンタックス要素を幾何ビットストリーム203内において出力し得る。幾何ビットストリーム203はまた、算術的に符号化されていないシンタックス要素を含む他のシンタックス要素を含み得る。
【0046】
[0058] 幾何再構成ユニット216は、八分木、表面近似分析ユニット212によって決定された表面を示すデータ、及び/又は他の情報に基づいて、点群内の点の変換座標を再構成し得る。幾何再構成ユニット216によって再構成された変換座標の数は、ボクセル化及び表面近似により、点群の点の元の数とは異なり得る。本開示では、結果として得られる点を再構成された点と呼ぶことがある。属性転送ユニット208は、点群の元の点の属性を、点群の再構成された点に転送し得る。
【0047】
[0059] 更に、RAHTユニット218は、RAHTコーディングを再構成された点の属性に適用し得る。いくつかの例では、RAHTの下で、2x2x2個の点位置のブロックの属性が取られ、1つの方向に沿って変換されて、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係数は、変更なしに符号化され、このような変換は、最上位のルートノードまで継続する。符号化のための木走査は、係数に使用される重みを計算するために使用される上から下への走査であり、変換順序は、下から上である。次に、係数は量子化及びコーディングされ得る。
【0048】
[0060] 代わりに又は加えて、LOD生成ユニット220及びリフティングユニット222は、LOD処理及びリフティングを、それぞれ、再構成された点の属性に適用し得る。LOD生成は、属性を異なる精緻化レベルに分割するために使用される。各精緻化レベルは、点群の属性に精緻化を提供する。第1の精緻化レベルは、粗近似を提供し、少数の点を含み、後続の精緻化レベルは、典型的には、より多くの点を含み、以下同様である。精緻化レベルは、距離ベースのメトリックを使用して構成されてもよく、又は1つ若しくは複数の他の分類基準(例えば、特定の順位からのサブサンプリング)を使用してもよい。よって、精緻化レベルにはすべての再構成された点が含められ得る。各詳細レベルは、すべての点の和集合を特定の精緻化レベルに引き上げることによって生成され、例えば、LOD1は精緻化レベルRL1に基づいて取得され、LOD2はRL1及びRL2に基づいて取得され、LODNはRL1、RL2、...RLNの和集合によって取得される。場合によっては、LOD生成の後に、LOD内の各点に関連する属性が先行点の加重平均から予測され、残差が量子化及びエントロピー コーディングされる予測スキーム(予測変換など)が続くことがある。リフティングスキームは、係数を更新するために更新演算子が使用され、係数の適応量子化が実施される、予測変換メカニズム上に構成される。
【0049】
[0061] RAHTユニット218及びリフティングユニット222は、属性に基づいて係数を生成し得る。係数量子化ユニット224は、RAHTユニット218又はリフティングユニット222によって生成された係数を量子化し得る。算術符号化ユニット226は、量子化された係数を表すシンタックス要素に算術コーディングを適用し得る。G-PCCエンコーダ200は、これらのシンタックス要素を属性ビットストリーム205において出力し得る。属性ビットストリーム205はまた、非算術的に符号化されたシンタックス要素を含む他のシンタックス要素を含み得る。
【0050】
[0062] 図3の例では、G-PCCデコーダ300は、幾何算術復号ユニット302、属性算術復号ユニット304、八分木合成ユニット306、逆量子化ユニット308、表面近似合成ユニット310、幾何再構成ユニット312、RAHTユニット314、LoD生成ユニット316、逆リフティングユニット318、逆座標変換ユニット320、及び逆色変換ユニット322を含み得る。
【0051】
[0063] G-PCCデコーダ300は、幾何ビットストリーム203及び属性ビットストリーム205を取得し得る。デコーダ300の幾何算術復号ユニット302は、幾何ビットストリーム203内におけるシンタックス要素に算術復号(例えば、コンテキスト適応型バイナリ算術コーディング(Context-Adaptive Binary Arithmetic Coding、CABAC)又は他のタイプの算術復号)を適用し得る。同様に、属性算術復号ユニット304は、属性ビットストリーム205におけるシンタックス要素に算術復号を適用し得る。
【0052】
[0064] 八分木合成ユニット306は、幾何ビットストリーム203から解析されたシンタックス要素に基づいて八分木を合成し得る。八分木合成ユニット306は、幾何算術復号ユニット302とともに、G-PCCデコーダ300の幾何復号ユニットを形成し得る。八分木のルートノードから始め、各八分木レベルにおける8つの子ノードの各々の占有は、ビットストリームにおいてシグナリングされる。シグナリングが、特定の八分木レベルにおける子ノードが占有されていることを示すとき、この子ノードの子の占有がシグナリングされる。各八分木レベルにおけるノードのシグナリングは、後続の八分木レベルに進む前に行われる。八分木の最終レベルでは、各ノードはボクセル位置に対応し、リーフノードが占有されているとき、1つ又は複数の点が、ボクセル位置において占有されるように指定され得る。いくつかのインスタンスでは、量子化に起因して八分木のいくつかの枝は最終レベルよりも前に終端することがある。このような場合、リーフノードは、子ノードを有さない占有されたノードと見なされる。いくつかの例では、八分木合成ユニット306は、インター予測及び/又はイントラ予測を実施し得る。幾何ビットストリーム203内において表面近似が使用されるインスタンスでは、表面近似合成ユニット310は、幾何ビットストリーム203から解析されたシンタックス要素に基づき、かつ八分木に基づいて、表面モデルを決定し得る。いくつかの例では、インター予測は、表面モデルを決定するために表面近似合成ユニット310によって実施されるプロセスの一部であり得る。
【0053】
[0065] 更に、幾何再構成ユニット312は、点群内の点の座標を決定するために、再構成を実施し得る。八分木のリーフノードにおける各位置について、幾何再構成ユニット312は、八分木内のリーフノードのバイナリ表現を使用することによって、ノード位置を再構成し得る。各それぞれのリーフノードにおいて、それぞれのリーフノードにおける点の数がシグナリングされ、これは、同じボクセル位置における重複点の数を示す。幾何量子化が使用されるとき、点位置は、再構成された点位置値を決定するためにスケーリングされる。
【0054】
[0066] 逆座標変換ユニット320は、点群内の点の再構成された座標(位置)を変換ドメインから初期ドメインに逆戻しするために、逆変換を再構成された座標に適用し得る。点群内の点の位置は、浮動小数点ドメイン内であってもよいが、G-PCCコーデックにおける点位置は整数ドメイン内でコーディングされる。逆変換は、位置を元のドメインに変換し戻すために使用され得る。
【0055】
[0067] 加えて、図3の例では、逆量子化ユニット308は属性値を逆量子化し得る。属性値は、属性ビットストリーム205から取得されたシンタックス要素(例えば、属性算術復号ユニット304によって復号されたシンタックス要素を含む)に基づき得る。
【0056】
[0068] 属性値がどのように符号化されているかに応じて、RAHTユニット314は、逆量子化された属性値に基づいて、点群の点に対する色値を決定するために、RAHTコーディングを実施し得る。RAHT復号は、木の上から下へ行われる。各レベルにおいて、逆量子化プロセスから導出された低周波数係数及び高周波数係数を使用して、構成値が導出される。リーフノードにおいて、導出された値は係数についての属性値に対応する。点についての重み導出プロセスは、G-PCCエンコーダ200で使用されるプロセスと同様である。代わりに、LOD生成ユニット316及び逆リフティングユニット318が、詳細のレベルベースの技法を使用して、点群の点についての色値を決定し得る。LOD生成ユニット316は各LODを復号して、点の属性を漸進的にもっと細かく表現する。予測変換を用いて、LOD生成ユニット316は、前のLOD内にある、又は同じLOD内で以前に再構成された点の加重和 から、点の予測値を導出する。LOD生成ユニット316は、属性の再構成値を取得するために、予測値を(逆量子化後に取得される)残差に加算し得る。リフティング方式が使用されるとき、LOD生成ユニット316はまた、属性値を導出するために使用される係数を更新するための更新演算子を含め得る。この場合、LOD生成ユニット316はまた、逆適応量子化を適用し得る。
【0057】
[0069] 更に、図3の例では、逆色変換ユニット322は、色値に逆色変換を適用し得る。逆色変換は、エンコーダ200の色変換ユニット204によって適用される色変換の逆であり得る。例えば、色変換ユニット204は、色情報をRGB色空間からYCbCr色空間に変換し得る。これに応じて、逆色変換ユニット322は、色情報を、YCbCr色空間からRGB色空間に変換し得る。
【0058】
[0070] 図2及び図3の様々なユニットは、エンコーダ200及びデコーダ300によって実施される動作を理解することを助けるために示されている。ユニットは、固定機能回路、プログラマブル回路、又はこれらの組み合わせとして実装され得る。固定機能回路は、特定の機能性を提供する回路を指し、実施できる動作があらかじめ決められている。プログラマブル回路は、様々なタスクを実施するようにプログラムされ得る回路を指し、実施できる動作においてフレキシブルな機能性を提供する。例えば、プログラマブル回路は、ソフトウェア又はファームウェアの命令によって定義される方式で、プログラマブル回路を動作させるソフトウェア又はファームウェアを実行し得る。固定機能回路は(例えば、パラメータを受信するか又はパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは一般に不変である。いくつかの例では、ユニットのうちの1つ又は複数は、別個の回路ブロック(固定機能又はプログラマブル)であってもよく、いくつかの例では、ユニットのうちの1つ又は複数は集積回路であってもよい。
【0059】
[0071] 角度コーディングモードは、典型的なLiDARセンサのセンサ特性を使用することによって、平面モードのコーディング効率を改善する。角度コーディングモードはオプションで、平面モードと共に使用され、典型的なLiDARセンサにおける感知レーザビームの位置及び角度の知識を利用することによって、垂直(z)平面位置シンタックス要素のコーディングを改善する。更に、角度コーディングモードは任意選択で、推測直接コーディングモード(inferred direct coding mode、IDCM)における垂直のz位置ビットのコーディングを改善するために使用され得る。
【0060】
[0072] 方位角コーディングモードは角度モードと類似し、角度モードを平面モードの(x)及び(y)平面位置シンタックス要素のコーディングに拡張したものであり、IDCMにおけるx又はy位置ビットのコーディングを改善する。「角度モード」は、以下の節では方位角モードを指す場合もある。
【0061】
[0073] インター予測は、点群データの異なるフレーム間の冗長性を利用する技法である。点群データのフレーム間のいくつかの冗長性は、点群データを生成するセンサに対するオブジェクトの並進又は回転動きの結果である。動きパラメータは、このような動きを特徴付けるために使用され得る。いくつかの例では、G-PCCに関わる動きパラメータは、グローバル動きパラメータ及びローカルノード動きベクトルの2種類がある。グローバル動きパラメータは回転行列及び並進ベクトルとして定義され、予測(参照)フレームの中のすべての点に適用される。八分木のノードのローカルノード動きベクトルは、予測(参照)フレーム内のノード内の点にのみ適用される、動きベクトルである。例示的な動き推定アルゴリズムの詳細を以下に説明する。
【0062】
[0074] 図4は、例示的な動き推定アルゴリズムを示すフローチャートである。入力予測(参照)フレーム400及び現在のフレーム402が与えられると、G-PCCエンコーダ200はまず、グローバルスケールでグローバル動きを推定し得る(404)。予測フレーム400及び現在のフレーム402の各々は、点群を表す。言い換えれば、予測フレーム400及び現在のフレーム402の各々は、別個の点群データを備える。現在のフレーム402は、G-PCCエンコーダ200が現在符号化している点群を表し得る。予測フレーム400は、G-PCCエンコーダ200が以前に再構成した点群を表し得る。予測フレーム400によって表される点群は、現在のフレーム402によって表される点群よりも前の時間に対応し得る。
【0063】
[0075] グローバル動きを推定した後、G-PCCエンコーダ200は、推定されたグローバル動きを予測フレーム400に適用し得る(406)。言い換えれば、G-PCCエンコーダ200は、推定されたグローバル動きに基づいて、予測フレーム400に対して動き補償を実施し得る。例えば、G-PCCエンコーダ200は、推定されたブロック動きに基づいて、予測フレーム400の中の点を回転又は並進させ得る。G-PCCエンコーダ200は、予測フレーム400と現在のフレーム402との比較に基づいて、グローバル動きを推定し得る。
【0064】
[0076] 予測に対してグローバル動きを適用した後、G-PCCエンコーダ200は、もっと細かいスケールで、例えば八分木のノードレベルでローカル動きを推定し得る。言い換えれば、G-PCCエンコーダ200は、ローカルノード動き推定を実施し得る(408)。例えば、G-PCCエンコーダ200は、個々のノードについて、予測フレーム400の元のバージョン又はグローバル動き補償が適用された予測フレーム400のバージョンに基づいて、ノードについて動き補償を実施すべきかどうかを決定し得る。いくつかの例では、ローカルノード動き推定を実施することの一部として、G-PCCエンコーダ200は、ノードについて動きベクトルを決定し得る。
【0065】
[0077] G-PCCエンコーダ200は、推定されたローカルノード動きを動き補償に適用し得る(410)。推定されたロケーションノード動きを適用することにより、ノード内の点の予測位置を生成し得る。言い換えれば、G-PCCエンコーダ200は、ローカルノード動き推定に基づいて、ノードに対して動き補償を実施し得る。G-PCCエンコーダ200は、ノードの点の予測位置に基づいて、ノード内の点を符号化し得る。例えば、G-PCCエンコーダ200は、ノードの点とノードの対応する予測点との間の変位を示すデータを符号化し得る。G-PCCエンコーダ200はまた、ノードの動きベクトルが存在する場合、それを符号化し得る。
【0066】
[0078] インター予測の目的で、点群は、最大予測単位(LPUs)に分割され得る。LPUは、サブ予測ユニット(prediction units、PUs)に再帰的に区分され、よって、予測木を形成し得る。図4を参照して言及される「ノード」は、LPU又はPUであり得る。
【0067】
[0079] いくつかの例では、LPUには、車両LPUと世界LPUとを含む、2つのコーディングモードがある。言い換えれば、各LPUは、車両LPU又は世界LPUのいずれかであり得る。「車両LPU」及び「世界LPU」という用語は、自律走行車両などの移動中車両上のセンサによって点群データが生成されるユースケースから生じる。一般に、車両自体を表す点群データの点は、センサが車両上の固定位置にあるので、センサの位置に対して移動しない。同様に、車両が走行している道路を表す点は、(例えば、道路は一般に平坦で滑らかであるため)フレームごとにあまり変化しない傾向がある。他方で、車両及び道路以外の世界の他のオブジェクトを表す点群データの点は、センサの位置に対して移動する。これに応じて、車両を表す点と世界内のオブジェクトを表す点とについてインター予測を異なって実施することに関連するコーディング効率が存在し得る。
【0068】
[0080] LPUが車両LPUであるか世界LPUであるかにかかわらず、LPU内のすべてのPUは、同じ参照フレームを使用して予測される。車両LPU内のPUを予測するために使用される参照フレームは、以前に再構成された点群であり、世界LPU内のPUを予測するために使用される参照フレームは、グローバル動きを使用して以前に再構成された点群の補償された点群である。これは、センサが車両上に固定位置を有し、車両を表す点群データ内の点がセンサに対して回転又は並進しないためである。逆に、センサは、世界に対して回転又は並進してもよい。従って、グローバル動き推定を適用せずに、車両を表す点を符号化し、グローバル動き推定を適用して、世界を表す点を符号化することが、より効率的であり得る。
【0069】
[0081] いくつかの例では、車両LPU又は世界LPU内のPUを予測するために使用される参照フレームは、閾値を使用して生成されたフレームであり得る。これらの閾値は、点群を道路及びオブジェクトにセグメント化するために使用され得る。点の垂直座標が2つの閾値の間にある場合、その点は道路として分類される。G-PCCエンコーダ200は、点群データの異なるエリアにおける動きの量に基づいて、点群を1つ又は複数の車両LPUと1つ又は複数の世界LPUとに区分し得る。LPUの推定された動きが閾値を上回る場合、G-PCCエンコーダ200は、LPUを世界LPUとして分類し得る。そうでない場合、G-PCCエンコーダ200は、LPUを車両LPUとして分類し得る。この例では、参照フレームを生成するために、オブジェクトの点にはグローバル動きが適用され、道路の点(例えば、車両が走行している道路を表す点)には0動きが適用される。
【0070】
[0082] 図5は、最大予測ユニット(LPU)を予測ユニット(PU)木に分割する一例を示す概念図である。言い換えれば、図5にLPUのPU木への区分プロセスが示されている。図5の例では、G-PCCエンコーダ200は、(「以前に再構成された群」として図5に示される)点群を表すフレーム500を以前に再構成している。G-PCCエンコーダ200は、グローバル動き補償をフレーム500に適用して、世界参照フレーム502を生成し得る。車両参照フレーム504は、単にフレーム500のコピーとすることができる。
【0071】
[0083] 更に、図5の例では、G-PCCエンコーダ200は、現在のフレーム506(図5では「現在の群」として示される)を符号化している。現在のフレーム506は、現在のLPU508を含む。G-PCCエンコーダ200は、現在のLPU508内の点に対応する点について、車両参照フレーム504中のコロケートLPU512を囲むウィンドウ510(例えば、アクティブウィンドウWv)を探索し得る。加えて、G-PCCエンコーダ200は、現在のLPU508内の点に対応する点について、世界参照フレーム502中のコロケートLPU516を囲むウィンドウ514(例えば、アクティブウィンドウWw)を探索し得る。コロケートLPU512及びコロケートLPU516は、現在のLPU508とコロケートされる。よって、アクティブウィンドウは、参照フレーム中のコロケート参照LPUの拡張エリアである。G-PCCエンコーダ200は、ウィンドウ510又はウィンドウ514中の点が現在のLPU508中の点により良く一致しているかどうかを決定し得る。ウィンドウ510中の点がより良く一致している場合、G-PCCエンコーダ200は、現在のLPU508を車両LPUとして分類し得る。ウィンドウ510中の点がより良く一致している場合、G-PCCエンコーダ200は、現在のLPU508を世界LPUとして分類し得る。アクティブウィンドウ中のすべての点は、歪み比較を使用してLPUモードを決定するために使用される。
【0072】
[0084] 現在のLPU508を分類した後、G-PCCエンコーダ200は、現在のLPU508をPU(すなわち、サブPU)に再帰的に分割し得る(518)。LPUのサブPUへの分割は、深度0又はLPUレベルから始まり、最大深度まで(又はPUサイズが最小許容サイズMinPUsizeに達するときまで)行われる。各深度における分割は、レート歪み最適化プロセスを使用して決定される。分割のないレート歪みコストが最初に計算される。動き探索は、現在のPUと参照フレーム中の対応するPUとの間で最小の歪みを有する最良の動きを見つけるために行われる。分割のないレート歪みコストは、動きの歪み及びシグナリングオーバーヘッドを使用して導出される。分割のないレート歪みコストが取得されると、G-PCCエンコーダ200は、PUを次の深度における8つの子ノードに分割することをテストし得る。分割のあるレート歪みコストは、8つの子ノードのコストの合計である。PUが分割されるか否かを決定するために、分割のあるコストと分割のないコストとが比較される。以下の情報が、現在のLPU508についてG-PCCデコーダ300にシグナリングされ得る。まず、LPUタイプが符号化される。LPUタイプは、LPUが車両LPUであるか世界LPUであるかを示し得る。次に、PU木の各深度における現在のLPU508のPUの分割がシグナリングされる。PUが分割されていない場合、G-PCCエンコーダ200は、関連する動き(すなわち、PUに関連する動き)をシグナリングし得る。
【0073】
[0085] いくつかの例では、インター予測は、角度モードが無効にされた平面モードコーディングを含む占有コーディングにおいて使用される。言い換えれば、インター予測は、幾何八分木内のノードが1つ又は複数の点によって占有されているか否かを符号化する過程で使用され得る。いくつかの例では、参照ノードは、グローバル動きを使用して予測フレームを補償することによって導出される参照フレーム中のコロケートノードである。参照ノードが得られると、同じサイズの8つの立方体子ノードに分割される。
【0074】
[0086] 参照ノードの各子ノードにおける点が、インター予測占有(predOccupancy)及び予測占有ストロング(predOccupancyStrong)を形成するためにカウントされる。子ノード内に少なくとも1つの点がある場合、predOccupancy内の(8ビットのうちの)対応するビットが1に等しいように設定される。そうでない場合、対応するビットは0に等しいように設定される。他方で、子ノード内の点の数が2より大きい場合、predOccupancyStrong内の対応するビットが1に等しいように設定される。そうでない場合、ビットは0に等しいように設定される。
【0075】
[0087] 次に、インター予測の質が、「occupancyIsPredictable」と呼ばれるパラメータによって評価される。ノードのoccupancyIsPredictableの値は、予測が誤った兄弟の数によって導出される。図6に示すように、親ノードの占有を親の参照ノードの占有と比較することによって、予測が誤った兄弟(例えば、numSiblingsMispredicted)の数が計算される。現在のノードのpredOccupancyが0であるか、又は予測が誤った兄弟の数が5より大きい場合、occupancyIsPredictableが0に等しいように設定される。そうでない場合、occupancyIsPredictableが1に等しいように設定される。
【0076】
[0088] 図6は、誤予測された兄弟の数を取得するための、親ノード600及び親ノード600の参照ノード602の占有を示す概念図である。図6の例では、G-PCCエンコーダ200又はG-PCCデコーダ300は、誤予測された/予測が誤った兄弟(例えば、numSiblingsMispredicted)の数を取得するために、親ノード600と参照ノード602との占有を比較し得る(604)。親ノード600内の子ノードの占有ビットと、参照ノード602内の対応するノードの占有ビットとが異なる場合、この子ノードが誤予測されたと見なされる。
【0077】
[0089] G-PCCエンコーダ200又はG-PCCデコーダ300は、predOccupancy、predOccupancyStrong、平面コピーモード適格性、及びIDCM適格性を更新するために、occupancyIsPredictableを更新し得る。occupancyIsPredictableが0に等しい場合、predOccupancy、predOccupancyStrong、及び平面コピーモード適格性は0に等しいように設定される。occupancyIsPredictableが1である場合、IDCMは現在のInterEM内のこのノードに対して無効にされる。
【0078】
[0090] ノードが平面コピーモード(PCM)を使用して符号化されている場合、G-PCCエンコーダ200は、このノードの平面情報をG-PCCデコーダ300にシグナリングしない。むしろ、G-PCCエンコーダ200及びG-PCCデコーダは、predOccupancyから生成された参照ノード602の平面情報から、PCMコード化ノードの3つの方向における平面モード及び平面位置をコピーする。
【0079】
[0091] PCMノード及び非PCMノードの例は、それぞれ図7A及び図7Bに示される。言い換えれば、図7A及び図7Bは、PCMモード及び非PCMモードの例を示す概念図である。図7Aの例では、現在のノード700は上部ブロックにのみ点を有し、参照ノード702もまた、上部ブロックにのみ点を有する。よって、現在のノード700と参照ノード702は、3つの次元における同じ平面モード及び平面位置を共有し得る。図7Bにおいて、現在のノード704は、上部ブロックにのみ点を有する。しかしながら、図7Bでは、現在のノード704に対する参照ノード706は、上部ブロック及び下部ブロック内に点を有する。よって、図7Bでは、現在のノード704と参照ノード706は、3つの次元における平面モード及び平面位置を共有しない。非PCMコード化ノードに対して、参照ノードの平面情報は、平面モード及び平面位置コーディングのコンテキスト選択においてより多くの柔軟性を提供するために使用される。
【0080】
[0092] いくつかの例では、インター予測は、占有コーディングを改善するために使用される。例えば、現在のノードの占有ビットを符号化するために、コンテキスト選択においてインター予測が使用され得る。これを以下に示す。
GeometryOctreeEncoder::encodeOccupancyNeighNZ()及びGeometryOctreeEncoder::encodeOccupancyNeighZ()は次のように機能する。
//この部分は、現在のノードの子ノードの占有ビットを符号化するためのものである。
int ctxIdxMapIdx=4idxAdj;//この部分は、隣接ノードの占有を使用して得られる。
ctxIdxMapIdx=4idxAdj+bitIsPredicted+bitPrediction//イントラ予測
+ !!mappedPred+bitPred+bitPredStrong;//インター予測
...
auto& ctxIdxMap=_ctxIdxMaps[ctxIdxMapIdx];
ctxIdx=ctxIdxMap.evolve(bit,&ctxIdxMap[i][numOccupiedAcc]);
_arithmeticEncoder->encode(bit,_ctxOccupancy[ctxIdx]);
【0081】
[0093] 上記のコードでは、idxAdjは、隣接ノードの占有を用いて決定される。bitIsPredicted及びbitPredictionは、イントラ予測を使用して導出される占有ビットである。インターフレームでは、これらのパラメータは0に等しいように設定される。!!mappedPredは、インター参照ブロックの予測占有が0であるか否かを示す。ctxIdxMapsは、コンテキストマップアドレスを含む。bitPred及びbitPredStrongは、predOccupancy及びpredOccupancyStrongにおける子ノードの対応するビットである。上記のコードにおいて、evolve関数は、ビット値をコーディングするために使用されるコンテキストインデックスを計算する。
【0082】
[0094] G-PCCの特定の実装には、区分、及びPUの動き情報のシグナリングにおける問題を含む、1つ又は複数の問題が存在し得る。例えば、区分では、LPUは、3つの方向におけるノードのサイズが同一である立方体ノードであり得る。しかしながら、点群がQT-BT(四分木、二分木)区分を使用して分割されるとき、又はノードが点群の境界に沿って位置するとき、それはノードのサイズと整列していない場合がある。PUの動き情報のシグナリングでは、PUの並進動きの値が直接シグナリングされる。現在のPUの動きは、兄弟PU又は親PUと高い相関を有し得ることに留意されたい。従って、動き予測コーディングは、動き値を直接シグナリングすることと比較して、より良い性能を有し得る。加えて、G-PCCの1つの例示的な実装では、PUが分割されていないとき、動きは常にシグナリングされる。場合によっては、参照フレーム中のコロケートPU内に、動き補償を実施するための点がない。これらの場合に動きをシグナリングすることは、冗長である。本開示は、上記の問題を解決するためのいくつかの技法を開示する。
【0083】
[0095] 本開示の技法によれば、LPUは、{lpuX,lpuY,lpuZ}として定義される、異なる方向において異なるサイズを有し得、ここで、lpuX、lpuY、lpuZは正の数である。例えば、LPUは、第1の方向(例えば、x、y、又はz方向)において第1のサイズを有し得、LPUは、第2の方向において第1のサイズとは異なる第2のサイズを有し得る。一例では、LPUサイズは、八分木幾何コーディングによって決定される群のQT-BT分割と整列し得る。
【0084】
[0096] よって、G-PCCエンコーダ200は、点群データが複数のLPUに分割され、LPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有すると決定し得る。本開示では、点群は、完全な点群又は点群の一部分を指し得る。G-PCCエンコーダ200は、LPUについての予測点を決定するために、インター予測を実施し得る。G-PCCエンコーダ200は、LPUについての予測点に基づいて、LPU内の点を符号化し得る。同様に、G-PCCデコーダ300は、点群データが複数のLPUに分割され、LPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有すると決定し得る。G-PCCデコーダ300は、LPUについての予測点を決定するために、インター予測を実施し得る。G-PCCデコーダ300は、LPUについての予測点に基づいて、LPU内の点を再構成し得る。
【0085】
[0097] クラウドは、インター予測のために、LPUに柔軟に分割され得る。例えば、点群のLPUへの分割は、以下に説明される1つ又は複数のパラメータによって制御され得る。
【0086】
[0098] 各次元すなわち、x、y、及びz)について、分割が次元に沿って行われるかどうかの指示がシグナリングされ得る。例えば、x次元についてフラグ(例えば、split_lpu_x)がシグナリングされ得る。この例では、1に等しいsplit_lpu_xは、LPUを生成するために点群がx次元に沿って分割され得ることを示す。0に等しいsplit_lpu_xは、LPUを生成するために点群がx次元に沿って分割されないことを示す。同様のフラグ(例えば、split_lpu_y及びsplit_lpu_z)が、y及びz次元についてシグナリングされ得る。
【0087】
[0099] いくつかの例では、各次元(すなわち、x、y、及びz)について、次元に沿ったLPUサイズが、あらかじめ決定されてもよく、又はシグナリングされてもよい。ある次元に沿ったLPUサイズは、ボクセル数、ボクセル数の対数、又は別の方法で指定され得る。例えば、シンタックス要素(例えば、LPU_size_x)は、x次元に沿ったLPUサイズを示すように指定され得る。同様のシンタックス要素(例えば、LPU_size_y及びLPU_size_z)が、y及びz次元についてシグナリングされ得る。この例では、シンタックス要素LPU_size_x、LPU_size_y、及びLPU_size_zは、異なる値を有し得る。
【0088】
[0100] いくつかの例では、次元に沿ったLPUサイズは、その次元に沿った分割が有効にされると指定又は示されるときのみ、シグナリングされ得る。例えば、x次元に沿った分割が有効にされ得ることをsplit_lpu_xが示すときのみ、LPU_size_xは、x次元に沿ったLPUのサイズを示すためにシグナリングされ得る。更に、いくつかの例では、各次元に沿ったLPUサイズの対数が、LPUサイズの代わりにシグナリングされ得る。例えば、x方向に沿ったLPUサイズの値がkである場合、シグナリングされる値はlog(k)である。
【0089】
[0101] いくつかの例では、各次元(すなわち、x、y、及びz)について、次元に沿ったLPUサイズの値は、(a)次元に沿って分割が有効にされるかどうか、及び(b)次元に沿ったLPUのサイズも示すために使用され得る。例えば、0に等しいLPU_size_xは、LPUを生成するために点群がx次元に沿って分割されないことを指定し得る。0より大きいLPU_size_xは、LPUを生成するために点群がx次元に沿って分割されること、及びx次元に沿ったLPUのサイズがLPU_size_xであることを指定し得る。同じ意味論が、LPU_size_y及びLPU_size_zに関して適用され得る。
【0090】
[0102] よって、このような例では、G-PCCエンコーダ200は、x、y、及びz方向のうちの少なくとも1つの方向について、点群データの分割がその方向において有効にされるかどうかと、その方向に沿ったLPUのサイズとを示すシンタックス要素を、シグナリングし得る。G-PCCデコーダ300は、x、y、及びz方向のうちの少なくとも1つの方向について、点群データの分割がその方向において有効にされるかどうかと、その方向に沿ったLPUのサイズとの両方を示すシンタックス要素を取得し得る。
【0091】
[0103] いくつかの例では、分割がある次元に沿って有効にされないとき、G-PCCエンコーダ200及びG-PCCデコーダ300は、次元に沿ったLPUサイズの値が次元に沿った点群のサイズに等しいと推測し得る。例えば、点群のサイズがx、y、z次元に沿ってそれぞれPC_size_x、PC_size_y、PC_size_zであり、split_lpu_xが0に等しいとき、G-PCCエンコーダ200及びG-PCCデコーダ300は、LPU_size_xの値がPC_size_xに等しいと推測し得る。同様の例が、split_lpu_y、PC_size_y、及びLPU_size_yに関して、並びにsplit_lpu_z、PC_size_z、及びLPU_size_zに関して、適用され得る。よって、このような例では、G-PCCデコーダ300は、x、y、又はz方向のうちの少なくとも1つの方向に沿って点群データの分割が有効にされないと決定し得、点群データの分割がその方向に沿って有効にされないという決定に基づいて、G-PCCデコーダ300は、LPUのサイズが、その方向に沿った点群データのサイズに等しいと決定し得る。
【0092】
[0104] LPUのPUへの分割は、点群をLPUに分割することに関して上で説明されている例と同様に決定され得る。例えば、各次元(すなわち、x、y、及びz)について、LPUが次元に沿って分割されるかどうかの指示がシグナリングされ得る。例えば、split_lpu_to_pu_xフラグが、x次元についてシグナリングされ得る。1に等しいsplit_lpu_to_pu_xは、分割がx次元に沿って行われ得ることを示し、0に等しいsplit_lpu_to_pu_xは、分割がx次元に沿って行われないことを示す。同様に、split_lpu_to_pu_yフラグがy次元についてシグナリングされ得る。1に等しいsplit_lpu_to_pu_yは、分割がy次元に沿って行われ得ることを示し、0に等しいsplit_lpu_to_pu_yは、分割がy次元に沿って行われないことを示す。split_lpu_to_pu_zフラグは、z次元についてシグナリングされ得る。1に等しいsplit_lpu_to_pu_zは、分割がz次元に沿って行われ得ることを示し、0に等しいsplit_lpu_to_pu_zは、分割がz次元に沿って行われないことを示す。
【0093】
[0105] いくつかの例では、各次元(すなわち、x、y、及びz)について、次元に沿った最小PUサイズは、あらかじめ決定されてもよく、又はシグナリングされてもよい。例えば、PU_size_xは、x次元に沿った最小PUサイズを示すように指定され得る。PU_size_yは、y次元に沿った最小PUサイズを示すように指定され得る。PU_size_zは、z次元に沿った最小PUサイズを示すように指定され得る。「方向」及び「次元」という用語は、本開示において互換的に使用される。
【0094】
[0106] いくつかの例では、G-PCCエンコーダ200は、ある次元に沿ったLPUからPUへの分割が有効にされると指定又は示されるとき、その次元に沿った最小PUサイズのみをシグナリングする。例えば、x次元に沿ったLPUからPUへの分割が有効にされ得ることをsplit_lpu_to_pu_xが示すときのみ、PU_size_xは、x次元に沿ったPUの最小サイズを示すためにシグナリングされ得る。同様の例がy及びz次元に関して適用され得る。いくつかの例では、各次元について、最小PUサイズは、最小PUサイズに対するLPUサイズの比として指定され得る。例えば、G-PCCエンコーダ200は、PU_size_xによって除算されたLPU_size_xに等しい値を有するシンタックス要素をシグナリングし得る。いくつかの例では、シグナリングコストを更に低減するために、G-PCCエンコーダ200は、log(LPU_size_x/PU_size_x)に等しい値を有するシンタックス要素をシグナリングし得る。このシグナリングされる値は、LPU_to_PU_size_ratio_log2シンタックス要素として定義され得る。
【0095】
[0107] いくつかの例では、各次元について、ある次元に沿った最小PUサイズの値は、(a)分割が次元に沿って有効にされるかどうか、及び(b)次元に沿ったPUの最小サイズも示すために、使用され得る。例えば、0に等しいPU_size_xは、LPUからPUへの分割がx次元に沿って有効にされないことを指定し得る。0より大きいPU_size_xは、LPUからPUへの分割がx次元に沿って有効にされ、x次元に沿ったPUの最小サイズがPU_size_xであることを指定し得る。代わりに、同じことがLPU_to_PU_size_ratio_log2に適用され得る。同様の例がy及びz次元に関して適用され得る。
【0096】
[0108] 分割がある次元に沿って有効にされないとき、G-PCCエンコーダ200及びG-PCCデコーダ300は、次元に沿った最小PUサイズの値が、次元に沿ったLPUのサイズに等しいと推測し得る。例えば、LPUのサイズが、x、y、及びz次元に沿ってそれぞれLPU_size_x、LPU_size_y、及びLPU_size_zであり、split_lpu_to_pu_xが0に等しいとき、PU_size_xの最小値はLPU_size_xに等しいと推測される。同様の例がy及びz次元に関して適用され得る。
【0097】
[0109] いくつかの例では、群は垂直方向に分割され得る。この例では、x及びy方向におけるLPUサイズは、それぞれx及びy方向における群(又は群の境界ボックス)のサイズに等しくなるように設定され得る。いくつかの例では、群は水平x方向に分割され得る。この例では、y及びz方向におけるLPUサイズは、それぞれy及びz方向における群(又は群の境界ボックス)のサイズに等しくなるように設定され得る。一例では、群は水平y方向に分割され得る。この例では、x及びz方向におけるLPUサイズは、それぞれx及びz方向における群(又は群の境界ボックス)のサイズに等しくなるように設定され得る。
【0098】
[0110] よって、このような例では、G-PCCエンコーダ200は、点群データがx方向においてLPUに分割されるかどうかを示す第1の指示をシグナリングし、点群データがy方向においてLPUに分割されるかどうかを示す第2のシグナリングされた指示をシグナリングし、及び/又は点群データがz方向においてLPUに分割されるかどうかを示す第3のシグナリングされた指示をシグナリングし得る。同様に、G-PCCデコーダ300は、第1のシグナリングされた指示に基づいて、点群データがx方向においてLPUに分割されると決定し得る。G-PCCデコーダ300は、第2のシグナリングされた指示に基づいて、点群データがy方向においてLPUに分割されると決定し得る。G-PCCデコーダ300は、第3のシグナリングされた指示に基づいて、点群データがz方向においてLPUに分割されると決定し得る。
【0099】
[0111] いくつかの例では、インター予測のための1つの方向のみにおける群の分割は、ヘッダレベル(例えば、シーケンスパラメータセット(sequence parameter set、SPS)又は幾何ブリックヘッダ(geometry brick header、GBH)レベル)においてシグナリングされ得るフラグによって制御され得る。例えば、G-PCCエンコーダ200は、点群データが複数の方向のうちの1つのみにおいてLPUに分割されることを示すシンタックス要素を、ヘッダレベルにおいてシグナリングし得る。G-PCCデコーダ300は、ヘッダレベルにおいてシグナリングされたシンタックス要素に基づいて、点群データが複数の方向のうちの1つのみにおいてLPUに分割されると決定し得る。
【0100】
[0112] いくつかの例では、PUの動きは0に等しいように設定され得る。このような例では、LPUはより低い深度に分割されず、LPUレベルでのPUの動きはシグナリングされなくてもよい。この設定は、ヘッダレベル(例えば、SPS又はgbhレベル)においてシグナリングされ得るフラグによって制御され得る。
【0101】
[0113] いくつかの例では、PUが参照点を有しないとき、PUの動きはシグナリングされなくてもよい。言い換えれば、PUとコロケートされる参照フレームのエリア中に点がない場合、PUについて動き情報(例えば、動きベクトルなど)はシグナリングされない。
【0102】
[0114] いくつかの例では、PUの動きは、予測方法を使用してシグナリングされ得る。例えば、G-PCCエンコーダ200及びG-PCCデコーダ300は、PUのベース動きを決定し得る。G-PCCエンコーダ200は、PUのベース動きと実際の動きとの間の差分をシグナリングし得る。例えば、G-PCCエンコーダ200は、ベース動きベクトルと、PUの実際の動きを示す動きベクトルとの間の差分を示す動きベクトル差分(motion vector difference、MVD)を、シグナリングし得る。G-PCCデコーダ300は、ベース動きベクトル及びMVDに基づいて、(例えば、ベース動きベクトルとMVDの対応する成分を加えることによって)、PUの実際の動きベクトルを再構成し得る。いくつかの例では、ベース動きはグローバル動きの並進部分であり得る。いくつかの例では、グローバル動きの回転行列は、PUの動き補償において適用され得る。
【0103】
[0115] いくつかの例では、PUのグループ(例えば、同じ深度にあるPU)は、同じベース動きを共有し得る。ベース動きは、ビットストリーム中でシグナリングされてもよく、又はPUグループの隣接PUを使用して導出されてもよい。よって、いくつかのこのような例では、G-PCCエンコーダ200は、PUグループ中の異なるPUについて異なるMVDをシグナリングし得る。PUグループ中の各PUについて、G-PCCデコーダ300は、PUについてのMVDと、PUグループについてのベース動きベクトルとに基づいて、PUについての実際の動きベクトルを再構成し得る。いくつかの例では、ベース動きはグローバル動きの並進部分であり得る。いくつかの例では、グローバル動きの回転行列は、PUの動き補償において適用され得る。
【0104】
[0116] 1つの例示的なG-PCCコーデックでは、PUについての参照点が最初に導出される。次に、これらの参照点のセットが、動き推定及び動き補償のために使用される。本開示は、ローカル予測の使用を制限するために、参照点の数などの参照用の情報を使用することを提案する。例えば、一例では、LPUは、参照点の数(又はアクティブウィンドウ中の点の数)が、ヘッダ情報、例えば、幾何スライスヘッダ、幾何パラメータセット、gbh、又はシーケンスパラメータセット(sps)レベル中でシグナリングされ得る、あらかじめ定義された閾値よりも小さい場合、ローカル予測を使用して予測されなくてもよい。この例では、この条件が満たされると、LPUは、サブPUに更に分割されなくてもよく、LPUは、0ローカル動きをもつ車両LPUと見なされ得る。LPUモード並びに分割フラグ及び動きは、この例ではシグナリングされなくてもよい。
【0105】
[0117] いくつかの例では、より高い深度におけるPUへのPUの分割は、PUの参照点の数によって制限され得る。例えば、参照点の数があらかじめ定義された閾値よりも小さい場合、PUの分割は許可されないことがある。PU分割制限のためのあらかじめ定義された閾値は、PUサイズ又はPU深度に依存し得る。
【0106】
[0118] 図8は、本開示の技法による、G-PCCエンコーダ200の例示的な動作を示すフローチャートである。図8の例では、G-PCCエンコーダ200の幾何符号化ユニット(例えば、八分木分析ユニット210及び/又は算術符号化ユニット214)は、点群データが複数のLPUに分割されると決定し得る(800)。本開示の1つ又は複数の技法によれば、LPUのうちの少なくとも2つは、異なる方向に沿って異なるサイズを有する。例えば、LPUは、第1の方向(例えば、x、y、又はz方向)において第1のサイズを有し得、LPUは、第2の方向において第1のサイズとは異なる第2のサイズを有し得る。いくつかの例では、LPUのサイズは、八分木幾何コーディングによって決定される点群データの四分木-二分木分割と整列する。G-PCCエンコーダ200は、点群データを複数のLPUに分割する異なる可能な方法を分析し得る。G-PCCエンコーダ200は、レート歪みメトリックに基づいて点群を分割する方法を選択し得る。
【0107】
[0119] G-PCCエンコーダ200の幾何符号化ユニットは、本開示の他の箇所で提供されている例のいずれかに従って、点群データが複数のLPUに分割されることをシグナリングし得る。例えば、x、y、及びz方向のうちの少なくとも1つの方向について、G-PCCエンコーダ200は、点群データの分割がその方向において有効にされるかどうかと、その方向に沿ったLPUのサイズとを示すシンタックス要素をシグナリングし得る。
【0108】
[0120] 加えて、図8の例では、G-PCCエンコーダ200の幾何符号化ユニットは、LPUについての予測点を決定するためにインター予測を実施し得る(802)。例えば、G-PCCエンコーダ200は、例えば、図4に関して説明したように、インター予測を実施し得る。例えば、LPUは、第1のLPU(例えば、車両LPU)と第2のLPU(例えば、世界LPU)とを含み得、G-PCCエンコーダ200は、以前に再構成された点群にグローバル動き補償を適用することなく、以前に再構成された点群に基づいて、第1のLPU内の予測点を決定し得る。G-PCCエンコーダ200は、以前に再構成された点群にグローバル動き補償を適用することで、以前に再構成された点群に基づいて、第2のLPU内の予測点を決定し得る。更に、いくつかの例では、G-PCCエンコーダ200は、ロケーション動き推定及びローカル動き補償を適用し得る。例えば、G-PCCエンコーダ200は、複数のLPUのうちの1つのLPUの動きを決定し、LPU内の点を予測するためにこのLPUの動きを使用し得る。複数のLPUのうちの1つ又は複数がPUに更に分割される例では、G-PCCエンコーダ200は、LPUのPUについての予測点を決定するためにインター予測を実施し得る。
【0109】
[0121] G-PCCエンコーダ200の幾何符号化ユニットは、LPUについての予測点に基づいてLPU内の点を符号化し得る(804)。例えば、G-PCCエンコーダ200は、LPU内の点についての符号化された残差値をシグナリングし得る。点についての残差値は、点の実際の位置と対応する予測点の位置との間の差を示し得る。
【0110】
[0122] 図9は、本開示技法による、G-PCCデコーダ300の例示的な動作を示すフローチャートである。図9の例では、G-PCCデコーダ300の幾何復号ユニット(例えば、幾何算術復号ユニット302及び八分木合成ユニット306)は、点群データが複数のLPUに分割されると決定し得る(900)。本開示の1つ又は複数の技法によれば、複数のLPUのうちの少なくとも2つは、異なる方向に沿って異なるサイズを有する。G-PCCデコーダ300は、本開示の他の箇所で提供されている例のいずれかに従って、点群データが複数のLPUに分割されると決定し得る。例えば、LPUは、第1の方向(例えば、x、y、又はz方向)において第1のサイズを有し得、LPUは、第2の方向において第1のサイズとは異なる第2のサイズを有し得る。いくつかの例では、LPUのサイズは、八分木幾何コーディングによって決定される点群データの四分木-二分木分割と整列する。いくつかの例では、点群データがLPUに分割されると決定することの一部として、G-PCCデコーダ300は、x、y、及びz方向のうちの少なくとも1つの方向について、点群データの分割がその方向において有効にされるかどうかと、その方向に沿ったLPUのサイズとの両方を示すシンタックス要素を取得し得ることを備える。
【0111】
[0123] 更に、図9の例では、G-PCCデコーダ300の幾何復号ユニットは、LPUについての予測点を決定するためにインター予測を実施し得る(902)。例えば、G-PCCデコーダ300は、図4及び図5に関して上で説明したように、インター予測を実施し得る。例えば、LPUは、車両LPUと世界LPUとを含み得、G-PCCエンコーダ200は、以前に再構成された点群にグローバル動き補償を適用することなく、以前に再構成された点群に基づいて、車両LPU内の予測点を決定し得る。G-PCCエンコーダ200は、以前に再構成された点群にグローバル動き補償を適用することで、以前に再構成された点群に基づいて、世界LPU内の予測点を決定し得る。更に、いくつかの例では、G-PCCエンコーダ200は、ロケーション動き推定及びローカル動き補償を適用し得る。例えば、G-PCCエンコーダ200は、複数のLPUのうちの1つのLPUの動きを決定し、LPU内の点を予測するためにこのLPUの動きを使用し得る。
【0112】
[0124] G-PCCデコーダ300は、LPUについての予測点に基づいて、LPU内の点を再構成し得る(904)。例えば、G-PCCデコーダ300は、LPU内の点についての符号化された残差値を取得し得る。G-PCCデコーダ300は、点についての符号化された残差値と、LPUについての予測点とを使用して、LPU内の点を再構成し得る。
【0113】
[0125] 図10は、本開示の1つ又は複数の技法で使用することが可能な、例示的な距離測定システム1000を示す概念図である。図10の例では、距離測定システム1000は、照明器1002とセンサ1004とを含む。照明器1002は光1006を放出し得る。いくつかの例では、照明器1002は、1つ又は複数のレーザビームとして、光1006を放出し得る。光1006は、赤外波長又は可視光波長などの、1つ又は複数の波長であり得る。他の例では、光1006は、非コヒーレントレーザ光である。光1006がオブジェクト1008などのオブジェクトに当たると、光1006は戻り光1010を形成する。戻り光1010は、後方散乱光及び/又は反射光を含み得る。戻り光1010は、オブジェクト1008の画像1012をセンサ1004上に形成させるように戻り光1010を導くレンズ1011を通過し得る。センサ1004は、画像1012に基づいて信号1014を生成する。画像1012は、(例えば、図10の画像1012の中のドットで示すような)点のセットを備え得る。
【0114】
[0126] いくつかの例では、照明器1002及びセンサ1004は、照明器1002及びセンサ1004が環境の360度ビューをキャプチャするように、回転構造に搭載され得る。他の例では、距離測定システム1000は、照明器1002及びセンサ1004が、特定の範囲内(例えば、最大360度)でオブジェクトの距離を検出することを可能にする、1つ又は複数の光学構成要素(例えば、ミラー、コリメータ、回折格子など)を含み得る。図10の例は単一の照明器1002及びセンサ1004のみを示すが、距離測定システム1000は、照明器及びセンサの複数のセットを含んでもよい。
【0115】
[0127] いくつかの例では、照明器1002は構造化光パターンを生成する。このような例では、距離測定システム1000は、構造化光パターンのそれぞれの画像がその上で形成される複数のセンサ1004を含み得る。距離測定システム1000は、構造化光パターンの画像間の視差を使用して、構造化光パターンが後方散乱するオブジェクト1008までの距離を決定し得る。構造化光ベースの距離測定システムは、オブジェクト1008がセンサ1004に比較的近い(例えば、0.2メートルから2メートル)とき、高レベルの精度(例えば、サブミリメートル範囲の精度)を有し得る。この高レベルの精度は、モバイルデバイス(例えば、モバイルフォン、タブレットコンピュータなど)をロック解除するなどの顔認識アプリケーションにおいて、及びセキュリティアプリケーションに有用であり得る。
【0116】
[0128] いくつかの例では、距離測定システム1000は、飛行時間(time of flight、ToF)ベースのシステムである。距離測定システム1000がToFベースのシステムであるいくつかの例では、照明器1002は、光のパルスを生成する。言い換えれば、照明器1002は放出された光1006の振幅を変調し得る。このような例では、センサ1004は、照明器1002によって生成される光1006のパルスから戻り光1010を検出する。距離測定システム1000は、次に、光1006が放出されたときと検出されたときとの間の遅延、及び空気中の既知の光速に基づいて、光1006が後方散乱するオブジェクト1008までの距離を決定し得る。いくつかの例では、放出される光1006の振幅を変調するのではなく(又は、それに加えて)、照明器1002は、放出される光1006の位相を変調し得る。このような例では、センサ1004は、オブジェクト1008からの戻り光1010の位相を検出し、光の速度を使用して、及び照明器1002が特定の位相で光1006を生成したときと、センサ1004がその特定の位相で戻り光1010を検出したときとの間の時間差に基づいて、オブジェクト1008上の点までの距離を決定し得る。
【0117】
[0129] 他の例では、点群データは、照明器1002を使用することなく生成され得る。例えば、いくつかの例では、距離測定システム1000のセンサ1004は、2つ以上の光学カメラを含み得る。このような例では、距離測定システム1000は、光学カメラを使用して、オブジェクト1008を含む環境の立体画像をキャプチャしてもよい。距離測定システム1000は、立体画像内のロケーション間の視差を計算することが可能な点群生成器1020を含み得る。距離測定システム1000は次に、この視差を使用して、立体画像において示されるロケーションまでの距離を決定し得る。これらの距離から、点群生成器1020は、点群データを生成し得る。
【0118】
[0130] センサ1004はまた、色及び反射率情報などの、オブジェクト1008の他の属性を検出し得る。図10の例では、点群生成器1020は、センサ1004によって生成された信号1014に基づいて、点群データを生成し得る。距離測定システム1000及び/又は点群生成器1020は、データソース104(図1)の一部を形成し得る。それゆえに、距離測定システム1000によって生成される点群データは、本開示の技法のいずれかに従って符号化及び/又は復号され得る。
【0119】
[0131] 図11は、本開示の1つ又は複数の技法が使用され得る、例示的な車両ベースのシナリオを示す概念図である。図11の例では、車両1100が、距離測定システム1102を含む。距離測定システム1102は、図10に関して論じられた方式で実装され得る。図11の例に示されていないが、車両1100はまた、データソース104(図1)などのデータソースと、G-PCCエンコーダ200(図1)などのG-PCCエンコーダとを含み得る。図11の例では、距離測定システム1102は、道路内の歩行者1106又は他のオブジェクトに反射するレーザビーム1104を放出する。車両1100のデータソースは、距離測定システム1102によって生成される信号に基づいて、点群データを生成し得る。車両1100のG-PCCエンコーダは、幾何ビットストリーム203(図2)及び属性ビットストリーム205(図2)などのビットストリーム1108を生成するために、点群データを符号化し得る。ビットストリーム1108は、G-PCCエンコーダによって取得される符号化されていない点群データよりもはるかに少ないビットを含み得る。
【0120】
[0132] 車両1100の出力インターフェース(例えば、出力インターフェース108(図1))は、ビットストリーム1108を1つ又は複数の他のデバイスに送信し得る。ビットストリーム1108は、G-PCCエンコーダによって取得される符号化されていない点群データよりもはるかに少ないビットを含み得る。よって、車両1100は、ビットストリーム1108を、符号化されていない点群データよりも迅速に、他のデバイスに送信することが可能であり得る。加えて、ビットストリーム1108は、より少ないデータ記憶容量を必要とし得る。本開示の他の箇所で説明されるように、本開示の技法は、符号化されたデータのサイズを更に低減し得る。
【0121】
[0133] 図11の例では、車両1100は、ビットストリーム1108を別の車両1110に送信し得る。車両1110は、G-PCCデコーダ300(図1)などのG-PCCデコーダを含み得る。車両1110のG-PCCデコーダは、点群データを再構成するために、ビットストリーム1108を復号し得る。点群データを再構成することは、点群データの点の座標を決定すること、及び/又は点群データの点についての属性値を決定することを含み得る。車両1110は、様々な目的で、再構成された点群データを使用し得る。例えば、車両1110は、歩行者1106が車両1100の前方の道路上におり、従って、例えば歩行者1106が道路にいることを車両1110のドライバが認識する前でも徐行を開始することを、再構成された点群データに基づいて決定し得る。よって、いくつかの例では、車両1110は、再構成された点群データに基づいて、自律ナビゲーション動作を実施し得る。
【0122】
[0134] 加えて又は代わりに、車両1100は、ビットストリーム1108をサーバシステム1112に送信し得る。サーバシステム1112は、様々な目的でビットストリーム1108を使用し得る。例えば、サーバシステム1112は、点群データの後続の再構成のために、ビットストリーム1108を記憶し得る。この例では、サーバシステム1112は、自律運転システムを訓練するために他のデータ(例えば、車両1100によって生成された車両テレメトリデータ)とともに点群データを使用し得る。他の例では、サーバシステム1112は、フォレンジック事故調査(例えば、車両1100が歩行者1106と衝突した場合)のための後続の再構成のために、ビットストリーム1108を記憶し得る。
【0123】
[0135] 本開示の技法は、コーディング効率を高め得、このことは、ビットストリーム1108のサイズを減少させ得、又は、ビットストリーム1108のサイズを増加させることなく、より詳細なデータがビットストリーム1108中で送られることを可能にし得る。
【0124】
[0136] 図12は、本開示の1つ又は複数の技法が使用され得る、例示的なエクステンデッドリアリティシステムを示す概念図である。エクステンデッドリアリティ(Extended reality、XR)は、拡張現実(AR)、複合現実(MR)、及び仮想現実(virtual reality、VR)を含む一連の技術をカバーするために使用される用語である。図12の例では、ユーザ1200は、第1のロケーション1202に位置している。ユーザ1200はXRヘッドセット1204を装着している。XRヘッドセット1204の代わりに、ユーザ1200はモバイルデバイス(例えば、モバイルフォン、タブレットコンピュータなど)を使用してもよい。XRヘッドセット1204は、ロケーション1202におけるオブジェクト1206上の点の位置を検出する、距離測定システムなどの深度検出センサを含む。XRヘッドセット1204のデータソースは、ロケーション1202におけるオブジェクト1206を表す点群データを生成するために、深度検出センサによって生成される信号を使用し得る。XRヘッドセット1204は、ビットストリーム1208を生成するために点群データを符号化するように構成されたG-PCCエンコーダ(例えば、図1のG-PCCエンコーダ200)を含み得る。
【0125】
[0137] XRヘッドセット1204は、第2のロケーション1214にいるユーザ1212が装着しているXRヘッドセット1210に(例えば、インターネットなどのネットワークを介して)ビットストリーム1208を送信し得る。XRヘッドセット1210は、点群データを再構成するためにビットストリーム1208を復号し得る。XRヘッドセット1210は、ロケーション1202におけるオブジェクト1206を表すXR視覚化(例えば、AR、MR、VR視覚化)を生成するために、点群データを使用し得る。よって、XRヘッドセット1210がVR可視化を生成する場合など、いくつかの例では、ユーザ1212は、ロケーション1202の3D没入型体験を有し得る。いくつかの例では、XRヘッドセット1210は、再構成された点群データに基づいて、仮想オブジェクトの位置を決定し得る。例えば、XRヘッドセット1210は、再構成された点群データに基づいて、環境(例えば、ロケーション1202)が平坦面を含むと決定し、次に、仮想オブジェクト(例えば、アニメキャラクタ)が平坦面上に配置されることを決定し得る。XRヘッドセット1210は、仮想オブジェクトが決定された位置にあるXR視覚化を生成し得る。例えば、XRヘッドセット1210は、平坦面に座っているアニメキャラクタを表示し得る。本開示の技法は、コーディング効率を高め得、このことは、ビットストリーム1208のサイズを減少させ、又は、ビットストリーム1208のサイズを増加させることなく、より詳細なデータがビットストリーム1208中で送られることを可能にし得る。
【0126】
[0138] 図13は、本開示の1つ又は複数の技法が使用され得る、例示的なモバイルデバイスシステムを示す概念図である。図13の例では、モバイルフォン又はタブレットコンピュータなどのモバイルデバイス1300は、モバイルデバイス1300の環境内のオブジェクト1302上の点の位置を検出する、LIDARシステムなどの距離測定システムを含む。モバイルデバイス1300のデータソースは、オブジェクト1302を表す点群データを生成するために、深度検出センサによって生成される信号を使用し得る。モバイルデバイス1300は、ビットストリーム1304を生成するために点群データを符号化するように構成されたG-PCCエンコーダ(例えば、図1のG-PCCエンコーダ200)を含み得る。図13の例では、モバイルデバイス1300は、サーバシステム又は他のモバイルデバイスなどのリモートデバイス1306に、ビットストリームを送信し得る。リモートデバイス1306は、点群データを再構成するために、ビットストリーム1304を復号し得る。リモートデバイス1306は、様々な目的で点群データを使用し得る。例えば、リモートデバイス1306は、モバイルデバイス1300の環境のマップを生成するために点群データを使用し得る。例えば、リモートデバイス1306は、再構成された点群データに基づいて、建物の内部のマップを生成し得る。別の例では、リモートデバイス1306は、点群データに基づいて、像(例えば、コンピュータグラフィックス)を生成し得る。例えば、リモートデバイス1306は、点群データの点を多角形の頂点として使用し、点の色属性を多角形に陰影を付けるための基礎として使用し得る。いくつかの例では、リモートデバイス1306は、顔認識又は他のセキュリティアプリケーションのために、再構成された点群データを使用し得る。本開示の技法は、コーディング効率を高め得、これにより、ビットストリーム1304のサイズを減少させ、又は、ビットストリーム1304のサイズを増加させることなく、より詳細なデータがビットストリーム1304中で送られることを可能にし得る。
【0127】
[0139] 本開示の様々な態様における実施例は、個々に使用されてもよく、任意の組み合わせで使用されてもよい。
【0128】
[0140] 以下は、本開示の1つ又は複数の技法による実施例の非限定的なリストである。
【0129】
[0141] 実施例1A. 点群データを複合する方法であって、点群データが、複数の最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定することと、複数のLPUのうちの1つのLPUの予測単位(PU)の動きベクトルを決定することと、PU内の点を予測するために、PUの動きベクトルを使用することと、PU内の予測点に基づいて、PU内の点を再構成することと、を含む、方法。
【0130】
[0142] 実施例2A. 点群データを符号化する方法であって、点群データを、複数の最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割することと、複数のLPUのうちの1つのLPUの予測単位(PU)の動きベクトルを決定することと、PU内の点を予測するために、PUの動きベクトルを使用することと、PU内の予測点に基づいて、PU内の点を符号化することと、を含む、方法。
【0131】
[0143] 実施例3A. 点群データを複合する方法であって、複数の最大予測単位(LPUs)への点群データの分割を決定することと、複数のLPUのうちの1つのLPUの予測単位(PU)の動きを決定することと、PU内の点を予測するために、PUの動きを使用することと、PU内の予測点に基づいて、PU内の点を再構成することと、を含む、方法。
【0132】
[0144] 実施例4A. 点群データの分割を決定することが、第1のシグナリングされる指示に基づいて、点群データがx次元においてLPUに分割されるかどうかを決定すること、第2のシグナリングされる指示に基づいて、点群データがy次元においてLPUに分割されるかどうかを決定すること、又は、第3のシグナリングされる指示に基づいて、点群データがz次元においてLPUに分割されるかどうかを決定すること、のうちの1つ又は複数を含む、実施例3Aに記載の方法。
【0133】
[0145] 実施例5A. 点群データの分割を決定することが、複数の次元のうちの各次元について、次元に沿ったLPUのサイズを決定することを含む、実施例3A又は4Aのいずれか1つに記載の方法。
【0134】
[0146] 実施例6A. 方法が、複数の次元のうちの各次元について、次元についての最小PUサイズを決定することを更に含み、点群データの分割を決定することが、次元についての最小PUサイズに部分的に基づいて点群データの分割を決定することを含む、実施例3Aから5Aのいずれか1つに記載の方法。
【0135】
[0147] 実施例7A. 点群データの分割を決定することが、複数の次元のうちの各次元について、次元についての最小PUサイズに基づいて、分割が次元に沿って有効にされるかどうかを決定することを含む、実施例6Aに記載の方法。
【0136】
[0148] 実施例8A. 点群データの分割を決定することが、複数の次元のうちの少なくとも1つの次元について、分割が次元について有効にされないことに基づいて、次元に沿った最小PUサイズが、次元に沿ったLPUのサイズに等しくなるように推測することを含む、実施例7Aに記載の方法。
【0137】
[0149] 実施例9A. PUの動きを決定することが、PUの動きが0に等しいように設定されると決定することを含む、実施例3Aから8Aのいずれか1つに記載の方法。
【0138】
[0150] 実施例10A. PUが参照点を有しないとき、PUの動きがシグナリングされない、実施例3Aから9Aのいずれか1つに記載の方法。
【0139】
[0151] 実施例11A. PUのグループがPUを含み、PUのグループが同じベース動きを共有する、実施例3Aから10Aのいずれか1つに記載の方法。
【0140】
[0152] 実施例12A. ベース動きが、グローバル動きの並進部分である、実施例11Aに記載の方法。
【0141】
[0153] 実施例13A. PUの動きを決定することが、PUの動き補償においてグローバル動きの回転行列を適用することを含む、実施例3Aから12Aのいずれか1つに記載の方法。
【0142】
[0154] 実施例14A. 参照点の数が予め定義された閾値よりも小さいことに基づいて、ローカル予測を使用してLPUを予測することを控えることを更に含む、実施例3Aから13Aのいずれか1つに記載の方法。
【0143】
[0155] 実施例15A. 点群データの分割を決定することが、所与のPUを、所与のPUの参照点の数に基づく制限に従って、より高い深度のPUに分割することを含む、実施例3Aから13Aのいずれか1つに記載の方法。
【0144】
[0156] 実施例16A. 点群データを符号化する方法であって、点群データを複数の最大予測単位(LPUs)に分割することと、複数のLPUのうちの1つのLPUの予測ユニット(PU)の動きを決定することと、PU内の点を予測するために、PUの動きを使用することと、PU内の予測点に基づいて、PU内の点を符号化することと、を含む、方法。
【0145】
[0157] 実施例17A. 点群データがx次元においてLPUに分割されるかどうかを示す第1の指示をシグナリングすること、点群データがy次元においてLPUに分割されるかどうかを示す第2の指示をシグナリングすること、又は、点群データがz次元においてLPUに分割されるかどうかを示す第3の指示をシグナリングすること、のうちの1つ又は複数を更に含む、実施例16Aに記載の方法。
【0146】
[0158] 実施例18A. 点群データを分割することが、複数の次元のうちの各次元について、次元に沿ったLPUのサイズを決定することを含む、実施例16A又は17Aのいずれか1つに記載の方法。
【0147】
[0159] 実施例19A. 方法が、複数の次元のうちの各次元について、次元についての最小PUサイズを決定することを更に含み、点群データを分割することが、次元についての最小PUサイズに部分的に基づいて点群データを分割することを含む、実施例16Aから18Aのいずれか1つに記載の方法。
【0148】
[0160] 実施例20A. 点群データの分割を決定することが、複数の次元のうちの各次元について、次元についての最小PUサイズに基づいて、分割が次元に沿って有効にされるかどうかを決定することを含む、実施例19Aに記載の方法。
【0149】
[0161] 実施例21A. 点群データを分割することが、複数の次元のうちの少なくとも1つの次元について、分割が次元に対して有効にされないことに基づいて、次元に沿った最小PUサイズが次元に沿ったLPUのサイズに等しくなるように推測することを含む、実施例20Aに記載の方法。
【0150】
[0162] 実施例22A. PUの動きを決定することが、PUの動きが0に等しいように設定されると決定することを含む、実施例16Aから21Aのいずれか1つに記載の方法。
【0151】
[0163] 実施例23A. PUが参照点を有さないことに基づいて、PUの動きをシグナリングすることを控えることを更に含む、実施例16Aから22Aのいずれか1つに記載の方法。
【0152】
[0164] 実施例24A. PUのグループがPUを含み、PUのグループが同じベース動きを共有する、実施例16Aから23Aのいずれか1つに記載の方法。
【0153】
[0165] 実施例25A. ベース動きが、グローバル動きの並進部分である、実施例24Aに記載の方法。
【0154】
[0166] 実施例26A. PUの動きを決定することが、PUの動き補償においてグローバル動きの回転行列を適用することを含む、実施例16Aから25Aのいずれか1つに記載の方法。
【0155】
[0167] 実施例27A. 参照点の数が予め定義された閾値よりも小さいことに基づいて、ローカル予測を使用してLPUを予測することを控えることを更に含む、実施例16Aから26Aのいずれか1つに記載の方法。
【0156】
[0168] 実施例28A. 点群データを分割することが、所与のPUを、所与のPUの参照点の数に基づく制限に従って、より高い深度のPUに分割することを含む、実施例16Aから27Aのいずれか1つに記載の方法。
【0157】
[0169] 実施例29A. 点群を処理するためのデバイスであって、実施例1Aから28Aのいずれか1つに記載の方法を実施するための1つ又は複数の手段を備える、デバイス。
【0158】
[0170] 実施例30A. 1つ又は複数の手段が、回路構成に実装される1つ又は複数のプロセッサを備える、実施例29Aに記載のデバイス。
【0159】
[0171] 実施例31A. 点群データを表すデータを記憶するためのメモリを更に備える、実施例29A又は30Aのいずれか1つに記載のデバイス。
【0160】
[0172] 実施例32A. デバイスがデコーダを備える、実施例29Aから31Aのいずれか1つに記載のデバイス。
【0161】
[0173] 実施例33A. デバイスがエンコーダを備える、実施例29Aから32Aのいずれか1つに記載のデバイス。
【0162】
[0174] 実施例34A. 点群データを生成するためのデバイスを更に備える、実施例29Aから33Aのいずれか1つに記載のデバイス。
【0163】
[0175] 実施例35A. 点群データに基づいて像を表示するためのディスプレイを更に備える、実施例29Aから34Aのいずれか1つに記載のデバイス。
【0164】
[0176] 実施例36A. 実行されると、1つ又は複数のプロセッサに、実施例1Aから28Aのいずれか1つに記載の方法を実施させる命令を記憶している、コンピュータ可読記憶媒体。
【0165】
[0177] 実施例1B:点群データを複合する方法は、点群データが、複数の最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定することと、LPUについての予測点を決定するためにインター予測を実施することと、LPUについての予測点に基づいて、LPU内の点を再構成することと、を含む。
【0166】
[0178] 実施例2B:LPUのサイズが、八分木幾何コーディングによって決定される点群データの四分木-二分木分割と整列する、実施例1Bに記載の方法。
【0167】
[0179] 実施例3B:LPUが、第1のLPUと第2のLPUとを含み、LPU内の予測点を決定するためにインター予測を実施することが、以前に再構成された点群にグローバル動き補償を適用することなく、以前に再構成された点群に基づいて第1のLPU内の予測点を決定することと、以前に再構成された点群にグローバル動き補償を適用して、以前に再構成された点群に基づいて第2のLPU内の予測点を決定することと、を含む、実施例1B及び2Bのいずれか1つに記載の方法。
【0168】
[0180] 実施例4B:LPU内の予測点を決定するためにインター予測を実施することが、複数のLPUのうちの1つのLPUの動きを決定することと、LPU内の点を予測するためにLPUの動きを使用することと、を含む、実施例1Bから3Bのいずれか1つに記載の方法。
【0169】
[0181] 実施例5B:点群データが複数のLPUに分割されると決定することが、第1のシグナリングされる指示に基づいて、点群データがx方向においてLPUに分割されると決定すること、第2のシグナリングされる指示に基づいて、点群データがy方向においてLPUに分割されると決定すること、又は、第3のシグナリングされる指示に基づいて、点群データがz方向においてLPUに分割されると決定することを含む、実施例1Bから4Bのいずれか1つに記載の方法。
【0170】
[0182] 実施例6B:点群データがLPUに分割されると決定することが、x、y、及びz方向のうちの少なくとも1つの方向について、点群データの分割がその方向において有効にされるかどうかと、その方向に沿ったLPUのサイズとを示すシンタックス要素を取得することを含む、実施例1Bから4Bのいずれか1つに記載の方法。
【0171】
[0183] 実施例7B:点群データがLPUに分割されると決定することが、点群データの分割がx、y、又はz方向のうちの少なくとも1つの方向に沿って有効にされないことを決定することと、点群データの分割がその方向に沿って有効にされないという決定に基づいて、LPUのサイズがその方向に沿った点群データのサイズに等しいと決定することと、を含む、実施例1Bから4Bのいずれか1つに記載の方法。
【0172】
[0184] 実施例8B:方向がx、y、及びz方向を含み、点群データが垂直方向に分割され、x及びy方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、点群データが水平x方向に分割され、y及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、又は点群データが水平y方向に分割され、x及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、のうちの1つを含む、実施例1Bから7Bのいずれか1つに記載の方法。
【0173】
[0185] 実施例9B:点群データが複数のLPUに分割されると決定することが、ヘッダレベルにおいてシグナリングされるシンタックス要素に基づいて、点群データが複数の方向のうちの1つのみにおいてLPUに分割されると決定することを含む、実施例1Bから8Bのいずれか1つに記載の方法。
【0174】
[0186] 実施例10B:点群データを符号化する方法は、点群データが、最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定することと、LPUについての予測点を決定するためにインター予測を実施することと、LPUについての予測点に基づいてLPU内の点を符号化することと、を含む。
【0175】
[0187] 実施例11B:LPUのサイズが、八分木幾何コーディングによって決定される点群データの四分木-二分木分割と整列する、実施例10Bに記載の方法。
【0176】
[0188] 実施例12B:LPUが、第1のLPUと第2のLPUとを含み、LPU内の予測点を決定するためにインター予測を実施することが、以前に再構成された点群にグローバル動き補償を適用することなく、以前に再構成された点群に基づいて第1のLPU内の予測点を決定することと、以前に再構成された点群にグローバル動き補償を適用して、以前に再構成された点群に基づいて第2のLPU内の予測点を決定することと、を含む、実施例10B及び11Bのいずれか1つに記載の方法。
【0177】
[0189] 実施例13B:LPU内の予測点を決定するためにインター予測を実施することが、複数のLPUのうちの1つのLPUの動きを決定することと、LPU内の点を予測するためにLPUの動きを使用することと、を含む、実施例10Bから12Bのいずれか1つに記載の方法。
【0178】
[0190] 実施例14B:実施例10Bから13Bのいずれか1つの方法は、点群データがx方向においてLPUに分割されるかどうかを示す第1の指示をシグナリングすること、点群データがy方向においてLPUに分割されるかどうかを示す第2のシグナリングされる指示をシグナリングすること、又は点群データがz方向においてLPUに分割されるかどうかを示す第3のシグナリングされる指示をシグナリングすることを更に含む。
【0179】
[0191] 実施例15B:x、y、及びz方向のうちの少なくとも1つの方向について、点群データの分割がその方向において有効にされるかどうかと、その方向に沿ったLPUのサイズとを示すシンタックス要素をシグナリングすることを更に含む、実施例10Bから13Bのいずれか1つに記載の方法。
【0180】
[0192] 実施例16B:方向がx、y、及びz方向を含み、点群データが垂直方向に分割され、x及びy方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、点群データが水平X方向に分割され、y及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、又は点群データが水平Y方向に分割され、x及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいことのうちの1つを含む、実施例10Bから15Bのいずれか1つに記載の方法。
【0181】
[0193] 実施例17B:点群データが複数の方向のうちの1つのみにおいてLPUに分割されることを示すシンタックス要素をヘッダレベルにおいてシグナリングすることを更に含む、実施例10Bから16Bのいずれか1つに記載の方法。
【0182】
[0194] 実施例18B:点群データを復号するためのデバイスは、点群データを記憶するように構成されたメモリと、回路構成に実装される1つ又は複数のプロセッサであって、点群データが、複数の最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定し、LPUについての予測点を決定するためにインター予測を実施し、LPUについての予測点に基づいて、LPU内の点を再構成するように構成された、1つ又は複数のプロセッサと、を備える。
【0183】
[0195] 実施例19B:1つ又は複数のプロセッサが、点群データが複数のLPUに分割されると決定することの一部として、第1のシグナリングされる指示に基づいて、点群データがx方向においてLPUに分割されると決定し、第2のシグナリングされる指示に基づいて、点群データがy方向においてLPUに分割されると決定し、又は、第3のシグナリングされる指示に基づいて、点群データがz方向においてLPUに分割されると決定するように構成される、実施例18Bに記載のデバイス。
【0184】
[0196] 実施例20B:1つ又は複数のプロセッサが、点群データがLPUに分割されると決定することの一部として、x、y、及びz方向のうちの各方向について、点群データの分割がその方向において有効にされるかどうかと、その方向に沿ったLPUのサイズとを示すシンタックス要素を取得するように構成される、実施例18Bに記載のデバイス。
【0185】
[0197] 実施例21B:1つ又は複数のプロセッサが、点群データがLPUに分割されると決定することの一部として、点群データの分割がx、y、又はz方向のうちの少なくとも1つの方向に沿って有効にされないと決定し、LPUのサイズがその方向に沿った点群データのサイズに等しいと決定するように構成される、実施例18Bに記載のデバイス。
【0186】
[0198] 実施例22B:方向がx、y、及びz方向を含み、点群データが垂直方向に分割され、x及びy方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、点群データが水平X方向に分割され、y及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、又は点群データが水平Y方向に分割され、x及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、のうちの1つを含む、実施例18Bから21Bのいずれか1つに記載のデバイス。
【0187】
[0199] 実施例23B:点群データに基づいて像を表示するためのディスプレイを更に備える、実施例18Bから22Bのいずれか1つに記載のデバイス。
【0188】
[0200] 実施例24B:点群データを符号化するためのデバイスは、点群データを記憶するように構成されたメモリと、回路構成に実装される1つ又は複数のプロセッサであって、点群データが、複数の最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定し、LPUについての予測点を決定するためにインター予測を実施し、LPUについての予測点に基づいてLPU内の点を符号化するように構成された、1つ又は複数のプロセッサと、を備える。
【0189】
[0201] 実施例25B:1つ又は複数のプロセッサが、点群データが複数のLPUに分割されると決定することの一部として、点群データがx方向においてLPUに分割されるかどうかを示す第1のインジケーションをシグナリングし、点群データがy方向においてLPUに分割されるかどうかを示す第2のシグナリングされる指示をシグナリングし、又は点群データがz方向においてLPUに分割されるかどうかを示す第3のシグナリングされる指示をシグナリングするように構成される、実施例24Bに記載のデバイス。
【0190】
[0202] 実施例26B:1つ又は複数のプロセッサが、x、y、又はz方向のうちの少なくとも1つの方向について、点群データの分割がその方向において有効にされるかどうかと、その方向に沿ったLPUのサイズとを示すシンタックス要素をシグナリングするように構成される、実施例24Bに記載のデバイス。
【0191】
[0203] 実施例27B:方向がx、y、及びz方向を含み、点群データが垂直方向に分割され、x及びy方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、点群データが水平X方向に分割され、y及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、又は点群データが水平Y方向に分割され、x及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、のうちの1つを含む、実施例24Bから26Bのいずれか1つに記載のデバイス。
【0192】
[0204] 実施例28B:点群データを生成するためのデバイスを更に備える、実施例24Bから27Bのいずれか1つに記載のデバイス。
【0193】
[0205] 実施例1C:点群データを複合する方法は、点群データが、複数の最大予測単位(LPUs)であって、LPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定することと、LPUについての予測点を決定するためにインター予測を実施することと、LPUについての予測点に基づいて、LPU内の点を再構成することとを含む。
【0194】
[0206] 実施例2C:LPUのサイズが、八分木幾何コーディングによって決定される点群データの四分木-二分木分割と整列する、実施例1Cに記載の方法。
【0195】
[0207] 実施例3C:LPUが、第1のLPUと第2のLPUとを含み、LPU内の予測点を決定するためにインター予測を実施することが、以前に再構成された点群にグローバル動き補償を適用することなく、以前に再構成された点群に基づいて第1のLPU内の予測点を決定することと、以前に再構成された点群にグローバル動き補償を適用して、以前に再構成された点群に基づいて第2のLPU内の予測点を決定することと、を含む、実施例1Cに記載の方法。
【0196】
[0208] 実施例4C:LPU内の予測点を決定するためにインター予測を実施することが、複数のLPUのうちの1つのLPUの動きを決定することと、LPU内の点を予測するために、LPUの動きを使用することと、を含む、実施例1Cに記載の方法。
【0197】
[0209] 実施例5C:点群データが複数のLPUに分割されると決定することが、第1のシグナリングされる指示に基づいて、点群データがx方向においてLPUに分割されると決定すること、第2のシグナリングされる指示に基づいて、点群データがy方向においてLPUに分割されると決定すること、又は、第3のシグナリングされる指示に基づいて、点群データがz方向においてLPUに分割されると決定することを含む、実施例1Cに記載の方法。
【0198】
[0210] 実施例6C:点群データがLPUに分割されると決定することが、x、y、及びz方向のうちの少なくとも1つの方向について、点群データの分割がその方向において有効にされるかどうかと、その方向に沿ったLPUのサイズとを示すシンタックス要素を取得することを含む、実施例1Cに記載の方法。
【0199】
[0211] 実施例7C:点群データがLPUに分割されると決定することが、点群データの分割がx、y、又はz方向のうちの少なくとも1つの方向に沿って有効にされないことを決定することと、点群データの分割がその方向に沿って有効にされないという決定に基づいて、LPUのサイズがその方向に沿った点群データのサイズに等しいと決定することと、を含む、実施例1Cに記載の方法。
【0200】
[0212] 実施例8C:方向がx、y、及びz方向を含み、点群データが垂直方向に分割され、x及びy方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、点群データが水平x方向に分割され、y及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、又は点群データが水平y方向に分割され、x及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、のうちの1つを含む、実施例1Cに記載の方法。
【0201】
[0213] 実施例9C:点群データが複数のLPUに分割されると決定することが、ヘッダレベルにおいてシグナリングされるシンタックス要素に基づいて、点群データが方向のうちの1つのみにおいてLPUに分割されると決定することを含む、実施例1Cに記載の方法。
【0202】
[0214] 実施例10C:点群データを符号化する方法は、点群データが、複数の最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定することと、LPUについての予測点を決定するためにインター予測を実施することと、LPUについての予測点に基づいてLPU内の点を符号化することと、を含む。
【0203】
[0215] 実施例11C:LPUのサイズが、八分木幾何コーディングによって決定される点群データの四分木-二分木分割と整列する、実施例10Cに記載の方法。
【0204】
[0216] 実施例12C:LPUが、第1のLPUと第2のLPUとを含み、LPU内の予測点を決定するためにインター予測を実施することが、以前に再構成された点群にグローバル動き補償を適用することなく、以前に再構成された点群に基づいて第1のLPU内の予測点を決定することと、以前に再構成された点群にグローバル動き補償を適用して、以前に再構成された点群に基づいて第2のLPU内の予測点を決定することと、を含む、実施例10Cに記載の方法。
【0205】
[0217] 実施例13C:LPU内の予測点を決定するためにインター予測を実施することが、複数のLPUのうちの1つのLPUの動きを決定することと、LPU内の点を予測するために、LPUの動きを使用することと、を含む、実施例10Cに記載の方法。
【0206】
[0218] 実施例14C:点群データがx方向においてLPUに分割されるかどうかを示す第1の指示をシグナリングすること、点群データがy方向においてLPUに分割されるかどうかを示す第2のシグナリングされる指示をシグナリングすること、又は、点群データがz方向においてLPUに分割されるかどうかを示す第3のシグナリングされる指示をシグナリングすること、を更に含む、実施例10Cに記載の方法。
【0207】
[0219] 実施例15C:x、y、及びz方向のうちの少なくとも1つの方向について、点群データの分割がその方向において有効にされるかどうかと、その方向に沿ったLPUのサイズとを示すシンタックス要素をシグナリングすることを更に含む、実施例10Cに記載の方法。
【0208】
[0220] 実施例16C:方向がx、y、及びz方向を含み、点群データが垂直方向に分割され、x及びy方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、点群データが水平X方向に分割され、y及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、又は点群データが水平Y方向に分割され、x及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、のうちの1つを含む、実施例10Cに記載の方法。
【0209】
[0221] 実施例17C:点群データが方向のうちの1つのみにおいてLPUに分割されることを示すシンタックス要素をヘッダレベルにおいてシグナリングすることを更に含む、実施例10Cに記載の方法。
【0210】
[0222] 実施例18C:点群データを複合するためのデバイスは、点群データを記憶するように構成されたメモリと、回路構成に実装される1つ又は複数のプロセッサであって、点群データが、複数の最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定し、LPUについての予測点を決定するためにインター予測を実施し、LPUについての予測点に基づいてLPU内の点を再構成するように構成された、1つ又は複数のプロセッサと、を備える。
【0211】
[0223] 実施例19C:1つ又は複数のプロセッサが、点群データが複数のLPUに分割されると決定することの一部として、第1のシグナリングされる指示に基づいて、点群データがx方向においてLPUに分割されると決定し、第2のシグナリングされる指示に基づいて、点群データがy方向においてLPUに分割されると決定し、又は、第3のシグナリングされる指示に基づいて、点群データがz方向においてLPUに分割されると決定するように構成される、実施例18Cに記載のデバイス。
【0212】
[0224] 実施例20C:1つ又は複数のプロセッサが、点群データがLPUに分割されると決定することの一部として、x、y、及びz方向のうちの各方向について、点群データの分割がその方向において有効にされるかどうかと、その方向に沿ったLPUのサイズとを示すシンタックス要素を取得するように構成される、実施例18Cに記載のデバイス。
【0213】
[0225] 実施例21C:1つ又は複数のプロセッサが、点群データがLPUに分割されると決定することの一部として、点群データの分割がx、y、又はz方向のうちの少なくとも1つの方向に沿って有効にされないと決定し、LPUのサイズがその方向に沿った点群データのサイズに等しいと決定するように構成される、実施例18Cに記載のデバイス。
【0214】
[0226] 実施例22C:方向がx、y、及びz方向を含み、点群データが垂直方向に分割され、x及びy方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、点群データが水平X方向に分割され、y及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、又は点群データが水平Y方向に分割され、x及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、のうちの1つを含む、実施例18Cに記載のデバイス。
【0215】
[0227] 実施例23C:点群データに基づいて像を表示するためのディスプレイを更に備える、実施例18Cに記載のデバイス。
【0216】
[0228] 実施例24C:点群データを符号化するためのデバイスは、点群データを記憶するように構成されたメモリと、回路構成に実装される1つ又は複数のプロセッサであって、点群データが、複数の最大予測単位(LPUs)であって、複数のLPUのうちの少なくとも2つが異なる方向に沿って異なるサイズを有する、複数のLPUに分割されると決定し、LPUについての予測点を決定するためにインター予測を実施し、LPUについての予測点に基づいてLPU内の点を符号化するように構成された、1つ又は複数のプロセッサと、を備える。
【0217】
[0229] 実施例25C:1つ又は複数のプロセッサが、点群データが複数のLPUに分割されると決定することの一部として、点群データがx方向においてLPUに分割されるかどうかを示す第1のインジケーションをシグナリングし、点群データがy方向においてLPUに分割されるかどうかを示す第2のシグナリングされる指示をシグナリングし、又は点群データがz方向においてLPUに分割されるかどうかを示す第3のシグナリングされる指示をシグナリングするように構成される、実施例24Cに記載のデバイス。
【0218】
[0230] 実施例26C:1つ又は複数のプロセッサが、x、y、又はz方向のうちの少なくとも1つの方向について、点群データの分割がその方向において有効にされるかどうかと、その方向に沿ったLPUのサイズとを示すシンタックス要素をシグナリングするように構成される、実施例24Cに記載のデバイス。
【0219】
[0231] 実施例27C:方向がx、y、及びz方向を含み、点群データが垂直方向に分割され、x及びy方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、点群データが水平X方向に分割され、y及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、又は点群データが水平Y方向に分割され、x及びz方向におけるLPUのサイズがx及びy方向における点群データのサイズに等しいこと、のうちの1つを含む、実施例24Cに記載のデバイス。
【0220】
[0232] 実施例28C:点群データを生成するためのデバイスを更に備える、実施例24Cに記載のデバイス。
【0221】
[0233] 例によって、本明細書において説明されている技法のうちのいずれかの行為又はイベントは、異なる順序で実施されることが可能であり、追加され、統合され、又は完全に除外されてもよい(例えば、説明されているすべての行為又はイベントが技法の実践にとって必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為又はイベントは、逐次的にではなく、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを通じて、並行して実施されてもよい。
【0222】
[0234] 1つ又は複数の例では、記載の機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実装されてよい。ソフトウェアで実装されている場合、機能は、1つ又は複数の命令又はコードとして、コンピュータ可読媒体上に記憶されてもよく、又はコンピュータ可読媒体を介して送信されてもよく、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、又は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、又は(2)信号若しくは搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示に記載の技法の実装のための命令、コード、及び/又はデータ構造を取り出すために、1つ若しくは複数のコンピュータ又は1つ若しくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体とすることができる。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0223】
[0235] 限定ではなく例として、このようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気ストレージデバイス、フラッシュメモリ、又は、命令若しくはデータ構造の形態で所望のプログラムコードを記憶するために使用でき、コンピュータによってアクセス可能な任意の他の媒体を含むことができる。また、任意の接続がコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義の中に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的な媒体を含まず、代わりに非一時的で有形な記憶媒体を指すことを理解されたい。本明細書で使用されるディスク(disk)及びディスク(disc)は、コンパクトディスク(compact disc、CD)、レーザーディスク、光ディスク、デジタル多用途ディスク(digital versatile disc、DVD)、フロッピーディスク、及びブルーレイディスクを含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記のものの組み合わせもまた、コンピュータ可読媒体の範囲内に含まれるものとする。
【0224】
[0236] 命令は、1つ又は複数のデジタル信号プロセッサ(DSPs)、汎用マイクロプロセッサ、特定用途向け集積回路(ASICs)、フィールドプログラマブルゲートアレイ(FPGAs)、又は他の等価な集積論理回路構成若しくはディスクリート論理回路構成などの、1つ又は複数のプロセッサによって実行され得る。これに応じて、本明細書で使用される「プロセッサ」及び「処理回路構成」という用語は、上記の構造のいずれか、又は本明細書で説明される技法の実装に好適な任意の他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明されている機能性は、符号化及び復号のために構成された専用のハードウェアモジュール及び/若しくはソフトウェアモジュール内で提供されてもよく、又は複合コーデックの中に組み込まれてもよい。また、技法は、1つ若しくは複数の回路又は論理要素において完全に実装されてもよい。
【0225】
[0237] 本開示の技法は、ワイヤレスハンドセット、集積回路(integrated circuit、IC)、又はICのセット(例えば、チップセット)を含む、多種多様なデバイス又は装置において実装されてもよい。開示されている技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、又はユニットについて本開示で説明しているが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明したように、様々なユニットは、コーデックハードウェアユニットの中で組み合わせられてよく、又は、好適なソフトウェア及び/若しくはファームウェアと併せて、上で説明したような1つ又は複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【0226】
[0238] 様々な例が説明されてきた。これら及び他の例は以下の特許請求の範囲内に含まれる。

図1
図2
図3
図4
図5
図6
図7A
図7B
図8
図9
図10
図11
図12
図13
【国際調査報告】