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

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

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7383171点群コーディングのための方法および装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-09
(45)【発行日】2023-11-17
(54)【発明の名称】点群コーディングのための方法および装置
(51)【国際特許分類】
   H04N 19/96 20140101AFI20231110BHJP
   H04N 19/597 20140101ALI20231110BHJP
【FI】
H04N19/96
H04N19/597
【請求項の数】 17
(21)【出願番号】P 2022552148
(86)(22)【出願日】2021-09-22
(65)【公表番号】
(43)【公表日】2023-04-13
(86)【国際出願番号】 US2021051430
(87)【国際公開番号】W WO2022119616
(87)【国際公開日】2022-06-09
【審査請求日】2022-08-29
(31)【優先権主張番号】63/121,835
(32)【優先日】2020-12-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/466,729
(32)【優先日】2021-09-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ガオ,ウェン
(72)【発明者】
【氏名】ジャン,シァン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】田中 純一
(56)【参考文献】
【文献】国際公開第2020/072665(WO,A1)
【文献】特表2021-528917(JP,A)
【文献】特表2021-529460(JP,A)
【文献】特表2021-530889(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
G06T 1/00
G06T 9/00 - 19/20
(57)【特許請求の範囲】
【請求項1】
点群エンコーダにおける点群ジオメトリ符号化の方法であって、
第1の区分深度において点群に対してジオメトリコーディングを実行するステップと、
第2の区分深度において前記点群の複数の最大コーディング単位(LCU)を決定するステップと、
前記第2の区分深度において前記点群の前記複数のLCUのうちのLCUのコーディング状態を設定するステップと、
前記第2の区分深度における前記LCUの前記コーディング状態に基づいて、前記第2の区分深度において前記点群の前記複数のLCUに対して前記ジオメトリコーディングを実行するステップと
を含む方法。
【請求項2】
前記ジオメトリコーディングは、八分木ベースのジオメトリコーディングおよび予測ツリーベースのコーディングのうちの1つを含む、請求項1に記載の方法。
【請求項3】
前記LCUの前記コーディング状態を設定する前記ステップは、
前記点群の初期状態を用いて前記LCUの前記コーディング状態を設定するステップを含み、前記点群の前記初期状態は、前記ジオメトリコーディングに基づいて前記点群がコーディングされる前に取得される、
請求項1に記載の方法。
【請求項4】
前記LCUの前記コーディング状態を設定する前記ステップは、
前記LCUが前記第2の区分深度における前記点群の前記複数のLCUのうちの第1のLCUであることに基づいて、前記点群が前記第1の区分深度における前記ジオメトリコーディングに基づいてコーディングされた後に取得された前記コーディング状態を記憶するステップ
を含む、請求項1に記載の方法。
【請求項5】
前記LCUの前記コーディング状態を設定する前記ステップは、
前記LCUが前記第2の区分深度における前記点群の前記複数のLCUのうちの第1のLCUではないことに基づいて、(i)前記点群が前記第1の区分深度における前記ジオメトリコーディングに基づいてコーディングされた後に取得されるか、または(ii)前記点群の前記複数のLCUのうちの前記第1のLCUが前記第2の区分深度における前記ジオメトリコーディングに基づいてコーディングされる前に記憶されるか記憶されたコーディング状態を用いて前記LCUの前記コーディング状態を設定するステップ
を含む、請求項1に記載の方法。
【請求項6】
前記コーディング状態は、前記LCUに関連付けられたエントロピーコーディングのためのコンテキストまたは前記LCUに関連付けられたジオメトリ占有履歴情報のうちの少なくとも1つを備える、請求項1に記載の方法。
【請求項7】
前記複数のLCUの各々は、前記第2の区分深度においてそれぞれのノードを含む、請求項1に記載の方法。
【請求項8】
点群エンコーダにおける点群ジオメトリ符号化の方法であって、
点群の最大コーディング単位(LCU)の密度を決定するステップと、ここで、前記LCUの前記密度は、前記LCUにおける点の数と前記LCUのボリュームの比であり、
前記LCUの前記密度と第1の閾値とに基づいて前記LCUのジオメトリコーディングモードを決定するステップと、
ビットストリームでジオメトリコーディングモード情報をシグナリングするステップと、ここで、前記ジオメトリコーディングモード情報は、前記LCUの前記密度と前記第1の閾値とに基づく前記LCUの前記決定されたジオメトリコーディングモードを示す、
方法。
【請求項9】
前記LCUの前記ジオメトリコーディングモードを決定する前記ステップは、
前記LCUの前記密度が前記第1の閾値以下であることに基づいて、前記LCUの前記ジオメトリコーディングモードが予測ツリージオメトリコーディングであると決定するステップと、
前記LCUの前記密度が前記第1の閾値よりも大きいことに基づいて、前記LCUの前記ジオメトリコーディングモードが八分木ベースのジオメトリコーディングであると決定するステップとをさらに含む、請求項8に記載の方法。
【請求項10】
前記LCUの前記ジオメトリコーディングモードを決定する前記ステップは、
前記LCUの前記密度が前記第1の閾値以上第2の閾値以下であることに基づいて、前記LCUの前記ジオメトリコーディングモードが予測ツリージオメトリコーディングであると決定するステップと、ここで、前記第2の閾値は、前記第1の閾値よりも大きい、
前記LCUの前記密度が前記第1の閾値よりも小さいかまたは前記第2の閾値よりも大きいかのいずれかであることに基づいて、前記LCUの前記ジオメトリコーディングモードが八分木ベースのジオメトリコーディングであると決定するステップと
をさらに含む、請求項8に記載の方法。
【請求項11】
前記LCUの前記ジオメトリコーディングモードを決定する前記ステップは、
(i)前記LCUの前記密度が前記第1の閾値以上第2の閾値以下であり、かつ、(ii)前記LCU内の点の数が点数閾値以上であることに基づいて、前記LCUの前記ジオメトリコーディングモードが予測ツリージオメトリコーディングであると決定するステップと、
(i)前記LCUの前記密度が前記第1の閾値よりも小さいかまたは前記第2の閾値よりも大きいかのいずれかであること、および(ii)前記LCU内の前記点の数が前記点数閾値よりも小さいことのうちの1つに基づいて、前記LCUの前記ジオメトリコーディングモードが八分木ベースのジオメトリコーディングであると決定するステップと
をさらに含む、請求項8に記載の方法。
【請求項12】
前記ジオメトリコーディングモード情報をシグナリングする前記ステップは、
前記ジオメトリコーディングモードが第1のジオメトリコーディングモードであることに基づいて、第1の値を用いて前記ジオメトリコーディングモード情報をシグナリングするステップと、
前記ジオメトリコーディングモードが第2のジオメトリコーディングモードであることに基づいて、第2の値を用いて前記ジオメトリコーディングモード情報をシグナリングするステップと
をさらに含む、請求項8に記載の方法。
【請求項13】
前記ジオメトリコーディングモード情報は、コンテキストでエントロピーコーディングされるか、またはバイパスコーディングでコーディングされる、請求項8に記載の方法。
【請求項14】
前記ジオメトリコーディングモード情報をシグナリングする前記ステップは、
前記ジオメトリコーディングモードが第1のジオメトリコーディングモードであることに基づいて、第1の値を用いて前記ジオメトリコーディングモード情報をシグナリングするステップと、
前記ジオメトリコーディングモードが第2のジオメトリコーディングモードであることに基づいて、第2の値を用いて前記ジオメトリコーディングモード情報をシグナリングするステップと、
前記ジオメトリコーディングモードが第3のジオメトリコーディングモードであることに基づいて、第3の値を用いて前記ジオメトリコーディングモード情報をシグナリングするステップと
をさらに含む、請求項8に記載の方法。
【請求項15】
前記ジオメトリコーディングモード情報をシグナリングする前記ステップは、
第1のビンのみにおける第1の値を有する二値化情報が第1のジオメトリコーディングモードを示すことに基づいて、前記第1の値を用いて前記二値化情報をシグナリングするステップと、
前記第1のビンにおける第2の値および続の第2のビンにおける前記第1の値を有する前記二値化情報が第2のジオメトリコーディングモードを示すことに基づいて、前記第1のビンにおける前記第2の値および前記第2のビンにおける前記第1の値を用いて情報をシグナリングするステップと、
前記第1のビンにおける前記第2の値および前記第2のビンにおける前記第2の値を有する前記二値化情報が前記第3のジオメトリコーディングモードを示すことに基づいて、前記第1のビンおよび前記第2のビンにおける前記第2の値を有する前記二値化情報をシグナリングすることと
をさらに含む、請求項14に記載の方法。
【請求項16】
前記第1のビンにおける前記二値化情報は、第1のコンテキストでエントロピーコーディングされ、前記第2のビンにおける前記二値化情報は、第2のコンテキストでエントロピーコーディングされる、請求項15に記載の方法。
【請求項17】
点群データを処理するための装置であって、
請求項1から7のいずれか一項に記載の方法の各ステップを実行する手段を含む処理回路を備える、装置。
【発明の詳細な説明】
【技術分野】
【0001】
[参照による援用]
本出願は、2021年9月3日に出願された米国特許出願第17/466,729号「METHOD AND APPARATUS FOR POINT CLOUD CODING」に対する優先権の利益を主張し、これは、2020年12月4日に出願された米国仮出願第63/121,835号「UPDATE ON NODE-BASED GEOMETRY AND ATTRIBUTE CODING FOR A POINT CLOUD」に対する優先権の利益を主張するものである。先行出願の開示内容は、その全体が参照により本明細書に組み込まれる。
【0002】
[技術分野]
本開示は一般に、点群のためのノードベースのジオメトリおよび属性コーディングを含む、点群コーディングに関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としたものである。現在挙げられている発明者らの研究は、その研究がこの背景技術のセクションに記載されている限りにおいて、出願時に従来技術として適格でない可能性がある説明の態様と同様に、本開示に対する従来技術として明示的にも暗示的にも認められるものではない。
【0004】
3次元(3D)空間世界において、世界中の物体、世界中の環境などの世界をキャプチャして表現するための様々な技術が開発されている。世界の3D表現により、より没入型の対話およびコミュニケーションが可能になる。点群は、世界の3D表現として使用され得る。点群は、3D空間における点の集合であり、各々が、関連する属性、例えば、色、材料特性、テクスチャ情報、強度属性、反射率属性、動き関連属性、モダリティ属性、および/または様々な他の属性を有する。そのような点群は、大量のデータを含み得、記憶および送信に費用と時間がかかり得る。
【発明の概要】
【0005】
本開示の態様は、点群の圧縮および復元のための方法および装置を提供する。本開示の一態様によれば、点群エンコーダにおける点群ジオメトリ符号化の方法が提供される。この方法では、第1の区分深度において点群に対してジオメトリコーディングが実行され得る。さらに、第2の区分深度において点群の複数の最大コーディング単位(LCU)が決定され得る。第2の区分深度において点群の複数のLCUのうちのLCUのコーディング状態が設定され得る。第2の区分深度におけるLCUのコーディング状態に基づいて、第2の区分深度において点群の複数のLCUに対してジオメトリコーディングが実行され得る。
【0006】
いくつかの実施形態では、ジオメトリコーディングは、八分木ベースのジオメトリコーディングおよび予測ツリーベースのコーディングのうちの1つを含むことができる。
【0007】
一実施形態では、LCUのコーディング状態は、点群の初期状態を用いて設定され得、ここで、点群の初期状態は、ジオメトリコーディングに基づいて点群がコーディングされる前に取得され得る。
【0008】
別の実施形態では、LCUが第2の区分深度における点群の複数のLCUのうちの第1のLCUであるとき、コーディング状態は、点群が第1の区分深度におけるジオメトリコーディングに基づいてコーディングされた後に取得され、記憶され得る。
【0009】
さらに別の実施形態では、LCUが第2の区分深度における点群の複数のLCUのうちの第1のLCUでないとき、LCUのコーディング状態は、記憶されたコーディング状態を用いて設定され得る。記憶されたコーディング状態は、(i)点群が第1の区分深度におけるジオメトリコーディングに基づいてコーディングされた後に取得されるか、または(ii)点群の複数のLCUのうちの第1のLCUが第2の区分深度におけるジオメトリコーディングに基づいてコーディングされる前に記憶され得る。
【0010】
いくつかの実施形態では、コーディング状態は、LCUに関連付けられたエントロピーコーディングのためのコンテキストまたはLCUに関連付けられたジオメトリ占有履歴情報のうちの少なくとも1つを含むことができる。
【0011】
いくつかの実施形態では、複数のLCUの各々は、第2の区分深度においてそれぞれのノードを含むことができる。
【0012】
本開示の別の態様によれば、点群エンコーダにおける点群ジオメトリ符号化の方法が提供される。この方法では、点群の最大コーディング単位(LCU)の密度が決定され得る。LCUの密度は、LCU内の点の数とLCUのボリュームの比であり得る。LCUのジオメトリコーディングモードは、LCUの密度と第1の閾値とに基づいて決定され得る。ジオメトリコーディングモード情報は、ビットストリームでさらにシグナリングされ得、ここで、ジオメトリコーディングモード情報は、LCUの密度と第1の閾値とに基づくLCUの決定されたジオメトリコーディングモードを示すことができる。
【0013】
一例では、LCUのジオメトリコーディングモードは、LCUの密度が第1の閾値以下であることに基づいて、予測ツリージオメトリコーディングとして決定され得る。別の例では、LCUのジオメトリコーディングモードは、LCUの密度が第1の閾値よりも大きいことに基づいて、八分木ベースのジオメトリコーディングとして決定され得る。
【0014】
一例では、LCUのジオメトリコーディングモードは、LCUの密度が第1の閾値以上第2の閾値以下であることに基づいて、予測ツリージオメトリコーディングとして決定され得、ここで、第2の閾値は第1の閾値よりも大きいとする。さらに別の例では、LCUのジオメトリコーディングモードは、LCUの密度が第1の閾値よりも小さいかまたは第2の閾値よりも大きいかのいずれかであることに基づいて、八分木ベースのジオメトリコーディングとして決定され得る。
【0015】
一例では、LCUのジオメトリコーディングモードは、(i)LCUの密度が第1の閾値以上第2の閾値以下であり、かつ、(ii)LCU内の点の数が点数閾値以上であることに基づいて、予測ツリージオメトリコーディングとして決定され得る。別の例では、LCUのジオメトリコーディングモードは、(i)LCUの密度が第1の閾値よりも小さいかまたは第2の閾値よりも大きいかのいずれかであること、および(ii)LCU内の点の数が点数閾値よりも小さいことのうちの1つに基づいて、八分木ベースのジオメトリコーディングとして決定され得る。
【0016】
いくつかの実施形態では、ジオメトリコーディングモード情報は、ジオメトリコーディングモードが第1のジオメトリコーディングモードであることに基づいて、第1の値を用いてシグナリングされ得る。ジオメトリコーディングモード情報は、ジオメトリコーディングモードが第2のジオメトリコーディングモードであることに基づいて、第2の値を用いてシグナリングされ得る。
【0017】
この方法では、ジオメトリコーディングモード情報は、コンテキストでエントロピーコーディングされ得るか、またはバイパスコーディングでコーディングされ得る。
【0018】
一実施形態では、ジオメトリコーディングモード情報は、ジオメトリコーディングモードが第1のジオメトリコーディングモードであることに基づいて、第1の値を用いてシグナリングされ得る。別の実施形態では、ジオメトリコーディングモード情報は、ジオメトリコーディングモードが第2のジオメトリコーディングモードであることに基づいて、第2の値を用いてシグナリングされ得る。さらに別の例では、ジオメトリコーディングモード情報は、ジオメトリコーディングモードが第3のジオメトリコーディングモードであることに基づいて、第3の値を用いてシグナリングされ得る。
【0019】
いくつかの実施形態では、二値化情報は、第1のビンのみにおける第1の値を用いてシグナリングされ得、ここで、第1の値を有する二値化情報は、第1のジオメトリコーディングモードを示し得る。いくつかの実施形態では、二値化情報は、第1のビンにおける第2の値および後続の第2のビンにおける第1の値を用いてシグナリングされ得、ここで、第1のビンにおける第2の値および第2のビンにおける第1の値を有する二値化情報は、第2のジオメトリコーディングモードを示し得る。いくつかの実施形態では、二値化情報は、第1のビンにおける第2の値および第2のビンにおける第2の値を用いてシグナリングされ得、ここで、第1のビンおよび第2のビンにおける第2の値を有する二値化情報は、第3のジオメトリコーディングモードを示し得る。
【0020】
いくつかの実施形態では、第1のビンにおける二値化情報は第1のコンテキストでエントロピーコーディングされ得、第2のビンにおける二値化情報は第2のコンテキストでエントロピーコーディングされ得る。
【0021】
いくつかの例では、点群データを処理するための装置は、上述した方法のうちの1つまたは複数を実行するように構成された処理回路を含む。例えば、装置は、第1の区分深度において点群に対してジオメトリコーディングを実行するように構成された処理回路を含むことができる。処理回路はまた、第2の区分深度において点群の複数の最大コーディング単位(LCU)を決定するように構成され得る。処理回路は、第2の区分深度において点群の複数のLCUのうちのLCUのコーディング状態を設定するように構成され得る。処理回路は、第2の区分深度におけるLCUのコーディング状態に基づいて、第2の区分深度において点群の複数のLCUに対してジオメトリコーディングを実行するように構成され得る。
【0022】
別の例では、処理回路は、点群の最大コーディング単位(LCU)の密度を決定するように構成され得る。LCUの密度は、LCU内の点の数とLCUのボリュームの比であり得る。処理回路は、LCUの密度と第1の閾値とに基づいてLCUのジオメトリコーディングモードを決定するように構成され得る。処理回路は、ビットストリームでジオメトリコーディングモード情報をシグナリングするようにさらに構成され得、ここで、ジオメトリコーディングモード情報は、LCUの密度と第1の閾値とに基づくLCUの決定されたジオメトリコーディングモードを示すことができる。
【0023】
本開示のさらに別の態様によれば、非一時的コンピュータ可読記憶媒体が提供される。非一時的コンピュータ可読記憶媒体は、少なくとも1つのプロセッサによって実行されたときに、少なくとも1つのプロセッサに、上述した方法のうちの1つまたは複数を実行させる命令を記憶する。例えば、この方法では、第1の区分深度において点群に対してジオメトリコーディングが実行され得る。さらに、第2の区分深度において点群の複数の最大コーディング単位(LCU)が決定され得る。第2の区分深度において点群の複数のLCUのうちのLCUのコーディング状態が設定され得る。第2の区分深度におけるLCUのコーディング状態に基づいて、第2の区分深度において点群の複数のLCUに対してジオメトリコーディングが実行され得る。
【0024】
別の例では、この方法において、点群の最大コーディング単位(LCU)の密度が決定され得る。LCUの密度は、LCU内の点の数とLCUのボリュームの比であり得る。LCUのジオメトリコーディングモードは、LCUの密度と第1の閾値とに基づいて決定され得る。ジオメトリコーディングモード情報は、ビットストリームでさらにシグナリングされ得、ここで、ジオメトリコーディングモード情報は、LCUの密度と第1の閾値とに基づくLCUの決定されたジオメトリコーディングモードを示すことができる。
【図面の簡単な説明】
【0025】
開示される主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
図1】一実施形態による通信システムの簡略化されたブロック図の概略図である。
図2】一実施形態によるストリーミングシステムの簡略化されたブロック図の概略図である。
図3】いくつかの実施形態による、点群フレームを符号化するためのエンコーダのブロック図を示す。
図4】いくつかの実施形態による、点群フレームに対応する圧縮ビットストリームを復号するためのデコーダのブロック図を示す。
図5】いくつかの実施形態による、点群フレームを符号化するためのエンコーダのブロック図を示す。
図6】いくつかの実施形態による、点群フレームに対応する圧縮ビットストリームを復号するためのデコーダのブロック図を示す。
図7】本開示のいくつかの実施形態による、八分木区分技法に基づく立方体の区分を示す図を示す。
図8】本開示のいくつかの実施形態による、x-y軸、x-z軸、およびy-z軸に沿った四分木区分技法に基づく立方体の区分を示す図を示す。
図9】本開示のいくつかの実施形態による、x軸、y軸、およびz軸に沿った二分木区分技法に基づく立方体の区分を示す図を示す。
図10A】本開示のいくつかの実施形態による、八分木区分技法における幅優先走査順序(breadth-first traversal order)を示す図を示す。
図10B】本開示のいくつかの実施形態による、八分木区分技法における深度優先走査順序(depth-first traversal order)を示す図を示す。
図11】本開示のいくつかの実施形態による、予測ツリーベースのジオメトリコーディングの概略図である。
図12】いくつかの実施形態による、リフティングベースの属性コーディングにおける順方向変換のブロック図を示す。
図13】いくつかの実施形態による、リフティングベースの属性コーディングにおける逆方向変換のブロック図を示す。
図14A】本開示のいくつかの実施形態による、領域適応型階層的変換(RAHT)ベースの属性コーディングにおける順方向変換の図を示す。
図14B】本開示のいくつかの実施形態による、領域適応型階層的変換(RAHT)ベースの属性コーディングにおける逆方向変換の図を示す。
図15】本開示のいくつかの実施形態による、八分木区分および八分木区分に対応する八分木構造の一例を示す。
図16】本開示のいくつかの実施形態による、ノードベースの(LCUベースの)ジオメトリおよび属性コーディングの図を示す。
図17】本開示のいくつかの実施形態による、並列ノードベース(LCUベース)のコーディングを概説するフローチャートを示す。
図18】いくつかの実施形態による、第1の例示的な復号プロセスを概説するフローチャートを示す。
図19】いくつかの実施形態による、第2の例示的な復号プロセスを概説するフローチャートを示す。
図20】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0026】
点群は、近年、より広く使用されるようになってきた。例えば、点群は、物体検出および位置特定のために自律走行車両で使用され得る。点群はまた、地図作製のために地理情報システム(GIS)で使用され、文化財およびコレクションなどを視覚化およびアーカイブするために文化遺産で使用され得る。
【0027】
点群は、典型的には3次元(3D)の高次元点の集合を含むことができる。高次元点の各々が、3D位置情報と、色、反射率などの追加属性とを含むことができる。高次元点は、様々なセットアップにおいて、複数のカメラおよび深度センサ、またはライダーを使用してキャプチャされ得、元のシーンを写実的に表現するために数千から数十億の点で形成され得る。
【0028】
したがって、より高速な送信またはストレージの低減のために、点群を表すのに必要とされるデータの量を低減する圧縮技術が必要とされる。ISO/IEC MPEG (JTC 1/SC 29/WG 11)は、静的または動的な点群のための圧縮技術を標準化するためにアドホックグループ(MPEG-PCC)を作成した。加えて、中国のオーディオビデオコーディング規格ワークグループもまた、点群の圧縮を標準化するためにアドホックグループ(AVS-PCC)を作成した。
【0029】
図1は、本開示の一実施形態による通信システム(100)の簡略化されたブロック図を示す。通信システム(100)は、例えば、ネットワーク(150)を介して互いに通信可能な複数の端末デバイスを含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続された一対の端末デバイス(110)および(120)を含む。図1の例では、第1の対の端末デバイス(110)および(120)は、点群データの単方向送信を実行し得る。例えば、端末デバイス(110)は、端末デバイス(110)に接続されたセンサ(105)によってキャプチャされた点群(例えば、構造を表す点)を圧縮し得る。圧縮された点群は、例えばビットストリームの形態で、ネットワーク(150)を介して他方の端末デバイス(120)に送信され得る。端末デバイス(120)は、ネットワーク(150)から圧縮された点群を受信し、ビットストリームを復元して点群を再構成し、再構成された点群を適切に表示し得る。単方向データ送信は、メディアサービングアプリケーションなどでは一般的であり得る。
【0030】
図1の例では、端末デバイス(110)および(120)は、サーバおよびパーソナルコンピュータとして示され得るが、本開示の原理はそのように限定されないであろう。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム端末、メディアプレーヤ、および/または専用の3次元(3D)機器に応用される。ネットワーク(150)は、圧縮された点群を端末デバイス(110)と端末デバイス(120)との間で送信する任意の数のネットワークを表す。ネットワーク(150)は、例えば、ワイヤライン(有線)および/またはワイヤレス通信ネットワークを含むことができる。ネットワーク(150)は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換し得る。代表的なネットワークとしては、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが挙げられる。本議論の目的のために、ネットワーク(150)のアーキテクチャおよびトポロジーは、本明細書において以下に説明されない限り、本開示の動作に対して重要でない場合がある。
【0031】
図2は、一実施形態によるストリーミングシステム(200)の簡略化されたブロック図を示す。図2の例は、点群のための開示される主題のアプリケーションである。開示される主題は、3Dテレプレゼンスアプリケーション、バーチャルリアリティアプリケーションなどの他の点群対応アプリケーションにも同じように当てはまる。
【0032】
ストリーミングシステム(200)は、キャプチャサブシステム(213)を含み得る。キャプチャサブシステム(213)は、点群源(201)、例えば、光検出および測距(LIDAR)システム、3Dカメラ、3Dスキャナ、ソフトウェアで非圧縮の点群を生成するグラフィック生成構成要素、および例えば、圧縮されていない点群(202)を生成する同様のものを含むことができる。一例では、点群(202)は、3Dカメラによってキャプチャされた点を含む。点群(202)は、圧縮された点群(204)(圧縮された点群のビットストリーム)と比べて高いデータ量であることを強調するために、太線で示されている。圧縮された点群(204)は、点群源(201)に結合されたエンコーダ(203)を含む電子デバイス(220)によって生成され得る。エンコーダ(203)は、以下でより詳細に説明されるように、開示される主題の態様を可能にするまたは実装するためのハードウェア、ソフトウェア、またはそれらの組合せを含むことができる。圧縮された点群(204)(または圧縮された点群(204)のビットストリーム)は、点群(202)のストリームと比べて低いデータ量であることを強調するために細い線で示されており、将来の使用のためにストリーミングサーバ(205)に記憶され得る。図2のクライアントサブシステム(206)および(208)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(205)にアクセスして、圧縮された点群(204)のコピー(207)および(209)を取り出すことができる。クライアントサブシステム(206)は、例えば電子デバイス(230)内にデコーダ(210)を含むことができる。デコーダ(210)は、圧縮された点群の入力コピー(207)を復号し、レンダリングデバイス(212)上でレンダリングされ得る再構成された点群(211)の出力ストリームを作成する。
【0033】
電子デバイス(220)および(230)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(220)はデコーダ(図示せず)を含むことができ、同様に電子デバイス(230)はエンコーダ(図示せず)も含むことができる。
【0034】
いくつかのストリーミングシステムでは、圧縮された点群(204)、(207)、および(209)(例えば、圧縮された点群のビットストリーム)は、いくつかの規格にしたがって圧縮され得る。いくつかの例では、ビデオコーディング規格が点群の圧縮で使用される。それらの規格の例としては、高効率ビデオコーディング(HEVC)、汎用ビデオコーディング(VVC)などが挙げられる。
【0035】
図3は、いくつかの実施形態による、点群フレームを符号化するためのV-PCCエンコーダ(300)のブロック図を示す。いくつかの実施形態では、V-PCCエンコーダ(300)は、通信システム(100)およびストリーミングシステム(200)において使用され得る。例えば、エンコーダ(203)は、V-PCCエンコーダ(300)と同様に構成され、動作することができる。
【0036】
V-PCCエンコーダ(300)は、点群フレームを非圧縮入力として受け取り、圧縮された点群フレームに対応するビットストリームを生成する。いくつかの実施形態では、V-PCCエンコーダ(300)は、点群源(201)などの点群源から点群フレームを受け取り得る。
【0037】
図3の例では、V-PCCエンコーダ(300)は、パッチ生成モジュール(306)と、パッチパッキングモジュール(308)と、ジオメトリ画像生成モジュール(310)と、テクスチャ画像生成モジュール(312)と、パッチ情報モジュール(304)と、占有マップモジュール(314)と、平滑化モジュール(336)と、画像パディングモジュール(316)および(318)と、グループ拡張モジュール(320)と、ビデオ圧縮モジュール(322)、(323)および(332)と、補助パッチ情報圧縮モジュール(338)と、エントロピー圧縮モジュール(334)と、マルチプレクサ(324)とを含む。
【0038】
本開示の一態様によれば、V-PCCエンコーダ(300)は、圧縮された点群を復元された点群に変換し戻すために使用されるいくつかのメタデータ(例えば、占有マップおよびパッチ情報)とともに、3D点群フレームを画像ベースの表現に変換する。いくつかの例では、V-PCCエンコーダ(300)は、3D点群フレームを、ジオメトリ画像、テクスチャ画像および占有マップに変換し、次いで、ビデオコーディング技法を使用して、ジオメトリ画像、テクスチャ画像および占有マップをビットストリームに符号化することができる。一般に、ジオメトリ画像は、ピクセルに投影された点に関連付けられたジオメトリ値でピクセルが充填されている2D画像であり、ジオメトリ値で充填されたピクセルはジオメトリサンプルと呼ばれ得る。テクスチャ画像は、ピクセルに投影された点に関連付けられたテクスチャ値でピクセルが充填されている2D画像であり、テクスチャ値で充填されたピクセルはテクスチャサンプルと呼ばれ得る。占有マップは、パッチによって占有されているか占有されていないかを示す値でピクセルが充填されている2D画像である。
【0039】
パッチは、一般に、点群によって記述される表面の連続的な部分集合を指し得る。一例では、パッチは、閾値量未満で互いから逸れる表面法線ベクトルを有する点を含む。パッチ生成モジュール(306)は、各パッチが2D空間の平面に対する深度フィールドによって記述され得るように、点群を、重複していても重複していなくてもよいパッチの集合にセグメント化する。いくつかの実施形態では、パッチ生成モジュール(306)は、再構成誤差を最低限に抑えつつ、点群を、滑らかな境界を有する最小数のパッチに分解することを目的とする。
【0040】
パッチ情報モジュール(304)は、パッチのサイズおよび形状を示すパッチ情報を収集することができる。いくつかの例では、パッチ情報は、画像フレームにパッキングされ、次いで、圧縮された補助パッチ情報を生成するために補助パッチ情報圧縮モジュール(338)によって符号化され得る。
【0041】
パッチパッキングモジュール(308)は、未使用空間を最低限に抑えつつ、抽出されたパッチを2次元(2D)グリッド上にマッピングし、グリッドのすべてのM×M(例えば、16×16)ブロックが一意のパッチに関連付けられることを保証するように構成される。効率的なパッチパッキングは、未使用空間を最小限に抑えるか、または時間的一貫性を保証することのいずれかによって、圧縮効率に直接影響を与えることができる。
【0042】
ジオメトリ画像生成モジュール(310)は、所与のパッチロケーションにおける点群のジオメトリに関連付けられた2Dジオメトリ画像を生成することができる。テクスチャ画像生成モジュール(312)は、所与のパッチロケーションにおける点群のテクスチャに関連付けられた2Dテクスチャ画像を生成することができる。ジオメトリ画像生成モジュール(310)およびテクスチャ画像生成モジュール(312)は、パッキングプロセス中に計算された3Dから2Dへのマッピングを利用して、点群のジオメトリおよびテクスチャを画像として記憶する。複数の点が同じサンプルに投影される状況により良好に対処するために、各パッチは、層と呼ばれる2つの画像上に投影される。一例では、ジオメトリ画像は、YUV420-8ビットフォーマットのWxHの単色フレームによって表される。テクスチャ画像を生成するために、テクスチャ生成手順は、再構成された/平滑化されたジオメトリを利用して、再サンプリングされた点に関連付けられる色を計算する。
【0043】
占有マップモジュール(314)は、各ユニットにおけるパディング情報を記述する占有マップを生成することができる。例えば、占有画像は、グリッドの各セルについて、そのセルが空の空間に属するか点群に属するかを示すバイナリマップを含む。一例では、占有マップは、各ピクセルについて、ピクセルがパディングされているか否かを記述するバイナリ情報を使用する。別の例では、占有マップは、ピクセルの各ブロックについて、ピクセルのブロックがパディングされているか否かを記述するバイナリ情報を使用する。
【0044】
占有マップモジュール(314)によって生成された占有マップは、ロスレスコーディングまたはロッシーコーディングを使用して圧縮され得る。ロスレスコーディングが使用される場合、エントロピー圧縮モジュール(334)を使用して占有マップを圧縮する。ロッシーコーディングが使用される場合、ビデオ圧縮モジュール(332)を使用して占有マップを圧縮する。
【0045】
パッチパッキングモジュール(308)は、画像フレーム内にパッキングされた2Dパッチ間にいくらかの空き空間を残し得ることに留意されたい。画像パディングモジュール(316)および(318)は、2Dビデオおよび画像コーデックに適し得る画像フレームを生成するために、空き空間を充填することができる(パディングと呼ばれる)。画像パディングは、バックグラウンドフィリング(background filling)とも呼ばれ、未使用空間を冗長な情報で充填することができる。いくつかの例では、良好なバックグラウンドフィリングは、ビットレートの増加を最小限に抑え、パッチ境界の周囲に深刻なコーディング歪みを発生させない。
【0046】
ビデオ圧縮モジュール(322)、(323)、および(332)は、HEVC、VVCなどの適切なビデオコーディング規格に基づいて、パディングされたジオメトリ画像、パディングされたテクスチャ画像、および占有マップなどの2D画像を符号化することができる。一例では、ビデオ圧縮モジュール(322)、(323)、および(332)は、別々に動作する個々の構成要素である。ビデオ圧縮モジュール(322)、(323)、および(332)は、別の例では単一の構成要素として実装され得ることに留意されたい。
【0047】
いくつかの例では、平滑化モジュール(336)は、再構成されたジオメトリ画像の平滑化された画像を生成するように構成される。平滑化された画像は、テクスチャ画像生成(312)に提供され得る。次いで、テクスチャ画像生成(312)は、再構成されたジオメトリ画像に基づいてテクスチャ画像の生成を調整し得る。例えば、符号化および復号中にパッチ形状(例えば、ジオメトリ)がわずかに歪んだ場合、テクスチャ画像を生成するときに歪みを考慮に入れて、パッチ形状の歪みを補正することができる。
【0048】
いくつかの実施形態では、グループ拡張(320)は、コーディング利得ならびに再構成された点群の視覚的品質を改善するために、オブジェクト境界の周りのピクセルを冗長な低周波数コンテンツでパディングするように構成される。
【0049】
マルチプレクサ(324)は、圧縮されたジオメトリ画像、圧縮されたテクスチャ画像、圧縮された占有マップ、および/または圧縮された補助パッチ情報を圧縮ビットストリームに多重化することができる。
【0050】
図4は、いくつかの実施形態による、点群フレームに対応する圧縮ビットストリームを復号するためのV-PCCデコーダ(400)のブロック図を示す。いくつかの実施形態では、V-PCCデコーダ(400)は、通信システム(100)およびストリーミングシステム(200)において使用され得る。例えば、デコーダ(210)は、V-PCCデコーダ(400)と同様に動作するように構成され得る。V-PCCデコーダ(400)は、圧縮ビットストリームを受け取り、圧縮ビットストリームに基づいて、再構成された点群を生成する。
【0051】
図4の例では、V-PCCデコーダ(400)は、デマルチプレクサ(432)と、ビデオ復元モジュール(434)および(436)と、占有マップ復元モジュール(438)と、補助パッチ情報復元モジュール(442)と、ジオメトリ再構成モジュール(444)と、平滑化モジュール(446)と、テクスチャ再構成モジュール(448)と、色平滑化モジュール(452)とを含む。
【0052】
デマルチプレクサ(432)は、圧縮ビットストリームを受け取り、圧縮されたテクスチャ画像、圧縮されたジオメトリ画像、圧縮された占有マップ、および圧縮された補助パッチ情報に分離することができる。
【0053】
ビデオ復元モジュール(434)および(436)は、適切な規格(例えば、HEVC、VVCなど)にしたがって圧縮画像を復号し、復元画像を出力することができる。例えば、ビデオ復元モジュール(434)は、圧縮されたテクスチャ画像を復号し、復元されたテクスチャ画像を出力し、ビデオ復元モジュール(436)は、圧縮されたジオメトリ画像を復号し、復元されたジオメトリ画像を出力する。
【0054】
占有マップ復元モジュール(438)は、適切な規格(例えば、HEVC、VVCなど)にしたがって、圧縮された占有マップを復号し、復元された占有マップを出力することができる。
【0055】
補助パッチ情報復元モジュール(442)は、適切な規格(例えば、HEVC、VVCなど)にしたがって、圧縮された補助パッチ情報を復号し、復元された補助パッチ情報を出力することができる。
【0056】
ジオメトリ再構成モジュール(444)は、復元されたジオメトリ画像を受け取り、復元された占有マップと復元された補助パッチ情報とに基づいて、再構成された点群ジオメトリを生成することができる。
【0057】
平滑化モジュール(446)は、パッチのエッジにおける不一致を平滑化することができる。平滑化手順は、圧縮アーチファクトによりパッチ境界で生じ得る潜在的な不連続性を軽減することを目的とする。いくつかの実施形態では、圧縮/復元によって引き起こされ得る歪みを軽減するために、パッチ境界上に位置するピクセルに平滑化フィルタが適用され得る。
【0058】
テクスチャ再構成モジュール(448)は、復元されたテクスチャ画像と平滑化ジオメトリとに基づいて、点群内の点に関するテクスチャ情報を決定することができる。
【0059】
色平滑化モジュール(452)は、着色の不一致を平滑化することができる。3D空間内の非隣接パッチは、2Dビデオでは互いに隣り合ってパッキングされることが多い。いくつかの例では、非隣接パッチからのピクセル値は、ブロックベースのビデオコーデックによって混合され得る。色平滑化の目標は、パッチ境界に現れる目に見えるアーチファクトを低減することである。
【0060】
図5は、いくつかの実施形態による、G-PPCエンコーダ(500)のブロック図を示す。エンコーダ(500)は、点群データを受け取り、点群データを圧縮して、圧縮された点群データを搬送するビットストリームを生成するように構成され得る。一実施形態では、エンコーダ(500)は、位置量子化モジュール(510)と、重複点除去モジュール(512)と、八分木符号化モジュール(530)と、属性転送モジュール(520)と、詳細レベル(LOD)生成モジュール(540)と、属性予測モジュール(550)と、残差量子化モジュール(560)と、算術コーディングモジュール(570)と、逆残差量子化モジュール(580)と、加算モジュール(581)と、再構成された属性値を記憶するメモリ(590)とを含むことができる。
【0061】
示されるように、入力点群(501)がエンコーダ(500)で受け取られ得る。点群(501)の位置(例えば、3D座標)は、量子化モジュール(510)に提供される。量子化モジュール(510)は、座標を量子化して量子化された位置を生成するように構成される。重複点除去モジュール(512)は、量子化された位置を受け取り、フィルタ処理を実行して、重複点を識別して除去するように構成される。八分木符号化モジュール(530)は、重複点除去モジュール(512)からフィルタ処理された位置を受け取り、八分木ベースの符号化プロセスを実行して、ボクセルの3Dグリッドを記述する占有コードのシーケンスを生成するように構成される。占有コードは算術コーディングモジュール(570)に提供される。
【0062】
属性転送モジュール(520)は、入力点群の属性を受け取り、複数の属性値がそれぞれのボクセルに関連付けられている場合、属性転送プロセスを実行して各ボクセルの属性値を決定するように構成される。属性転送プロセスは、八分木符号化モジュール(530)から出力された再順序付けされた点に対して実行され得る。転送動作後の属性は、属性予測モジュール(550)に提供される。LOD生成モジュール(540)は、八分木符号化モジュール(530)から出力された再順序付けされた点に対して動作し、点を異なるLODに再組成するように構成される。LOD情報は、属性予測モジュール(550)に供給される。
【0063】
属性予測モジュール(550)は、LOD生成モジュール(540)からのLOD情報によって示されたLODベースの順序にしたがって点を処理する。属性予測モジュール(550)は、メモリ(590)に記憶された現在の点の隣接点の集合の再構成された属性に基づいて、現在の点についての属性予測を生成する。予測残差は、その後、属性転送モジュール(520)から受け取った元の属性値と局所的に生成された属性予測とに基づいて取得され得る。候補インデックスがそれぞれの属性予測プロセスにおいて使用されるとき、選択された予測候補に対応するインデックスが算術コーディングモジュール(570)に提供され得る。
【0064】
残差量子化モジュール(560)は、属性予測モジュール(550)から予測残差を受け取り、量子化を実行して、量子化された残差を生成するように構成される。量子化された残差は、算術コーディングモジュール(570)に提供される。
【0065】
逆残差量子化モジュール(580)は、量子化された残差を残差量子化モジュール(560)から受け取り、残差量子化モジュール(560)において実行された量子化演算の逆を実行することによって再構成された予測残差を生成するように構成される。加算モジュール(581)は、再構成された予測残差を逆残差量子化モジュール(580)から受け取り、それぞれの属性予測を属性予測モジュール(550)から受け取るように構成される。再構成された予測残差と属性予測とを組み合わせることで、再構成された属性値が生成され、メモリに記憶される(590)。
【0066】
算術コーディングモジュール(570)は、占有コード、候補インデックス(使用される場合)、量子化された残差(生成される場合)、および他の情報を受け取り、受け取った値または情報をさらに圧縮するためにエントロピー符号化を実行するように構成される。結果として、圧縮された情報を搬送する圧縮ビットストリーム(502)が生成され得る。ビットストリーム(502)は、圧縮ビットストリームを復号するデコーダに送信されるかもしくは別様に提供され得、または記憶デバイスに記憶され得る。
【0067】
図6は、一実施形態によるG-PCCデコーダ(600)のブロック図を示す。デコーダ(600)は、圧縮ビットストリームを受け取り、点群データ復元を実行して、ビットストリームを復元し、復号された点群データを生成するように構成され得る。一実施形態では、デコーダ(600)は、算術復号モジュール(610)と、逆残差量子化モジュール(620)と、八分木復号モジュール(630)と、LOD生成モジュール(640)と、属性予測モジュール(650)と、再構成された属性値を記憶するメモリ(660)とを含むことができる。
【0068】
示されるように、圧縮ビットストリーム(601)が算術復号モジュール(610)で受け取られ得る。算術復号モジュール(610)は、圧縮ビットストリーム(601)を復号して、点群の量子化された残差(生成される場合)および占有コードを取得するように構成される。八分木復号モジュール(630)は、占有コードにしたがって点群内の点の再構成位置を決定するように構成される。LOD生成モジュール(640)は、再構成された位置に基づいて、点を異なるLODに再組成し、LODベースの順序を決定するように構成される。逆残差量子化モジュール(620)は、算術復号モジュール(610)から受け取った量子化された残差に基づいて、再構成された残差を生成するように構成される。
【0069】
属性予測モジュール(650)は、LODベースの順序にしたがって、点についての属性予測を決定するために属性予測プロセスを実行するように構成される。例えば、現在の点の属性予測は、メモリ(660)に記憶された現在の点の隣接点の再構成された属性値に基づいて決定され得る。いくつかの例では、属性予測は、それぞれの再構成された残差と組み合わされ、現在の点についての再構成された属性が生成され得る。
【0070】
一例では、属性予測モジュール(650)から生成された再構成された属性のシーケンスは、八分木復号モジュール(630)から生成された再構成された位置と共に、デコーダ(600)から出力される復号された点群(602)に対応する。加えて、再構成された属性もメモリ(660)に記憶され、その後、後続の点についての属性予測を導出するために使用され得る。
【0071】
様々な実施形態では、エンコーダ(300)、デコーダ(400)、エンコーダ(500)、および/またはデコーダ(600)は、ハードウェア、ソフトウェア、またはそれらの組合せで実装され得る。例えば、エンコーダ(300)、デコーダ(400)、エンコーダ(500)、および/またはデコーダ(600)は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などのソフトウェアを用いてまたは用いずに動作する1つまたは複数の集積回路(IC)などの処理回路で実装され得る。別の例では、エンコーダ(300)、デコーダ(400)、エンコーダ(500)、および/またはデコーダ(600)は、不揮発性(または非一時的)コンピュータ可読記憶媒体に記憶された命令を含むソフトウェアまたはファームウェアとして実装され得る。命令は、1つまたは複数のプロセッサなどの処理回路によって実行されると、処理回路に、エンコーダ(300)、デコーダ(400)、エンコーダ(500)、および/またはデコーダ(600)の機能を実行させる。
【0072】
本明細書で開示される属性予測技法を実装するように構成された属性予測モジュール(550)および(650)は、図5および図6に示されているものと同様のまたは異なる構造を有し得る他のデコーダまたはエンコーダに含まれ得ることに留意されたい。加えて、エンコーダ(500)およびデコーダ(600)は、様々な例において、同じデバイスまたは別個のデバイスに含まれ得る。
【0073】
MPEGジオメトリベースの点群コーディング(G-PCC)ソフトウェアテストモデル、すなわちTMC13では、ジオメトリ情報と、色または反射率などの点群の関連する属性とを別々に圧縮することができる。点群の3D座標であるジオメトリ情報は、点群の占有情報を用いて八分木区分、四分木区分、および二分木区分によってコーディングされ得る。ジオメトリ情報がコーディングされた後、予測、リフティング、および領域適応型階層的変換技法を使用して、再構成されたジオメトリに基づいて、点群の属性が圧縮され得る。ジオメトリコーディングの場合、2つのアプローチを適用することができる。第1のアプローチは、八分木ベースのアプローチ(または八分木ベースのジオメトリコーディング)であり得、第2のアプローチは、予測ツリーベースのアプローチ(または予測ツリーベースのジオメトリコーディング)であり得る。
【0074】
八分木ベースのジオメトリコーディングでは、点群は、八分木、四分木、またはバイナリ区分によって区分され得、それは次のように説明され得る。
【0075】
点群について、点群のバウンディングボックスBは、すべての方向において同じサイズを有するようには制限されないことがある。代わりに、バウンディングボックスBは、3Dシーンまたはオブジェクトの形状により良く適合するように、任意のサイズの直方体であり得る。一例では、バウンディングボックスBのサイズは、
【数1】

のように2の累乗として表すことができる。d、d、dは等しくなくてもよいことに留意されたい。
【0076】
バウンディングボックスBを区分するために、八分木区分、四分木区分、または二分木区分が利用され得る。図7は、八分木区分でバウンディングボックス700を区分したものを示し、ここでは、バウンディングボックス700のx、y、およびz次元は半分に分割され得、これにより、同じサイズの8つのサブボックスが得られ得る。図8は、四分木区分でバウンディングボックスを区分したものを示し、ここでは、x、y、およびz次元などのバウンディングボックスの3つの次元のうちの2つが半分に分割され得、これにより、同じサイズの4つのサブボックスが得られ得る。例えば、図8に示されるように、バウンディングボックス801はx-y軸に沿って4つのサブボックスに区分され得、バウンディングボックス802はx-z軸に沿って4つのサブボックスに区分され得、バウンディングボックス803はy-z軸に沿って4つのサブボックスに区分され得る。
【0077】
図9は、二分木区分でバウンディングボックスを区分したものを示し、ここでは、3つの次元(例えば、x、y、およびz次元)のうちの1つのみが半分に分割され得、これにより、同じサイズの2つのサブボックスが得られ得る。例えば、図9に示されるように、バウンディングボックス901はx軸に沿って2つのサブボックスに区分され得、バウンディングボックス902はy軸に沿って2つのサブボックスに区分され得、バウンディングボックス903はz軸に沿って2つのサブボックスに区分され得る。
【0078】
したがって、点群は、それぞれ八分木区分、四分木区分、および二分木区分を有する一般的なツリー構造によって表され得る。そのようなツリーを走査(traverse)するために、MPEG TMC13モデルでは幅優先アプローチが採用され得る。一方で、深度優先アプローチを利用することもでき、これらは、図10Aおよび図10Bに示され得る。
【0079】
図10Aおよび図10Bでは、影付きの円はツリー内の占有されたノードを示し、空白の円は占有されていないノードを示す。円の中の数字は走査順序を示す。図10Aは、深度0から開始して、次に深度1、2、以下同様にノードが訪問/処理される幅優先走査順序を示す。図10Bは、ルートノード(例えば、ノード0)から開始して、次に、ルートノードの第1の占有された子ノード(例えば、ノード1)、次いで、ルートノードの第1の占有された子ノードの占有された子ノード(例えば、ノード3、4および5)へと、リーフノードに到達するまで、ノードが訪問/処理される深度優先走査順序を示す。次いで、訪問/処理は、ルートノードの第2の占有された子ノード(例えば、ノード2)から開始して、次に、ルートノードの第2の占有された子ノードの占有された子ノード(例えば、ノード6、7、および8)へと、リーフノードに到達するまで行われる。
【0080】
予測ツリーベースのジオメトリコーディングでは、点群内のすべての点にわたるスパニングツリーなどの予測ツリーが構成され得る。点の予測に、点のすべての先祖を使用することができる。例えば、点の位置は、その親点の位置から、またはその親点およびその祖父母点の位置から予測され得る。図11は、ウサギの表面を表す点群内のすべての点に及ぶ予測ツリー1100を示し、拡大ブロック1102は、予測ツリーの一部を示す。
【0081】
trisoupベースのジオメトリコーディングは、オブジェクトの表面を一連の三角形メッシュとして表すことができる別のジオメトリコーディングアプローチである。trisoupベースのジオメトリコーディングは、高密度の表面点群に適用することができる。trisoupデコーダは、再構成された点群の密度が保証されるように、指定されたボクセル粒度でメッシュ表面から点群を生成することができる。一般に、trisoupベースのジオメトリコーディングは、低減されたビットストリームサイズという利益はあるが、元の点群に歪みを発生させる可能性がある。
【0082】
点群に対する予測ベースの属性コーディングは、次のように説明され得る。簡潔さのために、予測ベースの属性コーディングにおいて1つの詳細レベル(LoD)を仮定することができる。
【0083】
(Pi=1...Nを点群の点に関連付けられた位置の集合とし、(Mi=1...Nを(Pi=1...Nに関連付けられたモートンコードとする。まず、点の関連付けられたモートンコードにしたがって点が昇順にソートされ得る。Iを、昇順にしたがって順序付けられた点インデックスの配列とする。エンコーダ/デコーダは、それぞれ、Iによって定義された順序にしたがって点を圧縮/復元することができる。各反復iにおいて、点Pを選択することができる。Pからs個(例えば、s=64)の前の点までの距離を分析することができ、Pのk個(例えば、k=3)の最近傍を選択して予測に使用することができる。より正確には、点iの最近傍の距離に基づいて線形補間プロセスを使用することによって属性値(ai∈1...Nを予測することができる。
【数2】
を現在の点iのk個の最近傍の集合とし、
【数3】
をk個の最近傍の集合の復号/再構成された属性値とし、
【数4】
をk個の最近傍の集合から現在の点iまでの距離とする。予測属性値
【数5】
は、以下の式(1)で与えられ得る:
【数6】
【0084】
リフティングベースの属性コーディングは、予測ベースの属性コーディングの上に構築され得る。予測ベースの属性コーディングと比較して、リフティングベースの属性コーディングには、(a)更新演算子の導入、および(b)適応量子化戦略の使用という2つの追加ステップが導入される。
【0085】
例示のために、リフティングベースの属性コーディングの動作が図12および図13に示され得る。図12は、リフティングベースの属性コーディングにおける順方向変換1200のブロック図を示し、図13は、リフティングベースの属性コーディングにおける逆方向変換1300のブロック図を示す。
【0086】
図12に示されるように、レベルNの属性信号は、ハイパス信号H(N)とローパス信号L(N)とに分割され得る。L(N)は、予測プロセス1202に基づいて予測信号P(N)を生成することができる。差分信号D(N)は、H(N)とL(N)との差分に基づいて生成され得る。差分信号D(N)をさらに更新して、更新された信号U(N)を生成し得る。U(N)とL(N)との和により、更新されたローパス信号L’(N)を生成することができる。L’(N)はさらに、次のレベル(N-1)のハイパス信号H(N-1)とローパス信号L(N-1)とに分割され得る。L(N-1)は、レベルN-1の予測信号P(N-1)を生成することができる。H(N-1)とL(N-1)との差分に基づいて、レベルN-1の差分信号D(N-1)が生成され得る。差分信号D(N-1)をさらに更新して、レベルN-1の更新された信号U(N-1)を生成し得る。U(N-1)とL(N-1)との和により、レベルN-1の更新されたローパス信号L’(N-1)を生成することができる。
【0087】
更新されたローパス信号L’(N-1)は、D(N-2)とL’(N-2)とにさらに分解され得る。分ベースレイヤの更新されたローパス信号L’(0)が得られるまで分割ステップを繰り返し適用することができる。
【0088】
図13では、リフティングベースの属性コーディングの逆方向変換1300が提供される。図13に示されるように、更新されたローパス信号L’(0)と更新された信号U(0)との差に基づいて、レベル0のローパス信号L(0)が生成され得る。更新された信号U(0)は、差分信号D(0)を更新することで得られる。L(0)はさらに、予測プロセス1302に基づいて予測信号P(0)を生成することができる。P(0)がさらにD(0)と加算されて、ハイパス信号H(0)が生成される。H(0)およびL(0)をマージして、レベル1の更新されたローパスL’(1)を生成することができる。ハイパス信号H(N)およびローパス信号L(N)がレベルNで生成されるまでマージステップが繰り返し適用され得る。H(N)およびL(N)がさらにマージされて、再構成された属性信号が形成され得る。
【0089】
図14Aは、RAHTベースの属性コーディングのための順方向変換1400Aを示し、図14Bは、RAHTベースの属性コーディングのための逆方向変換1400Bを示す。図14Aおよび図14Bでは、
【数7】
であり、wは入力係数Fl+1,2nの重みの表記であり、wは入力係数Fl+1,2n+1の重みの表記である。
【0090】
点群に対するノードベースのジオメトリおよび属性コーディングは、ツリーベースのジオメトリおよび属性コーディングであり得、点群は、八分木区分だけでなく四分木および二分木区分も含む一般的なツリー構造として表される。ツリーのルートは点群の全ボリュームを含み、ツリーの中間ノードは点群のサブボリューム(またはサブツリー)を含む。
【0091】
簡潔さおよび明瞭さのために、ノードベースのジオメトリおよび属性コーディングにおいて以下の表記が適用され得る:(a)ルートノードはツリーの深度0にあり得る;(b)1レベルの区分の後、結果として生じるノードはツリーの深度1となる;(c)kレベルの区分の後、結果として生じるノードは、すべてのノードが単位ノードになるまで、例えば3つすべての次元におけるノードのサイズが1になるまで、ツリーの深度kとなる。
【0092】
図15は、本開示のいくつかの実施形態による、八分木区分(1510)、および八分木区分(1510)に対応する八分木構造(1520)の一例を示す。図15は、八分木区分(1510)における区分の2つのレベルを示す。八分木構造(1520)は、八分木区分のための立方体ボックス(1510)に対応するノード(N0)を含む。第1のレベルでは、立方体ボックスは、図7に示された番号付け技法にしたがって0~7の番号が付けられた8つのサブ立方体ボックスに区分される。ノードN0の区分に対する占有コードは二進数で「10000001」であり、これは、ノードN0-0によって表される第1のサブ立方体ボックスおよびノードN0-7によって表される第8のサブ立方体ボックスが点群内の点を含み、他のサブ立方体ボックスが空であることを示す。
【0093】
次いで、区分の第2のレベルにおいて、第1のサブ立方体ボックス(ノードN0-0によって表される)および第8のサブ立方体ボックス(ノードN0-7によって表される)が、それぞれ8つのオクタントにさらに細分される。例えば、第1のサブ立方体ボックス(ノードN0~0によって表される)は、図7に示された番号付け技法にしたがって0~7の番号が付けられた8つのより小さいサブ立方体ボックスに区分される。ノードN0-0の区分に対する占有コードは、二進数で「00011000」であり、これは、第4のより小さいサブ立方体ボックス(ノードN0-0-3によって表される)および第5のより小さいサブ立方体ボックス(ノードN0-0-4によって表される)が点群内の点を含み、他のより小さいサブ立方体ボックスが空であることを示す。第2のレベルにおいて、第7のサブ立方体ボックス(ノードN0-7によって表される)は、図15に示されるように、8つのより小さいサブ立方体ボックスに同様に区分される。
【0094】
本開示では、ジオメトリコーディングが完了した後に属性をコーディングする代わりに、深度kに達するまで最初に点群のジオメトリが符号化され得、ここで、kはエンコーダによって指定され、ビットストリームで送信され得る。点群のサブボリューム(またはサブツリー)とみなされ得る、深度kにおける各占有されたノードについて、ジオメトリ情報は、最初にノード(サブツリー)内のすべての点について符号化され、その後、ノード内のすべての点の属性コーディングが続く。別の実施形態では、ノード(サブツリー)内のすべての点に対するジオメトリコーディングおよび属性コーディングは、インターリーブ方式で符号化され得る。いずれのアプローチにおいても、深度kにおけるノード(サブツリー)は、最上位レベルのコーディング単位として扱われ得る。そのような概念は、HEVCビデオコーディング規格で使用されるLCUと同様であり得る。点群コーディングの概念では、深度kにおける各ノードは、別個のツリーを形成することができ、LCUと見なされることができ、これは図16に示され得る。
【0095】
図16に示されるように、深度k=0におけるルートノードは、四分木区分によって、深度k=1における4つのノードに区分され得、ここで、深度k=1における4つのノードのうちの2つのノード(例えば、ノード「1」およびノード「6」)は占有されたノードであり得る。深度k=1における2つの占有されたノードは、それぞれ深度k=2および深度k=3などの後続の深度においてさらに区分され、それぞれ別個のツリーを形成することができる。したがって、深度k=1における占有されたノードの各々は、個々のLCUとして扱われ得る。例えば、深度k=1におけるノード「1」は第1のLCU1602として扱われ得、深度k=1におけるノード「6」は第2のLCU1604として扱われ得る。簡潔さおよび明確さのために、深度kにおけるノードは、LCUと命名され得る。したがって、ノードおよびLCUは、本開示において適用される交換可能な用語であり得る。
【0096】
各ノードのジオメトリと属性の両方についての生成されたビットストリームは、点群全体のジオメトリコーディングの完了を待つことなく送信され得る。一方、デコーダは、点群全体のジオメトリの復号の完了を待たずに、ノードのすべての点を復号してノードのすべての点を表示することができる。このようにして、低レイテンシの符号化および復号が達成され得る。
【0097】
一実施形態では、深度k(またはLCU)における占有されたノードは、モートン順序でコーディングされ得る。別の実施形態では、深度kにおける占有されたノードは、モートンコード(またはモートン順序)以外の他の空間充填順序でコーディングされ得る。
【0098】
LCUのジオメトリ情報および属性情報のコーディングは、LCUの隣接LCUの情報に依拠することができる。一実施形態では、LCUのジオメトリ情報および属性情報のコーディングは、このLCUの隣接LCUの情報に依拠しなくてもよい。したがって、LCU境界を越えた予測/参照は無効になり得、コンテキストおよび履歴情報も、各LCUについて再初期化される必要があり得る。したがって、LCUレベルの並列符号化および復号など、最大の並列性が深度kにおいて可能にされ得る。
【0099】
別の実施形態では、LCUのジオメトリ情報および属性情報のコーディングは、LCUのすでにコーディングされた隣接ノード、およびすでにコーディングされた隣接ノードのコーディングされた子ノードの情報に依拠することができる。したがって、より良好な圧縮効率を得ることができる。
【0100】
本開示では、並列ノードベースのコーディングと、各ノードレベルにおいてジオメトリコーディングモードを決定するための方法とを含む、ノードベースのジオメトリコーディングに対する更新が提供される。
【0101】
前述のように、並列ノードベース(またはLCUベース)のコーディングを達成するために、LCUのジオメトリ情報および属性情報のコーディングは、このLCUの隣接LCUの情報に依拠しなくてもよい。したがって、LCU境界を越えた予測/参照は無効になり得、コンテキストおよび履歴情報も、各LCUについて再初期化される必要があり得る。
【0102】
本開示の一実施形態では、各LCUにおいて、エントロピーコーディングのためのコンテキストおよびジオメトリ占有履歴情報などのコーディング状態、ならびに/または
【0103】
LCUベースのコーディング(またはノードベースのコーディング)の他の必要な状態情報が、点群のコーディングが開始するときの状態であり得る初期状態として設定され得る。
【0104】
別の実施形態では、初期状態を使用する代わりに、八分木深度Kにおける第1のLCUに達する直前に、例えば八分木深度k-1における点群の符号化が完了したときに、エントロピーコーディングのためのコンテキストおよびジオメトリ占有履歴情報などのコーディング状態が記憶され得、ここで、八分木深度kにおけるノードはLCUとして扱われ得る。八分木深度kにおけるLCUの各LCUを符号化するとき、コーディング状態は、前述した記憶された符号化状態(または記憶されたコーディング状態)で設定され得る。このようにして、並列ノードベース(またはLCUベース)のコーディングが達成され得る。加えて、記憶されたコーディング状態は、コーディングプロセスの開始前に取得される初期コーディング状態と比較して、コーディング性能の向上に役立ち得る。
【0105】
図17は、記憶されたコーディング状態を使用する例示的な並列ノードベース(LCUベース)のコーディングを示すフローチャートを示す。図17では、八分木深度kにN個のLCU(ノード)を設けることができ、ここでNは正の整数である。関連する例と比較して、コーディング状態は、八分木深度kにおけるN個のLCUのいずれかを符号化する前に記憶され得る。八分木深度kにおけるLCUのコーディングの開始時に、記憶された状態を使用してコーディング状態を回復または設定することができる。
【0106】
図17に示されるように、ノードベースのコーディングプロセス(1700)(またはプロセス(1700))は、八分木深度k-1で点群が符号化され得る(S1710)から開始し得る。次いで、プロセス(1700)は、八分木深度Kにおいて(S1720)に進み、八分木深度kにおいて複数のLCUが決定され得るいくつかの実施形態では、複数のLCUはさらに、例えば、モートン順序または他の空間充填順序に基づいて、ソートされ得る。八分木深度kにおける複数のLCUの数は、正の整数Nに等しくてもよい。加えて、八分木深度Kにおける複数のLCUのソートされた順序を示すインデックスiを適用することができる。インデックスiは、0~N-1の範囲内であり得る。(S1720)において、インデックスiは、八分木深度kにおける複数のLCUのうちの第1のLCUを示す0として設定され得る。
【0107】
(S1730)において、インデックスiがNより小さいかどうかを決定するために、第1の決定プロセスが行われ得る。インデックスiがN以上であると決定されたことに応答して、プロセス(1700)は、八分木深度kにおけるすべてのLCUがコーディングされたことを示す(S1790)に進むことができ、プロセス(1700)は完了する。インデックスiがNより小さいと決定されたことに応答して、プロセス(1700)は(S1740)に進み、インデックスiが0に等しいかどうかを決定するために第2の決定プロセスが行われ得る。インデックスiが0に等しいとき、それは、複数のLCUのうちの第1のLCUがコーディングされるべきであることを示す。インデックスiが0に等しくないとき、それは、第1のLCU以外の複数のLCUのうちのLCUがコーディングされるべきであることを示す。
【0108】
(S1740)においてインデックスiが0に等しいと決定されると、プロセス(1700)は(S1750)に進み、コーディング状態が記憶され得る。前述のように、コーディング状態は、八分木深度k-1において点群がコーディングされた後に取得され、点群の複数のLCUのうちの第1のLCUがコーディングされる前に記憶され得る。次いで、プロセス(1700)は(S1770)に進み、第1のLCUがコーディングされ得る。プロセス(1700)はさらに(S1780)に進み、インデックスiが1だけ増分され得る。したがって、(S1770)においてコーディングされたばかりのLCU(例えば、第1のLCU)に後続するLCUが、コーディングのために選択され得る。次いで、プロセス(1700)は(S1730)に進んで、第1の決定プロセスを再び実行することができる。
【0109】
さらに(S1740)を参照すると、インデックスiが0に等しくないと決定されると、プロセス(1700)は(S1760)に進むことができる。(S1760)において、コーディング状態は、(S1750)において前述された記憶されたコーディング状態を用いて設定され得るか、または別様に決定され得る。次いで、プロセス(1700)は(1770)に進み、インデックスiを有するLCUが、(S1760)において記憶されたコーディング状態を用いて設定されたコーディング状態に基づいてコーディングされ得る。したがって、複数のLCUの各々がコーディングされるとき、最初に、記憶されたコーディング状態を用いてコーディング状態を設定することができる。したがって、並列ノードベース(LCUベース)のコーディングが達成され得る。
【0110】
上記の説明では、複数のLCUが、八分木ベースのジオメトリコーディングに基づいてコーディングされ得る。しかしながら、プロセス(1700)では他のジオメトリコーディング方法も適用され得る。例えば、予測ツリーベースのコーディングも、複数のLCUをコーディングするために適用され得る。
【0111】
関連する例では、LCUについて、ジオメトリコーディングモードは、ヒューリスティックに基づいて決定され得る。例えば、比較的高密度の点群をコーディングするためには八分木ベースのジオメトリコーディングが適用され得、自律走行車両からライダーによって生成され得る疎な点群をコーディングするためには予測ツリーベースのジオメトリコーディングが適用され得る。
【0112】
一実施形態では、ジオメトリコーディングモードを決定するためにLCUの密度が使用され得る。一般性を失うことなく、説明のための例として、八分木ベースのジオメトリコーディングおよび予測ツリーベースのジオメトリコーディングを使用することができる。当然ながら、他のタイプのジオメトリコーディングモードを適用することもできる。
【0113】
ジオメトリコーディングモードを決定するために最初に、LCUの密度が以下の式(2)のように計算され得る:
LCU_density=LCU内の点の数/LCUのボリューム 式(2)
【0114】
LCUのボリュームを計算するために、LCUの公称バウンディングボックスが適用され得る。LCUの公称バウンディングボックスは、八分木区分深度、八分木区分タイプ、および点群のバウンディングボックスに基づいて決定され得る。例えば、点群のバウンディングボックスが
【数8】
であり、八分木区分深度kであると仮定すると、八分木区分深度kにおける各ノード(LCU)の公称バウンディングボックスは、
【数9】
となり得、ここで、八分木区分タイプ(八分木、直交木または二分木区分)に基づいて、n≦d、n≦d、n≦dである。したがって、LCUのボリュームは、以下の式(3)のように計算され得る:
【数10】
【0115】
別の実施形態では、LCUの実際のバウンディングボックスは、LCU内の点に基づいて計算され得る。LCU内のすべての点の3D座標は、i=0、1、...、N-1のとき(x、y、z)と示すことができ、ここで、Nは、LCU内の点の数である。x、y、およびz次元に沿った最小値および最大値は、式(4)~(9)で計算され得る:
min=min(x,x,...,xN-1) 式(4)
max=max(x,x,...,xN-1) 式(5)
min=min(y,y,...,yN-1) 式(6)
max=max(y,y,...,yN-1) 式(7)
min=min(z,z,...,zN-1) 式(8)
max=max(z,z,...,zN-1) 式(9)
LCUのボリュームは、以下の式(10)のように計算され得る:
LCUのボリューム=(xmax+1-xmin)((ymax+1-ymin)(zmax+1-zmin) 式(10)
【0116】
LCUの密度および1つの閾値Dthが与えられると、ジオメトリコーディングモードは、次のように決定され得る:
LCU_Density≦Dthである場合、予測ツリーベースのジオメトリコーディングがLCUに対して使用され得る。
そうではなく、LCU_Density≧Dthである場合、八分木ベースのジオメトリコーディングがLCUに対して使用され得る。
【0117】
別の実施形態では、2つの閾値Dth_lowおよびDth_highが定義され得、ここで、Dth_low<Dth_highである。ジオメトリコーディングモードは、次のように決定され得る:
th_low≦LCU_Density≦Dth_highである場合、予測ツリーベースのジオメトリコーディングがLCUに対して使用され得る。
そうではなく、Dth_low>LCUDensityまたはLCUDensity>Dth_highである場合、八分木ベースのジオメトリコーディングがLCUに対して使用され得る。
【0118】
さらに別の実施形態では、2つの密度閾値Dth_lowとDth_highおよび別の点数閾値Nthが定義され得る。ジオメトリコーディングモードは、次のように決定され得る:
th_low≦LCU_Density≦Dth_highかつN≧Nthである場合、予測ツリーベースのジオメトリコーディングがLCUに対して使用され得る。
そうではなく、Dth_low>LCU_DensityもしくはLCU_Density>Dth_highまたはN<Nthである場合、八分木コーディングがLCUに対して使用され得る。
【0119】
同様に、複数の密度閾値および点数閾値が定義され、2つ以上の候補の中からジオメトリコーディングモードを決定するために使用され得る。同様の方法を使用して、2つ以上の候補の中から属性コーディングモードが決定され得る。
【0120】
LCUに対するジオメトリコーディングモードは異なり得るので、どのジオメトリコーディングモードが使用されるかをデコーダに示すために、シグナリング情報がビットストリームで送られる必要がある。対応するシンタックスは、次のように表1において指定され得る:
【表1】
表1に示されるように、ジオメトリコーディングモードフラグ(例えば、geometry_coding_mode)は、LCUをコーディングするために使用されるジオメトリコーディングモードを指定することができる。ジオメトリコーディングモードフラグが0に設定されると、八分木ベースのジオメトリコーディングが適用され得る。ジオメトリコーディングモードフラグが1に設定されると、予測ツリーベースのジオメトリコーディングが使用され得る。したがって、ジオメトリコーディングモードフラグが0に等しいとき、八分木ベースのジオメトリコーディングの使用を指定するために、表1に基づいて第1のシグナリング情報(例えば、octree_lcu_coding())がシグナリングされ得る。ジオメトリコーディングモードフラグが1に等しいとき、予測ツリーベースのジオメトリコーディングの使用を指定するために、表1に基づいて第2のシグナリング情報(例えば、preditve_tree_lcu_coding())がシグナリングされ得る。ジオメトリコーディングモードフラグは、コンテキストでエントロピーコーディングされ得ることに留意されたい。別の実施形態では、ジオメトリコーディングモードフラグは、バイパスコーディングでコーディングされてもよい。
【0121】
別の実施形態では、3つのモードが使用され得る。一般性を失うことなく、3つのジオメトリコーディングモードは、first_mode、second_mode、およびthird_modeとして示され得る。対応するシンタックス表は、次のように表2において指定され得る:
【表2】
表2に示されるように、ジオメトリコーディングモードフラグ(例えば、geometry_coding_mode)は、LCUのために使用されるジオメトリコーディングモードを指定することができる。ジオメトリコーディングモードフラグが0に設定されると、first_modeジオメトリコーディングが使用され得る。ジオメトリコーディングモードフラグが1に設定されると、second_modeジオメトリコーディングが使用され得る。そうではなく、ジオメトリコーディングモードフラグが0でも1でもないように設定されると、third_modeジオメトリコーディングが使用され得る。したがって、ジオメトリコーディングモードフラグが0に等しいとき、first_modeジオメトリコーディングの使用を指定するために、表2に基づいて第1のシグナリング情報(例えば、first_mode_lcu_coding())がシグナリングされ得る。ジオメトリコーディングモードフラグが1に等しいとき、second_modeジオメトリコーディングの使用を指定するために、表2に基づいて第2のシグナリング情報(例えば、second_mode_lcu_coding())がシグナリングされ得る。ジオメトリコーディングモードフラグが0または1以外の値に設定されているとき、third_modeジオメトリコーディングの使用を指定するために、表2に基づいて第3のシグナリング情報(例えば、third_mode_lcu_coding())がシグナリングされる。
【0122】
一般性を失うことなく、第1のモードが最も頻繁に適用され得る。したがって、ジオメトリコーディングモードフラグ(例えば、geometry_coding_mode)は次のように二値化され得る:(a)Bin0=1はfirst_modeを示すことができる、(2)Bin0=0およびBin1=1はsecond_modeを示すことができる、ならびに(c)Bin0=0およびBin1=0はthird_modeを示すことができる、ここで、Bin0およびBin1は、別個のコンテキストでエントロピーコーディングされ得る。
【0123】
提案される方法は、別々に使用されてもよく、または任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装され得る。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行することができる。
【0124】
本開示は、TMC13ソフトウェア、MPEG-PCC、またはAVS-PCC規格に限定されないことに留意されたい。本開示は、PCCシステムなどの他のシステムのための一般的な解決策を提供する。
【0125】
図18および図19は、本開示の実施形態によるプロセス(1800)およびプロセス(1900)を概説するフローチャートを示す。プロセス(1800)および(1900)は、点群に対する符号化および/または復号プロセス中に使用され得る。様々な実施形態では、プロセス(1800)および(1900)は、端末デバイス(110)内の処理回路、エンコーダ(203)および/またはデコーダ(201)の機能を実行する処理回路、エンコーダ(300)、デコーダ(400)、エンコーダ(500)、および/またはデコーダ(600)の機能を実行する処理回路などの処理回路によって実行され得る。いくつかの実施形態では、プロセス(1800)および(1900)は、ソフトウェア命令において実装され得、したがって、処理回路がソフトウェア命令を実行するとき、処理回路は、プロセス(1800)および(1900)をそれぞれ実行する。
【0126】
図18に示されるように、プロセス(1800)は(S1801)から開始し、(S1810)に進む。
【0127】
(S1810)において、第1の区分深度において点群に対してジオメトリコーディングが実行され得る。
【0128】
(S1820)において、第2の区分深度において点群の複数のLCUを決定することができる。
【0129】
(S1830)において、第2の区分深度において点群の複数のLCUのうちのLCUのコーディング状態が設定され得る。
【0130】
(S1840)において、第2の区分深度におけるLCUのコーディング状態に基づいて、第2の区分深度において点群の複数のLCUに対してジオメトリコーディングが実行され得る。
【0131】
いくつかの実施形態では、ジオメトリコーディングは、八分木ベースのジオメトリコーディングおよび予測ツリーベースのコーディングのうちの1つを含むことができる。
【0132】
一実施形態では、LCUのコーディング状態は、点群の初期状態を用いて設定され得、ここで、点群の初期状態は、ジオメトリコーディングに基づいて点群から区分されたルートノードにおいて点群がコーディングされる前に取得され得る。
【0133】
別の実施形態では、LCUが第2の区分深度における点群の複数のLCUのうちの第1のLCUであるとき、コーディング状態は、点群が第1の区分深度におけるジオメトリコーディングに基づいてコーディングされた後に取得され、記憶され得る。
【0134】
さらに別の実施形態では、LCUが第2の区分深度における点群の複数のLCUのうちの第1のLCUでないとき、LCUのコーディング状態は、記憶されたコーディング状態を用いて設定され得る。記憶されたコーディング状態は、(i)点群が第1の区分深度におけるジオメトリコーディングに基づいてコーディングされた後に取得されるか、または(ii)点群の複数のLCUのうちの第1のLCUが第2の区分深度におけるジオメトリコーディングに基づいてコーディングされる前に記憶され得る。
【0135】
いくつかの実施形態では、コーディング状態は、LCUに関連付けられたエントロピーコーディングのためのコンテキストまたはLCUに関連付けられたジオメトリ占有履歴情報のうちの少なくとも1つを含むことができる。
【0136】
いくつかの実施形態では、複数のLCUの各々は、第2の区分深度においてそれぞれのノードを含むことができる。
【0137】
図19に示されるように、プロセス(1900)は(S1901)から開始し、(S1910)に進む。
【0138】
(S1910)において、点群のLCUの密度が決定され得る。LCUの密度は、LCU内の点の数とLCUのボリュームの比であり得る。
【0139】
(S1920)において、LCUのジオメトリコーディングモードは、LCUの密度と第1の閾値とに基づいて決定され得る。
【0140】
(S1930)において、ジオメトリコーディングモード情報はさらに、ビットストリームでシグナリングされ得る。ジオメトリコーディングモード情報は、LCUの密度と第1の閾値とに基づくLCUの決定されたジオメトリコーディングモードを示すことができる。
【0141】
一例では、LCUのジオメトリコーディングモードは、LCUの密度が第1の閾値以下であることに基づいて、予測ツリージオメトリコーディングとして決定され得る。別の例では、LCUのジオメトリコーディングモードは、LCUの密度が第1の閾値よりも大きいことに基づいて、八分木ベースのジオメトリコーディングとして決定され得る。
【0142】
一例では、LCUのジオメトリコーディングモードは、LCUの密度が第1の閾値以上第2の閾値以下であることに基づいて、予測ツリージオメトリコーディングとして決定され得、ここで、第2の閾値は第1の閾値よりも大きいとする。さらに別の例では、LCUのジオメトリコーディングモードは、LCUの密度が第1の閾値よりも小さいかまたは第2の閾値よりも大きいかのいずれかであることに基づいて、八分木ベースのジオメトリコーディングとして決定され得る。
【0143】
一例では、LCUのジオメトリコーディングモードは、(i)LCUの密度が第1の閾値以上第2の閾値以下であり、かつ、(ii)LCU内の点の数が点数閾値以上であることに基づいて、予測ツリージオメトリコーディングとして決定され得る。別の例では、LCUのジオメトリコーディングモードは、(i)LCUの密度が第1の閾値よりも小さいかまたは第2の閾値よりも大きいかのいずれかであること、および(ii)LCU内の点の数が点数閾値よりも小さいことのうちの1つに基づいて、八分木ベースのジオメトリコーディングとして決定され得る。
【0144】
いくつかの実施形態では、ジオメトリコーディングモード情報は、ジオメトリコーディングモードが第1のジオメトリコーディングモードであることに基づいて、第1の値を用いてシグナリングされ得る。ジオメトリコーディングモード情報は、ジオメトリコーディングモードが第2のジオメトリコーディングモードであることに基づいて、第2の値を用いてシグナリングされ得る。
【0145】
プロセス(1900)では、ジオメトリコーディングモード情報は、コンテキストでエントロピーコーディングされ得るか、またはバイパスコーディングでコーディングされ得る。
【0146】
一実施形態では、ジオメトリコーディングモード情報は、ジオメトリコーディングモードが第1のジオメトリコーディングモードであることに基づいて、第1の値を用いてシグナリングされ得る。別の実施形態では、ジオメトリコーディングモード情報は、ジオメトリコーディングモードが第2のジオメトリコーディングモードであることに基づいて、第2の値を用いてシグナリングされ得る。さらに別の例では、ジオメトリコーディングモード情報は、ジオメトリコーディングモードが第3のジオメトリコーディングモードであることに基づいて、第3の値を用いてシグナリングされ得る。
【0147】
いくつかの実施形態では、二値化情報は、第1のビンのみにおける第1の値を用いてシグナリングされ得、ここで、第1の値を有する二値化情報は、第1のジオメトリコーディングモードを示し得る。いくつかの実施形態では、二値化情報は、第1のビンにおける第2の値および後続の第2のビンにおける第1の値を用いてシグナリングされ得、ここで、第1のビンにおける第2の値および第2のビンにおける第1の値を有する二値化情報は、第2のジオメトリコーディングモードを示し得る。いくつかの実施形態では、二値化情報は、第1のビンにおける第2の値および第2のビンにおける第2の値を用いてシグナリングされ得、ここで、第1のビンおよび第2のビンにおける第2の値を有する二値化情報は、第3のジオメトリコーディングモードを示し得る。
【0148】
いくつかの実施形態では、第1のビンにおける二値化情報は第1のコンテキストでエントロピーコーディングされ得、第2のビンにおける二値化情報は第2のコンテキストでエントロピーコーディングされ得る。
【0149】
上記のとおり、上述した技法は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶され得る。例えば、図20は、開示される主題の特定の実施形態を実装するのに適したコンピュータシステム(2000)を示す。
【0150】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって、直接、または解釈、マイクロコード実行などを介して実行することができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンク、または同様の機構に従うことができる(subject to)任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ得る。
【0151】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行され得る。
【0152】
コンピュータシステム(2000)について図20に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関していかなる限定も示唆することを意図するものではない。構成要素の構成は、コンピュータシステム(2000)の例示的な実施形態に示される構成要素のいずれか1つまたは組合せに関して、依存性または要件を有すると解釈されるべきではない。
【0153】
コンピュータシステム(2000)は、特定のヒューマンインターフェース入力デバイスを含み得る。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を通して1人または複数の人間ユーザによる入力に反応するものであり得る。ヒューマンインターフェースデバイスはまた、音声(発話、音楽、周囲音など)、画像(走査画像、静止画カメラから得られる写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)のような、人間による意識的入力に必ずしも直接関連しない特定のメディアをキャプチャするために使用され得る。
【0154】
入力ヒューマンインターフェースデバイスは、キーボード(2001)、マウス(2002)、トラックパッド(2003)、タッチスクリーン(2010)、データグローブ(図示せず)、ジョイスティック(2005)、マイクロフォン(2006)、スキャナ(2007)、カメラ(2008)のうちの1つまたは複数(それぞれ1つのみ図示)を含み得る。
【0155】
コンピュータシステム(2000)はまた、特定のヒューマンインターフェース出力デバイスを含み得る。そのようなヒューマンインターフェース出力デバイスは、例えば、触知出力、音、光、および匂い/味を通して、1人または複数の人間ユーザの感覚を刺激することができる。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2010)、データグローブ(図示せず)、またはジョイスティック(2005)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、音声出力デバイス(スピーカ(2009)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2010)などであり、それぞれタッチスクリーン入力機能を有しても有さなくてもよく、それぞれ触覚フィードバック機能を有しても有さなくてもよく、そのいくつかは、ステレオグラフィック出力などの手段を介して2次元視覚出力または3次元以上の出力を出力することが可能であり得る)、仮想現実メガネ(図示せず)、ホログラフィックディスプレイおよび煙タンク(図示せず)、ならびにプリンタ(図示せず)を含み得る。
【0156】
コンピュータシステム(2000)はまた、CD/DVDまたは同様の媒体(2021)を有するCD/DVD ROM/RW(2020)を含む光学媒体、サムドライブ(2022)、リムーバブルハードドライブまたはソリッドステートドライブ(2023)、テープおよびフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースのデバイスなど、人間がアクセス可能な記憶デバイスおよびそれらの関連媒体を含むことができる。
【0157】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
【0158】
コンピュータシステム(2000)はまた、1つまたは複数の通信ネットワークへのインターフェースを含むことができる。ネットワークは、例えば、ワイヤレス、ワイヤライン、光であり得る。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例としては、イーサネットなどのローカルエリアネットワーク、ワイヤレスLAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波放送TVを含むTVワイヤラインまたはワイヤレスワイドエリアデジタルネットワーク、CANBusを含む車両および産業用などが挙げられる。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(2049)(例えば、コンピュータシステム(2000)のUSBポートなど)に取り付けられる外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般に、以下で説明するようにシステムバスへの取付けによってコンピュータシステム(2000)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2000)は他のエンティティと通信することができる。そのような通信は、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、双方向、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへのものであり得る。特定のプロトコルおよびプロトコルスタックは、上述したようなネットワークおよびネットワークインターフェースのそれぞれで使用することができる。
【0159】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(2000)のコア(2040)に取り付けられ得る。
【0160】
コア(2040)は、1つまたは複数の中央処理装置(CPU)(2041)、グラフィックス処理装置(GPU)(2042)、フィールドプログラマブルゲートエリア(FPGA)の形態の専用プログラマブル処理装置(2043)、特定のタスクのためのハードウェアアクセラレータ(2044)などを含むことができる。これらのデバイスは、読取り専用メモリ(ROM)(2045)、ランダムアクセスメモリ(2046)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ(2047)と共に、システムバス(2048)を通して接続され得る。いくつかのコンピュータシステムでは、システムバス(2048)は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺デバイスは、コアのシステムバス(2048)に直接、または周辺バス(2049)を通して取り付けられ得る。周辺バスのアーキテクチャには、PCI、USBなどがある。
【0161】
CPU(2041)、GPU(2042)、FPGA(2043)、およびアクセラレータ(2044)は、組み合わせて前述のコンピュータコードを構成することができる特定の命令を実行することができる。コンピュータコードは、ROM(2045)またはRAM(2046)に記憶され得る。遷移データもRAM(2046)に記憶され得、永久データは、例えば、内部大容量ストレージ(2047)に記憶され得る。任意のメモリデバイスへの高速記憶および取出しは、1つまたは複数のCPU(2041)、GPU(2042)、大容量ストレージ(2047)、ROM(2045)、RAM(2046)などと密接に関連付けられ得る、キャッシュメモリを用いて可能にされ得る。
【0162】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計され構築されたものであってもよく、またはコンピュータソフトウェア分野の当業者に周知であり利用可能な種類のものであってもよい。
【0163】
限定ではなく一例として、アーキテクチャ(2000)、具体的にはコア(2040)を有するコンピュータシステムは、プロセッサ(複数可)(CPU、GPU、FPGA、アクセラレータなどを含む)が1つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行する結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介したようなユーザがアクセス可能な大容量ストレージに関連付けられた媒体だけでなく、コア部大容量ストレージ(2047)またはROM(2045)などの非一時的な性質であるコア(2040)の特定のストレージであってもよい。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(2040)によって実行され得る。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2040)および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2046)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスにしたがってそのようなデータ構造を修正することを含む、本明細書で説明される特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書で説明される特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはそれとともに動作することができる、回路(例えば、アクセラレータ(2044))においてハードワイヤードまたは別様に具現化されたロジックの結果として機能を提供することができる。ソフトウェアへの言及は、適切な場合、ロジックを包含することができ、逆もまた同様である。コンピュータ可読媒体への言及は、適切な場合、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組合せを包含する。
【0164】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内に入る変更、置換、および様々な代替同等物がある。したがって、当業者であれば、本明細書で明示的に示されていないまたは説明されてないが、本開示の原理を具現化し、したがって本開示の精神および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図11
図12
図13
図14A
図14B
図15
図16
図17
図18
図19
図20