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

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

▶ グァンドン オッポ モバイル テレコミュニケーションズ コーポレーション リミテッドの特許一覧

特許7520223点群階層化方法、デコーダ、エンコーダ及び記憶媒体
<>
  • 特許-点群階層化方法、デコーダ、エンコーダ及び記憶媒体 図1A
  • 特許-点群階層化方法、デコーダ、エンコーダ及び記憶媒体 図1B
  • 特許-点群階層化方法、デコーダ、エンコーダ及び記憶媒体 図2A
  • 特許-点群階層化方法、デコーダ、エンコーダ及び記憶媒体 図2B
  • 特許-点群階層化方法、デコーダ、エンコーダ及び記憶媒体 図3
  • 特許-点群階層化方法、デコーダ、エンコーダ及び記憶媒体 図4
  • 特許-点群階層化方法、デコーダ、エンコーダ及び記憶媒体 図5
  • 特許-点群階層化方法、デコーダ、エンコーダ及び記憶媒体 図6
  • 特許-点群階層化方法、デコーダ、エンコーダ及び記憶媒体 図7A
  • 特許-点群階層化方法、デコーダ、エンコーダ及び記憶媒体 図7B
  • 特許-点群階層化方法、デコーダ、エンコーダ及び記憶媒体 図8A
  • 特許-点群階層化方法、デコーダ、エンコーダ及び記憶媒体 図8B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-11
(45)【発行日】2024-07-22
(54)【発明の名称】点群階層化方法、デコーダ、エンコーダ及び記憶媒体
(51)【国際特許分類】
   G06T 9/00 20060101AFI20240712BHJP
【FI】
G06T9/00
【請求項の数】 15
(21)【出願番号】P 2023519889
(86)(22)【出願日】2020-09-30
(65)【公表番号】
(43)【公表日】2023-11-27
(86)【国際出願番号】 CN2020119707
(87)【国際公開番号】W WO2022067790
(87)【国際公開日】2022-04-07
【審査請求日】2023-09-01
(73)【特許権者】
【識別番号】516227559
【氏名又は名称】オッポ広東移動通信有限公司
【氏名又は名称原語表記】GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD.
【住所又は居所原語表記】No. 18 Haibin Road,Wusha, Chang’an,Dongguan, Guangdong 523860 China
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100152205
【弁理士】
【氏名又は名称】吉田 昌司
(74)【代理人】
【識別番号】100137523
【弁理士】
【氏名又は名称】出口 智也
(74)【代理人】
【識別番号】100220630
【弁理士】
【氏名又は名称】河崎 亮
(72)【発明者】
【氏名】ワン、シューアイ
(72)【発明者】
【氏名】ウェイ、レイ
(72)【発明者】
【氏名】ヤン、フーチョン
(72)【発明者】
【氏名】ティン、シャオビン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2021/002604(WO,A1)
【文献】国際公開第2019/235587(WO,A1)
【文献】米国特許出願公開第2019/0081638(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 9/00 - 9/40
(57)【特許請求の範囲】
【請求項1】
デコーダに適用される点群階層化方法であって、
点群ビットストリームを受信することであって、前記点群ビットストリームは点群の幾何情報と属性情報を含む、ことと、
前記点群ビットストリームに含まれる第1構文要素の最大許容値を決定することと、
前記点群ビットストリームを解析し、前記最大許容値に基づいて、前記第1構文要素の値を決定することと、
前記第1構文要素の値に基づいて、前記属性情報を復号するプロセスにおける詳細レベルの数を決定することと、
前記詳細レベルの数及び前記幾何情報に基づいて、前記属性情報を復号し、前記点群の再構成された点群を決定することと、を含む、点群階層化方法。
【請求項2】
前記点群ビットストリームに含まれる第1構文要素の最大許容値を決定することは、
前記点群ビットストリームを解析し、適合性パラメータを決定することであって、前記適合性パラメータは、少なくともプロファイル、階層、及びレベルのうちの1つを含む、ことと、前記適合性パラメータと前記最大許容値との間の予め設定された対応関係に基づいて、前記最大許容値を決定することと、を含
又は、
前記最大許容値を予め設定された定数値に設定することであって、前記定数値は0より大きい整数であることを含む、
請求項1に記載の点群階層化方法。
【請求項3】
前記点群ビットストリームに含まれる第1構文要素の最大許容値を決定することは、
前記点群ビットストリームを解析し、ルートノードの長さ、幅及び高さの値を決定することと、
前記点群ビットストリームを解析し、右シフトの第1パラメータの値を決定することと、
前記右シフトの第1パラメータの値と前記ルートノードの長さ、幅及び高さの値に基づいて、前記最大許容値を決定することと、を含む、
請求項1に記載の点群階層化方法。
【請求項4】
前記点群ビットストリームを解析し、右シフトの第1パラメータの値を決定することは、
前記点群ビットストリームを解析し、前記点群ビットストリームを表すための初期サンプリング距離を決定することと、
前記初期サンプリング距離を前記右シフトの第1パラメータの値として決定することと、を含む、
請求項に記載の点群階層化方法。
【請求項5】
前記右シフトの第1パラメータの値と前記ルートノードの長さ、幅及び高さの値に基づいて、前記最大許容値を決定することは、
前記ルートノードの次元の最大値を前記ルートノードの長さ、幅及び高さの3つの値のうちの最大値に設定することと、
前記点群ビットストリームを解析し、右シフトの第2パラメータの値を決定することと、
前記ルートノードの次元の最大値と前記右シフトの第1パラメータ及び前記右シフトの第2パラメータの和の値との差を、前記最大許容値として設定することと、を含む、
請求項に記載の点群階層化方法。
【請求項6】
前記右シフトの第1パラメータの値と前記ルートノードの長さ、幅及び高さの値に基づいて、前記最大許容値を決定することは、
前記ルートノードの長さ、幅及び高さの値に基づいて、前記ルートノードの対角線距離の値を決定することと、
前記ルートノードの対角線距離の値及び前記右シフトの第1パラメータの値に基づいて、前記最大許容値を決定することと、を含む、
請求項に記載の点群階層化方法。
【請求項7】
前記点群ビットストリームを解析し、前記最大許容値に基づいて、前記第1構文要素の値を決定することは、
前記最大許容値に基づいて、前記第1構文要素のビットストリームにおける対応するビット数Nを決定することと、
前記点群ビットストリームからN個のビットを解析し、前記N個のビットを前記第1構文要素の値に変換することと、を含む、
請求項1に記載の点群階層化方法。
【請求項8】
前記点群ビットストリームを解析し、前記最大許容値に基づいて、前記第1構文要素の値を決定することは、
前記第1構文要素の値と前記最大許容値との間の大小を比較することと、
前記第1構文要素の値が前記最大許容値より大きい場合、異常エラー報告情報を生成することと、含む、
請求項1に記載の点群階層化方法。
【請求項9】
前記詳細レベルの数及び前記幾何情報に基づいて、前記属性情報を復号し、前記点群の再構成された点群を決定することは、
前記詳細レベルの数及び前記幾何情報に基づいて、前記点群ビットストリームにおける1つ又は複数の詳細レベルの再構成値を決定することと、
前記1つ又は複数の詳細レベルの再構成値に基づいて、前記点群の再構成された点群を決定することと、を含む、
請求項1に記載の点群階層化方法。
【請求項10】
エンコーダに適用される点群階層化方法であって、
点群の幾何情報と属性情報を決定することと、
第1構文要素の最大許容値を決定することであって、前記第1構文要素は前記点群の属性情報を符号化するプロセスにおける詳細レベルの数を表す、ことと、
前記最大許容値及び前記点群の幾何情報に基づいて、前記点群に対して詳細レベルの区分を行い、前記第1構文要素の値を決定することと、
前記点群に対する詳細レベルの区分に基づいて、前記点群を符号化し、ビットストリームを生成することと、
前記第1構文要素の値を符号化し、符号化ビットをビットストリームに信号伝送(signaling)することと、を含む、点群階層化方法。
【請求項11】
前記第1構文要素の最大許容値を決定することは、
前記点群の適合性パラメータを決定することであって、前記適合性パラメータは少なくともプロファイル、階層、及びレベルのうちの1つを含む、ことと、前記適合性パラメータと前記最大許容値との間の予め設定された対応関係に基づいて、前記最大許容値を決定することと、前記適合性パラメータを符号化し、符号化ビットを前記ビットストリームに信号伝送することと、を含
又は
前記最大許容値を予め設定された定数値に設定することであって、前記定数値は0より大きい整数であることを含む、
請求項10に記載の点群階層化方法。
【請求項12】
前記第1構文要素の最大許容値を決定することは、
ルートノードの長さ、幅及び高さの値を決定することと、
前記点群の幾何情報に基づいて、右シフトの第1パラメータの値を決定することと、
前記右シフトの第1パラメータの値と前記ルートノードの長さ、幅及び高さの値に基づいて、前記最大許容値を決定することと、を含む、
請求項10に記載の点群階層化方法。
【請求項13】
前記右シフトの第1パラメータの値と前記ルートノードの長さ、幅及び高さの値に基づいて、前記最大許容値を決定することは、
前記ルートノードの長さ、幅及び高さの3つの値のうちの最大値を、前記ルートノードの次元の最大値に設定することと、
前記点群の幾何情報に基づいて、右シフトの第2パラメータの値を決定することと、
前記ルートノードの次元の最大値と、前記右シフトの第1パラメータ及び前記右シフトの第2パラメータの和の値との差を前記最大許容値として設定することと、を含
又は、
前記右シフトの第1パラメータの値と前記ルートノードの長さ、幅及び高さの値に基づいて、前記最大許容値を決定することは、
前記ルートノードの長さ、幅及び高さの値に基づいて、前記ルートノードの対角線距離の値を決定することと、
前記ルートノードの対角線距離の値及び前記右シフトの第1パラメータの値に基づいて、前記最大許容値を決定することと、を含む、
請求項12に記載の点群階層化方法。
【請求項14】
前記第1構文要素の値を符号化し、符号化ビットをビットストリームに信号伝送することは、
前記最大許容値に基づいて、前記第1構文要素がビットストリームにおいて占有するビット数Nを決定することと、
前記第1構文要素の値をN個のビットに変換し、前記N個のビットを前記ビットストリームに信号伝送することと、を含む、
請求項10に記載の点群階層化方法。
【請求項15】
デコーダであって、
点群ビットストリームを受信するように構成される第1受信モジュールであって、前記点群ビットストリームは点群の幾何情報と属性情報を含む、第1受信モジュールと、
前記点群ビットストリームに含まれる第1構文要素の最大許容値を決定するように構成される第1決定モジュールと、
前記点群ビットストリームを解析し、前記最大許容値に基づいて、前記第1構文要素の値を決定するように構成される第1解析モジュールと、
前記第1構文要素の値に基づいて、前記属性情報を復号するプロセスにおける詳細レベルの数を決定するように構成される第2決定モジュールと、
前記詳細レベルの数及び前記幾何情報に基づいて、前記属性情報を復号し、前記点群の再構成された点群を決定するように構成される第1復号モジュールと、を含む、デコーダ。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、ビデオ符号化分野に関し、点群階層化方法、デコーダ、エンコーダ及び記憶媒体に関するが、これらに限定されない。
【背景技術】
【0002】
関連技術では、点群属性の詳細レベル(LOD:Level of Detail)の区分プロセスにおいて、ユーザはLODに対する区分層数を手動で設定する。幾何学に基づく点群圧縮符号化(G-PCC:Geometry-based Point Cloud Compression)フレームワークの点群の汎用テスト条件では、通常、LODの区分層数を1つの比較的大きい数に設定し、このようにして、設定値が実際の区分層数と符合しないことをもたらす。
【発明の概要】
【課題を解決するための手段】
【0003】
これに鑑みて、本願の例示的な実施例は、関連技術に存在する少なくとも1つの問題を解決するために、点群階層化方法、デコーダ、エンコーダ及び記憶媒体を提供する。
【0004】
本願の例示的な実施例の技術案は、以下のように実現される。
【0005】
第1態様では、本願の例示的な実施例は、デコーダに適用される点群階層化方法を提供し、該点群階層化方法は、
点群ビットストリームを受信することであって、前記点群ビットストリームは前記点群ビットストリームの幾何情報と属性情報を含む、ことと、
前記点群ビットストリームに含まれる第1構文要素の最大許容値を決定することと、
前記点群ビットストリームを解析し、前記最大許容値に基づいて、前記第1構文要素の値を決定することと、
前記第1構文要素の値に基づいて、前記属性情報を復号するプロセスにおける詳細レベルの数を決定することと、
前記詳細レベルの数及び前記幾何情報に基づいて、前記属性情報を復号し、前記点群ビットストリームの再構成された点群を取得することと、を含む。
【0006】
第2態様では、本願の例示的な実施例は、エンコーダに適用される点群階層化方法を提供し、該点群階層化方法は、
点群の幾何情報と属性情報を取得することと、
第1構文要素の最大許容値を決定することであって、前記第1構文要素は前記点群の属性情報を符号化するプロセスにおける詳細レベルの数を表す、ことと、
前記最大許容値及び前記点群の幾何情報に基づいて、前記点群に対して詳細レベルの区分を行い、前記第1構文要素の値を決定することと、
前記点群に対する詳細レベルの区分に基づいて、前記点群を符号化し、ビットストリームを生成することと、
前記第1構文要素の値を符号化し、符号化ビットをビットストリームに書き込むことと、を含む。
【0007】
第3態様では、本願の実施例は、デコーダを提供し、該デコーダは、
点群ビットストリームを受信するように構成される第1受信モジュールであって、前記点群ビットストリームは前記点群ビットストリームの幾何情報と属性情報を含む、第1受信モジュールと、
前記点群ビットストリームに含まれる第1構文要素の最大許容値を決定するように構成される第1決定モジュールと、
前記点群ビットストリームを解析し、前記最大許容値に基づいて、前記第1構文要素の値を決定するように構成される第1解析モジュールと、
前記第1構文要素の値に基づいて、前記属性情報を復号するプロセスにおける詳細レベルの数を決定するように構成される第2決定モジュールと、
前記詳細レベルの数及び前記幾何情報に基づいて、前記属性情報を復号し、前記点群ビットストリームの再構成された点群を取得するように構成される第1復号モジュールと、を含む。
【0008】
第4態様では、本願の実施例は、エンコーダを提供し、該エンコーダは、
点群の幾何情報と属性情報を取得するように構成される第1取得モジュールと、
第1構文要素の最大許容値を決定するように構成される第1決定モジュールであって、前記第1構文要素は前記点群の属性情報を符号化するプロセスにおける詳細レベルの数を表す、第1決定モジュールと、
前記最大許容値及び前記点群の幾何情報に基づいて、前記点群に対して詳細レベルの区分を行い、前記第1構文要素の値を決定するように構成される第1区分モジュールと、
前記点群に対する詳細レベルの区分に基づいて、前記点群を符号化し、ビットストリームを生成するように構成される第1符号化モジュールと、
前記第1構文要素の値を符号化し、符号化ビットをビットストリームに書き込むように構成される第2符号化モジュールと、を含む。
【0009】
第5態様では、本願の実施例は、デコーダを提供し、該デコーダは、
第2メモリ及び第2プロセッサを含み、
前記第2メモリは、第2プロセッサで実行可能なコンピュータープログラムが記憶され、前記第2プロセッサは、前記プログラムを実行するとき、第1態様に記載の点群階層化方法を実現する。
【0010】
第6態様では、本願の実施例は、エンコーダを提供し、該エンコーダは、
第1メモリ及び第1プロセッサを含み、
前記第1メモリは、第1プロセッサで実行可能なコンピュータープログラムが記憶され、前記第1プロセッサは、前記プログラムを実行するとき、第2態様に記載の点群階層化方法を実現する。
【0011】
本願の例示的な実施例は、コンピュータープログラムが記憶されるコンピューター可読記憶媒体を提供し、該コンピュータープログラムがプロセッサによって実行されるとき、上記の点群階層化方法におけるステップを実現する。
【図面の簡単な説明】
【0012】
図1A】本願の例示的実施例による点群階層化方法の実現プロセスの概略図である。
図1B】本願の例示的実施例による点群階層化方法の別の実現プロセスの概略図である。
図2A】本願の実施例による点群階層化方法のプロセスの概略図である。
図2B】本願の例示的実施例による点群階層化方法の別の実現プロセスの概略図である。
図3】本願の実施例による点群圧縮符号化プロセスの概略図である。
図4】本願の例示的実施例によるLOD区分を行う実現プロセスの概略図である。
図5】本願の例示的実施例によるモートンコードに基づいてLOD区分を行う構造的概略図である。
図6】本願の例示的実施例による距離に基づいてLOD区分を行う構造的概略図である。
図7A】本願の実施例によるデコーダのハードウェア構造の概略図である。
図7B】本願の実施例による別のデコーダのハードウェア構造の概略図である。
図8A】本願の実施例によるエンコーダのハードウェア構造の概略図である。
図8B】本願の実施例による別のエンコーダのハードウェア構造の概略図である。
【発明を実施するための形態】
【0013】
以下、本願の例示的な実施例における図面を参照して、本願の例示的な実施例における技術案を明確かつ完全に説明する。
【0014】
本願の例示的な実施例は、点群階層化方法を提供し、該方法はフロントカメラ又はリアカメラ機能を有するモバイル機器に適用され、前記モバイル機器は、様々な形態で実施することができる。例えば、本願の例示的な実施例で説明されるモバイル機器は、携帯電話、タブレットコンピューター、パームトップコンピューター、パーソナルデジタルアシスタント(PDA:Personal Digital Assistant)などを含むことができる。また、該方法によって実現される機能は、モバイル機器内のプロセッサによってプログラムコードを呼び出すことで実現されてもよく、当然ながら、プログラムコードはコンピューター記憶媒体に記憶することができ、該モバイル機器は少なくともプロセッサと記憶媒体を含むことが分かる。
【0015】
本願の実施例は、点群階層化方法を提供し、該方法はビデオ復号装置、即ちデコーダに適用される。該方法によって実現される機能は、ビデオ復号装置内のプロセッサによってプログラムコードを呼び出すことで実現されてもよく、当然ながら、プログラムコードはコンピューター記憶媒体に記憶することができ、該ビデオ復号装置は少なくともプロセッサと記憶媒体を含むことが分かる。図1Aを参照すると、図1Aは、本願の例示的な実施例による点群階層化方法の実現プロセスの概略図であり、図1Aを参照して以下の説明を行う。
【0016】
ステップS101において、点群ビットストリームを受信する。
【0017】
ここで、点群ビットストリームは、前記点群の幾何情報(geometry)と属性情報(Attribute)を含む。点群ビットストリームは、階層化する必要がある点群データ、例えば、3次元ビデオを形成するために使用される点群データなどであると理解することができる。点群データを階層化する方式は、モートンコードによって実現されてもよく、サンプリング距離によって実現されてもよい。ステップS101において、点群ビットストリームの幾何情報は、点群法線ベクトル、曲率、点群密度、点群表面粗さ、点群重心、点群重み重心、点群共分散及び点群相互共分散などを含む。属性情報は、入力点群の区分距離の2乗、区分総層数、色空間の情報、空間解像度、点位置の精度、表面法線ベクトルなどを含む。
【0018】
いくつかの可能な実現形態では、モートンコードに基づいて点群データに対してLOD階層化を行うことを実現するプロセスは次のとおりである。
【0019】
【数1】
【0020】
【0021】
【数2】
【0022】
【0023】
【0024】
次に、k番目の反復の場合、k=0,1...N-1(NはLOD区分の総層数)であり、変数L(k)はk層目のLODに属する点を保存し、変数O(k)はLODk層よりも高い点集合に属する。ここで、L(k)とO(k)の計算ステップは次のとおりである。
【0025】
第1ステップにおいて、まずO(k)とL(k)が初期化される。
【0026】
ここで、L(k)は空集合として初期化され、O(k)は空集合として初期化される。
【0027】
第2ステップにおいて、変数Iに保存される点のインデックスに従って、各反復をトラバースする。各トラバーサルについては、現在の点から集合O(k)における一定の範囲内のすべての点までの距離を計算する。現在の点に対応するモートン順の値に基づいて、集合O(k)の1つの検索範囲SR1内で検索を行い(SR1はモートン順による検索範囲を表し、一般的に8、16、64である)、該範囲内で現在の点からの距離が閾値dl未満であることが検索された場合、現在の点は集合L(k)に追加され、そうでない場合、集合O(k)に追加される。
【0028】
【0029】
別の実現形態では、サンプリング距離に基づいて点群データに対してLOD階層化を行うことを実現するプロセスは次のとおりである。
【0030】
【0031】
該LODの区分プロセスは決定されたものであり、点群の幾何再構成の後であり、この時点で点群の幾何座標情報が得られることができる。該LODの区分プロセスは、点群の符号化側と復号側に同時に適用され、LOD区分の具体的なプロセスは次のとおりである。
【0032】
1)まず、すべての点を「未アクセス」の点集合としてマークし、「アクセス済み」点集合を空集合であるVとして初期化する。
【0033】
【0034】
第1ステップにおいて、該アルゴリズムはすべての点を反復及びトラバースする。
【0035】
第2ステップにおいて、現在の点が既にトラバースされる場合、該点を無視する。
【0036】
第3ステップにおいて、そうでない場合、該点から集合Vまでの最も近い距離Dを計算する。
【0037】
【0038】
第5ステップにおいて、該プロセスは、すべての点がトラバースされるまで絶えず反復される。
【0039】
【0040】
4)該プロセスは、すべてのLODが生成されるまで、又はすべての点がトラバースされるまで絶えず反復され、このようにして、点群データに対するLOD階層化を実現する。
【0041】
ステップS102において、点群ビットストリームに含まれる第1構文要素(syntax element)の最大許容値を決定する。
【0042】
ここで、最大許容値は、属性符号化の詳細度の階層を指定するために使用され、0からXまでの範囲内にあってもよく、Xは正の整数である。点群ビットストリームのプロファイル(Profile)、階層(Tier)又はレベル(Level)を参照することで、点群ビットストリームを階層化する最大許容値を決定することができる。又は、最大許容値を定数として設定し、即ち、該定数に基づいて点群ビットストリームに対してLOD階層化を行う。
【0043】
ステップS103において、点群ビットストリームを解析し、最大許容値に基づいて、第1構文要素の値を決定する。
【0044】
ここで、点群ビットストリームを解析し、該点群ビットストリームを階層化する最大許容値を取得する。次に、点群ビットストリームのプロファイル(Profile)、階層(Tier)又はレベル(Level)を参照することで、最大許容値から第1構文要素の値を決定することができ、又は、第1構文要素の値を定数として設定し、即ち、該定数に基づいて点群ビットストリームに対してLOD階層化を行う。
【0045】
いくつかの可能な実現形態では、第1構文要素の値を決定するプロセスは、次の2つの方式によって実現され得る。
【0046】
方式1において、まず、前記点群ビットストリームを解析し、適合性(Conformance)パラメータを取得する。
【0047】
ここで、適合性パラメータは、該点群ビットストリームの自体の属性を表すために使用され、少なくともプロファイル、階層、及びレベルのうちの1つを含む。
【0048】
次に、前記適合性パラメータと前記最大許容値との間の予め設定された対応関係に基づいて、前記最大許容値を決定する。
【0049】
ここで、適合性パラメータと前記最大許容値との間の対応関係は、予め設定された対応関係であり、プロファイル、階層及びレベルと最大許容値との間の対応関係を含む。1つの具体的な例では、階層を高階層、中間階層、低階層の3つの階層に分け、異なる階層が異なる最大許容値に対応することを設定し、階層が大きいほど対応する最大許容値が高くなる。例えば、高階層に対応する最大許容値は31であり、中間階層に対応する最大許容値は21であり、低階層に対応する最大許容値は16である。プロファイル及びレベルと最大許容値との間の対応関係も、このように設定することができる。このようにして、適合性パラメータと前記最大許容値との間の対応関係に基づいて、最大許容値を決定することができる。
【0050】
方式2において、最大許容値を予め設定された定数値に設定し、ここで、定数値は0より大きい整数である。
【0051】
いくつかの可能な実現形態では、定数値は、0より大きく、且つ予め設定された閾値以下の整数である。具体的な例では、予め設定された閾値は31であってもよく、他の実施例では、予め設定された閾値は、6、7、8、16、21、32、又は64などの他の値を取ることもできる。
【0052】
ステップS104において、前記第1構文要素の値に基づいて、前記属性情報を復号するプロセスにおける詳細レベルの数を決定する。
【0053】
ここで、第1構文要素の値が設定された後、該値から1を引いた値を、点群属性情報を復号するプロセスにおける詳細レベルの数として使用することができる。
【0054】
いくつかの実施例では、第1構文要素の値を決定した後、まず、前記点群ビットストリームのモートンコード集合を取得し、いくつかの可能な実現形態では、まず検索対象点群データ、例えば、3次元ビデオを形成するための点群データなどを取得する。次に、前記点群データのモートンコードを決定し、例えば、まず点群データのバイナリ符号化データストリームを決定し、次に該バイナリ符号化データストリームに基づいて、点群データのモートンコードを決定することができる。最後に、前記点群データのモートンコードを昇順に並べて、複数のモートンコードを含む前記モートンコード集合を得る。他の実施例では、点群データのモートンコードを降順に並べて、複数のモートンコードを含む前記モートンコード集合を得ることもできる。点群データのモートンコードを任意の特定の順序(例えば、任意に設定された、中間が最も大きく、両端に向かって順に小さくなる順序など)に並べて、モートンコード集合を得ることもできる。次に、前記モートンコード集合と前記幾何情報に基づいて、前記最大許容値の範囲内で、前記第1構文要素の値を決定する。最後に、前記第1構文要素の値に基づいて、前記点群に対して詳細レベルの区分を行う。
【0055】
ステップS105において、詳細レベルの数及び点群の幾何情報に基づいて、属性情報を復号し、点群の再構成された点群を取得する。
【0056】
ここで、詳細レベルの数は、点群に対してLOD階層化を行う層数であると理解することができ、該層数と点群の幾何情報を総合的に考慮することで、点群の属性情報のみを復号し、点群の再構成を実現する。いくつかの可能な実現形態では、まず、詳細レベルの数と点群の幾何情報に基づいて、点群における1つ又は複数の詳細レベルの再構成値を決定する。次に、前記1つ又は複数の詳細レベルの再構成値に基づいて、点群の再構成された点群を取得する。例えば、前記詳細レベルの数と前記点群の幾何情報に基づいて、前記点群に対して詳細レベルの区分を行い、1つ又は複数の詳細レベルの再構成値を取得する。1つの例示的な実施例では、デコーダが点群の再構成を行うとき、ビットストリームから、n個のスライスにおける各スライスの交点の位置情報と、n個のスライスに対応する点群情報を解析することができ、このように、点群モデルの再構成時に、n個のスライスにおける各スライスの交点の位置情報と、n個のスライスに対応する点群情報とに基づいて、点群モデルの再構成を行うことができる。
【0057】
本願の例示的な実施例では、点群の幾何情報及び属性情報を取得することで、第1構文要素の最大許容値を決定し、次に、最大許容値及び点群の幾何情報に基づいて、第1構文要素の値を決定し、最後に、点群に対する詳細レベルの区分に基づいて、点群を符号化し、そして、第1構文要素の値を符号化し、符号化ビットをビットストリームに書き込む。このようにして、点群データの幾何情報及び属性情報に基づいて、該点群データの最大許容値を適応的に決定し、それによって点群データを階層化する第1構文要素の値の範囲が規定され、さらに符号化側と復号側で、ユーザによって設定されたLOD区分層数を検査することができ、ユーザによって設定された区分層数と実際の区分層数との一致性を増加させることができる。
【0058】
いくつかの実施例では、第1構文要素の値を決定した後、即ちステップS103の後、前記方法はさらに以下のプロセスを含む。
【0059】
まず、前記点群ビットストリームのモートンコード集合を取得する。いくつかの可能な実現形態では、まず、検索対象点群データ、例えば、3次元ビデオを形成するための点群データなどを取得する。次に、前記点群データのモートンコードを決定し、例えば、まず点群データのバイナリ符号化データストリームを決定し、次に該バイナリ符号化データストリームに基づいて、点群データのモートンコードを決定することができる。最後に、前記点群データのモートンコードを昇順に並べて、複数のモートンコードを含む前記モートンコード集合を得る。他の実施例では、点群データのモートンコードを降順に並べて、複数のモートンコードを含む前記モートンコード集合を得ることもできる。点群データのモートンコードを任意の特定の順序(例えば、任意に設定された、中間が最も大きく、両端に向かって順に小さくなる順序など)に並べて、モートンコード集合を得ることもできる。次に、前記モートンコード集合と前記幾何情報に基づいて、前記最大許容値の範囲内で、前記第1構文要素の値を決定する。最後に、前記第1構文要素の値に基づいて、前記点群に対して詳細レベルの区分を行う。
【0060】
いくつかの実施例では、モートンコードに基づいてLOD区分を実現する場合、点群データの属性情報に基づいて点群データを階層化する最大許容値を適応的に決定することができ、即ちステップS102は以下のステップによって実現され得、図1Bを参照すると、図1Bは、本願の例示的な実施例による点群階層化方法の別の実現プロセスの概略図であり、以下の説明を行う。
【0061】
ステップS121において、前記点群ビットストリームを解析し、ルートノードの長さ、幅及び高さの値を決定する。
【0062】
ここで、ルートノードは点群における最も深いノードを表し、バウンディングボックスで表すことができる。
【0063】
いくつかの可能な実現形態では、前記点群ビットストリームに含まれる幾何情報を解析し、前記ルートノードの長さ、幅及び高さの値を決定する。例えば、前記幾何情報におけるユニットヘッダ情報を解析し、前記ルートノードの長さ、幅及び高さの値を決定する。符号化側では、ルートノードの長さ、幅及び高さの値を符号化して幾何情報におけるユニットヘッダ情報(ここで、ユニットヘッダ情報は、geometry_data_unit_header()として表され得る)に書き込むため、復号側では、幾何情報におけるユニットヘッダ情報を解析することで、前記ルートノードの長さ、幅及び高さの値を決定することができる。ここで、エンコーダでは、前記点群の幾何情報に基づいて、前記点群のバウンディングボックスを決定し、バウンディングボックスに基づいて、前記点群のルートノードを決定し、前記点群のルートノードの長さ、幅及び高さの値を得、得られた点群のルートノードの長さ、幅及び高さの値をビットストリームに符号化してユニットヘッダ情報に書き込む。
【0064】
ステップS122において、前記点群ビットストリームを解析し、右シフトの第1パラメータの値を決定する。
【0065】
ここで、点群の幾何情報に基づいて、点群を階層化する右シフトの第1パラメータの値、例えば、ユーザによって入力される初期サンプリング距離を決定する。いくつかの可能な実現形態では、点群ビットストリームを解析することで、点群の初期サンプリング距離を決定し、該初期サンプリング距離を右シフトの第1パラメータの値として設定する。初期サンプリング距離は、ユーザによって設定されてもよく、点群の属性情報に基づいて設定されてもよい。
【0066】
ステップS123において、右シフトの第1パラメータの値とルートノードの長さ、幅及び高さの値に基づいて、前記最大許容値を決定する。
【0067】
ここで、サンプリング距離に基づいて点群データに対するLOD階層化を実現するか、モートンコードに基づいて点群データに対するLOD階層化を実現するかにかかわらず、点群の属性情報を総合的に考慮して点群データを階層化するN層目を決定し、N層目と目標長さとの間の関係を判断することで、最大許容値を設定する。
【0068】
いくつかの可能な実現形態では、点群ビットストリームを区分する最大許容値を決定することは、次の2つの実現方式を含む。
【0069】
方式1において、モートンコードに基づいて点群データに対するLOD階層化を実現する方式は、次のステップによって実現され得る。
【0070】
第1ステップにおいて、ルートノードの次元の最大値を、ルートノードの長さ、幅及び高さの3つの値のうちの最大値に設定する。
【0071】
ここで、ルートノードの長さ、幅及び高さの3つの値のうちの最大値(gbh.maxRootNodeDimLog2)をルートノードの次元の最大値に設定する。属性情報に含まれる点群の初期区分距離、区分総層数及び色空間の変換などのパラメータにより、点群を処理し、最終的にN層目のノードのサイズを決定し、N層目のノードのサイズとルートノードのサイズとの差が比較的小さく、又は両者が等しい場合、N層目が存在する層数を最大許容値として決定する。
【0072】
該ステップでは、モートンコードに基づいてLOD区分を実現するシナリオにおいて、N層目のノードのサイズとルートノードのサイズとの間の大小関係を比較することで、LOD区分可能な最大層数を適応的に決定し、構文要素(lifting_num_detail_levels_minus1)の範囲を明確に規定する。
【0073】
第2ステップにおいて、前記点群ビットストリームを解析し、右シフトの第2パラメータの値を決定する。
【0074】
ここで、右シフトの第2パラメータの値は、右シフトの第1パラメータの値に対する微調整量であると理解することができ、点群ビットストリームを解析し、各ブロックの初期サンプリング距離を決定して合計し、初期サンプリング距離の和の値を右シフトの第1パラメータと減算することで、右シフトの第2パラメータの値を得ることができる。いくつかの可能な実現形態では、点群データを符号化するとき、まず、点群データを複数の小さなモジュールに区分し、次に、幾何情報において、点群における各ブロックの初期サンプリング距離を決定し、複数のモジュールの初期サンプリング距離を合計し、初期サンプリング距離の和の値と右シフトの第1パラメータとの差を右シフトの第2パラメータとして決定し、即ち、右シフトの第2パラメータは、右シフトの第1パラメータを微調整する調整量であると理解することができる。
【0075】
第3ステップにおいて、前記ルートノードの次元の最大値と、前記右シフトの第1パラメータ及び前記右シフトの第2パラメータとの差を前記最大許容値として設定する。
【0076】
ここで、右シフトの第1パラメータと右シフトの第2パラメータを合計し、例えば、入力された初期区分距離と区分総層数に基づいて、点群を計算し、該初期サンプリング距離の和の値を決定する。本願の例示的実施例では、右シフトの第1パラメータaps.dist2及び入力点群に基づいて右シフトの第2パラメータabh.attr_dist2_deltaを算出し、次に、aps.dist2及びabh.attr_dist2_deltaに基づいて初期右シフトのビット数shiftbits0を算出する。
【0077】
いくつかの可能な実現形態では、次のプロセスによって最大許容値を決定することができる。
【0078】
ステップAにおいて、属性情報のヘッダーファイル関数を決定する。
【0079】
ここで、属性情報に含まれる入力パラメータ(例えば、クラウド初期区分距離、区分総層数及び色空間の変換など)に基づいて、点群データを処理し、該ヘッダーファイル関数(例えば、abh.attr_dist2_deltaを得る)を得る。該ヘッダーファイル関数は、点群データの属性パラメータを表すために使用される。
【0080】
ステップBにおいて、ヘッダーファイル関数の値と属性情報に対応するパラメータ値を加算し、初期サンプリング距離の和の値を得る。
【0081】
ここで、abh.attr_dist2_deltaの値(右シフトの第2パラメータの値に対応する)と属性情報に対応するパラメータ値を加算し、加算して得られた結果を初期右シフトのビット数とする。このようにして、入力された属性情報に基づいて点群データを処理することで、点群を区分する時の初期右シフトのビット数を決定する。
【0082】
ステップCにおいて、ルートノードの次元の最大値を該初期サンプリング距離の和の値と減算し、最大許容値を得る。
【0083】
ここで、ステップCは、次のプロセスによって実現され得る。
【0084】
ステップC1において、初期サンプリング距離の和の値に基づいて、点群を区分するN層目が属するノードを決定する。
【0085】
【0086】
いくつかの可能な実現形態では、N層目が属するノードを決定するプロセスは次のとおりである。
【0087】
まず、初期右シフトのビット数と予め設定された基数に基づいて、点群ビットストリームを階層化する初期層が属するノードの寸法情報を決定する。
【0088】
【0089】
次に、N層目と初期層との間の層数の差を決定する。
【0090】
ここで、初期層が1であると仮定すると、差はN-1である。
【0091】
さらに、層数の差に基づいて初期層が属するノードの寸法情報を調整し、調整済み寸法情報を得る。
【0092】
【0093】
最後に、調整済み寸法情報に基づいて、N層目が属するノードを決定する。
【0094】
【0095】
ステップC2において、N層目が属するノード及びルートノードに基づいて、最大許容値を決定する。
【0096】
ここで、N層目が属するノードの寸法とルートノードの寸法との間の大小関係を比較して、層数の最大値を決定する。
【0097】
いくつかの可能な実現形態では、N層目が属するノード及びルートノードに基づいて、最大許容値を決定するステップは、次のプロセスによって実現され得る。
【0098】
まず、ルートノードの寸法情報を決定する。
【0099】
ここで、ルートノードの寸法情報は、即ちバウンディングボックスの最長辺の長さである。
【0100】
次に、調整済み寸法情報とルートノードの寸法情報との間の第1差を決定する。
【0101】
【0102】
最後に、第1差が第1予め設定された閾値以下である場合、N層目に対応する層数が最大許容値であることを決定する。
【0103】
ここで、第1予め設定された閾値は0に近い整数であり、つまり、第1差が0に近い場合、N層目が属するノードのサイズがルートノードのサイズに非常に近いことを意味し、さらに、N層目に対応する層数が既に点群ビットストリームを階層化する最大層数であることを意味し、このようにして、ノードのサイズがルートノードのサイズに非常に近いN層目に対応する層数を最大許容値とし、点群の属性情報に基づいて構文要素lifting_num_detail_levels_minus1の範囲を適応的に設定することが実現される。
【0104】
方式1では、入力された点群の属性パラメータ集合を使用して点群データを処理し、それによって点群の初期右シフトのビット数を決定し、初期右シフトのビット数に基づいて、初期区分層に対応するノードのサイズを決定し、次に、1層を区分するごとに、初期右シフトのビット数が増加し、しかも区分層に対応するノードのサイズも増加するため、N層目の右シフトのビット数、及びN層目に対応するノードのサイズを決定することができ、最後に、N層目のノードのサイズと目標長さとの間の大小関係を比較することで、最大許容値を設定する。
【0105】
方式2において、サンプリング距離に基づいて点群に対してLOD階層化を行うことを実現する方式では、まず、属性情報における初期サンプリング距離と隣接する2層のサンプリング距離の比を組み合わせることで、N層目のサンプリング距離を決定し、次に、N層目のサンプリング距離と目標長さとの間の大小関係を比較することで、最大許容値を設定し、これは次のステップによって実現され得る。
【0106】
ステップAにおいて、前記ルートノードの長さ、幅及び高さの値に基づいて、前記ルートノードの対角線距離の値を決定する。
【0107】
【0108】
ステップBにおいて、前記ルートノードの対角線距離の値及び前記右シフトの第1パラメータの値に基づいて、前記最大許容値を決定する。
【0109】
いくつかの可能な実現形態では、ステップBは次のステップによって実現され得る。
【0110】
ステップB1において、第1比率を決定する。
【0111】
ここで、第1比率は、前記ルートノードの対角線距離の値と前記右シフトの第1パラメータの値の算術平方根との比率である。例えば、第1層と第2層のサンプリング距離間の比率である。本願の例示的な実施例では、各隣接する2層間のサンプリング距離間の比率は、同じになるように設定されてもよく、例えば、全てPである。他の実施例では、各隣接する2層間のサンプリング距離間の比率も異なるように設定されてもよい。
【0112】
ステップB2において、第1比率の対数値を決定する。
【0113】
ここで、第1比率の対数値は、N層目のサンプリング距離であると理解することができ、バウンディングボックスにおける最長の対角線の長さと第1比率に基づいて、N層目のサンプリング距離を決定することができる。例えば、初期サンプリング距離に第1比率を乗じ、即ち次の層のサンプリング距離を決定することができ、このように類推して、N層目のサンプリング距離を決定することができる。
【0114】
いくつかの可能な実現形態では、点群ビットストリームを解析することで、隣接する詳細レベルのサンプリング距離間の第1比率を決定し、点群の幾何情報における点群座標のまばらさに基づいて、第1比率を設定する。該第1比率は、1より大きい任意の数に設定されてもよく、これにより、点群を階層化するプロセスで、点群に対する収集が層数の増加に伴い、層ごとにまばらになることを保証する。
【0115】
ステップB3において、前記対数値を前記最大許容値として決定する。
【0116】
ここで、前記対数値に対応する基数は、隣接する詳細レベルのサンプリング距離間の比率として設定される。いくつかの実施例では、N層目のサンプリング距離とバウンディングボックスにおける最長の対角線の長さとの大小を比較することで、N層目のサンプリング距離がバウンディングボックスにおける最長の対角線の長さに非常に近いと、N層目が点群を階層化する最後の層であり、即ちN層目に対応する層数が最大許容値であることを意味する。
【0117】
いくつかの例示的な実施例では、距離に基づいてLOD区分を実現する場合、バウンディングボックスの最長の対角線によって最大許容値を設定することができ、これは以下のプロセスによって実現され得る。
【0118】
第1ステップにおいて、バウンディングボックスにおける互いに垂直な3つの辺の長さを決定する。
【0119】
ここで、バウンディングボックスが立方体である場合、バウンディングボックスにおける互いに垂直な3つの辺は、立方体の長さ、幅及び高さであると理解することができる。
【0120】
第2ステップにおいて、3つの辺の長さに基づいて、最長の対角線の長さを決定する。
【0121】
【0122】
上記の第1ステップと第2ステップにより、LODを距離に基づいてLODを区分することが実現される場合、バウンディングボックスにおける互いに垂直な3つの辺の長さを使用して最長の対角線の長さを決定し、即ち最大許容値を設定するための目標長さを得ることができる。
【0123】
いくつかの例示的な実施例では、距離に基づいてLOD区分を実現する場合、隣接する2層のサンプリング距離及びサンプリング距離比により、N層目のサンプリング距離を決定することができ、これは以下のプロセスによって実現され得る。
【0124】
第1ステップにおいて、少なくとも隣接する2層の2つのサンプリング距離を取得し、サンプリング距離集合を得る。
【0125】
ここで、属性情報に含まれる初期サンプリング距離とサンプリング層の総数を解析することで、複数の隣接する層のサンプリング距離を決定する。例えば、第1層と第2層のサンプリング距離、第3層と第4層のサンプリング距離、第5層と第6層のサンプリング距離などをそれぞれ取得し、サンプリング距離集合を形成する。つまり、該サンプリング距離集合は、複数の隣接する層のサンプリング距離を含む。
【0126】
第2ステップにおいて、サンプリング距離集合内の隣接する2層のサンプリング距離間の比率を決定し、予め設定されたサンプリング距離比を得る。
【0127】
ここで、サンプリング距離集合内の隣接する2層のサンプリング距離に対して比率を求め、それによって隣接する2層間のサンプリング距離の比を得る。本願の例示的な実施例では、各隣接する2層間のサンプリング距離の比は同じであり、該同じ比を予め設定されたサンプリング距離比とする。該予め設定された距離比は、隣接する2層のサンプリング距離に対して比率を求めることによって得られてもよく、予め設定されてもよい。
【0128】
第3ステップにおいて、予め設定されたサンプリング距離比及び属性情報における初期サンプリング距離に基づいて、N層目のサンプリング距離を決定する。
【0129】
【0130】
本願の例示的な実施例では、属性情報において隣接する2層のサンプリング距離を取得することで、サンプリング距離比を決定し、初期サンプリング距離を組み合わせて、N層目のサンプリング距離を決定する。このようにして、距離に基づいてLOD区分を実現する場合、各層のサンプリング距離の決定を実現し、それによって最大許容値を設定することができる。
【0131】
いくつかの例示的な実施例では、距離に基づいてLOD区分を実現する場合、N層目のサンプリング距離と目標長さとの間の関係を判断することで、最大許容値を設定することができ、これは以下のプロセスによって実現され得る。
【0132】
第1ステップにおいて、N層目のサンプリング距離と目標長さとの間の第2差を決定する。
【0133】
【0134】
第2ステップにおいて、第2差が第2予め設定された閾値以下である場合、N層目に対応する層数が前記最大許容値であることを決定する。
【0135】
ここで、第2予め設定された閾値は、0に近い正の数であり、第1予め設定された閾値と同じであっても異なってもよい。第2差が第2予め設定された閾値以下である場合、N層目のサンプリング距離がバウンディングボックスの最長の対角線の長さに非常に近いことを意味し、それによってN層目が点群ビットストリームを階層化する最後の層であることを意味するため、N層目に対応する層数を最大許容値とすることができる。
【0136】
方式2では、まず、受信された設定命令に応答して、最大許容値の範囲内で、第1構文要素の値を決定する。即ち、ユーザが入力した層数の設定命令を受信する場合、該最大許容値内で、1つの層数を第1構文要素の値として選択することができる。例えば、最大許容値が[0,20]である場合、18を第1構文要素の値として選択することができる。次に、第1構文要素の値に基づいて、点群を区分する。このようにして、本願の例示的な実施例では、点群データの幾何情報と属性情報に基づいて、該点群データの区分可能な最大層数を適応的に決定し、それによって点群データを階層化する最大許容値が規定され、さらに符号化側と復号側で、ユーザによって設定されたLOD区分層数を検査することができ、ユーザによって設定された区分層数と実際の区分層数との一致性を増加させることができる。
【0137】
いくつかの例示的な実施例では、点群データを階層化する最大許容値を設定した後、符号化側と復号側で、ユーザによって設定されたLOD区分層数を検査することができ、システムの一致性を増加させ、即ち前記最大許容値に基づいて、前記点群ビットストリームを区分した後、前記方法は、さらに次のプロセスを含む。
【0138】
第1ステップにおいて、入力された、点群を階層化する予め設定された層数を取得する。
【0139】
ここで、符号化側又は復号側で、ユーザが点群を階層化する場合、ユーザが点群ビットストリームを階層化する予め設定された層数を取得することができる。例えば、点群ビットストリームを階層化するユーザによって設定された予め設定された層数は30である。
【0140】
第2ステップにおいて、最大許容値に基づいて、予め設定された層数の有効性(validity)を決定する。
【0141】
ここで、予め設定された層数が最大許容値以内であるか否かを判断し、予め設定された層数が最大許容値以内であると、該予め設定された層数が正当であると決定し、即ち該予め設定された層数は利用可能なものであり、予め設定された層数が最大許容値以内にないと、該予め設定された層数が無効(invalid)であると決定し、即ち該予め設定された層数は利用不可なものである。具体的な例では、予め設定された層数が30であり、最大許容値が21であると、予め設定された層数が無効であることを意味する。
【0142】
第3ステップにおいて、予め設定された層数の有効性が予め設定された層数が最大許容値以下であることを示す場合、予め設定された層数に基づいて点群を階層化する。
【0143】
ここで、予め設定された層数が最大許容値以下であり、即ち予め設定された層数が最大許容値以内にあることは、予め設定された層数が利用可能なものであることを意味し、このように、該予め設定された層数に基づいて点群を階層化することができる。このようにして、符号化側と復号側で、ユーザによって設定されたLOD区分層数を検査することができ、それによってユーザによって設定された期待のLOD区分層数と実際のLOD区分層数との一致性を向上させる。
【0144】
本願の実施例は、点群階層化方法を提供し、該方法はビデオ符号化装置、即ちエンコーダに適用される。該方法によって実現される機能は、ビデオ符号化装置内のプロセッサによってプログラムコードを呼び出すことで実現され得、当然ながら、プログラムコードはコンピューター記憶媒体に記憶されてもよく、該ビデオ符号化装置は少なくともプロセッサと記憶媒体を含むことが分かる。図2Aを参照すると、図2Aは、本願の実施例による点群階層化方法のプロセスの概略図である。図2Aに示すように、該方法は、ステップS201~S205を含むことができる。
【0145】
ステップS201において、点群の幾何情報と属性情報を取得する。
【0146】
ここで、点群ビットストリームは、階層化する必要がある点群データ、例えば、3次元ビデオを形成するために使用される点群データなどであると理解することができる。点群データを階層化する方式は、モートンコードによって実現されてもよく、サンプリング距離によって実現されてもよい。ステップS101において、点群ビットストリームの幾何情報は、点群法線ベクトル、曲率、点群密度、点群表面粗さ、点群重心、点群重み重心、点群共分散及び点群相互共分散などを含む。属性情報は、入力点群の区分距離の2乗、区分総層数、色空間の情報、空間解像度、点位置の精度、表面法線ベクトルなどを含む。
【0147】
いくつかの可能な実現形態では、モートンコードに基づいて点群データに対してLOD階層化を行うことを実現するプロセスは次のとおりである。
【0148】
【0149】
【0150】
点群における各点のモートンコードMが得られた後、点群における点をモートンコードの小さい順に並べる。変数Iは全ての点のインデックスを保存し、該アルゴリズムは絶えず反復され、k番目の反復の場合、LODkに属する点は、LOD0からLODk-1層まで最も近い隣人を検索する。該アルゴリズムの具体的なプロセスは次のとおりである。
【0151】
【0152】
次に、k番目の反復の場合、k=0,1...N-1(NはLOD区分の総層数)であり、変数L(k)はk層目のLODに属する点を保存し、変数O(k)はLODk層よりも高い点集合に属する。ここで、L(k)とO(k)の計算ステップは次のとおりである。
【0153】
第1ステップにおいて、O(k)とL(k)を初期化する。
【0154】
ここで、L(k)は空集合として初期化され、O(k)は空集合として初期化される。
【0155】
第2ステップにおいて、変数Iに保存される点のインデックスに従って、各反復をトラバースする。各トラバーサルについては、現在の点から集合O(k)における一定の範囲内のすべての点までの距離を計算する。現在の点に対応するモートン順の値に基づいて、集合O(k)の1つの検索範囲SR1内で検索を行い(SR1はモートン順による検索範囲を表し、一般的に8、16、64である)、該範囲内で現在の点からの距離が閾値dl未満であることが検索された場合、現在の点は集合L(k)に追加され、そうでない場合、集合O(k)に追加される。
【0156】
【0157】
【0158】
【0159】
該LODの区分プロセスが決定されたものであり、点群の幾何再構成の後であり、この時点で点群の幾何座標情報が得られることができる。該LODの区分プロセスは、点群の符号化側と復号側に同時に適用され、LOD区分の具体的なプロセスは次のとおりである。
【0160】
1)まず、すべての点を「未アクセス」の点集合としてマークし、「アクセス済み」点集合を空集合であるVとして初期化する。
【0161】
【0162】
第1ステップにおいて、該アルゴリズムはすべての点を反復及びトラバースする。
【0163】
第2ステップにおいて、現在の点が既にトラバースされる場合、該点を無視する。
【0164】
第3ステップにおいて、そうでない場合、該点から集合Vまでの最も近い距離Dを計算する。
【0165】
【0166】
第5ステップにおいて、該プロセスは、すべての点がトラバースされるまで絶えず反復される。
【0167】
【0168】
4)該プロセスは、すべてのLODが生成されるまで、又はすべての点がトラバースされるまで絶えず反復され、このようにして、点群データのLOD階層化を実現する。
【0169】
ステップS202において、第1構文要素の最大許容値を決定する。
【0170】
ここで、第1構文要素は前記点群の属性情報を符号化するプロセスにおける詳細レベルの数を表す。点群ビットストリームのプロファイル(Profile)、階層(Tier)又はレベル(Level)を参照することで、点群ビットストリームを階層化する最大許容値を決定することができる。又は、最大許容値を定数として設定し、即ち、該定数に基づいて点群ビットストリームに対してLOD階層化を行う。
【0171】
いくつかの可能な実現形態では、最大許容値を決定するプロセスは、次の2つの方式によって実現され得る。
【0172】
方式1において、まず、適合性(Conformance)パラメータを決定する。
【0173】
ここで、適合性パラメータは、該点群ビットストリームの自体の属性を表すために使用され、少なくともプロファイル、階層、及びレベルのうちの1つを含む。いくつかの可能な実現形態では、エンコーダの構成パラメータに基づいて該適合性パラメータを設定することができる。例えば、エンコーダの構成パラメータにおけるレベルが高いと、適合性パラメータにおけるレベルを高く設定し、同様に、エンコーダにおける構成パラメータのプロファイルを適合性パラメータにおけるプロファイルとして設定することができる。又は、エンコーダにおける構成パラメータの階層を適合性パラメータにおける階層として設定する。適合性パラメータの設定については、セッションネゴシエーションプロセスで決定されたパラメータに基づいて決定されてもよい。例えば、セッションネゴシエーションプロセスで、レベルが高いと決定したと、適合性パラメータにおけるレベルを高く設定する。
【0174】
次に、前記適合性パラメータと前記最大許容値との間の予め設定された対応関係に基づいて、前記最大許容値を決定する。
【0175】
ここで、適合性パラメータと前記最大許容値との間の対応関係は、予め設定された対応関係であり、プロファイル、階層及びレベルと最大許容値との間の対応関係を含む。1つの具体的な例では、階層を高階層、中間階層、低階層の3つの階層に分け、異なる階層が異なる最大許容値に対応することを設定し、階層が大きいほど対応する最大許容値が高くなる。例えば、高階層に対応する最大許容値は31であり、中間階層に対応する最大許容値は21であり、低階層に対応する最大許容値は16である。プロファイル及びレベルと最大許容値との間の対応関係も、このように設定することができる。このようにして、適合性パラメータと前記最大許容値との間の対応関係に基づいて、最大許容値を決定することができる。
【0176】
最後に、前記適合性パラメータを符号化し、符号化ビットを前記ビットストリームに書き込む。
【0177】
方式2において、最大許容値を予め設定された定数値に設定し、ここで、定数値は0より大きい整数である。
【0178】
いくつかの可能な実現形態では、定数値は、0より大きく、且つ予め設定された閾値以下の整数である。具体的な例では、予め設定された閾値は31であってもよく、他の実施例では、エンコーダの構成パラメータに基づいて、対応して該定数値を設定してもよく、エンコーダ自体によって固定されたパラメータを該定数値として設定してもよい。予め設定された閾値は、6、7、8、16、21、32、又は64などの他の値を取ることもできる。
【0179】
ステップS203において、前記最大許容値及び前記点群の幾何情報に基づいて、前記点群に対して詳細レベルの区分を行い、前記第1構文要素の値を決定する。
【0180】
ここで、第1構文要素の値は前記最大許容値以下である。最大許容値が決定された後、該最大許容値範囲内で、点群の幾何情報を総合的に考慮することで、点群に対してLOD区分を行い、それによって第1構文要素の値を決定することができる。
【0181】
いくつかの実現形態では、第1構文要素の値を決定した後、まず、前記点群ビットストリームのモートンコード集合を取得し、いくつかの可能な実現形態では、まず検索対象点群データ、例えば、3次元ビデオを形成するための点群データなどを取得する。次に、前記点群データのモートンコードを決定し、例えば、まず点群データのバイナリ符号化データストリームを決定し、次に該バイナリ符号化データストリームに基づいて、点群データのモートンコードを決定することができる。最後に、前記点群データのモートンコードを昇順に並べて、複数のモートンコードを含む前記モートンコード集合を得る。他の実施例では、点群データのモートンコードを降順に並べて、複数のモートンコードを含む前記モートンコード集合を得ることもできる。点群データのモートンコードを任意の特定の順序(例えば、任意に設定された、中間が最も大きく、両端に向かって順に小さくなる順序など)に並べて、モートンコード集合を得ることもできる。次に、前記モートンコード集合と前記幾何情報に基づいて、前記最大許容値の範囲内で、前記第1構文要素の値を決定する。最後に、前記第1構文要素の値に基づいて、前記点群に対して詳細レベルの区分を行う。
【0182】
ステップS204において、前記点群に対する詳細レベルの区分に基づいて、前記点群を符号化し、ビットストリームを生成する。
【0183】
ここで、点群に対するLOD階層化情況に基づいて、各層の点群を符号化する。
【0184】
ステップS205において、前記第1構文要素の値を符号化し、符号化ビットをビットストリームに書き込む。
【0185】
ここで、第1構文要素の値が決定された後、まず、該値がビットストリームにおいて占有するビット数Nを決定する。いくつかの可能な実現形態では、第1構文要素のビットストリームにおける対応するビット数Nを、符号なし(unsigned)バイナリ数を使用して最大許容値を表すために必要な最小ビット数に設定する。例えば、符号なしバイナリ数を使用して最大許容値を表すために必要な最小ビット数が64であり、64を第1構文要素のビットストリームにおける対応するビット数Nとして設定する。次に、第1構文要素の値をN個のビットに変換し、即ち、第1構文要素の値をN個の符号なしバイナリ数に対応するビットに変換し、N個のビットをビットストリームに書き込み、それによって第1構文要素の値を符号化し、符号化ビットをビットストリームに書き込むことが実現される。
【0186】
本願の例示的な実施例では、点群の幾何情報及び属性情報を取得することで、第1構文要素の最大許容値を決定し、次に、最大許容値及び点群の幾何情報に基づいて、第1構文要素の値を決定し、最後に、点群に対する詳細レベルの区分に基づいて、点群を符号化し、そして、第1構文要素の値を符号化し、符号化ビットをビットストリームに書き込む。このように、点群データの幾何情報及び属性情報に基づいて、該点群データの最大許容値を適応的に決定し、それによって、点群データを階層化する第1構文要素の値の範囲が規定され、さらに符号化側と復号側で、ユーザによって設定されたLOD区分層数を検査することができ、ユーザによって設定された区分層数と実際の区分層数との一致性を増加させることができる。
【0187】
いくつかの実施例では、モートンコードに基づいてLOD区分を実現する場合、点群データの属性情報に基づいて、点群データを階層化する最大許容値を適応的に決定することができ、即ちステップS202は以下のステップによって実現され得、図2Bを参照すると、図2Bは、本願の例示的実施例による点群階層化方法の別の実現プロセスの概略図であり、以下の説明を行う。
【0188】
ステップS221において、ルートノードの長さ、幅及び高さの値を決定する。
【0189】
ここで、ルートノードは点群における最も深いノードを表し、バウンディングボックスで表すことができる。
【0190】
いくつかの可能な実現形態では、以下のステップによって実現され得る。
【0191】
第1ステップにおいて、前記点群の幾何情報に基づいて、前記点群のバウンディングボックスを決定する。
【0192】
ここで、点群データの点群法線ベクトル、曲率、点群密度、点群表面粗さ、点群重心、点群重み重心、点群共分散及び点群相互共分散などの幾何情報を符号化することで、点群の座標情報を決定することができ、次に、該座標情報に基づいて点群データを囲む立方体のサイズを決定することができ、それによってバウンディングボックスの寸法を得る。ここで、バウンディングボックスの寸法は、バウンディングボックスの長さ、幅、高さ及び対角線の長さなどを含む。
【0193】
第2ステップにおいて、バウンディングボックスに基づいて、前記点群のルートノードを決定し、前記点群のルートノードの長さ、幅及び高さの値を得る。
【0194】
ここで、まず、前記バウンディングボックスの寸法における予め設定された条件を満たす目標長さを決定し、例えば、前記バウンディングボックスの最長辺の寸法を前記目標長さとして決定する。予め設定された条件は、点群を階層化する現在の方式にマッチングする最長の寸法であると理解することができる。例えば、サンプリング距離に基づいて点群データに対してLOD階層化を行うことを実現する方式では、予め設定された条件は、バウンディングボックスにおける最長の対角線、即ち、バウンディングボックスにおける距離が最も遠い2つの頂点間の接続線である。モートンコードに基づいて点群データに対してLOD階層化を行うことを実現する方式では、予め設定された条件は、バウンディングボックスの最長辺であり、この辺の長さを点群ビットストリームのルートノードの長さとする。
【0195】
【0196】
ステップS222において、前記点群の幾何情報に基づいて、右シフトの第1パラメータの値を決定する。
【0197】
ここで、点群の幾何情報に基づいて、点群を階層化する右シフトの第1パラメータの値、例えば、ユーザによって入力される初期サンプリング距離を決定する。いくつかの可能な実現形態では、幾何情報において、点群の初期サンプリング距離を決定し、該初期サンプリング距離を右シフトの第1パラメータの値として設定する。初期サンプリング距離は、ユーザによって設定されてもよく、点群の属性情報に基づいて設定されてもよい。
【0198】
ステップS223において、右シフトの第1パラメータの値とルートノードの長さ、幅及び高さの値に基づいて、前記最大許容値を決定する。
【0199】
ここで、サンプリング距離に基づいて点群データに対するLOD階層化を実現するか、モートンコードに基づいて点群データに対するLOD階層化を実現するかにかかわらず、点群の属性情報を総合的に考慮して点群データを階層化するN層目を決定し、N層目と目標長さとの間の関係を判断することで、最大許容値を設定する。
【0200】
いくつかの可能な実現形態では、点群を区分する最大許容値を決定することは、次の2つの実現方式を含む。
【0201】
方式1において、モートンコードに基づいて点群データに対するLOD階層化を実現する方式は、次のステップによって実現され得る。
【0202】
第1ステップにおいて、ルートノードの次元の最大値を、ルートノードの長さ、幅及び高さの3つの値のうちの最大値に設定する。
【0203】
ここで、属性情報に含まれる点群の初期区分距離、区分総層数及び色空間の変換などのパラメータにより、点群を処理し、最終的にN層目のノードのサイズを決定し、N層目のノードのサイズとルートノードのサイズとの差が比較的小さく、又は両者が等しい場合、N層目が存在する層数を最大許容値として決定する。
【0204】
該ステップでは、モートンコードに基づいてLOD区分を実現するシナリオにおいて、N層目のノードのサイズとルートノードのサイズとの間の大小関係を比較することで、LOD区分可能な最大層数を適応的に決定し、構文要素(lifting_num_detail_levels_minus1)の範囲を明確に規定する。
【0205】
第2ステップにおいて、前記点群の幾何情報に基づいて、右シフトの第2パラメータの値を決定する。
【0206】
ここで、右シフトの第2パラメータの値は、右シフトの第1パラメータの値に対する微調整量であると理解することができ、入力点群を複数のモジュールに細分化した後、各ブロックの初期サンプリング距離を決定して合計し、初期サンプリング距離の和の値を右シフトの第1パラメータと減算することで、即ち右シフトの第2パラメータの値を得ることができる。いくつかの可能な実現形態では、点群データを符号化するとき、まず、点群データを複数の小さなモジュールに区分し、次に、幾何情報において、点群における各ブロックの初期サンプリング距離を決定し、複数のモジュールの初期サンプリング距離を合計し、初期サンプリング距離の和の値と右シフトの第1パラメータとの差を右シフトの第2パラメータとして決定し、即ち、右シフトの第2パラメータは、右シフトの第1パラメータを微調整する調整量であると理解することができる。
【0207】
第3ステップにおいて、前記ルートノードの次元の最大値と、前記右シフトの第1パラメータ及び前記右シフトの第2パラメータとの差を前記最大許容値として設定する。
【0208】
ここで、右シフトの第1パラメータと右シフトの第2パラメータを合計し、例えば、入力された初期区分距離と区分総層数に基づいて、点群を計算し、該初期サンプリング距離の和の値を決定する。本願の例示的実施例では、右シフトの第1パラメータaps.dist2及び入力点群に基づいて右シフトの第2パラメータabh.attr_dist2_deltaを算出し、次に、aps.dist2及びabh.attr_dist2_deltaに基づいて初期右シフトのビット数shiftbits0を算出する。
【0209】
いくつかの可能な実現形態では、次のプロセスによって最大許容値を決定することができる。
【0210】
ステップAにおいて、属性情報のヘッダーファイル関数を決定する。
【0211】
ここで、属性情報に含まれる入力パラメータ(例えば、クラウド初期区分距離、区分総層数及び色空間の変換など)に基づいて、点群データを処理し、該ヘッダーファイル関数(例えば、abh.attr_dist2_deltaを得る)を得る。該ヘッダーファイル関数は、点群データの属性パラメータを表すために使用される。
【0212】
ステップBにおいて、ヘッダーファイル関数の値と属性情報に対応するパラメータ値を加算し、初期サンプリング距離の和の値を得る。
【0213】
ここで、abh.attr_dist2_deltaの値(右シフトの第2パラメータの値に対応する)と属性情報に対応するパラメータ値を加算し、加算して得られた結果を初期右シフトのビット数とする。このようにして、入力された属性情報に基づいて点群データを処理することで、点群を区分する時の初期右シフトのビット数を決定する。
【0214】
ステップCにおいて、ルートノードの次元の最大値を該初期サンプリング距離の和の値と減算し、最大許容値を得る。
【0215】
ここで、ステップCは、次のプロセスによって実現され得る。
【0216】
ステップC1において、初期サンプリング距離の和の値に基づいて、点群を区分するN層目が属するノードを決定する。
【0217】
【0218】
いくつかの可能な実現形態では、N層目が属するノードを決定するプロセスは次のとおりである。
【0219】
まず、初期右シフトのビット数と予め設定された基数に基づいて、点群ビットストリームを階層化する初期層が属するノードの寸法情報を決定する。
【0220】
【0221】
次に、N層目と初期層との間の層数の差を決定する。
【0222】
ここで、初期層が1であると仮定すると、差はN-1である。
【0223】
さらに、層数の差に基づいて初期層が属するノードの寸法情報を調整し、調整済み寸法情報を得る。
【0224】
【0225】
最後に、調整済み寸法情報に基づいて、N層目が属するノードを決定する。
【0226】
【0227】
ステップC2において、N層目が属するノード及びルートノードに基づいて、最大許容値を決定する。
【0228】
ここで、N層目が属するノードの寸法とルートノードの寸法との間の大小関係を比較して、層数の最大値を決定する。
【0229】
いくつかの可能な実現形態では、N層目が属するノード及びルートノードに基づいて、最大許容値を決定するステップは、次のプロセスによって実現され得る。
【0230】
まず、ルートノードの寸法情報を決定する。
【0231】
ここで、ルートノードの寸法情報は、即ちバウンディングボックスの最長辺の長さである。
【0232】
次に、調整済み寸法情報とルートノードの寸法情報との間の第1差を決定する。
【0233】
【0234】
最後に、第1差が第1予め設定された閾値以下である場合、N層目に対応する層数が最大許容値であることを決定する。
【0235】
ここで、第1予め設定された閾値は0に近い整数であり、即ち、第1差が0に近い場合、N層目が属するノードのサイズがルートノードのサイズに非常に近いことを意味し、さらに、N層目に対応する層数が既に点群ビットストリームを階層化する最大層数であることを意味し、このようにして、ノードのサイズがルートノードのサイズに非常に近いN層目に対応する層数を最大許容値とし、点群の属性情報に基づいて構文要素lifting_num_detail_levels_minus1の範囲を適応的に設定することが実現される。
【0236】
方式1では、入力された点群の属性パラメータ集合を使用して点群データを処理し、それによって点群の初期右シフトのビット数を決定し、初期右シフトのビット数に基づいて、初期区分層に対応するノードのサイズを決定し、次に、1層を区分するごとに、初期右シフトのビット数が増加し、しかも区分層に対応するノードのサイズも増加するため、N層目の右シフトのビット数、及びN層目に対応するノードのサイズを決定することができ、最後に、N層目のノードのサイズと目標長さとの間の大小関係を比較することで、最大許容値を設定する。
【0237】
方式2において、サンプリング距離に基づいて点群に対してLOD階層化を行うことを実現する方式では、まず、属性情報における初期サンプリング距離と隣接する2層のサンプリング距離の比を組み合わせることで、N層目のサンプリング距離を決定し、次に、N層目のサンプリング距離と目標長さとの間の大小関係を比較することで、最大許容値を設定し、これは次のステップによって実現され得る。
【0238】
ステップAにおいて、前記ルートノードの長さ、幅及び高さの値に基づいて、前記ルートノードの対角線距離の値を決定する。
【0239】
【0240】
ステップBにおいて、前記ルートノードの対角線距離の値及び前記右シフトの第1パラメータの値に基づいて、前記最大許容値を決定する。
【0241】
いくつかの可能な実現形態では、ステップBは次のステップによって実現され得る。
【0242】
ステップB1において、第1比率を決定する。
【0243】
ここで、第1比率は、前記ルートノードの対角線距離の値と前記右シフトの第1パラメータの値の算術平方根との比率である。例えば、第1層と第2層のサンプリング距離間の比率である。本願の例示的な実施例では、各隣接する2層間のサンプリング距離間の比率は、同じになるように設定されてもよく、例えば、全てPである。他の実施例では、各隣接する2層間のサンプリング距離間の比率も異なるように設定されてもよい。
【0244】
ステップB2において、第1比率の対数値を決定する。
【0245】
ここで、第1比率の対数値は、N層目のサンプリング距離であると理解することができ、バウンディングボックスにおける最長の対角線の長さと第1比率に基づいて、N層目のサンプリング距離を決定することができる。例えば、初期サンプリング距離に第1比率を乗じ、即ち次の層のサンプリング距離を決定することができ、このように類推して、N層目のサンプリング距離を決定することができる。
【0246】
いくつかの可能な実現形態では、点群の幾何情報に基づいて、隣接する詳細レベルのサンプリング距離間の第1比率を決定し、点群の幾何情報における点群座標のまばらさに基づいて、第1比率を設定する。該第1比率は、1より大きい任意の数に設定されてもよく、これにより、点群を階層化するプロセスで、点群に対する収集が層数の増加に伴い、層ごとにまばらになることを保証する。
【0247】
ステップB3において、前記対数値を前記最大許容値として決定する。
【0248】
ここで、前記対数値に対応する基数は、隣接する詳細レベルのサンプリング距離間の比率として設定される。いくつかの実施例では、N層目のサンプリング距離とバウンディングボックスにおける最長の対角線の長さとの大小を比較することで、N層目のサンプリング距離がバウンディングボックスにおける最長の対角線の長さに非常に近いと、N層目が点群を階層化する最後の層であり、即ちN層目に対応する層数が最大許容値であることを意味する。
【0249】
いくつかの例示的な実施例では、距離に基づいてLOD区分を実現する場合、バウンディングボックスの最長の対角線によって最大許容値を設定することができ、これは以下のプロセスによって実現され得る。
【0250】
第1ステップにおいて、バウンディングボックスにおける互いに垂直な3つの辺の長さを決定する。
【0251】
ここで、バウンディングボックスが立方体である場合、バウンディングボックスにおける互いに垂直な3つの辺は、立方体の長さ、幅及び高さであると理解することができる。
【0252】
第2ステップにおいて、3つの辺の長さに基づいて、最長の対角線の長さを決定する。
【0253】
【0254】
上記の第1ステップと第2ステップにより、LODを距離に基づいてLODを区分することが実現される場合、バウンディングボックスにおける互いに垂直な3つの辺の長さを使用して最長の対角線の長さを決定し、即ち最大許容値を設定するための目標長さを得ることができる。
【0255】
いくつかの例示的な実施例では、距離に基づいてLOD区分を実現する場合、隣接する2層のサンプリング距離及びサンプリング距離比により、N層目のサンプリング距離を決定することができ、これは以下のプロセスによって実現され得る。
【0256】
第1ステップにおいて、少なくとも隣接する2層の2つのサンプリング距離を取得し、サンプリング距離集合を得る。
【0257】
ここで、属性情報に含まれる初期サンプリング距離とサンプリング層の総数を解析することで、複数の隣接する層のサンプリング距離を決定する。例えば、第1層と第2層のサンプリング距離、第3層と第4層のサンプリング距離、第5層と第6層のサンプリング距離などをそれぞれ取得し、サンプリング距離集合を形成する。つまり、該サンプリング距離集合は、複数の隣接する層のサンプリング距離を含む。
【0258】
第2ステップにおいて、サンプリング距離集合内の隣接する2層のサンプリング距離間の比率を決定し、予め設定されたサンプリング距離比を得る。
【0259】
ここで、サンプリング距離集合内の隣接する2層のサンプリング距離に対して比率を求め、それによって隣接する2層間のサンプリング距離の比を得る。本願の例示的な実施例では、各隣接する2層間のサンプリング距離の比は同じであり、該同じ比を予め設定されたサンプリング距離比とする。該予め設定された距離比は、隣接する2層のサンプリング距離に対して比率を求めることによって得られてもよく、予め設定されてもよい。
【0260】
第3ステップにおいて、予め設定されたサンプリング距離比及び属性情報における初期サンプリング距離に基づいて、N層目のサンプリング距離を決定する。
【0261】
【0262】
本願の例示的な実施例では、属性情報において隣接する2層のサンプリング距離を取得することで、サンプリング距離比を決定し、初期サンプリング距離を組み合わせて、N層目のサンプリング距離を決定する。このようにして、距離に基づいてLOD区分を実現する場合、各層のサンプリング距離の決定を実現し、それによって最大許容値を設定することができる。
【0263】
いくつかの例示的な実施例では、距離に基づいてLOD区分を実現する場合、N層目のサンプリング距離と目標長さとの間の関係を判断することで、最大許容値を設定することができ、これは以下のプロセスによって実現され得る。
【0264】
第1ステップにおいて、N層目のサンプリング距離と目標長さとの間の第2差を決定する。
【0265】
【0266】
第2ステップにおいて、第2差が第2予め設定された閾値以下である場合、N層目に対応する層数が前記最大許容値であることを決定する。
【0267】
ここで、第2予め設定された閾値は、0に近い正の数であり、第1予め設定された閾値と同じであっても異なってもよい。第2差が第2予め設定された閾値以下である場合、N層目のサンプリング距離がバウンディングボックスの最長の対角線の長さに非常に近いことを意味し、それによってN層目が点群ビットストリームを階層化する最後の層であることを意味するため、N層目に対応する層数を最大許容値とすることができる。
【0268】
方式2では、まず、受信された設定命令に応答して、最大許容値の範囲内で、第1構文要素の値を決定する。即ち、ユーザが入力した層数の設定命令を受信する場合、該最大許容値内で、1つの層数を第1構文要素の値として選択することができる。例えば、最大許容値が[0,20]である場合、18を第1構文要素の値として選択することができる。次に、第1構文要素の値に基づいて、点群を区分する。このようにして、本願の例示的な実施例では、点群データの幾何情報と属性情報に基づいて、該点群データの区分可能な最大層数を適応的に決定し、それによって点群データを階層化する最大許容値が規定され、さらに符号化側と復号側で、ユーザによって設定されたLOD区分層数を検査することができ、ユーザによって設定された区分層数と実際の区分層数との一致性を増加させることができる。
【0269】
いくつかの例示的な実施例では、点群データを階層化する最大許容値を設定した後、符号化側と復号側で、ユーザによって設定されたLOD区分層数を検査することができ、システムの一致性を増加させ、即ち前記最大許容値に基づいて、前記点群ビットストリームを区分した後、前記方法は、さらに次のプロセスを含む。
【0270】
第1ステップにおいて、入力された、点群を階層化する予め設定された層数を取得する。
【0271】
ここで、符号化側又は復号側で、ユーザが点群を階層化する場合、ユーザが点群ビットストリームを階層化する予め設定された層数を取得することができる。例えば、点群ビットストリームを階層化するユーザによって設定された予め設定された層数は30である。
【0272】
第2ステップにおいて、最大許容値に基づいて、予め設定された層数の有効性を決定する。
【0273】
ここで、予め設定された層数が最大許容値以内であるか否かを判断し、予め設定された層数が最大許容値以内であると、該予め設定された層数が正当であると決定し、即ち該予め設定された層数は利用可能なものであり、予め設定された層数が最大許容値以内にないと、該予め設定された層数が無効であると決定し、即ち該予め設定された層数は利用不可なものである。具体的な例では、予め設定された層数が30であり、最大許容値が21であると、予め設定された層数が無効であることを意味する。
【0274】
第3ステップにおいて、予め設定された層数の有効性が予め設定された層数が最大許容値以下であることを示す場合、予め設定された層数に基づいて点群を階層化する。
【0275】
ここで、予め設定された層数が最大許容値以下であり、即ち予め設定された層数が最大許容値以内にあることは、予め設定された層数が利用可能なものであることを意味し、このように、該予め設定された層数に基づいて点群を階層化することができる。このようにして、符号化側と復号側で、ユーザによって設定されたLOD区分層数を検査することができ、それによってユーザによって設定された期待のLOD区分層数と実際のLOD区分層数との一致性を向上させる。
【0276】
いくつかの実施例では、点群の圧縮符号化プロセスが図3のように示され、図3は、本願の例示的な実施例による点群圧縮符号化プロセスの概略図であり、図3に示すステップを参照して以下の説明を行う。
【0277】
ステップS301において、点群を幾何情報及び各点に対応する属性情報に区分する。
【0278】
ここで、幾何に基づく点群圧縮符号化(G-PCC:Geometry-based Point Cloud Compression)の点群のエンコーダフレームワークでは、点群の幾何情報及び各点に対応する属性情報が別々に符号化される。
【0279】
ステップS302において、幾何情報に対して座標変換を行う。
【0280】
ここで、点群がすべて1つのバウンディングボックス(bounding box)に含まれるように、幾何情報に対して座標変換を行う。
【0281】
ステップS303において、座標変換後の幾何情報に対してボクセル化を行う。
【0282】
ここで、座標変換後の幾何情報に対してボクセル化を行うことは,座標変換後の幾何情報を量子化することであると理解することができ、この量子化ステップは主にスケーリングの役割を果たし、量子化及び丸めにより、一部の点の幾何情報は同じになり、パラメータに基づいて重複点を取り去るかどうかを決定し、量子化を行って重複点を取り去る。
【0283】
ステップS304において、バウンディングボックスに対して八分木区分(Octree division)を行う。
【0284】
ここで、bounding boxに対して八分木区分を行う。八分木に基づく幾何情報符号化フレームワークでは、バウンディングボックスを8つのサブ立方体に8等分し、空でない(点群における点を含む)サブ立方体を8等分し続け、区分して得られたリーフノードが1x1x1の単位立方体である時まで区分を停止し、リーフノードにおける点を符号化し、バイナリビットストリームを生成する。
【0285】
ステップS305において、リーフノードに対して算術符号化を行い、複数の交点を得る。
【0286】
ここで、リーフノードに対してサーフェスフィッティングを行い、サーフェスフィッティングは、得られた幾何情報のバイナリビットストリームに対して幾何再構成を行うために使用される。トライアングルスープ(trisoup:triangle soup)に基づく幾何情報符号化フレームワークでは、同様にまず八分木区分を行う必要があるが、八分木に基づく幾何情報符号化とは異なり、該方法では、点群を辺の長さが1×1×1の単位立方体に段階的に区分する必要がなく、サブブロック(block)の辺の長さがWであるように区分する時に区分を停止し、各サブブロックにおける点群の分布によって形成される表面に基づいて、該表面とサブブロックの12つの辺によって生成される最大12個の交点(vertex)を得る。各サブブロックの交点座標を順次符号化し、バイナリビットストリームを生成する。
【0287】
ステップS306において、各サブブロックの交点座標を符号化し、バイナリビットストリームを生成する。
【0288】
ここで、各サブブロックの交点座標を符号化し、幾何ビットストリームを生成する。
【0289】
以上のステップS301~ステップS306は幾何情報に対する符号化プロセスを完了し、幾何符号化が完了した後、幾何情報を再構成し、即ちステップS307に進む。
【0290】
ステップS307において、幾何情報を再構成する。
【0291】
ここで、幾何情報を再構成することは、符号化済みのビットストリームを復号し、復号後の幾何情報、即ち再構成された幾何情報を再取得することであると理解することができる。
【0292】
本願の例示的な実施例では、属性符号化は、主に色情報に対して実行される。
【0293】
ステップS308において、属性情報における色情報をRGB色空間からYUV色空間に変換する。
【0294】
ステップS309において、再構成された幾何情報を使用して点群を再着色し、符号化されない属性情報を再構成された幾何情報に対応させる。
【0295】
ここで、色情報符号化では、主に2つの変換方法があり、1つの変換方法は、詳細レベル区分モジュール(LOD)310の生成において、LOD区分に依存する距離に基づくリフティング変換を実現することであり、もう1つの変換方法は、領域適応階層化変換(RAHT:Region Adaptive Hierarchal Transform)311を直接行うことであり、これらの2つの方法は、いずれも色情報を空間領域から周波数領域に変換し、変換によって高周波係数と低周波係数を得る。最後に、係数を量子化及び符号化し、バイナリビットストリームを生成する。
【0296】
ステップS312において、色情報を空間領域から周波数領域に変換し、量子化のための高周波係数及び低周波係数を得る。
【0297】
ステップS313において、量子化結果に対して算術符号化を行う。
【0298】
ステップS314において、算術符号化の結果に基づいて、属性ビットストリームを生成する。
【0299】
上記のステップS308~S314は、属性情報の符号化プロセスを実現し、属性情報の符号化は、予測モード、リフティングモード及びRAHTモードの3つのモードに分けられる。予測モードとリフティングモードについては、点群に対してLOD区分を行う必要がある。LODとは、ある方式に基づいて点群を一連のエンハンスメント層と詳細層に区分することであり、図4に示すように、図4は本願の例示的な実施例によるLOD区分を行う実現プロセスの概略図であり、図4を参照して以下の説明を行う。
【0300】
点集合401(LOD1)については、点群詳細情報を表す集合A1と、点群の骨組情報を表す点集合402(LOD2)とに分けられる。次に、点集合402については、点群詳細情報を表す集合A2と、点群の骨組情報を表す点集合403(LOD3)に分けられる。
【0301】
関連技術では、LODの区分層数については、規定されなく、ユーザによって手動で設定されるが、同時にLODの区分層数の範囲も規定されない。G-PCCの汎用テスト条件では、往々にしてLODの区分層数が1つの比較的大きい数に設定され、設定値が常に実際の区分層数と符合しないことをもたらす。
【0302】
これに基づいて、本願の例示的な実施例は、点群階層化方法を提供し、構文要素lifting_num_detail_levels_minus1パラメータの最大範囲を制限し、lifting_num_detail_levels_minus1の最大値MAX_minus1を定義し、その区間が0~MAX_minus1である。
【0303】
図5は、本願の例示的実施例によるモートンコードに基づいてLOD区分を行う構造的概略図であり、図5を参照して以下の説明を行う。
【0304】
図5におけるボックス501は点群のバウンディングボックスを表し、破線502はバウンディングボックスの最長辺を辺とする立方体である。
【0305】
いくつかの実施例では、点群の圧縮プロセスで、幾何情報の符号化に基づいて点群のバウンディングボックスのサイズを得ることができ、最長辺に基づいて点群のルートノードである1つの立方体を構築する。
【0306】
いくつかの可能な実現形態では、モートンコード右シフトに基づくLOD生成プロセスで、まずaps.dist2と入力点群に基づいてabh.attr_dist2_deltaを算出し、次にaps.dist2とabh.attr_dist2_deltaに基づいて初期右シフトのビット数shiftbits0を算出し、式(3)に示すように、
【数3】
【0307】
【0308】
【数4】
【0309】
それによって式(5)を得ることができる。
【数5】
【0310】
このように、LODの最大区分層数はmax(N)であり、式(6)に示すように、
【数6】
Lifting_num_detail_levels_minus1について、最大値はmax(N)-1であるべきであり、式(7)に示すように、
【数7】
【0311】
本願の例示的な実施例では、点群の内容に基づいてLOD区分可能な最大層数を適応的に算出し、構文要素lifting_num_detail_levels_minus1の範囲が明確に規定され、符号化側と復号側で、ユーザによって設定されたlevelOfDetailCountパラメータ(LOD区分層数)を検査することができ、システムの一致性を増加させる。
【0312】
いくつかの実施例では、距離に基づくLOD区分のシナリオにおいて、LOD区分の最大層数を設定するプロセスは図6のように示され、図6は本願の例示的実施例による距離に基づいてLOD区分を行う構造的概略図であり、図6を参照して以下の説明を行う。
【0313】
【数8】
【0314】
【0315】
【0316】
構文要素Lifting_num_detail_levels_minus1について、最大値MAX_minus1はmax(N)-1であるべきであり、式(9)のように表すことができる。
【数9】
【0317】
【数10】
本願の例示的な実施例では、点群の内容に基づいてLOD区分可能な最大層数を適応的に算出し、構文要素lifting_num_detail_levels_minus1の範囲が明確に規定され、それによって符号化側で、ユーザによって設定されたLOD区分層数を検査することができ、ユーザによって設定された期待のLOD区分層数と実際のLOD区分層数との一致性を向上させる。
【0318】
図7Aに示すように、本願の実施例は、デコーダ1を提供し、該デコーダは、
点群ビットストリームを受信するように構成される第1受信モジュール701であって、前記点群ビットストリームは前記点群の幾何情報と属性情報を含む、第1受信モジュール701と、
前記点群ビットストリームに含まれる第1構文要素の最大許容値を決定するように構成される第1決定モジュール702と、
前記点群ビットストリームを解析し、前記最大許容値に基づいて、前記第1構文要素の値を決定するように構成される第1解析モジュール703と、
前記第1構文要素の値に基づいて、前記属性情報を復号するプロセスにおける詳細レベルの数を決定するように構成される第2決定モジュール704と、
前記詳細レベルの数及び前記点群の幾何情報に基づいて、前記属性情報を復号し、前記点群ビットストリームの再構成された点群を取得するように構成される第1復号モジュール705と、を含む。
【0319】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、前記点群ビットストリームを解析し、適合性パラメータを取得し、前記適合性パラメータと前記最大許容値との間の対応関係に基づいて、前記最大許容値を決定するように構成され、ここで、前記適合性パラメータは、少なくともプロファイル、階層、及びレベルのうちの1つを含む。
【0320】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、前記最大許容値を予め設定された定数値に設定するように構成され、ここで、前記定数値は0より大きい整数である。
【0321】
本願のいくつかの実施例では、前記定数値は0より大きく、且つ予め設定された閾値以下の整数であることをさらに含む。
【0322】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、前記点群ビットストリームを解析し、ルートノードの長さ、幅及び高さの値を決定し、前記点群ビットストリームを解析し、右シフトの第1パラメータの値を決定し、前記右シフトの第1パラメータの値と前記ルートノードの長さ、幅及び高さの値に基づいて、前記最大許容値を決定するように構成される。
【0323】
本願のいくつかの実施例では、前記第1解析モジュール703は、さらに、前記点群ビットストリームを解析し、前記点群ビットストリームを表すための初期サンプリング距離を決定し、前記初期サンプリング距離を前記右シフトの第1パラメータの値として決定するように構成される。
【0324】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、
前記点群ビットストリームに含まれる幾何情報を解析し、前記ルートノードの長さ、幅及び高さの値を決定するように構成される。
【0325】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、
前記幾何情報におけるユニットヘッダ情報を解析し、前記ルートノードの長さ、幅及び高さの値を決定するように構成される。
【0326】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、前記ルートノードの次元の最大値を前記ルートノードの長さ、幅及び高さの3つの値のうちの最大値に設定し、前記点群ビットストリームを解析し、右シフトの第2パラメータの値を決定し、前記ルートノードの次元の最大値と前記右シフトの第1パラメータ及び前記右シフトの第2パラメータとの差を、前記最大許容値として設定するように構成される。
【0327】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、前記点群ビットストリームを解析し、前記点群ビットストリームにおける各ブロックの初期サンプリング距離を決定し、前記各ブロックの初期サンプリング距離の和を計算し、初期サンプリング距離の和の値を得、前記初期サンプリング距離の和の値と前記右シフトの第1パラメータとの差を前記右シフトの第2パラメータとして決定するように構成される。
【0328】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、前記ルートノードの長さ、幅及び高さの値に基づいて、前記ルートノードの対角線距離の値を決定し、前記ルートノードの対角線距離の値及び前記右シフトの第1パラメータの値に基づいて、前記最大許容値を決定するように構成される。
【0329】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、第1比率を決定し、前記第1比率は前記ルートノードの対角線距離の値と前記右シフトの第1パラメータの値の算術平方根との比率であり、前記第1比率の対数値を決定し、前記対数値を前記最大許容値として決定するように構成され、前記対数値に対応する基数は、隣接する詳細レベルのサンプリング距離間の比率として設定される。
【0330】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、前記点群を解析し、前記隣接する詳細レベルのサンプリング距離間の前記第1比率を決定するように構成される。
【0331】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、前記最大許容値に基づいて、前記第1構文要素のビットストリームにおける対応するビット数Nを決定し、前記点群ビットストリームからN個のビットを読み取り、前記N個のビットを前記第1構文要素の値に変換するように構成される。
【0332】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、符号なしバイナリ数を使用して前記最大許容値を表すために必要な最小ビット数を決定し、前記最小ビット数を前記ビット数Nとして決定するように構成される。
【0333】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、前記第1構文要素の値を前記N個のビットの符号なしバイナリ数に対応する数に設定するように構成される。
【0334】
本願のいくつかの実施例では、前記第1決定モジュール702は、さらに、前記第1構文要素の値と前記最大許容値との間の大小を比較し、前記第1構文要素の値が前記最大許容値より大きい場合、異常エラー報告情報を生成するように構成される。
【0335】
本願のいくつかの実施例では、前記第1復号モジュール705は、さらに、前記詳細レベルの数及び前記幾何情報に基づいて、前記点群ビットストリームにおける1つ又は複数の詳細レベルの再構成値を決定し、前記1つ又は複数の詳細レベルの再構成値に基づいて、前記点群の再構成された点群を取得するように構成される。
【0336】
本願のいくつかの実施例では、前記第1復号モジュール705は、さらに、
前記詳細レベルの数及び前記幾何情報に基づいて、前記点群ビットストリームに対して詳細レベルの区分を行い、前記1つ又は複数の詳細レベルの再構成値を取得するように構成される。
【0337】
実際の応用では、図7Bに示すように、本願の実施例は、デコーダをさらに提供し、該デコーダは、第1メモリ721及び第1プロセッサ722を含み、前記第1メモリ721は、第1プロセッサ722で実行可能なコンピュータープログラムが記憶され、前記第1プロセッサ722は、前記プログラムを実行するとき、デコーダ側の点群階層化方法を実現する。
【0338】
図8Aに示すように、本願の実施例は、エンコーダ2を提供し、該エンコーダ2は、
点群の幾何情報と属性情報を取得するように構成される第1取得モジュール801と、
第1構文要素の最大許容値を決定するように構成される第1決定モジュール802であって、前記第1構文要素は前記点群の属性情報を符号化するプロセスにおける詳細レベルの数を表す、第1決定モジュール802と、
前記最大許容値及び前記点群の幾何情報に基づいて、前記点群に対して詳細レベルの区分を行い、前記第1構文要素の値を決定するように構成される第1区分モジュール803と、
前記点群に対する詳細レベルの区分に基づいて、前記点群を符号化し、ビットストリームを生成するように構成される第1符号化モジュール804と、
前記第1構文要素の値を符号化し、符号化ビットをビットストリームに書き込むように構成される第2符号化モジュール805と、を含む。
【0339】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記点群の適合性パラメータを決定し、ここで、前記適合性パラメータは少なくともプロファイル、階層、及びレベルのうちの1つを含み、前記適合性パラメータと前記最大許容値との間の対応関係に基づいて、前記最大許容値を決定し、前記適合性パラメータを符号化し、符号化ビットを前記ビットストリームに書き込むように構成される。
【0340】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、エンコーダの構成パラメータに基づいて、前記適合性パラメータを設定するように構成される。
【0341】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、セッションネゴシエーションプロセスで決定されたパラメータに基づいて、前記適合性パラメータを設定するように構成される。
【0342】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記最大許容値を予め設定された定数値に設定するように構成され、ここで、前記定数値は0より大きい整数である。
【0343】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記エンコーダの構成パラメータに基づいて、前記予め設定された定数値を設定するように構成され、ここで、前記定数値は、0より大きく、且つ予め設定された閾値以下の整数である
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、ルートノードの長さ、幅及び高さの値を決定し、前記点群の幾何情報に基づいて、右シフトの第1パラメータの値を決定し、前記右シフトの第1パラメータの値と前記ルートノードの長さ、幅及び高さの値に基づいて、前記最大許容値を決定するように構成される。
【0344】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記点群の幾何情報において、前記点群を表すための初期サンプリング距離を決定し、前記初期サンプリング距離を前記右シフトの第1パラメータの値として決定するように構成される。
【0345】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記点群の幾何情報に基づいて、前記点群のバウンディングボックスを決定し、前記バウンディングボックスに基づいて、前記点群のルートノードを決定し、前記点群のルートノードの長さ、幅及び高さの値を得るように構成される。
【0346】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記バウンディングボックスの寸法における予め設定された条件を満たす目標長さを決定し、前記目標長さに基づいて、前記点群のルートノードを作成するように構成される。
【0347】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記バウンディングボックスの最長辺の寸法を前記目標長さとして決定するように構成される。
【0348】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記ルートノードの長さ、幅及び高さの値を符号化し、符号化ビットを前記ビットストリームに書き込むように構成される。
【0349】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記符号化ビットを前記ビットストリームにおける幾何データユニットヘッダ情報に書き込むように構成される。
【0350】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記ルートノードの長さ、幅及び高さの3つの値のうちの最大値を、前記ルートノードの次元の最大値に設定し、前記点群の幾何情報に基づいて、右シフトの第2パラメータの値を決定し、前記ルートノードの次元の最大値と、前記右シフトの第1パラメータ及び前記右シフトの第2パラメータとの差を前記最大許容値として設定するように構成される。
【0351】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記幾何情報において、前記点群における各ブロックの初期サンプリング距離を決定し、前記各ブロックの初期サンプリング距離の和を計算し、初期サンプリング距離の和の値を得、前記初期サンプリング距離の和の値と前記右シフトの第1パラメータとの差を前記右シフトの第2パラメータとして決定するように構成される。
【0352】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記ルートノードの長さ、幅及び高さの値に基づいて、前記ルートノードの対角線距離の値を決定し、前記ルートノードの対角線距離の値及び前記右シフトの第1パラメータの値に基づいて、前記最大許容値を決定するように構成される。
【0353】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、第1比率を決定し、ここで、前記第1比率は前記ルートノードの対角線距離の値と前記右シフトの第1パラメータの値の算術平方根との比率に等しく、前記第1比率の対数値を計算し、前記最大許容値を前記対数値として設定するように構成され、ここで、前記対数値の演算において、基数は隣接する詳細レベルのサンプリング距離の比率として設定される。
【0354】
本願のいくつかの実施例では、前記第1符号化ジュール804は、さらに、前記点群の幾何情報に基づいて、前記隣接する詳細レベルのサンプリング距離間の前記第1比率を決定するように構成される。
【0355】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記最大許容値に基づいて、前記第1構文要素がビットストリームにおいて占有するビット数Nを決定し、前記第1構文要素の値をN個のビットに変換し、前記N個のビットを前記ビットストリームに書き込むように構成される。
【0356】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、符号なしバイナリ数を使用して前記最大許容値を表すために必要な最小ビット数を決定し、前記最小ビット数を前記ビット数Nとして決定するように構成される。
【0357】
本願のいくつかの実施例では、前記第1決定モジュール802は、さらに、前記第1構文要素の値を前記N個の符号なしバイナリ数に対応するビットに変換するように構成される。
【0358】
本願のいくつかの実施例では、前記第1構文要素の値は前記最大許容値以下である。
【0359】
本願のいくつかの実施例では、前記第1区分モジュール803は、さらに、前記点群のモートンコード集合を取得し、前記モートンコード集合及び前記幾何情報に基づいて、前記最大許容値の範囲内で、前記第1構文要素の値を決定し、前記第1構文要素の値に基づいて、前記点群に対して詳細レベルの区分を行うように構成される。
【0360】
実際の応用では、図8Bに示すように、本願の実施例は、エンコーダをさらに提供し、該エンコーダは、
第2メモリ821及び第2プロセッサ822を含み、
前記第2メモリ821は、第2プロセッサ822で実行可能なコンピュータープログラムが記憶され、前記第2プロセッサ822は、前記プログラムを実行するとき、エンコーダ側の点群階層化方法を実現する。
【0361】
上記の装置の実施例の説明は、上記の方法の実施例の説明と同様であり、方法の実施例と同様の有益な効果を有する。本願の装置の実施例で開示されない技術的詳細については、本願の方法の実施例の説明を参照して理解される。
【0362】
対応して、本願の実施例は、コンピュータープログラムが記憶される記憶媒体を提供し、該コンピュータープログラムが第1プロセッサによって実行されるとき、エンコーダの点群層化方法を実現し、又は該コンピュータープログラムが第2プロセッサによって実行されるとき、デコーダの点群階層化方法を実現する。
【0363】
ここで、指摘すべきこととして、上記の記憶媒体及び装置の実施例の説明は、上記の方法の実施例の説明と同様であり、方法の実施例と同様の有益な効果を有する。本願の記憶媒体及び装置の実施例で開示されない技術的詳細については、本願の方法の実施例の説明を参照して理解される。
【0364】
以上の説明は、本願の実施形態だけであるが、本願の保護範囲はこれに限定されなく、いかなる当業者は本願で開示される技術範囲で、変化又は入れ替えを容易に想到し、これらの変化又は入れ替えが全て本願の保護範囲に含まれるべきである。したがって、本願の保護範囲は、特許請求の範囲の保護範囲に従うべきである。
【産業上の利用可能性】
【0365】
本願の例示的実施例における点群階層化方法は、点群ビットストリームを受信することであって、前記点群ビットストリームは前記点群ビットストリームの幾何情報と属性情報を含む、ことと、前記点群ビットストリームに含まれる第1構文要素の最大許容値を決定することと、前記点群ビットストリームを解析し、前記最大許容値に基づいて、前記第1構文要素の値を決定することと、前記第1構文要素の値に基づいて、前記属性情報を復号するプロセスにおける詳細レベルの数を決定することと、前記詳細レベルの数及び前記幾何情報に基づいて、前記属性情報を復号し、前記点群ビットストリームの再構成された点群を取得することと、を含む。
図1A
図1B
図2A
図2B
図3
図4
図5
図6
図7A
図7B
図8A
図8B