【文献】
Rickard Sjoberg, Jonatan Samuelsson,Absolute signaling of reference pictures,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 6th Meeting: Torino,2011年 7月22日,JCTVC-F493,pp.1-15
【文献】
Rickard Sjoberg, Jonatan Samuelsson,Proposed changes to the HEVC Working Draft,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 6th Meeting: Torino,2011年 7月22日,JCTVC-F493,pp.1-28
【文献】
Thomas Wiegand, et al.,WD3: Working Draft 3 of High-Efficiency Video Coding,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 5th Meeting: Geneva, CH,2011年 3月30日,JCTVC-E603,URL,http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=2471
【文献】
Viktor Wahadaniah,AHG21: Construction and modification of predefined reference picture sets and reference picture lists,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 7th Meeting: Geneva, CH,2011年11月 8日,JCTVC-G548,pp.1-21
【文献】
Ye-Kui Wang, Ying Chen,AHG21: On DPB management,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 7th Meeting: Geneva, CH,2011年11月23日,JCTVC-G314,pp.1-7
【文献】
Rickard Sjoberg, Jonatan Samuelsson,AHG21: Long-term pictures and pruning of reference picture sets,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 7th Meeting: Geneva, CH,2011年11月 9日,JCTVC-G637,pp.1-3
【文献】
Miska M. Hannuksela, Srikanth M. Gopalakrishna,AHG21: On reference picture list construction and reference picture marking,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 7th Meeting: Geneva, CH,2011年11月 8日,JCTVC-G643,pp.1-10
(58)【調査した分野】(Int.Cl.,DB名)
前記複数の参照ピクチャサブセットを構成することは、前記複数の参照ピクチャサブセットのうちの1つの中で識別される参照ピクチャが他のどの参照ピクチャサブセット中でも識別されないように、前記複数の参照ピクチャサブセットを構成することを備える、請求項1または2に記載の方法。
前記複数の参照ピクチャサブセットのうちの1つまたは複数に基づいて、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成することをさらに備え、
前記現在のピクチャを復号することは、前記第1の参照ピクチャリストおよび前記第2の参照ピクチャリストのうちの少なくとも1つに基づいて前記現在のピクチャを復号することを備える、請求項1に記載の方法。
前記ビデオデコーダは、前記複数の参照ピクチャサブセットのうちの1つのサブセット中で識別される参照ピクチャが他のどの参照ピクチャサブセット中でも識別されないように、前記複数の参照ピクチャサブセットを構成するように構成される、請求項6に記載のデバイス。
前記ビデオデコーダは、前記複数の参照ピクチャサブセットのうちの1つまたは複数に基づいて、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成するように構成され、
前記現在のピクチャを復号するために、前記ビデオデコーダは、前記第1の参照ピクチャリストおよび前記第2の参照ピクチャリストのうちの少なくとも1つに基づいて前記現在のピクチャを復号するように構成される、請求項6に記載のデバイス。
前記命令は、さらに、前記プロセッサに、前記複数の参照ピクチャサブセットのうちの1つまたは複数に基づいて第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成させ、
前記現在のピクチャを復号することは、前記第1の参照ピクチャリストおよび前記第2の参照ピクチャリストのうちの少なくとも1つに基づいて現在のピクチャを復号することを備える、請求項12に記載のコンピュータ可読記憶媒体。
前記複数の参照ピクチャサブセットを構成するための前記手段は、前記複数の参照ピクチャサブセットのうちの1つの中で識別される参照ピクチャが他のどの参照ピクチャサブセット中でも識別されないように、前記複数の参照ピクチャサブセットを構成するための手段を備える、請求項16または17に記載のデバイス。
前記複数の参照ピクチャサブセットのうちの1つまたは複数に基づいて、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成するための手段をさらに備え、
前記現在のピクチャを復号するための前記手段は、前記第1の参照ピクチャリストおよび前記第2の参照ピクチャリストのうちの少なくとも1つに基づいて前記現在のピクチャを復号するための手段を備える、請求項16に記載のデバイス。
前記複数の参照ピクチャサブセットのうちの1つまたは複数に基づいて、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成することをさらに備え、
前記現在のピクチャを符号化することは、前記第1の参照ピクチャリストおよび前記第2の参照ピクチャリストのうちの少なくとも1つに基づいて前記現在のピクチャを符号化することを備える、請求項2に記載の方法。
前記ビデオエンコーダは、前記複数の参照ピクチャサブセットのうちの1つのサブセット中で識別される参照ピクチャが他のどの参照ピクチャサブセット中でも識別されないように、前記複数の参照ピクチャサブセットを構成するように構成される、請求項7に記載のデバイス。
前記ビデオエンコーダは、前記複数の参照ピクチャサブセットのうちの1つまたは複数に基づいて、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成するように構成され、
前記現在のピクチャを符号化するために、前記ビデオエンコーダは、前記第1の参照ピクチャリストおよび前記第2の参照ピクチャリストのうちの少なくとも1つに基づいて前記現在のピクチャを符号化するように構成される、請求項7に記載のデバイス。
前記命令は、さらに、前記プロセッサに、前記複数の参照ピクチャサブセットのうちの1つまたは複数に基づいて第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成させ、
前記現在のピクチャを符号化することは、前記第1の参照ピクチャリストおよび前記第2の参照ピクチャリストのうちの少なくとも1つに基づいて現在のピクチャを符号化することを備える、請求項13に記載のコンピュータ可読記憶媒体。
前記複数の参照ピクチャサブセットのうちの1つまたは複数に基づいて、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成するための手段をさらに備え、
前記現在のピクチャを符号化するための前記手段は、前記第1の参照ピクチャリストおよび前記第2の参照ピクチャリストのうちの少なくとも1つに基づいて前記現在のピクチャを符号化するための手段を備える、請求項17に記載のデバイス。
【発明を実施するための形態】
【0036】
[0045]本開示の技法は概して、インター予測に使われる参照ピクチャの管理を対象とする。たとえば、ビデオコーダ(たとえば、ビデオエンコーダまたはビデオデコーダ)は、復号ピクチャバッファ(DPB)を含む。DPBは、参照ピクチャを含む復号ピクチャを記憶する。参照ピクチャは、ピクチャをインター予測するために使われる可能性があり得るピクチャである。言い換えると、ビデオコーダは、DPBに記憶された1つまたは複数の参照ピクチャに基づいて、ピクチャのコーディング(符号化または復号)中にそのピクチャを予測することができる。
【0037】
[0046]DPBを効率的に使用するために、たとえば、DPB中での復号ピクチャの記憶プロセス、参照ピクチャのマーキングプロセス、DPBからの復号ピクチャの出力および削除プロセスなどのDPB管理プロセスが指定され得る。概して、いくつかの現行および開発中のビデオコーディング規格では、DPB管理は、ピクチャ識別および参照ピクチャ識別、参照ピクチャリスト構成、参照ピクチャマーキング、DPBからのピクチャ出力、DPBへのピクチャ挿入、およびDPBからのピクチャ削除という側面のうちの1つまたは複数を含み得る。
【0038】
[0047]理解を助けるため、いくつかのビデオコーディング規格に従って、参照ピクチャマーキングおよび参照ピクチャリスト構成がどのように起こり得るかを、以下で手短に説明する。本開示に記載する技法のうちのいくつかは、DPBの使用効率を向上させるように、参照ピクチャマーキング、参照ピクチャリスト構成、ならびにDPBピクチャ削除および出力に存在し得る問題に対処する。
【0039】
[0048]参照ピクチャマーキングのために、インター予測に使われる参照ピクチャの、M(num_ref_frames)と呼ばれる最大数が、アクティブシーケンスパラメータセット中で示される。参照ピクチャは、復号されると、「参照に使用される」とマーキングされる。参照ピクチャの復号により、M個より多いピクチャが「参照に使用される」とマーキングされた場合、少なくとも1つのピクチャが「参照に使用されない」とマーキングされていなければならない。DPB削除プロセスは次いで、「参照に使用されない」とマーキングされたピクチャが出力にも必要とされない場合、それらのピクチャをDPBから削除することになる。
【0040】
[0049]ピクチャは、復号されると、非参照ピクチャまたは参照ピクチャのいずれかになり得る。参照ピクチャは、長期参照ピクチャであっても短期参照ピクチャであってもよく、「参照に使用されない」とマーキングされると、参照にはそれ以上必要とされなくなる。いくつかのビデオコーディング規格には、参照ピクチャのステータスを変える参照ピクチャマーキング操作があり得る。
【0041】
[0050]参照ピクチャマーキングには、スライディングウィンドウおよび適応メモリ制御という、2つのタイプの操作があり得る。参照ピクチャマーキングのための操作モードは、ピクチャに基づいて選択されてよく、スライディングウィンドウ操作は、一定数の短期参照ピクチャをもつ先入れ先出しキューとして作用し得る。言い換えると、復号時間が最も早い短期参照ピクチャが、暗黙的に、削除される最初のものである(参照用に使われないピクチャとマーキングされる)。
【0042】
[0051]ただし、適応メモリ制御は、短期または長期ピクチャを明示的に削除する。適応メモリ制御は、短期および長期ピクチャなどのステータスを切り替えることも可能にする。たとえば、適応メモリ制御において、ビデオエンコーダは、どのピクチャが参照に使用されるものとマーキングされるべきかを指定するシンタックス要素をシグナリングすることができる。ビデオデコーダは、シンタックス要素を受信し、指定された通りにピクチャをマーキングすればよい。スライディングウィンドウ中、ビデオエンコーダは、どのピクチャが参照に使用されるものとマーキングされるかはシグナリングする必要はなくてよい。そうではなく、ビデオデコーダは、暗黙的に(すなわち、シンタックス要素を受信せずに)、どのピクチャがスライディングウィンドウ内にあるかに基づいて、どのピクチャが参照に使用されるものとマーキングされるか決定し得る。
【0043】
[0052]ビデオコーダは、どの参照ピクチャをインター予測目的で使うことができるかを示す参照ピクチャリストの構成も課せられ得る。これらの参照ピクチャリストの2つは、それぞれリスト0およびリスト1と呼ばれる。ビデオコーダは最初に、リスト0とリスト1とを構成するためのデフォルトの構成技法(たとえば、リスト0とリスト1とを構成するための事前設定された構成方式)を利用する。オプションで、初期リスト0およびリスト1が構成された後、ビデオデコーダは、初期リスト0とリスト1とを修正するようビデオデコーダに命令するシンタックス要素が存在するときは、それらのシンタックス要素を復号すればよい。
【0044】
[0053]ビデオエンコーダは、DPB中の参照ピクチャの識別子(1つまたは複数)を示すシンタックス要素をシグナリングすればよく、ビデオエンコーダは、現在のピクチャのコード化ブロックを復号するのに、どの1つまたは複数の参照ピクチャを使うべきかを示すインデックスを、リスト0、リスト1、またはリスト0とリスト1の両方内に含むシンタックス要素をシグナリングしてもよい。ビデオデコーダは、これに対して、受信した識別子を使って、リスト0、リスト1、またはリスト0とリスト1の両方の中にリストされた1つの参照ピクチャまたは複数の参照ピクチャについての1つまたは複数のインデックス値を識別する。1つの参照ピクチャまたは複数の参照ピクチャのインデックス値(1つまたは複数)ならびに識別子(1つまたは複数)から、ビデオデコーダは、1つの参照ピクチャもしくは複数の参照ピクチャ、またはその一部(1つもしくは複数)を、DPBから取り出し、取り出された1つまたは複数の参照ピクチャと、コード化ブロックの復号に使われる1つまたは複数の参照ピクチャ内のブロックを識別する1つまたは複数の動きベクトルとに基づいて、現在のピクチャのコード化ブロックを復号する。
【0045】
[0054]たとえば、双予測ピクチャの第1または第2の参照ピクチャリストについての参照ピクチャリスト構成は、2つのステップ、すなわち参照ピクチャリスト初期化と、参照ピクチャリスト修正(参照ピクチャリスト並べ替え(reordering)とも呼ばれる)とを含む。参照ピクチャリスト初期化は、参照ピクチャメモリ(復号ピクチャバッファとしても知られる)中の参照ピクチャを、POC(ピクチャの表示順で整列されるピクチャオーダーカウント)値の順序に基づいてリストに入れる暗黙的機構であってよい。参照ピクチャリスト並べ替え機構は、参照ピクチャリスト初期化中にリストに入れられたピクチャの位置をどの新しい位置にも修正し、または参照ピクチャメモリ中のどの参照ピクチャも、そのピクチャが初期化リストに属さなくても、どの位置に入れてもよい。参照ピクチャリスト並べ替え(修正)後のいくつかのピクチャは、リスト中のはるかに離れた位置に入れられる場合がある。ただし、ピクチャの位置が、リストのアクティブ参照ピクチャの数を超える場合、ピクチャは、最終参照ピクチャリストのエントリとは見なされない。アクティブ参照ピクチャの数は、各リスト用のスライスヘッダに入れてシグナリングされ得る。
【0046】
[0055]本開示に記載する技法は、様々なビデオコーディング規格に適用可能であり得る。ビデオコーディング規格の例は、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)拡張を含むITU−T H.264(ISO/IEC MPEG−4 AVCとしても知られている)を含む。さらに、ITU−T Video Coding Experts Group(VCEG)とISO/IEC Motion Picture Experts Group(MPEG)とのJoint Collaboration Team on Video Coding(JCT−VC)によって開発されている新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)がある。
【0047】
[0056]単に例示のために、本技法は、HEVC規格のコンテキストにおいて説明される。これ以降HEVC WD8と呼ばれる、HEVCの最新の作業草案(WD)が、2012年7月20日の時点で、http://phenix.int−evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC−J1003−v8.zipから入手可能である。
【0048】
[0057]上述したように、本開示に記載する技法は、復号ピクチャバッファ(DPB)管理のための既存ソリューションに存在し得る問題に対処することができる。一例として、本開示に記載するいくつかの例示的技法では、「参照に使用されない」という参照ピクチャのマーキングは、必要とされなくてよい。たとえば、本開示に記載する技法は、時間的スケーラビリティに適合することができないDPB管理技法に関連した問題、長期参照ピクチャのシグナリングオーバーヘッドに関連した問題、参照ピクチャリストの初期化および修正に伴う効率および複雑さに関連した問題に対処することができる。本開示に記載する技法は、参照ピクチャリスト初期化中の参照ピクチャリスト中の未完エントリに対する「参照ピクチャなし」というマーキングに関連した問題、復号ピクチャのDPBからの出力、DPBへの挿入、およびDPBからの削除に関連した問題、ならびにピクチャオーダーカウント(POC)値に対する可能値に関連した問題にも対処することができる。
【0049】
[0058]本開示に記載する技法によると、参照ピクチャリストは、参照ピクチャセットから構成される。参照ピクチャセットは、たとえば、次の瞬時復号リフレッシュ(IDR)ピクチャ、またはリンク切断アクセス(BLA:broken link access)ピクチャまで、関連ピクチャまたは復号順で関連ピクチャに続く任意のピクチャ中のブロックのインター予測に使うことができる、復号順で関連ピクチャの前のすべての参照ピクチャからなる、あるピクチャに関連付けられた1組の参照ピクチャとして定義される。言い換えると、参照ピクチャセット中の参照ピクチャは、以下の特性を必要とし得る。すなわち、(1)すべてが、復号順で現在のピクチャに先立ち、(2)現在のピクチャをインター予測し、および/またはいくつかの例では、次のIDRピクチャまたはBLAピクチャまで、現在のピクチャに復号順で続くどのピクチャもインター予測するために使うことができる。参照ピクチャセットの他の代替定義もあってよく、それについては以下に挙げる。
【0050】
[0059]本開示に記載する例示的技法において、ビデオコーダは参照ピクチャセットを導出することができ、そのような導出の後、ビデオコーダは参照ピクチャリストを構成することができる。たとえば、参照ピクチャセット中の参照ピクチャのみが、参照ピクチャリストを構成するのに使われる候補参照ピクチャであり得る。
【0051】
[0060]参照ピクチャセットを構成するために、ビデオコーダは、複数の参照ピクチャサブセットを構成すればよい。参照ピクチャサブセットの組合せは、参照ピクチャセットを共に形成し得る。たとえば、ビデオエンコーダは、コード化ビットストリーム中で、参照ピクチャセットに含まれる参照ピクチャ用の識別子をビデオデコーダが決定するための値を明示的にシグナリングすることができる。たとえば、参照ピクチャの識別子は、ピクチャオーダーカウントであってよい。各ピクチャは、PicOrderCntと呼ばれる1つのピクチャオーダーカウントに関連付けられる。PicOrderCntは、前のIDRピクチャに対し復号順で対応するピクチャの出力順または表示順を示し、いくつかの他の代替法では、同じコード化ビデオシーケンス中の他のピクチャの出力順位置に対する、関連ピクチャの出力順における位置を示す。
【0052】
[0061]PicOrderCntは、ピクチャオーダーカウント(POC)値と呼ばれ得る。POC値は、ピクチャの出力または表示順を示すことができ、ピクチャを識別するのに使うことができる。たとえば、コード化ビデオシーケンス内で、より小さいPOC値をもつピクチャは、より大きいPOC値をもつピクチャよりも早く出力または表示される。
【0053】
[0062]ビデオデコーダは、参照ピクチャ用の識別子を決定し、これらの識別子から、複数の参照ピクチャサブセットを構成することができる。これらの参照ピクチャサブセットから、ビデオデコーダは、後でより詳しく説明するように、参照ピクチャセットを導出することができる。いくつかの例では、参照ピクチャサブセットの各々は、参照ピクチャサブセット中で参照ピクチャが重複しないという点で、異なる参照ピクチャを含む。このように、参照ピクチャの各々は、参照ピクチャサブセットのうちのただ1つの中に存在することができ、他の参照ピクチャサブセット中に存在することはできない。ただし、本開示の態様はそのように限定されると考えられるべきでない。
【0054】
[0063]参照ピクチャセットまたはそのサブセット中の参照ピクチャの識別子(たとえば、POC値)を決定した後、ビデオデコーダは、参照ピクチャサブセットを構成することができる。後でより詳しく説明するように、ビデオデコーダは、6つの参照ピクチャサブセットを構成することができるが、ビデオデコーダは、より多いまたはより少ない参照ピクチャサブセットを構成することが可能であり得る。
【0055】
[0064]これらの6つの参照ピクチャサブセットは、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、およびRefPicSetLtFollと名付けられる。RefPicSetStCurr0参照ピクチャサブセットは、RefPicSetStCurrBefore参照ピクチャサブセットと呼ばれる場合があり、RefPicSetStCurr1参照ピクチャサブセットは、RefPicSetStCurrAfter参照ピクチャサブセットと呼ばれる場合がある。
【0056】
[0065]RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、およびRefPicSetStFoll1参照ピクチャサブセットは、短期参照ピクチャを識別することができる。いくつかの例では、これらの参照ピクチャサブセットは、短期参照ピクチャが、コーディングされている現在のピクチャよりも表示順が早いか、それとも表示順が後であるか、ならびに短期参照ピクチャが、現在のピクチャと、復号順で現在のピクチャに続くピクチャとをインター予測するために使われる可能性があり得るか、それとも復号順で現在のピクチャに続くピクチャのみをインター予測するために使われる可能性があり得るかに基づいて、短期参照ピクチャを識別することができる。
【0057】
[0066]たとえば、RefPicSetStCurr0参照ピクチャサブセットは、現在のピクチャよりも出力または表示順が早いとともに、現在のピクチャのインター予測において参照用に使われる可能性があり得、復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測において参照用に使われる可能性があり得るすべての短期参照ピクチャの、POC値などの識別情報を含むことができ、およびそれだけを含むことができる。RefPicSetStCurr1参照ピクチャサブセットは、現在のピクチャよりも出力または表示順が後であるとともに、現在のピクチャのインター予測において参照用に使われる可能性があり得、復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測において参照用に使われる可能性があり得るすべての短期参照ピクチャの識別情報を含むことができ、それだけを含むことができる。
【0058】
[0067]RefPicSetStFoll0参照ピクチャサブセットは、現在のピクチャよりも出力または表示順が早く、復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測において参照用に使われる可能性があり得るとともに、現在のピクチャのインター予測においては参照用に使うことができない、すべての短期参照ピクチャの識別情報を含むことができ、およびそれだけを含むことができる。RefPicSetStFoll1参照ピクチャサブセットは、現在のピクチャよりも出力または表示順が遅く、復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測において参照用に使われる可能性があり得、現在のピクチャのインター予測においては参照用に使うことができない、すべての短期参照ピクチャの識別情報を含むことができ、それだけを含むことができる。
【0059】
[0068]RefPicSetLtCurrおよびRefPicSetLtFoll参照ピクチャサブセットは、長期参照ピクチャを識別することができる。いくつかの例では、これらの参照ピクチャサブセットは、長期参照ピクチャが、コーディングされている現在のピクチャよりも表示順が早いか、それとも表示順が後であるかに基づいて、長期参照ピクチャを識別することができる。
【0060】
[0069]たとえば、RefPicSetLtCurr参照ピクチャサブセットは、現在のピクチャのインター予測において参照用に使われる可能性があり得るとともに復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測において参照用に使われる可能性があり得るすべての長期参照ピクチャの識別情報を含むことができ、それだけを含むことができる。RefPicSetLtFoll参照ピクチャサブセットは、復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測において参照用に使われる可能性があり得るとともに、現在のピクチャのインター予測においては参照用に使うことができない、すべての長期参照ピクチャの識別情報を含むことができ、それだけを含むことができる。
【0061】
[0070]参照ピクチャサブセットを構成した後、ビデオデコーダは、参照ピクチャサブセットを、参照ピクチャセットを導出するように異なる順序で並べればよい。一例として、参照ピクチャセットの順序は、RefPicSetStCurr0、RefPicSetSetCurr1、RefPicSetFoll0、RefPicSetFoll1、RefPicSetLtCurr、およびRefPicSetLtFollとなり得る。ただし、参照ピクチャセットを導出するように、サブセットの他の順序付けも可能であり得る。たとえば、別の例として、参照ピクチャセットの順序は、RefPicSetStCurr0参照ピクチャサブセット、その後にRefPicSetStCurr1参照ピクチャセットが続き、その後にRefPicSetLtCurr参照ピクチャサブセットが続き、その後にRefPicSetStFoll0参照ピクチャサブセットが続き、その後にRefPicSetFoll1参照ピクチャサブセットが続き、その後にRefPicSetLtFoll参照ピクチャサブセットが続いてよい。
【0062】
[0071]本開示に記載する技法によると、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurrサブセットは、現在のピクチャ中のブロックのインター予測において使うことができるとともに、復号順で現在のピクチャに続くピクチャのうちの1つまたは複数のピクチャのインター予測において使うことができるすべての参照ピクチャを含む。RefPicSetStFoll0、RefPicSetStFoll1、およびRefPicSetLtFollサブセットは、現在のピクチャ中のブロックのインター予測においては使われないが、復号順で現在のピクチャに続くピクチャのうちの1つまたは複数のピクチャのインター予測において使うことができるすべての参照ピクチャを含む。
【0063】
[0072]6つの参照ピクチャサブセットは、例示目的でのみ記載され、限定的と見なされるべきでないことを理解されたい。代替例では、より多いまたはより少ない参照ピクチャサブセットがあってよい。これらの代替例におけるそのような参照ピクチャサブセットについては、以下でより詳しく説明する。
【0064】
[0073]これらの開示において記載するいくつかの技法では、ビデオデコーダは、復号ピクチャに、「参照に使用される」、「参照に使用されない」、「短期参照に使用される」、または「長期参照に使用される」とマーキングする必要がなくてよい。そうではなく、DPBに記憶された復号ピクチャがインター予測に必要とされるかどうかは、そのピクチャが現在のピクチャの参照ピクチャセットに含まれるかどうかによって示される。代替例では、ビデオデコーダが、復号ピクチャに、「参照に使用される」、「参照に使用されない」、「短期参照に使用される」、または「長期参照に使用される」としてマーキングすることが可能な場合がある。これらの例では、ビデオデコーダがピクチャを復号した後、そのピクチャは参照ピクチャとなり、「参照に使用される」とマーキングされる。次いで、参照ピクチャセット導出のためのプロセスの呼出しの後、DPBには記憶されているが現在のピクチャの参照ピクチャセットには含まれないすべての参照ピクチャは、DPBからの復号ピクチャの削除が起こり得る前に、「参照に使用されない」とマーキングされる。したがって、DPBに記憶された復号ピクチャがインター予測に必要とされるかどうかは、そのピクチャが「参照に使用される」とマーキングされているかどうかによって示すことができる。
【0065】
[0074]ビデオデコーダが、複数の参照ピクチャサブセットから参照ピクチャセットを導出すると、ビデオデコーダは、参照ピクチャセットから参照ピクチャリスト(たとえば、リスト0およびリスト1)を構成することができる。たとえば、参照ピクチャリストの構成は、初期化ステップと、可能性としては修正ステップとを含み得る。上述したように参照ピクチャセットを導出することによって、ビデオデコーダは、参照ピクチャリスト初期化および参照ピクチャリスト修正に関する効率を向上させ、複雑さを低下させることが可能であり得る。
【0066】
[0075]ビデオデコーダが参照ピクチャリストを構成することができる様々なやり方があり得る。本開示に記載する技法は、ビデオデコーダが、(初期)参照ピクチャリストに含まれるべき参照ピクチャを並べ替える必要なく、参照ピクチャリストを構成することができる機構を提供する。たとえば、ビデオデコーダは、初期参照ピクチャリストを構成するために参照ピクチャサブセットをビデオデコーダが使用するデフォルトの参照リスト構成技法を実装するように構成し得る。すると、参照ピクチャリストの修正が必要とされない場合、最終参照ピクチャリストは、参照ピクチャリストのいかなる追加の並べ替えも必要なく、初期参照ピクチャリストと同じになり得る。
【0067】
[0076]いくつかの例では、本開示に記載する技法は、未完エントリ(non-completed entries)が残らないように、参照ピクチャリストを構成することに関連し得る。たとえば、これらの技法は、参照ピクチャサブセットのうちの1つまたは複数から、参照ピクチャリストに参照ピクチャを繰り返し追加することができる。たとえば、ビデオデコーダが、初期参照ピクチャリストを構成するために、参照ピクチャサブセットのうちの1つまたは複数のサブセットからの参照ピクチャを追加した後、ビデオデコーダは、参照ピクチャリスト中のエントリの数が最大許容エントリ数未満であるかどうか決定することができる。参照ピクチャリスト中のエントリの数が、許容エントリ数の最大数未満である場合、ビデオデコーダは、参照ピクチャリスト中の、参照ピクチャリストを構成するのに使われる参照ピクチャサブセットのうちの1つから、参照ピクチャのうちの少なくとも1つを再追加し得る。参照ピクチャのこの再追加(再リストとも呼ばれる)は、ビデオデコーダによって参照ピクチャが最初に追加された場所と比較して、参照ピクチャリスト内の異なる場所で起こり得る。
【0068】
[0077]本開示において使われるように、再リストまたは再追加は、初期参照ピクチャリスト中のあらかじめ追加された(たとえば、識別された)参照ピクチャを再度追加する(たとえば、再度識別する)ことを指す。ただし、参照ピクチャを再追加するとき、参照ピクチャは、初期参照ピクチャリスト中の2つの異なるエントリに置くことができる。言い換えると、参照ピクチャを再追加するとき、同じ参照ピクチャを識別する、初期参照ピクチャリスト中への2つのインデックス値があり得る。
【0069】
[0078]いくつかの例では、本開示に記載する技法は、初期参照ピクチャリストの修正に関連し得る。たとえば、ビデオデコーダは、初期参照ピクチャリストを構成することができる。ビデオデコーダは、ビデオエンコーダによってコード化ビットストリーム中でシグナリングされるシンタックス要素に基づいて、参照ピクチャリスト修正が必要とされると決定し得る。参照ピクチャリスト修正が必要とされるとき、ビデオデコーダは、構成された参照ピクチャサブセットのうちの少なくとも1つのサブセット中の参照ピクチャを識別することができる。ビデオデコーダは、初期参照ピクチャリストの現在のエントリ中の、識別された参照ピクチャをリストして(たとえば、追加して)、修正参照ピクチャリストを構成することができる。ビデオデコーダは次いで、修正参照ピクチャリストに基づいて現在のピクチャを復号することができる。
【0070】
[0079]いくつかの例では、本開示に記載する技法は、復号ピクチャバッファ(DPB)からの復号ピクチャの出力および削除に関連し得る。例示的技法は、現在のピクチャをコーディングするのに先立って、DPBから復号ピクチャを削除することができる。たとえば、例示的技法は、復号ピクチャが現在のピクチャの参照ピクチャセット中で識別されない場合、およびその復号ピクチャが出力に必要とされない(すなわち、出力を意図されていない、または出力を意図されているが、すでに出力されている)場合、その復号ピクチャを削除することができる。
【0071】
[0080]
図1は、本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。概して、参照ピクチャセットは、1つのピクチャに関連する参照ピクチャのセットとして定義され、それは、関連ピクチャまたは復号順で関連ピクチャに続く任意のピクチャ中のインター予測に使うことができる、復号順で関連ピクチャに先立つすべての参照ピクチャからなる。いくつかの例では、関連ピクチャに先立つ参照ピクチャは、次の瞬時復号リフレッシュ(IDR)ピクチャ、またはリンク切断アクセス(BLA)ピクチャまでの参照ピクチャであり得る。言い換えると、参照ピクチャセット中の参照ピクチャはすべて、現在のピクチャに復号順で先立ち得る。また、参照ピクチャセット中の参照ピクチャは、現在のピクチャをインター予測し、および/または次のIDRピクチャまたはBLAピクチャまでの、現在のピクチャに復号順で続くどのピクチャもインター予測するために使うことができる。
【0072】
[0081]参照ピクチャセットの他の代替定義もあってよい。たとえば、参照ピクチャセットは、1つのピクチャに関連する参照ピクチャのセットであって、関連ピクチャまたは復号順で関連ピクチャに続くどのピクチャのインター予測にも使うことができるとともに、temporal_idが関連ピクチャのtemporal_id以下である、関連ピクチャ自体を除くすべての参照ピクチャからなる。temporal_idは、時間的識別値であり得る。時間的識別値は、現在のピクチャをコーディングするために、どのピクチャを使うことができるかを示す階層的値であってよい。概して、特定のtemporal_id値をもつピクチャは、可能性としては、それ以上のtemporal_id値をもつピクチャ用の参照ピクチャになり得るが、逆は成り立たない。たとえば、1のtemporal_id値をもつピクチャは、可能性としては、1、2、3、...のtemporal_id値をもつピクチャ用の参照ピクチャになり得るが、0のtemporal_id値をもつピクチャ用の参照ピクチャにはなり得ない。
【0073】
[0082]最も低いtemporal_id値は、最も低い表示レートも示し得る。たとえば、ビデオデコーダが、0のtemporal_id値をもつピクチャのみを復号した場合、表示レートは、毎秒7.5個のピクチャになり得る。ビデオデコーダが、0および1のtemporal_id値をもつピクチャのみを復号した場合、表示レートは、毎秒15個のピクチャになり得、以下同様である。
【0074】
[0083]別の例として、参照ピクチャセットは、1つのピクチャに関連する参照ピクチャのセットであって、関連ピクチャまたは復号順で関連ピクチャに続くどのピクチャのインター予測にも使うことができる、関連ピクチャ自体を除くすべての参照ピクチャからなる。さらに別の例として、参照ピクチャセットは、関連ピクチャまたは復号順で関連ピクチャに続くどのピクチャのインター予測にも使うことができる、関連ピクチャ自体を含み得るすべての参照ピクチャからなる、あるピクチャに関連付けられた1組の参照ピクチャと定義され得る。別の例として、参照ピクチャセットは、関連ピクチャまたは復号順で関連ピクチャに続くどのピクチャのインター予測にも使うことができるとともに、関連ピクチャのtemporal_id以下のtemporal_idをもつ、関連ピクチャ自体を含み得るすべての参照ピクチャからなる、あるピクチャに関連付けられた1組の参照ピクチャとして定義され得る。
【0075】
[0084]さらに別の例として、参照ピクチャセットの上記定義において、「インター予測に使うことができる」というフレーズは、「インター予測に使われる」で置き換えられる。参照ピクチャセットの代替定義があり得るが、本開示では、関連ピクチャまたは復号順で関連ピクチャに続く任意のピクチャ中のインター予測に使うことができる、復号順で関連ピクチャに先立つすべての参照ピクチャからなる、あるピクチャに関連する1組の参照ピクチャである参照ピクチャセットの定義で、例を説明する。
【0076】
[0085]たとえば、参照ピクチャセット中の参照ピクチャのいくつかは、復号順で現在のピクチャに続くピクチャではなく、現在のピクチャのブロックをインター予測するのに使われる可能性があり得る参照ピクチャである。参照ピクチャセット中の参照ピクチャのいくつかは、現在のピクチャのブロックと、復号順で現在のピクチャに続く1つまたは複数のピクチャ中のブロックとをインター予測するのに使われる可能性があり得る参照ピクチャである。参照ピクチャセット中の参照ピクチャのいくつかは、復号順で現在のピクチャに続く1つまたは複数のピクチャ中のブロックをインター予測するのに使われる可能性があり得るとともに、現在のピクチャ中のブロックをインター予測するのに使うことができない参照ピクチャである。
【0077】
[0086]本開示において使われるように、インター予測に使われる可能性があり得る参照ピクチャは、インター予測に使うことはできるが、必ずしもインター予測に使われなくてもよい参照ピクチャを指す。たとえば、参照ピクチャセットは、インター予測に使われる可能性があり得る参照ピクチャを識別することができる。ただし、このことは、識別された参照ピクチャがすべて、インター予測に使われなければならないことを意味するわけではない。そうではなく、これらの識別された参照ピクチャのうちの1つまたは複数が、インター予測に使われてよいが、すべてが必ずしもインター予測に使われなくてもよい。
【0078】
[0087]
図1に示すように、システム10は、宛先デバイス14による復号のために符号化ビデオを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、それぞれビデオコーディングデバイスの一例であり得る。ソースデバイス12は、通信チャネル16を介して宛先デバイス14に符号化ビデオを送信するか、あるいは、必要に応じて符号化ビデオが宛先デバイス14によってアクセスされ得るように記憶媒体17またはファイルサーバ19に符号化ビデオを記憶し得る。
【0079】
[0088]ソースデバイス12および宛先デバイス14は、いわゆる「スマート」フォン、いわゆる「スマート」パッドなどのワイヤレスハンドセット、またはワイヤレス通信のために装備される他のそのようなワイヤレスデバイスを含む、広範なデバイスのうちのどれを備えてもよい。ソースデバイス12および宛先デバイス14の追加例は、デジタルテレビ、デジタルダイレクトブロードキャストシステムにおけるデバイス、ワイヤレスブロードキャストシステムにおけるデバイス、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、eブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー無線電話、衛星無線電話、テレビ会議デバイス、およびビデオストリーミングデバイス、ワイヤレス通信デバイスなどを含むが、それに限定されない。
【0080】
[0089]上記のように、多くの場合、ソースデバイス12および/または宛先デバイス14は、ワイヤレス通信のために装備され得る。したがって、通信チャネル16は、符号化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、またはワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。同様に、ファイルサーバ19は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。
【0081】
[0090]ただし、本開示の技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、単方向または二方向のビデオ送信をサポートするように構成され得る。
【0082】
[0091]
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器(モデム)22と、出力インターフェース24とを含む。ソースデバイス12において、ビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き電話またはテレビ電話を形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。
【0083】
[0092]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオはビデオエンコーダ20によって符号化され得る。符号化ビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム22によって変調され、出力インターフェース24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。出力インターフェース24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【0084】
[0093]ビデオエンコーダ20によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオはまた、後で消費するために記憶媒体17またはファイルサーバ19に記憶され得る。記憶媒体17は、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、または符号化ビデオを記憶するための他の好適なデジタル記憶媒体を含み得る。記憶媒体17に記憶された符号化ビデオは、次いで、復号および再生のために宛先デバイス14によってアクセスされ得る。
【0085】
[0094]ファイルサーバ19は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス14に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な他のタイプのデバイスを含む。ファイルサーバ19からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。ファイルサーバ19は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデム、イーサネット(登録商標)、USBなど)、または両方の組合せを含み得る。
【0086】
[0095]宛先デバイス14は、
図1の例では、入力インターフェース26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。宛先デバイス14の入力インターフェース26は、一例として、チャネル16を介して、または代替例として、記憶媒体17もしくはファイルサーバ17から情報を受信し、モデム28は、情報を復調して、ビデオデコーダ30向けの復調ビットストリームを生じる。復調されたビットストリームは、ビデオデータを復号する際にビデオデコーダ30が使用する、ビデオエンコーダ20によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体17またはファイルサーバ19に記憶された符号化ビデオデータに含まれ得る。一例として、シンタックスは符号化ビデオデータで埋め込まれ得るが、本開示の態様はそのような要件に限定されると考えられるべきでない。ビデオデコーダ30によっても使用される、ビデオエンコーダ20によって定義されたシンタックス情報は、コーディングツリーユニット(CTU)、コーディングツリーブロック(CTB)、予測ユニット(PU:prediction unit)、コーディングユニット(CU)またはコーディングされたビデオの他のユニット、たとえば、ビデオスライス、ビデオピクチャ、およびビデオシーケンスまたはピクチャのグループ(GOP:group of pictures)などのビデオブロックの特性および/または処理を記述するシンタックス要素を含み得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ(コーデック)の一部を形成し得る。
【0087】
[0096]ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【0088】
[0097]
図1の例では、通信チャネル16は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースのネットワークの一部を形成することができる。通信チャネル16は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を支援するのに有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【0089】
[0098]ビデオエンコーダ20およびビデオデコーダ30は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、ならびにスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含むITU−T H.264(ISO/IEC MPEG−4 AVCとしても知られている)などのビデオ圧縮規格に従って動作し得る。さらに、ITU−T Video Coding Experts Group(VCEG)とISO/IEC Motion Picture Experts Group(MPEG)とのJoint Collaboration Team on Video Coding(JCT−VC)によって現在開発中の新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)規格がある。これ以降HEVC WD8と呼ばれる、HEVCの最新の作業草案(WD)が、2012年7月20日の時点で、http://phenix.int−evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC−J1003−v8.zipから入手可能である。
【0090】
[0099]ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。単に例示のために、本技法は、HEVC規格に従って説明される。
【0091】
[0100]
図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することができる。
【0092】
[0101]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、マイクロプロセッサを含む1つまたは複数のプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで部分的に実施されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実施し得る。
【0093】
[0102]ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。いくつかの事例では、ビデオエンコーダ20およびビデオデコーダ30は、情報(たとえば、ピクチャおよびシンタックス要素)をコーディングするビデオコーダと通常呼ばれ得る。ビデオコーダがビデオエンコーダ20に対応するとき、情報のコーディングは符号化を指し得る。ビデオコーダがビデオデコーダ30に対応するとき、情報のコーディングは復号を指し得る。
【0094】
[0103]さらに、本開示で説明する技法は、情報をシグナリングするビデオエンコーダ20を指し得る。ビデオエンコーダ20が情報をシグナリングするとき、本開示の技法は、概して、ビデオエンコーダ20が情報を提供する任意の方法を指す。たとえば、ビデオエンコーダ20がビデオデコーダ30にシンタックス要素をシグナリングするとき、それは、ビデオエンコーダ20が出力インターフェース24および通信チャネル16を介してビデオデコーダ30にシンタックス要素を送信したこと、あるいはビデオエンコーダ20がビデオデコーダ30による最終的な受信のために記憶媒体17および/またはファイルサーバ19上に出力インターフェース24を介してシンタックス要素を記憶したことを意味し得る。このように、ビデオエンコーダ20からビデオデコーダ30へのシグナリングは、ビデオデコーダ30によって直ちに受信されるビデオエンコーダ20からの送信が、可能ではあり得るが、必要とされると解釈されるべきでない。そうではなく、ビデオエンコーダ20からビデオデコーダ30へのシグナリングは、直接あるいは(たとえば、記憶媒体17および/またはファイルサーバ19内の)中間記憶装置を介して、ビデオエンコーダ20がビデオデコーダ30による最終的な受信についての情報を提供するためのいずれの技法としても解釈されるべきである。
【0095】
[0104]ビデオエンコーダ20およびビデオデコーダ30は、参照ピクチャセットを導出するための、本開示に記載する例示的技法を実装するように構成すればよい。たとえば、ビデオデコーダ30は、ピクチャごとに一度、参照ピクチャセットを導出するためのプロセスを呼び出すことができる。ビデオデコーダ30は、スライスヘッダの復号の後で、ただしどのコーディングユニットの復号にも先立って、およびスライスの参照ピクチャリスト構成のための復号プロセスに先立って、参照ピクチャセットを導出するためのプロセスを呼び出すことができる。
【0096】
[0105]上述したように、参照ピクチャセットは、現在のピクチャおよび次の瞬時復号リフレッシュ(IDR)ピクチャ、またはリンク切断アクセス(BLA)ピクチャまでの、復号順において今後のコード化ピクチャの復号プロセスにおいて使われる参照ピクチャの絶対記述である。本開示に記載する例において、ビデオエンコーダ20は、参照ピクチャセットに属す参照ピクチャ用の識別子をビデオデコーダ30がそこから決定することができる値を明示的にシグナリングすることができる。参照ピクチャセットシグナリングは、参照ピクチャセットに含まれるすべての参照ピクチャが、いくつかのピクチャ、たとえばIDRピクチャを除いて明示的にリストされ、参照ピクチャセットシンタックス要素がスライスヘッダに含まれず、参照ピクチャセットが空になるように導出されるという意味で、明示的である。
【0097】
[0106]参照ピクチャセットを導出するためにビデオデコーダ30が使用することができるコード化ビットストリーム中で、ビデオエンコーダ20がシンタックス要素をシグナリングすることができる様々なやり方があり得る。たとえば、ビデオエンコーダ20は、シンタックス要素を、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、ピクチャヘッダ(あれば)、スライスヘッダ、またはそれらのどの組合せに入れてシグナリングしてもよい。説明のためにのみ、ビデオエンコーダ20は、より詳しく説明したように、SPSと、PPSと、スライスヘッダとを使って、シンタックス要素をシグナリングすることができる。
【0098】
[0107]参照ピクチャセットを導出するために、ビデオデコーダ30は、参照ピクチャセットに属すピクチャ用の識別子を決定するための復号プロセスを実装し得る。ビデオデコーダ30は次いで、複数の参照ピクチャサブセットを構成し得、サブセットの各々は、参照ピクチャセットに属す参照ピクチャのうちのゼロ個以上のピクチャを識別する。ビデオデコーダ30は、企図される参照ピクチャサブセットから参照ピクチャセットを導出することができる。たとえば、ビデオデコーダ30は、複数の参照ピクチャサブセットを特定の順序でリストして、参照ピクチャセットを導出することができる。
【0099】
[0108]参照ピクチャセットに属すピクチャ用の識別子をビデオデコーダ30が決定することができる、様々なやり方があり得る。概して、ビデオエンコーダ20は、参照ピクチャセットに属すピクチャを含むピクチャ用の識別子を、ビデオデコーダ30がそこから決定することができる値をシグナリングすることができる。ピクチャの識別子は、PicOrderCnt(すなわち、ピクチャオーダーカウント(POC)値)であり得る。上述したように、POC値は、ピクチャの表示または出力順を示すことができ、より小さいPOC値をもつピクチャが、より大きいPOC値をもつピクチャよりも早く表示される。所与のピクチャのPOC値は、前の瞬時復号リフレッシュ(IDR)ピクチャに相対的であり得る。たとえば、IDRピクチャについてのPicOrderCnt(すなわち、POC値)は0であり、表示または出力順でIDRピクチャの後のピクチャについてのPOC値は1であり、表示または出力順において、POC値1をもつピクチャの後のPOC値は2であり得、以下同様に続く。
【0100】
[0109]本開示に記載する技法によると、現在のピクチャがIDRピクチャでないとき、現在のピクチャのPOC値を導出するために、以下のことが適用され得る。以下は、理解を助けることを意図しており、限定的と見なされるべきではない。
【0101】
[0110]たとえば、以下のすべてを含むピクチャのリストに関連付けられたPicOrderCnt値(POC値)を要素として含むリスト変数listDについて検討する。すなわち、(1)リスト中の最初のピクチャが、復号順において前のIDRピクチャであり、(2)他のすべてのピクチャが、復号順に、リスト中の最初のピクチャの後に続き、現在のピクチャに復号順において先行するか、または現在のピクチャである。この例では、現在のピクチャは、参照ピクチャセットのための導出プロセスの呼出しに先立って、listDに含まれている。また、POC値の昇順にソートされるlistDの要素を含むリスト変数listOについて検討する。この例では、listOは、別のピクチャのPOC値に等しい値をもつPOC値を含まなくてもよい。
【0102】
[0111]いくつかの例では、POC値は、両端値を含む−2
pocLen-1〜2
pocLen-1−1の範囲に制限され得る。この例では、pocLenは、long_term_ref_pic_id_len_delta+long_term_ref_pic_id_delta_len_minus4+4に等しくなり得る。long_term_ref_pic_id_len_delta、およびlong_term_ref_pic_id_delta_len_minus4は、後でより詳しく説明するように、ピクチャパラメータセットシンタックスの一部としてビデオデコーダ30がコード化ビットストリーム中で受信するシンタックス要素であり得る。別の例として、POC値は、両端値を含む−2
31〜2
31−1の範囲に制限され得る。
【0103】
[0112]一例として、ビデオデコーダ30は、コード化ビットストリーム(すなわち、ビデオエンコーダ20によってシグナリングされるビットストリーム)中で、pic_order_cnt_lsbシンタックス要素を受信することができる。pic_order_cnt_lsbシンタックス要素は、コード化ピクチャについてのピクチャオーダーカウントモジュロMaxPicOrderCntLsbを指定し得る。pic_order_cnt_lsbシンタックス要素の長さは、log2_max_pic_order_cnt_lsb_minus4+4ビットであり得る。pic_order_cnt_lsbの値は、両端値を含む0〜MaxPicOrderCntLsb−1の範囲内であり得る。ビデオデコーダ30は、pic_order_cnt_lsbシンタックス要素を、復号されるべき現在のピクチャについてのスライスヘッダシンタックス中で受信することができる。
【0104】
[0113]ビデオデコーダ30はまた、ビデオエンコーダ20によってシグナリングされるコード化ビットストリーム中で、log2_max_pic_order_cnt_lsb_minus4シンタックス要素を受信することができる。ビデオデコーダ30は、log2_max_pic_order_cnt_lsb_minus4シンタックス要素を、シーケンスパラメータセット中で受信することができる。log2_max_pic_order_cnt_lsb_minu4の値は、両端値を含む0〜12の範囲内であり得る。log2_max_pic_order_cnt_lsb_minus4シンタックス要素は、ビデオデコーダ30がPOC値を決定するための復号プロセスにおいて使う変数MaxPicOrderCntLsbの値を指定し得る。たとえば、以下のようになる。
【0105】
MaxPicOrderCntLsb = 2
(log2_max_pic_order_cnt_lsb_minus4 + 4)
[0114]これらの受信シンタックス要素から、ビデオデコーダ30は、現在のピクチャのPOC値を次のように決定することができる。たとえば、ビデオデコーダ30は、現在のピクチャについてのPicOrderCntMsbを決定することができる。現在のピクチャについてのPOC値は、現在のピクチャについての決定されたPicOrderCntMsbに、現在のピクチャについての受信されたpic_order_cnt_lsbをプラスしたものとなり得る。
【0106】
[0115]以下で、関数PicOrderCnt(picX)は、ピクチャXについてのPOC値に等しい。関数DiffPicOrderCnt(picA,picB)は、PicOrderCnt(picA)からPicOrderCnt(picB)を引いたものに等しい。いくつかの例では、コード化ビットストリームは、両端値を含む−2
15〜2
15−1の範囲を超える、復号プロセスにおいて使われるDiffPicOrderCnt(picA,picB)の値を生じるデータを含まなくてよい。さらに、Xを現在のピクチャとし、YおよびZを同じシーケンス中の2つの他のピクチャとし、ここでYおよびZは、DiffPicOrderCnt(X,Y)とDiffPicOrderCnt(X,Z)の両方が正であり、または両方が負であるとき、Xからの同じ出力順方向であると見なされる。また、いくつかの例では、ビデオエンコーダ20は、前のIDRピクチャのサンプリング時間に相対した、対応するピクチャのサンプリング時間に比例するPicOrderCntを割り当てることができる。
【0107】
[0116]現在のピクチャについてのPOC値を決定するプロセスの一部として、ビデオデコーダ30は、変数prevPicOrderCntMsbおよびprevPicOrderCntLsbを決定すればよい。たとえば、現在のピクチャがIDRピクチャである場合、ビデオデコーダ30は、prevPicOrderCntMsbを0に等しく設定し、prevPicOrderCntLsbを0に等しく設定すればよい。そうでない場合(すなわち、現在のピクチャがIDRピクチャでない場合)、ビデオデコーダ30は、prevPicOrderCntMsbを、現在のピクチャ以下のtemporal_idをもつ、復号順において前の参照ピクチャのPicOrderCntMsbに等しく設定し、prevPicOrderCntLsbを、現在のピクチャ以下のtemporal_idをもつ、復号順において前の参照ピクチャのpic_order_cnt_lsbの値に等しく設定すればよい。
【0108】
[0117]これらの変数値およびシンタックス要素の値(たとえば、prevPicOrderCntMsb、prevPicOrderCntLsb、pic_order_cnt_lsb、およびMaxPicOrderCntLsbの値)を用いて、ビデオデコーダ30は、PicOrderCntMsbの値を、以下の擬似コードに記述するステップに基づいて決定することができる。ビデオデコーダ30は、以下の擬似コードに記述するステップを実装して、現在のピクチャのPOC値を導出するのに使われる、各現在のピクチャについてのPicOrderCntMsbを決定し得ることを理解されたい。
【数1】
【0109】
[0118]現在のピクチャについてのPicOrderCntMsbを決定した後、ビデオデコーダ30は、現在のピクチャについてのPicOrderCntMsbおよび現在のピクチャについてのpic_order_cnt_lsbに基づいて、現在のピクチャについてのPOC値を決定することができる。ビデオデコーダ30は、現在のピクチャについてのPOC値を次のように決定することができる。
【0110】
PicOrderCnt=PicOrderCntMsb+pic_order_cnt_lsb
[0119]ピクチャの復号の後、ビデオデコーダ30は、参照ピクチャセットに属す参照ピクチャの各々を含む、そのピクチャについてのPicOrderCntMsb値と、pic_order_cnt_lsb値と、POC値とを、ビデオデコーダ30の復号ピクチャバッファ(DPB)に記憶してよい。このように、DPB中の各ピクチャは、POC値、PicOrderCntMsb値、およびpic_order_cnt_lsb値に関連付けられる。
【0111】
[0120]現在のピクチャの参照ピクチャセットに含まれる参照ピクチャのPOC値を決定するための方法について、以下でより詳しく説明する。決定されたPOC値から、ビデオデコーダ30は、参照ピクチャセットのための導出プロセスを実施することができる。ただし、ビデオデコーダ30が参照ピクチャセットのための導出プロセスを実施するやり方を説明するのに先立って、ビデオエンコーダ20によってシグナリングされるコード化ビットストリーム中でビデオデコーダ30が受信することができるシンタックス要素のテーブルを、以下に挙げる。たとえば、ビデオエンコーダ20は、以下のテーブル中のシンタックス要素を、ビデオデコーダ30が受信するコード化ビットストリームに入れてシグナリングすることができる。これらのシンタックス要素のうちのいくつかについては、上で述べた。これらのシンタックス要素から、ビデオデコーダ30は、参照ピクチャセットに含まれる参照ピクチャのPOC値を決定し、さらに参照ピクチャセットを導出することができる。
【0112】
[0121]たとえば、本開示に記載する技法では、シーケンスパラメータセット(SPS)未加工バイトシーケンスペイロード(RBSP)シンタックス(sequence parameter set (SPS) raw byte sequence payload (RBSP) syntax)、すなわちseq_paramater_set_rbsq()、ピクチャパラメータセット(PPS)RBSPシンタックス、すなわちpic_parameter_set_rbsp()、スライスヘッダシンタックス、すなわちslice_header()、および参照ピクチャリスト修正シンタックス、すなわちref_pic_list_modification()というシンタックス構造が、前のビデオコーディング規格に対して修正される。参照ピクチャセットの導出、および1つまたは複数の参照ピクチャリストの初期化の説明に続いて、参照ピクチャリスト修正について、より詳しく説明する。
【0113】
[0122]また、本開示に記載する技法によると、短期参照ピクチャセットシンタックス、すなわちshort_term_ref_pic_set()、および長期参照ピクチャセットシンタックス、すなわちlong_term_ref_pic_set()というシンタックス構造が、コード化ビットストリームに追加される。ビデオデコーダ30は、参照ピクチャサブセットを構成する目的で、短期参照ピクチャセットシンタックスと、長期参照ピクチャセットシンタックスとを使用することができ、参照ピクチャサブセットから、ビデオデコーダ30は参照ピクチャセットを導出する。
【0114】
[0123]たとえば、ビデオデコーダ30が、参照ピクチャセットに属す参照ピクチャについてのPOC値を決定するために、ビデオエンコーダ20は参照ピクチャ識別情報をシグナリングし、ビデオデコーダ30はこの情報を使って、ピクチャパラメータセット中のPOC値を決定し、リストに対するインデックスがスライスヘッダ中で参照され得る。ただし、これは、ビデオエンコーダ20がそのような参照ピクチャ識別情報をシグナリングすることができる1つの例示的やり方である。
【0115】
[0124]ある代替例では、ビデオエンコーダ20は、参照ピクチャ情報をシーケンスパラメータセットに入れてシグナリングすることができ、リストに対するインデックスはスライスヘッダ中で参照することができ、そうすることによってシグナリングオーバーヘッドを削減することができる。別の代替例では、ビデオコーダは、参照ピクチャ情報を、新しいタイプのパラメータセット(たとえば、参照ピクチャセットパラメータセット(RPSPS))に入れてシグナリングすることができ、RPSPS idならびに参照ピクチャ識別情報のリストに対するインデックスは両方とも、スライスヘッダ中で参照され得る。こうすることにより、シグナリングオーバーヘッドを削減することができ、かつピクチャパラメータセットまたはシーケンスパラメータセットの数の必要が増大されることはない。他の例では、ビデオエンコーダ20は、参照ピクチャ識別情報をシグナリングするのに、これらの例示的技法のどのような組合せを使用してもよい。
【表1】
【0116】
[0125]pic_width_in_luma_samplesは、ルーマサンプル中の各復号ピクチャの幅を指定し得る。pic_width_in_luma_samplesの値は、両端値を含む0〜2
16−1の範囲内であり得る。
【0117】
[0126]pic_height_in_luma_samplesは、ルーマサンプル中の各復号ピクチャの高さを指定し得る。pic_height_in_luma_samplesの値は、両端値を含む0〜2
16−1の範囲内であり得る。
【0118】
[0127]テーブル1に示されるように、ビデオデコーダ30は、シーケンスパラメータセット(SPS)中で、log2_max_pic_order_cnt_lsb_minus4シンタックス要素を受信することができる。上述したように、log2_max_pic_order_cnt_lsb_minu4の値は、POC値を決定するための復号プロセスにおいてビデオデコーダ30が使う変数MaxPicOrderCntLsbの値を指定することができ、ここでMaxPicOrderCntLsb=2
(log2_max_pic_order_cnt_lsb_minus4+4)である。
【表2】
【0119】
[0128]num_short_term_ref_pic_sets_ppsは、ピクチャパラメータセットに含まれるshort_term_ref_pic_set()シンタックス構造の数を指定する。num_short_term_ref_pic_sets_ppsの値は、両端値を含む0〜32の範囲内とする。
【0120】
[0129]0に等しいlong_term_ref_pics_present_flagは、ピクチャパラメータセットを参照するどのコード化ピクチャのインター予測にも、長期参照ピクチャが使われず、シンタックス要素long_term_ref_pic_id_delta_len_minus4、long_term_ref_pic_id_len_deltaおよびnum_long_term_ref_pics_ppsが存在しないことを指定する。1に等しいlong_term_ref_pics_present_flagは、ピクチャパラメータセットを参照する1つまたは複数のコード化ピクチャのインター予測に長期参照ピクチャを使うことができ、シンタックス要素long_term_ref_pic_id_delta_len_minus4、long_term_ref_pic_id_len_deltaおよびnum_long_term_ref_pics_ppsが存在することを指定する。
【0121】
[0130]long_term_ref_pic_id_delta_len_minus4に4を加えたものは、long_term_ref_pic_id_delta_add_foll[i]シンタックス要素のビット長を指定する。long_term_ref_pic_id_delta_len_minus4の値は、両端値を含む0〜12の範囲内とする。
【0122】
[0131]long_term_ref_pic_id_len_deltaプラスlong_term_ref_pic_id_delta_len_minus4プラス4は、long_term_ref_pic_id_pps[i]シンタックス要素のビット長を指定する。long_term_ref_pic_id_len_deltaの値は、両端値を含む0〜28−long_term_ref_pic_id_delta_len_minus4の範囲内であり得る。1つの特定のシーケンスパラメータセットを参照するすべてのピクチャパラメータセット中のlong_term_ref_pic_id_len_delta+long_term_ref_pic_id_delta_len_minus4+4の値は、同一であり得る。
【0123】
[0132]num_long_term_ref_pics_ppsは、ピクチャパラメータセットに含まれる長期参照ピクチャの識別の数を指定する。num_long_term_ref_pics_ppsの値は、両端値を含む0〜32の範囲内であり得る。
【0124】
[0133]long_term_ref_pic_id_pps[i]は、ピクチャパラメータセットに含まれる第iの長期参照ピクチャ識別情報を指定する。long_term_ref_pic_id_pps[i]を表すのに使われるビットの数は、long_term_ref_pic_id_len_delta+long_term_pic_id_len_minus4+4に等しくなり得る。
【表3】
【0125】
[0134]短期参照ピクチャセットシンタックスは、短期ピクチャ用であり得る。短期ピクチャは、それについての識別情報がコード化ピクチャ用のshort_term_ref_pic_set()シンタックス構造に含まれ、スライスヘッダ(1つもしくは複数)に含まれるか、または参照されるピクチャパラメータセットおよびスライスヘッダ(1つまたは複数)中のshort_term_ref_pic_set_idxシンタックス要素による参照に含まれる参照ピクチャとして定義され得る。スライスヘッダシンタックス要素を、以下のテーブル4に挙げる。
【0126】
[0135]num_short_term_curr0は、以下で説明するように、コード化ピクチャの参照ピクチャセットの導出にshort_term_ref_pic_set()シンタックス構造が使われるとき、RefPicSetStCurr0中の短期参照ピクチャの数を指定する。num_short_term_curr0の値は、両端値を含む0〜max_num_ref_framesの範囲内であり得る。
【0127】
[0136]num_short_term_curr1は、以下で説明するように、コード化ピクチャの参照ピクチャセットの導出にshort_term_ref_pic_set()シンタックス構造が使われるとき、RefPicSetStCurr1中の短期参照ピクチャの数を指定する。num_short_term_curr1の値は、両端値を含む0〜max_num_ref_frames−num_short_term_curr0の範囲内であり得る。
【0128】
[0137]num_short_term_foll0は、以下で説明するように、コード化ピクチャの参照ピクチャセットの導出にshort_term_ref_pic_set()シンタックス構造が使われるとき、RefPicSetStFoll0中の短期参照ピクチャの数を指定する。num_short_term_foll0の値は、両端値を含む0〜max_num_ref_frames−num_short_term_curr0−num_short_term_curr1の範囲内であり得る。
【0129】
[0138]num_short_term_foll1は、以下で説明するように、コード化ピクチャの参照ピクチャセットの導出にshort_term_ref_pic_set()シンタックス構造が使われるとき、RefPicSetStFoll1中の短期参照ピクチャの数を指定する。num_short_term_foll1の値は、両端値を含む0〜max_num_ref_frames−num_short_term_curr0−num_short_term_curr1−num_short_term_foll0の範囲内とする。
【0130】
[0139]short_term_ref_pic_id_delta_minus1[i]は、short_term_ref_pic_set()シンタックス構造に含まれる第iの短期参照ピクチャの識別情報を指定する。
【表4-1】
【表4-2】
【0131】
[0140]no_output_of_prior_pics_flagは、IDRピクチャの復号の後で復号ピクチャバッファ中のあらかじめ復号されたピクチャがどのように扱われるかを指定する。IDRピクチャがビットストリーム中の最初のIDRピクチャであるとき、no_output_of_prior_pics_flagの値は、復号プロセスに影響する可能性はない。IDRピクチャがビットストリーム中の最初のIDRピクチャではなく、アクティブシーケンスパラメータセットから導出されたpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはmax_dec_frame_bufferingの値が、先行ピクチャについてのアクティブなシーケンスパラメータセットから導出されたpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはmax_dec_frame_bufferingの値とは異なり得るとき、1に等しいno_output_of_prior_pics_flagは、no_output_of_prior_pics_flagの実効値にかかわらず、デコーダによって推論することができるが、必ずしも推論できるわけではない。
【0132】
[0141]1に等しいshort_term_ref_pic_set_pps_flagは、現在のピクチャ用の参照ピクチャセットに含まれる短期参照ピクチャセットの識別情報が、参照されるピクチャパラメータセットに存在することを指定する。0に等しいshort_term_ref_pic_set_pps_flagは、現在のピクチャ用の参照ピクチャセットに含まれる短期参照ピクチャセットの識別情報が、参照されるピクチャパラメータセットに存在しないことを指定する。
【0133】
[0142]short_term_ref_pic_set_idxは、現在のピクチャ用の参照ピクチャセット中の短期参照ピクチャセットの識別情報を含む、参照されるピクチャパラメータセットに含まれる、short_term_ref_pic_set()シンタックス構造のインデックスを指定する。
【0134】
[0143]変数NumShortTermCurr0およびNumShortTermCurr1は、次のように指定される。
【0135】
NumShortTermCurr0 = num_short_term_curr0
NumShortTermCurr1 = num_short_term_curr1
[0144]上式で、num_short_term_curr0およびnum_short_term_curr0は、それぞれ、参照されるピクチャパラメータセットに存在し、short_term_ref_pic_set_idxによって参照されるか、またはスライスヘッダに直接存在する、short_term_ref_pic_set()シンタックス構造中の同じ名称のシンタックス要素である。
【0136】
[0145]num_ref_idx_l0_active_minus1は、スライスを復号するのに使われるものとする参照ピクチャリスト0についての最大参照インデックスを指定する。
【0137】
[0146]現在のスライスがPまたはBスライスであり、num_ref_idx_l0_active_minus1が存在しないとき、num_ref_idx_l0_active_minus1は、num_ref_idx_l0_default_active_minus1に等しいと推論され得る。
【0138】
[0147]num_ref_idx_l0_active_minus1の値は、両端値を含む0〜15の範囲内であり得る。
【0139】
[0148]num_ref_idx_l1_active_minus1は、スライスを復号するのに使われるものとする参照ピクチャリスト1についての最大参照インデックスを指定する。
【0140】
[0149]現在のスライスがPまたはBスライスであり、num_ref_idx_l1_active_minus1が存在しないとき、num_ref_idx_l1_active_minus1は、num_ref_idx_l1_default_active_minus1に等しいと推論され得る。
【0141】
[0150]num_ref_idx_l1_active_minus1の値は、両端値を含む0〜15の範囲内であり得る。
【表5】
【0142】
[0151]長期参照ピクチャセットシンタックスは、長期ピクチャ用であり得る。長期ピクチャは、コード化ピクチャ用のlong_term_ref_pic_set()シンタックス構造に、それについての識別情報が含まれる参照ピクチャとして定義され得る。
【0143】
[0152]num_long_term_pps_currは、参照されるピクチャパラメータセットに識別情報が含まれるとともに現在のピクチャのインター予測に使うことができるすべての長期参照ピクチャの数を指定する。num_long_term_pps_currが存在しない場合、値は、0に等しいものとして導出され得る。num_long_term_pps_currの値は、両端値を含む0〜max_num_ref_framesの範囲内であり得る。
【0144】
[0153]num_long_term_add_currは、参照されるピクチャパラメータセットに識別情報が含まれないとともに現在のピクチャのインター予測に使うことができるすべての長期参照ピクチャの数を指定する。num_long_term_add_currが存在しない場合、値は、0に等しいものとして導出され得る。num_long_term_add_currの値は、両端値を含む0〜max_num_ref_frames−num_long_term_pps_currの範囲内であり得る。
【0145】
[0154]変数NumLongTermCurrは、次のように指定される。
【0146】
NumLongTermCurr=num_long_term_pps_curr+num_long_term_add_curr
[0155]num_long_term_pps_follは、参照されるピクチャパラメータセットに識別情報が含まれ、現在のピクチャのインター予測に使われず、復号順で現在のピクチャに続くピクチャのうちのどのピクチャのインター予測にも使うことができるすべての長期参照ピクチャの数を指定する。num_long_term_pps_follが存在しない場合、値は、0に等しいものとして導出され得る。num_long_term_pps_follの値は、両端値を含む0〜max_num_ref_framesの範囲内であり得る。
【0147】
[0156]num_long_term_add_follは、参照されるピクチャパラメータセットに識別情報が含まれず、現在のピクチャのインター予測に使われず、復号順で後に続くピクチャのうちのどのピクチャのインター予測にも使うことができるすべての長期参照ピクチャの数を指定する。num_long_term_add_follが存在しない場合、値は、0に等しいものとして導出され得る。num_long_term_add_follの値は、両端値を含む0〜max_num_ref_frames−num_long_term_pps_follの範囲内であり得る。
【0148】
[0157]long_term_ref_pic_set_idx_pps[i]は、参照されるピクチャパラメータセットから現在のピクチャの参照ピクチャセットに継承される第iの長期参照ピクチャの、参照されるピクチャパラメータセットに含まれる長期参照ピクチャ識別情報のリストに対するインデックスを指定する。long_term_ref_pic_set_idx_pps[i]の値は、両端値を含む0〜31の範囲内であり得る。
【0149】
[0158]long_term_ref_pic_id_delta_add[i]は、参照されるピクチャパラメータセットから継承されないが、現在のピクチャの参照ピクチャセットに含まれる第iの長期参照ピクチャの長期参照ピクチャ識別情報を指定する。long_term_ref_pic_id_add_curr[i]を表すのに使われるビットの数は、long_term_pic_id_len_minus4+4に等しくなり得る。
【0150】
[0159]上記シグナリングされたまたは導出された値(すなわち、テーブル1〜5中の値)を用いて、ビデオデコーダ30は、参照ピクチャセットを導出することができる。上述したように、導出された参照ピクチャセットは、現在のピクチャ(すなわち、現在復号中のピクチャ)と、現在のピクチャに復号順において続くピクチャとをコーディング/予測するのに使われる可能性があり得る参照ピクチャを識別することができる。本開示に記載する技法によると、導出された参照ピクチャセット中の参照ピクチャすべての復号順は、現在のピクチャの復号順よりも早い。
【0151】
[0160]導出プロセスは、複数の参照ピクチャサブセットから参照ピクチャセットを構成することを含み得る。このプロセスは、スライスヘッダの復号の後で、ただしどのコーディングユニットの復号にも先立って、およびスライスの参照ピクチャリスト構成のための復号プロセスに先立って、ピクチャごとに一度呼び出すことができる。たとえば、導出された値およびシグナリングされたシンタックス要素から、ビデオデコーダ30は、参照ピクチャセットに属す参照ピクチャについてのPOC値を決定することができる。決定されたPOC値から、ビデオデコーダ30は、参照ピクチャセットを共に形成する参照ピクチャサブセットを構成することができる。このように、参照ピクチャサブセットを構成することによって、ビデオデコーダ30は、参照ピクチャセットを構成することができる。たとえば、ビデオデコーダ30は、参照ピクチャサブセットを特定のやり方で並べて、参照ピクチャセットを導出することができる。順序付けは、ビデオデコーダ30が参照ピクチャサブセットをリストして参照ピクチャセットを導出するやり方を指し得る。
【0152】
[0161]上述したように、参照ピクチャセットを導出するために、ビデオデコーダ30は複数の参照ピクチャサブセットを構成してよい。いくつかの例では、ビデオデコーダ30は6つの参照ピクチャサブセットを構成し得る。6つの参照ピクチャサブセットは、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、およびRefPicSetLtFollと名付けられ得る。RefPicSetStCurr0はRefPicSetStCurrBeforeと呼ばれることがあり、RefPicSetStCurr1はRefPicSetStCurrAfterと呼ばれることがある。
【0153】
[0162]6つの参照ピクチャサブセットは、例示の目的で記載され、限定的と解釈されるべきでないことを理解されたい。一例として、ビデオデコーダ30は、たとえば、サブセットのうちのいくつかを組み合わせることによって、6つの参照ピクチャサブセットよりも少ない参照ピクチャサブセットを構成してよい。ビデオデコーダ30が6未満の参照ピクチャサブセットを構成するこれらの例のうちのいくつかについては、後で説明する。ただし、説明のために、ビデオデコーダ30が6つの参照ピクチャサブセットを構成する例を用いて、本技法を記載する。
【0154】
[0163]RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、およびRefPicSetStFoll1参照ピクチャサブセットは、短期参照ピクチャを識別することができる。いくつかの例では、これらの参照ピクチャサブセットは、短期参照ピクチャが、コーディングされている現在のピクチャよりも表示順が早いか、それとも表示順が後であるか、ならびに短期参照ピクチャが、現在のピクチャと、復号順で現在のピクチャに続くピクチャとをインター予測するために使われる可能性があり得るか、それとも復号順で現在のピクチャに続くピクチャのみをインター予測するために使われる可能性があり得るかに基づいて、短期参照ピクチャを識別することができる。
【0155】
[0164]たとえば、RefPicSetStCurr0参照ピクチャサブセットは、現在のピクチャよりも出力または表示順が早いとともに、現在のピクチャのインター予測において参照用に使われる可能性があり得、復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測において参照用に使われる可能性があり得るすべての短期参照ピクチャの、POC値などの識別情報を含むことができ、かつそれだけを含むことができる。RefPicSetStCurr1参照ピクチャサブセットは、現在のピクチャよりも出力または表示順が後であるとともに、現在のピクチャのインター予測において参照用に使われる可能性があり得、復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測において参照用に使われる可能性があり得るすべての短期参照ピクチャの識別情報を含むことができ、かつそれだけを含むことができる。
【0156】
[0165]RefPicSetStFoll0参照ピクチャサブセットは、現在のピクチャよりも出力または表示順が早く、復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測において参照用に使われる可能性があり得るとともに、現在のピクチャのインター予測においては参照用に使うことができない、すべての短期参照ピクチャの識別情報を含むことができ、かつそれだけを含むことができる。RefPicSetStFoll1参照ピクチャサブセットは、現在のピクチャよりも出力または表示順が遅く、復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測において参照用に使われる可能性があり得、現在のピクチャのインター予測においては参照用に使うことができない、すべての短期参照ピクチャの識別情報を含むことができ、かつそれだけを含むことができる。
【0157】
[0166]RefPicSetLtCurrおよびRefPicSetLtFoll参照ピクチャサブセットは、長期参照ピクチャを識別することができる。いくつかの例では、これらの参照ピクチャサブセットは、長期参照ピクチャが、コーディングされている現在のピクチャよりも表示順が早いか、それとも表示順が後であるかに基づいて、長期参照ピクチャを識別することができる。
【0158】
[0167]たとえば、RefPicSetLtCurr参照ピクチャサブセットは、現在のピクチャのインター予測において参照用に使われる可能性があり得るとともに復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測において参照用に使われる可能性があり得るすべての長期参照ピクチャの識別情報を含むことができ、かつそれだけを含むことができる。RefPicSetLtFoll参照ピクチャサブセットは、復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測において参照用に使われる可能性があり得るとともに、現在のピクチャのインター予測においては参照用に使うことができない、すべての長期参照ピクチャの識別情報を含むことができ、かつそれだけを含むことができる。
【0159】
[0168]復号されるべき現在のピクチャがIDRピクチャである場合、ビデオデコーダ30は、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、およびRefPicSetLtFoll参照ピクチャサブセットを空に設定してよい。というのは、IDRピクチャはインター予測することができず、復号順においてIDRピクチャの後のピクチャは、参照用に復号する際に、IDRピクチャに先立つどのピクチャも使うことができないからであり得る。そうでない場合(たとえば、現在のピクチャが非IDRピクチャであるとき)、ビデオデコーダ30は、以下の擬似コードを実装することによって、短期参照ピクチャサブセットと長期参照ピクチャサブセットとを構成することができる。
【0160】
[0169]たとえば、ビデオデコーダ30が、スライスヘッダ中で、または参照されるピクチャパラメータセットへの参照によって、short_term_ref_pic_set()シンタックス構造のインスタンスを復号するとき、ビデオデコーダ30は、以下の擬似コードを実装して、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、およびRefPicSetStFoll1参照ピクチャサブセットを構成することができる。
【数2】
【0161】
[0170]long_term_ref_pics_present_flagが0に等しいとビデオデコーダ30が決定した場合、このケースに対しては長期参照ピクチャがないので、ビデオデコーダ30は、RefPicSetLtCurrとRefPicSetLtFollとを空に設定してよい。そうではなく、ビデオデコーダ30がスライスヘッダ中のlong_term_ref_pic_set()シンタックス構造のインスタンスを復号する場合、ビデオデコーダ30は、以下の擬似コードを実装して、RefPicSetLtCurrおよびRefPicSetLtFoll参照ピクチャサブセットを構成することができる。
【数3】
【0162】
[0171]本開示に記載する技法によると、参照ピクチャが、コード化ピクチャの参照ピクチャセットの6つのサブセットのうちのいずれかに含まれる場合、PicOrderCnt(POC値)の特定の値をもつ参照ピクチャは、そのコード化ピクチャの参照ピクチャセットに含まれると言うことができる。PicOrderCntの特定の値をもつ参照ピクチャは、PicOrderCnt(POC値)のその特定の値が、そのサブセットに含まれるPicOrderCnt値のうちの1つに等しい場合、参照ピクチャセットの特定のサブセットに含まれると言われる。
【0163】
[0172]参照ピクチャサブセットを構成した後、ビデオデコーダ30は、参照ピクチャセットを導出することができる。たとえば、ビデオデコーダ30は、参照ピクチャサブセットを並べて、参照ピクチャセットを導出することができる。一例として、ビデオデコーダ30は、RefPicSetStCurr0参照ピクチャサブセット、その後に続くRefPicSetStCurr1参照ピクチャサブセット、その後に続くRefPicSetStFoll0参照ピクチャサブセット、その後に続くRefPicSetStFoll1参照ピクチャサブセット、その後に続くRefPicSetLtCurr参照ピクチャサブセット、次いで、RefPicSetLtFoll参照ピクチャサブセットをリストすることができる。別の例として、ビデオデコーダ30は、RefPicSetStCurr0参照ピクチャサブセット、その後に続くRefPicSetStCurr1参照ピクチャサブセット、その後に続くRefPicSetLtCurr参照ピクチャサブセット、その後に続くRefPicSetStFoll0参照ピクチャサブセット、その後に続くRefPicSetStFoll1、次いで、RefPicSetLtFoll参照ピクチャサブセットをリストすることができる。
【0164】
[0173]ビデオデコーダ30が参照ピクチャサブセットを並べるやり方での他の順列も、参照ピクチャセットを導出するために可能であり得る。いくつかの例では、参照ピクチャサブセットの構成と参照ピクチャセットの導出は組み合わせることができる。たとえば、参照ピクチャサブセットの構成の結果、自動的に、ビデオデコーダ30が参照ピクチャセットを導出することになり得る。言い換えると、ビデオデコーダ30は、参照ピクチャサブセットを構成し、参照ピクチャセットを導出するための異なるステップを実施する必要がなくなり得るが、ビデオデコーダ30が最初に参照ピクチャサブセットを構成し、次いで、参照ピクチャセットを導出することも可能であり得る。
【0165】
[0174]また、本開示に記載する技法によると、上述したように参照ピクチャセットを構成した結果、ビデオデコーダ30は、以下の制約を満たし得る。言い換えると、参照ピクチャサブセットのうちの1つの中で識別される参照ピクチャは、他の参照ピクチャサブセットのうちのいずれの中でも識別することはできない。言い換えると、参照ピクチャサブセットのうちの1つの中で識別される参照ピクチャは、他の参照ピクチャサブセットのうちのいずれの中でも識別することはできない。別の例として、導出された参照ピクチャセット中には、参照ピクチャセットを形成する参照ピクチャサブセットのうちのいずれかに含まれる現在のピクチャよりも大きいtemporal_idをもつ参照ピクチャは存在し得ない。
【0166】
[0175]上述のように、時間的識別値(temporal_id)は、現在のピクチャをコーディング/予測するために、どのピクチャを使うことができるかを示す階層的値であってよい。概して、特定のtemporal_id値をもつピクチャは、可能性としては、それ以上のtemporal_id値をもつピクチャ用の参照ピクチャになり得るが、逆は成り立たない。たとえば、1のtemporal_id値をもつピクチャは、可能性としては、1、2、3、...のtemporal_id値をもつピクチャ用の参照ピクチャになり得るが、0のtemporal_ID値をもつピクチャ用の参照ピクチャにはなり得ない。
【0167】
[0176]最も低いtemporal_id値は、最も低い表示レートも示し得る。たとえば、ビデオデコーダ30が、0のtemporal_id値をもつピクチャのみを復号した場合、表示レートは、毎秒7.5個のピクチャになり得る。ビデオデコーダ30が、0および1のtemporal_id値をもつピクチャのみを復号した場合、表示レートは、毎秒15個のピクチャになり得、以下同様である。
【0168】
[0177]いくつかの例では、現在のピクチャのtemporal_id以下のtemporal_id値をもつピクチャのみが、現在のピクチャの参照ピクチャセットに含まれ得る。上述したように、現在のピクチャのtemporal_id以下のtemporal_id値をもつピクチャのみが、参照ピクチャとして使われ得る。したがって、より低いまたは等しいtemporal_id値をもつすべての参照ピクチャが、現在のピクチャによってインター予測に使うことができ、参照ピクチャセットに含めることができる。また、現在のピクチャよりも大きいtemporal_id値を有し、復号順で現在のピクチャに続くとともに現在のピクチャよりも大きいtemporal_id値を有するピクチャによって使われるべきであるいくつかの参照ピクチャは、参照ピクチャセットから除外される。
【0169】
[0178]これらの技法を用いて、参照ピクチャセットの導出のためのピクチャ識別に加え、temporal_idのシグナリングが必要とされないので、参照ピクチャセットシグナリングはより効率的になる。たとえば、ビデオエンコーダ20は、参照ピクチャセットに属す参照ピクチャのtemporal_id値をシグナリングしなくてよく、ビデオデコーダ30は、参照ピクチャセットを導出する目的で、参照ピクチャセットに属す参照ピクチャのtemporal_id値を受信する必要がなくてよい。
【0170】
[0179]さらに、このようにして、構成された参照ピクチャサブセットは、現在のピクチャのものよりも大きいtemporal_id値をもつ参照ピクチャを識別することができる。たとえば、ビデオデコーダ30は、参照ピクチャサブセットを構成し、参照ピクチャサブセットのうちのいずれかの中で識別された参照ピクチャが、現在のピクチャのものよりも大きいtemporal_id値をもたないようにすることが可能であってよく、これは、ビットストリーム一致が、ビデオエンコーダ20によってシグナリングされるとともにビデオデコーダ30によって受信されるビットストリームにtemporal_id値が含まれないことを要求し得るからである。このようにして、ビデオデコーダ30は、参照ピクチャセットに属す参照ピクチャについての時間的識別値を受信することなく、参照ピクチャセットを導出することができる。
【0171】
[0180]上記例では、ビデオデコーダ30は、6つの参照ピクチャサブセット、すなわち短期参照ピクチャ用に4つ(すなわち、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、およびRefPicSetStFoll1)と、長期参照ピクチャ用に2つ(すなわち、RefPicSetLtCurrおよびRefPicSetLtFoll)とを構成することができる。ただし、本開示の態様はそのように限定されない。他の例では、これらの参照ピクチャサブセットのうちの2つ以上を組み合わせて1つの参照ピクチャサブセットにしてよく、その結果、ビデオデコーダ30が構成するより少ない参照ピクチャサブセットが生じる。以下では、ビデオデコーダ30がより少ない参照ピクチャサブセットを構成し得るいくつかの非限定的例について説明する。ビデオデコーダ30がより少ない参照ピクチャサブセットを構成し得る他のやり方もあり得る。
【0172】
[0181]たとえば、いくつかの例では、現在のピクチャ用のサブセットと、復号順において以降のピクチャ用のサブセットの区別がない場合がある。したがって、RefPicSetSt0およびRefPicSetSt1と呼ばれる、短期参照ピクチャ用の2つのサブセットがあってよく、RefPicSetLtと呼ばれる、長期参照ピクチャ用のただ1つのサブセットがあってよい。この例では、RefPicSetSt0参照ピクチャサブセットは、RefPicSetStCurr0およびRefPicSetStFoll0の連結であってよく、RefPicSetStCurr0が連結結果の始端である。この例では、RefPicSetSt1参照ピクチャサブセットは、RefPicSetStCurr1とRefPicSetStFoll1の連結であってよく、RefPicSetStCurr1が連結結果の始端である。RefPicSetLt参照ピクチャサブセットは、RefPicSetLtCurrとRefPicSetLtFollの連結であってよく、RefPicSetLtCurrが連結結果の始端である。
【0173】
[0182]別の例として、現在のピクチャよりも早いまたは後の出力順をもつサブセットの区別がない場合がある。これは、短期参照ピクチャにのみ当てはまり得る。したがって、RefPicSetStCurrおよびRefPicSetStFollと呼ばれる、短期参照ピクチャ用の2つのサブセットがあり得る。RefPicSetStCurr参照ピクチャサブセットは、RefPicSetStCurr0とRefPicSetStCurr1の連結であってよく、RefPicSetStCurr0が連結結果の始端である。RefPicSetStFoll参照ピクチャサブセットは、RefPicSetStFoll0とRefPicSetStFoll1の連結であってよく、RefPicSetStFoll0が連結結果の始端である。
【0174】
[0183]別の例として、上で言及した両方のタイプの区別が適用されない場合がある。したがって、RefPicSetStと呼ばれる、短期参照ピクチャ用のただ1つのサブセット、およびRefPicSetLtと呼ばれる、長期参照ピクチャ用のただ1つのサブセットがあってよい。RefPicSetSt参照ピクチャサブセットは、リストされる順序(または他の任意の順序)でRefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、およびRefPicSetStFoll1の連結であってよく、RefPicSetLtは上記と同じであり得る。
【0175】
[0184]上記技法は、ビデオデコーダ30が参照ピクチャセットを導出することができる例示的やり方を説明する。符号化プロセス中、ビデオエンコーダ20は、再構成プロセスと呼ばれるものにおいて、後続ピクチャを符号化する目的で、符号化ピクチャを復号する必要もあり得る。したがって、いくつかの例では、ビデオエンコーダ20は、参照ピクチャセットを導出するようにも構成されてよい。いくつかの例では、ビデオエンコーダ20は、参照ピクチャセットを導出するためにビデオデコーダ30が実装した同じ技法を実装してよい。ただし、ビデオエンコーダ20による参照ピクチャセットの導出は、すべての例において要求されなくてもよく、ビデオデコーダ30が、参照ピクチャセットを導出する唯一のコーダであってよい。
【0176】
[0185]したがって、いくつかの例では、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)が、参照ピクチャセットに属す参照ピクチャを示す情報をコーディングする(たとえば、それぞれ、符号化または復号する)ことができる。たとえば、ビデオエンコーダ20は、どの参照ピクチャが参照ピクチャセットに属すか決定するための値を含む符号化ビットストリームをシグナリングすればよい。同様に、ビデオデコーダ30は、ビットストリームを復号して、どの参照ピクチャが参照ピクチャセットに属すか決定すればよい。
【0177】
[0186]ビデオコーダは、参照ピクチャのうちのゼロ個以上のピクチャを各々が識別する複数の参照ピクチャサブセットを構成することができる。たとえば、ビデオコーダは、6つの参照ピクチャサブセット(すなわち、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、およびRefPicSetLtFoll参照ピクチャサブセット)を構成することができ、サブセットの各々は、ゼロ個以上の参照ピクチャを識別する。いくつかの例では、ビデオコーダは、複数の参照ピクチャサブセットに基づいて、現在のピクチャをコーディングすることができる。
【0178】
[0187]たとえば、ビデオコーダは、構成された複数の参照ピクチャサブセットから、参照ピクチャセットを導出することができる。たとえば、ビデオコーダは、参照ピクチャサブセットを、参照ピクチャセットを導出するためのどの順序で並べてもよく、または参照ピクチャセットを、参照ピクチャサブセットの構成の一部として導出してよい。いくつかの例では、導出された参照ピクチャセットから、ビデオコーダは、現在のピクチャをコーディングすることができる。参照ピクチャセットは複数の参照ピクチャサブセットから導出されるので、ビデオコーダは、複数の参照ピクチャサブセットに基づいて現在のピクチャをコーディングするものと見なすことができる。
【0179】
[0188]いくつかの例では、参照ピクチャサブセットを並べるために、ビデオコーダは、参照ピクチャセット中で参照ピクチャサブセットがリストされるべき順序で、参照ピクチャサブセットを構成すればよい。たとえば、ビデオコーダは、最初にRefPicSetLtCurr参照ピクチャサブセットを構成し、次いで、RefPicSetLtFoll参照ピクチャサブセットを構成し、次いで、RefPicSetStCurr0参照ピクチャサブセットを構成し、次いで、RefPicSetStCurr1参照ピクチャサブセットを構成し、次いで、RefPicSetStFoll0参照ピクチャサブセットを構成し、次いで、RefPicSetStFoll1参照ピクチャサブセットを構成すればよい。この説明のための例において、参照ピクチャセット中の参照ピクチャサブセットの順序は、RefPicSetLtCurr、RefPicSetLtFoll、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、およびRefPicSetStFoll1が、その順序であってよいが、他の順序も可能である。
【0180】
[0189]本開示に記載する例示的技法によると、参照ピクチャセットを導出した後、ビデオデコーダ30は、現在のピクチャ内のスライスの復号を開始してよい。復号プロセスの一部は、1つまたは2つの参照ピクチャリストの構成を伴う。参照ピクチャリストとは、PまたはBスライスの予測に使われる参照ピクチャのリストである。Pスライスの復号プロセスのために、1つの参照ピクチャリスト(リスト0)がある。Bスライスの復号プロセスのために、2つの参照ピクチャリスト(リスト0およびリスト1)がある。参照ピクチャリスト0またはRefPicList0と呼ばれることがあるリスト0は、PまたはBスライスのインター予測に使われる参照ピクチャリストである。Pスライス用に使われるすべてのインター予測は、リスト0を使う。参照ピクチャリスト0は、Bスライスについての双予測に使われる2つの参照ピクチャリストの一方であり、他方が参照ピクチャリスト1である。参照ピクチャリスト1またはRefPicList1と呼ばれることがあるリスト1は、Bスライスの予測に使われる参照ピクチャリストである。参照ピクチャリスト1は、Bスライスについての予測に使われる2つの参照ピクチャリストの一方であり、他方が参照ピクチャリスト0である。Bスライス中のいくつかのブロックは、リスト0とリスト1の両方を使って双予測することができ、Bスライス中のいくつかのブロックは、リスト0またはリスト1のいずれかを使って単予測することができる。
【0181】
[0190]参照ピクチャリストを構成するために、ビデオデコーダ30は、初期リスト0と、Bスライス用には初期リスト1とを構成するためのデフォルトの構成技法を実装すればよい。初期リスト0および初期リスト1の構成は、初期化プロセスと呼ばれ得る。いくつかの例では、コード化ビットストリームは、ビデオデコーダ30が初期リスト0および/または初期リスト1を修正して、最終リスト0と最終リスト1とを生成するべきであることを示し得る。初期リスト0および/または初期リスト1の修正は、修正プロセスと呼ばれ得る。修正プロセスは、すべての例において要求されなくてもよく、ビデオデコーダ30が修正プロセスを実装することができる方法について、以下でより詳しく説明する。本開示に記載する技法によると、初期リスト0または初期リスト1の修正が必要とされないとき、最終リスト0または最終リスト1(すなわち、現在のピクチャのスライスを復号するのに使われる参照ピクチャリスト0または1)は、初期リスト0または初期リスト1に等しくなり得る。このように、参照ピクチャリストの並べ替えは、必要とされない場合もある。
【0182】
[0191]本開示に記載する技法では、参照ピクチャサブセットの各々の中の参照ピクチャはすでに正しい順序になっているので、修正プロセスが必要とされるかどうかにかかわらず、初期リスト0または初期リスト1に含まれるべき参照ピクチャの並べ替えをビデオデコーダ30が実施する必要がなくてもよいように、ビデオデコーダ30は、初期リスト0または初期リスト1を構成することができる。たとえば、いくつかの他の技法では、修正プロセスが必要とされるかどうかにかかわらず、初期リスト0または初期リスト1に参照ピクチャを追加またはリストするときの、初期リスト0または初期リスト1に含まれるべき参照ピクチャの、POC値による並べ替えが必要とされる。
【0183】
[0192]初期化プロセスにおいて、ビデオデコーダ30は、初期リスト0と初期リスト1とを構成するためのデフォルトの構成技法を実装してよい。デフォルトの構成技法は、ビデオデコーダ30が、ビデオデコーダ30が初期参照ピクチャリストを構成するべきであり、または参照ピクチャが初期参照ピクチャリスト中で識別されるべきである方法に関するシンタックス要素をビデオエンコーダ20から受信することなく、初期参照ピクチャリストを構成することを意味し得る。
【0184】
[0193]ビデオデコーダ30は、PまたはBスライスヘッダを復号するとき、参照ピクチャリスト構成プロセスを呼び出してよい。たとえば、Pスライスを復号するとき、ビデオデコーダ30は、初期リスト0を構成するためのプロセスを呼び出すことはできるが、Pスライス中のブロックは、リスト0中で識別される参照ピクチャを参照して単予測されるだけなので、初期リスト1を構成するためのプロセスを呼び出すことはできない。Bスライス中のブロックは、リスト0およびリスト1の各々の中で識別される参照ピクチャを参照して双予測され得るので、Bスライスを復号するとき、ビデオデコーダ30は、初期リスト0を構成し、初期リスト1を構成するためのプロセスを呼び出すことができる。
【0185】
[0194]本開示に記載する例示的技法によると、ビデオデコーダ30は、初期リスト0と初期リスト1とを構成するために、参照ピクチャサブセットを使用してよい。たとえば、初期リスト0および初期リスト1は、RefPicSetStCurr0、RefPicSetStCurr1、またはRefPicSetLtCurr中で識別されるゼロ個以上の参照ピクチャをリストすることができる。この例では、参照ピクチャリスト構成プロセスが呼び出されるとき、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurrには、少なくとも1つの参照ピクチャがあり得る。初期リスト0および初期リスト1は、同じ参照ピクチャサブセットにある1つまたは複数の参照ピクチャを識別し得るが、ビデオデコーダ30が初期リスト0中で参照ピクチャを追加する順序は、ビデオデコーダ30が初期リスト1中で参照ピクチャを追加する順序とは異なり得る。
【0186】
[0195]本開示では、ビデオデコーダ30が、初期リスト0または初期リスト1中の参照ピクチャサブセットのうちの1つまたは複数から、参照ピクチャを追加する(たとえば、リストする)とき、本開示は、初期リスト0または初期リスト1中の参照ピクチャを識別するビデオデコーダ30に言及する。たとえば、複数の参照ピクチャサブセットは、各々が、ゼロ以上の参照ピクチャを識別することができる。初期リスト0と初期リスト1とを構成するために、ビデオデコーダ30は、初期リスト0または初期リスト1への参照ピクチャサブセット中で識別される、参照ピクチャのうちの1つまたは複数を識別することができる。
【0187】
[0196]混乱を避けるため、および明快性を助けるために、本開示は、参照ピクチャサブセット中で識別される参照ピクチャのうちのゼロ個以上を、ビデオデコーダ30が初期リスト0および初期リスト1にリストしまたは追加して、初期リスト0と初期リスト1とを構成することに言及する場合がある。このように、ビデオデコーダ30が参照ピクチャを追加またはリストすることは、ビデオデコーダ30が、参照ピクチャサブセットに識別された参照ピクチャの識別子を追加またはリストすることを意味する。したがって、結果として得られる初期リスト0および初期リスト1は、現在のピクチャのブロックまたはスライスをコーディングするために使われる可能性があり得る、参照ピクチャについての複数の識別子を含む。これらの参照ピクチャは、ビデオデコーダ30およびビデオエンコーダ20のそれぞれの復号ピクチャバッファに記憶される。
【0188】
[0197]たとえば、初期リスト0を構成するために、ビデオデコーダ30は、最初に、初期リスト0中のRefPicSetStCurr0において識別された参照ピクチャ、続いて、初期リスト0中のRefPicSetStCurr1において識別された参照ピクチャ、次いで、初期リスト0中のRefPicSetLtCurrにおいて識別された参照ピクチャをリスト(たとえば、追加)すればよい。初期リスト1を構成するために、ビデオデコーダ30は、最初に、初期リスト1中のRefPicSetStCurr1において識別された参照ピクチャ、続いて、初期リスト1中のRefPicSetStCurr0において識別された参照ピクチャ、次いで、初期リスト1中のRefPicSetLtCurrにおいて識別された参照ピクチャをリスト(たとえば、追加)すればよい。
【0189】
[0198]さらに、参照ピクチャサブセットに参照ピクチャを異なる順序で追加することに加え、ビデオデコーダ30は、リスト0とリスト1とを構成するとき、参照ピクチャサブセットの各々からの異なる数の参照ピクチャを使用することができる。たとえば、リスト0およびリスト1は、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurrからの参照ピクチャすべてを含む必要はない。そうではなく、これらの例示的参照ピクチャサブセットから、初期リスト0と初期リスト1とを構成するためにリストされる参照ピクチャの数は、初期リスト0および初期リスト1の各々における参照ピクチャの最大数を示すシンタックス要素に基づき得る。
【0190】
[0199]たとえば、初期リスト0に対して、ビデオエンコーダ20は、PおよびBスライスについてのnum_ref_idx_l0_active_minus1シンタックス要素をスライスヘッダ中で、および双予測されるBスライスについてのnum_ref_idx_l1_active_minus1シンタックス要素をシグナリングすればよい。上述したように、num_ref_idx_l0_active_minus1は、初期リスト0中にあり得る参照ピクチャの最大数を定義することができ、num_ref_idx_l1_active_minus1は、初期リスト1中にあり得る参照ピクチャの最大数を定義することができる。いくつかの例では、num_ref_idx_l0_active_minus1の値がnum_ref_idx_l1_active_minus1の値とは異なることが可能であり得るが、これはすべての例において必要なわけではない。いくつかの例では、num_ref_idx_l0_active_minus1の値は、num_ref_idx_l1_active_minus1の値と同じであり得る。
【0191】
[0200]上述したように、ビデオデコーダ30は、コード化ビットストリーム中で、num_short_term_curr0およびnum_short_term_curr1についての値を受信することができる。ビデオデコーダ30は、変数NumShortTermCurr0を、num_short_term_curr0に等しく定義し、変数NumShortTermCurr1を、num_short_term_curr1に等しく定義すればよい。NumShortTermCurr0は、RefPicSetStCurr0参照ピクチャサブセット中の参照ピクチャの数を示すことができ、NumShortTermCurr1は、RefPicSetStCurr1参照ピクチャサブセット中の参照ピクチャの数を示すことができる。
【0192】
[0201]ビデオデコーダ30は、コード化ビットストリーム中で、num_long_term_pps_currおよびnum_long_term_add_currについての値も受信することができる。ビデオデコーダ30は、変数NumLongTermCurrを、num_long_term_pps_currにnum_long_term_add_currを加えたものに等しいものとして定義すればよい。NumLongTermCurrは、RefPicSetLtCurr中の参照ピクチャの数を示し得る。
【0193】
[0202]初期リスト0を構成するために、ビデオデコーダ30がRefPicSetStCurr0中のすべての参照ピクチャを初期リスト0に追加するまで、および初期リスト0中のエントリの数(たとえば、リスト0中で識別される参照ピクチャの数)がnum_ref_idx_l0_active_minus1以下である限り、ビデオデコーダ30は、最初にRefPicSetStCurr0中の参照ピクチャを初期リスト0に追加すればよい。たとえば、NumShortTermCurr0は、RefPicSetStCurr0参照ピクチャサブセット中の参照ピクチャの数を示し得る。この例では、ビデオデコーダ30は、RefPicSetStCurr0からリストされる参照ピクチャの数がNumShortTermCurr0と等しくなるまで、RefPicSetStCurr0参照ピクチャサブセットからの参照ピクチャをリストする(たとえば、追加する)ことができる。ただし、RefPicSetStCurr0の参照ピクチャを初期リスト0にリストする間、初期リスト0中のエントリの総数がnum_ref_idx_l0_active_minus1と等しくなった場合、ビデオデコーダ30は、初期リスト0にリストされていない追加ピクチャが、RefPicSetStCurr0中にあったとしても、RefPicSetStCurr0参照ピクチャサブセット中の参照ピクチャを追加するのを停止してよい。この場合、ビデオデコーダ30は、初期リスト0の構成を完了してしまってよい。
【0194】
[0203]ビデオデコーダ30が、RefPicSetStCurr0参照ピクチャサブセット中のすべての参照ピクチャをリストし、初期リスト0中のエントリの総数がnum_ref_idx_l0_active_minus1未満になった後、ビデオデコーダ30は次いで、ビデオデコーダ30がRefPicSetStCurr1中のすべての参照ピクチャを識別するまで、および初期リスト0中のエントリの数(たとえば、リスト0中で識別される参照ピクチャの数)がnum_ref_idx_l0_active_minus1以下である限り、RefPicSetStCurr1中の参照ピクチャを追加すればよい。たとえば、上記と同様に、NumShortTermCurr1は、RefPicSetStCurr1参照ピクチャサブセット中の参照ピクチャの数を示し得る。この例では、ビデオデコーダ30は、RefPicSetStCurr1からリストされる参照ピクチャの数がNumShortTermCurr1と等しくなるまで、RefPicSetStCurr1参照ピクチャサブセットからの参照ピクチャをリストすることができる。ただし、RefPicSetStCurr1からの参照ピクチャをリストする間、初期リスト0中のエントリの総数がnum_ref_idx_l0_active_minus1と等しくなった場合、ビデオデコーダ30は、初期リスト0にリストされていない追加ピクチャが、RefPicSetStCurr1中にあったとしても、RefPicSetStCurr1参照ピクチャサブセットから参照ピクチャを追加するのを停止してよい。この場合、ビデオデコーダ30は、初期リスト0の構成を完了してしまってよい。
【0195】
[0204]ビデオデコーダ30が、RefPicSetStCurr1参照ピクチャサブセット中のすべての参照ピクチャをリストし、初期リスト0中のエントリの総数がnum_ref_idx_l0_active_minus1未満になった後、ビデオデコーダ30は次いで、ビデオデコーダ30がRefPicSetLtCurr中のすべての参照ピクチャをリストするまで、および初期リスト0中のエントリの数(たとえば、リスト0中で識別される参照ピクチャの数)がnum_ref_idx_l0_active_minus1以下である限り、RefPicSetLtCurr中の参照ピクチャをリストすればよい。たとえば、上記と同様に、NumLongTermCurrは、RefPicSetLtCurr参照ピクチャサブセット中の参照ピクチャの数を示し得る。この例では、ビデオデコーダ30は、RefPicSetLtCurrからリストされる参照ピクチャの数がNumLongTermCurrと等しくなるまで、RefPicSetLtCurr参照ピクチャサブセットからの参照ピクチャをリストすることができる。ただし、RefPicSetLtCurrから参照ピクチャを初期リスト0にリストする間、初期リスト0中のエントリの総数がnum_ref_idx_l0_active_minus1と等しくなった場合、ビデオデコーダ30は、初期リスト0にリストされていない追加ピクチャが、RefPicSetLtCurr中にあったとしても、RefPicSetLtCurr参照ピクチャサブセット中の参照ピクチャを追加するのを停止してよい。この場合、ビデオデコーダ30は、初期リスト0の構成を完了してしまってよい。
【0196】
[0205]以下の擬似コードは、ビデオデコーダ30が初期リスト0を構成することができるやり方を示す。
【数4】
【0197】
[0206]上記擬似コードにおいて、RefPicList0は初期リスト0であり得る。リスト0の修正が必要とされない例において、最終リスト0は初期リスト0と等しくなり得る。したがって、リスト0の修正が必要とされない例では、上記擬似コードにおけるRefPicList0は、最終リスト0であり得る。
【0198】
[0207]ビデオデコーダ30は、初期リスト1を同様に構成してよい。ただし、初期リスト1を構成するために、ビデオデコーダ30は、最初に、RefPicSetStCurr1参照ピクチャサブセットから初期リスト1に、続いて、RefPicSetStCurr0参照ピクチャサブセットから初期リスト1に、続いて、RefPicSetLtCurr参照ピクチャサブセットから初期リスト1に、参照ピクチャを追加すればよい。また、上記と同様に、RefPicSetStCurr1、RefPicSetStCurr0、およびRefPicSetLtCurr参照ピクチャサブセットのうちのいずれか1つから参照ピクチャをリストする間、初期リスト1中のエントリの総数がnum_ref_idx_l1_active_minus1と等しくなった場合、これらの参照ピクチャサブセット中に追加参照ピクチャがあったとしても、ビデオデコーダ30は、参照ピクチャの追加を停止してよい。
【0199】
[0208]たとえば、初期リスト1を構成するために、ビデオデコーダ30がRefPicSetStCurr1中のすべての参照ピクチャを識別するまで、および初期リスト1中のエントリの数(たとえば、リスト1中で識別される参照ピクチャの数)がnum_ref_idx_l1_active_minus1以下である限り、ビデオデコーダ30は、最初に、RefPicSetStCurr1から参照ピクチャをリストすればよい。たとえば、NumShortTermCurr1の値は、ビデオデコーダ30がいつ、RefPicSetStCurr1参照ピクチャサブセット中の参照ピクチャすべてをリストするのを完了したかを示し得る。ただし、RefPicSetStCurr1中の参照ピクチャをリストする間、初期リスト1中のエントリの総数がnum_ref_idx_l1_active_minus1と等しくなった場合、ビデオデコーダ30は、初期リスト1にリストされていない追加ピクチャが、RefPicSetStCurr1中にあったとしても、RefPicSetStCurr1参照ピクチャサブセットから参照ピクチャを追加するのを停止してよい。この場合、ビデオデコーダ30は、初期リスト1の構成を完了してしまってよい。
【0200】
[0209]ビデオデコーダ30が、RefPicSetStCurr1参照ピクチャサブセット中のすべての参照ピクチャをリストし、初期リスト1中のエントリの総数がnum_ref_idx_l1_active_minus1未満になった後、ビデオデコーダ30は次いで、ビデオデコーダ30がRefPicSetStCurr0からすべての参照ピクチャをリストするまで、および初期リスト1中のエントリの数(たとえば、リスト1中で識別される参照ピクチャの数)がnum_ref_idx_l1_active_minus1以下である限り、RefPicSetStCurr0中の参照ピクチャをリストすればよい。たとえば、上記と同様、NumShortTermCurr0の値は、ビデオデコーダ30がいつ、RefPicSetStCurr0参照ピクチャサブセット中の参照ピクチャすべてをリストするのを完了したかを示し得る。ただし、RefPicSetStCurr0から参照ピクチャを初期リスト1にリストする間、初期リスト1中のエントリの総数がnum_ref_idx_l1_active_minus1と等しくなった場合、ビデオデコーダ30は、初期リスト1にリストされていない追加ピクチャが、RefPicSetStCurr0中にあったとしても、RefPicSetStCurr0参照ピクチャサブセット中の参照ピクチャを追加するのを停止してよい。この場合、ビデオデコーダ30は、初期リスト1の構成を完了してしまってよい。
【0201】
[0210]ビデオデコーダ30が、RefPicSetStCurr0参照ピクチャサブセット中のすべての参照ピクチャをリストし、初期リスト1中のエントリの総数がnum_ref_idx_l1_active_minus1未満になった後、ビデオデコーダ30は次いで、ビデオデコーダ30がRefPicSetLtCurr中のすべての参照ピクチャをリストするまで、および初期リスト1中のエントリの数(たとえば、リスト1中で識別される参照ピクチャの数)がnum_ref_idx_l1_active_minus1以下である限り、RefPicSetLtCurr中の参照ピクチャをリストすればよい。たとえば、上記と同様、NumLongTermCurrの値は、ビデオデコーダ30がいつ、RefPicSetLtCurr参照ピクチャサブセット中の参照ピクチャすべてをリストするのを完了したかを示し得る。ただし、RefPicSetLtCurr中の参照ピクチャをリストする間、初期リスト1中のエントリの総数がnum_ref_idx_l1_active_minus1と等しくなった場合、ビデオデコーダ30は、初期リスト1にリストされていない追加ピクチャが、RefPicSetLtCurr中にあったとしても、RefPicSetLtCurr参照ピクチャサブセットから参照ピクチャを追加するのを停止してよい。この場合、ビデオデコーダ30は、初期リスト1の構成を完了してしまってよい。
【0202】
[0211]以下の擬似コードは、ビデオデコーダ30が初期リスト1を構成することができるやり方を示す。
【数5】
【0203】
[0212]上記擬似コードにおいて、RefPicList1は初期リスト1であり得る。リスト1の修正が必要とされない例において、最終リスト1は初期リスト1と等しくなり得る。したがって、リスト1の修正が必要とされない例では、上記擬似コードにおけるRefPicList1は、最終リスト1であり得る。
【0204】
[0213]以上は、参照ピクチャリスト修正が必要とされないとき、ビデオデコーダ30が最終リスト0と最終リスト1とを構成することができる1つの例示的やり方である。他の例では、ビデオデコーダ30は、参照ピクチャサブセットを、上述したものとは異なる順序で追加してよい。さらにいくつかの他の例では、ビデオデコーダ30は、上述したもの以外の参照ピクチャサブセットを追加してよい。
【0205】
[0214]前述の例は、ビデオデコーダ30によって実施される参照ピクチャリスト構成のための技法について記載したが、本開示の態様はそのように限定されるわけではなく、ビデオエンコーダ20は、参照ピクチャリストを構成するための同様の技法を実装することができる。ただし、ビデオデコーダ30が参照ピクチャリストを構成するのと同じやり方で、ビデオエンコーダ20が参照ピクチャリストを構成することが必要なわけではない。
【0206】
[0215]したがって、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、参照ピクチャセットに属す参照ピクチャを示す情報をコーディングする(たとえば、符号化または復号する)ように構成してよい。上述したように、参照ピクチャセットは、現在のピクチャをインター予測するために使われる可能性があり得るとともに復号順で現在のピクチャに続く1つまたは複数のピクチャをインター予測するために使われる可能性があり得る参照ピクチャを識別する。
【0207】
[0216]ビデオコーダは、ゼロ個以上の参照ピクチャを各々が識別する複数の参照ピクチャサブセットを構成するように構成されてよい。たとえば、ビデオコーダは、少なくともRefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセットを構成することができる。ビデオコーダは、上述したような、追加参照ピクチャサブセットを構成することができる。
【0208】
[0217]ビデオコーダは次いで、第1の参照ピクチャサブセットからの参照ピクチャを、続いて第2の参照ピクチャサブセットからの参照ピクチャを、続いて第3の参照ピクチャサブセットからの参照ピクチャを、初期参照ピクチャリストエントリの数が最大許容参照ピクチャリストエントリ数以下である限り、初期参照ピクチャリストに追加すればよい。たとえば、ビデオコーダは、初期リスト0中のエントリの数がnum_ref_idx_l0_active_minus1以下である限り、RefPicSetStCurr0参照ピクチャサブセットから、続いてRefPicSetStCurr1参照ピクチャサブセットから、続いてRefPicSetLtCurrサブセットから、初期リスト0に参照ピクチャをリストすればよい。繰返しになるが、num_ref_idx_l0_active_minus1の値は、リスト0についての最大許容参照ピクチャリストエントリ数を示し得る。
【0209】
[0218]いくつかの例では、ビデオコーダは、第1の参照ピクチャサブセット中のすべての参照ピクチャが初期参照ピクチャリスト中でリストされ、または初期参照ピクチャリストエントリの数が最大許容参照ピクチャリストエントリ数と等しくなるまで、初期参照ピクチャリストにある第1の参照ピクチャサブセット中の参照ピクチャから追加してよい。初期参照ピクチャリストエントリの数が最大許容参照ピクチャリストエントリ数未満であるとき、および第1の参照ピクチャサブセットから参照ピクチャを追加した後、ビデオコーダは、第2の参照ピクチャサブセット中のすべての参照ピクチャが初期参照ピクチャリスト中でリストされ、または初期参照ピクチャリストエントリの数が最大許容参照ピクチャリストエントリ数と等しくなるまで、初期参照ピクチャリスト中の第2の参照ピクチャサブセットから参照ピクチャを追加してよい。初期参照ピクチャリストエントリの数が最大許容参照ピクチャリストエントリ数未満であるとき、および第2の参照ピクチャサブセットから参照ピクチャを追加した後、ビデオコーダは、第3の参照ピクチャサブセット中のすべての参照ピクチャが初期参照ピクチャリスト中でリストされ、または初期参照ピクチャリストエントリの数が最大許容参照ピクチャリストエントリ数と等しくなるまで、初期参照ピクチャリスト中の第3の参照ピクチャサブセットから参照ピクチャを追加してよい。
【0210】
[0219]ビデオコーダは、初期リスト1を同様に構成してよい。たとえば、ビデオコーダは、初期リスト1中の初期参照ピクチャリストエントリの数がnum_ref_idx_l1_active_minus1以下である限り、第2の参照ピクチャサブセットからの参照ピクチャを、続いて第1の参照ピクチャサブセットからの参照ピクチャを、続いて第3の参照ピクチャサブセットからの参照ピクチャを初期リスト1に追加してよい。num_ref_idx_l1_active_minus1シンタックス要素は、リスト1中の最大許容エントリ数を定義し得る。
【0211】
[0220]いくつかの例では、たとえば修正が必要とされないとき、初期リスト0および初期リスト1は、最終リスト0および最終リスト1と等しくなり得る。言い換えると、ビデオコーダは、修正が必要とされないとき、初期リスト0および初期リスト1の修正なしで、最終リスト0と最終リスト1とを構成することができる。これらのケースでは、初期リスト0と初期リスト1とを構成した後、ビデオコーダは、最終リスト0および最終リスト1(すなわち、ビデオコーダが現在のピクチャのブロックをコーディングするのに使う参照ピクチャリスト)を構成するための追加ステップを実施する必要がなくてよい。
【0212】
[0221]上記擬似コードに示されるように、ビデオデコーダ30は、cIdxがnum_ref_idx_l0_active_minus1以下である間、初期リスト0を構成することができ、cIdxがnum_ref_idx_l1_active_minus1以下である間、初期リスト1を構成することができる。結果として、ビデオデコーダ30は、参照ピクチャリスト中に未完エントリ(non-completed entry)を残さずに、初期リスト0と初期リスト1とを構成することができる。たとえば、いくつかの他のビデオコーディング技法では、これらの他のビデオ技法のためのビデオデコーダは、本開示に記載するもの以外の技法を使用して、初期リスト0とリスト1とを構成することになる。これらの他のビデオコーディング技法については、初期リスト0および初期リスト1中のエントリの数が最大許容エントリ数未満だった場合、これらの他のビデオコーディング技法のためのビデオデコーダは、リスト0およびリスト1中の残りのエントリを、未完エントリに対する「参照ピクチャなし」で埋めることになる。未完エントリは、参照ピクチャを識別する最後のエントリの後の、および最後の可能エントリまでのリスト0およびリスト1中のエントリを指す。
【0213】
[0222]理解を助けるための説明のための例として、これらの他のビデオコーディング技法のためのビデオデコーダは、リスト0を5つのエントリで構成することができ、最大許容エントリ数は10個のエントリである。この例では、これらの他のビデオコーディング技法のためのビデオデコーダは、第6〜第10のエントリを「参照ピクチャなし」として埋めることになる。この例では、未完エントリは、第6のエントリ(たとえば、参照ピクチャを識別する最後のエントリの後のエントリ)から第10のエントリ(たとえば、最大許容エントリ数で定義される最後の可能エントリ)までとなる。
【0214】
[0223]本開示の技法によると、ビデオデコーダ30は、未完エントリが残らないように、初期リスト0と初期リスト1とを構成することができる。また、参照ピクチャリスト修正が要求されない例では、最終リスト0および最終リスト1は初期リスト0および初期リスト1と等しくなり得る。したがって、参照ピクチャリスト修正が要求されない例では、ビデオデコーダ30は、未完エントリがないように、最終リスト0と最終リスト1とを構成すればよい。参照ピクチャリスト修正が要求される場合であっても、修正の結果、いかなる未完エントリもない場合がある。したがって、参照ピクチャリスト修正が要求される例であっても、ビデオデコーダ30は、未完エントリがないように、最終リスト0と最終リスト1とを構成すればよい。
【0215】
[0224]たとえば、リスト0およびリスト1は、エントリをもつリストと見なすことができ、各エントリは、参照ピクチャを(たとえば、ピクチャのPOC値によって)識別することができる。言い換えると、ビデオデコーダ30は、参照ピクチャを、リスト0およびリスト1の各エントリ中のピクチャのPOC値によって識別することができる。リスト0およびリスト1中のエントリの数は、それぞれ、num_ref_idx_l0_active_minus1およびnum_ref_idx_l1_active_minus1シンタックス要素によって定義することができる。
【0216】
[0225]未完エントリが確実になくなるようにするために、初期リスト0および初期リスト1の各可能エントリ中でどの参照ピクチャが識別されるべきかをビデオデコーダ30が決定するまで、ビデオデコーダ30は、初期リスト0および初期リスト1に参照ピクチャサブセットから参照ピクチャを繰り返しリスト(たとえば、追加または識別)すればよい。たとえば、上述したように、初期リスト0を構成するために、初期リスト0にRefPicSetStCurr0およびRefPicSetStCurr1参照ピクチャサブセットから参照ピクチャを追加した後、ビデオデコーダ30は、初期リスト0にRefPicSetLtCurr参照ピクチャサブセットから参照ピクチャを追加すればよい。
【0217】
[0226]いくつかの例では、ビデオデコーダ30が初期リスト0にRefPicSetLtCurr参照ピクチャサブセットから参照ピクチャを追加した後、初期リスト0中のエントリの総数が、リスト0中の最大許容エントリ数未満である可能性がある。たとえば、初期リスト0を構成するための擬似コードにおいて、cIdxは、リスト0中のエントリの数を示し得る。いくつかの例では、ビデオデコーダ30が、初期リスト0中のRefPicSetLtCurr中の参照ピクチャを識別した後、cIdxの値は、num_ref_idx_l0_active_minus1未満であってよく、num_ref_idx_l0_active_minus1はリスト0中の最大許容エントリ数を指定する。
【0218】
[0227]本開示に記載する技法によると、複数の参照ピクチャサブセットのうちの3つから参照ピクチャをリストした後、初期リスト0中のエントリの数が最大許容エントリ数未満である場合、ビデオデコーダ30は、リスト0中のすべてのエントリが満杯になるまで、3つの参照ピクチャサブセットから参照ピクチャを繰り返し追加してよい。たとえば、ビデオデコーダ30がRefPicSetLtCurr参照ピクチャセットから参照ピクチャを追加し、初期リスト0中のエントリの数が最大許容エントリ数未満になった後、ビデオデコーダ30は次いで、RefPicSetStCurr0参照ピクチャサブセットから参照ピクチャを再リスト(たとえば、再追加または再識別)すればよい。
【0219】
[0228]本開示に記載する態様において、ビデオデコーダ30がRefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセットから参照ピクチャをリストすると、ビデオデコーダ30は、これらの複数の参照ピクチャサブセットから、参照ピクチャリスト(たとえば、リスト0)中の第1のエントリセットに参照ピクチャを追加していると見なされ得る。たとえば、第1のエントリセットは、ビデオデコーダ30がRefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセットから参照ピクチャを識別した参照ピクチャリスト中のエントリであり得る。次いで、参照ピクチャリスト中のエントリの数が最大許容エントリ数未満である場合、ビデオデコーダ30は、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセットのうちの少なくとも1つから、第1のエントリセットの後に続く、参照ピクチャリスト中のエントリに、1つまたは複数の参照ピクチャを再リスト(たとえば、再追加または再識別)してよい。第1のエントリセットの後に続くエントリは、後で説明するように、ビデオデコーダ30がRefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセットのうちの1つまたは複数から、すでにリストされた参照ピクチャを追加する第1のエントリセットに続くエントリであり得る。
【0220】
[0229]RefPicSetStCurr0参照ピクチャサブセットから参照ピクチャを再追加する間、初期リスト0中のエントリの総数がnum_ref_idx_l0_active_minus1に等しくなった場合、ビデオデコーダ30は、初期リスト0中で参照ピクチャを再追加するのを停止してよい。この場合、ビデオデコーダ30は、初期リスト0の構成を完了してしまってよく、未完エントリは残り得ない。それ以外の場合、ビデオデコーダ30は、RefPicSetStCurr0参照ピクチャサブセットからすべての参照ピクチャが再リストされるまで、RefPicSetStCurr0参照ピクチャサブセットから参照ピクチャを再追加してよい。
【0221】
[0230]RefPicSetStCurr0参照ピクチャサブセット中のすべての参照ピクチャを再追加した後、初期リスト0中のエントリの数がnum_ref_idx_l0_active_minus1未満になった場合、ビデオデコーダ30は、ビデオデコーダ30がRefPicSetStCurr0参照ピクチャサブセットから参照ピクチャを再リストしたのと同様にして、RefPicSetStCurr1参照ピクチャサブセットから参照ピクチャを再追加してよい。RefPicSetStCurr1参照ピクチャサブセット中のすべての参照ピクチャを再追加した後、初期リスト0中のエントリの数がnum_ref_idx_l0_active_minus1未満になった場合、ビデオデコーダ30は、ビデオデコーダ30がRefPicSetStCurr0およびRefPicSetStCurr1参照ピクチャサブセットから参照ピクチャを再リストしたのと同様にして、RefPicSetLtCurr参照ピクチャサブセットから参照ピクチャを再追加してよい。ビデオデコーダ30は、初期リスト0中のエントリの数が、リスト0用の最大許容エントリ数と等しく(すなわち、num_ref_idx_l0_active_minus1と等しく)なるまで、参照ピクチャサブセットから参照ピクチャを繰り返し追加する。
【0222】
[0231]たとえば、RefPicSetStCurr0中に1つの参照ピクチャ、RefPicSetCurr1中に1つの参照ピクチャ、およびRefPicSetLtCurr中に1つの参照ピクチャがあると仮定する。また、num_ref_idx_l0_active_minus1が5に等しいと仮定する。この例では、ビデオデコーダ30は、初期リスト0中の2つのエントリにあるRefPicSetStCurr0中の参照ピクチャを識別することができる。たとえば、ビデオデコーダ30は、初期リスト0の最初のエントリにあるRefPicSetStCurr0中の参照ピクチャを識別し、初期リスト0の第4のエントリにあるRefPicSetStCurr0中の参照ピクチャを再識別することができる。この例では、RefPicSetStCurr0中の参照ピクチャについてのインデックス値は、初期リスト0中の最初のエントリについてのインデックス[0]、および初期リスト0中の第4のエントリについてのインデックス[3]であり得る。したがって、いくつかの例では、参照ピクチャサブセットのうちの1つにある1つの参照ピクチャが、初期参照ピクチャリスト中で複数回リスト(たとえば、識別)される場合がある。
【0223】
[0232]ビデオデコーダ30は、初期リスト1に未完エントリがないように、初期リスト1を同様に構成してよい。たとえば、ビデオデコーダ30は、初期リスト1中のエントリの数がリスト1中の最大許容エントリ数に等しく(すなわち、num_ref_idx_l1_active_minus1に等しく)なるまで、RefPicSetStCurr1、RefPicSetStCurr0、およびRefPicSetLtCurr参照ピクチャサブセットにある参照ピクチャを、その順序で繰り返し追加してよい。
【0224】
[0233]このように、初期リスト0と初期リスト1とを構成するための上記擬似コードでは、「for」ループが「while」ループ内に入れ子にされるので、ビデオデコーダ30は、初期リスト0および初期リスト1に未完エントリが残らない(すなわち、初期化プロセスの後で未完エントリがない)ように、初期リスト0と初期リスト1とを構成し得る。いくつかの例では、初期リスト0および初期リスト1中のエントリの各々は、参照ピクチャサブセットのうちの1つにある参照ピクチャを識別し得る。いくつかの例では、参照ピクチャサブセットのうちの1つにある1つまたは複数の参照ピクチャが、最終参照ピクチャリスト中で複数回、ただし異なるインデックス値をもつ異なるエントリにおいて識別されることが可能であり得る。
【0225】
[0234]前述の例は、ビデオデコーダ30によって実施される、未完エントリなしの参照ピクチャリスト構成のための技法について記載したが、本開示の態様はそのように限定されるわけではなく、ビデオエンコーダ20は、未完エントリなしの参照ピクチャリストを構成するための同様の技法を実装することができる。ただし、ビデオデコーダ30が参照ピクチャリストを構成するのと同じやり方で、ビデオエンコーダ20が参照ピクチャリストを構成することが必要なわけではない。
【0226】
[0235]したがって、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、参照ピクチャセットに属す参照ピクチャを示す情報をコーディングする(たとえば、符号化または復号する)ように構成してよい。上述したように、参照ピクチャセットは、現在のピクチャをインター予測するために使われる可能性があり得るとともに復号順で現在のピクチャに続く1つまたは複数のピクチャをインター予測するために使われる可能性があり得る参照ピクチャを識別する。
【0227】
[0236]ビデオコーダは、参照ピクチャのうちのゼロ個以上のピクチャを各々が識別する複数の参照ピクチャサブセット(たとえば、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセット)を構成することができる。ビデオコーダは、複数の参照ピクチャサブセットから参照ピクチャリスト中の第1のエントリセットに参照ピクチャをリスト(たとえば、識別または追加)し得る。ビデオコーダは、参照ピクチャリスト中のエントリの数が参照ピクチャリスト中の最大許容エントリ数に等しいかどうか決定し得る。
【0228】
[0237]参照ピクチャリスト中のエントリの数が参照ピクチャリスト中の最大許容エントリ数と等しくないとき、ビデオコーダは、参照ピクチャリスト中のエントリの数が参照ピクチャリスト中の最大許容エントリ数に等しくなるまで、参照ピクチャのうちの少なくとも1つから、第1のエントリセットの後に続く参照ピクチャリスト中のエントリに、1つまたは複数の参照ピクチャを繰り返し再追加(たとえば、再識別)し得る。ビデオコーダは次いで、構成された参照ピクチャリストに基づいて、現在のピクチャをコーディングし得る。
【0229】
[0238]上述したように、いくつかの例では、ビデオエンコーダ20は、ビデオデコーダ30に1つまたは複数の初期参照ピクチャリストを修正するよう命令するシンタックス要素をシグナリングすることができる。たとえば、ビデオデコーダ30は、上述したように1つまたは複数の初期参照ピクチャリストを構成し得る。次いで、いくつかの事例では、ビデオデコーダ30は、1つまたは複数の初期参照ピクチャリストを修正して1つまたは複数の最終参照ピクチャリストを構成するようビデオデコーダ30に命令する、コード化ビットストリームにあるシンタックス要素を復号することができる。概して、修正中、ビデオデコーダ30は、参照ピクチャリストの初期化の後、参照ピクチャリストのうち1つのリストのエントリにおける複数の参照ピクチャサブセットのうちの1つまたは複数において識別されたピクチャのうちの1つまたは複数をマッピングすればよい。
【0230】
[0239]たとえば、ビデオデコーダ30が上述したように1つまたは複数の初期参照ピクチャリストを構成した後、ビデオデコーダ30は、コード化ビットストリームによって命令されたように、初期参照ピクチャリストのうちの1つにおけるエントリのうちの少なくとも1つを修正してよい。たとえば、ビデオエンコーダ20は、修正シンタックス要素の一部として、参照ピクチャリストのエントリが初期化プロセスの一部として参照ピクチャをすでに識別し得るとしても、複数の参照ピクチャサブセットのうちの1つにあるどのピクチャが、参照ピクチャリストのそのエントリにおいて識別されるべきかを示すことができる。いくつかの例では、本開示に記載する参照ピクチャリスト修正技法は、柔軟なやり方での修正を可能にし得る。たとえば、ビデオデコーダ30が、参照ピクチャリストの一方または両方において、初期参照ピクチャリストにはない参照ピクチャを識別することが可能であり得る。
【0231】
[0240]本開示において使われるように、「修正参照ピクチャリスト」というフレーズは、初期参照ピクチャリストの修正後の参照ピクチャリストを指す。修正参照ピクチャリストは、最終参照ピクチャリストであり得る。修正参照ピクチャリスト中のエントリの数は、リスト0の場合はnum_ref_idx_l0_active_minus1+1、リスト1の場合はnum_ref_idx_l1_active_minus1+1である。参照ピクチャは、リスト0およびリスト1に対する修正参照リスト中の2つ以上のインデックス(たとえば、エントリ)において現れる場合がある。
【0232】
[0241]参照ピクチャリスト修正のために、ビデオエンコーダ20は、テーブル6のシンタックス要素をシグナリングすればよい。
【表6】
【0233】
[0242]シンタックス要素modification_of_ref_pic_idc、short_term_ref_pic_set_idxおよびlong_term_ref_pic_set_idxは、初期参照ピクチャリストから、スライスを復号するために使われるべき参照ピクチャリストへの変化を指定し得る。
【0234】
[0243]1に等しいref_pic_list_modification_flag_l0は、参照ピクチャリスト0を指定するためのシンタックス要素modification_of_ref_pic_idcが存在することを指定し得る。0に等しいref_pic_list_modification_flag_l0は、このシンタックス要素が存在しないことを指定する。
【0235】
[0244]ref_pic_list_modification_flag_l0が1に等しいとき、ref_pic_list_modification_flag_l0に続くmodification_of_ref_pic_idcが3に等しくない回数は、num_ref_idx_l0_active_minus1+1を超えてはならない。
【0236】
[0245]1に等しいref_pic_list_modification_flag_l1は、参照ピクチャリスト1を指定するためのシンタックスmodification_of_ref_pic_idcが存在することを指定し得る。0に等しいref_pic_list_modification_flag_l1は、このシンタックス要素が存在しないことを指定し得る。
【0237】
[0246]ref_pic_list_modification_flag_l1が1に等しいとき、ref_pic_list_modification_flag_l1に続くmodification_of_ref_pic_idcが3に等しくない回数は、num_ref_idx_l1_active_minus1+1を超えてはならない。
【0238】
[0247]modification_of_ref_pic_idcは、short_term_ref_pic_set_idxまたはlong_term_ref_pic_set_idxとともに、参照ピクチャのうちのどれが再マッピングされるかを指定し得る。modification_of_ref_pic_idcの値は、テーブル7において指定される。ref_pic_list_modification_flag_l0またはref_pic_list_modification_flag_l1の直後にくる第1のmodification_of_ref_pic_idcの値は3に等しくならないことがある。
【0239】
[0248]ref_pic_set_idxは、参照ピクチャリスト中の現在のインデックスに移される参照ピクチャのRefPicSetStCurr0、RefPicSetStCurr1またはRefPicSetLtCurrへのインデックスを指定する。ref_pic_set_idxの値は、両端値を含む0〜max_num_ref_framesの範囲内であり得る。
【表7】
【0240】
[0249]参照ピクチャリスト修正のために、ref_pic_list_modification_flag_l0が1に等しいとき、ビデオデコーダ30は、初期参照ピクチャリスト0(すなわち、初期リスト0)を修正し得、ref_pic_list_modification_flag_l1が1に等しいとき、ビデオデコーダ30は、初期参照ピクチャリスト1(すなわち、初期リスト1)を修正し得る。参照ピクチャリスト修正の理解を助けるために、変数refIdxL0が初期リスト0中へのインデックスであり、変数refIdxL1が初期リスト1中へのインデックスであると仮定する。言い換えると、refIdxL0は初期リスト0のエントリを識別し得(すなわち、初期リスト0へのインデックスが初期リスト0のエントリを識別する)、refIdxL1は初期リスト1のエントリを識別し得る。refIdxL0およびrefIdxL1変数は、最初に0に等しく設定され得る。
【0241】
[0250]ビデオデコーダ30は、シンタックス要素がビットストリーム中に出現するプロセスにおいて、modification_of_ref_pic_idcについてのシンタックス要素を処理することができる。たとえば、初期リスト0に参照ピクチャリスト修正が必要とされることをビデオエンコーダ20がシグナリングした場合、ビデオデコーダ30は、初期リスト0を修正するためにビデオエンコーダ20がmodification_of_ref_pic_idcシンタックス要素をシグナリングした順序を処理してよい。同様に、たとえば、初期リスト1に参照ピクチャリスト修正が必要とされることをビデオエンコーダ20がシグナリングした場合、ビデオデコーダ30は、初期リスト1を修正するためにビデオエンコーダ20がmodification_of_ref_pic_idcシンタックス要素をシグナリングする順序を処理してよい。
【0242】
[0251]modification_of_ref_pic_idcシンタックス要素の値は、テーブル7に示されるように、0、1、2、または3であり得る。modification_of_ref_pic_idcシンタックス要素の値が3である場合、ビデオデコーダ30は、初期参照ピクチャリストの修正を停止し得る。そうでない場合、ビデオデコーダ30は、modification_of_ref_pic_idcシンタックス要素の値が3になるまで、初期参照ピクチャリストを修正し続け得る。たとえば、ビデオエンコーダ20は、modification_of_ref_pic_idcシンタックス要素についての複数の値をシグナリングし得、ビデオデコーダ30は、コード化ビットストリーム中に値が存在する順序で、値の各々を処理し得る。ビデオデコーダ30がmodification_of_ref_pic_idcシンタックス要素の値を3となるように処理したとき、ビデオデコーダ30は、さらなる修正は必要とされないと決定し得る。
【0243】
[0252]3以外のもの(すなわち、0、1、または2)であるmodification_of_ref_pic_idcシンタックス要素の値は、どの参照ピクチャサブセットから、参照ピクチャリストの現在のエントリにおいてリストされる(たとえば、追加される)べき参照ピクチャをビデオデコーダ30が識別するべきであるかを指示し得る。上述したように、参照ピクチャリストの現在のエントリはrefIdxLXの値で識別することができ、LXはリスト0またはリスト1のいずれかである。たとえば、ビデオデコーダ30が初期リスト0を修正中であり、modification_of_ref_pic_idcが0である場合、テーブル7に従って、ビデオデコーダ30は、RefPicSetStCurr0にあるどの参照ピクチャが、参照ピクチャリストの現在のエントリにおいて識別されるべきかを、ref_pic_set_idxの値に基づいて決定し得る。ビデオデコーダ30が初期リスト1を修正中であり、modification_of_ref_pic_idcが0である場合、テーブル7に従って、ビデオデコーダ30は、RefPicSetStCurr1にあるどの参照ピクチャが、参照ピクチャリストの現在のエントリにおいて識別されるべきかを、ref_pic_set_idxの値に基づいて決定し得る。たとえば、変数curRefPicSetは、初期リスト0または初期リスト1を修正するために、どの参照ピクチャサブセットをビデオデコーダ30が使うべきかを定義し得る。
【0244】
[0253]たとえば、modification_of_ref_pic_idcが0に等しく、ビデオデコーダ30が初期リスト0を修正中である場合、curRefPicSetはRefPicSetStCurr0参照ピクチャサブセットに等しくなる。modification_of_ref_pic_idxが0に等しく、ビデオデコーダ30が初期リスト1を修正中である場合、curRefPicSetはRefPicSetStCurr1参照ピクチャサブセットに等しくなる。
【0245】
[0254]ビデオデコーダ30が初期リスト0を修正中であり、modification_of_ref_pic_idcが1である場合、テーブル7に従って、ビデオデコーダ30は、RefPicSetStCurr1にあるどの参照ピクチャが、参照ピクチャリストの現在のエントリにおいて識別されるべきかを、ref_pic_set_idxの値に基づいて決定し得る。ビデオデコーダ30が初期リスト1を修正中であり、modification_of_ref_pic_idcが1である場合、テーブル7に従って、ビデオデコーダ30は、RefPicSetStCurr0にあるどの参照ピクチャが、参照ピクチャリストの現在のエントリにおいて識別されるべきかを、ref_pic_set_idxの値に基づいて決定し得る。
【0246】
[0255]この場合、modification_of_ref_pic_idcが1に等しく、ビデオデコーダ30が初期リスト0を修正中である場合、curRefPicSetはRefPicSetStCurr1参照ピクチャサブセットに等しくなる。modification_of_ref_pic_idxが1に等しく、ビデオデコーダ30が初期リスト1を修正中である場合、curRefPicSetはRefPicSetStCurr0参照ピクチャサブセットに等しくなる。
【0247】
[0256]ビデオデコーダ30が初期リスト0または初期リスト1を修正中であり、modification_of_ref_pic_idcが2である場合、テーブル7に従って、ビデオデコーダ30は、RefPicSetLtCurrにあるどの参照ピクチャが、参照ピクチャリストの現在のエントリにおいて識別されるべきかを、ref_pic_set_idxの値に基づいて決定し得る。この例では、modification_of_ref_pic_idcが2に等しく、ビデオデコーダ30が初期リスト0または初期リスト1を修正中である場合、curRefPicSetはRefPicSetLtCurr参照ピクチャサブセットに等しくなる。
【0248】
[0257]上述したように、ref_pic_set_idxシンタックス要素は、複数の参照ピクチャサブセットのうちの1つのサブセットの中へのインデックスを指示し得る。言い換えると、ref_pic_set_idxシンタックス要素は、複数の参照ピクチャサブセットのうちの1つからのエントリを、ビデオデコーダ30に指示し得る。ビデオデコーダ30は、複数の参照ピクチャサブセットのうちの1つのサブセットのエントリにおいて識別された参照ピクチャを、初期リスト0または初期リスト1の現在のインデックスにおいて識別されるべき参照ピクチャとして決定し得る。
【0249】
[0258]変数curRefPicPocは、PicOrderCnt(curRefPicSet[ref_pic_set_idx])に等しくなり得る。このように、curRefPicPocの値は、curRefPicSetのref_pic_set_idxエントリ中で識別された参照ピクチャのPOC値になり得る。上述したように、curRefPicSetは、modification_of_ref_pic_idcシンタックス要素の値に基づいて、およびビデオデコーダ30が初期リスト0それとも初期リスト1を修正中であるかに基づいて、RefPicSetStCurr0、RefPicSetStCurr1、またはRefPicSetLtCurrに等しくなり得る。
【0250】
[0259]ビデオデコーダ30は、参照ピクチャリスト修正のための以下の擬似コードを実装することができる。たとえば、以下の擬似コードにおいて、ビデオデコーダ30は、初期参照ピクチャリストのエントリにおいて、curRefPicPocに等しいPOC値をもつピクチャを識別することができる。refIdxLX変数は、初期参照ピクチャリスト中のエントリについてのインデックス位置を示す。たとえば、ビデオデコーダ30が初期リスト0を修正中であるとき、refIdxLXはrefIdxL0であってよく、ビデオデコーダ30が初期リスト1を修正中であるとき、refIdxLXはrefIdxL1であってよい。
【0251】
[0260]ビデオデコーダ30が、初期参照ピクチャリスト(すなわち、初期リスト0または初期リスト1)中でcurRefPicPOCに等しいPOC値をもつ参照ピクチャを識別した後、ビデオデコーダ30は、他の残りのピクチャの位置を、リスト中でより後にシフトすればよい。たとえば、ビデオデコーダ30は、現在のエントリに続くエントリにある、初期参照ピクチャリスト中で識別された参照ピクチャを、次のエントリに移して、修正参照ピクチャリストを構成すればよい。説明のための例として、初期参照ピクチャリスト中の現在のエントリが、インデックス[2]をもつ第3のエントリであると仮定する。ビデオデコーダ30は、インデックス[2]をもつ第3のエントリ中で現在識別される参照ピクチャを、次のエントリ(たとえば、インデックス[3]をもつ第4のエントリ)に移してよい。ビデオデコーダ30は、インデックス[3]をもつ第4のエントリ中で現在識別される参照ピクチャを、インデックス[4]をもつ第5のエントリに移してよい。いくつかの例では、ビデオデコーダ30は、初期参照ピクチャリスト中の最後のエントリから始めて、そのエントリにおいて識別される参照ピクチャを、時間的に新しいエントリに移せばよい。次いで、第2から最後のエントリにおいて識別される参照ピクチャを最後のエントリに移し、ビデオデコーダ30が現在のエントリに達するまで、以下同様にする。
【0252】
[0261]ビデオデコーダ30は次いで、refIdxLX変数の値を増分してよい。この擬似コードにおいて、RefPicListX(すなわち、RefPicList0またはRefPicList1)の長さは、一時的に、最終参照ピクチャリストに必要とされる長さよりも、1つの要素分だけ長くされる。たとえば、上述したように、ビデオデコーダ30は、初期参照ピクチャリスト中の最後のエントリから始めて、その最後のエントリを一時的エントリに移し、第2から最後のエントリを最後のエントリに移し、以下同様に続けて、初期参照ピクチャリストを修正することができる。擬似コードの実行後、ビデオデコーダ30は、num_ref_idx_lX_active_minus1によりインデックス0におけるエントリのみを保持すればよく、ここでnum_ref_idx_lX_active_minus1はリスト0についてのnum_ref_idx_l0_active_minus1、およびリスト1についてのnum_ref_idx_l1_active_minus1である。
【数6】
【0253】
[0262]上記擬似コードにおいて、RefPicListXは、ビデオデコーダ30が初期リスト0それとも初期リスト1を修正中であるかに基づいて、RefPicList0(すなわち、最終リスト0)またはRefPicList1(すなわち、最終リスト1)のいずれかを指す。num_ref_idx_lX_active_minus1は、ビデオデコーダ30が初期リスト0それとも初期リスト1を修正中であるかに基づいて、num_ref_idx_l0_active_minus1またはref_idx_l1_active_minus1のいずれかを指す。
【0254】
[0263]上記技法は、ビデオデコーダ30が初期参照ピクチャリストを修正することができる例示的やり方を説明する。符号化プロセス中、ビデオエンコーダ20は、後続ピクチャを符号化する目的で、符号化ピクチャを復号する必要もあり得る。したがって、いくつかの例では、ビデオエンコーダ20は、上述したように、初期参照ピクチャリストを構成し、初期参照ピクチャリストを修正するように構成されてもよい。ただし、ビデオエンコーダ20は、すべての例において1つまたは複数の初期参照ピクチャリストを修正する必要はない場合がある。いくつかの例では、ビデオデコーダ30は、上述した技法を使用して初期参照ピクチャを修正する唯一のコーダであり得る。
【0255】
[0264]したがって、いくつかの例では、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、上述した技法を使用して、初期参照ピクチャリスト(たとえば、初期リスト0または初期リスト1)を構成することができる。ビデオコーダは、コード化ビットストリーム中のコード化シンタックス要素に基づいて、参照ピクチャリスト修正が必要とされるかどうか決定することができる。参照ピクチャリスト修正が必要とされるとき、ビデオコーダは初期参照ピクチャリストを修正してよい。
【0256】
[0265]たとえば、参照ピクチャリスト修正が必要とされるとき、ビデオコーダは、構成された参照ピクチャサブセットのうちの少なくとも1つの中の参照ピクチャを識別することができる。ビデオコーダは、初期参照ピクチャリストの現在のエントリ中の、識別された参照ピクチャサブセットをリストして(たとえば、追加して)、修正参照ピクチャリストを構成することができる。ビデオコーダは次いで、修正参照ピクチャリストに基づいて、現在のピクチャをコーディング(たとえば、符号化または復号)すればよい。
【0257】
[0266]一例として、ビデオコーダは、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセットを構成することができる。これらの参照ピクチャサブセットのうちの少なくとも1つにおいて参照ピクチャを識別するために、ビデオコーダは、これらの参照ピクチャサブセットのうち少なくとも1つのサブセットの中へのインデックスを決定すればよい。ビデオコーダは次いで、決定されたインデックスに基づいて、これらの参照ピクチャサブセットのうち少なくとも1つのサブセットのエントリにおいてで識別された参照ピクチャを決定すればよい。
【0258】
[0267]たとえば、ビデオコーダは、ビデオコーダが参照ピクチャサブセットのうちの1つ(たとえば、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセットのうちの1つ)を識別する際に用いる、modification_of_ref_pic_idcシンタックス要素など、第1のシンタックス要素をコーディング(たとえば、符号化または復号)すればよい。ビデオコーダは、識別された参照ピクチャサブセット(たとえば、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセットのうちの1つ)の中へのインデックスを示す、ref_pic_set_idxシンタックス要素など、第2のシンタックス要素をコーディングすればよい。
【0259】
[0268]いくつかの例では、ビデオコーダは、初期参照ピクチャリスト中の参照ピクチャを移すようにさらに構成されてよい。たとえば、ビデオコーダは、現在のエントリに続くエントリにある、初期参照ピクチャリスト中で識別された参照ピクチャを、修正参照ピクチャリスト中の次のエントリに移せばよい。
【0260】
[0269]以上の例は、ビデオエンコーダ20およびビデオデコーダ30が参照ピクチャセットを導出することができる方法、ならびに修正が必要とされないとき、および修正が必要とされるときに参照ピクチャリストを構成するための例示的技法を記載した。ただし、本開示に記載する技法は、そのように限定されるわけではない。いくつかの例では、本開示に記載する技法は、復号ピクチャバッファ(DPB)管理を対象とし得る。DPBは、復号ピクチャを記憶するバッファであり得る。
【0261】
[0270]ビデオエンコーダ20およびビデオデコーダ30の各々は、それぞれのDPBを含み得る。たとえば、符号化プロセスの一部として、ビデオエンコーダ20は、現在のピクチャを復号し、復号ピクチャをビデオエンコーダ20のDPBに記憶し、DPBに記憶された復号ピクチャを、後続ピクチャのインター予測のために使用することができる。同様に、復号プロセスの一部として、ビデオデコーダ30は、現在のピクチャを復号し、復号ピクチャをビデオデコーダ30のDPBに記憶することができる。ビデオデコーダ30は次いで、復号ピクチャを、後続ピクチャのインター予測のために使用することができる。
【0262】
[0271]いくつかの例では、ビデオエンコーダ20またはビデオデコーダ30のいずれかのためのDPBは、復号ピクチャを、出力並べ替えまたは出力遅延のために記憶することができる。たとえば、ビデオデコーダ30は、復号ピクチャが出力用に並べ替えられるべきであると、または復号ピクチャの出力が遅らされるべきであると決定してよい。これらの例では、ビデオデコーダ30のDPBは、復号ピクチャを、出力並べ替えまたは出力遅延のために記憶することができる。
【0263】
[0272]本開示に記載するDPB管理技法は、DPBが復号ピクチャを出力および削除する方法を対象とし得る。output_flagシンタックス要素は、復号ピクチャ出力および削除プロセスに影響する場合があり、ネットワークアブストラクションレイヤ(NAL)ユニットセマンティクスの一部として定義され得る。NALユニットは、後に続くべきデータのタイプと、必要に応じてエミュレーション防止バイトをもつ、散在される未加工バイトシーケンスペイロード(RBSP)の形でデータを含むバイトとの指示を含むシンタックス構造として定義され得る。RBSPは、NALユニット中にカプセル化される、整数個のバイトを含むシンタックス構造であり得る。RBSPは、空であってもよく、またはシンタックス要素、それに続くRBSPストップビット、およびそれに続く、0に等しい、ゼロ個以上の後続ビットを含むデータビット列の形を有する。テーブル8は、NALユニットシンタックスを定義する。
【表8】
【0264】
[0273]テーブル8において、output_flagは、後でより詳しく説明するように、復号ピクチャ出力および削除プロセスに影響し得る。どのピクチャに対しても、output_flagが1に等しい場合、ピクチャは出力を意図されている。そうでない場合、ピクチャが出力されることはない。本開示に記載する技法では、変数OutputFlagは、output_flagシンタックス要素に等しい。
【0265】
[0274]いくつかの例では、現在のアクセスユニットのコード化ピクチャのどのコード化スライスNALユニットも、以下のうちの1つまたは複数のように、前のアクセスユニットのコード化ピクチャのどのコード化スライスNALユニットとも異なってよい。たとえば、nal_ref_idc値のうちの1つが0に等しい場合、pic_parameter_set_id値が異なってよく、nal_ref_idc値が異なってよい。pic_order_cnt_lsb値が異なってよい。IdrPicFlag値が異なってよい。IdrPicFlagは両方に対して1に等しくてよく、idr_pic_id値は異なってよい。
【0266】
[0275]本開示に記載する技法では、アクセスユニットは、復号順において連続するとともに1つのコード化ピクチャを含む1組のNALユニットとして定義され得る。コード化ピクチャに加え、1つの補助コード化ピクチャ、または他のNALユニットは、コード化ピクチャのスライスを含むことはできない。いくつかの例では、アクセスユニットの復号により、復号ピクチャが生じ得る。コード化ピクチャは、復号プロセスによって使用されるべきピクチャのコード化表現であり得る。
【0267】
[0276]テーブル4に示されるように、スライスヘッダシンタックスは、pic_parameter_set_idシンタックス要素と、pic_order_cnt_lsbシンタックス要素と、IdrPicFlagシンタックス要素と、idr_pic_idシンタックス要素とを含み得る。テーブル8に示されるように、NALユニットシンタックスは、nal_ref_idcシンタックス要素を含み得る。
【0268】
[0277]説明のために、DPB管理技法を、仮想参照デコーダ(HRD)の観点から説明する。HRDは、符号化プロセスが生じ得る準拠NALユニットストリームまたは準拠バイトストリームの変動性に対する制約を指定する仮想デコーダモデルとして定義され得る。ただし、本開示に記載する技法によると、ビデオデコーダ30はDPB管理技法を実装することができ、いくつかの例では、ビデオエンコーダ20がDPB管理技法を実装することも可能であり得る。
【0269】
[0278]HDRモデルは、コード化ピクチャバッファ(CPB)と、瞬時復号プロセスと、復号ピクチャバッファ(DPB)とを定義することができる。CPBは、他の以前の規格において定義されるHDRモデルのCPBと同様であり得る(すなわち、CPBは、コード化ピクチャを記憶することができる)。本開示に記載する技法は、他の規格における操作とは異なる、DPB操作を対象とする。繰返しになるが、ビデオデコーダ30および可能性としてはビデオエンコーダ20が、後で説明するようにDPB操作を実装し得ることを理解されたい。
【0270】
[0279]概して、本開示に記載する技法は、DPBにおける復号ピクチャの出力および削除に関連する。復号ピクチャの出力は、このコンテキストでは、復号中のピクチャの、表示、記憶または他の目的での出力を意味する。ただし、出力される復号ピクチャは、必ずしもDPBから削除される必要はない。たとえば、ビデオデコーダ30は、出力される復号ピクチャを、後続ピクチャをインター予測するための参照ピクチャとして使用する必要があり得るので、ビデオデコーダ30は、その復号ピクチャをDPBから削除しなくてよい。復号ピクチャの削除は、このコンテキストでは、DPBからの復号ピクチャの削除を意味する。
【0271】
[0280]たとえば、ビデオデコーダ30は、復号ピクチャを、ビデオデコーダ30のDPBに、ピクチャが復号される順序で記憶すればよい。ただし、ピクチャの復号順は、ピクチャの出力順と同じでなくてよい。たとえば、復号順において現在のピクチャの後に続く、現在のピクチャよりも早く出力されるべきピクチャがあり得る。したがって、いくつかの例では、ビデオデコーダ30は、復号順で並べられている、DPB中のピクチャを、ビデオデコーダ30が出力順に並べ替えるための並べ替えを実施してよい。ビデオデコーダ30は次いで、復号ピクチャを、その出力順に出力すればよい。ビデオデコーダ30は、ピクチャが出力に必要とされない(すなわち、出力済みであるか、または出力を意図されていない)、また、インター予測に必要とされない(すなわち、インター予測のための参照ピクチャとして使われる必要がない)場合、復号ピクチャからピクチャを削除してもよい。
【0272】
[0281]本開示に記載する技法では、復号ピクチャが出力済みであるか、または出力を意図されていない場合、および導出された参照ピクチャセット中で復号ピクチャが識別されない場合は、インター予測参照にはそれ以上必要とされない(すなわち、それ以上インター予測のための参照ピクチャとして使われる必要がない)ことと等価なので、ビデオデコーダ30は、DPBから復号ピクチャを削除してよい。繰返しになるが、上述したように、参照ピクチャセットは、現在のピクチャをインター予測するのに使われる可能性があり得るとともに復号順で現在のピクチャに続く1つまたは複数のピクチャをインター予測するのに使われる可能性があり得る参照ピクチャを識別することができる。本開示に記載する技法によると、導出された参照ピクチャセット中で復号ピクチャが識別されない場合、その復号ピクチャは、現在のピクチャと、復号順で現在のピクチャに続く1つまたは複数のピクチャとをインター予測する(たとえば、復号する)ための参照ピクチャとして必要とされなくてよい。したがって、このような復号ピクチャは、復号ピクチャがインター予測に使われる予定がないのであれば、このような復号ピクチャをDPB中に保つ必要があり得ないので、復号ピクチャが出力に必要とされない場合、DPBから削除してよい。
【0273】
[0282]さらに、本開示に記載する技法では、ビデオデコーダ30は、現在のピクチャの復号に先立って、復号ピクチャを削除してよい。たとえば、上述したように、ビデオデコーダ30は、現在のピクチャの復号に先立って、参照ピクチャセットを導出し、参照ピクチャリスト(1つまたは複数)を構成することができる。ビデオデコーダ30は、現在のピクチャを復号するのに先立って参照ピクチャセットを導出することができるので、ビデオデコーダ30は、出力に必要とされない復号ピクチャが、現在のピクチャを復号するのに先立って削除されるべきかどうか決定するように構成すればよい。たとえば、参照ピクチャセットを導出した後、および現在のピクチャを復号するのに先立って、ビデオデコーダ30は、出力された復号ピクチャまたは出力を意図されていない復号ピクチャが、参照ピクチャセット中で識別されていないかどうか決定することができる。次いで、現在のピクチャを復号するのに先立って、ビデオデコーダ30は、復号ピクチャが参照ピクチャセット中で識別されない場合、出力に必要とされない(すなわち、すでに出力されているか、または出力を意図されていない)復号ピクチャを削除してよい。
【0274】
[0283]いくつかの例では、ビデオデコーダ30は、現在のピクチャを復号するのに先立って、復号ピクチャを削除してよい。ただし、ビデオデコーダ30は、参照ピクチャリスト(1つまたは複数)を構成した後、復号ピクチャを削除してよい。たとえば、ビデオデコーダ30は、参照ピクチャセットを導出することができ、参照ピクチャセットに基づいて参照ピクチャリストを構成することができる。次いで、現在のピクチャを復号するのに先立って、ビデオデコーダ30は、復号ピクチャを削除してよい。いくつかの例では、ビデオデコーダ30は、参照ピクチャリスト(1つまたは複数)を構成した後、復号ピクチャを出力してもよい。
【0275】
[0284]本開示は、DPB中の復号ピクチャの削除技法について、少なくとも2つ観点から記載する。第1の観点では、ビデオデコーダ30は、ピクチャが出力を意図されている場合、出力時間に基づいて、復号ピクチャを削除してよい。第2の観点では、ビデオデコーダ30は、ピクチャが出力を意図されている場合、POC値に基づいて、復号ピクチャを削除してよい。いずれの観点でも、ビデオデコーダ30は、復号ピクチャが参照ピクチャセット中にないとき、および現在のピクチャを復号するのに先立って、出力に必要とされない(すなわち、すでに出力されているか、または出力を意図されていない)復号ピクチャを削除してよい。
【0276】
[0285]DPBは複数のバッファを含んでよく、各バッファは、参照ピクチャとして使われるべき、または将来の出力のために保有される復号ピクチャを記憶することができる。最初に、DPBは空である(すなわち、DPB充満度(fullness)はゼロに設定される)。記載した例示的技法では、DPBからの復号ピクチャの削除は、現在のピクチャの復号の前、ただしビデオデコーダ30が現在のピクチャの最初のスライスのスライスヘッダを解析した後に起こり得る。
【0277】
[0286]第1の観点では、以下の技法は、以下の系列で、時間t
r(n)において瞬時に起こり得る。この例では、t
r(n)は、現在のピクチャを含むアクセスユニットnのCPB削除時間(すなわち、復号時間)である。本開示で説明するように、瞬時に起こる技法は、HDRモデルでは、ピクチャの復号が、ゼロに等しい、ピクチャを復号するための期間をもつ瞬時(すなわち、無制限に高速)であると仮定されることを意味し得る。
【0278】
[0287]現在のピクチャがIDRピクチャである場合、およびIDRピクチャが最初のIDRピクチャではなく、アクティブシーケンスパラメータセットから導出されたpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはmax_dec_frame_bufferingの値の値が、それぞれ、先行ピクチャに関してアクティブだったシーケンスパラメータセットから導出されたpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはmax_dec_frame_bufferingの値とは異なるとき、ビデオデコーダ30は、no_output_of_prior_pics_flagの実効値にかかわらず、no_output_of_prior_pics_flagシンタックス要素が1に等しいと推論してよい。現在のピクチャがIDRピクチャである場合、およびno_output_of_prior_pics_flagが実際に1に等しく、または1に等しいと推論されるとき、ビデオデコーダ30は、DPB内のピクチャを出力せずに、DPBのすべてのバッファを空にしてよく、DPB充満度を0に設定すればよい。
【0279】
[0288]上でテーブル1に示したように、シーケンスパラメータセットは、pic_width_in_luma_samples、およびpic_height_in_luma_samplesシンタックス要素を含み得る。シーケンスパラメータセットは、max_dec_frame_bufferingシンタックス要素も含み得る。上でテーブル4に示したように、スライスヘッダシンタックスは、no_output_of_prior_pics_flagシンタックス要素を含み得る。
【0280】
[0289]現在のピクチャがIDRピクチャではないとき、ビデオデコーダ30は、以下の条件が真であるDPB内のすべてのピクチャ(m)を削除してよい。第1の条件は、ピクチャが現在のピクチャの参照ピクチャセットに含まれないことであってよい。第2の条件は、ピクチャが、0に等しいOutputFlagをもち、またはピクチャのDPB出力時間が現在のピクチャのCPB削除時間以下であることであり得る。この例では、CPB削除時間は、削除プロセスが起こるt
r(n)(たとえば、現在のピクチャの復号に先立つ時間)である。復号ピクチャmのDPB出力時間は、変数t
o,dpb(m)によって定義することができる。したがって、CPB削除時間以下であるDPB出力時間は、t
o,dpb(m)≦t
r(n)と表すことができる。DPB出力時間(t
o,dpb)の導出については、以下でより詳しく定義する。
【0281】
[0290]このようにして、ビデオデコーダ30は、復号ピクチャの出力時間に基づいて、ピクチャを復号するのに先立って、および復号ピクチャが参照ピクチャセット中で識別されないとき、DPBから復号ピクチャを削除することができる。ビデオデコーダ30がDPBから復号ピクチャを削除すると、ビデオデコーダ30は、DPB充満度を1だけ減分してよい。
【0282】
[0291]以下では、復号ピクチャを出力するべき時間(たとえば、復号ピクチャのDPB出力時間)をビデオデコーダ30が決定することができる方法について説明し、いつビデオデコーダ30が復号ピクチャをDPBに記憶することができるかについても説明する。上述したように、ピクチャのDPB出力時間は、そのピクチャがDPBから削除されるかどうか決定する際の要因となり得る。
【0283】
[0292]ビデオデコーダ30がピクチャを復号するとき、ビデオデコーダ30は、ピクチャをDPBに記憶し、DPB充満度を1だけ増分する。ピクチャが、1に等しいOutputFlagを有するとき、ビデオデコーダ30は、以下の式に基づいて、ピクチャについてのDPB出力時間を導出することができる。
【数7】
【0284】
[0293]この式において、dpb_output_delay(n)は、ピクチャを含むアクセスユニットに関連付けられたピクチャタイミングSEIメッセージ中で指定され得る。SEIメッセージは、H.264/AVC規格など、いくつかの規格において定義され得る。
【0285】
[0294]t
o,dpb(n)値は、いつピクチャが出力されるべきかを定義し得る。たとえば、OutputFlagが1に等しく、t
o,dpb(n)がt
r(n)に等しい場合、ビデオデコーダ30はピクチャを出力してよい。そうではなく、OutputFlagが0に等しい場合、ビデオデコーダ30はピクチャを出力することができない。OutputFlagが1に等しく、t
o,dpb(n)がt
r(n)よりも大きい事例では、ビデオデコーダ30は、以降の時間に(たとえば、時間t
o,dpb(n)で)ピクチャを出力することができる。
【0286】
[0295]いくつかの例では、ビデオデコーダ30がピクチャを出力するとき、ビデオデコーダ30はピクチャをクロップしてよい。たとえば、ビデオデコーダ30は、ピクチャ用のアクティブシーケンスパラメータセット中で指定されたクロッピング矩形を使用することができる。ピクチャをクロップするための技法は概して、H.264/AVC規格などの規格において十分に確立され、記載されている。
【0287】
[0296]いくつかの例では、ビデオデコーダ30は、ピクチャについてのDPB出力時間と、出力順においてそのピクチャに続くピクチャについてのDPB出力時間との間の差を決定することができる。たとえば、ピクチャ(n)が、ビデオデコーダ30が出力するピクチャであり、出力される、ビットストリームの最後のピクチャではないとき、ビデオデコーダ30は、Δt
o,dpb(n)の値が、次のように定義されると決定することができる。
【数8】
【0288】
[0297]上記式において、n
nは、出力順においてピクチャ(n)に続くとともに1に等しいOutputFlagをもつピクチャを示す。また、上記式において、Δt
o,dpb(n)は、ピクチャと、出力順においてその後に続くピクチャとの間のDPB出力時間の差を表す。
【0289】
[0298]復号ピクチャを削除するための第2の観点において、HDRは、アクセスユニットがCPBから削除されたとき、瞬時にこれらの技法を実装すればよい。繰返しになるが、ビデオデコーダ30は、DPBからの復号ピクチャの削除を実施することができ、ビデオデコーダ30は、必ずしもCPBを含まなくてよい。概して、本開示では、復号ピクチャの削除は、ビデオデコーダ30によって実施され、ビデオエンコーダ20によって実施されてもよい。これらの例では、ビデオデコーダ30およびビデオエンコーダ20は、CPBを要求しなくてよい。そうではなく、CPBは、説明のためにのみ、HDRモデルの一部として説明される。
【0290】
[0299]上記のように、復号ピクチャを削除するための第2の観点において、ビデオデコーダ30は、現在のピクチャの復号の前、ただし現在のピクチャの最初のスライスのスライスヘッダを解析した後、DPBからピクチャを削除してよい。また、復号ピクチャを削除するための第1の観点と同様、第2の観点において、ビデオデコーダ30は、現在のピクチャがIDRピクチャであるとき、第1の観点に関して上述したのと同様の機能を実施することができる。
【0291】
[0300]そうではなく、現在のピクチャがIDRピクチャではない場合、ビデオデコーダ30は、「出力に必要とされない」とマーキングされたピクチャを記憶するとともに、現在のピクチャの参照ピクチャセットに含まれないピクチャを記憶するDPBのバッファを、出力せずに空にしてよい。ビデオデコーダ30は、DPB充満度を、ビデオデコーダ30が空にしたバッファの数だけ減分してもよい。空きバッファがなくなった(すなわち、DPB充満度がDBPサイズに等しくなった)とき、ビデオデコーダ30は、後で説明する「バンピング(bumping)」プロセスを実施すればよい。いくつかの例では、空きバッファがない場合、ビデオデコーダ30は、ビデオデコーダ30が現在の復号ピクチャを記憶することができる空きバッファがあるバンピングプロセス繰り返しユニットを実装すればよい。
【0292】
[0301]現在のピクチャが、no_output_of_prior_pics_flagが1に等しくないとともに1に等しいと推論されないIDRピクチャであるとき、ビデオデコーダ30は、以下を実施すればよい。ビデオデコーダ30は、「出力に必要とされない」とマーキングされたピクチャを記憶するとともに、現在のピクチャの参照ピクチャセットに含まれないDPBのバッファを、出力せずに空にしてよい。ビデオデコーダ30は、「バンピング」プロセスを繰り返し呼び出すことによって、DPB内のすべての空でないバッファを空にしてよく、DPB充満度を0に設定すればよい。
【0293】
[0302]言い換えると、現在のピクチャがIDRピクチャであるとき、ビデオデコーダ30は、DPB内のすべてのバッファを空にするための技法を実施すればよい。現在のピクチャがIDRピクチャではないとき、ビデオデコーダ30は、復号ピクチャを、現在の復号ピクチャを記憶するためのフリーバッファに移動するための技法を実施すればよい。
【0294】
[0303]たとえば、ビデオデコーダ30が現在のピクチャを復号した後、ビデオデコーダ30は、現在のピクチャをDPBに記憶し、DPB充満度を1だけ増分してよい。いくつかの例では、現在のピクチャのOutputFlagが1に等しい場合、ビデオデコーダ30は、現在のピクチャを、「出力に必要とされる」とマーキングすればよい。そうではなく、現在のピクチャのOutputFlagが0に等しい場合、ビデオデコーダ30は、現在のピクチャを、「出力に必要とされない」とマーキングすればよい。
【0295】
[0304]上述したように、いくつかの例では、ビデオデコーダ30は、バンピングプロセスを実装してよい。概して、バンピングプロセスは、復号ピクチャの出力を伴う。たとえば、ビデオデコーダ30は、現在のピクチャがIDRピクチャであり、no_output_of_prior_pics_flagが1に等しくないとともに、1に等しいと推論されないときのためのバンピングプロセスを実施すればよい。ビデオデコーダ30は、DPB中に空きバッファがなく(すなわち、DPB充満度がDPBのサイズに等しく)、復号(非IDR)ピクチャの記憶に空きバッファが必要とされる場合にバンピングプロセスを実施してもよい。
【0296】
[0305]概して、ビデオデコーダ30は、以下のステップを実施して、バンピングプロセスを実施することができる。ビデオデコーダ30は最初に、出力されるべきピクチャを決定すればよい。たとえば、ビデオデコーダ30は、「出力に必要とされる」とマーキングされている、DPB中のピクチャすべてのうち、より小さいPicOrderCnt(POC)値をもつピクチャを選択してよい。ビデオデコーダ30は、ピクチャ用のアクティブシーケンスパラメータセット中で指定されたクロッピング矩形を使って、選択されたピクチャをクロップしてよい。ビデオデコーダ30は、クロップされたピクチャを出力すればよく、ピクチャを「出力に必要とされない」とマーキングすればよい。ビデオデコーダ30は、クロップされ出力されたピクチャを記憶したDPBのバッファを調べればよい。ピクチャが参照ピクチャセットに含まれない場合、ビデオデコーダ30は、そのバッファを空にし、DPB充満度を1だけ減分してよい。
【0297】
[0306]DPB管理のための上記技法は、ビデオデコーダ30のコンテキストから記載されているが、いくつかの例では、ビデオエンコーダ20が同様の技法を実装してよい。ただし、同様の技法を実装するビデオエンコーダ20が、すべての例において要求されるわけではない。いくつかの例では、ビデオデコーダ30がこれらの技法を実装する場合があり、ビデオエンコーダ20がこれらの技法を実装しない場合がある。
【0298】
[0307]このように、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)が、参照ピクチャセットに属す参照ピクチャを示す情報をコーディングすることができる。繰返しになるが、参照ピクチャセットは、現在のピクチャをインター予測するために使われる可能性があり得るとともに復号順で現在のピクチャに続く1つまたは複数のピクチャをインター予測するために使われる可能性があり得る参照ピクチャを識別することができる。
【0299】
[0308]ビデオコーダは、上述した例示的技法を含むどの方法でも、参照ピクチャセットを導出することができる。ビデオコーダは、復号ピクチャバッファに記憶された復号ピクチャが出力に必要とされず、参照ピクチャセット中で識別されないかどうか決定することができる。復号ピクチャが出力済みであり、参照ピクチャセット中で識別されないとき、ビデオコーダは、復号ピクチャバッファから復号ピクチャを削除し得る。復号ピクチャの削除に続いて、ビデオコーダは、現在のピクチャをコーディングし得る。たとえば、ビデオコーダは、上述したように、参照ピクチャリスト(1つまたは複数)を構成し、参照ピクチャリスト(1つまたは複数)に基づいて、現在のピクチャをコーディングすることができる。
【0300】
[0309]前の例では、参照ピクチャセットを導出するために、修正が必要とされないときおよび修正が必要とされるときに参照ピクチャリストから参照ピクチャリストを構成する、ビデオエンコーダ20およびビデオデコーダ30が利用することができる技法、ならびに復号ピクチャバッファ(DPB)管理のための技法について記載した。ただし、本開示の態様はそのように限定されない。いくつかの例では、本開示に記載する技法は、どのピクチャが参照ピクチャセットに属し、長期参照ピクチャであるか(または言い換えると、どのピクチャが長期参照ピクチャセットに属すか)をビデオエンコーダ20がシグナリングする方法、およびどのピクチャが長期参照ピクチャセットに属すかをビデオデコーダ30が決定する方法に関連し得る。
【0301】
[0310]たとえば、テーブル2は、num_long_term_ref_pics_pps、およびlong_term_ref_pic_id_pps[i]シンタックス要素を、ピクチャパラメータセットの一部として含む。ただし、本開示の態様はそのように限定されない。いくつかの他の例では、シーケンスパラメータセット(たとえば、テーブル1)は、num_long_term_ref_pics_ppsおよびlong_term_ref_pic_id_pps[i]シンタックス要素を含み得る。シーケンスパラメータセットがこれらのシンタックス要素を含む例において、本開示は、混乱を避けるために、シンタックス要素をnum_long_term_ref_pics_spsおよびlong_term_ref_pic_id_sps[i]と呼ぶ場合がある。説明のために、これらの技法については、シーケンスパラメータセットがこれらのシンタックス要素を含む例を用いて記載してある。
【0302】
[0311]num_long_term_ref_pics_ppsの定義と同様、num_long_term_ref_pics_spsシンタックス要素は、シーケンスパラメータセットに含まれる候補長期参照ピクチャの数を指定し得る。num_long_term_ref_pics_spsの値は、両端値を含む0〜32の範囲内であり得る。long_term_ref_pic_id_pps[i]シンタックス要素の定義と同様、long_term_ref_pic_id_sps[i]シンタックス要素は、シーケンスパラメータセットに含まれる第iの長期間参照ピクチャ識別情報を指定し得る。
【0303】
[0312]いくつかの例では、long_term_ref_pic_id_sps[i]シンタックス要素は、現在のピクチャの参照ピクチャセットに属す候補長期参照ピクチャを示し得る。候補長期参照ピクチャは、ビデオデコーダ30が現在のピクチャまたは復号順で現在のピクチャに続く1つまたは複数のピクチャをインター予測するのに使用することができる長期参照ピクチャであり得る候補長期参照ピクチャのうちの1つまたは複数である。言い換えると、候補長期参照ピクチャは、長期参照ピクチャであるとともに可能性としては現在のピクチャをインター予測するのに使われ、復号順で現在のピクチャに続く1つまたは複数のピクチャをインター予測するのに使われ得るピクチャを示し得る。いくつかの例では、long_term_ref_pic_id_sps[i]シンタックス要素は、候補長期参照ピクチャについてのPOC値を含み得る。
【0304】
[0313]ただし、すべての候補長期参照ピクチャが、必ずしもインター予測に使われるわけではない。たとえば、すべての候補長期参照ピクチャが、現在のピクチャの参照ピクチャセットに属すわけではない。そうではなく、候補長期参照ピクチャのうちのゼロ個以上のピクチャが、参照ピクチャセットに属す。
【0305】
[0314]本開示に記載する技法では、ビデオエンコーダ20は、パラメータセット中のlong_term_ref_pic_idシンタックス要素(たとえば、シーケンスパラメータセット中のlong_term_ref_pic_id_spsシンタックス要素、またはピクチャパラメータセット中のlong_term_ref_pic_id_ppsシンタックス要素)をシグナリングすることができる。ビデオデコーダ30は、long_term_ref_pic_idシンタックス要素を受信し、候補長期参照ピクチャを識別することができる。本開示に記載する技法によると、ビデオデコーダ30はさらに、候補長期参照ピクチャのうちのどれが参照ピクチャセットに属すか決定することができる。たとえば、ビデオデコーダ30は、この決定を、ビデオエンコーダ20によってコード化ビットストリーム中でシグナリングされる追加シンタックス要素に基づいて実施するように構成されてよい。
【0306】
[0315]テーブル4に示されるように、ビデオエンコーダ20は、long_term_ref_pic_set()シンタックス構造を、現在のピクチャのスライスヘッダに入れてシグナリングすることができる。テーブル5は、long_term_ref_pic_set()シンタックス構造を記述する。たとえば、long_term_ref_pic_set()シンタックス構造は、num_long_term_pps_currおよびnum_long_term_pps_follシンタックス要素を含み得る。繰返しになるが、num_long_term_pps_currおよびnum_long_term_pps_follシンタックス要素が、ピクチャパラメータセットに含まれる長期参照ピクチャの数として定義されるが、候補長期参照ピクチャがシーケンスパラメータセットに含まれる例では、これらのシンタックス要素は、シーケンスパラメータセットに含まれる候補長期参照ピクチャの数を定義し得ることに留意されたい。たとえば、混乱を避けるために、num_long_term_pps_currシンタックス要素はnum_long_term_sps_currシンタックス要素と呼ばれる場合があり、num_long_term_pps_follシンタックス要素はnum_long_term_sps_currシンタックス要素と呼ばれる場合がある。
【0307】
[0316]num_long_term_pps_currシンタックス要素と同様、num_long_term_sps_currシンタックス要素は、候補長期参照ピクチャとして、参照されるシーケンスパラメータセットにその識別情報が含まれるすべての長期参照ピクチャであって、現在のピクチャおよび復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測に使うことができるすべての長期参照ピクチャの数を定義し得る。num_long_term_pps_follシンタックス要素と同様、num_long_term_sps_follシンタックス要素は、候補長期参照ピクチャとして、シーケンスパラメータセットにその識別情報が含まれ、現在のピクチャのインター予測に使われず、復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測に使うことができるすべての長期参照ピクチャの数を定義し得る。
【0308】
[0317]また、スライスヘッダ中でシグナリングされるlong_term_ref_pic_set()シンタックス構造は、long_term_ref_pic_set_idx_pps[i]シンタックス要素を含み得る。繰返しになるが、候補長期参照ピクチャがシーケンスパラメータセット中でシグナリングされる例では、long_term_ref_pic_set_idx_pps[i]シンタックス要素は、long_term_ref_pic_set_idx_sps[i]シンタックス要素として見なすことができる。long_term_ref_pic_set_idx_pps[i]シンタックス要素と同様、long_term_ref_pic_set_idx_sps[i]シンタックス要素は、参照ピクチャパラメータセットから現在のピクチャの参照ピクチャセットに継承される第iの長期参照ピクチャの、参照されるシーケンスパラメータセットに含まれる候補長期参照ピクチャ識別情報のリストの中へのインデックスを定義し得る。言い換えると、long_term_ref_pic_set_idx_sps[i]シンタックス要素は、シーケンスパラメータセット中の候補長期参照ピクチャのリストの中へのインデックスを識別し得る。インデックスから、ビデオデコーダ30は、候補長期参照ピクチャ中の長期参照ピクチャを識別することができ、識別された長期参照ピクチャが現在のピクチャの参照ピクチャセットに属すと決定することができる。
【0309】
[0318]たとえば、ビデオデコーダ30は、テーブル5の場合と同様に、以下の擬似コードを実装して、候補長期参照ピクチャのうちのどれが現在のピクチャの参照ピクチャセットに属すか決定することができる。
【数9】
【0310】
[0319]このようにして、ビデオデコーダ30は、パラメータセット中で識別される候補長期参照ピクチャを示すシンタックス要素を復号することができる。たとえば、パラメータセットがシーケンスパラメータセットである場合、ビデオデコーダ30は、シーケンスパラメータセット中で識別される候補長期参照ピクチャを示すlong_term_ref_pic_id_sps[i]シンタックス要素を復号することができる。パラメータセットがピクチャパラメータセットである場合、ビデオデコーダ30は、ピクチャパラメータセット中で識別される候補長期参照ピクチャを示すlong_term_ref_pic_id_pps[i]シンタックス要素を復号することができる。
【0311】
[0320]ビデオデコーダ30は、パラメータセット中で識別されるどの候補長期参照ピクチャが、現在のピクチャの参照ピクチャセットに属すかを示すシンタックス要素を復号することもできる。たとえば、パラメータセットがシーケンスパラメータセットである場合、ビデオデコーダ30はnum_long_term_sps_curr、num_long_term_sps_foll、およびlong_term_ref_pic_set_idx_sps[i]シンタックス要素を復号することができ、パラメータセットがピクチャパラメータセットである場合、ビデオデコーダ30はnum_long_term_pps_curr、num_long_term_pps_foll、およびlong_term_ref_pic_set_idx_pps[i]シンタックス要素を復号することができる。いずれの例でも、ビデオデコーダ30は、これらのシンタックス要素を、現在のピクチャのスライスヘッダから復号することができる。
【0312】
[0321]本開示に記載する技法によると、long_term_ref_pic_id_sps[i]およびlong_term_ref_pic_id_pps[i]シンタックス要素は、参照ピクチャセットに属す候補長期参照ピクチャについてのピクチャオーダーカウント(POC)値のリストと見なすことができ、パラメータセット(たとえば、ピクチャパラメータセットおよびシーケンスパラメータセット)の一部としてコーディング(すなわち、符号化または復号)され得る。long_term_ref_pic_set_idx_sps[i]またはlong_term_ref_pic_set_idx_pps[i]シンタックス要素は、候補長期参照ピクチャについてのPOC値のリストの中へのインデックス値(たとえば、long_term_ref_pic_id_sps[i]またはlong_term_ref_pic_id_pps[i]の中へのインデックス)を与えるものと見なすことができる。いくつかの例では、long_term_ref_pic_set_idx_sps[i]またはlong_term_ref_pic_set_idx_pps[i]シンタックス要素は、現在のピクチャのスライスヘッダの一部としてコーディングされ得る。
【0313】
[0322]上記では、ビデオエンコーダ20およびビデオデコーダ30が、それぞれ、どのピクチャが現在のピクチャの長期参照ピクチャセットに属すかを示すためのシンタックス要素を符号化または復号することができる1つのやり方を説明している。シンタックス要素から、ビデオデコーダ30およびビデオエンコーダ20は、どのピクチャが現在のピクチャの長期参照ピクチャセットに属すか決定することができる。ビデオデコーダ30およびビデオエンコーダ20が、どのピクチャが長期参照ピクチャセットに属すか決定した後、ビデオエンコーダ20およびビデオデコーダ30は、複数の参照ピクチャサブセットのうちの少なくとも1つの参照ピクチャサブセットを構成し、上述したように参照ピクチャセットを導出することができる。たとえば、どのピクチャが長期参照ピクチャセットに属すかに関する決定に基づいて、ビデオエンコーダ20およびビデオデコーダ30は、ビデオエンコーダ20およびビデオデコーダ30が参照ピクチャセットを導出するのに使用するRefPicSetLtCurr参照ピクチャサブセットを構成することができる。
【0314】
[0323]いくつかの例では、候補長期参照ピクチャに含まれない長期参照ピクチャセットに属すピクチャがあり得る。したがって、現在のピクチャの長期参照ピクチャセットにどのピクチャが属すかをビデオエンコーダ20およびビデオデコーダ30が決定することができる追加のやり方があり得る。
【0315】
[0324]たとえば、テーブル5に示されるように、スライスヘッダのlong_term_ref_pic_set()シンタックス構造は、long_term_ref_pic_id_delta_add[i]シンタックス要素を含む。このシンタックス要素は、参照ピクチャパラメータセットからは継承されないが、現在のピクチャの参照ピクチャセットに含まれる、第iの長期参照ピクチャの、POC値など、長期参照ピクチャ識別を指定することができる。繰返しになるが、シーケンスパラメータセット中で候補長期参照ピクチャが識別される例では、long_term_ref_pic_id_delta_add[i]シンタックス要素は、シーケンスパラメータセットからは継承されないが、現在のピクチャの参照ピクチャセットに含まれる、第iの長期参照ピクチャの長期参照ピクチャ識別を指定することができる。
【0316】
[0325]言い換えると、long_term_ref_pic_id_pps[i]またはlong_term_ref_pic_id_sps[i]シンタックス要素は、候補長期参照ピクチャを識別することができるが、必ずしも現在のピクチャの参照ピクチャセット中の長期参照ピクチャすべてを識別できるわけではない。たとえば、現在のピクチャと、候補長期参照ピクチャの一覧に含まれない、復号順で現在のピクチャに続く1つまたは複数のピクチャとをインター予測するために使われるべき長期参照ピクチャがあり得る。そのような長期参照ピクチャについて、ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、現在のピクチャの参照ピクチャセットに属す長期参照ピクチャを識別する識別情報を符号化または復号することができる。
【0317】
[0326]たとえば、テーブル5に示されるように、ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、num_long_term_add_currおよびnum_long_term_add_follシンタックス要素を符号化または復号することができる。num_long_term_add_currシンタックス要素は、参照されるピクチャパラメータセットまたはシーケンスパラメータセット(適用可能な場合)にその識別情報が含まれないとともに現在のピクチャおよび復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測に使うことができるすべての長期参照ピクチャの数を定義することができる。num_long_term_add_follシンタックス要素は、参照されるピクチャパラメータセットまたはシーケンスパラメータセット(適用可能な場合)にその識別情報が含まれず、現在のピクチャのインター予測に使うことができず、復号順で現在のピクチャに続く1つまたは複数のピクチャのインター予測に使うことができるすべての長期参照ピクチャの数を定義することができる。
【0318】
[0327]ビデオデコーダ30は、どの長期参照ピクチャが参照ピクチャセットに属すか決定するために、以下の擬似コードを実装すればよい。この例では、長期参照ピクチャは、候補長期参照ピクチャに含まれなくてよい。
【数10】
【0319】
[0328]上述したように、本開示に記載する技法は、HEVC規格に従って実施することができる。以下は、理解を助けるための、HEVC規格についての手短な説明である。さらに、これらの技法は、HEVC規格のコンテキストで説明されるが、これらの技法は、固有規格を含む他の規格に拡張可能であり得る。
【0320】
[0329]JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供し得る。
【0321】
[0330]一般に、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマとクロマの両方のサンプルを含む一連のツリーブロックまたは最大コーディングユニット(LCU)に分割され得ることを記載する。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、復号順序でいくつかの連続的なツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。たとえば、4分木のルートノードとしてのツリーブロックは、4つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連するシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。ツリーブロックは、いくつかの例では、LCUと呼ばれることがある。
【0322】
[0331]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は、形状が方形または非方形であり得る。
【0323】
[0332]HEVC規格は、CUごとに異なり得るTUに従う変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、一般にPUと同じサイズであるかまたはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用してより小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、変換されて変換係数が生成され得、その変換係数は量子化され得る。
【0324】
[0333]一般に、PUは、予測プロセスに関連したデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUについてのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、そのPUについての動きベクトルを定義するデータを含み得る。PUについての動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述し得る。
【0325】
[0334]概して、TUは、変換プロセスと量子化プロセスとのために使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数の変換ユニット(TU)をも含み得る。予測の後に、ビデオエンコーダ20は、PUに対応する残差値を計算し得る。残差値は、エントロピーコーディングのためのシリアル化変換係数(serialized transform coefficient)を生成するために、TUを使用して変換係数に変換され、量子化され、走査され得るピクセル差分値を備える。本開示では、一般に、CUのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示では、コーディングノードならびにPUおよびTUを含む、ツリーブロック、すなわち、LCUまたはCUを指す「ビデオブロック」という用語も使用し得る。
【0326】
[0335]ビデオシーケンスは、一般的に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP内に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、1つまたは複数のピクチャのヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なることがある。
【0327】
[0336]一例として、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を指す。
【0328】
[0337]本開示では、「N×N」および「N by N」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、16×16ピクセルまたは16by16ピクセルを指すために互換的に使用され得る。概して、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、ここで、Nは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはN×Mピクセルを備えてよく、ただし、Mは必ずしもNに等しいとは限らない。
【0329】
[0338]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域においてピクセルデータを備え得、TUは、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、TUを変換して、CUの変換係数を生成し得る。
【0330】
[0339]変換係数を生成するための任意の変換の後に、ビデオエンコーダ20は、変換係数の量子化を実施し得る。量子化は、概して、さらなる圧縮を提供する、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、この場合、nはmよりも大きい。
【0331】
[0340]いくつかの例では、ビデオエンコーダ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が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【0332】
[0341]CABACを実施するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実施するために、ビデオエンコーダ20は、送信されるべきシンボルの可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられるコンテキストに基づき得る。
【0333】
[0342]
図2は、符号化され送信される複数のピクチャを含む例示的ビデオシーケンス33を示す概念図である。場合によっては、ビデオシーケンス33はピクチャのグループ(GOP)と呼ばれることがある。ビデオシーケンス33は、図示のように、表示順でピクチャ35A、36A、38A、35B、36B、38B、および35C、ならびに最終ピクチャ39を含む。ピクチャ34は、シーケンス33の前に発生するシーケンスの表示順における最終のピクチャである。
図2は概して、ビデオシーケンスのための例示的な予測構造を表し、異なるスライスまたはピクチャタイプ(たとえば、Pピクチャもしくはスライス、またはBピクチャもしくはスライス)のビデオブロックを予測するために使われるピクチャ参照を示すことだけを意図している。実際のビデオシーケンスは、様々なピクチャタイプのより多いまたはより少ないビデオピクチャを異なる表示順で含み得る。ビデオシーケンス33は、
図2に示すものよりも多いまたは少ないピクチャを含んでよく、ビデオシーケンス33中に示されるピクチャは、理解のため、および例として示されている。
【0334】
[0343]ブロックベースのビデオコーディングの場合、シーケンス33中に含まれるビデオピクチャの各々は、コーディングユニット(CU)や予測ユニット(PU)などのビデオブロックに区分され得る。たとえば、ビデオピクチャの各CUは、1つまたは複数のPUを含み得る。イントラコード化(I)ピクチャ中のビデオブロックは、同じピクチャ中の隣接ブロックに関する空間的予測を使用して予測される。インターコード化(PまたはB)ピクチャ中のビデオブロックは、同じピクチャ中の隣接ブロックに関する空間的予測、または他の参照ピクチャに関する時間的予測を使用し得る。
【0335】
[0344]Bピクチャ中のビデオブロックは、2つの異なる参照ピクチャリスト(たとえば、リスト0およびリスト1と呼ばれる参照ピクチャリスト0および1)から2つの動きベクトルを算出するための双方向予測を使って予測することができる。場合によっては、Bピクチャ中のビデオブロックは、2つの異なる参照ピクチャリストのうちの1つからの単方向予測を使用して予測され(たとえば、単方向Bコード化され)得る。Pピクチャ中のビデオブロックは、単一の参照ピクチャリストからの単一の動きベクトルを計算するために、単方向予測を使用して予測され得る。新生のHEVC規格によると、ビデオブロックは、2つの参照ピクチャリストのうちの1つから単一の動きベクトルを計算するための単方向予測、または2つの参照ピクチャリストから2つの動きベクトルを計算するための双方向予測のいずれかを使用して符号化され得る。2つの参照ピクチャリストは、たとえば、過去の参照ピクチャもしくは将来の参照ピクチャまたは過去および将来の参照ピクチャの両方を、表示または出力順で、また、常に過去の参照ピクチャを復号順で含み得る。
【0336】
[0345]
図2の例では、最終ピクチャ39は、イントラモードコーディングのためにIピクチャに指定される。他の例では、最終ピクチャ39は、Iピクチャであってよい、前のシーケンスの最終ピクチャ34に関する、(たとえば、Pピクチャとして)インターモードコーディングを用いてコーディングされ得る。ビデオピクチャ35A〜35C(総称して「ビデオピクチャ35」)は、過去のフレームと将来のピクチャとに関する双方向予測を使用して、コーディングのためにBピクチャに指定される。図示の例では、ピクチャ35Aは、ピクチャ34および36Aからビデオピクチャ35Aへの矢印によって示されるように、最終ピクチャ34とピクチャ36Aとを参照してBピクチャとして符号化される。ピクチャ35Bおよび35Cは同様に符号化される。
【0337】
[0346]ビデオピクチャ36A〜36B(総称して「ビデオピクチャ36」)は、過去のピクチャを参照して単方向予測を使用してピクチャとしてコーディング用に指定され得る。図示の例では、ピクチャ36Aは、ピクチャ34からビデオピクチャ36Aへの矢印によって示されるように、最終ピクチャ34を参照してPピクチャとして符号化される。ピクチャ36Bは、同様に符号化される。
【0338】
[0347]ビデオピクチャ38A〜38B(総称して「ビデオピクチャ38」)は、過去のピクチャを参照して双方向予測を使用してコーディング用に指定され得る。他の例では、ビデオピクチャ38は、参照ピクチャリスト中に含まれる実質的に同様の過去のピクチャに関する双方向予測を使用して符号化され得る。図示の例では、ピクチャ38Aは、ピクチャ36Aからビデオピクチャ38Aへの2つの矢印によって示されるように、ピクチャ36Aへの2つの参照を用いて符号化される。ピクチャ38Bは、同様に符号化される。
【0339】
[0348]本開示に記載する技法によると、ビデオエンコーダ20は、シーケンス33中のピクチャの各々についての参照ピクチャセットをシグナリングすることができる。たとえば、ピクチャ35Aの場合、この参照ピクチャセットは、ピクチャ35A、ならびに復号順においてピクチャ35Aに続くピクチャをインター予測するのに使われる可能性があり得るすべての参照ピクチャをインター予測するのに使うことができるすべての参照ピクチャを識別することができる。たとえば、ピクチャ35Aについての参照ピクチャセットは、ピクチャ34およびピクチャ36AについてのPOC値、ならびに復号順においてピクチャ35Aに続くピクチャをインター予測に使われる可能性があり得るものなど、追加参照ピクチャについてのPOC値を含み得る。ピクチャ35Aに続くピクチャは、この例では、復号順においてピクチャ35Aに続くとともに、ビデオシーケンス33内にあるピクチャであり得る。
【0340】
[0349]ビデオデコーダ30は次いで、ピクチャ35A用の参照ピクチャセットを上述したように導出することができる。たとえば、ビデオデコーダ30は、上述したように、参照ピクチャセットに属す参照ピクチャについてのPOC値を決定することができる。ビデオデコーダ30はさらに、少なくとも4つまたは少なくとも5つの参照ピクチャサブセットを、いくつかの例では、上述した6つまでの参照ピクチャサブセットを構成することができる。ビデオデコーダ30は、6つの参照ピクチャセットを、特定の順序で配置して、ピクチャ35A用の参照ピクチャセットを導出すればよい。
【0341】
[0350]ビデオデコーダ30はさらに、上述したように初期参照ピクチャリストを構成することができ、この場合、初期参照ピクチャリストに含まれるべきピクチャの並べ替えは必要とされない。参照ピクチャリスト修正が無効にされた場合、ビデオデコーダ30は、最終参照ピクチャリストを、初期参照ピクチャリストに等しく設定すればよい。また、ビデオデコーダ30は、参照ピクチャリスト中に未完エントリがないように、参照ピクチャリストを構成すればよい。たとえば、ビデオデコーダ30は、参照ピクチャリスト中のエントリの数が参照ピクチャリストの最大許容エントリ数に等しくなるまで、参照ピクチャサブセットから参照ピクチャを繰り返しリストすればよい。いくつかの例では、ビデオデコーダ30は、上述したように(たとえば、構成された参照ピクチャサブセットのうち少なくとも1つのサブセット中の参照ピクチャに基づいて)初期参照ピクチャリストを修正してよい。さらに、いくつかの例では、ビデオデコーダ30は、復号されるべき現在のピクチャの参照ピクチャセット中で識別されないとともに出力に必要とされない復号ピクチャを削除するなど、本開示に記載する例示的技法を使用して、ビデオデコーダ30のDPBから復号ピクチャを削除してよい。また、いくつかの例では、ビデオデコーダ30は、上述したように、どの長期参照ピクチャが参照ピクチャセットに属すか決定することができ、この場合候補長期参照ピクチャのリストの識別情報は、パラメータセットに含まれ得る。
【0342】
[0351]
図3は、本開示で説明する技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実施し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【0343】
[0352]
図3の例では、ビデオエンコーダ20は、区分ユニット35と、予測モジュール41と、復号ピクチャバッファ(DPB)64と、加算器50と、変換モジュール52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測モジュール41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測モジュール46とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換モジュール60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(
図3に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。また、デブロッキングフィルタに加えて追加のループフィルタ(ループ内またはループ後)が使用され得る。
【0344】
[0353]
図3に示すように、ビデオエンコーダ20はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。この区分は、たとえば、LCUおよびCUの4分木構造に応じて、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分をも含み得る。ビデオエンコーダ20は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(および、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測モジュール41は、誤り結果(たとえば、コーディングレートおよびひずみレベル)に基づいて現在ビデオブロックのために、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択し得る。予測モジュール41は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に与え得る。
【0345】
[0354]予測モジュール41内のイントラ予測モジュール46は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じピクチャまたはスライス中の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実施し得る。予測モジュール41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実施する。
【0346】
[0355]動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをPスライスまたはBスライスに指定し得る。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実施される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオピクチャ内のビデオブロックのPUの変位を示し得る。
【0347】
[0356]予測ブロックは、絶対値差分和(SAD)、差分2乗和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングすべきビデオブロックのPUにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、復号ピクチャバッファ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
【0348】
[0357]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUについての動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、復号ピクチャバッファ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
【0349】
[0358]動き補償ユニット44によって実施される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実施することを伴い得る。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【0350】
[0359]イントラ予測モジュール46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実施されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測モジュール46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測モジュール46は、たとえば、別々の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測モジュール46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測モジュール46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測モジュール46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックについてのひずみおよびレートから比率を計算し得る。
【0351】
[0360]ブロック用のイントラ予測モードを選択した後、イントラ予測モジュール46は、ブロック用に選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット56に提供することができる。エントロピー符号化ユニット56は、本開示の技法に従って選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信ビットストリーム中に、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを含み得る。
【0352】
[0361]予測モジュール41が、インター予測またはイントラ予測のいずれかを介して、現在ビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換モジュール52に適用され得る。変換モジュール52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換モジュール52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【0353】
[0362]変換モジュール52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット56が走査を実施し得る。
【0354】
[0363]量子化の後、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピー符号化方法または技法を実施し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化ビットストリームは、ビデオデコーダ30に送信されるか、あるいはビデオデコーダ30が後で送信するかまたは取り出すためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在ビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【0355】
[0364]逆量子化ユニット58および逆変換モジュール60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算して、復号ピクチャバッファ64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
【0356】
[0365]本開示によると、予測モジュール41は、上述した例示的機能を実施するための1つの例示的ユニットを表す。たとえば、予測モジュール41は、どの参照ピクチャが参照ピクチャセットに属すか決定し、ビデオエンコーダ20に、参照ピクチャセットに属す参照ピクチャを示す情報をコーディングさせればよい。また、再構成プロセス(たとえば、参照ピクチャとして使用し、復号ピクチャバッファ64に記憶するためのピクチャを再構成するのに使われるプロセス)中、予測モジュール41は、参照ピクチャのうちの1つまたは複数を各々が識別する複数の参照ピクチャサブセットを構成することができる。予測モジュール41は、構成された複数の参照ピクチャサブセットから、参照ピクチャセットを導出することもできる。また、予測モジュール41は、上述した複数組の例示的擬似コードのうちのいずれか1つまたは複数を実装して、本開示に記載する1つまたは複数の例示的技法を実装すればよい。
【0357】
[0366]いくつかの例では、予測モジュール41は、上述したように初期参照ピクチャリストを構成してよい。いくつかの例では、初期参照ピクチャリストに含まれるべきピクチャの並べ替えは必要とされない。また、予測モジュール41は、参照ピクチャリスト中に未完エントリがないように、参照ピクチャリストを構成すればよい。いくつかの例では、予測モジュール41は、上述したように初期参照ピクチャリストを修正して、修正参照ピクチャリストを構成することもできる。さらに、いくつかの例では、予測モジュール41は、上述したように、DPB64からの復号ピクチャの削除を実装することができる。さらに、いくつかの例では、予測モジュール41は、上述したように、現在のピクチャ用の参照ピクチャセットにどの長期参照ピクチャが属すか決定するように構成されてよい。
【0358】
[0367]他の例では、予測モジュール41以外のユニットが上述の例を実装し得る。いくつかの他の例では、予測モジュール41は、ビデオエンコーダ20の1つまたは複数の他のユニットとともに、上述した例を実装することができる。さらにいくつかの他の例では、ビデオエンコーダ20のプロセッサまたはユニット(
図3には図示せず)は、単独で、またはビデオエンコーダ20の他のユニットとともに、上述した例を実装することができる。
【0359】
[0368]
図4は、本開示で説明する技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。
図4の例では、ビデオデコーダ30は、エントロピー復号ユニット80と、予測モジュール81と、逆量子化ユニット86と、逆変換ユニット88と、加算器90と、復号ピクチャバッファ(DPB)92とを含む。予測モジュール81は、動き補償ユニット82と、イントラ予測モジュール84とを含む。ビデオデコーダ30は、いくつかの例では、
図3のビデオエンコーダ20に関して説明した符号化パスとは概して逆の復号パスを実施し得る。
【0360】
[0369]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数と、動きベクトルと、他のシンタックス要素とを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、予測モジュール81に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
【0361】
[0370]ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、予測モジュール81のイントラ予測モジュール84は、シグナリングされたイントラ予測モードと、現在ピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオピクチャがインターコード化(すなわち、B、またはP)スライスとしてコーディングされるとき、予測モジュール81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、復号ピクチャバッファ92に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構成し得る。いくつかの例では、ビデオデコーダ30は、導出された参照ピクチャセット中で識別された参照ピクチャから、リスト0とリスト1とを構成することができる。
【0362】
[0371]動き補償ユニット82は、動きベクトルと他のシンタックス要素とを解析することによって現在ビデオスライスのビデオブロックについての予測情報を決定し、予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数についての構成情報と、スライスの各インター符号化ビデオブロックについての動きベクトルと、スライスの各インターコード化ビデオブロックについてのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【0363】
[0372]動き補償ユニット82はまた、補間フィルタに基づいて補間を実施し得る。動き補償ユニット82は、ビデオブロックの符号化中にビデオ符号器20によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオ符号器20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【0364】
[0373]逆量子化ユニット86は、ビットストリーム中で与えられ、エントロピー復号ユニット80によって復号された、量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、ビデオスライス中の各ビデオブロックについてビデオエンコーダ20によって計算される量子化パラメータを使用して量子化の程度を決定し、同様に、適用すべき逆量子化の程度を決定することを含み得る。逆変換モジュール88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【0365】
[0374]予測モジュール81が、インター予測またはイントラ予測のいずれかに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換モジュール88からの残差ブロックを予測モジュール81によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器90は、この加算演算を実施する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するか、またはさもなければビデオ品質を改善するために、(コーディングループ内またはコーディングループ後の)他のループフィルタも使用され得る。次いで、所与のピクチャ内の復号されたビデオブロックは、その後の動き補償に使用される参照ピクチャを記憶する復号ピクチャバッファ92に記憶される。復号ピクチャバッファ92はまた、
図1のディスプレイデバイス32などのディスプレイデバイス上での後の表示のための、復号されたビデオを記憶する。
【0366】
[0375]本開示によると、予測モジュール81は、上述した例示的機能を実施するための1つの例示的ユニットを表す。たとえば、予測モジュール81は、どの参照ピクチャが参照ピクチャセットに属すか決定することができる。また、予測モジュール81は、参照ピクチャのうちの1つまたは複数のピクチャを各々が識別する複数の参照ピクチャサブセットを構成することができる。予測モジュール81は、構成された複数の参照ピクチャサブセットから、参照ピクチャセットを導出することもできる。また、予測モジュール81は、上述した複数組の例示的擬似コードのうちのいずれか1つまたは複数を実装して、本開示に記載する1つまたは複数の例示的技法を実装すればよい。
【0367】
[0376]いくつかの例では、予測モジュール81は、上述したように初期参照ピクチャリストを構成してよい。いくつかの例では、初期参照ピクチャリストに含まれるべきピクチャの並べ替えは必要とされない。また、予測モジュール81は、参照ピクチャリスト中に未完エントリがないように、参照ピクチャリストを構成すればよい。いくつかの例では、予測モジュール81は、上述したように初期参照ピクチャリストを修正して、修正参照ピクチャリストを構成することもできる。さらに、いくつかの例では、予測モジュール81は、上述したように、DPB94からの復号ピクチャの削除を実装することができる。さらに、いくつかの例では、予測モジュール81は、上述したように、現在のピクチャ用の参照ピクチャセットにどの長期参照ピクチャが属すか決定するように構成されてよい。
【0368】
[0377]他の例では、予測モジュール81以外のユニットが上述の例を実装し得る。いくつかの他の例では、予測モジュール81は、ビデオデコーダ30の1つまたは複数の他のユニットとともに、上述した例を実装することができる。さらにいくつかの他の例では、ビデオデコーダ30のプロセッサまたはユニット(
図4には図示せず)は、単独で、またはビデオデコーダ30の他のユニットとともに、上述した例を実装することができる。
【0369】
[0378]
図5は、参照ピクチャセットを導出する例示的操作を示すフローチャートである。説明のためにのみ、
図5の方法は、ビデオエンコーダ20またはビデオデコーダ30のいずれかに対応するビデオコーダによって実施することができる。たとえば、いくつかの例では、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)が、参照ピクチャセットに属す参照ピクチャを示す情報をコーディングする(たとえば、符号化または復号する)ことができる(94)。参照ピクチャセットは、現在のピクチャをインター予測するため、および復号順で現在のピクチャに続く1つまたは複数のピクチャをインター予測するために使われる可能性があり得る参照ピクチャを識別することができる。
【0370】
[0379]たとえば、ビデオエンコーダ20がステップ94を実施するとき、ビデオエンコーダ20は、参照ピクチャセットに属す参照ピクチャについての識別子を示す値を符号化することができる。たとえば、ビデオエンコーダ20は、ビットストリーム中でpic_order_cnt_lsbシンタックス要素と、log2_max_pic_order_cnt_lsb_minus4シンタックス要素とをシグナリングすることができる。ビデオデコーダ30がステップ94を実施するとき、log2_max_pic_order_cnt_lsb_minus4シンタックス要素から、ビデオデコーダ30は、MaxPicOrderCntLsbの値を決定することができる。ビデオデコーダ30は次いで、参照ピクチャセットに属す参照ピクチャについての識別子(たとえば、POC値)を決定することができる。
【0371】
[0380]ビデオコーダは、参照ピクチャのうちのゼロ個以上のピクチャを各々が識別する複数の参照ピクチャサブセットを構成することができる(96)。たとえば、ビデオコーダは、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、およびRefPicSetLtFoll参照ピクチャサブセットを構成することができる。ただし、本開示の態様はそのように限定されない。いくつかの例では、ビデオコーダは、5つの参照ピクチャサブセットを構成することができ、そのうち4つは、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、およびRefPicSetLtFoll参照ピクチャサブセットのうちの4つであってよく、第5のサブセットは、残りの6つの参照ピクチャサブセットの2つの組合せ(たとえば、RefPicSetFoll0およびRefPicSetFoll1参照ピクチャサブセットの組合せ)であってよい。
【0372】
[0381]いくつかの例では、ビデオコーダは、以下の4つの参照ピクチャサブセットのうちの少なくとも2つを構成することができる。他の例では、ビデオコーダは、少なくとも以下の4つの参照ピクチャサブセットを構成することができる。第1の参照ピクチャサブセットは、復号順で現在のピクチャに先立ち、出力順で現在のピクチャに先立つとともに、現在のピクチャと、復号順で現在のピクチャに続く1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る短期参照ピクチャを識別することができる。第2の参照ピクチャサブセットは、復号順で現在のピクチャに先立ち、出力順で現在のピクチャに続くとともに、現在のピクチャと、復号順で現在のピクチャに続く1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る短期参照ピクチャを識別することができる。
【0373】
[0382]第3の参照ピクチャサブセットは、復号順で現在のピクチャに先立つとともに、現在のピクチャと、復号順で現在のピクチャに続く1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る長期参照ピクチャを識別することができる。第4の参照ピクチャサブセットは、復号順で現在のピクチャに先立つとともに、現在のピクチャをインター予測するためには使うことができず、復号順で現在のピクチャに続く1つまたは複数のピクチャのうちの1つまたは複数をインター予測するために使われる可能性があり得る長期参照ピクチャを識別することができる。
【0374】
[0383]ビデオコーダは、複数の参照ピクチャサブセットから、参照ピクチャセットを導出することができる(98)。たとえば、ビデオコーダは、RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr、およびRefPicSetLtFoll参照ピクチャサブセットのうちの少なくとも2つを、特定の順序で並べて、参照ピクチャセットを導出すればよい。
【0375】
[0384]いくつかの例では、ビデオコードによって実施される順序付けは、参照ピクチャサブセットの各々の中のピクチャが、参照ピクチャセット内で順次識別され得ることを意味し得る。これらの例では、ビデオコーダは、参照ピクチャセットの中へのインデックス値で、参照ピクチャセット中の参照ピクチャを参照すればよい。
【0376】
[0385]ビデオコーダは、導出された参照ピクチャセットに基づいて、現在のピクチャをコーディングすればよい(100)。ビデオコーダが参照ピクチャサブセットから参照ピクチャセットを導出するので、ビデオコーダは、複数の参照ピクチャサブセットに基づいて現在のピクチャをコーディングするものと見なされ得ることを理解されたい。たとえば、ビデオコーダは、複数の参照ピクチャサブセットに基づいて(たとえば、複数の参照ピクチャサブセットから導出される導出された参照ピクチャセットから)、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成することができる。ビデオコーダは次いで、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つに基づいて、現在のピクチャをコーディングすればよい。
【0377】
[0386]
図6は、参照ピクチャリストを構成する例示的操作を示すフローチャートである。説明のためにのみ、
図6の方法は、ビデオエンコーダ20またはビデオデコーダ30のいずれかに対応するビデオコーダによって実施することができる。
図5と同様に、ビデオコーダは、参照ピクチャを示す情報をコーディングして(102)、複数の参照ピクチャサブセットを構成すればよい(104)。
【0378】
[0387]ビデオコーダは次いで、参照ピクチャサブセットから、初期参照ピクチャリストに参照ピクチャを追加して、初期参照ピクチャリストを構成すればよい(106)。いくつかの例では、ビデオエンコーダ20とビデオデコーダ30の両方が、初期参照ピクチャリストを構成することができる。たとえば、ビデオエンコーダ20は、初期参照ピクチャリストを構成して、DPB64に記憶するための再構成ビデオブロックを作成することができる。ビデオデコーダ30は、その復号プロセスの一部として初期参照ピクチャリストを構成すればよく、初期参照ピクチャリストを構成するための方法に関する情報をビデオデコーダ30がビデオエンコーダ20から受信する必要がないデフォルトの構成技法を実装すればよい。
【0379】
[0388]いくつかの例では、初期参照ピクチャリストを構成するために、ビデオコーダは、複数の参照ピクチャサブセットのうちの第1のサブセットからの参照ピクチャを初期参照ピクチャリストに、続いて第2のサブセットからの参照ピクチャを初期参照ピクチャリストに、続いて第3のサブセットからの参照ピクチャを初期参照ピクチャリストに追加すればよい。ビデオコーダは、初期参照ピクチャリスト中にリストされる参照ピクチャの総数が初期参照ピクチャリスト中の最大許容エントリ数以下である限り、これらの参照ピクチャサブセットから参照ピクチャを追加すればよい。たとえば、参照ピクチャリストに参照ピクチャを追加する間のどの時点でも、初期参照ピクチャリスト中のエントリの数が許容初期参照リストエントリの最大数に等しくなった場合、ビデオコーダは、初期参照ピクチャリストにどの追加ピクチャを追加するのも停止してよい。
【0380】
[0389]ビデオコーダは、現在のピクチャのビデオブロックが双予測される例などと同様に、別の初期参照ピクチャリストを構成し得る。この例では、この別の初期参照ピクチャリストを構成するために、ビデオコーダは、この別の初期参照ピクチャリスト中のエントリの総数がエントリの許容数以下である限り、第2のサブセットからの参照ピクチャを別の初期参照ピクチャリストに、続いて第1のサブセットからの参照ピクチャを別の初期参照ピクチャリストに、続いて第3のサブセットからの参照ピクチャを別の初期参照ピクチャリストに追加すればよい。これらの例では、第1のサブセットはRefPicSetStCurr0参照ピクチャサブセットであり得、第2のサブセットはRefPicSetStCurr1参照ピクチャサブセットであり得、第3のサブセットはRefPicSetLtCurr参照ピクチャサブセットであり得る。
【0381】
[0390]何らかの例では、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセット中で識別された参照ピクチャを追加するために、ビデオコーダは、これらの参照ピクチャサブセットの各々の中の参照ピクチャの数をビデオコーダがそこから決定することができるシンタックス要素をコーディング(たとえば、符号化または復号)すればよい。たとえば、ビデオコーダは、num_short_term_curr0シンタックス要素とnum_short_term_curr1シンタックス要素とをコーディングすればよい。num_short_term_curr0シンタックス要素およびnum_short_term_curr1シンタックス要素は、それぞれ、RefPicSetStCurr0参照ピクチャサブセットおよびRefPicSetStCurr1参照ピクチャサブセット中で識別された参照ピクチャの数を示し得る。
【0382】
[0391]ビデオコーダは、num_long_term_pps_currシンタックス要素とnum_long_term_add_currシンタックス要素とをコーディングしてもよい。num_long_term_pps_currシンタックス要素は、ピクチャパラメータセット(PPS)にその識別が含まれる長期参照ピクチャの数を示すことができ、num_long_term_add_currシンタックス要素は、PPSにその識別情報が含まれない長期参照ピクチャの数を示すことができる。この例では、これらの長期参照ピクチャは、現在のピクチャをインター予測するために使われる可能性があり得、復号順で現在のピクチャに続く1つまたは複数のピクチャをインター予測するために使われる可能性があり得る。
【0383】
[0392]ビデオコーダは、num_long_term_pps_currシンタックス要素およびnum_long_term_add_currシンタックス要素に基づいて、RefPicSetLtCurr参照ピクチャサブセット中の参照ピクチャの数を決定することができる。たとえば、ビデオコーダは、num_long_term_pps_currシンタックス要素の値と、num_long_term_add_currシンタックス要素の値を合計して、RefPicSetLtCurr参照ピクチャサブセット中の参照ピクチャの数を決定することができる。
【0384】
[0393]ビデオコーダは、1つまたは複数の参照ピクチャリストに基づいて現在のピクチャをコーディングすればよい(108)。たとえば、ビデオコーダは、導出された参照ピクチャセットに基づいて、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成することができる。ビデオコーダは次いで、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つに基づいて、現在のピクチャをコーディングすればよい。
【0385】
[0394]
図7は、参照ピクチャリストを構成する別の例示的操作を示すフローチャートである。説明のためにのみ、
図7の方法は、ビデオエンコーダ20またはビデオデコーダ30のいずれかに対応するビデオコーダによって実施することができる。
図5と同様に、ビデオコーダは、参照ピクチャを示す情報をコーディングして(110)、複数の参照ピクチャサブセットを構成すればよい(112)。ビデオコーダは、参照ピクチャを、参照ピクチャリストの第1のエントリセットに追加すればよい(114)。たとえば、参照ピクチャリスト中のエントリの数は、num_ref_idx_l0_active_minus1またはnum_ref_idx_l1_active_minus1シンタックス要素によって定義される、最大許容エントリ数に等しくてよい。
【0386】
[0395]この例では、ビデオコーダは、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセット中で識別された参照ピクチャを、第1のエントリセットにリストする(たとえば、追加する)ことができる。たとえば、リスト0の場合、ビデオコーダは、リスト0の第1のエントリセットに、順序通りに、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセット中で識別された参照ピクチャを追加すればよい。リスト1の場合、ビデオコーダは、リスト1の第1のエントリセットに、順序通りに、RefPicSetStCurr1、RefPicSetStCurr0、およびRefPicSetLtCurr参照ピクチャサブセット中で識別された参照ピクチャを追加すればよい。
【0387】
[0396]ビデオコーダは次いで、参照ピクチャリスト中のエントリの数が参照ピクチャリスト中の最大許容エントリ数に等しいかどうか決定すればよい(116)。参照ピクチャリスト中のエントリの数が最大許容エントリ数以上である場合(116の「NO」)、ビデオコーダは、参照ピクチャリストに基づいて、現在のピクチャをコーディングしてよい(118)。
【0388】
[0397]そうではなく、参照ピクチャリスト中のエントリの数が最大許容エントリ数未満である場合(116の「YES」)、ビデオコーダは、参照ピクチャサブセットのうちの少なくとも1つから、第1のエントリセットの後に続く参照ピクチャリスト中のエントリに、1つまたは複数の参照ピクチャを再リスト(たとえば、再識別または再追加)してよい(120)。たとえば、ビデオコーダは、RefPicSetStCurr0参照ピクチャサブセット中で識別された1つもしくは複数の参照ピクチャを、リスト0中でリスト0中の第1のエントリセットの後に続くエントリにおいて、またはRefPicSetStCurr1参照ピクチャサブセット中で識別された1つもしくは複数の参照ピクチャを、リスト1中で、リスト1中の第1のエントリセットの後に続くエントリにおいて追加してよい。このようにして、ビデオコーダは、参照ピクチャリスト中の2つ以上のエントリにおける、第1の参照ピクチャサブセットの少なくとも1つの参照ピクチャを識別することができる。
【0389】
[0398]ビデオコーダは次いで、参照ピクチャリスト中のエントリの数が参照ピクチャリスト中の最大許容エントリ数に等しいかどうか決定すればよい(122)。参照ピクチャリスト中のエントリの数が最大許容エントリ数以上である場合(122の「NO」)、ビデオコーダは、参照ピクチャリストに基づいて、現在のピクチャをコーディングしてよい(124)。
【0390】
[0399]そうではなく、参照ピクチャリスト中のエントリの数が最大許容エントリ数未満である場合(122の「YES」)、ビデオコーダは、参照ピクチャサブセットのうちの少なくとも1つから、第1のエントリセットの後に続く参照ピクチャリスト中のエントリに、1つまたは複数の参照ピクチャを再リスト(たとえば、再識別または再追加)してよい(120)。たとえば、この状況において、ビデオコーダは、第1の参照ピクチャサブセット中で識別された追加参照ピクチャを再追加してよい。ビデオコーダが第1の参照ピクチャサブセット中の参照ピクチャすべてをすでに再追加している場合、ビデオコーダは、第2の参照ピクチャサブセット(たとえば、リスト0に対してはRefPicSetStCurr0参照ピクチャサブセット、またはリスト1に対してはRefPicSetStCurr1参照ピクチャサブセット)から、1つまたは複数の参照ピクチャを再追加してよい。このプロセスは、参照ピクチャリスト中のエントリの数が最大許容エントリ数以上になる(122の「NO」)まで繰り返してよい。
【0391】
[0400]このように参照ピクチャリスト中のエントリの数が参照ピクチャリスト中の最大許容エントリ数と等しくないとき、ビデオコーダは、参照ピクチャリスト中のエントリの数が参照ピクチャリスト中の最大許容エントリ数に等しくなるまで、参照ピクチャサブセットのうちの少なくとも1つから、第1のエントリセットの後に続く参照ピクチャリスト中のエントリに、1つまたは複数の参照ピクチャを繰り返し再リスト(たとえば、再識別または再追加)してよい。この結果、参照ピクチャリストの各エントリが参照ピクチャのうちの1つを識別するように、および参照ピクチャリストのうちの少なくとも2つのエントリが参照ピクチャの同じ参照ピクチャを識別するように、参照ピクチャリストのエントリに、参照ピクチャをビデオコーダがリストすることになり得る。
【0392】
[0401]
図8は、初期参照ピクチャリストを修正する例示的操作を示すフローチャートである。説明のためにのみ、
図8の方法は、ビデオエンコーダ20またはビデオデコーダ30のいずれかに対応するビデオコーダによって実施することができる。
図6と同様に、ビデオコーダは、参照ピクチャを示す情報をコーディングして(126)、複数の参照ピクチャサブセットを構成すればよい(128)。複数の参照ピクチャサブセットは、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセットを含み得る。ビデオコーダは、RefPicSetStCurr0、RefPicSetStCurr1、およびRefPicSetLtCurr参照ピクチャサブセットに基づいて、初期参照ピクチャリストを上述したように構成すればよい(130)。
【0393】
[0402]ビデオコーダは、参照ピクチャリスト修正が必要とされるかどうか決定することができる(132)。たとえば、ビデオコーダは、初期リスト0または初期リスト1が修正される必要があるかどうかを示す、ref_pic_list_modification_flag_l0およびref_pic_list_modification_flag_l1などのシンタックス要素をコーディングしてよい。初期参照ピクチャリストの修正が必要とされない場合(132の「NO」)、ビデオコーダは、初期参照ピクチャリストに基づいて、現在のピクチャをコーディングすればよい(134)。
【0394】
[0403]修正が必要とされる場合(132の「YES」)、ビデオコーダは、構成された参照ピクチャサブセットのうちの少なくとも1つの中の参照ピクチャを識別することができる(136)。たとえば、ビデオコーダは、modification_of_ref_pic_idcシンタックス要素をコーディングすればよい。modification_of_ref_pic_idcシンタックス要素の値は、参照ピクチャを識別するのに、どの参照ピクチャサブセットをビデオコーダが使用するべきかを示し得る。ビデオコーダは、参照ピクチャを識別するのにビデオコーダが使用するべき参照ピクチャサブセット中へのインデックスを示すref_pic_set_idxシンタックス要素もコーディングしてよい。
【0395】
[0404]ビデオコーダは、初期参照ピクチャリスト中の識別された参照ピクチャを、現在のエントリにおいてリスト(たとえば、追加または識別)して、修正参照ピクチャリストを構成すればよい(138)。現在のエントリは、最初は、インデックス0で定義される、初期参照ピクチャリスト中のエントリであり得る。modification_of_ref_pic_idcシンタックス要素の値が3ではない、コード化ビットストリーム中のmodification_of_ref_pic_idcシンタックス要素の各事例に対して、ビデオコーダは、初期エントリの値を1だけ増分すればよい(たとえば、エントリの次の値が、インデックス1で定義される)。ビデオコーダは、修正参照ピクチャリストに基づいて、現在のピクチャをコーディングすればよい(140)。
【0396】
[0405]
図9は、復号ピクチャ削除の例示的操作を示すフローチャートである。説明のためにのみ、
図8の方法は、ビデオエンコーダ20またはビデオデコーダ30のいずれかに対応するビデオコーダによって実施することができる。
図5と同様に、ビデオコーダ(たとえば、ビデオ符号化20またはビデオデコーダ30)は、参照ピクチャセットの参照ピクチャを示す情報をコーディング(たとえば、符号化または復号)してよく(142)、コード化(たとえば、符号化または復号)された情報から参照ピクチャセットを導出すればよい(144)。
【0397】
[0406]ビデオコーダは、復号ピクチャバッファ(DPB)に記憶された復号ピクチャが出力に必要とされず(すなわち、すでに出力されているか、または出力されることを意図されていない)、参照ピクチャセット中で識別されないかどうか決定することができる(146)。復号ピクチャが出力に必要とされ、または参照ピクチャセット中で識別される場合(146の「NO」)、ビデオコーダは、復号されたものをDPBから削除しなくてよく、復号ピクチャをDPBに記憶したままにすればよい(148)。
【0398】
[0407]復号ピクチャが出力済みであり、参照ピクチャセット中で識別されないとき(146の「YES」)、ビデオコーダは、DPBから復号ピクチャを削除してよい(150)。ビデオコーダは次いで、復号ピクチャを削除した後、現在のピクチャをコーディングしてよい(152)。
【0399】
[0408]上述したように、ビデオコーダは、現在のピクチャをコーディングするための参照ピクチャセットに基づいて、参照ピクチャリストを構成することができる。いくつかの例では、ビデオコーダは、参照ピクチャリストを構成した後、DPBから復号ピクチャを削除してよい。さらに、出力された復号ピクチャについて、ビデオコーダは、復号ピクチャを出力するべき時間を決定してよく、決定した時間に基づいて、および現在のピクチャのコーディングに先立って、復号ピクチャを出力すればよい。
【0400】
[0409]いくつかの例では、ビデオコーダは、コード化(たとえば、復号)されたピクチャをDPBに記憶してよい。いくつかの例では、ビデオコーダは、記憶に先立って、DPBが満杯であると決定してよい。これらの例では、ビデオコーダは、「出力に必要とされる」とマーキングされるとともにDPBに記憶されたすべての復号ピクチャのうち最も小さいピクチャオーダーカウント(POC)値をもつ、DPBに現在記憶されている復号ピクチャを選択してよい。ビデオコーダは次いで、選択したピクチャを出力すればよい。さらに、ビデオコーダは、出力されたピクチャが現在のピクチャの参照ピクチャセットに含まれないと決定し得る。この場合、ビデオコーダは、出力されたピクチャを記憶したDPB内のバッファを空にしてよく、DPB内のそのバッファにコード化ピクチャを記憶すればよい。
【0401】
[0410]
図10は、どの長期参照ピクチャが現在のピクチャの参照ピクチャセットに属すか決定する例示的操作を示すフローチャートである。説明のためにのみ、
図10の方法は、ビデオエンコーダ20またはビデオデコーダ30のいずれかに対応するビデオコーダによって実施することができる。
【0402】
[0411]ビデオコーダ(たとえば、ビデオ符号化20またはビデオデコーダ30)は、パラメータセット中で識別される候補長期参照ピクチャを示すシンタックス要素をコーディングしてよい(154)。いくつかの例では、候補長期参照ピクチャのうちの1つまたは複数は、現在のピクチャの参照ピクチャセットに属す。本開示に記載する技法によると、パラメータセットは、シーケンスパラメータセットまたはピクチャパラメータセットであってよい。いくつかの例では、候補長期参照ピクチャを示すシンタックス要素をコーディングするために、ビデオコーダは、パラメータセット中の候補長期参照ピクチャについてのPOC値のリストをコーディングし、現在のピクチャのスライスヘッダ中のリストへのインデックス値をコーディングすればよい。
【0403】
[0412]ビデオコーダは、パラメータセット中で識別されるどの候補長期参照ピクチャが、現在のピクチャの参照ピクチャセットに属すかを示すシンタックス要素をコーディングすることができる(156)。たとえば、ビデオコーダは、現在のピクチャのスライスヘッダ中に、どの候補長期参照ピクチャが参照ピクチャセットに属すかを示すシンタックス要素をコーディングすることができる。
【0404】
[0413]いくつかの例では、参照ピクチャセットに属すすべての長期参照ピクチャが、候補長期参照ピクチャに含まれるわけではない。これらの例では、ビデオコーダはさらに、参照ピクチャセットに属す長期参照ピクチャを示すシンタックス要素をコーディングすることができる(158)。ビデオコーダは次いで、どの候補長期参照ピクチャが現在のピクチャの参照ピクチャセットに属すかの指示に基づいて、複数の参照ピクチャサブセットのうちの少なくとも1つを構成することができる(160)。
【0405】
[0414]上記例では、様々な例について、これらの例に対する可能な代替物とともに記載した。以下では、これらの例に対するいくつかの追加代替物について説明するが、これらは、上述したこれらの例のうちの1つまたは複数に対する代替例と見なすことができる。さらに、これらの代替例は、上述した例とともに、または上述した例とは別個に使うことができる。
【0406】
[0415]たとえば、参照ピクチャセット概念についての代替例、パラメータセット中での参照ピクチャセットのシグナリングのための代替例、参照ピクチャセットのサブセットの代替例、および参照ピクチャマーキングのための代替例については、すでに上述した。以下では、追加代替例を挙げる。
【0407】
[0416]たとえば、NALユニットヘッダ用に、上記例では、NALユニットヘッダシンタックスは、nal_ref_idc、temporal_id、およびoutput_flagシンタックス要素を含み得る。ある代替例では、nal_ref_idc(2ビット)は、nal_ref_flag(1ビット)で置き換えられる。この例では、1に等しいnal_ref_flagは、0よりも大きいnal_ref_idcとしてのセマンティクスを有し、0に等しいnal_ref_flagは、0に等しいnal_ref_idcと同じセマンティクスを有する。ある代替例では、nal_ref_idc(2ビット)は、削除される。参照ピクチャの定義は、復号順において後続ピクチャの復号プロセスにおいてインター予測に使うことができるサンプルを含むピクチャに変えることができる。ある代替例では、temporal_idはNALユニットヘッダシンタックスには存在せず、値は、すべてのピクチャについて同じになるように導出される。ある代替例では、output_flagはNALユニットヘッダシンタックスには存在せず、値は、すべてのピクチャについて1に等しくなるように導出される。
【0408】
[0417]ピクチャオーダーカウントのシグナリングおよび算出のために、上記技法は、AVCにおけるピクチャオーダーカウントタイプ0と同様であり得る、ピクチャオーダーカウントの1つのシグナリングおよび算出法を利用してよい。AVCにおけるピクチャオーダーカウントタイプ1および2と同じ、ピクチャオーダーカウントのシグナリングおよび算出のための2つの代替法を、それぞれ、適用することができる。3つのやり方のうちの2つの任意の組合せ、または3つすべてのやり方の組合せが適用されてもよい。
【0409】
[0418]ピクチャ識別のために、上記技法は、ピクチャ識別についてのピクチャオーダーカウント(POC:picture order count)値を使用し得る。ある代替例では、時間的参照(TR:temporal reference)がピクチャ識別として使われる。TRを定義する1つのやり方は、任意の2つのピクチャの間のPOC差が提示時間またはサンプリング時間差に比例するようにPOCが制限されるとき、TRがPOCと同じになるものである。ある代替例では、復号順を示すframe_num(一方、POCは出力または表示順を示す)、またはframe_numから導出される、32ビットの符号なし整数値の任意の値でよい変数(たとえば、UnWrappedFrameNumと名付けられる)を、ピクチャ識別として使うことができる。基本的に、UnWrappedFrameNumは、frame_numのアンラップバージョンであり得る。たとえば、frame_numが8ビットで表される場合、frame_numの最大値は255である。frame_numについての255の後の次の値は0である。UnWrappedFrameNumの値は、frame_numが0までラップする位置において増大し続ける。
【0410】
[0419]パラメータセット中で長期参照ピクチャをシグナリングするために、上記例では、ビデオエンコーダ20は、絶対長期参照ピクチャ識別情報のリストをピクチャパラメータセット中でシグナリングすればよく、ビットで表される、絶対長期参照ピクチャ識別情報の長さについての情報をシグナリングすればよく、リストに対するインデックスは、スライスヘッダ中で参照されてよく、したがってシグナリングオーバーヘッドを削減する。ある代替例では、差分長期参照ピクチャ識別情報のリストは、シーケンスパラメータセット中でシグナリングすることができ、リストに対するインデックスは、スライスヘッダ中で参照されてよく、したがってシグナリングオーバーヘッドを削減する。ある代替例では、ビットで表される、絶対長期参照ピクチャ識別情報の長さについての情報をシグナリングすることができるが、長さは、定数、たとえば、32と見なされ得る。様々な例において、上記例のうちのいずれの組合せも適用される。
【0411】
[0420]短期参照ピクチャのシグナリングのために、上記例では、コード化ピクチャの参照ピクチャセット中の短期参照ピクチャに対して、すべてが参照されるピクチャパラメータセット中でシグナリングされるか、またはすべてがスライスヘッダ中でシグナリングされる。ある代替例では、コード化ピクチャの参照ピクチャセット中の短期参照ピクチャに対して、一部が、参照されるピクチャパラメータセット中でシグナリングされ、それ以外はスライスヘッダ中でシグナリングされる。
【0412】
[0421]参照ピクチャリスト初期化のために、ある代替例では、参照ピクチャリスト初期化プロセスにおいて、最初に短期参照ピクチャがリストに追加されてよく、第2に、任意選択で、長期参照ピクチャがそのリストに追加されてよい。その後で、参照ピクチャリスト中のエントリの数(RefPicList0またはRefPicList1のいずれか)が依然としてnum_ref_idx_lx_active_minus1+1の値未満である場合(lxはl0またはl1である)、残りのエントリには、「参照ピクチャなし」とマーキングすればよい。ある代替例では、RefPicSetStCurr0およびRefPicSetStCurr1中のエントリ、および可能性としては長期間参照ピクチャを追加した後、参照ピクチャリストが依然として完了していない場合、RefPicSetStFoll0および/またはRefPicSetStFoll1中のピクチャが追加され得ることも可能であり得る。ある代替例では、参照ピクチャリスト初期化プロセスは、参照ピクチャリスト中で短期参照ピクチャを追加するだけでよい。このようなケースでは、長期参照ピクチャは、参照ピクチャリスト修正(RPLM)シンタックステーブルにおいてシグナリングされたとき、参照ピクチャリスト修正コマンドを使うことによって、参照ピクチャリストに追加されるだけでよい。
【0413】
[0422]参照ピクチャリスト修正のために、ある代替例では、参照ピクチャリスト修正は、前のインデックスが現在のインデックスの予測子として使われる差分方式でref_pic_set_idxもシグナリングし得る。この例では、異なるmodification_of_ref_pic_idc値が、異なるインデックス付けカテゴリーに対応してよく(RefPicListxにはRefPicSetStCurrx、RefPicList(1−x)にはRefPicSetStCurrx、またはRefPicSetLtCurr)、これらの各々は、異なる予測子を維持する。予測子は、同じカテゴリーに属すシンタックス要素が解析されるだけで、アップデートすることができる。ある代替例では、参照ピクチャリスト修正はピクチャ数の差に基づき得る。ある代替例では、参照ピクチャリスト修正はPOC値の差に基づき得る。
【0414】
[0423]復号ピクチャバッファ(DPB)操作のために、上記例では、現在のピクチャの復号の後、および復号順において次のコード化ピクチャのスライスヘッダを解析する前に、現在の復号ピクチャはDPBに記憶される。ある代替例では、現在のピクチャの復号の後、および復号順において次のコード化ピクチャのスライスヘッダを解析する前に、現在の復号ピクチャは(DPBではなく)一時メモリに記憶される。現在の復号ピクチャは、復号順において次のコード化ピクチャのスライスヘッダと、そのピクチャの参照ピクチャセットの構成とを解析した後、依然として参照または出力に必要とされる場合、DPBに記憶される。この瞬間、参照にも出力にも必要とされない場合、復号ピクチャは(一時バッファから)単に破棄すればよい。
【0415】
[0424]また、上記例では、DPBからの復号ピクチャの削除は、現在のピクチャのスライスヘッダを解析した直後、および現在のピクチャのどのスライスも復号する前に起こる。ある代替例では、存在する場合、復号ピクチャのマーキング、およびDPBからの削除は、現在のピクチャが全体的に復号された後に起こる。
【0416】
[0425]上記例では、現在のピクチャ用の参照ピクチャセットのサブセットRefPicSetStCurr0およびRefPicSetStCurr1は、すべての復号ピクチャについて導出される。ただし、これは、イントラピクチャには必要でなくてよい。イントラピクチャ参照ピクチャセット導出のため、ある代替例では、イントラコーディングされる非IDRピクチャのために(すなわち、コード化ピクチャのすべてのスライスがIスライスである)、RefPicSetStCurr0およびRefPicSetStCurr1は、導出された後に空でなくても、コード化ピクチャの復号において必要とされないので、導出されない。非IDRイントラピクチャ用に空でないRefPicSetStCurr0またはRefPicSetStCurr1を認めると、RefPicSetStCurr0およびRefPicSetStCurr1が両方とも空であってはならない、1つまたは複数のインターコード化ピクチャのインスタンスshort_term_ref_pic_set()シンタックス構造を共有することが可能になる。
【0417】
[0426]損失検出のために、参照ピクチャの損失検出または現在のピクチャを正しく復号することができるかどうかの早期検出のための以下の異なる方法が可能であり得る。様々な例において、参照ピクチャセットの導出の後、ビデオデコーダ30(たとえば、デコーダ側)は、RefPicSetStCurr0、RefPicSetStCurr1およびRefPicSetLtCurrに含まれる参照ピクチャの存在について調べればよい。RefPicSetStCurr0、RefPicSetStCurr1およびRefPicSetLtCurrに含まれる参照ピクチャのいずれも、DPBには存在しない場合、デコーダ側は、その参照ピクチャが失われ、現在のピクチャが正しく復号される見込みはないと推論してよく、たとえば、エンコーダ側(たとえば、ビデオエンコーダ20)にピクチャ損失(1つまたは複数)を通知することによって、状況を改善するための何らかのアクションをとればよく、エンコーダは、失われた参照ピクチャ(1つもしくは複数)を再送信し、またはインター予測参照のためにデコーダ側において正しいとわかっている参照ピクチャのみを使って次のピクチャ(1つもしくは複数)を符号化すればよい。
【0418】
[0427]様々な例において、参照ピクチャセットの導出の後、デコーダ側は、RefPicSetStFoll0、RefPicSetStFoll1およびRefPicSetLtFollに含まれる参照ピクチャの存在を調べればよい。RefPicSetStFoll0、RefPicSetStFoll1およびRefPicSetLtFollに含まれる参照ピクチャのいずれもDPBには存在しない場合、デコーダ側は、その参照ピクチャが失われ、復号順において後に続くピクチャのうちのいくつかは、いくつかのアクションがとられない限り正しく復号される見込みがないと推論してよく、たとえば、エンコーダ側にピクチャ損失(1つまたは複数)を通知することによって、状況を改善するための何らかのアクションをとればよく、エンコーダは、失われた参照ピクチャ(1つまたは複数)を再送信し、またはインター予測参照のためにデコーダ側において正しいとわかっている参照ピクチャのみを使って次のピクチャ(1つまたは複数)を符号化すればよい。
【0419】
[0428]エンコーダ側(たとえば、ビデオエンコーダ20)参照ピクチャセット組成のために、上記例を用いて、エンコーダ側における参照ピクチャセット組成のための以下の異なる方法が可能であり得る。たとえば、様々な例において、エンコーダは、現在のピクチャのためのデコーダ側での参照ピクチャセット導出の後(1)RefPicSetStCurr0が、現在のピクチャよりも早い出力順をもつとともに現在のピクチャのインター予測における参照に使われるすべての短期参照ピクチャの識別情報を含み、およびそれだけを含み、(2)RefPicSetStCurr1が、現在のピクチャよりも後の出力順をもつとともに現在のピクチャのインター予測における参照に使われるすべての短期参照ピクチャの識別情報を含み、およびそれだけを含み、(3)RefPicSetLtCurrが、現在のピクチャのインター予測における参照に使われるすべての長期参照ピクチャの識別情報を含み、およびそれだけを含むように、参照ピクチャセット関連シンタックス構造を組み立てる。
【0420】
[0429]様々な例において、エンコーダ(たとえば、ビデオエンコーダ20)は、現在のピクチャ用のデコーダ側での参照ピクチャセット導出の後、(1)RefPicSetStCurr0が、1)現在のピクチャよりも早い出力順をもつとともに現在のピクチャのインター予測における参照用に使われるすべての短期参照ピクチャと、2)現在のピクチャよりも早い出力順をもつとともに現在のピクチャのインター予測における参照に使用されない1つまたは複数の短期参照ピクチャとの識別情報を含み、およびそれだけを含み、(2)RefPicSetStCurr1が、1)現在のピクチャよりも後の出力順をもつとともに現在のピクチャのインター予測における参照に使われるすべての短期参照ピクチャと、2)現在のピクチャよりも後の出力順をもつとともに現在のピクチャのインター予測における参照に使用されない1つまたは複数の短期参照ピクチャとの識別情報を含み、およびそれだけを含み、RefPicSetLtCurrが、1)現在のピクチャのインター予測における参照に使われるすべての長期参照ピクチャと、2)現在のピクチャのインター予測における参照に使用されない1つまたは複数の長期参照ピクチャとの識別情報を含み、およびにそれだけを含むように、参照ピクチャセット関連シンタックス構造を組み立てることができる。
【0421】
[0430]このようにして、上記個々の技法または、代替例のどの組合せも含む、それらのどの組合せも、以下に関連した技法を提供することができる。ただし、以下のリストは、理解しやすくするために挙げるのであって、限定的と見なされるべきでない。上記技法のうちの1つまたは複数は、一緒に、または別個に実装することができる。さらに、上記技法は例であり、具体例技法に対して限定的と見なされるべきでない。
【0422】
[0431]DPB管理方法が時間的スケーラビリティに適合するような、参照ピクチャセットについてのtemporal_idに対する制約、すなわちシグナリングオーバーヘッドは、削減することができ、きれいに抽出されたビットストリームサブセットのための簡単なビットストリーム抽出プロセスが可能になり得る。
【0423】
[0432]ピクチャパラメータセットおよびインデックス中でシグナリングされる長期参照ピクチャサブセットは、スライスヘッダに含まれ得る。こうすることにより、長期ピクチャを効率的にシグナリングすることができる。
【0424】
[0433]現在のピクチャまたは復号順において後に続くピクチャについての分離、現在のピクチャよりも早いまたは後の出力順をもつものについての分離を含む、参照ピクチャセットの、様々なサブセットへの分離。これらは、参照リスト初期化および参照ピクチャリスト修正についての効率を改善し、複雑さを削減することができる。
【0425】
[0434]短期ピクチャ識別シグナリングにおける二重微分コーディングは、効率を改善し得る。拡張および制限された長期ピクチャ識別により、効率および柔軟性を改善することができる。簡略化された参照ピクチャリスト初期化により、参照ピクチャリスト中で未完エントリを「参照ピクチャなし」とマーキングする必要がなくなり得るが、これはすべての例において要求されるわけではない。
【0426】
[0435]DPBからの復号ピクチャ出力、挿入および削除のための簡略化されたプロセス。ピクチャオーダーカウント(POC)は負の場合がある。これにより、POCが負であってはならない場合には認められなかった場合があるいくつかの重要な使用ケースが可能になり得る。ピクチャが参照ピクチャであるかどうかのシグナリングは、復号プロセスにおいて必要とされないが、依然としてシグナリングされる可能性はあり得る。「参照に使用されない」という参照ピクチャのマーキングは、それ以上必要とされなくてよい。
【0427】
[0436]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。各機能は、ソフトウェアで実装される場合、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されてよく、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、データ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0428】
[0437]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0429】
[0438]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
【0430】
[0439]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【0431】
[0440]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1] ビデオデータをコーディングするための方法であって、
参照ピクチャセットに属す参照ピクチャを示す情報をコーディングすることと、前記参照ピクチャセットは、現在のピクチャをインター予測するために使われる可能性があり得るとともに復号順で前記現在のピクチャに続く1つまたは複数のピクチャをインター予測するために使われる可能性があり得る前記参照ピクチャを識別し、
前記参照ピクチャセットのうちのゼロ個以上の前記参照ピクチャを各々が識別する複数の参照ピクチャサブセットを構成することと、
前記複数の参照ピクチャサブセットに基づいて前記現在のピクチャをコーディングすることと、
を備える方法。
[2] 前記複数の参照ピクチャサブセットから前記参照ピクチャセットを導出することをさらに備え、
前記現在のピクチャをコーディングすることは、前記導出された参照ピクチャセットに基づいて前記現在のピクチャをコーディングすることを備える、[1]に記載の方法。
[3] 前記複数の参照ピクチャサブセットを構成することは、少なくとも5つの参照ピクチャサブセットを構成することを備える、[1]に記載の方法。
[4] 前記複数の参照ピクチャサブセットを構成することは、
復号順で前記現在のピクチャに先立ち、出力順で前記現在のピクチャに先立つとともに、前記現在のピクチャと、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る短期参照ピクチャを識別する第1の参照ピクチャサブセットと
復号順で前記現在のピクチャに先立ち、出力順で前記現在のピクチャの後に続くとともに、前記現在のピクチャと、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る短期参照ピクチャを識別する第2の参照ピクチャサブセットと、
復号順で前記現在のピクチャに先立つとともに、前記現在のピクチャと、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る長期参照ピクチャを識別する第3の参照ピクチャサブセットと、
復号順で前記現在のピクチャに先立つとともに、前記現在のピクチャをインター予測するためには使うことができず、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数をインター予測するために使われる可能性があり得る長期参照ピクチャを識別する第4の参照ピクチャサブセットと、
のうちの少なくとも2つを構成することを備える、[1]に記載の方法。
[5] 前記複数の参照ピクチャサブセットを構成することは、少なくとも前記第1の参照ピクチャサブセットと、前記第2の参照ピクチャサブセットと、前記第3の参照ピクチャサブセットと、前記第4の参照ピクチャサブセットとを構成することを備える、[4]に記載の方法。
[6] 前記複数の参照ピクチャサブセットのうちの1つまたは複数のサブセット中の参照ピクチャの数を示すシンタックス要素をコーディングすることをさらに備え、
前記複数の参照ピクチャサブセットを構成することは、前記複数の参照ピクチャサブセットの各々の中の前記参照ピクチャ数を示す前記コーディングされたシンタックス要素に基づいて、前記複数の参照ピクチャサブセットのうちの前記1つまたは複数のサブセットを構成することを備える、[1]に記載の方法。
[7] 前記複数の参照ピクチャサブセットを構成することは、前記複数の参照ピクチャサブセットのうちの1つのサブセット中で識別される参照ピクチャが他のどの参照ピクチャサブセット中でも識別されないように、前記複数の参照ピクチャサブセットを構成することを備える、[1]に記載の方法。
[8] 前記複数の参照ピクチャサブセットに基づいて、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成することをさらに備え、
前記複数の参照ピクチャサブセットに基づいて前記現在のピクチャをコーディングすることは、前記第1の参照ピクチャリストおよび前記第2の参照ピクチャリストのうちの少なくとも1つに基づいて前記現在のピクチャをコーディングすることを備える、[1]に記載の方法。
[9] 情報をコーディングすることは、ビデオデコーダを用いて、前記参照ピクチャセットに属す前記参照ピクチャを示す前記情報を復号することを備え、前記参照ピクチャセットは、前記現在のピクチャと、復号順において前記現在のピクチャに続く前記1つまたは複数のピクチャとをインター予測するために使われる可能性があり得る前記参照ピクチャを識別し、
構成することは、前記ビデオデコーダを用いて、前記参照ピクチャセットのゼロ個以上の前記参照ピクチャを各々が識別する前記複数の参照ピクチャサブセットを構成することを備え、
前記現在のピクチャをコーディングすることは、前記ビデオデコーダを用いて、複数の参照ピクチャサブセットに基づいて前記現在のピクチャを復号することを備える、[1]に記載の方法。
[10] 情報をコーディングすることは、ビデオエンコーダを用いて、前記参照ピクチャセットに属す前記参照ピクチャを示す前記情報を符号化することを備え、前記参照ピクチャセットは、前記現在のピクチャと、復号順において前記現在のピクチャに続く前記1つまたは複数のピクチャとをインター予測するために使われる可能性があり得る前記参照ピクチャを識別し、
構成することは、前記ビデオエンコーダを用いて、前記参照ピクチャセットのうちのゼロ個以上の前記参照ピクチャを各々が識別する前記複数の参照ピクチャサブセットを構成することを備え、
前記現在のピクチャをコーディングすることは、前記ビデオエンコーダを用いて、前記複数の参照ピクチャサブセットに基づいて前記現在のピクチャを符号化することを備える、[1]に記載の方法。
[11] ビデオコーダを備える、ビデオデータをコーディングするためのデバイスであって、前記ビデオコーダは、
参照ピクチャセットに属す参照ピクチャを示す情報をコーディングすることと、前記参照ピクチャセットは、現在のピクチャをインター予測するために使われる可能性があり得るとともに復号順で前記現在のピクチャに続く1つまたは複数のピクチャをインター予測するために使われる可能性があり得る前記参照ピクチャを識別し、
前記参照ピクチャセットのうちのゼロ個以上の前記参照ピクチャを各々が識別する複数の参照ピクチャサブセットを構成することと、
前記複数の参照ピクチャサブセットに基づいて前記現在のピクチャをコーディングすることと、を行うように構成される、デバイス。
[12] 前記ビデオコーダは、
前記複数の参照ピクチャサブセットから前記参照ピクチャセットを導出するように構成され、
前記現在のピクチャをコーディングするために、前記ビデオコーダは、前記導出された参照ピクチャセットに基づいて前記現在のピクチャをコーディングするように構成される、[11]に記載のデバイス。
[13] 前記ビデオコーダは、少なくとも5つの参照ピクチャサブセットを構成するように構成される、[11]に記載のデバイス。
[14] 前記ビデオコーダは、
復号順で前記現在のピクチャに先立ち、出力順で前記現在のピクチャに先立つとともに、前記現在のピクチャと、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る短期参照ピクチャを識別する第1の参照ピクチャサブセットと、
復号順で前記現在のピクチャに先立ち、出力順で前記現在のピクチャの後に続くとともに、前記現在のピクチャと、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る短期参照ピクチャを識別する第2の参照ピクチャサブセットと、
復号順で前記現在のピクチャに先立つとともに、前記現在のピクチャと、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る長期参照ピクチャを識別する第3の参照ピクチャサブセットと、
復号順で前記現在のピクチャに先立つとともに、前記現在のピクチャをインター予測するためには使うことができず、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数をインター予測するために使われる可能性があり得る長期参照ピクチャを識別する第4の参照ピクチャサブセットと、
のうちの少なくとも2つを構成するように構成される、[11]に記載のデバイス。
[15] 前記ビデオコーダは、少なくとも前記第1の参照ピクチャサブセットと、前記第2の参照ピクチャサブセットと、前記第3の参照ピクチャサブセットと、前記第4の参照ピクチャサブセットとを構成するように構成される、[14]に記載のデバイス。
[16] 前記ビデオコーダは、
前記複数の参照ピクチャサブセットのうちの1つまたは複数のサブセット中の参照ピクチャの数を示すシンタックス要素をコーディングするように構成され、
前記複数の参照ピクチャサブセットのうちの前記1つまたは複数のサブセットを構成するために、前記ビデオコーダは、前記複数の参照ピクチャサブセットの各々の中の前記参照ピクチャ数を示す前記コーディングされたシンタックス要素に基づいて、前記複数の参照ピクチャサブセットのうちの前記1つまたは複数のサブセットを構成するように構成される、[11]に記載のデバイス。
[17] 前記ビデオコーダは、前記複数の参照ピクチャサブセットのうちの1つのサブセット中で識別される参照ピクチャが他のどの参照ピクチャサブセット中でも識別されないように、前記複数の参照ピクチャサブセットを構成するように構成される、[11]に記載のデバイス。
[18] 前記ビデオコーダは、
前記複数の参照ピクチャサブセットに基づいて、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成するように構成され、
前記現在のピクチャをコーディングするために、前記ビデオコーダは、前記第1の参照ピクチャリストおよび前記第2の参照ピクチャリストのうちの少なくとも1つに基づいて前記現在のピクチャをコーディングするように構成される、[11]に記載のデバイス。
[19] 前記ビデオコーダはビデオデコーダを備え、前記ビデオデコーダは、
前記参照ピクチャセットに属す参照ピクチャを示す情報を復号し、前記参照ピクチャセットは、前記現在のピクチャをインター予測するために使われる可能性があり得るとともに復号順で前記現在のピクチャに続く1つまたは複数のピクチャをインター予測するために使われる可能性があり得る前記参照ピクチャを識別し、
前記参照ピクチャセットのゼロ個以上の前記参照ピクチャを各々が識別する前記複数の参照ピクチャサブセットを構成し、
前記複数の参照ピクチャサブセットに基づいて前記現在のピクチャを復号するように構成される、[11]に記載のデバイス。
[20] 前記ビデオコーダはビデオエンコーダを備え、前記ビデオエンコーダは、
前記参照ピクチャセットに属す参照ピクチャを示す情報を符号化し、前記参照ピクチャセットは、前記現在のピクチャをインター予測するために使われる可能性があり得るとともに復号順で前記現在のピクチャに続く1つまたは複数のピクチャをインター予測するために使われる可能性があり得る前記参照ピクチャを識別し、
前記参照ピクチャセットのうちのゼロ個以上の前記参照ピクチャを各々が識別する前記複数の参照ピクチャサブセットを構成し、
前記複数の参照ピクチャサブセットに基づいて前記現在のピクチャを符号化するように構成される、[11]に記載のデバイス。
[21] 前記デバイスは、
ワイヤレス通信デバイス、
マイクロプロセッサ、および
集積回路のうちの1つを備える、[11]に記載のデバイス。
[22] 命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、ビデオデータをコーディングするためのデバイスのプロセッサに、
参照ピクチャセットに属す参照ピクチャを示す情報をコーディングすることと、前記参照ピクチャセットは、現在のピクチャをインター予測するために使われる可能性があり得るとともに復号順で前記現在のピクチャに続く1つまたは複数のピクチャをインター予測するために使われる可能性があり得る前記参照ピクチャを識別し、
前記参照ピクチャセットのうちのゼロ個以上の前記参照ピクチャを各々が識別する複数の参照ピクチャサブセットを構成することと、
前記複数の参照ピクチャサブセットに基づいて、前記現在のピクチャをコーディングすることと、
を行わせるコンピュータ可読記憶媒体。
[23] 前記プロセッサに、
前記複数の参照ピクチャサブセットから前記参照ピクチャセットを導出させる命令をさらに備え、
前記プロセッサに前記現在のピクチャをコーディングさせる前記命令は、前記プロセッサに、前記導出された参照ピクチャセットに基づいて前記現在のピクチャをコーディングさせる命令を備える、[22]に記載のコンピュータ可読記憶媒体。
[24] 前記プロセッサに前記複数の参照ピクチャサブセットを構成させる前記命令は、前記プロセッサに、
復号順で前記現在のピクチャに先立ち、出力順で前記現在のピクチャに先立つとともに、前記現在のピクチャと、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る短期参照ピクチャを識別する第1の参照ピクチャサブセットと、
復号順で前記現在のピクチャに先立ち、出力順で前記現在のピクチャの後に続くとともに、前記現在のピクチャと、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る短期参照ピクチャを識別する第2の参照ピクチャサブセットと、
復号順で前記現在のピクチャに先立つとともに、前記現在のピクチャと、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る長期参照ピクチャを識別する第3の参照ピクチャサブセットと、
復号順で前記現在のピクチャに先立つとともに、前記現在のピクチャをインター予測するためには使うことができず、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数をインター予測するために使われる可能性があり得る長期参照ピクチャを識別する第4の参照ピクチャサブセットと、
のうちの少なくとも2つを構成させる命令を備える、[22]に記載のコンピュータ可読記憶媒体。
[25] 前記プロセッサに、
前記複数の参照ピクチャサブセットに基づいて、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成させる命令をさらに備え、
前記プロセッサに、前記複数の参照ピクチャサブセットに基づいて前記現在のピクチャをコーディングさせる前記命令は、前記プロセッサに、前記第1の参照ピクチャリストおよび前記第2の参照ピクチャリストのうちの少なくとも1つに基づいて前記現在のピクチャをコーディングさせる命令を備える、[22]に記載のコンピュータ可読記憶媒体。
[26] ビデオデータをコーディングするためのデバイスであって、
参照ピクチャセットに属す参照ピクチャを示す情報をコーディングする手段と、前記参照ピクチャセットは、現在のピクチャをインター予測するために使われる可能性があり得るとともに復号順で前記現在のピクチャに続く1つまたは複数のピクチャをインター予測するために使われる可能性があり得る前記参照ピクチャを識別し、
前記参照ピクチャセットのうちのゼロ個以上の前記参照ピクチャを各々が識別する複数の参照ピクチャサブセットを構成する手段と、
前記複数の参照ピクチャサブセットに基づいて前記現在のピクチャをコーディングする手段と、
を備えるデバイス。
[27] 前記複数の参照ピクチャサブセットから前記参照ピクチャセットを導出する手段をさらに備え、
前記現在のピクチャをコーディングする手段は、前記導出された参照ピクチャセットに基づいて前記現在のピクチャをコーディングする手段を備える、[26]に記載のデバイス。
[28] 前記複数の参照ピクチャサブセットを構成する手段は、少なくとも5つの参照ピクチャサブセットを構成する手段を備える、[26]に記載のデバイス。
[29] 前記複数の参照ピクチャサブセットを構成する手段は、
復号順で前記現在のピクチャに先立ち、出力順で前記現在のピクチャに先立つとともに、前記現在のピクチャと、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る短期参照ピクチャを識別する第1の参照ピクチャサブセットと、
復号順で前記現在のピクチャに先立ち、出力順で前記現在のピクチャの後に続くとともに、前記現在のピクチャと、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る短期参照ピクチャを識別する第2の参照ピクチャサブセットと、
復号順で前記現在のピクチャに先立つとともに、前記現在のピクチャと、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数とをインター予測するために使われる可能性があり得る長期参照ピクチャを識別する第3の参照ピクチャサブセットと、
復号順で前記現在のピクチャに先立つとともに、前記現在のピクチャをインター予測するためには使うことができず、復号順で前記現在のピクチャに続く前記1つまたは複数のピクチャのうちの1つまたは複数をインター予測するために使われる可能性があり得る長期参照ピクチャを識別する第4の参照ピクチャサブセットと、
のうちの少なくとも2つを構成する手段を備える、[26]に記載のデバイス。
[30] 前記複数の参照ピクチャサブセットのうちの1つまたは複数のサブセット中の参照ピクチャの数を示すシンタックス要素をコーディングする手段をさらに備え、
前記複数の参照ピクチャサブセットを構成する手段は、前記複数の参照ピクチャサブセットの各々の中の前記参照ピクチャ数を示す前記コーディングされたシンタックス要素に基づいて、前記複数の参照ピクチャサブセットのうちの前記1つまたは複数のサブセットを構成する手段を備える、[26]に記載のデバイス。
[31] 前記複数の参照ピクチャサブセットを構成する手段は、前記複数の参照ピクチャサブセットのうちの1つのサブセット中で識別される参照ピクチャが他のどの参照ピクチャサブセット中でも識別されないように、前記複数の参照ピクチャサブセットを構成する手段を備える、[26]に記載のデバイス。
[32] 前記複数の参照ピクチャサブセットに基づいて、第1の参照ピクチャリストおよび第2の参照ピクチャリストのうちの少なくとも1つを構成する手段をさらに備え、
前記複数の参照ピクチャサブセットに基づいて前記現在のピクチャをコーディングする手段は、前記第1の参照ピクチャリストおよび前記第2の参照ピクチャリストのうちの少なくとも1つに基づいて前記現在のピクチャをコーディングする手段を備える、[26]に記載のデバイス。