[0019]ビデオエンコーダは、符号化されたビデオデータを含むビットストリームを生成することができる。ビットストリームは、一連のネットワーク抽象化レイヤ(NAL)ユニットを備え得る。ビットストリームのNALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと非VCL NALユニットとを含み得る。VCL NALユニットは、ピクチャのコーディングされたスライスを含み得る。非VCL NALユニットは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、supplemental enhancement
information(SEI)、または他のタイプのデータを含み得る。VPSは、0個以上のコーディングされたビデオシーケンス全体に適用されるシンタックス要素(syntax elements)を含み得るシンタックス構造である。SPSは、0個或いはさらに多いコーディングされたビデオシーケンス全体に適用されるシンタックス要素を含み得るシンタックス構造である。単一のVPSが複数のSPSに適用可能であり得る。PPSは、0個あるいはさらに多いコーディングされたピクチャ全体に適用されるシンタックス要素を含み得る、シンタックス構造である。単一のSPSが複数のPPSに適用可能であり得る。VPS、SPS、およびPPSの様々な態様が、一般に、HEVC標準によって定義されるように、形成され得る。
[0020]コンテンツ配信ネットワーク(CDN)デバイス、メディア認識ネットワーク要素(MANE:Media-Aware Network Element)、またはビデオデコーダのようなデバイスは、ビットストリームからサブビットストリームを抽出することができる。デバイスは、ビットストリームからいくつかのNALユニットを除去することによって、サブビットストリーム抽出処理を実行することができる。得られるサブビットストリームは、ビットストリームの残りの除去されていないNALユニットを含む。例として、サブビットストリームから復号されたビデオデータは、元のビットストリームよりも、低いフレームレートを有することがあり、かつ/または、少数のビューを表すことがある。
[0021]ビデオコーディング標準は、サブビットストリーム抽出処理をサポートするために、様々な特徴を含み得る。たとえば、ビットストリームのビデオデータは、レイヤのセットに分割され得る。レイヤの各々に対して、低次レイヤのデータは、いずれの高次レイヤのデータも参照することなく、復号され得る。個々のNALユニットは、単一のレイヤのデータのみをカプセル化する。したがって、ビットストリームの最高次の残りのレイヤのデータをカプセル化するNALユニットは、ビットストリームの残りの低次レイヤのデータの復号可能性に影響を与えることなく、ビットストリームから除去され得る。スケーラブルビデオコーディング(scalable video coding)(SVC)では、高次レイヤは、低次レイヤのピクチャの品質を改善し(品質スケーラビリティ)、低次レイヤのピクチャの空間的なフォーマットを広げ(空間スケーラビリティ)、または低次レイヤのピクチャの時間的な(temporal)レートを上げる(時間的なスケーラビリティ)、増強データを含み得る。マルチビューコーディング(MVC)および3次元ビデオ(3DV)コーディングでは、高次レイヤは追加のビューを含み得る。
[0022]NALユニットは、ヘッダとペイロードとを含み得る。NALユニットのヘッダは、nuh_reserved_zero_6bitsシンタックス要素を含む。NALユニットのnuh_reserved_zero_6bitsシンタックス要素は、NALユニットがマルチビューコーディング、3DVコーディング、またはSVCにおけるベースレイヤに関連する場合、0に等しい。ビットストリームのベースレイヤのデータは、ビットストリームのいずれの他のレイヤのデータも参照することなく、復号され得る。NALユニットがマルチビューコーディング、3DV、またはSVCにおけるベースレイヤに関連しない場合、nuh_reserved_zero_6bitsシンタックス要素は、0ではない値を有し得る。具体的には、NALユニットがマルチビューコーディング、3DV、またはSVCにおけるベースレイヤに関連しない場合、NALユニットのnuh_reserved_zero_6bitsシンタックス要素は、NALユニットのレイヤ識別子を規定する。
[0023]さらに、レイヤ内のいくつかのピクチャは、同じレイヤ内の他のピクチャを参照することなく、復号され得る。したがって、レイヤのいくつかのピクチャのデータをカプセル化するNALユニットは、レイヤ中の他のピクチャの復号可能性に影響を与えることなく、ビットストリームから除去され得る。たとえば、偶数のピクチャ順序カウント(POC)値を有するピクチャは、奇数のPOC値を有するピクチャを参照することなく復号可能であり得る。そのようなピクチャのデータをカプセル化するNALユニットを除去することで、ビットストリームのフレームレートを下げることができる。レイヤ内の他のピクチャを参照することなく復号され得るレイヤ内のピクチャのサブセットは、サブレイヤと本明細書では呼ばれ得る。
[0024]NALユニットは、temporal_idシンタックス要素を含み得る。NALユニットのtemporal_idシンタックス要素は、NALユニットの時間識別子を規定する。第1のNALユニットの時間識別子が第2のNALユニットの時間識別子より小さい場合、第1のNALユニットによってカプセル化されたデータは、第2のNALユニットによってカプセル化されたデータを参照することなく、復号され得る。
[0025]ビットストリームの各動作点は、レイヤ識別子のセット(すなわち、nuh_reserved_zero_6bitsの値のセット)および時間識別子と関連付けられる。レイヤ識別子のセットはOpLayerIdSetと示されることがあり、時間識別子はTemporalIdと示されることがある。NALユニットのレイヤ識別子がレイヤ識別子の動作点のセットの中にあり、NALユニットの時間識別子がその動作点の時間識別子以下である場合、NALユニットはその動作点と関連付けられる。動作点表現は、動作点と関連付けられるビットストリームのサブセットである。動作点表現は、その動作点と関連付けられる各NALユニットを含み得る。動作点表現は、その動作点と関連付けられないVCL NALユニットを含まない。
[0026]外部ソースが、動作点のターゲットレイヤ識別子のセットを規定し得る。たとえば、CDNデバイスまたはMANEのようなデバイスが、ターゲットレイヤ識別子のセットを規定し得る。この例では、デバイスは、ターゲットレイヤ識別子のセットを使用して、動作点を特定することができる。デバイスは次いで、動作点に対する動作点表現を抽出して、元のビットストリームの代わりに、動作点表現をクライアントデバイスに転送することができる。動作点表現を抽出しクライアントデバイスに転送することは、ビットストリームのビットレートを下げ得る。
[0027]さらに、ビデオコーディング標準は、ビデオのバッファリングのモデルを規定する。ビデオのバッファリングのモデルはまた、「仮想参照デコーダ」または「HRD」と呼ばれ得る。HRDは、データが復号のためにどのようにバッファリングされるべきかということと、復号されたデータが出力のためにどのようにバッファリングされるかということとを表す。たとえば、HRDは、ビデオデコーダにおけるコーディングされたピクチャのバッファ(「CPB:coded picture buffer」)および復号されたピクチャのバッファ(「DPB:decoded picture buffer」)の動作を表す。CPBは、HRDによって規定される復号順序でアクセスユニットを含む、先入れ先出しのバッファである。DPBは、HRDによって規定される参照、出力の並べ替え、または出力遅延のために、復号されたピクチャを保持するバッファである。
[0028]ビデオエンコーダは、HRDパラメータのセットをシグナリングすることができる。HRDパラメータは、HRDの様々な態様を制御する。HRDパラメータは、当初のCPBの除去遅延と、CPBサイズと、ビットレートと、当初のDPBの出力遅延と、DPBサイズとを含む。これらのHRDパラメータは、VPSおよび/またはSPSにおいて規定される、hrd_parameters()シンタックス構造においてコーディングされる。HRDパラメータはまた、バッファリング期間supplemental enhancement information(SEI)メッセージまたはピクチャタイミングSEIメッセージにおいて規定され得る。
[0029]上で説明されたように、動作点表現は、元のビットストリームと異なるフレームレートおよび/またはビットレートを有し得る。これは、動作点表現が元のビットストリームのデータのいくつかのピクチャおよび/または一部を含まないことがあるからである。したがって、元のビットストリームを処理するときにビデオデコーダが特定のレートでCPBおよび/またはDPBからデータを除去することになっていた場合、および、動作点表現を処理するときにビデオデコーダが同じレートでCPBおよび/またはDPBからデータを除去することになっていた場合、ビデオデコーダは、CPBおよび/またはDPBから、あまりにも大量の、または少量のデータを除去することがある。したがって、ビデオエンコーダは、異なる動作点のためにHRDパラメータの異なるセットをシグナリングすることができる。出現しつつあるHigh−Efficiency Video Coding(HEVC)標準では、ビデオエンコーダは、VPS中のHRDパラメータのセットをシグナリングすることができ、または、ビデオエンコーダは、SPS中のHRDパラメータのセットをシグナリングすることができる。「HEVC Working Draft 8」と呼ばれる次のHEVC標準のドラフトは、2013年5月8日現在、http://phenix.int−evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC−J1003−v8.zipから利用可能である、Brossら、「High Efficiency Video Coding (HEVC) text specification
draft 8」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT−VC)、第10回会合、ストックホルム、スウェーデン、2012年7月に記載されている。
[0030]HEVCのいくつかのバージョンでは、VPS中のHRDパラメータのセットのみが、HRD動作のために選択される。すなわち、HRDパラメータはSPSの中で提供され得るが、SPS中のHRDパラメータのセットは、HRD動作のためにHEVCビデオデコーダによって選択されない。ビデオデコーダは常に、ビットストリームのVPSを解析し復号する。したがって、ビデオデコーダは常に、VPSのHRDパラメータのセットを解析し復号する。これは、ビットストリームがベースレイヤ以外のNALユニットを含むかどうかに関係なく、当てはまる。したがって、ビットストリームがベースレイヤ以外のNALユニットを含む場合、SPS中のHRDパラメータのセットを解析し扱うのは、計算リソースの無駄であり得る。さらに、HRDパラメータのセットがVPSの中に存在する場合、SPS中のHRDパラメータのセットは、無駄なビットであり得る。
[0031]本開示の技法によれば、ビデオエンコーダは、ピクチャのシーケンスに適用可能なSPSを含むビットストリームを生成することができる。SPSは、HRDパラメータのセットを含む。HRDパラメータのセットは、ターゲットレイヤ識別子のセットと一致するレイヤ識別子のセットを有する、ビットストリームの各動作点に適用可能である。したがって、SPS中のHRDパラメータのセットは無駄にされず、むしろHRD動作のために使用され得る。たとえば、デバイスは、VPS中のHRDパラメータのセットおよびSPS中のHRDパラメータのセットの中から、特定の動作点に適用可能なHRDパラメータのセットを選択することができる。デバイスは、特定の動作点に適用可能なHRDパラメータのセットに少なくとも一部基づいて、その特定の動作点と関連付けられるビットストリームのサブセットがビデオコーディング標準に適合するかどうかを試験する、ビットストリーム適合試験を実行することができる。
[0032]ビデオエンコーダ、ビデオデコーダ、または、CDNデバイスまたはMANEのような別のタイプのデバイスなどのデバイスは、動作点に対する動作点表現に、ビットストリーム適合試験を実行することができる。ビットストリーム適合試験は、HEVCのようなビデオコーディング標準に動作点表現が適合することを確かめることができる。上で言及されたように、ターゲットレイヤ識別子のセットおよび時間識別子が、動作点を特定するために使用され得る。ターゲットレイヤ識別子のセットは、「TargetDecLayerIdSet」と示され得る。時間識別子は、「TargetDecHighestTid」と示され得る。問題なことに、HEVC Working Draft 8は、ビットストリーム適合試験を実行するときに、どのようにTargetDecLayerIdSetまたはTargetDecHighestTidが設定されるかを規定しない。
[0033]本開示の1つまたは複数の技法によれば、デバイスは、ビットストリーム適合試験を実行することの一部として、復号処理を実行することができる。復号処理を実行することは、ビットストリーム抽出処理を実行して、レイヤ識別子のターゲットセットおよびターゲットの最高の時間識別子によって定義される動作点の動作点表現を、ビットストリームから復号することを備える。レイヤ識別子のターゲットセット(すなわち、TargetDecLayerIdSet)は、動作点表現の中に存在するレイヤ識別子のシンタックス要素(たとえば、nuh_reserved_zero_6bitsシンタックス要素)の値を含む。レイヤ識別子のターゲットセットは、ビットストリームのレイヤ識別子シンタックス要素の値のサブセットである。ターゲットの最高の時間識別子(すなわち、TargetDecHighestTid)は、動作点表現の中に存在する最大の時間識別子に等しい。ターゲットの最高の時間識別子は、ビットストリーム中に存在する最大の時間識別子以下である。復号処理を実行することはまた、動作点表現のNALユニットを復号することを備え得る。
[0034]HEVCでは、SPSは、sps_max_dec_pic_buffering[i]として示されるシンタックス要素のアレイを含むことがあり、iは、0からビットストリーム中の時間的なレイヤの最大の数にまでわたる。sps_max_dec_pic_buffering[i]は、最高の時間識別子(HighestTid)がiに等しいとき、DPBの最大の要求されるサイズを示す。sps_max_dec_pic_buffering[i]は、ピクチャ記憶バッファの単位で、要求されるサイズを示す。
[0035]さらに、HEVCでは、SPSは、sps_max_num_reorder_pics[i]と示されるシンタックス要素のアレイを含むことがあり、iは、0からビットストリーム中の時間的なレイヤの最大の数にまでわたる。sps_max_num_reorder_pics[i]は、最高の時間識別子(HighestTid)がiに等しいときの、復号順序においていずれかのピクチャに先行し、出力順序においてそのピクチャの後にあるピクチャの、最大の許容される数を示す。
[0036]HEVCでは、HRDパラメータのセットは、cpb_cnt_minus1[i]と示されるシンタックス要素のアレイを含むことがあり、iは、0からビットストリーム中の時間的なレイヤの最大の数にまでわたる。cpb_cnt_minus1[i]は、最高の時間識別子(HighestTid)がiに等しいときの、コーディングされたビデオシーケンスのビットストリーム中の代替的なCPB仕様の数を規定し、ここで、1つの代替的なCPB仕様は、CPBパラメータの特定のセットを伴う1つの特定のCPB動作を指す。
[0037]HEVC Working Draft 8では、sps_max_dec_pic_buffering[i]、sps_max_num_reorder_pics[i]、およびcpb_cnt_minus1[i]は、HRD動作、ビットストリーム適合動作、およびレベル制約において適切に選択されない。これは、少なくとも一部、HEVC Working Draft 8が最高の時間識別子(HighestTid)により意味されるものを規定しないことが原因である。
[0038]本開示の1つまたは複数の技法によれば、ビデオエンコーダ、ビデオデコーダ、または別のデバイスのようなデバイスが、ビットストリームの選択された動作点と関連付けられるビットストリームのサブセットの最高の時間識別子を決定することができる。さらに、デバイスは、最高の時間識別子に基づいて、シンタックス要素のアレイ(たとえば、sps_max_dec_pic_buffering[]、sps_max_num_reorder_pics[]、またはcpb_cnt_minus1[])の中から、特定のシンタックス要素を決定することができる。デバイスは、特定のシンタックス要素を使用する動作を実行して、ビデオコーディング標準に対するビットストリームの適合を決定し、または、ビデオコーディング標準に対するビデオデコーダの適合を決定することができる。
[0039]図1は、本開示の技法を利用し得る、例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用される「ビデオコーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化またはビデオ復号を総称的に指し得る。
[0040]図1に示されるように、ビデオコーディングシステム10は、ソースデバイス12と宛先デバイス14とを含む。ソースデバイス12は、符号化されたビデオデータを生成する。したがって、ソースデバイス12はビデオ符号化デバイスまたはビデオ符号化装置と呼ばれ得る。宛先デバイス14はソースデバイス12によって生成された、符号化されたビデオデータを復号することができる。したがって、宛先デバイス14はビデオ復号デバイスまたはビデオ復号装置と呼ばれ得る。ソースデバイス12および宛先デバイス14は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
[0041]ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤー、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲のデバイスを備え得る。
[0042]宛先デバイス14は、チャネル16を介してソースデバイス12から符号化されたビデオデータを受信し得る。チャネル16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを移動することが可能な、1つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル16は、ソースデバイス12が符号化されたビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にする、1つまたは複数の通信媒体を備え得る。この例では、ソースデバイス12は、ワイヤレス通信プロトコルのような通信標準に従って、符号化されたビデオデータを変調することができ、変調されたビデオデータを宛先デバイス14に送信することができる。1つまたは複数の通信媒体は、高周波(RF)スペクトルまたは1つもしくは複数の物理伝送線路のような、ワイヤレスおよび/または有線の通信媒体を含み得る。1つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク(たとえば、インターネット)などのパケットベースネットワークの一部を形成し得る。1つまたは複数の通信媒体は、ソースデバイス12から宛先デバイス14への通信を容易にする、ルータ、スイッチ、基地局、または他の機器を含み得る。
[0043]別の例では、チャネル16は、ソースデバイス12によって生成された、符号化されたビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス14は、たとえばディスクアクセスまたはカードアクセスを介して、記憶媒体にアクセスし得る。記憶媒体は、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、または符号化されたビデオデータを記憶するための他の適切なデジタル記憶媒体のような、種々のローカルにアクセスされるデータ記憶媒体を含み得る。
[0044]さらなる例では、チャネル16は、ソースデバイス12によって生成された、符号化されたビデオデータを記憶するファイルサーバまたは別の中間ストレージデバイスを含み得る。この例では、宛先デバイス14は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間ストレージデバイスに記憶された、符号化されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、符号化されたビデオデータを宛先デバイス14に送信することが可能な、あるタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、およびローカルディスクドライブを含む。図1の例では、チャネル16は追加のデバイス21を含む。いくつかの例では、追加のデバイス21は、CDNデバイス、MANE、または別のタイプのデバイスである。
[0045]宛先デバイス14は、インターネット接続のような標準的なデータ接続を通じて、符号化されたビデオデータにアクセスし得る。例示的なタイプのデータ接続は、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、デジタル加入者線(DSL)、ケーブルモデムなど)、またはその両方の組合せを含み得る。ファイルサーバからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであってよい。
[0046]本開示の技法は、ワイヤレス適用例または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または他の用途のような、種々のマルチメディア用途をサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム10は、単方向または双方向のビデオ送信をサポートして、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話のような用途をサポートするために構成され得る。
[0047]図1は一例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを通じてストリーミングされることなどが行われる。ビデオ符号化デバイスはデータを符号化してメモリに記憶することができ、かつ/または、ビデオ復号デバイスはメモリからデータを取り出し復号することができる。多くの例では、符号化および復号は、互いに通信しないが、メモリにデータを符号化し、かつ/またはメモリからデータを取り出して復号するだけであるデバイスによって実行される。
[0048]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。いくつかの例では、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ビデオソース18は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオデータを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および/もしくはビデオデータを生成するためのコンピュータグラフィックスシステム、またはビデオデータのそのようなソースの組合せを含み得る。
[0049]ビデオエンコーダ20は、ビデオソース18からのビデオデータを符号化することができる。いくつかの例では、ソースデバイス12は、出力インターフェース22を介して宛先デバイス14に符号化されたビデオデータを直接送信する。他の例では、符号化されたビデオデータはまた、復号および/または再生のための宛先デバイス14による後のアクセスのために記憶媒体またはファイルサーバ上に記憶され得る。
[0050]図1の例では、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの例では、入力インターフェース28は、受信機および/またはモデムを含む。入力インターフェース28は、チャネル16を通じて、符号化されたビデオデータを受信することができる。ディスプレイデバイス32は、宛先デバイス14と一体であってよく、またはその外部にあってよい。一般に、ディスプレイデバイス32は、復号されたビデオデータを表示する。ディスプレイデバイス32は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスのような、種々のディスプレイデバイスを備え得る。
[0051]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェア、またはそれらのいずれかの組合せのような、種々の好適な回路のいずれかとして実装され得る。本技法がソフトウェアで部分的に実装される場合、デバイスは、適切な非一時的コンピュータ可読記憶媒体にソフトウェア用の命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェア中で実行して、本開示の技法を実行することができる。上記(ハードウェア、ソフトウェア、ハードウェアおよびソフトウェアの組合せなどを含む)のいずれも、1つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれることがあり、それらのいずれかがそれぞれのデバイス中の複合エンコーダ/デコーダ(CODEC)の一部として組み込まれることがある。
[0052]本開示は、一般に、ある情報をビデオデコーダ30または追加のデバイス21のような別のデバイスに「シグナリング」するビデオエンコーダ20に言及することがある。「シグナリング」という用語は、一般に、圧縮されたビデオデータを復号するために使用されるシンタックス要素および/または他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムで行われ得る。代替的に、そのような通信は、符号化の時に符号化されたビットストリーム中でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに行われ得るなど、ある時間の期間にわたって行われることがあり、次いで、これらの要素は、この媒体に記憶された後のいずれかの時間に復号デバイスによって取り出されてよい。
[0053]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、そのスケーラブルビデオコーディング(SVC)拡張、マルチビュービデオコーディング(MVC)拡張、およびMVCベースの3DV拡張を含む、ISO/IEC MPEG−4 Visualおよび(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264のようなビデオ圧縮標準に従って動作する。いくつかの事例では、MVCベースの3DVに準拠するいずれかのビットストリームは、MVCプロファイル、たとえばステレオハイプロファイルに準拠するサブビットストリームを常に含む。さらに、H.264/AVCに対する3次元ビデオ(3DV)コーディング拡張、すなわちAVCベースの3DVを生成する取組みが進行中である。他の例では、ビデオエンコーダ20およびビデオデコーダ30は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、およびITU−T H.264、ISO/IEC Visualに従って動作し得る。
[0054]他の例では、ビデオエンコーダ20およびビデオデコーダ30は、ITU−T Video Coding Experts Group(VCEG)とISO/IEC
Motion Picture Experts Group(MPEG)とのビデオコーディング共同研究部会(JCT−VC)によって現在開発中の高効率ビデオコーディング(HEVC)標準に従って動作し得る。「HEVC Working Draft 9」と呼ばれる次のHEVC標準のドラフトは、2013年5月8日現在、http://phenix.int−evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC−K1003−v13.zipから利用可能である、Brossら、「High Efficiency Video Coding (HEVC) text specification draft 9」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT−VC)、第11回会合、上海、中国、2012年10月に記載されている。さらに、HEVC向けのSVC拡張、マルチビュービデオコーディング拡張、および3DV拡張を製作する取組みが進行中である。HEVCの3DV拡張は、HEVCベースの3DVまたは3D−HEVCと呼ばれることがある。
[0055]HEVCおよび他のビデオコーディング標準において、ビデオシーケンスは通常、一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、SL、SCbおよびSCrと示される3つのサンプルアレイを含み得る。SLは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の例では、ピクチャは、単色であってよく、ルーマサンプルのアレイのみを含み得る。
[0056]ビデオエンコーダ20は、ピクチャの符号化された表現を生成するために、コーディングツリーユニット(CTU)のセットを生成し得る。CTUの各々は、ルーマサンプル(luma sample)のコーディングツリーブロック、クロマサンプル(chroma sample)の2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするのに使用されるシンタックス構造であり得る。コーディングツリーブロックは、サンプルのN×Nブロックであり得る。CTUは「ツリーブロック」または「最大コーディングユニット」(LCU:largest coding unit)と呼ばれることもある。HEVCのCTUは、H.264/AVCのような、他の標準のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU:coding unit)を含み得る。スライスは、ラスタスキャン(raster scan)において連続的に順序付けられた整数個のCTUを含み得る。
[0057]ビデオエンコーダ20は、コーディングされたCTUを生成するために、CTUのコーディングツリーブロックに対して再帰的に4分木区分を実行して、コーディングツリーブロックをコーディングブロックに分割することができ、したがって、「コーディングツリーユニット」という名称である。コーディングブロックは、サンプルのN×Nブロックである。CUは、ルーマサンプルアレイ、CbサンプルアレイおよびCrサンプルアレイ、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を有するピクチャのルーマサンプルの1つのコーディングブロックおよびクロマサンプルの2つの対応するコーディングブロックであり得る。ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分することができる。予測ブロックは、同じ予測が適用されるサンプルの方形(すなわち、正方形または非正方形)ブロックであり得る。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロック、ピクチャのクロマサンプルの2つの対応する予測ブロック、予測ブロックサンプルを予測するのに使用されるシンタックス構造であり得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックのために、予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。
[0058]ビデオエンコーダ20は、イントラ予測またはインター予測を使用して、PUの予測ブロックを生成することができる。ビデオエンコーダ20がイントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUと関連付けられたピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。
[0059]ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUと関連付けられたピクチャ以外の1つまたは複数のピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。ビデオエンコーダ20は、一方向の予測または双方向の予測を使用して、PUの予測ブロックを生成することができる。ビデオエンコーダ20が一方向の予測を使用してPUの予測ブロックを生成するとき、PUは、単一の動きベクトルを有し得る。ビデオエンコーダ20が双方向の予測を使用してPUの予測ブロックを生成するとき、PUは、2つの動きベクトルを有し得る。
[0060]ビデオエンコーダ20は、CUの1つまたは複数のPUの予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成した後、CUのルーマ残差ブロックを生成することができる。CUのルーマ残差ブロック中の各サンプルは、CUの予測ルーマブロックのうちの1つの中のルーマサンプルとCUの元のルーマコーディングブロックの中の対応するサンプルとの差分を示す。加えて、ビデオエンコーダ20はCUのCb残差ブロックを生成することができる。CUのCb残差ブロック中の各サンプルは、CUの予測Cbブロックのうちの1つの中のCbサンプルとCUの元のCbコーディングブロックの中の対応するサンプルとの差分を示し得る。ビデオエンコーダ20はCUのCr残差ブロックも生成することができる。CUのCr残差ブロック中の各サンプルは、CUの予測Crブロックのうちの1つの中のCrサンプルとCUの元のCrコーディングブロックの中の対応するサンプルとの差分を示し得る。
[0061]さらに、ビデオエンコーダ20は4分木区分を使用して、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解することができる。変換ブロックは、同じ変換が適用されるサンプルの方形ブロックであってもよい。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、変換ブロックサンプルを変換するのに使用されるシンタックス構造であり得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロックおよびCr変換ブロックと関連付けられ得る。TUと関連付けられたルーマ変換ブロックはCUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックはCUのCb残差ブロックのサブブロックであってもよい。Cr変換ブロックはCUのCr残差ブロックのサブブロックであってもよい。
[0062]ビデオエンコーダ20は、TUのルーマ変換ブロックに1回または複数の変換を適用して、TUのルーマ係数ブロックを生成することができる。係数ブロックは変換係数の2次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ20は、TUのCb変換ブロックに1つまたは複数の変換を適用して、TUのCb係数ブロックを生成することができる。ビデオエンコーダ20は、TUのCr変換ブロックに1つまたは複数の変換を適用して、TUのCr係数ブロックを生成することができる。
[0063]ビデオエンコーダ20は、係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、係数ブロックを量子化することができる。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現する、処理を指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化することができる。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対して、コンテキスト適応型バイナリ算術コーディング(CABAC:Context-Adaptive Binary Arithmetic Coding)を実行することができる。ビデオエンコーダ20は、エントロピー符号化されたシンタックス要素をビットストリームにおいて出力することができる。
[0064]ビデオエンコーダ20は、コーディングされたピクチャおよび関連付けられるデータの表現を形成するビットの列を含む、ビットストリームを出力することができる。ビットストリームは、一連のネットワーク抽象化レイヤ(NAL)ユニットを備え得る。NALユニットは、後に続くデータのタイプの指示と、必要に応じてエミュレーション防止ビットを伴う点在させられた未加工バイトシーケンスペイロード(RBSP:raw byte sequence payload)の形式でそのデータを含むバイトとを含むシンタックス構造であり得る。すなわち、NALユニットの各々は、NALユニットヘッダを含み、RBSPをカプセル化し得る。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって規定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの例では、RBSPはゼロビットを含む。
[0065]異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化し得る。たとえば、第1のタイプのNALユニットはピクチャパラメータセット(PPS)のためのRBSPをカプセル化することができ、第2のタイプのNALユニットはコーディングされたスライスのためのRBSPをカプセル化することができ、第3のタイプのNALユニットはSEIのためのRBSPをカプセル化することができ、その他もあり得る。(パラメータセットおよびSEIメッセージのためのRBSPではなく)ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれ得る。
[0066]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信することができる。加えて、ビデオデコーダ30は、ビットストリームを解析して、ビットストリームからシンタックス要素を復号することができる。ビデオデコーダ30は、ビットストリームから復号されたシンタックス要素に少なくとも一部基づいて、ビデオデータのピクチャを再構成することができる。ビデオデータを再構成するための処理は、一般に、ビデオエンコーダ20によって実行される処理の逆であり得る。たとえば、ビデオデコーダ30は、PUの動きベクトルを使用して、現在のCUのPUの予測ブロックを決定することができる。加えて、ビデオデコーダ30は、現在のCUのTUと関連付けられる変換係数ブロックを逆量子化することができる。ビデオデコーダ30は、変換係数ブロックに対して逆変換を実行して、CUのTUと関連付けられた変換ブロックを再構成することができる。ビデオデコーダ30は、現在のCUのPUの予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに追加することによって、現在のCUのコーディングブロックを再構成することができる。ピクチャの各CUのコーディングブロックを再構成することによって、ビデオデコーダ30はピクチャを再構成することができる。
[0067]マルチビューコーディングでは、異なる視点からの同じシーンの複数のビューがあり得る。「アクセスユニット」という用語は、同じ時間インスタンスに対応するピクチャのセットを指すために使用される。したがって、ビデオデータは、経時的に発生する一連のアクセスユニットとして概念化され得る。「ビュー成分」は、単一のアクセスユニット中のビューのコーディングされた表現であり得る。本開示では、「ビュー」は、同じビュー識別子と関連付けられるビュー成分のシーケンスを指し得る。
[0068]マルチビューコーディングは、ビュー間予測をサポートする。ビュー間予測は、H.264/AVCおよびHEVCにおいて使用されるインター予測と同様であり、同じシンタックス要素を使用し得る。しかしながら、ビデオコーダが現在のビデオユニット(PUのような)に対してビュー間予測を実行するとき、ビデオエンコーダ20は、参照ピクチャとして、その現在のビデオユニットと同じアクセスユニット中にあるが異なるビュー中にあるピクチャを使用し得る。対照的に、従来のインター予測は、参照ピクチャとして異なるアクセスユニット中のピクチャのみを使用する。
[0069]マルチビューコーディングでは、ビデオデコーダ(たとえば、ビデオデコーダ30)が、あるビュー中のピクチャをいずれかの他のビュー中のピクチャを参照することなく復号できる場合、そのビューは「ベースビュー」と呼ばれ得る。非ベースビューの1つの中のピクチャをコーディングするとき、ピクチャが、異なるビュー中にあるがビデオコーダが現在コーディングしているピクチャと同じ時間インスタンス(すなわち、アクセスユニット)内にある場合、ビデオコーダ(ビデオエンコーダ20またはビデオデコーダ30のような)は、参照ピクチャリストにピクチャを追加し得る。他のインター予測参照ピクチャと同様に、ビデオコーダは、参照ピクチャリストのいずれかの位置にビュー間予測参照ピクチャを挿入し得る。
[0070]ビデオコーディング標準は、ビデオのバッファリングのモデルを規定する。H.264/AVCおよびHEVCでは、バッファリングのモデルは、「仮想参照デコーダ」または「HRD」と呼ばれる。HEVC Working Draft 8では、HRDはAnnex Cに記載される。
[0071]HRDは、データが復号のためにどのようにバッファリングされるべきかということと、復号されたデータが出力のためにどのようにバッファリングされるかということとを表す。たとえば、HRDは、コーディングされたピクチャのバッファ(「CPB」)、復号されたピクチャのバッファ(「DPB」)、およびビデオデコーダの動作を表す。CPBは、HRDによって規定される復号順序でアクセスユニットを含む、先入れ先出しのバッファである。DPBは、HRDによって規定される参照、出力の並べ替え、または出力遅延のために、復号されたピクチャを保持するバッファである。CPBおよびDPBの挙動は、数学的に規定され得る。HRDは、タイミング、バッファのサイズ、およびビットレートに対して制約を直接課し得る。さらに、HRDは、様々なビットストリーム特性および統計に対して制約を間接的に課し得る。
[0072]H.264/AVCおよびHEVCでは、ビットストリームの適合およびデコーダの適合は、HRD仕様の一部として規定される。言い換えると、HRDモデルは、ビットストリームが標準に適合するかどうかを決定するための試験と、デコーダが標準に適合するかどうかを決定するための試験とを規定する。HRDがある種のデコーダと命名されるが、ビデオエンコーダは通常HRDを使用してビットストリームの適合を保証し、ビデオデコーダは通常HRDを必要としない。
[0073]H.264/AVCとHEVCの両方が、2つのタイプのビットストリームまたはHRDの適合、すなわち、Type IとType IIとを規定する。Type Iのビットストリームは、ビットストリーム中のすべてのアクセスユニットのための、VCL NALユニットとフィラーデータNALユニットとのみを含むNALユニットストリームである。Type IIのビットストリームは、ビットストリーム中のすべてのアクセスユニットのためのVCL NALユニットおよびフィラーデータNALユニットに加えて、フィラーデータNALユニット以外の追加の非VCL NALユニットと、NALユニットストリームからバイトストリームを形成するすべてのleading_zero_8bits、zero_byte、start_coded_prefix_one_3bytes、およびtrailing_zero_8bitsシンタックス要素との少なくとも1つを含む、NALユニットストリームである。
[0074]ビットストリームがビデオコーディング標準に適合するかどうかを決定するビットストリーム適合試験をデバイスが実行するとき、デバイスはビットストリームの動作点を選択することができる。デバイスは次いで、選択された動作点に適用可能なHRDパラメータのセットを決定することができる。デバイスは、選択された動作点に適用可能なHRDパラメータのセットを使用して、HRDの挙動を構成することができる。より具体的には、デバイスは、HRDパラメータの適用可能なセットを使用して、仮想ストリームスケジューラ(HSS:hypothetical stream scheduler)、CPB、復号処理、DPBなどのような、HRDの特定のコンポーネントの挙動を構成することができる。続いて、HSSは、特定のスケジュールに従って、ビットストリームのコーディングされたビデオデータをHRDのCPBに注入することができる。
[0075]さらに、デバイスは、CPB中のコーディングされたビデオデータを復号する復号処理を呼び出すことができる。復号処理は、復号されたピクチャをDPBに出力することができる。デバイスがHRDを通じてデータを移動するにしたがって、デバイスは、制約の特定のセットが満たされたままであるかどうかを決定することができる。たとえば、デバイスは、HRDが選択された動作点の動作点表現を復号している間、CPBまたはDPBにおいてオーバーフローまたはアンダーフローの条件が発生しているかどうかを決定することができる。デバイスは、このようにして、ビットストリームの各動作点を選択し処理することができる。制約が侵害されることをビットストリームの動作点が引き起こさない場合、そのビットストリームはビデオコーディング標準に適合すると、デバイスは決定することができる。
[0076]H.264/AVCとHEVCの両方が、2つのタイプのデコーダの適合、すなわち、出力タイミングについてのデコーダの適合と出力順序についてのデコーダの適合とを規定する。特定のプロファイル、ティア、およびレベルに対する適合を主張するデコーダは、HEVCのようなビデオコーディング標準のビットストリーム適合要件に適合するすべてのビットストリームの復号に成功することが可能である。本開示では、「プロファイル」はビットストリームシンタックスのサブセットを指し得る。「ティア」および「レベル」は、各プロファイル内で規定され得る。ティアのレベルは、ビットストリーム中のシンタックス要素の値に課された制約の規定されたセットであり得る。これらの制約は、値に関する単純な制限であり得る。代替的に、それらは、値の算術的な組合せ(たとえば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数)に対する制約の形態をとり得る。下位のティアのために規定されたレベルは、上位のティアのために規定されたレベルよりも制約される。
[0077]デバイスがデコーダ適合試験を実行して、試験対象のデコーダ(DUT:decoder under test)がビデオコーディング標準に適合するかどうかを決定するとき、デバイスは、ビデオコーディング標準に適合するビットストリームを、HRDとDUTの両方に提供することができる。HRDは、ビットストリーム適合試験に関して上で説明された方式で、ビットストリームを処理することができる。デバイスは、DUTによって出力される復号されたピクチャがHRDによって出力される復号されたピクチャの順序と一致する場合、DUTがビデオコーディング標準に適合すると決定することができる。その上、デバイスは、DUTが復号されたピクチャを出力するタイミングが、HRDが復号されたピクチャを出力するタイミングと一致する場合、DUTがビデオコーディング標準に適合すると決定することができる。
[0078]ビットストリーム適合試験およびデコーダ適合試験に加えて、デバイスは、他の目的でHRDパラメータを使用することができる。たとえば、当初のCPBの除去遅延が、適切な当初の端末間遅延を設定するようにシステムを導くために使用されてよく、かつDPB出力時間が、ビデオデータビットストリームがRTPを通じてトランスポートされるときのリアルタイムプロトコル(RTP)タイムスタンプを導出するために使用されてよい。
[0079]H.264/AVCおよびHEVC HRDモデルにおいて、復号またはCPB除去は、アクセスユニットベースであり得る。すなわち、HRDは、一度に全体のアクセスユニットを復号し、CPBから全体のアクセスユニットを除去すると想定される。さらに、H.264/AVCおよびHEVC HRDモデルでは、ピクチャの復号は瞬時的であると想定される。ビデオエンコーダ20は、ピクチャタイミングSEIメッセージにおいて、アクセスユニットの復号を開始する復号時間をシグナリングすることができる。実際の適用例では、適合するビデオデコーダが、アクセスユニットの復号を開始するためのシグナリングされた復号時間に厳密に従う場合、特定の復号されたピクチャを出力する最早の可能な時間は、その特定のピクチャの復号時間にその特定のピクチャを復号するために必要とされる時間を加えたものに等しい。しかしながら、現実の世界では、ピクチャを復号するのに必要とされる時間は、0に等しくはできない。
[0080]HRDパラメータは、HRDの様々な態様を制御することができる。言い換えると、HRDは、HRDパラメータに依存し得る。HRDパラメータは、当初のCPBの除去遅延と、CPBサイズと、ビットレートと、当初のDPBの出力遅延と、DPBサイズとを含み得る。ビデオエンコーダ20は、ビデオパラメータセット(VPS)および/またはシーケンスパラメータセット(SPS)において規定されるhrd_parameters()シンタックス構造で、これらのHRDパラメータをシグナリングすることができる。個々のVPSおよび/またはSPSは、HRDパラメータの異なるセットに対して複数のhrd_parameters()シンタックスを含み得る。いくつかの例では、ビデオエンコーダ20は、バッファリング期間SEIメッセージまたはピクチャタイミングSEIメッセージにおいて、HRDパラメータをシグナリングすることができる。
[0081]上で説明されたように、ビットストリームの動作点は、レイヤ識別子のセット(すなわち、nuh_reserved_zero_6bitsの値のセット)および時間識別子と関連付けられる。動作点表現は、その動作点と関連付けられる各NALユニットを含み得る。動作点表現は、元のビットストリームと異なるフレームレートおよび/またはビットレートを有し得る。これは、動作点表現が元のビットストリームのデータのいくつかのピクチャおよび/または一部を含まないことがあるからである。したがって、元のビットストリームを処理するときにビデオデコーダ30が特定のレートでCPBおよび/またはDPBからデータを除去することになっていた場合、および、動作点表現を処理するときにビデオデコーダ30が同じレートでCPBおよび/またはDPBからデータを除去することになっていた場合、ビデオデコーダ30は、CPBおよび/またはDPBから、あまりにも大量の、または少量のデータを除去することがある。したがって、ビデオエンコーダ20は、異なる動作点のためにHRDパラメータの異なるセットをシグナリングすることができる。たとえば、ビデオエンコーダ20は、VPSに、異なる動作点のためのHRDパラメータを含む複数のhrd_parameters()シンタックス構造を含み得る。
[0082]HEVC Working Draft 8では、HRDパラメータのセットは任意選択で、すべてのサブレイヤに共通の情報のセットを含む。言い換えると、HRDパラメータのセットは、いずれかの時間的なサブレイヤを含む動作点に適用可能な、共通のシンタックス要素のセットを含み得る。時間的なサブレイヤは、特定の値のTemporalIdを有するVCL NALユニット、および関連付けられる非VCL NALユニットからなる、時間的なスケーラブルなビットストリームの時間的なスケーラブルレイヤである。共通の情報のセットに加えて、HRDパラメータのセットは、個々の時間的なサブレイヤに固有のシンタックス要素のセットを含み得る。たとえば、hrd_parameters()シンタックス構造は任意選択で、すべてのサブレイヤに共通である情報のセットを含み、かつサブレイヤ固有の情報を常に含み得る。共通の情報のセットはHRDパラメータの複数のセットに共通なので、HRDパラメータの複数のセット中の共通の情報のセットをシグナリングすることは不要であり得る。むしろ、HEVC Working Draft 8において、共通の情報は、HRDパラメータのセットがVPS中のHRDパラメータの最初のセットであるときに、HRDパラメータのセットの中に存在してよく、または、共通の情報は、HRDパラメータのセットが最初の動作点のインデックスと関連付けられるときに、HRDパラメータのセットの中に存在してよい。たとえば、HEVC Working Draft 8は、hrd_parameters()シンタックス構造がVPS中の最初のhrd_parameters()シンタックス構造であるとき、またはhrd_parameters()シンタックス構造が最初の動作点と関連付けられるときのいずれかに、共通の情報の存在をサポートする。
[0083]以下の表1は、hrd_parameters()のための例示的なシンタックス構造である。
[0084]上の表1および本開示の他のシンタックス表の例では、型記述子ue(v)をもつシンタックス要素は、左ビットが先頭の0次指数ゴロム(Exp−Golomb)コーディングを使用して符号化される可変長の符号のない整数であり得る。表1および以下の表の例では、形式u(n)の記述子を有するシンタックス要素は、長さnの符号のない値であり、ただし、nは非負の整数である。
[0085]表1の例示的なシンタックスでは、「if(commonInfPresentFlag){...}」ブロック中のシンタックス要素が、HRDパラメータセットの共通の情報である。言い換えると、HRDパラメータのセットの共通の情報は、シンタックス要素timing_info_present_flagと、num_units_in_tickと、time_scaleと、nal_hrd_parameters_present_flagと、vcl_hrd_parameters_present_flagと、sub_pic_cpb_params_present_flagと、tick_divisor_minus2と、du_cpb_removal_delay_length_minus1と、bit_rate_scaleと、cpb_size_scaleと、initial_cpb_removal_delay_length_minus1と、cpb_removal_delay_length_minus1と、dpb_output_delay_length_minus1とを含み得る。
[0086]さらに、表1の例では、シンタックス要素fixed_pic_rate_flag[i]、pic_duration_in_tc_minus1[i]、low_delay_hrd_flag[i]、およびcpb_cnt_minus1[i]は、サブレイヤ固有のHRDパラメータのセットであり得る。言い換えると、hrd_parameters()シンタックス構造のこれらのシンタックス要素は、特定のサブレイヤを含む動作点にのみ適用可能であり得る。したがって、hrd_parameters()シンタックス構造のHRDパラメータは、任意選択で含まれる共通の情報に加えて、ビットストリームの特定のサブレイヤに固有のサブレイヤ固有HRDパラメータのセットを含み得る。
[0087]fixed_pic_rate_flag[i]シンタックス要素は、HighestTidがiに等しいとき、出力順序においていずれかの2つの連続するピクチャのHRD出力時間の間の時間的な差が特定の方法で制約されることを示し得る。HighestTidは、(たとえば、動作点の)最高の時間的なサブレイヤを特定する変数であり得る。pic_duration_in_tc_minus1[i]シンタックス要素は、HighestTidがiに等しいときの、コーディングされたビデオシーケンス中の出力順序においていずれかの連続するピクチャのHRD出力時間の間の、クロックティック単位での時間的な差を規定し得る。low_delay_hrd_flag[i]シンタックス要素は、HighestTidがiに等しいとき、HEVC Working Draft 8のAnnex Cに規定されるように、HRD動作モードを規定することができる。cpb_cnt_minus1[i]シンタックス要素は、HighestTidがiに等しいときの、コーディングされたビデオシーケンスのビットストリーム中の代替的なCPB仕様の数を規定することができる。
[0088]ビデオエンコーダ20は、SEIメッセージを使用して、ピクチャのサンプル値の正確な復号に必要とされないメタデータをビットストリームに含めることができる。しかしながら、ビデオデコーダ30または他のデバイスが、様々な他の目的で、SEIメッセージに含まれるメタデータを使用し得る。たとえば、ビデオデコーダ30は、ピクチャ出力のタイミング、ピクチャの表示、喪失の検出、およびエラーの隠匿のために、SEIメッセージ中のメタデータを使用し得る。
[0089]ビデオエンコーダ20は、アクセスユニットに1つまたは複数のSEI NALユニットを含め得る。言い換えると、いずれかの数のSEI NALユニットが、アクセスユニットと関連付けられ得る。さらに、各SEI NALユニットが、1つまたは複数のSEIメッセージを含み得る。HEVC標準は、様々なタイプのSEIメッセージのためのシンタックスとセマンティクスとを記述する。しかしながら、SEIメッセージは規範的な復号処理に影響を与えないので、HEVC標準はSEIメッセージの処理を記述しない。HEVC標準においてSEIメッセージがある1つの理由は、補助データがHEVCを使用して異なるシステムにおいて同様に解釈されることを可能にするためである。HEVCを使用する標準およびシステムは、ビデオエンコーダがあるSEIメッセージを生成することを要求することがあり、または、特定のタイプの受信されたSEIメッセージの特定の処理を定義することがある。以下の表2は、HEVCで規定されるSEIメッセージを一覧にし、それらの目的を簡単に説明する。
[0090]HRDパラメータのシグナリング、およびHRDパラメータおよび他のパラメータの選択のための既存の技法には、いくつかの問題または欠点がある。たとえば、HEVC Working Draft 8では、VPS中のHRDパラメータのセットのみが、HRD動作のために選択される。すなわち、HRDパラメータはSPSの中で提供され得るが、SPS中のHRDパラメータのセットは、HRD動作のためにHEVCビデオデコーダによって選択されない。ビデオデコーダは常に、ビットストリームのVPSを解析し復号する。したがって、ビデオデコーダは常に、VPSのHRDパラメータのセットを解析し復号する。
[0091]これは、ビットストリームがベースレイヤ以外のNALユニットを含むかどうかに関係なく、当てはまる。たとえば、VPS中でコーディングされるhrd_parameters()シンタックス構造のみがHRD動作のために選択されることがあり、存在する可能性のある、SPS中のhrd_parameters()シンタックス構造は決して選択されないことがある。このことは、0よりも大きいnuh_reserved_zero_6bitsを含まないビットストリームを復号するときでも(すなわち、ビットストリームがHEVCのマルチビュー拡張、3DV拡張、またはSVC拡張におけるベースレイヤのみを含む)、VPSの解析と処理とを必要とし得る。
[0092]したがって、ビットストリームがベースレイヤ以外のNALユニットを含む場合、SPS中のHRDパラメータのセットを解析して扱うのは、計算リソースの無駄であり得る。さらに、HRDパラメータのセットがVPSの中に存在する場合、SPS中のHRDパラメータのセットは、無駄なビットであり得る。たとえば、hrd_parameters()シンタックス構造がSPS中に存在する場合、シンタックス構造のためのコーディングされたビットは、純粋にビットの無駄であり得る。
[0093]本開示の1つまたは複数の技法によれば、ビデオエンコーダ20は、ピクチャのシーケンスに適用可能なSPSを含むビットストリームを生成することができる。SPSは、HRDパラメータのセットを含む。HRDパラメータのセットは、ターゲットレイヤ識別子のセットと一致するレイヤ識別子のセットを有する、ビットストリームの各動作点に適用可能である。したがって、SPS中のHRDパラメータのセットは無駄にされず、むしろHRD動作のために使用され得る。たとえば、SPSにおいてコーディングされるhrd_parameters()シンタックス構造がそれに対して明確に規定され得る動作点、たとえば、nuh_reserved_zero_6bitsの1つの値のみ(すなわち、マルチビュー拡張、3DV拡張、またはスケーラブルビデオコーディング拡張におけるレイヤID)がビットストリーム中に存在する動作点となるように。
[0094]たとえば、ビデオエンコーダ20またはビデオデコーダ30のようなデバイスは、ビデオパラメータセット中のHRDパラメータのセットおよびSPS中のHRDパラメータのセットの中から、特定の動作点に適用可能なHRDパラメータのセットを選択することができる。この例では、デバイスは、特定の動作点に適用可能なHRDパラメータのセットに少なくとも一部基づいて、その特定の動作点と関連付けられるビットストリームのサブセットがビデオコーディング標準に適合するかどうかを試験する、ビットストリーム適合試験を実行することができる。ビットストリーム適合試験は、HEVCのようなビデオコーディング標準に動作点表現が適合することを確かめることができる。
[0095]本開示では、動作点は、OpLayerIdSetとして示されるnuh_reserved_zero_6bits値のセット、およびOpTidとして示されるTemporalId値によって特定され得る。入力としてOpTidおよびOpLayerIdSetを伴って、HEVC Working Draft 8の10.1項で規定されるようなサブビットストリーム抽出処理の出力として導出される、関連付けられるビットストリームのサブセットは、独立に復号可能である。HEVC Working Draft 8の10.1項は、ビットストリームからサブビットストリーム(すなわち、動作点表現)を抽出するための動作を記述する。具体的には、HEVC Working Draft 8の10.1項は、サブビットストリームが、tIdTargetよりも大きい時間識別子(たとえば、TemporalID)またはtargetDecLayerIdSetの中の値にはないレイヤ識別子(たとえば、nuh_reserved_zero_6bits)を有するすべてのNALユニットをビットストリームから除去することによって、導出されることを規定する。tIdTargetおよびtargetDecLayerIdSetは、ビットストリーム抽出処理のパラメータである。
[0096]HRDパラメータをシグナリングするための既存の技法の別の例示的な問題または欠点として、デバイスエンコーダ、デバイスデコーダ、または別のタイプのデバイスのようなデバイスは、動作点のための動作点表現に対してビットストリーム適合試験を実行することがある。上で言及されたように、ターゲットレイヤ識別子のセットおよび時間識別子は、動作点を特定するために使用され得る。ターゲットレイヤ識別子のセットは、「TargetDecLayerIdSet」と示され得る。時間識別子は、「TargetDecHighestTid」と示され得る。問題なことに、HEVC Working Draft 8は、ビットストリーム適合試験を実行するときに、どのようにTargetDecLayerIdSetまたはTargetDecHighestTidが設定されるかを規定しない。たとえば、復号処理がビットストリーム適合試験のために呼び出されるとき、シンタックス要素のセマンティクスがTargetDecLayerIdSetの値として明確に規定されず、TargetDecHighestTidが適切に設定されない。
[0097]本開示の1つまたは複数の技法は、ビットストリーム適合試験を実行するときに、どのようにTargetDecLayerIdSetおよびTargetDecHighestTidが設定されるかを示す。たとえば、ビットストリーム(または動作点表現)がビットストリーム適合試験において復号される場合にTargetDecLayerIdSetがHEVC標準のC.1項で規定されるように設定されるように、ビットストリーム(または動作点表現)のための一般的な復号処理が修正される。同様に、ビットストリーム(または動作点表現)がビットストリーム適合試験において復号される場合にTargetDecHighestTidがHEVC Working Draft 8のC.1項において規定されるように設定されるように、ビットストリーム(または動作点表現)のための一般的な復号処理が修正され得る。言い換えると、デバイスは、ビットストリームのサブセット中に存在する各レイヤ識別子を含む特定の動作点のターゲットレイヤ識別子セットを決定することができ、特定の動作点のレイヤ識別子セットは、ビットストリーム中に存在するレイヤ識別子のサブセットである。加えて、デバイスは、ビットストリームのサブセット中に存在する最大の時間識別子に等しい特定の動作点のターゲット時間識別子を決定することができ、特定の動作点のターゲット時間識別子は、ビットストリーム中に存在する最大の時間識別子以下である。
[0098]HEVC Working Draft 8のC.1項では、TargetDecLayerIdSetがtargetOpLayerIdSetに設定される。targetOpLayerIdSetは、試験対象の動作点の動作点表現の中に存在する、nuh_reserved_zero_6bitsの値のセットを含む。targetOpLayerIdSetは、試験対象のビットストリーム中に存在するnuh_reserved_zero_6bitsの値のサブセットである。
[0099]さらに、変数TargetDecHighestTidは、復号されるべき最高の時間的なサブレイヤを特定する。時間的なサブレイヤは、特定の値のTemporalIdを有するVCL NALユニット、および関連付けられる非VCL NALユニットからなる、時間的なスケーラブルなビットストリームの時間的なスケーラブルレイヤである。HEVC標準の項C.1において、TargetDecHighestTidはtargetOpTidに設定される。targetOpTidは、試験対象の動作点の動作点表現の中に存在する最大のtemporal_idに等しく、試験対象のビットストリーム中に存在する最大のtemporal_id以下である。したがって、復号処理がビットストリーム適合試験のために呼び出されるとき、TargetDecLayerIdSetおよびTargetDecHighestTidの値は、特定のビットストリーム適合試験のための試験対象の動作点に対応するサブビットストリーム中に存在する、nuh_reserved_zero_6bits値のセットおよび最大のTemporalId値に設定される。
[0100]このようにして、デバイス(ビデオエンコーダ20、ビデオデコーダ30、追加のデバイス21、または別のデバイスのような)は、本開示の1つまたは複数の技法に従って、ビットストリーム適合試験を実行することの一部として復号処理を実行することができる。復号処理を実行することは、ビットストリーム抽出処理を実行して、レイヤ識別子のターゲットセットおよびターゲットの最高の時間識別子によって定義される動作点の動作点表現を、ビットストリームから抽出することを備え得る。レイヤ識別子のターゲットセット(すなわち、TargetDecLayerIdSet)は、動作点表現の中に存在するレイヤ識別子のシンタックス要素(たとえば、nuh_reserved_zero_6bitsシンタックス要素)の値を含む。レイヤ識別子のターゲットセットは、ビットストリームのレイヤ識別子シンタックス要素の値のサブセットである。ターゲットの最高の時間識別子(すなわち、TargetDecHighestTid)は、動作点表現の中に存在する最大の時間識別子に等しい。ターゲットの最高の時間識別子は、ビットストリーム中に存在する最大の時間識別子以下である。復号処理を実行することはまた、動作点表現のNALユニットを復号することを備える。
[0101]復号処理は、ビットストリーム適合試験を実行することの一部として常に実行されるとは限らない。むしろ、復号処理は、ビットストリームを復号するための一般的な処理であり得る。復号処理がビットストリーム適合試験の一部として実行されないとき、外部ソースが、動作点のためのTargetDecLayerIdSetとTargetDecHighestTidとを規定することができる。外部ソースは、ビットストリームの外部の情報のいずれかのソースであり得る。たとえば、CDNデバイスは、特定のビデオデコーダの構成に基づいて、TargetDecLayerIdSetとTargetDecHighestTidとをプログラム的に決定し規定することができる。復号処理を実行するデバイスは、外部的に規定されたTargetDecLayerIdSetとTargetDecHighestTidとを使用して、ビットストリームから動作点表現を抽出することができる。復号処理を実行するデバイスは次いで、抽出された動作点表現のNALユニットを復号することができる。
[0102]したがって、復号処理がビットストリーム適合試験の一部として実行されないとき、復号処理を実行するデバイスは、外部ソースから、レイヤ識別子のターゲットセットとターゲットの最高の時間識別子とを受け取ることができる。レイヤ識別子のターゲットセットは、動作点表現の中に存在するレイヤ識別子のシンタックス要素の値を含む。ターゲットの最高の時間識別子は、第2の動作点表現の中に存在する最大の時間識別子に等しい。さらに、復号処理を実行するデバイスは、ビットストリーム抽出処理を実行して、ビットストリームから動作点表現を抽出することができる。復号処理を実行するデバイスは次いで、動作点表現のNALユニットを復号することができる。
[0103]他の例では、外部ソースは、TargetDecLayerIdSetまたはTargetDecHighestTidを規定しない。そのような例では、復号処理は、ビットストリーム全体に対して実行され得る。たとえば、デバイスは、ビットストリーム抽出処理を実行して、ビットストリームから動作点表現を抽出することができる。この例では、0が、動作点表現の中に存在するレイヤ識別子のシンタックス要素(すなわち、nuh_reserved_zero_6bits)の唯一の値である。さらに、この例では、ビットストリームの中に存在する最大の時間識別子は、動作点表現の中に存在する最大の時間識別子に等しい。この例では、復号処理を実行するデバイスは、動作点表現のNALユニットを復号することができる。
[0104]上で示されたように、SPSは、sps_max_dec_pic_buffering[i]として示されるシンタックス要素のアレイを含むことがあり、iは、0からビットストリーム中の時間的なレイヤの最大の数にまでわたる。sps_max_dec_pic_buffering[i]は、最高の時間識別子(HighestTid)がiに等しいときの、DPBの最大の要求されるサイズを示す。sps_max_dec_pic_buffering[i]は、ピクチャ記憶バッファの単位で要求されるサイズを示す。さらに、SPSは、sps_max_num_reorder_pics[i]によって示されるシンタックス要素のアレイを含むことがあり、iは、0からビットストリーム中の時間的なレイヤの最大の数にまでわたる。sps_max_num_reorder_pics[i]は、最高の時間識別子(HighestTid)がiに等しいときの、復号順序においていずれかのピクチャに先行し出力順序においてそのピクチャに後続するピクチャの、許容される最大の数を示す。加えて、HRDパラメータのセットは、cpb_cnt_minus1[i]と示されるシンタックス要素のアレイを含んでよく、iは、0からビットストリーム中の時間的なレイヤの最大の数にまでわたる。cpb_cnt_minus1[i]は、最高の時間識別子(HighestTid)がiに等しいときの、コーディングされたビデオシーケンスのビットストリーム中の代替的なCPB仕様の数を規定する。
[0105]HEVC Working Draft 8は最高の時間的な識別子(HighestTid)によって意味されるものを規定しないので、HEVC Working Draft 8、sps_max_dec_pic_buffering[i]、sps_max_num_reorder_pics[i]、およびcpb_cnt_minus1[i]は、HRD動作、ビットストリーム適合動作、およびレベル制約において適切に選択されない。言い換えると、HRD動作、ビットストリーム適合要件、およびレベル制約における、パラメータsps_max_num_reorder_pics[i]、sps_max_dec_pic_buffering[i]、およびcpb_cnt_minus1[i]は、適切に選択されない。
[0106]本開示の1つまたは複数の技法によれば、sps_max_dec_pic_buffering[i]は、TargetDecHighestTidがiに等しいときのDPBの最大の要求されるサイズをsps_max_dec_pic_buffering[i]が示すように、定義される。TargetDecHighestTidは、上で説明された方式で決定される。これは、HighestTidが定義されないHEVC
Working Draft 8とは対照的な状態であり得る。sps_max_dec_pic_buffering[i]の値は、両端を含めて、0からMaxDpbSize(HEVC Working Draft 8のA.4項で規定されるような)の範囲にあるものとする。iが0より大きいとき、sps_max_dec_pic_buffering[i]は、sps_max_dec_pic_buffering[i−1]以上であるものとする。sps_max_dec_pic_buffering[i]の値は、iの各値に対して、vps_max_dec_pic_buffering[i]以下であるものとする。
[0107]同様に、本開示の1つまたは複数の技法によれば、sps_max_num_reorder_pics[i]は、TargetDecHighestTidがiに等しいときの、復号順序においていずれかのピクチャに先行し出力順序においてそのピクチャに後続するピクチャの許容される最大の数をsps_max_num_reorder_pics[i]が示すように、定義される。TargetDecHighestTidは、上で説明された方式で決定される。sps_max_num_reorder_pics[i]の値は、両端を含めて、0からsps_max_dec_pic_buffering[i]の範囲にあるものとする。iが0より大きいとき、sps_max_num_reorder_pics[i]は、sps_max_num_reorder_pics[i−1]よりも大きいとする。sps_max_num_reorder_pics[i]の値は、iの各値に対して、vps_max_num_reorder_pics[i]以下であるものとする。
[0108]さらに、本開示の1つまたは複数の技法によれば、cpb_cnt_minus1[i]は、TargetDecHighestTidがiに等しいときの、コーディングされたビデオシーケンスのビットストリーム中の代替的なCPB仕様の数を規定することができ、iは、0からビットストリーム中の時間的なレイヤの最大の数にまでわたる。TargetDecHighestTidは、上で説明された方式で決定される。cpb_cnt_minus1[i]の値は、両端を含めて、0から31の範囲にある。low_delay_hrd_flag[i]が1に等しいとき、cpb_cnt_minus1[i]は0に等しい。cpb_cnt_minus1[i]が存在しないとき、cpb_cnt_minus1[i]は0に等しいと推測される。
[0109]したがって、本開示の1つまたは複数の技法によれば、デバイスは、最高の時間識別子に基づいて、シンタックス要素の例の中から特定のシンタックス要素を決定することができる。最高の時間識別子は、最高の時間識別子が復号されるべき最高の時間的なレイヤを常に特定するように、定義される。したがって、HRD動作、ビットストリーム適合要件、およびレベル制約におけるsps_max_num_reorder_pics[i]、sps_max_dec_pic_buffering[i]、およびcpb_cnt_minus1[i]は、TargetDecHighestTidの明確に規定された値に等しいiについて一貫して選択される。
[0110]このようにして、デバイス(そのようなビデオエンコーダ20、ビデオデコーダ30、追加のデバイス21、または別のデバイス)は、HRD動作を実行して、ビデオコーディング標準に対するビットストリームの適合を決定し、または、ビデオコーディング標準に対するビデオデコーダの適合を決定することができる。HRD動作を実行することの一部として、デバイスは、ビットストリームの選択された動作点と関連付けられるビットストリームのサブセットの最高の時間識別子を決定することができる。加えて、デバイスは、最高の時間識別子に基づいて、シンタックス要素のアレイ(たとえば、sps_max_num_reorder_pics[i]、sps_max_dec_pic_buffering[i]、またはcpb_cnt_minus1[i])の中から、特定のシンタックス要素を決定することができる。さらに、デバイスは、HRD動作において特定のシンタックス要素を使用することができる。
[0111]さらに、HEVC Working Draft 8では、VPSにおけるhrd_parameters()シンタックス構造の各々が、どのhrd_parameters()シンタックス構造がHRD動作における使用のために選択されるかに基づいて、operation_point_layer_ids()シンタックス構造と関連付けられ得る。各々の選択されたhrd_parameters()シンタックス構造に対応して、バッファリング期間SEIメッセージおよびピクチャタイミングSEIメッセージのセットも、HRD動作において必要とされ得る。しかしながら、関連付けられるoperation_point_layer_ids()シンタックス構造がnuh_reserved_zero_6bitsの複数の値(すなわち、HEVCのマルチビュー拡張、3DV拡張、またはスケーラブルビデオコーディング拡張における複数のレイヤID)を含むhrd_parameters()シンタックス構造に、バッファリング期間SEIメッセージまたはピクチャタイミングSEIメッセージを関連付ける方法はない。
[0112]この問題に対する解決法は、H.264/AVCのAnnex Hまたは同様のものにおいて規定されるような、マルチビューコーディングのスケーラブルネスティングSEIメッセージを適用することであり得る。しかしながら、マルチビューコーディングのスケーラブルネスティングSEIメッセージまたは同様のSEIメッセージは、次の欠点を有し得る。第1に、H.264/AVCにおけるSEI NALユニットは1バイトのNALユニットヘッダのみを有するので、バッファリング期間SEIメッセージまたはピクチャタイミングSEIメッセージの動作点との関連付けのために、HEVC SEI
NALユニットのNALユニットヘッダの中のnuh_reserved_zero_6bitsおよびtemporal_id_plus1で搬送される情報を使用する方法がないことがある。第2に、各々のネストされたSEIメッセージは、1つの動作点のみと関連付けられることが可能である。
[0113]本開示の1つまたは複数の技法は、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、またはサブピクチャタイミングSEIメッセージで搬送され得るapplicable_operation_points()シンタックス構造を通じて、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、またはサブピクチャタイミングSEIメッセージが適用される動作点を明確に規定するための機構を提供することができる。この機構は、SEI NALユニットのNALユニットヘッダ中のシンタックス要素nuh_reserved_zero_6bitsおよびtemporal_id_plus1で搬送される情報を使用する可能にでき、複数の動作点によって、同じバッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージまたはサブピクチャタイミングSEIメッセージで運ばれる情報の共有を可能にできる。
[0114]図2は、本開示の技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。図2は、説明のために提供されるものであり、本開示で広く例示され説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、HEVCコーディングの文脈でビデオエンコーダ20を説明する。しかしながら、本開示の技法は、他のコーディング標準または方法に適用可能であり得る。
[0115]図2の例では、ビデオエンコーダ20は、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、再構成ユニット112と、フィルタユニット114と、復号されたピクチャのバッファ116と、エントロピー符号化ユニット118とを含む。予測処理ユニット100は、インター予測処理ユニット120とイントラ予測処理ユニット126とを含む。インター予測処理ユニット120は、動き推定ユニット122と動き補償ユニット124とを含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能コンポーネントを含み得る。
[0116]ビデオエンコーダ20はビデオデータを受信することができる。ビデオエンコーダ20はビデオデータのピクチャのスライス中の各CTUを符号化することができる。CTUの各々は、等しいサイズのルーマコーディングツリーブロック(CTB:coding tree block)およびピクチャの対応するCTBと関連付けられ得る。CTUの符号化の一部として、予測処理ユニット100は、4分木区分を実行して、CTUのCTBを徐々により小さくなるブロックに分割することができる。より小さいブロックは、CUのコーディングブロックであり得る。たとえば、予測処理ユニット100は、CTUと関連付けられるCTBを4つの等しいサイズのサブブロックに区分することができ、サブブロックの1つまたは複数を4つの等しいサイズのサブサブブロックに区分することができ、以下同様である。
[0117]ビデオエンコーダ20は、CTUのCUを符号化して、CUの符号化された表現(すなわち、コーディングされたCU)を生成することができる。CUを符号化することの一部として、予測処理ユニット100は、CUの1つまたは複数のPUの中で、CUと関連付けられるコーディングブロックを区分することができる。したがって、各PUは、ルーマ予測ブロックおよび対応するクロマ予測ブロックと関連付けられ得る。ビデオエンコーダ20およびビデオデコーダ30は、様々なサイズを有するPUをサポートすることができる。CUのサイズは、CUのルーマコーディングブロックのサイズを指すことがあり、かつPUのサイズは、PUのルーマ予測ブロックのサイズを指すことがある。特定のCUのサイズを2N×2Nと仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、イントラ予測のために2N×2NまたはN×NのPUサイズをサポートすることができ、インター予測のために2N×2N、2N×N、N×2N、N×N、または同様の対称的なPUサイズをサポートすることができる。ビデオエンコーダ20およびビデオデコーダ30はまた、インター予測のために、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズのための非対称的な区分をサポートすることができる。
[0118]インター予測処理ユニット120は、CUの各PUに対してインター予測を実行することによって、PUの予測データを生成することができる。PUの予測データは、PUの予測ブロックとPUの動き情報とを含み得る。インター予測ユニット120は、PUがIスライス中にあるか、Pスライス中にあるか、またはBスライス中にあるかに応じて、CUのPUに対して異なる動作を実行することができる。Iスライス中では、すべてのPUがイントラ予測される。したがって、PUがIスライス中にある場合、インター予測処理ユニット120は、PUに対してインター予測を実行しない。したがって、Iモードで符号化されたブロックに対して、予測ブロックは、同じフレーム内の前に符号化された隣接ブロックからの空間的予測を使用して形成される。
[0119]PUがPスライス中にある場合、動き推定ユニット122は、PUの参照領域のための参照ピクチャのリスト(たとえば、「RefPicList0」)中の参照ピクチャを探索し得る。PUの参照領域は、PUの予測ブロックに最も密接に対応するサンプルブロックを含む参照ピクチャ内の領域であり得る。動き推定ユニット122は、PUの参照領域を含む参照ピクチャのRefPicList0中の位置を示す参照インデックスを生成し得る。加えて、動き推定ユニット122は、PUの予測ブロックと参照領域と関連付けられる参照位置の間の、空間的な変位を示す動きベクトルを生成し得る。たとえば、動きベクトルは現在のピクチャ中の座標から参照ピクチャ中の座標までのオフセットを提供する、2次元ベクトルであり得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット124は、PUの動きベクトルによって示される参照位置における実際のサンプルまたは補間されたサンプルに基づいて、PUの予測ブロックを生成し得る。
[0120]PUがBスライス中にある場合、動き推定ユニット122は、PUに対して単方向予測または双方向予測を実行することができる。PUについて単方向予測を実行するために、動き推定ユニット122は、PUの参照領域について、RefPicList0の参照ピクチャまたは第2の参照ピクチャリスト(「RefPicList2」)を探索し得る。動き推定ユニット122は、参照領域を含む参照ピクチャのRefPicList0またはRefPicList1中の位置を示す参照インデックスと、PUのサンプルブロックと参照領域と関連付けられる参照位置との間の空間的な変位を示す動きベクトルと、参照ピクチャがRefPicList0の中にあるか、またはRefPicList1の中にあるかを示す1つまたは複数の予測方向インジケータとを、PUの動き情報として出力することができる。動き補償ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプルまたは補間されたサンプルに少なくとも一部基づいて、PUの予測ブロックを生成し得る。
[0121]動き推定ユニット122は、PUについて双方向インター予測を実行するために、PUの参照領域についてRefPicList0の中の参照ピクチャを探索することができ、PUの別の参照領域についてRefPicList1の中の参照ピクチャを探索することもできる。動き推定ユニット122は、参照領域を含む参照ピクチャのRefPicList0およびRefPicList1の中の位置を示す、参照インデックスを生成し得る。加えて、動き推定ユニット122は、参照領域と関連付けられる参照位置とPUのサンプルブロックとの間の空間的な変位を示す動きベクトルを生成することができる。PUの動き情報は、PUの参照インデックスと、動きベクトルとを含み得る。動き補償ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプルまたは補間されたサンプルに少なくとも一部基づいて、PUの予測ブロックを生成し得る。
[0122]イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PUの予測データを生成することができる。PUの予測データは、PUの予測ブロックと様々なシンタックス要素とを含み得る。イントラ予測処理ユニット126は、Iスライス、Pスライス、およびBスライスの中のPUに対してイントラ予測を実行することができる。
[0123]PUに対してイントラ予測を実行するために、イントラ予測処理ユニット126は、複数のイントラ予測モードを使用して、PUの予測データの複数のセットを生成することができる。イントラ予測モードを使用してPUの予測データのセットを生成するために、イントラ予測処理ユニット126は、そのイントラ予測モードと関連付けられた方向へと、PUのサンプルブロック全体にわたって、隣接するPUのサンプルブロックからサンプルを延ばすことができる。隣接するPUは、PU、CU、およびCTUについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、または左にあり得る。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、たとえば33個の方向のイントラ予測モードを使用することができる。いくつかの例では、イントラ予測モードの数は、PUと関連付けられた領域のサイズに依存し得る。
[0124]予測処理ユニット100は、PUのためにインター予測処理ユニット120によって生成された予測データ、またはPUのためにイントラ予測処理ユニット126によって生成された予測データの中から、CUのPUの予測データを選択することができる。いくつかの例では、予測処理ユニット100は、予測データのセットのレート/ひずみ測定基準に基づいて、CUのPUの予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれ得る。
[0125]残差生成ユニット102は、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロックならびにCUのPUの選択された予測ルーマブロック、予測Cbブロック、および予測Crブロックに基づいて、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを生成することができる。たとえば、残差生成ユニット102は、残差ブロック中の各サンプルが、CUのコーディングブロック中のサンプルとCUのPUの対応する選択された予測ブロック中の対応するサンプルとの間の差に等しい値を有するように、CUの残差ブロックを生成することができる。
[0126]変換処理ユニット104は、4分木区分を実行して、CUと関連付けられた残差ブロックをCUのTUと関連付けられた変換ブロックに区分することができる。したがって、TUは、ルーマ変換ブロックおよび2つのクロマ変換ブロックと関連付けられ得る。CUのTUのルーマ変換ブロックおよびクロマ変換ブロックのサイズおよび位置は、CUのPUの予測ブロックのサイズおよび位置に基づくこともまたは基づかないこともある。「残差4分木」(RQT)として知られる4分木構造は、領域の各々と関連付けられたノードを含み得る。CUのTUは、RQTのリーフノードに対応し得る。
[0127]変換処理ユニット104は、TUの変換ブロックに1つまたは複数の変換を適用することによって、CUの各TUのための変換係数ブロックを生成することができる。変換処理ユニット104は、TUと関連付けられた変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット104は、離散コサイン変換(DCT)、方向変換、または概念的に同様の変換を変換ブロックに適用し得る。いくつかの例において、変換処理ユニット104は変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われ得る。
[0128]量子化ユニット106は、係数ブロック中の変換係数を量子化し得る。量子化処理は、変換係数の一部またはすべてと関連付けられたビット深度を低減し得る。たとえば、量子化の間にnビットの変換係数がmビット変換係数へと切り捨てられてよく、この場合、nはmよりも大きい。量子化ユニット106は、CUと関連付けられた量子化パラメータ(QP)値に基づいてCUのTUと関連付けられた係数ブロックを量子化することができる。ビデオエンコーダ20は、CUと関連付けられたQPの値を調整することによって、CUと関連付けられた係数ブロックに適用される量子化の程度を調整することができる。量子化は情報の損失をもたらすことがあり、したがって、量子化された変換係数は、元の係数よりも低い精度を有することがある。
[0129]逆量子化ユニット108および逆変換処理ユニット110は、それぞれ、係数ブロックに逆量子化および逆変換を適用して、係数ブロックから残差ブロックを再構成し得る。再構成ユニット112は、再構成された残差ブロックを、予測処理ユニット100によって生成された1つまたは複数の予測ブロックからの対応するサンプルに追加して、TUと関連付けられた再構成された変換ブロックを生成し得る。このようにCUの各TUのための変換ブロックを再構成することによって、ビデオエンコーダ20は、CUのコーディングブロックを再構成し得る。
[0130]フィルタユニット114は、1つまたは複数のデブロッキング動作を実行して、CUと関連付けられたコーディングブロック中のブロッキングアーティファクトを低減することができる。復号されたピクチャのバッファ116は、フィルタユニット114が、再構成されたコーディングブロックに対して1回または複数のデブロッキング動作を実行した後、再構成されたコーディングブロックを記憶し得る。インター予測ユニット120は、再構成されたコーディングブロックを含む参照ピクチャを使用して、他のピクチャのPUに対してインター予測を実行し得る。加えて、イントラ予測処理ユニット126は、復号されたピクチャのバッファ116の中の再構成されたコーディングブロックを使用して、CUと同じピクチャの中の他のPUに対してイントラ予測を実行することができる。
[0131]エントロピー符号化ユニット118は、ビデオエンコーダ20の他の機能コンポーネントからデータを受け取ることができる。たとえば、エントロピー符号化ユニット118は、量子化ユニット106から係数ブロックを受け取ることができ、予測処理ユニット100からシンタックス要素を受け取ることができる。エントロピー符号化ユニット118は、このデータに対して1つまたは複数のエントロピー符号化動作を実行して、エントロピー符号化されたデータを生成することができる。たとえば、エントロピー符号化ユニット118は、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)動作、CABAC動作、可変−可変(V2V:variable-to-variable)長コーディング動作、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)動作、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作をデータに対して実行し得る。ビデオエンコーダ20は、エントロピー符号化ユニット118によって生成されたエントロピー符号化されたデータを含むビットストリームを出力することができる。たとえば、ビットストリームはCUのRQTを表すデータを含み得る。
[0132]本開示の他の箇所で示されるように、ビデオエンコーダ20はビットストリームでVPSをシグナリングすることができる。HEVC Working Draft 8では、VPSの特定のシンタックス要素(すなわち、vps_max_dec_pic_buffering[i]、vps_max_num_reorder_pics[i]、およびvps_max_latency_increase[i])は値HighestTidに関して定義され、HighestTidは定義されない。本開示の1つまたは複数の技法によれば、VPSのこれらのシンタックス要素は、値TargetDecHighestTidに関して定義されてよく、TargetDecHighestTidは、本開示の他の箇所で説明されるTargetDecHighestTid、ように定義される。以下の表3は、本開示の1つまたは複数の技法による、VPSのシンタックスを示す。
[0133]表3の斜字の部分および、本開示全体の他のシンタックス表またはセマンティクスの説明は、HEVC Working Draft 8との差を示し得る。本開示の1つまたは複数の技法によれば、VPSの以下のシンタックス要素のセマンティクスは、次のように変更され得る。VPSの他のシンタックス要素のセマンティクスは、HEVC Working Draft 8 の場合と同じままであり得る。
vps_max_dec_pic_buffering[i]は、TargetDecHighestTidがiに等しいときの、ピクチャ記憶バッファの単位での、復号されたピクチャのバッファの要求されるサイズを規定する。vps_max_dec_pic_buffering[i]の値は、両端を含めて、0からMaxDpbSize(A.4項で規定されるような)の範囲にあるものとする。iが0より大きいとき、vps_max_dec_pic_buffering[i]は、vps_max_dec_pic_buffering[i−1]以上であるものとする。
vps_max_num_reorder_pics[i]は、TargetDecHighestTidがiに等しいときの、復号順序においていずれかのピクチャに先行し出力順序においてそのピクチャに後続するピクチャの最大の許容される数を示す。vps_max_num_reorder_pics[i]の値は、両端を含めて、0からvps_max_dec_pic_buffering[i]の範囲にあるものとする。iが0より大きいとき、vps_max_num_reorder_pics[i]は、vps_max_num_reorder_pics[i−1]以上であるものとする。
0に等しくないvps_max_latency_increase[i]は、MaxLatencyPictures[i]をvps_max_num_reorder_pics[i]+vps_max_latency_increase[i]に設定することによって規定されるような、MaxLatencyPictures[i]の値を計算するために使用される。vps_max_latency_increase[i]が0に等しくないとき、MaxLatencyPictures[i]の値は、TargetDecHighestTidがiに等しいときの、出力順序でコーディングされたビデオシーケンス中のいずれかのピクチャに先行し復号順序においてそのピクチャの後に続き得るピクチャの最大の数を規定する。vps_max_latency_increase[i]が0に等しいとき、対応する制限は表現されない。vps_max_latency_increase[i]の値は、両端を含めて、0から232−2の範囲にあるものとする。
[0134]上で示されたように、vps_max_dec_pic_buffering[i]、vps_max_num_reorder_pics[i]、およびvps_max_latency_increase[i]のセマンティクスは、TargetDecHighestTidに関して定義され得る。対照的に、HEVC Working Draft 8は、vps_max_dec_pic_buffering[i]と、vps_max_num_reorder_pics[i]と、vps_max_latency_increase[i]とをHighestTidに関して定義し、HighestTidは定義されない。
[0135]表3の例示的なシンタックスにおいて示されるように、VPSは、operation_point_layer_ids()シンタックス構造とhrd_parameters()シンタックス構造のペアを含む。hrd_parameters()シンタックス構造は、HRDパラメータのセットを規定するシンタックス要素を含む。operation_point_layer_ids()シンタックス構造は、動作点のセットを特定するシンタックス要素を含む。hrd_parameters()シンタックス構造において規定されるHRDパラメータのセットは、対応するoperation_point_layer_ids()シンタックス構造におけるシンタックス要素によって特定される動作点に適用可能であり得る。以下の表4は、operation_point_layer_ids()シンタックス構造についての例示的なシンタックスを提供する。
[0136]HEVC Working Draft 8のセクション7.4.4は、op_pointシンタックス構造のセマンティクスを記述する。本開示の1つまたは複数の技法によれば、HEVC Working Draft 8のセクション7.4.4は、表4のoperation_point_layer_ids()シンタックス構造のためのセマンティクスを提供するように次のように変更され得る。
operation_point_layer_ids(opIdx)シンタックス構造は、ビデオパラメータセット中のopIdx番目のhrd_parameters()シンタックス構造が適用される動作点のOpLayerIdSetに含まれるnuh_reserved_zero_6bits値のセットを規定する。
op_num_layer_id_values_minus1[opIdx]+1は、ビデオパラメータセット中のopIdx番目のhrd_parameters()シンタックス構造が適用される動作点のOpLayerIdSetに含まれるnuh_reserved_zero_6bits値の数を規定する。op_num_layer_id_values_minus1[opIdx]は、63以下であるものとする。この仕様に適合するビットストリームでは、op_num_layer_id_values_minus1[opIdx]は0に等しいものとする。この仕様のこのバージョンでは、op_num_layer_id_values_minus1[opIdx]の値は0に等しいことが必要とされるが、デコーダは、op_num_layer_id_values_minus1[opIdx]シンタックスにおいて他の値が現れることを許容するものとする。
op_layer_id[opIdx][i]は、ビデオパラメータセット中のopIdx番目のhrd_parameters()シンタックス構造が適用される動作点のOpLayerIdSetに含まれるnuh_reserved_zero_6bitsの値のi番目の値を規定する。iがjに等しくなく、iとjの両方が両端を含めて0からop_num_layer_id_values_minus1の範囲にあるとき、op_layer_id[opIdx][i]のいずれの値も、op_layer_id[opIdx][j]に等しくないものとする。op_layer_id[0][0]は0に等しいと推測される。
[0137]上で示されたように、op_num_layer_id_values_minus1[opIdx]シンタックス要素+1は、ビデオパラメータセット中のopIdx番目のhrd_parameters()シンタックス構造が適用される動作点のOpLayerIdSetに含まれるnuh_reserved_zero_6bits値の数を規定する。対照的に、HEVC Working Draft 8は、op_num_layer_id_values_minus1[opIdx]シンタックス要素+1がopIdxによって特定される動作点に含まれるnuh_reserved_zero_6bits値の数を規定すると、規定する。同様に、表4の例では、op_layer_id[opIdx][i]シンタックス要素は、ビデオパラメータセット中のopIdx番目のhrd_parameters()シンタックス構造が適用される動作点のOpLayerIdSetに含まれるnuh_reserved_zero_6bitsの値のi番目の値を規定する。対照的に、HEVC Working Draft 8は、op_layer_id[opIdx][i]シンタックス要素はopIdxによって特定される動作点に含まれるnuh_reserved_zero_6bitsのi番目の値を規定すると、規定する。
[0138]HEVC Working Draft 8のセクション7.4.2.2は、SPSのセマンティクス(semantics)を記述する。本開示の1つまたは複数の技法によれば、HEVC Working Draft 8のセクション7.4.2.2に対して以下の変更が行われ得る。SPSの他のシンタックス要素のセマンティクスは、HEVC Working Draft 8 の場合と同じであり得る。
sps_max_dec_pic_buffering[i]は、TargetDecHighestTidがiに等しいときの、ピクチャ記憶バッファの単位での、復号されたピクチャのバッファの最大の要求されるサイズを規定する。sps_max_dec_pic_buffering[i]の値は、両端を含めて、0からMaxDpbSize(A.4項で規定されるような)の範囲にあるものとする。iが0より大きいとき、sps_max_dec_pic_buffering[i]は、sps_max_dec_pic_buffering[i−1]以上であるものとする。sps_max_dec_pic_buffering[i]の値は、iの各値に対して、vps_max_dec_pic_buffering[i]以下であるものとする。
sps_max_num_reorder_pics[i]は、TargetDecHighestTidがiに等しいときの、復号順序においていずれかのピクチャに先行し出力順序においてそのピクチャに後続するピクチャの最大の許容される数を示す。sps_max_num_reorder_pics[i]の値は、両端を含めて、0からsps_max_dec_pic_buffering[i]の範囲にあるものとする。iが0より大きいとき、sps_max_num_reorder_pics[i]は、sps_max_num_reorder_pics[i−1]以上であるものとする。sps_max_num_reorder_pics[i]の値は、iの各値に対して、vps_max_num_reorder_pics[i]以下であるものとする。
0に等しくないsps_max_latency_increase[i]は、MaxLatencyPictures[i]をsps_max_num_reorder_pics[i]+sps_max_latency_increase[i]に等しく設定することによって規定されるような、MaxLatencyPictures[i]の値を計算するために使用される。sps_max_latency_increase[i]が0に等しくないとき、MaxLatencyPictures[i]の値は、TargetDecHighestTidがiに等しいときの、出力順序においてコーディングされたビデオシーケンス中のいずれかのピクチャに先行し復号順序においてそのピクチャの後に続き得るピクチャの最大の数を規定する。sps_max_latency_increase[i]が0に等しいとき、対応する制限は表現されない。sps_max_latency_increase[i]の値は、両端を含めて、0から232−2の範囲にあるものとする。sps_max_latency_increase[i]の値は、iの各値に対して、vps_max_latency_increase[i]以下であるものとする。
[0139]上で示されたように、sps_max_dec_pic_buffering[i]、sps_max_num_reorder_pics[i]、およびsps_max_latency_increase[i]のセマンティクスは、TargetDecHighestTidに関して定義される。TargetDecHighestTidは、本開示の他の箇所で説明されたように決定される。対照的に、HEVC Working Draft 8は、sps_max_dec_pic_buffering[i]、sps_max_num_reorder_pics[i]、およびsps_max_latency_increase[i]のセマンティクスをHighestTidに関して定義し、HighestTidは定義されない。
[0140]HEVC Working Draft 8のセクション7.4.5.1は、一般的なスライスヘッダのセマンティクスを記述する。本開示の1つまたは複数の技法によれば、HEVC Working Draft 8のセクション7.4.5.1に対して以下の変更が行われ得る。HEVC Working Draft 8のセクション7.4.5.1の他の部分は同じままであり得る。
no_output_of_prior_pics_flagは、IDRピクチャまたはBLAピクチャの復号の後で復号されたピクチャのバッファ中の以前に復号されたピクチャがどのように扱われるかを規定する。Annex Cを参照されたい。現在のピクチャがCRAピクチャであるとき、または、現在のピクチャがビットストリーム中の最初のピクチャであるIDRピクチャまたはBLAピクチャであるとき、no_output_of_prior_pics_flagの値は復号処理に影響を与えない。現在のピクチャがビットストリーム中のピクチャではないIDRピクチャまたはBLAピクチャであり、アクティブシーケンスパラメータセットから導出されたpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[TargetDecHighestTid]の値が、先行するピクチャに対してアクティブであるシーケンスパラメータセットから導出されたpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[TargetDecHighestTid]の値とは異なるとき、1に等しいno_output_of_prior_pics_flagは、no_output_of_prior_pics_flagの実際の値にかかわらず、デコーダによって推測され得る(しかし推測されるべきではない)。
[0141]上で示されたように、no_output_of_prior_pics_flagのセマンティクスは、sps_max_dec_pic_buffering[TargetDecHighestTid]に関して定義される。TargetDecHighestTidは、本開示の他の箇所で説明されたように決定される。対照的に、HEVC Working Draft 8は、no_output_of_prior_pics_flagのセマンティクスをsps_max_dec_pic_buffering[HighestTid]に関して定義し、HighestTidは定義されない。
[0142]HEVC Working Draft 8のセクション8.1は、一般的な復号処理を記述する。本開示の1つまたは複数の技法によれば、HEVC Working
Draft 8の一般的な復号処理は、次のように変更され得る。
この処理の入力はビットストリームであり、出力は復号されたピクチャのリストである。
復号されるべきVCL NALユニットのnuh_reserved_zero_6bitsの値のセットを規定する、セットTargetDecLayerIdSetが、次のように規定される。
−この仕様で規定されない何らかの外部手段がTargetDecLayerIdSetを設定するために利用可能である場合、TargetDecLayerIdSetは外部手段によって設定される。
−そうではなく、復号処理がC.1項で規定されるようにビットストリーム適合試験において呼び出される場合、TargetDecLayerIdSetはC.1項で規定されるように設定される。
−それ以外の場合、TargetDecLayerIdSetは、nuh_reserved_zero_6bitsの1つの値のみを含み、その値は0に等しい。
復号されるべき最高の時間的なサブレイヤを特定する変数TargetDecHighestTidは、次のように規定される。
−この仕様で規定されない何らかの外部手段がTargetDecHighestTidを設定するために利用可能である場合、TargetDecHighestTidは外部手段によって設定される。
−そうではなく、復号処理がC.1項で規定されるようにビットストリーム適合試験において呼び出される場合、TargetDecHighestTidはC.1項で規定されるように設定される。
−それ以外の場合、TargetDecHighestTidは、sps_max_sub_layers_minus1に設定される。
入力としてTargetDecHighestTidとTargetDecLayerIdSetとを用いて、10.1項で規定されるようなサブビットストリーム抽出処理が適用され、出力がBitstreamToDecodeと呼ばれるビットストリームに割り当てられる。
次のことが、BitstreamToDecode中の各々のコーディングされたピクチャ(現在のピクチャと呼ばれ、これは変数CurrPicによって示される)に当てはまる。
chroma_format_idcの値に応じて、現在のピクチャのサンプルアレイの数は次の通りである。
−chroma_format_idcが0に等しい場合、現在のピクチャは1つのサンプルアレイSLからなる。
−それ以外の場合(chroma_format_idcが0に等しくない)、現在のピクチャは3つのサンプルアレイSL、SCb、SCrからなる。
現在のピクチャのための復号処理は、7項からのシンタックス要素と大文字の変数とを入力として用いる。各NALユニット中の各シンタックス要素のセマンティクスを解釈するとき、および「ビットストリーム」またはその一部(たとえば、コーディングされたビデオシーケンス)が関与するとき、ビットストリームまたはその一部は、BitstreamToDecodeまたはその一部を意味する。
すべてのデコーダが数値的に同一の結果を生むことになるように、復号処理が規定される。本明細書で説明される処理に対して同一の結果を生むいずれかの復号処理は、この仕様の復号処理の要件に適合する。
現在のピクチャがCRAピクチャであるとき、次のことが当てはまる。
−この仕様で規定されない何らかの外部手段が変数HandleCraAsBlaFlagを設定するために利用可能である場合、HandleCraAsBlaFlagは外部手段によって提供される値に設定される。
−それ以外の場合、HandleCraAsBlaFlagの値は0に設定される。
現在のピクチャがCRAピクチャでありHandleCraAsBlaFlagが1に等しいとき、次のことが、各々のコーディングされたスライスNALユニットに対する解析と復号の処理の間に当てはまる。
−nal_unit_typeの値はBLA_W_LPに設定される。
−no_output_of_prior_pics_flagの値は1に設定される。
注記1−設定が現在のピクチャおよび復号順序で後続のピクチャの復号に影響を与えないとき、たとえば、必要とされるときに利用可能なピクチャ記憶バッファが常にあるとき、デコーダの実装形態は、no_output_of_prior_pics_flagの値を0に設定することを選び得る。
この節で言及される各ピクチャは、完全なコーディングされたピクチャである。
separate_colour_plane_flagの値に応じて、復号処理は次のように構築される。
−separate_colour_plane_flagが0に等しい場合、出力されている現在のピクチャについて復号処理が1回呼び出される。
−それ以外の場合(separate_colour_plane_flagが1に等しい)、復号処理は3回呼び出される。復号処理への入力は、同一の値のcolour_plane_idを有するコーディングされたピクチャのすべてのNALユニットである。特定の値のcolour_plane_idを有するNALユニットの復号処理は、その特定の値のcolour_plane_idを有する単色のカラーフォーマットを伴うコーディングされたビデオシーケンスのみがビットストリーム中に存在するかのように、規定される。3つの復号処理の各々の出力は、現在のピクチャの3つのサンプルアレイに割り当てられ、0に等しいcolour_plane_idを有するNALユニットはSLに割り当てられ、1に等しいcolour_plane_idを有するNALユニットはSCbに割り当てられ、2に等しいcolour_plane_idを有するNALユニットはSCrに割り当てられる。
注記1−変数ChromaArrayTypeは、separate_colour_plane_flagが1に等しくchroma_format_idcが3に等しいとき、0として導出される。復号処理において、この変数の値が評価されて、0に等しいchroma_format_idcを有する単色ピクチャの動作と同一の動作をもたらす。
復号処理は、現在のピクチャCurrPicについて次のように動作する。
1.NALユニットの復号は8.2項で規定される。
2.8.3項の処理はスライスレイヤおよびその上のレイヤのシンタックス要素を使用して復号処理を規定する。
−ピクチャ順序カウントに関する変数および関数が、8.3.1項において導出される(この導出は、ピクチャの最初のスライスのみに対して呼び出される必要がある)。
−8.3.2項における参照ピクチャセットのための復号処理が呼び出され、参照ピクチャは、「参照のために使用されない」または「長期参照のために使用される」として標識され得る(この復号処理は、ピクチャの最初のスライスのみに対して呼び出される必要がある)。
−現在のピクチャがBLAピクチャであるとき、またはビットストリーム中の最初のピクチャであるCRAピクチャであるとき、8.3.3項で規定される利用不可能な参照ピクチャを生成するための復号処理が呼び出される(この復号処理はピクチャの最初のスライスのみに対して呼び出される必要がある)。
−PicOutputFlagは次のように設定される。
−現在のピクチャがTFDピクチャであり、復号順序において前のRAPピクチャが、BLAピクチャ、またはビットストリーム中の最初のコーディングされたピクチャであるCRAピクチャである場合、PicOutputFlagは0に等しく設定される。
−それ以外の場合、PicOutputFlagはpic_output_flagに等しく設定される。
−各々のPスライスまたはBスライスのための復号処理の開始時に、8.3.4項で規定される参照ピクチャリスト構築のための復号処理が、参照ピクチャリスト0(RefPicList0)の導出のために、またBスライスを復号するときは参照ピクチャリスト1(RefPicList1)の導出のために呼び出される。
−現在のピクチャのすべてのスライスが復号された後で、復号されたピクチャは「短期参照のために使用される」と標識される。
3.8.4項、8.5項.8.6項、および8.7項の処理は、コーディングツリーユニットレイヤおよびその上のレイヤにおけるシンタックス要素を使用して復号処理を規定する。
[0143]本開示の他の箇所で示されるように、HEVC Working Draft 8において、復号処理がビットストリーム適合試験のために呼び出されるとき、シンタックス要素のセマンティクスがTargetDecLayerIdSetの値として明確に規定されず、TargetDecHighestTidが適切に設定されない。一般的な復号処理に対する上で示される修正は、この問題を改善し得る。上で示されたように、一般的な復号処理がビットストリーム適合試験のために呼び出されるとき、TargetDecLayerIdSetおよびTargetDecHighestTidの値は、C.1項で規定されるように設定される。下で説明されるように、C.1項の修正されたバージョンは、試験対象の動作点に対応するサブビットストリーム中に存在するnuh_reserved_zero_6bits値のセットに、TargetDecLayerIdSetを設定することができる。C.1項の修正されたバージョンは、試験対象の動作点に対応するサブビットストリーム中に存在する最大のTemporalId値に、TargetDecHighestTidを設定することができる。
[0144]このようにして、ビデオデコーダ30のようなデバイスは、ビットストリーム適合試験を実行することの一部として、復号処理を実行することができる。復号処理を実行することは、ビットストリーム抽出処理を実行して、レイヤ識別子のターゲットセットおよびターゲットの最高の時間識別子によって定義される動作点の動作点表現を、ビットストリームから抽出することを備え得る。レイヤ識別子のターゲットセットは、動作点表現の中に存在するレイヤ識別子のシンタックス要素の値を含んでよく、レイヤ識別子のターゲットセットはビットストリームのレイヤ識別子のシンタックス要素の値のサブセットである。ターゲットの最高の時間識別子は、動作点表現の中に存在する最大の時間識別子に等しくてよく、ターゲットの最高の時間識別子はビットストリーム中に存在する最大の時間識別子以下である。さらに、デバイスは、動作点表現のNALユニットを復号することができる。
[0145]上のセクション8.1に対する修正で示されたように、復号処理は、ビットストリーム適合試験の一部として実行されるとは限らない。復号処理がビットストリーム適合試験の一部として実行されないいくつかの例では、デバイスは、ビットストリーム抽出処理を実行して、ビットストリームから動作点の動作点表現を抽出することができる。この場合、0が、動作点表現の中に存在するレイヤ識別子のシンタックス要素(たとえば、nuh_reserved_zero_6bits)の唯一の値であってよく、ビットストリーム中に存在する最大の時間識別子は、動作点の動作点表現の中に存在する最大の時間識別子に等しい。デバイスは、第2の動作点の動作点表現のNALユニットを復号することができる。
[0146]代替的に、デバイスは、レイヤ識別子のターゲットセットとターゲットの最高の時間識別子とを、外部ソースから受信することができる。レイヤ識別子のターゲットセットは、レイヤ識別子のターゲットセットおよびターゲットの最高の時間識別子によって定義される動作点の動作点表現の中に存在する、レイヤ識別子のシンタックス要素の値を含み得る。ターゲットの最高の時間識別子は、動作点の動作点表現の中に存在する最大の時間識別子に等しくてよい。さらに、デバイスは、ビットストリーム抽出処理を実行して、ビットストリームから動作点の動作点表現を抽出することができる。加えて、デバイスは、動作点の動作点表現のNALユニットを復号することができる。
[0147]さらに、本開示の1つまたは複数の技法によれば、HEVC Working Draft 8の10.1項で記述されるサブビットストリーム抽出処理は、次のように変更され得る。
両端を含めて0から6の範囲にあるいずれかの値に等しいtIdTargetを有し、値0のみを含むlayerIdSetTargetを有する、この項で規定される処理の出力に含まれるいずれかのサブビットストリームが、この仕様に適合することが、ビットストリーム適合の要件である。
注記−適合するビットストリームは、nuh_reserved_zero_6bitsが0に等しくTemporalIdが0に等しい、1つまたは複数のコーディングされたスライスのNALユニットを含む。
この処理への入力は、変数tIdTargetおよびセットlayerIdSetTargetである。
この処理の出力はサブビットストリームである。
サブビットストリームは、tIdTargetよりも大きいTemporalId、またはlayerIdSetTarget中の値ではないnuh_reserved_zero_6bitsを有するすべてのNALユニットをビットストリームから除去することによって、導出される。
[0148]HEVC Working Draft 8の10.1項では、上でlayerIdSetTargetが使用される箇所で、変数名targetDecLayerIdSetが使用される。layerIdSetTargetを使用するための、HEVC Working Draftの10.1項に対する上で示された変更は、サブビットストリーム抽出処理で使用されるレイヤ識別子のセットと、本開示の他の箇所で説明されるように特定の定義を有するtargetDecLayerIdSetとの間に差異があり得ることを明らかにする役割を果たし得る。
[0149]さらに、本開示の1つまたは複数の技法によれば、HEVC Working Draft 8のセクションA.4.1の全般的なティアおよびレベルの仕様は、次のように変更され得る。本開示では、「プロファイル」はビットストリームシンタックスのサブセットを指し得る。「ティア」および「レベル」は、各プロファイル内で規定され得る。ティアのレベルは、ビットストリーム中のシンタックス要素の値に課された制約の規定されたセットであり得る。これらの制約は、値に関する単純な制限であり得る。
[0150]代替的に、制約は、値の算術的な組合せ(たとえば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数)に関する制約の形態をとり得る。下位のティアのために規定されたレベルは、上位のティアのために規定されたレベルよりも制約される。本開示の例によれば、HEVC Working Draft 8の「一般的なレベルの仕様」セクション(すなわち、セクションA.4.1)は、「一般的なティアおよびレベルの仕様」へと表題を変えられ、文章は次のように変更される。表A−1はHEVC Working Draft 8と同じままであり得る。
ティアの能力の比較の目的で、0に等しいgeneral_tier_flagを有するティアは、1に等しいgeneral_tier_flagを有するティアよりも下位のティアであると見なされるものとする。
レベルの能力の比較の目的で、特定のティアに対して、より下位のレベルはより低い値のgeneral_level_idcを有する。
次のことが、この付記における制約を表現するために規定される。
−アクセスユニットnを、復号順序でn番目のアクセスユニットとし、最初のアクセスユニットがアクセスユニット0(すなわち、0番目のアクセスユニット)である。
−ピクチャnを、コーディングされたピクチャまたはアクセスユニットnの対応する復号されたピクチャとする。
−変数fRを、1÷300に設定されるようにする。
規定されたレベルにおけるプロファイルに適合するビットストリームは、Annex Cで規定されるような各ビットストリーム適合試験に対する以下の制約に従うものとする。
a)C.2.2項において規定されるようなCPBからのアクセスユニットn(ただしn>0)の名目除去時間が、ピクチャn−1のPicSizeInSamplesYの値に対してtr,n(n)−tr(n−1)がMax(PicSizeInSamplesY÷MaxLumaSR,fR)以上であるという制約を満たし、MaxLumaSRはピクチャn−1に適用される表A−1において規定される値である。
b)C.3.2項で規定されるような、DPBからのピクチャの連続する出力時間の間の差が、ピクチャnのPicSizeInSamplesYの値に対して、Δto,dpb(n)≧Max(PicSizeInSamplesY÷MaxLumaSR,fR)であるという制約を満たし、MaxLumaSRは、ピクチャnが出力されるピクチャであり出力されるビットストリームの最後のピクチャではないという条件のもとで、ピクチャnのために表A−1において規定される値である。
c)PicSizeInSamplesY≦MaxLumaPSであり、MaxLumaPSは表A−1で規定される。
d)pic_width_in_luma_samples≦Sqrt(MaxLumaPS×8)e)pic_height_in_luma_samples≦Sqrt(MaxLumaPS×8)f)sps_max_dec_pic_buffering[TargetDecHighestTid]≦MaxDpbSizeであり、MaxDpbSizeは次の式によって規定される。
ここで、MaxLumaPSは表A−1で規定され、MaxDpbPicBufは6に等しい。
表A−1は、各ティアの各レベルに対する制限を規定する。表A−1のMinCRパラメータ列の使用が、A.4.2項で規定される。
ビットストリームが適合するティアおよびレベルは、次のように、シンタックス要素general_tier_flagおよびgeneral_level_idcによって示されるものとする。
−表A−1におけるティア制約仕様によれば、0に等しいgeneral_tier_flagはMainティアに対する適合を示し、1に等しいgeneral_tier_flagはHighティアに対する適合を示す。general_tier_flagは、レベル4未満のレベルに対しては0に等しいものとする(「−」によって標識された表A−1のエントリーに対応する)。表A−1におけるMaxBRおよびMaxCPB以外のレベルの制限は、MainティアとHighティアの両方に対して共通である。
−general_level_idcは、表A−1で規定されるレベル数の30倍の値に等しく設定されるものとする。
[0151]上の項目(f)で示されたように、規定されたレベルにおけるプロファイルに適合するビットストリームは、sps_max_dec_pic_buffering[TargetDecHighestTid]≦MaxDpbSizeであるという制約に従う。TargetDecHighestTidは、本開示の他の箇所で説明される方式で定義され得る。対照的に、HEVC Working Draft 8は、規定されたレベルにおけるプロファイルに適合するビットストリームがsps_max_dec_pic_buffering[sps_max_temporal_layers_minus1]≦MaxDpbSizeであるという制約に従うことを、項目(f)について示す。本開示の他の箇所で示されるように、パラメータsps_max_dec_pic_buffering[i]は、レベル制約において適切に選択されないことがある。本開示の1つまたは複数の技法によれば、sps_max_dec_pic_buffering[i]のインデックスiとして、sps_max_temporal_layers_minus1をTargetDecHighestTidで置き換えることは、TargetDecHighestTidの明確に規定された値に等しいiについてレベル制約が一貫して選択されることを確実にする。
[0152]このようにして、HRDの復号処理は、シンタックス要素のアレイ(たとえば、sps_max_dec_pic_buffering[])を、SPSから、復号することができ、アレイ中のシンタックス要素の各々は、HRDのDPBの最大の要求されるサイズを示す。さらに、デバイスがHRD動作を実行するとき、デバイスは、ターゲットの最高の時間識別子(たとえば、TargetDecHighestTid)に基づいて、アレイ中の特定のシンタックス要素(たとえば、sps_max_dec_pic_buffering[TargetDecHighestTid])を決定することができる。さらに、デバイスは、特定のシンタックス要素の値が最大のDPBサイズ(たとえば、MaxDpbSize)より大きいとき、ビットストリームがビデオコーディング標準に適合しないと決定することができる。
[0153]さらに、本開示の1つまたは複数の例示的な技法によれば、HEVC Working Draft 8のセクションA.4.2は、次のように変更され得る。HEVC
Working Draft 8のセクションA.4.2は、Mainプロファイルのためのプロファイル固有のレベル制限を記述する。表A−2はHEVC Working
Draft 8と同じままであり得る。
規定されたティアおよびレベルにおけるMainプロファイルに適合するビットストリームは、Annex Cにおいて規定されるようなビットストリーム適合試験に対する以下の制約に従うものとする。
a)ピクチャ中のスライスの数(dependent_slice_flagは0または1のいずれかに等しい)は、MaxSlicesPerPicture以下であり、MaxSlicesPerPictureは表A−1で規定される。
b)VCL HRDパラメータに対して、SchedSelIdxの少なくとも1つの値に対して、BitRate[SchedSelIdx]≦cpbBrVclFactor×MaxBR、かつ、CpbSize[SchedSelIdx]≦cpbBrVclFactor×MaxCPBであり、cpbBrVclFactorは表A−2で規定され、BitRate[SchedSelIdx]およびCpbSize[SchedSelIdx]は次のように与えられる。
−vcl_hrd_parameters_present_flagが1に等しい場合、BitRate[SchedSelIdx]およびCpbSize[SchedSelIdx]は、それぞれ式E−45およびE−46によって、C.1項で規定されるように選択されるシンタックス要素を使用して、与えられる。
−それ以外の場合(vcl_hrd_parameters_present_flagが0に等しい)、BitRate[SchedSelIdx]およびCpbSize[SchedSelIdx]は、VCL HRDパラメータのためにE.2.3項で規定されるように推測される。
MaxBRおよびMaxCPBは、それぞれ、cpbBrVclFactorビット/秒およびcpbBrVclFactorビットの単位で、表A−1において規定される。ビットストリームは、両端を含めて、0からcpb_cnt_minus1[TargetDecHighestTid]の範囲にあるSchedSelIdxの少なくとも1つの値に対して、これらの条件を満たすものとする。
c)NAL HRDパラメータに対して、SchedSelIdxの少なくとも1つの値に対して、BitRate[SchedSelIdx]≦cpbBrNalFactor×MaxBR、かつ、CpbSize[SchedSelIdx]≦cpbBrNalFactor×MaxCPBであり、cpbBrNalFactorは表A−2で規定され、BitRate[SchedSelIdx]およびCpbSize[SchedSelIdx]は次のように与えられる。
−nal_hrd_parameters_present_flagが1に等しい場合、BitRate[SchedSelIdx]およびCpbSize[SchedSelIdx]は、それぞれ式E−45およびE−46によって、C.1項で規定されるように選択されるシンタックス要素を使用して、与えられる。
−それ以外の場合(nal_hrd_parameters_present_flagが0に等しい)、BitRate[SchedSelIdx]およびCpbSize[SchedSelIdx]は、NAL HRDパラメータのためにE.2.3項で規定されるように推測される。
MaxBRおよびMaxCPBは、それぞれ、cpbBrNalFactorビット/秒およびcpbBrNalFactorビットの単位で、表A−1において規定される。ビットストリームは、両端を含めて、0からcpb_cnt_minus1[TargetDecHighestTid]の範囲にあるSchedSelIdxの少なくとも1つの値に対して、これらの条件を満たすものとする。
d)アクセスユニット0に対するNumBytesInNALunit変数の合計は、ピクチャ0のPicSizeInSamplesYの値に対して、1.5×(Max(PicSizeInSamplesY,fR×MaxLumaSR)+MaxLumaSR×(tr(0)−tr,n(0)))÷MinCR以下であり、MaxLumaPRおよびMinCRは、ピクチャ0に適用される表A−1で規定される値である。
e)n>0であるアクセスユニットnに対するNumBytesInNALunit変数の合計は、1.5×MaxLumaSR×(tr(n)−tr(n−1))÷MinCR以下であり、MaxLumaSRおよびMinCRは、ピクチャnに適用される表A−1で規定される値である。
f)レベル5およびそれより高いレベルに対して、変数CtbSizeYは32または64に等しいものとする。
g)NumPocTotalCurrの値は、8以下であるものとする。
h)num_tile_columns_minus1の値はMaxTileColsよりも小さいものとし、num_tile_rows_minus1はMaxTileRowsよりも小さいものとし、MaxTileColsおよびMaxTileRowsは表A−1に規定されるようなものである。
[0154]本開示の他の箇所で示されるように、パラメータcpb_cnt_minus1[i]は、レベル制約において適切に選択されないことがある。HEVC Working Draft 8は、「両端を含めて0からcpb_cnt_minus1の範囲にあるSchedSelIdxの少なくとも1つの値に対してビットストリームがこれらの条件を満たすものとする...」ことを規定する。本開示の1つまたは複数の技法に従って、cpb_cnt_minus1[i]のインデックスiとしてTargetDecHighestTidを規定することは、TargetDecHighestTidの明確に規定された値に等しいiについてレベル制約が一貫して選択されることを確実にする。
[0155]さらに、本開示の1つまたは複数の技法によれば、HEVC Working Draft 8のAnnex Cの一般的なC.1項が修正され得る。HEVC Working Draft 8のC.1項の図C−1および図C−2は、HEVC WD8と同じままであり得る。HEVC Working Draft 8のC.1項の文章は、次のように変更され得る。
この付録は、仮想参照デコーダ(HRD)と、ビットストリームおよびデコーダの適合を確認するためのHRDの使用とを規定する。
2つのタイプのビットストリームが、この仕様のためのHRD適合確認を受ける。Type Iのビットストリームと呼ばれる第1のタイプのビットストリームは、ビットストリーム中のすべてのアクセスユニットのための、VCL NALユニットと、FD_NUTに等しいnal_unit_typeを有するNALユニット(フィラーデータNALユニット)とのみを含むNALユニットストリームである。Type IIビットストリームと呼ばれる第2のタイプのビットストリームは、ビットストリーム中のすべてのアクセスユニットのためのVCL NALユニットおよびフィラーデータNALユニットに加えて、次のうちの少なくとも1つを含む。
−フィラーデータNALユニット以外の追加の非VCL NALユニット、−(Annex Bで規定されるように)NALユニットストリームからバイトストリームを形成する、すべてのleading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、およびtrailing_zero_8bitsシンタックス要素。
図C−1は、HRDによって確認されるビットストリーム適合点のタイプを示す。
HRDのために必要とされる非VCL NALユニットのシンタックス要素(またはシンタックス要素のいくつかのためのそれらのデフォルト値)は、7節のセマンティクスの項、Annex DおよびEで規定される。
2つのタイプのHRDパラメータ(NAL HRDパラメータおよびVCL HRDパラメータ)が使用される。HRDパラメータは、ビデオパラメータセットシンタックス構造を通じて、または、シーケンスパラメータセットシンタックス構造の一部である、E.1項およびE.2項で規定されるようなビデオ使用可能性情報を通じてシグナリングされる。
ビットストリームの適合を確認するために、複数の試験が必要とされ得る。各試験に対して、次のステップが記載された順序で適用される。
1.TargetOpとして示される、試験対象の動作点が選択される。TargetOpは、targetOpLayerIdSetに等しいOpLayerIdSetおよびtargetOpTidに等しいOpTidによって特定される。targetOpLayerIdSetは、TargetOpと関連付けられるビットストリームのサブセットの中に存在するnuh_reserved_zero_6bitsの値のセットを含み、試験対象のビットストリームの中に存在するnuh_reserved_zero_6bitsの値のサブセットであるものとする。targetOpTidは、TargetOpと関連付けられるビットストリームのサブセットの中に存在する最大のTemporalIdに等しく、試験対象のビットストリームの中に存在する最大のTemporalId以下であるものとする。
2.TargetDecLayerIdSetはtargetOpLayerIdSetに設定され、TargetDecHighestTidはtargetOpTidに設定され、BitstreamToDecodeは、入力としてTargetDecHighestTidおよびTargetDecLayerIdSetを伴う、10.1項で規定されるようなサブビットストリーム抽出処理の出力に設定される。
3.TargetOpに適用可能なhrd_parameters()シンタックス構造およびsub_layer_hrd_parameters()シンタックス構造が選択される。TargetDecLayerIdSetが値0のみを含む場合、アクティブシーケンスパラメータセット中のhrd_parameters()シンタックス構造が選択される。それ以外の場合、アクティブシーケンスパラメータセットの中にあり(または外部手段を通じて提供され)、両端を含めて0からop_num_layer_id_values_minus1[opIdx]の範囲にあるiに対してop_layer_id[opIdx][i]によって規定される値のセットがTargetDecLayerIdSetと同一である、hrd_parameters()シンタックス構造が選択される。選択されたhrd_parameters()シンタックス構造の中で、BitstreamToDecodeがType Iのビットストリームである場合、条件「if(vcl_hrd_parameters_present_flag)」に直ちに従うsub_layer_hrd_parameters(TargetDecHighestTid)シンタックス構造が選択され(この場合、変数NalHrdModeFlagは0に等しく設定される)、それ以外の場合(BitstreamToDecodeがType IIのビットストリームである)、条件「if(vcl_hrd_parameters_present_flag)」(この場合、変数NalHrdModeFlagは0に等しく設定される)または条件「if(nal_hrd_parameters_present_flag)」(この場合、変数NalHrdModeFlagは1に等しく設定される)のいずれかに直ちに従うsub_layer_hrd_parameters(TargetDecHighestTid)シンタックス構造が選択され、フィラーデータNALユニットを除くすべての非VCL NALユニットが前者の場合においてBitstreamToDecodeから廃棄され、その結果がBitstreamToDecodeに割り当てられる。
4.TargetOpに適用可能なバッファリング期間SEIメッセージと関連付けられるアクセスユニットが、HRD当初化点として選択され、アクセスユニット0と呼ばれる。
5.タイミング情報を含むSEIメッセージが選択される。applicable_operation_points()シンタックス構造によって示されるような、アクセスユニット0においてコーディングされTargetOpに適用されるバッファリング期間SEIメッセージが選択される。アクセスユニット0から始まるBitstreamToDecode中の各アクセスユニットに対して、applicable_operation_points()シンタックス構造によって示されるような、アクセスユニットと関連付けられTargetOpに適用されるピクチャタイミングSEIメッセージが選択され、SubPicCpbFlagが1に等しく、sub_pic_cpb_params_in_pic_timing_sei_flagが0に等しいとき、applicable_operation_points()シンタックス構造によって示されるような、アクセスユニット中の復号ユニットと関連付けられTargetOpに適用されるサブピクチャタイミングSEIメッセージが選択される。
6.SchedSelIdxの値が選択される。選択されたSchedSelIdxは、両端を含めて0からcpb_cnt_minus1[TargetDecHighestTid]の範囲にあるものとし、cpb_cnt_minus1[TargetDecHighestTid]は、上で選択されたようなsub_layer_hrd_parameters(TargetDecHighestTid)シンタックス構造において見出される。
7.当初のCPBの除去遅延および遅延オフセットが選択され、アクセスユニット0と関連付けられるTFDアクセスユニットがBitstreamToDecodeから廃棄され得る。アクセスユニット0の中のコーディングされたピクチャが、CRA_NUTまたはBLA_W_LPに等しいnal_unit_typeを有し、選択されたバッファリング期間SEIメッセージの中のrap_cpb_params_present_flagが1に等しい場合、NalHrdModeFlagに対応するinitial_cpb_removal_delay[SchedSelIdx]およびinitial_cpb_removal_delay_offset[SchedSelIdx]によって表されるデフォルトの当初のCPBの除去遅延および遅延オフセット(この場合、変数DefaultInitCpbParamsFlagが1に等しく設定される)、またはNalHrdModeFlagに対応するinitial_alt_cpb_removal_delay[SchedSelIdx]およびinitial_alt_cpb_removal_delay_offset[SchedSelIdx]によって表される代替的な当初のCPBの除去遅延および遅延オフセット(この場合、変数DefaultInitCpbParamsFlagが0に等しく設定される)のいずれかが選択され、アクセスユニット0と関連付けられるTFDアクセスユニットは後者の場合BitstreamToDecodeから廃棄され、その結果がBitstreamToDecodeに割り当てられる。それ以外の場合、デフォルトの当初のCPBの除去遅延および遅延オフセットが選択される(この場合、変数DefaultInitCpbParamsFlagが1に等しく設定される)。
実行されるビットストリーム適合試験の数はN1×N2×N3×(N4×2+N5)に等しく、N1、N2、N3、N4、およびN5の値は次のように規定される。
−N1は、試験対象のビットストリームに含まれる動作点の数である。
−BitstreamToDecodeがType Iのビットストリームである場合、N2は1に等しく、それ以外の場合(BitstreamToDecodeがType IIのビットストリームである)、N2は2に等しい。
−N3は、cpb_cnt_minus1[TargetDecHighestTid]+1に等しい。
−N4は、BitstreamToDecodeにおいてTargetOpに適用可能なバッファリング期間SEIメッセージと関連付けられるアクセスユニットの数であり、これらのアクセスユニット中のコーディングされたピクチャは、CRA_NUTまたはBLA_W_LPに等しいnal_unit_typeを有し、TargetOpに適用可能な関連付けられるバッファリング期間SEIメッセージは、1に等しいrap_cpb_params_present_flagを有する。
−N5は、BitstreamToDecodeにおいてTargetOpに適用可能なバッファリング期間SEIメッセージと関連付けられるアクセスユニットの数であり、これらのアクセスユニットの各々の中のコーディングされたピクチャは、CRA_NUTおよびBLA_W_LPの1つに等しくないnal_unit_typeを有し、または、TargetOpに適用可能な関連付けられるバッファリング期間SEIメッセージは、0に等しいrap_cpb_params_present_flagを有する。
BitstreamToDecodeがType IIのビットストリームであるとき、「if(vcl_hrd_parameters_present_flag)」という条件に直ちに従うsub_layer_hrd_parameters(TargetDecHighestTid)シンタックス構造が選択される場合、試験が図C−1に示されるType Iの適合点において行われ、VCLおよびフィラーデータNALユニットのみが、入力ビットレートおよびCPB記憶のためにカウントされ、それ以外の場合(「if(nal_hrd_parameters_present_flag)」という条件に直ちに従うsub_layer_hrd_parameters(TargetDecHighestTid)シンタックス構造が選択される)、試験が図C−1に示されるType IIの適合点において行われ、(Type IIのNALユニットストリームの)すべてのNALユニットまたは(バイトストリーム)のすべてのバイトが、入力ビットレートおよびCPB記憶のためにカウントされる。
注記3−図C−1に示されるType IIの適合点のためにSchedSelIdxの値によって確立されるNAL HRDパラメータは、VBRの場合に(0に等しいcbr_flag[SchedSelIdx])、InitCpbRemovalDelay[SchedSelIdx]、BitRate[SchedSelIdx]、およびCpbSize[SchedSelIdx]の同じ値に対して、図C−1に示されるType Iの適合点に対するVCL HRD適合を確立するのにも十分である。これは、Type
Iの適合点へのデータフローがType IIの適合点へのデータフローのサブセットであることと、VBRの場合に、CPBが空になることと次のピクチャが到達し始めることが予定される時間まで空のままであることとを許容されることが原因である。たとえば、2−9節に規定された復号処理を使用して、Annex Aに規定されるプロファイルの1つまたは複数に適合するコーディングされたビデオシーケンスを復号するとき、A.4.2項の項目c)におけるプロファイル適合のためにNAL HRDパラメータに対して設定される境界の中に入るだけではなく、A.4.2項の項目b)におけるプロファイル適合のためにVCL HRDパラメータに対して設定される境界の中にも入る、NAL HRDパラメータがType IIの適合点に対して提供されるとき、Type Iの適合点に対するVCL HRDの適合も、A.4.2項の項目b)の境界の中に入ることが確実にされる。
VCL NALユニットおよび対応するバッファリング期間SEIメッセージおよびピクチャタイミングSEIメッセージにおいて参照されるすべてのビデオパラメータセット、シーケンスパラメータセット、およびピクチャパラメータセットは、ビットストリーム中で(非VCL NALユニットによって)、またはこの仕様において規定されない他の手段によって、タイムリーな方式でHRDに運ばれるものとする。
Annex C、D、およびEにおいて、非VCL NALユニットの「存在」の規定は、それらのNALユニット(またはそれらの一部のみ)がこの仕様によって規定されない他の手段によってデコーダ(またはHRD)に運ばれるときも、満たされる。ビットをカウントする目的で、ビットストリーム中に実際に存在する適切なビットのみがカウントされる。
注記1−例として、ビットストリーム中に存在するもの以外の手段によって運ばれる非VCL NALユニットの、ビットストリーム中に存在するNALユニットに対する同期は、仮にエンコーダがその非VCL NALユニットをビットストリーム中で運ぶことを決めていればその非VCL NALユニットがビットストリーム中でそれらの点の間に存在していたであろうビットストリーム中の2つの点を示すことによって、達成され得る。
非VCL NALユニットの内容がビットストリーム内に存在するもの以外の何らかの手段によって適用のために運ばれるとき、非VCL NALユニットの内容の表現は、この仕様で規定されるのと同じシンタックスを使用することを要求されない。
注記2−HRD情報がビットストリーム内に含まれるとき、ビットストリームに含まれる情報のみに基づいて、この項の要件に対するビットストリームの適合を確かめることが可能である。すべての「スタンドアロン」のType Iのビットストリームの場合にそうであるように、HRD情報がビットストリーム中に存在しないとき、適合は、HRDデータがこの仕様で規定されない何らかの他の手段によって与えられるときにのみ、確かめられ得る。
HRDは、図C−2に示されるように、コーディングされたピクチャのバッファ(CPB)と、瞬時復号処理と、復号されたピクチャのバッファ(DPB)と、出力のクロッピングとを含む。
各ビットストリーム適合試験に対して、CPBサイズ(ビットの数)は、式E−46によって規定されるようなCpbSize[SchedSelIdx]であり、SchedSelIdxおよびHRDパラメータは、この項において上で規定されたように選択される。DPBサイズ(ピクチャ記憶バッファの数)は、sps_max_dec_pic_buffering[TargetDecHighestTid]である。
変数SubPicCpbPreferredFlagは、外部手段によって規定されるか、または外部手段によって規定されないときは0に設定される。
変数SubPicCpbFlagは次のように導出される。
SubPicCpbFlag=SubPicCpbPreferredFlag&&sub_pic_cpb_params_present_flag(C−1)SubPicCpbFlagが0に等しい場合、CPBは、アクセスユニットレベルで動作し、各復号ユニットはアクセスユニットである。それ以外の場合、CPBは、サブピクチャレベルで動作し、各復号ユニットはアクセスユニットのサブセットである。
HRDは次のように動作する。規定された到着スケジュールに従ってCPBに流れる復号ユニットと関連付けられるデータは、HSSによって配信される。各復号ユニットと関連付けられるデータは、復号ユニットのCPB除去時間に瞬時復号処理によって瞬時に除去され復号される。各々の復号されたピクチャは、DPBの中に配置される。復号されたピクチャは、C.3.1項またはC.5.2項で規定されるように、DPBから除去される。
各ビットストリーム適合試験のためのCPBの動作は、C.2項に規定される。瞬時デコーダ動作は、2−9節に規定される。各ビットストリーム適合試験のためのDPBの動作は、C.3項で規定される。各ビットストリーム適合試験のための出力のクロッピングは、C.3.2項およびC.5.2項で規定される。
列挙された配信スケジュールの数、ならびにそれらの関連付けられるビットレートおよびバッファサイズに関する、HSSおよびHRD情報は、E.1.1項、E.1.2項、E.2.1項、およびE.2.2項で規定される。HRDは、D.1.1項およびD.2.1項で規定されるように、バッファリング期間SEIメッセージによって規定されるように当初化される。CPBからの復号ユニットの除去のタイミングおよびDPBからの復号されたピクチャの出力のタイミングは、D.1.2項およびD.2.1項で規定されるようにピクチャタイミングSEIメッセージにおいて規定される。特定の復号ユニットに関するすべてのタイミング情報が、復号ユニットのCPB除去時間よりも前に到達するものとする。
ビットストリーム適合の要件はC.4項で規定され、C.5項で規定されるようにデコーダの適合を確認するためにHRDが使用される。
注記3−ビットストリームを生成するために使用されるすべてのピクチャのレートおよびクロックがビットストリームでシグナリングされる値と厳密に一致するという仮定のもとで、適合は保証されるが、実際のシステムでは、これらの各々はシグナリングされる値または規定される値から変動し得る。
この付記におけるすべての算術演算は、丸め誤差が広まり得ないように実際の値により行われる。たとえば、復号ユニットの除去の直前のまたはその直後のCPB中のビットの数は必ずしも整数であるとは限らない。
変数t
cは、次のように導出され、クロックティックと呼ばれる。
変数t
c_subは、次のように導出され、サブピクチャクロックティックと呼ばれる。
次のことが、この付記における制約を表現するために規定される。
−アクセスユニットnを、復号順序でn番目のアクセスユニットとし、最初のアクセスユニットがアクセスユニット0(すなわち、0番目のアクセスユニット)である。
−ピクチャnを、アクセスユニットnのコーディングされたピクチャまたは復号されたピクチャとする。
−復号ユニットmを、復号順序でm番目の復号ユニットとし、最初の復号ユニットが復号ユニット0である。
[0156]上のHEVC Working Draft 8のセクションC.1に対する修正は、ビットストリーム適合試験を明確にし得る。上で示されたように、復号処理がHEVC Working Draft 8におけるビットストリーム適合試験のために呼び出されるとき、シンタックス要素のセマンティクスがTargetDecLayerIdSetの値として明確に規定されず、TargetDecHighestTidが適切に設定されない。セクションC.1に対する修正は、TargetDecLayerIdSetおよびTargetDecHighestTidの定義を明確にする。
[0157]HEVC Working Draft 8のセクションC.1に対する上記の修正で示されるように、デバイスは、動作点を選択し、動作点のレイヤ識別子のターゲットセット(TargetDecLayerIdSet)と最高の時間識別子(TargetDecHighestTid)とを決定する、HRD動作(ビットストリーム適合試験のような)を実行することができる。さらに、HRD動作において、デバイスは、動作点に適用可能なHRDパラメータのセットを選択し、HRDパラメータの選択されたセットを使用して、復号処理を実行するHRDを構成することができる。特定の動作点に適用可能なHRDパラメータのセットは、当初のCPBの除去遅延、CPBサイズ、ビットレート、当初のDPBの出力遅延、DPBサイズなどを規定するパラメータを含み得る。HRD動作は、復号処理を実行することを含み得る。
[0158]いくつかの例では、デバイスは、VPS中のHRDパラメータ(たとえば、hrd_parameters()シンタックス構造)の1つまたは複数のセットおよびSPS中のHRDパラメータのセットの中から、動作点に適用可能なHRDパラメータのセットを選択することができる。いくつかの例では、デバイスは、動作点のレイヤ識別子セットがSPSと関連付けられるコーディングされたビデオシーケンス中に存在するすべてのレイヤ識別子のセットを含むとき、SPS中のHRDパラメータのセットが特定の動作点に適用可能であると決定することができる。さらに、いくつかの例では、デバイスは、動作点のターゲットレイヤ識別子セット(たとえば、TargetDecLayerIdSet)が値0のみを含むと決定したことに応答して、SPS中のHRDパラメータのセットを選択することができる。いくつかの例では、デバイスは、レイヤ識別子のセット(たとえば、op_layer_id[][])が動作点のターゲットレイヤ識別子セット(たとえば、TargetDecLayerIdSet)と同一であると決定したことに応答して、VPS中のHRDパラメータのセットを選択することができる。
[0159]さらに、HEVC Working Draft 8のセクションC.1に対する上記の修正および本開示の他の部分で示されるように、デバイスは、HRDのDPBの最大の要求されるサイズを各々示すシンタックス要素のアレイ(sps_max_dec_pic_buffering[])を、SPSから、復号することができる。デバイスは、ターゲットの最高の時間識別子に基づいて、アレイ中の特定のシンタックス要素(すなわち、sps_max_dec_pic_buffering[TargetDecHighestTid])を決定することができる。上で示されたように、DPB中のピクチャ記憶バッファの数は、特定のシンタックス要素によって示される(すなわち、DPBサイズ(ピクチャ記憶バッファの数)はsps_max_dec_pic_buffering[TargetDecHighestTid]である)。
[0160]加えて、復号処理は、HRDパラメータの選択されたセットを含む、HRDパラメータシンタックス構造(hrd_parameters())を復号することができる。HRDパラメータの選択されたセットは、ビットストリーム中の代替的なCPB仕様の数を各々示す、シンタックス要素のアレイ(cbp_cnt_minus1[])を含む。デバイスがHRD動作を実行するとき、デバイスが、ターゲットの最高の時間識別子(TargetDecHighestTid)に基づいて、アレイ中の特定のシンタックス要素(cpb_cnt_minus1[TargetDecHighestTid])を選択でき、0からその特定のシンタックス要素の値までの範囲にあるスケジューラ選択インデックス(SchedSelIdx)を選択できることを、HEVC Working Draft 8のセクションC.1に対する修正は明確にする。デバイスは、スケジューラ選択インデックスに少なくとも一部基づいて、HRDのCPBの当初のCPBの除去遅延を決定することができる。
[0161]HEVC Working Draft 8のセクションC.2.1は、ビットストリームの適合のためのDPBからのピクチャの除去に関する。本開示の1つまたは複数の例示的な技法によれば、HEVC Working Draft 8のセクションC.2.1は、次のように変更され得る。
この項の仕様は、C.1項で規定されるように選択されるDPBパラメータの各セットに独立に適用される。
現在のピクチャの復号の前の(ただし、現在のピクチャの最初のスライスのスライスヘッダを解析した後の)DPBからのピクチャの除去は、(現在のピクチャを含んでいる)アクセスユニットnの最初の復号ユニットのCPB除去時間に瞬時に起こり、次のように進行する。
8.3.2項で規定されるような、参照ピクチャセットのための復号処理が呼び出され得る。
現在のピクチャがIDRピクチャまたはBLAピクチャである場合、次のことが当てはまる。
1.IDRピクチャまたはBLAピクチャが復号される最初のピクチャではなく、アクティブシーケンスパラメータセットから導出されたpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[TargetDecHighestTid]の値が、それぞれ、先行するピクチャについてアクティブであったシーケンスパラメータセットから導出されたpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[TargetDecHighestTid]の値とは異なるとき、no_output_of_prior_pics_flagは、no_output_of_prior_pics_flagの実際の値にかかわらず、HRDによって1に等しいと推測される。
注記−デコーダの実装形態は、pic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering[TargetDecHighestTid]の変更に関して、HRDよりも適切にピクチャまたはDPBサイズの変更を扱おうと試みるものとする。
2.no_output_of_prior_pics_flagが1に等しいとき、または1に等しいと推測されるとき、DPB中のすべてのピクチャ記憶バッファは、それらが含んでいるピクチャの出力を伴わずに空にされ、DPB充満度は0に設定され得る。
以下の条件の両方が真である、DPB中のすべてのピクチャkがDPBから除去される。
−ピクチャkが、「参照のために使用されない」と標識される。
−ピクチャkが、0に等しいPicOutputFlagを有するか、またはそのDPB出力時間が、現在のピクチャnの(復号ユニットmとして示される)最初の復号ユニットのCPB除去時間以下である、すなわち、to,dpb(k)≦tr(m)である。
ピクチャがDPBから除去されると、DPB充満度は1だけデクリメントされ得る。
[0162]本開示の他の箇所で示されるように、パラメータsps_max_dec_pic_buffering[i]は、HRD動作において適切に選択されないことがある。HEVC Working Draft 8は、上で示されたように、sps_max_dec_pic_buffering[TargetDecHighestTid]の代わりにsps_max_dec_pic_buffering[i]を単に示す。HEVC Working Draft 8は、セクションC.2.1においてインデックスiのセマンティクスを示さない。本開示の1つまたは複数の技法によれば、TargetDecHighestTidをsps_max_dec_pic_buffering[i]のインデックスiとして規定することは、DPBからピクチャを除去するHRD動作を実行するときに、TargetDecHighestTidの明確に規定された値に等しいiがsps_max_dec_pic_buffering[i]において使用されることを、確実にし得る。
[0163]HEVC Working Draft 8のセクションC.2.1に対する上記の修正で示されるように、デバイスは、HRDのDPBの最大の要求されるサイズを各々示すシンタックス要素の第1のアレイ(sps_max_dec_pic_buffering[])を、現在のピクチャについてアクティブであるSPSから復号することができる。加えて、デバイスは、HRDのDPBの最大の要求されるサイズを各々示すシンタックス要素の第2のアレイ(sps_max_dec_pic_buffering[])を、現在のピクチャについてアクティブであるSPSから復号することができる。デバイスは、ターゲットの最高の時間識別子(TargetDecHighestTid)に基づいて、第1のアレイ中の第1のシンタックス要素(sps_max_dec_pic_buffering[TargetDecHighestTid])を決定することができる。加えて、デバイスは、ターゲットの最高の時間識別子に基づいて、第2のアレイ中の第2のシンタックス要素(sps_max_dec_pic_buffering[TargetDecHighestTid])を決定することができる。現在のピクチャが瞬時復号リフレッシュ(IDR)ピクチャまたはブロークンリンクアクセス(BLA)ピクチャであり、第1のシンタックス要素の値が第2のシンタックス要素の値と異なるとき、デバイスは、第3のシンタックス要素によって示される値とは関係なく、第3のシンタックス要素の値(no_output_of_prior_pics_flag)を推測することができる。第3のシンタックス要素は、IDRピクチャまたはBLAピクチャの復号の後、DPB中の以前に復号されたピクチャがどのように扱われるかを規定し得る。
[0164]IDRピクチャは、各スライスセグメントがIDR_W_LPまたはIDR_N_LPに等しいnal_unit_typeを有する、ランダムアクセスポイント(RAP)ピクチャであり得る。IDRピクチャは、Iスライスのみを含み、復号順序でビットストリーム中で最初のピクチャであってよく、または、ビットストリーム中でより後に現れてよい。IDR_N_LPに等しいnal_unit_typeを有するIDRピクチャは、ビットストリーム中に存在する、関連付けられる先行ピクチャを有さない。先行ピクチャは、出力順序で関連付けられるRAPピクチャに先行するピクチャである。IDR_W_LPに等しいnal_unit_typeを有するIDRピクチャは、ビットストリーム中に存在する、関連付けられる廃棄するものとタグ付けされた(TFD:tagged-for-discard)ピクチャを有さず、しかし、ビットストリーム中に関連付けられるDLPピクチャを有し得る。
[0165]BLAピクチャは、BLA_W_TFD、BLA_W_DLP、またはBLA_N_LPに等しいnal_unit_typeを各スライスセグメントが有する、RAPピクチャである。BLA_W_TFDに等しいnal_unit_typeを有するBLAピクチャは、ビットストリーム中に存在する、関連付けられるTFDピクチャを有し得る。BLA_N_LPに等しいnal_unit_typeを有するBLAピクチャは、ビットストリーム中に存在する、関連付けられる先行ピクチャを有さない。BLA_W_DLPに等しいnal_unit_typeを有するBLAピクチャは、ビットストリーム中に存在する、関連付けられるTFDピクチャを有さず、しかし、ビットストリーム中に関連付けられるDLPピクチャを有し得る。
[0166]HEVC Working Draft 8のセクションC.3は、ビットストリーム適合動作を記述する。本開示の1つまたは複数の例示的な技法によれば、HEVC
Working Draft 8のセクションC.3は、次のように修正され得る。
この仕様に適合するコーディングされたデータのビットストリームは、この項で規定されるすべての要件を満たすものとする。
ビットストリームは、この付記の範囲外においてこの仕様で規定される、シンタックス、セマンティクス、および制約に従って解釈されるものとする。
ビットストリーム中の最初のコーディングされたピクチャは、RAPピクチャ、すなわち、IDRピクチャ、CRAピクチャ、またはBLAピクチャであるものとする。
復号される各々の現在のピクチャに対して、変数maxPicOrderCntおよびminPicOrderCntを、それぞれ、次のピクチャのPicOrderCntVal値の最大値および最小値に等しく設定させる。
−現在のピクチャ。
−0に等しいTemporalIdを有する、復号順序で前にあるピクチャ。
−現在のピクチャの参照ピクチャセット中の短期参照ピクチャ。
−1に等しいPicOutputFlagを有し、tr(n)<tr(currPic)かつto,dpb(n)≧tr(currPic)であるすべてのピクチャn、ただしcurrPicは現在のピクチャである。
次の条件のすべてが、ビットストリーム適合試験の各々に対して満たされるものとする。
1.バッファリング期間SEIメッセージと関連付けられる、n>0である各アクセスユニットnに対して、Δt
g,90(n)は
によって規定され、InitCpbRemovalDelay[SchedSelIdx]の値は次のように制約されるものとする。
−cbr_flag[SchedSelIdx]が0に等しい場合、
である。
−それ以外の場合(cbr_flag[SchedSelIdx]が1に等しい)、
である。
注記4−各ピクチャの除去時間におけるCPB中のビットの正確な数は、どのバッファリング期間SEIメッセージがHRDを当初化するために選択されるかに依存し得る。エンコーダは、このことを、どのバッファリング期間SEIメッセージがHRDを当初化するために選択されるかに関係なくすべての規定された制約が順守されるべきであることを確実にするために考慮しなければならず、それは、HRDがバッファリング期間SEIメッセージのいずれかの1つにおいて当初化され得るからである。
2.CPBオーバーフローは、CPB中のビットの総数がCPBサイズよりも大きい条件として、規定される。CPBはオーバーフローしてはならないものとする。
3.CPBアンダーフローは、復号ユニットmの名目CPB除去時間tr,n(m)が、mの少なくとも1つの値に対して、復号ユニットmの最終CPB到着時間taf(m)よりも小さいという条件として規定される。low_delay_hrd_flagが0に等しいとき、CPBはアンダーフローしてはならないものとする。
4.low_delay_hrd_flagが1に等しいとき、CPBアンダーフローは復号ユニットmにおいて発生し得る。この場合、復号ユニットmを含むアクセスユニットnの最終CPB到着時間taf(n)は、復号ユニットmを含むアクセスユニットnの名目CPB除去時間tr,n(n)よりも大きいものとする。
5.(復号順序で2番目のピクチャから開始する)CPBからのピクチャの名目除去時間は、A.4.1項からA.4.2項で表されるtr,n(n)およびtr(n)に対する制約を満たすものとする。
6.復号される各々の現在のピクチャに対して、C.3.1項で規定されるような、DPBからのピクチャの除去のための処理の呼出しの後、「参照のために使用される」と標識される、または1に等しいPicOutputFlagを有しto,dpb(n)≧tr(currPic)である(ただしcurrPicは現在のピクチャである)、すべてのピクチャnを含む、DPB中の復号されたピクチャの数は、Max(0,sps_max_dec_pic_buffering[TargetDecHighestTid]−1)以下であるものとする。
7.すべての参照ピクチャが、予測のために必要とされるときにDPB中に存在するものとする。1に等しいOutputFlagを有する各ピクチャは、C.3項で規定される処理の1つによるピクチャの出力時間の前にピクチャがDPBから除去されない限り、ピクチャのDPB出力時間においてDPB中に存在するものとする。
8.復号される各々の現在のピクチャに対して、maxPicOrderCnt−minPicOrderCntの値は、MaxPicOrderCntLsb/2よりも小さいものとする。
9.ピクチャの出力時間と、出力順序でそのピクチャの後にあり1に等しいPicOutputFlagを有する最初のピクチャの出力時間との差である、式C−17によって与えられるようなΔto,dpb(n)の値は、2〜9節で規定される復号処理を使用してビットストリームで規定されるプロファイル、ティア、およびレベルに対して、A.4.1項で表される制約を満たすものとする。
[0167]本開示の他の箇所で示されるように、パラメータsps_max_dec_pic_buffering[i]は、ビットストリーム適合動作において適切に選択されないことがある。セクションC.3の項目6において、HEVC Working Draft 8は、「DPB中の復号されたピクチャの数は...Min(0,sps_max_dec_pic_buffering[TemporalId]−1)以下であるものとする」ことを示し、TemporalIdは定義されない。本開示の1つまたは複数の技法によれば、TargetDecHighestTidをsps_max_dec_pic_buffering[i]のインデックスiとして規定することは、ビットストリーム適合動作を実行するときに、TargetDecHighestTidの明確に規定された値に等しいiがsps_max_dec_pic_buffering[i]において使用されることを、確実にし得る。
[0168]デバイスがHRD動作の一部として復号処理を実行するとき、デバイスは、HRDのDPBの最大の要求されるサイズを各々示すシンタックス要素のアレイ(sps_max_dec_pic_buffering[])を、SPSから、復号することができる。さらに、HRD動作を実行することの一部として、デバイスは、ターゲットの最高の時間識別子(TargetDecHighestTid)に基づいて、アレイ中の特定のシンタックス要素を決定することができる。さらに、HEVC Working Draft 8のセクションC.3に対する上記の修正において示されるように、デバイスは、DPB中の復号されたピクチャの数が、0と特定のシンタックス要素の値から1を引いたものとのうちの大きい方以下であるかどうかに少なくとも一部基づいて、ビットストリームがビデオコーディング標準に適合するかどうかを決定することができる。
[0169]HEVC Working Draft 8のセクションC.4は、デコーダの適合を記述する。本開示の1つまたは複数の例示的な技法によれば、HEVC Working Draft 8のセクションC.4は、次のように変更され得る。
この仕様に適合するデコーダは、この項で規定されるすべての要件を満たすものとする。
特定のプロファイル、ティア、およびレベルに対する適合を主張するデコーダは、VCL
NALユニットにおいて参照されるすべてのビデオパラメータセット、シーケンスパラメータセット、およびピクチャパラメータセット、ならびに、適切なバッファリング期間SEIメッセージおよびピクチャタイミングSEIメッセージが、タイムリーな方式で、ビットストリーム中で(非VCL NALユニットによって)、またはこの仕様によって規定されない外部手段によって、デコーダに運ばれるとすれば、Annex Aで規定される方式で、C.4項で規定されるビットストリーム適合の要件に適合するすべてのビットストリームの復号に成功することが可能であるものとする。
予約されたものとして規定される値を有するシンタックス要素をビットストリームが含み、予約された値を有するシンタックス要素を含むシンタックス要素またはNALユニットの値をデコーダが無視するものとすることが規定され、ビットストリームがそれ以外のことについてこの仕様に適合するとき、適合するデコーダは、それが適合するビットストリームを復号し規定されるような予約された値を有するシンタックス要素を含むシンタックス要素またはNALユニットの値を無視するのと同じ方式で、ビットストリームを復号するものとする。
出力タイミングの適合および出力順序の適合という、デコーダにより主張され得る2つのタイプの適合がある。
デコーダの適合を確認するために、C.4項によって規定されるような、主張されたプロファイル、ティア、およびレベルに適合するテストビットストリームが、HRDと試験対象のデコーダ(DUT)の両方に、仮想ストリームスケジューラ(HSS)によって配信される。HRDによって出力されるすべてのピクチャは、DUTによっても出力され、かつHRDによって出力される各ピクチャに対して、対応するピクチャに対してDUTによって出力されるすべてのサンプルの値は、HRDによって出力されるサンプルの値に等しいものとする。
出力タイミングについてのデコーダの適合のために、ビットレートおよびCPBサイズが規定されたプロファイル、ティア、およびレベルについてAnnex Aで規定されるように制約される、SchedSelIdxの値のサブセットのみから選択される配信スケジュールとともに、または、ビットレートおよびCPBサイズがAnnex Aで規定されるように制約される、以下で規定されるような「補間された」配信スケジュールとともに、HSSが上で説明されたように動作する。同じ配信スケジュールがHRDとDUTの両方に使用される。
0よりも大きいcpb_cnt_minus1[TargetDecHighestTid]を伴うHRDパラメータおよびバッファリング期間SEIメッセージが存在するとき、デコーダは、次のように、ピークビットレートrと、CPBサイズc(r)と、当初のCPBの除去遅延(f(r)÷r)とを有するものとして規定される「補間された」配信スケジュールを使用して動作するHSSから配信されるようなビットストリームを復号することが可能であるものとする。
いずれかのSchedSelIdx>0、および、BitRate[SchedSelIdx−1]≦r≦BitRate[SchedSelIdx]となり、rおよびc(r)が規定されたプロファイル、ティア、およびレベルに対する最大のビットレートおよびバッファサイズについてAnnex Aで規定されるような制限の範囲内にあるような、rに対して、
である。
注記1−InitCpbRemovalDelay[SchedSelIdx]は、バッファリング期間ごとに異なっていることがあり、再計算されなければならない。
出力タイミングについてのデコーダの適合のために、上で説明されたようなHRDが使用され、ピクチャ出力のタイミング(最初のビットの配信時間に対する)は、最大である固定された遅延まで、HRDとDUTの両方に対して同じである。
出力順序についてのデコーダの適合に関して、次のことが当てはまる。
−HSSは、ビットストリームBitstreamToDecodeをDUTからの「要求によって」DUTに配信し、これは、DUTが処理を進めるためにさらなるビットを必要とするときにのみHSSがビットを(復号順序で)配信することを意味する。
注記2−これは、この試験に対して、DUTのコーディングされたピクチャのバッファが、最大の復号ユニットのサイズと同じ小ささであってよいことを意味する。
−以下で説明されるような修正されたHRDが使用され、ビットレートおよびCPBサイズがAnnex Aで規定されるように制約されるように、HSSは、ビットストリームBitstreamToDecodeで規定されるスケジュールの1つによって、ビットストリームをHRDに配信する。出力されるピクチャの順序は、HRDとDUTの両方について同じであるものとする。
−出力順序についてのデコーダの適合のために、CPBサイズは、式E−46によって規定されるようなCpbSize[SchedSelIdx]であり、SchedSelIdxおよびHRDパラメータは、C.1項において上で規定されたように選択される。DPBサイズはsps_max_dec_pic_buffering[TargetDecHighestTid]である。HRDのためのCPBからの除去時間は、最終ビットの到着時間に等しく、復号は即時である。このHRDのDPBの動作は、C.5.1項からC.5.3項で記述されるようなものである。
[0170]本開示の他の箇所で示されるように、パラメータcpb_cnt_minus1[i]およびsps_max_dec_pic_buffering[i]は、デコーダ適合要件において適切に選択されないことがある。たとえば、HEVC Working
Draft 8のセクションC.4は、cpb_cnt_minus1のためのインデックスを規定しない。本開示の1つまたは複数の技法によれば、cpb_cnt_minus1[i]およびsps_max_dec_pic_buffering[i]のインデックスiとして、TargetDecHighestTidを規定することは、TargetDecHighestTidの明確に規定された値に等しいiについてデコーダ適合動作が一貫して実行されることを確実にする。
[0171]さらに、HEVC Working Draft 8のセクションC.4.2は、デコーダの適合のためのDPBからのピクチャの除去を記述する。本開示の1つまたは複数の例示的な技法によれば、セクションC.4.2の表題は、「DPBからのピクチャの除去」から「DPBからのピクチャの出力および除去」に変更され得る。HEVC Working Draft 8のセクションC.4.2の文章は、次のように変更され得る。
現在のピクチャの復号の前の(ただし、現在のピクチャの最初のスライスのスライスヘッダを解析した後の)DPBからのピクチャの出力および除去は、現在のピクチャを含むアクセスユニットの最初の復号ユニットがCPBから除去されるときに瞬時に起こり、次のように進行する。
8.3.2項で規定されるような、参照ピクチャセットのための復号処理が呼び出され得る。
−現在のピクチャがIDRピクチャまたはBLAピクチャである場合、次のことが当てはまる。
1.IDRピクチャまたはBLAピクチャが復号される最初のピクチャではなく、アクティブシーケンスパラメータセットから導出されたpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[TargetDecHighestTid]の値が、それぞれ、先行するピクチャについてアクティブであったシーケンスパラメータセットから導出されたpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[TargetDecHighestTid]の値とは異なるとき、no_output_of_prior_pics_flagは、no_output_of_prior_pics_flagの実際の値にかかわらず、HRDによって1に等しいと推測される。
注記−デコーダの実装形態は、pic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering[TargetDecHighestTid]の変更に関して、HRDよりも適切にピクチャまたはDPBサイズの変更を扱おうと試みるものとする。
2.no_output_of_prior_pics_flagが、1に等しいとき、または1に等しいと推測されるとき、DPB中のすべてのピクチャ記憶バッファは、それらが含むピクチャの出力を伴わずに空にされる。
3.no_output_of_prior_pics_flagが1に等しくなく、1に等しいと推測されないとき、「出力のために必要とされない」および「参照のために使用されない」と標識されるピクチャを含むピクチャ記憶バッファが(出力を伴わずに)空にされ、DPB中のすべての空ではないピクチャ記憶バッファが、C.5.2.1項で規定される「バンピング」処理を繰り返し呼び出すことによって空にされる。
−それ以外の場合(現在のピクチャがIDRピクチャまたはBLAピクチャである)、「出力のために必要とされない」および「参照のために使用されない」と標識されるピクチャを含むピクチャ記憶バッファが(出力を伴わずに)空にされる。以下の条件の1つまたは複数が真であるとき、C.5.2.1項で規定される「バンピング」処理が、現在の復号されたピクチャを記憶するための空のピクチャ記憶バッファが存在するまで、繰り返し呼び出される。
1.「出力のために必要とされる」と標識されるDPB中のピクチャの数は、sps_max_num_reorder_pics[TargetDecHighestTid]より大きい。
2.DPB中のピクチャの数は、sps_max_num_reorder_pics[TargetDecHighestTid]に等しい。
「バンピング」処理次の場合、「バンピング処理」が呼び出される。
−C.5.2項で規定されるように、現在のピクチャがIDRピクチャまたはBLAピクチャであり、no_output_of_prior_pics_flagが1に等しくなく、1に等しくないと推測される。
−C.5.2項で規定されるように、現在のピクチャがIDRピクチャまたはBLAピクチャではなく、「出力のために必要とされる」と標識されるDPB中のピクチャの数がsps_max_num_reorder_pics[TargetDecHighestTid]より大きい。
−C.5.2項で規定されるように、現在のピクチャがIDRピクチャまたはBLAピクチャではなく、DPB中のピクチャの数がsps_max_dec_pic_buffering[TargetDecHighestTid]に等しい。
「バンピング」処理は、次の順序付けられたステップからなる。
1.出力が最初のピクチャが、「出力のために必要とされる」と標識されるDPB中のすべてのピクチャのうちの、最小値のPicOrderCntValを有するピクチャとして選択される。
2.ピクチャが、ピクチャのためのアクティブシーケンスパラメータセットで規定されるクロッピング方形を使用してクロッピングされ、クロッピングされたピクチャが出力され、ピクチャが「出力のために必要とされない」と標識される。
3.クロッピングされ出力されたピクチャを含んだピクチャ記憶バッファが、「参照のために使用されない」と標識されるピクチャを含む場合、ピクチャ記憶バッファが空にされる。
[0172]本開示の他の箇所で示されるように、パラメータsps_max_dec_pic_buffering[i]およびsps_max_num_reorder_pics[i]は、DPBからのピクチャの除去のようなHRD動作において適切に選択されないことがある。本開示の1つまたは複数の技法によれば、TargetDecHighestTidをsps_max_dec_pic_buffering[i]およびsps_max_num_reorder_pics[i]のインデックスiとして規定することは、DPBからピクチャを除去するHRD動作を実行するときに、TargetDecHighestTidの明確に規定された値に等しいiがsps_max_dec_pic_buffering[i]およびsps_max_num_reorder_pics[i]において使用されることを、確実にし得る。
[0173]デバイスがHRD動作の間に復号処理を実行するとき、デバイスは、HRDのDPBの最大の要求されるサイズを各々示すシンタックス要素のアレイ(sps_max_dec_pic_buffering[])を、SPSから、復号することができる。さらに、デバイスがHRD動作を実行するとき、デバイスは、ターゲットの最高の時間識別子に基づいて、アレイ中の特定のシンタックス要素(sps_max_dec_pic_buffering[TargetDecHighestTid])を決定することができる。さらに、デバイスは、現在のピクチャがIDRピクチャまたはBLAピクチャではなく、出力のために必要とされると標識されたDPB中のピクチャの数が特定のシンタックス要素の値より大きいとき、DPBの1つまたは複数のピクチャ記憶バッファを空にするバンピング処理を実行することができる。
[0174]同様に、デバイスがHRD動作の間に復号処理を実行するとき、デバイスは、HRDのDPBの最大の要求されるサイズを各々示すシンタックス要素のアレイ(sps_max_dec_pic_buffering[])を、SPSから、復号することができる。さらに、デバイスがHRD動作を実行するとき、デバイスは、ターゲットの最高の時間識別子に基づいて、アレイ中の特定のシンタックス要素(sps_max_dec_pic_buffering[TargetDecHighestTid])を決定することができる。さらに、デバイスは、現在のピクチャがIDRピクチャまたはBLAピクチャではなく、DPB中のピクチャの数が特定のシンタックス要素によって示されるものに等しいとき、DPBの1つまたは複数のピクチャ記憶バッファを空にするバンピング処理を実行することができる。
[0175]さらに、本開示の1つまたは複数の技法によれば、applicable_operation_points()シンタックス構造および関連付けられるセマンティクスが、HEVC Working Draft 8に追加され得る。以下の表5は、applicable_operation_points()シンタックス構造の例示的なシンタックスを示す。
[0176]表5に示されるapplicable_operation_point()シンタックス構造は、シンタックス構造と関連付けられるSEIメッセージが適用される動作点を規定する。applicable_operation_point()シンタックス構造と関連付けられるSEIメッセージ(関連付けられるSEIメッセージとも呼ばれる)は、applicable_operation_point()シンタックス構造を含むSEIメッセージである。applicable_operation_point()シンタックス構造と関連付けられるSEIメッセージは、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、またはサブピクチャタイミングSEIメッセージであり得る。
[0177]デフォルトの動作点は、両端を含めて値0からnuh_reserved_zero_6bitsを含むOpLayerIdSetによって特定される動作点として定義されてよく、nuh_reserved_zero_6bitsは、関連付けられるSEIメッセージを含むSEI NALユニットのNALユニットヘッダにおいてコーディングされ、OpTidは、関連付けられるSEIメッセージを含むSEI NALユニットのTemporalId値に等しい。あるいは、デフォルトの動作点は、関連付けられるSEIメッセージを含むSEI NALユニットのNALユニットヘッダ中のnuh_reserved_zero_6bitsのみを含むOpLayerIdSetによって特定される動作点として定義されてよく、OpTidは、関連付けられるSEIメッセージを含むSEI NALユニットのTemporalId値に等しい。あるいは、デフォルトの動作点は、値0のみを含むOpLayerIdSetによって特定される動作点として定義されてよく、OpTidは、関連付けられるSEIメッセージを含むSEI NALユニットのTemporalId値に等しい。
[0178]defalut_op_applicable_flagが1に等しい場合、関連付けられるSEIメッセージが適用される動作点は、デフォルトの動作点、およびoperation_point_layer_ids(i)によって規定されるようなOpLayerIdSetおよびop_temporal_id[i]に等しいOpTidによって特定されるnum_applicable_ops_minus1動作点であり、iは両端を含めて0からnum_applicable_ops_minus1の範囲にある。それ以外の場合(defalut_op_applicable_flagが0に等しい)、関連付けられるSEIメッセージが適用される動作点は、operation_point_layer_ids(i)によって規定されるようなOpLayerIdSetおよびop_temporal_id[i]に等しいOpTidによって特定されるnum_applicable_ops_minus1+1動作点であってよく、iは両端を含めて0からnum_applicable_ops_minus1+1の範囲にある。
[0179]さらに、表5の例示的なシンタックスにおいて、num_applicable_ops_minus1シンタックス要素+1は、関連付けられるSEIメッセージが適用される動作点の数を規定する。num_applicable_ops_minus1の値は、両端値を含めて0から63の範囲にあり得る。表5の例では、1に等しいdefault_op_applicable_flagシンタックス要素は、関連付けられるSEIメッセージがデフォルトの動作点に適用されることを規定する。0に等しいdefault_op_applicable_flagシンタックス要素は、関連付けられるSEIメッセージがデフォルトの動作点に適用されないことを規定する。op_temporal_id[i]シンタックス要素は、applicable_operation_point()シンタックス構造において明示的にシグナリングされるi番目のOpTid値を規定する。op_temporal_id[i]の値は、両端を含めて、0から6の範囲にあり得る。
[0180]上で示されたように、HEVC Working Draft 8は、関連付けられるoperation_point_layer_ids()シンタックス構造がnuh_reserved_zero_6bitsの複数の値(すなわち、HEVCのマルチビュー拡張、3DV拡張、またはスケーラブルビデオコーディング拡張における複数のレイヤID)を含むhrd_parameters()シンタックス構造に、バッファリング期間SEIメッセージまたはピクチャタイミングSEIメッセージを関連付ける方法を提供しない。applicable_operation_point()シンタックス構造を含むことは、この問題を少なくとも部分的に解決し得る。applicable_operation_point()シンタックス構造は、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、またはサブピクチャタイミングSEIメッセージが適用される動作点を明確に規定し得る。このことは、SEI NALユニットのNALユニットヘッダ中のシンタックス要素nuh_reserved_zero_6bitsおよびtemporal_id_plus1で搬送される情報の使用を可能にでき、複数の動作点と関連付けられるビデオデータの処理のために、同じバッファリング期間、ピクチャタイミングSEIメッセージまたはサブピクチャタイミングSEIメッセージで運ばれる情報の共有を可能にできる。
[0181]HEVC Working Draft 8のセクションD.1.1は、バッファリング期間SEIメッセージのシンタックスを記述する。本開示の1つまたは複数の例示的な技法によれば、バッファリング期間SEIメッセージは、以下の表6に示されるように変更され得る。バッファリング期間SEIメッセージシンタックスに対する変更は、バッファリング期間SEIメッセージがapplicable_operation_points()シンタックス構造を含むことを可能にし得る。
[0182]HEVC Working Draft 8のセクションD.2.1は、バッファリング期間SEIメッセージのシンタックス要素のセマンティクスを記述する。本開示の1つまたは複数の技法によれば、buffering_period(payloadSize)シンタックス構造のセマンティクスは次のように変更され得る。言及されないシンタックス要素のセマンティクスは、HEVC Working Draft 8の場合と同じである。
バッファリング期間SEIメッセージは、当初のCPBの除去遅延および当初のCPBの除去遅延のオフセットの情報を提供する。
次のことが、バッファリング期間SEIメッセージのシンタックスおよびセマンティクスに当てはまる。
−シンタックス要素initial_cpb_removal_delay_length_minus1およびsub_pic_cpb_params_present_flag、ならびに、変数NalHrdBpPresentFlag、VclHrdBpPresentFlag、CpbSize[SchedSelIdx]、BitRate[SchedSelIdx]、およびCpbCntは、バッファリング期間SEIメッセージが適用される動作点のいずれにも適用可能なhrd_parameters()シンタックス構造およびsub_layer_hrd_parameters()シンタックス構造において見出されるシンタックス要素において見出され、またはそれから導出される。
−異なるOpTid値tIdAとtIdBとを有する、バッファリング期間SEIメッセージが適用されるいずれかの2つの動作点は、その2つの動作点に適用可能なhrd_parameters()シンタックス構造においてコーディングされるcpb_cnt_minus1[tIdA]およびcpb_cnt_minus1[tIdB]の値が同一であることを示す。
−異なるOpLayerIdSet値layerIdSetAとlayerIdSetBとを有する、バッファリング期間SEIメッセージが適用されるいずれかの2つの動作点は、その2つの動作点に適用可能な2つのhrd_parameters()シンタックス構造に対して、それぞれ、nal_hrd_parameters_present_flagおよびvcl_hrd_parameters_present_flagの値が同一であることを示す。
−ビットストリーム(またはその一部)は、バッファリング期間SEIメッセージが適用される動作点のいずれかと関連付けられるビットストリームのサブセット(またはその一部)を指す。
NalHrdBpPresentFlagまたはVclHrdBpPresentFlagが1に等しい場合、規定された動作点に適用可能なバッファリング期間SEIメッセージは、コーディングされたビデオシーケンス中のいずれかのアクセスユニットに存在する可能性があり、規定された動作点に適用可能なバッファリング期間SEIメッセージは、各RAPアクセスユニット中に、かつ、復元点SEIメッセージと関連付けられる各アクセスユニット中に存在するものとする。それ以外の場合(NalHrdBpPresentFlagまたはVclHrdBpPresentFlagが0に等しい)、コーディングされたビデオシーケンス中のアクセスユニットは、規定された動作点に適用可能なバッファリング期間SEIメッセージを有さないものとする。
注記−いくつかの適用例では、バッファリング期間SEIメッセージの頻繁な存在が望ましいことがある。
バッファリング期間SEIメッセージを含み0に等しいnuh_reserved_zero_6bitsを有するSEI NALユニットが存在するとき、SEI NALユニットは、復号順序において、アクセスユニット中で最初のVCL NALユニットに先行するものとする。
バッファリング期間は、復号順序において連続的なバッファリング期間SEIメッセージの2つのインスタンスの間のアクセスユニットのセットとして規定される。
変数CpbCntはcpb_cnt_minus1[tId]+1に等しくなるように導出され、cpb_cnt_minus1[tId]は、バッファリング期間SEIメッセージが適用されtIdに等しいOpTidを有する動作点のいずれにも適用可能な、hrd_parameters()シンタックス構造においてコーディングされる。
seq_parameter_set_idは、アクティブシーケンスパラメータセットを指す。seq_parameter_set_idの値は、バッファリング期間SEIメッセージと関連付けられるコーディングされたピクチャによって参照されるピクチャパラメータセット中のseq_parameter_set_idの値に等しいものとする。seq_parameter_set_idの値は、両端を含めて、0から31の範囲にあるものとする。
1に等しいrap_cpb_params_present_flagは、initial_alt_cpb_removal_delay[SchedSelIdx]シンタックス要素およびinitial_alt_cpb_removal_delay_offset[SchedSelIdx]シンタックス要素の存在を規定する。存在しないとき、alt_cpb_params_present_flagの値は0に等しいと推測され得る。関連付けられるピクチャがCRAピクチャでもBLAピクチャでもないとき、alt_cpb_params_present_flagの値は0に等しいものとする。
initial_cpb_removal_delay[SchedSelIdx]およびinitial_alt_cpb_removal_delay[SchedSelIdx]は、SchedSelIdx番目のCPBに対して、それぞれ、デフォルトの当初のCPBの除去遅延と、代替的な当初のCPBの除去遅延とを規定する。シンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し、その単位は90kHzのクロックである。シンタックス要素の値は、0に等しくないものとし、90kHzのクロック単位でのCPBサイズの時間等価物である、90000×(CpbSize[SchedSelIdx]÷BitRate[SchedSelIdx])以下であるものとする。
initial_cpb_removal_delay_offset[SchedSelIdx]およびinitial_alt_cpb_removal_delay_offset[SchedSelIdx]は、SchedSelIdx番目のCPBに対して、それぞれ、デフォルトの当初のCPBの除去のオフセットと、代替的な当初のCPBの除去のオフセットとを規定する。シンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し、その単位は90kHzのクロックである。これらのシンタックス要素は、デコーダによって使用され得ず、Annex Cにおいて規定される配信スケジューラ(HSS)のみのために必要とされ得る。
[0183]バッファリング期間SEIメッセージは、HRDパラメータ(たとえば、initial_cpb_removal_delay[SchedSelIdx]、initial_cpb_removal_delay_offset[SchedSelIdx]、initial_alt_cpb_removal_delay[SchedSelIdx]、およびinitial_alt_cpb_removal_delay_offset[SchedSelIdx])を含み得る。上で示されたように、HEVC Working Draft 8は、関連付けられるoperation_point_layer_ids()シンタックス構造がnuh_reserved_zero_6bitsの複数の値(すなわち、HEVCのマルチビュー拡張、3DV拡張、またはスケーラブルビデオコーディング拡張における複数のレイヤID)を含む、VPS中のhrd_parameters()シンタックス構造に、バッファリング期間SEIメッセージを関連付ける方法を提供しない。したがって、本開示の1つまたは複数の技法によれば、バッファリング期間SEIメッセージ中のapplicable_operation_points()シンタックス要素は、バッファリング期間SEIメッセージが適用される動作点を規定する。
[0184]HEVC Working Draft 8のセクションD.1.2は、ピクチャタイミングSEIメッセージのシンタックスを示す。本開示の1つまたは複数の技法によれば、ピクチャタイミングSEIメッセージのシンタックスは、以下の表7に示されるように変更され得る。ピクチャタイミングSEIメッセージシンタックスに対する変更は、ピクチャタイミングSEIメッセージがapplicable_operation_points()シンタックス構造を含むことを可能にし得る。
[0185]加えて、ピクチャタイミングSEIメッセージのセマンティクスは次のように変更され得る。以下で言及されないpic_timing(payloadSize)シンタックス構造のシンタックス要素のセマンティクスは、HEVC Working Draft 8における場合と同じであり得る。
ピクチャタイミングSEIメッセージは、SEIメッセージと関連付けられるアクセスユニットに対するCPB除去遅延およびDPB出力遅延の情報を提供する。
次のことが、ピクチャタイミングSEIメッセージのシンタックスおよびセマンティクスに当てはまる。
−シンタックス要素sub_pic_cpb_params_present_flag、cpb_removal_delay_length_minus1、dpb_output_delay_length_minus1、およびdu_cpb_removal_delay_length_minus1、ならびに、変数CpbDpbDelaysPresentFlagは、ピクチャタイミングSEIメッセージが適用される動作点のいずれにも適用可能なhrd_parameters()シンタックス構造およびsub_layer_hrd_parameters()シンタックス構造において見出されるシンタックス要素において見出され、またはそれから導出される。
−ビットストリーム(またはその一部)は、ピクチャタイミングSEIメッセージが適用される動作点のいずれかと関連付けられるビットストリームのサブセット(またはその一部)を指す。
注記1−ピクチャタイミングSEIメッセージのシンタックスは、ピクチャタイミングSEIメッセージが適用される動作点に適用可能なhrd_parameters()シンタックス構造の内容に依存する。これらのhrd_parameters()シンタックス構造は、ピクチャタイミングSEIメッセージと関連付けられるコーディングされたピクチャに対してアクティブであるビデオパラメータセットおよび/またはシーケンスパラメータセットの中にある。ピクチャタイミングSEIメッセージが、ビットストリーム中の最初のアクセスユニット、IDRアクセスユニット、またはBLAアクセスユニットであるCRAアクセスユニットと関連付けられるとき、それが同じアクセスユニット内のバッファリング期間SEIメッセージによって先行されない限り、ビデオパラメータセットおよびシーケンスパラメータセットのアクティブ化(および、ビットストリーム中の最初のピクチャではないIDRピクチャまたはBLAピクチャに対しては、コーディングされたピクチャがIDRピクチャまたはBLAピクチャであるという決定)は、コーディングされたピクチャの最初のコーディングされたスライスNALユニットの復号まで発生しない。コーディングされたピクチャのコーディングされたスライスNALユニットがNALユニット順序でピクチャタイミングSEIメッセージの後にあるので、デコーダが、アクティブビデオパラメータセットおよび/またはアクティブシーケンスパラメータセットを決定するまで、ピクチャタイミングSEIメッセージを含むRBSPを記憶し、次いで、ピクチャタイミングSEIメッセージの解析を実行する必要がある場合があり得る。
ビットストリームにおけるピクチャタイミングSEIメッセージの存在は、次のように規定される。
−CpbDpbDelaysPresentFlagが1に等しい場合、規定された動作点に適用可能な1つのピクチャタイミングSEIメッセージは、コーディングされたビデオシーケンスのあらゆるアクセスユニットの中に存在するものとする。
−それ以外の場合(CpbDpbDelaysPresentFlagが0に等しい)、規定された動作点に適用可能なピクチャタイミングSEIメッセージは、コーディングされたビデオシーケンスのいずれのアクセスユニットの中にも存在しないものとする。
ピクチャタイミングSEIメッセージを含み0に等しいnuh_reserved_zero_6bitsを有するSEI NALユニットが存在するとき、SEI NALユニットは、復号順序において、アクセスユニット中で最初のVCL NALユニットに先行するものとする。
au_cpb_removal_delay_minus+1は、HRDがアクセスユニットレベルで動作するとき、先行するアクセスユニット中の直近のバッファリング期間SEIメッセージと関連付けられるアクセスユニットのCPBからの除去の後、ピクチャタイミングSEIメッセージと関連付けられるアクセスユニットデータをバッファから除去するまでに、何個のクロックティックを待つべきかを規定する。この値は、HSSのためのCPBへのアクセスユニットデータの最早の可能な到着時間を計算するためにも使用される。そのシンタックス要素は、ビットの長さがcpb_removal_delay_length_minus1+1によって与えられる固定長のコードである。
注記2−シンタックス要素au_cpb_removal_delay_minus1の(ビットの)長さを決定するcpb_removal_delay_length_minus1の値は、ピクチャタイミングSEIメッセージと関連付けられるコーディングされたピクチャに対してアクティブであるビデオパラメータセットまたはシーケンスパラメータセット中でコーディングされるcpb_removal_delay_length_minus1の値であるが、au_cpb_removal_delay_minus1+1は、異なるコーディングされたビデオシーケンスのアクセスユニットであり得る、バッファリング期間SEIメッセージを含む先行するアクセスユニットの除去時間に対するクロックティックの数を規定する。
pic_dpb_output_delayが、ピクチャのDPB出力時間を計算するために使用される。pic_dpb_output_delayは、アクセスユニット中の最後の復号ユニットのCPBからの除去の後、復号されたピクチャがDPBから出力されるまでに、何個のクロックティックを待つべきかを規定する。
注記3−ピクチャは、それが依然として「短期参照のために使用される」または「長期参照のために使用される」と標識されているとき、その出力時間においてDPBから除去されない。
注記4−1つのpic_dpb_output_delayのみが、復号されたピクチャに対して規定される。
シンタックス要素pic_dpb_output_delayの長さは、dpb_output_delay_length_minus1+1によってビット単位で与えられる。sps_max_dec_pic_buffering[minTid]が1に等しいとき、minTidが、ピクチャタイミングSEIメッセージが適用されるすべての動作点のOpTid値の最小値である場合、pic_dpb_output_delayは0に等しいものとする。
出力タイミング適合デコーダから出力されるいずれかのピクチャのpic_dpb_output_delayから導出される出力時間は、復号順序でいずれかの後続のコーディングされたビデオシーケンス中のすべてのピクチャのpic_dpb_output_delayから導出される出力時間に先行するものとする。
このシンタックス要素の値によって確立されるピクチャ出力順序は、PicOrderCntValの値によって確立される順序と同じ順序であるものとする。
1に等しいか、または1に等しいと推測されるno_output_of_prior_pics_flagを伴うIDRピクチャまたはBLAピクチャに復号順序において先行することが原因で「バンピング」処理によって出力されないピクチャについて、pic_dpb_output_delayから導出される出力時間は、同じコーディングされたビデオシーケンス内のすべてのピクチャに対するPicOrderCntValの増大する値とともに増大するものとする。
1に等しいdu_common_cpb_removal_delay_flagは、シンタックス要素du_common_cpb_removal_delay_minus1が存在することを規定する。0に等しいdu_common_cpb_removal_delay_flagは、シンタックス要素du_common_cpb_removal_delay_minus1が存在しないことを規定する。
du_common_cpb_removal_delay_minus1+1は、ピクチャタイミングSEIメッセージと関連付けられるアクセスユニット中の各復号ユニットのCPBからの除去までに、復号順序において前にある復号ユニットのCPBからの除去の後、何個のサブピクチャクロックティック(E.2.1項参照)を待つべきかを規定する。この値は、Annex Cに規定されるように、HSSのためのCPBへの、復号ユニットデータの最早の可能な到着時間を計算するためにも使用される。このシンタックス要素は、そのビットの長さがdu_cpb_removal_delay_length_minus1+1によって与えられる、固定長のコードである。
[0186]上で示されたように、HEVC Working Draft 8は、関連付けられるoperation_point_layer_ids()シンタックス構造がnuh_reserved_zero_6bitsの複数の値(すなわち、HEVCのマルチビュー拡張、3DV拡張、またはスケーラブルビデオコーディング拡張における複数のレイヤID)を含む、VPS中のhrd_parameters()シンタックス構造に、ピクチャタイミング期間SEIメッセージを関連付ける方法を提供しない。したがって、本開示の1つまたは複数の技法によれば、ピクチャタイミングSEIメッセージ中のapplicable_operation_points()シンタックス要素は、バッファリング期間SEIメッセージが適用される動作点を規定する。
[0187]さらに、本開示の1つまたは複数の技法によれば、サブピクチャタイミングSEIメッセージのシンタックスは、以下の表8に示されるように変更され得る。サブピクチャタイミングSEIメッセージに対する変更は、サブピクチャタイミングSEIメッセージがapplicable_operation_points()シンタックス構造を含むことを可能にし得る。HEVC Working Draft 8では、サブピクチャタイミングSEIメッセージは、applicable_operation_points()シンタックス構造を含まない。
[0188]HEVC Working Draft 8のセクションD.2.2.2は、サブピクチャタイミングSEIメッセージのセマンティクスを記述する。本開示の1つまたは複数の技法によれば、HEVC Working Draft 8のセクションD.2.2.2は、次のように修正され得る。
サブピクチャタイミングSEIメッセージは、SEIメッセージと関連付けられる復号ユニットに対するCPB除去遅延情報を提供する。
次のことが、サブピクチャタイミングSEIメッセージのシンタックスおよびセマンティクスに当てはまる。
−シンタックス要素sub_pic_cpb_params_present_flagおよびcpb_removal_delay_length_minus1、ならびに、変数CpbDpbDelaysPresentFlagは、サブピクチャタイミングSEIメッセージが適用される動作点のいずれにも適用可能なhrd_parameters()シンタックス構造およびsub_layer_hrd_parameters()シンタックス構造において見出されるシンタックス要素において見出され、またはそれから導出される。
−ビットストリーム(またはその一部)は、サブピクチャタイミングSEIメッセージが適用される動作点のいずれかと関連付けられるビットストリームのサブセット(またはその一部)を指す。
ビットストリームにおけるサブピクチャタイミングSEIメッセージの存在は、次のように規定される。
−CpbDpbDelaysPresentFlagが1に等しく、sub_pic_cpb_params_present_flagが1に等しい場合、規定された動作点に適用可能な1つのサブピクチャタイミングSEIメッセージが、コーディングされたビデオシーケンス中の各復号ユニットの中に存在し得る。
−それ以外の場合(CpbDpbDelaysPresentFlagが0に等しく、またはsub_pic_cpb_params_present_flagが0に等しい)、規定された動作点に適用可能なサブピクチャタイミングSEIメッセージは、コーディングされたビデオシーケンス中に存在しないものとする。
サブピクチャタイミングSEIメッセージと関連付けられる復号ユニットは、復号順序で、サブピクチャタイミングSEIメッセージを含むSEI NALユニットと、それに続く、サブピクチャタイミングSEIメッセージを含むいずれかの後続のSEI NALユニットを含まないがその直前までのアクセスユニット中のすべての後続のNALユニットを含む、サブピクチャタイミングSEIメッセージを含まない1つまたは複数のNALユニットとからなる。各復号ユニット中に少なくとも1つのVCL NALユニットがあるものとする。VCL NALユニットと関連付けられるすべての非VCL NALユニットが、同じ復号ユニットに含まれるものとする。
du_spt_cpb_removal_delay_minus1+1は、先行するアクセスユニット中の直近のバッファリング期間SEIメッセージと関連付けられるアクセスユニット中の最後の復号ユニットのCPBからの除去の後、サブピクチャタイミングSEIメッセージと関連付けられる復号ユニットをCPBから除去するまでに、何個のサブピクチャクロックティックを待つべきかを規定する。この値は、Annex Cに規定されるように、HSSのためのCPBへの、復号ユニットデータの最早の可能な到着時間を計算するためにも使用される。このシンタックス要素は、そのビットの長さがcpb_removal_delay_length_minus1+1によって与えられる、固定長のコードによって表される。
注記−シンタックス要素du_spt_cpb_removal_delay_minus1の(ビットの)長さを決定するcpb_removal_delay_length_minus1の値は、サブピクチャタイミングSEIメッセージと関連付けられる復号ユニットを含むアクセスユニットに対してアクティブであるビデオパラメータセットまたはシーケンスパラメータセット中でコーディングされるcpb_removal_delay_length_minus1の値であるが、du_spt_cpb_removal_delay_minus1+1は、異なるコーディングされたビデオシーケンスのアクセスユニットであり得る、バッファリング期間SEIメッセージを含む先行するアクセスユニット中の最後の復号ユニットの除去時間に対するサブピクチャクロックティックの数を規定する。
[0189]HEVC Working Draft 8のセクションE.2.2は、HRDパラメータのセマンティクスを記述する。本開示の1つまたは複数の技法によれば、HEVC Working Draft 8のセクションE.2.2は、次のように変更され得る。以下で言及されないHRDパラメータのシンタックス要素のセマンティクスは、HEVC Working Draft 8における場合と同じであり得る。
hrd_parameters()シンタックス構造は、HRD動作で使用されるHRDパラメータを提供する。hrd_parameters()シンタックス構造がビデオパラメータセットに含まれるとき、シンタックス構造が適用される動作点のOpLayerIdSetに含まれるnuh_reserved_zero_6bits値の数のセットは、7.4.4項に規定されるように、ビデオパラメータセット中の対応するoperation_point_layer_ids()シンタックス構造によって規定されるか、または暗黙的に導出されるかのいずれかである。hrd_parameters()シンタックス構造がシーケンスパラメータセットに含まれるとき、適用可能な動作点は、値0のみを含むOpLayerIdSetを伴うすべての動作点である。あるいは、hrd_parameters()シンタックス構造がシーケンスパラメータセットに含まれるとき、適用可能な動作点は、TargetDecLayerIdSetと同一のOpLayerIdSetを伴うすべての動作点である。
(ビデオパラメータセットまたはシーケンスパラメータセットのいずれかの中の)コーディングされたビデオシーケンス中のすべてのhrd_parameters()シンタックス構造に対して、同じ動作点に適用される1つより大きいシンタックス構造は存在すべきではないという、ビットストリーム適合の要件がある。あるいは、同じ動作点に適用される、ビデオパラメータセット中の2つ以上のhrd_parameters()シンタックス構造が存在すべきではないことが、要求される。あるいは、値0のみを含むOpLayerIdSetを伴う動作点に適用される、hrd_parameters()シンタックス構造をビデオパラメータセットが含むべきではないことが、要求される。
du_cpb_removal_delay_length_minus1+1は、ピクチャタイミングSEIメッセージのdu_cpb_removal_delay_minus1[i]およびdu_common_cpb_removal_delay_minus1シンタックス要素のビット単位の長さを規定する。
cpb_removal_delay_length_minus1+1は、ピクチャタイミングSEIメッセージ中のau_cpb_removal_delay_minus1シンタックス要素およびサブピクチャタイミングSEIメッセージ中のdu_spt_cpb_removal_delay_minus1シンタックス要素の、ビット単位の長さを規定する。cpb_removal_delay_length_minus1シンタックス要素が存在しないとき、それは23に等しいと推測される。
dpb_output_delay_length_minus1+1は、ピクチャタイミングSEIメッセージ中のpic_dpb_output_delayシンタックス要素のビット単位の長さを規定する。dpb_output_delay_length_minus1シンタックス要素が存在しないとき、それは23に等しいと推測される。
1に等しいfixed_pic_rate_flag[i]は、TargetDecHighestTidがiに等しいとき、出力順序においていずれかの2つの連続するピクチャのHRD出力時間の間の時間的な距離が次のように制約されることを示す。0に等しいfixed_pic_rate_flag[i]は、出力順序においていずれかの2つの連続するピクチャのHRD出力時間の間の時間的な距離にそのような制約が適用されないことを示す。
fixed_pic_rate_flag[i]が存在しないとき、それは0に等しいと推測される。
TargetDecHighestTidがiに等しく、ピクチャnを含むコーディングされたビデオシーケンスに対してfixed_pic_rate_flag[i]が1に等しいとき、式C−17で規定されるようなΔo,dpb(n)に対して計算される値は、tc×(pic_duration_in_tcs_minus1[i]+1)に等しいものとし、tcは、式C−17における使用のために規定される後続のピクチャnnに対して次の条件の1つまたは複数が真であるとき、(ピクチャnを含むコーディングされたビデオシーケンスに対するtcの値を使用して)式C−1で規定されるようなものである。
−ピクチャnnが、ピクチャnと同じコーディングされたビデオシーケンス中にある。
−ピクチャnnが異なるコーディングされたビデオシーケンス中にあり、fixed_pic_rate_flag[i]がピクチャnnを含むコーディングされたビデオシーケンスにおいて1に等しく、num_units_in_tick÷time_scaleの値が両方のコーディングされたビデオシーケンスに対して同じであり、pic_duration_in_tc_minus1[i]の値が両方のコーディングされたビデオシーケンスに対して同じである。
pic_duration_in_tc_minus1[i]+1は、TargetDecHighestTidがiに等しいときの、コーディングされたビデオシーケンス中の出力順序でいずれかの2つの連続するピクチャのHRD出力時間の間の、クロックティック(clock tiks) 単位での時間的な差を規定する。pic_duration_in_tc_minus1[i]の値は、両端を含めて、0から2047の範囲にあるものとする。
low_delay_hrd_flag[i]は、Annex Cで規定されるように、TargetDecHighestTidがiに等しいときのHRD動作モードを規定する。fixed_pic_rate_flag[i]が1に等しいとき、low_delay_hrd_flag[i]は0に等しいものとする。
注記3−low_delay_hrd_flag[i]が1に等しいとき、アクセスユニットによって使用されるビットの数が原因で名目CPB除去時間に違反する「大きいピクチャ」が許容される。そのような「大きいピクチャ」は時折発生するだけであることが予測されるが、要求はされない。
cpb_cnt_minus1[i]+1は、TargetDecHighestTidがiに等しいときの、コーディングされたビデオシーケンスのビットストリーム中の代替的なCPB仕様の数を規定する。cpb_cnt_minus1[i]の値は、両端を含めて、0から31の範囲にあるものとする。low_delay_hrd_flag[i]が1に等しいとき、cpb_cnt_minus1[i]は0に等しいものとする。cpb_cnt_minus1[i]が存在しないとき、それは0に等しいと推測される。
[0190]本開示の他の箇所で説明されたように、HEVC Working Draft
8において、VPS中のhrd_parameters()シンタックス構造のみがHRD動作のために選択され得るが、SPS中のhrd_parameters()シンタックス構造は決して選択されない。hrd_parameters()シンタックス構造のセマンティクスに対する上で示された変更は、hrd_parameters()シンタックス構造がSPSに含まれるとき、hrd_parameters()シンタックス構造が適用可能な動作点がTargetDecLayerIdSetと同一のOpLayerIdSetを伴うすべての動作点であり得ることを、明確にする。修正された一般的な復号処理において上で示されたように、外部手段がセットTargetDecLayerIdSetに適用可能である場合、TargetDecLayerIdSetは外部手段によって規定され得る。それ以外の場合、復号処理がビットストリーム適合試験において呼び出される場合、TargetDecLayerIdSetは、試験対象の動作点のレイヤ識別子のセットであり得る。それ以外の場合、TargetDecLayerIdSetは、0に等しい1つだけのレイヤ識別子(すなわち、nuh_reserved_zero_6bitsの1つだけの値)を含み得る。一例では、外部手段は、端末の実装形態の一部であり、TargetDecLayerIdSetの値を設定する機能を提供する、APIであり得る。この例では、端末の実装形態は、デコーダの実装形態と、デコーダの実装形態の一部ではないいくつかの機能とを備え得る。
[0191]このようにして、デバイス(ビデオエンコーダ20、ビデオデコーダ30、追加のデバイス21、または別のデバイスのような)は、ビデオパラメータセット中のHRDパラメータのセットおよびSPS中のHRDパラメータのセットの中から、特定の動作点に適用可能なHRDパラメータのセットを選択することができる。加えて、デバイスは、特定の動作点に適用可能なHRDパラメータのセットに少なくとも一部基づいて、その特定の動作点と関連付けられるビットストリームのサブセットがビデオコーディング標準に適合するかどうかを試験する、ビットストリーム適合試験を実行することができる。
[0192]上で示されたように、HEVC Working Draft 8のセクションE.2.2は、hrd_parameters()シンタックス構造がシーケンスパラメータセットに含まれるとき、適用可能な動作点がTargetDecLayerIdSetと同一のOpLayerIdSetを伴うすべての動作点であることを示すように、修正され得る。さらに、上で説明されたように、TargetDecLayerIdSetがtargetOpLayerIdSetに設定され、targetOpLayerIdSetは、TargetOpと関連付けられるビットストリームのサブセット中に存在するnuh_reserved_zero_6bitsの値のセットを含む。TargetOpは、HRD動作における試験対象の動作点である。さらに、HRD動作(たとえば、ビットストリーム適合試験およびデコーダ適合試験)は、一般的な復号処理を呼び出すことができる。
[0193]上で説明されたように、HEVC Working Draft 8のセクション8.1は、10.1項で規定されるようなサブビットストリーム抽出処理が、TargetDecHighestTidおよびTargetDecLayerIdSetを入力として伴って適用され、出力がBitstreamToDecodeと呼ばれるビットストリームに割り当てられることを規定するように、修正され得る。したがって、BitstreamToDecode中に存在するnuh_reserved_zero_6bitsの値のみが、TestDecLayerIdSet中のnuh_reserved_zero_6bitsの値(すなわち、TargetOpと関連付けられるビットストリームのサブセット中に存在するnuh_reserved_zero_6bitsのセット)である。セクション8.1はさらに、各NALユニット中の各シンタックス要素のセマンティクスを解釈するとき、および「ビットストリーム」またはその一部(たとえば、コーディングされたビデオシーケンス)が関与するとき、ビットストリームまたはその一部がBitstreamToDecodeまたはその一部を意味することを説明する。
[0194]したがって、HRDパラメータのセマンティクスを記述するセクション(たとえば、HEVC Working Draft 8のセクションE.2.2)を解釈するとき、「コーディングされたビデオシーケンス」という用語はBitstreamToDecodeの一部を意味する。TargetDecLayerIdSetは、BitstreamToDecode中に存在するnuh_reserved_zero_6bitsのすべての値のセットと等価である。「hrd_parameters()シンタックス構造がシーケンスパラメータセットに含まれるとき、適用可能な動作点はTargetDecLayerIdSetと同一のOpLayerIdSetを伴うすべての動作点である」という、HRDパラメータのセマンティクスを説明するセクションにおける語句は、「hrd_parameters()シンタックス構造がシーケンスパラメータセットに含まれるとき、適用可能な動作点はBitstreamToDecodeの中に存在するnuh_reserved_zero_6bitsのセットと同一のOpLayerIdSetを伴うすべての動作点である」ことと等価であるということになる。
[0195]「コーディングされたビデオシーケンス」はBitstreamToDecodeの一部であるので、コーディングされたビデオシーケンス中に存在するnuh_reserved_zero_6bitsのセットは、BitstreamToDecodeの中に存在するnuh_reserved_zero_6bitsのセットのサブセットである。したがって、「hrd_parameters()シンタックス構造がシーケンスパラメータセットに含まれるとき、適用可能な動作点はBitstreamToDecodeの中に存在するnuh_reserved_zero_6bitsの値のセットと同一のOpLayerIdSetを伴うすべての動作点である」という語句は、「hrd_parameters()シンタックス構造がシーケンスパラメータセットに含まれるとき、適用可能な動作点はコーディングされたビデオシーケンス中に存在するnuh_reserved_zero_6bitsのすべての値を含むOpLayerIdSetを伴うすべての動作点である」ことを必然的に伴う。言い換えると、動作点のnuh_reserved_zero_6bitsのセットがBitstreamToDecodeの中に存在するnuh_reserved_zero_6bitsのセットと同一である場合、動作点のnuh_reserved_zero_6bitsのセットは、BitstreamToDecodeのコーディングされたビデオシーケンス中に存在するすべてのnuh_reserved_zero_6bits値を必然的に含む。この語句において、「コーディングされたビデオシーケンス」は特定のSPSと関連付けられるコーディングされたビデオシーケンスを指し得る。
[0196]HRD動作を実行するとき、デバイスは、VPSにおいて示されるhrd_parameters()シンタックス構造およびSPSにおいて示されるhrd_parameters()シンタックス構造の中から、TargetOpに適用可能なhrd_parameters()シンタックス構造を決定することができる。VPSにおける特定のhrd_parameters()シンタックス構造は、TargetOpのレイヤidセットが特定のhrd_parameters()シンタックス構造に対してVPSにおいて規定されるレイヤ識別子のセットと一致する場合、TargetOpに適用可能である。SPSにおけるhrd_parameters()シンタックス構造は、TargetOpのレイヤidセット(すなわち、TargetDecHighestTid)(すなわち、BitstreamToDecodeの中に存在するnuh_reserved_zero_6bitsのセット)がSPSのコーディングされたビデオシーケンス中に存在するすべてのnuh_reserved_zero_6bits(これは、BitstreamToDecodeの中のnuh_reserved_zero_6bitsのセットのサブセットである)を含む場合、TargetOpに適用可能であり得る。TargetOpのnuh_reserved_zero_6bitsのセットは、SPSと関連付けられるコーディングされたビデオシーケンス中に存在するすべてのnuh_reserved_zero_6bitsを必然的に含み得るので、SPSの中のhrd_parameters()シンタックス構造は常にTargetOpに適用可能であり得る。しかしながら、すべてのSPSがhrd_parameters()シンタックス構造を有するとは限らない。SPSがhrd_parameters()シンタックス構造を有さず、BitstreamToDecodeの中に存在するnuh_reserved_zero_6bitsのセットがSPSのコーディングされたビデオシーケンス中に存在するすべてのnuh_reserved_zero_6bitsを含む場合、SPSのhrd_parameters()シンタックス構造が使用されるべきである。すべてのSPSがhrd_parameters()シンタックス構造を有するとは限らないので、VPSが依然として選択され得る。
[0197]さらに、HEVC Working Draft 8のセクションE.2.2に対する修正において上で示されたように、デバイスがビットストリーム適合試験を実行するとき、ビデオデコーダは、コーディングされたビデオシーケンス中のHRDの複数のパラメータのすべてのセットに対してHRDパラメータの1つよりも大きいセットが同じ動作点に適用されるとき、ビットストリームがビデオコーディング標準に適合しないと決定することができる。加えて、デバイスがビットストリーム適合試験を実行するとき、ビデオデコーダは、VPS中のHRDパラメータの1つよりも大きいセットが同じ動作点に適用されるとき、ビットストリームがビデオコーディング標準に適合しないと決定することができる。さらに、デバイスがビットストリーム復号試験を実行するとき、デバイスは、値0のみを含むレイヤidセットを有する動作点に適用されるHRDパラメータのセットをVPSが含むとき、ビットストリームがビデオコーディング標準に適合しないと決定することができる。
[0198]図3は、本開示の技法を実装するために構成された例示的なビデオデコーダ30を示すブロック図である。図3は、説明のために提供されるものであり、本開示において広く例示され説明される技法を限定するものではない。説明の目的で、本開示は、HEVCコーディングの文脈においてビデオデコーダ30を説明する。しかしながら、本開示の技法は、他のコーディング標準または方法に適用可能であり得る。
[0199]図3の例では、ビデオデコーダ30は、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構成ユニット158と、フィルタユニット160と、復号されたピクチャのバッファ162とを含む。予測処理ユニット152は、動き補償ユニット164と、イントラ予測処理ユニット166とを含む。他の例では、ビデオデコーダ30は、より多数の、より少数の、または異なる機能コンポーネントを含み得る。
[0200]コーディングされたピクチャのバッファ(CPB)151は、ビットストリームの符号化されたビデオデータ(たとえば、NALユニット)を受け取り、記憶することができる。エントロピー復号ユニット150は、CPB 151からNALユニットを受け取り、NALユニットを解析してシンタックス要素を復号することができる。エントロピー復号ユニット150は、NALユニット中のエントロピー符号化されたシンタックス要素をエントロピー復号することができる。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構成ユニット158、およびフィルタユニット160は、ビットストリームから抽出されたシンタックス要素に基づいて復号されたビデオデータを生成することができる。
[0201]ビットストリームのNALユニットは、コーディングされたスライスNALユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット150は、コーディングされたスライスNALユニットからシンタックス要素を抽出し、エントロピー復号することができる。コーディングされたスライスの各々は、スライスヘッダと、スライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。スライスヘッダ中のシンタックス要素は、スライスを含むピクチャと関連付けられたPPSを特定するシンタックス要素を含み得る。
[0202]ビットストリームからのシンタックス要素を復号することに加えて、ビデオデコーダ30は、区分されていないCUに対して再構成動作を実行することができる。区分されていないCUに対して再構成動作を実行するために、ビデオデコーダ30は、CUの各TUに対して再構成動作を実行することができる。CUの各TUに対して再構成動作を実行することによって、ビデオデコーダ30は、CUの残差サンプルブロックを再構成することができる。
[0203]CUのTUに対して再構成動作を実行することの一部として、逆量子化ユニット154は、TUと関連付けられた係数ブロックを逆量子化(inverse quantize)、すなわち逆量子化(de-quantize)することができる。逆量子化ユニット154は、TUのCUと関連付けられたQP値を使用して、量子化の程度を決定することができ、同様に、逆量子化ユニット154が適用すべき逆量子化の程度を決定することができる。すなわち、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比はまた、利用されたエントロピーコーディングの方法に依存し得る。
[0204]逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、TUと関連付けられた残差ブロックを生成するために、係数ブロックに1つまたは複数の逆変換を適用することができる。たとえば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向性変換、または別の逆変換を、係数ブロックに適用することができる。
[0205]PUがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット166は、イントラ予測を実行して、PUの予測ブロックを生成することができる。イントラ予測処理ユニット166は、イントラ予測モードを使用して、空間的に隣接するPUの予測ブロックに基づいて、PUの予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。イントラ予測処理ユニット166は、ビットストリームから復号された1つまたは複数のシンタックス要素に基づいて、PUのイントラ予測モードを決定することができる。
[0206]予測処理ユニット152は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを構築することができる。さらに、PUがインター予測を使用して符号化される場合、エントロピー復号ユニット150は、PUの動き情報を抽出することができる。動き補償ユニット164は、PUの動き情報に基づいて、PUの1つまたは複数の参照領域を決定することができる。動き補償ユニット164は、PUの1つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、PUの予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。
[0207]再構成ユニット158は、適用可能な場合、CUのTUと関連付けられたルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックと、CUのPUの予測ルーマブロック、予測Cbブロック、および予測Crブロックとを使用して、すなわち、イントラ予測データまたはインター予測データのいずれかを使用して、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを再構成することができる。たとえば、再構成ユニット158は、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックのサンプルを予測ルーマブロック、予測Cbブロック、および予測Crブロックの対応するサンプルに加算して、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを再構成することができる。
[0208]フィルタユニット160は、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロックと関連付けられたブロッキングアーティファクトを低減するためにデブロッキング動作を実行し得る。ビデオデコーダ30は、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを復号されたピクチャのバッファ162に記憶することができる。復号されたピクチャのバッファ162は、後続の動き補償、イントラ予測、および図1のディスプレイデバイス32のようなディスプレイデバイス上での提示のために、参照ピクチャを提供することができる。たとえば、ビデオデコーダ30は、復号されたピクチャのバッファ162中のルーマブロック、Cbブロック、およびCrブロックに基づいて、他のCUのPUに対してイントラ予測動作またはインター予測動作を実行し得る。ビデオデコーダ30は、このようにして、有意ルーマ係数ブロックの変換係数レベルをビットストリームから復号し、変換係数レベルを逆量子化し、変換係数レベルに変換を適用して変換ブロックを生成し、変換ブロックに少なくとも部分的に基づいてコーディングブロックを生成し、コーディングブロックを表示のために出力することができる。
[0209]図4は、本開示の1つまたは複数の技法による、デバイスの例示的な動作200を示すフローチャートである。動作200は、ビデオエンコーダ20、ビデオデコーダ30、追加のデバイス21、または別のデバイスによって実行され得る。図4の例に示されるように、デバイスは、VPS中の仮想HRDパラメータのセット(たとえば、hrd_parametersシンタックス構造)およびSPS中のHRDパラメータのセットの中から、ビットストリームの特定の動作点に適用可能なHRDパラメータのセットを選択することができる(202)。加えて、デバイスは、特定の動作点に適用可能なHRDパラメータのセットに少なくとも一部基づいて、その特定の動作点と関連付けられるビットストリームのサブセットに対してHRD動作を実行することができる(204)。たとえば、デバイスは、ビットストリーム適合試験またはデコーダ適合試験を実行することができる。
[0210]図5は、本開示の1つまたは複数の技法による、デバイスの例示的な動作250を示すフローチャートである。動作200は、ビデオエンコーダ20、ビデオデコーダ30、追加のデバイス21、または別のデバイスによって実行され得る。図5の例に示されるように、デバイスは、ビットストリームがビデオコーディング標準に適合するかどうかを決定する、ビットストリーム適合試験を実行することができる(252)。デバイスは、ビットストリーム適合試験を実行することの一部として、復号処理を実行することができる(254)。
[0211]図5の例に示されるように、復号処理を実行するとき、デバイスは、ビットストリーム抽出処理を実行して、レイヤ識別子のターゲットセットおよびターゲットの最高の時間識別子によって定義される動作点の動作点表現を、ビットストリームから抽出することができる(256)。レイヤ識別子のターゲットセットは、動作点表現の中に存在するレイヤ識別子のシンタックス要素の値を含み得る。レイヤ識別子のターゲットセットは、ビットストリームのレイヤ識別子のシンタックス要素の値のサブセットであり得る。ターゲットの最高の時間識別子は、動作点表現の中に存在する最大の時間識別子に等しくてよく、ターゲットの最高の時間識別子はビットストリーム中に存在する最大の時間識別子以下である。さらに、デバイスは、動作点表現のNALユニットを復号することができる(258)。
[0212]図6は、本開示の1つまたは複数の技法による、デバイスの例示的なHRD動作300を示すフローチャートである。動作300は、ビデオエンコーダ20、ビデオデコーダ30、追加のデバイス21、または別のデバイスによって実行され得る。他のデバイスは、ビットストリームを入力として用い、入力ビットストリームが適合ビットストリームであるかどうかの指示を出力する、適合ビットストリームチェッカーを含み得る。いくつかの例では、HRD動作300は、ビデオコーディング標準に対するビットストリームの適合を決定することができる。他の例では、HRD動作300は、ビデオコーディング標準に対するデコーダの適合を決定することができる。HRD動作300を実行することの一部として、デバイスは、ビットストリームの選択された動作点と関連付けられるビットストリームのサブセットの最高の時間識別子を決定することができる(302)。加えて、デバイスは、最高の時間識別子に基づいて、シンタックス要素のアレイ(たとえば、sps_max_num_reorder_pics[i]、sps_max_dec_pic_buffering[i]、およびcpb_cnt_minus1[i])の中から、特定のシンタックス要素を決定することができる(304)。デバイスは、HRD動作において特定のシンタックス要素を使用することができる(306)。
[0213]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらのいずれかの組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されてよく、またはコンピュータ可読媒体を介して送信されてよく、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にするいずれかの媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形なコンピュータ可読記憶媒体、または、(2)信号または搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法を実装するための命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータ、または1つもしくは複数のプロセッサによってアクセスされ得るいずれかの利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0214]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得るいずれかの他の媒体を備え得る。同様に、いかなる接続も厳密にはコンピュータ可読媒体と称される。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
[0215]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価な統合された論理回路もしくは個別の論理回路のような、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明された技法の実装に好適な他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび/もしくはソフトウェアモジュール内で与えられてよく、または複合コーデックに組み込まれてよい。また、本技法は、1つまたは複数の回路または論理要素中で完全に実装され得る。
[0216]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示された技法を実行するために構成されたデバイスの機能的な側面を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されたが、それらのコンポーネント、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、コーデックハードウェアユニットにおいて組み合わせられてよく、または、上で説明された1つまたは複数のプロセッサを含む、相互動作するハードウェアユニットの集合によって与えられてよい。
[0217]様々な例が説明されてきた。これらおよび他の例は、以下の特許請求の範囲内にある。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを処理する方法であって、
ビットストリームがビデオコーディング標準に適合するかどうかを決定するビットストリーム適合試験を実行することを備え、ここにおいて、前記ビットストリーム適合試験を実行することが復号処理を実行することを備え、ここにおいて、前記復号処理を実行することが、
複数のレイヤ識別子のターゲットセットおよびターゲットの最高の時間識別子によって定義される動作点の動作点表現を、ビットストリームから、抽出するビットストリーム抽出処理を実行することと、
ここにおいて、複数のレイヤ識別子の前記ターゲットセットは、前記動作点表現の中に存在するレイヤ識別子のシンタックス複数要素の複数の値を含み、複数のレイヤ識別子の前記ターゲットセットは前記ビットストリームのレイヤ識別子のシンタックス複数要素の値のサブセットである、
ここにおいて、前記ターゲットの最高の時間識別子は、前記動作点表現の中に存在する最大の時間識別子に等しく、前記ターゲットの最高の時間識別子は前記ビットストリーム中に存在する最大の時間識別子以下である、および
前記動作点表現のネットワーク抽象化レイヤ(NAL)の複数のユニットを復号することと
を備える、上記方法。
[C2]
前記動作点が第1の動作点であり、
前記復号処理を2回目に実行することをさらに備える方法であって、
前記復号処理が前記2回目に実行されるとき、前記復号処理が前記ビットストリーム適合試験の一部として実行されず、
前記復号処理を前記2回目に実行することが、
外部ソースから、複数のレイヤ識別子の第2のターゲットセットと第2のターゲットの最高の時間識別子とを受信することと、複数のレイヤ識別子の前記第2のターゲットセットは、複数のレイヤ識別子の前記第2のターゲットセットおよび前記第2のターゲットの最高の時間識別子によって定義される第2の動作点の動作点表現の中に存在するレイヤ識別子の複数のシンタックス要素の値を含み、前記第2のターゲットの最高の時間識別子は、前記第2の動作点の前記動作点表現の中に存在する最大の時間識別子に等しい、
前記第2の動作点の前記動作点表現を、前記ビットストリームから、抽出するために前記ビットストリーム抽出処理を実行すること、
前記第2の動作点の前記動作点表現の複数のNALユニットを復号することと、
を備える、C1に記載の方法。
[C3]
前記動作点が第1の動作点であり、
前記復号処理を2回目に実行することをさらに備え、
前記復号処理が前記2回目に実行されるとき、前記復号処理が前記ビットストリーム適合試験の一部として実行されず、および
前記復号処理を前記2回目に実行することが、
第2の動作点の動作点表現を、前記ビットストリームから、抽出するために前記ビットストリーム抽出処理を実行すること、
ここにおいて、0は、前記第2の動作点の前記動作点表現の中に存在するレイヤ識別子の複数のシンタックス要素によって示される唯一の値である、
ここにおいて、前記ビットストリームの中に存在する前記最大の時間識別子は、前記第2の動作点の前記動作点表現の中に存在する最大の時間識別子に等しい、
前記第2の動作点の前記動作点表現の複数のNALユニットを復号することと、
を備える、C1に記載の方法。
[C4]
前記ビットストリーム適合試験を実行することが、
前記動作点を選択することと、
前記動作点のレイヤの複数識別子の前記ターゲットセットと前記動作点の前記ターゲットの最高の時間識別子とを決定することと、
前記動作点に適用可能な仮想参照デコーダ(HRD)の複数のパラメータのセットを選択することと、
前記復号処理を実行するHRDを構成するために、HRDの複数のパラメータの前記選択されたセットを使用すること
を備える、C1に記載の方法。
[C5]
前記復号処理を実行することがさらに、シーケンスパラメータセット(SPS)から、複数のシンタックス要素のアレイを復号することを備え、ここにおいて、前記アレイ中の複数の前記シンタックス要素の各々が、前記HRDの復号されたピクチャのバッファ(DPB)の最大の要求されるサイズを示し、
前記ビットストリーム適合試験を実行することが、
前記ターゲットの最高の時間識別子に基づいて、前記アレイ中の特定のシンタックス要素を決定することと、
前記特定のシンタックス要素によって示される値が最大のDPBサイズより大きいとき、前記ビットストリームが前記ビデオコーディング標準に適合しないと決定することと
を備える、C4に記載の方法。
[C6]
前記復号処理を実行することが、前記HRDのDPBの最大の要求されるサイズを各々示す複数のシンタックス要素のアレイを、SPSから、復号することを備え、およびここにおいて、
前記ビットストリーム適合試験を実行することが、
前記ターゲットの最高の時間識別子に基づいて、前記アレイ中の特定のシンタックス要素を決定することと、
現在のピクチャが瞬時復号リフレッシュ(IDR)ピクチャまたはブロークンリンクアクセス(BLA)ピクチャではなく、出力のために必要とされると標識された前記DPB中のピクチャの数が前記特定のシンタックス要素によって示される値より大きいとき、前記DPBの1つまたは複数のピクチャ記憶バッファを空にするバンピング処理を実行することと
を備える、C4に記載の方法。
[C7]
前記復号処理を実行することが、前記HRDのDPBの最大の要求されるサイズを各々示すシンタックス要素のアレイを、SPSから復号することを備え、および
ここにおいて、前記ビットストリーム適合試験を実行することが、
前記ターゲットの最高の時間識別子に基づいて、前記アレイ中の特定のシンタックス要素を決定することと、
現在のピクチャがIDRピクチャまたはBLAピクチャではなく、前記DPB中の複数のピクチャの数が前記特定のシンタックス要素によって示されるとき、前記DPBの1つまたは複数のピクチャ記憶バッファを空にするバンピング処理を実行することと
を備える、C4に記載の方法。
[C8]
前記復号処理を実行することが、前記HRDのDPBの最大の要求されるサイズを各々示す複数のシンタックス要素のアレイを、SPSから、復号することを備え、
ここにおいて、前記ビットストリーム適合試験を実行することが、前記ターゲットの最高の時間識別子に基づいて、前記アレイ中の特定のシンタックス要素を決定することを備え、
ここにおいて、前記DPB中の複数のピクチャ記憶バッファの数が前記特定のシンタックス要素によって示される、C4に記載の方法。
[C9]
前記復号処理を実行することが、
前記HRDのDPBの最大の要求されるサイズを各々示す複数のシンタックス要素の第1のアレイを、現在のピクチャについてアクティブであるSPSから復号することと、
前記HRDの前記DPBの最大の要求されるサイズを各々示す複数のシンタックス要素の第2のアレイを、先行するピクチャに対してアクティブであるSPSから、復号することと、
前記ターゲットの最高の時間識別子に基づいて、前記第1のアレイ中の第1のシンタックス要素を決定することと、
前記ターゲットの最高の時間識別子に基づいて、前記第2のアレイ中の第2のシンタックス要素を決定することと、
前記現在のピクチャがIDRピクチャまたはBLAピクチャであり、前記第1のシンタックス要素によって示される値が前記第2のシンタックス要素によって示される値と異なるとき、第3のシンタックス要素の値を、前記第3のシンタックス要素によって示される値に関係なく推測することとを備え、ここにおいて、前記第3のシンタックス要素が、前記DPB中の以前に復号されたピクチャがIDRピクチャまたはBLAピクチャの復号の後、どのように扱われるかを規定する、C4に記載の方法。
[C10]
前記復号処理を実行することが、HRDの複数のパラメータの前記選択されたセットを含むHRDの複数のパラメータシンタックス構造を復号することを備え、ここにおいて、HRDの複数のパラメータの前記選択されたセットが、前記ビットストリーム中の代替的なコーディングされたピクチャのバッファ(CPB)の複数の仕様の数を各々示すシンタックス要素のアレイを含み、および
前記ビットストリーム適合試験を実行することが、
前記ターゲットの最高の時間識別子に基づいて、前記アレイ中の特定のシンタックス要素を選択することと、
0から前記特定のシンタックス要素によって示される値までの範囲にあるスケジューラ選択インデックスを選択することと、
前記スケジューラ選択インデックスに少なくとも一部基づいて、前記HRDのCPBの当初のCPBの除去遅延を決定することと
を備える、C4に記載の方法。
[C11]
前記復号処理を実行することがさらに、複数のシンタックス要素のアレイを、SPSから、復号することを備え、ここにおいて、前記アレイ中の前記シンタックス要素の各々が、前記HRDのDPBの最大の要求されるサイズを示し、
ここにおいて、前記ビットストリーム適合試験を実行することが、
前記ターゲットの最高の時間識別子に基づいて、前記アレイ中の特定のシンタックス要素を決定することと、
前記DPB中の復号された複数のピクチャの数が、0と前記特定のシンタックス要素によって示される値から1を引いたものとのうちの大きい方以下であるかどうかに少なくとも一部基づいて、前記ビットストリームが前記ビデオコーディング標準に適合するかどうかを決定することとを備える、C4に記載の方法。
[C12]
1つまたは複数のプロセッサを備えるデバイスであって、前記1つまたは複数のプロセッサが、
ビットストリームがビデオコーディング標準に適合するかどうかを決定するビットストリーム適合試験を実行する、
前記1つまたは複数のプロセッサが前記ビットストリーム適合試験を実行するとき、復号処理を実行する、ここにおいて、前記1つまたは複数のプロセッサが前記復号処理を実行するとき、前記1つまたは複数のプロセッサが、
レイヤの複数の識別子のターゲットセットおよびターゲットの最高の時間識別子によって定義される動作点の動作点表現を、ビットストリームから、抽出する、ビットストリーム抽出処理を実行する、
ここにおいて、レイヤの複数の識別子の前記ターゲットセットは、前記動作点表現の中に存在するレイヤ識別子の複数のシンタックス要素の複数の値を含み、複数のレイヤ識別子の前記ターゲットセットは前記ビットストリームのレイヤ識別子のシンタックス要素の値のサブセットである、
ここにおいて、前記ターゲットの最高の時間識別子は、前記動作点表現の中に存在する最大の時間識別子に等しく、前記ターゲットの最高の時間識別子は前記ビットストリーム中に存在する最大の時間識別子以下である、そして
前記動作点表現のネットワーク抽象化レイヤ(NAL)の複数のユニットを復号する、上記デバイス。
[C13]
前記動作点が第1の動作点であり、
前記1つまたは複数のプロセッサが、前記復号処理を2回目に実行するように構成され、
前記復号処理が2回目に実行されるとき、前記復号処理が前記ビットストリーム適合試験の一部として実行されず、および
前記1つまたは複数のプロセッサが前記復号処理を前記2回目に実行するように構成され、前記1つまたは複数のプロセッサが、
複数のレイヤ識別子の第2のターゲットセットと第2のターゲットの最高の時間識別子とを、外部ソース、から受信し、複数のレイヤ識別子の前記第2のターゲットセットは、レイヤ識別子の前記第2のターゲットセットおよび前記第2のターゲットの最高の時間識別子によって定義される第2の動作点の動作点表現の中に存在するレイヤ識別子の複数のシンタックス要素の複数の値を含み、前記第2のターゲットの最高の時間識別子は、前記第2の動作点の前記動作点表現の中に存在する最大の時間識別子に等しい、
前記ビットストリームから、前記第2の動作点の前記動作点表現を抽出するために、前記ビットストリーム抽出処理を実行する、
前記第2の動作点の前記動作点表現の複数のNALユニットを復号する、
C12に記載のデバイス。
[C14]
前記動作点が第1の動作点であり、
前記1つまたは複数のプロセッサが、前記復号処理を2回目に実行するように構成され、
前記復号処理が前記2回目に実行されるとき、前記復号処理が前記ビットストリーム適合試験の一部として実行されず、
前記1つまたは複数のプロセッサが前記復号処理を前記2回目に実行するときに、前記1つまたは複数のプロセッサが、
前記ビットストリームから、第2の動作点の動作点表現を抽出するために、前記ビットストリーム抽出処理を実行し、
ここにおいて、0は、前記第2の動作点の前記動作点表現の中に存在するレイヤ識別子の複数のシンタックス要素によって示される唯一の値である、
ここにおいて、前記ビットストリームの中に存在する前記最大の時間識別子は、前記第2の動作点の前記動作点表現の中に存在する最大の時間識別子に等しい、および
前記第2の動作点の前記動作点表現のNALの複数のユニットを復号する
ように、前記1つまたは複数のプロセッサが構成される、C12に記載のデバイス。
[C15]
前記1つまたは複数のプロセッサが、前記ビットストリーム適合試験を実行するときに、前記1つまたは複数のプロセッサが、
前記動作点を選択し、
前記動作点の複数のレイヤ識別子の前記ターゲットセットと前記動作点の前記ターゲットの最高の時間識別子とを決定し、
前記動作点に適用可能な仮想参照デコーダ(HRD)の複数のパラメータのセットを選択し、および
前記復号処理を実行するHRDを構成するように、HRDの複数のパラメータの前記選択されたセットを使用する、ように、前記1つまたは複数のプロセッサが構成される、C12に記載のデバイス。
[C16]
前記1つまたは複数のプロセッサが前記復号処理を実行するときに、前記1つまたは複数のプロセッサが、シーケンスパラメータセット(SPS)から、複数のシンタックス要素のアレイを復号するように、前記1つまたは複数のプロセッサが構成され、ここにおいて、前記アレイ中の前記シンタックス要素の各々が、前記HRDの復号されたピクチャのバッファ(DPB)の最大の要求されるサイズを示す、ように構成され、
ここにおいて、前記1つまたは複数のプロセッサが前記ビットストリーム適合試験を実行するとき、前記1つまたは複数のプロセッサが、
前記ターゲットの最高の時間識別子に基づいて、前記アレイ中の特定のシンタックス要素を決定し、
前記特定のシンタックス要素によって示される値が最大のDPBサイズより大きいとき、前記ビットストリームは前記ビデオコーディング標準に適合しないと決定する、C15に記載のデバイス。
[C17]
前記1つまたは複数のプロセッサが前記復号処理を実行するとき、前記1つまたは複数のプロセッサが、各々が前記HRDのDPBの最大の要求されるサイズを示す複数のシンタックス要素のアレイを、SPSから、復号し、および
ここにおいて、前記1つまたは複数のプロセッサが前記ビットストリーム適合試験を実行するとき、前記1つまたは複数のプロセッサが、
前記ターゲットの最高の時間識別子に基づいて、前記アレイ中の特定のシンタックス要素を決定し、および
現在のピクチャが瞬時復号リフレッシュ(IDR)ピクチャまたはブロークンリンクアクセス(BLA)ピクチャではなく、および出力のために必要とされると標識された前記DPB中の複数のピクチャの前記数が前記特定のシンタックス要素によって示される値より大きいとき、前記DPBの1つまたは複数のピクチャ記憶バッファを空にするバンピング処理を実行する、C15に記載のデバイス。
[C18]
前記1つまたは複数のプロセッサが前記復号処理を実行するとき、前記1つまたは複数のプロセッサが、各々が前記HRDのDPBの最大の要求されるサイズを各々示すシンタックス要素のアレイを、SPSから、復号し、
ここにおいて、前記1つまたは複数のプロセッサが前記ビットストリーム適合試験を実行するとき、前記1つまたは複数のプロセッサが、
前記ターゲットの最高の時間識別子に基づいて、前記アレイ中の特定のシンタックス要素を決定し、
現在のピクチャがIDRピクチャまたはBLAピクチャではなく、前記DPB中の複数のピクチャの数が前記特定のシンタックス要素によって示されるとき、前記DPBの1つまたは複数のピクチャ記憶バッファを空にするバンピング処理を実行する、C15に記載のデバイス。
[C19]
前記1つまたは複数のプロセッサが前記復号処理を実行するとき、前記1つまたは複数のプロセッサが、前記HRDのDPBの最大の要求されるサイズを各々示すシンタックス要素のアレイを、SPSから、復号し、
ここにおいて、前記1つまたは複数のプロセッサが前記ビットストリーム適合試験を実行するとき、前記1つまたは複数のプロセッサが、前記ターゲットの最高の時間識別子に基づいて、前記アレイ中の特定のシンタックス要素を決定し、
前記DPB中の複数のピクチャ記憶バッファの数が前記特定のシンタックス要素によって示される、C15に記載のデバイス。
[C20]
前記1つまたは複数のプロセッサが前記復号処理を実行するとき、前記1つまたは複数のプロセッサが、
各々が、前記HRDのDPBの最大の要求されるサイズを示す複数のシンタックス要素の第1のアレイを、現在のピクチャについてアクティブであるSPSから、復号し、
各々が、前記HRDの前記DPBの最大の要求されるサイズを示す複数のシンタックス要素の第2のアレイを、先行するピクチャについてアクティブであるSPSから、復号し、
前記ターゲットの最高の時間識別子に基づいて、前記第1のアレイ中の第1のシンタックス要素を決定し、
前記ターゲットの最高の時間識別子に基づいて、前記第2のアレイ中の第2のシンタックス要素を決定し、
前記現在のピクチャがIDRピクチャまたはBLAピクチャであり、前記第1のシンタックス要素によって示される値が前記第2のシンタックス要素によって示される値と異なるとき、前記第3のシンタックス要素によって示される値に関係なく、第3のシンタックス要素の値を推測し、ここにおいて、前記第3のシンタックス要素が、前記DPB中の以前に復号された複数のピクチャがIDRピクチャまたはBLAピクチャの復号の後に、どのように扱われるかを規定する、C15に記載のデバイス。
[C21]
前記1つまたは複数のプロセッサが前記復号処理を実行するとき、前記1つまたは複数のプロセッサが、HRDの複数のパラメータの前記選択されたセットを含むHRDの複数のパラメータシンタックス構造を復号し、ここにおいて、HRDの複数のパラメータの前記選択されたセットが、各々が、前記ビットストリーム中の代替的なコーディングされたピクチャのバッファ(CPB)仕様の数を各々示す複数のシンタックス要素のアレイを含み、
ここにおいて、前記1つまたは複数のプロセッサが前記ビットストリーム適合試験を実行するとき、前記1つまたは複数のプロセッサが、
前記ターゲットの最高の時間識別子に基づいて、前記アレイ中の特定のシンタックス要素を選択し、
0から前記特定のシンタックス要素によって示される値までの範囲にあるスケジューラ選択インデックスを選択し、
前記スケジューラ選択インデックスに少なくとも一部基づいて、前記HRDのCPBの当初のCPBの除去遅延を決定する、C15に記載のデバイス。
[C22]
前記1つまたは複数のプロセッサが前記復号処理を実行するとき、前記1つまたは複数のプロセッサが、複数のシンタックス要素のアレイを、SPSから、復号し、ここにおいて、前記アレイ中の前記複数のシンタックス要素の各々が、前記HRDのDPBの最大の要求されるサイズを示し、および
ここにおいて、前記1つまたは複数のプロセッサが前記ビットストリーム適合試験を実行するとき、前記1つまたは複数のプロセッサが、
前記ターゲットの最高の時間識別子に基づいて、前記アレイ中の特定のシンタックス要素を決定し、および
前記DPB中の復号されたピクチャの数が、0と、前記特定のシンタックス要素によって示される値から1を引いたものとのうちの前記最大以下であるかどうかに少なくとも一部基づいて、前記ビットストリームが前記ビデオコーディング標準に適合するかどうかを決定する、C15に記載のデバイス。
[C23]
ビットストリームがビデオコーディング標準に適合するかどうかを決定するビットストリーム適合試験を実行するための手段を備えるデバイスであって、ここにおいて、前記ビットストリーム適合試験を実行することが復号処理を実行することを備え、ここにおいて、前記復号処理を実行することが、
レイヤ識別子のターゲットセットおよびターゲットの最高の時間識別子によって定義される動作点の動作点表現を、前記ビットストリームから、抽出するビットストリーム抽出処理を実行することと、
ここにおいて、複数のレイヤ識別子の前記ターゲットセットは、前記動作点表現の中に存在するレイヤ識別子の複数のシンタックス要素の複数の値を含み、複数のレイヤ識別子の前記ターゲットセットは前記ビットストリームのレイヤ識別子の複数のシンタックス要素の値のサブセットである、
ここにおいて、前記ターゲットの最高の時間識別子は、前記動作点表現の中に存在する最大の時間識別子に等しく、前記ターゲットの最高の時間識別子は前記ビットストリーム中に存在する最大の時間識別子以下である、および
前記動作点表現のネットワーク抽象化レイヤ(NAL)の複数ユニットを復号することと
を備える、上記デバイス。
[C24]
前記ビットストリーム適合試験を実行することが、
前記ビットストリームの動作点を選択することと、
前記動作点の複数のレイヤ識別子の前記ターゲットセットと前記動作点の前記ターゲットの最高の時間識別子とを決定することと、
前記動作点に適用可能な仮想参照デコーダ(HRD)パラメータのセットを選択することと、
前記復号処理を実行するHRDを構成するために、HRDの複数のパラメータの前記選択されたセットを使用することと、
を備える、C23に記載のデバイス。
[C25]
デバイスの1つ又は複数のプロセッサにより実行されるとき、前記デバイスに以下を実行させる複数の命令がそこに記憶されたコンピュータ可読記憶媒体であって、
ビットストリームがビデオコーディング標準に適合するかどうかを決定するビットストリーム適合試験を実行すること、ここにおいて、前記ビットストリーム適合試験を実行することが復号処理を実行することを備え、ここにおいて、前記復号処理を実行することが、
複数のレイヤ識別子のターゲットセットおよびターゲットの最高の時間識別子によって定義される動作点の動作点表現を、ビットストリームから、抽出するビットストリーム抽出処理を実行することと、
ここにおいて、複数のレイヤ識別子の前記ターゲットセットは、前記動作点表現の中に存在するレイヤ識別子の複数のシンタックス要素の値を含み、複数のレイヤ識別子の前記ターゲットセットは前記ビットストリームのレイヤ識別子の複数のシンタックス要素の値のサブセットである、
ここにおいて、前記ターゲットの最高の時間識別子は、前記動作点表現の中に存在する最大の時間識別子に等しく、前記ターゲットの最高の時間識別子は前記ビットストリーム中に存在する最大の時間識別子以下である、および
前記動作点表現のネットワーク抽象化レイヤ(NAL)の複数のユニットを復号することと
を備える上記コンピュータ可読記憶媒体。
[C26]
前記命令は、前記ビットストリーム適合試験の間に、前記デバイスが、
前記ビットストリームの動作点を選択し、
前記動作点の複数のレイヤ識別子の前記ターゲットセットと前記動作点の前記ターゲットの最高の時間識別子とを決定し、
前記動作点に適用可能な仮想参照デコーダ(HRD)の複数のパラメータのセットを選択し、
前記復号処理を実行するHRDを構成するために、HRDの複数のパラメータの前記選択されたセットを使用する
ように構成する、C25に記載のコンピュータ可読記憶媒体。