特許請求される構造及び方法の詳細な実施形態が本明細書に開示されるが、開示される実施形態は、様々な形態で具現化され得る特許請求される構造及び方法の単なる例示であることを理解することができる。しかしながら、これらの構造及び方法は、多くの異なる形態で具現化することができ、本明細書に記載の例示的な実施形態に限定されると解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が完璧かつ完全なものとなり、その範囲を当業者に完全に伝えるように提供される。説明では、提示される実施形態を不必要に曖昧にすることを回避するために、周知の特徴及び技術の詳細が省略されることがある。
実施形態は、一般に、データ処理の分野、より詳細にはビデオ符号化に関する。以下に説明する例示的な実施形態は、とりわけ、複数のレイヤを有する符号化ビデオ・ストリームにおけるサブ画像のビットストリーム抽出のためのシステム、方法、及びコンピュータ・プログラムを提供する。したがって、一部の実施形態は、ビデオ・ビットストリームにおける参照画像リサンプリング及び空間スケーラビリティ・パラメータのシグナリングに基づいて、改善されたビデオ符号化及び復号を可能にすることによって、コンピューティングの分野を改善する能力を有する。
態様は、本明細書において、様々な実施形態による方法の流れ図及び/又はブロック図、装置(システム)、並びにコンピュータ可読媒体を参照して説明される。流れ図及び/又はブロック図の各ブロック、並びに流れ図及び/又はブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実施することができることが理解されよう。
図1は、本開示の一実施形態による通信システム(100)の簡略化されたブロック図を示す。システム(100)は、ネットワーク(150)を介して相互接続された少なくとも2つの端末(110~120)を含むことができる。データの一方向伝送の場合、第1の端末(110)は、ネットワーク(150)を介して他の端末(120)に伝送するために、ローカル位置でビデオ・データを符号化することができる。第2の端末(120)は、ネットワーク(150)から他の端末の符号化されたビデオ・データを受信し、符号化されたデータを復号し、復元されたビデオ・データを表示することができる。一方向データ演奏は、メディア・サービング・アプリケーション(media serving applications)などで一般的な場合がある。
図1は、例えば、ビデオ会議中に行われる可能性のある符号化されたビデオの双方向伝送をサポートするために提供される第2のペアの端末(130、140)を示す。データの双方向伝送のために、各端末(130、140)は、ネットワーク(150)を介して他の端末に伝送するための、ローカル位置でキャプチャされたビデオ・データを符号化することができる。各端末(130、140)はまた、他の端末によって送信された符号化されたビデオ・データを受信し、符号化されたデータを復号することができ、復元されたビデオ・データをローカル・ディスプレイ・デバイスに表示することができる。
図1では、端末(110~140)は、サーバ、パーソナル・コンピュータ、及びスマート・フォンとして示されることがあるが、本開示の原理は、そのように限定されなくてもよい。本開示の実施形態は、ラップトップ・コンピュータ、タブレット・コンピュータ、メディア・プレーヤ、及び/又は専用のビデオ会議機器に適用される。ネットワーク(150)は、例えば、有線及び/又は無線通信ネットワークを含む、端末(110~140)間で、符号化されたビデオ・データを伝達する任意の数のネットワークを表す。通信ネットワーク(150)は、回線交換チャネル及び/又はパケット交換チャネルにおいてデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、及び/又はインターネットが含まれる。本議論の目的のために、ネットワーク(150)のアーキテクチャ及びトポロジーは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではない場合がある。
図2は、開示された主題のアプリケーションの例として、ストリーミング環境におけるビデオ・エンコーダ及びデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルテレビ、CD、DVD、メモリ・スティックなどを含むデジタル媒体への圧縮ビデオの記憶などを含む、他のビデオ対応アプリケーションに等しく適用可能である。
ストリーミング・システムは、例えば非圧縮ビデオサンプル・ストリーム(202)を生成するビデオ・ソース(201)、例えばデジタル・カメラを含むことができるキャプチャ・サブシステム(213)を含むことができる。符号化されたビデオ・ビットストリームと比較したときにデータ量が多いことを強調するために太線で描かれたそのサンプル・ストリーム(202)は、カメラ(201)に結合されたエンコーダ(203)によって処理することができる。エンコーダ(203)は、以下でより詳細に説明されるように、開示された主題の態様を可能にするか又は実施するために、ハードウェア、ソフトウェア、又はそれらの組合せを含むことができる。サンプル・ストリームと比較してデータ量が少ないことを強調するために細線で描かれた、符号化されたビデオ・ビットストリーム(204)は、将来の使用のためにストリーミング・サーバ(205)に記憶することができる。1つ又は複数のストリーミング・クライアント(206、208)は、ストリーミング・サーバ(205)にアクセスして、符号化されたビデオ・ビットストリーム(204)のコピー(207、209)を取り出すことができる。クライアント(206)は、符号化されたビデオ・ビットストリーム(207)の着信コピーを復号し、ディスプレイ(212)又は他のレンダリング・デバイス(図示せず)上でレンダリングすることができる発信ビデオサンプル・ストリーム(211)を作成するビデオ・デコーダ(210)を含むことができる。一部のストリーミング・システムでは、ビデオ・ビットストリーム(204、207、209)は、特定のビデオ符号化/圧縮規格に従って符号化することができる。これらの規格の例には、ITU-T勧告H.265が含まれる。開発中のものには、Versatile Video Coding又はVVCとして非公式に知られているビデオ符号化規格がある。開示された主題は、VVCの文脈で使用されることがある。
図3は、本発明の実施形態によるビデオ・デコーダ(210)の機能ブロック図であってもよい。
レシーバ(310)は、デコーダ(210)によって復号された1つ又は複数のコーデックビデオ・シーケンスを受信することができ、同じ又は別の実施形態において、一度に1つの符号化ビデオ・シーケンスを受信することができ、各符号化ビデオ・シーケンスの復号は、他の符号化ビデオ・シーケンスとは無関係である。符号化ビデオ・シーケンスは、チャネル(312)から受信されてもよく、このチャネルは、符号化ビデオ・データを記憶する記憶デバイスへのハードウェア/ソフトウェア・リンクであってもよい。レシーバ(310)は、符号化ビデオ・データを他のデータ、例えば符号化音声データ及び/又は補助データ・ストリームとともに受信することができ、これらは、それぞれの使用エンティティ(図示せず)に転送されてもよい。レシーバ(310)は、符号化ビデオ・シーケンスを他のデータから分離することができる。ネットワーク・ジッタに対処するために、バッファ・メモリ(315)が、レシーバ(310)とエントロピー・デコーダ/パーサ(320)(以降、「パーサ」)との間に結合されてもよい。レシーバ(310)が十分な帯域幅及び制御可能性のある記憶/転送デバイスから、又は等時性ネットワークからデータを受信している場合、バッファ(315)は、必要でない場合があり、又は小さくすることができる。インターネットなどのベストエフォート型のパケットネットワークで使用するためには、バッファ(315)が必要になる場合があり、比較的大きくなる可能性があり、有利には適応サイズとすることができる。
ビデオ・デコーダ(210)は、エントロピー符号化ビデオ・シーケンスからシンボル(321)を再構成するためのパーサ(320)を含むことができる。これらのシンボルのカテゴリには、デコーダ(210)の動作を管理するために使用される情報と、図2に示したような、デコーダの不可欠な部分ではないが、デコーダに結合することができるディスプレイ(212)などのレンダリング・デバイスを制御するための情報と、が潜在的に含まれる。レンダリング・デバイスの制御情報は、SEIメッセージ(Supplementary Enhancement Information)又はVUI(Video Usability Information)パラメータ・セット・フラグメント(図示せず)の形態であってもよい。パーサ(320)は、受信した符号化ビデオ・シーケンスを解析/エントロピー復号化することができる。符号化ビデオ・シーケンスの符号化は、ビデオ符号化技術又は規格に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感度を伴う、又は伴わない算術符号化などの、当業者によく知られた原理に従うことができる。パーサ(320)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオ・デコーダにおいて、符号化ビデオ・シーケンスから、ピクセルのサブグループのうちの少なくとも1つについてのサブグループ・パラメータのセットを抽出することができる。サブグループには、画像群(Groups of Picture:GOP)、画像、タイル、スライス、マクロブロック、符号化ユニット(Coding Unit:CU)、ブロック、変換ユニット(Transform Unit:TU)、予測ユニット(Prediction Unit:PU)などが含まれてもよい。エントロピー・デコーダ/パーサはまた、符号化ビデオ・シーケンスから、変換係数、量子化器のパラメータ値、動きベクトルなどの情報を抽出することができる。
パーサ(320)は、バッファ(315)から受信したビデオ・シーケンスに対してエントロピー復号化/解析動作を実行して、シンボル(321)を作成することができる。
シンボル(321)の再構成は、符号化ビデオ画像又はその一部のタイプ(画像間及び画像内、ブロック間及びブロック内など)、及び他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットがどのように関与するかは、パーサ(320)によって符号化ビデオ・シーケンスから構文解析されたサブグループ制御情報によって制御することができる。パーサ(320)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、わかりやすくするために描かれていない。
すでに述べた機能ブロック以外に、デコーダ210は、以下に説明するように、概念的にいくつかの機能ユニットに細分化することができる。商業的制約の下で動作する実際の実施態様では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに一体化され得る。しかしながら、開示された主題を説明する目的のために、以下の機能ユニットに概念的に細分化することが適切である。
第1のユニットは、スケーラ/逆変換ユニット(351)である。スケーラ/逆変換ユニット(351)は、量子化された変換係数、並びにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、シンボル(321)としてパーサ(320)から受け取る。このユニットは、アグリゲータ(355)に入力することができるサンプル値を含むブロックを出力することができる。
場合によっては、スケーラ/逆変換(351)の出力サンプルは、イントラ符号化ブロック、すなわち、以前に再構成された画像からの予測情報は使用しないが、現在の画像の以前に再構成された部分からの予測情報を使用することができるブロックに関連することができる。そのような予測情報は、画像内予測ユニット(352)によって提供することができる。場合によっては、画像内予測ユニット(352)は、現在の(部分的に再構成された)画像(356)からフェッチされた周囲のすでに再構成された情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。アグリゲータ(355)は、場合によっては、サンプルごとに、イントラ予測ユニット(352)が生成した予測情報を、スケーラ/逆変換ユニット(351)によって提供される出力サンプル情報に追加する。
他の場合には、スケーラ/逆変換ユニット(351)の出力サンプルは、インター符号化され、潜在的に動き補償されたブロックに関連することができる。このような場合、動き補償予測ユニット(353)は、参照画像メモリ(357)にアクセスして、予測に使用するサンプルをフェッチすることができる。フェッチされたサンプルをブロックに関連するシンボル(321)に従って動き補償した後、これらのサンプルを、アグリゲータ(355)によってスケーラ/逆変換ユニットの出力に追加して(この場合、残差サンプル又は残差信号と呼ばれる)、出力サンプル情報を生成することができる。動き補償ユニットが予測サンプルをフェッチする参照画像メモリ形態内のアドレスは、例えば、X、Y、及び参照画像成分を有することができるシンボル(321)の形態で、動き補償ユニットに利用可能な動きベクトルによって制御することができる。動き補償は、サブサンプルの正確な動きベクトルが使用されている場合に参照画像メモリからフェッチされたサンプル値の補間や、動きベクトル予測メカニズムなども含むことができる。
アグリゲータ(355)の出力サンプルは、ループ・フィルタ・ユニット(356)において様々なループ・フィルタリング技術の受けることができる。ビデオ圧縮技術は、符号化ビデオ・ビットストリームに含まれるパラメータによって制御され、パーサ(320)からのシンボル(321)としてループ・フィルタ・ユニット(356)に利用可能になるインループ・フィルタ技術を含むことができるが、符号化画像又は符号化ビデオ・シーケンスの(復号順で)前の部分の復号中に取得されたメタ情報に応答することもでき、以前に再構成され、ループ・フィルタリングされたサンプル値に応答することもできる。
ループ・フィルタ・ユニット(356)の出力は、レンダリング・デバイス(212)に出力され得るだけでなく、将来の画像間予測において使用するために参照画像メモリ(356)に記憶することができるサンプル・ストリームとすることができる。
特定の符号化画像は、完全に再構成されると、将来の予測のための参照画像として使用することができる。符号化画像が完全に再構成され、符号化画像が参照画像として(例えば、パーサ(320)によって)識別されると、現在の参照画像(356)は、参照画像バッファ(357)の一部となることができ、後続の符号化画像の再構成を開始する前に、新しい現在の画像メモリを再割り当てすることができる。
ビデオ・デコーダ320は、ITU-T Rec.H.265などの規格に文書化され得る所定のビデオ圧縮技術に従って復号動作を実行することができる。符号化ビデオ・シーケンスは、ビデオ圧縮技術の文書又は規格において、具体的にはその中のプロファイル文書において指定されるようなビデオ圧縮技術又は規格のシンタックスに準拠するという意味で、使用されているビデオ圧縮技術又は規格によって指定されるシンタックスに準拠することができる。また、符号化ビデオ・シーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって定義された範囲内にあることも準拠のために必要である。場合によっては、レベルによって、最大画像サイズ、最大フレーム・レート、最大再構成サンプルレート(例えば、1秒あたりのメガサンプルで測定)、最大参照画像サイズなどが制限される。レベルによって設定される制限は、場合によっては、HRD(Hypothetical Reference Decoder)の仕様、及び符号化ビデオ・シーケンスにおいてシグナリングされるHRDバッファ管理のためのメタデータによってさらに制限されることがある。
一実施形態において、レシーバ(310)は、符号化ビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、符号化ビデオ・シーケンスの一部として含まれる場合がある。追加のデータは、データを適切に復号するために、及び/又は元のビデオ・データをより正確に再構成するために、ビデオ・デコーダ(320)によって使用されることがある。追加のデータは、例えば、時間的、空間的、又はSNRエンハンスメント・レイヤ、冗長スライス、冗長画像、前方誤り訂正コードなどの形態とすることができる。
図4は、本開示の一実施形態によるビデオ・エンコーダ(203)の機能ブロック図であってもよい。
エンコーダ(203)は、エンコーダ(203)によって符号化されることになるビデオ画像をキャプチャすることができる(エンコーダの一部ではない)ビデオ・ソース(201)からビデオサンプルを受信することができる。
ビデオ・ソース(201)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であってもよいデジタル・ビデオ・サンプル・ストリームの形態で、エンコーダ(203)によって符号化されるソース・ビデオ・シーケンスを提供することができる。メディア・サービング・システムにおいて、ビデオ・ソース(201)は、以前に整えられたビデオを記憶する記憶デバイスであってもよい。ビデオ会議システムでは、ビデオ・ソース(203)は、ローカル画像情報をビデオ・シーケンスとしてキャプチャするカメラであってもよい。ビデオ・データは、順に見たときに動きを与える複数の個々の画像として提供することができる。画像自体は、ピクセルの空間配列として構成することができ、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つ又は複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
一実施形態によると、エンコーダ(203)は、リアルタイムで、又はアプリケーションによって要求される他の任意の時間制約の下で、ソース・ビデオ・シーケンスの画像を符号化ビデオ・シーケンス(443)に符号化及び圧縮することができる。適切な符号化速度を強要することは、コントローラ(450)の1つの機能である。コントローラは、以下に説明するように他の機能ユニットを制御し、これらのユニットに機能的に結合されている。わかりやすくするために、この結合は、描かれていない。コントローラによって設定されるパラメータには、レート制御関連のパラメータ(画像スキップ、量子化器、レート歪み最適化技術のラムダ値など)、画像サイズ、画像群(GOP)レイアウト、最大動きベクトル探索範囲などが含まれる。当業者は、特定のシステム設計用に最適化されたビデオ・エンコーダ(203)に関連する可能性があるため、コントローラ(450)の他の機能を容易に識別することができる。
ビデオ・エンコーダの中には、当業者が容易に認識できる「符号化ループ」において動作するものがある。過度に簡略化された説明として、符号化ループは、(符号化される入力画像及び参照画像に基づいてシンボルを生成する役割を果たす)エンコーダ(430)(以降、「ソース・コーダ」)の符号化部分と、シンボルを再構成するエンコーダ(203)に組み込まれた(ローカル)デコーダ(433)とから構成され、(リモート)デコーダも生成するサンプル・データを生成することができる(開示された主題で考慮されるビデオ圧縮技術では、シンボルと符号化ビデオ・ビットストリームとの間のいかなる圧縮も無損失であるため)。その再構成されたサンプル・ストリームは、参照画像メモリ(434)に入力される。シンボル・ストリームの復号は、デコーダの位置(ローカル又はリモート)に関係なくビット厳密な結果をもたらすため、参照画像バッファの内容もローカル・エンコーダとリモート・エンコーダとの間でビット厳密になる。言い換えると、エンコーダの予測部分は、復号中に予測を使用するときにデコーダが「見る」のとまったく同じサンプル値を参照画像サンプルとして「見る」。参照画像の同期性(及び、例えばチャネル・エラーのために同期性を維持できない場合は、結果として生じるドリフト)のこの基本原理は、当業者によく知られている。
「ローカル」デコーダ(433)の動作は、「リモート」デコーダ(210)の動作と同じにすることができ、これについては、図3に関連して上で詳細に説明した。しかしながら、簡単に図3も参照すると、シンボルが利用可能であり、エントロピー・コーダ(445)及びパーサ(320)による符号化ビデオ・シーケンスへのシンボルの符号化/復号化を無損失で行うことができるため、チャネル(312)、レシーバ(310)、バッファ(315)、及びパーサ(320)を含むデコーダ(210)のエントロピー復号化部分は、ローカル・デコーダ(433)では完全には実装されない可能性がある。
この時点で観察に基づいて言えることは、デコーダに存在する解析/エントロピー復号化を除くデコーダ技術は、対応するエンコーダに実質的に同一の機能形態で必ず存在する必要があるということである。このため、開示される主題は、デコーダ動作に焦点を当てる。エンコーダ技術の説明は、包括的に説明されるデコーダ技術の逆であるため、省略することができる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
その動作の一部として、ソース・コーダ(430)は、「参照フレーム」として指定されたビデオ・シーケンスからの1つ又は複数の以前に符号化されたフレームを参照して、入力フレームを予測的に符号化する動き補償予測符号化を実行することができる。このようにして、符号化エンジン(432)は、入力フレームのピクセル・ブロックと、入力フレームに対する予測参照として選択される可能性がある参照フレームのピクセル・ブロックとの間の差異を符号化する。
ローカル・ビデオ・デコーダ(433)は、ソース・コーダ(430)によって生成されたシンボルに基づいて、参照フレームとして指定される可能性があるフレームの符号化ビデオ・データを復号することができる。符号化エンジン(432)の動作は、有利には、非可逆的なプロセスであってもよい。符号化ビデオ・データがビデオ・デコーダ(図4には示されていない)で復号され得る場合、再構成されたビデオ・シーケンスは、典型的には、いくつかのエラーを伴うソース・ビデオ・シーケンスのレプリカである可能性がある。ローカル・ビデオ・デコーダ(433)は、ビデオ・デコーダが参照フレームに対して実行することができる復号プロセスを複製し、再構成された参照フレームを参照画像キャッシュ(434)に記憶させることができる。このようにして、エンコーダ(203)は、遠端のビデオ・デコーダによって取得される(伝送エラーがない)再構成された参照フレームと共通のコンテンツを有する、再構成された参照フレームのコピーをローカルに記憶することができる。
予測器(435)は、符号化エンジン(432)の予測探索を実行することができる。すなわち、符号化される新しいフレームについて、予測器(435)は、新しい画像のための適切な予測参照として役立つ可能性がある、サンプル・データ(参照ピクセル・ブロックの候補として)、又は参照画像動きベクトル、ブロック形状などの特定のメタデータについて参照画像メモリ(434)を探索することができる。予測器(435)は、適切な予測参照を見つけるために、ピクセル・ブロックごとのサンプルに動作することができる。場合によっては、予測器(435)によって取得された探索結果によって決定されるように、入力画像は、参照画像メモリ(434)に記憶された複数の参照画像から引き出された予測参照を有することができる。
コントローラ(450)は、例えば、ビデオ・データを符号化するために使用されるパラメータ及びサブグループ・パラメータの設定を含む、ビデオ・コーダ(430)の符号化動作を管理することができる。
前述したすべての機能ユニットの出力は、エントロピー・コーダ(445)においてエントロピー符号化されてもよい。エントロピー・コーダは、様々な機能ユニットによって生成されたシンボルを、例えばハフマン符号化、可変長符号化、算術符号化などの当業者に知られている技術に従って可逆圧縮することによって、符号化ビデオ・シーケンスに変換する。
トランスミッタ(440)は、エントロピー・コーダ(445)によって作成された符号化ビデオ・シーケンスをバッファリングして、符号化されたビデオ・データを記憶する記憶デバイスへのハードウェア/ソフトウェア・リンクあってもよい通信チャネル(460)を介して伝送するための準備をすることができる。トランスミッタ(440)は、ビデオ・コーダ(430)からの符号化ビデオ・データを、伝送される他のデータ、例えば、符号化音声データ及び/又は補助データ・ストリーム(ソースは図示せず)とマージすることができる。
コントローラ(450)は、エンコーダ(203)の動作を管理することができる。符号化中に、コントローラ(450)は、各符号化画像に特定の符号化画像タイプを割り当てることができ、これは、それぞれの画像に適用される可能性がある符号化技術に影響を与える可能性がある。例えば、画像は、多くの場合、以下のフレーム・タイプのうちの1つとして割り当てられてもよい。
イントラ画像(Intra Picture:I画像)は、予測のソースとしてシーケンス内の他のフレームを使用することなく符号化及び復号化することができるものであってもよい。ビデオ・コーデックの中には、異なるタイプのイントラ画像、例えばIndependent Decoder Refresh Picturesを可能にするものがある。当業者は、I画像のこれらの変形、並びにそれらのそれぞれのアプリケーション及び特徴を知っている。
予測画像(P画像)は、各ブロックのサンプル値を予測するために、最大1つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を使用して符号化及び復号化することができるものであってもよい。
双方向予測画像(B画像)は、各ブロックのサンプル値を予測するために、最大2つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を使用して符号化及び復号化することができるものであってもよい。同様に、複数の予測画像は、単一のブロックの再構成のために3つ以上の参照画像及び関連付けられたメタデータを使用することができる。
ソース画像は、通常、空間的に複数のサンプル・ブロック(例えば、それぞれ4x4、8x8、4x8、又は16x16サンプル・ブロック)に細分化され、ブロックごとに符号化されることがある。ブロックは、ブロックのそれぞれの画像に適用される符号化割り当てによって決定されるように、他の(すでに符号化された)ブロックを参照して予測的に符号化することができる。例えば、I画像のブロックは、非予測的に符号化される場合もあれば、同じ画像のすでに符号化されたブロックを参照して予測的に符号化される場合もある(空間予測又はイントラ予測)。P画像のピクセル・ブロックは、以前に符号化された1つの参照画像を参照して、非予測的に、空間予測を介して、又は時間予測を介して符号化されてもよい。B画像のブロックは、以前に符号化された1つ又は2つの参照画像を参照して、非予測的に、空間予測を介して、又は時間予測を介して符号化されてもとい。
ビデオ・コーダ(203)は、ITU-T Rec.H.265などの所定のビデオ符号化技術又は規格に従って符号化動作を実行することができる。その動作では、ビデオ・コーダ(203)は、入力ビデオ・シーケンスにおける時間的及び空間的冗長性を利用する予測符号化動作を含む、様々な圧縮動作を実行することができる。したがって、符号化ビデオ・データは、使用されているビデオ符号化技術又は規格によって指定されたシンタックスに準拠することができる。
一実施形態において、トランスミッタ(440)は、符号化ビデオとともに追加のデータを送信することができる。ビデオ・コーダ(430)は、符号化ビデオ・シーケンスの一部としてそのようなデータを含むことができる。追加のデータは、時間的/空間的/SNRエンハンスメント・レイヤ、冗長画像及びスライスなどの他の形態の冗長なデータ、Supplementary Enhancement Information(SEI)メッセージ、Visual Usability Information(VUI)パラメータ・セット・フラグメントなどを含むことができる。
開示された主題の特定の態様をより詳細に説明する前に、本明細書の残りの部分で参照されるいくつかの用語を紹介する必要がある。
以降、サブ画像とは、場合によっては、意味的にグループ化され、変更された解像度で独立して符号化することができるサンプル、ブロック、マクロブロック、符号化ユニット、又は同様のエンティティの矩形配置を指す。1つ又は複数のサブ画像は、画像を形成することができる。1つ又は複数の符号化サブ画像は、符号化画像を形成することができる。1つ又は複数のサブ画像を画像にアセンブルすることができ、1つ又は複数のサブ画像を画像から抽出することができる。特定の環境では、1つ又は複数の符号化サブ画像を、サンプル・レベルにトランスコーディングすることなく、圧縮領域において符号化画像にアセンブルすることができ、同じ又は特定の他の場合に、1つ又は複数の符号化サブ画像を圧縮領域において符号化画像から抽出することができる。
以降、適応解像度変更(Adaptive Resolution Change:ARC)とは、例えば参照画像のリサンプリングによって、符号化ビデオ・シーケンス内の画像又はサブ画像の解像度を変更することができるメカニズムを指す。以降、ARCパラメータとは、適応解像度変更を行うために必要な制御情報を指し、これには、例えば、フィルタ・パラメータ、スケーリング係数、出力及び/又は参照画像の解像度、様々な制御フラグなどが含まれてもよい。
上記の説明は、単一の意味的に独立した符号化ビデオ画像を符号化及び復号化することに焦点を当てている。独立したARCパラメータで複数のサブ画像を符号化/復号化することの意味とその含意された追加の複雑さを説明する前に、ARCパラメータをシグナリングするためのオプションについて説明することができる。
図5を参照すると、ARCパラメータをシグナリングするためのいくつかの新規なオプションが示されている。各オプションに関して記載されるように、符号化の効率、複雑さ、及びアーキテクチャの観点から、特定の長所及び短所がある。ビデオ符号化規格又は技術は、ARCパラメータをシグナリングするために、これらのオプション、又は従来技術から知られているオプションのうちの1つ又は複数を選択することができる。オプションは、相互に排他的でなくてもよく、おそらくはアプリケーションのニーズ、関連する標準技術、又はエンコーダの選択に基づいて交換されてもよい。
ARCパラメータのクラスには、以下が含まれてもよい。
-X次元及びY次元で分離又は結合されたアップ/ダウンサンプル係数。
-時間的次元が追加されたアップ/ダウンサンプル係数であって、所与の数の画像に対して一定速度のズームイン/ズームアウトを示す係数。
-上記の2つのいずれかは、係数を含むテーブルを指し示すことがある1つ又は複数のおそらくは短いシンタックス要素の符号化を伴うことがある。
-合成された又は別々の入力画像、出力画像、参照画像、符号化画像の、サンプル、ブロック、マクロブロック、CU、又はその他の適切な粒度の単位での、X又はY次元の解像度。2つ以上の解像度がある場合(例えば、入力画像用に1つ、参照画像用に1つなど)、場合によっては、ある値のセットが値の別の値のセットから推測されることがある。このようなことは、例えばフラグを使用してゲートされてもよい。より詳細な例については、以下を参照されたい。
-「ワーピング」座標は、H.263 Annex Pで使用されているものと類似しており、やはり上述したように適切な粒度で使用される。H.263 Annex Pは、このようなワーピング座標を符号化するための1つの効率的な方法を定義しているが、他の、潜在的により効率的な方法もおそらく考案され得る。例えば、Annex Pのワーピング座標の可変長の可逆的な「ハフマン」スタイル符号化は、適切な長さのバイナリ符号化に置き換えることができ、バイナリ符号語の長さは、例えば、最大画像サイズから導出することができ、場合によっては、特定の係数で乗算され、特定の値でオフセットされて、最大画像サイズの境界の外側での「ワープ」を可能にする。
-アップ又はダウンサンプル・フィルタ・パラメータ。最も簡単なケースでは、アップサンプリング及び/又はダウンサンプリング用のフィルタが1つしかない場合がある。しかしながら、場合によっては、フィルタ設計の柔軟性を高めることが有利な場合があり、それには、フィルタ・パラメータのシグナリングが必要になる場合がある。このようなパラメータは、可能なフィルタ設計のリストのインデックスを介して選択されてもよく、フィルタは、完全に指定されてもよく(例えば、適切なエントロピー符号化技術を使用してフィルタ係数のリストを介して)、フィルタは、アップ/ダウンサンプル比を介して暗黙的に選択されてもよく、それに応じて、上記のメカニズムのいずれかに従ってシグナリングされるなどである。
以降、説明は、符号語を介して示されるアップ/ダウンサンプル係数(X次元及びY次元の両方で使用される同じ係数)の有限のセットの符号化を想定している。その符号語は、例えば、H.264及びH.265などのビデオ符号化仕様の特定のシンタックス要素に共通のExt-Golomb符号を使用して、有利には、可変長で符号化することができる。アップ/ダウンサンプル係数への値の適切なマッピングの1つは、例えば、以下の表に従うことができる。
アプリケーションのニーズと、ビデオ圧縮技術又は規格において利用可能なアップスケール及びダウンスケール・メカニズムの能力とに応じて、多くの同様のマッピングを考案することができる。この表は、より多くの値に拡張することができる。値は、Ext-Golombコード以外のエントロピー符号化メカニズム、例えばバイナリ符号化を使用して表すこともできる。これは、例えばMANEによる、ビデオ処理エンジン自体(エンコーダ及びデコーダが最優先)の外部でリサンプリング係数が重要である場合に、特定の利点がある。解像度の変更が必要ない(おそらく)最も一般的なケースでは、短いExt-Golombコード(上記の表では単一ビットのみ)を選択することができることに留意されたい。これは、最も一般的なケースでは、バイナリ・コードを使用するよりも符号化効率が優れている可能性がある。
テーブル内のエントリの数、及びそれらのセマンティクスは、完全に又は部分的に構成可能であってもよい。例えば、テーブルの基本的なアウトラインは、シーケンス又はデコーダ・パラメータ・セットなどの「上位の」パラメータ・セットで伝達されてもよい。代替として、又は加えて、1つ又は複数のそのようなテーブルは、ビデオ符号化技術又は規格において定義されてもよく、例えば、デコーダ又はシーケンス・パラメータ・セットを介して選択されてもよい。
以降、上述のように符号化されたアップサンプル/ダウンサンプル係数(ARC情報)がビデオ符号化技術又は標準シンタックスにどのように含まれるかを説明する。同様の考慮事項が、アップ/ダウンサンプル・フィルタを制御する1つ又はいくつかの符号語に適用されることがある。フィルタ又はその他のデータ構造に比較的大量のデータが必要な場合の議論については、以下を参照されたい。
H.263 Annex Pは、ARC情報502を4つのワーピング座標の形態で画像ヘッダ501に、具体的にはH.263 PLUSPTYPE(503)ヘッダ拡張部に含めている。これは、a)使用可能な画像ヘッダが存在し、b)ARC情報の頻繁な変更が予想される場合に、賢明な設計選択になる可能性がある。しかしながら、H.263スタイルのシグナリングを使用する場合のオーバーヘッドは非常に大きくなることがあり、画像ヘッダは、過渡的な性質のものである場合があるため、スケーリング係数は、画像境界には関係しない可能性がある。
上で引用したJVCET-M135-v1は、画像パラメータ・セット(504)内に位置するARC参照情報(505)(インデックス)を含み、シーケンス・パラメータ・セット(507)内に位置するターゲット解像度を含むテーブル(506)にインデックスを付ける。シーケンス・パラメータ・セット(507)のテーブル(506)に可能な解像度を配置することは、作成者による言語ステートメントに従って、能力交換中に相互運用性ネゴシエーション・ポイントとしてSPSを使用することによって正当化され得る。解像度は、適切な画像パラメータ・セット(504)を参照することによって、テーブル(506)内の値によって設定された制限内で、画像ごとに変更することができる。
さらに図5を参照すると、ビデオ・ビットストリームにおいてARC情報を伝達するために、以下の追加オプションが存在する場合がある。これらのオプションのそれぞれには、上述したような既存の技術を上回る特定の利点がある。オプションは、同じビデオ符号化技術又は規格に同時に存在することがある。
一実施形態において、リサンプリング(ズーム)比などのARC情報(509)は、スライス・ヘッダ、GOBヘッダ、タイル・ヘッダ、又はタイル・グループ・ヘッダ(以降、タイル・グループ・ヘッダ)(508)に存在することができる。これは、例えば上述したように、単一の可変長ue(v)又は数ビットの固定長符号語などのARC情報が小さい場合に十分である。ARC情報をタイル・グループ・ヘッダ内に直接有することには、ARC情報が画像全体ではなく、例えばそのタイル・グループによって表されるサブ画像に適用できる可能性があるという追加の利点がある。以下も参照されたい。加えて、ビデオ圧縮技術又は規格が(例えば、タイル・グループベースの適応解像度の変更とは対照的に)画像全体の適応解像度の変更のみを想定している場合でも、ARC情報をH.263スタイルの画像ヘッダに入れるよりも、タイル・グループ・ヘッダに入れる方が、エラー回復の観点から特定の利点がある。
同じ又は別の実施形態において、ARC情報(512)自体は、例えば、画像パラメータ・セット、ヘッダ・パラメータ・セット、タイル・パラメータ・セット、適応パラメータ・セットなどの適切なパラメータ・セット(511)内に存在することができる(適応パラメータ・セットが示されている)。そのパラメータ・セットの範囲は、画像、例えばタイル・グループよりも大きくないことが有利である可能性がある。ARC情報の使用は、関連するパラメータ・セットのアクティブ化を通して暗黙的に行われる。例えば、ビデオ符号化技術又は規格が画像ベースのARCのみを企図している場合、画像パラメータ・セット又はそれに相当するものが適切な場合がある。
同じ又は別の実施形態において、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のように画像パラメータ・セット内ではなく、画像/スライス・タイル/GOB/タイル・グループ・ヘッダ(以降、タイル・グループ・ヘッダ)(514)内に直接配置することができることが有利である。その理由は以下の通りである。エンコーダが、例えばARC参照情報などの画像パラメータ・セット内の単一の値を変更したい場合、新しいPPSを作成し、その新しいPPSを参照する必要があるからである。ARC参照情報のみが変更され、PPSの量子化行列情報などの他の情報はそのままであると想定する。このような情報は、かなりのサイズになる可能性があり、新しいPPSを完全なものするためには再送信する必要がある。ARC参照情報は、テーブル(513)へのインデックスなどの単一の符号語である可能性があり、変更される唯一の値であるため、例えば、量子化マトリックス情報をすべて再送信することは面倒で無駄である。その限りにおいて、JVET-M0135-v1において提案されているように、PPSを介した間接参照を回避することは、符号化効率の観点からかなり優れている可能性がある。同様に、ARC参照情報をPPSに入れることには、画像パラメータ・セット・アクティベーションの範囲が画像であるため、ARC参照情報(513)によって参照されるARC情報がサブ画像ではなく画像全体に必ず適用される必要があるという追加の欠点がある。
同じ又は別の実施形態において、ARCパラメータのシグナリングは、図6に概説されるような詳細な例に従うことができる。図6は、少なくとも1993年以来、ビデオ符号化規格において使用されている表現におけるシンタックス・ダイアグラムを示す。このようなシンタックス・ダイアグラムの表記は、Cスタイルのプログラミングにほぼ従っている。太字の行は、ビットストリームに存在するシンタックス要素を示し、太字でない行は、しばしば、制御フロー又は変数の設定を示す。
画像の(おそらく矩形の)部分に適用可能なヘッダの例示的なシンタックス構造としてのタイル・グループ・ヘッダ(601)は、可変長のExp-Golom符号化シンタックス要素dec_pic_size_idx(602)(太字で示されている)を条件付きで含むことができる。タイル・グループ・ヘッダ内のこのシンタックス要素の存在、ここでは太字で示されていないフラグの値は、適応解像度の使用に関してゲートすることができ(603)、これは、フラグが、シンタックス・ダイアグラムで発生した点でビットストリーム内に存在することを意味する。適応解像度がこの画像又はその一部に使用されているかどうかは、ビットストリームの内部又は外部の任意の高レベルのシンタックス構造においてシグナリングされてもよい。示されている例では、以下に概説するように、シーケンス・パラメータ・セットにおいてシグナリングされる。
さらに図6を参照すると、シーケンス・パラメータ・セット(610)の抜粋も示されている。示されている第1のシンタックス要素は、adaptive_pic_resolution_change_flag(611)である。真の場合、そのフラグは、適応解像度の使用を示すことができ、これにより特定の制御情報が必要になる場合がある。本例では、このような制御情報は、パラメータ・セット(612)のif()ステートメントに基づくフラグの値及びタイル・グループ・ヘッダ(601)に基づいて条件付きで存在する。
適応解像度が使用されている場合、本例では、符号化されるのはサンプル単位の出力解像度である(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ユニット・ヘッダ内の値、例えば、Temporal IDフィールドを使用して、時間的レイヤだけでなく空間的レイヤも示すことができる。そうすることは、特定のシステム設計に対して特定の利点があり、例えば、NALユニット・ヘッダのTemporal ID値に基づいて時間的レイヤの選択された転送のために作成及び最適化された既存のSelected Forwarding Unit(SFU)を、スケーラブルな環境に対して修正することなく使用することができる。これを可能にするために、符号化画像サイズと時間的レイヤとの間のマッピングのための要件がある場合があり、NALユニット・ヘッダ内の時間IDフィールドによって示される。
一部のビデオ符号化技術では、アクセス・ユニット(AU)は、所与の時間インスタンスでキャプチャされ、それぞれの画像/スライス/タイル/NALユニットのビットストリームに合成された、符号化された画像、スライス、タイル、NALユニットなどを指すことがある。この時間インスタンスは、合成時間とすることができる。
HEVC及び他の特定のビデオ符号化技術では、復号画像バッファ(decoded picture buffer:DPB)に記憶された複数の参照画像のうち、選択された参照画像を示すたに画像順序カウント(picture order count:POC)値を使用することができる。アクセス・ユニット(AU)が1つ若しくは複数の画像、スライス、又はタイルで構成されている場合、同じAUに属する各画像、スライス、又はタイルは、同じPOC値を担持することがあり、このことから、それらが同じ合成時間のコンテンツから作成されたものであることを推論することができる。言い換えると、2つの画像/スライス/タイルが同じ特定のPOC値を担持するシナリオでは、その2つの画像/スライス/タイルが同じAUに属し、同じ合成時間を有することを示すことができる。逆に、POC値が異なる2つの画像/タイル/スライスは、それぞれの画像/スライス/タイルが異なるAUに属し、合成時間が異なることを示すことができる。
開示された主題の実施形態において、アクセス・ユニットが異なるPOC値を有する画像、スライス、又はタイルを含むことができるという点で、前述の厳密な関係を緩和することができる。AU内で異なるPOC値を可能することによって、POC値を使用して、同じ提示時間で潜在的に独立して復号可能な画像/スライス/タイルを識別することが可能になる。これは、以下でより詳細に説明するように、参照画像選択シグナリング(例えば、参照画像セット・シグナリング又は参照画像リスト・シグナリング)を変更することなく、複数のスケーラブルなレイヤのサポートを可能にすることができる。
しかしながら、異なるPOC値を有する他の画像/スライス/タイルに関して、POC値のみから、画像/スライス/タイルが属するAUを識別できることが依然として望ましい。これは、以下に説明するように達成することができる。
同じ又は他の実施形態において、アクセス・ユニット・カウント(access unit count:AUC)は、NALユニット・ヘッダ、スライス・ヘッダ、タイル・グループ・ヘッダ、SEIメッセージ、パラメータ・セット又はAUデリミタなどの高レベルのシンタックス構造においてシグナリングされてもよい。AUCの値は、どのNALユニット、画像、スライス、又はタイルが所与のAUに属するかを識別するために使用することができる。AUCの値は、個別の合成時間インスタンスに対応してもよい。AUC値は、POC値の倍数に等しくてもよい。POC値を整数値で除算することによって、AUC値を計算することができる。場合によっては、除算演算は、デコーダの実装に特定の負担をかける可能性がある。このような場合、AUC値のナンバリング空間においてわずかに制限をかけることにより、除算演算をシフト演算に置き換えることができる。例えば、AUC値は、POC値範囲の最上位ビット(Most Significant Bit:MSB)値と等しい場合がある。
同じ実施形態において、AUごとのPOCサイクルの値(poc_cycle_au)は、NALユニット・ヘッダ、スライス・ヘッダ、タイル・グループ・ヘッダ、SEIメッセージ、パラメータ・セット、又はAUデリミタなどの高レベルのシンタックス構造においてシグナリングされてもよい。poc_cycle_auは、同じAUにいくつの異なる連続したPOC値を関連付けることができるかを示すことができる。例えば、poc_cycle_auの値が4に等しい場合、POC値が両端値を含む0から3の画像、スライス、又はタイルは、AUC値が0のAUに関連付けられ、POC値が両端値を含む4から7の画像、スライス、又はタイルは、AUC値が1のAUに関連付けられる。したがって、AUCの値は、POC値をpoc_cycle_auの値で除算することによって推測することができる。
同じ又は別の実施形態において、poc_cyle_auの値は、符号化ビデオ・シーケンス内の空間レイヤ又はSNRレイヤの数を識別する、例えばビデオ・パラメータ・セット(VPS)内に位置する情報から導出されてもよい。このような可能な関係について、以下に簡単に説明する。上述したような導出により、VPSの数ビットが節約され、符号化効率が向上する可能性があるが、ビデオ・パラメータ・セットの階層的に下位の適切な高レベルのシンタックス構造においてpoc_cycle_auを明示的に符号化し、画像などのビットストリームの特定の小部分についてpoc_cycle_auを最小限に抑えることができるようにすることが有利な場合がある。この最適化により、POC値(及び/又はPOCを間接的に参照するシンタックス要素の値)を低レベルのシンタックス構造で符号化することが可能であるため、上記の導出プロセスにおいて節約することができるビットよりも多くのビットを節約することができる可能性がある。
同じ又は別の実施形態において、図9は、VPS(又はSPS)において、符号化ビデオ・シーケンスのすべての画像/スライスに使用されるpoc_cycle_auを示す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で除算することによって計算される。図10は、関連するワーク・フローを示すブロック図を示す。
同じ又は他の実施形態において、画像、スライス、又はタイルのPOCの値が異なることがあったとしても、同じAUC値を有するAUに対応する画像、スライス、又はタイルは、同じ復号化又は出力時間インスタンスに関連付けられ得る。したがって、同じAU内の画像、スライス、又はタイル間でのいかなるインター解析/復号依存関係なしに、同じAUに関連付けられた画像、スライス、又はタイルのすべて又はサブセットが並列に復号され、同時に出力されてもよい。
同じ又は他の実施形態において、画像、スライス、又はタイルのPOCの値が異なることがあったとして、同じAUC値を有するAUに対応する画像、スライス、又はタイルは、同じ構成/表示時間インスタンスに関連付けられてもよい。合成時間がコンテナ・フォーマットに含まれている場合、画像が異なるAUに対応しているとしても、画像の合成時間が同じであれば、画像を同じ時間インスタンスで表示することができる。
同じ又は他の実施形態において、各画像、スライス、又はタイルは、同じAU内に同じ時間識別子(temporal_id)を有することができる。時間インスタンスに対応する画像、スライス、又はタイルのすべて又はサブセットは、同じ時間サブレイヤに関連付けられてもよい。同じ又は他の実施形態において、各画像、スライス、又はタイルは、同じAU内に同じ又は異なる空間レイヤid(layer_id)を有することができる。時間インスタンスに対応する画像、スライス、又はタイルのすべて又はサブセットは、同じ又は異なる空間レイヤに関連付けられてもよい。
全体を通して説明される適応解像度パラメータをシグナリングするための技術は、コンピュータ可読命令を使用してコンピュータ・ソフトウェアとして実装され、1つ又は複数のコンピュータ可読媒体に物理的に記憶されてもよい。例えば、図7は、開示された主題の特定の実施形態を実施するのに適したコンピュータ・システム700を示す。
コンピュータ・ソフトウェアは、任意の適切な機械語又はコンピュータ言語を使用してコーディングすることができ、これらの言語は、アセンブリ、コンパイル、リンクなどのメカニズムの対象となり、コンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって、直接、又は解釈やマイクロコード実行などを介して実行することができる命令を含むコードを生成することができる。
命令は、例えば、パーソナル・コンピュータ、タブレット・コンピュータ、サーバ、スマート・フォン、ゲーム機器、モノのインターネット機器などを含む、様々なタイプのコンピュータ又はそのコンポーネント上で実行することができる。
コンピュータ・システム700について図7に示されるコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータ・ソフトウェアの使用範囲又は機能に関して、いかなる限定も示唆することは意図されていない。また、コンポーネントの構成は、コンピュータ・システム700の例示的な実施形態に示されるコンポーネントのいずれか1つ又は組合せに関連する依存関係又は要件を有すると解釈されるべきではない。
コンピュータ・システム700は、特定のヒューマン・インターフェース入力デバイスを含むことができる。そのようなヒューマン・インターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データ・グローブの動きなど)、音声入力(声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)を介して、1人又は複数の人間のユーザによる入力に応答することができる。ヒューマン・インターフェース・デバイスは、音声(スピーチ、音楽、周囲音など)、画像(スキャンされた画像、静止画像カメラから取得した写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接関連しない特定の媒体をキャプチャするためにも使用することができる。
入力ヒューマン・インターフェース・デバイスは、キーボード701、マウス702、トラックパッド703、タッチ・スクリーン710、データ・グローブ704、ジョイスティック705、マイクロフォン706、スキャナ707、カメラ708のうちの1つ又は複数(図示されたそれぞれのうちの1つのみ)を含むことができる。
コンピュータ・システム700はまた、特定のヒューマン・インターフェース出力デバイスを含むことができる。そのようなヒューマン・インターフェース出力デバイスは、例えば、触覚出力、音、光、及び匂い/味覚を通して、1人又は複数の人間のユーザの感覚を刺激するものであってもよい。そのようなヒューマン・インターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ・スクリーン710、データ・グローブ704、又はジョイスティック705による触覚フィードバックを含むことができるが、入力デバイスとして機能しない触覚フィードバック・デバイス)、音声出力デバイス(スピーカ709、ヘッドホン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマ・スクリーン、OLEDスクリーンを含み、それぞれがタッチ・スクリーン入力機能を有するか又は有さず、それぞれが触覚フィードバック機能を有するか又は有さず、そのうちのいくつかが立体グラフィック出力、仮想現実眼鏡(図示せず)、ホログラフィック・ディスプレイ、スモーク・タンク(図示せず)などの手段を介して、2次元視覚出力又は3次元を超える出力を出力可能なスクリーン710など)、及びプリンタ(図示せず))を含むことができる。
コンピュータ・システム700はまた、CD/DVDなどの媒体721を有するCD/DVD ROM/RW 720を含む光学媒体、サム・ドライブ722、リムーバブル・ハード・ドライブ又はソリッド・ステート・ドライブ723、テープやフロッピー・ディスクなどのレガシー磁気媒体(図示せず)、セキュリティ・ドングルなどの特殊なROM/ASIC/PLDベースのデバイス(図示せず)などの、人間がアクセス可能な記憶デバイス及びその関連媒体を含むことができる。
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一過性の信号を含まないことを理解すべきである。
コンピュータ・システム700はまた、1つ又は複数の通信ネットワークへのインターフェースを含むことができる。ネットワークは、例えば、無線、有線、光であってもよい。ネットワークはさらに、ローカル、ワイド・エリア、大都市、車両及び産業、リアルタイム、遅延耐性などとすることができる。ネットワークの例には、イーサネットなどのローカル・エリア・ネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラー・ネットワーク、ケーブルTV、衛星TV、地上波放送TVを含むTV有線又は無線ワイド・エリア・デジタル・ネットワーク、CANBusを含む車両及び産業などが含まれる。特定のネットワークは、通常、特定の汎用データポート又は周辺バス(749)に接続された外部ネットワーク・インターフェース・アダプタを必要とし(例えば、コンピュータ・システム700のUSBポートなど、他は、通常、以下で説明するようなシステム・バスに取り付けることによってコンピュータ・システム700のコアに組み込まれている(例えば、PCコンピュータ・システムへのイーサネット・インターフェース又はスマート・フォン・コンピュータ・システムへのセルラー・ネットワーク・インターフェース)。これらのネットワークのいずれかを使用して、コンピュータ・システム700は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、テレビ放送)、単方向送信のみ(例えば、CANbusから特定のCANbusデバイスへ)、又は双方向(例えば、ローカル又はワイド・エリア・デジタル・ネットワークを使用して他のコンピュータ・システムへ)とすることができる。特定のプロトコル及びプロトコル・スタックを上述したようなこれらのネットワーク及びネットワーク・インターフェースのそれぞれで使用することができる。
前述のヒューマン・インターフェース・デバイス、ヒューマンアクセス可能記憶デバイス、及びネットワーク・インターフェースは、コンピュータ・システム700のコア740に取り付けることができる。
コア740は、1つ又は複数の中央処理装置(CPU)741、グラフィックス処理装置(GPU)742、フィールド・プログラマブル・ゲート・エリア(FPGA)743の形態の専用プログラマブル処理装置、特定のタスクのためのハードウェア・アクセラレータ744などを含むことができる。これらのデバイスは、読み取り専用メモリ(ROM)745、ランダム・アクセス・メモリ746、内部ユーザアクセス不能ハード・ドライブなどの内部大容量ストレージ、SSDなど747とともに、システム・バス748を介して接続することができる。一部のコンピュータ・システムでは、システム・バス748は、1つ又は複数の物理プラグの形態でアクセス可能であり、追加のCPU、GPUなどによる拡張を可能にする。周辺機器は、コアのシステム・バス748に直接接続することも、周辺バス749を介して接続することもできる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
CPU741、GPU742、FPGA743、及びアクセラレータ744は、組み合わされて、前述のコンピュータ・コードを構成することができる特定の命令を実行することができる。そのコンピュータ・コードは、ROM745又はRAM746に記憶することができる。また、一過性のデータもRAM746に記憶することができるが、恒久的なデータは、例えば、内部大容量記憶装置747に記憶することができる。1つ又は複数のCPU741、GPU 742、大容量記憶装置747、ROM 745、RAM746などと密接に関連付けることができるキャッシュ・メモリを使用することにより、メモリ・デバイスのいずれかへの高速記憶及び取得を可能にすることができる。
コンピュータ可読媒体は、様々なコンピュータ実施動作を実行するためのコンピュータ・コードを有することができる。媒体及びコンピュータ・コードは、本開示の目的のために専用に設計及び構築されたものであってもよく、又はコンピュータ・ソフトウェア分野の当業者によく知られている利用可能な種類のものとすることができる。
限定ではなく例として、アーキテクチャを有するコンピュータ・システム700、具体的にはコア740は、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つ又は複数の有形のコンピュータ可読媒体で具現化されたソフトウェアを実行する結果として、機能を提供することができる。そのようなコンピュータ可読媒体は、上で紹介したようなユーザアクセス可能な大容量記憶装置、並びにコア内部の大容量記憶装置747又はROM745などの非一過性の性質のものである、コア740の特定の記憶装置に関連する媒体であってもよい。本開示の様々な実施形態を実施するソフトウェアは、そのようなデバイスに記憶され、コア740によって実行され得る。
コンピュータ可読媒体は、特定のニーズに応じて、1つ又は複数のメモリ・デバイス又はチップを含むことができる。ソフトウェアは、コア740、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM746に記憶されたデータ構造を定義すること、及びソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含む、本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。加えて、又は代替として、コンピュータ・システムは、本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、又はソフトウェアとともに動作することができる回路(例えば、アクセラレータ744)にハードワイヤード又はその他の方法で具現化されたロジックの結果として機能を提供することができる。
適切な場合は、ソフトウェアへの言及は、ロジックを包含することができ、その逆も可能である。コンピュータ可読媒体への言及は、適切な場合は、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、又はその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
図8は、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における既存の参照画像セット(reference picture set:RPS)シグナリング又は参照画像リスト(reference picture list: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に対応する符号化ビットストリームに符号化され、含められてもよく、一方、元の空間解像度を有するサブ画像からアップサンプリング(又はダウンサンプリング)された、(W*Sw,k,H*Sh,k)のサブ画像は、レイヤkに対応する符号化ビットストリームに符号化され、含められてよく、ここで、Sw,k、Sh,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に等しい。layer_idが0に等しいサブ画像レイヤは、ベース・サブ画像レイヤである。
同じ又は別の実施形態において、画像は、1つ又は複数の前景サブ画像及び1つの背景サブ画像から構成されてもよい。背景サブ画像によってサポートされる領域は、画像の領域と等しくてもよい。前景サブ画像によってサポートされる領域は、背景サブ画像によってサポートされる領域と重複してもよい。背景サブ画像は、ベース・サブ画像レイヤであってもよいが、前景サブ画像は、非ベース(エンハンスメント)サブ画像レイヤであってもよい。1つ又は複数の非ベース・サブ画像レイヤは、復号のために同じベース・レイヤを参照することができる。layer_idがaに等しい非ベース・サブ画像レイヤはそれぞれ、layer_idがbに等しい非ベース・サブ画像レイヤを参照することができ、ここで、aはbよりも大きい。
同じ又は別の実施形態において、画像は、背景サブ画像を有する、又は有さない1つ又は複数の前景サブ画像から構成されてもよい。各サブ画像は、それ自体のベース・サブ画像レイヤと、1つ又は複数の非ベース(エンハスメント)レイヤを有することができる。各ベース・サブ画像レイヤは、1つ又は複数の非ベース・サブ画像レイヤによって参照されてもよい。layer_idがaに等しい非ベース・サブ画像レイヤはそれぞれ、layer_idがbに等しい非ベース・サブ画像レイヤを参照することができ、ここで、aはbよりも大きい。
同じ又は別の実施形態において、画像は、背景サブ画像を有する、又は有さない1つ又は複数の前景サブ画像から構成されてもよい。(ベース又は非ベース)サブ画像レイヤ内の各符号化サブ画像は、同じサブ画像に属する1つ又は複数の非ベース・レイヤのサブ画像と、同じサブ画像に属していない1つ又は複数の非ベース・レイヤのサブ画像とによって参照されてもよい。
同じ又は別の実施形態において、画像は、背景サブ画像を有する、又は有さない1つ又は複数の前景サブ画像から構成されてもよい。レイヤa内のサブ画像は、同じレイヤ内の複数のサブ画像にさらに分割されてもよい。レイヤb内の1つ又は複数の符号化サブ画像は、レイヤa内の分割されたサブ画像を参照することができる。
同じ又は別の実施形態において、符号化ビデオ・シーケンス(coded video sequence:CVS)は、符号化画像のグループであってもよい。CVSは、1つ又は複数の符号化サブ画像シーケンス(coded sub-picture sequence:CSPS)から構成されてもよく、ここで、CSPSは、画像の同じローカル領域をカバーする符号化サブ画像のグループであってもよい。CSPSは、符号化ビデオ・シーケンスの時間解像度と同じか又は異なる時間解像度を有することができる。
同じ又は別の実施形態において、CSPSは、符号化され、1つ又は複数のレイヤ内に含められてもよい。CSPSは、1つ又は複数のCSPSレイヤから構成されてもよい。CSPSに対応する1つ又は複数のCSPSレイヤを復号することにより、同じローカル領域に対応する一連のサブ画像のシーケンスを再構成することができる。
同じ又は別の実施形態において、CSPSに対応するCSPSレイヤの数は、別のCSPSに対応するCSPSレイヤの数と同一であっても異なっていてもよい。
同じ又は別の実施形態において、CSPSレイヤは、別のCSPSレイヤとは異なる時間解像度(例えば、フレーム・レート)を有することができる。元の(圧縮されていない)サブ画像シーケンスは、時間的にリサンプリング(アップサンプリング又はダウンサンプリング)され、異なる時間解像度パラメータで符号化され、レイヤに対応するビットストリームに含められてもよい。
同じ又は別の実施形態において、フレーム・レートFを有するサブ画像シーケンスは、符号化され、レイヤ0に対応する符号化されたビットストリームに含められてもよく、一方、F*St,kを有する元のサブ画像シーケンスから時間的にアップサンプリングされた(又はダウンサンプリングされた)サブ画像シーケンスは、符号化され、レイヤkに対応する符号化されたビットストリームに含められてもよく、ここで、St,kはレイヤkについての時間的なサンプリング比である。St,kの値が1よりも大きい場合、時間的なリサンプリング・プロセスは、フレーム・レートのアップコンバージョンに等しい。一方、St,kの値が1よりも小さい場合、時間的なリサンプリング・プロセスは、フレーム・レートのダウンコンバージョンに等しい。
同じ又は別の実施形態において、動き補償又は任意のレイヤ間予測のために、CSPSレイヤaを有するサブ画像が、CSPSレイヤbを有するサブ画像によって参照されるときに、CSPSレイヤaの空間解像度がCSPSレイヤbの空間解像度と異なる場合、CSPSレイヤa内の復号ピクセルがリサンプリングされ、参照のために使用される。リサンプリング・プロセスでは、アップサンプリング・フィルタリング又はダウンサンプリング・フィルタリングが必要となる場合がある。
図11は、layer_idが0に等しい背景ビデオCSPSと、複数の前景CSPSレイヤとを含む例示的なビデオ・ストリームを示す。符号化サブ画像は、1つ又は複数のCSPSレイヤで構成されていてもよいが、いずれの前景CSPSレイヤにも属していない背景領域は、ベース・レイヤで構成されている場合がある。ベース・レイヤは、背景領域及び前景領域を含むことができるが、エンハンスメントCSPSレイヤは、前景領域を含む。エンハンスメントCSPSレイヤは、同じ領域において、ベース・レイヤよりも視覚的な品質が優れている場合がある。エンハンスメントCSPSレイヤは、同じ領域に対応する、再構成されたピクセルとベース・レイヤの動きベクトルとを参照することができる。
同じ又は別の実施形態において、ベース・レイヤに対応するビデオ・ビットストリームはトラックに含められ、一方、各サブ画像に対応するCSPSレイヤは、ビデオファイル内の別個のトラックに含められる。
同じ又は別の実施形態において、ベース・レイヤに対応するビデオ・ビットストリームは、トラックに含められ、一方、同じlayer_idを有するCSPSレイヤは、別個のトラックに含められる。本例では、レイヤkに対応するトラックは、レイヤkに対応するCSPSレイヤのみを含む。
同じ又は別の実施形態において、各サブ画像の各CSPSレイヤは、別個のトラックに記憶される。各トラックは、1つ又は複数の他のトラックからの解析又は復号依存関係があっても、なくてもよい。
同じ又は別の実施形態において、各トラックは、サブ画像のすべて又はサブセットのCSPSレイヤのうちのレイヤiからレイヤjに対応するビットストリームを含むことができ、ここで、0<i=<j=<kであり、kは、CSPSの最上位レイヤである。
同じ又は別の実施形態において、画像は、深度マップ、アルファ・マップ、3Dジオメトリデータ、占有マップなどを含む1つ又は複数の関連付けられた媒体データから構成されている。そのような関連付けられた時限式媒体データは、それぞれが1つのサブ画像に対応する1つ又は複数のデータサブストリームに分割することができる。
同じ又は別の実施形態において、図12は、マルチレイヤ・サブ画像方法に基づくビデオ会議の例を示す。ビデオ・ストリームには、背景画像に対応する1つのベース・レイヤ・ビデオ・ビットストリームと、前景サブ画像に対応する1つ又は複数のエンハンスメント・レイヤ・ビデオ・ビットストリームとが含まれる。各エンハンスメント・レイヤ・ビデオ・ビットストリームは、CSPSレイヤに対応する。ディスプレイでは、デフォルトでベース・レイヤに対応する画像が表示される。これには、1つ又は複数のユーザのピクチャ・イン・ピクチャ(PIP)が含まれている。クライアントの制御によって特定のユーザが選択されると、選択されたユーザに対応するエンハンスメントCSPSレイヤが復号され、品質又は空間解像度を向上させて表示される。図13は、その動作を示す図である。
同じ又は別の実施形態において、ネットワーク・ミドル・ボックス(ルータなど)は、その帯域幅に応じて、ユーザに送信するレイヤのサブセットを選択することができる。画像/サブ画像の構成は、帯域幅の適応に使用することができる。例えば、ユーザが帯域幅を有していない場合、ルータは、レイヤを削除するか、重要性に応じて、又は使用されているセットアップに基づいていくつかのサブ画像を選択し、これは、帯域幅に適応するために動的に行うことができる。
図14は、360度ビデオの使用事例を示す。球面の360度画像が平面画像上に投影されると、投影360度画像は、ベース・レイヤとして複数のサブ画像に分割されることがある。特定のサブ画像のエンハンスメント・レイヤを符号化して、クライアントに送信することができる。デコーダは、すべてのサブ画像を含むベース・レイヤと、選択されたサブ画像のエンハンスメント・レイヤとの両方を復号することが可能であってもよい。現在のビューポートが、選択されたサブ画像と同一である場合、表示される画像は、エンハンスメント・レイヤを有する復号サブ画像でより高品質になる可能性がある。さもなければ、ベース・レイヤを有する復号画像が低品質で表示されることがある。
同じ又は別の実施形態において、表示のための任意のレイアウト情報は、補足情報(SEIメッセージ又はメタデータなど)としてファイルに存在してもよい。シグナリングされたレイアウト情報に応じて、1つ又は複数の復号サブ画像が再配置及び表示されてもよい。レイアウト情報は、ストリーミング・サーバ又はブロードキャスタによってシグナリングされてもよく、ネットワーク・エンティティ又はクラウド・サーバによって再生成されてもよく、或いはユーザのカスタマイズされた設定によって決定されてもよい。
一実施形態において、入力画像が1つ又は複数の(矩形の)サブ領域に分割される場合、各サブ領域は、独立レイヤとして符号化されてもよい。ローカル領域に対応する各独立レイヤは、一意のlayer_id値を有することができる。独立レイヤごとに、サブ画像のサイズ及び位置情報がシグナリングされてもよい。例えば、画像サイズ(幅、高さ)、左上隅のオフセット情報(x_offset、y_offset)である。図15は、分割されたサブ画像のレイアウト、そのサブ画像のサイズ及び位置情報、並びにその対応する画像予測構造の例を示す。サブ画像サイズ及びサブ画像位置を含むレイアウト情報は、パラメータ・セット、スライス若しくはタイル・グループのヘッダ、又はSEIメッセージなどの高レベルのシンタックス構造においてシグナリングされてもよい。
同じ実施形態において、独立レイヤに対応する各サブ画像は、AU内でその一意のPOC値を有することができる。DPBに記憶された画像のうちの参照画像がRPS又はRPL構造のシンタックス要素を使用して示される場合、レイヤに対応する各サブ画像のPOC値を使用することができる。
同じ又は別の実施形態において、(レイヤ間)予測構造を示すために、layer_idを使用せず、POC(delta)値を使用してもよい。
同じ実施形態において、あるレイヤ(又はローカル領域)に対応するPOC値がNに等しいサブ画像は、同じレイヤ(又は同じローカル領域)に対応するPOC値がN+Kに等しいサブ画像の参照画像として、動き補償予測に使用されても、されなくてもよい。ほとんどの場合、数Kの値は、(独立)レイヤの最大数に等しくてもよく、これは、サブ領域の数と等しくてもよい。
同じ又は別の実施形態において、図16は、図15の拡張されたケースを示す。入力画像が複数(例えば4つ)のサブ領域に分割される場合、各ローカル領域は、1つ又は複数のレイヤで符号化されてもよい。この場合、独立レイヤの数は、サブ領域の数に等しくてもよく、1つ又は複数のレイヤがサブ領域に対応していてもよい。したがって、各サブ領域は、1つ又は複数の独立レイヤ及び0又は複数の従属レイヤで符号化されてもよい。
同じ実施形態において、図16において、入力画像は、4つのサブ領域に分割されてもよい。右上のサブ領域は、レイヤ1とレイヤ4の2つのレイヤとして符号化されてもよく、一方、右下のサブ領域は、レイヤ3とレイヤ5の2つのレイヤとして符号化されてもよい。この場合、レイヤ4は、動き補償予測のためにレイヤ1を参照することができ、一方、レイヤ5は、動き補償のためにレイヤ3を参照することができる。
同じ又は別の実施形態において、レイヤ境界を横切るインループ・フィルタリング(デブロッキング・フィルタリング、適応インループ・フィルタリング、リシェーパ、双方向フィルタリング、又は任意の深層学習ベースのフィルタリングなど)は、(所望により)無効にされてもよい。
同じ又は別の実施形態において、レイヤ境界を横切る動き補償予測又はイントラブロック・コピーは、(所望により)無効にされてもよい。
同じ又は別の実施形態において、サブ画像の境界での動き補償予測又はインループ・フィルタリングのための境界パディングを所望により処理することができる。境界パディングが処理されるかどうかを示すフラグは、パラメータ・セット(VPS、SPS、PPS、又はAPS)、スライス又はタイル・グループ・ヘッダ、SEIメッセージなどの高レベルのシンタックス構造においてシグナリングされてもよい。
同じ又は別の実施形態において、サブ領域(又はサブ画像)のレイアウト情報は、VPS又はSPSにおいてシグナリングされてもよい。図17は、VPS及びSPSのシンタックス要素の例を示す。本例では、vps_sub_picture_dividing_flagは、VPSにおいてシグナリングされる。フラグは、入力画像が複数のサブ領域に分割されているかどうかを示すことができる。vps_sub_picture_dividing_flagの値が0に等しい場合、現在のVPSに対応する符号化ビデオ・シーケンスの入力画像は、複数のサブ領域に分割されなくてもよい。この場合、入力画像サイズは、SPSにおいてシグナリングされる符号化画像サイズ(pic_width_in_luma_samples、pic_height_in_luma_samples)に等しくてもよい。vps_sub_picture_dividing_flagの値が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の値は、それぞれ入力画像の幅と高さに等しくてもよい。
同じ実施形態において、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は、特定のレイヤに対応する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)は、復号化に使用されなくてもよいが、合成及び表示に使用されてもよい。
同じ又は別の実施形態において、入力画像のすべて又はサブセットのサブ領域のレイアウト情報(サイズ及び位置)、レイヤ間の依存関係情報は、パラメータ・セット又はSEIメッセージにおいてシグナリングされてもよい。図18は、サブ領域のレイアウト、レイヤ間の依存関係、及びサブ領域と1つ又は複数のレイヤとの間の関係に関する情報を示すためのシンタックス要素の例を示す。本例では、シンタックス要素num_sub_regionは、現在の符号化ビデオ・シーケンス内の(矩形の)サブ領域の数を示し、シンタックス要素num_layersは、現在の符号化ビデオ・シーケンス内のレイヤ数を示す。num_layersの値は、num_sub_regionの値以上であってもよい。任意のサブ領域が単一レイヤとして符号化される場合、num_layersの値は、num_sub_regionの値に等してもよい。1つ又は複数のサブ領域が複数のレイヤとして符号化される場合、num_layersの値は、num_sub_regionの値よりも大きくなる可能性がある。シンタックス要素direct_dependency_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メッセージにおいてシグナリングされてもよい。図19を参照すると、VPSを参照する符号化ビデオ・シーケンス内の出力レイヤ・セット(output layer set: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メッセージにおいてシグナリングされてもよい。さらに図19を参照すると、VPSを参照する符号化ビデオ・シーケンスにおけるOLS当たりのプロファイル階層レベル情報の数を示すシンタックス要素num_profile_tile_levelは、VPSにおいてシグナリングされてもよい。各出力レイヤ・セットについて、プロファイル階層レベル情報に対するシンタックス要素のセット、又はプロファイル階層レベル情報内のエントリのうちの特定のプロファイル階層レベル情報を示すインデックスは、出力レイヤの数だけシグナリングされてもよい。
同じ実施形態において、profile_tier_level_idx[i][j]は、i番目のOLSのj番目のレイヤに適用されるprofile_tier_level()シンタックス構造の、VPS内のprofile_tier_level()シンタックス構造のリスト内にインデックスを指定する。
同じ又は別の実施形態において、図20を参照すると、最大レイヤの数が1よりも大きい場合(vps_max_layers_minus1>0)、シンタックス要素num_profile_tile_level及び/又はnum_output_layer_setsがシグナリングされてもよい。
同じ又は別の実施形態において、図20を参照すると、i番目の出力レイヤ・セットのための出力レイヤ・シグナリングのモードを示すシンタックス要素vps_output_layers_mode[i]がVPS内に存在することができる。
同じ実施形態において、0に等しいvps_output_layers_mode[i]は、i番目の出力レイヤ・セットを有する最上位レイヤのみを出力することを指定する。vps_output_layer_mode[i]が1の場合、i番目の出力レイヤ・セットを有するすべてのレイヤを出力することを指定する。vps_output_layer_mode[i]が2に等しい場合、出力されるレイヤは、i番目の出力レイヤ・セットを有するvps_output_layer_flag[i][j]が1に等しいレイヤであることを指定する。より多くの値が予約されていてもよい。
同じ実施形態において、output_layer_flag[i][j]は、i番目の出力レイヤ・セットについてvps_output_layers_mode[i]の値に応じて、シグナリングされる場合と、されない場合がある。
同じ又は別の実施形態において、図20を参照すると、フラグvps_ptl_signal_flag[i]がi番目の出力レイヤ・セットに対して存在することができる。vps_ptl_signal_flag[i]の値に応じて、i番目の出力レイヤ・セットのプロファイル階層レベルの情報がシグナリングされる場合と、されない場合がある。
同じ又は別の実施形態において、図21を参照すると、現在のCVS内のサブ画像の数max_subpics_minus1は、高レベルのシンタックス構造、例えば、VPS、DPS、SPS、PPS、APS又はSEIメッセージにおいてシグナリングされてもよい。
同じ実施形態において、図21を参照すると、サブ画像の数が1よりも大きい場合(max_subpics_minus1>0)、i番目のサブ画像のサブ画像識別子sub_pic_id[i]がシグナリングされてもよい。
同じ又は別の実施形態において、各出力レイヤ・セットの各レイヤに属するサブ画像識別子を示す1つ又は複数のシンタックス要素がVPSにおいてシグナリングされてもよい。図22を参照すると、sub_pic_id_layer[i][j][k]は、i番目の出力レイヤ・セットのj番目のレイヤに存在するk番目のサブ画像を示す。これらの情報を用いて、デコーダは、特定の出力レイヤ・セットの各レイヤについてどのサブ画像が復号及び出力され得るかを認識することができる。
一実施形態において、画像ヘッダ(picture header:PH)は、符号化画像のすべてのスライスに適用されるシンタックス要素を含むシンタックス構造である。画像ユニット(picture unit:PU)は、指定された分類ルールに従って互いに関連付けられ、復号順に連続しており、厳密に1つの符号化画像を含むNALユニットのセットである。PUは、画像ヘッダ(PH)と、符号化画像を構成する1つ又は複数のVCL NALユニットとを含むことができる。
一実施形態において、SPS(RBSP)は、参照される前に復号プロセスに利用可能であってもよく、TemporalIdが0に等しい少なくとも1つのAUに含まれていてもよく、又は外部手段を通じて提供されてもよい。
一実施形態において、SPS(RBSP)は、参照される前に復号プロセスに利用可能であってもよく、SPSを参照する1つ又は複数のPPSを含む、TemporalIdがCVSにおいて0に等しい少なくとも1つのAUに含まれていてもよく、又は外部手段を通じて提供されてもよい。
一実施形態において、SPS(RBSP)は、1つ又は複数のPPSによって参照される前に復号プロセスに利用可能であってもよく、SPSを参照する1つ又は複数のPPSを含む、nuh_layer_idがCVS内のSPS NALユニットを参照するPPS NALユニットの最低のnuh_layer_id値に等しい少なくとも1つのPU内に含まれていてもよく、又は外部手段を通じて提供されてもよい。
一実施形態において、SPS(RBSP)は、1つ又は複数のPPSによって参照される前に復号プロセスに利用可能であってもよく、TemporalIdが0に等しく、nuh_layer_idがSPS NALユニットを参照するPPS NALユニットの、最低のnuh_layer_id値に等しい少なくとも1つのPUに含まれていてもよく、又は外部手段を通じて提供されてもよい。
一実施形態において、SPS(RBSP)は、1つ又は複数のPPSによって参照される前に復号プロセスに利用可能であってもよく、SPSを参照する1つ又は複数のPPSを含む、TemporalIdが0に等しく、nuh_layer_idがCVS内のSPS NALユニットを参照するPPS NALユニットの最低の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値に等しくてもよい。
一実施形態において、nuh_layer_idがmに等しいSPSが、nuh_layer_idがnに等しい1つ又は複数のPPSによって参照される場合、nuh_layer_idがmに等しいレイヤは、nuh_layer_idがnに等しいレイヤ、又はnuh_layer_idがmに等しいレイヤの(直接又は間接)参照レイヤと同じであってもよい。
一実施形態において、PPS(RBSP)は、参照される前に復号プロセスに利用可能であってもよく、TemporalIdがPPS NALユニットのTemporalIdに等しい少なくとも1つのAUに含まれていてもよく、又は外部手段を通じて提供されてもよい。
一実施形態において、PPS(RBSP)は、参照される前に復号プロセスに利用可能であってもよく、PPSを参照する1つ又は複数のPH(若しくは符号化スライスNALユニット)を含む、TemporalIdがCVS内のPPS NALユニットのTemporalIdに等しい少なくとも1つのAU内に含まれていてもよく、又は外部手段を通じて提供されてもよい。
一実施形態において、PPS(RBSP)は、1つ又は複数のPH(又は符号化スライスNALユニット)によって参照される前に、復号プロセスに利用可能であってもよく、PPSを参照する1つ又は複数のPH(若しくは符号化スライスNALユニット)を含む、nuh_layer_idがCVS内のPPS NALユニットを参照する符号化スライスNALユニットの最低のnuh_layer_id値に等しい少なくとも1つのPUに含まれていてもよく、又は外部手段を通じて提供されてもよい。
一実施形態において、PPS(RBSP)は、1つ又は複数のPH(若しくは符号化スライスNALユニット)によって参照される前に復号プロセスに利用可能であってもよく、PPSを参照する1つ又は複数のPH(若しくは符号化スライスNALユニット)を含む、TemporalIdがPPS NALユニットのTemporalIdに等しく、nuh_layer_idがCVS内のPPS NALユニットを参照する符号化スライスNALユニットの最低の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値に等しくてもよい。
一実施形態において、nuh_layer_idがmに等しいPPSが、nuh_layer_idがnに等しい1つ又は複数の符号化スライスNALユニットによって参照される場合、nuh_layer_idがmに等しいレイヤは、nuh_layer_idがnに等しいレイヤ、又はnuh_layer_idがmに等しいレイヤの(直接又は間接)参照レイヤと同じであってもよい。
一実施形態において、PPS(RBSP)は、参照される前に復号プロセスに利用可能であってもよく、TemporalIdがPPS NALユニットのTemporalIdに等しい少なくとも1つのAUに含まれていてもよく、又は外部手段を通じて提供されてもよい。
一実施形態において、PPS(RBSP)は、参照される前に復号プロセスに利用可能であってもよく、PPSを参照する1つ又は複数のPH(若しくは符号化スライスNALユニット)を含む、TemporalIdがCVS内のPPS NALユニットのTemporalIdに等しい少なくとも1つのAU内に含まれていてもよく、又は外部手段を通じて提供されてもよい。
一実施形態において、PPS(RBSP)は、1つ又は複数のPH(又は符号化スライスNALユニット)によって参照される前に、復号プロセスに利用可能であってもよく、PPSを参照する1つ又は複数のPH(若しくは符号化スライスNALユニット)を含む、nuh_layer_idがCVS内のPPS NALユニットを参照する符号化スライスNALユニットの最低のnuh_layer_id値に等しい少なくとも1つのPUに含まれていてもよく、又は外部手段を通じて提供されてもよい。
一実施形態において、PPS(RBSP)は、1つ又は複数のPH(若しくは符号化スライスNALユニット)によって参照される前に復号プロセスに利用可能であってもよく、PPSを参照する1つ又は複数のPH(若しくは符号化スライスNALユニット)を含む、TemporalIdがPPS NALユニットのTemporalIdに等しく、nuh_layer_idがCVS内のPPS NALユニットを参照する符号化スライスNALユニットの最低の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値に等しくてもよい。
一実施形態において、nuh_layer_idがmに等しいPPSが、nuh_layer_idがnに等しい1つ又は複数の符号化スライスNALユニットによって参照される場合、nuh_layer_idがmに等しいレイヤは、nuh_layer_idがnに等しいレイヤ、又はnuh_layer_idがmに等しいレイヤの(直接又は間接)参照レイヤと同じであってもよい。
出力レイヤは、出力される出力レイヤ・セットのレイヤを示す。出力レイヤ・セット(output layer set:OLS)は、指定されたレイヤのセットで構成されるレイヤのセットを示し、ここで、レイヤのセット内の1つ又は複数のレイヤが出力レイヤであると指定される。出力レイヤ・セット(OLS)のレイヤ・インデックスは、OLS内のレイヤの、OLS内のレイヤのリストに対するインデックスである。
サブレイヤは、TemporalId変数の特定の値を有するVCL NALユニットと、関連付けられた非VCL NALユニットとで構成される、時間的にスケーラブルなビットストリームの時間的にスケーラブルなレイヤを示す。サブレイヤ表現は、特定のサブレイヤ及び下位サブレイヤのNALユニットで構成されるビットストリームのサブセットを示す。
VPS RBSPは、参照される前に復号プロセスに使用されてもよく、TemporalIdが0に等しい少なくとも1つのAUに含まれていてもよく、又は外部手段を通じて提供されてもよい。CVS内のvps_video_parameter_set_idの特定の値を有するすべてのVPS NALユニットは、同じコンテンツを有することができる。
vps_video_parameter_set_idは、他のシンタックス要素による参照のためにVPSの識別子を提供する。vps_video_parameter_set_idの値は、0よりも大きくてもよい。
vps_max_layers_minus1 plus 1は、VPSを参照する各CVS内の最大許容レイヤ数を指定する。
vps_max_sublayers_minus1 plus 1は、VPSを参照する各CVS内のレイヤに存在する可能性のある時間的なサブレイヤの最大数を指定する。vps_max_sublayers_minus1の値は、両端値を含む0から6の範囲にあってもよい。
1に等しいvps_all_layers_same_num_sublayers_flagは、VPSを参照する各CVS内のすべてのレイヤで、時間的なサブレイヤの数が同じであることを指定する。0に等しいvps_all_layers_same_num_sublayers_flagは、VPSを参照する各CVS内のレイヤが同じ数の時間的なサブレイヤを有しても、有さなくてもよいことを指定する。存在しない場合、vps_all_layers_same_num_sublayers_flagの値は、1に等しいと推測される。
1に等しいvps_all_independent_layers_flagは、CVS内のすべてのレイヤがレイヤ間予測を使用することなく独立して符号化されることを指定する。0に等しいvps_all_independent_layers_flagは、CVS内の1つ又は複数のレイヤがレイヤ間予測を使用することができることを指定する。存在しない場合、vps_all_independent_layers_flagの値は、1に等しいと推測される。
vps_layer_id[i]は、i番目のレイヤのnuh_layer_id値を指定する。m及びnの任意の2つの非負の整数値について、mがn未満の場合、vps_layer_id[m]の値は、vps_layer_id[n]未満であってもよい。
1に等しいvps_independent_layer_flag[i]は、インデックスiを有するレイヤがレイヤ間予測を使用しないことを指定する。0に等しいvps_independent_layer_flag[i]は、インデックスiを有するレイヤがレイヤ間予測を使用することができ、両端値を含む0からi-1の範囲内のjに対するシンタックス要素vps_direct_ref_layer_flag[i][j]がVPS内に存在することを指定する。存在しない場合、vps_independent_layer_flag[i]の値は、1に等しいと推測される。
0に等しいvps_direct_ref_layer_flag[i][j]は、インデックスjを有するレイヤがインデックスiを有するレイヤのための直接参照レイヤではないことを指定する。1に等しいvps_direct_ref_layer_flag[i][j]は、インデックスjを有するレイヤがインデックスiを有するレイヤのための直接参照レイヤであることを指定する。両端値を含む0からvps_max_layers_minus1までの範囲のi及びjについて、vps_direct_ref_layer_flag[i][j]が存在しない場合、これは、0に等しいと推測される。vps_independent_layer_flag[i]が0に等しい場合、vps_direct_ref_layer_flag[i][j]の値が1に等しくなるようなjの値が、両端値を含む0からi-1までの範囲に少なくとも1つ存在する可能性がある。
変数NumDirectRefLayers[i]、DirectRefLayerIdx[i][d]、NumRefLayers[i]、RefLayerIdx[i][r]、及びLayerUsedAsRefLayerFlag[j]は、以下のように導出される。
for(i=0;i<=vps_max_layers_minus1;i++){
for(j=0;j<=vps_max_layers_minus1;j++){
dependencyFlag[i][j]=vps_direct_ref_layer_flag[i][j]
for(k=0;k<i;k++)
if(vps_direct_ref_layer_flag[i][k]&&dependencyFlag[k][j])
dependencyFlag[i][j]=1
}
LayerUsedAsRefLayerFlag[i]=0
}
for(i=0;i<=vps_max_layers_minus1;i++){
for(j=0,d=0,r=0;j<=vps_max_layers_minus1;j++){
if(vps_direct_ref_layer_flag[i][j]){
DirectRefLayerIdx[i][d++]=j
LayerUsedAsRefLayerFlag[j]=1
}
if(dependencyFlag[i][j])
RefLayerIdx[i][r++]=j
}
NumDirectRefLayers[i]=d
NumRefLayers[i]=r
}
nuh_layer_idがvps_layer_id[i]に等しいレイヤのレイヤ・インデックスを指定する変数GeneralLayerIdx[i]は、以下のように導出される。
for(i=0;i<=vps_max_layers_minus1;i++)
GeneralLayerIdx[vps_layer_id[i]]=i
両方とも、両端値を含む0からvps_max_layers_minus1までの範囲のi及びjの2つの異なる値について、dependencyFlag[i][j]が1に等しい場合、i番目のレイヤに適用されるchroma_format_idc及びbit_depth_minus8の値が、j番目のレイヤに適用されるchroma_format_idc及びbit_depth_minus8の値にそれぞれ等しくなり得ることが、ビットストリーム適合性の要件である。
1に等しいmax_tid_ref_present_flag[i]は、シンタックス要素max_tid_il_ref_pics_plus1[i]が存在することを指定する。0に等しいmax_tid_ref_present_flag[i]は、シンタックス要素max_tid_il_ref_pics_plus1[i]が存在しないことを指定する。
0に等しいmax_tid_il_ref_pics_plus1[i]は、レイヤ間予測がi番目のレイヤの非IRAP画像によって使用されないことを指定する。0よりも大きいmax_tid_il_ref_pics_plus1[i]は、i番目のレイヤの画像を復号するために、TemporalIdがmax_tid_il_ref_pics_plus1[i]-1よりも大きい画像がILRPとして使用されないことを指定する。存在しない場合、max_tid_il_ref_pics_plus1[i]の値は、7に等しいと推測される。
1に等しいeach_layer_is_an_ols_flagは、各OLSには1つのレイヤしか含まれておらず、VPSを参照するCVS内の各レイヤ自体が、含まれている単一のレイヤを唯一の出力レイヤとするOLSであることを指定する。0に等しいeach_layer_is_an_ols_flagは、OLSが2つ以上のレイヤを含むことができることを指定する。vps_max_layers_minus1が0に等しい場合、each_layer_is_an_ols_flagの値は1に、等しいと推測される。そうではなく、vps_all_independent_layers_flagが0に等しい場合、each_layer_is_an_ols_flagの値は、0に等しいと推測される。
0に等しいols_mode_idcは、VPSによって指定されたOLSの総数がvps_max_layers_minus1+1に等しいことを指定する。i番目のOLSは、両端値を含む0からiまでのレイヤ・インデックスを有するレイヤを含み、各OLSについて、OLSの最上位レイヤのみが出力される。
1に等しいols_mode_idcは、VPSによって指定されたOLSの総数がvps_max_layers_minus1+1に等しいことを指定し、i番目のOLSは、両端値を含む0からiまでのレイヤ・インデックスを有するレイヤを含み、各OLSについて、OLS内のすべてのレイヤが出力される。
2に等しいols_mode_idcは、VPSによって指定されたOLSの総数が明示的にシグナリングされ、各OLSについて出力レイヤが明示的にシグナリングされ、他のレイヤがOLSの出力レイヤの直接又は間接参照レイヤであるレイヤであることを指定する。
ols_mode_idcの値は、両端値を含む0から2の範囲にあってもよい。ols_mode_idcの値3は、ITU-T|ISO/IECによる将来の使用のために予約されている。
vps_all_independent_layers_flagが1に等しく、each_layer_is_an_ols_flagが0に等しい場合、ols_mode_idcの値は、2に等しいと推測される。
num_output_layer_sets_minus1 plus 1は、ols_mode_idcが2に等しい場合、VPSによって指定されたOLSの総数を指定する。
VPSによって指定されたOLSの総数を指定する変数TotalNumOlssは、以下のように導出される。
if(vps_max_layers_minus1==0)
TotalNumOlss=1
else if(each_layer_is_an_ols_flag||ols_mode_idc==0||ols_mode_idc==1)
TotalNumOlss=vps_max_layers_minus1+1
else if(ols_mode_idc==2)
TotalNumOlss=num_output_layer_sets_minus1+1
1に等しいols_output_layer_flag[i][j]は、ols_mode_idcが2に等しい場合に、nuh_layer_idがvps_layer_id[j]に等しいレイヤが、i番目のOLSの出力レイヤであることを指定する。0に等しいols_output_layer_flag[i][j]は、ols_mode_idcが2に等しい場合、nuh_layer_idがvps_layer_id[j]に等しいレイヤが、i番目のOLSの出力レイヤではないことを指定する。
i番目のOLSにおける出力レイヤの数を指定する変数NumOutputLayersInOls[i]、i番目のOLSにおけるj番目のレイヤにおけるサブレイヤの数を指定する変数NumSubLayersInLayerInOLS[i][j]、i番目のOLSにおけるj番目の出力レイヤのnuh_layer_id値を指定する変数OutputLayerIdInOls[i][j]、及びk番目のレイヤが少なくとも1つのOLSにおいて出力レイヤとして使用されるかどうかを指定する変数LayerUsedAsOutputLayerFlag[k]は、以下のように導出される。
NumOutputLayersInOls[0]=1
OutputLayerIdInOls[0][0]=vps_layer_id[0]
NumSubLayersInLayerInOLS[0][0]=vps_max_sub_layers_minus1+1
LayerUsedAsOutputLayerFlag[0]=1
for(i=1,i<=vps_max_layers_minus1;i++){
if(each_layer_is_an_ols_flag||ols_mode_idc<2)
LayerUsedAsOutputLayerFlag[i]=1
else/*(!each_layer_is_an_ols_flag&&ols_mode_idc==2)*/
LayerUsedAsOutputLayerFlag[i]=0
}
for(i=1;i<TotalNumOlss;i++)
if(each_layer_is_an_ols_flag||ols_mode_idc==0){
NumOutputLayersInOls[i]=1
OutputLayerIdInOls[i][0]=vps_layer_id[i]
for(j=0;j<i&&(ols_mode_idc==0);j++)
NumSubLayersInLayerInOLS[i][j]=max_tid_il_ref_pics_plus1[i]
NumSubLayersInLayerInOLS[i][i]=vps_max_sub_layers_minus1+1
}else if(ols_mode_idc==1){
NumOutputLayersInOls[i]=i+1
for(j=0;j<NumOutputLayersInOls[i];j++){
OutputLayerIdInOls[i][j]=vps_layer_id[j]
NumSubLayersInLayerInOLS[i][j]=vps_max_sub_layers_minus1+1
}
}else if(ols_mode_idc==2){
for(j=0;j<=vps_max_layers_minus1;j++){
layerIncludedInOlsFlag[i][j]=0
NumSubLayersInLayerInOLS[i][j]=0
}
for(k=0,j=0;k<=vps_max_layers_minus1;k++)
if(ols_output_layer_flag[i][k]){
layerIncludedInOlsFlag[i][k]=1
LayerUsedAsOutputLayerFlag[k]=1
OutputLayerIdx[i][j]=k
OutputLayerIdInOls[i][j++]=vps_layer_id[k]
NumSubLayersInLayerInOLS[i][j]=vps_max_sub_layers_minus1+1
}
NumOutputLayersInOls[i]=j
for(j=0;j<NumOutputLayersInOls[i];j++){
idx=OutputLayerIdx[i][j]
for(k=0;k<NumRefLayers[idx];k++){
layerIncludedInOlsFlag[i][RefLayerIdx[idx][k ]]=1
if(NumSubLayersInLayerInOLS[i][RefLayerIdx[idx][k ]]<
max_tid_il_ref_pics_plus1[OutputLayerIdInOls[i][j]])
NumSubLayersInLayerInOLS[i][RefLayerIdx[idx][k ]]=
max_tid_il_ref_pics_plus1[OutputLayerIdInOls[i][j]]
}
}
}
両端値を含む0からvps_max_layers_minus1までの範囲のiの各値について、LayerUsedAsRefLayerFlag[i]及びLayerUsedAsOutputLayerFlag[i]の値は、両方とも0に等しくない場合がある。言い換えると、少なくとも1つのOLSの出力レイヤでも、他のレイヤの直接参照レイヤでもないレイヤが存在しない場合がある。
各OLSについて、出力レイヤであるレイヤが少なくとも1つ存在してもよい。言い換えると、両端値を含む0からTotalNumOlss-1までの範囲のiの任意の値について、NumOutputLayersInOls[i]の値は、1以上であってもよい。
i番目のOLSにおけるレイヤ数を指定する変数NumLayersInOls[i]と、i番目のOLSにおけるj番目のレイヤのnuh_layer_id値を指定する変数LayerIdInOls[i][j]とは、以下のように導出される。
NumLayersInOls[0]=1
LayerIdInOls[0][0]=vps_layer_id[0]
for(i=1;i<TotalNumOlss;i++){
if(each_layer_is_an_ols_flag){
NumLayersInOls[i]=1
LayerIdInOls[i][0]=vps_layer_id[i]
}else if(ols_mode_idc==0||ols_mode_idc==1){
NumLayersInOls[i]=i+1
for(j=0;j<NumLayersInOls[i];j++)
LayerIdInOls[i][j]=vps_layer_id[j]
}else if(ols_mode_idc==2){
for(k=0,j=0;k<=vps_max_layers_minus1;k++)
if(layerIncludedInOlsFlag[i][k])
LayerIdInOls[i][j++]=vps_layer_id[k]
NumLayersInOls[i]=j
}
}
nuh_layer_idがLayerIdInOls[i][j]に等しいレイヤのOLSレイヤ・インデックスを指定する変数OlsLayerIdx[i][j]は、以下のように導出される。
for(i=0;i<TotalNumOlss;i++)
for j=0;j<NumLayersInOls[i];j++)
OlsLayerIdx[i][LayerIdInOls[i][j]]=j
各OLSの最下位レイヤは、独立レイヤであってもよい。言い換えると、両端値を含む0からTotalNumOlss-1までの範囲の各iについて、vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][0]]]の値は、1に等しくてもよい。
各レイヤは、VPSによって指定される少なくとも1つのOLSに含まれていてもよい。言い換えると、両端値を含む0からvps_max_layers_minus1までの範囲のkについて、nuh_layer_id nuhLayerIdの特定の値がvps_layer_id[k]のうちの1つに等しい各レイヤについて、iとjの値のペアが少なくとも1つ存在してもよく、ここで、iは両端値を含む0からTotalNumOlss-1までの範囲にあり、jは両端値を含むNumLayersInOls[i]-1までの範囲にあって、LayerIdInOls[i][j]の値がnuhLayerIdに等しくなるようにする。
一実施形態において、復号プロセスは、現在の画像CurrPicに対して以下のように動作する。PictureOutputFlagは、以下のように設定される。以下の条件のいずれかが真である場合、PictureOutputFlagは、0に設定される。そうではない場合、PictureOutputFlagは、pic_output_flagに等しく設定される。
-現在の画像がRASL画像であり、関連付けられたIRAP画像のNoOutputBeforeRecoveryFlagが1である。
-gdr_enabled_flagが1に等しく、現在の画像が、NoOutputBeforeRecoveryFlagが1に等しいGDR画像である。
-gdr_enabled_flagが1に等しく、現在の画像が、NoOutputBeforeRecoveryFlagが1に等しいGDR画像に関連付けられ、現在の画像のPicOrderCntValが関連付けられたGDR画像のRpPicOrderCntValよりも小さい。
-sps_video_parameter_set_idが0よりも大きく、ols_mode_idcが0に等しく、現在のAUが以下のすべての条件を満たす画像picAを含む。
-PicAが1に等しいPictureOutputFlagを有する。
-PicAが現在の画像よりも大きなnuh_layer_id nuhLidを有する。
-PicAがOLSの出力レイヤに属する(すなわち、OutputLayerIdInOls[TargetOlsIdx][0]がnuhLidに等しい)。
-sps_video_parameter_set_idが0よりも大きく、ols_mode_idcが2に等しく、ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]]が0に等しい。
現在の画像のすべてのスライスが復号された後、現在の復号画像は「短期参照用に使用」とマークされ、RefPicList[0]又はRefPicList[1]の各ILRPエントリは、「短期参照用に使用」とマークされる。
同じ又は別の実施形態において、各レイヤが出力レイヤ・セットである場合、PictureOutputFlagは、ols_mode_idcの値に関係なく、pic_output_flagに等しく設定される。
同じ又は別の実施形態において、sps_video_parameter_set_idが0よりも大きく、each_layer_is_an_ols_flagが0に等しく、ols_mode_idcが0に等しく、現在のAUが以下のすべての条件を満たす画像picAを含んでいる場合、PictureOutputFlagは、0に設定される。すなわち、PicAが1に等しいPictureOutputFlagを有し、PicAが現在の画像よりも大きなnuh_layer_id nuhLidを有し、PicAがOLSの出力レイヤに属する(すなわち、OutputLayerIdInOls[TargetOlsIdx][0]がnuhLidに等しい)。
同じ又は別の実施形態において、sps_video_parameter_set_idが0よりも大きく、each_layer_is_an_ols_flagが0に等しく、ols_mode_idcが2に等しく、ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]]が0に等しい場合、PictureOutputFlagは、0に等しく設定される。
参照画像のリサンプリングにより、符号化された(階層化された)ビデオ・シーケンス内の適応解像度の変更、及び同じ出力レイヤ・セットに属するレイヤ間に依存関係があるレイヤ間の空間スケーラビリティが可能になる。
一実施形態において、図24に示すように、sps_ref_pic_resampling_enabled_flagは、パラメータ・セット(例えばシーケンス・パラメータ・セット)においてシグナリングされる。フラグsps_ref_pic_resampling_enabled_flagは、SPSを参照する符号化ビデオ・シーケンス内の適応解像度の変更、又はレイヤ間の空間スケーラビリティに参照画像のリサンプリングを使用するかどうかを示す。1に等しいsps_ref_pic_resampling_enabled_flagは、参照画像のリサンプリングが有効であり、CLVS内の1つ又は複数の画像スライスが、参照画像リストのアクティブなエントリ内の異なる空間解像度の参照画像を参照することを指定する。0に等しいsps_ref_pic_resampling_enabled_flagは、参照画像のリサンプリングが無効となり、CLVS内の画像のどのスライスも、参照画像リストのアクティブなエントリ内の異なる空間解像度を有する参照画像を参照しないことを指定する。
同じ又は別の実施形態において、sps_ref_pic_resampling_enabled_flagが1に等しい場合、現在の画像について、異なる空間解像度を有する参照画像は、現在の画像を含むレイヤと同じレイヤ、又はそれとは異なるレイヤのいずれかに属する。
別の実施形態において、1に等しいsps_ref_pic_resampling_enabled_flagは、参照画像のリサンプリングが有効であり、CLVS内の画像の1つ又は複数のスライスが、参照画像リストのアクティブなエントリ内の異なる空間解像度又は異なるスケーリング・ウィンドウを有する参照画像を参照することを指定する。0に等しいsps_ref_pic_resampling_enabled_flagは、参照画像のリサンプリングが無効となり、CLVS内の画像のどのスライスも、参照画像リストのアクティブなエントリ内の異なる空間解像度又は異なるスケーリング・ウィンドウを有する参照画像を参照しないことを指定する。
同じ又は別の実施形態において、1に等しいsps_ref_pic_resampling_enabled_flagは、現在の画像について、異なる空間解像度又は異なるスケーリング・ウィンドウを有する参照画像は、現在の画像を含むレイヤと同じレイヤ、又はそれとは異なるレイヤのいずれかに属する。
同じ又は別の実施形態において、sps_res_change_in_clvs_allowed_flagは、画像解像度がCLVS又はCVSにおいて変更されるかどうかを示す。1に等しいsps_res_change_in_clvs_allowed_flagは、SPSを参照するCLVS内で画像の空間解像度が変化してもよいことを指定する。0に等しいsps_res_change_in_clvs_allowed_flagは、SPSを参照するCLVS内で画像の空間解像度が変化しないことを指定する。存在しない場合、sps_res_change_in_clvs_allowed_flagの値は、0に等しいと推測される。
同じ又は別の実施形態において、sps_ref_pic_resampling_enabled_flagが1に等しく、sps_res_change_in_clvs_allowed_flagが0に等しい場合、参照画像のリサンプリングは、CLVS内の適応解像度の変更ではなく、空間スケーラビリティのみに使用することができる。
同じ又は別の実施形態において、sps_ref_pic_resampling_enabled_flagが1に等しく、sps_res_change_in_clvs_allowed_flagが1に等しい場合、参照画像のリサンプリングは、CLVS内の空間スケーラビリティ及び適応解像度変更の両方に使用することができる。
sps_ref_pic_resampling_enabled_flagが1に等しく、sps_res_change_in_clvs_allowed_flagが0に等しく、sps_video_parameter_set_idが0に等しい場合、pps_scaling_window_explicit_signalling_flagは、1に等しくてもよい。これは、画像の解像度がCLVS又はCVSにおいて一定で、参照画像のリサンプリングが使用される場合、スケーリング・ウィンドウパラメータを、適合ウィンドウパラメータから値を推測するのではなく、明示的にシグナリングする必要があることを意味する。
一実施形態において、sps_virtual_boundaries_present_flagは、図24に示すように、SPSにおいてシグナリングされる。フラグsps_virtual_boundaries_present_flagは、仮想境界情報がSPSにおいてシグナリングされるかどうかを示す。
同じ又は別の実施形態において、sps_virtual_boundaries_present_flagは、sps_res_change_in_clvs_allowed_flagが0に等しい場合にのみ条件付きでシグナリングされ、これは、参照画像のリサンプリングが使用される場合、仮想境界情報がSPSにおいてシグナリングされない可能性があるためである。
同じ実施形態において、1に等しいsps_virtual_boundaries_present_flagは、仮想境界の情報がSPSにおいてシグナリングされることを指定する。0に等しいsps_virtual_boundaries_present_flagは、仮想境界の情報がSPSにおいてシグナリングされないことを指定する。SPSにおいてシグナリングされる1つ又は複数の仮想境界がある場合、SPSを参照する画像の仮想境界を横切るインループ・フィルタリング動作が無効にされる。インループ・フィルタリング動作は、デブロッキング・フィルタ、サンプル適応オフセット・フィルタ、及び適応ループ・フィルタ動作を含む。存在しない場合、sps_virtual_boundaries_present_flagの値は、0に等しいと推測される。
一実施形態において、sps_subpic_info_present_flagは、図24に示すように、SPSにおいてシグナリングされる。フラグsps_subpic_info_present_flagは、サブ画像分割情報がSPSにおいてシグナリングされるかどうかを示す。
同じ又は別の実施形態において、sps_subpic_info_present_flagは、sps_res_change_in_clvs_allowed_flagが0に等しい場合にのみ条件付きでシグナリングされるが、これは、参照画像のリサンプリングが使用される場合、サブ画像の分割情報がSPSにおいてシグナリングされないことがあるためである。
同じ実施形態において、1に等しいsps_subpic_info_present_flagは、サブ画像情報がCLVSに対して存在し、CLVSの各画像に1つ又は複数のサブ画像が存在してもよいことを指定する。0に等しいsps_subpic_info_present_flagは、サブ画像情報がCLVSに対して存在せず、CLVSの各画像にサブ画像が1つしかないことを指定する。存在しない場合、sps_subpic_info_present_flagの値は、0に等しいと推測される。
一実施形態において、図25に示すように、pps_res_change_in_clvs_allowed_flagは、PPSにおいてシグナリングされてもよい。PPSのpps_res_change_in_clvs_allowed_flagの値は、PPSが参照するSPSのsps_res_change_in_clvs_allowed_flagの値と同じであってもよい。
同じ実施形態において、画像の幅と高さの情報は、pps_res_change_in_clvs_allowed_flagの値が1に等しい場合にのみPPSにおいてシグナリングされてもよい。pps_res_change_in_clvs_allowed_flagが0に等しい場合、画像の幅と高さの値は、SPSにおいてシグナリングされた画像の最大幅と高さの値に等しいと推測される。
同じ実施形態において、pps_pic_width_in_luma_samplesは、ルーマ・サンプルの単位でPPSを参照する各復号画像の幅を指定する。pps_pic_width_in_luma_samplesは、0に等しくなくてもよく、Max(8、MinCbSizeY)の整数倍であってもよく、sps_pic_width_max_in_luma_samples以下であってもよい。存在しない場合、pps_pic_width_in_luma_samplesの値は、sps_pic_width_max_in_luma_samplesに等しいと推測される。sps_ref_wraparound_enabled_flagが1に等しい場合、(CtbSizeY/MinCbSizeY+1)の値は、(pps_pic_width_in_luma_samples/MinCbSizeY-1)の値以下であってもよい。pps_pic_height_in_luma_samplesは、ルーマ・サンプルの単位でPPSを参照する各復号画像の高さを指定する。pps_pic_height_in_luma_samplesは、0に等しくなくてもよく、Max(8、MinCbSizeY)の整数倍であってもよく、sps_pic_height_max_in_luma_samples以下であってもよい。存在しない場合、pps_pic_height_in_luma_samplesの値は、sps_pic_height_max_in_luma_samplesに等しいと推測される。
参照画像リストでは、画像に対するすべてのアクティブな参照画像は、画像自体と同じサブ画像レイアウトを有し、すべてのアクティブな参照画像は、単一のサブ画像を有するレイヤ間参照画像である。
同じ又は別の実施形態において、RefPicList[0]又はRefPicList[1]における各アクティブなエントリによって参照される画像は、現在の画像と同じ画像サイズ及び同じサブ画像レイアウトを有する(すなわち、その画像及び現在の画像によって参照されるSPSは、両端値を含む0からsps_num_subpics_minus1までの範囲のjの各値について、同じ値のsps_num_subpics_minus1と、同じ値のsps_subpic_ctu_top_left_x[j]、sps_subpic_ctu_top_left_y[j]、sps_subpic_width_minus1[j]、及びsps_subpic_height_minus1[j]と、をそれぞれ有する)。RefPicList[0]又はRefPicList[1]の各アクティブなエントリによって参照される画像は、sps_num_subpics_minus1の値が0に等しいILRPである。
同じ又は別の実施形態において、sps_num_subpics_minus1が0よりも大きく、sps_subpic_treated_as_pic_flag[i]が1に等しい場合、SPSを参照する現在のレイヤの各CLVSについて、targetAuSetを、両端値を含めて、復号順にCLVSの最初の画像を含むAUから開始して、復号順にCLVSの最後の画像を含むAUまでのすべてのAUとすると、現在のレイヤと、参照レイヤとして現在のレイヤを有するすべてのレイヤとから構成されるtargetLayerSetについて、以下の条件がすべて真であることが、ビットストリーム適合性の要件である。
-targetAuSetの各AUについて、targetLayerSetのレイヤのすべての画像が、同じ値のpps_pic_width_in_luma_samplesと、同じ値のpps_pic_height_in_luma_samplesとを有することができる。
-targetLayerSetにおいて、現在のレイヤを参照レイヤとして有するレイヤによって参照されるすべてのSPSが、同じ値のsps_num_subpics_minus1を有することができ、両端値を含む0からsps_num_subpics_minus1までの範囲のjの各値について、同じ値のsps_subpic_ctu_top_left_x[j]、sps_subpic_ctu_top_left_y[j]、sps_subpic_width_minus1[j]、sps_subpic_height_minus1[j]、及びsps_subpic_treated_as_pic_flag[j]を有することができる。
-targetAuSetにおける各AUについて、targetLayerSetにおける現在のレイヤを参照レイヤとして有するレイヤのすべての画像が、両端値を含む0からsps_num_subpics_minus1までの範囲のjの各値について、同じ値のSubpicIdVal[j]を有することができる。
同じ又は別の実施形態において、pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset、及びpps_scaling_win_bottom_offsetは、スケーリング比計算のために画像サイズに適用されるオフセットを指定する。存在しない場合、pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset、及びpps_scaling_win_bottom_offsetの値は、pps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset、及びpps_conf_win_bottom_offsetにそれぞれ等しいと推測される。
SubWidthC*(Abs(pps_scaling_win_left_offset)+Abs(pps_scaling_win_right_offset))の値は、pps_pic_width_in_luma_samples未満であってもよく、SubHeightC*(Abs(pps_scaling_win_top_offset)+Abs(pps_scaling_win_bottom_offset))の値は、pps_pic_height_in_luma_samples未満であってもよい。
変数CurrPicScalWinWidthL及びCurrPicScalWinHeightLは、以下のように導出される。
CurrPicScalWinWidthL=pps_pic_width_in_luma_samples-
SubWidthC*(pps_scaling_win_right_offset+pps_scaling_win_left_offset)
CurrPicScalWinHeightL=pps_pic_height_in_luma_samples-
SubHeightC*(pps_scaling_win_bottom_offset+pps_scaling_win_top_offset)
refPicScalWinWidthL及びrefPicScalWinHeightLを、それぞれ、このPPSを参照する現在の画像の参照画像のCurrPicScalWinWidthL及びCurrPicScalWinHeightLとする。以下のすべての条件が満たされることがビットストリーム適合性の要件である。
-currPicScalWinWidthL*2がrefPicScalWinWidthL以上である。
-currPicScalWinHeightL*2がrefPicScalWinHeightL以上である。
-currPicScalWinWidthLがrefPicScalWinWidthL*8以下である。
-currPicScalWinHeightLがrefPicScalWinHeightL*8以下である。
-currPicScalWinWidthL*sps_pic_width_max_in_luma_samplesがrefPicScalWinWidthL*(pps_pic_width_in_luma_samples-Max(8、MinCbSizeY))以上である。
-currPicScalWinHeightL*sps_pic_height_max_in_luma_samplesがrefPicScalWinHeightL*(pps_pic_height_in_luma_samples-Max(8、MinCbSizeY))以上である。
SubWidthC*(Abs(pps_scaling_win_left_offset)+Abs(pps_scaling_win_right_offset))の値は、pps_pic_width_in_luma_samples未満であってもよく、SubHeightC*(Abs(pps_scaling_win_top_offset)+Abs(pps_scaling_win_bottom_offset))の値は、pps_pic_height_in_luma_samples未満であってもよい。
同じ又は別の実施形態において、SubWidthC*(pps_scaling_win_left_offset+pps_scaling_win_right_offset)の値は、-pps_pic_width_in_luma_samples*15以上かつpps_pic_width_in_luma_samples未満であってもよく、SubHeightC*(pps_scaling_win_top_offset+pps_scaling_win_bottom_offset)の値は、-pps_pic_height_in_luma_samples*15以上かつpps_pic_height_in_luma_samples未満であってよい。
同じ又は別の実施形態において、SubWidthC*(pps_scaling_win_left_offset+pps_scaling_win_right_offset)の値は、-pps_pic_width_in_luma_samples*7以上かつpps_pic_width_in_luma_samples未満であってもよく、-SubHeightC*(pps_scaling_win_top_offset+pps_scaling_win_bottom_offset)の値は、-pps_pic_height_in_luma_samples*7以上かつpps_pic_height_in_luma_samples未満であってもよい。
同じ又は別の実施形態において、sps_ref_pic_resampling_enabled_flagが1に等しく、sps_res_change_in_clvs_allowed_flagが0に等しく、sps_subpic_info_present_flagが1に等しい場合、SubWidthC*(Abs(pps_scaling_win_left_offset)+Abs(pps_scaling_win_right_offset))の値は、0からsps_num_subpics_minus1までの範囲のiについて、sps_subpic_width_minus1[i]+1の最小値よりも小さくてもよく、SubHeightC*(Abs(pps_scaling_win_top_offset)+Abs(pps_scaling_win_bottom_offset))の値は、0からsps_num_subpics_minus1までの範囲のiについて、sps_subpic_height_minus1[i]+1の最小値よりも小さくてもよい。
同じ又は別の実施形態において、現在のレイヤの値sps_res_change_in_clvs_allowed_flagが1に等しい場合、sps_subpic_info_present_flagの値は、0に等しくてもよい。
同じ又は別の実施形態において、現在のレイヤの値sps_res_change_in_clvs_allowed_flagが1に等しい場合、現在のレイヤを参照するレイヤのsps_subpic_info_present_flagの値は、0に等しくてもよい。
同じ又は別の実施形態において、現在のレイヤの値sps_res_change_in_clvs_allowed_flagが1に等しい場合、現在のレイヤ及び現在のレイヤを参照するすべてのレイヤのsps_subpic_info_present_flagの値は、0に等しくてもよい。
同じ又は別の実施形態において、現在のレイヤのsps_subpic_info_present_flagの値が1に等しくてもよい場合、現在のレイヤのsps_res_change_in_clvs_allowed_flagの値は、0に等しくてもよい。
同じ又は別の実施形態において、現在のレイヤのsps_subpic_info_present_flagの値が1に等しくてもよい場合、現在のレイヤの参照レイヤのsps_res_change_in_clvs_allowed_flagの値は、0に等しくてもよい。
同じ又は別の実施形態において、現在のレイヤのsps_subpic_info_present_flagの値が1に等しくてもよい場合、現在のレイヤ及び現在のレイヤのすべての参照レイヤのsps_res_change_in_clvs_allowed_flagの値は、0に等しくてもよい。
同じ又は別の実施形態において、現在のレイヤのsps_subpic_info_present_flagの値が1に等しくてもよく、sps_ref_pic_resampling_enabled_flagの値が1に等しくてもよい場合、現在のレイヤの参照レイヤのsps_ref_pic_resampling_enabled_flagの値は、1に等しくてもよい。
一実施形態において、レイヤk内の符号化画像は、図26に示すように、1つ又は複数のサブ画像に分割されてもよく、同じレイヤ内の1つ又は複数の参照画像を参照することができ、レイヤkの参照レイヤ内の1つ又は複数の参照画像を参照することができる。図26の例では、sps_ref_pic_resampling_enabled_flag(図24の)の値が1に等しい場合、画像サイズが同じであっても、現在の画像と各参照画像は、異なるスケーリング・ウィンドウを有することができる。
同じ又は別の実施形態において、サブ画像が抽出されるとき、参照画像リサンプリングのためのスケーリング比計算に使用されるスケーリング・ウィンドウのサイズ及びそのオフセット値は、サブ画像のサイズ及び位置に従って更新されてもよい。現在の画像のスケーリング・ウィンドウのサイズ及びそのオフセット値が更新されると、現在の画像の1つ又は複数の参照画像のスケーリング・ウィンドウのサイズ及びそのオフセット値がそれに応じて更新されてもよい。図27は、同じレイヤ内の参照画像及び異なるレイヤ内のレイヤ間参照画像のスケーリング・ウィンドウの更新の例を示す。
同じ又は別の実施形態において、レイヤk内の画像が同じ分割レイアウトで1つ又は複数のサブ画像に分割される場合、レイヤkが参照レイヤとして参照する別のレイヤ内の画像は、複数のサブ画像に分割されなくてもよい。
同じ又は別の実施形態において、スケーリング・ウィンドウのサイズ及びオフセット値が図27の例で更新される場合、スケーリング・ウィンドウのサイズは、元の画像サイズと抽出されたサブ画像サイズとの間のスケーリング比に関連して再スケーリングされてもよい。スケーリング・ウィンドウのサイズが更新されると、元の画像サイズ及びサブ画像サイズに応じて、更新されたスケーリング・ウィンドウのサイズは、図25に示すように、PPSにおいてシグナリングされるスケーリング・ウィンドウオフセット値(pps_scaling_win_left_offset,pps_scaling_win_right_offset,pps_scaling_win_top_offset,pps_scaling_win_bottom_offset)で表すことができない小数の画素値を有する場合がある。また、本手法では、参照画像のすべてのスケーリング・オフセット値が更新される可能性がある。これは、かなり大きな負担である。
同じ又は別の実施形態において、図28に示すように、サブ画像が抽出されるときに、現在の画像と参照画像との間で同じスケーリング比をシグナリングするために、スケーリング・ウィンドウのサイズは、抽出前の元のスケーリング・ウィンドウと比較して変更されないことがあるが、スケーリング・ウィンドウの位置のみが、PPSにおいてシグナリングされるスケーリング・ウィンドウのオフセット値(pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset、pps_scaling_win_bottom_offset)の値を更新することによってシフトされる。
同じ実施形態において、元の画像のスケーリング・ウィンドウのオフセット値が、元の画像のpps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset、及びpps_scaling_win_bottom_offsetの値にそれぞれ等しいorgScalingWinLeft、orgScalingWinRight、orgScalingWinTop、orgScalingWinBottomである場合、抽出されたサブ画像の位置及びサイズは、SubpicLeftBoundaryPos、SubpicRightBoundaryPos、SubpicTopBoundaryPos、SubpicBotBoundaryPosで表され、ここで、これらの値は以下のように導出される。
SubpicLeftBoundaryPos=sps_subpic_ctu_top_left_x[CurrSubpicIdx]*CtbSizeY
SubpicRightBoundaryPos=Min(sps_pic_width_max_in_luma_samples-1,
(sps_subpic_ctu_top_left_x[CurrSubpicIdx]+
sps_subpic_width_minus1[CurrSubpicIdx]+1)*CtbSizeY-1)
SubpicTopBoundaryPos=sps_subpic_ctu_top_left_y[CurrSubpicIdx]*CtbSizeY
SubpicBotBoundaryPos=Min(sps_pic_height_max_in_luma_samples-1
(sps_subpic_ctu_top_left_y[CurrSubpicIdx]+
sps_subpic_height_minus1[CurrSubpicIdx]+1)*CtbSizeY-1)
抽出されたサブ画像のpps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset、及びpps_scaling_win_bottom_offsetの値は、以下のように導出される。
pps_scaling_win_left_offset=orgScalingWinLeft-(SubpicLeftBoundaryPos/SubWidthC);
pps_scaling_win_right_offset=orgScalingWinRight-(SubpicLeftBoundaryPos/SubWidthC);
pps_scaling_win_top_offset=orgScalingWinTop-(SubpicTopBoundaryPos/SubWidthC);
pps_scaling_win_bottom_offset=orgScalingWinBottom-(SubpicTopBoundaryPos/SubWidthC).
同じ又は別の実施形態において、サブ画像サブビットストリーム抽出プロセスは以下の通りである。このプロセスへの入力は、ビットストリームinBitstream、ターゲットOLSインデックスtargetOlsIdx、ターゲット最高TemporalId値tIdTarget、及び各レイヤのターゲット・サブ画像インデックス値の配列subpicIdxTarget[]である。このプロセスの出力は、サブビットストリームoutBitstreamである。
入力ビットストリームに対するビットストリーム適合性の要件は、以下のすべての条件を満たす出力サブビットストリームが適合ビットストリームであることである。出力サブビットストリームは、ビットストリーム、VPSによって指定されたOLSのリストへのインデックスに等しいtargetOlsIdx、及びOLSに存在するサブ画像インデックスに等しいsubpicIdxTarget[]を入力として用いる、本節で指定されたプロセスの出力である。出力サブビットストリームは、nuh_layer_idがLayerIdInOls[targetOlsIdx]のnuh_layer_id値のそれぞれに等しい少なくとも1つのVCL NALユニットを含む。出力サブビットストリームは、TemporalIdがtIdTargetに等しいVCL NALユニットを少なくとも1つ含む。適合ビットストリームは、TemporalIdが0に等しい1つ又は複数の符号化スライスNALユニットを含むが、nuh_layer_idが0に等しい符号化スライスNALユニットを含む必要はない。出力サブビットストリームは、両端値を含む0からNumLayersInOls[targetOlsIdx]-1までの範囲の各iについて、nuh_layer_idがLayerIdInOls[targetOlsIdx][i]に等しく、sh_subpic_idがSubpicIdVal[subpicIdxTarget[i]]の値に等しい少なくとも1つのVCL NALユニットを含む。
出力サブビットストリームoutBitstreamは、以下のように導出される。サブビットストリーム抽出プロセスは、inBitstream、targetOlsIdx、及びtIdTargetを入力として呼び出され、プロセスの出力は、outBitstreamに割り当てられる。サブビットストリームoutBitstreamの置換パラメータ・セットを提供するために、本明細書で指定されていないなんらかの外部手段が利用可能である場合、すべてのパラメータ・セットを置換パラメータ・セットに置換する。
そうではなく、サブ画像レベルの情報SEIメッセージがinBitstreamに存在する場合、以下が適用される。変数subpicIdxは、subpicIdxTarget[[NumLayersInOls[targetOlsIdx]-1]]の値に等しく設定される。参照されるすべてのVPS NALユニットのprofile_tier_level()シンタックス構造のリストのvps_ols_ptl_idx[targetOlsIdx]番目のエントリのgeneral_level_idcの値を、subpicIdxに等しいサブ画像インデックスを有するサブ画像で構成されるサブ画像のセットに対して、SubpicLevelIdcに等しくなるように書き換える。VCL HRDパラメータ又はNAL HRDパラメータが存在する場合、参照されるすべてのVPS NALユニットにおけるvps_ols_hrd_idx[MultiLayerOlsIdx[targetOlsIdx]]番目のols_hrd_parameters()シンタックス構造と、i番目のレイヤによって参照されるすべてのSPS NALユニットにおけるols_hrd_parameters()シンタックス構造とにおいて、j番目のCPBのcpb_size_value_minus1[tIdTarget][j]及びbit_rate_value_minus1[tIdTarget][j]のそれぞれの値を、それらがSubpicCpbSizeVcl[SubpicSetLevelIdx][subpicIdx]及びSubpicCpbSizeNal[SubpicSetLevelIdx][subpicIdx]に対応するように書き換える
サブ画像インデックスがsubpicIdxに等しいサブ画像に対するSubpicBitrateVcl[SubpicSetLevelIdx][subpicIdx]及びSubpicBitrateNal[SubpicSetLevelIdx][subpicIdx]、jは、両端値を含む0からhrd_cpb_cnt_minus1までの範囲、iは、両端値を含む0からNumLayersInOls[targetOlsIdx]-1までの範囲にある。
iが0からNumLayersInOls[targetOlsIdx]-1までの範囲にあるi番目のレイヤには、以下が適用される。変数subpicIdxは、subpicIdxTarget[i]の値に等しく設定される。sps_ptl_dpb_hrd_params_present_flagが1に等しいすべての参照SPS NALユニットのprofile_tier_level()シンタックス構造のgeneral_level_idcの値を、subpicIdxに等しいサブ画像インデックスを有するサブ画像から構成されるサブ画像のセットについてSubpicLevelIdcに等しくなるように書き換える。
変数subpicWidthInLumaSamples及びsubpicHeightInLumaSamplesは、以下のように導出される。
subpicWidthInLumaSamples=min((sps_subpic_ctu_top_left_x[subpicIdx]+
sps_subpic_width_minus1[subpicIdx]+1)*CtbSizeY,pps_pic_width_in_luma_samples)-
sps_subpic_ctu_top_left_x[subpicIdx]*CtbSizeY
subpicHeightInLumaSamples=min((sps_subpic_ctu_top_left_y[subpicIdx]+
sps_subpic_height_minus1[subpicIdx]+1)*CtbSizeY,pps_pic_height_in_luma_samples)-
sps_subpic_ctu_top_left_y[subpicIdx]*CtbSizeY
参照されるすべてのSPS NALユニットのsps_pic_width_max_in_luma_samplesとsps_pic_height_max_in_luma_samplesの値、及び参照されるすべてのPPS NALユニットのpps_pic_width_in_luma_samplesとpps_pic_height_in_luma_samplesの値を、それぞれ、subpicWidthInLumaSampleとsubpicHeightInLumaSamplesに等しくなるように書き換える。参照されるすべてのSPS NALユニットのsps_num_subpics_minus1の値、及び参照されるすべてのPPS NALユニットのpps_num_subpics_minus1の値を0に書き換える。参照されるすべてのSPS NALユニットにおいて、シンタックス要素sps_subpic_ctu_top_left_x[subpicIdx]及びsps_subpic_ctu_top_left_y[subpicIdx]が存在する場合は、それらを0に書き換える。参照されるすべてのSPS NALユニットにおいて、subpicIdxに等しくない各jについて、シンタックス要素sps_subpic_ctu_top_left_x[j]、sps_subpic_ctu_top_left_y[j]、sps_subpic_width_minus1[j]、sps_subpic_height_minus1[j]、sps_subpic_treated_as_pic_flag[j]、sps_loop_filter_across_subpic_enabled_flag[j]、及びsps_subpic_id[j]を削除する。タイルとスライスのシグナリングのための、参照されるすべてのPPSのシンタックス要素を書き換え、サブ画像インデックスがsubpicIdxに等しいサブ画像に関連付けられていないすべてのタイル行、タイル列、及びスライスを削除する。
変数subpicConfWinLeftOffset、subpicConfWinRightOffset、subpicConfWinTopOffset、及びsubpicConfWinBottomOffsetは、以下のように導出される。
subpicConfWinLeftOffset=sps_subpic_ctu_top_left_x[subpicIdx]==0
sps_conf_win_left_offset:0
subpicConfWinRightOffset=(sps_subpic_ctu_top_left_x[subpicIdx]+
sps_subpic_width_minus1[subpicIdx]+1)*CtbSizeY>=
sps_pic_width_max_in_luma_samples sps_conf_win_right_offset:0
subpicConfWinTopOffset=sps_subpic_ctu_top_left_y[subpicIdx]==0
sps_conf_win_top_offset:0
subpicConfWinBottomOffset=(sps_subpic_ctu_top_left_y[subpicIdx]+
sps_subpic_height_minus1[subpicIdx]+1)*CtbSizeY>=
sps_pic_height_max_in_luma_samples sps_conf_win_bottom_offset:0
参照されるすべてのSPS NALユニットのsps_conf_win_left_offset、sps_conf_win_right_offset、sps_conf_win_top_offset、及びsps_conf_win_bottom_offsetの値と、参照されるすべてのPPS NALユニットのpps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset、及びpps_conf_win_bottom_offsetの値とを、それぞれ、subpicConfWinLeftOffset、subpicConfWinRightOffset、subpicConfWinTopOffset、及びsubpicConfWinBottomOffsetに等しくなるように書き換える。pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset、及びpps_scaling_win_bottom_offsetの値を以下のように書き換える。
pps_scaling_win_left_offset=orgScalingWinLeft-(SubpicLeftBoundaryPos/SubWidthC)
pps_scaling_win_right_offset=orgScalingWinRight-(SubpicLeftBoundaryPos/SubWidthC)
pps_scaling_win_top_offset=orgScalingWinTop-(SubpicTopBoundaryPos/SubWidthC)
pps_scaling_win_bottom_offset=orgScalingWinBottom-(SubpicTopBoundaryPos/SubWidthC)、
ここで、orgScalingWinLeft、orgScalingWinRight、orgScalingWinTop、及びorgScalingWinBottomは、元の符号化画像のpps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset、及びpps_scaling_win_bottom_offsetの値に等しい。nuh_layer_idがi番目のレイヤのnuh_layer_idに等しく、sh_subpic_idがSubpicIdVal[subpicIdx]に等しくないすべてのVCL NALユニットをoutBitstreamから削除する。
sli_cbr_constraint_flagが1に等しい場合、nal_unit_typeがFD_NUTに等しいすべてのNALユニットと、subpicIdTarget[]内のサブ画像のVCL NALユニットに関連付けられていないフィラー・ペイロードSEIメッセージとを削除し、参照されるすべてのVPS NALユニット及びSPS NALユニットのvps_ols_hrd_idx[MultiLayerOlsIdx[targetOlsIdx]]番目のols_hrd_parameters()シンタックス構造において、j番目のCPBのcbr_flag[tIdTarget][j]を1に設定し、jは0からhrd_cpb_cnt_minus1までの範囲にある。そうではない場合(sli_cbr_constraint_flagが0に等しい)、nal_unit_typeがFD_NUTに等しいすべてのNALユニットと、フィラー・ペイロードSEIメッセージとを削除し、cbr_flag[tIdTarget][j]を0に設定する。
outBitstreamが、outBitstreamに適用可能な、sn_ols_flagが1に等しく、sn_subpic_flagが1に等しいスケーラブルなネスティングSEIメッセージを含むSEI NALユニットを含む場合、payloadTypeが1(PT)、130(DUI)、又は132(復号された画像ハッシュ)に等しい適切な非スケーラブルなネスティングSEIメッセージをスケーラブルなネスティングSEIメッセージから抽出し、抽出されたSEIメッセージをoutBitstreamに配置する。
一部の実施形態は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、及び/又はコンピュータ可読媒体に関してもよい。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読非一過性記憶媒体を含むことができる。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持及び記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又は前述のものの任意の適切な組合せであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取りメモリ(EPROM 又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチ・カード又は命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、及び前述したものの任意の適切な組合せが含まれる。本明細書で使用されるようなコンピュータ可読記憶媒体は、電波又は他の自由に伝播する電磁波、導波路若しくは他の伝送媒体を通して伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、又はワイヤを通して伝送される電気信号などの、それ自体が一過性の信号であると解釈されるべきではない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、或はネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク及び/又はワイヤレス・ネットワークを介して外部コンピュータ若しくは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ及び/又はエッジ・サーバを含むことができる。各コンピューティング/処理デバイスのネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、又は、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、及び「C」プログラミング言語などの手続き型プログラミング言語若しくは同様のプログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組合せで記述されたソース・コード或はオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、独立型のソフトウェアパッケージとして、部分的にユーザのコンピュータ及び部分的に遠隔コンピュータ上で、或は完全に遠隔コンピュータ又はサーバ上で実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)又はワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、又は外部コンピュータに(例えばインターネット・サービス・プロバイダを使用してインターネットを介して)接続されてもよい。一部の実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、態様又は動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人専用にすることによってコンピュータ可読プログラム命令を実行することができる。
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能なデータ処理装置のプロセッサに提供され、コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、流れ図及び/又はブロック図のブロックにおいて指定された機能/行為を実施するための手段を作成するように機械を生成することができる。これらのコンピュータ可読プログラム命令は、内部に命令が記憶されたコンピュータ可読記憶媒体が、流れ図及び/又はブロック図のブロックにおいて指定された機能/行為の態様を実施する命令を含む製造品を含むように、コンピュータ、プログラム可能なデータ処理装置及び/又は他のデバイスを特定のやり方で機能させるように指示することができるコンピュータ可読記憶媒体に記憶することもできる。
コンピュータ可読ログラム命令は、コンピュータ、他のプログラム可能なデータ処理装置、又は他のデバイスにロードされて、コンピュータ、他のプログラム可能な装置、又は他のデバイス上で実行される命令が、流れ図及び/又はブロック図のブロックにおいて指定された機能/行為を実施するように、一連の動作ステップをコンピュータ、他のプログラム可能な装置、又は他のデバイス上で実行させて、コンピュータ実装プロセスを生成することもできる。
図中の流れ図及びブロック図は、様々な実施形態によるシステム、方法、及びコンピュータ可読媒体の可能な実施態様のアーキテクチャ、機能、及び動作を示す。これに関連して、流れ図又はブロック図の各ブロックは、指定されたロジック機能を実装するための1つ又は複数の実行可能な命令を構成するモジュール、セグメント、又は命令の一部を表すことができる。本方法、コンピュータ・システム、及びコンピュータ可読媒体は、追加のブロック、より少ないブロック、異なるブロック、又は図に描かれているものとは異なる配置のブロックを含むことができる。一部の代替の実施態様では、ブロックに示された機能は、図に示された順序とは異なって行われてもよい。例えば、連続して示されている2つのブロックは、実際には、同時に、又は実質的に同時に実行されてもよく、或は、ブロックは、関与する機能に応じて、時には逆の順序で実行されてもよい。ブロック図及び/又は流れ図の各ブロック、並びにブロック図及び/又は流れ図のブロックの組合せは、指定された機能若しくは行為を実行する、又は専用のハードウェア及びコンピュータ命令の組合せを実行する専用のハードウェア・ベースのシステムによって実施することができることにも留意されたい。
本明細書に記載のシステム及び/又は方法は、異なる形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアの組合せで実装され得ることは明らかであろう。これらのシステム及び/また方法を実装するために使用される実際の専用の制御ハードウェア又はソフトウェア・コードは、実装を限定するものではない。したがって、システム及び/又は方法の動作並びに挙動は、特定のソフトウェア・コードを参照せずに本明細書で説明されたが、ソフトウェア及びハードウェアは、本明細書の説明に基づいてシステム及び/又は方法を実装するように設計され得ることを理解されたい。
本書で使用されるいかなる要素、行為、又は命令も、明示的に説明されていない限り、重要又は必須であると解釈されるべきではない。また、本明細書で使用される場合、冠詞「a」及び「an」は、1つ又は複数の項目を含むことが意図されており、「1つ又は複数」と交換可能に使用されることがある。さらに、本明細書で使用される場合、「セット」という用語は、1つ又は複数のアイテム(例えば、関連アイテム、非関連アイテム、関連アイテムと非関連アイテムの組合せなど)を含むことが意図されており、「1つ又は複数」と交換可能に使用されることがある。1つのアイテムのみが意図されている場合、「one」という用語又は同様の言語が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有している(having)」などの用語は、オープンエンドの用語であることが意図されている。さらに、「に基づく」という語句は、特に明記しない限り、「に少なくとも部分的に基づく」を意味することが意図されている。
様々な態様及び実施形態の説明は、例示の目的で提示されているが、網羅的であること、又は開示された実施形態に限定されることは意図されていない。機能の組合せが特許請求の範囲に記載されている、及び/又は明細書に開示されているとしても、これらの組合せは、可能な実施の開示を制限することを意図するものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない仕方、及び/又は明細書に開示されていない仕方で組み合わせることができる。以下に列挙される各従属請求項は、1つの請求項のみに直接的に依存してもよいが、可能な実施態様の開示は、請求項セットにおける他のすべての請求項と組み合わせた各従属請求項を含む。記載された実施形態の範囲から逸脱することなく、多くの修正形態及び変形形態が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用、又は市場で見出される技術に対する技術的改良を最も良く説明するために、或は当業者が本明細書に開示された実施形態を理解することができるように選択された。