以下で説明される提案された特徴は、個別に使用されてもよいし、任意の順序で組み合わされてもよい。さらに、実施形態は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実施されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
図1は、本開示の一実施形態による通信システム100の簡略化されたブロック図を示す。通信システム100は、ネットワーク105を介して相互接続された少なくとも2つの端末102、103を含み得る。データの単方向伝送のために、第1の端末103は、ネットワーク105を介して他方の端末102に伝送するためにローカル位置でビデオデータをコーディングし得る。第2の端末102は、ネットワーク105から他方の端末のコーディング済みビデオデータを受信し、コーディング済みデータをデコードし、復元されたビデオデータを表示し得る。単方向データ送信は、メディア提供用途などで一般的であり得る。
図1は、例えばビデオ会議中に発生する可能性があるコーディング済みビデオの双方向伝送をサポートするために提供される端末101および104の第2のペアを例示する。データの双方向伝送のために、各端末101および104は、ネットワーク105を介して他方の端末に送信するためにローカル位置で取り込まれたビデオデータをコーディングし得る。各端末101および104は、他方の端末によって伝送されたコーディング済みビデオデータも受信してもよく、コーディング済みデータをデコードしてもよく、復元されたビデオデータをローカルの表示デバイスに表示してもよい。
図1では、端末101、102、103および104は、サーバ、パーソナルコンピュータおよびスマートフォンとして例示され得るが、本開示の原理はそのように限定されるものではない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用のビデオ会議機器を伴う用途を見出す。ネットワーク105は、例えば有線および/または無線通信ネットワークを含む、端末101、102、103および104の間で、コーディング済みビデオデータを伝達する、任意の数のネットワークを表す。通信ネットワーク105は、回線交換および/またはパケット交換チャネルにおいてデータを交換し得る。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本考察の目的のために、ネットワーク105のアーキテクチャおよびトポロジは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではない場合がある。
図2は、開示される主題の用途の一例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を例示する。本開示の主題は、例えば、ビデオ会議、デジタルテレビ、CD、DVD、メモリスティック、などを含むデジタルメディアへの圧縮ビデオの記憶など、他のビデオ対応の用途に等しく適用可能とすることができる。
ストリーミングシステムは、例えば非圧縮ビデオサンプルストリーム213を作成する、例えばデジタルカメラなどのビデオソース201を含むことができるキャプチャサブシステム203を含み得る。そのサンプルストリーム213は、エンコード済みビデオビットストリームと比較したときに高いデータボリュームとして強調されてもよく、例えば上述のようにカメラであってもよいビデオソース201に結合されたエンコーダ202によって処理されることができる。エンコーダ202は、以下でより詳細に説明されるように、開示される主題の態様を可能にするか、または実施するために、ハードウェア、ソフトウェア、またはそれらの組合せを含むことができる。エンコード済みビデオビットストリーム204は、サンプルストリームと比較してより低いデータボリュームとして強調されてもよく、将来の使用のためにストリーミングサーバ205に記憶されることができる。1つまたは複数のストリーミングクライアント212および207は、ストリーミングサーバ205にアクセスして、エンコード済みビデオビットストリーム204のコピー208および206を取り出すことができる。クライアント212は、エンコード済みビデオビットストリームの着信コピー208をデコードし、ディスプレイ209または他のレンダリングデバイス(図示せず)上にレンダリングされることができる送出ビデオサンプルストリーム210を作成するビデオデコーダ211を含むことができる。一部のストリーミングシステムでは、ビデオビットストリーム204、206および208は、特定のビデオコーディング/圧縮規格に従ってエンコードされることができる。これらの規格の例は、上記で言及されており、本明細書でさらに説明される。
図3は、本発明の一実施形態によるビデオデコーダ300の機能ブロック図であり得る。
受信器302は、デコーダ300によってデコードされる1つまたは複数のコーデックビデオシーケンスを受信してもよく、同じまたは別の実施形態では、一度に1つのコーディング済みビデオシーケンスであり、各コーディング済みビデオシーケンスのデコーディングは、他のコーディング済みビデオシーケンスから独立している。コーディング済みビデオシーケンスは、チャネル301から受信されてもよく、チャネルは、エンコード済みビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。受信器302は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えばコーディング済みオーディオデータおよび/または補助データストリームとともに、エンコード済みビデオデータを受信し得る。受信器302は、コーディング済みビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、バッファメモリ303が、受信器302とエントロピーデコーダ/パーサ304(以降、「パーサ」)との間に結合されてもよい。受信器302が十分な帯域幅と制御性を持つ記憶/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信している場合、バッファ303は必要なくてもよく、または小さい場合もある。インターネットなどのベストエフォートパケットネットワークで使用する場合、バッファ303が必要とされる場合があり、比較的大きくすることができ、有利には適応サイズとすることができる。
ビデオデコーダ300は、エントロピーコーディング済みビデオシーケンスからシンボル313を再構築するためのパーサ304を含み得る。それらのシンボルのカテゴリは、デコーダ300の動作を管理するために使用される情報、および潜在的に、デコーダの不可欠な部分ではないが、それに結合されることができるディスプレイ312などのレンダリングデバイスを制御するための情報を含む。レンダリングデバイスの制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形であってもよい。パーサ304は、受信されたコーディング済みビデオシーケンスをパース/エントロピーデコードし得る。コーディング済みビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト依存性を伴うまたは伴わない算術コーディングなどを含む、当業者に周知の原理に従うことができる。パーサ304は、コーディング済みビデオシーケンスから、そのグループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内の画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出し得る。サブグループは、Group of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。エントロピーデコーダ/パーサはまた、変換係数、量子化器パラメータ値、動きベクトルなどのコーディング済みビデオシーケンス情報から抽出し得る。
パーサ304は、シンボル313を作成するために、バッファ303から受信されたビデオシーケンスに対してエントロピーデコーディング/パース動作を行い得る。パーサ304は、エンコード済みデータを受信し、特定のシンボル313を選択的にデコードし得る。さらに、パーサ304は、特定のシンボル313が、動き補償予測ユニット306、スケーラ/逆変換ユニット305、イントラ予測ユニット307、またはループフィルタ311に提供されるべきかどうかを決定し得る。
シンボル313の再構築には、コーディング済みビデオピクチャまたはその一部(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)のタイプ、ならびにその他の要因に応じて、複数の異なるユニットを関与させることができる。どのユニットがどのように関与しているかは、パーサ304によって、コーディング済みビデオシーケンスからパースされたサブグループ制御情報によって制御されることができる。パーサ304と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために図示されていない。
既に言及された機能ブロックの他に、デコーダ300は、以下で説明するように、いくつかの機能ユニットに概念的に細分割されることができる。商業的な制約の下で動作する実際の実装形態では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分化が適切である。
第1のユニットは、スケーラ/逆変換ユニット305である。スケーラ/逆変換ユニット305は、量子化された変換係数、および使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報をパーサ304からシンボル313として受け取る。それは、アグリゲータ310に入力されることができるサンプル値を含むブロックを出力することができる。
場合によっては、スケーラ/逆変換305の出力サンプルは、イントラコーディング済みブロックに関係することがあり、すなわち、以前に再構築されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構築された部分からの予測情報を使用することができるブロックである。そのような予測情報は、イントラピクチャ予測ユニット307によって提供されることができる。場合によっては、イントラピクチャ予測ユニット307は、現在の(部分的に再構築された)ピクチャ309からフェッチされた周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。アグリゲータ310は、場合によっては、サンプルごとに、イントラ予測ユニット307が生成した予測情報を、スケーラ/逆変換ユニット305によって提供される出力サンプル情報に追加する。
他の場合には、スケーラ/逆変換ユニット305の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関係することがある。そのような場合、動き補償予測ユニット306は、参照ピクチャメモリ308にアクセスして、予測に使用されるサンプルをフェッチすることができる。フェッチされたサンプルをブロックに関係するシンボル313に従って動き補償した後に、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ310によってスケーラ/逆変換ユニットの出力に追加されることができる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償ユニットが予測サンプルをフェッチする参照ピクチャメモリ形式内のアドレスは、動きベクトルによって制御されることができ、例えば、X、Y、および参照ピクチャ成分を有することができるシンボル313の形式で動き補償ユニットに利用可能とすることができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリからフェッチされたサンプル値の補間、動きベクトル予測機構などを含むことができる。
アグリゲータ310の出力サンプルは、ループフィルタユニット311における様々なループフィルタリング技術の適用を受けることができる。ビデオ圧縮技術は、コーディング済みビデオビットストリームに含まれるパラメータによって制御され、パーサ304からのシンボル313としてループフィルタユニット311で利用できるループ内フィルタ技術を含むことができるが、コーディング済みピクチャまたはコーディング済みビデオシーケンスの以前の(デコーディング順で)部分のデコーディング中に取得されたメタ情報に応答したり、以前に再構築およびループフィルタリングされたサンプル値に応答したりすることもできる。
ループフィルタユニット311の出力は、レンダリングデバイス312に出力されることができるだけでなく、将来のインターピクチャ予測で使用するために参照ピクチャメモリ557に記憶されることができるサンプルストリームとすることができる。
完全に再構築されると、特定のコーディング済みピクチャは、将来の予測のための参照ピクチャとして使用されることができる。コーディング済みピクチャが完全に再構築され、コーディング済みピクチャが(例えば、パーサ304によって)参照ピクチャとして識別されていると、現在の参照ピクチャ309は参照ピクチャバッファ308の一部になることができ、以下のコーディング済みピクチャの再構築を開始する前に、新しい現在のピクチャメモリを再割り当てすることができる。
ビデオデコーダ300は、ITU-T Rec.H.265などの標準規格に文書化され得る所定のビデオ圧縮技術に従ってデコーディング動作を行い得る。コーディング済みビデオシーケンスは、ビデオ圧縮技術文書または規格において指定されるように、および具体的にはそこで文書化されたプロファイルにおいて指定されるように、ビデオ圧縮技術または規格のシンタックスに準拠しているという意味において、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに従ってもよい。また、コンプライアンスのために必要なのは、コーディング済みビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義された範囲内にあることであることが可能である。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、(例えば、毎秒メガサンプル単位で測定された)最大再構築サンプルレート、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)の仕様、およびコーディング済みビデオシーケンス内でシグナリングされるHRDバッファ管理用のメタデータによってさらに制限されることができる。
一実施形態では、受信器302は、エンコード済みビデオとともに追加の(冗長な)データを受信し得る。追加のデータは、コーディング済みビデオシーケンスの一部として含まれ得る。追加のデータは、データを適切にデコードするため、および/または元のビデオデータをより正確に再構築するために、ビデオデコーダ300によって使用され得る。追加のデータは、例えば、時間層、空間層、または信号対雑音比(SNR)強化層、冗長スライス、冗長ピクチャ、前方誤り訂正コードなどの形式にすることができる。
図4は、本開示の一実施形態によるビデオエンコーダ400の機能ブロック図であり得る。
エンコーダ400は、エンコーダ400によってコーディングされるべきビデオ画像を取り込み得るビデオソース401(エンコーダの一部ではない)からビデオサンプルを受信し得る。
ビデオソース401は、エンコーダ(303)によってコーディングされるべきソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形態で提供し得る。メディアサービングシステムでは、ビデオソース401は、以前に準備されたビデオを記憶する記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース401は、ローカル画像情報をビデオシーケンスとして取り込むカメラであり得る。ビデオデータは、順番に見たときに動きを与える複数の個別のピクチャとして提供され得る。ピクチャ自体は、画素の空間配列として編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
実施形態によれば、エンコーダ400は、アプリケーションによって要求されるように、リアルタイムで、または任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングし、コーディング済みビデオシーケンス410に圧縮し得る。適切なコーディング速度にすることが、コントローラ402の1つの機能である。コントローラは、以下に説明するように他の機能ユニットを制御し、これらのユニットに機能的に結合される。分かりやすくするために、結合は描かれていない。コントローラによって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化手法のラムダ値など)、ピクチャサイズ、Group of Pictures(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。当業者であれば、コントローラ402の他の機能は、それらが特定のシステム設計のために最適化されたビデオエンコーダ400に関係し得るため、容易に識別することができる。
一部のビデオエンコーダは、当業者が「コーディングループ」として容易に認識するものにおいて動作する。過度に簡略化した説明として、コーディングループは、エンコーダ400(以降「ソースコーダ」)(コーディングされるべき入力ピクチャと参照ピクチャに基づいてシンボルを作成する役割を果たす)のエンコーディング部分、およびシンボルを再構築して(リモート)デコーダも作成することになるサンプルデータを作成するエンコーダ400に組み込まれた(ローカル)デコーダ406で構成されることができる(シンボルとコーディング済みビデオビットストリームとの間の任意の圧縮は、開示された主題で考慮されているビデオ圧縮技術では可逆的であるため)。再構築されたサンプルストリームは、参照ピクチャメモリ405に入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカルまたはリモート)に関係なくビットイグザクト結果をもたらすため、参照ピクチャバッファコンテンツもまた、ローカルエンコーダとリモートエンコーダとの間でビットイグザクトである。言い換えると、エンコーダの予測部分は、デコーディング中に予測を使用するときにデコーダが「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えばチャネル誤りのために同期性を維持できない場合に結果として生じるドリフト)のこの基本原理は、当業者には周知である。
「ローカル」デコーダ406の動作は、「リモート」デコーダ300の動作と同じであることができ、これは、図3に関連して上記で詳細に既に説明されている。しかしながら、図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ408およびパーサ304によるコーディング済みビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆的であり得るため、チャネル301、受信器302、バッファ303、およびパーサ304を含むデコーダ300のエントロピーデコーディング部分は、ローカルデコーダ406で完全には実施されない場合がある。
この時点で言えることは、デコーダ内に存在するパース/エントロピーデコーディングを除く任意のデコーダ技術もまた必然的に、対応するエンコーダにおいて、実質的に同一の機能形態で存在する必要があるということである。エンコーダ技術の説明は、包括的に説明されているデコーダ技術の逆であるため、省略することができる。特定のエリアでのみ、より詳細な説明が必要であり、以下に提供される。
その動作の一部として、ソースコーダ403は、動き補償予測コーディングを行ってもよく、これは、「参照フレーム」として指定された、ビデオシーケンスからの1つまたは複数の以前にコーディングされたフレームを参照して入力フレームを予測的にコーディングする。この方法において、コーディングエンジン407は、入力フレームの画素ブロックと、入力フレームへの予測参照として選択され得る参照フレームの画素ブロックとの差をコーディングする。
ローカルビデオデコーダ406は、ソースコーダ403によって作成されたシンボルに基づいて、参照フレームとして指定され得るフレームのコーディング済みビデオデータをデコードし得る。コーディングエンジン407の動作は、好適には、非可逆プロセスであり得る。コーディング済みビデオデータがビデオデコーダ(図4には示されていない)でデコードされ得るとき、再構築されたビデオシーケンスは、通常、多少の誤差を伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ406は、ビデオデコーダによって参照フレームに対して行われ得るデコーディング処理を複製し、再構築された参照フレームを、例えばキャッシュであり得る参照ピクチャメモリ405に記憶させ得る。このようにして、エンコーダ400は、(伝送誤りのない)遠端のビデオデコーダによって取得されることになる再構築された参照フレームとして共通のコンテンツを有する再構築された参照フレームのコピーをローカルに記憶し得る。
予測子404は、コーディングエンジン407のための予測検索を行い得る。すなわち、コーディングされるべき新しいフレームに対して、予測子404は、サンプルデータ(候補参照画素ブロックとして)、または新しいピクチャの適切な予測参照として機能し得る、参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて参照ピクチャメモリ405を検索し得る。予測子404は、適切な予測参照を見出すために、画素ブロックごとのサンプルブロックに基づいて動作し得る。場合によっては、予測子404によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ405に記憶された複数の参照ピクチャから引き出された予測参照を有し得る。
コントローラ402は、例えばビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、例えばビデオコーダであり得るソースコーダ403のコーディング動作を管理し得る。
すべての前述の機能ユニットの出力は、エントロピーコーダ408でエントロピーコーディングを受け得る。エントロピーコーダは、例えばハフマンコーディング、可変長コーディング、算術コーディングなどの、当業者に既知の技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルをコーディング済みビデオシーケンスに変換する。
送信器409は、エントロピーコーダ408によって作成されたコーディング済みビデオシーケンスをバッファに入れて、エンコード済みビデオデータを記憶することになる記憶デバイスへのハードウェア/ソフトウェアリンクであり得る通信チャネル411を介した伝送のためにそれを準備し得る。送信器409は、ソースコーダ403からのコーディング済みビデオデータを、伝送される他のデータ、例えば、コーディング済みオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージし得る。
コントローラ402は、エンコーダ400の動作を管理し得る。コーディング中に、コントローラ402は、各コーディング済みピクチャに特定のコーディング済みピクチャタイプを割り当ててもよく、これは、各ピクチャに適用され得るコーディング技術に影響を及ぼす場合がある。例えば、ピクチャは、多くの場合、以下のフレームタイプのうちの1つとして割り当てられ得る。
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のフレームを使用することなくコーディングおよびデコーディングされ得るものであってもよい。いくつかのビデオコーデックは、例えば独立デコーダリフレッシュピクチャなどを含む、様々なタイプのイントラピクチャを可能にする。当業者は、Iピクチャのこれらの変形、ならびにそれらのそれぞれのアプリケーションおよび特徴を知っている。
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされ得るものであり得る。
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされ得るものであり得る。同様に、複数予測ピクチャは、単一のブロックの再構築に2つを超える参照ピクチャと関連メタデータとを使用できる。
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分割され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されたコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてもよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、または同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、空間予測を介して、または以前にコーディングされた1つの参照ピクチャを参照する時間予測を介して、非予測的にコーディングされてもよい。Bピクチャのブロックは、以前にコーディングされた1つまたは2つの参照ピクチャを参照して、非予測的に、空間予測を介して、または時間予測を介してコーディングされてもよい。
例えばビデオコーダであってもよいエンコーダ400は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を行い得る。その動作において、エンコーダ400は様々な圧縮動作を行ってもよく、これには入力ビデオシーケンスで時間的および空間的冗長性を利用する予測コーディング動作が含まれる。したがって、コーディング済みビデオデータは、使用されているビデオコーディング技術または規格によって指定されたシンタックスに準拠し得る。
一実施形態では、送信器409は、エンコード済みビデオとともに追加のデータを伝送し得る。ソースコーダ403は、そのようなデータを、コーディング済みビデオシーケンスの一部として含み得る。追加のデータは、時間層/空間層/SNR強化層、冗長なピクチャおよびスライスなどの他の形式の冗長データ、補足拡張情報(SEI)メッセージ、視覚ユーザビリティ情報(VUI)パラメータセットフラグメントなどを含み得る。
図5は、全方向メディアアプリケーションフォーマット(OMAF)で記述された360度仮想現実(VR360)ストリーミングを可能にし得るOMAFにおける例示的なビューポート依存処理の簡略ブロックスタイルワークフローダイヤグラム500を示す。
取得ブロック1001において、画像データがVR360のシーンを表し得る場合には、同じ時間インスタンスの複数の画像およびオーディオのデータなどのビデオデータAが取得される。処理ブロック1003において、同じ時間インスタンスの画像Biは、スティッチングされること、1つまたは複数の仮想現実(VR)角度または他の角度/視点に関して投影されたピクチャにマッピングされること、および領域ごとにパックされることのうちの1つまたは複数によって、処理される。加えて、そのような処理された情報および他の情報のいずれかを示すメタデータを作成して、配信およびレンダリング処理を支援し得る。
データDに関して、画像エンコーディングブロック1005において、投影されたピクチャはデータEiにエンコードされ、メディアファイルに構成され、ビューポート非依存ストリーミングでは、ビデオエンコーディングブロック1004において、ビデオピクチャは、例えば単層ビットストリームとしてデータEvとしてエンコードされ、データBaに関して、オーディオデータはまた、オーディオエンコーディングブロック1002においてデータEaにエンコードされ得る。
データEa、Ev、およびEi、コーディング済みビットストリームFiおよび/またはF全体は、(コンテンツ配信ネットワーク(CDN)/クラウド)サーバに記憶されてもよく、典型的には、配信ブロック1007などで、さもなければ、OMAFプレーヤ1020に、完全に送信されてもよく、デコーダによって完全にデコードされてもよく、それにより、現在のビューポートに対応するデコードされたピクチャの少なくともエリアが、頭部/眼追跡ブロック1008から、様々なメタデータ、ファイル再生、および向き/ビューポートメタデータ、例えば、そのデバイスのビューポートの仕様に関してVR画像デバイスを通してユーザが見ていてもよい角度に関して、表示ブロック1016で、ユーザにレンダリングされる。VR360の明確な特徴は、任意の特定の時間にビューポートのみが表示されてもよく、そのような特徴を利用して、ユーザのビューポートに応じた選択的配信(または推奨されるビューポート時限メタデータなどの任意の他の基準)により、全方向ビデオシステムの性能を向上させ得ることである。例えば、ビューポート依存型配信は、例示的な実施形態によるタイルベースのビデオコーディングによって可能にされ得る。
上述したエンコーディングブロックと同様に、例示的な実施形態によるOMAFプレーヤ1020は、データF’および/またはF’iならびにメタデータのうちの1つまたは複数のファイル/セグメントカプセル化解除に関してそのようなエンコーディングの1つまたは複数のファセットを同様に逆転させ、オーディオデコーディングブロック1010でオーディオデータE’i、ビデオデコーディングブロック1013でビデオデータE’v、および画像デコーディングブロック1014で画像データE’iをデコードして、オーディオレンダリングブロック1011でのデータB’aのオーディオレンダリング、および画像レンダリングブロック1015でのデータD’の画像レンダリングを進めて、向き/ビューポートメタデータなどの様々なメタデータに従って、VR360フォーマットで、表示ブロック1016での表示データA’iおよびスピーカ/ヘッドフォンブロック1012でのオーディオデータA’sを出力し得る。様々なメタデータは、OMAFプレーヤ1020のユーザによってまたはユーザのために選択され得る様々なトラック、言語、質、ビューに応じてデータデコーディングおよびレンダリングプロセスのうちの1つに影響を及ぼしてもよく、本明細書に記載の処理の順序は、例示的な実施形態のために提示され、他の例示的な実施形態による他の順序で実施され得ることを理解されたい。
図6は、6自由度メディアの取り込み/生成/(デ)コーディング/レンダリング/表示に関する点群データ(本明細書では「V-PCC」)のビュー位置および角度依存処理を有する(コーディング済み)点群データの簡略ブロックスタイルコンテンツフロープロセスダイヤグラム600を示す。記載された特徴は、別々に使用されてもよく、または任意の順序で組み合わされてもよく、エンコーディングおよびデコーディングなどの要素は、特に図示されているように、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装されてもよく、1つまたは複数のプロセッサは、例示的な実施形態による非一時的コンピュータ可読媒体に記憶されたプログラムを実行してもよいことを理解されたい。
ダイヤグラム600は、V-PCCによるコーディング済み点群データのストリーミングのための例示的な実施形態を示す。
ボリュメトリックデータ取得ブロック1101では、現実世界の視覚的シーンまたはコンピュータ生成の視覚的シーン(またはそれらの組合せ)が、一組のカメラデバイスによって取り込まれ得るか、またはコンピュータによってボリュメトリックデータとして合成されてもよく、任意のフォーマットを有し得るボリュメトリックデータは、点群への変換ブロック1102における画像処理を介して、(量子化された)点群データフォーマットに変換され得る。例えば、ボリュメトリックデータ由来のデータは、例示的な実施形態によれば、ボリュメトリックデータおよび任意の関連データから以下に説明する値の1つまたは複数を所望の点群フォーマットにプルすることによって、点群の点の1つにエリアデータごとに変換され得る。例示的な実施形態によれば、ボリュメトリックデータは、例えば3Dデータセットの2D投影がそこから投影され得るスライスなどの2D画像の3Dデータセットであってもよい。例示的な実施形態によれば、点群データフォーマットは、1つまたは複数の様々な空間内のデータ点の表現を含み、ボリュメトリックデータを表すために使用されてもよく、時間的冗長性などに関してサンプリングおよびデータ圧縮に関して改善を提供してもよく、例えば、x、y、zのフォーマットの点群データは、クラウドデータの複数の点の各点において、色値(例えば、RGBなど)、輝度、強度などを表し、プログレッシブデコーディング、ポリゴンメッシュ、直接レンダリング、2D四分木データの八分木3D表現とともに使用され得る。
画像への投影ブロック1103において、取得された点群データは、2D画像へ投影され、かつビデオベースの点群コード化(V-PCC)を用いて画像/ビデオピクチャとしてエンコードされ得る。投影された点群データは、属性、ジオメトリ、占有マップ、および例えばとりわけ、ペインタのアルゴリズム、レイキャスティングアルゴリズム、(3D)二値空間パーティションアルゴリズムなどを用いた点群データ再構築に使用される他のメタデータで構成され得る。
一方、シーンジェネレータブロック1109において、シーンジェネレータは、例えばディレクタの意図またはユーザの好みにより、6自由度(DoF)メディアをレンダリングおよび表示するために使用されるいくつかのメタデータを生成し得る。そのような6DoFメディアは、点群コーディング済みデータ内の、または少なくともそれに応じた仮想体験に対する前後、上下、および左右の移動を可能にする追加の次元に加えて、3D軸X、Y、Z上の回転変化からのシーンの3Dビューのような360VRを含み得る。シーン記述メタデータは、コーディング済み点群データおよびVR360、ライトフィールド、オーディオなどを含む他のメディアデータから構成される1つまたは複数のシーンを定義し、図6および関連する記述に示されるように、1つまたは複数のクラウドサーバおよび/またはファイル/セグメントカプセル化/カプセル化解除処理に提供され得る。
上述したビデオおよび画像エンコーディングと同様のビデオエンコーディングブロック1104および画像エンコーディングブロック1105の後(理解されるように、オーディオエンコーディングもまた、上述のように提供され得る)、ファイル/セグメントカプセル化ブロック1106は、コーディング済み点群データが、ファイル再生のためのメディアファイル、または初期化セグメントのシーケンスと、1つまたは複数のビデオコンテナフォーマットなどの特定のメディアコンテナファイルフォーマットに従ってストリーミングするためのメディアセグメントとに構成されるように処理し、とりわけ、そのような記述は例示的な実施形態を表すなど、後述するDASHに関して使用され得る。ファイルコンテナはまた、シーンジェネレータブロック1109からなどのシーン記述メタデータをファイルまたはセグメントに含み得る。
例示的な実施形態によれば、ファイルは、そのようなファイルがユーザまたは作成者の入力に応じて要求に対して伝送され得るように、シーン記述メタデータに応じてカプセル化されて、少なくとも1つのビュー位置および(1つまたは複数の)ビュー位置における少なくとも1つまたは複数の角度ビューをそれぞれ6DoFメディアのうちの1つまたは複数の時間に含む。さらに、例示的な実施形態によれば、そのようなファイルのセグメントは、そのようなファイルの1つまたは複数の部分、例えば、1つの視点および1つまたは複数の時間における角度を示す6DoFメディアの一部を含み得るが、これらは単なる例示的な実施形態であり、ネットワーク、ユーザ、作成者の能力および入力などの様々な条件に応じて変更され得る。
例示的な実施形態によれば、点群データは、ビデオエンコーディングブロック1104および画像エンコーディングブロック1105のうちの1つまたは複数などにおいて独立してコーディングされる複数の2D/3D領域にパーティショニングされる。次に、点群データの各々の独立してコーディングされたパーティションは、ファイルおよび/またはセグメントのトラックとして、ファイル/セグメントカプセル化ブロック1106でカプセル化され得る。例示的な実施形態によれば、各点群トラックおよび/またはメタデータトラックは、ビュー位置/角度依存処理のためのいくつかの有用なメタデータを含み得る。
例示的な実施形態によれば、ビュー位置/角度依存処理に有用な、ファイル/セグメントカプセル化ブロックに関してカプセル化されたファイルおよび/またはセグメントに含まれるなどのメタデータは、インデックスを有する2D/3Dパーティションのレイアウト情報、3Dボリュームパーティションを1つまたは複数の2Dパーティション(例えば、タイル/タイルグループ/スライス/サブピクチャのいずれか)に関連付ける(動的)マッピング情報、6DoF座標系上の各3Dパーティションの3D位置、代表ビュー位置/角度リスト、3Dボリュームパーティションに対応する選択ビュー位置/角度リスト、選択ビュー位置/角度に対応する2D/3Dパーティションのインデックス、各2D/3Dパーティションの品質(ランク)情報、および例えば各ビュー位置/角度に応じた各2D/3Dパーティションのレンダリング情報、のうちの1つまたは複数を含む。V-PCCプレーヤのユーザによって、またはV-PCCプレーヤのユーザのためにコンテンツ制作者によって指示されるなど、要求されたときにそのようなメタデータを呼び出すことにより、そのようなメタデータに関して所望される6DoFメディアの特定の部分に関してより効率的な処理を可能にしてもよく、それにより、V-PCCプレーヤは、そのメディアの未使用部分を配信するのではなく、他の部分よりも6DoFメディアの部分にフォーカスされた高品質の画像を配信し得る。
ファイル/セグメントカプセル化ブロック1106から、ファイルまたはファイルの1つまたは複数のセグメントは、配信機構(例えば、HTTP上の動的適応ストリーミング(DASH))を使用して、V-PCCプレーヤ1125およびクラウドサーバブロック1107などのクラウドサーバのいずれかに直接配信することができ、クラウドサーバは、ファイルから1つまたは複数のトラックおよび/または1つまたは複数の特定の2D/3Dパーティションを抽出することができ、複数のコーディング済み点群データを1つのデータにマージし得る。
位置/ビュー角度追跡ブロック1108などのデータによれば、現在のビュー位置および角度がクライアントシステムにおいて6DoF座標系で定義されている場合、クラウドサーバブロック1107において、ビュー位置/角度メタデータは、ファイル/セグメントカプセル化ブロック1106から配信されるか、またはクラウドサーバに既にあるファイルまたはセグメントから他の方法で処理されてもよく、その結果、クラウドサーバは、例えばV-PCCプレーヤ1125を有するクライアントシステムからのメタデータに応じて、適切なパーティションをストアファイルから抽出し、それらを(必要に応じて)マージしてもよく、抽出されたデータは、ファイルまたはセグメントとして、クライアントに配信されることができる。
そのようなデータに関して、ファイル/セグメントカプセル化解除ブロック1115において、ファイルカプセル化解除器は、ファイルまたは受信されたセグメントを処理し、コーディング済みビットストリームを抽出し、メタデータを解析し、ビデオデコーディングおよび画像デコーディングブロックにおいて、コーディング済み点群データは、次にデコードされて、点群再構築ブロック1112において、点群データに復号および再構築され、再構築された点群データは、表示ブロック1114において表示されることができ、および/または、シーンジェネレータブロック1109によるシーン記述データに対する、シーン構成ブロック1113における1つまたは複数の様々なシーン記述に応じて、最初に構成され得る。
上記を考慮して、そのような例示的なV-PCCフローは、複数の2D/3Dエリアについての記載されたパーティショニング能力、単一の適合コーディング済みビデオビットストリームへのコーディング済み2D/3Dパーティションの圧縮ドメインアセンブリの能力、および適合コーディング済みビットストリームへのコーディング済みピクチャのコーディング済み2D/3Dのビットストリーム抽出能力のうちの1つまたは複数を含むV-PCC規格に対する利点を表し、そのようなV-PCCシステムサポートは、上述のメタデータのうちの1つまたは複数を搬送するメタデータを含む機構をサポートするためにVVCビットストリームのためのコンテナ形成を含むことによってさらに改善される。
その観点から、以下でさらに説明する例示的な実施形態によれば、「メッシュ」という用語は、ボリュメトリックオブジェクトの表面を表す1つまたは複数のポリゴンの組成を示す。各ポリゴンは、3D空間内のその頂点と、頂点がどのように接続されているかの情報とによって定義され、接続性情報と呼ばれる。任意選択で、色、法線などの頂点属性がメッシュ頂点に関連付けられることができる。属性はまた、メッシュを2D属性マップでパラメトライズするマッピング情報を利用することによって、メッシュの表面に関連付けられることができる。そのようなマッピングは、UV座標またはテクスチャ座標と呼ばれ、メッシュ頂点に関連付けられたパラメトリック座標のセットによって記述され得る。2D属性マップ(一部の例ではテクスチャマップと称される)は、テクスチャ、法線、変位などの高解像度属性情報を記憶するために使用される。かかる情報は、テクスチャマッピングおよびシェーディングなどの種々の目的のために使用されることができる。
それにもかかわらず、動的メッシュシーケンスは、それが経時的に変化するかなりの量の情報で構成され得るので、大量のデータを必要とする場合がある。したがって、そのようなコンテンツを記憶して伝送するために効率的な圧縮技術が必要とされる。メッシュ圧縮規格IC、MESHGRID、FAMCは、常時接続性および時変ジオメトリおよび頂点属性を有する動的メッシュに対処するためにMPEGによって以前に開発された。しかしながら、これらの規格は、時変属性マップおよび接続性情報を考慮していない。DCC(デジタルコンテンツ作成)ツールは、通常、そのような動的メッシュを生成する。これに対応して、特にリアルタイム制約下で、ボリュメトリック取得技術が常時接続性動的メッシュを生成することは困難である。この種のコンテンツは、既存の規格ではサポートされていない。本明細書の例示的な実施形態によれば、時変接続性情報および任意選択的に時変属性マップを有する動的メッシュを直接処理するための新しいメッシュ圧縮規格の態様が記載されており、この規格は、リアルタイム通信、ストレージ、自由視点ビデオ、ARおよびVRなどの様々なアプリケーションの非可逆および可逆圧縮を対象とする。ランダムアクセスおよびスケーラブル/プログレッシブコーディングなどの機能も考慮される。「メッシュ」、または「入力メッシュ」などは、複数の、少なくとも2つの頂点のデータである。
図7は、2Dアトラスサンプリングベースの方法などのための1つの動的メッシュ圧縮の例示的なフレームワーク700を表す。入力メッシュ1201の各フレームは、追跡、再メッシュ化、パラメータ化、ボクセル化などの一連の動作によって前処理されることができる。これらの動作はエンコーダのみとすることができ、これは、それらがデコーディングプロセスの一部ではないかもしれないことを意味し、そのような可能性は、エンコーダのみに0を示し、他に1を示すなどのフラグによってメタデータでシグナリングされ得ることに留意されたい。その後、2D UVアトラスを有するメッシュ1202を得ることができ、それにおいてメッシュの各頂点は、2Dアトラスの1つまたは複数の関連付けられたUV座標を有する。次いで、メッシュは、2Dアトラスでサンプリングすることによって、ジオメトリマップおよび属性マップを含む複数のマップに変換されることができる。次に、これらの2Dマップは、HEVC、VVC、AV1、AVS3などのビデオ/画像コーデックによってコーディングされることができる。デコーダ1203側では、デコードされた2Dマップからメッシュが再構築されることができる。再構築されたメッシュ1204に対して任意の後処理およびフィルタリングも適用されることができる。他のメタデータは、3Dメッシュ再構築を目的としてデコーダ側にシグナリングされてもよいことに留意されたい。境界頂点のuvおよびxyz座標を含むチャート境界情報は、ビットストリーム内で予測、量子化、およびエントロピーコーディングされることができることに留意されたい。量子化ステップサイズは、品質とビットレートとの間のトレードオフのためにエンコーダ側で構成されることができる。
いくつかの実施態様では、3Dメッシュはいくつかのセグメント(またはパッチ/チャート)にパーティショニングされることができる。各セグメントは、それらのジオメトリ、属性、および接続性情報に関連付けられた接続頂点のセットから構成される。図8のボリュメトリックデータの例800に示すように、上述の2D UVアトラス1202ブロックなどの、3Dメッシュセグメントから2DチャートにマッピングするUVパラメータ化プロセス1302は、1つまたは複数のメッシュセグメント1301を2D UVアトラス1304内の2Dチャート1303にマッピングする。メッシュセグメント内の各頂点(vn)には、2D UVアトラス内の2D UV座標が割り当てられる。2Dチャート内の頂点(vn)は、それらの3D対応物として接続構成要素を形成することに留意されたい。各頂点のジオメトリ、属性、および接続性情報は、それらの3D対応物からも同様に継承されることができる。例えば、頂点v4が頂点v0,v5,v1,v3に直接接続しているという情報が示されてもよく、他の各頂点の情報も同様に示されてもよい。さらに、そのような2Dテクスチャメッシュは、例示的な実施形態によれば、色情報などの情報を、各三角形のパッチ、例えばv2,v5,v3などによるパッチごとにさらに示す。
例えば、図8の例800の特徴に加えて、3Dメッシュセグメント1301が複数の別々の2Dチャート1401および1402にマッピングされることもできる図9の例900を参照されたい。この場合、3Dの頂点は、2D UVアトラスの複数の頂点に対応することができる。図9に示されるように、同じ3Dメッシュセグメントは、2D UVアトラスにおいて、図8のような単一のチャートの代わりに、複数の2Dチャートにマッピングされる。例えば、3D頂点v1およびv4はそれぞれ、2つの2D対応関係v1,v1’およびv4,v4’を有する。よって、3Dメッシュの一般的な2D UVアトラスは、図14に示されるように複数のチャートで構成されてもよく、各チャートは、それらの3Dジオメトリ、属性、および接続性情報に関連付けられた複数の(通常は3つ以上の)頂点を含んでもよい。
図10は、境界頂点B0,B1,B2,B3,B4,B5,B6,B7を有するチャート内の導出された三角形分割を示す例1000を示す。そのような情報が提示されると、(境界頂点およびサンプリングされた頂点を含む)頂点間の接続性を作成するために任意の三角形分割が適用されることができる。例えば、各頂点について、最も近い2つの頂点を見つける。または、すべての頂点について、設定された試行回数の後に最小数の三角形が達成されるまで、三角形を連続的に生成する。例1000に示されるように、一般に境界頂点に最も近く、他の三角形と共有されてもされなくてもよい独自の寸法を有する、様々な規則的な形状の繰り返し三角形および様々な異形三角形が存在する。接続性情報は、明示的なシグナリングによって再構築されることもできる。暗黙的なルールによってポリゴンを復元することができない場合、エンコーダは、例示的な実施形態に従ってビットストリーム内の接続性情報をシグナリングすることができる。
上述のパッチを見ると、例1000は、図14および図15のいずれかに示された頂点v3、v2、v5から形成されたパッチなどの、1つのそのようなパッチを表し得る。
境界頂点B0,B1,B2,B3,B4,B5,B6,B7は、2D UV空間内に定義される。図15に示されるように、塗りつぶされた頂点は、接続された構成要素(パッチ/チャート)の境界辺にあるため、境界頂点である。境界辺は、その辺が1つの三角形にのみに現れるかどうかをチェックすることによって決定され得る。以下の境界頂点の情報は重要であり、例示的な実施形態によるビットストリームでシグナリングされるべきであり、情報は、ジオメトリ情報、例えば、現在2D UVパラメトリック形式であっても3D XYZ座標、および2D UV座標である。
図9に示されるように、3Dの境界頂点が2D UVアトラスの複数の頂点に対応する場合、3D XUZから2D UVへのマッピングは1対多とすることができる。したがって、マッピング関数を示すためにUV対XYZ(またはUV2XYZと呼ばれる)インデックスがシグナリングされることができる。UV2XYZは、各2D UV頂点を3D XYZ頂点に対応させるインデックスの1D配列であってもよい。
例示的な実施形態によれば、メッシュ信号を効率的に表すために、メッシュ頂点のサブセットが、それらの間の接続性情報とともに最初にコーディングされてもよい。元のメッシュでは、元のメッシュからサブサンプリングされるため、これらの頂点間の接続は存在しない場合がある。頂点間の接続性情報をシグナリングする方法は様々であり、したがって、そのようなサブセットはベースメッシュまたはベース頂点と呼ばれる。
しかしながら、他の頂点は、2つ以上の既にデコードされたメッシュ頂点間に補間を適用することによって予測されることができる。予測子頂点は、2つの接続された既存の頂点の辺に沿ったそのジオメトリ的な位置を有するので、予測子のジオメトリ情報は、近傍にあるデコードされた頂点に基づいて計算されることができる。場合によっては、コーディングされるべき頂点から頂点予測子までの変位ベクトルまたは予測誤差がさらにコーディングされるべきである。例えば、図11の例1100を参照すると、そのような辺ベースの頂点予測の例、より具体的には、左に示されるように三角形を平行四辺形に拡張することによる補外、および右に示されるように2つの既存の頂点の加重平均による補間によるイントラ予測を使用した頂点ジオメトリ予測の例が示されている。ベース頂点(すなわち、図11の左側の実線の三角形1801)をデコードした後、これらのベース頂点間の補間は、接続された辺に沿って行われることができる。例えば、各辺の中点が予測子として生成されることができる。したがって、これらの補間された点のジオメトリ的な位置は、2つの近傍にあるデコードされた頂点(図11左の破線点1802)の(加重)平均である。2つの既にデコードされた頂点の間に複数の中間点を有することも、同様の方法で行われることができる。したがって、コーディングされる実際の頂点は、変位ベクトルを予測子に加えることによって再構築されることができる(図7中央)。これらの追加の頂点をデコードした後、新たにデコードされた頂点と既存のベース頂点との間の接続は依然として維持される。さらに、新たにデコードされた頂点間の接続がさらに確立されることができる。ベース頂点とともに、これらの新たにデコードされた頂点1803とベース頂点とをともに接続することによって、新たな辺(図7右)に沿ってより多くの中間頂点予測子が生成されることができる。したがって、デコードされるべきより実際の頂点が、関連付けられた変位ベクトルとともに存在する。
例示的な実施形態によれば、メッシュフレーム1902のメッシュ頂点はまた、以前にコーディングされたメッシュフレーム1901のデコーディング済み頂点から予測されることができる。この予測メカニズムは、インター予測と呼ばれる。メッシュジオメトリのインター予測の例が図12の例1200に示されており、インター予測を使用した頂点ジオメトリ予測を示している(前のメッシュフレームの頂点は現在のフレームの頂点の予測子になる)。場合によっては、コーディングされるべき頂点から頂点予測子までの変位ベクトルまたは予測誤差がさらにコーディングされるべきである。
例示的な実施形態によれば、動的メッシュ圧縮のためにいくつかの方法が実施され、上述の辺ベースの頂点予測フレームワークの一部であり、ベースメッシュが最初にコーディングされ、次いでベースメッシュの辺からの接続性情報に基づいてより多くの追加の頂点が予測される。方法は、個別に適用されても、任意の形態の組合せによって適用されてもよいことに留意されたい。
例えば、図13の予測モードのための頂点グループ化の例のフローチャート1300を考慮されたい。S201で、メッシュ内の頂点が取得されてもよく、S202で、予測目的のために異なるグループに分割されることができ、例えば、図10を参照されたい。一例では、分割は、前述のようにS204でパッチ/チャートパーティショニングを使用して行われる。他の例では、分割は各パッチ/チャートS205の下で行われる。S204に進むかS205に進むかの決定S203は、フラグなどによってシグナリングされてもよい。S205の場合、同じパッチ/チャートのいくつかの頂点は予測グループを形成し、同じ予測モードを共有するが、同じパッチ/チャートのいくつかの他の頂点は他の予測モードを使用することができる。S206におけるそのようなグループ化は、グループごとに含まれる頂点のそれぞれの数を決定することによって、異なるレベルで割り当てられることができる。例えば、パッチ/チャート内の走査順序に従う64個、32個、または16個の頂点ごとに、例示的な実施形態による同じ予測モードが割り当てられ、他の頂点は異なって割り当てられてもよい。各グループについて、予測モードはイントラ予測モードまたはインター予測モードとすることができる。これはシグナリングされるかまたは割り当てられることができる。例示的なフローチャート1300によれば、メッシュフレームまたはメッシュスライスのフラグがイントラタイプを示すかどうかをチェックすることなどによって、S207でメッシュフレームまたはメッシュスライスがイントラタイプであると決定された場合、そのメッシュフレームまたはメッシュスライス内のすべての頂点グループは、イントラ予測モードを使用するものとし、そうでない場合、S208で、イントラ予測モードまたはインター予測モードのいずれかが、その中のすべての頂点についてグループごとに選択され得る。
さらに、イントラ予測モードを使用するメッシュ頂点のグループの場合、その頂点は、現在のメッシュの同じサブパーティション内の以前にコーディングされた頂点を使用することによってのみ予測されることができる。時として、サブパーティションは、例示的な実施形態によれば現在のメッシュ自体とすることができ、インター予測モードを使用するメッシュ頂点のグループの場合、その頂点は、例示的な実施形態によれば、他のメッシュフレームからの以前にコーディングされた頂点を使用することによってのみ予測されることができる。上記の各情報は、フラグなどによって決定およびシグナリングされ得る。前記予測特徴はS210で発生してもよく、前記予測およびシグナリングの結果はS211で発生してもよい。
例示的な実施形態によれば、例示的なフローチャート1300および後述するフローチャート1400の頂点のグループ内の各頂点について、予測後、残差は、現在の頂点からその予測子へのシフトを示す3D変位ベクトルとなる。頂点のグループの残差は、さらに圧縮される必要がある。一例では、S211における変換は、そのシグナリングとともに、エントロピーコーディングの前に、頂点グループの残差に適用されることができる。変位ベクトルのグループのコーディングを処理するために、以下の方法が実施され得る。例えば、一方法では、変位ベクトルのグループ、いくつかの変位ベクトル、またはその成分がゼロ値のみを有する場合を適切にシグナリングする。他の実施形態では、このベクトルが非ゼロ成分を有するかどうかのフラグが変位ベクトルごとにシグナリングされ、そうでない場合、この変位ベクトルのすべての成分のコーディングはスキップされることができる。さらに、他の実施形態では、このグループが非ゼロベクトルを有するかどうかのフラグが変位ベクトルのグループごとにシグナリングされ、そうでない場合、このグループのすべての変位ベクトルのコーディングはスキップされることができる。さらに、他の実施形態では、グループのこの成分が任意の非ゼロベクトルを有するかどうかのフラグが変位ベクトルのグループの成分ごとにシグナリングされ、そうでない場合、このグループのすべての変位ベクトルのこの成分のコーディングはスキップされることができる。さらに、他の実施形態では、変位ベクトルのグループまたは変位ベクトルのグループの成分が変換を必要とし、そうでない場合、変換はスキップされることができ、量子化/エントロピーコーディングがグループまたはグループ成分に直接適用されることができる場合のシグナリングがあり得る。さらに、他の実施形態では、このグループが変換を経る必要があるかどうかのフラグが変位ベクトルのグループごとにシグナリングされてもよく、そうでない場合、このグループのすべての変位ベクトルの変換コーディングはスキップされることができる。さらに、他の実施形態では、グループのこの成分が変換を経る必要があるかどうかのフラグが変位ベクトルのグループの成分ごとにシグナリングされ、そうでない場合、このグループのすべての変位ベクトルのこの成分の変換コーディングはスキップされることができる。頂点予測残差の処理に関するこの段落の上述の実施形態はまた、それぞれ異なるパッチ上で組み合わせて並列に実施され得る。
図14は例示的なフローチャート1400を示し、S221で、メッシュフレームがデータユニット全体としてコーディングされて取得されることができ、メッシュフレームのすべての頂点または属性がそれらの間に相関を有し得ることを意味する。あるいは、S222での決定に応じて、メッシュフレームは、S223で、2Dビデオまたは画像のスライスまたはタイルと同様の概念で、より小さな独立したサブパーティションに分割されることができる。コーディング済みメッシュフレームまたはコーディング済みメッシュサブパーティションは、S224で予測タイプを割り当てられることができる。可能な予測タイプは、イントラコーディングタイプおよびインターコーディングタイプを含む。イントラコーディングタイプの場合、同じフレームまたはスライスの再構築された部分からの予測のみがS225で許可される。一方、インター予測タイプは、S225で、イントラメッシュフレーム予測に加えて、以前にコーディングされたメッシュフレームからの予測を可能にする。また、インター予測タイプは、PタイプやBタイプなど、より多くのサブタイプに分類されてもよい。Pタイプでは、予測目的のために1つの予測子のみを使用することができ、Bタイプでは、2つの以前にコーディングされたメッシュフレームからの2つの予測子を使用して予測子を生成してもよい。2つの予測子の加重平均は一例とすることができる。メッシュフレームが全体としてコーディングされるとき、フレームは、イントラコーディングまたはインターコーディングされたメッシュフレームとみなされることができる。インターメッシュフレームの場合、PまたはBタイプは、シグナリングを介してさらに識別され得る。あるいは、メッシュフレームがフレーム内でさらに分割してコーディングされる場合、S224で各サブパーティションの予測タイプを割り当てる。上記の各情報は、フラグなどによって決定およびシグナリングされてもよく、図13のS210およびS211と同様に、前記予測特徴はS226で発生してもよく、前記予測およびシグナリングの結果はS227で発生してもよい。
よって、動的メッシュシーケンスは、経時的に変化するかなりの量の情報から構成され得るため、大量のデータを必要とし得るが、そのようなコンテンツを記憶して伝送するために効率的な圧縮技術が必要とされ、図20および図21について上述された特徴は、同じメッシュフレーム内の以前にデコードされた頂点(イントラ予測)または以前にコーディングされたメッシュフレームからの以前のデコードされた頂点(インター予測)のいずれかを使用することにより、少なくとも改善されたメッシュ頂点3D位置予測を可能にすることにより、そのような改善された効率を表す。
さらに、例示的な実施形態は、第2の層2302および第1の層2301などのその前の層(複数可)の再構築された頂点のうちの1つまたは複数に基づいて、メッシュの第3の層2303の変位ベクトルを生成してもよい。第2の層2302のインデックスがTであると仮定すると、第3の層2303の頂点の予測子T+1は、少なくとも現在の層または第2の層2302の再構築された頂点に基づいて生成される。そのような層ベースの予測構造の一例が図16の例1600に示されており、これは再構築ベースの頂点予測、すなわち辺ベースの補間を使用するプログレッシブ頂点予測を示しており、予測子は予測子頂点ではなく以前にデコードされた頂点に基づいて生成される。第1の層2301は、その頂点として、その境界にデコードされた頂点と、それらのデコードされた頂点の間の線のうちの1つに沿って補間された頂点とを有する第1のポリゴン2340によって境界付けられたメッシュであってもよい。プログレッシブコーディングが第1の層2301から第2の層2302に進むにつれて、第1の層の補間された頂点のうちの1つから第2の層2302の追加の頂点までの変位ベクトルによって追加のポリゴン2341が形成されてもよく、よって、第2の層2302の頂点の総数は第1の層2301の頂点の総数よりも多くてもよい。同様に、第3の層2303に進むと、第2の層2302の追加の頂点は、第1の層2301からのデコードされた頂点とともに、第1の層2301から第2の層2303に進む際に供給されたデコード済み頂点と同様にコーディングに機能してもよく、すなわち、複数の追加のポリゴンが形成されてもよい。注記として、そのようなプログレッシブコーディングを示す図19の例1900を参照すると、図16とは異なり、例1900は、第1の層2601から第2の層2603へ、次いで第3の層2603へと進む際に、追加的に形成されたポリゴンの各々が完全に第1の層2601の境界によって形成されたポリゴン内にあり得ることを示している。
そのような例1600については、図15の例示的なフローチャート1500を参照すると、現在の層の補間された頂点は予測値であるため、次の層の頂点の予測子を生成するために使用される前に、そのような値が再構築される必要がある。これは、S231でベースメッシュをコーディングし、S232で頂点予測を実施し、次にS233で現在の層のデコードされた変位ベクトルを層2302などの頂点の予測子に追加することによって行われる。次に、この層2303の再構築された頂点は、S234でそのような層の追加の頂点値をチェックするなど、前の層(複数可)のすべてのデコードされた頂点とともに、S235で次の層2303の予測子頂点を生成してシグナリングするために使用されることができる。このプロセスは、以下のように要約されることもできる:P[t](Vi)が層t上の頂点Viの予測子を表すものとし、R[t](Vi)が層t上の再構築された頂点Viを表すものとし、D[t](Vi)が層t上の頂点Viの変位ベクトルを表すものとし、f(*)が予測子ジェネレータを表すものとし、これは特に、2つの既存の頂点の平均とすることができる。次に、各層tについて、例示的な実施形態によれば以下が存在する。
P[t](Vi)=f(R[s|s<t](Vj)、R[m|m<t](Vk))
ここで、VjおよびVkは前の層の再構築された頂点である
R[t](Vi)=P[t](Vi)+D[t](Vi) 式(1)
次に、1つのメッシュフレームのすべての頂点について、それらを層0(ベースメッシュ)、層1、層2、....などに分割する。次いで、1つの層における頂点の再構築は、前の層の頂点の再構築に依存する。上記では、P、RおよびDのそれぞれは、3Dメッシュ表現のコンテキスト下の3Dベクトルを表す。Dはデコードされた変位ベクトルであり、量子化はこのベクトルに適用されても適用されなくてもよい。
例示的な実施形態によれば、再構築された頂点を使用する頂点予測は、特定の層にのみ適用され得る。例えば、層0および層1である。他の層の場合、頂点予測は、再構築のために変位ベクトルをそれらに追加することなく、近傍予測子頂点を依然として使用することができる。したがって、これらの他の層は、1つ前の層が再構築するのを待つことなく同時に処理されることができる。例示的な実施形態によれば、層ごとに、再構築ベースの頂点予測を選択するか、予測子ベースの頂点予測を選択するかがシグナリングされることができ、または再構築ベースの頂点予測を使用しない層(およびその後続の層)がシグナリングされることができる。
頂点予測子が再構築された頂点によって生成される変位ベクトルについては、ウェーブレット変換などの変換をさらに実行することなく、それらに量子化が適用されることができる。頂点予測子が他の予測子頂点によって生成される変位ベクトルについては、変換が必要な場合があり、それらの変位ベクトルの変換係数に量子化が適用されることができる。
よって、動的メッシュシーケンスは、これが経時的に変化するかなりの量の情報で構成され得るので、大量のデータを必要とする場合がある。したがって、そのようなコンテンツを記憶して伝送するために効率的な圧縮技術が必要とされる。上述した補間ベースの頂点予測方法のフレームワークでは、変位ベクトルを圧縮することが重要な手順の1つであり、これはコード化ビットストリームの大部分を占め、本開示の焦点であり、例えば図15の特徴は、そのような圧縮を提供することによって、そのような問題を軽減する。
さらに、上述した他の例と同様に、それらの実施形態であっても、動的メッシュシーケンスは、経時的に変化するかなりの量の情報で構成され得るため、それでも大量のデータを必要とする場合があり、よって、そのようなコンテンツを記憶して伝送するために効率的な圧縮技術が必要とされる。上記の2Dアトラスサンプリングベースの方法のフレームワークでは、デコーダ側でサンプリングされた頂点と境界頂点から接続性情報を推測することによって重要な利点が達成され得る。これは、デコーディングプロセスにおける主要な部分であり、以下に説明するさらなる例の焦点である。
例示的な実施形態によれば、ベースメッシュの接続性情報は、エンコーダ側とデコーダ側の両方の各チャートのデコードされた境界頂点およびサンプリングされた頂点から推測(導出)されることができる。
上述したのと同様に、(境界頂点およびサンプリングされた頂点を含む)頂点間の接続性を作成するために任意の三角形分割が適用されることができる。以下でさらに説明する図10の例1000および図18の例1800に示される内部頂点など、内部頂点のいずれかのサンプリングがないチャートの場合、接続性を作成する同様の方法が依然として適用されるが、例示的な実施形態によれば、境界頂点およびサンプリングされた頂点に対して異なる三角形分割方法を使用するようにシグナリングされ得る。
例えば、例示的な実施形態によれば、任意のサンプリングされた位置における4つの近傍点ごとに、占有点の数が3以上であるかどうかが判定されてもよく(占有点または非占有点の例は、各円が整数の画素を表す占有マップ例1800を示す図18で強調表示されている)、4つの点の間の三角形の接続性は特定の規則によって推論されることができる。例えば、図17の例1700に示されるように、示された例(2)、(3)、(4)、および(4)である4点のうち3点が占有されていると判定された場合、それらの点を直接相互接続して、例のように三角形を形成することができ、他方、4点がすべて占有されていると判定された場合、それらの点は、図17の例(1)に示されるように2つの三角形を形成するために使用される。異なる数の近傍点に異なる規則が適用されることができることに留意されたい。このプロセスは、図18にさらに示されるように、多くの点にわたって実施され得る。この実施形態では、再構築されたメッシュは、図17のような三角形メッシュであり、少なくとも図18の内部の規則的な三角形メッシュのように、そのような規則に従ってシグナリングされないと判定され得ず、代わりに、個々のシグナリングではなく推論によって、および個別にシグナリングされる周囲の不規則な三角形として、コーディングおよびデコードされ得る。
また、複雑さおよびデータ処理をさらに低減する試みにおいて、図18に示されているそのような規則的な内部の三角形の四角形メッシュは、図17の例(1)のそのような四角形メッシュとして推論されてもよく、それによって、内部の規則的な三角形を推論することによる複雑さの程度さえも低減し、代わりに低減された数の内部の規則的な四角形メッシュを推論するものとする。
例示的な実施形態によれば、図17の例(1)のように、4つの近傍点がすべて占有されていると判定された場合、四角形メッシュが再構築され得る。
上記の説明から推定すると、図18に示されるように、例1800の再構築されたメッシュはハイブリッド型であり得ることが示されており、すなわち、メッシュフレームのいくつかの領域は三角形メッシュを生成し、他の領域は四角形メッシュを生成し、前記三角形メッシュのいくつかは、その中の他の三角形メッシュと比較して規則的であってもよく、いくつかは、境界のうちの1つであるが、境界のそのようなメッシュの必ずしもすべてではないように、不規則であり得る。
例示的な実施形態によれば、そのような接続性タイプは、シーケンスヘッダやスライスヘッダなどの高レベルシンタックスでシグナリングされることができる。
上述したように、不規則な形状の三角形メッシュのように、明示的にシグナリングすることによって接続性情報が再構築されることもできる。すなわち、暗黙のルールによってポリゴンを復元することができないと判定された場合、エンコーダはビットストリーム内の接続性情報をシグナリングすることができる。また、例示的な実施形態によれば、そのような明示的なシグナリングのオーバーヘッドは、ポリゴンの境界に応じて低減され得る。例えば、図18の例1800に示されるように、三角形の接続性情報は、推論され得る図17の規則的な例2400などの暗黙の規則と、少なくとも図18のメッシュ境界に示された不規則な形状のポリゴンのうちの1つの明示的なシグナリングとの両方によって再構築されるようにシグナリングされる。
実施形態によれば、境界頂点とサンプリングされた位置との間の接続性情報のみがシグナリングされるように決定され、サンプリングされた位置自体の間の接続性情報が推論される。
また、実施形態のいずれかにおいて、接続性情報は、あるメッシュから別のメッシュへの(予測としての)推測された接続性との差のみがビットストリームでシグナリングされ得るように、予測によってシグナリングされ得る。
注記として、推測された三角形の向き(三角形ごとに時計回りまたは反時計回りに推測されるなど)は、シーケンスヘッダやスライスヘッダなどの高レベルシンタックスですべてのチャートに対してシグナリングされるか、または例示的な実施形態によるエンコーダおよびデコーダによって固定(想定)されることができる。推測された三角形の向きは、チャートごとに異なってシグナリングされることもできる。
さらなる注記として、任意の再構築されたメッシュは、元のメッシュとは異なる接続性を有し得る。例えば、元のメッシュは三角形メッシュであってもよく、再構築されたメッシュはポリゴンメッシュ(例えば、クワッドメッシュ)であってもよい。
例示的な実施形態によれば、任意のベース頂点の接続性情報はシグナリングされなくてもよく、代わりに、ベース頂点間の辺は、エンコーダ側とデコーダ側の両方で同じアルゴリズムを使用して導出されてもよい。例えば、例1800の最も下の頂点がどのようにしてすべて占有されているかを参照されたい、それによって、コーディングは、したがってそのような頂点がベースとして占有されていると判定することによってそのような情報を利用することができ、それによって、後に、いずれかのベース頂点の接続性情報がシグナリングされなくてもよく、代わりに、ベース頂点間の辺が、エンコーダ側とデコーダ側の両方で同じアルゴリズムを使用して導出され得るように推論する。また、例示的な実施形態によれば、追加のメッシュ頂点の予測された頂点の補間は、ベースメッシュの導出された辺に基づいてもよい。
例示的な実施形態によれば、ベース頂点の接続性情報がシグナリングされるべきか導出されるべきかをシグナリングするためにフラグが使用されてもよく、そのようなフラグを、シーケンスレベルやフレームレベルなど、ビットストリームの異なるレベルでシグナリングされることができる。
例示的な実施形態によれば、ベース頂点間の辺は、エンコーダ側とデコーダ側の両方で同じアルゴリズムを使用して最初に導出される。次いで、ベースメッシュ頂点の元の接続性と比較して、導出された辺と実際の辺との間の差がシグナリングされる。したがって、差をデコードした後、ベース頂点の元の接続性が復元されることができる。
一例では、導出された辺について、元の辺と比較したときに誤っていると判定された場合、そのような情報は、(この辺を形成する頂点の対を示すことによって)ビットストリームでシグナリングされてもよく、元の辺については、導出されない場合、(この辺を形成する頂点の対を示すことによって)ビットストリームでシグナリングされ得る。さらに、境界辺上の接続性および境界辺を含む頂点補間は、内部頂点および辺とは別に行われてもよい。
したがって、本明細書に記載の例示的な実施形態によって、上記で指摘した技術的問題は、これらの技術的解決策の1つまたは複数によって有利に改善され得る。例えば、動的メッシュシーケンスは、経時的に変化するかなりの量の情報で構成され得るので、大量のデータを必要とする場合があり、したがって本明細書に記載の例示的な実施形態は、そのようなコンテンツを記憶して伝送するための少なくとも効率的な圧縮技術を表す。
上述の実施形態は、インスタンスベースのメッシュコーディングにさらに適用されてもよく、インスタンスは、オブジェクトのメッシュまたはオブジェクトの一部であってもよい。例えば、図21の図示例2100はメッシュ例2801を示し、様々なインスタンス2802(カップのメッシュを表す)、2803(スプーンのメッシュを表す)、および2804(プレートのメッシュを表す)が存在し、それぞれ分離およびコーディングされ得る。また、インスタンス2801、2802、2803、および2804のそれぞれは、以下でさらに説明するバウンディングボックスのそれぞれに示されているが、注記として、インスタンス2801は「メッシュベースのバウンディングボックス」によって境界付けられて示され得ると考えられてもよく、インスタンス2802、2803、および2804の各々は、「インスタンスベースのバウンディングボックス」のそれぞれによるバウンディングとして示されていると考えられ得る。
例示的な実施形態によれば、提案された方法は、別々に使用されてもよいし、任意の順序で組み合わされてもよい。提案された方法は、任意のポリゴンメッシュに使用されてもよいが、様々な実施形態の実証には三角形メッシュのみが使用されていてもよい。上述したように、入力メッシュは1つまたは複数のインスタンスを含んでもよく、サブメッシュは1つまたは複数のインスタンスを有する入力メッシュの一部であり、複数のインスタンスがグループ化されてサブメッシュを形成することができると仮定される。
その観点から、図20は、所与の入力ビット深度(そのビット深度は「QP」と呼ばれてもよい)で異なるオブジェクトまたは部分を別々に量子化することが提案されている例2000を示す。例えば、2701で、1つまたは複数の入力メッシュが取得され、各々が複数のサブメッシュに分離され得る。サブメッシュは、オブジェクト、オブジェクトのインスタンス、またはセグメント化された領域とすることができ、例示的な実施形態によれば、S2702で独立して量子化される。
例示的な実施形態によれば、(x,y,z)座標にm個の点を有するメッシュMは、S2702でQPビット深度によって量子化され得る。すべての3次元(x,y,z)の量子化ステップサイズは、すべての次元におけるバウンディングボックスの最大長さに基づいて決定されてもよく、dbbox>0である。また、S2703で識別される以下のようなメッシュ内のすべてのオブジェクトに対して、S2704で同じ量子化ステップサイズが適用されてもよく、
そのスカラー量子化は、i番目の座標におけるj番目の点aijに対して、以下のように適用されてもよく、
ここで、θQP=0.5は、量子化のためのオフセットパラメータである。θiは、i番目の次元におけるMのメッシュの最小座標である。記法
は、床丸め演算子を表す。また、逆量子化された座標は、以下のように均一な逆量子化を用いて計算されてもよく、
量子化の平均二乗誤差を、
とする。
しかしながら、複雑なシーンでは、最大のオブジェクトは、比較的多くの場合単純であってもよく、より高い量子化ステップサイズを許容することができる背景である。一方、主要なオブジェクトは、より小規模であり、以下でさらに説明される様々な実施形態によって説明され得る巨大な量子化誤差を被る。
したがって、図22の例2200に示されるように、入力メッシュのバウンディングボックスdbboxの最大長は常に、以下のように、各インスタンス
のバウンディングボックスの最大長以上に設定されてもよく、
ここで、
は入力メッシュ内のすべてのインスタンスまたはセグメント化の集合である。
所与のビット深度QPにおいて、インスタンス2802(カップのメッシュを表す)、2803(スプーンのメッシュを表す)、および2804(プレートのメッシュを表す)の各インスタンスの量子化ステップサイズは、常に、
を満たすメッシュベースの量子化ステップサイズ以下であり得る。
したがって、インスタンスごとの量子化誤差が小さくなり、全体の量子化誤差が小さくなる。
様々な実施形態によれば、ビット深度は、S2902において「サブメッシュ」と呼ばれる各インスタンス/領域に対して適応的に割り当てられてもよく、その特定のインスタンスの面密度に基づいて決定されてもよい。各サブメッシュは、それ自体がメッシュ内の各インスタンスを個別にシグナリングしていてもよいメッシュのボリュメトリックデータから取得されてもよく、各サブメッシュは、S2902においてインスタンスごとにそのメッシュから導出される。例えば、インスタンス2802、2803、および2804の各々は、S2904で、それ自体の特定の面密度または頂点の数に応じて、それ自体のそれぞれのビット深度を割り当てられてもよく、その中に上述のポリゴンのうちの1つまたは複数を形成する。一般に、S2903でその中のそのようなポリゴンの数などをカウントすることによって決定され得る各インスタンスが有する面が多いほど、S2702でそのインスタンスに適用される量子化は少なくなるはずである。例えば、メッシュMが与えられると、面の総数はnであり、k番目のサブメッシュに対応する面は以下を満たすnkであり、
ここで、Kはサブメッシュの総数である。サブメッシュ面密度は、
として定義され、
はk番目のサブメッシュのS2906で設定されたバウンディングボックスのボリュームを表す。次に、一例では、QPkと呼ばれるインスタンスkの適応量子化は、以下のように制限された範囲[QPmin,QPmax]で定義されることができる。
様々な実施形態によれば、メッシュは、ベースメッシュBおよびその対応する変位Dとして表され、S2702で異なるビット深度で量子化される。例えば、k番目のオブジェクトの場合、ビット深度ベースメッシュ
は式(3)から計算されることができ、その変位のビット深度
は、以下のように導出されることができ、
ここで、αk、βkはj番目のオブジェクトの適応スケーリングファクタおよびオフセットである。一例では、αk=1およびβk=2である。
様々な実施形態によれば、歪みを最小化することに基づく適応ビット深度パラメータが使用されてもよい。例えば、入力ビット深度QPが与えられると、量子化方法の平均二乗誤差(MSE)はε_QPであり、式(4)のようになり得る。各サブメッシュのMSEは、ε_QP^k=ω_k*ε_QP,∀k∈[1,...,K]として導出され、ここでω_k>0は重み係数である。一例では、ω_k=1∀kである。線形探索は、各サブメッシュに対して行われ、以下を満たすベースメッシュの最良のビット深度を見つける。
加えて、変位のための最良のビット深度はまた、以下を介して取得され得る。
例示的な実施形態によれば、S2907の信号でビットストリームを介してビット深度をシグナリングするなどによって、各オブジェクトの量子化のシグナリングがあってもよい。昇順のベース量子化ビット深度のセットは、
であってもよく、対応する変位量子化ビット深度は
である。この情報は、メッシュインスタンスパラメータシンタックスとしてシグナリングされ得る。シグナリングのために、b0ビットを使用して、バウンディングボックスオフセットθiをシグナリングし得る。シグナリングオーバーヘッドを回避するために、すべてのインスタンスは同じバウンディングボックスオフセットを共有し得る。数K-1はb1ビットに制限され、最大ベース量子化ビット深度はb2ビットであり、ベースと変位とのビット深度の最大差はb3ビットである。一例では、b1=4、b2=5、b3=4である。例示的なシンタックステーブルを以下に示し、インスタンスは量子化値の昇順に配列される。このようにして、各インスタンスのシグナリングされた量子化差は常に非負であり得る。より一般的な場合には、インスタンスは、インスタンスごとに量子化値によって配列されなくてもよく、絶対差に加えて、符号もシグナリングされてもよい。
ここで、
-u(n)はnビットを用いた符号なし整数であり、i(n)はnビットを用いた整数であり、mips_quant()は一連のシグナリングデータであり、
-mips_min_bbox[k]は、i番目の次元におけるバウンディングボックスの最小値であり、
-mips_num_instances_minus1は、メッシュ内のインスタンス-1の数であり、
-mips_base_bitdepth_minus1は、この順序での最初のインスタンスのビット深度であり、
-mips_base_quant[k]は、k+1番目とk番目のサブメッシュの量子化の差分である。量子化セットが昇順でソートされると、この数は常に非負である。
-mips_dist_quant[k]は、ベースメッシュのビット深度に対するk番目の量子化データである。
様々な実施形態によれば、シグナリングオーバーヘッドを低減するために、複数のインスタンスが同じビット深度でK個のグループにグループ化されてもよい。インスタンスは、K平均クラスタリングのような単純なクラスタリング方法で、バウンディングボックス
の最大距離に基づいてクラスタリングされてもよい。
しかしながら、そのような3Dシーンは、アセットを再利用する同様のメッシュ構造を有する複数のインスタンスからなり得ることが多いため、局所的特性を利用するだけでなく、例示的な実施形態によるインスタンス間の類似性を考慮することによって、さらなる改善が実現され得る。
例えば、図23は、冗長メッシュを見つけ、対応する変位をエンコードするために、インスタンスベースのマッチング予測(IMP)方法が使用される例示的なフローチャート2300を示しており、これは、インスタンスを有利に正規化してそれらの類似性を最大化してもよく、上述の実施形態のいずれかで使用され得る。
例えば、S2801で、入力メッシュが取得され、上述のように複数のサブメッシュにパーティショニングされ得る。サブメッシュは、例示的な実施形態によれば、個々のオブジェクトまたはオブジェクトの一部のインスタンスであり得る。
S2802で、単純なスケーリング特徴および類似性尺度を使用して、インスタンスから類似性グループへのグループ化があり得る。例えば、実施形態によれば、インスタンスは、過渡的なアセットのみが再利用され得るように整列および正規化され得る。スケールおよび向き情報は、IMPモードのチャネルを介してシグナリングされてもよく、m個のインスタンスを有する入力メッシュMが与えられると、i番目のインスタンスは、
の対応するバウンディングボックスを有し得る。よって、同じ比率のバウンディングボックスdx/dy、dx/dzを有する同様のインスタンスが、1つのアセットグループにグループ化され得る。加えて、同じグループの2つのインスタンス間のペアワイズd1PSNR(ピーク信号対雑音比)が閾値τより大きい場合、類似性を検証し、外れ値のインスタンスを除去するために適用され得る。例えば、閾値τ=150dBが使用されてもよく、合計で、MはS={S0,...,SK-1}としてK個のアセットグループを有し、|Sk|=mkであり、mkはk番目のアセットグループのインスタンスの数である。
例示的な実施形態によれば、S2803で、フラグの指示に応じて、IMPを使用してサイズが1より大きい、すなわちmk>1であるアセットグループ
のインスタンスをエンコードし得るようにコーディングを実施することがS2803で決定されてもよい。第1のインスタンスはエンコードされ、そのデコードされたバージョンはグループ内の残りのインスタンスのベースメッシュとして使用される。例えば、
フラグS2804に応じて、S2805におけるコーディングは、サブメッシュをサブビットストリームに独立してコーディングするようにシグナリングされ得る。各サブメッシュは、異なるコーディングパラメータを有するメッシュコーデックによってコーディングされることができる。各サブメッシュは異なるメッシュコーデックによってコーディングされることもでき、その場合、どのメッシュコーデックが使用されるかを示すコーデックインデックスがサブビットストリームのヘッダなどでシグナリングされる必要があることに留意されたい。例示的な実施形態によれば、サブメッシュのサブビットストリームは、データ依存性の問題なしに並列にエンコードおよびデコードされることができる。
S2804におけるフラグが代わりに依存コーディングを示す場合、S2806で、サブメッシュを依存的にコーディングするモードも示すように追加のフラグが考慮され得る。例えば、実施形態によれば、サブメッシュが、既にコーディングされている他のサブメッシュからの予測によってコーディングされることができる。予測インデックスは、どのサブメッシュが予測として使用されるかを示すようにコーディングされることができる。予測インデックスを、異なるレベルでシグナリングされることができる。
例えば、S2807で、サブメッシュ全体に対して1つの予測インデックスのみがコーディングされてもよく、その結果、現在のサブメッシュ内のすべての頂点は、例示的な実施形態によるインデックスによって示されるのと同じサブメッシュから予測される。
S2808で、各頂点が異なるサブメッシュから予測できるように、予測インデックスが現在のサブメッシュの各頂点についてシグナリングされ得る。予測インデックスは、予測コーディングによってもコーディングされることができ、頂点の予測インデックスは、近傍のコーディングされた頂点から予測されることができることに留意されたい。次に、例示的な実施形態によれば、予測インデックス残差は算術コーディングによってコーディングされることができる。
S2809において、予測インデックスは、頂点レベルとサブメッシュレベルとの間の中間レベル、例えば頂点グループレベルでシグナリングされてもよく、頂点のグループは同じ予測インデックスを共有する。なお、異なるグループの予測インデックスは、例示的な実施形態による予測コーディングによってコーディングされることも可能である。
次に、現在のサブメッシュの各頂点の予測インデックスが与えられると、各頂点は、図13、図14、および図15のいずれかで上述されたように、対応するサブメッシュ内の頂点から予測されることができる。例示的な実施形態によれば、剛体運動は、予測サブメッシュから現在のサブメッシュまで推定されてもよく、剛体運動のパラメータ(例えば、回転および並進パラメータ)がコーディングされることができる。次いで、予測サブメッシュに剛体運動を適用した後、変換された予測サブメッシュ内の対応する頂点の属性を減算することによって、現在の頂点の属性の残差が取得されることができる。頂点の属性は、ジオメトリ、色、法線、uv座標、接続性などを含むことができるが、これらに限定されない。次に、例示的な実施形態による算術コーディングによって残差情報がコーディングされることができる。
さらに、このようなコーディングは、サブメッシュごとの材料およびテクスチャ情報のコーディングに適用されてもよい。この情報は、周囲色、拡散色、鏡面反射色、鏡面反射ハイライトの焦点、ディゾルブの係数、照明モデル、テクスチャ画像IDなどを含むことができるが、必ずしもこれらに限定されない。
例示的な実施形態によれば、1つのサブメッシュは、1セットの材料およびテクスチャ情報のみを可能にし、そのような場合、この情報は、サブビットストリームのヘッダで単純にコーディングされることができる。
または、例示的な実施形態によれば、1つのサブメッシュは、材料およびテクスチャ情報の2つ以上のセットを有することができ、この場合、それらのセットは、サブビットストリームのヘッダでコーディングされることができる。異なるセット内のこれらのパラメータは、独立してまたは依存してコーディングされることができることに留意されたい。依存コーディングが適用される場合、予測が適用されることができ、代わりに材料パラメータの予測残差がコーディングされることができる。次いで、サブメッシュ内の各頂点について、この頂点にどの材料情報のセットが使用されるかを示すために材料IDがコーディングされることができる。例示的な実施形態によれば、冗長性を低減するために、コーディングされた近傍頂点から予測することによって材料ID(識別子)がコーディングされることができることに留意されたい。
したがって、本明細書の実施形態によれば、複雑なメッシュは、テクスチャマップを関連付けるために複数のインスタンスに関する情報を含み得ることが多く、その情報はエンコード時に利用可能であり得ることが実現されるので、各インスタンスは、本明細書の例示的な実施形態による3D設計において、アセットが、特に複雑なシーンの合成のために、モデルを設計する際のコストを削減するために頻繁に使用され得るので、3Dアセットとみなされ得る。例えば、3Dモデルは、スケール、向きなどの違いで修正されたテクスチャの有無にかかわらず再利用され得る。これは、上述した他の態様の中でも、メッシュがPCA(主成分分析)またはバイラテラル対称面に基づいて位置、サイズ、および向きに正規化され、それによってより効率的に検索され得るため、3Dオブジェクトのマッチングおよび検索に関連する問題に対処する。
前述した技術は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読媒体に物理的に記憶されたコンピュータソフトウェアとして、または具体的に構成される1つまたは複数のハードウェアプロセッサによって実装されることができる。例えば、図24は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム2400を示す。
コンピュータソフトウェアは、コンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによって、直接に、または解釈、マイクロコードの実行などを介して実行できる命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどの機構の適用を受け得る、任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされることができる。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはコンピュータの構成要素上で実行されることができる。
コンピュータシステム2400に関して図24に示される構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図していない。構成要素の構成は、コンピュータシステム2400の例示的な実施形態に示された構成要素のいずれか1つまたは組合せに関するいかなる依存性または要件も有すると解釈されるべきでない。
コンピュータシステム2400は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を介した、1人または複数の人間ユーザによる入力に応答し得る。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用されることができる。
入力ヒューマンインターフェースデバイスは、キーボード2401、マウス2402、トラックパッド2403、タッチスクリーン2410、ジョイスティック2405、マイクロフォン2406、スキャナ2408、カメラ2407のうちの1つまたは複数(それぞれの1つのみが図示される)を含み得る。
コンピュータシステム2400はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味を介して、1人または複数の人間のユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン2410、またはジョイスティック2405による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、オーディオ出力デバイス(スピーカ2409、ヘッドフォン(図示せず)など)、視覚的出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン2410などであり、それぞれにタッチスクリーン入力機能を備えたものと備えていないものがあり、それぞれに触覚フィードバック機能を備えたものと備えていないものがあり、その一部は、ステレオグラフィック出力、仮想現実の眼鏡(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段を介して二次元の視覚的出力、または三次元を超える出力を出力することが可能であり得る)、ならびにプリンタ(図示せず)を含み得る。
コンピュータシステム2400はまた、人間がアクセス可能なストレージデバイスと、それらに関連付けられた媒体、例えば、CD/DVD2411または同様の媒体を備えたCD/DVD ROM/RW2420、サムドライブ2422、取り外し可能なハードドライブまたはソリッドステートドライブ2423、テープおよびフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスを含めた光学媒体などを含むこともできる。
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的信号を包含しないことを理解すべきである。
コンピュータシステム2400は、1つまたは複数の通信ネットワーク2498へのインターフェース2499も含むことができる。ネットワーク2498は、例えば、無線、有線、光とすることができる。ネットワーク2498は、さらに、ローカル、広域、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などとすることができる。ネットワーク2498の例は、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波ブロードキャストTVを含むTVの有線または無線の広域デジタルネットワーク、CANBusを含む車両および産業用などを含む。特定のネットワーク2498は、一般に、特定の汎用データポートまたは周辺バス(2450および2451)(例えば、コンピュータシステム2400のUSBポートなど)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般に、後述するようにシステムバスへの取り付けによってコンピュータシステム2400のコアに組み込まれる(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワーク2498のいずれかを使用して、コンピュータシステム2400は他のエンティティと通信することができる。そのような通信は、単方向の受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルエリアまたは広域デジタルネットワークを使用する他のコンピュータシステムへの通信であり得る。特定のプロトコルおよびプロトコルスタックは、上述したように、それらのネットワークおよびネットワークインターフェースの各々で使用されることができる。
前述のヒューマンインターフェースデバイス、人間がアクセス可能なストレージデバイス、およびネットワークインターフェースを、コンピュータシステム2400のコア2440に取り付けることができる。
コア2440は、1つまたは複数の中央処理装置(CPU)2441、グラフィック処理装置(GPU)2442、グラフィックアダプタ2417、フィールドプログラマブルゲートエリア(FPGA)2443の形式の専用のプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ2444などを含むことができる。これらのデバイスは、読み取り専用メモリ(ROM)2445、ランダムアクセスメモリ2446、内部のユーザアクセス不可能なハードドライブ、SSDなどの内部大容量ストレージ2447とともに、システムバス2448を通じて接続され得る。いくつかのコンピュータシステムでは、システムバス2448は、追加のCPU、GPUなどによる拡張を可能にするために1つまたは複数の物理プラグの形式でアクセス可能とすることができる。周辺デバイスは、コアのシステムバス2448に直接取り付けられることも、周辺バス2449を介して取り付けられることもできる。周辺バス用のアーキテクチャは、PCI、USBなどを含む。
CPU2441、GPU2442、FPGA2443、およびアクセラレータ2444は、組み合わされて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。このコンピュータコードは、ROM2445またはRAM2446に記憶されることができる。過渡的なデータはRAM2446に記憶されることもでき、一方永続的なデータを、例えば、内部大容量ストレージ2447に記憶されることができる。1つまたは複数のCPU2441、GPU2442、大容量ストレージ2447、ROM2445、RAM2446などと密接に関連付けられることができるキャッシュメモリを使用することにより、メモリデバイスのいずれかへの高速記憶および高速取り出しを可能にすることできる。
コンピュータ可読媒体は、様々なコンピュータ実装動作を実施するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものとすることができ、またはコンピュータソフトウェア技術の当業者に周知の利用可能な種類のものとすることができる。
限定ではなく例として、アーキテクチャを有するコンピュータシステム2400、具体的にはコア2440は、(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサが1つまたは複数の有形のコンピュータ可読媒体において具現化されたソフトウェアを実行した結果として機能を提供することができる。このようなコンピュータ可読媒体は、前述のようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ2447またはROM2445などの非一時的な性質のものであるコア2440の特定のストレージと関連付けられた媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶され、コア2440によって実行されることができる。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア2440、および具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM2446に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、ソフトウェアの代わりに、またはソフトウェアとともに動作して、本明細書に記載される特定のプロセスまたは特定のプロセスの特定の部分を実行することができる、回路(例えば、アクセラレータ2444)におけるハードワイヤードの、または他の方法で具現化された論理の結果として機能を提供することもできる。ソフトウェアへの言及は、必要に応じて、論理を包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを格納する回路(集積回路(IC)など)、実行のための論理を具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアとの任意の適切な組合せを包含する。
本開示はいくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか、または記載されていないが、本開示の原理を具体化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案できることが理解されよう。