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

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

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

特表2023-545917ジオメトリ点群圧縮(G-PCC)におけるレーザー回転のための高レベルシンタックス
<>
  • 特表-ジオメトリ点群圧縮(G-PCC)におけるレーザー回転のための高レベルシンタックス 図1
  • 特表-ジオメトリ点群圧縮(G-PCC)におけるレーザー回転のための高レベルシンタックス 図2
  • 特表-ジオメトリ点群圧縮(G-PCC)におけるレーザー回転のための高レベルシンタックス 図3
  • 特表-ジオメトリ点群圧縮(G-PCC)におけるレーザー回転のための高レベルシンタックス 図4
  • 特表-ジオメトリ点群圧縮(G-PCC)におけるレーザー回転のための高レベルシンタックス 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-01
(54)【発明の名称】ジオメトリ点群圧縮(G-PCC)におけるレーザー回転のための高レベルシンタックス
(51)【国際特許分類】
   G06T 9/40 20060101AFI20231025BHJP
【FI】
G06T9/40
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023517764
(86)(22)【出願日】2021-09-09
(85)【翻訳文提出日】2023-03-16
(86)【国際出願番号】 US2021049668
(87)【国際公開番号】W WO2022076124
(87)【国際公開日】2022-04-14
(31)【優先権主張番号】63/090,027
(32)【優先日】2020-10-09
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/469,704
(32)【優先日】2021-09-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】バッパディトヤ・レイ
(72)【発明者】
【氏名】アダルシュ・クリシュナン・ラマスブラモニアン
(72)【発明者】
【氏名】ヘルト・ファン・デル・アウウェラ
(72)【発明者】
【氏名】マルタ・カルチェヴィッチ
(57)【要約】
点群データを符号化する方法は、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定するステップと、レーザーが回る量を示すシンタックス要素を生成するステップであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ステップと、シンタックス要素をシグナリングするステップとを含む。
【特許請求の範囲】
【請求項1】
点群データを符号化する方法であって、
前記点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定するステップと、
前記レーザーが回る前記量を示すシンタックス要素を生成するステップであって、前記シンタックス要素の値は、前記レーザーが回る前記量未満の規定値である、ステップと、
前記シンタックス要素をシグナリングするステップと
を含む方法。
【請求項2】
前記レーザーが回る前記量を決定するステップは、一度の一回転における、前記レーザーによるレーザープローブの数を決定するステップを含む、請求項1に記載の方法。
【請求項3】
一度の一回転における、前記レーザーによるレーザープローブの前記数を決定するステップは、8分木コーディングであるジオメトリツリータイプについて、一度の一回転における、前記レーザーによるレーザープローブの前記数を決定するステップを含む、請求項2に記載の方法。
【請求項4】
前記レーザーが回る前記量を決定するステップは、前記レーザーが回る方位角における単位変化を決定するステップを含む、請求項1に記載の方法。
【請求項5】
前記レーザーが回る前記方位角における前記単位変化を決定するステップは、予測ジオメトリコーディングであるジオメトリツリータイプについて、前記レーザーが回る前記方位角における前記単位変化を決定するステップを含む、請求項4に記載の方法。
【請求項6】
前記シンタックス要素を生成するステップは、前記レーザーが回る前記量から前記規定値を減算して、前記シンタックス要素の前記値を生成するステップを含む、請求項1に記載の方法。
【請求項7】
前記規定値は1に等しい、請求項1に記載の方法。
【請求項8】
前記シンタックス要素は第1のシンタックス要素であり、前記方法は、
前記点群データの第3のシンタックス要素を表すのに使われるビットの数を示す前記点群データの第2のシンタックス要素を符号化するステップであって、前記点群データの前記第3のシンタックス要素は、角度コーディングモードの処理において使われる原点の座標を示す、ステップと、
前記第3のシンタックス要素を固定長符号化するステップと
をさらに含む、請求項1に記載の方法。
【請求項9】
前記値は第1の値を含み、前記方法は、
32ビットを超えない、球面座標コンバージョンにおける属性位置に関連付けられた第2の値を決定するステップをさらに含み、前記第2の値を決定することは、
32ビット以下になるように前記第2の値をクリップすること、および
前記値のビット深度が32ビット以下であると定義する点群圧縮規格に準拠して、前記第2の値を生成すること、
のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項10】
点群データを復号する方法であって、
前記点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信するステップであって、前記シンタックス要素の値は、前記レーザーが回る前記量未満の規定値である、ステップと、
前記シンタックス要素に基づいて、前記レーザーが回る前記量を決定するステップと、
前記レーザーが回る前記決定された量に基づいて前記点群を再構築するステップと
を含む方法。
【請求項11】
前記シンタックス要素に基づいて、前記レーザーが回る前記量を決定するステップは、一度の一回転における、前記レーザーによるレーザープローブの数を決定するステップを含む、請求項10に記載の方法。
【請求項12】
一度の一回転における、前記レーザーによるレーザープローブの前記数を決定するステップは、8分木コーディングであるジオメトリツリータイプについて、一度の一回転における、前記レーザーによるレーザープローブの前記数を決定するステップを含む、請求項11に記載の方法。
【請求項13】
前記シンタックス要素に基づいて、前記レーザーが回る前記量を決定するステップは、前記レーザーが回る方位角における単位変化を決定するステップを含む、請求項10に記載の方法。
【請求項14】
前記レーザーが回る前記方位角における前記単位変化を決定するステップは、予測ジオメトリコーディングであるジオメトリツリータイプについて、前記レーザーが回る前記方位角における前記単位変化を決定するステップを含む、請求項13に記載の方法。
【請求項15】
前記シンタックス要素に基づいて、前記レーザーが回る前記量を決定するステップは、前記シンタックス要素の前記値に前記規定値を加算するステップを含む、請求項10に記載の方法。
【請求項16】
前記規定値は1に等しい、請求項10に記載の方法。
【請求項17】
前記シンタックス要素は第1のシンタックス要素であり、前記方法は、
前記点群データの第3のシンタックス要素を表すのに使われるビットの数を示す前記点群データの第2のシンタックス要素を復号するステップであって、前記点群データの前記第3のシンタックス要素は、角度コーディングモードの処理において使われる原点の座標を示す、ステップと、
前記第3のシンタックス要素を固定長復号するステップと
をさらに含む、請求項10に記載の方法。
【請求項18】
前記値は第1の値を含み、前記方法は、
32ビットを超えない、球面座標コンバージョンにおける属性位置に関連付けられた第2の値を決定するステップをさらに含み、前記第2の値を決定することは、
32ビット以下になるように前記第2の値をクリップすること、および
前記値のビット深度が32ビット以下であると定義する点群圧縮規格に準拠して、前記第2の値を受信すること、
のうちの少なくとも1つを含む、請求項10に記載の方法。
【請求項19】
点群データを符号化するためのデバイスであって、
前記点群データを記憶するように構成されたメモリと、
前記メモリに結合された1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサは、
前記点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定することと、
前記レーザーが回る前記量を示すシンタックス要素を生成することであって、前記シンタックス要素の値は、前記レーザーが回る前記量未満の規定値である、生成することと、
前記シンタックス要素をシグナリングすることと
を行うように構成される、デバイス。
【請求項20】
前記レーザーが回る前記量を決定することは、一度の一回転における、前記レーザーによるレーザープローブの数を決定することを含む、請求項19に記載のデバイス。
【請求項21】
一度の一回転における、前記レーザーによるレーザープローブの前記数を決定することは、8分木コーディングであるジオメトリツリータイプについて、一度の一回転における、前記レーザーによるレーザープローブの前記数を決定することを含む、請求項20に記載のデバイス。
【請求項22】
前記レーザーが回る前記量を決定することは、前記レーザーが回る方位角における単位変化を決定することを含む、請求項19に記載のデバイス。
【請求項23】
前記レーザーが回る前記方位角における前記単位変化を決定することは、予測ジオメトリコーディングであるジオメトリツリータイプについて、前記レーザーが回る前記方位角における前記単位変化を決定することを含む、請求項22に記載のデバイス。
【請求項24】
前記シンタックス要素を生成することは、前記レーザーが回る前記量から前記規定値を減算して、前記シンタックス要素の前記値を生成することを含む、請求項19に記載のデバイス。
【請求項25】
前記規定値は1に等しい、請求項19に記載のデバイス。
【請求項26】
前記シンタックス要素は第1のシンタックス要素であり、前記1つまたは複数のプロセッサは、
前記点群データの第3のシンタックス要素を表すのに使われるビットの数を示す前記点群データの第2のシンタックス要素を符号化することであって、前記点群データの前記第3のシンタックス要素は、角度コーディングモードの処理において使われる原点の座標を示す、符号化することと、
前記第3のシンタックス要素を固定長符号化することと
を行うように構成される、請求項19に記載のデバイス。
【請求項27】
点群データを復号するためのデバイスであって、
前記点群データを記憶するように構成されたメモリと、
前記メモリに結合された1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサは、
前記点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信することであって、前記シンタックス要素の値は、前記レーザーが回る前記量未満の規定値である、受信することと、
前記シンタックス要素に基づいて、前記レーザーが回る前記量を決定することと、
前記レーザーが回る前記決定された量に基づいて前記点群を再構築することと
を行うように構成される、デバイス。
【請求項28】
前記シンタックス要素に基づいて、前記レーザーが回る前記量を決定することは、一度の一回転における、前記レーザーによるレーザープローブの数を決定することを含む、請求項27に記載のデバイス。
【請求項29】
一度の一回転における、前記レーザーによるレーザープローブの前記数を決定することは、8分木コーディングであるジオメトリツリータイプについて、一度の一回転における、前記レーザーによるレーザープローブの前記数を決定することを含む、請求項28に記載のデバイス。
【請求項30】
前記シンタックス要素に基づいて、前記レーザーが回る前記量を決定することは、前記レーザーが回る方位角における単位変化を決定することを含む、請求項27に記載のデバイス。
【請求項31】
前記レーザーが回る前記方位角における前記単位変化を決定することは、予測ジオメトリコーディングであるジオメトリツリータイプについて、前記レーザーが回る前記方位角における前記単位変化を決定することを含む、請求項30に記載のデバイス。
【請求項32】
前記シンタックス要素に基づいて、前記レーザーが回る前記量を決定することは、前記シンタックス要素の前記値に前記規定値を加算することを含む、請求項27に記載のデバイス。
【請求項33】
前記規定値は1に等しい、請求項27に記載のデバイス。
【請求項34】
前記シンタックス要素は第1のシンタックス要素であり、前記1つまたは複数のプロセッサは、
前記点群データの第3のシンタックス要素を表すのに使われるビットの数を示す前記点群データの第2のシンタックス要素を復号することであって、前記点群データの前記第3のシンタックス要素は、角度コーディングモードの処理において使われる原点の座標を示す、復号することと、
前記第3のシンタックス要素を固定長復号することと
を行うように構成される、請求項27に記載のデバイス。
【請求項35】
点群データを符号化するためのデバイスであって、
前記点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定するための手段と、
前記レーザーが回る前記量を示すシンタックス要素を生成するための手段であって、前記シンタックス要素の値は、前記レーザーが回る前記量未満の規定値である、手段と、
前記シンタックス要素をシグナリングするための手段と
を備えるデバイス。
【請求項36】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、1つまたは複数のプロセッサに、
点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定することと、
前記レーザーが回る前記量を示すシンタックス要素を生成することであって、前記シンタックス要素の値は、前記レーザーが回る前記量未満の規定値である、生成することと、
前記シンタックス要素をシグナリングすることと
を行わせる、コンピュータ可読記憶媒体。
【請求項37】
点群データを復号するためのデバイスであって、
前記点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信するための手段であって、前記シンタックス要素の値は、前記レーザーが回る前記量未満の規定値である、手段と、
前記シンタックス要素に基づいて、前記レーザーが回る前記量を決定するための手段と、
前記レーザーが回る前記決定された量に基づいて前記点群を再構築するための手段と
を備えるデバイス。
【請求項38】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、1つまたは複数のプロセッサに、
点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信することであって、前記シンタックス要素の値は、前記レーザーが回る前記量未満の規定値である、受信することと、
前記シンタックス要素に基づいて、前記レーザーが回る前記量を決定することと、
前記レーザーが回る前記決定された量に基づいて前記点群を再構築することと
を行わせる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2021年9月8日に出願された米国出願第17/469,704号および2020年10月9日に出願された米国仮出願第63/090,027号の優先権を主張し、各々の出願の内容全体は、参照により本明細書に組み込まれる。米国出願第17/469,704号は、2020年10月9日に出願された米国仮出願第63/090,027号の利益を主張する。
【0002】
本開示は、点群符号化および復号に関する。
【背景技術】
【0003】
点群とは、3次元空間における点の集合体である。点は、3次元空間内のオブジェクト上の点に対応し得る。したがって、点群は、3次元空間の物理的内容を表すのに使われてよい。点群は、非常に様々な状況における有用性を有し得る。たとえば、点群は、道路上のオブジェクトの位置を表すために、自律車両のコンテキストにおいて使われ得る。別の例では、点群は、拡張現実(AR)または複合現実(MR)アプリケーションにおいて仮想オブジェクトを位置決めする目的のために、環境の物理的内容を表すコンテキストにおいて使われ得る。点群圧縮とは、点群を符号化し、復号するためのプロセスである。点群を符号化すると、点群の記憶および送信に要するデータの量を削減することができる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】G-PCC DIS、ISO/IEC JTC1/SC29/WG11 w19617、Teleconference、2021年7月
【非特許文献2】G-PCC Codec Description v11、ISO/IEC JTC1/SC29/WG7 N0099、Teleconference、2021年7月
【発明の概要】
【課題を解決するための手段】
【0005】
一般に、本開示は、ジオメトリ点群圧縮(G-PCC)のための高レベルシンタックスの洗練および/または改良のための技法について記載する。たとえば、本開示は、G-PCCのための例示的シンタックス要素、および例示的シンタックス要素に基づいて点群の復号を構成することについて記載する。1つまたは複数の例では、いくつかの他の技法と比較して、利用されるシンタックス要素の数を削減することができ、それによって帯域幅利用も削減する。たとえば、例示的技法は、G-PCCの高レベルシンタックスの、冗長性の排除および洗練に関し得る。
【0006】
G-PCCエンコーダが、点群の中の点を決定するためのレーザーが回る量を決定し得る。点群の中の点を決定するためのレーザーが回る量は非ゼロ数であるという要件があり得る。つまり、各レーザーは、点群の中の点を決定するために回転するという要件があり得る。したがって、G-PCCエンコーダが、レーザーが回る実際の量を示す値をシグナリングするのではなく、G-PCCエンコーダは、レーザーが回る実際の量から規定値(たとえば、1)を引いたものに等しい値をシグナリングしてもよい。G-PCCデコーダは、受信された値に規定値を加算して、レーザーが回る量を決定してもよい。たとえば、G-PCCエンコーダが、レーザーが回る量について0の値をシグナリングした場合、G-PCCデコーダは、レーザーが回る実際の量が1である(たとえば、0+1)と決定してよい。
【0007】
より小さい値をシグナリングするG-PCCエンコーダは、より大きい値をシグナリングするG-PCCエンコーダよりも少ない帯域幅を要する傾向がある。したがって、G-PCCエンコーダが、レーザーが回る実際の量に等しい値ではなく、レーザーが回る実際の量から規定値(たとえば、1)を引いたものに等しい値をシグナリングすることによって、例示的技法は、シグナリングされる必要があるデータの量を削減し、帯域幅効率を向上させることができる。
【0008】
一例では、点群データを符号化する方法は、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定するステップと、レーザーが回る量を示すシンタックス要素を生成するステップであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ステップと、シンタックス要素をシグナリングするステップとを含む。
【0009】
一例では、点群データを復号する方法は、点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信するステップであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ステップと、シンタックス要素に基づいて、レーザーが回る量を決定するステップと、レーザーが回る決定された量に基づいて点群を再構築するステップとを含む。
【0010】
一例では、点群データを符号化するためのデバイスは、点群データを記憶するように構成されたメモリと、メモリに結合された1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定することと、レーザーが回る量を示すシンタックス要素を生成することであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ことと、シンタックス要素をシグナリングすることとを行うように構成される。
【0011】
一例では、点群データを復号するためのデバイスは、点群データを記憶するように構成されたメモリと、メモリに結合された1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信することであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ことと、シンタックス要素に基づいて、レーザーが回る量を決定することと、レーザーが回る決定された量に基づいて点群を再構築することとを行うように構成される。
【0012】
一例では、点群データを符号化するためのデバイスは、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定するための手段と、レーザーが回る量を示すシンタックス要素を生成するための手段であって、シンタックス要素の値は、レーザーが回る量未満の規定値である、手段と、シンタックス要素をシグナリングするための手段とを含む。
【0013】
一例では、命令を記憶するコンピュータ可読記憶媒体であって、命令は、実行されると、1つまたは複数のプロセッサに、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定することと、レーザーが回る量を示すシンタックス要素を生成することであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ことと、シンタックス要素をシグナリングすることとを行わせる。
【0014】
一例では、点群データを復号するためのデバイスは、点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信するための手段であって、シンタックス要素の値は、レーザーが回る量未満の規定値である、手段と、シンタックス要素に基づいて、レーザーが回る量を決定するための手段と、レーザーが回る決定された量に基づいて点群を再構築するための手段とを含む。
【0015】
一例では、命令を記憶するコンピュータ可読記憶媒体であって、命令は、実行されると、1つまたは複数のプロセッサに、点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信することであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ことと、シンタックス要素に基づいて、レーザーが回る量を決定することと、レーザーが回る決定された量に基づいて点群を再構築することとを行わせる。
【0016】
1つまたは複数の例の詳細が、添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0017】
図1】本開示の技法を実施し得る例示的な符号化および復号システムを示すブロック図である。
図2】例示的ジオメトリ点群圧縮(G-PCC)エンコーダを示すブロック図である。
図3】例示的G-PCCデコーダを示すブロック図である。
図4】点群データを符号化する例を示すフローチャートである。
図5】点群データを復号する例を示すフローチャートである。
【発明を実施するための形態】
【0018】
ジオメトリ点群圧縮(G-PCC)では、レーザーからのレーザービームが、点群の中の点を決定するのに使われる。たとえば、センサーが、レーザービームの反射を検知して、点群の中で点がどこにあるかを決定する。いくつかの例では、G-PCCエンコーダが、8分木構造で点群を符号化し得る。たとえば、G-PCCエンコーダは、点群を複数のN×N×N立方体に区分し得る。少なくとも1つの点を含む各立方体について、G-PCCエンコーダは、その立方体を複数のN/2×N/2×N/2立方体にさらに区分し、少なくとも1つの点を有するこれらの立方体のいずれをもさらに区分するなどしてよい。G-PCCエンコーダは、立方体の各々の中の点についての属性値を符号化し得る。属性値は、座標、色、および他のそのような値であってよい。
【0019】
別の例として、G-PCCエンコーダは、点群を予測ツリー構造で符号化し得る。予測ツリー構造では、点群の中の各点は、予測ツリー中のノードに関連付けられ得る。ノードは、ノードが1つまたは複数の祖先ノードを有し得るように、階層構造の中で互いに接続されてよい。予測ツリー構造では、現在のノードについての位置(position)(ジオメトリ)が、1つまたは複数の祖先ノードの位置から予測されてよく、1つまたは複数の祖先ノードは、現在のノードの前に符号化され、復号される。
【0020】
点群が、8分木構造を使って符号化され、復号されるとき、G-PCCエンコーダおよびG-PCCデコーダは、8分木コーディングを実施するものと見なされ得る(すなわち、ジオメトリツリータイプは8分木コーディングである)。点群が、予測ツリー構造を使って符号化され、復号されるとき、G-PCCエンコーダおよびG-PCCデコーダは、予測ジオメトリコーディングを実施するものと見なされ得る(すなわち、ジオメトリツリータイプは予測ジオメトリコーディングである)。予測ジオメトリコーディングは、予測ツリーコーディングとも呼ばれ得る。シンタックス要素geom_tree_typeは、8分木コーディングが使われるか、それとも予測ジオメトリコーディングが使われるかを示し得る。たとえば、geom_tree_type==0は、8分木コーディングが使われることを意味してよく、geom_tree_type==1は、予測ジオメトリコーディングが使われることを意味してよい。
【0021】
8分木コーディングと予測ジオメトリコーディングの両方に対して、G-PCCエンコーダは、点群の中の点を決定するためのレーザーが回る量を決定してよい。一例として、レーザーが回る量は、レーザーの一度の一回転における、レーザーによるレーザープローブの数を指し得る。レーザープローブの数は、8分木コーディングであるジオメトリツリータイプ(すなわち、geom_tree_type==0)用であり得る。たとえば、レーザーの一度の一回転における、レーザーによるレーザープローブの数は、原点に位置する回転検知システムのレーザーによって生じたサンプルの数を指し得る。シンタックス要素laser_phi_per_turn[i]は、レーザーの一度の一回転における、レーザーによるレーザープローブの数を示し得る。ただし、より詳しく記載するように、1つまたは複数の例において、laser_phi_per_turn[i]をシグナリングするのではなく、laser_phi_per_turn_minus1[i]を、G-PCCエンコーダはシグナリングしてよく、G-PCCデコーダは受信してよい。
【0022】
別の例として、レーザーが回る量は、レーザーが回る方位角における単位変化を指し得る。方位角における単位変化は、予測ジオメトリコーディングであるジオメトリツリータイプ(すなわち、geom_tree_type==1)用であってよい。シンタックス要素geom_angular_azimuth_stepは、方位角における単位変化を示し得る。ただし、より詳しく記載するように、1つまたは複数の例において、geom_angular_azimuth_stepをシグナリングするのではなく、geom_angular_azimuth_step_minus1を、G-PCCエンコーダはシグナリングしてよく、G-PCCデコーダは受信してよい。
【0023】
上記例において、点群の中の点を決定するためのレーザーが回る量を決定することは、レーザーの一度の一回転における、レーザーによるレーザープローブの数を決定すること、および/またはレーザーが回る方位角における単位変化を決定することを含み得る。たとえば、レーザーはプローブの各々のために回ることになるので、レーザーによるレーザープローブの数は、レーザーが回る量を示し得る。例として、レーザープローブの数が4の場合、レーザーは90度だけ回ることになる。レーザープローブの数が2の場合、レーザーは180度だけ回ることになる。
【0024】
本開示では、点群の中の点を決定するためのレーザーが回る量を決定することは、推論による決定または実際の決定であり得る。つまり、レーザープローブの数を決定する例では、G-PCCエンコーダまたはG-PCCデコーダは、必ずしもレーザーが回る量を決定する必要はないが、レーザーが回る量は、レーザープローブの数によって示され得る。ただし、この例では、G-PCCエンコーダまたはG-PCCデコーダは、レーザーが回る量を決定するものと見なされ得る。
【0025】
点群の中の点を決定するためのレーザーが回る量はゼロではあり得ないという要件があり得る。ある例では、laser_phi_per_turn[i]およびgeom_angular_azimuth_stepはゼロではあり得ず、1という最小値を有する。したがって、この例では、laser_phi_per_turn[i]の実際の値をシグナリングするのではなく、laser_phi_per_turn[i]の実際の値から規定値(たとえば、1)を引いた値を、G-PCCエンコーダがシグナリングすること、およびG-PCCデコーダが受信することが可能であってよい。言い換えると、laser_phi_per_turn[i]をシグナリングし、受信するのではなく、laser_phi_per_turn_minus1[i]を、G-PCCエンコーダはシグナリングしてよく、G-PCCデコーダは受信してよく、ここでは1が規定値である。同様に、geom_angular_azimuth_stepの実際の値をシグナリングするのではなく、geom_angular_azimuth_stepの実際の値から規定値(たとえば、1)を引いた値を、G-PCCエンコーダがシグナリングし、G-PCCデコーダが受信することが可能であってよい。言い換えると、geom_angular_azimuth_stepをシグナリングし、受信するのではなく、geom_angular_azimuth_step_minus1を、G-PCCエンコーダはシグナリングしてよく、G-PCCデコーダは受信してよく、ここでは1が規定値である。
【0026】
G-PCCエンコーダが、より大きい値と比較して、より小さい値をシグナリングすることによって、帯域幅が削減され得る。したがって、G-PCCエンコーダが、geom_tree_type==0であるとき(すなわち、8分木コーディング)に対してlaser_phi_per_turn[i]ではなくlaser_phi_per_turn_minus1[i]をシグナリングした場合、帯域幅効率が増し得る。同様に、G-PCCエンコーダが、geom_tree_type==1であるとき(すなわち、予測ツリーコーディング)に対してgeom_angular_azimuth_stepではなくgeom_angular_azimuth_step_minus1をシグナリングした場合、帯域幅効率が増し得る。
【0027】
G-PCCデコーダの観点からすると、G-PCCデコーダは、laser_phi_per_turn_minus1[i]を受信し、受信した値に1を加算して、laser_phi_per_turnの実際の値(すなわち、一度の一回転における、レーザーによるレーザープローブの数の実際の値)を決定してもよい。同様に、G-PCCデコーダは、geom_angular_azimuth_step_minus1を受信し、受信した値に1を加算して、geom_angular_azimuth_stepの実際の値(すなわち、レーザーが回る方位角における単位変化の実際の値)を決定してもよい。
【0028】
したがって、1つまたは複数の例において、G-PCCエンコーダは、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定することと、レーザーが回る量を示すシンタックス要素を生成することであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ことと、シンタックス要素をシグナリングすることとを行い得る。G-PCCデコーダは、点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信することであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ことと、シンタックス要素に基づいて、レーザーが回る量を決定することと、レーザーが回る決定された量に基づいて点群を再構築することとを行い得る。
【0029】
たとえば、レーザーが回る量は、(たとえば、8分木コーディングであるジオメトリツリータイプの場合)一度の一回転における、レーザーによるレーザープローブの数であってよい。別の例として、レーザーが回る量は、(たとえば、予測ジオメトリコーディングであるジオメトリツリータイプの場合)レーザーが回る方位角における単位変化であってよい。
【0030】
レーザーが回る量を示すシンタックス要素の一例がlaser_phi_per_turn_minus1[i]であり、laser_phi_per_turn_minus1[i]の値は、レーザーが回る量未満の規定値(たとえば、一度の一回転における、レーザーによるプローブの数未満のもの)である。レーザーが回る量を示すシンタックス要素の別の例がgeom_angular_azimuth_step_minus1であり、geom_angular_azimuth_step_minus1の値は、レーザーが回る量未満の規定値(たとえば、レーザーが回る方位角における単位変化未満のもの)である。
【0031】
図1は、本開示の技法を実施し得る例示的な符号化および復号システム100を示すブロック図である。本開示の技法は、一般に、点群データをコーディング(符号化および/または復号)すること、すなわち、点群圧縮をサポートすることを対象とする。一般に、点群データは、点群を処理するための任意のデータを含む。コーディングは、点群データを圧縮および/または圧縮解除するのに有効であり得る。
【0032】
図1に示すように、システム100は、ソースデバイス102および宛先デバイス116を含む。ソースデバイス102は、宛先デバイス116によって復号されるべき符号化点群データを提供する。詳細には、図1の例では、ソースデバイス102は、コンピュータ可読媒体110を介して宛先デバイス116に点群データを提供する。ソースデバイス102および宛先デバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、陸上または海上車両、宇宙船、航空機、ロボット、LIDARデバイス、衛星などを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合、ソースデバイス102および宛先デバイス116は、ワイヤレス通信に対応し得る。
【0033】
図1の例では、ソースデバイス102は、データソース104、メモリ106、G-PCCエンコーダ200、および出力インターフェース108を含む。宛先デバイス116は、入力インターフェース122、G-PCCデコーダ300、メモリ120、およびデータコンシューマ118を含む。本開示によると、ソースデバイス102のG-PCCエンコーダ200および宛先デバイス116のG-PCCデコーダ300は、G-PCCのための高レベルシンタックスの洗練および/または改良に関連した本開示の技法を適用するように構成されてよい。したがって、ソースデバイス102は符号化デバイスの例を表し、宛先デバイス116は復号デバイスの例を表す。他の例では、ソースデバイス102および宛先デバイス116は、他の構成要素または配置を含んでよい。たとえば、ソースデバイス102は、内部または外部ソースからデータ(たとえば、点群データ)を受信し得る。同様に、宛先デバイス116は、同じデバイスの中にデータコンシューマを含むのではなく、外部データコンシューマとインターフェースしてもよい。
【0034】
図1に示すようなシステム100は一例にすぎない。一般に、他のデジタル符号化および/または復号デバイスが、G-PCCのための高レベルシンタックスの洗練および/または改良に関連した本開示の技法を実施してよい。ソースデバイス102および宛先デバイス116は、ソースデバイス102が宛先デバイス116への送信のためにコーディングされたデータを生成するようなデバイスの例にすぎない。本開示は、データのコーディング(符号化および/または復号)を実施するデバイスを「コーディング」デバイスと呼ぶ。したがって、G-PCCエンコーダ200およびG-PCCデコーダ300は、コーディングデバイス、具体的には、それぞれ、エンコーダおよびデコーダの例を表す。いくつかの例では、ソースデバイス102および宛先デバイス116は、ソースデバイス102および宛先デバイス116の各々が符号化および復号構成要素を含むように実質的に対称的な方法で動作し得る。したがって、システム100は、たとえば、ストリーミング、再生、ブロードキャスト、電話、ナビゲーション、および他のアプリケーションのために、ソースデバイス102と宛先デバイス116との間の一方向または双方向送信をサポートし得る。
【0035】
一般に、データソース104は、データのソース(すなわち、未加工の符号化されていない点群データ)を表し、データの逐次的な一連の「フレーム」をG-PCCエンコーダ200に提供してよく、G-PCCエンコーダ200はフレームのためのデータを符号化する。ソースデバイス102のデータソース104は、様々なカメラもしくはセンサー、たとえば、3Dスキャナもしくは光検出および測距(LIDAR)デバイス、1つもしくは複数のビデオカメラ、以前キャプチャされたデータを含むアーカイブ、ならびに/またはデータコンテンツプロバイダからデータを受信するためのデータフィードインターフェースのうちのいずれかなどの点群キャプチャデバイスを含み得る。代替または追加として、点群データは、スキャナ、カメラ、センサーまたは他のデータからコンピュータ生成されてよい。たとえば、データソース104は、コンピュータグラフィックスベースのデータをソースデータとして生成するか、またはライブデータとアーカイブされたデータとコンピュータ生成されたデータとの組合せを生じ得る。各場合において、G-PCCエンコーダ200は、キャプチャされた、事前にキャプチャされた、またはコンピュータ生成されたデータを符号化する。G-PCCエンコーダ200は、受信された順序(「表示順序」と呼ばれることがある)からコーディング用のコーディング順序にフレームを並べ替え得る。G-PCCエンコーダ200は、符号化データを含む1つまたは複数のビットストリームを生成してよい。次いで、ソースデバイス102は、たとえば、宛先デバイス116の入力インターフェース122による受信および/または取出しのために、符号化データを、出力インターフェース108を介してコンピュータ可読媒体110上に出力し得る。
【0036】
ソースデバイス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は、点群を表すデータを記憶してよい。
【0037】
コンピュータ可読媒体110は、符号化データをソースデバイス102から宛先デバイス116にトランスポートすることが可能な任意のタイプの媒体またはデバイスを表す場合がある。一例では、コンピュータ可読媒体110は、たとえば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、ソースデバイス102が符号化データを宛先デバイス116にリアルタイムで直接送信することを可能にする通信媒体を表す。ワイヤレス通信プロトコルなどの通信規格に従って、出力インターフェース108が、符号化データを含む送信信号を変調してよく、入力インターフェース122が、受信された送信信号を復調してよい。通信媒体は、無線周波数(RF)スペクトル、または1つもしくは複数の物理伝送線路など、任意のワイヤレス通信媒体またはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102から宛先デバイス116への通信を容易にするために有用であり得る任意の他の機器を含んでもよい。
【0038】
いくつかの例では、ソースデバイス102は、符号化データを出力インターフェース108から記憶デバイス112に出力し得る。同様に、宛先デバイス116は、入力インターフェース122を介して、記憶デバイス112からの符号化データにアクセスし得る。記憶デバイス112は、ハードドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化データを記憶するための任意の他の好適なデジタル記憶媒体のような、種々の分散型またはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。
【0039】
いくつかの例では、ソースデバイス102は、ソースデバイス102によって生成された符号化データを記憶し得るファイルサーバ114または別の中間記憶デバイスに、符号化データを出力してよい。宛先デバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114からの記憶されたデータにアクセスし得る。ファイルサーバ114は、符号化データを記憶し、その符号化データを宛先デバイス116に送信することが可能な任意のタイプのサーバデバイスであってよい。ファイルサーバ114は、(たとえば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、コンテンツ配信ネットワークデバイス、またはネットワーク接続ストレージ(NAS)デバイスを表し得る。宛先デバイス116は、インターネット接続を含む任意の標準的なデータ接続を通して、ファイルサーバ114からの符号化データにアクセスしてよい。これは、ファイルサーバ114上に記憶された符号化データにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、デジタル加入者回線(DSL)、ケーブルモデムなど)、または両方の組合せを含み得る。ファイルサーバ114および入力インターフェース122は、ストリーミング送信プロトコル、ダウンロード送信プロトコル、またはそれらの組合せに従って動作するように構成され得る。
【0040】
出力インターフェース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デバイスを含んでよい。
【0041】
本開示の技法は、自律車両の間の通信、スキャナ、カメラ、センサーおよびローカルもしくはリモートサーバなどの処理デバイスの間の通信、地理的マッピング、または他のアプリケーションなど、様々なアプリケーションのいずれかをサポートする符号化および復号に適用されてよい。
【0042】
宛先デバイス116の入力インターフェース122は、コンピュータ可読媒体110(たとえば、通信媒体、記憶デバイス112、ファイルサーバ114など)から、符号化ビットストリームを受信する。符号化ビットストリームは、コーディングされた単位(たとえば、スライス、ピクチャ、ピクチャグループ、シーケンスなど)の特性および/または処理を記述する値を有するシンタックス要素などの、G-PCCデコーダ300によっても使用されるG-PCCエンコーダ200によって定義されるシグナリング情報を含み得る。データコンシューマ118は、復号データを使う。たとえば、データコンシューマ118は、物理オブジェクトのロケーションを決定するのに、復号データを使ってよい。いくつかの例では、データコンシューマ118は、点群に基づいて像を提示するためのディスプレイを備えてよい。
【0043】
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つまたは複数の集積回路、マイクロプロセッサ、および/または他のタイプのデバイスを備えてよい。
【0044】
G-PCCエンコーダ200およびG-PCCデコーダ300は、ビデオ点群圧縮(V-PCC)規格またはジオメトリ点群圧縮(G-PCC)規格などのコーディング規格に従って動作してよい。本開示は、一般に、データを符号化または復号するプロセスを含めるように、ピクチャのコーディング(たとえば、符号化および復号)に言及することがある。符号化ビットストリームは、一般に、コーディング決定(たとえば、コーディングモード)を表すシンタックス要素のための一連の値を含む。
【0045】
本開示は、一般に、シンタックス要素などの特定の情報を「シグナリングすること」に言及する。「シグナリング」という用語は、一般に、シンタックス要素および/または符号化データを復号するために使用される他のデータのための値の通信を指すことがある。すなわち、G-PCCエンコーダ200は、ビットストリーム中でシンタックス要素のための値をシグナリングし得る。一般に、シグナリングすることは、ビットストリーム中で値を生成することを指す。上述のように、ソースデバイス102は、実質的にリアルタイムで、または、宛先デバイス116によって後で取り出すためにシンタックス要素を記憶デバイス112に記憶するときに行われ得るなど、リアルタイムではなく、ビットストリームを宛先デバイス116にトランスポートし得る。
【0046】
ISO/IEC MPEG(JTC1/SC29/WG11)は、現行の手法のものを大幅に超える圧縮能力をもつ点群コーディング技術の規格化に対する潜在的必要性を調査しており、規格を作成することを目指している。このグループは、この分野の専門家により提案されている圧縮技術の設計を評価するために、3-Dimensional Graphics Team(3DG)として知られている共同研究において、この調査活動に一緒に取り組んでいる。
【0047】
点群圧縮活動は、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 w19617、Teleconference、2021年7月において入手可能であり、コーデックの記述が、G-PCC Codec Description v11、ISO/IEC JTC1/SC29/WG7 N0099、Teleconference、2021年7月において入手可能である。
【0048】
点群は、3D空間中の点のセットを含み、点に関連付けられた属性を有してよい。属性は、R、G、BもしくはY、Cb、Crなどの色情報、または反射率情報、あるいは他の属性であってよい。点群は、LIDARセンサーおよび3Dスキャナなど、様々なカメラまたはセンサーによってキャプチャされてよく、コンピュータ生成されてもよい。点群データは、構築(モデリング)、グラフィックス(視覚化およびアニメーションのための3Dモデル)、ならびに自動車産業(ナビゲーションを助けるのに使われるLIDARセンサー)を含むが、それらに限定されない様々なアプリケーションにおいて使われる。
【0049】
点群データによって占有される3D空間は、仮想境界ボックスによって囲まれてよい。境界ボックス中での点の位置は、一定の精度で表されてよく、したがって、1つまたは複数の点の位置は、精度に基づいて量子化されてよい。最も小さいレベルにおいて、境界ボックスは、単位立方体によって表される、空間の最も小さい単位であるボクセルに分割される。境界ボックス中のボクセルは、ゼロ、1つ、または複数の点に関連付けられてよい。境界ボックスは、タイルと呼ばれ得る、複数の立方体/直方体領域に分割されてよい。各タイルは、1つまたは複数のスライスにコーディングされ得る。境界ボックスの、スライスおよびタイルへの区分は、各区分中の点の数に基づいて、または他の考慮すべき事項に基づいてよい(たとえば、特定の領域がタイルとしてコーディングされてよい)。スライス領域は、ビデオコーデックにおけるものと同様の分割決定を使って、さらに区分されてよい。
【0050】
点群データによって表される点群の中の点を決定するための1つの例示的なやり方は、回転し、レーザービームを出力するレーザーを用いるものである。センサーが、レーザーからの反射を検知し、反射に基づいて、点と、点についての属性データとを決定する。G-PCCエンコーダ200は、点群の中の点を決定するためのレーザーが回る量を決定してよく、レーザーが回る量を示す情報をシグナリングしてよい。G-PCCデコーダ300は、レーザーが回る量を示す情報を受信し、レーザーが回る量に基づいて点群を再構築し得る。
【0051】
上述したように、点群を符号化し、復号するための2つのツリー構造、すなわち、8分木構造および予測ツリー構造があり得る。ジオメトリツリータイプ(たとえば、geom_tree_typeシンタックス要素)は、8分木構造が使われるか、それとも予測ツリー構造が使われるかを示し得る(たとえば、geom_tree_type==0は8分木構造を意味し、geom_tree_type==1は予測ツリー構造を意味する)。8分木構造が使われる場合、点群は、8分木コーディングであるジオメトリツリータイプ用であってよい。予測ツリー構造が使われる場合、点群は、予測ツリーコーディングであるジオメトリツリータイプ用であってよい。
【0052】
8分木コーディングと予測ツリーコーディングの両方について、G-PCCエンコーダ200は、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定し得る。たとえば、8分木コーディングについて、レーザーが回る量を決定するために、G-PCCエンコーダ200は、一度の一回転における、レーザーによるレーザープローブの数を決定してもよい。つまり、G-PCCエンコーダ200は、一度の一回転においてレーザーによって生じたサンプルの数(たとえば、原点に位置する、回転システムのレーザーによって生じたサンプルの数)を決定してもよい。サンプルは、プローブと等価であってよい。サンプルの数は、点群の中の点であってよい。予測ツリーコーディングの場合、レーザーが回る量を決定するために、G-PCCエンコーダ200は、レーザーが回る方位角における単位変化を決定してもよい。たとえば、G-PCCエンコーダ200は、サンプルを生じるためのレーザーが進む方位角の量を決定してもよい。上で述べたように、サンプルの数は点群の中の点であってよい。
【0053】
1つまたは複数の例において、G-PCCエンコーダ200は、レーザーが回る量を示すシンタックス要素を生成し得る。ただし、シンタックス要素の値は、レーザーが回る実際の量に等しいのではなく、シンタックス要素の値は、レーザーが回る量未満の規定値であってよい。つまり、シンタックス要素を生成するために、G-PCCエンコーダ200は、レーザーが回る量から規定値を減算して、シンタックス要素の値を生成してもよい。一例として、規定値は1に等しい。
【0054】
たとえば、laser_phi_per_turnは、8分木コーディング用のレーザープローブの数を示し、geom_angular_azimuth_stepは、予測ツリーコーディングのための、レーザーが回る方位角における単位変化を示すと仮定する。1つまたは複数の例において、G-PCCエンコーダ200は、8分木コーディングのためのlaser_phi_per_turn_minus1(たとえば、laser_phi_per_turnマイナス1)を決定し、geom_angular_azimuth_step_minus1(たとえば、geom_angular_azimuth_stepマイナス1)を決定してよい。G-PCCエンコーダ200は次いで、シンタックス要素(たとえば、laser_phi_per_turn_minus1またはgeom_angular_azimuth_step_minus1)をシグナリングしてもよい。
【0055】
G-PCCデコーダ300は、点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信し得る。この例では、シンタックス要素の値は、レーザーが回る量未満の規定値である。たとえば、G-PCCデコーダ300は、laser_phi_per_turn_minus1またはgeom_angular_azimuth_step_minus1を受信し得る。
【0056】
G-PCCデコーダ300は、シンタックス要素に基づいて、レーザーが回る量を決定してよい。たとえば、シンタックス要素に基づいて、レーザーが回る量を決定するために、G-PCCデコーダ300は、シンタックス要素の値に規定値を加算してよい。例として、8分木コーディングの場合、一度の一回転における、レーザーによるレーザープローブの数を決定するために、G-PCCデコーダ300は、laser_phi_per_turn_minus1に1を加算してよい。別の例として、予測ツリーコーディングの場合、レーザーが回る方位角における単位変化を決定するために、G-PCCデコーダ300は、geom_angular_azimuth_step_minus1に1を加算してよい。
【0057】
G-PCCデコーダ300は、レーザーが回る決定された量に基づいて点群を再構築し得る。たとえば、G-PCCデコーダ300は、一度の一回転における、レーザーによるレーザープローブの決定された数に基づいて、点群を再構築してよい。別の例として、G-PCCデコーダ300は、レーザーが回る方位角での、決定された単位変化に基づいて、点群を再構築してよい。
【0058】
図2は、G-PCCエンコーダ200の概観を与える。図3は、G-PCCデコーダ300の概観を与える。図示されるモジュールは論理的であり、G-PCCコーデックの基準実装、すなわち、ISO/IEC MPEG(JTC 1/SC 29/WG 11)によって研究されるTMC13テストモデルソフトウェアにおいて実装されるコードに必ずしも1対1で対応するわけではない。
【0059】
G-PCCエンコーダ200とG-PCCデコーダ300の両方において、点群位置が最初にコーディングされる。属性コーディングは、復号されたジオメトリに依存する。図2および図3において、いくつかのモジュール(たとえば、図2の表面近似分析ユニット212およびRAHTユニット218ならびに図3の表面近似合成ユニット310およびRAHTユニット314)は、カテゴリ1データ用に通常は使われるオプションである。いくつかのモジュール(たとえば、図2のLOD生成ユニットLOD220およびリフティングユニット222ならびに図3のLOD生成ユニット316および逆リフティングユニット318)は、カテゴリ3データ用に通常は使われるオプションである。他のモジュールはすべて、カテゴリ1とカテゴリ3との間で共通である。
【0060】
カテゴリ3データの場合、圧縮されたジオメトリは通常、個々のボクセルのルートからリーフレベルまでの8分木として表される。カテゴリ1データの場合、圧縮されたジオメトリは通常、刈り込み8分木(すなわち、ボクセルよりも大きいブロックの、ルートからリーフレベルまでの8分木)に、刈り込み8分木の各リーフ内の表面に近似するモデルを加えたものによって表される。このようにして、カテゴリ1および3データの両方が、8分木コーディング機構を共有し、カテゴリ1データは、表面モデルをもつ各リーフ内のボクセルにさらに近似してよい。使われる表面モデルは、ブロックごとに1~10個の三角形を含む三角測量であり、三角形スープを生じる。カテゴリ1ジオメトリコーデックはしたがって、Trisoupジオメトリコーデックとして知られ、カテゴリ3ジオメトリコーデックは、8分木ジオメトリコーデックとして知られる。
【0061】
8分木の各ノードにおいて、その子ノード(最大8つのノード)のうちの1つまたは複数について占有がシグナリングされる(推論されないとき)。(a)現在の8分木ノードと面を共有するノード、(b)現在の8分木ノードと面、辺または頂点を共有するノード、などを含む複数の近隣が指定される。各近隣内で、ノードおよび/またはその子の占有は、現在のノードまたはその子の占有を予測するのに使われてよい。8分木のいくつかのノードにおいて過疎な点について、コーデックは、点の3D位置が直接符号化される直接コーディングモードもサポートする。直接モードがシグナリングされることを示すためのフラグがシグナリングされてよい。最も低いレベルにおいて、8分木ノード/リーフノードに関連付けられた点の数もコーディングされてよい。
【0062】
ジオメトリがコーディングされると、ジオメトリ点に対応する属性がコーディングされる。1つの再構築/復号されたジオメトリ点に対応する複数の属性点があるとき、再構築点を表す属性値が導出されてよい。
【0063】
G-PCCには、3つの属性コーディング方法、すなわち、領域適応階層変換(RAHT)コーディング、補間ベース階層最近傍予測(予測変換)、および更新/リフティングステップを用いる補間ベース階層最近傍予測(リフティング変換)がある。RAHTおよびリフティングは通常、カテゴリ1データ用に使われ、予測は通常、カテゴリ3データ用に使われる。ただし、いずれの方法がどのデータに対して使われてもよく、単にG-PCCにおけるジオメトリコーデックでのように、点群をコーディングするのに使われる属性コーディング方法はビットストリーム中で指定される。
【0064】
属性のコーディングは、ある詳細度(LOD)で執り行われてよく、各詳細度を用いて、点群属性のより精密な表現が取得され得る。各詳細度は、近隣ノードからの距離メトリックに基づいて、またはサンプリング距離に基づいて指定されてよい。
【0065】
G-PCCエンコーダ200において、属性向けのコーディング方法の出力として取得された残差が量子化される。量子化された残差は、コンテキスト適応算術コーディングを使ってコーディングされてよい。
【0066】
図2の例では、G-PCCエンコーダ200は、座標変換ユニット202、色変換ユニット204、ボクセル化ユニット206、属性転送ユニット208、8分木分析ユニット210、表面近似分析ユニット212、算術符号化ユニット214、ジオメトリ再構築ユニット216、RAHTユニット218、LOD生成ユニットLOD220、リフティングユニット222、係数量子化ユニット224、および算術符号化ユニット226を含み得る。
【0067】
図2の例に示すように、G-PCCエンコーダ200は、位置のセットおよび属性のセットを受信し得る。位置は、点群の中の点の座標を含み得る。属性は、点群の中の点に関連付けられた色など、点群の中の点についての情報を含み得る。
【0068】
座標変換ユニット202は、座標を初期ドメインから変換ドメインに変換するように、点の座標に変換を適用してよい。本開示では、変換された座標を変換座標と呼ぶ場合がある。色変換ユニット204は、属性の色情報を異なるドメインに変換するための変換を適用してよい。たとえば、色変換ユニット204は、色情報をRGB色空間からYCbCr色空間に変換してよい。
【0069】
さらに、図2の例では、ボクセル化ユニット206は、変換座標をボクセル化してよい。変換座標のボクセル化は、量子化と、点群のいくつかの点を除去することとを含み得る。言い換えると、点群の複数の点が単一の「ボクセル」内に包含されてよく、ボクセルはその後、いくつかの観点において1つの点として扱われてよい。さらに、8分木分析ユニット210が、ボクセル化された変換座標に基づいて8分木を生成し得る。さらに、図2の例では、表面近似分析ユニット212が点を分析して、点のセットの表面表現を決定する可能性がある。算術符号化ユニット214は、8分木および/または表面近似分析ユニット212によって決定された表面の情報を表すシンタックス要素をエントロピー符号化してよい。G-PCCエンコーダ200は、これらのシンタックス要素をジオメトリビットストリーム中で出力してよい。
【0070】
ジオメトリ再構築ユニット216は、8分木、表面近似分析ユニット212によって決定された表面を示すデータ、および/または他の情報に基づいて、点群の中の点の変換座標を再構築してよい。ジオメトリ再構築ユニット216によって再構築された変換座標の数は、ボクセル化および表面近似により、点群の点の元の数とは異なり得る。本開示では、得られた点を再構築点と呼ぶ場合がある。属性転送ユニット208は、点群の元の点の属性を、点群の再構築点へ転送してよい。
【0071】
さらに、RAHTユニット218は、RAHTコーディングを、再構築点の属性に適用してよい。代替または追加として、LOD生成ユニットLOD220およびリフティングユニット222が、LOD処理およびリフティングを、それぞれ、再構築点の属性に適用してよい。RAHTユニット218およびリフティングユニット222は、属性に基づいて係数を生成してよい。係数量子化ユニット224は、RAHTユニット218またはリフティングユニット222によって生成された係数を量子化してよい。算術符号化ユニット226は、量子化された係数を表すシンタックス要素に算術コーディングを適用してよい。G-PCCエンコーダ200は、これらのシンタックス要素を属性ビットストリーム中で出力してよい。
【0072】
本開示に記載する1つまたは複数の例によれば、G-PCCエンコーダ200は、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定し、レーザーが回る量を示すシンタックス要素を生成し得る。シンタックス要素の値は、レーザーが回る量未満の規定値であってよい。G-PCCエンコーダ200は、シンタックス要素をシグナリングし得る。シンタックス要素を生成するために、G-PCCエンコーダ200は、レーザーが回る量から規定値を減算して、シンタックス要素の値を生成してもよい。規定値は1に等しくてよい。
【0073】
一例として、レーザーが回る量を決定するために、G-PCCエンコーダ200は、(たとえば、8分木コーディングであるジオメトリツリータイプ用に)一度の一回転における、レーザーによるレーザープローブ(たとえば、一度の一回転においてレーザーによって生じたサンプル)の数を決定してもよい。G-PCCエンコーダ200は、レーザーサンプルの決定された数から1を減算し、得られた値を、シンタックス要素としてシグナリングして(たとえば、laser_phi_per_turn_minus1[i]をシグナリングして)よい。レーザープローブの数を決定することで、レーザーが回る量を示すことができる。G-PCCエンコーダ200が、レーザーが回る正確な量を決定する必要がなくてもよいが、レーザーが回る量をそこから決定することができる、レーザープローブの数を決定することは、G-PCCエンコーダ200が、レーザーが回る量を決定する例と見なされ得る。
【0074】
別の例として、レーザーが回る量を決定するために、G-PCCエンコーダ200は、(たとえば、予測ツリーコーディングであるジオメトリツリータイプ用に)レーザーが回る方位角における単位変化を決定してもよい。方位角における単位変化は、サンプルを生じるためにレーザーが進む方位角の量であってよい。G-PCCエンコーダ200は、方位角での決定された単位変化から1を減算し、得られた値を、シンタックス要素としてシグナリングして(たとえば、geom_angular_azimuth_step_minus1をシグナリングして)よい。
【0075】
図3の例では、G-PCCデコーダ300は、ジオメトリ算術復号ユニット302、属性算術復号ユニット304、8分木合成ユニット306、逆量子化ユニット308、表面近似合成ユニット310、ジオメトリ再構築ユニット312、RAHTユニット314、LOD生成ユニット316、逆リフティングユニット318、座標逆変換ユニット320、および色逆変換ユニット322を含み得る。
【0076】
G-PCCデコーダ300は、ジオメトリビットストリームおよび属性ビットストリームを取得し得る。デコーダ300のジオメトリ算術復号ユニット302は、ジオメトリビットストリーム中のシンタックス要素に算術復号(たとえば、コンテキスト適応型2値算術コーディング(CABAC)または他のタイプの算術復号)を適用してよい。同様に、属性算術復号ユニット304は、属性ビットストリーム中のシンタックス要素に算術復号を適用してよい。
【0077】
8分木合成ユニット306は、ジオメトリビットストリームから解析されたシンタックス要素に基づいて8分木を合成してよい。ジオメトリビットストリーム中で表面近似が使われる事例では、表面近似合成ユニット310は、ジオメトリビットストリームから解析されたシンタックス要素に基づいて、および8分木に基づいて、表面モデルを決定してよい。
【0078】
さらに、ジオメトリ再構築ユニット312は、点群の中の点の座標を決定するために、再構築を実施してよい。座標逆変換ユニット320は、点群の中の点の再構築座標(位置)を変換ドメインから初期ドメインにコンバートし戻すように、再構築座標に逆変換を適用してよい。
【0079】
さらに、図3の例では、逆量子化ユニット308は属性値を逆量子化し得る。属性値は、属性ビットストリームから取得されたシンタックス要素(たとえば、属性算術復号ユニット304によって復号されたシンタックス要素を含む)に基づき得る。
【0080】
属性値がどのように符号化されるかに依存して、RAHTユニット314は、逆量子化された属性値に基づいて、点群の点についての色値を決定するために、RAHTコーディングを実施してよい。代替として、LOD生成ユニット316および逆リフティングユニット318が、詳細度ベースの技法を使って、点群の点についての色値を決定してよい。
【0081】
さらに、図3の例では、色逆変換ユニット322は、色値に色逆変換を適用してよい。逆色変換は、エンコーダ200の色変換ユニット204によって適用される色変換の逆であってよい。たとえば、色変換ユニット204は、色情報をRGB色空間からYCbCr色空間に変換してよい。したがって、逆色変換ユニット322は、色情報をYCbCr色空間からRGB色空間に変換してよい。
【0082】
本開示に記載する1つまたは複数の例によれば、G-PCCデコーダ300は、点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信し得る。シンタックス要素の値は、レーザーが回る量未満の規定値であってよい。G-PCCデコーダ300は、シンタックス要素に基づいて、レーザーが回る量を決定し、レーザーが回る決定された量に基づいて点群を再構築してよい。シンタックス要素に基づいて、レーザーが回る量を決定するために、G-PCCデコーダ300は、シンタックス要素の値に規定値を加算してよい。規定値は1に等しくてよい。
【0083】
一例として、レーザーが回る量を決定するために、G-PCCデコーダ300は、(たとえば、8分木コーディングであるジオメトリツリータイプ用に)一度の一回転における、レーザーによるレーザープローブ(たとえば、一度の一回転においてレーザーによって生じたサンプル)の数を決定してもよい。G-PCCデコーダ300は、受信したシンタックス要素の値(たとえば、laser_phi_per_turn_minus1[i])に1を加算して、レーザープローブの数を決定してもよい。上述したように、レーザープローブの数を決定することで、レーザーが回る量を示すことができる。G-PCCデコーダ300が、レーザーが回る正確な量を決定する必要はなくてよいが、レーザーが回る量をそこから決定することができる、レーザープローブの数を決定することは、G-PCCデコーダ300が、レーザーが回る量を決定する例と見なされ得る。
【0084】
別の例として、レーザーが回る量を決定するために、G-PCCデコーダ300は、(たとえば、予測ツリーコーディングであるジオメトリツリータイプ用に)レーザーが回る方位角における単位変化を決定してもよい。方位角における単位変化は、サンプルを生じるためにレーザーが進む方位角の量であってよい。G-PCCデコーダ300は、受信したシンタックス要素の値(たとえば、geom_angular_azimuth_step_minus1)に1を加算して、方位角における単位変化を決定してもよい。
【0085】
図2および図3の様々なユニットは、エンコーダ200およびデコーダ300によって実施される動作を理解するのを助けるために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。固定機能回路は、特定の機能性を提供する回路を指し、実施され得る動作に対してプリセットされる。プログラマブル回路は、様々なタスクを実施するようにプログラムされ得る回路を指し、実施され得る動作において柔軟な機能性を提供する。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義された方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は(たとえば、パラメータを受信するまたはパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは概して不変である。いくつかの例では、ユニットのうちの1つまたは複数はそれぞれに異なる回路ブロック(固定機能またはプログラマブル)であってよく、いくつかの例では、ユニットのうちの1つまたは複数は集積回路であってよい。
【0086】
以下でより詳しく説明するように、G-PCCのための高レベルシンタックスは、G-PCCエンコーダ200およびG-PCCデコーダ300の動作における技術的利益または高レベルシンタックスの何らかの洗練/改良での帯域幅消費の削減があり得る複数の側面を有する。たとえば、本開示は、冗長性を排除し、G-PCCの高レベルシンタックスを洗練するための例について記載する。以下の例示的技法は、単独で利用されてよく、または組み合わせて使われてよい。
【0087】
以下では、<ADD>...</ADD>の間のテキストは、シンタックス構造に追加されるテキストを示す。<DELETE>...</DELETE>の間のテキストは、シンタックス構造から削除されるテキストを示す。
【0088】
以下では、laser_phi_per_turn[0]向けの最小値を記述する。現在、方位コーディング(たとえば、8分木コーダを使う)が、一度の一回転におけるレーザープローブの数を定義する。シンタックスlaser_phi_per_turn[0]は、レーザー0に対するプローブの数を示す。laser_phi_per_turn[0]についての対応する値は、ゼロでではあり得ない(ゼロは方位コーディングの使用を取り消すことになるので)。1つまたは複数の例において、以下のシンタックス構造に示すように、laser_phi_per_turn[0]ではなく、i=0についてのlaser_phi_per_turn_minus1[0]を、G-PCCエンコーダ200はシグナリングしてよく、G-PCCデコーダ300は受信してよい。
【0089】
【表1】
【0090】
その上、いくつかの例では、特定の方位角方向での走査を示すことになり、方位角コーディングの有効性を取り消すことになるので、レーザープローブの数を示すために1の値をシグナリングすることが記述可能でなくてよい。その場合、代わりに、i=0についてのlaser_phi_per_turn_minus2[0]をシグナリングすることも可能である。この場合、すべての他のレーザーに対して2という最小値を有するビットストリーム適合に対する以下の更新があってよい。<ADD>i=1..number_lasers_minus1に対して、LaserPhiPerTurn[i]の値が2未満であってはならないことが、ビットストリーム適合の要件である。</ADD>。
【0091】
以下では、geom_angular_azimuth_step向けの最小値および最大値を記述する。geom_angular_azimuth_stepは、方位角における単位変化を指定する。角度予測ツリーコーディングにおいて使われる微分予測残差は、geom_angular_azimuth_stepの倍数として部分的に表され得る。単位が方位角において変化する最小値は1であってよく、したがって、代わりに「_minus1」を、G-PCCエンコーダ200はシグナリングしてよく、G-PCCデコーダ300は解析してよい。その上、ビットストリーム適合を有することも提案される。geom_angular_azimuth_step_<ADD>minus1</ADD>の値は、(1<<geom_angular_azimuth_scale_log2) - 1を超えてはならないことが、ビットストリーム適合の要件である。
【0092】
【表2】
【0093】
代替として、シンタックスを修正することなく、最小値と最大値の両方に対して、ビットストリーム適合を有することも可能である。<ADD>geom_angular_azimuth_stepの値は1~(1<<geom_angular_azimuth_scale_log2)の範囲内でなければならないことが、ビットストリーム適合の要件である</ADD>。
【0094】
以下では、ビット単位占有フラグおよび平面モードに関する技法について記述する。G-PCCでは、1に等しいbitwise_occupancy_coding_flagは、ジオメトリノード占有が、シンタックス要素occupancy_mapのビット単位コンテキスト化を使って符号化されることを示す。0に等しいbitwise_occupancy_coding_flagは、ジオメトリノード占有が、辞書符号化シンタックス要素occupancy_byteを使って符号化されることを示す。
【0095】
ただし、現在、平面モードが有効にされていると、バイト単位コーディングが不適合なので、ビット単位コーディングを実施するための要件があり得る。1つまたは複数の例において、平面モードが無効にされているときのみ、ビット単位占有フラグを、G-PCCエンコーダ200はシグナリングしてよく、G-PCCデコーダ300は解析してよく、平面モードが有効にされているとき、ビット単位占有フラグは1であると推論され、したがって、シグナリングされることは必要でない。対応するシンタックスおよびセマンティクス変更は、以下の通りである。
【0096】
【表3】
【0097】
1に等しいbitwise_occupancy_coding_flagは、ジオメトリノード占有が、シンタックス要素ocupancy_mapのビット単位コンテキスト化を使って符号化されることを示す。0に等しいbitwise_occupancy_coding_flagは、ジオメトリノード占有が、辞書符号化シンタックス要素occupancy_byteを使って符号化されることを示す。bitwise_occupancy_coding_flagは、ビットストリーム中に存在しないとき、1であると推論される。
【0098】
いくつかの例では、1に等しいgeometry_planar_enabled_flagは、平面コーディングモードがアクティブ化されていることを示す、などのビットストリーム適合チェックがあり得る。0に等しいgeometry_planar_enabled_flagは、平面コーディングモードがアクティブ化されていないことを示す。<ADD>geometry_planar_enabled_flagの値が1に等しいとき、bitwise_occupancy_coding_flagの値は1でなければならないことが、ビットストリーム適合の要件である</ADD>。
【0099】
以下の説明は、geom_angular_originのコーディングに関する。geom_angular_origin_xyz[k]は、角度コーディングモードの処理において使われる原点の(x,y,z)座標の第kの成分を指定する。存在しないとき、geom_angular_origin_x、geom_angular_origin_y、およびgeom_angular_origin_zは、0であると推論される。
【0100】
ただし、典型的なケースでは、原点値は十分大きくてよく、se(v)コーディングは最適でない場合がある。1つまたは複数の例において、G-PCCエンコーダ200およびG-PCCデコーダ300は、ビットの数マイナス1がシグナリングされる固定長コードを(たとえば、符号化または復号するために)使ってよい。
【0101】
【表4】
【0102】
<ADD>geom_angular_origin_bits_minus1</ADD>プラス1は、シンタックス要素geom_angular_origin_xyz[k]を表すのに使われるビットの数を指定する。
【0103】
たとえば、レーザーが回る量を示すのに使われるシンタックス要素は第1のシンタックス要素であると仮定する。G-PCCエンコーダ200は、点群データの第3のシンタックス要素を表すのに使われるビットの数を示す点群データの第2のシンタックス要素を符号化し得る。点群データの第3のシンタックス要素は、角度コーディングモードの処理において使われる原点の座標を示す。G-PCCエンコーダ200は、第3のシンタックス要素を固定長符号化し得る。
【0104】
たとえば、G-PCCエンコーダ200は、geom_angluar_origin_bits_minus1(たとえば、上の例の第2のシンタックス要素)を符号化してよく、これは、geom_angular_origin_xyz[k](たとえば、上の例での第3のシンタックス要素)を生成するのに使われるビットの数を示す。この例では、G-PCCエンコーダ200は、geom_angular_origin_xyz[k]を固定長符号化し得る。
【0105】
同様に、G-PCCデコーダ300は、点群データの第3のシンタックス要素を表すのに使われるビットの数を示す点群データの第2のシンタックス要素を復号し得る。点群データの第3のシンタックス要素は、角度コーディングモードの処理において使われる原点の座標を示す。G-PCCデコーダ300は、第3のシンタックス要素を固定長復号し得る。
【0106】
たとえば、G-PCCデコーダ300は、geom_angular_origin_bits_minus1(たとえば、上の例の第2のシンタックス要素)を復号してよく、これは、geom_angular_origin_xyz[k](たとえば、上の例での第3のシンタックス要素)を生成するのに使われるビットの数を示す。この例では、G-PCCデコーダ300は、geom_angular_origin_xyz[k]を固定長復号し得る。
【0107】
以下では、スライスヘッダ中のtrisoupノードサイズのコーディングに関する例について記述する。現在、trisoupコーディング用に、trisoupが有効にされているかどうかを示すためのジオメトリパラメータセット(GPS)レベルフラグがある。trisoupが有効にされている場合、スライス/データユニットヘッダレベルにおいて、trisoupノードサイズlog2がシグナリングされる。シンタックスおよびセマンティクスは、次のようになる。
【0108】
1に等しいtrisoup_enabled_flagは、ビットストリーム中でtrisoupコーディングが使われると指定する。0に等しいtrisoup_enabled_flagは、ビットストリーム中でtrisoupコーディングが使われないと指定する。存在しないとき、trisoup_enabled_flagの値は0であると推論される。
【0109】
【表5】
【0110】
log2_trisoup_node_sizeは、三角形ノードのサイズとして、変数TrisoupNodeSizeを、以下のように指定する。存在しないとき、log2_trisoup_node_sizeの値は0に等しいと推論される。
TrisoupNodeSize=1<<log2_trisoup_node_size
【0111】
【表6】
【0112】
ただし、trisoupがGPSから有効にされている場合、log2_trisoup_node_sizeはゼロでなくてよい。したがって、代わりに「_minus1」を、G-PCCエンコーダ200はシグナリングしてよく、G-PCCデコーダ300は解析してよい。修正されたシンタックスおよびセマンティクスは、次のようになる。
【0113】
【表7】
【0114】
log2_trisoup_node_size_minus1プラス1は、三角形ノードのサイズとして、変数TrisoupNodeSizeを以下のように指定する。存在しないとき、TrisoupNodeSizeの値は1に等しいと推論される。TrisoupNodeSize=1<<(log2_trisoup_node_size_minus1+1)
【0115】
いくつかの例では、log2_trisoup_node_size=0を有することが可能な場合、log2_trisoup_node_size>0のとき、trisoup関連シンタックス要素を、G-PCCエンコーダ200はシグナリングしてよく、G-PCCデコーダ300は解析してよい。
【0116】
【表8】
【0117】
以下では、レーザー内在物(intrinsics)を、シーケンスパラメータセット(SPS)など、ジオメトリパラメータセット(GPS)以外のパラメータセットに移すことについて記述する。現在、レーザー内在物は、GPSの中でシグナリングされ、GPS中のすべてのシンタックスパラメータの中でほとんどのシグナリングコストを有する。ただし、レーザー内在物は、シーケンスレベルプロパティであってよい。たとえば、シーケンスがLiDARシステムでキャプチャされるとき、レーザー内在物は、異なるフレームにわたって同じである見込みがある。いくつかの例では、レーザー内在物をシーケンスレベル情報として使うことが可能な場合があり、したがってレーザー内在物は、SPSに移されてよい。いくつかの例では、多重GPSは、(たとえば、フレームにわたるQP変更により)送られる必要がある場合、レーザー内在物がGPSの一部でなくてよいので、より安く(たとえば、より帯域幅集約的でなく)なり得る。シンタックスおよびセマンティクスの変更は、次のようになる。
【0118】
【表9A】
【0119】
【表9B】
【0120】
【表9C】
【0121】
【表10A】
【0122】
【表10B】
【0123】
【表10C】
【0124】
<ADD>1に等しいsps_laser_intrinsics_present_flagは、レーザー内在物がビットストリーム中に存在することを示す。0に等しいsps_laser_intrinsics_present_flagは、レーザー内在物がビットストリーム中に存在しないことを示す</ADD>。
【0125】
<ADD>1に等しいlaser_phi_per_turn_present_flagは、回転検知システムの異なるレーザーによって生じたサンプルの数の情報がビットストリーム中に存在することを示す。0に等しいlaser_phi_per_turn_present_flagは、そのような情報が存在しないことを示す。</ADD>。GPS中に存在する他のパラメータの意味論的意味は変わらなくてよい。
【0126】
いくつかの例では、角度モードがGPSから有効にされると、レーザー情報は、ビットストリーム中に存在する必要があり得る。8分木コーディングが有効にされると、laser_phi_per_turn_presentフラグは、1に等しくてよい(たとえば、等しくなければならない)。ビットストリーム適合は、以下のように提示されてよい。<ADD>geometry_angular_enabled_flagの値が1に等しいとき、sps_laser_intrinsics_present_flagの値は1に等しくなければならないことが、ビットストリーム適合の要件である。geometry_angular_enabled_flagの値が1に等しく、geom_tree_typeの値が1に等しいとき、laser_phi_per_turn_present_flagの値は1に等しくなければならないことが、ビットストリーム適合の要件である</ADD>。
【0127】
何らかのプロファイルが角度モードをサポートしなくてよいので、sps_laser_intrinsics_present_flagの値は、プロファイルを条件としてもよく(または代替として、ビットストリーム適合が課されてよい)、したがって、そのようなレーザー内在物は有用でない場合がある。
【0128】
いくつかの例では、レーザー内在パラメータのリストは、SPS中でシグナリングされてよく、レーザー内在パラメータのリストへのインデックスは、どのレーザー内在パラメータが現在のGPSに該当するかを指定するように、GPS中でシグナリングされてよい。複数のレーザー内在パラメータがSPS中でシグナリングされると、あるセット向けのパラメータについてシグナリングされる値は、第2のセットのパラメータから導出されてよい。たとえば、Param1およびParam2が、SPS中でシグナリングされるレーザー内在パラメータのセットである場合、Param2の値は、Param1中の対応するパラメータによってデルタコーディングされてよい。
【0129】
以下では、球面座標コンバージョンのためのスケーリングの最小値について記述する。球面座標コンバージョンが属性コーディング用に有効にされると、すべての3つの軸についてのスケール値がシグナリングされる。最小スケーリング値は1であってよい。したがって、代わりに「_minus1」を、G-PCCエンコーダ200はシグナリングしてよく、G-PCCデコーダ300は解析してよい。シンタックスおよびセマンティクス修正は、次のようになる。
【0130】
【表11】
【0131】
いくつかの軸に対するスケーリング値が0であることが許される場合、スケール値のすべてがゼロに等しくなくてもよい。したがって、ビットストリーム適合が課されてよい。<ADD>attr_spherical_coord_conv_scale[0]、attr_spherical_coord_conv_scale[1]およびattr_spherical_coord_conv_scale[2]は、すべてが0に等しくなってはならないことが、ビットストリーム適合の要件である。</ADD>。
【0132】
以下では、予測ジオメトリコーディングのためのabs_log2_bitsの最小値について記述する。ptn_residual_abs_log2_bits_s、ptn_residual_abs_log2_bits_delta_t、およびptn_residual_abs_log2_bits_delta_vは合わせて、シンタックス要素ptn_residual_abs_log2をコーディングするのに使われるビンの数を指定する。
【0133】
配列PtnResidualAbsLog2Bitsは、以下のように導出される。
PtnResidualAbsLog2Bits[0]=ptn_residual_abs_log2_bits_s
PtnResidualAbsLog2Bits[1]=ptn_residual_abs_log2_bits_delta_t+PtnResidualAbsLog2Bits[0]
PtnResidualAbsLog2Bits[2]=ptn_residual_abs_log2_bits_delta_v+PtnResidualAbsLog2Bits[1]
【0134】
以下は、PtnResidualAbsLog2Bits[1]およびPtnResidualAbsLog2Bits[2]が正の値を有するためのビットストリーム適合の例である。
【0135】
<ADD>PtnResidualAbsLog2Bits[1]とPtnResidualAbsLog2Bits[2]の両方が、0よりも大きくなければならないことが、ビットストリーム適合の要件である</ADD>。その場合、ゼロの値が許される。<ADD>PtnResidualAbsLog2Bits[1]とPtnResidualAbsLog2Bits[2]の両方が0未満あってはならないことが、ビットストリーム適合の要件である</ADD>。
【0136】
以下では、座標コンバージョンにおける属性位置スケーリングについて記述する。属性をコーディングするために球面座標コンバージョンが使われるとき、各座標について、座標スケール値が、以下のようにシグナリングされる。G-PCC仕様の最新の草案は、以下のようなシグナリングを有する。
【0137】
【表12】
【0138】
シンタックス要素のセマンティクスは、以下の通りである。attr_coord_conv_scale_bits_minus1[k]プラス1は、シンタックス要素attr_coord_conv_scale[k]のビット長であり、attr_coord_conv_scale[k]は、コンバートされた座標軸のスケール因子を、2~8の単位で指定する。
【0139】
座標コンバージョンスケール値は、以下のように使われ、8.3.3.2スケーリング球面座標の一部であってよい。
XXXはAttrPosをスケーリングする。
geom_tree_typeが0に等しいとき、配列minSphは以下のように導出される。
for(k=0;k<3;k++){
minSph[k]=PointSph[0][k]
for(i=1;i<PointCount;i++)
minSph[k]=Min(minSph[k],PointSph[i][k])
}
それ以外(1に等しいgeom_tree_type)の場合、配列minSphは以下のように初期化される。
minSph[0]=0
minSph[1]=-(1<<geom_angular_azimuth_scale_log2_minus11+10)
minSph[2]=0
最後に、AttrPos[i][k]は、以下のように導出される。
for(i=0;i<PointCount;i++)
for(k=0;k<3;k++){
relPos=Max(0,PointSph[i][k]-minSph[k])
AttrPos[i][k]=relPos×attr_coord_conv_scale[k]+128>>8
}
【0140】
attr_coord_conv_scale[]値は、最大で32ビットであってよく、「relPos×attr_coord_conv_scale[k]+128>>8」の結果(またはその算出における中間値)は、32ビットを超えてよい。いくつかの例では、ジオメトリ計算を32ビット以内に保つことが望ましい場合があり、というのは、一時変数/中間結果に対してであっても、32ビットを超えると、球面座標コンバージョンを実装するコストおよび複雑さが増し得るからである。
【0141】
いくつかの例では、AttrPos[i][k]の値または中間値(たとえば、relPos×attr_coord_conv_scale[k]+128)を32ビットにクリップすることが可能であり得る。いくつかの例では、AttrPos[i][k]の値または中間値(たとえば、relPos×attr_coord_conv_scale[k]+128)が固定値(たとえば、232-1)以下であることを要することが可能であり得る。この制約に違反するビットストリームは、不適合と見なされ、またはいくつかのケースでは、G-PCCデコーダ300によって無視されてよい。
【0142】
たとえば、G-PCCエンコーダ200は、32ビットを超えない、球面座標コンバージョンにおける属性位置に関連付けられた値を決定するように構成されてよい。たとえば、AttrPos[i][k]または中間値は、32ビットを超えるビット深度を有するものではない。一例として、値を決定するために、G-PCCエンコーダ200は、32ビット以下になるように値をクリップすること、および値のビット深度が32ビット以下であると定義する点群圧縮規格に準拠して、値を生成する(たとえば、値がG-PCC規格に適合するように値を生成する)ことのうちの少なくとも1つを行うように構成されてよい。
【0143】
同様に、G-PCCデコーダ300は、32ビットを超えない、球面座標コンバージョンにおける属性位置に関連付けられた値を決定するように構成されてよい。上記と同じように、AttrPos[i][k]または中間値は、32ビットを超えるビット深度を有するものではない。一例として、値を決定するために、G-PCCデコーダ300は、32ビット以下になるように値をクリップすること、および値のビット深度が32ビット以下であると定義する点群圧縮規格に準拠して、値を受信する(たとえば、G-PCC規格に適合する値を受信する)ことのうちの少なくとも1つを行うように構成されてよい。
【0144】
図4は、点群データを符号化する例を示すフローチャートである。図4の例は、点群データを符号化するためのデバイスによって実施されてよい。デバイスの例は、ソースデバイス102またはG-PCCエンコーダ200を含む。デバイスは、点群データを記憶するように構成されたメモリを含む。メモリの例は、メモリ106またはG-PCCエンコーダ200のメモリを含む。デバイスは、メモリに結合された1つまたは複数のプロセッサも含む。1つまたは複数のプロセッサは、G-PCCエンコーダ200を含む、ソースデバイス102の1つまたは複数のプロセッサであってよい。別の例として、1つまたは複数のプロセッサは、G-PCCエンコーダ200のプロセッサであってよい。1つまたは複数のプロセッサは、固定機能および/またはプログラム可能回路構成を含み得る。
【0145】
1つまたは複数のプロセッサ(たとえば、G-PCCエンコーダ200)は、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定する(400)ように構成されてよい。一例として、レーザーが回る量を決定するために、G-PCCエンコーダ200の1つまたは複数のプロセッサは、一度の一回転における、レーザーによるレーザープローブの数を決定するように構成されてよい。G-PCCエンコーダ200の1つまたは複数のプロセッサは、8分木コーディングであるジオメトリツリータイプ(たとえば、geom_tree_type==0)について、一度の一回転における、レーザーによるレーザープローブの数を決定し得る。レーザーの一度の一回転における、レーザーによるレーザープローブの数は、原点に位置する回転検知システムのレーザーによって生じたサンプルの数を指し得る。
【0146】
別の例として、レーザーが回る量を決定するために、G-PCCエンコーダ200の1つまたは複数のプロセッサは、レーザーが回る方位角における単位変化を決定し得る。G-PCCエンコーダ200の1つまたは複数のプロセッサは、予測ジオメトリコーディングであるジオメトリツリータイプ(たとえば、geom_tree_type==1)について、レーザーが回る方位角における単位変化を決定し得る。レーザーが回る方位角における単位変化は、サンプルを生じるためのレーザーが進む方位角の量であってよい。
【0147】
G-PCCエンコーダ200の1つまたは複数のプロセッサは、レーザーが回る量を示すシンタックス要素を生成してよく、ここで、シンタックス要素の値は、レーザーが回る量未満の規定値である(402)。たとえば、シンタックス要素を生成するために、G-PCCエンコーダ200の1つまたは複数のプロセッサは、レーザーが回る量から規定値を減算して、シンタックス要素の値を生成してよい。規定値は1に等しくてよい。シンタックス要素の一例は、laser_phi_per_turn_minus1(たとえば、8分木コーディング用)である。シンタックス要素の別の例は、geom_angular_azimuth_step_minus1(たとえば、予測ジオメトリコーディング用)である。
【0148】
G-PCCエンコーダ200の1つまたは複数のプロセッサは、シンタックス要素をシグナリングし得る(404)。たとえば、G-PCCエンコーダ200の1つまたは複数のプロセッサは、ジオメトリツリータイプが8分木コーディングであるか、それとも予測ジオメトリコーディング(予測ツリーコーディングともいう)であるかに基づいて、laser_phi_per_turn_minus1またはgeom_angular_azimuth_step_minus1をシグナリングしてよい。
【0149】
図5は、点群データを復号する例を示すフローチャートである。図5の例は、点群データを復号するためのデバイスによって実施されてよい。デバイスの例は、宛先デバイス116またはG-PCCデコーダ300を含む。デバイスは、点群データを記憶するように構成されたメモリを含む。メモリの例は、メモリ120またはG-PCCデコーダ300のメモリを含む。デバイスは、メモリに結合された1つまたは複数のプロセッサも含む。1つまたは複数のプロセッサは、G-PCCデコーダ300を含む、宛先デバイス116の1つまたは複数のプロセッサであってよい。別の例として、1つまたは複数のプロセッサは、G-PCCデコーダ300のプロセッサであってよい。1つまたは複数のプロセッサは、固定機能および/またはプログラム可能回路構成を含み得る。
【0150】
G-PCCデコーダ300の1つまたは複数のプロセッサは、点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信してよく、ここで、シンタックス要素の値は、レーザーが回る量未満の規定値である(500)。たとえば、G-PCCデコーダ300の1つまたは複数のプロセッサは、laser_phi_per_turn_minus1シンタックス要素またはgeom_angular_azimuth_step_minus1シンタックス要素を受信し得る。
【0151】
G-PCCデコーダ300の1つまたは複数のプロセッサは、シンタックス要素に基づいて、レーザーが回る量を決定し得る(502)。たとえば、シンタックス要素に基づいて、レーザーが回る量を決定するために、G-PCCデコーダ300の1つまたは複数のプロセッサは、シンタックス要素の値に規定値を加算してよい。ある例では、規定値は1であってよい。
【0152】
一例として、レーザーが回る量を決定するために、G-PCCデコーダ300の1つまたは複数のプロセッサは、一度の一回転における、レーザーによるレーザープローブの数を決定するように構成されてよい。G-PCCデコーダ300の1つまたは複数のプロセッサは、8分木コーディングであるジオメトリツリータイプ(たとえば、geom_tree_type==0)について、一度の一回転における、レーザーによるレーザープローブの数を決定し得る。レーザーの一度の一回転における、レーザーによるレーザープローブの数は、原点に位置する回転検知システムのレーザーによって生じたサンプルの数を指し得る。
【0153】
別の例として、レーザーが回る量を決定するために、G-PCCデコーダ300の1つまたは複数のプロセッサは、レーザーが回る方位角における単位変化を決定し得る。G-PCCデコーダ300の1つまたは複数のプロセッサは、予測ジオメトリコーディングであるジオメトリツリータイプ(たとえば、geom_tree_type==1)について、レーザーが回る方位角における単位変化を決定し得る。レーザーが回る方位角における単位変化は、サンプルを生じるためのレーザーが進む方位角の量であってよい。
【0154】
G-PCCデコーダ300の1つまたは複数のプロセッサは、レーザーが回る決定された量に基づいて点群を再構築し得る(504)。たとえば、laser_phi_per_turn_minus1シンタックス要素またはgeom_angular_azimuth_step_minus1シンタックス要素は、レーザーに関連付けられた回転の量を示す(たとえば、3D環境におけるスピニングLiDAR走査)。レーザーに関連付けられた回転の量は、点群の中の点がどこに位置するかを示してよく、したがって、点群を再構築するために使用可能であり得る。
【0155】
以下では、別々に、またはどのような組合せで一緒に実施されてもよい、技法のいくつかの例を挙げる。
【0156】
条項1A. 点群データを復号する方法であって、方法は、レーザープローブの数を示すシンタックス要素を受信するステップであって、シンタックス要素の値は、レーザープローブの数未満の規定値である、ステップと、受信されたシンタックス要素に基づいて、点群データを復号するステップとを含む。
【0157】
条項2A. 点群データを符号化する方法であって、方法は、点群データを符号化するためのレーザープローブの数を決定するステップと、レーザープローブの数を示すシンタックス要素をシグナリングするステップであって、シンタックス要素の値は、レーザープローブの数未満の規定値である、ステップとを含む。
【0158】
条項3A. 規定値は1または2のうちの1つである、条項1Aおよび2Aのいずれかの方法。
【0159】
条項4A. 点群データを復号する方法であって、方法は、方位角における単位変化を示すシンタックス要素を受信するステップであって、シンタックス要素の値は、方位角における単位変化未満の規定値である、ステップと、受信されたシンタックス要素に基づいて、点群データを復号するステップとを含む。
【0160】
条項5A. 点群データを符号化する方法であって、方法は、点群データを符号化するための、方位角における単位変化を決定するステップと、方位角における単位変化を示すシンタックス要素をシグナリングするステップであって、シンタックス要素の値は、方位角における単位変化未満の規定値である、ステップとを含む。
【0161】
条項6A. 規定値は1である、条項4Aおよび5Aのいずれかの方法。
【0162】
条項7A. 点群データを復号する方法であって、方法は、第1のインスタンスにおいて、点群データを復号するための平面モードが無効にされていると決定するステップと、第1のインスタンスにおいて、ビット単位コンテキスト化を使って、ジオメトリノード占有が符号化されているかどうかを示すシンタックス要素を解析するステップと、第2のインスタンスにおいて、点群データを復号するための平面モードが有効にされていると決定するステップと、第2のインスタンスにおいて、解析することなく、ビット単位コンテキスト化を使って、ジオメトリノード占有が符号化されているかどうかを推論するステップとを含む。
【0163】
条項8A. 点群データを符号化する方法であって、方法は、第1のインスタンスにおいて、点群データを復号するための平面モードが無効にされていると決定するステップと、第1のインスタンスにおいて、ビット単位コンテキスト化を使って、ジオメトリノード占有が符号化されているかどうかを示すシンタックス要素をシグナリングするステップと、第2のインスタンスにおいて、点群データを復号するための平面モードが有効にされていると決定するステップと、第2のインスタンスにおいて、ビット単位コンテキスト化を使って、ジオメトリノード占有が符号化されているかどうかを示すシンタックス要素を迂回シグナリングするステップとを含む。
【0164】
条項9A. 点群データを復号する方法であって、方法は、角度コーディングモードの処理において使われる原点の座標を示す点群データの第2のシンタックス要素を表すのに使われるビットの数を示す点群データの第1のシンタックス要素を固定長復号するステップを含む。
【0165】
条項10A. 点群データを符号化する方法であって、方法は、角度コーディングモードの処理において使われる原点の座標を示す点群データの第2のシンタックス要素を表すのに使われるビットの数を示す点群データの第1のシンタックス要素を固定長符号化するステップを含む。
【0166】
条項11A. 点群データを復号する方法であって、方法は、三角形ノードのサイズを示すシンタックス要素を受信するステップであって、シンタックス要素の値は、三角形ノードのサイズ未満の規定値である、ステップと、受信されたシンタックス要素に基づいて、点群データを復号するステップとを含む。
【0167】
条項12A. 点群データを符号化する方法であって、方法は、点群データを符号化するための三角形ノードのサイズを決定するステップと、三角形ノードのサイズを示すシンタックス要素をシグナリングするステップであって、シンタックス要素の値は、方位角における単位変化未満の規定値である、ステップとを含む。
【0168】
条項13A. 点群データを復号する方法であって、方法は、ジオメトリパラメータセット以外のパラメータセットの中で、ビットストリーム中にレーザー内在物が存在するかどうかを示すシンタックス要素を解析するステップを含む。
【0169】
条項14A. 点群データを符号化する方法であって、方法は、ジオメトリパラメータセット以外のパラメータセットの中で、ビットストリーム中にレーザー内在物が存在するかどうかを示すシンタックス要素をシグナリングするステップを含む。
【0170】
条項15A. パラメータセットはシーケンスパラメータセットを含む、条項13および14のいずれかの方法。
【0171】
条項16A. 点群データを復号する方法であって、方法は、球面座標コンバージョンのためのスケーリング因子値を示すシンタックス要素を受信するステップであって、シンタックス要素の値は、スケーリング因子値未満の規定値である、ステップと、受信されたシンタックス要素に基づいて、点群データを復号するステップとを含む。
【0172】
条項17A. 点群データを符号化する方法であって、方法は、点群データを符号化するためのスケーリング因子値を決定するステップと、スケーリング因子値を示すシンタックス要素をシグナリングするステップであって、シンタックス要素の値は、スケーリング因子値未満の規定値である、ステップとを含む。
【0173】
条項18A. 規定値は1である、条項16および17のいずれかの方法。
【0174】
条項19A. 点群データを復号するためのデバイスであって、デバイスは、点群データを記憶するように構成されたメモリと、メモリに結合され、条項1A、3A、4A、6A、7A、9A、11A、13A、15A、16A、および18Aのうちのいずれか1つまたはそれらの組合せ、の方法を実施するように構成された処理回路構成とを備える。
【0175】
条項20A. 点群に基づいて像を提示するためのディスプレイをさらに備える、条項19Aのデバイス。
【0176】
条項21A. 点群データを符号化するためのデバイスであって、デバイスは、点群データを記憶するように構成されたメモリと、メモリに結合され、条項2A、3A、5A、6A、8A、10A、12A、14A、15A、17A、および18Aのうちのいずれか1つまたはそれらの組合せ、の方法を実施するように構成された処理回路構成とを備える。
【0177】
条項22A. 点群を生成するためのデバイスをさらに備える、条項21Aのデバイス。
【0178】
条項23A. 点群データを復号するためのデバイスであって、デバイスは、条項1A、3A、4A、6A、7A、9A、11A、13A、15A、16A、および18Aのうちのいずれか1つまたはそれらの組合せ、の方法を実施するための手段を備える。
【0179】
条項24A. 点群データを符号化するためのデバイスであって、デバイスは、条項2A、3A、5A、6A、8A、10A、12A、14A、15A、17A、および18Aのうちのいずれか1つまたはそれらの組合せ、の方法を実施するための手段を備える。
【0180】
条項25A. 命令を記憶するコンピュータ可読記憶媒体であって、命令は、実行されると、1つまたは複数のプロセッサに、条項1A、3A、4A、6A、7A、9A、11A、13A、15A、16A、および18Aのうちのいずれか1つまたはそれらの組合せ、の方法を実施させる。
【0181】
条項26A. 命令を記憶するコンピュータ可読記憶媒体であって、命令は、実行されると、1つまたは複数のプロセッサに、条項2A、3A、5A、6A、8A、10A、12A、14A、15A、17A、および18Aのうちのいずれか1つまたはそれらの組合せ、の方法を実施させる。
【0182】
条項1B. 点群データを符号化する方法であって、方法は、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定するステップと、レーザーが回る量を示すシンタックス要素を生成するステップであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ステップと、シンタックス要素をシグナリングするステップとを含む。
【0183】
条項2B. レーザーが回る量を決定するステップは、一度の一回転における、レーザーによるレーザープローブの数を決定するステップを含む、条項1Bの方法。
【0184】
条項3B. 一度の一回転における、レーザーによるレーザープローブの数を決定するステップは、8分木コーディングであるジオメトリツリータイプについて、一度の一回転における、レーザーによるレーザープローブの数を決定するステップを含む、条項2Bの方法。
【0185】
条項4B. レーザーが回る量を決定するステップは、レーザーが回る方位角における単位変化を決定するステップを含む、条項1Bの方法。
【0186】
条項5B. レーザーが回る方位角における単位変化を決定するステップは、予測ジオメトリコーディングであるジオメトリツリータイプについて、レーザーが回る方位角における単位変化を決定するステップを含む、条項4Bの方法。
【0187】
条項6B. シンタックス要素を生成するステップは、レーザーが回る量から規定値を減算して、シンタックス要素の値を生成するステップを含む、条項1B~5Bのいずれかの方法。
【0188】
条項7B. 規定値は1に等しい、条項1B~6Bのいずれかの方法。
【0189】
条項8B. シンタックス要素は第1のシンタックス要素であり、方法は、点群データの第3のシンタックス要素を表すのに使われるビットの数を示す点群データの第2のシンタックス要素を符号化するステップであって、点群データの第3のシンタックス要素は、角度コーディングモードの処理において使われる原点の座標を示す、ステップと、第3のシンタックス要素を固定長符号化するステップとをさらに含む、条項1B~7Bのいずれかの方法。
【0190】
条項9B. 値は第1の値を含み、方法は、32ビットを超えない、球面座標コンバージョンにおける属性位置に関連付けられた第2の値を決定するステップであって、第2の値を決定することは、32ビット以下になるように第2の値をクリップすること、および値のビット深度が32ビット以下であると定義する点群圧縮規格に準拠して、第2の値を生成することのうちの少なくとも1つを含む、ステップとをさらに含む、条項1B~8Bのいずれかの方法。
【0191】
条項10B. 点群データを復号する方法であって、方法は、点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信するステップであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ステップと、シンタックス要素に基づいて、レーザーが回る量を決定するステップと、レーザーが回る決定された量に基づいて点群を再構築するステップとを含む。
【0192】
条項11B. シンタックス要素に基づいて、レーザーが回る量を決定するステップは、一度の一回転における、レーザーによるレーザープローブの数を決定するステップを含む、条項10Bの方法。
【0193】
条項12B. 一度の一回転における、レーザーによるレーザープローブの数を決定するステップは、8分木コーディングであるジオメトリツリータイプについて、一度の一回転における、レーザーによるレーザープローブの数を決定するステップを含む、条項11Bの方法。
【0194】
条項13B. シンタックス要素に基づいて、レーザーが回る量を決定するステップは、レーザーが回る方位角における単位変化を決定するステップを含む、条項10Bの方法。
【0195】
条項14B. レーザーが回る方位角における単位変化を決定するステップは、予測ジオメトリコーディングであるジオメトリツリータイプについて、レーザーが回る方位角における単位変化を決定するステップを含む、条項13Bの方法。
【0196】
条項15B. シンタックス要素に基づいて、レーザーが回る量を決定するステップは、シンタックス要素の値に規定値を加算するステップを含む、条項10B~14Bのいずれかの方法。
【0197】
条項16B. 規定値は1に等しい、条項10B~15Bのいずれかの方法。
【0198】
条項17B. シンタックス要素は第1のシンタックス要素であり、方法は、点群データの第3のシンタックス要素を表すのに使われるビットの数を示す点群データの第2のシンタックス要素を復号するステップであって、点群データの第3のシンタックス要素は、角度コーディングモードの処理において使われる原点の座標を示す、ステップと、第3のシンタックス要素を固定長符号化するステップとをさらに含む、条項10B~16Bのいずれかの方法。
【0199】
条項18B. 値は第1の値を含み、方法は、32ビットを超えない、球面座標コンバージョンにおける属性位置に関連付けられた第2の値を決定するステップをさらに含み、第2の値を決定することは、32ビット以下になるように第2の値をクリップすること、および値のビット深度が32ビット以下であると定義する点群圧縮規格に準拠して、第2の値を受信することのうちの少なくとも1つを含む、条項10B~17Bのいずれかの方法。
【0200】
条項19B. 点群データを符号化するためのデバイスであって、デバイスは、点群データを記憶するように構成されたメモリと、メモリに結合された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定することと、レーザーが回る量を示すシンタックス要素を生成することであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ことと、シンタックス要素をシグナリングすることとを行うように構成される。
【0201】
条項20B. レーザーが回る量を決定することは、一度の一回転における、レーザーによるレーザープローブの数を決定することを含む、条項19Bのデバイス。
【0202】
条項21B. 一度の一回転における、レーザーによるレーザープローブの数を決定することは、8分木コーディングであるジオメトリツリータイプについて、一度の一回転における、レーザーによるレーザープローブの数を決定することを含む、条項20Bのデバイス。
【0203】
条項22B. レーザーが回る量を決定することは、レーザーが回る方位角における単位変化を決定することを含む、条項19Bのデバイス。
【0204】
条項23B. レーザーが回る方位角における単位変化を決定することは、予測ジオメトリコーディングであるジオメトリツリータイプについて、レーザーが回る方位角における単位変化を決定することを含む、条項22Bのデバイス。
【0205】
条項24B. シンタックス要素を生成することは、レーザーが回る量から規定値を減算して、シンタックス要素の値を生成することを含む、条項19B~23Bのいずれかのデバイス。
【0206】
条項25B. 規定値は1に等しい、条項19B~24Bのいずれかのデバイス。
【0207】
条項26B. シンタックス要素は第1のシンタックス要素であり、1つまたは複数のプロセッサは、点群データの第3のシンタックス要素を表すのに使われるビットの数を示す点群データの第2のシンタックス要素を符号化することであって、点群データの第3のシンタックス要素は、角度コーディングモードの処理において使われる原点の座標を示す、ことと、第3のシンタックス要素を固定長符号化することとを行うように構成される、条項19B~25Bのいずれかのデバイス。
【0208】
条項27B. 点群データを復号するためのデバイスであって、デバイスは、点群データを記憶するように構成されたメモリと、メモリに結合された1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信することであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ことと、シンタックス要素に基づいて、レーザーが回る量を決定することと、レーザーが回る決定された量に基づいて点群を再構築することとを行うように構成される。
【0209】
条項28B. シンタックス要素に基づいて、レーザーが回る量を決定することは、一度の一回転における、レーザーによるレーザープローブの数を決定することを含む、条項27Bのデバイス。
【0210】
条項29B. 一度の一回転における、レーザーによるレーザープローブの数を決定することは、8分木コーディングであるジオメトリツリータイプについて、一度の一回転における、レーザーによるレーザープローブの数を決定することを含む、条項28Bのデバイス。
【0211】
条項30B. シンタックス要素に基づいて、レーザーが回る量を決定することは、レーザーが回る方位角における単位変化を決定することを含む、条項27Bのデバイス。
【0212】
条項31B. レーザーが回る方位角における単位変化を決定することは、予測ジオメトリコーディングであるジオメトリツリータイプについて、レーザーが回る方位角における単位変化を決定することを含む、条項30Bのデバイス。
【0213】
条項32B. シンタックス要素に基づいて、レーザーが回る量を決定することは、シンタックス要素の値に規定値を加算することを含む、条項27B~31Bのいずれかのデバイス。
【0214】
条項33B. 規定値は1に等しい、条項27B~32Bのいずれかのデバイス。
【0215】
条項34B. シンタックス要素は第1のシンタックス要素であり、1つまたは複数のプロセッサは、点群データの第3のシンタックス要素を表すのに使われるビットの数を示す点群データの第2のシンタックス要素を復号することであって、点群データの第3のシンタックス要素は、角度コーディングモードの処理において使われる原点の座標を示す、ことと、第3のシンタックス要素を固定長復号することとを行うように構成される、条項27B~33Bのいずれかのデバイス。
【0216】
条項35B. 点群データを符号化するためのデバイスであって、デバイスは、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定するための手段と、レーザーが回る量を示すシンタックス要素を生成するための手段であって、シンタックス要素の値は、レーザーが回る量未満の規定値である、手段と、シンタックス要素をシグナリングするための手段とを備える。
【0217】
条項36B. 命令を記憶するコンピュータ可読記憶媒体であって、命令は、実行されると、1つまたは複数のプロセッサに、点群データによって表される点群の中の点を決定するためのレーザーが回る量を決定することと、レーザーが回る量を示すシンタックス要素を生成することであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ことと、シンタックス要素をシグナリングすることとを行わせる。
【0218】
条項37B. 点群データを復号するためのデバイスであって、デバイスは、点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信するための手段であって、シンタックス要素の値は、レーザーが回る量未満の規定値である、手段と、シンタックス要素に基づいて、レーザーが回る量を決定するための手段と、レーザーが回る決定された量に基づいて点群を再構築するための手段とを備える。
【0219】
条項38B. 命令を記憶するコンピュータ可読記憶媒体であって、命令は、実行されると、1つまたは複数のプロセッサに、点群データによって表される点群の中の点を決定するためのレーザーが回る量を示すシンタックス要素を受信することであって、シンタックス要素の値は、レーザーが回る量未満の規定値である、ことと、シンタックス要素に基づいて、レーザーが回る量を決定することと、レーザーが回る決定された量に基づいて点群を再構築することとを行わせる。
【0220】
例に応じて、本明細書で説明する技法のいずれかのいくつかの作用またはイベントが、異なるシーケンスで実施される場合があり、追加され、統合され、または完全に除外されてもよい(たとえば、説明したすべての作用またはイベントが技法の実践にとって必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、作用またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して並行して実施されてよい。
【0221】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は一般に、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品がコンピュータ可読媒体を含んでもよい。
【0222】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得るとともにコンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続も適切にコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0223】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の同等の集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」および「処理回路構成」という用語は、上記の構造、または本明細書で説明する技法の実装に適した任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明する機能性は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で提供されてよく、または複合コーデックに組み込まれてよい。また、技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
【0224】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。開示された技法を実施するように構成されたデバイスの機能的側面を強調するために、様々な構成要素、モジュール、またはユニットが本開示に記載されているが、それらは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わされてよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上で説明したような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【0225】
様々な例を説明してきた。これらおよび他の例は、以下の特許請求の範囲内に入る。
【符号の説明】
【0226】
100 復号システム、システム
102 ソースデバイス
104 データソース
106 メモリ
108 出力インターフェース
110 コンピュータ可読媒体
112 記憶デバイス
114 ファイルサーバ
116 宛先デバイス
118 データコンシューマ
120 メモリ
122 入力インターフェース
200 G-PCCエンコーダ
202 座標変換ユニット
204 色変換ユニット
206 ボクセル化ユニット
208 属性転送ユニット
210 8分木分析ユニット
212 表面近似分析ユニット
214 算術符号化ユニット
216 ジオメトリ再構築ユニット
218 RAHTユニット
220 LOD生成ユニットLOD
222 リフティングユニット
224 係数量子化ユニット
226 算術符号化ユニット
300 G-PCCデコーダ
302 ジオメトリ算術復号ユニット
304 属性算術復号ユニット
306 8分木合成ユニット
308 逆量子化ユニット
310 表面近似合成ユニット
312 ジオメトリ再構築ユニット
314 RAHTユニット
316 LOD生成ユニット
318 逆リフティングユニット
320 座標逆変換ユニット
322 色逆変換ユニット
図1
図2
図3
図4
図5
【国際調査報告】