(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024102344
(43)【公開日】2024-07-30
(54)【発明の名称】点群符号化方法、点群復号化方法、符号器、復号器及びコンピュータ記憶媒体
(51)【国際特許分類】
G06T 9/00 20060101AFI20240723BHJP
【FI】
G06T9/00
【審査請求】有
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2024079614
(22)【出願日】2024-05-15
(62)【分割の表示】P 2021578172の分割
【原出願日】2020-05-15
(31)【優先権主張番号】62/870,553
(32)【優先日】2019-07-03
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】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)【代理人】
【識別番号】100120385
【弁理士】
【氏名又は名称】鈴木 健之
(72)【発明者】
【氏名】チャン、ウェイ
(72)【発明者】
【氏名】フオ、チュンイェン
(72)【発明者】
【氏名】マー、イェンチュオ
(57)【要約】 (修正有)
【課題】符号化及び復号化プロセスにおける座標処理順序を適応的に変更し、符号化/復号化の効率を大幅に向上させる点群符号/復号化方法、符号器/復号器及び記憶媒体を提供する。
【解決手段】符号器は、処理順序に対応する座標軸順序インデックスを確定する。符号器は座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込み、処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得し、符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込む。復号器はビットストリームを解析して座標軸順序インデックスを取得する。復号器は座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定し、ビットストリームを解析して点群データの復元データを取得し、処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定する。
【選択図】
図10
【特許請求の範囲】
【請求項1】
点群符号化方法であって、符号器に適用され、
点群符号化プロセスにおける点群データの処理順序を確定することと、
前記処理順序に対応する座標軸順序インデックスを確定することと、
前記座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込むことと、
前記処理順序に基づいて前記点群データを処理して、符号化しようとする点群データを取得することと、
符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込むこととを含み、
前記処理順序は前記点群データの3次元座標の座標軸処理順序を示し、前記点群データは点群におけるすべてのデータ又は一部のデータであり、
前記処理順序に対応する座標軸順序インデックスを確定することは、
予め設定されたインデックスと処理順序との対応表に基づいて、前記処理順序に対応する前記座標軸順序インデックスの値を設定することを含む、
ことを特徴とする点群符号化方法。
【請求項2】
前記点群符号化プロセスにおける点群データの処理順序を確定することは、
前記点群データにおけるノードのモートンコードに基づいて、前記処理順序を確定することを含む、
ことを特徴とする請求項1に記載の点群符号化方法。
【請求項3】
前記処理順序は、Z-Y-X順序、X-Y-Z順序、X-Z-Y順序、Y-Z-X順序、Z-X-Y順序、及びY-X-Z順序のうちのいずれかであり、X、Y、Zは、前記点群データの3次元座標の座標軸である、
ことを特徴とする請求項1に記載の点群符号化方法。
【請求項4】
前記予め設定されたインデックスと処理順序との対応表は以下を含む、
ことを特徴とする請求項3に記載の点群符号化方法。
【請求項5】
点群復号化方法であって、復号器に適用され、
ビットストリームを解析して座標軸順序インデックスを取得することと、
前記座標軸順序インデックスに基づいて、点群復号化プロセスにおける点群データの処理順序を確定することと、
ビットストリームを解析して前記点群データの復元データを取得することと、
前記処理順序に基づいて、前記復元データの記憶ユニットにおける前記点群データの座標データの位置を確定することとを含み、
前記処理順序は前記点群データの3次元座標の座標軸処理順序を示し、前記点群データは点群におけるすべてのデータ又は一部のデータであり、
前記座標軸順序インデックスに基づいて、点群復号化プロセスにおける点群データの処理順序を確定することは、
予め設定されたインデックスと処理順序との対応表に基づいて、前記座標軸順序インデックスに対応する前記処理順序を確定することを含む、
ことを特徴とする点群復号化方法。
【請求項6】
前記ビットストリームを解析して座標軸順序インデックスを取得することは、
固定長符号を解析して前記座標軸順序インデックスを取得すること、又は、
前記ビットストリームにおけるパラメータセットのデータユニットに対応するビットストリームを解析すること、を含み、
前記パラメータセットの前記データユニットは、前記点群データの復号化に使用されるパラメータを含む、
ことを特徴とする請求項5に記載の点群復号化方法。
【請求項7】
前記処理順序は、Z-Y-X順序、X-Y-Z順序、X-Z-Y順序、Y-Z-X順序、Z-X-Y順序、及びY-X-Z順序のうちのいずれかであり、X、Y、Zは、前記点群データの3次元座標の座標軸である、
ことを特徴とする請求項5に記載の点群復号化方法。
【請求項8】
前記予め設定されたインデックスと処理順序との対応表は以下を含む、
ことを特徴とする請求項7に記載の点群復号化方法。
【請求項9】
少なくとも1つのプロセッサとメモリとを含む符号器であって、
前記メモリは前記少なくとも1つのプロセッサに接続されており、前記メモリに少なくとも1つのコンピュータ実行可能な命令が格納されており、前記少なくとも1つのコンピュータ実行可能な命令は前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
点群符号化プロセスにおける点群データの処理順序を確定することと、
前記処理順序に対応する座標軸順序インデックスを確定することと、
前記座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込むことと、
前記処理順序に基づいて前記点群データを処理して、符号化しようとする点群データを取得することと、
符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込むことと、
を実行させ、
前記処理順序は前記点群データの3次元座標の座標軸処理順序を示し、前記点群データは点群におけるすべてのデータ又は一部のデータであり、
前記処理順序に対応する座標軸順序インデックスを確定するように構成された前記少なくとも1つのプロセッサは、
予め設定されたインデックスと処理順序との対応表に基づいて、前記処理順序に対応する前記座標軸順序インデックスの値を設定するように構成されている、
ことを特徴とする符号器。
【請求項10】
前記点群符号化プロセスにおける点群データの処理順序を確定するように構成された前記少なくとも1つのプロセッサは、
前記点群データにおけるノードのモートンコードに基づいて、前記処理順序を確定するように構成されている、
ことを特徴とする請求項9に記載の符号器。
【請求項11】
前記処理順序は、Z-Y-X順序、X-Y-Z順序、X-Z-Y順序、Y-Z-X順序、Z-X-Y順序、及びY-X-Z順序のうちのいずれかであり、X、Y、Zは、前記点群データの3次元座標の座標軸である、
ことを特徴とする請求項9に記載の符号器。
【請求項12】
前記予め設定されたインデックスと処理順序との対応表は以下を含む、
ことを特徴とする請求項11に記載の符号器。
【請求項13】
少なくとも1つのプロセッサとメモリとを含む復号器であって、
前記メモリは前記少なくとも1つのプロセッサに接続されており、前記メモリに少なくとも1つのコンピュータ実行可能な命令が格納されており、前記少なくとも1つのコンピュータ実行可能な命令は前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
ビットストリームを解析して座標軸順序インデックスを取得することと、
前記座標軸順序インデックスに基づいて、点群復号化プロセスにおける点群データの処理順序を確定することと、
ビットストリームを解析して前記点群データの復元データを取得することと、
前記処理順序に基づいて、前記復元データの記憶ユニットにおける前記点群データの座標データの位置を確定することと、
を実行させ、
前記処理順序は前記点群データの3次元座標の座標軸処理順序を示し、前記点群データは点群におけるすべてのデータ又は一部のデータであり、
前記座標軸順序インデックスに基づいて、点群復号化プロセスにおける点群データの処理順序を確定するように構成された前記少なくとも1つのプロセッサは、
予め設定されたインデックスと処理順序との対応表に基づいて、前記座標軸順序インデックスに対応する前記処理順序を確定するように構成されている、
ことを特徴とする復号器。
【請求項14】
前記ビットストリームを解析して座標軸順序インデックスを取得するように構成された前記少なくとも1つのプロセッサは、
固定長符号を解析して前記座標軸順序インデックスを取得し、又は、
前記ビットストリームにおけるパラメータセットのデータユニットに対応するビットストリームを解析する、ように構成されており、
前記パラメータセットの前記データユニットは、前記点群データの復号化に使用されるパラメータを含む、
ことを特徴とする請求項13に記載の復号器。
【請求項15】
前記処理順序は、Z-Y-X順序、X-Y-Z順序、X-Z-Y順序、Y-Z-X順序、Z-X-Y順序、及びY-X-Z順序のうちのいずれかであり、X、Y、Zは、前記点群データの3次元座標の座標軸である、
ことを特徴とする請求項13に記載の復号器。
【請求項16】
前記予め設定されたインデックスと処理順序との対応表は以下を含む、
ことを特徴とする請求項15に記載の復号器。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の参照]
本出願は、発明の名称を「ビデオデータの符号化及び復号化の方法、装置及びシステム(Method、Apparatus、and System for Encoding and Decoding Video Data)」とする、2019年7月3日に出願された米国特許出願第62/870,553号の優先権を主張し、そのすべての内容が参照として本出願に組み込まれる。
【0002】
本発明の実施形態は、ビデオ符号化及び復号化技術分野に関し、特に点群符号化方法、点群復号化方法、符号器、復号器及びコンピュータ記憶媒体に関する。
【背景技術】
【0003】
幾何に基づいた点群圧縮(geometry-based point cloud compression、G-PCC)の符号器フレームワークにおいて、点群の幾何情報と、各点群に対応する属性情報とが別々に符号化される。幾何情報の符号化が完了した後、幾何情報を再構成する。属性情報の符号化は、再構成された幾何情報に依存する。
【0004】
現在、属性情報の符号化は主に色情報の符号化を対象とする。まず、色情報をRGB色空間からYUV色空間に変換する。その後、再構成された幾何情報を使用して点群を再着色し、符号化されていない属性情報と再構成された幾何情報とを対応させる。色情報の符号化には、主に2つの変換方法がある。1つは、詳細度(level of detail、LOD)分割に依存する距離に基づいたリフティング変換(lifting transform)である。もう1つは、直接に実行されるRAHT(Regional Adaptive hierarchical Transform)である。この二つの方法を介して、色情報を空間領域から周波数領域に変換し、変換によって高周波係数と低周波係数を取得して、最後に係数を量子化し符号化して、2進ビットストリームを生成する。
【0005】
しかしながら、RAHTを実行するとき、どの点群に対しても同じ固定した順序でRAHTを行うことは、RAHTの変換効率を十分に発揮させない。したがって、変換効率が低いという課題が存在しており、それによって、符号化及び復号化の効率が低下する。
【発明の概要】
【0006】
本発明の実施形態は、点群符号化方法、点群復号化方法、符号器、復号器及びコンピュータ記憶媒体を提供する。これによって、符号化及び復号化プロセスにおける座標処理順序を適応的に変更し、さらにRAHTの変換効率を十分に発揮させることができ、変換効率が低いという課題を解決し、符号化及び復号化の効率を大幅に向上させることができる。
【0007】
本発明の実施形態の技術方案は以下のように実現されることができる。
【0008】
第一様態において、本発明の実施形態は点群符号化方法を提供する。当該方法は符号器に適用され、以下の内容を含む。
点群符号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。処理順序に対応する座標軸順序インデックスを確定する。
座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込む。
処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得する。
符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込む。
【0009】
第二様態において、本発明の実施形態は点群復号化方法を提供する。当該方法は復号器に適用され、以下の内容を含む。
ビットストリームを解析して座標軸順序インデックスを取得する。
座標軸順序インデックスに基づいて、点群復号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。
ビットストリームを解析して点群データの復元データを取得する。
処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定する。
【0010】
第三様態において、本発明の実施形態は符号器を提供する。当該符号器は第一確定部分、符号化部分及び変換部分を含む。
上記第一確定部分は、点群符号化プロセスにおける点群データの処理順序を確定し、処理順序に対応する座標軸順序インデックスを確定するように構成されている。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。
上記符号化部分は、座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込むように構成されている。
上記変換部分は、処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得するように構成されている。
上記符号化部分はさらに、符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込むように構成されている。
【0011】
第四様態において、本発明の実施形態は符号器を提供する。当該符号器は第一プロセッサと、第一プロセッサによって実行される命令を格納する第一メモリとを含む。上記命令は第一プロセッサによって実行されると、上記点群符号化方法を実行する。
【0012】
第五様態において、本発明の実施形態は復号器を提供する。当該復号器は解析部分、及び第二確定部分を含む。
上記解析部分は、ビットストリームを解析して座標軸順序インデックスを取得するように構成されている。
上記第二確定部分は、座標軸順序インデックスに基づいて、点群復号化プロセスにおける点群データの処理順序を確定するように構成されている。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。
上記解析部分はさらに、ビットストリームを解析して点群データの復元データを取得するように構成されている。
上記第二確定部分はさらに、処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定するように構成されている。
【0013】
第六様態において、本発明の実施形態は復号器を提供する。当該復号器は第二プロセッサと、第二プロセッサによって実行される命令を格納する第二メモリを含む。上記命令は第二プロセッサによって実行されると、上記点群復号化方法を実行する。
【0014】
第七様態において、本発明の実施形態はコンピュータ可読記憶媒体を提供する。当該コンピュータ可読記憶媒体はコンピュータプログラムを格納する。当該コンピュータプログラムは第一プロセッサによって実行されると、点群符号化方法を実行する。又は、第二プロセッサによって実行されると、点群復号化方法を実行する。
【0015】
本発明の実施形態は点群符号化方法、点群復号化方法、符号器、復号器及びコンピュータ記憶媒体を提供する。符号器は点群符号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。符号器は、処理順序に対応する座標軸順序インデックスを確定する。符号器は座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込む。符号器は処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得する。符号器は符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込む。復号器はビットストリームを解析して座標軸順序インデックスを取得する。復号器は座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。復号器はビットストリームを解析して点群データの復元データを取得する。復号器は処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定する。即ち、本発明の実施形態において、符号化側では、符号器はまず点群データに対応する変換処理の処理順序を確定し、処理順序に基づいてRAHTを実行しながら、処理順序をビットストリームに書き込み、復号器に送信することができる。復号化側では、復号器はビットストリームを解析して、点群データに対応する変換処理の処理順序を取得し、その処理順序に基づいてRAHTを実行することができる。このように、本発明に係る点群符号化方法及び点群復号化方法では、すべての点群データ又は一部の点群データに対して、RAHTを行うには固定した順序を使用せず、ビットストリームにおけるシンタックス要素を用いて処理順序を示す。これにより、符号化及び復号化プロセスにおける座標処理順序を適応的に変更し、さらにRAHTの変換効率を十分に発揮させることができ、変換効率が低いという課題を解決し、符号化及び復号化の効率を大幅に向上させることができる。
【図面の簡単な説明】
【0016】
【
図1】
図1は、点群圧縮(geometry-based point cloud compression、G-PCC)符号化のプロセスを示すブロック図である。
【
図2】
図2は、G-PCC復号化のプロセスを示すブロック図である。
【
図7】
図7は、RAHT(Regional Adaptive hierarchical Transform)を示す概略
図1である。
【発明を実施するための形態】
【0017】
本発明の実施形態の特徴及び技術内容をより詳しく理解できるように、以下、図面を参照しながら本発明の実施形態の実現を詳細に説明する。添付された図面はただ説明するために用いられ、本発明を限定するものではない。
【0018】
本発明の実施形態では、幾何に基づいた点群圧縮(geometry-based point cloud compression、G-PCC)の符号器フレームワークにおいて、入力された3次元画像モデルの点群をスライス(slice)に分割した後、各スライスを独立して符号化する。
【0019】
図1は、点群圧縮(geometry-based point cloud compression、G-PCC)符号化のプロセスを示すブロック図である。
図1のG-PCC符号化のプロセスのブロック図に示されているように、それは点群符号器に適用される。符号化しようとする点群データについて、まずスライス分割により、点群データを複数のスライスに分割する。各スライスでは、点群の幾何情報と、各点群に対応する属性情報とが別々に符号化される。幾何情報の符号化プロセスにおいて、すべての点群が境界ボックス(bounding box)に含まれるように、幾何情報に対して座標変換を行う。その後、主に拡大縮小(scaling)の役割を果たす定量化を行う。定量化の丸めにより、一部の点群の幾何情報が同じになるため、パラメータに基づいて重複点を除去するかどうかを決定する。定量化と重複点の除去というプロセスはボクセル化(voxelization)プロセスとも呼ばれる。次に、境界ボックスに対して八分木分割を行う。八分木に基づいた幾何情報の符号化プロセスにおいて、境界ボックスは8つのサブキューブ(sub-cube)に均等に分割され、非空(点群における点を含む)のサブキューブは、分割によって取得されたリーフノードが1×1×1のユニットキューブ(unit cube)になるまで、8つの均等な部分に分割され続く。リーフノードにおけるノードに対して算術符号化を行って、2進の幾何ビットストリーム(geometry bitstream)、即ち幾何コードストリーム(geometry code stream)を生成する。トライアングルスープ(triangle soup、trisoup)に基づいた幾何情報の符号化プロセスにおいて、まず、八分木分割が行われる。八分木に基づいた幾何情報の符号化とは異なり、当該トライスープ(trisoup)では、点群を辺長が1×1×1のユニットキューブに段階的に分割する必要はなく、点群を辺長がWのブロック(block)に分割した後、分割を停止する。各ブロックにおける点群の分布によって形成された表面に基づいて、その表面とブロックの12個の辺の両方で生成される最大で12個の交点(vertex)を取得する。交点に対して算術符号化(交点に基づく表面フィッティング(surface fitting)を行って、2進の幾何ビットストリーム、即ち幾何コードストリームを生成する。交点は幾何再構成の実現にも使用される。再構成された幾何情報は、点群の属性情報を符号化するときに使用される。
【0020】
属性情報の符号化プロセスにおいて、幾何情報の符号化が完了し、幾何情報が再構成された後、色変換を行う。即ち、色情報(つまり、属性情報)をRGB色空間からYUV色空間に変換する。その後、再構成された幾何情報を使用して点群を再着色し、符号化されていない属性情報と再構成された幾何情報とを対応させる。属性情報の符号化は主に色情報を対象とする。色情報の符号化プロセスには、主に2つの変換方法がある。1つは、詳細度(level of detail、LOD)分割に依存する距離に基づいたリフティング変換(lifting transform)である。もう1つは、直接に実行されるRAHT(Regional Adaptive hierarchical Transform)である。この二つの方法を介して、色情報を空間領域から周波数領域に変換し、変換によって高周波係数と低周波係数を取得して、最後に係数を量子化する(即ち、量子化係数)。最後に、八分木分割と表面フィッティングを経た幾何符号化データと量子化係数処理属性符号化データとをスライス合成し、各ブロックの交点座標を順に符号化(つまり算術符号化)して、2進の属性ビットストリーム、つまり属性コードストリームを生成する。
【0021】
図2は、G-PCC復号化のプロセスを示すブロック図である。
図2のG-PCC復号化のプロセスのブロック図に示されているように、それは点群復号器に適用される。取得された2進ビットストリームに対して、まず、2進ビットストリームにおける幾何ビットストリームと属性ビットストリームとをそれぞれ独立して復号化する。幾何ビットストリームを復号化するとき、算術復号化-八分木合成(octree synthesis)-表面フィッティング-幾何の再構成-逆座標変換を介して、点群の幾何情報を取得する。属性ビットストリームを復号化するとき、算術復号化-逆量子化-LODに基づいたリフティング逆変換(lifting inverse transform)又はRAHTに基づいた逆変換-逆色変換を介して、点群の属性情報を取得する。幾何情報と属性情報に基づいて、符号化しようとする点群データの3次元画像モデルを復元する。
【0022】
【0023】
【0024】
【0025】
図3は、空間符号化を示す概略
図1である。
図4は、空間符号化を示す概略
図2である。
図3と
図4を結びつけて説明する。例示として、上位ビットから下位ビットまでの並べ替えの順序はz、y、x(x|(y<<1)|(z<<2))である。
【0026】
図3は、000000から1111111までの8*8画像の各画素の空間符号化を示している。1次元の2進数を用いて、0~7のx、yの値の位置座標を符号化する。2進座標値(binary coordinate value)をインターリーブ(Interleave)して、2進Z値マップを取得する。数値方向に沿ってz状を接続し、再帰的なz状カーブを生成する。図の各位置で、z値を接続順に置く。実際に、
図3はZ方向に反復的に生成される。00から11まで(図全体に1つのz)、次に0000から1111まで(前のzの各点に1つのzを置く)、そして00000000から111111まで(前のzの各点に1つのzを置く)、毎回2ビットずつ増加し、再帰的に増加する。
【0027】
例示的に、
図4は、2×2、4×4、8×8、及び16×16の空間符号化順序(spatial encoding order)を示しており、そこから、モートンコードの符号化順序は、空間z順に従って実施されることが分かる。
【0028】
図5は、空間符号化を示す概略
図3である。
図6は、空間符号化を示す概略
図4である。
図5と
図6は、3次元に拡張した場合である。
図5と
図6では再帰プロセスが示されており、これにより座標インターリーブが実現される。全体のプロセスとしては、座標値を分散させ続ける。x|(y<<1)|(z<<2)。つまり、各座標値を分散させ、最初にz、次にy、最後にxというように順次にインターリーブしていく。復号化プロセスは、集成プロセス(aggregation process)である。
【0029】
RAHT(Regional Adaptive hierarchical Transform)は、点群データに対して八分木分割を行うことで取得される階層構造(hierarchical structure)に基づいて実行される。八分木の底層から、階層的に変換を行う。
図7は、RAHTを示す概略
図1である。
図7に示されているように、八分木分割が完了した後、ボクセルブロック(voxel block)1が取得される(つまり、
図7における3つの色深度が交互に並ぶ幾何で、各スクエアが点群における点を表す)。最下層からRAHTを実行し、例示として、変換順序はX-Y-Z順序である。
図7に示しているように、まずX方向に沿ってRAHTを行う。X方向に隣接するボクセルブロックがあれば、それらに対してRAHTを行って、隣接する2点の属性値の加重平均(DC係数)と残差(AC係数)を取得する。取得されたDC係数は親ノードのボクセルブロック2の属性情報として存在し、次の層でRAHTが行われる。AC係数は保持され、最後の符号化に使用される。隣接点がない場合、当該ボクセルブロックの属性値は直接に第2層の親ノードに送信される。第2層では、Y方向に沿ってRAHTを行う。Y方向に隣接するボクセルブロックがあれば、それらに対してRAHTを行って、隣接する2点の属性値の加重平均(DC係数)と残差(AC係数)を取得する。その後、第3層では、Z方向に沿ってRAHTを行って、3つの色深度が交互に並ぶ親ノードのボクセルブロック3を、八分木の次の層の子ノードとして取得する。点群全体に親ノードが1つだけになるまで、x、y、及びZ方向に沿ってRAHTを繰り返す。
【0030】
実際に、点群における点をトラバース(traverse)するとき、点群の並べ替えられたモートンコードを使用する。即ち、モートンコードを右に1ビットシフトした後の値が等しいかどうかで、2つの子ノードが同じ親ノードの下にあるかどうかを判断することができる。
【0031】
【0032】
【0033】
【0034】
本発明の実施形態において、RAHTの具体的なステップは以下のようである。
【0035】
(1)点群における点の属性値を第1層のDC係数とし、それらの重みを全部1に設定して、RAHTを開始する。
【0036】
(2)この層において、DC係数とAC係数を対応するインデックスに基づいて、次の層の親層内の親ノードに書き込む。AC係数がない場合は、書き込まない。
【0037】
(3)モートンコードに基づいて並べ替えられた各インデックスに従って、インデックスに対応するDC係数をトラバースする。
【0038】
(4)すべてのDC係数に対応するモートンコードを右に1ビットシフトする。この場合、各DC係数のモートンコードは、その親ノードのモートンコードを表す。
【0039】
(5)
図8は、RAHTを示す概略
図2である。
図8に示されているように、2つのDC係数のモートンコードが同じであるかどうかを判断する。同じである場合、それらは同じ親ノードの下にあることを示す。これらに対してRAHTを行って、取得されたDC係数を次の層の親ノードのDC係数に書き込み、AC係数を次の層の最後のDC係数に書き込み、2つのDC係数の合計の重みを親ノードのDC係数に割り当てる。それらが異なる場合は、このDC係数とその重みを次の層に直接に書き込む。
【0040】
(6) ある層にDC係数が1つだけになるまで、(2)~(5)を繰り返す。
【0041】
(7)最後に、DC係数を量子化して、この層の属性値のDC係数とAC係数を符号化する。
【0042】
相応に、復号器のブロック図において、RAHTの変換順序は逆RAHTに使用される必要がある。
【0043】
以下、復号化プロセスにおけるRAHTについて説明する。
【0044】
復号化プロセスにおけるRAHTは、符号化プロセスにおけるRAHTの逆変換である。符号化プロセスと同様に、逆変換を行う前に、まず、点群における各点のモートンコードを計算する。各点のモートンコードMを取得した後、点群における点を昇順に並べ替え、各点の重みを1に設定する。逆RAHTでは、並べ替えられたモートンコードの順序に従って、点群におけるすべての点をトラバースする。
【0045】
RAHTは層ごとに行われるため、底層から点群における隣接点を層ごとに判断し、重みに基づいて属性値に対してRAHTを行う。逆RAHTは最上層から始まり、上から下に向かって行われる。したがって、逆RAHTを行う前に、各層の重み情報を取得する必要がある。
【0046】
逆RAHTを行う前に、取得されたモートンコード情報を利用して、符号化側において、最下層から各層でRAHTを実行し隣接ノードを判断し、各層の重み情報とAC係数の対応する位置を取得することができる。各層でRAHTが行われるたびに、対応するモートンコードは1ビット左にシフトされる。後で使用するために、重み情報と各層のノードに対応するモートンコード情報をバッファに記録する。
【0047】
逆RAHTでは、最上位の層から各層のモートンコード情報に基づいて、隣接するノードを判断する。取得された重み情報と復号化して取得された属性情報を利用して、逆RAHTを行う。
図9は、RAHTを示す概略
図3である。
図9に示されているように、逆RAHTは、第(k+1)層から第k層までのプロセスに相当する。隣接するノードが判断されたとき、トラバースされたDC係数とそれに対応するAC係数を用いて、RAHTの逆変換を行う。
【0048】
【0049】
具体的には、点群の属性情報に対して層ごとにRAHTを実行する場合、各層において、固定した順序にある3軸に沿って各ノードに対してRAHTを繰り返して実行する。しかしながら、どの点群に対しても同じ固定した順序でRAHTを行うことは、RAHTの変換効率を十分に発揮させない。例えば、現在、G-PCCでは、一般的に使用されている固定した順序はZYXであるが、X-Y-Zのような他の可能な変換順序も存在する。点群におけるノードに対して、ZYX順序を使用してRAHTを実行することには、変換効率が低いという課題が存在している。それによって、符号化及び復号化の効率が低下する。
【0050】
上記欠点を克服するために、本発明の実施形態は、点群符号化方法、点群復号化方法、符号器、復号器、及びコンピュータ記憶媒体を提供する。符号化側において、符号器はまず、点群データに対応する変換処理の処理順序を確定し、処理順序に基づいてRAHTを実行しながら処理順序をビットストリームに書き込み、復号器に送信することができる。復号化側において、復号器はビットストリームを解析して、点群データに対応する変換処理の処理順序を取得して、その処理順序に基づいてRAHTを実行する。このように、本発明に係る点群符号化方法及び点群復号化方法では、すべての点群データ又は一部の点群データに対して、RAHTを行うには固定した順序を使用せず、ビットストリームにおけるシンタックス要素(syntax element)を用いて処理順序を示す。これにより、符号化及び復号化プロセスにおける座標処理順序を適応的に変更し、さらにRAHTの変換効率を十分に発揮させることができ、変換効率が低いという課題を解決し、符号化及び復号化の効率を大幅に向上させることができる。
【0051】
本発明において、本発明の実施形態における点群符号化方法は、
図1に示されているようなRAHTに適用されることができる。相応に、本発明の実施形態における点群復号化方法は、
図2に示されているようなRAHTに適用されることができる。つまり、本発明の実施形態における点群符号化方法及び点群復号化方法は、ビデオ符号化システムに適用されることができ、ビデオ復号化システムに適用されることもでき、さらに同時にビデオ符号化システムとビデオ復号化システムとの両方に適用可能である。本発明の実施形態では、特に限定されない。
【0052】
以下、本発明の実施形態における図面を参照しながら、本発明の実施形態における技術方案を明確且つ完全に説明する。
【0053】
本発明の一つの実施形態において、点群符号化方法が提供される。
図10は、点群符号化の実現プロセスを示す概略
図1である。
図10に示されているように、本発明の実施形態において、符号器が点群データを符号化する方法は、以下のステップを含む。
【0054】
ステップ101、点群符号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示す。点群データは点群におけるすべてのデータ又は一部のデータである。
【0055】
本発明の実施形態において、符号器はまず、点群符号化プロセスにおける点群データの処理順序を確定することができる。点群データは点群におけるすべてのデータ又は一部のデータである。処理順序は点群データの3次元座標の座標軸処理順序を示すために用いられることができる。
【0056】
本発明の実施形態において、点群データは点群におけるすべてのデータであることができる。相応に、点群データの処理順序を確定することは、点群におけるすべてのデータの処理順序を確定することである。言い換えれば、本発明では、点群における各点に対して、符号器は同じ処理順序で変換処理を行うことができる。
【0057】
さらに、本発明の実施形態において、符号器は点群を分割することにより、点群に対応する複数のスライスを取得することができる。したがって、点群データは点群における一部のデータであることもできる。即ち、点群データは点群における任意の一つのスライスのデータであることができる。相応に、点群データの処理順序を確定することは、点群における任意の一つのスライスのデータの処理順序を確定することである。即ち、本発明では、点群における同じスライスの各点に対して、符号器は同じ処理順序を用いて変換処理を行うことができる。
【0058】
本発明の実施形態において、処理順序はRAHTを行うときに使用される変換順序である。点群における各点はいずれも、X、Y、Zの3次元の点群データであるため、処理順序は、X、Y、Zの3つの座標軸で変換が順次に行われる順序を示す。
【0059】
例示的に、本発明の実施形態において、点群の属性情報に対して層ごとにRAHTを実行する場合、各層において処理順序に基づいて、3軸に沿って各ノードに対してRAHTを繰り返して実行する。例えば、処理順序がX-Y-Z順序である場合、符号器は点群におけるノードに対して、まずX軸で、次にY軸で、最後にZ軸でRAHTを実行することができる。処理順序がY-Z-X順序である場合、符号器は点群におけるノードに対して、まずY軸で、次にZ軸で、最後にX軸でRAHTを実行することができる。
【0060】
本発明の実施形態において、点群における各点はいずれも、X、Y、Zの3次元の点群データであるため、符号器がRAHTを実行する順序は、6つの異なる組み合わせを含むことができる。即ち、処理順序は6つの異なる変換順序を含むことができる。
【0061】
さらに、本発明の実施形態において、点群データの処理順序は、Z-Y-X順序、X-Y-Z順序、X-Z-Y順序、Y-Z-X順序、Z-X-Y順序、及びY-X-Z順序のうちのいずれかであることができる。X、Y、Zは、点群データの3次元座標の座標軸である。
【0062】
本発明の実施形態において、符号器が点群符号化プロセスにおける点群データの処理順序を確定するとき、符号器は点群データにおけるノードのモートンコードに基づいて処理順序を確定することができることに留意すべきである。
【0063】
具体的には、本発明の実施形態において、符号器はまず点群データにおける各ノードのモートンコードを算出して、次に、モートンコードの昇順に従って、点群データにおけるノードを並べ替え、最後に、並べ替えられた順序で点群データにおける各ノードをトラバースすることができる。
【0064】
ステップ102、処理順序に対応する座標軸順序インデックスを確定する。
【0065】
本発明の実施形態において、点群符号化プロセスにおける点群データの処理順序を確定した後、符号器はさらに、処理順序に対応する座標軸順序インデックス(即ち、インデックス番号)を確定することができる。
【0066】
異なる処理順序に対して、符号器は異なる座標軸順序インデックスを設定することができる。相応に、処理順序が6つの異なる変換順序のうちのいずれかであることができるため、座標軸順序インデックスは6つの異なる値を含むことができる。
【0067】
さらに、本発明の実施形態において、符号器が処理順序に対応する座標軸順序インデックスを確定するとき、符号器は予め設定されたインデックスと処理順序との対応表に基づいて、処理順序に対応する座標軸順序インデックスの値を設定することができる。
【0068】
具体的には、本発明において、表1は予め設定されたインデックスと処理順序との対応表1である。表1に示されているように、異なる処理順序に対して、予め設定されたインデックスと処理順序との対応表を照合することにより、対応する座標軸順序インデックスを確定することができる。
【表1】
【0069】
上記の表1から、本発明において、処理順序と座標軸順序インデックスは1対1で対応していないことが分かる。RAHTの6つの変換順序のうち、Z-Y-X順序は、2つの異なる座標軸順序インデックスに対応する。具体的には、Z-Y-X順序はそれぞれインデックス0とインデックス4に対応する。また、X-Y-Z順序は、2つの異なる座標軸順序インデックスに対応する。具体的には、X-Y-Z順序は、それぞれインデックス1とインデックス7に対応する。Z-Y-X順序とX-Y-Z順序以外の4つのRAHT順序は、それぞれ唯一の座標軸順序インデックスに対応する。X-Z-Y順序はインデックス2に対応し、Y-Z-X順序はインデックス3に対応し、Z-X-Y順序はインデックス5に対応し、Y-X-Z順序はインデックス6に対応する。
【0070】
例示的に、本発明において、符号器が予め設定されたインデックスと処理順序との対応表に基づいて、処理順序に対応する座標軸順序インデックスの値を設定するとき、点群データの処理順序がZ-Y-X順序であれば、符号器は座標軸順序インデックスの値を0又は4に設定することができる。点群データの処理順序がX-Y-Z順序であれば、符号器は座標軸順序インデックスの値を1又は7に設定することができる。点群データの処理順序がX-Z-Y順序であれば、符号器は座標軸順序インデックスの値を2に設定することができる。点群データの処理順序がY-Z-X順序であれば、符号器は座標軸順序インデックスの値を3に設定することができる。点群データの処理順序がZ-X-Y順序であれば、符号器は座標軸順序インデックスの値を5に設定することができる。点群データの処理順序がY-X-Z順序であれば、符号器は座標軸順序インデックスの値を6に設定することができる。
【0071】
本発明において、G-PCCにはX、Y、Z座標軸の具体的な概念がないことに留意すべきである。一般的には、X、Y、Z座標軸に基づいて、0、1、2で座標軸処理順序を表すことができる。例えば、処理順序がX-Y-Z順序であれば、0-1-2で示すことができる。
【0072】
上記表1に基づいて、表2は予め設定されたインデックスと処理順序との対応表2である。表2に示されているように、異なる処理順序に対して、予め設定されたインデックスと処理順序との対応表を照合することにより、対応する座標軸順序インデックスを確定することができる。
【表2】
【0073】
例示的に、本発明において、符号器が予め設定されたインデックスと処理順序との対応表に基づいて、処理順序に対応する座標軸順序インデックスの値を設定するとき、点群データの処理順序がZ-Y-X順序である場合、即ち2-1-0で処理順序を示す場合、符号器は座標軸順序インデックスの値を0又は4に設定することができる。また、点群データの処理順序がX-Y-Z順序である場合、即ち0-1-2で処理順序を示す場合、符号器は座標軸順序インデックスの値を1又は7に設定することができる。また、点群データの処理順序がX-Z-Y順序である場合、即ち0-2-1で処理順序を示す場合、符号器は座標軸順序インデックスの値を2に設定することができる。点群データの処理順序がY-Z-X順序である場合、即ち2-0-1で処理順序を示す場合、符号器は座標軸順序インデックスの値を3に設定することができる。点群データの処理順序がZ-X-Y順序である場合、即ち1-2-0で処理順序を示す場合、符号器は座標軸順序インデックスの値を5に設定することができる。また、点群データの処理順序がY-X-Z順序である場合、即ち1-0-2で処理順序を示す場合、符号器は座標軸順序インデックスの値を6に設定することができる。
【0074】
本発明において、座標軸順序インデックスは、シンタックスaxis_coding_orderで表されることができる。即ち、シンタックスaxis_coding_orderでX、Y、Zの3つの座標軸の処理順序を指定することができる。具体的には、上記表2に基づいて、G-PCC基準のaxis_coding_orderは、RecPic[pointIdx][axis]バッファにおけるデータを処理するために用いられることができる。例えば、axis_coding_orderの値が0に等しい場合、即ち処理順序がZ-Y-Xである場合、axisの値が0に等しければ、RecPic[pointIdx][0]にはZ軸のデータが格納され、axisの値が1に等しければ、RecPic[pointIdx][1]にはY軸のデータが格納され、axisの値が2に等しければ、RecPic[pointIdx][2]にはX軸のデータが格納されることになる。
【0075】
ステップ103、座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込む。
【0076】
本発明の実施形態において、処理順序に対応する座標軸順序インデックスを確定した後、符号器はさらに、座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込むことができる。
【0077】
さらに、本発明の実施形態において、符号器が座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込むとき、符号器はまず固定長符号化を用いて座標軸順序インデックスを符号化し、符号化ビットを確定して、その後、符号化ビットをビットストリームに書き込むことができる。
【0078】
本発明において、固定長符号化とは、情報源の統計的特性を利用せず、情報源の出力記号列の任意の値(確率は異なるかもしれない)を、同じ長さの出力符号語に符号化することを意味する。固定長符号化を用いて座標軸順序インデックスを符号化した後、符号器は同じ長さの固定長符号を取得する。
【0079】
さらに、本発明の実施形態において、符号器が座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込むとき、符号器は符号化ビットをパラメータセットのデータユニットに対応するビットストリームに書き込むことができる。パラメータセットのデータユニットは、点群データの復号化に使用されるパラメータを含む。
【0080】
本発明の実施形態において、パラメータセットはシーケンス層のパラメータセット(sequence-layer parameter set)であることができる。
【0081】
さらに、本発明の実施形態において、パラメータセットはシーケンスパラメータセット(sequence parameter set)であることができる。
【0082】
本発明の実施形態において、パラメータセットのデータユニットは、点群データの属性情報を含むことができる。属性情報は、点群データにおける点に関連したスカラー属性又はベクトル属性である。
【0083】
本発明の実施形態において、パラメータセットのデータユニットはさらに、点群データの幾何情報を含むことができる。幾何情報は、点群データにおける点に関連したデカルト座標(Cartesian coordinate)である。
【0084】
さらに、本発明の実施形態において、符号器が座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込むとき、符号器は符号化ビットを、ビットストリームの補助情報が位置するデータユニットに書き込むことができる。
【0085】
例示的に、本発明の実施形態において、補助情報はビデオユーザビリティ情報(video usability information、VUI)であることができる。
【0086】
ビデオユーザビリティ情報は、ユーザがより広い範囲で適用されるように、対応するビットストリームに追加情報を提供する。例えば、ビットストリーム制約情報において、ビデオユーザビリティ情報は以下の内容を規定する。(1)動きがピクチャの境界を越えているかどうか、(2)各ピクチャの最大バイト数、(3)各マクロブロック(macro block)の最大ビット数、(4)最大動きベクトル(motion vector)(水平と垂直)の長さ、(5)並べ替え直したフレームの数、(6)最大復号化フレームバッファのサイズ。復号器が当該情報を見た場合、復号器は、復号化要求(一般的にビットストリームの実際の要求より高い)を設定するには「レベル」(level)情報を使用せず、より厳しい制限に基づいて復号化操作をカスタマイズ(customize)することができる。
【0087】
例示的に、本発明の実施形態において、補助情報は補足拡張情報(supplemental enhancement information、SEI)であることができる。SEIはビットストリームのカテゴリに属する概念であり、ビデオビットストリームに情報を追加する方法を提供し、H.264/H.265ビデオ圧縮基準(video compression standard)の特徴の1つである。
【0088】
SEIは、復号化プロセスに必要なオプションではなく、復号化プロセス(エラー許容、エラー訂正)に役立つ可能性があり、ビデオビットストリームに統合されることができる。即ち、符号器がビデオビットストリームを出力するとき、SEIを提供しなくてもよい。又は、ビデオ伝送プロセス、デカプセル化(de-capsulation)、復号化プロセスにおいて、何らかの理由でSEIを廃棄する場合がある。
【0089】
本発明の実施形態において、符号器が座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込むとき、符号器は符号化ビットを、点群データに対応する点群符号化データ(point cloud encoding data)を含む送信ストリーム(transmission stream)に書き込むことができる。即ち、ビットストリームは、点群符号化データを含む送信ストリームであることができる。
【0090】
さらに、本発明の実施形態において、符号器が座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込むとき、符号器は符号化ビットを、点群データに対応する点群符号化データを含むメディアファイルに書き込むことができる。即ち、ビットストリームは、点群符号化データを含むメディアファイルであることができる。
【0091】
換言すると、本発明において、座標軸順序インデックスaxis_coding_orderは、シーケンスパラメータセット(sequence parameter set、SPS)の補助情報(例えば、VUI)において符号化されることができ、点群データの他の補助情報(例えば、SEI)のデータユニットにおいて符号化されることができ、さらに、送信ストリームやファイルのフォーマットで補助情報のユニットにおいて符号化されることができる。
【0092】
ステップ104、処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得する。
【0093】
本発明の実施形態において、点群符号化プロセスにおける点群データの処理順序を確定した後、つまりステップ101の後、符号器は処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得することができる。
【0094】
本発明の実施形態において、処理順序は点群の属性情報に対してRAHTを実行するときの変換順序である。したがって、符号器は処理順序を確定した後、その処理順序を使用して点群データに対してRAHTを実行し、対応の符号化しようとする点群データを取得することができる。
【0095】
本発明の実施形態において、点群データは点群におけるすべてのデータであることができるため、処理順序は点群におけるすべてのデータの変換順序であってもよい。さらに、処理順序を確定した後、符号器は処理順序に基づいて、点群における各点に対してRAHTを順次実行することができる。
【0096】
さらに、本発明の実施形態において、点群データは点群における一部のデータであることもできる。即ち、点群データは点群における任意の一つのスライスのデータであることができる。そのため、処理順序は点群における一部のデータの変換順序であってもよい。さらに、点群におけるあるスライスに対応する処理順序を確定した後、符号器は処理順序に基づいて、当該スライスにおける各点に対してRAHTを順次実行することができる。
【0097】
換言すると、本発明において、処理順序が点群におけるすべてのデータの変換順序である場合、符号器は同じ変換順序を使用して、点群におけるすべてのデータに対してRAHTを実行することができる。また、処理順序が点群における一部のデータの変換順序である場合、符号器は同じ変換順序を使用して、点群における一部のデータに対してRAHTを実行することができる。例えば、分割後の一つのスライスにおけるデータに対して、同じ変換順序を使用してRAHTを実行することができる。
【0098】
さらに、本発明の実施形態において、符号器が処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得するとき、符号器はまず、処理順序に基づいて点群データに対して座標マッピングを行うことができる。
【0099】
具体的には、本発明の実施形態において、符号器が処理順序に基づいて点群データに対して座標マッピングを行うとき、符号器は処理順序に基づいて点群データの座標を再配列することができる。
【0100】
さらに、本発明の実施形態において、符号器が処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得するとき、符号器は処理順序に基づいて、点群データを対応する座標軸方向に順次処理することができる。
【0101】
本発明において、RAHTの実行プロセスは以下のようである。最初に1つの座標方向に変換し、次に別の座標方向に変換し、最後に3つ目の座標方向に変換する。
【0102】
本出願の実施形態において、符号器が処理順序に基づいて、点群データを対応する座標軸方向に順次処理するとき、符号器は処理順序に基づいて、点群データに対してRAHTを対応する座標軸方向に順次実行することができる。
【0103】
さらに、本発明の実施形態において、符号器が処理順序に基づいて、点群データに対してRAHTを対応する座標軸方向に順次実行するとき、符号器はまず点群データにおけるノードのモートンコードを確定して、次に、処理順序及びモートンコードに基づいて、点群データに対してRAHTを実行することができる。
【0104】
さらに、本発明の実施形態において、符号器が処理順序及びモートンコードに基づいて、点群データに対してRAHTを実行するとき、符号器はまず処理順序と予め設定された順序が同じであるかどうかを確定することができる。
【0105】
本発明の実施形態において、予め設定された順序は、符号器によって予め記憶されたデフォルト(default)の変換順序であってもよい。例えば、符号器はZ-Y-X順序を、予め設定された順序として設定することができる。
【0106】
さらに、本発明の実施形態において、符号器は処理順序と予め設定された順序とを比較することができる。処理順序と予め設定された順序が同じである場合、符号器は直接に予め設定された順序とモートンコードに基づいて、点群データに対してRAHTを実行する。処理順序と予め設定された順序が異なる場合、符号器は処理順序とモートンコードに基づいて、点群データに対してRAHTを実行する。
【0107】
本発明の実施形態において、
図11は、点群符号化の実現プロセスを示す概略
図2である。
図11に示されているように、符号器が点群符号化プロセスにおける点群データの処理順序を確定した後、即ちステップ101の後、且つ符号器が処理順序に対応する座標軸順序インデックスを確定する前、即ちステップ102の前に、符号器が点群データを符号化する方法は、以下のステップをさらに含む。
【0108】
ステップ106、処理順序に基づいて順序指示パラメータ(order indication parameter)を確定する。順序指示パラメータは、予め設定された順序を使用するかどうかを示すために用いられる。
【0109】
ステップ107、順序指示パラメータを符号化し、符号化ビットをビットストリームに書き込む。
【0110】
点群データの処理順序を確定した後、符号器はまず処理順序に基づいて順序指示パラメータを設定し、次に、順序指示パラメータを符号化して、符号化ビットをビットストリームに書き込むことができる。
【0111】
本発明の実施形態において、順序指示パラメータは、予め設定された順序を使用するかどうかを指示するために用いられることができる。即ち、符号器が予め設定された順序を使用して変換を行う場合、順序指示パラメータは、予め設定された順序を使用することを示すと設定されることができる。符号器が予め設定された順序を使用せず変換を行う場合、順序指示パラメータは、予め設定された順序を使用しないことを示すと設定されることができる。
【0112】
さらに、本発明の実施形態において、符号器が処理順序に基づいて順序指示パラメータを確定するとき、処理順序と予め設定された順序が異なる場合、符号器は処理順序に基づいて点群データを変換する必要がある。そのため、順序指示パラメータの値は、予め設定された順序を使用しないことを示すと設定されることができる。処理順序と予め設定された順序が同じである場合、符号器は予め設定された順序に基づいて点群データを変換することができる。そのため、順序指示パラメータの値は、予め設定された順序を使用することを示すと設定することができる。
【0113】
例示的に、本発明において、順序指示パラメータを設定するとき、符号器は順序指示パラメータの値を0に設定することができる。これによって、予め設定された順序を使用しないことを示す。又は、符号器は順序指示パラメータの値を1に設定することができる。これによって、予め設定された順序を使用することを示す。
【0114】
本発明において、シンタックスattr_raht_order_default_flagで順序指示パラメータを示すことができる。具体的には、attr_raht_order_default_flagの値が1に等しい場合、予め設定された順序を使用することを示す。attr_raht_order_default_flagの値が0に等しい場合、予め設定された順序を使用しないことを示す。
【0115】
ステップ105、符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込む。
【0116】
本発明の実施形態において、符号器は処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得した後、符号化しようとする点群データを符号化して、符号化ビットをビットストリームに書き込むことができる。
【0117】
上記ステップ101からステップ107までに係る点群符号化方法によれば、符号器は既存技術で提案されたように、固定した変換順序で点群データに対してRAHTを実行するというのではない。例えば、すべての点群データに対してX-Y-Z順序でRAHTを実行する。その代わり、点群データを符号化するプロセスにおいて、変換の前に点群データに対応する処理順序を確定し、その後、処理順序を使用してRAHTを実行する。
【0118】
本発明において、X、Y、Zの3つの座標の処理順序の角度から見ると、現在、G-PCCでは、符号器は固定した順序で変換を行う。これに対して、本発明で提案された点群符号化方法では、G-PCCにおける3つの座標に対する符号器の処理順序を適応的に変更することができるため、符号化の効率を向上させることができる。
【0119】
なお、本発明において、処理順序の柔軟性をシーケンス層に限定し、点群全体で同じ座標処理順序を使用することができる。即ち、点群における分割(例えば、スライス)はすべて同じ座標処理順序を使用することができる。
【0120】
本発明において、符号化側は点群データを符号化する前に、点群データを前処理することができる。具体的には、符号器は点群データのX、Y、Z座標軸をリセットし、処理順序を再確定することができる。その後、符号器は前処理された点群データを符号化し、表示の角度から、シーケンス層で前処理の方式を示す。即ち、処理順序に対応する座標軸順序インデックスを符号化した後、符号化ビットをビットストリームに書き込む。したがって、ビットストリームが復号化側に伝送された後、復号器はビットストリームを復号化して復号化点群を取得して、シーケンス層で示される前処理の方式に基づいて点群に対して後処理を行う。即ち、復号化側は解析によって座標軸順序インデックスを取得し、座標軸順序インデックスが示す処理順序を確定することにより、点群データのX、Y、Zの座標軸を適応的に設定することができる。
【0121】
本発明の実施形態は点群符号化方法を提供する。符号器は点群符号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。符号器は、処理順序に対応する座標軸順序インデックスを確定する。符号器は座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込む。符号器は処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得する。符号器は符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込む。即ち、本発明の実施形態において、符号化側では、符号器はまず点群データに対応する変換処理の処理順序を確定し、処理順序に基づいてRAHTを実行しながら、処理順序をビットストリームに書き込み、復号器に送信することができる。復号化側では、復号器はビットストリームを解析して、点群データに対応する変換処理の処理順序を取得し、その処理順序に基づいてRAHTを実行することができる。このように、本発明に係る点群符号化方法及び点群復号化方法では、すべての点群データ又は一部の点群データに対して、RAHTを行うには固定した順序を使用せず、ビットストリームにおけるシンタックス要素を用いて処理順序を示す。これにより、符号化及び復号化プロセスにおける座標処理順序を適応的に変更し、さらにRAHTの変換効率を十分に発揮させることができ、変換効率が低いという課題を解決し、符号化及び復号化の効率を大幅に向上させることができる。
【0122】
上記実施形態に基づいて、本発明の別の実施形態において、点群復号化方法が提供される。
図12は、点群復号化の実現プロセスを示す概略
図1である。
図12に示されているように、本発明の実施形態において、復号器が点群データを復号化する方法は、以下のステップを含む。
【0123】
ステップ201、ビットストリームを解析して座標軸順序インデックスを取得する。
【0124】
本発明の実施形態において、復号器はビットストリームを解析して点群データの座標軸順序インデックスを取得することができる。
【0125】
本発明の実施形態において、復号器がビットストリームを解析して取得した座標軸順序インデックスは、処理順序を示すために用いられることができる。
【0126】
具体的には、本発明において、処理順序が6つの異なる変換順序のうちのいずれかであることができるため、復号器が解析によって取得した座標軸順序インデックスも6つの異なる値を含むことができる。
【0127】
本発明において、座標軸順序インデックスは、シンタックスaxis_coding_orderで表されることができる。即ち、シンタックスaxis_coding_orderでX、Y、Zの3つの座標軸の処理順序を指定することができる。具体的には、上記表2に基づいて、G-PCC基準のaxis_coding_orderは、RecPic[pointIdx][axis]バッファにおけるデータを処理するために用いられることができる。例えば、axis_coding_orderの値が0に等しい場合、即ち処理順序がZ-Y-Xである場合、axisの値が0に等しければ、RecPic[pointIdx][0]にはZ軸のデータが格納され、axisの値が1に等しければ、RecPic[pointIdx][1]にはY軸のデータが格納され、axisの値が2に等しければ、RecPic[pointIdx][2]にはX軸のデータが格納されることになる。
【0128】
例示的に、G-PCC基準テキストでは、座標軸順序インデックスに対応するシンタックスの部分は、以下の表3に示されるようであることができる。
【表3】
【0129】
さらに、本発明の実施形態において、復号器がビットストリームを解析して座標軸順序インデックスを取得するとき、復号器は固定長符号を解析して座標軸順序インデックスを取得することができる。
【0130】
本発明において、固定長符号は、固定長符号化を用いて符号化した後に取得された同じ長さの出力符号語である。言い換えれば、符号器は固定長符号化を用いて座標軸順序インデックスを符号化した後、同じ長さの固定長符号を取得する。
【0131】
さらに、本発明の実施形態において、復号器がビットストリームを解析して座標軸順序インデックスを取得するとき、復号器は、ビットストリームにおけるパラメータセットのデータユニットに対応するビットストリームを解析することができる。パラメータセットのデータユニットは、点群データの復号化に使用されるパラメータを含む。
【0132】
本発明の実施形態において、パラメータセットはシーケンス層のパラメータセットであることができる。
【0133】
さらに、本発明の実施形態において、パラメータセットはシーケンスパラメータセットであることができる。
【0134】
本発明の実施形態において、パラメータセットのデータユニットは、点群データの属性情報を含むことができる。属性情報は、点群データにおける点に関連したスカラー属性又はベクトル属性である。
【0135】
本発明の実施形態において、パラメータセットのデータユニットはさらに、点群データの幾何情報を含むことができる。幾何情報は、点群データにおける点に関連したデカルト座標である。
【0136】
さらに、本発明の実施形態において、復号器がビットストリームを解析して座標軸順序インデックスを取得するとき、復号器はビットストリームを受信した後、ビットストリームの補助情報が位置するデータユニットを解析して、座標軸順序インデックスを取得することができる。
【0137】
例示的に、本発明の実施形態において、補助情報はビデオユーザビリティ情報(VUI)であることができる。
【0138】
例示的に、本発明の実施形態において、補助情報は補足拡張情報(SEI)であることができる。
【0139】
本発明の実施形態において、復号器がビットストリームを解析して座標軸順序インデックスを取得するとき、解析されたビットストリームは、点群データに対応する点群符号化データを含む送信ストリームであることができる。即ち、ビットストリームは、点群符号化データを含む送信ストリームであることができる。
【0140】
さらに、本発明の実施形態において、復号器がビットストリームを解析して座標軸順序インデックスを取得するとき、解析されたビットストリームは、点群データに対応する点群符号化データを含むメディアファイルであることができる。即ち、ビットストリームは、点群符号化データを含むメディアファイルであることができる。
【0141】
換言すると、本発明において、座標軸順序インデックスaxis_coding_orderは、SPSの補助情報(例えば、VUI)において符号化されることができ、点群データの他の補助情報(例えば、SEI)のデータユニットにおいて符号化されることができ、さらに、送信ストリームやファイルのフォーマットで補助情報のユニットにおいて符号化されることができる。
【0142】
ステップ202、座標軸順序インデックスに基づいて、点群復号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示す。点群データは点群におけるすべてのデータ又は一部のデータである。
【0143】
本発明の実施形態において、復号器はビットストリームを解析して座標軸順序インデックスを取得した後、座標軸順序インデックスに基づいて、点群復号化プロセスにおける点群データの処理順序を確定することができる。
【0144】
本発明において、処理順序は、点群データの3次元座標の座標軸処理順序を示す。点群データは点群におけるすべてのデータ又は一部のデータである。
【0145】
さらに、本発明の実施形態において、処理順序は、点群データの3次元座標の座標軸処理順序を示すために用いられることができる。
【0146】
本発明の実施形態において、点群データは点群におけるすべてのデータであることができる。相応に、復号器が座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定することは、点群におけるすべてのデータの処理順序を確定することである。言い換えれば、本発明では、点群における各点に対して、復号器は同じ処理順序で変換処理を行うことができる。
【0147】
さらに、本発明の実施形態において、符号器は点群を分割することにより、点群に対応する複数のスライスを取得することができる。したがって、点群データは点群における一部のデータであることもできる。即ち、点群データは点群における任意の一つのスライスのデータであることができる。相応に、復号器が座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定することは、点群における任意の一つのスライスのデータの処理順序を確定することである。即ち、本発明では、点群における同じスライスの各点に対して、復号器は同じ処理順序を用いて変換処理を行うことができる。
【0148】
本発明の実施形態において、処理順序はRAHTを行うときに使用される変換順序である。点群における各点はいずれも、X、Y、Zの3次元の点群データであるため、処理順序は、X、Y、Zの3つの座標軸で変換が順次に行われる順序を示す。
【0149】
例示的に、本発明の実施形態において、点群の属性情報に対して層ごとにRAHTを実行する場合、各層において処理順序に基づいて、3軸に沿って各ノードに対してRAHTを繰り返して実行する。例えば、処理順序がX-Y-Z順序である場合、復号器は点群におけるノードに対して、まずX軸で、次にY軸で、最後にZ軸でRAHTを実行することができる。処理順序がY-Z-X順序である場合、復号器は点群におけるノードに対して、まずY軸で、次にZ軸で、最後にX軸でRAHTを実行することができる。
【0150】
本発明の実施形態において、点群における各点はいずれも、X、Y、Zの3次元の点群データであるため、復号器がRAHTを実行する順序は、6つの異なる組み合わせを含むことができる。即ち、処理順序は6つの異なる変換順序を含むことができる。
【0151】
異なる処理順序に対して、復号器は異なる座標軸順序インデックスを設定することができる。相応に、処理順序が6つの異なる変換順序のうちのいずれかであることができるため、座標軸順序インデックスは6つの異なる値を含むことができる。
【0152】
本発明において、点群データの処理順序は、Z-Y-X順序、X-Y-Z順序、X-Z-Y順序、Y-Z-X順序、Z-X-Y順序、及びY-X-Z順序のうちのいずれかであることができる。X、Y、Zは、点群データの3次元座標の座標軸である。
【0153】
さらに、本発明の実施形態において、復号器が座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定するとき、復号器は予め設定されたインデックスと処理順序との対応表に基づいて、座標軸順序インデックスに対応する処理順序を確定することができる。
【0154】
具体的には、本発明において、上記表1は予め設定されたインデックスと処理順序との対応表1である。表1に示されているように、異なる処理順序に対して、予め設定されたインデックスと処理順序との対応表を照合することにより、対応する座標軸順序インデックスを確定することができる。
【0155】
例示的に、本発明において、復号器が座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定するとき、座標軸順序インデックスの値が0又は4であれば、復号器は対応する点群データの処理順序がZ-Y-X順序であると確定することができる。座標軸順序インデックスの値が1又は7であれば、復号器は対応する点群データの処理順序がX-Y-Z順序であると確定することができる。座標軸順序インデックスの値が2であれば、復号器は対応する点群データの処理順序がX-Z-Y順序であると確定することができる。座標軸順序インデックスの値が3であれば、復号器は対応する点群データの処理順序がY-Z-X順序であると確定することができる。座標軸順序インデックスの値が5であれば、復号器は対応する点群データの処理順序がZ-X-Y順序であると確定することができる。座標軸順序インデックスの値が6であれば、復号器は対応する点群データの処理順序がY-X-Z順序であると確定することができる。
【0156】
本発明において、G-PCCにはX、Y、Z座標軸の具体的な概念がないことに留意すべきである。一般的には、X、Y、Z座標軸に基づいて、0、1、2で座標軸処理順序を表すことができる。例えば、処理順序がX-Y-Z順序であれば、0-1-2で示すことができる。
【0157】
上記表1に基づいて、表2は予め設定されたインデックスと処理順序との対応表2である。表2に示されているように、異なる処理順序に対して、予め設定されたインデックスと処理順序との対応表を照合することにより、対応する座標軸順序インデックスを確定することができる。
【0158】
例示的に、本発明において、復号器が座標軸順序インデックスに基づいて、点群復号化プロセスにおける点群データの処理順序を確定するとき、座標軸順序インデックスの値が0又は4である場合、即ち2-1-0で処理順序を示す場合、復号器は対応する点群データの処理順序がZ-Y-X順序であると確定することができる。座標軸順序インデックスの値が1又は7である場合、即ち0-1-2で処理順序を示す場合、復号器は対応する点群データの処理順序がX-Y-Z順序であると確定することができる。座標軸順序インデックスの値が2である場合、即ち0-2-1で処理順序を示す場合、復号器は対応する点群データの処理順序がX-Z-Y順序であると確定することができる。座標軸順序インデックスの値が3である場合、即ち2-0-1で処理順序を示す場合、復号器は対応する点群データの処理順序がY-Z-X順序であると確定することができる。座標軸順序インデックスの値が5である場合、即ち1-2-0で処理順序を示す場合、復号器は対応する点群データの処理順序がZ-X-Y順序であると確定することができる。また、座標軸順序インデックスの値が6である場合、即ち1-0-2で処理順序を示す場合、復号器は対応する点群データの処理順序がY-X-Z順序であると確定することができる。
【0159】
本発明において、座標軸順序インデックスは、シンタックスaxis_coding_orderで表されることができる。即ち、シンタックスaxis_coding_orderでX、Y、Zの3つの座標軸の処理順序を指定することができる。具体的には、上記表2に基づいて、G-PCC基準のaxis_coding_orderは、RecPic[pointIdx][axis]バッファにおけるデータを処理するために用いられることができる。例えば、axis_coding_orderの値が0に等しい場合、即ち処理順序がZ-Y-Xである場合、axisの値が0に等しければ、RecPic[pointIdx][0]にはZ軸のデータが格納され、axisの値が1に等しければ、RecPic[pointIdx][1]にはY軸のデータが格納され、axisの値が2に等しければ、RecPic[pointIdx][2]にはX軸のデータが格納されることになる。
【0160】
ステップ203、ビットストリームを解析して、点群データの復元データ(recovered data)を取得する。
【0161】
本発明の実施形態において、復号器はさらに、ビットストリームを解析して点群データの復元データを取得することができる。
【0162】
ステップ204、処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定する。
【0163】
本発明の実施形態において、復号器は座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定し、且つビットストリームを解析して点群データの復元データを取得した後、処理順序に基づいて復元データの記憶ユニットにおける点群データの座標データの位置を確定することができる。
【0164】
換言すると、本発明において、処理順序は、ビットストリームを解析して取得された復元データに対してRAHTの逆変換(即ち、逆RAHT)を行った後に、復号器が順次出力するデータに対応する座標軸を示す。
【0165】
さらに、本発明の実施形態において、復号器が処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定するとき、復元データの記憶ユニットにおいて、点群データにおける点について、復号器は処理順序によって示される座標軸順序に基づいて、点の座標データを取得することができる。
【0166】
本発明において、RAHTを実行するとき、RAHTの処理順序に基づいて、先に取得されたデータを先にデータ記憶ユニットに書き込み、後に取得されたデータが後にデータ記憶ユニットに書き込む。即ち、データの書き込む順序は座標軸順序に対応する。
【0167】
具体的には、本発明の実施形態において、復号器が処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定するとき、復号器は処理順序に基づいて、点群データに対してRAHTを対応する座標軸方向に順次実行することができる。
【0168】
本発明において、RAHTの実行プロセスは以下のようである。最初に1つの座標方向に変換し、次に別の座標方向に変換し、最後に3つ目の座標方向に変換する。
【0169】
本発明の実施形態において、復号器が処理順序に基づいて、点群データに対してRAHTを対応する座標軸方向に順次実行するとき、復号器はまずビットストリームを解析して点群データにおけるノードのモートンコードを確定して、次に、処理順序及びモートンコードに基づいて、点群データに対してRAHTを実行することができる。
【0170】
具体的には、本発明の実施形態において、復号器はまず点群データにおける各ノードのモートンコードを算出して、次に、モートンコードの昇順に従って、点群データにおけるノードを並べ替え、最後に、並べ替えられた順序で点群データにおける各ノードをトラバースすることができる。
【0171】
本発明の実施形態において、処理順序は、点群の属性情報に対してRAHTを実行するときの変換順序である。したがって、復号器は処理順序を確定した後、その処理順序を使用して点群データに対してRAHTを実行することができる。
【0172】
本発明の実施形態において、点群データは点群におけるすべてのデータであることができるため、処理順序は点群におけるすべてのデータの変換順序であってもよい。さらに、復号器は処理順序を確定した後、処理順序に基づいて、点群における各点に対してRAHTを順次実行することができる。
【0173】
さらに、本発明の実施形態において、点群データは点群における一部のデータであることもできる。即ち、点群データは点群における任意の一つのスライスのデータであることができる。そのため、処理順序は点群における一部のデータの変換順序であってもよい。さらに、復号器は点群におけるあるスライスに対応する処理順序を確定した後、処理順序に基づいて、当該スライスにおける各点に対してRAHTを順次実行することができる。
【0174】
換言すると、本発明において、処理順序が点群におけるすべてのデータの変換順序である場合、復号器は同じ変換順序を使用して、点群におけるすべてのデータに対してRAHTを実行することができる。また、処理順序が点群における一部のデータの変換順序である場合、復号器は同じ変換順序を使用して、点群における一部のデータに対してRAHTを実行することができる。例えば、分割後の一つのスライスにおけるデータに対して、同じ変換順序を使用してRAHTを実行することができる。
【0175】
さらに、本発明の実施形態において、復号器が処理順序及びモートンコードに基づいて、点群データに対してRAHTを実行するとき、復号器はまず処理順序と予め設定された順序とを比較して、点群データの処理順序と予め設定された順序とが同じであるかどうかを確定することができる。
【0176】
本発明の実施形態において、予め設定された順序は、復号器によって予め記憶されたデフォルトの変換順序であってもよい。例えば、復号器はZ-Y-X順序を、予め設定された順序として設定することができる。
【0177】
さらに、本発明の実施形態において、復号器が処理順序と予め設定された順序とを比較した後、処理順序と予め設定された順序が同じである場合、復号器は直接に予め設定された順序とモートンコードに基づいて、点群データに対してRAHTを実行する。処理順序と予め設定された順序が異なる場合、復号器は処理順序とモートンコードに基づいて、点群データに対してRAHTを実行する。
【0178】
本発明の実施形態において、
図13は、点群復号化の実現プロセスを示す概略
図2である。
図13に示されているように、復号器がビットストリームを解析して座標軸順序インデックスを取得する前に、即ちステップ201の前に、復号器が点群データを復号化する方法は、以下のステップをさらに含む。
【0179】
ステップ205、ビットストリームを解析して順序指示パラメータを確定する。順序指示パラメータは、予め設定された順序を使用するかどうかを示すために用いられる。
【0180】
ステップ206、順序指示パラメータの値が予め設定された順序を使用しないことを示す場合、処理順序と予め設定された順序が異なると確定する。
【0181】
ステップ207、順序指示パラメータの値が予め設定された順序を使用することを示す場合、処理順序と予め設定された順序が同じであると確定する。
【0182】
本発明の実施形態において、復号器はまずビットストリームを解析することによって、点群データに対応する順序指示パラメータを確定し、次に、順序指示パラメータに基づいて、変換を実行するには予め設定された順序を使用するかどうかを確定することができる。
【0183】
本発明の実施形態において、順序指示パラメータは、予め設定された順序を使用するかどうかを指示するために用いられることができる。即ち、符号化側が予め設定された順序を使用して変換を行う場合、復号器が解析によって取得した順序指示パラメータは、予め設定された順序を使用することを示すことができる。符号化側が予め設定された順序を使用せず変換を行う場合、復号器が解析によって取得した順序指示パラメータは、予め設定された順序を使用しないことを示すことができる。
【0184】
さらに、本発明の実施形態において、復号器が解析によって順序指示パラメータを取得した後、順序指示パラメータの値が予め設定された順序を使用しないことを示す場合、復号器は処理順序に基づいて点群データを変換する必要がある。順序指示パラメータの値が予め設定された順序を使用することを示す場合、復号器は予め設定された順序に基づいて点群データを変換することができる。
【0185】
例示的に、本発明において、順序指示パラメータの値が0である場合、予め設定された順序を使用しないことを示すと考えられる。順序指示パラメータの値が1である場合、予め設定された順序を使用することを示すと考えられる。
【0186】
本発明において、シンタックスattr_raht_order_default_flagで順序指示パラメータを示すことができる。具体的には、attr_raht_order_default_flagの値が1に等しい場合、予め設定された順序を使用することを示す。attr_raht_order_default_flagの値が0に等しい場合、予め設定された順序を使用しないことを示す。
【0187】
上記ステップ201からステップ207までに係る点群復号化方法によれば、復号器は既存技術で提案されたように、固定した変換順序で点群データに対してRAHTを実行するというのではない。例えば、すべての点群データに対してX-Y-Z順序でRAHTを実行する。その代わり、点群データを復号化するプロセスにおいて、変換の前に点群データに対応する処理順序を確定し、その後、処理順序を使用してRAHTを実行する。
【0188】
本発明において、X、Y、Zの3つの座標の処理順序の角度から見ると、現在、G-PCCでは、復号器は固定した順序で変換を行う。これに対して、本発明で提案された点群復号化方法では、G-PCCにおける3つの座標に対する復号器の処理順序を適応的に変更することができるため、復号化の効率を向上させることができる。
【0189】
なお、本発明において、処理順序の柔軟性をシーケンス層に限定し、点群全体で同じ座標処理順序を使用することができる。即ち、点群における分割(例えば、スライス)はすべて同じ座標処理順序を使用することができる。
【0190】
本発明において、符号化側は点群データを符号化する前に、点群データを前処理することができる。具体的には、符号器は点群データのX、Y、Z座標軸をリセットし、処理順序を再確定することができる。その後、前処理された点群データを符号化し、表示の角度から、シーケンス層で前処理の方式を示す。即ち、処理順序に対応する座標軸順序インデックスを符号化した後、符号化ビットをビットストリームに書き込む。したがって、ビットストリームが復号化側に伝送された後、復号器はビットストリームを復号化して復号化点群を取得して、シーケンス層で示される前処理の方式に基づいて点群に対して後処理を行う。即ち、復号化側は解析によって座標軸順序インデックスを取得し、座標軸順序インデックスが示す処理順序を確定することにより、点群データのX、Y、Zの座標軸を適応的に設定することができる。
【0191】
本発明の実施形態は、点群復号化方法を提供する。復号器はビットストリームを解析して座標軸順序インデックスを取得する。復号器は座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。復号器はビットストリームを解析して点群データの復元データを取得する。復号器は処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定する。即ち、本発明の実施形態において、符号化側では、符号器はまず点群データに対応する変換処理の処理順序を確定し、処理順序に基づいてRAHTを実行しながら、処理順序をビットストリームに書き込み、復号器に送信することができる。復号化側では、復号器はビットストリームを解析して、点群データに対応する変換処理の処理順序を取得し、その処理順序に基づいてRAHTを実行することができる。このように、本発明に係る点群符号化方法及び点群復号化方法では、すべての点群データ又は一部の点群データに対して、RAHTを行うには固定した順序を使用せず、ビットストリームにおけるシンタックス要素を用いて処理順序を示す。これにより、符号化及び復号化プロセスにおける座標処理順序を適応的に変更し、さらにRAHTの変換効率を十分に発揮させることができ、変換効率が低いという課題を解決し、符号化及び復号化の効率を大幅に向上させることができる。
【0192】
上記実施形態に基づいて、本発明の別の実施形態において、点群符号化方法及び点群復号化方法が提供される。既存技術と比べると、本発明の実施形態では、符号器及び復号器は、固定した変換順序を変更することができる、即ち、送信されないデフォルトの順序を変更することができる。符号化側、復号化側を問わず、点群データに対してRAHTを行う前に、点群データに対応する処理順序を確定して、その処理順序を使用してRAHTを行う。以下、復号化側での変換プロセスを例示として説明する。
【0193】
例示的に、一つの実施形態において、復号器はビットストリームを解析した後に、点群データの処理順序X-Y-Zを取得する。点群データは点群における一部のデータであり、即ち、点群におけるスライスである。処理順序は、固定した予め設定された順序Z-Y-Xとは異なる。その後、復号器はモートンコードに基づいて、対応するスライスにおいて点を並べ替えることができる。
【0194】
八分木ノード復号化プロセスにおいて、使用される各子における点の空間位置は、各子における重複点の数及び直接符号化された位置の使用に基づいて確定される。以下をご参照ください。
for( child = 0; child < GeometryNodeChildrenCnt; child++ ) {
childIdx = GeometryNodeChildren[ child ];
x = 2 × xN + ( childIdx & 4 == 1 );
y = 2 × yN + ( childIdx & 2 == 1 );
x = 2 × zN + ( childIdx & 1 == 1 );
for( i = 0; i < GeometryNodeDupPoints[child] + 1 ; i++, PointCount++ ) {
PointPos[PointCount][0] = x;
PointPos[PointCount][1] = y;
PointPos[PointCount][2] = z;
}
if( direct_mode_flag ) {
for( i = 0; i <= num_direct_points_minus1; i++, PointCount++ ) {
PointPos[PointCount][0] = x + PointOffsetX[i];
PointPos[PointCount][1] = y + PointOffsetY[i];
PointPos[PointCount][2] = z + PointOffsetZ[i];
}
}
}
…
【0195】
モートンコードに基づく点の並べ替えプロセスにおいて、復号器はビットストリームを解析して、アレイMcodeBeforeSort[i]を取得することができる。そのうち、i=0...PointNum-1。以下をご参照ください。
for ( b=0; b< raht_depth; b++ ){
McodeBeforeSort[i] |= ((PointPos[i][1]>>b) & 1) << (3 × b+2) McodeBeforeSort[i] |= ((PointPos[i][2]>>b) & 1) << (3 × b+1) McodeBeforeSort[i] |= ((PointPos[i][0]>>b) & 1) << (3 × b) }
【0196】
一般に、符号化プロセス又は符号器の角度から見ると、シンタックス要素はビットストリームに送信されて情報を示す。復号化プロセス又は復号器の角度から見ると、ビットストリームからシンタックス要素を解析して指示される情報を取得する。
【0197】
例示的に、一つの実施形態において、処理順序は属性パラメータセットシンタックス(attribute parameter set syntax)に送信されることができる。即ち、復号器は属性パラメータセットのビットストリームを解析することによって、処理順序を取得することができる。属性パラメータセットのシンタックスが表4に示されているようである。
【表4】
【0198】
具体的には、本発明において、座標軸順序インデックスattr_raht_order_indexは、ノードに用いられる処理順序、即ち、RAHTの変換順序を示すことができる。ビットストリームにおいて、attr_raht_order_indexの値は、0、1、2、3、4、5、6、又は7であることができる。上記表1に基づいて、復号器は解析によって取得されたattr_raht_order_indexに基づいて、対応する処理順序を確定することができる。その後、処理順序に基づいて、モートンコードに基づく点の並べ替えプロセスを実行することができる。
【0199】
例示的に、一つの実施形態において、属性パラメータセットにおいて、フラグ(flag)が先に送信されてデフォルトの変換順序を使用するかどうか、即ち予め設定された順序を使用するかどうかを示すことができる。予め設定された順序を使用しない場合、座標軸順序インデックスattr_raht_order_indexを送信して予め設定された順序以外の変換順序を示す。
【0200】
換言すると、本発明において、復号器は属性パラメータセットのビットストリームを解析した後、順序指示パラメータを取得することができる。順序指示パラメータは、予め設定された順序を使用するかどうかを示すために用いられる。属性パラメータセットのシンタックスは表5に示されているようである。
【表5】
【0201】
本発明において、シンタックスattr_raht_order_default_flagで順序指示パラメータを示すことができる。具体的には、attr_raht_order_default_flagの値が1に等しい場合、予め設定された順序を使用することを示す。attr_raht_order_default_flagの値が0に等しい場合、予め設定された順序を使用しないことを示す。
【0202】
さらに、本発明の実施形態において、attr_raht_order_default_flagの値が0に等しい場合、即ち、予め設定された順序を使用しない場合、復号器は解析によって取得された座標軸順序インデックスattr_raht_order_indexに基づいて、さらに、使用される処理順序を確定することができる。
【0203】
本発明において、予め設定された順序がX-Y-Z順序である場合、復号器が解析によって取得した座標軸順序インデックスattr_raht_order_indexの値は、X-Y-Z順序以外の他の5つの変換順序を示すために用いられることができる。即ち、本発明において、順序指示パラメータattr_raht_order_default_flagの確定に基づいて、座標軸順序インデックスattr_raht_order_indexは、予め設定された順序以外の他の変換順序を示すために用いられる。
【表6】
【0204】
さらに、本発明において、座標軸順序インデックスattr_raht_order_indexは、ノードに用いられるRAHTの順序(デフォルトの予め設定された順序を除く)を示し、即ち、処理順序を示す。ビットストリームにおいて、attr_raht_order_indexの値は、0、1、2、3、又は4に等しいことができる。表6は、予め設定されたインデックスと処理順序との対応表3である。予め設定された順序はX-Y-Zである。表6に示されているように、座標軸順序インデックスの値に基づいて、復号器は、予め設定されたインデックスと処理順序との対応表を照合することにより、対応する処理順序を確定することができる。
【0205】
さらに、本発明において、復号器が属性パラメータセットのビットストリームを解析して順序指示パラメータattr_raht_order_default_flagを取得した後、attr_raht_order_default_flagの値が1に等しければ、予め設定された順序を使用することを示す。そして、復号器は予め設定された順序に基づいて、モートンコードに基づく点の並べ替えプロセスを実行することができる。
【0206】
さらに、本発明において、復号器が属性パラメータセットのビットストリームを解析して順序指示パラメータattr_raht_order_default_flagを取得した後、attr_raht_order_default_flagの値が0に等しければ、予め設定された順序を使用しないことを示す。そして、復号器は引き続きビットストリームを解析して、座標軸順序インデックスattr_raht_order_indexを取得し、処理順序を確定することができる。このように、処理順序に基づいて、モートンコードに基づく点の並べ替えプロセスを実行することができる。
【0207】
例示的に、一つの実施形態において、シンタックス要素attr_raht_order_indexの記述子がue(V)(即ち、指数ゴロム(Exp-Golomb)符号)であることを除いて、処理順序は属性パラメータセットに送信される。符号化の角度から見ると、記述子はシンタックス要素のエントロピー符号化(entropy coding)方式に対応する。復号化の角度から見ると、記述子はシンタックス要素の解析プロセスに対応する。
【0208】
本発明において、RAHTの処理順序は、属性パラメータセットに送信される。当該属性パラメータセットと関連した一つ又は複数のスライスの符号化又は復号化に適用される。
【0209】
例示的に、一つの実施形態において、予め設定された順序がある又は予め設定された順序がない処理順序は、属性スライスヘッダ(attribute slice header)に送信される。属性スライスヘッダのシンタックスは、表7に示されているようである。
【表7】
【0210】
本発明において、属性スライスヘッダに送信された処理順序は、当該スライスを符号化又は復号化するためのみに用いられる。
【0211】
例示的に、一つの実施形態において、予め設定された順序がある/ない処理順序は、属性パラメータセットと、当該属性パラメータセットと関連した属性スライスヘッダとに送信される。属性スライスヘッダに送信された処理順序は、属性パラメータセットを解析することにより確定された処理順序を覆すことができる。
【0212】
具体的には、本発明において、処理順序を属性パラメータセットに送信する。属性パラメータセットのシンタックスは表8に示されているようである。
【表8】
【0213】
さらに、本発明の実施形態において、属性スライスヘッダのシンタックスは表9に示されているようである。
【表9】
【0214】
本発明において、復号器がビットストリームを解析した後、シンタックス要素ash_attr_raht_order_override_flagを取得することができる。シンタックス要素ash_attr_raht_order_override_flagは、属性パラメータセットに送信された処理順序を使用するかどうかを示すために用いられる。
【0215】
さらに、本発明の実施形態において、ash_attr_raht_order_override_flagの値が0に等しければ、当該スライスと関連した属性パラメータセットに送信された処理順序を使用する。
【0216】
さらに、本発明の実施形態において、ash_attr_raht_order_override_flagの値が1に等しければ、ash_attr_raht_indexによって示される処理順序を使用することを示す。そして、復号器は解析によってash_attr_raht_indexを取得して、さらに、使用される処理順序を確定することができる。具体的には、復号器は上記表1を介して、ash_attr_raht_indexが示す処理順序をさらに取得することができる。
【0217】
本発明の実施形態において、ash_attr_raht_order_override_flagの値が1に等しければ、ash_attr_raht_indexによって示される処理順序を使用することを示す。そして、復号器は、当該スライスと関連した属性パラメータセット(つまり、アクティブな属性パラメータセット)に送信された処理順序を除去することで、動的に確定することができる。例えば、アクティブな属性パラメータセットに送信された処理順序がZ-Y-Xである場合、符号器又は復号器はZ-Y-X順序以外の他の順序で、予め設定されたインデックスと処理順序との対応表を構築することができる。ビットストリームにおいて、attr_raht_order_indexの値は、0、1、2、3、又は4であることができる。表10は、予め設定されたインデックスと処理順序との対応表4である。アクティブな属性パラメータセットに送信された処理順序がZ-Y-Xである場合、表10に示されているように、座標軸順序インデックスash_attr_raht_indexの値に基づいて、復号器は予め設定されたインデックスと処理順序との対応表を照合することにより、対応する処理順序を確定することができる。
【表10】
【0218】
本発明において、ash_attr_raht_order_indexが符号化された又は解析されたue(V)である場合、ビットストリームにおけるash_attr_raht_order_indexを表すために用いられるビットを節約することができる。
【0219】
さらに、本発明において、属性パラメータセットにおいてattr_coding_typeが1に等しい場合、attr_raht_order_override_allowed_flagなどのような追加フラグ(additional flag)は送信され(符号化又は符号器の角度から)又は解析され(復号化又は復号化の角度から)て、属性パラメータセットと関連した属性スライスヘッダで詳しく説明されたRAHTの処理順序が属性パラメータセットで詳しく説明されたRAHTの処理順序を覆すことは許可されるかどうかを示す。attr_raht_order_override_allowed_flagについては、属性スライスヘッダのシンタクスは表11に示されているようである。
【表11】
【0220】
さらに、本発明において、復号器はビットストリームを解析して処理順序を取得した後、予め設定された順序に基づいて、モートンコードに基づく点の並べ替えプロセスを実行することができる。
【0221】
本発明の実施形態は点群符号化方法、点群復号化方法、符号器、復号器及びコンピュータ記憶媒体を提供する。符号器は点群符号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。符号器は、処理順序に対応する座標軸順序インデックスを確定する。符号器は座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込む。符号器は処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得する。符号器は符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込む。復号器はビットストリームを解析して座標軸順序インデックスを取得する。復号器は座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。復号器はビットストリームを解析して点群データの復元データを取得する。復号器は処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定する。即ち、本発明の実施形態において、符号化側では、符号器はまず点群データに対応する変換処理の処理順序を確定し、処理順序に基づいてRAHTを実行しながら、処理順序をビットストリームに書き込み、復号器に送信することができる。復号化側では、復号器はビットストリームを解析して、点群データに対応する変換処理の処理順序を取得し、その処理順序に基づいてRAHTを実行することができる。このように、本発明に係る点群符号化方法及び点群復号化方法では、すべての点群データ又は一部の点群データに対して、RAHTを行うには固定した順序を使用せず、ビットストリームにおけるシンタックス要素を用いて処理順序を示す。これにより、符号化及び復号化プロセスにおける座標処理順序を適応的に変更し、さらにRAHTの変換効率を十分に発揮させることができ、変換効率が低いという課題を解決し、符号化及び復号化の効率を大幅に向上させることができる。
【0222】
上記実施形態に基づいて、本発明の別の実施形態において、
図14は符号器の構造を示す概略
図1である。
図14に示されているように、本発明の実施形態に係る符号器300は第一確定部分301、符号化部分302及び変換部分303を含むことができる。
第一確定部分301は、点群符号化プロセスにおける点群データの処理順序を確定し、処理順序に対応する座標軸順序インデックスを確定するように構成されている。上記処理順序は点群データの3次元座標の座標軸処理順序を示す。上記点群データは点群におけるすべてのデータ又は一部のデータである。
符号化部分302は、座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込むように構成されている。
変換部分303は、処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得するように構成されている。
符号化部分302はさらに、符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込むように構成されている。
【0223】
さらに、本発明の実施形態において、第一確定部分301は、点群データにおけるノードのモートンコードに基づいて処理順序を確定するように構成されている。
【0224】
さらに、本発明の実施形態において、点群データの処理順序は、Z-Y-X順序、X-Y-Z順序、X-Z-Y順序、Y-Z-X順序、Z-X-Y順序、及びY-X-Z順序のうちのいずれかであることができる。X、Y、Zは、点群データの3次元座標の座標軸である。
【0225】
さらに、本発明の実施形態において、第一確定部分301は、予め設定されたインデックスと処理順序との対応表に基づいて、処理順序に対応する座標軸順序インデックスの値を設定するように構成されている。
【0226】
さらに、本発明の実施形態において、予め設定されたインデックスと処理順序との対応表は以下を含む。
【表12】
【0227】
さらに、本発明の実施形態において、符号化部分302は、固定長符号化を用いて座標軸順序インデックスを符号化するように構成されている。
【0228】
さらに、本発明の実施形態において、符号化部分302は、符号化ビットをパラメータセットのデータユニットに対応するビットストリームに書き込むように構成されている。パラメータセットのデータユニットは、点群データの復号化に使用されるパラメータを含む。
【0229】
さらに、本発明の実施形態において、パラメータセットはシーケンス層のパラメータセットである。
【0230】
さらに、本発明の実施形態において、パラメータセットはシーケンスパラメータセットである。
【0231】
さらに、本発明の実施形態において、パラメータセットのデータユニットは、点群データの属性情報を含む。属性情報は、点群データにおける点に関連したスカラー属性又はベクトル属性である。
【0232】
さらに、本発明の実施形態において、パラメータセットのデータユニットは、点群データの幾何情報を含む。幾何情報は、点群データにおける点に関連したデカルト座標である。
【0233】
さらに、本発明の実施形態において、変換部分303は、処理順序に基づいて点群データに対して座標マッピングを行うように構成されている。
【0234】
さらに、本発明の実施形態において、変換部分303は、処理順序に基づいて点群データの座標を再配列するように構成されている。
【0235】
さらに、本発明の実施形態において、変換部分303は、処理順序に基づいて点群データを対応する座標軸方向に順次処理するように構成されている。
【0236】
さらに、本発明の実施形態において、変換部分303は、処理順序に基づいて点群データに対してRAHTを対応する座標軸方向に順次実行するように構成されている。
【0237】
さらに、本発明の実施形態において、変換部分303は、点群データにおけるノードのモートンコードを確定して、処理順序及びモートンコードに基づいて点群データに対してRAHTを実行するように構成されている。
【0238】
さらに、本発明の実施形態において、変換部分303は、以下の操作を実行するように構成されている。
処理順序と予め設定された順序が同じである場合、予め設定された順序とモートンコードに基づいて点群データに対してRAHTを実行する。処理順序と予め設定された順序が異なる場合、処理順序とモートンコードに基づいて、点群データに対してRAHTを実行する。
【0239】
さらに、本発明の実施形態において、第一確定部分301は、点群符号化プロセスにおける点群データの処理順序を確定した後、処理順序に対応する座標軸順序インデックスを確定する前に、処理順序に基づいて順序指示パラメータを確定するように構成されている。順序指示パラメータは、予め設定された順序を使用するかどうかを示すために用いられる。
符号化部分302はさらに、順序指示パラメータを符号化し、符号化ビットをビットストリームに書き込むように構成されている。
【0240】
さらに、本発明の実施形態において、第一確定部分301は以下の操作を実行するように構成されている。
処理順序と予め設定された順序が異なる場合、順序指示パラメータの値を、予め設定された順序を使用しないことを示すと設定し、処理順序と予め設定された順序が同じである場合、順序指示パラメータの値を、予め設定された順序を使用することを示すと設定する。
【0241】
さらに、本発明の実施形態において、符号化部分302は、符号化ビットをビットストリームの補助情報が位置するデータユニットに書き込むように構成されている。
【0242】
さらに、本発明の実施形態において、補助情報はビデオユーザビリティ情報(VUI)である。
【0243】
さらに、本発明の実施形態において、補助情報は補足拡張情報(SEI)である。
【0244】
さらに、本発明の実施形態において、符号化部分302は符号化ビットを、点群データに対応する点群符号化データを含む送信ストリームに書き込むように構成されている。
【0245】
さらに、本発明の実施形態において、符号化部分302は符号化ビットを、点群データに対応する点群符号化データを含むメディアファイルに書き込むように構成されている。
【0246】
図15は、符号器の構造を示す概略
図2である。
図15に示されているように、本発明の実施形態に係る符号器300は第一プロセッサ304、第一メモリ305、第一通信インターフェース306、及び第一バス307を含む。第一メモリ305には第一プロセッサ304によって実行される命令が格納されている。第一バス307は、第一プロセッサ304、第一メモリ305及び第一通信インターフェース306を接続するために用いられる。
【0247】
さらに、本発明の実施形態において、第一プロセッサは、以下の操作を実行するように構成されている。
点群符号化プロセスにおける点群データの処理順序を確定する。処理順序に対応する座標軸順序インデックスを確定する。座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込む。処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得する。符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込む。
上記処理順序は点群データの3次元座標の座標軸処理順序を示し、上記点群データは点群におけるすべてのデータ又は一部のデータである。
【0248】
集積ユニットは、ソフトウェアの機能モジュールとして実現され、且つ独立の製品として販売されたり使用されたりする場合、コンピュータ可読記録媒体に記憶されてもよい。この理解によれば、本発明の技術方案について、本質的な部分、又は従来技術に貢献できた部分、又は当該技術方案の全部又は一部は、ソフトウェア製品として表現され得る。このコンピュータソフトウェア製品は、記憶媒体に記憶されており、1つのコンピュータ(パソコン、サーバー、又はネットワークデバイスなどであってもよい)又はプロセッサに本発明の各実施形態に係る方法の全部又は一部のプロセスを実行させるための複数の命令を含む。前記記憶媒体は、ユニバーサルシリアルバス(universal serial bus、USB)フラッシュディスク、モバイルハードディスク、読み取り専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、磁気ディスク又は光ディスクなどの各種のプログラムコードを記憶可能な媒体を含む。
【0249】
本発明の実施形態は符号器を提供する。当該符号器は点群符号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。符号器は、処理順序に対応する座標軸順序インデックスを確定する。符号器は座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込む。符号器は処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得する。符号器は符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込む。即ち、本発明の実施形態において、符号化側では、符号器はまず点群データに対応する変換処理の処理順序を確定し、処理順序に基づいてRAHTを実行しながら、処理順序をビットストリームに書き込み、復号器に送信することができる。復号化側では、復号器はビットストリームを解析して、点群データに対応する変換処理の処理順序を取得し、その処理順序に基づいてRAHTを実行することができる。このように、本発明に係る点群符号化方法及び点群復号化方法では、すべての点群データ又は一部の点群データに対して、RAHTを行うには固定した順序を使用せず、ビットストリームにおけるシンタックス要素を用いて処理順序を示す。これにより、符号化及び復号化プロセスにおける座標処理順序を適応的に変更し、さらにRAHTの変換効率を十分に発揮させることができ、変換効率が低いという課題を解決し、符号化及び復号化の効率を大幅に向上させることができる。
【0250】
図16は、復号器の構造を示す概略
図1である。
図16に示されているように、本発明の実施形態に係る復号器400は解析部分401、第二確定部分402を含むことができる。
解析部分401は、ビットストリームを解析して座標軸順序インデックスを取得するように構成されている。
第二確定部分402は、座標軸順序インデックスに基づいて、点群復号化プロセスにおける点群データの処理順序を確定するように構成されている。上記処理順序は点群データの3次元座標の座標軸処理順序を示す。上記点群データは点群におけるすべてのデータ又は一部のデータである。
解析部分401はさらに、ビットストリームを解析して点群データの復元データを取得するように構成されている。
第二確定部分402はさらに、処理順序に基づいて復元データの記憶ユニットにおける点群データの座標データの位置を確定するように構成されている。
【0251】
さらに、本発明の実施形態において、解析部分401は、固定長符号を解析して座標軸順序インデックスを取得するように構成されている。
【0252】
さらに、本発明の実施形態において、解析部分401は、ビットストリームにおけるパラメータセットのデータユニットに対応するビットストリームを解析するように構成されている。パラメータセットのデータユニットは、点群データの復号化に使用されるパラメータを含む。
【0253】
さらに、本発明の実施形態において、パラメータセットはシーケンス層のパラメータセットである。
【0254】
さらに、本発明の実施形態において、パラメータセットはシーケンスパラメータセットである。
【0255】
さらに、本発明の実施形態において、パラメータセットのデータユニットは、点群データの属性情報を含む。属性情報は、点群データにおける点に関連したスカラー属性又はベクトル属性である。
【0256】
さらに、本発明の実施形態において、パラメータセットのデータユニットはさらに、点群データの幾何情報を含む。幾何情報は、点群データにおける点に関連したデカルト座標である。
【0257】
さらに、本発明の実施形態において、点群データの処理順序は、Z-Y-X順序、X-Y-Z順序、X-Z-Y順序、Y-Z-X順序、Z-X-Y順序、及びY-X-Z順序のうちのいずれかであることができる。X、Y、Zは、点群データの3次元座標の座標軸である。
【0258】
さらに、本発明の実施形態において、第二確定部分402は、予め設定されたインデックスと処理順序との対応表に基づいて、座標軸順序インデックスに対応する処理順序を確定するように構成されている。
【0259】
さらに、本発明の実施形態において、予め設定されたインデックスと処理順序との対応表は以下を含む。
【表13】
【0260】
さらに、本発明の実施形態において、第二確定部分402は、復元データの記憶ユニットにおいて、点群データにおける点について、処理順序によって示される座標軸順序に基づいて点の座標データを取得するように構成されている。
【0261】
さらに、本発明の実施形態において、第二確定部分402は、処理順序に基づいて、点群データに対してRAHTを対応する座標軸方向に順次実行するように構成されている。
【0262】
さらに、本発明の実施形態において、第二確定部分402は、ビットストリームを解析して点群データにおけるノードのモートンコードを確定して、処理順序及びモートンコードに基づいて点群データに対してRAHTを実行するように構成されている。
【0263】
さらに、本発明の実施形態において、第二確定部分402は、以下の操作を実行するように構成されている。
処理順序と予め設定された順序が同じである場合、予め設定された順序とモートンコードに基づいて点群データに対してRAHTを実行する。処理順序と予め設定された順序が異なる場合、処理順序とモートンコードに基づいて、点群データに対してRAHTを実行する。
【0264】
さらに、本発明の実施形態において、解析部分401は、ビットストリームを解析して座標軸順序インデックスを取得する前に、ビットストリームを解析して順序指示パラメータを確定するように構成されている。順序指示パラメータは、予め設定された順序を使用するかどうかを示すために用いられる。
第二確定部分402は、さらに以下の操作を実行するように構成されている。
順序指示パラメータの値が予め設定された順序を使用しないことを示す場合、処理順序と予め設定された順序が異なると確定する。順序指示パラメータの値が予め設定された順序を使用することを示す場合、処理順序と予め設定された順序が同じであると確定する。
【0265】
さらに、本発明の実施形態において、解析部分401は、ビットストリームの補助情報が位置するデータユニットを解析して、座標軸順序インデックスを取得するように構成されている。
【0266】
さらに、本発明の実施形態において、補助情報はビデオユーザビリティ情報(VUI)である。
【0267】
さらに、本発明の実施形態において、補助情報は補足拡張情報(SEI)である。
【0268】
さらに、本発明の実施形態において、解析部分401は、点群符号化データを含む送信ストリームを解析して、座標軸順序インデックスを取得するように構成されている。
【0269】
さらに、本発明の実施形態において、解析部分401は、点群符号化データを含むメディアファイルを解析して、座標軸順序インデックスを取得するように構成されている。
【0270】
図17は、復号器の構造を示す概略
図2である。
図17に示されているように、本発明の実施形態に係る復号器400は第二プロセッサ403、第二メモリ404、第二通信インターフェース405、及び第二バス406を含む。第二メモリ404には第二プロセッサ403によって実行される命令が格納されている。第二バス406は、第二プロセッサ403、第二メモリ404及び第二通信インターフェース405を接続するために用いられる。
【0271】
さらに、本発明の実施形態において、第二プロセッサ403は以下の操作を実行するように構成されている。
ビットストリームを解析して座標軸順序インデックスを取得する。座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定する。ビットストリームを解析して点群データの復元データを取得する。処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定する。
上記処理順序は点群データの3次元座標の座標軸処理順序を示し、上記点群データは点群におけるすべてのデータ又は一部のデータである。
【0272】
集積ユニットは、ソフトウェアの機能モジュールとして実現され、且つ独立の製品として販売されたり使用されたりする場合、コンピュータ可読記録媒体に記憶されてもよい。この理解によれば、本発明の技術方案について、本質的な部分、又は従来技術に貢献できた部分、又は当該技術方案の全部又は一部は、ソフトウェア製品として表現され得る。このコンピュータソフトウェア製品は、記憶媒体に記憶されており、1つのコンピュータ(パソコン、サーバー、又はネットワークデバイスなどであってもよい)又はプロセッサに本発明の各実施形態に係る方法の全部又は一部のプロセスを実行させるための複数の命令を含む。前記記憶媒体は、ユニバーサルシリアルバス(universal serial bus、USB)フラッシュディスク、モバイルハードディスク、読み取り専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、磁気ディスク又は光ディスクなどの各種のプログラムコードを記憶可能な媒体を含む。
【0273】
本発明の実施形態は、復号器を提供する。当該復号器はビットストリームを解析して座標軸順序インデックスを取得する。復号器は座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。復号器はビットストリームを解析して点群データの復元データを取得する。復号器は処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定する。即ち、本発明の実施形態において、符号化側では、符号器はまず点群データに対応する変換処理の処理順序を確定し、処理順序に基づいてRAHTを実行しながら、処理順序をビットストリームに書き込み、復号器に送信することができる。復号化側では、復号器はビットストリームを解析して、点群データに対応する変換処理の処理順序を取得し、その処理順序に基づいてRAHTを実行することができる。このように、本発明に係る点群符号化方法及び点群復号化方法では、すべての点群データ又は一部の点群データに対して、RAHTを行うには固定した順序を使用せず、ビットストリームにおけるシンタックス要素を用いて処理順序を示す。これにより、符号化及び復号化プロセスにおける座標処理順序を適応的に変更し、さらにRAHTの変換効率を十分に発揮させることができ、変換効率が低いという課題を解決し、符号化及び復号化の効率を大幅に向上させることができる。
【0274】
本発明の実施形態は、コンピュータ可読記憶媒体を提供する。当該コンピュータ可読記憶媒体にはプログラムが格納されている。当該プログラムはプロセッサによって実行されると、上記実施形態に記載の方法を実行する。
【0275】
具体的に、本発明の実施形態における符号化方法に対応するプログラム命令は光ディスク、ハードディスク、USBフラッシュディスクなどのような記憶媒体に格納されることができる。記憶媒体における符号化方法に対応するプログラム命令は電子デバイスに読み取られ、又は実行されると、以下の操作を実行する。
点群符号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。処理順序に対応する座標軸順序インデックスを確定する。座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込む。処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得する。符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込む。
【0276】
具体的に、本発明の実施形態における復号化方法に対応するプログラム命令は光ディスク、ハードディスク、USBフラッシュディスクなどのような記憶媒体に格納されることができる。記憶媒体における復号化方法に対応するプログラム命令は、電子デバイスに読み取られ、又は実行されると、以下の操作を実行する。
ビットストリームを解析して座標軸順序インデックスを取得する。座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。ビットストリームを解析して点群データの復元データを取得する。処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定する。
【0277】
本発明の実施形態は方法、システム又はコンピュータプロセッサ製品を提供できることは当業者に理解されるべきである。従って、本発明の実施形態はハードウェア実施形態、ソフトウェア実施形態、又はソフトウェアとハードウェアを結びつける実施形態を有することができる。また、本発明は、コンピュータ使用可能なプログラムコードを含む一つ又は複数のコンピュータ使用可能な記憶媒体(磁気ディスク記憶装置、光メモリなどを含むがこれらに限定されない)上に具現化されたコンピュータプログラム製品の形態で実施され得る。
【0278】
本発明の実施形態に係る方法、装置(システム)及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照しながら本発明を説明する。フローチャート及び/又はブロック図における各プロセス及び/又はブロック、及びフローチャート及び/又はブロック図におけるプロセス及び/又はブロックの組み合わせはコンピュータプログラム命令によって実現される。それらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ又は他のプログラム可能なデータ処理装置(programmable data processing device)のプロセッサに提供されることで、機械を生成する。これで、コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサによって実行される命令は、フローチャートの一つのプロセス又は複数のプロセス、及び/又はブロック図の一つのブロック又は複数のブロックにおいて指定される機能を実現するに用いられる装置を生じる。
【0279】
それらのコンピュータプログラム命令は、コンピュータ又は他のプログラム可能なデータ処理装置に特定の方法で実行するように指示することができるコンピュータ可読記憶媒体に格納されることができる。それによって、当該コンピュータ可読記憶媒体に格納される命令は命令装置を含む製造品を生じる。当該命令装置は、フローチャートの一つのプロセス又は複数のプロセス、及び/又はブロック図の一つのブロック又は複数のブロックにおいて指定される機能を実現する。
【0280】
それらのコンピュータプログラム命令は、コンピュータ又は他のプログラマブルなデータ処理装置にロードされることができ、コンピュータ又は他のプログラマブルな装置で一連の操作ステップを実行して、コンピュータが実現するプロセスを生成する。これで、コンピュータ又は他のプログラマブルな装置で実行される命令は、フローチャートの一つのプロセス又は複数のプロセス、及び/又はブロック図の一つのブロック又は複数のブロックにおいて指定される機能を実現するに用いられるステップを提供する。
【0281】
以上はただ本発明の好適な実施形態に過ぎず、本発明の保護範囲を限定するものではない。
産業上の利用可能性
【0282】
本発明の実施形態は点群符号化方法を提供する。符号器は点群符号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。符号器は、処理順序に対応する座標軸順序インデックスを確定する。符号器は座標軸順序インデックスを符号化し、符号化ビットをビットストリームに書き込む。符号器は処理順序に基づいて点群データを処理して、符号化しようとする点群データを取得する。符号器は符号化しようとする点群データを符号化し、符号化ビットをビットストリームに書き込む。復号器はビットストリームを解析して座標軸順序インデックスを取得する。復号器は座標軸順序インデックスに基づいて点群復号化プロセスにおける点群データの処理順序を確定する。処理順序は点群データの3次元座標の座標軸処理順序を示し、点群データは点群におけるすべてのデータ又は一部のデータである。復号器はビットストリームを解析して点群データの復元データを取得する。復号器は処理順序に基づいて、復元データの記憶ユニットにおける点群データの座標データの位置を確定する。即ち、本発明の実施形態において、符号化側では、符号器はまず点群データに対応する変換処理の処理順序を確定し、処理順序に基づいてRAHTを実行しながら、処理順序をビットストリームに書き込み、復号器に送信することができる。復号化側では、復号器はビットストリームを解析して、点群データに対応する変換処理の処理順序を取得し、その処理順序に基づいてRAHTを実行することができる。このように、本発明に係る点群符号化方法及び点群復号化方法では、すべての点群データ又は一部の点群データに対して、RAHTを行うには固定した順序を使用せず、ビットストリームにおけるシンタックス要素を用いて処理順序を示す。これにより、符号化及び復号化プロセスにおける座標処理順序を適応的に変更し、さらにRAHTの変換効率を十分に発揮させることができ、変換効率が低いという課題を解決し、符号化及び復号化の効率を大幅に向上させることができる。