(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-13
(45)【発行日】2022-09-22
(54)【発明の名称】ポイントクラウドのジオメトリ復号及び符号化のための暗示的な四分木又は二分木ジオメトリ分割
(51)【国際特許分類】
H04N 19/597 20140101AFI20220914BHJP
H04N 19/70 20140101ALI20220914BHJP
H04N 19/119 20140101ALI20220914BHJP
H04N 19/136 20140101ALI20220914BHJP
H04N 19/174 20140101ALI20220914BHJP
【FI】
H04N19/597
H04N19/70
H04N19/119
H04N19/136
H04N19/174
(21)【出願番号】P 2021546714
(86)(22)【出願日】2020-06-23
(86)【国際出願番号】 US2020070167
(87)【国際公開番号】W WO2020264553
(87)【国際公開日】2020-12-30
【審査請求日】2021-08-10
(32)【優先日】2019-06-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-09-23
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-10-03
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャン,シアン
(72)【発明者】
【氏名】ガオ,ウエン
(72)【発明者】
【氏名】イエア,セフーン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】久保 光宏
(56)【参考文献】
【文献】特表2021-530143(JP,A)
【文献】特開2017-126890(JP,A)
【文献】Zhao Gang, et al.,"Research on Spatial Index Structure of Massive Point Clouds Based on Hybrid Tree",Proceedings of 2017 IEEE 2nd International Conference on Big Data Analysis,IEEE,2017年03月12日,Pages 134-137,ISBN: 978-1-5090-3619-6, <DOI: 10.1109/ICBDA.2017.8078792>.
【文献】Yiting Shao, et al.,"HYBRID POINT CLOUD ATTRIBUTE COMPRESSION USING SLICE-BASED LAYERED STRUCTURE AND BLOCK-BASED INTRA PREDICTION",arXiv:1804.10783v1,version v1,[online], arXiv (Cornell University),2018年04月28日,Pages 1-10,[令和4年8月12日検索], インターネット, <URL: https://arxiv.org/abs/1804.10783v1> and <URL: https://arxiv.org/pdf/1804.10783v1.pdf>.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
ポイントクラウドデコーダが実行するポイントクラウドのジオメトリ復号の方法であって、
符号化ポイントクラウドフレームのスライスを含むビットストリームを受信するステップと、
前記スライスのバウンディングボックス内のポイントのジオメトリを表す八分木を復元するステップであって、前記八分木のカレントノードは、四分木(QT)分割又は二分木(BT)分割で分割される、ステップと
を含む方法。
【請求項2】
前記八分木を復元する前記ステップは、
所定の条件に基づいて、前記QT分割、前記BT分割又は八分木(OT)分割のうち1つを使用して前記八分木の前記カレントノードを分割する方法を決定するステップを含む、請求項1に記載の方法。
【請求項3】
前記八分木を復元する前記ステップは、
1つ以上のパラメータに基づいて、前記QT分割、前記BT分割又はOT分割のうち1つを使用して前記八分木の前記カレントノードを分割する方法を決定するステップであって、前記1つ以上のパラメータのうち1つは、前記ビットストリームで伝達されるか、或いは、ローカルに予め構成された値を使用する、請求項1又は2に記載の方法。
【請求項4】
前記八分木を復元する前記ステップは、
前記ビットストリームから、前記八分木の前記カレントノードの8ビン占有コードに属する占有ビンを受信するステップを含み、
各占有ビンは、前記八分木の前記カレントノードの占有子ノードに対応し、
前記8ビン占有コードに属する4つのビンは、前記八分木の前記カレントノードが前記QT分割で分割される場合、前記ビットストリームで伝達されず、
前記8ビン占有コードに属する6つのビンは、前記八分木の前記カレントノードが前記BT分割で分割される場合、前記ビットストリームで伝達されない、請求項1乃至3のうちいずれか1項に記載の方法。
【請求項5】
前記八分木を復元する前記ステップは、
前記ビットストリームから、前記符号化ポイントクラウドフレームの前記スライスの前記バウンディングボックスの三次元(3D)サイズを示す1つ以上のシンタックスエレメントを受信するステップを含む、請求項1乃至4のうちいずれか1項に記載の方法。
【請求項6】
前記八分木を復元する前記ステップは、
前記八分木の前記カレントノードの分割タイプ及び分割方向を指定する、partitionSkipで示される変数の値を決定するステップを含む、請求項1乃至5のうちいずれか1項に記載の方法。
【請求項7】
前記変数partitionSkipは、それぞれx、y及びz方向に対応する3ビットのバイナリ形式で表され、各ビットは、それぞれのx、y又はz方向に沿って分割が実行されるか否かを示す、請求項6に記載の方法。
【請求項8】
前記八分木を復元する前記ステップは、
変数partitionSkipに基づいて、前記八分木の前記カレントノードの子ノードのx、y又はz次元の深度を更新するステップを更に含む、請求項6又は7に記載の方法。
【請求項9】
前記八分木を復元する前記ステップは、
前記八分木の前記カレントノードが単一の占有子ノードを有することを示すシンタックスエレメントを受信するステップと、
前記変数partitionSkipが前記BT分割を示す場合には1つのビンを受信するステップ、又は、前記変数partitionSkipが前記QT分割を示す場合には2つのビンを受信するステップと、
前記受信した1つのビン又は2つのビンに基づいて、前記八分木の前記カレントノードの占有子ノードを識別する占有マップを決定するステップと
を更に含む、請求項6乃至8のうちいずれか1項に記載の方法。
【請求項10】
前記八分木を復元する前記ステップは、
前記八分木の前記カレントノードの占有子ノードを識別する占有マップのシンタックスエレメントを決定するための前記ビットストリームでの解析処理の間に、前記占有マップの前記シンタックスエレメントのビンが前記変数partitionSkipに基づいてスキップされると決定するステップを更に含む、請求項6乃至8のうちいずれか1項に記載の方法。
【請求項11】
前記八分木を復元する前記ステップは、
直接モードで符号化された前記八分木の前記カレントノードの子ノードについて、前記変数partitionSkipに基づいて、当該子ノードについてそれぞれdx、dy及びdzで示されるx、y及びz方向のそれぞれのlog2サイズを決定するステップであって、当該子ノード内のポイントの位置は、それぞれ(dx,dy,dz)ビットの固定長符号化によって符号化される、ステップを更に含む、請求項6乃至8のうちいずれか1項に記載の方法。
【請求項12】
前記八分木を復元する前記ステップは、
前記ビットストリームから、
OT分割の前に実行される暗示的なQT分割及びBT分割の最大数、
ノードの全ての寸法が最小サイズ以下である場合に前記ノードの暗示的なQT分割及びBT分割を防止する暗示的なQT分割及びBT分割の前記最小サイズ、又は
QT分割及びBT分割の双方が許容されている場合に暗示的なQT分割又はBT分割のどちらが最初に実行されるかを示す優先度
のパラメータのうち1つを示すシンタックスエレメントを受信するステップを更に含む、請求項1乃至11のうちいずれか1項に記載の方法。
【請求項13】
前記八分木を復元する前記ステップは、
前記カレントノードの八分木の深度がパラメータKよりも小さい場合、又は前記カレントノードのx、y及びz方向のlog2サイズのうち最小のlog2サイズがパラメータMに等しい場合、以下の表の条件に従って、前記カレントノードを分割する分割タイプ及び分割方向を決定するステップであって、
【表42】
ここで、前記パラメータKは0≦K≦max(d
x,d
y,d
z)-min(d
x,d
y,d
z)の範囲の整数であり、OT分割の前に許容される暗示的なQT分割及びBT分割の最大回数を定義し、
前記パラメータMは0≦M≦min(d
x,d
y,d
z)の範囲の整数であり、暗示的なQT分割及びBT分割の最小サイズを定義し、ノードの全ての寸法がM以下である場合、前記ノードの暗示的なQT分割及びBT分割を防止し、
d
x、d
y及びd
zは、それぞれx、y及びz方向の前記カレントノードの前記log2サイズである、ステップを更に含む、請求項1乃至12のうちいずれか1項に記載の方法。
【請求項14】
前記八分木を復元する前記ステップは、
前記カレントノードの八分木の深度がパラメータKよりも小さい場合、又は前記カレントノードのx、y及びz方向のlog2サイズのうち最小のlog2サイズがパラメータMに等しい場合、以下のように変数partitionSkipを決定するステップであって、
(dx<MaxNodeDimLog2)である場合、partitionSkip|=4
(dy<MaxNodeDimLog2)である場合、partitionSkip|=2
(dz<MaxNodeDimLog2)である場合、partitionSkip|=1
前記変数partitionSkipは3ビットのバイナリ形式で表され、前記八分木の前記カレントノードの分割タイプ及び分割方向を指定し、
前記パラメータKは0≦K≦max(d
x,d
y,d
z)-min(d
x,d
y,d
z)の範囲の整数であり、OT分割の前に許容される暗示的なQT分割及びBT分割の最大回数を定義し、
前記パラメータMは0≦M≦min(d
x,d
y,d
z)の範囲の整数であり、暗示的なQT分割及びBT分割の最小サイズを定義し、ノードの全ての寸法がM以下である場合、前記ノードの暗示的なQT分割及びBT分割を防止し、
dx、dy及びdzは、それぞれx、y及びz方向の前記カレントノードのlog2サイズであり、
MaxNodeDimLog2は、dx、dy及びdzの間での最大log2サイズを表し、
演算子|=は複合ビット単位のOR演算を表す、ステップを更に含む、請求項1乃至5のうちいずれか1項に記載の方法。
【請求項15】
前記八分木を復元する前記ステップは、
前記ビットストリームから、暗示的なジオメトリ分割がポイントクラウドフレームのシーケンス又は前記符号化ポイントクラウドフレームの前記スライスに有効であるか否かを示すフラグを受信するステップを更に含む、請求項1乃至14のうちいずれか1項に記載の方法。
【請求項16】
前記八分木を復元する前記ステップは、
前記カレントノードについて分割が実行されない場合、プラナーモードがx、y又はz方向では不適切であると決定するステップを含む、請求項1乃至15のうちいずれか1項に記載の方法。
【請求項17】
前記八分木を復元する前記ステップは、
占有コードにbinIdxのインデックスを有するビンについて、変数binIsInferredが以下に従って設定されるジオメトリ八分木占有解析処理を実行するステップであって、
(1)変数NeighbourPatternが0に等しく、前に復号された1値のビンの数が(binIdx+minOccupied-maxOccupied)以下であるという条件、又は
(2)前記変数NeighbourPatternが0に等しくなく、binIdxがmaxOccupied-1に等しく、全ての前に復号されたビンの値がゼロであるという条件
のいずれかが真である場合、binIsInferredが1に設定され、
minOccupied=2であり、OT分割が適用される場合にはmaxOccupied=8であり、前記QT分割が適用される場合にはmaxOccupied=4であり、前記BT分割が適用される場合にはmaxOccupied=2であり、
上記のいずれの条件も真でない場合、binIsInferredは0に設定される、ステップを含む、請求項1乃至16のうちいずれか1項に記載の方法。
【請求項18】
前記八分木を復元する前記ステップは、
OT分割の前の暗示的なQT及びBT分割の最大数を示すパラメータKと、ノードの全ての寸法が最小サイズ以下である場合、前記ノードの暗示的なQ分割T及びBT分割を防止する暗示的なQT分割及びBT分割の前記最小サイズを示すパラメータMとを更新するステップであって、当該更新は、
Kが前記スライスの最大ルートノードlog2寸法と最小ルートノードlog2寸法との差よりも大きい場合、Kは、前記スライスの前記最大ルートノードlog2寸法と前記最小ルートノードlog2寸法との差に変更され、
Mが前記スライスの前記最小ルートノードlog2寸法よりも大きい場合、Mは、前記スライスの前記最小ルートノードlog2寸法に変更され、
前記スライスの前記最大ルートノードlog2寸法及び前記最小ルートノードlog2寸法が等しい場合、Mは0に変更され、
Trisoupモードが有効である場合、Kは、前記スライスの前記最大ルートノードlog2寸法と前記最小ルートノードlog2寸法との差に変更され、Mは、前記スライスの前記最小ルートノードlog2寸法に変更される
ことに従って行われる、ステップを更に含む、請求項1乃至11のうちいずれか1項に記載の方法。
【請求項19】
ポイントクラウドのジオメトリ復号の装置であって、
符号化ポイントクラウドフレームのスライスを含むビットストリームを受信するステップと、
前記スライスのバウンディングボックス内のポイントのジオメトリを表す八分木を復元するステップであって、前記八分木のカレントノードは、四分木(QT)分割又は二分木(BT)分割で分割される、ステップと
を実行するように構成された回路を含む装置。
【請求項20】
プロセッサによって実行されると、前記プロセッサにポイントクラウドのジオメトリ復号の方法を実行させるコンピュータプログラムであって、
前記方法は、
符号化ポイントクラウドフレームのスライスを含むビットストリームを受信するステップと、
前記スライスのバウンディングボックス内のポイントのジオメトリを表す八分木を復元するステップであって、前記八分木のカレントノードは、四分木(QT)分割又は二分木(BT)分割で分割される、ステップと
を含む、コンピュータプログラム。
【請求項21】
ポイントクラウドエンコーダが実行するポイントクラウドのジオメトリ符号化の方法であって、
符号化ポイントクラウドフレームのスライスのバウンディングボックス内のポイントのジオメトリを表す八分木を符号化するステップであって、前記八分木のカレントノードは、四分木(QT)分割又は二分木(BT)分割で分割される、ステップと
前記符号化ポイントクラウドフレームのスライスを含むビットストリームを送信するステップと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本出願は、2020年6月23日に出願された米国特許出願第16/909,142号「Implicit Quadtree or Binary-Tree Geometry Partition for Point Cloud Coding」の優先権を主張する。当該出願は、2019年6月26日に出願された米国仮出願第62/867,063号「Implicit Geometry Partition for Point Cloud Coding」、2019年9月23日に出願された第62/904,384号「On Geometry Coding for Point Clouds」、及び2019年10月3日に出願された第62/910,387号「Additional Information on Adaptive Geometry Quantization and Implicit Geometry Partition for Point Cloud Coding」の一連の優先権を主張する。先の出願の開示の全内容を参照により援用する。
【0002】
[技術分野]
本開示は、ポイントクラウド符号化に関する。
【背景技術】
【0003】
本明細書において提供される背景技術の説明は、本開示の背景を一般的に提示するためのものである。本願の発明者の研究は、当該研究がこの背景技術の段落に記載されている範囲において、また、出願時に従来技術として特に適することのない説明の側面も、本開示に対する従来技術として明示的にも暗示的にも認められるものではない。
【0004】
近年、ポイントクラウド(point cloud)が広く使用されている。例えば、ポイントクラウドは、自動運転車両において物体検出及び位置特定のために使用できる。また、ポイントクラウドは、地理情報システム(GIS, geographic information systems)においてマッピングに使用され、文化遺産において文化遺産の対象物及びコレクションを視覚化及びアーカイブするため等に使用されている。
【0005】
ポイントクラウドフレームは、典型的には三次元(3D, three dimensional)の高次元ポイントのセットを含み、それぞれが3D位置情報と、色、反射率等のような更なる属性を含む。これらは、複数のカメラ及び深度センサ、又は様々な設定におけるライダー(Lidar)を使用してキャプチャでき、元のシーンを現実的に表現するために、数千~数十億のポイントで構成され得る。
【0006】
より高速な送信又は記憶の低減のために、ポイントクラウドを表すために必要なデータ量を低減するために圧縮技術が必要とされる。ISO/IEC MPEG(JTC 1/SC 29/WG 11)は、静的又は動的ポイントクラウドについての圧縮技術を標準化するためのアドホックグループ(MPEG-PCC)を作成している。
【発明の概要】
【0007】
本開示の態様は、ポイントクラウドデコーダにおけるポイントクラウドのジオメトリ復号の方法を提供する。当該方法は、符号化ポイントクラウドフレームのスライスを含むビットストリームを受信するステップと、暗示的なジオメトリ分割を使用してスライスのバウンディングボックス内のポイントのジオメトリを表す八分木(octree)を復元するステップであって、八分木のカレントノードは、四分木(QT, quadtree)分割又は二分木(BT, binary tree)分割で分割される、ステップとを含むことができる。
【0008】
一実施形態では、QT分割、BT分割又は八分木(OT, octree)分割のうち1つを使用して八分木のカレントノードを分割する方法は、所定の条件に基づいて決定される。一実施形態では、QT分割、BT分割又はOT分割のうち1つを使用して八分木のカレントノードを分割する方法は、1つ以上のパラメータに基づいて決定される。1つ以上のパラメータのうち1つは、ビットストリームで伝達でき、或いは、ローカルに予め構成された値を使用できる。
【0009】
一実施形態では、八分木のカレントノードの8ビン占有コードに属する占有情報がビットストリームから受信される。各占有ビットは、八分木のカレントノードの占有子ノードに対応する。8ビン占有コードに属する4つのビンは、八分木のカレントノードがQT分割で分割される場合、ビットストリームで伝達されず、8ビン占有コードに属する6つのビンは、八分木のカレントノードがBT分割で分割される場合、ビットストリームで伝達されない。本出願では、8ビン占有コードを8ビット占有コードとも呼ぶことがあり、或いは、8ビン占有コードの各ビンをビットとも呼ぶことがある。
【0010】
一実施形態では、符号化ポイントクラウドフレームのスライスのバウンディングボックスの三次元(3D)サイズを示す1つ以上のシンタックスエレメントがビットストリームから受信される。一実施形態では、八分木のカレントノードの分割タイプ及び分割方向を指定する、partitionSkipで示される変数の値が決定される。一例では、変数partitionSkipは、それぞれx、y及びz方向に対応する3ビットのバイナリ形式で表され、各ビットは、それぞれのx、y又はz方向に沿って分割が実行されるか否かを示す。一例では、八分木のカレントノードの子ノードのx、y又はz次元の深度は、変数partitionSkipに基づいて更新される。
【0011】
一実施形態では、八分木を復元するステップは、八分木のカレントノードが単一の占有子ノードを有することを示すシンタックスエレメントを受信するステップと、変数partitionSkipがBT分割を示す場合には1つのビンを受信するステップ、又は、変数partitionSkipがQT分割を示す場合には2つのビンを受信するステップと、受信した1つのビン又は2つのビンに基づいて、八分木のカレントノードの占有子ノードを識別する占有マップを決定するステップとを更に含む。
【0012】
一実施形態では、八分木のカレントノードの占有子ノードを識別する占有マップのシンタックスエレメントを決定するためのビットストリームでの解析処理の間に、占有マップのシンタックスエレメントの1つのビン又は複数のビンは、変数partitionSkipに基づいてスキップできる。
【0013】
一実施形態では、直接モードで符号化された八分木のカレントノードの子ノードについて、当該子ノードについてそれぞれdx、dy及びdzで示されるx、y及びz方向のそれぞれのlog2サイズは、変数partitionSkipに基づいて決定される。子ノード内のポイントの位置は、それぞれ(dx,dy,dz)ビットの固定長符号化によって符号化される。
【0014】
一実施形態では、OT分割の前に実行される暗示的なQT分割及びBT分割の最大数、ノードの全ての寸法が最小サイズ以下である場合にノードの暗示的なQT分割及びBT分割を防止する暗示的なQT分割及びBT分割の最小サイズ、又はQT分割及びBT分割の双方が許容されている場合に暗示的なQT分割又はBT分割のどちらが最初に実行されるかを示す優先度のパラメータのうち1つを示すシンタックスエレメントは、ビットストリームから受信される。
【0015】
一実施形態では、カレントノードの八分木の深度がパラメータKよりも小さい場合、又はカレントノードのx、y及びz方向のlog2サイズのうち最小のlog2サイズがパラメータMに等しい場合、カレントノードを分割する分割タイプ及び分割方向は、以下の表の条件に従って決定でき、
【表1】
ここで、パラメータKは0≦K≦max(d
x,d
y,d
z)-min(d
x,d
y,d
z)の範囲の整数であり、OT分割の前に許容される暗示的なQT分割及びBT分割の最大回数を定義し、パラメータMは0≦M≦min(d
x,d
y,d
z)の範囲の整数であり、暗示的なQT分割及びBT分割の最小サイズを定義し、ノードの全ての寸法がM以下である場合、ノードの暗示的なQT分割及びBT分割を防止する。dx、dy及びdzは、それぞれx、y及びz方向のカレントノードのlog2サイズである。dx、dy及びdzはそれぞれ上記の表におけるd
x、d
y及びd
zに対応する。2つの表記は、本開示では交換可能に使用される。
【0016】
一実施形態では、カレントノードの八分木の深度がパラメータKよりも小さい場合、又はカレントノードのx、y及びz方向のlog2サイズのうち最小のlog2サイズがパラメータMに等しい場合、変数partitionSkipは以下のように決定できる。
(dx<MaxNodeDimLog2)である場合、partitionSkip|=4
(dy<MaxNodeDimLog2)である場合、partitionSkip|=2
(dz<MaxNodeDimLog2)である場合、partitionSkip|=1
変数partitionSkipは3ビットのバイナリ形式で表され、八分木のカレントノードの分割タイプ及び分割方向を指定する。パラメータKは0≦K≦max(dx,dy,dz)-min(dx,dy,dz)の範囲の整数であり、OT分割の前に許容される暗示的なQT分割及びBT分割の最大回数を定義する。パラメータMは0≦M≦min(dx,dy,dz)の範囲の整数であり、暗示的なQT分割及びBT分割の最小サイズを定義し、ノードの全ての寸法がM以下である場合、ノードの暗示的なQT分割及びBT分割を防止する。dx、dy及びdzは、それぞれx、y及びz方向のカレントノードのlog2サイズである。MaxNodeDimLog2は、dx、dy及びdzの間での最大log2サイズを表す。演算子|=は複合ビット単位のOR演算を表す。
【0017】
一実施形態では、暗示的なジオメトリ分割がポイントクラウドフレームのシーケンス又は符号化ポイントクラウドフレームのスライスに有効であるか否かを示すフラグがビットストリームから受信できる。一実施形態では、プラナーモードは、カレントノードについて分割が実行されない場合、x、y又はz方向では不適切であると決定される。一実施形態では、占有コードにbinIdxのインデックスを有するビンについて、変数binIsInferredが以下に従って設定されるジオメトリ八分木占有解析処理が実行される。(a)(1)変数NeighbourPatternが0に等しく、前に復号された1値のビンの数が(binIdx+minOccupied-maxOccupied)以下であるという条件、又は(2)変数NeighbourPatternが0に等しくなく、binIdxがmaxOccupied-1に等しく、全ての前に復号されたビンの値がゼロであるという条件のいずれかが真である場合、binIsInferredが1に設定され、minOccupied=2であり、OT分割が適用される場合にはmaxOccupied=8であり、QT分割が適用される場合にはmaxOccupied=4であり、BT分割が適用される場合にはmaxOccupied=2であり、(b)そうでなく、上記のいずれの条件も真でない場合、binIsInferredは0に設定される。
【0018】
一実施形態では、パラメータK及びパラメータMが使用される。パラメータKは、OT分割の前の暗示的なQT及びBT分割の最大数を示し、パラメータMは、ノードの全ての寸法が最小サイズ以下である場合、ノードの暗示的なQ分割T及びBT分割を防止する暗示的なQT分割及びBT分割の最小サイズを示す。パラメータK及びMは以下に従って更新できる。(a)Kがスライスの最大ルートノードlog2寸法と最小ルートノードlog2寸法との差よりも大きい場合、Kは、スライスの最大ルートノードlog2寸法と最小ルートノードlog2寸法との差に変更され、(b)Mがスライスの最小ルートノードlog2寸法よりも大きい場合、Mは、スライスの最小ルートノードlog2寸法に変更され、(c)スライスの最大ルートノードlog2寸法及び最小ルートノードlog2寸法が等しい場合、Mは0に変更され、(d)Trisoupモードが有効である場合、Kは、スライスの最大ルートノードlog2寸法と最小ルートノードlog2寸法との差に変更され、Mは、スライスの最小ルートノードlog2寸法に変更される。Trisoupノードlog2寸法は、スライスの最小ルートノードlog2寸法以下である必要がある点に留意すべきである。
【0019】
本開示の態様は、ポイントクラウドのジオメトリ復号の装置を提供する。当該装置は、符号化ポイントクラウドフレームのスライスを含むビットストリームを受信し、暗示的なジオメトリ分割を使用してスライスのバウンディングボックス内のポイントのジオメトリを表す八分木を復元するように構成された回路を含むことができ、八分木のカレントノードは、四分木(QT, quadtree)分割又は二分木(BT, binary tree)分割で分割される。
【0020】
本開示の態様は、プロセッサによって実行されると、プロセッサにポイントクラウドのジオメトリ復号の方法を実行させる命令を記憶した非一時的なコンピュータ読み取り可能媒体を提供する。
【図面の簡単な説明】
【0021】
以下の図面を参照して、例として提示される本開示の様々な実施形態について詳細に説明する。図面における同様の符号は、同様の要素を示す。
【
図2】一実施形態による詳細レベル(LOD, level of detail)生成処理を示す。
【
図3】一実施形態による例示的なエンコーダを示す。
【
図5】三次元(3D)空間における八分木分割を示す。
【
図6】2レベル八分木(OT)分割及び対応する占有コードの例を示す。
【
図7】x及びy方向に主成分を有するポイントクラウドシーケンスを示す。
【
図8】一実施形態による3D空間における四分木(QT)分割の例を示す。
【
図9】一実施形態による3D空間における二分木(BT)分割の例を示す。
【
図10】暗示的なQT分割及びBT分割に基づく4つの異なる分割処理を説明するための二次元(2D)ブロックを示す。
【
図11】暗示的なQT分割及びBT分割に基づく4つの異なる分割処理を説明するための二次元(2D)ブロックを示す。
【
図12】暗示的なQT分割及びBT分割に基づく4つの異なる分割処理を説明するための二次元(2D)ブロックを示す。
【
図13】暗示的なQT分割及びBT分割に基づく4つの異なる分割処理を説明するための二次元(2D)ブロックを示す。
【
図14】OT分割が拡張立方体バウンディングボックスから実行されるテストモデル13(TMC13), Testing Model 13)方式を説明するための2Dブロックを示す。
【
図15】本開示の一実施形態による、ポイントクラウド復号のためのQT/BT分割ベースのジオメトリ復号処理のフローチャートを示す。
【
図16】様々な実施形態におけるジオメトリ復号技術を実装するためのコンピュータシステムを示す。
【発明を実施するための形態】
【0022】
本開示は、ジオメトリベースのポイントクラウド圧縮(G-PCC, geometry based point cloud compression)に関する。暗示的な四分木(QT, quadtree)又は二分木(BT, binary-tree)分割の技術について説明する。暗示的なQT分割又はBT分割が適用される場合、ポイントクラウドのジオメトリは、常に全ての次元に沿って分割するのではなく、特定の基準が満たされる場合、暗示的に全ての次元のサブセットに沿って分割されてもよい。
【0023】
[I.ポイントクラウド符号化エンコーダ及びデコーダ]
【0024】
[1.ポイントクラウドデータ]
【0025】
ポイントクラウドデータ(又はポイントクラウド)は、没入型仮想現実(VR, virtual reality)/拡張現実(AR, augmented reality)/混合現実(MR, mixed reality)、自動車/ロボットナビゲーション、医用画像等のようないくつかの新たなアプリケーションにおいて三次元(3D)シーン又はオブジェクトを表すために使用される。ポイントクラウドは、個々の3Dポイントの集合を含んでもよい。各ポイントは、それぞれのポイントの3D位置を示す3D座標のセットと、色、表面法線、不透明、反射率等のような多くの他の属性とに関連付けられる。様々な実施形態では、入力ポイントクラウドデータは、量子化され、続いて、八分木データ構造を使用して記述できる立方体ボクセルの3Dグリッドに編成されてもよい。結果のボクセル化された八分木は、量子化されたポイントクラウドデータのトラバース、探索及びアクセスを容易にする。
【0026】
ポイントクラウドフレームは、特定の時点における3Dポイントのセットを含んでもよい。ポイントクラウドフレームは、オブジェクト又はシーンをこのようなポイントの構成として復元するために使用されてもよい。これらは、様々な設定において複数のカメラ及び深度センサを使用してキャプチャされてもよく、復元されたシーンを現実的に表現するために、数千のポイント及び数十億のポイントで構成されることもある。ポイントクラウドフレームのシーケンスは、ポイントクラウドと呼ばれてもよい。ポイントクラウドフレームの3Dポイントに関連するデカルト座標のセットは、これらの3Dポイントのジオメトリと呼ばれてもよい。
【0027】
ポイントクラウド(例えば、ポイントクラウドフレームのシーケンス)を表すために必要なデータ量を低減するために圧縮技術が必要とされる。したがって、リアルタイム通信及び6自由度(6DoF, six Degrees of Freedom)の仮想現実で使用するために、ポイントクラウドの非可逆圧縮のための技術が必要とされる。さらに、自動運転及び文化遺産アプリケーション等の動的マッピングに関して、可逆ポイントクラウド圧縮技術のための技術が求められている。さらに、ジオメトリ及び属性(例えば、色及び反射率)の圧縮、スケーラブル/プログレッシブ符号化、時間と共にキャプチャされるポイントクラウドのシーケンスの符号化、及びポイントクラウドのサブセットへのランダムアクセスに対処するための標準が必要とされる。
【0028】
[2.座標量子化]
【0029】
一実施形態では、まず、入力クラウドデータ内のポイントの座標が量子化されてもよい。例えば、座標の実数値が整数値に量子化されてもよい。量子化の後に、1つより多くのポイントが、いくつかのボクセルにおいて同じ位置を共有してもよい。任意選択で、これらの重複ポイントは、単一ポイントにマージされてもよい。
【0030】
[3.八分木に基づくジオメトリ符号化]
【0031】
図1は、一実施形態による再帰的細分処理(100)を示す。当該処理(100)は、ポイントクラウド内のポイントのセットの位置を表すように八分木構造を生成するために実行されてもよい。図示のように、まず、ポイントのセットを含む立方体軸に整列したバウンディングボックス(101)が定義される。次いで、バウンディングボックス(101)が再帰的に細分され、八分木構造を構築する。図示のように、各段階において、カレント立方体は、8つのサブ立方体に分割されてもよい。占有コードと呼ばれる8ビットのコードが、8つのサブ立方体のそれぞれがポイントを含むか否かを示すために生成されてもよい。例えば、各サブ立方体は1ビット値と関連付けられる。サブ立方体が占有されている場合、それぞれのサブ立方体は1のビット値を有し、そうでない場合、それぞれのサブ立方体は0のビット値を有する。占有サブ立方体は、サブ立方体の所定の最小サイズに達するまで分割されてもよい。最小サイズのサブ立方体は、八分木構造に対応するボクセルである。このように、占有コードのシーケンスが生成され、その後、圧縮され、エンコーダからデコーダに送信されてもよい。占有コードを復号することによって(例えば、八分木復号処理を実行することによって)、デコーダは、エンコーダと同じ八分木構造又は八分木構造の推定を取得できる。
【0032】
[4.属性転送]
【0033】
八分木生成又は符号化処理の結果として、エンコーダ側では、最小サイズのサブ立方体は、1つよりも多いポイントを含んでもよい。したがって、ボクセルに対応する位置(例えば、それぞれのサブ立方体の中心)は、複数のポイントからの複数のセットの属性に対応してもよい。このようなシナリオにおいて、一実施形態では、それぞれのボクセルについての複数のセットの属性に基づいて1つのセットの属性を決定するために、属性転送処理が実行されてもよい。例えば、最も近い隣接ポイントのサブセットの平均属性が、それぞれのボクセルの属性として使用されてもよい。様々な実施形態では、属性転送の目的のために異なる方法が使用されてもよい。
【0034】
[詳細レベル(LOD, Level of Detail)生成]
【0035】
図2は、一実施形態による詳細レベル(LOD)生成処理(200)を示す。当該処理(200)は、八分木復号処理に従って順序付けられた量子化位置(例えば、ボクセル位置)に対して実行されてもよい。当該処理(200)の結果として、ポイントは、精緻化(refinement)レベルのセットに再編成又は再順序付けされてもよい。当該処理(200)は、エンコーダ及びデコーダで同じように実行されてもよい。その後の属性符号化処理は、当該処理(200)によって定義される順序(LODベースの順序と呼ばれる)に従って、エンコーダ又はデコーダで実行されてもよい。
【0036】
具体的には、
図2は、LOD0、LOD1及びLOD2の3つのLODを示す。ユークリッド距離d0、d1又はd2が、それぞれLOD0、LOD1及びLOD2について指定されてもよい。ポイントP0-P9のサブセットが各LODに含まれる。それぞれのLOD内の各ポイントの対の間の距離は、それぞれのユークリッド距離以上である。ユークリッド距離は、d0>d1>d2のように配置されてもよい。このような構成では、より高い精緻化レベルは、互いに離れた少ないポイントを含み、ポイントクラウドのより大まかな表現を提供するが、より低い精緻化レベルは、互いに近い多くのポイントを含み、ポイントクラウドのより細かい表現を提供する。
【0037】
上記のLOD生成処理(200)の結果として、P0-P9の元の順序(八分木復号順序)のポイントは、P0、P5、P4、P2、P1、P6、P3、P9、P8及びP7のLODベースの順序に再編成されてもよい。
【0038】
[6.属性予測]
【0039】
ポイントクラウドに関連する属性は、LOD生成処理によって定義された順序で符号化及び復号されてもよい。例えば、LODベースの順序では、ポイント毎に、エンコーダ及び/又はデコーダにおいて属性予測処理を実行することによって、各カレントポイント(現在処理中のポイント)の属性予測が決定されてもよい。同様の属性予測処理がエンコーダ及びデコーダで実行されてもよい。
【0040】
取得された属性予測によって、エンコーダにおいて、カレントポイントのそれぞれの元の属性値から属性予測値を減算することによって、残差信号が生成されてもよい。次いで、残差信号は、個別に、或いは、他の残差信号と組み合わせて、更に圧縮されてもよい。例えば、変換及び/又は量子化動作が実行され、次いで、結果の信号のエントロピー符号化が実行されてもよい。圧縮された残差信号は、ビットストリームでエンコーダに送信されてもよい。
【0041】
デコーダにおいて、残差信号を符号化するためのエンコーダにおける符号化処理の逆を実行することによって残差信号が回復されてもよい。取得された属性予測と、カレントポイントに対応する回復した残差信号とを用いて、カレントポイントの復元された属性が取得されてもよい。同様に、この復元動作は、復元された属性を取得するためにエンコーダにおいて行われてもよい。
【0042】
様々な実施形態において、属性予測を決定するために様々な属性予測技術が使用されてもよい。典型的には、カレントポイントの属性予測は、カレントポイントに隣接するポイントの前に復元された属性を使用して実行される。属性予測処理が開始すると、LODベースの順序に基づいて、カレントポイントの前のポイントの復元された属性値が既に利用可能になる。さらに、八分木符号化又は復号処理から、ポイントクラウド内のポイントの位置(3D座標)も利用可能になる。したがって、属性予測処理は、カレントポイントの隣接ポイントの復元された属性及び3D座標の知識で実行されてもよい。
【0043】
例えば、カレントポイントの隣接ポイントのセットは、まず、様々なアルゴリズムを使用して決定されてもよい。一例では、カレントポイントに最も近いポイントのセットを決定するために、k-dツリー構造ベースの探索処理が実行されてもよい。
【0044】
例えば、ジオメトリ距離及び/又は属性距離ベースの手法が、属性予測を決定するために使用される。予測属性は、エンコーダ又はデコーダにおける決定された隣接ポイントのセットの復元された属性の加重和(又は加重平均)に基づいて決定されてもよい。例えば、決定された隣接ポイントのセットによって、決定された隣接ポイントの復元された属性の加重和(又は加重平均)は、エンコーダ又はデコーダにおける予測属性であると決定されてもよい。例えば、加重和ベースの技術(補間ベースの技術とも呼ばれる)において使用される重みは、属性距離、又はジオメトリ距離の逆数(又は反比例するもの)でもよい。代替として、重みは、ジオメトリ距離ベースの重み(ジオメトリ重み)と属性距離ベースの重み(属性重み)との組み合わせから導出される相互重みでもよい。
【0045】
例えば、レート歪み(RD, rate-distortion)ベースの手法が、属性予測を決定するために使用される。例えば、候補インデックスは、エンコーダ又はデコーダにおける隣接ポイントのセットのそれぞれの復元された属性値に関連付けられてもよい。エンコーダにおいて、隣接ポイントの候補の復元された属性値のどれが属性予測として使用されるべき最良の選択であるかを評価するために、RD最適化ベースの処理が実行されてもよい。例えば、歪みは、カレントポイントの元の(或いは真の)属性値と候補予測(候補の復元された属性値)との差によって測定されてもよい。レートは、選択された候補予測のインデックスを符号化するコストでもよい。最良の予測信号候補を決定するために、ラグランジアンRDコスト関数が定義されてもよい。このように、選択された候補予測の候補インデックスは、デコーダに伝達されてもよい。
【0046】
したがって、デコーダは、まず、それぞれのカレントポイントの同じセットの隣接ポイントを決定し、エンコーダ側と同様に、同じセットの隣接ポイントの復元された属性値にインデックスを関連付けてもよい。次いで、デコーダは、伝達された候補インデックスを使用して、隣接ポイントの復元された属性値から属性予測を決定してもよい。
【0047】
[7.ポイントクラウド圧縮の符号化システムの例]
【0048】
図3は、一実施形態による例示的なエンコーダ(300)を示す。エンコーダは、ポイントクラウドデータを受信し、ポイントクラウドデータを圧縮し、圧縮されたポイントクラウドデータを搬送するビットストリームを生成するように構成されてもよい。一実施形態では、エンコーダ(300)は、位置量子化モジュール(310)と、重複ポイント除去モジュール(312)と、八分木符号化モジュール(330)と、属性転送モジュール(320)と、LOD生成モジュール(340)と、属性予測モジュール(350)と、残差量子化モジュール(360)と、算術符号化モジュール(370)と、逆残差量子化モジュール(380)と、加算モジュール(381)と、復元された属性値を記憶するメモリ(390)とを含んでもよい。
図示のように、エンコーダ(300)において入力ポイントクラウド(301)が受信されてもよい。ポイントクラウド(301)の位置(3D座標)は、量子化モジュール(310)に提供される。量子化モジュール(310)は、座標を量子化し、量子化位置を生成するように構成される。任意選択の重複ポイント除去モジュール(312)は、量子化位置を受信し、重複ポイントを識別して除去するためのフィルタ処理を実行するように構成される。八分木符号化モジュール(330)は、重複ポイント除去モジュールからフィルタリングされた位置を受信し、八分木ベースの符号化処理を実行し、ボクセルの3Dグリッドを記述する占有コードのシーケンスを生成するように構成される。占有コードは算術符号化モジュール(370)に提供される。
【0049】
属性転送モジュール(320)は、入力ポイントクラウドの属性を受信し、複数の属性値がそれぞれのボクセルに関連付けられる場合に、各ボクセルについての属性値を決定するための属性転送処理を実行するように構成される。属性転送処理は、八分木符号化モジュール(330)から出力された再順序付けされたポイントに対して実行されてもよい。転送動作後の属性は、属性予測モジュール(350)に提供される。LOD生成モジュール(340)は、八分木符号化モジュール(330)から出力された再順序付けされたポイントに対して動作し、ポイントを異なるLODに再編成するように構成される。LOD情報は属性予測モジュール(350)に供給される。
【0050】
属性予測モジュール(350)は、LOD生成モジュール(340)からのLOD情報によって示されるLODベースの順序に従ってポイントを処理する。属性予測モジュール(350)は、メモリ(390)に記憶されたカレントポイントの隣接ポイントのセットの復元された属性に基づいて、カレントポイントについての属性予測を生成する。予測残差は、その後に、属性転送モジュール(320)から受信した元の属性値と、ローカルで生成された属性予測とに基づいて取得される。候補インデックスがそれぞれの属性予測処理において使用される場合、選択された予測候補に対応するインデックスが算術符号化モジュール(370)に提供されてもよい。
【0051】
残差量子化モジュール(360)は、属性予測モジュール(350)から予測残差を受信し、量子化を実行し、量子化残差を生成するように構成される。量子化残差は、算術符号化モジュール(370)に提供される。
【0052】
逆残差量子化モジュール(380)は、残差量子化モジュール(360)から量子化残差を受信し、残差量子化モジュール(360)で実行される量子化動作の逆を実行することによって、復元された予測残差を生成するように構成される。加算モジュール(381)は、逆量子化モジュール(380)から復元された予測残差を受信し、属性予測モジュール(350)からそれぞれの属性予測を受信するように構成される。復元された予測残差と属性予測を組み合わせることによって、復元された属性値が生成され、メモリ(390)に記憶される。
【0053】
算術符号化モジュール(370)は、占有コード、候補インデックス(使用される場合)、量子化残差(生成される場合)及び他の情報を受信し、エントロピー符号化を実行し、受信した値又は情報を更に圧縮するように構成される。その結果、圧縮情報を搬送する圧縮ビットストリーム(302)が生成されてもよい。ビットストリーム(302)は、圧縮ビットストリームを復号するデコーダに送信されてもよく或いは他の方法で提供されてもよく、或いは、記憶デバイスに記憶されてもよい。ビットストリームは、符号化ポイントクラウドフレームの表現を形成するビットのシーケンスを示してもよい。符号化ポイントクラウドフレームは、ポイントクラウドフレームの符号化表現を示してもよい。
【0054】
図4は、一実施形態による例示的なデコーダ(400)を示す。デコーダ(400)は、圧縮ビットストリームを受信し、ポイントクラウドデータ解凍を実行し、ビットストリームを解凍して復号されたポイントクラウドデータを生成するように構成されてもよい。一実施形態では、デコーダ(400)は、算術復号モジュール(410)と、逆残差量子化モジュール(420)と、八分木復号モジュール(430)と、LOD生成モジュール(440)と、属性予測モジュール(450)と、復元された属性値を記憶するためのメモリ(460)とを含んでもよい。
【0055】
図示のように、圧縮ビットストリーム(401)は、算術復号モジュール(410)において受信されてもよい。算術復号モジュール(410)は、圧縮ビットストリーム(401)を復号し、量子化残差(生成される場合)と、ポイントクラウドの占有コードとを取得するように構成される。八分木復号モジュール(430)は、占有コードに従って、ポイントクラウド内のポイントの復元位置を決定するように構成される。LOD生成モジュール(440)は、復元位置に基づいてポイントを異なるLODに再編成し、LODベースの順序を決定するように構成される。逆残差量子化モジュール(420)は、算術復号モジュール(410)から受信した量子化残差に基づいて復元された残差を生成するように構成される。
【0056】
属性予測モジュール(450)は、属性予測処理を実行し、LODベースの順序に従ってポイントについての属性予測を決定するように構成される。例えば、カレントポイントの属性予測は、メモリ(460)に記憶されたカレントポイントの隣接ポイントの復元された属性値に基づいて決定されてもよい。属性予測モジュール(450)は、属性予測をそれぞれの復元された残差と組み合わせ、カレントポイントについての復元された属性を生成してもよい。
【0057】
一例では、属性予測モジュール(450)から生成された復元された属性のシーケンスは、八分木復号モジュール(430)から生成された復元位置と共に、デコーダ(400)から出力される復号ポイントクラウド(402)に対応する。さらに、復元された属性もメモリ(460)に記憶され、その後に、後続のポイントについての属性予測を導出するために使用されてもよい。
【0058】
様々な実施形態では、エンコーダ(300)及びデコーダ(400)は、ハードウェア、ソフトウェア又はこれらの組み合わせで実装されてもよい。例えば、エンコーダ(300)及びデコーダ(400)は、特定用途向け集積回路(ASIC, application specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA, field programmable gate array)等のような、ソフトウェアの有無にかかわらず動作する1つ以上の集積回路(IC, integrated circuit)のような処理回路を使用して実現されてもよい。他の例では、エンコーダ(300)及びデコーダ(400)は、不揮発性(又は非一時的)コンピュータ読み取り可能記憶媒体に記憶された命令を含むソフトウェア又はファームウェアとして実装されてもよい。命令は、1つ以上のプロセッサのような処理回路によって実行されると、処理回路にエンコーダ(300)及びデコーダ(400)の機能を実行させる。
【0059】
本明細書に開示の様々な技術を実装するように構成されたエンコーダ(300)及びデコーダ(400)内のエレメントは、
図3及び
図4に示すものと同様の構造又は異なる構造を有してもよい他のデコーダ又はエンコーダに含まれてもよい点に留意すべきである。さらに、エンコーダ(300)及びデコーダ(400)は、様々な例において、同じデバイス又は別個のデバイスに含まれてもよい。
【0060】
[テストモデル13(TMC13, Test Model 13)におけるG-PCC]
【0061】
G-PCCは、カテゴリ1(静的ポイントクラウド)とカテゴリ3(動的に取得されたポイントクラウド)との双方におけるポイントクラウドの圧縮に対処する。TMC13と呼ばれるテストモデルは、潜在的なポイントクラウド符号化技術を研究するための基礎として、MPEG(Moving Picture Experts Group)により開発されている。TMC13モデルは、ジオメトリと、色及び反射率のような関連する属性とを別々に圧縮する。ポイントクラウドの3D座標であるジオメトリは、八分木分割によって符号化される。次いで、予測及びリフティング技術を使用して、属性が復元されたジオメトリに基づいて圧縮される。
【0062】
[1.現在のTMC13設計における八分木分割及び符号化占有情報]
【0063】
3D立方体の均等分割は8つのサブ立方体を生成し、これはポイントクラウド圧縮(PCC, point cloud compression)における八分木(OT, octree)分割として知られている。OT分割は、一次元における二分木(BT, binary-tree)分割に類似しており、二次元空間における四分木(QT, quadtree)分割に類似している。OT分割が
図5に示されており、実線の3D立方体(501)は、破線の8つのより小さい等しいサイズの立方体に分割される。左側の4つの立方体は0~3のインデックスに関連し、右側の4つの立方体は4~7のインデックスに関連する。
【0064】
TMC13では、八分木ジオメトリコーデックが使用される場合、ジオメトリ符号化は以下のように進む。まず、立方体軸に整列したバウンディングボックスBは、2つのポイント(0,0,0)及び(2d,2d,2d)によって定義され、ここで、2dはBのサイズを定義し、dはビットストリームにおいて符号化される。これは、圧縮する必要がある全てのポイントが定義されたバウンディングボックスBの内側にあると仮定する。
【0065】
次いで、再帰的にBを細分することによって、八分木構造が構築される。各段階において立方体が8つのサブ立方体に細分される。繰り返しの細分のk(k≦d)回後のサブ立方体のサイズは(2d-k,2d-k,2d-k)になる。次いで、ポイントを含むか(すなわち、一杯であり、値1を有する)か含まないか(すなわち、空であり、値0を有する)を示すために、8ビットコード、すなわち、占有コードが、1ビットの値を各サブ立方体に関連付けることによって生成される。1より大きいサイズ(すなわち、非ボクセル)を有する完全なサブ立方体のみが更に細分される。次いで、各立方体の占有コードは、算術エンコーダによって圧縮されてもよい。
【0066】
復号処理は、ビットストリームからバウンディングボックスBの寸法を読み取ることから始まる。次いで、復号された占有コードに従ってBを細分することによって、同じ八分木構造が構築される。2レベルOT分割及び対応する占有コードの例が
図6に示されており、網掛けの立方体及びノードは、これらがポイントによって占有されることを示す。
【0067】
図示のように、立方体(601)は、8つのサブ立方体に分割される。
図5において使用されるのと同じインデックス方法によって、第0及び第7のサブ立方体はそれぞれ、8つのサブ立方体に更に分割される。立方体(601)への分割に対応する八分木(610)は、第1のレベルにおいてルートノード(611)を含む。ルートノード(611)は、0~7にインデックス付けできる8つの子ノードに分割される。第2のレベルにおける第0及び第7のノード(612-613)は、16個の子ノードに更に分割される。八分木(610)におけるノードのレベルは、ルートから各ノードへのホップ数に対応してもよく、八分木(610)の深度と呼ばれてもよい。八分木(610)の第1のレベルから第3のレベルに対応する深度0~2が
図6に示されている。
【0068】
[2.占有コードの符号化]
【0069】
各ノードの占有コードは、算術エンコーダによって圧縮されてもよい。占有コードは、8ビンの整数であるSとして示されてもよく、S内の各ビンは、各子ノードの占有状態を示す。占有コードについての2つの符号化方法、すなわち、ビット単位の符号化方法及びバイト単位の符号化方法がTMC13に存在し、ビット単位の符号化がデフォルトで有効である。いずれの方法も、占有コードを符号化するためにコンテキストモデリングを用いて算術符号化を実行し、ここで、コンテキスト状態は、全体の符号化処理の開始時に初期化され、符号化処理中に更新される。
【0070】
ビット単位の符号化について、S内の8つのビンは特定の順序で符号化され、各ビンは、隣接ノード及び隣接ノードの子ノードの占有状態を参照することによって符号化され、隣接ノードはカレントノードと同じレベルにある。
【0071】
バイト単位の符号化について、Sは、N(例えば、32)個の最も頻繁な占有コードをトラッキングする適応ルックアップテーブル(A-LUT, adaptive look up table)と、最後に観察された異なるM(例えば、16)個の占有コードをトラッキングするキャッシュとを参照することによって符号化される。
【0072】
SがA-LUTにあるか否かを示すバイナリフラグが符号化される。SがA-LUTにある場合、A-LUT内のインデックスは、バイナリ算術エンコーダを使用することによって符号化される。SがA-LUTにない場合、Sがキャッシュにあるか否かを示すバイナリフラグが符号化される。Sがキャッシュにある場合、キャッシュ内のそのインデックスのバイナリ表現は、バイナリ算術エンコーダを使用することによって符号化される。そうでなく、Sがキャッシュにない場合、Sのバイナリ表現は、バイナリ算術エンコーダを使用することによって符号化される。
【0073】
復号処理は、ビットストリームからバウンディングボックスBの寸法を解析することから始まる。次いで、復号された占有コードに従ってBを細分することによって、同じ八分木構造が構築される。
【0074】
[III.ポイントクラウド符号化のための暗示的なジオメトリ分割]
【0075】
[1.課題]
【0076】
TMC13の設計では、バウンディングボックスは、全ての次元について同じサイズを有する立方体Bであるように制限され、OT分割は、完全なサブ立方体について、サブ立方体が全ての寸法の半分のサイズである各ノードにおいて実行される。OT分割は、サブ立方体のサイズが1に達するまで、或いは、サブ立方体に含まれるポイントが存在しなくなるまで、再帰的に実行される。しかし、この方式は、全ての場合に、特にポイントが3Dシーンで不均一に分布している場合に効率的ではない。1つの極端な場合は、3D空間における2D平面であり、全てのポイントはx-y平面上に位置し、z軸の変位はゼロである。この場合、立方体Bに対して開始ポイントとして実行されるOT分割は、冗長で有用ではないz方向の占有情報を表すために、多数のビットを浪費する。実際のアプリケーションでは、最悪の場合は頻繁に生じない可能性があるが、いくつかの次元で短い長さを有する、非対称的なバウンディングボックスを有するポイントクラウドを有することが一般的である。
【0077】
図7に示すように、MPEG-PCCにおけるテストに使用される「ford_01_vox1mm」という名称のポイントクラウドシーケンスは、x及びy方向の主成分を有する。実際に、ライダー(Lidar)センサから生成された多くのポイントクラウドデータは、同じ特性を有する。
【0078】
[2.暗示的なQT分割及びBT分割]
【0079】
本開示の態様は、直方体のバウンディングボックスの分割に対処する実施形態を提供し、分割中の立方体又はノードは常にOTではなく、QT分割又はBT分割されると暗示的に決定されてもよい。占有情報を示す占有ビットは、暗示的なQT分割及びBT分割から節約できる。
【0080】
完全な立方体でない可能性があるバウンディングボックスについて、場合によっては、異なるレベルのノードが全ての方向に沿って分割されない(或いは分割できない)可能性がある。分割が全ての3つの方向に対して実行される場合、典型的には分割はOT分割である。分割が3つのうち2つの方向で実行される場合、分割は3D空間におけるQT分割である。分割が1つの方向のみで実行される場合、その分割は3D空間におけるBT分割である。3D空間におけるQT及びBT分割の例が、それぞれ
図8及び
図9に示されている。説明のために、図面は、完全な立方体からのQT分割及びBT分割を示しているが、バウンディングボックスを形成するいずれかの一般的な直方体から分割されてもよい点に留意すべきである。
【0081】
図8は、それぞれx-y、x-z及びy-z軸(又は方向)に沿って分割された3つの立方体(801-803)を示す。各立方体(801-803)内のサブノードは、
図5の例のOT分割における8つの子ノードをインデックス付けするための8つのインデックスのサブセットであるインデックスが割り当てられる。割り当てられたインデックスによって、3つの異なる方向を有するQT分割が、八分木構造における占有コードを使用して表されてもよい。例えば、立方体(801)に対するx-y軸に沿ったQT分割を表す占有コードは、x0x0x0x0の形式となってもよく、xの位置のビットは占有状態を示すために使用されてもよい(例えば、1又は0の値をとることができる)。同様に、立方体(802)に対するx-z軸に沿ったQT分割を表す占有コードはxx00xx00の形式となってもよく、立方体(803)に対するy-z軸に沿ったQT分割を表す占有コードはxxxx0000の形式となってもよい。図示のように、サブ立方体に割り当てられたこれらのインデックスはまた、8ビット占有コードにおける結果のサブノードに対応するビットの位置を示す。
【0082】
図9は、それぞれx、y及びz軸に沿って分割された3つの立方体(901-903)を示す。
図8と同様に、各立方体(901-903)内のサブノードは、占有コードにおける位置に対応するインデックスが割り当てられる。
【0083】
所定の条件が満たされると、QT分割及びBT分割が暗示的に実行されてもよい。「暗示的」とは、QT分割又はBT分割がOT分割の代わりに使用されることを示すために、更なる伝達ビットが必要ないことを意味する。デコーダは、所定の条件に基づいてエンコーダと同様に、分割のタイプ(例えば、QT分割又はBT分割)及び方向を決定してもよい。さらに、各サブノードの占有情報を伝達するときに、OT分割と比較して、暗示的なQT分割又はBT分割からビットが節約できる。QTは4つのサブノードの占有状態を表すために8ビットから減少して、4ビットを必要とし、BTは2ビットのみを必要とする。例えば、
図8~9の例のように、サブノードに割り当てられたインデックスに対応する占有コード内のビットが伝達されてもよく、一方、サブノードと関連のない占有コード内の他のビットはスキップされてもよい(伝達されなくてもよい)。したがって、QT分割及びBT分割が導入された場合、占有コードは、スキップビット及び伝達ビットを含んでもよい。
【0084】
QT分割及びBT分割は、OT分割と同じ構造で実装されてもよい点に留意すべきである。隣接符号化キューブに基づくコンテキスト選択及びエントロピーエンコーダは、同様の方法で適用されてもよい。QT又はBTからの占有コードのコンテキストモデリングは、サブノードの非対称形状に応じて変更されてもよい。
【0085】
暗示的なQT分割及びBT分割の占有コードの符号化は、以下の例のように記述されてもよい。まず、
図5に示すように、OTの占有コードがインデックスの順序で符号化されると仮定してもよい。次いで、
図8の左側のグラフ(立方体(801))に示すように、位置1、3、5、7のビットを省略することによって符号化されてもよく、位置0、2、4、6のビットのみが伝達される。この理由は、位置1、3、5、7のビットは、デコーダにおいてゼロであると推定できるからである。同様に、x軸に沿ったBTについて、
図9の左側のグラフ(立方体(901))に示すように、位置0及び4の占有情報が伝達されてもよく、他の6ビットはゼロであると推定されてもよい。
【0086】
さらに、現在のTMC13は、直接モード(DM, direct mode)であるジオメトリ符号化のための特別なモードを有しており、更なる分割なしにサブノード内の(x,y,z)位置を直接符号化することを許容する。例えば、位置は、固定長符号化によるカレントサブノードの原点に対する相対位置であり、ビット長は、カレントサブノードの寸法によって決定される。暗示的な分割は、(x,y,z)次元において等しくないサイズを有するサブノードをもたらす可能性があるので、DMモードはそれに従って変更されてもよい。例えば、
【数1】
のサイズを有するサブノードがDMモードで符号化される場合、サブノード内の各ポイントの相対位置は、それぞれ(d
x,d
y,d
z)ビットを用いた固定長符号化によって符号化される。
【0087】
[3.直方体バウンディングボックスの伝達]
【0088】
まず、バウンディングボックスBは、全ての方向において同じサイズであるように制限されず、その代わりに、バウンディングボックスは、3Dシーン又はオブジェクトの形状により良く適合するように任意のサイズの直方体とすることができる。様々な実施形態では、バウンディングボックスBのサイズは、2のべき乗、すなわち、
【数2】
として表されてもよい。d
x、d
y及びd
zは、バウンディングボックスのlog2サイズと呼ばれる。d
x、d
y、d
zが等しいと仮定されず、シーケンスヘッダ(例えば、シーケンスパラメータセット(SPS, sequence parameter set))又はビットストリームのスライスヘッダで別々に伝達されてもよい点に留意すべきである。
【0089】
さらに、バウンディングボックスBのサイズは、2のべき乗であるという制限なしに、いずれかの正の数とすることができる点に留意する価値がある。
図7は、シーンを囲む立方体のバウンディングボックスの一例を示しており、z方向は最小サイズを有する。
【0090】
実施形態の詳細な説明におけるセクションIIIにおいて、Geometry-based Point Cloud Compression, ISO/IEC 23090-9:2019(E), WD stage, ISO/IEC JTC 1/SC 29/WG 11 W18179, March 2019についてのドラフトの標準仕様への変更に対するいくつかの実施形態が示される。
【0091】
[実施形態A]
【0092】
一実施形態では、三次元のバウンディングボックスサイズは、表1に示すように、log2の形式で、ジオメトリスライスヘッダで伝達されてもよい。ジオメトリスライスヘッダは、スライスに適用されるシンタックスエレメントを含んでもよい。一般的に、スライスは、符号化ポイントクラウドフレームの一部又は全体を表す一連のシンタックスエレメントを参照してもよい。スライスのポイントは、スライスに対応するバウンディングボックスに含まれてもよい。
【表2】
【0093】
表1のジオメトリスライスヘッダのシンタックスは、行10-12に以下のシンタックスエレメントを追加することによって修正される。
【0094】
gsh_log2_max_nodesize_xはx次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeXを指定する。
MaxNodeSizeX=2gsh_log2_max_nodesize_x
MaxNodeSizeLog2X=gsh_log2_max_nodesize_x
【0095】
gsh_log2_max_nodesize_yはy次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeYを指定する。
MaxNodeSizeY=2gsh_log2_max_nodesize_y
MaxNodeSizeLog2Y=gsh_log2_max_nodesize_y
【0096】
gsh_log2_max_nodesize_zはz次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeZを指定する。
MaxNodeSizeZ=2gsh_log2_max_nodesize_z
MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z
【0097】
[実施形態B]
【0098】
他の実施形態では、三次元のサイズは、log2の形式で、ジオメトリスライスヘッダで伝達されてもよい。3つの値を独立して伝達する代わりに、以下のようにこれらの差によって伝達してもよい。
【表3】
【0099】
表2のジオメトリスライスヘッダのシンタックスは、行10-12に以下のシンタックスエレメントを追加することによって修正される。
【0100】
gsh_log2_max_nodesize_xはx次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeXを指定する。
MaxNodeSizeX=2gsh_log2_max_nodesize_x
MaxNodeSizeLog2X=gsh_log2_max_nodesize_x
【0101】
gsh_log2_max_nodesize_y_minus_xはy次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeYを指定する。
MaxNodeSizeY=2gsh_log2_max_nodesize_y_minus_x+gsh_log2_max_nodesize_x
MaxNodeSizeLog2Y=gsh_log2_max_nodesize_y_minus_x+gsh_log2_max_nodesize_x
【0102】
gsh_log2_max_nodesize_z_minus_yはz次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeZを指定する。
MaxNodeSizeZ=2gsh_log2_max_nodesize_z_minus_y+MaxNodeSizeLog2Y
MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z_minus_y+MaxNodeSizeLog2Y
【0103】
[実施形態C]
【0104】
他の実施形態では、三次元のサイズは、以下のようにこれらのデカルト位置によってジオメトリスライスヘッダで伝達されてもよい。
【表4】
【0105】
表3のジオメトリスライスヘッダのシンタックスは、行10-12に以下のシンタックスエレメントを追加することによって修正される。
【0106】
gsh_max_nodesize_xはx次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeXを指定する。
MaxNodeSizeX=gsh_max_nodesize_x
MaxNodeSizeLog2X=ilog2(MaxNodeSizeX)
ここで、ilog2(v)はvのlog2以上の最小の整数を計算する。
【0107】
gsh_max_nodesize_yはy次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeYを指定する。
MaxNodeSizeY=gsh_max_nodesize_y
MaxNodeSizeLog2Y=ilog2(MaxNodeSizeY)
【0108】
gsh_max_nodesize_zはz次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeZを指定する。
MaxNodeSizeZ=gsh_max_nodesize_z
MaxNodeSizeLog2Z=ilog2(MaxNodeSizeZ)
【0109】
[実施形態D]
【0110】
他の実施形態では、三次元のサイズは、以下のようにこれらのデカルト位置から1を減算することによってジオメトリスライスヘッダで伝達されてもよい。
【表5】
【0111】
表4のジオメトリスライスヘッダのシンタックスは、行10-12に以下のシンタックスエレメントを追加することによって修正される。
【0112】
gsh_max_nodesize_x_minus_oneはx次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeXを指定する。
MaxNodeSizeX=gsh_max_nodesize_x_minus_one+1
MaxNodeSizeLog2X=ilog2(MaxNodeSizeX)
【0113】
gsh_max_nodesize_y_minus_oneはy次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeYを指定する。
MaxNodeSizeY=gsh_max_nodesize_y_minus_one+1
MaxNodeSizeLog2Y=ilog2(MaxNodeSizeY)
【0114】
gsh_max_nodesize_z_minus_oneはz次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeZを指定する。
MaxNodeSizeZ=gsh_max_nodesize_z_minus_one+1
MaxNodeSizeLog2Z=ilog2(MaxNodeSizeZ)
【0115】
[実施形態E]
【0116】
他の実施形態では、3つのうち1つの次元のみが異なるサイズを有することを許容する。この場合、x次元及びy次元のサイズは同じであり、z次元は異なってもよいので、2つの値は、以下のようにlog2の形式で、ジオメトリスライスヘッダで伝達される。
【表6】
【0117】
表5のジオメトリスライスヘッダのシンタックスは、行10-11に以下のシンタックスエレメントを追加することによって修正される。
【0118】
gsh_log2_max_nodesize_x_yはx次元及びy次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeX及びMaxNodesizeYを指定する。
MaxNodeSizeX=MaxNodeSizeY=2gsh_log2_max_nodesize_x_y
MaxNodeSizeLog2X=MaxNodeSizeLog2Y=gsh_log2_max_nodesize_x_y
【0119】
gsh_log2_max_nodesize_zはz次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeZを指定する。
MaxNodeSizeZ=2gsh_log2_max_nodesize_z
MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z
【0120】
[実施形態F]
【0121】
他の実施形態では、3つのうち1つの次元のみが異なるサイズを有することを許容する。この場合、x次元及びy次元のサイズは同じであり、z次元は異なってもよいので、2つの値は、log2の形式で、ジオメトリスライスヘッダで伝達される。2つの値を独立して伝達する代わりに、以下のようにこれらの差によって伝達してもよい。
【表7】
【0122】
表6のジオメトリスライスヘッダのシンタックスは、行10-11に以下のシンタックスエレメントを追加することによって修正される。
【0123】
gsh_log2_max_nodesize_x_yはx次元及びy次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeX及びMaxNodesizeYを指定する。
MaxNodeSizeX=MaxNodeSizeY=2gsh_log2_max_nodesize_x_y
MaxNodeSizeLog2X=MaxNodeSizeLog2Y=gsh_log2_max_nodesize_x_y
【0124】
gsh_log2_max_nodesize_z_minus_xyはz次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeZを指定する。
MaxNodeSizeZ=2gsh_log2_max_nodesize_z_minus_xy+gsh_log2_max_nodesize_x_y
MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z_minus_xy+gsh_log2_max_nodesize_x_y
【0125】
[実施形態G]
他の実施形態では、3つのうち1つの次元のみが異なるサイズを有することを許容する。
【0126】
この場合、x次元及びy次元のサイズは同じであり、z次元は異なってもよいので、2つの値は、以下のようにこれらのデカルト位置によってジオメトリスライスヘッダで伝達される。
【表8】
【0127】
表7のジオメトリスライスヘッダのシンタックスは、行10-11に以下のシンタックスエレメントを追加することによって修正される。
【0128】
gsh_max_nodesize_x_yはx次元及びy次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeX及びMaxNodesizeYを指定する。
MaxNodeSizeX=MaxNodeSizeY=gsh_max_nodesize_x_y
MaxNodeSizeLog2X=MaxNodeSizeLog2Y=ilog2(gsh_max_nodesize_x_y)
【0129】
gsh_max_nodesize_zはz次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeZを指定する。
MaxNodeSizeZ=gsh_max_nodesize_z
MaxNodeSizeLog2Z=ilog2(gsh_max_nodesize_z)
【0130】
[実施形態H]
【0131】
他の実施形態では、3つのうち1つの次元のみが異なるサイズを有することを許容する。この場合、x次元及びy次元のサイズは同じであり、z次元は異なってもよいので、2つの値は、以下のようにこれらのデカルト位置から1を減算することによってジオメトリスライスヘッダで伝達される。
【表9】
【0132】
表8のジオメトリスライスヘッダのシンタックスは、行10-11に以下のシンタックスエレメントを追加することによって修正される。
【0133】
gsh_max_nodesize_x_y_minus_oneはx次元及びy次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeX及びMaxNodesizeYを指定する。
MaxNodeSizeX=MaxNodeSizeY=gsh_max_nodesize_x_y_minus_one+1
MaxNodeSizeLog2X=MaxNodeSizeLog2Y=ilog2(gsh_max_nodesize_x_y_minus_one+1)
【0134】
gsh_max_nodesize_z_minus_oneはz次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeZを指定する。
MaxNodeSizeZ=gsh_max_nodesize_z_minus_one+1
MaxNodeSizeLog2Z=ilog2(gsh_max_nodesize_z_minus_one+1)
【0135】
[4.暗示的なQT分割及びBT分割の伝達]
【0136】
[実施形態A]
【0137】
一実施形態では、ジオメトリ符号化のシンタックスは、以下の通りである。
【表10】
【0138】
表9のジオメトリスライスデータのシンタックスは、行3-14に以下のシンタックスエレメントを追加又は変更することによって修正される。行14において、新たな変数depthX、depthY、depthZ及びpartitionSkipが、geometry_node関数への入力として追加される。
【0139】
変数NodeX[depthX][nodeIdx]、NodeY[depthY][nodeIdx]及びNodeZ[depthZ][nodeIdx]は、所与の深度における復号順序で第nodeIdxのノードのx、y及びz座標を表す。変数NumNodesAtDepth[depth]は、所与の深度で復号されるノードの数を表す。変数dephX、dephY及びdepthZは、それぞれx、y及びz次元の深度を指定する。
【0140】
変数partitionSkipは、以下の表(表10)によって分割タイプ及び方向を指定する。
【表11】
【0141】
変数partitionSkipは、それぞれx、y及びz次元に沿った分割をスキップするか否かを指定する3ビットb
xb
yb
zのバイナリ形式で表される。例えば、b
x=1はx次元に沿った分割がないことを示す(分割がスキップされる)。分割タイプ及び方向は、特定の条件によって決定されてもよい。
【表12】
【0142】
表11のジオメトリノードのシンタックスは、行0、4、8、11-12及び24-33を追加又は変更することによって修正される。行0において、QT分割及びBT分割を実現するために、新たな入力変数depthX、depthY、depthZ、partitionSkipが導入される。行12において、QT分割及びBT分割が適用される場合に異なる次元のノードサイズが異なる可能性があるので、最小ノードサイズに達したか否かを検証する条件は、3つの次元の評価に基づいて修正される。
【0143】
行24-33のシンタックス構造は、DMで処理される子ノード内の3Dポイント座標のシンタックスエレメントを記述する。変数ChildNodeSizeLog2X、ChildNodeSizeLog2Y及びChildNodeSizeLog2Zは、各次元の子ノードサイズを指定し、以下のように暗示的なQT分割及びBT分割によって決定されてもよい。
NodeSizeLog2X=MaxNodeSizeXLog2-depthX;
NodeSizeLog2Y=MaxNodeSizeYLog2-depthY;
NodeSizeLog2Z=MaxNodeSizeZLog2-depthZ;
if(partitionSkip==b001||partitionSkip==b010||partitionSkip==b011||partitionSkip==b000)
ChildNodeSizeLog2X=NodeSizeLog2X-;
else
ChildNodeSizeLog2X=NodeSizeLog2X;
if(partitionSkip==b100||partitionSkip==b001||partitionSkip==b101||partitionSkip==b000)
ChildNodeSizeLog2Y=NodeSizeLog2Y-1;
else
ChildNodeSizeLog2Y=NodeSizeLog2Y;
if(partitionSkip==b010||partitionSkip==b100||partitionSkip==b110||partitionSkip==b000)
ChildNodeSizeLog2Z=NodeSizeLog2Z-1;
else
ChildNodeSizeLog2Z=NodeSizeLog2Z
【0144】
上記の処理において、或る次元で分割が行われる場合、その次元における子ノードのlog2サイズは、その次元におけるノードのlog2サイズから1を減算した値になる。
【0145】
行4において、シンタックスエレメントoccupancy_idxは、ジオメトリ八分木の子ノードトラバース順序で、カレントノードの単一の占有子ノードのインデックスを識別する。存在する場合、変数OccupancyMapは以下のように導出されてもよい。
OccupancyMap=1<<occupancy_idx
【0146】
occupancy_idxの対応する解析処理は、以下のように記述されてもよい。
この処理への入力は、カレントノードの変数partitionSkipである。
この処理からの出力は、occupancy_idxのシンタックスエレメントの値であり、以下のように構成される。
occupancy_idx=0;
if(!(partitionSkip&1))
occupancy_idx=readBinEq();
if(!(partitionSkip&2))
occupancy_idx|=readBinEq()<<1;
if(!(partitionSkip&4))
occupancy_idx|=readBinEq()<<2;
【0147】
上記の処理において、QT分割又はBT分割について、分割が行われた次元に関連するビットのみが伝達される。したがって、占有コードにおいて単一の子ノード位置を示すために、OT分割よりも少ないビットが伝達される。複合ビット単位のOR演算子|=は変数occupancy_idx内の特定のビットを「設定」する(1に設定する)。
【0148】
行8において、シンタックスエレメントoccupancy_mapは、カレントノードの占有子ノードを識別するビットマップである。存在する場合には変数OccupancyMapは、入力として変数NeighbourPattern及びoccupancy_mapで呼び出されたときにジオメトリ占有マップ順列処理(geometry occupancy map permutation process)の出力と等しく設定される。NeighbourPattern(隣接パターン)は、コンテキストモデリングのための隣接占有パターンである。
図8~9を参照して説明した通り、占有コード内のビンは、QT分割又はBT分割の伝達についてスキップされてもよい。QT分割では4つのビンがスキップされてもよく、BT分割では6つのビンがスキップされてもよい。したがって、占有コード内のこれらのスキップされたビット位置におけるビットは、デコーダにおいて0であると推定されてもよい。
【0149】
対応するジオメトリ八分木占有解析処理について以下の通り説明する。いくつかのビットが、変数binIsSkipped[binIdx]を使用して、分割タイプ及び分割方向を示す変数partitionSkipに基づいてゼロであると推定される。
この処理は、シンタックスエレメントoccupancy_mapを復元する。
この処理への入力は、カレントノードのNeighbourPattern、binIsSkiped及びbinIsInferredである。
この処理からの出力は、以下のように構成されるシンタックスエレメント値である。
value=0;
for (binIdx=0;binIdx<8;binIdx++){
if(binIsSkiped[binIdx])
bin=0;
else if(binIsInferred)
bin=1;
else
bin=readBin(binIdx)
value=value|(bin<<bitCodingOrder[binIdx]);
}
ここで、変数binIsSkiped[binIdx]は以下に従って設定される。
if((partitionSkip&1)&&
(inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]==1
||inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]==3
||inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]==5
||inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]==7)
binIsSkiped[binIdx]=1;
else if((partitionSkip&2)&&
(inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]==2
||inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]==3
||inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]==6
||inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]==7)
binIsSkiped[binIdx]=1;
else if((partitionSkip&4)&&
(inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]==4
||inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]==5
||inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]==6
||inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]==7)
binIsSkiped[binIdx]=1;
else
binIsSkiped[binIdx]=0
bitCodingOrder[i]は以下の表によって定義される。
【表13】
inverseMap[i][j]は以下の表(表13~14)によって定義される。
【表14】
【表15】
【0150】
[実施形態B]
【0151】
他の実施形態では、3つのうち1つの次元のみが異なるサイズを有することを許容する。この場合、この次元が他の2つの次元よりも大きいサイズを有する場合、この次元に沿った暗示的なBT分割のみが実行される。この次元が他の2つの次元よりも小さい場合、他の2つの次元に沿った暗示的なQT分割のみが実行される。この実施形態における暗示的なBT又は暗示的なQTの伝達は、前の実施形態に記載のものと同様である。
【0152】
[実施形態C]
【0153】
暗示的なQT分割及びBT分割の特定の条件を指定するために、パラメータが定義されてもよい。これらのパラメータは、エンコーダ及びデコーダに対して固定されるか(デフォルト値のようなローカルで予め構成された値をとる)、或いは、シーケンスレベル又はスライスレベルの最適化を可能にするようにビットストリームのヘッダで伝達されてもよい。暗示的なQT分割及びBT分割の条件を定義するために有用なパラメータがどのように伝達又は構成されるかを示すために、実施形態C~Gについて以下に説明する。
【0154】
実施形態Cでは、以下のように、パラメータは、シーケンスヘッダ又はスライスヘッダのいずれかで伝達されてもよい。
【表16】
【0155】
表15のジオメトリパラメータセットのシンタックスは、行13-15においてQT分割及びBT分割を制御するためのパラメータを伝達するシンタックスエレメントを追加することによって修正される。
【0156】
gps_max_num_implicit_qtbt_before_otはOT分割の前の暗示的なQT分割及びBT分割の最大数を指定し、これはKで示される。
【0157】
gps_min_size_implicit_qtbtは暗示的なQT分割及びBT分割の最小サイズを指定し、これはMで示される。このパラメータは、カレントノードの全ての寸法がM以下である場合に、暗示的なQT分割及びBT分割を防止する。
【0158】
gps_implicit_bt_before_implicit_qt_flagは暗示的なQT分割及びBT分割の優先度を指定し、これはBTFirstで示される。BTFirst=1である場合、暗示的なQT分割の前に暗示的なBT分割が実行される。BTFirst=0である場合、暗示的なBT分割の前に暗示的なQT分割が実行される。
【0159】
[実施形態D]
【0160】
他の実施形態では、部分的なパラメータが、シーケンスヘッダ又はスライスヘッダのいずれかで伝達されるが、残りは固定される。以下の例は、M及びBTFirstを固定し、gps_max_num_implicit_qtbt_before_otによってKを伝達する。
【表17】
【0161】
表16のジオメトリパラメータセットのシンタックスは、行13においてQT分割及びBT分割を制御するためのパラメータを伝達するシンタックスエレメントを追加することによって修正される。
【0162】
gps_max_num_implicit_qtbt_before_otはOT分割の前の暗示的なQT分割及びBT分割の最大数を指定する。この場合、他のパラメータは固定されているので、ビットストリームで伝達されず、例えば、Mは常に0であり、BTFirstは常に1である。
【0163】
[実施形態E]
【0164】
他の実施形態では、K及びBTFirstは固定され、Mは、以下のようにgps_min_size_implicit_qtbtによって伝達される。
【表18】
【0165】
表17のジオメトリパラメータセットのシンタックスは、行13においてQT分割及びBT分割を制御するためのパラメータを伝達するシンタックスエレメントを追加することによって修正される。
【0166】
gps_min_size_implicit_qtbtは暗示的なQT分割及びBT分割の最小サイズを指定し、これはMである。このパラメータは、全ての寸法がM以下である場合、暗示的なQT分割及びBT分割を防止する。この場合、他のパラメータは固定されているので、ビットストリームで伝達されず、例えば、Kは常に0であり、BTFirstは常に1である。
【0167】
[実施形態F]
【0168】
他の実施形態では、暗示的な分割についてのパラメータの伝達は、他のシンタックスに依存する。以下の例では、暗示的な分割についてのパラメータの伝達は、以下のようにlog2_trisoup_node_sizeに依存する。
【表19】
【0169】
表18のジオメトリパラメータセットのシンタックスは、行13-15においてQT分割及びBT分割を制御するためのパラメータを伝達するシンタックス構造を追加することによって修正される。
【0170】
gps_max_num_implicit_qtbt_before_otはOT分割の前の暗示的なQT分割及びBT分割の最大数を指定し、これはKである。この場合、gps_max_num_implicit_qtbt_before_otは、log2_trisoup_node_sizeがゼロの場合にのみ伝達される。log2_trisoup_node_sizeがゼロでない場合、Kはデフォルトでその最大値に設定される。他のパラメータは固定されているので、ビットストリームで伝達されず、例えば、Mは常に0であり、BTFirstは常に1である。
【0171】
[実施形態G]
【0172】
他の実施形態では、暗示的な分割についてのこれらのパラメータのいずれも伝達されず、パラメータは全て固定されてもよい。例えば、これらはK=3、M=0及びBTFirst=1に固定される。
【0173】
[5.暗示的なQT分割及びBT分割についての条件]
【0174】
暗示的なQT及びBT分割についての異なる条件の実施形態について、以下のサブセクションで説明する。異なる制御パラメータを使用し、異なる条件を設定することによって、異なるジオメトリ分割処理又は方式が実行されてもよい。
【0175】
[5.1 OTの後の暗示的なQT分割及びBT分割の実行]
【0176】
第1の方式では、OT分割は、いくつかの次元が更に分割できなくなるまで実行される。したがって、この方式で暗示的なQT分割及びBT分割を実行する条件は、1つ又は2つの次元が最小の分割ユニット(すなわち、1ボクセル)に達したときである。
【0177】
具体的には、分割タイプ及び方向は、表19又は表20に従って決定されてもよい。優先度パラメータBTFirstは固定されるか、或いは、gps_implicit_bt_before_implicit_qt_flagで指定される。BTFirst=1である場合、暗示的なBT分割がより高い優先度を有し、暗示的なQT分割の前に実行され、この場合には表19が適用される。BTFirst=0である場合、暗示的なQT分割がより高い優先度を有し、暗示的なBT分割の前に実行され、この場合には表20が適用される。表に記載された条件のいずれも満たされない場合、OT分割が実行される。
【表20】
【表21】
【0178】
バウンディングボックスBが
【数3】
のサイズを有するとする。一般性を失うことなく、0≦d
x≦d
y≦d
zであると仮定できる。以下に2つの実施形態について説明する。
【0179】
一実施形態では、BTFirst=1は固定されるか、或いは、gps_implicit_bt_before_implicit_qt_flagで指定され、暗示的なBT分割がより高い優先度を有し、暗示的なQT分割の前に実行されることを示し、表19が適用される。この実施形態では、OT分割は、第1のd
xの分割深度で実行されてもよい。OTの後に、サブノードは、
【数4】
の形状を有する。次いで、暗示的なBT分割は、次のd
z-d
yの深度でz軸に沿って実行される。暗示的なBT分割の後に、サブノードの形状は
【数5】
があり、次いで、暗示的なQT分割は、リーフノードに達するまで、最後のd
y-d
zの深度でy-z軸に沿って実行される。
【0180】
他の実施形態では、BTFirst=0は固定されるか、或いは、gps_implicit_bt_before_implicit_qt_flagで指定され、暗示的なQT分割がより高い優先度を有し、暗示的なBT分割の前に実行されることを示し、表20が適用される。この実施形態では、OT分割は、第1のd
xの分割深度で実行される。OTの後に、サブノードは、
【数6】
の形状を有する。次いで、暗示的なBT分割は、次のd
y-d
xの深度でy-z軸に沿って実行されてもよい。暗示的なQT分割の後に、サブノードの形状は
【数7】
があり、次いで、暗示的なBT分割は、リーフノードに達するまで、最後のd
z-d
yの深度でz軸に沿って実行される。
【0181】
[5.2 OTの前の暗示的なQT分割及びBT分割の実行]
【0182】
第2の方式は、立方体形状を有するサブノードを作るために、いずれかのOT分割の前に暗示的なQT分割及びBT分割を実行することである。したがって、この場合の条件は、1つ又は2つの次元が最大の次元よりも小さいサイズを有することである。
【0183】
具体的には、分割タイプ及び方向は、表21又は表22に従って決定されてもよい。優先度パラメータBTFirstは固定されるか、或いは、gps_implicit_bt_before_implicit_qt_flagで指定される。BTFirst=1である場合、暗示的なBT分割がより高い優先度を有し、暗示的なQT分割の前に実行され、表21が適用される。BTFirst=0である場合、暗示的なQT分割がより高い優先度を有し、暗示的なBT分割の前に実行され、表22が適用される。表に記載された条件のいずれも満たされない場合、OT分割が実行される。
【表22】
【表23】
【0184】
バウンディングボックスBが
【数8】
のサイズを有するとする。一般性を失うことなく、0≦d
x≦d
y≦d
zであると仮定できる。以下に2つの実施形態について説明する。
【0185】
一実施形態では、BTFirst=1は固定されるか、或いは、gps_implicit_bt_before_implicit_qt_flagで指定され、暗示的なBT分割がより高い優先度を有し、暗示的なQT分割の前に実行されることを示し、表21が適用される。この実施形態では、暗示的なBT分割は、第1のd
z-d
yの深度でz軸に沿って実行され、次いで、暗示的なQT分割は、次のd
y-d
xの深度でy-z軸に沿って実行される。暗示的なQT分割及びBT分割の後に、全てのサブノードのサイズは
【数9】
になり、OT分割は、リーフノードに達するまでd
x回実行される。
【0186】
他の実施形態では、BTFirst=0は固定されるか、或いは、gps_implicit_bt_before_implicit_qt_flagで指定され、暗示的なQT分割がより高い優先度を有し、暗示的なBT分割の前に実行されることを示し、表22が適用される。この実施形態では、暗示的なQT分割は、第1のd
y-d
xの深度でy-z軸に沿って実行され、次いで、暗示的なBT分割は、次のd
z-d
yの深度でz軸に沿って実行される。暗示的なQT分割及びBT分割の後に、全てのサブノードのサイズは
【数10】
になり、OT分割は、リーフノードに達するまでd
x回実行される。
【0187】
[5.3 暗示的QT分割及びBT分割のハイブリッド方式]
【0188】
第3の方式は、セクションIII.5.1及びIII.5.3の方式の組み合わせである。この場合、閾値K(0≦K≦max(dx,dy,dz)-min(dx,dy,dz))は、OT分割の前に実行できる暗示的なQT分割及びBT分割の最大回数を定義する。この方式は、最初の2つの方式の一般化であり、K=0である場合にはセクションIII.5.1の方式に帰着し、K=max(dx,dy,dz)-min(dx,dy,dz)である場合にはセクションIII.5.2の方式に帰着する。
【0189】
具体的には、第1のKの分割の深度で、分割タイプ及び方向の判定は、表21又は表22に定義された条件に従い、その後、表19又は表20に従う。Kは固定されるか、或いは、gps_max_num_implicit_qtbt_before_otで指定される。優先度パラメータBTFirstは固定されるか、或いは、gps_implicit_bt_before_implicit_qt_flagで指定される。BTFirst=1である場合、暗示的なBT分割がより高い優先度を有し、暗示的なQT分割の前に実行され、表19及び表21が適用される。BTFirst=0である場合、暗示的なQT分割がより高い優先度を有し、暗示的なBT分割の前に実行され、表20及び表22が適用される。表に記載された条件のいずれも満たされない場合、OT分割が実行される。
【0190】
バウンディングボックスBが
【数11】
のサイズを有するとする。一般性を失うことなく、0≦d
x≦d
y≦d
zであると仮定できる。以下に2つの実施形態について説明する。
【0191】
一実施形態では、Kは固定されるか、或いは、gps_max_num_implicit_qtbt_before_otで指定され、K回の暗示的なBT分割及びQT分割が最初に実行されることを示す。BTFirst=1は固定されるか、或いは、gps_implicit_bt_before_implicit_qt_flagで指定され、暗示的なBT分割がより高い優先度を有し、暗示的なQT分割の前に実行されることを示し、表19及び表21が適用される。この実施形態では、第1のK(K≦d
z-d
x)の深度において、表21に従って暗示的なBT分割がz軸に沿って実行され、次いで、暗示的なQT分割がy-z軸に沿って実行される。その後、サブノードのサイズは
【数12】
になり、δ
y及びδ
z(δ
z≧δ
y≧0)の値はKの値に依存する。次いで、OT分割がd
x回実行され、残りのサブノードのサイズが
【数13】
を有するようにする。最後に、表19に従って、暗示的なBT分割がz軸に沿ってδ
z-δ
y回実行され、次いで、暗示的なQT分割がy-z軸に沿ってδ
y回実行される。
【0192】
他の実施形態では、Kは固定されるか、或いは、gps_max_num_implicit_qtbt_before_otで指定され、K回の暗示的なBT分割及びQT分割が最初に実行されることを示す。BTFirst=0は固定されるか、或いは、gps_implicit_bt_before_implicit_qt_flagで指定され、暗示的なQT分割がより高い優先度を有し、暗示的なBT分割の前に実行されることを示し、表20及び表22が適用される。この実施形態では、第1のK(K≦d
z-d
x)の深度において、表22に従って暗示的なQT分割がy-z軸に沿って実行され、次いで、暗示的なBT分割がz軸に沿って実行される。その後、サブノードのサイズは
【数14】
になり、δ
y及びδ
z(δ
z≧δ
y≧0)の値はKの値に依存する。次いで、OT分割がd
x回実行され、残りのサブノードのサイズが
【数15】
を有するようにする。最後に、表20に従って、暗示的なQT分割がy-z軸に沿ってδ
y回実行され、次いで、暗示的なBT分割がz軸に沿ってδ
z-δ
y回実行される。
【0193】
[5.4 暗示的QT分割及びBT分割の最小サイズを有するハイブリッド方式]
【0194】
第4の方式は、以前の方式に対する更なる制約を課す。この場合、閾値K(0≦K≦max(dx,dy,dz)-min(dx,dy,dz))は、OT分割の前に実行できる暗示的なQT分割及びBT分割の最大回数を定義する。他のパラメータM(0≦M≦min(dx,dy,dz))は、暗示的なQT分割及びBT分割の最小サイズを定義し、全ての寸法がM以下である場合に暗示的なQT分割及びBT分割を防止する。第4の方式は、最初の3つの方式の一般化である。第4の方式は、K=M=0である場合にはセクションIII.5.1の方式に帰着し、K=max(dx,dy,dz)-min(dx,dy,dz)、M=0である場合にはセクションIII.5.2の方式に帰着し、0<K<max(dx,dy,dz)-min(dx,dy,dz)、M=0である場合にはセクションIII.5.3の方式に帰着する。
【0195】
具体的には、第1のKの分割レベルで、分割タイプ及び方向の判定は、表21又は表22に定義された条件に従い、その後、表23又は表24に従う。表23及び24は、0をMで置き換えることで表19及び20と同様のものになる。Kは固定されるか、或いは、gps_max_num_implicit_qtbt_before_otで指定される。Mは固定されるか、或いは、gps_min_size_implicit_qtbtで指定される。優先度パラメータBTFirstは固定されるか、或いは、gps_implicit_bt_before_implicit_qt_flagで指定される。BTFirst=1である場合、暗示的なBT分割がより高い優先度を有し、暗示的なQT分割の前に実行され、表21及び表23が適用される。BTFirst=0である場合、暗示的なQT分割がより高い優先度を有し、暗示的なBT分割の前に実行され、表22及び表24が適用される。表に記載された条件のいずれも満たされない場合、OT分割が実行される。
【表24】
【表25】
【0196】
バウンディングボックスBが
【数16】
のサイズを有するとする。一般性を失うことなく、0≦d
x≦d
y≦d
zであると仮定できる。以下に2つの実施形態について説明する。
【0197】
一実施形態では、Kは固定されるか、或いは、gps_max_num_implicit_qtbt_before_otで指定され、K回の暗示的なBT分割及びQT分割が最初に実行されることを示す。Mは固定されるか、或いは、gps_min_size_implicit_qtbtで指定され、暗示的なQT分割及びBT分割の最小サイズを示す。BTFirst=1は固定されるか、或いは、gps_implicit_bt_before_implicit_qt_flagで指定され、暗示的なBT分割がより高い優先度を有し、暗示的なQT分割の前に実行されることを示し、表21及び表22が適用される。この実施形態では、第1のK(K≦d
z-d
x)の深度において、表21に従って暗示的なBT分割がz軸に沿って実行され、次いで、暗示的なQT分割がy-z軸に沿って実行される。その後、サブノードのサイズは
【数17】
になり、δ
y及びδ
z(δ
z≧δ
y≧0)の値はKの値に依存する。次いで、OT分割がd
x-M回実行され、残りのサブノードのサイズが
【数18】
を有するようにする。次に、表23に従って、暗示的なBT分割がz軸に沿ってδ
z-δ
y回実行され、次いで、暗示的なQT分割がy-z軸に沿ってδ
y回実行される。残りのノードは2
(M,M,M)のサイズを有し、したがって、OT分割が最小単位に達するまでM回実行される。
【0198】
他の実施形態では、Kは固定されるか、或いは、gps_max_num_implicit_qtbt_before_otで指定され、K回の暗示的なBT分割及びQT分割が最初に実行されることを示す。Mは固定されるか、或いは、gps_min_size_implicit_qtbtで指定され、暗示的なQT分割及びBT分割の最小サイズを示す。BTFirst=0は固定されるか、或いは、gps_implicit_bt_before_implicit_qt_flagで指定され、暗示的なQT分割がより高い優先度を有し、暗示的なBT分割の前に実行されることを示し、表22及び表24が適用される。この実施形態では、第1のK(K≦d
z-d
x)の深度において、表22に基づいて暗示的なBT分割がz軸に沿って実行され、次いで、暗示的なQT分割がy-z軸に沿って実行される。その後、サブノードのサイズは
【数19】
になり、δ
y及びδ
z(δ
z≧δ
y≧0)の値はKの値に依存する。次いで、OT分割がd
x回実行され、残りのサブノードのサイズが
【数20】
を有するようにする。次に、表24に従って、暗示的なQT分割がy-z軸に沿ってδ
y回実行され、次いで、暗示的なBT分割がz軸に沿ってδ
z-δ
y回実行される。残りのノードは2
(M,M,M)のサイズを有し、したがって、OT分割が最小単位に達するまでM回実行される。
【0199】
[5.5 QT分割及びBT分割の異なる分割方式についての2Dブロックの説明]
【0200】
上記の4つの分割方式は、それぞれ
図10~13に示すように、2Dブロックで説明できる。ここで、16×4の矩形バウンディングボックスBは、4レベルの繰り返し分割によって最小単位に分割される。さらに、OT分割が拡張立方体バウンディングボックスから実行されるTMC13方式が、2Dの場合について
図10に示されている。2Dの例では、BTは3DにおけるBT又はQTに類似しており、QTは3DにおけるOTに類似している。
【0201】
[セクションIII.5.1の方式の例]
【0202】
図10において、BTはQTの後に実行され、これは、3DにおいてOTの後にQT及びBTを実行することと等価である。図示のように、Bはまず2レベルのQT分割によって4×1のサブブロックに分割され、次いで、残りのサブブロックがx軸に沿って2レベルのBT分割によって分割される。分割順序は暗示的にQT、QT、BT、BTである。
【0203】
[セクションIII.5.2の方式の例]
【0204】
図11において、BTはQTの前に実行され、これは、3DにおいてOTの前にQT及びBTを実行することと等価である。図示のように、Bはまずx軸に沿って2レベルのBT分割によって分割され、4つの4×4のサブブロックを形成し、次いで、各サブブロックがQT分割によって分割される。分割順序は暗示的にBT、BT、QT、QTである。
【0205】
[セクションIII.5.3の方式の例]
【0206】
図12において、分割は、BT、QT、BTの順序で行われ、これは、3Dにおけるハイブリッド方式と等価である。K=1でのハイブリッド方式が
図12に示されており、Bは、BT分割によって一回分割され、2つの8×4のサブブロックを取得し、次いで、各サブブロックは、2レベルのQT分割によって分割され、複数の2×1の小さいサブブロックを取得し、これらは、最後に、x軸に沿った他のBT分割によって最小単位に分割される。分割順序は暗示的にBT、QT、QT、BTである。
【0207】
[セクションIII.5.4の方式の例]
【0208】
図13において、分割は、BT、QT、BT、QTの順序で行われ、これは、3Dにおける最小サイズの制約を有するハイブリッド方式と等価である。最小BTサイズの制約を有するハイブリッド方式が
図13に示されており、K=M=1である。まず、K=1であるので、BT分割がQT分割の前に実行され、次いで、QT分割が、より短い次元が2^M=2、すなわち、4×2のサブブロックに達するまで実行される。次に、最小BTサイズの制約のため、BT分割が必要となり、その結果、残りのサブブロックは2×2のサイズを有し、最後にQT分割が実行される。分割順序は暗示的にBT、QT、BT、QTである。
【0209】
[TMC13設計の例]
【0210】
図14は、2Dにおける拡張バウンディングボックスからのQT方式を示しており、これは3DにおけるTMC13設計のOT分割方式と等価である。図示のように、再帰的QT分割は拡張の16×16の矩形バウンディングボックスから始まり、これは図面において破線で示されている。
【0211】
ポイントが
図10~14において×でマークされた位置にあると仮定すると、各方式によって必要とされるビットを計算できる。表25の第1列に要約されているように、4つの方式はTMC13方式よりも少ないビットを必要とすることが分かる。セクションIII.5.3及びIII.5.4の方式が最良である。表25の第2列は、全ての位置が占有されている最悪の場合で必要なビットを計算する。このシミュレーションから、セクションIII.5.2の方式のから最小のビットとなることが分かり、セクションIII.5.2及びIII.5.4の方式は、TMC13方式よりも良好に動作する。したがって、制御パラメータ(K及びM)及び条件を適切に選択することによって、好ましいジオメトリ符号化結果が達成できる。
【表26】
【0212】
[IV.プラナーモードでの繰り返し]
【0213】
[1.プラナーモード]
【0214】
いくつかの実施態様では、ポイントクラウドジオメトリ符号化について、3つの方向x、y及びzにおけるプラナーモードが導入される。プラナーモードは、ビットストリームに符号化されたプラナーモード活性化フラグを通じて適切なノードレベルで活性化されてもよい。また、活性化されたプラナーモードに関連する平面の位置を示すために、追加のシンタックスがビットストリームに追加される。
【0215】
フラグ及び平面位置の双方の予測もまた、新たなシンタックスエレメントの良好な圧縮を確保するために導入される。最後に、ポイントクラウドの不利な領域でプラナーモードを使用することを回避するために、ローカル適格基準が使用されてもよく、したがって、特に高密度ポイントクラウドにおけるより悪い圧縮性能を回避する。
【0216】
[2.課題]
【0217】
暗示的なQT/BT分割及びプラナーモードは、異なる観測に基づいており、疎のポイントクラウドにおいて同様の符号化利得を有する。一般的に、暗示的なジオメトリ分割は複雑性が低く、プラナーモードはより複雑であるが、より適応的である。性能的には、2つの符号化技術は、疎のデータに対して同様の性能を達成し、プラナーモードは、多くの平面パターンを有するポイントクラウドをより良好に処理できる。
【0218】
まず、2つの符号化技術は占有符号化においていくつかの同様の概念及び符号化方式を共有する。2つの符号化技術は、占有符号化方式を変更しており、特定の条件で占有コードの一部のみが符号化され、占有コードの残りの部分はスキップされ、デコーダ側で推測される。暗示的なジオメトリ分割では、条件はいくつかの所定のパラメータによって暗示的に決定される。プラナーモードの場合、条件はエンコーダによって決定され、占有コードのどの部分がスキップされるかを示すために、フラグ及びインデックスが明示的に伝達される。
【0219】
さらに、暗示的なジオメトリ分割は、非立方体バウンディングボックスから八分木分割を開始してもよく、八分木ノードの形状も同様に非対称であるが、プラナーモードは、常に八分木ノードの対称的な形状を仮定する。
【0220】
これらの2つの技術は、概念的に直接対立するものではない。これらは類似性/重複点と、相違点とを同様に有する。様々な実施形態では、2つの技術は、一緒に併合されてもよい。
【0221】
以下のセクションでは、暗示的なジオメトリ分割とプラナーモードとを組み合わせる実施形態について説明する。以下の説明では、Geometry-based Point Cloud Compression, ISO/IEC 23090-9:2019(E), CD stage, ISO/IEC JTC 1/SC 29/WG 11 W18478, June 2019についてのドラフトの標準仕様への変更に対するいくつかの実施形態が示される。
【0222】
[3.暗示的なジオメトリ分割のみ又はプラナーモードのみ]
【0223】
いくつかの実施形態では、ポイントクラウドのジオメトリを符号化する場合、2つの技術のうち一方が有効になり、すなわち、暗示的なジオメトリ分割を有効にするか(プラナーモードを無効にする)、或いは、プラナーモードを有効にする(暗示的なジオメトリ分割を無効にする)。
【0224】
[3.1 暗示的なジオメトリ分割についてのハイレベルのシンタックスにおける制御フラグの伝達]
【0225】
暗示的なジオメトリ分割を有効又は無効にするために、1つのフラグがハイレベルのシンタックスで伝達されてもよい。フラグは、ビットストリームのシーケンスパラメータセット又はスライスヘッダ又はジオメトリパラメータセットで指定されてもよい。
【0226】
[実施形態A]
【0227】
一実施形態では、暗示的なジオメトリ分割のフラグは、以下のようにジオメトリパラメータセットで指定される。
【表27】
【0228】
表26のジオメトリパラメータセットのシンタックスは、行17においてシンタックスエレメントを追加することによって修正される。
【0229】
1に等しいgps_implicit_geom_partition_flagは、暗示的なジオメトリ分割がシーケンス又はスライスについて有効であることを指定する。0に等しいgps_implicit_geom_partition_flagは、暗示的なジオメトリ分割がシーケンス又はスライスについて無効であることを指定する。
【0230】
[実施形態B]
【0231】
他の実施形態では、フラグは、Trisoup方式が無効である場合に指定され、この場合、ジオメトリパラメータセットへの変更は、表27の行6~8に示されている。
【表28】
【0232】
log2_trisoup_node_sizeが0よりも大きい場合、gps_implicit_geom_partition_flagは明示的な信号伝達なしに0として推定されてもよい。
【0233】
[実施形態C]
【0234】
他の実施形態では、フラグに加えて、フラグgps_implicit_geom_partition_flagが1に等しい場合、暗示的なジオメトリ分割に関連する他のパラメータがハイレベルのシンタックスで指定されてもよい。表28のジオメトリパラメータセットのシンタックスは、行6-10において修正される。
【表29】
【0235】
gps_max_num_implicit_qtbt_before_otは、OT分割の前の暗示的なQT分割及びBT分割の最大数を指定する。gps_min_size_implicit_qtbtは、暗示的なQT分割及びBT分割の最小サイズを指定する。
【0236】
[実施形態D]
【0237】
他の実施形態では、ジオメトリのバウンディングボックスの伝達は、以下のように、gps_implicit_geom_partition_flagの値に依存してもよい。表29のジオメトリスライスヘッダのシンタックスは、行10-16においてシンタックス構造を追加することによって変更される。
【表30】
【0238】
gsh_log2_max_nodesize_x、gsh_log2_max_nodesize_y及びgsh_log2_max_nodesize_zは、それぞれlog2スケールでのx、y、z次元のバウンディングボックスのサイズを指定する。これらは、gps_implicit_geom_partition_flagが1である場合のみ指定される。gps_implicit_geom_partition_flagが0に等しい場合、1つのサイズのみがgsh_log2_max_nodesizeで指定され、この場合、3つの次元は同じサイズを有すると仮定する。
【0239】
[実施形態E]
【0240】
他の実施形態では、バウンディングボックスサイズは、これらの差によって指定される。表30のジオメトリスライスヘッダのシンタックスは、行10-16において修正される。
【表31】
【0241】
[3.2 組合せ方式を考慮したハイレベルのシンタックスにおける制御フラグの伝達]
【0242】
このサブセクションでは、暗示的なジオメトリ分割とプラナーモードとの組み合わせを考慮したときに、ハイレベルのシンタックスで制御フラグをどのように伝達するかを示す例として、いくつかの実施形態について説明する。
【0243】
[実施形態A]
【0244】
一実施形態では、2つの制御フラグは、以下のようにジオメトリパラメータセットにおいて独立して指定される。表31のジオメトリパラメータセットのシンタックスは、行6-7において修正される。
【表32】
【0245】
1に等しいgps_planar_mode_flagは、プラナーモードがシーケンス又はスライスについて有効であることを指定する。0に等しいgps_planar_mode_flagは、プラナーモードがシーケンス又はスライスについて無効であることを指定する。
【0246】
しかし、この組み合わせ方式では、これらの2つの方法のうち1つのみが有効であると仮定する。例えば、gps_implicit_geom_partition_flag及びgps_planar_mode_flagは共に1に等しくなることはできない。
【0247】
[実施形態B]
【0248】
他の実施形態では、制御フラグgps_planar_mode_flagは、以下のようにジオメトリパラメータセットにおけるgps_implicit_geom_partition_flagの値に依存して指定される。表32のジオメトリパラメータセットのシンタックスは、行6-8において修正される。
【表33】
【0249】
この場合、gps_planar_mode_flagは、gps_implicit_geom_partition_flagが0である場合にのみ指定される。gps_implicit_geom_partition_flagが1に等しい場合、gps_planar_mode_flagは0として推定されてもよい。
【0250】
[実施形態C]
【0251】
他の実施形態では、制御フラグgps_implicit_geom_partition_flagは、以下のようにジオメトリパラメータセットにおけるgps_planar_mode_flagの値に依存して指定される。表33のジオメトリパラメータセットのシンタックスは、行6-8において修正される。
【表34】
【0252】
この場合、gps_implicit_geom_partition_flagは、gps_planar_mode_flagが0に等しい場合にのみ指定される。gps_planar_mode_flagが1に等しい場合、gps_implicit_geom_partition_flagは0として推定されてもよい。
【0253】
[実施形態D]
【0254】
他の実施形態では、制御フラグgps_implicit_geom_partition_flagは、以下のようにジオメトリパラメータセットにおけるgps_planar_mode_flagの値及びlog2_trisoup_node_sizeの値に依存して指定される。表34のジオメトリパラメータセットのシンタックスは、行6-8において修正される。
【表35】
【0255】
この場合、gps_implicit_geom_partition_flagは、gps_planar_mode_flag及びlog2_trisoup_node_sizeが0に等しい場合にのみ指定される。そうでない場合、gps_implicit_geom_partition_flagは0として推定されてもよい。言い換えると、暗示的なジオメトリ分割は、Trisoupモード及びプラナーモードの両方が無効である場合にのみ有効にされてもよい。
【0256】
[4.プラナーモードはカレント八分木ノードが立方体であるの場合にのみ適切になる]
【0257】
第2の組み合わせ方式は、暗示的なジオメトリ分割及びプラナーモードを同時に有効にしてもよい。しかし、プラナーモードについていくつかの制約が含まれる。暗示的なジオメトリ分割が有効である場合、バウンディングボックス及び八分木ノードは立方体ではない可能性がある。この方式では、プラナーモードを適用するための制約は、カレント八分木ノードが立方体であり、dx=dy=dzを示す場合にのみプラナーモードが適切であることである。
【0258】
一実施形態では、ジオメトリ符号化のシンタックスが表35に示されており、表35は表9のシンタックスと同様のものとすることができる。
【表36】
【0259】
変数ChildNodeSizeXLog2、ChildNodeSizeYLog2及びChildNodeSizeZLog2は、各次元についての子ノードサイズを指定し、以下のように暗示的なQT分割及びBT分割によって決定されてもよい。
NodeSizeXLog2=MaxNodeSizeXLog2-depthX;
NodeSizeYLog2=MaxNodeSizeYLog2-depthY;
NodeSizeZLog2=MaxNodeSizeZLog2-depthZ;
if(!(partitionSkip&4))
ChildNodeSizeXLog2=NodeSizeXLog2-1;
else
ChildNodeSizeXLog2=NodeSizeXLog2;
if(!(partitionSkip&2)
ChildNodeSizeYLog2=NodeSizeYLog2-1;
else
ChildNodeSizeYLog2=NodeSizeYLog2;
if(!(partitionSkip&1)
ChildNodeSizeZLog2=NodeSizeZLog2-1;
else
ChildNodeSizeZLog2=NodeSizeZLog2
【0260】
この実施形態では、以下のようにNodeSizeLog2X、NodeSizeLog2Y及びNodeSizeLog2Zが等しくない場合、プラナーモードは不適切である。
if((NodeSizeXLog2!=NodeSizeYLog2)||(NodeSizeXLog2!=NodeSizeZLog2)||(NodeSizeYLog2!=NodeSizeZLog2)){
planarModeEligibilityX=0;
planarModeEligibilityY=0;
planarModeEligibilityZ=0;
}
ここで、planarModeEligibilityX、planarModeEligibilityY及びplanarModeEligibilityZは、それぞれX、Y、Z次元についてプラナーモードがカレント符号化ノードにおいて適切であるか否かを指定する。
【0261】
[5.プラナーモードは分割されていない特定の次元では不適切である]
【0262】
第3の組み合わせ方式は、プラナーモードの制約を更に緩和し、プラナーモードは、カレント八分木ノードが立方体でない場合であっても適切になる。1つ又は2つの寸法が1つの深度で分割されない場合、プラナーモードはこれらの次元では不適切であり、残りの次元では適切になる。例えば、暗示的なジオメトリ分割が、特定の分割深度においてzではなくx及びy次元に沿った分割を実行すると判断した場合、プラナーモードは、x及びy次元についてのみ適切になる。
【0263】
この実施形態では、プラナーモードは、以下のように暗示的なジオメトリ分割方法によって分割がスキップされる特定の次元において不適切になる。
if(partitionSkip&4)
planarModeEligibilityX=0;
if(partitionSkip&2)
planarModeEligibilityY=0;
if(partitionSkip&1)
planarModeEligibilityZ=0
【0264】
他の例では、プラナーモードは、他の態様において、八分木ノードが長方体である可能性があるという事実に整合するためにより複雑な方法で変更されてもよい点に留意すべきである。
【0265】
[V.暗示的なジオメトリ分割の更なる実施形態]
【0266】
[実施形態A]
【0267】
実施形態Aは、暗示的なジオメトリ分割の改良を提供し、暗示的なジオメトリ分割で占有コードを符号化する場合により多くのビットを節約する。具体的には、セクションIIIに記載のジオメトリ八分木占有解析処理は、ジオメトリ八分木占有解析処理の最後に変数binIsInferredを決定する処理を導入することによって修正されてもよい。
この処理は、シンタックスエレメントoccupancy_mapを復元する。
この処理への入力は、カレントノードのNeighbourPattern、binIsSkiped及びbinIsInferredである。
この処理からの出力は、以下のように構築されるシンタックスエレメント値である。
value=0;
for (binIdx=0;binIdx<8;binIdx++){
if(binIsSkiped[binIdx])
bin=0;
else if(binIsInferred)
bin=1;
else
bin=readBin(binIdx)
value=value|(bin<<bitCodingOrder[binIdx]);
}
ここで、変数binIsSkiped[binIdx]は以下に従って設定される。
if((partitionSkip&1)&&(inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]&1))
binIsSkiped[binIdx]=1;
else if((partitionSkip&2)&&(inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]&2))
binIsSkiped[binIdx]=1;
else if((partitionSkip&4)&&(inverseMap[NeighbourPattern][bitCodingOrder[binIdx]]&4))
binIsSkiped[binIdx]=1;
else
binIsSkiped[binIdx]=0;
ここで、各ビンについて、変数binIsInferredは以下のように設定される。
-以下の条件のいずれかが真である場合、binIsInferredが1に設定される。
【0268】
NeighbourPatternは0に等しく、前に復号された1値のビンの数は(binIdx+minOccupied-maxOccupied)以下である。
NeighbourPatternは0に等しくなく、binIdxはmaxOccupied-1に等しく、全ての前の復号されたビンの値はゼロである。
ここで、minOccupied=2であり、maxOccupied=8(OTが適用される場合)、maxOccupied=4(QTが適用される場合)、maxOccupied=2(BTが適用される場合)である。
-そうでなく、上記の条件のいずれも真でない場合、binIsInferredは0に等しく設定される。
【0269】
[実施形態B]
【0270】
一実施形態では、制御フラグgps_implicit_geom_partition_flag及び2つのパラメータK及びMは、以下のようにジオメトリパラメータセットにおいて指定される。
【表37】
【0271】
1に等しいgps_implicit_geom_partition_flagは、暗示的なジオメトリ分割がシーケンス又はスライスについて有効であることを指定する。0に等しいgps_implicit_geom_partition_flagは、暗示的なジオメトリ分割がシーケンス又はスライスについて無効であることを指定する。gps_implicit_geom_partition_flagが1に等しい場合、以下の2つのパラメータが伝達される。
【0272】
(1)gps_max_num_implicit_qtbt_before_otは、OT分割の前の暗示的なQT分割及びBT分割の最大数を指定し、すなわち、K=gps_max_num_implicit_qtbt_before_otである。
【0273】
(2)gps_min_size_implicit_qtbtは、暗示的なQT分割及びBT分割の最小サイズを指定し、すなわち、M=gps_min_size_implicit_qtbtである。このパラメータMは、全ての寸法がM以下である場合に暗示的なQT分割及びBT分割を防止する。
【0274】
[実施形態C]
【0275】
一実施形態では、暗示的なQTBTが有効である場合、バウンディングボックスのサイズは、以下のようにジオメトリスライスヘッダ内の3つの値によって指定される。
【表38】
【0276】
gsh_log2_max_nodesize_xはx次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeXを指定する。
MaxNodeSizeXLog2=gsh_log2_max_nodesize_x
MaxNodeSizeX=1<<MaxNodeSizeXLog2
【0277】
gsh_log2_max_nodesize_y_minus_xはy次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeYを指定する。
MaxNodeSizeYLog2=gsh_log2_max_nodesize_y_minus_x+MaxNodeSizeXLog2
MaxNodeSizeY=1<<MaxNodeSizeYLog2
【0278】
gsh_log2_max_nodesize_z_minus_yはz次元のバウンディングボックスサイズを指定し、すなわち、以下のように復号処理で使用されるMaxNodesizeZを指定する。
MaxNodeSizeZLog2=gsh_log2_max_nodesize_z_minus_y+MaxNodeSizeYLog2
MaxNodeSizeZ=1<<MaxNodeSizeZLog2
【0279】
次いで、パラメータK及びMは以下のように更新される。
gsh_log2_max_nodesize=max{MaxNodeSizeXLog2,MaxNodeSizeYLog2,MaxNodeSizeZLog2}
gsh_log2_min_nodesize=min{MaxNodeSizeXLog2,MaxNodeSizeYLog2,MaxNodeSizeZLog2}
if(K>(gsh_log2_max_nodesize-gsh_log2_min_nodesize))
K=gsh_log2_max_nodesize-gsh_log2_min_nodesize;
if(M>gsh_log2_min_nodesize)
M=gsh_log2_min_nodesize;
if(gsh_log2_max_nodesize==gsh_log2_min_nodesize)
M=0;
if(log2_trisoup_node_size!=0){
K=gsh_log2_max_nodesize-gsh_log2_min_nodesize;
M=0;
}
一実施形態では、Trisoupモードが有効である場合(log2_trisoup_node_size!=0が真である場合)、Mは、スライスの最小ルートノードlog2寸法に変更される。Trisoupノードlog2寸法は、スライスの最小ルートノードlog2寸法以下である必要がある点に留意すべきである。
【0280】
[実施形態D]
【0281】
一実施形態では、表37のジオメトリスライスデータのシンタックスが、表35又は表9のシンタックス構造の代わりに使用される。暗示的なQT/BT判定関数が、表37の行3において新たに導入される。暗示的なQT/BT判定関数のシンタックスは表38に示されており、変数partitionSkipは行9-16において決定され、x、y及びz方向の深度は行17-23において更新される。
【表39】
【表40】
【0282】
[VI.ジオメトリ復号処理の例]
【0283】
図15は、本開示の一実施形態による処理(1500)の概要を示すフローチャートを示す。例えば、処理(1500)は、ポイントクラウド復号に使用されてもよい。処理(1500)は、ポイントクラウドデコーダにおいてスライスのバウンディングボックス内のポイントのジオメトリを表すための八分木構造を生成するために使用されてもよい。様々な実施形態では、処理(1500)は、デコーダ(400)における算術復号モジュール(410)及び八分木復号モジュール(430)の機能を実行する処理回路のような処理回路によって実行されてもよい。いくつかの実施形態では、処理(1500)は、ソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路は、処理(1500)を実行する。処理は(S1501)で始まり、(S1510)に進む。
【0284】
(S1510)において、符号化ポイントクラウドフレームのスライスを含むビットストリームが受信されてもよい。例えば、スライスは、符号化ポイントクラウドフレームの一部又は全体を表す一連のシンタックスエレメント及びビンを含んでもよい。
【0285】
(S1520)において、スライスのバウンディングボックス内のポイントのジオメトリを表す八分木が復元されてもよい。八分木構築処理の間に、八分木のカレントノードは、四分木(QT)分割又は二分木(BT)分割で分割されてもよい。例えば、QT分割、BT分割又は八分木(OT)分割のうち1つを使用して八分木のカレントノードをどのように分割するかは、所定の条件に基づいて決定されてもよい。また、QT分割、BT分割又はOT分割のうち1つを使用して八分木のカレントノードをどのように分割するかは、それぞれビットストリームで伝達されてもよく或いはローカルに予め構成された値を使用してもよい1つ以上のパラメータに基づいて決定されてもよい。
【0286】
八分木の構築の間に、八分木のカレントノードの分割タイプ及び分割方向を指定する、partitionSkipで示される変数の値が決定されてもよい。例えば、変数partitionSkipは、それぞれx、y及びz方向に対応する3ビットのバイナリ形式で表されてもよく、各ビットは、それぞれのx、y又はz方向に沿って分割が実行されるか否かを示す。変数partitionSkipに基づいて、八分木のカレントノードの子ノードのx、y又はz次元の深度が更新されてもよい。
【0287】
八分木の構築の間に、八分木のカレントノードの8ビン占有コードに属する占有ビットがビットストリームから受信(又は解析)される。各占有ビットは、八分木のカレントノードの占有子ノードに対応する。8ビン占有コードに属する4つのビンは、八分木のカレントノードがQT分割で分割される場合、ビットストリームで伝達されず、8ビン占有コードに属する6つのビンは、八分木のカレントノードがBT分割で分割される場合、ビットストリームで伝達されない。
【0288】
さらに、符号化ポイントクラウドフレームのスライスのバウンディングボックスの三次元(3D)サイズを示す1つ以上のシンタックスエレメントがビットストリームから受信されてもよい。例えば、スライスのバウンディングボックスは、直方体の形状を有してもよい。
【0289】
八分木の構築の間に、八分木のカレントノードが単一の占有子ノードを有することを示すシンタックスエレメントを受信した後に、変数partitionSkipがBT分割を示す場合には1つのビンが受信されてもよく、或いは、変数partitionSkipがQT分割を示す場合には2つのビンが受信されてもよい。八分木のカレントノードの占有子ノードを識別する占有マップは、受信した1つのビン又は2つのビンに基づいて決定されてもよい。
【0290】
八分木の構築の間に、八分木のカレントノードの占有子ノードを識別する占有マップのシンタックスエレメントを決定するために、ビットストリームで解析処理が実行されてもよい。解析処理の間に、占有マップのシンタックスエレメントのビンは、変数partitionSkipに基づいてスキップされると決定されてもよい。
【0291】
八分木の構築の間に、直接モードで符号化された八分木のカレントノードの子ノードについて、当該子ノードについてそれぞれdx、dy及びdzで示されるx、y及びz方向のそれぞれのlog2サイズは、変数partitionSkipに基づいて決定されてもよい。子ノード内のポイントの決定された位置は、それぞれ(dx,dy,dz)ビットの固定長符号化によって符号化される。したがって、子ノード内のポイントの座標に対応するビンは、既知の符号長に基づいて受信されてもよい。
【0292】
一例では、OT分割の前に実行される暗示的なQT分割及びBT分割の最大数、ノードの全ての寸法が最小サイズ以下である場合にノードの暗示的なQT分割及びBT分割を防止する暗示的なQT分割及びBT分割の最小サイズ、又はQT分割及びBT分割の双方が許容されている場合に暗示的なQT分割又はBT分割のどちらが最初に実行されるかを示す優先度のパラメータのうち1つを示すシンタックスエレメントは、八分木を復元するためにビットストリームから受信される。
【0293】
一例では、八分木の構築の間に、カレントノードの八分木の深度がパラメータKよりも小さい場合、又はカレントノードのx、y及びz方向のlog2サイズのうち最小のlog2サイズがパラメータMに等しい場合、カレントノードを分割する分割タイプ及び分割方向は、以下の表の条件に従って決定されてもよい。
【表41】
【0294】
パラメータKは0≦K≦max(dx,dy,dz)-min(dx,dy,dz)の範囲の整数でもよく、OT分割の前に許容される暗示的なQT分割及びBT分割の最大回数を定義する。パラメータMは0≦M≦min(dx,dy,dz)の範囲の整数でもよく、暗示的なQT分割及びBT分割の最小サイズを定義し、ノードの全ての寸法がM以下である場合、ノードの暗示的なQT分割及びBT分割を防止する。サイズdx、dy及びdzは、それぞれx、y及びz方向のカレントノードのlog2サイズでもよい。一例では、カレントノードを分割するための上記の分割タイプ及び分割方向は、変数partitionSkipによって表されてもよい。
【0295】
一例では、パラメータK及びMはそれぞれ、デコーダに伝達されてもよく、或いは、予め構成された値を取り、後に、例えば、スライスのルートノードの3Dサイズに基づいて、或いは、Trisoupモードが有効であるか否かに基づいて更新されてもよい。
【0296】
パラメータK若しくはM、又は暗示的なQT/BT分割を制御又は実装するために使用される他のパラメータは、単に本開示のいくつかの実施形態を説明するための例として記載されている点に留意すべきである。ビットストリームで伝達され、デコーダでQT/BT分割を実行するために使用される様々な形式のパラメータが存在してもよい。これらのパラメータは、K又はMと同様のものでもよく或いは同様のものでなくてもよいが、良好なポイントクラウド性能が達成できるように、どのようにQT/BT分割が実行されるかを制御するために同様に使用されてもよい。
【0297】
(S1520)の後に、処理(1500)が(S1599)において終了してもよい。
【0298】
[VII.コンピュータシステム]
【0299】
上記の技術は、コンピュータ読み取り可能命令を使用してコンピュータソフトウェアとして実装され、1つ以上のコンピュータ読み取り可能媒体に物理的に記憶されてもよい。例えば、
図16は、開示の対象物の特定の実施形態を実装するのに適したコンピュータシステム(1600)を示す。
【0300】
コンピュータソフトウェアは、いずれかの適切な機械コード又はコンピュータ言語を使用して符号化されてもよく、当該機械コード又はコンピュータ言語は、命令を含むコードを生成するために、アセンブリ、コンパイル、リンク又は類似のメカニズムを受けてもよく、当該命令は、1つ以上のコンピュータ中央処理装置(CPU, central processing unit)、グラフィックス処理ユニット(GPU, Graphics Processing Unit)等によって、直接的に或いはインタープリタ、マイクロコード実行等を通じて実行されてもよい。
【0301】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットのデバイス等を含む様々なタイプのコンピュータ又はその構成要素上で実行されてもよい。
【0302】
コンピュータシステム(1600)について
図16に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能に関する如何なる限定も示唆することを意図するものではない。また、構成要素の構成も、コンピュータシステム(1600)の例示的な実施形態に示される構成要素のいずれか1つ又は組み合わせに関する如何なる依存性又は要件も有するものとして解釈されるべきではない。
【0303】
コンピュータシステム(1600)は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き等)、オーディオ入力(音声、拍手等)、視覚入力(ジェスチャ等)、嗅覚入力(図示せず)を通じて、1人以上の人間のユーザによる入力に応答してもよい。また、ヒューマンインタフェースデバイスは、オーディオ(例えば、会話、音楽、周辺音)、画像(スキャンされた画像、静止画カメラから取得された写真画像等)、ビデオ(2次元ビデオ、立体ピクチャを含む3次元ビデオ等)のような、人間による意識的入力に必ずしも直接関連しない特定のメディアをキャプチャするために使用されてもよい。
【0304】
入力ヒューマンインタフェースデバイスは、キーボード(1601)、マウス(1602)、トラックパッド(1603)、タッチ画面(1610)、データグローブ(図示せず)、ジョイスティック(1605)、マイクロフォン(1606)、スキャナ(1607)、カメラ(1608)のうち1つ以上を含んでもよい。
【0305】
また、コンピュータシステム(1600)は、特定のヒューマンインタフェース出力デバイスを含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光及び嗅覚/味覚を通じて、1人以上の人間のユーザの感覚を刺激してもよい。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチ画面(1610)、データグローブ(図示せず)又はジョイスティック(1605)による触覚フィードバック、ただし、入力デバイスとして機能しない触覚フィードバックデバイスが存在してもよい)と、オーディオ出力デバイス(スピーカ(1609)、ヘッドフォン(図示せず)等)と、視覚出力デバイス(それぞれがタッチ画面入力機能を有しても有さなくてもよく、それぞれが触覚フィードバック機能を有しても有さなくてもよく、いくつかが2次元視覚出力又は立体出力のような手段を通じた3次元以上の出力を出力可能でもよいCRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1610)、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず))と、プリンタ(図示せず)とを含んでもよい。
【0306】
また、コンピュータシステム(1600)は、CD/DVD又は同様の媒体(1621)を有するCD/DVD ROM/RW(1620)を含む光媒体のような人間がアクセス可能な記憶デバイス及び関連する媒体、サムドライブ(1622)、取り外し可能ハードドライブ又はソリッドステートドライブ(1623)、テープ及びフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特殊なROM/ASIC/PLDに基づくデバイス等を含んでもよい。
【0307】
また、当業者は、ここに開示の対象物に関連して使用される用語「コンピュータ読み取り可能媒体」が伝送媒体、搬送波又は他の非一時的な信号を含まないことを理解すべきである。
【0308】
また、コンピュータシステム(1600)は、1つ以上の通信ネットワーク(1655)へのインタフェース(1654)を含んでもよい。ネットワークは、例えば、無線、有線、光でもよい。ネットワークは、ローカル、広域、メトロポリタン、車両及び産業、リアルタイム、遅延耐性等でもよい。ネットワークの例は、イーサネット、無線LAN、セルラネットワーク(GSM、3G、4G、5G、LTE等を含む)、TV有線又は無線広域デジタルネットワーク(ケーブルTV、衛星TV、及び地上放送TVを含む)、車両及び産業(CANBusを含む)等を含む。特定のネットワークは、一般的に、特定の汎用データポート又は周辺バス(1649)に取り付けられる外部ネットワークインタフェースアダプタ(例えば、コンピュータシステム(1600)のUSBポート等)を必要とし、他のネットワークインタフェースアダプタは、一般的に、以下に説明するシステムバス(例えば、PCコンピュータシステムへのイーサネットインタフェース又はスマートフォンコンピュータシステムへのセルラネットワーク)に取り付けられることによって、コンピュータシステム(1600)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(1600)は、他のエンティティと通信することができる。このような通信は、一方向の受信のみ(例えば、放送TV)、一方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)でもよく、或いは、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向でもよい。特定のプロトコル及びプロトコルスタックは、上記のようなネットワーク及びネットワークインタフェースのそれぞれにおいて使用されてもよい。
【0309】
上記のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス及びネットワークインタフェースは、コンピュータシステム(1600)のコア(1640)に取り付けられてもよい。
【0310】
コア(1640)は、1つ以上の中央処理装置(CPU)(1641)、グラフィックス処理ユニット(GPU)(1642)、フィールドプログラマブルゲートアレイ(FPGA, Field Programmable Gate Area)(1643)の形式の特殊なプログラム可能処理ユニット、特定のタスク用のハードウェアアクセラレータ(1644)、グラフィックスアダプタ(1650)等を含んでもよい。これらのデバイスは、読み取り専用メモリ(ROM)(1645)、ランダムアクセスメモリ(1646)、内部大容量記憶装置(内部のユーザアクセス不可能なハードドライブ、SSD等)(1647)と共に、システムバス(1648)を通じて接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1648)は、更なるCPU、GPU等による拡張を可能にするために、1つ以上の物理プラグの形式でアクセス可能でもよい。周辺デバイスは、コアのシステムバス(1648)に直接取り付けられてもよく、或いは、周辺バス(1649)を通じて取り付けられてもよい。一例では、画面(1610)はグラフィックスアダプタ(1650)に接続されてもよい。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0311】
CPU(1641)、GPU(1642)、FPGA(1643)及びアクセラレータ(1644)は特定の命令を実行してもよく、当該特定の命令は、組み合わせによって上記のコンピュータコードを構成してもよい。当該コンピュータコードは、ROM(1645)又はRAM(1646)に記憶されてもよい。また、一時的なデータは、RAM(1646)に記憶されてもよいが、永続的なデータは、例えば、内部大容量記憶装置(1647)に記憶されてもよい。1つ以上のCPU(1641)、GPU(1642)、大容量記憶装置(1647)、ROM(1645)、RAM(1646)等と密接に関連してもよいキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索が可能になってもよい。
【0312】
コンピュータ読み取り可能媒体は、様々なコンピュータに実装された動作を実行するためのコンピュータコードを有してもよい。媒体及びコンピュータコードは、本開示の目的のために特に設計及び構築されたものでよく、或いは、コンピュータソフトウェア分野における当業者に周知で入手可能なようなものでもよい。
【0313】
限定ではなく一例として、アーキテクチャ(1600)、具体的には、コア(1640)を有するコンピュータシステムは、1つ以上の有形のコンピュータ読み取り可能媒体に具現されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能を提供できる。このようなコンピュータ読み取り可能媒体は、コア内部の大容量記憶装置(1647)又はROM(1645)のような非一時的な性質のコア(1640)の特定の記憶装置と同様に、上記のようなユーザがアクセス可能な大容量記憶装置に関連する媒体でもよい。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶されてコア(1640)によって実行されてもよい。コンピュータ読み取り可能媒体は、特定のニーズに従って、1つ以上のメモリデバイス又はチップを含んでもよい。ソフトウェアは、コア(1640)、具体的には、その中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(1646)に記憶されたデータ構造を定義し、ソフトウェアによって定義された処理に従ってこのようなデータ構造を修正することを含む、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行させてもよい。さらに或いは代替として、コンピュータシステムは、回路(例えば、アクセラレータ(1644))内に配線されたロジック又は他の方法で具現されたロジックの結果として、機能を提供してもよく、当該回路は、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行するために、ソフトウェアの代わりに或いはソフトウェアと共に動作してもよい。ソフトウェアへの言及は、ロジックを含み、必要に応じて、その逆も可能である。コンピュータ読み取り可能媒体への言及は、必要に応じて、実行するためのソフトウェアを記憶する回路(集積回路(IC)等)、実行するためのロジックを具現する回路又はこれらの双方を含んでもよい。本開示は、ハードウェア及びソフトウェアのいずれかの適切な組み合わせを含む。
【0314】
本開示の態様は、例として提案される特定の実施形態と関連して記載されているが、これらの例に対して代替、変更及び変形が行われてもよい。したがって、本明細書に記載の実施形態は、例示的なものであり、限定的なものではないことを意図する。以下に記載する特許請求の範囲から逸脱することなく行われ得る変更が存在する。