(57)【要約】点群をエンコードする方法およびデバイス。ボリュームのサブボリュームに関する占有パターンを示すビットシーケンスが、バイナリエントロピコーディングを使用してコーディングされる。ビットシーケンス内の所与のビットに関して、コンテキストが、そのビットに対応するサブボリュームに関するサブボリューム近隣構成に基づき得る。サブボリューム近隣構成は、ボリュームの近隣ボリュームのサブボリュームのグループの占有パターンに依存し、サブボリュームのグループは、所与のビットに対応するサブボリュームの近隣に位置している。コンテキストは、ビットシーケンスの以前にコーディングされたビットの部分的シーケンスにさらに基づき得る。
2022501744.tif 000002
【特許請求の範囲】
【請求項１】
圧縮された点群データのビットストリームを発生させるために点群をエンコードする方法であって、前記点群は、親子関係を有する複数のノードを有するツリー構造において定義され、前記複数のノードは、ボリューム空間の幾何学形状を表し、前記ボリューム空間は、サブボリュームに再帰的に分割され、前記点群の点を含み、ボリュームのサブボリュームの占有は、ビットシーケンスを使用して示され、前記ビットシーケンスの各ビットは、前記ボリューム内の走査順序におけるそれぞれのサブボリュームの占有を示し、ボリュームは、複数の近隣ボリュームを有し、
前記方法は、
各サブボリュームが現在のノードの子ノードに対応するサブボリュームに分割された現在のボリュームに関連付けられた前記現在のノードに関して、前記現在のボリュームの前記サブボリュームの前記占有を示す前記ビットシーケンスを決定することと、
前記現在のボリュームの前記ビットシーケンス内の少なくとも１つのビットに関して、
前記現在のボリュームの少なくとも１つの近隣ボリュームのサブボリュームに関する占有データに基づいて、サブボリューム近隣構成を決定することであって、前記サブボリューム近隣構成は、前記ビットシーケンス内の前記ビットに対応する前記現在のボリュームのそのサブボリュームの近隣に位置している前記少なくとも１つの近隣ボリュームのサブボリュームのグループの占有パターンに依存する、ことと、
前記ビットシーケンス内の前記ビットのエントロピエンコーディングにおける使用のための確率を選択することであって、前記選択することは、少なくとも部分的に前記サブボリューム近隣構成に基づく、ことと、
バイナリエントロピエンコーダを使用して、前記選択された確率に基づいて、前記ビットシーケンス内の前記ビットをエントロピエンコーディングし、前記ビットストリームに関するエンコードされたデータを生成することと
を含む、方法。
【請求項２】
再構成された点群を生成するために圧縮された点群データのビットストリームをデコードする方法であって、前記点群は、親子関係を有する複数のノードを有するツリー構造において定義され、前記複数のノードは、ボリューム空間の幾何学形状を表し、前記ボリューム空間は、サブボリュームに再帰的に分割され、前記点群の点を含み、ボリュームのサブボリュームの占有は、ビットシーケンスを使用して示され、前記ビットシーケンスの各ビットは、前記ボリューム内の走査順序におけるそれぞれのサブボリュームの占有を示し、ボリュームは、複数の近隣ボリュームを有し、
前記方法は、
各サブボリュームが現在のノードの子ノードに対応するサブボリュームに分割された現在のボリュームに関連付けられた前記現在のノードに関し、
前記現在のボリュームのビットシーケンス内の少なくとも１つのビットに関して、
前記現在のボリュームの少なくとも１つの近隣ボリュームのサブボリュームに関する占有データに基づいて、サブボリューム近隣構成を決定することであって、前記サブボリューム近隣構成は、前記ビットシーケンス内の前記ビットに対応する前記現在のボリュームのそのサブボリュームの近隣に位置している前記少なくとも１つの近隣ボリュームのサブボリュームのグループの占有パターンに依存する、ことと、
前記ビットシーケンス内の前記ビットのエントロピデコーディングにおける使用のための確率を選択することであって、前記選択することは、少なくとも部分的に前記サブボリューム近隣構成に基づく、ことと、
バイナリエントロピデコーダを使用して、前記選択された確率に基づいて、前記少なくとも１つのビットをエントロピデコーディングし、前記ビットストリームから再構成されたビットを生成することと
を含む、方法。
【請求項３】
前記サブボリューム近隣構成を決定することは、
前記現在のボリュームの前記少なくとも１つの近隣ボリュームの前記サブボリュームに関する前記占有データに基づいて、前記ビットシーケンス内の前記ビットに対応する前記現在のボリュームのそのサブボリュームの近隣に位置している前記少なくとも１つの近隣ボリュームの前記サブボリュームの数を決定することと、
閾値関数を前記決定された数に適用することと
を含む、請求項１または請求項２に記載の方法。
【請求項４】
所与のボリューム内の所与のサブボリュームの前記サブボリューム近隣構成は、前記所与のサブボリュームの近隣に位置している前記所与のボリュームの近隣ボリューム内のサブボリュームの占有のパターンに対応する、請求項１−３のいずれか１項に記載の方法。
【請求項５】
前記サブボリューム近隣構成を決定することは、すでにコーディングされている前記現在のボリュームのそれらの近隣ボリュームのサブボリュームに関する占有データに基づく、請求項１−４のいずれか１項に記載の方法。
【請求項６】
前記確率を選択することは、すでにコーディングされている前記ビットシーケンスのビットの部分的シーケンスおよび／または前記現在のボリュームの近隣構成にさらに基づき、前記現在のボリュームの前記近隣構成は、前記現在のボリュームの前記近隣ボリュームの占有のパターンに対応する、請求項１−５のいずれか１項に記載の方法。
【請求項７】
前記サブボリューム近隣構成を決定することは、
前記現在のボリュームの前記少なくとも１つの近隣ボリュームの前記サブボリュームに関する前記占有データに基づいて、前記ビットシーケンス内の前記ビットに対応する前記現在のボリュームのそのサブボリュームと交差する前記少なくとも１つの近隣ボリュームの全てのそれらのサブボリュームを決定することと、
前記決定されたサブボリュームにそれぞれの重み係数を適用することであって、各重み係数は、前記それぞれの決定されたサブボリュームと、前記ビットシーケンス内の前記ビットに対応する前記現在のボリュームのそのサブボリュームとの交差に依存する、ことと、
前記決定されたサブボリュームとそれらのそれぞれの重み係数とに基づいて、前記ビットシーケンス内の前記ビットに対応する前記現在のボリュームのそのサブボリュームと交差する前記少なくとも１つの近隣ボリュームのサブボリュームの重み付きの数を決定することと
を含む、請求項１−６のいずれか１項に記載の方法。
【請求項８】
前記現在のボリューム内の前記走査順序は、前記走査順序における１つのサブボリュームから次のサブボリュームまで、前記現在のボリュームのすでにコーディングされた近隣ボリュームにおける近隣サブボリュームの最大可能数が、増加しないように決定される、請求項１−７のいずれか１項に記載の方法。
【請求項９】
前記現在のボリュームの所与の近隣ボリュームの前記サブボリュームの前記占有データは、前記所与の近隣ボリュームの前記サブボリュームの各々に関する占有ステータスを備えている、請求項１−８のいずれか１項に記載の方法。
【請求項１０】
前記ツリー構造は、オクツリーを表す、請求項１−９のいずれか１項に記載の方法。
【請求項１１】
前記ビットストリームからフラグをデコードすることをさらに含み、前記フラグは、少なくとも１つのビットのエントロピデコーディングにおける使用のための前記確率が少なくとも部分的に前記サブボリューム近隣構成に基づいて選択されるべきであることを示す、請求項２または請求項２に従属するときの請求項３−１０のいずれか１項に記載の方法。
【請求項１２】
圧縮された点群データのビットストリームを発生させるために点群をエンコードするためのエンコーダであって、前記点群は、親子関係を有する複数のノードを有するツリー構造において定義され、前記複数のノードは、ボリューム空間の幾何学形状を表し、前記ボリューム空間は、サブボリュームに再帰的に分割され、前記点群の点を含み、ボリュームのサブボリュームの占有は、ビットシーケンスを使用して示され、前記ビットシーケンスの各ビットは、前記ボリューム内の走査順序におけるそれぞれのサブボリュームの占有を示し、ボリュームは、複数の近隣ボリュームを有し、
前記エンコーダは、
プロセッサと、
メモリと、
前記プロセッサによって実行可能な命令を含むエンコーディングアプリケーションと
を備え、
前記命令は、実行されると、請求項１または請求項１に従属するときの請求項３−１０のいずれか１項に記載の方法を前記プロセッサに実施させる、エンコーダ。
【請求項１３】
再構成された点群を生成するために圧縮された点群データのビットストリームをデコードするためのデコーダであって、前記点群は、親子関係を有する複数のノードを有するツリー構造において定義され、前記複数のノードは、ボリューム空間の幾何学形状を表し、前記ボリューム空間は、サブボリュームに再帰的に分割され、前記点群の点を含み、ボリュームのサブボリュームの占有は、ビットシーケンスを使用して示され、前記ビットシーケンスの各ビットは、前記ボリューム内の走査順序におけるそれぞれのサブボリュームの占有を示し、ボリュームは、複数の近隣ボリュームを有し、
前記デコーダは、
プロセッサと、
メモリと、
前記プロセッサによって実行可能な命令を含むデコーディングアプリケーションと
を備え、
前記命令は、実行されると、請求項２または請求項２に従属するときの請求項３−１１のいずれか１項に記載の方法を前記プロセッサに実施させる、デコーダ。
【請求項１４】
プロセッサ実行可能命令を記憶している非一過性プロセッサ読み取り可能な媒体であって、前記命令は、プロセッサによって実行されると、請求項１−１１のいずれか１項に記載の方法を前記プロセッサに実施させる、非一過性プロセッサ読み取り可能な媒体。
【請求項１５】
プログラム命令を含むコンピュータ読み取り可能な信号であって、前記命令は、コンピュータによって実行されると、請求項１−１１のいずれか１項に記載の説明される方法を前記コンピュータに実施させる、コンピュータ読み取り可能な信号。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、概して、点群圧縮に関し、特に、点群のバイナリエントロピコーディングのための方法およびデバイスに関する。
【背景技術】
【０００２】
データ圧縮が、情報を効率的に記憶、伝送、および再生するために、通信およびコンピュータネットワーキングにおいて使用される。３次元オブジェクトまたは空間の表現への関心が、高まっており、それらは、大きいデータセットを伴い得、大きいデータセットに関して、効率的かつ効果的な圧縮が非常に有用かつ有益であろう。ある場合、３次元オブジェクトまたは空間は、点群を使用して表され得、点群は、各々が３つの座標場所（Ｘ，Ｙ，Ｚ）（ある場合、色データ（例えば、ルミナンスおよびクロミナンス）、透明度、反射率、法線ベクトル等のような他の属性）を有する点の組である。点群は、静的（静止したオブジェクトまたは単一の時点における環境／オブジェクトのスナップショット）または動的（点群の時間順のシーケンス）であり得る。
【０００３】
点群に関する例示的用途は、トポグラフィおよびマッピング用途を含む。自律車両および他のマシンビジョン用途は、ＬｉＤＡＲ走査装置から等の環境の３Ｄ走査の形態における点群センサデータに依拠し得る。仮想現実シミュレーションは、点群に依拠し得る。
【０００４】
点群は、大量のデータを伴い得、そのデータを迅速かつ正確に圧縮（エンコードおよびデコード）することが、非常に着目されていることを理解されたい。故に、点群に関するデータをより効率的および／または効果的に圧縮する方法およびデバイスを提供することが、有利であろう。さらに、過剰な数のコンテキストの管理を要求することなく、コンテキスト適応バイナリエントロピコーディングを使用して実装され得る点群をコーディングする方法およびデバイスを見出すことが、有利であろう。
【発明の概要】
【課題を解決するための手段】
【０００５】
本願は、点群をエンコードおよびデコードする方法、および点群をエンコードおよびデコードするためのエンコーダおよびデコーダを説明する。現在のボリュームのサブボリュームに関する占有パターンを示すビットシーケンスが、エントロピコーディング（例えば、バイナリエントロピコーディング）を使用してコーディングされ得る。エントロピコーディングのための確率（例えば、コンテキスト）が、現在のボリュームの近隣構成とビットシーケンスの以前にコーディングされたビットの部分的シーケンスとに基づき得る。これらの確率は、現在のボリュームの少なくとも１つの近隣ボリュームのサブボリュームに関する占有データにさらに基づき得る。特に、ビットシーケンス内のビットをコーディングするための確率は、少なくとも部分的にサブボリューム近隣構成に基づいて選択され得、サブボリューム近隣構成は、ビットシーケンス内のビットに対応する現在のボリュームのそのサブボリュームの近隣に位置している少なくとも１つの近隣ボリュームのサブボリュームのグループの占有パターンに依存する。
【０００６】
本願を理解するために有用である例において、コンテキスト低減動作を適用するかどうかに関する決定が、行われ得、該当する場合、動作は、利用可能なコンテキストの数を低減させる。例示的コンテキスト低減動作は、以前にコーディングされたビットに関連付けられたサブボリュームによるシールディング、空の近隣構成に関する特別な取り扱い、および統計ベースのコンテキスト合併に基づいて、近隣構成を低減させることを含む。低減は、コーディングの前に適用され得、低減させられたコンテキスト組を使用するための状況が、満たされているかどうかに関する決定が、コーディング中に行われ得る。
【０００７】
一側面において、本願は、圧縮された点群データのビットストリームを発生させるために点群をエンコードする方法を提供し、点群は、親子関係を有する複数のノードを有するツリー構造において定義され、複数のノードは、ボリューム空間の幾何学形状を表し、ボリューム空間は、サブボリュームに再帰的に分割され、点群の点を含み、ボリュームのサブボリュームの占有は、ビットシーケンスを使用して示され、ビットシーケンスの各ビットは、ボリューム内の走査順序におけるそれぞれのサブボリュームの占有を示し、ボリュームは、複数の近隣ボリュームを有する。
方法は、現在のボリュームに関連付けられた現在のノードであって、現在のボリュームは、サブボリュームに分割されており、各サブボリュームは、現在のノードの子ノードに対応する、現在のノードに関して、現在のボリュームのサブボリュームの占有を示すビットシーケンスを決定することを含む。方法は、現在のボリュームのビットシーケンス内の少なくとも１つのビットに関して、現在のボリュームの少なくとも１つの近隣ボリュームのサブボリュームに関する占有データに基づいて、サブボリューム近隣構成を決定することをさらに含み、サブボリューム近隣構成は、ビットシーケンス内のビットに対応する現在のボリュームのそのサブボリュームの近隣に位置している少なくとも１つの近隣ボリュームのサブボリュームのグループの占有パターンに依存する。方法は、ビットシーケンス内のビットのエントロピエンコーディングにおける使用のための確率（例えば、コンテキスト）を選択することをさらに含み、選択することは、少なくとも部分的にサブボリューム近隣構成に基づく。方法は、バイナリエントロピエンコーダを使用して、選択された確率に基づいて、ビットシーケンス内のビットをエントロピエンコーディングし、ビットストリームに関するエンコードされたデータを生成することをさらに含む。
【０００８】
別の側面は、再構成された点群を生成するために圧縮された点群データのビットストリームをデコードする方法に関し、点群は、親子関係を有する複数のノードを有するツリー構造において定義され、複数のノードは、ボリューム空間の幾何学形状を表し、ボリューム空間は、サブボリュームに再帰的に分割され、点群の点を含み、ボリュームのサブボリュームの占有は、ビットシーケンスを使用して示され、ビットシーケンスの各ビットは、ボリューム内の走査順序におけるそれぞれのサブボリュームの占有を示し、ボリュームは、複数の近隣ボリュームを有する。方法は、現在のボリュームに関連付けられた現在のノードであって、現在のボリュームは、サブボリュームに分割されており、各サブボリュームは、現在のノードの子ノードに対応する、現在のノードに関して、かつ、現在のボリュームのビットシーケンス内の少なくとも１つのビットに関して、現在のボリュームの少なくとも１つの近隣ボリュームのサブボリュームに関する占有データに基づいて、サブボリューム近隣構成を決定することを含み、サブボリューム近隣構成は、ビットシーケンス内のビットに対応する現在のボリュームのそのサブボリュームの近隣に位置している少なくとも１つの近隣ボリュームのサブボリュームのグループの占有パターンに依存する。方法は、ビットシーケンス内のビットのエントロピデコーディングにおける使用のための確率（例えば、コンテキスト）を選択することをさらに含み、選択することは、少なくとも部分的にサブボリューム近隣構成に基づく。方法は、バイナリエントロピデコーダを使用して、選択された確率に基づいて、該少なくとも１つのビットをエントロピデコーディングし、ビットストリームから再構成されたビットを生成することをさらに含む。
【０００９】
いくつかの実装において、サブボリューム近隣構成を決定することは、現在のボリュームの少なくとも１つの近隣ボリュームのサブボリュームに関する占有データに基づいて、ビットシーケンス内のビットに対応する現在のボリュームのそのサブボリュームの近隣に位置している少なくとも１つの近隣ボリュームのサブボリュームの数を決定することを伴い得る。該決定することは、閾値関数を決定された数に適用することをさらに伴い得る。
【００１０】
いくつかの実装において、所与のボリューム内の所与のサブボリュームのサブボリューム近隣構成は、所与のサブボリュームの近隣に位置している所与のボリュームの近隣ボリューム内のサブボリュームの占有のパターンに対応し得る。
【００１１】
いくつかの実装において、サブボリューム近隣構成を決定することは、すでにコーディングされている現在のボリュームのそれらの近隣ボリュームのサブボリュームに関する占有データに基づき得る。
【００１２】
いくつかの実装において、確率を選択することは、すでにコーディングされているビットシーケンスのビットの部分的シーケンスおよび／または現在のボリュームの近隣構成にさらに基づき得る。現在のボリュームの近隣構成は、現在のボリュームの近隣ボリュームの占有のパターンに対応し得る。
【００１３】
いくつかの実装において、サブボリューム近隣構成を決定することは、現在のボリュームの少なくとも１つの近隣ボリュームのサブボリュームに関する占有データに基づいて、ビットシーケンス内のビットに対応する現在のボリュームのそのサブボリュームと交差する少なくとも１つの近隣ボリュームの全てのそれらのサブボリュームを決定することを伴い得る。該決定することは、それぞれの重み係数を決定されたサブボリュームに適用することをさらに伴い得、各重み係数は、それぞれの決定されたサブボリュームと、ビットシーケンス内のビットに対応する現在のボリュームのそのサブボリュームとの交差に依存する。該決定することは、決定されたサブボリュームおよびそれらのそれぞれの重み係数に基づいて、ビットシーケンス内のビットに対応する現在のボリュームのそのサブボリュームと交差する少なくとも１つの近隣ボリュームのサブボリュームの重み付きの数を決定することをさらに伴い得る。
【００１４】
いくつかの実装において、占有パターンを示すビットシーケンスを決定するための現在のボリューム内の走査順序は、走査順序における１つのサブボリュームから次のサブボリュームまで、現在のボリュームのすでにコーディングされた近隣ボリュームにおける近隣サブボリュームの最大可能数が、増加しないように決定され得る。
【００１５】
いくつかの実装において、現在のボリュームの所与の近隣ボリュームのサブボリュームの占有データは、所与の近隣ボリュームのサブボリュームの各々に関する占有ステータスを含み得る。
【００１６】
いくつかの実装において、ツリー構造は、オクツリーを表し得る。
【００１７】
いくつかの実装において、エンコーディングの方法は、少なくとも１つのビットのエントロピエンコーディングにおける使用のための確率が、少なくとも部分的にサブボリューム近隣構成に基づいて選択されていることを示すフラグをエンコードすることをさらに含み得る。
【００１８】
いくつかの実装において、デコーディングの方法は、ビットストリームからフラグをデコードすることをさらに含み得、フラグは、少なくとも１つのビットのエントロピデコーディングにおける使用のための確率が、少なくとも部分的にサブボリューム近隣構成に基づいて選択されるべきであることを示す。
【００１９】
別の側面において、本願は、圧縮された点群データのビットストリームを発生させるために点群をエンコードする方法を提供し、点群は、ツリー構造において定義され、ツリー構造は、親子関係を有する複数のノードを有し、複数のノードは、ボリューム空間の幾何学形状を表し、ボリューム空間は、サブボリュームに再帰的に分割され、点群の点を含み、あるボリュームのサブボリュームの占有は、ビットシーケンスを使用して示され、ビットシーケンスの各ビットは、ボリューム内の走査順序におけるそれぞれのサブボリュームの占有を示し、あるボリュームは、複数の近隣ボリュームを有し、近隣ボリュームの占有のパターンは、近隣構成である。方法は、ボリュームのビットシーケンス内の少なくとも１つのビットに関して、コンテキスト低減条件が、満たされていると決定し、それに基づいて、近隣構成のカウントとシーケンス内の以前にコーディングされたビットの数との積より少ないコンテキストを含む低減させられたコンテキスト組を選択することと；少なくとも１つのビットをコーディングするために、近隣ボリュームのうちの少なくともいくつかの占有ステータスおよびビットシーケンスの少なくとも１つの以前にコーディングされたビットに基づいて、低減させられたコンテキスト組からあるコンテキストを選択することと；バイナリエントロピエンコーダを使用して、選択されたコンテキストに基づいて、少なくとも１つのビットをエントロピエンコーディングし、ビットストリームに関するエンコードされたデータを生成することと；選択されたコンテキストを更新することとを含む。
【００２０】
別の側面において、本願は、再構成された点群を生成するために圧縮された点群データのビットストリームをデコードする方法を提供し、点群は、ツリー構造において定義され、ツリー構造は、親子関係を有する複数のノードを有し、複数のノードは、ボリューム空間の幾何学形状を表し、ボリューム空間は、サブボリュームに再帰的に分割され、点群の点を含み、あるボリュームのサブボリュームの占有は、ビットシーケンスを使用して示され、ビットシーケンスの各ビットは、ボリューム内の走査順序におけるそれぞれのサブボリュームの占有を示し、あるボリュームは、複数の近隣ボリュームを有し、近隣ボリュームの占有のパターンは、近隣構成である。デコーディングの方法は、ボリュームのビットシーケンス内の少なくとも１つのビットに関して、コンテキスト低減条件が満たされていると決定し、それに基づいて、近隣構成のカウントとシーケンス内の以前にコーディングされたビットの数との積より少ないコンテキストを含む低減させられたコンテキスト組を選択することと；少なくとも１つのビットをコーディングするために、近隣ボリュームのうちの少なくともいくつかの占有ステータスおよびビットシーケンスの少なくとも１つの以前にコーディングされたビットに基づいて、低減させられたコンテキスト組からあるコンテキストを選択することと；バイナリエントロピデコーダを使用して、選択されたコンテキストに基づいて、少なくとも１つのビットをエントロピデコーディングし、ビットストリームから再構成されたビットを生成することと；選択されたコンテキストを更新することとを含む。
【００２１】
いくつかの実装において、コンテキスト低減条件は、１つ以上の以前にコーディングされた占有ビットが、少なくとも１つのビットに関連付けられたサブボリュームと近隣ボリュームのうちの１つ以上のものとの間に位置付けられる１つ以上のそれぞれのサブボリュームに関連付けられていると決定することを含み得る。
ある場合、これは、以前にエンコードされたビットに関連付けられた４つのサブボリュームが、特定の近隣ボリュームと面を共有すると決定することを含み得る。
【００２２】
いくつかの実装において、コンテキスト低減条件は、ビットシーケンスの少なくとも４つのビットが、以前にコーディングされていると決定することを含み得る。
【００２３】
いくつかの実装において、コンテキスト低減条件が満たされていると決定することは、近隣ボリュームの占有のパターンが、複数の近隣ボリュームが占有されていないことを示すと決定することを含み得る。それらの場合のうちのいくつかにおいて、選択された低減させられたコンテキスト組は、ビットシーケンス内の以前にコーディングされたビットの数に対応するコンテキストの数を含み得、随意に、コンテキストを選択することは、ビットシーケンス内の以前にコーディングされたビットの合計に基づいて、コンテキストを選択することを含み得る。
【００２４】
いくつかの実装において、コンテキスト低減条件は、ビットシーケンス内の少なくともある閾値数のビットが、以前にコーディングされていると決定することを含み得、低減させられたコンテキスト組は、ルックアップテーブルを含み得、ルックアップテーブルは、近隣構成およびビットシーケンス内の以前にコーディングされたビットのパターンの各可能な組み合わせをより少ないコンテキストにマッピングする。いくつかの例において、ルックアップテーブルは、利用可能なコンテキストのそれぞれの対間の距離測定値がある閾値未満であると決定することに基づく複数のクラスへの利用可能なコンテキストの反復的グループ化に基づいて発生され得、複数のクラスにおける各クラスは、より小さい組におけるそれぞれのコンテキストを含み得、近隣構成およびビットシーケンス内の以前にコーディングされたビットのパターンの各可能な組み合わせのための利用可能なコンテキストが、存在し得る。
【００２５】
いくつかの実装において、近隣ボリュームのうちの少なくともいくつかは、ボリュームと少なくとも１つの面を共有する近隣ボリュームである。
【００２６】
さらなる側面において、本願は、エンコーディングおよびデコーディングのそのような方法を実装するように構成されるエンコーダおよびデコーダを説明する。
【００２７】
またさらなる側面において、本願は、実行されると、１つ以上のプロセッサにエンコーディングおよび／またはデコーディングの説明される方法を実施させるコンピュータ実行可能プログラム命令を記憶する非一過性コンピュータ読み取り可能な媒体を説明する。
【００２８】
また別の側面において、本願は、コンピュータによって実行されると、コンピュータにエンコーディングおよび／またはデコーディングの説明される方法を実施させるプログラム命令を含むコンピュータ読み取り可能な信号を説明する。
【００２９】
本願はさらに、トポグラフィ用途、地図作成用途、自動車産業用途、自律運転用途、仮想現実用途、および文化遺産用途等を含むコンピュータ実装用途を説明する。これらのコンピュータ実装用途は、データストリームまたはデータファイルを受信し、圧縮された点群データのビットストリームを取得するためにデータストリームまたはデータファイルを解凍し、上記側面およびその実装に説明されるようにビットストリームをデコードするプロセスを含む。それによって、これらのコンピュータ実装用途は、本願全体を通して説明される側面およびその実装に従って、点群圧縮技法を利用する。
【００３０】
本願は、点群をエンコードおよびデコードする方法、および点群をエンコードおよびデコードするためのエンコーダおよびデコーダをさらに説明する。いくつかの実装において、受信ユニットが、多重化データを受信し、多重化データは、メタデータ、画像、ビデオ、オーディオ、および／またはグラフィック等の他のコーディングされたデータタイプとともにコーディングされた点群データを多重化することによって取得される。受信ユニットは、多重化データをコーディングされた点データと他のコーディングされたデータとに分離するための逆多重化ユニットと、コーディングされた点群データをデコードするための少なくとも１つのデコーディングユニット（またはデコーダ）とを備えている。いくつかの他の実装において、放出ユニットが、多重化データを放出し、多重化データは、メタデータ、画像、ビデオ、オーディオ、および／またはグラフィック等の他のコーディングされたデータタイプとともにコーディングされた点群データを多重化することによって取得される。放出ユニットは、点群データをエンコードするための少なくとも１つのエンコーディングユニット（またはエンコーダ）と、コーディングされた点群データと他のコーディングされたデータとを多重化データに組み合わせるための多重化ユニットとを備えている。
【００３１】
ここで、例として、本願の例示的実施形態を示す付随の図面が、参照されるであろう。
【図面の簡単な説明】
【００３２】
【図１】図１は、例示的点群エンコーダの簡略化ブロック図を示す。
【００３３】
【図２】図２は、例示的点群デコーダの簡略化ブロック図を示す。
【００３４】
【図３】図３は、例示的部分的サブボリュームおよびコーディングのための関連付けられるツリー構造を示す。
【００３５】
【図４】図４は、オクツリーの再帰的分割およびコーディングを図示する。
【００３６】
【図５】図５は、オクツリーからの例示的立方体内の例示的走査パターンを示す。
【００３７】
【図６】図６は、例示的立方体内の例示的占有パターンを示す。
【００３８】
【図７】図７は、点群をエンコードするための一例示的方法をフローチャート形態において示す。
【００３９】
【図８】図８は、例示的オクツリーの一部を図示する。
【００４０】
【図９】図９は、近隣サブボリュームの例を示す。
【００４１】
【図１０】図１０は、近隣ノード間の占有を示す例示的近隣構成を示す。
【００４２】
【図１１】図１１は、親パターン依存コンテキストを使用する点群エントロピエンコーディングのプロセスの一例証的実施形態を図式的に示す。
【００４３】
【図１２】図１２は、近隣構成依存コンテキストを使用する点群エントロピエンコーディングのプロセスの例証的実施形態を示す。
【００４４】
【図１３】図１３は、圧縮された点群データのビットストリームをデコードするための一例示的方法をフローチャート形態において示す。
【００４５】
【図１４】図１４は、エンコーダの例示的簡略化ブロック図を示す。
【００４６】
【図１５】図１５は、デコーダの例示的簡略化ブロック図を示す。
【００４７】
【図１６】図１６は、例示的デカルト座標系および軸まわりの例示的回転および／または反射を示す。
【００４８】
【図１７】図１７は、Ｚ軸まわりの回転の１回または数回の反復下の近隣構成の不変性のクラスを示す。
【００４９】
【図１８】図１８は、垂直反射に関する近隣構成の不変性のクラスを示す。
【００５０】
【図１９】図１９は、回転および反射の両方に関する不変性のクラスを示す。
【００５１】
【図２０】図２０は、３回の回転および反射の下での不変性のクラスを示す。
【００５２】
【図２１】図２１は、占有パターンに関する非バイナリコーディングとカスケードバイナリコーディングとの間の同等性を図示する。
【００５３】
【図２２】図２２は、バイナリコーディングを使用して、ツリーベースの点群コーダにおいて占有パターンをコーディングするための一例示的方法をフローチャート形態において示す。
【００５４】
【図２３】図２３は、例示的エンコーダの一部の簡略化ブロック図を示す。
【００５５】
【図２４】図２４は、近隣スクリーニングに基づく例示的コンテキスト低減動作を図式的に示す。
【００５６】
【図２５】図２５は、近隣スクリーニングに基づく別の例示的コンテキスト低減動作を示す。
【００５７】
【図２６】図２６は、組み合わせられたコンテキスト低減を使用して、占有パターンをバイナリコーディングする方法の一例をフローチャート形態において示す。
【００５８】
【図２７】図２７は、それらの中のいくつかがすでにコーディングされている近隣サブボリュームの例を示す。
【００５９】
【図２８】図２８は、近隣サブボリュームおよび近隣サブボリュームのすでにコーディングされたサブボリュームの例を示す。
【００６０】
【図２９】図２９は、少なくとも部分的にサブボリューム近隣構成に基づいて現在のノードの占有パターンをエンコードする方法をフローチャート形態において示す。
【００６１】
【図３０】図３０は、少なくとも部分的にサブボリューム近隣構成に基づいて現在のノードの占有パターンをデコードする方法をフローチャート形態において示す。
【００６２】
【図３１】図３１は、現在のノードに関連付けられたボリュームが、サブボリュームに分割される様子の例を示す。
【００６３】
【図３２】図３２−３５は、現在のノードの異なるサブノードに関するサブボリューム近隣構成の例を示す。
【図３３】図３２−３５は、現在のノードの異なるサブノードに関するサブボリューム近隣構成の例を示す。
【図３４】図３２−３５は、現在のノードの異なるサブノードに関するサブボリューム近隣構成の例を示す。
【図３５】図３２−３５は、現在のノードの異なるサブノードに関するサブボリューム近隣構成の例を示す。
【００６４】
【図３６】図３６は、現在のノードのサブノードに関するサブボリューム近隣構成を決定する方法をフローチャート形態において示す。
【００６５】
【図３７】図３７は、サブボリューム近隣構成に基づく組み合わせられたコンテキスト低減およびコンテキスト決定を使用した占有パターンをバイナリコーディングする方法の一例をフローチャート形態において示す。
【発明を実施するための形態】
【００６６】
類似する参照番号が、類似するコンポーネントを表すために異なる図において使用されていることもある。
【００６７】
本願の他の側面および特徴が、付随の図と併せて、以下の例の説明の精査から、当業者によって理解されるであろう。
【００６８】
本発明の一側面または実施形態に関連して説明される任意の特徴は、１つ以上の他の側面／実施形態に関しても使用され得る。本発明のこれらおよび他の側面は、本明細書に説明される実施形態から明白となり、それを参照して明瞭にされるであろう。
【００６９】
下記の説明では随時、用語「ノード」、「ボリューム」、および「サブボリューム」は、同義的に使用され得る。ノードは、ボリュームまたはサブボリュームに関連付けられていることを理解されたい。ノードは、内部ノードまたはリーフノードであり得るツリー上の特定の点である。ボリュームまたはサブボリュームは、ノードが表す有界の物理的空間である。用語「ボリューム」は、ある場合、点群を含むために定義される最も大きい有界の空間を指すように使用され得る。ボリュームは、点群データをコーディングするための相互接続されたノードのツリー構造を構築する目的のために、サブボリュームに再帰的に分化され得る。
【００７０】
本願において、用語「および／または」は、リストアップされる要素のうちのいずれか１つのみ、任意の副次的組み合わせ、または要素の全てを含み、必ずしも追加の要素を除外することなく、リストアップされる要素の全ての可能な組み合わせおよび副次的組み合わせに及ぶことを意図している。
【００７１】
本願において、語句「〜または〜のうちの少なくとも１つ」は、リストアップされる要素のうちのいずれか１つのみ、任意の副次的組み合わせ、または要素の全てを含み、必ずしも任意の追加の要素を除外することなく、かつ必ずしも要素の全てを要求することなく、リストアップされる要素のうちのいずれか１つ以上のものに及ぶことを意図している。
【００７２】
点群は、３次元座標系における点の組である。点は、多くの場合、１つ以上のオブジェクトの外面を表すことを意図している。各点は、３次元座標系におけるある場所（位置）を有する。位置は、デカルトまたは任意の他の座標系であり得る３つの座標（Ｘ，Ｙ，Ｚ）によって表され得る。点は、色等の他の関連付けられた属性を有し得、それは、ある場合、Ｒ、Ｇ、ＢまたはＹ、Ｃｂ、Ｃｒ等の３つの成分値でもあり得る。他の関連付けられた属性は、点群データに関する所望の用途に応じて、透明度、反射率、法線ベクトル等を含み得る。
【００７３】
点群は、静的または動的であり得る。例えば、オブジェクトまたはトポグラフィの詳細な走査またはマッピングは、静的点群データであり得る。マシンビジョン目的のための環境のＬｉＤＡＲベースの走査は、点群が（少なくとも潜在的に）経時的に変化し、例えば、ボリュームの各連続的走査を伴う点において、動的であり得る。動的点群は、したがって、点群の時間順のシーケンスである。
【００７４】
点群データは、いくつかの例を挙げると、保存（歴史的または文化的物体の走査）、マッピング、マシンビジョン（自律または半自律自動車等）、および仮想現実システムを含むいくつかの用途において使用され得る。マシンビジョンのような用途に関する動的点群データは、保存目的に関するそれのような静的点群データと全く異なり得る。例えば、自動車ビジョンは、典型的に、高頻度の捕捉を伴うＬｉＤＡＲ（または類似する）センサを通して取得される比較的に低い分解能であり、無色であり、高度に動的な点群を伴う。そのような点群の目的は、人間による消費または視認のためではなく、むしろ、決定プロセスにおける機械オブジェクト検出／分類のためである。例として、典型的なＬｉＤＡＲフレームは、約数千の点を含む一方、高品質仮想現実用途は、数百万の点を要求する。算出速度が、向上し、新しい用途が、見出されるにつれて、経時的により高い分解能データの要求が、存在するであろうことが予期され得る。
【００７５】
点群データは、有用であるが、効果的かつ効率的な圧縮、すなわち、エンコーディングおよびデコーディングプロセスの不足は、採用および展開を妨げ得る。オーディオまたはビデオのような他のデータ圧縮の場合に生じない点群をコーディングすることにおける特定の課題は、点群の幾何学形状のコーディングである。点群は、低密度で取り込まれる傾向があり、それは、点の場所を効率的にコーディングすることをはるかに困難にする。
【００７６】
点群データをコーディングするためのより一般的な機構のうちの１つは、ツリーベースの構造の使用を通したものである。ツリーベースの構造において、点群に関する有界３次元ボリュームは、再帰的にサブボリュームに分化される。ツリーのノードは、サブボリュームに対応する。サブボリュームをさらに分化するかどうかの決定は、ツリーの分解能および／またはサブボリューム内に含まれる任意の点が存在するかどうかに基づき得る。リーフノードが、その関連付けられたサブボリュームが、点を含むかどうかを示す占有フラグを有し得る。分割フラグが、ノードが、子ノードを有するかどうか（すなわち、現在のボリュームが、サブボリュームにさらに分割されているかどうか）を示し得る。これらのフラグは、ある場合、エントロピコーディングされ得、ある場合、予測コーディングが、使用され得る。
【００７７】
一般的に使用されるツリー構造は、オクツリーである。この構造において、ボリューム／サブボリュームは全て、立方体であり、サブボリュームの各分割は、８つのさらなるサブボリューム／サブ立方体をもたらす。別の一般的に使用されるツリー構造は、ＫＤツリーであり、ボリューム（立方体または長方形直方体）が、軸のうちの１つに直交する平面によって再帰的に２つに分化される。オクツリーは、ＫＤツリーの特別な事例であり、ボリュームは、各々が３つの軸のうちの１つに直交する３つの平面によって分化される。これらの例の両方は、立方体または長方形直方体に関するが、しかしながら、本願は、そのようなツリー構造に制限されず、ボリュームおよびサブボリュームは、いくつかの用途において、他の形状を有し得る。ボリュームの区画化は、必ずしも２つのサブボリューム（ＫＤツリー）または８つのサブボリューム（オクツリー）へのものではなく、非長方形形状への分化を含む他の区画を伴うか、または非隣接サブボリュームを伴い得る。
【００７８】
本願は、容易な解説のために、および、それらが自動車用途のための普及した候補ツリー構造であるので、オクツリーに言及し得るが、本明細書に説明される方法およびデバイスは、他のツリー構造を使用して実装され得ることを理解されたい。
【００７９】
ここで、本願の側面による、点群エンコーダ１０の簡略化ブロック図を示す図１が、参照される。点群エンコーダ１０は、ツリー構築モジュール１２を含み、ツリー構築モジュール１２は、点群データを受信し、ツリー（この例において、オクツリー）を生成し、ツリーは、点群を含むボリューム空間の幾何学形状を表し、その幾何学形状における点群からの点の場所または位置を示す。
【００８０】
点群をコーディングするためのオクツリーを作成するための基本的プロセスは、以下を含み得る。
１．座標系内に点群を含む有界ボリューム（立方体）を用いて開始する。
２．ボリュームを８つのサブボリューム（８つのサブ立方体）に分割する。
３．各サブボリュームに関して、サブボリュームが空である場合、サブボリュームを０でマーキングし、その中に少なくとも１つの点が存在する場合、１でマーキングする。
４．１でマーキングされた全てのサブボリュームに関して、分割の最大深度が到達されるまで、それらのサブボリュームを分割するために（２）を繰り返す。
５．最大深度の全てのリーフサブボリューム（サブ立方体）に関して、それが空ではない場合、リーフ立方体を１でマーキングし、そうでなければ、０でマーキングする。
【００８１】
上記のプロセスは、占有＝分割プロセスとして説明され得、分割は、占有を含意し、それを超えていかなるさらなる分割も行われないであろう最大深度または分解能が存在する制約を伴う。この場合、単一のフラグが、ノードが分割されているかどうか、したがって、それが少なくとも１つの点によって占有されているかどうかを示し、逆もまた同様である。最大深度において、フラグは、占有を示し、いかなるさらなる分割も、可能ではない。
【００８２】
いくつかの実装において、分割と占有とは、独立しており、それによって、ノードは、占有されており、ノードは、分割されていることも、分割されていないこともある。この実装の２つの変形例が、存在する。
１．分割後占有。信号フラグが、ノードが分割されているかどうかを示す。分割されている場合、ノードは、点を含まなければならず、すなわち、分割は、占有を含意する。そうでなければ、ノードが分割されるべきではない場合、さらなる占有フラグが、ノードが、少なくとも１つの点を含むかどうかを示す。故に、ノードが、さらに分割されていない、すなわち、それがリーフノードであるとき、リーフノードは、それが、任意の点を含むかどうかを示すために、関連付けられた占有フラグを有していなければならない。
２．占有後分割。単一のフラグが、ノードが占有されているかどうかを示す。占有されていない場合、いかなる分割も、行われない。それが占有されている場合、分割フラグが、ノードがさらに分割されるかどうかを示すためにコーディングされる。
【００８３】
ツリーを構築するために使用される上で説明されるプロセスにかかわらず、それは、フラグ（占有および／または分割フラグ）からビットのシーケンスを生成するために、所定の順序（幅優先または深度優先、および各分化されたサブボリューム内の走査パターン／順序に従って）でトラバースされ得る。これは、ツリーの直列化またはバイナリ化と呼ばれ得る。図１に示されるように、この例において、点群エンコーダ１０は、オクツリーをバイナリ化し、ツリーを表すバイナリ化されたデータのビットストリームを生成するためのバイナライザ１４を含む。
【００８４】
ビットのこのシーケンスは、次いで、圧縮されたビットストリームを生成するために、エントロピエンコーダ１６を使用してエンコードされ得る。エントロピエンコーダ１６は、コンテキストモデル１８を使用して、ビットのシーケンスをエンコードし得、コンテキストモデル１８は、エントロピエンコーダ１６によるコンテキスト決定に基づいてビットをコーディングするための確率を規定する。コンテキストモデル１８は、各ビットまたはビットの定義された組のコーティング後、適応的に更新され得る。エントロピエンコーダ１６は、ある場合、バイナリ算術エンコーダであり得る。バイナリ算術エンコーダは、いくつかの実装において、コンテキスト適応バイナリ算術コーティング（ＣＡＢＡＣ）を採用し得る。いくつかの実装において、算術コーダ以外のコーダも、使用され得る。
【００８５】
ある場合、エントロピエンコーダ１６は、バイナリコーダではないこともあり、代わりに、非バイナリデータに対して動作し得る。ツリー構築モジュール１２からの出力オクツリーデータは、バイナリ形態において評価されていないこともあり、代わりに、非バイナリデータとしてエンコードされ得る。
例えば、オクツリーの場合、それらの走査順序におけるサブボリューム内の８つのフラグ（例えば、占有フラグ）は、２８−１ビット数（例えば、１〜２５５の値を有する整数。何故なら、値０は、分割されたサブボリュームに関して可能ではない（すなわち、それは、それがまったく占有されていない場合、分割されていない）からである）と考えられ得る。この数は、いくつかの実装において、マルチシンボル算術コーダを使用するエントロピエンコーダによってエンコードされ得る。サブボリューム（例えば、立方体）内で、この整数を定義するフラグのシーケンスは、「パターン」と呼ばれ得る。
【００８６】
ビデオまたは画像コーディングの場合のように、点群コーディングは、予測演算を含むことができ、予測演算において、サブボリュームに関するパターンを予測するために、試みが行われる。予測は、空間的（同じ点群内の以前にコーディングされたサブボリュームに依存する）または時間的（点群の時間順のシーケンスにおける以前にコーディングされた点群に依存する）であり得る。
【００８７】
エンコーダ１０に対応する例示的点群デコーダ５０のブロック図が、図２に示される。点群デコーダ５０は、エンコーダ１０によって使用される同じコンテキストモデル５４を使用するエントロピデコーダ５２を含む。エントロピデコーダ５２は、圧縮されたデータの入力ビットストリームを受信し、データをエントロピデコーディングし、圧縮解除されたビットの出力シーケンスを生成する。シーケンスは、次いで、ツリー再構成器５６によって、再構成された点群データに変換される。ツリー再構成器５６は、圧縮解除されたデータとツリーデータがバイナリ化された走査順序の知識とからツリー構造を再構築する。ツリー再構成器５６は、したがって、点群から点の場所を再構成することが可能である（ツリーコーディングの分解能を前提として）。
【００８８】
例示的部分的サブボリューム１００が、図３に示される。この例において、サブボリューム１００は、容易な図示のために２次元において示され、サブボリューム１００のサイズは、１６×１６である。サブボリュームは、４つの８×８サブ正方形に分化されており、それらのうちの２つは、４×４サブ正方形にさらに細分化されており、それらのうちの３つは、２×２サブ正方形にさらに分化され、２×２サブ正方形のうちの１つは、次いで、１×１正方形に分化されていることに留意されたい。１×１正方形は、ツリーの最大深度であり、位置的点データに関する最も微細な分解能を表す。点群からの点は、図においてドットとして示される。
【００８９】
ツリー１０２の構造は、サブボリューム１００の右側に示される。所定の幅優先走査順序において取得された分割フラグ１０４のシーケンスと占有フラグ１０６の対応するシーケンスとが、ツリー１０２の右側に示される。この例証的例において、分割されていない（すなわち、ゼロに設定された関連付けられた分割フラグを有する）各サブボリューム（ノード）のための占有フラグが存在することが、観察されるであろう。これらのシーケンスは、エントロピエンコーディングされ得る。
【００９０】
占有＝分割条件を採用する別の例が、図４に示される。図４は、オクツリー１５０の再帰的分割およびコーディングを図示する。オクツリー１５０の一部のみが、図に示される。ＦＩＦＯ１５２が、このプロセスの幅優先性質を図示するために、分割のためにノードを処理するものとして示される。ＦＩＦＯ１５２は、その親ノード１５６の処理後のさらなる分割のために、ＦＩＦＯ１５２において待ち行列に入れられていた占有ノード１５４を出力する。ツリービルダは、占有ノード１５４に関連付けられたサブボリュームを８つのサブボリューム（立方体）に分割し、それらの占有を決定する。占有は、各サブボリュームのための占有フラグによって示され得る。規定された走査順序において、フラグは、ノード１５４に関する占有パターンと称され得る。パターンは、所定の走査順序におけるサブボリュームに関連付けられた占有フラグのシーケンスを表す整数によって規定され得る。オクツリーの場合、パターンは、範囲［１，２５５］内の整数である。
【００９１】
エントロピエンコーダは、次いで、コンテキストモデルによって規定された確率に基づいて、非バイナリ算術エンコーダを使用して、そのパターンをエンコードする。この例において、確率は、初期分布モデルに基づくパターン分布であり、適応的に更新され得る。一実装において、パターン分布は、事実上、各パターン（１〜２５５の整数）がコーディング中に遭遇した回数のカウンタである。パターン分布は、各サブボリュームが、コーディングされた後に更新され得る。パターン分布は、パターンの相対的頻度が確率査定に密接に関係しており、絶対カウントではないので、必要に応じて、正規化され得る。
【００９２】
パターンに基づいて、占有されている（例えば、フラグ＝１を有する）それらの子ノードは、次いで、（ノードがツリーの最大深度ではないことを条件に）順にさらなる分割のためにＦＩＦＯ１５２に押し込まれる。
【００９３】
ここで、オクツリーからの例示的立方体１８０を示す図５が、参照される。立方体１８０は、８つのサブ立方体に細分化される。フラグを読み取るための走査順序は、８ビットの文字列をもたらし、それは、バイナリにおける整数［１，２５５］として読み取られることができる。走査順序および文字列内の各サブ立方体のフラグの結果として生じるビット位置に基づいて、サブ立方体は、図５に示される値を有する。走査順序は、エンコーダおよびデコーダの両方が、同じ走査順序を使用することを条件に、サブ立方体の任意のシーケンスであり得る。
【００９４】
例として、図６は、４つの「前側」サブ立方体が占有されている立方体１８０を示す。これは、占有されたサブ立方体が、立方体１＋４＋１６＋６４であることに基づいて、パターン８５に対応するであろう。整数パターン番号は、サブ立方体内の占有のパターンを規定する。
【００９５】
オクツリー表現、または、より一般的に、任意のツリー表現は、ツリーが、点座標のより高次のビットを因数に分解する傾向があるので、空間相関を伴う点を表すことにおいて効率的である。オクツリーに関して、深度の各レベルは、精緻化あたり８ビットを犠牲にして、各成分に関して１ビットによってサブボリューム内の点の座標を精緻化する。さらなる圧縮が、各ツリーノードに関連付けられた分割情報（すなわち、パターン）をエントロピコーディングすることによって取得される。このさらなる圧縮は、パターン分布が、均一ではないので、可能であり、すなわち、不均一性は、相関の別の結果である。
【００９６】
現在のシステムにおける１つの潜在的な非効率性は、パターン分布（例えば、ツリーの以前にコーディングされたノードに見られるパターン番号のヒストグラム）が、点群をコーディングする過程にわたって開発されることである。ある場合、パターン分布は、等確率として初期化され得るか、または、ある他の所定の分布に初期化され得るが、１つのパターン分布の使用は、コンテキストモデルが、局所的幾何学的相関を考慮しないこと、または活用しないことを意味する。
【００９７】
欧州特許出願第１８３０５０３７．６号において、本出願人は、特定のノードの近傍の以前にコーディングされたノードからのある占有情報に基づいて、特定のノードの占有のパターンをコーディングすることにおいて使用されるべき利用可能なパターン分布の中から選択する方法およびデバイスを説明した。一例示的実装において、占有情報は、特定のノードに対する親の占有のパターンから取得される。別の例示的実装において、占有情報は、特定のノードの近隣に位置している１つ以上のノードから取得される。欧州特許出願第１８３０５０３７．６号の内容は、参照することによって本明細書に組み込まれる。
【００９８】
ここで、点群をエンコードする一例示的方法２００をフローチャート形態において示す図７が、参照される。この例における方法２００は、占有ノード（サブボリューム）の再帰的分割と、コーディングのためのツリーの幅優先トラバーサルとを伴う。
【００９９】
動作２０２において、エンコーダは、現在のノードに関する占有のパターンを決定する。現在のノードは、各々がそれぞれのサブ立方体に対応する８つの子ノードに分割された占有ノードである。現在のノードに関する占有のパターンは、走査順序における８つの子ノードの占有を規定する。上で説明されるように、占有のこのパターンは、１〜２５５の整数、例えば、８ビットバイナリ文字列を使用して示され得る。
【０１００】
動作２０４において、エンコーダは、確率分布の組の中からある確率分布を選択する。確率分布の選択は、近傍の以前にコーディングされたノード、すなわち、現在のノードの近隣である少なくとも１つのノードからのある占有情報に基づく。２つのノードは、いくつかの実施形態において、それらが、少なくとも１つの面を共有するそれぞれのサブボリュームに関連付けられる場合、近隣に位置している。より広範な定義において、ノードは、それらが、少なくとも１つの縁を共有する場合、近隣に位置している。なおもより広範な定義において、２つのノードは、それらが、少なくとも１つの頂点を共有する場合、近隣に位置している。親パターン（その親パターン内で、現在のノードは、子ノードである）は、現在のノードおよび現在のノードの７つの兄弟ノードに関する占有データを提供する。いくつかの実装において、占有情報は、親パターンである。いくつかの実装において、占有情報は、近隣ノードの組に関する占有データであり、近隣ノードは、異なる親ノードを有するが、現在のノードと同じツリーの深度レベルにおけるノードを含む。ある場合、これらの組み合わせが、可能である。例えば、近隣ノードの組は、いくつかの兄弟ノードと、いくつかの非兄弟ノードとを含み得る。
【０１０１】
確率分布が、選択されると、エンコーダは、動作２０６によって示されるように、選択された確率分布を使用して、現在のノードに関する占有パターンをエントロピエンコーディングする。それは、次いで、占有パターンに基づいて、動作２０８において、選択された確率分布を更新する（例えば、それは、占有パターンに対応するカウントを増加させ得る）。動作２１０において、エンコーダは、コーディングすべきさらなるノードが存在するかどうかを評価し、該当する場合、次のコードをコーディングするために、動作２０２に戻る。
【０１０２】
動作２０４における確率分布選択は、近傍の以前にコーディングされたノードに関する占有データに基づくべきである。これは、エンコーダおよびデコーダの両方が、同じ選択を独立して行うことを可能にする。確率分布選択の下記議論に関して、現在のノード３０２を含む部分的オクツリー３００を図式的に図示する図８が、参照されるであろう。現在のノード３０２は、占有ノードであり、コーディングのために評価されている。現在のノード３０２は、親ノード３０６の８つの子のうちの１つであり、親ノード３０６は、順に、祖父母ノード（図示せず）の子である。現在のノード３０２は、８つの子ノード３０４に分化される。現在のノード３０２に関する占有パターンは、子ノード３０４の占有に基づく。例えば、図示されるように、黒色ドットが、占有ノードである表記法を使用して、占有パターンは、００１１００１０、すなわち、パターン５０であり得る。
【０１０３】
現在のノード３０２は、同じ親ノード３０６を有する兄弟ノード３０８を有する。親パターンは、親ノード３０６に関する占有パターンであり、それは、図示されるように、００１１００００、すなわち、パターン４８であろう。親パターンは、現在のノードに関する占有パターンをエントロピエンコーディングするための好適な確率分布を選択するための基礎としての役割を果たし得る。
【０１０４】
図９は、近隣が、面を共有するノードとして定義される現在のノードを包囲する近隣の組を図示する。この例において、ノード／サブボリュームは、立方体であり、画像の中心における立方体は、各面に１つずつの６つの近隣を有する。オクツリーにおいて、現在のノードの近隣は、３つの兄弟ノードを含むであろうことを理解されたい。それは、同じ親ノードを有していない３つのノードも含むであろう。故に、近隣ノードのうちのいくつかに関する占有データは、それらが兄弟であるので、利用可能であろうが、いくつかの近隣ノードに関する占有データは、それらのノードが以前にコーディングされたかどうかに応じて、利用可能であることも、そうではないこともある。特別な取り扱いが、欠落する近隣に対処するために適用され得る。いくつかの実装において、欠落する近隣は、占有されていると推定され得るか、または、占有されていないと推定され得る。近隣定義は、査定において追加の隣接するサブボリュームを含むために、共有される縁に基づいて、または共有される頂点に基づいて、近隣ノードを含むように拡大され得ることを理解されたい。
【０１０５】
前述のプロセスは、現在のノード３０２の占有データをエントロピコーディングするために、より好適なコンテキストを選択し、より正確な確率を使用するように、現在のノード３０２の占有の可能性を決定する試みにおいて、近傍ノードの占有を調べることを理解されたい。現在のノード３０２と面を共有する近隣ノードの占有ステータスが、そのうちの３つが縁のみを共有し、そのうちの１つが頂点のみを共有するであろう兄弟ノードの占有ステータスに基づくその査定より、現在のノード３０２が、隔離されている可能性が高いかどうかのより正確な査定であり得ることを理解されたい（オクツリーの場合）。しかしながら、兄弟の占有ステータスの査定が、査定のための全ての関連するデータが親ノードの一部である点においてモジュール式である利点を有し、それが実装のためのより小さいメモリフットプリントを有するが、近隣占有ステータスの査定が、将来の近傍ノードをコーディングすることに関連して近隣占有ステータスを決定するとき、それが必要とされる場合、ツリー占有データをバッファリングすることを伴うことを意味する。
【０１０６】
近隣の占有は、占有パターンに関して上で説明されるものと同様、ある値を各近隣に効果的に割り当てる走査順序において読み取られ得る。図示されるように、近隣ノードは、事実上、１、２、４、８、１６、または３２の値をとり、したがって、６４（０〜６３）個の可能な近隣占有構成が、存在する。この値は、本明細書において、「近隣構成」と呼ばれ得る。例として、図１０は、近隣１、２、４、および８が占有され、近隣１６および３２が空である近隣構成１５の例を図示する。
【０１０７】
ある場合、２つの上記基準（親パターンおよび近隣構成）の両方が、適用され得るか、または、それらの間で選択され得る。例えば、近隣が利用可能である場合、確率分布選択は、近隣ノードに基づいて行われ得るが、しかしながら、近隣のうちの１つ以上が、それらが、まだコーディングされていないノードからのものであるので利用可能でない場合、確率分布選択は、兄弟ノード（親パターン）に基づく分析に戻り得る。
【０１０８】
なお別の実施形態において、確率分布選択は、代替として、または加えて、祖父母パターンに基づき得る。言い換えると、確率分布選択は、親ノード３０６の兄弟である叔父ノードの占有ステータスに基づき得る。
【０１０９】
またさらなる実装において、追加のまたは代替査定が、確率分布選択に組み込まれ得る。例えば、確率分布選択は、親ノードの近隣ノードまたは祖父母ノードの近隣ノードの占有ステータスを調べ得る。
【０１１０】
局所的占有ステータスを査定するための上記基準のうちのいずれか２つ以上が、いくつかの実装において、組み合わせて使用され得る。
【０１１１】
非バイナリエントロピコーダの場合、現在のノードに関する占有データは、確率分布を選択することによってコーディングされ得る。確率分布は、現在のノードに関する可能な占有パターンの数に対応するいくつかの確率を含む。例えば、オクツリーの占有パターンをコーディングする場合、２８−１＝２５５個の可能なパターンが、存在し、各確率分布が、２５５個の確率を含むことを意味する。いくつかの実施形態において、確率分布の数は、選択基準（すなわち、近隣、兄弟、および／または親占有データを使用すること）における可能な占有成果の数に等しくあり得る。例えば、オクツリーに関する親パターンが使用すべき確率分布を決定するための選択基準として使用される場合、各々が２５５個の確率を伴う２５５個の確率分布が、存在するであろう。近隣構成の場合、近隣が面を共有するものとして定義される場合、各分布が２５５個の確率を含む６４個の確率分布が、存在するであろう。
【０１１２】
多すぎる分布は、データの不足（すなわち、コンテキスト希薄化）に起因して、緩慢な適応をもたらし得ることを理解されたい。故に、いくつかの実施形態において、類似するパターンは、同じ確率分布を使用するように、グループ化され得る。例えば、別個の分布が、完全占有された事例、垂直に向けられた事例、水平に向けられた事例、殆ど空の事例、および、全ての他の事例に対応するパターンのために使用され得る。これは、確率分布の数を約５つに低減させ得る。パターンの異なるグループ化が、異なる数の確率分布をもたらすために形成され得ることを理解されたい。
【０１１３】
ここで、親パターン依存コンテキストを使用する点群エントロピエンコーディングのプロセス４００の一例証的実施形態を図式的に示す図１１が、参照される。この例において、現在のノード４０２が、８つの子ノードに分割されており、その占有パターン４０４は、非バイナリエントロピエンコーダ４０６を使用してエンコードされるべきである。非バイナリエントロピエンコーダ４０６は、６つの可能な確率分布４０８のうちの１つから選択された確率分布を使用する。選択は、親パターンに基づき、すなわち、選択は、現在のノード４０２に対する親ノードからの占有情報に基づく。親パターンは、１〜２５５の整数によって識別される。
【０１１４】
確率分布の選択は、パターンが、完全ノード（例えば、パターン＝２５５）、水平構造（例えば、パターン＝１７０または８５、Ｚ軸が垂直であると仮定して）、垂直構造（例えば、パターン＝３、１２、４８、１９２）、低密度に取り込まれた分布（例えば、パターン＝１、２、４、８、１６、３２、６４、または１２８、すなわち、兄弟ノードのうちのいずれも占有されていない）、半低密度に取り込まれた分布（現在のノードおよび兄弟ノード間の占有ノードの合計数≦３）、および全ての他の事例に対応するかどうかを査定する決定ツリーであり得る。異なるカテゴリに関して示される例示的パターンは、単に、例である。例えば、「水平」カテゴリは、同じ水平レベル上に２つまたは３つの占有立方体を伴うパターンを含み得る。「垂直」カテゴリは、壁様配置における３つまたは４つの占有立方体を伴うパターンを含み得る。より微細な段階が使用され得ることも理解されたい。例えば、「水平」カテゴリは、各々に関して異なる確率分布を伴う立方体の上部部分において水平に、立方体の底部部分において水平にさらに細分化され得る。ある相関を有する占有パターンの他のグループ化も、行われ、対応する確率分布に配分され得る。近隣構成のコンテキストにおけるパターンのグループ化および近隣構成間の不変性に関するさらなる議論が、下でさらに記載される。
【０１１５】
図１２は、近隣構成依存コンテキストを使用する点群エントロピエンコーディングのプロセス５００の例証的実施形態を示す。この例は、図９に関連して上で使用される近隣および近隣構成付番の定義を仮定する。この例は、各近隣構成が、専用確率分布を有することも仮定し、６４個の異なる確率分布が、存在することを意味する。現在のノード５０２は、エンコードされるべき占有パターン５０４を有する。確率分布は、現在のノード５０２の近隣ノードに基づいて選択される。すなわち、［０，６３］における近隣構成ＮＣが、見出され、関連付けられる確率分布を選択するために使用される。
【０１１６】
いくつかの実施形態において、近隣構成は、２つ以上の近隣構成が、パターンにおける類似性に基づいて、同じ確率分布を使用するようにグループ化され得ることを理解されたい。いくつかの実施形態において、プロセスは、分布のコンテキスト化（選択）のための近隣の異なる配置を使用し得る。全ての３つの軸上の対角線上に隣接する８つの近隣または２つの軸上の対角線上に隣接する１２個の近隣等、追加の近隣が、追加され得る。特定の近隣を回避する実施形態も、例えば、深度優先走査における追加の従属を導入する近隣を使用することを回避するか、または、大きいツリーに関するコーデック状態を低減させるように特定の軸に対する従属のみを導入するために使用され得る。
【０１１７】
この例において、ＮＣ＝０の事例が、具体的様式で取り扱われる。占有されているいかなる近隣も、存在しない場合、それは、現在のノード５０２が、隔離されていることを示し得る。故に、プロセス５００は、現在のノード５０２に対する子ノードのいくつが占有されているかをさらにチェックする。１つの子ノードのみが占有されている場合（すなわち、占有数（ＮＯ）が１に等しい場合）、単一の子ノードが占有されていることを示すフラグが、エンコードされ、ノードに対するインデックスが、３ビットを使用してコーディングされる。２つ以上の子ノードが占有されている場合、プロセス５００は、占有パターンをコーディングするために、ＮＣ＝０確率分布を使用する。
【０１１８】
ここで、エンコードされた点群データのビットストリームをデコードするための一例示的方法６００をフローチャート形態において示す図１３が、参照される。
【０１１９】
動作６０２において、デコーダは、現在のノードの近傍の１つ以上のノードからの占有情報に基づいて、確率分布のうちの１つを選択する。上で説明されるように、占有情報は、現在のノードに対する親ノードからの親パターン、すなわち、現在のノードおよびその兄弟の占有であり得るか、または、それは、兄弟ノードのうちのいくつかを含み得る現在のノードの近隣ノードの占有であり得る。他のまたは追加の占有情報も、いくつかの実装において、使用され得る。
【０１２０】
確率分布が、選択されると、動作６０４において、デコーダは、現在のノードに関する占有パターンを再構成するために、選択された確率分布を使用して、ビットストリームの一部をエントロピデコーディングする。占有パターンは、エンコードされた点群データを再構成するようにツリーを再構成することにおいてデコーダによって使用される。点群データが、デコードされると、それは、ビューをレンダリングすること、セグメント化／分類、または他の用途のため等の使用のために、デコーダから出力され得る。
【０１２１】
動作６０６において、デコーダは、再構成された占有パターンに基づいて、確率分布を更新し、次いで、デコードすべきさらなるノードが、存在する場合、それは、バッファ内の次のノードに移動し、動作６０２に戻る。
【０１２２】
上で説明される方法の例示的実装は、コーディング複雑性の無視できる増加を伴う圧縮改良を提供することを証明している。近隣ベースの選択は、親パターンベースの選択より良好な圧縮性能を示すが、それは、さらなる算出複雑性およびメモリ使用を有する。いくつかの試験において、ＭＰＥＧ点群試験モデルに対する点あたりビットの相対的改良は、４〜２０％である。試験データを用いて到達した分布に基づいて確率分布を初期化することは、均一な分布を用いて初期化することと比較して、改良された性能につながることに留意されたい。
【０１２３】
上記の例のうちのいくつかは、占有パターンを示すために、非バイナリコーダを使用するツリーコーディングプロセスに基づく。バイナリエントロピコーダを採用するための新しい発展が、下でさらに提示される。
【０１２４】
近隣ベースの確率分布選択の一変形例において、分布の数は、近隣の対称性を活用することによって低減させられ得る。近隣を置き換えるか、または、パターン分布を置き換えることによって、対称線を有する構造的に類似する構成は、同じ分布を再使用することができる。言い換えると、同じパターン分布を使用できる近隣構成は、あるクラスにグループ化され得る。２つ以上の近隣を含むクラスは、近隣構成のうちの１つが、それらの他の構成の反射または置き換えを用いて他の近隣構成を事実上包含する点において、本明細書では「近隣構成」と称され得る。
【０１２５】
例として、各々が角近隣パターンの対称性を表す８つの角パターンＮＣ∈［２１，２２，２５，２６，３７，３８，４１，４２］を考慮する。ＮＣのこれらの値は、ノードの特定のパターンであるが、異なるパターンとかなり互いに関係付けられている可能性が高い。さらに、これらの互いに関係があるパターンは、近隣パターンと同じ対称性に従う可能性が高い。例として、その分布の確率を置き換えることによって、ＮＣの複数の事例を表すために単一の分布を再使用する方法が、実装され得る。
【０１２６】
エンコーダが、子ノードの占有に基づいて、ノードのパターン番号を導出する。エンコーダは、近隣構成に従って、分布および置き換え関数を選択する。エンコーダは、置き換え関数に従って、分布内に含まれる確率を再順序付けし、続けて、パターン番号を算術的にエンコードするために、置き換えられた分布を使用する。算術エンコーダによる置き換えられた分布の確率の更新は、逆置き換え関数を用いて元々の分布に戻るようにマッピングされる。
【０１２７】
対応するデコーダが、最初に、近隣構成に従って、同じ分布および置き換え関数を選択する。置き換えられた分布が、エンコーダと同じ様式で生成され、置き換えられた分布は、パターン番号をエントロピデコーディングするために算術デコーダによって使用される。パターン番号を備えているビットは、次いで、各々、対応する子に割り当てられる。
【０１２８】
同じ置き換えが、分布自体のデータを再順序付けすることなく、むしろ、間接レベルを導入し、分布内の所与のインデックスのルックアップを置き換えるために置き換え関数を使用して達成され得ることに留意されたい。
【０１２９】
代替実施形態は、分布ではなく、パターン自体の置き換えを考慮し、エントロピエンコーディングに先立って、またはデコーディングの後にシャッフルを可能にする。そのような方法は、ビット単位シャッフル動作を通した効率的な実装により適している可能性が高い。この場合、分布のいかなる再順序付けも、エンコーダまたはデコーダのいずれによっても実施されず、むしろ、エンコードされたパターン番号の算出は、
【数１】
2022501744.tif 000003
であるように修正され、式中、ｃｉは、ｉ番目の子の占有状態であり、σ（ｉ）は、置き換え関数である。１つのそのような例示的置き換え関数
【数２】
2022501744.tif 000004
は、ＮＣ＝２２に関する分布が、ＮＣ＝４１のそれために使用されることを可能にする。置き換え関数は、
【数３】
2022501744.tif 000005
を使用して、エンコードされたパターン番号から子ノードの占有状態を導出するためにデコーダによって使用され得る。
【０１３０】
要求される置き換えを導出する方法は、近隣構成の回転対称性に基づき得るか、または、特定の軸に沿った反射に基づき得る。さらに、置き換えが、例えば、対称性に従って、全ての位置を置き換えることは、必要ではなく、部分的置き換えが、代わりに使用され得る。例えば、ＮＣ＝２２をＮＣ＝４１に置き換えるとき、対称軸における位置は、置き換えられないこともあり、マッピング
【数４】
2022501744.tif 000006
につながり、式中、位置０、２、４、６は、置き換えられない。他の実施形態において、対１および７のみが、置換される。
【０１３１】
回転対称性および反射に基づく実施形態の例が、以降で、現在の立方体と共通面を共有する６つの近隣を伴うオクツリーの具体的事例に関して提供される。一般性を失うことなく、図１６に示されるように、Ｚ軸は、図を視認する方向に対して垂直に延びている。次いで、「上方」（「下方」）等の近隣の相対的位置は、増加する（減少する）Ｚ方向におけるＺ軸に沿ったものとして理解されるべきである。同じことが、Ｘ軸に沿った左側／右側およびＹ軸に沿った前側／後側に関しても適用される。
【０１３２】
図１６は、Ｚ、Ｙ、およびＸ軸に沿った３つの回転２１０２、２１０４、および２１０６を示す。これらの３つの回転の角度は、９０度であり、すなわち、それらは、それらのそれぞれの軸に沿って４分の１回りの回転を実施する。
【０１３３】
図１７は、Ｚ軸に沿った回転２１０２の１回または数回の反復下の近隣構成の不変性のクラスを示す。この不変性は、ＸＹ平面に属する任意の方向に沿った点群幾何学形状の同じ統計的挙動を表す。これは、特に、ＸＹ平面によって局所的に近似される地表面上を移動する自動車のユースケースに当てはまる。水平構成は、上方の近隣（２２０２）および下方の近隣（２２０４）の占有から独立して、４つの近隣（現在の立方体の左側、右側、前側、および後側に位置する）の所与の占有である。４つの水平構成２２０６、２２０８、２２１０、および２２１２は、回転２１０２下で不変性の同じクラスに属する。同様に、２つの構成２２１４および２２１６は、不変性の同じクラスに属する。回転２１０２下で不変性の６つのクラス（クラス２２１８の組下でグループ化される）のみが、存在する。
【０１３４】
垂直構成は、現在の立方体の左側、右側、前側、および後側に位置する４つの近隣の占有から独立して、２つの近隣２２０２および２２０４の所与の占有である。図１８に示されるように、４つの可能な垂直構成が、存在する。その結果、Ｚ軸に沿った回転２１０２に対する不変性を考慮する場合、６×４＝２４個の可能な構成が、存在する。
【０１３５】
Ｚ軸に沿った反射２１０８が、図１６に示される。図１８に描写される垂直構成２３０２および２３０４は、反射２１０８下で不変性の同じクラスに属する。反射２１０８下で不変性の３つのクラス（クラス２３０６の組下でグループ化される）が、存在する。反射２１０８下の不変性は、上向きおよび下向き方向が、点群幾何学形状統計の観点から本質的に同じに挙動することを意味する。これは、道路上の移動する自動車に関して正確な仮定である。
【０１３６】
回転２１０２および反射２１０８の両方の下での不変性を仮定する場合、２つの組２２１８および２３０６の積からもたらされる不変性の１８個のクラスが、存在する。これらの１８個のクラスは、図１９に表される。
【０１３７】
２つの他の回転２１０４および２１０６下のさらなる不変性を適用すると、２つの構成２４０１および２４０２は、不変性の同じクラスに属する。さらに、２つの構成２４１１および２４１２、２つの構成２４２１および２４２２、３つの構成２４３１、２４３２、および２４３３、２つの構成２４４１および２４４２、２つの構成２４５１および２４５２、および、最後に、２つの構成２４６１および２４６２が、同じクラスに属する。その結果、３つの回転（２１０２、２１０４、および２１０６）および反射２１０８下の不変性は、図２０に示されるような不変性の１０個のクラスにつながる。
【０１３８】
本明細書の上で提供される例から、３つの回転および反射下の不変性を仮定するかどうかにかかわらず、有効近隣構成、すなわち、６４個の近隣構成がグループ化され得るクラスの数は、６４、２４、１８、または１０のいずれかである。
【０１３９】
エントロピコーディングに先立って、パターンは、近隣構成が、不変性クラスのうちの１つに確かに属するので、同じ変換、すなわち、回転および反射を受ける。これは、不変近隣構成とコーディングされたパターンとの間の統計的一貫性を保全する。
【０１４０】
ツリーのトラバーサル中、子ノードが、以前に訪問された同じツリー深度におけるある近隣ノードを有し、従属として必然的に使用され得ることも理解されたい。これらの同じレベルの近隣に関して、親の併置された近隣を参照する代わりに、同じレベルの近隣が、使用され得る。同じレベルの近隣は、親の半分の寸法を有するので、１つの構成が、４つの直接隣接する近隣子ノード（すなわち、現在のノードと面を共有する４つ）のうちのいずれかが占有されている場合、近隣が占有されていると見なす。
【０１４１】
（バイナリコーディングを使用したツリー占有パターンのエントロピーコーディング）
ツリー占有をコーディングするために近隣占有情報を使用する上で説明される技法のうちのいくつかは、欧州特許出願第１８３０５０３７．６号に詳述されている。説明される実施形態は、パターン分布が、近隣占有情報に基づいて選択される占有パターンの非バイナリエントロピコーディングの使用に焦点を当てている。しかしながら、いくつかのインスタンスにおいて、バイナリコーダの使用が、ハードウェア実装の観点からより効率的であり得る。さらに、多くの確率のオンザフライ更新は、高速アクセスメモリおよび算術コーダの中心部内での算出を要求し得る。故に、バイナリ算術コーダを使用して占有パターンをエントロピエンコーディングする方法およびデバイスを見出すことが、有利であり得る。圧縮性能を著しく劣化させることなく、かつ追跡すべき圧倒的な数のコンテキストを有することを防ぎながらそれが行われ得る場合、バイナリコーダを使用することが、有利であろう。
【０１４２】
非バイナリコーダの代わりのバイナリコーダの使用は、以下のエントロピ公式に反映される。
Ｈ（Ｘ１，Ｘ２｜Ｙ）＝Ｈ（Ｘ１｜Ｙ）Ｈ（Ｘ２｜Ｙ，Ｘ１）
【０１４３】
式中、Ｘ＝（Ｘ１，Ｘ２）は、コーディングされるべき非バイナリ情報であり、Ｙは、コーディングのためのコンテキスト、すなわち、近隣構成または選択されたパターン分布である。Ｘの非バイナリコーディングをバイナリコーディングに変換するために、情報（Ｘ１，Ｘ２）は、エントロピを増加させることなく別個にコーディングされ得る情報Ｘ１およびＸ２に分割される。そのために、他方に依存する２つのうちの一方をコーディングしなければならず、ここにおいて、Ｘ２は、Ｘ１に依存する。これは、Ｘにおけるｎビットの情報に拡張されることができる。例えば、ｎ＝３に関して、以下である。
Ｈ（Ｘ１，Ｘ２，Ｘ３｜Ｙ）＝Ｈ（Ｘ１｜Ｙ）Ｈ（Ｘ２｜Ｙ，Ｘ１）Ｈ（Ｘ３｜Ｙ，Ｘ１，Ｘ２）
【０１４４】
占有パターン、すなわち、ビットシーケンスＸが、より長くなるにつれて、シーケンス内の後半のビットをコーディングするためのより多くの条件が、存在することを理解されたい。バイナリコーダ（例えば、ＣＡＢＡＣ）に関して、これは、追跡および管理すべきコンテキストの数の大幅な増加を意味する。例としてオクツリーを使用すると、占有パターンが、８ビットシーケンスｂ＝ｂ０・・・ｂ７である場合、ビットシーケンスは、８つのバイナリ情報ビットｂ０・・・ｂ７に分割され得る。コーディングは、コンテキストを決定するための近隣構成Ｎ（またはＮＣ）を使用し得る。上で説明されるように、不変性のクラスへの近隣構成のグループ化を通して、近隣構成を１０個の有効近隣構成に低減させ得ると仮定すると、Ｎは、｛０，１，２，・・・，９｝に属する整数である。省略のために、「不変近隣構成のクラス」は、本明細書において、随時、単純に、「近隣構成」と称され得るが、この低減させられた数の近隣構成は、不変性に基づく近隣構成のクラスベースのグループ化に基づいて実現され得ることを理解されたい。
【０１４５】
図２１は、バイナリエントロピコーディングのための８つの個々のビットへの８ビットパターンまたはシーケンスの分割を図示する。シーケンスの最初のビットは、近隣構成に基づいてエンコードされ、したがって、合計１０個の利用可能なコンテキストが、存在することに留意されたい。シーケンスの次のビットは、近隣構成と任意の以前にエンコードされたビット、すなわち、ビットｂ０に基づいてエンコードされる。これは、合計２０個の利用可能なコンテキストを伴う：Ｎからの１０とｂ０からの２との積として取得される。最終ビットｂ７は、Ｎからの１０と以前にエンコードされたビットｂ０，・・・，ｂ６によって与えられる部分的パターンからの１２８との積として取得される１，２８０個の利用可能なコンテキストから選択されるコンテキストを使用してエントロピエンコーディングされる。すなわち、各ビットのために、コンテキストの数（すなわち、条件／従属の可能な組み合わせ）は、定義される近隣構成の数（この例において、クラスへの６４個の近隣構成のグループ化に基づいて、１０）と、ｎ−１個の以前にエンコードされたビットの順序付けられたシーケンスからの可能な部分的パターンの数（２ｎ−１によって与えられる）との積である。
【０１４６】
その結果、占有パターンのバイナリコーディングに関連して維持すべき合計２，５５０個のコンテキストが、存在する。これは、追跡すべき過剰に多数のコンテキストであり、相対的不足は、特に、シーケンス内の後半のビットに関して、コンテキスト希薄化により、不良な性能を引き起こし得る。
【０１４７】
故に、一側面において、本願は、コンテキストの組が、低減させられ得るかどうかを決定し、該当する場合、コンテキスト低減動作を適用し、バイナリコーダを使用して占有パターンの少なくとも一部をエントロピコーディングするための利用可能なコンテキストのより小さい組を実現するエンコーダおよびデコーダを開示する。別の側面において、本願は、固定数のコンテキストからの有効コンテキスト選択を実施するために、同じコンテキスト低減動作を使用して状態低減の１回以上の工程を適用するエンコーダおよびデコーダをさらに開示する。いくつかの実装において、コンテキスト低減は、コンテキストおよび／またはアルゴリズム条件文のルックアップテーブルを発生させることにおいて先験的に適用され、それらは、次いで、好適なコンテキストを選択することにおいてエンコーダまたはデコーダによって使用される。低減は、選択すべきルックアップテーブル、または選択されたコンテキストを取得するためにそのルックアップテーブルをインデックス化する／それから選択する方法を決定するために、エンコーダおよびデコーダが評価する試験可能条件に基づく。
【０１４８】
ここで、図２２が、参照され、図２２は、フローチャート形態において、バイナリコーディングを使用してツリーベースの点群コーダにおいて占有パターンをコーディングするための一例示的方法３０００を示す。方法３０００は、エンコーダまたはデコーダによって実装され得る。エンコーダの場合、コーディング動作は、エンコーディングであり、デコーダの場合、コーディング動作は、デコーディングである。エンコーディングおよびデコーディングは、コンテキストベースのエントロピエンコーディングおよびデコーディングである。
【０１４９】
例示的方法３０００は、特定のノード／ボリュームに関する占有パターン、すなわち、ビットシーケンスをエントロピコーディングするためである。占有パターンは、ノード／ボリュームの子ノード（サブボリューム）の占有ステータスを示す。オクツリーの場合、８つの子ノード／サブボリュームが、存在する。動作３００２において、近隣構成が、決定される。近隣構成は、占有パターンがコーディングされるべきボリュームの近隣に位置している１つ以上のボリュームの占有ステータスである。上で議論されるように、近隣構成を決定するための種々の可能な実装が、存在する。いくつかの例において、１０個の近隣構成が、存在し、現在のボリュームに関する近隣構成は、現在のボリュームと面を共有する６つのボリュームの占有に基づいて識別される。
【０１５０】
動作３００４において、現在のボリュームの子ノードに対するインデックスｉが、０に設定される。次いで、動作３００６において、コンテキスト低減が、可能であるかどうかに関する査定が、行われる。異なる可能なコンテキスト低減動作が、下でより詳細に議論される。コンテキスト低減が、可能であるかどうかの査定は、例えば、コーディングされているビットシーケンス内のビット（例えば、インデックス値）に基づき得る。ある場合、コンテキスト低減は、シーケンス内の後半のビットに関して可能であるが、最初の数ビットに関して可能ではないこともある。コンテキスト低減が、可能であるかどうかの査定は、例えば、ある近隣構成が、単純化を可能にし得るので、近隣構成に基づき得る。追加の因子が、いくつかの実装において、コンテキスト低減が、可能であるかどうかを査定することにおいて使用され得る。例えば、バイナリコーダがビットをコーディングするために使用し得るコンテキストの最大数として上境界Ｂｏが提供され得、ビットをコーディングするためのコンテキストの初期数がＢｏより大きい場合、コンテキスト低減が、低減後のコンテキストの数が最大でＢｏになるように適用される（そうでなければ、それは、適用されない）。そのような境界Ｂｏは、Ｂｏ個のコンテキストに対処することが可能なソフトウェアまたはハードウェア実装が、常時、コンテキストの数の観点からオーバーフローを発生させることなく点群をエンコードおよび／またはデコードすることが可能であろうことを確実にするために、エンコーダおよび／またはデコーダ仕様において定義され得る。事前に境界Ｂｏを把握することは、バイナリエントロピコーダによって誘発される複雑性およびメモリフットプリントを予測することも可能にし、したがって、ハードウェアの設計を促進する。Ｂｏに関する典型的な値は、１０〜数百である。
【０１５１】
コンテキスト低減が、利用可能であると決定される場合、動作３００８において、コンテキスト低減動作が、適用される。コンテキスト低減動作は、利用可能なコンテキストの組内の利用可能なコンテキストの数を、より少ない合計コンテキストを含むより小さい組に低減させる。利用可能なコンテキストの数は、コンテキストが、ビットシーケンスからの以前にコーディングされたビットの部分的パターンに依存し得るので、部分的にシーケンス内のビット位置に依存し得ること、すなわち、インデックスに依存し得ることを思い返されたい。いくつかの実装において、低減前の組内の利用可能なコンテキストの数は、以前にコーディングされたビットを伴う可能な部分的パターンの数を乗算された近隣構成の数に基づき得る。インデックスｉにおけるビットに関して、ｉが、０〜ｎに及ぶ場合、部分的パターンの数は、２ｉによって与えられ得る。
【０１５２】
上記のように、いくつかの実装において、コンテキスト低減動作は、コーディングに先立って実行され、結果として生じる低減させられたコンテキスト組は、コーディング動作中のエンコーダおよびデコーダによる使用のために利用可能なコンテキスト組である。コーディング中の低減させられたコンテキスト組の使用および／または選択は、コンテキストの数が低減させられることが可能であることを決定するための動作３００６において評価される条件に対応するそれらの低減させられた組の使用に先行する１つ以上の条件の評価に基づき得る。例えば、低減させられたコンテキスト組の使用を可能にする特定の近隣構成の場合、エンコーダおよび／またはデコーダは、近隣構成条件が満たされているかどうかを最初に決定し、次いで、該当する場合、対応する低減させられたコンテキスト組を使用し得る。
【０１５３】
動作３０１０において、ビットｂｉに関するコンテキストが、決定され、すなわち、ビットｂｉに関するコンテキストが、近隣構成と、ビットシーケンス内の以前にコーディングされたビットの部分的パターンとに基づいて、利用可能なコンテキストの組（または存在する場合、低減させられた組）から選択される。現在のビットは、次いで、動作３０１２において、選択されたコンテキストを使用して、バイナリコーダによってエントロピエンコーディングされる。
【０１５４】
動作３０１４において、インデックスｉが、現在コーディングされているビットがシーケンス内の最後のビットである場合、すなわち、ｉが、ｉｍａｘに等しいことを示す場合、コーディングプロセスは、次のノードに進む。そうでなければ、インデックスｉは、動作３０１６において増加させられ、プロセスは、動作３００６に戻る。
【０１５５】
いくつかの実装において、コンテキスト選択は、近隣構成に依存しないこともあることを理解されたい。ある場合、それは、存在する場合、シーケンス内の以前にコーディングされたビットの部分的パターンにのみ依存し得る。
【０１５６】
例示的エンコーダ３１００の一部の簡略化ブロック図が、図２３に図示される。この図示において、対応するボリュームが子ノードに区画され、点群の幾何学形状を保持するＦＩＦＯバッファ３１０４を通して循環させられるにつれて占有パターン３１０２が取得されることを理解されたい。占有パターン３１０２のコーディングは、パターンの各ビットのために１つずつのバイナリコーダ３１０６のカスケードを伴うものとして図示される。利用可能なコンテキストを利用可能なコンテキストのより小さい組に低減させるように動作するコンテキスト低減動作３１０８が、バイナリコーダ３１０６のうちの少なくともいくつかの間にある。
【０１５７】
図２３は、一連のバイナリコーダ３１０６を図示するが、いくつかの実装において、１つのみのバイナリコーダが、使用される。２つ以上のコーダが使用される場合、コーディングは、（部分的に）並列化され得る。ビットシーケンス内の先行するビットへの１つのビットのコンテキスト依存を所与として、パターンのコーディングは、必ずしも完全に並列化されることができないが、ある程度の並列化および速度改良を達成するために、あるパターンに関して、カスケーディングバイナリコーダを使用することを通してパイプライニングを改良することが、可能であり得る。
【０１５８】
（サブボリューム近隣構成に基づくコンテキスト決定）
上で、ビットシーケンス内の現在の占有ビットｂｉに関するコンテキスト（すなわち、エントロピコーディングのために使用されるであろうそれぞれのエントロピコーダに関連付けられる確率）は、近隣構成およびビットシーケンス内の以前にコーディングされたビットの部分的パターンに基づいて、利用可能なコンテキストの組（または存在する場合、低減させられた組）から決定されている（すなわち、選択されている）。現在のビットは、次いで、選択されたコンテキスト（確率）を使用して、バイナリコーダによってエントロピエンコーディングされる。加えて、または代替として、現在のノードの近隣ノードの（例えば、すでにコーディングされた占有近隣ノードの）子ノードの占有ステータスが、現在のノードのビットシーケンス内のビットｂｉをコーディングするためのコンテキスト（例えば、確率）を決定するために考慮されることができる。コンテキストを決定するために現在のノードの近隣ノードの子ノードの占有ステータスを考慮する実装は、次に説明されるであろう。
【０１５９】
いくつかの実装において、ビットシーケンスをエンコードまたはデコードする方法は、コンテキストを決定するために、現在のノードの近隣ノードの子ノードの占有ステータスの知識を使用し得る。すなわち、すでにコーディングされた占有近隣ノード（可能性として、全ての近隣ノードまたは全てのすでにコーディングされた近隣ノード）のサブノードの占有の知識が、現在のノードの占有ビットｂｉをコーディングするエントロピコーダを（可能性として、近隣構成Ｎ、例えば、１０個に低減させられた構成Ｎ１０と一緒に）駆動するために使用され得る。
【０１６０】
以下において、コンテキストを決定するために、現在のノードの近隣ノードの子ノードの占有ステータスの知識を使用するビットシーケンスをエンコードまたはデコードする方法が、限定を意図することなく、オクツリーと、オクツリーのノードに関連付けられたボリュームとしての立方体とを参照して説明されるであろう。
【０１６１】
ここで、現在のノード（すなわち、その関連付けられたボリュームまたは現在のボリューム）４０００と、その６つの近隣４０１０、４０２０、４０３０、４０４０、４０５０、および４０６０とを示す図２７が、参照される。オクツリーのこの例に関して、現在のノードの近隣は、その関連付けられたボリュームが現在のボリュームと面を共有する（ツリーの同じレベルまたは深度における）それらのノードとして定義され得る。互いに面を共有するボリュームは、互いに触れているボリュームとも称され得る。近隣ノードの他の定義も、同様に実行可能である。例えば、現在のノードの近隣は、その関連付けられたボリュームが、現在のボリュームと縁（または頂点）を共有する（ツリーの同じレベルまたは深度における）それらのノードであり得る。一般に、ツリー構造にかかわらず、近隣ノードは、その関連付けられたボリュームが、現在のボリューム（例えば、少なくともある所定の空ではない組における）と交差する（ツリーの同じレベルまたは深度における）それらのノードであり得る。
【０１６２】
本願の文脈において、互いに交差するボリューム（ノード）は、隣接するボリューム（ノード）であることを理解されたい。故に、用語「〜との交差を有する」および「〜に隣接する」は、本願の文脈において同義と見なされ得る。
【０１６３】
着目すべきこととして、表現「ボリューム」と「サブボリューム」とは、各サブボリューム自体がサブボリュームに細分化され得るボリュームであるという意味で、若干同義的に使用され得る。いずれの場合も、ボリューム／サブボリューム関係は、関与するノード／ボリューム間の親子関係の規定によって明確であると理解される。
【０１６４】
ノードの走査順序は、幅優先で、増加するＸ順に、次いで、増加するＹ順に、最後に、増加するＺ順に実施されると仮定される。そうすることによって、最も低いＸ座標（すなわち、近隣４０１０）、最も低いＹ座標（すなわち、近隣４０３０）、および最も低いＺ座標（すなわち、近隣４０５０）を有する３つの近隣が、すでにコーディングされている。したがって、これらの３つの近隣のうちの１つが、占有されている場合、占有近隣に関連付けられた占有サブボリュームの構成が、既知である。この例は、増加するＸ順、次いで、増加するＹ順、最後に、増加するＺ順における走査順序を定義するが、他の幅優先走査順序も、この目的のために使用されることができる。使用される特定の幅優先走査順序にかかわらず、３つの近隣は、３Ｄ空間の境界に位置しない現在のノードに関してすでにコーディングされているであろう。
【０１６５】
ここで、全ての３つのすでにコーディングされた近隣（すなわち、近隣４０１０、４０３０、および４０５０）が占有されている例示的現在のボリュームを示す図２８が、参照される。近隣４０１０の占有サブボリュームは、サブボリューム４０１１、４０１２、および４０１３であり、近隣４０３０の占有サブボリュームは、サブボリューム４０３１、４０３２、および４０３３であり、近隣４０５０の占有サブボリュームは、サブボリューム４０５１および４０５２である。この例において、全ての３つのすでにコーディングされた近隣が、占有されているが、一般に、それらのうちの２つまたは１つのみが、実際に占有されていことも、さらにはそれらのうちのいずれも、実際に占有されないこともあることを理解されたい。
【０１６６】
すでにコーディングされた占有近隣の占有サブボリュームの知識は、サブボリューム近隣構成の組（例えば、現在のボリュームの各サブボリュームに関して１つ）を定義するために使用されることができる。サブボリューム近隣構成は、現在のボリュームのビットシーケンスのビットｂｉをエントロピコーディングするためのコンテキスト（例えば、それぞれのバイナリエントロピコーダに関連付けられる確率）を選択するための基準として使用されることができる。現在のボリュームの所与のサブボリュームに関するサブボリューム近隣構成を決定することは、すでにコーディングされている現在のボリュームのそれらの近隣ボリュームのサブボリュームに関する占有データに基づき得る。さらに、現在のボリューム内の所与のサブボリュームのサブボリューム近隣構成は、所与のサブボリュームの近隣に位置している所与のボリュームの近隣（すでにコーディングされた）ボリューム内の全てのそれらのサブボリュームの占有のパターンに対応し得る。
【０１６７】
ここで、圧縮された点群データのビットストリームを発生させるために点群をエンコードする方法４１００の例をフローチャート形態において示す図２９が、参照される。点群は、親子関係を有する複数のノードを有するツリー構造において定義され、複数のノードは、ボリューム空間の幾何学形状を表し、ボリューム空間は、サブボリュームに再帰的に分割される。ボリュームのサブボリュームの占有は、ビットシーケンスを使用して示され、ビットシーケンスの各ビットは、ボリューム内の走査順序におけるそれぞれのサブボリュームの占有を示し、ボリュームは、複数の近隣ボリュームを有する。下で説明される方法４１００の動作の各々は、サブボリュームに分割された現在のボリュームに関連付けられた現在のノードに関して実施され、各サブボリュームは、現在のノードの子ノードに対応する。動作４１１０において、現在のボリュームのサブボリュームの占有を示すビットシーケンスが、決定される。次いで、現在のボリュームのビットシーケンス内の少なくとも１つのビットに関して、以下の動作が、実施される。動作４１２０において、サブボリューム近隣構成が、現在のボリュームの少なくとも１つの近隣ボリュームのサブボリュームに関する占有データに基づいて決定される。サブボリューム近隣構成は、現在のボリュームの所与のサブボリュームの近隣に位置している少なくとも１つの近隣ボリュームのサブボリュームのグループの占有パターンに依存する。現在のボリュームの所与のサブボリュームは、ビットシーケンス内のビットに対応するそのサブボリュームである。例えば、ビットシーケンスのビットｂｉに関して、所与のサブボリュームは、該ビットｂｉに対応する現在のボリュームのそのサブボリュームであり、すなわち、所与のサブボリュームは、ビットｂｉが占有ステータスを示すそのサブボリュームである。サブボリューム近隣構成は、次いで、現在のボリュームの考慮されるサブボリュームに関して決定される。着目すべきこととして、動作４１２０は、ビットシーケンスのビットのうちのいずれか、いくつか、または全てに関して実施され得る。動作４１３０において、ビットシーケンス内のビットのエントロピエンコーディングにおける使用のための確率（例えば、コンテキスト）が、選択される。ここにおいて、選択することは、少なくとも部分的にビットシーケンス内のビットに対応するサブボリュームに関して決定されているサブボリューム近隣構成に基づく。動作４１４０において、ビットシーケンス内のビットは、ビットストリームに関するエンコードされたデータを生成するために、バイナリエントロピエンコーダを使用して、選択された確率（例えば、コンテキスト）に基づいて、エントロピエンコーディングされる。
【０１６８】
いくつかの実装において、方法４１００はさらに、選択された確率（例えば、コンテキスト）を更新する動作（図２９に図示せず）を含み得る。
【０１６９】
上で説明されているように、現在のノードの占有パターンは、１つ以上のバイナリエントロピコーダのカスケードを使用して、エントロピコーディングされ得る。故に、方法４１００の動作４１３０は、ビットシーケンスの少なくとも１つのビットに関して、少なくとも部分的にエントロピコーディングされるべきビットに対応するサブボリュームに関して決定されているサブボリューム近隣構成に基づいて、そのビットをコーディングするためのそれぞれの確率（および対応して、関連付けられたエントロピコーダ）を選択することを伴い得る。加えて、この確率を選択することは、ビットシーケンスのすでにコーディングされたビットの部分的シーケンスおよび／または現在のボリュームに関する近隣構成に基づき得る。換言すると、ビットシーケンスの各ビットのために、コンテキストが、サブボリューム近隣構成に基づいて選択され得、加えて、コンテキストを選択することは、ビットシーケンスのすでにコーディングされたビットの部分的シーケンスおよび／または現在のボリュームに関する近隣構成に基づき得る。コンテキストの観点から、方法４１００の動作４１３０は、少なくとも部分的にコーディングされるべきビットに対応するサブボリュームに関して決定されているサブボリューム近隣構成に基づいて、ビットをエントロピコーディングするためのコンテキストを選択することに関すると考えられ得る。次いで、いくつかの実装において、このコンテキストは、動作４１４０後に更新され得る。
【０１７０】
ここで、再構成された点群を生成するために圧縮された点群データのビットストリームをデコードする方法４２００の例をフローチャート形態において示す図３０が、参照される。点群は、親子関係を有する複数のノードを有するツリー構造（例えば、オクツリー）において定義され、複数のノードは、ボリューム空間の幾何学形状を表し、ボリューム空間は、サブボリュームに再帰的に分割され、点群の点を含む。ボリュームのサブボリュームの占有は、ビットシーケンスを使用して示され、ビットシーケンスの各ビットは、ボリューム内の走査順序におけるそれぞれのサブボリュームの占有を示し、ボリュームは、複数の近隣ボリュームを有する。下で説明される方法４２００の動作の各々は、各サブボリュームが、現在のノードの子ノードに対応するサブボリュームに分割された現在のボリュームに関連付けられた現在のノードに関して、かつ現在のボリュームのビットシーケンス内の少なくとも１つのビットに関して実施される。動作４２１０において、サブボリューム近隣構成が、現在のボリュームの少なくとも１つの近隣ボリュームのサブボリュームに関する占有データに基づいて決定される。サブボリューム近隣構成は、現在のボリュームの所与のサブボリュームの近隣に位置している少なくとも１つの近隣ボリュームのサブボリュームのグループの占有パターンに依存し、所与のサブボリュームは、ビットシーケンス内のビットに対応する現在のボリュームのそのサブボリュームである。例えば、ビットシーケンスのビットｂｉに関して、所与のサブボリュームは、該ビットｂｉに対応する現在のボリュームのそのサブボリュームであり、すなわち、所与のサブボリュームは、ビットｂｉが占有ステータスを示す考慮されるそのサブボリュームである。サブボリューム近隣構成は、次いで、現在のボリュームの考慮されるサブボリュームに関して決定される。着目すべきこととして、動作４１２０は、ビットシーケンスのビットのうちのいずれか、いくつか、または全てに関して実施され得る。動作４２２０において、ビットシーケンス内のビットのエントロピデコーディングにおける使用のための確率（例えば、コンテキスト）が、選択される。この選択することは、少なくとも部分的にサブボリューム近隣構成に基づく。動作４２３０において、該少なくとも１つのビットは、ビットストリームから再構成されたビットを生成するために、バイナリエントロピデコーダを使用して、選択された確率（例えば、コンテキスト）に基づいて、エントロピデコーディングされる。
【０１７１】
いくつかの実装において、方法４２００は、選択された確率（例えば、コンテキスト）を更新する動作（図３０に図示せず）をさらに含み得る。
【０１７２】
エンコーディングに関するものと同じ様式で、方法４２００の動作４２２０は、占有パターンを表すビットシーケンスの少なくとも１つのビットに関して、少なくとも部分的にエントロピコーディングされるべきビットに対応するサブボリュームに関して決定されているサブボリューム近隣構成に基づいて、そのビットをコーディングするためのそれぞれの確率（および対応して、関連付けられたエントロピコーダ）を選択することを伴い得る。加えて、この確率を選択することは、ビットシーケンス内のすでにコーディングされたビットの部分的シーケンスおよび／または現在のボリュームに関する近隣構成に基づき得る。換言すると、ビットシーケンスの各ビットのために、コンテキストが、サブボリューム近隣構成に基づいて選択され得、加えて、コンテキストを選択することは、ビットシーケンス内のすでにコーディングされたビットの部分的シーケンスおよび／または現在のボリュームに関する近隣構成に基づき得る。コンテキストの観点から、方法４２００の動作４２２０は、少なくとも部分的にコーディングされるべきビットに対応するサブボリュームに関して決定されているサブボリューム近隣構成に基づいて、ビットをエントロピコーディングするためのコンテキストを選択することに関すると考えられ得る。次いで、いくつかの実装において、このコンテキストは、動作４２３０後に更新され得る。
【０１７３】
サブボリューム近隣構成を決定する例が、本明細書の下で説明されるであろう。
【０１７４】
いくつかの実装において、それは、現在のボリュームの少なくとも１つの近隣ボリュームのサブボリュームに関する占有データに基づいて、ビットシーケンス内のビットに対応する現在のボリュームのサブボリュームの近隣に位置している少なくとも１つの近隣ボリュームの（可能性として、全ての近隣ボリュームまたは全てのすでにコーディングされた近隣ボリュームの）サブボリュームの数を決定することを伴い得る。この数は、下記でＮＴ［ｉ］と称され、ｉは、現在のボリュームのサブボリューム（またはビットシーケンス内の対応するビットｂｉ）を示すインデックスである。この意味で、方法４１００の動作４１３０および方法４２００の動作４２２０における確率を選択することは、少なくとも部分的に数ＮＴ［ｉ］に基づいて確率を選択することに関すると考えられ得る。
【０１７５】
いくつかの実装において、サブボリューム近隣構成を決定することは、閾値関数を決定された数ＮＴ［ｉ］に適用することをさらに伴い得る。
【０１７６】
８つのサブボリューム（サブノード）ＳＢ０−ＳＢ７への現在のボリューム（現在のノード）Ｂの分割の例を示す図３１が、参照される。この例に関して、近隣ボリュームは、互いに面を共有する（すなわち、互いに「触れている」）ボリュームとして定義される。現在のボリュームＢのサブボリューム（または子ボリューム）の各々は、現在のボリュームの近隣の３つのサブボリュームの近隣に位置している（それによって触れられている）。各サブボリュームＳＢ０−ＳＢ７（ＳＢｉ，ｉ＝０，・・・，７）に関するサブボリューム近隣構成は、現在のボリュームのそれぞれのサブボリュームＳＢｉに触れているサブボリュームのグループの占有パターンに依存し得る。現在のボリュームの占有近隣の占有パターンに応じて、現在のボリュームの占有近隣の最大３つの占有サブボリュームが、それぞれのサブボリュームＳＢｉの近隣に位置し得る（またはそれに触れ、触れていること／近隣に位置していることは、面を共有することとして定義される）。
【０１７７】
近隣ボリュームの上記の定義を使用する現在のボリュームの所与のサブボリュームＳＢｉに関するサブボリューム近隣構成を決定する一例示的プロセスは、それぞれのサブボリュームＳＢｉに触れている現在のボリュームの近隣内のサブボリュームの数０≦ＮＴ［ｉ］≦３を決定することを伴う。換言すると、現在のボリュームのサブボリュームＳＢｉに関する数ＮＴ［ｉ］は、サブボリュームＳＢｉの近隣に位置している（それに触れている、すなわち、それと面を共有する）、現在のボリュームの近隣内の占有サブボリュームの数を示す。
【０１７８】
上記の定義によって、現在のボリュームのサブボリュームＳＢｉに関する整数０≦ＮＴ［ｉ］≦３は、現在のボリュームの（すでにコーディングされた）近隣内に位置し、面においてサブボリュームＳＢｉと交差する（すなわち、サブボリュームＳＢｉに触れている）占有サブボリューム（子ノード）の数である。
【０１７９】
好ましい実装において、近隣は、現在の立方体と面を共有する６つの近隣であり、占有近隣の子ノードは、それらの面のうちの１つが、サブノードＳＢｉに関連付けられた立方体の面内に含まれる場合（すなわち、占有近隣の子ノードが、面においてサブノードＳＢｉと交差する場合）、かつその場合にのみ、サブノードＳＢｉの近隣に位置していると考えられる。それにもかかわらず、本願が、オクツリーの前述の実装、および、その関連付けられたボリュームが、現在の同じレベルのノードの関連付けられたボリュームと面を共有するノードとしての近隣の定義に限定されないことを理解されたい。実際に、本願は、点群の幾何学形状を表す任意のツリーに関する。さらに、現在のノードの近隣は、概して、現在のノードと（ツリーのルートノードに対して）同じ深度またはレベルにあり、その関連付けられたボリュームが、（例えば、少なくとも所定の空ではない組における）現在のノードのボリュームと交差するノードとして定義され得る。ノードに関連付けられたボリュームが、立方体であるツリー（例えば、オクツリー等）において、この交差は、面、縁、頂点、または点の任意の空ではない組であり得る。
【０１８０】
同様に、現在のノードの近隣の占有子ノードは、子ノードに関連付けられたボリュームとサブノードＳＢに関連付けられたボリュームとの交差が点の空ではない組である場合、現在のノードＢのサブノードＳＢと交差すると考えられる。再び、ノードに関連付けられたボリュームが、立方体であるツリー（例えば、オクツリー等）において、この交差は、面、縁、頂点、または点の任意の空ではない組であり得る。
【０１８１】
近隣に関する近隣定義と近隣の子ノードに関する近隣定義とが異なり得ることも理解されたい。例えば、オクツリーにおいて、近隣は、現在のノードと面を共有するノードとして定義され得、したがって、６つの近隣につながる；しかしながら、数ＮＴ［ｉ］は、サブノードＳＢｉと少なくとも縁を共有するすでにコーディングされた占有近隣の子ノードの数をカウントし得る。それにもかかわらず、好ましい実装は、近隣および近隣の子ノードの両方に関して「〜と面を共有する」としての交差の定義を使用し得る。
【０１８２】
上記のように、近隣ノードまたはボリュームの異なる定義が、本願の文脈において使用され得る。近隣定義に応じて、数ＮＴ［ｉ］に関する可能な範囲は、０≦ＮＴ［ｉ］≦３（近隣ボリュームが面を共有するか、または、「触れている」ボリュームとして定義される場合に適用される）と異なるであろう。例えば、近隣ボリュームが、少なくとも縁において互いに交差するボリュームとして定義される場合、０≦ＮＴ［ｉ］≦１２を有するであろう。同様に、近隣ボリュームが、少なくとも頂点において互いに交差するボリュームとして定義される場合、０≦Ｔ［ｉ］≦１９を有するであろう。
【０１８３】
上記のように、現在のボリュームの占有近隣の占有パターンに応じて、現在のボリュームの占有近隣の最大３つの占有サブボリュームが、近隣ボリュームが面を共有するボリュームである近隣定義を使用して、それぞれのサブボリューム（サブノード）ＳＢｉの近隣に位置し得る。図３２は、現在のノードＢのサブノードＳＢ０に関して、図２７を参照して上で説明される走査順序を仮定して、サブノードＳＢ０に関連付けられたサブボリュームの近隣に位置し得る（すなわち、面においてサブノードＳＢ０に関連付けられたサブボリュームと交差し得る）近隣ノードの最大３つの占有子ノードが、存在することを示す。８つの可能な占有子ノード構成と、０、１、２、または３のいずれかである関連付けられる値ＮＴ［０］とが、図に描写される。
【０１８４】
図３３は、現在のノードＢのサブノードＳＢ１に関して、サブノードＳＢ１に関連付けられたサブボリュームの近隣に位置し得る（すなわち、面において交差する）近隣ノードの最大２つの占有子ノードが、存在することを示す。４つの可能な占有子ノード構成と、０、１、または２のいずれかである関連付けられる値ＮＴ［１］とが、図に描写される。
【０１８５】
図３４は、現在のノードＢのサブノードＳＢ３に関して、サブノードＳＢ３に関連付けられたサブボリュームの近隣に位置し得る（すなわち、面において交差する）近隣ノードの最大１つの占有子ノードが、存在することを示す。２つの可能な占有子ノード構成と、０または１のいずれかである関連付けられる値ＮＴ［３］とが、図に描写される。
【０１８６】
図３５は、現在のノードＢのサブノードＳＢ７に関して、サブノードＳＢ７に関連付けられたサブボリュームの近隣に位置し得る（すなわち、面において交差する）近隣ノードのいかなる占有子ノードも、存在しないことを示す。したがって、図に描写されるような１つのみの可能な占有子ノード構成が、存在し、すなわち、ＮＴ［７］の値は、必然的に０である。この場合、子ノードは、サブノードＳＢ７の占有情報のコーディングにおいて、コンテキスト決定のためのいかなる特別な情報も提供しない。
【０１８７】
数ＮＴ［ｉ］が、現在のノードのサブノードＳＢｉに関して決定されると、サブボリューム近隣構成値Ｃ［ｉ］が、閾値関数を適用することによってＮＴ［ｉ］から決定され得る。閾値関数は、ある閾値までのその入力値を出力し、閾値を超える入力値に関して閾値を出力する関数であり得る。例えば、閾値は、２に設定され得、したがって、
・ＮＴ（ｉ）＝０である場合、Ｃ［ｉ］＝０
・ＮＴ（ｉ）＝１である場合、Ｃ［ｉ］＝１
・ＮＴ（ｉ）＞＝２である場合、Ｃ［ｉ］＝２
この閾値化動作において、Ｃ［０］に関する可能な値は、０、１、または２を含む一方、Ｃ［７］は、常時、０である。他の閾値化動作および閾値関数も、同様に実行可能であることを理解されたい。特に、他の近隣定義に関して、数ＮＴ［ｉ］に関する値範囲は、０≦ＮＴ［ｉ］≦３と異なり、異なる閾値が、適用され得る。
【０１８８】
そして、方法４１００の動作４１３０および方法４２００の動作４２２０における確率（例えば、コンテキスト）を選択することは、少なくとも部分的にサブボリューム近隣構成値Ｃ［ｉ］に基づいて確率を選択することに関し得る。この意味で、サブボリューム近隣構成値Ｃ［ｉ］は、サブボリューム近隣構成に対応すると考えられ得る。
【０１８９】
ここで、現在のボリュームのサブボリュームに関する数ＮＴ［ｉ］およびサブボリューム近隣構成値Ｃ［ｉ］を決定する方法４３００の一例をフローチャート形態において示す図３６が、参照される。すなわち、方法４３００は、現在のボリュームのサブボリュームに対して動作する。動作４３１０において、数ＮＴ［ｉ］が、現在のボリュームの全てのサブボリュームに関してゼロに初期化される。次いで、動作４３２０において、現在のボリュームの近隣が、選択される。動作４３３０において、選択された近隣が占有されているかどうかが、チェックされる。選択された近隣が、占有されている（動作４３３０において「はい」である）場合、方法は、動作４３４０に進む。動作４３４０において、選択された占有近隣がすでにコーディングされているかどうかが、チェックされる。該当する（動作４３４０において「はい」である）場合、方法は、動作４３５０に進む。動作４３５０において、近隣の各占有子ノード（サブボリューム）に関して、その子ノードの近隣に位置している（近隣定義に応じて、例えば、少なくとも所定の空ではない組において交差される）現在のボリュームのサブボリュームが、決定される。子ノードの近隣に位置している現在のボリュームの各サブボリュームに関して、対応する数ＮＴ［ｉ］が、１つ増加させられる。続けて、方法は、動作４３６０に進む。選択された近隣が占有されていない（動作４３３０において「いいえ」である）か、または、まだコーディングされていない（動作４３４０において「いいえ」である）場合、方法は、同様に動作４３６０に進む。動作４３６０において、まだ選択されていない現在のボリュームの近隣が存在するかどうかが、チェックされる。該当する（動作４３６０において「はい」である）場合、方法は、現在のボリュームの次の近隣を選択するために動作４３２０に戻る。全ての近隣が、処理されると（動作４３６０において「いいえ」である）、サブボリューム近隣構成値Ｃ［ｉ］が、動作４３７０において、現在のボリュームの各サブボリュームに関して計算される。これは、閾値関数を適用することを伴い得る。次いで、動作４３８０において、ビットシーケンスのそれぞれのビットｂｉが、サブボリューム近隣構成値Ｃ［ｉ］に基づいて、かつ可能性として、ビットシーケンス内のすでにコーディングされたビットの部分的シーケンスおよび／または（低減させられた）近隣構成に基づいて、確率（例えば、コンテキスト）を使用して、エントロピコーディングされ得る。
【０１９０】
代替実装において、現在のボリュームの近隣に対するループの代わりに、現在のボリュームのサブボリュームＳＢｉに対する（または同等に、インデックスｉに対する）ループが、実施され得る。次いで、各サブボリュームＳＢｉに関して、すでにコーディングされた近隣の占有子ノードが、それらがサブボリュームＳＢｉの近隣に位置している（例えば、少なくとも所定の空ではない組において交差する）かどうかに関して試験され、ＮＴ［ｉ］が、サブボリュームＳＢｉの近隣に位置しているそのような子ノードの数として取得される。
【０１９１】
ＮＴ［ｉ］の上記の決定において、現在のボリュームのサブボリュームの全ての近隣は、該サブボリュームとのそれらの交差にかかわらず、等しく扱われる。いくつかの実装において、異なる重みが、当該サブボリュームとの異なる交差を伴う近隣に適用され得る。例えば、より広範な近隣定義を適用すると、当該サブボリュームと面を共有する近隣サブボリュームは、当該サブボリュームと縁（のみ）を共有する近隣サブボリュームより高い重みを有し得、次に、当該サブボリュームと頂点（のみ）を共有する近隣サブボリュームより高い重みを有し得る。これらの異なる重みは、次いで、重み付きの数ＮＴ’［ｉ］を決定するときに適用されることができ、当該サブボリュームの各近隣は、重み付きの数ＮＴ’［ｉ］につながる合計において、そのそれぞれの重みを伴ってカウントされる。
【０１９２】
故に、方法４１００の動作４１２０および方法４２００の動作４２１０におけるサブボリューム近隣構成を決定することは、現在のボリュームの少なくとも１つの近隣ボリュームのサブボリュームに関する占有データに基づいて、ビットシーケンス内のビットに対応する現在のボリュームのそのサブボリュームと交差する少なくとも１つの近隣ボリュームの（可能性として、全ての近隣ボリュームまたは全てのすでにコーディングされた近隣ボリュームの）全てのそれらのサブボリュームを決定することを伴い得る。さらに、それぞれの重み係数が、決定されたサブボリュームに適用され得る。各重み係数は、それぞれの決定されたサブボリュームと、ビットシーケンス内のビットに対応する現在のボリュームのそのサブボリュームとの交差に依存し得る。例えば、面において当該サブボリュームと交差するサブボリュームは、最も高い重みを有し得、縁において（のみ）当該サブボリュームと交差するサブボリュームは、中間の重みを有し得、頂点において（のみ）当該サブボリュームと交差するサブボリュームは、最も低い重みを有し得る。いくつかの実装において、３つの近隣定義のうちの２つのみが、考慮され得る（これは、事実上、第３の近隣定義の近隣に関する重み係数をゼロに設定することに対応する）。例えば、面、および縁、および頂点においてサブボリュームと交差するサブボリュームに適用されるそれぞれの重み係数は、それぞれ、２、１、および０に設定され得る。
【０１９３】
そして、サブボリューム近隣構成を決定することは、決定されたサブボリュームおよびそれらのそれぞれの重み係数に基づいて、ビットシーケンス内のビットに対応する現在のボリュームのそのサブボリュームと交差する少なくとも１つの近隣ボリュームのサブボリュームの重み付きの数ＮＴ’［ｉ］を決定することをさらに伴い得る。すなわち、ビットシーケンス内のビットに対応する現在のボリュームのそのサブボリュームと交差する少なくとも１つの近隣ボリュームの決定されたサブボリュームにわたって合計するとき、各決定されたサブボリュームは、そのそれぞれの重み係数を伴ってカウントされ得る。さらに、閾値化が、重み付きのサブボリューム近隣構成値Ｃ’［ｉ］を取得するために、重み付きの数ＮＴ’［ｉ］に適用され得る。
【０１９４】
いくつかの実装において、ビットシーケンス内の所与の占有ビットｂｉをコーディングするバイナリエントロピコーダに関連付けられる確率（例えば、コンテキスト）は、以下の値に応じて選定され得る。
・ｂ０，・・・，ｂｉ−１
・Ｎ１０
・Ｃ［ｉ］
すなわち、決定されると、サブボリューム近隣構成値Ｃ［ｉ］（または重み付きのサブボリューム近隣構成値Ｃ’［ｉ］）は、現在のノードＢのサブノードＳＢｉに関連付けられた占有ビットｂｉをコーディングするエントロピコーダへの入力として使用され得る。
【０１９５】
（コンテキスト低減動作）
上記の例は、コーディングプロセスが、利用可能なコンテキストの組を利用可能なコンテキストのより小さい組に低減させるように、占有パターンの少なくとも１つのビットに関するコンテキスト低減動作を含むことを提案している。この意味で、「コンテキスト低減動作」は、特定のビットｂｉの状況において重複または冗長と見なされ得るコンテキストを識別し、合併整理するものとして理解され得る。上記のように、低減させられたコンテキスト組は、コーディングの前に決定され得、エンコーダおよびデコーダに提供され得、エンコーダおよびデコーダは、コンテキスト組を低減させるための下で説明される同じ条件に基づいて、低減させられたコンテキスト組を使用するかどうかを決定する。
【０１９６】
（スクリーニング／シールディングを通した近隣構成低減）
第１の例示的コンテキスト低減動作は、スクリーニング／シールディングに基づいて、近隣構成の数を低減させることを伴う。原則として、近隣構成は、現在のボリュームまたはサブボリュームが占有されている可能性が高いかどうかを示すことに近隣ボリュームが役立つことに基づいて、近隣ボリュームの占有ステータスをコンテキスト選択プロセスに組み込む。現在のボリューム内のサブボリュームに関連付けられたビットがデコードされるにつれて、それらも、コンテキスト選択に組み込まれるが、しかしながら、近傍のサブボリュームからの情報は、現在のサブボリュームからのサブボリュームの他方の側に位置する近隣ボリュームの占有情報より有意かつ有益であり得る。この意味で、以前にデコードされたビットは、近隣ボリュームを「スクリーニング」または「シールディング」するサブボリュームに関連付けられる。これは、そのような状況において、近隣ボリュームの占有が、その占有ステータスの関連性が現在のサブボリュームと近隣ボリュームとの間のサブボリュームの占有ステータスによって包含されるので、無視されることが可能であり、それによって、近隣構成の数の低減を可能にすることを意味し得る。
【０１９７】
ここで、近隣スクリーニングに基づく例示的コンテキスト低減動作を図式的に示す図２４が、参照される。例は、ボリューム３２００に関する占有パターンをコーディングすることを伴う。占有パターンは、ボリューム３２００内の８つのサブボリュームの占有ステータスを示す。この例において、ボリューム３２００の上半分における４つのサブボリュームは、コーディングされており、したがって、それらの占有ステータスは、把握されている。コーディングされている占有パターンのビットは、４つの以前にコーディングされたサブボリュームの下方にあるボリューム３２００の下半分に位置する第５のサブボリューム３２０４に関連付けられている。
【０１９８】
この例におけるコーディングは、近隣構成に基づいて、コンテキストを決定することを含む。１０個の近隣構成３２０２が、示される。コーディングされるべき第５のサブボリューム３２０４を含むボリューム３２００は、薄い灰色で示され、参照番号３２００によって示される。近隣構成３２０２は、ボリューム３２００に隣接し、それと面を共有するボリュームの占有ステータスに基づく。近隣ボリュームは、上部近隣ボリューム３２０６を含む。
【０１９９】
この例において、近隣構成の数は、構成のうちの少なくともいくつかにおける上部近隣ボリューム３２０６を無視することによって、１０から７に低減させられることができる。図２４に示されるように、上部近隣ボリューム３２０６が示される４つの構成のうちの３つは、上部近隣ボリューム３２０６を組み込まない同等の構成下に包含され、それによって、近隣構成の数を合計７つに低減させることができる。全ての６つの近隣ボリュームを示す構成を保つことが、依然として有利であり得る。何故なら、６ボリューム構成が合併整理されることが可能ないかなる既存の５ボリューム近隣構成も、存在せず（５要素のものを排除している）、上部近隣ボリュームが除去される場合であっても、新しい５要素近隣構成が、結果として生じ、コンテキストにおけるいかなる全体的低減も生じないことをそれが意味するからである。
【０２００】
上部近隣ボリューム３２０６は、第５のサブボリューム３２０４に関連付けられた占有ビットのコーディングのためのコンテキスト決定が、それの直上の４つの以前にコーディングされたサブボリュームの占有ステータスをすでに考慮しており、それは、より遠い上部近隣ボリューム３２０６の占有ステータスより良好な第５のサブボリュームに関する占有の可能性および方向性の指示であるので、この例において、近隣構成から排除されることができる。
【０２０１】
第５のサブボリューム３２０４に対応する占有ビットをコーディングするとき、上部近隣ボリューム３２０６が、以前にコーディングされたサブボリュームによってスクリーニングまたはシールディングされる上記の例は、一例にすぎない。ボリューム３２００内のコーディング順序に応じて、いくつかの他の可能なスクリーニング／シールディング状況が、実現され、利用可能な近隣構成を低減させるために活用され得る。
【０２０２】
ここで、スクリーニング／シールディングの第２の例を示す図２５が、参照される。この例において、ボリューム３２００に関する占有パターンは、ほぼ完全にコーディングされている。コーディングされるべきサブボリュームは、第８のサブボリュームであり、図の後方の下の隅に隠れている（不可視）。この場合、全ての７つの他のサブボリュームの占有ステータスは、コーディングされている。特に、上部に沿った（したがって、近隣構成における合計７つへの低減）、かつ右側および前側に沿ったサブボリュームである。故に、上部近隣ボリュームをスクリーニングすることに加えて、以前にコーディングされた占有ビットを伴うサブボリュームは、前側近隣ボリューム３２１０および右側近隣ボリューム３２１２をシールディングする。これは、図示されるように、合計７つから合計５つへの近隣構成の低減を可能にし得る。
【０２０３】
シールディングの２つの前述の例は、例証的であり、ある場合、異なる構成が、異なるシールディング状況を考慮するために合併整理され得ることを理解されたい。以前にコーディングされたサブボリュームによるシールディング／スクリーニングに基づくコンテキスト低減動作は、一般的であり、これらの２つの例に限定されないが、それがコーディングされるべき第１のサブボリュームの場合、適用されることができないことを理解されたい。何故なら、それが、任意のシールディング／スクリーニングがあるために、近傍サブボリュームに関連付けられた少なくとも１つの以前にコーディングされた占有ビットが存在することを要求するからである。
【０２０４】
近隣構成低減を正当なものにするためのシールディング／スクリーニングの程度が異なる実装において異なり得ることも理解されたい。２つの上記例において、近隣ボリュームと面を共有する全ての４つのサブボリュームは、その近隣ボリュームがシールディング／スクリーニングされていると見なされる前に以前にコーディングされており、したがって、それらは、近隣構成から除去された。他の例において、部分的シールディング／スクリーニングが、例えば、面を共有する１〜３つの以前にコーディングされたサブボリュームから十分であり得る。
【０２０５】
（特別な事例の取り扱いを通したコンテキスト低減）
コンテキスト低減が、有用な情報の損失を伴わずに行われ得るある事例が、存在する。上で説明される例示的コンテキスト決定プロセスにおいて、占有ビットをコーディングするためのコンテキストは、近隣構成、すなわち、現在のボリュームの近隣に位置しているボリュームの占有のパターンと、以前にコーディングされた現在のボリューム内のサブボリュームの占有に起因する部分的パターンとに基づく。その後者の条件は、占有パターンビットシーケンス内の第８のビットに関して、追跡すべき２７＝１２８個のコンテキストをもたらす。近隣構成が、合計５つに低減させられる場合であっても、それは、追跡すべき６４０個のコンテキストを意味する。
【０２０６】
コンテキストの数は、ビットシーケンスの以前にコーディングされたビットが、ある順序を有し、その順序が、コンテキストを査定することにおいて関連するという事実に基づいて、多い。しかしながら、ある場合、順序は、有用な情報を含まないこともある。例えば、近隣構成が、空である、すなわち、Ｎ１０＝０である場合、ボリューム内の任意の点は、低密度に取り込まれていると推定され、それらが兄弟サブボリューム内の占有の異なるパターンに関する別個のコンテキスト追跡を正当なものにするために十分に強い方向性を有していないことを意味し得る。空の近隣の場合、点群へのいかなる局所的配向またはトポロジも、存在せず、ビットシーケンスの以前にコーディングされたビットに基づく２ｊ個の条件は、ｊ＋１個の条件に低減させられ得ることを意味する。すなわち、ビットシーケンスのビットのうちの１つをコーディングするためのコンテキストは、以前にコーディングされたビットに基づくが、それらの順序付けられたパターンではなく、それらの合計だけに基づく。言い換えると、この特別な事例におけるエントロピ表現は、以下のように表され得る。
Ｈ（ｂ｜ｎ）≒Ｈ（ｂ０｜０）Ｈ（ｂ１｜０，ｂ０）Ｈ（ｂ２｜０，ｂ０＋ｂ１）・・・Ｈ（ｂ７｜０，ｂ０＋ｂ１＋・・・＋ｂ６）
【０２０７】
いくつかの実装において、類似する観察が、完全近隣構成に関して行われ得る。いくつかの例において、完全近隣構成は、方向性を欠き、以前にコーディングされたビットの順序が、コンテキストを決定することにおいて考慮される必要がないことを意味する。いくつかの例において、このコンテキスト低減動作は、シーケンス内の後半のビットのうちのいくつか等のビットシーケンス内のビットのうちのいくつかのみに適用され得る。ある場合、後半のビットへのこのコンテキスト低減動作の適用は、以前にコーディングされたサブボリュームに関連付けられた前半のビットも、全て占有されていると決定することを条件とし得る。
【０２０８】
（統計ベースのコンテキスト低減）
統計的分析が、ほぼ同じ統計的挙動につながるものを決定し、次いで、それらを組み合わせることを通して、コンテキストを低減させるために使用され得る。この分析は、低減させられたコンテキスト組を開発するために、試験データを使用して先験的に実施され得、低減させられたコンテキスト組は、次いで、エンコーダおよびデコーダの両方に提供される。ある場合、分析は、特定の点群データに関するカスタム低減コンテキスト組を開発するために、２パスコーディングを使用して、現在の点群に対して実施され得る。いくつかのそのような場合、非低減コンテキスト組からカスタム低減コンテキスト組へのマッピングが、ビットストリームにコーディングされた専用シンタックスを使用することによって、デコーダに示され得る。
【０２０９】
２つのコンテキストが、「距離」の概念を通して比較され得る。第１のコンテキストｃは、ビットｂがゼロに等しい確率ｐを有し、第２のコンテキストｃ’は、ビットｂ’がゼロに等しい確率ｐ’を有する。ｃとｃ’との間の距離は、以下によって与えられる。
ｄ（ｃ，ｃ’）＝｜ｐｌｏｇ２ｐ−ｐ’ｌｏｇ２ｐ’｜＋｜（１−ｐ）ｌｏｇ２（１−ｐ）−（１−ｐ’）ｌｏｇ２（１−ｐ’）｜
【０２１０】
類似性（距離）のこの測定を使用して、コンテキストは、次いで、以下等のプロセスにおいてグループ化され得る。
【０２１１】
１．Ｍ１コンテキストから開始し、閾値レベルεを固定する。
【０２１２】
２．所与のコンテキストに関して、所与のコンテキストから閾値レベルεより低い距離を有する全てのコンテキストをあるクラスに再グループ化する。
【０２１３】
３．全てがあるクラスに投入されるまで、全ての再グループ化されていないコンテキストに関して２を繰り返す。
【０２１４】
４．１〜Ｍ２のＭ２個のクラスを標識化する：これは、｛１，２，・・・，Ｍ１］→［１，２，・・・，Ｍ２］にマッピングする総当たり低減関数をもたらし、Ｍ１≧Ｍ２である。
【０２１５】
コンテキストの組をコンテキストのより小さい組にマッピングするための総当たり低減関数は、コーディング中のコンテキスト低減動作としてエンコーダ／デコーダによって適用されるようにメモリ内に記憶され得る。マッピングは、ルックアップテーブルまたは他のデータ構造として記憶され得る。総当たり低減関数は、例えば、ビットシーケンス（パターン）内の後半のビットのためにのみ適用され得る。
【０２１６】
（コンテキスト低減動作の組み合わせおよび副次的組み合わせ）
３つの例示的コンテキスト低減動作が、上で説明されている。それらの各々は、いくつかの実装において、個々に、かつ独立して適用され得る。それらのうちのいずれか２つ以上が、いくつかの実装において、組み合わせられ得る。追加のコンテキスト低減動作が、単独で、または上で説明されるコンテキスト低減動作のうちのいずれか１つ以上と組み合わせて実装され得る。
【０２１７】
図２６は、組み合わせられたコンテキスト低減を伴う占有パターンバイナリコーディングの方法３３００の一例をフローチャート形態において示す。方法３３００は、｛０，１，２，・・・，９｝における１０要素近隣構成Ｎ１０を所与として、８ビットバイナリパターンｂ０，ｂ１，・・・，ｂ７をコーディングする。評価される最初の条件は、近隣構成が、空であるかどうか、すなわち、Ｎ１０＝０であるかどうかである。該当する場合、ビットは、参照番号３３０２によって示されるように、それらの順序を参照することなくコーディングされる。該当しない場合、ビットは、ビットｂ４まで通常通りにコーディングされ、その時点において、エンコーダおよびデコーダは、総当たりコンテキスト低減関数ＢＲｉを適用し始め、近隣構成および以前にコーディングされたビットの部分的パターンによって定義されたコンテキストの組を実質的に類似する統計的成果を有するコンテキストのより小さい組にマッピングすることによって、コンテキストの数を低減させる。
【０２１８】
この例において、最後の２つのビットｂ６およびｂ７は、シールディング／スクリーニングに基づいて、低減させられた近隣構成を使用してコーディングされる。
【０２１９】
全ての関数は、コンテキストの組のサイズを低減させるためのルックアップテーブル（ＬＵＴ）として実装され得る。一実践的実装において、全ての低減は、入力としてコンテキストをとり、出力として低減させられたコンテキストを提供する低減関数、すなわち、単純にＬＵＴに組み込まれる。この例示的実施形態において、コンテキストの合計数は、２，５５０から５７６に低減させられており、各低減関数ＢＲｉの出力サイズは、それぞれ、７０、１０６、１１０、および１１９である。
【０２２０】
要約すると、以下の条件付きエントロピにおける従属（または条件）
Ｈ（ｂｉ｜ｂ０，・・・，ｂｉ−１，Ｎ１０）
は、以下を介してより少ない従属を伴う条件付きエントロピ関係を取得するために、低減関数ＢＲｉを使用することによって低減させられることができる。
Ｈ（ｂｉ｜ＢＲｉ［ｂ０，・・・，ｂｉ−１，Ｎ１０］）
上で説明されるように、サブボリューム近隣構成（例えば、サブボリューム近隣構成値Ｃ［ｉ］または重み付きのサブボリューム近隣構成値Ｃ’［ｉ］）は、占有ビットｂｉをコーディングするために使用されることができる。この場合、条件付きエントロピ関係は、以下になり、
Ｈ（ｂｉ｜ｂ０，・・・，ｂｉ−１，Ｎ１０，Ｃ［ｉ］）
低減が、上記と同様に実施され、以下を取得することができる。
Ｈ（ｂｉ｜ＢＲｉ［ｂ０，・・・，ｂｉ−１，Ｎ１０］，Ｃ［ｉ］）
【０２２１】
上で、低減関数ＢＲｉは、ＢＲｉ［ｂ０，・・・，ｂｉ−１，Ｎ１０］を介して、部分的ビットシーケンスｂ０，・・・，ｂｉ−１に、かつ１０要素近隣構成Ｎ１０に適用される。いくつかの実装において、低減関数ＢＲｉは、加えて、例えば、ＢＲｉ［ｂ０，・・・，ｂｉ−１，Ｎ１０，Ｃ［ｉ］］を介して、サブボリューム近隣構成に（例えば、サブボリューム近隣構成値Ｃ［ｉ］または重み付きのサブボリューム近隣構成値Ｃ’［ｉ］に）適用され、以下の条件付きエントロピ関係を取得し得る。
Ｈ（ｂｉ｜ＢＲｉ［ｂ０，・・・，ｂｉ−１，Ｎ１０，Ｃ［ｉ］］）
【０２２２】
この場合、占有ビットｂｉをコーディングするバイナリエントロピコーダの確率ｐ（例えば、コンテキスト）の選択は、（ＢＲｉ［ｂ０，・・・，ｂｉ−１，Ｎ１０］，Ｃ［ｉ］）の値に応じて選択され得る。
【０２２３】
サブボリューム近隣構成が、占有ビットｂｉをエントロピコーディングするときに考慮される場合、上で説明される図２６は、組み合わせられたコンテキスト低減を伴うサブボリューム近隣構成（例えば、サブボリューム近隣構成値Ｃ［ｉ］または重み付きのサブボリューム近隣構成値Ｃ’［ｉ］）に基づく占有パターンバイナリコーディングの方法４４００の一例をフローチャート形態において示す図３７に修正されるであろう。方法４４００は、｛０，１，２，・・・，９｝における１０要素近隣構成Ｎ１０およびサブボリューム近隣構成値Ｃ［ｉ］（または重み付きのサブボリューム近隣構成値Ｃ’［ｉ］）を所与として、８ビットバイナリパターンｂ０，ｂ１，・・・，ｂ７をコーディングする。評価される最初の条件は、近隣構成が、空である、すなわち、Ｎ１０＝０であるかどうかである。該当する場合、ビットは、参照番号４４０２によって示されるように、それらの順序を参照することなくコーディングされる。該当しない場合、ビットは、ビットｂ４まで通常通りにコーディングされ、その時点において、エンコーダおよびデコーダは、総当たりコンテキスト低減関数ＢＲｉを適用し始め、近隣構成および以前にコーディングされたビットの部分的パターンによって定義されたコンテキストの組を実質的に類似する統計的成果を有するコンテキストのより小さい組にマッピングすることによって、コンテキストの数を低減させる。
【０２２４】
この例において、最後の２つのビットｂ６およびｂ７は、シールディング／スクリーニングに基づいて、低減させられた近隣構成を使用してコーディングされる。
【０２２５】
全ての関数は、コンテキストの組のサイズを低減させるためのルックアップテーブル（ＬＵＴ）として実装され得る。一実践的実装において、全ての低減は、入力としてコンテキストをとり、出力として低減させられたコンテキストを提供する、低減関数、すなわち、単純にＬＵＴに組み込まれる。
【０２２６】
（現在のボリューム内の走査順序の選定）
エントロピコーダにおいてサブボリューム近隣構成（例えば、サブボリューム近隣構成値Ｃ［ｉ］または重み付きのサブボリューム近隣構成値Ｃ’［ｉ］）を導入することは、条件付きコーディングに関する可能な構成を増加させる。
【０２２７】
しかしながら、占有パターン、それによって、コーディングされるべきビットシーケンスを決定するための現在のボリュームＢ内のサブノードＳＢｉの走査順序の順序を慎重に選定することによって、この増加は、限定されることができる。すなわち、ビットｂｉのコーディングは、以下に依存する。
・２ｉ個の構成につながるビットｂ０−ｂｉ−１
・１０個の近隣構成Ｎ１０
・サブボリューム近隣構成値Ｃ［ｉ］（または重み付きのサブボリューム近隣構成値Ｃ’［ｉ］）
サブボリュームＳＢ０−ＳＢ７に関して、それぞれ、１０、２０、３９、７６、１４９、２９４、３９１、および５２０個の構成に最初の２つの箇条書きからの１０・２ｉ個の構成を低減させる方法が、上で示されている。
【０２２８】
ここにおいて、最初に、Ｃ［ｉ］の可能な値の数が最大（例えば、上記の例のうちのいくつかにおいて、３）であるそれらのサブノードを走査することが、明確に有利である。そうすることによって、最初に走査されたサブノードに関する構成の数は、わずかな減少と見なされ得る１０・３＝３０になる。しかしながら、サブノードＳＢ０が、最後に走査されるであろう場合、５２０・３＝１，５６０個の構成を取得することになるであろう。したがって、（占有パターン、それによって、コーディングされるべきビットシーケンスを決定するための）現在のボリューム内の走査順序を慎重に選定することによって、エントロピコーダにおけるサブボリューム近隣構成（例えば、サブボリューム近隣構成値Ｃ［ｉ］または重み付きのサブボリューム近隣構成値Ｃ’［ｉ］）の導入は、エントロピコーディングにおける構成（コンテキスト）の数に限定された影響を及ぼす。
【０２２９】
故に、いくつかの実装において、現在のボリューム内の走査順序は、走査順序における１つのサブボリュームから次のサブボリュームまで、現在のボリュームのすでにコーディングされた近隣ボリュームにおける近隣サブボリュームの最大可能数が増加しないように決定され得る。言い換えると、走査順序は、走査順序における１つのサブボリュームから次のサブボリュームまで、数ＮＴ［ｉ］（または重み付きの数ＮＴ’［ｉ］）の最大可能値が増加しないように決定され得る。
【０２３０】
（サブボリューム近隣構成の使用を示すフラグ）
コーダの低複雑性プロファイルを可能にするために、ビットシーケンスをエントロピコーディングすることにおける確率（例えば、コンテキスト）を決定することにおいて、サブボリューム近隣構成を考慮することのアクティブ化／非アクティブ化を示すフラグをコーディングすることが、有利であり得る。
【０２３１】
故に、いくつかの実装において、エンコーディングの方法は、少なくとも１つのビットのエントロピエンコーディングにおける使用のための確率が少なくとも部分的にサブボリューム近隣構成に基づいて選択されていることを示すフラグをエンコードすることをさらに含み得る。同様に、デコーディングの方法は、ビットストリームからフラグをデコードすることをさらに含み得、フラグは、少なくとも１つのビットのエントロピデコーディングにおける使用のための確率が少なくとも部分的にサブボリューム近隣構成に基づいて選択されるべきであることを示す。
【０２３２】
（圧縮性能への影響）
前述で説明されたコンテキスト低減動作の各々は、静的（固定）最小数のコンテキストを伴う圧縮システムにおいてさらに使用され得る。そのような設計において、８ビットバイナリパターンにおける所与のシンボルに関して、１つ以上の低減動作が、シンボルをエンコードまたはデコードするためのコンテキスト確率モデルを決定するために適用される。
【０２３３】
（圧縮性能に対する影響）
１０個の近隣構成および非バイナリコーディングの使用は、点群コーディングに関するＭＰＥＧ試験モデルの現在の実装に優る圧縮利得を提供する。しかしながら、上で提案された２，５５０個のコンテキストを使用するカスケードバイナリコーディングを伴う１０個の近隣構成の使用は、圧縮効率におけるさらに良好な改良をもたらす。コンテキスト低減が、コンテキストを合計５７６個に低減させるために、上で詳述される３つの技法を使用して等、使用されるときであっても、バイナリコーディング圧縮は、依然として、非バイナリコーディングを使用する実装よりわずかに良好であり、試験モデルよりはるかに良好である。この観察は、異なる試験点群データにわたって一貫していることが示されている。
【０２３４】
ここで、エンコーダ１１００の例示的実施形態の簡略化ブロック図を示す図１４が、参照される。エンコーダ１１００は、プロセッサ１１０２と、メモリ１１０４と、エンコーディングアプリケーション１１０６とを含む。エンコーディングアプリケーション１１０６は、メモリ１１０４内に記憶され、実行されると、本明細書に説明されるもの等の動作をプロセッサ１１０２に実施させる命令を含むコンピュータプログラムまたはアプリケーションを含み得る。例えば、エンコーディングアプリケーション１１０６は、本明細書に説明されるプロセスに従ってエンコードされたビットストリームをエンコードし、出力し得る。エンコーディングアプリケーション１１０６は、コンパクトディスク、フラッシュメモリデバイス、ランダムアクセスメモリ、ハードドライブ等の非一過性コンピュータ読み取り可能な媒体上に記憶され得ることを理解されたい。命令が実行されると、プロセッサ１１０２は、説明されるプロセスを実装する専用プロセッサとして動作するように、命令において規定される動作および機能を実行する。そのようなプロセッサは、いくつかの例において、「プロセッサ回路」または「プロセッサ電気回路」と称され得る。
【０２３５】
ここで、デコーダ１２００の例示的実施形態の簡略化ブロック図を示す図１５も、参照される。デコーダ１２００は、プロセッサ１２０２と、メモリ１２０４と、デコーディングアプリケーション１２０６とを含む。デコーディングアプリケーション１２０６は、メモリ１２０４内に記憶され、実行されると、本明細書に説明されるもの等の動作をプロセッサ１２０２に実施させる命令を含むコンピュータプログラムまたはアプリケーションを含み得る。デコーディングアプリケーション１２０６は、コンパクトディスク、フラッシュメモリデバイス、ランダムアクセスメモリ、ハードドライブ等のコンピュータ読み取り可能な媒体上に記憶され得ることを理解されたい。命令が、実行されると、プロセッサ１２０２は、説明されるプロセスを実装する専用プロセッサとして動作するように、命令において規定される動作および機能を実行する。そのようなプロセッサは、いくつかの例において、「プロセッサ回路」または「プロセッサ電気回路」と称され得る。
【０２３６】
本願によるデコーダおよび／またはエンコーダは、限定ではないが、サーバ、好適にプログラムされた汎用コンピュータ、マシンビジョンシステム、およびモバイルデバイスを含むいくつかのコンピューティングデバイスにおいて実装され得ることを理解されたい。デコーダまたはエンコーダは、本明細書に説明される機能を実行するようにプロセッサまたは複数のプロセッサを構成するための命令を含むソフトウェアを用いて実装され得る。ソフトウェア命令は、ＣＤ、ＲＡＭ、ＲＯＭ、フラッシュメモリ等を含む任意の好適な非一過性コンピュータ読み取り可能なメモリ上に記憶され得る。
【０２３７】
本明細書に説明されるデコーダおよび／またはエンコーダおよびエンコーダまたはデコーダを構成するための説明される方法／プロセスを実装するモジュール、ルーチン、プロセス、スレッド、または他のソフトウェアコンポーネントは、標準的コンピュータプログラミング技法および言語を使用して実現され得ることを理解されたい。本願は、特定のプロセッサ、コンピュータ言語、コンピュータプログラミング表記法、データ構造、他のそのような実装詳細に限定されない。当業者は、説明されるプロセスが、揮発性または不揮発性メモリ内に記憶されるコンピュータ実行可能コードの一部として、特定用途向け集積チップ（ＡＳＩＣ）の一部等として実装され得ることを認識するであろう。
【０２３８】
本願は、本願によるエンコーディングプロセスの適用を通して生成されるデータをエンコードするコンピュータ読み取り可能な信号も提供する。
【０２３９】
説明される実施形態のある適合および修正が、行われることができる。したがって、上で議論される実施形態は、制限的ではなく、例証的であると見なされる。
【図１】
2022501744.tif 000007
【図２】
2022501744.tif 000008
【図３】
2022501744.tif 000009
【図４】
2022501744.tif 000010
【図５】
2022501744.tif 000011
【図６】
2022501744.tif 000012
【図７】
2022501744.tif 000013
【図８】
2022501744.tif 000014
【図９】
2022501744.tif 000015
【図１０】
2022501744.tif 000016
【図１１】
2022501744.tif 000017
【図１２】
2022501744.tif 000018
【図１３】
2022501744.tif 000019
【図１４】
2022501744.tif 000020
【図１５】
2022501744.tif 000021
【図１６】
2022501744.tif 000022
【図１７】
2022501744.tif 000023
【図１８】
2022501744.tif 000024
【図１９】
2022501744.tif 000025
【図２０】
2022501744.tif 000026
【図２１】
2022501744.tif 000027
【図２２】
2022501744.tif 000028
【図２３】
2022501744.tif 000029
【図２４】
2022501744.tif 000030
【図２５】
2022501744.tif 000031
【図２６】
2022501744.tif 000032
【図２７】
2022501744.tif 000033
【図２８】
2022501744.tif 000034
【図２９】
2022501744.tif 000035
【図３０】
2022501744.tif 000036
【図３１】
2022501744.tif 000037
【図３２】
2022501744.tif 000038
【図３３】
2022501744.tif 000039
【図３４】
2022501744.tif 000040
【図３５】
2022501744.tif 000041
【図３６】
2022501744.tif 000042
【図３７】
2022501744.tif 000043
【国際調査報告】
2022501744.tif 000044
2022501744.tif 000045
2022501744.tif 000046