用語「仮想(hypothetical)」は、HRD(仮想参照デコーダ:hypothetical reference decoder)に関連して用いられ、HRDは、物理的に実装されてもよい。例えば、実際のデコーダの実装を記述するために「HRD」が用いられてもよい。いくつかの構成において、HRDは、ビットストリームが高効率ビデオ符号化(HEVC:High Efficiency Video Coding)仕様に適合するかどうかを判断するために実装されてもよい。例として、HRDは、タイプIビットストリームおよびタイプIIビットストリームがHEVC仕様に適合するかどうかを判断するために用いられてもよい。タイプIビットストリームは、ビデオ符号化レイヤ(VCL:Video Coding Layer)ネットワークアクセスレイヤ(NAL:Network Access Layer)ユニットおよびフィラーデータNALユニットのみを含みうる。タイプIIビットストリームは、追加的な他のNALユニットおよびシンタックス要素を含みうる。
ビデオ符号化に関する共同作業チーム(JCTVC:Joint Collaborative Team on Video Coding)文書JCTVC−I0333は、サブピクチャ・ベースのHRDを含み、ピクチャタイミングSEIメッセージをサポートする。この機能性は、参照によりその全体が本明細書に組み込まれる、高効率ビデオ符号化(HEVC)委員会草案(JCTVC−I1003)に取り込まれた。B.ブロス(Bros),W−J.ハン(Han),J−R.オーム(Ohm),G.J.サリバン(Sullivan),ワング(Wang),およびT−.ウィーガンド(Wiegand),「高効率ビデオ符号化(HEVC)テキスト仕様草案10(DFIS&ラストコール用)(High efficiency video coding(HEVC)text specification draft 10(for DFIS&Last Call))」,JCTVC−L1003_v34,ジュネーブ,2013年1月は、参照によりその全体が本明細書に組み込まれる。B.ブロス,W−J.ハン,J−R.オーム,G.J.サリバン,ワング,およびT−.ウィーガンド,「高効率ビデオ符号化(HEVC)テキスト仕様草案10」,JCTVC−L1003,ジュネーブ,2013年1月は、参照によりその全体が本明細書に組み込まれる。
符号化ピクチャバッファ(CPB:Coded Picture Buffer)は、仮想参照デコーダ(HRD)で指定された復号順にアクセスユニットを含んだ先入れ先出しバッファである。アクセスユニットは、復号順に連続したネットワークアクセスレイヤ(NAL)ユニットの集合であり、1つだけの符号化ピクチャを含む。符号化ピクチャの符号化スライスNALユニットに加えて、アクセスユニットは、符号化ピクチャのスライスを含まない他のNALユニットも含みうる。アクセスユニットの復号が復号ピクチャをもたらす。NALユニットは、すぐ後に続くデータのタイプの指標と、そのデータを必要に応じてエミュレーション防止バイトが点在したロー・バイト・シーケンス・ペイロードの形式で含んだ複数のバイトとを含むシンタックス構造であってもよい。
図1Aは、ビットストリームを符号化および/または復号するためのシステムおよび方法が実装された1つ以上の電子デバイス102の例を示すブロック図である。この例では、電子デバイスA102aおよび電子デバイスB102bが示されるが、所望により、いずれかが省略されてもよい。しかしながら、留意すべきは、電子デバイスA102aおよび電子デバイスB102bに関して記載される特徴および機能性の1つ以上がいくつかの構成では単一の電子デバイスに組み合わされてもよいことである。
電子デバイスA102aは、エンコーダ104を含む。エンコーダ104は、メッセージ発生モジュール108を含む。電子デバイスA102a内に含まれるそれぞれの要素(例えば、エンコーダ104およびメッセージ発生モジュール108)は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。
電子デバイスA102aは、1つ以上の入力ピクチャ106を取得する。いくつかの構成において、入力ピクチャ(単数または複数)106は、イメージセンサを用いて電子デバイスA102a上に取り込まれてもよく、メモリから読み出されてもよく、および/または別の電子デバイスから受信されてもよい。
エンコーダ104は、符号化データを生成するために入力ピクチャ(単数または複数)106を符号化する。例えば、エンコーダ104は、一連の入力ピクチャ106(例えば、ビデオ)を符号化する。一構成において、エンコーダ104は、HEVCエンコーダであってもよい。符号化データは、デジタルデータ(例えば、ビットストリーム114の一部)であってもよい。エンコーダ104は、入力信号に基づいてオーバーヘッド・シグナリングを発生させる。
メッセージ発生モジュール108は、1つ以上のメッセージを発生させる。例えば、メッセージ発生モジュール108は、1つ以上のSEIメッセージまたは他のメッセージを発生させる。サブピクチャ・レベルの動作がサポートされるCPBのために、電子デバイス102は、サブピクチャ・パラメータ(例えば、CPBリムーバル遅延パラメータ)を送信する。具体的には、電子デバイス102(例えば、エンコーダ104)は、共通復号ユニットCPBリムーバル遅延パラメータをピクチャタイミングSEIメッセージ中に含めるべきかどうかを判断する。例えば、エンコーダ104が共通復号ユニットCPBリムーバル遅延パラメータ(例えば、common_du_cpb_removal_delay)をピクチャタイミングSEIメッセージ中に含めるときには、電子デバイスがフラグ(例えば、common_du_cpb_removal_delay_flag)を1にセットする。共通復号ユニットCPBリムーバル遅延パラメータが含められるときに、電子デバイスは、アクセスユニット中のすべての復号ユニットに適用可能な共通復号ユニットCPBリムーバル遅延パラメータを発生させる。言い換えれば、アクセスユニット中の復号ユニットごとに復号ユニットCPBリムーバル遅延パラメータを含めるのではなく、ピクチャタイミングSEIメッセージが関連付けられたアクセスユニット中のすべての復号ユニットに対して共通パラメータが適用される。
対照的に、ピクチャタイミングSEIメッセージ中に共通復号ユニットCPBリムーバル遅延パラメータが含められないときには、電子デバイス102は、ピクチャタイミングSEIメッセージが関連付けられたアクセスユニット中の復号ユニットごとに別々の復号ユニットCPBリムーバル遅延を発生させる。
いくつかの構成において、電子デバイスA102aは、メッセージをビットストリーム114の一部として電子デバイスB102bへ送信してもよい。いくつかの構成において、電子デバイスA102aは、メッセージを別個の送信110によって電子デバイスB102bへ送信してもよい。例えば、別個の送信110は、ビットストリーム114の一部でなくてもよい。例として、ピクチャタイミングSEIメッセージもしくは他のメッセージが何らかの帯域外メカニズムを用いて送信されてもよい。留意すべきは、いくつかの構成では、他のメッセージが上記のピクチャタイミングSEIメッセージの特徴の1つ以上を含みうることである。そのうえ、1つ以上の態様では、他のメッセージが上記のSEIメッセージと同様に利用されてもよい。
エンコーダ104(および例えば、メッセージ発生モジュール108)は、ビットストリーム114を生成する。ビットストリーム114は、入力ピクチャ(単数または複数)106に基づく符号化ピクチャデータを含みうる。いくつかの構成では、ビットストリーム114は、オーバーヘッドデータ、例えば、ピクチャタイミングSEIメッセージまたは他のメッセージ、スライスヘッダ(単数または複数)、PPS(単数または複数)なども含みうる。追加の入力ピクチャ106が符号化されるにつれて、ビットストリーム114は、1つ以上の符号化ピクチャを含みうる。例として、ビットストリーム114は、1つ以上の符号化ピクチャを対応するオーバーヘッドデータ(例えば、ピクチャタイミングSEIメッセージまたは他のメッセージ)とともに含みうる。
ビットストリーム114は、デコーダ112へ供給される。一例において、ビットストリーム114は、有線または無線リンクを用いて電子デバイスB102bへ送信される。いくつかのケースでは、これは、ネットワーク、例えば、インターネットまたはローカルエリアネットワーク(LAN:Local Area Network)を介して行われる。図1Aに示されるように、デコーダ112は、電子デバイスA102a上のエンコーダ104とは別々に電子デバイスB102b上に実装されてもよい。しかしながら、留意すべきは、いくつかの構成ではエンコーダ104およびデコーダ112が同じ電子デバイス上に実装されてもよいことである。例として、エンコーダ104およびデコーダ112が同じ電子デバイス上に実装される実装では、ビットストリーム114がバスを介してデコーダ112へ供給されてもよく、またはデコーダ112による読み出しのためにメモリ中に記憶されてもよい。
デコーダ112は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。一構成において、デコーダ112は、HEVCデコーダであってもよい。デコーダ112は、ビットストリーム114を受信する(例えば、取得する)。デコーダ112は、ビットストリーム114に基づいて1つ以上の復号ピクチャ118を発生させる。復号ピクチャ(単数または複数)118は、表示されてもよく、再生されてもよく、メモリ中に記憶されてもよく、および/または別のデバイスへ送信されてもよいなどである。
デコーダ112は、CPB120を含みうる。CPB120は、符号化ピクチャを一時的に記憶する。CPB120は、データをいつ取り出すべきかを確定するために、ピクチャタイミングSEIメッセージ中に見られるパラメータを用いる。CPB120がサブピクチャ・レベルの動作をサポートするときには、一度にアクセスユニット全体ではなく、個々の復号ユニットが取り出されてもよい。デコーダ112は、復号ピクチャバッファ(DPB:Decoded Picture Buffer)122を含みうる。各復号ピクチャは、復号処理によって参照されるため、ならびに出力およびクロッピングのためにDPB122中に置かれる。復号ピクチャは、DPB出力時刻か、または復号ピクチャがインター予測参照のためにもはや必要でなくなる時刻のうちの後の方でDPBから取り出される。
デコーダ112は、メッセージ(例えば、ピクチャタイミングSEIメッセージまたは他のメッセージ)を受信する。デコーダ112は、さらに、受信したメッセージが共通復号ユニットCPBリムーバル遅延パラメータ(例えば、common_du_cpb_removal_delay)を含むかどうかを判断する。これは、共通パラメータがピクチャタイミングSEIメッセージ中に存在するときにセットされるフラグ(例えば、common_du_cpb_removal_delay_flag)を識別するステップを含みうる。共通パラメータが存在すれば、デコーダ112は、アクセスユニット中のすべての復号ユニットに適用可能な共通復号ユニットCPBリムーバル遅延パラメータを確定する。共通パラメータが存在しなければ、デコーダ112は、アクセスユニット中の復号ユニットごとに別々の復号ユニットCPBリムーバル遅延パラメータを確定する。デコーダ112は、さらに、共通復号ユニットCPBリムーバル遅延パラメータか、または別々の復号ユニットCPBリムーバル遅延パラメータのいずれかを用いて復号ユニットをCPB120から取り出す。
上記のHRDは、図1Aに示されるデコーダ112の一例である。このように、電子デバイス102は、いくつかの構成において、上記のHRDおよびCPB120ならびにDPB122に従って動作してもよい。
留意すべきは、電子デバイス(単数または複数)102に含まれる要素またはその部分の1つ以上がハードウェアで実装されてもよいことである。例えば、これらの要素またはその部分の1つ以上は、チップ、回路素子またはハードウェア・コンポーネントなどとして実装されてもよい。同様に留意すべきは、本明細書に記載される機能または方法の1つ以上がハードウェアで実装されてもよく、および/またはハードウェアを用いて行われてもよいことである。例えば、本明細書に記載される方法の1つ以上は、チップセット、特定用途向け集積回路(ASIC:Application−Specific Integrated Circuit)、大規模集積回路(LSI:Large−Scale Integrated circuit)または集積回路などで実装されてもよく、および/またはそれらを用いて実現されてもよい。
図1Bは、エンコーダ1908およびデコーダ1972の別の例を示すブロック図である。この例では、電子デバイスA1902および電子デバイスB1970が示される。しかしながら、留意すべきは、電子デバイスA1902および電子デバイスB1970に関して記載される特徴および機能性がいくつかの構成では単一の電子デバイスに組み合わされてもよいことである。
電子デバイスA1902は、エンコーダ1908を含む。エンコーダ1908は、ベースレイヤ・エンコーダ1910およびエンハンスメントレイヤ・エンコーダ1920を含みうる。ビデオエンコーダ1908は、後で記載されるように、スケーラブルビデオ符号化および多視点ビデオ符号化に適する。エンコーダ1908は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。一構成において、エンコーダ1908は、スケーラブルおよび/または多視点を含めて、高効率ビデオ符号化(HEVC)コーダであってもよい。HEVC仕様は、参照によりその全体が本明細書に組み込まれる、B.ブロス,W−J.ハン,J−R.オーム,G.J.サリバン,およびT.ウィーガンド,「高効率ビデオ符号化(HEVC)テキスト仕様草案10」,JCTVC−L1003,ジュネーブ,2013年1月を含み、多視点仕様は、参照によりその全体が本明細書に組み込まれる、G.テック(Tech),K.ウェグナー(Wegner),Y.チェン(Chen),M.ハンヌクセラ(Hannuksela),J・ボイス(Boyce),「MV−HEVC草案テキスト6(ISO/IEC23008−2:201x/PDAM2)」,JCT3V−F1004,ジュネーブ,2013年11月を含み、スケーラブル仕様は、参照によりその全体が本明細書に組み込まれる、J.チェン,J.ボイス,Y.イエ(Ye),M.ハンヌクセラ,「SHVC草案4」,JCTVC−O1008,ジュネーブ,2013年11月を含みうる。所望により、他のコーダが同様に用いられてもよい。電子デバイスA1902は、ソース1906を取得する。いくつかの構成において、ソース1906は、イメージセンサを用いて電子デバイスA1902上に取り込まれてもよく、メモリから読み出されてもよく、または別の電子デバイスから受信されてもよい。
エンコーダ1908は、ベースレイヤ・ビットストリーム1934およびエンハンスメントレイヤ・ビットストリーム1936を生成するためにソース1906を符号化する。例えば、エンコーダ1908は、ソース1906中の一連のピクチャ(例えば、ビデオ)を符号化する。特に、品質スケーラビリティとしても知られるSNRスケーラビリティに係るスケーラブルビデオ符号化のために、同じソース1906がベースレイヤおよびエンハンスメントレイヤ・エンコーダへ供給されてもよい。特に、空間スケーラビリティに係るスケーラブルビデオ符号化のために、ダウンサンプリングされたソースがベースレイヤ・エンコーダのために用いられてもよい。特に、多視点仕様符号化のために、異なるビュー・ソースがベースレイヤ・エンコーダおよびエンハンスメントレイヤ・エンコーダのために用いられてもよい。エンコーダ1908は、図2Bに関連して後で記載されるエンコーダ1782と同様であってもよい。
ビットストリーム1934、1936は、ソース1906に基づく符号化ピクチャデータを含みうる。いくつかの構成において、ビットストリーム1934、1936は、オーバーヘッドデータ、例えば、スライスヘッダ情報、PPS情報なども含みうる。ソース1906中の追加のピクチャ106が符号化されるにつれて、ビットストリーム1934、1936は、1つ以上の符号化ピクチャを含みうる。
ビットストリーム1934、1936は、デコーダ1972へ供給される。デコーダ1972は、ベースレイヤ・デコーダ1980およびエンハンスメントレイヤ・デコーダ1990を含みうる。ビデオデコーダ1972は、スケーラブルビデオ復号および多視点ビデオ復号に適する。一例において、ビットストリーム1934、1936は、有線または無線リンクを用いて電子デバイスB1970へ送信される。いくつかのケースでは、これは、ネットワーク、例えば、インターネットまたはローカルエリアネットワーク(LAN)を介して行われる。図1Bに示されるように、デコーダ1972は、電子デバイスA1902上のエンコーダ1908とは別々に電子デバイスB1970上に実装されてもよい。しかしながら、留意すべきは、いくつかの構成ではエンコーダ1908およびデコーダ1972が同じ電子デバイス上に実装されてもよいことである。例として、エンコーダ1908およびデコーダ1972が同じ電子デバイス上に実装される実装では、ビットストリーム1934、1936がバスを介してデコーダ1972へ供給されてもよく、またはデコーダ1972による読み出しのためにメモリ中に記憶されてもよい。デコーダ1972は、復号ベースレイヤ1992および復号エンハンスメントレイヤ・ピクチャ(単数または複数)1994を出力として供給する。
デコーダ1972は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。一構成において、デコーダ1972は、スケーラブルおよび/または多視点を含めて、高効率ビデオ符号化(HEVC)デコーダであってもよい。他のデコーダが同様に用いられてもよい。デコーダ1972は、図3Bに関連して後で記載されるデコーダ1812と同様であってもよい。さらに、ベースレイヤ・エンコーダおよび/またはエンハンスメントレイヤ・エンコーダは、図1Aに関して記載されるような、メッセージ発生モジュールをそれぞれが含みうる。さらに、ベースレイヤ・デコーダおよび/またはエンハンスメントレイヤ・デコーダは、図1Aに関して記載されるような、符号化ピクチャバッファおよび/または復号ピクチャバッファを含みうる。加えて、図1Bの電子デバイスは、場合に応じて、図1Aの電子デバイスの機能に従って動作してもよい。
図2Aは、電子デバイス602上のエンコーダ604の一構成を示すブロック図である。留意すべきは、電子デバイス602内に含まれるとして示される要素の1つ以上がハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよいことである。例えば、電子デバイス602は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよいエンコーダ604を含む。例として、エンコーダ604は、回路、集積回路、特定用途向け集積回路(ASIC)、実行可能な命令をもつメモリと電子通信を行うプロセッサ、ファームウェア、フィールドプログラマブルゲートアレイ(FPGA:field−programmable gate array)など、またはそれらの組み合わせとして実装されてもよい。いくつかの構成において、エンコーダ604は、HEVCコーダであってもよい。
電子デバイス602は、ソース622を含みうる。ソース622は、ピクチャまたは画像データ(例えば、ビデオ)を1つ以上の入力ピクチャ606としてエンコーダ604へ供給する。ソース622の例は、イメージセンサ、メモリ、通信インターフェース、ネットワークインターフェース、無線受信機、ポートなどを含みうる。
1つ以上の入力ピクチャ606は、フレーム内予測モジュールおよび再構成バッファ624へ供給される。入力ピクチャ606は、動き推定および動き補償モジュール646へ、そして減算モジュール628へも供給される。
フレーム内予測モジュールおよび再構成バッファ624は、1つ以上の入力ピクチャ606および再構成データ660に基づいてイントラモード情報640およびイントラ信号626を発生させる。動き推定および動き補償モジュール646は、1つ以上の入力ピクチャ606および復号ピクチャバッファ676からの参照ピクチャ678に基づいてインターモード情報648およびインター信号644を発生させる。いくつかの構成において、復号ピクチャバッファ676は、1つ以上の参照ピクチャからのデータを復号ピクチャバッファ676中に含みうる。
エンコーダ604は、モードに従ってイントラ信号626とインター信号644との間で選択を行う。イントラ信号626は、イントラ符号化モードにおいてピクチャ内の空間特性を活用するために用いられる。インター信号644は、インター符号化モードにおいてピクチャ間の時間的特性を活用するために用いられる。イントラ符号化モードにある間に、イントラ信号626が減算モジュール628へ供給され、イントラモード情報640がエントロピー符号化モジュール642へ供給される。インター符号化モードにある間には、インター信号644が減算モジュール628へ供給され、インターモード情報648がエントロピー符号化モジュール642へ供給される。
減算モジュール628では予測残差630を生成するために(モードに依存して)イントラ信号626またはインター信号644のいずれかが入力ピクチャ606から減算される。予測残差630は、変換モジュール632へ供給される。変換モジュール632は、予測残差630を圧縮して、量子化モジュール636へ供給される変換信号634を生成する。量子化モジュール636は、変換信号634を量子化して、変換および量子化された係数(TQC:transformed and quantized coefficient)638を生成する。
TQC638は、エントロピー符号化モジュール642および逆量子化モジュール650へ供給される。逆量子化モジュール650は、TQC638に対して逆量子化を行い、逆変換モジュール654へ供給される逆量子化された信号652を生成する。逆変換モジュール654は、逆量子化された信号652を展開して、再構成モジュール658へ供給される展開された信号656を生成する。
再構成モジュール658は、展開された信号656に基づいて再構成されたデータ660を生成する。例えば、再構成モジュール658は、(修正された)ピクチャを再構成する。再構成されたデータ660は、デブロッキングフィルタ662へ、ならびにイントラ予測モジュールおよび再構成バッファ624へ供給される。デブロッキングフィルタ662は、再構成されたデータ660に基づいてフィルタされた信号664を生成する。
フィルタされた信号664は、サンプル適応オフセット(SAO:sample adaptive offset)モジュール666へ供給される。SAOモジュール666は、エントロピー符号化モジュール642へ供給されるSAO情報668および適応ループ・フィルタ(ALF:adaptive loop filter)672へ供給されるSAO信号670を生成する。ALF672は、復号ピクチャバッファ676へ供給されるALF信号674を生成する。ALF信号674は、参照ピクチャとして用いてもよい1つ以上のピクチャからのデータを含みうる。
エントロピー符号化モジュール642は、TQC638を符号化して、ビットストリームA614a(例えば、符号化ピクチャデータ)を生成する。例えば、エントロピー符号化モジュール642は、コンテキスト適応型可変長符号化(CAVLC:Context−Adaptive Variable Length Coding)またはコンテキスト適応型2値算術符号化(CABAC:Context−Adaptive Binary Arithmetic Coding)を用いてTQC638を符号化する。特に、エントロピー符号化モジュール642は、TQC638をイントラモード情報640、インターモード情報648およびSAO情報668のうちの1つ以上に基づいて符号化する。ビットストリームA614a(例えば、符号化ピクチャデータ)は、メッセージ発生モジュール608へ供給される。メッセージ発生モジュール608は、図1に関連して記載されたメッセージ発生モジュール108と同様に構成されてもよい。
例えば、メッセージ発生モジュール608は、複数のサブピクチャ・パラメータを含んだある1つのメッセージ(例えば、ピクチャタイミングSEIメッセージまたは他のメッセージ)を発生させる。サブピクチャ・パラメータは、復号ユニットに係る1つ以上のリムーバル遅延(例えば、common_du_cpb_removal_delayまたはdu_cpb_removal_delay[i])および1つ以上のNALパラメータ(例えば、common_num_nalus_in_du_minus1またはnum_nalus_in_du_minus1[i])を含みうる。いくつかの構成において、このメッセージは、ビットストリームB614bを生成するためにビットストリームA614a中に挿入される。従って、このメッセージは、例えば、ビットストリームA614a全体が生成された後に(例えば、ビットストリームB614bの大部分が生成された後に)生成されてもよい。他の構成では、メッセージは、ビットストリームA614a中に挿入されないが(そのケースではビットストリームB614bがビットストリームA614aと同じであってもよい)、別個の送信610で供給されてもよい。
いくつかの構成において、電子デバイス602は、ビットストリーム614を別の電子デバイスへ送信する。例えば、ビットストリーム614は、通信インターフェース、ネットワークインターフェース、無線送信機、ポートなどへ供給されてもよい。例として、ビットストリーム614は、LAN、インターネット、セルラーフォン基地局などを介して別の電子デバイスへ送信されてもよい。ビットストリーム614は、加えてまたは代わりに、電子デバイス602上のメモリまたは他のコンポーネント中に記憶されてもよい。
図2Bは、電子デバイス1702上のビデオエンコーダ1782の一構成を示すブロック図である。ビデオエンコーダ1782は、エンハンスメントレイヤ・エンコーダ1706、ベースレイヤ・エンコーダ1709、解像度アップスケーリング・ブロック1770および出力インターフェース1780を含みうる。図2Bのビデオエンコーダ1908は、例えば、本明細書に記載されるように、スケーラブルビデオ符号化および多視点ビデオ符号化に適する。
エンハンスメントレイヤ・エンコーダ1706は、入力ピクチャ1704を受信するビデオ入力1781を含みうる。ビデオ入力1781の出力は、予測選択1750の出力を受信する加算器/減算器1783へ供給される。加算器/減算器1783の出力は、変換および量子化ブロック1752へ供給される。変換および量子化ブロック1752の出力は、エントロピー符号化1748ブロックならびにスケーリングおよび逆変換ブロック1772へ供給される。エントロピー符号化1748が行われた後、エントロピー符号化ブロック1748の出力は、出力インターフェース1780へ供給される。出力インターフェース1780は、符号化ベースレイヤ・ビデオビットストリーム1707および符号化エンハンスメントレイヤ・ビデオビットストリーム1710の両方を出力する。
スケーリングおよび逆変換ブロック1772の出力は、加算器1779へ供給される。加算器1779は、予測選択1750の出力も受信する。加算器1779の出力は、デブロッキング・ブロック1751へ供給される。デブロッキング・ブロック1751の出力は、参照バッファ1794へ供給される。参照バッファ1794の出力は、動き補償ブロック1754へ供給される。動き補償ブロック1754の出力は、予測選択1750へ供給される。参照バッファ1794の出力は、イントラ予測器1756へも供給される。イントラ予測器1756の出力は、予測選択1750へ供給される。予測選択1750は、解像度アップスケーリング・ブロック1770の出力も受信する。
ベースレイヤ・エンコーダ1709は、ダウンサンプリングされた入力ピクチャ、または別の画像と結合するのに適した他の画像コンテンツ、あるいは代わりのビュー入力ピクチャもしくは同じ(すなわち、エンハンスメントレイヤ・エンコーダ1706によって受信される入力ピクチャ1704と同じ)入力ピクチャ1703を受信するビデオ入力1762を含みうる。ビデオ入力1762の出力は、符号化予測ループ1764へ供給される。エントロピー符号化1766は、符号化予測ループ1764の出力に対して提供される。符号化予測ループ1764の出力は、参照バッファ1768へも供給される。参照バッファ1768は、符号化予測ループ1764へフィードバックを提供する。参照バッファ1768の出力は、解像度アップスケーリング・ブロック1770へも供給される。エントロピー符号化1766が一旦行われると、出力は、出力インターフェース1780へ供給される。符号化ベースレイヤ・ビデオビットストリーム1707および/または符号化エンハンスメントレイヤ・ビデオビットストリーム1710は、所望により、1つ以上のメッセージ発生モジュールへ供給される。
図3Aは、電子デバイス702上のデコーダ712の一構成を示すブロック図である。デコーダ712は、電子デバイス702中に含まれてもよい。例えば、デコーダ712は、HEVCデコーダであってもよい。デコーダ712およびデコーダ712中に含まれるとして示される1つ以上の要素は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。デコーダ712は、復号のためにビットストリーム714(例えば、ビットストリーム714中に含まれる1つ以上の符号化ピクチャおよびオーバーヘッドデータ)を受信する。いくつかの構成において、受信したビットストリーム714は、受信したオーバーヘッドデータ、例えば、メッセージ(例えば、ピクチャタイミングSEIメッセージまたは他のメッセージ)、スライスヘッダ、PPSなどを含みうる。いくつかの構成では、デコーダ712が別個の送信710を追加的に受信してもよい。別個の送信710は、メッセージ(例えば、ピクチャタイミングSEIメッセージまたは他のメッセージ)を含みうる。例えば、ピクチャタイミングSEIメッセージまたは他のメッセージは、ビットストリーム714の代わりに別個の送信710で受信されてもよい。しかしながら、留意すべきは、いくつかの構成では別個の送信710が随意的であり、利用されなくてもよいことである。
デコーダ712は、CPB720を含む。CPB720は、上の図1に関連して記載されたCPB120と同様に構成されてもよい。デコーダ712は、サブピクチャ・パラメータをもつメッセージ(例えば、ピクチャタイミングSEIメッセージまたは他のメッセージ)を受信して、サブピクチャ・パラメータに基づいてアクセスユニット中の復号ユニットを取り出して復号する。留意すべきは、ビットストリーム中には1つ以上のアクセスユニットが含まれてもよく、これらのアクセスユニットが符号化ピクチャデータおよびオーバーヘッドデータのうちの1つ以上を含みうることである。
符号化ピクチャバッファ(CPB)720は、符号化ピクチャデータをエントロピー復号モジュール701へ供給する。符号化ピクチャデータは、エントロピー復号モジュール701によりエントロピー復号され、それによって動き情報信号703、ならびに量子化、スケーリングおよび/または変換された係数705を生成する。
動き情報信号703は、フレーム間予測信号782を生成する動き補償モジュール780において、復号ピクチャバッファ709からの参照フレーム信号798の一部分と結合される。量子化、デスケーリングおよび/または変換された係数705は、逆モジュール707でよって逆量子化、スケーリングおよび逆変換され、それによって復号された残差信号784を生成する。復号された残差信号784は、結合信号786を生成するために予測信号792に加算される。予測信号792は、動き補償モジュール780によって生成されたフレーム間予測信号782か、またはフレーム内予測モジュール788によって生成されたフレーム内予測信号790のいずれかから選択された信号である。いくつかの構成において、この信号選択は、ビットストリーム714に基づく(例えば、ビットストリーム714によって制御される)。
フレーム内予測信号790は、(例えば、現フレームにおける)結合信号786から予め復号された情報から予測される。結合信号786は、さらに、デブロッキングフィルタ794によってフィルタされる。フィルタされた結果として生じた信号796は、復号ピクチャバッファ709に書き込まれる。フィルタされた結果として生じた信号796は、復号ピクチャを含みうる。復号ピクチャバッファ709は、出力される復号ピクチャ718を供給する。いくつかのケースでは、709がフレームメモリと見做される。
図3Bは、電子デバイス1802上のビデオデコーダ1812の一構成を示すブロック図である。ビデオデコーダ1812は、エンハンスメントレイヤ・デコーダ1815およびベースレイヤ・デコーダ1813を含みうる。ビデオデコーダ812は、インターフェース1889および解像度アップスケーリング1870も含みうる。図2Bのビデオデコーダは、例えば、本明細書に記載されるように、スケーラブルビデオ符号化および多視点ビデオ符号化に適する。
インターフェース1889は、符号化ビデオストリーム1885を受信する。符号化ビデオストリーム1885は、ベースレイヤ符号化ビデオストリームおよびエンハンスメントレイヤ符号化ビデオストリームからなる。これら2つのストリームは、別々にまたは一緒に送信されてもよい。インターフェース1889は、符号化ビデオストリーム1885のいくらかまたはすべてをベースレイヤ・デコーダ1813におけるエントロピー復号ブロック1886へ供給する。エントロピー復号ブロック1886の出力は、復号予測ループ1887へ供給される。復号予測ループ1887の出力は、参照バッファ1888へ供給される。参照バッファは、復号予測ループ1887にフィードバックを提供する。参照バッファ1888は、さらに、復号ベースレイヤ・ビデオストリーム1884を出力する。
インターフェース1889は、さらに、符号化ビデオストリーム1885のいくらかまたはすべてをエンハンスメントレイヤ・デコーダ1815におけるエントロピー復号ブロック1890へ供給する。エントロピー復号ブロック1890の出力は、逆量子化ブロック1891へ供給される。逆量子化ブロック1891の出力は、加算器1892へ供給される。加算器1892は、逆量子化ブロック1891の出力と予測選択ブロック1895の出力とを加算する。加算器1892の出力は、デブロッキング・ブロック1893へ供給される。デブロッキング・ブロック1893の出力は、参照バッファ1894へ供給される。参照バッファ1894は、復号されたエンハンスメントレイヤ・ビデオストリーム1882を出力する。参照バッファ1894の出力は、イントラ予測器1897へも供給される。エンハンスメントレイヤ・デコーダ1815は、動き補償1896を含みうる。動き補償1896は、解像度アップスケーリング1870後に行われる。予測選択ブロック1895は、イントラ予測器1897の出力および動き補償1896の出力を受信する。さらに、デコーダは、所望により、1つ以上の符号化ピクチャバッファを、例えば、インターフェース1889とともに含みうる。
図4は、送信用電子デバイス802において利用される様々なコンポーネントを示す。本明細書に記載される電子デバイス102、602、702のうちの1つ以上は、図4に示される送信用電子デバイス802に従って実装されてもよい。
送信用電子デバイス802は、電子デバイス802の動作を制御するプロセッサ817を含む。プロセッサ817は、CPUとも呼ばれる。メモリ811は、リードオンリーメモリ(ROM:read−only memory)、ランダムアクセスメモリ(RAM:random access memory)の両方、または情報を記憶する任意のタイプのデバイスを含み、命令813a(例えば、実行可能な命令)およびデータ815aをプロセッサ817へ供給する。メモリ811の一部分は、不揮発性ランダムアクセスメモリ(NVRAM:non−volatile random access memory)も含んでよい。メモリ811は、プロセッサ817と電子通信を行う。
命令813bおよびデータ815bは、プロセッサ817にも存在する。プロセッサ817に読み込まれた命令813bおよび/またはデータ815bは、プロセッサ817による実行または処理のために読み込まれたメモリ811からの命令813aおよび/またはデータ815aも含みうる。命令813bは、本明細書に開示されるシステムおよび方法を実装するためにプロセッサ817によって実行される。
送信用電子デバイス802は、他の電子デバイス(例えば、受信用電子デバイス)と通信するための1つ以上の通信インターフェース819を含みうる。通信インターフェース819は、有線通信技術、無線通信技術、または両方に基づいてもよい。通信インターフェース819の例は、シリアルポート、パラレルポート、ユニバーサルシリアルバス(USB:Universal Serial Bus)、イーサネット(登録商標)アダプタ、IEEE1394バスインターフェース、小型計算機システムインターフェース(SCSI:small computer system interface)バスインターフェース、赤外線(IR)通信ポート、Bluetooth(登録商標)無線通信アダプタ、第3世代パートナーシップ・プロジェクト(3GPP:3rd Generation Partnership Project)仕様による無線トランシーバなどを含む。
送信用電子デバイス802は、1つ以上の出力デバイス823および1つ以上の入力デバイス821を含みうる。出力デバイス823の例は、スピーカ、プリンタなどを含む。電子デバイス802中に含まれてもよい出力デバイスの1つのタイプは、ディスプレイデバイス825である。本明細書に開示される構成とともに用いられるディスプレイデバイス825は、任意の適切な画像投影技術、例えば、陰極線管(CRT:cathode ray tube)、液晶ディスプレイ(LCD:liquid crystal display)、発光ダイオード(LED:light−emitting diode)、気体プラズマ、エレクトロルミネセンスなどを利用してもよい。ディスプレイコントローラ827は、メモリ811中に記憶されたデータをディスプレイ825上に示されるテキスト、グラフィックス、および/または動画像に(適宜)変換するために設けられる。入力デバイス821の例は、キーボード、マウス、マイクロフォン、リモートコントロールデバイス、ボタン、ジョイスティック、トラックボール、タッチパッド、タッチスクリーン、ライトペンなどを含む。
送信用電子デバイス802の様々なコンポーネントは、データバスに加えて、電力バス、制御信号バスおよびステータス信号バスを含みうる、バスシステム829によって結合される。しかしながら、明確さのために、図4では様々なバスがバスシステム829として示される。図4に示される送信用電子デバイス802は、具体的なコンポーネントのリスティングではなく機能ブロック図である。
図5は、受信用電子デバイス902において利用される様々なコンポーネントを示すブロック図である。本明細書に記載される電子デバイス102、602、702のうちの1つ以上は、図5に示される受信用電子デバイス902に従って実装されてもよい。
受信用電子デバイス902は、電子デバイス902の動作を制御するプロセッサ917を含む。プロセッサ917は、CPUとも呼ばれる。メモリ911は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)の両方、または情報を記憶する任意のタイプのデバイスを含んでもよく、命令913a(例えば、実行可能な命令)およびデータ915aをプロセッサ917へ供給する。メモリ911の一部分は、不揮発性ランダムアクセスメモリ(NVRAM)も含みうる。メモリ911は、プロセッサ917と電子通信を行う。
命令913bおよびデータ915bは、プロセッサ917にも存在する。プロセッサ917に読み込まれた命令913bおよび/またはデータ915bは、プロセッサ917による実行または処理のために読み込まれたメモリ911からの命令913aおよび/またはデータ915aも含みうる。命令913bは、本明細書に開示されるシステムおよび方法を実装するためにプロセッサ917によって実行される。例えば、命令913bは、上記の方法200、300、400、500のうちの1つ以上を行うために実行可能である。
受信用電子デバイス902は、他の電子デバイス(例えば、送信用電子デバイス)と通信するための1つ以上の通信インターフェース919を含みうる。通信インターフェース919は、有線通信技術、無線通信技術、または両方に基づいてもよい。通信インターフェース919の例は、シリアルポート、パラレルポート、ユニバーサルシリアルバス(USB)、イーサネット(登録商標)アダプタ、IEEE1394バスインターフェース、小型計算機システムインターフェース(SCSI)バスインターフェース、赤外線(IR)通信ポート、Bluetooth(登録商標)無線通信アダプタ、第3世代パートナーシップ・プロジェクト(3GPP)仕様による無線トランシーバなどを含む。
受信用電子デバイス902は、1つ以上の出力デバイス923および1つ以上の入力デバイス921を含みうる。出力デバイス923の例は、スピーカ、プリンタなどを含む。電子デバイス902中に含まれてもよい出力デバイスの1つのタイプは、ディスプレイデバイス925である。本明細書に開示される構成とともに用いられるディスプレイデバイス925は、任意の適切な画像投影技術、例えば、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)、気体プラズマ、エレクトロルミネセンスなどを利用してもよい。ディスプレイコントローラ927は、メモリ911中に記憶されたデータをディスプレイ925上に示されるテキスト、グラフィックス、および/または動画像に(適宜)変換するために設けられる。入力デバイス921の例は、キーボード、マウス、マイクロフォン、リモートコントロールデバイス、ボタン、ジョイスティック、トラックボール、タッチパッド、タッチスクリーン、ライトペンなどを含む。
受信用電子デバイス902の様々なコンポーネントは、データバスに加えて、電力バス、制御信号バスおよびステータス信号バスを含みうる、バスシステム929によって結合される。しかしながら、明確さのために、図5では様々なバスがバスシステム929として示される。図5に示される受信用電子デバイス902は、具体的なコンポーネントのリスティングではなく機能ブロック図である。
図6は、電子デバイス1002の一構成を示すブロック図である。電子デバイス1002は、符号化手段1031および送信手段1033を含む。符号化手段1031および送信手段1033は、上の図1、図2、および図3の1つ以上に関連して記載された機能の1つ以上を行うように構成される。例えば、符号化手段1031および送信手段1033は、ビットストリーム1014を発生させる。上の図4は、図6の具体的な装置構造の一例を示す。図1、図2、および図3の機能の1つ以上を実現するために、他の様々な構造が実装されてもよい。例えば、DSPがソフトウェアによって実現されてもよい。
図7は、ビットストリーム1114をバッファリングするためのシステムおよび方法が実装された電子デバイス1102の一構成を示すブロック図である。電子デバイス1102は、受信手段1135および復号手段1137を含みうる。受信手段1135および復号手段1137は、上の図1、図3、図5の1つ以上に関連して記載された機能の1つ以上を行うように構成される。例えば、受信手段1135および復号手段1137は、ビットストリーム1114を受信する。上の図5は、図7の具体的な装置構造の一例を示す。図1、図3、および図5の1つ以上の機能を実現するために、他の様々な構造が実装されてもよい。例えば、DSPがソフトウェアによって実現されてもよい。
図8は、復号ピクチャバッファ(DPB)の動作のための方法1200の一構成を示すフロー図である。方法1200は、エンコーダ104またはその副部分の1つ(例えば、復号ピクチャバッファ・モジュール676)によって行われてもよい。方法1200は、電子デバイス102(例えば、電子デバイスB102b)におけるデコーダ112によって行われてもよい。加えてまたは代わりに、方法1200は、デコーダ712またはその副部分の1つ(例えば、復号ピクチャバッファ・モジュール709)によって行われてもよい。デコーダは、ある1つのピクチャの最初のスライスヘッダを構文解析する(ステップ1202)。現ピクチャを復号する前(しかし、現ピクチャの第1のスライスのスライスヘッダを構文解析した後)の複数のピクチャのDPBからの出力およびリムーバルは、現ピクチャを含んだアクセスユニットの第1の復号ユニットがCPBから取り出されたときに即座に生じて、次のように進む。
−参照ピクチャセット(RPS:reference picture set)に対する復号処理が起動される。参照ピクチャセットは、ある1つのピクチャと関連付けられた参照ピクチャのセットであり、このセットは、復号順にその関連付けられたピクチャより前にあり、その関連付けられたピクチャまたは復号順にその関連付けられたピクチャの後に続く任意のピクチャのインター予測のために用いてもよい、すべての参照ピクチャからなる。
−ビデオのビットストリームは、ネットワーク抽象化レイヤ(NAL:Network Abstraction Layer)ユニットと一般に呼ばれる、論理データパケット中に置かれたシンタック構造を含みうる。各NALユニットは、関連付けられたデータ・ペイロードの目的を識別するためのNALユニットヘッダ、例えば、2バイトのNALユニットヘッダ(例えば、16ビット)を含む。例えば、各符号化スライス(および/またはピクチャ)が1つ以上のスライス(および/またはピクチャ)NALユニットで符号化されてもよい。データの他のカテゴリ、例えば、付加拡張情報、テンポラル・サブレイヤ・アクセス(TSA:temporal sub−layer access)ピクチャの符号化スライス、階段状テンポラル・サブレイヤ・アクセス(STSA:step−wise temporal sub−layer access)ピクチャの符号化スライス、non−TSA、non−STSAトレイリング・ピクチャの符号化スライス、ブロークンリンクアクセス・ピクチャの符号化スライス、瞬時復号リフレッシュ・ピクチャの符号化スライス、クリーンランダムアクセス・ピクチャの符号化スライス、復号可能リーディング・ピクチャの符号化スライス、破棄用タグ付きピクチャの符号化スライス、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、アクセスユニット・デリミタ、シーケンスの終了、ビットストリームの終了、フィラーデータ、および/またはシーケンス拡張情報メッセージのために他のNALユニットが含まれてもよい。表(1)は、NALユニット・コードおよびNALユニット・タイプ・クラスの一例を示す。所望により、他のNALユニット・タイプが含まれてもよい。表(1)に示されるNALユニットのNALユニット・タイプ値がリシャッフルされ、再割り当てされてもよいことも理解されるべきである。さらに、追加のNALユニット・タイプが加えられてもよい。さらに、いくつかのNALユニット・タイプが除去されてもよい。
イントラランダムアクセスポイント(IRAP:intra random access point)ピクチャは、各ビデオ符号化レイヤNALユニットが、表(1)に示されるように、両端値を含めて、BLA_W_LPからRSV_IRAP_VCL23までの範囲内のnal_unit_typeを有する符号化ピクチャである。IRAPピクチャは、イントラ符号化(I)スライスのみを含む。瞬時復号リフレッシュ(IDR:instantaneous decoding refresh)ピクチャは、各ビデオ符号化レイヤNALユニットが、表(1)に示されるように、IDR_W_RADLまたはIDR_N_LPに等しいnal_unit_typeを有するIRAPピクチャである。瞬時復号リフレッシュ(IDR)ピクチャは、Iスライスのみを含み、復号順にビットストリーム中の第1のピクチャであってもよく、またはビットストリーム中に後の方で現れてもよい。各IDRピクチャは、復号順に符号化ビデオシーケンス(CVS:coded video sequence)の第1のピクチャである。ブロークンリンクアクセス(BLA:broken link access)ピクチャは、各ビデオ符号化レイヤNALユニットが、表(1)に示されるように、BLA_W_LP、BLA_W_RADL、またはBLA_N_LPに等しいnal_unit_typeを有するIRAPピクチャである。BLAピクチャは、Iスライスのみを含み、復号順にビットストリーム中の第1のピクチャであってもよく、またはビットストリーム中に後の方で現れてもよい。各BLAピクチャは、新しい符号化ビデオシーケンスを開始し、復号処理に対してIDRピクチャと同じ効果を有する。しかしながら、BLAピクチャは、空ではない参照ピクチャセットを指定するシンタックス要素を含む。
表(2)を参照すると、NALユニットヘッダ・シンタックスは、2バイトのデータ、すなわち、16ビットを含みうる。第1のビットは、NALユニットの先頭で常にゼロにセットされる「forbidden_zero_bit」である。次の6ビットは、表(1)に示されるようなNALユニットに含まれるロー・バイト・シーケンス・ペイロード(「RBSP」)データ構造のタイプを指定する「nal_unit_type」である。次の6ビットは、レイヤのインデンティファイヤを指定する「nuh_layer_id」である。いくつかのケースでは、代わりにこれらの6ビットが「nuh_reserved_zero_6bits」として指定されてもよい。nuh_reserved_zero_6bitsは、規格の基本仕様では0に等しくてもよい。スケーラブルビデオ符号化および/またはシンタックス拡張において、nuh_layer_idは、この特定のNALユニットがこれら6ビットの値によって識別されるレイヤに属することを指定してもよい。次のシンタックス要素は、「nuh_temporal_id_plus1」である。nuh_temporal_id_plus1−1は、NALユニットに対するテンポラル識別子を指定してもよい。テンポラル識別子変数TemporalIdは、TemporalId=nuh_temporal_id_plus1−1として指定されてもよい。テンポラル識別子TemporalIdは、テンポラル・サブレイヤを識別するために用いられる。変数HighestTidは、復号されることになる最上位のテンポラル・サブレイヤを識別する。
表(2)
表(3)は、例示的なシーケンスパラメータセット(SPS:sequence parameter set)シンタックス構造を示す。
pic_width_in_luma_samplesは、輝度サンプルの単位で各復号ピクチャの幅を指定する。pic_width_in_luma_samplesは、0に等しくなくてもよい。
pic_height_in_luma_samplesは、輝度サンプルの単位で各復号ピクチャの高さを指定する。pic_height_in_luma_samplesは、0に等しくなくてもよい。
sps_max_sub_layers_minus1+1は、SPSを参照する各CVS中に存在しうるテンポラル・サブレイヤの最大数を指定する。sps_max_sub_layers_minus1の値は、両端値を含めて、0から6までの範囲内にありうる。
1に等しいsps_sub_layer_ordering_info_present_flagフラグは、sps_max_dec_pic_buffering_minus1[i]、sps_max_num_reorder_pics[i]、およびsps_max_latency_increase_plus1[i]シンタックス要素が、sps_max_sub_layers_minus1+1個のサブレイヤに対して存在することを指定する。0に等しいsps_sub_layer_ordering_info_present_flagは、sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]、sps_max_num_reorder_pics[sps_max_sub_layers_minus1]、およびsps_max_latency_increase_plus1[sps_max_sub_layers_minus1]の値がすべてのサブレイヤに適用されることを指定する。
sps_max_dec_pic_buffering_minus1[i]+1は、HighestTidがiに等しいときにピクチャ記憶バッファの単位でCVSのための復号ピクチャバッファの最大所要サイズを指定する。sps_max_dec_pic_buffering_minus1[i]の値は、両端値を含めて、0からMaxDpbSize−1までの範囲内にあってもよく、ここでMaxDpbSizeは、ピクチャ記憶バッファの単位で最大復号ピクチャバッファサイズを指定する。iが0より大きいときに、sps_max_dec_pic_buffering_minus1[i]は、sps_max_dec_pic_buffering_minus1[i−1]以上であってもよい。sps_max_dec_pic_buffering_minus1[i]が、sps_sub_layer_ordering_info_present_flagが0に等しいことに起因して、両端値を含めて、0からsps_max_sub_layers_minus1−1までの範囲内のiに対して存在しないときには、sps_max_dec_pic_buffering_minus1[i]は、sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]に等しいと推測される。
sps_max_num_reorder_pics[i]は、HighestTidがiに等しいときに復号順ではCVS中の任意のピクチャに先行し、出力順ではそのピクチャの後に続くことができるピクチャの最大許容数を示す。sps_max_num_reorder_pics[i]の値は、両端値を含めて、0からsps_max_dec_pic_buffering_minus1[i]までの範囲内にありうる。iが0より大きいときに、sps_max_num_reorder_pics[i]は、sps_max_num_reorder_pics[i−1]以上であってもよい。sps_max_num_reorder_pics[i]が、sps_sub_layer_ordering_info_present_flagが0に等しいことに起因して、両端値を含めて、0からsps_max_sub_layers_minus1−1までの範囲内のiに対して存在しないときには、sps_max_num_reorder_pics[i]は、sps_max_num_reorder_pics[sps_max_sub_layers_minus1]に等しいと推測される。
0に等しくないsps_max_latency_increase_plus1[i]は、HighestTidがiに等しいときに出力順ではCVS中の任意のピクチャに先行し、復号順ではそのピクチャの後に続くことができるピクチャの最大数を指定する、SpsMaxLatencyPictures[i]の値を計算するために用いられる。
sps_max_latency_increase_plus1[i]が0に等しくないときに、SpsMaxLatencyPictures[i]の値は、次のように指定される、すなわち、
SpsMaxLatencyPictures[i]=sps_max_num_reorder_pics[i]+
sps_max_latency_increase_plus1[i]−1
sps_max_latency_increase_plus1[i]が0に等しいときには、対応する制限は何も表現されない。
sps_max_latency_increase_plus1[i]の値は、両端値を含めて、0から2
32−2までの範囲内にありうる。sps_max_latency_increase_plus1[i]が、sps_sub_layer_ordering_info_present_flagが0に等しいことに起因して、両端値を含めて、0からsps_max_sub_layers_minus1−1までの範囲内のiに対して存在しないときには、sps_max_latency_increase_plus1[i]は、sps_max_latency_increase_plus1[sps_max_sub_layers_minus1]に等しいと推測される。
表(3)
現ピクチャがIRAPピクチャであるときには、以下が適用される、すなわち、
−現ピクチャがIDRピクチャ、BLAピクチャ、復号順にビットストリーム中の第1のピクチャ、または復号順にエンドオブシーケンスNALユニットの後に続く第1のピクチャであれば、変数NoRaslOutputFlagが1に等しくセットされる。
−そうでない場合には、変数HandleCraAsBlaFlagを現ピクチャの値にセットするために何らかの外部手段が利用可能であれば、変数HandleCraAsBlaFlagがその外部手段によって提供される値に等しくセットされ、変数NoRaslOutputFlagがHandleCraAsBlaFlagに等しくセットされる。
−そうでない場合には、変数HandleCraAsBlaFlagが0に等しくセットされ、変数NoRaslOutputFlagが0に等しくセットされる。
現ピクチャがピクチャ0ではない1に等しいNoRaslOutputFlagをもつIRAPピクチャであれば、次の順序付けられたステップが適用される、すなわち、
1.変数NoOutputOfPriorPicsFlagが被テスト・デコーダに関して次のように導出される、すなわち、
−現ピクチャがCRAピクチャであれば、(no_output_of_prior_pics_flagの値に係らず)NoOutputOfPriorPicsFlagが1に等しくセットされる。
−そうでない場合には、アクティブSPSから導出されたpic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering_minus1[HighestTid]の値が、先行ピクチャに対してアクティブなSPSから導出された、それぞれ、pic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering_minus1[HighestTid]の値と異なれば、NoOutputOfPriorPicsFlagは、no_output_of_prior_pics_flagの値に係らず、被テスト・デコーダによって1にセットされてもよい(しかし、セットされるべきであるわけではない)。
−そうでない場合には、NoOutputOfPriorPicsFlagがno_output_of_prior_pics_flagに等しくセットされる。
2.被テスト・デコーダに関して導出されたNoOutputOfPriorPicsFlagの値は、以下のようにHRDに適用される。
−NoOutputOfPriorPicsFlagが1に等しければ、DPB中のすべてのピクチャ記憶バッファは、それらが含むピクチャの出力なしに空にされて、DPB占有量が0に等しくセットされる。
−そうでない(NoOutputOfPriorPicsFlagが0に等しい)場合には、「出力に必要とされない」および「参照に用いられない」とマーク付けされたピクチャを含んだすべてのピクチャ記憶バッファが(出力なしに)空にされ、DPB中のすべての空でないピクチャ記憶バッファが「バンピング」処理1204を繰り返して起動することによって空にされて、DPB占有量が0に等しくセットされる。
−そうでない(現ピクチャが1に等しいNoRaslOutputFlagをもつIRAPピクチャではない)場合には、「出力に必要とされない」および「参照に用いられない」とマーク付けされたピクチャを含んだすべてのピクチャ記憶バッファが(出力なしに)空にされる。空にされたピクチャ記憶バッファごとに、DPB占有量が1つデクリメントされる。次の条件の1つ以上が真であるときには、以下の条件がいずれも真でなくなるまで、「バンピング」処理1204が繰り返して起動され、一方ではさらなるピクチャ記憶バッファが空にされるごとにDPB占有量がさらに1つデクリメントされる、すなわち、
1.「出力に必要とされる」とマーク付けされたDPB中のその特定のnuh_layer_id値をもつピクチャの数が、(その特定のnuh_layer_id値が0に等しいときに)アクティブ・シーケンスパラメータセットからの、またはその特定のnuh_layer_id値に係るアクティブレイヤ・シーケンスパラメータセットからのsps_max_num_reorder_pics[HighestTid]より大きい。
2.(その特定のnuh_layer_id値が0に等しいときの)アクティブ・シーケンスパラメータセットからの、またはその特定のnuh_layer_id値に係るアクティブレイヤ・シーケンスパラメータセットからのsps_max_latency_increase_plus1[HighestTid]が0に等しくなく、かつ「出力に必要とされる」とマーク付けされたその特定のnuh_layer_id値をもつ少なくとも1つのピクチャがDPB中にあり、関連付けられた変数PicLatencyCountは、その特定のnuh_layer_id値に係るSpsMaxLatencyPictures[HighestTid]以上であるかどうか。
3.DPB中のその特定のnuh_layer_id値をもつピクチャの数が(その特定のnuh_layer_id値が0に等しいときに)アクティブ・シーケンスパラメータセットからの、またはその特定のnuh_layer_id値に係るアクティブレイヤ・シーケンスパラメータセットからのsps_max_dec_pic_buffering[HighestTid]+1より大きい。
ブロック1206におけるピクチャ復号処理(ピクチャ復号およびマーク付け)は、現ピクチャを含んだアクセスユニットの最後の復号ユニットがCPBから取り出されたときに瞬時に発生する。
「出力に必要とされる」とマーク付けされたDPB中の現ピクチャのnuh_layer_id値に等しいnuh_layer_id値をもつピクチャごとに、関連付けられた変数PicLatencyCountがPicLatencyCount+1に等しくセットされる。
現ピクチャは、そのピクチャの最後の復号ユニットが復号された後に復号済みと見做される。現復号ピクチャがDPBにおける空のピクチャ記憶バッファ中に記憶されて、以下が適用される、すなわち、
−現復号ピクチャが1に等しいPicOutputFlagを有すれば、現復号ピクチャが「出力に必要とされる」とマーク付けされて、その関連付けられた変数PicLatencyCountが0に等しくセットされる。
−そうでない(現復号ピクチャが0に等しいPicOutputFlagを有する)場合には、現復号ピクチャが「出力に必要とされない」とマーク付けされる。
現復号ピクチャは、「短期間参照に用いられる」とマーク付けされる。
次の条件の1つ以上が真であるときには、以下の条件がいずれも真でなくなるまで、追加の「バンピング」処理1208が繰り返して起動される、すなわち、
−「出力に必要とされる」とマーク付けされたDPB中の現ピクチャのnuh_layer_id値に等しいnuh_layer_idをもつピクチャの数が、(現ピクチャのnuh_layer_id値が0に等しいときの)アクティブ・シーケンスパラメータセットからの、または現ピクチャのnuh_layer_id値に係るアクティブレイヤ・シーケンスパラメータセットからのsps_max_num_reorder_pics[HighestTid]より大きい。
−(現ピクチャのnuh_layer_id値が0に等しいときの)アクティブ・シーケンスパラメータセットからの、または現ピクチャのnuh_layer_id値に係るアクティブレイヤ・シーケンスパラメータセットからのsps_max_latency_increase_plus1[HighestTid]が0に等しくなく、「出力に必要とされる」とマーク付けされたその特定のnuh_layer_id値をもつ少なくとも1つのピクチャがDPB中にあり、関連付けられた変数PicLatencyCountは、その特定のnuh_layer_id値に係るSpsMaxLatencyPictures[HighestTid]以上である。
「バンピング」処理1204および追加のバンピング処理1208は、ステップの観点から同一であり、次の順序付けられたステップからなる、すなわち、最初に出力するためのピクチャとして、「出力に必要とされる」とマーク付けされたDPB中のすべてのピクチャのうちでピクチャオーダカウント(PicOrderCntVal)の最小値を有するピクチャが選択される。ピクチャオーダカウントは、各ピクチャと関連付けられた変数であり、CVS中のすべてのピクチャのうちで関連付けられたピクチャを一意的に識別し、そして、関連付けられたピクチャが復号ピクチャバッファから出力されることになるときに、関連付けられたピクチャの出力順の位置を復号ピクチャバッファから出力されることになる同じCVS中の他のピクチャの出力順位置に対して示す。
−これらのピクチャは、0に等しいnuh_layer_idをもつピクチャに係るアクティブ・シーケンスパラメータセットにおいて、またはそのピクチャのものに等しいnuh_layer_id値に係るアクティブレイヤ・シーケンスパラメータセットにおいて指定された、適合クロッピング・ウィンドウを用いてクロップされ、クロップされたピクチャは、nuh_layer_idの昇順に出力されて、これらのピクチャが「出力に必要とされない」とマーク付けされる。
−「参照に用いられない」とマーク付けされたピクチャを含む各ピクチャ記憶バッファ、およびクロップされて出力されたピクチャのうちの1つを含んでいた各ピクチャ記憶バッファが空にされる。
図9Aを参照すると、前に記載されたように、NALユニットヘッダ・シンタックスは、2バイトのデータ、すなわち、16ビットを含みうる。第1のビットは、NALユニットの先頭で常にゼロにセットされる「forbidden_zero_bit」である。次の6ビットは、NALユニットに含まれるロー・バイト・シーケンス・ペイロード(「RBSP」)データ構造のタイプを指定する「nal_unit_type」である。次の6ビットは、「nuh_reserved_zero_6bits」である。nuh_reserved_zero_6bitsは、規格の基本仕様では0に等しくてもよい。nuh_reserved_zero_6bitsの他の値が所望により指定されてもよい。デコーダは、規格の基本仕様に基づいてストリームを取り扱うときに、0に等しくないnuh_reserved_zero_6bitsの値をもつすべてのNALユニットを無視(すなわち、ビットストリームから取り出して破棄)してもよい。スケーラブルまたは他の拡張では、スケーラブルビデオ符号化および/またはシンタックス拡張をシグナリングするために、nuh_reserved_zero_6bitsが他の値を指定してもよい。いくつかのケースでは、シンタックス要素nuh_reserved_zero_6bitsは、reserved_zero_6bitsと称されてもよい。いくつかのケースでは、シンタックス要素nuh_reserved_zero_6bitsは、図9Bおよび図9Cに示されるように、layer_id_plus1またはlayer_idと称されてもよい。このケースでは、要素layer_idは、layer_id_plus1−1となるであろう。このケースでは、layer_idは、スケーラブル符号化ビデオのレイヤに関する情報をシグナリングするために用いられてもよい。次のシンタックス要素は、「nuh_temporal_id_plus1」である。nuh_temporal_id_plus1−1は、NALユニットに対するテンポラル識別子を指定してもよい。テンポラル識別子変数TemporalIdは、TemporalId=nuh_temporal_id_plus1−1として指定されてもよい。
図10を参照すると、一般的なNALユニット・シンタックス構造が示される。図9のNALユニットヘッダの2バイトのシンタックスは、図10のnal_unit_header()の参照中に含められる。NALユニット・シンタックスの残りの部分は、主にRBSPに関する。
「nuh_reserved_zero_6bits」を用いるための1つの既存技術は、nuh_reserved_zero_6bitsの6ビットを、それぞれがスケーラブル符号化ビデオの異なるレイヤの識別を参照する、別個のビットフィールド、すなわち、依存性ID、品質ID、ビューIDおよび深度フラグのうちの1つ以上に区分することによって、スケーラブルビデオ符号化情報をシグナリングする。それに応じて、この6ビットは、この特定のNALユニットがスケーラブル符号化技術のどのようなレイヤに属するかを示す。次に、データ・ペイロード、例えば、図11に示されるようなビデオパラメータセット(「VPS:video parameter set」)拡張シンタックス(「scalability_type」)において、レイヤについての情報が定義される。図11のVPS拡張シンタックスは、符号化ビデオシーケンスで使用中のスケーラビリティ・タイプを指定するスケーラビリティ・タイプ(シンタックス要素scalability_type)およびlayer_id_plus1(またはlayer_id)を通じてNALユニットヘッダでシグナリングされるディメンジョンに係る4ビットを含む。スケーラビリティ・タイプが0に等しいときに、符号化ビデオシーケンスは、基本仕様に適合し、従って、すべてのNALユニットのlayer_id_plus1が0に等しく、エンハンスメントレイヤまたはビューに属するNALユニットは何もない。スケーラビリティ・タイプの高い方の値は、図12に示されるように解釈される。
layer_id_dim_len[i]は、i番目のスケーラビリティ・ディメンジョンIDの、ビット単位の、長さを指定する。0〜7までの範囲内のすべてのi値に対する値layer_id_dim_len[i]の合計は、6以下である。vps_extension_byte_alignment_reserved_zero_bitは、ゼロである。vps_layer_id[i]は、以下のレイヤ依存性情報が適用されるi番目のレイヤのlayer_idの値を指定する。num_direct_ref_layers[i]は、i番目のレイヤが直接に依存するレイヤの数を指定する。ref_layer_id[i][j]は、i番目のレイヤが直接に依存するj番目のレイヤを識別する。
このように、既存技術は、図12にリストされたスケーラビリティ・タイプ間でビットを割り当てるためにスケーラビリティ識別子をNALユニットおよびビデオパラメータセットでシグナリングする。次に、スケーラビリティ・タイプごとに、いくつのディメンジョンがサポートされるかを図12が定義する。例えば、スケーラビリティ・タイプ1は、2つのディメンジョン(例えば、空間および品質)を有する。それぞれのディメンジョンについて、layer_id_dim_len[i]は、これら2つのディメンジョンのそれぞれに割り当てられるビットの数を定義し、ここでlayer_id_dim_len[i]のすべての値の総和は6以下であり、これは、NALユニットヘッダのnuh_reserved_zero_6bitsにおけるビットの数である。従って、組み合わせで、本技術は、どのタイプのスケーラビリティが使用中であるか、およびNALユニットヘッダの6ビットがどのようにスケーラビリティ間で割り当てられるかを識別する。
図12に示されるような、種々のスケーラビリティ・ディメンジョンのかかる固定された組み合わせは、多くの用途に適するが、含まれていない望ましい組み合わせがある。図13を参照すると、修正されたビデオパラメータセット拡張シンタックスがスケーラビリティ・タイプをnuh_reserved_zero_6bitsシンタックス要素におけるビットごとに指定する。vps_extension_byte_alignment_reserved_zero_bitが0にセットされる。max_num_layers_minus1_bitsは、layer_id_plus1またはnuh_reserved_zero_6bitsと呼ばれる、図9のNALユニットヘッダの最初の2バイトでシンタックス要素に用いられるビットの総数を示す。scalability_map[i]は、layer_id_plus1シンタックス要素におけるビットごとにスケーラビリティ・タイプを指定する。いくつかのケースでは、layer_id_plus1シンタックス要素は、代わりにnuh_reserved_zero_6bitsまたはreserved_zero_6bitsシンタックス要素と称されてもよい。シンタックス要素layer_id_plus1のすべてのビットに係るscalability_mapが符号化ビデオシーケンスにおいて使用中のスケーラビリティを一緒に指定する。それぞれのスケーラビリティ・タイプに対する識別子の実際の値は、NALユニットヘッダ中のlayer_id_plus1(nuh_reserved_zero_6bits)におけるそれらに対応するビットを通じてシグナリングされる。scalability_map[i]がiのすべての値に対して0に等しいときに、符号化ビデオシーケンスは、基本仕様に適合し、従って、NALユニットのlayer_id_plus1値が0に等しく、エンハンスメントレイヤまたはビューに属するNALユニットは何もない。vps_layer_id[i]は、以下のレイヤ依存性情報が適用されるi番目のレイヤのlayer_idの値を指定する。num_direct_ref_layers[i]は、i番目のレイヤが直接に依存するレイヤの数を指定する。ref_layer_id[i][j]は、i番目のレイヤが直接に依存するj番目のレイヤを識別する。
scalability_map[i]の高い方の値は、図14に示されるように解釈される。scalability_map[i]は、(0)何もない、(1)空間、(2)品質、(3)深度、(4)多視点、(5)指定されない、(6)予約される、および(7)予約されるスケーラビリティ・ディメンジョンを含む。
それゆえに、NALユニットヘッダにおける各ビットは、何がスケーラビリティ・ディメンジョンである(例えば、なにもない、空間、品質、深度、多視点、指定されない、予約される)かのビデオパラメータセット中の3ビットに基づいて解釈される。例えば、layer_id_plus1におけるすべてのビットが空間スケーラビリティに対応することをシグナリングするために、VPS中のscalability_map値がNALユニットヘッダの6ビットに対して001 001 001 001 001 001として符号化されてもよい。さらに例えば、layer_id_plus1における3ビットが空間スケーラビリティに対応し、3ビットが品質スケーラビリティに対応することをシグナリングするためには、VPS中のscalability_map値がNALユニットヘッダの6ビットに対して001 001 001 010 010 010として符号化されてもよい。
num_scalability_dimensions_minus1を用いたNALユニットヘッダの6ビットにおけるスケーラビリティ・ディメンジョンの数。num_scalability_dimensions_minus1+1は、layer_id_plus1、nuh_reserved_zero_6bits、および/またはreserved_zero_6bitsシンタックス要素を通じてシグナリングされるスケーラビリティ・ディメンジョンの数を示す。scalability_map[i]は、図13に関して先に記載された同じセマンティクスを有する。num_bits_for_scalability_map[i]は、i番目のスケーラビリティ・ディメンジョンのためのビット単位の長さを指定する。i=0,…num_scalability_dimensions_minus1に係るすべてのnum_bits_for_scalability_map[i]の合計は、6に等しい(またはそうでない場合には、layer_id_plus1、vps_reserved_zero_6bits、max_num_layers_minus1、reserved_zero_6bits、nuh_reserved_zero_6bitsシンタックス要素に用いられるビットの数に等しい)。
図13および図15については、所望により、他の変形形態が用いられてもよい。例えば一実施形態において、scalability_map[i]がu(4)(またはn>3もしくはn<3のu(n))を用いてシグナリングされてもよい。このケースでは、scalability_map[i]の高い方の値がビデオ技術の特定のプロファイルに適合するビットストリームのために予約されるとして指定されてもよい。例えば、u(4)を用いてscalability_map[i]をシグナリングするときに、スケーラビリティ・マップ値6…15が「予約される」として指定されてもよい。例えば別の実施形態では、ue(v)または他の何らかの符号化方式を用いてscalability_map[i]がシグナリングされてもよい。例えば別の実施形態では、scalability_map[i]値が単調な非降順(または非昇順)に配列されるように制限が指定されてもよい。これは、NALユニットヘッダ中のlayer_id_plus1フィールドにおいて様々なスケーラビリティ・ディメンジョン・フィールが切れ目なく連続することにつながる。
「layer_id_plus1」または「nuh_reserved_zero_6bits」シンタックス要素を用いてスケーラブルビデオ符号化をシグナリングするための別の既存技術は、ビデオパラメータセットで一般的なルックアップテーブルをシグナリングすることによって、NALユニットヘッダにおけるlayer_id_plus1をある1つのレイヤ識別へマッピングする。図16を参照すると、既存技術は、ルックアップテーブルのi番目のレイヤに関してディメンジョン・タイプおよびディメンジョン識別の数を指定するビデオパラメータセットを含む。特に、vps_extension_byte_alignment_reserved_zero_bitは0である。num_dimensions_minus1[i]+1は、i番目のレイヤに関するディメンジョン・タイプ(dimension_type[i][j])およびディメンジョン識別子(dimension_id[i][j])の数を指定する。dimension_type[i][j]は、iに等しいlayer_idまたはlayer_id_plus1を有する、i番目のレイヤのj番目のスケーラビリティ・ディメンジョン・タイプを指定する。図17に示されるように、識別されるディメンジョンは、(0)ビュー順idx、(1)深度フラグ、(2)依存性ID、(3)品質ID、(4)〜(15)予約されるを含む。dimension_id[i][j]は、存在しないときに0であると推測される、i番目のレイヤのj番目のスケーラビリティ・ディメンジョン・タイプの識別子を指定する。num_direct_ref_layers[i]は、i番目のレイヤが直接に依存するレイヤの数を指定する。ref_layer_id[i][j]は、i番目のレイヤが直接に依存するj番目のレイヤを識別する。残念なことに、図16に示される提案された実施形態は、扱いにくい大きなルックアップテーブルをもたらす。
図18を参照すると、修正されたビデオパラメータセット拡張は、スケーラビリティ・ディメンジョンと組み合わせて用いられるスケーラビリティ・マスクを含む。scalability_maskは、図19のスケーラビリティ・マップ・シンタックスによって示されるように、各ビットが1つのスケーラビリティ・ディメンジョンに対応する0および1のパターンをシグナリングする。個別のスケーラビリティ・ディメンジョンに関する1の値は、このスケーラビリティ・ディメンジョンがこのレイヤ(i番目のレイヤ)中に存在することを示す。個別のスケーラビリティ・ディメンジョンに関する0の値は、このスケーラビリティ・ディメンジョンがこのレイヤ(i番目のレイヤ)中に存在しないことを示す。例えば、00100000のビットのセットは、品質スケーラビリティを指す。存在する個別のスケーラビリティ・ディメンジョンの実際の識別子値は、シグナリングされるscalability_id[j]値によって示される。num_scalability_types[i]の値は、1の値を有するscalability_maskにおけるビットの数の合計に等しい。従って、
scalability_id[j]は、scalability_mask値によってシグナリングされるスケーラビリティ値のタイプに関してj番目のスケーラビリティ・ディメンジョンの識別子値を示す。
図20を参照すると、図18の修正形態がループ外でシグナリングされるスケーラビリティ・マスクを含む。これは、レイヤ識別ごとに1つの共通マスクをもたらす。図21を参照すると、この修正形態では、対応する例示的なビデオパラメータセットは、スケーラビリティ・マスクが含まれないスケーラブル識別を含みうる。このケースでは、シンタックス要素scalable_id[j]は、図18におけるシンタックス要素scalability_id[j]と同じ解釈を有する。
図22を参照すると、図18の修正形態は、ループ外でシグナリングされるスケーラビリティ・マスク(scalability_mask)を含む。これは、レイヤ識別ごとに1つの共通マスクをもたらす。scalability_maskは、図23のスケーラビリティ・マップ・シンタックスによって示されるように、各ビットが1つのスケーラビリティ・ディメンジョンに対応する0および1のパターンをシグナリングする。個別のスケーラビリティ・ディメンジョンに関する1の値は、このスケーラビリティ・ディメンジョンがこのレイヤ(i番目のレイヤ)中に存在することを示す。個別のスケーラビリティ・ディメンジョンに関する0の値は、このスケーラビリティ・ディメンジョンがこのレイヤ(i番目のレイヤ)中に存在しないことを示す。例えば、00100000のビットのセットは、品質スケーラビリティを指す。存在する個別のスケーラビリティ・ディメンジョンの実際の識別子値は、シグナリングされるscalability_id[j]値によって示される。num_scalability_types[i]の値は、1の値を有するscalability_maskにおけるビットの数の合計に等しい。従って、
このケースでは、scalability_id[j]変数は、代わりにdimension_id[i][j]変数と称されてもよい。dimension_id[i][j]は、i番目のレイヤのj番目のスケーラビリティ・ディメンジョンのスケーラビリティ識別子を指定する。次に、変数ScalabilityId[i][j]が次のように導出される。
ここで、ScalabilityId[i][k]は、対応するスケーラビリティ・タイプに関するディメンジョンIDを次のようにシグナリングする。
ここで、DependencyId[i][1]は、i番目のレイヤに関する空間スケーラビリティ・ディメンジョンに係る依存性IDであり、QualityId[i][2]は、i番目のレイヤに関する品質スケーラビリティ・ディメンジョンに係る品質IDであり、depthFlag[i][3]は、i番目のレイヤに関する深度スケーラビリティ・ディメンジョンに係る深度フラグ/深度IDであり、ViewId[i][4]は、i番目のレイヤに関する多視点スケーラビリティ・ディメンジョンに係るビューIDである。さらに、図22において、1に等しいavc_base_codec_flagは、ベースレイヤがRecに適合することを指定する。ITU−T H.264|ISO/IEC14496−10、および1に等しいavc_base_codec_flagは、HEVCに対して指定する。vps_nuh_layer_id_presnet_flagは、layer_idの値をNALユニットヘッダでシグナリングするlayer_id_in_nuh[i]変数がシグナリングされるかどうかを示す。
別の実施形態では、シンタックス要素scalability_mask[i]、scalability_mask、scalability_id[j]のうちの1つ以上がu(8)とは異なるビット数を用いてシグナリングされてもよい。例えば、u(16)(またはn>8もしくはn<8のu(n))を用いてそれらをシグナリングできるであろう。例えば、ue(v)を用いてこれらのシンタックス要素のうちの1つ以上をシグナリングできるであろう。別の実施形態では、scalability_maskは、NALユニットヘッダにおいてlayer_id_plus1、vps_reserved_zero_6bits、max_num_layers_minus1、reserved_zero_6bits、および/またはnuh_reserved_zero_6bitsシンタックス要素でシグナリングされてもよい。いくつかの実施形態において、システムは、VPS NALユニットに対してのみ、もしくはnon−VPS NALユニットに対してのみ、またはすべてのNALユニットに対してこれを行ってもよい。さらに別の実施形態では、scalability_maskは、ビットストリーム中のどこでもピクチャごとにシグナリングされてもよい。例えば、scalability_maskは、スライスヘッダ、ピクチャパラメータセット、ビデオパラメータセット、もしくその他のパラメータセットまたはビットストリームのその他の規範的な部分でシグナリングされてもよい。
留意すべきは、図9のNALユニットヘッダにおけるシンタックス要素nuh_reserved_zero_6bitsまたはlayer_id_plus1が6ビットを有するので、図9、11、14、16、17、18、19、および対応する記載が6ビットに言及することである。しかしながら、そのシンタックス要素が6ビットとは異なるビット数を用いたのであれば、すべての先の記載を適宜に修正できる。例えば、そのシンタックス要素(nuh_reserved_zero_6bitsまたはlayer_id_plus1)が代わりに9ビットを用いたのであれば、図13においてmax_num_layer_minus1ビットの値が9になり、scalability_map[i]は、6ビットではなく9ビットごとにシグナリングされるであろう。
図20を参照すると、図18の修正形態がレイヤ依存性情報をシグナリングするためのシンタックスを提供する。新しいシンタックス要素layer_dependency_information_patternが定義される。
layer_dependency_information_patternは、長さがvps_max_layers_minus1に等しい0および1ビットのパターンをシグナリングする。i番目のビットに関する0の値は、layer_id(i+1)をもつレイヤが独立レイヤであることを示す。i番目のビットに関する1の値は、layer_id(i+1)をもつレイヤが1つ以上の他のレイヤに依存する従属レイヤであることを示す。NumDepLayersの値は、1の値を有するlayer_dependency_information_patternにおけるビットの数の合計に等しい。従って、
図25を参照すると、図22の修正形態がレイヤ依存性情報をシグナリングするためのシンタックスを提供する。新しいシンタックス要素layer_dependency_flag[i]が定義される。layer_dependency_flag[i]は、ある1つのレイヤが他のレイヤに依存するかどうかをシグナリングする。このフラグに関する0の値は、layer_id iをもつレイヤが独立レイヤであることを示す。i番目のビットに関する1の値は、layer_id iをもつレイヤが従属レイヤであることを示す。
図26を参照すると、図22の修正形態がレイヤ依存性情報をシグナリングするためのシンタックスを提供する。新しいシンタックス要素layer_dependency_map[i]が定義される。layer_dependency_map[i]は、長さがvps_max_layers_minus1に等しい0および1ビットのパターンをシグナリングする。layer_dependency_map[i]のk番目のビットに関する0の値は、レイヤiがlayer_id(k+1)をもつレイヤに依存しないことを示す。layer_dependency_map[i]のk番目のビットに関する1の値は、レイヤiがlayer_id(k+1)をもつレイヤに依存することを示す。
図27を参照すると、図22の修正形態がレイヤ依存性情報をシグナリングするためのシンタックスを提供する。新しいシンタックス要素layer_dependency_information_patternが定義される。layer_dependency_information_patternは、長さがvps_max_layers_minus1に等しい0および1ビットのパターンをシグナリングする。i番目のビットに関する0の値は、layer_id(i+1)をもつレイヤが独立レイヤであることを示す。i番目のビットに関する1の値は、layer_id(i+1)をもつレイヤが1つ以上の他のレイヤに依存する従属レイヤであることを示す。NumDepLayersの値は、1の値を有するlayer_dependency_information_patternにおけるビットの数の合計に等しい。従って、
layer_dependency_map[i]は、長さがvps_max_layers_minus1に等しい0および1ビットのパターンをシグナリングする。layer_dependency_map[i]のk番目のビットに関する0の値は、レイヤiがlayer_id(k+1)をもつレイヤに依存しないことを示す。layer_dependency_map[i]のk番目のビットに関する1の値は、レイヤiがlayer_id(k+1)をもつレイヤに依存することを示す。
図28を参照すると、図22の修正形態がレイヤ依存性情報をシグナリングするためのシンタックスを提供する。図24は、図23におけるシンタックスに基づく変形例のシンタックスである。新しいシンタックス要素layer_dependency_information_patternが定義される。
layer_dependency_information_patternは、長さがvps_max_layers_minus1に等しい0および1ビットのパターンをシグナリングする。i番目のビットに関する0の値は、layer_id(i+1)をもつレイヤが独立レイヤであることを示す。i番目のビットに関する1の値は、layer_id(i+1)をもつレイヤが1つ以上の他のレイヤに依存する従属レイヤであることを示す。
NumDepLayersの値は、1の値を有するlayer_dependency_information_patternにおけるビットの数の合計に等しい。従って、
シンタックス要素num_direct_ref_layers[i]およびref_layer_[i][j]は、layer_dependency_information_pattern(i)が1の値を有するときにのみシグナリングされる。ここで、layer_depdndency_information_pattern(i)は、シンタックス要素layer_dependency_patternのi番目のビットである。
図29を参照すると、図22の修正形態がレイヤ依存性情報をシグナリングするためのシンタックスを提供する。図25は、図27におけるシンタックスに基づく変形例のシンタックスである。新しいシンタックス要素layer_dependency_information_patternが定義される。
layer_dependency_information_patternは、長さがvps_max_layers_minus1に等しい0および1ビットのパターンをシグナリングする。i番目のビットに関する0の値は、layer_id(i+1)をもつレイヤが独立レイヤであることを示す。i番目のビットに関する1の値は、layer_id(i+1)をもつレイヤが1つ以上の他のレイヤに依存する従属レイヤであることを示す。
NumDepLayersの値は、1の値を有するlayer_dependency_information_patternにおけるビットの数の合計に等しい。従って、
layer_dependency_map[i]は、長さがvps_max_layers_minus1に等しい0および1ビットのパターンをシグナリングする。layer_dependency_map[i]のk番目のビットに関する0の値は、レイヤiがlayer_id(k+1)をもつレイヤに依存しないことを示す。layer_dependency_map[i]のk番目のビットに関する1の値は、レイヤiがlayer_id(k+1)をもつレイヤに依存することを示す。シンタックス要素layer_dependency_map[i]は、layer_dependency_information_pattern(i)が1の値を有するときにのみシグナリングされる。ここで、layer_depdndency_information_pattern(i)は、シンタックス要素layer_dependency_patternのi番目のビットである。
別の実施形態では、layer_dependency_information_patternシンタックス要素が1ビット・フラグ値のセットとしてシグナリングされてもよい。このケースでは、全部のvps_max_layers_minus1 1ビット値が次のようにシグナリングされるであろう、すなわち、
for(i=1;i<=vps_max_layers_minus1;i++)
{
layer_dependency_information_pattern_flags[i];
}
別の実施形態では、layer_dependency_map[i]シンタックス要素は、1ビット・フラグ値のセットとしてシグナリングされてもよい。このケースでは、全部のvps_max_layers_minus1 1ビット値が次のようにシグナリングされるであろう、すなわち、
for(j=1;j<=vps_max_layers_minus1;j++)
{
layer_dependency_map_values[i][j];
}
別の実施形態では、シンタックス要素layer_dependency_information_pattern、layer_dependency_mapのうちの1つ以上がu(v)の代わりに既知の固定ビット数を用いてシグナリングされてもよい。例えば、u(64)を用いてそれらをシグナリングできるであろう。
別の実施形態では、シンタックス要素layer_dependency_information_pattern、layer_dependency_mapのうちの1つ以上がue(v)または他の何らかの符号化方式を用いてシグナリングされてもよい。
別の実施形態では、様々なシンタックス要素およびそれらのセマンティクスの名前は、記載されたシンタックスおよびセマンティクスと比較して+1もしくは+2を加えるか、または−1もしくは−2を減じることによって変えられてもよい。
さらに別の実施形態では、様々なシンタックス要素、例えば、layer_dependency_information_pattern、layer_dependency_map、layer_dependency_flag[i]などがビットストリーム中のどこでもピクチャごとにシグナリングされてもよい。例えば、様々なシンタックスがスライスヘッダ、pps/sps/vps/apsもしくはその他のパラメータセットまたはビットストリームの他の規範的な部分でシグナリングされてもよい。
先に記載されたように、スケーラブルビデオ符号化は、1つ以上のサブセット・ビットストリームも含むビデオビットストリームを符号化する技術である。サブセット・ビデオビットストリームは、サブセット・ビットストリームに要求されるバンド幅を削減すべくより大きいビデオからパケットを落とすことによって導出されてもよい。サブセット・ビットストリームは、より低い空間分解能(より小さいスクリーン)、より低い時間分解能(より低いフレームレート)、またはより低い品質のビデオ信号を表現してもよい。例えば、ある1つのビデオビットストリームは、それぞれのサブセット・ビットストリームがベース・ビットストリームに追加のコンテンツを加えた、5つのサブセット・ビットストリームを含んでもよい。ハンヌクセラら,「高効率ビデオ符号化(HEVC)のスケーラブルな拡張のためのテストモデル(Test Model for Scalable Extensions of High Efficiency Video Coding(HEVC))」JCTVC−L0453,上海,2012年10月は、参照によりその全体が本明細書に組み込まれる。チェンら,「SHVC草案テキスト1」,JCTVC−L1008,ジュネーブ,2013年3月は、参照によりその全体が本明細書に組み込まれる。
先に記載されたように、多視点ビデオ符号化は、代わりのビューを表現する1つ以上の他のビットストリームも含むビデオビットストリームを符号化する技術である。例えば、マルチプルビューは、立体ビデオのための1対のビューであってもよい。例えば、マルチプルビューは、異なる視点からの同じ光景の複数のビューを表現してもよい。マルチプルビューは、複数の画像が異なる視点からの同じ光景なので、一般に、多くの統計的なビュー間依存性を含む。それゆえに、時間およびビュー間予測の組み合わせが効率的な多視点符号化を達成するであろう。例えば、ある1つのフレームが、時間的に関連するフレームからのみならず、近接した複数の視点のフレームからも効率的に予測されてもよい。ハンヌクセラら,「スケーラブルおよび多視点拡張に関する共通仕様テキスト(Common specification text for scalable and multi−view extensions)」,JCTVC−L0452,ジュネーブ,2013年1月は、参照によりその全体が本明細書に組み込まれる。テックら,「MV−HEVC草案テキスト3(ISO/IEC23008−2:201x/PDAM2)」,JCT3V−C1004_d3,ジュネーブ,2013年1月は、参照によりその全体が本明細書に組み込まれる。
チェンら,「SHVC草案テキスト1」,JCTVC−L1008,ジュネーブ,2013年1月、ハンヌクセラら,「高効率ビデオ符号化(HEVC)のスケーラブルな拡張のためのテストモデル」,JCTVC−L0453−spec−text,上海,2012年10月、およびハンヌクセラ,「高効率ビデオ符号化(HEVC)の多視点拡張に関する草案テキスト(Draft Text for Multiview Extension of High Efficiency Video Coding(HEVC))」,JCTVC−L0452−spec−text−r1,上海,2012年10月は、それぞれが参照によりその全体が本明細書に組み込まれ、それぞれが、DPBからのピクチャ0の出力およびリムーバルのためにsps_max_num_reorder_pics[HighestTid]、sps_max_latency_increase_plus1[HighestTid]およびsps_max_dec_pic_buffering[HighestTid]シンタックス要素を用いることに基づいて動作する、出力順復号ピクチャバッファ(DPB)を有する。この情報は、もしあれば、エンハンスメントレイヤを含んだビデオコンテンツに関するバッファリング情報を提供する、ベースレイヤに係るビデオパラメータセットでシグナリングされる。
判断されたことは、DPBからのピクチャの出力およびリムーバルのためにsps_max_num_reorder_pics[HighestTid]、sps_max_latency_increase_plus1[HighestTid]およびsps_max_dec_pic_buffering[HighestTid]シンタックス要素を用いることに基づいて出力順復号ピクチャバッファ(DPB)をシグナリングするステップが、ユーザの視聴の好みに基づいてコンテンツが符号化された後に変動しがちな異なる数のエンハンスメントレイヤを用いたとき、およびユーザの視聴の好みに基づいてコンテンツが符号化された後に変動しがちな異なる数の多視点エンハンスメントレイヤを用いたときなどにスケーラブルビデオ符号化から生じうる、バッファ特性を考慮しないということである。同様に判断されたのは、DPBからのピクチャの出力およびリムーバルのためにsps_max_num_reorder_pics[HighestTid]、sps_max_latency_increase_plus1[HighestTid]およびsps_max_dec_pic_buffering[HighestTid]シンタックス要素を用いることに基づいて出力順復号ピクチャバッファ(DPB)をシグナリングするステップが、デコーダがある一定の動作点で動作するとき、および/または選択された出力レイヤセットを出力しているときのDPBのメモリ使用法の観点から最適ではないということである。視聴の好みのかかる違いに対応するために、出力順復号ピクチャバッファ(DPB)は、さらにおよび/または代わりに、複数のシンタックス要素を1つ以上のエンハンスメントレイヤに提供するためにビデオパラメータセット拡張(VPS拡張)とともに含まれるかかるシンタックス要素に基づいてもよい。このように、これらのシンタックス要素は、ユーザの視聴の好みに対応しがちな特定の動作点または出力レイヤセットに特に適するように選択されてもよい。
DPBバッファリング関連パラメータ、vps_max_dec_pic_buffering_minus1、vps_max_num_reorder_pics、vps_max_latency_increase_plus1が1つ以上の動作点に係るCVSのためのサブレイヤに関して、および/または出力レイヤセットに関してVPS拡張でシグナリングされてもよい。同様に、上記のシグナリングされるDPBバッファリング・パラメータが被テスト動作点に関して、または選択された出力レイヤセットに関してシグナリングされるならば、出力順DPBがそれらのパラメータをVPS拡張から用いるための動作およびバンピング処理をシステムが定義してもよい。そうでない場合には、現レイヤのlayer_idに依存して、(現ピクチャのnuh_layer_idに対応するcurrLayerIdが0に等しいときには)アクティブSPSからの、またはアクティブレイヤSPSからの対応するSPSレベル・パラメータが用いられる。
図30Aを参照すると、例示的な修正されたvps_extensionが示される。修正されたvps拡張は、新しいシンタックス、すなわち、num_op_dpb_info_parametersおよびoperation_point_layer_set_idx[i]を含む。この修正されたvps拡張は、動作点の観点から定義されてもよく、動作点とは、入力として別のビットストリーム、ターゲットとする最も高いTemporalId、およびターゲットとするレイヤ識別子リストを用いてサブビットストリーム抽出処理の動作によってその別のビットストリームから作り出されたある1つのビットストリームである。
num_output_layer_setsは、それに係る出力レイヤがoutput_layer_set_index[i]およびoutput_layer_flag[lsIdx][j]を用いて指定されたレイヤセットの数を指定する。存在しないときに、num_output_layer_setsの値は、0に等しいと推測される。出力レイヤを記述するレイヤセットが出力レイヤセットである。
output_layer_set_index[i]は、output_layer_flag[lsIdx][j]が存在するレイヤセットのインデックスlsIdxを指定する。
1に等しいoutput_layer_flag[lsIdx][j]は、jに等しいnuh_layer_idをもつレイヤがlsIdx番目のレイヤセットのターゲット出力レイヤであることを指定する。0に等しいoutput_layer_flag[lsIdx][j]の値は、jに等しいnuh_layer_idをもつレイヤがlsIdx番目のレイヤセットのターゲット出力レイヤではないことを指定する。
num_op_dpb_info_parametersは、動作点の観点から定義された、VPS拡張RBSP中に存在するop_dpb_parameters()シンタックス構造の数を指定する。num_op_dpb_info_parametersデコーダは、両端値を含めて、0からvps_num_layer_sets_minus1までの範囲内にある。
operation_point_layer_set_idx[i]は、動作点によって定義されたレイヤセットのリストへのインデックスを指定し、このインデックスにはVPS拡張におけるi番目のop_dpb_info_parameters()シンタックス構造が適用される。operation_point_layer_set_idx[i]の値は、両端値を含めて、0からvps_num_layer_sets_minus1までの範囲内にありうる。ビットストリーム適合性のために、operation_point_layer_set_idx[i]は、iに等しくない任意のjに対してoperation_point_layer_set_idx[j]には等しくない。
図31Aを参照すると、op_dpb_info_parametersは、vps_max_sub_layers_minus1[j]、vps_sub_layer_ordering_info_present_flag[j]、vps_max_dec_pic_buffering_minus1[j][k]、vps_max_num_reorder_pics[j][k]、およびvps_max_latency_increase_plus1[j][k]を指定する。
vps_max_sub_layers_minus1[j]+1は、いくつのサブレイヤが含まれるかを示す。vps_max_sub_layers_minus1[j]+1は、jに等しいnuh_layer_idをもつレイヤに係るCVS中に存在しうるテンポラル・サブレイヤの最大数を指定する。vps_max_sub_layers_minus1[j]の値は、両端値を含めて、0から6までの範囲内にある。
vps_sub_layer_ordering_info_present_flag[j]は、シンタックスがすべてのレイヤを含んだ1つのセットに関するか、または各個別レイヤに関するかどうかを示す。1に等しいvps_sub_layer_ordering_info_present_flag[j]は、vps_max_dec_pic_buffering_minus1[j][k]、vps_max_num_reorder_pics[j][k]、およびvps_max_latency_increase_plus1[j][k]が、vps_max_sub_layers_minus1[j]+1個のサブレイヤに係るjに等しいnuh_layer_idをもつレイヤに対して存在することを指定する。0に等しいvps_sub_layer_ordering_info_present_flag[j]は、vps_max_dec_pic_buffering_minus1[j][vps_max_sub_layers_minus1[j]]、vps_max_num_reorder_pics[j][vps_max_sub_layers_minus1[j]]、およびvps_max_latency_increase_plus1[j][vps_max_sub_layers_minus1[j]]の値が、jに等しいnuh_layer_idをもつレイヤのためのすべてのサブレイヤに適用されることを指定する。
vps_max_dec_pic_buffering_minus1[j][k]+1は、HighestTidがkに等しいときにピクチャ記憶バッファの単位でjに等しいnuh_layer_idをもつレイヤに係るCVSのための復号ピクチャバッファの最大所要サイズを指定する。vps_max_dec_pic_buffering_minus1[j][k]の値は、両端値を含めて、(A.4項において指定されるように)0からMaxDpbSize−1までの範囲内にありうる。kが0より大きいときに、vps_max_dec_pic_buffering_minus1[j][k]は、vps_max_dec_pic_buffering_minus1[j][k−1]以上であってもよい。vps_sub_layer_ordering_info_present_flag[j]が0に等しいことに起因して、vps_max_dec_pic_buffering_minus1[j][k]が、両端値を含めて、0からvps_max_sub_layers_minus1[j]−1までの範囲内のkに対して存在しないときに、vps_max_dec_pic_buffering_minus1[j][k]は、vps_max_dec_pic_buffering_minus1[j][vps_max_sub_layers_minus1[j]]に等しいと推測される。
vps_max_num_reorder_pics[j][k]は、HighestTidがkに等しいときに復号順ではjに等しいnuh_layer_idをもつレイヤに係るCVS中の任意のピクチャに先行し、かつ出力順ではそのピクチャの後に続くことができるピクチャの最大許容数を示す。vps_max_num_reorder_pics[j][k]の値は、両端値を含めて、0からvps_max_dec_pic_buffering_minus1[j][k]までの範囲内にありうる。kが0より大きいときに、vps_max_num_reorder_pics[j][k]は、vps_max_num_reorder_pics[j][k−1]以上である。vps_sub_layer_ordering_info_present_flag[j]が0に等しいことに起因して、vps_max_num_reorder_pics[j][k]が、両端値を含めて、0からvps_max_sub_layers_minus1[j]−1までの範囲内のkに対して存在しないときに、vps_max_num_reorder_pics[j][k]は、vps_max_num_reorder_pics[j][vps_max_sub_layers_minus1[j]]に等しいと推測される。
0に等しくないvps_max_latency_increase_plus1[j][k]は、HighestTidがkに等しいときに出力順ではjに等しいnuh_layer_idをもつレイヤに係るCVS中の任意のピクチャに先行し、かつ復号順ではそのピクチャの後に続くことができるピクチャの最大数を指定する、VpsMaxLatencyPictures[j][k]の値を計算するために用いられる。
vps_max_latency_increase_plus1[j][k]が0に等しくないときに、VpsMaxLatencyPictures[j][k]の値は、次のように指定されてもよい、すなわち、
VpsMaxLatencyPictures[j][k]=vps_max_num_reorder_pics[j][k]+vps_max_latency_increase_plus1[j][k]−1
vps_max_latency_increase_plus1[j][k]が0に等しいときには、対応する制限は何も表現されない。
vps_max_latency_increase_plus1[j][k]の値は、両端値を含めて、0から232−2までの範囲内にある。vps_sub_layer_ordering_info_present_flag[j]が0に等しいことに起因して、vps_max_latency_increase_plus1[j][k]が、両端値を含めて、0からvps_max_sub_layers_minus1[j]−1までの範囲内のkに対して存在しないときに、vps_max_latency_increase_plus1[j][k]は、vps_max_latency_increase_plus1[j][vps_max_sub_layers_minus1[j]]に等しいと推測される。
vps_max_sub_layers_minus1[id][j]+1は、インデックスidと関連付けられた動作点に関してjに等しいnuh_layer_idをもつレイヤに係るCVS中に存在しうるテンポラル・サブレイヤの最大数を指定する。vps_max_sub_layers_minus1[id][j]の値は、両端値を含めて、0から6までの範囲内にありうる。
1に等しいvps_sub_layer_ordering_info_present_flag[id][j]は、vps_max_dec_pic_buffering_minus1[id][j][k]、vps_max_num_reorder_pics[id][j][k]、およびvps_max_latency_increase_plus1[id][j][k]が、vps_max_sub_layers_minus1[id][j]+1個のサブレイヤのインデックスidと関連付けられた動作点に関してjに等しいnuh_layer_idをもつレイヤに対して存在することを指定する。0に等しいvps_sub_layer_ordering_info_present_flag[id][j]は、vps_max_dec_pic_buffering_minus1[id][j][vps_max_sub_layers_minus1[id][j]]、vps_max_num_reorder_pics[id][j][vps_max_sub_layers_minus1[id][j]]、およびvps_max_latency_increase_plus1[id][j][vps_max_sub_layers_minus1[id][j]]が、インデックスidと関連付けられた動作点に関してjに等しいnuh_layer_idをもつレイヤのためのすべてのサブレイヤに適用されることを指定する。
vps_max_dec_pic_buffering_minus1[id][j][k]+1は、HighestTidがkに等しいときにピクチャ記憶バッファの単位で、インデックスidと関連付けられた動作点に関してjに等しいnuh_layer_idをもつレイヤに係るCVSのための復号ピクチャバッファの最大所要サイズを指定する。vps_max_dec_pic_buffering_minus1[id][j][k]の値は、両端値を含めて、(A.4項に指定されるように)0からMaxDpbSize−1までの範囲内にありうる。kが0より大きいときに、vps_max_dec_pic_buffering_minus1[id][j][k]は、vps_max_dec_pic_buffering_minus1[id][j][k−1]以上であってもよい。vps_sub_layer_ordering_info_present_flag[id][j]が0に等しいことに起因して、vps_max_dec_pic_buffering_minus1[id][j][k]が、両端値を含めて、0からvps_max_sub_layers_minus1[id][j]−1までの範囲内のkに対して存在しないときに、vps_max_dec_pic_buffering_minus1[id][j][k]は、vps_max_dec_pic_buffering_minus1[id][j][vps_max_sub_layers_minus1[id][j]]に等しいと推測される。
vps_max_num_reorder_pics[id][j][k]は、HighestTidがkに等しいときに復号順ではインデックスidと関連付けられた動作点に関してjに等しいnuh_layer_idをもつレイヤに係るCVS中の任意のピクチャに先行し、かつ出力順ではそのピクチャの後に続くことができるピクチャの最大許容数を示す。vps_max_num_reorder_pics[id][j][k]の値は、両端値を含めて、0からvps_max_dec_pic_buffering_minus1[id][j][k]までの範囲内にありうる。kが0より大きいときに、vps_max_num_reorder_pics[id][j][k]は、vps_max_num_reorder_pics[id][j][k−1]以上であってもよい。vps_sub_layer_ordering_info_present_flag[id][j]が0に等しいことに起因して、vps_max_num_reorder_pics[id][j][k]が、両端値を含めて、0からvps_max_sub_layers_minus1[id][j]−1までの範囲内のkに対して存在しないときに、vps_max_num_reorder_pics[id][j][k]は、vps_max_num_reorder_pics[id][j][vps_max_sub_layers_minus1[id][j]]に等しいと推測される。
0に等しくないvps_max_latency_increase_plus1」[id][j][k]は、HighestTidがkに等しいときに出力順ではインデックスidと関連付けられた動作点に関してjに等しいnuh_layer_idをもつレイヤに係るCVS中の任意のピクチャに先行し、かつ復号順ではそのピクチャの後に続くことができるピクチャの最大数を指定する、VpsMaxLatencyPictures[id][j][k]の値を計算するために用いられる。
vps_max_latency_increase_plus1[id][j][k]が0に等しくないときに、VpsMaxLatencyPictures[id][j][k]の値は、次のように指定される、すなわち、
vps_max_latency_increase_plus1[id][j][k]が0に等しいときには、対応する制限は、何も表現されない。
vps_max_latency_increase_plus1[id][j][k]の値は、両端値を含めて、0から232−2までの範囲内にありうる。vps_sub_layer_ordering_info_present_flag[id][j]が0に等しいことに起因して、vps_max_latency_increase_plus1[id][j][k]が、両端値を含めて、0からvps_max_sub_layers_minus1[id][j]−1までの範囲内のkに対して存在しないときに、vps_max_latency_increase_plus1[id][j][k]は、vps_max_latency_increase_plus1[id][j][vps_max_sub_layers_minus1[id][j]]に等しいと推測される。
図31Bを参照すると、op_dpb_info_parametersは、示されるようにop_dpb_info_parameters(id,j)へさらに修正されてもよい。このケースでは、VPS拡張のシンタックスが図30Bに示される通りであってもよい。仮想参照デコーダ(HRD)は、ビットストリームおよびデコーダ適合性をチェックするために用いられる。2つのタイプのビットストリームまたはビットストリーム・サブセットがビデオ符号化に関する共同作業チーム(JCT−VC)についてHRD適合性チェックを受ける。タイプIビットストリームと称される第1のタイプは、ビットストリーム中のすべてのアクセスユニットに関してVCL NALユニットおよびFD_NUTに等しいnal_unit_typeをもつNALユニット(フィラーデータNALユニット)のみを含んだNALユニット・ストリームである。タイプIIビットストリームと称される第2のタイプは、ビットストリーム中のすべてのアクセスユニットに関するVCL NALユニットおよびフィラーデータNALユニットに加えて、(a)フィラーデータNALユニット以外の追加のnon−VCL NALユニット、および(b)NALユニット・ストリームからバイト・ストリームを形成するすべてのleading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、trailing_zero_8bitsシンタックス要素のうちの少なくとも1つを含む。
HRDに必要とされる、non−VCL NALユニットのシンタックス要素(またはシンタックス要素のうちのいくつかについてのそれらのデフォルト値)は、付属書DおよびE、7節のセマンティック項において指定される。
2つのタイプのHRDパラメータセット(NAL HRDパラメータセットおよびVCL HRDパラメータセット)が用いられる。HRDパラメータセットは、SPSシンタックス構造またはVPSシンタックス構造の一部であってもよいhrd_parameters()シンタックス構造を通じてシグナリングされる。
被テスト・ビットストリームと呼ばれるビットストリームの適合性をチェックするために複数のテストが必要とされることがある。テストごとに、次のステップがリストされた順に適用される、すなわち、
(1)TargetOpと表される、被テスト動作点が選択される。TargetOpのレイヤ識別子リストOpLayerIdListは、被テスト・ビットストリーム中に存在するnuh_layer_id値のサブセットであり、TargetOpと関連付けられたビットストリーム・サブセット中に存在する、nuh_layer_id値の昇順の、nuh_layer_id値のリストからなる。TargetOpのOpTidは、TargetOpと関連付けられたビットストリーム・サブセット中に存在する最も高いTemporalIdに等しい。
(2)TargetDecLayerIdListがTargetOpのOpLayerIdListに等しくセットされ、HighestTidがTargetOpのOpTidに等しくセットされて、10節において指定されるようなサブビットストリーム抽出処理が入力として被テスト・ビットストリーム、HighestTid、およびTargetDecLayerIdListを用いて起動され、出力がBitstreamToDecodeへ割り当てられる。
(3)TargetOpに適用可能なhrd_parameters()シンタックス構造およびsub_layer_hrd_parameters()シンタックス構造が選択される。TargetDecLayerIdListが被テスト・ビットストリーム中に存在するすべてのnuh_layer_id値を含むならば、アクティブSPS中の(またはこの仕様では指定されない外部手段を通じて提供された)hrd_parameters()シンタックス構造が選択される。そうでない場合には、TargetOpに適用されるアクティブVPS中の(またはこの仕様では指定されない何かの外部手段を通じて提供された)hrd_parameters()シンタックス構造が選択される。選択されたhrd_parameters()シンタックス構造内において、BitstreamToDecodeがタイプIビットストリームであれば、条件「if(vcl_hrd_parameters_present_flag)」のすぐ後に続くsub_layer_hrd_parameters(HighestTid)シンタックス構造が選択されて、変数NalHrdModeFlagが0に等しくセットされる、そうでない(BitstreamToDecodeがタイプIIビットストリームである)場合には、条件「if(vcl_hrd_parameters_present_flag)」(このケースでは、変数NalHrdModeFlagが0に等しくセットされる)か、または条件「if(nal_hrd_parameters_present_flag)」(このケースでは、変数NalHrdModeFlagが1に等しくセットされる)のいずれかのすぐ後に続くsub_layer_hrd_parameters(HighestTid)シンタックス構造が選択される。BitstreamToDecodeがタイプIIビットストリームであり、NalHrdModeFlagが0に等しいときには、フィラーデータNALユニットを除くすべてのnon−VCL NALユニット、および(付属書Bにおいて指定されるように)NALユニット・ストリームからバイト・ストリームを形成するすべてのleading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、およびtrailing_zero_8bitsシンタックス要素が、存在するときには、BitstreamToDecodeから破棄されて、残りのビットストリームがBitstreamToDecodeへ割り当てられる。
別のケースでは、被テスト・ビットストリームと呼ばれるビットストリームの適合性をチェックするために複数のテストが必要とされることがある。テストごとに、次のステップがリストされた順に適用される、すなわち、
(1)TargetOpLsと表される、被テスト出力レイヤセットが選択される。TargetOpLs中でoutput_layer_set_idx[]によって参照される動作点が被テスト動作点を識別する。TargetOpLsの出力レイヤ識別子リストOpLayerIdListは、被テスト・ビットストリーム中に存在するnuh_layer_id値のサブセットであり、TargetOpおよびTargetOpLsと関連付けられたビットストリーム・サブセット中に存在する、nuh_layer_id値の昇順の、nuh_layer_id値のリストからなる。TargetOpのOpTidは、TargetOpと関連付けられたビットストリーム・サブセット中に存在する最も高いTemporalIdに等しい。
(2)TargetDecLayerIdListが選択された出力レイヤセットTargetOpLsに係るターゲット復号レイヤ識別子リストtargetDLayerIdListに等しくセットされ、HighestTidがTargetOpのOpTidに等しくセットされて、10節において指定されるようなサブビットストリーム抽出処理が入力として被テスト・ビットストリーム、HighestTid、およびTargetDecLayerIdListを用いて起動され、出力がBitstreamToDecodeへ割り当てられる。
(3)TargetOpに適用可能なhrd_parameters()シンタックス構造およびsub_layer_hrd_parameters()シンタックス構造が選択される。TargetDecLayerIdListが被テスト・ビットストリーム中に存在するすべてのnuh_layer_id値を含むならば、アクティブSPS中の(またはこの仕様では指定されない外部手段を通じて提供された)hrd_parameters()シンタックス構造が選択される。そうでない場合には、TargetOpに適用されるアクティブVPS中の(またはこの仕様では指定されない何かの外部手段を通じて提供された)hrd_parameters()シンタックス構造が選択される。選択されたhrd_parameters()シンタックス構造内において、BitstreamToDecodeがタイプIビットストリームであれば、条件「if(vcl_hrd_parameters_present_flag)」のすぐ後に続くsub_layer_hrd_parameters(HighestTid)シンタックス構造が選択されて、変数NalHrdModeFlagが0に等しくセットされる、そうでない(BitstreamToDecodeがタイプIIビットストリームである)場合には、条件「if(vcl_hrd_parameters_present_flag)」(このケースでは、変数NalHrdModeFlagが0に等しくセットされる)か、または条件「if(nal_hrd_parameters_present_flag)」(このケースでは、変数NalHrdModeFlagが1に等しくセットされる)のいずれかのすぐ後に続くsub_layer_hrd_parameters(HighestTid)シンタックス構造が選択される。BitstreamToDecodeがタイプIIビットストリームであり、NalHrdModeFlagが0に等しいときには、フィラーデータNALユニットを除くすべてのnon−VCL NALユニット、および(付属書Bにおいて指定されるように)NALユニット・ストリームからバイト・ストリームを形成するすべてのleading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、およびtrailing_zero_8bitsシンタックス要素が、存在するときには、BitstreamToDecodeから破棄されて、残りのビットストリームがBitstreamToDecodeへ割り当てられる。
適合するデコーダは、この項において指定されるすべての要件を満たすことができる。
(1)特定のプロファイル、ティアおよびレベルへの適合性を主張するデコーダは、VCL NALユニットにおいて参照されるすべてのVPS、SPSおよびPPS、ならびに然るべきバッファリング周期およびピクチャタイミングSEIメッセージが、(non−VCL NALユニットによって)ビットストリームで、またはこの仕様では指定されない外部手段によって、タイムリーに、デコーダへ伝達されることを条件として、C.4項において指定されたビットストリーム適合性要件に適合するすべてのビットストリームを、付属書Aにおいて指定される仕方で、首尾よく復号することが可能でありうる。
(2)ある1つのビットストリームが予約されるとして指定された値を有するシンタックス要素を含み、それらのシンタックス要素の値またはそれらの予約値を有するシンタックス要素を含んだNALユニットをデコーダが無視してもよいことが指定され、その他の点ではそのビットストリームがこの仕様に適合しているときに、適合するデコーダは、適合しているビットストリームをそれが復号するであろう同じ仕方でそのビットストリームを復号してもよく、それらのシンタックス要素またはそれらの予約値を有するシンタックス要素を含んだNALユニットを指定されるように無視してもよい。
デコーダの適合性には2つのタイプ、すなわち、出力タイミング適合性および出力順適合性がある。
デコーダの適合性をチェックするために、C.4項において指定されるように、主張されるプロファイル、ティアおよびレベルに適合しているテスト・ビットストリームが仮想ストリーム・スケジューラ(HSS:hypothetical stream scheduler)によってHRDおよび被テスト・デコーダ(DUT:decoder under test)の両方へ配信される。HRDによって出力されるすべてのクロップされた復号ピクチャがDUTによっても出力されてよく、DUTによって出力される各クロップされた復号ピクチャが1に等しいPicOutputFlagをもつピクチャであってもよく、DUTによって出力されるかかるクロップされた復号ピクチャごとに、出力されるすべてのサンプルの値が指定された復号処理によって生成されるサンプルの値に等しくてもよい。
出力タイミング・デコーダ適合性のために、HSSは、ビットレートおよびCPBサイズが指定されたプロファイル、ティアおよびレベルについて付属書Aにおいて指定されるように制限された、SchedSelIdxの値のサブセットのみから選択された配信スケジュールを用いるか、またはビットレートおよびCPBサイズが付属書Aにおいて指定されるように制限された、以下に指定されるような「補間」配信スケジュールを用いて、上記のように動作する。同じ配信スケジュールがHRDおよびDUTの両方に用いられる。
HRDパラメータおよびバッファリング周期SEIメッセージが、0より大きいcpb_cnt_minus1[HighestTid]とともに存在するときに、デコーダは、BitRate[SchedSelIdx−1]<=r<=BitRate[SchedSelIdx]である任意のSchedSelIdx>0およびrに対して、次のように、
であり、ピーク・ビットレートrおよびCPBサイズc(r)が指定されたプロファイル、ティアおよびレベルに係る最大ビットレートおよびバッファサイズについて付属書Aにおいて指定された限界内にあるr、c(r)、および初期CPBリムーバル遅延(f(r)÷r)を有することが指定された、「補間」配信スケジュールを用いて動作しているHSSから配信されたビットストリームを復号することが可能であってもよい。InitCpbRemovalDelay[SchedSelIdx]がバッファリング周期ごとに異なり、再算出しなければならないことがありうる。
出力タイミング・デコーダ適合性のために、上記のようなHRDが用いられ、ピクチャ出力の(第1ビットの配信時刻に対する)タイミングは、一定の遅延までHRDおよびDUTの両方について同じである。
出力順デコーダ適合性のために、以下が適用される、すなわち、
(1)HSSは、DUTからの「要求によって」ビットストリームBitstreamToDecodeをDUTへ配信し、これが意味するのは、DUTがその処理を進めるためにより多くのビットを必要とするときにのみ、HSSがビットを(復号順に)配信することである。これが意味するのは、このテストでは、DUTの符号化ピクチャバッファを最も大きい復号ユニットのサイズと同じぐらい小さくできるであろうということである。
(2)以下に記載されるように修正されたHRDが用いられ、HSSは、ビットレートおよびCPBサイズが付属書Aにおいて指定される通り制限されるように、ビットストリームBitstreamToDecodeで指定されたスケジュールのうちの1つによってビットストリームをHRDへ配信する。ピクチャ出力の順序は、HRDおよびDUTの両方について同じであってよい。
(3)HRD CPBサイズは、E.2.3項において指定されるようにCpbSize[SchedSelIdx]によって与えられ、ここでSchedSelIdxおよびHRDパラメータは、C.1項において指定されるように選択される。DPBサイズは、(現復号ピクチャに関するnuh_layer_idが0に等しいときに)アクティブSPSからの、または現復号ピクチャのnuh_layer_idの値に係るアクティブレイヤSPSからのsps_max_dec_pic_buffering_minus1[HighestTid]+1によって与えられる。いくつかのケースでは、動作点DPB情報パラメータop_dpb_info_parameters()が選択された出力レイヤセットに対して存在すれば、DPBサイズは、currLayerIdが0に等しいときには、vps_max_dec_pic_buffering_minus1[HighestTid]によって与えられ、またはcurrLayerIdが0より大きいときに、被テスト動作点に係るcurrLayerIdに対してvps_max_dec_pic_buffering_minus1[CurrLayerId][HighestTid]にセットされ、ここでcurrLayerIdは、現復号ピクチャのnuh_layer_idである。そうではない場合には、動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点に対して存在しなければ、DPBサイズは、(現復号ピクチャに関するnuh_layer_idが0に等しいときに)アクティブSPSからの、または現復号ピクチャのnuh_layer_idの値に係るアクティブレイヤSPSからのsps_max_dec_pic_buffering_minus1[HighestTid]+1によって与えられる。
いくつかのケースでは、出力レイヤセットDPB情報パラメータoop_dpb_info_parameters()が選択された出力レイヤセットに対して存在すれば、DPBサイズは、currLayerIdが0に等しいときに、vps_max_dec_pic_buffering_minus1[HighestTid]によって与えられるか、または選択された出力レイヤセットに係るcurrLayerIdに対してvps_max_dec_pic_buffering_minus1[CurrLayerId][HighestTid]にセットされ、ここでcurrLayerIdは、現復号ピクチャのnuh_layer_idである。そうではない場合には、出力レイヤセットDPB情報パラメータoop_dpb_info_parameters()が選択された出力レイヤセットに対して存在しなければ、DPBサイズは、(現復号ピクチャに関するnuh_layer_idが0に等しいときに)アクティブSPSからの、または現復号ピクチャのnuh_layer_idの値に係るアクティブレイヤSPSからのsps_max_dec_pic_buffering_minus1[HighestTid]+1によって与えられる。
HRDのためのCPBからのリムーバル時刻は、最終ビット到着時刻であり、復号は即時である。このHRDのDPBの動作は、C5.2からC5.2.3項において記載される通りである。
復号ピクチャバッファは、ピクチャ記憶バッファを含む。0に等しいnuh_layer_idに係るピクチャ記憶バッファの数は、アクティブSPSから導出される。ゼロではないnuh_layer_id値ごとのピクチャ記憶バッファの数は、そのゼロではないnuh_layer_id値に係るアクティブレイヤSPSから導出される。それぞれのピクチャ記憶バッファは、「参照に用いられる」とマーク付けされた復号ピクチャを含むか、または将来の出力のために維持される。F.13.5.2.2項において指定されるようにDPBからのピクチャの出力およびリムーバルのための処理が起動されて、F.13.5.2.3項において指定されるようなピクチャ復号、マーク付け、追加のバンピング、および記憶のための処理の起動がその後に続く。「バンピング」処理は、F.13.5.2.4項において指定され、F.13.5.2.2およびF.13.5.2.3項において指定されるように起動される。
現ピクチャを復号する前(しかし、現ピクチャの第1のスライスのスライスヘッダを構文解析した後)のDPBからの複数のピクチャの出力およびリムーバルは、現ピクチャを含んだアクセスユニットの第1の復号ユニットがCPBから取り出されたときに即座に生じて、次のように進む。
8.3.2項において指定されるようなRPSに対する復号処理が起動される。
(1)現ピクチャが1に等しいNoRaslOutputFlagをもち、かつピクチャ0ではない、0に等しいnuh_layer_idをもつIRAPピクチャであれば、以下の順序付けられたステップが適用される。
(A)変数NoOutputOfPriorPicsFlagが被テスト・デコーダに関して次のように導出される、すなわち、
(i)現ピクチャがCRAピクチャであれば、NoOutputOfPriorPicsFlagが(no_output_of_prior_pics_flagの値に係らず)1に等しくセットされる。
(ii)そうでない場合には、アクティブSPSから導出されたpic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering_minus1[HighestTid]の値が、先行ピクチャに対してアクティブなSPSから導出された、それぞれ、pic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering_minus1[HighestTid]の値と異なれば、NoOutputOfPriorPicsFlagは、no_output_of_prior_pics_flagの値に係らず、被テスト・デコーダによって1にセットされてもよい(しかし、セットされるべきであるわけではない)。これらの条件下ではNoOutputOfPriorPicsFlagをno_output_of_prior_pics_flagに等しくセットすることが好ましいとはいえ、このケースでは被テスト・デコーダがNoOutputOfPriorPicsFlagを1にセットすることが許容される。
(iii)そうでない場合には、NoOutputOfPriorPicsFlagがno_output_of_prior_pics_flagに等しくセットされる。
(B)被テスト・デコーダに関して導出されたNoOutputOfPriorPicsFlagの値は、次のようにHRDに適用される、すなわち、
(i)NoOutputOfPriorPicsFlagが1に等しければ、DPB中のすべてのピクチャ記憶バッファは、それらが含むピクチャの出力なしに空にされて、DPB占有量が0に等しくセットされる。
(ii)そうでない(NoOutputOfPriorPicsFlagが0に等しい)場合には、「出力に必要とされない」および「参照に用いられない」とマーク付けされたピクチャを含んだすべてのピクチャ記憶バッファが(出力なしに)空にされ、DPB中のすべての空はないピクチャ記憶バッファがF.13.5.2.4項において指定される「バンピング」処理を繰り返して起動することによって空にされて、DPB占有量が0に等しくセットされる。
(iii)そうでない(現ピクチャが1に等しいNoRaslOutputFlagをもち、かつ0に等しいnuh_layer_idをもつIRAPピクチャではない)場合には、「出力に必要とされない」および「参照に用いられない」とマーク付けされたピクチャを含んだすべてのピクチャ記憶バッファが(出力なしに)空にされる。空にされたピクチャ記憶バッファごとに、DPB占有量が1つデクリメントされる。変数currLayerIdが現復号ピクチャのnuh_layer_idに等しくセットされる。
変数MaxNumReorderPics[TargetOp][currLayerId][HighestTid]、MaxLatencyIncreasePlus1[TargetOp][currLayerId][HighestTid]、MaxLatencyPictures[TargetOp][currLayerId][HighestTid]、MaxDecPicBufferingMinus1[TargetOp][currLayerId][HighestTid]が現在の被テスト動作点に基づいて次のように導出される、すなわち、
(1)動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点TargetOpに対して存在するならば、MaxNumReorderPics[TargetOp][currLayerId][HighestTid]は、currLayerIdが0に等しいときに、vps_max_num_reorder_pics[HighestTid]にセットされ、currLayerIdが0より大きいときには、被テスト動作点に係るcurrLayerIdに対してvps_max_num_reorder_pics[TargetOp][CurrLayerId][HighestTid]にセットされる。そうでない場合には、動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点に対して存在しなければ、MaxNumReorderPics[TargetOp][currLayerId][HighestTid]は、(currLayerIdが0に等しいときに)アクティブSPSからの、またはcurrLayerIdの値に係るアクティブレイヤSPSからのsps_max_num_reorder_pics[HighestTid]にセットされる。
(2)動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点TargetOpに対して存在するならば、MaxLatencyIncreasePlus1[TargetOp][currLayerId][HighestTid]は、currLayerIdが0に等しいときに、vps_max_latency_increase_plus1[HighestTid]にセットされ、またはcurrLayerIdが0より大きいときには、被テスト動作点に係るcurrLayerIdに対してvps_max_latency_increase_plus1[TargetOp][CurrLayerId][HighestTid]にセットされる。動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点に対して存在するならば、MaxLatencyPictures[TargetOp][currLayerId][HighestTid]は、currLayerIdが0と等しいときに、VpsMaxLatencyPictures[HighestTid]にセットされ、currLayerIdが0より大きいときには、被テスト動作点に係るcurrLayerIdに対してVpsMaxLatencyPictures[TargetOp][CurrLayerId][HighestTid]にセットされる。そうでない場合には、動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点に対して存在しなければ、MaxLatencyIncreasePlus1[TargetOp][currLayerId][HighestTid]は、(currLayerIdが0に等しいときに)アクティブSPSの、またはcurrLayerIdの値に係るアクティブレイヤSPSのsps_max_latency_increase_plus1[HighestTid]にセットされ、MaxLatencyPictures[TargetOp][currLayerId][HighestTid]は、(currLayerIdが0に等しいときに)アクティブSPSから、またはcurrLayerIdの値に係るアクティブレイヤSPSから導出されたSpsMaxLatencyPictures[HighestTid]にセットされる。
(3)動作点DPB情報パラメータop_dpb_info_parameters()が選択された被テスト動作点TargetOpに対して存在するならば、MaxDecPicBufferingMinus1[TargetOp][currLayerId][HighestTid]は、currLayerIdが0に等しいときに、vps_max_dec_pic_buffering_minus1[HighestTid]にセットされ、またはcurrLayerIdが0より大きいときには、被テスト動作点に係るcurrLayerIdに対してvps_max_dec_pic_buffering_minus1[TargetOp][CurrLayerId][HighestTid]にセットされる。そうでない場合には、動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点に対して存在しなければ、MaxDecPicBufferingMinus1[TargetOp][currLayerId][HighestTid]は、(currLayerIdが0に等しいときに)アクティブSPSからの、またはcurrLayerIdの値に係るアクティブレイヤSPSからのsps_max_dec_pic_buffering_minus1[HighestTid]にセットされる。
次の条件の1つ以上が真であるときには、次の条件がいずれも真でなくなるまで、F.13.5.2.4項において指定される「バンピング」処理が繰り返して起動されて、一方ではさらなるピクチャ記憶バッファが空にされるごとにDPB占有量がさらに1つデクリメントされる、すなわち、
(1)「出力に必要とされる」とマーク付けされたDPB中のcurrLayerIdに等しいnuh_layer_idをもつピクチャの数がMaxNumReorderPics[TargetOp][CurrLayerId][HighestTid]より大きい。
(2)MaxLatencyIncreasePlus1[TargetOp][CurrLayerId][HighestTid]が0に等しくなく、かつ「出力に必要とされる」とマーク付けされたcurrLayerIdに等しいnuh_layer_idをもつ少なくとも1つのピクチャがDPB中のあり、関連付けられた変数PicLatencyCount[currLayerId]は、MaxLatencyPictures[TargetOp][CurrLayerId][HighestTid]以上であるかどうか。
(3)DPB中のcurrLayerIdに等しいnuh_layer_idをもつピクチャの数がMaxDecPicBuffering[TargetOp][CurrLayerId][HighestTid]以上である。
この項において指定される処理は、現ピクチャを含んだアクセスユニットnの最後の復号ユニットがCPBから取り出されたときに即座に生じる。
変数currLayerIdが現復号ピクチャのnuh_layer_idに等しくセットされる。
「出力に必要とされる」とマーク付けされ、currLayerIdに等しいnuh_layer_id値を有するDPB中のピクチャごとに、関連付けられた変数PicLatencyCount[currLayerId]がPicLatencyCount[currLayerId]+1に等しくセットされる。
現ピクチャは、そのピクチャの最後の復号ユニットが復号された後に復号済みと見做される。現復号ピクチャがDPBにおける空のピクチャ記憶バッファ中に記憶されて、以下が適用される、すなわち、
(A)現復号ピクチャが1に等しいPicOutputFlagを有すれば、現復号ピクチャが「出力に必要とされる」とマーク付けされて、その関連付けられた変数PicLatencyCount[currLayerId]が0に等しくセットされる。
(B)そうでない(現復号ピクチャが0に等しいPicOutputFlagを有する)場合には、現復号ピクチャが「出力に必要とされない」とマーク付けされる。
現復号ピクチャが「短期間参照に用いられる」とマーク付けされる。
次の条件の1つ以上が真であるときには、次の条件がいずれも真でなくなるまで、F.13.5.2.4項において指定される「バンピング」処理が繰り返して起動される。
(A)「出力に必要とされる」とマーク付けされたDPB中のcurrLayerIdに等しいnuh_layer_idをもつピクチャの数がMaxNumReorderPics[TargetOp][CurrLayerId][HighestTid]より大きい。
(B)MaxLatencyIncreasePlus1[TargetOp][CurrLayerId][HighestTid]が0に等しくなく、「出力に必要とされる」とマーク付けされたcurrLayerIdに等しいnuh_layer_idをもつ少なくとも1つのピクチャがDPB中にあり、関連付けられた変数PicLatencyCount[currLayerId]がMaxLatencyPictures[TargetOp][CurrLayerId][HighestTid]以上である。
他のケースでは、変数
MaxNumReorderPics[currLayerId][HighestTid]、
MaxLatencyIncreasePlus1[currLayerId][HighestTid]、
MaxLatencyPictures[currLayerId][HighestTid]、
MaxDecPicBufferingMinus1[currLayerId][HighestTid]が次のように導出されてもよい、すなわち、
(1)動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点に対して存在するならば、MaxNumReorderPics[currLayerId][HighestTid]は、currLayerIdが0に等しいときに、vps_max_num_reorder_pics[HighestTid]にセットされ、またはcurrLayerIdが0より大きいときには、被テスト動作点に係るcurrLayerIdに対してvps_max_num_reorder_pics[CurrLayerId][HighestTid]にセットされる。そうでない場合には、動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点に対して存在しなければ、MaxNumReorderPics[currLayerId][HighestTid]は、(currLayerIdが0に等しいときに)アクティブSPSからの、またはcurrLayerIdの値に係るアクティブレイヤSPSからのsps_max_num_reorder_pics[HighestTid]にセットされる。
(2)動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点に対して存在するならば、MaxLatencyIncreasePlus1[currLayerId][HighestTid]は、currLayerIdが0と等しいときに、vps_max_latency_increase_plus1[HighestTid]にセットされ、またはcurrLayerIdが0より大きいときには、被テスト動作点に係るcurrLayerIdに対してvps_max_latency_increase_plus1[CurrLayerId][HighestTid]にセットされる。動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点に対して存在するならば、MaxLatencyPictures[currLayerId][HighestTid]は、currLayerIdが0に等しいときに、VpsMaxLatencyPictures[HighestTid]にセットされ、またはcurrLayerIdが0より大きいときには、被テスト動作点に係るcurrLayerIdに対してVpsMaxLatencyPictures[CurrLayerId][HighestTid]にセットされる。そうでない場合には、動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点に対して存在しなければ、MaxLatencyIncreasePlus1[currLayerId][HighestTid]は、(currLayerIdが0に等しいときに)アクティブSPSの、またはcurrLayerIdの値に係るアクティブレイヤSPSのsps_max_latency_increase_plus1[HighestTid]にセットされ、MaxLatencyPictures[currLayerId][HighestTid]は、(currLayerIdが0に等しいときに)アクティブSPSから、またはcurrLayerIdの値に係るアクティブレイヤSPSから導出されたSpsMaxLatencyPictures[HighestTid]にセットされる。
(3)動作点DPB情報パラメータop_dpb_info_parameters()が選択された被テスト動作点に対して存在するならば、MaxDecPicBufferingMinus1[currLayerId][HighestTid]は、currLayerIdが0に等しいときに、vps_max_dec_pic_buffering_minus1[HighestTid]にセットされ、またはcurrLayerIdが0より大きいときには、被テスト動作点に係るcurrLayerIdに対してvps_max_dec_pic_buffering_minus1[CurrLayerId][HighestTid]にセットされる。そうでない場合には、動作点DPB情報パラメータop_dpb_info_parameters()が被テスト動作点に対して存在しなければ、MaxDecPicBufferingMinus1[currLayerId][HighestTid]が、(currLayerIdが0に等しいときに)アクティブSPSからの、またはcurrLayerIdの値に係るアクティブレイヤSPSからのsps_max_dec_pic_buffering_minus1[HighestTid]にセットされる。
次の条件の1つ以上が真であるときには、次の条件がいずれも真でなくなるまで、F.13.5.2.4項において指定される「バンピング」処理が繰り返して起動されて、一方ではさらなるピクチャ記憶バッファが空にされるごとにDPB占有量がさらに1つデクリメントされる、すなわち、
(1)「出力に必要とされる」とマーク付けされたDPB中のcurrLayerIdに等しいnuh_layer_idをもつピクチャの数がMaxNumReorderPics[CurrLayerId][HighestTid]より大きい。
(2)MaxLatencyIncreasePlus1[CurrLayerId][HighestTid]が0に等しくなければ、「出力に必要とされる」とマーク付けされたcurrLayerIdに等しいnuh_layer_idをもつ少なくとも1つのピクチャがDPB中にあり、関連付けられた変数PicLatencyCount[currLayerId]がMaxLatencyPictures[CurrLayerId][HighestTid]以上である。
(3)DPB中のcurrLayerIdに等しいnuh_layer_idをもつピクチャの数がMaxDecPicBuffering[CurrLayerId][HighestTid]以上である。
この項において指定される処理は、現ピクチャを含んだアクセスユニットnの最後の復号ユニットがCPBから取り出されたときに即座に生じる。
変数currLayerIdが現復号ピクチャのnuh_layer_idに等しくセットされる。
「出力に必要とされる」とマーク付けされ、currLayerIdに等しいnuh_layer_id値を有するDPB中のピクチャごとに、関連付けられた変数PicLatencyCount[currLayerId]がPicLatencyCount[currLayerId]+1に等しくセットされる。
現ピクチャは、そのピクチャの最後の復号ユニットが復号された後に復号済みと見做される。現復号ピクチャがDPBにおける空のピクチャ記憶バッファ中に記憶されて、以下が適用される、すなわち、
(A)現復号ピクチャが1に等しいPicOutputFlagを有すれば、現復号ピクチャが「出力に必要とされる」とマーク付けされて、その関連付けられた変数PicLatencyCount[currLayerId]が0に等しくセットされる。
(B)そうでない(現復号ピクチャが0に等しいPicOutputFlagを有する)場合には、現復号ピクチャが「出力に必要とされない」とマーク付けされる。
現復号ピクチャが「短期間参照に用いられる」とマーク付けされる。
次の条件の1つ以上が真であるときには、次の条件がいずれも真でなくなるまで、F.13.5.2.4項において指定される「バンピング」処理が繰り返して起動される。
(A)「出力に必要とされる」とマーク付けされたDPB中のcurrLayerIdに等しいnuh_layer_idをもつピクチャの数がMaxNumReorderPics[CurrLayerId][HighestTid]より大きい。
(B)MaxLatencyIncreasePlus1[CurrLayerId][HighestTid]が0に等しくなく、「出力に必要とされる」とマーク付けされたcurrLayerIdに等しいnuh_layer_idをもつ少なくとも1つのピクチャがDPB中にあり、関連付けられた変数PicLatencyCount[currLayerId]がMaxLatencyPictures[CurrLayerId][HighestTid]以上である。
「バンピング」処理は次の順序付けられたステップからなる、すなわち、
(A)最初に出力するためのピクチャとして、「出力に必要とされる」とマーク付けされたDPB中のすべてのピクチャのうちでPicOrderCntValの最小値を有するピクチャが選択される。
(B)これらのピクチャが0に等しいnuh_layer_idをもつピクチャに係るアクティブSPS中で、またはそのピクチャのものに等しいnuh_layer_idに係るアクティブレイヤSPS中で指定された適合性クロッピング・ウィンドウを用いてクロップされ、クロップされたピクチャは、nuh_layer_idの昇順に出力されて、これらのピクチャが「出力に必要とされない」とマーク付けされる。
(C)「参照に用いられない」とマーク付けされたピクチャを含み、かつクロップされ、出力されたピクチャのうちの1つを含んでいた各ピクチャ記憶バッファが空にされる。
VPS拡張は、所望により、追加の修正を有してもよい。
図32を参考にすると、追加の修正は、DPBパラメータが動作点に関してではなく、出力レイヤセットに関してVPS拡張で送信されることを含んでもよく、oops_dpb_parameters(j)が図33に示される。
num_dpb_info_parametersは、VPS拡張RBSP中に存在するoop_dpb_parameters()シンタックス構造の数を指定する。num_dpb_info_parametersデコーダは、両端値を含めて、0からnum_output_layer_setsまでの範囲内にありうる。
output_point_layer_set_idx[i]は、ターゲット出力レイヤセットのリスト中へのインデックスを指定し、このインデックスにはVPS拡張におけるi番目のoop_dpb_info_parameters()シンタックス構造が適用される。
output_point_layer_set_idx[i]の値は、両端値を含めて、0からnum_output_layer_setsまでの範囲内にあるべきである。ビットストリーム適合性の要件は、iに等しくない任意のjに対してoutput_point_layer_set_idx[i]がoutput_point_layer_set_idx[j]に等しくないことである。
図34を参照すると、oop_dpb_info_paremters(c)がさらに修正されてもよく、VPS拡張におけるシンタックスは、図35に示される通りであってもよい。
図36を参照すると、oop_dpb_info_paremters(c)がさらに修正されてもよく、VPS拡張におけるシンタックスは、図37または図38に示される通りであってもよい。
VPS拡張における例示的な代わりのシンタックスでは、
vps_max_layer_idは、CVS中のすべてのNALユニットのnuh_layer_idの最大許容値を指定する。vps_max_layer_minus1は、CVS中に存在しうるレイヤの最大数を指定し、レイヤは、例えば、空間スケーラブル・レイヤ、品質スケーラブル・レイヤ、テクスチャビューまたは深度ビューであってもよい。
VPS拡張における別の例示的な代わりのシンタックスでは、
に変更されてもよく、ここで選択された出力レイヤセット・インデックスoplsIdxに係るnumOutputLayersは、次のように導出される、すなわち、
VPS拡張における別の例示的な代わりのシンタックスでは、
のように変更されてもよく、ここで選択されたoplsIdxに係るnumOutputLayersは、次のように導出される、すなわち、
次に、ターゲット復号レイヤ識別子リストtargetDLayerIdListおよび選択されたoplsIdxに係るnumDecodedLayersは、次のように導出される、すなわち、
一実施形態において、oop_dpb_information_parametersが個別のレイヤに関してシグナリングされるかどうかを示すために次のように追加のフラグがシグナリングされてもよい、すなわち、
1に等しいvps_layer_info_present_flag[j]は、oop_dpb_info_parametersが個別の出力レイヤセットのためのj番目のレイヤに対して存在することを指定する。0に等しいvps_layer_info_present_flag[j]は、oop_dpb_info_parametersが個別の出力レイヤセットのためのj番目のレイヤに対して存在しないことを指定する。
別の実施形態では、num_dpb_info_parametersデコーダは、両端値を含めて、0から1024までの範囲内にありうる。さらに別の実施形態では、1024の代わりに異なる固定数を用いることができるであろう。
代わりの実施形態では、output_point_layer_set_idx[i]は、両端値を含めて、0から1023までの範囲内にある。
図39を参考にすると、DPBパラメータが出力レイヤセットおよび動作点とは独立してレイヤごとにVPS拡張で送信されるならば、別の修正されたVPS拡張およびlayer_dpb_info(i)が用いられてもよい。
図40を参考にすると、修正されたlayer_dpb_info(i)が用いられてもよく、この修正ではVPSからシグナリングされるシンタックス要素vps_max_sub_layer_minus1がすべてのレイヤに用いられ、oop_dpb_info_parameters(id)/op_dpb_info_parameters(id)で別々にはシグナリングされない。
別の実施形態では、シンタックス要素のうちの1つ以上がue(v)の代わりにu(v)の代わりの既知の固定ビット数を用いてシグナリングされてもよい。例えば、それらのシンタックス要素をu(8)もしくはu(16)またはu(32)あるいはu(64)などを用いてシグナリングできるであろう。
別の実施形態では、これらのシンタックス要素のうちの1つ以上をu(v)符号化のような固定ビット数の代わりにue(v)または他の何らかの符号化方式を用いてシグナリングできるであろう。
別の実施形態では、様々なシンタックス要素およびそれらのセマンティクスの名前が記載されたシンタックスおよびセマンティクスと比較して+1もしくは+2を加えるか、または−1もしくは−2を減じることによって変えられてもよい。
さらに別の実施形態では、様々なシンタックス要素がビットストリーム中のどこでもピクチャごとにシグナリングされてもよい。例えば、様々なシンタックスがスライスセグメントヘッダ、pps/sps/vps/もしくはその他のパラメータセットまたはビットストリームの他の規範的な部分でシグナリングされてもよい。
さらに別の実施形態では、本発明において出力レイヤセットに関して定義されるすべてのコンセプトを出力動作点[2、3]および/または動作点[1]に適用できるであろう。
前に記載されたように、シーケンスパラメータセット(「SPS」)は、ある1つのビデオシーケンス全体に対して有効なデータを運ぶために用いられる。従って、SPSは、ある1つのシンタックス要素、例えば、各スライスセグメントヘッダ中に見られるシンタックス要素によって参照されるPPS中に見られるある1つのシンタックス要素のコンテンツによって確定されるような、ゼロ個またはそれ以上の符号化ビデオシーケンス全体に適用される複数のシンタックス要素を含んだある1つのシンタックス構造である。同様に前に記載されたように、ピクチャパラメータセット(「PPS:picture parameter set」)は、ピクチャごとに有効なデータを運ぶ。従って、PPSは、ある1つのシンタックス要素、例えば、各スライスセグメントヘッダ中に見られるシンタックス要素によって確定されるような、ゼロ個またはそれ以上の符号化ピクチャ全体に適用される複数のシンタックス要素を含んだある1つのシンタックス構造である。例として、ベースレイヤは、1080pの符号化ビデオシーケンスであってもよく、一方でエンハンスメントレイヤ(単数または複数)は、4Kの符号化ビデオシーケンスを提供する。
図41を参照すると、スケーラブル高効率符号化(「SVHC:scalable high efficiency coding」)を符号化するときに、ベースレイヤは、1つ以上のSPSを含んでもよく、かつ1つ以上のPPSも含んでよい。さらに、各エンハンスメントレイヤは、1つ以上のSPSを含んでもよく、かつ1つ以上のPPSも含んでよい。図41では、SPS+は1つ以上のSPSが、そしてPPS+は1つ以上のPPSが個別のベースまたはエンハンスメントレイヤに関してシグナリングされることを示す。このように、ある1つのベースレイヤおよび1つ以上のエンハンスメントレイヤの両方を有するビデオビットストリームでは、かかるデータを送信するために、SPSおよびPPSデータセットの総数が、多くの用途において制限されがちな所要バンド幅とともに重要になる。かかるバンド幅制限に伴って、望ましいのは、送信されることが必要なデータを限定して、そのデータをビットストリーム中に効果的に配置することである。各レイヤが、所望により、任意の特定の時刻にアクティブな1つのSPSおよび/またはPPSを有してもよく、異なるアクティブなSPSおよび/またはPPSを選択してもよい。
(例えば、本明細書ではブロックと一般的に呼ばれる)複数の符号化ツリーブロックを備える入力ピクチャが1つまたはいくつかのスライスに分割されてもよい。エンコーダおよびデコーダで用いられる参照ピクチャが同じであり、かつデブロッキングフィルタ処理がスライス境界を横切って情報を用いないことを条件として、ある1つのスライスが表現するピクチャのエリアにおけるサンプル値が他のスライスからのデータを用いないで適切に復号されてもよい。それゆえに、1つのスライスに対するエントロピー復号およびブロック再構成は、他のスライスには依存しない。特に、各スライスの開始のときにエントロピー符号化状態がリセットされてもよい。エントロピー復号および再構成の両方について近傍の利用可能性を定義するときに、他のスライスにおけるデータが利用不可能としてマーク付けされてもよい。複数のスライスが並列にエントロピー復号および再構成されてもよい。イントラ予測および動きベクトル予測は、好ましくは、スライスの境界を横切って許容されない。対照的に、デブロッキングフィルタ処理は、スライス境界を横切って情報を用いてもよい。
図42は、横方向に11ブロックおよび縦方向に9ブロックを備える例示的なビデオピクチャ2090を示す(9つの例示的なブロックが2091〜2099とラベル付けされる)。図42は、3つの例示的なスライス、すなわち、“SLICE#0”と示された第1のスライス2080、“スライス#1”と示された第2のスライス2081、および“スライス#2”と示された第3のスライス2082を示す。デコーダは、3つのスライス2080、2081、2082を並列に復号して再構成してもよい。それぞれのスライスがスキャンライン順に順次送信されてもよい。スライスごとの復号/再構成処理の初めに、コンテキストモデルが初期化またはリセットされて、他のスライスにおけるブロックがエントロピー復号およびブロック再構成の両方に利用不可能としてマーク付けされる。コンテキストモデルは、一般に、エントロピー・エンコーダおよび/またはデコーダの状態を表す。したがって、ある1つのブロック、例えば、「スライス#1」における2093とラベル付けされたブロックに対して、「スライス#0」におけるブロック(例えば、2091および2092とラベル付けされたブロック)がコンテキストモデル選択または再構成に用いられることはない。その一方で、ある1つのブロック、例えば、「スライス#1」における2095とラベル付けされたブロックに対して、「スライス#1」における他のブロック(例えば、2093および2094とラベル付けされたブロック)は、コンテキストモデル選択または再構成に用いられてもよい。それゆえに、エントロピー復号およびブロック再構成は、ある1つのスライス内で逐次的に進む。フレキシブルなブロック順序付け(FMO:flexible block ordering)を用いてスライスを定義しない限り、ある1つのスライス内のブロックがラスタスキャン順に処理される。
フレキシブルなブロック順序付けは、ある1つのピクチャがどのように複数のスライスに区分されるかを修正するためのスライスグループを定義する。ある1つのスライスグループにおける複数のブロックは、ブロック・ツー・スライスグループ・マップよって定義され、このマップは、スライスヘッダにおけるピクチャパラメータセットのコンテンツおよび追加情報によってシグナリングされる。ブロック・ツー・スライス・グループ・マップは、ピクチャにおけるブロックごとのスライスグループ識別番号からなる。スライスグループ識別番号は、関連付けられたブロックがどのスライスグループに属するかを指定する。各スライスグループが1つ以上のスライスに区分されてもよく、ある1つのスライスは、特定のスライスグループのブロックのセット内でラスタスキャン順に処理される、同じスライスグループ内のブロックのある1つのシーケンスである。エントロピー復号およびブロック再構成は、ある1つのスライスグループ内で逐次的に進む。
図43は、3つのスライスグループ、すなわち、「スライスグループ#0」と示された第1のスライスグループ2083、「スライスグループ#1」と示される第2のスライスグループ2084、および「スライスグループ#2」と示された第3のスライスグループ2085への例示的なブロック・アロケーションを示す。
これらのスライスグループ2083、2084、2085がピクチャ2090における、それぞれ、2つの前景領域およびある1つの背景領域と関連付けられてもよい。
スライスの配列は、図43に示されるように、各スライスをブロックの対の間で、ラスタスキャンまたはラスタスキャン順としても知られる、画像スキャン順に定義するように限定されてもよい。スキャン順スライスのこの配列は、計算が効率的であるが、高効率並列符号化および復号には結び付きにくい。そのうえ、スライスのこのスキャン順の定義は、さらに、符号化効率に大いに適する共通の特性を有すると思われる画像のより小さい局所領域を一緒にグループ化しにくい。スライス2083、2084、2085の配列は、図47に示されるように、その配列が大いにフレキシブルであるが、高効率並列符号化および復号には結び付きにくい。そのうえ、スライスのこの大いにフレキシブルな定義は、デコーダに実装するには計算が複雑である。
図44を参照すると、タイル技術がある1つの画像を(正方形を含めて)矩形の領域のセットに分割する。それぞれのタイル内の(いくつかのシステムでは代わりに最大符号化ユニットまたは符号化ツリーブロックと呼ばれる)ブロックがラスタスキャン順に符号化および復号される。タイルの配列も同様にラスタスキャン順に符号化または復号される。それに応じて、任意の適切な数(例えば、0以上)の列境界があってもよく、任意の適切な数(例えば、0以上)の行境界があってもよい。このように、フレームが1つ以上のスライス、例えば、図44に示される1つのスライスを定義してもよい。いくつかの実施形態では、異なるタイル中に位置するブロックは、隣接ブロック情報に依存するイントラ予測、動き補償、エントロピー符号化コンテキスト選択または他の処理に利用できない。
図45を参照すると、タイル技術がある1つの画像を3つの矩形コラムのセットに分割することが示される。それぞれのタイル内の(いくつかのシステムでは代わりに最大符号化ユニットまたは符号化ツリーブロックと呼ばれる)ブロックがラスタスキャン順に符号化および復号される。タイルが同様にラスタスキャン順に符号化および復号される。1つ以上のスライスがタイルのスキャン順に定義される。それぞれのスライスは、独立して復号可能である。例えば、スライス1がブロック1〜9を含むとして定義されてもよく、スライス2がブロック10〜28を含むとして定義されてもよく、スライス3が3つのタイルに及ぶブロック29〜126を含むとして定義されてもよい。タイルの使用は、ある1つのフレームにおけるより局所的な領域でデータを処理することによって、効率的な符号化を促進する。
図46を参照すると、ベースレイヤおよびエンハンスメントレイヤは、ある1つのピクチャまたはその一部分をそれぞれが集合的に形成する、複数のタイルをそれぞれが含んでもよい。ベースレイヤおよび1つ以上のエンハンスメントレイヤからの複数の符号化ピクチャがある1つのアクセスユニットを集合的に形成する。アクセスユニットは、複数のNALユニットのセットとして定義されてもよく、これらのNALユニットは、指定された分類ルールに従って相互に関連付けられ、復号順に連続しているか、および/または、同じ出力時刻(ピクチャオーダカウントその他)と関連付けられたすべての符号化ピクチャのVCL NALユニットおよびそれらと関連付けられたnon−VCL NALユニットを含む。VCL NALは、ネットワーク抽象化レイヤのビデオ符号化レイヤである。同様に、符号化ピクチャは、アクセスユニット内のnuh_layer_idの個別の値をもつVCL NALユニットを備え、かつ、ある1つのピクチャのすべての符号化ツリーユニットを含んだ、そのピクチャの符号化表現として定義されてもよい。追加的な記述は、B.ブロス,W−J.ハン,J−R.オーム,G.J.サリバン,およびT.ウィーガンド,「高効率ビデオ符号化(HEVC)テキスト仕様草案10」,JCTVC−L1003,ジュネーブ,2013年1月、J.チェン,J・ボイス,Y.イエ,M.M.ハンヌクセラ,「SHVC草案テキスト2」,JCTVC−M1008,インチョン,2013年5月、G.テック,K.ウェグナー,Y.チェン,M.ハンヌクセラ,J.ボイス,「MV−HEVC草案テキスト4(ISO/IEC23008−2:201x/PDAM2)」,JCTVC−D1004,インチョン,2013年5月、およびK.スーリング(Suhring),R.スクーピン(Skupin),G.テック、T.シエル(Schierl)、K.ラパカ(Rapaka)、W.プゥ(Pu)、X.リー(Li)、J.チェン、Y.−K.ワング(Wang),M.カルツェウィッツ(Karczewicz),K.ウグル(Ugur),M.M.ハンヌクセラ,「SHVCおよびMV−HEVCに関するタイル境界アラインメントおよびレイヤ間予測制約条件」,JCTVC−M0464,インチョン,2013年4月に記載され、それぞれが参照によりその全体が本明細書に組み込まれる。
高効率ビデオ符号化(SHVC)のスケーラブルな拡張は、マルチループ・システムを用い、このシステムでは、現レイヤに対する復号処理が動き補償を実行して現レイヤの再構成されたサンプル値を確定する前に、参照レイヤのサンプル値が動き補償を用いて確定される。結果として、ターゲットレイヤ以外のレイヤに対して動き補償を実行する必要がありうる。
動き補償は、計算を多用する作業なので、それを複数回実行することは、スケーラブル・デコーダに著しいメモリ・バンド幅要件を課す。これは、参照レイヤおよび現レイヤが同じ空間分解能を有するときに特に正しい。この計算負荷を軽減するために、SHVCに対して参照レイヤのサンプル値の使用を(a)スライスごとに基づいて、(b)テンポラル識別子に基づいて、および/または(c)ネットワーク抽象化レイヤ・ユニット(NALU)タイプに基づいて防止する、いくつかのSVHC修正が試みられてきた。しかしながら、これらのアプローチのいずれも、必要でありうる処理の量が制限されないままなので、システム、および特にデコーダの計算複雑度を確実に低減するのに十分でない。従って、望ましいのは、参照レイヤ内で動き補償ブロックが実行される回数および/または頻度に対する上限を保証するSVHCシンタックスの修正を含めることである。この上限を達成するために好ましい制約条件は、好ましくは、(a)テンポラル識別子、(b)スライスヘッダ/パラメータセットで発生するフラグ、および/または(c)参照レイヤ内のNALUタイプおよび/または(d)参照レイヤ内のピクチャのタイプに基づく参照レイヤ・ピクチャの配列および頻度に対する制約条件である。この好ましい技術は、参照レイヤ内で動き補償ブロックが実行される回数および/または頻度に対する上限をもたらす。
動き補償(MC:motion compensation)が現レイヤ・ピクチャの復号に必要とされる参照レイヤ・ピクチャのサブセット内で実行される最高頻度に対して制限がセットされてもよく、この頻度制限は、ある1つのピクチャの粒度で指定される。例えば、毎秒xMCの頻度制限は、毎秒x以下の参照レイヤ・ピクチャのみが参照レイヤ・サブセット内でMCを用いて、そのサンプル値が現レイヤ・ピクチャを復号するために必要とされることを示唆するであろう。動き補償の使用がインター予測復号処理の使用に対応してもよい。
例として、参照レイヤのMCレートは、インター予測復号処理を用いて、そのサンプル値が現レイヤ・ピクチャを復号するために必要とされる、毎秒の参照レイヤ・ピクチャの数であってもよい。このように、このMCレートは、動き補償を実際に用いるピクチャを識別する。
例として、参照レイヤのMCレートは、インター予測復号処理を用いることが許容され、そのサンプル値が現レイヤ・ピクチャを復号するために必要とされる、毎秒の参照レイヤ・ピクチャの数であってもよい。このように、このMCレートは、動き補償を用いうるピクチャを識別する。例として、PスライスおよびBスライスは、いずれもインター予測を用いることを許容されるが、しかし、すべてのブロックがイントラ符号化されるならば、それはインター予測復号処理を用いない。制約条件を指定するためのいくつかのケースで、より効率的なのは、ある1つのピクチャがインター予測復号処理を用いるサンプルの1つ以上のブロック(単数または複数)を実際に含むかどうかを考慮する代わりに、スライス・タイプを考慮することであろう。
例として、この頻度制限は、サンプルの粒度で指定されてもよい。例えば、毎秒xMCの頻度制限は、毎秒x以下の参照レイヤ・サンプルのみが参照レイヤ・サブセット内でMCを用い、そのサンプル値が現レイヤ・ピクチャを復号するために必要とされることを示唆するであろう。
当然のことながら、MCレートの以下の考察は、ピクチャレートに対応するが、サンプルレートまたはその他の尺度にも同様に適用可能である。
図47を参照すると、例として、現(エンハンスメント)レイヤ・ピクチャの復号のために偶数のピクチャオーダカウント(POC)をもつ参照レイヤ・ピクチャのサンプル値のみが必要とされる。
ある1つの実施形態例では、現レイヤ・ピクチャの復号に必要とされる参照レイヤ・ピクチャのサブセット内で動き補償(MC)が実行される最高頻度制限、例えばf_maxが、ある1つのビットストリーム適合性要件である。f_maxは、ビットストリーム内でシグナリングされた過去のデータ、例えば、プロファイル値および/またはレベル値に基づいて推測されてもよい。別の例では、f_maxがビットストリーム内の然るべき位置で、例えば、シーケンスパラメータセット(SPS)内および/またはビデオパラメータセット(VPS)内で明示的にシグナリングされてもよい。
ある1つの実施形態例では、現レイヤ・ピクチャの復号に必要とされる参照レイヤのサブセット内で動き補償(MC)が実行される最高頻度制限f_maxが、ある1つのビットストリーム適合性要件であり、これは、前例の部分と同じである。さらにまた、f_maxは、所定の値、例えば「t」以下のテンポラル識別子をもつ、毎秒符号化される参照レイヤ・ピクチャの最大数に対する制限を指定する。ある1つの例では、指定される制限がf_maxに等しい。それに応じて、ある1つのレイヤ内のサブレイヤのセットを指定するテンポラル識別子がレート制約条件によって同様に制限される。留意すべきは、ベースレイヤおよび/またはエンハンスメントレイヤの低い方のテンポラル・サブレイヤを予測するために、高い方のテンポラル識別子をもつテンポラル・サブレイヤを用いることはできないことである。
例として、「t」は、ビデオパラメータセット(VPS)中のmax_tid_il_ref_pics_plus1[i]シンタックス要素に対応してもよい。インデックスiは、0からvps_max_layers_minus1まで1のインクリメントで変化する。
0に等しいmax_tid_il_ref_pics_plus1[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャが、レイヤ間予測のための参照として用いられないことを指定する。0より大きいmax_tid_il_ref_pics_plus1[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idおよびmax_tid_il_ref_pics_plus1[i]−1より大きいTemporalIdをもつピクチャが、レイヤ間予測のための参照として用いられないことを指定する。存在しないときに、max_tid_il_ref_pics_plus1[i]は、指定されない。
layer_id_in_nuh[i]は、i番目のレイヤのVCL NALユニットにおけるnuh_layer_idシンタックス要素の値を指定する。両端値を含めて、0からvps_max_layers_minus1までの範囲内のiに対して、存在しないときに、layer_id_in_nuh[i]の値は、iに等しいと推測される。
nuh_layer_idは、レイヤの識別子を指定する。
図48を参照すると、例として、現(エンハンスメント)レイヤ・ピクチャの復号のためにt以下のTemporalldをもつ参照レイヤ・ピクチャのサンプル値のみが必要とされる。
ある1つの実施形態例では、現レイヤ・ピクチャの復号に必要とされる参照レイヤ・ピクチャのサブセット内で動き補償(MC)が実行される最高頻度制限f_maxが、ある1つのビットストリーム適合性要件である。さらにまた、f_maxは、所定のNALUタイプのサブセット、例えば「R」に属し、レイヤ間予測に利用可能なNALUタイプをもつ、毎秒符号化される参照レイヤ・ピクチャの最大数に対する制限を指定する。ある1つの例では、指定される制限がf_maxに等しい。NALUタイプは、符号化の複数の異なるタイプののうちの1つを指す。
図49を参照すると、例として、所定のサブセット「R」に属するNALUタイプをもつ参照レイヤ・ピクチャに関するサンプル値が現(エンハンスメント)レイヤ・ピクチャの復号のために用いられる。
さらなる例では、符号化効率の向上のために、所定のNALUタイプのサブセット、例えば「R」に属するNALUタイプをもつ毎秒符号化される参照レイヤ・ピクチャの数に対する最低頻度制限、例えばf_minが指定される。いくつかのケースでは、頻度が低ければ、符号化効率を維持することがより難しい。
例示的なプロファイル・レベル制約条件は、If R={TRAIL_R,TSA_R,RADL_R,RASL_R,BLA_W_LP,BLA_W_RADL,BLA_N_LP,IDR_W_RADL,IDR_N_LP,CRA_NUT}であってもよい。ビットストリーム適合性のある1つの要件は、インター予測復号処理が、参照レイヤに対して、nal_unit_typeがTRAIL_R、TSA_R、RADL_R、RASL_R、BLA_W_LP、BLA_W_RADL、BLA_N_LP、IDR_W_RADL、IDR_N_LP、および/またはCRA_NUTに等しい場合にのみ起動されることであってもよい。
ある1つの実施形態例では、現レイヤ・ピクチャの復号に必要とされる参照レイヤ・ピクチャのサブセット内で動き補償(MC)が実行される最高頻度制限f_maxが、ある1つのビットストリーム適合性要件である。さらにまた、f_maxは、レイヤ間サンプル値予測が用いられることを示すスライスヘッダ・フラグ(単数または複数)をもつ、毎秒符号化される現レイヤ・ピクチャの最大数に対する制限を指定する。ある1つの例では、指定される制限がf_maxに等しい。
ある1つの実施形態例では、レイヤ間サンプル値予測が用いられることを示すスライスヘッダ・フラグ、例えば、inter_layer_sample_pred_only_flagが用いられる。
1に等しいinter_layer_sample_pred_only_flagは、現ピクチャを復号する際にインター予測が用いられないことを指定する。0に等しいinter_layer_sample_pred_only_flagは、現ピクチャを復号する際にインター予測が用いられてもよいことを指定する。存在しないときに、inter_layer_sample_pred_only_flagの値は、0に等しいと推測される。
別の実施形態では、スライスヘッダで現在予約されているビットが、ピクチャがレイヤ間サンプル値予測に利用可能か、および対応するサンプル値が上位レイヤ・ピクチャの復号に必要かどうかを識別する情報を運ぶために定義されてもよい。f_maxは、毎秒復号されるかかる参照レイヤ・ピクチャの最大数に対する制限を指定する。ある1つの例では、指定される制限がf_maxに等しい。
いくつかのケースでは、現シンタックス要素max_one_active_ref_layer_flagが1にセットされる必要がありうる。この制約条件の目標は、レイヤ間予測のためにピクチャごとに確実に最多で1つの参照レイヤが用いられるようにして、対応するSHVCデコーダのハードウェア要件を削減することである。
1に等しいmax_one_active_ref_layer_flagは、CVS中のピクチャごとに多くても1つのピクチャがレイヤ間予測に用いられることを指定する。0に等しいmax_one_active_ref_layer_flagは、CVS中のピクチャごとに1つより多いピクチャがレイヤ間予測に用いられてもよいことを指定する。
別の実施形態では、次の制約条件の1つ以上が様々なシンタックス要素に課されてもよい、すなわち、
第1に、ターゲットレイヤごとにnum_inter_layer_ref_pics_minus1は、ターゲットレイヤに属するすべてのピクチャのすべてのスライスセグメントヘッダにおいて0に等しくてもよい。
第2に、レイヤid nuh_layer_idをもつターゲットレイヤごとに、NumDirectRefLayers[nuh_layer_id]は、1以下である。
num_inter_layer_ref_pics_minus1+1は、レイヤ間予測のために現ピクチャを復号する際に用いてもよいピクチャの数を指定する。num_inter_layer_ref_pics_minus1シンタックス要素の長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。num_inter_layer_ref_pics_minus1の値は、両端値を含めて、0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内にあるものとする。Log2(x)は、xの基底2の対数である。
ある1つのレイヤに関するNumDirectRefLayersが、0に等しいときにインデックスjをもつレイヤがインデックスiをもつレイヤのための直接参照レイヤではないことを指定するdirect_dependency_flag[i][j]に基づいて導出されてもよい。1に等しいdirect_dependency_flag[i][j]は、インデックスjをもつレイヤがインデックスiをもつレイヤのための直接参照レイヤであってもよいことを指定する。0からvps_max_layers_minus1までの範囲内のiおよびjに対してdirect_dependency_flag[i][j]が存在しないときには、それが0に等しいと推測される。
direct_dep_type_len_minus2+2は、direct_dependency_type[i][j]シンタックス要素のビット数を指定する。この仕様のこのバージョンに適合するビットストリームでは、direct_dep_type_len_minus2の値は、0に等しいものとする。direct_dep_type_len_minus2の値は、この仕様のこのバージョンでは0に等しいものとするが、デコーダは、両端値を含めて、0から30までの範囲内のdirect_dep_type_len_minus2の他の値がシンタックス中に現れることを許容するものとする。
direct_dependency_type[i][j]は、変数NumSamplePredRefLayers[i]、NumMotionPredRefLayers[i]、SamplePredEnabledFlag[i][j]、およびMotionPredEnabledFlag[i][j]を導出するために用いられる。direct_dependency_type[i][j]は、この仕様のこのバージョンに適合するビットストリームでは、両端値を含めて、0から2までの範囲内にあるものとする。この仕様のこのバージョンでは、direct_dependency_type[i][j]は、両端値を含めて、0から2までの範囲内にあるものとするが、デコーダは、両端値を含めて、3から232−2までの範囲内のdirect_dependency_type[i][j]の値がシンタックス中に現れることを許容するものとする。
変数NumSamplePredRefLayers[i]、NumMotionPredRefLayers[i]、SamplePredEnabledFlag[i][j]、MotionPredEnabledFlag[i][j]、NumDirectRefLayers[i]、DirectRefLayerIdx[i][j]、RefLayerId[i][j]、MotionPredRefLayerId[i][j]、およびSamplePredRefLayerId[i][j]は、次のように導出される、すなわち、
direct_dependency_flag[i][j]、direct_dep_type_len_minus2、direct_dependency_type[i][j]は、図50Aおよび図50Bに示されるvps_extensionシンタックスに含まれ、vps_extensionは、符号化ビデオシーケンスに関するシンタックスを提供するVPSシンタックス中に参照によって含められる。
ビットストリームでシグナリングされる他のシンタックス要素は、inter_layer_pred_enabled_flag、num_inter_layer_ref_pics_minus1、および/またはinter_layer_pred_layer_idc[i]を含みうる。これらのシンタックス要素は、スライスセグメントヘッダでシグナリングされてもよい。この例が図50Cに示される。
1に等しいinter_layer_pred_enabled_flagは、現ピクチャを復号する際にレイヤ間予測が用いられてもよいことを指定する。0に等しいinter_layer_pred_enabled_flagは、レイヤ間予測が現ピクチャを復号する際に用いられないことを指定する。存在しないときに、inter_layer_pred_enabled_flagの値は、0に等しいと推測される。
num_inter_layer_ref_pics_minus1+1は、レイヤ間予測のために現ピクチャを復号する際に用いてもよいピクチャの数を指定する。num_inter_layer_ref_pics_minus1シンタックス要素の長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。num_inter_layer_ref_pics_minus1の値は、両端値を含めて、0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内にあるものとする。
変数NumActiveRefLayerPicsは、次のように導出される、すなわち、
符号化ピクチャのすべてのスライスは、NumActiveRefLayerPicsの同じ値を有するものとする。
inter_layer_pred_layer_idc[i]は、レイヤ間予測のために現ピクチャによって用いられてもよいi番目のピクチャのnuh_layer_idを表す、変数RefPicLayerId[i]を指定する。シンタックス要素inter_layer_pred_layer_idc[i]の長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。inter_layer_pred_layer_idc[i]の値は、両端値を含めて、0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内にありうる。存在しないときに、inter_layer_pred_layer_idc[i]の値は、0に等しいと推測される。
iが0より大きいときに、inter_layer_pred_layer_idc[i]は、inter_layer_pred_layer_idc[i−1]より大きいものとする。
両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの各値に対する変数RefPicLayerId[i]、NumActiveMotionPredRefLayers、および両端値を含めて、0からNumActiveMotionPredRefLayers−1までの範囲内のjの各値に対するActiveMotionPredRefLayerId[j]は、次のようの導出される、すなわち、
ある1つのピクチャのすべてのスライスは、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの各値に対してinter_layer_pred_layer_idc[i]の同じ値を有するものとする。
いくつかのケースでは、シンタックス要素max_tid_il_ref_pics_plus1[i]の現在のセットが0にセットされる必要がある。かかる制約条件は、layer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャがレイヤ間予測のための参照として確実に用いられないようにするであろう。
別の実施形態では、max_tid_il_ref_pics_plus1[i]が0に等しくセットされる必要があるという制約条件は、ビットストリーム内でシグナリングされた過去のデータ、例えば、プロファイル値および/またはレベル値に基づいて推測されてもよい。この制約条件がある1つのビットストリーム適合性要件であってもよい。このように、ある1つのレイヤの最も低いサブレイヤのみが用いられる。
いくつかのケースでは、現レイヤ・ピクチャを復号するために必要とされる複数のピクチャの参照レイヤ・サブセット内で(レイヤ間サンプル値予測のために)動き補償を用いてもよい、連続した参照レイヤ・ピクチャの最大数に対しても、制限、例えば、c_maxがセットされてもよい。この制約条件は、デコーダの複雑さに対する制約条件を緩和する、生じうる「クランピング」の量を制限する。
別の実施形態では、c_maxの値が、例えば、プロファイル値および/またはレベル値のような、ビットストリーム内でシグナリングされた過去のデータに基づいて推測されてもよい。別の例では、c_maxが、例えば、シーケンスパラメータセット(SPS)内および/またはビデオパラメータセット(VPS)内のような、ビットストリーム内の然るべき位置で明示的にシグナリングされてもよい。
典型的なケースでは、ある1つのレイヤがすべてのNALユニットに関するテンポラル識別子値を0にセットしてもよい。例えば、このケースでは、nuh_temporal_id_plus1は、そのレイヤに属するすべてのピクチャに関して1にセットされてもよい。このタイプのアサインメントは、HEVC共通テスト条件に用いられる。このケースでは、TemporalIdに基づく制約条件は、指定されなくてもよいか、または有効ではないことがある。
このケースでは、次の制約条件が課されてもよい、すなわち、ビットストリーム適合性のある1つの要件は、サブレイヤ非参照ピクチャがレイヤ間予測に用いられないことである。サブレイヤ非参照ピクチャは、復号順に同じサブレイヤの後続のピクチャの復号処理でインター予測のために用いることができないサンプルを含むピクチャであってもよい。
サブレイヤ非参照ピクチャのうちのサンプルは、復号順に高い方のサブレイヤの後続のピクチャの復号処理でインター予測のために用いられてもよい。
サブレイヤ参照ピクチャは、復号順に同じサブレイヤの後続のピクチャの復号処理でインター予測のために用いてもよいサンプルを含むピクチャであってもよい。サブレイヤ参照ピクチャのうちのサンプルは、さらに、復号順に高い方のサブレイヤの後続のピクチャの復号処理でインター予測のために用いられてよい。
代わりの実施形態では、追加の制約条件が次のように課されてもよい、すなわち、(1)ビットストリーム適合性のある1つの要件は、レイヤ間予測に利用可能な参照レイヤ中に多くても毎秒s_max個のサブレイヤ参照ピクチャがありうることか、および/または(2)ビットストリーム適合性のある1つの要件は、レイヤ間予測に利用可能な参照レイヤ中に少なくとも毎秒s_min個のサブレイヤ非参照ピクチャがなければならないことである。
別の実施形態では、以下の追加の制約条件が次のように課されてもよい、すなわち、(1)ビットストリーム適合性のある1つの要件は、layer_id_in_nuh[i]に等しいnuh_layer_idをもち、TemporalIdがmax_tid_il_ref_pics_plus1[i]に等しいレイヤ中に多くとも毎秒s_max個のサブレイヤ参照ピクチャがありうることか、および/または(2)ビットストリーム適合性のある1つの要件は、layer_id_in_nuh[i]に等しいnuh_layer_idをもち、TemporalIdがmax_tid_il_ref_pics_plus1[i]に等しいレイヤ中に少なくとも毎秒s_min個のサブレイヤ非参照ピクチャがなければならないことである。
別の実施形態では、以下の制約条件が次のように課されてもよい、すなわち、(1)ビットストリーム適合性のある1つの要件は、nuh_temporal_id_plus1がすべてのピクチャに関して1にセットされ、サブレイヤ非参照ピクチャがレイヤ間予測に用いられないこと、およびある1つのレイヤ中に多くとも毎秒s_max個のサブレイヤ参照ピクチャがありうることか、および/または(2)ビットストリーム適合性のある1つの要件は、nuh_temporal_id_plus1がすべてのピクチャに関して1にセットされ、サブレイヤ非参照ピクチャがレイヤ間予測に用いられないこと、およびある1つのレイヤ中に少なくとも毎秒s_min個のサブレイヤ非参照ピクチャがなければならないことである。
前述の制約条件(単数または複数)に対する動機は、サブレイヤ非参照ピクチャが、好ましくは、復号順に同じサブレイヤの後続のピクチャの復号処理でインター予測のために用いられないことである。従って、ターゲットレイヤを復号するときに、参照レイヤからの複数のピクチャに対して復号および動き補償を行う必要なしにそれらを破棄できるであろう。
サブレイヤ非参照ピクチャに係る指標をレイヤ間予測に関してシグナリングするために用いてもよいいくつかの異なる技術がある。
図51を参照すると、一実施形態において、サブレイヤ非参照ピクチャがレイヤ間予測に用いられないことを示すために、ある1つのフラグが、第1のシンタックスの変形例を用いて、参照レイヤごとにVPSでシグナリングされてもよい。no_sub_layer_non_ref_inter_layer_sample_pred_flag[i]がある1つのレイヤに関して1としてシグナリングされるならば、そのレイヤからのサブレイヤ非参照ピクチャは、これらのレイヤ間のレイヤ間予測には用いられない。
1に等しいno_sub_layer_non_ref_inter_layer_sample_pred_flag[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられないことを指定する。0に等しいno_sub_layer_non_ref_inter_layer_sample_pred_flag[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられてもよいことを指定する。存在しないときに、no_sub_layer_non_ref_inter_layer_sample_pred_flag[i]は、0に等しいと推測される。
図51のシンタックスの別の変形例、TemporalIdごとにそのTemporalIdのサブレイヤ非参照ピクチャがレイヤ間予測に用いられるかどうかを示すために、ある1つのフラグがシグナリングされてもよい。このための第1の変形例は、そのフラグが、レイヤごとにmax_tid_il_ref_pics_plus1[i]まで、しかしそれを含まない各TemporalId値に関してシグナリングされる。別のケースでは、そのフラグが、max_tid_il_ref_pics_plus1[i]より小さい、それを含む、およびそれより大きいTemporalId値に関してシグナリングされてもよい。このための第2の変形例は、そのフラグが、レイヤごとに最大TemporalId値まで、およびそれを含む各TemporalId値に関してシグナリングされる。いくつかのケースでは、最大TemporalId値は6であってもよい。
図52を参照すると、別の実施形態では、サブレイヤ非参照ピクチャがレイヤ間予測には用いられないことを示すために、ある1つのフラグが、第2のシンタックスの変形例を用いて、参照レイヤごとにVPSでシグナリングされてもよい。no_sub_layer_non_ref_inter_layer_sample_pred_flag[i][j]がある1つの参照レイヤに関して1としてシグナリングされるならば、そのレイヤからのサブレイヤ非参照ピクチャは、これらのレイヤ間のレイヤ間予測には用いられない。このように、システムは、復号される必要のないサブレイヤを復号することを回避し、かつ非参照ピクチャを復号することを回避できて、行われる動き補償処理を削減し、一方では復号ピクチャバッファのサイズも削減する。
図52では、1に等しいno_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i][j]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idおよびjに等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられないことを指定する。0に等しいno_sub_layer_non_ref_inter_layer_sample_pred_flag[i][j]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idおよびjに等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられてもよいことを指定する。存在しないときに、no_sub_layer_non_ref_inter_layer_sample_pred_flag[i][j]は、0に等しいと推測される。
そのうえ、max_tid_il_ref_pics_plus1[i]が0であるときに、layer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャがレイヤ間予測のための参照として用いられることはない。このケースでは、no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i][j]は、シグナリングされなくてもよく、0であると推測される。
図53を参照すると、さらに別の実施形態では、サブレイヤ非参照ピクチャがレイヤ間予測に用いられないことを示すために、ある1つのフラグが、第3のシンタックスの変形例を用いて、参照レイヤごとにVPSでシグナリングされてもよい。あるレイヤからのサブレイヤ非参照ピクチャ、このレイヤはレイヤ間のレイヤ間予測には用いられないのであるが、に対応するレイヤにおいて、no_sub_layer_non_ref_inter_layer_sample_pred_flag[i][j]がその1つレイヤに関して1としてシグナリングされる。留意すべきは、最大テンポラルIDが7[for(j=0;j<7;i++)]にセットされてもよいことである。このように、システムは、復号される必要のないサブレイヤおよびサブレイヤの非参照ピクチャを復号することを回避できて、行われる動き補償処理を削減し、一方では復号ピクチャバッファのサイズも削減する。
図53では、1に等しいno_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i][j]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idおよびjに等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられないことを指定する。0に等しいno_sub_layer_non_ref_inter_layer_sample_pred_flag[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idおよびjに等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられてもよいことを指定する。存在しないときに、no_sub_layer_non_ref_inter_layer_sample_pred_flag[i][j]は、0に等しいと推測される。
そのうえ、max_tid_il_ref_pics_plus1[i]が0であるときに、layer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャは、レイヤ間参照予測のための参照として用いられない。このケースでは、no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i][j]は、シグナリングされず、0であると推測される。
図54を参照すると、さらに別の実施形態では、複数のレイヤおよびサブレイヤの使用に対する制限を示すために、ある1つのフラグが、第4のシンタックスの変形例を用いて、レイヤごとにVPSでシグナリングされてもよい。1に等しいno_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idおよびmax_tid_il_ref_pics_plus1[i]−1に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられないことを指定する。0に等しいno_sub_layer_non_ref_inter_layer_sample_pred_flag[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idおよびmax_tid_il_ref_pics_plus1[i]−1に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられてもよいことを指定する。存在しないときに、no_sub_layer_non_ref_inter_layer_sample_pred_flag[i][j]は、0に等しいと推測される。
max_tid_il_ref_pics_plus1[i]が0であるときに、layer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャは、レイヤ間参照予測のための参照として用いられない。このケースでは、no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i][j]は、シグナリングされず、0であると推測される。
図55、および図58Aに示される別の実施形態を参照すると、さらに別の実施形態では、複数のレイヤおよびサブレイヤの使用に対する制限を示すために、ある1つのフラグが、第5のシンタックスの変形例を用いて、レイヤごとにVPSでシグナリングされてもよい。no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i]が1に等しければ、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i]が7より小さければmax_tid_il_ref_pics_plus1[i]−1に等しく、そうでない場合にはvps_max_sub_layers_minus1+1に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられないことを指定する。0に等しいno_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i]が7より小さければmax_tid_il_ref_pics_plus1[i]−1に等しく、そうでない場合にはvps_max_sub_layers_minus1+1に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられてもよいことを指定する。存在しないときに、no_sub_layer_non_ref_inter_layer_sample_pred_flag[i][j]は、0に等しいと推測される。
max_tid_il_ref_pics_plus1[i]が0であるときに、layer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャは、レイヤ間参照予測のための参照として用いられない。このケースでは、no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i]は、シグナリングされず、0であると推測される。
図55、および図56Aに示される別の実施形態を参照すると、さらに別の実施形態では、複数のレイヤおよびサブレイヤの使用に対する制限を示すために、ある1つのフラグが、第5のシンタックスの変形例を用いて、レイヤごとにVPSでシグナリングされてもよい。no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i]が1に等しければ、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i]が7より小さければmax_tid_il_ref_pics_plus1[i]−1に等しく、そうでない場合にはvps_max_sub_layers_minus1に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられないことを指定する。0に等しいno_sub_layer_non_ref_inter_layer_sample_pred_flag[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i]が7より小さければmax_tid_il_ref_pics_plus1[i]−1に等しく、そうでない場合にはvps_max_sub_layers_minus1+1に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられてもよいことを指定する。存在しないときに、no_sub_layer_non_ref_inter_layer_sample_pred_flag[i][j]は、0に等しいと推測される。
max_tid_il_ref_pics_plus1[i]が0であるときに、layer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャは、レイヤ間参照予測のための参照として用いられない。このケースでは、no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i]は、シグナリングされず、0であると推測される。
図55、および図58Aに示される別の実施形態を参照すると、さらに別の実施形態では、複数のレイヤおよびサブレイヤの使用に対する制限を示すために、ある1つのフラグが、第5のシンタックスの変形例を用いて、レイヤごとにVPSでシグナリングされてもよい。no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i]が1に等しければ、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i]が7より小さければmax_tid_il_ref_pics_plus1[i]−1に等しく、そうでない場合にはインデックスiをもつレイヤのアクティブSPSからのsps_max_sub_layers_minus1に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられないことを指定する。0に等しいno_sub_layer_non_ref_inter_layer_sample_pred_flag[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i]が7より小さければmax_tid_il_ref_pics_plus1[i]−1に等しく、そうでない場合にはインデックスiをもつレイヤのアクティブSPSからのsps_max_sub_layers_minus1に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられてもよいことを指定する。存在しないときに、no_sub_layer_non_ref_inter_layer_sample_pred_flag[i][j]は、0に等しいと推測される。
max_tid_il_ref_pics_plus1[i]が0であるときに、layer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャは、レイヤ間参照予測のための参照として用いられない。このケースでは、no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i]は、シグナリングされず、0であると推測される。
図55、および図56に示される別の実施形態を参照すると、さらに別の実施形態では、複数のレイヤおよびサブレイヤの使用に対する制限を示すために、ある1つのフラグが、第5のシンタックスの変形例を用いて、レイヤごとにVPSでシグナリングされてもよい。no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i]が1に等しければ、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i]が7より小さければmax_tid_il_ref_pics_plus1[i]−1に等しく、そうでない場合にはインデックスiをもつレイヤにおけるテンポラル・サブレイヤの最大数に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられないことを指定する。0に等しいno_sub_layer_non_ref_inter_layer_sample_pred_flag[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i]が7より小さければmax_tid_il_ref_pics_plus1[i]−1に等しく、そうでない場合にはインデックスiをもつレイヤにおけるテンポラル・サブレイヤの最大数に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられてもよいことを指定する。存在しないときに、no_sub_layer_non_ref_inter_layer_sample_pred_flag[i][j]は、0に等しいと推測される。
max_tid_il_ref_pics_plus1[i]が0であるときに、layer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャは、レイヤ間参照予測のための参照として用いられない。このケースでは、no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i]は、シグナリングされず、0であると推測される。
さらに別の実施形態では、複数のレイヤおよびサブレイヤの使用に対する制限を示すために、ある1つのフラグが、第5のシンタックスの変形例を用いて、レイヤごとにVPSでシグナリングされてもよい。no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i]が1に等しければ、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i]が7より小さければmax_tid_il_ref_pics_plus1[i]−1に等しく、そうでない場合にはvps_max_sub_layers_minus1に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられないことを指定する。0に等しいno_sub_layer_non_ref_inter_layer_sample_pred_flag[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i]が7より小さければmax_tid_il_ref_pics_plus1[i]−1に等しく、そうでない場合にはvps_max_sub_layers_minus1+1に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられてもよいことを指定する。存在しないときに、no_sub_layer_non_ref_inter_layer_sample_pred_flag[i][j]は、0に等しいと推測される。
vps_max_sub_layers_minus1は、VPS中で定義されてもよい。vps_max_sub_layers_minus1+1がビットストリーム中に存在しうるテンポラル・サブレイヤの最大数を指定してもよい。vps_max_sub_layers_minus1の値は、両端値を含めて、0から6までの範囲内にありうる。
図57を参照すると、さらに別の実施形態では、複数のレイヤおよびサブレイヤの使用に対する制限を示すために、ある1つのフラグが、第6のシンタックスの変形例を用いて、レイヤごとにVPSでシグナリングされてもよい。no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i][j]が1に等しければ、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idおよびjに等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられないことを指定する。0に等しいno_sub_layer_non_ref_inter_layer_sample_pred_flag[i]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idおよびjに等しいTemporalIdをもつサブレイヤ非参照ピクチャが、レイヤ間予測のための参照として用いられてもよいことを指定する。存在しないときに、no_sub_layer_non_ref_inter_layer_sample_pred_flag[i][j]は、0に等しいと推測される。
max_tid_il_ref_pics_plus1[i]が0であるときに、layer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャは、レイヤ間参照予測のための参照として用いられない。このケースでは、no_sub_layer_non_ref_inter_layer_sample_pred_tid_flag[i][j]は、シグナリングされず、0であると推測される。
スケーラブルビデオ符号化ビデオのため、および多視点符号化ビデオのための復号処理は、所望により、修正されたシンタックス構造、およびレイヤ間予測に必要とされないサブレイヤ非参照ピクチャのためのマーク付け処理に対応するように修正されてもよい。
図51、図54、図55および図56に示されるシグナリング例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの任意の値に対して、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]]が1に等しくないことであってもよい。
図51、図54、図55および図56に示されるシグナリング例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの任意の値に対して、RefPicLayerId[i]に等しいnuh_layer_id値をもつ現アクセスユニットにおけるピクチャがサブレイヤ非参照ピクチャであれば、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]]が1に等しくないことであってもよい。
図51、図54、図55および図56に示されるシグナリング例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの任意の値に対して、RefLayerId[nuh_layer_id][inter_layer_pred_layer_idc[i]]に等しいnuh_layer_id値をもつ現アクセスユニットにおけるピクチャがサブレイヤ非参照ピクチャであれば、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]]が1に等しくないことであってもよい。
図51、図54、図55および図56に示されるシグナリング例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、RefPicLayerId[i]に等しいnuh_layer_id値をもつ現アクセスユニットにおけるピクチャがサブレイヤ非参照ピクチャであり、かつ、RefPicLayerId[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャのTemporalIdが、max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]が7より小さければmax_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]−1に等しく、そうでない場合にはピクチャRefPicLayerId[i]のレイヤのアクティブSPSからのsps_max_sub_layers_minus1に等しければ、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]]が1に等しくないことであってもよい。
図51、図54、図55および図56に示されるシグナリング例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、RefPicLayerId[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャがサブレイヤ非参照ピクチャであり、かつ、RefPicLayerId[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャのTemporalIdが、max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]が7より小さければmax_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]−1に等しく、そうでない場合にはvps_max_sub_layers_minus1に等しければ、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]]が1に等しくないことであってもよい。
図51、図54、図55および図56に示されるシグナリング例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、RefPicLayerId[i]に等しいnuh_layer_id値をもつ現アクセスユニットにおけるピクチャがサブレイヤ非参照ピクチャであり、かつ、RefPicLayerId[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャのTemporalIdが、max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]が7より小さければmax_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]−1に等しく、そうでない場合にはvps_max_sub_layers_minus1に等しければ、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]]が1に等しくないことであってもよい。
図51、図54、図55および図56に示されるシグナリング例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの必要条件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、RefPicLayerId[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャがサブレイヤ非参照ピクチャであり、かつ、RefPicLayerId[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャのTemporalIdが、max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]が7より小さければmax_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]−1に等しく、そうでない場合にはピクチャRefPicLayerId[i]のレイヤにおけるテンポラル・サブレイヤの最大数に等しければ、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]]が1に等しくないことである。
図51、図54、図55および図56に示されるシグナリング例のためのマーク付け処理は、例えば、次のように修正されてもよい。
この処理への入力は、nuh_layer_id値latestDecLayerIdであってもよい。この処理の出力は、いくつかの復号ピクチャのための「参照に用いられない」という潜在的に更新されたマーク付けであってもよい。留意すべきは、この処理がインター予測またはレイヤ間予測に必要とされないピクチャを「参照に用いられない」とマーク付けすることである。TemporalIdがHighestTidより小さいときには、インター予測における参照のために現ピクチャが用いられてもよく、この処理は起動されない。
変数numTargetDecLayers、およびlatestDecIdxは、次のように導出されてもよい。numTargetDecLayersがTargetDecLayerIdList中のエントリの数に等しくセットされる。latestDecIdxが、TargetDecLayerIdList[i]がlatestDecLayerIdに等しいiの値に等しくセットされる。
両端値を含めて、0からlatestDecIdxまでの範囲内のiに対して、ピクチャを「参照に用いられない」とマーク付けするために以下が適用されてもよい。TargetDecLayerIdList[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャをcurrPicとしよう。currPicが「参照に用いられない」とマーク付けされ、かつサブレイヤ非参照ピクチャであるときには、以下が適用される、すなわち、
変数currTidがcurrPicのTemporalIdの値に等しくセットされる。
変数remainingInterLayerReferencesFlagが以下で指定されるように導出される、すなわち、
remainingInterLayerReferenceFlagが0に等しいときに、currPicが「参照に用いられない」とマーク付けされる。
別の実施形態では、図51、図54、図55および図56に示されるシグナリング例のためのマーク付け処理は、例えば、次のように修正されてもよい。
この処理への入力は、nuh_layer_id値latestDecLayerIdであってもよい。この処理の出力は、いくつかの復号ピクチャのための「参照に用いられない」という潜在的に更新されたマーク付けであってもよい。留意すべきは、この処理がインター予測またはレイヤ間予測に必要とされないピクチャを「参照に用いられない」とマーク付けすることである。TemporalIdがHighestTidより小さいときには、インター予測における参照のために現ピクチャが用いられてもよく、この処理は起動されない。変数numTargetDecLayers、およびlatestDecIdxは、次のように導出されてもよい。numTargetDecLayersがTargetDecLayerIdList中のエントリの数に等しくセットされる。latestDecIdxが、TargetDecLayerIdList[i]がlatestDecLayerIdに等しいiの値に等しくセットされる。
両端値を含めて、0からlatestDecIdxまでの範囲内のiに対して、ピクチャを「参照に用いられない」とマーク付けするために以下が適用されてもよい、TargetDecLayerIdList[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャをcurrPicとしよう。currPicが「参照に用いられない」とマーク付けされ、かつサブレイヤ非参照ピクチャであるときには、以下が適用される、すなわち、
変数currTidがcurrPicのTemporalIdの値に等しくセットされる。
変数remainingInterLayerReferencesFlagが以下で指定されるように導出される、すなわち、
remainingInterLayerReferenceFlagが0に等しいときに、currPicが「参照に用いられない」とマーク付けされる。
図52、図53、および図57に示されるシグナリング例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの任意値に対して、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]][TemporalId]が1に等しくないことである。
図52、図53、および図57に示される例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの任意の値に対して、RefPicLayerId[i]に等しいnuh_layer_id値をもつ現アクセスユニットにおけるピクチャがサブレイヤ非参照ピクチャであれば、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]][TemporalId]が1に等しくないことである。
図52、図53、および図57に示される例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの任意の値に対して、RefLayerId[nuh_layer_id][inter_layer_pred_layer_idc[i]]に等しいnuh_layer_id値をもつ現アクセスユニットにおけるピクチャがサブレイヤ非参照ピクチャであれば、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]][TemporalId]が1に等しくないことである。
図52、図53、および図57に示される例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの任意の値に対して、RefPicLayerId[i]に等しいnuh_layer_id値をもつ現アクセスユニットにおけるピクチャがサブレイヤ非参照ピクチャであり、かつ、RefPicLayerId[i]に等しいnuh_layer_id値をもつ現アクセスユニットにおけるピクチャのTemporalId TemporalIdxが、max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]が7より小さければmax_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]−1に等しく、そうでない場合にはピクチャRefPicLayerId[i]のレイヤのアクティブSPSからのsps_max_sub_layers_minus1に等しければ、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]][TemporalId]が1に等しくないことである。
図52、図53、および図57に示される例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの任意の値に対して、RefPicLayerId[i]に等しいnuh_layer_id値をもつ現アクセスユニットにおけるピクチャがサブレイヤ非参照ピクチャであり、かつ、RefPicLayerId[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャのTemporalId TemporalIdxが、max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]が7より小さければmax_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]−1に等しく、そうでない場合にはvps_max_sub_layers_minus1に等しければ、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]][TemporalIdx]が1に等しくないことである。
図52、図53、および図57に示される例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの任意の値に対して、RefPicLayerId[i]に等しいnuh_layer_id値をもつ現アクセスユニットにおけるピクチャがサブレイヤ非参照ピクチャであり、かつ、RefPicLayerId[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャのTemporalId TemporalIdxが、max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]が7より小さければmax_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]−1に等しく、そうでない場合にはvps_max_sub_layers_minus1+1に等しければ、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]][TemporalIdx]が1に等しくないことである。
図52、図53、および図57に示される例のための復号処理は、例えば、次のように修正されてもよい。ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの任意の値に対して、RefPicLayerId[i]に等しいnuh_layer_id値をもつ現アクセスユニットにおけるピクチャがサブレイヤ非参照ピクチャであり、かつ、RefPicLayerId[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャのTemporalId TemporalIdxが、max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]が7より小さければmax_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]−1に等しく、そうでない場合にはピクチャRefPicLayerId[i]のレイヤにおけるテンポラル・サブレイヤの最大数に等しければ、no_sub_layer_non_ref_inter_layer_sample_pred_flag[LayerIdxInVps[RefPicLayerId[i]][TemporalIdx]が1に等しくないことである。
図52、図53、および図57に示されるシグナリング例のためのマーク付け処理は、例えば、次のように修正されてもよい。
この処理への入力は、nuh_layer_id値latestDecLayerIdであってもよい。この処理の出力は、いくつかの復号ピクチャのための「参照に用いられない」という潜在的に更新されたマーク付けであってもよい。留意すべきは、この処理がインター予測またはレイヤ間予測に必要とされないピクチャを「参照に用いられない」とマーク付けすることである。TemporalIdがHighestTidより小さいときには、インター予測における参照のために現ピクチャが用いられてもよく、この処理は起動されない。
変数numTargetDecLayers、およびlatestDecIdxは、次のように導出されてもよい。numTargetDecLayersがTargetDecLayerIdList中のエントリの数に等しくセットされる。latestDecIdxが、TargetDecLayerIdList[i]がlatestDecLayerIdに等しいiの値に等しくセットされる。
両端値を含めて、0からlatestDecIdxまでの範囲内のiに対して、ピクチャを「参照に用いられない」とマーク付けするために以下が適用されてもよい、すなわち、TargetDecLayerIdList[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャをcurrPicとしよう。
currPicが「参照に用いられない」とマーク付けされ、かつサブレイヤ非参照ピクチャであるときには、以下が適用される、すなわち、
変数currTidがcurrPicのTemporalIdの値に等しくセットされる。
変数remainingInterLayerReferencesFlagは、以下に指定されるように導出されてもよい、すなわち、
remainingInterLayerReferenceFlagが0に等しいときに、currPicが「参照に用いられない」とマーク付けされる。
別の実施形態では、図52、図53、および図57に示されるシグナリング例のためのマーク付け処理は、例えば、次のように修正されてもよい。
この処理への入力は、nuh_layer_id値latestDecLayerIdであってもよい。この処理の出力は、いくつかの復号ピクチャのための「参照に用いられない」という潜在的に更新されたマーク付けであってもよい。留意すべきは、この処理がインター予測またはレイヤ間予測に必要とされないピクチャを「参照に用いられない」とマーク付けすることである。TemporalIdがHighestTidより小さいときには、インター予測における参照のために現ピクチャが用いられてもよく、この処理は起動されない。
変数numTargetDecLayers、およびlatestDecIdxは、次のように導出されてもよい。numTargetDecLayersがTargetDecLayerIdList中のエントリの数に等しくセットされる。latestDecIdxが、TargetDecLayerIdList[i]がlatestDecLayerIdに等しいiの値に等しくセットされる。
両端値を含めて、0からlatestDecIdxまでの範囲内のiに対して、ピクチャを「参照に用いられない」とマーク付けするために以下が適用されてもよい、すなわち、
TargetDecLayerIdList[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャをcurrPicとしよう。
currPicが「参照に用いられない」とマーク付けされ、かつサブレイヤ非参照ピクチャであるときには、以下が適用される、すなわち、
変数currTidがcurrPicのTemporalIdの値に等しくセットされる。
変数remainingInterLayerReferencesFlagは、以下に指定されるように導出されてもよい、すなわち、
remainingInterLayerReferenceFlagが0に等しいときに、currPicが「参照に用いられない」とマーク付けされる。
ビットストリームに対する制約条件を課すために前述の実施形態、またはそれらの部分の任意の組み合わせが用いられてもよい。
図58を参照すると、300fpsのフレーム(ピクチャ)レートをもつソースを考慮して、MaxRefLyrMCLumaSrが現動作点のサンプル/秒単位の最大参照レイヤMCレートを指定する。最大輝度参照レイヤMCサンプルレートは、様々なレベルに対する最大参照レイヤMCサンプルレートの例を表す。別の実施形態では、ある1つのプロファイル内の異なるティアに対して異なる最大参照レイヤMCサンプリングレートが指定されてもよい。別の実施形態では、然るべき制約条件を指定するために最大参照レイヤMCサンプリングレート値の異なるセットが用いられてもよい。
図59を参照すると、現動作点のピクチャ/秒単位の最大参照レイヤMCレートに対応するf_maxの値が示される。表は、様々なレベルに対する最大参照レイヤMCピクチャレートの例を表す。別の実施形態では、ある1つのプロファイル内の異なるティアに対して異なる最大参照レイヤMCピクチャレートが指定されてもよい。別の実施形態では、然るべき制約条件を指定するために最大参照レイヤMCピクチャレート値の異なるセットが用いられてもよい。
図60を参照すると、MinCbSizeYが64に等しいときの例えばレベル5から6.2のピクチャサイズにおける最大参照レイヤMCピクチャレートf_max(ピクチャ/秒)が示される。
ある1つの例では、以下がある1つのビットストリーム適合性要件である。変数fRを
1÷300
に等しくセットしよう。レイヤid nuh_layer_idをもつ参照レイヤごとに、両端値を含めて、アクセスユニットnおよび
n−(1÷fR)−1
(nは
(1÷fR)−1
以上)の連続したCPBリムーバル時刻間の差は、以下の制約条件を満たすものとする、すなわち、(max_tid_il_ref_pics_plus1[nuh_layer_id]−1)以下のTemporalIdをもつ複数のサブレイヤおよび、両端値を含めて、nから
n−(1÷fR)−1
に及ぶアクセスユニット内における、インター予測復号処理に対応する従属節のすべての起動に係る(nCbSL)*(nCbSL)の合計は、図58において指定されたMaxRefLyrMCLumaSr値以下であるものとする。nCbSLは、インター予測による輝度予測サンプルの符号化ユニットの高さおよび幅に対応する。ある1つの例では、MaxRefLyrMCLumaSrがMaxRefLyrInterPredLumaSrとラベル付けされてもよい。ある1つの例では、上記の予測サンプル値の数をカウントした合計が予測サンプル値を発生されるためにアクセスされるサンプル値の総数によって置き換えられる。この代わりの合計が次にレベル指定に基づいて同様に制限される。
用語「利用できる」は、品目、例えば、参照レイヤ・ピクチャがありうることを指し、用語「用いられる」は、品目、例えば、参照レイヤ・ピクチャが用いられることを指すが、これらの用語は、一般に、互換的に用いられてもよい。
図50Aおよび図50Bを参照すると、splitting_flagがVPS内のVPS拡張内でシグナリングされてもよい。
1に等しいsplitting_flagは、NALユニットヘッダにおけるnuh_layer_idシンタックス要素の複数のビットがdimension_id_len_minus1[i]シンタックス要素の値に従って、ビット単位の、長さをもつn個のセグメントに分割されること、およびこのn個のセグメントがscalability_mask_flag[i]において示されるn個のスケーラビリティ・ディメンジョンと関連付けられることを示しうる。splitting_flagが1に等しいときには、i番目のレイヤのnuh_layer_idのj番目のセグメントがdimension_id[i][j]の値に等しくてもよい。0に等しいsplitting_flagは、上記の制約条件を示さなくてもよい。
splitting_flagが1に等しく、すなわち、以下に記載されるdimension_id[i][j]シンタックス要素のセマンティクスでレポートされる制限に従いうるときには、dimension_id[i][j]シンタックス要素のセマンティクスでレポートされるような導出の代わりとして、スケーラブル識別子をNALユニットヘッダにおけるnuh_layer_idシンタックス要素からある1つのビットマスクされたコピーによって導出できる。i番目のスケーラブル・ディメンジョンに対するそれぞれのビットマスクは、dimension_id_len_minus1[j]のセマンティクスにおいて指定されるようなdimension_id_len_minus1[i]シンタックス要素の値およびdimBitOffset[i]によって定義される。
1に等しいscalability_mask[i]は、表F−1におけるi番目のスケーラビリティ・ディメンジョンに対応するdimension_idシンタックス要素が存在することを示しうる。0に等しいscalability_mask[i]は、i番目のスケーラビリティ・ディメンジョンに対応するdimension_idシンタックス要素が存在しないことを示しうる。
一実施形態において、scalability_maskインデックス0は、スケーラビリティ・ディメンジョン「多視点」を示してもよく、「ViewId」のScalabilityIdに対応付けられてもよい。一実施形態において、scalability_maskインデックス1は、スケーラビリティ・ディメンジョン「空間/SNRスケーラビリティ」を示してもよく、「DependencyId」のScalabilityIdに対応付けられてもよい。一実施形態において、両端値を含めて2から15までの範囲内のscalability_maskインデックスは、将来に定義されてもよい予約されたスケーラビリティを示しうる。
dimension_id_len_minus1[j]+1は、dimension_id[i][j]シンタックス要素の、ビット単位の、長さを指定してもよい。変数dimBitOffset[0]は、0に等しくセットされ、両端値を含めて、1から(NumScalabilityTypes−splitting_flag)までの範囲内のjに対して、dimBitOffset[j]は、次のように導出される。
dimension_id_len_minus1[NumScalabilityTypes−1]が存在しないときには、以下が適用されてもよい、すなわち、
−dimension_id_len_minus1[NumScalabilityTypes−1]の値が5−dimBitOffset[NumScalabilityTypes−1]に等しいと推測される。
−dimBitOffset[NumScalabilityTypes]の値が6に等しくセットされる。
vps_nuh_layer_id_present_flagが、layer_id_in_nuh[i]シンタックスが存在するかどうかを指定してもよい。
layer_id_in_nuh[i]がi番目のレイヤのVCL NALユニットにおけるnuh_layer_idシンタックス要素の値を指定してもよい。両端値を含めて、0からvps_max_layers_minus1までの範囲内のiに対して、存在しないときに、layer_id_in_nuh[i]の値は、iに等しいと推測される。
iが0より大きいときに、layer_id_in_nuh[i]は、layer_id_in_nuh[i−1]より大きいものとする。
両端値を含めて、0からvps_max_layers_minus1までの範囲内のiに対して、変数LayerIdxInVps[layer_id_in_nuh[i]]がiに等しくセットされる。
dimension_id[i][j]がi番目のレイヤのj番目の現スケーラビリティ・ディメンジョン・タイプを指定してもよい。dimension_id[i][j]の表現に用いられるビットの数は、dimension_id_len_minus1[j]+1ビットである。両端値を含めて、0からNumScalabilityTypes−1までの範囲内のjに対してdimension_id[i][j]が存在しないときに、dimension_id[i][j]は、((layer_id_in_nuh[i]&((1<<dimBitOffset[j+1])−1))>>dimBitOffset[j])に等しいと推測される。
i番目のレイヤのsmIdx番目のスケーラビリティ・ディメンジョン・タイプの識別子を指定する変数ScalabilityId[i][smIdx]、i番目のレイヤのビュー識別子を指定する変数ViewId[layer_id_in_nuh[i]]、i番目のレイヤがビュー・スケーラビリティ拡張レイヤであるかどうかを指定する変数ViewScalExtLayerFlag、およびi番目のレイヤの空間/SNRスケーラビリティ識別子を指定するDependencyId[layer_id_in_nuh[i]]は、次のように導出される、すなわち、
一実施形態において、splitting_flagが1に等しいときには、dimension_id_len_minus1[i]シンタックス要素に対するある1つのビットストリーム要件に従う必要があるうる。
splitting_flagが1に等しいときには、NALユニットヘッダにおけるnuh_layer_idシンタックス要素中の複数のビットがdimension_id_len_minus1[i]シンタックス要素の値に従ってビット単位の長さをもつn個のセグメントに分割され、そのn個のセグメントがscalability_mask_flag[i]において示されるn個のスケーラビリティ・ディメンジョンと関連付けられるため、この制約条件が実施され、かつ必要でありうる。nuh_layer_idは、NALユニットヘッダでu(6)として符号化されるので、splitting_flagが1に等しいときには、以下に記載される複数のビットストリーム要件が、dimension_id_len_minus1[i]に関してシグナリングされる値が確実に有意義であるようにする。
一実施形態において、ビットストリーム適合性のある1つの要件は、splitting_flagが1に等しいときにすべての(dimension_id_len_minus1[j]+1)要素の値の合計が6以下であることである。
別の実施形態では、ビットストリーム適合性のある1つの要件は、splitting_flagが1に等しいときにすべての(dimension_id_len_minus1[j]+1)要素の合計が6以下であることである。
上記のビットストリーム制約条件のいくつかの追加のバリアントが以下に記載される。
ビットストリーム適合性のある1つの要件は、splitting_flagが1に等しいときに両端値を含めて0からNumScalabilityTypes−1に及ぶjに対するすべての(dimension_id_len_minus1[j]+1)要素の合計が6以下であることである。
一実施形態において、ビットストリーム適合性のある1つの要件は、splitting_flagが1に等しいときにすべてのdimension_id_len_minus1[j]シンタックス要素の合計が(6ーNumScalabilityTypes)以下であることである。
一実施形態において、ビットストリーム適合性のある1つの要件は、splitting_flagが1に等しいときにすべての(dimension_id_len_minus1[j]+1)要素の合計が6以下であることである。従って、以下が必要とされる。
一実施形態において、ビットストリーム適合性のある1つの要件は、splitting_flagが1に等しいときにすべての(dimension_id_len_minus1[j]+1)要素の合計が6以下であることである。従って、以下が必要とされる。
さらに別の実施形態では、ビットストリーム適合性のある1つの要件は、splitting_flagが1に等しいときにすべての(dimension_id_len_minus1[j]+1)要素の合計がnuh_layer_idシンタックス要素をシグナリングするために用いられるビットの数以下であることである。いくつかの実施形態において、このnuh_layer_idシンタックス要素は、NALユニットヘッダでシグナリングされてもよい。
前に記載されたように、HEVC、SHVC、およびMV−HEVCにおいて、サブレイヤ非参照ピクチャは、一対の制約条件を含むある1つのピクチャである。第1の制約条件は、サブレイヤ非参照ピクチャが復号順に同じテンポラル・サブレイヤの後続のピクチャの復号処理においてインター予測のために用いることができないサンプルを含むことである。第2の制約条件は、サブレイヤ非参照ピクチャが復号順に高い方のテンポラル・サブレイヤの後続のピクチャの復号処理において(すなわち、復号順に低い方のサブレイヤの後続のピクチャに対してではない)インター予測のために用いてもよいサンプルを含むことである。
いずれも参照によりその全体が本明細書に組み込まれる、JCTVC−O1008およびJCT3V−F1004において、max_tid_il_ref_pics_plus1[i][j]値は、ビデオパラメータセット(VPS)拡張でシグナリングされる。0に等しいmax_tid_il_ref_pics_plus1[i][j]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャが、layer_id_in_nuh[j]に等しいnuh_layer_idをもつピクチャに関するレイヤ間予測のための参照として用いられないことを指定する。0より大きいmax_tid_il_ref_pics_plus1[i][j]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i][j]−1より大きいTemporalIdをもつピクチャが、layer_id_in_nuh[j]に等しいnuh_layer_idをもつピクチャに関するレイヤ間予測のための参照として用いられないことを指定する。
HEVC、SHVC、およびMV−HEVCは、マルチループ復号技術を組み込む。例えば、ビットストリームは、レイヤ0、1、および2を含みうる。レイヤ2を復号することが望ましい場合には、レイヤ0およびレイヤ1がレイヤ2のための参照レイヤとして用いられるならば、デコーダは、レイヤ1およびレイヤ0を復号する必要がある。これは、レイヤ2のみが復号され、表示もしくは再生されることが望ましいのに、レイヤ0および1を復号する計算に手間のかかるタスクである。いくつかのケースでは、レイヤ2がターゲットレイヤと呼ばれてもよい。かかるマルチループ・デコーダは、有効であるが、望ましいのは、特に選択されたレイヤに関して、低複雑度のビットストリーム復号をかかるマルチループ・デコーダを用いて可能にすることである。
HEVC、SHVC、およびMV−HEVCに特に適する、マルチループ・デコーダの複雑度を低減するための1つの技術は、ある1つのレイヤの最も高いテンポラル・サブレイヤにおける複数のピクチャをサブレイヤ参照ピクチャおよびサブレイヤ非参照ピクチャに分割することによってある1つの指標をmax_tid_il_ref_pics_plus1[i][j]に追加し、サブレイヤ非参照ピクチャが他のレイヤのレイヤ間予測に用いられないかどうかを示すことを許容することである。サブレイヤ非参照ピクチャは、復号順に同じテンポラル・サブレイヤの後続のピクチャの復号処理においてインター予測のために用いることができないサンプルを含むため、この指標は、最も高いテンポラル・サブレイヤに対して有用である。従って、これらのピクチャは、修正された指標を用いて破棄されてもよく、結果として、ターゲットレイヤを復号するときに参照レイヤ・ピクチャに対して行われる必要がある参照ピクチャの復号および動き補償の複雑度を低減するのに役立つ。
前述の低複雑度技術は、エンコーダ(例えば、結果として生じるビットストリーム)がnuh_temporal_id_plus1のアサインメントを用いておらず、従って、すべてのピクチャに対して1に等しいnuh_temporal_id_plus1の値を割り当てたときに有用である。例えば、HM共通条件のような構成を用いて作り出された既存のHEVCベースレイヤ・ビットストリームがこのケースであろう。このケースでは、HEVCベースレイヤTemporalId0に属するサブレイヤ非参照ピクチャがレイヤ間予測に用いられないかどうかのある1つの指標を提供することによって低複雑度復号に対するサポートを示すために、修正された指標が依然として用いられてもよい。
ある1つのレイヤの最大テンポラル・サブレイヤに属ずるサブレイヤ非参照ピクチャがある1つのレイヤのレイヤ間予測のために用いられないことを示すことができるように、VPS拡張におけるmax_tid_il_ref_pics_plus1[i][j]に関して予め存在するセマンティクスが修正されてもよい。そのうえ、この修正は、max_tid_il_ref_pics_plus1[i][j]を用いてシグナリングされてもよい予め存在する指標が維持/予約されるような方法でシグナリングされる。それに応じて、追加の指標は、予め存在する指標を補足する。
max_tid_il_ref_pics_plus1[i][j]に関する修正されたセマンティクスに加えて、num_inter_layer_ref_pics_minus1に関する修正されたセマンティクスがサブレイヤ非参照ピクチャに係る修正された指標に基づいてもよい。さらに、ある1つのビットストリーム適合性要件がサブレイヤ非参照ピクチャに係る修正された指標に基づいて含められてもよい。かかる修正されたセマンティクスおよび修正された制約条件がレイヤ間参照ピクチャセットに対する復号処理において用いられてもよい。さらにまた、レイヤ間予測に必要とされないサブレイヤ非参照ピクチャに対するマーク付け処理の変更が含められてもよい。
ビデオパラメータセット(VPS)拡張は、次に示される通りであってもよい。
または、以下に示される通りであってもよい。
1に等しいvps_sub_layers_max_minus1_present_flagは、シンタックス要素sub_layers_vps_max_minus1[i]が存在することを指定する。0に等しいvps_sub_layers_max_minus1_present_flagは、シンタックス要素sub_layers_vps_max_minus1[i]が存在しないことを指定する。
sub_layers_vps_max_minus1[i]+1は、layer_id_in_nuh[i]に等しいnuh_layer_idをもつレイヤに対してCVS中に存在しうるテンポラル・サブレイヤの最大数を指定する。sub_layers_vps_max_minus1[i]の値は、両端値を含めて、0からvps_max_sub_layers_minus1までの範囲内にあるものとする。存在しないときに、sub_layers_vps_max_minus1[i]は、vps_max_sub_layers_minus1に等しいと推測される。
vps_max_sub_layers_minus1は、以下に示されるようにVPSでシグナリングされてもよい。
または、以下に示される通りであってもよい。
vps_max_sub_layers_minus1+1がVPSを参照する各CVS中に存在しうるテンポラル・サブレイヤの最大数を指定してもよい。vps_max_sub_layers_minus1の値は、両端値を含めて、0から6までの範囲内にありうる。
vps_video_parameter_set_idは、他のシンタックス要素による参照のためのVPSを識別する。
1に等しいmax_tid_ref_present_flagは、シンタックス要素max_tid_il_ref_pics_plus1[i][j]が存在することを指定する。0に等しいmax_tid_ref_present_flagは、シンタックス要素max_tid_il_ref_pics_plus1[i][j]が存在しないことを指定する。
0に等しいmax_tid_il_ref_pics_plus1[i][j]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャが、layer_id_in_nuh[j]に等しいnuh_layer_idをもつピクチャに関するレイヤ間予測のための参照として用いられないことを指定する。
0より大きいmax_tid_il_ref_pics_plus1[i][j]は、2つの選択のうちの1つを指定する。この判定基準の一対の選択への分割は、セマンティクスに対する修正を限定する助けとなる。
第1の選択は、max_tid_il_ref_pics_plus1[i][j]がsub_layers_vps_max_minus1[i]+2に等しくなければ、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i][j]−1より大きいTemporalIdをもつピクチャが、layer_id_in_nuh[j]に等しいnuh_layer_idをもつピクチャに関するレイヤ間予測のための参照として用いられない。
第2の選択は、そうでない場合には(max_tid_il_ref_pics_plus1[i][j]がsub_layers_vps_max_minus1[i]+2に等しければ)、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i][j]−2より大きいTemporalIdをもつピクチャが、layer_id_in_nuh[j]に等しいnuh_layer_idをもつピクチャに関するレイヤ間予測のための参照として用いられず、layer_id_in_nuh[i]に等しいnuh_layer_id、および(sub_layers_vps_max_minus1[i]に等しい)max_tid_il_ref_pics_plus1[i][j]−2に等しいTemporalIdをもつサブレイヤ非参照ピクチャが、layer_id_in_nuh[j]に等しいnuh_layer_idをもつピクチャに関するレイヤ間予測のための参照として用いられない。
max_tid_il_ref_pics_plus1[i][j]の値は、0からMin(sub_layers_vps_max_minus1[i]+2,7)までの範囲内にあるものとする。
存在しないときに、max_tid_il_ref_pics_plus1[i][j]は、sub_layers_vps_max_minus1[i]+1に等しいと推測される。
ビデオパラメータセット拡張のセマンティクスの修正に加えて、スライスセグメントヘッダのセマンティクスが同様に、および特にnum_inter_layer_ref_pics_minus1に対して修正されてもよい。
1に等しいinter_layer_pred_enabled_flagは、現ピクチャを復号する際にレイヤ間予測が用いられてもよいことを指定する。0に等しいinter_layer_pred_enabled_flagは、現ピクチャを復号する際にレイヤ間予測が用いられないことを指定する。
num_inter_layer_ref_pics_minus1+1は、レイヤ間予測のために現ピクチャを復号する際に用いてもよいピクチャの数を指定する。num_inter_layer_ref_pics_minus1シンタックス要素の長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。num_inter_layer_ref_pics_minus1の値は、両端値を含めて、0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内にあるものとする。
変数numRefLayerPicsおよびrefLayerPicFlag[i]ならびにrefLayerPicIdc[i]は、次のように導出される、すなわち、
変数NumActiveRefLayerPicsは、次のように導出される、すなわち、
符号化ピクチャのすべてのスライスは、NumActiveRefLayerPicsの同じ値を有するものとする。
ビデオパラメータセット拡張のセマンティクスの修正に加えて、スライスセグメントヘッダのセマンティクスが同様に、および特に修正されたビットストリーム適用性のために用いてもよいinter_layer_pred_layer_idc[i]に対して修正されてもよい。
inter_layer_pred_layer_idc[i]は、レイヤ間予測のために現ピクチャによって用いられてもよいi番目のピクチャのnuh_layer_idを表す、変数RefPicLayerId[i]を指定する。シンタックス要素inter_layer_pred_layer_idc[i]の長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。inter_layer_pred_layer_idc[i]の値は、両端値を含めて、0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内にあるものとする。存在しないときに、inter_layer_pred_layer_idc[i]の値は、refLayerPicIdc[i]に等しいと推測される。iが0より大きいときに、inter_layer_pred_layer_idc[i]は、inter_layer_pred_layer_idc[i−1]より大きいものとする。
両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiのすべての値に対して変数RefPicLayerId[i]は、次のように導出される、すなわち、
ある1つのピクチャのすべてのスライスは、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの各値に対してinter_layer_pred_layer_idc[i]の同じ値を有するものとする。
ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、次の条件のいずれかが真であるものとすることである、すなわち、
max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]][LayerIdxInVps[nuh_layer_id]]の値がTemporalIdより大きく、max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]][LayerIdxInVps[nuh_layer_id]]がsub_layers_vps_max_minus1[i]+2に等しくない。
max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]][LayerIdxInVps[nuh_layer_id]]の値がsub_layers_vps_max_minus1[i]+2に等しく、RefPicLayerId[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャがmax_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]][LayerIdxInVps[nuh_layer_id]]−2に等しいTemporalIdをもつサブレイヤ参照ピクチャであるか、または、max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]][LayerIdxInVps[nuh_layer_id]]−2がTemporalIdより大きい。
max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]][LayerIdxInVps[nuh_layer_id]]およびTemporalIdがいずれも0であり、RefPicLayerId[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャは、IRAPピクチャである。
0より大きいnuh_layer_idをもつ符号化ピクチャの復号を終了するための復号処理は、次の通りであってもよい。
PicOutputFlagが次のようにセットされる、すなわち、
LayerInitializedFlag[nuh_layer_id]が0に等しければ、PicOutputFlagが0に等しくセットされる。
そうでない場合には、現ピクチャがRASLピクチャであり、関連付けられたIRAPピクチャのNoRaslOutputFlagが1に等しければ、PicOutputFlagが0に等しくセットされる。
そうでない場合には、PicOutputFlagがpic_output_flagに等しくセットされる。
以下が適用される、すなわち、
1.discardable_flagが1に等しければ、復号ピクチャが「参照に用いられない」とマーク付けされる。
2.そうでない場合には、復号ピクチャが「short_term参照に用いられる」とマーク付けされる。
TemporalIdがHighestTidに等しいときに、F.8.1.4.1項において指定されたレイヤ間予測に必要とされないサブレイヤ非参照ピクチャのためのマーク付け処理が入力としてnuh_layer_idに等しいlatestDecLayerIdを用いて起動される。
FirstPicInLayerDecodedFlag[nuh_layer_id]が0に等しいときに、FirstPicInLayerDecodedFlag[nuh_layer_id]が1に等しくセットされる。
レイヤ間予測に必要とされないサブレイヤ非参照ピクチャに対するマーク付け処理は、次のように修正されてもよい。
この処理への入力は、nuh_layer_id値latestDecLayerIdである。
この処理の出力は、いくつかの復号ピクチャのための「参照に用いられない」という潜在的に更新されたマーク付けである。
この処理は、インター予測またはレイヤ間予測に必要とされないピクチャを「参照に用いられない」とマーク付けする。TemporalIdがHighestTidより小さいときには、インター予測における参照のために現ピクチャが用いられてもよく、この処理は起動されない。
変数numTargetDecLayers、およびlatestDecIdxは、次のように導出される、すなわち、
numTargetDecLayersがTargetDecLayerIdList中のエントリの数に等しくセットされる。
latestDecIdxがTargetDecLayerIdList[i]がlatestDecLayerIdに等しいiの値に等しくセットされる。
両端値を含めて、0からlatestDecIdxまでの範囲内のiに対して、ピクチャを「参照に用いられない」とマーク付けするために以下が適用される、すなわち、
TargetDecLayerIdList[i]に等しいnuh_layer_idをもつ現アクセスユニットにおけるピクチャをcurrPicとしよう。
currPicが「参照に用いられる」とマーク付けされ、かつサブレイヤ非参照ピクチャであるときには、以下が適用される、すなわち、
変数currTidがcurrPicのTemporalIdの値に等しくセットされる。
変数remainingInterLayerReferencesFlagが以下で指定されるように導出される、すなわち、
remainingInterLayerReferenceFlagが0に等しいときに、currPicは、「参照に用いられない」とマーク付けされる。
レイヤ間予測に必要とされないサブレイヤ非参照ピクチャに対する修正されたマーク付け処理は、次の通りであってもよい。if(((currTid<=(max_tid_il_ref_pics_plus1[iLidx][jLidx]−1))&&((max_tid_il_ref_pics_plus1[iLidx][jLidx]!=(sub_layer_vps_max_minus1[iLidx]+2)))||((currTid<=(max_tid_il_ref_pics_plus1[iLidx][jLidx]−2))&&((max_tid_il_ref_pics_plus1[iLidx][jLidx]==(sub_layer_vps_max_minus1[iLidx]+2)))))−−−が、if(((currTid<=(max_tid_il_ref_pics_plus1[iLidx][jLidx]−1))&&((max_tid_il_ref_pics_plus1[iLidx][jLidx]!=(sub_layer_vps_max_minus1[iLidx]+2))))||(((currTid<(max_tid_il_ref_pics_plus1[iLidx][jLidx]−2))||(currTid==(max_tid_il_ref_pics_plus1[iLidx][jLidx]−2)))&&((max_tid_il_ref_pics_plus1[iLidx][jLidx]==(sub_layer_vps_max_minus1[iLidx]+2)))))−−−によって置き換えられる。
別の実施形態では、ビデオパラメータセット拡張についてmax_tid_il_ref_pics_plus1に対するセマンティック変更がなされ、セマンティック修正のいくらかまたはすべてが省略されてもよい。1に等しいmax_tid_ref_present_flagは、シンタックス要素max_tid_il_ref_pics_plus1[i][j]が存在することを指定する。0に等しいmax_tid_ref_present_flagは、シンタックス要素max_tid_il_ref_pics_plus1[i][j]が存在しないことを指定する。
第1のかかる修正された実施形態において、0に等しいmax_tid_il_ref_pics_plus1[i][j]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャが、layer_id_in_nuh[j]に等しいnuh_layer_idをもつピクチャに関するレイヤ間予測のための参照として用いられないことを指定する。0より大きいmax_tid_il_ref_pics_plus1[i][j]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i][j]−1より大きいTemporalIdをもつピクチャが、layer_id_in_nuh[j]に等しいnuh_layer_idをもつピクチャに関するレイヤ間予測のための参照として用いられないことを指定する。max_tid_il_ref_pics_plus1[i][j]の値は、両端値を含めて、0からsub_layers_vps_max_minus1[i]+1までの範囲内かまたは7であるものとする。存在しないときに、max_tid_il_ref_pics_plus1[i][j]は、7に等しいと推測される。
第2のかかる修正された実施形態において、0に等しいmax_tid_il_ref_pics_plus1[i][j]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_idをもつ非IRAPピクチャが、layer_id_in_nuh[j]に等しいnuh_layer_idをもつピクチャに関するレイヤ間予測のための参照として用いられないことを指定する。0より大きいmax_tid_il_ref_pics_plus1[i][j]は、CVS内においてlayer_id_in_nuh[i]に等しいnuh_layer_id、およびmax_tid_il_ref_pics_plus1[i][j]−1より大きいTemporalIdをもつピクチャが、layer_id_in_nuh[j]に等しいnuh_layer_idをもつピクチャに関するレイヤ間予測のための参照として用いられないことを指定する。max_tid_il_ref_pics_plus1[i][j]の値は、両端値を含めて、0からsub_layers_vps_max_minus1[i]+1までの範囲内にあるものとする。存在しないときに、max_tid_il_ref_pics_plus1[i][j]は、sub_layers_vps_max_minus1[i]+1に等しいと推測される。
これらの第1および第2の修正された実施形態のいずれにおいても、一般的なスライスセグメントヘッダのセマンティクスが、特にnum_inter_layer_ref_pics_minus1に関して、修正されてもよい。
num_inter_layer_ref_pics_minus1+1は、レイヤ間予測のために現ピクチャを復号する際に用いられてもよいピクチャの数を指定する。num_inter_layer_ref_pics_minus1シンタックス要素の長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。num_inter_layer_ref_pics_minus1の値は、両端値を含めて、0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内にあるものとする。
変数numRefLayerPicsおよびrefLayerPicFlag[i]ならびにrefLayerPicIdc[i]は、次のように導出される、すなわち、
変数NumActiveRefLayerPicsは、次のように導出される、すなわち、
符号化ピクチャのすべてのスライスは、NumActiveRefLayerPicsの同じ値を有するものとする。
図61を参照すると、sub_layer_vps_max_minus1[i]およびmax_tid_il_ref_pics_plus1[i][j]の様々な値がレイヤ間予測(ILP:inter−layer prediction)制限に関する対応する指標とともに示される。別の実施形態では、max_tid_il_ref_pics_plus1[i][j]がsub_layers_vps_max_minus1[i]+2に等しければ、他の何らかの指標がシグナリングされてもよい。
さらに別の実施形態では、任意の適切な動作点にレイヤセットが適用されてもよい。
alt_output_layer_flag[i]が存在しないときの値を推測するためにそのセマンティクスが修正されてもよい。この理由は、alt_output_layer_flag[i]は、NumOutputLayersInOutputLayerSet[i]が1に等しく、NumDirectRefLayers[OlsHighestOutputLayerId[i]]が0より大きいときにある1つの出力レイヤセットに関してシグナリングされるに過ぎないが、しかし、alt_output_layer_flag[i]の値は、任意の出力レイヤセットに関する仕様において(例えば、7.4.4節においてgeneral_profile_compatibility_flag[j]のシンタックスで、およびG.11.1.2で)用いられるためである。
加えて、もはや必要ではないとしてある1つの修正が変数AltOptLayerFlag[i]の導出に対してなされてもよい。
図62は、JCT3V−H1002に基づく例示的なビデオパラメータセット拡張を提供する。
図63は、JCTVC−R0010に基づく例示的なビデオパラメータセット・シンタックスを提供する。
図62および63では、0に等しいalt_output_layer_flag[i]は、代わりの出力レイヤがi番目のOLSにおけるいずれの出力レイヤにも用いられないことを指定する。1に等しいalt_output_layer_flag[i]は、代わりの出力レイヤがi番目のOLSにおける出力レイヤに用いられてもよいことを指定する。
NumOutputLayersInOutputLayerSet[i]が1に等しく、NumDirectRefLayers[OlsHighestOutputLayerId[i]]が0より大きければ、変数AltOptLayerFlag[i]がalt_output_layer_flag[i]に等しくセットされる。
そうでない場合には、変数AltOptLayerFlag[i]が0に等しくセットされる。
AltOptLayerFlag[0]が0に等しくセットされる。
AltOptLayerFlag[olsIdx]が0に等しいときに、インデックスolsIdxをもつOLSのうちの出力レイヤにはないピクチャは、出力されない。AltOptLayerFlag[olsIdx]が1に等しく、インデックスolsIdxをもつOLSのうちの出力レイヤにおけるピクチャがアクセスユニット中に存在しないか、または0に等しいPicOutputFlagを有するときには、PicOutputFlagが1に等しく、かつ、出力レイヤの直接および間接参照レイヤのnuh_layer_id値のうちのnuh_layer_id値を有するアクセスユニットの複数のピクチャのうちで、最も高いnuh_layer_idをもつある1つのピクチャが出力される。
両端値を含めて、0からNumOutputLayerSets−1までの範囲内のolsIdxの各値に対して、以下が適用される、すなわち、
AltOptLayerFlag[olsIdx]が1に等しいときに、pic_output_flagの値は、OlsHighestOutputLayerId[olsIdx]に等しいnuh_layer_id値か、またはOlsHighestOutputLayerId[olsIdx]に等しいnuh_layer_idをもつレイヤの任意の直接または間接参照レイヤのnuh_layer_id値に等しいnuh_layer_id値を有する、ある1つのアクセスユニットの複数のスライスヘッダにおいて同じであるものとする。
olsBitstreamが、現ビットストリーム、7に等しいTemporalId、およびLayerSetLayerIdList[OlsIdxToLsIdx[olsIdx]]に等しいlayerIdListTargetの入力を用いたサブビットストリーム抽出処理の出力であるとしよう。truncatedOlsBitstreamが、olsBitstreamであるか、または0に等しいnuh_layer_idを有するIRAPピクチャをもつ任意のアクセスユニットに、復号順に、先行するアクセスユニットを除去することによってolsBitstreamから形成されるとしよう。ビットストリーム適合性のある1つの要件は、AltOptLayerFlag[olsIdx]が1に等しいときに、その他のピクチャに関する予測のための参照として用いられず、かつ、ある1つのアクセスユニットの唯一の符号化ピクチャではない任意の符号化ピクチャを、truncatedOlsBitstreamから、除去することによって形成されたビットストリームが、適合するビットストリームであることである。AltOptLayerFlag[olsIdx]が1に等しいときに、エンコーダは、HRDで代わりの出力レイヤのピクチャが「出力に必要とされる」とマーク付けされているときでもmax_vps_dec_pic_buffering_minus1[i][k][j]の値が十分であるように、これらの値をセットする必要がある。
図62および63に関する別の実施形態では、0に等しいalt_output_layer_flag[i]は、代わりの出力レイヤがi番目のOLSにおけるいずれの出力レイヤにも用いられないことを指定する。1に等しいalt_output_layer_flag[i]は、代わりの出力レイヤがi番目のOLSにおける出力レイヤに用いられてもよいことを指定する。
存在しないときに、alt_output_layer_flag[i]の値は、0に等しいと推測される。
NumOutputLayersInOutputLayerSet[i]が1に等しく、NumDirectRefLayers[OlsHighestOutputLayerId[i]]が0より大きければ、変数AltOptLayerFlag[i]がalt_output_layer_flag[i]に等しくセットされる。
そうでない場合には、変数AltOptLayerFlag[i]が0に等しくセットされる。
AltOptLayerFlag[0]が0に等しくセットされる。
AltOptLayerFlag[olsIdx]が0に等しいときに、インデックスolsIdxをもつOLSのうちの出力レイヤにはないピクチャは、出力されない。AltOptLayerFlag[olsIdx]が1に等しく、インデックスolsIdxをもつOLSのうちの出力レイヤにおけるピクチャがアクセスユニット中に存在しないか、または0に等しいPicOutputFlagを有するときには、PicOutputFlagが1に等しく、かつ、出力レイヤの直接および間接参照レイヤのnuh_layer_id値のうちのnuh_layer_id値を有するアクセスユニットの複数のピクチャのうちで、最も高いnuh_layer_idをもつある1つのピクチャが出力される。
両端値を含めて、0からNumOutputLayerSets−1までの範囲内のolsIdxの各値に対して、以下が適用される、すなわち、
AltOptLayerFlag[olsIdx]が1に等しいときに、pic_output_flagの値は、OlsHighestOutputLayerId[olsIdx]に等しいnuh_layer_id値か、またはOlsHighestOutputLayerId[olsIdx]に等しいnuh_layer_idをもつレイヤの任意の直接または間接参照レイヤのnuh_layer_id値に等しいnuh_layer_id値を有する、ある1つのアクセスユニットの複数のスライスヘッダにおいて同じであるものとする。
olsBitstreamが、現ビットストリーム、7に等しいTemporalId、およびLayerSetLayerIdList[OlsIdxToLsIdx[olsIdx]]に等しいlayerIdListTargetの入力を用いたサブビットストリーム抽出処理の出力であるとしよう。truncatedOlsBitstreamが、olsBitstreamであるか、または0に等しいnuh_layer_idを有するIRAPピクチャをもつ任意のアクセスユニットに、復号順に、先行するアクセスユニットを除去することによってolsBitstreamから形成されるとしよう。ビットストリーム適合性のある1つの要件は、AltOptLayerFlag[olsIdx]が1に等しいときに、その他のピクチャに関する予測のための参照として用いられず、かつ、ある1つのアクセスユニットの唯一の符号化ピクチャではない任意の符号化ピクチャを、truncatedOlsBitstreamから、除去することによって形成されたビットストリームが、適合するビットストリームであることである。AltOptLayerFlag[olsIdx]が1に等しいときに、エンコーダは、HRDで代わりの出力レイヤのピクチャが「出力に必要とされる」とマーク付けされているときでもmax_vps_dec_pic_buffering_minus1[i][k][j]の値が十分であるように、これらの値をセットする必要がある。
さらに別の実施形態では、0に等しいalt_output_layer_flag[i]は、代わりの出力レイヤがi番目の出力レイヤセットにおけるいずれの出力レイヤにも用いられないことを指定する。1に等しいalt_output_layer_flag[i]は、代わりの出力レイヤがi番目の出力レイヤセットにおける出力レイヤに用いられてもよいことを指定する。
存在しないときに、alt_output_layer_flag[i]の値は、0に等しいと推測される。
alt_output_layer_flag[olsIdx]が0に等しいときに、インデックスolsIdxをもつ出力レイヤセットのうちのターゲット出力レイヤにはないピクチャは、出力されない。AltOptLayerFlag[olsIdx]が1に等しく、インデックスolsIdxをもつ出力レイヤセットのうちのターゲット出力レイヤにおけるピクチャがアクセスユニット中に存在しないか、または0に等しいPicOutputFlagを有するときには、PicOutputFlagが1に等しく、かつ、ターゲット出力レイヤの直接および間接参照レイヤのnuh_layer_id値のうちのnuh_layer_id値を有するアクセスユニットのピクチャのうちで、最も高いnuh_layer_idをもつある1つのピクチャが出力される。
両端値を含めて、0からNumOutputLayerSets−1までの範囲内のolsIdxの各値に対して、以下が適用される。
alt_output_layer_flag[olsIdx]が1に等しいときに、pic_output_flagの値は、OlsHighestOutputLayerId[olsIdx]に等しいnuh_layer_id値か、またはOlsHighestOutputLayerId[olsIdx]に等しいnuh_layer_idをもつレイヤの任意の直接または間接参照レイヤのnuh_layer_id値に等しいnuh_layer_id値を有する、ある1つのアクセスユニットの複数のスライスヘッダにおいて同じであるものとする。
olsBitstreamが、現ビットストリーム、7に等しいTemporalId、およびLayerSetLayerIdList[LayerSetIdxForOutputLayerSet[olsIdx]]に等しいlayerIdListTargetの入力を用いたサブビットストリーム抽出処理の出力であるとしよう。truncatedOlsBitstreamが、olsBitstreamであるか、または0に等しいnuh_layer_idを有するIRAPピクチャをもつ任意のアクセスユニットに、復号順に、先行するアクセスユニットを除去することによってolsBitstreamから形成されるとしよう。ビットストリーム適合性のある1つの要件は、alt_output_layer_flag[olsIdx]が1に等しいときに、その他のピクチャに関する予測のための参照として用いられず、かつ、ある1つのアクセスユニットの唯一の符号化ピクチャではない任意の符号化ピクチャを、truncatedOlsBitstreamから、除去することによって形成されたビットストリームが、適合するビットストリームであることである。alt_output_layer_flag[olsIdx]が1に等しいときに、エンコーダは、HRDで代わりの出力レイヤのピクチャが「出力に必要とされる」とマーク付けされているときでも、max_vps_dec_pic_buffering_minus1[i][k][j]の値が十分であるように、これらの値をセットする必要がある。
プロファイル、ティアおよびレベルのセマンティクスは、次の通りであってもよい。
vps_base_layer_internal_flagが0に等しく、profile_tier_level()シンタックス構造がVPS中の第1のprofile_tier_level()シンタックス構造であれば、そのシンタックス構造におけるすべてのビットは、0に等しいものとし、デコーダは、そのシンタックス構造を無視するものとする。そうでない場合には、profile_tier_level()シンタックス構造のセマンティクスは、現在の項の残りの部分によって指定される。
profile_tier_level()シンタックス構造は、出力レイヤセットが適合するプロファイル、ティアおよびレベルを提供する。profile_tier_level()シンタックス構造がvps_extension()シンタックス構造中に含まれるときに、vps_extension()シンタックス構造のprofile_tier_level_idx[i]シンタックス要素は、i番目の出力レイヤセットにどのprofile_tier_level()シンタックス構造が適用されるかを指定する。num_add_layer_setsが0より大きく、iが、両端値を含めて、FirstAddLayerSetIdxからLastAddLayerSetIdxまでの範囲内にあるときに、profile_tier_level_idx[i]によって識別されたprofile_tier_level()シンタックス構造が、LayerSetIdxForOutputLayerSet[i]に等しい入力変数lsIdxセットを用いたF.10.2項の非ベースレイヤ・サブツリー抽出処理の出力に適用される。profile_tier_level()シンタックス構造がvps中に含まれるが、vps_extension()シンタックス構造中に含まれないときには、profile_tier_level()シンタックス構造が0番目の出力レイヤセットに適用される。profile_tier_level()シンタックス構造がベースレイヤに係るアクティブSPS中に含まれるときには、profile_tier_level()シンタックス構造が0番目の出力レイヤセットに適用される。profile_tier_level()シンタックス構造がlayerIdに等しいnuh_layer_idをもつ独立した非ベースレイヤに係るアクティブSPS中に含まれるときには、profile_tier_level()シンタックス構造が、AssignedBaseLayerId[lsIdx]がlayerIdに等しい入力パラメータlsIdxを用いたF.10.2項の非ベースレイヤ・サブツリー抽出処理の出力ビットストリームにおける0番目の出力レイヤセットに適用される。
次のセマンティクスの解釈のために、CVSは、profile_tier_level()シンタックス構造が適用されるレイヤセットと関連付けられたCVSサブセットを参照する。
シンタックス要素general_profile_space、general_tier_flag、general_profile_idc、general_profile_compatibility_flag[j]、general_progressive_source_flag、general_interlaced_source_flag、general_non_packed_constraint_flag、general_frame_only_constraint_flag、general_reserved_zero_44bitsが存在しないときに、これらは、VPS拡張における(ptlIdx−1)番目のprofile_tier_level()シンタックス構造の対応する値に等しいと推測される。
シンタックス要素sub_layer_profile_space[i]、sub_layer_tier_flag[i]、sub_layer_profile_idc[i]、sub_layer_profile_compatibility_flag[i][j]、sub_layer_progressive_source_flag[i]、sub_layer_interlaced_flag[i]、sub_layer_non_packed_constraint_flag[i]、sub_layer_frame_only_constraint_flag[i]、sub_layer_reserved_zero_44bits[i]が存在しないときに、これらは、VPS拡張における(ptlIdx−1)番目のprofile_tier_level()シンタックス構造の対応する値に等しいと推測される。
以下に記載されるように、7.4.4項における仕様が適用される。
general_tier_flagは、付属書AまたはG.11項において指定されるように、general_level_idcの解釈のためのティア・コンテキストを指定する。
general_profile_idcは、general_profile_spaceが0に等しいときに、付属書AまたはG.11項において指定されるように、CVSが適合するある1つのプロファイルを示す。ビットストリームは、付属書AまたはG.11項において指定された以外のgeneral_profile_idcの値を含まないものとする。general_profile_idcの他の値は、ITU−T|ISO/IECによる将来の使用のために予約される。
1に等しいgeneral_profile_compatibility_flag[j]は、general_profile_spaceが0に等しいときに、付属書AまたはG.11項において指定されるように、CVSがiに等しいgeneral_profile_idcによって示されるプロファイルに適合することを示す。general_profile_spaceが0に等しいときに、general_profile_compatibility_flag[general_profile_idc]は、1に等しいものとする。general_profile_compatibility_flag[j]の値は、付属書AまたはG.11項においてgeneral_profile_idcの許容値として指定されないjの任意の値に対して、0に等しいものとする。
ピクチャのシーケンスpicSeqは、次のように導出される、すなわち、
profile_tier_level()シンタックス構造がSPS中に含まれるならば、picSeqは、SPSがアクティブSPSであるCVS中の複数のピクチャからなる。
そうでない場合には、profile_tier_level()シンタックス構造がある1つのVPS中に含まれるが、vps_extension()シンタックス構造中には含まれなければ、picSeqは、CVS中の0に等しいnuh_layer_idをもつ複数のピクチャからなる。
そうでない場合には、profile_tier_level()シンタックス構造が1に等しいalt_output_layer_flag[i]をもつ出力レイヤセットと関連付けられるならば、picSeqは、CVS内における出力レイヤならびにその直接および間接参照レイヤの複数のピクチャからなる。
そうでない場合には、picSeqは、CVS内における関連付けられた出力レイヤセットのうちの出力レイヤの複数のピクチャからなる。
Stereo Mainプロファイルに適合するビットストリームは、次の制約条件に従ってもよい、すなわち、
VPSは、1に等しいvps_base_layer_internal_flagのみを有するものとする。
VPSは、両端値を含めて、0から15までの範囲内のvps_num_rep_formats_minus1を有するものとする。
Stereo Mainプロファイルに適合する出力レイヤセットを含んだビットストリームは、出力レイヤセット・インデックスolsIdxをもち、layerSetIdxが出力レイヤセットのためのレイヤセットである、それぞれの出力レイヤセットに関して導出されたサブビットストリームに対する次の制約条件に従うものとし、このサブビットストリームは、次の入力、すなわち、ビットストリームと、6に等しいtIdTargetと、インデックスlayerSetIdxをもつレイヤセット中に含まれ、かつ、プライマリピクチャ・レイヤである複数のレイヤのnuh_layer_id値を含んだlayerIdListTargetとを用いて、F.10項において指定されるようなサブビットストリーム抽出処理を起動することによって導出される。
Stereo Mainプロファイルに適合する出力レイヤセットを含んだビットストリームは、入力としてビットストリームと、6に等しいtIdTargetと、0に等しい1つのみのnuh_layer_id値を含んだlayerIdListTargetとを用いて、F.10項において指定されるようなサブビットストリーム抽出処理を起動することによって導出されたベースレイヤ・ビットストリームに対する次の制約条件にも従うものとする。
Stereo Mainプロファイルに適合するビットストリームから導出されたベースレイヤ・ビットストリームは、次の制約条件に従うものとする、すなわち、
ベースレイヤ・ビットストリームは、A.3.2項において指定されたMainプロファイルのすべての制約条件に従うものとする。
ベースレイヤ・ビットストリームのSPSは、1に等しいgeneral_profile_idcまたは1に等しいgeneral_profile_compatibility_flag[1]を有するものとする。
Stereo Mainプロファイルに適合する出力レイヤセットに対して導出されたサブビットストリームは、次の制約条件に従うものとする、すなわち、
サブビットストリームに係るすべてのアクティブSPSは、1に等しいchroma_format_idcのみを有するのみとする。
サブビットストリームの任意のアクティブSPSから導出されたCtbLog2SizeYは、両端値を含めて、4から6までの範囲内にあるものとする。
ScalabilityId[j][smIdx]は、1に等しくない任意のsmIdxに対して、およびサブビットストリームに係るjの任意の値に対して0に等しいものとする。
サブビットストリーム中のレイヤの数は、2に等しいものとする。
output_layer_flag[olsIdx][j]は、0から1までの範囲内のjのすべての値に対して1に等しいものとする。この制限は、alt_output_layer_flag[olsIdx]が0に等しいことを示唆する。
サブビットストリームにおけるiに等しいnuh_layer_idをもつレイヤに関してViewScalExtLayerFlag[i]が1に等しいときに、inter_view_mv_vert_constraint_flagは、そのレイヤに係る各アクティブSPS RBSP中のsps_multilayer_extension()シンタックス構造において1に等しいものとする。
サブビットストリームにおけるiに等しいnuh_layer_idをもつレイヤに関してViewScalExtLayerFlag[i]が1に等しいときに、num_scaled_ref_layer_offsetsは、そのレイヤに係る各アクティブSPS中で0に等しいものとする。
サブビットストリームにおけるiに等しいnuh_layer_idをもつレイヤに関してViewScalExtLayerFlag[i]が1に等しいときに、そのレイヤに係る各アクティブSPS中のpic_width_in_luma_samplesおよびpic_height_in_luma_samplesの値は、そのレイヤのすべての直接参照レイヤに係る各アクティブSPS中の、それぞれ、pic_width_in_luma_samplesおよびpic_height_in_luma_samplesの値に等しいものとする。
サブビットストリームに係るすべてのアクティブSPSは、0に等しいsps_range_extensions_flagのみ、および0に等しいsps_extension_6bitsのみを有するものとする。
サブビットストリームに係るすべてのアクティブPPSは、0に等しいpps_range_extensions_flagのみ、および0に等しいpps_extension_6bitsのみを有するものとする。
サブビットストリームに係るすべてのアクティブSPSは、0に等しいbit_depth_luma_minus8のみを有するものとする。
サブビットストリームに係るすべてのアクティブSPSは、0に等しいbit_depth_chroma_minus8のみを有するものとする。
AuxId[i]およびAuxId[j]がいずれも0に等しく、iがjに等しくないときに、ViewOrderIndex[i]は、ViewOrderIndex[j]に等しくないものとする。
別の実施形態では、alt_output_layer_flag[i]が存在しないときにその値を推測するのではなく、導出された変数AltOptLayerFlag[i]がalt_output_layer_flag[i]の代わりに用いられる。
プロファイル、ティアおよびレベルのセマンティクスは、次の通りであってもよい。
vps_base_layer_internal_flagが0に等しく、profile_tier_level()シンタックス構造がVPS中の第1のprofile_tier_level()シンタックス構造であれば、そのシンタックス構造におけるすべてのビットは、0に等しいものとし、デコーダは、そのシンタックス構造を無視するものとする。そうでない場合には、profile_tier_level()シンタックス構造のセマンティクスは、現在の項の残りの部分によって指定される。
profile_tier_level()シンタックス構造は、出力レイヤセットが適合するプロファイル、ティアおよびレベルを提供する。profile_tier_level()シンタックス構造がvps_extension()シンタックス構造中に含まれるときに、vps_extension()シンタックス構造のprofile_tier_level_idx[i]シンタックス要素は、i番目の出力レイヤセットにどのprofile_tier_level()シンタックス構造が適用されるかを指定する。num_add_layer_setsが0より大きく、iが、両端値を含めて、FirstAddLayerSetIdxからLastAddLayerSetIdxまでの範囲内にあるときに、profile_tier_level_idx[i]によって識別されたprofile_tier_level()シンタックス構造が、LayerSetIdxForOutputLayerSet[i]に等しい入力変数lsIdxセットを用いたF.10.2項の非ベースレイヤ・サブツリー抽出処理の出力に適用される。profile_tier_level()シンタックス構造がvps中に含まれるが、vps_extension()シンタックス構造中に含まれないときには、profile_tier_level()シンタックス構造が0番目の出力レイヤセットに適用される。profile_tier_level()シンタックス構造がベースレイヤに係るアクティブSPS中に含まれるときには、profile_tier_level()シンタックス構造が0番目の出力レイヤセットに適用される。profile_tier_level()シンタックス構造がlayerIdに等しいnuh_layer_idをもつ独立した非ベースレイヤに係るアクティブSPS中に含まれるときには、profile_tier_level()シンタックス構造が、AssignedBaseLayerId[lsIdx]がlayerIdに等しい入力パラメータlsIdxを用いたF.10.2項の非ベースレイヤ・サブツリー抽出処理の出力ビットストリームにおける0番目の出力レイヤセットに適用される。
次のセマンティクスの解釈のために、CVSは、profile_tier_level()シンタックス構造が適用されるレイヤセットと関連付けられたCVSサブセットを参照する。
シンタックス要素general_profile_space、general_tier_flag、general_profile_idc、general_profile_compatibility_flag[j]、general_progressive_source_flag、general_interlaced_source_flag、general_non_packed_constraint_flag、general_frame_only_constraint_flag、general_reserved_zero_44bitsが存在しないときに、これらは、VPS拡張における(ptlIdx−1)番目のprofile_tier_level()シンタックス構造の対応する値に等しいと推測される。
シンタックス要素sub_layer_profile_space[i]、sub_layer_tier_flag[i]、sub_layer_profile_idc[i]、sub_layer_profile_compatibility_flag[i][j]、sub_layer_progressive_source_flag[i]、sub_layer_interlaced_flag[i]、sub_layer_non_packed_constraint_flag[i]、sub_layer_frame_only_constraint_flag[i]、sub_layer_reserved_zero_44bits[i]が存在しないときに、これらは、VPS拡張における(ptlIdx−1)番目のprofile_tier_level()シンタックス構造の対応する値に等しいと推測される。
7.4.4項における仕様が以下に記載されるように適用される。
general_tier_flagは、付属書AまたはG.11項において指定されるように、general_level_idcの解釈のためのティア・コンテキストを指定する。
general_profile_idcは、general_profile_spaceが0に等しいときに、付属書AまたはG.11項において指定されるように、CVSが適合するある1つのプロファイルを示す。ビットストリームは、付属書AまたはG.11項において指定された以外のgeneral_profile_idcの値を含まないものとする。general_profile_idcの他の値は、ITU−T|ISO/IECによる将来の使用のために予約される。
1に等しいgeneral_profile_compatibility_flag[j]は、general_profile_spaceが0に等しいときに、付属書AまたはG.11項において指定されるように、CVSがiに等しいgeneral_profile_idcによって示されるプロファイルに適合することを示す。general_profile_spaceが0に等しいときに、general_profile_compatibility_flag[general_profile_idc]は、1に等しいものとする。general_profile_compatibility_flag[j]の値は、付属書AまたはG.11項においてgeneral_profile_idcの許容値として指定されないjの任意の値に対して、0に等しいものとする。
ピクチャのシーケンスpicSeqは、次のように導出される、すなわち、
profile_tier_level()シンタックス構造がSPS中に含まれるならば、picSeqは、SPSがアクティブSPSであるCVS中の複数のピクチャからなる。
そうでない場合には、profile_tier_level()シンタックス構造がある1つのVPS中に含まれるが、vps_extension()シンタックス構造中には含まれなければ、picSeqは、CVS中の0に等しいnuh_layer_idをもつ複数のピクチャからなる。
そうでない場合には、profile_tier_level()シンタックス構造が1に等しいAltOptLayerFlag[i]をもつ出力レイヤセットと関連付けられるならば、picSeqは、CVS内における出力レイヤならびにその直接および間接参照レイヤの複数のピクチャからなる。
そうでない場合には、picSeqは、CVS内における関連付けられた出力レイヤセットのうちの出力レイヤの複数のピクチャからなる。
Stereo Mainプロファイルに適合するビットストリームは、次の制約条件に従ってもよい、すなわち、
VPSは、1に等しいvps_base_layer_internal_flagのみを有するものとする。
VPSは、両端値を含めて、0から15までの範囲内のvps_num_rep_formats_minus1を有するものとする。
Stereo Mainプロファイルに適合する出力レイヤセットを含んだビットストリームは、出力レイヤセット・インデックスolsIdxをもち、layerSetIdxが出力レイヤセットのためのレイヤセットである、それぞれの出力レイヤセットに関して導出されたサブビットストリームに対する次の制約条件に従うものとし、このサブビットストリームは、次の入力、すなわち、ビットストリームと、6に等しいtIdTargetと、インデックスlayerSetIdxをもつレイヤセット中に含まれ、かつ、プライマリピクチャ・レイヤである複数のレイヤのnuh_layer_id値を含んだlayerIdListTargetとを用いて、F.10項において指定されるようなサブビットストリーム抽出処理を起動することによって導出される。
Stereo Mainプロファイルに適合する出力レイヤセットを含んだビットストリームは、入力としてビットストリームと、6に等しいtIdTargetと、0に等しい1つのみのnuh_layer_id値を含んだlayerIdListTargetとを用いて、F.10項において指定されるようなサブビットストリーム抽出処理を起動することによって導出されたベースレイヤ・ビットストリームに対する次の制約条件にも従うものとする。
Stereo Mainプロファイルに適合するビットストリームから導出されたベースレイヤ・ビットストリームは、次の制約条件に従うものとする、すなわち、
ベースレイヤ・ビットストリームは、A.3.2項において指定されたMainプロファイルのすべての制約条件に従うものとする。
ベースレイヤ・ビットストリームのSPSは、1に等しいgeneral_profile_idcまたは1に等しいgeneral_profile_compatibility_flag[1]を有するものとする。
Stereo Mainプロファイルに適合する出力レイヤセットに対して導出されたサブビットストリームは、次の制約条件に従うものとする、すなわち、
サブビットストリームに係るすべてのアクティブSPSは、1に等しいchroma_format_idcのみを有するのみとする。
サブビットストリームの任意のアクティブSPSから導出されたCtbLog2SizeYは、両端値を含めて、4から6までの範囲内にあるものとする。
ScalabilityId[j][smIdx]は、1に等しくない任意のsmIdxに対して、およびサブビットストリームに係るjの任意の値に対して0に等しいものとする。
サブビットストリーム中のレイヤの数は、2に等しいものとする。
output_layer_flag[olsIdx][j]は、0から1までの範囲内のjのすべての値に対して1に等しいものとする。この制限は、AltOptLayerFlag[olsIdx]が0に等しいことを示唆する。
サブビットストリームにおけるiに等しいnuh_layer_idをもつレイヤに関してViewScalExtLayerFlag[i]が1に等しいときに、inter_view_mv_vert_constraint_flagは、そのレイヤに係る各アクティブSPS RBSP中のsps_multilayer_extension()シンタックス構造において1に等しいものとする。
サブビットストリームにおけるiに等しいnuh_layer_idをもつレイヤに関してViewScalExtLayerFlag[i]が1に等しいときに、num_scaled_ref_layer_offsetsは、そのレイヤに係る各アクティブSPS中で0に等しいものとする。
サブビットストリームにおけるiに等しいnuh_layer_idをもつレイヤに関してViewScalExtLayerFlag[i]が1に等しいときに、そのレイヤに係る各アクティブSPS中のpic_width_in_luma_samplesおよびpic_height_in_luma_samplesの値は、そのレイヤのすべての直接参照レイヤに係る各アクティブSPS中の、それぞれ、pic_width_in_luma_samplesおよびpic_height_in_luma_samplesの値に等しいものとする。
サブビットストリームに係るすべてのアクティブSPSは、0に等しいsps_range_extensions_flagのみ、および0に等しいsps_extension_6bitsのみを有するものとする。
サブビットストリームに係るすべてのアクティブPPSは、0に等しいpps_range_extensions_flaのみ、および0に等しいpps_extension_6bitsのみを有するものとする。
サブビットストリームに係るすべてのアクティブSPSは、0に等しいbit_depth_luma_minus8のみを有するものとする。
サブビットストリームに係るすべてのアクティブSPSは、0に等しいbit_depth_chroma_minus8のみを有するものとする。
AuxId[i]およびAuxId[j]がいずれも0に等しく、iがjに等しくないときに、ViewOrderIndex[i]は、ViewOrderIndex[j]に等しくないものとする。
別の実施形態では、ビデオパラメータセット拡張シンタックスは、alt_output_layer_flag[i]を常にシグナリングするように修正される。従って、alt_output_layer_flag[i]は、NumOutputLayersInOutputLayerSet[i]が1に等しくないとき、またはNumDirectRefLayers[OlsHighestOutputLayerId[i]]が0に等しいときでさえシグナリングされる。
これに関するJCT3V−H1002に基づくビデオパラメータセット拡張のシグナリングは、図64に示される。
これに関するJCTVC−R0010に基づくビデオパラメータセット拡張のシグナリングは、図65に示される。
補助ピクチャを矛盾なく取り扱うためにdefault_output_layer_idcおよびoutput_layer_flag[i][j]のセマンティクスが含められてもよい。
default_output_layer_idcが0に等しいときに、補助ピクチャ・レイヤは、OLSの出力レイヤではなく、プライマリピクチャ・レイヤのみがOLSの出力レイヤである。このシンタックス構造が含められる理由は、補助ピクチャ・レイヤに関する復号能力を含む定義されたSHVC/MV−HEVCプロファイルが何もなく、かつ、0および1に等しいdefault_output_layer_idc値がMV−HEVCおよびSHVCを対象とするためである。加えて、このシンタックス構造は、default_output_layer_idc値が0に等しいときの振舞いとdefault_output_layer_idc値が1に等しいときの振舞いとが矛盾しないようにする。
JCT3V−H1002およびJCTVC−R0010について上記のことを達成するための例示的なシンタックスが以下に示される、すなわち、
default_output_layer_idcは、両端値を含めて、1からvps_num_layer_sets_minus1までの範囲内のインデックスをもつOLSに係る出力レイヤの導出を指定する。0に等しいdefault_output_layer_idcは、両端値を含めて、1からvps_num_layer_sets_minus1までの範囲内のインデックスをもつそれぞれのOLSにおいて、nuh_layer_idがnuhLayerIdAに等しく、AuxId[nuhLayerIdA]が0に等しいすべてのレイヤが、それらの各OLSのうちの出力レイヤであることを指定する。1に等しいdefault_output_layer_idcは、両端値を含めて、1からvps_num_layer_sets_minus1までの範囲内のインデックスをもつそれぞれのOLSにおいて、nuh_layer_idがnuhLayerIdAに等しく、AuxId[nuhLayerIdA]が0に等しいようなnuh_layer_idの最高値もつレイヤのみが、そのOLSのうちのある1つの出力レイヤであることを指定する。2に等しいdefault_output_layer_idcは、両端値を含めて、1からvps_num_layer_sets_minus1までの範囲内のインデックスをもつOLSのための出力レイヤが、シンタックス要素output_layer_flag[i][j]を用いて指定されることを指定する。default_output_layer_idcに関する3の値は、ITU−T|ISO/IECによる将来の使用のために予約される。default_output_layer_idcの値は、この仕様のこのバージョンでは3より小さいことが必要とされるが、デコーダは、3に等しいdefault_output_layer_idcの値がシンタックス中に現れることを許容するものとする。
変数defaultOutputLayerIdcは、Min(default_output_layer_idc,2)に等しくセットされる。
1に等しいoutput_layer_flag[i][j]は、i番目のOLS中のj番目のレイヤが出力レイヤであることを指定する。0に等しいoutput_layer_flag[i][j]は、i番目のOLS中のj番目のレイヤが出力レイヤではないことを指定する。
output_layer_flag[0][0]の値は、1に等しいと推測される。
defaultOutputLayerIdcが、両端値を含めて、0からvps_num_layer_sets_minus1までの範囲内のi、および両端値を含めて、0からNumLayersInIdList[OlsIdxToLsIdx[i]]−1までの範囲内のjに対して0または1であるときに、変数OutputLayerFlag[i][j]は、次のように導出される、すなわち、
defaultOutputLayerIdcが0に等しく、かつ、LayerSetLayerIdList[OlsIdxToLsIdx[i]][j]がnuhLayerIdAに等しく、AuxId[nuhLayerIdA]が0に等しいか、またはLayerSetLayerIdList[OlsIdxToLsIdx[i]][j]がnuhLayerIdAに等しく、nuhLayerIdAがLayerSetLayerIdList[OlsIdxToLsIdx[i]]における最高値であり、AuxId[nuhLayerIdA]が0に等しければ、OutputLayerFlag[i][j]は、1に等しくセットされる。
そうでない場合には、OutputLayerFlag[i][j]は、0に等しくセットされる。
両端値を含めて、(defaultOutputLayerIdc==2)?0:(vps_num_layer_sets_minus1+1)からNumOutputLayerSets−1までの範囲内のi、および両端値を含めて、0からNumLayersInIdList[OlsIdxToLsIdx[i]]−1までの範囲内のjに対して、変数OutputLayerFlag[i][j]は、output_layer_flag[i][j]に等しくセットされる。
変数NumOutputLayersInOutputLayerSet[i]は、次のように導出される、すなわち、
ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumOutputLayers−1までの範囲内のiの値に対して、NumOutputLayersInOutputLayerSet[i]が0より大きいものとすることである。
別の実施形態では、default_output_layer_idcおよびoutput_layer_flag[i][j]のセマンティクスが異なって修正される、すなわち、
default_output_layer_idcが1に等しいときに、最上位の出力レイヤを補助ピクチャ・レイヤとすることができるであろう。主張されるのは、この修正が、default_output_layer_idc値が1に等しいときの振舞いがdefault_output_layer_idc値が0に等しいときの振舞いと矛盾しないようにするということである。
JCT3V−H1002およびJCTVC−R0010について上記のことを達成するための例示的なシンタックスが以下に示される。
default_output_layer_idcは、両端値を含めて、1からvps_num_layer_sets_minus1までの範囲内のインデックスをもつOLSに係る出力レイヤの導出を指定する。0に等しいdefault_output_layer_idcは、両端値を含めて、1からvps_num_layer_sets_minus1までの範囲内のインデックスをもつそれぞれのOLSにおけるすべてのレイヤが、それらの各OLSのうちの出力レイヤであることを指定する。1に等しいdefault_output_layer_idcは、両端値を含めて、1からvps_num_layer_sets_minus1までの範囲内のインデックスをもつそれぞれのOLSにおいてnuh_layer_idがnuhLayerIdAに等しいようなnuh_layer_idの最高値もつレイヤのみが、そのOLSのうちのある1つの出力レイヤであることを指定する。2に等しいdefault_output_layer_idcは、両端値を含めて、1からvps_num_layer_sets_minus1までの範囲内のインデックスをもつOLSのための出力レイヤが、シンタックス要素output_layer_flag[i][j]を用いて指定されることを指定する。default_output_layer_idcに関する3の値は、ITU−T|ISO/IECによる将来の使用のために予約される。default_output_layer_idcの値は、この仕様のこのバージョンでは3より小さいことが必要とされるが、デコーダは、3に等しいdefault_output_layer_idcの値がシンタックス中に現れることを許容するものとする。
変数defaultOutputLayerIdcは、Min(default_output_layer_idc,2)に等しくセットされる。
1に等しいoutput_layer_flag[i][j]は、i番目のOLS中のj番目のレイヤが出力レイヤであることを指定する。0に等しいoutput_layer_flag[i][j]は、i番目のOLS中のj番目のレイヤが出力レイヤではないことを指定する。
output_layer_flag[0][0]の値は、1に等しいと推測される。
defaultOutputLayerIdcが、両端値を含めて、0からvps_num_layer_sets_minus1までの範囲内のi、および両端値を含めて、0からNumLayersInIdList[OlsIdxToLsIdx[i]]−1までの範囲内のjに対して0または1であるときに、変数OutputLayerFlag[i][j]は、次のように導出される、すなわち、
defaultOutputLayerIdcが0に等しいか、またはLayerSetLayerIdList[OlsIdxToLsIdx[i]][j]が、nuhLayerIdAがLayerSetLayerIdList[OlsIdxToLsIdx[i]]における最高値である、nuhLayerIdAに等しければ、OutputLayerFlag[i][j]は、1に等しくセットされる。
そうでない場合には、OutputLayerFlag[i][j]は、0に等しくセットされる。
両端値を含めて、(defaultOutputLayerIdc==2)?0:(vps_num_layer_sets_minus1+1)からNumOutputLayerSets−1までの範囲内のi、および両端値を含めて、0からNumLayersInIdList[OlsIdxToLsIdx[i]]−1までの範囲内のjに対して、変数OutputLayerFlag[i][j]は、output_layer_flag[i][j]に等しくセットされる。
変数NumOutputLayersInOutputLayerSet[i]は、次のように導出される、すなわち、
ビットストリーム適合性のある1つの要件は、両端値を含めて、0からNumOutputLayers−1までの範囲内のiの値に対して、NumOutputLayersInOutputLayerSet[i]が0より大きいものとすることである。
Stereo Mainプロファイルに適合するビットストリームは、次の制約条件に従う、すなわち、
VPSは、1に等しいvps_base_layer_internal_flagのみを有するものとする。
VPSは、両端値を含めて、0から15までの範囲内のvps_num_rep_formats_minus1を有するものとする。
Stereo Mainプロファイルに適合するOLSを含んだビットストリームは、OLSインデックスolsIdxをもち、layerSetIdxがOLSのためのレイヤセットである、それぞれのOLSに関して導出されたサブビットストリームに対する次の制約条件に従うものとし、このサブビットストリームは、次の入力、すなわち、ビットストリームと、6に等しいtIdTargetと、インデックスlayerSetIdxをもつレイヤセット中に含まれ、かつ、AuxId[layerId]が0に等しい複数のレイヤのnuh_layer_id値layerIdを含んだlayerIdListTargetとを用いて、F.10項において指定されるようなサブビットストリーム抽出処理を起動することによって導出される。
Stereo Mainプロファイルに適合するOLSを含んだビットストリームは、入力としてビットストリームと、6に等しいtIdTargetと、0に等しい1つのみのnuh_layer_id値を含んだlayerIdListTargetとを用いて、F.10項において指定されるようなサブビットストリーム抽出処理を起動することによって導出されたベースレイヤ・ビットストリームに対する次の制約条件にも従うものとする。
Stereo Mainプロファイルに適合するビットストリームから導出されたベースレイヤ・ビットストリームは、次の制約条件に従うものとする、すなわち、
ベースレイヤ・ビットストリームは、A.3.2項において指定されたMainプロファイルのすべての制約条件に従うものとする。
ベースレイヤ・ビットストリームのSPSは、1に等しいgeneral_profile_idcまたは1に等しいgeneral_profile_compatibility_flag[1]を有するものとする。
Stereo Mainプロファイルに適合するOLSに対して導出されたサブビットストリームは、次の制約条件に従うものとする、すなわち、
サブビットストリームに係るすべてのアクティブSPSは、1に等しいchroma_format_idcのみを有するものとする。
サブビットストリームの任意のアクティブSPSから導出されたCtbLog2SizeYは、両端値を含めて、4から6までの範囲内にあるものとする。
ScalabilityId[j][smIdx]は、1に等しくない任意のsmIdxに対して、およびサブビットストリームに関するjの任意の値に対して0に等しいものとする。
サブビットストリーム中のレイヤの数は、2に等しいものとする。
output_layer_flag[olsIdx][j]は、0から1までの範囲内のjのすべての値に対して1に等しいものとする。この制限は、alt_output_layer_flag[olsIdx]が0に等しいことを示唆する。
nuhLayerIdAに等しいLayerSetLayerIdList[OlsIdxToLsIdx[olsIdx]][j]をもつビットストリーム中の各レイヤに対して、AuxId[nuhLayerIdA]は、0に等しいものとする。
サブビットストリームにおけるiに等しいnuh_layer_idをもつレイヤに関してViewScalExtLayerFlag[i]が1に等しいときに、inter_view_mv_vert_constraint_flagは、そのレイヤに係る各アクティブSPS RBSP中のsps_multilayer_extension()シンタックス構造において1に等しいものとする。
サブビットストリームにおけるiに等しいnuh_layer_idをもつレイヤに関してViewScalExtLayerFlag[i]が1に等しいときに、num_scaled_ref_layer_offsetsは、そのレイヤに係る各アクティブSPS中で0に等しいものとする。
サブビットストリームにおけるiに等しいnuh_layer_idをもつレイヤに関してViewScalExtLayerFlag[i]が1に等しいときに、そのレイヤに係る各アクティブSPS中のpic_width_in_luma_samplesおよびpic_height_in_luma_samplesの値は、そのレイヤのすべての直接参照レイヤに係る各アクティブSPS中の、それぞれ、pic_width_in_luma_samplesおよびpic_height_in_luma_samplesの値に等しいものとする。
サブビットストリームに係るすべてのアクティブSPSは、0に等しいsps_range_extensions_flagのみ、および0に等しいsps_extension_6bitsのみを有するものとする。
サブビットストリームに係るすべてのアクティブPPSは、0に等しいpps_range_extensions_flaのみ、および0に等しいpps_extension_6bitsのみを有するものとする。
サブビットストリームに係るすべてのアクティブSPSは、0に等しいbit_depth_luma_minus8のみを有するものとする。
サブビットストリームに係るすべてのアクティブSPSは、0に等しいbit_depth_chroma_minus8のみを有するものとする。
AuxId[i]およびAuxId[j]がいずれも0に等しく、iがjに等しくないときに、ViewOrderIndex[i]は、ViewOrderIndex[j]に等しくないものとする。
さらに別の実施形態では、任意の適切な動作点にレイヤセットが適用されてもよい。
I slice_typeに関するslice_typeのセマンティクスは、レイヤ間予測が用いられる可能性を考えてIRAPピクチャおよびsps_max_dec_pic_buffering_minus1[TemporalId]値を考慮してもよいnuh_layer_id>0のIRAPピクチャに対してレイヤ間予測が用いられることがありうるので、この修正が望ましい。
slice_typeは、表7−7に従ってスライスの符号化タイプを指定する。
nal_unit_typeが、両端値を含めて、BLA_W_LPからRSV_IRAP_VCL23までの範囲内の値を有し、すなわち、ピクチャがIRAPピクチャであり、NumActiveRefLayerPicsが0に等しいときに、slice_typeは、2に等しいものとする。
sps_max_dec_pic_buffering_minus1[TemporalId]が0に等しく、NumDirectRefLayers[nuh_layer_id]が0に等しいときに、slice_typeは、2に等しいものとする。
別の実施形態では、nal_unit_typeが、両端値を含めて、BLA_W_LPからRSV_IRAP_VCL23までの範囲内の値を有し、すなわち、ピクチャがIRAPピクチャであり、nuh_layer_idが0に等しいか、またはNumActiveRefLayerPicsが0に等しいときに、slice_typeは、2に等しいものとする。
sps_max_dec_pic_buffering_のときには、1つ以上のシンタックス要素が示されるより少ないかまたは多い回数シグナリングされてもよい。minus1[TemporalId]が0に等しく、NumDirectRefLayers[nuh_layer_id]が0に等しく、slice_typeは、2に等しいものとする。
別の実施形態では、nal_unit_typeが、両端値を含めて、BLA_W_LPからRSV_IRAP_VCL23までの範囲内の値を有し、すなわち、ピクチャがIRAPピクチャであり、スライスに関してレイヤ間予測が何も用いられないときに、slice_typeは、2に等しいものとする。
sps_max_dec_pic_buffering_minus1[TemporalId]が0に等しく、NumActiveRefLayerPicsが0に等しいときに、slice_typeは、2に等しいものとする。
別の実施形態では、nal_unit_typeが、両端値を含めて、BLA_W_LPからRSV_IRAP_VCL23までの範囲内の値を有し、すなわち、ピクチャがIRAPピクチャであり、スライスに関してレイヤ間予測が何も用いられないときに、slice_typeは、2に等しいものとする。
sps_max_dec_pic_buffering_minus1[TemporalId]が0に等しく、スライスに対してレイヤ間予測が何も用いられないときに、slice_typeは、2に等しいものとする。
別の実施形態では、nal_unit_typeが、両端値を含めて、BLA_W_LPからRSV_IRAP_VCL23までの範囲内の値を有し、すなわち、ピクチャがIRAPピクチャであり、NumActiveRefLayerPicsが0に等しいときに、slice_typeは、2に等しいものとする。
sps_max_dec_pic_buffering_minus1[TemporalId]が0に等しく、NumDirectRefLayers[nuh_layer_id]が0に等しいときに、slice_typeは、2に等しいものとする。
NumPicTotalCurrが0に等しいときに、slice_typeは、0に等しいものとする。
別の実施形態では、nal_unit_typeが、両端値を含めて、BLA_W_LPからRSV_IRAP_VCL23までの範囲内の値を有し、すなわち、ピクチャがIRAPピクチャであり、NumDirectRefLayers[nuh_layer_id]が0に等しいときに、slice_typeは、2に等しいものとする。
sps_max_dec_pic_buffering_minus1[TemporalId]が0に等しく、NumDirectRefLayers[nuh_layer_id]が0に等しいときに、slice_typeは、2に等しいものとする。
別の実施形態では、nal_unit_typeが、両端値を含めて、BLA_W_LPからRSV_IRAP_VCL23までの範囲内の値を有し、すなわち、ピクチャがIRAPピクチャであり、nuh_layer_idが0に等しいか、またはNumDirectRefLayers[nuh_layer_id]が0に等しいときに、slice_typeは、2に等しいものとする。
sps_max_dec_pic_buffering_minus1[TemporalId]が0に等しく、nuh_layer_idが0に等しいか、またはNumDirectRefLayers[nuh_layer_id]が0に等しいときに、slice_typeは、2に等しいものとする。
加えて、0に等しいnuh_layer_id(すなわち、ベースレイヤ)に係るNumActiveRefLayerPicsおよびNumDirectRefLayers[0]のための参照ルールが用いられてもよく、例えば、
0に等しいnuh_layer_idに係るNumActiveRefLayerPicsは、0に等しいと推測される。
NumDirectRefLayers[0]は、0に等しいと推測される。
JCTVC−Q01008およびJCT3V−H1002において、出力順デコーダ適合性は、DPBサイズをsps_max_dec_pic_buffering_minus1パラメータに基づいて指定する。さらに、出力順デコーダ適合性のためのHRDのDPBの動作は、C5.2からC5.2.3項において記載される通りである。出力順DPBの動作は、VPSでシグナリングされたdPBパラメータに基づくので、サブDPBサイズが適切に指定されるべきである。
この仕様に適合するデコーダは、この項で指定されたすべての要件を満たすものとする。
特定のプロファイル、ティアおよびレベルへの適合性を主張するデコーダは、VCL NALユニットによって参照されるすべてのVPS、SPSおよびPPS、然るべきバッファリング周期、ピクチャタイミング、ならびにデコーダ・ユニット情報SEIメッセージが、ビットストリームで(non−VCL NALユニットによって)、あるいはこの仕様では指定されない外部手段によって、タイムリーにデコーダへ伝達され、かつ、vps_base_layer_internal_flagが0に等しいときには、0に等しいnuh_layer_idおよびF.8.1項において指定されるようなそれらの特性をもつ復号ピクチャが、この仕様では指定されない外部手段によってタイムリーにデコーダへ伝達されることを条件として、C.4項において指定されるビットストリーム適合性要件に適合するすべてのビットストリームを、付属書Aにおいて指定される仕方で、首尾よく復号することが可能であるものとする。
ある1つのビットストリームが予約されるとして指定された値を有するシンタックス要素を含み、それらのシンタックス要素の値またはそれらの予約値を有するシンタックス要素を含んだNALユニットをデコーダが無視するものとすることが指定され、その他の点ではそのビットストリームがこの仕様に適合しているときに、適合するデコーダは、そのビットストリームをそれが適合しているビットストリームを復号するであろう同じ仕方で復号するものとし、それらのシンタックス要素またはそれらの予約値を有するシンタックス要素を含んだNALユニットを指定されたように無視するものとする。
デコーダによって主張できる適合性には2つのタイプ、すなわち、出力タイミング適合性および出力順適合性がある。
デコーダの適合性をチェックするために、C.4項において指定されるような、主張されるプロファイル、ティアおよびレベルに適合しているテスト・ビットストリームが仮想ストリーム・スケジューラ(HSS)によってHRDおよび被テスト・デコーダ(DUT)の両方へ配信される。vps_base_layer_internal_flagが0に等しいときに、0に等しいnuh_layer_idおよびF.8.1項において指定されるようなそれらの特性をもつ復号ピクチャも、この仕様では指定されない外部手段によってタイムリーにHRDおよびDUTの両方へ伝達される。HRDによって出力されるすべてのクロップされた復号ピクチャは、DUTによっても出力されるものとし、DUTによって出力される各クロップされた復号ピクチャは、1に等しいPicOutputFlagをもつピクチャであるものとし、DUTによって出力されるかかるクロップされた復号ピクチャごとに、出力されるすべてのサンプルの値は、指定された復号処理によって生成されたサンプルの値に等しいものとする。HRDによって出力されるフラグBaseLayerOutputFlagおよびすべてのBaseLayerPicOutputFlagは、DUTによっても出力されるものとし、出力される値は、指定された復号処理によって生成された値に等しいものとする。
出力タイミング・デコーダ適合性のために、HSSは、ビットレートおよびCPBサイズが指定されたプロファイル、ティアおよびレベルについて付属書Aにおいて指定されるように制限された、SchedSelIdxの値のサブセットのみから選択された配信スケジュールを用いるか、またはビットレートおよびCPBサイズが付属書Aにおいて指定されるように制限された、以下に指定されるような「補間」配信スケジュールを用いて、上記のように動作する。同じ配信スケジュールがHRDおよびDUTの両方に用いられる。
HRDパラメータおよびバッファリング周期SEIメッセージが、0より大きいcpb_cnt_minus1[HighestTid]とともに存在するときに、デコーダは、BitRate[SchedSelIdx−1]<=r<=BitRate[SchedSelIdx]である任意のSchedSelIdx>0およびrに対して、次のように、
であり、ピーク・ビットレートrおよびCPBサイズc(r)が指定されたプロファイル、ティアおよびレベルに係る最大ビットレートおよびバッファサイズについて付属書Aにおいて指定された限界内にあるr、c(r)、および初期CPBリムーバル遅延(f(r)÷r)を有することが指定された、「補間」配信スケジュールを用いて動作しているHSSから配信されたビットストリームを復号することが可能であってもよい。InitCpbRemovalDelay[SchedSelIdx]がバッファリング周期ごとに異なり、再算出が必要なことがありうる。
出力タイミング・デコーダ適合性のために、上記のようなHRDが用いられ、ピクチャ出力の(第1ビットの配信時刻に対する)タイミングは、一定の遅延までHRDおよびDUTの両方について同じである。
出力順デコーダ適合性のために、以下が適用される、すなわち、
HSSは、DUTからの「要求によって」ビットストリームBitstreamToDecodeをDUTへ配信し、これは、DUTがその処理を進めるためにより多くのビットを必要とするときにのみHSSがビットを(復号順に)配信することを意味する。これが意味するのは、このテストでは、DUTの符号化ピクチャバッファを最も大きい復号ユニットのサイズと同じぐらい小さくできるであろうということである。
以下に記載されるような修正されたHRDが用いられ、HSSは、ビットレートおよびCPBサイズが付属書Aにおいて指定される通り制限されるようにビットストリームをビットストリームBitstreamToDecodeで指定されたスケジュールのうちの1つによってHRDへ配信する。ピクチャ出力の順序は、HRDおよびDUTの両方について同じであるものとする。
HRD CPBサイズは、E.3.3項において指定されるようなCpbSize[SchedSelIdx]によって与えられ、ここでSchedSelIdxおよびHRDパラメータは、C.1項において指定されるように選択される。currLayerIdに等しいnuh_layer_idをもつレイヤのためのサブDPBのサブDPBサイズは、max_vps_dec_pic_buffering_minus1[TargetOlsIdx][layerIdx][HighestTid]+1であり、ここでlayerIdxは、LayerSetLayerIdList[TargetDecLayerSetIdx[layerIdx]がcurrLayerIdに等しいような値に等しい。CPBからのリムーバル時刻は、HRDでは最終ビット到着時刻であり、復号は即時である。このHRDのDPBの動作は、C5.2からC5.2.3項において記載される通りである。
正当な出力レイヤセットを指し示すためにoutput_layer_set_idx_to_vps[i]に対して許容値の範囲が定義される。output_layer_set_idx_to_vps[i]は、ue(v)符号化されるが、それが無効な出力レイヤセットを指し示さないように取りうる値に対する制限を含むべきである。表F.14.1.6は、サブビットストリーム特性SEIメッセージ・シンタックスに関係する。
F.14.1.6 サブビットストリーム特性SEIメッセージ・シンタックス
サブビットストリーム特性SEIメッセージは、存在するときに、アクティブVPSによって指定された出力レイヤセットのうちの出力レイヤには属さない、出力レイヤの復号には影響を及ぼさないレイヤ中のピクチャを破棄することによって作り出されるサブビットストリームに関するビットレート情報を提供する。
存在するときには、サブビットストリーム特性SEIメッセージが最初のIRAPアクセスユニットに関連付けられるものとし、SEIメッセージによって提供された情報は、関連付けられた最初のIRAPアクセスユニットを含んだCVSに対応するビットに適用される。
sb_property_active_vps_idは、アクティブVPSを識別する。sb_property_active_vps_idの値は、関連付けられたアクセスユニットのうちのVCL NALユニットによって参照されるアクティブVPSのvps_video_parameter_set_idの値に等しいものとする。
num_additional_sub_streams_minus1+1は、ビットレート情報がこのSEIメッセージによって提供されてもよいサブビットストリームの数を指定する。num_additional_sub_streams_minus1の値は、両端値を含めて、0から210−1までの範囲内にあるものとする。
sub_bitstream_mode[i]は、i番目のサブビットストリームがどのように生成されるかを指定する。sub_bitstream_mode[i]の値は、両端値を含めて、0または1に等しいものとする。2および3の値は、ITU−TおよびISO/IECによる将来の使用のために予約される。sub_bitstream_mode[i]が1より大きいときに、デコーダは、シンタックス要素output_layer_set_idx_to_vps[i]、highest_sublayer_id[i]、avg_sb_property_bit_rate[i]、およびmax_sb_property_bit_rate[i]を無視するものとする。
sub_bitstream_mode[i]が0に等しいときに、i番目のサブビットストリームは、次のステップによって指定されるように生成される、すなわち、
10節において指定されるようなサブビットストリーム抽出処理が、入力としてサブビットストリーム特性SEIメッセージ、highest_sublayer_id[i]、およびLayerSetLayerIdList[LayerSetIdxForOutputLayerSet[output_layer_set_idx_to_vps[i]]を含んだCVSに対応するビットストリームを用いて起動される。
nuh_layer_idがTargetOptLayerIdList中に含まれず、次に条件のうちのいずれかが真であるすべてのNALユニットを除去する、すなわち、
nal_unit_typeの値が、両端値を含めて、BLA_W_LPからRSV_IRAP_VCL23までの範囲内になく、max_tid_il_ref_pics_plus1[LayerIdxInVps[nuh_layer_id]][LayerIdxInVps[layerId]がTargetOptLayerIdList中に含まれたlayerId値に関して0に等しい。
TemporalIdが、TargetOptLayerIdList中に含まれるすべてのlayerId値に対するmax_tid_il_ref_pics_plus1[LayerIdxInVps[nuh_layer_id]][LayerIdxInVps[layerId]−1の最大値より大きい。
sub_bitstream_mode[i]が1に等しいときに、i番目のサブビットストリームは、上記のステップに以下が続くことによって指定されるように生成される、すなわち、
nuh_layer_idがTargetOptLayerIdList中に含まれた値のうちにはなく、discardable_flagが1に等しいすべてのNALユニットを除去する。
output_layer_set_idx_to_vps[i]は、i番目のサブビットストリームに対応する出力レイヤセットのインデックスを指定する。output_layer_set_idx_to_vps[i]の値は、両端値を含めて、1からNumOutputLayerSets−1までの範囲内にあるものとする。
代わりの実施形態では、output_layer_set_idx_to_vps[i]に関して0の値が許容されてもよい。従って、この変形例における上記の制約条件は、次の通りであろう、すなわち、
output_layer_set_idx_to_vps[i]の値は、両端値を含めて、0からNumOutputLayerSets−1までの範囲内にあるものとする。
highest_sublayer_id[i]は、i番目のサブビットストリームにおけるアクセスユニットの最も高いTemporalIdを指定する。
avg_sb_property_bit_rate[i]は、i番目のサブビットストリームの、ビット/秒単位の、平均ビットレートを示す。その値は、BitRateBPS(avg_sb_property_bit_rate[i])によって与えられ、関数BitRateBPS()は、次のように指定される、すなわち、BitRateBPS(x)=(x&(214−1))*10(2+(x>>14))
平均ビットレートは、F.13節において指定されたアクセスユニット・リムーバル時刻に従って導出される。以下では、bTotalは、i番目のサブビットストリームのすべてのNALユニットにおけるビットの数であり、t1は、VPSが適用される第1のアクセスユニットの(秒単位の)リムーバル時刻であり、t2は、VPSが適用される(復号順に)最後のアクセスユニットの(秒単位の)リムーバル時刻である。avg_sb_property_bit_rate[i]の値を指定しているxを用いて、以下が適用される、すなわち、
t1がt2に等しくなければ、次の条件が真であるものとする、すなわち、
(x&(214−1))==Round(bTotal÷((t2−t1)*10(2+(x>>14))))
そうでない(t1がt2に等しい)場合には、次の条件が真であるものとする、すなわち、
(x&(214−1))==0
max_sb_property_bit_rate[i]は、F.13節において指定されるようなアクセスユニット・リムーバル時刻の任意の1秒時間ウィンドウにおけるi番目のサブビットストリームのビットレートに対する上限を示す。ビット/秒単位のビットレートに対する上限は、BitRateBPS(max_sb_property_bit_rate[i])によって与えられる。ビットレート値は、F.13節において指定されたアクセスユニット・リムーバル時刻に従って導出される。以下では、t1は、(秒単位の)任意の時点であり、t2は、
t1+1÷100
に等しくセットされ、bTotalは、t1以降かつt2より前のリムーバル時刻をもつアクセスユニットのすべてのNALユニットにおけるビットの数である。max_sb_property_bit_rate[i]の値を指定しているxを用いて、t1のすべての値に対して次の条件に従うものとする、すなわち、
(x&(214−1))>=bTotal÷((t2−t1)*10(2+(x>>14)))
別の実施形態では、1つ以上のシンタックス要素が示されるより少ないかまたは多い回数シグナリングされてもよい。例えば、1ビットのフラグ値がN回シグナリングされることが示されてもよい。その代わりに、1ビットのフラグ値がM回シグナリングされてもよく、MがNより多くてもよく、またはMがNより少なくてもよい。
さらに別の実施形態では、ビットストリーム適合性のある1つの要件は、splitting_flagが1に等しいときに、すべての(dimension_id_len_minus1[j]+1)要素の合計が、ビットストリームの何らかの規範的または非規範的な部分で送信されてもよい、他の何らかのシンタックス要素を符号化するために用いられるビット単位のサイズ以下であることである。
別の実施形態では、シンタックス要素のうちの1つ以上がue(v)の代わりにu(v)の代わりの既知の固定ビット数を用いてシグナリングされてもよい。例えば、それらのシンタックス要素をu(8)もしくはu(16)またはu(32)あるいはu(64)などを用いてシグナリングできるであろう。
別の実施形態では、これらのシンタックス要素のうちの1つ以上をu(v)符号化のような固定ビット数の代わりにue(v)または他の何らかの符号化方式を用いてシグナリングできるであろう。
別の実施形態では、様々なシンタックス要素およびそれらのセマンティクスの名前が記載されたシンタックスおよびセマンティクスと比較して+1もしくは+2を加えるか、または−1もしくは−2を減じることによって変えられてもよい。
さらに別の実施形態では、様々なシンタックス要素がビットストリーム中のどこでもピクチャごとにシグナリングされてもよい。例えば、様々なシンタックスがスライスセグメントヘッダ、pps/sps/vps/もしくはその他のパラメータセットまたはビットストリームの他の規範的な部分でシグナリングされてもよい。
用語「コンピュータ可読媒体」は、コンピュータまたはプロセッサによってアクセスできる任意の利用可能な媒体を指す。用語「コンピュータ可読媒体」は、本明細書では、非一時的かつ有形のコンピュータおよび/またはプロセッサ可読媒体を示す。限定ではなく、例として、コンピュータ可読またはプロセッサ可読媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスク記憶、磁気ディスク記憶もしくは他の磁気記憶デバイス、あるいは命令の形態の所望のプログラムコードまたはデータ構造を運ぶか、または記憶するために用いることができ、コンピュータまたはプロセッサによってアクセスできるその他の媒体を備えてもよい。ディスク(disk)およびディスク(disc)は、本明細書では、コンパクトディスク(CD:compact disc)、レーザディスク(laser disc)、光ディスク(optical disc)、デジタルバーサタイルディスク(DVD:digital versatile disc)、フロッピー(登録商標)ディスク(floppy disk)およびBlu−ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、磁気的にデータを再生し、一方でディスク(disc)は、レーザを用いて光学的にデータを再生する。
留意すべきは、本明細書に記載される方法の1つ以上がハードウェアで実装されてもよく、および/またはハードウェアを用いて行われてもよいことである。例えば、本明細書に記載される方法またはアプローチの1つ以上は、チップセット、ASIC、大規模集積回路(LSI:large−scale integrated circuit)または集積回路などで実装されてもよく、および/またはそれらを用いて実現されてもよい。
本明細書に開示されるそれぞれの方法は、記載される方法を達成するための1つ以上のステップまたは動作を備える。本方法のステップおよび/または動作は、特許請求の範囲から逸脱することなく相互に交換されてもよく、および/または単一のステップに組み合わされてもよい。言い換えれば、記載される方法の適切なオペレーションのためにステップまたは動作の特定の順序が必要とされない限り、特定のステップおよび/または動作の順序および/または使用は、特許請求の範囲から逸脱することなく修正されてもよい。
当然のことながら、特許請求の範囲は、先に示された通りの構成および構成要素には限定されない。特許請求の範囲から逸脱することなく、本明細書に記載される配置、オペレーション、ならびにシステム、方法および装置の詳細に様々な修正、変更および変形がなされてもよい。