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

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

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

特表2024-512995ジオメトリ点群圧縮のための残差予測コーディング
<>
  • 特表-ジオメトリ点群圧縮のための残差予測コーディング 図1
  • 特表-ジオメトリ点群圧縮のための残差予測コーディング 図2
  • 特表-ジオメトリ点群圧縮のための残差予測コーディング 図3
  • 特表-ジオメトリ点群圧縮のための残差予測コーディング 図4
  • 特表-ジオメトリ点群圧縮のための残差予測コーディング 図5
  • 特表-ジオメトリ点群圧縮のための残差予測コーディング 図6
  • 特表-ジオメトリ点群圧縮のための残差予測コーディング 図7
  • 特表-ジオメトリ点群圧縮のための残差予測コーディング 図8
  • 特表-ジオメトリ点群圧縮のための残差予測コーディング 図9
  • 特表-ジオメトリ点群圧縮のための残差予測コーディング 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-21
(54)【発明の名称】ジオメトリ点群圧縮のための残差予測コーディング
(51)【国際特許分類】
   G06T 9/00 20060101AFI20240313BHJP
【FI】
G06T9/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023559792
(86)(22)【出願日】2022-04-05
(85)【翻訳文提出日】2023-09-27
(86)【国際出願番号】 US2022071535
(87)【国際公開番号】W WO2022217215
(87)【国際公開日】2022-10-13
(31)【優先権主張番号】63/170,999
(32)【優先日】2021-04-05
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/657,867
(32)【優先日】2022-04-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】アダルシュ・クリシュナン・ラマスブラモニアン
(72)【発明者】
【氏名】ルオン・ファム・ヴァン
(72)【発明者】
【氏名】バッパディトヤ・レイ
(72)【発明者】
【氏名】ルイス・ジョゼフ・ケロフスキー
(72)【発明者】
【氏名】ヘルト・ファン・デル・アウウェラ
(72)【発明者】
【氏名】マルタ・カルチェヴィチ
(57)【要約】
点群データを復号する方法は、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得するステップと、ビットストリームを復号するステップとを含み、ビットストリームを復号するステップは、点の属性の第1の成分の残差値を判定するステップと、点の属性の第2の成分の予測値を生成するステップと、第2の成分を、第2の成分の予測値および第2の成分についてのスケールファクタと第1の成分の残差値との乗算積の和として再構成するステップとを含み、制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【特許請求の範囲】
【請求項1】
点群データを復号する方法であって、
1つまたは複数の制約に準拠するように符号化されたビットストリームを取得するステップと、
前記ビットストリームを復号するステップとを含み、前記ビットストリームを復号するステップは、
前記ビットストリームにおいてシグナリングされるデータに基づいて、前記点群データの点の属性の第1の成分の残差値を判定するステップと、
前記点の前記属性の第2の成分の予測値を生成するステップと、
前記第2の成分を、前記点の前記属性の前記第2の成分の前記予測値および前記点の前記属性の前記第2の成分についてのスケールファクタと前記点の前記属性の前記第1の成分の前記残差値との乗算積の和として再構成するステップとを含み、
前記1つまたは複数の制約は、前記点の前記属性の前記第1の成分、前記点の前記属性の前記第1の成分の前記残差値、前記属性の前記第2の成分、および前記点の前記属性の前記第2の成分の前記残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、方法。
【請求項2】
前記点は、前記点群データの第1の点であり、前記あらかじめ定義されたビット深度は、第1のビット深度であり、前記ビットストリームを復号するステップは、
前記ビットストリームにおいてシグナリングされる前記データに基づいて、前記点群データの第2の点の属性の一次成分の残差値を判定するステップと、
前記ビットストリームにおいてシグナリングされる前記データに基づいて、前記点群データの前記第2の点の前記属性の二次成分の残差値を判定するステップと、
前記第2の点の前記属性の前記二次成分の予測値を生成するステップと、
前記第2の点の前記属性の前記二次成分を、前記第2の点の前記属性の前記二次成分の前記残差値、前記第2の点の前記属性の前記二次成分の前記予測値、および前記第2の点の前記属性の前記二次成分についてのスケールファクタと前記第2の点の前記属性の前記一次成分の前記残差値との乗算積の和として再構成するステップとをさらに含み、
前記1つまたは複数の制約は、前記第2の点の前記属性の前記二次成分、前記第2の点の前記属性の前記二次成分の前記残差値、および前記第2の点の前記属性の前記一次成分の前記残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含む、請求項1に記載の方法。
【請求項3】
前記点の前記属性の前記第1の成分の前記残差値を前記あらかじめ定義されたビット深度のうちの1つにクリッピングするステップをさらに含む、請求項1に記載の方法。
【請求項4】
前記ビットストリームが前記1つまたは複数の制約に準拠することに基づいて、前記点群データを復号するかどうかを判定するステップをさらに含む、請求項1に記載の方法。
【請求項5】
前記点の前記第1の成分の前記残差値を判定するステップは、前記第1の成分のシグナリングされる値を逆量子化するステップを含み、前記第1の成分の前記シグナリングされる値は、前記ビットストリームにおいてシグナリングされる、請求項1に記載の方法。
【請求項6】
点群データを符号化する方法であって、
前記点群データを取得するステップと、
前記点群データを符号化するステップであって、1つまたは複数の制約に準拠するビットストリームを生成するステップを含む、ステップとを含み、前記ビットストリームを生成するステップは、
点の属性の第1の成分の残差値を判定するステップと、
前記点の前記属性の第2の成分の予測値を生成するステップと、
前記点の前記属性の前記第2の成分を、前記点の前記属性の前記第2の成分の前記予測値および前記点の前記属性の前記第2の成分についてのスケールファクタと前記点の前記属性の前記第1の成分の前記残差値との乗算積の和として再構成するステップとを含み、
前記1つまたは複数の制約は、前記点の前記属性の前記第1の成分、前記点の前記属性の前記第1の成分の前記残差値、前記属性の前記第2の成分、および前記点の前記属性の前記第2の成分の前記残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、方法。
【請求項7】
前記点は、第1の点であり、前記あらかじめ定義されたビット深度は、第1のあらかじめ定義されたビット深度であり、前記点群データを符号化するステップは、
前記点群データの第2の点の属性の一次成分の残差値を判定するステップと、
前記点群データの前記第2の点の前記属性の二次成分の残差値を判定するステップと、
前記第2の点の前記属性の前記二次成分の予測値を生成するステップと、
前記第2の点の前記属性の前記二次成分を、前記第2の点の前記属性の前記二次成分の前記残差値、前記第2の点の前記属性の前記二次成分の前記予測値、および前記第2の点の前記属性の前記二次成分についてのスケールファクタと前記第2の点の前記属性の前記一次成分の前記残差値との乗算積の和として再構成するステップとをさらに含み、
前記1つまたは複数の制約は、前記第2の点の前記属性の前記二次成分、前記第2の点の前記属性の前記二次成分の前記残差値、および前記第2の点の前記属性の前記一次成分の前記残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含む、請求項6に記載の方法。
【請求項8】
前記第1の成分の前記残差値を前記あらかじめ定義されたビット深度のうちの1つにクリッピングするステップをさらに含む、請求項6に記載の方法。
【請求項9】
前記第1の成分の前記残差値を判定するステップは、前記第1の成分のシグナリングされる値を逆量子化するステップを含み、前記第1の成分の前記シグナリングされる値は、前記ビットストリームにおいてシグナリングされる、請求項6に記載の方法。
【請求項10】
前記点群データを生成するステップをさらに含む、請求項6に記載の方法。
【請求項11】
点群データを記憶するように構成されたメモリと、
前記メモリに結合され、回路において実装された1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
1つまたは複数の制約に準拠するように符号化されたビットストリームを取得することと、
前記ビットストリームを復号することとを行うように構成され、前記1つまたは複数のプロセッサは、前記ビットストリームを符号することの一部として、
前記ビットストリームにおいてシグナリングされるデータに基づいて、前記点群データの点の属性の第1の成分の残差値を判定することと、
前記点の前記属性の第2の成分の予測値を生成することと、
前記第2の成分を、前記点の前記属性の前記第2の成分の前記予測値および前記点の前記属性の前記第2の成分についてのスケールファクタと前記点の前記属性の前記第1の成分の前記残差値との乗算積の和として再構成することとを行うように構成され、
前記1つまたは複数の制約は、前記点の前記属性の前記第1の成分、前記点の前記属性の前記第1の成分の前記残差値、前記属性の前記第2の成分、および前記点の前記属性の前記第2の成分の前記残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、デバイス。
【請求項12】
前記点は、前記点群データの第1の点であり、前記あらかじめ定義されたビット深度は、第1のビット深度であり、前記1つまたは複数のプロセッサは、前記ビットストリームを復号することの一部として、
前記ビットストリームにおいてシグナリングされる前記データに基づいて、前記点群データの第2の点の属性の一次成分の残差値を判定することと、
前記ビットストリームにおいてシグナリングされる前記データに基づいて、前記点群データの前記第2の点の前記属性の二次成分の残差値を判定することと、
前記第2の点の前記属性の前記二次成分の予測値を生成することと、
前記第2の点の前記属性の前記二次成分を、前記第2の点の前記属性の前記二次成分の前記残差値、前記第2の点の前記属性の前記二次成分の前記予測値、および前記第2の点の属性の前記二次成分についてのスケールファクタと前記第2の点の前記属性の前記一次成分の前記残差値との乗算積の和として再構成することとを行うように構成され、
前記1つまたは複数の制約は、前記第2の点の前記属性の前記二次成分、前記第2の点の前記属性の前記二次成分の前記残差値、および前記第2の点の前記属性の前記一次成分の前記残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含む、請求項11に記載のデバイス。
【請求項13】
前記1つまたは複数のプロセッサは、前記第1の成分の前記残差値を前記あらかじめ定義されたビット深度のうちの1つにクリッピングするようにさらに構成される、請求項11に記載のデバイス。
【請求項14】
前記1つまたは複数のプロセッサは、前記ビットストリームが前記1つまたは複数の制約に準拠することに基づいて、前記点群データを復号するかどうかを判定するようにさらに構成される、請求項11に記載のデバイス。
【請求項15】
前記1つまたは複数のプロセッサは、前記第1の成分の前記残差値を判定することの一部として、前記第1の成分のシグナリングされる値を逆量子化するように構成され、前記第1の成分の前記シグナリングされる値は、前記ビットストリームにおいてシグナリングされる、請求項11に記載のデバイス。
【請求項16】
点群データを記憶するように構成されたメモリと、
前記メモリに結合され、回路において実装された1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、前記点群データを符号化するように構成され、前記1つまたは複数のプロセッサは、前記点群データを符号化することの一部として、1つまたは複数の制約に準拠するビットストリームを生成するように構成され、前記1つまたは複数のプロセッサは、前記ビットストリームを生成することの一部として、
点の属性の第1の成分の残差値を判定することと、
前記点の前記属性の第2の成分の予測値を生成することと、
前記点の前記属性の前記第2の成分を、前記点の前記属性の前記第2の成分の前記予測値および前記点の前記属性の前記第2の成分についてのスケールファクタと前記点の前記属性の前記第1の成分の前記残差値との乗算積の和として再構成することとを行うように構成され、
前記1つまたは複数の制約は、前記点の前記属性の前記第1の成分、前記点の前記属性の前記第1の成分の前記残差値、前記属性の前記第2の成分、および前記点の前記属性の前記第2の成分の前記残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、デバイス。
【請求項17】
前記点は、第1の点であり、前記あらかじめ定義されたビット深度は、第1のあらかじめ定義されたビット深度であり、前記1つまたは複数のプロセッサは、前記点群データを符号化することの一部として、
前記点群データの第2の点の属性の一次成分の残差値を判定することと、
前記点群データの前記第2の点の前記属性の二次成分の残差値を判定することと、
前記第2の点の前記属性の前記二次成分の予測値を生成することと、
前記第2の点の前記属性の前記二次成分を、前記第2の点の前記属性の前記二次成分の前記残差値、前記第2の点の前記属性の前記二次成分の前記予測値、および前記第2の点の前記属性の前記二次成分についてのスケールファクタと前記第2の点の前記属性の前記一次成分の前記残差値との乗算積の和として再構成することとを行うように構成され、
前記1つまたは複数の制約は、前記第2の点の前記属性の前記二次成分、前記第2の点の前記属性の前記二次成分の前記残差値、および前記第2の点の前記属性の前記一次成分の前記残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含む、請求項16に記載のデバイス。
【請求項18】
前記1つまたは複数のプロセッサは、前記第1の成分の前記残差値を前記あらかじめ定義されたビット深度のうちの1つにクリッピングするようにさらに構成される、請求項16に記載のデバイス。
【請求項19】
前記1つまたは複数のプロセッサは、前記第1の成分の前記残差値を判定することの一部として、前記第1の成分のシグナリングされる値を逆量子化するように構成され、前記第1の成分の前記シグナリングされる値は、前記ビットストリームにおいてシグナリングされる、請求項16に記載のデバイス。
【請求項20】
前記点群データを生成するためのセンサをさらに備える、請求項16のデバイス。
【請求項21】
1つまたは複数の制約に準拠するように符号化されたビットストリームを取得するための手段と、
前記ビットストリームを復号するための手段であって、前記ビットストリームを復号するための手段は、
前記ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定するための手段と、
前記点の前記属性の第2の成分の予測値を生成するための手段と、
前記点の前記属性の前記第2の成分を、前記点の前記属性の前記第2の成分の前記予測値および前記点の前記属性の前記第2の成分についてのスケールファクタと前記点の前記属性の前記第1の成分の前記残差値との乗算積の和として再構成するための手段とを備え、
前記1つまたは複数の制約は、前記点の前記属性の前記第1の成分、前記点の前記属性の前記第1の成分の前記残差値、前記属性の前記第2の成分、および前記点の前記属性の前記第2の成分の前記残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、デバイス。
【請求項22】
点群データを取得するための手段と、
前記点群データを符号化するための手段であって、1つまたは複数の制約に準拠するビットストリームを生成するための手段を備える手段とを備え、前記ビットストリームを生成するための前記手段は、
点の属性の第1の成分の残差値を判定するための手段と、
前記点の前記属性の第2の成分の予測値を生成するための手段と、
前記点の前記属性の前記第2の成分を、前記点の前記属性の前記第2の成分の前記予測値および前記点の前記属性の前記第2の成分についてのスケールファクタと前記点の前記属性の前記第1の成分の前記残差値との乗算積の和として再構成するための手段とを備え、
前記1つまたは複数の制約は、前記点の前記属性の前記第1の成分、前記点の前記属性の前記第1の成分の前記残差値、前記属性の前記第2の成分、および前記点の前記属性の前記第2の成分の前記残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、デバイス。
【請求項23】
命令を記憶した非一時的コンピュータ可読データ記憶媒体であって、前記命令が、実行されたときに、1つまたは複数のプロセッサに、
1つまたは複数の制約に準拠するように符号化されたビットストリームを取得することと、
前記ビットストリームを復号することとを行わせ、前記前記1つまたは複数のプロセッサに前記ビットストリームを復号させる前記命令は、実行されたときに、前記1つまたは複数のプロセッサに、
前記ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定することと、
前記点の前記属性の第2の成分の予測値を生成することと、
前記点の前記属性の前記第2の成分を、前記点の前記属性の前記第2の成分の前記予測値および前記点の前記属性の前記第2の成分についてのスケールファクタと前記点の前記属性の前記第1の成分の前記残差値との乗算積の和として再構成することとを行わせる命令を含み、
前記1つまたは複数の制約は、前記点の前記属性の前記第1の成分、前記点の前記属性の前記第1の成分の前記残差値、前記属性の前記第2の成分、および前記点の前記属性の前記第2の成分の前記残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、非一時的コンピュータ可読データ記憶媒体。
【請求項24】
命令を記憶した非一時的コンピュータ可読データ記憶媒体であって、前記命令が、実行されたときに、1つまたは複数のプロセッサに、
点群データを取得することと、
前記点群データを符号化することとを行わせ、前記1つまたは複数のプロセッサに前記点群データを符号化させる前記命令は、実行されたときに、前記1つまたは複数のプロセッサに、1つまたは複数の制約に準拠するビットストリームを生成させる命令を含み、前記1つまたは複数のプロセッサに前記ビットストリームを生成させる前記命令は、実行されたときに、前記1つまたは複数のプロセッサに、
点の属性の第1の成分の残差値を判定することと、
前記点の前記属性の第2の成分の予測値を生成することと、
前記点の前記属性の前記第2の成分を、前記点の前記属性の前記第2の成分の前記予測値および前記点の前記属性の前記第2の成分についてのスケールファクタと前記点の前記属性の前記第1の成分の前記残差値との乗算積の和として再構成することとを行わせる命令を含み、
前記1つまたは複数の制約は、前記点の前記属性の前記第1の成分、前記点の前記属性の前記第1の成分の前記残差値、前記属性の前記第2の成分、および前記点の前記属性の前記第2の成分の前記残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、非一時的コンピュータ可読データ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2022年4月4日に出願された米国特許出願第17/657,867号、および2021年4月5日に出願された米国仮出願第63/170,999号の優先権を主張し、これらの出願の各々の内容全体は、参照により本明細書に組み込まれる。2022年4月4日に出願された米国特許出願第17/657,867号は、2021年4月5日に出願された米国仮出願第63/170,999号の利益を主張する。
【0002】
本開示は、点群符号化および復号に関する。
【背景技術】
【0003】
点群とは、3次元空間における点の集合である。点は、3次元空間内のオブジェクト上の点に対応し得る。したがって、点群は、3次元空間の物理的内容を表すために使用され得る。点群は、多種多様な状況において効用を有することがある。たとえば、点群は、道路上の物体の位置を表すために、自律車両の文脈において使用されることがある。別の例では、点群は、拡張現実(AR)または複合現実(MR)適用例において仮想オブジェクトを測位する目的のために、環境の物理的内容を表す文脈において使用され得る。点群圧縮とは、点群を符号化および復号するためのプロセスである。点群を符号化することは、点群の記憶および送信のために必要とされるデータの量を減らし得る。
【発明の概要】
【課題を解決するための手段】
【0004】
一般に、本開示は、点群圧縮のための技法について説明する。本明細書で説明するように、エンコーダは、1つまたは複数の制約に準拠するビットストリームを符号化してもよい。符号化および復号プロセスの間、最後成分残差予測(LCRP)を使用して、点群データの点の属性のシグナリング成分に関連付けられる符号化データの量を低減させてもよい。LCRPの実行の一部として、エンコーダまたはデコーダは、点群データの点の属性の第1の成分の残差値を判定してもよい。追加として、エンコーダまたはデコーダは、点の属性の第2の成分の予測値を生成してもよい。エンコーダまたはデコーダは、第2の成分を、第2の成分の予測値および第2の成分についてのスケールファクタと第1の成分の残差値との乗算積の和として再構成してもよい。1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、または点の属性の第2の成分の残差値のうちの少なくとも1つを1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含んでもよい。この制約を含めると、オーバーフロー条件が発生する可能性が低くなるかまたはなくなることがある。そのようなオーバーフロー条件は、再構成される点群データの品質を低下させることがある。
【0005】
一例では、本開示は、点群データを復号する方法であって、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得するステップと、ビットストリームを復号するステップとを含み、ビットストリームを復号するステップが、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定するステップと、点の属性の第2の成分の予測値を生成するステップと、第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成するステップとを含み、1つまたは複数の制約が、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、方法について説明する。
【0006】
別の例では、本開示は、点群データを符号化する方法であって、点群データを取得するステップと、点群データを符号化するステップとを含み、点群データを符号化するステップが、1つまたは複数の制約に準拠するビットストリームを生成するステップを含み、ビットストリームを生成するステップが、点の属性の第1の成分の残差値を判定するステップと、点の属性の第2の成分の予測値を生成するステップと、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成するステップとを含み、1つまたは複数の制約が、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、方法について説明する。
【0007】
別の例では、本開示は、点群データを記憶するように構成されたメモリと、メモリに結合され、回路において実装された1つまたは複数のプロセッサであって、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得して、ビットストリームを復号するように構成された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、ビットストリームを復号することの一部として、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定することと、点の属性の第2の成分の予測値を生成することと、第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成することとを行うように構成され、1つまたは複数の制約が、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、デバイスについて説明する。
【0008】
別の例では、本開示は、点群データを記憶するように構成されたメモリと、メモリに結合され、回路において実装された1つまたは複数のプロセッサであって、点群データを符号化するように構成された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、点群データを符号化することの一部として、1つまたは複数の制約に準拠するビットストリームを生成するように構成され、1つまたは複数のプロセッサが、ビットストリームを生成することの一部として、点の属性の第1の成分の残差値を判定することと、点の属性の第2の成分の予測値を生成することと、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成することとを行うように構成され、1つまたは複数の制約が、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、デバイスについて説明する。
【0009】
別の例では、本開示は、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得するための手段と、ビットストリームを復号するための手段とを備えるデバイスであって、ビットストリームを復号するための手段が、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定するための手段と、点の属性の第2の成分の予測値を生成するための手段と、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成するための手段とを備え、1つまたは複数の制約が、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、デバイスについて説明する。
【0010】
別の例では、本開示は、命令を記憶した非一時的コンピュータ可読データ記憶媒体であって、命令が、実行されたときに、1つまたは複数のプロセッサに、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得することと、ビットストリームを復号することとを行わせ、1つまたは複数のプロセッサにビットストリームを復号させる命令が、実行されたときに、1つまたは複数のプロセッサに、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定することと、点の属性の第2の成分の予測値を生成することと、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成することとを行わせる命令を含み、1つまたは複数の制約が、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、非一時的コンピュータ可読データ記憶媒体について説明する。
【0011】
1つまたは複数の例の詳細が、添付図面および以下の説明に記載されている。他の特徴、目的、および利点が、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【0012】
図1】本開示の技法を実行してもよい例示的な符号化および復号システムを示すブロック図である。
図2】例示的なジオメトリ点群圧縮(G-PCC:Geometry Point Cloud Compression)エンコーダを示すブロック図である。
図3】例示的なG-PCCデコーダを示すブロック図である。
図4】ジオメトリコーディングのための8分木分割を示す概念図である。
図5】本開示の1つまたは複数の技法による、点群データを符号化するための例示的な動作を示すフローチャートである。
図6】本開示の1つまたは複数の技法による、点群データを復号するための例示的な動作を示すフローチャートである。
図7】本開示の1つまたは複数の技法とともに使用され得る、例示的な距離測定システムを示す概念図である。
図8】本開示の1つまたは複数の技法が使用され得る、例示的な車両ベースシナリオを示す概念図である。
図9】本開示の1つまたは複数の技法が使用され得る、例示的なエクステンデッドリアリティシステムを示す概念図である。
図10】本開示の1つまたは複数の技法が使用され得る、例示的なモバイルデバイスシステムを示す概念図である。
【発明を実施するための形態】
【0013】
点群における点は、1つまたは複数の属性を有してもよい。点の属性は、1つまたは複数の成分を含んでもよい。たとえば、点の色属性の成分は、赤、緑、および青カラーサンプルなどのカラーサンプルを含んでもよい。別の例では、点の色属性の成分は、ルーマサンプルおよび2つのクロマサンプルを含んでもよい。カラーサンプルのうちの1つが、一次成分として指定されてもよく、他のカラーサンプルは、二次成分として指定される。たとえば、ルーマサンプルは、一次成分であってもよく、2つのクロマサンプルが二次成分であってもよい。点は、色属性の他にまたは色属性の代わりに属性を有してもよい。
【0014】
ジオメトリ点群圧縮(G-PCC)エンコーダは、点群における点の属性を符号化して属性ビットストリームを生成してもよい。点群における点の属性を符号化すると、属性を表すのに必要なデータの量が低減することがある。G-PCCデコーダは、属性ビットストリームを使用して点群における点の属性を再構成してもよい。
【0015】
いくつかの例では、G-PCCエンコーダは、点群における点の属性を符号化するプロセスの間成分間残差予測(ICRP)を使用してもよい。G-PCCエンコーダがICRPを使用すると、G-PCCは、点の属性の一次成分の予測値を生成し、点の属性の一次成分についての残差値を点の属性の一次成分と点の一次成分の予測値との間の差として判定する。追加として、G-PCCエンコーダは、点の属性の二次成分についての予測値を生成し、点に適用されるICRPスケールファクタを判定する。G-PCCエンコーダは、二次成分の値から二次成分の予測値を減算し、次いで、点に適用されるICRPスケールファクタと一次成分についての残差値との乗算積をさらに減算することによって、点の属性の二次成分の残差値を生成してもよい。G-PCCエンコーダは、属性ビットストリームにおける一次成分の残差値および二次成分の残差値に基づくデータを含んでもよい。G-PCCデコーダは、二次成分の残差値、二次成分の予測値、ならびにICRPスケールファクタと一次成分についての残差値との乗算積を加算することによって、点の属性の二次成分の値を再構成してもよい。G-PCCエンコーダおよびG-PCCデコーダは、同様に点の属性の各二次成分についての残差値を生成してもよい。
【0016】
いくつかの例では、G-PCCエンコーダは、点群における点の属性を符号化するプロセスの間最後成分残差予測(LCRP)を使用してもよい。LCRPは、いくつかの点でICRPと同様であるが、点群の点の属性の最後の二次成分にのみ適用される。G-PCCエンコーダがLCRPを使用すると、G-PCCエンコーダは、属性の最後から2番目の成分の残差値にLCRPスケール値を乗算することに基づいて点の属性の最後の成分についての残差値を生成してもよい。G-PCCエンコーダは、属性ビットストリームにおける最後の成分の残差値に基づくデータを含んでもよい。G-PCCデコーダは、最後の成分の残差値および最後の成分についての予測値を加算することによって、点の属性の最後の成分の値を再構成してもよい。
【0017】
G-PCCデコーダがICRPまたはLCRPのいずれかを使用すると、G-PCCデコーダは加算演算を実行する。ICRPおよびLCRPは加算演算および乗算演算を伴うので、加算演算および乗算演算によって得られる値を、得られた値を記憶するために利用できるビットの数を使用して表すことができる最大値よりも大きく(または最小値よりも小さく)することができる。言い換えれば、得られた値を記憶するのに十分な利用可能なビットがないオーバーフロー条件がある場合がある。たとえば、得られた値を記憶するのに利用可能なビットが32ビットある場合があるが、得られた値を記憶するのに33ビットが必要になることがある。この場合、点群における点に誤った色または他の属性が関連付けられることなどのエラーが生じることがある。
【0018】
本開示の1つまたは複数の技法によれば、G-PCCエンコーダは、属性ビットストリームを符号化してもよく、それによって、属性ビットストリームは1つまたは複数の制約に準拠する。ICRPに関しては、1つまたは複数の制約が、二次成分の値を、二次成分を再構成するとオーバーフロー条件が生じなくなる範囲に限定する。LCRPに関しては、1つまたは複数の制約が、最後から2番目の成分の値を、最後の成分を再構成するとオーバーフロー条件が生じなくなる範囲に限定する。
【0019】
したがって、LCRPを伴う一例では、G-PCCエンコーダは、点群データを取得して点群データを符号化してもよい。点群データを符号化することは、1つまたは複数の制約に準拠するビットストリームを生成することを含む。ビットストリームを生成することの一部として、G-PCCエンコーダは、点の属性の第1の成分(たとえば、最後から2番目の成分)の残差値を判定してもよい。追加として、G-PCCエンコーダは、点の属性の第2の成分(たとえば、最後の成分)の予測値を生成してもよい。G-PCCエンコーダは、第2の成分を、第2の成分の予測値および第2の成分についてのスケールファクタと第1の成分の残差値との乗算積の和として再構成してもよい。この例では、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、または点の属性の第2の成分の残差値のうちの少なくとも1つを1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。制約は、第1の成分、残差値をあらかじめ定義されたビット深度に限定するので、上述のオーバーフロー条件が回避される場合がある。
【0020】
同様に、G-PCCデコーダは、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得してもよい。G-PCCデコーダは、ビットストリームを復号してもよい。ビットストリームを復号することの一部として、G-PCCデコーダは、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定してもよい。追加として、G-PCCデコーダは、点の属性の第2の成分の予測値を生成してもよい。G-PCCデコーダは、第2の成分を、第2の成分の予測値および第2の成分についてのスケールファクタと第1の成分の残差値との乗算積の和として再構成してもよい。この例では、1つまたは複数の制約は、点の属性の第2の成分(たとえば、二次成分)、点の属性の第2の成分の残差値、または点の属性の第1の成分(たとえば、一次成分)の残差値のうちの少なくとも1つを1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。制約は第2の成分、第2の成分の残差値、または第1の成分の残差値をあらかじめ定義されたビット深度に限定するので、上述のオーバーフロー条件が回避される場合がある。
【0021】
図1は、本開示の技法を実行してもよい例示的な符号化および復号システム100を示すブロック図である。本開示の技法は、一般に、点群データをコーディング(符号化および/または復号)すること、すなわち、点群圧縮をサポートすることを対象とする。一般に、点群データは、点群を処理するための任意のデータを含む。コーディングは、点群データを圧縮および/または圧縮解除するのに有効であることがある。
【0022】
図1に示されるように、システム100は、ソースデバイス102および宛先デバイス116を含む。ソースデバイス102は、宛先デバイス116によって復号されるべき符号化された点群データを提供する。具体的には、図1の例では、ソースデバイス102は、コンピュータ可読媒体110を介して宛先デバイス116に点群データを提供する。ソースデバイス102および宛先デバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、表示デバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、地上または海上車両、宇宙船、航空機、ロボット、LIDARデバイス、衛星などを含む、広範囲のデバイスのいずれかを備えてもよい。いくつかの場合、ソースデバイス102および宛先デバイス116は、ワイヤレス通信に対応してもよい。
【0023】
図1の例では、ソースデバイス102は、データソース104、メモリ106、G-PCCエンコーダ200、および出力インターフェース108を含む。宛先デバイス116は、入力インターフェース122、G-PCCデコーダ300、メモリ120、およびデータコンシューマ118を含む。本開示によると、ソースデバイス102のG-PCCエンコーダ200および宛先デバイス116のG-PCCデコーダ300は、ジオメトリ点群圧縮のための残差コーディングに関連した本開示の技法を適用するように構成されてよい。したがって、ソースデバイス102は符号化デバイスの例を表し、宛先デバイス116は復号デバイスの例を表す。他の例では、ソースデバイス102および宛先デバイス116は、他のコンポーネントまたは配置を含んでよい。たとえば、ソースデバイス102は、内部または外部ソースからデータ(たとえば、点群データ)を受信してもよい。同様に、宛先デバイス116は、同じデバイスの中にデータコンシューマを含むのではなく、外部のデータコンシューマとインターフェースしてもよい。
【0024】
図1に示すようなシステム100は一例にすぎない。概して、他のデジタル符号化および/または復号デバイスが、ジオメトリ点群圧縮のための残差コーディングに関連した本開示の技法を実施してよい。ソースデバイス102および宛先デバイス116は、ソースデバイス102が宛先デバイス116への送信のためにコーディングされたデータを生成するようなデバイスの例にすぎない。本開示は、データのコーディング(符号化および/または復号)を実行するデバイスを「コーディング」デバイスと呼ぶ。したがって、G-PCCエンコーダ200およびG-PCCデコーダ300は、コーディングデバイス、具体的には、それぞれ、エンコーダおよびデコーダの例を表す。いくつかの例では、ソースデバイス102および宛先デバイス116は、ソースデバイス102および宛先デバイス116の各々が符号化および復号コンポーネントを含むように実質的に対称的に動作してもよい。したがって、システム100は、たとえば、ストリーミング、再生、ブロードキャスト、電話、ナビゲーション、および他の用途のために、ソースデバイス102と宛先デバイス116との間の一方向送信または双方向送信をサポートしてもよい。
【0025】
一般に、データソース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へと出力してもよい。
【0026】
ソースデバイス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は、点群を表すデータを記憶してもよい。
【0027】
コンピュータ可読媒体110は、符号化されたデータをソースデバイス102から宛先デバイス116にトランスポートすることが可能な任意のタイプの媒体またはデバイスを表す場合がある。一例では、コンピュータ可読媒体110は、たとえば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、ソースデバイス102が符号化されたデータを宛先デバイス116にリアルタイムで直接送信することを可能にする通信媒体を表す。ワイヤレス通信プロトコルなどの通信規格に従って、出力インターフェース108は、符号化されたデータを含む送信信号を変調してよく、入力インターフェース122は、受信された送信信号を復調してよい。通信媒体は、無線周波数(RF)スペクトル、または1つもしくは複数の物理伝送線路など、任意のワイヤレス通信媒体またはワイヤード通信媒体を備えてもよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成してもよい。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102から宛先デバイス116への通信を容易にするために有用であり得る任意の他の機器を含んでもよい。
【0028】
いくつかの例では、ソースデバイス102は、出力インターフェース108から記憶デバイス112に符号化されたデータを出力してもよい。同様に、宛先デバイス116は、入力インターフェース122を介して、記憶デバイス112からの符号化されたデータにアクセスしてもよい。記憶デバイス112は、ハードドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたデータを記憶するための任意の他の適切なデジタル記憶媒体などの、種々の分散型のまたはローカルにアクセスされるデータ記憶媒体のいずれかを含んでもよい。
【0029】
いくつかの例では、ソースデバイス102は、ソースデバイス102によって生成された符号化されたデータを記憶し得るファイルサーバ114または別の中間記憶デバイスに、符号化されたデータを出力してもよい。宛先デバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114からの記憶されたデータにアクセスしてもよい。ファイルサーバ114は、符号化されたデータを記憶し、その符号化されたデータを宛先デバイス116に送信することが可能な任意のタイプのサーバデバイスであってもよい。ファイルサーバ114は、(たとえば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、コンテンツ配信ネットワークデバイス、またはネットワーク接続ストレージ(NAS)デバイスを表してもよい。宛先デバイス116は、インターネット接続を含む任意の標準的なデータ接続を通じて、ファイルサーバ114からの符号化されたデータにアクセスしてもよい。これは、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、デジタル加入者回線(DSL)、ケーブルモデムなど)、またはファイルサーバ114上に記憶された符号化されたデータにアクセスするのに適した両方の組合せを含んでもよい。ファイルサーバ114および入力インターフェース122は、ストリーミング送信プロトコル、ダウンロード送信プロトコル、またはそれらの組合せに従って動作するように構成されてもよい。
【0030】
出力インターフェース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デバイスを含んでよい。
【0031】
本開示の技法は、自律車両間の通信、スキャナ、カメラ、センサ、およびローカルもしくはリモートサーバなどの処理デバイスの間の通信、地理的マッピング、または他の用途などの、様々な用途のいずれかをサポートする符号化および復号に適用されてもよい。
【0032】
宛先デバイス116の入力インターフェース122は、コンピュータ可読媒体110(たとえば、通信媒体、記憶デバイス112、ファイルサーバ114など)から、符号化されたビットストリームを受信する。符号化されたビットストリームは、コード化単位(たとえば、スライス、ピクチャ、ピクチャグループ、シーケンスなど)の特性および/または処理を記述する値を有するシンタックス要素などの、G-PCCデコーダ300によっても使用される、G-PCCエンコーダ200によって定義されるシグナリング情報を含んでもよい。データコンシューマ118は、復号データを使用する。たとえば、データコンシューマ118は、物理オブジェクトのロケーションを決定するために、復号データを使用してもよい。いくつかの例では、データコンシューマ118は、点群に基づいて像を提示するためのディスプレイを備えてもよい。
【0033】
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つまたは複数の集積回路、マイクロプロセッサ、および/または他のタイプのデバイスを備えてもよい。
【0034】
G-PCCエンコーダ200およびG-PCCデコーダ300は、ビデオ点群圧縮(V-PCC)規格またはジオメトリ点群圧縮(G-PCC)規格などのコーディング規格に従って動作してもよい。本開示は一般に、データを符号化または復号する処理を含めるように、ピクチャのコーディング(たとえば、符号化および復号)に言及することがある。符号化されたビットストリームは一般に、コーディング決定(たとえば、コーディングモード)を表すシンタックス要素のための一連の値を含む。
【0035】
本開示は、概して、シンタックス要素などのいくつかの情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、一般に、シンタックス要素および/または符号化されたデータを復号するために使用される他のデータのための値の通信を指すことがある。すなわち、G-PCCエンコーダ200は、ビットストリーム中でシンタックス要素のための値をシグナリングしてもよい。一般に、シグナリングは、ビットストリーム中で値を生成することを指す。上述のように、ソースデバイス102は、実質的にリアルタイムで、または、宛先デバイス116によって後で取り出すためにシンタックス要素を記憶デバイス112に記憶するときに行われ得るなど、リアルタイムではなく、ビットストリームを宛先デバイス116にトランスポートしてもよい。
【0036】
ISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現行の手法の圧縮能力を大幅に超える圧縮能力を有する点群コーディング技術の規格化の潜在的な必要性を研究しており、規格を作成することを目標としている。このグループは、この分野の専門家によって提案された圧縮技術設計を評価するための3次元グラフィックスチーム(3DG:3-Dimensional Graphics Team)として知られている共同作業において、この探究活動に一緒に取り組んでいる。
【0037】
点群圧縮活動は、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標準についての最近の草案が、「ISO/IEC FDIS 23090-9、Geometry-based Point Cloud Compression」、ISO/JTC JTC1/SC29/WG 7 MDS19617、teleconference、2020年10月において入手可能であり、コーデックの記述が、G-PCC Codec Description、ISO/IEC JTC 1/SC29/WG 7 MDS19620、Teleconference、2020年10月において入手可能である。
【0038】
点群データは、3D空間における点のセットを含み、点に関連する属性を有してもよい。属性は、R、G、B、もしくはY、Cb、Crなどの色情報、または反射率情報、あるいは他の属性であってよい。点群データは、LIDARセンサおよび3Dスキャナなどの様々なカメラまたはセンサによってキャプチャされてよく、同じくコンピュータ生成されてもよい。点群データは、限定はしないが、建築(モデリング)、グラフィックス(視覚化およびアニメーションのための3Dモデル)、および自動車産業(ナビゲーションの助けとなるために使用されるLIDARセンサ)を含む、様々な適用例において使用される。
【0039】
点群データによって占有される3D空間は、仮想的な境界ボックスによって覆われてもよい。境界ボックスの中の点の位置は、いくつかの精度によって表されてよく、したがって、1つまたは複数の点の位置は、精度に基づいて量子化されてもよい。最小レベルにおいて、境界ボックスはボクセルに分割され、ボクセルは、単位立方体によって表される、空間の最小単位である。境界ボックスの中のボクセルは、0個、1個、または2個以上の点に関連付けられてもよい。境界ボックスは、タイルと呼ばれることがある複数の立方体/立方形領域に分割されてもよい。各タイルは、1つまたは複数のスライスにコーディングされてもよい。スライスおよびタイルへの境界ボックスの区分は、各区分の中の点の数に基づいてよく、または他の考慮事項(たとえば、特定の領域がタイルとしてコーディングされてよい)に基づいてもよい。スライス領域は、ビデオコーデックにおける分割決定と類似の分割決定を使用してさらに区分されてもよい。
【0040】
図2は、G-PCCエンコーダ200の概要を提供する。図3は、G-PCCデコーダ300の概要を提供する。図示のモジュールは論理的であり、G-PCCコーデックの基準実装において実装されるコード、すなわち、ISO/IEC MPEG(JTC 1/SC 29/WG 11)によって研究されるTMC13テストモデルソフトウェアに必ずしも1対1で対応するとは限らない。
【0041】
G-PCCエンコーダ200とG-PCCデコーダ300の両方において、点群の場所が最初にコーディングされる。属性コーディングは、復号されたジオメトリに依存する。図2および図3において、グレーの陰影モジュールは、カテゴリ1データ用に通常使われるオプションである。斜め平行線付きモジュールは、カテゴリ3データ用に通常使われるオプションである。他のモジュールはすべて、カテゴリ1と3との間で共通である。
【0042】
ジオメトリについて、2つの異なるタイプのコーディング技法、すなわち、8分木および予測木コーディングが存在する。以下の説明では8分木コーディングに焦点を当てる。カテゴリ3データの場合、圧縮されたジオメトリは、通常、個々のボクセルの根から葉レベルまでの8分木として表される。カテゴリ1データの場合、圧縮されたジオメトリは通常、刈り込まれた8分木(すなわち、ボクセルよりも大きいブロックの、根から葉レベルまでの8分木)に、刈り込まれた8分木の各葉内の表面に近似するモデルを加えたものによって表される。このようにして、カテゴリ1データとカテゴリ3データの両方は8分木コーディング機構を共有するが、カテゴリ1データは、追加として、表面モデル(Trisoupコーディングとして知られている)を有する各葉内のボクセルに近似し得る。使用される表面モデルは、ブロックごとに1~10個の三角形を備える三角測量であり、triangle soupが生じる。
【0043】
8分木の各ノードにおいて、その子ノード(最大で8つのノード)のうちの1つまたは複数について占有がシグナリングされる(推測されないとき)。(a)現在の8分木ノードを伴う面を共有するノード、(b)現在の8分木ノードを伴う面、辺、または頂点を共有するノードなどを含む、複数の近隣が指定される。各近隣内で、ノードおよび/またはその子の占有が、現在のノードまたはその子の占有を予測するために使用されてもよい。8分木のいくつかのノードにおいて疎らに分布する点について、コーデックは、点の3Dの場所が直接符号化される直接コーディングモードもサポートする。直接モードがシグナリングされることを示すためのフラグがシグナリングされてもよい。最も低いレベルにおいて、8分木ノード/葉ノードに関連する点の数もコーディングされてもよい。図4は、ジオメトリコーディングのための8分木分割を示す概念図である。
【0044】
ジオメトリがコーディングされると、ジオメトリ点に対応する属性がコーディングされる。1つの再構成/復号されたジオメトリ点に対応する複数の属性点があるとき、再構成された点を表す属性値が導出されてもよい。
【0045】
G-PCCには3つの属性コーディング方法、すなわち、領域適応階層変換(RAHT)コーディング、補間ベース階層最近傍予測(予測変換)、および更新/リフティングステップを用いる補間ベース階層最近傍予測(リフティング変換)がある。RAHTおよびLiftingは通常、カテゴリ1データのために使用され、Predictingは通常、カテゴリ3データのために使用される。しかしながら、いずれの方法がどのデータに対して使用されてもよく、G-PCCにおけるジオメトリコーデックでのように、点群をコーディングするために使用される属性コーディング方法はビットストリームにおいて指定される。
【0046】
属性のコーディングは、ある詳細レベル(LOD:level-of-detail)で行われてよく、各詳細レベルを用いて、点群属性のもっと細かい表現が取得されてもよい。各詳細レベルは、近傍ノードからの距離メトリックに基づいて、またはサンプリング距離に基づいて指定されてもよい。
【0047】
G-PCCエンコーダ200において、属性のためのコーディング方法の出力として取得された残差が量子化される。量子化された残差は、コンテキスト適応型算術コーディングを使用してコーディングされ得る。
【0048】
図2の例では、G-PCCエンコーダ200は、座標変換ユニット202、色変換ユニット204、ボクセル化ユニット206、属性転送ユニット208、8分木分析ユニット210、表面近似分析ユニット212、算術符号化ユニット214、ジオメトリ再構成ユニット216、RAHTユニット218、LOD生成ユニット220、リフティングユニット222、係数量子化ユニット224、および算術符号化ユニット226を含んでよい。
【0049】
図2の例に示すように、G-PCCエンコーダ200は、点群内の点の位置のセットおよび属性のセットを取得してもよい。G-PCCエンコーダ200は、点群内の点の位置のセットおよび属性のセットをデータソース104から取得してもよい(図1)。位置は、点群の中の点の座標を含んでもよい。属性は、点群の中の点に関連付けられた色など、点群の中の点についての情報を含んでもよい。G-PCCエンコーダ200は、点群内の点の位置の符号化された表現を含むジオメトリビットストリーム203を生成してもよい。G-PCCエンコーダ200はまた、属性のセットの符号化された表現を含む属性ビットストリーム205を生成してもよい。
【0050】
座標変換ユニット202は、座標を初期領域から変換領域に変換するように、点の座標に変換を適用してもよい。本開示では、変換された座標を変換座標と呼ぶことがある。色変換ユニット204は、属性の色情報を異なる領域に変換するための変換を適用してもよい。たとえば、色変換ユニット204は、色情報をRGB色空間からYCbCr色空間に変換してもよい。
【0051】
さらに、図2の例では、ボクセル化ユニット206は、変換座標をボクセル化してもよい。変換座標のボクセル化は、量子化と、点群のいくつかの点を除去することとを含んでもよい。言い換えると、点群の複数の点が単一の「ボクセル」内に包含されてもよく、ボクセルはその後、いくつかの観点において1つの点として扱われてもよい。さらに、8分木分析ユニット210は、ボクセル化された変換座標に基づいて8分木を生成してもよい。追加として、図2の例では、表面近似分析ユニット212は、点のセットの表面表現を潜在的に決定するために点を分析してもよい。算術符号化ユニット214は、8分木、および/または表面近似分析ユニット212によって決定された表面の情報を表す、シンタックス要素をエントロピー符号化してもよい。G-PCCエンコーダ200は、これらのシンタックス要素をジオメトリビットストリーム203の中で出力してよい。ジオメトリビットストリーム203はまた、算術的に符号化されないシンタックス要素を含む他のシンタックス要素を含んでもよい。
【0052】
ジオメトリ再構成ユニット216は、8分木、表面近似分析ユニット212によって決定された表面を示すデータ、および/または他の情報に基づいて、点群の中の点の変換座標を再構成してもよい。ジオメトリ再構成ユニット216によって再構成された変換座標の数は、ボクセル化および表面近似により、点群の点の元の数とは異なることがある。本開示では、得られた点を再構成された点と呼ぶことがある。属性転送ユニット208は、点群の元の点の属性を、点群の再構成された点へ転送してもよい。
【0053】
さらに、RAHTユニット218は、RAHTコーディングを再構成された点の属性に適用してもよい。いくつかの例では、RAHTの下で、2x2x2点位置のブロックの属性が得られて一方向に沿って変換され、4つの低周波数ノード(L)および4つの高周波数ノード(H)が取得される。その後、4つの低周波数ノード(L)は、第2の方向に変換されて、2つの低周波数ノード(LL)および2つの高周波数ノード(LH)が取得される。2つの低周波数ノード(LL)は、第3の方向に沿って変換されて、1つの低周波数ノード(LLL)および1つの高周波数ノード(LLH)が取得される。低周波数ノードLLLはDC係数に相当し、高周波数ノードH、LH、およびLLHはAC係数に相当する。各方向における変換は、2つの係数重みによる1-D変換であってもよい。低周波数係数は、RAHT変換の次に高いレベルについての2x2x2ブロックの係数と見なされてもよく、AC係数は、変更なしに符号化され、そのような変換が最上位根ノードまで継続する。符号化のための木走査は、係数に使用される重みを計算するために使用される上から下への走査であり、変換順は下から上である。次いで、係数が量子化されコーディングされてもよい。
【0054】
代替または追加として、LOD生成ユニット220およびリフティングユニット222が、LOD処理およびリフティングを、それぞれ、再構成された点の属性に適用してもよい。LOD生成を使用して属性をそれぞれに異なるリファインメントレベルに分割してもよい。各リファインメントレベルは、点群の属性にリファインメントを与える。第1のリファインメントレベルは、粗な近似を提供し、小数の点を含む。その後のリファインメントレベルは一般に、より多くの点を含み、以下同様である。リファインメントレベルは、距離ベースのメトリックを使用して構成されてもよく、または1つもしくは複数の他の分類基準(たとえば、特定の順位からのサブサンプリング)を使用してもよい。したがって、リファインメントレベルにはすべての再構成された点が含まれてもよい。各詳細レベルは、特定のリファインメントレベルまでのすべての点の和集合を得ることによって生成され、たとえば、リファインメントレベルRL1に基づいてLOD1が取得され、RL1およびRL2に基づいてLOD2が取得され、...RL1, RL2, ...RLNの和集合によってLODNが取得される。いくつかの場合には、LOD生成の後に予測方式(たとえば、予測変換)が実行され、LODにおける各点に関連付けられた属性が、先行する点の重み付き平均から予測され、残差が量子化され、エントロピーコードディングされる。リフティング方式は、予測変換機構上に構成され、更新演算子を使用して係数が更新され、係数の適応量子化が実行される。
【0055】
RAHTユニット218およびリフティングユニット222は、属性に基づいて係数を生成してもよい。係数量子化ユニット224は、RAHTユニット218またはリフティングユニット222によって生成された係数を量子化してもよい。算術符号化ユニット226は、量子化された係数を表すシンタックス要素に算術コーディングを適用してもよい。G-PCCエンコーダ200は、これらのシンタックス要素を属性ビットストリーム205の中で出力してよい。属性ビットストリーム205は、非算術的に符号化されたシンタックス要素を含む他のシンタックス要素を含んでもよい。
【0056】
図3の例では、G-PCCデコーダ300は、ジオメトリ算術復号ユニット302、属性算術復号ユニット304、8分木合成ユニット306、逆量子化ユニット308、表面近似合成ユニット310、ジオメトリ再構成ユニット312、RAHTユニット314、LoD生成ユニット316、逆リフティングユニット318、逆座標変換ユニット320、および逆色変換ユニット322を含んでもよい。
【0057】
G-PCCデコーダ300は、ジオメトリビットストリーム203および属性ビットストリーム205を取得し得る。デコーダ300のジオメトリ算術復号ユニット302は、ジオメトリビットストリーム203中のシンタックス要素に算術復号(たとえば、コンテキスト適応型2値算術コーディング(CABAC)または他のタイプの算術復号)を適用してもよい。同様に、属性算術復号ユニット304は、属性ビットストリーム205中のシンタックス要素に算術復号を適用してもよい。
【0058】
8分木合成ユニット306は、ジオメトリビットストリーム203から解析されたシンタックス要素に基づいて8分木を合成してもよい。各8分木レベルにおける8つの子ノードの各々の占有率は、ビットストリームにおいて、8分木の根ノードから順にシグナリングされる。シグナリングが、特定の8分木レベルにおける子ノードが占有されていることを示すとき、この子ノードの子の占有率がシグナリングされる。各8分木レベルにおけるノードのシグナリングは、以後の8分木レベルに進む前に行われる。8分木の最終レベルでは、各ノードがボクセル位置に対応し、葉ノードが占有されると、ボクセル位置において1つまたは複数の点が占有されることが指定されることがある。いくつかの例では、量子化に起因して8分木のいくつかの枝は最終レベルよりも前に終端することがある。そのような場合、葉ノードは、子ノードを有さない占有されたノードと見なされる。ジオメトリビットストリーム203中で表面近似が使用される事例では、表面近似合成ユニット310は、ジオメトリビットストリーム203から解析されたシンタックス要素に基づき、かつ8分木に基づいて、表面モデルを決定してもよい。
【0059】
さらに、ジオメトリ再構成ユニット312は、点群の中の点の座標を決定するために、再構成を実行してもよい。8分木の葉ノードにおける各位置について、ジオメトリ再構成ユニット312は、8分木内の葉ノードの2進表現を使用することによってノード位置を再構成してもよい。各それぞれの葉ノードにおいて、それぞれの葉ノードにおける点の数がシグナリングされ、このことは、同じボクセル位置における重複点の数を示す。ジオメトリ量子化を使用すると、点位置がスケーリングされて再構成点位置値が決定される。
【0060】
逆座標変換ユニット320は、点群の中の点の再構成された座標(位置)を変換ドメインから初期ドメインにコンバートし戻すために、逆変換を再構成された座標に適用し得る。点群における点の位置は、浮動小数点領域内であってもよいが、G-PCCコーデックにおける点位置は整数領域内でコーディングされる。逆変換を使用して位置を元の領域に変換し直してもよい。
【0061】
追加として、図3の例では、逆量子化ユニット308は属性値を逆量子化してもよい。属性値は、属性ビットストリーム205から取得されたシンタックス要素(たとえば、属性算術復号ユニット304によって復号されたシンタックス要素を含む)に基づいてもよい。
【0062】
属性値がどのように符号化されるかに応じて、RAHTユニット314は、逆量子化された属性値に基づいて、点群の点に対する色値を決定するために、RAHTコーディングを実行してもよい。RAHT復号は、木の上から下へ行われる。各レベルにおいて、逆量子化プロセスから導出された低周波数係数および高周波数係数を使用して構成値が導出される。葉ノードにおいて、導出された値は係数の属性値に対応する。点についての重み導出プロセスは、G-PCCエンコーダ200に使用されるプロセスと同様である。代替として、LOD生成ユニット316および逆リフティングユニット318が、詳細度ベースの技法を使って、点群の点についての色値を決定してもよい。LOD生成ユニット316は、点の属性の漸進的に微細になる表現を示す各LODを復号する。予測変換を用いる場合、LOD生成ユニット316は、前のLOD内にある、または同じLOD内で以前に再構成された点の重み付き和から点の予測を導出してもよい。LOD生成ユニット316は、予測を残差(逆量子化後に取得される)に加算して属性の再構成値を取得してもよい。リフティング方式を使用するとき、LOD生成ユニット316は、属性値を導出するために使用される係数を更新するための更新演算子を含んでもよい。LOD生成ユニット316はまた、この場合は逆適応量子化を適用してもよい。
【0063】
さらに、図3の例では、逆色変換ユニット322は、色値に逆色変換を適用してもよい。逆色変換は、エンコーダ200の色変換ユニット204によって適用される色変換の逆であってもよい。たとえば、色変換ユニット204は、色情報をRGB色空間からYCbCr色空間に変換してもよい。したがって、逆色変換ユニット322は、色情報をYCbCr色空間からRGB色空間に変換してもよい。
【0064】
図2および図3の様々なユニットは、エンコーダ200およびデコーダ300によって実行される動作を理解するのを助けるために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装されてもよい。固定機能回路は、特定の機能性を提供する回路を指し、実施され得る動作があらかじめ設定される。プログラマブル回路は、様々なタスクを実施するようにプログラムされ得る回路を指し、実施され得る動作において柔軟な機能性を提供する。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義された方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行してもよい。固定機能回路は、(たとえば、パラメータを受信するかまたはパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実行する動作のタイプは概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、異なる回路ブロック(固定機能またはプログラマブル)であってよく、いくつかの例では、ユニットのうちの1つまたは複数は集積回路であってよい。
【0065】
上述のように、G-PCCには3つの属性コーディング方法がある。すなわち、領域適応階層変換(RAHT)コーディング、補間ベース階層最近傍予測(予測変換)、および更新/リフティングステップを用いる補間ベース階層最近傍予測(リフティング変換)がある。RAHTおよびLiftingは通常、カテゴリ1データのために使用され、Predictingは通常、カテゴリ3データのために使用される。しかしながら、いずれの方法がどのデータに対して使用されてもよく、G-PCCにおけるジオメトリコーデックでのように、点群をコーディングするために使用される属性コーディング方法はビットストリームにおいて指定される。
【0066】
予測変換残差(すなわち、残差値)は、所与の属性値から予測属性値を減算した後に取得されてもよい。たとえば、G-PCCエンコーダ200は、以下の式(1)および(2)に示されるように残差を導出してもよい。
residualP = attrP - predP (1)
residualS = attrS - predS (2)
【0067】
式(1)および(2)では、residualpは、点の属性の一次成分の残差値を示し、attrpは、点の属性の一次成分の値を示し、predpは、点の属性の一次成分の予測値を示し、residualsは、点の属性の二次成分の残差値を示し、attrsは、点の属性の二次成分の値を示し、predsは、点の属性の二次成分の予測値を示す。いくつかの例では、属性の一次成分はルーマ値であり、属性の二次成分はクロマ値である。G-PCCエンコーダ200およびG-PCCデコーダ300は、各属性についての予測値(たとえば、predpおよびpreds)をすでに再構成された近傍の属性値のうちの1つまたは1つもしくは複数の近傍の属性値の属性値の加重平均のいずれかとして取得してもよい。G-PCCエンコーダ200およびG-PCCデコーダ300は、候補のリストから近傍の属性値を判定してもよい。候補のリストは、近傍の点の属性値の加重平均および/または近傍の点の属性値のセットを含んでもよい。G-PCCエンコーダ200およびG-PCCデコーダ300は、以前にコーディングされた点間の距離を考慮するアルゴリズムを使用することによって、近傍の点を取得してもよく、これらの点は、以前のコーディングされた詳細レベル(場合によっては、現在の詳細レベルの以前にコーディングされた点)から最近傍アルゴリズムを使用して取得される。
【0068】
属性の二次成分については、残差値は、成分間残差予測(ICRP)を使用して一次成分残差からさらに予測されてもよい。ICRPは、一般に、予測変換が適用されるときに使用される。ICRPが適用されると、G-PCCエンコーダ200は、以下の式(3)に示されるように二次残差を導出してもよい。
residualS = (attrS - predS) - sICRP * residualP (3)
式(3)では、residualsは、二次成分の残差値を示し、attrsは、二次成分の値を示し、predsは、二次成分の予測値を示し、ファクタsICRPは、特定の点に適用されるICRPスケールファクタを示し、residualpは、一次成分の残差値を示す。G-PCCエンコーダ200は、各層または詳細レベルについてICRPスケールファクタをシグナリングしてもよい。G-PCCエンコーダ200は、属性のそれぞれに異なる成分についてそれぞれに異なるスケールファクタをシグナリングしてもよい。いくつかの例では、スケールファクタは、小数ビットを有してもよく、その場合、演算は、正しいスケール値を適用するためのオフセットおよびシフトを含んでもよい。
【0069】
G-PCCデコーダ300において、二次成分の再構成された属性は、以下の式(4)に示されているように導出されてもよい。
reconS = residualS + sICRP * residualP + predS (4)
式(4)では、reconsは、二次成分の再構成値を示し、residualsは、二次成分の残差値を示し、sICRPは、ICRPスケールファクタを示し、residualpは、一次成分の残差値を示し、predsは、二次成分の予測値を示す。
【0070】
リフティング変換の下では、G-PCCエンコーダ200およびG-PCCデコーダ300は最後成分残差予測を使用して、属性の最後の2つの成分の残差値間の相関を利用してもよい。属性のすべての二次成分に適用されるICRPとは異なり、LCRPは、属性の最後の成分の残差のみを予測するために適用される。
【0071】
最後の成分の残差、residuallastは、以下の式(5)に示されているように、最後から2番目の成分の残差、residualpenulから導出されてもよい。
residuallast = sLCRP * residualP (5)
式(5)では、residuallastは、最後の成分の残差値を示し、sLCRPは、LCRPスケールファクタを示し、residualpは、最後から2番目の成分の残差値を示す。LCRPの下では、最後の成分の残差値はシグナリングされないことに留意されたい。
【0072】
G-PCCエンコーダ200およびG-PCCデコーダ300において、二次成分の再構成された属性は、以下の式(6)に示されているように導出されてもよい。
reconlast = residuallast + predlast = sLCRP * residualpenul + predlast (6)
式(6)では、reconlastは、最後の成分の再構成値を示し、residuallastは、最後の成分の残差値を示し、sLCRPは、LCRPスケールファクタを示し、residualpenulは、最後から2番目の成分の残差値を示し、predlastは、最後の成分の予測値を示す。
【0073】
G-PCCの現在の草案では、属性量子化パラメータ(QP)値を指定するための領域の境界は、スライスのノードサイズに基づいて条件付けされる。スライスは、コーディングされた点群フレーム全体の一部であり、ジオメトリデータユニットおよび0個以上の対応する属性データユニットを含んでもよい。スライスのノードサイズは、8分木ジオメトリコーディングに関して指定される。しかし、ノードサイズは、予測ジオメトリコーディングに関しては指定されない。したがって、G-PCCの現在の草案では、予測ジオメトリコーディングにどんな制約が適用されるべきかは不明である。
【0074】
この問題に対処するために、本開示では、8分木コーディング事例については第1の制約(たとえば、領域境界制約)を適用し、予測ジオメトリコーディング事例については第2の制約を適用することを提案する。一例では、第1の制約と第2の制約は同一であってもよい。いくつかの例では、制約は、次のように、<ADD>...</ADD>タグを用いて追加を示し、<DELETE>...</DELETE>タグを用いて削除を示すように修正されてもよい。
<ADD>geom_tree_typeが0, iに等しいとき<ADD><DELETE>I</DELETE>tは、以下の条件がk=0..2の場合に真であるというビットストリーム準拠要件である。
AttrRegionQpOriginStv[i][k] + AttrRegionQpSizeStv[i][k] <= (1 << NodeSizesLog2[0][k])
【0075】
geom_tree_typeが0に等しくないとき、ビットストリーム制約は次のように修正されてもよい。
AttrRegionQpOriginStv[i][k] + AttrRegionQpSizeStv[i][k] <= <ADD>N</ADD>
上式において、Nは、あらかじめ決定されているかまたはビットストリームにおいてシグナリングされる固定量である。
【0076】
geom_tree_typeが0に等しい場合、位置情報が8分木を使用してコーディングされることが指定されてもよく、geom_tree_typeが1に等しい場合、位置情報が予測木を使用してコーディングされることが指定されてもよい。いくつかの例では、n = 0 .. ash_attr_region_cnt - 1およびk = 0 .. 2の場合の値AttrRegionQpOriginStv[i][k]およびAttrRegionQpSizeStv[i][k]を有する配列AttrRegionQpOriginStvおよびAttrRegionQpSizeStvは、それぞれ、以下のようにコーディングされたジオメトリ軸順序に置換された領域原点およびサイズを表してもよい。
AttrRegionQpOriginStv[i][XyzToStv[k]] = ash_attr_qp_region_origin_xyz[i][k]
AttrRegionQpSizeStv[i][XyzToStv[k]] = ash_attr_qp_region_size_minus1_xyz[i][k] + 1
【0077】
ash_attr_qp_region_origin_xyz[i][k]およびash_attr_qp_region_size_minus1_xyz[i][k]は、ash_attr_region_qp_offset[i][k]が適用される現在のスライス内のi番目の空間領域を指定してもよく、ash_attr_qp_region_origin_xyz[i][k]は、スライス原点に対するi番目の領域の(x,y,z)原点共座標のk番目の成分であってもよい。ash_attr_qp_region_size_minus1_xyz[ i ][ k ] plus 1は、それぞれ、i番目の領域の幅、高さ、および深度のk番目の成分であってもよい。
【0078】
G-PCCの現在の草案では、ICRP係数(すなわち、ICRPスケールファクタ)は、2ビットの部分精度でシグナリングされ、すなわち、値4がシグナリングされるとき、スケール値1に対応する。同様に、シグナリングされる値が5である場合、スケール値1.25に対応する。しかし、シグナリングされる値の範囲について限界は指定されない。このため、ICRP係数の任意に大きい値がシグナリングされ、それによって、コーデックの内部演算のうちの1つにおいてオーバーフローが生じる場合がある状況が生じる場合がある。さらに、G-PCCデコーダ300は、有利ではない場合がある潜在的に大きい値を追跡することが必要になることがある(一般に、4または8よりも大きいスケール値が使用されることは少ない)。同様の問題が、LCRPに関連付けられたスケール値/係数についても存在する。
【0079】
この問題に対処するために、本開示では、以下の文に示されているように、ICRPおよびLCRP係数(たとえば、sICRPおよびsLCRP)の値を制約することを提案する。以下の文は、G-PCC標準についての現在の草案からの提案される変更を示す(たとえば、<ADD>...</ADD>タグに示されている追加の文)。
last_comp_pred_coeff_delta[i]は、多成分属性の第2の成分からi番目の詳細層における最後の成分の予測値についてのデルタスケーリング値を指定する。last_comp_pred_coef_delta[i]が存在しないときには、0に等しいと推論される。<ADD>last_comp_pred_coef_delta[i]の値は、-8~8(両端値を含む)という範囲の中にあるものとする。</ADD>
i = 0 .. num_detail_levels_minus1である要素LastCompPredCoeff[i]を有する配列LastCompPredCoeffは次のように導出される。
- initCoeff = last_component_prediction_enabled_flag << 2
- for (i = 0; i<= num_detail_levels_minus1; i++){
- predCoeff = !i ? initCoeff: LastCompPredCoeff[i - 1]
- LastCompPredCoeff[i] = predCoeff + last_comp_pred_coeff_delta[i]
- }
Inter_comp_pred_coeff_delta[i][c]は、多成分属性の一次成分からi番目の詳細層における非一次成分の予測値についてのk番目のデルタスケーリング値を指定する。inter_comp_pred_coef_delta[i][c]が存在しないときには、0に等しいと推論される。<ADD>inter_comp_pred_coef_delta[i]の値は、-8~8(両端値を含む)という範囲の中にあるものとする。</ADD>
i = 0 .. num_detail_levels_minus1およびc = 1 .. AttrDim - 1である要素InterCompPredCoeff[i][c]を有する配列InterCompPredCoeffは次のように導出される。
- initCoeff = lifting_inter_component_prediction_enabled_flag << 2
- for (i = 0; i<= num_detail_levels_minus1; i++)
- for (c = 1; c < AttrDim; c++) {
- predCoeff = !i ? initCoeff: InterCompPredCoeff[i - 1][c]
- InterCompPredCoeff[i][c] = predCoeff + inter_comp_pred_coeff_delta[i][c]
- }
【0080】
上記の文において、last_comp_pred_coeff_deltaおよびinter_comp_pred_coeff_deltaは、G-PCCエンコーダ200がビットストリームにおいてシグナリングすることがあるシンタックス要素である。G-PCCデコーダ300は、last_comp_pred_coeff_deltaおよびinter_comp_pred_coeff_deltaを使用して、それぞれ、LCRP係数およびICRP係数の値を判定してもよい。
【0081】
他の例では、ICRPおよびLCRP係数について他の値範囲を適用してもよい。値範囲は、ICRP係数およびLCRP係数について異なってもよい。たとえば、ICRP係数は、-8~8(両端値を含む)という範囲の中にあってもよく、一方、LCRP係数は、-4~4(両端値を含む)という範囲の中にあってもよい。
【0082】
G-PCC標準についての現在の草案では、予測変換残差は、制約を受けず、任意に大きい残差値がシグナリングされてもよい。しかし、属性値の特定の入力範囲を仮定すると、残差値の範囲は限定される。この範囲を超える残差値は、コーデック演算においてレジスタ/データストレージがオーバーフローする場合がある。
【0083】
本開示では、この問題に対処し得る技法を説明する。たとえば、本開示の技法によれば、G-PCCデコーダ300における1つもしくは複数の演算がビット限界を超えることがなくなるような制約が追加されてもよい。この制約は、G-PCCデコーダ300が確実に固定ビット幅で機能することができるようにしてもよい。たとえば、G-PCCデコーダ300が、プロセスにおける内部変数/一時変数が32ビットを超えるように構成されない(たとえば、G-PCCデコーダ300が、32ビットを超える内部変数/一時変数を処理するように構成されない)場合、演算の一時的結果が32ビットを超えることがなくなる制約が追加されてもよい。いくつかの例では、残差値は、特定の範囲内になるように制約されてもよい。予測変換では、以下の制約が追加されてもよい。
予測変換では、CoeffLevel[][]の値は、[-2bd-1, 2bd-1]の範囲の中にあるものとする。
【0084】
いくつかの例では、CoeffLevelの値は、この範囲にクリッピングされてもよい。いくつかの例では、上記の制約/クリップは、属性の一次成分にのみ適用されるものとする。二次成分は、異なる値を有する同様の制約/クリップを有してもよい。たとえば、最大および最小ICRP係数が値2n(+C)および-2n(-C)を有する場合、二次ビット深度についてのCoeffLevel[]の値は、[-2bd-1-C*2bd-1, 2bd-1 + C*2bd+n-1]の範囲に制約/クリッピングされてもよい(ここで、Cは、小数ビットを含まなくてもよい)。いくつかの例では、G-PCCデコーダ300は、1つまたは複数の演算においてクリッピングを適用してもよい。より一般的には、制約/クリップは、属性成分のビット深度およびICRP係数の最大/最小値に依存してもよい。
【0085】
リフティング変換における属性値は、G-PCCの草案において定義されるように予測および更新段階を使用して更新される。追加として、係数重みは、値LODにおける点の相対的重要性を適用するように導出される。
【0086】
係数重みは、以下のように導出される変数quantWeightおよびiQuantWeightを使用するスケーリングおよび量子化演算において適用される。
コードリスティング1
const int64_t iQuantWeight = irsqrt(weights[predictorIndex]);
const int64_t quantWeight =
(weights[predictorIndex] * iQuantWeight + (1ull << 39)) >> 40;
上記のコードリスティング1において、predictorIndexは、属性の成分の指数であり、weights[predictorIndex]は、predictorIndexによって示される成分についての係数重みを示し、irsqrt( )は、整数平方根を返す関数であり、iQuantWeightは、predictorIndexによって示される成分の係数重みの整数平方根を示す変数であり、quantWeightは、量子化された係数重みであり、1ullは、1に等しい符号なしlong long値である。
【0087】
(予測更新プロセス後の)係数についての量子化演算は、次のように適用される。
コードリスティング2
auto& color = colors[predictorIndex];
int values[3];
values[0] = quant[0].quantize(color[0] * quantWeight);
上記のコードリスティング2では、colors[]は、属性の成分の値の配列であり、quant[]は、量子化パラメータ(QP)の配列であり、values[]は、成分の量子化値の配列である。quant[0].quantize()は、quant[]配列の位置0におけるQPを使用してパラメータ(たとえば、color[0] * quantWeight)を量子化する関数を示す。
【0088】
G-PCCデコーダ300では、残差値[]を使用して、次のように逆量子化プロセスを使用して係数を導出する。
コードリスティング3
int64_t scaled = quant[0].scale(values[0]);
color[0] = divExp2RoundHalfInf(scaled * iQuantWeight, 40);
上記のコードリスティング3では、quant[0].scale()は、quant[]配列の位置0におけるQPによってパラメータ(たとえば、values[0])をスケーリングする関数である。関数divExp2RoundHalfInf(x, y)は、値xをyビット右にシフトする。したがって、divExp2RoundHalfInfは事実上、除算演算であるが、得られた値は丸められる。
【0089】
最後の成分については、追加として、最後成分残差予測が次のように使用されてもよい(<E>...</E>タグにおけるステップは、エンコーダステップのみに適用され、<E>...</E>タグで囲まれないステップは、G-PCCエンコーダ200およびG-PCCデコーダ300に適用される)。
コードリスティング4
<E>values[1] = quant[1].quantize(color[1] * quantWeight);</E>
scaled = quant[1].scale(values[1]);
color[1] = divExp2RoundHalfInf(scaled * iQuantWeight, 40);
<E>color[2] -= (lastCompPredCoeff * color[1]) >> 2;</E>
scaled *= lastCompPredCoeff;
scaled >>= 2;
<E>values[2] = quant[1].quantize(color[2] * quantWeight);</E>
scaled += quant[1].scale(values[2]);
color[2] = divExp2RoundHalfInf(scaled * iQuantWeight, 40);
【0090】
属性の入力ビット深度に応じて、上記のステップのいくつかにおいてビットオーバーフローが生じることがあり、このことが属性の再構成される品質に影響を与えることがある。係数重みの固定点表現および64ビット内部変数に起因して、リフティング係数の値が15ビットを超えると(または8ビットの内部ビットシフトを考慮に入れる場合は15 + 8 = 23ビット)、再構成される値は、オーバーフローに起因して意図された値ではなくなる場合がある(たとえば、values[0]が式int64_t scaled = quant[0].scale(values[0])において16ビットであるとき)、コーディングリスト3では、以後の演算においてオーバーフローが生じる。
【0091】
本開示の技法によれば、属性の成分のいずれについてもscaled * iQuantWeight の値が64ビットを超えないことを必要とする制約が追加されてもよい。言い換えれば、scaled * iQuantWeightの値は、[-263, 263 - 1]の範囲に属する。
【0092】
別の例では、明示的な制約の代わりにクリッピング演算が適用されてもよい。たとえば、0番目の成分については、クリッピングは、次のコードリスティング5のように適用されてもよい。
コードリスティング5
color[1] = divExp2RoundHalfInf(Clip(-263, 263 - 1, scaled * iQuantWeight), 40)
上記のコードリスティング5では、clip(x, y, z)は、zがyよりも大きくなることができず、かつxよりも小さくなることができないように値zをクリッピングする。いくつかの例では、[scaled * iQuantWeight + (1 << 39)]の値が上記のように制約またはクリッピングされてもよい。同様のクリッピングが他の成分に適用されてもよい。
【0093】
追加として、いくつかの例では、オーバーフローを効果的または容易に回避するための他の制約が適用されてもよい。たとえば、属性ビット深度があるしきい値を超える場合、ビットオーバーフローは自明なケースでも生じることがある。したがって、属性ビット深度は、特定の値未満になるように制約されてもよい。たとえば、属性ビット深度は、固定値(たとえば、15)未満になるように制約されてもよい。
【0094】
同様に、現在、シグナリングされる係数/残差に対する明示的な制約はなく、残差の値はあるビット深度に等しくなるように制約しなければならない。たとえば、CoeffLevel[][][]の値は、範囲[-231, 231 - 1]の中にあるように制約されてもよい。ここで、CoeffLevel[][][]は、可変記憶残差値である。いくつかの例では、係数/残差のシグナリングされる値CoeffLevel[][][]は、Clip(-231, 231 - 1,CoeffLevel[][][])としてクリッピングされてもよい。このクリッピングはまた、予測変換などの他の変換に適用されてもよい。
【0095】
したがって、本開示の技法によれば、制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値のうちの少なくとも1つを1つまたは複数のあらかじめ定義されたビット深度(たとえば、15、32など)に限定してもよい。ICRPを伴う例などのいくつかの例では、制約は、点の属性の二次成分、点の属性の二次成分の残差値、および第2の点の属性の一次成分の残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定してもよい。
【0096】
図5は、本開示の1つまたは複数の技法による、点群データを符号化するための例示的な動作を示すフローチャートである。本開示のフローチャートに提示された動作は、例として与えられている。本開示の技法による他の動作は、より多数の、より少数の、もしくは異なる活動を含むことがあり、または、活動は異なる順序で実行されることがある。
【0097】
図5の例では、G-PCCエンコーダ200が点群データを取得してもよい(500)。点群データは、点群における点のロケーションを示すデータを含む。追加として、点群データは、点群における点の属性を示すデータを含む。G-PCCエンコーダ200は、点群データをデータソース104から取得してもよく、メモリ106から取得してもよく、または他の方法で点群データを受信もしくは生成してもよい。
【0098】
さらに、G-PCCエンコーダ200は、点群データを符号化してよい(502)。点群データを符号化することは、1つまたは複数の制約に準拠するビットストリーム(たとえば、属性ビットストリーム205)を生成することを含んでもよい。ビットストリームを生成することの一部として、G-PCCエンコーダ200は、点の属性の第1の成分の残差値を判定してもよい(504)。第1の成分は、属性の最後から2番目の成分であってもよい。たとえば、G-PCCエンコーダ200は、第1の成分の残差値を、第1の成分の値から第1の成分の予測値を引いた値として判定してもよい。言い換えれば、G-PCCエンコーダ200は、第1の成分の残差値をresidualpenul = attrpenul - predpenulとして判定してもよい。G-PCCエンコーダ200は、第1の成分の予測値を、すでに再構成された近傍属性値として生成するか、1つもしくは複数の近傍属性値のうちの属性値の加重平均として生成するか、または別の方法で生成してもよい。同様に、G-PCCエンコーダ200は、点の属性の第2の成分の予測値を生成してもよい(506)。G-PCCエンコーダ200は、第2の成分の予測値を、すでに再構成された近傍属性値として生成するか、1つもしくは複数の近傍属性値のうちの属性値の加重平均として生成するか、または別の方法で生成してもよい。
【0099】
G-PCCエンコーダ200は、第2の成分を、第2の成分の予測値および第2の成分についてのスケールファクタと第1の成分の残差値との乗算積の和として再構成してもよい(508)。たとえば、G-PCCエンコーダ200は、上記の式(4)において示されているように第2の成分を再構成してもよい。いくつかの例では、G-PCCエンコーダ200は、上記のコードリスティング4において示されているように第2の成分(color[2])を再構成してもよい。
【0100】
図5の例では、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。たとえば、第1の成分は、[-231, 231 - 1]の範囲に限定されてもよい。
【0101】
いくつかの例では、G-PCCエンコーダ200は、ICRPを使用して点群データの1つまたは複数の点を符号化してもよい。たとえば、G-PCCエンコーダ200は、点群データの第2の点の属性の一次成分の残差値を(たとえば、上記の式(1)を使用して)判定してもよい。追加として、G-PCCエンコーダ200は、点群データの第2の点の属性の二次成分の残差値を(たとえば、上記の式(3)を使用して)判定してもよい。G-PCCエンコーダ200は、第2の点の属性の二次成分の予測値を生成してもよい。G-PCCエンコーダ200は、第2の点の属性の二次成分を、第2の点の属性の二次成分の残差値、第2の点の属性の二次成分の予測値、および第2の点の属性の二次成分についてのスケールファクタと第2の点の属性の一次成分の残差値との乗算積の和として(たとえば、式(4)を使用して)再構成してもよい。1つまたは複数の制約は、第2の点の属性の二次成分、第2の点の属性の二次成分の残差値、または第2の点の属性の一次成分の残差値のうちの1つまたは複数を、1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含んでもよい。たとえば、第1の成分は、[-231, 231 - 1]の範囲に限定されてもよい。
【0102】
図6は、本開示の1つまたは複数の技法による、点群データを復号するための例示的な動作を示すフローチャートである。図6の例では、G-PCCデコーダ300は、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得してもよい(600)。G-PCCエンコーダ300は、入力インターフェース122、メモリ120、または別のソースからビットストリームを取得してもよい。G-PCCデコーダ300は、ビットストリームを復号してもよい(602)。
【0103】
ビットストリームを復号することの一部として、G-PCCデコーダ300は、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定してもよい(604)。たとえば、G-PCCデコーダ300は、第1の成分の残差値を示すシンタックス要素を属性ビットストリーム205から取得してもよい。
【0104】
さらに、G-PCCエンコーダ300は、点の属性の第2の成分の予測値を生成してもよい(606)。G-PCCデコーダ300は、第2の成分の予測値を、すでに再構成された近傍属性値として生成するか、1つもしくは複数の近傍属性値のうちの属性値の加重平均として生成するか、または別の方法で生成してもよい。
【0105】
G-PCCデコーダ300は、第2の成分を、第2の成分の予測値および第2の成分についてのスケールファクタと第1の成分の残差値との乗算積の和として再構成してもよい(608)。たとえば、G-PCCデコーダ300は、上記の式(4)において示されているように第2の成分を再構成してもよい。いくつかの例では、G-PCCデコーダ300は、上記のコードリスティング4において示されているように第2の成分(color[2])を再構成してもよい。
【0106】
図6の例では、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。たとえば、第1の成分の残差値は、[-231, 231 - 1]の範囲に限定されてもよい。
【0107】
いくつかの例では、G-PCCデコーダ300は、ICRPを使用して点群データの1つまたは複数の点を復号してもよい。たとえば、G-PCCエンコーダ300は、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの第2の点の属性の一次成分の残差値を(たとえば、上記の式(1)を使用して)判定してもよい。追加として、G-PCCデコーダ300は、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの第2の点の属性の二次成分の残差値を判定してもよい。G-PCCエンコーダ300は、第2の点の属性の二次成分の予測値を生成してもよい。G-PCCエンコーダ300は、第2の点の属性の二次成分を、第2の点の属性の二次成分の残差値、第2の点の属性の二次成分の予測値、および第2の点の属性の二次成分についてのスケールファクタと第2の点の属性の一次成分の残差値との乗算積の和として(たとえば、式(4)を使用して)再構成してもよい。1つまたは複数の制約は、第2の点の属性の二次成分を第2のあらかじめ定義されたビット深度に限定し、第2の点の属性の二次成分、第2の点の属性の二次成分の残差値、または第2の点の属性の一次成分の残差値のうちの1つまたは複数を、1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含んでもよい。たとえば、第1の成分は、[-231, 231 - 1]の範囲に限定されてもよい。
【0108】
図7は、本開示の1つまたは複数の技法とともに使用されてもよい例示的な距離測定システム700を示す概念図である。図7の例では、距離測定システム700は、照明器702およびセンサ704を含む。照明器702は光706を放出してもよい。いくつかの例では、照明器702は、1つまたは複数のレーザービームとして、光706を放射してもよい。光706は、赤外波長または可視光波長などの1つまたは複数の波長内にあってもよい。他の例では、光706は、コヒーレントなレーザー光ではない。光706がオブジェクト708などのオブジェクトに遭遇したとき、光706は戻り光710を生じる。戻り光710は後方散乱光および/または反射光を含んでもよい。戻り光710は、オブジェクト708の画像712をセンサ704上に生じるように戻り光710を導くレンズ711を通過してもよい。センサ704は、画像712に基づいて信号714を生成する。画像712は、(たとえば、図7の画像712の中のドットによって表されるような)点のセットを備えてもよい。
【0109】
いくつかの例では、照明器702およびセンサ704は、照明器702およびセンサ704が環境の360度ビューをキャプチャするように、回転構造体上に取り付けられてもよい(たとえば、回転するLIDARセンサ)。他の例では、距離測定システム700は、照明器702およびセンサ704が特定の範囲(たとえば、360度まで)の中でオブジェクトの距離を検出することを可能にする、1つまたは複数の光学構成要素(たとえば、ミラー、コリメータ、回折格子など)を含んでもよい。図7の例は単一の照明器702およびセンサ704のみを示しているが、距離測定システム700は照明器およびセンサの複数のセットを含んでもよい。
【0110】
いくつかの例では、照明器702は構造化された光パターンを生成する。そのような例では、距離測定システム700は、構造化された光パターンのそれぞれの画像がその上で形成される複数のセンサ704を含んでもよい。距離測定システム700は、構造化された光パターンの画像間の差異を使用して、構造化された光パターンが後方散乱するオブジェクト708までの距離を決定してもよい。構造化された光ベースの距離測定システムは、オブジェクト708が比較的センサ704に近い(たとえば、0.2メートルから2メートル)とき、高水準の正確さ(たとえば、サブミリメートル域の正確さ)を有することがある。この高水準の正確さは、モバイルデバイス(たとえば、モバイルフォン、タブレットコンピュータなど)のロック解除、およびセキュリティ用途などのための、顔認識への応用において有用であることがある。
【0111】
いくつかの例では、距離測定システム700は、time of flight (ToF)ベースのシステムである。距離測定システム700がToFベースのシステムであるいくつかの例では、照明器702は光のパルスを生成する。言い換えると、照明器702は放出された光706の振幅を変調してもよい。そのような例では、センサ704は、照明器702によって生成される光706のパルスからの戻り光710を検出する。距離測定システム700は次いで、光706が放出されたときと検出されたときとの間の遅延、および空中における既知の光の速度に基づいて、光706が後方散乱するオブジェクト708までの距離を決定してもよい。いくつかの例では、放出された光706の振幅を変調するのではなく(または、それに加えて)、照明器702は放出された光706の位相を変調してもよい。そのような例では、センサ704は、オブジェクト708からの戻り光710の位相を検出し、光の速度を使用して、および照明器702が特定の位相において光706を生成したときと、センサ704がその特定の位相において戻り光710を検出したときとの間の時間差に基づいて、オブジェクト708の上の点までの距離を決定してもよい。
【0112】
他の例では、点群は照明器702を使用せずに生成されてもよい。たとえば、いくつかの例では、距離測定システム700のセンサ704は、2つ以上の光学カメラを含んでもよい。そのような例では、距離測定システム700は、光学カメラを使用して、オブジェクト708を含む環境の立体画像をキャプチャしてもよい。距離測定システム700は、立体画像の中のロケーションの間の視差を計算し得る点群生成器716を含んでもよい。次いで、距離測定システム700は、視差を使用して、立体画像の中で示されるロケーションまでの距離を決定してもよい。これらの距離から、点群生成器716は、点群を生成してもよい。
【0113】
センサ704はまた、色および反射率情報などの、オブジェクト708の他の属性を検出してもよい。図7の例では、点群生成器716は、センサ704によって生成される信号714に基づいて点群を生成してもよい。距離測定システム700および/または点群生成器716は、データソース104(図1)の一部を形成してもよい。したがって、距離測定システム700によって生成された点群データは、本開示の技法のいずれかに従って符号化および/または復号されてもよい。
【0114】
図8は、本開示の1つまたは複数の技法が使用され得る、例示的な車両ベースシナリオを示す概念図である。図8の例では、車両800は、距離測定システム802を含む。距離測定システム802は、図8に関して説明した方式で実装されてもよい。図8の例に示されていないが、車両800は、同じく、データソース104(図1)などのデータソースと、G-PCCエンコーダ200(図1)などのG-PCCエンコーダとを含んでもよい。図8の例では、距離測定システム802は、道路の中の歩行者806または他のオブジェクトに反射するレーザービーム804を放射する。車両800のデータソースは、距離測定システム802によって生成された信号に基づいて点群を生成し得る。車両800のG-PCCエンコーダは、点群を符号化して、ジオメトリビットストリーム(図2)および属性ビットストリーム(図2)などのビットストリーム808を生成してもよい。ビットストリーム808は、G-PCCエンコーダによって取得される符号化されない点群よりはるかに少ないビットを含んでもよい。
【0115】
車両800の出力インターフェース(たとえば、出力インターフェース108(図1))は、ビットストリーム808を1つまたは複数の他のデバイスに送信してもよい。ビットストリーム808は、G-PCCエンコーダによって取得される符号化されない点群よりはるかに少ないビットを含んでもよい。したがって、車両800は、ビットストリーム808を他のデバイスに、符号化されない点群データより速やかに送信することができる場合がある。加えて、ビットストリーム808が必要とするデータ記憶能力は、より少なくてもよい。
【0116】
図8の例では、車両800は、ビットストリーム808を別の車両810に送信してもよい。車両810は、G-PCCデコーダ300(図1)などのG-PCCデコーダを含んでもよい。車両810のG-PCCデコーダは、ビットストリーム808を復号して点群を再構成してもよい。車両810は、様々な目的で再構成された点群を使用してもよい。たとえば、車両810は、歩行者806が車両800の前の路上にいることを再構成された点群に基づいて決定し、したがって、たとえば歩行者806が路上にいることを車両810の運転手が認識する前であっても、減速を開始してもよい。したがって、いくつかの例では、車両810は、再構成された点群に基づいて自律ナビゲーション動作を実行してもよい。
【0117】
追加または代替として、車両800は、ビットストリーム808をサーバシステム812へ送信してもよい。サーバシステム812は、ビットストリーム808を様々な目的のために使用してもよい。たとえば、サーバシステム812は、点群の後続の再構成のためにビットストリーム808を記憶してもよい。この例では、サーバシステム812は、他のデータ(たとえば、車両800によって生成される車両遠隔測定データ)と一緒に点群を使用して自律運転システムをトレーニングしてよい。他の例では、サーバシステム812は、法科学的衝突調査のためのその後の再構成のために、ビットストリーム808を記憶してもよい。残差値におけるオーバーフロー条件を回避することは、品質が不十分である点群データを回避するうえで重要である場合があり、品質が不十分である点群データは、自律ナビゲーションなどの点群データの様々な使用に悪影響を及ぼすことがある。
【0118】
図9は、本開示の1つまたは複数の技法が使用され得る、例示的なエクステンデッドリアリティシステムを示す概念図である。エクステンデッドリアリティ(XR)は、拡張現実(AR)、複合現実(MR)、および仮想現実(VR)を含む様々な技術をカバーするために使用される用語である。図9の例では、ユーザ900は、第1のロケーション902に位置する。ユーザ900は、XRヘッドセット904を装着している。XRヘッドセット904の代替として、ユーザ900は、モバイルデバイス(たとえば、モバイルフォン、タブレットコンピュータなど)を使用してもよい。XRヘッドセット904は、ロケーション902における物体906の上の点の位置を検出する、距離測定システムなどの深度検出センサを含む。XRヘッドセット904のデータソースは、深度検出センサによって生成された信号を使用して、ロケーション902における物体906の点群表現を生成してもよい。XRヘッドセット904は、点群を符号化してビットストリーム908を生成するように構成されたG-PCCエンコーダ(たとえば、図1のG-PCCエンコーダ200)を含んでもよい。
【0119】
XRヘッドセット904は、第2のロケーション914にいるユーザ912が付けているXRヘッドセット910に(たとえば、インターネットなどのネットワークを介して)ビットストリーム908を送信してもよい。XRヘッドセット910は、ビットストリーム908を復号して点群を再構成してもよい。XRヘッドセット910は、ロケーション902にある物体906を表すXR視覚化(たとえば、AR、MR、VR視覚化)を生成するために点群を使用してもよい。したがって、いくつかの例では、たとえばXRヘッドセット910がVR可視化を生成するとき、ユーザ912は、ロケーション902の3D没入型体験を有してもよい。いくつかの例では、XRヘッドセット910は、再構築された点群に基づいて仮想オブジェクトの位置を決定してもよい。たとえば、XRヘッドセット910は、環境(たとえば、ロケーション902)が平面を含むことを、再構成された点群に基づいて決定し、したがって、仮想オブジェクト(たとえば、アニメキャラクタ)は平面の上に設置されるべきであることを決定してもよい。XRヘッドセット910は、仮想オブジェクトが決定された位置にあるXR可視化を生成してもよい。たとえば、XRヘッドセット910は、平面の上に座っているアニメキャラクタを示してもよい。残差値におけるオーバーフロー条件を回避することは、品質が不十分な点群データを回避するうえで重要であることがあり、品質が不十分な点群データは、XR可視化のリアリズムを制限することがある。
【0120】
図10は、本開示の1つまたは複数の技法が使用され得る、例示的なモバイルデバイスシステムを示す概念図である。図10の例では、モバイルフォンまたはタブレットコンピュータなどのモバイルデバイス1000(たとえば、ワイヤレス通信デバイス)は、モバイルデバイス1000の環境内のオブジェクト1002上の点の位置を検出する、LIDARシステムなどの距離測定システムを含む。モバイルデバイス1000のデータソースは、深度検出センサによって生成された信号を使用して、オブジェクト1002の点群表現を生成してもよい。モバイルデバイス1000は、点群を符号化してビットストリーム1004を生成するように構成されたG-PCCエンコーダ(たとえば、図1のG-PCCエンコーダ200)を含んでもよい。図10の例では、モバイルデバイス1000は、ビットストリームをサーバシステムまたは他のモバイルデバイスなどのリモートデバイス1006に送信してもよい。リモートデバイス1006は、ビットストリーム1004を復号して、点群を再構成してもよい。リモートデバイス1006は、点群を様々な目的のために使用してもよい。たとえば、リモートデバイス1006は、点群を使用して、モバイルデバイス1000の環境のマップを生成してもよい。たとえば、リモートデバイス1006は、再構成された点群に基づいて建物の内部のマップを生成してもよい。別の例では、リモートデバイス1006は、点群に基づいて像(たとえば、コンピュータグラフィックス)を生成してもよい。たとえば、リモートデバイス1006は、点群の点をポリゴンの頂点として使用し、点の色属性を、ポリゴンをシェーディングするための基礎として使用してもよい。いくつかの例では、リモートデバイス1006は、再構成された点群を顔認識または他のセキュリティ用途のために使用してもよい。
【0121】
以下は、本開示の1つまたは複数の技法による場合がある条項の非限定的リストである。本開示の様々な条項における例は、個々にまたは任意の組合せで使用されてもよい。
【0122】
条項1A: 方法は、符号化された点群データを含むビットストリームを取得するステップと、ビットストリームが本開示で説明する制約のうちの1つまたは複数に準拠することに基づいて、デコーダが点群データを復号するように構成されているかどうかを判定するステップとを含む。
【0123】
条項2A: 点群データを復号するステップをさらに含む、条項1Aの方法。
【0124】
条項3A: 方法は、点群データを取得するステップと、点群データを符号化するステップとを含み、点群データを符号化するステップは、本開示で説明する制約のうちの1つまたは複数に準拠するビットストリームを生成するステップを含む。
【0125】
条項4A: 方法は、符号化された点群データを含むビットストリームを取得するステップと、ビットストリームが本開示で説明する制約のうちの1つまたは複数に準拠するかどうかを判定するステップとを含む。
【0126】
条項5A: 方法は、符号化された点群データを含むビットストリームを取得するステップと、点群データを復号するステップとを含み、点群データを復号するステップが、本開示で説明するクリッピング演算のうちの1つまたは複数を実行するステップを含む。
【0127】
条項6A: 方法は、点群データを取得するステップと、点群データを符号化するステップとを含み、点群データを符号化するステップは、本開示で説明するクリッピング演算のうちの1つまたは複数を実行するステップを含む。
【0128】
条項7A: 制約またはクリッピング演算のうちの1つまたは複数は、デコーダの演算がビット深度を超えないようにする、条項1Aから6Aのいずれかの方法。
【0129】
条項8A: 本開示の制約またはクリッピング演算のうちの1つまたは複数は、点群データの属性成分のビット深度および成分間残差予測係数の最小および最大値に依存する、条項1Aから6Aのいずれかの方法。
【0130】
条項9A: 条項1Aから8Aの方法の任意の組合せを含む方法。
【0131】
条項10A: 条項1Aから9Aのいずれかの方法を実行するための1つまたは複数の手段を備えるデバイス。
【0132】
条項11A: 1つまたは複数の手段が、回路において実装された1つまたは複数のプロセッサを備える、条項10Aのデバイス。
【0133】
条項12A: 点群データを記憶するためのメモリをさらに備える、条項10Aまたは11Aのいずれかのデバイス。
【0134】
条項13A: デバイスがデコーダを備える、条項10Aから12Aのいずれかのデバイス。
【0135】
条項14A: デバイスがエンコーダを備える、条項10Aから13Aのいずれかのデバイス。
【0136】
条項15A: 点群データを生成するためのデバイスをさらに備える、条項10Aから14Aのいずれかのデバイス。
【0137】
条項16A: 点群に基づいて像を提示するためのディスプレイをさらに備える、条項10Aから15Aのいずれかのデバイス。
【0138】
条項17A: 命令を記憶したコンピュータ可読記憶媒体であって、命令が、実行されたときに、1つまたは複数のプロセッサに、条項1Aから9Aのいずれかの方法を実行させる、コンピュータ可読記憶媒体。
【0139】
条項1B: 点群データを復号する方法は、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得するステップと、ビットストリームを復号するステップとを含み、ビットストリームを復号するステップが、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定するステップと、点の属性の第2の成分の予測値を生成するステップと、第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成するステップとを含み、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【0140】
条項2B: 点は、点群データの第1の点であり、あらかじめ定義されたビット深度は、第1のビット深度であり、ビットストリームを復号するステップは、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの第2の点の属性の一次成分の残差値を判定するステップと、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの第2の点の属性の二次成分の残差値を判定するステップと、第2の点の属性の二次成分の予測値を生成するステップと、第2の点の属性の二次成分を、第2の点の属性の二次成分の残差値、第2の点の属性の二次成分の予測値、および第2の点の属性の二次成分についてのスケールファクタと第2の点の属性の一次成分の残差値との乗算積の和として再構成するステップとをさらに含み、1つまたは複数の制約は、第2の点の属性の二次成分、第2の点の属性の二次成分の残差値、および第2の点の属性の一次成分の残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含む、条項1Bの方法。
【0141】
条項3B: 点の属性の第1の成分の残差値をあらかじめ定義されたビット深度のうちの1つにクリッピングするステップをさらに含む、条項1Bおよび2Bのいずれかの方法。
【0142】
条項4B: ビットストリームが1つまたは複数の制約に準拠することに基づいて、点群データを復号するかどうかを判定するステップをさらに含む、条項1Bから3Bのいずれかの方法。
【0143】
条項5B: 点の第1の成分の残差値を判定するステップは、第1の成分のシグナリングされる値を逆量子化するステップを含み、第1の成分のシグナリングされる値は、ビットストリームにおいてシグナリングされる、条項1Bから4Bのいずれかの方法。
【0144】
条項6B: 点群データを符号化する方法は、点群データを取得するステップと、点群データを符号化するステップとを含み、点群データを符号化するステップは、1つまたは複数の制約に準拠するビットストリームを生成するステップを含み、ビットストリームを生成するステップは、点の属性の第1の成分の残差値を判定するステップと、点の属性の第2の成分の予測値を生成するステップと、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成するステップとを含み、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【0145】
条項7B: 点は、第1の点であり、あらかじめ定義されたビット深度は、第1のあらかじめ定義されたビット深度であり、点群データを符号化するステップは、点群データの第2の点の属性の一次成分の残差値を判定するステップと、点群データの第2の点の属性の二次成分の残差値を判定するステップと、第2の点の属性の二次成分の予測値を生成するステップと、第2の点の属性の二次成分を、第2の点の属性の二次成分の残差値、第2の点の属性の二次成分の予測値、および第2の点の属性の二次成分についてのスケールファクタと第2の点の属性の一次成分の残差値との乗算積の和として再構成するステップとをさらに含み、1つまたは複数の制約は、第2の点の属性の二次成分、第2の点の属性の二次成分の残差値、および第2の点の属性の一次成分の残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含む、条項6Bの方法。
【0146】
条項8B: 第1の成分の残差値をあらかじめ定義されたビット深度のうちの1つにクリッピングするステップをさらに含む、条項6Bおよび7Bのいずれかの方法。
【0147】
条項9B: 第1の成分の残差値を判定するステップは、第1の成分のシグナリングされる値を逆量子化するステップを含み、第1の成分のシグナリングされる値は、ビットストリームにおいてシグナリングされる、条項6Bから8Bのいずれかの方法。
【0148】
条項10B: 点群データを生成するステップをさらに含む、条項6Bから9Bのいずれかの方法。
【0149】
条項11B: デバイスは、点群データを記憶するように構成されたメモリと、メモリに結合され、回路において実装された1つまたは複数のプロセッサであって、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得して、ビットストリームを復号するように構成された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、ビットストリームを復号することの一部として、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定することと、点の属性の第2の成分の予測値を生成することと、第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成することとを行うように構成され、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【0150】
条項12B: 点は、点群データの第1の点であり、あらかじめ定義されたビット深度は、第1のビット深度であり、1つまたは複数のプロセッサは、ビットストリームを復号することの一部として、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの第2の点の属性の一次成分の残差値を判定することと、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの第2の点の属性の二次成分の残差値を判定することと、第2の点の属性の二次成分の予測値を生成することと、第2の点の属性の二次成分を、第2の点の属性の二次成分の残差値、第2の点の属性の二次成分の予測値、および第2の点の属性の二次成分についてのスケールファクタと第2の点の属性の一次成分の残差値との乗算積の和として再構成することとを行うように構成され、1つまたは複数の制約は、第2の点の属性の二次成分、第2の点の属性の二次成分の残差値、および第2の点の属性の一次成分の残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含む、条項11Bのデバイス。
【0151】
条項13B: 1つまたは複数のプロセッサは、第1の成分の残差値をあらかじめ定義されたビット深度のうちの1つにクリッピングするようにさらに構成される、条項11Bおよび12Bのいずれかのデバイス。
【0152】
条項14B: 1つまたは複数のプロセッサは、ビットストリームが1つまたは複数の制約に準拠することに基づいて、点群データを復号するかどうかを判定するようにさらに構成される、条項11Bから13Bのいずれかのデバイス。
【0153】
条項15B: 1つまたは複数のプロセッサは、第1の成分の残差値を判定することの一部として、第1の成分のシグナリングされる値を逆量子化するように構成され、第1の成分のシグナリングされる値は、ビットストリームにおいてシグナリングされる、条項11Bから14Bのいずれかのデバイス。
【0154】
条項16B: デバイスは、点群データを記憶するように構成されたメモリと、メモリに結合され、回路において実装された1つまたは複数のプロセッサであって、点群データを符号化するように構成された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、点群データを符号化することの一部として、1つまたは複数の制約に準拠するビットストリームを生成するように構成され、1つまたは複数のプロセッサは、ビットストリームを生成することの一部として、点の属性の第1の成分の残差値を判定することと、点の属性の第2の成分の予測値を生成することと、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成することとを行うように構成され、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【0155】
条項17B: 点は、第1の点であり、あらかじめ定義されたビット深度は、第1のあらかじめ定義されたビット深度であり、1つまたは複数のプロセッサは、点群データを符号化することの一部として、点群データの第2の点の属性の一次成分の残差値を判定することと、点群データの第2の点の属性の二次成分の残差値を判定することと、第2の点の属性の二次成分の予測値を生成することと、第2の点の属性の二次成分を、第2の点の属性の二次成分の残差値、第2の点の属性の二次成分の予測値、および第2の点の属性の二次成分についてのスケールファクタと第2の点の属性の一次成分の残差値との乗算積の和として再構成することとを行うように構成され、1つまたは複数の制約は、第2の点の属性の二次成分、第2の点の属性の二次成分の残差値、および第2の点の属性の一次成分の残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含む、条項16Bのデバイス。
【0156】
条項18B: 1つまたは複数のプロセッサは、第1の成分の残差値をあらかじめ定義されたビット深度のうちの1つにクリッピングするようにさらに構成される、条項16Bおよび17Bのいずれかのデバイス。
【0157】
条項19B: 1つまたは複数のプロセッサは、第1の成分の残差値を判定することの一部として、第1の成分のシグナリングされる値を逆量子化するように構成され、第1の成分のシグナリングされる値は、ビットストリームにおいてシグナリングされる、条項16Bから18Bのいずれかのデバイス。
【0158】
条項20B: 点群データを生成するためのセンサをさらに備える、条項16Bから19Bのいずれかのデバイス。
【0159】
条項21B: デバイスは、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得するための手段と、ビットストリームを復号するための手段とを含み、ビットストリームを復号するための手段は、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定するための手段と、点の属性の第2の成分の予測値を生成するための手段と、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成するための手段とを備え、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【0160】
条項22B: デバイスは、点群データを取得するための手段と、点群データを符号化するための手段とを含み、点群データを符号化するための手段は、1つまたは複数の制約に準拠するビットストリームを生成するための手段を含み、ビットストリームを生成するための手段は、点の属性の第1の成分の残差値を判定するための手段と、点の属性の第2の成分の予測値を生成するための手段と、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成するための手段とを含み、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【0161】
条項23B: 命令を記憶した非一時的コンピュータ可読データ記憶媒体であって、命令が、実行されたときに、1つまたは複数のプロセッサに、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得することと、ビットストリームを復号することとを行わせ、1つまたは複数のプロセッサにビットストリームを復号させる命令は、実行されたときに、1つまたは複数のプロセッサに、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定することと、点の属性の第2の成分の予測値を生成することと、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成することとを行わせる命令を含み、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、非一時的コンピュータ可読データ記憶媒体。
【0162】
条項24B: 命令を記憶した非一時的コンピュータ可読データ記憶媒体であって、命令が、実行されたときに、1つまたは複数のプロセッサに、点群データを取得することと、点群データを符号化することとを行わせ、1つまたは複数のプロセッサに点群データを符号化させる命令は、実行されたときに、1つまたは複数のプロセッサに、1つまたは複数の制約に準拠するビットストリームを生成させる命令を含み、1つまたは複数のプロセッサにビットストリームを生成させる命令は、実行されたときに、1つまたは複数のプロセッサに、点の属性の第1の成分の残差値を判定することと、点の属性の第2の成分の予測値を生成することと、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成することとを行わせる命令を含み、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、非一時的コンピュータ可読データ記憶媒体。
【0163】
条項1C: 点群データを復号する方法は、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得するステップと、ビットストリームを復号するステップとを含み、ビットストリームを復号するステップは、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定するステップと、点の属性の第2の成分の予測値を生成するステップと、第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成するステップとを含み、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【0164】
条項2C: 点は、点群データの第1の点であり、あらかじめ定義されたビット深度は、第1のビット深度であり、ビットストリームを復号するステップは、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの第2の点の属性の一次成分の残差値を判定するステップと、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの第2の点の属性の二次成分の残差値を判定するステップと、第2の点の属性の二次成分の予測値を生成するステップと、第2の点の属性の二次成分を、第2の点の属性の二次成分の残差値、第2の点の属性の二次成分の予測値、および第2の点の属性の二次成分についてのスケールファクタと第2の点の属性の一次成分の残差値との乗算積の和として再構成するステップとをさらに含み、1つまたは複数の制約は、第2の点の属性の二次成分、第2の点の属性の二次成分の残差値、および第2の点の属性の一次成分の残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含む、条項1Cの方法。
【0165】
条項3C: 点の属性の第1の成分の残差値をあらかじめ定義されたビット深度のうちの1つにクリッピングするステップをさらに含む、条項1Cの方法。
【0166】
条項4C: ビットストリームが1つまたは複数の制約に準拠することに基づいて、点群データを復号するかどうかを判定するステップをさらに含む、条項1Cの方法。
【0167】
条項5C: 点の第1の成分の残差値を判定するステップは、第1の成分のシグナリングされる値を逆量子化するステップを含み、第1の成分のシグナリングされる値は、ビットストリームにおいてシグナリングされる、条項1Cの方法。
【0168】
条項6C: 点群データを符号化する方法は、点群データを取得するステップと、点群データを符号化するステップとを含み、点群データを符号化するステップは、1つまたは複数の制約に準拠するビットストリームを生成するステップを含み、ビットストリームを生成するステップは、点の属性の第1の成分の残差値を判定するステップと、点の属性の第2の成分の予測値を生成するステップと、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成するステップとを含み、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【0169】
条項7C: 点は、第1の点であり、あらかじめ定義されたビット深度は、第1のあらかじめ定義されたビット深度であり、点群データを符号化するステップは、点群データの第2の点の属性の一次成分の残差値を判定するステップと、点群データの第2の点の属性の二次成分の残差値を判定するステップと、第2の点の属性の二次成分の予測値を生成するステップと、第2の点の属性の二次成分を、第2の点の属性の二次成分の残差値、第2の点の属性の二次成分の予測値、および第2の点の属性の二次成分についてのスケールファクタと第2の点の属性の一次成分の残差値との乗算積の和として再構成するステップとをさらに含み、1つまたは複数の制約は、第2の点の属性の二次成分、第2の点の属性の二次成分の残差値、および第2の点の属性の一次成分の残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含む、条項6Cの方法。
【0170】
条項8C: 第1の成分の残差値をあらかじめ定義されたビット深度のうちの1つにクリッピングするステップをさらに含む、条項6Cの方法。
【0171】
条項9C: 第1の成分の残差値を判定するステップは、第1の成分のシグナリングされる値を逆量子化するステップを含み、第1の成分のシグナリングされる値は、ビットストリームにおいてシグナリングされる、条項6Cの方法。
【0172】
条項10C: 点群データを生成するステップをさらに含む、条項6Cの方法。
【0173】
条項11C: デバイスは、点群データを記憶するように構成されたメモリと、メモリに結合され、回路において実装された1つまたは複数のプロセッサであって、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得して、ビットストリームを復号するように構成された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、ビットストリームを復号することの一部として、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定することと、点の属性の第2の成分の予測値を生成することと、第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成することとを行うように構成され、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【0174】
条項12C: 点は、点群データの第1の点であり、あらかじめ定義されたビット深度は、第1のビット深度であり、1つまたは複数のプロセッサは、ビットストリームを復号することの一部として、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの第2の点の属性の一次成分の残差値を判定することと、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの第2の点の属性の二次成分の残差値を判定することと、第2の点の属性の二次成分の予測値を生成することと、第2の点の属性の二次成分を、第2の点の属性の二次成分の残差値、第2の点の属性の二次成分の予測値、および第2の点の属性の二次成分についてのスケールファクタと第2の点の属性の一次成分の残差値との乗算積の和として再構成することとを行うように構成され、1つまたは複数の制約は、第2の点の属性の二次成分、第2の点の属性の二次成分の残差値、および第2の点の属性の一次成分の残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含む、条項11Cのデバイス。
【0175】
条項13C: 1つまたは複数のプロセッサは、第1の成分の残差値をあらかじめ定義されたビット深度のうちの1つにクリッピングするようにさらに構成される、条項11Cのデバイス。
【0176】
条項14C: 1つまたは複数のプロセッサは、ビットストリームが1つまたは複数の制約に準拠することに基づいて、点群データを復号するかどうかを判定するようにさらに構成される、条項11Cのデバイス。
【0177】
条項15C: 1つまたは複数のプロセッサは、第1の成分の残差値を判定することの一部として、第1の成分のシグナリングされる値を逆量子化するように構成され、第1の成分のシグナリングされる値は、ビットストリームにおいてシグナリングされる、条項11Cのデバイス。
【0178】
条項16C: デバイスは、点群データを記憶するように構成されたメモリと、メモリに結合され、回路において実装された1つまたは複数のプロセッサであって、点群データを符号化するように構成された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、点群データを符号化することの一部として、1つまたは複数の制約に準拠するビットストリームを生成するように構成され、1つまたは複数のプロセッサは、ビットストリームを生成することの一部として、点の属性の第1の成分の残差値を判定することと、点の属性の第2の成分の予測値を生成することと、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成することとを行うように構成され、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【0179】
条項17C: 点は、第1の点であり、あらかじめ定義されたビット深度は、第1のあらかじめ定義されたビット深度であり、1つまたは複数のプロセッサは、点群データを符号化することの一部として、点群データの第2の点の属性の一次成分の残差値を判定することと、点群データの第2の点の属性の二次成分の残差値を判定することと、第2の点の属性の二次成分の予測値を生成することと、第2の点の属性の二次成分を、第2の点の属性の二次成分の残差値、第2の点の属性の二次成分の予測値、および第2の点の属性の二次成分についてのスケールファクタと第2の点の属性の一次成分の残差値との乗算積の和として再構成することとを行うように構成され、1つまたは複数の制約は、第2の点の属性の二次成分、第2の点の属性の二次成分の残差値、および第2の点の属性の一次成分の残差値を1つまたは複数の第2のあらかじめ定義されたビット深度に限定する制約を含む、条項16Cのデバイス。
【0180】
条項18C: 1つまたは複数のプロセッサは、第1の成分の残差値をあらかじめ定義されたビット深度のうちの1つにクリッピングするようにさらに構成される、条項16Cのデバイス。
【0181】
条項19C: 1つまたは複数のプロセッサは、第1の成分の残差値を判定することの一部として、第1の成分のシグナリングされる値を逆量子化するように構成され、第1の成分のシグナリングされる値は、ビットストリームにおいてシグナリングされる、条項16Cのデバイス。
【0182】
条項20C: 点群データを生成するためのセンサをさらに備える、条項16のデバイス。
【0183】
条項21C: デバイスは、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得するための手段と、ビットストリームを復号するための手段とを含み、ビットストリームを復号するための手段は、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定するための手段と、点の属性の第2の成分の予測値を生成するための手段と、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成するための手段とを備え、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【0184】
条項22C: デバイスは、点群データを取得するための手段と、点群データを符号化するための手段とを含み、点群データを符号化するための手段は、1つまたは複数の制約に準拠するビットストリームを生成するための手段を含み、ビットストリームを生成するための手段は、点の属性の第1の成分の残差値を判定するための手段と、点の属性の第2の成分の予測値を生成するための手段と、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成するための手段とを備え、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む。
【0185】
条項23C: 命令を記憶した非一時的コンピュータ可読データ記憶媒体であって、命令が、実行されたときに、1つまたは複数のプロセッサに、1つまたは複数の制約に準拠するように符号化されたビットストリームを取得することと、ビットストリームを復号することとを行わせ、1つまたは複数のプロセッサにビットストリームを復号させる命令は、実行されたときに、1つまたは複数のプロセッサに、ビットストリームにおいてシグナリングされるデータに基づいて、点群データの点の属性の第1の成分の残差値を判定することと、点の属性の第2の成分の予測値を生成することと、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成することとを行わせる命令を含み、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、非一時的コンピュータ可読データ記憶媒体。
【0186】
条項24C: 命令を記憶した非一時的コンピュータ可読データ記憶媒体であって、命令が、実行されたときに、1つまたは複数のプロセッサに、点群データを取得することと、点群データを符号化することとを行わせ、1つまたは複数のプロセッサに点群データを符号化させる命令は、実行されたときに、1つまたは複数のプロセッサに、1つまたは複数の制約に準拠するビットストリームを生成させる命令を含み、1つまたは複数のプロセッサにビットストリームを生成させる命令は、実行されたときに、1つまたは複数のプロセッサに、点の属性の第1の成分の残差値を判定することと、点の属性の第2の成分の予測値を生成することと、点の属性の第2の成分を、点の属性の第2の成分の予測値および点の属性の第2の成分についてのスケールファクタと点の属性の第1の成分の残差値との乗算積の和として再構成することとを行わせる命令を含み、1つまたは複数の制約は、点の属性の第1の成分、点の属性の第1の成分の残差値、属性の第2の成分、および点の属性の第2の成分の残差値を1つまたは複数のあらかじめ定義されたビット深度に限定する制約を含む、非一時的コンピュータ可読データ記憶媒体。
【0187】
本開示は、独立に適用されることも、または組み合わせて適用されることもある1つまたは複数の例について説明する。例に応じて、本明細書で説明した技法のうちのいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行されることが可能であり、追加されてもよく、統合されてもよく、または完全に除外されてもよい(たとえば、説明したすべての行為またはイベントが技法の実践にとって必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて並行して実行されてもよい。
【0188】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるかまたはコンピュータ可読媒体を介して送信されてもよく、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含んでもよい。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応してもよい。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であってもよい。コンピュータプログラム製品はコンピュータ可読媒体を含んでもよい。
【0189】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用でき、コンピュータによってアクセスすることができる任意の他の媒体を備えてもよい。また、いかなる接続も適切にコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義の中に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびブルーレイディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記のものの組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0190】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の等価な集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行されてもよい。したがって、本明細書で使用される「プロセッサ」および「処理回路」という用語は、上記の構造、または本明細書で説明される技法の実装に適した任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明される機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で提供されてもよく、または複合コーデックに組み込まれてもよい。また、技法は、1つまたは複数の回路または論理要素において完全に実装されてもよい。
【0191】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装されてもよい。開示された技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて本開示で説明したが、それらは必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられてもよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上で説明されたような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてもよい。
【0192】
様々な例について説明した。これらおよび他の例は、以下の特許請求の範囲内に入る。
【符号の説明】
【0193】
100 システム
102 ソースデバイス
104 データソース
106 メモリ
108 出力インターフェース
110 コンピュータ可読媒体
112 記憶デバイス
114 ファイルサーバ
116 宛先デバイス
118 データコンシューマ
120 メモリ
122 入力インターフェース
200 G-PCCエンコーダ
202 座標変換ユニット
203 ジオメトリビットストリーム
204 色変換ユニット
205 属性ビットストリーム
206 ボクセル化ユニット
208 属性転送ユニット
210 8分木分析ユニット
212 表面近似分析ユニット
214 算術符号化ユニット
216 ジオメトリ再構成ユニット
218 RAHTユニット
220 LOD生成ユニット
222 リフティングユニット
224 係数量子化ユニット
226 算術符号化ユニット
300 G-PCCデコーダ
302 ジオメトリ算術復号ユニット
304 属性算術復号ユニット
306 8分木合成ユニット
308 逆量子化ユニット
310 表面近似合成ユニット
312 ジオメトリ再構成ユニット
314 RAHTユニット
316 LOD生成ユニット
318 逆リフティングユニット
320 逆座標変換ユニット
322 逆色変換ユニット
700 距離測定システム
702 照明器
704 センサ
706 光
708 オブジェクト
710 戻り光
711 レンズ
712 画像
714 信号
716 点群生成器
800 車両
802 距離測定システム
804 レーザービーム
806 歩行者
808 ビットストリーム
810 車両
812 サーバシステム
900 ユーザ
902 第1のロケーション
904 XRヘッドセット
906 物体
908 ビットストリーム
910 XRヘッドセット
912 ユーザ
914 第2のロケーション
1000 モバイルデバイス
1002 オブジェクト
1004 ビットストリーム
1006 リモートデバイス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【国際調査報告】