世界の高度な3D表現は、より没入型の相互作用および通信を可能にし、機械が世界を理解し、解釈し、ナビゲートすることも可能にしている。そのような情報の表現を可能にするものとして、3D点群が登場した。点群データに関連するいくつかの適用事例が特定されており、点群表現および圧縮のための対応する要件が開発されている。例えば、3D点群は、物体検出および位置特定のための自動運転に使用することができる。3D点群はまた、地図作成のための地理情報システム(GIS)で使用することができ、文化遺産のオブジェクトおよびコレクションを視覚化およびアーカイブするために文化遺産で使用することができる。
点群は、一般に、各々が関連付けられた属性を有する3D空間内の点のセットを指すことができる。属性は、色、材料特性、テクスチャ情報、強度属性、反射率属性、動き関連属性、モダリティ属性、および/または様々な他の属性を含むことができる。点群を使用して、そのような点の構成としてオブジェクトまたはシーンを再構築することができる。点は、様々な設定で複数のカメラ、深度センサ、および/またはLidarを使用して捕捉することができ、再構築されたシーンを現実的に表現するために数千から最大数十億の点で構成することができる。
圧縮技術は、より高速な伝送または記憶装置の削減のために点群を表すために必要なデータ量を削減することができる。したがって、リアルタイム通信および6自由度(6 DoF)仮想現実で使用するための点群の非可逆圧縮のための技術が必要とされている。さらに、自動運転および文化遺産の用途などのための動的マッピングの文脈において、可逆点群圧縮のための技術が求められている。したがって、ISO/IEC MPEG(JTC 1/SC 29/WG 11)は、色および反射率などの幾何学的形状および属性の圧縮、スケーラブル/プログレッシブ符号化、経時的に捕捉された点群のシーケンスの符号化、および点群のサブセットへのランダムアクセスに対処するための規格の作業を開始した。
図1は、本開示の実施形態による通信システム(100)の簡略化されたブロック図を示す。通信システム(100)は、例えばネットワーク(150)を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続された端末装置(110)および(120)の対を含む。図1の例では、端末装置(110)および(120)の第1の対は、点群データの一方向の送信を実行し得る。例えば、端末装置(110)は、端末装置(110)に接続されたセンサ(105)によって捕捉された点群(例えば、構造を表す点)を圧縮することができる。圧縮された点群は、例えばビットストリームの形態で、ネットワーク(150)を介して他の端末装置(120)に送信することができる。端末装置(120)は、ネットワーク(150)から圧縮された点群を受信し、ビットストリームを解凍して点群を再構築し、再構築された点群を適切に表示することができる。一方向データ伝送は、メディア・サービング・アプリケーションなどにおいて一般的であり得る。
図1の例では、端末装置(110)および(120)は、サーバ、およびパーソナルコンピュータとして示され得るが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム端末、メディアプレーヤ、および/または専用3次元(3D)機器に適用される。ネットワーク(150)は、端末装置(110)と端末装置(120)との間で圧縮された点群を送信する任意の数のネットワークを表す。ネットワーク(150)は、例えば、有線(有線)および/または無線通信ネットワークを含むことができる。ネットワーク(150)は、回路交換チャネルおよび/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットが含まれる。本議論の目的のために、ネットワーク(150)のアーキテクチャおよびトポロジーは、以下に本明細書で説明されない限り、本開示の動作にとって重要ではない場合がある。
図2は、一実施形態に係るストリーミングシステム(200)の簡略ブロック図を示す。図2の例は、点群の開示された主題のアプリケーションである。開示された主題は、3Dテレプレゼンスアプリケーション、仮想現実アプリケーションなどの他の点群対応アプリケーションにも等しく適用可能であり得る。
ストリーミングシステム(200)は、捕捉サブシステム(213)を含むことができる。捕捉サブシステム(213)は、点群ソース(201)、例えば光検出および測距(LIDAR)システム、3Dカメラ、3Dスキャナ、例えば非圧縮の点群(202)を生成するソフトウェア内の非圧縮の点群を生成するグラフィック生成構成要素などを含むことができる。一例では、点群(202)は、3Dカメラによって捕捉された点を含む。点群(202)は、圧縮された点群(204)(圧縮された点群のビットストリーム)と比較して高いデータ量を強調するために太線として示されている。圧縮された点群(204)は、点群ソース(201)に結合された符号化器(203)を含む電子装置(220)によって生成することができる。符号化器(203)は、以下でより詳細に説明されるように、開示された主題の態様を可能にするまたは実装するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含み得る。点群(202)のストリームと比較してより低いデータ量を強調するために細い線として示されている圧縮された点群(204)(または圧縮された点群(204)のビットストリーム)は、将来の使用のためにストリーミングサーバ(205)に格納することができる。図2のクライアントサブシステム(206)および(208)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(205)にアクセスして、圧縮された点群(204)の複製(207)および(209)を取得することができる。クライアントサブシステム(206)は、例えば、電子装置(230)に復号器(210)を含み得る。復号器(210)は、圧縮された点群の到来する複製(207)を復号し、レンダリング装置(212)上にレンダリングされることが可能な再構築された点群(211)の発信ストリームを生成する。
電子装置(220)および(230)は、他の構成要素(図示せず)を含み得ることに留意されたい。例えば、電子装置(220)は復号器(図示せず)を含むことができ、電子装置(230)は符号化器(図示せず)も含むことができる。
いくつかのストリーミングシステムでは、圧縮された点群(204)、(207)、および(209)(例えば、圧縮された点群のビットストリーム)は、特定の規格に従って圧縮することができる。いくつかの例では、点群の圧縮にビデオ符号化規格が使用される。このような規格としては、例えば、HEVC(High Efficiency Video Coding)(HEVC)や、VVC(Versatile Video Coding)(VVC)などがある。
図3は、いくつかの実施形態による、点群フレームを符号化するためのV-PCC符号化器(300)のブロック図を示す。いくつかの実施形態では、V-PCC符号化器(300)は、通信システム(100)およびストリーミングシステム(200)で使用することができる。例えば、符号化器(203)は、V-PCC符号化器(300)と同様に構成され、動作することができる。
V-PCC符号化器(300)は、非圧縮入力として点群フレームを受け取り、圧縮された点群フレームに対応するビットストリームを生成する。いくつかの実施形態では、V-PCC符号化器(300)は、点群ソース(201)などの点群ソースから点群フレームを受信することができる。
図3の例では、V-PCC符号化器(300)は、パッチ生成モジュール(306)と、パッチパッキングモジュール(308)と、ジオメトリ画像生成モジュール(310)と、テクスチャ画像生成モジュール(312)と、パッチ情報モジュール(304)と、占有マップモジュール(314)と、平滑化モジュール(336)と、画像パディングモジュール(316)および(318)と、グループ拡張モジュール(320)と、ビデオ圧縮モジュール(322)、(323)および(332)と、補助パッチ情報圧縮モジュール(338)と、エントロピー圧縮モジュール(334)と、マルチプレクサ(324)とを含む。
本開示の一態様によれば、V-PCC符号化器(300)は、圧縮された点群を解凍された点群に変換するために使用されるいくつかのメタデータ(例えば、占有マップおよびパッチ情報)とともに、3D点群フレームを画像ベースの表現に変換する。いくつかの例では、V-PCC符号化器(300)は、3D点群フレームをジオメトリ画像、テクスチャ画像および占有マップに変換し、次いでビデオ符号化技術を使用してジオメトリ画像、テクスチャ画像および占有マップをビットストリームに符号化することができる。一般に、ジオメトリ画像は、画素に投影された点に関連付けられたジオメトリ値で満たされた画素を有する2D画像であり、ジオメトリ値で満たされた画素は、ジオメトリサンプルと呼ぶことができる。テクスチャ画像は、画素に投影された点に関連付けられたテクスチャ値で満たされた画素を有する2D画像であり、テクスチャ値で満たされた画素はテクスチャサンプルと呼ぶことができる。占有マップは、パッチによって占有されているか占有されていないかを示す値で満たされた画素を有する2D画像である。
パッチは、一般に、点群によって記述される表面の連続したサブセットを指すことができる。一例では、パッチは、閾値量未満で互いにずれた表面法線ベクトルを有する点を含む。パッチ生成モジュール(306)は、各パッチが2D空間内の平面に対する深度場によって記述され得るように、点群を、重なり合っていてもいなくてもよいパッチのセットにセグメント化する。いくつかの実施形態では、パッチ生成モジュール(306)は、再構築誤差を最小化しながら、点群を滑らかな境界を有する最小数のパッチに分解することを目的とする。
パッチ情報モジュール(304)は、パッチのサイズおよび形状を示すパッチ情報を収集することができる。いくつかの例では、パッチ情報を画像フレームにパックし、次いで補助パッチ情報圧縮モジュール(338)によって符号化して、圧縮された補助パッチ情報を生成することができる。
パッチパッキングモジュール(308)は、抽出されたパッチを2次元(2D)グリッド上にマッピングする一方で、未使用の空間を最小限に抑え、グリッドのすべてのM×M個(例えば、16×16)のブロックが固有のパッチと関連付けられることを保証するように構成される。効率的なパッチパッキングは、未使用の空間を最小化するか、または時間的一貫性を保証することによって、圧縮効率に直接影響を与える可能性がある。
ジオメトリ画像生成モジュール(310)は、所与のパッチ位置における点群のジオメトリに関連付けられた2Dジオメトリ画像を生成することができる。テクスチャ画像生成モジュール(312)は、所与のパッチ位置における点群のテクスチャと関連付けられた2Dテクスチャ画像を生成することができる。ジオメトリ画像生成モジュール(310)およびテクスチャ画像生成モジュール(312)は、パッキング処理中に計算された3Dから2Dへのマッピングを利用して、点群のジオメトリおよびテクスチャを画像として格納する。複数の点が同じサンプルに投影される場合をより良好に処理するために、各パッチは、層と呼ばれる2つの画像に投影される。一例では、ジオメトリ画像は、YUV420-8ビットフォーマットのWxHの単色フレームによって表される。テクスチャ画像を生成するために、テクスチャ生成手順は、再サンプリングされた点に関連付けられる色を計算するために、再構築/平滑化された幾何学的形状を利用する。
占有マップモジュール(314)は、各単位でパディング情報を記述する占有マップを生成することができる。例えば、占有画像は、グリッドの各セルについて、セルが空の空間に属するか点群に属するかを示すバイナリマップを含む。一例では、占有マップは、画素がパディングされているか否かを画素ごとに記述するバイナリ情報を使用する。別の例では、占有マップは、画素のブロックがパディングされるか否かを画素のブロックごとに記述するバイナリ情報を使用する。
占有マップモジュール(314)によって生成された占有マップは、可逆符号化または不可逆符号化を使用して圧縮することができる。可逆符号化が使用されるとき、エントロピー圧縮モジュール(334)は、占有マップを圧縮するために使用される。非可逆符号化が使用される場合、占有マップを圧縮するためにビデオ圧縮モジュール(332)が使用される。
パッチパッキングモジュール(308)は、画像フレーム内にパッキングされた2Dパッチ間にいくつかの空き空間を残すことができることに留意されたい。画像パディングモジュール(316)および(318)は、2Dビデオおよび画像コーデックに適し得る画像フレームを生成するために、空き空間(パディングと呼ばれる)を埋めることができる。画像パディングは、未使用の空間を冗長な情報で埋めることができる背景充填とも呼ばれる。いくつかの例では、良好な背景充填は、ビットレートを最小限に増加させ、パッチ境界の周りに著しい符号化歪みを導入しない。
ビデオ圧縮モジュール(322)、(323)、および(332)は、HEVC、VVCなどの適切なビデオ符号化規格に基づいて、パディングされたジオメトリ画像、パディングされたテクスチャ画像、および占有マップなどの2D画像を符号化することができる。一例では、ビデオ圧縮モジュール(322)、(323)、および(332)は、別々に動作する個々の構成要素である。別の例では、ビデオ圧縮モジュール(322)、(323)、および(332)を単一の構成要素として実装できることに留意されたい。
いくつかの例では、平滑化モジュール(336)は、再構築されたジオメトリ画像の平滑化画像を生成するように構成される。平滑化された画像は、テクスチャ画像生成(312)に提供することができる。次に、テクスチャ画像生成(312)は、再構築されたジオメトリ画像に基づいてテクスチャ画像の生成を調整することができる。例えば、符号化や復号の際にパッチ形状(例えば、幾何学的形状)に多少の歪みがある場合には、その歪みを考慮してテクスチャ画像を生成し、パッチ形状の歪みを補正するようにしてもよい。
いくつかの実施形態では、グループ拡張(320)は、符号化利得ならびに再構築された点群の視覚的品質を改善するために、冗長な低周波数コンテンツでオブジェクト境界の周りに画素をパディングするように構成される。
マルチプレクサ(324)は、圧縮されたジオメトリ画像、圧縮されたテクスチャ画像、圧縮された占有マップ、および/または圧縮された補助パッチ情報を圧縮ビットストリームに多重化することができる。
図4は、いくつかの実施形態による、点群フレームに対応する圧縮ビットストリームを復号するためのV-PCC復号器(400)のブロック図を示す。いくつかの実施形態では、V-PCC復号器(400)は、通信システム(100)およびストリーミングシステム(200)で使用することができる。例えば、復号器(210)は、V-PCC復号器(400)と同様に動作するように構成することができる。V-PCC復号器(400)は、圧縮ビットストリームを受信し、圧縮ビットストリームに基づいて再構築された点群を生成する。
図4の例では、V-PCC復号器(400)は、デマルチプレクサ(432)と、ビデオ解凍モジュール(434)および(436)と、占有マップ解凍モジュール(438)と、補助パッチ情報解凍モジュール(442)と、ジオメトリ再構築モジュール(444)と、平滑化モジュール(446)と、テクスチャ再構築モジュール(448)と、色平滑化モジュール(452)とを含む。
デマルチプレクサ(432)は、圧縮ビットストリームを受信し、圧縮されたテクスチャ画像、圧縮されたジオメトリ画像、圧縮された占有マップ、および圧縮された補助パッチ情報に分離することができる。
ビデオ解凍モジュール(434)および(436)は、適切な規格(例えば、HEVC、VVCなど)に従って圧縮画像を復号し、解凍された画像を出力することができる。例えば、ビデオ解凍モジュール(434)は、圧縮されたテクスチャ画像を復号し、解凍されたテクスチャ画像を出力する。ビデオ解凍モジュール(436)は、圧縮されたジオメトリ画像を復号し、前記解凍されたジオメトリ画像を出力する。
占有マップ解凍モジュール(438)は、適切な規格(例えば、HEVC、VVCなど)に従って圧縮された占有マップを復号し、解凍された占有マップを出力することができる。
補助パッチ情報解凍モジュール(442)は、適切な規格(例えば、HEVC、VVCなど)に従って圧縮された補助パッチ情報を復号し、解凍された補助パッチ情報を出力することができる。
ジオメトリ再構築モジュール(444)は、解凍されたジオメトリ画像を受け取り、解凍された占有マップおよび解凍された補助パッチ情報に基づいて再構築された点群ジオメトリを生成することができる。
平滑化モジュール(446)は、パッチのエッジにおける不一致を平滑化することができる。平滑化手順は、圧縮アーチファクトに起因してパッチ境界で生じ得る潜在的な不連続性を緩和することを目的とする。いくつかの実施形態では、パッチ境界上に位置する画素に平滑化フィルタを適用して、圧縮/解凍によって生じ得る歪みを緩和することができる。
テクスチャ再構築モジュール(448)は、解凍されたテクスチャ画像および平滑化ジオメトリに基づいて点群内の点のテクスチャ情報を決定することができる。
色平滑化モジュール(452)は、色の不一致を平滑化することができる。3D空間内の隣接していないパッチは、2Dビデオ内で互いに隣接してパックされることが多い。いくつかの例では、非隣接パッチからの画素値は、ブロックベースのビデオコーデックによって混合される場合がある。色平滑化の目的は、パッチ境界に現れる可視アーチファクトを低減することである。
図5は、本開示の一実施形態によるビデオ復号器(510)のブロック図を示す。ビデオ復号器(510)は、V-PCC復号器(400)で使用することができる。例えば、ビデオ解凍モジュール(434)および(436)、占有マップ解凍モジュール(438)は、ビデオ復号器(510)と同様に構成することができる。
ビデオ復号器(510)は、例えば符号化されたビデオシーケンスのような圧縮画像からシンボル(521)を再構築するための解析器(520)を含み得る。これらのシンボルのカテゴリには、ビデオ復号器(510)の動作を管理するために使用される情報が含まれる。解析器(520)は、受信された符号化されたビデオシーケンスを解析/エントロピー復号することができる。符号化されたビデオシーケンスの符号化は、ビデオ符号化技術または規格に従うことができ、可変長符号化、ハフマン符号化、文脈依存性ありまたはなしの算術符号化などを含む様々な原理に従うことができる。解析器(520)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化されたビデオシーケンスから、ビデオ復号器内の画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出することができる。サブグループは、グループオブピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。解析器(520)はまた、変換係数、量子化パラメータ値、動きベクトルなどのような符号化ビデオシーケンス情報から抽出することができる。
解析器(520)は、シンボル(521)を作成するために、バッファメモリから受信したビデオシーケンスに対してエントロピー復号/解析動作を実行することができる。
シンボル(521)の再構築は、符号化されたビデオピクチャまたはその一部(例えば、インターおよびイントラピクチャ、インターブロックおよびイントラブロック)の形式、およびその他の要因に依存して、複数の異なるユニットを含み得る。どのユニットがどのように関与するかは、解析器(520)によって符号化ビデオシーケンスから解析されたサブグループ制御情報によって制御することができる。解析器(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、分かりやすくするために示されていない。
既に述べた機能ブロックの他に、ビデオ復号器(510)は、概念的には、以下で説明するように、いくつかの機能ユニットに細分化され得る。商業的制約の下で動作する実際の実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分化が適切である。
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などをシンボル(複数可)(521)として含む制御情報を、解析器(520)から受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力され得るサンプル値を備えるブロックを出力し得る。
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラ符号化ブロック、つまり、以前に再構築されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構築された部分からの予測情報を使用できるブロックに関係し得る。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)から取り出された周囲の既に再構築された情報を用いて、再構築中のブロックと同じサイズおよび形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構築された現在のピクチャおよび/または完全に再構築された現在のピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)からの出力サンプル情報に、サンプル単位で付加する。
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インター符号化された、潜在的に動き補償されたブロックに関係する可能性がある。そのような場合、動き補償予測ユニット(553)は、予測に使用されるサンプルをフェッチするために参照ピクチャメモリ(557)にアクセスすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力(この場合、残差サンプルまたは残差信号と呼ばれる)に追加され得る。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、動き補償予測ユニット(553)が例えばX、Y、および参照ピクチャ成分を有し得るシンボル(521)の形態で利用可能な動きベクトルによって制御することができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、動きベクトル予測メカニズムなどをも含み得る。
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)における様々なループフィルタリング技術の対象となり得る。ビデオ圧縮技術には、符号化ビデオシーケンス(符号化ビデオビットストリームとも称される)に含まれるパラメータによって制御され、解析器(520)からのシンボル(521)としてループフィルタユニット(556)で利用できるループ内フィルタ技術を含めることができるが、符号化ピクチャまたは符号化ビデオシーケンスの以前の(復号順で)部分の復号中に取得されたメタ情報に応答したり、以前に再構築およびループフィルタ処理されたサンプル値に応答したりすることもできる。
ループフィルタユニット(556)の出力は、レンダリング装置に出力することができるとともに、将来のインターピクチャ予測に使用するために参照ピクチャメモリ(557)に格納されることができるサンプルストリームとすることができる。
特定の符号化ピクチャは、完全に再構築されると、将来の予測のための参照ピクチャとして使用され得る。例えば、現在のピクチャに対応する符号化ピクチャが完全に再構築され、符号化ピクチャが(例えば、解析器(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は参照ピクチャメモリ(557)の一部になり得、次の符号化ピクチャの再構築を開始する前に、新しい現在のピクチャバッファを再割り当てすることができる。
ビデオ復号器(510)は、ITU-T Rec.H.265などの規格における所定のビデオ圧縮技術に従って復号動作を実行することができる。符号化されたビデオシーケンスは、符号化されたビデオシーケンスがビデオ圧縮技術または規格の構文およびビデオ圧縮技術または規格に文書化されたプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術または規格によって指定された構文に準拠することができる。具体的には、プロファイルは、ビデオ圧縮技術または規格で利用可能なすべてのツールから、そのプロファイルの下で使用可能な唯一のツールとして特定のツールを選択することができる。また、コンプライアンスのために必要なのは、符号化されたビデオシーケンスの複雑さがビデオ圧縮技術または規格のレベルによって定義される境界内にあることであり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定された制限は、場合によっては、仮想参照復号器(HRD)の仕様と、符号化ビデオシーケンスで通知されるHRDバッファ管理のメタデータとによってさらに制限され得る。
図6は、本開示の一実施形態によるビデオ符号化器(603)のブロック図を示す。ビデオ符号化器(603)は、点群を圧縮するV-PCC符号化器(300)で使用することができる。一例では、ビデオ圧縮モジュール(322)および(323)、ならびにビデオ圧縮モジュール(332)は、符号化器(603)と同様に構成される。
ビデオ符号化器(603)は、パディングされたジオメトリ画像、パディングされたテクスチャ画像などの画像を受信し、圧縮画像を生成することができる。
一実施形態によれば、ビデオ符号化器(603)は、リアルタイムで、またはアプリケーションによって要求される任意の他の時間制約下で、ソースビデオシーケンスのピクチャを符号化して符号化ビデオシーケンス(圧縮画像)に圧縮することができる。適切な符号化速度を強制することは、コントローラ(650)の一機能である。いくつかの実施形態では、コントローラ(650)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。カップリングは、明確にするために示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、グループオブピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計に最適化されたビデオ符号化器(603)に関する他の適切な機能を有するように構成することができる。
いくつかの実施形態では、ビデオ符号化器(603)は、符号化ループで動作するように構成される。過度に簡略化された説明として、一例では、符号化ループは、ソース符号化器(630)(例えば、符号化される入力ピクチャと、参照ピクチャとに基づいて、シンボルストリームのようなシンボルを生成することを担当する)と、ビデオ符号化器(603)に組み込まれた(ローカル)復号器(633)とを含むことができる。復号器(633)は、(リモート)復号器も作成するのと同様の方法でサンプルデータを作成するためにシンボルを再構築する(開示された主題で考慮されるビデオ圧縮技術では、シンボルと符号化ビデオビットストリームとの間の任意の圧縮が可逆的であるため)。再構築されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、復号器位置(ローカルまたはリモート)とは無関係にビット正確な結果をもたらすので、参照ピクチャメモリ(634)内のコンテンツもローカル符号化器とリモート符号化器との間でビット正確である。言い換えると、符号化器の予測部は、復号中に予測を使用するときに復号器が「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性(例えばチャネル誤差のために同期性を維持することができない場合、結果として生じるドリフト)のこの基本原理は、いくつかの関連技術においても使用される。
「ローカル」復号器(633)の動作は、図5に関連して既に詳細に説明したビデオ復号器(510)などの「リモート」復号器の動作と同じであり得る。しかしながら、図5も簡単に参照すると、シンボルが利用可能であり、エントロピー符号化器(645)および解析器(520)による符号化されたビデオシーケンスへのシンボルの符号化/復号は可逆的であり得るため、含むビデオ復号器(510)のエントロピー復号部、および解析器(520)は、ローカル復号器(633)に完全に実装されない場合がある。
この時点でなされ得る観測は、復号器内に存在する構文解析/エントロピー復号を除く任意の復号器技術もまた、対応する符号化器内に実質的に同一の機能形態で存在する必要があるということである。このため、開示された主題は復号器動作に焦点を合わせている。符号化器技術の説明は、それらが包括的に説明された復号器技術の逆であるので省略することができる。特定の領域においてのみ、より詳細な説明が必要とされ、以下に提供される。
動作中、いくつかの例では、ソース符号化器(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前に符号化ピクチャを参照して入力ピクチャを予測的に符号化する動き補償予測符号化を実行することができる。このようにして、符号化エンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャの画素ブロックとの間の差分を符号化する。
ローカルビデオ復号器(633)は、ソース符号化器(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化ビデオデータを復号し得る。符号化エンジン(632)の動作は、不可逆処理であることが有利であり得る。符号化ビデオデータがビデオ復号器(図6には示されていない)で復号され得るとき、再構築されたビデオシーケンスは、通常、いくつかのエラーを伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオ復号器(633)は、参照ピクチャに対してビデオ復号器によって実行され得る復号処理を複製し、再構築された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させることができる。このようにして、ビデオ符号化器(603)は、遠端ビデオ復号器によって取得されることになる再構築された参照ピクチャとして共通のコンテンツを有する再構築された参照ピクチャの複製をローカルに格納することができる(伝送エラーなし)。
予測器(635)は、符号化エンジン(632)の予測検索を実行することができる。すなわち、符号化されるべき新しいピクチャについて、予測器(635)は、(候補参照画素ブロックとしての)サンプルデータ、または、新しいピクチャの適切な予測参照として機能し得る参照ピクチャの動きベクトル、ブロック形状などの特定のメタデータを求めて参照ピクチャメモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見つけるために、サンプルブロックごとに動作することができる。場合によっては、予測器(635)によって取得された検索結果によって判定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納された複数の参照ピクチャから描画された予測参照を有することができる。
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソース符号化器(630)の符号化動作を管理することができる。
前述のすべての機能ユニットの出力は、エントロピー符号化器(645)においてエントロピー符号化を受けることができる。エントロピー符号化器(645)は、ハフマン符号化、可変長符号化、算術符号化などの技術に従って圧縮画像643を生成するシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
コントローラ(650)は、ビデオ符号化器(603)の動作を管理することができる。符号化中、コントローラ(650)は、各符号化ピクチャに特定の符号化ピクチャ形式を割り当てることができ、これは、それぞれのピクチャに適用され得る符号化技術に影響を及ぼし得る。例えば、ピクチャは、以下のピクチャ形式のうちの1つとして割り当てられることが多い。
なお、イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測元とせずに符号化・復号可能なものであってもよい。いくつかのビデオ符号化は、例えば、独立復号器リフレッシュ(「IDR」)ピクチャを含む異なる形式のイントラピクチャを可能にする。当業者は、Iピクチャのこれらの変形ならびにそれらのそれぞれの用途および特徴を認識している。
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して符号化および復号され得るものであり得る。
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して符号化および復号され得るものであり得る。同様に、複数の予測ピクチャは、単一のブロックの再構築のために3つ以上の参照ピクチャおよび関連するメタデータを使用することができる。
ソースピクチャは、一般に、複数のサンプルブロック(例えば、各々、4×4、8×8、4×8、または16×16のサンプルのブロック)に空間的に細分化され、ブロックごとに符号化され得る。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割当によって判定されるように、他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化されてもよいし、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、以前に符号化された1つの参照ピクチャを参照して、空間予測を介して、または時間予測を介して予測的に符号化され得る。Bピクチャのブロックは、1つまたは2つの以前に符号化された参照ピクチャを参照して、空間予測を介して、または時間予測を介して予測的に符号化され得る。
ビデオ符号化器(603)は、例えばITU-T Rec.H.265のような所定のビデオ符号化技術または規格に従って符号化動作を実行し得る。その動作において、ビデオ符号化器(603)は、入力ビデオシーケンス内の時間的および空間的冗長性を利用する予測符号化動作を含む、様々な圧縮動作を実行することができる。したがって、符号化ビデオデータは、使用されているビデオ符号化技術または規格によって指定された構文に準拠することができる。
ビデオは、時系列における複数のソースピクチャ(画像)の形態であってもよい。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在のピクチャと呼ばれる、符号化/復号中の特定のピクチャがブロックに区分される。現在のピクチャ内のブロックがビデオ内の以前に符号化されてまだバッファされている参照ピクチャ内の参照ブロックに類似しているとき、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによって符号化することができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
いくつかの実施形態では、インターピクチャ予測に双予測技術を使用することができる。双予測技術によれば、第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用され、これらは両方ともビデオ内の現在のピクチャの復号順より前にある(しかし、表示順序はそれぞれ過去および未来のものであってもよい)。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによって符号化することができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測することができる。
さらに、符号化効率を改善するために、インターピクチャ予測にマージモード技術を使用することができる。
本開示のいくつかの実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のために符号化ツリーユニット(CTU)に区分され、ピクチャ内のCTUは、64×64画素、32×32画素、または16×16画素などの同じサイズを有する。一般に、CTUは、1つの輝度CTBおよび2つの彩度CTBである3つの符号化ツリーブロック(CTB)を含む。各CTUは、1つまたは複数の符号化ユニット(CU)に再帰的に四分木分割することができる。例えば、64×64画素のCTUは、64×64画素の1つのCU、または32×32画素の4つのCU、または16×16画素の16個のCUに分割することができる。一例では、各CUは、インター予測形式またはイントラ予測形式などのCUの予測形式を判定するために分析される。CUは、時間的および/または空間的な予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。一般に、各PUは、輝度予測ブロック(PB)と、2つの彩度PBとを含む。一実施形態では、符号化(符号化/復号)における予測演算は、予測ブロックの単位で実行される。予測ブロックの例として輝度予測ブロックを使用すると、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などの画素の値の行列(例えば、輝度値)を含む。
G-PCCモデルは、ジオメトリ情報と、色または反射率などの関連する属性とを別々に圧縮することができる。点群の3D座標であるジオメトリ情報は、その占有情報の八分木分解によって符号化することができる。一方、属性は、予測技術およびリフティング技術を使用して再構築されたジオメトリに基づいて圧縮することができる。八分木区分処理については、例えば図7~図13で説明する。
図7は、一実施形態によるG-PCC分解処理中に適用されるG-PCC復号器(800)のブロック図を示す。復号器(800)は、圧縮ビットストリームを受信し、点群データ解凍を実行してビットストリームを解凍し、復号された点群データを生成するように構成することができる。一実施形態では、復号器(800)は、算術復号モジュール(810)、逆量子化モジュール(820)、八分木復号モジュール(830)、LOD生成モジュール(840)、逆量子化モジュール(850)、および逆補間ベースの予測モジュール(860)を含むことができる。
図示されるように、圧縮ビットストリーム(801)は、算術復号モジュール(810)において受信され得る。算術復号モジュール(810)は、圧縮ビットストリーム(801)を復号して、点群の量子化された予測残差(生成された場合)および占有コード(またはシンボル)を取得するように構成される。八分木復号モジュール(830)は、占有コードに従って点群内の点の量子化位置を生成するように構成される。逆量子化モジュール(850)は、八分木復号モジュール(830)によって提供された量子化位置に基づいて点群内の点の再構築位置を生成するように構成される。
LOD生成モジュール(840)は、再構築された位置に基づいて点を異なるLODに再構築し、LODベースの順序を決定するように構成される。逆量子化モジュール(820)は、算術復号モジュール(810)から受信した量子化された予測残差に基づいて再構築された予測残差を生成するように構成される。逆補間ベースの予測モジュール(860)は、属性予測処理を実行して、逆量子化モジュール(820)から受信した再構築された予測残差およびLOD生成モジュール(840)から受信したLODベースの順序に基づいて、点群内の点の再構築された属性を生成するように構成される。
さらに、逆補間ベースの予測モジュール(860)から生成された再構築された属性は、逆量子化モジュール(850)から生成された再構築された位置と共に、一例では、復号器(800)から出力される復号された点群(または再構築された点群)(802)に対応する。
図8は、一実施形態によるG-PPC符号化器(700)のブロック図を示す。符号化器(700)は、点群データを受信し、点群データを圧縮して、圧縮された点群データを搬送するビットストリームを生成するように構成することができる。一実施形態では、符号化器(700)は、位置量子化モジュール(710)、重複点除去モジュール(712)、八分木符号化モジュール(730)、属性転送モジュール(720)、詳細レベル(LOD)生成モジュール(740)、補間ベースの予測モジュール(750)、残差量子化モジュール(760)、および算術符号化モジュール(770)を含むことができる。
図示のように、入力点群(701)を符号化器(700)で受信することができる。点群(701)の位置(例えば、3D座標)は量子化モジュール(710)に提供される。量子化モジュール(710)は、座標を量子化して量子化位置を生成するように構成される。重複点除去モジュール(712)は、量子化位置を受け取り、フィルタ処理を実行して重複点を識別および除去するように構成される。八分木符号化モジュール(730)は、重複点除去モジュール(712)からフィルタリングされた位置を受信し、八分木ベースの符号化処理を実行して、ボクセルの3Dグリッドを記述する一連の占有コード(またはシンボル)を生成するように構成される。占有コードは算術符号化モジュール(770)に提供される。
属性転送モジュール(720)は、入力点群の属性を受信し、複数の属性値が各ボクセルに関連付けられている場合に、各ボクセルの属性値を決定するための属性転送処理を実行するように構成される。属性転送処理は、八分木符号化モジュール(730)から出力された再順序付けされた点に対して実行することができる。転送動作後の属性は、補間ベースの予測モジュール(750)に提供される。LOD生成モジュール(740)は、八分木符号化モジュール(730)から出力された再順序付けされた点に対して動作し、点を異なるLODに再編成するように構成される。LOD情報は、補間ベースの予測モジュール(750)に供給される。
補間ベースの予測モジュール(750)は、LOD生成モジュール(740)からのLOD情報によって示されるLODベースの順序および属性転送モジュール(720)から受信した転送された属性に従って点を処理し、予測残差を生成する。残差量子化モジュール(760)は、補間ベースの予測モジュール(750)から予測残差を受信し、量子化を実行して量子化された予測残差を生成するように構成される。量子化された予測残差は算術符号化モジュール(770)に提供される。算術符号化モジュール(770)は、八分木符号化モジュール(730)から占有コード、候補インデックス(使用される場合)、補間ベースの予測モジュール(750)からの量子化された予測残差、および他の情報を受信し、エントロピー符号化を実行して、受信した値または情報をさらに圧縮するように構成される。これにより、圧縮情報を伝送する圧縮ビットストリーム(702)を生成することができる。ビットストリーム(702)は、圧縮ビットストリームを復号する復号器に送信されるか、またはそうでなく提供されてもよく、または記憶装置に記憶されてもよい。
本明細書に開示された属性予測技術を実装するように構成された補間ベースの予測モジュール(750)および逆補間ベースの予測モジュール(860)は、図7および図8に示されたものと同様または異なる構造を有することができる他の復号器または符号化器に含まれることができることに留意されたい。さらに、符号化器(700)および復号器(800)は、同じ装置、または様々な例では別個の装置に含まれ得る。
様々な実施形態において、符号化器(300)、復号器(400)、符号化器(700)、および/または復号器(800)は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装することができる。例えば、符号化器(300)、復号器(400)、符号化器(700)、および/または復号器(800)は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などのソフトウェアを用いて、または用いずに動作する1つまたは複数の集積回路(IC)などの処理回路を用いて実装することができる。別の例では、符号化器(300)、復号器(400)、符号化器(700)、および/または復号器(800)は、不揮発性(または非一時的)コンピュータ可読記憶媒体に記憶された命令を含むソフトウェアまたはファームウェアとして実装することができる。命令は、1つまたは複数のプロセッサなどの処理回路によって実行されると、処理回路に、符号化器(300)、復号器(400)、符号化器(700)、および/または復号器(800)の機能を実行させる。
すべての軸(例えば、x、yおよびz軸)に沿って対称的に3D立方体によって定義される点群の区分は、点群圧縮(PCC)における八分木(Octree:OT)区分として知られる8つの下位立方体をもたらすことができる。OT区分は、1次元の二分木(BT)区分および2次元空間の4分木(QT)区分に似ている。OT区分の概念は図9に示すことができ、図9では、実線の3D立方体(900)を破線の8つの小さな等しいサイズの立方体に区分することができる。図9に示すように、八分木区分技法は、3D立方体(900)を8つの小さな等しいサイズの立方体0~7に分割することができる。
八分木区分技術(例えば、TMC13では、)において、八分木ジオメトリコーデックが使用される場合、ジオメトリ符号化は以下のように進む。第一に、立方体軸に整列した境界ボックスBは、2つの端点(0,0,0)および(2d,2d,2d)によって定義することができ、ここで2dは境界ボックスBのサイズを定義し、dはビットストリームに符号化することができる。したがって、定義された境界ボックスBの内側のすべての点を圧縮することができる。
次いで、境界ボックスBを再帰的に細分化することによって八分木構造を構築することができる。各段階で、立方体を8つの下位立方体に細分化することができる。k(k≦d)回反復的に細分化した後の下位立方体のサイズは、(2d-k,2d-k,2d-k)とすることができる。次いで、対応する下位立方体が点を含む(すなわち、満たされたであり、値1を有する)か含まない(すなわち、空であり、値0を有する)かを示すために、占有コードなどの8ビットコードを、各下位立方体に1ビット値を関連付けることによって生成することができる。1より大きいサイズ(すなわち、非ボクセル)を有する満たされた下位立方体のみをさらに細分化することができる。次いで、各立方体の占有コードを算術符号化器によって圧縮することができる。
復号処理は、境界ボックスBのビットストリーム次元から読み取ることによって開始することができる。次いで、復号された占有コードに従って境界ボックスBを細分することによって同じ八分木構造を構築することができる。2レベルOT区分および対応する占有コードの一例を図10に示すことができ、陰影が付けられた立方体およびノードは、立方体およびノードが点によって占有されていることを示す。
図10は、本開示のいくつかの実施形態による、八分木区分(1010)および八分木区分(1010)に対応する八分木構造(1020)の一例を示す。図10は、八分木区分(1010)における2つのレベルの区分を示す。八分木構造(1020)は、八分木区分(1010)のための立方体ボックスに対応するノード(N0)を含む。第1のレベルでは、立方体ボックスは、図9に示す番号付け技術に従って0~7の番号が付けられた8つの下位立方体ボックスに区分される。ノードN0の区分の占有コードはバイナリで「10000001」であり、これは、ノードN0-0によって表される第1の下位立方体ボックスおよびノードN0-7によって表される第8の下位立方体ボックスが点群内の点を含み、他の下位立方体ボックスが空であることを示す。
次に、第2のレベルの区分では、第1の下位立方体ボックス(ノードN0-0によって表される)および第8の下位立方体ボックス(ノードN0-7によって表される)は、それぞれ8つの八分の一区分にさらに細分される。例えば、第1の下位立方体ボックス(ノードN0-0によって表される)は、図9に示す番号付け技術に従って0~7の番号が付けられた8つのより小さい下位立方体ボックスに区分される。ノードN0-0の区分の占有コードはバイナリで「00011000」であり、これは第4のより小さい下位立方体ボックス(ノードN0-0-3によって表される)および第5のより小さい下位立方体ボックス(ノードN0-0-4によって表される)が点群内の点を含み、他のより小さい下位立方体ボックスが空であることを示す。第2のレベルでは、第7の下位立方体ボックス(ノードN0-7によって表される)は、図10に示すように、8つのより小さい下位立方体ボックスに同様に区分される。
図10の例では、空でない立方体空間(例えば、立方体ボックス、下位立方体ボックス、より小さい下位立方体ボックスなど)に対応するノードはグレーで陰影が付けられ、陰影が付けられたノードと呼ばれる。
元のTMC13設計では、例えば、上述したように、境界ボックスBは、すべての次元に対して同じサイズを有する立方体になるように制限することができ、したがって、OT区分は、下位立方体がすべての次元に対してサイズが半分になる各ノードですべての下位立方体に対して実行することができる。OT区分は、下位立方体のサイズが1に達するまで再帰的に実行することができる。しかしながら、このような方法での区分は、特に点が3Dシーン(または3D空間)に不均一に分布している場合、すべての場合に効率的であるとは限らない。
1つの極端な場合は、3D空間内の2D平面であり得、3D空間内のx-y平面上にすべての点を配置することができ、z軸の変動は0であり得る。そのような場合、開始点として立方体Bに対して実行されるOT区分は、z方向の占有情報を表すために大量のビットを浪費する可能性があり、冗長であり、有用ではない。実際の用途では、最悪のケースは頻繁に発生しない場合がある。しかしながら、他の方向と比較して一方向の分散が少ない点群を有することが一般的である。図11に示すように、TMC13で「ford_01_vox1mm」と名付けられた点群シーケンスは、xおよびy方向に主成分を有することができる。実際、Lidarシステムから生成された多くの点群データは、同じ特性を有することができる。
四分木および二分木(QtBt)区分では、境界ボックスBは立方体に限定されない場合があり、代わりに、境界ボックスBは、3Dシーンまたはオブジェクトの形状によりよく適合する任意サイズの長方形の直方体とすることができる。実装では、境界ボックスBのサイズは、2の累乗、例えば(2dx,2dy,2dz)として表すことができる。
境界ボックスBは完全な立方体ではない可能性があるため、場合によっては、ノードはすべての方向に沿って区分されない(または区分できない)場合がある。区分が3つの方向すべてで実行される場合、区分は典型的なOT区分である。3つのうちの2つの方向で区分が行われる場合、区分は3DのQT区分である。区分が一方向のみで実行される場合、区分は3DのBT区分である。3DにおけるQTおよびBTの例をそれぞれ図12および図13に示す。
図12に示すように、3D立方体1201は、x-y軸に沿って4つの下位立方体0、2、4、および6に区分することができる。3D立方体1202は、x-z軸に沿って4つの下位立方体0、1、4および5に区分することができる。3D立方体1203は、y-z軸に沿って4つの下位立方体0、1、2および3に区分することができる。図13では、3D立方体1301をx軸に沿って2つの下位立方体0および4に区分することができる。3D立方体1302は、2つの下位立方体0および2に区分することができる。3D立方体1303は、2つの下位立方体0および1に区分することができる。
TMC13における暗黙的QT区分およびBT区分の条件を定義するために、2つのパラメータ(すなわち、KおよびM)を適用することができる。第1のパラメータK(0≦K≦max(dx,dy,dz)-min(dx,dy,dz))は、OT区分の前に実行することができる暗黙的QT区分およびBT区分の最大時間を定義することができる。第2のパラメータM(0≦M≦min(dx,dy,dz))は、暗黙のQT区分およびBT区分の最小サイズを定義することができ、すべての次元がMより大きい場合にのみ、暗黙のQT区分およびBT区分が許容されることを示す。
より具体的には、第1のK個の区分は表Iの規則に従うことができ、第1のK個の区分の後の区分は表IIの規則に従うことができる。表に列挙された条件のいずれも満たされない場合、OT区分を実行することができる。
一実施形態では、境界ボックスBは、
のサイズを有することができる。一般性を失うことなく、条件0<dx≦dy≦dzを境界ボックスBに適用することができる。条件に基づいて、第1のK(K≦dz-dx)個の深さで、暗黙のBT区分をz軸に沿って実行することができ、暗黙のQT区分をy-z軸に沿って表Iに従って実行することができる。サブノードのサイズは
になることができ、δyおよびδzの値(δz≧δy≧0)はKの値に依存することができる。さらに、OT区分はdx-M回実行することができ、その結果、残りのサブノードは
のサイズを有することができる。次に、表IIによれば、暗黙のBT区分をz軸に沿ってδz-δy回実行することができ、その後、暗黙のQT区分をy-z軸に沿ってδy回実行することができる。したがって、残りのノードは、2(M,M,M)のサイズを有することができる。したがって、最小単位に到達するために、OT区分をM回実行することができる。
QtBt区分では、ノード分解の各レベルで八分木、四分木、および二分木を切り替えることによって所与の直方体の区分をどのように適用するかについての暗黙の規則が提供される。規則(例えば、表I)に従ってQtBt区分を介したKレベルの初期分解の後、別の規則(例えば、表II)に従ってQtBt区分の別のラウンドを実行することができる。以上の処理において、規則内の条件のいずれも満たされない場合、八分木分解(または八分木区分)を適用することができる。
暗黙の規則は、以下のようにQtBtの有効性に影響を与える可能性がある。(1)x、y、およびz次元に沿ったほぼ対称な直方体境界ボックスを有する点群データの場合、QtBt区分は、すべてのレベルでOt(八分木)分解を実行している関連する方法(例えば、暗黙のQtBt区分)を超える符号化利得を示していない、および(2)x、y、およびz次元に沿った高度に非対称直方体境界ボックスを有する点群データの場合、QtBt区分は、分解中に不要な占有情報の送信をスキップすることによって符号化利得を示している。
現在のQtBt区分では、特定の制限を以下のように置くことができる。第一に、QtBt区分は、非対称な境界ボックスの使用を常に強制することができ、これは、点群がほぼ対称な境界ボックスを有する場合には有用でなく、逆効果でさえない可能性がある。第二に、パラメータKと共に表Iは、Ot区分の代わりにQt/Bt区分を実施することによって、規則に従ってより大きな次元を削減することができる。しかしながら、境界ボックスが対称であるとき、パラメータKと共に表Iは、最初にQtまたはBt区分を許容しない場合がある。第三に、表IIは、サブボックスの最小次元がMに達すると、上記のK回の分割および起動の後に適用することができる。したがって、表IIは、すべての次元がMに等しくなるまで、規則に従ってより大きな次元を削減することができる。第四に、現在の暗黙の規則(または暗黙のQtBt区分)は、現在のQtBt区分がレベルMに達するまで、第1の(最大)Kレベルの後に八分木分解を常に要求することができる。言い換えれば、現在のQtBt区分は、2つのレベル点の間で任意のQt/Bt/Ot区分を選択することを可能にしない場合がある。
本開示では、複数の方法が提供される。本方法は、例えば上記の議論に基づいて、典型的なユースケースのためのTMC13におけるQtBt設計(例えば、暗黙のQtBt区分)の単純化を提供する。本方法はまた、例えば各レベルでノード分解型式を明示的にシグナリングすることによって、より柔軟な区分方法を可能にする。
一実施形態では、第1の区分方法(または簡略化されたQtBt区分)を提供することができる。第1の区分方法は、暗黙的QtBt区分の特別な場合とすることができ、これは、K=0 & M=0を設定することによって高度に非対称な境界ボックスを有するデータセットに適用することができる。第1の区分方法は、QtBt設計(例えば、QtBt区分)を単純化することができ、さらに上述したように典型的な場合の符号化利益をもたらすことができる。
TMC13内のQtBt区分と比較して、第1の区分方法は、以下の特徴を含むことができる:(1)TMC13内のQtBt区分内の暗黙の有効フラグ(例えば、implicit_qtbt_enabled_flag)を除去することができる。(2)非対称境界ボックスの使用を可能にするために、非対称境界ボックスフラグ(例えば、asymmetric_bbox_enabled_flagである)を導入することができる。一例では、非対称境界ボックスフラグが、対称またはほぼ対称の境界ボックスデータについては0などの値(第2の値とも呼ばれる)に設定され、高度に非対称の境界ボックスデータについては1などの値(第1の値とも呼ばれる)に設定される。(3)非対称境界ボックスフラグが第1の値である場合、ノード分解レベルが0(または最後のレベル)に達したときに、K=0 & M=0の暗黙的QtBt規則(例えば、表Iおよび表II)を適用することができる。そうでなければ、非対称境界ボックスフラグが第2の値である場合、第1の区分方法は八分木分解(または八分木区分)を実行することができる。
第1の区分方法によれば、表IIIに示すようないくつかの次元に沿って不要な占有情報を送信することをスキップするために、M=0で表IIに示す暗黙的QtBt規則を適用することができる。
一実施形態では、分割決定の明示的なシグナリングを送信するために、第2の区分方法(または明示的QtBt区分)を提供することができる。明示的なシグナリングは、現在のQtBt区分における固定された暗黙のルールの使用とは対照的に提供することができる。
第2の区分方法は、以下の特徴を含むことができる:(1)明示的な分割決定シグナリングを有効/無効にするために明示的QtBt有効フラグ(例えば、explicit_qtbt_enabled_flag)を導入することができる一方で、第1の区分方法からの非対称境界ボックスフラグを依然として導入することができる。(2)明示的QtBt有効フラグが0(または第2の値)などの値に設定されると、第2の区分方法は、上述した第1の区分方法に戻る(または等しくなり得る)。したがって、非対称境界ボックスフラグ(例えば、asymmetric_bbox_enabled_flagである)が1などの値(または第1の値)である場合、ノード分解レベルが0(または最後のレベル)に達したときに、K=0 & M=0を有する暗黙的QtBt規則(例えば、表Iおよび表II)を適用することができる。非対称境界ボックスフラグが第2の値である場合、第2の区分方法は、八分木分解(または八分木区分)を実行することができる。一実施形態では、非対称境界ボックスフラグが使用されず、明示的QtBt有効フラグが第2の値(例えば、0)に設定されるとき、第2の区分方法は、すべてのレベルに対して八分木分解(または八分木区分)を適用することができる。(4)明示的QtBt有効フラグが第1の値(例えば、1)に設定されると、第1の区分方法で述べたようにレベルが0(または最後のレベル)に達するまで常に八分木分割を実行する代わりに、3ビット信号を八分木レベルの各々で送信して、x、y、およびz軸の各々に沿って分割するかどうかを示すことができる。したがって、3ビット信号は、八分木レベルの各々において、Bt区分、Qt区分、またはOt区分が適用され得るかどうかを示すことができる。いくつかの実施形態では、TMC13内の暗黙的QtBt規則(例えば、表Iおよび表II)を適用して、各八分木レベルにおける3ビット信号を決定することができる。
第2の区分方法において明示的QtBt有効フラグが第1の値に設定されているとき、Ot/Qt/Bt区分は途中で任意の方法で許可されるので、分割の最大可能総数は、最大ノード深度と最小ノード深度との差の3倍とすることができることに留意されたい。
本開示の一実施形態では、分割決定の明示的なシグナリングを送信するために、第3の区分方法(または明示的QtBt型式2区分)を提供することができる。明示的なシグナリングは、現在のQtBt区分における固定された暗黙の規則の使用とは対照的に提供することができる(例えば、表Iおよび表II)。第3の区分方法は、現在のQtBt区分と比較して以下の特徴を含むことができる:(1)明示的QtBt有効フラグ(例えば、explicit_qtbt_enabled_flag)は、明示的な分割決定シグナリングを有効/無効にするために、TMC13内のQtBt区分内の暗黙的QtBt有効フラグ(例えば、implicit_qtbt_enabled_flag)を置き換えることができる。(2)非対称境界ボックスの使用を有効/無効にするために、明示的QtBt有効フラグが1(または第1の値)などの値であるときのみ、非対称境界ボックスフラグ(例えば、asymmetric_bbox_enabled_flag)をさらにシグナリングすることができる。非対称境界ボックスフラグが第1の値であるとき、x、y、およびzに沿った非対称境界ボックスの寸法(すなわち、サイズ)は、3つの最大値とは対照的に、さらにシグナリングすることができる。したがって、非対称境界ボックスフラグは、対称またはほぼ対称の境界ボックスデータの場合は0(例えば、第2の値)、非対称性の高い境界ボックスデータの場合は第1の値(例えば、1)などの値に設定することができる。(3)明示的QtBt有効フラグが第1の値に設定されると、x軸、y軸、およびz軸のそれぞれに沿って分割すべきかどうかを示すために、3ビット信号を八分木レベル(または八分木区分レベル)のそれぞれで送信することができる。一実施形態では、TMC13内の暗黙的QtBt規則(例えば、表Iおよび表II)を適用して、八分木レベルの各々の3ビット信号を決定することができる。別の実施形態では、他の分割規則を適用して、八分木レベルの各々の3ビット信号を決定することができる。他の分割規則は、八分木占有情報の符号化を容易にし、データの特性(例えば、八分木占有情報)または日付の取得メカニズムをさらに考慮に入れることができる。(4)明示的QtBt有効フラグが第2の値(例えば、0)に設定されているとき、第3の区分方法は、すべてのレベルに対して八分木分解(八分木区分)を適用することができる。
第3の区分方法において明示的QtBt有効フラグが第1の値に設定されているとき、Ot/Qt/Bt区分は途中で任意の方法で許可されるので、分割の最大可能総数は、最大ノード深度と最小ノード深度との差の3倍とすることができることに留意されたい。
本開示の一実施形態では、明示的または暗黙的のいずれかとしての型式のQtBt区分の追加のシグナリングによってQtBt区分の使用においてより柔軟性を提供するために、第4の区分方法(または柔軟なQtBt区分)を提供することができる。現在のQtBt区分における固定された暗黙のルールの使用とは対照的に、追加シグナリングを提供することができる(例えば、表Iおよび表II)。
第4の区分方法は、以下を含むことができる。(1)より柔軟性のあるQtBt区分の使用を示すために、TMC13内のQtBt区分内の暗黙のQtBt有効フラグを置き換えるために、QtBt有効フラグ(例えば、qtbt_enabled_flag)を適用することができる。(2)QtBt有効フラグが1などの値に設定されると、QtBt型式フラグ(例えば、qtbt_type_flag)をさらにシグナリングすることができる。(3)QtBt型式フラグが0などの値に設定される場合、現在の暗黙的QtBt方式(例えば、表Iおよび表II)を適用することができる。さらに、非対称境界ボックスの使用を選択的に有効/無効にするために、非対称境界ボックスフラグ(例えば、asymmetric_bbox_enabled_flagである)をさらにシグナリングすることができる。一実施形態では、非対称境界ボックスフラグが1などの値に設定されると、x、y、およびzに沿った非対称境界ボックスの寸法(すなわち、サイズ)は、3つの最大値とは対照的にシグナリングされ得る。別の実施形態では、非対称境界ボックスフラグがシグナリングされない場合、非対称境界ボックスを常に使用することができる。
第4の区分方法はまた、以下を含むことができる。(4)QtBt型式フラグが1などの値である場合、3ビット信号を八分木レベルの各々に送信して、x、y、およびz軸の各々に沿って分割するかどうかを示すことができる。一実施形態では、TMC13内の暗黙的QtBt規則(例えば、表Iおよび表II)を適用して、八分木レベルの各々の3ビット信号を決定することができる。別の実施形態では、他の分割規則を適用して、八分木レベルの各々の3ビット信号を決定することができる。他の分割規則は、八分木占有情報の符号化を容易にし、データの特性(例えば、八分木占有情報)または日付の取得メカニズムをさらに考慮に入れることができる。一実施形態では、非対称境界ボックスの使用を選択的に有効/無効にするために、非対称境界ボックスフラグをさらにシグナリングすることができる。非対称境界ボックスフラグが1などの値であるとき、x、y、およびzに沿った非対称境界ボックスの寸法(すなわち、サイズ)は、3つの最大値とは対照的にシグナリングすることができる。別の実施形態では、非対称境界ボックスフラグはシグナリングされなくてもよく、非対称境界ボックスを常に使用することができる。(5)QtBt有効フラグが0などの値に設定されている場合、第4の区分方法は、すべてのレベルに対して八分木分解(または八分木区分)を適用することができる。
第4の区分方法において明示的QtBt有効フラグが1などの値に設定されているとき、Ot/Qt/Bt区分は途中で任意の方法で許可されるので、分割の最大可能総数は、最大ノード深度と最小ノード深度との差の3倍とすることができることに留意されたい。
上記の技術は、点群圧縮/解凍に適合されたビデオ符号化器または復号器で実施することができる。符号化器/復号器は、ハードウェア、ソフトウェア、またはそれらの任意の組み合わせで実装することができ、ソフトウェアは、存在する場合、1つまたは複数の非一時的コンピュータ可読媒体に格納することができる。例えば、方法(または実施形態)、符号化器、および復号器の各々は、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実施されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
図14および図15は、本開示の実施形態による処理(1400)および処理(1500)の概要を示すフローチャートである。処理(1400)および(1500)は、点群の復号処理中に使用することができる。様々な実施形態において、処理(1400)および(1500)は、端末装置(110)内の処理回路、符号化器(203)および/または復号器(201)の機能を実行する処理回路、符号化器(300)、復号器(400)、符号化器(700)、および/または復号器(800)の機能を実行する処理回路などの処理回路によって実行することができる。いくつかの実施形態では、処理(1400)および(1500)はソフトウェア命令で実施されることができ、したがって、処理回路がソフトウェア命令を実行すると、処理回路は処理(1400)および(1500)をそれぞれ実行する。
図14に示すように、処理(1400)は(S1401)から開始し、(S1410)に進む。
(S1410)において、第1のシグナリング情報は、3次元(3D)空間内の点のセットを含む点群のための符号化されたビットストリームから受信することができる。第1のシグナリング情報は、点群の区分情報を示すことができる。
(S1420)において、第2のシグナリング情報は、第1の値を示す第1のシグナリング情報に基づいて決定することができる。第2のシグナリング情報は、3D空間内の点のセットの区分モードを示すことができる。
(S1430)において、3D空間内の点のセットの区分モードは、第2のシグナリング情報に基づいて決定することができる。次いで、処理(1400)は(S1440)に進むことができ、点群はその後、区分モードに基づいて再構築することができる。
いくつかの実施形態では、区分モードは、第2の値である第2のシグナリング情報に基づいて、所定の四分木および二分木(QtBt)区分であると決定することができる。
処理(1400)では、3D空間が非対称直方体であることを示す第3のシグナリング情報を受信することができる。x、y、およびz方向に沿ってシグナリングされる3D空間の寸法は、第1の値である第3のシグナリング情報に基づいて決定することができる。
いくつかの実施形態では、第2のシグナリング情報が第1の値であることに基づいて、区分モードにおける複数の区分レベルの各々について3ビットのシグナリング情報を決定することができる。複数の区分レベルの各々の3ビットシグナリング情報は、区分モードにおけるそれぞれの区分レベルのx、y、およびz方向に沿った区分方向を示すことができる。
いくつかの実施形態では、3ビットのシグナリング情報は、3D空間の次元に基づいて決定することができる。
処理(1400)では、区分モードは、第2の値である第1のシグナリング情報に基づいて決定することができ、区分モードは、区分モードにおける複数の区分レベルの各々にそれぞれの八分木区分を含むことができる。
図15に示すように、処理(1500)は(S1501)から開始し、(S1510)に進む。
(S1510)において、第1のシグナリング情報は、3次元(3D)空間内の点のセットを含む点群のための符号化されたビットストリームから受信することができる。第1のシグナリング情報は、点群の区分情報を示すことができる。
(S1520)において、3D空間内の点のセットの区分モードは、第1のシグナリング情報に基づいて決定することができ、区分モードは、複数の区分レベルを含むことができる。
(S1530)において、点群は、その後、区分モードに基づいて再構築され得る。
いくつかの実施形態では、区分モードにおける複数の区分レベルの各々についての3ビットのシグナリング情報は、第1の値である第1のシグナリング情報に基づいて決定することができ、複数の区分レベルの各々についての3ビットのシグナリング情報は、区分モードにおけるそれぞれの区分レベルについてのx、y、およびz方向に沿った区分方向を示すことができる。
いくつかの実施形態では、3ビットのシグナリング情報は、3D空間の次元に基づいて決定することができる。
いくつかの実施形態では、区分モードは、第1のシグナリング情報が第2の値であることに基づいて、区分モードにおける複数の区分レベルの各々にそれぞれの八分木区分を含むように決定することができる。
処理(1500)では、点群のための符号化されたビットストリームから第2のシグナリング情報をさらに受信することができる。第2のシグナリング情報は、第2のシグナリング情報が第1の値であるとき、3D空間が非対称直方体であり、第2のシグナリング情報が第2の値であるとき、3D空間が対称直方体であることを示すことができる。
いくつかの実施形態では、第2の値を示す第1の信号情報および第1の値を示す第2の信号情報に基づいて、区分モードは、区分モードの複数の区分レベルにおける第1の区分レベルの各々にそれぞれの八分木区分を含むように決定され得る。区分モードの複数の区分レベルのうちの最後の区分レベルの区分型式および区分方向は、以下の表
に従って決定することができ、ここで、dx、dy、およびdzは、それぞれx、y、およびz方向の3D空間のlog2サイズである。
処理(1500)では、第1の値を示す第1のシグナリング情報に基づいて、第2のシグナリング情報を決定できる。第2のシグナリング情報は、第2のシグナリング情報が第1の値を示す場合、3D空間が非対称直方体であり、第2のシグナリング情報が第2の値を示す場合、3D空間が対称直方体であることを示すことができる。さらに、x、y、およびz方向に沿ってシグナリングされる3D空間の寸法は、第1の値を示す第2のシグナリング情報に基づいて決定することができる。
上述のとおり、上述した技術は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読媒体に物理的に記憶されたコンピュータソフトウェアとして実装することができる。例えば、図16は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム(1800)を示している。
コンピュータソフトウェアは、任意の適切な機械符号またはコンピュータ言語を使用して符号化でき、アセンブリ、コンパイル、リンク、または同様のメカニズムの対象となり、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによる直接、または解釈、マイクロ符号の実行などを通じて実行できる命令を含む符号を作成する。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置などを含む様々な型式のコンピュータまたはその構成要素上で実行することができる。
コンピュータシステム(1800)について図16に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関していかなる制限を示唆することを意図しない。成分の構成は、コンピュータシステム(1800)の例示的な実施形態に示されている成分のいずれかまたは組み合わせに関する依存関係または要件を有すると解釈されるべきではない。
コンピュータシステム(1800)は、特定のヒューマンインターフェース入力装置を含むことができる。そのようなヒューマンインターフェース入力装置は、例えば、触知入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した1人以上の人間のユーザによる入力に応答することができる。ヒューマンインターフェース装置を使用して、音声(スピーチ、音楽、環境音など)、画像(走査した画像、静止画像カメラから得られる写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係しない特定の媒体を捕捉することもできる。
入力ヒューマンインターフェース装置は、キーボード(1801)、マウス(1802)、トラックパッド(1803)、タッチスクリーン(1810)、データグローブ(図示せず)、ジョイスティック(1805)、マイクロフォン(1806)、スキャナ(1807)、カメラ(1808)のうちの1つまたは複数(各々のうちのただ1つ)を含むことができる。
コンピュータシステム(1800)はまた、特定のヒューマンインターフェース出力装置を含んでもよい。そのようなヒューマンインターフェース出力装置は、例えば、触知出力、音、光、および匂い/味によって1人または複数の人間のユーザの感覚を刺激することができる。そのようなヒューマンインターフェース出力装置は、触知出力装置(例えば、タッチスクリーン(1810)、データグローブ(図示せず)、またはジョイスティック(1805)による触覚フィードバックであるが、入力装置として機能しない触覚フィードバック装置も存在し得る)、音声出力装置(例えば、スピーカ(1809)、ヘッドホン(図示せず))、視覚出力装置(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1810)であって、それぞれがタッチスクリーン入力機能を有するかまたは有さず、それぞれが触知フィードバック機能を有するかまたは有さず、その一部は、ステレオ出力などの手段を介して二次元視覚出力または三次元超出力を出力することができてもよい;仮想現実メガネ(図示せず)、ホログラフィックディスプレイ、および煙タンク(図示せず))、およびプリンタ(図示せず)を含むことができる。
コンピュータシステム(1800)はまた、人間がアクセス可能な記憶装置およびそれらの関連媒体、例えば、CD/DVDなどの媒体を有するCD/DVD ROM/RW(1820)を含む光学媒体(1821)、サムドライブ(1822)、リムーバブルハードドライブまたはソリッド・ステート・ドライブ(1823)、テープおよびフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースの装置などを含むことができる。
当業者はまた、ここで開示される主題に関連して使用される「コンピュータ可読媒体」という用語は、送信媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
コンピュータシステム(1800)は、1つまたは複数の通信ネットワークへのインターフェースも含み得る。ネットワークは、例えば、無線、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業、リアルタイム、遅延耐性などであり得る。ネットワークの例には、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波放送TVを含むテレビ有線または無線広域デジタルネットワーク、CANBusを含む車両および産業用などが含まれる。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(1849)に取り付けられた外部ネットワークインターフェースアダプタを必要とする(例えば、コンピュータシステム(1800)のUSBポートなど)。他のものは、一般に、後述するようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)によってコンピュータシステム(1800)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(1800)は、他のエンティティと通信することができる。そのような通信は、例えば、ローカルまたは広域デジタルネットワークを使用する他のコンピュータシステムに対して、単方向、受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbus装置へのCANbus)、または双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上述したように、それらのネットワークおよびネットワークインターフェースのそれぞれで使用することができる。
前述のヒューマンインターフェース装置、ヒューマンアクセスストレージ装置、およびネットワークインターフェースは、コンピュータシステム(1800)のコア(1840)に取り付けることができる。
コア(1840)には、1つまたは複数の中央処理装置(CPU)(1841)、グラフィック処理装置(GPU)(1842)、フィールド・プログラマブル・ゲート・エリア(FPGA)(1843)、特定のタスクのハードウェアアクセラレータ(1844)などの形式の特殊なプログラマブル処理装置を含めることができる。これらの装置は、読取り専用メモリ(ROM)(1845)、ランダム・アクセス・メモリ(1846)、内部非ユーザアクセス可能ハードドライブなどの内部大容量ストレージ、SSDなど(1847)とともに、システムバス(1848)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1848)は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺機器は、コアのシステムバス(1848)に直接取り付けることも、周辺バス(1849)を介して取り付けることもできる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
CPU(1841)、GPU(1842)、FPGA(1843)、およびアクセラレータ(1844)は、組み合わせて上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1845)またはRAM(1846)に記憶することができる。移行データはまた、RAM(1846)に記憶することができ、一方、永続データは、例えば内部大容量ストレージ(1847)に記憶することができる。メモリ装置のいずれかへの高速記憶および検索は、1つまたは複数のCPU(1841)、GPU(1842)、大容量ストレージ(1847)、ROM(1845)、RAM(1846)などと密接に関連付けることができるキャッシュメモリの使用によって可能にすることができる。
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、またはコンピュータソフトウェア技術の当業者に周知で利用可能な型式のものであってもよい。
限定ではなく、例として、アーキテクチャ、特にコア(1840)を有するコンピュータシステム(1800)は、1つまたは複数の有形のコンピュータ可読媒体で具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上述のようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ(1847)またはROM(1845)などの非一時的な性質のコア(1840)の特定のストレージに関連付けられた媒体とすることができる。本開示の様々な実施形態を実施するソフトウェアは、そのような装置に格納され、コア(1840)によって実行することができる。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリ装置またはチップを含むことができる。ソフトウェアは、コア(1840)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1846)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義された処理に従ってそのようなデータ構造を修正することを含む、本明細書に記載の特定の処理または特定の処理の特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、結線で接続されたまたはそうでなく回路(例えば、アクセレーター(1844))に具現化されたロジックの結果として機能を提供することができ、ソフトウェアの代わりに、またはソフトウェアと共に動作して、本明細書に記載の特定の処理または特定の処理の特定の部分を実行することができる。ソフトウェアへの参照は、適切な場合には、ロジックを包含することができ、逆もまた同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアとの任意の適切な組み合わせを包含する。
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある変更、置換、および様々な代替均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないまたは記載されていないが、本開示の原理を具体化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。