[0024]本開示では、廃棄されたリーディングピクチャを有するランダムアクセスポイント(RAP)ピクチャについてビデオデコーダにおいてバッファリング動作を制御するための様々な技法について説明する。本技法は、関連するランダムアクセススキップドリーディング(RASL)アクセスユニットが廃棄された、クリーンランダムアクセス(CRA:clean random access)または切断リンクアクセス(BLA:broken link access)ピクチャを含んでいる中間アクセスユニット(AU:access unit)にわたって適用され得る、改善された仮想参照デコーダ(HRD)動作をサポートし得る。CRAピクチャは、Iスライスのみを含んでおり、復号順序でビットストリーム中の第1のピクチャであり得るか、またはビットストリーム中の後のほうに現れ得る。CRAピクチャは、関連するRADLまたはRASLピクチャを有することがある。CRAピクチャが復号順序でビットストリーム中の第1のピクチャであるとき、CRAピクチャは復号順序でコード化ビデオシーケンスの第1のピクチャであり、関連するRASLピクチャは、それらが、ビットストリーム中に存在しないピクチャへの参照を含んでいることがあるので、デコーダによって出力されず、復号可能でないことがある。BLAピクチャは、Iスライスのみを含んでおり、復号順序でビットストリーム中の第1のピクチャであり得るか、またはビットストリーム中の後のほうに現れ得る。各BLAピクチャは、新しいコード化ビデオシーケンスを開始し、復号プロセスに対してIDRピクチャと同じ効果を有する。ただし、BLAピクチャは、空でない参照ピクチャセットを指定するシンタックス要素を含んでいる。RASLピクチャは、関連するBLAまたはCRAピクチャのリーディングピクチャである。すべてのRASLピクチャは、関連するBLAまたはCRAピクチャのリーディングピクチャである。関連するRAPピクチャが、BLAピクチャであるか、またはビットストリーム中の第1のコード化ピクチャであるとき、RASLピクチャは、ビットストリーム中に存在しないピクチャへの参照を含んでいることがあるので、RASLピクチャは、出力されず、正しく復号可能でないことがある。RASLピクチャは、非RASLピクチャの復号プロセスのための参照ピクチャとして使用されない。存在するとき、すべてのRASLピクチャは、同じ関連するRAPピクチャのすべての末尾ピクチャに復号順序で先行する。
[0025]ビデオコーディング規格は、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と、それのスケーラブルビデオコーディング(SVC:Scalable Video Coding)およびマルチビュービデオコーディング(MVC:Multiview Video Coding)拡張を含む(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264とを含む。
[0026]さらに、ITU−Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのジョイントコラボレーションチームオンビデオコーディング(JCT−VC:Joint Collaboration Team on Video Coding)によって開発された新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)がある。以下でHEVC WD9と呼ぶ、HEVCのワーキングドラフト(WD)、Brossら、「High Efficiency Video Coding (HEVC) text specification draft 9」は、2013年1月7日現在、http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v13.zipから入手可能である。
[0027]「HEVC Working Draft 10」または「WD10」と呼ばれる、HEVC規格の最近のドラフトは、http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zipからダウンロード可能である、ドキュメントJCTVC−L1003v34、Brossら、「High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call)」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオンビデオコーディング(JCT−VC:Joint Collaborative Team on Video Coding)、第12回会合、ジュネーブ、スイス、2013年1月14〜23日に記載されている。
[0028]本明細書で「WD10リビジョン」と呼ばれる、HEVC規格の別のドラフトは、2013年6月7日現在、http://phenix.int-evry.fr/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC-M0432-v3.zipから入手可能である、Brossら、「Editors’ proposed corrections to HEVC version 1」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)、第13回会合、仁川、韓国、2013年4月に記載されている。
[0029]HEVCの規格化の取り組みは、HEVCテストモデル(HM:HEVC Test Model)と呼ばれるビデオコーディングデバイスのモデルに基づく。HMは、他の以前のビデオコーディング規格、たとえば、ITU−T H.264/AVCの開発中に利用可能なビデオコーディングデバイスに対する現在のビデオコーディングデバイスの能力の改善を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HEVCは35個ものイントラ予測符号化モードを提供する。HEVC WD9およびHEVC WD10の内容全体が参照により本明細書に組み込まれる。
[0030]ビデオコーディング規格は、一般にビデオバッファリングモデルの仕様を含む。AVCおよびHEVCでは、バッファリングモデルは、コード化ピクチャバッファ(CPB)と復号ピクチャバッファ(DPB:decoded picture buffer)の両方のバッファリングモデルを含む仮定参照デコーダ(HRD)と呼ばれる。CPB挙動およびDPB挙動は数学的に指定される。HRDは、異なるタイミング、バッファサイズおよびビットレートに直接制約を課し、ビットストリーム特性および統計に間接的に制約を課す。HRDパラメータの完全セットは、初期CPB削除遅延、CPBサイズ、ビットレート、初期DPB出力遅延、およびDPBサイズという5つの基本パラメータを含む。
[0031]AVCおよびHEVCでは、ビットストリームコンフォーマンスおよびデコーダコンフォーマンスがHRD仕様の一部として指定される。HRDはデコーダと呼ばれるが、HRD仕様は、一般に、ビットストリームコンフォーマンスを保証するためにエンコーダ側で必要とされる。2つのタイプのビットストリームまたはHRDコンフォーマンス、すなわち、タイプIおよびタイプIIが指定される。さらに、2つのタイプのデコーダコンフォーマンス(出力タイミングデコーダコンフォーマンスおよび出力順序デコーダコンフォーマンス)が指定される。
[0032]HRDは、一般に、ランダムアクセスポイント(RAP)ピクチャにおいて初期化される。HEVCとAVCの両方では、HRDが初期化されると、それは、再初期化なしにビットストリームの終了まで動作し続ける。
[0033]HEVC WD9では、HRDがCRAまたはBLAアクセスユニットにおいて初期化する場合(この初期アクセスユニットはアクセスユニット0と呼ばれる)、アクセスユニット0に関連するRASLアクセスユニットが存在するかどうかに応じて、初期アクセスユニット0に関連するデフォルト初期CPB削除遅延および遅延オフセットまたは代替初期CPB削除遅延および遅延オフセットのいずれかが、HRD動作において使用されるように選定される。アクセスユニット0に関連するRASLアクセスユニットが存在しない場合、たとえばビデオデコーダによって、代替初期CPB削除遅延および遅延オフセットが選定され、そうでない(すなわち、アクセスユニット0に関連するRASLアクセスユニットが存在する)場合、たとえばビデオデコーダによって、デフォルト初期CPB削除遅延および遅延オフセットが選定される。初期CPB削除遅延および遅延オフセットの選定されたセットは、次いで、たとえば、ビットストリームの終了までビデオデコーダによって使用される。
[0034]その内容全体が参照により本明細書に組み込まれる、2012年10月30日に出願された米国特許公開第2013/0107953号、公開日2013年5月2日には、以下の方法が記載されている。各CRAアクセスユニットのためのCPB削除遅延オフセットがシグナリングされ得る。HRDがそのような(アクセスユニット0とも呼ばれる)CRAアクセスユニットにおいて初期化し、関連するRASLピクチャが存在しない場合、復号順序でCRAアクセスユニットに後続するアクセスユニットの各々のCPB削除時間がCPB削除遅延オフセットだけより前にシフトされる。
[0035]HEVC WD9に記載されているHRD技法は以下の問題を呈する。第1に、存在する場合、ビットストリーム中で復号順序でアクセスユニット0に後続するすべてのCRAまたはBLAアクセスユニットが、存在するそれらの関連するRASLアクセスユニットを有する場合に、初期CPB削除遅延および遅延オフセットの選定されたセットが適用されると仮定する。HEVC WD9の現在の技法は、ビットストリーム中で復号順序でアクセスユニット0に後続し、関連するRASLアクセスユニットが存在しない、CRAまたはBLAアクセスユニットがない場合のみ、正しく動作するであろう。しかしながら、ビットストリーム中に存在するそのようなCRAまたはBLAアクセスユニットがある場合、CPBは第1のそのようなCRAまたはBLAアクセスユニットの後にオーバーフローし得、したがって予期しない復号結果が生じ得る。
[0036]同様に、存在する場合、ビットストリーム中で復号順序でアクセスユニット0に後続するすべてのCRAまたはBLAアクセスユニットが、存在するそれらの関連するRASLアクセスユニットを有しない場合に、初期CPB削除遅延および遅延オフセットの選定されたセットが適用されると仮定する。HEVC WD9の現在の技法は、ビットストリーム中で復号順序でアクセスユニット0に後続するCRAまたはBLAアクセスユニットがなく、アクセスユニット0のための関連するRASLアクセスユニットが存在する場合のみ、正しく動作し、ビットストリーム中に存在するそのようなCRAまたはBLAアクセスユニットがある場合、正しく動作しないであろう。HEVC WD9のために提案された技法の下で、これは、存在する場合、ビットストリーム中で復号順序でアクセスユニット0に後続するすべてのCRAまたはBLAアクセスユニットが、存在するそれらの関連するRASLアクセスユニットを有しない場合に、初期CPB削除遅延および遅延オフセットの選定されたセットが適用されるとき、任意のCRAまたはBLAアクセスユニットに適用される。
[0037]初期CPB削除遅延および遅延オフセットの選定されたセットに関する他の仮定も不正確な復号を生じ得る。たとえば、アクセスユニット0に後続するいくつかのCRAまたはBLAアクセスユニットが、存在するそれらの関連するRASLアクセスユニットを有し、アクセスユニット0に後続する他のCRAまたはBLAアクセスユニットが、存在するそれらの関連するRASLアクセスユニットを有しない状況も、後続のCRAまたはBLAアクセスユニットのための関連するRASLアクセスユニットの存在および不在に関する仮定が成り立たない限り、正しく復号しないことがある。
[0038]場合によっては、CPB削除遅延オフセットは、アクセスユニット0に関連するRASLアクセスユニットの廃棄により、アクセスユニット0に後続するアクセスユニットのためのCPB削除時間のみを補償することができる。ビットストリーム中に存在する、復号順序でアクセスユニット0に後続し、関連するRASLアクセスユニットが廃棄された、1つまたは2つ以上のCRAまたはBLAアクセスユニットがある場合、CPBは第1のそのようなCRAまたはBLAアクセスユニットの後にオーバーフローし得、したがって予期しない復号結果が生じ得る。
[0039]HEVC WD9における方法に関連する別の問題は以下の通りである。現在、アクセスユニット(AU)0がCRA AUまたはBLA AUであるとき、関連するRASL AUが存在する場合、デフォルト初期CPB削除遅延および遅延オフセットが使用され、そうでない場合、代替初期CPB削除遅延および遅延オフセットが使用される。しかしながら、初期CPB削除遅延および遅延オフセットの変更は、AU0の(公称)復号時間と、復号順序でAU0に後続する第1の非RASL AUの(公称)復号時間との間の持続時間を変更しない。たとえば、復号順序でAU0の直後に10個のRASLピクチャがあり、その直後に元のビットストリーム中の末尾ピクチャがあったと仮定する。この状況では、CPB削除時間は、各AUについて公称CPB削除時間に等しく、元のビットストリームが復号されるとき、任意の2つの連続するAUの復号時間間の持続時間は1クロックティックである。HEVC WD9によれば、RASLピクチャが廃棄されるかどうかにかかわらず、AU0の復号時間と第1の末尾ピクチャの復号時間との間の持続時間は同じ(11クロックティック)であろう。したがって、復号は、元のビットストリームについては連続的であるが、RASLピクチャが廃棄されるときには連続的でない。
[0040]これらの問題に鑑みて、本開示は、ビデオバッファリングを改善する(たとえば、HEVC WD9のHRDを改善する)ための様々な方法および技法を提供する。様々な例についてHEVC WD9に関して説明する。特に言及されていないHRD技法は、HEVC WD9または他のHEVC仕様において現在指定されているものと同じであると仮定され得る。
[0041]本開示の一例では、各CRAまたはBLAアクセスユニットのためのCPB削除遅延オフセットがビデオエンコーダによってシグナリングされる。関連するRASLピクチャが存在しない各CRAまたはBLAアクセスユニットについて、HRD(たとえば、ビデオデコーダ)がCRAまたはBLAアクセスユニットにおいて初期化するかどうかにかかわらず、ビデオデコーダは、復号順序でCRAまたはBLAアクセスユニットに後続するアクセスユニットの各々のCPB削除時間をCPB削除遅延オフセットだけより前にシフトする。一例では、オフセットは累積オフセットであり得る。そのようなオフセットは、復号順序でCRAまたはBLAアクセスユニットに後続するアクセスユニットの各々のCPB削除時間を累積量だけより前にシフトするために適用され得る。さらに、各「消失したRASLピクチャ」によるオフセットが同等であるとき、オフセットはピクチャ当たりのオフセットであり得る。そのような例では、オフセットは消失したピクチャの数を乗算され得る。アクセスユニット0のための代替初期CPB削除遅延および遅延オフセットとデフォルト初期CPB削除遅延および遅延オフセットとの間の選択は、HEVC WD9の場合と同様の方法で実行され得る。別の例では、アクセスユニット0のためのデフォルト初期CPB削除遅延および遅延オフセットが常に選定され(すなわち、ビデオデコーダによって常に使用され)、したがって、CRAまたはBLAアクセスユニットのための代替初期CPB削除遅延および遅延オフセットは、サブピクチャレベルCPBパラメータが存在し、その上、代替初期CPB削除遅延および遅延オフセットがサブピクチャレベルHRD動作のためのものでない限り、エンコーダによってシグナリングされない。
[0042]ビデオデータを処理する例示的な方法では、デコーダは、ランダムアクセスポイント(RAP)ピクチャを有する第1のアクセスユニットをビデオビットストリーム中で受信し得る。デコーダはまた、RAPピクチャを有するアクセスユニットの後に、RAPピクチャを有する1つまたは複数の後続のアクセスユニットを受信し得る。たとえば、デコーダは、1つまたは複数のCRAまたはBLAピクチャを受信し得る。1つまたは複数の後続のアクセスユニットの後続のアクセスユニットのための1つまたは複数のRASLピクチャが受信されたビットストリーム中に存在しない場合に、デコーダは、ピクチャバッファ削除遅延オフセットに基づいて、コード化ピクチャバッファ(CPB)のためのピクチャバッファ削除時間をより前にシフトし得る。上述のように、ピクチャバッファ削除遅延オフセットは、[これがどのように取得または選択されるかを再び記載する]であり得る。
[0043]ビデオデータを処理する別の例示的な方法では、デコーダは、RAPピクチャを有するアクセスユニットを受信し得、ここにおいて、RASLピクチャを含んでいる関連するアクセスユニットが受信されない。デコーダは、アクセスユニットを受信することと、RASLピクチャを含んでいる関連するアクセスユニットを受信しないこととに応答して、ピクチャバッファ削除時間とピクチャバッファ削除遅延オフセットとを初期化し得る。
[0044]本開示の別の例では、HRDは、ビデオデコーダが、関連するRASLアクセスユニットが存在しない各CRAまたはBLAアクセスユニットにおいて初期化または再初期化することを指定する。ピクチャバッファ削除遅延オフセットに基づいてピクチャバッファ削除時間をより前にシフトすることに関係する上記の例では、そのような初期化または再初期化は必要でないことがある。
[0045]図1は、本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されているように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
[0046]宛先デバイス14は、リンク16を介して復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク16は、ソースデバイス12が、符号化ビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
[0047]代替的に、符号化データは、出力インターフェース22からストレージデバイス34に出力され得る。同様に、符号化データは、入力インターフェース28によってストレージデバイス34からアクセスされ得る。ストレージデバイス34は、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス34は、ソースデバイス12によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイス34から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。ストレージデバイス34からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
[0048]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0049]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。
[0050]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化ビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのためにストレージデバイス34上に記憶され得る。
[0051]AVCおよびHEVCでは、ビットストリームコンフォーマンスおよびデコーダコンフォーマンスがHRD仕様の一部として指定される。HRDは、一般に、ビットストリームコンフォーマンスを保証するためにビデオエンコーダ20側で必要とされるが、一般にデコーダ側では必要とされない。2つのタイプのビットストリームまたはHRDコンフォーマンス、すなわち、タイプIおよびタイプIIが指定される。さらに、出力タイミングデコーダコンフォーマンスおよび出力順序デコーダコンフォーマンスという2つのタイプのデコーダコンフォーマンスが指定される。
[0052]宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信され、またはストレージデバイス34上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダが使用するためのビデオエンコーダ20によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバ上に記憶される符号化ビデオデータに含まれ得る。
[0053]ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
[0054]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としてはMPEG−2およびITU−T H.263がある。
[0055]図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP:user datagram protocol)などの他のプロトコルに準拠し得る。
[0056]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0057]上記で説明したように、JCT−VCはHEVC規格を開発した。HEVCの規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスのモデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供し得る。
[0058]概して、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU:largest coding unit)に分割され得ることを記述する。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木(quadtree)に従ってコーディングユニット(CU)に分割され得る。たとえば、4分木のルートノードとしてのツリーブロックは、4つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを含む。コード化ビットストリームに関連するシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
[0059]CUは、コーディングノードと、コーディングノードに関連する予測ユニット(PU:prediction unit)および変換ユニット(TU:transform unit)とを含む。CUのサイズは、概して、コーディングノードのサイズに対応し、一般に、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから最大64×64以上のピクセルをもつツリーブロックのサイズまでに及び得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUに関連するシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかの間で異なり得る。PUは、形状が非正方形になるように区分され得る。CUに関連するシンタックスデータは、たとえば、4分木に従って、CUを1つまたは複数のTUに区分することも記述し得る。TUは、形状が正方形または非正方形であり得る。
[0060]HEVC規格は、CUごとに異なり得るTUに従う変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、一般に、PUと同じサイズであるかまたはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用してより小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、変換されて変換係数が生成され得、その変換係数は量子化され得る。
[0061]概して、PUは、予測プロセスに関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUについてのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述し得る。
[0062]概して、TUは、変換プロセスと量子化プロセスとのために使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数の変換ユニット(TU)をも含み得る。予測に続いて、ビデオエンコーダ20は、PUに従ってコーディングノードによって識別されたビデオブロックから残差値を計算し得る。コーディングノードは、次いで、元のビデオブロックではなく残差値を参照するように更新される。残差値はピクセル差分値を備え、ピクセル差分値は、エントロピーコーディングのためのシリアル化変換係数(serialized transform coefficient)を生成するためにTU中で指定された変換と他の変換情報とを使用して変換係数に変換され、量子化され、走査され得る。コーディングノードは、これらのシリアル化変換係数を参照するように、もう一度更新され得る。本開示では、一般に、CUのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示では、コーディングノードならびにPUおよびTUを含む、ツリーブロック、すなわち、LCUまたはCUを指すためにも「ビデオブロック」という用語を使用し得る。
[0063]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP:group of pictures)は、概して、一連の1つまたは複数のビデオピクチャを含む。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックはCU内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。
[0064]一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測をサポートし、2N×2N、2N×N、N×2N、またはN×Nの対称的なPUサイズでのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、または「Right」という表示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
[0065]本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用され得る。概して、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、概して、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、ただし、Nは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはN×Mピクセルを備え得、ただし、Mは必ずしもNに等しいとは限らない。
[0066]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUによって指定された変換が適用される残差データを計算し得る。残差データは、符号化されていないピクチャのピクセルと、CUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを形成し、次いで、残差データを変換して、変換係数を生成し得る。
[0067]変換係数を生成するための任意の変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ただし、nはmよりも大きい。
[0068]いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は適応走査を実施し得る。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC:context adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング、または別のエントロピー符号化方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
[0069]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢シンボル(more probable symbol)に対応し、より長いコードが劣勢シンボル(less probable symbol)に対応するように構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0070]いくつかの例では、宛先デバイス14は、ビデオデータを処理する方法を実装し得る。たとえば、ビデオデコーダ30は、RAPピクチャを有するアクセスユニットを受信し得る。ビデオデコーダはまた、RAPピクチャを有するアクセスユニットの後に1つまたは複数の後続のアクセスユニットを受信し得る。1つまたは複数の後続のアクセスユニットの後続のアクセスユニットが、関連するRASLピクチャを有しない場合、ビデオデコーダ30は、ピクチャバッファ削除遅延オフセットに基づいて、ピクチャバッファ削除時間をより前にシフトする。たとえば、バッファリング期間SEIメッセージは、CPB遅延オフセット値、たとえば、i番目のCPBについて、使用されるべきオフセットを指定するcpb_delay_offset[i]を含み得る。オフセットは、たとえば、CRAまたはBLAアクセスユニットに関連するRASLアクセスユニットが存在しないとき、復号順序で、バッファリング期間SEIメッセージに関連するCRAまたはBLAアクセスユニットに後続するアクセスユニットの公称CPB削除時間の導出において使用され得る。シンタックス要素は、au_cpb_removal_delay_length_minus1+1によって与えられるビットでの長さを有し得、たとえば、90kHzクロックの単位であり得る。
[0071]他の例では、宛先デバイス14は、ビデオデータを処理する別の方法を実装し得る。たとえば、ビデオデコーダ30は、RAPピクチャを有するアクセスユニットを受信し得、ここにおいて、ランダムアクセススキップドリーディング(RASL)ピクチャを含んでいる関連するアクセスユニットが受信されない。ビデオデコーダ30は、アクセスユニットを受信することと、RASLピクチャを含んでいる関連するアクセスユニットを受信しないこととに応答して、ピクチャバッファ削除時間とピクチャバッファ削除遅延オフセットとを初期化し得る。
[0072]別の例では、ビデオデコーダ30は、RAPピクチャを有するアクセスユニットを受信し得、ここにおいて、RASLピクチャを含んでいる関連するアクセスユニットが受信されない。ビデオデコーダ30はまた、アクセスユニットを受信することと、RASLピクチャを含んでいる関連するアクセスユニットを受信しないこととに応答して、ピクチャバッファ削除時間とピクチャバッファ削除遅延オフセットとを初期化し得る。
[0073]図2は、本開示で説明する技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)(登録商標)は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。
[0074]図2の例では、ビデオエンコーダ20は、区分ユニット35と、予測処理ユニット41と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図2に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。追加のループフィルタ(ループ内またはループ後)もデブロッキングフィルタに加えて使用され得る。
[0075]図2に示されているように、ビデオエンコーダ20はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。この区分は、たとえば、LCUおよびCUの4分木構造に応じて、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分をも含み得る。ビデオエンコーダ20は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示している。スライスは、複数のビデオブロックに(および、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、誤差結果(たとえば、コーディングレートおよびひずみレベル)に基づいて現在ビデオブロックのために、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に与え得る。
[0076]予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して現在ビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対して現在ビデオブロックのインター予測コーディングを実行する。
[0077]動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをPスライスまたはBスライスに指定し得る。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
[0078]予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに関して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
[0079]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0080]動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを伴い得る。現在ビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0081]イントラ予測処理ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのひずみおよびレートから比を計算し得る。
[0082]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信ビットストリーム中に、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを含め得る。
[0083]予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して、現在ビデオブロックのための予測ブロックを生成した後に、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT:discrete cosine transform)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
[0084]変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
[0085]量子化に続いて、エントロピー符号化ユニット56は量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングあるいは別のエントロピー符号化方法または技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ30に送信されるか、あるいはビデオデコーダ30が後で送信するかまたは取り出すためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コード化されている現在ビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
[0086]逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算して、(復号ピクチャバッファ(DPB)と呼ばれることがある)参照ピクチャメモリ64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
[0087]上記で説明したように、AVCおよびHEVCでは、ビットストリームコンフォーマンスおよびデコーダコンフォーマンスがHRD仕様の一部として指定される。HRDはある種類のデコーダと呼ばれるが、HRDは、一般に、ビットストリームコンフォーマンスを保証するためにビデオエンコーダ20において必要とされ、一般にデコーダ側では必要とされない。2つのタイプのビットストリームまたはHRDコンフォーマンス、すなわち、タイプIおよびタイプIIが指定される。さらに、出力タイミングデコーダコンフォーマンスおよび出力順序デコーダコンフォーマンスという2つのタイプのデコーダコンフォーマンスが指定される。
[0088]HRDは、一般に、ランダムアクセスポイント(RAP)ピクチャにおいて初期化される。HEVCとAVCの両方では、HRDが初期化されると、それは、再初期化なしにビットストリームの終了まで動作し続ける。
[0089]HEVC WD9では、HRDがCRAまたはBLAアクセスユニットにおいて初期化する場合、このアクセスユニットはアクセスユニット0と呼ばれる。いくつかの例では、ビデオエンコーダ20は、HRD動作において使用されるべき、アクセスユニット0に関連するデフォルト初期CPB削除遅延および遅延オフセットと代替初期CPB削除遅延および遅延オフセットの両方を送信しまたは記憶し得る。ビデオエンコーダ20は、次いで、アクセスユニット0に関連するデフォルト初期CPB削除遅延および遅延オフセットと代替初期CPB削除遅延および遅延オフセットとをシグナリングし得る。アクセスユニット0に関連するRASLアクセスユニットが存在しない場合、代替初期CPB削除遅延および遅延オフセットが選定され、そうでない(アクセスユニット0に関連するRASLアクセスユニットが存在する)場合、デフォルト初期CPB削除遅延および遅延オフセットが選定される。初期CPB削除遅延および遅延オフセットの選定されたセットは、次いで、ビットストリーム中でシグナリングされ得る。初期CPB削除遅延および遅延オフセットの選定されたセットはまた、次いで、ビットストリームの終了まで使用され得る。この情報は、CPB遅延オフセット値、たとえば、i番目のCPBについて、使用されるべきオフセットを指定するcpb_delay_offset[i]を含むバッファリング期間SEIメッセージを使用して、たとえばビデオエンコーダ20から、シグナリングされ得る。
[0090]一例では、ビデオエンコーダ20は、各CRAまたはBLAアクセスユニットのためのCPB削除遅延オフセットをシグナリングし得る。関連するRASLピクチャが存在しない各CRAまたはBLAアクセスユニットについて、HRDがCRAまたはBLAアクセスユニットにおいて初期化するかどうかにかかわらず、復号順序でCRAまたはBLAアクセスユニットに後続するアクセスユニットの各々のCPB削除時間は、たとえばビデオデコーダ30において、CPB削除遅延オフセットだけより前にシフトされる。アクセスユニット0のための代替初期CPB削除遅延および遅延オフセットとデフォルト初期CPB削除遅延および遅延オフセットとの間の選択は、HEVC WD9の場合と同様の方法で実行される。代替的に、アクセスユニット0のためにデフォルト初期CPB削除遅延および遅延オフセットが常に選定され、したがって、代替初期CPB削除遅延、したがって、代替イニシャルCPB削除遅延および遅延オフセットは、サブピクチャレベルCPBパラメータが存在し、その上、代替初期CPB削除遅延および遅延オフセットがサブピクチャレベルHRD動作のために、たとえばビデオデコーダ30によって、使用されない限り、CRAまたはBLAアクセスユニットのためにシグナリングされないことがある。
[0091]いくつかの例では、ビデオエンコーダ20は、たとえば、HEVC WD9の従属節C.2.3(復号ユニット削除のタイミングおよび復号ユニットの復号)に記載されているシンタックスとセマンティクスとをもつ、バッファリング期間補足エンハンスメント情報(SEI:supplemental enhancement information)メッセージを符号化し得る。ビデオエンコーダ20は、たとえば、HEVC WD9に関連して本明細書で説明する変更を実装し得る。言及されていない他の部分は、HEVC WD9、または、後続のHEVC規格など、他のHEVC規格の場合と同じであり得る。
[0092]図3は、本開示で説明する技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。図3の例では、ビデオデコーダ30は、コード化ピクチャバッファ(CPB)78と、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、復号ピクチャバッファ(DPB)92とを含む。予測処理ユニット81は、動き補償ユニット82とイントラ予測処理ユニット84とを含む。ビデオデコーダ30は、いくつかの例では、図2のビデオエンコーダ20に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
[0093]CPB78は、符号化ピクチャビットストリームからのコード化ピクチャを記憶する。一例では、CPB78は、復号順序でアクセスユニット(AU)を含んでいる先入れ先出しバッファ(first-in first-out buffer)である。AUは、指定された分類ルールに従って互いに関連する、復号順序で連続しており、ちょうど1つのコード化ピクチャを含んでいる、ネットワークアブストラクションレイヤ(NAL:network abstraction layer)ユニットのセットである。復号順序は、ピクチャが復号される順序であり、ピクチャが表示される順序(すなわち、表示順序)とは異なり得る。CPBの動作は、HEVC WD9における仮想参照デコーダ(HRD)によって指定され得る。
[0094]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数、動きベクトル、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、予測処理ユニット81に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0095]ビデオスライスがイントラコード化(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、PまたはGPB)スライスとしてコーディングされたとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、DPB92に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構成し得る。
[0096]動き補償ユニット82は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコーディングビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
[0097]動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0098]逆量子化ユニット86は、ビットストリーム中で与えられ、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中の各ビデオブロックについてビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。逆変換ユニット88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0099]動き補償ユニット82が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後に、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、他のループフィルタも(コーディングループ中またはコーディングループ後のいずれかで)使用され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶するDPB92に記憶される。DPB92はまた、図1のディスプレイデバイス32などのディスプレイデバイス上での後の表示のために、復号ビデオを記憶する。CPB78のように、一例では、DPB92の動作は、HVEC WD9におけるHRDによって指定され得る。CPB78およびDPB92は、メモリユニットモジュールを備え得るか、またはCPB78とDPB92とを定義するために異なる領域に区分された同じメモリを備え得る。
[0100]本開示ののセクションでは、ランダムアクセス、ビットストリーム切替え、およびランダムアクセスポイント(RAP)ピクチャのHEVC機能について説明する。
[0101]ランダムアクセスは、ビットストリーム中の最初のコード化ピクチャではないコード化ピクチャから始まる、ビデオビットストリームの復号を指す。ビットストリームへのランダムアクセスは、たとえば、ユーザが、任意の時間にプログラムに同調するため、異なるチャネル間を切り替えるため、ビデオの特定の部分にジャンプするため、またはストリーム適応(たとえば、ビットレート、フレームレート、空間解像度などの適応)のために異なるビットストリームに切り替えるために、ブロードキャスティングおよびストリーミングなど、多くのビデオアプリケーションにおいて必要とされる。ランダムアクセスは、ランダムアクセスピクチャまたはランダムアクセスポイント(RAP)を規則的な間隔で何回もビデオビットストリーム中に挿入することによって有効にされる。
[0102]ビットストリームスプライシングは、2つ以上のビットストリームまたはそれの部分の連結を指す。たとえば、場合によっては、スプライスされたビットストリームを生成するためにビットストリームのいずれか一方または両方にいくつかの変更を加えて、第1のビットストリームに第2のビットストリームが付加され得る。第2のビットストリーム中の第1のコード化ピクチャはスプライシングポイントとも呼ばれる。したがって、スプライスされたビットストリーム中のスプライシングポイントの後のピクチャは、第2のビットストリームから生じたものであり、スプライスされたビットストリーム中のスプライシングポイントに先行するピクチャは、第1のビットストリームから生じたものである。
[0103]ビットストリームのスプライシングはビットストリームスプライサ(bitstream splicer)によって実行される。ビットストリームスプライサは、しばしば軽量であり(すなわち、処理に関してあまり複雑でないかまたは能力が劣る)、ビデオエンコーダ20よりもはるかにインテリジェントでない。たとえば、ビットストリームスプライサはエントロピー復号および符号化能力を装備しないことがある。
[0104]ビットストリーム切替えは適応ストリーミング環境において使用され得る。切り替えられたビットストリーム中のいくつかのピクチャにおけるビットストリーム切替え動作は、事実上、ビットストリームスプライシング動作であり、ここにおいて、スプライシングポイントは、ビットストリーム切替えポイント、すなわち、切り替えられたビットストリーム中の第1のピクチャである。
[0105]以下のセクションでは、RAPピクチャについて説明する。RAPピクチャの一例は瞬時復号リフレッシュ(IDR:Instantaneous decoding refresh)ピクチャである。AVCまたはHEVCにおいて指定されているようにIDRピクチャは、ランダムアクセスのために使用され得る。しかしながら、復号順序でIDRピクチャに後続するピクチャは、IDRピクチャより前に復号されたピクチャを(たとえば、インター予測のための)参照として使用することができないので、ランダムアクセスのためにIDRピクチャに依拠するビットストリームは、著しく低いコーディング効率を有することがある。
[0106]コーディング効率を改善するために、復号順序でクリーンランダムアクセス(CRA)ピクチャに後続するが出力順序でCRAピクチャに先行するピクチャが、CRAピクチャの前に復号されたピクチャを参照として使用することを可能にするために、CRAピクチャの概念がHEVCに導入された。復号順序でCRAピクチャに後続するが出力順序でCRAピクチャに先行するピクチャは、CRAピクチャに関連するリーディングピクチャ(またはCRAピクチャのリーディングピクチャ)と呼ばれる。CRAピクチャのリーディングピクチャは、現在のCRAピクチャの前のIDRまたはCRAピクチャから復号が始まる場合は正しく復号可能である。しかしながら、CRAピクチャのリーディングピクチャは、CRAピクチャからのランダムアクセスが行われたときに非復号可能であり得、したがって、リーディングピクチャは、一般にランダムアクセス復号中に廃棄される。復号がどこから始まるかに応じて利用可能でないことがある参照ピクチャからの誤り伝搬を防止するために、HEVCのための1つの提案は、復号順序と出力順序の両方でCRAピクチャに後続するすべてのピクチャが、(リーディングピクチャを含む)復号順序または出力順序のいずれかでCRAピクチャに先行するいかなるピクチャも参照として使用しないものとすることを指定している。
[0107]切断リンクアクセス(BLA)ピクチャの概念は、CRAピクチャの導入の後にHEVCにさらに導入され、CRAピクチャの概念に基づく。BLAピクチャは、一般に、CRAピクチャの位置におけるビットストリームスプライシングから生じ、スプライスされたビットストリーム中で、スプライシングポイントCRAピクチャはBLAピクチャに変更される。
[0108]IDRピクチャ、CRAピクチャおよびBLAピクチャはランダムアクセスポイント(RAP)ピクチャと総称される。BLAピクチャとCRAピクチャとの間の1つの著しい差異は以下の通りである。CRAピクチャの場合、関連するリーディングピクチャは、復号が復号順序でCRAピクチャの前のRAPピクチャから開始する場合、正しく復号可能であり、CRAピクチャからランダムアクセスが行われるとき(すなわち、復号がCRAピクチャから開始するとき、または言い換えると、CRAピクチャがビットストリーム中の第1のピクチャであるとき)、正しく復号可能でないことがある。BLAピクチャの場合、関連するリーディングピクチャは、すべての場合、復号が復号順序でBLAピクチャの前のRAPピクチャから開始するときでも、非復号可能になり得る。
[0109]特定のCRAまたはBLAピクチャの場合、関連するリーディングピクチャのうちのいくつかは、CRAまたはBLAピクチャがビットストリーム中の第1のピクチャであるときでも、正しく復号可能である。これらのリーディングピクチャは復号可能リーディングピクチャ(DLP:decodable leading picture)またはランダムアクセス復号可能リーディング(RADL:random access decodable leading)ピクチャと呼ばれる。他のリーディングピクチャは、非復号可能リーディングピクチャ(NLP:non-decodable leading picture)、廃棄タグ付き(TFD:tagged for discard)ピクチャまたはランダムアクセススキップドリーディング(RASL)ピクチャと呼ばれる。
[0110]HEVC WD9は、1つまたは複数のコード化ビデオシーケンスを形成する、コード化ピクチャおよび関連データの表現を形成するビットのシーケンスとしてビットストリームの概念を規定している。ビットストリームは、NALユニットストリームまたはバイトストリームのいずれかを指すために使用される総称である。HEVC WD9は、1つまたは複数のビットストリームのシーケンスとしてエレメンタリストリーム(ES:elementary stream)の概念を規定している。
[0111]2つ以上のビットストリームからなるエレメンタリストリームは、一般に、互いに2つ以上のビットストリーム(またはそれの部分)をスプライスすることによって形成されたであろう。エレメンタリストリームが複数のビットストリームを含んでいる場合、最後のビットストリームを除いて、他のビットストリームの各々の終端に、一般にビットストリーム終了(EOS:end of bitstream)NALユニットがある。
[0112]ビデオコーディング規格は、一般にビデオバッファリングモデルの仕様を含む。AVCおよびHEVCでは、バッファリングモデルは、コード化ピクチャバッファ(CPB)と復号ピクチャバッファ(DPB)の両方のバッファリングモデルを含む仮定参照デコーダ(HRD)と呼ばれる。CPB挙動およびDPB挙動は数学的に指定される。HRDは、異なるタイミング、バッファサイズおよびビットレートに直接制約を課し、ビットストリーム特性および統計に間接的に制約を課す。HRDパラメータの完全セットは、初期CPB削除遅延、CPBサイズ、ビットレート、初期DPB出力遅延、およびDPBサイズという5つの基本パラメータを含む。
[0113]AVCおよびHEVCでは、ビットストリームコンフォーマンスおよびデコーダコンフォーマンスがHRD仕様の一部として指定される。それはデコーダと呼ばれるが、HRD仕様は、一般に、ビットストリームコンフォーマンスを保証するためにエンコーダ側で必要とされる。2つのタイプのビットストリームまたはHRDコンフォーマンス、すなわち、タイプIおよびタイプIIが指定される。さらに、2つのタイプのデコーダコンフォーマンス(出力タイミングデコーダコンフォーマンスおよび出力順序デコーダコンフォーマンス)が指定される。
[0114]HRDは、一般に、ランダムアクセスポイントピクチャにおいて初期化される。HEVCとAVCの両方では、HRDが初期化されると、それは、再初期化なしにビットストリームの終了まで動作し続ける。
[0115]HEVC WD9では、HRDがCRAまたはBLAアクセスユニットにおいて初期化する場合(このアクセスユニットはアクセスユニット0と呼ばれる)、アクセスユニット0に関連するRASLアクセスユニットが存在するかどうかに応じて、アクセスユニット0に関連するデフォルト初期CPB削除遅延および遅延オフセットまたは代替初期CPB削除遅延および遅延オフセットのいずれかが、HRD動作において使用されるように選定される。アクセスユニット0に関連するRASLアクセスユニットが存在しない場合、代替初期CPB削除遅延および遅延オフセットが選定され、そうでない(すなわち、アクセスユニット0に関連するRASLアクセスユニットが存在する)場合、デフォルト初期CPB削除遅延および遅延オフセットが選定される。初期CPB削除遅延および遅延オフセットの選定されたセットは、次いで、ビットストリームの終了までビデオデコーダ30によって使用される。
[0116]その内容全体が参照により本明細書に組み込まれる、2012年10月30日に出願された米国特許出願第13/664,279号には、以下の方法が記載されている。各CRAアクセスユニットのためのCPB削除遅延オフセットがシグナリングされ得る。HRDがそのような(アクセスユニット0とも呼ばれる)CRAアクセスユニットにおいて初期化し、関連するRASLピクチャが存在しない場合、復号順序でCRAアクセスユニットに後続するアクセスユニットの各々のCPB削除時間がCPB削除遅延オフセットだけより前にシフトされる。
[0117]HEVC WD9におけるHRD技法は以下の問題を呈する。第1に、存在する場合、ビットストリーム中で復号順序でアクセスユニット0に後続するすべてのCRAまたはBLAアクセスユニットが、存在するそれらの関連するRASLアクセスユニットを有する場合に、初期CPB削除遅延および遅延オフセットの選定されたセットが適用されると仮定する。HEVC WD9の現在の技法は、ビットストリーム中で復号順序でアクセスユニット0に後続し、関連するRASLアクセスユニットが存在しない、CRAまたはBLAアクセスユニットがない場合のみ、正しく動作するであろう。しかしながら、ビットストリーム中に存在するそのようなCRAまたはBLAアクセスユニットがある場合、CPBは第1のそのようなCRAまたはBLAアクセスユニットの後にオーバーフローし得、したがって予期しない復号結果が生じ得る。
[0118]同様に、存在する場合、ビットストリーム中で復号順序でアクセスユニット0に後続するすべてのCRAまたはBLAアクセスユニットが、存在するそれらの関連するRASLアクセスユニットを有しない場合に、初期CPB削除遅延および遅延オフセットの選定されたセットが適用されると仮定する。HEVC WD9の現在の技法は、ビットストリーム中で復号順序でアクセスユニット0に後続し、関連するRASLアクセスユニットが存在する、CRAまたはBLAアクセスユニットがない場合のみ、正しく動作し、ビットストリーム中に存在するそのようなCRAまたはBLAアクセスユニットがある場合、正しく動作しないであろう。
[0119]初期CPB削除遅延および遅延オフセットの選定されたセットに関する他の仮定も不正確な復号を生じ得る。たとえば、アクセスユニット0に後続するいくつかのCRAまたはBLAアクセスユニットが、存在するそれらの関連するRASLアクセスユニットを有し、アクセスユニット0に後続する他のCRAまたはBLAアクセスユニットが、存在するそれらの関連するRASLアクセスユニットを有しない状況も、後続のCRAまたはBLAアクセスユニットのための関連するRASLアクセスユニットの存在および不在に関する仮定が成り立たない限り、正しく復号しないことがある。
[0120]CPB削除遅延オフセットは、アクセスユニット0に関連するRASLアクセスユニットの廃棄により、アクセスユニット0に後続するアクセスユニットのためのCPB削除時間のみを補償することができる。ビットストリーム中に存在する、復号順序でアクセスユニット0に後続し、関連するRASLアクセスユニットが廃棄された、1つまたは2つ以上のCRAまたはBLAアクセスユニットがある場合、CPBは第1のそのようなCRAまたはBLAアクセスユニットの後にオーバーフローし得、したがって予期しない復号結果が生じ得る。
[0121]HEVC WD9における方法に関連する別の問題は以下の通りである。現在、アクセスユニット(AU)0がCRA AUまたはBLA AUであるとき、関連するRASL AUが存在する場合、デフォルト初期CPB削除遅延および遅延オフセットが使用され、そうでない場合、代替初期CPB削除遅延および遅延オフセットが使用される。しかしながら、初期CPB削除遅延および遅延オフセットの変更は、AU0の(公称)復号時間と、復号順序でAU0に後続する第1の非RASL AUの(公称)復号時間との間の持続時間を変更しない。たとえば、復号順序でAU0の直後に10個のRASLピクチャがあり、その直後に元のビットストリーム中の末尾ピクチャがあったと仮定する。この状況では、CPB削除時間は、各AUについて公称CPB削除時間に等しく、元のビットストリームが復号されるとき、任意の2つの連続するAUの復号時間間の持続時間は1クロックティックである。HEVC WD9によれば、RASLピクチャが廃棄されるかどうかにかかわらず、AU0の復号時間と第1の末尾ピクチャの復号時間との間の持続時間は同じ(11クロックティック)であろう。したがって、復号は、元のビットストリームについては連続的であるが、RASLピクチャが廃棄されるときには連続的でない。
[0122]これらの問題に鑑みて、本開示は、ビデオバッファリングを改善する(たとえば、HEVC WD9のHRDを改善する)ための以下の方法および技法を提供する。以下の例についてHEVC WD9に関して説明する。特に言及されていないHRD技法は、HEVC WD9、または、後続のHEVC規格など、他のHEVC規格において現在指定されているものと同じであり得る。
[0123]本開示の第1の例では、各CRAまたはBLAアクセスユニットのためのCPB削除遅延オフセットがビデオエンコーダ20によってシグナリングされる。関連するRASLピクチャが存在しない各CRAまたはBLAアクセスユニットについて、HRD(たとえば、ビデオデコーダ30)がCRAまたはBLAアクセスユニットにおいて初期化するかどうかにかかわらず、ビデオデコーダ30は、復号順序でCRAまたはBLAアクセスユニットに後続するアクセスユニットの各々のCPB削除時間をCPB削除遅延オフセットだけより前にシフトする。上記で説明したように、バッファリング期間SEIメッセージは、CPB遅延オフセット値、たとえば、i番目のCPBについて、使用されるべきオフセットを指定するcpb_delay_offset[i]を含み得る。オフセットは、たとえば、CRAまたはBLAアクセスユニットに関連するRASLアクセスユニットが存在しないとき、復号順序で、バッファリング期間SEIメッセージに関連するCRAまたはBLAアクセスユニットに後続するアクセスユニットの公称CPB削除時間の導出において使用され得る。シンタックス要素は、au_cpb_removal_delay_length_minus1+1によって与えられるビットでの長さを有し得、たとえば、90kHzクロックの単位であり得る。
[0124]アクセスユニット0のための代替初期CPB削除遅延および遅延オフセットとデフォルト初期CPB削除遅延および遅延オフセットとの間の選択は、たとえば、HEVC WD9の場合と同様の方法で実行され得る。別の例では、アクセスユニット0のためのデフォルトイニティシャルCPB削除遅延および遅延オフセットが常に選定される(たとえば、ビデオデコーダ30による使用のためにビデオエンコーダ20において選定される)。したがって、ビデオエンコーダ20は、サブピクチャレベルCPBパラメータが存在し、その上、代替イニティシャルCPB削除遅延および遅延オフセットがサブピクチャレベルHRD動作のためのものでない限り、CRAまたはBLAアクセスユニットのための代替イニティシャルCPB削除遅延および遅延オフセットをシグナリングしない。代替イニティシャルCPB削除遅延および遅延オフセットは、本明細書で説明するシンタックスを有するバッファリング期間SEIメッセージを使用してシグナリングされ得る。
[0125]本開示の第2の例では、HRDは、ビデオデコーダ(たとえば、ビデオデコーダ30)が、たとえば、以下の条件のいずれかが真であることによって識別されるように、関連するRASLアクセスユニットが存在しない各CRAまたはBLAアクセスユニットにおいて初期化または再初期化することを指定する。
a. nal_unit_typeがCRA_NUTまたはBLA_W_LPに等しく、UseAltCpbParamsFlagが1に等しい、
b. nal_unit_typeがBLA_W_DLPまたはBLA_N_LPに等しい。
シンタックス要素nal_unit_typeは、ネットワークアブストラクションレイヤ(NAL:network abstraction layer)ユニット中に含まれているローバイトシーケンスペイロード(RBSP:raw byte sequence payload)データ構造のタイプを指定する。CRA_NUTは、CRAピクチャのコード化スライスセグメントのためのNALタイプである。BLA_W_LPは、BLAピクチャのコード化スライスセグメントのためのNALタイプである。BLA_W_LPに等しいnal_unit_typeを有するBLAピクチャは、ビットストリーム中に存在する関連するRASLまたはRADLピクチャを有し得る。BLA_W_DLPに等しいnal_unit_typeを有するBLAピクチャは、ビットストリーム中に存在する関連するRASLピクチャを有しないが、ビットストリーム中に関連するRADLピクチャを有し得る。したがって、BLAピクチャが、BLA_W_LPに等しいnal_unit_typeを有する(ビットストリーム中に存在する関連するRASLまたはRADLピクチャを同じく有し得る)とき、ビデオデコーダ30は、各CRAまたはBLAアクセスにおいて初期化または再初期化し得る。BLA_N_LPに等しいnal_unit_typeを有するBLAピクチャは、ビットストリーム中に存在する関連するリーディングピクチャを有しない。したがって、BLAピクチャが、BLA_N_LPに等しいnal_unit_typeを有するとき、ビデオデコーダ30は、概して、各CRAまたはBLAアクセスにおいて初期化または再初期化しない。UseAltCpbParamsFlagは、代替CPBパラメータが使用されるか否かを示す。代替CPBパラメータが使用される場合、ビデオデコーダ30は、CPB遅延オフセット値、たとえば、i番目のCPBについて、使用されるべきオフセットを指定するcpb_delay_offset[i]によって指定されたオフセットを使用し得る。
[0126]本開示の第3の例では、たとえば、以下の条件のいずれかが真であることによって識別されるように、関連するRASLアクセスユニットが存在しない各CRAまたはBLAアクセスユニットは、たとえばビデオデコーダ30によって、ビットストリーム中の第1のアクセスユニット(すなわち、そのようなアクセスユニットは新しいビットストリームを開始する)と見なされ、したがって、ビットストリームNALユニットの終端が、エレメンタリストリーム中の最後のビットストリームでない各ビットストリームの終端に存在する必要はない。
a. nal_unit_typeがCRA_NUTまたはBLA_W_LPに等しく、UseAltCpbParamsFlagが1に等しい、
b. nal_unit_typeがBLA_W_DLPまたはBLA_N_LPに等しい。
したがって、HRDモデルを実装する際に、ビデオデコーダ30は、たとえば、HEVC規格に従ってアクセスユニットにおいてHRDを初期化または再初期化する。この第3の例では、上記で説明したように、関連するRASLアクセスユニットが存在しない各CRAまたはBLAアクセスユニットはビットストリーム中の第1のアクセスユニットと見なされる。
[0127]本開示の第4の例では、たとえば、以下の条件のいずれかが真であることによって識別されるように、関連するRASLアクセスユニットが存在しない各CRAまたはBLAアクセスユニットについて、復号順序で、アクセスユニット中の第1のNALユニットの直前にビットストリームNALユニットの終端があることが必要である。
a. nal_unit_typeがCRA_NUTまたはBLA_W_LPに等しく、UseAltCpbParamsFlagが1に等しい、
b. nal_unit_typeがBLA_W_DLPまたはBLA_N_LPに等しい。
したがって、HRDモデルを実装する際に、ビデオデコーダ30は、たとえば、HEVC規格に従ってアクセスユニットにおいてHRDを初期化または再初期化し得る。
[0128]上記の第2、第3、および第4の例に共通して、ビデオデコーダ30がCRAまたはBLAアクセスユニットにおいて初期化または再初期化するとき、いくつかの例では、アクセスユニットに関連するRASLアクセスユニットが存在するかどうかに応じて、HRD動作において使用されるべき、アクセスユニットに関連するデフォルト初期CPB削除遅延および遅延オフセットと代替初期CPB削除遅延および遅延オフセットの両方が、ビデオデコーダ30によって送信または記憶され得る。アクセスユニットに関連するRASLアクセスユニットが存在しない場合(たとえば、上記の2つの条件aまたはbのいずれかが真であるとき)、代替初期CPB削除遅延および遅延オフセットが選定され、そうでない(アクセスユニットに関連するRASLアクセスユニットが存在する)場合、デフォルト初期CPB削除遅延および遅延オフセットが選定される。初期CPB削除遅延および遅延オフセットの選定されたセットは、次いで、HRDが再初期化されるかまたはビットストリームの終了まで、ビデオデコーダ30によって使用される。一例では、そのようなCRAまたはBLAアクセスユニットがビットストリーム中の第1のアクセスユニットでない(すなわちアクセスユニット0でない)とき、CPBのみが再初期化され、DPBは再初期化されない。別の例では、そのようなCRAまたはBLAアクセスユニットがビットストリーム中の第1のアクセスユニットでない(すなわちアクセスユニット0でない)とき、CPBもDPBも再初期化されないが、そうではなく、上述の記載と同様に代替初期CPB削除遅延および遅延オフセットまたはデフォルト初期CPB削除遅延および遅延オフセットの間で選定が行われる。たとえば、ビデオデコーダ30は、代替初期CPB削除遅延および遅延オフセットまたはデフォルト初期CPB削除遅延および遅延オフセットの間で選択し得、次いで、選択された選択肢が、HRDが再初期化されるかまたはビットストリームの終了まで、たとえばビデオデコーダ30によって、使用され得る。
[0129]第1の例示的な技法の説明を以下で与える。以下の節および従属節への参照はHEVC WD9を指す。特に明記されていない限り、すべてのシンタックス要素の動作および意味は、HEVC WD9において定義されており、概して、後続のHEVC拡張に適用され得る。
[0130]本明細書で説明するシステムおよび方法によれば、たとえばHEVC WD9における、HEVC WD9の従属節C.2.3(復号ユニット削除のタイミングおよび復号ユニットの復号)におけるバッファリング期間SEIメッセージシンタックスおよびセマンティクスは、以下のように変更され得る。ビデオデコーダ30は、たとえば、HEVC WD9の従属節C.2.3のバッファリング期間SEIメッセージシンタックスおよびセマンティクスの一部または全部の態様を使用して復号を実装し得る。更新されたシンタックス要素はボールド体である。言及されていない他の部分は、HEVC WD9または後続のHEVC規格の場合と同じであり得る。
[0131]バッファリング期間サプルメンタルエンハンスメント情報(SEI)メッセージは、復号順序での、関連するアクセスユニットの位置におけるHRDの初期化のための初期CPB削除遅延および初期CPB削除遅延オフセット情報を与える。
[0132]以下のことが、バッファリング期間SEIメッセージシンタックスおよびセマンティクスについて適用される。第1に、シンタックス要素initial_cpb_removal_delay_length_minus1、au_cpb_removal_delay_length_minus1、およびsub_pic_cpb_params_present_flag、および変数NalHrdBpPresentFlagおよびVclHrdBpPresentFlagは、バッファリング期間SEIメッセージが適用される動作点のうちの少なくとも1つに適用可能であるhrd_parameters()シンタックス構造中のシンタックス要素において見つけられるか、またはそこから、たとえばビデオデコーダ30において導出される。第2に、変数CpbSize[i]、BitRate[i]およびCpbCntは、バッファリング期間SEIメッセージが適用される動作点のうちの少なくとも1つに適用可能であるsub_layer_hrd_parameters()シンタックス構造において見つけられるシンタックス要素から、たとえばビデオデコーダ30において導出される。第3に、バッファリング期間SEIメッセージが適用される任意の2つの動作点が、異なるOpTid値tIdAおよびtIdBを有することは、その2つの動作点に適用可能な(1つまたは複数の)hrd_parameters()シンタックス構造中でコーディングされたcpb_cnt_minus1[tIdA]の値とcpb_cnt_minus1[tIdB]の値が同一であることを示す。第4に、バッファリング期間SEIメッセージが適用される任意の2つの動作点が、異なるOpLayerIdSet値layerIdSetAおよびlayerIdSetBを有することは、それぞれ、2つの動作点に適用可能な2つのhrd_parameters()シンタックス構造のためのnal_hrd_parameters_present_flagの値とvcl_hrd_parameters_present_flagの値が同一であることを示す。最終的に、ビットストリーム(またはそれの一部)は、バッファリング期間SEIメッセージが適用される動作点のいずれかに関連するビットストリームサブセット(またはそれの一部)を指す。
[0133]シンタックス要素NalHrdBpPresentFlagまたはVclHrdBpPresentFlagが1に等しい場合、指定された動作点に適用可能なバッファリング期間SEIメッセージは、コード化ビデオシーケンス中のいずれかのアクセスユニットに関連し得、指定された動作点に適用可能なバッファリング期間SEIメッセージは各RAPアクセスユニットに関連し、各アクセスユニットは回復点SEIメッセージに関連することになる。そうでない(NalHrdBpPresentFlagおよびVclHrdBpPresentFlagが両方とも0に等しい)場合、この例では、コード化ビデオシーケンス中のアクセスユニットは、指定された動作点に適用可能なバッファリング期間SEIメッセージに関連しないことになる。
[0134]適用例によっては、バッファリング期間SEIメッセージの頻繁な存在が望ましいことがある。
[0135]バッファリング期間SEIメッセージを含んでおり、0に等しいnuh_reserved_zero_6bitsを有する、SEI NALユニットが存在するとき、SEI NALユニットは、復号順序で、アクセスユニット中の第1のVCL NALユニットに先行することになる。
[0136]シンタックス要素bp_seq_parameter_set_idは、バッファリング期間SEIメッセージに関連するコード化ピクチャについてアクティブであるシーケンスパラメータセットのためのsps_seq_parameter_set_idを指定する。bp_seq_parameter_set_idの値は、バッファリング期間SEIメッセージに関連するコード化ピクチャのスライスセグメントヘッダのslice_pic_parameter_set_idによって参照されるピクチャパラメータセット中のpps_seq_parameter_set_idの値に等しくなる。bp_seq_parameter_set_idの値は、両端値を含む0〜15の範囲内になる。
[0137]1に等しいシンタックス要素rap_cpb_params_present_flagは、initial_alt_cpb_removal_delay[i]およびinitial_alt_cpb_removal_offset[i]シンタックス要素の存在を指定する。存在しないとき、rap_cpb_params_present_flagの値は0に等しいと推論される。関連するピクチャがCRAピクチャでもBLAピクチャでもないとき、rap_cpb_params_present_flagの値は0に等しくなる。
[0138]シンタックス要素initial_cpb_removal_delay[i]およびinitial_alt_cpb_removal_delay[i]は、それぞれ、i番目のCPBについてのデフォルト初期CPB削除遅延および代替初期CPB削除遅延を指定する。シンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットでの長さを有し、90kHzクロックの単位である。シンタックス要素の値は、0に等しくならず、90kHzクロック単位でのCPBサイズに相当する時間である、90000*(CpbSize[i]÷BitRate[i])以下になる。
[0139]シンタックス要素initial_cpb_removal_offset[i]およびinitial_alt_cpb_removal_offset[i]は、それぞれ、CPBへのコード化データユニットの初期配信時間を指定するための、i番目のCPBについてのデフォルト初期CPB削除オフセットおよび代替初期CPB削除オフセットを指定する。シンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットでの長さを有し、90kHzクロックの単位である。
[0140]コード化ビデオシーケンス全体にわたって、initial_cpb_removal_delay[i]とinitial_cpb_removal_offset[i]との和はiの各値について一定になり、initial_alt_cpb_removal_delay[i]とinitial_alt_cpb_removal_offset[i]との和はiの各値について一定になる。
[0141]シンタックス要素cpb_delay_offset[i]は、CRAまたはBLAアクセスユニットに関連するRASLアクセスユニットが存在しないとき、復号順序で、バッファリング期間SEIメッセージに関連するCRAまたはBLAアクセスユニットに後続するアクセスユニットの公称CPB削除時間の導出において使用されるべきオフセットをi番目のCPBについて指定する。シンタックス要素は、au_cpb_removal_delay_length_minus1+1によって与えられるビットでの長さを有し、90kHzクロックの単位である。
[0142]いくつかの例では、ビデオエンコーダ20は、復号順序においてインターリーブされる関連するRASLおよびRADLピクチャを有するCRAまたはBLAピクチャに関連するバッファリング期間SEIメッセージ中に、initial_alt_cpb_removal_delay[i]と、initial_alt_cpb_removal_offset[i]と、cpb_delay_offset[i]とを含めないことが推奨される。
[0143]次のセクションでは、復号ユニット削除のタイミングおよび復号ユニットの復号について説明する。変数InitCpbRemovalDelay[SchedSelIdx]、InitCpbRemovalDelayOffset[SchedSelIdx]、およびcpbDelayOffset[SchedSelIdx]は以下のように導出される。第1に、以下で提示される条件(A)および条件(B)のうちの1つまたは複数が真である場合、InitCpbRemovalDelay[SchedSelIdx]、InitCpbRemovalDelayOffset[SchedSelIdx]、およびcpbDelayOffset[SchedSelIdx]は、それぞれ、HVEC WD9の従属節C.1において指定されているようにNalHrdModeFlagに応じて選択されたバッファリング期間SEIメッセージシンタックス要素initial_alt_cpb_removal_delay[SchedSelIdx]、initial_alt_cpb_removal_offset[SchedSelIdx]、およびcpb_delay_offset[SchedSelIdx]の値に等しく設定される。条件(A)は、アクセスユニット0が、BLA_W_DLPまたはBLA_N_LPに等しいnal_unit_typeをコード化ピクチャが有するBLAアクセスユニットであり、バッファリング期間SEIメッセージのrap_cpb_params_present_flagの値が1に等しいことである。条件(B)は、アクセスユニット0が、BLA_W_LPに等しいnal_unit_typeをコード化ピクチャが有するBLAアクセスユニットであるか、またはCRAアクセスユニットであり、バッファリング期間SEIメッセージのrap_cpb_params_present_flagの値が1に等しく、以下の条件のうちの1つまたは複数が真であることである。(1)アクセスユニット0のためのUseAltCpbParamsFlagが1に等しい。DefaultInitCpbParamsFlagが0に等しい、(2)そうでない場合、InitCpbRemovalDelay[SchedSelIdx]およびInitCpbRemovalDelayOffset[SchedSelIdx]は、それぞれ、従属節C.1において指定されているようにNalHrdModeFlagに応じて選択されたバッファリング期間SEIメッセージシンタックス要素initial_cpb_removal_delay[SchedSelIdx]およびinitial_cpb_removal_offset[SchedSelIdx]の値に等しく設定され、cpbDelayOffset[SchedSelIdx]は0に等しく設定される。
[0144]CPBからのアクセスユニットnの公称削除時間は以下のように指定される。第1に、アクセスユニットnが、nが0に等しいアクセスユニット(HRDを初期化するアクセスユニット)である場合、CPBからのアクセスユニットの公称削除時間は次式によって指定される。
そうでない場合、アクセスユニットnが、HRDを初期化しないバッファリング期間の第1のアクセスユニットであるとき、以下のことが適用される。CPBからのアクセスユニットnの公称削除時間は次式によって指定される。
上式で、NominalRemovalTime(firstPicInPrevBuffPeriod)は、前のバッファリング期間の第1のアクセスユニットの公称削除時間であり、AuCpbRemovalDelayVal(n)は、アクセスユニットnに関連する、従属節C.1において指定されているように選択されたピクチャタイミングSEIメッセージ中のau_cpb_removal_delay_minus1に従って導出されたAuCpbRemovalDelayValの値である。
[0145]アクセスユニットnの公称CPB削除時間の導出の後に、cpbDelayOffset[SchedSelIdx]の値は以下のように更新される。以下の条件うちの1つまたは複数が真である場合、cpbDelayOffset[SchedSelIdx]は、HVEC WD9の従属節C.1において指定されているようにNalHrdModeFlagに応じて選択されたバッファリング期間SEIメッセージシンタックス要素cpb_removal_delay_offset[SchedSelIdx]の値に等しく設定される。アクセスユニットnが、BLA_W_DLPまたはBLA_N_LPに等しいnal_unit_typeをコード化ピクチャが有するBLAアクセスユニットであり、バッファリング期間SEIメッセージのrap_cpb_params_present_flagの値が1に等しい。アクセスユニットnが、BLA_W_LPに等しいnal_unit_typeをコード化ピクチャが有するBLAアクセスユニットであるか、またはCRAアクセスユニットであり、バッファリング期間SEIメッセージのrap_cpb_params_present_flagの値が1に等しく、アクセスユニットnのためのUseAltCpbParamsFlagが1に等しい。そうでない場合、cpbDelayOffset[SchedSelIdx]は0に等しく設定される。アクセスユニットnがバッファリング期間の第1のアクセスユニットでないとき、CPBからのアクセスユニットnの公称削除時間は次式によって指定される。
上式で、NominalRemovalTime(firstPicInCurrBuffPeriod)は、現在のバッファリング期間の第1のアクセスユニットの公称削除時間である。
[0147]sub_pic_cpb_params_present_flagが1に等しいとき、以下のことが適用される。変数cpbRemovalDelayInc(m)は以下のように導出される。sub_pic_cpb_params_in_pic_timing_sei_flagが0に等しい場合、変数cpbRemovalDelayInc(m)は、復号ユニットmに関連する、従属節C.1において指定されているように選択された復号ユニット情報SEIメッセージ中のdu_spt_cpb_removal_delay_incrementの値に設定される。そうではなく、du_common_cpb_removal_delay_flagが0に等しい場合、変数cpbRemovalDelayInc(m)は、アクセスユニットnに関連する、従属節C.1において指定されているように選択されたピクチャタイミングSEIメッセージ中の復号ユニットmのためのdu_cpb_removal_delay_increment_minus1[i]+1の値に設定され、ただし、iの値は、復号ユニットmを含んでいるアクセスユニット中の第1のnum_nalus_in_du_minus1[0]+1個の連続するNALユニットの場合には0であり、同じアクセスユニット中の後続のnum_nalus_in_du_minus1[1]+1個のNALユニットの場合には1であり、同じアクセスユニット中の後続のnum_nalus_in_du_minus1[2]+1個のNALユニットの場合には2である、などである。他の場合、変数cpbRemovalDelayInc(m)は、アクセスユニットnに関連する、従属節C.1において指定されているように選択されたピクチャタイミングSEIメッセージ中のdu_common_cpb_removal_delay_increment_minus1+1の値に設定される。CPBからの復号ユニットmの公称削除時間は以下のように指定され、ただし、NominalRemovalTime(n)はアクセスユニットnの公称削除時間である。復号ユニットmがアクセスユニットn中の最後の復号ユニットである場合、復号ユニットmの公称削除時間NominalRemovalTime(m)はNominalRemovalTime(n)に設定される。そうでない(すなわち、復号ユニットmがアクセスユニットn中の最後の復号ユニットでない)場合、復号ユニットmの公称削除時間NominalRemovalTime(m)は以下のように導出される。
[0148]CPBからのアクセスユニットnの削除時間は以下のように指定され、ただし、FinalArrivalTime(m)およびNominalRemovalTime(m)は、それぞれ、アクセスユニットn中の最後の復号ユニットの最終到着時間および公称削除時間であり、FinalArrivalTime(n)およびNominalRemovalTime(n)は、それぞれ、アクセスユニットnの最終到着時間および公称削除時間である。
[0149]SubPicCpbFlagが1に等しいとき、復号ユニットmがアクセスユニットnおよび0の最後の復号ユニットである場合、変数lastDuInAuFlagは1に等しく設定され、そうでない場合、CPBからの復号ユニットmの削除時間は以下のように指定される。
[0150]low_delay_hrd_flag[HighestTid]が1に等しく、NominalRemovalTime(m)<FinalArrivalTime(m)であるとき、復号ユニットmのサイズは、それが公称削除時間における削除を妨げるほど大きい。復号ユニットmのCPB削除時間において、復号ユニットは瞬時に復号される。ピクチャnは、ピクチャの最後の復号ユニットが復号されたときに復号されたと見なされる。上記で説明した変更はまた、たとえば、ビットストリームがビデオデコーダ30によって復号され得るように、バッファリング期間SEIメッセージシンタックスおよびセマンティクスならびにHEVC WD9の従属節C.2.3の一部または全部の態様を使用してビットストリームを符号化するために、ビデオエンコーダ20によって実装され得る。
[0151]図4は、本開示で説明する1つまたは複数の例による、例示的な方法を示すフローチャートである。宛先デバイス14は、ビデオデータを処理する方法を実装し得る。たとえば、ビデオデコーダ30は、RAPピクチャを有するアクセスユニットをビデオビットストリーム中で受信する(400)。ビデオデコーダはまた、そのアクセスユニットの後に、RAPピクチャを有する後続のアクセスユニットをビットストリーム中で受信する(402)。後続のアクセスユニットのための1つまたは複数のランダムアクセススキップドリーディング(RASL)ピクチャが受信されたビットストリーム中に存在しない場合に、ピクチャバッファ削除遅延オフセットに基づいて、ピクチャバッファ削除時間をより前にシフトする(404)。
[0152]いくつかの例では、ピクチャバッファはコード化ピクチャバッファ(CPB)を含み、ピクチャバッファ削除遅延オフセットはCPB削除遅延オフセットを含む。他の例では、ピクチャバッファは復号ピクチャバッファ(DPB)を含み、ピクチャバッファ削除遅延オフセットはDPB削除遅延オフセットを含む。
[0153]ビデオデコーダ30は、アクセスユニットのためのピクチャバッファ削除遅延オフセットを受信し得る。いくつかの例では、ビデオデコーダ30は、バッファリング期間SEIメッセージ中でピクチャバッファ削除遅延オフセットを受信し得る。いくつかの例では、RAPピクチャは、クリーンランダムアクセス(CRA)ピクチャと切断リンクアクセス(BLA)ピクチャとのうちの1つを含む。
[0154]図5は、本開示で説明する1つまたは複数の例による、例示的な方法を示すフローチャートである。宛先デバイス14は、ビデオデータを処理する方法を実装し得る。たとえば、ビデオデコーダ30は、たとえば、より前の初期化の後に、アクセスユニットを受信し得、アクセスユニットはランダムアクセスポイント(RAP)ピクチャを有する。これは、たとえば、HRDを初期化するRAPアクセスユニットの後であり得る。ランダムアクセススキップドリーディング(RASL)ピクチャを含む関連するアクセスユニットは受信されない(500)。ビデオデコーダ30は、アクセスユニットを受信することと、RASLピクチャを含んでいる関連するアクセスユニットを受信しないこととに応答して、ピクチャバッファ削除時間とピクチャバッファ削除遅延オフセットとを初期化する(502)。
[0155]ピクチャバッファ削除時間はコード化ピクチャバッファ(CPB)削除時間を含み、ピクチャバッファ削除遅延オフセットはCPB削除遅延オフセットを含む。ピクチャバッファ削除時間は復号ピクチャバッファ(DPB)削除時間を含み、ピクチャバッファ削除遅延オフセットはDPB削除遅延オフセットを含む。一例では、ビデオデコーダ30は、バッファリング期間SEIメッセージ中でピクチャバッファ削除遅延オフセットを受信し得る。
[0156]一例では、RAPピクチャはクリーンランダムアクセス(CRA)ピクチャである。別の例では、RAPピクチャは、関連するRASLピクチャまたはランダムアクセススキップド復号可能(RADL)ピクチャを有し得る切断リンクアクセス(BLA)ピクチャである。RAPピクチャは、関連するRASLピクチャを有しないが、RADLピクチャを有し得る切断リンクアクセス(BLA)ピクチャ、および関連するリーディングピクチャを有しないBLAピクチャのうちの1つである。例は、受信されたアクセスユニットをビットストリーム中の第1のアクセスユニットに指定することをさらに含み得る。
[0157]ビデオデータを処理する別の例示的な方法では、ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、各CRAまたはBLAアクセスユニットのためのCPB削除遅延オフセットをシグナリングし得る。ビデオコーダはまた、HRDがCRAまたはBLAアクセスユニットにおいて初期化するかどうかにかかわらず、復号順序でCRAまたはBLAアクセスユニットに後続するアクセスユニットの各々のCPB削除時間を、関連するRASLピクチャが存在しない各CRAまたはBLAアクセスユニットのためのCPB削除遅延オフセットだけより前にシフトし得る。
[0158]ビデオデータを処理する別の例示的な方法では、ビデオコーダは、各CRAまたはBLAアクセスユニットのためのCPB削除遅延オフセットをシグナリングすることができる。ビデオコーダはまた、サブピクチャレベルCPBパラメータが存在しない限り、代替初期CPB削除遅延および遅延オフセットがCRAまたはBLAアクセスユニットのためにシグナリングされないように、アクセスユニット0のためにデフォルト初期CPB削除遅延および遅延オフセットを選択し得る。一例では、代替初期CPB削除遅延および遅延オフセットはサブピクチャレベルHRD動作のためのものであり得る。
[0159]1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0160]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0161]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
[0162]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実施するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
[0163]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。