(57)【要約】  装置は、点群を取得し、親ノードの八分木符号化か四分木符号化かの選択を行い、選択に基づいて親ノードをビットストリームに符号化するように構成されたプロセッサと、プロセッサに結合され、ビットストリームを送信するように構成された送信機と、を含む。装置は、ビットストリームを受信するように構成された受信機と、受信機に結合され、ビットストリームから、PCCの深さを指示する第1のパラメータをパースし、八分木復号を使用して深さの前の第1のノードを復号し、ビットストリームから、深さおよび深さの後の第2のノードのノードコーディングモードを指示する第2のパラメータをパースし、第2のパラメータに基づいて第2のノードを復号するように構成されたプロセッサと、を含む。
2021530143.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
点群を取得し、
親ノードの八分木符号化か四分木符号化かの選択を行い、
前記選択に基づいて前記親ノードをビットストリームに符号化する、
ように構成されたプロセッサと、
前記プロセッサに結合され、前記ビットストリームを送信するように構成された送信機と
を含む、装置。
【請求項２】
前記八分木符号化が三次元（3D）である、請求項1に記載の装置。
【請求項３】
前記八分木符号化が8個の立方体子ノードを使用する、請求項2に記載の装置。
【請求項４】
前記四分木符号化が二次元（2D）である、請求項1に記載の装置。
【請求項５】
前記四分木符号化が4個の正方形子ノードを使用する、請求項4に記載の装置。
【請求項６】
前記プロセッサが、平坦度パラメータに基づいて前記選択をさらに行うようにさらに構成される、請求項1に記載の装置。
【請求項７】
前記プロセッサが、レート歪みに基づいて前記選択をさらに行うようにさらに構成される、請求項1に記載の装置。
【請求項８】
方法であって、
点群を取得するステップと、
親ノードの八分木符号化か四分木符号化かの選択を行うステップと、
前記選択に基づいて前記親ノードをビットストリームに符号化するステップと、
前記ビットストリームを送信するステップと
を含む、方法。
【請求項９】
前記八分木符号化が三次元（3D）である、請求項8に記載の方法。
【請求項１０】
前記八分木符号化が8個の立方体子ノードを使用する、請求項9に記載の方法。
【請求項１１】
前記四分木符号化が二次元（2D）である、請求項8に記載の方法。
【請求項１２】
前記四分木符号化が4個の正方形子ノードを使用する、請求項11に記載の方法。
【請求項１３】
平坦度パラメータに基づいて前記選択をさらに行うステップをさらに含む、請求項8に記載の方法。
【請求項１４】
レート歪みに基づいて前記選択をさらに行うステップをさらに含む、請求項8に記載の方法。
【請求項１５】
装置であって、
ビットストリームを受信するように構成された受信機と、
前記受信機に結合され、
前記ビットストリームから、点群コーディング（PCC）の深さを指示する第1のパラメータをパースし、
八分木復号を使用して前記深さの前の第1のノードを復号し、
前記ビットストリームから、前記深さおよび前記深さの後の第2のノードのノードコーディングモードを指示する第2のパラメータをパースし、
前記第2のパラメータに基づいて前記第2のノードを復号する
ように構成されたプロセッサと
を含む、装置。
【請求項１６】
前記八分木復号が三次元（3D）であり、8個の立方体子ノードを使用する、請求項15に記載の装置。
【請求項１７】
前記四分木復号が二次元（2D）であり、4個の正方形子ノードを使用する、請求項15に記載の装置。
【請求項１８】
前記プロセッサが、詳細度（LoD）に達するまで前記第1のノードおよび前記第2のノードをさらに復号するようにさらに構成される、請求項15に記載の装置。
【請求項１９】
方法であって、
ビットストリームを受信するステップと、
前記ビットストリームから、点群コーディング（PCC）の深さを指示する第1のパラメータをパースするステップと、
八分木復号を使用して前記深さの前の第1のノードを復号するステップと、
前記ビットストリームから、前記深さおよび前記深さの後の第2のノードのノードコーディングモードを指示する第2のパラメータをパースするステップと、
前記第2のパラメータに基づいて前記第2のノードを復号するステップと
を含む、方法。
【請求項２０】
装置であって、
点群を取得し、
親ノードの八分木符号化か四分木符号化かの選択を行い、
前記選択に基づいて前記親ノードをビットストリームに符号化する、
ように構成された処理手段と、
前記処理手段に結合され、前記ビットストリームを送信するように構成された送信手段と
を含む、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照により組み込まれる、Futurewei Technologies，Inc．によって2018年6月25日に出願された「Method and Apparatus for Point Cloud Coding Using Hybrid Code Tree」という名称の米国仮特許出願第62／689，666号の優先権を主張するものである。
【０００２】
開示の実施形態は一般にPCCに関し、特に点群のハイブリッド幾何学的コーディングに関する。
【背景技術】
【０００３】
点群は比較的大量のデータを使用するため、点群の通信は比較的大量の帯域幅を使用する。しかしながら、多くのネットワークは、その帯域幅容量または帯域幅容量近くで動作する。加えて、顧客は高い点群品質を要求し、これにはさらに多くのデータの使用が必要である。したがって、データ点群が使用するデータ量を削減すると同時に点群品質を向上させることが求められている。1つの解決策は、符号化プロセス時に点群を圧縮し、復号プロセス時に点群を展開することである。
【発明の概要】
【課題を解決するための手段】
【０００４】
第1の態様は、点群を取得し、親ノードの八分木符号化か四分木符号化かの選択を行い、選択に基づいて親ノードをビットストリームに符号化するように構成されたプロセッサと、プロセッサに結合され、ビットストリームを送信するように構成された送信機と、を含む装置に関する。
【０００５】
そのような第1の態様による装置の第1の実装形態において、八分木符号化は3Dである。
【０００６】
そのような第1の態様または第1の態様の任意の前述の実装形態による装置の第2の実装形態において、八分木符号化は8個の立方体子ノードを使用する。
【０００７】
そのような第1の態様または第1の態様の任意の前述の実装形態による装置の第3の実装形態において、四分木符号化は2Dである。
【０００８】
そのような第1の態様または第1の態様の任意の前述の実装形態による装置の第4の実装形態において、四分木符号化は4個の正方形子ノードを使用する。
【０００９】
そのような第1の態様または第1の態様の任意の前述の実装形態による装置の第5の実装形態において、プロセッサは、平坦度パラメータに基づいて選択をさらに行うようにさらに構成される。
【００１０】
そのような第1の態様または第1の態様の任意の前述の実装形態による装置の第6の実装形態において、プロセッサは、レート歪みに基づいて選択をさらに行うようにさらに構成される。
【００１１】
第2の態様は、点群を取得するステップと、親ノードの八分木符号化か四分木符号化かの選択を行うステップと、選択に基づいて親ノードをビットストリームに符号化するステップと、ビットストリームを送信するステップと、を含む方法に関する。
【００１２】
そのような第2の態様による方法の第1の実装形態において、八分木符号化は3Dである。
【００１３】
そのような第2の態様または第2の態様の任意の前述の実装形態による方法の第2の実装形態において、八分木符号化は8個の立方体子ノードを使用する。
【００１４】
そのような第2の態様または第2の態様の任意の前述の実装形態による方法の第3の実装形態において、四分木符号化は2Dである。
【００１５】
そのような第2の態様または第2の態様の任意の前述の実装形態による方法の第4の実装形態において、四分木符号化は4個の正方形子ノードを使用する。
【００１６】
そのような第2の態様または第2の態様の任意の前述の実装形態による方法の第5の実装形態において、本方法は、平坦度パラメータに基づいて選択をさらに行う。
【００１７】
そのような第2の態様または第2の態様の任意の前述の実装形態による方法の第6の実装形態において、本方法は、レート歪みに基づいて選択をさらに行うステップをさらに含む。
【００１８】
第3の態様は、ビットストリームを受信するように構成された受信機と、受信機に結合され、ビットストリームから、PCCの深さを指示する第1のパラメータをパースし、八分木復号を使用して深さの前の第1のノードを復号し、ビットストリームから、深さおよび深さの後の第2のノードのノードコーディングモードを指示する第2のパラメータをパースし、第2のパラメータに基づいて第2のノードを復号するように構成されたプロセッサと、を含む装置に関する。
【００１９】
そのような第3の態様による装置の第1の実装形態において、八分木復号は3Dであり、8個の立方体子ノードを使用する。
【００２０】
そのような第3の態様または第3の態様の任意の前述の実装形態による装置の第2の実装形態において、四分木復号は2Dであり、4個の正方形子ノードを使用する。
【００２１】
そのような第3の態様または第3の態様の任意の前述の実装形態による装置の第3の実装形態において、プロセッサは、LoDに達するまで第1のノードおよび第2のノードをさらに復号するようにさらに構成される。
【００２２】
第4の態様は、ビットストリームを受信するステップと、ビットストリームから、PCCの深さを指示する第1のパラメータをパースするステップと、八分木復号を使用して深さの前の第1のノードを復号するステップと、ビットストリームから、深さおよび深さの後の第2のノードのノードコーディングモードを指示する第2のパラメータをパースするステップと、第2のパラメータに基づいて第2のノードを復号するステップと、を含む方法に関する。
【００２３】
第5の態様は、点群を取得し、親ノードの八分木符号化か四分木符号化かの選択を行い、選択に基づいて親ノードをビットストリームに符号化するように構成された処理手段と、処理手段に結合され、ビットストリームを送信するように構成された送信手段と、を含む装置に関する。
【００２４】
上記の実施形態のいずれもその他の上記実施形態と組み合わされて新しい実施形態を作成し得る。上記その他の特徴は、以下の詳細な説明を添付の図面および特許請求の範囲と併せて読めばより明確に理解されるであろう。
【００２５】
本開示のより十分な理解のために、ここで、添付の図面および詳細な説明に関連した、以下の簡単な説明を参照し、同様の参照番号は同様の部分を表す。
【図面の簡単な説明】
【００２６】
【図１】コーディングシステムの概略図である。
【図２】簡略化されたコーディング方法を示す流れ図である。
【図３】本開示の一実施形態による、平坦度制約に基づくハイブリッド幾何学的符号化の方法を示す流れ図である。
【図４Ａ】平面に沿ったまたは実質的に沿った点を有する親ノードの概略図である。
【図４Ｂ】平面に沿ったまたは実質的に沿った点を有しない親ノードの概略図である。
【図５】本開示の一実施形態による、コストに基づくハイブリッド幾何学的符号化の方法を示す流れ図である。
【図６】本開示の一実施形態による、ハイブリッド幾何学的復号の方法を示す図である。
【図７】本開示の一実施形態による、ハイブリッド幾何学的符号化の方法を示す流れ図である。
【図８】本開示の一実施形態による、ハイブリッド幾何学的復号の方法を示す流れ図である。
【図９】本開示の一実施形態による装置の概略図である。
【図１０】コーディングの手段の概略図である。
【発明を実施するための形態】
【００２７】
最初に、以下では1つまたは複数の実施形態の例示的な実施態様が提供されるが、開示のシステムおよび／または方法は、現在既知または既存であるかどうかを問わず、任意の数の技術を使用して実施され得ることを理解されたい。本開示は、いかなる点でも、本明細書で例示および説明される例示的な設計および実施態様を含む、以下で例示される例示的な実施態様、図面、および技術に限定されるべきではなく、添付の特許請求の範囲およびそれらの均等物の全範囲内で変更され得る。
【００２８】
以下の略語が適用される。
ASIC：特定用途向け集積回路
CPU：中央処理装置
DSP：デジタル信号プロセッサ
EO：電気・光
FPGA：フィールドプログラマブルゲートアレイ
LoD：詳細度
OE：光・電気
PCC：点群コーディング
RAM：ランダムアクセスメモリ
RF：無線周波数
ROM：読み取り専用メモリ
RX：受信部
SRAM：スタティックRAM
TCAM：三値連想メモリ
TX：送信部
2D：二次元
3D：三次元
【００２９】
図1は、コーディングシステム100の概略図である。コーディングシステム100は、ソースデバイス110と、媒体150と、宛先デバイス160とを含む。
【００３０】
ソースデバイス110は、点群生成器120と、符号器130と、出力インターフェース140とを含む。点群生成器120は、点群を生成するのに適した構成要素である。符号器130は、コーデックと呼ばれ得る。符号器130は、1組の規則に従って符号化を行う。出力インターフェース140は、アンテナ、または宛先デバイス160にデータを送信するのに適した別の構成要素である。あるいは、点群生成器120、符号器130、および出力インターフェース140はデバイスの組み合わせである。
【００３１】
媒体150は、ローカルネットワーク、無線ネットワーク、インターネット、または別の適切な媒体である。媒体150は、ソースデバイス110と宛先デバイス160との間でデータを通信する。
【００３２】
宛先デバイス160は、入力インターフェース170と、復号器180と、プロジェクタ190とを含む。入力インターフェース170は、アンテナ、またはソースデバイス110からデータを受信するのに適した別の構成要素である。復号器180は、コーデックとも呼ばれ得る。復号器180は、1組の規則に従って復号を行う。プロジェクタ190は、点群を投影するのに適した構成要素である。あるいは、入力インターフェース170、復号器180、およびプロジェクタ190はデバイスの組み合わせである。
【００３３】
動作に際して、ソースデバイス110では、点群生成器120が点群を取り込み、符号器130が点群を符号化して符号化された点群を作成し、出力インターフェース140が符号化された点群を媒体150上で宛先デバイス160に向けて送信する。ソースデバイス110は点群もしくは符号化された点群をローカルに格納してもよく、またはソースデバイス110は、点群もしくは符号化された点群の別のデバイス上での格納を命令してもよい。宛先デバイス160では、入力インターフェース170がソースデバイス110から符号化された点群を受信し、復号器180が符号化された点群を復号して復号された点群を取得し、プロジェクタ190が復号された点群を投影する。復号器180は符号化された点群を、符号器130が点群を符号化する方法と比較して逆の方法で復号し得る。宛先デバイス160は符号化された点群または復号された点群をローカルに格納し、または宛先デバイス160は、符号化された点群または復号された点群の別のデバイス上での格納を命令する。
【００３４】
点群生成器120は、ライダ、従来のカメラ、赤外線カメラ、飛行時間型カメラ、レーザシステム、スキャナ、または物体をスキャンして、物体を表す点群を生成する別のデバイスであり得る。物体は車両であってもよく、よって点群は3Dであり得る。点群は、何十万または何百万もの点を含み得る。したがって、点群は、符号化するための相当なデータおよび通信するための相当な帯域幅を必要とする。したがって、点群を効率的にコード化し、よって通信することが求められている。
【００３５】
符号器130および復号器180は点群のPCCを行う。PCCは、属性コーディングと幾何学的コーディングの両方を含む。コーディングは、符号化と復号の両方を含む。属性コーディングは、色、反射率、および透明度などの属性をコード化する。幾何学的コーディングは、空間的に点がどこにあるかをコード化する。八分木コーディングは、幾何学的コーディングの1タイプである。
【００３６】
八分木コーディングは、点群内のすべての点を包含する3D立方体である親ノードから開始し、親ノードを、やはり3D立方体である8個の子ノードに分割し、その分割を、所望のエンドポイントまで繰り返す。分割ごとに、分割されるノードが親ノードであり、親ノードが分割されたノードが子ノードである。各親ノードは8ビットでコード化され、各ビットは、対応する子ノードが点を含むかどうかを指示する。親ノードの中にはそれらの3D空間全体に広がった点を有しないものもあり得る。代わりに、それらの親ノードは、平面に沿ったまたは実質的に沿った点を有し得る。したがって、それらの親ノードを8個の子ノードに分割することは非効率的である。
【００３７】
本明細書で開示されるのは、点群のハイブリッド幾何学的コーディングのための実施形態である。このコンテキストでは、点群のハイブリッド幾何学的コーディングは3Dコーディングと2Dコーディング、例えば、八分木コーディングと四分木コーディングの両方を含む。四分木コーディングは、3D立方体である親ノードから開始し、親ノード内の点を2D平面上に投影し、平面を、2D正方形である4個の子ノードに分割する。親ノードは4ビットでコード化され、各ビットは、対応する子ノードが点を含むかどうかを指示する。八分木コーディングを使用するか四分木コーディングを使用するかは、平坦度パラメータ、レート歪み、または別のメトリックに基づくものである。八分木コーディングと四分木コーディングの両方を用いたハイブリッド幾何学的コーディングが論じられるが、実施形態は異なる数のノードを用いた他のタイプのコーディングにも適用される。加えて、平坦度パラメータおよびレート歪みが論じられるが、実施形態は、許容できるレベルの品質を保持しながら、2Dコーディングをより効率的にする他のメトリックにも適用される。
【００３８】
図2は、簡略化されたコーディング方法200を示す流れ図である。コーディングシステム100が方法200を実施する。簡略化されたコーディング方法200は、コーディングプロセスの一部を示している。よって、コーディングプロセスは、属性コーディングなどの他のステップを含み得る。
【００３９】
ステップ210で、符号器130が、点群の幾何学的符号化を行って第1の符号化されたビットストリームを取得する。ステップ210については、以下で図3および図5を参照してさらに説明する。ステップ220で、符号器130が、第1の符号化されたビットストリームの算術符号化を行って第2の符号化されたビットストリームを取得する。ステップ230で、出力インターフェース140が第2の符号化されたビットストリームを送信する。
【００４０】
ステップ240で、入力インターフェース170が第2の符号化されたビットストリームを受信する。ステップ250で、復号器180が、第2の符号化されたビットストリームの算術復号を行って復号されたビットストリームを取得する。最後に、ステップ260で、復号器180が第1の復号されたビットストリームの幾何学的復号を行って点群を取得する。ステップ260については、以下で図6を参照してさらに説明する。
【００４１】
図3は、本開示の一実施形態による、平坦度制約に基づくハイブリッド幾何学的符号化の方法300を示す流れ図である。方法300は、図2のステップ210を実施し得る。ステップ305で、符号器130が、親ノードの固有値λ1、λ2、λ3を計算する。λ1、λ2、λ3は、3本の直交軸である直交基底（x’，y’，z’）を形成する。（x’，y’，z’）は、グローバル座標系（x，y，z）に対して回転される。（x，y，z）と（x’，y’，z’）との間の角度は、Rx、Ry、およびRzである。ステップ310で、符号器130が親ノードの平坦度パラメータΘを計算する。λ3がλ1、λ2、λ3の中の最小であるとすると、Θは以下のとおりである。
【数１】
2021530143.tif 000003
判断315で、符号器130がλ3＜Θかどうかを判断する。そうである場合には、親ノードは平面に沿ったまたは実質的に沿った点を有し、方法300はステップ320に進む。そうでない場合には、親ノードは平面に沿ったまたは実質的に沿った点を有さず、方法300はステップ340に進む。
【００４２】
図4Aは、平面に沿ったまたは実質的に沿った点を有する親ノード410の概略図である。よって、方法300は、親ノード410についてステップ320に進むはずである。図4Bは、平面に沿ったまたは実質的に沿った点を有しない親ノード420の概略図である。よって、方法300は、親ノード420についてステップ340に進むはずである。
【００４３】
図3に戻って、ステップ320で、符号器130が親ノードを四分木ノードとして設定する。例えば、符号器130は、node＿coding＿mode＝1を符号化する。ステップ325で、符号器130が平面のパラメータを計算する。具体的には、符号器130は、λ3に対応する固有ベクトル、固有ベクトルに対応する法線ベクトルn、親ノードに対応する法線ベクトルn’を決定し、nとn’とを比較して、x方向の角度θ、y方向の角度φ、およびz方向の角度ψを取得する。θ、φ、およびψを使用して、符号器130は、以下の成分を有する回転セット（Rx，Ry，Rz）を計算する。
【数２】
2021530143.tif 000004
【数３】
2021530143.tif 000005
【数４】
2021530143.tif 000006
図心変換成分tx、ty、およびtzを使用して、符号器130は、変換行列Tを以下のように計算する。
【数５】
2021530143.tif 000007
Tは、原点を、親ノードの中心から平面の中心へ移動させる。符号器130は、平面の一辺の大きさを2mとしてさらに計算し、m＝QTNodeSizeLog2は以下のように親点群のscale＿projectionおよびNodeSizeLog2に基づくものである。
QTNodeSizeLog2＝NodeSizeLog2
または
QTNodeSizeLog2＝NodeSizeLog2−1  （4）
ステップ330で、符号器130が点群内の点を平面上に投影する。具体的には、符号器130は、3D（x，y，z）座標系からの点を、（Rx，Ry，Rz）およびTを使用して2D（u，v）座標系に投影する。ステップ335で、符号器130が親ノードを四分木ノードとして符号化する。
【００４４】
点を平面上に投影するための第1の代替方法として、符号器130は、回転を適用した後で投影軸インデックスおよび距離を使用する。その場合、符号器130は、点に対して3つの回転のみを適用し得る。点を平面上に投影するための第2の代替方法として、符号器130は、子ノード表面のうちの1つに対して回転なしの斜投影を使用する。その場合、符号器130は、法線ベクトルn（x，y，z）、平面の図心までの距離d、および投影平面インデックスを符号化する。例えば、投影平面インデックスは、xyでは00、xzでは01、yzでは10である。投影平面は、以下のような投影された法線の最小サイズを有する平面であり得る。
min｛nxy（x，y，0），nyz（0，y，z），nxz（x，0，z）｝  （5）
法線投影サイズが0の場合には、平面は対応する座標平面に平行であるので、符号器130は、距離および投影平面インデックスのみを符号化し得る。よって、法線ベクトルがない場合には、平面は対応する座標平面に平行である。
【００４５】
ステップ340で、符号器130が親ノードを八分木ノードとして設定する。ステップ345で、符号器130が親ノードを八分木ノードとして符号化する。最後に、ステップ350で、符号器130が子ノードを生成する。親ノードが四分木ノードである場合、符号器130は子ノードの中心点を以下のように計算する。
ChildQTNodeSizeLog2＝QTNodeSizeLog2−1  （6）
親ノードが八分木ノードである場合、符号器130は子ノードの中心点を標準的な八分木符号化を使用して計算する。
【００４６】
符号器130は、LoDに達するまで方法300を繰り返し、LoDは、事前定義されたノード分割、または分裂の最大回数を指示する。符号器130が親ノードを四分木ノードとして設定すると、符号器130は、方法300がLoDに達するまで各後続の子ノード、孫ノード、などを四分木ノードとして符号化する。
【００４７】
シグナリングを低減するために、符号器130は、八分木符号化を前提とし、minQuadTreeDepthによって指示されるか、maxQuadTreeSizeLog2によって指示されるか、または親ノード内の点の数が閾値を下回る深さから開始して方法300を行い得る。符号器130は、minQuadTreeDepthまたはmaxQuadTreeSizeLog2を符号化し得る。深さは、ノード分裂の回数を指示する。minQuadTreeDepth＝0の場合には、四分木コーディングが使用されない。符号器130は、minQuadTreeDepthまたはmaxQuadTreeSizeLog2をシグナリングし得る。
【００４８】
図5は、本開示の一実施形態による、コストに基づくハイブリッド幾何学的符号化の方法500を示す流れ図である。方法500は、図2のステップ210で実施され得る。ステップ505で、符号器130が親ノードの八分木コーディングのコストCOを計算する。ステップ510で、符号器130が親ノードの四分木コーディングのコストCQを計算する。コストCO、コストCQは、レート歪み、点群内の点の平坦度、または別のメトリックを指示する。判断515で、符号器130がCQ＜COかどうかを判断する。そうである場合には、四分木コーディングは十分に低いコストを有し、方法500はステップ520に進む。そうでない場合には、四分木コーディングは十分に低いコストを有さず、方法500はステップ540に進む。シグナリングを低減するために、符号器130は、八分木符号化を前提とし、minQuadTreeDepthによって指示されるか、maxQuadTreeSizeLog2によって指示されるか、または親ノード内の点の数が閾値を下回る深さから開始して方法500を行い得る。符号器130は、minQuadTreeDepthまたはmaxQuadTreeSizeLog2をシグナリングし得る。ステップ520〜ステップ550は図3のステップ320〜ステップ350と同様である。
【００４９】
符号器130は、LoDに達するまで方法500を繰り返す。符号器130が親ノードを四分木ノードとして設定すると、符号器130は、方法300がLoDに達するまで各後続の子ノード、孫ノード、などを四分木ノードとして符号化する。
【００５０】
図3の方法300および図5の方法500でさらに説明されている図2のステップ210をさらに実施するために、符号器130は以下の構文を幾何学ビットストリーム構文として符号化し得る。
【００５１】
【表１】
2021530143.tif 000008
【００５２】
bitstream＿size＿in＿bytesは、バイト単位の圧縮された幾何学ビットストリームサイズを指定する。minQuadTreeDepthは、現在の点群における四分木分解の最小深さを指定する。minQaudTreeDepth＝0の場合、ビットストリームは四分木ノードを含まない。minQaudTreeDepthが未定義の場合、これは0である。
【００５３】
GeometryNodeOccupancyCnt［depth］［xN］［yN］［zN］は、所与の深さの位置（xN，yN，zN）で八分木ノードに存在する子ノードの数を表す。GeometryNodeOccupancyCntの未定義の値は0として扱われる。これは、GeometryNodeOccupancyCnt［−1］［0］［0］［0］＝8として初期設定される。
【００５４】
NodeX［depth］［nodeIdx］、NodeY［depth］［nodeIdx］、およびNodeZ［depth］［nodeIdx］は、所与の深さにおいて復号順序でidx番目のノードのx座標、y座標、およびz座標を表す。これらは、NodeX［0］＝NodeY［0］＝NodeZ［0］＝0として初期設定される。NumNodesAtDepth［depth］は、所与の深さで復号されるべきノードの数を表す。これは、NumNodesAtDepth［0］＝1として初期設定される。
【００５５】
加えて、符号器130は、以下の構文を幾何学ノード構文として符号化し得る。
【００５６】
【表２】
2021530143.tif 000009
【００５７】
深さMaxGeometryCodeTreeDepthのノードは最後の子ノードであり、葉ノードと呼ばれ得る。四分木コーディングでは、ノードの位置がその左下隅の位置の座標によって（uN，vN）として与えられる。uPnおよびyvnは、ノードの親ノードの位置を以下のように指示する。
uPn＝uN＞＞1
vPn＝vN＞＞1  （7）
【００５８】
八分木コーディングでは、ノードの位置がその左下隅の位置の座標によって（xN，yN，zN）として与えられる。xPn、yPn、およびzPnは、ノードの親ノードの位置を以下のように指示する。
xPn＝xN＞＞1
yPn＝yN＞＞1
zPn＝zN＞＞1  （8）
【００５９】
NodeSizeLog2は、以下のように導出される。NodeSizeLog2＝MaxGeometryOctreeDepth−depth ChildNodeSizeLog2は、以下のように導出される。ChildNodeSizeLog2＝NodeSizeLog2−1 NeighbourPatternは以下のように導出される。
NeighbourPattern＝
（（GeometryNodeOccupancyCnt［depth−1］［xPn＋1］［yPn］［zPn］！＝0）＜＜0）
（（GeometryNodeOccupancyCnt［depth−1］［xPn−1］［yPn］［zPn］！＝0）＜＜1）
（（GeometryNodeOccupancyCnt［depth−1］［xPn］［yPn−1］［zPn］！＝0）＜＜2）
｜（（GeometryNodeOccupancyCnt［depth−1］［xPn］［yPn＋1］［zPn］！＝0）＜＜3）
｜（（GeometryNodeOccupancyCnt［depth−1］［xPn］［yPn］［zPn−1］！＝0）＜＜4）
｜（（GeometryNodeOccupancyCnt［depth−1］［xPn］［yPn］［zPn＋1］！＝0）＜＜5）
【００６０】
四分木コーディングでは、近隣のパターンが空ノードと仮定される。single＿occupancy＿flag＝1は、そのノードが単一の子ノードを含むことを指示する。single＿occupancy＿flag＝0は、そのノードが複数の子ノードを含み得ることを指示する。occupancy＿idxは、親ノードに存在する単一の子ノードを識別する。存在する場合、OccupancyMapは1＜＜occupancy＿idxに等しく設定される。occupancy＿mapは、親ノードに存在する子ノードを識別するビットマップである。存在する場合、OccupancyMapは、入力としてNeighbourPatternおよびoccupancy＿mapを用いて呼び出された場合の幾何学占有マップ置換プロセスの出力に等しく設定される。四分木コーディングでは、occupancy＿mapは4個の入力要素の最大値を有する。八分木コーディングでは、occupancy＿mapは8個の入力要素の最大値を有する。配列GeometryNodeChildren［i］は、親ノードの第iの占有された子ノードのインデックスを識別する。GeometryNodeChildrenCntは、配列GeometryNodeChildren［］内の子ノードの数を識別する。八分木コーディングでは、親ノードは1から8個の子を有し得る。四分木コーディングでは、親ノードは1から4個の子を有し得る。
【００６１】
occupancy＿idxまたはoccupancy＿mapが存在する場合、以下が適用される。
childCnt＝0；
for（childIdx＝0；childIdx＜8；childIdx＋＋）｛
if（！（OccupancyMap＆（1＜＜childIdx）））
continue；
GeometryNodeChildren［childCnt＋＋］＝childIdx；
｝
GeometryNodeChildrenCnt＝childCnt；
GeometryNodeOccupancyCnt［depth］［xN］［yN］［zN］＝childCnt；
【００６２】
DirectModeFlagPresentは以下のように導出される。
以下の条件すべてが真である場合、DirectModeFlagPresent＝1：
inferred＿direct＿coding＿mode＿enabled＿flag＝1
NodeSizeLog2＞1
GeometryNodeOccupancyCnt［depth−1］［xPn］［yPn］［zPn］≦2
GeometryNodeOccupancyCnt［depth］［xN］［yN］［zN］＝1
そうでない場合、DirectModeFlagPresent＝0
【００６３】
num＿points＿eq＿1＿flag＝1は、現在の子ノードが単一の点を含むことを指示する。num＿points＿eq＿1＿flag＝0は、子ノードが少なくとも2つの点を含むことを指示する。存在しない場合、num＿points＿eq＿1＿flagは1であると推測されると推測される。num＿points＿minus2は、子ノードによって表される点の数を指示する。direct＿mode＿flag＝1は、親ノードの単一の子ノードが葉ノードであり、1つまたは複数のデルタ点座標を含むことを指示する。direct＿mode＿flag＝0は、親ノードの単一の子ノードが八分木ノードであることを指示する。存在しない場合、direct＿mode＿flag＝0であると推測される。
【００６４】
direct＿mode＿flagが1に等しい場合、以下が適用される。GeometryNodeOccupancyCnt［depth］［xN］［yN］［zN］＝0 direct＿mode＿flagが0に等しい場合、以下が適用される。
nodeIdx＝NumNodesAtDepth［depth＋1］；
for（child＝0；child＜GeometryNodeChildrenCnt；child＋＋）｛
childIdx＝GeometryNodeChildren［child］；
NodeX［depth＋1］［nodeIdx］＝2×xN＋（childIdx＆4＝＝1）；
NodeY［depth＋1］［nodeIdx］＝2×yN＋（childIdx＆2＝＝1）；
NodeZ［depth＋1］［nodeIdx］＝2×zN＋（childIdx＆1＝＝1）；
nodeIdx＋＋；
｝
NumNodesAtDepth［depth＋1］＝nodeIdx；
【００６５】
num＿direct＿points＿minus1は、子ノード内の点の数を指示する。point＿rem＿x［i］［j］、point＿rem＿y［i］［j］、およびpoint＿rem＿z［i］［j］は、インデックスGeometryNodeChildren［0］によって識別された子ノードの原点に対する現在の子ノードの第iの点のそれぞれのx座標、y座標、およびz座標の第jのビットを指示する。
【００６６】
図6は、本開示の一実施形態による、ハイブリッド幾何学的復号の方法600である。方法600は、図2のステップ260を実施し得る。判断610で、復号器180が、minQuadTreeDepth＝0かどうかを判断する。そうである場合には、方法600はステップ620に進む。そうでない場合には、方法600は判断630に進む。あるいは、復号器180は、親ノード内の点の数が閾値を下回る深さに達すると、ステップ620に進んでもよい。ステップ620で、復号器180が、現在のノードを八分木ノードとして復号する。復号器180は、LoDに達するまでステップ620を繰り返す。
【００６７】
判断630で、復号器180が、node＿coding＿mode＝0かどうかを判断する。そうである場合には、方法600はステップ640に進む。そうでない場合には、方法はステップ650に進む。ステップ640で、復号器180が、現在のノードを八分木ノードとして復号する。また、現在のノードが八分木ノードであり、やはり八分木ノードである親ノードを有する場合には、復号器180がビットストリームから追加情報を読み取らない場合もある。ステップ650で、復号器180が、現在のノードを四分木ノードとして復号する。現在のノードが四分木ノードであり、八分木ノードである親ノードを有する場合には、復号器180はビットストリームから、スケールパラメータ、オフセットパラメータ（mean＿value＿x、mean＿value＿y、mean＿value＿z）、および法線パラメータ（projection＿rot＿x、projection＿rot＿y、projection＿rot＿z）を読み取り、復号器180は、点を平面上に投影するために逆スケールパラメータ（scale＿projection）を適用する。現在のノードが四分木ノードであり、やはり四分木ノードである親ノードを有する場合には、復号器180はビットストリームから、親ノードから継承されたスケールパラメータ、オフセットパラメータ（mean＿value＿x、mean＿value＿y、mean＿value＿z）、および法線パラメータ（projection＿rot＿x、projection＿rot＿y、projection＿rot＿z）を読み取り、復号器180は、点を平面上に投影するために逆スケールパラメータ（scale＿projection）を適用する。復号器180は、LoDに達するまで、ステップ640の判断630を繰り返し、ステップ640〜ステップ650を繰り返す。
【００６８】
図7は、本開示の一実施形態による、ハイブリッド幾何学的符号化の方法700を示す流れ図である。ソースデバイス110が方法700を実施する。ステップ710で、点群が取得される。例えば、点群生成器120が点群を記録する。ステップ720で、親ノードの八分木符号化か四分木符号化かの選択がなされる。例えば、符号器130が図3の判断315または図5の判断515を行う。ステップ730で、選択に基づいて親ノードがビットストリームに符号化される。例えば、符号器130が、図3のステップ335もしくはステップ345を行うか、または図5のステップ535もしくはステップ545を行う。最後に、ステップ740で、ビットストリームが送信される。例えば、出力インターフェース140が媒体150を介して宛先デバイス160にビットストリームを送信する。
【００６９】
図8は、本開示の一実施形態による、ハイブリッド幾何学的復号の方法800を示す流れ図である。宛先デバイス160が方法800を実施する。ステップ810で、ビットストリームが受信される。例えば、入力インターフェース170がソースデバイス110からビットストリームを受信する。ステップ820で、ビットストリームからPCCの深さを指示する第1のパラメータがパースされる。例えば、復号器180がビットストリームからminQuadTreeDepthをパースする。ステップ830で、深さの前の第1のノードが八分木復号を使用して復号される。例えば、復号器180が、図6の判断610からのはいの結果後のステップ620を行う。ステップ840で、深さおよび深さの後の第2のノードのノードコーディングモードを指示する第2のパラメータがビットストリームからパースされる。例えば、復号器180がビットストリームからnode＿coding＿modeをパースする。最後に、ステップ850で、第2のパラメータに基づいて第2のノードが復号される。例えば、復号器180が図6のステップ640またはステップ650を行う。
【００７０】
図9は、本開示の一実施形態による装置900の概略図である。装置900は、開示の実施形態を実装し得る。装置900は、データを受信する入口ポート910およびRX920と、データを処理するプロセッサ、論理ユニット、ベースバンドユニット、またはCPU930と、データを送信するTX940および出口ポート950と、データを格納するメモリ960とを含む。装置900は、光信号、電気信号、またはRF信号の入力または出力を提供する入口ポート910、RX920、TX940、および出口ポート950に結合されたOE構成要素、EO構成要素、またはRF構成要素も含み得る。
【００７１】
プロセッサ930は、ハードウェア、ミドルウェア、ファームウェア、またはソフトウェアの任意の組み合わせである。プロセッサ930は、1つまたは複数のCPUチップ、コア、FPGA、ASIC、またはDSPの任意の組み合わせを含む。プロセッサ930は、入口ポート910、RX920、TX940、出口ポート950、およびメモリ960と通信する。プロセッサ930は、開示の実施形態を実施する、ハイブリッド幾何学的コーディング構成要素970を含む。したがって、ハイブリッド幾何学的コーディング構成要素970を含めることにより、装置900の機能性に対する実質的改善がもたらされ、装置900の異なる状態への変換がもたらされる。あるいは、メモリ960は、ハイブリッド幾何学的コーディング構成要素970を命令として格納し、プロセッサ930はそれらの命令を実行する。
【００７２】
メモリ960は、ディスク、テープドライブ、またはソリッドステートドライブの任意の組み合わせを含む。装置900はメモリ960をオーバフローデータ記憶デバイスとして使用して、例えばコンピュータプログラム製品として、装置900がプログラムを実行のために選択したときにそれらのプログラムを格納し、装置900がそれらのプログラムの実行中に読み取る命令およびデータを格納し得る。メモリ960は、揮発性または不揮発性であってもよく、ROM、RAM、TCAM、またはSRAMの任意の組み合わせであってもよい。
【００７３】
コンピュータプログラム製品は、プロセッサ、例えばプロセッサ930によって実行されると、装置に実施形態のいずれかを行わせる、非一時的な媒体、例えばメモリ960に格納されたコンピュータ実行可能命令を含み得る。
【００７４】
図10は、コーディングの手段1000の概略図である。一実施形態では、コーディングの手段1000は、PCCデバイス1002において実装される（例えば、符号器130や復号器180）。PCCデバイス1002は、受信手段1001を含む。受信手段1001は、符号化すべき画像を受信するか、または復号すべきビットストリームを受信するように構成される。PCCデバイス1002は、受信手段1001に結合された送信手段1007を含む。送信手段1007は、ビットストリームを復号器に送信するか、または復号された画像を表示手段に送信するように構成される。
【００７５】
PCCデバイス1002は、記憶手段1003を含む。記憶手段1003は、受信手段1001または送信手段1007の少なくとも1つに結合される。記憶手段1003は、命令を格納するように構成される。PCCデバイス1002は、処理手段1005も含む。処理手段1005は、記憶手段1003に結合される。処理手段1005は、本明細書で開示される方法を行うために記憶手段1003に格納された命令を実行するように構成される。
【００７６】
本開示ではいくつかの実施形態が提供されているが、開示のシステムおよび方法は、本開示の趣旨または範囲から逸脱することなく他の多くの特定の形態で具現化され得ることが理解されよう。本開示の例は、限定ではなく例示とみなされるべきであり、その意図は、本明細書に記載される詳細に限定されるべきではない。例えば、様々な要素または構成要素が別のシステムにおいて結合もしくは統合される場合もあり、または特定の機能が省略されるか、または実装されない場合もある。
【００７７】
加えて、様々な実施形態において個別のまたは分離されたものとして説明および例示された技術、システム、サブシステム、および方法が、本開示の範囲から逸脱することなく、他のシステム、構成要素、技術、または方法と結合または統合される場合もある。結合されたものとして図示または考察された他の項目は、直接結合される場合もあり、または、電気的か、機械的か、またはその他の方法かを問わず、何らかのインターフェース、デバイス、または中間構成要素を介して間接的に結合されるか、または通信する場合もある。変更、置換、および改変の他の例は、当業者による確認が可能であり、本明細書で開示される趣旨および範囲から逸脱することなくなされ得る。
【符号の説明】
【００７８】
100  コーディングシステム
110  ソースデバイス
120  点群生成器
130  符号器
140  出力インターフェース
150  媒体
160  宛先デバイス
170  入力インターフェース
180  復号器
190  プロジェクタ
200  簡略化されたコーディング方法
300  ハイブリッド幾何学的符号化の方法
410  平面に沿ったまたは実質的に沿った点を有する親ノード
420  平面に沿ったまたは実質的に沿った点を有しない親ノード
500  ハイブリッド幾何学的符号化の方法
600  ハイブリッド幾何学的復号の方法
700  ハイブリッド幾何学的符号化の方法
800  ハイブリッド幾何学的復号の方法
900  装置
910  入口ポート
920  RX
930  プロセッサ
940  TX
950  出口ポート
960  メモリ
970  ハイブリッド幾何学的コーディング構成要素
1000  コーディングの手段
1001  受信手段
1002  PCCデバイス
1003  記憶手段
1005  処理手段
1007  送信手段
【図１】
2021530143.tif 000010
【図２】
2021530143.tif 000011
【図３】
2021530143.tif 000012
【図４Ａ】
2021530143.tif 000013
【図４Ｂ】
2021530143.tif 000014
【図５】
2021530143.tif 000015
【図６】
2021530143.tif 000016
【図７】
2021530143.tif 000017
【図８】
2021530143.tif 000018
【図９】
2021530143.tif 000019
【図１０】
2021530143.tif 000020
【手続補正書】
【提出日】令和3年2月1日(2021.2.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
装置であって、
点群を取得し、
親ノードの八分木符号化か四分木符号化かの選択を行い、
前記選択に基づいて前記親ノードをビットストリームに符号化する、
ように構成されたプロセッサと、
前記プロセッサに結合され、前記ビットストリームを送信するように構成された送信機と
を含む、装置。
【請求項２】
前記八分木符号化が三次元（3D）である、請求項1に記載の装置。
【請求項３】
前記八分木符号化が8個の立方体子ノードを使用する、請求項2に記載の装置。
【請求項４】
前記四分木符号化が二次元（2D）である、請求項1に記載の装置。
【請求項５】
前記四分木符号化が4個の正方形子ノードを使用する、請求項4に記載の装置。
【請求項６】
前記プロセッサが、平坦度パラメータに基づいて前記選択をさらに行うようにさらに構成される、請求項1に記載の装置。
【請求項７】
前記プロセッサが、レート歪みに基づいて前記選択をさらに行うようにさらに構成される、請求項1に記載の装置。
【請求項８】
方法であって、
点群を取得するステップと、
親ノードの八分木符号化か四分木符号化かの選択を行うステップと、
前記選択に基づいて前記親ノードをビットストリームに符号化するステップと、
前記ビットストリームを送信するステップと
を含む、方法。
【請求項９】
前記八分木符号化が三次元（3D）である、請求項8に記載の方法。
【請求項１０】
前記八分木符号化が8個の立方体子ノードを使用する、請求項9に記載の方法。
【請求項１１】
前記四分木符号化が二次元（2D）である、請求項8に記載の方法。
【請求項１２】
前記四分木符号化が4個の正方形子ノードを使用する、請求項11に記載の方法。
【請求項１３】
平坦度パラメータに基づいて前記選択をさらに行うステップ、または、
レート歪みに基づいて前記選択をさらに行うステップをさらに含む、
請求項8に記載の方法。
【請求項１４】
装置であって、
ビットストリームを受信するように構成された受信機と、
前記受信機に結合され、
前記ビットストリームから、点群コーディング（PCC）の深さを指示する第1のパラメータをパースし、
八分木復号を使用して前記深さの前の第1のノードを復号し、
前記ビットストリームから、前記深さおよび前記深さの後の第2のノードのノードコーディングモードを指示する第2のパラメータをパースし、
前記第2のパラメータに基づいて前記第2のノードを復号する
ように構成されたプロセッサと
を含む、装置。
【請求項１５】
前記八分木復号が三次元（3D）であり、8個の立方体子ノードを使用する、請求項14に記載の装置。
【請求項１６】
前記四分木復号が二次元（2D）であり、4個の正方形子ノードを使用する、請求項14に記載の装置。
【請求項１７】
前記プロセッサが、詳細度（LoD）に達するまで前記第1のノードおよび前記第2のノードをさらに復号するようにさらに構成される、請求項14に記載の装置。
【請求項１８】
方法であって、
ビットストリームを受信するステップと、
前記ビットストリームから、点群コーディング（PCC）の深さを指示する第1のパラメータをパースするステップと、
八分木復号を使用して前記深さの前の第1のノードを復号するステップと、
前記ビットストリームから、前記深さおよび前記深さの後の第2のノードのノードコーディングモードを指示する第2のパラメータをパースするステップと、
前記第2のパラメータに基づいて前記第2のノードを復号するステップと
を含む、方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は一般にPCCに関し、特に点群のハイブリッド幾何学的コーディングに関する。
【背景技術】
【０００２】
点群は比較的大量のデータを使用するため、点群の通信は比較的大量の帯域幅を使用する。しかしながら、多くのネットワークは、その帯域幅容量または帯域幅容量近くで動作する。加えて、顧客は高い点群品質を要求し、これにはさらに多くのデータの使用が必要である。したがって、データ点群が使用するデータ量を削減すると同時に点群品質を向上させることが求められている。1つの解決策は、符号化プロセス時に点群を圧縮し、復号プロセス時に点群を展開することである。
【発明の概要】
【課題を解決するための手段】
【０００３】
第1の態様は、点群を取得し、親ノードの八分木符号化か四分木符号化かの選択を行い、選択に基づいて親ノードをビットストリームに符号化するように構成されたプロセッサと、プロセッサに結合され、ビットストリームを送信するように構成された送信機と、を含む装置に関する。
【０００４】
そのような第1の態様による装置の第1の実装形態において、八分木符号化は3Dである。
【０００５】
そのような第1の態様または第1の態様の任意の前述の実装形態による装置の第2の実装形態において、八分木符号化は8個の立方体子ノードを使用する。
【０００６】
そのような第1の態様または第1の態様の任意の前述の実装形態による装置の第3の実装形態において、四分木符号化は2Dである。
【０００７】
そのような第1の態様または第1の態様の任意の前述の実装形態による装置の第4の実装形態において、四分木符号化は4個の正方形子ノードを使用する。
【０００８】
そのような第1の態様または第1の態様の任意の前述の実装形態による装置の第5の実装形態において、プロセッサは、平坦度パラメータに基づいて選択をさらに行うようにさらに構成される。
【０００９】
そのような第1の態様または第1の態様の任意の前述の実装形態による装置の第6の実装形態において、プロセッサは、レート歪みに基づいて選択をさらに行うようにさらに構成される。
【００１０】
第2の態様は、点群を取得するステップと、親ノードの八分木符号化か四分木符号化かの選択を行うステップと、選択に基づいて親ノードをビットストリームに符号化するステップと、ビットストリームを送信するステップと、を含む方法に関する。
【００１１】
そのような第2の態様による方法の第1の実装形態において、八分木符号化は3Dである。
【００１２】
そのような第2の態様または第2の態様の任意の前述の実装形態による方法の第2の実装形態において、八分木符号化は8個の立方体子ノードを使用する。
【００１３】
そのような第2の態様または第2の態様の任意の前述の実装形態による方法の第3の実装形態において、四分木符号化は2Dである。
【００１４】
そのような第2の態様または第2の態様の任意の前述の実装形態による方法の第4の実装形態において、四分木符号化は4個の正方形子ノードを使用する。
【００１５】
そのような第2の態様または第2の態様の任意の前述の実装形態による方法の第5の実装形態において、本方法は、平坦度パラメータに基づいて選択をさらに行うステップをさらに含む。
【００１６】
そのような第2の態様または第2の態様の任意の前述の実装形態による方法の第6の実装形態において、本方法は、レート歪みに基づいて選択をさらに行うステップをさらに含む。
【００１７】
第3の態様は、ビットストリームを受信するように構成された受信機と、受信機に結合され、ビットストリームから、PCCの深さを指示する第1のパラメータをパースし、八分木復号を使用して深さの前の第1のノードを復号し、ビットストリームから、深さおよび深さの後の第2のノードのノードコーディングモードを指示する第2のパラメータをパースし、第2のパラメータに基づいて第2のノードを復号するように構成されたプロセッサと、を含む装置に関する。
【００１８】
そのような第3の態様による装置の第1の実装形態において、八分木復号は3Dであり、8個の立方体子ノードを使用する。
【００１９】
そのような第3の態様または第3の態様の任意の前述の実装形態による装置の第2の実装形態において、四分木復号は2Dであり、4個の正方形子ノードを使用する。
【００２０】
そのような第3の態様または第3の態様の任意の前述の実装形態による装置の第3の実装形態において、プロセッサは、LoDに達するまで第1のノードおよび第2のノードをさらに復号するようにさらに構成される。
【００２１】
第4の態様は、ビットストリームを受信するステップと、ビットストリームから、PCCの深さを指示する第1のパラメータをパースするステップと、八分木復号を使用して深さの前の第1のノードを復号するステップと、ビットストリームから、深さおよび深さの後の第2のノードのノードコーディングモードを指示する第2のパラメータをパースするステップと、第2のパラメータに基づいて第2のノードを復号するステップと、を含む方法に関する。
【００２２】
第5の態様は、点群を取得し、親ノードの八分木符号化か四分木符号化かの選択を行い、選択に基づいて親ノードをビットストリームに符号化するように構成された処理手段と、処理手段に結合され、ビットストリームを送信するように構成された送信手段と、を含む装置に関する。
【００２３】
上記の実施形態のいずれもその他の上記実施形態と組み合わされて新しい実施形態を作成し得る。上記その他の特徴は、以下の詳細な説明を添付の図面および特許請求の範囲と併せて読めばより明確に理解されるであろう。
【００２４】
本開示のより十分な理解のために、ここで、添付の図面および詳細な説明に関連した、以下の簡単な説明を参照し、同様の参照番号は同様の部分を表す。
【図面の簡単な説明】
【００２５】
【図１】コーディングシステムの概略図である。
【図２】簡略化されたコーディング方法を示す流れ図である。
【図３】本開示の一実施形態による、平坦度制約に基づくハイブリッド幾何学的符号化の方法を示す流れ図である。
【図４Ａ】平面に沿ったまたは実質的に沿った点を有する親ノードの概略図である。
【図４Ｂ】平面に沿ったまたは実質的に沿った点を有しない親ノードの概略図である。
【図５】本開示の一実施形態による、コストに基づくハイブリッド幾何学的符号化の方法を示す流れ図である。
【図６】本開示の一実施形態による、ハイブリッド幾何学的復号の方法を示す図である。
【図７】本開示の一実施形態による、ハイブリッド幾何学的符号化の方法を示す流れ図である。
【図８】本開示の一実施形態による、ハイブリッド幾何学的復号の方法を示す流れ図である。
【図９】本開示の一実施形態による装置の概略図である。
【図１０】コーディングの手段の概略図である。
【発明を実施するための形態】
【００２６】
最初に、以下では1つまたは複数の実施形態の例示的な実施態様が提供されるが、開示のシステムおよび／または方法は、現在既知または既存であるかどうかを問わず、任意の数の技術を使用して実施され得ることを理解されたい。本開示は、いかなる点でも、本明細書で例示および説明される例示的な設計および実施態様を含む、以下で例示される例示的な実施態様、図面、および技術に限定されるべきではなく、添付の特許請求の範囲およびそれらの均等物の全範囲内で変更され得る。
【００２７】
以下の略語が適用される。
ASIC：特定用途向け集積回路
CPU：中央処理装置
DSP：デジタル信号プロセッサ
EO：電気・光
FPGA：フィールドプログラマブルゲートアレイ
LoD：詳細度
OE：光・電気
PCC：点群コーディング
RAM：ランダムアクセスメモリ
RF：無線周波数
ROM：読み取り専用メモリ
RX：受信部
SRAM：スタティックRAM
TCAM：三値連想メモリ
TX：送信部
2D：二次元
3D：三次元
【００２８】
図1は、コーディングシステム100の概略図である。コーディングシステム100は、ソースデバイス110と、媒体150と、宛先デバイス160とを含む。
【００２９】
ソースデバイス110は、点群生成器120と、符号器130と、出力インターフェース140とを含む。点群生成器120は、点群を生成するのに適した構成要素である。符号器130は、コーデックと呼ばれ得る。符号器130は、1組の規則に従って符号化を行う。出力インターフェース140は、アンテナ、または宛先デバイス160にデータを送信するのに適した別の構成要素である。あるいは、点群生成器120、符号器130、および出力インターフェース140はデバイスの組み合わせである。
【００３０】
媒体150は、ローカルネットワーク、無線ネットワーク、インターネット、または別の適切な媒体である。媒体150は、ソースデバイス110と宛先デバイス160との間でデータを通信する。
【００３１】
宛先デバイス160は、入力インターフェース170と、復号器180と、プロジェクタ190とを含む。入力インターフェース170は、アンテナ、またはソースデバイス110からデータを受信するのに適した別の構成要素である。復号器180は、コーデックとも呼ばれ得る。復号器180は、1組の規則に従って復号を行う。プロジェクタ190は、点群を投影するのに適した構成要素である。あるいは、入力インターフェース170、復号器180、およびプロジェクタ190はデバイスの組み合わせである。
【００３２】
動作に際して、ソースデバイス110では、点群生成器120が点群を取り込み、符号器130が点群を符号化して符号化された点群を作成し、出力インターフェース140が符号化された点群を媒体150上で宛先デバイス160に向けて送信する。ソースデバイス110は点群もしくは符号化された点群をローカルに格納してもよく、またはソースデバイス110は、点群もしくは符号化された点群の別のデバイス上での格納を命令してもよい。宛先デバイス160では、入力インターフェース170がソースデバイス110から符号化された点群を受信し、復号器180が符号化された点群を復号して復号された点群を取得し、プロジェクタ190が復号された点群を投影する。復号器180は符号化された点群を、符号器130が点群を符号化する方法と比較して逆の方法で復号し得る。宛先デバイス160は符号化された点群または復号された点群をローカルに格納し、または宛先デバイス160は、符号化された点群または復号された点群の別のデバイス上での格納を命令する。
【００３３】
点群生成器120は、ライダ、従来のカメラ、赤外線カメラ、飛行時間型カメラ、レーザシステム、スキャナ、または物体をスキャンして、物体を表す点群を生成する別のデバイスであり得る。物体は車両であってもよく、よって点群は3Dであり得る。点群は、何十万または何百万もの点を含み得る。したがって、点群は、符号化するための相当なデータおよび通信するための相当な帯域幅を必要とする。したがって、点群を効率的にコード化し、よって通信することが求められている。
【００３４】
符号器130および復号器180は点群のPCCを行う。PCCは、属性コーディングと幾何学的コーディングの両方を含む。コーディングは、符号化と復号の両方を含む。属性コーディングは、色、反射率、および透明度などの属性をコード化する。幾何学的コーディングは、空間的に点がどこにあるかをコード化する。八分木コーディングは、幾何学的コーディングの1タイプである。
【００３５】
八分木コーディングは、点群内のすべての点を包含する3D立方体である親ノードから開始し、親ノードを、やはり3D立方体である8個の子ノードに分割し、その分割を、所望のエンドポイントまで繰り返す。分割ごとに、分割されるノードが親ノードであり、親ノードが分割されたノードが子ノードである。各親ノードは8ビットでコード化され、各ビットは、対応する子ノードが点を含むかどうかを指示する。親ノードの中にはそれらの3D空間全体に広がった点を有しないものもあり得る。代わりに、それらの親ノードは、平面に沿ったまたは実質的に沿った点を有し得る。したがって、それらの親ノードを8個の子ノードに分割することは非効率的である。
【００３６】
本明細書で開示されるのは、点群のハイブリッド幾何学的コーディングのための実施形態である。このコンテキストでは、点群のハイブリッド幾何学的コーディングは3Dコーディングと2Dコーディング、例えば、八分木コーディングと四分木コーディングの両方を含む。四分木コーディングは、3D立方体である親ノードから開始し、親ノード内の点を2D平面上に投影し、平面を、2D正方形である4個の子ノードに分割する。親ノードは4ビットでコード化され、各ビットは、対応する子ノードが点を含むかどうかを指示する。八分木コーディングを使用するか四分木コーディングを使用するかは、平坦度パラメータ、レート歪み、または別のメトリックに基づくものである。八分木コーディングと四分木コーディングの両方を用いたハイブリッド幾何学的コーディングが論じられるが、実施形態は異なる数のノードを用いた他のタイプのコーディングにも適用される。加えて、平坦度パラメータおよびレート歪みが論じられるが、実施形態は、許容できるレベルの品質を保持しながら、2Dコーディングをより効率的にする他のメトリックにも適用される。
【００３７】
図2は、簡略化されたコーディング方法200を示す流れ図である。コーディングシステム100が方法200を実施する。簡略化されたコーディング方法200は、コーディングプロセスの一部を示している。よって、コーディングプロセスは、属性コーディングなどの他のステップを含み得る。
【００３８】
ステップ210で、符号器130が、点群の幾何学的符号化を行って第1の符号化されたビットストリームを取得する。ステップ210については、以下で図3および図5を参照してさらに説明する。ステップ220で、符号器130が、第1の符号化されたビットストリームの算術符号化を行って第2の符号化されたビットストリームを取得する。ステップ230で、出力インターフェース140が第2の符号化されたビットストリームを送信する。
【００３９】
ステップ240で、入力インターフェース170が第2の符号化されたビットストリームを受信する。ステップ250で、復号器180が、第2の符号化されたビットストリームの算術復号を行って復号されたビットストリームを取得する。最後に、ステップ260で、復号器180が第1の復号されたビットストリームの幾何学的復号を行って点群を取得する。ステップ260については、以下で図6を参照してさらに説明する。
【００４０】
図3は、本開示の一実施形態による、平坦度制約に基づくハイブリッド幾何学的符号化の方法300を示す流れ図である。方法300は、図2のステップ210を実施し得る。ステップ305で、符号器130が、親ノードの固有値λ1、λ2、λ3を計算する。λ1、λ2、λ3は、3本の直交軸である直交基底（x’，y’，z’）を形成する。（x’，y’，z’）は、グローバル座標系（x，y，z）に対して回転される。（x，y，z）と（x’，y’，z’）との間の角度は、Rx、Ry、およびRzである。ステップ310で、符号器130が親ノードの平坦度パラメータΘを計算する。λ3がλ1、λ2、λ3の中の最小であるとすると、Θは以下のとおりである。
【数１】
2021530143.tif 000021
判断315で、符号器130がλ3＜Θかどうかを判断する。そうである場合には、親ノードは平面に沿ったまたは実質的に沿った点を有し、方法300はステップ320に進む。そうでない場合には、親ノードは平面に沿ったまたは実質的に沿った点を有さず、方法300はステップ340に進む。
【００４１】
図4Aは、平面に沿ったまたは実質的に沿った点を有する親ノード410の概略図である。よって、方法300は、親ノード410についてステップ320に進むはずである。図4Bは、平面に沿ったまたは実質的に沿った点を有しない親ノード420の概略図である。よって、方法300は、親ノード420についてステップ340に進むはずである。
【００４２】
図3に戻って、ステップ320で、符号器130が親ノードを四分木ノードとして設定する。例えば、符号器130は、node＿coding＿mode＝1を符号化する。ステップ325で、符号器130が平面のパラメータを計算する。具体的には、符号器130は、λ3に対応する固有ベクトル、固有ベクトルに対応する法線ベクトルn、親ノードに対応する法線ベクトルn’を決定し、nとn’とを比較して、x方向の角度θ、y方向の角度φ、およびz方向の角度ψを取得する。θ、φ、およびψを使用して、符号器130は、以下の成分を有する回転セット（Rx，Ry，Rz）を計算する。
【数２】
2021530143.tif 000022
【数３】
2021530143.tif 000023
【数４】
2021530143.tif 000024
図心変換成分tx、ty、およびtzを使用して、符号器130は、変換行列Tを以下のように計算する。
【数５】
2021530143.tif 000025
Tは、原点を、親ノードの中心から平面の中心へ移動させる。符号器130は、平面の一辺の大きさを2mとしてさらに計算し、m＝QTNodeSizeLog2は以下のように親点群のscale＿projectionおよびNodeSizeLog2に基づくものである。
QTNodeSizeLog2＝NodeSizeLog2
または
QTNodeSizeLog2＝NodeSizeLog2−1  （4）
ステップ330で、符号器130が点群内の点を平面上に投影する。具体的には、符号器130は、3D（x，y，z）座標系からの点を、（Rx，Ry，Rz）およびTを使用して2D（u，v）座標系に投影する。ステップ335で、符号器130が親ノードを四分木ノードとして符号化する。
【００４３】
点を平面上に投影するための第1の代替方法として、符号器130は、回転を適用した後で投影軸インデックスおよび距離を使用する。その場合、符号器130は、点に対して3つの回転のみを適用し得る。点を平面上に投影するための第2の代替方法として、符号器130は、子ノード表面のうちの1つに対して回転なしの斜投影を使用する。その場合、符号器130は、法線ベクトルn（x，y，z）、平面の図心までの距離d、および投影平面インデックスを符号化する。例えば、投影平面インデックスは、xyでは00、xzでは01、yzでは10である。投影平面は、以下のような投影された法線の最小サイズを有する平面であり得る。
min｛nxy（x，y，0），nyz（0，y，z），nxz（x，0，z）｝  （5）
法線投影サイズが0の場合には、平面は対応する座標平面に平行であるので、符号器130は、距離および投影平面インデックスのみを符号化し得る。よって、法線ベクトルがない場合には、平面は対応する座標平面に平行である。
【００４４】
ステップ340で、符号器130が親ノードを八分木ノードとして設定する。ステップ345で、符号器130が親ノードを八分木ノードとして符号化する。最後に、ステップ350で、符号器130が子ノードを生成する。親ノードが四分木ノードである場合、符号器130は子ノードの中心点を以下のように計算する。
ChildQTNodeSizeLog2＝QTNodeSizeLog2−1  （6）
親ノードが八分木ノードである場合、符号器130は子ノードの中心点を標準的な八分木符号化を使用して計算する。
【００４５】
符号器130は、LoDに達するまで方法300を繰り返し、LoDは、事前定義されたノード分割、または分裂の最大回数を指示する。符号器130が親ノードを四分木ノードとして設定すると、符号器130は、方法300がLoDに達するまで各後続の子ノード、孫ノード、などを四分木ノードとして符号化する。
【００４６】
シグナリングを低減するために、符号器130は、八分木符号化を前提とし、minQuadTreeDepthによって指示されるか、maxQuadTreeSizeLog2によって指示されるか、または親ノード内の点の数が閾値を下回る深さから開始して方法300を行い得る。符号器130は、minQuadTreeDepthまたはmaxQuadTreeSizeLog2を符号化し得る。深さは、ノード分裂の回数を指示する。minQuadTreeDepth＝0の場合には、四分木コーディングが使用されない。符号器130は、minQuadTreeDepthまたはmaxQuadTreeSizeLog2をシグナリングし得る。
【００４７】
図5は、本開示の一実施形態による、コストに基づくハイブリッド幾何学的符号化の方法500を示す流れ図である。方法500は、図2のステップ210で実施され得る。ステップ505で、符号器130が親ノードの八分木コーディングのコストCOを計算する。ステップ510で、符号器130が親ノードの四分木コーディングのコストCQを計算する。コストCO、コストCQは、レート歪み、点群内の点の平坦度、または別のメトリックを指示する。判断515で、符号器130がCQ＜COかどうかを判断する。そうである場合には、四分木コーディングは十分に低いコストを有し、方法500はステップ520に進む。そうでない場合には、四分木コーディングは十分に低いコストを有さず、方法500はステップ540に進む。シグナリングを低減するために、符号器130は、八分木符号化を前提とし、minQuadTreeDepthによって指示されるか、maxQuadTreeSizeLog2によって指示されるか、または親ノード内の点の数が閾値を下回る深さから開始して方法500を行い得る。符号器130は、minQuadTreeDepthまたはmaxQuadTreeSizeLog2をシグナリングし得る。ステップ520〜ステップ550は図3のステップ320〜ステップ350と同様である。
【００４８】
符号器130は、LoDに達するまで方法500を繰り返す。符号器130が親ノードを四分木ノードとして設定すると、符号器130は、方法300がLoDに達するまで各後続の子ノード、孫ノード、などを四分木ノードとして符号化する。
【００４９】
図3の方法300および図5の方法500でさらに説明されている図2のステップ210をさらに実施するために、符号器130は以下の構文を幾何学ビットストリーム構文として符号化し得る。
【００５０】
【表１】
2021530143.tif 000026
【００５１】
bitstream＿size＿in＿bytesは、バイト単位の圧縮された幾何学ビットストリームサイズを指定する。minQuadTreeDepthは、現在の点群における四分木分解の最小深さを指定する。minQaudTreeDepth＝0の場合、ビットストリームは四分木ノードを含まない。minQaudTreeDepthが未定義の場合、これは0である。
【００５２】
GeometryNodeOccupancyCnt［depth］［xN］［yN］［zN］は、所与の深さの位置（xN，yN，zN）で八分木ノードに存在する子ノードの数を表す。GeometryNodeOccupancyCntの未定義の値は0として扱われる。これは、GeometryNodeOccupancyCnt［−1］［0］［0］［0］＝8として初期設定される。
【００５３】
NodeX［depth］［nodeIdx］、NodeY［depth］［nodeIdx］、およびNodeZ［depth］［nodeIdx］は、所与の深さにおいて復号順序でidx番目のノードのx座標、y座標、およびz座標を表す。これらは、NodeX［0］＝NodeY［0］＝NodeZ［0］＝0として初期設定される。NumNodesAtDepth［depth］は、所与の深さで復号されるべきノードの数を表す。これは、NumNodesAtDepth［0］＝1として初期設定される。
【００５４】
加えて、符号器130は、以下の構文を幾何学ノード構文として符号化し得る。
【００５５】
【表２】
2021530143.tif 000027
【００５６】
深さMaxGeometryCodeTreeDepthのノードは最後の子ノードであり、葉ノードと呼ばれ得る。四分木コーディングでは、ノードの位置がその左下隅の位置の座標によって（uN，vN）として与えられる。uPnおよびyvnは、ノードの親ノードの位置を以下のように指示する。
uPn＝uN＞＞1
vPn＝vN＞＞1  （7）
【００５７】
八分木コーディングでは、ノードの位置がその左下隅の位置の座標によって（xN，yN，zN）として与えられる。xPn、yPn、およびzPnは、ノードの親ノードの位置を以下のように指示する。
xPn＝xN＞＞1
yPn＝yN＞＞1
zPn＝zN＞＞1  （8）
【００５８】
NodeSizeLog2は、以下のように導出される。NodeSizeLog2＝MaxGeometryOctreeDepth−depth ChildNodeSizeLog2は、以下のように導出される。ChildNodeSizeLog2＝NodeSizeLog2−1 NeighbourPatternは以下のように導出される。
NeighbourPattern＝
（（GeometryNodeOccupancyCnt［depth−1］［xPn＋1］［yPn］［zPn］！＝0）＜＜0）
（（GeometryNodeOccupancyCnt［depth−1］［xPn−1］［yPn］［zPn］！＝0）＜＜1）
（（GeometryNodeOccupancyCnt［depth−1］［xPn］［yPn−1］［zPn］！＝0）＜＜2）
｜（（GeometryNodeOccupancyCnt［depth−1］［xPn］［yPn＋1］［zPn］！＝0）＜＜3）
｜（（GeometryNodeOccupancyCnt［depth−1］［xPn］［yPn］［zPn−1］！＝0）＜＜4）
｜（（GeometryNodeOccupancyCnt［depth−1］［xPn］［yPn］［zPn＋1］！＝0）＜＜5）
【００５９】
四分木コーディングでは、近隣のパターンが空ノードと仮定される。single＿occupancy＿flag＝1は、そのノードが単一の子ノードを含むことを指示する。single＿occupancy＿flag＝0は、そのノードが複数の子ノードを含み得ることを指示する。occupancy＿idxは、親ノードに存在する単一の子ノードを識別する。存在する場合、OccupancyMapは1＜＜occupancy＿idxに等しく設定される。occupancy＿mapは、親ノードに存在する子ノードを識別するビットマップである。存在する場合、OccupancyMapは、入力としてNeighbourPatternおよびoccupancy＿mapを用いて呼び出された場合の幾何学占有マップ置換プロセスの出力に等しく設定される。四分木コーディングでは、occupancy＿mapは4個の入力要素の最大値を有する。八分木コーディングでは、occupancy＿mapは8個の入力要素の最大値を有する。配列GeometryNodeChildren［i］は、親ノードの第iの占有された子ノードのインデックスを識別する。GeometryNodeChildrenCntは、配列GeometryNodeChildren［］内の子ノードの数を識別する。八分木コーディングでは、親ノードは1から8個の子を有し得る。四分木コーディングでは、親ノードは1から4個の子を有し得る。
【００６０】
occupancy＿idxまたはoccupancy＿mapが存在する場合、以下が適用される。
childCnt＝0；
for（childIdx＝0；childIdx＜8；childIdx＋＋）｛
if（！（OccupancyMap＆（1＜＜childIdx）））
continue；
GeometryNodeChildren［childCnt＋＋］＝childIdx；
｝
GeometryNodeChildrenCnt＝childCnt；
GeometryNodeOccupancyCnt［depth］［xN］［yN］［zN］＝childCnt；
【００６１】
DirectModeFlagPresentは以下のように導出される。
以下の条件すべてが真である場合、DirectModeFlagPresent＝1：
inferred＿direct＿coding＿mode＿enabled＿flag＝1
NodeSizeLog2＞1
GeometryNodeOccupancyCnt［depth−1］［xPn］［yPn］［zPn］≦2
GeometryNodeOccupancyCnt［depth］［xN］［yN］［zN］＝1
そうでない場合、DirectModeFlagPresent＝0
【００６２】
num＿points＿eq＿1＿flag＝1は、現在の子ノードが単一の点を含むことを指示する。num＿points＿eq＿1＿flag＝0は、子ノードが少なくとも2つの点を含むことを指示する。存在しない場合、num＿points＿eq＿1＿flag＝1であると推測される。num＿points＿minus2は、子ノードによって表される点の数を指示する。direct＿mode＿flag＝1は、親ノードの単一の子ノードが葉ノードであり、1つまたは複数のデルタ点座標を含むことを指示する。direct＿mode＿flag＝0は、親ノードの単一の子ノードが八分木ノードであることを指示する。存在しない場合、direct＿mode＿flag＝0であると推測される。
【００６３】
direct＿mode＿flagが1に等しい場合、以下が適用される。GeometryNodeOccupancyCnt［depth］［xN］［yN］［zN］＝0 direct＿mode＿flagが0に等しい場合、以下が適用される。
nodeIdx＝NumNodesAtDepth［depth＋1］；
for（child＝0；child＜GeometryNodeChildrenCnt；child＋＋）｛
childIdx＝GeometryNodeChildren［child］；
NodeX［depth＋1］［nodeIdx］＝2×xN＋（childIdx＆4＝＝1）；
NodeY［depth＋1］［nodeIdx］＝2×yN＋（childIdx＆2＝＝1）；
NodeZ［depth＋1］［nodeIdx］＝2×zN＋（childIdx＆1＝＝1）；
nodeIdx＋＋；
｝
NumNodesAtDepth［depth＋1］＝nodeIdx；
【００６４】
num＿direct＿points＿minus1は、子ノード内の点の数を指示する。point＿rem＿x［i］［j］、point＿rem＿y［i］［j］、およびpoint＿rem＿z［i］［j］は、インデックスGeometryNodeChildren［0］によって識別された子ノードの原点に対する現在の子ノードの第iの点のそれぞれのx座標、y座標、およびz座標の第jのビットを指示する。
【００６５】
図6は、本開示の一実施形態による、ハイブリッド幾何学的復号の方法600である。方法600は、図2のステップ260を実施し得る。判断610で、復号器180が、minQuadTreeDepth＝0かどうかを判断する。そうである場合には、方法600はステップ620に進む。そうでない場合には、方法600は判断630に進む。あるいは、復号器180は、親ノード内の点の数が閾値を下回る深さに達すると、ステップ620に進んでもよい。ステップ620で、復号器180が、現在のノードを八分木ノードとして復号する。復号器180は、LoDに達するまでステップ620を繰り返す。
【００６６】
判断630で、復号器180が、node＿coding＿mode＝0かどうかを判断する。そうである場合には、方法600はステップ640に進む。そうでない場合には、方法はステップ650に進む。ステップ640で、復号器180が、現在のノードを八分木ノードとして復号する。また、現在のノードが八分木ノードであり、やはり八分木ノードである親ノードを有する場合には、復号器180がビットストリームから追加情報を読み取らない場合もある。ステップ650で、復号器180が、現在のノードを四分木ノードとして復号する。現在のノードが四分木ノードであり、八分木ノードである親ノードを有する場合には、復号器180はビットストリームから、スケールパラメータ、オフセットパラメータ（mean＿value＿x、mean＿value＿y、mean＿value＿z）、および法線パラメータ（projection＿rot＿x、projection＿rot＿y、projection＿rot＿z）を読み取り、復号器180は、点を平面上に投影するために逆スケールパラメータ（scale＿projection）を適用する。現在のノードが四分木ノードであり、やはり四分木ノードである親ノードを有する場合には、復号器180はビットストリームから、親ノードから継承されたスケールパラメータ、オフセットパラメータ（mean＿value＿x、mean＿value＿y、mean＿value＿z）、および法線パラメータ（projection＿rot＿x、projection＿rot＿y、projection＿rot＿z）を読み取り、復号器180は、点を平面上に投影するために逆スケールパラメータ（scale＿projection）を適用する。復号器180は、LoDに達するまで、ステップ640の判断630を繰り返し、ステップ640〜ステップ650を繰り返す。
【００６７】
図7は、本開示の一実施形態による、ハイブリッド幾何学的符号化の方法700を示す流れ図である。ソースデバイス110が方法700を実施する。ステップ710で、点群が取得される。例えば、点群生成器120が点群を記録する。ステップ720で、親ノードの八分木符号化か四分木符号化かの選択がなされる。例えば、符号器130が図3の判断315または図5の判断515を行う。ステップ730で、選択に基づいて親ノードがビットストリームに符号化される。例えば、符号器130が、図3のステップ335もしくはステップ345を行うか、または図5のステップ535もしくはステップ545を行う。最後に、ステップ740で、ビットストリームが送信される。例えば、出力インターフェース140が媒体150を介して宛先デバイス160にビットストリームを送信する。
【００６８】
図8は、本開示の一実施形態による、ハイブリッド幾何学的復号の方法800を示す流れ図である。宛先デバイス160が方法800を実施する。ステップ810で、ビットストリームが受信される。例えば、入力インターフェース170がソースデバイス110からビットストリームを受信する。ステップ820で、ビットストリームからPCCの深さを指示する第1のパラメータがパースされる。例えば、復号器180がビットストリームからminQuadTreeDepthをパースする。ステップ830で、深さの前の第1のノードが八分木復号を使用して復号される。例えば、復号器180が、図6の判断610からのはいの結果後のステップ620を行う。ステップ840で、深さおよび深さの後の第2のノードのノードコーディングモードを指示する第2のパラメータがビットストリームからパースされる。例えば、復号器180がビットストリームからnode＿coding＿modeをパースする。最後に、ステップ850で、第2のパラメータに基づいて第2のノードが復号される。例えば、復号器180が図6のステップ640またはステップ650を行う。
【００６９】
図9は、本開示の一実施形態による装置900の概略図である。装置900は、開示の実施形態を実装し得る。装置900は、データを受信する入口ポート910およびRX920と、データを処理するプロセッサ、論理ユニット、ベースバンドユニット、またはCPU930と、データを送信するTX940および出口ポート950と、データを格納するメモリ960とを含む。装置900は、光信号、電気信号、またはRF信号の入力または出力を提供する入口ポート910、RX920、TX940、および出口ポート950に結合されたOE構成要素、EO構成要素、またはRF構成要素も含み得る。
【００７０】
プロセッサ930は、ハードウェア、ミドルウェア、ファームウェア、またはソフトウェアの任意の組み合わせである。プロセッサ930は、1つまたは複数のCPUチップ、コア、FPGA、ASIC、またはDSPの任意の組み合わせを含む。プロセッサ930は、入口ポート910、RX920、TX940、出口ポート950、およびメモリ960と通信する。プロセッサ930は、開示の実施形態を実施する、ハイブリッド幾何学的コーディング構成要素970を含む。したがって、ハイブリッド幾何学的コーディング構成要素970を含めることにより、装置900の機能性に対する実質的改善がもたらされ、装置900の異なる状態への変換がもたらされる。あるいは、メモリ960は、ハイブリッド幾何学的コーディング構成要素970を命令として格納し、プロセッサ930はそれらの命令を実行する。
【００７１】
メモリ960は、ディスク、テープドライブ、またはソリッドステートドライブの任意の組み合わせを含む。装置900はメモリ960をオーバフローデータ記憶デバイスとして使用して、例えばコンピュータプログラム製品として、装置900がプログラムを実行のために選択したときにそれらのプログラムを格納し、装置900がそれらのプログラムの実行中に読み取る命令およびデータを格納し得る。メモリ960は、揮発性または不揮発性であってもよく、ROM、RAM、TCAM、またはSRAMの任意の組み合わせであってもよい。
【００７２】
コンピュータプログラム製品は、プロセッサ、例えばプロセッサ930によって実行されると、装置に実施形態のいずれかを行わせる、非一時的な媒体、例えばメモリ960に格納されたコンピュータ実行可能命令を含み得る。
【００７３】
図10は、コーディングの手段1000の概略図である。一実施形態では、コーディングの手段1000は、PCCデバイス1002において実装される（例えば、符号器130や復号器180）。PCCデバイス1002は、受信手段1001を含む。受信手段1001は、符号化すべき画像を受信するか、または復号すべきビットストリームを受信するように構成される。PCCデバイス1002は、受信手段1001に結合された送信手段1007を含む。送信手段1007は、ビットストリームを復号器に送信するか、または復号された画像を表示手段に送信するように構成される。
【００７４】
PCCデバイス1002は、記憶手段1003を含む。記憶手段1003は、受信手段1001または送信手段1007の少なくとも1つに結合される。記憶手段1003は、命令を格納するように構成される。PCCデバイス1002は、処理手段1005も含む。処理手段1005は、記憶手段1003に結合される。処理手段1005は、本明細書で開示される方法を行うために記憶手段1003に格納された命令を実行するように構成される。
【００７５】
本開示ではいくつかの実施形態が提供されているが、開示のシステムおよび方法は、本開示の趣旨または範囲から逸脱することなく他の多くの特定の形態で具現化され得ることが理解されよう。本開示の例は、限定ではなく例示とみなされるべきであり、その意図は、本明細書に記載される詳細に限定されるべきではない。例えば、様々な要素または構成要素が別のシステムにおいて結合もしくは統合される場合もあり、または特定の機能が省略されるか、または実装されない場合もある。
【００７６】
加えて、様々な実施形態において個別のまたは分離されたものとして説明および例示された技術、システム、サブシステム、および方法が、本開示の範囲から逸脱することなく、他のシステム、構成要素、技術、または方法と結合または統合される場合もある。結合されたものとして図示または考察された他の項目は、直接結合される場合もあり、または、電気的か、機械的か、またはその他の方法かを問わず、何らかのインターフェース、デバイス、または中間構成要素を介して間接的に結合されるか、または通信する場合もある。変更、置換、および改変の他の例は、当業者による確認が可能であり、本明細書で開示される趣旨および範囲から逸脱することなくなされ得る。
【符号の説明】
【００７７】
100  コーディングシステム
110  ソースデバイス
120  点群生成器
130  符号器
140  出力インターフェース
150  媒体
160  宛先デバイス
170  入力インターフェース
180  復号器
190  プロジェクタ
200  簡略化されたコーディング方法
300  ハイブリッド幾何学的符号化の方法
410  平面に沿ったまたは実質的に沿った点を有する親ノード
420  平面に沿ったまたは実質的に沿った点を有しない親ノード
500  ハイブリッド幾何学的符号化の方法
600  ハイブリッド幾何学的復号の方法
700  ハイブリッド幾何学的符号化の方法
800  ハイブリッド幾何学的復号の方法
900  装置
910  入口ポート
920  RX
930  プロセッサ
940  TX
950  出口ポート
960  メモリ
970  ハイブリッド幾何学的コーディング構成要素
1000  コーディングの手段
1001  受信手段
1002  PCCデバイス
1003  記憶手段
1005  処理手段
1007  送信手段
【国際調査報告】
2021530143.tif 000028
2021530143.tif 000029
2021530143.tif 000030