以下で説明する提案された特徴は、別々に使用されてもよいし、任意の順序で組み合わされてもよい。さらに、実施形態は、処理回路(例えば、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などの、ディスプレイを制御するための潜在的な情報を含む。(複数の)ディスプレイのための制御情報は、補助拡張情報(Supplementary Enhancement Information)(SEIメッセージ)、又は映像有用性情報(Video Usability Information、VUI)パラメータ集合フラグメント(図示せず)の形態にされてもよい。パーサ304は、受信したコーディング済みビデオシーケンスを構文解析/エントロピー復号してもよい。コーディング済みビデオシーケンスのコーディングは、ビデオコーディング技術または標準規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存性を伴うまたは伴わない算術コーディングなどを含む、当業者に周知の原理に従うことができる。パーサ304は、コーディング済みビデオシーケンスから、そのグループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャのグループ(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などの標準規格に文書化され得る所定のビデオ圧縮技術に従って復号動作を行ってよい。コーディング済みビデオシーケンスは、ビデオ圧縮技術文書または規格、具体的にはその中のプロファイル文書に指定されるように、ビデオ圧縮技術または標準規格のシンタックスに忠実であるという意味において、使用されているビデオ圧縮技術または標準規格によって指定されたシンタックスに準拠してよい。また、コンプライアンスのために必要なのは、コーディング済みビデオシーケンスの複雑さが、ビデオ圧縮技術または標準規格のレベルによって定義された範囲内にあることであり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、(例えば、毎秒メガサンプル単位で測定された)最大再構成サンプルレート、最大参照ピクチャサイズなどを制限する。レベルによって設けられる限界は、いくつかの例では、Hypothetical Reference Decoder(HRD)の仕様と、コーディング済みビデオシーケンスでシグナリングされるHRDバッファ管理用のメタデータとにより、さらに制限される場合がある。
一実施形態では、受信器302は、符号化されたビデオと共に追加の(冗長な)データを受信し得る。追加のデータは、コーディング済みビデオシーケンスの一部として含まれ得る。追加のデータは、データを適切に復号するため、および/または元のビデオデータをより正確に再構築するために、ビデオデコーダ300によって使用され得る。追加のデータは、例えば、時間層、空間層、または信号対雑音比(SNR)強化層、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形式にすることができる。
図4は、本開示の一実施形態によるビデオエンコーダ400の機能ブロック図であり得る。
エンコーダ400は、エンコーダ400によってコーディングされるべきビデオ画像を取り込み得るビデオソース401(エンコーダの一部ではない)からビデオサンプルを受信し得る。
ビデオソース401は、エンコーダ(303)によってコーディングされるソース・ビデオ・シーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)であり得、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)および適切なサンプリング構造(例えば、Y CrCB4:2:0、Y CrCB4:4:4)であり得るデジタルビデオ・サンプル・ストリームの形態で提供し得る。メディア供給システムでは、ビデオソース401は、これまでに準備されたビデオを格納する記憶装置であり得る。ビデオ会議システムでは、ビデオソース401は、ローカル画像情報をビデオシーケンスとして取り込むカメラであり得る。ビデオデータは、順番に見たときに動きを与える複数の個別のピクチャとして提供され得る。ピクチャ自体は、画素の空間配列として編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
一実施形態によれば、エンコーダ400は、リアルタイムで、または用途によって必要とされる他の任意の時間制約下で、ソース・ビデオ・シーケンスのピクチャをコーディング済みビデオシーケンス410にコーディングおよび圧縮し得る。適切なコーディング速度にすることが、コントローラ402の1つの機能である。コントローラは、以下に説明するように他の機能ユニットを制御し、これらのユニットに機能的に結合される。分かりやすくするために、結合は描かれていない。コントローラによって設定されるパラメータには、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化手法のラムダ値など)、ピクチャサイズ、ピクチャのグループ(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つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよび復号され得るものであり得る。同様に、複数の予測ピクチャは、単一のブロックの再構築のために3つ以上の参照ピクチャおよび関連メタデータを使用することができる。
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ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度仮想現実(VR 360)ストリーミングを可能にし得る全方向メディア・アプリケーション・フォーマット(OMAF)における例示的なビューポート依存処理の簡略化されたブロックスタイルワークフロー図500を示している。
取得ブロック501において、画像データがVR360内のシーンを表すことができる場合には、同じ時間インスタンスの複数の画像および音声のデータなどのビデオデータAが取得される。処理ブロック503において、同じ時間インスタンスの画像Biは、スティッチングされること、1つまたは複数の仮想現実(VR)角度または他の角度/視点に関して投影された画像にマッピングされること、および領域ごとにパックされることのうちの1つまたは複数によって処理される。さらに、そのような処理された情報および他の情報のいずれかを示すメタデータを作成して、配信およびレンダリング処理を支援することができる。
データDに関して、画像符号化ブロック505において、投影されたピクチャはデータEiに符号化され、メディアファイルに構成され、ビューポート非依存ストリーミングにおいて、ビデオ符号化ブロック504において、ビデオピクチャは、例えば単層ビットストリームとしてデータEvとして符号化され、データBaに関して、音声データはまた、音声符号化ブロック502においてデータEaに符号化されてもよい。
データEa、Ev、およびEi、全コーディング済みビットストリームFiおよび/またはFは、(コンテンツ配信ネットワーク(CDN)/クラウド)サーバに格納されてよく、典型的には、配信ブロック507などで、またはそうでなければOMAFプレーヤ520に完全に送信されてよく、デコーダによって完全に復号され得ることで、現在のビューポートに対応する復号されたピクチャの少なくとも特定の領域が、様々なメタデータ、ファイル再生、および配向/ビューポートメタデータ、例えば、そのデバイスのビューポート仕様に関してVR画像デバイスを通してユーザが見ている可能性のある角度などに関して、ヘッド/アイトラッキングブロック508から、表示ブロック516においてユーザにレンダリングされる。VR360の明確な特徴は、任意の特定の時間にビューポートのみが表示され得ることであり、そのような特徴を利用して、ユーザのビューポート(または推奨されたビューポート時限メタデータなどの任意の他の基準)に応じた選択的配信により、全方向ビデオシステムの性能を向上させることができることである。例えば、ビューポート依存型配信は、例示的な実施形態によるタイルベースのビデオコーディングによって可能にすることができる。
上述した符号化ブロックでのように、例示的な実施形態によるOMAFプレーヤ520は、データF’および/またはF’i ならびにメタデータのうちの1つまたは複数のファイル/セグメントカプセル化解除に関してそのような符号化の1つまたは複数のファセットを同様に逆転させ、音声復号ブロック510において音声データE’i、ビデオ復号ブロック513においてビデオデータE’v、および画像復号ブロック514において画像データE’iを復号して、音声レンダリングブロック511におけるデータB’aの音声レンダリングおよび画像レンダリングブロック515におけるデータD’の画像レンダリングを進めて、配向/ビューポートメタデータなどの様々なメタデータに従ってVR360フォーマットで、表示ブロック516において表示データA’iを出力し、スピーカ/ヘッドフォンブロック512において音声データA’sを出力することができる。様々なメタデータは、OMAFプレーヤ520のユーザによって、またはユーザのために選択され得る様々なトラック、言語、品質、ビューに応じてデータ復号およびレンダリングプロセスのうちの1つに影響を及ぼす可能性があり、本明細書に記載される処理の順序は、例示的な実施形態のために提示されており、他の例示的な実施形態による他の順序で実施される場合もあることを理解されたい。
図6は、6自由度メディアの取り込み/生成/(デ)コーディング/レンダリング/表示に関する点群データ(本明細書では「V-PCC」)の視野位置および角度依存処理を有する(コーディング済み)点群データの簡略化されたブロックスタイルコンテンツフロープロセス図600を示す。記載された特徴は、別々に使用されてもよく、または任意の順序で組み合わされてもよく、中でもとりわけ例示されるような符号化および復号などの要素は、処理回路(例えば、1つまたは複数のプロセッサ、あるいは1つまたは複数の集積回路)によって実装されてもよく、1つまたは複数のプロセッサは、例示的な実施形態による非一時的コンピュータ可読媒体に記憶されたプログラムを実行してもよいことを理解されたい。
図600は、V-PCCによるコーディング済み点群データのストリーミングのための例示的な実施形態を示す。
ボリュームデータ取得ブロック601では、現実世界の視覚的シーンまたはコンピュータ生成の視覚的シーン(またはそれらの組み合わせ)が、一セットのカメラデバイスによって取り込まれてよい、あるいはコンピュータによってボリュームデータとして合成されてもよく、任意のフォーマットを有し得るボリュームデータは、点群ブロック602への変換における画像処理を介して、(量子化された)点群データフォーマットに変換されてよい。例えば、ボリュームデータからのデータは、例示的な実施形態によれば、ボリュームデータおよび任意の関連データから以下に説明する値の1つまたは複数を所望の点群フォーマットに引き寄せることによって点群の点の1つに変換された領域データによる領域データであってもよい。例示的な実施形態によれば、ボリュームデータは、例えば3Dデータセットの2D投影を投影され得るスライスなどの2D画像の3Dデータセットであってもよい。例示的な実施形態によれば、点群データフォーマットは、1つまたは複数の様々な空間内のデータ点の表現を含み、ボリュームデータを表すために使用されてよく、時間的冗長性などに関してサンプリングおよびデータ圧縮に関する改善を提供することができ、例えば、x、y、zのフォーマットの点群データは、クラウドデータの複数の点の各点において、色値(例えば、RGBなど)、輝度、強度などを表し、プログレッシブ復号、多角形メッシュ、直接レンダリング、2D四分木データの八分木3D表現と共に使用することができる。
画像への投影ブロック603において、取得された点群データは、2D画像上へ投影され、かつビデオベースの点群コーディング(V-PCC)を用いて画像/ビデオピクチャとして符号化されてもよい。投影された点群データは、属性、ジオメトリ、占有マップ、および例えばとりわけ、ペインタのアルゴリズム、レイキャスティングアルゴリズム、(3D)二値空間パーティションアルゴリズムなどを用いた点群データ再構成に使用される他のメタデータで構成されてよい。
一方、シーン生成器ブロック609において、シーン生成器は、例えばディレクタの意図またはユーザの好みにより、6自由度(DoF)メディアをレンダリングおよび表示するために使用されるべきいくつかのメタデータを生成してもよい。そのような6 DoFメディアは、点群コーディング済みデータ内の、または少なくともそれに応じた仮想体験に対する前後、上下、および左右の移動を可能にする追加の次元に加えて、3D軸X、Y、Z上の回転変化からのシーンの360 VRのような3Dビューを含んでもよい。シーン記述メタデータは、コーディング済み点群データおよびVR360、明視野、音声などを含む他のメディアデータから構成される1つまたは複数のシーンを定義し、図6および関連する記述に示すように、1つまたは複数のクラウドサーバおよび/またはファイル/セグメントカプセル化/カプセル化解除処理に提供されてよい。
上述した(また理解されるように、音声符号化も上述のように提供されてよい)ビデオ符号化および画像符号化と同様のビデオ符号化ブロック604および画像符号化ブロック605の後、ファイル/セグメントカプセル化ブロック606は、コーディング済み点群データが、ファイル再生のためのメディアファイルに、あるいは初期化セグメントと、1つまたは複数のビデオコンテナフォーマットなどの特定のメディアコンテナファイルフォーマットに従ってストリーミングするためのメディアセグメントとのシーケンスに構成されるように処理し、中でもとりわけそのような記述は例示的な実施形態を表すなど、後述するDASHに関して使用されてよい。ファイルコンテナはまた、シーン生成器ブロック1109からなどのシーン記述メタデータをファイルまたはセグメントに含んでもよい。
例示的な実施形態によれば、ファイルは、そのようなファイルがユーザまたは作成者の入力に応じて要求に応じて送信され得るように、シーン記述メタデータに応じてカプセル化されて、少なくとも1つの視野位置およびその視野位置における少なくとも1つまたは複数の角度ビューをそれぞれ6DoFメディアのうちの1つまたは複数の時間に含む。さらに、例示的な実施形態によれば、そのようなファイルのセグメントは、そのようなファイルの1つまたは複数の部分、例えば、単一の視点および1つまたは複数の時点におけるその場所での角度を示す6DoFメディアの一部を含んでもよく、しかしながら、これらは単なる例示的な実施形態であり、ネットワーク、ユーザ、作成者の能力および入力などの様々な条件に応じて変更されてもよい。
例示的な実施形態によれば、点群データは、ビデオ符号化ブロック604およびビデオ符号化ブロック605のうちの1つまたは複数などにおいて独立してコーディングされる複数の2D/3D領域に分割される。次に、点群データの各独立してコーディングされたパーティションは、ファイルおよび/またはセグメント内のトラックとしてファイル/セグメントカプセル化ブロック606でカプセル化されてよい。例示的な実施形態によれば、各点群トラックおよび/またはメタデータトラックは、視野位置/角度依存処理のためのいくつかの有用なメタデータを含んでもよい。
例示的な実施形態によれば、視野位置/角度依存処理に有用な、ファイル/セグメントカプセル化ブロックに関してカプセル化されたファイルおよび/またはセグメントに含まれるなどのメタデータは、以下の、インデックスを有する2D/3Dパーティションのレイアウト情報、3Dボリュームパーティションを1つまたは複数の2Dパーティション(例えば、タイル/タイルグループ/スライス/サブピクチャのいずれか)に関連付ける(動的)マッピング情報、6DoF座標系上の各3Dパーティションの3D位置、
3Dボリュームパーティションに対応する代表的視野位置/角度リスト、選択された視野位置/角度リストに対応する、2D/3Dパーティションのインデックス、各2D/3Dパーティションの品質(ランク)情報、および、例えば各視野位置/角度に応じた各2D/3Dパーティションのレンダリング情報のうちの1つまたは複数を含む。V-PCCプレーヤのユーザによって、またはV-PCCプレーヤのユーザのためにコンテンツ作成者によって指示されるなど、要求されたときにそのようなメタデータを呼び出すことにより、そのようなメタデータに関して所望される6DoFメディアの特定の部分に関してより効率的な処理を可能にすることができ、それにより、V-PCCプレーヤは、そのメディアの未使用部分を配信するのではなく、他の部分よりも6DoFメディアの部分にフォーカスされた高品質の画像を配信することができる。
ファイル/セグメントカプセル化ブロック606から、ファイルまたはファイルの1つまたは複数のセグメントは、配信機構(例えば、HTTP上のダイナミック・アダプティブ・ストリーミング(DASH))を使用して、V-PCCプレーヤ625およびクラウドサーバブロック607などのクラウドサーバのいずれかに直接配信されてよく、クラウドサーバは、ファイルから1つまたは複数のトラックおよび/または1つまたは複数の特定の2D/3Dパーティションを抽出することができ、複数のコーディング済み点群データを1つのデータにマージしてもよい。
位置/視野角追跡ブロック608などのデータによれば、現在の視野位置および角度がクライアントシステムにおいて6DoF座標系で定義されている場合、クラウドサーバブロック607において、視野位置/角度メタデータは、ファイル/セグメントカプセル化ブロック606から配信されるか、またはクラウドサーバに既にあるファイルまたはセグメントから他の方法で処理されてもよく、その結果、クラウドサーバは、例えばV-PCCプレーヤ625を有するクライアントシステムからのメタデータに応じて、適切なパーティションをストアファイルから抽出し、それらを(必要に応じて)マージすることができ、抽出されたデータは、ファイルまたはセグメントとしてクライアントに配信することができる。
そのようなデータに関して、ファイル/セグメントカプセル化解除ブロック615では、ファイル・デカプセル化器が、ファイルまたは受信されたセグメントを処理し、コーディング済みビットストリームを抽出し、メタデータを解析し、ビデオ復号および画像復号ブロック610および611では、コーディング済み点群データが、次いで、点群再構築ブロック612で点群データに復号および再構築され、再構築された点群データは、表示ブロック614で表示することができる、および/またはシーン生成器ブロック609に従って、シーン記述データに関してシーン構成ブロック613における1つまたは複数の様々なシーン記述に応じて最初に構成されてもよい。
上記を考慮して、そのような例示的なV-PCCフローは、複数の2D/3D領域についての記載された分割能力、単一の適合コーディング済みビデオビットストリームへのコーディング済み2D/3Dパーティションの圧縮ドメインアセンブリの能力、および適合コーディング済みビットストリームへのコーディング済みピクチャのコーディング済み2D/3Dのビットストリーム抽出能力のうちの1つまたは複数を含むV-PCC規格に対する利点を表し、そのようなV-PCCシステムサポートは、上述のメタデータのうちの1つまたは複数を搬送するメタデータを収容する機構をサポートするためにVVCビットストリームのためのコンテナ形成を含むことによってさらに改善される。
その観点から、および以下でさらに説明する例示的な実施形態によれば、「メッシュ」という用語は、体積測定対象物の表面を表す1つまたは複数の多角形の構成を示す。各多角形は、3D空間内のその頂点と、接続情報と呼ばれる、頂点がどのように接続されているかの情報とによって定義される。任意選択で、色、法線などの頂点属性をメッシュ頂点に関連付けることができる。属性はまた、メッシュを2D属性マップでパラメトライズするマッピング情報を利用することによって、メッシュの表面に関連付けられてよい。そのようなマッピングは、UV座標またはテクスチャ座標と呼ばれ、メッシュ頂点に関連付けられるパラメトリック座標のセットによって定義され得る。2D属性マップは、テクスチャ、法線、変位などの高解像度属性情報を記憶するために使用される。かかる情報は、例示の実施形態によるテクスチャマッピングおよびシェーディングなどの種々の目的のために使用され得る。
それにも関わらず、動的メッシュシーケンスは、これが経時的に変化するかなりの量の情報で構成され得るので、大量のデータを必要とする場合がある。例えば、そのメッシュの情報がフレームごとに変化しない「静的メッシュ」または「静的メッシュシーケンス」とは対照的に、「動的メッシュ」または「動的メッシュシーケンス」は、そのメッシュによって表される頂点のうちの1つがフレームごとに変化する動きを示す。したがって、そのようなコンテンツを保存し、かつ送信するために効率的な圧縮技術が必要となる。メッシュ圧縮標準IC、MESHGRID、FAMCは、一定の接続性および時変ジオメトリおよび頂点属性を有する動的メッシュに対処するためにMPEGによって以前に開発された。しかしながら、これらの規格は、時変属性マップおよび接続性情報を考慮に入れない。DCC(デジタルコンテンツ作成)ツールは、通常、そのような動的メッシュを生成する。これに対応して、特にリアルタイム制約下で、定量的取得技術が一定の接続性動的メッシュを生成することは困難である。この種のコンテンツは、既存の規格ではサポートされていない。本明細書の例示的な実施形態によれば、時変接続情報および任意選択的に時変属性マップを有する動的メッシュを直接処理するための新しいメッシュ圧縮規格の態様が記載されており、この規格は、リアルタイム通信、ストレージ、自由視点ビデオ、ARおよびVRなどの様々なアプリケーションの非可逆および可逆圧縮を対象とする。ランダムアクセスやスケーラブル/プログレッシブコーディングなどの機能も考えられる。
図7は、2Dアトラスサンプリングベースの方法などのための1つの動的メッシュ圧縮の例示的なフレームワーク700を表す。入力メッシュ701の各フレームは、追跡、再メッシュ化、パラメータ化、ボクセル化などの一連の動作によって前処理することができる。なお、これらの動作はエンコーダのみとすることができ、これは、それらが復号化プロセスの一部ではない可能性があることを意味し、そのような可能性は、エンコーダのみに0を示し、他に1を示すなどのフラグによってメタデータで通知することができる。その後、2D UVアトラス702を有するメッシュを取得することができ、メッシュの各頂点は、2Dアトラス上の1つまたは複数の関連するUV座標を有する。次いで、メッシュは、2Dアトラス上でサンプリングすることによって、ジオメトリマップおよび属性マップを含む複数のマップに変換することができる。次に、これらの2Dマップは、HEVC、VVC、AV1、AVS3などのビデオ/画像コーデックによってコーディングすることができる。デコーダ703側では、復号された2Dマップからメッシュを再構築することができる。任意の後処理およびフィルタリングを再構築されたメッシュ704に適用することもできる。3Dメッシュ再構成の目的で、他のメタデータがデコーダ側にシグナリングされる場合があることに留意されたい。境界頂点のuvおよびxyz座標を含むチャート境界情報は、ビットストリーム内で予測、量子化、およびエントロピーコーディングすることができることに留意されたい。量子化ステップサイズは、品質とビットレートとの間のトレードオフのためにエンコーダ側で構成することができる。
いくつかの実装形態では、3Dメッシュはいくつかのセグメント(またはパッチ/チャート)に分割することができ、1つまたは複数の3Dメッシュセグメントは、例示的な実施形態による「3Dメッシュ」であるとみなされてよい。各セグメントは、それらのジオメトリ、属性、および接続性情報と関連付けられた接続頂点のセットから構成される。図8のボリュームデータの例800に示すように、上述の2D UVアトラス702ブロックなどの、3Dメッシュセグメントから2DチャートにマッピングするUVパラメータ化プロセス802は、1つまたは複数のメッシュセグメント801を2D UVアトラス804内の2Dチャート803にマッピングする。メッシュセグメント内の各頂点(vn)には、2D UVアトラス内の2D UV座標が割り当てられる。2Dチャート内の頂点(vn)は、それらの3D対応物として接続された成分を形成することに留意されたい。各頂点のジオメトリ、属性、および接続情報は、それらの3D対応物からも同様に継承され得る。例えば、頂点v4が頂点v0,v5,v1およびv3に直接接続しているという情報を示してもよく、他の各頂点の各々の同様の情報もまた、同じように示してもよい。さらに、そのような2Dテクスチャメッシュは、例示的な実施形態によれば、色情報などの情報を、各三角形のパッチ、例えば1つの「パッチ」としてのv2,v5,v3などによるパッチごとにさらに示す。
例えば、図8の例800の特徴に加えて、3Dメッシュセグメント801を複数の別々の2Dチャート901および902にマッピングすることもできる図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つ以上の)頂点を含んでもよい。
図9は、境界頂点B0、B1、B2、B3、B4、B5、B6、B7を有するチャート内の導出された三角測量を示す例903を示す。そのような情報が提示されると、任意の三角測量法を適用して(境界頂点およびサンプリングされた頂点を含む)頂点間の接続性を作成することができる。例えば、各頂点について、最も近い2つの頂点を見つける。または、すべての頂点について、設定された試行回数の後に最小数の三角形が達成されるまで、三角形を連続的に生成する。実施例903に示すように、一般に境界頂点に最も近く、他の三角形と共有されてもされなくてもよい独自の寸法を有する、様々な規則的に成形された繰り返し三角形および様々な異形三角形が存在する。接続性情報は、明示的なシグナリングによって再構築することもできる。暗黙的な規則によって多角形を復元することができない場合、エンコーダは、例示的な実施形態に従ってビットストリーム内の接続性情報をシグナリングすることができる。
境界頂点B0、B1、B2、B3、B4、B5、B6、B7は、2D UV空間内に定義される。境界エッジは、そのエッジが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配列であってもよい。
例示的な実施形態によれば、メッシュ信号を効率的に表すために、メッシュ頂点のサブセットが、それらの間の接続性情報と共に最初にコーディングされてもよい。元のメッシュでは、元のメッシュからサブサンプリングされるため、これらの頂点間の接続は存在しない場合がある。頂点間の接続性情報をシグナリングする方法は様々であり、したがって、そのようなサブセットはベースメッシュまたはベース頂点と呼ばれる。
例示的な実施形態によれば、動的メッシュ圧縮のためにいくつかの方法が実施され、これらは、上述のエッジベースの頂点予測フレームワークの一部であり、この場合、ベースメッシュが最初にコーディングされ、次いでベースメッシュのエッジからの接続情報に基づいて、より多くの追加の頂点が予測される。方法は、個別に適用される、任意の形態の組み合わせによって適用される場合もあることに留意されたい。
例えば、図10の予測モード例フローチャート1001のための頂点グループ化を考える。S201において、メッシュ内の頂点を取得することができ、S202において、予測目的のために異なるグループに分けることができ、例えば、図9を参照されたい。一例では、分割は、S204においてパッチ/チャート分割を使用して行われる。別の例では、分割は各パッチ/チャートS205の下で行われる。S204に進むか、S205に進むかの決定S203は、フラグなどによってシグナリングされてもよい。S205の場合、同じパッチ/チャートのいくつかの頂点は予測グループを形成し、同じ予測モードを共有するが、同じパッチ/チャートのいくつかの他の頂点は別の予測モードを使用することができる。ここで、「予測モード」は、デコーダがパッチを含むビデオコンテンツの予測を行うために使用する特定のモードであるとみなされてよく、予測モードは、イントラ予測モードとインター予測モードとにカテゴリ分けすることができ、各カテゴリ内で、デコーダが選択する異なる特定のモードが存在し得る。例示的な実施形態によれば、各グループ、「予測グループ」は、例示的な実施形態による同じ特定のモード(例えば、特定の角度における角度モード)または同じカテゴリの予測モード(例えば、すべてのイントラ予測モードであるが、異なる角度で予測することができる)を共有することができる。S206におけるそのようなグループ化は、グループごとに含まれる頂点のそれぞれの数を決定することによって、異なるレベルで割り当てることができる。例えば、パッチ/チャート内の走査順序に従う64、32、または16個の頂点ごとに、例示的な実施形態による同じ予測モードが割り当てられ、他の頂点は異なるように割り当てられてもよい。各グループについて、予測モードはイントラ予測モードまたはインター予測モードであり得る。これはシグナリングする、または割り当てることができる。例示的なフローチャート1000によれば、メッシュフレームまたはメッシュスライスのフラグがイントラタイプを示すかどうかをチェックすることなどによって、S207においてメッシュフレームまたはメッシュスライスがイントラタイプであると判定された場合、そのメッシュフレームまたはメッシュスライス内のすべての頂点グループは、イントラ予測モードを使用するものとし、そうでない場合、S208において、イントラ予測モードまたはインター予測モードのいずれかが、その中のすべての頂点についてグループごとに選択されてよい。
さらに、イントラ予測モードを使用するメッシュ頂点のグループの場合、その頂点は、現在のメッシュの同じサブパーティション内の以前にコーディング済みの頂点を使用することによってのみ予測することができる。時として、サブパーティションは、例示的な実施形態によれば現在のメッシュ自体とすることができ、インター予測モードを使用するメッシュ頂点のグループの場合、その頂点は、例示的な実施形態によれば、別のメッシュフレームからの以前にコーディング済みの頂点を使用することによってのみ予測することができる。上記の各情報は、フラグなどによって決定およびシグナリングされ得る。前記予測特徴はS210で行われてもよく、前記予測およびシグナリングの結果はS211で発生してもよい。
例示的な実施形態によれば、例示的なフローチャート1000、および後述するフローチャート1100の頂点のグループ内の各頂点について、予測後、残差は、現在の頂点からその予測子へのシフトを示す3D変位ベクトルとなる。頂点のグループの残差は、さらに圧縮される必要がある。1つの例において、S211における変換は、そのシグナル伝達と共に、エントロピーコーディングの前に、頂点グループの残差に適用され得る。変位ベクトルのグループのコーディングを処理するために、以下の方法を実施することができる。例えば、1つの方法では、変位ベクトルのグループ、いくつかの変位ベクトル、またはその成分が0値のみを有する場合を適切に通知する。別の実施形態では、このベクトルが非ゼロ成分を有するかどうかのフラグが変位ベクトルごとにシグナリングされ、そうでない場合、この変位ベクトルのすべての成分のコーディングをスキップすることができる。さらに、別の実施形態では、変位ベクトルのグループごとに、このグループが非ゼロベクトルを有するかどうかフラグがシグナリングされ、そうでない場合、このグループのすべての変位ベクトルのコーディングをスキップすることができる。さらに、別の実施形態では、グループのこの成分が任意の非ゼロベクトルを有するかどうかのフラグが変位ベクトルのグループの各成分についてシグナリングされ、そうでない場合、このグループのすべての変位ベクトルのこの成分のコーディングをスキップすることができる。さらに、別の実施形態では、変位ベクトルのグループまたは変位ベクトルのグループの成分が変換を必要とする場合のシグナリングが存在する場合があり、そうでない場合、変換をスキップすることができ、量子化/エントロピーコーディングをグループまたはグループ成分に直接適用することができる。さらに、別の実施形態では、変位ベクトルのグループごとに、このグループが変換を経る必要があるかどうかのフラグがシグナリングされる場合があり、そうでない場合、このグループのすべての変位ベクトルの変換コーディングをスキップすることができる。さらに、別の実施形態では、群のこの成分が変換を経る必要があるかどうかのフラグが変位ベクトルの群の各成分についてシグナリングされ、そうでない場合、この群のすべての変位ベクトルのこの成分の変換コーディングをスキップすることができる。頂点予測残差の処理に関するこの段落の上述の実施形態はまた、それぞれ異なるパッチ上で組み合わせて並列に実施されてもよい。
図11は、S221において、メッシュフレームをデータユニット全体としてコーディングして取得することができ、メッシュフレームのすべての頂点または属性がそれらの間に相関を有し得ることを意味する、例示的なフローチャート1150を示す。代替として、S222での判定に応じて、メッシュフレームは、S223で、2Dビデオまたは2D画像のスライスまたはタイルと同様の概念で、より小さな独立したサブパーティションに分けることができる。コーディング済みメッシュフレームまたはコーディング済みメッシュサブパーティションには、S224で予測タイプを割り当てることができる。可能な予測タイプは、イントラコーディングタイプおよびインターコーディングタイプを含む。イントラコーディングタイプの場合、同じフレームまたはスライスの再構築された部分からの予測のみがS225で許可される。一方、インター予測タイプは、S225において、メッシュフレーム内予測に加えて、以前にコーディング済みのメッシュフレームからの予測を可能にする。また、インター予測のタイプは、PタイプやBタイプなど、より多くのサブタイプに分類されてもよい。Pタイプでは、予測目的のために1つの予測子のみを使用することができ、Bタイプでは、2つの以前にコーディング済みのメッシュフレームからの2つの予測子を使用して予測子を生成されてよい。2つの予測子の加重平均は一例であり得る。メッシュフレームが全体としてコーディングされる場合、フレームは、イントラコーディングまたはインターコーディングされたメッシュフレームとみなすことができる。インターメッシュフレームの場合、PタイプまたはBタイプは、シグナリングを介してさらに識別されてよい。あるいは、メッシュフレームがフレーム内でさらに分割してコーディングされている場合、サブパーティションの各々のための予測割り当てはS224で発生する。上記の各情報は、フラグなどによって決定およびシグナリングされてもよく、図10のS210およびS211と同様に、前記予測特徴はS226で発生してもよく、前記予測およびシグナリングの結果はS227で発生してもよい。
したがって、動的メッシュシーケンスは、時間と共に変化するかなりの量の情報から構成され得るため、大量のデータを必要とし得るが、そのようなコンテンツを保存し送信するために効率的な圧縮技術が必要とされ、図20および図21について上述した特徴は、同じメッシュフレーム内の以前に復号された頂点(イントラ予測)または以前にコーディング済みのメッシュフレームからの以前の復号された頂点(インター予測)のいずれかを使用することにより、少なくとも改善されたメッシュ頂点3D位置予測を可能にすることにより、そのような改善された効率を表す。
さらに、例示的な実施形態は、第2の層1302および第1の層1301などのその前の層の再構築された頂点のうちの1つまたは複数に基づいて、メッシュの第3の層1303の変位ベクトルを生成してもよい。第2の層1302のインデックスがTであると仮定すると、第3の層1303T+1の頂点の予測子は、少なくとも現在の層または第2の層1302の再構築された頂点に基づいて生成される。そのような層ベースの予測構造の一例が図13の例1300に示されており、これは再構成ベースの頂点予測、すなわちエッジベースの補間を使用するプログレッシブ頂点予測を示しており、予測子は予測子頂点ではなく以前に復号された頂点に基づいて生成される。第1の層1301は、その頂点として、その境界に復号された頂点と、それらの復号された頂点の間の線のうちの1つに沿って補間された頂点とを有する第1の多角形1340によって境界付けられたメッシュであってもよい。プログレッシブコーディングが第1の層1301から第2の層1302に進むにつれて、第1の層の補間された頂点のうちの1つから第2の層1302の追加の頂点までの変位ベクトルによって追加の多角形1341が形成されてもよく、したがって、第2の層1302の頂点の総数は第1の層1301の頂点の総数よりも多くてもよい。同様に、第3の層1303に進むと、第2の層1302の追加の頂点は、第1の層1301からの復号された頂点と共に、第1の層1301から第2の層1303に進む際に機能した復号された頂点と同様にコーディングにおいて機能し得る、すなわち、複数の追加の多角形が形成されてもよい。注目すべきことに、そのようなプログレッシブコーディングを示す図14の例1400を参照すると、図13とは異なり、例1400は、第1の層1401から第2の層1403、そして第3の層1403へと進む際に、追加的に形成された多角形の各々が完全に第1の層1401の境界によって形成される多角形の内部にあり得ることを示している。
そのような例1300および/または1400については、例示的な実施形態によれば、図12の例示的なフローチャート1200を参照されたく、ここでは、現在の層上の補間された頂点は予測値であるため、次の層上の頂点の予測子を生成するために使用される前に、そのような値を再構築する必要がある。これは、S231でベースメッシュをコーディングし、S232で頂点予測を実施し、次にS233で現在の層の復号された変位ベクトルを層1302などの頂点の予測子に追加することによって行われる。次に、この層2303の再構築された頂点は、S234でそのような層の追加の頂点値をチェックするなど、前の層のすべての復号された頂点と共に、S235で次の層1303の予測子頂点を生成およびシグナリングするために使用することができる。このプロセスは、以下のように要約することもでき、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アトラスサンプリングベースの方法のフレームワークでは、デコーダ側でサンプリングされた頂点と境界頂点から接続性情報を推測することによって重要な利点が達成され得る。これは、復号プロセスにおける主要な部分であり、以下に説明するさらなる例の焦点である。
例示的な実施形態によれば、ベースメッシュの接続性情報は、エンコーダ側とデコーダ側の両方の各チャートについて復号された境界頂点およびサンプリングされた頂点から推測(導出)することができる。
上述したのと同様に、任意の三角測量法を適用して、(境界頂点およびサンプリングされた頂点を含む)頂点間の接続性を生み出すことができる。例示的な実施形態によれば、接続性タイプは、シーケンスヘッダ、スライスヘッダなどの高レベル構文でシグナリングすることができる。
上述したように、不規則な形状の三角形メッシュのように、明示的にシグナリングすることによって接続性情報を再構築することもできる。すなわち、暗黙のルールによって多角形を復元することができないと判定された場合、エンコーダはビットストリーム内の接続性情報をシグナリングすることができる。また、例示的な実施形態によれば、そのような明示的なシグナリングのオーバーヘッドは、多角形の境界に応じて低減され得る。
実施形態によれば、境界頂点とサンプリングされた位置との間の接続性情報のみがシグナリングされるように決定され、サンプリングされた位置自体の間の接続性情報が推測される。
また、実施形態のいずれかにおいて、接続性情報は、あるメッシュから別のメッシュへの(予測としての)推測された接続性との差のみがビットストリームでシグナリングされ得るように、予測によってシグナリングされてもよい。
注意として、推測された三角形の配向(三角形ごとに時計回りまたは反時計回りに推測されるなど)は、シーケンスヘッダ、スライスヘッダなどの高レベル構文ですべてのチャートに対してシグナリングされるか、または例示的な実施形態によるエンコーダおよびデコーダによって固定(想定)することができる。推測された三角形の配向は、各チャートに対して異なるようにシグナリングすることもできる。
さらなる注記として、任意の再構築されたメッシュは、元のメッシュとは異なる接続性を有する場合がある。例えば、元のメッシュは三角形メッシュであってもよく、再構築されたメッシュは多角形メッシュ(例えば、クワッドメッシュ)であってもよい。
例示的な実施形態によれば、任意の基本頂点の接続性情報はシグナリングされなくてもよく、代わりに、基本頂点間のエッジは、エンコーダ側とデコーダ側の両方で同じアルゴリズムを使用して導出されてもよい。また、例示的な実施形態によれば、追加のメッシュ頂点の予測された頂点の補間は、ベースメッシュの導出されたエッジに基づいてもよい。
例示的な実施形態によれば、基本頂点の接続性情報がシグナリングされるべきか、導出されるべきかをシグナリングするためにフラグを使用することができ、そのようなフラグは、シーケンスレベル、フレームレベルなど、ビットストリームの異なるレベルでシグナリングすることができる。
例示的な実施形態によれば、基本頂点間のエッジは、エンコーダ側とデコーダ側の両方で同じアルゴリズムを使用して最初に導出される。次いで、ベースメッシュ頂点の元の接続性と比較して、導出されたエッジと実際のエッジとの間の差が通知される。したがって、差分を復号した後、基本頂点の元の接続性を復元することができる。
一例では、導出されたエッジについて、元のエッジと比較したときに誤っていると判定された場合、そのような情報は、(このエッジを形成する頂点の対を示すことによって)ビットストリームでシグナリングされてよく、元のエッジについては、導出されない場合、(このエッジを形成する頂点の対を示すことによって)ビットストリームでシグナリングされてよい。さらに、境界エッジ上の接続性および境界エッジを含む頂点補間は、内部頂点およびエッジとは別に行われてもよい。
したがって、本明細書に記載の例示的な実施形態によって、上記で指摘した技術的問題は、これらの技術的解決策の1つまたは複数によって有利に改善され得る。例えば、動的メッシュシーケンスは、時間と共に変化するかなりの量の情報から構成され得るので、大量のデータを必要とし得るので、本明細書に記載の例示的な実施形態は、そのようなコンテンツを保存し送信するための少なくとも効率的な圧縮技術を表す。
上述の実施形態は、インスタンスベースのメッシュコーディングにさらに適用することができ、インスタンスは、オブジェクトのメッシュまたはオブジェクトの一部であってよい。例えば、図16の図示例1600は、様々なインスタンス1602(カップのメッシュを表す)、1603(スプーンのメッシュを表す)、および1604(プレートのメッシュを表す)が存在し、それぞれ分離されコーディングされ得るメッシュ例1601を示す。また、インスタンス1601、1602、1603、および1604のそれぞれは、以下でさらに説明するバウンディングボックスのそれぞれ1つの中に示されているが、注記として、インスタンス1601は「メッシュベースの境界グボックス」によって境界付けられて示されていると考えることができ、インスタンス1602、1603、および1604のそれぞれは、「インスタンスベースのバウンディングボックス」のそれぞれによって境界付けられていると考えることができる。
例示的な実施形態によれば、提案された方法は、別々に使用されてもよいし、任意の順序で組み合わされてもよい。提案された方法は、任意の多角形メッシュに使用されてもよいが、様々な実施形態の実証には三角形メッシュのみが使用されてもよい。上述したように、入力メッシュは1つまたは複数のインスタンスを含むことができ、サブメッシュは1つまたは複数のインスタンスを有する入力メッシュの一部であり、複数のインスタンスをグループ化してサブメッシュを形成することができることが仮定される。
その観点から、図15は、所与の入力ビット深度(そのビット深度は「QP」と呼ばれてもよい)で異なるオブジェクトまたは部分を別々に量子化することが提案されている例1500を示す。例えば、S1501において、1つまたは複数の入力メッシュを取得し、各々を複数のサブメッシュに分離することができる。サブメッシュは、オブジェクト、オブジェクトのインスタンス、またはセグメント化された領域とすることができ、例示的な実施形態によれば、S1502で独立して量子化される。
例示的な実施形態によれば、(x、y、z)座標にm個の点を有するメッシュMは、S1502においてQPビット深度によって量子化され得る。すべての三次元(x、y、z)の量子化ステップサイズは、すべての次元におけるバウンディングボックスの最大長さに基づいて決定することができ、dbbox>0である。また、S1503で識別されたメッシュ内のすべてのオブジェクトに対してS1504で同じ量子化ステップサイズが適用されてもよく、
そのスカラー量子化は、i番目の座標aijにおけるj番目の点に対して、以下のように適用することができ、
式中、θQP=0.5は、量子化のためのオフセットパラメータである。θiは、第i次元におけるMのメッシュの最小座標である。表記法
は床丸め演算子を表す。また、逆量子化された座標は、以下のように均一な逆量子化を用いて計算することができ、
量子化の平均二乗誤差を、
としている。
しかしながら、複雑なシーンでは、最大のオブジェクトは、比較的多くの場合単純であり、より高い量子化ステップサイズを許容することができる背景である。一方、主なオブジェクトは、より小規模であり、以下でさらに説明される様々な実施形態によって説明され得る巨大な量子化誤差を被る。
したがって、図15の例1500に示すように、入力メッシュdbboxのバウンディングボックスの最大長は常に、各インスタンスのバウンディングボックスの最大長
として、
以上に設定されてもよく、
ここで、
は入力メッシュ内のすべてのインスタンスまたはセグメント化のセットである。
所与のビット数QPにおいて、インスタンス1602(カップのメッシュを表す)、1603(スプーンのメッシュを表す)、および1604(プレートのメッシュを表す)の各々のすべてのインスタンスの量子化ステップサイズは、常に、
を満たすメッシュベースの量子化ステップサイズ以下であり得る。
したがって、インスタンスごとの量子化誤差が小さくなり、全体の量子化誤差が小さくなる。
様々な実施形態によれば、図17のフローチャート1700を見ると、ビット深度は、S1702において「サブメッシュ」と呼ばれる各インスタンス/領域に対して適応するように割り当てられてもよく、その特定のインスタンスの面密度に基づいて決定されてもよい。各サブメッシュは、それ自体がメッシュ内の各インスタンスを個別にシグナリングしていてもよいメッシュのボリュームデータから取得されてもよく、各サブメッシュは、S1702においてインスタンスごとにそのメッシュから導出される。例えば、インスタンス1602、1603、および1604の各々は、S1704において、それ自体の特定の面密度または頂点の数に応じて、その中に上述の多角形のうちの1つまたは複数を形成する、それ自体のそれぞれのビット深度が割り当てられてよい。一般に、S1703においてその中のそのような多角形の数などをカウントすることによって決定され得る各インスタンスが有する面が多いほど、S1702においてそのインスタンスに適用される量子化は少なくなるはずである。例えば、メッシュMを考えると、面の総数はnであり、サブメッシュk番目の対応する面はnkであり、
式中、Kはサブメッシュの総数である。サブメッシュ面密度は、
として定義され、
はk番目のサブメッシュのS1906で設定されたバウンディングボックスの体積を表す。次に、一例では、QPkと呼ばれるインスタンスkの適応量子化は、
として、
以下のように制限された範囲[QPmin、QPmax]で定義することができる。
様々な実施形態によれば、メッシュは、ベースメッシュBおよびその対応する変位Dとして表され、S1702において異なるビット深度で量子化される。例えば、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である。線形検索が、各サブメッシュに対して実行され、以下の
を満たすベースメッシュの最良のビット深度を見つける。
さらに、変位のための最良のビット深度もまた、
を介して取得されてよい。
例示的な実施形態によれば、ビットストリームを介したS1707での信号ビット深度のシグナリングなどによって、各オブジェクトの量子化のシグナリングが存在し得る。昇順のベース量子化ビット数のセットは、対応する変位量子化ビット数
を有する
であってもよい。この情報は、メッシュインスタンスパラメータシンタックスとしてシグナリングされ得る。シグナリングのために、b0ビットを使用して、バウンディングボックスオフセットθiをシグナリングしてもよい。シグナリングオーバーヘッドを回避するために、すべてのインスタンスは同じバウンディングボックスオフセットを共有してよい。数K-1はb1ビットに制限され、最大ベース量子化bithdepthは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シーンは、アセットを再利用する同様のメッシュ構造を有する複数のインスタンスからなることが多いため、ローカル特性を利用するだけでなく、例示的な実施形態によるインスタンス間の類似性を考慮することによって、さらなる改善を達成することができる。
例えば、上記から続けると、図18は、インスタンスベースのマッチング予測(IMP)方法を使用して冗長メッシュを見つけ、対応する変位を符号化する例示的なフローチャート1800を示しており、これは、インスタンスを有利に正規化してそれらの類似性を最大化することができ、上述の実施形態のいずれかで使用することができる。
例えば、S1801において、入力メッシュが取得され、上述のように複数のサブメッシュに分割され得る。サブメッシュは、例示的な実施形態によれば、個々のオブジェクトまたはオブジェクトの一部のインスタンスであり得る。
S1802において、単純なスケーリング特徴および類似度尺度を使用して、インスタンスを類似度グループにグループ化することができる。例えば、実施形態によれば、インスタンスは、過渡的なアセットのみが再利用され得るように整列および正規化され得る。スケールおよび配向情報は、IMPモードのチャネルを介してシグナリングされてよく、m個のインスタンスを有する入力メッシュMが与えられると、インスタンスi番目は、
の対応するバウンディングボックスを有し得る。したがって、同じ比率のバウンディングボックスdx/dy、dx/dzを有する同様のインスタンスを1つのアセットグループにグループ化されてよい。さらに、同じグループの2つのインスタンス間の対d1PSNR(ピーク信号対雑音比)が閾値τより大きい場合、類似性を検証し、外れ値のインスタンスを除去するために適用することができる。例えば、閾値τ=150dBが使用されてよく、合計で、MはS={S0,...,SK-1}としてK個のアセットグループを有し、|Sk|=mkであり、mkはk番目のアセットグループのインスタンス数である。
例示的な実施形態によれば、S1803において、フラグの指示に応じて、IMPを使用してサイズmk>1が1より大きいアセットグループ
のインスタンスを符号化できるようにコーディングを実施することがS1803で決定されてもよい。第1のインスタンスは符号化され、その復号バージョンはグループ内の残りのインスタンスのベースメッシュとして使用される。例えば、
なお、可逆圧縮の場合、
は
と同じであってもよい。
フラグS1804に応じて、S1805におけるコーディングは、サブメッシュをサブビットストリームに独立してコーディングするようにシグナリングされ得る。各サブメッシュは、異なるコーディングパラメータを有するメッシュコーデックによってコーディングすることができる。各サブメッシュは異なるメッシュコーデックによってコーディングすることもでき、その場合、どのメッシュコーデックが使用されるかを示すコーデックインデックスをサブビットストリームのヘッダなどでシグナリングする必要があることに留意されたい。例示的な実施形態によれば、サブメッシュのサブビットストリームは、データ依存性の問題なしに並列に符号化および復号することができる。
S1804におけるフラグが代わりに従属コーディングを示す場合、S1806において、サブメッシュを従属的にコーディングするモードも同様に示すように追加のフラグが考慮されてもよい。例えば、実施形態によれば、サブメッシュは、既にコーディング済みの他のサブメッシュからの予測によってコーディングすることができる。予測インデックスは、どのサブメッシュを予測として使用するかを示すようにコーディングすることができる。予測インデックスは、異なるレベルでシグナリングすることができる。
例えば、S1807において、サブメッシュ全体に対して1つの予測インデックスのみがコーディングされてもよく、その結果、現在のサブメッシュ内のすべての頂点は、例示的な実施形態によるインデックスによって示されるのと同じサブメッシュから予測されることになる。
S1808において、予測インデックスが現在のサブメッシュの各頂点についてシグナリングされ得ることで、各頂点を異なるサブメッシュから予測することができる。予測インデックスは、予測コーディングによっても同様にコーディングすることができ、この場合、頂点の予測インデックスは、隣接するコーディング済みの頂点から予測することができることに留意されたい。次に、例示的な実施形態によれば、予測インデックス残差を算術コーディングによってコーディングすることができる。
S1809において、予測インデックスは、頂点レベルとサブメッシュレベルとの間の中間レベル、例えば頂点グループレベルでシグナリングされてもよく、頂点のグループは同じ予測インデックスを共有する。異なるグループの予測インデックスは、例示的な実施形態による予測コーディングによってコーディングすることもできる。シグナリングは、S1810において行われてもよい。
次に、現在のサブメッシュの各頂点の予測インデックスが与えられると、各頂点は、例示的な実施形態のいずれかを用いて本明細書で説明したように、対応するサブメッシュ内の頂点から予測することができる。例示的な実施形態によれば、剛的動きは、予測サブメッシュから現在のサブメッシュまで推定されてよく、剛的動きのパラメータ(例えば、回転および並進パラメータ)はコーディングすることができる。次いで、予測サブメッシュに剛的動きを適用した後、変換された予測サブメッシュ内の対応する頂点の属性を減算することによって、現在の頂点の属性の残差を取得することができる。頂点の属性は、幾何学的形状、色、法線、uv座標、接続性などを含むことができるが、これらに限定されない。次に、例示的な実施形態による算術コーディングによって残差情報をコーディングすることができる。
さらに、このようなコーディングは、サブメッシュごとの材料やテクスチャ情報のコーディングに適用されてもよい。この情報は、周囲色、拡散色、鏡面反射色、鏡面反射ハイライトの焦点、ディゾルブの係数、照明モデル、テクスチャ画像IDなどを含むことができるが、必ずしもこれらに限定されない。
例示的な実施形態によれば、1つのサブメッシュは、1セットの材料およびテクスチャ情報のみを可能にし、そのような場合、この情報は、サブビットストリームのヘッダで単純にコーディングすることができる。
または、例示的な実施形態によれば、1つのサブメッシュは、材料およびテクスチャ情報の2つ以上のセットを有することができ、この場合、それらのセットは、サブビットストリームのヘッダでコーディングすることができる。異なるセット内のこれらのパラメータは、独立してまたは依存してコーディングすることができることに留意されたい。従属コーディングが適用される場合、予測を適用することができ、代わりに材料パラメータの予測残差をコーディングすることができる。次いで、サブメッシュ内の各頂点について、この頂点にどの材料情報のセットが使用されるかを示すために材料IDをコーディングすることができる。例示的な実施形態によれば、冗長性を低減するために、コーディングされた隣接する頂点から予測することによって材料ID(識別子)をコーディングすることができることに留意されたい。
したがって、本明細書の実施形態によれば、複雑なメッシュは、テクスチャマップを関連付けるために複数のインスタンスに関する情報を含むことが多く、その情報は符号化時に利用可能であり得ることが実現されるので、各インスタンスは、アセットは、本明細書の例示的な実施形態による3D設計において、特に複雑なシーンの合成のために、モデルを設計する際のコストを削減するために頻繁に使用され得るので、3Dアセットとみなされてよい。例えば、3Dモデルは、スケール、配向などの違いで変更されたテクスチャの有無にかかわらず再利用されてよい。これは、上述した他の態様の中でも、メッシュがPCA(主成分分析)またはバイラテラル対称面に基づいて位置、サイズ、および配向に正規化され、それによってより効率的に検索され得るため、3Dオブジェクトのマッチングおよび検索に関連する問題に対処する。
図19は、四分木二分木(QTBT)1901および対応する木表現1902を使用することによるブロック分割の例1900を示す。実線は四分木分割を示しており、点線は二分木分割を示している。二分木の各分割(すなわち、非リーフ)ノードでは、どの分割タイプ(すなわち、水平か垂直か)が使用されるかを示すために1つのフラグがシグナリングされ、0は水平分割を示し、1は垂直分割を示す。四分木分割の場合、四分木分割は常にブロックを水平方向と垂直方向の両方に分割して、同じサイズの4つのサブブロックを生成するため、分割タイプを指定する必要はない。
コーディングツリーユニット(CTU)は、コーディングツリーと呼ばれる四分木構造を使用してコーディングユニット(CU)に分割され、様々なローカル特性に適応する。ピクチャエリアをコーディングするためにインターピクチャ(時間的)予測を使用するかイントラピクチャ(空間的)予測を使用するかの決定は、CUレベルで行われる。各CUは、PU分割タイプに従って、1つ、2つ、または4つの予測ユニット(PU)にさらに分割することができる。1つのPU内で、同じ予測プロセスが適用され、関連情報がPUベースでデコーダに送信される。PU分割タイプに基づく予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUのコーディングツリーのような別の四分木構造に従って変換ユニット(TU)に分割されることができる。
例示的な実施形態によれば、可逆および非可逆メッシュコーディング技術の両方がある。ベースメッシュは、元のメッシュのサブセットとして抽出されてよく、残りの頂点は、距離ベースの予測変位コーディングに基づいて符号化される。
例示的な実施形態によれば、本明細書に記載の態様は、別々に使用されても、任意の順序で組み合わされてもよく、任意の多角形メッシュに使用されてもよく、ジオメトリは、ベースメッシュおよび予測変位コーディングによって符号化されてもよい。例えば、フローチャート2000を見ると、S2002において、S2001で取得された元のメッシュのサブセットであるベースメッシュが与えられると、元の頂点は、その予測点(投影された頂点)および予測点(投影された頂点)と元の点(残りの頂点)との間の変位を例2100を見ることによって符号化され得る。ベースメッシュは、(頂点に含まれない)残りの頂点が常に中間の頂点の法線方向側にあるような制約である。
例えば、2Dメッシュの変位コーディングがS2004で決定される場合、2Dメッシュの2つの距離ベースの変位コーディングの例2101を見ると、点
は、その隣接点y1、y3を接続し、点y1、y2、y3を通る平面pに垂直な線への点y2の投影である。p平面の法線ベクトルと同じ側の点y2とする。点y2を符号化するためには、S2005においてスカラー距離
を有する投影
のみが必要である。加えて、この実施形態では、
は、y1とy3との間に並ぶように制約される。したがって、隣接する頂点ynまでのスカラー距離dsは、
を復元するのに十分である。すなわち、例2101では、点y1、y3、y5は、ベースメッシュ頂点であってもよい。点y2,y4は、残りの頂点であってもよく、
は投影された頂点であってもよく、点ynは導出された隣接点であってもよい。
2Dの例示的な実施形態によれば、また他の例示的な実施形態による3Dでは、S2006において、隣接点y1、y2の間の線上にある追加の点ynが隣接点から導出される。例えば、点ynからのスカラー距離は、点y1、y3の中央から0、1/2、1/3、2/3として導出される。そして、S2007において、レートおよび歪みに関して最良の候補が選択されてシグナリングされる。
そのような実施形態は、点y1、y3を使用して中間点ynを取得し、次いでそこから点
に投影することができるが、より正確な所望の頂点は、代わりに点
ではなく点y2にあってもよく、これは本明細書に記載の例示的な実施形態によって有利に得ることができる。
本明細書では可逆とみなされ得る、ほぼ可逆的な3Dメッシュの変位コーディングのための2つの距離ベースの変位コーディングを示す図21の例2102を見ると、3Dメッシュは、例示的な実施形態に従って、S2004における3Dコーディングの選択に基づいて説明される。例えば、S2008で非可逆コーディングが選択されていないと判定された場合、S2009で、頂点z4がベースメッシュ内の隣接する頂点:点z1、z2、z3から予測される。例2101の2Dの場合と同様に、距離hhが既知である場合、点z4は、点
から予測することができる。一方、点
は、距離htおよびhsを用いて、点znまたは点
(速度および歪みコストに応じて)のいずれかから予測することができた。全体として、信号点z4に対して、3つの距離hs、ht、hhが、S2009においてどのエッジが予測に使用されるかを示すためのインデックスと共に使用される。すなわち、点z1、z2、z3は、ベースメッシュ頂点であってもよく、点z4は剰余頂点であってもよく、点
は、投影された頂点であってもよく、点znおよび点
は、導出された隣接点であってもよい。
細分および距離ベースのメッシュコーディングを示す例2103を見ると、そのような例示的な実施形態は、同様に、S2011で距離および面細分に基づいて、S2008で選択されたような非可逆3Dメッシュの変位コーディングを導入する。すなわち、実施例2102と同様に、実施例2103では、ベースメッシュ面点
上の点x4の投影された頂点および距離dhは、点x4を符号化するのに十分である。この実施形態では、面はレベルLで最初に細分される。点
(この例ではxnである)に最も近い細分点が選択される。次に、点
は、現在の三角形の法線方向に向かって距離dhにある点xnから導出される。点
は、点x4の非可逆バージョンとみなされる。最後に、距離dh、およびS2011における細分割を有する点xnのインデックスが符号化され、三角形細分が例2103に示されているが、本明細書で説明されるように他の多角形形状が使用されてもよい。すなわち、x1、x2、x3は、ベースメッシュ頂点であってもよい。点x4はリマインダ頂点であってもよく、点
は、投影された頂点であってもよく、点xnは、最も近い細分であってもよく、点
は予測される頂点である。
実施例2101について上述したように、実施例2103はまた、実施例2102と比較して、実施例2103が、点z4および点
の一方の値が整数値でなくてもよい状況(点z4および点
は、この説明のためにそれぞれ点x4および点
に対応する)と比較して計算複雑度を単純化することができるので、追加の有利な改善を表す。すなわち、点x4に最も近い点(頂点x1,x2、x3によって形成される多角形全体の中で規則的に分けられた多角形の頂点の間)として点xnを見つけることによって、その点xnは、点
よりも整数値を有する可能性が高く、それによってそこから予測される頂点としての点
も同様に整数値を有することができ、したがって、代わりにそのような整数値を有する可能性が低い点x4と比較して計算複雑性が低減される。
例示的な実施形態によれば、一実施形態では、距離および面細分に基づく非可逆(S2008で選択された)3D(S2004で選択された)クワッド(S2010で選択された)メッシュの面レベル処理が存在する。例えば、順次予測して符号化する代わりに、S2012において、例1901に示すブロックのうちの1つまたは複数などの対応する矩形ブロックへのメッシュのピクセル化が存在する。この手法は、ビデオコーディングにおけるブロック分割、ブロック併合フレームワークを可能にする。
例えば、S2012で顔をピクセル化する場合、クワッド面が与えられると、まず、細分された元の頂点がn2個の点を占めるように、それらを細分する。図22の例2200の、クワッドメッシュおよび対応する変位のグループ表現のためのレベル1における三分木細分の例2201に示される三分木の例は、42個の面を有するようにクワッドフェースを分けるために使用され得る。メッシュの滑らかな変化する表面の仮定に基づいて、変位グループは高い相関を有する可能性が高い。したがって、イントラ様予測およびローカル変換を使用して、変位
予測2251をさらに圧縮することができる。このような態様は、エンコーダおよびデコーダのスループットを向上させながら、ビットレートを節約することを支援し得る。
例示的な実施形態によれば、変位
のコーディング効率を改善するために適応細分が使用されるように、S2013におけるマルチレベル分割が行われてよい。すなわち、第1に、クワッドメッシュは、サイズB1×B2のグループ変位表現2252を有するように数回の3値細分であり、B1,2は2の倍数である。その後、従来のビデオコーディング分割を使用することができる。一例では、B1、B2は32に設定される。あるいは、クワッドベースメッシュ面の配向を考慮して、異なる分割を適用することもできる。より長い配向は、より高いレベルにおいて分割を受ける。これにより、そのような態様は、既に符号化された面2253および2254の例で示されているような、非正方形の画素化された面を可能にする。これにより、一方の方向が他方の方向よりも著しく大きい場合、非正方形のクワッド面の歪みが低減される。また、S2014では、3値で1回細分された個々のクワッド面が存在し得るように、適応マージングクワッド面特徴が使用されてもよい。次いで、それらの変換コーディングコストが個々のコストよりも小さいと判定された場合、隣接点の近くの2つまたは4つをマージすることができる。
例えば、グループ変位表現2252を見ると、既に符号化されたベースメッシュ頂点を使用して(左下-LL、右下LR、左上-TL、右上-TF)、その位置に応じて変位を予測することができる、すなわち、サイズB1×B2のグループ変位表現が与えられる場合、4つの重み行列を使用して、分割グリッドの位置i、jにおける予測が以下のように導出されてよく、
式中、vXはX位置(LL、LR、TL、TF)におけるベースメッシュの頂点を表し、重み行列は常にWX(i,j)の正数である。
さらに、実施例2202は、ベースメッシュ頂点および既に符号化された隣接変位頂点を使用して現在の変位グループを予測することができる、隣接ベースのイントラ変位予測を示す。その予測は、イントラ予測における角度予測であり得る。追加のベースメッシュ頂点を利用して、例示的な実施形態に従って角度予測のための補正ならびに式(11)でのポストスムージンブを行ってよい。
したがって、本明細書に記載された態様は、GPUベースのメッシュレンダリングのスループットを低下させ、それによってメッシュコーディングのためのビデオ圧縮において高度なコーディング方法を利用することができない偽の接続性を有する追加の頂点を作成することを回避することによって技術的欠陥に対処する。
例示的な実施形態によれば、S2301において、m(i)がメッシュシーケンス内の第iのフレームであってよく、v(i,j)がm(i)の第jの頂点の位置であってよく、m(i0),...,m(in)が、S2302におけるシグナリングによって決定される追跡メッシュであってよく、m(i0)が参照フレームであり得るように、1つまたは複数のフレームが取得されるフローチャートを示す図23の例2300をさらに参照されたい。m(ik)のj番目の頂点の動きベクトルf(ik,j)は、S2303で次のように計算される。
f(ik,j)=v(ik,j)-v(i0,j)-式(12)
あるいは、m(ik)のj番目の頂点の動きベクトルf(ik,j)は、以下のように計算することができる。
k>0-Eqの場合、f(ik,j)=v(ik,j)-v(ik-1,j)-式(13)
例示的な実施形態によれば、m(ik)の動きフィールドは、フレーム内のすべての運動ベクトルからなり、f(ik)として表され、本明細書の実施形態では、k=1,...,nに対してf(ik)を圧縮することに関する。f(i0)は、定義によりすべてゼロを含むので、コーディングされる必要はないことに留意されたい。
フラグまたはオペレータ指示などによるシグナリングに応じて、S2304において、モードが選択され得る。
メッシュシーケンスでは、本明細書の例示的な実施形態は、S2302で、すべてのそれらのメッシュが、いくつかの頂点、接続性、テクスチャ座標、およびテクスチャ接続性のいずれかのうちの同じ1つまたは複数を共有すると判定され、それらのメッシュの間で頂点の位置のみが異なる場合に、複数のメッシュフレームが追跡されることを指す。本明細書では参照フレームおよび現在のフレームと呼ばれてもよい2つの追跡されたメッシュフレームの頂点間には1対1の対応関係があるため、現在のフレームの頂点位置は参照フレームによって予測することができ、予測残差は動きフィールドを形成する。
さらに、例示的な実施形態による本明細書に記載の「メッシュ」は、体積測定対象物の表面を記述するいくつかの多角形から構成され得ることを理解されたい。各多角形は、3D空間内のその頂点、および接続性情報と呼ばれる、頂点がどのように接続されているかの情報によって画定される。任意選択で、色、法線、変位などの頂点属性をメッシュ頂点に関連付けることができる。属性はまた、メッシュを2D属性マップでパラメトライズするマッピング情報を利用することによって、メッシュの表面に関連付けられ得る。そのようなマッピングは通常、UV座標またはテクスチャ座標と呼ばれ、メッシュ頂点に関連付けられるパラメトリック座標のセットによって定義され得る。2D属性マップは、テクスチャ、法線、変位などの高解像度属性情報を格納するために使用される。そのような情報は、テクスチャマッピング、シェーディング、メッシュ再構成などの本明細書の様々な目的に使用される。
S2305において、離散コサイン変換(DCT)またはリフティングウェーブレット変換などの1D変換が各頂点の軌道に適用されてよい。例えば、図12、図13、図21および図22に示される変位ベクトルを参照されたく、これらのうちのいずれかは、S2305、S2306およびS2307のいずれかにおいて、本明細書に記載された頂点の軌跡として関連し得る。具体的には、S2305において、j番目の頂点について、f(ik,j)の各空間次元に1D変換を適用することができ、この場合k=1,...,nである。次いで、得られた変換係数は、エントロピー/算術コーディング、ビデオコーディングなどを使用して符号化することができる。デコーダ側では、動きフィールドを再構築するための逆変換が実行され得る。
S2306において、動きフィールドは、ビデオコーディングによって直接符号化することができる。上述したパッチまたはパッチのグループなどの各フレームについて、メッシュフレーム内のすべての動きベクトルf(ik,j)は、符号化/復号化の順序に列挙された頂点インデックスの順序、またはエッジブレーカアルゴリズムなどのメッシュ横断アルゴリズムの順序などの特定の順序に従ってグループ化することができ、次いで、順序付けられた動きベクトルを3チャネル画像にパッキングすることができ、ここで、各チャネルは動きベクトルの1つの空間次元に対応している。パッキングは、ラスタ順、モートン順などの任意の順序で行うことができる。パッキング後、すべてのフレームからの画像をビデオコーデックによって符号化することができる。また、それに応じて復号が実行されてよい。ビデオフレームを復号した後、アンパッキング操作を適用して、動きベクトルの2D配列を既知の順序を有するメッシュ頂点の配列に戻すことができ、これは例示的な実施形態によるエンコーダ側で使用される。
S2307において、座標を変更し得る主成分分析(PCA)を使用することによる動きフィールドの符号化が行われてよく、動きフィールドはそれぞれ、本明細書に記載のパッチまたはパッチのグループの複数またはすべての頂点の変位ベクトルおよび動きベクトル情報を含み得る。第1に、動きフィールドのためのデータ行列Mの構築が存在し得る。Mのj行目は、3つの空間次元を平坦化した後、f(ik,j),k=1,…,nであるため、各行の長さ、すなわち列の数は3nであり、行の数rは各メッシュ内の頂点の数に等しく、したがってMのサイズはr×3nである。3つの空間次元の平坦化は、x1y1z1…xnynznまたはx1…xny1…ynz1…znの順序で行うことができることに留意されたい。データ行列Mを構築した後、その平均を減算することによってその列のセンタリングがあってもよく、次いで共分散行列C=MTMを計算することができ、その後、主成分は、共分散行列Cのサイズが3n×3nであるために計算複雑度が低いCの固有分解によって取得することができる。Cの固有分解の後、すべての固有ベクトルのシグナリング、または固有値の構成可能なしきい値による固有ベクトルの最初の複数、少なくとも2つのシグナリングのみのいずれかが存在し得る。さらに、シグナリングされた固有ベクトル上のMの各行の投影がシグナリングされ、それらの固有ベクトルに関する係数をシグナリングされてよい。例示的な実施形態によれば、Mの各列の平均も同様にシグナリングされるべきである。例示的な実施形態によれば、すべてのシグナリングは、算術コーディングなどのエントロピーコーディングで行うことができる。デコーダ側では、各頂点のセンタリングされた軌道は、復号された固有ベクトルと対応する復号係数との線形結合によって復元することができ、次いで、各頂点の元の軌道は、センタリングされた軌道と復号された平均位置との合計によって取得することができる。
例示的な実施形態によれば、ビデオコーディングを介して符号化された他のデータが存在すると判定された場合、例示的な実施形態は、それらのデータを動きベクトルと連結し、それらをコーディングのために単一のビデオにパックする。例えば、動きベクトルと変位ベクトルの両方を有するメッシュフレームの場合、動きベクトルと変位ベクトルは、さらなるコーディングのために同じビデオフレームにパックすることができる。特に、変位情報をすべての動きベクトルの背後に置くことができる。これには、動きベクトルと変位ベクトルとが異なるストリームに含まれる可能性、またはそれらが同じストリームに含まれる可能性が含まれ、同様に単一のビデオコーデックによってコーディングされ得る。
このように、動的メッシュシーケンスは、経時的に変化する大量の情報から構成され得るため、大量のデータを必要とする可能性があるが、メッシュシーケンスが大量の冗長情報を含む追跡されたメッシュから構成される場合、動的に細分化されたメッシュの動きフィールドの圧縮に関する本明細書に記載の実施形態によってメッシュを大幅に圧縮する大きな余地がある。したがって、本明細書の例示的な実施形態では、動的細分割メッシュの動きフィールドの圧縮に対する手法を改善するためのいくつかの方法が記載されており、本明細書に記載のそれらの方法は、個別にまたは任意の形態の組み合わせによって適用される。
前述した技術は、コンピュータ可読命令を使用し、1つ以上のコンピュータ可読媒体に物理的に記憶されたコンピュータソフトウェアとして、または具体的に構成される1つ以上のハードウェアプロセッサによって実装され得る。例えば、図24は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム2400を示す。
コンピュータソフトウェアは、コンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって、直接に、または解釈、マイクロコードの実行などを介して実行できる命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどの機構の適用を受け得る、任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされることができる。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはそのコンポーネント上で実行することができる。
コンピュータシステム2400に関して図24に示す構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図していない。構成要素の構成は、コンピュータシステム2400の例示的な実施形態に示された構成要素のいずれか1つまたは組み合わせに関するいかなる依存性または要件も有すると解釈されるべきでない。
コンピュータシステム2400は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を介した、1人以上の人間ユーザによる入力に応答し得る。ヒューマンインターフェースデバイスは、音声(例えば、スピーチ、音楽、周囲音)、画像(例えば、走査された画像、静止画像カメラから取得した写真画像)、ビデオ(例えば、二次元ビデオ、立体ビデオを含む三次元ビデオ)などの、人間による意識的な入力に必ずしも直接関連しない特定の媒体をキャプチャするためにも使用することができる。
入力ヒューマンインターフェースデバイスは、キーボード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)など)、実行のための論理を具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアとの任意の適切な組み合わせを包含する。
本開示はいくつかの例示的な実施形態を説明したが、本開示の範囲内に入る変更、置換、および様々な代替的な均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現化し、したがって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。