図1は、本開示の一実施形態に従った通信システム(100)の簡略化したブロック図を例示している。システム(100)は、ネットワーク(150)を介して相互接続された少なくとも2つの端末(110-120)を含み得る。データの一方向伝送では、第1の端末(110)は、ネットワーク(150)を介した他方の端末(120)への伝送のために、ローカル位置で映像データを符号化し得る。第2の端末(120)は、他方の端末の符号化された映像データをネットワーク(150)から受信し、符号化されたデータを復号し、そして、復元された映像データを表示し得る。一方向データ伝送は、メディアサービス提供アプリケーション及びそれに類するものにおいて一般的であり得る。
図1は、例えばテレビ会議中に発生し得る符号化された映像の双方向伝送をサポートするように設けられた第2対の端末(130、140)を例示している。データの双方向伝送では、各端末(130、140)が、ローカル位置でキャプチャされた映像データを、ネットワーク(150)を介した他方の端末への伝送のために符号化し得る。各端末(130、140)はまた、他方の端末によって送信された符号化された映像データを受信することができ、符号化データを復号し、そして、復元された映像データをローカルのディスプレイ装置に表示し得る。
図1では端末(110-140)がサーバ、パーソナルコンピュータ、及びスマートフォンとして例示され得るが、本開示の原理はそのように限定されるものではないとし得る。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のテレビ会議機器での適用を見出すものである。ネットワーク(150)は、例えば、有線通信ネットワーク及び/又は無線通信ネットワークを含め、端末(110-140)間で符号化された映像データを伝達するあらゆる数のネットワークを表す。通信ネットワーク(150)は、回線交換チャネル及び/又はパケット交換チャネルにてデータを交換し得る。代表的なネットワークは、遠距離通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はインターネットを含む。本説明の目的上、ネットワーク(150)のアーキテクチャ及びトポロジーは、以下にて説明しない限り、本開示の動作にとって重要ではないとし得る。
図2は、本開示に係る事項に関するアプリケーションの一例として、ストリーミング環境におけるビデオエンコーダ及びデコーダの配置を例示している。本開示に係る事項は、例えば、テレビ会議や、デジタルTVや、CD、DVD、メモリスティック及びこれらに類するものを含むデジタル媒体上での圧縮映像の格納などを含め、映像を使用可能な他の用途にも等しく適用可能であるとし得る。
ストリーミングシステムは、キャプチャサブシステム(213)を含むことができ、これは、例えば未圧縮の映像サンプルストリーム(202)を作り出す例えばデジタルカメラといった映像ソース(201)を含むことができる。そのサンプルストリーム(202)は、符号化された映像ビットストリームと比較して高いデータボリュームであることを強調するために太線として描かれており、カメラ201に結合されたエンコーダ(203)によって処理され得る。エンコーダ(203)は、更に詳細に後述される本開示に係る事項の態様を使用可能にする又は実装するための、ハードウェア、ソフトウェア、又はこれらの組み合わせを含むことができる。符号化された映像ビットストリーム(204)は、サンプルストリームと比較して低いデータボリュームであることを強調するために細線として描かれており、後の使用のためにストリーミングサーバ(205)に格納されることができる。1つ以上のストリーミングクライアント(206、208)が、符号化された映像ビットストリーム(204)のコピー(207、209)を取り出すためにストリーミングサーバ(205)にアクセスすることができる。クライアント(206)は、入ってくる符号化された映像ビットストリームのコピー(207)を復号し、出ていく映像サンプルストリーム(211)を作り出すビデオデコーダ(210)を含むことができ、出ていく映像サンプルストリーム(211)が、ディスプレイ(212)又は他のレンダリング装置(図示せず)上でレンダリングされ得る。一部のストリーミングシステムにおいて、映像ビットストリーム(204、207、209)は、特定の映像符号化/圧縮標準に従って符号化されることができる。それらの標準の例は、ITU-T勧告H.265を含む。非公式にバーサタイルビデオコーディングすなわちVVCとして知られる映像符号化標準が開発中である。本開示に係る事項は、VVCの文脈で使用され得る。
図3は、本開示の一実施形態に従ったビデオデコーダ(210)の機能ブロック図であるとし得る。
受信器(310)が、デコーダ(210)によって復号される1つ以上の符号化映像シーケンスを受信することができ、同じ又は他の実施形態において、一度に1つの符号化映像シーケンスを受信することができ、各符号化映像シーケンスの復号は、他の符号化映像シーケンスとは独立である。符号化映像シーケンスは、符号化された映像データを格納するストレージ装置へのハードウェア/ソフトウェアリンクとし得るものであるチャネル(312)から受信され得る。受信器(310)は、符号化映像データを、例えば符号化された音声データ及び/又は補助データストリームといった他のデータと共に受信してもよく、それらのデータは、それらそれぞれの使用エンティティ(図示せず)に転送され得る。受信器(310)は、符号化映像シーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、受信器(310)とエントロピーデコーダ/パーサ(320)(以下、“パーサ”)との間にバッファメモリ(315)が結合され得る。受信器(310)が、十分な帯域幅及び可制御性の格納/転送装置から又は等同期ネットワークからデータを受信しているとき、バッファ(315)は、必要とされないことがあり、又は小さくされることができる。例えばインターネットなどのベストエフォート型パケットネットワーク上での使用では、バッファ(315)が必要とされ得るとともに、比較的大きくされ、そして有利には、適応可能なサイズのものにされ得る。
ビデオデコーダ(210)は、エントロピー符号化された映像シーケンスからシンボル(321)を再構成するためのパーサ(320)を含み得る。それらシンボルのカテゴリは、デコーダ(210)の動作を管理するために使用される情報を含むとともに、可能性として、例えばディスプレイ(212)などのレンダリング装置を制御する情報を含み得る。ディスプレイ(212)などのレンダリング装置は、デコーダの一体部分ではないが、図3に示したようにデコーダに結合されることができる。(1つ以上の)レンダリング装置用の制御情報は、補足拡張情報(Supplementary Enhancement Information;SEI)メッセージ又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形態とし得る。パーサ(320)は、受け取った符号化映像シーケンスを構文解析/エントロピー復号し得る。符号化映像シーケンスの符号化は、映像符号化技術又は標準によることができ、可変長符号化、ハフマン符号化、文脈依存性を持つ又は持たない算術符号化などを含め、当業者に周知の原理に従うことができる。パーサ(320)は、符号化映像シーケンスから、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つに関する一組のサブグループパラメータを抽出することができる。サブグループは、グループ・オブ・ピクチャ(GOP)、ピクチャ、サブピクチャ、タイル、スライス、ブリック、マクロブロック、符号化ツリーユニット(CTU)、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。タイルは、ピクチャの特定のタイル列及び行内の矩形領域のCU/CTUを指し示し得る。ブリックは、特定のタイル内の矩形領域のCU/CTU行を指し示し得る。スライスは、NALユニットに含まれるものであるピクチャの1つ以上のブリックを指し示し得る。サブピクチャは、ピクチャ内の矩形領域の1つ以上のスライスを指し示し得る。エントロピーデコーダ/パーサはまた、符号化映像シーケンス情報から、例えば変換係数、量子化パラメータ値、動きベクトルなどの情報を抽出し得る。
パーサ(320)は、シンボル(321)を生み出すよう、バッファ(315)から受け取った映像シーケンスにエントロピー復号/構文解析処理を実行し得る。
シンボル(321)の再構成には、符号化された映像ピクチャ又はその部分のタイプ及び他の要因(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロックなど)に応じて、複数の異なるユニットが関与し得る。どのユニットがどのように関与するかは、パーサ(320)によって符号化映像シーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(320)と以下の複数ユニットとの間でのこのようなサブグループ制御情報の流れは、明瞭さのために図示していない。
既述の機能ブロックを超えて、デコーダ210は概念的に、後述のような多数の機能ユニットに細分化されることができる。商業上の制約の下で稼働する実用的な実装において、これらのユニットのうちの多くが互いに密接にインタラクトし、少なくとも部分的に互いに統合され得る。しかしながら、本開示に係る事項を説明するという目的のためには、以下の機能ユニットへの概念的な細分化が適切である。
第1のユニットは、スケーラ/逆変換ユニット(351)である。スケーラ/逆変換ユニット(351)は、パーサ(320)からの(1つ以上の)シンボル(321)として、どの変換を使用すべきか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報とともに、量子化された変換係数を受け取る。これは、アグリゲータ(355)に入力されることが可能な、サンプル値を有するブロックを出力することができる。
場合により、スケーラ/逆変換(351)の出力サンプルは、イントラ符号化されたブロック、すなわち、先行して再構成されたピクチャからの予測情報を使用していないが、現在ピクチャのうち先行して再構成された部分からの予測情報を使用することができるブロック、に関係し得る。このような予測情報は、イントラピクチャ予測ユニット(352)によって提供されることができる。場合により、イントラピクチャ予測ユニット(352)は、現在の(部分的に再構成された)ピクチャ(358)からフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。アグリゲータ(355)は、場合により、サンプル毎に、イントラ予測ユニット(352)が生成した予測情報を、スケーラ/逆変換ユニット(351)によって提供される出力サンプル情報に付加する。
他の場合には、スケーラ/逆変換ユニット(351)の出力サンプルは、インター符号化された、動き補償された可能性のあるブロックに関係し得る。このような場合、動き補償予測ユニット(353)が、参照ピクチャメモリ(357)にアクセスして、予測に使用されるサンプルをフェッチすることができる。フェッチされたサンプルを、ブロックに関係するシンボル(321)に従って動き補償した後、これらのサンプルが、アグリゲータ(355)によって、スケーラ/逆変換ユニットの出力(この場合、残余サンプル又は残余信号と呼ぶ)に付加されて、出力サンプル情報を生成することができる。そこから動き補償ユニットが予測サンプルをフェッチする参照ピクチャメモリ内のアドレスは、例えばX、Y、及び参照ピクチャ成分を有し得るシンボル(321)の形態で動き補償ユニットに利用可能な動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されるときに参照ピクチャメモリからフェッチされたサンプル値の補間や、動きベクトル予測メカニズムなどを含むことができる。
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)にて様々なループフィルタリング技術に掛けられ得る。映像圧縮技術は、インループ(in-loop)フィルタ技術を含むことができ、これは、符号化映像ビットストリームに含められてパーサ(320)からのシンボル(321)としてループフィルタユニット(356)に利用可能にされるパラメータによって制御されるが、符号化ピクチャ又は符号化映像シーケンスのうちの(復号順で)先行部分の復号中に得られたメタ情報にも応答することができるとともに、先行して再構成されてループフィルタリングされたサンプル値にも応答することができる。
ループフィルタユニット(356)の出力は、レンダリング装置(212)に出力されることが可能なサンプルストリームとすることができ、これはまた、将来のインターピクチャ予測での使用のために参照ピクチャメモリに格納され得る。
ある特定の符号化ピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用されることができる。ある符号化ピクチャが完全に再構成され、その符号化ピクチャが参照ピクチャとして(例えば、パーサ(320)によって)特定されると、現在の参照ピクチャ(358)が参照ピクチャバッファ(357)の一部となり得るとともに、次の符号化ピクチャの再構成を開始する前に新しい現在ピクチャメモリが再割り当てされ得る。
ビデオデコーダ210は、例えばITU-T勧告H.235などの標準にて文書化され得る所定の映像圧縮技術に従って復号処理を実行し得る。符号化映像シーケンスは、映像圧縮技術文書又は標準、特にその中のプロファイル文書の中で規定されるように映像圧縮技術又は標準の構文を忠実に守るという意味で、使用される映像圧縮技術又は標準によって規定される構文に従い得る。また、準拠のためにこれまた必要なことは、符号化映像シーケンスの複雑さが、映像圧縮技術又は標準のレベルによって定められる限度内であることである。場合により、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどを制約する。レベルによって設定される制限は、場合により、仮説的リファレンスデコーダ(Hypothetical Reference Decoder;HRD)仕様、及び符号化映像シーケンスにてシグナリングされるHRDバッファ管理用のメタデータを通して更に制約され得る。
一実施形態において、受信器(310)は、符号化された映像と共に追加(冗長)データを受信し得る。追加データは、(1つ以上の)符号化映像シーケンスの一部として含められ得る。追加データは、データを適切に復号するため、及び/又は元の映像データをいっそう正確に再構成するために、ビデオデコーダ(210)によって使用され得る。追加データは、例えば、時間的、空間的、又はSNRエンハンスメント層、冗長スライス、冗長ピクチャ、順方向誤り訂正符号などの形態とし得る。
図4は、本開示の一実施形態に従ったビデオエンコーダ(203)の機能ブロック図とし得る。
エンコーダ(203)は、エンコーダ(203)によって符号化される(1つ以上の)映像画像をキャプチャし得る映像ソース(201)(エンコーダの一部ではない)から映像サンプルを受信し得る。
映像ソース(201)は、エンコーダ(203)によって符号化されるソース映像シーケンスを、任意の好適なビット深さ(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、及び任意の好適なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)のものとし得るデジタル映像サンプルストリームの形態で提供し得る。メディアサービス提供システムにおいて、映像ソース(201)は、事前に準備された映像を格納したストレージ装置とし得る。テレビ会議システムでは、映像ソース(201)は、ローカルな画像情報を映像シーケンスとしてキャプチャするカメラとし得る。映像データは、順に見たときに動きを伝える複数の個々のピクチャとして提供され得る。それらピクチャ自体は、ピクセルの空間アレイとして編成されることができ、各ピクセルが、使用されるサンプリング構造、色空間などに応じて、1つ以上のサンプルを有することができる。当業者は、ピクセルとサンプルとの関係を直ちに理解することができる。以下の説明は、サンプルに焦点を当てている。
一実施形態によれば、エンコーダ(203)は、ソース映像シーケンスのピクチャを、リアルタイムで、又はアプリケーションによって要求される他の時間制約下で、符号化映像シーケンス(443)へと符号化及び圧縮し得る。適切な符号化速度を強制することは、コントローラ(450)の1つの機能である。コントローラは、後述するような他の機能ユニットを制御し、それらのユニットに機能的に結合される。その結合は、明瞭さのために図示されていない。コントローラによって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などを含み得る。当業者は、特定のシステム設計に合わせて最適化されるビデオエンコーダ(203)に関連し得るものとして、コントローラ(450)の他の機能を直ちに特定することができる。
一部のビデオエンコーダは、当業者が“符号化ループ”として直ちに認識するものにて動作する。過度に単純化した説明として、符号化ループは、エンコーダの符号化部分(430)(以下、“ソースコーダ”)(符号化される入力ピクチャ及び(1つ以上の)参照ピクチャに基づいてシンボルを作成することを担う)と、エンコーダ(203)に埋め込まれた(ローカル)デコーダ(433)とで構成されることができ、(ローカル)デコーダ(433)は、シンボルを再構成して、(リモート)デコーダも作成し得る(本開示に係る事項において検討している映像圧縮技術においては、シンボルと符号化映像ビットストリームとの間の如何なる圧縮も可逆であるため)ものであるサンプルデータを生成する。その再構成されたサンプルストリームが、参照ピクチャメモリ(434)に入力される。シンボルストリームの復号は、デコーダ位置(ローカル又はリモート)に依存しないビット正確な結果をもたらすので、参照ピクチャバッファのコンテンツもローカルエンコーダとリモートエンコーダとの間でビット正確である。換言すれば、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに“見る”のとまったく同じサンプル値を参照ピクチャサンプルとして“見る”。この参照ピクチャ同期性の基本原理(及び、例えばチャネルエラーのために、同期性を維持することができない場合に結果として生じるドリフト)は、当業者によく知られている。
“ローカル”デコーダ(433)の動作は、“リモート”デコーダ(210)のものと同じであるとすることができ、それは、図3に関連して既に詳細に上述されている。しかし、図4も簡単に参照するに、シンボルが利用可能であり、且つエントロピーコーダ(445)及びパーサ(320)によるシンボルの符号化映像シーケンスへの符号化/復号は可逆であるとし得るので、チャネル(312)、受信器(310)、バッファ(315)、及びパーサ(320)を含むデコーダ(210)のエントロピー復号部分は、ローカルデコーダ(433)に完全に実装されなくてよい。
この時点で気付くことができることには、デコーダ内に存在する構文解析/エントロピー復号を除く如何なるデコーダ技術も必ず、対応するエンコーダ内で、実質的に同じ機能的形態で存在する必要がある。この理由により、本開示に係る事項はデコーダ動作に焦点を当てている。エンコーダ技術の説明は、徹底して説明したデコーダ技術の逆であるため、省略することができる。特定の分野においてのみ、より詳細な説明が必要とされ、以下に提供される。
その動作の一部として、ソースコーダ(430)は、入力フレームを、映像シーケンスからの、“参照フレーム”として指定された1つ以上の先に符号化されたフレームに対して予測的に符号化するものである動き補償予測符号化を実行し得る。斯くして、符号化エンジン(432)は、入力フレームのピクセルブロックと、入力フレームに対する(1つ以上の)予測参照として選択され得る(1つ以上の)参照フレームのピクセルブロックとの間の差分を符号化する。
ローカルビデオデコーダ(433)は、参照フレームとして指定され得るフレームの符号化映像データを、ソースコーダ(430)によって作成されたシンボルに基づいて復号し得る。符号化エンジン(432)の動作は、有利には、不可逆プロセスとし得る。符号化映像データがビデオデコーダ(図4には示されていない)で復号され得るとき、再構成された映像シーケンスは典型的に、幾分の誤差を伴うソース映像シーケンスのレプリカであり得る。ローカルビデオデコーダ(433)は、参照フレーム上でビデオデコーダによって実行され得る復号プロセスを複製し、再構成された参照フレームを参照ピクチャキャッシュ(434)に格納させるようにし得る。斯くして、エンコーダ(203)は、ファーエンドのビデオデコーダによって得られることになる再構成参照フレームと共通のコンテンツを持つ再構成参照フレームのコピーをローカルに格納し得る。
予測器(435)は、符号化エンジン(432)のために予測探索を実行し得る。すなわち、符号化すべき新たなフレームに関して、予測器(435)は、新たなピクチャ用の適切な予測参照としての役割を果たし得るサンプルデータ(候補参照ピクセルブロックとして)又は例えば参照ピクチャ動画ベクトルやブロック形状などの特定のメタデータについて、参照ピクチャメモリ(434)を検索し得る。予測器(435)は、適切な予測参照を見出すために、ピクセルブロック毎に動作し得る。場合により、予測器(435)によって得られた検索結果により決定されるように、入力ピクチャは、参照ピクチャメモリ(434)に格納された複数の参照ピクチャから引き出された予測参照を有し得る。
コントローラ(450)は、例えば、映像データを符号化するのに使用されるパラメータ及びサブグループパラメータの設定を含め、映像コーダ(430)の符号化処理を管理し得る。
前述の全ての機能ユニットの出力が、エントロピーコーダ(445)におけるエントロピー符号化に掛けられ得る。エントロピーコーダは、例えばハフマン符号化、可変長符号化、算術符号化などといった当業者に知られた技術に従ってシンボルを無損失圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化映像シーケンスへと変換する。
送信器(440)が、エントロピーコーダ(445)によって生成された符号化映像シーケンスをバッファリングし、それを、通信チャネル(460)を介した伝送のために準備し得る。通信チャネル(460)は、符号化された映像データを格納するストレージ装置へのハードウェア/ソフトウェアリンクとし得る。送信器(440)は、映像コーダ(430)からの符号化映像データを、例えば符号化オーディオデータ及び/又は補助データストリーム(ソースは図示していない)といった、送信される他のデータとマージし得る。
コントローラ(450)は、エンコーダ(203)の動作を管理し得る。符号化において、コントローラ(450)は、各符号化ピクチャに、それぞれのピクチャに適用され得る符号化技術に影響を及ぼし得るものである特定の符号化ピクチャタイプを割り当て得る。例えば、ピクチャはしばしば、以下のフレームタイプの1つとして割り当てられ得る。
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のフレームを使用することなく、符号化コード化及び復号され得るものとし得る。一部の映像コーデックは、例えば独立デコーダリフレッシュピクチャを含め、異なるタイプのイントラピクチャを許している。当業者は、Iピクチャのそれら異形、並びにそれらそれぞれの用途及び特徴を知っている。
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くて1つの動きベクトルと参照インデックスとを使用して、イントラ予測又はインター予測を用いて符号化及び復号され得るものとし得る。
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、多くて2つの動きベクトルと参照インデックスとを使用して、イントラ予測又はインター予測を用いて符号化及び復号され得るものとし得る。同様に、多重予測画像は、単一のブロックの再構成のために3つ以上の参照ピクチャと関連メタデータとを使用することができる。
ソースピクチャは、一般に、空間的に複数のサンプルブロック(例えば、各々4×4、8×8、4×8、又は16×16サンプルのブロック)に細分化され、ブロック毎に符号化され得る。ブロックは、それらブロックのそれぞれのピクチャに適用される符号化割り当てによって決定される他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは非予測的に符号化されることができ、あるいは、それらは同じピクチャの既に符号化されたブロックを参照して予測的に符号化されることができる(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、非予測的に、あるいは、1つの先に符号化された参照ピクチャを参照して空間予測又は時間予測を介して、符号化されることができる。Bピクチャのブロックは、非予測的に、あるいは、1つ又は2つの先に符号化された参照ピクチャを参照して空間予測又は時間予測を介して、符号化されることができる。
ビデオコーダ(203)は、例えばITU-T勧告H.265などの所定の映像符号化技術又は標準に従って符号化処理を実行し得る。その動作において、ビデオコーダ(203)は、入力映像シーケンスにおける時間的及び空間的な冗長性を活用する予測的な符号化処理を含め、様々な圧縮処理を実行し得る。符号化された映像データは、それ故に、使用されている映像符号化技術又は標準によって規定される構文に従い得る。
一実施形態において、送信器(440)は、符号化された映像と共に追加データを送信し得る。映像コーダ(430)が、そのようなデータを、符号化映像シーケンスの一部として含め得る。追加データは、時間的/空間的/SNRエンハンスメント層、例えば冗長ピクチャ及びスライスなどの他の形態の冗長データ、補足拡張情報(SEI)メッセージ、ビデオユーザビリティ情報(VUI)パラメータセットフラグメントなどを有し得る。
最近、複数の意味的に独立したピクチャ部分の、単一のビデオピクチャへの、圧縮ドメイン集約又は抽出が注目を集めている。特に、例えば、360コーディング又は特定の監視アプリケーションのコンテキストにおいて、複数の意味的に独立したソースピクチャ(例えば、立方体投影360シーンの6つの立方体表面、又はマルチカメラ監視セットアップの場合の個々のカメラ入力)が、所与の時点でのシーン毎の異なるアクティビティに対処するために、別々の適応解像度設定を必要とすることがある。換言すれば、エンコーダは、所定の時点で、360シーン又は監視シーンの全体を構成する複数の異なる意味的に独立したピクチャに対して異なる再サンプリング係数を使用することを選択することがある。単一のピクチャに結合されるとき、それは参照ピクチャの再サンプリングが実行されること、及び符号化されるピクチャの複数の部分のために適応解像度符号化シグナリングが利用可能であることを必要とする。
以下にて、この説明の残りの部分で参照されることになる幾つかの用語を紹介する。
サブピクチャは、一部のケースで、意味的にグループ化され、変更された解像度で独立に符号化され得る矩形構成のサンプル、ブロック、マクロブロック、符号化ユニット、又は類似のエンティティを指し得る。1つ以上のサブピクチャでピクチャを形成することができる。1つ以上の符号化サブピクチャが、符号化ピクチャを形成し得る。1つ以上のサブピクチャを1つのピクチャへと組み立てることができ、また、1つ以上のサブピクチャをピクチャから抽出することができる。特定の環境において、1つ以上の符号化サブピクチャが、サンプルレベルへのトランスコーディングなしで圧縮ドメインにて符号化ピクチャへと組み立てられることができ、同じ又は他のケースにおいて、1つ以上の符号化サブピクチャが、圧縮ドメインにて符号化ピクチャから抽出されることができる。
適応解像度変更(Adaptive Resolution Change;ARC)は、例えば参照ピクチャ再サンプリングによって、符号化映像シーケンス内のピクチャ又はサブピクチャの解像度の変更を可能にする機構を指し得る。これ以降、ARCパラメータは、適応解像度変更を実行するために必要とされる制御情報を指し、それは、例えば、フィルタパラメータ、スケーリング係数、出力及び/又は参照ピクチャの解像度、種々の制御フラグなどを含み得る。
実施形態において、単一の意味的に独立した符号化映像ピクチャ上で符号化及び復号が実行され得る。独立したARCパラメータを持つ複数のサブピクチャの符号化/復号の意味あい及びそれがもたらす追加の複雑さを説明する前に、ARCパラメータをシグナリングするためのオプションを説明しておく。
図5A-図5Eを参照するに、ARCパラメータをシグナリングするための幾つかの実施形態が示されている。これらの実施形態の各々で言及するように、これらは、符号化効率、複雑性、及びアーキテクチャの観点から、一定の利点及び一定の欠点を有し得る。映像符号化標準又は技術は、ARCパラメータをシグナリングするために、これらの実施形態のうちの1つ以上又は関連技術から知られるオプションを選択し得る。これらの実施形態は、相互に排他的であるわけではなく、考えられる限りにおいて、用途上のニーズ、関与する標準技術、又はエンコーダの選択に基づいて相互に入れ換えられ得る。
ARCパラメータのクラスは、以下を含み得る。
- X及びYの次元で別々の又は組み合わされるアップ/ダウンサンプリング係数。
- 所与の数のピクチャに対する一定速度のズームイン/アウトを指し示す、時間次元の追加を伴うアップ/ダウンサンプリング係数。
- 上の2つのうちいずれかは、(1つ以上の)ファクタを含むテーブル内を指し得る1つ以上の恐らくは短い構文要素の符号化を伴い得る。
- 組み合わせての又は別々の、入力ピクチャ、出力ピクチャ、参照ピクチャ、符号化ピクチャのサンプル、ブロック、マクロブロック、符号化ユニット(CU)、又は他の好適な粒度の単位での、X次元又はY次元における解像度。2つ以上の解像度(例えば、入力ピクチャ用の1つ、参照ピクチャ用の1つ)が存在する場合、特定のケースにおいて、1組の値が別の1組の値から推定され得る。これは、例えばフラグの使用によって、ゲーティングされ得る。より詳細な例について、以下を参照されたい。
- “ワーピング”座標は、やはり上述のような好適な粒度での、H.263付属書Pで使用されるものと類似である。H.263付属書Pは、このようなワーピング座標を符号化するための1つの効率的な手法を規定しているが、考えられる限りにおいて、可能性としてもっと効率的な他の手法も考案され得る。例えば、付属書Pのワーピング座標の可変長可逆“ハフマン”形式の符号化は、好適な長さのバイナリ符号化によって置き換えられてもよく、その場合、バイナリコードワードの長さが、例えば、最大ピクチャサイズから導出され、場合により、最大ピクチャサイズの境界の外に“ワープ”することを可能にするよう、ある一定の係数を乗算され、そして、ある一定の値だけオフセットされ得る。
- アップ又はダウンサンプリングフィルタパラメータ。実施形態において、アップサンプリング及び/又はダウンサンプリングのための単一のフィルタのみが存在し得る。しかしながら、実施形態において、フィルタ設計においていっそうの柔軟性を可能にすることが望ましいとすることができ、それがフィルタパラメータのシグナリングを必要とし得る。そのようなパラメータは、可能なフィルタ設計のリスト内のインデックスを介して選択されることができ、フィルタは、完全に指定されることができ(例えば、フィルタ係数のリストを介して、適切なエントロピー符号化技術を用いて)、フィルタは、代わってそれが上述の機構のうちのいずれかに従ってシグナリングされるアップ/ダウンサンプリング比を通じて暗示的に選択され得る。
これ以降、この説明は、コードワードを通じて指し示される有限セットのアップ/ダウンサンプリング係数の符号化(X次元及びY次元の両方で同じ係数が使用される)を仮定する。そのコードワードは、例えばH.264及びH.265などの映像符号化仕様における特定の構文要素に対して普及しているExt-Golomb符号を用いて、可変長符号化され得る。1つの好適な、アップ/ダウンサンプリング係数への値のマッピングは、例えば、表1に従うことができる。
多くの類似のマッピングが、用途のニーズ、及び映像圧縮技術又は標準で利用可能なアップスケール及びダウンスケール機構の能力に従って考案され得る。この表は、より多くの値に拡張されてもよい。値はまた、例えばバイナリ符号化を用いて、Ext-Golomb符号以外のエントロピー符号化機構によって表現されてもよい。これは、例えばMANEによってなど、映像処理エンジン(エンコーダ及びデコーダ第一)自体の外側で再サンプリング係数が関心あるものであった場合に、ある一定の利点を有し得る。なお、解像度変更が要求されない状況では、上の表では1ビットのみである短いExt-Golomb符号を選択することができる。これは、最も一般的なケースに対してバイナリコードを使用するものよりも、符号化効率上の利点を有し得る。
表の中のエントリの数及びそれらのセマンティクスは、完全に又は部分的に設定可能とし得る。例えば、表の基本的な骨子は、例えばシーケンス又はデコーダパラメータセットなどの“ハイ”パラメータセットにて伝えられ得る。実施形態において、1つ以上のこのような表が、映像符号化技術又は標準で規定されることができ、例えばデコーダ又はシーケンスパラメータセットを通じて選択され得る。
以下、上述のように符号化されるアップサンプリング/ダウンサンプリング係数(ARC情報)がどのように映像符号化技術又は標準の構文に含められるかについて説明する。同様の考察が、アップ/ダウンサンプリングフィルタを制御する1つ又は少数のコードワードに適用され得る。フィルタ又は他のデータ構造に比較的大量のデータが必要とされる場合の議論ついて以下を参照されたい。
図5Aに示すように、H.263付属書Pは、4つのワーピング座標の形態をしたARC情報(502)をピクチャヘッダ(501)に含め、具体的にはH.263 PLUSPTYPE(503)ヘッダ拡張に含める。これは、a)利用可能なピクチャヘッダが存在し、且つb)ARC情報の頻繁な変更が予期される場合に、合理的な設計選択となり得る。しかしながら、H.263様式のシグナリングを使用する場合のオーバヘッドは非常に高くなることがあり、また、ピクチャヘッダが一時的な性質のものであり得るので、スケーリング係数がピクチャ境界の間で適切でないことがある。
図5Bに示すように、JVCET-M135-v1は、ピクチャパラメータセット(504)内に位置するARC参照情報(505)(インデックス)を含み、代わってシーケンスパラメータセット(507)内に位置するターゲット解像度を含むテーブル(506)を索引付ける。シーケンスパラメータセット(507)内のテーブル(506)中の可能な解像度の配置は、筆者によって為される言葉による記述によれば、能力入れ換え中の相互運用性折衝点としてSPSを使用することによって正当化され得る。解像度は、適切なピクチャパラメータセット(504)を参照することによって、ピクチャからピクチャへと、テーブル(506)中の値によって設定される制限内で変化することができる。
図5C-図5Eを参照するに、以下の実施形態は、映像ビットストリーム内でARC情報を伝達するために存在し得る。これらのオプションは各々、上述の実施形態に対する一定の利点を有する。同じ映像符号化技術又は標準において複数の実施形態が同時に存在してもよい。
例えば図5Cに示す実施形態などの実施形態において、例えば再サンプリング(ズーム)係数などのARC情報(509)は、スライスヘッダ、GOPヘッダ、タイルヘッダ、又はタイルグループヘッダ内に存在し得る。図5Cは、タイルグループヘッダ(508)が使用される実施形態を例示している。これは、例えば上で示したように、例えば単一の可変長ue(v)又は数ビットの固定長コードワードなど、ARC情報が小さい場合に適当であり得る。タイルグループヘッダ内に直接的にARC情報を持つことは、ピクチャ全体ではなく例えばそのタイルグループによって表されるサブピクチャに対してARC情報を適用可能にし得るという追加な利点を有する。以下も参照されたい。さらに、映像圧縮技術又は標準が(例えば、タイルグループベースの適応解像度変更とは対照的に)ピクチャ全体の適応解像度変更のみを想定している場合であっても、ARC情報をタイルグループヘッダに入れることは、H.263様式のピクチャヘッダにそれを入れることと比べて、エラー耐性の観点から一定の利点を有する。
例えば図5Dに示す実施形態などの実施形態において、ARC情報(512)自体は、例えばピクチャパラメータセット、ヘッダパラメータセット、タイルパラメータセット、適応パラメータセットなどの適切なパラメータセット内に存在してもよい。図5Dは、適応パラメータセット(511)が使用される実施形態を例示している。このパラメータセットの範囲は、有利には、例えばタイルグループなど、ピクチャよりも大きくないとし得る。ARC情報の使用は、関連するパラメータセットの有効化による暗示的なものである。例えば、映像符号化技術又は標準がピクチャベースのARCのみを企図する場合、ピクチャパラメータセット又は同等物が適切であり得る。
例えば図5Eに示す実施形態などの実施形態において、ARC参照情報(513)は、タイルグループヘッダ(514)又は類似のデータ構造内に存在し得る。この参照情報(513)は、例えばシーケンスパラメータセット又はデコーダパラメータセットといった、単一のピクチャを超える範囲を持つパラメータセット(516)内で利用可能なARC情報のサブセット(515)を参照することができる。
JVET-M0135-v1で使用されるようなタイルグループヘッダ、PPS、SPSからの、この追加レベルの、PPSの間接暗示的有効化は、不要であるように見える。何故なら、ピクチャパラメータセットを、シーケンスパラメータセットと同様に、能力折衝又はアナウンスに使用することができる(且つ、例えばRFC3984などの特定の標準において、有する)からである。しかしながら、ARC情報が、例えばタイルグループによって表されるサブピクチャにも適用可能であるべき場合、例えば適応パラメータセット又はヘッダパラメータセットなどの、タイルグループに限られた有効化範囲を持つパラメータセットの方が良い選択となり得る。また、ARC情報が、無視できる大きさよりも大きいものであり、例えば、多数のフィルタ係数などのフィルタ制御情報を含む場合、パラメータは、ヘッダ(508)を直接使用するよりも、符号化効率の観点から良い選択となり得る。何故なら、それらの設定は、同じパラメータセットを参照することによって将来のピクチャ又はサブピクチャによって再利用可能とし得るからである。
シーケンスパラメータセット、又は複数のピクチャにまたがる範囲を持つ別のより高いパラメータセットを使用する場合、以下の一定の考察が適用され得る。
1. ARC情報テーブル(516)を格納するパラメータセットは、一部のケースにおいてシーケンスパラメータセットとすることができるが、他のケースにおいて有利にはデコーダパラメータセットとし得る。デコーダパラメータセットは、複数のCVS、はっきり言えば符号化映像ストリーム、すなわち、セッション開始からセッション解除までの全ての符号化映像ビット、という有効化範囲を持つことができる。このような範囲はいっそう適切であり得る。何故なら、取り得るARC係数は、恐らくはハードウェアにて実装されるデコーダ機能とすることができ、ハードウェア機能は、CVS(これは、少なくとも一部の娯楽システムにおいて、1秒以下の長さのグループ・オブ・ピクチャである)とともに変化する傾向にはないからである。とは言え、テーブルをシーケンスパラメータセットに入れることは、特に以下のポイント2に関連してここに記載される配置オプションに明確に含まれることである。
2. ARC参照情報(513)は、有利には、JVCET-M0135-v1においてのようにピクチャパラメータ内にではなく、例えばタイルグループヘッダ(514)など、ピクチャ/スライスタイル/GOP/タイルグループヘッダ内に直接配置され得る。例えば、エンコーダが、例えばARC参照情報など、ピクチャパラメータセット内の単一の値を変更したい場合、新しいPPSを作成し、その新しいPPSを参照しなければならない。ARC参照情報のみが変化し、例えばPPS内の量子化行列情報などの他の情報はそのままであると仮定する。このような情報は、かなりのサイズのものとなることがあり、新しいPPSを完全にするために再送される必要がある。ARC参照情報(513)は、例えばテーブルへのインデックスなどの単一のコードワードとすることができ、そして、それが変化する唯一の値であるので、例えば量子化行列情報の全てを再送することは煩雑で無駄の多いこととなり得る。そうであれば、JVET-M0135-v1で提案されているように、PPSを介した遠回りなやり方を回避することが、符号化効率の観点からかなり良好なものとなり得る。同様に、ARC参照情報をPPS内に置くことは、ピクチャパラメータセット有効化の範囲がピクチャであるため、ARC参照情報(513)によって参照されるARC情報が、サブピクチャに適用されるのでなく、ピクチャ全体に適用され得るという更なる欠点を有する。
同じ実施形態又は他の一実施形態において、ARCパラメータのシグナリングは、図6A-6Bに概要を示す詳細例に従うことができる。図6A-図6Bは、例えば少なくとも1993年以降の映像符号化標準で使用されるような、C様式のプログラミングに大まかに従う表記法を用いた表現タイプの構文図を示している。太字のラインはビットストリームに存在する構文要素を示し、太字でないラインは制御フローや変数の設定を示すことが多い。
図6Aに示されるように、ピクチャの(矩形とし得る)部分に適用可能なヘッダの例示的な構文構造としてのタイルグループヘッダ(601)は、条件付きで、可変長のExp-Golomb符号化構文要素dec_pic_size_idx(602)(太字で示されている)を含むことができる。タイルグループヘッダ内のこの構文要素の存在は、ここでは太字で示されていないフラグの値である適応解像度(603)の使用にてゲーティングされることができ、これが意味することは、構文図の中で発生する箇所で、フラグがビットストリーム中に存在するということである。このピクチャ又はその一部に対して適応解像度が使用されるか否かは、ビットストリームの内側又は外側の任意の高水準構文構造にてシグナリングされることができる。図示した例では、それは、以下に概説するようにシーケンスパラメータセット内でシグナリングされる。
図6Bを参照して、シーケンスパラメータセット(610)の抜粋も示す。図示の最初の構文要素は、adplicative_pic_resolution_change_flag(611)である。真であるとき、このフラグは、適応解像度の使用を指し示すことができ、代わってこれは、特定の制御情報を必要とし得る。この例において、そのような制御情報は、パラメータセット(612)及びタイルグループヘッダ(601)内のif()ステートメントに基づくフラグの値に基づいて、条件付きで存在する。
適応解像度が使用されるとき、この例において、出力解像度がサンプル単位で符号化される(613)。参照符号613は、output_pic_width_in_luma_samples及びoutput_pic_height_in_luma_samplesの両方を指しており、これらが一緒になって、出力ピクチャの解像度を定めることができる。映像符号化技術又は標準のどこかで、いずれかの値に対する特定の制限が定められ得る。例えば、これらの2つの構文要素の値の積とし得るものである出力サンプルの総数を、レベル規定が制限することがある。また、特定の映像符号化技術若しくは標準、又は例えばシステム標準などの外部の技術若しくは標準が、ナンバリング範囲(例えば、一方又は両方の次元が2のべき乗の数で除算可能でなければならない)又はアスペクト比(例えば、幅及び高さが例えば4:3又は16:9などの関係になければならない)を制限することがある。このような制限は、ハードウェア実装を容易にするため、又は他の理由のために導入されることがあり、技術的によく知られている。
特定の用途において、エンコーダがデコーダに、暗黙的にそのサイズを出力ピクチャサイズと仮定するのではなく、所定の参照ピクチャサイズを使用するように指示することが望ましいことがある。この例では、構文要素reference_pic_size_present_flag(614)が、参照ピクチャ寸法(615)(ここでも、この参照符号は幅及び高さの両方を指している)の条件付き存在をゲーティングする。
最後に、可能な復号ピクチャの幅及び高さのテーブルが示されている。このようなテーブルは、例えば、テーブルインジケーション(num_dec_pic_size_in_luma_samples_minus1)(616)によって表されることができる。“minus1”は、この構文要素の値の解釈を指すことができる。例えば、符号化された値がゼロである場合、1つのテーブルエントリが存在し、値が5である場合、6つのテーブルエントリが存在する。テーブル内の各“ライン”で、復号ピクチャの幅及び高さが構文(617)に含められている。
提示したテーブルエントリ(617)は、タイルグループヘッダ内の構文要素dec_pic_size_idx(602)を用いて索引付けられることができ、それにより、タイルグループごとに異なる復号サイズ(事実上、ズーム係数)が可能にされる。
例えばVP9といった特定の映像符号化技術又は標準は、空間的スケーラビリティを可能にするために、時間的スケーラビリティと共に、特定の形態の参照ピクチャ再サンプリングを実装することによって空間的スケーラビリティをサポートする。特に、特定の参照ピクチャが、ARCスタイルの技術を用いて、より高い解像度へとアップサンプリングされ、空間エンハンスメント層のベースを形成し得る。これらアップサンプリングされたピクチャは、ディテールを追加するよう、その高い解像度で通常の予測機構を用いて精緻化され得る。
ここで説明される実施形態は、そのような環境で使用されることができる。特定のケースで、同じ又は他の一実施形態において、NALユニットヘッダ内の例えば時間ID(Temporal ID)フィールドなどの値が、時間層だけでなく空間層も指し示すために使用され得る。そうすることは、特定のシステム設計に関して一定の利点を有することができ、例えば、NALユニットヘッダの時間ID値に基づいて選択される時間層のために作成されて最適化された既存の選択転送ユニット(Selected Forwarding Units;SFU)を、スケーラブルな環境のために、変更なく使用することができる。これを可能にするために、符号化ピクチャサイズと時間層との間のマッピングがNALユニットヘッダ内の時間IDフィールドによって指し示される必要があるとし得る。
一部の映像符号化技術では、アクセスユニット(AU)が、時間における所与のインスタンスにおいてキャプチャされてそれぞれピクチャ/スライス/タイル/NALユニットビットストリームへと合成された(1つ以上の)符号化ピクチャ、スライス、タイル、NALユニットなどを参照することができる。この時間インスタンスは、例えば、合成時間とし得る。
HEVC及び他の特定の映像符号化技術では、ピクチャオーダカウント(POC)値が、復号ピクチャバッファ(decoded picture buffer;DPB)に格納された複数の参照ピクチャの中から選択された参照ピクチャを指し示すために使用され得る。アクセスユニット(AU)が1つ以上のピクチャ、スライス又はタイルを含む場合、同一のAUに属する各ピクチャ、スライス又はタイルは、同一のPOC値を担持することができ、それから、それらが同一の合成時間のコンテンツから作成されたものであるということを導出することができる。換言すれば、2つのピクチャ/スライス/タイルが同一のPOC値を担持しているシナリオで、それは、それら2つのピクチャ/スライス/タイルが同じAUに属し且つ同じ合成時間を持つことを指し示すものであるとすることができる。逆に、異なるPOC値を持つ2つのピクチャ/タイル/スライスは、それらのピクチャ/スライス/タイルが異なるAUに属し、異なる合成時間を持つことを指し示すことができる。
実施形態において、この厳正な関係は、アクセスユニットが異なるPOC値を有する複数のピクチャ、スライス、又はタイルを含むことができるという点で緩和され得る。1つのAU内で複数の異なるPOC値を許すことにより、POC値を用いて、等しいプレゼンテーション時間を持つ潜在的に独立して復号可能なピクチャ/スライス/タイルを特定することが可能になる。これは、ひいては、更に詳細に後述するように、例えば参照ピクチャセットシグナリング又は参照ピクチャリストシグナリングといった参照ピクチャ選択シグナリングの変更なしに、複数のスケーラブル層のサポートを可能にすることができる。
しかしながら、POC値のみから、ピクチャ/スライス/タイルが属するAUを、異なるPOC値を持つ他のピクチャ/スライス/タイルに対して識別できることがなおも望ましい。これは、以下に説明するようにして達成されることができる。
実施形態において、アクセスユニットカウント(AUC)が、例えばNALユニットヘッダ、スライスヘッダ、タイルグループヘッダ、SEIメッセージ、パラメータセット、又はAUデリミタなどの高水準構文構造にてシグナリングされ得る。AUCの値は、どのNALユニット、ピクチャ、スライス、又はタイルが所与のAUに属するかを特定するために使用され得る。AUCの値は、区別可能な合成時間インスタンスに対応しているとし得る。AUC値はPOC値の倍数に等しいとし得る。POC値を整数値で除算することにより、AUC値が算出され得る。特定のケースにおいて、除算演算は、デコーダ実装に一定の負担をかけ得る。そのような場合、AUC値のナンバリング空間における小さな制約が、除算演算をシフト演算で置き換えることを可能にし得る。例えば、AUC値は、POC値範囲の最上位ビット(MSB)値に等しいとし得る。
実施形態において、AUごとのPOCサイクルの値(poc_cycle_au)が、例えばNALユニットヘッダ、スライスヘッダ、タイルグループヘッダ、SEIメッセージ、パラメータセット、又はAUデリミタなどの高水準構文構造にてシグナリングされ得る。poc_cycle_auは、どれだけの数の連続した異なるPOC値が同じAUに関連付けられ得るかを指し示し得る。例えば、poc_cycle_auの値が4に等しい場合、両端を含めて0-3に等しいPOC値を持つピクチャ、スライス又はタイルを、0に等しいAUC値を持つAUに関連付けることができ、両端を含めて4-7に等しいPOC値を持つピクチャ、スライス又はタイルを、1に等しいAUC値を持つAUに関連付けることができる。従って、AUCの値は、POC値をpoc_cycle_auの値で割ることによって推定され得る。
実施形態において、poc_cyle_auの値は、例えばビデオパラメータセット(VPS)内に位置した、符号化映像シーケンス内の空間又はSNR層の数を特定する情報から導出され得る。そのような可能な関係の一例を以下にて簡単に説明する。上述の導出は、VPSにおいて数ビットを節約し、従って符号化効率を改善し得るが、一部の実施形態において、poc_cycle_auは、例えばピクチャなどのビットストリームの所与の小さい部分に対してpoc_cycle_auを最小化することができるように、階層的にビデオパラメータセットの下で適切な高水準構文構造にて明示的に符号化されてもよい。この最適化は、POC値、及び/又はPOCを間接的に参照する構文要素の値が、低水準構文構造にて符号化され得るので、上の導出プロセスを通じて節約できるものよりも多くのビットを節約し得る。
実施形態において、図8は、符号化映像シーケンス内の全てのピクチャ/スライスに使用されるpoc_cycle_auを指し示すものであるVPS(又はSPS)内のvps_poc_cycle_auの構文要素と、スライスヘッダ内の現在スライスのpoc_cycle_auを指し示すものであるslice_poc_cycle_auの構文要素とをシグナリングするための構文テーブルの一例を示している。POC値がAUごとに一様に増加する場合、VPS内のvps_contant_poc_cycle_per_auを1に設定しく設定されることができ、VPS内でvps_poc_cycle_auがシグナリングされ得る。この場合、slice_poc_cycle_auは明示的にシグナリングされなくてよく、各AUのAUCの値は、POCの値をvps_poc_cycle_auで割ることによって算出され得る。POC値がAUごとに一様に増加しない場合には、VPS内のvps_contant_poc_cycle_per_auは0に等しく設定され得る。この場合、vps_access_unit_cntはシグナリングされずに、slice_access_unit_cntが各スライス又はピクチャのスライスヘッダ内でシグナリングされ得る。各スライス又はピクチャが異なる値のslice_access_unit_cntを持ち得る。各AUのAUCの値は、POCの値をslice_poc_cycle_auで割ることによって算出され得る。
図9は、上のプロセスの一例を示すブロック図を示している。例えば、動作S910にて、VPS(又はSPS)を構文解析することができ、動作S920にて、AUごとのPOCサイクルが符号化映像シーケンス内で一定であるかを決定することができる。AUごとのPOCサイクルが一定である場合(動作S920でYES)、動作S930にて、特定のアクセスユニットに関するアクセスユニットカウントの値が、符号化映像シーケンスについてシグナリングされるpoc_cycle_au及び該特定のアクセスユニットのPOC値から算出され得る。AUごとのPOCサイクルが一定でない場合(動作S920でNO)、動作S940にて、特定のアクセスユニットに関するアクセスユニットカウントの値が、ピクチャレベルでシグナリングされるpoc_cycle_au及び該特定のアクセスユニットのPOC値から算出され得る。動作S950にて、新たなVPS(又はSPS)を構文解析することができる。
実施形態において、たとえピクチャ、スライス、又はタイルのPOCの値が異なり得るとしても、同じAUC値を有するAUに対応するピクチャ、スライス、又はタイルは、同じ復号又は出力時間インスタンスに関連付けられ得る。従って、同一のAU内のピクチャ、スライス又はタイルにわたっての相互構文解析/復号依存性なしに、同一のAUに関連付けられたピクチャ、スライス又はタイルの全て又はサブセットが並列に復号され、同じ時間インスタンスで出力され得る。
実施形態において、たとえピクチャ、スライス、又はタイルのPOCの値が異なり得るとしても、同じAUC値を有するAUに対応するピクチャ、スライス、又はタイルは、同じ合成/表示時間インスタンスに関連付けられ得る。合成時間がコンテナ形式で含まれる場合、たとえピクチャが異なるAUに対応していても、それらのピクチャが同じ合成時間を持つ場合には、それらのピクチャは同じ時間インスタンスで表示されることができる。
実施形態において、各ピクチャ、スライス、又はタイルは、同じAU内で同じ時間識別子(temporal_id)を有し得る。ある時間インスタンスに対応するピクチャ、スライス又はタイルの全て又はサブセットが、同じ時間サブレイヤに関連付けられ得る。実施形態において、各ピクチャ、スライス、又はタイルは、同じAU内で同じ又は異なる空間層ID(layer_id)を有し得る。ある時間インスタンスに対応するピクチャ、スライス又はタイルの全て又はサブセットが、同じ又は異なる空間層に関連付けられ得る。
図7は、適応解像度変更でのtemporal_id、layer_id、POC、AUC値の組み合わせを有する映像シーケンス構造の一例を示している。この例において、AUC=0の第1のAU内のピクチャ、スライス、タイルは、temporal_id=0及びlayer_id=0又は1を有することができ、AUC=1の第2のAUのピクチャ、スライス、タイルは、temporal_id=1及びlayer_id=0又は1を有することができる。POCの値は、temporal_id及びlayer_idの値に関係なく、ピクチャごとに1ずつ増加される。この例において、poc_cycle_auの値は2に等しいとすることができる。実施形態において、poc_cycle_auの値は、(空間スケーラビリティ)層の数に等しく設定され得る。この例では、従って、POCの値は2ずつ増加され、AUCの値は1ずる増加される。
上の実施形態では、HEVCにおける既存の参照ピクチャセット(RPS)シグナリング又は参照ピクチャリスト(RPL)シグナリングを使用することによって、インターピクチャ又はインターレイヤ予測構造及び参照ピクチャインジケーションの全て又はサブセットがサポートされ得る。RPS又はRPLでは、選択された参照ピクチャは、POCの値又は現在ピクチャと選択された参照ピクチャとの間のPOCのデルタ値をシグナリングすることによって指し示され得る。実施形態において、RPS及びRPLを用いることで、以下の制約はあるが、シグナリングの変更なしに、インターピクチャ又はインターレイヤ予測構造を指し示すことができる。参照ピクチャのtemporal_idの値が現在ピクチャのtemporal_idの値よりも大きい場合、現在ピクチャは、動き補償又は他の予測のためにその参照ピクチャを使用しないとし得る。参照ピクチャのlayer_idの値が現在ピクチャのlayer_idの値よりも大きい場合、現在ピクチャは、動き補償又は他の予測のためにその参照ピクチャを使用しないとし得る。
実施形態において、時間動きベクトル予測に関するPOC差に基づく動きベクトルスケーリングは、アクセスユニット内の複数のピクチャにまたがっては無効にされ得る。従って、アクセスユニット内で各ピクチャは異なるPOC値を有し得るが、動きベクトルは、スケーリングされず、アクセスユニット内での時間動きベクトル予測には使用されない。これは何故なら、同じAU内の異なるPOCを持つ参照ピクチャは、同じ時間インスタンスを持つ参照ピクチャと見なされるからである。従って、実施形態において、参照ピクチャが、現在ピクチャに関連付けられたAUに属する場合、動きベクトルスケーリング関数は1を返し得る。
実施形態において、時間動きベクトル予測に関するPOC差に基づく動きベクトルスケーリングは、参照ピクチャの空間解像度が現在ピクチャの空間解像度と異なる場合には、オプションで、複数のピクチャにまたがっては無効にされ得る。動きベクトルスケーリングが可能にされるとき、動きベクトルは、現在ピクチャと参照ピクチャとの間のPOC差及び空間分解能比の双方に基づいてスケーリングされる。
実施形態において、動きベクトルは、特にpoc_cycle_auが不均一な値を有する場合(例えば、vps_contant_poc_cycle_per_au==0の場合)、時間動きベクトル予測のために、POC差の代わりにAUC差に基づいてスケーリングされ得る。そうでない場合(例えば、vps_contant_poc_cycle_per_au==1の場合)には、AUC差に基づく動きベクトルスケーリングは、POC差に基づく動きベクトルスケーリングと同じになり得る。
実施形態において、動きベクトルがAUC差に基づいてスケーリングされる場合、現在ピクチャと同じAU(同じAUC値を有する)における参照動きベクトルは、AUC差に基づいてスケーリングされず、スケーリングなしで、又は現在ピクチャと参照ピクチャとの間の空間分解能比に基づくスケーリングを用いて、動きベクトル予測に使用される。
実施形態において、AUC値は、AUの境界を特定するために使用されることができ、AU粒度での入力及び出力タイミングを必要とするものである仮説的リファレンスデコーダ(HRD)動作に使用され得る。実施形態において、AU内の最も高い層を用いた復号ピクチャが表示のために出力され得る。出力ピクチャを特定するためにAUC値及びlayer_id値を使用することができる。
実施形態において、ピクチャは、1つ以上のサブピクチャを含み得る。各サブピクチャは、ピクチャの局所領域又は全領域をカバーし得る。サブピクチャによってサポートされる領域は、別のサブピクチャによってサポートされる領域と重なり合ってもよいし、重なり合わなくてもよい。1つ以上のサブピクチャによってカバーされる領域は、ピクチャの全領域をカバーしてもよいし、カバーしなくてもよい。ピクチャがサブピクチャを含む場合に、サブピクチャによってサポートされる領域は、ピクチャによってサポートされる領域と同じであってもよい。
実施形態において、サブピクチャは、符号化されるピクチャに使用される符号化方法と同様の符号化方法によって符号化され得る。サブピクチャは、別のサブピクチャ又は符号化ピクチャに独立して符号化されてもよいし、依存して符号化されてもよい。サブピクチャは、別のサブピクチャ又は符号化ピクチャからの何らかの構文解析依存性を有してもよいし、有しなくてもよい。
実施形態において、符号化サブピクチャは、1つ以上の層に含まれ得る。層内の符号化サブピクチャは、異なる空間分解能を有し得る。元のサブピクチャが、空間的に再サンプリング(例えば、アップサンプリング又はダウンサンプリング)され、異なる空間解像度パラメータで符号化され、そして、層に対応するビットストリームに含められ得る。
実施形態において、Wはサブピクチャの幅を示し且つHはサブピクチャの高さを示すとして、(W,H)を有するサブピクチャが、層0に対応する符号化ビットストリームに符号化されて含められ、Sw,k、Sh,kは水平方向及び垂直方向の再サンプリング比を示すとして、(W*Sw,k,H*Sh,k)の、元の空間分解能を持つサブピクチャからアップサンプリング(又はダウンサンプリング)されたサブピクチャが、層kに対応する符号化ビットストリームに符号化されて含められ得る。Sw,k、Sh,kの値が1より大きい場合、その再サンプリングはアップサンプリングとし得る。Sw,k、Sh,kの値が1より小さい場合、その再サンプリングはダウンサンプリングとし得る。
実施形態において、層内の符号化サブピクチャは、同じサブピクチャ又は異なるサブピクチャ内の別の層の符号化サブピクチャのものとは異なる視覚品質を持ち得る。例えば、層n内のサブピクチャiは量子化パラメータQi,nで符号化され、層m内のサブピクチャjは量子化パラメータQj,mで符号化され得る。
実施形態において、層内の符号化サブピクチャは、同じ局所領域の別の層内の符号化サブピクチャからの構文解析又は復号依存性なしで、独立して復号可能であり得る。同じ局所領域の別のサブピクチャ層を参照することなく独立して復号可能であるとすることができるサブピクチャ層を、独立サブピクチャ層とし得る。独立サブピクチャ層内の符号化サブピクチャは、同じサブピクチャ層内の先に符号化されたサブピクチャからの復号又は構文解析依存性を有していてもよいし、有しなくてもよいが、符号化サブピクチャは、別のサブピクチャ層内の符号化ピクチャからの如何なる依存性も有しないとし得る。
実施形態において、層内の符号化サブピクチャは、同じ局所領域の別の層内の符号化サブピクチャからの構文解析又は復号依存性ありで、従属して復号可能であってもよい。同じ局所領域の別のサブピクチャ層を参照して従属的に復号可能であるとすることができるサブピクチャ層を、従属サブピクチャ層とし得る。従属サブピクチャ層内の符号化サブピクチャは、同じサブピクチャに属する符号化サブピクチャ、同じサブピクチャ層内の先に符号化されたサブピクチャ、又は両方の参照サブピクチャを参照し得る。
実施形態において、符号化サブピクチャは、1つ以上の独立サブピクチャ層と1つ以上の従属サブピクチャ層とを含んでもよい。しかしながら、少なくとも1つの独立サブピクチャ層が符号化サブピクチャに存在し得る。独立サブピクチャ層のNALユニットヘッダ又は他の高水準構文構造内に存在し得るものである層識別子(layer_id)の値は、0に等しいとし得る。0に等しいlayer_idを有するサブピクチャ層を、ベースサブピクチャ層とし得る。
実施形態において、ピクチャは、1つ以上の前景サブピクチャと1つの背景サブピクチャとを含み得る。背景サブピクチャによってサポートされる領域は、ピクチャの領域と等しいとし得る。前景サブピクチャによってサポートされる領域は、背景サブピクチャによってサポートされる領域と重なり合い得る。背景サブピクチャはベースサブピクチャ層とすることができ、前景サブピクチャは非ベース(エンハンスメント)サブピクチャ層とすることができる。1つ以上の非ベースサブピクチャ層が、復号のために同じベース層を参照し得る。aはbより大きいとして、aに等しいlayer_idを有する各非ベースサブピクチャ層は、bに等しいlayer_idを有する非ベースサブピクチャ層を参照し得る。
実施形態において、ピクチャは、背景サブピクチャありで又はなしで、1つ以上の前景サブピクチャを含み得る。各サブピクチャが、それ自身のベースサブピクチャ層と1つ以上の非ベース(エンハンスメント)層とを有し得る。各ベースサブピクチャ層は、1つ以上の非ベースサブピクチャ層によって参照され得る。aはbより大きいとして、aに等しいlayer_idを有する各非ベースサブピクチャ層は、bに等しいlayer_idを有する非ベースサブピクチャ層を参照し得る。
実施形態において、ピクチャは、背景サブピクチャありで又はなしで、1つ以上の前景サブピクチャを含み得る。(ベース又は非ベース)サブピクチャ層内の各符号化サブピクチャは、同じサブピクチャに属する1つ以上の非ベース層サブピクチャ、及び同じサブピクチャに属しない1つ以上の非ベース層サブピクチャによって参照され得る。
実施形態において、ピクチャは、背景サブピクチャありで又はなしで、1つ以上の前景サブピクチャを含み得る。層a内のサブピクチャが更に、同じ層内の複数のサブピクチャに分割されてもよい。層b内の1つ以上の符号化サブピクチャが、層a内の分割されたサブピクチャを参照してもよい。
実施形態において、符号化映像シーケンス(CVS)は、一群の符号化ピクチャであるとし得る。CVSは、1つ以上の符号化サブピクチャシーケンス(CSPS)を含むことができ、CSPSは、ピクチャの同じ局所領域をカバーする一群の符号化サブピクチャであるとし得る。CSPSは、符号化映像シーケンスと同じ又は異なる時間解像度を持ち得る。
実施形態において、CSPSは、1つ以上の層に符号化されて含められ得る。CSPSは、1つ以上のCSPS層を含み得る。あるCSPSに対応する1つ以上のCSPS層を復号することで、同じ局所領域に対応するサブピクチャのシーケンスを再構成することができる。
実施形態において、あるCSPSに対応するCSPS層の数は、別のCSPSに対応するCSPS層の数と同じであってもよいし、異なってもよい。
実施形態において、CSPS層は、別のCSPS層とは異なる時間解像度(例えば、フレームレート)を持ち得る。元の(未圧縮)サブピクチャシーケンスが、時間的に再サンプリング(例えば、アップサンプリング又はダウンサンプリング)され、異なる時間解像度パラメータで符号化され、そして、層に対応するビットストリームに含められ得る。
実施形態において、フレームレートFを有するサブピクチャシーケンスが、層0に対応する符号化ビットストリームに符号化されて含められ、St,kは層kに対する時間サンプリング比を示すとして、F*St,kを有する、元のサブピクチャシーケンスから時間的にアップサンプリング(又はダウンサンプリング)されたサブピクチャシーケンスが、層kに対応する符号化ビットストリームに符号化されて含められ得る。St,kの値が1より大きい場合、その時間再サンプリングプロセスはフレームレートアップ変換であるとし得る。St,kの値が1より小さい場合、その時間再サンプリングプロセスはフレームレートダウン変換であるとし得る。
実施形態において、CSPS層aを有するサブピクチャが、動き補償又は何らかのインターレイヤ予測のために、CSPS層bを有するサブピクチャによって参照されるとき、CSPS層aの空間解像度がCSPS層bの空間解像度とは異なる場合、CSPS層a内の復号されたピクセルが再サンプリングされ、参照のために使用される。この再サンプリングプロセスは、アップサンプリングフィルタリング又はダウンサンプリングフィルタリングを使用し得る。
図10は、0に等しいlayer_idを有する背景映像CSPSと、複数の前景CSPS層とを含む映像ストリームの一例を示している。符号化サブピクチャは、1つ以上のCSPS層を含むことができる、いずれの前景CSPS層にも属さないものである背景領域はベース層を含むことができる。ベース層は背景領域及び前景領域を含むことができ、エンハンスメントCSPS層は前景領域を含むことができる。エンハンスメントCSPS層は、同じ領域においてベース層よりも良好な視覚品質を有し得る。エンハンスメントCSPS層は、同じ領域に対応するベース層の再構成されたピクセル及び動きベクトルを参照し得る。
実施形態において、ベース層に対応する映像ビットストリームはトラックに含められ、各サブピクチャに対応するCSPS層は、映像ファイル内の分離されたトラックに含められる。
実施形態において、ベース層に対応する映像ビットストリームはトラックに含められ、同じレイヤIDを持つCSPS層が、分離されたトラックに含められる。この例において、層kに対応するトラックは、層kに対応するCSPS層のみを含む。
実施形態において、各サブピクチャの各CSPS層が別々のトラックに格納される。各トラックは、1つ以上の他のトラックからの構文解析又は復号依存性を有していてもよいし、有しなくてもよい。
実施形態において、0<i=<j=<kであり、kはCSPSの最上層であるとして、各トラックは、サブピクチャの全て又はサブセットのCSPS層の層iから層jに対応するビットストリームを含み得る。
実施形態において、ピクチャは、奥行きマップ、アルファマップ、3Dジオメトリデータ、占有率マップなどを含む1つ以上の関連メディアデータを含む。そのような関連する時間付きメディデータは、各々が1つのサブピクチャに対応する1つ又は複数のデータサブストリームに分割されることができる。
図11は、多層サブピクチャ法に基づくテレビ会議の一例を示している。映像ストリームに、背景ピクチャに対応する1つのベース層映像ビットストリームと、前景サブピクチャに対応する1つ以上のエンハンスメント層映像ビットストリームとが含まれる。各エンハンスメント層映像ビットストリームがCSPS層に対応し得る。ディスプレイに、ベースレイヤに対応するピクチャがデフォルトで表示される。これは、一人以上のユーザのピクチャ・イン・ピクチャ(PIP)を含んでいる。特定のユーザがクライアントの制御によって選択されると、選択されたユーザに対応するエンハンスメントCSPS層が復号され、高められた品質又は空間解像度で表示され得る。
図12は、上のプロセスの一例を示すブロック図を示している。例えば、動作S1210にて、複数の層を有する映像ビットストリームが復号され得る。動作S1220にて、背景領域及び1つ以上の前景サブピクチャが特定され得る。動作S1230にて、例えば前景サブピクチャのうちの1つである特定のサブピクチャ領域が選択されたかが判定され得る。特定のサブピクチャ領域が選択された場合(動作S1230でYES)、増強サブピクチャが復号されて表示され得る。特定のサブピクチャ領域が選択されていない場合(動作S1230でNO)、背景領域が復号されて表示され得る。
実施形態において、ネットワーク中間ボックス(例えば、ルータ)が、その帯域幅に応じて、複数の層のうちユーザに送信すべきサブセットを選択し得る。ピクチャ/サブピクチャ編成が、帯域幅適応に使用され得る。例えば、ユーザが帯域幅を持たない場合、ルータは、重要性によって又は使用セットアップに基づいて、層を剥ぎ取り又は一部のサブピクチャを選択し、これは、帯域幅に適応するように動的に行われることができる。
図13は、360映像のユースケースに関係する一実施形態を示している。例えばピクチャ1310とする球形の360ピクチャが平面ピクチャ上に投影されるとき、投影360ピクチャは、ベース層としての複数のサブピクチャに分割され得る。例えば、それら複数のサブピクチャは、後ろサブピクチャ、上サブピクチャ、右サブピクチャ、左サブピクチャ、前サブピクチャ、及び下サブピクチャを含み得る。例えば前サブピクチャとする特定のサブピクチャのエンハンスメント層が符号化されてクライアントに送信され得る。デコーダは、全てのサブピクチャを含むベース層と、選択されたサブピクチャのエンハンスメント層との両方を復号することができ得る。現在のビューポートが選択されたサブピクチャと同じある場合、表示されるピクチャは、エンハンスメント層を有する復号サブピクチャを用いて、より高い品質を有し得る。そうでない場合には、ベース層を有する復号ピクチャを、より低い品質で表示することができる。
実施形態において、表示のための何らかのレイアウト情報が、補足情報(例えばSEIメッセージ又はメタデータなど)としてファイル内に存在し得る。1つ以上の復号サブピクチャが、シグナリングされたレイアウト情報に応じて再配置されて表示され得る。レイアウト情報は、ストリーミングサーバ又はブロードキャスタによってシグナリングされてもよいし、ネットワークエンティティ又はクラウドサーバによって再生成されてもよいし、あるいは、ユーザのカスタマイズ設定によって決定されてもよい。
実施形態において、入力ピクチャが1つ以上の(矩形の)サブ領域に分割されるとき、各サブ領域が、独立した層として符号化され得る。局所領域に対応する各独立層が、固有のlayer_id値を有し得る。各独立層について、サブピクチャサイズ及び位置情報がシグナリングされ得る。例えば、ピクチャサイズ(幅、高さ)、左上隅のオフセット情報(x_offset、y_offset)。図14は、分割されたサブピクチャのレイアウト、そのサブピクチャサイズ及び位置情報、並びに対応するピクチャ予測構造の一例を示している。(1つ以上の)サブピクチャサイズ及び(1つ以上の)サブピクチャ位置を含むこのレイアウト情報は、例えば(1つ以上の)パラメータセット、スライス若しくはタイルグループのヘッダ、又はSEIメッセージなどの高水準構文構造にてシグナリングされ得る。
実施形態において、独立した層に対応する各サブピクチャは、AU内にその固有のPOC値を有し得る。DPBに格納された複数のピクチャの中のある参照ピクチャが、RPS又はRPL構造内の(1つ以上の)構文要素を用いることによって指し示されるとき、層に対応する各サブピクチャの(1つ以上の)POC値が使用され得る。
実施形態において、(インターレイヤ)予測構造を示すために、layer_idは使用されずに、POC(デルタ)値が使用されてもよい。
実施形態において、層(又は局所領域)に対応するNに等しいPOC値を有するサブピクチャが、動き補償予測のために、同じ層(又は同じ局所領域)に対応するN+Kに等しいPOC値を有するサブピクチャの参照ピクチャとして使用されたり使用されなかったりし得る。大抵の場合、数Kの値は、サブ領域の数に等しいとし得るものである(独立した)層の最大数に等しいとし得る。
実施形態において、図15は、図14の拡張ケースを示している。入力ピクチャが複数の(例えば、4つの)サブ領域に分割されるとき、各局所領域が、1つ以上の層で符号化され得る。この場合、独立した層の数は、サブ領域の数に等しいとすることができ、1つ以上の層がサブ領域に対応し得る。従って、各サブ領域が、1つ以上の独立層とゼロ以上の従属層とで符号化され得る。
実施形態において、図15で、入力ピクチャは4つのサブ領域に分割され得る。一例として、右上のサブ領域は、層1及び層4である2つの層として符号化され、右下のサブ領域は、層3及び層5である2つの層として符号化され得る。この場合、層4は、動き補償予測のために層1を参照し、層5は、動き補償のために層3を参照し得る。
実施形態において、層境界にまたがるインループ(in-loop)フィルタリング(例えば、デブロッキングフィルタリング、適応インループフィルタリング、リシェイパ、バイラテラルフィルタリング、又は任意のディープラーニングベースのフィルタリング)は、(オプションで)無効にされ得る。
実施形態において、層境界にまたがる動き補償予測又はイントラブロックコピーは、(オプションで)無効にされ得る。
実施形態において、サブピクチャの境界における動き補償予測又はインループフィルタリングのための境界パディングが、オプションで処理され得る。境界パディングが処理されるか否かを指し示すフラグが、例えば(1つ以上の)パラメータセット(VPS、SPS、PPS、若しくはAPS)、スライス若しくはタイルグループヘッダ、又はSEIメッセージなどの高水準構文構造にてシグナリングされ得る。
実施形態において、(1つ以上の)サブ領域(又は(1つ以上の)サブピクチャ)のレイアウト情報は、VPS又はSPS内でシグナリングされてもよい。図16Aは、VPSにおける構文要素の一例を示し、図16Bは、SPSにおける構文要素の一例を示している。この例では、vps_sub_picturing_dividing_flagがVPS内でシグナリングされる。このフラグは、(1つ以上の)入力ピクチャが複数のサブ領域に分割されるか否かを指し示し得る。vps_sub_picture_dividing_flagの値が0に等しい場合、現在VPSに対応する(1つ以上の)符号化映像シーケンス内の(1つ以上の)入力ピクチャは、複数のサブ領域に分割されないとし得る。この場合、入力ピクチャサイズは、SPS内でシグナリングされるものである符号化ピクチャサイズ(pic_width_in_luma_samples、pic_height_in_luma_samples)と等しいとし得る。vps_sub_picture_dividing_flagの値が1に等しい場合、(1つ以上の)入力ピクチャは複数のサブ領域に分割され得る。この場合、構文要素vps_full_pic_width_in_luma_samples及びvps_full_pic_height_in_luma_samplesがVPS内でシグナリングされる。vps_full_pic_width_in_luma_samples及びvps_full_pic_height_in_luma_samplesの値は、それぞれ、(1つ以上の)入力ピクチャの幅と高さに等しいとし得る。
実施形態において、vps_full_pic_width_in_luma_samples及びvps_full_pic_height_in_luma_samplesの値は、復号に使用されずに、合成及び表示に使用されてもよい。
実施形態において、vps_sub_picture_dividing_flagの値が1に等しい場合、構文要素pic_offset_x及びpic_offset_yが、(a)特定の(1つ以上の)層に対応するものであるSPS内でシグナリングされ得る。この場合、SPS内でシグナリングされる符号化ピクチャサイズ(pic_width_in_luma_samples、pic_height_in_luma_samples)は、特定の層に対応するサブ領域の幅及び高さに等しいとし得る。また、サブ領域の左上隅の位置(pic_offset_x、pic_offset_y)も、SPS内でシグナリングされ得る。
実施形態において、サブ領域の左上隅の位置情報(pic_offset_x、pic_offset_y)は、復号に使用されずに、合成及び表示に使用されてもよい。
実施形態において、(1つ以上の)入力ピクチャの(1つ以上の)サブ領域の全て又はサブセットのレイアウト情報(サイズ及び位置)、(1つ以上の)層の間の依存性情報が、パラメータセット又はSEIメッセージ内でシグナリングされ得る。図17は、サブ領域のレイアウトの情報、層間の依存性、及びサブ領域と1つ以上の層との間の関係を示す構文要素の一例を示している。この例において、構文要素num_sub_regionは、現在符号化されている映像シーケンス内の(矩形の)サブ領域の数を示す。構文要素num_layersは、現在符号化されている映像シーケンス内の層の数を示す。num_layersの値は、num_sub_regionの値に等しいかそれより大きいとし得る。任意のサブ領域が単一の層として符号化されるとき、num_layersの値はnum_sub_regionの値に等しいとし得る。1つ以上のサブ領域が複数の層として符号化されるとき、num_layersの値はnum_sub_regionの値より大きいとし得る。構文要素direct_dipendency_flag[i][j]は、j番目の層からi番目の層への依存性を示す。num_layers_for_region[i]は、i番目のサブ領域に関連する層の数を示す。sub_region_layer_id[i][j]は、i番目のサブ領域に関連するj番目の層のlayer_idを示す。sub_region_offset_x[i]及びsub_region_offset_y[i]は、それぞれ、i番目のサブ領域の左上隅の水平及び垂直位置を示す。sub_region_width[i]及びsub_region_height[i]は、それぞれ、i番目のサブ領域の幅及び高さを示す。
実施形態において、プロファイルティアレベル情報あり又はなしで出力される1つ以上の層を示すように出力層セットを指定する1つ以上の構文要素が、例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージといった高水準構文構造にてシグナリングされ得る。図18を参照するに、VPSを参照する符号化映像シーケンス内の出力層セット(OLS)の数を示す構文要素num_output_layer_setsが、VPS内でシグナリングされ得る。各出力レイヤセットに対して、output_layer_flagが出力層の数と同じだけシグナリングされ得る。
実施形態において、1に等しいoutput_layer_flag[i]は、i番目の層が出力されることを規定する。0に等しいvps_output_layer_flag[i]は、i番目の層が出力されないことを規定する。
実施形態において、各出力層セットについてのプロファイルティアレベル情報を規定する1つ以上の構文要素が、例えば、VPS、DPS、SPS、PPS、APS又はSEIメッセージといった高水準構文構造にてシグナリングされ得る。なおも図18を参照するに、VPSを参照する符号化映像シーケンス内のOLSごとのプロファイルティアレベル情報の数を示す構文要素num_profile_tile_levelが、VPS内でシグナリングされ得る。各出力レイヤセットに対して、プロファイルティアレベル情報のための構文要素のセット、又はプロファイルティアレベル情報内のエントリの中の特定のプロファイルティアレベル情報を指し示すインデックスが、出力レイヤの数と同じだけシグナリングされ得る。
実施形態において、profile_tier_level_idx[i][j]は、VPS内のprofile_tier_level()構文構造のリスト中の、i番目のOLSのj番目の層に適用されるprofile_tier_level()構文構造のインデックスを規定する。
実施形態において、図19を参照するに、最大層数が1より大きいとき(vps_max_layers_minus1>0)、構文要素num_profile_tile_level及び/又はnum_output_layer_setsがシグナリングされ得る。
実施形態において、図19を参照するに、i番目の出力層セットについての出力層シグナリングのモードを示す構文要素vps_output_layers_mode[i]が、VPS内に存在してもよい。
実施形態において、0に等しいvps_output_layers_mode[i]は、最上位の層のみがi番目の出力層セットで出力されることを規定する。1に等しいvps_output_layer_mode[i]は、全ての層がi番目の出力層セットで出力されることを規定する。2に等しいvps_output_layer_mode[i]は、出力される層が、i番目の出力層セットで1に等しいvps_output_layer_flag[i][j]を有する層であることを規定する。より多くの値がリザーブされてもよい。
実施形態において、i番目の出力層セットについてのvps_output_layers_mode[i]の値に応じて、output_layer_flag[i][j]がシグナリングされたりされなかったりし得る。
実施形態において、図19を参照するに、フラグvps_ptl_signal_flag[i]が、i番目の出力層セットに対して存在してもよい。vps_ptl_signal_flag[i]の値に応じて、i番目の出力層セットについてのプロファイルティアレベル情報がシグナリングされたりされなかったりし得る。
実施形態において、図20を参照するに、現在CVS内のサブピクチャの数max_subpics_minus1が、例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージといった高水準構文構造にてシグナリングされ得る。
実施形態において、図20を参照するに、サブピクチャの数が1より多い場合(max_subpics_minus1>0)、i番目のサブピクチャについてのサブピクチャ識別子sub_pic_id[i]がシグナリングされ得る。
実施形態において、各出力層セットの各層に属するサブピクチャ識別子を示す1つ以上の構文要素が、VPS内でシグナリングされ得る。図20を参照するに、sub_pic_id_layer[i][j][k]は、i番目の出力層セットのj番目の層に存在するk番目のサブピクチャを指し示すものである。この情報を用いて、デコーダは、特定の出力層セットの各層について、どのサブピクチャが復号されて出力され得るかを認識することができる。
実施形態において、ピクチャヘッダ(PH)は、符号化ピクチャの全てのスライスに適用される構文要素を含む構文構造である。ピクチャユニット(PU)は、規定された分類規則に従って互いに関連付けられ、復号順に連続し、且つ正確に1つの符号化ピクチャを含むNALユニットの集合である。PUは、ピクチャヘッダ(PH)と、符号化ピクチャを有する1つ以上の符号化スライスNALユニット又はVCL NALユニットとを含み得る。
実施形態において、SPS(RBSP)が、それが参照される前に復号プロセスに利用可能にされ、0に等しいTemporalIdを有する少なくとも1つのAUに含められ、又は外部手段を介して提供され得る。
実施形態において、SPS(RBSP)は、それが参照される前に復号プロセスに利用可能にされ、該SPSを参照する1つ以上のPPSを含み得るものであるCVS内で0に等しいTemporalIdを有する少なくとも1つのAUに含められ、又は外部手段を介して提供され得る。
実施形態において、SPS(RBSP)が、それが1つ以上のPPSによって参照される前に復号プロセスに利用可能にされ、該SPSを参照する1つ以上のPPSを含み得るものであるCVS内のSPS NALユニットを参照するPPS NALユニットの最も低いnuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含められ、又は外部手段を介して提供され得る。
実施形態において、SPS(RBSP)が、それが1つ以上のPPSによって参照される前に復号プロセスに利用可能にされ、0に等しいTemporalIdと、SPS NALユニットを参照するPPS NALユニットの最も低いnuh_layer_id値に等しいnuh_layer_idと、を有する少なくとも1つのPUに含められ、又は外部手段を介して提供され得る。
実施形態において、SPS(RBSP)が、それが1つ以上のPPSによって参照される前に復号プロセスに利用可能にされ、0に等しいTemporalIdと、該SPSを参照する1つ以上のPPSを含み得るものであるCVS内のSPS NALユニットを参照するPPS NALユニットの最も低いnuh_layer_id値に等しいnuh_layer_idと、を有する少なくとも1つのPUに含められ、又は外部手段を介して提供され得る。
実施形態において、pps_seq_parameter_set_idは、参照されるSPSについてのsps_seq_parameter_set_idの値を規定する。pps_seq_parameter_set_idの値は、CLVS内の符号化ピクチャによって参照される全てのPPSにおいて同じとし得る。
実施形態において、CVS内のsps_seq_parameter_set_idの特定の値を有する全てのSPS NALユニットは、同じコンテンツを有し得る。
実施形態において、nuh_layer_id値に関係なく、SPS NALユニットは、sps_seq_parameter_set_idの同じ値空間を共有し得る。
実施形態において、SPS NALユニットのnuh_layer_id値は、SPS NALユニットを参照するPPS NALユニットの最も低いnuh_layer_id値に等しいとし得る。
実施形態において、mに等しいnuh_layer_idを有するSPSが、nに等しいnuh_layer_idを有する1つ以上のPPSによって参照されるとき、mに等しいnuh_layer_idを有する層は、nに等しいnuh_layer_idを有する層又はmに等しいnuh_layer_idを有する層の(直接又は間接)参照層と同じとし得る。
実施形態において、PPS(RBSP)が、それが参照される前に復号プロセスに利用可能にされ、PPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのAUに含められ、又は外部手段を介して提供され得る。
実施形態において、PPS(RBSP)が、それが参照される前に復号プロセスに利用可能にされ、該PPSを参照する1つ以上のPH(又は符号化スライスNALユニット)を含むものであるCVS内のPPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのAUに含められ、又は外部手段を介して提供され得る。
実施形態において、PPS(RBSP)が、それが1つ以上のPH(又は符号化スライスNALユニット)によって参照される前に復号プロセスに利用可能にされ、該PPSを参照する1つ以上のPH(又は符号化スライスNALユニット)を含むものであるCVS内のPPS NALユニットを参照する符号化スライスNALユニットの最も低いnuh_layer_idに等しいnuh_layer_idを有する少なくとも1つのPUに含められ、又は外部手段を介して提供され得る。
実施形態において、PPS(RBSP)が、それが1つ以上のPH(又は符号化スライスNALユニット)によって参照される前に復号プロセスに利用可能にされ、PPS NALユニットのTemporalIdに等しいTemporalIdと、該PPSを参照する1つ以上のPH(又は符号化スライスNALユニット)を含むものであるCVS内のPPS NALユニットを参照する符号化スライスNALユニットの最も低いnuh_layer_idに等しいnuh_layer_idと、を有する少なくとも1つのPUに含められ、又は外部手段を介して提供され得る。
実施形態において、PH内のph_pic_parameter_set_idは、使用される参照PPSに関するpps_pic_parameter_set_idの値を規定する。pps_seq_parameter_set_idの値は、CLVS内の符号化ピクチャによって参照される全てのPPSにおいて同じとし得る。
実施形態において、PU内のpps_pic_parameter_set_idの特定の値を有する全てのPPS NALユニットは、同じコンテンツを有する。
実施形態において、nuh_layer_id値に関係なく、PPS NALユニットは、pps_pic_parameter_set_idの同じ値空間を共有し得る。
実施形態において、PPS NALユニットのnuh_layer_id値は、該PPS NALユニットを参照するNALユニットを参照する符号化スライスNALユニットの最も低いnuh_layer_id値に等しいとし得る。
実施形態において、mに等しいnuh_layer_idを有するPPSが、nに等しいnuh_layer_idを有する1つ以上の符号化スライスNALユニットによって参照されるとき、mに等しいnuh_layer_idを有する層は、nに等しいnuh_layer_idを有する層又はmに等しいnuh_layer_idを有する層の(直接又は間接)参照層と同じとし得る。
実施形態において、PPS(RBSP)が、それが参照される前に復号プロセスに利用可能にされ、PPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのAUに含められ、又は外部手段を介して提供され得る。
実施形態において、PPS(RBSP)が、それが参照される前に復号プロセスに利用可能にされ、該PPSを参照する1つ以上のPH(又は符号化スライスNALユニット)を含むものであるCVS内のPPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのAUに含められ、又は外部手段を介して提供され得る。
実施形態において、PPS(RBSP)が、それが1つ以上のPH(又は符号化スライスNALユニット)によって参照される前に復号プロセスに利用可能にされ、該PPSを参照する1つ以上のPH(又は符号化スライスNALユニット)を含むものであるCVS内のPPS NALユニットを参照する符号化スライスNALユニットの最も低いnuh_layer_idに等しいnuh_layer_idを有する少なくとも1つのPUに含められ、又は外部手段を介して提供され得る。
実施形態において、PPS(RBSP)が、それが1つ以上のPH(又は符号化スライスNALユニット)によって参照される前に復号プロセスに利用可能にされ、PPS NALユニットのTemporalIdに等しいTemporalIdと、該PPSを参照する1つ以上のPH(又は符号化スライスNALユニット)を含むものであるCVS内のPPS NALユニットを参照する符号化スライスNALユニットの最も低いnuh_layer_idに等しいnuh_layer_idと、を有する少なくとも1つのPUに含められ、又は外部手段を介して提供され得る。
実施形態において、PH内のph_pic_parameter_set_idは、使用される参照PPSに関するpps_pic_parameter_set_idの値を規定する。pps_seq_parameter_set_idの値は、CLVS内の符号化ピクチャによって参照される全てのPPSにおいて同じとし得る。
実施形態において、PU内のpps_pic_parameter_set_idの特定の値を有する全てのPPS NALユニットは、同じコンテンツを有する。
実施形態において、nuh_layer_id値に関係なく、PPS NALユニットは、pps_pic_parameter_set_idの同じ値空間を共有し得る。
実施形態において、PPS NALユニットのnuh_layer_id値は、該PPS NALユニットを参照するNALユニットを参照する符号化スライスNALユニットの最も低いnuh_layer_id値に等しいとし得る。
実施形態において、mに等しいnuh_layer_idを有するPPSが、nに等しいnuh_layer_idを有する1つ以上の符号化スライスNALユニットによって参照されるとき、mに等しいnuh_layer_idを有する層は、nに等しいnuh_layer_idを有する層又はmに等しいnuh_layer_idを有する層の(直接又は間接)参照層と同じとし得る。
実施形態において、フラグno_temporal_sublayer_switching_flagがDPS、VPS、又はSPS内でシグナリングされるとき、1に等しい該フラグを含むパラメータセットを参照するPPSのTemporalId値は0に等しいとすることができ、1に等しい該フラグを含むパラメータセットを参照するPPSのTemporalId値は、該パラメータセットのTemporalId値に等しい又はそれより大きいとし得る。
実施形態において、各PPS(RBSP)が、それが参照される前に復号プロセスに利用可能にされ、それを参照する符号化スライスNALユニット(又はPH NALユニット)のTemporalId以下のTemporalIdを有する少なくとも1つのAUに含められ、又は外部手段を介して提供され得る。PPS NALユニットが、該PPSを参照する符号化スライスNALユニットを含むAUより前のAUに含まれるとき、時間アップレイヤスイッチングを可能にするVCL NALユニット、又はSTSA_NUTに等しいnal_unit_typeを有する(これは、VCL NALユニット内のピクチャがステップワイズ時間サブレイヤアクセス(STSA)ピクチャであり得ることを指し示すものである)VCL NALユニットは、該PPS NALユニットの後且つ該PPSを参照する符号化スライスNALユニットより前に存在しないとし得る。
実施形態において、該PPSを参照するPPS NALユニット及び符号化スライスNALユニット(及びそのPH NALユニット)は、同じAUに含められ得る。
実施形態において、該PPSを参照するPPS NALユニット及びSTSA NALユニットは、符号化スライスNALユニット(及びそのPH NALユニット)に先行する同じAUに含められ得る。
実施形態において、該PPSを参照するSTSA NALユニット、PPS NALユニット、及び符号化スライスNALユニット(及びそのPH NALユニット)は、同じAU内に存在し得る。
同じ実施形態において、PPSを含むVCL NALユニットのTemporalId値は、先行するSTSA NALユニットのTemporalId値に等しいとし得る。
同じ実施形態において、PPS NALユニットのピクチャオーダカウント(POC)値は、STSA NALユニットのPOC値に等しい又はそれより大きいとし得る。
同じ実施形態において、PPS NALユニットを参照するものである符号化スライス又はPH NALユニットのピクチャオーダカウント(POC)値は、参照されるPPS NALユニットのPOC値に等しい又はそれより大きいとし得る。
図21は、符号化映像ビットストリームを復号するためのプロセス2100の一例のフローチャートである。一部の実装において、図21の1つ以上のプロセスブロックは、デコーダ210によって実行され得る。一部の実装において、図21の1つ以上のプロセスブロックは、例えばエンコーダ203など、デコーダ210とは別個又はそれを含む他の装置又は一群の装置によって実行されてもよい。
図21に示すように、プロセス2100は、符号化映像ビットストリームから符号化映像シーケンスを取得することを含み得る(ブロック2110)。
図21に更に示すように、プロセス2100は、符号化映像シーケンスからピクチャユニットを取得することを含み得る(ブロック2120)。
図21に更に示すように、プロセス2100は、ピクチャユニットに含まれるPH NALユニットを取得することを含み得る(ブロック2130)。
図21に更に示すように、プロセス2100は、ピクチャユニットに含まれる少なくとも1つの符号化スライスNALユニットを取得することを含み得る(ブロック2140)。
図21に更に示すように、プロセス2100は、PH NALユニット、少なくとも1つの符号化スライスNALユニット、符号化映像シーケンスから得られるPPS NALユニットに含まれるPPS、及び符号化映像シーケンスから得られるSPS NALユニットに含まれるSPSに基づいて、符号化ピクチャを復号することを含むことができ、SPS NALユニットは、PPS NALユニットの前に、プロセス2100を実行する少なくとも1つのプロセッサに利用可能であり、PPS NALユニットは、PH NALユニット及び少なくとも1つの符号化スライスNALユニットの前に、上記少なくとも1つのプロセッサに利用可能であるとし得る(ブロック2120)。
図21に更に示すように、プロセス2100は、復号したピクチャを出力することを含み得る(ブロック2160)。
実施形態において、SPS NALユニットの時間識別子がゼロに等しいとし得る。
実施形態において、PPS NALユニットの層識別子が、SPS NALユニットの層識別子より大きい又は等しい。
実施形態において、少なくとも1つの符号化スライスNALユニットの層識別子が、PPS NALユニットの層識別子より大きい又は等しいとし得る。
実施形態において、PH NALユニット、少なくとも1つの符号化スライスNALユニット、及びPPS NALユニットは、単一のアクセスユニットに含まれ得る。
実施形態において、符号化映像シーケンスは更に、ステップワイズ・テンポラル・サブレイヤ・アクセス(STSA)ピクチャに対応するSTSA NALユニットを含むことができ、STSA NALユニットは、PPS NALユニットと少なくとも1つの符号化スライスNALユニットとの間には位置しない。
実施形態において、PH NALユニット、少なくとも1つの符号化スライスNALユニット、PPS NALユニット、及びSTSA NALユニットは、単一アクセスユニットに含まれ得る。
実施形態において、PPS NALユニットの時間識別子が、STSA NALユニットの時間識別子に等しいとし得る。
実施形態において、PPS NALユニットのピクチャオーダカウント(POC)が、STSA NALユニットのPOC以上であるとし得る。
図21はプロセス2100のブロック例を示しているが、一部の実装において、プロセス2100は、図21に示したものよりも、追加のブロック、少ないブロック、異なるブロック、又は異なるように配置されたブロックを含み得る。加えて、あるいは代わりに、プロセス2100のブロックのうちの2つ以上が並行して実行されてもよい。
また、提案される方法は、プロセッシング回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実装され得る。一例において、1つ以上のプロセッサは、提案される方法のうちの1つ以上を実行するために、非一時的なコンピュータ読み取り可能媒体に格納されたプログラムを実行する。
上述の技術は、コンピュータ読み取り可能命令を用いてコンピュータソフトウェアとして実装されることができ、また、1つ以上のコンピュータ読み取り可能媒体に物理的に格納されることができる。例えば、図22は、開示に係る事項の特定の実施形態を実装するのに好適なコンピュータシステム2200を示している。
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又は同様の機構に掛けられることで、直接的に又はインタープリット、マイクロコード実行及びこれらに類するものを介してコンピュータ中央演算処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、及びこれらに類するものによって実行されることが可能な命令を有するコードを作り出し得るような、任意の好適な機械コード又はコンピュータ言語を用いてコード化され得る。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置、及びこれらに類するものを含め、様々なタイプのコンピュータ又はそのコンポーネント上で実行され得る。
コンピュータシステム2200に関して図22に示したコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能性の範囲についての何らかの限定を示唆する意図はない。また、コンポーネントの構成も、コンピュータシステム2200のこの例示的実施形態に示されたコンポーネントの任意の1つ又は組み合わせに関する何らかの従属性又は要件も持つものとして解釈されるべきでない。
コンピュータシステム2200は、特定のヒューマンインタフェース入力装置を含んでもよい。そのようなヒューマンインタフェース入力装置は、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブを動かすことなど)、オーディオ入力(例えば、音声、拍手など)、視覚入力(例えば、ジェスチャなど)、嗅覚入力(図示せず)を介した、一人以上の人間ユーザによる入力に応答し得る。ヒューマンインタフェース装置はまた、例えばオーディオ(例えば、会話、音楽、周囲の音など)、画像(例えば、走査画像、静止画カメラから得られる写真画像など)、映像(例えば、2次元映像、立体視映像を含む3次元映像など)などの、人間による意識的な入力には必ずしも直接関係しない特定の媒体を捕捉するために使用されてもよい。
入力ヒューマンインタフェース装置は、キーボード2201、マウス2202、トラックパッド2203、タッチスクリーン2210及び関連するグラフィックスアダプタ2250、データグローブ、ジョイスティック2205、マイクロフォン2206、スキャナ2207、カメラ2208(各々1つのみ図示している)のうちの1つ以上を含み得る。
コンピュータシステム2200はまた、特定のヒューマンインタフェース出力装置を含み得る。そのようなヒューマンインタフェース出力装置は、例えば、触覚出力、音、光、及び臭い/味を通して、一人以上の人間ユーザの感覚を刺激し得る。そのようなヒューマンインタフェース出力装置は、触覚出力装置(例えば、タッチスクリーン2210、データグローブ、又はジョイスティック2205による触覚フィードバックであるが、入力装置として機能しない触覚フィードバック装置もあってもよい)、オーディオ出力装置(例えば、スピーカー2209、ヘッドフォン(図示せず)など)、視覚出力装置(例えば、陰極線管(CRT)スクリーン、液晶ディスプレイ(LCD)スクリーン、プラズマスクリーン、有機発光ダイオード(OLED)スクリーンを含むスクリーン2210(各々がタッチスクリーン入力機能を有する又は有さない。各々が触覚フィードバック機能を有する又は有さない。これらの一部は、二次元の視覚出力、又は例えば立体視出力などの手段を通じて四次元以上の出力を出力することができるとし得る。)、仮想現実グラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)など)、及びプリンタ(図示せず)を含み得る。
コンピュータシステム2200はまた、例えば、CD/DVD若しくは類似の媒体2221を有するCD/DVD ROM/RW2220を含む光媒体、サムドライブ2222、取り外し可能なハードドライブ若しくは又はソリッドステートドライブ2223、例えばテープ及びフロッピーディスク(登録商標、図示せず)などのレガシー磁気媒体、例えばセキュリティドングルなどの特殊化されたROM/ASIC/PLDベースの装置(図示せず)、及びこれらに類するものなどの、人間アクセス可能なストレージ装置及びそれらの関連媒体を含み得る。
当業者がこれまた理解するはずのことには、ここでの開示に係る事項に関連して使用される用語“コンピュータ読み取り可能媒体”は、伝送媒体、搬送波、又は他の一時的な信号を含まない。
コンピュータシステム2200はまた、1つ以上の通信ネットワーク(2255)への(1つ以上の)インタフェースを含み得る。ネットワークは、例えば、無線、有線、光とし得る。ネットワークは更に、ローカル、広域、大都市、車両及び産業、リアルタイム、耐遅延などとし得る。ネットワークの例は、例えばイーサネット(登録商標)などのローカルエリアネットワーク、無線LAN、グローバルシステムズフォーモバイルコミュニケーションズ(GSM)、第3世代(3G)、第4世代(4G)、第5世代(5G)、ロングタームエボリューション(LTE)及びこれらに類するものを含むセルラネットワーク、ケーブルTV、衛星TV、及び地上波放送TVを含むTV有線又は無線広域デジタルネットワーク、CANBusを含む車両及び産業などを含む。特定のネットワークは一般に、特定の汎用データポート又はペリフェラルバス(2249)(例えば、コンピュータシステム2200のユニバーサルシリアルバス(USB)ポートなど)に取り付けられる外付けネットワークインタフェースアダプタ(2254)を必要とし、他のものは一般に、後述のシステムバスへの取り付けによってコンピュータシステム2200のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインタフェース、又はスマートフォンコンピュータシステムへのセルラネットワークインタフェース)。一例として、ネットワーク2255は、ネットワークインタフェース2254を用いてペリフェラルバス2249に接続され得る。これらのネットワークのいずれかを使用して、コンピュータシステム2200は、他のエンティティと通信することができる。そのような通信は、単方向の受信のみ(例えば、放送TV)であってもよいし、単方向の送信のみ(例えば、特定のCANbus装置に対するCANbus)であってもよいし、あるいは、例えばローカル又は広域デジタルネットワークを用いた他のコンピュータシステムに対しての、双方向であってもよい。特定のプロトコル及びプロトコルスタックが、上述のようにネットワーク及びネットワークインタフェース(2254)の各々上で使用され得る。
前述のヒューマンインタフェース装置、人間アクセス可能なストレージ装置、及びネットワークインタフェースは、コンピュータシステム2200のコア2240に取り付けられることができる。
コア2240は、1つ以上の中央演算処理ユニット(CPU)2241、グラフィックス処理ユニット(GPU)2242、フィールドプログラマブルゲートアレイ(FPGA)2243の形態の特殊なプログラム可能なプロセッシングユニット、特定のタスク用のハードウェアアクセラレータ2244などを含み得る。これらのデバイスは、読み出し専用メモリ(ROM)2245、ランダムアクセスメモリ(RAM)2246、例えば内部のユーザアクセス可能でないハードドライブ、ソリッドステートドライブ(SSD)、及びこれらに類するものなどの内部大容量ストレージ2247と共に、システムバス2248を介して接続され得る。一部のコンピュータシステムにおいて、システムバス2248は、追加のCPU、GPU、及びこれらに類するものによる拡張を可能にするために、1つ以上の物理プラグの形態でアクセス可能にされ得る。周辺装置は、コアのシステムバス2248に直接的に、又はペリフェラルバス2249を介して、のいずれで取り付けられてもよい。ペリフェラルバスのアーキテクチャは、ペリフェラルコンポーネントインターコネクト(PCI)、USB、及びこれらに類するものを含む。
CPU2241、GPU2242、FPGA2243、及びアクセラレータ2244は、組み合わさって前述のコンピュータコードを構成することができる特定の命令を実行し得る。そのコンピュータコードは、ROM2245又はRAM2246に格納され得る。RAM2246には過渡的なデータも格納されることができ、永久的なデータは、例えば内部大容量ストレージ2247に格納されることができる。メモリデバイスのいずれかへの高速な記憶及び取り出しが、1つ以上のCPU2241、GPU2242、大容量ストレージ2247、ROM2245、RAM2246、及びこれらに類するものの近くに付随し得るキャッシュメモリの使用によって可能にされ得る。
コンピュータ読み取り可能媒体はその上に、様々なコンピュータ実装処理を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的に合わせて特別に設計及び構築されたものであってもよいし、あるいは、それらは、コンピュータソフトウェア技術の当業者にとって周知且つ利用可能な種類のものであってもよい。
一例として、限定ではなく、アーキテクチャ2200、特にコア2240、を有するコンピュータシステムは、1つ以上の有形のコンピュータ読み取り可能媒体に具現化されたソフトウェアを(1つ以上の)プロセッサ(CPU、GPU、FPGA、アクセラレータ、及びこれらに類するものを含む)が実行することの結果として機能を提供することができる。そのようなコンピュータ読み取り可能媒体は、例えばコア内部の大容量ストレージ2247又はROM2245などの、非一時的性質のものであるコア2240の特定のストレージ、及び上で紹介したようなユーザアクセス可能な大容量ストレージに関連する媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのような装置に格納され、コア2240によって実行されることができる。コンピュータ読み取り可能媒体は、具体的なニーズに従って、1つ以上のメモリデバイス又はチップを含み得る。ソフトウェアは、コア2240及び特にその中のプロセッサ(CPU、GPU、FPGA、及びこれらに類するものを含む)に、RAM2246に格納されるデータ構造を規定すること、及びそのようなデータ構造を、ソフトウェアによって規定されたプロセスに従って変更することを含めて、ここに記載された特定のプロセスを又は特定のプロセスの特定の部分を実行させることができる。加えて、又は代替として、コンピュータシステムは、ここに記載された特定のプロセスを又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はソフトウェアと共に動作することができる回路(例えば、アクセラレータ2244)にて配線された又はその他の方法で具体化されたロジックの結果として、機能を提供してもよい。ソフトウェアへの言及はロジックを含み、また、適当な場合にその逆もまた然りである。コンピュータ読み取り可能媒体への言及は、実行のためのソフトウェアを格納した回路(例えば、集積回路(IC)など)、実行のためのロジックを具体化した回路、又は適当な場合にこれら双方を含み得る。本開示は、ハードウェア及びソフトウェアの好適な組み合わせを含む。
この開示は幾つかの例示的な実施形態を記述しているが、開示の範囲に入る変更、置換、及び様々な均等な代替が存在する。従って、理解されることには、当業者は、ここでは明示的に図示されたり説明されたりしていないものの、開示の原理を具体化し、それ故に、その精神及び範囲の中にあるような、数多くのシステム及び方法を考案することができるであろう。