【文献】
Ye-Kui Wang,BoG on high-level syntax for extension planning,Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,1st Meeting: Stockholm,2012年 7月,JCT2-A0177,pp.1-17
【文献】
Munsi Haque et al.,AHG10: VUI and HRD syntax designs agreed by the BoG on VPS and NUH,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,10th Meeting: Stockholm, SE,2012年 7月,JCTVC-J0548r1,pp.1-6
【文献】
Ye-Kui Wang and Miska M. Hannuksela,HRD parameters in VPS,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,10th Meeting: Stockholm, SE,2012年 7月,JCTVC-J0562,pp.1-10
【文献】
Benjamin Bross et al.,High Efficiency Video Coding (HEVC) text specification draft 9,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,10th Meeting: Stockholm, SE,2012年 7月,JCTVC-J1003_d7,pp.i, 28, 59-60, 203-213, 236-250
【文献】
Miska M. Hannuksela,AHG9: Operation points in VPS and nesting SEI,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,11th Meeting: Shanghai, CN,2012年10月 1日,JCTVC-K0180,pp.1-5,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K0180-v1.zip
【文献】
Miska M. Hannuksela and Ye-Kui Wang,AHG9: Operation points in VPS and nesting SEI,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,11th Meeting: Shanghai, CN,2012年10月14日,JCTVC-K0180r1,pp.1-5,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K0180-v2.zip
【文献】
Benjamin Bross et al.,High Efficiency Video Coding (HEVC) text specification draft 9,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,11th Meeting: Shanghai, CN,2012年12月,JCTVC-K1003_v13,pp.i, 31, 62-64,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v13.zip
(58)【調査した分野】(Int.Cl.,DB名)
前記HRDパラメータシンタックス構造のうちの少なくとも1つは、前記符号化されたビデオビットストリームの複数の動作点に適用可能である、請求項1に記載の方法。
符号化されたビデオビットストリームから、仮想参照デコーダ(HRD)パラメータを各々が含む複数のHRDパラメータシンタックス構造を含むビデオパラメータセット(VPS)を復号するための手段と、ここにおいて、前記VPSに含まれる第1のHRDパラメータシンタックス構造以外の前記複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、前記VPSは、前記それぞれのHRDパラメータシンタックス構造の前記HRDパラメータがHRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含み、ここにおいて、前記HRDパラメータの共通セットは、前記符号化されたビデオビットストリームの全てのサブレイヤに共通であり、前記VPSに含まれる前記第1のHRDパラメータシンタックス構造は、前記HRDパラメータの共通セットを含む、
前記HRDパラメータシンタックス構造のうちの少なくとも1つの前記HRDパラメータを使って動作を実施するための手段と
を備えるビデオ復号機器。
仮想参照デコーダ(HRD)パラメータを各々が含む複数のHRDパラメータシンタックス構造を含むビデオパラメータセット(VPS)を生成するための手段と、ここにおいて、前記VPSに含まれる第1のHRDパラメータシンタックス構造以外の前記複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、前記VPSは、前記それぞれのHRDパラメータシンタックス構造の前記HRDパラメータがHRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含み、ここにおいて、前記HRDパラメータの共通セットは、ビデオデータの符号化されたピクチャを備える符号化されたビデオビットストリームの全てのサブレイヤに共通であり、前記VPSに含まれる前記第1のHRDパラメータシンタックス構造は、前記HRDパラメータの共通セットを含む、
前記符号化されたビデオビットストリーム中で前記VPSを信号伝達するための手段と
を備えるビデオ符号化機器。
【発明を実施するための形態】
【0018】
[0026]ビデオエンコーダが、符号化されたビデオデータを含むビットストリームを生成することができる。ビットストリームは、符号化されたビデオデータを含むので、ビットストリームは、本明細書では符号化されたビデオビットストリームと呼ばれ得る。ビットストリームは、一連のネットワーク抽象化レイヤ(NAL)単位を備え得る。NAL単位は、ビデオコード化レイヤ(VCL)NAL単位と非VCL NAL単位とを含み得る。VCL NAL単位は、ピクチャのコード化されたスライスを含み得る。非VCL NAL単位は、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、supplemental enhancement information(SEI)、又は他のタイプのデータを含み得る。VPSは、0個以上のコード化されたビデオシーケンス全体に適用されるシンタックス要素を含み得るシンタックス構造である。SPSは、0個以上のコード化されたビデオシーケンス全体に適用されるシンタックス要素を含み得るシンタックス構造である。単一のVPSが複数のSPSに適用可能であり得る。PPSは、0個以上のコード化されたピクチャ全体に適用されるシンタックス要素を含み得る、シンタックス構造である。単一のSPSが複数のPPSに適用可能であり得る。
【0019】
[0027]コンテンツ配信ネットワーク(CDN)機器、メディア認識ネットワーク要素(MANE:media-aware network element)、ビデオエンコーダ、又はビデオデコーダのような機器は、ビットストリームからサブビットストリームを抽出することができる。機器は、ビットストリームから幾つかのNAL単位を除去することによって、サブビットストリーム抽出処理を実行することができる。得られるサブビットストリームは、ビットストリームの残りの除去されていないNAL単位を含む。幾つかの例において、サブビットストリームから復号されたビデオデータは、元のビットストリームよりも、低いフレームレートを有することがあり、及び/又は、少数のビューを表すことがある。
【0020】
[0028]ビデオコード化規格は、サブビットストリーム抽出処理をサポートするために、様々な特徴を含み得る。例えば、ビットストリームのビデオデータは、レイヤのセットに分割され得る。レイヤの各々に対して、低次レイヤのデータは、いずれの高次レイヤのデータも参照することなく、復号され得る。NAL単位は、単一のレイヤのデータのみをカプセル化する。従って、ビットストリームの最高次の残りのレイヤのデータをカプセル化するNAL単位は、ビットストリームの残りのレイヤのデータの復号可能性に影響を与えることなく、ビットストリームから除去され得る。スケーラブルビデオコード化(SVC)では、高次レイヤは、低次レイヤのピクチャの品質を改善し(品質スケーラビリティ)、低次レイヤのピクチャの空間的なフォーマットを広げ(空間スケーラビリティ)、又は低次レイヤのピクチャの時間的なレートを上げる(時間スケーラビリティ)、増強データを含み得る。マルチビューコード化(MVC)及び3次元ビデオ(3DV)コード化では、高次レイヤは追加のビューを含み得る。
【0021】
[0029]各NAL単位は、ヘッダとペイロードとを含み得る。NAL単位のヘッダは、nuh_reserved_zero_6bitsシンタックス要素を含み得る。NAL単位のnuh_reserved_zero_6bitsシンタックス要素は、NAL単位がMVC、3DVコード化、又はSVCにおけるベースレイヤに関連する場合、0に等しい。ビットストリームのベースレイヤのデータは、ビットストリームのいずれの他のレイヤのデータも参照することなく、復号され得る。NAL単位がMVC、3DV、又はSVCにおけるベースレイヤに関連しない場合、nuh_reserved_zero_6bitsシンタックス要素は、0ではない他の値を有し得る。具体的には、NAL単位が、MVC、3DV、又はSVCにおけるベースレイヤに関連しない場合、NAL単位のnuh_reserved_zero_6bitsシンタックス要素は、NAL単位に関連付けられたレイヤを識別するレイヤ識別子を規定する。
【0022】
[0030]更に、レイヤ内の幾つかのピクチャは、同じレイヤ内の他のピクチャを参照することなく、復号され得る。従って、レイヤの幾つかのピクチャのデータをカプセル化するNAL単位は、レイヤ中の他のピクチャの復号可能性に影響を与えることなく、ビットストリームから除去され得る。例えば、偶数のピクチャ順序カウント(POC)値を有するピクチャは、奇数のPOC値を有するピクチャを参照することなく復号可能であり得る。そのようなピクチャのデータをカプセル化するNAL単位を除去することで、ビットストリームのフレームレートを下げることができる。レイヤ内の他のピクチャを参照することなく復号され得るレイヤ内のピクチャのサブセットは、「サブレイヤ」又は「時間サブレイヤ」と本明細書では呼ばれ得る。
【0023】
[0031]NAL単位は、nuh_temporal_id_plus1シンタックス要素を含み得る。NAL単位のnuh_temporal_id_plus1シンタックス要素は、NAL単位の時間識別子を規定し得る。第1のNAL単位の時間識別子が第2のNAL単位の時間識別子より小さい場合、第1のNAL単位によってカプセル化されたデータは、第2のNAL単位によってカプセル化されたデータを参照することなく、復号され得る。
【0024】
[0032]ビットストリームの動作点は、レイヤ識別子のセット(即ち、nuh_reserved_zero_6bitsの値のセット)及び時間識別子とそれぞれ関連付けられる。レイヤ識別子のセットはOpLayerIdSetと示されることがあり、時間識別子はTemporalIdと示されることがある。NAL単位のレイヤ識別子がレイヤ識別子の動作点のセットの中にあり、NAL単位の時間識別子がその動作点の時間識別子以下である場合、NAL単位はその動作点と関連付けられる。動作点表現は、動作点と関連付けられるビットストリームのサブセット(即ち、サブビットストリーム)である。動作点の動作点表現は、その動作点と関連付けられる各NAL単位を含み得る。動作点表現は、その動作点と関連付けられないVCL NAL単位を含まない。
【0025】
[0033]外部発信源が、動作点のターゲットレイヤ識別子のセットを規定し得る。例えば、コンテンツ配信ネットワーク(CDN)機器が、ターゲットレイヤ識別子のセットを規定し得る。この例では、CDN機器は、ターゲットレイヤ識別子のセットを使用して、動作点を特定することができる。CDN機器は次いで、動作点に対する動作点表現を抽出して、元のビットストリームの代わりに、動作点表現をクライアント機器に転送することができる。動作点表現を抽出しクライアント機器に転送することは、ビットストリームのビットレートを下げ得る。
【0026】
[0034]更に、ビデオコード化規格は、ビデオのバッファリングのモデルを規定する。ビデオのバッファリングのモデルはまた、「仮想参照デコーダ」又は「HRD」と呼ばれ得る。HRDは、データが復号のためにどのようにバッファリングされるべきであるかということと、復号されたデータが出力のためにどのようにバッファリングされるかということとを表す。例えば、HRDは、ビデオデコーダにおけるコード化されたピクチャのバッファ(「CPB:coded picture buffer」)及び復号されたピクチャのバッファ(「DPB:decoded picture buffer」)の動作を表す。CPBは、HRDによって規定される復号順序でアクセス単位を含む、先入れ先出しバッファである。DPBは、HRDによって規定される参照、出力の並べ替え、又は出力遅延のために、復号されたピクチャを保持するバッファである。
【0027】
[0035]ビデオエンコーダは、HRDパラメータのセットを信号伝達することができる。HRDパラメータは、HRDの様々な態様を制御する。HRDパラメータは、初期のCPBの除去遅延と、CPBサイズと、ビットレートと、初期のDPBの出力遅延と、DPBサイズとを含み得る。これらのHRDパラメータは、VPS及び/又はSPSにおいて規定される、hrd_parameters()シンタックス構造においてコード化され得る。HRDパラメータはまた、バッファリング期間SEIメッセージ又はピクチャタイミングSEIメッセージにおいて規定され得る。
【0028】
[0036]上で説明されたように、動作点表現は、元のビットストリームと異なるフレームレート及び/又はビットレートを有し得る。これは、動作点表現が元のビットストリームのデータの幾つかのピクチャ及び/又は一部を含まないことがあるからである。従って、元のビットストリームを処理するときにビデオデコーダが特定のレートでCPB及び/又はDPBからデータを除去することになっていた場合、及び、動作点表現を処理するときにビデオデコーダが同じレートでCPB及び/又はDPBからデータを除去することになっていた場合、ビデオデコーダは、CPB及び/又はDPBから、あまりにも大量の、又は少量のデータを除去することがある。従って、ビデオエンコーダは、異なる動作点のためにHRDパラメータの異なるセットを信号伝達することができる。出現しつつある高効率ビデオコード化(HEVC)規格では、ビデオエンコーダは、VPS中のHRDパラメータのセットを信号伝達することができ、又は、ビデオエンコーダは、SPS中のHRDパラメータのセットを信号伝達することができる。
【0029】
[0037]HRDパラメータのセットは、任意選択で、全ての時間サブレイヤに共通の情報のセットを含む。時間サブレイヤとは、特定の時間識別子をもつVCL NAL単位及び関連した非VCL NAL単位からなる時間スケーラブルなビットストリームの時間スケーラブルなレイヤである。共通情報のセットに加えて、HRDパラメータのセットは、個々の時間サブレイヤに固有のシンタックス要素のセットを含み得る。共通情報のセットは、HRDパラメータの複数のセットに共通なので、HRDパラメータの複数のセット中の、共通情報のセットを信号伝達する必要はなくてよい。HEVCについての幾つかの提案において、HRDパラメータのセットがVPS中のHRDパラメータの第1のセットであるとき、共通情報は、HRDパラメータのセット中に存在してよく、又はHRDパラメータのセットが第1の動作点に関連付けられているとき、共通情報は、HRDパラメータのセット中に存在してよい。
【0030】
[0038]但し、VPS中に、HRDパラメータの複数のセットがあるとき、HRDパラメータのセットに対して、共通情報の複数の異なるセットを有することが望ましい場合がある。このことは、VPS中に多数のHRDパラメータシンタックス構造があるとき、特に当てはまり得る。従って、第1のHRDパラメータシンタックス構造以外のHRDパラメータシンタックス構造中に共通情報のセットを有することが望ましい場合がある。
【0031】
[0039]本開示の技法は、HRDパラメータシンタックス構造の共通情報が、どのHRDパラメータシンタックス構造についても明示的に信号伝達されることを可能にするための設計を提供する。言い換えると、本開示の技法は、全てのサブレイヤに共通の情報が、どのhrd_parameters()シンタックス構造についても明示的に信号伝達されることを可能にし得る。このことは、コード化効率を向上させ得る。
【0032】
[0040]従って、本開示の1つ又は複数の技法によると、ビデオデコーダ又は他の機器などの機器が、複数のHRDパラメータシンタックス構造を含むVPS中のシンタックス要素に少なくとも部分的に基づいて、VPS中の特定のHRDパラメータシンタックス構造が、ビットストリームの各サブレイヤに共通のHRDパラメータのセットを含むかどうか決定することができる。機器は、VPSからシンタックス要素を復号することができる。1つ又は複数のHRDパラメータシンタックス構造が、VPS中で、コード化順序で、特定のHRDパラメータシンタックス構造の前に発生し得る。特定のHRDパラメータシンタックス構造が、ビットストリームの各サブレイヤに共通のHRDパラメータのセットを含むと決定したことに応答して、機器は、ビットストリームの各サブレイヤに共通するHRDパラメータのセットを含む、特定のHRDパラメータシンタックス構造を使う動作を実施してよい。
【0033】
[0041]更に、ビデオエンコーダは、スケーラブルネスティングSEIメッセージを生成することができる。スケーラブルネスティング(scalable nesting)SEIメッセージは、1つ又は複数のSEIメッセージを含む。スケーラブルネスティングSEIメッセージ中にネストされたSEIメッセージは、HRDパラメータ又は動作点に関連付けられた他の情報を含み得る。HEVCについての幾つかの提案は、1つのSEIメッセージが複数の動作点に適用されることを可能にしない。これは、ビデオエンコーダに、同じ情報をもつ複数のSEIメッセージを信号伝達させ得るので、ビットレート効率を低下させる場合がある。従って、本開示の技法は、1つのSEIメッセージが複数の動作点に適用されることを可能にし得る。例えば、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングSEIメッセージ内にネストされたSEIメッセージに適用可能な複数の動作点を規定するシンタックス要素を含み得る。
【0034】
[0042]更に、SEI NAL単位は、他のタイプのNAL単位のように、NAL単位ヘッダとNAL単位本体とを含む。SEI NAL単位のNAL単位本体は、スケーラブルネスティングSEIメッセージ又は別のタイプのSEIメッセージなどのSEIメッセージを含み得る。他のNAL単位のように、SEI NAL単位のNAL単位ヘッダは、nuh_reserved_zero_6bitsシンタックス要素とnuh_temporal_id_plus1シンタックス要素とを含み得る。但し、HEVCについての幾つかの提案において、SEI NAL単位のNAL単位ヘッダのnuh_reserved_zero_6bitsシンタックス要素及び/又はnuh_temporal_id_plus1シンタックス要素は、SEI NAL単位によってカプセル化された1つのSEIメッセージ(又は複数のSEIメッセージ)に適用可能な動作点を決定するのには使われない。但し、SEI NAL単位ヘッダのこれらのシンタックス要素は、信号伝達されるビットの数を削減するために再利用される場合がある。従って、本開示の技法によると、SEI NAL単位中にネストされたSEIメッセージに適用可能な動作点が、SEI NAL単位のNAL単位ヘッダ中のレイヤ識別情報によって示される動作点であるかどうかを示すために、スケーラブルネスティングSEIメッセージ中でシンタックス要素が信号伝達され得る。SEI NAL単位のNAL単位ヘッダ中のレイヤ識別情報は、NAL単位ヘッダの、nuh_reserved_zero_6bitsの値とnuh_temporal_id_plus1の値とを含み得る。
【0035】
[0043]
図1は、本開示の技法を利用し得る、例示的なビデオコード化システム10を示すブロック図である。本明細書で使用される「ビデオコーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコード化」又は「コード化」という用語は、ビデオ符号化又はビデオ復号を総称的に指し得る。
【0036】
[0044]
図1に示されるように、ビデオコード化システム10は、発信源機器12と宛先機器14とを含む。発信源機器12は、符号化されたビデオデータを生成する。従って、発信源機器12はビデオ符号化機器又はビデオ符号化装置と呼ばれ得る。宛先機器14は発信源機器12によって生成された、符号化されたビデオデータを復号することができる。従って、宛先機器14はビデオ復号機器又はビデオ復号装置と呼ばれ得る。発信源機器12及び宛先機器14は、ビデオコード化機器又はビデオコード化装置の例であり得る。
【0037】
[0045]発信源機器12及び宛先機器14は、デスクトップコンピュータ、モバイルコンピュータ機器、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤー、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲の機器を備え得る。
【0038】
[0046]宛先機器14は、チャネル16を介して発信源機器12から符号化されたビデオデータを受信し得る。チャネル16は、発信源機器12から宛先機器14に符号化されたビデオデータを移動することが可能な、1つ又は複数の媒体又は機器を備え得る。一例では、チャネル16は、発信源機器12が符号化されたビデオデータを宛先機器14にリアルタイムで直接送信することを可能にする、1つ又は複数の通信媒体を備え得る。この例では、発信源機器12は、ワイヤレス通信プロトコルのような通信規格に従って、符号化されたビデオデータを変調することができ、変調されたビデオデータを宛先機器14に送信することができる。1つ又は複数の通信媒体は、高周波(RF)スペクトル又は 1つ又は複数の物理伝送線路のような、ワイヤレス及び/又は有線の通信媒体を含み得る。1つ又は複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク(例えば、インターネット)などのパケットベースネットワークの一部を形成し得る。1つ又は複数の通信媒体は、発信源機器12から宛先機器14への通信を容易にする、ルータ、スイッチ、基地局、又は他の機器を含み得る。
【0039】
[0047]別の例では、チャネル16は、発信源機器12によって生成された、符号化されたビデオデータを記憶する記憶媒体を含み得る。この例では、宛先機器14は、例えばディスクアクセス又はカードアクセスを介して、記憶媒体にアクセスし得る。記憶媒体は、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、又は符号化されたビデオデータを記憶するための他の適切なデジタル記憶媒体のような、種々のローカルにアクセスされるデータ記憶媒体を含み得る。
【0040】
[0048]更なる例では、チャネル16は、発信源機器12によって生成された、符号化されたビデオデータを記憶するファイルサーバ又は別の中間記憶装置を含み得る。この例では、宛先機器14は、ストリーミング又はダウンロードを介して、ファイルサーバ又は他の中間記憶装置に記憶された、符号化されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、符号化されたビデオデータを宛先機器14に送信することが可能な、あるタイプのサーバであり得る。例示的なファイルサーバは、(例えば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続記憶(NAS)装置、及びローカルディスクドライブを含む。
【0041】
[0049]宛先機器14は、インターネット接続のような標準的なデータ接続を通じて、符号化されたビデオデータにアクセスし得る。例示的なタイプのデータ接続は、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに好適である、ワイヤレスチャネル(例えば、Wi−Fi(登録商標)接続)、有線接続(例えば、DSL、ケーブルモデムなど)、又はその両方の組合せを含み得る。ファイルサーバからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はその両方の組合せであってよい。
【0042】
[0050]本開示の技法は、ワイヤレス適用例又は設定に限定されない。本技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、又は他の用途のような、種々のマルチメディア用途をサポートするビデオコード化に適用され得る。幾つかの例では、ビデオコード化システム10は、単方向又は双方向のビデオ送信をサポートして、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び/又はビデオ電話のような用途をサポートするために構成され得る。
【0043】
[0051]
図1は一例にすぎず、本開示の技法は、符号化機器と復号機器との間のデータ通信を必ずしも含むとは限らないビデオコード化設定(例えば、ビデオ符号化又はビデオ復号)に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを通じてストリーミングされることなどが行われる。ビデオ符号化機器はデータを符号化してメモリに記憶することができ、及び/又は、ビデオ復号機器はメモリからデータを取り出し復号することができる。多くの例では、符号化及び復号は、互いに通信しないが、メモリにデータを符号化し、及び/又はメモリからデータを取り出して復号するだけである機器によって実行される。
【0044】
[0052]
図1の例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、出力インターフェース22とを含む。幾つかの例では、出力インターフェース22は、変調器/復調器(モデム)及び/又は送信機を含み得る。ビデオ発信源18は、撮像装置、例えばビデオカメラ、以前に撮影されたビデオデータを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、及び/又はビデオデータを生成するためのコンピュータグラフィックスシステム、又はビデオデータのそのような発信源の組合せを含み得る。
【0045】
[0053]ビデオエンコーダ20は、ビデオ発信源18からのビデオデータを符号化することができる。幾つかの例では、発信源機器12は、出力インターフェース22を介して宛先機器14に符号化されたビデオデータを直接送信する。他の例では、符号化されたビデオデータはまた、復号及び/又は再生のための宛先機器14による後のアクセスのために記憶媒体又はファイルサーバ上に記憶され得る。
【0046】
[0054]
図1の例では、宛先機器14は、入力インターフェース28と、ビデオデコーダ30と、表示装置32とを含む。幾つかの例では、入力インターフェース28は、受信機及び/又はモデムを含む。入力インターフェース28は、チャネル16を通じて、符号化されたビデオデータを受信することができる。表示装置32は、宛先機器14と一体であってよく、又はその外部にあってよい。一般に、表示装置32は、復号されたビデオデータを表示する。表示装置32は、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置のような、種々の表示装置を備え得る。
【0047】
[0055]ビデオエンコーダ20及びビデオデコーダ30は各々、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェア、又はそれらの任意の組合せのような、種々の好適な回路のいずれかとして実装され得る。本技法がソフトウェアで部分的に実装される場合、機器は、適切な非一時的コンピュータ可読記憶媒体にソフトウェア用の命令を記憶し、1つ又は複数のプロセッサを使用してその命令をハードウェア中で実行して、本開示の技法を実行することができる。上記(ハードウェア、ソフトウェア、ハードウェア及びソフトウェアの組合せなどを含む)のいずれも、1つ又は複数のプロセッサであると見なされ得る。ビデオエンコーダ20及びビデオデコーダ30の各々は、1つ又は複数のエンコーダ又はデコーダに含まれることがあり、それらのいずれかがそれぞれの機器中の複合エンコーダ/デコーダ(CODEC)の一部として組み込まれることがある。
【0048】
[0056]本開示は、一般に、ある情報をビデオデコーダ30のような別の機器に「信号伝達」するビデオエンコーダ20に言及することがある。「信号伝達」という用語は、一般に、圧縮されたビデオデータを復号するために使用されるシンタックス要素及び/又は他のデータの通信を指し得る。そのような通信は、リアルタイム又はほぼリアルタイムで行われ得る。代替的に、そのような通信は、符号化の時に符号化されたビットストリーム中でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに行われ得るなど、ある時間の期間にわたって行われることがあり、次いで、これらの要素は、この媒体に記憶された後の任意の時間に復号機器によって取り出されてよい。
【0049】
[0057]幾つかの例では、ビデオエンコーダ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.264、ISO/IEC Visualに従って動作し得る。
【0050】
[0058]他の例では、ビデオエンコーダ20及びビデオデコーダ30は、ITU−T Video Coding Experts Group(VCEG)とISO/IEC Motion Picture Experts Group(MPEG)とのビデオコード化共同研究部会(JCT−VC)によって現在開発中の高効率ビデオコード化(HEVC)規格に従って動作し得る。「HEVC Working Draft 8」と呼ばれる次のHEVC規格のドラフトは、2013年6月13日現在、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月に記載されている。別の「HEVC Working Draft 9」と呼ばれる次のHEVC規格のドラフトは、2013年6月13日現在、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拡張、MVC拡張、及び3DV拡張を製作する取組みが進行中である。HEVCの3DV拡張は、HEVCベースの3DV又はHEVC−3DVと呼ばれることがある。
【0051】
[0059]HEVC及び他のビデオコード化規格において、ビデオシーケンスは通常、一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、S
L、S
Cb及びS
Crと示される3つのサンプルアレイを含み得る。S
Lは、ルーマサンプルの2次元アレイ(即ち、ブロック)である。S
Cbは、Cbクロミナンスサンプルの2次元アレイである。S
Crは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の例では、ピクチャは、単色であってよく、ルーマサンプルのアレイのみを含み得る。
【0052】
[0060]ビデオエンコーダ20は、ピクチャの符号化された表現を生成するために、コード化ツリー単位(CTU)のセットを生成し得る。CTUの各々は、ルーマサンプルのコード化ツリーブロック、クロマサンプルの2つの対応するコード化ツリーブロック、及びコード化ツリーブロックのサンプルをコード化するのに使用されるシンタックス構造であり得る。コード化ツリーブロックは、サンプルのN×Nブロックであり得る。CTUは「ツリーブロック」又は「最大コード化単位」(LCU:largest coding unit)と呼ばれることもある。HEVCのCTUは、H.264/AVCのような、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つ又は複数のコード化単位(CU:coding unit)を含み得る。スライスは、ラスタスキャンにおいて連続的に順序付けられた整数個のCTUを含み得る。
【0053】
[0061]ビデオエンコーダ20は、コード化されたCTUを生成するために、CTUのコード化ツリーブロックに対して再帰的に4分木区分を実行して、コード化ツリーブロックをコード化ブロックに分割することができ、従って、「コード化ツリー単位」という名称である。コード化ブロックは、サンプルのN×Nブロックである。CUは、ルーマサンプルアレイ、Cbサンプルアレイ及びCrサンプルアレイ、ならびにコード化ブロックのサンプルをコード化するために使用されるシンタックス構造を有するピクチャのルーマサンプルの1つのコード化ブロック及びクロマサンプルの2つの対応するコード化ブロックであり得る。ビデオエンコーダ20は、CUの1つのコード化ブロックを1つ又は複数の予測ブロックに区分することができる。予測ブロックは、同じ予測が適用されるサンプルの方形(即ち、正方形又は非正方形)ブロックであり得る。CUの予測単位(PU)は、ルーマサンプルの予測ブロック、ピクチャのクロマサンプルの2つの対応する予測ブロック、予測ブロックサンプルを予測するのに使用されるシンタックス構造であり得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、及びCr予測ブロックのために、予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。
【0054】
[0062]ビデオエンコーダ20は、イントラ予測又はインター予測を使用して、PUの予測ブロックを生成することができる。ビデオエンコーダ20がイントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUと関連付けられたピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。
【0055】
[0063]ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUと関連付けられたピクチャ以外の1つ又は複数のピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。ビデオエンコーダ20は、一方向の予測又は双方向の予測を使用して、PUの予測ブロックを生成することができる。ビデオエンコーダ20が一方向の予測を使用してPUの予測ブロックを生成するとき、PUは、単一の動きベクトルを有し得る。ビデオエンコーダ20が双方向の予測を使用してPUの予測ブロックを生成するとき、PUは、2つの動きベクトルを有し得る。
【0056】
[0064]ビデオエンコーダ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コード化ブロックの中の対応するサンプルとの差分を示し得る。
【0057】
[0065]更に、ビデオエンコーダ20は4分木区分を使用して、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを、1つ又は複数のルーマ変換ブロック、Cb変換ブロック、及びCr変換ブロックに分解することができる。変換ブロックは、同じ変換が適用されるサンプルの方形ブロックであってもよい。CUの変換単位(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、変換ブロックサンプルを変換するのに使用されるシンタックス構造であり得る。従って、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック及びCr変換ブロックと関連付けられ得る。TUと関連付けられたルーマ変換ブロックはCUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックはCUのCb残差ブロックのサブブロックであってもよい。Cr変換ブロックはCUのCr残差ブロックのサブブロックであってもよい。
【0058】
[0066]ビデオエンコーダ20は、TUのルーマ変換ブロックに1回又は複数の変換を適用して、TUのルーマ係数ブロックを生成することができる。係数ブロックは変換係数の2次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ20は、TUのCb変換ブロックに1つ又は複数の変換を適用して、TUのCb係数ブロックを生成することができる。ビデオエンコーダ20は、TUのCr変換ブロックに1つ又は複数の変換を適用して、TUのCr係数ブロックを生成することができる。
【0059】
[0067]ビデオエンコーダ20は、係数ブロック(例えば、ルーマ係数ブロック、Cb係数ブロック、又はCr係数ブロック)を生成した後、係数ブロックを量子化することができる。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、更なる圧縮を実現する、処理を指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化することができる。例えば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対して、コンテキスト適応型バイナリ算術コード化(CABAC:Context-Adaptive Binary Arithmetic Coding)を実行することができる。ビデオエンコーダ20は、エントロピー符号化されたシンタックス要素をビットストリームにおいて出力することができる。
【0060】
[0068]ビデオエンコーダ20は、エントロピー符号化されたシンタックス要素を含むビットストリームを出力し得る。ビットストリームは、コード化されたピクチャ及び関連するデータの表現を形成するビットのシーケンスを含み得る。ビットストリームは、一連のネットワークアブストラクションレイヤ(NAL)単位を備え得る。NAL単位の各々は、NAL単位ヘッダを含み、ローバイトシーケンスペイロード(RBSP)をカプセル化する。NAL単位ヘッダは、NAL単位タイプコードを示すシンタックス要素を含み得る。NAL単位のNAL単位ヘッダによって規定されるNAL単位タイプコードは、NAL単位のタイプを示す。RBSPは、NAL単位内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。幾つかの例では、RBSPはゼロビットを含む。
【0061】
[0069]異なるタイプのNAL単位は、異なるタイプのRBSPをカプセル化し得る。例えば、第1のタイプのNAL単位はピクチャパラメータセット(PPS)のためのRBSPをカプセル化することができ、第2のタイプのNAL単位はコード化されたスライスのためのRBSPをカプセル化することができ、第3のタイプのNAL単位はSEIのためのRBSPをカプセル化することができ、その他もあり得る。(パラメータセット及びSEIメッセージのためのRBSPではなく)ビデオコード化データのためのRBSPをカプセル化するNAL単位は、ビデオコード化レイヤ(VCL)NAL単位と呼ばれ得る。
【0062】
[0070]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信することができる。加えて、ビデオデコーダ30は、ビットストリームを解析して、ビットストリームからシンタックス要素を復号することができる。ビデオデコーダ30は、ビットストリームから復号されたシンタックス要素に少なくとも一部基づいて、ビデオデータのピクチャを再構成することができる。ビデオデータを再構成するための処理は、一般に、ビデオエンコーダ20によって実行される処理の逆であり得る。例えば、ビデオデコーダ30は、PUの動きベクトルを使用して、現在のCUのPUの予測ブロックを決定することができる。加えて、ビデオデコーダ30は、現在のCUのTUと関連付けられる変換係数ブロックを逆量子化することができる。ビデオデコーダ30は、変換係数ブロックに対して逆変換を実行して、CUのTUと関連付けられた変換ブロックを再構成することができる。ビデオデコーダ30は、現在のCUのPUの予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに追加することによって、現在のCUのコード化ブロックを再構成することができる。ピクチャの各CUのコード化ブロックを再構成することによって、ビデオデコーダ30はピクチャを再構成することができる。
【0063】
[0071]マルチビューコード化では、異なる視点からの同じシーンの複数のビューがあり得る。「アクセス単位」という用語は、同じ時間インスタンスに対応するピクチャのセットを指すために使用される。従って、ビデオデータは、経時的に発生する一連のアクセス単位として概念化され得る。「ビュー成分」は、単一のアクセス単位中のビューのコード化された表現であり得る。本開示では、「ビュー」は、同じビュー識別子と関連付けられるビュー成分のシーケンスを指し得る。
【0064】
[0072]マルチビューコード化は、ビュー間予測をサポートする。ビュー間予測は、HEVCにおいて使用されるインター予測と同様であり、同じシンタックス要素を使用し得る。しかしながら、ビデオコーダが現在のビデオユニット(PUのような)に対してビュー間予測を実行するとき、ビデオエンコーダ20は、参照ピクチャとして、その現在のビデオ単位と同じアクセス単位中にあるが異なるビュー中にあるピクチャを使用し得る。対照的に、従来のインター予測は、参照ピクチャとして異なるアクセス単位中のピクチャのみを使用する。
【0065】
[0073]マルチビューコード化では、ビデオデコーダ(例えば、ビデオデコーダ30)が、あるビュー中のピクチャを任意の他のビュー中のピクチャを参照することなく復号できる場合、そのビューは「ベースビュー」と呼ばれ得る。非ベースビューの1つの中のピクチャをコード化するとき、ピクチャが、異なるビュー中にあるがビデオコーダが現在コード化しているピクチャと同じ時間インスタンス(即ち、アクセス単位)内にある場合、ビデオコーダ(ビデオエンコーダ20又はビデオデコーダ30のような)は、参照ピクチャリストにピクチャを追加し得る。他のインター予測参照ピクチャと同様に、ビデオコーダは、参照ピクチャリストの任意の位置にビュー間予測参照ピクチャを挿入し得る。
【0066】
[0074]ビデオコード化規格は、ビデオのバッファリングのモデルを規定する。H.264/AVC及びHEVCでは、バッファリングのモデルは、「仮想参照デコーダ」又は「HRD」と呼ばれる。HEVC Working Draft 8では、HRDはAnnex Cに記載される。
【0067】
[0075]HRDは、データが復号のためにどのようにバッファリングされるべきであるかということと、復号されたデータが出力のためにどのようにバッファリングされるかということとを表す。例えば、HRDは、CPB、復号されたピクチャのバッファ(「DPB」)、及びビデオ復号処理の動作を表す。CPBは、HRDによって規定される復号順序でアクセス単位を含む、先入れ先出しのバッファである。DPBは、HRDによって規定される参照、出力の並べ替え、又は出力遅延のために、復号されたピクチャを保持するバッファである。CPB及びDPBの挙動は、数学的に規定され得る。HRDは、タイミング、バッファのサイズ、及びビットレートに対して制約を直接課し得る。更に、HRDは、様々なビットストリーム特性及び統計に対して制約を間接的に課し得る。
【0068】
[0076]H.264/AVC及びHEVCでは、ビットストリームの適合及びデコーダの適合は、HRD仕様の一部として規定される。言い換えると、HRDモデルは、ビットストリームが規格に適合するかどうかを決定するための試験と、デコーダが規格に適合するかどうかを決定するための試験とを規定する。HRDがある種のデコーダと命名されるが、ビデオエンコーダは通常HRDを使用してビットストリームの適合を保証し、ビデオデコーダは通常HRDを必要としない。
【0069】
[0077]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単位ストリームである。
【0070】
[0078]ビットストリームがビデオコード化規格に適合するかどうかを決定するビットストリーム適合試験を機器が実行するとき、機器はビットストリームの動作点を選択することができる。機器は次いで、選択された動作点に適用可能なHRDパラメータのセットを決定することができる。機器は、選択された動作点に適用可能なHRDパラメータのセットを使用して、HRDの挙動を構成することができる。より具体的には、機器は、HRDパラメータの適用可能なセットを使用して、仮想ストリームスケジューラ(HSS:hypothetical stream scheduler)、CPB、復号処理、DPBなどのような、HRDの特定のコンポーネントの挙動を構成することができる。続いて、HSSは、特定のスケジュールに従って、ビットストリームのコード化されたビデオデータをHRDのCPBに注入することができる。更に、機器は、CPB中のコード化されたビデオデータを復号する復号処理を呼び出すことができる。復号処理は、復号されたピクチャをDPBに出力することができる。機器がHRDを通じてデータを移動するに従って、機器は、制約の特定のセットが満たされたままであるかどうかを決定することができる。例えば、機器は、HRDが選択された動作点の動作点表現を復号している間、CPB又はDPBにおいてオーバーフロー又はアンダーフローの条件が発生しているかどうかを決定することができる。機器は、このようにして、ビットストリームの各動作点を選択し処理することができる。制約が侵害されることをビットストリームの動作点が引き起こさない場合、そのビットストリームはビデオコード化規格に適合すると、機器は決定することができる。
【0071】
[0079]H.264/AVCとHEVCの両方が、2つのタイプのデコーダの適合、即ち、出力タイミングについてのデコーダの適合と出力順序についてのデコーダの適合とを規定する。特定のプロファイル、ティア、及びレベルに対する適合を主張するデコーダは、HEVCのようなビデオコード化規格のビットストリーム適合要件に適合する全てのビットストリームの復号に成功することが可能である。本開示では、「プロファイル」はビットストリームシンタックスのサブセットを指し得る。「ティア(Tiers)」及び「レベル」は、各プロファイル内で規定され得る。ティアのレベルは、ビットストリーム中のシンタックス要素の値に課された制約の規定されたセットであり得る。これらの制約は、値に関する単純な制限であり得る。代替的に、制約は、値の算術的な組合せ(例えば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数)に対する制約の形態をとり得る。通常、下位のティアのために規定されたレベルは、上位のティアのために規定されたレベルよりも制約される。
【0072】
[0080]機器がデコーダ適合試験を実行して、試験対象のデコーダ(DUT:decoder under test)がビデオコード化規格に適合するかどうかを決定するとき、機器は、ビデオコード化規格に適合するビットストリームを、HRDとDUTの両方に提供することができる。HRDは、ビットストリーム適合試験に関して上で説明された方式で、ビットストリームを処理することができる。機器は、DUTによって出力される復号されたピクチャがHRDによって出力される復号されたピクチャの順序と一致する場合、DUTがビデオコード化規格に適合すると決定することができる。その上、機器は、DUTが復号されたピクチャを出力するタイミングが、HRDが復号されたピクチャを出力するタイミングと一致する場合、DUTがビデオコード化規格に適合すると決定することができる。
【0073】
[0081]H.264/AVC及びHEVC HRDモデルにおいて、復号又はCPB除去は、アクセス単位ベースであり得る。即ち、HRDは、一度に全体のアクセス単位を復号し、CPBから全体のアクセス単位を除去すると想定される。更に、H.264/AVC及びHEVC HRDモデルでは、ピクチャの復号は瞬時的であると想定される。ビデオエンコーダ20は、ピクチャタイミングSEIメッセージにおいて、アクセス単位の復号を開始する復号時間を信号伝達することができる。実際の適用例では、適合するビデオデコーダが、アクセス単位の復号を開始するための信号伝達された復号時間に厳密に従う場合、特定の復号されたピクチャを出力する最早の可能な時間は、その特定のピクチャの復号時間にその特定のピクチャを復号するために必要とされる時間を加えたものに等しい。しかしながら、現実の世界では、ピクチャを復号するのに必要とされる時間は、0に等しくはできない。
【0074】
[0082]HRDパラメータは、HRDの様々な態様を制御することができる。言い換えると、HRDは、HRDパラメータに依存し得る。HRDパラメータは、初期のCPBの除去遅延と、CPBサイズと、ビットレートと、初期のDPBの出力遅延と、DPBサイズとを含み得る。ビデオエンコーダ20は、ビデオパラメータセット(VPS)及び/又はシーケンスパラメータセット(SPS)において規定されるhrd_parameters()シンタックス構造で、これらのHRDパラメータを信号伝達することができる。個々のVPS及び/又はSPSは、HRDパラメータの異なるセットに対して複数のhrd_parameters()シンタックスを含み得る。幾つかの例では、ビデオエンコーダ20は、バッファリング期間SEIメッセージ又はピクチャタイミングSEIメッセージにおいて、HRDパラメータを信号伝達することができる。
【0075】
[0083]上で説明されたように、ビットストリームの動作点は、レイヤ識別子のセット(即ち、nuh_reserved_zero_6bitsの値のセット)及び時間識別子と関連付けられる。動作点表現は、その動作点と関連付けられる各NAL単位を含み得る。動作点表現は、元のビットストリームと異なるフレームレート及び/又はビットレートを有し得る。これは、動作点表現が元のビットストリームのデータの幾つかのピクチャ及び/又は一部を含まないことがあるからである。従って、元のビットストリームを処理するときにビデオデコーダ30が特定のレートでCPB及び/又はDPBからデータを除去することになっていた場合、及び、動作点表現を処理するときにビデオデコーダ30が同じレートでCPB及び/又はDPBからデータを除去することになっていた場合、ビデオデコーダ30は、CPB及び/又はDPBから、あまりにも大量の、又は少量のデータを除去することがある。従って、ビデオエンコーダ20は、異なる動作点のためにHRDパラメータの異なるセットを信号伝達することができる。例えば、ビデオエンコーダ20は、VPSに、異なる動作点のためのHRDパラメータを含む複数のhrd_parameters()シンタックス構造を含み得る。
【0076】
[0084]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()シンタックス構造が最初の動作点のインデックスと関連付けられるときのいずれかに、共通の情報の存在をサポートする。
【0077】
[0085]以下の表1は、hrd_parameters()のための例示的なシンタックス構造である。
【表1A】
【表1B】
【0078】
[0086]上の表1及び本開示の他のシンタックス表の例では、型記述子ue(v)をもつシンタックス要素は、左ビットが先頭の0次指数ゴロム(Exp−Golomb)コード化を使用して符号化される可変長の符号のない整数であり得る。表1及び以下の表の例では、形式u(n)の記述子を有するシンタックス要素は、長さnの符号のない値であり、但し、nは非負の整数である。
【0079】
[0087]表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とを含み得る。
【0080】
[0088]更に、表1の例では、シンタックス要素fixed_pic_rate_flag[i]、pic_duration_in_tc_minus1[i]、low_delay_hrd_flag[i]、及びcpb_cnt_minus1[i]は、サブレイヤ固有のHRDパラメータのセットであり得る。言い換えると、hrd_parameter()シンタックス構造のこれらのシンタックス要素は、特定のサブレイヤを含む動作点にのみ適用可能であり得る。従って、hrd_parameters()シンタックス構造のHRDパラメータは、任意選択で含まれる共通の情報に加えて、ビットストリームの特定のサブレイヤに固有のサブレイヤ固有HRDパラメータのセットを含み得る。
【0081】
[0089]fixed_pic_rate_flag[i]シンタックス要素は、HighestTidがiに等しいとき、出力順序において任意の2つの連続するピクチャのHRD出力時間の間の時間的な差が特定の方法で制約されることを示し得る。HighestTidは、(例えば、動作点の)最高の時間サブレイヤを特定する変数であり得る。pic_duration_in_tc_minus1[i]シンタックス要素は、HighestTidがiに等しいとき、コード化されたビデオシーケンス中の出力順序において任意の連続するピクチャのHRD出力時間の間の時間的な間隔をクロックティック(clock ticks)で特定し得る。low_delay_hrd_flag[i]シンタックス要素は、HighestTidがiに等しいとき、HEVC Working Draft 8のAnnex Cに規定されるように、HRD動作モードを規定することができる。cpb_cnt_minus1[i]シンタックス要素は、HighestTidがiに等しいときの、コード化されたビデオシーケンスのビットストリーム中の代替的なCPB仕様の数を規定することができ、ここで、1つの代替的なCPB仕様は、CPBパラメータの特定のセットを用いる1つの特定のCPB動作を指す。
【0082】
[0090]ビデオエンコーダ20は、SEIメッセージを使用して、ピクチャのサンプル値の正確な復号に必要とされないメタデータをビットストリームに含めることができる。しかしながら、ビデオデコーダ30又は他の機器が、様々な他の目的で、SEIメッセージに含まれるメタデータを使用し得る。例えば、ビデオデコーダ30又は他の機器は、ピクチャ出力のタイミング、ピクチャの表示、喪失の検出、及びエラーの隠匿のために、SEIメッセージ中のメタデータを使用し得る。
【0083】
[0091]ビデオエンコーダ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メッセージを一覧にし、それらの目的を簡単に説明する。
【表2】
【0084】
[0092]2012年9月24日に出願された米国特許仮出願第61/705,102号は、SEIメッセージ中での遅延及びタイミング情報の信号伝達と選択とを含む、HRDパラメータの信号伝達及び選択のための様々な方法を記載している。2013年6月13日の時点で、http://phenix.int−evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC−K0180−v1.zipにおいて入手可能である、Hannukselaら、「AHG9:Operation points in VPS and nesting SEI」、Joint Collaborative Team on Video Coding(JCT−VC)of ITU−T SG 16 WP 3及びISO/IEC JTC 1/SC 29/WG11、11th Meeting、Shanghai、CN、2012年10月10〜19日、文書番号JCTVC−K0180v1は、HRDパラメータの信号伝達のための別の方法ならびにSEIメッセージのネスティングのための機構を提供する。
【0085】
[0093]HRDパラメータを信号伝達するための既存の技法には、幾つかの問題又は短所がある。例えば、既存の技法は、HRDパラメータのセットを、複数の動作点によって共有させることができない。但し、動作点の数が大きいとき、各動作点についてHRDパラメータの異なるセットを生じることは、ビットストリームの適合を保証しようと試みるビデオエンコーダ20又は別のユニットに対する負担になり得る。そうではなく、ビットストリーム適合は、各動作点がHRDパラメータのセットに関連付けられるが、HRDパラメータの特定のセットが複数の動作点によって共有され得ることを確実にすることによって保証することができる。本開示の1つ又は複数の技法は、HRDパラメータの1つのセットが複数の動作点によって共有されることを可能にするための設計を提供することができる。言い換えると、HRDパラメータの単一のセットが、複数の動作点に適用可能であり得る。この設計は、ビットストリームの適合を保証することを試みるビデオエンコーダ20又は別のユニットが、複雑さと性能との間でトレードオフすることを可能にし得る。
【0086】
[0094]HRDパラメータを信号伝達する既存の技法に伴う問題又は短所の別の例では、VPS中に、HRDパラメータの複数のセットがあるとき、HRDパラメータのセットに対して、共通情報の複数の異なるセットを有することが望ましい場合がある。このことは、VPS中に多数のHRDパラメータシンタックス構造があるとき、特に当てはまり得る。従って、第1のHRDパラメータシンタックス構造以外のHRDパラメータシンタックス構造中に共通情報のセットを有することが望ましい場合がある。例えば、性能を向上させるために、VPS中に複数のhrd_parameters()シンタックス構造があるとき、特に、hrd_parameters()シンタックス構造の総数が比較的大きいとき、第1のhrd_parameters()シンタックス構造の共通情報以外又は第1の動作点索引の共通情報以外の、hrd_parameters()シンタックス構造についての異なる共通情報を有することが望ましい場合がある。
【0087】
[0095]本開示の1つ又は複数の技法は、HRDパラメータのセットの共通情報が、HRDパラメータのどのセットについても明示的に信号伝達されることを可能にするための設計を提供する。例えば、本開示の技法は、全てのサブレイヤに共通の情報が、どのhrd_parameters()シンタックス構造についても明示的に信号伝達されることを可能にし得る。
【0088】
[0096]このように、ビデオエンコーダ20は、ビットストリーム中で、各々がHRDパラメータを含む複数のHRDパラメータシンタックス構造を含むVPSを信号伝達することができる。複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、VPSは、それぞれのHRDパラメータシンタックス構造のHRDパラメータが、ビットストリームの特定のサブレイヤに固有のサブレイヤ固有HRDパラメータ情報のセットに加えて、HRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含む。HRDパラメータの共通セットは、ビットストリームの全てのサブレイヤに共通である。
【0089】
[0097]同様に、ビデオデコーダ30又は別の機器は、ビットストリームから、各々がHRDパラメータを含む複数のHRDパラメータシンタックス構造を含むVPSを復号することができる。複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、VPSは、それぞれのHRDパラメータシンタックス構造のHRDパラメータが、HRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含み得る。ビデオデコーダ30又は他の機器は、HRDパラメータシンタックス構造のうちの少なくとも1つの、HRDパラメータを使って動作を実施することができる。
【0090】
[0098]更に、SEIメッセージのネスティングのための既存の方法は、幾つかの問題又は短所を有し得る。例えば、HRDパラメータを信号伝達する既存の技法は、1つのSEIメッセージが複数の動作点に適用されることを可能にすることができない。本開示の技法は、1つのSEIメッセージが複数の動作点に適用されることを可能にするための設計を提供することができる。
【0091】
[0099]具体的には、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングSEIメッセージ内にネストされたSEIメッセージに適用可能な複数の動作点を規定するシンタックス要素を含み得る。言い換えると、スケーラブルネスティングSEIメッセージは、SEIメッセージをビットストリームサブセット(例えば、動作点表現)に、又は固有レイヤ及びサブレイヤに関連付けるための機構を提供することができる。
【0092】
[0100]このように、ビデオエンコーダ20は、スケーラブルネスティングSEIメッセージによってカプセル化された、ネストされたSEIメッセージが適用される複数の動作点を識別する複数のシンタックス要素を含むスケーラブルネスティングSEIメッセージを生成することができる。更に、ビデオエンコーダ20は、ビットストリーム中でスケーラブルネスティングSEIメッセージを信号伝達することができる。
【0093】
[0101]このように、ビデオデコーダ30又は別の機器は、ビデオコード化プロセスにおいて、スケーラブルネスティングSEIメッセージから、スケーラブルネスティングSEIメッセージによってカプセル化されたネストされたSEIメッセージが適用される動作点を識別する複数のシンタックス要素を復号することができる。更に、ビデオデコーダ30又は他の機器は、ネストされたSEIメッセージのシンタックス要素のうちの1つ又は複数に少なくとも部分的に基づいて動作を実施することができる。
【0094】
[0102]SEIメッセージをネストする既存の技法に伴う問題又は短所の別の例は、SEIメッセージをネストする既存の技法が、現在のSEI NAL単位によってカプセル化された、スケーラブルなネストされたSEIメッセージに適用可能な動作点を決定するのに、現在のSEI NAL単位中のレイヤ識別子シンタックス要素(例えば、nuh_reserved_zero_6bits)の値を使わないことに関する。
【0095】
[0103]本開示の技法は、SEI NAL単位中のネストされたSEIメッセージに適用可能な動作点が、SEI NAL単位のNAL単位ヘッダ中のレイヤ識別情報によって示される動作点であるかどうかを信号伝達する設計を提供する。SEI NAL単位のNAL単位ヘッダ中のレイヤ識別情報は、NAL単位ヘッダの、nuh_reserved_zero_6bitsの値とnuh_temporal_id_plus1の値とを含み得る。言い換えると、本開示の技法は、ネストされたSEIメッセージが、現在のSEI NAL単位のNAL単位ヘッダ中に含まれるレイヤ識別情報によって識別されるデフォルトの動作点に適用されるかどうかの信号伝達による、現在のSEI NAL単位(即ち、スケーラブルネスティングSEIメッセージを含むSEI NAL単位)のNAL単位ヘッダ中のレイヤ識別情報(例えば、nuh_reserved_zero_6bitsの値及びnuh_temporal_id_plus1)の使用のための設計を提供することができる。
【0096】
[0104]このように、ビデオエンコーダ20は、SEI NAL単位によってカプセル化されたスケーラブルネスティングSEIメッセージ中に、スケーラブルネスティングSEIメッセージによってカプセル化された、ネストされたSEIメッセージがデフォルトのサブビットストリームに適用可能であるかどうかを示すシンタックス要素を含め得る。デフォルトのサブビットストリームは、SEI NAL単位のNAL単位ヘッダによって規定されるレイヤ識別子及びNAL単位ヘッダ中で規定される時間識別子によって定義される動作点の動作点表現であり得る。更に、ビデオエンコーダ20は、スケーラブルネスティングSEIメッセージを含むビットストリームを出力することができる。
【0097】
[0105]同様に、ビデオデコーダ30又は別の機器などの機器は、SEI NAL単位によってカプセル化されたスケーラブルネスティングSEIメッセージ中のシンタックス要素に少なくとも部分的に基づいて、スケーラブルネスティングSEIメッセージによってカプセル化された、ネストされたSEIメッセージがデフォルトのサブビットストリームに適用可能であるかどうか決定することができる。前述のように、デフォルトのサブビットストリームは、SEI NAL単位のNAL単位ヘッダによって規定されるレイヤ識別子及びNAL単位ヘッダ中で規定される時間識別子によって定義される動作点の動作点表現であり得る。ネストされたSEIメッセージが、デフォルトのサブビットストリームに適用可能であるとき、機器は、デフォルトのサブビットストリームに対する動作において、ネストされたSEIメッセージを使うことができる。例えば、ネストされたSEIメッセージは、1つ又は複数のHRDパラメータを含み得る。この例では、機器は、1つ又は複数のHRDパラメータを使って、デフォルトのサブビットストリームが、HEVCなどのビデオコード化規格に適合するかどうか決定するビットストリーム適合試験を実施することができる。代替として、この例では、機器は、1つ又は複数のHRDパラメータを使って、ビデオデコーダ30がデコーダ適合試験を満足するかどうか決定することができる。
【0098】
[0106]SEIメッセージのネスティングのための既存の方法の問題又は短所の別の例では、レイヤ識別子の明示的コード化は非効率的である。本開示の技法は、フラグを使う差分コード化又はコード化により、レイヤ識別子の明示的コード化の効率を向上させることができる。
【0099】
[0107]
図2は、本開示の技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。
図2は、説明のために提供されるものであり、本開示で広く例示され説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、HEVCコード化の文脈でビデオエンコーダ20を説明する。しかしながら、本開示の技法は、他のコード化規格又は方法に適用可能であり得る。
【0100】
[0108]
図2の例では、ビデオエンコーダ20は、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、再構成ユニット112と、フィルタユニット114と、復号されたピクチャのバッファ116と、エントロピー符号化ユニット118とを含む。予測処理ユニット100は、インター予測処理ユニット120とイントラ予測処理ユニット126とを含む。インター予測処理ユニット120は、動き推定ユニット122と動き補償ユニット124とを含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、又は異なる機能コンポーネントを含み得る。
【0101】
[0109]ビデオエンコーダ20はビデオデータを受信することができる。ビデオエンコーダ20はビデオデータのピクチャのスライス中の各CTUを符号化することができる。CTUの各々は、等しいサイズのルーマコード化ツリーブロック(CTB:coding tree block)及びピクチャの対応するCTBと関連付けられ得る。CTUの符号化の一部として、予測処理ユニット100は、4分木区分を実行して、CTUのCTBを徐々により小さくなるブロックに分割することができる。より小さいブロックは、CUのコード化ブロックであり得る。例えば、予測処理ユニット100は、CTUと関連付けられるCTBを4つの等しいサイズのサブブロックに区分することができ、サブブロックの1つ又は複数を4つの等しいサイズのサブサブブロックに区分することができ、以下同様である。
【0102】
[0110]ビデオエンコーダ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サイズのための非対称的な区分をサポートすることができる。
【0103】
[0111]インター予測処理ユニット120は、CUの各PUに対してインター予測を実行することによって、PUの予測データを生成することができる。PUの予測データは、PUの予測ブロックとPUの動き情報とを含み得る。インター予測単位120は、PUがIスライス中にあるか、Pスライス中にあるか、又はBスライス中にあるかに応じて、CUのPUに対して異なる動作を実行することができる。Iスライス中では、全てのPUがイントラ予測される。従って、PUがIスライス中にある場合、インター予測処理ユニット120は、PUに対してインター予測を実行しない。従って、Iモードで符号化されたブロックに対して、予測ブロックは、同じフレーム内の前に符号化された隣接ブロックからの空間的予測を使用して形成される。
【0104】
[0112]PUがPスライス中にある場合、動き推定ユニット122は、PUの参照領域のための参照ピクチャのリスト(例えば、「RefPicList0」)中の参照ピクチャを探索し得る。PUの参照領域は、PUのサンプルブロックに最も密接に対応するサンプルブロックを含む参照ピクチャ内の領域であり得る。動き推定ユニット122は、PUの参照領域を含む参照ピクチャのRefPicList0中の位置を示す参照インデックスを生成し得る。加えて、動き推定ユニット122は、PUのコード化ブロックと参照領域と関連付けられる参照位置の間の、空間的な変位を示す動きベクトルを生成し得る。例えば、動きベクトルは現在のピクチャ中の座標から参照ピクチャ中の座標までのオフセットを提供する、2次元ベクトルであり得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット124は、PUの動きベクトルによって示される参照位置における実際のサンプル又は補間されたサンプルに基づいて、PUの予測ブロックを生成し得る。
【0105】
[0113]PUがBスライス中にある場合、動き推定ユニット122は、PUに対して単方向予測又は双方向予測を実行することができる。PUについて単方向予測を実行するために、動き推定ユニット122は、PUの参照領域について、RefPicList0の参照ピクチャ又は第2の参照ピクチャリスト(「RefPicList2」)を探索し得る。動き推定ユニット122は、参照領域を含む参照ピクチャのRefPicList0又はRefPicList1中の位置を示す参照インデックスと、PUの予測ブロックと参照領域と関連付けられる参照位置との間の空間的な変位を示す動きベクトルと、参照ピクチャがRefPicList0の中にあるか、又はRefPicList1の中にあるかを示す1つ又は複数の予測方向インジケータとを、PUの動き情報として出力することができる。動き補償ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプル又は補間されたサンプルに少なくとも一部基づいて、PUの予測ブロックを生成し得る。
【0106】
[0114]動き推定ユニット122は、PUについて双方向インター予測を実行するために、PUの参照領域についてRefPicList0の中の参照ピクチャを探索することができ、PUの別の参照領域についてRefPicList1の中の参照ピクチャを探索することもできる。動き推定ユニット122は、参照領域を含む参照ピクチャのRefPicList0及びRefPicList1の中の位置を示す、参照インデックスを生成し得る。加えて、動き推定ユニット122は、参照領域と関連付けられる参照位置とPUの予測ブロックとの間の空間的な変位を示す動きベクトルを生成することができる。PUの動き情報は、PUの参照インデックスと、動きベクトルとを含み得る。動き補償ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプル又は補間されたサンプルに少なくとも一部基づいて、PUの予測ブロックを生成し得る。
【0107】
[0115]イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PUの予測データを生成することができる。PUの予測データは、PUの予測ブロックと様々なシンタックス要素とを含み得る。イントラ予測処理ユニット126は、Iスライス、Pスライス、及びBスライスの中のPUに対してイントラ予測を実行することができる。
【0108】
[0116]PUに対してイントラ予測を実行するために、イントラ予測処理ユニット126は、複数のイントラ予測モードを使用して、PUの予測データの複数のセットを生成することができる。イントラ予測処理ユニット126は、隣接するPUのサンプルに基づいて、PUの予測ブロックを生成し得る。隣接するPUは、PU、CU、及びCTUについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、又は左にあり得る。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、例えば33個の方向のイントラ予測モードを使用することができる。幾つかの例では、イントラ予測モードの数は、PUの予測ブロックのサイズに依存し得る。
【0109】
[0117]予測処理ユニット100は、PUのためにインター予測処理ユニット120によって生成された予測データ、又はPUのためにイントラ予測処理ユニット126によって生成された予測データの中から、CUのPUの予測データを選択することができる。幾つかの例では、予測処理ユニット100は、予測データのセットのレート/ひずみ測定基準に基づいて、CUのPUの予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれ得る。
【0110】
[0118]残差生成ユニット102は、CUのルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロックならびにCUのPUの選択された予測ルーマブロック、予測Cbブロック、及び予測Crブロックに基づいて、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを生成することができる。例えば、残差生成ユニット102は、残差ブロック中の各サンプルが、CUのコード化ブロック中のサンプルとCUのPUの対応する選択された予測ブロック中の対応するサンプルとの間の差に等しい値を有するように、CUの残差ブロックを生成することができる。
【0111】
[0119]変換処理ユニット104は、4分木区分を実行して、CUの残差ブロックをCUのTUと関連付けられた変換ブロックに区分することができる。従って、TUは、ルーマ変換ブロック及び2つの対応するクロマ変換ブロックと関連付けられ得る。CUのTUのルーマ変換ブロック及びクロマ変換ブロックのサイズ及び位置は、CUのPUの予測ブロックのサイズ及び位置に基づくことも又は基づかないこともある。「残差4分木」(RQT)として知られる4分木構造は、領域の各々と関連付けられたノードを含み得る。CUのTUは、RQTのリーフノードに対応し得る。
【0112】
[0120]変換処理ユニット104は、TUの変換ブロックに1つ又は複数の変換を適用することによって、CUの各TUのための変換係数ブロックを生成することができる。変換処理ユニット104は、TUと関連付けられた変換ブロックに様々な変換を適用し得る。例えば、変換処理ユニット104は、離散コサイン変換(DCT)、方向変換、又は概念的に同様の変換を変換ブロックに適用し得る。幾つかの例において、変換処理ユニット104は変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われ得る。
【0113】
[0121]量子化ユニット106は、係数ブロック中の変換係数を量子化し得る。量子化処理は、変換係数の一部又は全てと関連付けられたビット深度を低減し得る。例えば、量子化の間にnビットの変換係数がmビット変換係数へと切り捨てられてよく、この場合、nはmよりも大きい。量子化ユニット106は、CUと関連付けられた量子化パラメータ(QP)値に基づいてCUのTUと関連付けられた係数ブロックを量子化することができる。ビデオエンコーダ20は、CUと関連付けられたQPの値を調整することによって、CUと関連付けられた係数ブロックに適用される量子化の程度を調整することができる。量子化は情報の損失をもたらすことがあり、従って、量子化された変換係数は、元の係数よりも低い精度を有することがある。
【0114】
[0122]逆量子化ユニット108及び逆変換処理ユニット110は、それぞれ、係数ブロックに逆量子化及び逆変換を適用して、係数ブロックから残差ブロックを再構成し得る。再構成ユニット112は、再構成された残差ブロックを、予測処理ユニット100によって生成された1つ又は複数の予測ブロックからの対応するサンプルに追加して、TUと関連付けられた再構成された変換ブロックを生成し得る。このようにCUの各TUのための変換ブロックを再構成することによって、ビデオエンコーダ20は、CUのコード化ブロックを再構成し得る。
【0115】
[0123]フィルタユニット114は、1つ又は複数のデブロッキング動作を実行して、CUと関連付けられたコード化ブロック中のブロック歪み(blocking artifacts)を低減することができる。復号されたピクチャのバッファ116は、フィルタユニット114が、再構成されたコード化ブロックに対して1回又は複数のデブロッキング動作を実行した後、再構成されたコード化ブロックを記憶し得る。インター予測処理ユニット120は、再構成されたコード化ブロックを含む参照ピクチャを使用して、他のピクチャのPUに対してインター予測を実行し得る。加えて、イントラ予測処理ユニット126は、復号されたピクチャのバッファ116の中の再構成されたコード化ブロックを使用して、CUと同じピクチャの中の他のPUに対してイントラ予測を実行することができる。
【0116】
[0124]エントロピー符号化ユニット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を表すデータを含み得る。
【0117】
[0125]上記のように、本開示の技法は、HRDパラメータシンタックス構造の共通情報が、VPS中のどのHRDパラメータシンタックス構造についても明示的に信号伝達されることを可能にするための設計を提供する。HRDパラメータシンタックス構造の共通情報が、VPS中のどのHRDパラメータについても明示的に信号伝達されることを可能にするために、ビデオエンコーダ20は、下の表3に示される例示的なシンタックスに適合するVPSシンタックス構造を生成すればよい。
【表3A】
【表3B】
【0118】
[0126]表3のイタリック体の部分は、表3のシンタックスと、HEVC Working Draft 8からの対応する表との間の違いを示す。更に、表3の例示的なシンタックスにおいて、num_ops_minus1シンタックス要素は、VPS中に存在するoperation_point()シンタックス構造の数を規定する。hrd_applicable_ops_minus1[i]シンタックス要素は、第iのhrd_parameters()シンタックス構造が適用される動作点の数を規定する。hrd_op_idx[i][j]シンタックス要素は、VPS中の第iのhrd_parameters()シンタックス構造が適用される第jの動作点を規定する。上で簡単に言及したように、本開示の技法は、HRDパラメータの1つのセットが複数の動作点によって共有されることを可能にし得る。hrd_applicable_ops_minus1[i]シンタックス要素及びhrd_op_idx[i][j]は、HRDパラメータのセットが適用される動作点を示すのに役立ち得る。複数の動作点がHRDパラメータの単一のセットに適用可能であることが認められない幾つかの例において、hrd_applicable_ops_minus1[i]シンタックス要素及びhrd_op_idx[i][j]シンタックス要素は、表3から省かれる。
【0119】
[0127]表3の例示的なシンタックスにおいて、VPSは、表3においてcprms_present_flag[i]として示される、共通パラメータセット存在フラグ(即ち、シンタックス要素)を含み得る。1に等しいcprms_present_flag[i]シンタックス要素は、全てのサブレイヤにとって共通するHRDパラメータが、VPS中の第iのhrd_parameters()シンタックス構造中に存在することを規定する。0に等しいcprms_present_flag[i]シンタックス要素は、全てのサブレイヤにとって共通するHRDパラメータが、VPS中の第iのhrd_parameters()シンタックス構造中に存在するとは限らず、代わりに、VPS中の第(i−1)のhrd_parameters()シンタックス構造と同じになるように導出されることを規定する。
【0120】
[0128]cprms_present_flag[0]は、1に等しいと推測され得る。つまり、機器は、VPS中の第1の(コード化順序で)hrd_parameters()シンタックス構造が、全てのサブレイヤにとって共通するHRDパラメータを含むと自動的に決定する(即ち、推測する)ことができる。従って、VPS中で信号伝達される第1のHRDパラメータシンタックス構造は、HRDパラメータの共通セットを含む。VPS中の1つ又は複数の後続のHRDパラメータシンタックス構造は、HRDパラメータの異なる共通セットを含み得る。
【0121】
[0129]上で簡単に言及したように、本開示の技法は、HRDパラメータシンタックス構造の共通情報(即ち、サブレイヤの各々に共通のHRDパラメータ)が、どのHRDパラメータシンタックス構造についても明示的に信号伝達されることを可能にすることができる。表3のcprms_present_flag[i]シンタックス要素は、ビデオデコーダ30又は別の機器が、HRDパラメータシンタックス構造のうちのどれが、サブレイヤの各々に共通のHRDパラメータのセットを含むか決定することを可能にし得る。従って、第1のHRDパラメータシンタックス構造は、HRDパラメータの共通セットを常に含み得るが、VPS中で信号伝達される1つ又は複数のHRDパラメータシンタックス構造は、HRDパラメータの共通セットを含まない。機器は、cprms_present_flag[i]シンタックス要素を使って、VPSのHRDパラメータシンタックス構造のうちのどれがHRDパラメータの共通セットを含むか決定することができる。
【0122】
[0130]HRDパラメータシンタックス構造(例えば、hrd_parameters()シンタックス構造)は、HRDパラメータシンタックス構造が、全てのサブレイヤにとって共通するHRDパラメータを含むかどうかにかかわらず、サブレイヤ固有HRDパラメータのセットを含み得る。ビデオデコーダ30又は別の機器が、特定のHRDパラメータシンタックス構造がHRDパラメータの共通セットを含まないと決定すると、ビデオデコーダ30又は別の機器は、前のHRDパラメータシンタックス構造に関連付けられたHRDパラメータの共通セットと、特定のHRDパラメータシンタックス構造のサブレイヤ固有HRDパラメータのセットとを使って動作を実施することができる。前のHRDパラメータシンタックス構造は、コード化順序で、特定のHRDパラメータシンタックス構造の前に、VPS中で信号伝達されたHRDパラメータのセットであり得る。前のHRDパラメータシンタックス構造がHRDパラメータの共通セットを含む場合、前のHRDパラメータシンタックス構造に関連付けられたHRDパラメータの共通セットは、前のHRDパラメータシンタックス構造中に含まれるHRDパラメータの共通セットである。前のHRDパラメータシンタックス構造がHRDパラメータの共通セットを含まない場合、機器は、前のHRDパラメータシンタックス構造に関連付けられたHRDパラメータの共通セットが、コード化順序で、前のHRDパラメータシンタックス構造にコード化順序で先立つHRDパラメータシンタックス構造に関連付けられたHRDパラメータの共通セットであると決定してよい。
【0123】
[0131]上述したように、機器は、HRDパラメータの共通セットとサブレイヤ固有HRDパラメータとを使って動作を実施することができる。この動作中、機器は、HRDパラメータのうちの1つ又は複数に従ってCPBの動作を管理し、ビデオデータを復号し、復号されたピクチャを、HRDパラメータのうちの1つ又は複数に従ってDPB中で管理することができる。別の例では、HRDパラメータの共通セット及びサブレイヤ固有HRDパラメータは、ビットストリーム適合試験又はデコーダ適合試験を実施するのに使うことができる。
【0124】
[0132]更に、幾つかの例において、スケーラブルネスティングSEIメッセージが、SEIメッセージをビットストリームサブセット(例えば、動作点表現)に、又は固有レイヤ及びサブレイヤに関連付けるための機構を提供する。幾つかのそのような例において、スケーラブルネスティングSEIメッセージは、1つ又は複数のSEIメッセージを含み得る。スケーラブルネスティングSEIメッセージ中に含まれるSEIメッセージは、ネストされたSEIメッセージと呼ばれ得る。スケーラブルネスティングSEIメッセージ中に含まれないSEIメッセージは、ネストされていないSEIメッセージと呼ばれ得る。幾つかの例において、スケーラブルネスティングSEIメッセージ中のネストされたSEIメッセージは、HRDパラメータのセットを含み得る。
【0125】
[0133]幾つかの例では、どのタイプのメッセージがネストされ得るかに対して、幾つかの制限がある。例えば、バッファリング期間SEIメッセージ及び他のどのタイプのSEIメッセージも、同じスケーラブルネスティングSEIメッセージ中にネストされなくてよい。バッファリング期間SEIメッセージは、HRD動作についての初期遅延を示すことができる。別の例では、ピクチャタイミングSEIメッセージ及び他のどのタイプのSEIメッセージも、同じスケーラブルネスティングSEIメッセージ中にネストされなくてよい。ピクチャタイミングSEIメッセージは、HRD動作についてのピクチャ出力時間とピクチャ/サブピクチャ除去時間とを示すことができる。他の例では、ピクチャタイミングSEIメッセージ及びサブピクチャタイミングSEIメッセージは、同じスケーラブルネスティングSEIメッセージ中にネストされてよい。サブピクチャタイミングSEIメッセージは、SEIメッセージに関連付けられた復号ユニットについてのCPB除去遅延情報を提供することができる。
【0126】
[0134]上記のように、本開示の1つ又は複数の技法は、1つのSEIメッセージが複数の動作点に適用されることを可能にし得る。更に、本開示の1つ又は複数の技法は、SEI NAL単位中のネストされたSEIメッセージに適用可能な動作点が、SEI NAL単位のNAL単位ヘッダ中のレイヤ識別情報によって示される動作点であるかどうかを、ビデオエンコーダ20が信号伝達することを可能にし得る。更に、本開示の1つ又は複数の技法は、差分コード化により、レイヤ識別子の明示的コード化の効率を向上させることができる。下の表4に示される例示的なシンタックス、及びそれに伴うセマンティクスが、これらの技法を実装することができる。
【表4】
【0127】
[0135]表4の例において、イタリック体の部分は、HEVC Working Draft 8との違いを示し得る。具体的には、表4の例示的なシンタックスにおいて、0に等しいbitstream_subset_flagシンタックス要素は、スケーラブルネスティングSEIメッセージ中にネストされたSEIメッセージが、固有レイヤ及びサブレイヤに適用されることを規定する。1に等しいbitstream_subset_flagシンタックス要素は、スケーラブルネスティングSEIメッセージ中にネストされたSEIメッセージが、以下で規定されるスケーラブルネスティングSEIメッセージのシンタックス要素によって規定される入力を用いる、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は、ビットストリーム抽出処理のパラメータである。幾つかの例において、ネストされたSEIメッセージが、ピクチャバッファリングSEIメッセージ、ピクチャタイミングSEIメッセージ又はサブピクチャタイミングSEIメッセージである場合、bitstream_subset_flagシンタックス要素は1に等しい。そうでない場合、そのような例において、bitstream_subset_flagシンタックス要素は0に等しい。
【0128】
[0136]更に、表4の例示的なシンタックスにおいて、bitstream_subset_flagシンタックス要素が1に等しい場合、スケーラブルネスティングSEIメッセージは、default_op_applicable_flagシンタックス要素を含む。1に等しいdefault_op_applicable_flagシンタックス要素は、ネストされたSEIメッセージ(即ち、スケーラブルネスティングSEIメッセージ内にネストされたSEIメッセージ)が、現在のSEI NAL単位の時間識別子(TemporalId)に等しい入力tIdTargetと、両端値を含む、現在のSEI NAL単位の0〜nuh_reserved_zero_6bitsの範囲内のnuh_reserved_zero_6bitsの全ての値からなるtargetDecLayerIdSetとを用いる、HEVC Working Draft 8のサブクローズ10.1のサブビットストリーム抽出プロセスの出力であるデフォルトのサブビットストリームに適用されることを規定する。従って、デフォルトのサブビットストリームは、現在のSEI NAL単位の時間識別子よりも大きい時間識別子又は両端値を含む、現在のSEI NAL単位の0から、レイヤ識別子(例えば、nuh_reserved_zero_6bits)の範囲内のレイヤ識別子をもつ全てのNAL単位を、ビットストリームから除去することによって導出されるビットストリームであり得る。例えば、デフォルトのサブビットストリームはビットストリームのサブセットであってよく、デフォルトのサブビットストリームは、NAL単位ヘッダのレイヤ識別子シンタックス要素によって示されるレイヤ識別子よりも大きいレイヤ識別子を有する、又はNAL単位ヘッダの時間レイヤ識別子シンタックス要素によって示される時間識別子(例えば、nuh_temporal_id_plus1)よりも大きい時間識別子を有する、ビットストリームのVCL NAL単位を含まなくてよい。0に等しいdefault_op_applicable_flagシンタックス要素は、ネストされたSEIメッセージが、デフォルトのサブビットストリームに適用されないことを規定する。
【0129】
[0137]表4の例示的なシンタックスにおいて、bitstream_subset_flagシンタックス要素が1に等しい場合、スケーラブルネスティングSEIメッセージは、nesting_num_ops_minus1シンタックス要素を含む。nesting_num_ops_minus1シンタックス要素に1を加えたものは、スケーラブルネスティングSEIメッセージ中のnesting_op_idx[i]シンタックス要素の数を規定する。従って、nesting_num_ops_minus1シンタックス要素に1を加えたものが0よりも大きい場合、nesting_num_ops_minus1シンタックス要素は、スケーラブルネスティングSEIメッセージが、ネストされたSEIメッセージが適用可能である複数の動作点を識別する複数のシンタックス要素を含むかどうかを示し得る。このように、機器は、スケーラブルネスティングSEIメッセージから、ネストされたSEIメッセージが適用される動作点の数を示すシンタックス要素(nesting_num_ops_minus1)を復号することができる。nesting_num_ops_minus1シンタックス要素が存在しないとき、nesting_num_ops_minus1の値は、0に等しいと推測され得る。従って、bitstream_subset_flagシンタックス要素が0に等しい場合、スケーラブルネスティングSEIメッセージは、どのnesting_op_idx[i]シンタックス要素も含まない。
【0130】
[0138]0に等しいnesting_op_flagシンタックス要素は、nestingLayerIdSet[0]がall_layers_flagシンタックス要素、及び存在するときは、両端値を含む、0〜nesting_num_layers_minus1の範囲内の全ての値iについてのnesting_layer_id_delta[i]シンタックス要素によって規定されると規定する。nestingLayerIdSet[]シンタックス要素は、レイヤ識別子のアレイである。1に等しいnesting_op_flagシンタックス要素は、nestingLayerIdSet[i]がnesting_op_idx[i]シンタックス要素によって規定されると規定する。存在しないとき、nesting_op_flagの値は1に等しいと推測される。
【0131】
[0139]nesting_max_temporal_id_plus1[i]シンタックス要素は、変数maxTemporalId[i]を規定する。表4の例示的なシンタックスにおいて、nesting_max_temporal_id_plus1[i]シンタックス要素の値は、現在のSEI NAL単位(即ち、スケーラブルなネストされたSEIメッセージを含むNAL単位)のnuh_temporal_id_plus1シンタックス要素の値よりも大きい。変数maxTemporalId[i]は、nesting_max_temporal_id_plus1[i]−1に等しく設定される。
【0132】
[0140]nesting_op_idx[i]シンタックス要素は、セットnestingLayerIdSet[i]を規定するのに使われる。セットnestingLayerIdSet[i]は、iの全ての値が、両端値を含む0〜op_num_layer_id_values_minus1[nesting_op_idx]の範囲内であるop_layer_id[nesting_op_idx][i]からなり得る。アクティブなVPSは、op_layer_id[][]及びop_num_layer_values_minus1[]値を規定し得る。
【0133】
[0141]更に、表4の例示的なシンタックスにおいて、0に等しいall_layers_flagシンタックス要素は、セットnestingLayerIdSet[0]が、両端値を含む0〜nesting_num_layers_minus1の範囲内の全ての値iについてのnestingLayerId[i]からなると規定する。変数nestingLayerId[i]については、後で説明する。1に等しいall_layers_flagシンタックス要素は、セットnestingLayerIdSetが、現在のSEI NAL単位のnuh_reserved_zero_6bits以上の、現在のアクセス単位に存在するnuh_reserved_zero_6bitsの全ての値からなると規定する。
【0134】
[0142]nesting_num_layers_minus1シンタックス要素に1を加えたものは、スケーラブルネスティングSEIメッセージ中のnesting_layer_id_delta[i]シンタックス要素の数を規定する。nesting_layer_id_delta[i]シンタックス要素は、iが0に等しいとき、セットnestingLayerIdSet[0]中に含まれる最初の(即ち、第0の)nuh_reserved_zero_6bits値と、現在のSEI NAL単位のnuh_reserved_zero_6bitsシンタックス要素との間の違いを規定する。nesting_layer_id_delta[i]シンタックス要素は、iが0よりも大きいとき、セットnestingLayerIdSet[0]中に含まれる第iと第(i−1)とのnuh_reserved_zero_6bits値の間の違いを規定する。
【0135】
[0143]変数nestingLayerId[i]は、次のように導出することができ、ここでnuh_reserved_zero_6bitsは、現在のSEI NAL単位のNAL単位ヘッダからのものである。
【0136】
nestingLayerId[ 0 ] = nuh_reserved_zero_6bits + nesting_layer_id_delta[ 0 ]
for( i = 1; i <= nesting_num_layers_minus1; i++)
nestingLayerId[ i ] = nestingLayerId[ i − 1 ] + nesting_layer_id_delta[ i ]
セットnestingLayerIdSet[0]は、両端値を含む0〜nesting_num_layers_minus1の範囲内の全てのi値についてのnestingLayerId[i]からなるように設定される。bitstream_subset_flagシンタックス要素が0に等しいとき、ネストされたSEIメッセージは、セットnestingLayerIdSet[0]中に含まれるか、又は現在のSEI NAL単位のnuh_reserved_zero_6bitsに等しいnuh_reserved_zero_6bitsをもつとともに、両端値を含む、現在のSEI NAL単位のnuh_temporal_id_plus1〜maxTemporalId[0]+1の範囲内のnuh_temporal_id_plus1をもつNAL単位に適用される。bitstream_subset_flagシンタックス要素が1に等しいとき、ネストされたSEIメッセージは、両端値を含む0〜nesting_num_ops_minus1の範囲内の各i値についてのmaxTemporalId[i]に等しい入力tIdTarget及びnestingLayerIdSet[i]に等しいtargetDecLayerIdSetを伴う、HEVC Working Draft 8のサブクローズ10.1のサブビットストリーム抽出プロセスの出力に適用され、default_op_applicable_flagシンタックス要素が1に等しいとき、ネストされたSEIメッセージは、デフォルトのサブビットストリームにも適用される。抽出されたサブビットストリームは、maxTemporalId[i]よりも大きい時間識別子又は0〜nesting_num_ops_minus1の範囲内のレイヤ識別子をもつ全てのNAL単位を除去することから生じ得る。
【0137】
[0144]このように、ネストされたSEIメッセージが適用される複数の動作点における少なくとも1つのそれぞれの動作点について、機器(例えば、ビデオエンコーダ20、ビデオデコーダ30、又はコンテンツ配信ネットワーク機器など、別の機器)は、スケーラブルネスティングSEIメッセージから、第1のシンタックス要素(例えば、nesting_max_temporal_id_plus1[i])と第2のシンタックス要素(例えば、nesting_op_idx[i])とを復号することができる。更に、機器は、第1のシンタックス要素に少なくとも部分的に基づいて、それぞれの動作点の最大時間識別子を決定することができる。機器は、第2のシンタックス要素に少なくとも部分的に基づいて、それぞれの動作点のレイヤ識別子のセットを決定することができる。
【0138】
[0145]表4の例において、nesting_zero_bitシンタックス要素は0に等しい。nesting_zero_bitシンタックス要素は、スケーラブルネスティングSEIメッセージがバイト整合されることを保証するのに役立ち得る。スケーラブルネスティングSEIメッセージは、スケーラブルネスティングSEIメッセージ中のビットの数が8で割り切れるとき、バイト整合され得る。
【0139】
[0146]更に、表4の例において、sei_message()シンタックス構造は、SEIメッセージを含む。従って、機器は、スケーラブルネスティングSEIメッセージから、スケーラブルネスティングSEIメッセージによってカプセル化された複数のネストされたSEIメッセージを復号することができる。ネストされたSEIメッセージの各々は、複数のシンタックス要素(例えば、nesting_max_temporal_id_plus1[i]、nesting_op_idx[i]など)によって識別される動作点全てに適用可能であり得る。
【0140】
[0147]代替的な例では、スケーラブルネスティングSEIメッセージは、下の表5の例示的なシンタックスに適合し得る。表5の例示的なシンタックスにおいて、スケーラブルネスティングSEIメッセージは、本開示の1つ又は複数の技法によると、コード化フラグの使用により、レイヤ識別子の明示的コード化の効率を向上させることができる。
【表5】
【0141】
[0148]表5の例において、イタリック体の部分は、HEVC Working Draft 8との違いを示し得る。表5に示すように、bitstream_subset_flagシンタックス要素、default_op_applicable_flagシンタックス要素、nesting_num_ops_minus1シンタックス要素、nesting_max_temporal_id_plus1シンタックス要素、nesting_op_idx[i]シンタックス要素、及びnesting_zero_bitシンタックス要素は、表4に関して上述したのと同じセマンティクスを有し得る。
【0142】
[0149]更に、表5の例において、変数minLayerIdは、nuh_reserved_zero_6bits+1に等しく設定され、ここでnuh_reserved_zero_6bitsは、現在のSEI NAL単位のNAL単位ヘッダからのものである。0に等しいnesting_op_flagシンタックス要素は、セットnestingLayerIdSet[0]がall_layers_flagシンタックス要素、及び存在するときには、両端値を含む0〜nesting_max_layer_id−minLayerId−1の範囲内の全ての値iについてのnesting_layer_id_included_flag[i]によって規定されると規定する。1に等しいnesting_op_flagシンタックス要素は、セットnestingLayerIdSet[i]がnesting_op_idx[i]シンタックス要素によって規定されると規定する。nesting_op_flagシンタックス要素が存在しないとき、nesting_op_flagの値は1に等しいと推測される。
【0143】
[0150]表5の例において、0に等しいall_layers_flagシンタックス要素は、セットnestingLayerIdSet[0]が、両端値を含む0〜nesting_max_layer_id−minLayerIdの範囲内の全てのi値についてのnestingLayerId[i]からなると規定する。nestingLayerId[i]変数については、後で説明する。表5の例において、1に等しいall_layers_flagは、セットnestingLayerIdSetが、現在のSEI NAL単位のnuh_reserved_zero_6bitsシンタックス要素以上である、現在のアクセス単位中に存在するnuh_reserved_zero_6bitsの全ての値からなると規定する。
【0144】
[0151]更に、表5の例において、nesting_max_layer_idシンタックス要素は、セットnestingLayerIdSet[0]中のnuh_reserved_zero_6bitsの最も大きい値を規定する。1に等しいnesting_layer_id_included_flag[i]シンタックス要素は、i+minLayerIdに等しいnuh_reserved_zero_6bitsの値が、セットnestingLayerIdSet[0]に含まれると規定する。0に等しいnesting_layer_id_included_flag[i]シンタックス要素は、i+minLayerIdに等しいnuh_reserved_zero_6bitsの値が、セットnestingLayerIdSet[0]に含まれないと規定する。
【0145】
[0152]変数nestingNumLayersMinus1及び両端値を含む0〜nestingNumLayersMinus1の範囲内のiについての変数nestingLayerId[i]は、次のように導出することができる。
【0146】
for( i = 0, j = 0; i < nesting_max_layer_id; i++ )
if( nesting_layer_id_incuded_flag[ i ] )
nestingLayerId[ j++ ] = i + minLayerId
nestingLayerId[ j ] = nesting_max_layer_id
nestingNumLayersMinus1 = j
セットnestingLayerIdSet[0]は、両端値を含む0〜nestingNumLayersMinus1の範囲内の全てのi値についてのnestingLayerId[i]からなるように設定され得る。
【0147】
[0153]bitstream_subset_flagシンタックス要素が0に等しいとき、ネストされたSEIメッセージは、セットnestingLayerIdSet[0]中に含まれるか、又は現在のSEI NAL単位のnuh_reserved_zero_6bitsシンタックス要素に等しいnuh_reserved_zero_6bitsをもつとともに、両端値を含む、現在のSEI NAL単位のnuh_temporal_id_plus1からmaxTemporalId[0]+1の範囲内のnuh_temporal_id_plus1シンタックス要素をもつNAL単位に適用することができる。
【0148】
[0154]スケーラブルなネストされたSEIメッセージのbitstream_subset_flagシンタックス要素が1に等しいとき、ネストされたSEIメッセージは、maxTemporalId[i]に等しい入力tIdTarget、及び両端値を含む0〜nesting_num_ops_minus1の範囲内の各i値についてのnestingLayerIdSet[i]に等しいtargetDecLayerIdSetを伴う、サブクローズ10.1のサブビットストリーム抽出プロセスの出力に適用することができ、default_op_applicable_flagが1に等しいとき、ネストされたSEIメッセージは、デフォルトのサブビットストリームにも適用される。
【0149】
[0155]
図3は、本開示の技法を実装するために構成された例示的なビデオデコーダ30を示すブロック図である。
図3は、説明のために提供されるものであり、本開示において広く例示され説明される技法を限定するものではない。説明の目的で、本開示は、HEVCコード化の文脈においてビデオデコーダ30を説明する。しかしながら、本開示の技法は、他のコード化規格又は方法に適用可能であり得る。
【0150】
[0156]
図3の例では、ビデオデコーダ30は、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構成ユニット158と、フィルタユニット160と、復号されたピクチャのバッファ162とを含む。予測処理ユニット152は、動き補償ユニット164と、イントラ予測処理ユニット166とを含む。他の例では、ビデオデコーダ30は、より多数の、より少数の、又は異なる機能コンポーネントを含み得る。
【0151】
[0157]コード化されたピクチャのバッファ(CPB)151は、ビットストリームの符号化されたビデオデータ(例えば、NAL単位)を受け取り、記憶することができる。エントロピー復号ユニット150は、CPB 151からNAL単位を受け取り、NAL単位を解析してシンタックス要素を復号することができる。エントロピー復号ユニット150は、NAL単位中のエントロピー符号化されたシンタックス要素をエントロピー復号することができる。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構成ユニット158、及びフィルタユニット160は、ビットストリームから抽出されたシンタックス要素に基づいて復号されたビデオデータを生成することができる。
【0152】
[0158]ビットストリームのNAL単位は、コード化されたスライスNAL単位を含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット150は、コード化されたスライスNAL単位からシンタックス要素を抽出し、エントロピー復号することができる。コード化されたスライスの各々は、スライスヘッダと、スライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。スライスヘッダ中のシンタックス要素は、スライスを含むピクチャと関連付けられたPPSを特定するシンタックス要素を含み得る。
【0153】
[0159]ビットストリームからのシンタックス要素を復号することに加えて、ビデオデコーダ30は、区分されていないCUに対して再構成動作を実行することができる。区分されていないCUに対して再構成動作を実行するために、ビデオデコーダ30は、CUの各TUに対して再構成動作を実行することができる。CUの各TUに対して再構成動作を実行することによって、ビデオデコーダ30は、CUの残差サンプルブロックを再構成することができる。
【0154】
[0160]CUのTUに対して再構成動作を実行することの一部として、逆量子化ユニット154は、TUと関連付けられた係数ブロックを逆量子化(inverse quantize)、即ち逆量子化(de-quantize)することができる。逆量子化ユニット154は、TUのCUと関連付けられたQP値を使用して、量子化の程度を決定することができ、同様に、逆量子化ユニット154が適用すべき逆量子化の程度を決定することができる。即ち、圧縮比、即ち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比はまた、利用されたエントロピーコード化の方法に依存し得る。
【0155】
[0161]逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、TUと関連付けられた残差ブロックを生成するために、係数ブロックに1つ又は複数の逆変換を適用することができる。例えば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向性変換、又は別の逆変換を、係数ブロックに適用することができる。
【0156】
[0162]PUがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット166は、イントラ予測を実行して、PUの予測ブロックを生成することができる。イントラ予測処理ユニット166は、イントラ予測モードを使用して、空間的に隣接するPUの予測ブロックに基づいて、PUの予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。イントラ予測処理ユニット166は、ビットストリームから復号された1つ又は複数のシンタックス要素に基づいて、PUのイントラ予測モードを決定することができる。
【0157】
[0163]予測処理ユニット152は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを構築することができる。更に、PUがインター予測を使用して符号化される場合、エントロピー復号ユニット150は、PUの動き情報を抽出することができる。動き補償ユニット164は、PUの動き情報に基づいて、PUの1つ又は複数の参照領域を決定することができる。動き補償ユニット164は、PUの1つ又は複数の参照ブロックにおけるサンプルブロックに基づいて、PUの予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。
【0158】
[0164]再構成ユニット158は、適用可能な場合、CUのTUと関連付けられたルーマ変換ブロック、Cb変換ブロック、及びCr変換ブロックと、CUのPUの予測ルーマブロック、予測Cbブロック、及び予測Crブロックとを使用して、即ち、イントラ予測データ又はインター予測データのいずれかを使用して、CUのルーマコード化ブロックと、Cbコード化ブロックと、Crコード化ブロックとを再構成することができる。例えば、再構成ユニット158は、ルーマ変換ブロック、Cb変換ブロック、及びCr変換ブロックのサンプルを予測ルーマブロック、予測Cbブロック、及び予測Crブロックの対応するサンプルに加算して、CUのルーマコード化ブロックと、Cbコード化ブロックと、Crコード化ブロックとを再構成することができる。
【0159】
[0165]フィルタユニット160は、CUのルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロックと関連付けられたブロック歪みを低減するためにデブロッキング動作を実行し得る。ビデオデコーダ30は、CUのルーマコード化ブロックと、Cbコード化ブロックと、Crコード化ブロックとを復号されたピクチャのバッファ162に記憶することができる。復号されたピクチャのバッファ162は、後続の動き補償、イントラ予測、及び
図1の表示装置32のような表示装置上での提示のために、参照ピクチャを提供することができる。例えば、ビデオデコーダ30は、復号されたピクチャのバッファ162中のルーマブロック、Cbブロック、及びCrブロックに基づいて、他のCUのPUに対してイントラ予測動作又はインター予測動作を実行し得る。ビデオデコーダ30は、このようにして、有意ルーマ係数ブロックの変換係数レベルをビットストリームから抽出し、変換係数レベルを逆量子化し、変換係数レベルに変換を適用して変換ブロックを生成し、変換ブロックに少なくとも部分的に基づいてコード化ブロックを生成し、コード化ブロックを表示のために出力することができる。
【0160】
[0166]
図4は、本開示の1つ又は複数の技法によるビデオエンコーダ20の例示的な動作200を示すフローチャートである。
図4の例において、ビデオエンコーダ20は、HRDパラメータを各々が含む複数のHRDパラメータシンタックス構造を含むVPSを生成することができる(202)。複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、VPSは、それぞれのHRDパラメータシンタックス構造のHRDパラメータが、ビットストリームの特定のサブレイヤに固有のサブレイヤ固有HRDパラメータ情報のセットに加えて、HRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含み、ここでHRDパラメータの共通セットは、ビットストリームの全てのサブレイヤに共通である。更に、ビデオエンコーダ20は、ビットストリーム中でVPSを信号伝達することができる(204)。
【0161】
[0167]
図5は、本開示の1つ又は複数の技法による、機器の例示的な動作250を示すフローチャートである。動作250は、ビデオエンコーダ20、ビデオデコーダ30、又は別の機器によって実行され得る。
図5の例に示されるように、機器は、ビットストリームから、HRDパラメータを各々が含む複数のHRDパラメータシンタックス構造を含むVPSを復号することができる(252)。複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、VPSは、それぞれのHRDパラメータシンタックス構造のHRDパラメータが、HRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含む。
【0162】
[0168]更に、他の機器は、HRDパラメータシンタックス構造のうちの少なくとも1つの、HRDパラメータを使って動作を実施することができる(254)。幾つかの例において、ビットストリームは、特定の動作点の動作点表現を備えることができ、特定のHRDパラメータシンタックス構造は、その特定の動作点に適用可能であってよく、機器は、特定のHRDパラメータシンタックス構造のHRDパラメータを使って動作を実施することができる。例えば、機器は、HRDパラメータを使って、HRDパラメータシンタックス構造に適用可能な動作点が、HEVCなどのビデオコード化規格に適合するかどうか決定するビットストリーム適合試験を実施することができる。別の例では、機器は、HRDパラメータを使って、デコーダ適合試験を実施することができる。
【0163】
[0169]HRDパラメータの共通セットは、ビットストリームの全てのサブレイヤに共通であり得る。幾つかの例において、各HRDパラメータシンタックス構造のHRDパラメータは、ビットストリームの特定のサブレイヤに固有の、サブレイヤ固有HRDパラメータのセットを含む。幾つかの例において、サブレイヤ固有HRDパラメータのセットの各々は、シンタックス要素を含む(例えば、出力順序で、任意の2つの連続するピクチャのHRD出力時間の間の時間距離を示す、コード化されたビデオシーケンスのビットストリーム中の、幾つかの代替的なコード化されたピクチャバッファ仕様を示すシンタックス要素。幾つかの例において、機器が、特定のHRDパラメータシンタックス構造がHRDパラメータの共通セットを含まないと決定すると、機器は、前のHRDパラメータシンタックス構造に関連付けられたHRDパラメータの共通セットと、特定のHRDパラメータシンタックス構造のサブレイヤ固有HRDパラメータのセットとを使って動作を実施することができる。
【0164】
[0170]
図6は、本開示の1つ又は複数の技法によるビデオエンコーダ20の例示的な動作300を示すフローチャートである。
図6の例に示すように、ビデオエンコーダ20は、スケーラブルネスティングSEIメッセージによってカプセル化された、ネストされたSEIメッセージが適用される複数の動作点を識別する複数のシンタックス要素を含むスケーラブルネスティングSEIメッセージを生成することができる(302)。更に、ビデオエンコーダ20は、ビットストリーム中でスケーラブルネスティングSEIメッセージを信号伝達することができる(304)。
【0165】
[0171]
図7は、本開示の1つ又は複数の技法による、機器の例示的な動作350を示すフローチャートである。ビデオエンコーダ20、ビデオデコーダ30、又は別の機器が、動作350を実施することができる。
図7の例に示されるように、機器は、スケーラブルネスティングSEIメッセージから、スケーラブルネスティングSEIメッセージによってカプセル化された、ネストされたSEIメッセージが適用される複数の動作点を識別する複数のシンタックス要素を復号することができる(352)。幾つかの例において、機器は、スケーラブルネスティングSEIメッセージから、スケーラブルネスティングSEIメッセージが、動作点を識別する複数のシンタックス要素を含むかどうかを示すシンタックス要素(例えば、nesting_num_ops_minus1)を復号することができる
[0172]更に、機器は、ネストされたSEIメッセージの1つ又は複数のシンタックス要素を使って、ネストされたSEIメッセージが適用される動作点のうちのいずれかに関する動作を実施することができる(354)。例えば、機器は、ネストされたSEIメッセージが適用される動作点のうちのいずれかが、HEVCなどのビデオコード化規格に適合するかどうか決定するビットストリーム適合試験において、ネストされたSEIメッセージのシンタックス要素を使うことができる。別の例では、機器は、ネストされたSEIメッセージのシンタックス要素を使って、デコーダ適合試験を実施することができる。
【0166】
[0173]
図8は、本開示の1つ又は複数の技法によるビデオエンコーダ20の例示的な動作400を示すフローチャートである。
図8の例に示されるように、ビデオエンコーダ20は、SEI NAL単位によってカプセル化されたスケーラブルネスティングSEIメッセージ中に、スケーラブルネスティングSEIメッセージによってカプセル化された、ネストされたSEIメッセージがデフォルトのサブビットストリームに適用可能であるかどうかを示すシンタックス要素(例えば、default_op_applicable_flag)を含めることができる(402)。デフォルトのサブビットストリームは、SEI NAL単位のNAL単位ヘッダによって規定されるレイヤ識別子及びNAL単位ヘッダ中で規定される時間識別子によって定義される動作点の動作点表現である。NAL単位ヘッダ中の第1のシンタックス要素(例えば、nuh_reserved_zero_6bits)はレイヤ識別子を示すことができ、NAL単位ヘッダ中の第2のシンタックス要素(例えば、nuh_reserved_temporal_id_plus1)は時間識別子を示すことができる。
【0167】
[0174]
図8の例において、ビデオエンコーダ20は、スケーラブルネスティングSEIメッセージ中に、追加動作点の時間識別子と追加動作点の最大レイヤ識別子とを識別する1つ又は複数の追加シンタックス要素を含めることができる(404)。更に、ビデオエンコーダ20は、ビットストリーム中でスケーラブルネスティングSEIメッセージを信号伝達することができる(406)。幾つかの例において、スケーラブルネスティングSEIメッセージによってカプセル化された、ネストされたSEIメッセージがデフォルトのサブビットストリームに適用可能であるかどうかを示すシンタックス要素は、第1のシンタックス要素と呼ぶことができ、ビデオエンコーダ20は、第2のシンタックス要素(例えば、bitstream_subset_flag)をスケーラブルネスティングSEIメッセージに含めることができる。第2のシンタックス要素は、スケーラブルネスティングSEIメッセージによってカプセル化された、ネストされたSEIメッセージがビットストリームから抽出されたサブビットストリームに適用されるかどうか、又はネストされたSEIメッセージがビットストリームの固有レイヤ及びサブレイヤに適用されるかどうかを示すことができる。ビデオエンコーダ20は、ネストされたSEIメッセージがビットストリームから抽出されたサブビットストリームに適用されることを第2のシンタックス要素が示すときのみ、第1のシンタックス要素を含めることができる。
【0168】
[0175]
図9は、本開示の1つ又は複数の技法による、機器の例示的な動作450を示すフローチャートである。ビデオエンコーダ20、ビデオデコーダ30、又は別の機器が、動作450を実施することができる。
図9の例に示されるように、機器は、スケーラブルネスティングSEIメッセージの第1のシンタックス要素(例えば、bitstream_subset_flag)に少なくとも部分的に基づいて、スケーラブルネスティングSEIメッセージによってカプセル化された、ネストされたSEIメッセージが、ビットストリームから抽出されたサブビットストリームに適用されるかどうか決定することができる(452)。スケーラブルネスティングSEIメッセージによってカプセル化された、ネストされたSEIメッセージがビットストリームから抽出されたサブビットストリームに適用されると決定したこと(452のYES)に応答して、機器は、スケーラブルネスティングSEIメッセージ中のデフォルトの動作点シンタックス要素(例えば、default_op_applicable_flag)を復号することができる(454)。デフォルトの動作点シンタックス要素は、スケーラブルネスティングSEIメッセージによってカプセル化された、ネストされたSEIメッセージがデフォルトのサブビットストリームに適用可能であるかどうかを示すことができる。
【0169】
[0176]デフォルトのサブビットストリームは、SEI NAL単位のNAL単位ヘッダによって規定されるレイヤ識別子及びNAL単位ヘッダ中で規定される時間識別子によって定義される動作点の動作点表現であり得る。幾つかの例では、NAL単位ヘッダ中の第1のシンタックス要素(例えば、nuh_reserved_zero_6bits)はレイヤ識別子を示し、NAL単位ヘッダ中の第2のシンタックス要素(例えば、nuh_reserved_temporal_id_plus1)は時間識別子を示す。デフォルトのサブビットストリームはビットストリームのサブセットであってよく、デフォルトのサブビットストリームは、NAL単位ヘッダの第1のシンタックス要素によって示されるレイヤ識別子よりも大きいレイヤ識別子を有するか、又はNAL単位ヘッダの第2のシンタックス要素によって示される時間識別子よりも大きい時間識別子を有する、ビットストリームのVCL NAL単位を含まない。
【0170】
[0177]更に、機器は、SEI NAL単位によってカプセル化されたスケーラブルネスティングSEIメッセージ中のシンタックス要素(例えば、default_op_applicable_flag)に少なくとも部分的に基づいて、ビットストリームのスケーラブルネスティングSEIメッセージによってカプセル化された、ネストされたSEIメッセージがデフォルトのサブビットストリームに適用可能であるかどうか決定することができる(456)。幾つかの例において、スケーラブルネスティングSEIメッセージは、複数のネストされたSEIメッセージをカプセル化する。そのような例において、機器は、シンタックス要素(例えば、default_op_applicable_flag)に基づいて、スケーラブルネスティングSEIメッセージ中のネストされたSEIメッセージの各々がデフォルトのサブビットストリームに適用可能であるかどうか決定することができる。
【0171】
[0178]ネストされたSEIメッセージが、デフォルトのサブビットストリームに適用可能であるとき(456の「YES」)、機器は、デフォルトのサブビットストリームに対する動作において、ネストされたSEIメッセージを使うことができる(458)。例えば、ネストされたSEIメッセージは、HRDパラメータのセットを含み得る。この例では、機器は、ネストされたSEIメッセージ中のHRDパラメータを、デフォルトのサブビットストリームがHEVCなどのビデオコード化規格に適合するかどうかを試験する動作において使うことができる。別の例では、機器は、ネストされたSEIメッセージ中のHRDパラメータを、デコーダ適合試験において使うことができる。別の例では、機器は、ネストされたSEIメッセージを、デフォルトのサブビットストリームに対する復号動作において使うことができる。別の例では、初期CPB除去遅延が、適切な初期エンドツーエンドの遅延をセットアップするよう、システムを誘導するのに使われてよく、DPB出力時間は、ビデオがRTPを介してトランスポートされるとき、RTPタイムスタンプを導出するのに使われてよい。
【0172】
[0179]そうではなく、ネストされたSEIメッセージがデフォルトのサブビットストリームに適用可能でないとき(456のNO)又はスケーラブルネスティングSEIメッセージが、ビットストリームから抽出されたサブビットストリームに適用されないとき(452のNO)、機器は、デフォルトのサブビットストリームに対する動作において、ネストされたSEIメッセージを使わない(460)。例えば、機器は、スケーラブルネスティングSEIメッセージ中の1つ又は複数の追加シンタックス要素(例えば、nesting_max_temporal_id_plus1[i]、nesting_op_idx[i]など)に基づいて、第2の動作点の時間識別子と第2の動作点の最大レイヤ識別子とを決定することができる。この例では、機器は、ネストされたSEIメッセージを、追加サブビットストリームに対する動作において使うことができ、追加サブビットストリームは第2の動作点の動作点表現である。
【0173】
[0180]1つ又は複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つ又は複数の命令又はコードとしてコンピュータ可読媒体上に記憶されてよく、又はコンピュータ可読媒体を介して送信されてよく、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ可読記憶媒体、又は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形なコンピュータ可読記憶媒体、又は、(2)信号又は搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法を実装するための命令、コード及び/又はデータ構造を取り出すために、 1つ又は複数のコンピュータ、若しくは1つ又は複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0174】
[0181]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−RO又は他の光ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶装置、フラッシュメモリ、又は、命令若しくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備え得る。同様に、いかなる接続も厳密にはコンピュータ可読媒体と称される。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモート発信源から送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びBlu−ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0175】
[0182]命令は、1つ又は複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、又は他の等価な統合された論理回路若しくは個別の論理回路のような、1つ又は複数のプロセッサによって実行され得る。従って、本明細書で使用される「プロセッサ」という用語は、前述の構造、又は本明細書で説明された技法の実装に好適な他の構造のいずれかを指し得る。加えて、幾つかの態様では、本明細書で説明された機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内で与えられてよく、又は複合コーデックに組み込まれてよい。また、本技法は、1つ又は複数の回路又は論理要素中で完全に実装され得る。
【0176】
[0183]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実装され得る。本開示では、開示された技法を実行するために構成された機器の機能的な側面を強調するために、様々なコンポーネント、モジュール、又はユニットが説明されたが、それらのコンポーネント、モジュール、又はユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、コーデックハードウェアユニットにおいて組み合わせられてよく、又は、上で説明された1つ又は複数のプロセッサを含む、相互動作するハードウェアユニットの集合によって与えられてよい。
【0177】
[0184]様々な例が説明されてきた。これら及び他の例は、以下の特許請求の範囲内にある。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] ビデオデータを復号する方法であって、符号化されたビデオビットストリームから、仮想参照デコーダ(HRD)パラメータを各々が含む複数のHRDパラメータシンタックス構造を含むビデオパラメータセット(VPS)を復号することと、ここにおいて、前記複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、前記VPSは、前記それぞれのHRDパラメータシンタックス構造の前記HRDパラメータがHRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含み、ここにおいて、前記HRDパラメータの共通セットは、前記符号化されたビデオビットストリームの全てのサブレイヤに共通である、前記HRDパラメータシンタックス構造のうちの少なくとも1つの前記HRDパラメータを使って動作を実施することとを備える方法。
[2] 特定のHRDパラメータシンタックス構造がHRDパラメータの共通セットを含まないと決定することを更に備え、ここにおいて、前記HRDパラメータシンタックス構造のうちの少なくとも1つの前記HRDパラメータを使って前記動作を実施することは、前のHRDパラメータシンタックス構造に関連付けられたHRDパラメータの共通セットと、前記特定のHRDパラメータシンタックス構造の追加HRDパラメータとを使って前記動作を実施することを備える、[1]に記載の方法。
[3] 前記VPS中で信号伝達される前記第1のHRDパラメータシンタックス構造は、第1のHRDパラメータの共通セットを含む、[1]に記載の方法。
[4] 前記VPS中で信号伝達される後続のHRDパラメータシンタックス構造は、第2の、異なるHRDパラメータの共通セットを含む、[3]に記載の方法。
[5] 前記VPS中で信号伝達される少なくとも1つのHRDパラメータシンタックス構造は、HRDパラメータの共通セットを含まない、[3]に記載の方法。
[6] 前記HRDパラメータシンタックス構造の各々は、前記符号化されたビデオビットストリームの動作点に適用可能である、[1]に記載の方法。
[7] 前記HRDパラメータシンタックス構造のうちの少なくとも1つは、前記符号化されたビデオビットストリームの複数の動作点に適用可能である、[1]に記載の方法。
[8] 1つ又は複数のプロセッサを備えるビデオ復号機器であって、前記プロセッサは、符号化されたビデオビットストリームから、仮想参照デコーダ(HRD)パラメータを各々が含む複数のHRDパラメータシンタックス構造を含むビデオパラメータセット(VPS)を復号し、ここにおいて、前記複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、前記VPSは、前記それぞれのHRDパラメータシンタックス構造の前記HRDパラメータがHRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含み、ここにおいて、前記HRDパラメータの共通セットは、前記符号化されたビデオビットストリームの全てのサブレイヤに共通である、前記HRDパラメータシンタックス構造のうちの少なくとも1つの前記HRDパラメータを使って動作を実施するように構成される、ビデオ復号機器。
[9] 前記1つ又は複数のプロセッサは、特定のHRDパラメータシンタックス構造がHRDパラメータの共通セットを含まないと決定し、前のHRDパラメータシンタックス構造に関連付けられたHRDパラメータの共通セットと、前記特定のHRDパラメータシンタックス構造の追加HRDパラメータとを使って前記動作を実施するように更に構成される、[8]に記載のビデオ復号機器。
[10] 前記VPS中で信号伝達される前記第1のHRDパラメータシンタックス構造は、第1のHRDパラメータの共通セットを含む、[8]に記載のビデオ復号機器。
[11] 前記VPS中で信号伝達される後続のHRDパラメータシンタックス構造は、第2の、異なるHRDパラメータの共通セットを含む、[10]に記載のビデオ復号機器。
[12] 前記VPS中で信号伝達される少なくとも1つのHRDパラメータシンタックス構造は、HRDパラメータの共通セットを含まない、[10]に記載のビデオ復号機器。
[13] 前記HRDパラメータシンタックス構造の各々は、前記符号化されたビデオビットストリームの動作点に適用可能である、[8]に記載のビデオ復号機器。
[14] 前記HRDパラメータシンタックス構造のうちの少なくとも1つは、前記符号化されたビデオビットストリームの複数の動作点に適用可能である、[8]に記載のビデオ復号機器。
[15] 符号化されたビデオビットストリームから、仮想参照デコーダ(HRD)パラメータを各々が含む複数のHRDパラメータシンタックス構造を含むビデオパラメータセット(VPS)を復号するための手段と、ここにおいて、前記複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、前記VPSは、前記それぞれのHRDパラメータシンタックス構造の前記HRDパラメータがHRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含み、ここにおいて、前記HRDパラメータの共通セットは、前記符号化されたビデオビットストリームの全てのサブレイヤに共通である、前記HRDパラメータシンタックス構造のうちの少なくとも1つの前記HRDパラメータを使って動作を実施するための手段とを備えるビデオ復号機器。
[16] 前記VPS中で信号伝達される前記第1のHRDパラメータシンタックス構造は、第1のHRDパラメータの共通セットを含み、前記VPS中で信号伝達される後続のHRDパラメータシンタックス構造は、第2の、異なるHRDパラメータの共通セットを含み、前記HRDパラメータシンタックス構造の各々は、前記符号化されたビデオビットストリームの動作点に適用可能である、[15]に記載のビデオ復号機器。
[17] 命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、ビデオ復号機器によって実行されると、前記ビデオ復号機器を、符号化されたビデオビットストリームから、仮想参照デコーダ(HRD)パラメータを各々が含む複数のHRDパラメータシンタックス構造を含むビデオパラメータセット(VPS)を復号し、ここにおいて、前記複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、前記VPSは、前記それぞれのHRDパラメータシンタックス構造の前記HRDパラメータがHRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含み、ここにおいて、前記HRDパラメータの共通セットは、前記符号化されたビデオビットストリームの全てのサブレイヤに共通である、前記HRDパラメータシンタックス構造のうちの少なくとも1つの前記HRDパラメータを使って動作を実施するように構成する、コンピュータ可読記憶媒体。
[18] 前記VPS中で信号伝達される前記第1のHRDパラメータシンタックス構造は、第1のHRDパラメータの共通セットを含み、前記VPS中で信号伝達される後続のHRDパラメータシンタックス構造は、第2の、異なるHRDパラメータの共通セットを含み、前記HRDパラメータシンタックス構造の各々は、前記符号化されたビデオビットストリームの動作点に適用可能である、[17]に記載のコンピュータ可読記憶媒体。
[19] ビデオデータを符号化する方法であって、仮想参照デコーダ(HRD)パラメータを各々が含む複数のHRDパラメータシンタックス構造を含むビデオパラメータセット(VPS)を生成することと、ここにおいて、前記複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、前記VPSは、符号化されたビデオビットストリームの特定のサブレイヤに固有のサブレイヤ固有HRDパラメータ情報のセットに加えて、前記それぞれのHRDパラメータシンタックス構造の前記HRDパラメータがHRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含み、ここにおいて、前記HRDパラメータの共通セットは、前記符号化されたビデオビットストリームの全てのサブレイヤに共通である、前記符号化されたビデオビットストリーム中で前記VPSを信号伝達することとを備える方法。
[20] 前記VPS中で信号伝達される前記第1のHRDパラメータシンタックス構造は、第1のHRDパラメータの共通セットを含む、[19]に記載の方法。
[21] 前記VPS中で信号伝達される後続のHRDパラメータシンタックス構造は、第2の、異なるHRDパラメータの共通セットを含む、[20]に記載の方法。
[22] 前記VPS中で信号伝達される少なくとも1つのHRDパラメータシンタックス構造は、HRDパラメータの共通セットを含まない、[20]に記載の方法。
[23] 1つ又は複数のプロセッサを備えるビデオ符号化機器であって、前記1つ又は複数のプロセッサは、仮想参照デコーダ(HRD)パラメータを各々が含む複数のHRDパラメータシンタックス構造を含むビデオパラメータセット(VPS)を生成し、ここにおいて、前記複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、前記VPSは、符号化されたビデオビットストリームの特定のサブレイヤに固有のサブレイヤ固有HRDパラメータ情報のセットに加えて、前記それぞれのHRDパラメータシンタックス構造の前記HRDパラメータがHRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含み、ここにおいて、前記HRDパラメータの共通セットは、前記符号化されたビデオビットストリームの全てのサブレイヤに共通である、前記符号化されたビデオビットストリーム中で前記VPSを信号伝達するように構成される、ビデオ符号化機器。
[24] 前記VPS中で信号伝達される前記第1のHRDパラメータシンタックス構造は、第1のHRDパラメータの共通セットを含む、[23]に記載のビデオ符号化機器。
[25] 前記VPS中で信号伝達される後続のHRDパラメータシンタックス構造は、第2の、異なるHRDパラメータの共通セットを含む、[24]に記載のビデオ符号化機器。
[26] 前記VPS中で信号伝達される少なくとも1つのHRDパラメータシンタックス構造は、HRDパラメータの共通セットを含まない、[24]に記載のビデオ符号化機器。
[27] 仮想参照デコーダ(HRD)パラメータを各々が含む複数のHRDパラメータシンタックス構造を含むビデオパラメータセット(VPS)を生成するための手段と、ここにおいて、前記複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、前記VPSは、符号化されたビデオビットストリームの特定のサブレイヤに固有のサブレイヤ固有HRDパラメータ情報のセットに加えて、前記それぞれのHRDパラメータシンタックス構造の前記HRDパラメータがHRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含み、ここにおいて、前記HRDパラメータの共通セットは、前記符号化されたビデオビットストリームの全てのサブレイヤに共通である、前記符号化されたビデオビットストリーム中で前記VPSを信号伝達するための手段とを備えるビデオ符号化機器。
[28] 前記VPS中で信号伝達される前記第1のHRDパラメータシンタックス構造は、第1のHRDパラメータの共通セットを含み、前記VPS中で信号伝達される後続のHRDパラメータシンタックス構造は、第2の、異なるHRDパラメータの共通セットを含み、前記HRDパラメータシンタックス構造の各々は、前記符号化されたビデオビットストリームの動作点に適用可能である、[27]に記載のビデオ符号化機器。
[29] 命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、ビデオ符号化機器によって実行されると、前記ビデオ符号化機器を、仮想参照デコーダ(HRD)パラメータを各々が含む複数のHRDパラメータシンタックス構造を含むビデオパラメータセット(VPS)を生成し、ここにおいて、前記複数のHRDパラメータシンタックス構造中のそれぞれのHRDパラメータシンタックス構造について、前記VPSは、前記符号化されたビデオビットストリームの特定のサブレイヤに固有のサブレイヤ固有HRDパラメータ情報のセットに加えて、前記それぞれのHRDパラメータシンタックス構造の前記HRDパラメータがHRDパラメータの共通セットを含むかどうかを示すシンタックス要素を更に含み、ここにおいて、前記HRDパラメータの共通セットは、前記符号化されたビデオビットストリームの全てのサブレイヤに共通である、前記符号化されたビデオビットストリーム中で前記VPSを信号伝達するように構成する、コンピュータ可読記憶媒体。
[30] 前記VPS中で信号伝達される前記第1のHRDパラメータシンタックス構造は、第1のHRDパラメータの共通セットを含み、前記VPS中で信号伝達される後続のHRDパラメータシンタックス構造は、第2の、異なるHRDパラメータの共通セットを含み、前記HRDパラメータシンタックス構造の各々は、前記符号化されたビデオビットストリームの動作点に適用可能である、[29]に記載のコンピュータ可読記憶媒体。