[0030]本開示は、ビデオコーディングにおける、コード化データユニットのコード化ピクチャバッファ(CPB)除去時間の、誤り耐性があるとともに効率的なシグナリングおよび導出のための技法について記載する。CPB除去時間は、復号時間としても知られる。本開示は、他のどのAUの除去時間にも依存しない、アクセスユニット(AU)の復号ユニット(DU)についてのCPB除去時間を決定するための技法を提供する。たとえば、AUの現在のDUについてのCPB除去時間が、AU中の、復号順序において次のDUと現在のDUとのCPB除去時間の間の持続時間、またはAU中の最後のDUと現在のDUとのCPB除去時間の間の持続時間のいずれかに基づいてシグナリングされる。別の例では、CPB除去時間導出が、サブピクチャタイミングサプルメンタルエンハンスメント(supplemental enhancement)情報(SEI)メッセージ中で搬送される情報を使用するようなやり方で指定される。復号順序においてAU中の最後のDUと、サブピクチャタイミングSEIメッセージに関連付けられたDUとのCPB除去時間の間の持続時間がシグナリングされる。
[0031]さらに、本明細書に記載する技法による、サブピクチャCPBパラメータが、ピクチャタイミングSEIメッセージのうちただ1つにおいて、またはサブピクチャタイミングSEIメッセージにおいて主宰するかを示すが、両方において主宰することはないことを示すようにシグナリングされ得るシーケンスレベルフラグを含めるための技法が提供される。1に等しいフラグは、サブピクチャレベルCPB除去遅延パラメータがピクチャタイミングSEIメッセージ中に存在し、サブピクチャタイミングSEIメッセージが存在しないことを示す。0に等しいフラグは、サブピクチャレベルCPB除去遅延パラメータがサブピクチャタイミングSEIメッセージ中に存在し、ピクチャタイミングSEIメッセージがサブピクチャレベルCPB除去遅延パラメータを含まないことを示す。
[0032]本開示は、復号ユニットの定義を拡張するための技法も提供する。本開示は、バッファリング期間SEIメッセージとリカバリポイントSEIメッセージとを、変数、すなわち0よりも大きいTemporalIdをもつAUに関連付けられることがないように制限するための技法をさらに提供する。変数TemporalIdは、各AUに関連付けられたシンタックス要素から導出される。本開示は、AUレベルまたはサブピクチャレベルでCPB除去時間を導出するかをシグナリングするためのフラグを提供するための技法も提供する。
[0033]本明細書に記載する技法は、様々なビデオコーディング規格に応用され得る。ビデオコーディング規格には、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)およびマルチビュービデオコーディング(MVC)の拡張を含む(ISO/IEC MPEG−4 AVCとしても知られている)ITU−T H.264が含まれる。
[0034]加えて、ITU−T Video Coding Experts Group(VCEG)およびISO/IEC Motion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT−VC)によって開発されている新しいビデオコーディング規格、すなわち高効率ビデオコーディング(HEVC)が存在する。HEVCの最近の作業草案(WD)は作業草案8であり、以下ではHEVC WD8と呼ばれる。2013年5月2日時点で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、2012年7月8日、ストックホルム。
[0035]HEVC WD8は、その全体が参照により本明細書に組み込まれる。さらに、本開示に記載される技法は、HEVC規格に関して記載されるが、本開示の態様は、そのように限定されず、他のビデオコーディング規格、ならびに固有ビデオコーディング技法に拡張されてよい。
[0036]ビデオエンコーダが、符号化ビデオデータを含むビットストリームを生成することができる。ビットストリームは、一連のネットワークアブストラクションレイヤ(NAL)ユニットを備え得る。ビットストリームのNALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと非VCL NALユニットとを含み得る。VCL NALユニットは、ピクチャのコード化スライスを含み得る。非VCL NALユニットは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、サプルメンタルエンハンスメント情報(SEI)、または他のタイプのデータを含み得る。VPSとは、0個以上のコード化ビデオシーケンス全体に当てはまるシンタックス要素を含み得るシンタックス構造である。SPSとは、0個以上のコード化ビデオシーケンス全体に当てはまるシンタックス要素を含み得るシンタックス構造である。単一のVPSが、複数のSPSに適用可能であり得る。PPSとは、0個以上のコード化ピクチャ全体に当てはまるシンタックス要素を含み得るシンタックス構造である。単一のSPSが、複数のPPSに適用可能であり得る。VPS、SPSおよびPPSの様々な側面は、概して、HEVC規格によって定義されているように形成され得る。
[0037]NALユニットは、temporalId変数の値を示すシンタックス要素を含み得る。NALユニットのtemporalIdは、NALユニットの時間識別子を指定する。第1のNALユニットの時間識別子が、第2のNALユニットの時間識別子未満である場合、第1のNALユニットによってカプセル化されたデータは、第2のNALユニットによってカプセル化されたデータを参照せずに復号することができる。
[0038]各ビデオコーディング規格は概して、ビデオバッファリングモデルの仕様を含み得る。AVCおよびHEVCにおいて、バッファリングモデルは、データが復号のためにどのようにバッファリングされるべきかと、復号データが出力のためにどのようにバッファリングされるかとを記述する仮想参照デコーダ(HRD)と呼ばれる。HRDは、コード化ピクチャバッファ(CPB)と復号ピクチャバッファ(DPB)の両方のバッファリングモデルを含む。CPBは、HRDによって指定された復号順序においてアクセスユニットを含む先入れ先出しバッファである。DPBは、HRDによって指定された参照、出力並べ替え、または出力遅延のために復号ピクチャを保持するバッファである。仮想参照デコーダパラメータは、CPBおよびDPBの挙動を数学的に指定する。HRDは、タイミング、バッファサイズおよびビットレートを含む異なるパラメータに直接制約を課すことができ、かつビットストリーム特性および統計に間接的に制約を課すことができる。いくつかの例では、HRDパラメータの完全セットは、初期CPB除去遅延、CPBサイズ、ビットレート、初期DPB出力遅延、およびDPBサイズの5つの基本パラメータを含み得る。
[0039]AVCおよびHEVCでは、ビットストリーム適合およびデコーダ適合は、HRD仕様の一部として指定される。仮想参照デコーダという名称は、デコーダの種類を指すが、HRDは通常、エンコーダ側においてビットストリーム適合のために必要とされ、必ずしもデコーダ側において必要とされるとは限らない。ただし、本開示の態様はそのように限定されず、HRDは、デコーダ側の一部であってもよい。AVCおよびHEVCは、2つのタイプのビットストリームまたはHRD適合、すなわちタイプIおよびタイプIIを指定することができる。また、AVCおよびHEVCは、出力タイミングデコーダ適合および出力順序デコーダ適合の2つのタイプのデコーダ適合を指定する。
[0040]AVCおよびHEVC HRDモデルでは、復号またはCPB除去はアクセスユニットに基づき、規格は、ピクチャ復号が瞬時に行われると仮定する。実際の適用例では、適合デコーダが、(たとえば、サプルメンタルエンハンスメント情報(SEI)メッセージ中で)シグナリングされた復号時間に厳密に従って、アクセスユニットを復号し始める場合、特定の復号ピクチャを出力するのにできるだけ早い時間は、その特定のピクチャの復号時間にその特定のピクチャを復号するために必要とされる時間を加えたものに等しくなる。つまり、復号ピクチャを出力するための最も早い時間は、復号時間に、ピクチャを復号するべき時間を加えたものである。ただし、現実世界においてピクチャを復号するのに必要とされる時間は、ゼロに等しくなることはない。
[0041]HEVC WD8において、仮想参照デコーダ(HRD)は、付属書類Cにおいて指定されている。HRDは、HRDパラメータに依拠し、このパラメータは、(ビデオパラメータセット(VPS)および/またはシーケンスパラメータセット(SPS)中の)hrd_parameters()シンタックス構造、バッファリング期間SEIメッセージおよびピクチャタイミングSEIメッセージ中のビットストリーム中で与えられる。2012年9月24日に出願された米国仮出願第61/705,102号は、HRDパラメータのエンハンストシグナリングと選択とを提案している。
[0042]復号時間としても知られるCPB除去時間のシグナリングおよび導出のための既存の方法に関連した問題があり得る。以下では、これらの問題のうちいくつかについて記載する。
[0043]アクセスユニット内の復号ユニットについてのCPB除去時間が、前のアクセスユニットからのタイミング情報に依存するとき、復号ユニットCPB除去時間は、誤り耐性がない場合がある。アクセスユニットは、1つまたは複数の復号ユニットを備え得る。除去時間は、AU中の各DUについて決定され得る。CPB除去時間は、AUについて、およびAU内の1つまたは複数のDUについてシグナリングされ得る。AUについてのSEIメッセージは、AU自体についてのCPB除去時間を含むことができ、この除去時間は、AU内の最後のDUについてのCPB除去時間にも対応する。
[0044]コード化ピクチャバッファは、2つのレベル、すなわちアクセスユニットレベルおよびサブピクチャレベルで動作することができる。CPBがサブピクチャレベルで動作するとき(すなわち、SubPicCpbFlagが1に等しいとき)、ピクチャタイミングSEIメッセージに基づく復号ユニット(DU)CPB除去時間のシグナリングおよび導出は、復号順序において前のAUから情報が失われている状況では、誤り耐性がない場合がある。たとえば、現在のAUについてシグナリングされるタイミング情報は、現在のAU中の第1のDUと前のAU中の最後のDUとについてのCPB除去時間の間の持続時間を含む。したがって、前のAU中の最後のDUについてのタイミング情報が失われている場合、第1のDUについての除去時間が、失われたタイミング情報に依存するので、デコーダは、現在のAU中の第1のDUについての除去時間を決定することができない。
[0045]言い換えると、現在のAU中の第1の復号ユニットと、復号順序において前のAU中の最後のDUとのCPB除去時間の間の持続時間のシグナリング、ならびにCPB除去時間導出におけるそのようなシグナリングの使用により、システムまたはコーダは、失われたタイミング情報に対して脆弱になる。たとえば、前のAUのCPB除去情報(すなわち、ピクチャタイミングSEIメッセージ)が失われている場合、現在のAU中の第1のDUのCPB除去時間は正しく導出することができない。さらに、現在のAUのものと等しいものとしてCPB除去時間が導出される、現在のAUの最後のDUを除いて、現在のAU中の他のすべてのDUのCPB除去時間の各々は、復号順序において前のDUのCPB除去時間に依拠する。したがって、上記損失が起きた場合、最後のDUを除いて、現在のAU中のあらゆるDUのCPB除去時間は、正しく導出することができない。
[0046]対照的に、失われたタイミング情報に対する、システムまたはコーダの脆弱性を低下させることができる技法が、本明細書に記載される。たとえば、他のどのアクセスユニットの除去時間にも依存しない、AUのDUについてのコード化ピクチャバッファ除去時間を決定するための技法が提供される。たとえば、ビデオエンコーダが、現在のDUと、AU中の、復号順序において次のDUのCPB除去時間またはAU中の最後のDUのCPB除去時間のいずれかとの間の持続時間のいずれかに基づいて、ビデオデコーダによって受信されるべきピクチャタイミングSEIメッセージ中で、AUのDUについてのCPB除去時間をシグナリングする。したがって、AU中の各DUについてのタイミング情報が、別の、異なるAUからのタイミング情報に依存しないので、本開示は、ビデオコーディングにおけるコード化データユニットのCPB除去時間の、より誤り耐性があり効率的なシグナリングおよび導出のための技法について記載する。
[0047]CPB除去時間のシグナリングおよび導出のための既存の方法に関連した別の問題は、サブピクチャタイミングSEIメッセージ中のタイミング情報が、存在していても使用することができないことである。たとえば、DU CPB除去遅延情報を搬送するサブピクチャタイミングSEIメッセージが存在し得る。ただし、サブピクチャレベルCPB動作は、ビデオデコーダが、ピクチャタイミングSEIメッセージを常に使用し、サブピクチャタイミングSEIメッセージを使用することがないように指定される。したがって、サブピクチャタイミングSEIメッセージを表すのに使われるビットが無駄にされ得る。さらに、サブピクチャタイミングSEIメッセージ中でシグナリングされるDU CPB除去遅延は、関連付けられたDUのCPB除去時間と、バッファリング期間SEIメッセージに関連付けられた先行AUの第1のDUのCPB除去時間との間の差である。これは、ある程度誤り耐性があり得るが、時間差が多大な値になり得るので、効率的でない可能性もある。
[0048]ただし、サブピクチャタイミングサプルメンタルエンハンスメント情報(SEI)メッセージ中で搬送される情報を使用することができるようなやり方で、CPB除去時間導出を指定するための技法が、本開示において提供される。たとえば、CPB除去時間導出は、サブピクチャタイミングSEIメッセージ中で搬送される情報を使用することができるようなやり方で指定され、ビデオエンコーダは、復号順序においてAU中の最後のDUと、サブピクチャタイミングSEIメッセージに関連付けられたDUとのCPB除去の間の持続時間をシグナリングすることができ、エンコーダシグナリングとデコーダ導出の両方を、より効率的にし、誤り耐性をもたせる。
[0049]CPB除去時間のシグナリングおよび導出のための既存の方法に関連した別の問題は、ピクチャタイミングSEIメッセージとサブピクチャタイミングSEIメッセージ中のサブピクチャレベルCPBパラメータが両方とも、同じ機能性のために存在し得ることである。その機能性は、サブピクチャベースのCPB動作をサポートするために提供され得る。これらのパラメータを同じ機能性のために複製するのは、非効率的であり得る。SEIメッセージのいずれかのタイプでのただ1つのサブピクチャレベルCPBパラメータセットで十分であることが可能であり得る。ピクチャタイミングSEIメッセージのうちただ1つの中、またはサブピクチャタイミングSEIメッセージの中だが、両方の中ではない、サブピクチャCPBパラメータの存在を示すためにシグナリングされ得るシーケンスレベルフラグを提供するようにビデオエンコーダを構成する技法が、本明細書に記載される。このシーケンスレベルフラグを使って、ビデオデコーダは、ピクチャタイミングSEIメッセージ中またはサブピクチャタイミングSEIメッセージ中の、サブピクチャレベルCPB除去遅延パラメータなどのサブピクチャCPBパラメータを見つけるべきかどうか判断する。
[0050]CPB除去時間のシグナリングおよび導出のための既存の方法に関連したさらに別の問題は、復号ユニットの定義が、RSV_NVCL44〜RSV_NVCL47の範囲内、またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非VCL NALユニットを考慮していなかったことである。したがって、これらの非VCL NALユニットのうちいくつかが存在するとき、予期せぬサブピキュアレベルCPB挙動が起こり得る。対照的に、本開示は、RSV_NVCL44〜RSV_NVCL47の範囲内、またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非VCL NALユニットを含むように、復号ユニットの定義を拡張するための技法を提供する。
[0051]CPB除去時間のシグナリングおよび導出のための既存の方法に関連した別の起こり得る問題は、バッファリング期間SEIメッセージおよびリカバリポイントSEIメッセージが、時間識別値(TemporalId)の任意の値をもつAUに関連付けられ得ることである。したがって、エンコーダは、0よりも大きいTemporalIdをもつAUにおいてHRDを初期化することができる。この場合、時間スケーラビリティがサポートされるとき、同じバッファリング期間中の、より小さいTemporalId値をもつAUのCPB除去時間は、より大きいTemporalId値をもつAU中の情報に依存し得る。ただし、時間スケーラビリティが作用するためには、どのAUの復号プロセスも、より大きいTemporalIdをもつ別のAUに依存してはならない。本開示は、バッファリング期間SEIメッセージとリカバリポイントSEIメッセージとを、0よりも大きいTemporalIdをもつAUに関連付けることができないように制限するための技法をさらに提供する。
[0052]時間識別値(TemporalId)は、現在のピクチャをコーディングするために、どのピクチャを使うことができるかを示す階層的値であってよい。概して、特定のTemporalId値をもつピクチャは、可能性としては、それ以上のTemporalId値をもつピクチャ用の参照ピクチャになり得るが、逆は成り立たない。たとえば、1のTemporalId値をもつピクチャは、可能性としては、1、2、3、...のTemporalId値をもつピクチャ用の参照ピクチャになり得るが、0のTemporalId値をもつピクチャ用の参照ピクチャにはなり得ない。
[0053]最も低いTemporalId値は、最も低い表示レートも示し得る。たとえば、ビデオデコーダが、0のTemporalId値をもつピクチャのみを復号する場合、表示レートは、毎秒7.5個のピクチャになり得る。ビデオデコーダが、0および1のTemporalId値をもつピクチャのみを復号した場合、表示レートは、毎秒15個のピクチャになり得、以下同様である。
[0054]CPB除去時間のシグナリングおよび導出のための既存の方法に関連した、さらに起こり得る問題は、CPB除去時間導出プロセスにあり、sub_pic_cpb_params_present_flagが1に等しいとき、CPB除去時間の導出は、(CPBがAUレベルで動作するとき)0に等しいSubPicCpbFlagをもつ、および(CPBがサブピクチャレベルで動作するとき)1に等しいSubPicCpbFlagをもつ両方のケースに対して、最終到着時間と名目除去時間とを使う。ただし、最終到着時間および名目除去時間に使われる値は、2つのケースのうちただ1つについて(たとえば、0に等しいSubPicCPBFlagについて、または1に等しいSubPicCPBFlagについてのいずれか)導出することができ、したがって、他方のケースには利用可能でない。本明細書に記載する技法は、デコーダが、AUレベルまたはサブピクチャレベルでCPB除去時間を導出するべきかをシグナリングするためのフラグを提供する。たとえば、デコーダは、SubPicCpbFlagの値にかかわらず、AUレベルとサブピクチャレベルの両方についてCPB到着時間と名目除去時間とを導出するが、デコーダは、本明細書に記載する技法に従って、SubPicCpbFlagが0に等しいときは、AUレベルについてのみ、およびSubPicCpbFlagが1に等しいときは、サブピクチャレベルについてのみ、CPB除去時間を導出する。本明細書における記述者のように、CPB名目除去時間は、CPB除去時間についてのデフォルト値であってよい。典型的な条件を伴ういくつかの例では、CPB除去時間はCPB名目除去時間に等しい。ただし、いくつかの条件下では、それらの時間は異なり、CPB除去時間は、デフォルト値とはわずかに異なり得る。
[0055]本開示に記載される以下の技法は、上述した問題に対処することができる。たとえば、本開示に記載される技法は、より誤り耐性のあるコード化ピクチャバッファ除去時間決定を提供し得る。さらに、誤り耐性の強化に加え、本技法は、シグナリング効率を促進することができ、これにより、帯域幅、シグナリングオーバーヘッドを削減するとともに、コーディング効率を高める。また、本開示に記載される技法は、適正な時間スケーラビリティを可能にし得る。
[0056]そのような技法は、たとえば、他のどのアクセスユニットの除去時間にも依存しない、アクセスユニット(AU)の復号ユニット(DU)についてのコード化ピクチャバッファ除去時間を決定することを含み得る。たとえば、AUのDUについてのCPB除去時間が、現在のDUと、AU中の、復号順序において次のDUのCPB除去時間またはAU中の最後のDUのCPB除去時間のいずれかとの間の持続時間に基づいてシグナリングされる。技法は、本明細書に記載する技法に従って、ピクチャタイミングSEIメッセージのうちただ1つにおける、またはサブピクチャタイミングSEIメッセージにおける、サブピクチャCPBパラメータの存在を制御するためのシーケンスレベルフラグをシグナリングすることも含み得る。技法は、復号ユニットの定義を拡張することも含み得る。追加の技法は、バッファリング期間SEIメッセージとリカバリポイントSEIメッセージとを、変数、すなわち0よりも大きいTemporalIdをもつAUに関連付けることができないように制限することをさらに提供する。技法は、CPB除去時間をAUレベルまたはサブピクチャレベルで導出するかをシグナリングするためのフラグを提供することも含み得る。
[0057]これらの技法の実装形態に対する詳細について、下でより詳しく説明する。言及されない他の部分は、HEVC WD8と同じであり得る。
[0058]図1は、本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されているように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話送受話器、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイスなどを含む、様々なデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応し得る。
[0059]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。ただし、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。
[0060]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータで生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化ビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために記憶デバイス32上に記憶され得る。
[0061]宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信され、または記憶デバイス32上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30など、ビデオデコーダが使用するためのビデオエンコーダ20によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバに記憶される符号化ビデオデータとともに含まれる場合がある。
[0062]ディスプレイデバイス32は、宛先デバイス14と一体であってよく、またはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、ドットマトリックスディスプレイ、有機発光ダイオード(OLED)ディスプレイ、電子インク、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備えることができる。
[0063]宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移すことが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク16は、ソースデバイス12が、符号化ビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信することができる。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を支援するために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
[0064]代替的に、符号化データは、出力インターフェース22から記憶デバイス32に出力され得る。同様に、符号化データは、入力インターフェースによって記憶デバイス32からアクセスされ得る。記憶デバイス32は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、種々の分散されたデータ記憶媒体もしくはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、記憶デバイス32は、ソースデバイス12によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイス32から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含むいずれかの標準データ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。ストレージデバイス32からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
[0065]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。一部の例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0066]ビデオエンコーダ20およびビデオデコーダ30は、ITU−T Video Coding Experts Group(VCEG)のJoint Collaboration Team on Video Coding(JCT−VC)によって現在開発中の高効率ビデオコーディング(HEVC)規格およびISO/IEC Motion Picture Experts Group(MPEG)などのビデオ圧縮規格に従って動作し得る。ビデオエンコーダ20およびビデオデコーダ30は、HEVC WD8に従って動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、そのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)の拡張版またはそのような規格の拡張を含む、ITU−T H.261、ISO/IEC MPEG−1ビジュアル、ITU−T H.262またはISO/IEC MPEG−2ビジュアル、ITU−T H.263、(ISO/IEC MPEG−4 AVCとしても知られる)ISO/IEC MPEG−4ビジュアルおよびITU−T H.264など、他のプロプライエタリな規格または業界規格に従って動作することができる。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。
[0067]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP:user datagram protocol)などの他のプロトコルに準拠し得る。
[0068]ビデオエンコーダ20およびビデオデコーダ30は、各々1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実施し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
[0069]JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供することができる。
[0070]概して、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU)に分割され得ることを記述する。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序においていくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。たとえば、4分木のルートノードとしてのツリーブロックは、4つの子ノードに分割されてよく、各子ノードは、次に、親ノードとなり、別の4つの子ノードに分割されてよい。4分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード(すなわち、コード化ビデオブロック)を備える。コード化ビットストリームに関連するシンタックスデータは、ツリーブロックが分割され得る最大回数を定義することができ、コーディングノードの最小サイズも定義することができる。
[0071]CUは、コーディングノードと、コーディングノードに関連する予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、概して、コーディングノードのサイズに対応し、一般に、形状が方形である。CUのサイズは、8×8ピクセルから最大64×64以上のピクセルを有するツリーブロックのサイズまで及ぶ場合がある。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUに関連するシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモードもしくはダイレクトモードで符号化されるか、イントラ予測モードで符号化されるか、またはインター予測モードで符号化されるかの間で異なる場合がある。PUは、形状が非方形になるように区分され得る。CUに関連するシンタックスデータは、たとえば、4分木に従ってCUを1つまたは複数のTUに区分することも記述し得る。TUは、形状が方形または非方形であり得る。
[0072]HEVC規格は、CUごとに異なり得るTUに従う変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、通常、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用してより小さいユニットに再分割され得る。RQTのリーフノードは、変換ユニット(TU)と呼ばれる場合がある。TUに関連するピクセル差分値は、変換係数を生成するように変換されてよく、その変換係数は量子化され得る。
[0073]一般に、PUは、予測プロセスに関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、そのPU用のイントラ予測モードを記述するデータを含む場合がある。別の例として、PUがインターモード符号化されるとき、PUは、そのPU用の動きベクトルを定義するデータを含む場合がある。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルについての分解能(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトル用の参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述することができる。
[0074]一般に、TUは、変換プロセスおよび量子化プロセスのために使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数の変換ユニット(TU)を含む場合もある。予測に続いて、ビデオエンコーダ20は、PUに従ってコーディングノードによって識別されたビデオブロックから残差値を計算し得る。コーディングノードは、次いで、元のビデオブロックではなく残差値を参照するように更新される。残差値はピクセル差分値を備え、ピクセル差分値は、エントロピーコーディングのためのシリアル化変換係数(serialized transform coefficient)を生成するためにTU中で指定された変換と他の変換情報とを使用して変換係数に変換され、量子化され、走査され得る。コーディングノードはこれらのシリアル化変換係数を指すようにもう一度更新され得る。本開示は、一般に、CUのコーディングノードを指す「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示は、コーディングノードならびにPUおよびTUを含む、ツリーブロック、すなわち、LCUまたはCUを指す「ビデオブロック」という用語も使用し得る。
[0075]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。ピクチャのグループ(GOP)は、一般に、一連の1つまたは複数のビデオピクチャを備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうち1つまたは複数のヘッダ中、または他の場所に含み得る。各ピクチャのスライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックはCU内のコーディングノードに対応し得る。ビデオブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なることがある。
[0076]一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると想定すると、HMは、PUサイズが2N×2NまたはN×Nのイントラ予測、および対称なPUサイズが2N×2N、2N×N、N×2N、またはN×Nのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、その後に「Up」、「Down」、「Left」、または「Right」という指示が続く「n」によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
[0077]本開示では、「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に等しいとは限らない。
[0078]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ20は、CUのTUによって指定された変換が適用される残差データを計算し得る。残差データは、符号化されていないピクチャのピクセルと、CUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを形成し、次いで、残差データを変換して、変換係数を生成し得る。
[0079]変換係数を生成するための任意の変換後に、ビデオエンコーダ20は、変換係数の量子化を実施することができる。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減させることができる。たとえば、量子化中にnビット値がmビット値に切り捨てられてよく、ただし、nはmよりも大きい。
[0080]いくつかの例では、ビデオエンコーダ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が使用するための、符号化ビデオデータに関連付けられるシンタックス要素をエントロピー符号化し得る。
[0081]CABACを実施するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が0ではないかどうかに関係し得る。CAVLCを実施するために、ビデオエンコーダ20は、送信されるべきシンボルの可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCを使用すると、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を実現し得る。確率決定は、シンボルに割り当てられたコンテキストに基づくことができる。
[0082]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、本開示で説明される1つまたは複数の例示的技法を実装するように構成され得る。ビデオエンコーダ20は、1つまたは複数の復号ユニットに分けられているアクセスユニットの形のビデオデータを符号化することができる。これらのアクセスユニットは、コード化ピクチャバッファに一時的に記憶され得る。ビデオデコーダ30は、それぞれのAUまたはDUについてのシンタックス要素に含まれるタイミング情報に基づいて、DUを、復号のために復号順序において抽出することができる。
[0083]本開示に記載される技法によると、「復号ユニット」という用語は、次のように定義することができる。復号ユニットは、アクセスユニットまたはアクセスユニットのサブセットである。シンタックス要素SubPicCpbFlagが0に等しい場合、復号ユニットはアクセスユニットである。そうでない場合、DUは、AU中の1つまたは複数のVCL NALユニットと、関連付けられた非VCL NALユニットとを含む。非VCL NALユニットが、RSV_NVCL44〜RSV_NVCL47の範囲内、またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUT、FD_NUTを有する場合、非VCL NALユニットは、復号順序において直近の先行VCL NALユニットに関連付けられ、そうでない場合、非VCL NALユニットは、復号順序において第1の後続VCL NALユニットに関連付けられる。本明細書に記載する技法に従って非VLC NALユニットを正しく考慮するために、DUは、RSV_NVCL44〜RSV_NVCL47の範囲内、またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非VCL NALユニットを考慮するように定義され得る。
[0084]本開示に記載される技法によると、「動作点」という用語は、次のように定義することができる。動作点は、nuh_reserved_zero_6bits値セット(OpLayerIdSetと示される)およびTemporalId値(OpTidと示される)ならびにHEVC WD8のサブクローズ10.1において指定されるサブビットストリーム抽出プロセスの出力として導出される、関連付けられたビットストリームサブセットによって識別される。シンタックス要素OpTidおよびOpLayerIdSetは、入力として機能し、別個に復号可能であり得る。
[0085]本明細書に記載する技法に従って生成されるビットストリームのいくつかの例は、一定のレベルのビットストリーム適合を有し得る。HEVC WD8のサブクローズ10.1は、両端値を含む0〜6の範囲内の任意の値に等しいtIdTargetをもつ、および値0を含むtargetDecLayerIdSetをもつ、サブクローズ10.1に指定されるプロセスの出力に含まれるどのサブビットストリームもHEVCに適合し得ることが、ビットストリーム適合の要件であり得ると記述している。
[0086]いくつかの例では、適合ビットストリームは、0に等しいnuh_reserved_zero_6bitsおよび0に等しいTemporalIdをもつ1つまたは複数のコード化スライスNALユニットを含み得る。
[0087]本明細書に記載するプロセスへの入力は、変数tIdTargetおよびリストtargetDecLayerIdSetであり得る。出力は、サブビットストリームを含む。サブビットストリームは、targetDecLayerIdSet中の値の中にないtIdTargetよりも大きいTemporalIdまたはnuh_reserved_zero_6bitsをもつすべてのNALユニットを、ビットストリームから除去することによって導出され得る。
[0088]各NALユニットは、ヘッダ情報に関連付けられ得る。NALユニットヘッダセマンティクスについては、以下を指定すればよい。復号中、デコーダ30は、nal_unit_typeの予約済み値を使うすべてのNALユニットの内容を無視してよい(たとえば、ビットストリームから除去し、破棄してよい)。HEVC WD8の付属書類Cにおいて指定されるHRD動作中、テストされている、選択された動作点に依存して、nal_unit_typeの予約済み値をもつNALユニットが、CPB到着および除去時間の導出において考慮され得るが、復号中は、安全に無視(除去および破棄)されてよい。
[0089]復号中、デコーダは、0に等しくないnuh_reserved_zero_6bitsの値をもつすべてのNALユニットを無視して(たとえば、ビットストリームから除去し、破棄して)よい。HEVC WD8の付属書類Cにおいて指定されるHRD動作中、テストされている、選択された動作点に依存して、nuh_reserved_zero_6bitsの予約済み値をもつNALユニットが、CPB到着および除去タイミングの導出において考慮され得るが、復号中は、安全に無視(除去および破棄)されてよい。
[0090]コード化ピクチャバッファ到着時間および除去時間は、アクセスユニットレベルおよびサブピクチャレベルという2つのレベルに基づき得る。ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、DUがAUであるかどうか(たとえば、AUがただ1つのDUを含むかどうか)を定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方についてのCPB到着時間とCPB名目除去時間とを導出するように構成され得る。シンタックス要素はSubPicCpbFlagであってよく、これは、各AUについてシグナリングされることになる。上述したように、SubPicCpbFlagが0に等しいとき、DUがAU全体を作り上げる。そうではなく、SubPicCpbFlagが非ゼロ値に等しいとき、DUは、AU中の1つまたは複数のVCL NALユニットと、関連付けられた非VCL NALユニットとを含む。いくつかの例では、ビデオコーダは、DUがAUであることをシンタックス要素が示すとき、AUレベルについてのCPB除去時間も導出するように構成され得る。これらの例のうちいくつかでは、ビデオコーダは、DUがAUであることをシンタックス要素が示すとき、AUレベルについてのみ、CPB除去時間を導出するように構成され得る。
[0091]いくつかの例では、ビデオコーダ(たとえば、ビデオエンコーダ20やビデオデコーダ30)は、DUがAUでないことをシンタックス要素が示すとき、サブピクチャレベルについてのCPB除去時間も導出するように構成され得る。これらの例のうちいくつかでは、ビデオコーダは、DUがAUでないことをシンタックス要素が示すとき、サブピクチャレベルについてのみ、CPB除去時間を導出するように構成され得る。
[0092]サブピクチャレベルCPB除去遅延パラメータが存在するとともにCPBがAUレベルまたはサブピクチャレベルで動作し得ることを第2のシンタックス要素が指定するとき、ビデオコーダは、CPB到着時間とCPB名目除去時間とを導出するように構成され得る。第2のシンタックス要素は、sub_pic_cpb_params_present_flagであり得る。sub_pic_cpb_params_present_flagが1に等しいとき、サブピクチャレベルCPB除去遅延パラメータが存在し、CPBはアクセスユニットレベルまたはサブピクチャレベルで動作することができ、sub_pic_cpb_params_present_flagが0に等しいとき、サブピクチャレベルCPB除去遅延パラメータは存在せず、CPBはアクセスユニットレベルで動作する。
[0093]sub_pic_cpb_params_present_flagが1に等しい例のうちいくつかにおいて、ビデオコーダは、変数subPicParamsPresentFlagを0に等しくセットし、AU初期および最終到着時間を導出するように構成され得る。次いで、ビデオコーダは、変数subPicParamsPresentFlagを1に等しくセットし、AU内のDUについてのDU初期および最終到着時間を導出するように構成され得る。
[0094]さらに、いくつかの例では、ビデオコーダ(たとえば、ビデオエンコーダ20やビデオデコーダ30)は、アクセスユニット中の第1の復号ユニットとアクセスユニット中の第2のDUとのCPB除去の間の持続時間をコーディングする(たとえば、符号化または復号する)ように構成され得る。この例では、第2のDUは、復号順序において、第1のDUの後であり、DUと同じAU中にある。ビデオコーダは、コード化持続時間に少なくとも基づいて、第1のDUの除去時間を決定するように構成され得る。いくつかの技法では、ビデオコーダは、初期CPB除去遅延とオフセットとをコーディングせずに、第1のDUの除去時間を決定することができる。いくつかの例では、第2のDUは、アクセスユニット中で、第1のDUの直後である。いくつかの例では、第2のDUは、復号順序において、アクセスユニット中の最後のDUである。
[0095]ビデオコーダ(たとえば、ビデオエンコーダ20やビデオデコーダ30)は、サブピクチャレベルCPBパラメータをコーディングするようにも構成され得る。これらの例では、ビデオコーダは、第1のDUベースの、コード化持続時間およびサブピクチャレベルCPBパラメータのうち少なくとも1つの除去時間を決定することができる。たとえば、サブピクチャレベルCPBパラメータは、第1のDUに関連付けられたサブピクチャタイミングSEIメッセージであり得る。いくつかの例では、ビデオコーダは、復号順序においてAU中の最後のDUと、サブピクチャSEIメッセージ中の第1のDUとの除去時間の間の持続時間をコーディングすることができる。いくつかの例では、ビデオコーダは、ピクチャタイミングSEIメッセージにおける、またはサブピクチャタイミングSEIメッセージにおける、サブピクチャレベルCPBパラメータの存在を示すように、シーケンスレベルフラグをコーディングすればよい。
[0096]たとえば、ビデオエンコーダ20は、AU中の第1のDUと、AU中の第2のDUとのCPB除去の間の持続時間を符号化するように構成され得る。ビデオエンコーダ20は、ピクチャタイミングSEIメッセージまたはサブピクチャタイミングSEIメッセージのいずれかの1つの中の、サブピクチャレベルCPB除去遅延パラメータなどのサブピクチャレベルCPBパラメータを符号化することができる。ビデオエンコーダ20は、サブピクチャレベルCPBパラメータがピクチャタイミングSEIメッセージまたはサブピクチャタイミングSEIメッセージ中に存在するかを示すためのフラグ、すなわちsub_pic_cpb_params_in_pic_timing_sei_flagを符号化することができる。
[0097]たとえば、ビデオデコーダ30は、AU中の第1のDUと、AU中の第2のDUとのCPB除去の間の持続時間を復号する。ビデオデコーダ30は、復号された持続時間に少なくとも基づいて、第1のDUの除去時間を決定するように構成され得る。いくつかの技法では、ビデオコーダは、初期CPB除去遅延とオフセットとを復号せずに、第1のDUの除去時間を決定することができる。ビデオデコーダ30は、ビデオエンコーダ20から受信されたピクチャタイミングSEIメッセージまたはサブピクチャタイミングSEIメッセージからのサブピクチャレベルCPBパラメータを復号することができる。ビデオデコーダ30は、フラグ、すなわちsub_pic_cpb_params_in_pic_timing_sei_flagの存在に基づいて、サブピクチャレベルCPBパラメータについて、どのSEIメッセージを調べるべきか決定することができる、
[0098]本開示に記載される例示的技法のうちいくつかにおいて、第2のDUの時間識別値(TemporalId)は、第1のDUのTemporalIdよりも大きくてはならない。いくつかの例では、第2のDUのTemporalIdは、ゼロよりも大きくてはならない。
[0099]たとえば、本開示に記載される技法は、より誤り耐性のあるコード化ピクチャバッファ除去時間決定を実現し得る。さらに、誤り耐性の強化に加え、本技法は、シグナリング効率を促進することができ、これにより、帯域幅、シグナリングオーバーヘッドを削減するとともに、コーディング時間を増やす。また、本開示に記載される技法は、強化した時間スケーラビリティを可能にし得る。
[0100]図2は、本開示で説明する技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実施することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために、空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために、時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
[0101]図2の例では、ビデオエンコーダ20は、区分ユニット35と、予測処理ユニット41と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロック再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62と、フィルタユニット64と、復号ピクチャバッファ(DPB)ユニット66とを含む。復号ピクチャバッファ66は参照ピクチャメモリと呼ばれる場合もある。他の例では、ビデオエンコーダ20は、より多いか、より少ないか、または異なる機能構成要素を含み得る。
[0102]図2に示されるように、ビデオエンコーダ20はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。このビデオデータの区分は、たとえば、LCUおよびCUの4分木構造に応じて、ビデオデータを、スライス、タイル、または他のより大きいユニットに区分すること、ならびにビデオブロック区分も含み得る。ビデオエンコーダ20は、一般に、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(および、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。
[0103]予測処理ユニット41は、誤差結果(たとえばコーディングレートおよびひずみのレベル)に基づいて現在のビデオブロックについて、複数のイントラコーディングモードの1つ、または複数のインターコーディングモードの1つなど、複数の可能なコーディングモードの1つを選択することができる。予測処理ユニット41は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化ブロックを再構築するために加算器62に与え得る。
[0104]予測処理ユニット41内に見られるイントラ予測処理ユニット46は、空間圧縮を行うために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して現在のビデオブロックのイントラ予測コーディングを実施し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対して現在のビデオブロックのインター予測コーディングを実施する。
[0105]動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスを、Pスライス、Bスライス、またはGPBスライスに指定し得る。動き推定ユニット42と動き補償ユニット44とは、統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実施される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する、現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
[0106]予測ブロックは、絶対値差分和(SAD)、差分2乗和(SSD)、または他の差分尺度によって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUに厳密に一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、復号ピクチャバッファ66に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間することができる。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
[0107]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUについての動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、復号ピクチャバッファ66に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0108]動き補償ユニット44によって実施される動き補償は、動き推定によって判断された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実施することを伴い得る。現在のビデオブロックのPUについての動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうち1つにおいて指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマおよびクロマの差分成分を含み得る。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0109]イントラ予測処理ユニット46は、上に記述したように、動き推定ユニット42および動き補償ユニット44によって実施されたインター予測の代替として、現在のブロックをイントラ予測することができる。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用するためにイントラ予測モードを決定することができる。一部の例では、イントラ予測処理ユニット46は、たとえば個別の符号化パスの間に、様々なイントラ予測モードを使用して、現在のブロックを符号化することができ、イントラ予測処理ユニット46(または一部の例ではモード選択ユニット40)は、テスト済みのモードから使用するために適切なイントラ予測モードを選択することができる。たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を求める。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを判断するために、様々な符号化ブロックのひずみおよびレートから比を計算し得る。
[0110]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含め得る。
[0111]予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
[0112]変換処理ユニット52は、結果として生成された変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減させることができる。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット56が走査を実施し得る。
[0113]量子化の後、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化することができる。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピー符号化方法または技法を実施し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化ビットストリームは、ビデオデコーダ30に送信されるか、またはビデオデコーダ30が後で送信するかもしくは取り出すためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コード化されている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
[0114]逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構築する。動き補償ユニット44は、残差ブロックを参照ピクチャリストのうち1つ内の参照ピクチャのうち1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構築された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構築された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算して、復号ピクチャバッファ66に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
[0115]ビデオエンコーダ20はまた、再構築されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングすることができるフィルタユニット64を含む。つまり、フィルタユニット64は、1つまたは複数のデブロッキング動作を実施して、CUに関連付けられたコーディングブロック内のブロッキングアーティファクトを低減させることができる。フィルタユニット64は、加算器62の出力をフィルタ処理するデブロッキングフィルタであってよい。追加のループフィルタ(ループ内またはループ後)もフィルタユニット64に加えて使用され得る。
[0116]復号ピクチャバッファ66は、フィルタユニット64が、再構築されたコーディングブロックに対して1回または複数のデブロッキング動作を実施した後、再構築されたコーディングブロックを記憶し得る。予測処理ユニット41は、再構築されたコーディングブロックを含む参照ピクチャを使用して、他のピクチャのPUに対してインター予測を実施し得る。加えて、イントラ予測処理ユニット46は、復号ピクチャバッファ66内の再構築されたコーディングブロックを使用して、CUと同じピクチャ内の他のPUに対してイントラ予測を実施することができる。
[0117]ビデオエンコーダ20は、本明細書に記載する技法に従って、AU内のDUのCPB除去時間に関連したシンタックス要素を生成することができる。これらのシンタックス要素が生成されると、ビデオエンコーダ20は、それらを1つまたは複数のビットストリームに符号化し、ビットストリームを出力する。
[0118]本開示によると、予測処理ユニット41は、上述した例示的機能を実施するための1つの例示的ユニットを表す。他の例では、予測処理ユニット41以外のユニットが、上記で説明した例を実装することができる。いくつかの他の例では、予測処理ユニット41は、ビデオエンコーダ20の1つまたは複数の他のユニットとともに、上記で説明した例を実装することができる。さらにいくつかの他の例では、ビデオエンコーダ20のプロセッサまたはユニットは、単独で、またはビデオエンコーダ20の他のユニットとともに、上述した例を実装することができる。
[0119]図3は、本開示で説明する技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換ユニット88と、加算器90と、復号ピクチャバッファ(DPB)92とを含む。予測処理ユニット81は、動き補償ユニット82と、イントラ予測処理ユニット84とを含む。コード化ピクチャバッファ(CPB)94が、ビデオデコーダ30への入力として示されている。ただし、いくつかの例では、CPB94はビデオデコーダ30の一部であってよい。ビデオデコーダ30は、いくつかの例では、図2のビデオエンコーダ20に関して説明した符号化パスとは概して逆の復号パスを実施し得る。
[0120]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオエンコーダ20からの、符号化ビデオスライスおよび関連するシンタックス要素からなるビデオブロックが、コード化ピクチャバッファ94から抽出され得る。CPB94からの符号化ビデオは、たとえば、復号ユニット(DU)を備えるアクセスユニット(AU)を含み得る。シンタックス要素は、アクセスユニットおよび復号ユニットについてのCPB除去時間を示す変数とフラグとを含み得る。
[0121]ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数と、動きベクトルと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0122]ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックについての予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、PまたはGPB)スライスとしてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうち1つ内の参照ピクチャのうち1つから生成され得る。ビデオデコーダ30は、復号ピクチャバッファ92に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構築し得る。
[0123]動き補償ユニット82は、動きベクトルおよび他のシンタックス要素をパースすることによって現在のビデオスライスのビデオブロックのための予測情報を判断し、その予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうち1つまたは複数のための構築情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを判断するために、受信されたシンタックス要素のいくつかを使用する。
[0124]動き補償ユニット82はまた、補間フィルタに基づいて補間を実施し得る。動き補償ユニット82は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用される補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0125]逆量子化ユニット86は、ビットストリーム中で与えられエントロピー復号ユニット80によって復号された、量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度と、同様に、適用されるべき逆量子化の程度とを判断するために、ビデオスライス内のビデオブロックごとにビデオエンコーダ20によって計算される量子化パラメータの使用を含む場合がある。逆変換ユニット88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0126]動き補償ユニット82が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器90は、この加算演算を実施する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタリングするためのデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化し、または他の方法でビデオ品質を改善するために、(コーディングループ内またはコーディングループ後の)他のループフィルタも使用され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶するDPB92に記憶される。DPB92はまた、図1のディスプレイデバイス32のようなディスプレイデバイス上での後の表示のために、復号ビデオを記憶する。
[0127]本開示によると、予測処理ユニット81は、上述した例示的機能を実施するための1つの例示的ユニットを表す。他の例では、予測処理ユニット81以外のユニットが、上記で説明した例を実装することができる。いくつかの他の例では、予測処理ユニット841は、ビデオデコーダ30の1つまたは複数の他のユニットとともに、上述した例を実装することができる。さらにいくつかの他の例では、ビデオデコーダ30のプロセッサまたはユニットは、単独で、またはビデオデコーダ30の他のユニットとともに、上述した例を実装することができる。
[0128]ビデオデコーダ30は、AUとDUとを含むビットストリームの形で、受信ビデオデータをコード化ピクチャバッファ(CPB)94に記憶することができる。ビデオデコーダ30は、ビデオデコーダ30がビットストリーム中で受信したシンタックス要素から決定された除去時間に、CPB94からDUとAUとを抽出することができる。SEIメッセージに存在するフラグおよび変数は、CPB94からDUをいつ除去するべきかを、ビデオデコーダ30に知らせることができる。現在のDUについての決定された除去時間に、ビデオデコーダ30は、CPB94から現在のDUを抽出し、DUを復号する。いくつかの例では、ビデオデコーダ30は、現在のDUがAUの最後のDUであるとき、AUも抽出する。
[0129]以下では、CPB94の動作について記載する。この記述は、存在するCPBパラメータの各々に、およびHEVC WD8の図C−1に示されるタイプIとタイプII適合点の両方に別個に当てはまることができ、その図では、CPBパラメータセットが、HEVC WD8のサブクローズC.1において指定されるように選択される。CPB94の動作は、ビットストリーム到着のタイミングと、復号ユニット除去および復号ユニットの復号のタイミングとを含み得る。各々について、順に記載する。
[0130]最初に、ビットストリーム到着のタイミングについて記載する。HRD初期化に先立つ、ビットストリーム到着のタイミングにおいて、CPB94は空である。いくつかの例では、初期化後、HRDは後続のバッファリング期間SEIメッセージによって再び初期化されることはない。
[0131]本開示に記載される例において、各アクセスユニットはアクセスユニット「n」と呼ばれ、数「n」は、特定のアクセスユニットを識別する。CPB94を初期化するバッファリング期間SEIメッセージに関連するアクセスユニットは、アクセスユニット0と呼ばれる。nの値は、復号順序において後続のアクセスユニットごとに1だけ増分される。
[0132]各復号ユニットは復号ユニット「m」と呼ばれ、数「m」は特定の復号ユニットを識別する。アクセスユニット0中の復号順序において第1の復号ユニットは復号ユニット0と呼ばれる。mの値は、復号順序において後続の復号ユニットごとに1だけ増分される。
[0133]sub_pic_cpb_params_present_flagが1に等しいとき、以下のプロセスが最初に呼び出され、すなわち、アクセスユニットnについてのアクセスユニット(AU)初期および最終到着時間の導出のために、変数subPicParamsPresentFlagが0に等しくセットされる。次いで、以下のプロセスが呼び出され、すなわち、アクセスユニットn中の復号ユニットについての復号ユニット初期および最終到着時間の導出のために、subPicParamsPresentFlagが1に等しくセットされる。
[0134]変数InitCpbRemovalDelay[SchedSelIdx]およびInitCpbRemovalDelayOffset[SchedSelIdx]は、次のようにセットされてよく、すなわち、以下の3つの条件のうち1つが真である場合、InitCpbRemovalDelay[SchedSelIdx]およびInitCpbRemovalDelayOffset[SchedSelIdx]が、バッファリング期間SEIメッセージ中の、それぞれ、NalHrdModeFlagに対応するinitial_alt_cpb_removal_delay[SchedSelIdx]およびinitial_alt_cpb_removal_delay_offset[SchedSelIdx]の値にセットされる。第1の条件は、アクセスユニット0が、BLA_W_DLPまたはBLA_N_LPに等しいnal_unit_typeをコード化ピクチャが有するリンク切断アクセス(BLA)アクセスユニットであり、バッファリング期間SEIメッセージのrap_cpb_params_present_flagの値が1に等しいときであり得る。第2の条件は、DefaultInitCpbParamsFlagが0に等しいことである。第3の条件は、subPicParamsPresentFlagが1に等しいことであり得る。いくつかの例では、sub_pic_cpb_params_present_flagが1に等しいとき、コード化ビデオシーケンスは、クリアランダムアクセス(CRA)またはBLAピクチャをもたない場合があり、したがって最初の2つの条件が両方とも偽になり得ることに留意されたい。
[0135]そうではなく、上記3つの条件のうちどれも真でない場合、InitCpbRemovalDelay[SchedSelIdx]およびInitCpbRemovalDelayOffset[SchedSelIdx]は、それぞれ、HEVC WD8のサブクローズC.1において指定されるように選択された、関連付けられたバッファリング期間SEIメッセージ中の、NalHrdModeFlagに対応するinitial_cpb_removal_delay[SchedSelIdx]およびinitial_cpb_removal_delay_offset[SchedSelIdx]の値にセットされる。
[0136]本明細書で説明する本例では、復号ユニットmの第1のビットがCPB94に入り始める時間は、初期到着時間tai(m)と呼ばれる。復号ユニットmの初期到着時間は次のように導出される。復号ユニットが復号ユニット0(すなわち、m=0)である場合、tai(0)=0である。つまり、第1の復号ユニットは時間0に到着する。それ以外の場合、第1の復号ユニットの後の復号ユニット(m>0である復号ユニットm)については、以下のことが当てはまる。
[0137]cbr_flag[SchedSelIdx]が1に等しくなる場合、復号ユニットmの初期到着時間が復号ユニットm−1、すなわち前の復号ユニットの最終到着時間(以下で導出されるt
ai)に等しくなる。式1は、以下の関係を与える。
そうでない場合(たとえば、cbr_flag[SchedSelIdx]が0に等しくなる)、復号ユニットm(たとえば、m>0の場合)のための初期到着時間は、式(「式」)2によって導出される。
[0138]復号ユニット到着時間t
ai,earliestは、次のように導出される。復号ユニットmが後続のバッファリング期間の第1の復号ユニットでない場合、t
ai,earliestは、式3に示すように導出される。
上式で、tr,n(m)は、CPB94からの復号ユニットmの名目除去時間である。
[0139]復号ユニットmについての最終到着時間は式4で導出される。
上式で、b(m)は、復号ユニットmの、ビットでのサイズである。タイプI適合点が当てはまる場合、b(m)は、VCL NALユニットおよびフィラーデータNALユニットのビットをカウントすることをインルクードする。タイプII適合点が当てはまる場合、b(m)は、タイプII適合点についてのタイプIIビットストリームのビットをすべてカウントすることを含む。タイプIおよびタイプII適合点は、HEVC WD8の付属書類Cの図C−1に示す通りである。
[0140]SchedSelIdx、BitRate[SchedSelIdx]、およびBitRate[SchedSelIdx]の値は、次のように制限される。復号ユニットmを含むAUおよび復号順序において前のAU(復号順序において)についての選択されたhrd_parameters()シンタックス構造の内容が異なる場合、配信スケジューラ(HSS)が、復号ユニットmを含むアクセスユニットについてのビットレート[SchedSelIdx1]またはCpbSize[SchedSelIdx1]を生じる、復号ユニットmを含むアクセスユニットについての、選択されたhrd_parameters()シンタックス構造中で与えられるSchedSelIdxの値の中から、SchedSelIdxの値SchedSelIdx1を選択する。ビットレート[SchedSelIdx1]またはCpbSize[SchedSelIdx1]の値は、前のアクセスユニットに使用されたSchedSelIdxの値SchedSelIdx0についてのビットレート[SchedSelIdx0]またはCpbSize[SchedSelIdx0]の値とは異なり得る。そうではなく、2つのAUについての選択されたhrd_parameters()シンタックス構造の内容が同じである場合、HSSは、SchedSelIdx、ビットレート[SchedSelIdx]、およびCpbSize[SchedSelIdx]の前の値で動作し続ける。
[0141]HSSが前のアクセスユニットのBitRate[SchedSelIdx]またはCpbSize[SchedSelIdx]の値とは異なるBitRate[SchedSelIdx]またはCpbSize[SchedSelIdx]の値を選択すると、以下が適用される。変数BitRate[SchedSelIdx]は時間tai(m)に効力を発する。変数CpbSize[SchedSelIdx]はいくつかの条件において効力を発する。
[0142]CpbSize[SchedSelIdx]の新しい値が古いCPBサイズよりも大きい場合、CpbSize[SchedSelIdx]は時間tai(m)に効力を発する。そうではなく、CpbSize[SchedSelIdx]の新たな値が元のCPBサイズ以下である場合、CpbSize[SchedSelIdx]の新たな値が、復号ユニットmを含むアクセスユニットの最後の復号ユニットのCPB除去時間において効力を発する。
[0143]SubPicCpbFlagが1に等しいとき、アクセスユニットnの初期CPB到着時間、すなわちtai(n)が、アクセスユニットn中の第1の復号ユニットの初期CPB到着時間にセットされる。アクセスユニットnの最終CPB到着時間、すなわちtaf(n)は、アクセスユニットn中の最後の復号ユニットの最終CPB到着時間にセットされる。SubPicCpbFlagが0に等しいとき、各DUはAUであり、したがって、アクセスユニットnの初期および最終CPB到着時間は、復号ユニットnの初期および最終CPB到着時間である。
[0144]本開示はここで、復号ユニットの、復号ユニット除去および復号のタイミングに関する、CPB94の動作の説明に移る。
[0145]変数InitCpbRemovalDelay[SchedSelIdx]およびInitCpbRemovalDelayOffset[SchedSelIdx]が、DU除去時間用に使われる。これらの2つの変数は、次のようにセットされる。2つの条件のいずれかが真の場合、バッファリング期間SEIメッセージ中のInitCpbRemovalDelay[SchedSelIdx]およびInitCpbRemovalDelayOffset[SchedSelIdx]は、それぞれ、NalHrdModeFlagに対応するInitial_alt_cpb_removal_delay[SchedSelIdx]およびInitial_alt_cpb_removal_delay_offset[SchedSelIdx]の値にセットされる。第1の条件は、アクセスユニット0が、BLA_W_DLPまたはBLA_N_LPに等しいnal_unit_typeをコード化ピクチャが有するBLAアクセスユニットであり、バッファリング期間SEIメッセージのrap_cpb_params_present_flagの値が1に等しいことである。第2の条件は、DefaultInitCpbParamsFlagが0に等しいことである。
[0146]それらの2つの条件のいずれも真でない場合、InitCpbRemovalDelay[SchedSelIdx]およびInitCpbRemovalDelayOffset[SchedSelIdx]は、それぞれ、HEVC WD8の付属書類CののサブクローズC.1において指定されるように選択された、関連付けられたバッファリング期間SEIメッセージ中で、NalHrdModeFlagに対応するinitial_cpb_removal_delay[SchedSelIdx]およびinitial_cpb_removal_delay_offset[SchedSelIdx]の値にセットされる。
[0147]CPB94からの復号ユニットmの除去の遅延時間に関連する変数CpbRemovalDelay(m)は、sub_pic_cpb_params_present_flagが1に等しいとき、次のように導出することができる。sub_pic_cpb_params_in_pic_timing_sei_flagが0に等しい場合、CpbRemovalDelay(m)は、復号ユニットmに関連付けられたサブピクチャタイミングSEIメッセージ中でdu_spt_cpb_removal_delayにセットされる。サブピクチャタイミングSEIメッセージは、HEVC WD8の付属書類CのサブクローズC.1において指定されるように選択され得る。
[0148]du_common_cpb_removal_delay_flagが0に等しい場合、変数CpbRemovalDelay(m)は、復号ユニットmを含むアクセスユニットに関連付けられた、HEVC WD8の付属書類CのサブクローズC.1において指定されるように選択されたピクチャタイミングSEIメッセージ中の復号ユニットmに対して、du_cpb_removal_delay_minus1[i]+1という値にセットされる。iの値は、復号ユニットmを含むアクセスユニット中の第1のnum_nalus_in_du_minus1[0]+1個の連続する復号ユニットに対しては0、同じアクセスユニット中の後続num_nalus_in_du_minus1[1]+1個の復号ユニットに対しては1、同じアクセスユニット中の後続num_nalus_in_du_minus1[2]+1個の復号ユニットに対しては2、などのようになる。
[0149]そうではなく、sub_pic_cpb_params_present_flagが1に等しくなく、du_common_cpb_removal_delay_flagも0に等しくない場合、CpbRemovalDelay(m)は、復号ユニットmを含むアクセスユニットに関連付けられた、HEVC WD8の付属書類CのサブクローズC.1において指定されるように選択されたピクチャタイミングSEIメッセージ中で、du_common_cpb_removal_delay_minus1+1の値にセットされる。
[0150]CPB94からのアクセスユニットnの名目除去時間は、次のように決定することもできる。アクセスユニットnがアクセスユニット0(すなわち、HRDを初期化するアクセスユニット)である場合、CPB94からのアクセスユニット0の名目除去時間、すなわちt
r,n(0)は、式5によって指定される。
[0151]それ以外の場合、nが非ゼロであるか、HRDを初期化していないアクセスユニットnについて、以下のことが当てはまる。アクセスユニットnが、HRDを初期化しないバッファリング期間の第1のアクセスユニットであるとき、CPB94からのアクセスユニットnの名目除去時間、すなわちt
r,n(n)は、式6によって指定される。
上式で、tr,n(nb)は、前のバッファリング期間の第1のアクセスユニットの名目除去時間であり、au_cpd_removal_delay_minus1(n)は、アクセスユニットnに関連付けられた、HEVC WD8の付属書類C、サブクローズC.1において指定されるように選択されたピクチャタイミングSEIメッセージ中のau_cpd_removal_delay_plus1の値である。アクセスユニットnが、バッファリング期間の第1のアクセスユニットであるとき、nbは、アクセスユニットnの名目除去時間tr,n(n)において、nに等しくセットされる。アクセスユニットnが、バッファリング期間の第1のアクセスユニットでないとき、tr,n(n)は式6によって与えられ、ここでtr,n(nb)は、現在のバッファリング期間の第1のアクセスユニットの名目除去時間である。
[0152]sub_pic_cpb_params_present_flagが1に等しいとき、CPB94から復号ユニットmを除去するための名目除去時間は、t
r,n(n)がアクセスユニットnの名目除去時間である場合、次のように指定され、すなわち、復号ユニットmが、アクセスユニットn中の最後の復号ユニットである場合、復号ユニットmの名目除去時間t
r,n(m)はt
r,n(n)にセットされる。つまり、アクセスユニットおよびその最後の復号ユニットは、ほぼ同じ時間にCPB94から除去される。そうでない場合、(すなわち、復号ユニットmがアクセスユニットn中の最後の復号ユニットではない)、復号ユニットmの名目除去時間、すなわちt
r,n(m)は、式7に示すように導出され、ここでt
r,n(n)は、アクセスユニットnの名目除去時間である。
[0153]CPB94からのアクセスユニットnの除去時間は、式8において次のように指定され、ここでt
af(m)およびt
r,n(m)は、それぞれ、アクセスユニットn中の最後の復号ユニットの最終到着時間および名目除去時間である。
[0154]SubPicCpbFlagが1に等しいとき、CPB94からの復号ユニットmの除去時間は、次のように指定される。low_delay_hrd_flagが0に等しくなり、またはt
r,n(m)≧t
af(m)である場合、復号ユニットmの除去時間は式9によって指定される。
そうではなく、復号ユニットmが、アクセスユニットnの最後の復号ユニットではない場合、復号ユニットmの除去時間は、式10によって指定される。
そうではなく、復号ユニットmが、アクセスユニットnの最後の復号ユニットである場合、復号ユニットmの除去時間は、式11によって指定される。
[0155]いくつかの例では、low_delay_hrd_flagが1に等しく、tr,n(m)<taf(m)であるとき、復号ユニットmのサイズ、すなわちb(m)は、名目除去時間における除去を妨げる程大きくなる。
[0156]復号ユニットmのCPB除去時間に、復号ユニットが瞬時に復号される。ピクチャnは、ピクチャの最後の復号ユニットが復号された後に復号されると見なされる。
[0157]以下の表は、本開示に記載される例示的技法を実装するのに使われ得るシンタックスとセマンティクスとを示す。表1は、バッファリング期間SEIメッセージについての例示的シンタックスとセマンティクスとを挙げる。表2は、ピクチャタイミングSEIメッセージについての例示的シンタックスとセマンティクスとを挙げる。CPB94の機能性は、SEIメッセージのシンタックスおよびセマンティクスによって決定され得る。たとえば、ビデオデコーダ30は、バッファリング期間およびピクチャタイミングSEIメッセージに少なくとも部分的に基づいて、CPB94からDUを抽出する。
[0158]バッファリング期間サプルメンタルエンハンスメント情報(SEI)メッセージは、初期CPB除去遅延および初期CPB除去遅延オフセットの情報を提供する。バッファリング期間SEIメッセージシンタックスは、2012年9月24日に出願された米国仮出願第61/705,102号におけるバッファリング期間SEIメッセージシンタックスと同じでよく、セマンティクスは、次のように変えられる。ブーファリング期間SEIメッセージシンタックスは、以下に示される表1に挙げられる。
[0159]バッファリング期間は、復号順序においてバッファリング期間SEIメッセージの2つの連続するインスタンスの間にアクセスユニットのセットとして指定される。
[0160]以下のことが、バッファリング期間SEIメッセージシンタックスおよびセマンティクスについて当てはまる。ビットストリーム(またはその一部)は、バッファレイング期間SEIメッセージが該当する動作点のうちいずれかに関連付けられたビットストリームサブセット(またはその一部)を指す。
[0161]バッファリングプレイオドSEIメッセージに対して、シンタックス要素initial_cpb_removal_delay_length_minus1およびsub_pic_cpb_params_present_flag、ならびに変数NalHrdBpPresentFlag、VclHrdBpPresentFlag、CpbSize[SchedSelIdx]、ビットレート[SchedSelIdx]、およびCpbCntが、バッファリング期間SEIメッセージが該当する動作点のいずれにも適用可能であるhrd_parameters()シンタックス構造およびsub_layer_hrd_parameters()シンタックス構造に見られるシンタックス要素において見つけられ、またはそこから導出される。
[0162]バッファリング期間SEIメッセージは、異なるOpTid値をもつ2つの動作点、すなわちtIdAとtIdBとを有し得る。異なるOpTid値をもつ任意の2つの動作点を有することは、それぞれの動作点に適用可能なhrd_parameters()シンタックスストラキュア中でコーディングされたcpb_cnt_minus1[tIdA]およびcpb_cnt_minus1[tIdB]の値が同一であることを示す。さらに、バッファリング期間SEIメッセージは、異なるOpLayerIdSet値、すなわちlayerIdSetAとlayerIdSetBとを有する、バッファリング期間SEIメッセージ中の2つの動作点を有し得る。異なるOpLayerIdSet値をもつ任意の2つの動作点を有することは、2つの動作ポインツムに適用可能な2つのhrd_parameters()シンタックスストラキュアについてのnal_hrd_parameters_present_flagおよびvcl_hrd_parameters_present_flagの値が、それぞれ同一であることを示す。
[0163]NalHrdBpPresentFlagまたはVclHrdBpPresentFlagが1に等しい場合、指定された動作点に適用可能なバッファリング期間SEIメッセージは、コード化ビデオシーケンス中の、0に等しいTemporalIdをもつどのAUにも存在することができ、指定された動作点に適用可能なバッファリング期間SEIメッセージは、各ランダムアクセスポイント(RAP)AUに、およびリカバリポイントSEIメッセージに関連付けられた各AUに存在することができる。そうでない場合(NalHrdBpPresentFlagおよびVclHrdBpPresentFlagが両方とも0に等しい)、コード化ビデオシーケンス中のどのアクセスユニットも、指定された動作点に適用可能なバッファリング期間SEIメッセージを有することはできない。
[0164]適用例によっては、バッファリング期間SEIメッセージの頻繁な存在が望ましいことがある。
[0165]バッファリング期間SEIメッセージを含むとともに0に等しいnuh_reserved_zero_6bitsを有するSEI NALユニットが存在するとき、SEI NALユニットは、復号順序において、AU中の第1のVCL NALユニットに先行し得る。
[0166]バッファリング期間SEIメッセージに関連付けられたアクセスユニットは、0に等しいTemporalIdを有し得る。
[0167]変数CpbCntは、cpb_cnt_minus1[tId]+1に等しくなるように導出され、ここでcpb_cnt_minus1[tId]は、バッファリング期間SEIメッセージが該当するとともにtIdに等しいOpTidを有する動作点のいずれにも適用可能なhrd_parameters()シンタックスストラキュアでコーディングされる。
[0168]バッファリング期間SEIメッセージ中の以下のシンタックス要素および変数は、次のように定義されてよく、すなわち、seq_parameter_set_idが有効シーケンスパラメータセットを指す。seq_parameter_set_idの値は、バッファリング期間SEIメッセージに関連するコード化ピクチャによって参照されるピクチャパラメータセット(「PPS」)中のseq_parameter_set_idの値に等しくなり得る。seq_parameter_set_idcの値は、両端値を含む0〜31の範囲内にあり得る。
[0169]1に等しいフラグrap_cpb_params_present_flagは、initial_alt_cpb_removal_delay[SchedSelIdx]およびinitial_alt_cpb_removal_delay_offset[SchedSelIdx]シンタックス要素の存在を指定する。rap_cpb_params_present_flagの値は、存在しない場合、0に等しいと推測され得る。関連付けられたピクチャがCRAピクチャでもBLAピクチャでもない場合、rap_cpb_params_present_flagの値は0に等しくなり得る。
[0170]シーケンス要素initial_cpb_removal_delay[SchedSelIdx]およびinitial_alt_cpb_removal_delay[SchedSelIdx]は、それぞれ、第SchedSelIdxのCPBについての、デフォルトおよび代替初期CPB除去遅延を指定する。シンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビット長を有し、たとえば、90kHzクロックの単位である。シンタックス要素の値は、0に等しくなくてよく、
以下であればよく、上式は、90kHzクロック単位での、CPBサイズの時間相当物である。
[0171]シンタックス要素initial_cpb_removal_delay_offset[SchedSelIdx]およびinitial_alt_cpb_removal_delay_offset[SchedSelIdx]は、それぞれ、第SchedSelIdxのCPBについての、デフォルトおよび代替初期CPB除去オフセットを指定する。シンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビット長を有し、90kHzクロックの単位である。これらのシンタックス要素は、デコーダによって使用され得ず、HEVC WD8の付属書類Cにおいて指定されている配信スケジューラ(HSS)のためにのみ必要とされ得る。
[0172]コード化ビデオシーケンス全体にわたって、initial_cpb_removal_delay[SchedSelIdx]とinitial_cpb_removal_delay_offset[SchedSelIdx]の合計は、SchedSelIdxの各値に対して一定であってよく、initial_alt_cpb_removal_delay[SchedSelIdx]とinitial_alt_cpb_removal_delay_offset[SchedSelIdx]の合計は、SchedSelIdxの各値に対して一定であってよい。
[0173]ピクチャタイミングSEIメッセージは、SEIメッセージに関連付けられたアクセスユニットについてのCPB除去遅延およびDPB出力遅延の情報を提供する。ピクチャタイミングSEIメッセージシンタックスおよびセマンティクスの一例は、表2において次のようになる。
[0174]以下のことが、ピクチャタイミングSEIメッセージシンタックスおよびセマンティクスについて当てはまる。シンタックス要素sub_pic_cpb_params_present_flag、sub_pic_cpb_params_in_pic_timing_sei_flag、cpb_removal_delay_length_minus1、dpb_output_delay_length_minus1、およびdu_cpb_removal_delay_length_minus1、ならびに変数CpbDpbDelaysPresentFlagは、ピクチャタイミングSEIメッセージが該当する動作点のいずれにも適用可能なhrd_parameters()シンタックス構造およびsub_layer_hrd_parameters()シンタックス構造において見られるシンタックス要素において見つけられ、またはそこから導出される。
[0175]ビットストリーム(またはその一部)は、ピクチャタイミングSEIメッセージが該当する動作点のうちいずれかに関連付けられたビットストリームサブセット(またはその一部)を指す。ただし、ピクチャタイミングSEIメッセージのシンタックスは、ピクチャタイミングSEIメッセージが該当する動作点に適用可能なhrd_parameters()シンタックス構造の内容に依存し得ることに留意されたい。これらのhrd_parameters()シンタックス構造は、ピクチャタイミングSEIメッセージに関連付けられたコード化ピクチャに有効なビデオパラメータセットおよび/またはシーケンスパラメータセットをインし得る。ピクチャタイミングSEIメッセージが、ビットトリーム中の第1のアクセスユニット、すなわちIDRアクセスユニット、またはBLAアクセスユニットであるCRAアクセスユニットに関連付けられているとき、同じアクセスユニット内のバッファリング期間SEIメッセージによって先行されない限り、ビデオパラメータセットおよびシーケンスパラメータセットの有効化(ならびに、ビットストリーム中の第1のピクチャではないIDRまたはBLAピクチャについては、コード化ピクチャがIDRピクチャまたはBLAピクチャであるという判断)は、コード化ピクチャの第1のコード化スライスNALユニットの復号まで起こらない。コード化ピクチャのコード化スライスNALユニットが、NALユニット順序においてピクチャタイミングSEIメッセージの後に続くとき、有効ビデオパラメータセットおよび/または有効シーケンスパラメータセットを決定するまで、ピクチャタイミングSEIメッセージを含む未加工バイトシーケンスペイロード(RBSP)を、デコーダが記憶し、次いで、ピクチャタイミングSEIメッセージのパーシングを実施することが必要な場合があり得る。
[0176]ビットストリーム中でのピクチャタイミングSEIメッセージの存在は、次のように指定される。CpbDpbDelaysPresentFlagが1に等しくなる場合、指定された動作点に適用可能なピクチャタイミングSEIメッセージは、コード化ビデオシーケンスのあらゆるアクセスユニット中にも存在し得る。そうでない場合、たとえば、CpbDpbDelaysPresentFlagが0に等しくなる場合、指定された動作点に適用可能などのピクチャタイミングSEIメッセージも、コード化ビデオシーケンスのどのアクセスユニット中にも存在し得ない。
[0177]ピクチャタイミングSEIメッセージを含むとともに0に等しいnuh_reserved_zero_6bitsを有するSEI NALユニットが存在するとき、SEI NALユニットは、復号順序において、アクセスユニット中の第1のVCL NALユニットに先行し得る。
[0178]シンタックス要素au_cpb_removal_delay_minus1+1は、ピクチャタイミングSEIメッセージに関連付けられたアクセスユニットをCPB94から除去する前に、CPB94などのCPBにある先行アクセスユニット中の直近のバッファリング期間SEIメッセージに関連付けられたアクセスユニットからの除去の後、何個のクロックティックを待つべきかを指定する。この値は、HSSのためのCPBへのアクセスユニットデータのできるだけ早い到着時間を計算するためにも使用され得る。そのシンタックス要素は、ビットの長さがcpb_removal_delay_length_minus1+1によって与えられる固定長コードである。
[0179]シンタックス要素au_cpb_removal_delay_minus1の(ビットでの)長さを決定するcpb_removal_delay_length_minus1の値は、ピクチャタイミングSEIメッセージに関連付けられたコード化ピクチャに有効なビデオパラメータセットまたはシーケンスパラメータセット中でコーディングされたcpb_removal_delay_length_minus1の値であるが、au_cpb_removal_delay_minus1+1は、異なるコード化ビデオシーケンスのアクセスユニットであり得る、バッファリング期間SEIメッセージを含む先行アクセスユニットの除去時間に関連したクロックティックの数を指定する。
[0180]シンタックス要素pic_dpb_output_delayは、ピクチャのDPB出力時間を計算するために使用される。pic_dpb_output_delayは、アクセスユニット中の最後の復号ユニットのCPBからの除去の後、復号ピクチャがDPBから出力される前に、何個のクロックティックを待つべきかを指定する。ピクチャは、「短期参照のために使用される」または「長期参照のために使用される」と依然としてピクチャがマーキングされているとき、それの出力時間にDPBから除去することはできない。いくつかの例では、ただ1つのpic_dpb_output_delayが、復号ピクチャ用に指定される。
[0181]シンタックス要素pic_dpb_output_delayの長さは、dpb_output_delay_length_minus1+1によってビットで与えられる。sps_max_dec_pic_buffering[minTid]が1に等しく、ピクチャタイミングSEIメッセージが該当するminTidが、すべての動作点のOpTid値の最小であるとき、pic_dpb_output_delayは、0に等しいものとする。出力タイミング適合デコーダから出力される任意のピクチャのpic_dpb_output_delayから導出される出力時間は、復号順序において任意の後続のコード化ビデオシーケンス中のすべてのピクチャのpic_dpb_output_delayから導出される出力時間に先行し得る。このシンタックス要素の値によって確立されるピクチャ出力順序は、PicOrderCntValの値(すなわち、ピクチャの出力または表示順序を示すPOC値)によって確立されるものと同じ順序であるものとする。
[0182]1に等しいか、または1に等しいと推論されるno_output_of_prior_pics_flagをもつ瞬時復号リフレッシュ(IDR)ピクチャまたはリンク切断アクセス(BLA)に復号順序において先行するので「バンピング」プロセスによって出力されないピクチャについて、pic_dpb_output_delayから導出される出力時間は、同じコード化ビデオシーケンス内のすべてのピクチャに関係するPicOrderCntValの値の増加とともに増加し得る。
[0183]シンタックス要素num_decoding_units_minus1+1は、ピクチャタイミングSEIメッセージに関連付けられたアクセスユニット中の復号ユニットの数を指定する。num_decoding_unit_minus1の値は、両端値を含む0〜PicSizeInCtbsY−1の範囲内にあり得る。1に等しいフラグdu_common_cpb_removal_delay_flagは、シンタックス要素du_common_cpb_removal_delay_minus1が存在すると指定する。0に等しいdu_common_cpb_removal_delay_flagが、シンタックス要素du_common_cpb_removal_delay_minus1が存在しないことを指定するとき。
[0184]シンタックス要素du_common_cpb_removal_delay_minus1+1は、ピクチャタイミングSEIメッセージに関連付けられたアクセスユニット中の、復号順序において任意の2つの連続する復号ユニットの、CPB94などのCPBからの除去の間の、サブピクチャクロックティックの単位での持続時間を指定する(HEVC WD8のサブクローズE.2.1参照)。この値は、HEVC WD8の付属書類Cにおいて指定されているように、HSSのためのCPBへの復号ユニットデータのできるだけ早い到着時間を計算するためにも使われる。そのシンタックス要素は、ビットの長さがdu_cpb_removal_delay_length_minus1+1によって与えられる固定長コードである。
[0185]シンタックス要素num_nalus_in_du_minus1[i]+1は、ピクチャタイミングSEIメッセージに関連付けられたAUの第iのDU中のNALユニットの数を指定する。num_nalus_in_du_minus1[i]の値は、両端値を含む0〜PicSizeInCtbsY−1の範囲内になる。たとえば、ビデオデコーダ30は、ピクチャタイミングSEIメッセージからのシンタックス要素num_nalus_in_du_minus1[i]+1の復号に基づいて、キューレントDU中に何個のNALユニットがあるか判断することができる。
[0186]AUの第1のDUは、AU中の復号順序において第1のnum_nalus_in_du_minus1[0]+1連続NALユニットを含み得る。AUの第i(iは0よりも大きい)のDUは、復号順序においてAUの前のDU中の最後のNALユニットの直後にくるnum_nalus_in_du_minus1[i]+1連続NALユニットからなる。各DU中に少なくとも1つのVCL NALユニットがあり得る。VCL NALユニットに関連付けられたすべての非VCL NALユニットは、VCL NALユニットと同じDUに含まれるものとする。ビデオデコーダ30は、num_nalus_in_du_minus1[i]などのシンタックス要素の復号に基づいて、DU中のNALユニットを判断する。
[0187]シンタックス要素du_cpb_removal_delay_minus1[i]+1は、ピクチャタイミングSEIメッセージに関連付けられたAU中の、復号順序において、第(i+1)のDUと、第iのDUとの、CPB94などのCPBからの除去の間の、サブピクチャクロックティックの単位での持続時間を指定する。この値は、HEVC WD8の付属書類Cにおいて指定されているように、HSSのためのCPBへのDUデータのできるだけ早い到着時間を計算するためにも使用され得る。そのシンタックス要素は、ビットの長さがdu_cpb_removal_delay_length_minus1+1によって与えられる固定長コードである。
[0188]いくつかの例では、シンタックス要素の長さはdu_common_cpb_removal_delay_minus1と同じであるが、その値は、バッファリング期間の開始の、AUのCPB除去時間に関連して指定されている場合がある。たとえば、ビデオデコーダ30は、復号されたCPB除去時間に関連したシンタックス要素の値を決定することができる。いくつかの例では、このことは、du_common_cpb_removal_delay_minus1のセマンティクスと矛盾し得ることが可能であり得る。たとえば、このことは、可能性としては、式7(HEVC WD8、付属書類Cの式C−10)と矛盾する場合があり、式7は、sub_pic_cpb_params_in_pic_timing_sei_flagがフラグ付けされている場合、tr,n(m)=tr,n(m+1)−tc_sub・CpdRemovalDelay(m)であると定義する。
[0189]いくつかの例では、du_cpb_removal_delay_minus1[i]+1は代替として、ピクチャタイミングSEIメッセージに関連付けられたAUと、ピクチャタイミングSEIメッセージに関連付けられたAU中の第iのDUとの、CPBからの除去の間の、サブピクチャクロックティックの単位での持続時間を指定する。この場合、AU中の最後のDUについての値のシグナリングは回避され得る。したがって、最後のDUについての除去時間が、対応するAUについての除去時間と同じであるので、ビデオデコーダ30は、ピクチャタイミングSEIメッセージからのAU中の最後のDUの値を決定しなくてよい。
[0190]代替として、au_cpb_removal_delay_minus1のセマンティクスにおいて、du_common_cpb_removal_delay_minus1およびdu_cpb_removal_delay_minus1[i]は、「CPB除去時間」ではなく「名目CPB除去時間」の間の遅延/差/持続時間を指定する。
[0191]以下の表3に、例示的なサブピクチャタイミングSEIメッセージシンタックスを挙げる。サブピクチャタイミングSEIメッセージは、SEIメッセージに関連付けられた復号ユニットについてのCPB除去遅延情報を提供する。例示的サブピクチャタイミングSEIメッセージシンタックスおよびセマンティクスは、次のようになる。
[0192]以下のことが、サブピクチャタイミングSEIメッセージシンタックスおよびセマンティクスについて当てはまる。シンタックス要素sub_pic_cpb_params_present_flag、sub_pic_cpb_params_in_pic_timing_sei_flag、およびcpb_removal_delay_length_minus1、ならびに変数CpbDpbDelaysPresentFlagは、サブピクチャタイミングSEIメッセージが該当する動作点のいずれにも適用可能なhrd_parameters()シンタックス構造およびsub_layer_hrd_parameters()シンタックス構造において見られるシンタックス要素において見つけられ、またはそこから導出される。ビットストリーム(またはその一部)は、サブピクチャタイミングSEIメッセージが該当する動作点のうちいずれかに関連付けられたビットストリームサブセット(またはその一部)を指す。
[0193]ビットストリーム中でのサブピクチャタイミングSEIメッセージの存在は、次のように指定される。CpbDpbDelaysPresentFlagが1に等しく、sub_pic_cpb_params_present_flagが1に等しく、sub_pic_cpb_params_in_pic_timing_sei_flagが0に等しい場合、指定された動作点に適用可能な1つのサブピクチャタイミングSEIメッセージが、コード化ビデオシーケンス中の各復号ユニットに存在し得る。そうでない場合、指定された動作点に適用可能などのサブピクチャタイミングSEIメッセージも、コード化ビデオシーケンス中に存在することはない。したがって、ビデオデコーダ30が、フラグを復号し、値が上でセットされた通りであると判断した場合、ビデオデコーダ30は、指定された動作点に適用可能なサブピクチャタイミングSEIメッセージはないと判断する。
[0194]サブピクチャタイミングSEIメッセージに関連付けられた復号ユニットは、復号順序において、サブピクチャタイミングSEIメッセージを含む任意の後続SEI NALユニットまでだが、それを含まない、AU中のすべての後続NALユニットを含む、サブピクチャタイミングSEIメッセージを含まない1つまたは複数のNALユニットが後に続く、サブピクチャタイミングSEIメッセージを含むSEI NALユニットからなる。各DU中に少なくとも1つのVCL NALユニットがあり得る。あるVCL NALユニットに関連付けられたすべての非VCL NALユニットは、そのVCL NALユニットと同じDUに含まれ得る。
[0195]いくつかの例では、シンタックス要素du_spt_cpb_removal_delayは、サブピクチャタイミングSEIメッセージを含む現在のアクセスユニット中の、復号順序において最後の復号ユニットと、サブピクチャタイミングSEIメッセージに関連付けられた復号ユニットとの、CPBからの除去の間の、サブピクチャクロックティックの単位での持続時間を指定する(HEVC WD8のサブクローズE.2.1参照)。この値は、HEVC WD8の付属書類Cにおいて指定されているように、HSSのためのCPBへの復号ユニットデータのできるだけ早い到着時間を計算するためにも使用され得る。そのシンタックス要素は、ビットの長さがdu_cpb_removal_delay_length_minus1+1によって与えられる固定長コードによって表される。サブピクチャタイミングSEIメッセージに関連付けられたDUが、現在のAU中の最後のDUであるとき、du_spt_cpb_removal_delayの値は0に等しいものとする。
[0196]代替として、他の例では、シンタックス要素du_spt_cpb_removal_delayは、サブピクチャタイミングSEIメッセージを含む現在のAU中の、復号順序において次のDUと、サブピクチャタイミングSEIメッセージに関連付けられたDUとの、CPB94からの除去の間の、サブピクチャクロックティックの単位での持続時間を指定する(HEVC WD8のサブクローズE.2.1参照)。この値は、HEVC WD8の付属書類Cにおいて指定されているように、HSSのためのCPB94への復号ユニットデータのできるだけ早い到着時間を計算するためにも使用され得る。そのシンタックス要素は、ビットの長さがdu_cpb_removal_delay_length_minus1+1によって与えられる固定長コードによって表される。サブピクチャタイミングSEIメッセージに関連付けられた復号ユニットが、現在のアクセスユニット中の最後の復号ユニットであるとき、du_spt_cpb_removal_delayの値は0に等しいものとする。代替として、どのサブピクチャタイミングSEIメッセージも、各アクセスユニット中の最後の復号ユニットには関連付けられない。
[0197]いくつかの例では、シンタックス要素du_spt_cpb_removal_delayは代替として、du_spt_cpb_removal_delay_minus1としてコーディングされる。シンタックス要素du_spt_cpb_removal_delay_minus1plus1は、サブピクチャタイミングSEIメッセージに関連付けられたDUをCPB94から除去する前に、CPB94から、先行AUの直近のバッファリング期間SEIメッセージに関連付けられたAU中の最後のDUをビデオデコーダ30が除去した後、何個のサブピクチャクロックティックを待つべきかを指定する。この値は、HEVC WD8の付属書類Cにおいて指定されているように、HSSのためのCPBへの復号ユニットデータのできるだけ早い到着時間を計算するためにも使用され得る。そのシンタックス要素は、ビットの長さがcpb_removal_delay_length_minus1+1によって与えられる固定長コードによって表される。
[0198]以下に挙げられる表4は、HRDパラメータのシンタックスおよびセマンティクスの一例を記述する。以下でセマンティクスが含まれていないシンタックス要素については、それらのセマンティクスは、2012年9月24日に出願された米国仮出願第61/705,102号におけるものと同じである。HRDパラメータのシンタックスおよびセマンティクスは、次のようになり得る。
[0199]1に等しいシンタックス要素sub_pic_cpb_params_in_pic_timing_sei_flagは、サブピクチャレベルCPB除去遅延パラメータがピクチャタイミングSEIメッセージ中に存在し、サブピクチャタイミングSEIメッセージが存在しないことを指定する。0に等しいsub_pic_cpb_params_in_pic_timing_sei_flagは、サブピクチャレベルCPB除去遅延パラメータがサブピクチャタイミングSEIメッセージ中に存在し、ピクチャタイミングSEIメッセージがサブピクチャレベルCPB除去遅延パラメータを含まないことを指定する。
[0200]1に等しいシンタックス要素sub_pic_cpb_params_present_flagは、サブピクチャレベルCPB除去遅延パラメータが存在し、CPBがアクセスユニットレベルまたはサブピクチャレベルで動作し得ることを指定する。0に等しいsub_pic_cpb_params_present_flagは、サブピクチャレベルCPB除去遅延パラメータが存在せず、CPBがアクセスユニットレベルで動作することを指定する。sub_pic_cpb_params_present_flagが存在しないとき、それの値は、0に等しくなると推論され得る。
[0201]図4は、本開示に記載される技法による復号時間を有し得る、連続する復号順序における2つのアクセスユニット100および102を示す概念図である。AU100および102、ならびにAU100および102に関連付けられたSEIメッセージについてのシンタックス要素および変数に関して、例示的コード化ピクチャバッファ除去時間について論じる。図4は、タイムライン130も示す。
[0202]本明細書に記載するように、AU100はアクセスユニットnであり、AU102はアクセスユニットn+1であり、ここでnは、n+1よりも復号順序において時間が早い。AU100は、4つの復号ユニット110−1、110−2、110−3、および110−4(まとめて、「復号ユニット110」と呼ばれる)を含む。本明細書に記載するように、たとえば、DU110−1はDU−Mと、DU110−2はDU−M+1と、DU110−3はDU−M+2と、DU110−4はDU−M+3と呼ばれ得る。AU102は、4つの復号ユニット112−1、112−2、112−3、および112−4(まとめて、「復号ユニット112」と呼ばれる)を含む。
[0203]同様に、本明細書に記載するように、たとえば、DU112−1はDU−Mと、DU112−2はDU−M+1と、DU112−3はDU−M+2と、DU112−4はDU−M+3と呼ばれ得る。ただし、どのアクセスユニットも「アクセスユニットn」であってよく、どの復号ユニットも「復号ユニットm」であってよい。他の例では、AU100および102は、それぞれ、異なる数のDU110および112を有し得る。どのDU110または112も、RSV_NVCL44〜RSV_NVCL47の範囲内、またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットであり得る。
[0204]この例では、アクセスユニット100および102は、コード化ピクチャバッファ、たとえば、図3のCPB94に記憶される。ビデオデコーダ30は、復号ユニット110および112とアクセスユニット100および102とを、決定された時間に、復号するためにCPB94から抽出する。CPB94からAUまたはDUを抽出するための時間は、CPB除去時間と呼ばれる。図4に示すように、AU100中のDU110についてのCPB除去時間は、CPB除去時間140−1、140−2、140−3、および140−4(まとめて、「CPB除去時間140」と呼ばれる)である。同様に、AU102中のDU112についてのCPB除去時間は、CPB除去時間142−1、142−2、142−3、および142−4(まとめて、「CPB除去時間142」と呼ばれる)である。AUのCPB除去時間は、そのAUの最後のDUのCPB除去時間と同じであり得る。たとえば、AU100のCPB除去時間は、DU110−4のCPB除去時間、すなわちCPB除去時間140−4とほぼ同じである。
[0205]一例では、AU102中の各DU112について、AU102中の、復号順序における次のDU112と、特定のDU112とのCPB除去時間の間の持続時間がシグナリングされる。たとえば、DU112−2は、CPB94から抽出されるとともにビデオデコーダ30によって復号されるべき、復号順序における、現在のDUである。DU112−2についてのCPB除去時間142−2と、DU112−3、すなわち復号順序における次のDUのCPB除去時間142−3との間の持続時間132が、たとえば、アクセスユニット102に関連付けられたSEIメッセージ中でシグナリングされる。ビデオデコーダ30は、シグナリングされた持続時間132に基づいて、DU112−2についてのCPB除去時間142−2を決定する。つまり、ビデオデコーダ30は、他のAU、すなわち、そのような、復号順序において前のAU100内の他のDUについてのどの除去時間でもなく、AU102内のDU112についての除去時間に基づいて、アクセスユニット102中の各DU112についてのCPB除去時間を導出することができる。したがって、ビデオデコーダ30は、DUおよびAUのCPB除去時間について、シグナリングおよび誤りレジリアンスの強化をもたらし得る。
[0206]AU102のDU112−2についてのCPB除去時間は、代替的やり方でシグナリングされ得る。たとえば、AU102に関連付けられたSEIメッセージ中で、DU112−2についてのCPB除去時間142−2と、AU102中の最後のDU、すなわちDU112−4についてのCPB除去時間142−4との間の持続時間134がシグナリングされる。ビデオデコーダ30は、DU112−4のシグナリングされたCPB除去時間142−4に基づいて、DU112−2についてのCPB除去時間142−2を決定する。
[0207]上記例のいずれかにおいて、ビデオデコーダ30は、DUについてのCPB除去時間を、同じAU内の他のDUから決定する。このように、どのDUについてのCPB除去時間も、その特定のDUのAUを除く他のどのAUにも依存しない。前のAUにおけるCPB除去タイミング情報の損失は、現在のAUのCPB除去時間の不正導出を引き起こさない。たとえば、AU100についてのCPB除去時間140の損失は、AU102についてのCPB除去時間142の決定に影響しない。したがって、ビデオデコーダ30は、DUおよびAUのCPB除去時間を決定するための、シグナリングおよび誤りレジリアンスの強化をもたらし得る。
[0208]ビデオデコーダ30は、サブピクチャタイミングSEIメッセージ中で搬送されるサブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、CPB除去時間を決定することもできる。そのような例において、CPB除去時間のシグナリングおよびCPB除去時間の導出は両方とも、効率的であり誤り耐性がある。ピクチャタイミングSEIメッセージ中またはサブピクチャタイミングSEIメッセージ中だが、両方の中ではない、サブピクチャレベルCPBパラムターの存在を制御するために、シーケンスレベルフラグがシグナリングされ得る。シーケンスレベルフラグは、上述したsub_pic_cpb_params_present_flagであってよい。このフラグはまた、サブピクチャレベルCPB動作についてのそのタイプのSEIメッセーグセからサブピクチャレベルCPB動作の使用を制御することができる。sub_pic_cpb_params_present_flagが1に等しいとき、AUレベルとサブピクチャレベルの両方についてのCPB到着時間およびCPB除去時間が、SubPicCpbFlagの値にかかわらずシグナリングされる。
[0209]いくつかの例では、AU100などのAUが、0よりも大きいTemporalIdを有する場合、どのバッファリング期間SEIメッセージまたはリカバリポイントSEIメッセージもAU100に関連付けられなくてよい。
[0210]図5は、本開示に記載される技法に従って、アクセスユニットの第2の復号ユニットについてのCPB除去時間に基づいて、アクセスユニット中の第1の復号ユニットのコード化ピクチャバッファ(CPB)除去時間を決定するための方法を示すフローチャートである。ビデオデコーダは、図5の方法を実施することができる。ビデオデコーダは、たとえば、図1または図3のビデオデコーダ30であってよい。
[0211]図5の方法は、AU中の第1のDUのCPB除去と第2のDUのCPB除去との間の持続時間を復号することを含み、第2のDUは、復号順序において、第1のDUの後であり、第1のDUと同じAU中にある(200)。第2のDUは、復号順序において、AU中の第1のDUの直後であり得る。代替として、第2のDUは、復号順序において、AU中の最後のDUであってよい。たとえば、ビデオデコーダ30は、ビデオエンコーダ20からビットストリームを受信し、CPB94中のAUとそれらそれぞれのDUとを、決定された除去時間における抽出のためにバッファリングすることができる。たとえば、ビデオデコーダ30は、CPB94からのAU中の第1のDUのCPB除去と、CPB94からの第2のDUのCPB除去との間の持続時間を復号することができ、ここで第2のDUは、復号順序において、第1のDUの後であり、第1のDUと同じAU中にある。
[0212]この方法は、コード化持続時間に少なくとも部分的に基づいて、第1のDUの除去時間を決定することをさらに含む(202)。たとえば、ビデオデコーダ30は、AU中の第1のDUのCPB除去と、第2のDUのCPB除去との間の復号された持続時間に基づいて、第1のDUについてのCPB除去時間を決定することができる。ビデオデコーダ30は、ほぼ、決定されたCPB除去時間に、CPB94からDUを抽出することができる。
[0213]いくつかの例では、図5の方法は、サブピクチャレベルCPBパラメータを復号することをさらに含み、第1のDUの除去時間を決定することは、復号された持続時間およびサブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、第1のDUの除去時間を決定することを備える。サブピクチャレベルCPBパラメータを復号することは、第1のDUに関連付けられたサブピクチャタイミングサプルメンタルエンハンスメント情報(SEI)メッセージを復号することを含み得る。
[0214]第2のDUが、復号順序において、AU中の最後のDUである例では、サブピクチャSEIメッセージをコーディングすることは、サブピクチャタイミングSEIメッセージ中の、最後のDUの除去時間と第1のDUの除去時間との間の持続時間を復号することを含む。いくつかの例では、シーケンスレベルフラグが復号されて、ピクチャタイミングSEIメッセージ中またはサブピクチャタイミングSEIメッセージ中のいずれかにおけるサブピクチャレベルCPBパラメータの存在を判断する。たとえば、シーケンスレベルフラグの復号およびそのサブピクチャレベルCPBパラメータがピクチャタイミングSEIメッセージ中に存在するという判断に応答して、ビデオデコーダ30は、ピクチャタイミングSEIメッセージを復号して、サブピクチャレベルCPBパラメータを解析することができる。同様に、シーケンスレベルフラグの復号およびそのサブピクチャレベルCPBパラメータがサブピクチャタイミングSEIメッセージ中に存在するという判断に応答して、ビデオデコーダ30は、サブピクチャタイミングSEIメッセージを復号して、サブピクチャレベルCPBパラメータをパースすることができる。
[0215]いくつかの例では、第1のDUの除去時間を決定することは、初期CPB除去遅延とオフセットとを復号することなく、第1のDUの除去時間を決定することを含む。AUが、0以下のTemporalIdを有するとき、方法は、AUに関連付けられたバッファリング期間SEIメッセージまたはリカバリポイントSEIメッセージのうち少なくとも1つを復号することをさらに含み得る。
[0216]本明細書に記載する復号ユニットは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつどの復号ユニット、ならびに非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットでもよい。したがって、ビデオデコーダ30は、本開示において記載される技法に従って、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非VCL NALユニットを含むDUを復号することができる。
[0217]別の例では、この方法は、第1のDUがAUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することを含む。たとえば、ビデオデコーダ30は、第1のDUがAUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間またはCPB名目除去時間のいずれかを導出する。
[0218]いくつかの例では、この方法は、第1のDUがAUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することを含む。方法は、第1のDUがAUであることをシンタックス要素が示すとき、AUレベルについてのCPB除去時間を導出することを含み得る。AUレベルについてのCPB除去時間を導出することは、DUがAUであることをシンタックス要素が示すとき、AUレベルについてのみのCPB除去時間を導出することを含み得る。
[0219]シンタックス要素はSubPicCpbFlagであってよく、ここでSubPicCpbFlagが0に等しいとき、DUはAUであり、そうでない場合、DUは、AU中の1つまたは複数のビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットと、関連付けられた非VCL NALユニットとを含む。いくつかの例では、シンタックス要素は第1のシンタックス要素を含み、ここで、CPB到着時間とCPB名目除去時間とを導出することは、サブピクチャレベルCPB除去遅延パラメータが存在するとともにアクセスユニットレベルまたはサブピクチャレベルでCPBが動作し得ることを第2のシンタックス要素が指定するとき、CPB到着時間とCPB名目除去時間とを導出することを備える。
[0220]第2のシンタックス要素はsub_pic_cpb_params_present_flagであってよく、ここで、sub_pic_cpb_params_present_flagが1に等しいとき、サブピクチャレベルCPB除去遅延パラメータが存在し、CPBはアクセスユニットレベルまたはサブピクチャレベルで動作することができ、sub_pic_cpb_params_present_flagが0に等しいとき、サブピクチャレベルCPB除去遅延パラメータは存在せず、CPBはアクセスユニットレベルで動作する。第2のシンタックス要素は、サブピクチャレベルCPB除去遅延パラメータが存在するとともにCPBがAUレベルまたはサブピクチャレベルで動作し得ることを指定し、方法は、変数subPicParamsPresentFlagが0に等しいと判断することと、AU初期到着時間およびAU最終到着時間を導出することと、変数subPicParamsPresentFlagが1に等しいと判断することと、アクセスユニット内の復号ユニットについてのDU初期到着時間およびDU最終到着時間を導出することとをさらに含み得る。
[0221]サブピクチャレベルについてのCPB除去時間は、DUがAUでないことをシンタックス要素が示すとき、導出することもできる。サブピクチャレベルについてのCPB除去時間を導出することは、DUがAUでないことをシンタックス要素が示すとき、サブピクチャレベルについてのみのCPB除去時間を導出することを含み得る。たとえば、ビデオデコーダ30は、DUがAUでないことをシンタックス要素が示すとき、サブピクチャレベルについてのCPB除去時間を導出することができる。
[0222]図6は、本開示に記載される技法に従って、アクセスユニットの第2の復号ユニットについてのCPB除去時間に基づいて、アクセスユニット中の第1の復号ユニットのコード化ピクチャバッファ(CPB)除去時間を決定するための別の方法を示すフローチャートである。ビデオエンコーダは、図6の方法を実施することができる。ビデオエンコーダは、たとえば、図1または図2のビデオエンコーダ20であってよい。
[0223]方法は、第1の復号ユニットDUを含むAUについて、第2のDUのCPB除去時間を決定することを含み、ここで第2のDUは、復号順序において第1のDUの後であり、第1のDUと同じAU中にある(210)。第2のDUは、復号順序において、AU中の第1のDUの直後であり得る。代替として、第2のDUは、復号順序において、AU中の最後のDUであってよい。いくつかの例では、ビデオエンコーダ20は、AUについてのCPB除去時間をスケジュールする。いくつかの例では、CPB除去時間は、ビデオエンコーダ20の外部のデバイスによってスケジュールされ、スケジュールはビデオエンコーダ20に与えられる。
[0224]AUについてのCPB除去時間は、AU中の最後のDUについてのCPB除去時間と同じであり得る。したがって、ビデオエンコーダ20は、AUのスケジュールされたCPB除去時間に基づいて、第2のDUのCPB除去時間を決定することができる。いくつかの例では、AUのスケジュールされたCPB除去時間に基づいて第2のDUのCPB除去時間を決定することは、AUに何個のDUが含まれるか判断することと、各CPBについてのスケジュールされた時間を決定することとを含む。たとえば、ビデオエンコーダ20は、第1の復号ユニットDUを含むAUについて、第2のDUのCPB除去時間を決定することができ、ここで第2のDUは、本明細書に記載する技法によると、復号順序において、第1のDUの後であり、第1のDUと同じAU中にある。
[0225]方法は、第1のDUのCPB除去時間と第2のDUの決定されたCPB除去時間との間の持続時間を決定することをさらに含む(212)。たとえば、ビデオエンコーダ20は、AUのスケジュールされたCPB除去時間およびAU中のDUの数に基づく、第1のDUについてのCPB除去時間の間の持続時間を決定することができる。いくつかの例では、ビデオエンコーダ20は、AU中の各DUについてのスケジュールされたCPB除去時間に基づいて、持続時間を決定する。
[0226]方法は、決定された持続時間を符号化することをさらに含む(214)。ビデオエンコーダ20は、決定された持続時間を、たとえば、サブピクチャレベルCPBパラメータセット中のシンタックス要素として符号化することができる。たとえば、方法は、サブピクチャレベルCPBパラメータを符号化することをさらに含んでよく、ここで、決定された持続時間を符号化することは、決定された持続時間を、1つまたは複数のサブピクチャレベルCPBパラメータとして符号化することを含む。サブピクチャレベルCPBパラメータを符号化することは、第1のDUに関連付けられたサブピクチャタイミングサプルメンタルエンハンスメント情報(SEI)メッセージを符号化することを含み得る。一例では、決定された持続時間を、1つまたは複数のサブピクチャレベルCPBパラメータとして符号化することは、決定された持続時間をサブピクチャタイミングSEIメッセージ中で符号化することをさらに備える。
[0227]第2のDUが、復号順序において、AU中の最後のDUである例では、サブピクチャSEIメッセージを符号化することは、サブピクチャタイミングSEIメッセージ中の、最後のDUの除去時間と第1のDUの除去時間との間の継続時間を符号化することを含む。いくつかの例では、シーケンスレベルフラグが符号化されて、ピクチャタイミングSEIメッセージ中またはサブピクチャタイミングSEIメッセージ中のいずれかにおけるサブピクチャレベルCPBパラメータの存在を示す。いくつかの例では、第1のDUの除去時間を決定することは、初期CPB除去遅延とオフセットとを符号化することなく、第1のDUの除去時間を決定することを含む。
[0228]AUが、0以下のTemporalIdを有するとき、方法は、AUに関連付けられたバッファリング期間SEIメッセージまたはリカバリポイントSEIメッセージのうち少なくとも1つを符号化することをさらに含み得る。
[0229]本明細書に記載するDUは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつどのタイプのDU、ならびに非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットでもよい。ビデオエンコーダ20は、本開示に記載される技法に従って、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非VCL NALユニットであるDUを含むどのDUも符号化することができる。
[0230]別の例では、この方法は、第1のDUがAUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することを含む。
[0231]いくつかの例では、この方法は、第1のDUがAUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することを含む。方法は、第1のDUがAUであることをシンタックス要素が示すとき、AUレベルについてのCPB除去時間を導出することを含み得る。AUレベルについてのCPB除去時間を導出することは、DUがAUであることをシンタックス要素が示すとき、AUレベルについてのみのCPB除去時間を導出することを含み得る。
[0232]シンタックス要素はSubPicCpbFlagであってよく、ここでSubPicCpbFlagが0に等しいとき、DUはAUであり、そうでない場合、DUは、AU中の1つまたは複数のビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットと、関連付けられた非VCL NALユニットとを含む。いくつかの例では、シンタックス要素は第1のシンタックス要素を含み、ここで、CPB到着時間とCPB名目除去時間とを導出することは、サブピクチャレベルCPB除去遅延パラメータが存在するとともにアクセスユニットレベルまたはサブピクチャレベルでCPBが動作し得ることを第2のシンタックス要素が指定するとき、CPB到着時間とCPB名目除去時間とを導出することを備える。
[0233]第2のシンタックス要素はsub_pic_cpb_params_present_flagであってよく、ここで、sub_pic_cpb_params_present_flagが1に等しいとき、サブピクチャレベルCPB除去遅延パラメータが存在し、CPBはアクセスユニットレベルまたはサブピクチャレベルで動作することができ、sub_pic_cpb_params_present_flagが0に等しいとき、サブピクチャレベルCPB除去遅延パラメータは存在せず、CPBはアクセスユニットレベルで動作する。第2のシンタックス要素は、サブピクチャレベルCPB除去遅延パラメータが存在するとともにCPBがAUレベルまたはサブピクチャレベルで動作し得ることを指定し、方法は、変数subPicParamsPresentFlagを0に等しくセットすることと、AU初期到着時間およびAU最終到着時間を導出することと、変数subPicParamsPresentFlagを1に等しくセットすることと、アクセスユニット内の復号ユニットについてのDU初期到着時間およびDU最終到着時間を導出することとをさらに含み得る。
[0234]サブピクチャレベルについてのCPB除去時間は、DUがAUでないことをシンタックス要素が示すとき、導出することもできる。サブピクチャレベルについてのCPB除去時間を導出することは、DUがAUでないことをシンタックス要素が示すとき、サブピクチャレベルについてのみのCPB除去時間を導出することを含み得る。たとえば、ビデオエンコーダ20は、DUがAUでないことをシンタックス要素が示すとき、サブピクチャレベルについてのCPB除去時間を導出することができる。
[0235]図7は、本開示に記載される技法による、サブピクチャタイミングSEIメッセージに少なくとも部分的に基づいて第1のDUのCPB除去時間を導出するための方法を示すフローチャートである。本方法はビデオ復号デバイスによって実施され得る。ビデオ復号デバイスは、たとえば、図1および図3のビデオデコーダ30であってよい。
[0236]方法は、アクセスユニットの第1の復号ユニットに関連付けられたサブピクチャタイミングSEIメッセージを復号することを含む(300)。たとえば、ビデオデコーダ30は、本明細書に記載する技法に従って、符号化データを含むとともにシンタックス要素に対応するビットストリームと、AUの第1のDUに関連付けられたサブピクチャタイミングSEIメッセージとを復号することができる。ビデオデコーダ30は、AUと、それらのそれぞれのDUとを、決定された除去時間における抽出のためにCPB94にバッファリングすることができる。たとえば、ビデオデコーダ30は、AUの第1のDUに関連付けられたサブピクチャタイミングSEIメッセージを復号することができる。
[0237]いくつかの例では、方法は、シーケンスレベルフラグを復号して、第1のDUに関連付けられた、サブピクチャタイミングSEIメッセージまたはピクチャタイミングSEIメッセージのいずれかにおけるサブピクチャレベルCPBパラメータの存在を判断することを含む。方法は、サブピクチャレベルCPBパラメータを復号することをさらに含んでよく、ここで、第1のDUのCPB除去時間を決定することは、サブピクチャレベルCPBパラメータにさらに少なくとも部分的に基づく。符号化ビットストリームの受信に応答して、ビデオデコーダ30は、シーケンスレベルフラグを復号し、シーケンスレベルフラグの値から、サブピクチャレベルCPBパラメータがサブピクチャタイミングSEIメッセージまたはピクチャタイミングSEIメッセージ中に見られるか判断することができる。シーケンスレベルフラグの値に基づいて、ビデオデコーダ30は、サブピクチャタイミングSEIメッセージまたはピクチャタイミングSEIメッセージを復号して、サブピクチャレベルCPBパラメータを復号することができる。
[0238]サブピクチャレベルCPBパラメータがサブピクチャタイミングSEIメッセージに存在するべきであることをシーケンスレベルフラグが示す例では、サブピクチャレベルCPBパラメータを復号することは、第1のDUに関連付けられたサブピクチャタイミングSEIメッセージを復号することを含み得る。第2のDUが、復号順序において、AU中の最後のDUである例では、サブピクチャSEIメッセージを復号することは、サブピクチャタイミングSEIメッセージ中の、最後のDUの除去時間と第1のDUの除去時間との間の継続時間を復号することをさらに備え得る。
[0239]方法は、サブピクチャSEIメッセージ中の、復号順序においてAUの第2のDUのコード化ピクチャバッファ(CPB)除去と第1のDUのCPB除去との間の持続時間を復号することをさらに含み、ここで持続時間はサブピクチャタイミングSEIメッセージ中にある(302)。たとえば、受信ビットストリームから、ビデオデコーダ30は、サブピクチャSEIメッセージ中の、復号順序においてAUの第2のDUのコード化ピクチャバッファ(CPB)除去と第1のDUのCPB除去との間の持続時間を復号することができる。
[0240]方法は、サブピクチャタイミングSEIメッセージに少なくとも部分的に基づいて、第1のDUのCPB除去時間を導出することも含む(304)。ビデオデコーダ30は、第1のDUを、復号するために、決定されたCPB除去時間にCPB94から抽出することができる。
[0241]いくつかの例では、第2のDUは、復号順序において、AU中の最後のDUである。第2のDUは、復号順序において、AU中の第1のDUの直後であり得る。いくつかの例では、第1のDUの除去時間を決定することは、初期CPB除去遅延とオフセットとを復号することなく、第1のDUの除去時間を決定することを備える。
[0242]DUは、非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを含む、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつどのタイプの復号ユニットでもよい。
[0243]本開示においてに記載される技法は、より誤り耐性のあるコード化ピクチャバッファ除去時間決定を可能にし得る。さらに、誤り耐性の強化に加え、本技法は、シグナリング効率を促進することができ、これにより、帯域幅、シグナリングオーバーヘッドを削減するとともに、コーディング時間を増やす。また、本開示に記載される技法は、適正な時間スケーラビリティを可能にし得る。
[0244]そのような技法は、たとえば、他のどのアクセスユニットの除去時間にも依存しない、AUのDUについてのコード化ピクチャバッファ除去時間を決定することを含み得る。たとえば、AUのDUについてのCPB除去時間は、AU中の、復号順序において次のDUのCPB除去時間の間の持続時間またはAU中の最後のDUのCPB除去時間の間の持続時間のいずれかに基づいてシグナリングされる。技法は、本明細書に記載する技法に従って、ピクチャタイミングSEIメッセージのうちただ1つにおける、またはサブピクチャタイミングSEIメッセージにおける、サブピクチャCPBパラメータの存在を制御するためのシーケンスレベルフラグをシグナリングすることも含み得る。技法は、復号ユニットの定義を拡張することも含み得る。追加の技法は、バッファリング期間SEIメッセージとリカバリポイントSEIメッセージとを、変数、すなわち0よりも大きいTemporalIdをもつAUに関連付けることができないように制限することをさらに提供する。技法は、CPB除去時間をAUレベルまたはサブピクチャレベルで導出するかをシグナリングするためのフラグを提供することも含み得る。
[0245]図8は、本開示に記載される技法による、サブピクチャタイミングSEIメッセージの符号化に少なくとも部分的に基づいて第1のDUのCPB除去時間を導出するための別の方法を示すフローチャートである。本方法はビデオ符号化デバイスによって実施され得る。ビデオ符号化デバイスは、たとえば、図1および図2のビデオエンコーダ20であってよい。
[0246]方法は、アクセスユニット(AU)中の第1の復号ユニット(DU)のコード化ピクチャバッファ(CPB)除去時間とAU中の第2のDUのCPB除去時間との間の持続時間を決定すること(310)を含む。持続時間は、たとえば、第1のDUについてのスケジュールされたCPB除去時間を、第2のDUについてのスケジュールされたCPB除去時間から減算したものから決定され得る。
[0247]方法は、AUに関連付けられたサブピクチャタイミングサプルメンタルエンハンスメント情報(SEI)メッセージ中の持続時間を符号化すること(312)をさらに含む。たとえば、ビデオエンコーダ20は、サブピクチャSEIメッセージ中の、復号順序においてAUの第2のDUのコード化ピクチャバッファ(CPB)除去と、第1のDUのCPB除去との間の持続時間を、ビットストリームに符号化することができる。たとえば、ビデオエンコーダ20は、本明細書に記載する技法に従って、符号化データを含むとともにシンタックス要素に対応するビットストリーム、AUの第1のDUに関連付けられたサブピクチャタイミングSEIメッセージを符号化することができる。
[0248]いくつかの例では、図8の方法は、シーケンスレベルフラグを符号化して、第1のDUに関連付けられた、サブピクチャタイミングSEIメッセージまたはピクチャタイミングSEIメッセージのいずれかにおけるサブピクチャレベルCPBパラメータの存在を示すことを含む。方法は、サブピクチャレベルCPBパラメータを符号化することをさらに含んでよく、ここで、第1のDUのCPB除去時間を決定することは、サブピクチャレベルCPBパラメータにさらに少なくとも部分的に基づく。たとえば、ビデオエンコーダ20は、第1のDUに関連付けられたサブピクチャタイミングSEIメッセージまたはピクチャタイミングSEIメッセージのいずれかの中のサブピクチャレベルCPBパラメータの存在を示すためのシーケンスレベルフラグを、ビットストリームに符号化することができる。ビデオエンコーダ20は、サブピクチャレベルCPBパラメータを、ビットストリームにさらに符号化することができる。
[0249]サブピクチャレベルCPBパラメータがサブピクチャタイミングSEIメッセージに存在するべきであることをシーケンスレベルフラグが示す例では、サブピクチャレベルCPBパラメータを符号化することは、第1のDUに関連付けられたサブピクチャタイミングSEIメッセージを符号化することを含み得る。第2のDUが、復号順序において、AU中の最後のDUである例では、サブピクチャSEIメッセージを符号化することは、サブピクチャタイミングSEIメッセージ中の、最後のDUの除去時間と第1のDUの除去時間との間の継続時間を符号化することをさらに備え得る。
[0250]いくつかの例では、第2のDUは、復号順序において、AU中の最後のDUである。第2のDUは、復号順序において、AU中の第1のDUの直後であり得る。いくつかの例では、第1のDUの除去時間を決定することは、初期CPB除去遅延とオフセットとを符号化することなく、第1のDUの除去時間を決定することを備える。
[0251]DUは、非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを含む、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつどのタイプの復号ユニットでもよい。
[0252]図9は、本開示に記載される技法による、サブピクチャレベルコード化ピクチャバッファパラメータについてのシーケンスレベルフラグを復号するための方法を示すフローチャートである。本方法はビデオ復号デバイスによって実施され得る。ビデオ復号デバイスは、たとえば、図1および図3のビデオデコーダ30であってよい。
[0253]方法は、シーケンスレベルフラグを復号して、DUに関連付けられたピクチャタイミングSEIメッセージまたはサブピクチャタイミングSEIメッセージ中のいずれかにおける、AUのDUについての1つまたは複数のサブピクチャレベルCPBパラメータの存在を判断することを含む(400)。たとえば、ビデオデコーダ30は、シーケンスレベルフラグを復号して、1つまたは複数のサブピクチャレベルCPBパラメータの存在を判断する。ビデオデコーダ30はまた、シーケンスレベルフラグを復号して、1つまたは複数のサブピクチャレベルCPBパラメータの場所を判断する。シーケンスレベルフラグは、sub_pic_cpb_params_present_flagであり得る。いくつかの例では、1つまたは複数のサブピクチャレベルCPBパラメータは、ピクチャタイミングSEIメッセージまたはサブピクチャタイミングSEIメッセージのうちただ1つの中に存在する。
[0254]方法は、シーケンスレベルフラグに基づいて、ピクチャタイミングSEIメッセージまたはサブピクチャタイミングSEIメッセージから、1つまたは複数のサブピクチャレベルCPBパラメータを復号することをさらに含み得る(402)。たとえば、1つまたは複数のサブピクチャレベルCPBパラメータがピクチャタイミングSEIメッセージに存在することを示すシーケンスレベルフラグに応答して、ビデオデコーダ30は、ピクチャタイミングSEIメッセージを復号して、1つまたは複数のサブピクチャレベルCPBパラメータを決定する。同様に、1つまたは複数のサブピクチャレベルCPBパラメータがサブピクチャタイミングSEIメッセージに存在することを示すシーケンスレベルフラグに応答して、ビデオデコーダ30は、サブピクチャタイミングSEIメッセージを復号して、1つまたは複数のサブピクチャレベルCPBパラメータを決定する。
[0255]方法は、1つまたは複数のサブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、DUのCPB除去時間を決定することをさらに含み得る。いくつかの例では、DUのCPB除去時間を決定することは、初期CPB除去遅延とオフセットとを復号することなく、DUのCPB除去時間を決定することを備える。
[0256]サブピクチャレベルCPBパラメータがサブピクチャタイミングSEIメッセージに存在することをシーケンスレベルフラグが示す例では、サブピクチャレベルCPBパラメータを復号することは、DUに関連付けられたサブピクチャタイミングSEIメッセージを復号することを含み得る。別の例では、方法は、第1のDUがAUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することを含み得る。つまり、ビデオデコーダ30は、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することができる。
[0257]別の例では、DUは第1のDUであり、方法は、サブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、第1のDUのCPB除去時間を導出することと、復号順序において、AUの第2のDUのCPB除去時間と、第1のDUのCPB除去時間との間の持続時間を復号することとをさらに含む。方法は、CPB除去時間に少なくとも部分的に基づいて、第1のDUのビデオデータを復号することをさらに含み得る。いくつかの例では、第2のDUは、復号順序において、AU中の最後のDU、または復号順序において、AU中の第1のDUの直後のいずれかである。
[0258]DUは、非VCL NALユニットを含む、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC12の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつどのDUでもよい。
[0259]0に等しいTemporalIdをAUが有する例では、方法は、AUに関連付けられたバッファリング期間SEIメッセージまたはリカバリポイントSEIメッセージのうち少なくとも1つを復号することをさらに含み得る。たとえば、ビデオデコーダ30は、0に等しいTemporalId値を有するAUに関連付けられたバッファリング期間SEIメッセージまたはリカバリポイントSEIメッセージのうち少なくとも1つを復号することができる。
[0260]図10は、本開示に記載される技法による、サブピクチャレベルコード化ピクチャバッファパラメータについてのシーケンスレベルフラグを符号化するための方法を示すフローチャートである。本方法はビデオ符号化デバイスによって実施され得る。ビデオ符号化デバイスは、たとえば、図1および図2のビデオエンコーダ20であってよい。
[0261]方法は、ピクチャタイミングSEIメッセージまたはサブピクチャタイミングSEIメッセージのいずれかにおける、アクセスユニット(AU)の復号ユニット(DU)についての1つまたは複数のサブピクチャレベルコード化ピクチャバッファ(CPB)パラメータを符号化すること(410)を含む。ビデオエンコーダ20は、1つまたは複数のサブピクチャレベルCPBパラメータ中のピクチャタイミングSEIメッセージを符号化することができる。代替として、ビデオエンコーダ20は、1つまたは複数のサブピクチャレベルCPBパラメータ中のサブピクチャタイミングSEIメッセージを符号化することができる。
[0262]方法は、DUに関連付けられたピクチャタイミングSEIメッセージまたはサブピクチャタイミングSEIメッセージ中のいずれかにおける、AUのDUについての1つまたは複数のサブピクチャレベルCPBパラメータの存在を示すためのシーケンスレベルフラグを符号化すること(412)をさらに含む。たとえば、ビデオエンコーダ20は、1つまたは複数のサブピクチャレベルCPBパラメータの存在と場所とを示すためのシーケンスレベルフラグを符号化する。シーケンスレベルフラグは、sub_pic_cpb_params_present_flagであり得る。いくつかの例では、ビデオエンコーダ20は、ピクチャタイミングSEIメッセージまたはサブピクチャタイミングSEIメッセージのうちただ1つの中の、1つまたは複数のサブピクチャレベルCPBパラメータを符号化する。
[0263]方法は、1つまたは複数のサブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、DUのCPB除去時間を決定することをさらに含み得る。いくつかの例では、DUのCPB除去時間を決定することは、初期CPB除去遅延とオフセットとを符号化することなく、DUのCPB除去時間を決定することを備える。
[0264]ある例では、1つまたは複数のサブピクチャレベルCPBパラメータを符号化することは、DUに関連付けられたサブピクチャタイミングSEIメッセージ中の1つまたは複数のサブピクチャレベルCPBパラメータを符号化することをさらに備える。そのような例において、ビデオエンコーダ20は、サブピクチャタイミングSEIメッセージ中にサブピクチャレベルCPBパラメータが存在することを示すためのシーケンスレベルフラグを符号化する。別の例では、1つまたは複数のサブピクチャレベルCPBパラメータを符号化することは、DUに関連付けられたピクチャタイミングSEIメッセージ中の1つまたは複数のサブピクチャレベルCPBパラメータを符号化することをさらに備える。その例において、ビデオエンコーダ20は、ピクチャタイミングSEIメッセージ中にサブピクチャレベルCPBパラメータが存在することを示すためのシーケンスレベルフラグを符号化する。
[0265]別の例では、DUは第1のDUであり、方法は、サブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、第1のDUのCPB除去時間を導出することと、復号順序において、AUの第2のDUのCPB除去時間と、第1のDUのCPB除去時間との間の持続時間を符号化することとをさらに含む。方法は、CPB除去時間に少なくとも部分的に基づいて、第1のDUのビデオデータを符号化することをさらに含み得る。いくつかの例では、第2のDUは、復号順序において、AU中の最後のDU、または復号順序において、AU中の第1のDUの直後のいずれかである。
[0266]DUは、非VCL NALユニットを含む、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC12の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつどのDUでもよい。
[0267]0に等しいTemporalIdをAUが有する例では、方法は、AUに関連付けられたバッファリング期間SEIメッセージまたはリカバリポイントSEIメッセージのうち少なくとも1つを符号化することをさらに含み得る。たとえば、ビデオエンコーダ20は、0に等しいTemporalId値を有するAUに関連付けられたバッファリング期間SEIメッセージまたはリカバリポイントSEIメッセージのうち少なくとも1つを符号化することができる。
[0268]図11は、本開示に記載される技法による、拡張定義を有するDUを復号するための方法を示すフローチャートである。本方法はビデオ復号デバイスによって実施され得る。ビデオ復号デバイスは、たとえば、図1および図3のビデオデコーダ30であってよい。
[0269]方法は、アクセスユニット(AU)中の第1の復号ユニット(DU)のコード化ピクチャバッファ(CPB)除去と第2のDUのCPB除去との間の持続時間を復号することを含み、ここで第1のDUは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える(500)。つまり、ビデオデコーダ30は、HEVC WD8において定義される他のDUタイプに加え、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットであるDUを復号することができる。
[0270]いくつかの例では、第2のDUは、復号順序において、第1のDUの後であり、第1のDUと同じAU中にある。第2のDUは、復号順序において、AU中の第1のDUの直後であり得る。他の例では、第2のDUは、復号順序において、AU中の最後のDUである。
[0271]方法は、復号された持続時間に少なくとも部分的に基づいて、第1のDUの除去時間を決定すること(502)も含む。方法は、除去時間に少なくとも部分的に基づいて、第1のDUのビデオデータを復号すること(504)をさらに含む。たとえば、ビデオデコーダ30は、復号された持続時間に部分的に基づいて第1のDUの除去時間を決定し、次いで、除去時間に基づいて第1のDUのビデオデータを復号する。
[0272]一例では、方法は、1つまたは複数のサブピクチャレベルCPBパラメータを復号することをさらに含んでよく、ここで第1のDUの除去時間を決定することは、復号された継続時間およびサブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、第1のDUの除去時間を決定することを備える。1つまたは複数のサブピクチャレベルCPBパラメータを復号することは、第1のDUに関連付けられたサブピクチャタイミングサプルメンタルエンハンスメント情報(SEI)メッセージを復号することをさらに含み得る。
[0273]第2のDUが、復号順序において、AU中の最後のDUである別の例では、サブピクチャSEIメッセージを復号することは、サブピクチャタイミングSEIメッセージ中の、最後のDUの除去時間と第1のDUの除去時間との間の継続時間を復号することを含む。いくつかの例では、ビデオデコーダ30は、シーケンスレベルフラグを復号して、ピクチャタイミングSEIメッセージにおける、またはサブピクチャタイミングSEIメッセージにおける、サブピクチャレベルCPBパラメータの存在を判断することができる。
[0274]0に等しいTemporalIdをAUが有する別の例では、ビデオデコーダ30は、AUに関連付けられたバッファリング期間SEIメッセージまたはリカバリポイントSEIメッセージのうち少なくとも1つを復号することができる。方法は、第1のDUがAUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することも含み得る。
[0275]図12は、本開示に記載される技法による、拡張定義を有するDUを符号化するための方法を示すフローチャートである。本方法はビデオ符号化デバイスによって実施され得る。ビデオ符号化デバイスは、たとえば、図1および図2のビデオエンコーダ20であってよい。
[0276]方法は、第1のDUを含むAUについて、第2のDUのCPB除去時間を決定することを含み、ここで第2のDUは、復号順序において、第1のDUの後であり、第1のDUと同じAU中にあり、第1のDUは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える(510)。つまり、ビデオエンコーダ20は、HEVC WD8において定義される他のDUタイプに加え、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非VCL NALユニットであるDUを符号化することができる。第2のDUは、復号順序において、および第1のDUと同じAU中で、第1のDUに後続してよく、直後を含む。他の例では、第2のDUは、復号順序において、AU中の最後のDUである。
[0277]方法は、第1のDUのCPB除去時間と第2のDUの決定されたCPB除去時間との間の持続時間を決定すること(512)も含む。第1のDUのCPB除去時間と第2のDUの決定されたCPB除去時間との間の持続時間の決定は、AUのスケジュールされたCPB除去時間に基づき得る。方法は、決定された持続時間を符号化すること(514)をさらに含む。たとえば、ビデオエンコーダ20は、第1のDUと第2のDUとのCPB除去の間の持続時間を決定し、次いで、決定された持続時間をシンタックス要素として符号化する。
[0278]一例では、方法は、1つまたは複数のサブピクチャレベルCPBパラメータを符号化することをさらに含んでよく、ここで第1のDUの決定された持続時間を決定することは、復号された継続時間およびサブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、第1のDUの除去時間を決定することを備える。1つまたは複数のサブピクチャレベルCPBパラメータを符号化することは、第1のDUに関連付けられたサブピクチャタイミングSEIメッセージを符号化することをさらに含み得る。
[0279]第2のDUが、復号順序において、AU中の最後のDUである別の例では、サブピクチャSEIメッセージを符号化することは、サブピクチャタイミングSEIメッセージ中の、最後のDUの除去時間と第1のDUの除去時間との間の継続時間を符号化することを含む。いくつかの例では、ビデオエンコーダ20は、シーケンスレベルフラグを符号化して、ピクチャタイミングSEIメッセージにおける、またはサブピクチャタイミングSEIメッセージにおける、サブピクチャレベルCPBパラメータの存在を示すことができる。
[0280]0に等しいTemporalIdをAUが有する別の例では、ビデオエンコーダ20は、AUに関連付けられたバッファリング期間SEIメッセージまたはリカバリポイントSEIメッセージのうち少なくとも1つを符号化することができる。方法は、第1のDUがAUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することも含み得る。
[0281]図13は、本開示に記載される技法による、バッファリング期間およびリカバリポイントSEIメッセージを復号するための方法を示すフローチャートである。本方法はビデオ復号デバイスによって実施され得る。ビデオ復号デバイスは、たとえば、図1および図3のビデオデコーダ30であってよい。
[0282]方法は、AUに関連付けられたバッファリング期間SEIメッセージを復号すること(530)を含む。AUは、0以下のtemporalIdを有する。つまり、バッファリング期間SEIメッセージは、0よりも大きいtemporalIdを有するAUに関連付けることができないように制限される。
[0283]方法は、バッファリング期間SEIメッセージから、AU中の第1のDUのCPB除去と第2のDUのCPB除去との間の持続時間を復号すること(532)をさらに含む。第2のDUは、第1のDUと同じAU中にあり得る。第2のDUは、復号順序において、第1のDUに続いてよく、直後を含む。他の例では、第2のDUは、AU中の、復号順序において最後のDUであってよい。DUは、HEVC WD8において容認されるどのDUタイプであってもよく、さらに、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつVCL NALユニットであってよい。
[0284]方法は、復号された持続時間に少なくとも部分的に基づいて、第1のDUの除去時間を決定すること(534)をさらに含み得る。いくつかの例では、ビデオデコーダ30は、1つまたは複数のサブピクチャレベルCPBパラメータを復号することができる。第1のDUの除去時間を決定することは、復号された持続時間およびサブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、第1のDUの除去時間を決定することをさらに含み得る。1つまたは複数のサブピクチャレベルCPBパラメータを復号することは、第1のDUに関連付けられたサブピクチャタイミングSEIメッセージを復号することをさらに含み得る。
[0285]方法は、除去時間に少なくとも部分的に基づいて、第1のDUのビデオデータを復号すること(536)をさらに含み得る。第2のDUが、復号順序において、AU中の最後のDUである例では、サブピクチャSEIメッセージを復号することは、サブピクチャタイミングSEIメッセージ中の、最後のDUの除去時間と第1のDUの除去時間との間の継続時間を復号することをさらに含む。
[0286]方法は、シーケンスレベルフラグを復号して、ピクチャタイミングSEIメッセージ中またはサブピクチャタイミングSEIメッセージ中でのサブピクチャレベルCPBパラメータの存在を判断することをさらに含み得る。方法は、第1のDUがAUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することも含み得る。
[0287]図14は、本開示に記載される技法による、バッファリング期間SEIメッセージを符号化するための方法を示すフローチャートである。本方法はビデオ符号化デバイスによって実施され得る。ビデオ符号化デバイスは、たとえば、図1および図2のビデオエンコーダ20であってよい。
[0288]方法は、アクセスユニット(AU)に関連付けられたバッファリング期間サプルメンタルエンハンスメント情報(SEI)メッセージを符号化すること(540)を含み、ここで持続時間は、バッファリング期間SEIメッセージまたはリカバリポイントSEIメッセージの少なくとも1つ内で符号化される。AUは、0以下のtemporalIdを有するので、バッファリング期間SEIメッセージは、0よりも大きいtemporalIdを有するAUに関連付けることができないように制限される。
[0289]方法は、バッファリング期間SEIメッセージから、AU中の第1のDUのCPB除去時間と、第2のDUのCPB除去時間との間の持続時間を符号化すること(542)も含んでよく、ここでAUは、0に等しいtemporalIdを有する。方法は、復号された持続時間に少なくとも部分的に基づいて、第1のDUの除去時間を決定すること(544)をさらに含み得る。さらに、方法は、第1のDUのビデオデータを符号化すること(546)を含み得る。
[0290]方法は、アクセスユニット(AU)中の第1の復号ユニット(DU)のコード化ピクチャバッファ(CPB)除去とAU中の第2のDUのCPB除去との間の持続時間を決定することをさらに含んでよく、ここでAUは、0に等しいTemporalIdを有する。第2のDUは、第1のDUと同じAU中にあり得る。第2のDUは、復号順序において、第1のDUに続いてよく、直後を含む。他の例では、第2のDUは、AU中の、復号順序において最後のDUであってよい。DUは、HEVC WD8において容認されるどのDUタイプであってもよく、さらに、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつVCL NALユニットであってよい。
[0291]一例では、第1のDUのCPB除去の間の持続時間を決定することは、第1および第2のDUの除去時間を決定することを含み得る。第1のDUの除去時間が第2のDUの除去時間から減算されて、持続時間を決定することができる。
[0292]いくつかの例では、ビデオエンコーダ20は、1つまたは複数のサブピクチャレベルCPBパラメータを符号化することができる。第1のDUの除去時間を決定することは、符号化された持続時間およびサブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、第1のDUの除去時間を決定することをさらに含み得る。1つまたは複数のサブピクチャレベルCPBパラメータを符号化することは、第1のDUに関連付けられたサブピクチャタイミングSEIメッセージを符号化することをさらに含み得る。
[0293]方法は、第1のDUのビデオデータを符号化することをさらに含み得る。第1のDUのビデオデータを符号化することは、除去時間に少なくとも部分的に基づき得る。第2のDUが、復号順序において、AU中の最後のDUである例では、サブピクチャSEIメッセージを符号化することは、サブピクチャタイミングSEIメッセージ中の、最後のDUの除去時間と第1のDUの除去時間との間の継続時間を符号化することをさらに含む。
[0294]方法は、ピクチャタイミングSEIメッセージ中またはサブピクチャタイミングSEIメッセージ中でのサブピクチャレベルCPBパラメータの存在を示すためのシーケンスレベルフラグを符号化することをさらに含み得る。方法は、第1のDUがAUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することも含み得る。
[0295]図15は、本開示に記載される技法による、コード化ピクチャバッファ到着および名目除去時間を復号するための方法を示すフローチャートである。本方法はビデオ復号デバイスによって実施され得る。ビデオ符号化デバイスは、たとえば、図1および図3のビデオデコーダ30であってよい。
[0296]方法は、DUがAU全体であるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することを含む。DUは、AUに関連付けられ得る(560)。方法は、ビデオデコーダ30がシンタックス要素の値を決定することを含み得る。シンタックス要素は、SubPicCpbFlagの形を有し得る。シンタックス要素が真値を有する(たとえば、SubPicCpbFlagが1である)ことに応答して、方法は、AUレベルについてのみのCPB除去時間を導出することを含み得る。シンタックス要素が偽値を有する(たとえば、SubPicCpbFlagが0である)ことに応答して、サブピクチャレベルについてのCPB除去時間を導出する。いくつかの例では、CPBパラメータが存在することを示すシンタックスフラグが真値を有するときのみ、CPB到着時間およびCPB名目除去時間のうち少なくとも1つが導出される。
[0297]方法は、CPB到着時間およびCPB名目除去時間のうち1つに少なくとも部分的に基づいて、AUの除去時間を決定すること(562)をさらに含み得る。方法は、除去時間に少なくとも部分的に基づいて、AUのビデオデータを復号すること(564)をさらに含む。
[0298]方法は、AU中の第1のDUのCPB除去と第2のDUのCPB除去との間の持続時間を復号することと、復号された持続時間に少なくとも部分的に基づいて、第1のDUの除去時間を決定することと、除去時間、CPB到着時間、およびCPB名目除去時間のうち少なくとも1つに少なくとも部分的に基づいて、第1のDUのビデオデータを復号することとをさらに含み得る。いくつかの例では、第2のDUは、復号順序において、第1のDUの後であり、第1のDUと同じAU中にある。方法は、1つまたは複数のサブピクチャレベルCPBパラメータを復号することをさらに含んでよく、ここで第1のDUの除去時間を決定することは、復号された継続時間およびサブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、第1のDUの除去時間を決定することを備える。
[0299]いくつかの例では、方法は、シーケンスレベルフラグを復号して、ピクチャタイミングSEIメッセージ中またはサブピクチャタイミングSEIメッセージ中でのサブピクチャレベルCPBパラメータの存在を判断することも含む。
[0300]DUは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非VCL NALユニットを含む、HEVC WD8に記載されるどのタイプのDUであってもよい。
[0301]0よりも大きくないTemporalIdをAUが有する別の例では、方法は、AUに関連付けられたバッファリング期間サプルメンタルエンハンスメント情報(SEI)メッセージまたはリカバリポイントSEIメッセージのうち少なくとも1つを復号することをさらに含む。
[0302]図16は、本開示に記載される技法による、コード化ピクチャバッファ到着および名目除去時間を符号化するための方法を示すフローチャートである。本方法はビデオ符号化デバイスによって実施され得る。ビデオ符号化デバイスは、たとえば、図1および図2のビデオエンコーダ20であってよい。
[0303]方法は、DUがAU全体であるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することを含む。DUは、AUに関連付けられ得る(570)。方法は、ビデオエンコーダ20がシンタックス要素の値を決定することを含み得る。シンタックス要素は、SubPicCpbFlagの形を有し得る。シンタックス要素が真値を有する(たとえば、SubPicCpbFlagが1である)ことに応答して、ビデオエンコーダ20は、AUレベルについてのみのCPB除去時間を導出することができる。シンタックス要素が偽値を有する(たとえば、SubPicCpbFlagが0である)ことに応答して、ビデオエンコーダ20は、サブピクチャレベルについてのみのCPB除去時間を導出することができる。いくつかの例では、CPBパラメータが存在することを示すシンタックスフラグが真値を有するときのみ、CPB到着時間およびCPB名目除去時間のうち少なくとも1つが導出される。
[0304]方法は、CPB到着時間およびCPB名目除去時間のうち1つに少なくとも部分的に基づいて、AUの除去時間を決定すること(572)をさらに含み得る。方法は、決定された除去時間を符号化すること(574)をさらに含む。いくつかの例では、除去時間を符号化することは、AU中の第1のDUのCPB除去と第2のDUのCPB除去との間の持続時間を符号化することと、符号化された持続時間に少なくとも部分的に基づいて、第1のDUの除去時間を決定することと、除去時間、CPB到着時間、およびCPB名目除去時間のうち少なくとも1つに少なくとも部分的に基づいて、第1のDUのビデオデータを符号化することとを含み得る。いくつかの例では、第2のDUは、復号順序において、第1のDUの後であり、第1のDUと同じAU中にある。方法は、1つまたは複数のサブピクチャレベルCPBパラメータを符号化することをさらに含んでよく、ここで第1のDUの除去時間を決定することは、符号化された継続時間およびサブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、第1のDUの除去時間を決定することを備える。方法は、AU中の第1のDUのCPB除去と第2のDUのCPB除去との間の持続時間を符号化することをさらに含んでよく、ここで除去時間を符号化することは、持続時間を符号化することをさらに備える。
[0305]いくつかの例では、方法は、ピクチャタイミングSEIメッセージ中またはサブピクチャタイミングSEIメッセージ中でのサブピクチャレベルCPBパラメータの存在を示すためのシーケンスレベルフラグを符号化することも含む。
[0306]DUは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非VCL NALユニットを含む、HEVC WD8に記載されるどのタイプのDUであってもよい。
[0307]0よりも大きくないTemporalIdをAUが有する別の例では、方法は、AUに関連付けられたバッファリング期間SEIメッセージまたはリカバリポイントSEIメッセージのうち少なくとも1つを符号化することをさらに含む。
[0308]1つまたは複数の例では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装することができる。ソフトウェアに実装される場合、機能は、1つもしくは複数の命令もしくはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行することができる。コンピュータ可読媒体は、たとえば、データ記憶媒体などの有形媒体、または、たとえば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する、コンピュータ可読記憶媒体を含むことができる。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または、(2)信号もしくは搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示に記載された技法を実装するための命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータ、または1つもしくは複数のプロセッサによってアクセスできる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことができる。
[0309]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
[0310]命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)などの1つもしくは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路もしくはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な任意の他の構造のいずれかを指すことができる。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、1つまたは複数の回路または論理要素中で十分に実装され得る。
[0311]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実施するように構成されたデバイスの機能的態様をエンハンスメントするために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
[0312]様々な例について説明してきた。これらおよび他の例は、以下の特許請求の範囲内である。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1] ビデオデータを復号するための方法であって、
アクセスユニット(AU)中の第1の復号ユニット(DU)のコード化ピクチャバッファ(CPB)除去時間と第2のDUのCPB除去時間との間の持続時間を復号することと、ここにおいて、前記第1のDUは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える、
前記復号された持続時間に少なくとも部分的に基づいて、前記第1のDUの除去時間を決定することと、
前記除去時間に少なくとも部分的に基づいて、前記第1のDUのビデオデータを復号することとを備える方法。
[C2] 前記第2のDUは、復号順序において、前記第1のDUの後であり、前記第1のDUと同じAU中にある、C1に記載の方法。
[C3] 前記第2のDUは、復号順序において、前記AU中の前記第1のDUの直後である、C2に記載の方法。
[C4] 前記第2のDUは、復号順序において、前記AU中の最後のDUである、C2に記載の方法。
[C5] 1つまたは複数のサブピクチャレベルCPBパラメータを復号すること、ここにおいて、前記第1のDUの前記除去時間を決定することは、前記復号された持続時間および前記サブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、前記第1のDUの前記除去時間を決定することを備える、をさらに備える、C1に記載の方法。
[C6] 1つまたは複数のサブピクチャレベルCPBパラメータを復号することは、
前記第1のDUに関連付けられたサブピクチャタイミングサプルメンタルエンハンスメント情報(SEI)メッセージを復号することを備える、C5に記載の方法。
[C7] 前記第2のDUは、復号順序において、前記AU中の最後のDUであり、前記サブピクチャSEIメッセージを復号することは、
前記サブピクチャタイミングSEIメッセージ中の前記最後のDUの除去時間と前記第1のDUの前記除去時間との間の前記持続時間を復号することを備える、C6に記載の方法。
[C8] ピクチャタイミングSEIメッセージ中またはサブピクチャタイミングSEIメッセージ中での前記サブピクチャレベルCPBパラメータの存在を判断するためのシーケンスレベルフラグを復号することをさらに備える、C5に記載の方法。
[C9] 前記AUは、0に等しいTemporalIdを有し、前記方法は、
前記AUに関連付けられた、バッファリング期間サプルメンタルエンハンスメント情報(SEI)メッセージまたは回復点SEIメッセージのうち少なくとも1つを復号することをさらに備える、C1に記載の方法。
[C10] 前記第1のDUが前記AUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、前記AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することをさらに備える、C1に記載の方法。
[C11] アクセスユニット(AU)中の第1の復号ユニット(DU)のコード化ピクチャバッファ(CPB)除去時間と第2のDUのCPB除去時間との間の持続時間を復号し、ここにおいて、前記第1のDUは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える、
前記復号された持続時間に少なくとも部分的に基づいて、前記第1のDUの除去時間を決定し、
前記除去時間に少なくとも部分的に基づいて、前記第1のDUのビデオデータを復号するように構成されたビデオデコーダを備えるビデオ復号デバイス。
[C12] 前記第2のDUは、復号順序において、前記第1のDUの後であり、前記第1のDUと同じAU中にある、C11に記載のビデオ復号デバイス。
[C13] 前記第2のDUは、復号順序において、前記AU中の前記第1のDUの直後である、C12に記載のビデオ復号デバイス。
[C14] 前記第2のDUは、復号順序において、前記AU中の最後のDUである、C12に記載のビデオ復号デバイス。
[C15] 前記ビデオデコーダは、1つまたは複数のサブピクチャレベルCPBパラメータを復号するようにさらに構成され、ここにおいて、前記第1のDUの前記除去時間を決定することは、前記復号された持続時間および前記サブピクチャレベルCPBパラメータに少なくとも部分的に基づいて、前記第1のDUの前記除去時間を決定することを備える、C11に記載のビデオ復号デバイス。
[C16] 前記ビデオデコーダは、前記第1のDUに関連付けられたサブピクチャタイミングサプルメンタルエンハンスメント情報(SEI)メッセージを復号することによって、1つまたは複数のサブピクチャレベルCPBパラメータを復号するようにさらに構成される、C15に記載のビデオ復号デバイス。
[C17] 前記第2のDUは、復号順序で、前記AU中の最後のDUであり、前記サブピクチャSEIメッセージを復号することは、前記サブピクチャタイミングSEIメッセージ中の、前記最後のDUの除去時間と前記第1のDUの前記除去時間との間の前記持続時間を復号することを備える、C16に記載のビデオ復号デバイス。
[C18] 前記ビデオデコーダは、ピクチャタイミングSEIメッセージ中またはサブピクチャタイミングSEIメッセージ中での前記サブピクチャレベルCPBパラメータの存在を判断するためのシーケンスレベルフラグを復号するようにさらに構成される、C15に記載のビデオ復号デバイス。
[C19] 前記AUは、0に等しいTemporalIdを有し、前記ビデオデコーダは、前記AUに関連付けられた、バッファリング期間サプルメンタルエンハンスメント情報(SEI)メッセージまたは回復点SEIメッセージのうち少なくとも1つを復号するようにさらに構成される、C11に記載のビデオ復号デバイス。
[C20] 前記ビデオデコーダは、前記第1のDUが前記AUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、前記AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出するようにさらに構成される、C11に記載のビデオ復号デバイス。
[C21] 命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、ビデオデータを復号するためのデバイスのプロセッサに、
アクセスユニット(AU)中の第1の復号ユニット(DU)のコード化ピクチャバッファ(CPB)除去時間と第2のDUのCPB除去時間との間の持続時間を復号させ、ここにおいて、前記第1のDUは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える、
前記復号された持続時間に少なくとも部分的に基づいて、前記第1のDUの除去時間を決定させ、
前記除去時間に少なくとも部分的に基づいて、前記第1のDUのビデオデータを復号させるコンピュータ可読記憶媒体。
[C22] 前記第2のDUは前記第1のDUと同じAU中にあり、前記第2のDUは、復号順序において、前記第1のDUの直後、または復号順序において、前記AU中の最後のDUのうち1つである、C21に記載のコンピュータ可読記憶媒体。
[C23] アクセスユニット(AU)中の第1の復号ユニット(DU)のコード化ピクチャバッファ(CPB)除去時間と第2のDUのCPB除去時間との間の持続時間を復号するための手段と、ここにおいて、前記第1のDUは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える、
前記復号された持続時間に少なくとも部分的に基づいて、前記第1のDUの除去時間を決定するための手段と、
前記除去時間に少なくとも部分的に基づいて、前記第1のDUのビデオデータを復号するための手段とを備えるビデオ復号デバイス。
[C24] 前記第2のDUは前記第1のDUと同じAU中にあり、前記第2のDUは、復号順序において、前記第1のDUの直後、または復号順序において、前記AU中の最後のDUのうち1つである、C23に記載のビデオ復号デバイス。
[C25] ビデオデータを符号化するための方法であって、
第1のDUを含むAUについて、第2のDUのCPB除去時間を決定することと、ここにおいて、前記第2のDUは、復号順序において、前記第1のDUの後であり、前記第1のDUと同じAU中にあり、前記第1のDUは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える、
前記第1のDUのCPB除去時間と前記第2のDUの前記決定されたCPB除去時間との間の持続時間を決定することと、
前記決定された持続時間を符号化することとを備える方法。
[C26] 前記第2のDUは、復号順序において、前記第1のDUの後であり、前記第1のDUと同じAU中にある、C25に記載の方法。
[C27] 前記第2のDUは、復号順序において、前記AU中の前記第1のDUの直後である、C26に記載の方法。
[C28] 前記第2のDUは、復号順序において、前記AU中の最後のDUである、C26に記載の方法。
[C29] 前記決定された持続時間に少なくとも部分的に基づいて、前記第1のDUのビデオデータを符号化することは、1つまたは複数のサブピクチャレベルCPBパラメータ中の、前記決定された持続時間を符号化することをさらに備える、C25に記載の方法。
[C30] 1つまたは複数のサブピクチャレベルCPBパラメータを符号化することは、
前記第1のDUに関連付けられたサブピクチャタイミングサプルメンタルエンハンスメント情報(SEI)メッセージを符号化することを備える、C29に記載の方法。
[C31] 前記第2のDUは、復号順序において、前記AU中の最後のDUであり、前記サブピクチャSEIメッセージを符号化することは、
前記サブピクチャタイミングSEIメッセージ中の前記最後のDUの除去時間と前記第1のDUの前記除去時間との間の前記持続時間を符号化することを備える、C30に記載の方法。
[C32] ピクチャタイミングSEIメッセージ中またはサブピクチャタイミングSEIメッセージ中での前記サブピクチャレベルCPBパラメータの存在を示すためのシーケンスレベルフラグを符号化することをさらに備える、C29に記載の方法。
[C33] 前記AUは、0に等しいTemporalIdを有し、前記方法は、
前記AUに関連付けられた、バッファリング期間サプルメンタルエンハンスメント情報(SEI)メッセージまたは回復点SEIメッセージのうち少なくとも1つを符号化することをさらに備える、C25のCに記載の方法。
[C34] 前記第1のDUが前記AUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、前記AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出することをさらに備える、C25に記載の方法。
[C35] 第1のDUを含むAUについて、第2のDUのCPB除去時間を決定し、ここにおいて、前記第2のDUは、復号順序において、前記第1のDUの後であり、前記第1のDUと同じAU中にあり、前記第1のDUは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える、
前記第1のDUのCPB除去時間と前記第2のDUの前記決定されたCPB除去時間との間の持続時間を決定し、
前記決定された持続時間に少なくとも部分的に基づいて、前記第1のDUのビデオデータを符号化するように構成されたビデオエンコーダを備えるビデオ符号化デバイス。
[C36] 前記第2のDUは、復号順序で、前記第1のDUの後であり、前記第1のDUと同じAU中にある、C35に記載のビデオ符号化デバイス。
[C37] 前記第2のDUは、復号順序で、前記AU中の前記第1のDUの直後である、C36に記載のビデオ符号化デバイス。
[C38] 前記第2のDUは、復号順序で、前記AU中の最後のDUである、C36に記載のビデオ符号化デバイス。
[C39] 前記決定された持続時間に少なくとも部分的に基づいて、前記第1のDUのビデオデータを符号化することは、1つまたは複数のサブピクチャレベルCPBパラメータ中の、前記決定された持続時間を符号化することをさらに備える、C35に記載のビデオ符号化デバイス。
[C40] 前記ビデオエンコーダは、前記第1のDUに関連付けられたサブピクチャタイミングサプルメンタルエンハンスメント情報(SEI)メッセージを復号することによって、1つまたは複数のサブピクチャレベルCPBパラメータを符号化するようにさらに構成される、C39に記載のビデオ符号化デバイス。
[C41] 前記第2のDUは、復号順序において、前記AU中の最後のDUであり、前記サブピクチャSEIメッセージを符号化するのは、前記サブピクチャタイミングSEIメッセージ中の、前記最後のDUの除去時間と前記第1のDUの前記除去時間との間の前記持続時間を符号化するのを備える、C40に記載のビデオ符号化デバイス。
[C42] 前記ビデオエンコーダは、ピクチャタイミングSEIメッセージ中またはサブピクチャタイミングSEIメッセージ中での前記サブピクチャレベルCPBパラメータの存在を示すためのシーケンスレベルフラグを符号化するようにさらに構成される、C39に記載のビデオ符号化デバイス。
[C43] 前記AUは、0に等しいTemporalIdを有し、前記ビデオエンコーダは、前記AUに関連付けられた、バッファリング期間サプルメンタルエンハンスメント情報(SEI)メッセージまたは回復点SEIメッセージのうち少なくとも1つを符号化するようにさらに構成される、C35に記載のビデオ符号化デバイス。
[C44] 前記ビデオエンコーダは、前記第1のDUが前記AUであるかどうかを定義するシンタックス要素の値にかかわらず、アクセスユニットレベルとサブピクチャレベルの両方で、前記AUについてのCPB到着時間およびCPB名目除去時間のうち少なくとも1つを導出するようにさらに構成される、C35に記載のビデオ符号化デバイス。
[C45] 命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、ビデオデータを符号化するためのデバイスのプロセッサに、
第1のDUを含むAUについて、第2のDUのCPB除去時間を決定させ、ここにおいて、前記第2のDUは、復号順序において、前記第1のDUの後であり、前記第1のDUと同じAU中にあり、前記第1のDUは、RSV_NVCL44〜RSV_NVCL47の範囲内またはUNSPEC48〜UNSPEC63の範囲内の、UNSPEC0に等しいnal_unit_type、EOS_NUT、EOB_NUTをもつ非ビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える、
前記第1のDUのCPB除去時間と前記第2のDUの前記決定されたCPB除去時間との間の持続時間を決定させ、
前記決定された持続時間に少なくとも部分的に基づいて、前記第1のDUのビデオデータを符号化させる、コンピュータ可読記憶媒体。
[C46] 前記第2のDUは前記第1のDUと同じAU中にあり、前記第2のDUは、復号順序において、前記第1のDUの直後、または復号順序において、前記AU中の最後のDUのうち1つである、C45に記載のコンピュータ可読記憶媒体。