(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-26
(45)【発行日】2023-08-03
(54)【発明の名称】点群のバイナリエントロピコーディングのための方法およびデバイス
(51)【国際特許分類】
H03M 7/40 20060101AFI20230727BHJP
G06T 9/40 20060101ALI20230727BHJP
H04N 19/13 20140101ALI20230727BHJP
【FI】
H03M7/40
G06T9/40
H04N19/13
(21)【出願番号】P 2020555094
(86)(22)【出願日】2019-04-03
(86)【国際出願番号】 CA2019050399
(87)【国際公開番号】W WO2019195920
(87)【国際公開日】2019-10-17
【審査請求日】2022-01-25
(32)【優先日】2018-04-09
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500043574
【氏名又は名称】ブラックベリー リミテッド
【氏名又は名称原語表記】BlackBerry Limited
【住所又は居所原語表記】2200 University Avenue East, Waterloo ON N2K 0A7, Canada
(74)【代理人】
【識別番号】100107489
【氏名又は名称】大塩 竹志
(72)【発明者】
【氏名】ラセール, セバスチャン
(72)【発明者】
【氏名】フリン, デイビッド
【審査官】谷岡 佳彦
(56)【参考文献】
【文献】国際公開第2019/146691(WO,A1)
【文献】米国特許出願公開第2017/0347100(US,A1)
【文献】国際公開第2018/059946(WO,A1)
【文献】特開2017-126890(JP,A)
【文献】国際公開第2013/065702(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H03M 7/40
G06T 9/40
H04N 19/13
(57)【特許請求の範囲】
【請求項1】
点群をエンコーディングし、圧縮された点群データのビットストリームを生成する方法であって、前記点群は、ツリー構造において定義されており、前記ツリー構造は、親子関係を有する複数のノードを有しており、サブボリュームに再帰的に分裂され、前記点群の点を含有している、立体空間の幾何学形状を表しており、あるボリュームのサブボリュームの占有状態は、ビットシーケンスを使用して示され、前記ビットシーケンスの各ビットは、前記ボリューム内での走査順序で個別のサブボリュームの占有状態を示し、ボリュームは、複数の近傍ボリュームを有し、前記近傍ボリュームの占有状態のパターンは、近傍系構成であり、前記方法は、
前記ボリュームのビットシーケンス内の少なくとも1ビットに関して、
コンテキスト削減条件が満たされていることを決定し、それに基づいて、近傍系構成のカウント数と前記シーケンス内で先にコーディングされたビットの数との積より少ないコンテキストを含有する削減コンテキスト集合を選択することと、
前記少なくとも1ビットをコーディングするために、前記近傍ボリュームのうちの少なくともいくつかの占有状態ステータスおよび前記ビットシーケンスの少なくとも1つの先にコーディングされたビットに基づいて、前記削減コンテキスト集合からコンテキストを選択することと、
バイナリエントロピエンコーダを使用して、前記選択されたコンテキストに基づいて、前記少なくとも1ビットをエントロピエンコーディングし、前記ビットストリームに関するエンコーディングされたデータを生産することと、
前記選択されたコンテキストを更新することと
を含む、方法。
【請求項2】
バイナリエントロピデコーダおよびツリー再構築器を使用して、圧縮された点群データのビットストリームをデコーディング
することにより、再構築された点群を生産する方法であって、
前記バイナリエントロピデコーダは、前記圧縮された点群データのビットストリームを入力として受信し、前記バイナリエントロピデコーダは、前記圧縮された点群データのビットストリームをエントロピデコーディングし、前記バイナリエントロピデコーダは、解凍されたビットのシーケンスを出力として生産し、前記ツリー再構築器は、前記解凍されたビットのシーケンスを前記再構築された点群に変換し、前記点群は、ツリー構造において定義されており、前記ツリー構造は、親子関係を有する複数のノードを有しており、サブボリュームに再帰的に分裂され、前記点群の点を含有している、立体空間の幾何学形状を表しており、あるボリュームのサブボリュームの占有状態は、ビットシーケンスを使用して示され、前記ビットシーケンスの各ビットは、前記ボリューム内での走査順序で個別のサブボリュームの占有状態を示し、ボリュームは、複数の近傍ボリュームを有し、前記近傍ボリュームの占有状態のパターンは、近傍系構成であり、前記方法は、
前記ボリュームのビットシーケンス内の少なくとも1ビットに関して、
コンテキスト削減条件が満たされていることを決定し、それに基づいて、近傍系構成のカウント数と前記シーケンス内で先にコーディングされたビットの数との積より少ないコンテキストを含有する削減コンテキスト集合を選択することと、
前記少なくとも1ビットをコーディングするために、前記近傍ボリュームのうちの少なくともいくつかの占有状態ステータスおよび前記ビットシーケンスの少なくとも1つの先にコーディングされたビットに基づいて、前記削減コンテキスト集合からコンテキストを選択することと、
前記バイナリエントロピデコーダを使用して、前記選択されたコンテキストに基づいて、前記少なくとも1ビットをエントロピデコーディングし、前記ビットストリームから再構築されたビットを生産することと、
前記選択されたコンテキストを更新することと
を含む、方法。
【請求項3】
前記コンテキスト削減条件は、1つ以上の先にコーディングされた占有状態ビットが、前記少なくとも1ビットと関連付けられた前記サブボリュームと前記近傍ボリュームのうちの1つ以上のものとの間に位置付けられる1つ以上の個別のサブボリュームと関連付けられることを決定することを含む、請求項1または請求項2に記載の方法。
【請求項4】
前記コンテキスト削減条件は、先にエンコーディングされたビットと関連付けられた4つのサブボリュームが、特定の近傍系ボリュームとある面を共有することを決定することを含む、請求項3に記載の方法。
【請求項5】
前記コンテキスト削減条件は、前記ビットシーケンスの少なくとも4ビットが先にコーディングされていることを決定することを含む、請求項3または請求項4に記載の方法。
【請求項6】
前記コンテキスト削減条件が満たされることを決定することは、前記近傍ボリュームの占有状態のパターンが、前記複数の近傍ボリュームが占有されていないことを示すことを決定することを含む、請求項1
~5のいずれか1項に記載の方法。
【請求項7】
前記複数の近傍ボリュームが占有されていないことの決定に基づいて、前記選択された削減コンテキスト集合は、前記ビットシーケンス内の先にコーディングされたビットの数に対応するコンテキストの数を含む、請求項6に記載の方法。
【請求項8】
前記複数の近傍ボリュームが占有されていないことの決定に基づいて、前記コンテキストを選択することは、前記ビットシーケンス内の先にコーディングされたビットの和に基づいて、前記コンテキストを選択することを含む、請求項7に記載の方法。
【請求項9】
前記コンテキスト削減条件は、前記ビットシーケンス内の少なくとも閾値数のビットが先にコーディングされていることを決定することを含み、前記削減コンテキスト集合は、近傍系構成と前記ビットシーケンス内の先にコーディングされたビットのパターンとの各可能性として考えられる組み合わせを前記より少ないコンテキストにマッピングするルックアップテーブルを備える、請求項1
~8のいずれか1項に記載の方法。
【請求項10】
前記ルックアップテーブルは、個別の対の利用可能なコンテキスト間の距離測定値が閾値未満であることの決定に基づく複数のクラスへの利用可能なコンテキストの反復グループ化に基づいて生成され、前記複数のクラス内の各クラスは、前記より小さい集合内の個別のコンテキストを備え、近傍系構成と前記ビットシーケンス内の先にコーディングされたビットのパターンとの可能性として考えられる組み合わせ毎に、利用可能なコンテキストが存在する、請求項9に記載の方法。
【請求項11】
前記近傍ボリュームのうちの少なくともいくつかは、前記ボリュームと少なくとも1つの面を共有する近傍ボリュームである、請求項1
~10のいずれか1項に記載の方法。
【請求項12】
点群をエンコーディングし、圧縮された点群データのビットストリームを生成するためのエンコーダであって、前記点群は、ツリー構造において定義されており、前記ツリー構造は、親子関係を有する複数のノードを有しており、サブボリュームに再帰的に分裂され、前記点群の点を含有している、立体空間の幾何学形状を表しており、あるボリュームのサブボリュームの占有状態は、ビットシーケンスを使用して示され、前記ビットシーケンスの各ビットは、前記ボリューム内での走査順序で個別のサブボリュームの占有状態を示し、ボリュームは、前記ボリュームと少なくとも頂点を共有する複数の近傍ボリュームを有し、前記エンコーダは、
プロセッサと、
メモリと、
エンコーディングアプリケーションであって、前記エンコーディングアプリケーションは、前記プロセッサによって実行可能な命令を
含み、前記命令は、実行されると
、請求項
1に記載の方法を
実行することを前記プロセッサに行わせる、エンコーディングアプリケーションと
を備える、エンコーダ。
【請求項13】
圧縮された点群データのビットストリームをデコーディングし、再構築された点群を生産するためのデコーダであって、前記点群は、ツリー構造において定義されており、前記ツリー構造は、親子関係を有する複数のノードを有しており、サブボリュームに再帰的に分裂され、前記点群の点を含有している、立体空間の幾何学形状を表しており、あるボリュームのサブボリュームの占有状態は、ビットシーケンスを使用して示され、前記ビットシーケンスの各ビットは、前記ボリューム内での走査順序で個別のサブボリュームの占有状態を示し、ボリュームは、前記ボリュームと少なくとも頂点を共有する複数の近傍ボリュームを有し、前記デコーダは、
プロセッサと、
メモリと、
デコーディングアプリケーションであって、前記デコーディングアプリケーションは、前記プロセッサによって実行可能な命令を
含み、前記命令は、実行されると
、請求項
2に記載の方法を
実行することを前記プロセッサに行わせる、デコーディングアプリケーションと
を備える、デコーダ。
【請求項14】
非一過性
のプロセッサ
読み取り可能な媒体であって、前記非一過性
のプロセッサ
読み取り可能な媒体は、プロセッサ実行可能
な命令を記憶しており、前記命令は、プロセッサによって実行されると
、請求項1
~11のいずれか1項に記載の方法を
実行することを前記プロセッサに行わせる、非一過性
のプロセッサ
読み取り可能な媒体。
【請求項15】
プログラム命令を含むコンピュータ
読み取り可能なプログラムであって
、前記プログラム命令は、コンピュータによって実行されると
、請求項1
~11のいずれか1項に記載の方法を
実行することを前記コンピュータに行わせる、コンピュータ
読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
(分野)
本願は、概して、点群の圧縮に関し、特に、点群のバイナリエントロピコーディングのための方法およびデバイスに関する。
【背景技術】
【0002】
(背景)
データ圧縮が、情報を効率的に記憶、伝送、および複製するために、通信およびコンピュータネットワーキングにおいて使用されている。3次元物体または空間の表現にますます関心が高まっているが、これは、大量データ集合を伴い得、そのための効率的および効果的圧縮が、非常に有用であり、価値があるであろう。ある場合には、3次元物体または空間は、点群を使用して表され得、これは、それぞれ、3つの座標場所(X、Y、Z)と、ある場合には、色データ(例えば、輝度および色度)、透明度、反射率、法線ベクトル等のような他の属性とを有する、点の集合である。点群は、静的(定常物体または単一時点における環境/物体のスナップショット)または動的(点群の時系列シーケンス)であり得る。
【0003】
点群のための例示的用途は、トポグラフィおよびマッピング用途を含む。自律車両および他のマシンビジョン用途は、LiDARスキャナから等の環境の3D走査の形態における点群センサデータに依拠し得る。仮想現実シミュレーションは、点群に依拠し得る。
【0004】
点群が、大量のデータを伴い得、そのデータを迅速かつ正確に圧縮(エンコーディングおよびデコーディング)することが、有意な関心事であることを理解されたい。故に、点群のためのデータをより効率的および/または効果的に圧縮する、方法およびデバイスを提供することが、有利であろう。また、過剰な数のコンテキストの管理を要求せずに、コンテキスト適応バイナリエントロピコーディングを使用して実装され得る、点群をコーディングするための方法およびデバイスを見出すことが、有利であろう。
【発明の概要】
【課題を解決するための手段】
【0005】
本願明細書は、例えば、以下の項目も提供する。
(項目1)
点群をエンコーディングし、圧縮された点群データのビットストリームを生成する方法であって、前記点群は、ツリー構造において定義されており、前記ツリー構造は、親子関係を有する複数のノードを有しており、サブボリュームに再帰的に分裂され、前記点群の点を含有している、立体空間の幾何学形状を表しており、あるボリュームのサブボリュームの占有状態は、ビットシーケンスを使用して示され、前記ビットシーケンスの各ビットは、前記ボリューム内での走査順序で個別のサブボリュームの占有状態を示し、ボリュームは、複数の近傍ボリュームを有し、前記近傍ボリュームの占有状態のパターンは、近傍系構成であり、前記方法は、
前記ボリュームのビットシーケンス内の少なくとも1ビットに関して、
コンテキスト削減条件が満たされていることを決定し、それに基づいて、近傍系構成のカウント数と前記シーケンス内で先にコーディングされたビットの数との積より少ないコンテキストを含有する削減コンテキスト集合を選択することと、
前記少なくとも1ビットをコーディングするために、前記近傍ボリュームのうちの少なくともいくつかの占有状態ステータスおよび前記ビットシーケンスの少なくとも1つの先にコーディングされたビットに基づいて、前記削減コンテキスト集合からコンテキストを選択することと、
バイナリエントロピエンコーダを使用して、前記選択されたコンテキストに基づいて、前記少なくとも1ビットをエントロピエンコーディングし、前記ビットストリームに関するエンコーディングされたデータを生産することと、
前記選択されたコンテキストを更新することと
を含む、方法。
(項目2)
圧縮された点群データのビットストリームをデコーディングし、再構築された点群を生産する方法であって、前記点群は、ツリー構造において定義されており、前記ツリー構造は、親子関係を有する複数のノードを有しており、サブボリュームに再帰的に分裂され、前記点群の点を含有している、立体空間の幾何学形状を表しており、あるボリュームのサブボリュームの占有状態は、ビットシーケンスを使用して示され、前記ビットシーケンスの各ビットは、前記ボリューム内での走査順序で個別のサブボリュームの占有状態を示し、ボリュームは、複数の近傍ボリュームを有し、前記近傍ボリュームの占有状態のパターンは、近傍系構成であり、前記方法は、
前記ボリュームのビットシーケンス内の少なくとも1ビットに関して、
コンテキスト削減条件が満たされていることを決定し、それに基づいて、近傍系構成のカウント数と前記シーケンス内で先にコーディングされたビットの数との積より少ないコンテキストを含有する削減コンテキスト集合を選択することと、
前記少なくとも1ビットをコーディングするために、前記近傍ボリュームのうちの少なくともいくつかの占有状態ステータスおよび前記ビットシーケンスの少なくとも1つの先にコーディングされたビットに基づいて、前記削減コンテキスト集合からコンテキストを選択することと、
バイナリエントロピデコーダを使用して、前記選択されたコンテキストに基づいて、前記少なくとも1ビットをエントロピデコーディングし、前記ビットストリームから再構築されたビットを生産することと、
前記選択されたコンテキストを更新することと
を含む、方法。
(項目3)
前記コンテキスト削減条件は、1つ以上の先にコーディングされた占有状態ビットが、前記少なくとも1ビットと関連付けられた前記サブボリュームと前記近傍ボリュームのうちの1つ以上のものとの間に位置付けられる1つ以上の個別のサブボリュームと関連付けられることを決定することを含む、項目1または項目2に記載の方法。
(項目4)
前記コンテキスト削減条件は、先にエンコーディングされたビットと関連付けられた4つのサブボリュームが、特定の近傍系ボリュームとある面を共有することを決定することを含む、項目3に記載の方法。
(項目5)
前記コンテキスト削減条件は、前記ビットシーケンスの少なくとも4ビットが先にコーディングされていることを決定することを含む、項目3または項目4に記載の方法。
(項目6)
前記コンテキスト削減条件が満たされることを決定することは、前記近傍ボリュームの占有状態のパターンが、前記複数の近傍ボリュームが占有されていないことを示すことを決定することを含む、項目1-5のいずれか1項に記載の方法。
(項目7)
前記複数の近傍ボリュームが占有されていないことの決定に基づいて、前記選択された削減コンテキスト集合は、前記ビットシーケンス内の先にコーディングされたビットの数に対応するコンテキストの数を含む、項目6に記載の方法。
(項目8)
前記複数の近傍ボリュームが占有されていないことの決定に基づいて、前記コンテキストを選択することは、前記ビットシーケンス内の先にコーディングされたビットの和に基づいて、前記コンテキストを選択することを含む、項目7に記載の方法。
(項目9)
前記コンテキスト削減条件は、前記ビットシーケンス内の少なくとも閾値数のビットが先にコーディングされていることを決定することを含み、前記削減コンテキスト集合は、近傍系構成と前記ビットシーケンス内の先にコーディングされたビットのパターンとの各可能性として考えられる組み合わせを前記より少ないコンテキストにマッピングするルックアップテーブルを備える、項目1-8のいずれか1項に記載の方法。
(項目10)
前記ルックアップテーブルは、個別の対の利用可能なコンテキスト間の距離測定値が閾値未満であることの決定に基づく複数のクラスへの利用可能なコンテキストの反復グループ化に基づいて生成され、前記複数のクラス内の各クラスは、前記より小さい集合内の個別のコンテキストを備え、近傍系構成と前記ビットシーケンス内の先にコーディングされたビットのパターンとの可能性として考えられる組み合わせ毎に、利用可能なコンテキストが存在する、項目9に記載の方法。
(項目11)
前記近傍ボリュームのうちの少なくともいくつかは、前記ボリュームと少なくとも1つの面を共有する近傍ボリュームである、項目1-10のいずれか1項に記載の方法。
(項目12)
点群をエンコーディングし、圧縮された点群データのビットストリームを生成するためのエンコーダであって、前記点群は、ツリー構造において定義されており、前記ツリー構造は、親子関係を有する複数のノードを有しており、サブボリュームに再帰的に分裂され、前記点群の点を含有している、立体空間の幾何学形状を表しており、あるボリュームのサブボリュームの占有状態は、ビットシーケンスを使用して示され、前記ビットシーケンスの各ビットは、前記ボリューム内での走査順序で個別のサブボリュームの占有状態を示し、ボリュームは、前記ボリュームと少なくとも頂点を共有する複数の近傍ボリュームを有し、前記エンコーダは、
プロセッサと、
メモリと、
エンコーディングアプリケーションであって、前記エンコーディングアプリケーションは、前記プロセッサによって実行可能な命令を含有しており、前記命令は、実行されると、前記プロセッサに、項目1または項目1から独立するときは項目3-11のいずれか1項に記載の方法を実施させる、エンコーディングアプリケーションと
を備える、エンコーダ。
(項目13)
圧縮された点群データのビットストリームをデコーディングし、再構築された点群を生産するためのデコーダであって、前記点群は、ツリー構造において定義されており、前記ツリー構造は、親子関係を有する複数のノードを有しており、サブボリュームに再帰的に分裂され、前記点群の点を含有している、立体空間の幾何学形状を表しており、あるボリュームのサブボリュームの占有状態は、ビットシーケンスを使用して示され、前記ビットシーケンスの各ビットは、前記ボリューム内での走査順序で個別のサブボリュームの占有状態を示し、ボリュームは、前記ボリュームと少なくとも頂点を共有する複数の近傍ボリュームを有し、前記デコーダは、
プロセッサと、
メモリと、
デコーディングアプリケーションであって、前記デコーディングアプリケーションは、前記プロセッサによって実行可能な命令を含有しており、前記命令は、実行されると、前記プロセッサに、項目2または項目2から独立するときは項目3-11のいずれか1項に記載の方法を実施させる、デコーディングアプリケーションと
を備える、デコーダ。
(項目14)
非一過性プロセッサ可読媒体であって、前記非一過性プロセッサ可読媒体は、プロセッサ実行可能命令を記憶しており、前記命令は、プロセッサによって実行されると、前記プロセッサに、項目1-11のいずれか1項に記載の方法を実施させる、非一過性プロセッサ可読媒体。
(項目15)
コンピュータ可読シグナルであって、前記コンピュータ可読シグナルは、プログラム命令を含有しており、前記プログラム命令は、コンピュータによって実行されると、前記コンピュータに、項目1-11のいずれか1項に記載の方法を実施させる、コンピュータ可読シグナル。
本願は、点群をエンコーディングおよびデコーディングする方法と、点群をエンコーディングおよびデコーディングするためのエンコーダおよびデコーダとを説明する。あるボリュームのサブボリュームに関する占有状態パターンをシグナリングするビットシーケンスが、バイナリエントロピコーディングを使用してコーディングされ得る。コンテキストは、近傍系構成およびビットシーケンスの先にコーディングされたビットの部分的シーケンスに基づき得る。コンテキスト削減オペレーションを適用すべきかどうかに関する決定が、行われ、該当する場合、オペレーションは、利用可能なコンテキストの数を削減する。例示的コンテキスト削減オペレーションは、先にコーディングされたビットと関連付けられたサブボリュームによる遮蔽、空の近傍系構成のための特殊ハンドリング、および統計ベースのコンテキスト統合に基づいて、近傍系構成を削減することを含む。削減は、コーディングに先立って適用されてもよく、削減コンテキスト集合を使用するための状況が満たされるかどうかに関する決定が、コーディングの間に行われてもよい。
【0006】
一側面では、本願は、点群をエンコーディングし、圧縮された点群データのビットストリームを生成する方法であって、点群は、ツリー構造に定義されており、ツリー構造は、親子関係を有する複数のノードを有しており、サブボリュームに再帰的に分裂され、点群の点を含有している、立体空間の幾何学形状を表しており、あるボリュームのサブボリュームの占有状態は、ビットシーケンスを使用して示され、ビットシーケンスの各ビットは、ボリューム内での走査順序で個別のサブボリュームの占有状態を示し、ボリュームは、複数の近傍ボリュームを有し、近傍ボリュームの占有状態のパターンは、近傍系構成である、方法を提供する。本方法は、ボリュームのビットシーケンス内の少なくとも1ビットに関して、コンテキスト削減条件が満たさていれることを決定し、それに基づいて、近傍系構成のカウント数とシーケンス内で先にコーディングされたビットの数との積より少ないコンテキストを含有する、削減コンテキスト集合を選択することと、少なくとも1ビットをコーディングするために、近傍ボリュームのうちの少なくともいくつかの占有状態ステータスおよびビットシーケンスの少なくとも1つの先にコーディングされたビットに基づいて、削減コンテキスト集合からコンテキストを選択することと、バイナリエントロピエンコーダを使用して、選択されたコンテキストに基づいて、少なくとも1ビットをエントロピエンコーディングし、ビットストリームに関するエンコーディングされたデータを生産することと、選択されたコンテキストを更新することとを含む。
【0007】
別の側面では、本願は、圧縮された点群データのビットストリームをデコーディングし、再構築された点群を生産する方法であって、点群は、ツリー構造に定義されており、ツリー構造は、親子関係を有する複数のノードを有しており、サブボリュームに再帰的に分裂され、点群の点を含有している、立体空間の幾何学形状を表しており、あるボリュームのサブボリュームの占有状態は、ビットシーケンスを使用して示され、ビットシーケンスの各ビットは、ボリューム内での走査順序で個別のサブボリュームの占有状態を示し、ボリュームは、複数の近傍ボリュームを有し、近傍ボリュームの占有状態のパターンは、近傍系構成である、方法を提供する。デコーディングする方法は、ボリュームのビットシーケンス内の少なくとも1ビットに関して、コンテキスト削減条件が満たされていることを決定し、それに基づいて、近傍系構成のカウント数とシーケンス内で先にコーディングされたビットの数との積より少ないコンテキストを含有する、削減コンテキスト集合を選択することと、少なくとも1ビットをコーディングするために、近傍ボリュームのうちの少なくともいくつかの占有状態ステータスおよびビットシーケンスの少なくとも1つの先にコーディングされたビットに基づいて、削減コンテキスト集合からコンテキストを選択することと、バイナリエントロピデコーダを使用して、選択されたコンテキストに基づいて、少なくとも1ビットをエントロピデコーディングし、ビットストリームから再構築されたビットを生産することと、選択されたコンテキストを更新することとを含む。
【0008】
いくつかの実装では、コンテキスト削減条件は、1つ以上の先にコーディングされた占有状態ビットが、少なくとも1ビットと関連付けられたサブボリュームと近傍ボリュームのうちの1つ以上のものとの間に位置付けられる、1つ以上の個別のサブボリュームと関連付けられることを決定することを含んでもよい。ある場合には、これは、先にエンコーディングされたビットと関連付けられた4つのサブボリュームが、特定の近傍系ボリュームとある面を共有することを決定することを含んでもよい。
【0009】
いくつかの実装では、コンテキスト削減条件は、ビットシーケンスの少なくとも4ビットが先にコーディングされていることを決定することを含んでもよい。
【0010】
いくつかの実装では、コンテキスト削減条件が満たされることを決定することは、近傍ボリュームの占有状態のパターンが、複数の近傍ボリュームが占有されていないことを示すことを決定することを含んでもよい。それらの場合のうちのいくつかでは、選択された削減コンテキスト集合は、ビットシーケンス内の先にコーディングされたビットの数に対応するコンテキストの数を含んでもよく、随意に、コンテキストを選択することは、ビットシーケンス内の先にコーディングされたビットの和に基づいて、コンテキストを選択することを含んでもよい。
【0011】
いくつかの実装では、コンテキスト削減条件は、ビットシーケンス内の少なくとも閾値数のビットが先にコーディングされていることを決定することを含んでもよく、削減コンテキスト集合は、近傍系構成とビットシーケンス内の先にコーディングされたビットのパターンとの各可能性として考えられる組み合わせをより少ないコンテキストにマッピングする、ルックアップテーブルを含んでもよい。いくつかの実施例では、ルックアップテーブルは、個別の対の利用可能なコンテキスト間の距離測定値が閾値未満であることの決定に基づく、複数のクラスへの利用可能なコンテキストの反復グループ化に基づいて生成され、複数のクラス内の各クラスは、より小さい集合内の個別のコンテキストを含んでもよく、近傍系構成とビットシーケンス内の先にコーディングされたビットのパターンとの可能性として考えられる組み合わせ毎に、利用可能なコンテキストが存在してもよい。
【0012】
いくつかの実装では、近傍ボリュームのうちの少なくともいくつかは、ボリュームと少なくとも1つの面を共有する、近傍ボリュームである。
【0013】
さらなる側面では、本願は、エンコーディングおよびデコーディングするそのような方法を実装するように構成される、エンコーダおよびデコーダを説明する。
【0014】
さらにさらなる側面では、本願は、実行されると、1つ以上のプロセッサに、エンコーディングおよび/またはデコーディングする説明される方法を実施させる、コンピュータ実行可能プログラム命令を記憶する、非一過性コンピュータ可読媒体を説明する。
【0015】
さらに別の側面では、本願は、コンピュータによって実行されると、コンピュータに、エンコーディングおよび/またはデコーディングする説明される方法を実施させる、プログラム命令を含有する、コンピュータ可読シグナルを説明する。
【0016】
本願の他の側面および特徴は、付随の図と併せて、実施例の以下の説明の精査から、当業者によって理解されるであろう。
【0017】
本発明の一側面または実施形態に関連して説明される任意の特徴はまた、1つ以上の他の側面/実施形態に関して使用され得る。本発明のこれらおよび他の側面は、本明細書に説明される実施形態から明白となり、それを参照して解明されるであろう。
【0018】
ここで、一例として、本願の例示的実施形態を示す、付随の図面が参照されるであろう。
【図面の簡単な説明】
【0019】
【
図1】
図1は、例示的点群エンコーダの簡略化されたブロック図を示す。
【0020】
【
図2】
図2は、例示的点群デコーダの簡略化されたブロック図を示す。
【0021】
【
図3】
図3は、例示的部分的サブボリュームおよびコーディングするための関連付けられたツリー構造を示す。
【0022】
【
図4】
図4は、八分木の回帰的分裂およびコーディングを図示する。
【0023】
【
図5】
図5は、八分木からのある例示的立方体内の例示的走査パターンを示す。
【0024】
【
図6】
図6は、ある例示的立方体内の例示的占有状態パターンを示す。
【0025】
【
図7】
図7は、フローチャート形態において、点群をエンコーディングするための一例示的方法を示す。
【0026】
【0027】
【
図9】
図9は、近傍サブボリュームのある実施例を示す。
【0028】
【
図10】
図10は、近傍ノード間の占有状態を示す、例示的近傍系構成を示す。
【0029】
【
図11】
図11は、親パターン依存コンテキストを使用した点群エントロピエンコーディングのプロセスの1つの例証的実施形態を図式的に示す。
【0030】
【
図12】
図12は、近傍系構成依存コンテキストを使用した点群エントロピエンコーディングのプロセスの例証的実施形態を示す。
【0031】
【
図13】
図13は、フローチャート形態において、圧縮された点群データのビットストリームをデコーディングするための一例示的方法を示す。
【0032】
【
図14】
図14は、エンコーダの例示的な簡略化されたブロック図を示す。
【0033】
【
図15】
図15は、デコーダの例示的な簡略化されたブロック図を示す。
【0034】
【
図16】
図16は、例示的デカルト座標系および軸を中心とした例示的回転および/または反射を示す。
【0035】
【
図17】
図17は、Z軸を中心とする回転の1回または数回の反復下の近傍系構成の不変性のクラスを示す。
【0036】
【
図18】
図18は、垂直反射に関する近傍系構成の不変性のクラスを示す。
【0037】
【
図19】
図19は、回転および反射の両方に関する不変性のクラスを示す。
【0038】
【
図20】
図20は、3回の回転および反射下の不変性のクラスを示す。
【0039】
【
図21】
図21は、占有状態パターンに関する非バイナリコーディングとカスケード表示されたバイナリコーディングとの間の等価性を図示する。
【0040】
【
図22】
図22は、フローチャート形態において、バイナリコーディングを使用してツリーベースの点群コーダ内の占有状態パターンをコーディングするための一例示的方法を示す。
【0041】
【
図23】
図23は、例示的エンコーダの一部の簡略化されたブロック図を示す。
【0042】
【
図24】
図24は、近傍系遮断に基づく、例示的コンテキスト削減オペレーションを図式的に示す。
【0043】
【
図25】
図25は、近傍系遮断に基づく、別の例示的コンテキスト削減オペレーションを示す。
【0044】
【
図26】
図26は、フローチャート形態において、組み合わせられたコンテキスト削減を使用して占有状態パターンをバイナリコーディングする方法の一実施例を示す。
【発明を実施するための形態】
【0045】
類似参照番号が、類似コンポーネントを示すために、異なる図で使用されている場合がある。
【0046】
(例の実施形態の説明)
時として、下記の説明では、用語「ノード」、「ボリューム」、および「サブボリューム」は、同義的に使用され得る。ノードが、ボリュームまたはサブボリュームと関連付けられることを理解されたい。ノードは、内部ノードまたは葉ノードであり得る、ツリー上の特定の点である。ボリュームまたはサブボリュームは、ノードが表す、境界された物理的空間である。用語「ボリューム」は、ある場合には、点群を含有するために定義された最大の境界された空間を指すために使用され得る。ボリュームは、点群データをコーディングするために相互接続されたノードのツリー構造を確立する目的のために、サブボリュームに再帰的に分割され得る。
【0047】
本願では、用語「および/または」は、列挙された要素単独、要素の任意の副次的組み合わせ、またはその全てのうちのいずれか1つを含み、かつ必ずしも付加的要素を除外せずに、列挙された要素のあらゆる可能性として考えられる組み合わせおよび副次的組み合わせを網羅するように意図される。
【0048】
本願では、語句「…または…のうちの少なくとも一方」は、列挙された要素単独、要素の任意の副次的組み合わせ、またはその全てのうちのいずれか1つを含み、必ずしも任意の付加的要素を除外せず、かつ必ずしも要素の全てを要求せずに、列挙された要素のうちの任意の1つ以上のものを網羅するように意図される。
【0049】
点群は、3次元座標系内の点の集合である。点は、多くの場合、1つ以上の物体の外部表面を表すように意図される。各点は、3次元座標系内の場所(位置)を有する。位置は、3つの座標(X、Y、Z)によって表され得、これは、デカルトまたは任意の他の座標系であることができる。点は、色等の他の関連付けられる属性を有してもよく、これはまた、ある場合には、R、G、BまたはY、Cb、Cr等の3つの成分値であってもよい。他の関連付けられる属性は、点群データのための所望の用途に応じて、透明度、反射率、法線ベクトル等を含んでもよい。
【0050】
点群は、静的または動的であることができる。例えば、物体またはトポグラフィの詳細な走査またはマッピングは、静的点群データであり得る。マシンビジョン目的のための環境のLiDARベースの走査は、点群(少なくとも潜在的に)が、経時的に、例えば、ボリュームの各連続走査に伴って変化するという点で動的であり得る。動的点群は、したがって、点群の時系列シーケンスである。
【0051】
点群データは、いくつかの実施例を挙げると、保護管理(歴史的または文化的物体の走査)、マッピング、マシンビジョン(自律または半自律走行車等)、および仮想現実システムを含む、いくつかの用途において使用され得る。マシンビジョンのような用途のための動的点群データは、保護管理目的のためのもののような静的点群データと非常に異なり得る。自動車ビジョンは、例えば、典型的には、高頻度の捕捉を伴うLiDAR(または類似)センサを通して取得される、比較的に低分解能で、無色の、非常に動的な点群を伴う。そのような点群の目的は、人間による消費または視認のためではなく、むしろ、決定プロセスにおける機械的物体検出/分類のためである。実施例として、典型的LiDARフレームは、約数万の点を含有する一方、高品質仮想現実用途は、数百万の点を要求する。算出速度が増加し、新しい用途が見出されるにつれて、より高い分解能データの需要が経時的に存在するであろうことが、予期され得る。
【0052】
点群データは、有用であるが、効果的かつ効率的な圧縮、すなわち、エンコーディングおよびデコーディングプロセスの欠如が、採用および展開を妨げ得る。オーディオまたはビデオのような他のデータ圧縮の場合には生じない、点群をコーディングする際の特定の課題は、点群の幾何学形状のコーディングである。点群は、疎らに取り込まれる傾向にあり、これは、点の場所を効率的にコーディングすることをはるかに困難にする。
【0053】
点群データをコーディングするためのより一般的機構のうちの1つは、ツリーベースの構造の使用を通したものである。ツリーベースの構造では、点群のための境界3次元ボリュームが、サブボリュームに再帰的に分割される。ツリーのノードは、サブボリュームに対応する。サブボリュームをさらに分割するかどうかの決定は、ツリーの分解能および/またはサブボリューム内に含有される任意の点が存在するかどうかに基づき得る。葉ノードが、その関連付けられるサブボリュームが点を含有するかどうかを示す、占有状態フラグを有し得る。分裂フラグが、ノードが子ノードを有しているかどうか(すなわち、現在のボリュームがサブボリュームにさらに分裂されているかどうか)をシグナリングし得る。これらのフラグは、ある場合には、エントロピコーディングされてもよく、ある場合には、予測コーディングが、使用されてもよい。
【0054】
一般に使用されるツリー構造は、八分木である。本構造では、ボリューム/サブボリュームは全て、立方体であって、サブボリュームの各分裂は、8つのさらなるサブボリューム/サブ立方体をもたらす。別の一般に使用されるツリー構造は、KDツリーであって、その中でボリューム(立方体または矩形直方体)は、軸のうちの1つに直交する平面によって2つに再帰的に分割される。八分木は、KDツリーの特殊例であって、ボリュームは、それぞれ、3つの軸のうちの1つに直交する、3つの平面によって分割される。これらの実施例は両方とも、立方体または矩形直方体に関するが、しかしながら、本願は、そのようなツリー構造に制限されず、ボリュームおよびサブボリュームは、いくつかの用途では、他の形状を有してもよい。ボリュームのパーティション化は、必ずしも、2つのサブボリューム(KDツリー)または8つのサブボリューム(八分木)にではなく、非矩形形状への分割を含む、または非隣接サブボリュームを伴う、他のパーティションを伴い得る。
【0055】
本願は、説明を容易にするために、かつそれらが自動車用途のための一般的候補ツリー構造であるため、八分木を参照し得るが、本明細書に説明される方法およびデバイスが、他のツリー構造を使用して実装され得ることを理解されたい。
【0056】
ここで、本願の側面による、点群エンコーダ10の簡略化されたブロック図を示す、
図1を参照する。点群エンコーダ10は、点群データを受信し、点群を含有する立体空間の幾何学形状を表し、その幾何学形状内の点群からの点の場所または位置を示す、ツリー(本実施例では、八分木)を生産するためのツリー確立モジュール12を含む。
【0057】
八分木を作成し、点群をコーディングするための基本プロセスは、以下を含み得る。
1.座標系内に点群を含有する、境界ボリューム(立方体)から開始する。
2.ボリュームを8つのサブボリューム(8つのサブ立方体)に分裂させる。
3.サブボリューム毎に、サブボリュームが空である場合、0で、または少なくとも1つの点がその中に存在する場合、1で、サブボリュームをマークする。
4.全てのサブボリュームが1でマークされるために、分裂の最大深度に到達するまで、(2)を繰り返し、それらのサブボリュームを分裂させる。
5.最大深度の全ての葉サブボリューム(サブ立方体)に関して、非空である場合、1で、そうでなければ、0で、葉立方体をマークする。
【0058】
上記のプロセスは、占有状態が分裂に匹敵するプロセスとして説明される場合があり、分裂が、占有状態を含意し、それを超えるとさらなる分裂が生じないであろう、最大深度または分解能が存在する、制約を伴う。この場合、単一フラグが、ノードが分裂されるかどうか、故に、少なくとも1つの点によって占有されているかどうかをシグナリングし、その逆も同様である。最大深度では、フラグは、さらなる分裂が可能ではないという占有状態をシグナリングする。
【0059】
いくつかの実装では、分裂および占有状態は、ノードが、占有され得、分裂される場合とそうではない場合があるように、独立している。本実装には、以下の2つの変形例が存在する。
1.分裂される、したがって、占有されている。シグナルフラグは、ノードが分裂されるかどうかを示す。分裂される場合、ノードは、点を含有しなければならない、すなわち、分裂は、占有状態を含意する。そうでなければ、ノードが、分裂されない場合、さらなる占有状態フラグが、ノードが少なくとも1つの点を含有するかどうかをシグナリングする。故に、ノードが、さらに分裂されない、すなわち、葉ノードであるとき、葉ノードは、関連付けられた占有状態フラグを有し、任意の点を含有するかどうかを示さなければならない。
2.占有されている、したがって、分裂される。単一フラグが、ノードが占有されているかどうかを示す。占有されていない場合、分裂は、生じない。占有されている場合、分裂フラグは、ノードがさらに分裂されるかどうかを示すようにコーディングされる。
【0060】
上記に説明されるプロセスのうちのいずれがツリーを確立するために使用されるかに関係なく、事前に定義された順序(幅優先または深度優先で、各分割されたサブボリューム内の走査パターン/順序に従って)でトラバースされ、フラグ(占有状態および/または分裂フラグ)からビットのシーケンスを生産し得る。これは、ツリーの直列化またはバイナリ化と称され得る。
図1に示されるように、本実施例では、点群エンコーダ10は、八分木をバイナリ化し、ツリーを表すバイナリ化されたデータのビットストリームを生産するためのバイナライザ14を含む。
【0061】
本ビットのシーケンスは、次いで、エントロピエンコーダ16を使用してエンコーディングされ、圧縮されたビットストリームを生産し得る。エントロピエンコーダ16は、エントロピエンコーダ16によるコンテキスト決定に基づくビットをコーディングするための確率を規定する、コンテキストモデル18を使用して、ビットのシーケンスをエンコーディングし得る。コンテキストモデル18は、各ビットまたは定義されたビットの集合のコーディング後、適応的に更新されてもよい。エントロピエンコーダ16は、ある場合には、バイナリ算術エンコーダであってもよい。バイナリ算術エンコーダは、いくつかの実装では、コンテキスト適応バイナリ算術コーディング(CABAC)を採用してもよい。いくつかの実装では、算術コーダ以外のコーダが、使用されてもよい。
【0062】
ある場合には、エントロピエンコーダ16は、バイナリコーダではなくてもよく、代わりに、非バイナリデータに作用してもよい。ツリー確立モジュール12からの出力八分木データは、バイナリ形態で評価されなくてもよく、代わりに、非バイナリデータとしてエンコーディングされてもよい。例えば、八分木の場合、その走査順序におけるサブボリューム内の8つのフラグ(例えば、占有状態フラグ)は、28-1ビット番号(例えば、値0が分裂されたサブボリュームに関して不可能である、すなわち、全体的に占有されていない場合、分裂されてないであろうため、1~255の値を有する整数)であると見なされ得る。本番号は、いくつかの実装では、マルチシンボル算術コーダを使用して、エントロピエンコーダによってエンコーディングされ得る。サブボリューム、例えば、立方体内では、本整数を定義する、フラグのシーケンスは、「パターン」と称され得る。
【0063】
ビデオまたは画像コーディングのように、点群コーディングは、サブボリュームに関するパターンを予測するように行われる予測オペレーションを含むことができる。予測は、空間的(同一点群内の先にコーディングされたサブボリュームに依存する)または時間的(点群の時系列シーケンス内の先にコーディングされた点群に依存する)であってもよい。
【0064】
エンコーダ10に対応する、例示的点群デコーダ50のブロック図が、
図2に示される。点群デコーダ50は、エンコーダ10によって使用される同一コンテキストモデル54を使用する、エントロピデコーダ52を含む。エントロピデコーダ52は、圧縮されたデータの入力ビットストリームを受信し、データをエントロピデコーディングし、解凍されたビットの出力シーケンスを生産する。シーケンスは、次いで、ツリーリコンストラクタ56によって再構築された点群データに変換される。ツリーリコンストラクタ56は、解凍されたデータおよびツリーデータがバイナリ化された走査順序の知識からツリー構造を再確立する。ツリーリコンストラクタ56は、したがって、点群から点の場所を再構築することが可能である(ツリーコーディングの分解能に準拠する)。
【0065】
例示的部分的サブボリューム100が、
図3に示される。本実施例では、サブボリューム100は、例証を容易にするために、2次元で示され、サブボリューム100のサイズは、16×16である。サブボリュームが、4つの8×8サブ正方形に分割されており、それらのうちの2つが、4×4サブ正方形にさらに細分割されており、それらのうちの3つはさらに、2×2サブ正方形に分割され、2×2サブ正方形のうちの1つが、次いで、1×1正方形に分割されることに留意されたい。1×1正方形は、ツリーの最大深度であって、位置点データのための最微細分解能を表す。点群からの点は、ドットとして図中に示される。
【0066】
ツリー102の構造は、サブボリューム100の右に示される。分裂フラグ104のシーケンスおよび占有状態フラグ106の対応するシーケンスが、事前に定義された幅優先走査順序で取得され、ツリー102の右に示される。本例証的実施例では、分裂されていない、すなわち、ゼロに設定される関連付けられた分裂フラグを有する、サブボリューム(ノード)毎の占有状態フラグが存在することが観察されるであろう。これらのシーケンスは、エントロピエンコーディングされ得る。
【0067】
占有されている≡分裂条件を採用する、別の実施例が、
図4に示される。
図4は、八分木150の回帰的分裂およびコーディングを図示する。八分木150の一部のみが、図に示される。FIFO152は、本プロセスの幅優先性質を図示するために、分裂のためのノードを処理するように示される。FIFO152は、その親ノード156の処理後にさらに分裂させるために、FIFO152内の待ち行列に入れられた占有されているノード154を出力する。ツリービルダは、占有されているノード154と関連付けられたサブボリュームを8つのサブボリューム(立方体)に分裂させ、その占有状態を決定する。占有状態は、サブボリューム毎に、占有状態フラグによって示されてもよい。事前に規定された走査順序において、フラグは、ノード154に関する占有状態パターンと称され得る。パターンは、事前に定義された走査順序でサブボリュームと関連付けられた占有状態フラグのシーケンスを表す、整数によって規定されてもよい。八分木の場合、パターンは、[1,255]の範囲内の整数である。
【0068】
エントロピエンコーダは、次いで、コンテキストモデルによって規定された確率に基づいて、非バイナリ算術エンコーダを使用して、そのパターンをエンコーディングする。本実施例では、確率は、初期分布モデルに基づくパターン分布であって、適応的に更新されてもよい。1つの実装では、パターン分布は、事実上、各パターン(1~255の整数)がコーディングの間に遭遇された回数のカウンタである。パターン分布は、各サブボリュームがコーディングされた後、更新されてもよい。パターン分布は、パターンの相対的頻度が、確率査定に深く関わり、絶対カウント数ではないため、必要に応じて、正規化されてもよい。
【0069】
パターンに基づいて、占有されている(例えば、フラグ=1を有する)、それらの子ノードは、次いで、順番にさらに分裂させるために、FIFO152の中に入れられる(ノードがツリーの最大深度ではないことを前提とする)。
【0070】
ここで、八分木からの例示的立方体180を示す、
図5を参照する。立方体180は、8つのサブ立方体に細分割される。フラグを読み取るための走査順序は、8ビットストリングをもたらし、これは、バイナリ内の整数[1,255]として読み取られることができる。走査順序およびストリング内の各サブ立方体のフラグの結果として生じるビット位置に基づいて、サブ立方体は、
図5に示される値を有する。走査順序は、エンコーダおよびデコーダの両方が同一走査順序を使用することを前提として、サブ立方体の任意のシーケンスであってもよい。
【0071】
実施例として、
図6は、その中で4つの「正面」サブ立方体が占有されている、立方体180を示す。これは、占有されているサブ立方体が立方体1+4+16+64であることに基づく、パターン85に対応するであろう。整数パターン番号は、サブ立方体内の占有状態のパターンを規定する。
【0072】
八分木表現以上の概して任意のツリー表現は、ツリーが点座標のより高次のビットを分解する傾向にあるため、空間相関を伴う点を表す際に効率的である。八分木に関して、各レベルの深度は、精緻化あたり8ビットを犠牲にして、コンポーネント毎に1ビットずつサブボリューム内の点の座標を精緻化する。さらなる圧縮が、分裂情報、すなわち、各ツリーノードと関連付けられたパターンをエントロピコーディングすることによって取得される。本さらなる圧縮は、パターン分布が均一ではないため、可能であって、非均一性は、相関の別の結果である。
【0073】
現在のシステムにおける1つの潜在的非効率性は、パターン分布(例えば、ツリーの先にコーディングされたノードに見られるパターン番号のヒストグラム)が、点群をコーディングする過程にわたって発生することである。ある場合には、パターン分布は、等確率であるように初期化されてもよい、またはある他の所定の分布に初期化されてもよいが、但し、1つのパターン分布の使用は、コンテキストモデルが、局所的幾何学的相関を考慮しない、または利用しないことを意味する。
【0074】
欧州特許出願第18305037.6号では、本出願人は、特定のノードの近くの先にコーディングされたノードからのある占有状態情報に基づいて、特定のノードの占有状態のパターンをコーディングする際に使用されるための利用可能なパターン分布の中から選択するための方法およびデバイスを説明している。一例示的実装では、占有状態情報は、特定のノードに対する親の占有状態のパターンから取得される。別の例示的実装では、占有状態情報は、特定のノードの近傍の1つ以上のノードから取得される。欧州特許出願第18305037.6号の内容は、参照することによって本明細書に組み込まれる。
【0075】
ここで、フローチャート形態において、点群をエンコーディングする一例示的方法200を示す、
図7を参照する。方法200は、本実施例では、占有されているノード(サブボリューム)の回帰的分裂およびコーディングするためのツリーの幅優先トラバーサルを伴う。
【0076】
オペレーション202では、エンコーダは、現在のノードに関する占有状態のパターンを決定する。現在のノードは、それぞれ、個別のサブ立方体に対応する、8つの子ノードに分裂されている、占有されているノードである。現在のノードに関する占有状態のパターンは、走査順序で8つの子ノードの占有状態を規定する。上記に説明されるように、本占有状態のパターンは、1~255の整数、例えば、8ビットバイナリストリングを使用して示されてもよい。
【0077】
オペレーション204では、エンコーダは、確率分布の集合の中から確率分布を選択する。確率分布の選択は、近隣の先にコーディングされたノード、すなわち、現在のノードの近傍系である、少なくとも1つのノードからのある占有状態情報に基づく。いくつかの実施形態では、少なくとも1つの面を共有する、個別のサブボリュームと関連付けられる場合、2つのノードが、近傍にあることになる。より広い定義では、少なくとも1つの縁を共有する場合、ノードは、近傍にあることになる。さらにより広い定義では、少なくとも1つの頂点を共有する場合、2つのノードは、近傍にあることになる。その中で現在のノードが子ノードである、親パターンは、現在のノードおよび現在のノードに対する7つの兄弟ノードに関する占有状態データを提供する。いくつかの実装では、占有状態情報は、親パターンである。いくつかの実装では、占有状態情報は、現在のノードとツリーの同一深度レベルにあるノードを含むが、異なる親ノードを有する、近傍系ノードの集合に関する占有状態データである。ある場合には、これらの組み合わせも、可能性として考えられる。例えば、近傍系ノードの集合は、いくつかの兄弟ノードおよびいくつかの非兄弟ノードを含んでもよい。
【0078】
いったん確率分布が、選択されると、エンコーダは、次いで、オペレーション206によって示されるように、選択された確率分布を使用して、現在のノードに関する占有状態パターンをエントロピエンコーディングする。次いで、オペレーション208において、占有状態パターンに基づいて、選択された確率分布を更新し、例えば、その占有状態パターンに対応するカウント数をインクリメントしてもよい。オペレーション210では、エンコーダは、コーディングするためのさらなるノードが存在するかどうかを評価し、該当する場合、オペレーション202に戻り、次のノードをコーディングする。
【0079】
オペレーション204における確率分布選択は、近隣の先にコーディングされたノードに関する占有状態データに基づくことになる。これは、エンコーダおよびデコーダの両方が、独立して、同一選択を行うことを可能にする。確率分布選択の下記の議論に関して、現在のノード302を含む、部分的八分木300を図式的に図示する、
図8が、参照されるであろう。現在のノード302は、占有されているノードであって、コーディングするために評価されている。現在のノード302は、ひいては、祖父母ノード(図示せず)に対する子である、親ノード306の8つの子のうちの1つである。現在のノード302は、8つの子ノード304に分割される。現在のノード302に関する占有状態パターンは、子ノード304の占有状態に基づく。例えば、図示されるように、黒色ドットが占有されているノードであるという慣例を使用すると、占有状態パターンは、00110010、すなわち、パターン50であり得る。
【0080】
現在のノード302は、同一親ノード306を有する、兄弟ノード308を有する。親パターンは、親ノード306に関する占有状態パターンであって、これは、図示されるように、00110000、すなわち、パターン48であろう。親パターンは、現在のノードに関する占有状態パターンをエントロピエンコーディングするための好適な確率分布を選択するための基礎としての役割を果たし得る。
【0081】
図9は、現在のノードを囲繞する近傍系の集合を図示し、近傍系は、ある面を共有するノードとして定義される。本実施例では、ノード/サブボリュームは、立方体であって、画像の中心における立方体は、面毎に1つずつ、6つの近傍系を有する。八分木では、現在のノードに対する近傍系が、3つの兄弟ノードを含むであろうことを理解されたい。また、同一親ノードを有していない、3つのノードを含むであろう。故に、近傍ノードのうちのいくつかに関する占有状態データは、それらが兄弟であるため、利用可能であろうが、いくつかの近傍ノードに関する占有状態データは、それらのノードが先にコーディングされているかどうかに応じて、利用可能である場合とそうではない場合がある。特殊ハンドリングが、欠測近傍系に対処するために適用されてもよい。いくつかの実装では、欠測近傍系は、占有されていると想定されてもよい、または占有されていないと想定されてもよい。近傍系の定義が、共有縁に基づいて、または共有頂点に基づいて、近傍ノードを含むように拡大され、査定において付加的な隣接するサブボリュームを含み得ることを理解されたい。
【0082】
前述のプロセスが、より好適なコンテキストを選択し、現在のノード302の占有状態データをエントロピコーディングするためのより正確な確率を使用するように、現在のノード302の占有状態の尤度を決定する試みにおいて、近隣のノードの占有状態を考察することを理解されたい。現在のノード302とある面を共有する、近傍ノードの占有状態ステータスが、そのうちの3つののみが、縁を共有し、そのうちの1つのみが、頂点を共有するであろう(八分木の場合)、兄弟ノードの占有状態ステータスに関する査定に基づくものより、現在のノード302が隔離されている可能性が高いかどうかの正確な査定であり得ることを理解されたい。しかしながら、兄弟の占有状態ステータスの査定は、査定のための関連データの全てが親ノードの一部であって、実装のためにより小さいメモリ占有面積を有することを意味するという点で、モジュール式であるという利点を有する一方、近傍系占有状態ステータスの査定は、将来の近隣ノードをコーディングすることに関連して近傍系占有状態ステータスを決定するときに必要とされる場合、ツリー占有状態データをバッファすることを伴う。
【0083】
近傍系の占有状態は、占有状態パターンに関して上記に説明されるように、事実上、値を各近傍系に割り当てる、走査順序で読み取られ得る。図示されるように、近傍ノードは、事実上、1、2、4、8、16、または32の値をとり、したがって、64(0~63)の可能性として考えられる近傍系占有状態構成が存在する。本値は、本明細書では、「近傍系構成」と称され得る。実施例として、
図10は、近傍系1、2、4、および8が、占有されており、近傍系16および32が、空である、近傍系構成15の実施例を図示する。
【0084】
ある場合には、上記2つの基準(親パターンおよび近傍系構成)の両方が、適用されてもよい、またはそれらの間で選択されてもよい。例えば、近傍系が、利用可能である場合、確率分布選択は、近傍ノードに基づいて行われてもよいが、しかしながら、近傍系のうちの1つ以上のものが、それらがまだコーディングされていないノードからのものであるために利用不可能である場合、確率分布選択は、兄弟ノード(親パターン)に基づく分析に戻ってもよい。
【0085】
さらに別の実施形態では、確率分布選択は、代替として、または加えて、祖父母パターンに基づいてもよい。言い換えると、確率分布選択は、親ノード306に対して兄弟である、叔父ノードの占有状態ステータスに基づき得る。
【0086】
なおもさらなる実装では、付加的または代替査定が、確率分布選択に対して考慮に入れられてもよい。例えば、確率分布選択は、親ノードに対する近傍系ノードまたは祖父母ノードに対する近傍系ノードの占有状態ステータスを考察してもよい。
【0087】
局所的占有状態ステータスを査定するための上記の基準のうちの任意の2つ以上のものが、いくつかの実装では、組み合わせて使用されてもよい。
【0088】
非バイナリエントロピコーダの場合、現在のノードに関する占有状態データは、確率分布を選択することによってコーディングされ得る。確率分布は、現在のノードに関する可能性として考えられる占有状態パターンの数に対応する、確率の数を含有する。例えば、八分木の占有状態パターンをコーディングする場合、28-1=255の可能性として考えられるパターンが存在し、各確率分布が255の確率を含むことを意味する。いくつかの実施形態では、確率分布の数は、選択基準内の、すなわち、近傍系、兄弟、および/または親占有状態データを使用した、可能性として考えられる占有状態結果の数に等しくあり得る。例えば、八分木に関する親パターンが、使用するための確率分布を決定するための選択基準として使用される場合、それぞれ、255の確率を伴う、255の確率分布が存在することになるであろう。近傍系構成の場合、近傍系が、ある面を共有するように定義される場合、各分布が255の確率を含有する、64の確率分布が存在することになるであろう。
【0089】
過度に多くの分布は、データの不足、すなわち、コンテキスト減少に起因して、低速適合をもたらし得ることを理解されたい。故に、いくつかの実施形態では、類似パターンは、同一確率分布を使用するようにグループ化されてもよい。例えば、別個の分布が、完全に占有されている場合、垂直に配向されている場合、水平に配向されている場合、大部分が空である場合、および全ての他の場合に対応するパターンのために使用されてもよい。これは、確率分布の数を約5まで削減し得る。パターンの異なるグループ化が、異なる数の確率分布をもたらすように形成されることを理解されたい。
【0090】
ここで、親パターン依存コンテキストを使用した点群エントロピエンコーディングのプロセス400の1つの例証的実施形態を図式的に示す、
図11を参照する。本実施例では、現在のノード402は、8つの子ノードに分裂されており、その占有状態パターン404は、非バイナリエントロピエンコーダ406を使用してエンコーディングされることになる。非バイナリエントロピエンコーダ406は、6つの可能性として考えられる確率分布408のうちの1つから選択される確率分布を使用する。選択は、親パターンに基づく、すなわち、選択は、現在のノード402に対する親ノードからの占有状態情報に基づく。親パターンは、1~255の整数によって識別される。
【0091】
確率分布の選択は、パターンが、完全ノード(例えば、パターン=255)、水平構造(例えば、パターン=170または85、Z軸が垂直であると仮定する)、垂直構造(例えば、パターン=3、12、48、192)、疎らに取り込まれた分布(例えば、パターン=1、2、4、8、16、32、64、または128、すなわち、兄弟ノードのいずれも、占有されていない)、半疎らに取り込まれた分布(現在のノードおよび兄弟ノード間の占有されているノードの総数≦3)、および全ての他の場合に対応するかどうかを査定する、決定ツリーであってもよい。異なるカテゴリのために示される例示的パターンは、単に、実施例である。例えば、「水平」カテゴリは、同一水平レベル上の2つまたは3つの占有されている立方体を伴う、パターンを含み得る。「垂直」カテゴリは、壁状配列において3つまたは4つの占有されている立方体を伴う、パターンを含み得る。また、より細かい段階化が、使用され得ることを理解されたい。例えば、「水平」カテゴリは、それぞれ、異なる確率分布を伴う、立方体の上側部分における水平および立方体の底部部分における水平にさらに細分割されてもよい。ある相関を有する、占有状態パターンの他のグループ化が、行われ、対応する確率分布に配分されてもよい。近傍系構成および近傍系構成間の不変性のコンテキストにおけるパターンのグループ化に関するさらなる議論が、さらに下記に記載される。
【0092】
図12は、近傍系構成依存コンテキストを使用した点群エントロピエンコーディングのプロセス500の例証的実施形態を示す。本実施例は、
図9に関連して上記で使用される、近傍系の定義および近傍系構成付番を仮定する。本実施例はまた、各近傍系構成が、専用確率分布を有し、64の異なる確率分布が存在することを意味すると想定する。現在のノード502は、エンコーディングされることになる占有状態パターン504を有する。確率分布は、現在のノード502に対する近傍ノードに基づいて選択される。すなわち、[0,63]内の近傍系構成NCが、見出され、関連付けられる確率分布を選択するために使用される。
【0093】
いくつかの実施形態では、近傍系構成が、1つを上回る近傍系構成が、パターン内の類似性に基づいて同一確率分布を使用するように、グループ化され得ることを理解されたい。いくつかの実施形態では、プロセスは、分布のコンテクスチャラゼイション(選択)のために近傍系の異なる配列を使用してもよい。全3つの軸上で対角線上に隣接する8つの近傍系または2つの軸で対角線上に隣接する12の近傍系等、付加的近傍系が、追加されてもよい。特定の近傍系を回避する、実施形態もまた、例えば、付加的依存性を深度優先走査に導入する、または大規模ツリーに関してコーデック状態を削減するように特定の軸上のみに依存性を導入する、近傍系の使用を回避するために使用されてもよい。
【0094】
本実施例では、NC=0の例が、具体的様式においてハンドリングされる。占有されている近傍系が存在しない場合、現在のノード502が隔離されていることを示し得る。故に、プロセス500は、占有されている現在のノード502に対する子ノードの数をさらにチェックする。1つのみの子ノードが、占有されている、すなわち、NumberOccupied(NO)が、1に等しい場合、フラグが、単一子ノードが占有されていることを示すようにエンコーディングされ、ノードに対するインデックスが、3ビットを使用してコーディングされる。1つを上回る子ノードが、占有されている場合、プロセス500は、占有状態パターンをコーディングするために、NC=0確率分布を使用する。
【0095】
ここで、フローチャート形態において、エンコーディングされた点群データのビットストリームをデコーディングするための一例示的方法600を示す、
図13を参照する。
【0096】
オペレーション602では、デコーダは、現在のノードの近くの1つ以上のノードからの占有状態情報に基づいて、確率分布のうちの1つを選択する。上記に説明されるように、占有状態情報は、現在のノードに対する親ノードからの親パターン、すなわち、現在のノードおよびその兄弟の占有状態であってもよい、または現在のノードに対する近傍ノードの占有状態であってもよく、これは、兄弟ノードのうちのいくつかを含んでもよい。他または付加的占有状態情報が、いくつかの実装において使用されてもよい。
【0097】
いったん確率分布が、選択されると、オペレーション604では、デコーダは、選択された確率分布を使用して、ビットストリームの一部をエントロピデコーディングし、現在のノードに関する占有状態パターンを再構築する。占有状態パターンは、エンコーディングされた点群データを再構築するように、ツリーを再構築する際に、デコーダによって使用される。いったん点群データが、デコーディングされると、ビューのレンダリング、セグメント化/分類、または他の用途等の使用のために、デコーダから出力されてもよい。
【0098】
オペレーション606では、デコーダは、再構築された占有状態パターンに基づいて、確率分布を更新し、次いで、デコーディングするためのさらなるノードが存在する場合、バッファ内の次のノードに移動し、オペレーション602に戻る。
【0099】
上記に説明される方法の例示的実装は、コーディング複雑性のごくわずかな増加を伴う、圧縮改良を提供することが証明されている。近傍系ベースの選択は、親パターンベースの選択より良好な圧縮性能を示すが、さらなる算出複雑性およびメモリ使用量を有する。いくつかの試験では、MPEG点群試験モデルに優る点あたりビットの相対的改良は、4~20%である。試験データを用いて到達される分布に基づく確率分布の初期化が、均一分布を伴う初期化と比較して改良された性能につながることに留意されたい。
【0100】
上記の実施例のうちのいくつかは、占有状態パターンをシグナリングするための非バイナリコーダを使用する、ツリーコーディングプロセスに基づく。バイナリエントロピコーダを採用するための新しい開発が、さらに下記に提示される。
【0101】
近傍系ベースの確率分布選択の1つの変形例では、分布の数は、近傍帯の対称性を利用することによって削減され得る。近傍帯を順列することによって、またはパターン分布を順列することによって、対称中心線を有する構造的に類似する構成は、同一分布を再使用することができる。言い換えると、同一パターン分布を使用し得る、近傍系構成は、クラスにグループ化されてもよい。1つを上回る近傍系構成を含有するクラスは、本明細書では、それらの他の構成の反射または順列を経て、近傍系構成のうちの1つが、事実上、他の近傍系構成を包摂するという点で、「近傍系構成」と称され得る。
【0102】
実施例として、それぞれ、角近傍系パターンの対称性を表す、8つの角パターンNC∈[21,22,25,26,37,38,41,42]を検討する。NCのこれらの値は、特定の、但し、異なるノードのパターンと良好に相関される可能性が高い。さらに、これらの相関パターンは、近傍系パターンと同一対称性に追従する可能性が高い。一例として、単一分布を再使用し、その分布の確率を順列することを経て、NCの複数の例を表す、方法が、実装されてもよい。
【0103】
エンコーダが、子ノードの占有状態に基づいて、ノードのパターン番号を導出する。エンコーダは、近傍系構成に従って、分布および順列関数を選択する。エンコーダは、順列関数に従って、分布内に含有される確率を並べ替え、続いて、順列された分布を使用し、パターン番号を算術的にエンコーディングする。算術エンコーダによる順列された分布の確率の更新は、逆順列関数を経て、元の分布に逆マッピングされる。
【0104】
対応するデコーダは、最初に、近傍系構成に従って、同一分布および順列関数を選択する。順列された分布が、エンコーダと同じ様式で生産され、順列された分布は、パターン番号をエントロピデコーディングするために、算術デコーダによって使用される。パターン番号を備えるビットは、次いで、それぞれ、対応する子に割り当てられる。
【0105】
同一順列が、分布自体のデータを並べ替えず、むしろ、ある間接レベルを導入し、順列関数を使用して、分布内の所与のインデックスのルックアップを順列して達成され得ることに留意されたい。
【0106】
代替実施形態は、分布ではなく、パターン自体の順列を検討し、それぞれ、エントロピエンコーディング/デコーディングに先立った、またはその後のシャッフリングを可能にする。そのような方法は、ビット毎のシャッフルオペレーションを通した効率的実装により適している可能性が高い。この場合、分布の並替は、エンコーダまたはデコーダのいずれによっても実施されず、むしろ、エンコーディングされたパターン番号の算出が、
【化1】
となるように修正され、式中、c
iは、i番目の子の占有状態の状態であって、σ(i)は、順列関数である。1つのそのような例示的順列関数
【化2】
が、NC=22に関する分布がNC=41のもののために使用されることを可能にする。順列関数は、
【化3】
を使用してエンコーディングされたパターン番号から子ノードの占有状態の状態を導出するために、デコーダによって使用されてもよい。
【0107】
要求される順列を導出するための方法は、近傍系構成の回転対称性に基づき得る、または特定の軸に沿った反射に基づき得る。さらに、順列が、例えば、対称性に従って、全ての位置を順列する必要はなく、部分的順列が、代わりに、使用されてもよい。例えば、NC=22をNC=41に順列するとき、対称性の軸内の位置は、順列されず、マッピング
【化4】
につながり得、式中、位置0、2、4、6は、順列されない。他の実施形態では、1および7の対のみが、入れ替えられる。
【0108】
回転対称性および反射に基づく実施形態の実施例が、以降、現在の立方体と共通面を共有する6つの近傍系を伴う、八分木の具体的例に関して提供される。一般性を失うことなく、
図16に示されるように、Z軸は、図を視認する方向に対して垂直に延在する。それぞれ、「上方」(「下方」)等の近傍系の相対的位置は、したがって、それぞれ、Z方向に増加(減少)する際、Z軸に沿ったものとして理解されるべきである。同一注釈は、X軸に沿った左/右およびY軸に沿った正面/背面にも当てはまる。
【0109】
図16は、それぞれ、Z、Y、およびX軸に沿った3つの回転2102、2104、および2106を示す。これらの3つの回転の角度は、90度であって、すなわち、それらは、4分の1旋回だけその個別の軸に沿った回転を実施する。
【0110】
図17は、Z軸に沿った回転2102の1回または数回の反復下の近傍系構成の不変性のクラスを示す。本不変性は、XY平面に属する任意の方向に沿った点群幾何学形状の同一統計的挙動を表す。これは、特に、XY平面によって局所的に近似される地球表面上を移動する車のユースケースに該当する。水平構成は、上方の近傍系(2202)および下方の近傍系(2204)の占有状態から独立した、4つの近傍系(現在の立方体の左、右、正面、および背面に位置する)の所与の占有状態である。4つの水平構成2206、2208、2210、および2212は、回転2102下で不変性の同一クラスに属する。同様に、2つの構成2214および2216も、不変性の同一クラスに属する。回転2102下では、不変性の6つのみのクラス(クラス2218の集合下にグループ化される)が存在する。
【0111】
垂直構成は、現在の立方体の左、右、正面、および背面に位置する、4つの近傍系の占有状態から独立した、2つの近傍系2202および2204の所与の占有状態である。
図18上に示されるように、4つの可能性として考えられる垂直構成が存在する。その結果、Z軸に沿った回転2102に対する不変性を考慮する場合、6×4=24の可能性として考えられる構成が存在することになる。
【0112】
Z軸に沿った反射2108が、
図16上に示される。
図18上に描写される垂直構成2302および2304は、反射2108下で不変性の同一クラスに属する。反射2108下では、不変性の3つのクラス(クラス2306の集合下でグループ化される)が存在する。反射2108下での不変性は、上向きおよび下向き方向が、点群幾何学形状統計の観点から本質的に同一に挙動することを意味する。これは、道路上で移動する車に関する、正確な仮定である。
【0113】
回転2102および反射2108の両方の下での不変性が仮定される場合、2つの集合2218および2306の積から生じる、不変性の18のクラスが存在することになる。これらの18のクラスが、
図19に表される。
【0114】
2つの他の回転2104および2106下でのさらなる不変性を適用すると、2つの構成2401および2402は、不変性の同一クラスに属する。さらに、2つの構成2411および2412、2つの構成2421および2422、3つの構成2431、2432、および2433、2つの構成2441および2442、2つの構成2451および2452、最後に、2つの構成2461および2462が、同一クラスに属する。その結果、3つの回転(2102、2104、および2106)および反射2108下の不変性が、
図20上に示されるような不変性の10のクラスにつながる。
【0115】
本明細書の上記で提供される実施例から、3つの回転および反射下の不変性を仮定する、または仮定しないことによって、有効近傍系構成、すなわち、64の近傍系構成がグループ化され得る、クラスの数は、64、24、18、または10のいずれかとなる。
【0116】
エントロピコーディングに先立って、パターンは、不変性クラスのうちの1つに属するように、近傍系構成と同一転換、すなわち、回転および反射を受ける。これは、不変近傍系構成とコーディングされたパターンとの間の統計的一貫性を保つ。
【0117】
また、ツリーのトラバーサルの間、子ノードが、先に訪問された同一ツリー深度にある近傍ノードを有し、必然的に、依存性として使用され得ることを理解されたい。これらの同一レベル近傍系に関して、親の併置された近傍系を調べる代わりに、同一レベルの近傍系が、使用されてもよい。同一レベル近傍系が、親の二等分された寸法を有するため、1つの構成は、4つの直接隣接する近傍子ノード(すなわち、現在のノードとある面を共有する4つ)のいずれかが占有されている場合、近傍系が占有されていると見なす。
【0118】
(バイナリコーディングを使用してツリー占有状態パターンをエントロピコーディングする)
ツリー占有状態をコーディングするために近傍系占有状態情報を使用する上記に説明される技法は、欧州特許出願第18305037.6号に詳述されている。説明される実施形態は、パターン分布が、近傍系占有状態情報に基づいて選択される、占有状態パターンの非バイナリエントロピコーディングの使用に焦点を当てている。しかしながら、いくつかの事例では、バイナリコーダの使用が、ハードウェア実装の観点からより効率的であり得る。また、多くの確率のオンザフライ更新は、高速アクセスメモリおよび算術コーダの中心部内での算出を要求し得る。故に、バイナリ算術コーダを使用して占有状態パターンをエントロピエンコーディングするための方法およびデバイスを見出すことが、有利であり得る。追跡するための圧倒的数のコンテキストを有することがないように保護しながら、圧縮性能を有意に劣化させずに行われ得る場合、バイナリコーダを使用することが、有利であろう。
【0119】
非バイナリコーダの代わりのバイナリコーダの使用は、以下のエントロピ式に反映される。
【化5】
【0120】
式中、X=(X
1、X
2)は、コーディングされることになる非バイナリ情報であって、Yは、コーディングするためのコンテキスト、すなわち、近傍系構成または選択されたパターン分布である。Xの非バイナリコーディングをバイナリコーディングに変換するために、情報(X
1、X
2)は、エントロピを増加させずに別個にコーディングされ得る、情報X
1およびX
2に分裂される。そのためには、2つのうちの一方を他方に応じてコーディングしなければならず、ここでは、X
2は、X
1に依存する。これは、Xにおける情報のnビットに拡張されることができる。例えば、n=3に関して、以下となる。
【化6】
【0121】
占有状態パターン、すなわち、ビットシーケンスXが、より長くなるにつれて、シーケンス内の後のビットをコーディングするためのより多くの条件が存在することを理解されたい。バイナリコーダ(例えば、CABAC)に関して、これは、追跡および管理するためのコンテキストの数の大幅な増加を意味する。占有状態パターンが8ビットシーケンスb=b0…b7である、八分木を実施例として使用すると、ビットシーケンスは、8つのバイナリ情報ビットb0…b7に分裂され得る。コーディングは、コンテキストを決定するために、近傍系構成N(またはNC)を使用し得る。上記に説明されるように、不変性のクラスへの近傍系構成のグループ化を通して、近傍系構成を10の有効近傍系構成に削減することができると仮定すると、Nは、{0,1,2,…,9}に属する整数である。簡略化のために、「不変近傍系構成のクラス」は、本明細書では、時として、単に、「近傍系構成」と称され得るが、本削減された数の近傍系構成が、不変性に基づく近傍系構成のクラスベースのグループ化に基づいて実現され得ることを理解されたい。
【0122】
図21は、バイナリエントロピコーディングのための8つの個々のビットへの8ビットパターンまたはシーケンスの分裂を図示する。シーケンスの第1のビットが、近傍系構成に基づいてエンコーディングされ、したがって、10の総利用可能コンテキストが存在することに留意されたい。シーケンスの次のビットが、近傍系構成および任意の先にエンコーディングされたビット、すなわち、ビットb
0に基づいてエンコーディングされる。これは、Nからの10とb
0からの2の積として取得される、20の総利用可能コンテキストを伴う。最終ビットb
7が、Nからの10と先にエンコーディングされたビットb
0,…,b
6によって与えられる部分的パターンからの128の積として取得される、1,280の利用可能なコンテキストから選択されたコンテキストを使用してエントロピエンコーディングされる。すなわち、ビット毎に、コンテキストの数(すなわち、条件/依存性の可能性として考えられる組み合わせ)は、定義された近傍系構成の数(本実施例では、クラスへの64の近傍系構成のグループ化に基づく、10)と、n-1の先にエンコーディングされたビットの順序付けられたシーケンス(2
n-1によって与えられる)から可能性として考えられる部分的パターンの数との積となる。
【0123】
その結果、占有状態パターンのバイナリコーディングに関連して維持すべき合計2,550のコンテキストが存在する。これは、追跡するには過剰に多数のコンテキストであって、相対的な不足は、特に、シーケンス内の後のビットに関するコンテキスト減少のため、不良性能を生じさせ得る。
【0124】
故に、一側面では、本願は、コンテキストの集合が削減され得るかどうかを決定し、該当する場合、コンテキスト削減オペレーションを適用し、バイナリコーダを使用して占有状態パターンの少なくとも一部をエントロピコーディングするために、より小さい利用可能なコンテキストの集合を実現する、エンコーダおよびデコーダを開示する。別の側面では、本願はさらに、固定数のコンテキストから効果的コンテキスト選択を実施するために、同一コンテキスト削減オペレーションを使用した状態削減の1回以上の工程を適用する、エンコーダおよびデコーダを開示する。いくつかの実装では、コンテキスト削減は、コンテキストおよび/またはアルゴリズム条件のルックアップテーブルを生成する際に先験的に適用され、これは、次いで、好適なコンテキストを選択する際にエンコーダまたはデコーダによって使用される。削減は、エンコーダおよびデコーダが、選択すべきルックアップテーブル、またはそのルックアップテーブルからインデックス/選択し、選択されたコンテキストを取得する方法を決定するために評価する、試験可能条件に基づく。
【0125】
ここで、フローチャート形態において、バイナリコーディングを使用してツリーベースの点群コーダ内で占有状態パターンをコーディングするための一例示的方法3000を示す、
図22を参照する。方法3000は、エンコーダまたはデコーダによって実装されてもよい。エンコーダの場合、コーディングオペレーションが、エンコーディングであって、デコーダの場合、コーディングオペレーションは、デコーディングである。エンコーディングおよびデコーディングは、コンテキストベースのエントロピエンコーディングおよびデコーディングである。
【0126】
例示的方法3000は、特定のノード/ボリュームに関して、占有状態パターン、すなわち、ビットシーケンスをエントロピコーディングするためのものである。占有状態パターンは、ノード/ボリュームの子ノード(サブボリューム)の占有状態ステータスをシグナリングする。八分木の場合、8つの子ノード/サブボリュームが存在する。オペレーション3002では、近傍系構成が、決定される。近傍系構成は、占有状態パターンがコーディングされることになるボリュームの近傍にある1つ以上のボリュームの占有状態ステータスである。上記に議論されるように、近傍系構成を決定するための種々の可能性として考えられる実装が存在する。いくつかの実施例では、10の近傍系構成が存在し、現在のボリュームに関する近傍系構成は、現在のボリュームとある面を共有する、6つのボリュームの占有状態に基づいて識別される。
【0127】
オペレーション3004では、現在のボリュームの子ノードに対するインデックスiが、0に設定される。次いで、オペレーション3006では、コンテキスト削減が可能であるかどうかに関する査定が、行われる。異なる可能性として考えられるコンテキスト削減オペレーションが、下記にさらに詳細に議論される。コンテキスト削減が可能であるかどうかの査定は、例えば、コーディングされているビットシーケンス内のビット(例えば、インデックス値)に基づいてもよい。ある場合には、コンテキスト削減は、シーケンス内の後のビットに関して可能であるが、最初の数ビットに関しては不可能であり得る。コンテキスト削減が可能性であるかどうかの査定は、例えば、ある近傍系構成が簡略化を可能にし得るため、近傍系構成に基づいてもよい。付加的要因が、いくつかの実装では、コンテキスト削減が可能であるかどうかを査定する際に使用され得る。例えば、上界Boが、バイナリコーダがビットをコーディングするために使用し得る最大数のコンテキストとして提供されてもよく、削減後のコンテキストの数が最大でBoであるように、ビットをコーディングするための初期数のコンテキストが、Boより多い場合、コンテキスト削減が、適用される(そうでなければ、適用されない)。そのような境界Boは、Boコンテキストに対処することが可能であるソフトウェアまたはハードウェア実装が、常時、コンテキストの数の観点からオーバーフローを生成せずに、点群をエンコーディングおよび/またはデコーディングすることが可能であるであろうことを確実にするために、エンコーダおよび/またはデコーダ仕様に定義されてもよい。境界Boを事前に把握することもまた、バイナリエントロピコーダによって誘発される複雑性およびメモリ占有面積を予期することを可能にし、したがって、ハードウェアの設計を促進する。Boに関する典型的値は、10~数百である。
【0128】
コンテキスト削減が、利用可能であると決定される場合、オペレーション3008では、コンテキスト削減オペレーションが、適用される。コンテキスト削減オペレーションは、利用可能なコンテキストの集合内の利用可能なコンテキストの数をより少ない総コンテキスト数を含有するより小さい集合に削減する。利用可能なコンテキストの数が、コンテキストが、ビットシーケンスからの先にコーディングされたビットのパターンに部分的に依存し得るため、部分的に、シーケンス内のビット位置、すなわち、インデックスに依存し得ることを思い出されたい。いくつかの実装では、削減前の集合内で利用可能なコンテキストの数は、先にコーディングされたビットを用いて可能性として考えられる部分的パターンの数によって乗算される近傍系構成の数に基づき得る。iが0~nに及ぶ、インデックスiにおけるビットに関して、部分的パターンの数は、2iによって求められ得る。
【0129】
上記に述べられたように、いくつかの実装では、コンテキスト削減オペレーションは、コーディングに先立って行われ、結果として生じる削減コンテキスト集合は、コーディングオペレーションの間にエンコーダおよびデコーダによる使用のために利用可能なコンテキスト集合である。コーディングの間の削減コンテキスト集合の使用および/または選択は、コンテキストの数が削減され得ることを決定するためのオペレーションでは3006において評価される条件に対応する、それらの削減集合の使用に先立った1つ以上の条件の評価に基づき得る。例えば、削減コンテキスト集合の使用を許可する、具体的近傍系構成の場合、エンコーダおよび/またはデコーダは、最初に、近傍系構成条件が満たされるかどうかを決定し、次いで、該当する場合、対応する削減コンテキスト集合を使用し得る。
【0130】
オペレーション3010では、ビットbiに関するコンテキストが、決定される、すなわち、近傍系構成およびビットシーケンス内の先にコーディングされたビットの部分的パターンに基づいて、利用可能なコンテキストの集合(または該当する場合、削減集合)から選択される。現在のビットは、次いで、オペレーション3012において選択されたコンテキストを使用して、バイナリコーダによってエントロピエンコーディングされる。
【0131】
オペレーション3014において、インデックスiが、現在コーディングされているビットが、シーケンス内の最後のビット、すなわち、iがimaxに等しいことを示す場合、コーディングプロセスは、次のノードに進む。そうでなければ、インデックスiは、オペレーション3016においてインクリメントされ、プロセスは、オペレーション3006に戻る。
【0132】
いくつかの実装では、コンテキスト選択は、近傍系構成に依存しない場合があることを理解されたい。ある場合には、該当する場合、シーケンス内の先にコーディングされたビットの部分的パターンのみに依存し得る。
【0133】
例示的エンコーダ3100の一部の簡略化されたブロック図が、
図23に図示される。本図では、占有状態パターン3102が、対応するボリュームが子ノードの中にパーティション化されるにつれて取得され、点群の幾何学形状を保つ、FIFOバッファ3104を通して巡回されることを理解されたい。占有状態パターン3102のコーディングは、パターンのビット毎に1つずつ、カスケード式のバイナリコーダ3106を伴うように図示される。バイナリコーダ3106のうちの少なくともいくつかの間には、利用可能なコンテキストをより小さい利用可能なコンテキストの集合に削減するようにオペレーションする、コンテキスト削減オペレーション3108がある。
【0134】
図23は、一連のバイナリコーダ3106を図示するが、いくつかの実装では、1つのみのバイナリコーダが、使用される。1つを上回るコーダが使用される場合、コーディングは、(部分的に)並行化されてもよい。ビットシーケンス内の先行ビットへの1ビットのコンテキスト依存性を前提として、パターンのコーディングは、必ずしも、完全に並行化されることができないが、ある程度の並行化および速度改良を達成するために、あるパターンのためのカスケードバイナリコーダの使用を通して、パイプライン処理を改良することが、可能性として考えられ得る。
【0135】
(コンテキスト削減オペレーション)
上記の実施例は、コーディングプロセスが、利用可能なコンテキストの集合をより小さい集合の利用可能なコンテキストに削減するように、占有状態パターンの少なくとも1ビットに対してコンテキスト削減オペレーションを含むことを提案する。本意味では、「コンテキスト削減オペレーション」は、特定のビットbiの状況では重複または冗長と見なされ得る、コンテキストを識別および統合させるものと理解され得る。上記に述べられたように、削減コンテキスト集合は、コーディングに先立って決定されてもよく、エンコーダおよびデコーダに提供されてもよく、エンコーダおよびデコーダは、コンテキスト集合を削減するための下記に説明される同一条件に基づいて、削減コンテキスト集合を使用するかどうかを決定する。
【0136】
(遮断/遮蔽を通した近傍系構成削減)
第1の例示的コンテキスト削減オペレーションは、遮断/遮蔽に基づいて、近傍系構成の数を削減することを伴う。原理上、近傍系構成は、近傍ボリュームが、現在のボリュームまたはサブボリュームが占有されている可能性が高いかどうかを示すことに役立つことに基づいて、近傍ボリュームの占有状態ステータスをコンテキスト選択プロセスに考慮する。現在のボリューム内のサブボリュームと関連付けられるビットが、デコーディングされるにつれて、それらはまた、コンテキスト選択に対しても考慮に入れられるが、しかしながら、近隣のサブボリュームからの情報は、サブボリュームの現在のサブボリュームと反対の側に位置する近傍ボリュームの占有状態情報より有意かつより情報量が多くあり得る。本意味では、先にデコーディングされたビットは、近傍ボリュームを「遮断」または「遮蔽」する、サブボリュームと関連付けられる。これは、そのような状況では、その占有状態ステータスの関連性が、現在のサブボリュームと近傍ボリュームとの間のサブボリュームの占有状態ステータスによって包摂され、それによって、近傍系構成の数の削減を可能にするため、近傍ボリュームの占有状態が、無視され得ることを意味し得る。
【0137】
ここで、近傍系遮断に基づく例示的コンテキスト削減オペレーションを図式的に示す、
図24を参照する。実施例は、ボリューム3200に関する占有状態パターンをコーディングすることを伴う。占有状態パターンは、ボリューム3200内の8つのサブボリュームの占有状態ステータスをシグナリングする。本実施例では、ボリューム3200の上半分の4つのサブボリュームは、コーディングされており、したがって、その占有状態ステータスは、既知である。コーディングされている占有状態パターンのビットは、4つの先にコーディングされたサブボリュームの下方のボリューム3200の下半分に位置する、第5のサブボリューム3204と関連付けられる。
【0138】
本実施例におけるコーディングは、近傍系構成に基づいて、コンテキストを決定することを含む。10の近傍系構成3202が、示される。コーディングされるための第5のサブボリューム3204を含有するボリューム3200は、薄灰色で示され、参照番号3200によって示される。近傍系構成3202は、ボリューム3200に隣接し、それとある面を共有する、ボリュームの占有状態ステータスに基づく。近傍ボリュームは、上部近傍ボリューム3206を含む。
【0139】
本実施例では、近傍系構成の数は、構成のうちの少なくともいくつかにおける上部近傍ボリューム3206を無視することによって、10から7に削減されることができる。
図24に示されるように、その中に上部近傍ボリューム3206が示される、4つの構成のうちの3つは、上部近傍ボリューム3206内に考慮されない等価構成下に包摂され、それによって、近傍系構成の数を合計7つに削減することができる。6のボリューム構成がともに統合され得る(5の要素のものを排除している)、既存の5のボリューム近傍系構成が存在せず、上部近傍ボリュームが除去される場合でも、新しい5の要素近傍系構成が生じ、コンテキスト内の全体的削減が生じないことを意味するため、全6つの近傍ボリュームを示すように構成を保つことが、依然として有利であり得る。
【0140】
上部近傍ボリューム3206は、本実施例では、第5のサブボリューム3204と関連付けられた占有状態ビットのコーディングのためのコンテキスト決定が、その直上の4つの先にコーディングされたサブボリュームの占有状態ステータスをすでに考慮しているであろうため、近傍系構成から排除されることができ、これは、より離れた上部近傍ボリューム3206の占有状態ステータスより、第5のサブボリュームに関する占有状態の尤度および指向性の良好なインジケーションである。
【0141】
上部近傍ボリューム3206が、第5のサブボリューム3204に対応する占有状態ビットをコーディングするとき、先にコーディングされたサブボリュームによって遮断または遮蔽される、上記の実施例は、一実施例にすぎない。ボリューム3200内のコーディング順序に応じて、いくつかの他の可能性として考えられる遮断/遮蔽状況も、利用可能な近傍系構成を削減するために実現および利用され得る。
【0142】
ここで、遮断/遮蔽の第2の実施例を示す、
図25を参照する。本実施例では、ボリューム3200に関する占有状態パターンは、ほぼ完全にコーディングされる。コーディングされることになるサブボリュームは、第8のサブボリュームであって、図では、後下角(不可視)に隠蔽される。この場合、全7つの他のサブボリュームの占有状態ステータスが、コーディングされている。特に、上部に沿った(故に、近傍系構成において合計7つまでの削減)および右側および正面側に沿ったサブボリュームである。故に、上部近傍ボリュームの遮断に加え、先にコーディングされた占有状態ビットを伴うサブボリュームは、正面近傍ボリューム3210および右側近傍ボリューム3212を遮蔽する。これは、図示されるように、合計7つから合計5つへの近傍系構成の削減を可能にし得る。
【0143】
遮蔽の2つの前述の実施例は、例証的であって、ある場合には、異なる構成が、異なる遮蔽状況を考慮するために統合され得ることを理解されたい。先にコーディングされたサブボリュームによる遮蔽/遮断に基づくコンテキスト削減オペレーションは、一般的であって、これらの2つの実施例に限定されないが、そこが任意の遮蔽/遮断であるためには、近隣のサブボリュームと関連付けられる少なくとも1つの先にコーディングされた占有状態ビットが存在することを要求するため、コーディングされることになる第1のサブボリュームの場合には適用され得ないことを理解されたい。
【0144】
また、近傍系構成削減を正当化するための遮蔽/遮断の程度が、異なる実装では異なり得ることを理解されたい。上記の2つの実施例では、近傍ボリュームとある面を共有する、全4つのサブボリュームが、その近傍ボリュームが、遮蔽/遮断されていると見なされ、したがって、近傍系構成から除去される前に、先にコーディングされた。他の実施例では、例えば、ある面を共有する、1~3つの先にコーディングされたサブボリュームからの部分的遮蔽/遮断が、十分である場合がある。
【0145】
(特殊例ハンドリングを通したコンテキスト削減)
有用な情報の損失を伴わずにコンテキスト削減が生じ得る、ある例が存在する。上記に説明される例示的コンテキスト決定プロセスでは、占有状態ビットをコーディングためのコンテキストは、近傍系構成、すなわち、現在のボリュームの近傍にあるボリュームの占有状態のパターンと、先にコーディングされた現在のボリューム内のサブボリュームの占有状態に起因する部分的パターンとに基づく。その後者の条件は、占有状態パターンビットシーケンス内の第8のビットに対して、追跡するための27=128のコンテキストをもたらす。近傍系構成が、合計5つに削減される場合でも、これは、追跡するための640のコンテキストを意味する。
【0146】
コンテキストの数は、ビットシーケンスの先にコーディングされたビットが、ある順序を有し、順序が、コンテキストを査定する際に関連するという事実に基づいて、大きくなる。しかしながら、ある場合には、順序は、有用な情報を含有していない場合がある。例えば、近傍系構成が、空である、すなわち、N
10=0の場合、ボリューム内の任意の点は、疎らに取り込まれることが想定され、それらが、兄弟サブボリューム内の占有状態の異なるパターンに関して別個のコンテキストを追跡することを正当化するために十分に強力な指向性を有していないことを意味し得る。空の近傍帯の場合、点群に対する局所配向またはトポロジが存在せず、ビットシーケンスの先にコーディングされたビットに基づく2
j条件がj+1条件に削減され得ることを意味する。すなわち、ビットシーケンスのビットのうちの1つをコーディングするためのコンテキストは、先にコーディングされたビットに基づくが、その順序付けられたパターンには基づかず、単に、その和に基づく。言い換えると、本特殊例におけるエントロピ表現は、以下のように表され得る。
【化7】
【0147】
いくつかの実装では、類似観察が、完全近傍系構成に関しても行われ得る。いくつかの実施例では、完全近傍系構成が、指向性を欠いており、先にコーディングされたビットの順序がコンテキストを決定する際に考慮される必要がないことを意味する。いくつかの実施例では、本コンテキスト削減オペレーションは、シーケンス内の後のビットのうちのいくつか等、ビットシーケンス内のビットのうちのいくつかのみに適用されてもよい。ある場合には、後のビットへの本コンテキスト削減オペレーションの適用は、先にコーディングされたサブボリュームと関連付けられたより先のビットもまた全て占有されたことを決定することを条件としてもよい。
【0148】
(統計的ベースのコンテキスト削減)
統計的分析が、概ね同一の統計的挙動につながるものを決定し、次いで、それらを組み合わせることを通して、コンテキストを削減するために使用され得る。本分析は、次いで、エンコーダおよびデコーダの両方に提供される、削減コンテキスト集合を発生させるための試験データを使用して、先験的に実施されてもよい。ある場合には、分析は、2パスコーディングを使用して、現在の点群上で実施され、具体的点群データに関するカスタム削減コンテキスト集合を発生させてもよい。いくつかのそのような場合では、非削減コンテキスト集合からカスタム削減コンテキスト集合へのマッピングは、ビットストリームにコーディングされる専用の構文を使用することによって、デコーダにシグナリングされてもよい。
【0149】
2つのコンテキストが、「距離」の概念を通して比較され得る。第1のコンテキストcは、ゼロに等しいビットbの確率pを有し、第2のコンテキストc’は、ゼロに等しいビットb’の確率p’を有する。cとc’との間の距離は、以下によって求められる。
【化8】
【0150】
類似性(距離)の本測定値を使用して、コンテキストは、次いで、以下のようなプロセスにおいてグループ化され得る。
【0151】
1.M1コンテキストから開始し、閾値レベルεを固定する。
【0152】
2.所与のコンテキストに関して、閾値レベルεより低い所与のコンテキストからの距離を有する、全てのコンテキストをクラスに再グループ化する。
【0153】
3.全ての再グループ化されていないコンテキストに関して、全てがクラスの中に入れられるまで、2を繰り返す。
【0154】
4.1からM2までをM2クラスと標識し、これは、[1,2,…,M1]→[1,2,…,M2](式中、M1≧M2)にマッピングする、総当たり削減関数をもたらす。
【0155】
コンテキストの集合をより小さいコンテキストの集合にマッピングするための総当たり削減関数は、コーディングの間にコンテキスト削減オペレーションとしてエンコーダ/デコーダによって適用されるために、メモリ内に記憶されてもよい。マッピングは、ルックアップテーブルまたは他のデータ構造として記憶されてもよい。総当たり削減関数は、例えば、ビットシーケンス(パターン)内の後のビットに関してのみ適用されてもよい。
【0156】
(コンテキスト削減オペレーションの組み合わせおよび副次的組み合わせ)
3つの例示的コンテキスト削減オペレーションが、上記に説明される。それらはそれぞれ、いくつかの実装では、個々に、および独立して適用されてもよい。それらのうちの任意の2つ以上のものが、いくつかの実装では、組み合わせられ得る。付加的コンテキスト削減オペレーションが、単独で、または上記に説明されるコンテキスト削減オペレーションのうちの任意の1つ以上のものと組み合わせて、実装されてもよい。
【0157】
図26は、フローチャート形態において、組み合わせられたコンテキスト削減を伴う、占有状態パターンバイナリコーディングの方法3300の一実施例を示す。方法3300は、8ビットバイナリパターンb
0,b
1,…,b
7をコーディングし、{0,1,2,…,9}において、10の要素近傍系構成N
10が求められる。評価される第1の条件は、近傍系構成が、空、すなわち、N
10=0であるかどうかである。該当する場合、ビットは、参照番号3302によって示されるように、その順序を参照せずにコーディングされる。そうでなければ、ビットは、ビットb
4まで、通常通りコーディングされ、その時点で、エンコーダおよびデコーダは、総当たりコンテキスト削減関数BR
iの適用を開始し、近傍系構成によって定義されたコンテキストの集合および先にコーディングされたビットの部分的パターンを、実質的に類似する統計的結果を有する、より小さいコンテキストの集合にマッピングすることによって、コンテキストの数を削減する。
【0158】
本実施例では、最後の2ビットb6およびb7が、遮蔽/遮断に基づいて削減された近傍系構成を使用して、コーディングされる。
【0159】
全ての関数は、コンテキストの集合のサイズを削減するためのルックアップテーブル(LUT)として実装され得る。1つの実践的実装では、全ての削減は、削減関数、すなわち、コンテキストを入力としてとり、削減されたコンテキストを出力として提供する、単に、LUTに分解される。本例示的実施形態では、コンテキストの総数は、2,550から576に削減されており、各削減関数BRiの出力サイズは、それぞれ、70、106、110および119である。
【0160】
(固定数のコンテキストを用いたシステム内のコンテキスト選択)
前述のコンテキスト削減オペレーションはそれぞれ、静的(固定)最小限数のコンテキストを用いて、圧縮システムにおいてさらに使用され得る。そのような設計では、8ビットバイナリパターン内の所与のシンボルに関して、1つ以上の削減オペレーションが、それを用いてシンボルをエンコーディングまたはデコーディングするための、コンテキスト確率モデルを決定するために適用される。
【0161】
(圧縮性能に及ぼす影響)
10の近傍系構成および非バイナリコーディングの使用は、点群コーディングのためのMPEG試験モデルの現在の実装に優る圧縮利得を提供する。しかしながら、10の近傍系構成と2,550のコンテキストを使用してカスケード表示されるバイナリコーディングの上記で提案される併用は、さらに良好な改良を圧縮効率にもたらす。上記に詳述される3つの技法等を使用するコンテキスト削減が、使用され、コンテキストを合計576に削減するときでも、バイナリコーディング圧縮は、依然として、非バイナリコーディングを使用した実装よりわずかに良好であって、試験モデルよりはるかに良好である。本観察は、異なる試験点群データを横断して一貫することが示されている。
【0162】
ここで、エンコーダ1100の例示的実施形態の簡略化されたブロック図を示す、
図14を参照する。エンコーダ1100は、プロセッサ1102と、メモリ1104と、エンコーディングアプリケーション1106とを含む。エンコーディングアプリケーション1106は、メモリ1104内に記憶され、実行されると、プロセッサ1102に本明細書に説明されるもの等のオペレーションを実施させる命令を含有する、コンピュータプログラムまたはアプリケーションを含んでもよい。例えば、エンコーディングアプリケーション1106は、本明細書に説明されるプロセスに従って、エンコーディングし、エンコーディングされたビットストリームを出力し得る。エンコーディングアプリケーション1106が、コンパクトディスク、フラッシュメモリデバイス、ランダムアクセスメモリ、ハードドライブ等の非一過性コンピュータ可読媒体上に記憶され得ることを理解されたい。命令が、実行されると、プロセッサ1102は、説明されるプロセスを実装する特殊目的プロセッサとして動作するように、命令内に規定されたオペレーションおよび関数を実行する。そのようなプロセッサは、いくつかの実施例では、「プロセッサ回路」または「プロセッサ回路構成」と称され得る。
【0163】
ここでまた、デコーダ1200の例示的実施形態の簡略化されたブロック図を示す、
図15も参照する。デコーダ1200は、プロセッサ1202と、メモリ1204と、デコーディングアプリケーション1206とを含む。デコーディングアプリケーション1206は、メモリ1204内に記憶され、実行されると、プロセッサ1202に本明細書に説明されるもの等のオペレーションを実施させる命令を含有する、コンピュータプログラムまたはアプリケーションを含んでもよい。デコーディングアプリケーション1206が、コンパクトディスク、フラッシュメモリデバイス、ランダムアクセスメモリ、ハードドライブ等のコンピュータ可読媒体上に記憶され得ることを理解されたい。命令が、実行されると、プロセッサ1202は、説明されるプロセスを実装する特殊目的プロセッサとして動作するように、命令内に規定されたオペレーションおよび関数を行う。そのようなプロセッサは、いくつかの実施例では、「プロセッサ回路」または「プロセッサ回路構成」と称され得る。
【0164】
本願によるデコーダおよび/またはエンコーダが、限定ではないが、サーバ、好適にプログラムされた汎用コンピュータ、マシンビジョンシステム、およびモバイルデバイスを含む、いくつかのコンピューティングデバイス内に実装され得ることを理解されたい。デコーダまたはエンコーダは、プロセッサまたは複数のプロセッサを本明細書に説明される関数を行うように構成するための命令を含有する、ソフトウェアを経由して実装されてもよい。ソフトウェア命令は、CD、RAM、ROM、フラッシュメモリ等を含む、任意の好適な非一過性コンピュータ可読メモリ上に記憶されてもよい。
【0165】
本明細書に説明されるデコーダおよび/またはエンコーダ、およびエンコーダまたはデコーダを構成するための説明される方法/プロセスを実装する、モジュール、ルーチン、プロセス、スレッド、または他のソフトウェアコンポーネントが、標準的コンピュータプログラミング技法および言語を使用して実現され得ることを理解されたい。本願は、特定のプロセッサ、コンピュータ言語、コンピュータプログラミング慣例、データ構造、他のそのような実装詳細に限定されない。当業者は、説明されるプロセスが、揮発性または不揮発性メモリ内に記憶されるコンピュータ実行可能コードの一部として、特定用途向け集積チップ(ASIC)等の一部として実装され得ることを認識するであろう。
【0166】
本願はまた、本願によるエンコーディングプロセスの適用を通して生産されたデータをエンコーディングするコンピュータ可読シグナルを提供する。
【0167】
説明される実施形態のある適合および修正が、行われることができる。したがって、上記の議論される実施形態は、制限的ではなく、例証的と見なされる。