(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-16
(45)【発行日】2024-10-24
(54)【発明の名称】符号化及び復号方法、エンコーダ、デコーダ及びソフトウェア
(51)【国際特許分類】
G06T 9/40 20060101AFI20241017BHJP
【FI】
G06T9/40
(21)【出願番号】P 2022579816
(86)(22)【出願日】2020-06-24
(86)【国際出願番号】 CN2020098267
(87)【国際公開番号】W WO2021258373
(87)【国際公開日】2021-12-30
【審査請求日】2022-12-22
(73)【特許権者】
【識別番号】516180667
【氏名又は名称】北京小米移動軟件有限公司
【氏名又は名称原語表記】Beijing Xiaomi Mobile Software Co.,Ltd.
【住所又は居所原語表記】No.018, Floor 8, Building 6, Yard 33, Middle Xierqi Road, Haidian District, Beijing 100085, China
(73)【特許権者】
【識別番号】511235939
【氏名又は名称】西安▲電▼子科技大学
(74)【代理人】
【識別番号】110000729
【氏名又は名称】弁理士法人ユニアス国際特許事務所
(72)【発明者】
【氏名】張 偉
(72)【発明者】
【氏名】シャンペル,マリー-リュック ジョルジュ アンリ
【審査官】田中 純一
(56)【参考文献】
【文献】特表2022-504344(JP,A)
【文献】特開2018-101404(JP,A)
【文献】特表2021-528917(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
G06T 1/00 - 1/40
G06T 3/00 - 5/94
G06T 9/00 - 19/20
(57)【特許請求の範囲】
【請求項1】
点群を符号化して圧縮点群データのビットストリームを生成するための符号化方法であって、
前記点群のジオメトリは八分木ベース構造によって表現され、前記八分木ベース構造は、前記点群を含むボリューム空間をサブボリュームに再帰的に分割することにより、親子関係を有する複数のノードを含み、各前記サブボリュームは前記八分木ベース構造のノードに関連し、
符号化方式を決定するステップであって、前記符号化方式は平面符号化方式と角度符号化方式とを含むステップと、
現在の子ノードの符号化コンテキスト情報を取得するステップであって、
前記符号化方式が前記平面符号化方式であれば、前記現在の子ノードの符号化コンテキスト情報は平面コンテキスト情報を含み、前記現在の子ノードの平面コンテキスト情報は現在の親ノードの占有パターンと、前記現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンとに基づいて決定され、
前記符号化方式が前記角度符号化方式であれば、前記現在の子ノードの符号化コンテキスト情報は前記現在の親ノードの平面情報と、前記現在の親ノードに隣接する垂直隣接親ノードの占有とを含むステップと、
決定された符号化コンテキスト情報に基づいて、前記現在の子ノードをエントロピー符号化して前記ビットストリームの符号化データを生成するステップと、を含むことを特徴とする符号化方法。
【請求項2】
圧縮点群データのビットストリームを復号して再構成点群を生成するための復号方法であって、
点群のジオメトリは八分木ベース構造によって表現され、前記八分木ベース構造は、前記点群を含むボリューム空間をサブボリュームに再帰的に分割することにより、親子関係を有する複数のノードを含み、各前記サブボリュームは前記八分木ベース構造のノードに関連し、
符号化方式を決定するステップであって、前記符号化方式は平面符号化方式と角度符号化方式とを含むステップと、
現在の子ノードの符号化コンテキスト情報を取得するステップであって、
前記符号化方式が前記平面符号化方式であれば、前記現在の子ノードの符号化コンテキスト情報は平面コンテキスト情報を含み、前記現在の子ノードの平面コンテキスト情報は現在の親ノードの占有パターンと、前記現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンとに基づいて決定され、
前記符号化方式が前記角度符号化方式であれば、前記現在の子ノードの符号化コンテキスト情報は前記現在の親ノードの平面情報と、前記現在の親ノードに隣接する垂直隣接親ノードの占有とを含むステップと、
前記現在の子ノードの符号化コンテキスト情報に基づいて、前記ビットストリームをエントロピー復号して前記点群を再構成するステップと、を含むことを特徴とする復号方法。
【請求項3】
前記符号化方式が前記平面符号化方式であれば、前記符号化コンテキスト情報は平面位置コンテキスト情報を含み、
前記平面位置コンテキスト情報は、
前記現在の子ノードと、前記八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードとの間の距離dと、
前記八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードの平面位置と、
前記現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンに基づいて決定された前記現在の子ノードの平面位置と
のうちの1つ又は複数を含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードが存在しなければ、前記平面位置コンテキスト情報は、前記現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンに基づいて決定された前記現在の子ノードの平面位置のみを含むことを特徴とする請求項3に記載の方法。
【請求項5】
前記符号化方式が前記角度符号化方式であり、前記現在の子ノードに前記角度符号化方式が適用しない場合、前記符号化コンテキスト情報は前記平面位置コンテキスト情報を含み、
前記平面位置コンテキスト情報は、
前記現在の子ノードと、前記八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードとの間の距離dと、
前記八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードの平面位置と、
前記現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンに基づいて決定された前記現在の子ノードの平面位置と
のうちの1つ又は複数を含むことを特徴とする請求項3又は4に記載の方法。
【請求項6】
前記少なくとも1つの隣接親ノードの占有パターンに基づいて、前記平面コンテキスト情報及び前記平面位置コンテキスト情報を決定するために、前記現在の親ノードに対する前記現在の子ノードの現在の平面位置が決定され、前記現在の平面位置は高平面位置と低平面位置とを含むことを特徴とする請求項3又は4に記載の方法。
【請求項7】
前記現在の平面位置が低平面位置であれば、
前記平面コンテキスト情報及び前記平面位置コンテキスト情報は、
前記隣接親ノードの前記現在の親ノードに直接隣接する第1グループの4つの子ノードの占有と、
前記現在の親ノードの前記第1グループに正対する第2グループの4つの子ノードの占有とに基づいて決定されることを特徴とする請求項6に記載の方法。
【請求項8】
前記第1グループの少なくとも1つの子ノードが占有されており、前記第2グループが占有されていない場合、前記平面コンテキスト情報は平面の可能性を含み、前記平面位置コンテキスト情報は低平面位置の可能性を含み、又は
前記第1グループが占有されておらず、前記第2グループの少なくとも1つの子ノードが占有されている場合、前記平面コンテキスト情報は平面の可能性を含み、前記平面位置コンテキスト情報は高平面位置の可能性を含み、又は
前記第1グループが占有されておらず、前記第2グループが占有されていない場合、前記平面コンテキスト情報は平面の可能性を含み、ただし、前記隣接親ノードにおいて前記第1グループに属しない少なくとも1つ又は複数の子ノードが占有されている場合、前記平面位置コンテキスト情報は低平面の可能性を含み、又は、
前記第1グループの少なくとも1つの子ノードが占有されており、前記第2グループの少なくとも1つの子ノードが占有されており、#FirstGroup>#SecondGroup+1である場合、前記平面コンテキスト情報は平面の可能性を含み、前記平面位置コンテキスト情報は低平面位置の可能性を含み、又は
前記第1グループの少なくとも1つの子ノードが占有されており、前記第2グループの少なくとも1つの子ノードが占有されており、#FirstGroup<#SecondGroup+1である場合、前記平面コンテキスト情報は平面の可能性を含み、前記平面位置コンテキスト情報は高平面位置の可能性を含み、
#FirstGroupは前記第1グループ内の占有子ノードの数を示し、#SecondGroupは前記第2グループ内の占有子ノードの数を示すことを特徴とする請求項7に記載の方法。
【請求項9】
前記現在の平面位置が高平面位置であれば、
前記平面コンテキスト情報及び前記平面位置コンテキスト情報は、
考慮される軸に沿った前記現在の親ノードの直後の前記隣接親ノードの占有と、
考慮される軸に垂直な平面にあり、前記現在の子ノードに直接隣接する、前記現在の親ノードの4つの子ノードのグループの占有とに基づいて決定されることを特徴とする請求項6に記載の方法。
【請求項10】
前記グループの少なくとも1つの子ノードが占有されており、前記隣接親ノードが占有されていない場合、前記平面コンテキスト情報は平面の可能性を含み、前記平面位置コンテキスト情報は低平面位置の可能性を含み、又は
前記グループが占有されておらず、前記隣接親ノードが占有されている場合、前記平面コンテキスト情報は平面の可能性を含み、前記平面位置コンテキスト情報は高平面位置の可能性を含み、又は
前記グループが占有されておらず、前記隣接親ノードが占有されていない場合、前記平面コンテキスト情報は平面の可能性を含み、ただし、考慮される軸に沿った前記現在の親ノードの直前の隣接親ノードにおける少なくとも1つ又は複数の子ノードが占有されている場合、前記平面位置コンテキスト情報は低平面の可能性を含み、又は
前記グループの少なくとも1つの子ノードが占有されており、前記隣接親ノードが占有されており、#Group>2である場合、前記平面コンテキスト情報は平面の可能性を含み、前記平面位置コンテキスト情報は低平面位置の可能性を含み、又は
前記グループの少なくとも1つの子ノードが占有されており、前記隣接親ノードが占有されており、#Group<2である場合、前記平面コンテキスト情報は平面の可能性を含み、前記平面位置コンテキスト情報は高平面位置の可能性を含み、又は
前記グループの少なくとも1つの子ノードが占有されており、前記隣接親ノードが占有されており、#Group=2である場合、前記平面コンテキスト情報は平面が存在しない可能性を含み、前記平面位置が未知であると推定され、
#Groupはグループにおける占有ノードの数を示すことを特徴とする請求項9に記載の方法。
【請求項11】
前記隣接親ノードは、考慮される軸のうちの1つの幾何軸に沿って配置されることを特徴とする請求項1、3又は4に記載の方法。
【請求項12】
前記
平面コンテキスト情報は3つの幾何軸のすべてに沿って決定されることを特徴とする請求項1、3又は4に記載の方法。
【請求項13】
点群を符号化して圧縮点群データのビットストリームを生成するためのエンコーダであって、
前記点群のジオメトリは八分木ベース構造によって表現され、前記八分木ベース構造は、前記点群を含むボリューム空間をサブボリュームに再帰的に分割することにより、親子関係を有する複数のノードを含み、各前記サブボリュームは前記八分木ベース構造のノードに関連し、
プロセッサ、及び
メモリ記憶デバイスを含み、前記メモリ記憶デバイスには前記プロセッサにより実行可能な命令が記憶されており、前記命令が実行されると、前記プロセッサが請求項1及び請求項3~12のいずれか一項に記載の方法を実行することを特徴とするエンコーダ。
【請求項14】
圧縮点群データのビットストリームを復号して再構成点群を生成するためのデコーダであって、
点群のジオメトリは八分木ベース構造によって表現され、前記八分木ベース構造は、前記点群を含むボリューム空間をサブボリュームに再帰的に分割することにより、親子関係を有する複数のノードを含み、各前記サブボリュームは前記八分木ベース構造のノードに関連し、
プロセッサ、及び、
メモリ記憶デバイスを含み、前記メモリ記憶デバイスには前記プロセッサにより実行可能な命令が記憶されており、前記命令が実行されると、前記プロセッサが請求項2に記載の方法を実行することを特徴とするデコーダ。
【請求項15】
非一時的なコンピュータ可読記憶媒体であって、
プロセッサが実行する命令を記憶しており、前記命令がプロセッサにより実行されると、前記プロセッサが請求項1~12のいずれか一項に記載の方法を実行することを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、点群圧縮に関し、特に点群のエントロピー符号化を改善するための符号化及び復号方法並びにエンコーダ及びデコーダに関する。
【背景技術】
【0002】
近年、3次元メディア情報の表現方法として、3次元メッシュに代わる3次元点群が注目されている。点群データに関連するユースケースは非常に多岐にわたり、
映画制作における3D資産(asset)、
リアルタイム3D没入型テレプレゼンス、又は仮想現実(VR)アプリケーションのための3D資産、
3D自由視点映像(例えば、スポーツ観戦のために用いられる)、
地理情報システム(地図作成)、
文化遺産(壊れやすい資産のデジタル形式での保存)、
自動運転(大規模な環境の3Dマッピング)などを含む。
点群とは、3D空間内の点の集合であり、各点は色や材料特性などの関連する属性を持つ。点群を使って、オブジェクトやシーンをこれらの点の集合として再構成することができる。異なる設定の複数のカメラと深度センサを使用して点群を取得することができ、再構成されたシーンをリアルに再現するために、点群は、数千から数十億の点で構成されることもある。
【0003】
点群の各点には、その位置(通常は32ビット又は64ビットの浮動小数点として符号化されたX、Y、Z情報)とその属性(通常は少なくとも24ビットで符号化されたRGBカラー)を格納する必要がある。点群に含まれる点は数十億個に及ぶこともあるため、点群の生データは数ギガバイトに及ぶことが容易に理解できる。従って、点群を表現するために必要なデータ量を削減するための圧縮技術が強く求められている。
【0004】
点群の圧縮には、2つの異なる方法が開発された。
【0005】
まず、ビデオベース点群圧縮(Video based Point Cloud Compression、VPCC)方法では、点群を3つの異なる軸X、Y、Zと異なる深さに複数回投影してすべての点を1つの投影画像に存在させる。次に、投影して得られた複数の投影画像を複数の部分(patch)に処理することで冗長性を除去し、再配列して最終的な画像を得、当該最終的な画像に付加されたメタデータは画素位置を空間上の点位置に変換するために用いられる。その後、従来の画像/動画用MPEGエンコーダで圧縮を行う。この方法の利点は、既存のエンコーダを再利用し、動的な点群を自然にサポートする(ビデオエンコーダを使用)ことであるが、この方法は疎な点群にはほとんど適用できず、点群専用の方法でより高い圧縮利得が得られると予想される。
【0006】
第二に、ジオメトリベース点群圧縮(Geometry based Point Cloud Compression、GPCC)方法では、点位置(通常ジオメトリと呼ばれる)と点の属性(色、透明度など)が別々に符号化される。ジオメトリを符号化するために、八分木構造が使用される。点群全体は1つの立方体に収められ、当該立方体を8つのサブ立方体に分割し続け、各サブ立方体に1つの点しか含まれないようにする。従って、点の位置は、木の各ノードの占有情報に置き換えられる。各立方体は8個のサブ立方体のみを有するため、占有を符号化するのに3ビットが十分であり、従って深さDの木に対して、1つの点の位置を符号化するのに3Dビットが必要である。このような変換だけでは、圧縮利得を高めることが十分ではないが、木構造であるため、多くの点が同じノード値を共有し、また、エントロピーエンコーダが使用されるため、情報量を大幅に低減できることに留意する必要がある。
【0007】
多くの点群は表面を含むことを考慮し、従来のGPCC設計において、平面符号化方式を導入して八分木に適用するノードをより効果的に符号化する。
【0008】
そこで、占有子ノードが同一水平面に属するか否かを示すフラグisPlanarを導入した。isPlanarがtrueであれば、その平面が下平面であるか上平面であるかを示すために、追加ビットでPlanePositionをシグナリングする。
【0009】
バイナリ算術エンコーダを利用してisPlanarフラグを符号化し、8(即ち、2×2×2)ビットのコンテキスト情報を平面コンテキスト情報とする。また、ノードが平面である場合、バイナリ算術エンコーダを用いて平面位置情報を符号化し、24(即ち、2×3×2×2)ビットのコンテキスト情報を平面位置コンテキスト情報とする。
【0010】
なお、角度符号化方式を導入することにより、疎な点群データに対する角度コンテキストを用いて平面符号化方式を強化し、ただし、大多数の場合、疎な点群データにおける隣接占有は0(すなわち、空)に近づく。より具体的には、削減されたコンテキスト情報でplanePositionを符号化する際に、角度符号化方式は、コンテキスト情報を置き換え、依然として平面符号化方式と同じコンテキストモデルを用いてIsPlanarフラグを算術的に符号化する。しかしながら、点群を符号化及び復号するための従来の方法において、隣接ノードの情報は考慮されていない。
【発明の概要】
【発明が解決しようとする課題】
【0011】
それを鑑みて、本発明の目的は、点群のデータ圧縮の速度及び正確度を改善するための符号化及び復号方法、エンコーダ及びデコーダを提供することである。
【課題を解決するための手段】
【0012】
本発明の1態様において、点群を符号化して圧縮点群データのビットストリームを生成するための符号化方法を提供し、前記点群のジオメトリは八分木ベース構造によって表現され、前記八分木ベース構造は、前記点群を含むボリューム空間をサブボリュームに再帰的に分割することにより、親子関係を有する複数のノードを含み、各前記サブボリュームは前記八分木ベース構造のノードに関連し、前記方法は、
符号化方式を決定するステップであって、前記符号化方式は平面符号化方式と角度符号化方式とを含むステップと、
現在の子ノードの符号化コンテキスト情報を取得するステップであって、
前記符号化方式が前記平面符号化方式であれば、符号化コンテキスト情報は平面コンテキスト情報を含み、前記現在の子ノードの平面コンテキスト情報は現在の親ノードの占有パターンと、前記現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンとに基づいて決定され、
前記符号化方式が前記角度符号化方式であれば、前記現在の子ノードの符号化コンテキスト情報は前記現在の親ノードの平面情報と、前記現在の親ノードに隣接する垂直隣接親ノードの占有とを含むステップと、
決定された符号化コンテキスト情報に基づいて、前記現在の子ノードの占有をエントロピー符号化して前記ビットストリームの符号化データを生成するステップとを含む。
【0013】
従って、まず符号化方式を決定し、符号化方式に基づいてコンテキスト情報を決定し、当該コンテキスト情報は二種類の異なるコンテキスト情報を含み、それにより効果的なエントロピー符号化を行う。
【0014】
平面符号化方式の場合、現在の親ノードと隣接親ノードは木の同じ深さDにある。現在の親ノードと隣接親ノードとは、位置によって共通表面を共有している。現在の子ノードは、木の深さD+1における、現在の親ノードの直接子ノードであり、平面コンテキスト情報は、現在の親ノードと少なくとも1つの隣接親ノードの占有パターンに依存して決定される。占有パターンは、各親ノード内の占有子ノードの分布を含む。平面コンテキスト情報は、現在の子ノードを通過する、点群によって表現される可能性のある平面又は表面に関する情報を含む。従って、現在の親ノードの少なくとも1つの直接隣接ノードの占有パターンの情報はエントロピー符号化のためのコンテキスト情報として考慮される。
【0015】
角度符号化方式の場合、代わりに、より効率的な平面コンテキスト方式が実現される。平面符号化方式の平面コンテキスト情報と比べ、疎なクラウドデータでアクセス可能な情報のみが考慮される。
【0016】
その結果、現在の子ノードの占有の予測をより確実に行うことができ、予測結果はエントロピーエンコーダに利用され、データ量をさらに低減させることができる。このようにして、各ノードの占有を決定するために木が完全にトラバースされ、エントロピーエンコーダに十分なコンテキスト情報を提供する。
【0017】
好ましくは、隣接親ノードは現在の子ノードに直接隣接するノードであり、現在の子ノードと1つの表面を共有する。
【0018】
好ましくは、平面符号化方式の場合、符号化コンテキスト情報は平面コンテキスト情報を含み、前記現在の子ノードの唯一の平面コンテキスト情報は現在の親ノードの占有パターン及び前記現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンに基づいて決定される。
【0019】
好ましくは、角度符号化方式の場合、現在の子ノードの符号化コンテキスト情報は現在の親ノードの平面情報及び現在の親ノードに隣接する垂直隣接親ノードの占有を含む。
【0020】
好ましくは、符号化方式が平面符号化方式であれば、符号化コンテキスト情報は平面位置コンテキスト情報を含み、平面位置コンテキスト情報は、
現在の子ノードと、前記八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードとの間の距離dと、
前記八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードの平面位置と、
前記現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンに基づいて決定された前記現在の子ノードの平面位置と
のうちの1つ又は複数を含む。
【0021】
特に、距離dは、「近い」、「あまり遠くない」、「遠い」の値に離散化される。同じ深さDの同じ座標での符号化されたノードが存在すれば、平面位置の「高」又は「低」も平面位置コンテキスト情報に含まれてもよい。子ノードの座標は対応する親ノード内の相対位置である。また、平面位置は、現在の親ノードに隣接する少なくとも1つの隣接親ノードの占有パターンに基づいて決定された平面位置コンテキスト情報に含まれてもよい。特に、平面位置コンテキスト情報は1つ以上又はすべての上記情報を含む。特に、平面符号化方式において、平面位置コンテキスト情報は上記情報を含み得る。
【0022】
好ましくは、八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードが存在しなければ、平面位置コンテキスト情報は、現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンに基づいて決定された現在の子ノードの平面位置のみを含む。従って、この場合、隣接ノードから収集された情報のみに基づいて平面位置コンテキスト情報を決定する。これ以上の情報は取得できないため、利用することもできない。しかし、隣接ノードからの情報が含まれるため、このような場合でも効率的な圧縮が実現可能となる。特に、従来のGPCC仕様で提出された、planePositionを符号化するための平面に垂直な軸を識別するaxisIdx文は、隣接ノードの占有に基づいて決定されたコンテキスト情報に置き換えられる。
【0023】
好ましくは、符号化方式が角度符号化方式であり、現在の子ノードに角度符号化方式が適用しない場合、符号化コンテキスト情報は、平面位置コンテキスト情報を含み、平面位置コンテキスト情報は、
現在の子ノードと、八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードとの間の距離dと、
八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードの平面位置と、
現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンに基づいて決定された前記現在の子ノードの平面位置と
のうちの1つ又は複数を含む。
従って、この場合、平面位置コンテキスト情報は、平面符号化方式における平面位置情報と同じであってもよい。特に、平面位置コンテキスト情報は1つ以上又はすべての上記情報を含む。特に、角度符号化方式において、現在の子ノードに角度符号化方式が適用しない場合、平面位置コンテキスト情報は、上記情報を含み得る。
【0024】
好ましくは、少なくとも1つの隣接ノードの占有パターンに基づいて平面コンテキスト情報及び平面位置コンテキスト情報を決定するために、現在の親ノードに対する現在の子ノードの平面位置が決定され、現在の平面位置は、高平面位置及び低平面位置を含む。ここで、考慮されるある幾何軸について、親ノードを通過する軸に沿って、現在の親ノード内に当該軸に垂直である、現在の子ノードを含む子ノードの平面が存在すれば、現在の平面位置は低平面位置である。現在の親ノードに当該軸に垂直である、現在の子ノードを含まない子ノードの平面が存在すれば、現在の平面位置は高平面位置である。このように、平面符号化方式では平面コンテキスト情報として、平面符号化方式と角度符号化方式では平面位置コンテキスト情報の一部として用いるために、現在の平面位置が決定される。
【0025】
好ましくは、現在の平面位置が低平面位置であれば、平面コンテキスト情報及び平面位置コンテキスト情報は、隣接親ノードの現在の親ノードに直接隣接する第1グループの4つの子ノードの占有と、現在の親ノードの前記第1グループに正対する第2グループの4つの子ノードの占有とに基づいて決定される。換言すれば、隣接親ノードの第1グループの4つの子ノードは現在の親ノードと隣接親ノードとの共通表面に直接隣接し、第2グループは現在の親ノード内で現在の親ノードの反対側に直接隣接して配置される。各グループは、好ましくは、4つの子ノードによって1つの平面を定義し、各平面は考慮される幾何軸に垂直であり、評価すべき現在の子ノードに直接隣接する。それにより、十分な情報が取得でき、現在の子ノードにおける平面の可能性とその位置の可能性を確実に予測することができる。
【0026】
好ましくは、現在の平面位置が低平面位置であれば、第1グループの少なくとも1つの子ノードが占有されており、第2グループが占有されていない場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。
【0027】
好ましくは、現在の平面位置が低平面位置であれば、第1グループが占有されておらず、第2グループの少なくとも1つの子ノードが占有されている場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。
【0028】
好ましくは、現在の平面位置が低平面位置であれば、第1グループが占有されておらず、第2グループが占有されていない場合、平面コンテキスト情報は平面の可能性を含み、ただし、隣接親ノードにおいて第1グループに属しない少なくとも1つ又は複数の子ノードが占有されている場合、平面位置コンテキスト情報は低平面の可能性を含み、そうでなければ、「UNKNOWN」である。
【0029】
好ましくは、現在の平面位置が低平面位置であれば、第1グループの少なくとも1つの子ノードが占有されており、第2グループの少なくとも1つの子ノードが占有されており、#FirstGroup>#SecondGroup+1である場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、低平面位置の可能性を含み、ただし、#FirstGroupは第1グループの占有ノードの数を示し、#SecondGroupは第2グループの占有ノードの数を示す。
【0030】
好ましくは、現在の平面位置が低平面位置であれば、第1グループの少なくとも1つの子ノードが占有されており、第2グループの少なくとも1つの子ノードが占有されており、#FirstGroup<#SecondGroup+1である場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、高平面位置の可能性を含み、ただし、#FirstGroupは第1グループの占有ノードの数を示し、#SecondGroupは第2グループの占有ノードの数を示す。
【0031】
好ましくは、現在の平面位置が高平面位置であれば、平面コンテキスト情報及び平面位置コンテキスト情報は、考慮される軸に沿った前記現在の親ノードの直後の隣接親ノードの占有パターン、及び考慮される軸に垂直な平面にあり、前記現在の子ノードに直接隣接する、前記現在の親ノードの4つの子ノードのグループの占有に基づいて決定される。換言すれば、現在の親ノードの共通表面に直接隣接する(すなわち、当該共通表面の後に位置する)隣接親ノードの子ノードの占有は、復号順によって不明である。従って、現在の子ノードと1つの共通表面を共有する隣接親ノード自身の占有は、現在の親ノード内の現在の子ノードの反対側に直接隣接して配置される、すなわち隣接親ノードに対向する(すなわち、符号化/復号順の前)グループと共に使用される。従って、子ノードグループには、符号化すべき現在の子ノードが含まれない。各グループは、好ましくは4つの子ノードによって1つの平面を定義し、各平面は考慮される幾何軸に垂直であり、評価すべき現在の子ノードに直接隣接する。それにより、十分な情報が取得でき、現在の子ノードにおける平面の可能性とその位置の可能性を確実に予測することができる。
【0032】
好ましくは、現在の平面位置が高平面位置であれば、当該グループの少なくとも1つの子ノードが占有されており、隣接親ノードが占有されていない場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。
【0033】
好ましくは、現在の平面位置が高平面位置であれば、当該グループが占有されておらず、隣接親ノードが占有されている場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。
【0034】
好ましくは、現在の平面位置が高平面位置であれば、当該グループが占有されておらず、隣接親ノードが占有されていない場合、平面コンテキスト情報は平面の可能性を含み、ただし、考慮される軸に沿った現在の親ノードの直前の隣接親ノードにおける少なくとも1つ又は複数の子ノードが占有されている場合、平面位置コンテキスト情報は低平面の可能性を含み、そうでなければ、「UNKNOWN」である。
【0035】
好ましくは、現在の平面位置が高平面位置であれば、当該グループの少なくとも1つの子ノードが占有されており、隣接親ノードが占有されており、#Group>2である場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含み、#Groupは、当該グループにおける占有ノードの数を示す。ただし、隣接親ノードのうち、統計的に1つの子ノードが占有されていると仮定する。
【0036】
好ましくは、現在の平面位置が高平面位置であれば、当該グループの少なくとも1つの子ノードが占有されており、隣接親ノードが占有されており、#Group<2である場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含み、#Groupは、当該グループにおける占有ノードの数を示す。
【0037】
好ましくは、現在の平面位置が高平面位置であれば、当該グループの少なくとも1つの子ノードが占有されており、隣接親ノードが占有されており、#Group=2である場合、平面コンテキスト情報は平面が存在しない可能性を含み、平面位置は未知と推定され、#Groupは、当該グループにおける占有ノードの数を示す。
【0038】
好ましくは、隣接親ノードは、幾何軸の1つに沿って配置される。幾何軸(X、Y、Z)のいずれかに沿って平面コンテキスト情報を評価する場合、隣接親ノードは、当該特定の軸に沿った当該親ノードの直前又は直後に位置する。
【0039】
好ましくは、平面コンテキスト情報は、3つの幾何軸のすべてに沿って決定される。このようにして、点群の各点によって表される平面又は表面は各軸に沿って評価される。
【0040】
好ましくは、現在の親ノードは、復号順に従って隣接親ノードと相対的に配置される。復号する際には、八分木ベース構造のノードが順次評価される。従って、復号順において現在の親ノードの前にある占有パターンの情報は、既にアクセス可能であり、それにより、復号のための平面コンテキスト情報の決定に用いられことができる。特に、復号順は、符号化順と完全に逆である。ただし、符号化する際に、点群における各点の確実な位置は既知である。
【0041】
本発明の1態様において、圧縮点群データのビットストリームを復号して再構成点群を生成するための方法を提供し、点群のジオメトリは八分木ベース構造によって表現され、前記八分木ベース構造は、前記点群を含むボリューム空間をサブボリュームに再帰的に分割することにより、親子関係を有する複数のノードを含み、各前記サブボリュームは前記八分木ベース構造のノードに関連し、前記方法は、
符号化方式を決定するステップであって、前記符号化方式は平面符号化方式と角度符号化方式とを含むステップと、
現在の子ノードの符号化コンテキスト情報を取得するステップであって、
前記符号化方式が前記平面符号化方式であれば、符号化コンテキスト情報は平面コンテキスト情報を含み、前記現在の子ノードの平面コンテキスト情報は現在の親ノードの占有パターンと、前記現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンとに基づいて決定され、
前記符号化方式が前記角度符号化方式であれば、前記現在の子ノードの符号化コンテキスト情報は前記現在の親ノードの平面情報と、前記現在の親ノードに隣接する垂直隣接親ノードの占有とを含むステップと、
前記現在の子ノードの符号化コンテキスト情報に基づいて、前記ビットストリームをエントロピー復号して前記点群を再構成する。
【0042】
平面符号化方式の場合、現在の親ノードと隣接親ノードは木の同じ深さDにある。現在の親ノードと隣接親ノードとは、位置によって共通表面を共有している。現在の子ノードは、木の深さD+1における、現在の親ノードの直接子ノードであり、平面コンテキスト情報は、現在の親ノードと少なくとも1つの隣接親ノードの占有パターンに依存して決定される。平面コンテキスト情報は、現在の子ノードを通過する、点群によって表現される可能性のある平面又は表面に関する情報を含む。従って、現在の親ノードの少なくとも1つの直接隣接ノードの占有に関する情報はエントロピー復号のためのコンテキスト情報として考慮される。
【0043】
角度符号化方式の場合、代わりに、より効率的な平面コンテキスト方式が実現される。平面符号化方式の平面コンテキスト情報と比べ、疎なクラウドデータでアクセス可能な情報のみが考慮されている。
【0044】
その結果、現在の子ノードの占有の予測をより確実に行うことができ、予測結果はエントロピーデコーダに利用され、データ量をさらに低減させることができる。このようにして、各ノードの占有を決定するために木が完全にトラバースされ、エントロピーデコーダに十分なコンテキスト情報を提供する。
【0045】
好ましくは、復号方法は、さらに、上述した符号化方法に関する特徴に従って構成される。これらの特徴は、復号方法と自由に組み合わせることができる。
【0046】
本発明の1態様において、点群を符号化して圧縮点群データのビットストリームを生成するためのエンコーダを提供し、前記点群のジオメトリは八分木ベース構造によって表現され、前記八分木ベース構造は、前記点群を含むボリューム空間をサブボリュームに再帰的に分割することにより、親子関係を有する複数のノードを含み、各前記サブボリュームは前記八分木ベース構造のノードに関連し、
プロセッサ、及び、メモリ記憶デバイスを含み、前記メモリ記憶デバイスには前記プロセッサにより実行可能な命令が記憶されており、前記命令が実行されると、前記プロセッサに上記符号化方法を実行させる。
【0047】
本発明の1態様において、圧縮点群データのビットストリームを復号して再構成点群を生成するためのデコーダを提供し、点群のジオメトリは八分木ベース構造によって表現され、前記八分木ベース構造は、前記点群を含むボリューム空間をサブボリュームに再帰的に分割することにより、親子関係を有する複数のノードを含み、各前記サブボリュームは前記八分木ベース構造のノードに関連し、
プロセッサ、及び、メモリ記憶デバイスを含み、前記メモリ記憶デバイスには前記プロセッサにより実行可能な命令が記憶されており、前記命令が実行されると、前記プロセッサに上記復号方法を実行させる。
【0048】
本発明の1態様において、非一時的なコンピュータ可読記憶媒体を提供し、該媒体にはプロセッサが実行する命令が記憶されており、前記命令が実行されると、前記プロセッサに上記符号化及び/又は復号方法を実行させる。
【図面の簡単な説明】
【0049】
ここで例示の形式で図面を参照し、図面は本願の例示的な実施例を示す。
【
図1】点群エンコーダの全体図を示すブロック図である。
【
図2】点群デコーダの全体図を示すブロック図である。
【
図4】各ノードにおける8つの子ノードの番号付けである。
【
図5】既知の占有情報を有するノードの隣接ノードを示す図である。
【
図10】本発明の第1実施例及び第2実施例のステップを示すフローチャートである。
【発明を実施するための形態】
【0050】
本発明は点群を符号化及び復号するための方法及び点群を符号化及び復号するためのエンコーダ及びデコーダを説明する。サブボリュームに関連する現在の親ノードはさらに、複数のサブボリュームに分割され、各サブボリュームは現在の親ノードの子ノードに対応し、そしてエンコーダで、子ノードの占有状況に基づいて、現在の親ノードの占有パターンを決定する。現在の親ノードの占有パターンと、現在の親ノードに直接隣接する隣接親ノードの占有パターンとに基づいて平面コンテキスト情報(planar context information)を決定する。エントロピーエンコーダは、決定された平面コンテキスト情報に基づいて占有パターンを符号化することにより、ビットストリームの符号化データを生成する。デコーダは、同一の平面コンテキスト情報を決定し、ビットストリームをエントロピー復号することにより、占有パターンを再構築する。
【0051】
当業者であれば、添付の図面と併せて以下の実施例の説明を検討すると、本発明の他の態様及び特徴を理解することができる。
【0052】
以下の説明では、時として、「ノード」と「サブボリューム(sub-volume)」という用語が互換的に使用されることがある。ノードがサブボリュームに関連していることは理解されるべきである。ノードは、木の上の特定の点であり、内部ノード又は葉ノードであってもよい。サブボリュームは、ノードが表現する境界あり物理的空間である。「ボリューム(volume)」という用語は、定義された、点群を含む最大の境界あり空間を意味するために使用されてもよい。ボリュームは、点群データを符号化するための相互接続されたノードの木構造を構築するために、サブボリュームに再帰的に分割される。
【0053】
点群とは、3次元座標系における点の集合である。これらの点は、通常、1つ又は複数の物体の外面を表現することを意図している。各点は、3次元座標系における位置(ポジション)がある。当該位置は、デカルト座標系又は他の任意の座標系における3つの座標(X、Y、Z)で表されてもよい。これらの点には、色などの他の関連属性を有してもよく、場合によっては、R、G、B、又はY、Cb、Crなどの3成分の値であってもよい。他の関連属性は、所望の点群データの用途に応じて、透明度、反射率、法線ベクトルなどを含み得る。
【0054】
点群は、静的なものであっても、動的なものであってもよい。例えば、物体や地形の詳細なスキャンやマッピングは、静的な点群データであってもよい。マシンビジョン目的の環境のLiDARベースのスキャンは、点群が(少なくとも潜在的に)時間の経過とともに(例えばボリュームの連続したスキャンごとに)変化するため、動的であってもよい。従って、動的な点群は、時間順に並んだ点群のシーケンスである。
【0055】
点群データは、保存(歴史的・文化的な物体のスキャン)、地図作成、マシンビジョン(自動運転・半自動運転車など)、仮想現実システムなど、様々な用途で利用され得る。マシンビジョンなどの用途で使われる動的な点群データは、保存用の静的な点群データとはかなり異なってもよい。例えば、車載ビジョンは、通常、解像度が比較的低く、無色で、高度に動的な点群に係り、前記点群は、高い収集頻度を持つLiDAR(又は類似のもの)センサによって取得される。このような点群の目的は、人間が使用したり見たりするためではなく、決定プロセスにおける機械オブジェクト検出/分類のためである。例えば、一般的なLiDARフレーム(frame)には数万点が含まれるが、高品質の仮想現実アプリケーションでは数百万点が必要となる。計算速度の向上や新しいアプリケーションの開発に伴い、時間の経過とともに、より高解像度のデータが求められるようになることが予想される。
【0056】
点群データは有用であるが、効率的かつ効率的な圧縮、すなわち符号化及び復号処理がないため、採用や配置に支障をきたす可能性がある。
【0057】
点群データを符号化するための一般的なメカニズムの1つは、木ベース構造を使用することである。木ベース構造では、点群の境界あり三次元ボリュームはサブボリュームに再帰的に分割される。木のノードはサブボリュームに対応する。サブボリュームをさらに分割するか否かの判断は、木の解像度及び/又はサブボリュームに含まれる点の有無に基づいて行ってもよい。葉ノードは、その関連するサブボリュームが点を含むか否かを示す占有フラグを有してもよい。分割フラグは、ノードがサブノードを有するか否か(すなわち、現在のボリュームがさらにサブボリュームに分割されているか否か)を示してもよい。これらのフラグは、場合によってはエントロピー符号化され、場合によっては予測符号化が使用されてもよい。
【0058】
一般的な木構造は、八分木である。この構造におけるボリューム/サブボリュームはすべて立方体(cube)であり、サブボリュームが分割されるごとに、さらに8つのサブボリューム/サブ立方体が生成される。このような木構造の例示は、
図3に示され、完全の点群を含むボリュームを表現するノード30を有する。当該ボリュームは8つのサブボリューム32に分割され、各サブボリュームは
図3の八分木における1つのノードに関連する。点を含むノードは、点群の少なくとも1つの点35を含む占有ノード34を表し、空ノード36は、点群の点を含まないサブボリュームを表す。
図3に示すように、占有ノードは8つのサブボリュームにさらに分割されてもよく、この8つのサブボリュームは特定の親ノード40の各子ノード38に関連し、それにより親ノード40の占有パターンを決定する。
図3に示すように、例示された親ノード40の占有パターンは、バイナリ形式で「00100000」として表され得、占有されている第3子ノード38を指示する。いくつかの実施形態において、この占有パターンをバイナリエントロピーエンコーダで符号化し、それにより点群データのビットストリームが生成される。
【0059】
図1には、本発明の1形態に係る点群エンコーダ10の簡略化されたブロック図を示す。点群エンコーダ10は、点群データ
12を受信し、八分木を生成するための木構築モジュールを備えてもよく、八分木は点群を含むボリューム空間のジオメトリを表現し、点群の点の当該ジオメトリにおけるポジション又は位置を指示する。
【0060】
点群を符号化するための八分木の基本的な作成方法は、以下を含み得る。
1.座標系の点群を含むバウンディングボリューム(立方体)から開始する。
2.当該バウンディングボリュームを8つのサブボリューム(8つのサブ立方体)に分割する。
3.各サブボリュームに対して、サブボリュームが空の場合は0でマーキングし、サブボリュームが少なくとも1つの点がある場合は1でマーキングする。
4.1でマーキングされたすべてのサブボリュームに対して、最大の分割の深さになるまで、上記の2を繰り返し、サブボリュームを分割する。
5.最大の深さのすべての葉サブボリューム(サブ立方体)に対して、葉立方体が空でない場合は1でマーキングし、そうでない場合は0でマーキングする。
【0061】
木を所定の順序で(分割して得られた各サブボリュームにおいて、幅優先又は深さ優先で、スキャンパターン/順序に従って)トラバースし、各ノードの占有パターンを表すビットシーケンスを生成してもよい。
【0062】
そして、エントロピーエンコーダ16を用いて当該ビットシーケンスを符号化し、圧縮ビットストリーム14を生成する。エントロピーエンコーダ16はコンテキストモデル18を用いてビットシーケンスを符号化してもよく、当該コンテキストモデル18は、エントロピーエンコーダ16がコンテキストに基づいてビットを符号化するための確率を決定するということを規定する。各ビット又は定義されたビットの集合を符号化した後、コンテキストモデル18は適応的に更新されてもよい。
【0063】
ビデオ符号化又は画像符号化と同様に、点群符号化には予測操作を含み得、これらの操作において、サブボリュームのパターンの予測に努めており、パターンそのものではなく、予測によって得られた残差を符号化する。予測は、空間的(同一点群内の事前符号化されたサブボリュームに依存)であってもよいし、時間的(時間順に並んだ点群シーケンスにおける、事前符号化された点群に依存)であってもよい。
【0064】
図2に、エンコーダ10に対応する点群デコーダ20の一例のブロック図を示す。点群デコーダ20はエントロピーデコーダ22を備え、エントロピーデコーダ22はエンコーダ10と同じコンテキストモデル24を用いる。エントロピーデコーダ22は、圧縮データの入力ビットストリーム26を受信し、当該データをエントロピー復号することにより、展開されたビットの出力シーケンスが生成される。そして、当該シーケンスは、木再構築装置により、再構成された点群データに変換される。木再構築装置は、展開されたデータと、木データを二値化するスキャン順序の知識とに基づいて、木構造28を再構築する。これにより、木再構成装置は、点群における点の位置を再構成することができる。
【0065】
図4に示すように、親ノード112が8つの子ノード110に分割され、この8つの子ノード110は2×2×2個の立方体であり、ただし、各立方体は同じサイズであり、辺の長さが親ノード112に関連する立方体の辺の長さの半分である。また、
図4は、親ノード112内の子ノード110の番号を示している。以下、
図4に示す番号付けシステムを用いて説明する。
図4には、示された親ノード112の、幾何軸X、Y、Zで表される3次元空間における、空間的な向きも示されている。
【0066】
特定ノード内の点が表面に属しているため、占有パターンは、当該ノードが占有されているか否かの確率に関する平面情報を含んでもよい。通常、現実世界は閉じた表面に支配されている。特に室内の部屋だけではなく、都会の屋外シーンでも同様である。エントロピーエンコーダ及びデコーダは、そういう事実を利用している。点群によって表現される表面を検出できれば、その表面上の点の分布を予測することができ、それによりその表面に属する特定ノードの占有確率を決定することができる。それは、コンテキスト情報を定義することにより実現されることができ、当該コンテキスト情報は、isPlanarフラグを用いてビットストリームを符号化・復号するために用いられる。平面コンテキスト情報は、通常、バイナリ値であり、特定ノードの設定されたisPlanarフラグ(isPlanar=1)は、そのノードが特定表面に属している可能性が高いと解釈される。なお、ノード内に表面が存在する事実以外、他の平面情報を考慮してもよく、例えば、planePositionフラグで実現された平面位置情報であってもよく、planePositionフラグは平面の現在の子ノード内の位置を指示する。また、planePositionフラグは、バイナリ値であってもよく、対応する位置を示す値である「高」及び「低」を有する。エントロピーエンコーダ/デコーダは平面コンテキスト情報を用いて、当該平面情報をビットストリームに符号化し、それによりビットストリームのデータを低減させる。
【0067】
また、異なるコンテキスト情報を用いて異なるタイプの点群に適用される他の符号化方式も存在する。従って、平面符号化方式と角度符号化方式が定義されている。好ましくは、角度符号化方式は、疎な点群に適用され、角度コンテキスト情報をエントロピーエンコーダ/デコーダに提供することが意図されている。符号化方式はビットストリームのメタデータにおいて指示されてもよい。
【0068】
従って、本発明によれば、平面符号化方式の場合、コンテキスト情報は上記したような平面コンテキスト情報及び平面位置コンテキスト情報を含む。平面コンテキスト情報は、後に詳述するように、符号化すべき現在の子ノードの現在の親ノードの占有パターンと、隣接ノードにおける少なくとも1つのノードの占有パターンとに基づいて決定される。また、
図6は平面位置コンテキスト情報を示す。平面位置コンテキスト情報は、
a)
現在の子ノード120と、八分木構造の深さDでの、同じ座標での最も近い符号化されたノード121
との間の距離dであって、「近い」と「あまり遠くない」と「遠い」との3つの値に離散化される距離dと、
b)同じ深さ(低又は高)及び同じ座標での、最も近い符号化されたノード121の平面位置(それがある場合)と、
c)後に詳述するような、少なくとも1つの隣接親ノードの占有パターンに基づく現在の子ノードの平面位置とを含む。
【0069】
平面コンテキスト情報は1ビット(平面又は非平面)、平面位置コンテキスト情報は3×2×2ビットの情報である。
【0070】
なお、本発明によれば、角度符号化方式の場合、コンテキスト情報は上記したような平面コンテキスト情報及び平面位置コンテキスト情報を含む。前記平面コンテキスト情報は、
a)現在の親ノードのisPlanarフラグであって、すなわち現在の親ノードに平面が存在するか否かを示すisPlanarフラグと、
b)現在の親ノードに垂直方向に隣接する垂直隣接親ノード124の占有とを含む。
【0071】
また、角度符号化方式に用いられる平面位置コンテキスト情報は、
a)既に利用可能なノードと現在の子ノードとの間の角度に基づいて識別された、既に利用可能なノードの平面位置planePositionを含む。
【0072】
図5を参照して、2つの子ノード102、103を有する現在の親ノード100を示し、2つの子ノード102、103は占有ノードとして例示され、すなわち2つの子ノードのサブボリュームは、それぞれ点群の少なくとも1つの点を含む。また、
図5に示されているのは、隣接親ノード104、106、108であり、それぞれ少なくとも1つの占有子ノードを含む。特定の八分木レベルに位置する子ノード102、103の平面コンテキスト情報を予測する前に、当該八分木における、現在の親ノード100と同じレベルDでの3つの隣接親ノード104、106、108の占有情報は、デコーダ側で既知である。復号順は既定されたため、現在の親ノード100の子ノード102、103を評価する際に、隣接親ノード104、108、106の情報は、復号器側で既知であり、コンテキスト情報の決定に用いられることができる。これら3つの隣接親ノード104、106、108は、現在の子ノード102、103に近傍しているため、これら隣接親ノード104、106、108の占有パターンと符号化すべき現在の子ノード102、103の占有パターンとの間には関連性が存在する。ここで、占有パターンは、各親ノードの子ノードの占有である。この情報は取得しやすいが、従来の符号化方法や復号方法ではまだ使用されていない。例えば、X軸に沿って現在の子ノード102のコンテキスト情報を評価する場合、X軸に沿った現在の親ノード100に直接隣接する隣接親ノード104を考慮に入れてもよい。また、上述したように、直接隣接する親ノードが考慮され、当該親ノードは復号順において現在の親ノードの前にある。このように、復号期間において、先行ノードの占有パターンはデコーダにとっては既知であり、コンテキスト情報の決定に用いられることができる。Y軸に沿ってコンテキスト情報を評価する場合、Y軸に沿った現在の親ノード100に隣接する隣接親ノード106を考慮に入れてもよい。当該情報も、デコーダにとっては既知であり、現在の子ノード102の信頼性の高い平面コンテキスト情報を取得するために利用しやすい。
【0073】
ただし、現在の子ノードの占有と少なくとも1つの隣接親ノードの占有パターンとの関連性を考慮する場合、符号化すべき現在の子ノードの位置を考慮しなければならない。従って、現在の子ノードの現在の平面位置を決定する必要がある。現在の平面位置は、現在の親ノード内の現在の子ノードの考慮される軸に沿った平面と、当該幾何軸に垂直な平面とを示す。例えば、X軸に沿って、第1低平面は子ノード0、1、2、3によって定義され、高平面は子ノード4、5、6、7によって定義される。Y軸に沿って、低平面は子ノード0、1、4、5によって定義され、高平面は子ノード2、3、6、7によって定義される。Z軸に沿って、低平面は子ノード0、2、4、6によって定義され、高平面は子ノード1、3、5、7によって定義される。従って、
図5の例では、子ノード102のX軸に沿った現在の平面位置は低平面位置であり、子ノード103のX軸に沿った現在の平面位置は高平面位置である。
【0074】
図7を参照し、
図7は、いかに現在の子ノードの隣接ノードの占有に基づいて平面コンテキスト情報及び平面位置コンテキスト情報を決定するかの構成を示し、前記情報は、点群データを圧縮するためにエントロピー符号化において用いられる。この点について、本発明の目的の1つは、現在の子ノード120の隣接親ノードの占有パターンを考慮し、平面情報を符号化するときに、そのような情報をコンテキスト情報に組み込むことである。ここで、
図7は、符号化すべき現在の子ノードが現在の親ノードの低位置にある状況を示す。
【0075】
図7(a)は、X軸に沿った平面コンテキスト情報の決定を示す。現在の子ノード120の平面コンテキスト情報は評価されるべきである。従って、現在の親ノード122と、現在の親ノード122に直接隣接する隣接親ノード124の占有パターンを評価する。評価すべき隣接親ノード124は、X軸に沿って配置される。また、隣接親ノード124は、復号順において現在の親ノード122の前に配置される。従って、現在の親ノード122を復号する際には、隣接親ノード124に関するすべての情報は、既に利用可能となる。また、点群の位置及び占有パターンはエンコーダにとって完全に既知であるため、現在の子ノード120の情報を符号化する際に、隣接親ノード124の占有情報も既知である。
【0076】
特に、現在の子ノード120のコンテキスト情報を決定するためには、隣接親ノード124の子ノードである第1グループ126の子ノードと、現在の親ノード122の子ノードである第2グループ128の子ノードとを考慮する。隣接親ノード124の第1グループ126の4つの子ノードは、現在の親ノード122に直接隣接する。これにより、第1グループ126の各子ノードは、現在の親ノード122と共通表面を共有する。現在の親ノード122の第2グループ128の4つの子ノードは、第1グループと正対している。従って、第2グループ128の4つの子ノードで現在の親ノード122の側面を形成し、当該側面は、隣接親ノード124と現在の親ノード122との間の共通面である側面と正対している。換言すれば、第1グループ126の子ノードと第2グループ128の子ノードとにより、現在の子ノード120の両側にあり、考慮される軸に垂直な平面が定義される。従って、この2つの平面により、コンテキスト情報の確実な決定を提供することができる。点群における、現在の子ノード120を通過する表面は、第1グループ126又は第2グループ128により定義された平面のいずれかを通過する可能性が高いため、現在の子ノード120のコンテキスト情報は、第1グループ126の占有及び/又は第2グループ128の占有に大きく依存する。
【0077】
一般的に、現在の平面位置が低平面位置であれば、第1グループの少なくとも1つの子ノードが占有されており、第2グループが占有されていない場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。第1グループが占有されておらず、第2グループの少なくとも1つの子ノードが占有されている場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。第1グループが占有されておらず、第2グループも占有されていない場合、平面コンテキスト情報は平面の可能性を含み、ただし、隣接親ノードにおいて第1グループに属しない少なくとも1つ又は複数の子ノードが占有されている場合、平面位置コンテキスト情報は低平面の可能性を含み、そうでなければ、「UNKNOWN(未知)」である。第1グループの少なくとも1つの子ノードが占有されており、第2グループの少なくとも1つの子ノードが占有されており、#FirstGroup>#SecondGroup+1である場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、低平面位置の可能性を含む。第1グループの少なくとも1つの子ノードが占有されており、第2グループの少なくとも1つの子ノードも占有されており、#FirstGroup<#SecondGroup+1である場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、高平面位置の可能性を含む。ただし、#FirstGroupは第1グループの占有ノードの数を示し、#SecondGroupは第2グループの占有ノードの数を示す。
【0078】
より具体的には、X軸に沿った評価及び
図4に示す番号付けシステムについては以下となる。
・第1グループの子ノード4~7のうちの少なくとも1つの子ノードが占有されており、第2グループの子ノード4~7が占有されていない場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、低平面位置の可能性を含む。
・第1グループの子ノード4~7が占有されておらず、第2グループの子ノード4~7のうちの少なくとも1つの子ノードが占有されている場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、高平面位置の可能性を含む。
・第1グループの子ノード4~7が占有されておらず、第2グループの子ノード4~7が占有されていない場合、平面コンテキスト情報は、平面の可能性を含み、ただし、隣接親ノードにおける少なくとも1つ又は複数の子ノード0~3は占有されている場合、平面位置コンテキスト情報は、低平面の可能性を含み、そうでなければ、「UNKNOWN」である。
・第1グループの子ノード4~7のうちの少なくとも1つの子ノードが占有されており、第2グループの子ノード4~7のうちの少なくとも1つの子ノードが占有されており、#FirstGroup>#SecondGroup+1である場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、低平面位置の可能性を含む。
・第1グループの子ノード4~7のうちの少なくとも1つの子ノードが占有されており、第2グループの子ノード4~7のうちの少なくとも1つの子ノードが占有されており、#FirstGroup<#SecondGroup+1である場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、高平面位置の可能性を含む。
【0079】
従って、符号化について、低位置である現在の平面位置に対してエントロピー符号化を実行する場合、現在の子ノードにX軸に垂直な平面が存在するか又は存在しない確率はコンテキスト情報と見なされる。ただし、当該情報は平面符号化方式と角度符号化方式における平面コンテキスト情報として用いられてもよく、平面符号化方式における平面位置コンテキスト情報として含まれてもよい。
【0080】
現在の子ノード120の平面コンテキスト情報を決定するために、
図7(b)に基づいてY軸に沿って評価することは、以下のように設定される。
・第1グループの子ノード2、3、6、7のうちの少なくとも1つの子ノードが占有されており、第2グループの子ノード2、3、6、7が占有されていない場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、低平面位置の可能性を含む。
・第1グループの子ノード2、3、6、7が占有されておらず、第2グループの子ノード2、3、6、7のうちの少なくとも1つの子ノードが占有されている場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、高平面位置の可能性を含む。
・第1グループの子ノード2、3、6、7が占有されておらず、第2グループの子ノード2、3、6、7が占有されていない場合、平面コンテキスト情報は、平面の可能性を含み、ただし、隣接親ノードにおける少なくとも1つ又は複数の子ノード0、1、4、5が占有されている場合、平面位置コンテキスト情報は、低平面の可能性を含み、そうでなければ、「UNKNOWN」である。
・第1グループの子ノード2、3、6、7のうちの少なくとも1つの子ノードが占有されており、第2グループの子ノード2、3、6、7のうちの少なくとも1つの子ノードが占有されており、#FirstGroup>#SecondGroup+1である場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、低平面位置の可能性を含む。
・第1グループの子ノード2、3、6、7のうちの少なくとも1つの子ノードが占有されており、第2グループの子ノード2、3、6、7のうちの少なくとも1つの子ノードが占有されており、#FirstGroup<#SecondGroup+1である場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、高平面位置の可能性を含む。
【0081】
従って、符号化について、低位置である現在の平面位置に対してエントロピー符号化を実行する場合、現在の子ノードにY軸に垂直な平面が存在するか又は存在しない確率はコンテキスト情報と見なされる。ただし、当該情報は平面符号化方式と角度符号化方式における平面コンテキスト情報として用いられてもよく、平面符号化方式における平面位置コンテキスト情報として含まれてもよい。
【0082】
現在の子ノード120の平面コンテキスト情報を決定するために、
図7(c)に基づいてZ軸に沿って評価することは、以下のように設定される。
・第1グループの子ノード1、3、5、7のうちの少なくとも1つの子ノードが占有されており、第2グループの子ノード1、3、5、7が占有されていない場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、低平面位置の可能性を含む。
・第1グループの子ノード1、3、5、7が占有されておらず、第2グループの子ノード1、3、5、7のうちの少なくとも1つの子ノードが占有されている場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、高平面位置の可能性を含む。
・第1グループの子ノード1、3、5、7が占有されておらず、第2グループの子ノード1、3、5、7が占有されていない場合、平面コンテキスト情報は、平面の可能性を含み、ただし、隣接親ノードにおける少なくとも1つ又は複数の子ノード0、2、4、6は占有されている場合、平面位置コンテキスト情報は、低平面位置の可能性を含み、そうでなければ、「UNKNOWN」である。
・第1グループの子ノード1、3、5、7のうちの少なくとも1つの子ノードが占有されており、第2グループの子ノード1、3、5、7のうちの少なくとも1つの子ノードが占有されており、#FirstGroup>#SecondGroup+1である場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、低平面位置の可能性を含む。
・第1グループの子ノード1、3、5、7のうちの少なくとも1つの子ノードが占有されており、第2グループの子ノード1、3、5、7のうちの少なくとも1つの子ノードが占有されており、#FirstGroup<#SecondGroup+1である場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、高平面位置の可能性を含む。
【0083】
従って、符号化について、低位置である現在の平面位置に対してエントロピー符号化を実行する場合、現在の子ノードにZ軸に垂直な平面が存在するか又は存在しない確率はコンテキスト情報と見なされる。ただし、当該情報は平面符号化方式と角度符号化方式における平面コンテキスト情報として用いられてもよく、平面符号化方式における平面位置コンテキスト情報として含まれてもよい。
【0084】
以上に示すように、符号化すべき現在の子ノードの現在の平面位置が高平面位置であれば、状況が異なる。そして、現在の子ノードに隣接する隣接親ノードは、符号化順において現在の親ノードの後にある。この場合、隣接親ノードの子ノードの占有は未知であり、隣接親ノード自身の占有のみを使用してコンテキスト情報を決定してもよい。
【0085】
特に、現在の平面位置が高平面位置であれば、平面コンテキスト情報及び平面位置コンテキスト情報は、考慮される軸に沿った現在の親ノードの直後の隣接親ノードの占有、及び考慮される軸に垂直な平面にあり、現在の子ノードに直接隣接する、現在の親ノードの4つの子ノードのグループの占有に基づいて決定される。換言すれば、現在の親ノードの共通表面に直接隣接する隣接親ノードの子ノードの占有は、復号順によって通常不明である。従って、現在の子ノードと共通表面を共有する隣接親ノード自身の占有は、現在の親ノード122内の、現在の親ノード122の反対側に直接隣接して配置される(すなわち、隣接親ノード130に対向する)グループ132と共に使用される。好ましくは、当該グループ132は、4つの子ノードによって1つの平面が定義され、当該平面は、考慮される幾何軸に垂直であり、現在の親ノード内の評価すべき現在の子ノードに直接隣接する。
【0086】
一般的に、現在の平面位置が高平面位置であれば、当該グループ132の少なくとも1つの子ノードが占有されており、隣接親ノード130が占有されていない場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。当該グループ132が占有されておらず、隣接親ノード130が占有されている場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。当該グループ132が占有されておらず、隣接親ノード130が占有されていない場合、平面コンテキスト情報は平面の可能性を含み、ただし、考慮される軸に沿った現在の親ノード122の直前の隣接親ノード134における少なくとも1つ又は複数の子ノード136が占有されている場合、平面位置コンテキスト情報は低平面の可能性を含み、そうでなければ、「UNKNOWN」である。当該グループ132の少なくとも1つの子ノードが占有されており、隣接親ノード130が占有されており、#Group>2である場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。当該グループ132の少なくとも1つの子ノードが占有されており、隣接親ノード130が占有されており、#Group<2である場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。当該グループ132の少なくとも1つの子ノードが占有されており、隣接親ノード130が占有されており、#Group=2である場合、平面コンテキスト情報は平面が存在しない可能性を含み、それにより平面位置が未知である。#Groupは該グループ132における占有子ノードの数を示す。
【0087】
より具体的には、
図8(a)を参照してX軸に沿って評価することは以下となる。
・当該グループ
132の子ノード0~3のうちの少なくとも1つの子ノードが占有されており、隣接親ノード
130が占有されていない場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。
・当該グループ
132の子ノード0~3が占有されておらず、隣接親ノード
130が占有されている場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。
・当該グループ
132の子ノード0~3が占有されておらず、隣接親ノード
130が占有されていない場合、平面コンテキスト情報は平面の可能性を含み、ただし、考慮される軸に沿った現在の親ノード
122の直前の隣接親ノード
134における少なくとも1つ又は複数の子ノード4~7が(
図9(a)に示されたように)占有されている場合、平面位置コンテキスト情報は低平面の可能性を含み、そうでなければ、「UNKNOWN」である。
・当該グループ
132の子ノード0~3のうちの少なくとも1つの子ノードが占有されており、隣接親ノード
130が占有されており、かつ#Group>2である場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。
・当該グループ
132の子ノード0~3のうちの少なくとも1つの子ノードが占有されており、隣接親ノード
130が占有されており、#Group<2である場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。
・当該グループ
132の子ノード0~3のうちの少なくとも1つの子ノードが占有されており、隣接親ノード
130が占有されており、#Group=2である場合、平面コンテキスト情報は平面が存在しない可能性を含み、それにより平面位置が未知と推定される。#Groupは該グループにおける占有子ノードの数を示す。
【0088】
従って、符号化について、高位置である現在の平面位置に対してエントロピー符号化を実行する場合、現在の子ノード120にX軸に垂直な平面が存在するか又は存在しない確率はコンテキスト情報と見なされる。ただし、当該情報は平面符号化方式と角度符号化方式における平面コンテキスト情報として用いられてもよく、平面符号化方式における平面位置コンテキスト情報として含まれてもよい。
【0089】
現在の子ノード120の平面コンテキスト情報を決定するために、
図8(b)に基づいてY軸に沿って評価することは、以下のように設定される。
・当該グループ
132の子ノード0、1、4、5のうちの少なくとも1つの子ノードが占有されており、隣接親ノード
130が占有されていない場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。
・当該グループ
132の子ノード0、1、4、5が占有されておらず、隣接親ノード
130が占有されている場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。
・当該グループ
132の子ノード0、1、4、5が占有されておらず、隣接親ノード
130が占有されていない場合、平面コンテキスト情報は平面の可能性を含み、ただし、考慮される軸に沿った現在の親ノード
122の直前の隣接親ノード
134における少なくとも1つ又は複数の子ノード2、3、6、7が(
図9(b)に示されたように)占有されている場合、平面位置コンテキスト情報は低平面の可能性を含み、そうでなければ、「UNKNOWN」である。
・当該グループ
132の子ノード0、1、4、5のうちの少なくとも1つの子ノードが占有されており、隣接親ノード
130が占有されており、#Group>2である場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。
・当該グループ
132の子ノード0、1、4、5のうちの少なくとも1つの子ノードが占有されており、隣接親ノード
130が占有されており、#Group<2である場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。
・当該グループ
132の子ノード0、1、4、5のうちの少なくとも1つの子ノードが占有されており、隣接親ノード
130が占有されており、かつ#Group=2である場合、平面コンテキスト情報は平面が存在しない可能性を含み、それにより平面位置が未知と推定される。#Groupは当該グループにおける占有子ノードの数を示す。
【0090】
従って、符号化について、高位置である現在の平面位置に対してエントロピー符号化を実行する場合、現在の子ノード120にY軸に垂直な平面が存在するか又は存在しない確率はコンテキスト情報と見なされる。ただし、当該情報は平面符号化方式と角度符号化方式における平面コンテキスト情報として用いられてもよく、平面符号化方式における平面位置コンテキスト情報として含まれてもよい。
【0091】
現在の子ノード120の平面コンテキスト情報を決定するために、
図8(c)に基づいてZ軸に沿って評価することは、以下のように設定される。
・当該グループ
132の子ノード0、2、4、6のうちの少なくとも1つの子ノードが占有されており、隣接親ノード
130が占有されていない場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。
・当該グループ
132の子ノード0、2、4、6が占有されておらず、隣接親ノード
130が占有されている場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。
・当該グループ
132の子ノード0、2、4、6が占有されておらず、隣接親ノード
130が占有されていない場合、平面コンテキスト情報は平面の可能性を含み、ただし、考慮される軸に沿った現在の親ノード
122の直前の隣接親ノード
134における少なくとも1つ又は複数の子ノード1、3、5、7が(
図9(c)に示されたように)占有されている場合、平面位置コンテキスト情報は低平面の可能性を含み、そうでなければ、「UNKNOWN」である。
・当該グループ
132の子ノード0、2、4、6のうちの少なくとも1つの子ノードが占有されており、隣接親ノード
130が占有されており、#Group>2である場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。
・当該グループ
132の子ノード0、2、4、6のうちの少なくとも1つの子ノードが占有されており、隣接親ノード
130が占有されており、#Group<2である場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。
・当該グループ
132の子ノード0、2、4、6のうちの少なくとも1つの子ノードが占有されており、隣接親ノード
130が占有されており、#Group=2である場合、平面コンテキスト情報は平面が存在しない可能性を含み、それにより平面位置が未知と推定される。#Groupは当該グループにおける占有子ノードの数を示す。
【0092】
従って、符号化について、高位置である現在の平面位置に対してエントロピー符号化を実行する場合、現在の子ノード120にZ軸に垂直な平面が存在するか又は存在しない確率はコンテキスト情報と見なされる。ただし、当該情報は平面符号化方式と角度符号化方式における平面コンテキスト情報として用いられてもよく、平面符号化方式における平面位置コンテキスト情報として含まれてもよい。
【0093】
要するに、すべての場合において、いずれもエントロピー符号化に用いることができる信頼性の高い平面コンテキスト情報モデルが構築され、それにより各ノードにおける表面又は平面の発生を考慮し、この知識を利用して、エントロピーエンコーダ/デコーダによるデータ圧縮のために、ノードの占有を有効に予測する。
【0094】
いくつかの場合において、上記したコンテキスト情報のセットの実現は不可能又は無意味である。従って、平面符号化方式における平面位置コンテキスト情報について、同一座標、同一深さで最も近い符号化されたノードが平面でないか、又は存在しない場合、現在のGPCC仕様では、特定のコンテキストモデルを用いることを提案し、当該モデルはaxisIdx文(値=0、1、2)を利用してplanePositionを符号化するための平面に垂直な軸を識別する。しかし、この方法には、隣接ノードの占有による情報が無視された。本発明によれば、依然として現在の子ノードと同一の親ノード内にあり、考慮される軸に垂直な同一平面内における隣接子ノードの占有に基づいて推定を行うことができる。例えば、X軸を考慮し、現在の子ノードが座標2にある場合、現在の親ノード内にあり、X軸に垂直な同一垂直面内における子ノード0、1の情報は既知であり、平面位置コンテキスト情報の決定に用いることができ、例えば、これらのノードのうちの1つ又はこれらのノードの大多数の平面位置コンテキスト情報を、符号化すべき現在の子ノードの平面位置コンテキスト情報として用いる。例えば、X軸を考慮し、現在の子ノードが座標7にある場合、現在の親ノード内にあり、X軸に垂直な同一垂直面内における子ノード4~6の情報が既知であり、平面位置コンテキスト情報の決定に用いることができる。従って、同一座標かつ同一深さDで最も近い符号化されたノードが存在しない場合、平面位置コンテキスト情報は、提出されたaxisIdx文を置き換えることができ、より効率的なエントロピー符号化のために改善されたコンテキスト情報を提供する。従って、以上に提出された平面符号化方式での平面位置コンテキスト情報に用いられるコンテキストモデルは、以下に置き換えられる。
a)少なくとも1つの隣接ノードの占有に基づく現在の子ノードの平面位置。
【0095】
また、角度符号化方式について、すなわち点群は角度符号化方式により符号化されることが指示されたとしても、当該点群の1つ又は複数のノードが当該符号化方式に適合しない可能性がある。この場合、角度符号化方式の平面位置コンテキスト情報は、上述したように、平面方式に基づく平面位置コンテキスト情報に置き換えられる。
【0096】
図10(a)を参照し、点群を符号化する方法が示され、当該方法は、
符号化方式を決定するステップであって、符号化方式は平面符号化方式と角度符号化方式とを含むステップ(ステップ10)と、
現在の子ノードの符号化コンテキスト情報を取得するステップ(ステップ11)であって、
符号化方式が平面符号化方式であれば、符号化コンテキスト情報は平面コンテキスト情報を含み、現在の子ノードの平面コンテキスト情報は現在の親ノードの占有と、現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有とに基づいて決定され(ステップ111)、
符号化方式が角度符号化方式であれば、現在の子ノードの符号化コンテキスト情報は現在の親ノードの平面情報と、現在の親ノードに隣接する垂直隣接親ノードの占有とを含む(ステップ112)ステップと、
決定された符号化コンテキスト情報に基づいて、現在の子ノードをエントロピー符号化してビットストリームの符号化データを生成するステップ(ステップ12)とを含む。
【0097】
図10(b)を参照し、点群を復号する方法が示され、当該方法は、
符号化方式を決定するステップであって、符号化方式は平面符号化方式と角度符号化方式とを含むステップ(ステップ20)と、
現在の子ノードの符号化コンテキスト情報を取得するステップ(ステップ21)であって、
符号化方式が平面符号化方式であれば、符号化コンテキスト情報は平面コンテキスト情報を含み、現在の子ノードの平面コンテキスト情報は現在の親ノードの占有と、現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有とに基づいて決定され(ステップ211)、
符号化方式が角度符号化方式であれば、現在の子ノードの符号化コンテキスト情報は現在の親ノードの平面情報と、現在の親ノードに隣接する垂直隣接親ノードの占有とを含む(ステップ212)ステップと、
現在の子ノードのコンテキスト情報に基づいてビットストリームをエントロピー復号して点群を再構築するステップ(ステップ22)と、を含む。
【0098】
従って、本発明によれば、隣接ノードに関する情報を使用、評価することでコンテキスト情報モデルを取得し、それにより現在の子ノード内の表面の発生をより確実に予測する。当該情報は、圧縮点群データのデータ量を低減するために用いられることができ、同じコンテキスト情報モデルはデコーダにも用いられ、それにより提供されたビットストリームを高効率かつ高精度に、確実に復号することができる。従って、従来の符号化方法及び現在のGPCC仕様に比べ、少なくとも1%の大幅なデータ削減を達成することができる。しかし、この値は点の密度に依存しており、特にLiDAR点群のような屋内の点群については、密な点群とみなすことができると仮定される。
【0099】
符号化又は復号方法の実施例において、符号化方式は平面符号化方式であれば、符号化コンテキスト情報は平面コンテキスト情報を含み、平面コンテキスト情報は、現在の親ノードの占有パターンと現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンとに基づく平面の存在を含む。
【0100】
符号化方法又は復号方法の実施例において、符号化方式は平面符号化方式であれば、符号化コンテキスト情報は平面位置コンテキストを含み、平面位置コンテキスト情報は、
現在の子ノードと、八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードとの間の距離dと、
八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードの平面位置と、
現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンに基づいて決定された現在の子ノードの平面位置と
のうちの1つ又は複数を含む。
【0101】
符号化方法又は復号方法の実施例において、八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードが存在しなければ、平面位置コンテキスト情報は、現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンに基づいて決定された前記現在の子ノードの平面位置のみを含む。
【0102】
符号化方法又は復号方法の実施例において、符号化方式は角度符号化方式であれば、符号化コンテキスト情報は平面コンテキストを含み、平面コンテキスト情報は、
現在の親ノードのisPlanarフラグと、
現在の親ノードに直接隣接する垂直隣接親ノード(すなわち、考慮される軸に垂直で、復号順において現在の親ノードの直前にある)の占有と、のうちの1つ又は複数を含む。
【0103】
符号化方法又は復号方法の実施例において、符号化方式が角度符号化方式であり、現在の子ノードに角度符号化方式が適用しない場合、符号化コンテキスト情報は、平面位置コンテキスト情報を含み、平面位置コンテキスト情報は、
現在の子ノードと、八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードとの間の距離dと、
八分木ベース構造における同じ深さDでの、対応する親ノードにおける同じ座標での最も近い符号化されたノードの平面位置と、
現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンに基づいて決定された現在の子ノードの平面位置と
のうちの1つ又は複数を含む。
【0104】
符号化方法又は復号方法の実施例において、少なくとも1つの隣接親ノードの占有パターンに基づいて平面コンテキスト情報及び平面位置コンテキスト情報を決定するために、現在の親ノードに対する現在の子ノードの平面位置が決定され、現在の平面位置は、高平面位置及び低平面位置を含む。
【0105】
符号化方法又は復号方法の実施例において、現在の平面位置が低平面位置であれば、平面コンテキスト情報及び平面位置コンテキスト情報は、隣接親ノードの現在の親ノードに直接隣接する第1グループの4つの子ノードの占有と、現在の親ノードの第1グループに正対する第2グループの4つの子ノードの占有とに基づいて決定される。
【0106】
符号化方法又は復号方法の実施例において、現在の平面位置が低平面位置であれば、第1グループの少なくとも1つの子ノードが占有されており、第2グループが占有されていない場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。
【0107】
符号化方法又は復号方法の実施例において、現在の平面位置が低平面位置であれば、第1グループが占有されておらず、第2グループの少なくとも1つの子ノードが占有されている場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。
【0108】
符号化方法又は復号方法の実施例において、現在の平面位置が低平面位置であれば、第1グループが占有されておらず、第2グループが占有されていない場合、平面コンテキスト情報は平面の可能性を含み、ただし、隣接親ノードにおいて第1グループに属しない少なくとも1つ又は複数の子ノードが占有されている場合、平面位置コンテキスト情報は低平面の可能性を含み、そうでなければ、「UNKNOWN」である。
【0109】
符号化方法又は復号方法の実施例において、現在の平面位置が低平面位置であれば、第1グループの少なくとも1つの子ノードが占有されており、第2グループの少なくとも1つの子ノードが占有されており、#FirstGroup>#SecondGroup+1である場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、低平面位置の可能性を含み、ただし、#FirstGroupは第1グループの占有ノードの数を示し、#SecondGroupは第2グループの占有ノードの数を示す。
【0110】
符号化方法又は復号方法の実施例において、現在の平面位置が低平面位置であれば、第1グループの少なくとも1つの子ノードが占有されており、第2グループの少なくとも1つの子ノードが占有されており、#FirstGroup<#SecondGroup+1である場合、平面コンテキスト情報は、平面の可能性を含み、平面位置コンテキスト情報は、高平面位置の可能性を含み、ただし、#FirstGroupは第1グループの占有ノードの数を示し、#SecondGroupは第2グループの占有ノードの数を示す。
【0111】
符号化方法又は復号方法の実施例において、現在の平面位置が高平面位置であれば、平面コンテキスト情報及び平面位置コンテキスト情報は、考慮される軸に沿った前記現在の親ノードの直後の前記隣接親ノードの占有率、及び考慮される軸に垂直な平面にあり、前記現在の子ノードに直接隣接する、前記現在の親ノードの4つの子ノードのグループの占有に基づいて決定される。
【0112】
符号化方法又は復号方法の実施例において、現在の平面位置が高平面位置であれば、当該グループの少なくとも1つの子ノードが占有されており、隣接親ノードが占有されていない場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含む。
【0113】
符号化方法又は復号方法の実施例において、現在の平面位置が高平面位置であれば、当該グループが占有されておらず、隣接親ノードが占有されている場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含む。
【0114】
符号化方法又は復号方法の実施例において、現在の平面位置が高平面位置であれば、当該グループが占有されておらず、隣接親ノードが占有されていない場合、平面コンテキスト情報は平面の可能性を含み、ただし、考慮される軸に沿った現在の親ノードの直前の隣接親ノードにおける少なくとも1つ又は複数の子ノードが占有されている場合、平面位置コンテキスト情報は低平面の可能性を含み、そうでなければ、「UNKNOWN」である。
【0115】
符号化方法又は復号方法の実施例において、現在の平面位置が高平面位置であれば、当該グループの少なくとも1つの子ノードが占有されており、隣接親ノードが占有されており、#Group>2である場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は低平面位置の可能性を含み、#Groupは、当該グループにおける占有ノードの数を示す。
【0116】
符号化方法又は復号方法の実施例において、現在の平面位置が高平面位置であれば、当該グループの少なくとも1つの子ノードが占有されており、隣接親ノードが占有されており、#Group<2である場合、平面コンテキスト情報は平面の可能性を含み、平面位置コンテキスト情報は高平面位置の可能性を含み、#Groupは、当該グループにおける占有ノードの数を示す。
【0117】
符号化方法又は復号方法の実施例において、現在の平面位置が高平面位置であれば、当該グループの少なくとも1つの子ノードが占有されており、隣接親ノードが占有されており、#Group=2である場合、平面コンテキスト情報は平面が存在しない可能性を含み、平面位置は未知と推定され、#Groupは、当該グループにおける占有ノードの数を示す。
【0118】
符号化方法又は復号方法の実施例において、隣接親ノードは幾何軸の1つに沿って配置される。
【0119】
符号化方法又は復号方法の実施例において、3つの幾何軸のすべてに沿って平面コンテキスト情報を決定する。
【0120】
符号化方法又は復号方法の実施例において、現在の親ノードは、復号順に従って隣接親ノードと相対的に配置される。
【0121】
好ましい実施例において、点群を符号化/復号することにより圧縮点群データのビットストリームを生成する方法は、LIDAR(光検出及び測距)デバイスで実現される。LIDARデバイスは光伝送モジュールとセンサモジュールとを備える。光伝送モジュールは、レーザ光で環境をスキャンするように設定され、環境内のオブジェクトによって反射されたレーザ光のエコー(echo)は、センサモジュールのセンサで測定される。また、LIDARデバイスは評価モジュールを備え、当該評価モジュールは、好ましくはレーザ光の戻り時間及び/又は反射されたレーザ光の波長の差異により環境の点群における3D表現を決定する。従って、エコーはオブジェクト又は環境の数百万個の位置情報点を含み得、それにより大型の点群になり、当該点群をさらに処理したり評価したりするための計算デバイスへの要求が高くなる。例えば自動運転の特定のアプリケーションにおいて、安全のため、LIDAR点群の処理はほぼリアルタイムでなければならない。従って、点群データを効果的かつ正確に圧縮することは必要である。従って、LIDARデバイスはエンコーダを備えてもよく、当該エンコーダはプロセッサ及びメモリ記憶デバイスを備える。メモリ記憶デバイスは、命令を含むコンピュータプログラム又はアプリケーションを記憶してもよく、該命令が実行されると、プロセッサに本明細書に記載のような操作を実行させる。例えば、命令は本発明に記載の方法に基づいて符号化し、符号化されたビットストリームを出力してもよい。追加的又は代替的に、LIDARデバイスはデコーダを備えてもよく、該デコーダはプロセッサ及びメモリ記憶デバイスを備える。メモリ記憶デバイスは命令を含むコンピュータプログラム又はアプリケーションを記憶してもよく、該命令が実行されると、プロセッサに本明細書に記載のような操作を実行させる。従って、エンコーダ/デコーダにより、点群データを効果的かつ正確に圧縮することができ、それにより取得した点群データをより効果的に、好ましくはリアルタイムで処理する確率を提供する。好ましくは、エンコーダのプロセッサとデコーダのプロセッサは同じである。好ましくは、エンコーダのメモリ記憶デバイスとデコーダのメモリ記憶デバイスは同じである。好ましくは、エンコーダ及び/又はデコーダのプロセッサは点群をさらに処理するか又は評価するように設定され、さらに、好ましくは、点群をリアルタイムで処理するか又は評価するように設定される。特に、自動運転の例について、点群の評価は運転方向における障害物の判定を含んでもよい。
【0122】
図11を参照し、エンコーダ1100の例示的な実施例の簡略化ブロック図を示す。エンコーダ1100は、プロセッサ1102と、メモリ記憶デバイス1104とを備える。メモリ記憶デバイス1104は命令を含むコンピュータプログラム又はアプリケーションを記憶してもよく、該命令が実行されると、プロセッサ1102に本明細書に記載のような操作を実行させる。例えば、命令は本発明に記載の方法に基づいて符号化し、符号化されたビットストリームを出力してもよい。理解すべきことは、命令が非一時的なコンピュータ可読媒体に記憶されてもよく、例えばコンパクトディスク、フラッシュメモリデバイス、ランダムアクセスメモリ、ハードディスクドライブなどであってもよい。命令が実行されると、プロセッサ1102は、命令に指定された操作及び機能を実行し、それにより、上記処理を実現する専用プロセッサとして用いられる。いくつかの例示において、このようなプロセッサは「プロセッサ電気回路」又は「プロセッサ回路」と呼ばれてもよい。
【0123】
図12を参照し、デコーダ1200の例示的な実施例の簡略化ブロック図を示す。デコーダ1200は、プロセッサ1202と、メモリ記憶デバイス1204とを備える。メモリ記憶デバイス1204は命令を含むコンピュータプログラム又はアプリケーションを記憶してもよく、該命令が実行されると、プロセッサ1202に本明細書に記載のような操作を実行させる。理解すべきことは、命令が非一時的なコンピュータ可読媒体に記憶されてもよく、例えばコンパクトディスク、フラッシュメモリデバイス、ランダムアクセスメモリ、ハードディスクドライブなどであってもよい。命令が実行されると、プロセッサ1202は、命令に指定された操作及び機能を実行し、それにより、上記処理を実現する専用プロセッサとして用いられる。いくつかの例示において、このようなプロセッサは「プロセッサ電気回路」又は「プロセッサ回路」と呼ばれてもよい。
【0124】
理解すべきことは、本発明に係るエンコーダ及び/又はデコーダは複数の計算デバイスにおいて実現されてもよく、サーバ、適切にプログラミングされた汎用コンピュータ、マシンビジョンシステム及び移動デバイスを含むがこれらに限定されない。エンコーダ又はデコーダは、本発明に記載された機能を実行するための、1つ又は複数のプロセッサを設定するための命令を含むソフトウェアによって実現されてもよい。ソフトウェア命令は任意の適切な非一時的なコンピュータ可読メモリに記憶されてもよく、CD、RAM、ROM、フラッシュメモリ等を含む。
【0125】
理解すべきことは、本発明に記述されたエンコーダ及び/又はデコーダと、記述されたエンコーダ又はデコーダを設定するための方法/処理を実現するモジュール、ルーチン、処理、スレッド又は他のソフトウェアコンポーネントは標準的なコンピュータプログラミング技術及び言語を使用して実現されてもよい。本発明は特定のプロセッサ、コンピュータ言語、コンピュータプログラミングプロトコル、データ構造、他のこのような実現の詳細に限定されない。当業者であれば理解されるように、説明された処理は揮発性又は不揮発性メモリに記憶されたコンピュータ実行可能なコードの一部、専用集積チップ(ASIC)の一部等として実現されてもよい。
【0126】
また、本発明は、本発明に係る符号化処理の適用により生成されたデータを符号化するコンピュータ可読信号を提供する。
【0127】
本発明の1態様において、点群を符号化して圧縮点群データのビットストリームを生成するための符号化方法を提供し、前記点群のジオメトリは八分木ベース構造によって表現され、前記八分木ベース構造は、前記点群を含むボリューム空間をサブボリュームに再帰的に分割することにより、親子関係を有する複数のノードを含み、各前記サブボリュームは前記八分木ベース構造のノードに関連し、前記方法は、
符号化方式を決定するステップと、
現在の子ノードの符号化コンテキスト情報を取得するステップと、
決定された符号化コンテキスト情報に基づいて、前記現在の子ノードの占有をエントロピー符号化して前記ビットストリームの符号化データを生成するステップとを含む。
【0128】
好ましくは、符号化方式は平面符号化方式と角度符号化方式とを含む。
【0129】
好ましくは、符号化方式が平面符号化方式であれば、符号化コンテキスト情報は平面コンテキスト情報を含む。
【0130】
好ましくは、現在の子ノードの平面コンテキスト情報は、現在の親ノードの占有パターンと、現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンとに基づいて決定される。
【0131】
好ましくは、符号化方式が角度符号化方式であれば、現在の子ノードの符号化コンテキスト情報は現在の親ノードの平面情報と、現在の親ノードに隣接する垂直隣接親ノードの占有とを含む。
【0132】
本発明の1態様において、圧縮点群データのビットストリームを復号して再構成点群を生成するための方法を提供し、点群のジオメトリは八分木ベース構造によって表現され、前記八分木ベース構造は、前記点群を含むボリューム空間をサブボリュームに再帰的に分割することにより、親子関係を有する複数のノードを含み、各前記サブボリュームは前記八分木ベース構造のノードに関連し、前記方法は、
符号化方式を決定するステップと、
現在の子ノードの符号化コンテキスト情報を取得するステップと、
現在の子ノードの符号化コンテキスト情報に基づいて、ビットストリームをエントロピー復号して点群を再構成するステップとを含む。
【0133】
好ましくは、符号化方式は平面符号化方式と角度符号化方式とを含む。
【0134】
好ましくは、符号化方式が平面符号化方式であれば、符号化コンテキスト情報は平面コンテキスト情報を含む。
【0135】
好ましくは、現在の子ノードの平面コンテキスト情報は、現在の親ノードの占有パターンと、現在の親ノードに直接隣接する少なくとも1つの隣接親ノードの占有パターンとに基づいて決定される。
【0136】
好ましくは、符号化方式が角度符号化方式であれば、現在の子ノードの符号化コンテキスト情報は現在の親ノードの平面情報と、現在の親ノードに隣接する垂直隣接親ノードの占有とを含む。
【0137】
記述された実施例に対していくつかの調整及び修正を行ってもよい。従って、以上に説明された実施例は例示的であり、限定的ではないと考えられる。特に、実施例は互いに自由に組み合わせることができる。