JPWO2021218509A5 - - Google Patents

Download PDF

Info

Publication number
JPWO2021218509A5
JPWO2021218509A5 JP2022564616A JP2022564616A JPWO2021218509A5 JP WO2021218509 A5 JPWO2021218509 A5 JP WO2021218509A5 JP 2022564616 A JP2022564616 A JP 2022564616A JP 2022564616 A JP2022564616 A JP 2022564616A JP WO2021218509 A5 JPWO2021218509 A5 JP WO2021218509A5
Authority
JP
Japan
Prior art keywords
data
point
current layer
parent node
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022564616A
Other languages
English (en)
Other versions
JP2023523272A (ja
Publication date
Priority claimed from CN202010366795.3A external-priority patent/CN113596466A/zh
Application filed filed Critical
Publication of JP2023523272A publication Critical patent/JP2023523272A/ja
Publication of JPWO2021218509A5 publication Critical patent/JPWO2021218509A5/ja
Pending legal-status Critical Current

Links

Description

(関連出願への相互参照)
本願は、2020年04月30日に中国特許局に提出された、出願番号が202010366795.3である中国特許出願の優先権を主張し、その内容の全てが引用により本願に組み込まれる。
本願は、ビデオ符号化の分野に関し、最近傍検索方法、エンコーダ、デコーダ、及び記憶媒体に関するが、これらに限定されない。
関連技術では、点群属性の詳細レベル(LOD:Level of Detail)を分割した後、LODのレイヤが分割されるたびに、現在分割されたLODレイヤに対して最近傍点検索を実行する。検索方法は、モートンコードの昇順に並べたセットについて、現在点のモートンコードより大きい最初のモートンコードに対応する点を検索し、当該点に対応するインデックスの周りを検索し、次に、各点と現在点との距離を計算し、それにより、3つの最近傍点を取得することである。
しかしながら、モートンコードは、2つの点の空間距離をうまく反映できないため、モートンコードには、周期的なトリップポイントが存在する。しかしながら、モートンコードの隣接は、空間位置が類似していることを保証できないため、当該最初の点のモートンコードの周囲で最近傍を見つけることは不正確であり、また、検索範囲の大きさによって性能や効率が大きく異なり、したがって、適応的に最近点を検索できず、検索精度が低下する。
本願実施例は、検索の精度及び成功率を向上させることができる、最近傍検索方法、エンコーダ、デコーダ、及び記憶媒体を提供する。
本願実施例による技術的解決策は、次のように実現される。
本願実施例は、エンコーダに適用される最近傍検索方法を提供し、前記方法は、
検索対象となる点群データのモートンコードセットを取得することと、
前記モートンコードセット及び第1距離閾値に基づいて、前記点群データをレイヤ分けして、現在レイヤのデータを取得することと、
前記点群データ内の現在レイヤのデータに対応する予測データのモートンコードビットを、第1所定ビット数だけ右シフトして、対応する第1親ノードセットを取得することと、
前記現在レイヤのデータのモートンコードに基づいて、前記第1親ノードセットで、隣接領域を決定し、前記隣接領域で、前記現在レイヤのデータの最近傍点セットを決定することと、
前記隣接領域が決定されない場合、第2ノードセットに基づいて、前記現在レイヤのデータの検索点を決定し、前記検索点に対応する第1所定検索範囲内で検索を実行して、最近傍点セットを決定することと、を含み、前記第2ノードセットは、前記点群データ内の現在レイヤのデータに対応する予測データセットである。
本願実施例は、デコーダに適用される最近傍検索方法を提供し、前記方法は、
検索対象となる点群データのモートンコードセットを取得することと、
前記モートンコードセット及び第1距離閾値に基づいて、前記点群データをレイヤ分けして、現在レイヤのデータを取得することと、
前記点群データ内の現在レイヤのデータに対応する予測データのモートンコードビットを、第1所定ビット数だけ右シフトして、対応する第1親ノードセットを取得することと、
前記現在レイヤのデータのモートンコードに基づいて、前記第1親ノードセットで、隣接領域を決定し、前記隣接領域で、前記現在レイヤのデータの最近傍点セットを決定することと、
前記隣接領域が決定されない場合、第2ノードセットに基づいて、前記現在レイヤのデータの検索点を決定し、前記検索点に対応する第1所定検索範囲内で検索を実行して、最近傍点セットを決定することと、を含み、前記第2ノードセットは、前記点群データ内の現在レイヤのデータに対応する予測データセットである。
本願実施例は、エンコーダを提供し、前記エンコーダは、
検索対象となる点群データのモートンコードセットを取得するように構成される第1取得ユニットと、
前記モートンコードセット及び第1距離閾値に基づいて、前記点群データをレイヤ分けして、現在レイヤのデータを取得するように構成される第1分割ユニットと、
前記点群データ内の現在レイヤのデータに対応する予測データのモートンコードビットを、第1所定ビット数だけ右シフトして、対応する第1親ノードセットを取得するように構成される第1シフトユニットと、
前記現在レイヤのデータのモートンコードに基づいて、前記第1親ノードセットで、隣接領域を決定し、前記隣接領域で、前記現在レイヤのデータの最近傍点セットを決定し、前記隣接領域が決定されない場合、第2ノードセットに基づいて、前記現在レイヤのデータの検索点を決定し、前記検索点に対応する第1所定検索範囲内で検索を実行して、最近傍点セットを決定するように構成される第1決定ユニットと、を備え、前記第2ノードセットは、前記点群データ内の現在レイヤのデータに対応する予測データセットである。
本願実施例は、デコーダを提供し、前記デコーダは、
検索対象となる点群データのモートンコードセットを取得するように構成される第2取得ユニットと、
前記モートンコードセット及び第1距離閾値に基づいて、前記点群データをレイヤ分けして、現在レイヤのデータを取得するように構成される第2分割ユニットと、
前記点群データ内の現在レイヤのデータに対応する予測データのモートンコードビットを、第1所定ビット数だけ右シフトして、対応する第1親ノードセットを取得するように構成される第2シフトユニットと、
前記現在レイヤのデータのモートンコードに基づいて、前記第1親ノードセットで、隣接領域を決定し、前記隣接領域で、前記現在レイヤのデータの最近傍点セットを決定し、前記隣接領域が決定されない場合、第2ノードセットに基づいて、前記現在レイヤのデータの検索点を決定し、前記検索点に対応する第1所定検索範囲内で検索を実行して、最近傍点セットを決定するように構成される第2決定ユニットと、を備え、前記第2ノードセットは、前記点群データ内の現在レイヤのデータに対応する予測データセットである。
本願実施例は、エンコーダを更に提供し、前記エンコーダは、第1メモリと、第1プロセッサと、を備え、
前記第1メモリは、前記第1プロセッサで実行可能なコンピュータプログラムを記憶するように構成され、
前記第1プロセッサは、前記コンピュータプログラムを実行するときに、エンコーダ側に係る最近傍検索方法を実行するように構成される。
本願実施例は、デコーダを更に提供し、前記デコーダは、第2メモリと、第2プロセッサと、を備え、
前記第2メモリは、前記第2プロセッサで実行可能なコンピュータプログラムを記憶するように構成され、
前記第2プロセッサは、前記コンピュータプログラムを実行するときに、デコーダ側に係る最近傍検索方法を実行するように構成される。
本願実施例は、コンピュータプログラムが記憶されたコンピュータ可読記憶媒体を提供し、前記コンピュータプログラムは、第1プロセッサに、エンコーダ側に係る最近傍検索方法を実行させるか、又は第2プロセッサに、デコーダ側に係る最近傍検索方法を実行させる。
本願の一例示的な実施例によるG-PCC符号化のフロー図である。 本願の一例示的な実施例によるG-PCC復号化のフロー図である。 本願の一例示的な実施例による最近傍検索方法のフローチャートである。 本願の一例示的な実施例による初期右シフトビット数を決定するフローチャートである。 本願の一例示的な実施例による現在ノードと隣接ノードとの空間関係の概略図である。 本願の一例示的な実施例によるエンコーダの概略構造図である。 本願の一例示的な実施例によるエンコーダの具体的なハードウェア構造の概略図である。 本願の一例示的な実施例によるデコーダの概略構造図である。 本願の一例示的な実施例によるデコーダの具体的なハードウェア構造の概略図である。
以下では、本願実施例における図面を参照して、本願実施例の技術的解決策について、明確且つ完全に説明する。
本願の一例示的な実施例は、最近傍検索方法を提案し、当該方法は、フロントカメラ又はリアカメラ機能を備えたモバイル機器に適用され、前記モバイル機器は、様々な形態で実装され得る。例えば、本願の一例示的な実施例で説明されるモバイル機器は、携帯電話、タブレットコンピュータ、パームトップコンピュータ、携帯情報端末(PDA:Personal Digital Assistant)などを含み得る。また、この方法によって実現される機能は、モバイル機器内のプロセッサがプログラムコードを呼び出すことによって実現でき、もちろん、プログラムコードは、コンピュータ記憶媒体に記憶され得、当該モバイル機器は、少なくともプロセッサ及び記憶媒体を含むことが分かる。点群G-PCCエンコーダフレームワークでは、入力3D画像モデルの点群をsliceに分割した後、各sliceを個別に符号化する。
図1を参照すると、図1は、関連する技術方案によるG-PCC符号化のフロー図である。図1に示すG-PCC符号化のフロー図では、この方法は、点群エンコーダ(Encoder)に適用され、符号化対象となる点群データの場合、まず、slice分割により、点群データを複数のsliceに分割する。各sliceにおいて、点群のジオメトリ情報と各点群に対応する属性情報は別々に符号化される。ジオメトリ符号化プロセスでは、まず、点群がすべて1つのbounding box(境界ボックス)に含まれるように、ジオメトリ情報に対して座標変換を実行し、次に、量子化を実行し、この量子化のステップは、主にスケーリングの役割を果たし、量子化の丸めにより、一部の点群のジオメトリ情報は同じになるため、パラメータに基づいて重複点を削除するかどうかを決定する。重複点を量子化して削除するプロセスは、ボクセル化プロセスとも呼ばれる。次に、bounding boxに対して八分木分割を実行する。八分木に基づくジオメトリ情報符号化プロセスでは、八分木に基づくジオメトリ情報符号化プロセスでは、境界ボックスを8つのサブ立方体に均等に分割し、空でないサブキューブ(点群内の点を含む)を8つの等しい部分に分割し続け、分割によって取得された葉ノードが1×1×1の単位立方体になったら分割を停止し、葉ノード内の点に対して算術符号化を実行して、バイナリジオメトリビットストリーム、即ち、ジオメトリコードストリームを生成する。トリスープ(trisoup:triangle soup)に基づくジオメトリ情報符号化プロセスでも、八分木分割が必要であるが、八分木に基づくジオメトリ情報符号化とは異なり、trisoupは、点群を1×1×1の辺長の単位立方体に分割する必要がなく、block(サブブロック)の辺長がWになったら分割を停止し、各block内の点群の分布によって形成されるサーフェスに基づいて、当該サーフェスとblockの12個のエッジによって生成される最大12個のvertex(交点)を取得し、vertexに対して算術符号化を実行(交点に基づくサーフェスフィッティング)して、バイナリのジオメトリビットストリーム、即ち、ジオメトリコードストリームを生成する。Vertexは、ジオメトリ再構築プロセスの実装にも使用され、再構築されたセット情報は、点群の属性符号化に使用される。
ジオメトリ符号化が完了した後、ジオメトリ情報を再構築する。現在、属性符号化は、主に色情報に対して実行されている。属性符号化プロセスでは、まず、色情報(即ち、属性情報)をRGB色空間からYUV色空間に変換する。次に、符号化されていない属性情報が再構築されたジオメトリ情報に対応するように、再構築されたジオメトリ情報を使用して点群を再色付けする。色情報の符号化プロセスでは、主に2つの変換方法があり、1つの方法は、詳細レベル(LOD:Level of Detail)分割に依存する距離ベースのリフティング変換であり、現在、LOD分割は、主に距離に基づくLOD分割(主にCategory1シーケンスの場合)と固定サンプリングレートに基づくLOD分割(主にCategory3シーケンスの場合)の2つの方法に分けられる。もう1つの方法は、領域適応階層変換(RAHT:Region Adaptive Hierarchal Transform)の変換を直接実行することである。ここで、これらの2つの方法は両方とも、色情報を空間領域から周波数領域に変換し、変換によって高周波係数と低周波係数を取得し、係数を量子化し(即ち、係数の量子化)。最後に、八分木分割及びサーフェスフィッティングされたジオメトリ符号化データと、係数量子化処理された属性符号化データとをslice合成した後、各blockのvertex座標を順次符号化(即ち、算術符号化)し、バイナリ属性ビットストリーム、即ち、属性コードストリームを生成する。
図2を参照すると、図2は、関連する技術方案によるG-PCC復号化のフロー図である。図2に示すG-PCC復号化フローチャートでは、この方法は、点群デコーダ(Decoder)に適用される。取得されたバイナリコードストリームの場合、まず、バイナリコードストリーム内のジオメトリビットストリームと属性ビットストリームを個別に復号化する。ジオメトリビットストリームを復号化するとき、算術復号化-八分木合成-サーフェスフィッティング-ジオメトリ再構築-逆座標変換によって、点群のジオメトリ情報を取得し、属性ビットストリームを復号化するとき、算術復号化-逆量子化-LODに基づくリフティング逆変換又はRAHTに基づく逆変換-逆色変換によって、点群の属性情報を取得し、ジオメトリ情報及び属性情報に基づいて、符号化対象となる点群データの3D画像モデルを復元する。
関連する技術方案では、モートンコードに基づくLOD分割の技術案が提案されている。すべての点のトラバース検索に基づく元のLOD分割の技術案と比較すると、モートンコードに基づくLOD分割の技術案は、計算の複雑さを軽減することができる。
本願実施例は、エンコーダ(点群エンコーダでもあり得る)又はデコーダ(点群デコーダ)に適用される最近傍検索方法を提供する。
以下では、図面を参照して本願の各実施例について詳細に説明する。
図3を参照すると、図3は、本願実施例による分割方法のフロチャートである。図3に示すように、当該方法は、エンコーダ又はデコーダに適用され、以下のステップを含み得る。
ステップS101において、検索対象となる点群データのモートンコードセットを取得する。
点群において、点群データは、点群内のすべての点、又は点群内の一部の点であり得、これらの点は、空間に比較的集中していることに留意されたい。
また、本願実施例は、lifting及びPredicting属性変換におけるLODの生成プロセスを改善することを目的としていることに留意されたい。つまり、lifting又はPredicting変換を実行する前に、まずこの分割方法を使用して、LODレイヤの分割を実行する必要がある。具体的には、当該分割方法は、図1に示すG-PCC符号化フロ―図におけるLOD生成部分に適用されてもよいし、図2に示すG-PCC復号化フロチャートにおけるLOD生成部分に適用されてもよく、又は、図1に示すG-PCC符号化フロチャートにおけるLOD生成部分と、図2に示すG-PCC復号化フローチャートにおけるLOD生成部分とに同時に適用されてもよいが、本願実施例はこれに限定されない。
本願実施例では、検索対象となる点群データは、最近傍点を決定する必要のある点群データとして理解でき、例えば、点群データを圧縮及び符号化するプロセスでは、まず、当該点群データのモートンコードセットを決定する。いくつかの可能な実現形態では、まず、検索対象となる点群データ、例えば、3Dビデオを形成するために使用される点群データなどを取得する。次に、前記点群データのモートンコードを決定し、例えば、点群データのバイナリ符号化データストリームを決定し、次に、当該バイナリ符号化データストリームに基づいて、点群データのモートンコードを決定することができる。最後に、前記点群データのモートンコードを昇順に並べて、複数のモートンコードを含む前記モートンコードセットを取得する。別の実施例では、また、点群データのモートンコードを降順に並べて、複数のモートンコードを含む前記モートンコードセットを取得したり、点群データのモートンコードを任意の特定の順序(例えば、任意に設定された、真ん中が最大で、両端に向かって順次小さくなる順序など)に並べて、モートンコードセットを取得したりすることができる。つまり、モートンコードセット内のモートンコードの配列は順序付けられている。
このように、検索対象となる点群データを取得した後、まず、検索対象となる点群データ内の点のモートンコードを計算して、モートンコードセットを取得することにより、後続の反復演算で、モートンコードを使用して、現在ノードに対応する親ノードの隣接ノードを検索することができ、したがって、LODレイヤの分割を実行するとき、現在ノードをサンプリング点として隣接ノードを予測するのに有利である。
ステップS102において、モートンコードセット及び第1距離閾値に基づいて、点群データをレイヤ分けして、現在レイヤのデータを取得する。
ここで、当該第1距離閾値に従って、モートンコードセットから、現在点までの距離が第1距離閾値より小さい点を選択して、現在レイヤのデータを取得し、1つのレイヤのデータが分割されるたびに、第1距離閾値は徐々に増加し、即ち、現在レイヤのデータの次のレイヤのデータを分割するときに使用される第1距離閾値は、現在レイヤのデータに使用される第1距離閾値より大きい。即ち、現在レイヤのデータの次のレイヤのデータの密度は、現在レイヤのデータの密度より小さい。
いくつかの可能な実現形態では、まず、モートンコードセットに基づいて、最初のモートンコードに対応する点を少なくとも含む第2セットを決定する。
例えば、昇順に並べられたモートンコードセット内の最初のモートンコードに対応する点を、第2セット内の点とする。
次に、点群データ内の現在処理されている現在点と、第2セット内の点との距離が前記第1距離閾値以下である場合、現在点を第1セットに入れる。
最初に、第1セットは空セットに初期化され、点群データ内の現在処理されている現在点と、第2セット内の点との距離が第1距離閾値以下である場合、現在点を前記第1セットに入れることに留意されたい。即ち、最初の第1セットは、空セットである。
例えば、モートンコードセットから、現在点に近い点を決定し、即ち、取得された第1セット内の点の密度は大きい。モートンコードセット内の2番目のモートンコードに対応する点と、第2セット内のすべての点との距離を判断し、いずれかの距離が第1距離閾値以下である場合、現在点を第1セットに入れる。
また、現在点と第2セット内の点との距離が第1距離閾値より大きい場合、現在点を第2セットに入れる。
具体的な一例では、モートンコード順に点をトラバースし、トラバースされている現在点Pの場合、Pと第2セットO(k)内の点との距離が第1距離閾値以下であるかどうかを判断し、第1距離閾値以下である場合、Pを第1セットL(k)に入れ、そうでない場合、PをO(k)に入れる。ここで、PとO(k)内の点との距離を判断するとき、O(k)内の点の数が128を超える場合、O(k)内の最後の128個の点のみを使用して、点Pとこれらの点との距離が第1距離閾値より大きいかどうかを判断して、当該点Pを、第1セットに入れるか又は第2セットに入れるかを決定する。このように、第2セット内の末尾に配列された所定数量の点と、現在点との距離を判断して、当該現在点を第1セットに入れるべきか又は第2セットに入れるべきかを決定することにより、複雑さを軽減し、第2セット内の末尾に配列された点は、現在点のモートンコードに近いので、このように取得された最終的な隣接領域が最近傍点を含む可能性がより高い。
最後に、第2セット内の、現在点との距離が第2距離閾値以下である点を決定して、現在レイヤのデータを取得する。
いくつかの可能な実現形態では、第2セットには、複数の点が含まれ得、点群データ内の現在点と第2セット内の点との距離が第1距離閾値より小さい点を、第1レイヤのデータとして使用する。次に、点群データ内の残りの点と、更新された第2セット内の点との距離を順次トラバースし、距離が第2距離閾値より小さい点を、第2レイヤのデータとして使用し、再度更新された第2セットを取得する。次に、点群データ内の残りの点と、再度更新された第2セット内の点との距離を順次トラバースし、距離が別の距離閾値(当該別の距離閾値は、第2距離閾値より大きい)より小さい点を、第3レイヤのデータとして使用し、点群データが複数のレイヤのデータに分割されるまで上記の処理を繰り返す。
ステップS103において、点群データ内の現在レイヤのデータに対応する予測データのモートンコードビットを、第1所定ビット数だけ右シフトして、対応する第1親ノードセットを取得する。
ここで、点群データ内の現在レイヤのデータに対応する予測データのモートンコードビットを、第1所定ビット数だけ右シフトすることは、当該予測データのモートンコードに対応する範囲を複数倍拡大することとして理解できる。
第1所定ビット数は、所定の非負整数であることに留意されたい。これには、第1所定ビット数が0である場合、即ち、シフトなしの場合が含まれる。例えば、現在レイヤが最初のレイヤである場合、第1所定ビット数は0であり得、本願実施例はこれに限定されない。
例示的に、第1所定ビット数は3であり、即ち、範囲は23倍に拡大されるが、本願実施例はこれに限定されない。したがって、第1親ノードセットは、右シフトされた後の予測データのモートンコードセットである。
この場合、第2ノードセットは、点群データ内の現在レイヤのデータに対応する予測データセットである。予測データは、現在レイヤのデータに対応する予測点であり、現在レイヤのデータは、予測対象となる点である。
本願のいくつかの実施例では、現在レイヤが最初のレイヤでない場合、第1所定ビット数を介して、第1親ノードセットを取得し、前のレイヤのデータの点は、レイヤ分けされたデータを除いた、点群データの予測データであり、当該データは事前設定されており、例えば、3であるが、本願実施例はこれに限定されない。
本願実施例では、エンコーダが符号化するとき、エンコーダは、第1所定ビット数をコードストリームに書き込む必要がある。ここで、第1所定ビット数は、所定の非負整数である。
ここで、第1所定ビット数を、コードストリーム内のパラメータセットデータユニットに書き込むことができる。
デコーダの復号化プロセスでは、コードストリームを解析して、第1所定ビット数を取得するとき、まず、コードストリーム内のパラメータセットデータユニットを解析して、第1所定ビット数を取得する必要がある。第1所定ビット数は、非負整数である。
本願実施例では、パラメータセットデータユニットは、コードストリーム内のデータユニットの一部又はすべてを復号化するために使用されるパラメータを含む。
本願実施例では、パラメータセットデータユニットは、シーケンスパラメータセットデータユニット(Sequence Parameter Set)である。
本願実施例では、パラメータセットデータユニットは、点群データの属性情報を含み、ここで、属性情報は、点群データ内の点に関連付けられたスカラー又はベクトル属性である。即ち、パラメータセットデータユニットは、属性パラメータセット(Attribute parameter set)であり得る。
本願実施例では、パラメータセットデータユニットは、点群データのジオメトリ情報を含み、ここで、ジオメトリ情報は、点群データ内の点に関連付けられたデカルト座標である。即ち、パラメータセットデータユニットは、ジオメトリパラメータセット(Geometry parameter set)であり得る。
本願のいくつかの実施例では、第1所定ビット数を取得するプロセスは、所定間隔に従ってモートンコードセットをサンプリングして、サンプリング点セットを取得することであって、ここで、前記モートンコードセットは、前記予測データのすべて又は一部のモートンコードを含むことと、サンプリング点セット内の点のモートンコードビットをnビット右シフトして、サンプリング親ノードセットを取得することであって、ここで、各サンプリング親ノードは、1つの右シフトされたモートンコードに対応することと、サンプリング親ノードセットに対応する領域内の、サンプリング点を除いた隣接点を決定することと、サンプリング親ノードセット内の隣接点の平均数が所定の平均閾値より大きい場合、nビット数を第1所定ビット数の値として決定することと、を含み、nは、非負整数である。
ここで、サンプリング点セット内のサンプリング点の数は、H個であり、Hは、0より大きい正の整数であり、本願実施例はこれに限定されない。
本願のいくつかの実施例では、並べ替えられたモートンコードをサンプリングして、K個のサンプリング点のモートンコードを取得し、ここで、Kは、0より大きい正の整数であり、K個のサンプリング点のモートンコードに対して右シフト処理を実行して、右シフトされたモートンコードに対応するK個のサンプリング点を取得し、右シフトされたモートンコードに対応するK個のサンプリング点に関連して、各サンプリング点が平均で少なくとも1つの隣接ノードに対応するかどうかを判断し、右シフトされたモートンコードに対応するK個のサンプリング点が、各サンプリング点が平均で少なくとも1つの隣接ノードに対応するという条件を満たさない場合、K個のサンプリング点のモートンコードに対して右シフト処理を実行するステップを引き続き実行し、右シフトされたモートンコードに対応するK個のサンプリング点が、各サンプリング点が平均で少なくとも1つの隣接ノードに対応するという条件を満たす場合、K個のサンプリング点の右シフトビット数を取得し、右シフトビット数を、分割対象となる点群内の点のモートンコードの初期右シフトビット数として決定し、ここで、初期右シフトビット数は、分割対象となる点群内の点のモートンコードの、0番目のLODレイヤに対応する右シフトビット数Nを表す。
つまり、LODレイヤを最初に分割するとき、即ち、0番目のLODレイヤを分割するとき、まず、並べ替えられたモートンコードをサンプリングすることにより、K個のサンプリング点のモートンコードを取得し、次に、右シフトされたモートンコードに対応するK個のサンプリング点が、各サンプリング点が平均で少なくとも1つの隣接ノードに対応するという条件を満たすまで、このK個のサンプリング点のモートンコードに対して右シフト処理を実行し続け、最後に、取得された右シフトビット数を、初期右シフトビット数Nとする。
例示的に、図4に示すように、次のように実現する。
ステップS1において、点群をモートンコードの昇順に並べ、モートンコードに従って並べられたインデックスをサンプリングする。
例えば、Hが100であると仮定すると、等間隔に100個の点をサンプリング点として選択する。
ステップS2において、初期右シフトビット数を0に設定する。
ここで、初期右シフトビット数nを0に設定する。
ステップS3において、サンプリング点のモートンコードを毎回3ビットずつ右シフトする。
ここで、初期右シフトビット数n=0に設定し、次に、レイヤ分けするたびに、サンプリング点のモートンコードを3ビット右シフトする。
ステップS4において、右シフトされたモートンコードに対応する親ノードに含まれる隣接点の数を決定する。
ステップS5において、すべてのモートンコードの平均隣接点の数が1より大きいかどうかを判断する。
ここで、現在点を除いた親ノード内の残りの点は、現在点の近傍と見なされる。平均値が1より大きい場合は、ステップS6が実行され、このとき、右シフトビット数nは、初期右シフトビット数Nであり、循環プロセスを終了し、そうでない場合は、ステップS3に戻り、3ビット右シフトする操作を行う。
ステップS6において、右シフトビット数nは、初期右シフトビット数Nである。
LODレイヤが分割された後、最近傍検索を実行するとき、被予測点Pの場合、O(k)でその親ノードのモートンコードを探し出すことができる。図5に示すように、ブロック701は、現在の被予測点Pの親ノードである。現在の親ノードの場合、26個の隣接する隣接親ノードがある。隣接する親ノードと現在の親ノードとの座標差によって、1つのルックアップテーブルを確立し、このルックアップテーブルに基づいて、隣接する親ノードのモートンコードを算出する。これらのモートンコードを使用することで、O(k)でこれらの隣接モートンコードに対応するインデックスを探し出すことができ、それにより、これらのインデックスに対応する点をトラバースして、被予測点Pの最近傍を探し出すことができる。いくつかの実施例では、それ自体、共面、共線、共点である27個の隣接親ノードに加えて、隣接親ノードの範囲を拡大又は縮小することができる。このようにして、近傍の数を外側に拡張することができる。同様に、近傍の選択については、近傍の一部を選択して最近傍検索を実行することもできる。
ステップS104において、現在レイヤのデータのモートンコードに基づいて、第1親ノードセットで、隣接領域を決定し、隣接領域で、現在レイヤのデータの最近傍点セットを決定する。
ここで、隣接領域は、現在の親ノードに近い隣接領域として理解でき、このように、モートンコードを介して隣接領域を検索することにより、領域内の最近傍点を正確に検出できるという前提で、検索範囲を縮小することができる。
ここで、各レイヤのデータについて、1つの最近傍点セットが決定される。最近傍点セットは、特定のデータ量を含む最近傍点であり得る。特定のデータ量の量は、本願実施例では限定されない。
例示的に、特定のデータ量は、3つを含む。
いくつかの可能な実現形態では、まず、隣接領域内の点と、現在レイヤのデータ内の点との距離を決定して、距離セットを取得し、例えば、現在レイヤのデータにM個の点がある場合、このM個の点と隣接領域内の点との距離を決定して、距離セットを取得する。次に、距離セットから、第3距離閾値未満の目標距離を決定し、いくつかの実施例では、第3距離閾値は、比較的小さい値に設定することができ、当該第3距離閾値は、第1距離閾値より小さい。具体的な一例では、距離セットから、距離が最小であるK個の(Kは、0より大きい正の整数である)目標距離を決定することができる。最後に、前記目標距離に対応する点に基づいて、現在点の最近傍点セットを決定する。例えば、このN個の目標距離に対応する点を、現在点の最近傍点セットとする。また、このN個の目標距離に対応する点から、より小さい距離を持ついくつかの点を、現在点の最近傍点セットとして決定することができる。例えば、前記目標距離に対応する点から、所定数を満たす最小距離値に対応する点を決定して、前記現在点の最近傍点セットを取得する。ここで、Mは、0より大きい正の整数である。
具体的な一例では、目標距離に対応する点から、特定の数の最小距離値に対応する点を決定して、現在点の最近傍点セットを取得し、このようにして、最近傍点が正確に見つけられ、点群データの符号化性能が向上する。
いくつかの実施例では、距離セットに、距離が第3距離閾値より小さい目標距離が含まれていない場合、第2セットから、所定位置に並べられた点を、現在点の最近傍点セットとして決定する。例えば、現在点の前後に配列された最近傍のK個の点を、最近傍点セットとする。
本願の一例示的な実施例では、現在レイヤのデータのモートンコードに基づいて隣接領域を検索し、隣接領域が正確に見つけられることを前提として、最近傍点の検索範囲を縮小し、それにより、距離を計算する回数が減少し、より良い符号化性能及び効率が得られる。
ステップS105において、隣接領域が決定されない場合、第2ノードセットに基づいて、現在レイヤのデータの検索点を決定し、検索点に対応する第1所定検索範囲内で検索を実行して、最近傍点セットを決定し、第2ノードセットは、点群データ内の現在レイヤのデータに対応する予測データセットである。
本願実施例では、現在レイヤのデータのモートンコード及び第1親ノードセットに基づいて、現在レイヤのデータの最近傍点セットが決定されない場合、第2ノードセットに基づいて、現在レイヤのデータの検索点を決定し、検索点に対応する第1所定検索範囲内で検索を実行し、それにより、候補点セットを決定し、候補点セットから、現在点に最も近いK個の点を、最近傍点セットとして決定し、ここで、第2ノードセットは、点群データ内の現在レイヤのデータに対応する予測データセットである。Kは、0より大きい正の整数である。
第2ノードセットは、現在レイヤで取得された第2セットであることに留意されたい。
本願のいくつかの実施例では、第2ノードセットから、現在レイヤのデータの現在点の現在のモートンコードより大きい最初のモートンコードを決定し、最初のモートンコードに対応する点を検索点として設定する。
例示的に、D0(初始距離の閾値)及びρ(隣接するLODレイヤが分割されるときの距離閾値の比率)は、それぞれユーザ定義の初期パラメーターであり、ρ>1である。Iがすべての点のインデックスを表すと仮定すると、k回目の反復において、LODkの点について、最近傍、即ち、距離が最も近い点が、LOD0からLODk-1番目のレイヤまで検索され、k=1,2,...,N-1である。ここで、Nは、LOD分割のレイヤの総数であり、k=0の場合、0回目の反復において、LOD0内の点について、LOD0内で最近傍を直接検索する。具体的なプロセスは以下の通りである。
(2)、k回目の反復において、セットL(k)は、k番目のレイヤのLODに属する点を含み、セットO(k)は、LODkレイヤより細かいレベルの点セットを含む。ここで、L(k)及びO(k)の計算プロセスは以下の通りである。
まず、O(k)及びL(k)は、いずれも空セットに初期化される。
(3)、毎回の反復のプロセスでは、セットL(k)及びO(k)は、別々に計算され、O(k)内の点は、セットL(k)内の点を予測するために使用される。セットR(k)=L(k)\L(k-1)、即ち、R(k)は、LOD(k-1)とLOD(k)との差分部分の点セットを表すと仮定すると、セットR(k)内の点について、セットO(k)で、最も近いh個の予測近傍を見つける。最近傍を見つける具体的なプロセスは以下の通りである。
a、セットR(k)内の点Pの場合、その点に対応するモートンコードは、Mである。
b、セットO(k)で、現在点Pに対応するモートンコードMより大きい最初の点のインデックスjを見つける。
c、インデックスjに基づいて、セットO(k)内の1つの検索範囲[j-searchrange,j+searchrange]内で、現在点Pの最近傍(ここで、searchrangeは、1つの検索範囲、即ち、第1所定検索範囲を表し、通常は、8、16、32、64の値を取る)を見つける。
(4)、セットIのすべての点がトラバースされるまで、(1)~(3)の処理を繰り返すことにより、候補点セットを取得し、これらの候補点セットから、被予測点に最も近いK個の点を見つけ、最近傍点セットとして使用し、K個の最近傍点を取得する。
つまり、本願実施例では、すべてのインデックスは、最初のLOD分割の入力点群として、入力点群セットIに含まれており、アルゴリズムは継続的に反復され、k回目の反復では、まず、LODの分割を実行し、即ち、入力点群セットIをL(k)とO(k)に分割し、次に、L(k)に属する点に対して、O(k)で最近傍検索を実行する。ここで、O(k)は、次回の反復の入力点群セットとして使用される。
理解できるように、点群データのモートンコードを分割することによって、現在レイヤのデータを取得し、次に、現在レイヤのデータのモートンコードに基づいて隣接領域を決定し、当該隣接領域で当該現在レイヤのデータの最近傍点セットを決定する。このように、現在レイヤのデータのモートンコードに基づいて隣接領域を検索し、隣接領域が正確に見つけられることを前提として、最近傍点の検索範囲を縮小し、現在レイヤのデータのモートンコードに基づいて隣接領域が検索されなかった場合、第2セットに基づいて隣接領域を検索することができ、これにより、検索成功率を向上させることができる。
本願のいくつかの実施例では、ステップS104の実現は、デコーダによって実行されるステップS1041~ステップS1047を含み得、又は、エンコーダによって実行されるステップS1041~ステップS1044、ステップS1046~ステップS1048を含み得る。具体的には以下の通りである。
ステップS1041において、第1親ノードセットにおいて、現在レイヤのデータ内の現在点が属する現在の親ノードを決定する。
ステップS1042において、現在の親ノードに隣接する隣接親ノードセットを決定し、隣接親ノードセットは、すべての隣接ノードの親ノード又は一部の隣接ノードの親ノードを含む。
ステップS1043において、プリセットルックアップテーブル、現在の親ノード、及び現在レイヤのデータのモートンコードに基づいて、隣接親ノードのモートンコードを決定する。
ステップS1044において、隣接親ノードのモートンコードに対応する領域を、隣接領域として決定する。
本願実施例では、現在レイヤのデータは、複数の現在点を含み、ここで、第1親ノードセットにおいて、現在レイヤのデータの各現在点が属する親ノードを決定し、当該現在の親ノードに隣接する隣接親ノードセットを決定する。
本願実施例では、1つの現在点に対応する親ノードの隣接する親ノードの数は複数であり、本願実施例はこれに限定されないことに留意されたい。
本願実施例では、隣接親ノードセットは、現在点の親ノードに対応するすべての隣接ノードの親ノードを含むか、又は現在点の親ノードに対応する一部の隣接ノードの親ノードを含み得、本願実施例はこれに限定されない。
例示的に、図5に示すように、ブロック701は、現在の被予測点Pの親ノードである。現在の親ノードの場合、26個の隣接する隣接親ノードがある。隣接親ノードの数は、それ自体、共面、共線、共点である27個の隣接親ノードに加えて、隣接親ノードの範囲を拡大又は縮小することができる。このようにして、近傍の数を外側に拡張することができる。
本願実施例では、プリセットルックアップテーブルが設定され、当該プリセットルックアップテーブルは、現在の親ノードと隣接親ノードセットとの間の対応関係を表すことができ、隣接親ノードのモートンコードを決定するために使用される。
いくつかの実施例では、ルックアップテーブルを確立することは、以下の方式によって実現することができる。
方式一:まず、隣接親ノードの座標値と、現在の親ノード座標値との差分値を決定し、差分値セットを取得する。
例えば、各隣接親ノードの3D座標と、現在の親ノードの3D座標との差分値を決定し、差分値セットを取得する。
次に、差分値セットと、隣接親ノードセットと、現在の親ノードとの間の所属関係に基づいて、ルックアップテーブルを確立する。
ここで、所属関係は、隣接親ノードセットと現在の親ノードが互いに隣接していることを表すために使用される。各差分値は、1つの隣接親ノードに対応し、各隣接親ノードには、独自の現在の親ノードがあり、したがって、このようにしてルックアップテーブルを確立した後、ルックアップテーブル内の差分値、及び既知の現在の親ノードの3D座標に基づいて、隣接親ノードの3D座標を決定することができ、それにより、各隣接親ノードのモートンコードを取得することができる。
方式二:所属関係、及び隣接親ノードセット内の中心点から現在の親ノードの中心までの距離値に基づいて、ルックアップテーブルを確立する。
いくつかの可能な実現形態では、隣接ノードの重みを特定の値に変更し、ルックアップテーブル法を使用することにより、アルゴリズムの複雑さを軽減することができる。例えば、各隣接点の重み値を、隣接親ノードの中心点から現在点までの距離値に設定し、当該距離値を重み値として、所属関係と組み合わせてルックアップテーブルを確立し、それにより、ルックアップテーブルにおける距離値及び現在の親ノードの座標値に基づいて、隣接親ノードの3D座標を取得し、更に、隣接親ノードのモートンコードを取得することができる。
方式三:まず、隣接親ノードのモートンコード及び現在の親ノードのモートンコードに基づいて、隣接親ノードと現在の親ノードとの間のハミング距離及びモートンコード差分値を決定する。次に、ハミング距離、モートンコード差分値、及び所属関係に基づいて、ルックアップテーブルを確立する。このようにして、ルックアップテーブルを確立した後、当該ルックアップテーブル及び既知の現在の親ノードの座標値に基づいて、隣接親ノードのモートンコードを取得することができる。
本願実施例では、プリセットルックアップテーブル、現在の親ノード、及び現在レイヤのデータのモートンコードに基づいて、隣接親ノードのモートンコードを決定し、隣接親ノードのモートンコードに対応する領域を、隣接領域として決定する。
隣接親ノードのモートンコードが占める領域を、隣接領域として決定し、例えば、まず、第2セットにおいて、隣接親ノードのモートンコードのシーケンス番号を決定し、次に、シーケンス番号に基づいて、隣接親ノードのモートンコードに対応する領域を決定し、最後に、隣接親ノードのモートンコードが占める領域の少なくとも一部の領域を、隣接領域とすることに留意されたい。例えば、隣接親ノードのモートンコードが占める全領域を隣接領域とするか、又は、隣接親ノードのモートンコードが占める領域の一部を隣接領域とする。このようにして、隣接領域を取得した後、最近傍点を検索する順序は、それ自体、共面、共線、共点の順に検索することができ、この領域に存在する複数の隣接点について、空間位置の分布に従って選択が行われ、空間分布が均一な3つの隣接点を選択することで、3つの隣接点が被予測点と同じ側にある状況を回避でき、それにより、検出された最近傍点セットがより正確になる。
ステップS1045において、コードストリームを解析して、所定検索回数を取得する。
デコーダで実施される場合、デコーダは、まず、コードストリームから、エンコーダが符号化を実行するときに使用した所定検索回数を解析する必要がある。後続の処理で当該所定検索回数を再度使用する。エンコーダには、当該プロセスが存在しない。
ステップS1046において、隣接領域内で、所定検索回数に従って隣接親ノードのモートンコードに対応する点をトラバースして、候補隣接セットを取得する。
ステップS1047において、候補隣接セットから、現在レイヤのデータの現在点に対応する最近傍点セットを決定する。
本願実施例では、隣接領域内で、所定検索回数に従って隣接親ノードのモートンコードに対応する点をトラバースして、候補隣接セット、即ち、候補点セットを取得し、次に、候補隣接セットから、現在点に最も近いK個の最近傍点、即ち、最近傍点セットを見つける。ここで、Kは、0より大きい正の整数である。
ステップS1048において、所定検索回数をコードストリームに書き込む。
本願実施例では、現在点に対応する最近傍点を決定するプロセスにおいて、エンコーダは、デコーダが復号化中に使用できるようにするために、採用された所定検索回数をコードストリームに書き込む必要がある。
本願実施例では、所定検索回数は、候補点の上限値であり、当該所定検索回数を超えてもK個の最近傍点が見つからなかった場合、ステップS105の方式を使用して、K個の最近傍点の処理を実行することに留意されたい。
本願実施例では、所定検索回数は、LiftingNeighborSearchTimesで表すことができる。
例示的に、現在の親ノードの場合、26個の隣接する隣接親ノードがある。隣接親ノードと現在の親ノードとの座標差によって、1つのルックアップテーブルを確立し、このルックアップテーブルに基づいて、隣接親ノードのモートンコードを算出する。上記のモートンコードに基づいて、O(k)から、現在の親ノード及びこれら26個の近傍又はそのうちの一部の近傍のモートンコードに対応するインデックスを見つけることができ、これらのインデックスに対応する点を候補点としてトラバースし、候補点から被予測点P(現在点)のK個の最近傍点を見つけることができる。
本願のいくつかの実施例では、最近傍を決定する方法は、予測点と被予測点との距離を計算することにより、距離が最小であるK個の予測点を見つけ、それらを被予測点の近傍点、即ち、最近傍点とすることであり、一方、最近傍点と被予測点との距離を、被予測点と予測点との間の重み値とする。
図6は、本願の一例示的な実施例によるエンコーダの概略構造図である。図6に示すように、エンコーダ1は、
検索対象となる点群データのモートンコードセットを取得するように構成される第1取得ユニット10と、
前記モートンコードセット及び第1距離閾値に基づいて、前記点群データをレイヤ分けして、現在レイヤのデータを取得するように構成される第1分割ユニット11と、
前記点群データ内の現在レイヤのデータに対応する予測データのモートンコードビットを、第1所定ビット数だけ右シフトして、対応する第1親ノードセットを取得するように構成される第1シフトユニット12と、
前記現在レイヤのデータのモートンコードに基づいて、前記第1親ノードセットで、隣接領域を決定し、前記隣接領域で、前記現在レイヤのデータの最近傍点セットを決定し、前記隣接領域が決定されない場合、第2ノードセットに基づいて、前記現在レイヤのデータの検索点を決定し、前記検索点に対応する第1所定検索範囲内で検索を実行して、最近傍点セットを決定するように構成される第2決定ユニット13と、を備え、前記第2ノードセットは、前記点群データ内の現在レイヤのデータに対応する予測データセットである。
本願のいくつかの実施例では、前記第1決定ユニット13はさらに、前記第1親ノードセットにおいて、前記現在レイヤのデータ内の現在点が属する現在の親ノードを決定し、前記現在の親ノードに隣接する隣接親ノードセットを決定し、プリセットルックアップテーブル、前記現在の親ノード、及び前記現在レイヤのデータのモートンコードに基づいて、隣接親ノードのモートンコードを決定し、前記隣接親ノードのモートンコードに対応する領域を、前記隣接領域として決定するように構成される。
本願のいくつかの実施例では、前記エンコーダ1はさらに、書き込みユニット14を備え、
前記第1決定ユニット13はさらに、前記隣接領域で、所定検索回数に従って前記隣接親ノードのモートンコードに対応する点をトラバースして、候補隣接セットを取得し、前記候補隣接セットから、現在レイヤのデータの現在点に対応する前記最近傍点セットを決定するように構成され、
前記書き込みユニット14は、前記所定検索回数をコードストリームに書き込むように構成される。
本願のいくつかの実施例では、前記第1決定ユニット13はさらに、前記第2ノードセットから、前記現在レイヤのデータの現在点の現在のモートンコードより大きい最初のモートンコードを決定し、前記最初のモートンコードに対応する点を前記検索点として設定するように構成される。
本願のいくつかの実施例では、前記第1分割ユニット11はさらに、前記モートンコードセットに基づいて、最初のモートンコードに対応する点を少なくとも含む第2セットを決定し、前記点群データ内の現在処理されている現在点と、前記第2セット内の点との距離が前記第1距離閾値以下である場合、前記現在点を第1セットに入れ、前記現在点と前記第2セット内の点との距離が前記第1距離閾値より大きい場合、前記現在点を前記第2セットに入れ、第2セット内の、前記現在点との距離が第2距離閾値以下である点を決定して、前記現在レイヤのデータを取得するように構成され、ここで、前記第1距離閾値は、前記第2距離閾値より小さい。
本願のいくつかの実施例では、前記第1所定ビット数は、所定の非負整数である。
本願のいくつかの実施例では、前記第1取得ユニット10はさらに、所定間隔に従ってモートンコードセットをサンプリングして、サンプリング点セットを取得し、ここで、前記モートンコードセットは、前記予測データのすべて又は一部のモートンコードを含み、前記サンプリング点セット内の点のモートンコードビットをnビット右シフトして、サンプリング親ノードセットを取得し、前記サンプリング親ノードセットに対応する領域内の、前記サンプリング点を除いた隣接点を決定し、前記サンプリング親ノードセット内の隣接点の平均数が所定の平均閾値より大きい場合、前記nビット数を前記第1所定ビット数の値として決定するように構成され、nは、非負整数である。
本願のいくつかの実施例では、前記第1取得ユニット10はさらに、検索対象となる点群データを取得し、前記点群データのモートンコードを決定し、前記点群データのモートンコードを昇順に並べて、複数のモートンコードを含む前記モートンコードセットを取得するように構成される。
本願のいくつかの実施例では、前記書き込みユニット14はさらに、前記第1所定ビット数をコードストリームに書き込むように構成される。
本願のいくつかの実施例では、前記書き込みユニット14はさらに、前記第1所定ビット数をコードストリーム内のパラメータセットデータユニットに書き込むように構成される。
本願のいくつかの実施例では、前記パラメータセットデータユニットは、シーケンスパラメータセットデータユニットである。
本願のいくつかの実施例では、前記パラメータセットデータユニットは、前記点群データの属性情報を含み、ここで、前記属性情報は、前記点群データ内の点に関連付けられたスカラー又はベクトル属性である。
本願のいくつかの実施例では、前記パラメータセットデータユニットは、前記点群データのジオメトリ情報を含み、ここで、前記ジオメトリ情報は、前記点群データ内の点に関連付けられたデカルト座標である。
本願のいくつかの実施例では、前記隣接親ノードセットは、すべての隣接ノードの親ノード又は一部の隣接ノードの親ノードを含む。
実際の応用では、図7に示すように、図7は、本願の一例示的な実施例によるエンコーダのハードウェアエンティティの概略図であり、前記エンコーダは、
第1プロセッサ15と、前記第1プロセッサ15によって実行可能なコンピュータプログラムが記憶された第1メモリ16とを、備え、前記第1メモリ16は、第1通信バス17を介して前記第1プロセッサ15に依存して動作し、前記コンピュータプログラムが前記第1プロセッサ15に、上記のエンコーダ側に係る最近傍検索方法を実行させる。
本実施例では、「ユニット」は、回路の一部、プロセッサの一部、プログラムの一部、又はソフトウェアなどであってもよく、もちろん、モジュールであってもよいし、非モジュール式ものであってもよいことが理解できる。また、本実施例における各構成要素は、1つの処理ユニットに統合されてもよく、各ユニットが物理的に別個に存在してもよく、2つ以上のユニットが1つのユニットに統合されてもよい。上記統合されたユニットは、ハードウェアの形で実現されてもよく、ソフトウェア機能モジュールの形で実現されてもよい。
前記統合されたユニットが、ソフトウェア機能モジュールの形で実装され、独立した製品として販売又は使用されない場合、1つのコンピュータ可読記憶媒体に記憶することができる。このような理解に基づいて、本実施例の技術的解決策の本質的な部分、即ち、先行技術に貢献のある部分、又は当該技術の解決策の全部又は一部は、ソフトウェア製品の形で具現されることができ、当該コンピュータソフトウェア製品は、1つの記憶媒体に記憶され、一台のコンピュータ機器(パーソナルコンピュータ、サーバ、又はネットワーク機器などであり得る)又はprocessor(プロセッサ)に、本実施例に記載の方法のステップの全部又は一部を実行させるためのいくつかの命令を含む。前述した記憶媒体は、Uディスク、モバイルハードディスク、読み取り専用メモリ(ROM:Read Only Memory)、ランダムアクセスメモリ(RAM:Random Access Memory)、磁気ディスク又は光ディスクなど、プログラムコードを記憶することができる様々な媒体を含む。
図8は、本願の一例示的な実施例によるデコーダの概略構造図であり、図8に示すように、デコーダ2は、
検索対象となる点群データのモートンコードセットを取得するように構成される第2取得ユニット20と、
前記モートンコードセット及び第1距離閾値に基づいて、前記点群データをレイヤ分けして、現在レイヤのデータを取得するように構成される第2分割ユニット21と、
前記点群データ内の現在レイヤのデータに対応する予測データのモートンコードビットを、第1所定ビット数だけ右シフトして、対応する第1親ノードセットを取得するように構成される第2シフトユニット22と、
前記現在レイヤのデータのモートンコードに基づいて、前記第1親ノードセットで、隣接領域を決定し、前記隣接領域で、前記現在レイヤのデータの最近傍点セットを決定し、前記隣接領域が決定されない場合、第2ノードセットに基づいて、前記現在レイヤのデータの検索点を決定し、前記検索点に対応する第1所定検索範囲内で検索を実行して、最近傍点セットを決定するように構成される第2決定ユニット23と、を備え、前記第2ノードセットは、前記点群データ内の現在レイヤのデータに対応する予測データセットである。
本願のいくつかの実施例では、前記第2決定ユニット23はさらに、前記第1親ノードセットにおいて、前記現在レイヤのデータ内の現在点が属する現在の親ノードを決定し、前記現在の親ノードに隣接する隣接親ノードセットを決定し、プリセットルックアップテーブル、前記現在の親ノード、及び前記現在レイヤのデータのモートンコードに基づいて、隣接親ノードのモートンコードを決定し、前記隣接親ノードのモートンコードに対応する領域を、前記隣接領域として決定するように構成される。
本願のいくつかの実施例では、前記デコーダ2はさらに、解析ユニット24を備え、
前記解析ユニット24は、コードストリームを解析して、所定検索回数を取得ように構成され、
前記第2決定ユニット23はさらに、前記隣接領域で、所定検索回数に従って前記隣接親ノードのモートンコードに対応する点をトラバースして、候補隣接セットを取得し、前記候補隣接セットから、現在レイヤのデータの現在点に対応する前記最近傍点セットを決定するように構成される。
本願のいくつかの実施例では、前記第2決定ユニット23はさらに、前記第2ノードセットから、前記現在レイヤのデータの現在点の現在のモートンコードより大きい最初のモートンコードを決定し、前記最初のモートンコードに対応する点を前記検索点として設定するように構成される。
本願のいくつかの実施例では、前記第2分割ユニット21はさらに、前記モートンコードセットに基づいて、最初のモートンコードに対応する点を少なくとも含む第2セットを決定し、前記点群データ内の現在処理されている現在点と、前記第2セット内の点との距離が前記第1距離閾値以下である場合、前記現在点を第1セットに入れ、前記現在点と前記第2セット内の点との距離が前記第1距離閾値より大きい場合、前記現在点を前記第2セットに入れ、前記第2セット内の、前記現在点との距離が第2距離閾値以下である点を決定して、前記現在レイヤのデータを取得するように構成され、ここで、前記第1距離閾値は、前記第2距離閾値より小さい。
本願のいくつかの実施例では、前記解析ユニット24はさらに、コードストリームを解析して、前記第1所定ビット数を取得するように構成され、前記第1所定ビット数は、非負整数であり、
前記第2シフトユニット22はさらに、前記点群データの現在レイヤのデータに対応する予測データのモートンコードを、前記第1所定ビット数だけ右シフトして、対応する前記第1親ノードセットを取得するように構成される。
本願のいくつかの実施例では、前記第2取得ユニット20はさらに、所定間隔に従ってモートンコードセットをサンプリングして、サンプリング点セットを取得し、ここで、前記モートンコードセットは、前記予測データのすべて又は一部のモートンコードを含み、前記サンプリング点セット内の点のモートンコードビットをnビット右シフトして、サンプリング親ノードセットを取得し、前記サンプリング親ノードセットに対応する領域内の、前記サンプリング点を除いた隣接点を決定し、前記サンプリング親ノードセット内の隣接点の平均数が所定の平均閾値より大きい場合、前記nビット数を前記第1所定ビット数の値として決定するように構成され、nは、非負整数である。
本願のいくつかの実施例では、前記第2取得ユニット20はさらに、検索対象となる点群データを取得し、前記点群データのモートンコードを決定し、前記点群データのモートンコードを昇順に並べて、複数のモートンコードを含む前記モートンコードセットを取得するように構成される。
本願のいくつかの実施例では、前記解析ユニット24はさらに、コードストリーム内のパラメータセットデータユニットを解析して、前記第1所定ビット数を取得するように構成される。
本願のいくつかの実施例では、前記パラメータセットデータユニットは、シーケンスパラメータセットデータユニットである。
本願のいくつかの実施例では、前記パラメータセットデータユニットは、前記点群データの属性情報を含み、ここで、前記属性情報は、前記点群データ内の点に関連付けられたスカラー又はベクトル属性である。
本願のいくつかの実施例では、前記パラメータセットデータユニットは、前記点群データのジオメトリ情報を含み、ここで、前記ジオメトリ情報は、前記点群データ内の点に関連付けられたデカルト座標である。
本願のいくつかの実施例では、前記隣接親ノードセットは、すべての隣接ノードの親ノード又は一部の隣接ノードの親ノードを含む。
実際の応用では、図9に示すように、図9は、本願の一例示的な実施例によるデコーダのハードウェアエンティティの概略図であり、前記デコーダは、
第2プロセッサ25と、前記第2プロセッサ25によって実行可能なコンピュータプログラムが記憶された第2メモリ26と、を備え、前記第2メモリ26は、第2通信バス27を介して前記第2プロセッサ25に依存して動作し、前記コンピュータプログラムが前記第2プロセッサ25に、上記のデコーダ側に係る最近傍検索方法を実行させる。
プロセッサは、信号処理機能を備えた集積回路チップであり得る。実現プロセスにおいて、上記の方法の各ステップは、プロセッサ内のハードウェア統合論理回路又はソフトウェア形の命令によって完了することができる。上記のプロセッサは、汎用プロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)、フィールドプログラマブルゲートアレイ(FPGA:Field Programmable Gate Array)又は他のプログラマブルロジックデバイス、ディスクリートゲート又はトランジスタロジックデバイス、ディスクリートハードウェアコンポ―ネットなどであってもよく、本願実施例で開示される各方法、ステップ及び論理ブロックを実現又は実行することができる。汎用プロセッサは、マイクロプロセッサであってもよく、又は当該プロセッサは、任意の従来のプロセッサなどであってもよい。本願実施例で開示される方法のステップは、ハードウェア復号化プロセッサによって直接実行されてもよいし、復号化プロセッサ内のハードウェアとソフトウェアモジュールの組み合わせによって実行されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、読み取り専用メモリ、プログラマブル読み取り専用メモリ、又は電気的に消去可能なプログラマブルメモリ、レジスタなどの従来の記憶媒体に配置することができる。当該記憶媒体はメモリ内に配置され、プロセッサは第1メモリ内の情報を読み取り、そのハードウェアと組み合わせて上記の方法のステップを完了する。
本願実施例は、コンピュータプログラムが記憶されたコンピュータ可読記憶媒体を提供し、前記コンピュータプログラムは、第1プロセッサに、エンコーダ側に係る最近傍検索方法を実行させるか、又は第2プロセッサに、デコーダ側に係る最近傍検索方法を実行させる。
なお、本願において、「備える」、「含む」という用語、又はその任意の他の変形は、非排他的な包含を網羅することを意図するので、一連の要素を含むプロセス、方法、物品又は装置は、それらの要素だけでなく、明示的に列挙されていない他の要素、又は、そのようなプロセス、方法、物品、又は装置の固有の要素をさらに含む。特に限定されていない場合、「…を含む」という文で定義された要素は、当該要素を含むプロセス、方法、物品、又は装置に、他の同じ要素があることを排除しない。
上記の本願実施例の番号は、説明のためのものに過ぎず、実施例の優劣を表すものではない。
本願で提供されるいくつかの方法の実施例で開示される方法は、競合することなく任意に組み合わせて、新しい方法の実施例を取得することができる。
本願で提供されるいくつかの製品の実施例で開示される特徴は、競合することなく任意に組み合わせて、新しい製品の実施例を取得することができる。
本願で提供されるいくつかの方法又は機器の実施例で開示される特徴は、競合することなく任意に組み合わせて、新しい方法の実施例又は機器の実施例を取得することができる。
上記は、本発明の好ましい実施例に過ぎず、本発明の保護範囲を限定することを意図するものではない。
本願実施例は、最近傍検索方法、エンコーダ、デコーダ、及び記憶媒体を開示し、前記方法は、検索対象となる点群データのモートンコードセットを取得することと、モートンコードセット及び第1距離閾値に基づいて、点群データをレイヤ分けして、現在レイヤのデータを取得することと、点群データ内の現在レイヤのデータに対応する予測データのモートンコードビットを、第1所定ビット数だけ右シフトして、対応する第1親ノードセットを取得することと、現在レイヤのデータのモートンコードに基づいて、第1親ノードセットで、隣接領域を決定し、隣接領域で、現在レイヤのデータの最近傍点セットを決定することと、隣接領域が決定されない場合、第2ノードセットに基づいて、現在レイヤのデータの検索点を決定し、検索点に対応する第1所定検索範囲内で検索を実行して、最近傍点セットを決定することと、を含み、第2ノードセットは、点群データ内の現在レイヤのデータに対応する予測データセットである。このようにして、現在レイヤのデータのモートンコードに基づいて隣接領域を検索することにより、隣接領域が正確に見つけられることを前提として、最近傍点の検索範囲を縮小し、現在レイヤのデータのモートンコードに基づいて隣接領域が検索されなかった場合、第2セットに基づいて隣接領域を検索することができ、これにより、検索成功率を向上させることができる。

Claims (19)

  1. エンコーダに適用される最近傍検索方法であって、
    検索対象となる点群データの位置情報を取得することと、
    前記位置情報及び第1距離閾値に基づいて、前記点群データをレイヤ分けして、現在レイヤのデータを取得することと、
    前記点群データ内の現在レイヤのデータ、及び前記点群データ内の現在レイヤのデータに対応する予測データの位置情報ビットを右シフトするための第1所定ビット数に基づいて、対応する第1親ノードを取得することと、
    前記現在レイヤのデータの位置情報に基づいて、前記第1親ノードで、隣接領域を決定し、前記隣接領域で、前記現在レイヤのデータの最近傍点を決定することと、
    前記隣接領域が決定されない場合、第2ノードに基づいて、前記現在レイヤのデータの検索点を決定し、前記検索点に対応する第1所定検索範囲内で検索を実行して、最近傍点を決定することと、を含み、前記第2ノードは、前記点群データ内の現在レイヤのデータに対応する予測データである、最近傍検索方法。
  2. 前記現在レイヤのデータの位置情報に基づいて、前記第1親ノードで、隣接領域を決定することは、
    前記第1親ノードにおいて、前記現在レイヤのデータ内の現在点が属する現在の親ノードを決定することと、
    前記現在の親ノードに隣接する隣接親ノードを決定することと、
    プリセットルックアップテーブル、前記現在の親ノード、及び前記現在レイヤのデータの位置情報に基づいて、隣接親ノードの位置情報を決定することと、
    前記隣接親ノードの位置情報に対応する領域を、前記隣接領域として決定することと、を含む、
    請求項1に記載の最近傍検索方法。
  3. 前記隣接領域で、前記現在レイヤのデータの最近傍点を決定することは、
    前記隣接領域で、所定検索回数に従って前記隣接親ノードの位置情報に対応する点をトラバースして、候補隣接を取得することと、
    前記候補隣接から、現在レイヤのデータの現在点に対応する前記最近傍点を決定することと、
    前記所定検索回数をコードストリームに書き込むことと、を含む、
    請求項2に記載の最近傍検索方法。
  4. 前記第2ノードに基づいて、前記現在レイヤのデータの検索点を決定することは、
    前記第2ノードから、前記現在レイヤのデータの現在点の現在位置情報より大きい最初の位置情報を決定することと、
    前記最初の位置情報に対応する点を前記検索点として設定することと、を含む、
    請求項1に記載の最近傍検索方法。
  5. 前記位置情報及び第1距離閾値に基づいて、前記点群データをレイヤ分けして、現在レイヤのデータを取得することは、
    前記位置情報に基づいて、対応する点を決定することと、
    前記対応する点において、前記点群データ内の現在処理されている現在点との距離が前記第1距離閾値より大きい且つ第2距離閾値以下である点を決定して、前記現在レイヤのデータを取得することと、を含み、前記第1距離閾値は、前記第2距離閾値より小さい、
    請求項1に記載の最近傍検索方法。
  6. 前記点群データ内の現在レイヤのデータに対応する予測データの位置情報ビットを、第1所定ビット数だけ右シフトして、対応する第1親ノードを取得することは、
    所定間隔に従って位置情報をサンプリングして、サンプリング点を取得することであって、前記位置情報は、前記予測データのすべて又は一部の位置情報を含むことと、
    前記サンプリング点の位置情報ビットをnビット右シフトして、サンプリング親ノードを取得し、前記サンプリング親ノードに対応する領域内の、前記サンプリング点を除いた隣接点を決定することと、
    前記サンプリング親ノード内の隣接点の平均数が所定の平均閾値より大きい場合、前記nビット数を前記第1所定ビット数の値として決定することと、を含み、nは、非負整数である、
    請求項1に記載の最近傍検索方法。
  7. 前記最近傍検索方法は、
    前記第1所定ビット数をコードストリームに書き込むことを更に含む、
    請求項1に記載の最近傍検索方法。
  8. デコーダに適用される最近傍検索方法であって、
    検索対象となる点群データの位置情報を取得することと、
    前記位置情報及び第1距離閾値に基づいて、前記点群データをレイヤ分けして、現在レイヤのデータを取得することと、
    前記点群データ内の現在レイヤのデータ、及び前記点群データの現在レイヤのデータに対応する予測データの位置情報ビットを右シフトするための第1所定ビット数に基づいて、対応する第1親ノードを取得することと、
    前記現在レイヤのデータの位置情報に基づいて、前記第1親ノードで、隣接領域を決定し、前記隣接領域で、前記現在レイヤのデータの最近傍点を決定することと、
    前記隣接領域が決定されない場合、第2ノードに基づいて、前記現在レイヤのデータの検索点を決定し、前記検索点に対応する第1所定検索範囲内で検索を実行して、最近傍点を決定することと、を含み、前記第2ノードは、前記点群データ内の現在レイヤのデータに対応する予測データである、最近傍検索方法。
  9. 前記現在レイヤのデータの位置情報に基づいて、前記第1親ノードで、隣接領域を決定することは、
    前記第1親ノードにおいて、前記現在レイヤのデータ内の現在点が属する現在の親ノードを決定することと、
    前記現在の親ノードに隣接する隣接親ノードを決定することと、
    プリセットルックアップテーブル、前記現在の親ノード、及び前記現在レイヤのデータの位置情報に基づいて、隣接親ノードの位置情報を決定することと、
    前記隣接親ノードの位置情報に対応する領域を、前記隣接領域として決定することと、を含む、
    請求項に記載の最近傍検索方法。
  10. 前記隣接領域で、前記現在レイヤのデータの最近傍点を決定することは、
    コードストリームを解析して、所定検索回数を取得することと、
    前記隣接領域で、前記所定検索回数に従って前記隣接親ノードの位置情報に対応する点をトラバースして、候補隣接を取得することと、
    前記候補隣接から、現在レイヤのデータの現在点に対応する前記最近傍点を決定することと、を含む、
    請求項に記載の最近傍検索方法。
  11. 前記第2ノードに基づいて、前記現在レイヤのデータの検索点を決定することは、
    前記第2ノードから、前記現在レイヤのデータの現在点の現在位置情報より大きい最初の位置情報を決定することと、
    前記最初の位置情報に対応する点を前記検索点として設定することと、を含む、
    請求項に記載の最近傍検索方法。
  12. 前記位置情報及び第1距離閾値に基づいて、前記点群データをレイヤ分けして、現在レイヤのデータを取得することは、
    前記位置情報に基づいて、対応する点を決定することと、
    前記対応する点において、前記点群データ内の現在処理されている現在点との距離が前記第1距離閾値より大きい且つ第2距離閾値以下である点を決定して、前記現在レイヤのデータを取得することと、を含み、前記第1距離閾値は、前記第2距離閾値より小さい、
    請求項に記載の最近傍検索方法。
  13. 前記点群データの現在レイヤのデータに対応する予測データの位置情報ビットを、第1所定ビット数だけ右シフトして、対応する第1親ノードを取得することは、
    コードストリームを解析して、前記第1所定ビット数を取得することと、
    前記点群データの現在レイヤのデータに対応する予測データの位置情報を、前記第1所定ビット数だけ右シフトして、対応する前記第1親ノードを取得することと、を含む、
    請求項に記載の最近傍検索方法。
  14. 前記点群データ内の現在レイヤのデータに対応する予測データの位置情報ビットを、第1所定ビット数だけ右シフトして、対応する第1親ノードを取得することは、
    所定間隔に従って位置情報をサンプリングして、サンプリング点を取得することであって、前記位置情報は、前記予測データのすべて又は一部の位置情報を含むことと、
    前記サンプリング点の位置情報ビットをnビット右シフトして、サンプリング親ノードを取得することと、
    前記サンプリング親ノードに対応する領域内の、前記サンプリング点を除いた隣接点を決定することと、
    前記サンプリング親ノード内の隣接点の平均数が所定の平均閾値より大きい場合、前記nビット数を前記第1所定ビット数の値として決定することと、を含み、nは、非負整数である、
    請求項に記載の最近傍検索方法。
  15. エンコーダであって、
    検索対象となる点群データの位置情報を取得するように構成される第1取得ユニットと、
    前記位置情報及び第1距離閾値に基づいて、前記点群データをレイヤ分けして、現在レイヤのデータを取得するように構成される第1分割ユニットと、
    前記点群データ内の現在レイヤのデータ、及び前記点群データ内の現在レイヤのデータに対応する予測データの位置情報ビットを右シフトするための第1所定ビット数に基づいて、対応する第1親ノードを取得するように構成される第1シフトユニットと、
    前記現在レイヤのデータの位置情報に基づいて、前記第1親ノードで、隣接領域を決定し、前記隣接領域で、前記現在レイヤのデータの最近傍点を決定し、前記隣接領域が決定されない場合、第2ノードに基づいて、前記現在レイヤのデータの検索点を決定し、前記検索点に対応する第1所定検索範囲内で検索を実行して、最近傍点を決定するように構成される第1決定ユニットと、を備え、前記第2ノードは、前記点群データ内の現在レイヤのデータに対応する予測データである、エンコーダ。
  16. デコーダであって、
    検索対象となる点群データの位置情報を取得するように構成される第2取得ユニットと、
    前記位置情報及び第1距離閾値に基づいて、前記点群データをレイヤ分けして、現在レイヤのデータを取得するように構成される第2分割ユニットと、
    前記点群データ内の現在レイヤのデータ、及び前記点群データ内の現在レイヤのデータに対応する予測データの位置情報右シフトするための第1所定ビット数に基づいて、対応する第1親ノードを取得するように構成される第2シフトユニットと、
    前記現在レイヤのデータの位置情報に基づいて、前記第1親ノードで、隣接領域を決定し、前記隣接領域で、前記現在レイヤのデータの最近傍点を決定し、前記隣接領域が決定されない場合、第2ノードに基づいて、前記現在レイヤのデータの検索点を決定し、前記検索点に対応する第1所定検索範囲内で検索を実行して、最近傍点を決定するように構成される第2決定ユニットと、を備え、前記第2ノードは、前記点群データ内の現在レイヤのデータに対応する予測データである、デコーダ。
  17. エンコーダであって、第1メモリと、第1プロセッサと、を備え、
    前記第1メモリは、前記第1プロセッサで実行可能なコンピュータプログラムを記憶するように構成され、
    前記第1プロセッサは、前記コンピュータプログラムを実行するときに、請求項1~のいずれか一項に記載の方法を実行する構成される、エンコーダ。
  18. デコーダであって、第2メモリと、第2プロセッサと、を備え、
    前記第2メモリは、前記第2プロセッサで実行可能なコンピュータプログラムを記憶するように構成され、
    前記第2プロセッサは、前記コンピュータプログラムを実行するときに、請求項14のいずれか一項に記載の方法を実行するように構成される、デコーダ。
  19. 第1プロセッサに、請求項1~のいずれか一項に記載の方法を実行させるか、又は第2プロセッサに、請求項14のいずれか一項に記載の方法を実行させるコンピュータプログラムが記憶された、コンピュータ可読記憶媒体。
JP2022564616A 2020-04-30 2021-03-25 最近傍検索方法、エンコーダ、デコーダ、及び記憶媒体 Pending JP2023523272A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202010366795.3A CN113596466A (zh) 2020-04-30 2020-04-30 一种最近邻搜索方法、编码器、解码器及存储介质
CN202010366795.3 2020-04-30
PCT/CN2021/083102 WO2021218509A1 (zh) 2020-04-30 2021-03-25 一种最近邻搜索方法、编码器、解码器及存储介质

Publications (2)

Publication Number Publication Date
JP2023523272A JP2023523272A (ja) 2023-06-02
JPWO2021218509A5 true JPWO2021218509A5 (ja) 2024-03-11

Family

ID=78237560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022564616A Pending JP2023523272A (ja) 2020-04-30 2021-03-25 最近傍検索方法、エンコーダ、デコーダ、及び記憶媒体

Country Status (6)

Country Link
US (1) US20230101072A1 (ja)
JP (1) JP2023523272A (ja)
KR (1) KR20230003148A (ja)
CN (2) CN113596466A (ja)
TW (1) TW202143723A (ja)
WO (1) WO2021218509A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116781908A (zh) * 2022-03-11 2023-09-19 腾讯科技(深圳)有限公司 点云预测处理方法、装置、计算机、存储介质
CN117669474B (zh) * 2024-01-30 2024-05-14 全智芯(上海)技术有限公司 用于多重曝光的版图生成方法、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136535A (zh) * 2011-11-29 2013-06-05 南京理工大学常熟研究院有限公司 一种用于点云简化的k近邻搜索方法
EP3579194A1 (en) * 2018-06-08 2019-12-11 My Virtual Reality Software AS Indexation of massive point cloud data for efficient visualization
CN109889840B (zh) * 2019-03-20 2022-11-22 北京大学深圳研究生院 点云编码和解码的方法、编码设备和解码设备
CN110572655B (zh) * 2019-09-30 2023-01-10 北京大学深圳研究生院 一种基于邻居权重的参数选取和传递的点云属性编码和解码的方法及设备

Similar Documents

Publication Publication Date Title
US11785216B2 (en) Point cloud coding methods, encoder, and decoder
JP7330306B2 (ja) 変換方法、逆変換方法、エンコーダ、デコーダ及び記憶媒体
US20230101072A1 (en) Nearest neighbour search method, encoder, decoder and storage medium
WO2014190468A1 (en) Video encoder for images
US11936909B2 (en) Prediction method, encoder, decoder, and computer storage medium
Hassaballah et al. A Fast Fractal Image Compression Method Based on Entropy
US20230237705A1 (en) Methods for level partition of point cloud, and decoder
US20230086264A1 (en) Decoding method, encoding method, decoder, and encoder based on point cloud attribute prediction
EP4083924A1 (en) Nearest neighbor search method, apparatus, device, and storage medium
JP6748022B2 (ja) 分割形状決定装置、学習装置、分割形状決定方法及び分割形状決定プログラム
US20220343550A1 (en) Partitioning method, encoder, decoder and computer storage medium
JPWO2021218509A5 (ja)
WO2022120594A1 (zh) 点云编解码方法、编码器、解码器及计算机存储介质
KR20220157490A (ko) 인트라 예측 방법, 장치, 인코더, 디코더 및 저장 매체
WO2022217611A1 (zh) 编解码方法及相关设备、存储介质
US20220327746A1 (en) Method for constructing morton codes, encoder, decoder, and storage medium
Ozturk et al. A fast fractal image compression algorithm based on a simple similarity measure
WO2022131946A2 (en) Devices and methods for spatial quantization for point cloud compression