本開示の態様は、3次元(3D)メディア処理の分野におけるメッシュ圧縮のための技術を提供する。
3次元(3D)キャプチャ、3Dモデリング、および3Dレンダリングなどの進歩といった3Dメディア処理における技術開発は、いくつかのプラットフォームおよびデバイスにわたって3Dコンテンツの普遍的な存在を促進している。一例では、赤ん坊の最初の一歩をある大陸でキャプチャされることができ、メディア技術は、祖父母が他の大陸で赤ん坊との没入体験を眺め(そしておそらく対話し)楽しむことを可能にすることができる。本開示の一態様によれば、没入体験を改善するために、3Dモデルはますます洗練されてきており、3Dモデルの作成および消費は、データストレージ、データ送信リソースといったかなりの量のデータリソースを占有する。
本開示のいくつかの態様によれば、メッシュは、没入型コンテンツを表現するための一種の3Dモデルとして使用され得る。オブジェクトのメッシュ(メッシュモデルとも称される)は、オブジェクトの表面を記述するポリゴンを含み得る。各ポリゴンは、3D空間内のポリゴンの頂点と、頂点がポリゴンにどのように接続されているかの情報とによって定義され得る。頂点がどのように接続されているかの情報は連結性情報と称される。いくつかの例では、メッシュはまた、頂点に関連付けられた色、法線といった属性を含むことができる。属性はまた、メッシュを2D属性マップでパラメータ化するマッピング情報を利用することによって、メッシュの表面に関連付けられ得る。マッピング情報は、通常、メッシュ頂点に関連付けられたUV座標またはテクスチャ座標と称されるパラメトリック座標のセットによって記述される。2D属性マップ(いくつかの例ではテクスチャマップと称される)は、テクスチャ、法線、変位といった高解像度属性情報を記憶するために使用される。そのような情報は、テクスチャマッピングおよびシェーディングといった様々な目的に使用され得る。
いくつかの実施形態では、メッシュは、ジオメトリ情報、連結性情報、マッピング情報、頂点属性、および属性マップと称される成分を含むことができる。いくつかの例では、ジオメトリ情報は、メッシュの頂点に関連付けられた3D位置のセットによって記述される。一例では、頂点の3D位置を記述するために(x,y,z)座標が使用され得る。いくつかの例では、連結性情報は、3D表面を作成するために頂点をどのように接続するかを記述する頂点インデックスのセットを含む。いくつかの例では、マッピング情報は、メッシュ表面を平面の2D領域にどのようにマッピングするかを記述する。一例では、マッピング情報(UVマッピング、テクスチャマッピングとも称される)は、連結性情報とともにメッシュ頂点に関連付けられたUVパラメトリック/テクスチャ座標(u,v)のセットによって記述される。いくつかの例では、頂点属性は、メッシュ頂点に関連付けられたスカラーまたはベクトル属性値を含む。いくつかの例では、属性マップは、メッシュ表面に関連付けられ、2D画像/ビデオとして記憶される属性を含む。一例では、ビデオ(例えば、2D画像/ビデオ)とメッシュ表面との間のマッピングは、マッピング情報によって定義される。
本開示の一態様によれば、動的メッシュは、成分(ジオメトリ情報、連結性情報、マッピング情報、頂点属性および属性マップ)のうちの少なくとも1つが時間とともに変化するメッシュである。動的メッシュは、メッシュ(メッシュフレームとも称される)のシーケンスによって記述され得る。動的メッシュは経時的に変化するかなりの量の情報を含む可能性があるため、動的メッシュは大量のデータを必要とする場合がある。メッシュの圧縮技術は、メッシュ表現におけるメディアコンテンツの効率的な記憶および送信を可能にすることができる。
いくつかの例では、動的メッシュは、一定の連結性情報、時変ジオメトリおよび時変頂点属性を有することができる。いくつかの例では、動的メッシュは時変連結性情報を有することができる。一例では、デジタルコンテンツ作成ツールは、通常、時変属性マップおよび時変連結性情報を有する動的メッシュを生成する。いくつかの例では、動的メッシュを生成するためにボリュメトリック取得技術が使用される。ボリュメトリック取得技術は、特にリアルタイム制約下で、時変連結性情報を有する動的メッシュを生成することができる。
本開示の態様は、メッシュ圧縮のための技術を提供する。これらの技術は、様々なメッシュ圧縮、静的メッシュ圧縮、動的メッシュ圧縮、一定の連結性情報を有する動的メッシュの圧縮、時変連結性情報を有する動的メッシュの圧縮、時変属性マップを有する動的メッシュの圧縮などに使用され得る。これらの技術は、リアルタイム通信、ストレージ、自由視点ビデオ、拡張現実(AR)、仮想現実(VR)といった様々なアプリケーションのための非可逆および可逆圧縮に使用され得る。アプリケーションは、ランダムアクセスおよびスケーラブル/プログレッシブコーディングといった機能を含むことができる。
本開示のいくつかの態様は、動的メッシュ圧縮といったメッシュ圧縮のために点群圧縮(PCC)コーデック(例えば、既存のPCCエンコーダおよびPCCデコーダ)を使用するフレームワークを提供する。
点群は、没入型コンテンツを表現する他のタイプの3Dモデルである。点群は一般に、3D空間内の点のセットを指してもよく、各点が、色、材料特性、テクスチャ情報、強度属性、反射率属性、動き関連属性、モダリティ属性、および様々な他の属性といった関連付けられた属性を有する。点群は、このような点の構成としてオブジェクトまたはシーンを再構成するために使用され得る。点は、様々な設定で複数のカメラ、深度センサまたはライダを使用してキャプチャされることができ、再構成されたシーンまたはオブジェクトを現実的に表現するために数千から最大数十億の点で構成され得る。パッチは、一般に、点群によって記述される表面の連続したサブセットを指してもよい。一例では、パッチは、閾値量未満で互いにずれた表面法線ベクトルを有する点を含む。
PCCは、G-PCCと称されるジオメトリベースの方式、V-PCCと称されるビデオコーディングベースの方式など、様々な方式に従って行われ得る。本開示のいくつかの態様によれば、G-PCCは、3Dジオメトリを直接エンコードし、ビデオコーディングとあまり共通する要素がない純粋にジオメトリベースの手法であり、V-PCCはビデオコーディングに大きく基づいている。例えば、V-PCCは、3Dクラウドの点を2Dグリッド(画像)のピクセルにマッピングすることができる。V-PCC方式は、点群圧縮のために汎用ビデオコーデックを利用することができる。本開示におけるPCCコーデック(エンコーダ/デコーダ)は、G-PCCコーデック(エンコーダ/デコーダ)またはV-PCCコーデックであり得る。
本開示の一態様によれば、V-PCCの背後にある主な考え方は、既存のビデオコーデックを活用して、動的点群の、ジオメトリ、占有、およびテクスチャを3つの別のビデオシーケンスとして圧縮することである。3つのビデオシーケンスを解釈するために必要とされる追加のメタデータは、別々に圧縮される。ビットストリーム全体の小部分がメタデータであり、ソフトウェア実装形態を使用して効率的にエンコード/デコードされ得る。情報の大部分はビデオコーデックによって処理される。
図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)、または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つに対するサブグループパラメータのセットを抽出しうる。サブグループは、Group of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)はまた、コードされたビデオシーケンスから、変換係数、量子化器パラメータ値、動きベクトルといった情報を抽出しうる。
パーサ(520)は、シンボル(521)を作成するために、バッファメモリから受信されたビデオシーケンスに対してエントロピーデコーディング/解析動作を行いうる。
シンボル(521)の再構成は、(ピクチャ間およびピクチャ内、ブロック間およびブロック内などの)コードされたビデオピクチャまたはその一部のタイプならびに他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットがどのように関与するかは、コードされたビデオシーケンスからパーサ(520)によって解析されたサブグループ制御情報によって制御され得る。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、分かりやすくするために図示されていない。
既に述べられた機能ブロック以外に、ビデオデコーダ(510)は、以下に記載されるように、概念的にいくつかの機能ユニットに細分化され得る。商業的制約の下で動作する実際の実装形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合され得る。しかしながら、開示される主題を説明する目的のために、以下の機能ユニットに概念的に細分するのが適切である。
第1のユニットはスケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化された変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化ファクター、量子化スケーリング行列などを含む制御情報を、パーサ(520)から(1つまたは複数の)シンボル(521)として受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力され得るサンプル値を含むブロックを出力することができる。
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコードされたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用していないが、現在ピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関連しる。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供され得る。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)からフェッチされた周囲の既に再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャおよび/または完全に再構成された現在ピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコードされ、潜在的に動き補償されたブロックに関連しうる。そのような場合、動き補償予測ユニット(553)が、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加され得る(この場合、残差サンプルまたは残差信号と称される)。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有することができるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(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)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に記載される他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。分かりやすくするために、結合は図示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、Group of Pictures(GOP)のレイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計に最適化されたビデオエンコーダ(603)に関する他の適切な機能を有するように構成され得る。
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。単純化し過ぎた説明として、一例では、コーディングループは、(例えば、コードされる入力ピクチャ、および参照ピクチャに基づいて、シンボルストリームといったシンボルを作成することに関与する)ソースコーダ(630)、ならびにビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、(シンボルとコードされたビデオビットストリームとの間のいかなる圧縮も、開示される主題で考慮されるビデオ圧縮技術において可逆であるため)(リモート)デコーダも作成するのと同様の方式で、シンボルを再構成してサンプルデータを作成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカルまたはリモート)に関係なくビット単位で正確な結果につながるので、参照ピクチャメモリ(634)内の内容も、ローカルエンコーダとリモートエンコーダとの間でビット単位で正確である。言い換えれば、エンコーダの予測部分は、デコーディング中に予測を用いるときにデコーダが「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(および、例えばチャネル誤りのために同期性が維持され得ない場合に生じるドリフト)は、いくつかの関連技術においても用いられる。
「ローカル」デコーダ(633)の動作は、図5とともに上記で詳細に既に記載されている、ビデオデコーダ(510)といった「リモート」デコーダの動作と同じであり得る。しかしながら、図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコードされたビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆的であり得るため、パーサ(520)を含む、ビデオデコーダ(510)のエントロピーデコーディング部分は、ローカルデコーダ(633)に十分実装されない場合がある。
この点でなされ得る観察は、デコーダに存在する解析/エントロピーデコーディング以外のデコーダ技術が、実質的に同一の機能形式で、対応するエンコーダにも必ず存在する必要があることである。このため、開示される主題は、デコーダの動作に焦点を当てる。エンコーダ技術の説明は、包括的に記載されるデコーダ技術の逆であるため、省略され得る。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
いくつかの例では、動作中、ソースコーダ(630)は、「参照画像」として指定されたビデオシーケンスからの1つまたは複数の以前にコードされたピクチャを参照して入力ピクチャを予測的にコードする動き補償予測コーディングを行い得る。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャへの予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差をコードする。
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコードされたビデオデータをデコードし得る。コーディングエンジン(632)の動作は、有利には、非可逆プロセスであってもよい。コードされたビデオデータがビデオデコーダ(図6には示されていない)でデコードされ得るとき、再構成されたビデオシーケンスは、通常、多少の誤りを伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって行われ得るデコーディングプロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させてもよい。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって得られる(送信エラーがない)再構成された参照ピクチャとして共通の内容を有する再構成された参照ピクチャのコピーをローカルに記憶し得る。
予測器(635)は、コーディングエンジン(632)の予測検索を行い得る。すなわち、コードされる新しいピクチャの場合、予測器(635)は、新しいピクチャのための適切な予測参照として役立つことができる、(候補参照ピクセルブロックとしての)サンプルデータまたは参照ピクチャ動きベクトル、ブロック形状といった特定のメタデータを求めて、参照ピクチャメモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、サンプルブロックおよびピクセルブロックごとに動作しうる。いくつかの場合において、予測器(635)によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有し得る。
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理し得る。
前述のすべての機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを受けうる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどのような技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットにより生成されたシンボルをコードされたビデオシーケンスに変換する。
コントローラ(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は3つのコーディングツリーブロック(CTB)を含み、それらは1つのルマCTBおよび2つのクロマCTBである。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割され得る。例えば、64×64ピクセルのCTUは、1つの64×64ピクセルのCU、または4つの32×32ピクセルのCU、または16個の16×16ピクセルのCUに分割され得る。一例では、インター予測タイプまたはイントラ予測タイプといったCUの予測タイプを決定するために、各CUが分析される。CUは、時間的および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。一般に、各PUは、1つのルマ予測ブロック(PB)および2つのクロマPBを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロック単位で行われる。予測ブロックの例としてルマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルといったピクセルの値(例えば、ルマ値)の行列を含む。
図7は、いくつかの実施形態によるG-PPCエンコーダ(700)のブロック図を示す。エンコーダ(700)は、点群データを受信し、点群データを圧縮して、圧縮された点群データを搬送するビットストリームを生成するように構成され得る。一実施形態では、エンコーダ(700)は、位置量子化モジュール(710)、重複点除去モジュール(712)、八分木エンコーディングモジュール(730)、属性転送モジュール(720)、詳細レベル(LOD)生成モジュール(740)、属性予測モジュール(750)、残差量子化モジュール(760)、算術コーディングモジュール(770)、逆残差量子化モジュール(780)、加算モジュール(781)、および再構成された属性値を記憶するためのメモリ(790)を含むことができる。
図示されるように、入力点群(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ベースの順序に従って点を処理する。属性予測モジュール(750)は、メモリ(790)に記憶された現在点の隣接点のセットの再構成された属性に基づいて、現在点の属性予測を生成する。続いて、属性転送モジュール(720)から受信された元の属性値およびローカルに生成された属性予測に基づいて、予測残差が取得され得る。候補インデックスがそれぞれの属性予測プロセスで使用されるとき、選択された予測候補に対応するインデックスが算術コーディングモジュール(770)に提供され得る。
残差量子化モジュール(760)は、属性予測モジュール(750)から予測残差を受信し、量子化を行って量子化された残差を生成するように構成される。量子化された残差は算術コーディングモジュール(770)に提供される。
逆残差量子化モジュール(780)は、残差量子化モジュール(760)から量子化された残差を受信し、残差量子化モジュール(760)で行わされた量子化演算の逆を行うことによって再構成された予測残差を生成するように構成される。加算モジュール(781)は、逆残差量子化モジュール(780)からの再構成された予測残差、および属性予測モジュール(750)からのそれぞれの属性予測を受信するように構成される。再構成された予測残差と属性予測とを組み合わせることによって、再構成された属性値が生成され、メモリ(790)に記憶される。
算術コーディングモジュール(770)は、占有コード、(もし用いられるならば)候補インデックス、(もし生成されるならば)量子化された残差、および他の情報を受信し、受信された値または情報をさらに圧縮するためにエントロピーエンコーディングを行うように構成される。これにより、圧縮された情報を搬送する圧縮されたビットストリーム(702)が生成され得る。ビットストリーム(702)は、圧縮されたビットストリームをデコードするデコーダに送信されるか、または提供されてもよく、または記憶デバイスに記憶されてもよい。
図8は、一実施形態によるG-PCCデコーダ(800)のブロック図を示す。デコーダ(800)は、圧縮されたビットストリームを受信し、点群データ解凍を行ってビットストリームを解凍し、デコードされた点群データを生成するように構成され得る。一実施形態では、デコーダ(800)は、算術デコーディングモジュール(810)、逆残差量子化モジュール(820)、八分木デコーディングモジュール(830)、LOD生成モジュール(840)、属性予測モジュール(850)、および再構成された属性値を記憶するためのメモリ(860)を含むことができる。
図示されるように、圧縮されたビットストリーム(801)は、算術デコーディングモジュール(810)で受信され得る。算術デコーディングモジュール(810)は、圧縮されたビットストリーム(801)をデコードして、量子化された残差(生成された場合)および点群の占有コードを取得するように構成される。八分木デコーディングモジュール(830)は、占有コードに従って点群の点の再構成された位置を決定するように構成される。LOD生成モジュール(840)は、再構成された位置に基づいて点を異なるLODに再編成し、LODベースの順序を決定するように構成される。逆残差量子化モジュール(820)は、算術デコーディングモジュール(810)から受信された量子化された残差に基づいて再構成された残差を生成するように構成される。
属性予測モジュール(850)は、LODベースの順序に従って点の属性予測を決定するための属性予測プロセスを行うように構成される。例えば、現在点の属性予測は、メモリ(860)に記憶された現在点の隣接点の再構成された属性値に基づいて決定され得る。いくつかの例では、属性予測はそれぞれの再構成された残差と組み合わされて、現在点の再構成された属性を生成することができる。
属性予測モジュール(850)から生成された再構成された属性のシーケンスは、八分木デコーディングモジュール(830)から生成された再構成された位置とともに、一例では、デコーダ(800)から出力されるデコードされた点群(802)に対応する。加えて、再構成された属性もメモリ(860)に記憶され、その後の点の属性予測を導出するためにその後使用され得る。
様々な実施形態において、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、ハードウェア、ソフトウェア、またはそれらの組合せで実装され得る。例えば、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などの、ソフトウェアを用いても、用いなくても動作する1つまたは複数の集積回路(IC)などの処理回路を用いて実装され得る。他の例では、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、不揮発性(または非一時的)コンピュータ可読記憶媒体に記憶された命令を含むソフトウェアまたはファームウェアとして実装され得る。命令は、1つまたは複数のプロセッサといった処理回路によって実行されると、処理回路に、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)の機能を行わせる。
本明細書で開示される属性予測技術を実装するように構成された属性予測モジュール(750)および(850)は、図7および図8に示されたものと同様または異なる構造を有し得る他のデコーダまたはエンコーダに含まれ得ることに留意されたい。加えて、エンコーダ(700)およびデコーダ(800)は、同じデバイス、または様々な例では別個のデバイスに含まれ得る。
本開示のいくつかの態様によれば、上記のPCC(例えば、G-PCC、V-PCC)エンコーダおよびデコーダは、メッシュ圧縮のためのフレームワークで使用され得る。本開示のいくつかの態様は、静的メッシュ圧縮、動的メッシュ圧縮、一定の連結性情報を有する動的メッシュの圧縮、時変連結性情報を有する動的メッシュの圧縮、時変属性マップを有する動的メッシュの圧縮などのメッシュ圧縮のためのPCCエンコーダおよびデコーダを使用するフレームワークを提供する。
図9は、本開示のいくつかの実施形態によるメッシュ圧縮のためのフレームワーク(900)の図を示す。フレームワーク(900)は、メッシュエンコーダ(910)およびメッシュデコーダ(950)を含む。メッシュエンコーダ(910)は、入力メッシュ(905)(動的メッシュの場合にはメッシュフレーム)をビットストリーム(945)にエンコードし、メッシュデコーダ(950)は、ビットストリーム(945)をデコードして再構成されたメッシュ(995)(動的メッシュの場合にはメッシュフレーム)を生成する。
メッシュエンコーダ(910)は、コンピュータ、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲームデバイス、ARデバイス、VRデバイスといった任意の適切なデバイスとすることができる。メッシュデコーダ(950)は、コンピュータ、クライアントコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲームデバイス、ARデバイス、VRデバイスといった任意の適切なデバイスとすることができる。ビットストリーム(945)は、任意の適切な通信ネットワーク(図示せず)を介してメッシュエンコーダ(910)からメッシュデコーダ(950)に送信され得る。
図9の例では、メッシュエンコーダ(910)は、互いに結合された変換器(920)およびPCCエンコーダ(940)を含む。
変換器(920)は、入力メッシュ(905)を点群に変換するように構成される。一例では、変換器(920)はサンプリングモジュール(925)を含む。サンプリングモジュール(925)は、点群(935)を生成するために入力メッシュ(905)のポリゴンから点をサンプリングすることができる。
他の例では、変換器(920)は、ボクセル化モジュール(928)を含む。ボクセル化モジュール(928)は、入力メッシュ(905)をボクセル化されたメッシュに変換することができる。一例では、ボクセル化モジュール(928)は、入力メッシュ(905)を、3Dグリッド上に等しいサイズのブロックの集合を含むボクセル化されたメッシュに変換することができる。ボクセル化されたメッシュは、体積および連結性に関する情報を保持することができる。いくつかの例では、ボクセル化されたメッシュ内の頂点は単一の接続表現を有することができ、ボクセル化されたメッシュ内の頂点の連結性情報は、頂点のジオメトリ情報に基づいて推測され得ることに留意されたい。いくつかの例では、ボクセル化されたメッシュの頂点は、点群(938)としてPCCエンコーダ940に提供される。
他の例では、変換器(920)はハイブリッド方式で構成される。例えば、入力メッシュ(905)は、第1の部分および第2の部分を含む(または分割される)。第1の部分は、サンプリングモジュール(925)によって点群(935)(第1の点群(935)と称される)に変換され、第2の部分は、ボクセル化モジュール(928)によって点群(938)(第2の点群(938)と称される)に変換される。第1の点群(935)および第2の点群(938)は、適切に組み合わされてPCCエンコーダ(940)に提供される。
本開示の一態様によれば、第1の点群(935)および/または第2の点群(938)といった生成された点群における各点の属性は、入力メッシュ(905)から導出され得る。例えば、第1の点群(935)および/または第2の点群(938)といった生成された点群における各点の色は、テクスチャ座標(u,v)が与えられたテクスチャマップ上の補間によって入力メッシュ(905)に関連付けられたテクスチャマップから導出され得る。法線、色、反射率などの、(第1の点群(935)および/または第2の点群(938)における)生成された点に関連付けられた属性は、エンコーディングのために(第1の点群(935)および/または第2の点群(938)における)点とともにPCCエンコーダ(940)に提供され得る。
次いで、PCCエンコーダ(940)は、エンコードされた入力メッシュを搬送するビットストリーム(945)を生成するために、第1の点群(935)および/または第2の点群(938)といった生成された点群をエンコードする。PCCエンコーダ(940)は、V-PCCエンコーダ、G-PCCエンコーダといった任意の適切なPCCエンコーダとすることができる。
図9の例では、ビットストリーム(945)は、メッシュデコーダ(950)に提供される。メッシュデコーダ(950)は、PCCデコーダ(960)と、連結性生成モジュール(970)と、メッシュ再構成モジュール(980)とを含む。一例では、PCCデコーダ(960)は、PCCエンコーダ(940)に対応し、PCCエンコーダ(940)によってエンコードされたビットストリーム(945)をデコードすることができる。PCCデコーダ(960)は、メッシュの頂点である点を有する点群(965)を生成することができる。
連結性生成モジュール(970)は、点群(965)内のデコードされた点(メッシュのコンテキスト内の頂点)から連結性(トポロジ-)を推定することができる。頂点の連結性情報(975)を推定するために、連結性生成モジュール(970)によって任意の適切なアルゴリズムが使用され得ることに留意されたい。
図9の例では、デコードされた点(965)および連結性情報(975)がメッシュ再構成モジュール(980)に提供される。メッシュ再構成モジュール(980)は、頂点に対応するデコードされた点(965)および連結性情報(975)に基づいて再構成されたメッシュ(995)を生成する。
サンプリングモジュール(925)、ボクセル化モジュール(928)、PCCエンコーダ(940)といったメッシュエンコーダ(910)内の構成要素は、それぞれ様々な技術によって実装され得ることに留意されたい。一例では、構成要素は集積回路によって実装される。他の例では、構成要素は、1つまたは複数のプロセッサによって実行され得るソフトウェアを使用して実装される。
PCCデコーダ(960)、連結性生成モジュール(970)、メッシュ再構成モジュール(980)といったメッシュデコーダ(950)内の構成要素は、それぞれ様々な技術によって実装され得ることに留意されたい。一例では、構成要素は集積回路によって実装される。他の例では、構成要素は、1つまたは複数のプロセッサによって実行され得るソフトウェアを使用して実装される。
図10は、本開示のいくつかの実施形態によるメッシュ圧縮のためのフレームワーク(1000)の図を示す。フレームワーク(1000)は、メッシュエンコーダ(1010)およびメッシュデコーダ(1050)を含む。メッシュエンコーダ(1010)は、入力メッシュ(1005)(動的メッシュの場合にはメッシュフレーム)をビットストリーム(1045)にエンコードし、メッシュデコーダ(1050)は、ビットストリーム(1045)をデコードして再構成されたメッシュ(1095)(動的メッシュの場合にはメッシュフレーム)を生成する。
メッシュエンコーダ(1010)は、コンピュータ、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲームデバイス、ARデバイス、VRデバイスといった任意の適切なデバイスとすることができる。メッシュデコーダ(1050)は、コンピュータ、クライアントコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲームデバイス、ARデバイス、VRデバイスといった任意の適切なデバイスとすることができる。ビットストリーム(945)は、通信ネットワーク(図示せず)を介してメッシュエンコーダ(1010)からメッシュデコーダ(1050)に送信され得る。
図10の例では、メッシュエンコーダ(1010)は、変換器(1020)と、PCCエンコーダ(1040)、ビデオエンコーダ(1041)、属性エンコーダ(1042)といった複数のエンコーダとを含む。
変換器(1020)は、入力メッシュ(1005)を、複数のエンコーダによるエンコーディングのための複数のセクションを有する適切なインターメディアデータに変換するように構成される。一例では、変換器(1020)は、ボクセル化モジュール(1028)を含む。ボクセル化モジュール(1028)は、入力メッシュ(1005)をボクセル化されたメッシュに変換することができる。一例では、ボクセル化モジュール(1028)は、入力メッシュ(1005)を、3Dグリッド上に等しいサイズのブロックの集合を含むボクセル化されたメッシュに変換することができる。ボクセル化されたメッシュは、体積および連結性に関する情報を保持することができる。
一例では、ボクセル化されたメッシュの情報は、頂点(1021)、テクスチャマップ(1022)および他の属性(1023)に変換され得る。頂点(1021)は、頂点の位置を記述する(x,y,z)座標といった頂点のジオメトリ情報を含むことができる。頂点(1021)はまた、法線、色反射率といった頂点属性を含むことができる。テクスチャマップ(1022)(いくつかの例では属性マップとも称される)は、メッシュ表面に関連付けられた属性である。いくつかの例では、メッシュフレームのシーケンスのテクスチャマップ(1022)は、ビデオシーケンスを成すことができる。他の属性(1023)は、PCCエンコーダによってコードされることができない可能性がある属性を含むことができる。いくつかの例では、他の属性(1023)は、テクスチャ座標(u,v)といったマッピング情報を含む。
本開示の一態様によれば、頂点(1021)は、点群として見ることができ、PCCエンコーダ(1040)によってコードされ得る。PCCエンコーダ(1040)は、V-PCCエンコーダ、G-PCCといった任意の適切なPCCエンコーダとすることができる。法線、色、反射率といった頂点属性(頂点に関連付けられた属性)は、PCCエンコーダ(1040)によってエンコードされ得ることに留意されたい。
テクスチャマップ(1022)は、ビデオシーケンスとして見ることができ、ビデオエンコーダ(1041)によってエンコードされ得る。いくつかの例では、テクスチャマップ(1022)は、入力メッシュ(1005)内の元のテクスチャマップとは異なり得る。テクスチャマップ(1022)は、任意の適切なアルゴリズムによって生成され得る。
PCCエンコーダ(1040)およびビデオエンコーダ(1041)によってコードされることができない可能性がある他の属性(1023)は、属性エンコーダ(1042)によってエンコードされ得る。属性エンコーダ(1042)は、他の属性(1023)をエンコードするのに適した任意の他の属性エンコーディング技術を用いて実装され得る。例えば、他の属性(1023)はテクスチャ座標(u,v)を含み、属性エンコーダ(1042)はテクスチャ座標(u,v)をエンコードするように構成される。
図10の例では、PCCエンコーダ1040、ビデオエンコーダ(1041)および属性エンコーダ(1042)からのエンコードされた出力は、入力メッシュ(1005)に対するエンコードされたメッシュを搬送するビットストリーム(1045)に混合(例えば、多重化)される。
図10の例では、メッシュデコーダ(1050)は、ビットストリーム(1045)を、PCCデコーダ(1060)、ビデオデコーダ(1061)、および属性デコーダ(1062)といった複数のデコーダによってそれぞれデコードされるセクションに逆多重化することができる。
一例では、PCCデコーダ(1060)は、PCCエンコーダ(1040)に対応し、PCCエンコーダ(1040)によってエンコードされたビットストリーム(1045)のセクションをデコードすることができる。PCCデコーダ(1060)は、メッシュの頂点である点を有する点群(1065)を生成することができる。
連結性生成モジュール(1070)は、点群(1065)内のデコードされた点(メッシュのコンテキスト内の頂点)から連結性情報(1075)(トポロジーとも称される)を推定することができる。頂点の連結性情報を推定するために、連結性生成モジュール(1070)によって任意の適切なアルゴリズムが使用され得ることに留意されたい。
図10の例では、点群(1065)および連結性情報(1075)がメッシュ再構成モジュール(1080)に提供される。
一例では、ビデオデコーダ(1061)は、ビデオエンコーダ(1041)に対応し、ビデオエンコーダ(1041)によってエンコードされたビットストリーム(1045)のセクションをデコードすることができる。ビデオデコーダ(1061)は、デコードされたテクスチャマップ(1066)を生成することができる。デコードされたテクスチャマップ(1066)は、メッシュ再構成モジュール(1080)に提供される。
一例では、属性デコーダ(1062)は、属性エンコーダ(1042)に対応し、属性エンコーダ(1042)によってエンコードされたビットストリーム(1045)のセクションをデコードすることができる。属性デコーダ(1062)は、デコードされた属性(1067)を生成することができる。デコードされた属性(1067)は、メッシュ再構成モジュール(1080)に提供される。
メッシュ再構成モジュール(1080)は、点群(1065)、連結性情報(1075)、デコードされたテクスチャマップ(1066)およびデコードされた属性(1067)を受信し、それに応じて再構成されたメッシュ(1095)を生成する。例えば、PCCデコーダ(1060)からの点群(1065)は、再構成されたメッシュ(1095)の再構成のために頂点および頂点属性のジオメトリ情報を提供することができ、連結性生成モジュール(1070)によって決定された連結性情報(1075)は、再構成されたメッシュ(1095)の再構成のための連結性情報を提供することができ、デコードされたテクスチャマップ(1066)は、再構成されたメッシュ(1095)の再構成のためのテクスチャマップを提供することができ、デコードされた属性(1067)は、再構成されたメッシュ(1095)の再構成のための他の属性を提供することができる。
変換器(1020)、ボクセル化モジュール(1028)、PCCエンコーダ(1040)、ビデオエンコーダ(1041)、および属性エンコーダ(1042)といった、メッシュエンコーダ(1010)内の構成要素は、それぞれ様々な技術によって実装され得ることに留意されたい。一例では、構成要素は集積回路によって実装される。他の例では、構成要素は、1つまたは複数のプロセッサによって実行され得るソフトウェアを使用して実装される。
PCCデコーダ(1060)、連結性生成モジュール(1070)、メッシュ再構成モジュール(1080)、ビデオデコーダ(1061)、属性デコーダ(1062)といった、メッシュデコーダ(1050)内の構成要素は、それぞれ様々な技術によって実装され得ることに留意されたい。一例では、構成要素は集積回路によって実装される。他の例では、構成要素は、1つまたは複数のプロセッサによって実行され得るソフトウェアを使用して実装される。
図11は、本開示のいくつかの実施形態によるメッシュ圧縮のためのフレームワーク(1100)の図を示す。フレームワーク(1100)は、メッシュエンコーダ(1110)およびメッシュデコーダ(1150)を含む。メッシュエンコーダ(1110)は、入力メッシュ(1105)(動的メッシュの場合にはメッシュフレーム)をビットストリーム(1145)にエンコードし、メッシュデコーダ(1150)は、ビットストリーム(1145)をデコードして再構成されたメッシュ(1195)(動的メッシュの場合にはメッシュフレーム)を生成する。
メッシュエンコーダ(1110)は、コンピュータ、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲームデバイス、ARデバイス、VRデバイスといった任意の適切なデバイスとすることができる。メッシュデコーダ(1150)は、コンピュータ、クライアントコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲームデバイス、ARデバイス、VRデバイスといった任意の適切なデバイスとすることができる。ビットストリーム(945)は、通信ネットワーク(図示せず)を介してメッシュエンコーダ(1110)からメッシュデコーダ(1150)に送信され得る。
図11の例では、メッシュエンコーダ(1110)は、変換器(1120)と、PCCエンコーダ(1140)、ビデオエンコーダ(1141)、属性エンコーダ(1142)、連結性エンコーダ(1144)といった複数のエンコーダとを含む。さらに、メッシュエンコーダは、PCCデコーダ(1130)および連結性生成モジュール(1131)を含む。
変換器(1120)は、入力メッシュ(1105)を、複数のエンコーダによるエンコーディングのための複数のセクションを有する適切なインターメディアデータに変換するように構成される。一例では、変換器(1120)は、ボクセル化モジュール(1128)を含む。ボクセル化モジュール(1128)は、入力メッシュ(1105)をボクセル化されたメッシュに変換することができる。一例では、ボクセル化モジュール(1128)は、入力メッシュ(1105)を、3Dグリッド上に等しいサイズのブロックの集合を含むボクセル化されたメッシュに変換することができる。ボクセル化されたメッシュは、体積および連結性に関する情報を保持することができる。
一例では、ボクセル化されたメッシュの情報は、頂点(1121)、連結性情報(1124)、テクスチャマップ(1122)、他の属性(1123)に変換され得る。頂点(1121)は、頂点の位置を記述する(x,y,z)座標といった頂点のジオメトリ情報を含むことができる。頂点(1121)はまた、法線、色反射率といった頂点属性を含むことができる。連結性情報(1124)(いくつかの例ではトポロジーとも称される)は、ボクセル化されたメッシュの連結性情報を含む。テクスチャマップ(1122)(いくつかの例では属性マップとも称される)は、メッシュ表面に関連付けられた属性であり、テクスチャマップ(1122)はビデオシーケンスとすることができる。他の属性(1123)は、PCCエンコーダ(1140)およびビデオエンコーダ(1141)によってコードされることができない可能性がある属性を含むことができる。いくつかの例では、他の属性(1123)は、テクスチャ座標(u,v)といったマッピング情報を含む。
本開示の一態様によれば、頂点(1121)は、点群として見ることができ、PCCエンコーダ(1140)によってコードされ得る。PCCエンコーダ(1140)は、V-PCCエンコーダ、G-PCCといった任意の適切なPCCエンコーダとすることができる。法線、色、反射率といった頂点属性(頂点に関連付けられた属性)は、PCCエンコーダ(1140)によってエンコードされ得ることに留意されたい。
本開示の一態様によれば、連結性エンコーダ(1144)は、連結性情報(1124)(元の連結性情報とも称される)と推定された連結性情報(1134)との間の連結性差をエンコードするように構成される。図11の例では、メッシュエンコーダ(1100)は、PCCデコーダ(1130)と、推定された連結性情報(1134)を生成する連結性生成モジュール(1131)とを含む。一例では、PCCデコーダ(1130)はPCCエンコーダ(1140)に対応する。PCCデコーダ(1130)は、PCCエンコーダ(1140)によってエンコードされたものをデコードすることができる。PCCデコーダ(1130)は、エンコードされた点群のコピー(1132)を受信し、メッシュの頂点である点を有する点群(1133)を生成することができる。
連結性生成モジュール(1131)は、点群(1133)内のデコードされた点(メッシュのコンテキスト内の頂点)から推定された連結性情報(1134)を生成することができる。連結性生成モジュール(1131)は、任意の適切なアルゴリズムによって推定された連結性情報(1134)を推定および生成することができる。連結性エンコーダ(1144)は、元の連結性情報(1124)および推定された連結性情報(1134)を受信し、推定された連結性情報(1134)と元の連結性情報(1124)との間の差をビットストリーム(1145)内にエンコードする。
テクスチャマップ(1122)は、ビデオシーケンスとして見ることができ、ビデオエンコーダ(1141)によってエンコードされ得る。いくつかの例では、テクスチャマップ(1122)は、入力メッシュ(1105)内の元のテクスチャマップとは異なり得る。テクスチャマップ(1122)は、任意の適切なアルゴリズムによって生成され得る。
PCCエンコーダ(1140)およびビデオエンコーダ(1141)によってコードされることができない可能性がある他の属性(1123)は、属性エンコーダ(1142)によってエンコードされ得る。属性エンコーダ(1142)は、他の属性(1123)をエンコードするのに適した任意の他の属性エンコーディング技術を用いて実装され得る。例えば、他の属性(1123)はテクスチャ座標(u,v)を含み、属性エンコーダ(1142)はテクスチャ座標(u,v)をエンコードするように構成される。
図11の例では、PCCエンコーダ(1140)、連結性エンコーダ(1144)、ビデオエンコーダ(1141)および属性エンコーダ(1142)からのエンコードされた出力は、入力メッシュ(1105)に対応するエンコードされたメッシュを搬送するビットストリーム(1145)に混合(例えば、多重化)される。
図11の例では、メッシュデコーダ(1150)は、ビットストリーム(1145)を、PCCデコーダ(1160)、連結性デコーダ(1164)、ビデオデコーダ(1161)、および属性デコーダ(1162)といった複数のデコーダによってそれぞれデコードされるセクションへと逆多重化することができる。
一例では、PCCデコーダ(1160)は、PCCエンコーダ(1140)に対応し、PCCエンコーダ(1140)によってエンコードされたビットストリーム(1145)のセクションをデコードすることができる。PCCデコーダ(1160)は、メッシュの頂点である点を有する点群(1165)を生成することができる。
連結性生成モジュール(1170)は、点群(1165)内のデコードされた点(メッシュのコンテキスト内の頂点)から連結性(トポロジ-)を推定し、推定された連結性情報(1175)を出力することができる。頂点の推定された連結性情報(1175)を決定するために、連結性生成モジュール(1170)によって任意の適切なアルゴリズムが使用され得ることに留意されたい。
図11の例では、デコードされた点群(1165)および推定された連結性情報(1175)がメッシュ再構成モジュール(1180)に提供される。推定された連結性情報(1175)はまた、連結性デコーダ(1164)に提供される。
連結性デコーダ(1164)は、連結性エンコーダ(1144)に対応し、連結性差である連結性エンコーダ(1144)によりエンコードされたビットストリーム(1145)のセクションをデコードすることができる。連結性デコーダ(1164)は、連結性差を推定された連結性情報(1175)と結合し、結合された連結性情報(1168)を出力することができる。結合された連結性情報は、メッシュ再構成モジュール(1180)に提供され得る。
本開示の一態様によれば、PCCデコーダ(1130)およびPCCデコーダ(1160)は、同じデコーディングアルゴリズムを使用することができる。さらに、連結性生成モジュール(1131)および連結性生成モジュール(1170)は、同じ連結性推定アルゴリズムを使用することができる。
一例では、ビデオデコーダ(1161)は、ビデオエンコーダ(1141)に対応し、ビデオエンコーダ(1141)によってエンコードされたビットストリーム(1145)のセクションをデコードすることができる。ビデオデコーダ(1161)は、デコードされたテクスチャマップ(1166)を生成することができる。デコードされたテクスチャマップ(1166)は、メッシュ再構成モジュール(1180)に提供される。
一例では、属性デコーダ(1162)は、属性エンコーダ(1142)に対応し、属性エンコーダ(1142)によってエンコードされたビットストリーム(1145)のセクションをデコードすることができる。属性デコーダ(1162)は、デコードされた属性(1167)を生成することができる。デコードされた属性(1167)は、メッシュ再構成モジュール(1180)に提供される。
メッシュ再構成モジュール(1180)は、デコードされた点群(1165)、結合された連結性情報(1168)、デコードされたテクスチャマップ(1166)およびデコードされた属性(1167)を受信し、それに応じて再構成されたメッシュ(1195)を生成する。例えば、PCCデコーダ(1160)からのデコードされた点は、再構成されたメッシュ(1195)の再構成のために頂点および頂点属性のジオメトリ情報を提供することができ、連結性デコーダ(1164)によって決定された結合された連結性情報(1168)は、再構成されたメッシュ(1195)の再構成のための連結性情報を提供することができ、デコードされたテクスチャマップ(1166)は、再構成されたメッシュ(1195)の再構成のためのテクスチャマップを提供することができ、デコードされた属性(1167)は、再構成されたメッシュ(1195)の再構成のための他の属性を提供することができる。
変換器(1120)、ボクセル化モジュール(1128)、PCCエンコーダ(1140)、ビデオエンコーダ(1141)、属性エンコーダ(1142)、PCCデコーダ(1130)、連結性生成モジュール(1131)、連結性エンコーダ(1144)といったメッシュエンコーダ(1110)内の構成要素は、それぞれ様々な技術によって実装され得ることに留意されたい。一例では、構成要素は集積回路によって実装される。他の例では、構成要素は、1つまたは複数のプロセッサによって実行され得るソフトウェアを使用して実装される。
PCCデコーダ(1160)、連結性生成モジュール(1170)、メッシュ再構成モジュール(1180)、ビデオデコーダ(1161)、属性デコーダ(1162)、連結性デコーダ(1164)といったメッシュデコーダ(1150)内の構成要素は、それぞれ様々な技術によって実装され得ることに留意されたい。一例では、構成要素は集積回路によって実装される。他の例では、構成要素は、1つまたは複数のプロセッサによって実行され得るソフトウェアを使用して実装される。
本開示のいくつかの態様によれば、動的メッシュは、時変連結性情報を有することができ、フレーム間予測(フレーム間連結性予測)は、時変連結性情報をコードするために使用され得る。
いくつかの例では、動的メッシュはメッシュフレームのシーケンスを含む。メッシュフレームのシーケンスでは、連結性情報はフレーム間連結性予測によってコードされることができ、現在のフレームと参照フレームとの間のトポロジーの差(連結性情報)がビットストリームにコードされる。一例では、連続するメッシュフレーム間の連結性情報があまり変化しない場合、差をコードし、フレーム間連結性予測を用いることにより、連結性情報をコードするための高度な圧縮を達成することができる。
いくつかの実施形態では、メッシュフレームのシーケンスにおける最初のメッシュフレームの連結性情報は、例えば、フレームワーク(900)、フレームワーク(1000)、フレームワーク(1100)の技術を用いて、ビットストリームにコードされる。以下のメッシュフレームの各々について、現在のメッシュフレームと前のメッシュフレームとの間の連結性差がビットストリームにエンコードされる。
デコーダ側では、メッシュフレームのシーケンスにおける最初のメッシュフレームの連結性情報は、例えば、フレームワーク(900)、フレームワーク(1000)、フレームワーク(1100)の技術を用いて、ビットストリームからデコードされる。その場合、他のメッシュフレームの各々について、現在のメッシュフレームと前のメッシュフレームとの間の連結性差がビットストリームからデコードされる。連結性差は、現在のメッシュフレームの連結性情報を取得するために前のメッシュフレームの連結性情報と組み合わされる。
いくつかの実施形態では、フレーム間連結性予測が動的メッシュまたは動的メッシュの一部に適用されるかどうかを示すために、1つまたは複数のフラグが使用され得る。
いくつかの例では、フラグは高水準シンタックスでシグナリングされ得る。一例では、フレーム間連結性予測が動的メッシュ内のメッシュフレームのシーケンスに適用されることを示すために、メッシュフレームのシーケンスのシーケンスヘッダでフラグがシグナリングされ得る。他の例では、フレーム間連結性予測がメッシュフレーム内のスライスに適用されることを示すために、メッシュフレーム内のスライスのスライスヘッダでフラグがシグナリングされ得る。
いくつかの例では、2つのメッシュフレーム間で連結性情報が変更されないことを示すために、ビットストリーム内でフラグがシグナリングされ得る。
いくつかの実施形態では、メッシュフレームは、それぞれコードされ得る複数のコーディングユニットに分割され得る。現在のメッシュフレームの各コーディングユニットについて、コーディングユニットの連結性が2つのメッシュフレーム間(現在のメッシュフレームと参照メッシュフレームとの間)で変更されるか否かを示すために、最初にフラグがコードされ得る。参照メッシュフレーム内の参照コーディングユニットを示すために、インデックスまたは動きベクトルもコードされ得る。連結性情報が経時的に変化する場合、現在のコーディングユニットと参照コーディングユニットとの間の連結性情報の差がシグナリングされ得る。そうでなければ、現在のコーディングユニットの連結性情報は、参照メッシュフレーム内の参照コーディングユニット内のものから推測され得る。
図12は、本開示の一実施形態によるプロセス(1200)の概要を示すフローチャートを示す。プロセス(1200)は、メッシュのためのエンコーディングプロセス中に使用され得る。様々な実施形態では、プロセス(1200)は、処理回路によって実行される。いくつかの実施形態では、プロセス(1200)はソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1200)を行う。プロセスは(S1201)から始まり、(S1210)に進む。
(S1210)において、メッシュは、メッシュに基づいて生成された点を有する点群に変換される。
いくつかの例では、メッシュ内のポリゴンがサンプリングされ、点群内の点としてサンプリングされた点を生成する。いくつかの例では、メッシュはボクセル化され、ボクセル化されたメッシュを生成する。ボクセル化されたメッシュの頂点は、点群内の点を成すことができる。いくつかの例では、点群内のいくつかの点は、ポリゴンのサンプリングに基づいて生成され、点群内のいくつかの点は、ボクセル化されたメッシュの頂点である。
(S1220)において、点群は、PCCエンコーダを使用して、ビットストリームにエンコードされる。ビットストリームは、メッシュの情報を搬送する。
いくつかの実施形態では、メッシュは、別個のエンコーダによってエンコードされる複数のセクションに変換され、エンコーディングの結果はビットストリームに混合(例えば、多重化)される。
一例では、複数のセクションのうちの1つはテクスチャマップ(属性マップとも称される)を含む。テクスチャマップは、メッシュの表面に関連付けられた属性を含み、ビデオエンコーダによって2次元(2D)画像のシーケンスとしてエンコードされ得る。
他の例では、複数のセクションのうちの1つは、メッシュのマッピング情報に対応するテクスチャ座標といった他の属性を含む。他の属性は、他の属性をエンコードするのに適した属性エンコーダを使用して、エンコードされ得る。
いくつかの例では、複数のセクションのうちの1つは、メッシュの連結性情報を含む。一例では、推定された連結性情報が、デコードされた点群に基づいて生成され得る。そして、メッシュの連結性情報と推定された連結性情報との連結性差が決定される。連結性差はビットストリームにエンコードされる。
いくつかの実施形態では、フレーム間連結性予測は、動的メッシュの連結性情報をコードするために使用される。動的メッシュはメッシュフレームのシーケンスを含む。一例では、フレーム間連結性予測は、現在のメッシュフレームの前に再構成された参照メッシュフレームの参照連結性情報に基づいて、現在のメッシュフレームの現在の連結性情報をコードするために決定される。一例では、現在の連結性情報と参照メッシュフレームの参照連結性情報との間のフレーム間連結性差が決定され、ビットストリームにコードされる。
いくつかの実施形態では、フレーム間連結性予測が動的メッシュまたは動的メッシュの一部に適用されるかどうかを示すために、1つまたは複数のフラグがビットストリームにコードされ得る。
いくつかの例では、フラグは上位シンタックスでシグナリングされ得る。一例では、フレーム間連結性予測が動的メッシュ内のメッシュフレームのシーケンスに適用されることを示すために、メッシュフレームのシーケンスのシーケンスヘッダでフラグがシグナリングされ得る。他の例では、フレーム間連結性予測がメッシュフレーム内のスライスに適用されることを示すために、メッシュフレーム内のスライスのスライスヘッダでフラグがシグナリングされ得る。
いくつかの例では、現在のメッシュフレームの現在の連結性情報が参照メッシュフレームの参照連結性情報と差がない場合、現在のメッシュフレームと参照メッシュフレームとの間で連結性情報が変更されないことを示すフラグがビットストリームでシグナリングされ得る。
いくつかの実施形態では、メッシュフレームは、複数のコーディングユニットに分割され得る。現在のメッシュフレームの各コーディングユニットについて、コーディングユニットの連結性が現在のメッシュフレームと参照メッシュフレーム内の参照コーディングユニットとの間で変更されるかどうかを示すために、フラグがビットストリームにコードされ得る。いくつかの例では、参照メッシュフレーム内の参照コーディングユニットを示すために、インデックスまたは動きベクトルがコードされ得る。連結性情報が経時的に変化する場合、現在のコーディングユニットと参照コーディングユニットとの間の連結性情報の差がビットストリームでシグナリングされ得る。そうでなければ、現在のコーディングユニットの連結性は、参照メッシュフレーム内の参照コーディングユニットから推測され得る。
次いで、プロセスは(S1299)に進み、終了する。
プロセス(1200)は、適切に適合させることができる。プロセス(1200)の(1つまたは複数の)ステップは、修正および/または省略され得る。さらなるステップが追加され得る。任意の適切な実施順序が使用され得る。
図13は、本開示の一実施形態によるプロセス(1300)の概要を示すフローチャートを示す。プロセス(1300)は、メッシュのデコーディングプロセス中に使用され得る。様々な実施形態では、プロセス(1300)は、処理回路によって実行される。いくつかの実施形態では、プロセス(1300)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1300)を行う。プロセスは(S1301)から始まり、(S1310)に進む。
(S1310)において、PCCデコーダは、ビットストリームから、メッシュ内の頂点またはメッシュ内のポリゴンのサンプリング点に対応する点を含む点群をデコードする。いくつかの例では、点群内の点は、ボクセル化されたメッシュの頂点に対応する。いくつかの例では、点群内の点は、ボクセル化されたメッシュ内のポリゴンのサンプリング点に対応する。いくつかの例では、点群内のいくつかの点は、ボクセル化されたメッシュの頂点に対応し、点群内のいくつかの点は、ボクセル化されたメッシュ内のポリゴンのサンプリング点に対応する。
(S1320)において、点群に基づいて、メッシュ内の頂点の推定された連結性情報が決定(推定)される。点群に基づいて推定された連結性情報を決定するために、任意の適切なアルゴリズムが使用され得ることに留意されたい。
(S1330)において、点群および推定された連結性情報に基づいて、再構成されたメッシュフレームが生成される。
いくつかの例では、ビットストリームから、メッシュの表面に関連付けられた属性のテクスチャマップに対応する2方向(2D)画像をデコードするためにビデオデコーダが使用される。点群、推定された連結性情報、およびテクスチャマップの2D画像に基づいて、再構成されたメッシュフレームが生成され得る。
いくつかの例では、ビットストリームから、メッシュのマッピング情報に対応するテクスチャ座標をデコードするために属性デコーダが使用される。点群、推定された連結性情報、テクスチャマップの2D画像、およびマッピング情報のテクスチャ座標に基づいて、再構成されたメッシュフレームが生成され得る。
いくつかの例では、連結性差がビットストリームからデコードされる。推定された連結性情報は、連結性差と結合されて、結合された連結性情報を生成する。点群および結合された連結性情報に基づいて、再構成されたメッシュフレームが生成され得る。
一例では、連結性差がビットストリームからデコードされる。推定された連結性情報は、連結性差と結合されて、結合された連結性情報を生成する。ビットストリームから、メッシュの表面に関連付けられた属性のテクスチャマップに対応する2次元(2D)画像をデコードするためにビデオデコーダが使用される。ビットストリームから、メッシュのマッピング情報に対応するテクスチャ座標をデコードするために属性デコーダが使用される。点群、テクスチャマップの2D画像、マッピング情報のテクスチャ座標、および結合された連結性情報に基づいて、再構成されたメッシュフレームが生成される。
本開示のいくつかの実施形態によれば、再構成されたメッシュフレームは、メッシュフレームのシーケンスを含む動的メッシュ内のメッシュフレームである。フレーム間連結性予測は、再構成された参照メッシュフレームの参照連結性情報に基づいて現在のメッシュフレームの現在の連結性情報を予測するために使用される。現在のメッシュフレームは、参照メッシュフレームの参照連結性情報に基づいて予測された現在の連結性情報に基づいて再構成される。
いくつかの例では、フレーム間連結性差がビットストリームからデコードされる。現在の連結性情報は、フレーム間連結性差と参照メッシュフレームの参照連結性情報との組合せに基づいて決定される。
いくつかの例では、動的メッシュの範囲に関連付けられたシンタックス内のフラグがビットストリームからデコードされる。フラグは、動的メッシュの範囲内でフレーム間連結性予測を用いることを示す。参照メッシュフレームの参照連結性情報に基づいて動的メッシュの範囲内のメッシュ部分に関連付けられた現在の連結性情報を決定するために、フレーム間連結性予測が使用される。
いくつかの例では、現在のメッシュフレーム内の現在のコーディングユニットについて、参照メッシュフレーム内の参照コーディングユニットは、インデックスまたは動きベクトルのうちの少なくとも1つに基づいて決定される。参照メッシュフレーム内の参照コーディングユニットの参照連結性情報に基づいて、現在のメッシュフレーム内の現在のコーディングユニットの現在の連結性情報を決定するために、フレーム間連結性予測が使用される。次いで、それに応じて、現在のメッシュフレーム内の現在のコーディングユニットが再構成され得る。
次いで、プロセスは(S1399)に進み、終了する。
プロセス(1300)は、適切に適合させることができる。プロセス(1300)の(1つまたは複数の)ステップは、修正および/または省略され得る。さらなるステップが追加され得る。任意の適切な実施順序が使用され得る。
本開示で開示された技術は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、技術(例えば、方法、実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装されてもよい。いくつかの例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
上記で説明した技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶され得る。例えば、図14は、開示されている主題の特定の実施形態を実装するのに適したコンピュータシステム(1400)を示す。
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)およびグラフィック処理装置(GPU)などによって直接的に、または解釈およびマイクロコードの実行などを通して実行され得る命令を含むコードを生成するために、アセンブリ、コンパイル、リンク、または同様のメカニズムを受け得る任意の適切な機械語またはコンピュータ言語を使用してコードされ得る。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行され得る。
コンピュータシステム(1400)に関して図14に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。また、構成要素の構成は、コンピュータシステム(1400)の例示的な実施形態に示される構成要素のいずれか1つまたは組合せに関する依存性または要件を有するものとして解釈されるべきではない。
コンピュータシステム(1400)は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を介して、1人または複数の人間のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスはまた、音声(発話、音楽、周囲音など)、画像(スキャン画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係しない特定の媒体をキャプチャするために使用され得る。
入力ヒューマンインターフェースデバイスは、キーボード(1401)、マウス(1402)、トラックパッド(1403)、タッチスクリーン(1410)、データグローブ(図示せず)、ジョイスティック(1405)、マイク(1406)、スキャナ(1407)、カメラ(1408)のうちの1つまたは複数(各々1つのみが図示される)を含み得る。
コンピュータシステム(1400)はまた、特定のヒューマンインターフェース出力デバイスも含み得る。このようなヒューマンインターフェース出力デバイスは、例えば触覚出力、音、光、および匂い/味を通じて、1人または複数の人間のユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1410)、データグローブ(図示せず)、またはジョイスティック(1405)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、音声出力デバイス(スピーカ(1409)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1410)など、それぞれタッチスクリーン入力機能の有無にかかわらず、それぞれ触覚フィードバック機能の有無にかかわらず、そのいくつかはステレオグラフィック出力といった手段を通して、2次元視覚出力または3次元を超える出力を出力できるものもある、仮想現実グラス(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず))、およびプリンタ(図示せず)を含み得る。
コンピュータシステム(1400)はまた、人間がアクセス可能な記憶デバイス、ならびにCD/DVDまたは同様の媒体(1421)を有するCD/DVD ROM/RW(1420)を含む光学メディア、サムドライブ(1422)、リムーバブルハードドライブまたはソリッドステートドライブ(1423)、テープおよびフロッピーディスクといったレガシー磁気媒体(図示せず)、セキュリティドングルといった専用のROM/ASIC/PLDベースのデバイス(図示せず)といった関連媒体も含むことができる。
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、送信媒体、搬送波、または他の一時的な信号を包含しないことを理解するはずである。
コンピュータシステム(1400)はまた、1つまたは複数の通信ネットワーク(1455)へのインターフェース(1454)を含むことができる。ネットワークは、例えば、ワイヤレス、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネットといったローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルTV、衛星TV、地上波放送TVを含むTV有線または無線ワイドエリアデジタルネットワーク、およびCANBusを含む車両および産業用などを含む。特定のネットワークは一般に、特定の汎用データポートまたは周辺バス(1449)(例えば、コンピュータシステム(1400)のUSBポートなど)に接続された外部ネットワークインターフェースアダプタを必要とし、他のものは一般に、以下に説明するようにシステムバスへの接続によってコンピュータシステム(1400)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1400)は他のエンティティと通信することができる。このような通信は、単方向受信のみ(例えば、TV放送)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムとの双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上記で説明したように、それらのネットワークおよびネットワークインターフェースのそれぞれで使用され得る。
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(1400)のコア(1440)に接続され得る。
コア(1440)は、1つまたは複数の中央処理装置(CPU)(1441)、グラフィック処理装置(GPU)(1442)、フィールドプログラマブルゲートエリア(FPGA)(1443)の形態の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1444)、グラフィックアダプタ(1450)などを含むことができる。これらのデバイスは、読み取り専用メモリ(ROM)(1445)、ランダムアクセスメモリ(1446)、ユーザがアクセスできない内部ハードドライブ、SSDといった内部大容量ストレージ(1447)とともに、システムバス(1448)を通して接続され得る。いくつかのコンピュータシステムでは、システムバス(1448)は、1つまたは複数の物理プラグの形でアクセス可能であり、追加のCPU、GPUなどによる拡張を可能にする。周辺デバイスは、コアのシステムバス(1448)に直接に、または周辺バス(1449)を通じて接続され得る。一例では、スクリーン(1410)はグラフィックアダプタ(1450)に接続され得る。周辺バスのアーキテクチャは、PCI、USBなどを含む。
CPU(1441)、GPU(1442)、FPGA(1443)、およびアクセラレータ(1444)は、組み合わせて前述のコンピュータコードを構成できる特定の命令を実行することができる。そのコンピュータコードは、ROM(1445)またはRAM(1446)に記憶され得る。一時データもまたRAM(1446)に記憶され得るが、永続データは、例えば内部大容量ストレージ(1447)に記憶され得る。1つまたは複数のCPU(1441)、GPU(1442)、大容量ストレージ(1447)、ROM(1445)、RAM(1446)などと密接に関連付けられ得るキャッシュメモリの使用を通じて、任意のメモリデバイスへの高速記憶および取り出しが可能にされ得る。
コンピュータ可読媒体は、様々なコンピュータ実装された動作を行うためのコンピュータコードを有し得る。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術のスキルを有する人々に周知かつ利用可能な種類であり得る。
限定ではなく例として、アーキテクチャを有するコンピュータシステム(1400)、具体的にはコア(1440)は、1つまたは複数の有形のコンピュータ可読媒体で具現化されたソフトウェアを実行する(1つまたは複数の)プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果としての機能を提供することができる。このようなコンピュータ可読媒体は、上記で紹介されたようなユーザがアクセス可能な大容量ストレージ、およびコア内部の大容量ストレージ(1447)またはROM(1445)といった非一時的な性質のコア(1440)の特定のストレージと関連付けられた媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶され、コア(1440)によって実行されることが可能である。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1440)、および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1446)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を修正することを含む、本明細書に記載される特定のプロセス、または特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書に記載される特定のプロセス、または特定のプロセスの特定の部分を実行するためにソフトウェアの代わりにまたはそれと一緒に動作することができる回路(例えば、アクセラレータ(1444))に配線されるかまたは他の方法で具現化されたロジックの結果としての機能を提供することができる。ソフトウェアへの言及はロジックを包含することができ、必要に応じて、逆もまた同様である。必要に応じて、コンピュータ可読媒体への言及は、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具体化する回路、またはこれらの両方を包含し得る。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある修正例、置換例、および様々な代替均等例がある。したがって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具現化し、したがって、その趣旨および範囲内にある多数のシステムおよび方法を考案できることが諒解されよう。