(57)【要約】  ビデオデータを符号化する方法であって、ビデオデータの現在ピクチャを符号化することと、現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を生成することと、イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施することと、ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、現在ピクチャ自体を参照しないように、それぞれのコロケート参照ピクチャインデックスシンタックス要素の値を制約する、を備える、方法。
2019514292.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、前記方法は、
ビデオデータの現在ピクチャを符号化することと、
前記現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を生成することと、
イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、前記１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施することと、前記ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、前記現在ピクチャ自体を参照しないように、前記それぞれのコロケート参照ピクチャインデックスシンタックス要素の値を制約する、
を備える、方法。
【請求項２】
前記１つまたは複数のスライスのためのスライスタイプを決定することと、前記スライスタイプがＰインタースライスタイプ、Ｂインタースライスタイプ、または前記イントラスライスタイプのうちの１つを含む、
前記時間動きベクトル予測子が前記１つまたは複数のスライスのためにインター予測のために有効にされるか否かを決定することと
をさらに備える、請求項１に記載の方法。
【請求項３】
前記イントラスライスタイプを有する前記１つまたは複数のスライスのうちのスライスのために、または前記時間動きベクトル予測子が無効にされた前記１つまたは複数のスライスのうちのスライスのために前記ビットストリーム適合検査を実施しないこと
をさらに備える、請求項１に記載の方法。
【請求項４】
前記対応するスライスのためのそれぞれのスライスヘッダ中で前記それぞれのコロケート参照ピクチャインデックスシンタックス要素を生成することと、
前記１つまたは複数のスライスのそれぞれのスライスヘッダ中で時間動きベクトル予測子有効フラグを生成することと
をさらに備える、請求項１に記載の方法。
【請求項５】
前記それぞれのコロケート参照ピクチャインデックスシンタックス要素が、それぞれのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素であり、
前記時間動きベクトル予測子有効フラグがｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇである、請求項４に記載の方法。
【請求項６】
ビデオデータの前記現在ピクチャを符号化することが、
前記現在ピクチャを参照ピクチャとして使用するインター予測モードを使用して、ビデオデータの前記現在ピクチャの１つまたは複数のブロックを符号化すること
を備える、請求項１に記載の方法。
【請求項７】
前記もう１つのスライスのうちの第１のスライスのためのスライスヘッダ中に、時間動きベクトル予測子が前記第１のスライスのために有効にされたことを示すシンタックス要素を含めることと、
前記１つまたは複数のスライスのうちの第２のスライスのための第２のスライスヘッダ中に、時間動きベクトル予測子が前記第２のスライスのために無効にされたことを示すシンタックス要素を含めることと
をさらに備える、請求項１に記載の方法。
【請求項８】
符号化されるべきビデオデータの前記現在ピクチャをキャプチャすることと、
ビデオデータの前記符号化された現在ピクチャを出力することと
をさらに備える、請求項１に記載の方法。
【請求項９】
ビデオデータを符号化するように構成された装置であって、前記装置は、
ビデオデータの現在ピクチャを記憶するように構成されたメモリと、
１つまたは複数のプロセッサと
を備え、前記１つまたは複数のプロセッサは、
ビデオデータの現在ピクチャを符号化することと、
前記現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を生成することと、
イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、前記１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施することと、前記ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、前記現在ピクチャ自体を参照しないように、前記それぞれのコロケート参照ピクチャインデックスシンタックス要素の値を制約する、
を行うように構成された、装置。
【請求項１０】
前記１つまたは複数のプロセッサは、
前記１つまたは複数のスライスのためのスライスタイプを決定することと、前記スライスタイプがＰインタースライスタイプ、Ｂインタースライスタイプ、または前記イントラスライスタイプのうちの１つを含む、
前記時間動きベクトル予測子が前記１つまたは複数のスライスのためにインター予測のために有効にされるか否かを決定することと
を行うようにさらに構成された、請求項９に記載の装置。
【請求項１１】
前記１つまたは複数のプロセッサは、
前記イントラスライスタイプを有する前記１つまたは複数のスライスのうちのスライスのために、または前記時間動きベクトル予測子が無効にされた前記１つまたは複数のスライスのうちのスライスのために前記ビットストリーム適合検査を実施しない
ようにさらに構成された、請求項９に記載の装置。
【請求項１２】
前記１つまたは複数のプロセッサが、
前記対応するスライスのためのそれぞれのスライスヘッダ中で前記それぞれのコロケート参照ピクチャインデックスシンタックス要素を生成することと、
前記１つまたは複数のスライスのそれぞれのスライスヘッダ中で時間動きベクトル予測子有効フラグを生成することと
を行うようにさらに構成された、請求項９に記載の装置。
【請求項１３】
前記それぞれのコロケート参照ピクチャインデックスシンタックス要素が、それぞれのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素であり、
前記時間動きベクトル予測子有効フラグがｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇである、請求項１２に記載の装置。
【請求項１４】
ビデオデータの前記現在ピクチャを符号化するために、前記１つまたは複数のプロセッサが、
前記現在ピクチャを参照ピクチャとして使用するインター予測モードを使用して、ビデオデータの前記現在ピクチャの１つまたは複数のブロックを符号化する
ようにさらに構成された、請求項９に記載の装置。
【請求項１５】
前記１つまたは複数のプロセッサは、
前記もう１つのスライスのうちの第１のスライスのためのスライスヘッダ中に、時間動きベクトル予測子が前記第１のスライスのために有効にされたことを示すシンタックス要素を含めることと、
前記１つまたは複数のスライスのうちの第２のスライスのための第２のスライスヘッダ中に、時間動きベクトル予測子が前記第２のスライスのために無効にされたことを示すシンタックス要素を含めることと
を行うようにさらに構成された、請求項９に記載の装置。
【請求項１６】
前記１つまたは複数のプロセッサが、
符号化されるべきビデオデータの前記現在ピクチャをキャプチャすることと、
ビデオデータの前記符号化された現在ピクチャを出力することと
を行うようにさらに構成された、請求項９に記載の装置。
【請求項１７】
実行されたとき、ビデオデータを符号化するように構成されたデバイスの１つまたは複数のプロセッサに、
ビデオデータの現在ピクチャを符号化することと、
前記現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を生成することと、
イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、前記１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施することと、前記ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、前記現在ピクチャ自体を参照しないように、前記それぞれのコロケート参照ピクチャインデックスシンタックス要素の値を制約する、
を行わせる命令を記憶する非一時的コンピュータ可読記憶媒体。
【請求項１８】
ビデオデータを復号するように構成された装置であって、前記装置は、
ビデオデータの符号化された現在ピクチャを記憶するように構成されたメモリと、
１つまたは複数のプロセッサと
を備え、前記１つまたは複数のプロセッサは、
ビデオデータの前記符号化された現在ピクチャを受信することと、
前記符号化された現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を受信することと、
イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、前記１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施することと、前記ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、前記符号化された現在ピクチャ自体を参照しないか否かを決定する、
を行うように構成された、装置。
【請求項１９】
前記１つまたは複数のプロセッサは、
前記１つまたは複数のスライスのためのスライスタイプを決定することと、前記スライスタイプがＰインタースライスタイプ、Ｂインタースライスタイプ、または前記イントラスライスタイプのうちの１つを含む、
前記時間動きベクトル予測子が前記１つまたは複数のスライスのためにインター予測のために有効にされるか否かを決定することと
を行うようにさらに構成された、請求項１８に記載の装置。
【請求項２０】
前記１つまたは複数のプロセッサは、
前記イントラスライスタイプを有する前記１つまたは複数のスライスのうちのスライスのために、または前記時間動きベクトル予測子が無効にされた前記１つまたは複数のスライスのうちのスライスのために前記ビットストリーム適合検査を実施しない
ようにさらに構成された、請求項１８に記載の装置。
【請求項２１】
前記１つまたは複数のプロセッサは、
前記対応するスライスのためのそれぞれのスライスヘッダ中で前記それぞれのコロケート参照ピクチャインデックスシンタックス要素を受信することと、
前記１つまたは複数のスライスのそれぞれのスライスヘッダ中で時間動きベクトル予測子有効フラグを受信することと
を行うようにさらに構成された、請求項１８に記載の装置。
【請求項２２】
前記それぞれのコロケート参照ピクチャインデックスシンタックス要素が、それぞれのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素であり、
前記時間動きベクトル予測子有効フラグがｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇである、請求項２１に記載の装置。
【請求項２３】
前記１つまたは複数のプロセッサが、
前記現在ピクチャを参照ピクチャとして使用するインター予測モードを使用して、ビデオデータの前記現在ピクチャの１つまたは複数のブロックを復号する
ようにさらに構成された、請求項１８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、両方の内容全体が参照により本明細書に組み込まれる、２０１６年４月１３日に出願された米国仮出願第６２／３２２，１６０号、および２０１６年４月１５日に出願された米国仮出願第６２／３２３，４６７号の利益を主張する。
【０００２】
[0002]本開示は、ビデオ符号化および復号に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、ＩＴＵ−Ｔ  Ｈ．２６５、高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間（イントラピクチャ）予測および／または時間（インターピクチャ）予測を実施する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）が、ツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。
【発明の概要】
【０００５】
[0005]概して、本開示は、ビデオコーディングプロセスにおいて、符号化ビットストリーム適合制約（conformance constraint）（たとえば、ＨＥＶＣビットストリーム適合制約の変更）を利用するための技法について説明する。いくつかの例では、ビットストリーム適合制約は、シンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス）によって参照される参照ピクチャが、コード化ピクチャのすべてのスライスについて同じであるもの（shall）とし、現在ピクチャ自体でないもの（shall not）とすることを規定する（specifies）。本開示は、そのような制約が適用されるビデオコーディング技法およびビデオコーディングシナリオについて説明する。他の例では、本開示は、さらに、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが現在ピクチャ（current picture）でないものとするという任意の（any）制約を削除することを提案する。
【０００６】
[0006]他の例では、本開示は、ピクチャ内のいくつかの（certain）スライスは、予測コーディングのための参照ピクチャとして現在ピクチャのみを使用するが（whereas）、同じピクチャ内の他のスライスは、予測コーディングのための参照ピクチャとして現在ピクチャならびに時間ピクチャを使用する、ピクチャのためのコーディング効率を改善し得る技法について説明する。より一般的な場合、現在ピクチャが参照ピクチャとして含まれるかどうかにかかわらず、本技法は、ピクチャ内のいくつかのスライスが時間動き予測を使用し、同じピクチャ内の他のスライスが時間動き予測を使用しないとき、適用可能であり得る。
【０００７】
[0007]本開示の技法は、高効率ビデオコーディング（ＨＥＶＣ）規格（ＩＴＵ−Ｔ  Ｈ．２６５）、およびスクリーンコンテンツコーディング（ＳＣＣ：Screen Content Coding）などのそれの拡張に準拠するビデオコーデックに適用可能であり得る。しかしながら、本開示の技法は、将来のビデオコーディング規格、より高いビット深度（たとえば、８ビット超）をサポートするビデオコーディング技法、４：４：４、４：２：２、４：２：０、４：０：０などの異なるクロマサンプリングフォーマットなどを含む、ビデオコーディング技法に従って使用され得る。
【０００８】
[0008]本開示の一例では、ビデオデータを符号化する方法は、ビデオデータの現在ピクチャを符号化することと、現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を生成することと、イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施すること（performing a bitstream conformance check only for slices of the one or more slices that do not have an intra slice type and for which a temporal motion vector predictor is enabled）と、ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、現在ピクチャ自体を参照しないように、それぞれのコロケート参照ピクチャインデックスシンタックス要素の値を制約する、を備える。
【０００９】
[0009]本開示の別の例では、ビデオデータを符号化するように構成された装置は、ビデオデータの現在ピクチャを記憶するように構成されたメモリと、１つまたは複数のプロセッサとを備え、１つまたは複数のプロセッサは、ビデオデータの現在ピクチャを符号化することと、現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を生成することと、イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施することと、ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、現在ピクチャ自体を参照しないように、それぞれのコロケート参照ピクチャインデックスシンタックス要素の値を制約する、を行うように構成される。
【００１０】
[0010]別の例では、本開示は、実行されたとき、ビデオデータを符号化するように構成されたデバイスの１つまたは複数のプロセッサに、ビデオデータの現在ピクチャを符号化することと、現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を生成することと、イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施することと、ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、現在ピクチャ自体を参照しないように、それぞれのコロケート参照ピクチャインデックスシンタックス要素の値を制約する、を行わせる命令を記憶する非一時的コンピュータ可読記憶媒体について説明する。
【００１１】
[0011]本開示の別の例では、ビデオデータを復号するように構成された装置は、ビデオデータの符号化された現在ピクチャを記憶するように構成されたメモリと、１つまたは複数のプロセッサとを備え、１つまたは複数のプロセッサは、ビデオデータの符号化された現在ピクチャを受信することと、符号化された現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を受信することと、イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施することと、ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、符号化された現在ピクチャ自体を参照しないかどうか（if）を決定する、を行うように構成される。
【００１２】
[0012]本開示の１つまたは複数の態様の詳細が添付の図面および以下の説明に記載されている。本開示で説明される技法の他の特徴、目的、および利点は、その説明、図面、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１３】
【図１】[0013]本開示で説明される１つまたは複数の技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】[0014]本開示で説明される１つまたは複数の技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図３】[0015]本開示で説明される１つまたは複数の技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図４】[0016]本開示の例示的な符号化プロセスを示すフローチャート。
【図５】[0017]本開示の例示的な復号プロセスを示すフローチャート。
【発明を実施するための形態】
【００１４】
[0018]本開示は、符号化ビットストリーム適合制約（たとえば、ＨＥＶＣビットストリーム適合制約の変更）を利用するための技法について説明する。いくつかの例では、ビットストリーム適合制約は、シンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素）によって参照される参照ピクチャが、コード化ピクチャのすべてのスライスについて同じであるものとし、現在ピクチャ自体でないものとすることを規定する。本開示は、そのような制約が適用される技法およびコーディングシナリオについて説明する。他の例では、本開示は、さらに、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが現在ピクチャでないものとするという制約を削除することを提案する。
【００１５】
[0019]他の例では、本開示は、ピクチャ内のいくつかのスライスは、参照として現在ピクチャのみを使用するが、同じピクチャ内の他のスライスは、参照として現在ピクチャならびに時間ピクチャを使用する、ピクチャのためのコーディング効率を改善するための方法について説明する。より一般的な場合、現在ピクチャが参照ピクチャとして含まれるかどうかにかかわらず、本開示の例示的な技法は、ピクチャ内のいくつかのスライスが時間動き予測を使用し、同じピクチャ内の他のスライスが時間予測を使用しないとき、適用可能である。
【００１６】
[0020]本開示の技法は、高効率ビデオコーディング（ＨＥＶＣ）規格（ＩＴＵ−Ｔ  Ｈ．２６５）、およびスクリーンコンテンツコーディング（ＳＣＣ）などのそれの拡張に準拠するビデオコーデックに適用可能であり得る。しかしながら、本開示の技法は、将来のビデオコーディング規格、より高いビット深度（たとえば、８ビット超）をサポートするビデオコーディング技法、４：４：４、４：２：２、４：２：０、４：０：０などの異なるクロマサンプリングフォーマットなどを含む、ビデオコーディング技法に従って使用され得る。
【００１７】
[0021]ビデオシーケンスは、概して、ピクチャのシーケンスとして表される。一般に、ブロックベースのコーディング技法は、個々のピクチャの各々をコーディングするために使用される。すなわち、各ピクチャはブロックに分割され、ブロックの各々は個別にコーディングされる。ビデオデータのブロックをコーディングすることは、概して、ブロック中のサンプルのための予測された値（たとえば、ルーマサンプルおよび／またはクロマサンプルのようなピクセル値）を形成することと、残差値をコーディングすることとを伴う（involves）。予測された値は、１つまたは複数の予測ブロック中のサンプルを使用して形成される。残差値は、元の（original）ブロックのピクセルと予測されたサンプル値との間の差を表す。詳細には、ビデオデータの元のブロックはサンプル値のアレイを含み、予測されたブロックは予測されたピクセル値のアレイを含む。残差値は、元のブロックのサンプル値と予測されたサンプル値との間のサンプルごとの差分を表す。
【００１８】
[0022]ビデオデータのブロックのための予測技法は、概して、イントラ予測およびインター予測としてカテゴリー分類される。イントラ予測、または空間予測は、概して、同じピクチャ中の隣接する、前にコーディングされたブロックのピクセル値からブロックを予測することを伴う。インター予測、または時間予測は、概して、１つまたは複数の前にコーディングされたピクチャのピクセル値からブロックを予測することを伴う。パレットベースコーディング技法およびイントラブロックコピー技法を含む他の予測技法は、スクリーンコンテンツをコーディングする（たとえば、スクリーンコンテンツコーディング（ＳＣＣ））ために使用され得る。
【００１９】
[0023]図１は、本開示の技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されているように、システム１０は、宛先デバイス１４によって、たとえば、ほぼリアルタイムで、または後で復号されるべき符号化ビデオデータを与えるソースデバイス１２を含む。特に、ソースデバイス１２は、コンピュータ可読媒体１６を介して宛先デバイス１４にビデオデータを与える。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、タブレットコンピュータ、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。したがって、ソースデバイス１２および宛先デバイス１４はワイヤレス通信デバイスであり得る。ソースデバイス１２は、例示的なビデオ符号化デバイス（すなわち、ビデオデータを符号化するためのデバイス）である。宛先デバイス１４は、例示的なビデオ復号デバイス（すなわち、ビデオデータを復号するためのデバイス）である。
【００２０】
[0024]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオデータを記憶するように構成された記憶媒体１９と、ビデオエンコーダ２０と、出力インターフェース２４とを含む。宛先デバイス１４は、入力インターフェース２６と、符号化ビデオデータを記憶するように構成された記憶媒体２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。他の例では、ソースデバイス１２および宛先デバイス１４は、他の構成要素または構成を含む。たとえば、ソースデバイス１２は、外部カメラなど、外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス１４は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００２１】
[0025]図１の図示されたシステム１０は一例にすぎない。ビデオデータを処理するための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実施され得る。概して、本開示の技法はビデオ符号化デバイスによって実施されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実施され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４への送信のためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２および宛先デバイス１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ソースデバイス１２と宛先デバイス１４との間の一方向または双方向のビデオ送信をサポートし得る。
【００２２】
[0026]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。ソースデバイス１２は、ビデオデータを記憶するように構成された１つまたは複数のデータ記憶媒体（たとえば、記憶媒体１９）を備え得る。本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。出力インターフェース２４は、符号化ビデオ情報をコンピュータ可読媒体１６に出力し得る。
【００２３】
[0027]宛先デバイス１４は、コンピュータ可読媒体１６を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。いくつかの例では、コンピュータ可読媒体１６は、ソースデバイス１２が、符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にするための通信媒体を備える。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。宛先デバイス１４は、符号化ビデオデータと復号ビデオデータとを記憶するように構成された１つまたは複数のデータ記憶媒体を備え得る。
【００２４】
[0028]いくつかの例では、符号化データは、出力インターフェース２４からストレージデバイスに出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイスは、ソースデバイス１２によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介してストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、その符号化ビデオデータを宛先デバイス１４に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００２５】
[0029]本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００２６】
[0030]コンピュータ可読媒体１６は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙディスク、または他のコンピュータ可読媒体などの記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバ（図示せず）は、たとえば、ネットワーク送信を介して、ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを宛先デバイス１４に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体１６は、様々な例において、様々な形態の１つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【００２７】
[0031]宛先デバイス１４の入力インターフェース２６は、コンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ビデオエンコーダ２０のビデオエンコーダ２０によって定義され、またビデオデコーダ３０によって使用される、ブロックおよび他のコード化ユニット、たとえば、ピクチャグループ（ＧＯＰ）の特性および／または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。記憶媒体２８は、入力インターフェース２６によって受信された符号化ビデオデータを記憶し得る。ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００２８】
[0032]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実施するために１つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイス中で複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００２９】
[0033]いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、既存または将来の規格など、ビデオコーディング規格に従って動作し得る。例示的なビデオコーディング規格は、限定はしないが、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、およびそれのスケーラブルビデオコーディング（ＳＶＣ）拡張とマルチビュービデオコーディング（ＭＶＣ）拡張とを含む、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４を含む。さらに、新しいビデオコーディング規格、すなわち、それの範囲およびＳＣＣ拡張、３Ｄビデオコーディング（３Ｄ−ＨＥＶＣ）ならびにマルチビュー拡張（ＭＶ−ＨＥＶＣ）ならびにスケーラブル拡張（ＳＨＶＣ）を含む、高効率ビデオコーディング（ＨＥＶＣ）またはＩＴＵ−Ｔ  Ｈ．２６５が、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ：Video Coding Experts Group）とＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ：Motion Picture Experts Group）とのジョイントコラボレーションチームオンビデオコーディング（ＪＣＴ−ＶＣ）によって最近開発された。
【００３０】
[0034]ＨＥＶＣおよび他のビデオコーディング仕様では、ビデオシーケンスは一般に一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、ＳL、ＳCb、およびＳCrと示される３つのサンプルアレイを含み得る。ＳLはルーマサンプルの２次元アレイ（すなわち、ブロック）である。ＳCbはＣｂクロミナンスサンプルの２次元アレイである。ＳCrはＣｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【００３１】
[0035]ピクチャの符号化表現を生成するために、ビデオエンコーダ２０はコーディングツリーユニット（ＣＴＵ：coding tree unit）のセットを生成し得る。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの２つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＣＴＵは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックはサンプルのＮ×Ｎブロックであり得る。ＣＴＵは「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ：largest coding unit）と呼ばれることもある。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなど、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のＣＴＵを含み得る。
【００３２】
[0036]本開示は、１つまたは複数のサンプルブロックと、サンプルの１つまたは複数のブロックのサンプルをコーディングするために使用されるシンタックス構造とを指すために、「ビデオユニット」または「ビデオブロック」または「ブロック」という用語を使用し得る。例示的なタイプのビデオユニットは、ＣＴＵ、ＣＵ、ＰＵ、変換ユニット（ＴＵ）、マクロブロック、マクロブロック区分などを含み得る。いくつかのコンテキストでは、ＰＵの説明は、マクロブロックまたはマクロブロックパーティションの説明と交換され得る。例示的なタイプのビデオブロックは、コーディングツリーブロック、コーディングブロック、およびビデオデータの他のタイプのブロックを含み得る。
【００３３】
[0037]コード化ＣＴＵを生成するために、ビデオエンコーダ２０は、コーディングツリーブロックをコーディングブロックに分割するためにＣＴＵのコーディングツリーブロックに対して４分木区分を再帰的に実施し得、したがって「コーディングツリーユニット」という名称がある。コーディングブロックはサンプルのＮ×Ｎブロックである。ＣＵは、ルーマサンプルアレイとＣｂサンプルアレイとＣｒサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの２つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＣＵは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【００３４】
[0038]ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックである。ＣＵの予測ユニット（ＰＵ）は、ルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＰＵは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ２０は、ＣＵの各ＰＵの予測ブロック（たとえば、ルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロック）のための予測ブロック（たとえば、ルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロック）を生成し得る。
【００３５】
[0039]ビデオエンコーダ２０は、ＰＵのための予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ２０がＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵを含むピクチャの復号されたサンプルに基づいてＰＵの予測ブロックを生成し得る。
【００３６】
[0040]ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵのための予測ブロック（たとえば、ルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロック）を生成した後、ビデオエンコーダ２０は、ＣＵのための１つまたは複数の残差ブロックを生成し得る。たとえば、ビデオエンコーダ２０はＣＵのためのルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つ中のルーマサンプルとＣＵの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ２０はＣＵのためのＣｂ残差ブロックを発生し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルとＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はＣＵのためのＣｒ残差ブロックをも発生し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つ中のＣｒサンプルとＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００３７】
[0041]さらに、ビデオエンコーダ２０は、ＣＵの残差ブロック（たとえば、ルーマ残差ブロック、Ｃｂ残差ブロック、およびＣｒ残差ブロック）を１つまたは複数の変換ブロック（たとえば、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロック）に分解するために４分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形（たとえば、正方形または非正方形）ブロックである。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロックとＣｂ変換ブロックとＣｒ変換ブロックとを有し得る。ＴＵのルーマ変換ブロックはＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックはＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックはＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＴＵは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【００３８】
[0042]ビデオエンコーダ２０は、ＴＵのための係数ブロックを生成するためにＴＵの変換ブロックに１つまたは複数の変換を適用し得る。たとえば、ビデオエンコーダ２０は、ＴＵのためのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは変換係数の２次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ２０は、ＴＵのためのＣｂ係数ブロックを発生するために、ＴＵのＣｂ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵのためのＣｒ係数ブロックを生成するためにＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【００３９】
[0043]係数ブロック（たとえば、ルーマ係数ブロック、Ｃｂ係数ブロックまたはＣｒ係数ブロック）を生成した後に、ビデオエンコーダ２０は、係数ブロックを量子化し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。ビデオエンコーダ２０が係数ブロックを量子化した後に、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context-Adaptive Binary Arithmetic Coding）を実施し得る。
【００４０】
[0044]ビデオエンコーダ２０は、符号化ビデオデータを含むビットストリームを出力し得る。たとえば、ビットストリームは、コード化ピクチャおよび関連するデータの表現を形成するビットのシーケンスを備え得る。したがって、ビットストリームは、ビデオデータの符号化表現を備える。ビットストリームは、ネットワークアブストラクションレイヤ（ＮＡＬ：network abstraction layer）ユニットのシーケンスを備え得る。ＮＡＬユニットは、ＮＡＬユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが点在させられたローバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）の形態でそのデータを含んでいるバイトとを含んでいる、シンタックス構造である。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み得、ＲＢＳＰをカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを指示するシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの事例では、ＲＢＳＰはゼロビットを含む。
【００４１】
[0045]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。さらに、ビデオデコーダ３０は、ビットストリームからシンタックス要素を取得するために、ビットストリームをパースし得る。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ２０によって実施されるプロセスの逆であり得る。たとえば、ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックを決定するためにＰＵの動きベクトルを使用し得る。さらに、ビデオデコーダ３０は、現在ＣＵのＴＵの係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在ＣＵのＴＵの変換ブロックを再構成するために、係数ブロックに対して逆変換を実施し得る。ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックのサンプルを現在ＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在ＣＵのコーディングブロックを再構成し得る。ピクチャの各ＣＵのためのコーディングブロックを再構成することによって、ビデオデコーダ３０はピクチャを再構成し得る。
【００４２】
[0046]いくつかの例では、ビデオエンコーダ２０は、マージモードまたは高度動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）モードを使用して、インター予測を使用して符号化されたＰＵの動き情報をシグナリングし得る。言い換えれば、ＨＥＶＣでは、動きパラメータの予測のために２つのモードを含み、一方はマージモードであり、他方はＡＭＶＰである。動き予測は、１つまたは複数の他のビデオユニットの動き情報に基づく、ビデオユニット（たとえば、ＰＵ）の動き情報の決定を備え得る。ＰＵの動き情報は、ＰＵの（１つまたは複数の）動きベクトルと、ＰＵの（１つまたは複数の）参照インデックスと、予測方向とを含み得る。
【００４３】
[0047]ビデオエンコーダ２０が、マージモードを使用して現在ＰＵの動き情報をシグナリングするとき、ビデオエンコーダ２０はマージ候補リストを生成する。言い換えれば、ビデオエンコーダ２０は、動きベクトル予測子リスト構成プロセスを実施し得る。マージ候補リストは、現在ＰＵに空間的にまたは時間的に隣接するＰＵの動き情報を示すマージ候補のセットを含む。すなわち、マージモードでは、動きパラメータ（たとえば、参照インデックス、動きベクトルなど）の候補リストが構成され、ここで、候補は、空間隣接ブロックおよび時間隣接ブロックからのものであり得る。
【００４４】
[0048]さらに、マージモードでは、ビデオエンコーダ２０は、マージ候補リストからマージ候補を選択し得、選択されたマージ候補によって示された動き情報を現在ＰＵの動き情報として使用し得る。ビデオエンコーダ２０は、選択されたマージ候補のマージ候補リスト中の位置をシグナリングし得る。たとえば、ビデオエンコーダ２０は、インデックスを候補リスト中に送信することによって、選択された動きベクトルパラメータをシグナリングし得る。ビデオデコーダ３０は、ビットストリームから、候補リスト中へのインデックス（すなわち、候補リストインデックス）を取得し得る。さらに、ビデオデコーダ３０は、同じマージ候補リストを生成し得、選択されたマージ候補の位置の指示に基づいて、選択されたマージ候補を決定し得る。ビデオデコーダ３０は、次いで、現在ＰＵのための予測ブロックを生成するために、選択されたマージ候補の動き情報を使用し得る。ビデオデコーダ３０は、候補リストインデックスに少なくとも部分的に基づいて、候補リスト中の選択された候補を決定し得、ここにおいて、選択された候補は現在ＰＵのための動きベクトルを指定する。このように、デコーダ側では、インデックスが復号されると、インデックスが指す対応するブロックのすべての動きパラメータは、現在ＰＵによって継承され得る。
【００４５】
[0049]スキップモードはマージモードの特殊な場合と考えられ得る。スキップモードでは、ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオエンコーダ２０およびビデオデコーダ３０がマージモードでマージ候補リストを使用するのと同じようにマージ候補リストを生成し、使用する。しかしながら、ビデオエンコーダ２０が、スキップモードを使用して現在ＰＵの動き情報をシグナリングするとき、ビデオエンコーダ２０は、現在ＰＵのための残差データをシグナリングしない。したがって、ビデオデコーダ３０は、残差データを使用せずに、マージ候補リスト中の選択された候補の動き情報によって示される参照ブロックに基づいて、ＰＵのための予測ブロックを決定し得る。
【００４６】
[0050]ＡＭＶＰモードは、ビデオエンコーダ２０が候補リストを生成し得、候補リストから候補を選択し得るという点で、マージモードと同様である。ただし、ビデオエンコーダ２０がＡＭＶＰモードを使用して現在ＰＵの参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔＸ）動き情報をシグナリングするとき、ビデオエンコーダ２０は、現在ＰＵのためのＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＰフラグをシグナリングすることに加えて、現在ＰＵのためのＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＤと、現在ＰＵのためのＲｅｆＰｉｃＬｉｓｔＸ参照インデックスとをシグナリングし得る。現在ＰＵのためのＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＰフラグは、ＡＭＶＰ候補リスト中の選択されたＡＭＶＰ候補の位置を示し得る。現在ＰＵのためのＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＤは、現在ＰＵのＲｅｆＰｉｃＬｉｓｔＸ動きベクトルと選択されたＡＭＶＰ候補の動きベクトルとの間の差分を示し得る。このようにして、ビデオエンコーダ２０は、ＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＰフラグと、ＲｅｆＰｉｃＬｉｓｔＸ参照インデックス値と、ＲｅｆＰｉｃＬｉｓｔＸ  ＭＶＤとをシグナリングすることによって、現在ＰＵのＲｅｆＰｉｃＬｉｓｔＸ動き情報をシグナリングし得る。言い換えれば、現在ＰＵのための動きベクトルを表す、ビットストリーム中のデータは、参照インデックスと、候補リストへのインデックスと、ＭＶＤとを表すデータを含み得る。
【００４７】
[0051]さらに、現在ＰＵの動き情報が、ＡＭＶＰモードを使用してシグナリングされるとき、ビデオデコーダ３０は、ビットストリームから、現在ＰＵのためのＭＶＤと、ＭＶＰフラグとを取得し得る。ビデオデコーダ３０は、同じＡＭＶＰ候補リストを生成し得、ＭＶＰフラグに基づいて、選択されたＡＭＶＰ候補を決定し得る。ビデオデコーダ３０は、ＭＶＤを、選択されたＡＭＶＰ候補によって示される動きベクトルに加算することによって、現在ＰＵの動きベクトルを復元し得る。すなわち、ビデオデコーダ３０は、選択されたＡＭＶＰ候補によって示される動きベクトルと、ＭＶＤとに基づいて、現在ＰＵの動きベクトルを決定し得る。ビデオデコーダ３０は、次いで、現在ＰＵのための予測ブロックを生成するために、復元された動きベクトル、または現在ＰＵの動きベクトルを使用し得る。
【００４８】
[0052]現在ＰＵに時間的に隣接するＰＵ（すなわち、現在ＰＵとは異なる時間インスタンス中にあるＰＵ）の動き情報に基づくマージ候補リストまたはＡＭＶＰ候補リスト中の候補は、時間動きベクトル予測子（ＴＭＶＰ：temporal motion vector predictor）と呼ばれることがある。ＴＭＶＰを決定するために、ビデオコーダ（たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０）は、現在ＰＵとコロケートされたＰＵを含む参照ピクチャを最初に識別し得る。言い換えれば、ビデオコーダはコロケートピクチャを識別し得る。現在ピクチャの現在スライスがＢスライス（すなわち、双方向インター予測されたＰＵを含むことが可能にされるスライス）である場合、ビデオエンコーダ２０は、コロケートピクチャがどの参照ピクチャリストからのものであるか（たとえば、ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）を示すシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ）をスライスヘッダ中でシグナリングし得る。ビデオデコーダ３０が、コロケートピクチャを含む参照ピクチャリストを識別した後、ビデオデコーダ３０は、識別された参照ピクチャリスト中のコロケート参照ピクチャを識別するために、スライスヘッダ中でシグナリングされ得る別のシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ）を使用し得る。
【００４９】
[0053]ビデオコーダは、（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素によって示されるように）参照ピクチャインデックスによって識別される参照ピクチャを検査することによって、コロケートＰＵを識別し得る。ＴＭＶＰは、コロケートＰＵを含んでいるＣＵの右下ＰＵの動き情報、またはこのＰＵを含んでいるＣＵの中心ＰＵ内の右下ＰＵの動き情報のいずれかを示し得る。コロケートＰＵを含んでいるＣＵの右下ＰＵは、ＰＵの予測ブロックの右下サンプルのすぐ下および右のロケーションをカバーするＰＵであり得る。言い換えれば、ＴＭＶＰは、参照ピクチャ中にあり、現在ＰＵの右下コーナーとコロケートされたロケーションをカバーする、ＰＵの動き情報を示し得るか、またはＴＭＶＰは、参照ピクチャ中にあり、現在ＰＵの中心とコロケートされたロケーションをカバーする、ＰＵの動き情報を示し得る。
【００５０】
[0054]上記のプロセスによって識別される動きベクトルが、マージモードまたはＡＭＶＰモードのための動き候補を生成するために使用される場合（When）、動きベクトルは、（ピクチャ順序カウント（ＰＯＣ：picture order count）値によって反映される）時間的ロケーションに基づいてスケーリングされ得る。たとえば、ビデオコーダは、参照ピクチャと現在ピクチャのＰＯＣ値との差分がより大きいとき、参照ピクチャと現在ピクチャのＰＯＣ値との差分がより小さいときよりも大きな量だけ動きベクトルの大きさを増加させ得る。ＨＥＶＣでは、シーケンスパラメータセット（ＳＰＳ）はｓｐｓ＿ｅｎａｂｌｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｆｌａｇシンタックス要素を含む。ｓｐｓ＿ｅｎａｂｌｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｆｌａｇシンタックス要素は、時間動きベクトル予測子が使用され得るか否かを指定する。
【００５１】
[0055]リモートデスクトップ、リモートゲーミング、ワイヤレスディスプレイ、自動車インフォテインメント、クラウドコンピューティングなど、多くの適用例が、日常個人生活においてありふれたものになりつつある。これらの適用例におけるビデオコンテンツは、一般に、自然コンテンツ、テキスト、人工グラフィックスなどの組合せである。テキストおよび人工グラフィックスでは、コンテンツの１つまたは複数の領域は、（数例を挙げると、文字、アイコン、およびシンボルなどの）繰返しパターンを含み得、しばしば存在する。イントラブロックコピー（ＢＣ：block copying）は、この種類の冗長の削除を可能にし、それにより、ピクチャ内コーディング効率を潜在的に改善する、技法である。イントラＢＣプロセスはＨＥＶＣ範囲拡張規格において採用された（これは、以後、ＨＥＶＣのスクリーンコンテンツコーディング（ＳＣＣ）拡張に移された）。
【００５２】
[0056]イントラＢＣ技法を使用してビデオデータの現在ブロックを予測するために、ビデオコーダは、ビデオデータの現在ブロックと同じピクチャ内にあるビデオデータの予測ブロック（すなわち、前にコーディングされたビデオデータのブロック）を識別するブロックベクトルを決定し得る。一例として、ビデオエンコーダは、ビデオデータの現在ブロックにぴったり一致することがわかる、前にコーディングされたビデオデータのブロックとして予測ブロックを選択し、現在ブロックに対する予測ブロックの位置を示すブロックベクトルを生成し得る。別の例として、ビデオデコーダは、現在ブロックに対する予測ブロックの位置を示すブロックベクトルの指示を受信し得る。
【００５３】
[0057]イントラＢＣを使用してコーディングされた現在コーディングユニット（ＣＵ）の場合、ビデオエンコーダ２０は、同じピクチャ中の探索領域から（「予測ブロック」と呼ばれることもある）予測信号を取得し得る。いくつかの事例では、ビデオエンコーダ２０は、現在ＣＵから変位された予測ブロックの位置を示すベクトル、たとえば、ブロックベクトル１０６を符号化し得る。いくつかの例では、ブロックベクトルは、現在ＣＵの左上コーナーの位置に対する予測ブロックの左上コーナーの位置を示し得る。ブロックベクトルは、いくつかの事例では、オフセットベクトル、変位ベクトル、または動きベクトルと呼ばれることもある。ビデオエンコーダ２０はまた、現在ビデオブロックのピクセル値と予測ブロック中の予測サンプルとの間の差分を示す残差データを符号化し得る。
【００５４】
[0058]概して、イントラＢＣコーディングモードは、特殊な形態のインター予測と考えられ得る。インター予測とは異なり、他のピクチャから予測ブロックを取得するのではなく（rather than）、イントラＢＣコーディング技法は、同じピクチャから予測ブロックを取得する。しかしながら、インター予測とは異なり、イントラＢＣは時間動きベクトル予測子を使用しない。これは、イントラＢＣでは、参照ピクチャが現在ピクチャであるからである。
【００５５】
[0059]ＨＥＶＣ  ＳＣＣ仕様の前のバージョン、Ｒ．Ｊｏｓｈｉら、「High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 6」、ＩＴＵ−Ｔ  ＳＧ１６ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのジョイントコラボレーティブチームオンビデオコーディング（ＪＣＴ−ＶＣ）、第２３回会合、サンディエゴ、米国、２０１６年２月１９〜２６日（以下「ＪＣＴＶＣ−Ｗ１００５−ｖ１」）では、スライスセグメントヘッダがｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇシンタックス要素とｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素とを含み得る。ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は、スライスセグメントヘッダが、スライスセグメントヘッダのためのシンタックステーブルの以下の部分に示されているように、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素を含む特定のシンタックス要素を含むかどうかを示す。
【００５６】
【表１】
2019514292.tif 000003
【００５７】
[0060]ＪＣＴＶＣ−Ｗ１００５−ｖ１のセクション７．４．７．１からの以下のテキストは、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇについて説明する。
【００５８】
ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、時間動きベクトル予測子がインター予測のために使用され得るかどうかを指定する。ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しい場合、現在ピクチャのシンタックス要素は、時間動きベクトル予測子が現在ピクチャの復号において使用されないように制約されるものとする。他の場合（ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しい）、時間動きベクトル予測子は現在ピクチャの復号において使用され得る。存在しないとき、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推論される。
【００５９】
ｃｕｒｒＬａｙｅｒＩｄを現在ＮＡＬユニットのｎｕｈ＿ｌａｙｅｒ＿ｉｄに等しいとする。ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇとＴｅｍｐｏｒａｌＩｄの両方が０に等しいとき、復号順序において現在ピクチャに先行する（precedes）ｃｕｒｒＬａｙｅｒＩｄに等しいｎｕｈ＿ｌａｙｅｒ＿ｉｄをもつ任意のピクチャからの時間動きベクトルが、復号順序において現在ピクチャに後続する（follows）任意のコード化ピクチャの復号において使用されないように、復号順序において現在ピクチャに後続する、ｃｕｒｒＬａｙｅｒＩｄに等しいｎｕｈ＿ｌａｙｅｒ＿ｉｄをもつすべてのコード化ピクチャのためのシンタックス要素が制約されるものとする。
【００６０】
注１  −  Ｉスライス中でｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しいとき、それは、ピクチャの規範的復号プロセスに影響を与えず、ビットストリーム制約を表すにすぎない。
【００６１】
注２  −  ０に等しいＴｅｍｐｏｒａｌＩｄをもつスライス中でｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しいとき、デコーダは、復号ピクチャバッファ中の、ｃｕｒｒＬａｙｅｒＩｄに等しいｎｕｈ＿ｌａｙｅｒ＿ｉｄをもつすべての参照ピクチャのための「動きベクトルストレージ」を空にし得る。
【００６２】
[0061]ＪＣＴＶＣ−Ｗ１００５−ｖ１の以下のテキストは、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇシンタックス要素およびｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素について説明する。
【００６３】
１に等しいｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇは、時間動きベクトル予測のために使用されるコロケートピクチャが参照ピクチャリスト０から導出されることを指定する。０に等しいｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇは、時間動きベクトル予測のために使用されるコロケートピクチャが参照ピクチャリスト１から導出されることを指定する。ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが存在しないとき、それは１に等しいと推論される。
【００６４】
ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘは、時間動きベクトル予測のために使用されるコロケートピクチャの参照インデックスを指定する。
【００６５】
ｓｌｉｃｅ＿ｔｙｐｅがＰに等しいとき、またはｓｌｉｃｅ＿ｔｙｐｅがＢに等しく、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが１に等しいとき、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘはリスト０中のピクチャを参照し、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値は、両端値を含む０〜ｎｕｍ＿ｒｅｆ＿ｉｄｘ＿ｌ０＿ａｃｔｉｖｅ＿ｍｉｎｕｓ１の範囲内にあるものとする。
【００６６】
ｓｌｉｃｅ＿ｔｙｐｅがＢに等しく、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが０に等しいとき、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘはリスト１中のピクチャを参照し、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値は、両端値を含む０〜ｎｕｍ＿ｒｅｆ＿ｉｄｘ＿ｌ１＿ａｃｔｉｖｅ＿ｍｉｎｕｓ１の範囲内にあるものとする。
【００６７】
ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘが存在しないとき、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値は０に等しいと推論される。
【００６８】
ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが、コード化ピクチャのすべてのスライスについて同じであるものとし、現在ピクチャ自体でないものとすることが、ビットストリーム適合の要件である。
【００６９】
[0062]概して、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、時間動きベクトル予測子の使用がスライスのために可能にされるか否かを示す。時間動きベクトル予測子がスライスのために可能にされる場合、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素の値は、時間動きベクトル予測のために使用される参照ピクチャのためのインデックスである。
【００７０】
[0063]ＪＣＴＶＣ−Ｗ１００５−ｖ１の節７．４．７．１は、以下のように、値の推論とビットストリーム適合制約とを含む、シンタックス要素ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘのセマンティクスを定義する。
【００７１】
存在しないとき、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値は０に等しいと推論される。
【００７２】
ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが、コード化ピクチャのすべてのスライスについて同じであるものとし、現在ピクチャ自体でないものとすることが、ビットストリーム適合の要件である。
【００７３】
[0064]このビットストリーム適合制約は、場合によっては、ビットストリームに対する（on）いくつかの（some）不要な制限を生じ、場合によっては、コーディング効率に影響を及ぼす。一例として、現在ピクチャ中のスライスが２つの時間参照ピクチャＴ０およびＴ１を使用することについて考える（ここで、Ｔ０および／またはＴ１は、現在ピクチャ自体であることも現在ピクチャ自体でないこともある）。現在ピクチャ中に２つのスライスがあることについても考える。ＪＣＴＶＣ−Ｗ１００５−ｖ１によって定義されているように、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが各スライスについて値０をとる場合、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値は各スライスについて０であると推論される。この場合、スライスのための参照ピクチャリスト（ＲＰＬ：reference picture list）の以下の構成が、ＪＣＴＶＣ−Ｗ１００５−ｖ１のビットストリーム適合制約によって禁止される。
【００７４】
【表２】
2019514292.tif 000004
【００７５】
[0065]これは、０のｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘが、スライス０の場合Ｔ０を指し、スライス１の場合Ｔ１を指す（points to）からである。したがって、両方のスライスのＲＰＬ中の第１のエントリを同じになるようにするために、参照ピクチャ並べ替えまたは何らかの他の機構を使用することが必要であり得る。これは潜在的に不要であり、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値が０である（すなわち、時間予測子がスライスのために使用されない）とき、ビットを浪費し得る。この場合、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ、およびｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャは、時間予測子が使用されないので、再構成されたピクチャに対する影響を有さず、したがって、そのような時間予測子を含んでいる参照ピクチャへのインデックスは、それらの特定のスライスを必要としない。
【００７６】
[0066]ＪＣＴＶＣ−Ｗ１００５−ｖ１のビットストリーム制約が不要であり得る別の例は、少なくとも１つのＩスライスがピクチャ中に存在するときである。ＨＥＶＣのいくつかの例では、Ｉスライスは、Ｉスライスがイントラ予測を使用してコーディングされるにすぎないので、参照としての現在ピクチャの使用を許可しないことに留意されたい。
【００７７】
【表３】
2019514292.tif 000005
【００７８】
[0067]同じく、この場合、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値は、０であると推論されることになる。Ｉスライスの場合、参照ピクチャリストがないので、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって指されるピクチャは定義さえされず、もちろん、使用されない。したがって、この例では、ビットストリーム適合制約の適合検査は不可能である。
【００７９】
[0068]ＪＣＴＶＣ−Ｗ１００５−ｖ１のビットストリーム制約が不要であり得る別の例は、少なくとも１つのＩスライス（イントラスライスタイプ）が存在し、以下のように、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しい（すなわち、時間予測子が可能にされる）ピクチャの場合である。
【００８０】
【表４】
2019514292.tif 000006
【００８１】
[0069]この場合、（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値によって示されるような）コロケートピクチャは、Ｐスライスタイプ（Ｐインタースライスタイプ）の場合、導出され、Ｉスライスタイプの場合、未定義であり、したがって、適合検査を実施することが可能でない。Ｐスライスタイプは、単方向インター予測および／またはイントラ予測を使用してコーディングされ得るスライスである。Ｂスライスタイプ（Ｂインタースライスタイプ）は、単方向インター予測、双方向インター予測、および／またはイントラ予測を使用してコーディングされ得るスライスである。
【００８２】
[0070]概して、ＪＣＴＶＣ−Ｗ１００５−ｖ１の例を含む、ＨＥＶＣのためのいくつかの例示的な提案における現在の適合検査の場合、ビットストリームが常に少なくとも１つのＩスライスを有するので、すべてのビットストリームが適合するとは限らない。したがって、コロケートピクチャ適合検査は、ＪＣＴＶＣ−Ｗ１００５−ｖ１の制約を使用して実施することが可能でない。
【００８３】
[0071]上記に鑑みて、本開示は、シンタックス要素のそれらのインスタンスが復号プロセスに影響を与える場合のみの、シンタックス要素（およびシンタックス要素から導出された変数）のためのビットストリーム適合検査について説明する。変数およびシンタックス要素が復号結果に影響を及ぼさない場合、ビットストリーム適合検査は実施されない。
【００８４】
[0072]たとえば、コロケート参照ピクチャインデックスシンタックス要素適合検査（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素に対するビットストリーム適合検査）の場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、パラメータ（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素）が復号プロセスに影響を与えないかまたは適合検査からの復号出力を変更しない場合を除外するように構成され得る。すなわち、ビデオエンコーダ２０および／またはビデオデコーダ３０は、以下で定義される状況においてのみ、適合検査を実施し得る。
【００８５】
[0073]一例では、本開示は、以下のように、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しいとき（すなわち、時間動きベクトル予測子がスライスのために可能にされるとき）のみ、ビットストリーム適合制約が適用されるように、ビットストリーム適合制約を変更することを提案する。
【００８６】
ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しいとき、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが、コード化ピクチャのすべてのスライスについて同じであるものとし、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが現在ピクチャ自体でないものとすることが、ビットストリーム適合の要件である。
【００８７】
[0074]この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、時間動きベクトル予測子がスライスのために可能にされるときのみ、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値に対してビットストリーム適合検査を実施し得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、時間動きベクトル予測子がスライスのために可能にされないとき、適合検査を実施しない。ビデオエンコーダ２０および／またはビデオデコーダ３０は、特定のスライスのためのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値がすべての他のスライスのためのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘと同じピクチャを指すことを検証するために、ビットストリーム適合検査を実施し得る。参照ピクチャリスト管理プロセスにより、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘは、異なるスライスについて異なる値を有し得るが、依然として、同じ参照ピクチャを指し得ることに留意されたい。すなわち、異なるスライスは、異なる順序で参照ピクチャにインデックス値を割り当て得る。ビットストリーム適合検査はまた、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値が現在ピクチャ自体を参照していないことを検証する。
【００８８】
[0075]ビデオエンコーダ２０は、各スライスヘッダのためのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値を生成した後に、ビットストリーム適合検査を実施するように構成され得る。言い換えれば、ビデオエンコーダ２０は、ビデオエンコーダ２０がｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘに割り当てた値が、あらかじめ定義されたビットストリーム適合の基準を満たすことを検証するために、ビットストリーム適合検査を実施するように構成され得る。そのようなプロセスは、上記で定義されたビットストリーム適合制約のために、または以下で説明される例のいずれかのために使用され得る。
【００８９】
[0076]ビデオデコーダ３０は、受信された符号化ビデオビットストリームに対してビットストリーム適合検査を実施するように構成され得る。ビデオデコーダ３０が、（受信されたのか推論されたのかにかかわらず（whether received or inferred））ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素の値を決定するためにスライスヘッダを受信およびパースした後に、ビデオデコーダ３０は、値が、あらかじめ定義された適合制約を満たす（たとえば、ピクチャのためのすべてのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素が同じ参照ピクチャを指す）ことを検証するために、特定のスライスのためのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素の値を同じピクチャの他のスライスのためのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素の値と比較し得る。ビデオデコーダ３０が、ビットストリームが適合検査に合格したと決定した場合、ビデオデコーダ３０は、通常通り復号に進み得る。ビデオデコーダ３０が、ビットストリームが適合検査に合格しないと決定した場合、ビデオデコーダ３０はエラーをロギングし得る。ビデオデコーダ３０は、ビットストリーム適合検査が満たされない場合でも、依然として、ビットストリームを復号することを試み得る。
【００９０】
[0077]別の例では、本開示は、ビデオエンコーダ２０および／またはビデオデコーダ３０が、以下のように、スライスタイプ（たとえば、スライスタイプシンタックス要素の値）とｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値の両方を考慮に入れるように、ビットストリーム適合制約を変更することを提案する。
【００９１】
ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値が１に等しく、ｓｌｉｃｅ＿ｔｙｐｅが２に等しくないコード化ピクチャのすべてのスライスについて同じであるものとすることが、ビットストリーム適合の要件である。さらに、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値が１に等しいとき、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャは、現在ピクチャ自体でないものとする。
【００９２】
[0078]この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、時間動きベクトル予測子がスライスのために可能にされるとき、およびスライスタイプがイントラスライスタイプでないときのみ、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値に対してビットストリーム適合検査を実施し得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、時間動きベクトル予測子がスライスのために可能にされないとき、またはスライスタイプがイントラスライスタイプであるとき、適合検査を実施しない。ＪＣＴＶＣ−Ｗ１００５−ｖ１において定義されているように、２の値を有するシンタックス要素ｓｌｉｃｅ＿ｔｙｐｅはイントラスライスタイプ（Ｉスライス）を示す。したがって、ビデオエンコーダ２０は、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘが、スライスタイプＰまたはＢ（たとえば、非イントラ）のものであり、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値が１に等しい（すなわち、時間動きベクトル予測子が有効にされた）スライスのためにのみ、同じピクチャを参照するものとするという制約を課する。上記で説明されたように、ビデオデコーダ３０は、受信されたビデオ符号化ビットストリームに対して同じ適合検査を実施し得る。
【００９３】
[0079]ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値が０に等しい（すなわち、時間動きベクトル予測子が有効にされない）とき、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャは、再構成されたピクチャに影響を及ぼさない。したがって、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャは、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値が１に等しいときのみ、現在ピクチャでないものとする。
【００９４】
[0080]上記で説明されたように、ＪＣＴＶＣ−Ｗ１００５−ｖ１では、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘのセマンティクスにおける節７．４．７．１では、以下のように示すビットストリーム適合制約がある。
【００９５】
ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが、コード化ピクチャのすべてのスライスについて同じであるものとし、現在ピクチャ自体でないものとすることが、ビットストリーム適合の要件である。
【００９６】
[0081]この制約は、（最終）参照ピクチャリスト（ＲＰＬ）中に現在ピクチャのみをもつスライスがある場合、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０であるものとすることを暗示する。ピクチャ中のすべてのスライスがｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの同じ値を有することもビットストリーム適合要件であるので、それは、（最終）ＲＰＬ中に現在ピクチャのみをもつ少なくとも１つのスライスがある場合、ピクチャのすべてのスライスについて、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値が０であるものとすることを暗示する。上記の記述は、本開示の前の例において明記されているように、ビットストリーム適合制約が変更される場合でも、真である。
【００９７】
[0082]ＨＥＶＣのいくつかの例では、ピクチャのためのＴｅｍｐｏｒａｌＩｄが０である場合、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇのセマンティクスに従って、同じレイヤ中の復号順序において後のピクチャは、復号順序において現在ピクチャの前のピクチャからの時間動きベクトル予測子を使用しないものとする。これは、デコーダ（たとえば、ビデオデコーダ３０）が復号順序において以前のピクチャの動きベクトル情報をフラッシュする（flush）ことを可能にし得る。以前は（ＨＥＶＣ規格の以前のバージョンによれば）、ビデオエンコーダは、誤り耐性（resilience）目的で動きベクトル情報のフラッシングを有効にすべきかどうかを制御し、コーディング効率と誤り耐性との間の最適トレードオフを行うことができた。ＪＣＴＶＣ−Ｗ１００５−ｖ１の提案される技法では、このフレキシビリティは、現在ピクチャが（最終）参照ピクチャリスト（ＲＰＬ）中の現在ピクチャのみをもつ少なくとも１つのスライスを含んでいるときはいつでも失われる。そのフレキシビリティを保つために、ビデオエンコーダは、現在ピクチャ以外の何らかのピクチャをＲＰＬ中に含めなければならないことになる。現在ピクチャ自体を指すアクティブ参照インデックスのみを有することが望ましい場合、ＲＰＬ中に何らかの（some）他のピクチャを追加することは、ブロックレベルにおいて参照インデックスのシグナリングを不必要に必要とし（require）、したがって、著しいコーディングオーバーヘッドを生じることになる。
【００９８】
[0083]上記に鑑みて、本開示は以下の追加の技法を提案する。ＪＣＴＶＣ−Ｗ１００５−ｖ１の節７．４．７．１中のビットストリーム適合制約は、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘのセマンティクスにおいて、以下のように変更され得る。以下のテキストは、ＪＣＴＶＣ−Ｗ１００５−ｖ１のＨＥＶＣ  ＳＣＣ仕様に対する例示的な変更、および／または上記で説明された技法のうちのいくつかに対する例示的な変更を示す。挿入されるテキストは、＜ｉｎｓｅｒｔ＞タグと＜／ｉｎｓｅｒｔ＞タグとの間に示される。削除されるテキストは、＜ｄｅｌｅｔｅ＞タグと＜／ｄｅｌｅｔｅ＞タグとの間に示される。
【００９９】
＜ｉｎｓｅｒｔ＞ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しいとき、＜／ｉｎｓｅｒｔ＞ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが、コード化ピクチャのすべてのスライスについて同じであるものとする＜ｄｅｌｅｔｅ＞および現在ピクチャ自体でないものとする＜／ｄｅｌｅｔｅ＞ことが、ビットストリーム適合の要件である。
【０１００】
[0084]別の例では、上記で説明された変更ビットストリーム適合制約は、以下のように変更され得る。
【０１０１】
ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値が１に等しく、ｓｌｉｃｅ＿ｔｙｐｅが２に等しくないコード化ピクチャのすべてのスライスについて同じであるものとすることが、ビットストリーム適合の要件である＜ｄｅｌｅｔｅ＞さらに、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値が１に等しいとき、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャは、現在ピクチャ自体でないものとする＜／ｄｅｌｅｔｅ＞。
【０１０２】
[0085]さらに、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘが現在ピクチャを参照する場合、時間動きベクトル予測候補は、利用不可能として扱われる。これは、ＪＣＴＶＣ−Ｗ１００５−ｖ１に対する以下の変更によって達成され得る。
８．５．３．２．８  時間ルーマ動きベクトル予測のための導出プロセス
このプロセスへの入力は以下の通りである。
−  現在ピクチャの左上ルーマサンプルに対する、現在のルーマ予測ブロックの左上サンプルを指定するルーマロケーション（ｘＰｂ，ｙＰｂ）、
−  ルーマ予測ブロックの幅および高さを指定する２つの変数ｎＰｂＷおよびｎＰｂＨ、
−  Ｘが０または１である、参照インデックスｒｅｆＩｄｘＬＸ。
このプロセスの出力は、以下の通りである。
−  動きベクトル予測ｍｖＬＸＣｏｌ、
−  利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌ。
変数ｃｕｒｒＰｂは、ルーマロケーション（ｘＰｂ，ｙＰｂ）における現在ルーマ予測ブロックを指定する。
変数ｍｖＬＸＣｏｌおよびａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは、以下のように導出される。
−  ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しい場合、ｍｖＬＸＣｏｌの両方の成分は０に等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
＜ｉｎｓｅｒｔ＞そうではなく、参照ピクチャが現在ピクチャである場合、ｍｖＬＸＣｏｌの両方の成分は０に等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される＜／ｉｎｓｅｒｔ＞。
−  他の場合（ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しい）、以下の順序付きステップが適用される。
・・・
[0086]他の例では、コロケートピクチャのための適合検査は、以下のように変更され得る。以下の例は、任意の組合せで互いに実施され得る。
【０１０３】
[0087]一例では、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素の定義は、以下を具陳するようにＪＣＴＶＣ−Ｗ１００５−ｖ１において変更され得る。＜ｉｎｓｅｒｔ＞存在せず、ｓｌｉｃｅ＿ｔｙｐｅが２に等しくないとき、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値は０に等しいと推論される。＜／ｉｎｓｅｒｔ＞スライスタイプがＩである（すなわち、ｓｌｉｃｅ＿ｔｙｐｅが２に等しい）とき、ビデオエンコーダ２０および／またはビデオデコーダ３０はコロケート参照インデックスを推論せず、適合検査は、コロケート参照インデックスのために実施されない。言い換えれば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、スライスのためのスライスタイプがイントラスライスでないとき、適合検査を実施するように構成される。
【０１０４】
[0088]本開示の別の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、コロケートピクチャが復号プロセスにおいて必要とされるかまたは関係するときのみ、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素の値のための適合検査を実施するように構成される。ビデオエンコーダ２０および／またはビデオデコーダ３０は、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素が適合検査に合格することが可能であるような方法で、スライスのためのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素の値を導出するように構成される。たたとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ピクチャ中のＩスライスについて導出されるあるコロケートピクチャを導出するように構成され得る。そのようなコロケートピクチャはＩスライスのために必要とされないが、それはすべてのスライスについて同じであり、したがって、適合検査が満たされる。コロケートピクチャは、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値にかかわらず、Ｉスライスのために必要とされず、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しい（すなわち、時間動きベクトル予測子が可能にされない）とき、非Ｉスライスのために必要とされない。
【０１０５】
[0089]本開示の別の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しく（すなわち、時間動きベクトル予測子が有効にされ）、ピクチャのスライスのスライスタイプがＩスライスタイプ以外である（たとえば、ｓｌｉｃｅ＿ｔｙｐｅが２に等しくない）場合のみ、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘに対して適合検査を実施するように構成され得る。
【０１０６】
[0090]本開示の別の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しく（すなわち、時間動きベクトル予測子が有効にされ）、ピクチャのスライスのスライスタイプがＩスライスタイプ以外であり（たとえば、ｓｌｉｃｅ＿ｔｙｐｅが２に等しくなく）、スライスが現在ピクチャ以外の参照ピクチャを有する場合のみ、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘに対して適合検査を実施するように構成され得る。現在ピクチャが唯一の参照ピクチャである場合、それは、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値にかかわらず、コロケートピクチャであり得ない。この場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、そのようなスライスのためのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘに対して適合検査を実施しないように構成され得る。
【０１０７】
[0091]本開示の別の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、コロケートピクチャがスライスの復号プロセスにおいて使用されるか、またはスライス復号出力において影響を与える場合のみ、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘに対して適合検査を実施するように構成され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０が、コロケートピクチャを導出するが、スライス中のコロケートピクチャを使用しないように構成された場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、そのようなピクチャのための参照インデックス（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ）のための適合検査をスキップするように構成され得る。
【０１０８】
[0092]本開示の別の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、導出されたコロケートピクチャのためにのみｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘに対して適合検査を実施するように構成され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０がいくつかのスライスのためのコロケートピクチャを導出しない場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘのための適合検査を実施し（perform）ないことがある。
【０１０９】
[0093]本開示の別の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しいとき（すなわち、時間動きベクトル予測子が有効にされたとき）、そのスライスのためにのみｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘに対して適合検査を実施するように構成され得る。
【０１１０】
[0094]ＪＣＴＶＣ−Ｗ１００５−ｖ１では、ピクチャ内のいくつかのスライスは、現在ピクチャのみを参照として使用し得るが、同じピクチャ中の他のスライスは、時間ピクチャならびに現在ピクチャを参照として使用し得る。現在ピクチャ以外の（１つまたは複数の）ピクチャを参照として使用するスライスの場合、（コーディング効率観点から）時間動きベクトル予測（ｍｖｐ）候補（たとえば、時間動きベクトル予測子）の使用を可能にすることが望ましいことがある。これは、シンタックス要素ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが、そのようなスライスの場合、１に等しい値（すなわち、時間動きベクトル予測子が有効にされた）を有すべきであることを暗示する。ＪＣＴＶＣ−Ｗ１００５−ｖ１によれば、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値がコード化ピクチャのすべてのスライスセグメントヘッダについて同じであるものとすることが、規範的要件（normative requirement）である。したがって、コード化ピクチャの１つのスライスが時間ｍｖｐ候補を使用する場合、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、そのコード化ピクチャのすべてのスライスセグメントヘッダについて値１を有すべきである。
【０１１１】
[0095]一方、ＪＣＴＶＣ−Ｗ１００５−ｖ１は、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘが、時間動きベクトル予測のために使用されるコロケートピクチャの参照インデックスを示すことを明記している。上記で説明されたように、ＪＣＴＶＣ−Ｗ１００５−ｖ１は、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが、コード化ピクチャのすべてのスライスについて同じであるものとし、現在ピクチャ自体でないものとすることが、ビットストリーム適合の要件であることを示す。
【０１１２】
[0096]ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇおよびｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素に対する制約に基づいて、ＪＣＴＶＣ−Ｗ１００５−ｖ１は、スライスのうちの１つが現在ピクチャのみを参照として有する場合、そのスライスのための時間動きベクトル予測が無効にされることか、または等価的に、そのスライスのためのｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが値０を有することが規範的要件であることを暗示する。これは、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇがそのピクチャのすべてのスライスセグメントヘッダについて値０を有することを暗示する。
【０１１３】
[0097]したがって、ＪＣＴＶＣ−Ｗ１００５−ｖ１によれば、ピクチャのスライスのうちの１つが現在ピクチャのみを参照として使用する場合、時間動きベクトル予測がそのピクチャ中のすべてのスライスについて無効にされることが規範的要件である。すなわち、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、そのピクチャのすべてのスライスセグメントヘッダについて値０を有する。上述のように、これは、コーディング効率の損失につながり得る。
【０１１４】
[0098]コーディング効率観点からより効率的でない代替ソリューションは、現在ピクチャのみを参照として使用するスライスについて、ＪＣＴＶＣ−Ｗ１００５−ｖ１の現在の制約を満たすために追加の時間参照が導入されることである。ビデオエンコーダは、現在の仕様の場合のように任意の動きベクトルをシグナリングする能力に影響を及ぼすことなしに、追加の時間参照の使用を回避し得る。しかしながら、このシナリオでは、参照インデックスは、推論されるのではなく、シグナリングされる必要があり、それにより、コーディング効率の損失につながる。
【０１１５】
[0099]本開示の技法は、時間参照ピクチャを使用するスライスのための時間動きベクトル予測の使用を有効にする。したがって、本開示は、時間ＭＶＰの使用がスライスごとに（on a slice-by-slice basis）決定され得ることと、ビデオエンコーダ２０および／またはビデオデコーダ３０が、同じピクチャの異なるスライスについて別様に（differently）時間ＭＶＰを使用するための決定を行い得ることとについて説明する。さらに、本開示は、１に等しいｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇを有する同じピクチャ内のスライスについて、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘが同じであるものとすることについて説明する。ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇとｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘとに対する規範的要件は、以下で説明されるように変更される。
【０１１６】
[0100]たとえば、ビデオエンコーダ２０はビデオデータを符号化し得る。この例では、ビデオエンコーダ２０はビデオデータのピクチャの第１のスライスを符号化し得る。さらに、この例では、ビデオエンコーダ２０は、同じピクチャの第２のスライスを符号化し得る。第１のスライスを符号化することの一部として、ビデオエンコーダ２０は、第１のスライスのためのスライスヘッダ中に、時間動きベクトル予測が第１のスライスについて有効にされたことを示すシンタックス要素を含め得る。第２のスライスを符号化することの一部として、ビデオエンコーダ２０は、第２のスライスのためのスライスヘッダ中に、時間動きベクトル予測が第２のスライスについて無効にされたことを示すシンタックス要素を含め得る。（スライスセグメントヘッダはスライスヘッダとも呼ばれ得る。）したがって、ビデオエンコーダ２０は、ピクチャのスライスのスライスヘッダ中に、時間動きベクトル予測がスライスのいくつかについて有効にされるが、ピクチャのスライスの他のスライスについて有効にされないことを示すシンタックス要素を含め得る。本開示のいくつかの例では、時間動きベクトル予測が有効にされたピクチャの各スライスについて、ビデオエンコーダ２０は、ビットストリーム中に、同じ参照ピクチャが時間動きベクトル予測のために使用されることを示すシンタックス要素（たとえば、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ）を含める。
【０１１７】
[0101]ビデオデコーダ３０は、符号化ビデオデータを復号し得る。符号化ビデオデータを復号することの一部として、ビデオデコーダ３０は、ビデオデータのピクチャの第１のスライスのスライスヘッダから、時間動きベクトル予測が第１のスライスについて有効にされたことを示すシンタックス要素（たとえば、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇ）を取得し得る。さらに、この例では、ビデオデコーダ３０は、同じピクチャの第２のスライスのスライスヘッダから、時間動きベクトル予測がそのスライスについて無効にされたことを示すシンタックス要素（たとえば、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇ）を取得し得る。
【０１１８】
[0102]時間動きベクトル予測がスライスについて有効にされたとき、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、現在ピクチャのスライスの現在ブロック（たとえば、ＰＵ）の動きパラメータ（たとえば、１つまたは複数動きベクトルおよび参照インデックス）を決定するために時間動きベクトル予測を使用し得る。たとえば、ビデオコーダは、時間参照ピクチャ（たとえば、現在ピクチャとは異なるピクチャ順序カウント（ＰＯＣ）値を有するピクチャ、または現在ピクチャとは異なるアクセスユニット中のピクチャ）中のブロックの動きパラメータを指定する候補（たとえば、マージモードまたはＡＭＶＰ候補）を決定し得る。上記で説明されたように、ビデオコーダは、現在ブロックの動きパラメータを決定するために、動き予測子リスト（たとえば、マージまたはＡＭＶＰ候補リスト）中の選択された候補を使用し得る。ビデオコーダは、現在ブロックのための予測ブロックを決定するために現在ブロックの動きパラメータを使用し得る。現在ブロックを符号化することの一部として、ビデオエンコーダ２０は、残差データを生成するために予測ブロックを使用し得る。本開示中の他の場所で説明されるように、ビデオエンコーダ２０は、ビットストリーム中に、残差データに基づくデータを含め得る。現在ブロックを復号することの一部として、ビデオデコーダ３０は、現在ブロックのサンプルを再構成するために予測ブロックと残差データとを使用し得る。このようにして、時間動きベクトル予測がスライスについて有効にされたことを示すシンタックス要素に基づいて、ビデオデコーダ３０は、スライスのブロックを復号するために時間動きベクトル予測を使用し得る。時間動きベクトル予測がスライスについて有効にされない（すなわち、無効にされた）とき、ビデオコーダは、スライスの任意のブロックをコーディングする（すなわち、符号化または復号する）ために時間動きベクトル予測を使用しないことがある。
【０１１９】
[0103]例１
[0104]以下のテキストは、本開示の１つまたは複数の技法による、ＪＣＴＶＣ−Ｗ１００５−ｖ１に対する例示的な変更を示す。挿入されるテキストは、＜ｉｎｓｅｒｔ＞タグと＜／ｉｎｓｅｒｔ＞タグとの間に示される。削除されるテキストは、＜ｄｅｌｅｔｅ＞タグと＜／ｄｅｌｅｔｅ＞タグとの間に示される。
【０１２０】
７．４．７．１  一般的なスライスセグメントヘッダセマンティクス
存在するとき、スライスセグメントヘッダシンタックス要素ｓｌｉｃｅ＿ｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄ、ｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇ、ｎｏ＿ｏｕｔｐｕｔ＿ｏｆ＿ｐｒｉｏｒ＿ｐｉｃｓ＿ｆｌａｇ、ｓｌｉｃｅ＿ｐｉｃ＿ｏｒｄｅｒ＿ｃｎｔ＿ｌｓｂ、ｓｈｏｒｔ＿ｔｅｒｍ＿ｒｅｆ＿ｐｉｃ＿ｓｅｔ＿ｓｐｓ＿ｆｌａｇ、ｓｈｏｒｔ＿ｔｅｒｍ＿ｒｅｆ＿ｐｉｃ＿ｓｅｔ＿ｉｄｘ、＜ｉｎｓｅｒｔ＞および＜／ｉｎｓｅｒｔ＞ｎｕｍ＿ｌｏｎｇ＿ｔｅｒｍ＿ｓｐｓ、ｎｕｍ＿ｌｏｎｇ＿ｔｅｒｍ＿ｐｉｃｓ＜ｄｅｌｅｔｅ＞、およびｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇ＜／ｄｅｌｅｔｅ＞の値は、コード化ピクチャのすべてのスライスセグメントヘッダ中で同じであるものとする。存在するとき、スライスセグメントヘッダシンタックス要素ｌｔ＿ｉｄｘ＿ｓｐｓ［ｉ］、ｐｏｃ＿ｌｓｂ＿ｌｔ［ｉ］、ｕｓｅｄ＿ｂｙ＿ｃｕｒｒ＿ｐｉｃ＿ｌｔ＿ｆｌａｇ［ｉ］、ｄｅｌｔａ＿ｐｏｃ＿ｍｓｂ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［ｉ］、およびｄｅｌｔａ＿ｐｏｃ＿ｍｓｂ＿ｃｙｃｌｅ＿ｌｔ［ｉ］の値は、ｉの各可能な値についてコード化ピクチャのすべてのスライスセグメントヘッダ中で同じであるものとする。
【０１２１】
・・・
＜ｉｎｓｅｒｔ＞スライスが現在ピクチャのみを参照として含んでいる場合、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しいものとすることが、ビットストリーム適合の要件である。＜／ｉｎｓｅｒｔ＞
・・・
ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘのセマンティクスにおいて、
ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが、＜ｉｎｓｅｒｔ＞１に等しいｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇを有する、＜／ｉｎｓｅｒｔ＞コード化ピクチャのすべてのスライスについて同じであるものとし、現在ピクチャ自体でないものとすることが、ビットストリーム適合の要件である。
【０１２２】
[0105]  ［仕様抜粋の終了］
[0106]  これは、スライスが現在ピクチャのみを参照として含んでいる場合以外は、スライスｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値に対する制限がないという点で、最も一般的な場合である。
【０１２３】
[0107]例２
[0108]この第２の例では、追加の制約がシンタックス要素ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇに課される。
【０１２４】
７．４．７．１  一般的なスライスセグメントヘッダセマンティクス
存在するとき、スライスセグメントヘッダシンタックス要素ｓｌｉｃｅ＿ｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄ、ｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇ、ｎｏ＿ｏｕｔｐｕｔ＿ｏｆ＿ｐｒｉｏｒ＿ｐｉｃｓ＿ｆｌａｇ、ｓｌｉｃｅ＿ｐｉｃ＿ｏｒｄｅｒ＿ｃｎｔ＿ｌｓｂ、ｓｈｏｒｔ＿ｔｅｒｍ＿ｒｅｆ＿ｐｉｃ＿ｓｅｔ＿ｓｐｓ＿ｆｌａｇ、ｓｈｏｒｔ＿ｔｅｒｍ＿ｒｅｆ＿ｐｉｃ＿ｓｅｔ＿ｉｄｘ、＜ｉｎｓｅｒｔ＞および＜／ｉｎｓｅｒｔ＞ｎｕｍ＿ｌｏｎｇ＿ｔｅｒｍ＿ｓｐｓ、ｎｕｍ＿ｌｏｎｇ＿ｔｅｒｍ＿ｐｉｃｓ＜ｄｅｌｅｔｅ＞、およびｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇ＜／ｄｅｌｅｔｅ＞の値は、コード化ピクチャのすべてのスライスセグメントヘッダ中で同じであるものとする。存在するとき、スライスセグメントヘッダシンタックス要素ｌｔ＿ｉｄｘ＿ｓｐｓ［ｉ］、ｐｏｃ＿ｌｓｂ＿ｌｔ［ｉ］、ｕｓｅｄ＿ｂｙ＿ｃｕｒｒ＿ｐｉｃ＿ｌｔ＿ｆｌａｇ［ｉ］、ｄｅｌｔａ＿ｐｏｃ＿ｍｓｂ＿ｐｒｅｓｅｎｔ＿ｆｌａｇ［ｉ］およびｄｅｌｔａ＿ｐｏｃ＿ｍｓｂ＿ｃｙｃｌｅ＿ｌｔ［ｉ］の値は、ｉの各可能な値についてコード化ピクチャのすべてのスライスセグメントヘッダ中で同じであるものとする。
【０１２５】
＜ｉｎｓｅｒｔ＞存在するとき、スライスセグメントヘッダシンタックス要素ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は、現在ピクチャ以外の参照ピクチャを使用するコード化ピクチャのスライスのすべてのスライスセグメントヘッダ中で同じであるものとする。＜／ｉｎｓｅｒｔ＞
＜ｉｎｓｅｒｔ＞スライスが現在ピクチャのみを参照として含んでいる場合、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しいものとすることが、ビットストリーム適合の要件である。＜／ｉｎｓｅｒｔ＞
・・・
ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘのセマンティクスにおいて、
ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって参照されるピクチャが、＜ｉｎｓｅｒｔ＞１に等しいｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇを有する、＜／ｉｎｓｅｒｔ＞コード化ピクチャのすべてのスライスについて同じであるものとし、現在ピクチャ自体でないものとすることが、ビットストリーム適合の要件である。
【０１２６】
[0109]例３
[0110]いくつかの例では、前の実施形態において言及された制約は、以下のように変更され得る。
【０１２７】
＜ｉｎｓｅｒｔ＞存在するとき、スライスセグメントヘッダシンタックス要素ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は、コード化ピクチャの、Ｉスライスタイプでないスライスのすべてのスライスセグメントヘッダ中で同じであるものとする。＜／ｉｎｓｅｒｔ＞
[0111]別の代替例では、
＜ｉｎｓｅｒｔ＞存在するとき、スライスセグメントヘッダシンタックス要素ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は、ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが明示的にシグナリングされる（推論されない）コード化ピクチャのスライスのすべてのスライスセグメントヘッダ中で同じであるものとする。＜／ｉｎｓｅｒｔ＞
[0112]例４
[0113]代替的に、シンタックス要素ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、スライスが現在ピクチャのみを参照として含んでいるとき、シグナリングされない。一例として、スライスが、現在ピクチャでない少なくとも１つの参照ピクチャを含んでいる場合、変数ｓｌｉｃｅＣｏｎｔａｉｎｓＴｅｍｐｏｒａｌＲｅｆＰｉｃは１に等しくなるように設定される。
【０１２８】
【表５】
2019514292.tif 000007
【０１２９】
[0114]いくつかの事例では、本開示の例の２つまたはそれ以上は、一緒に使用され得る。他の事例では、本開示の例は、別々に使用される。
【０１３０】
[0115]図２は、本開示で説明される適合制約検査技法の任意の組合せを実装し得る例示的なビデオエンコーダを示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実施し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの冗長性を低減または除去するために時間予測またはビュー間予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測（Ｐモード）または双予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかに含み得る。ビデオエンコーダ２０はまた、本明細書で説明されるように、同じピクチャ内のビデオデータの予測ブロックからのビデオデータのブロックのイントラ予測のためのモード、たとえば、イントラＢＣモードを利用するように構成され得る。
【０１３１】
[0116]図２の例では、ビデオエンコーダ２０は、区分ユニット３５と、予測処理ユニット４１と、再構成領域メモリ６４と、フィルタ処理ユニット６６と、参照ピクチャメモリ６８と、残差生成ユニット５０と、変換処理ユニット５２と、量子化処理ユニット５４と、エントロピー符号化ユニット５６とを含む。予測処理ユニット４１は、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測処理ユニット４６と、イントラブロックコピー（イントラＢＣ）ユニット４８とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化処理ユニット５８と、逆変換処理ユニット６０と、加算器６２とを含む。
【０１３２】
[0117]様々な例では、ビデオエンコーダ２０のユニットは、本開示の技法を実施する役割を担い得る。また、いくつかの例では、本開示の技法は、ビデオエンコーダ２０のユニットのうちの１つまたは複数の中で分割され得る。たとえば、予測処理ユニット４１は、本開示の技法を、単独で、または、動き推定ユニット４２、動き補償ユニット４４、イントラ予測処理ユニット４６、再構成領域メモリ６４、およびエントロピー符号化ユニット５６など、ビデオエンコーダの他のユニットと組み合わせて実施し得る。
【０１３３】
[0118]上記で説明されたように、ビデオエンコーダ２０は、各スライスヘッダのためのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値を生成した後に、ビットストリーム適合検査を実施するように構成され得る。言い換えれば、ビデオエンコーダ２０は、ビデオエンコーダ２０がｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘに割り当てた値が、あらかじめ定義されたビットストリーム適合の基準を満たすことを検証するために、ビットストリーム適合検査を実施するように構成され得る。そのようなプロセスは、上記で定義されたビットストリーム適合制約のために使用され得る。
【０１３４】
[0119]一例では、ビデオエンコーダ２０は、ビデオデータの現在ピクチャを符号化し、現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を生成するように構成され得る。ビデオエンコーダ２０は、イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施するようにさらに構成され得る。ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、現在ピクチャ自体を参照しないように、それぞれのコロケート参照ピクチャインデックスシンタックス要素の値を制約する。
【０１３５】
[0120]図２に示されているように、ビデオエンコーダ２０はビデオデータを受信し、区分ユニット３５はビデオデータをビデオブロックに区分する。この区分は、たとえば、ＬＣＵおよびＣＵの４分木構造に応じて、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分をも含み得る。ビデオエンコーダ２０は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示している。スライスは、複数のビデオブロックに（および、場合によっては、タイルと呼ばれるビデオブロックのセットに）分割され得る。
【０１３６】
[0121]予測処理ユニット４１は、レートひずみ結果（たとえば、コーディングビットレートおよびひずみレベル）に基づいて現在ビデオブロックのために、本開示で説明される技法による、複数のイントラコーディングモードのうちの１つ、複数のインターコーディングモードのうちの１つ、またはイントラＢＣモードなど、複数の可能なコーディングモードのうちの１つを選択し得る。予測処理ユニット４１は、得られた予測ブロックを、残差ブロックデータを生成するために残差生成ユニット５０に与え、たとえば、参照ピクチャとして、他のビデオブロックの予測において使用するための現在ブロックを再構成するために加算器６２に与え得る。
【０１３７】
[0122]予測処理ユニット４１内のイントラ予測処理ユニット４６は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じピクチャまたはスライス中の１つまたは複数の隣接ブロックに対して現在ビデオブロックのイントラ予測コーディングを実施し得る。予測処理ユニット４１内の動き推定ユニット４２および動き補償ユニット４４は、たとえば、時間圧縮を行うために、１つまたは複数の参照ピクチャ中の１つまたは複数の予測ブロックに対して現在ビデオブロックのインター予測コーディングを実施する。
【０１３８】
[0123]動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別個に示されている。動き推定ユニット４２によって実施される動き推定は、ビデオブロックの動きを推定する動きベクトルを発生するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する、現在ビデオピクチャ内のビデオブロックのＰＵの変位を示し得る。同様に、本開示の技法によるイントラＢＣのために使用されるブロックベクトルは、同じフレームまたはピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示す。イントラＢＣユニット４８は、インター予測のための動き推定ユニット４２による動きベクトルの決定と同様の様式で、イントラＢＣコーディングのためのベクトル、たとえば、ブロックベクトルを決定し得るか、またはブロックベクトルを決定するために動き推定ユニット４２を利用し得る。
【０１３９】
[0124]たとえば、インター予測またはイントラＢＣ予測のために動き推定ユニット４２および／またはイントラＢＣユニット４８によって識別される予測ブロックは、ピクセル差分に関してコーディングされるべきビデオブロックのＰＵの予測ブロック中のサンプルにぴったり一致する（closely match）ことがわかるサンプルを含むブロックである。いくつかの例では、動き推定ユニット４２および／またはイントラＢＣユニット４８は、絶対差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、および／または他の差分メトリックに基づいてピクセル差分を決定し得る。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６８に記憶された参照ピクチャのサブ整数ピクセル位置または再構成領域メモリ６４に記憶された現在ピクチャの再構成領域のための値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２および／またはイントラＢＣユニット４８は、フルピクセル位置と分数ピクセル位置とに対して予測ブロックの探索を実施し、分数ピクセル精度でベクトルを出力し得る。
【０１４０】
[0125]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのＰＵのための動きベクトルを計算し得る。参照ピクチャは、第１の参照ピクチャリスト（リスト０またはＲｅｆＰｉｃＬｉｓｔ０）または第２の参照ピクチャリスト（リスト１またはＲｅｆＰｉｃＬｉｓｔ１）から選択され得、それらの各々は、参照ピクチャメモリ６８に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【０１４１】
[0126]動き補償ユニット４４によって実施される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実施することを伴い得る。ビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいてそれを指す予測ブロックの位置を特定し得る。
【０１４２】
[0127]いくつかの例では、イントラＢＣユニット４８は、動き推定ユニット４２および動き補償ユニット４４に関して上記で説明された様式と同様の様式で、ベクトルを生成し、予測ブロックをフェッチし得るが、予測ブロックは、現在ブロックと同じピクチャまたはフレーム中にあり、ベクトルは、動きベクトルの対語としてブロックベクトルと呼ばれる。他の例では、イントラＢＣユニット４８は、本明細書で説明される技法に従ってイントラＢＣ予測のためのそのような機能を実施するために、全体的にまたは部分的に、動き推定ユニット４２および動き補償ユニット４４を使用し得る。いずれの場合も、イントラＢＣでは、予測ブロックは、絶対差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックであり得、ブロックの識別は、サブ整数ピクセル位置のための値の計算を含み得る。
【０１４３】
[0128]予測ブロックが、イントラＢＣ予測による同じピクチャからのものであるのか、インター予測による異なるピクチャからのものであるのかにかかわらず、ビデオエンコーダ２０は、コーディングされている現在ビデオブロックのサンプル値から予測ブロックのサンプル値（たとえば、ピクセル値）を減算することによって、残差ビデオブロックを形成し、サンプル差分値を形成し得る。サンプル差分値は、ブロックのための残差データを形成し、ルーマ成分差分とクロマ成分差分の両方を含み得る。残差生成ユニット５０は、この減算演算を実施する１つまたは複数の構成要素を表す。いくつかの例では、サンプル差分値を形成するために減算を直接実施することとは対照的に、残差生成ユニット５０は、減算演算をエミュレートするために（すなわち、結果が、減算と同じであるが、減算の計算複雑さを伴わないように）動作を実施し得る。このようにして、残差生成ユニット５０はイントラＢＣコーディングの計算複雑さを低減し得る。
【０１４４】
[0129]イントラＢＣユニット４８および／または動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際に、ビデオデコーダ３０など、ビデオデコーダが使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。シンタックス要素は、たとえば、予測ブロックを識別するために使用されるベクトルを定義するシンタックス要素、予測モードを示すフラグ、または本開示の技法に関して説明される他のシンタックスを含み得る。
【０１４５】
[0130]イントラ予測処理ユニット４６は、上記で説明されたように、動き推定ユニット４２と動き補償ユニット４４とによって実施されるインター予測、またはイントラＢＣユニット４８によって実施されるイントラＢＣ予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測処理ユニット４６は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット４６は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ビデオブロックを符号化し得、イントラ予測処理ユニット４６（または、いくつかの例では、予測処理ユニット４１）は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測処理ユニット４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（またはエラー）の量、ならびに符号化ブロックを生成するために使用されるビットレート（すなわち、ビット数）を決定する。イントラ予測処理ユニット４６は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのためのひずみおよびレートから比を計算し得る。
【０１４６】
[0131]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット４６は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット５６に与え得る。エントロピー符号化ユニット５６は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含め得る。
【０１４７】
[0132]予測処理ユニット４１が、インター予測、イントラ予測、またはイントラＢＣ予測を介して現在ビデオブロックのための予測ブロックを生成した後に、ビデオエンコーダ２０は、たとえば、残差生成ユニット５０を介して、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、１つまたは複数のＴＵ中に含まれ、変換処理ユニット５２に適用され得る。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット５２は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【０１４８】
[0133]変換処理ユニット５２は、得られた変換係数を量子化処理ユニット５４に送り得る。量子化処理ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化処理ユニット５４は、次いで、量子化変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット５６が走査を実施し得る。
【０１４９】
[0134]量子化の後に、エントロピー符号化ユニット５６は量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディングあるいは別のエントロピー符号化方法または技法を実施し得る。エントロピー符号化ユニット５６は、イントラＢＣモードによる予測のために、ベクトル成分、フラグ、および他のシンタックス要素を含む、シンタックス要素の２値化および符号化のための本明細書で説明される技法のいずれかを実施し得る。エントロピー符号化ユニット５６によるエントロピー符号化の後に、符号化ビデオビットストリームは、ビデオデコーダ３０に送信されるか、あるいはビデオデコーダ３０が後で送信するかまたは取り出すためにアーカイブされ得る。
【０１５０】
[0135]逆量子化処理ユニット５８および逆変換処理ユニット６０は、他のビデオブロックの予測のために参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット４４および／またはイントラＢＣユニット４８は、残差ブロックを参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４および／またはイントラＢＣユニット４８はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに１つまたは複数の補間フィルタを適用し得る。
【０１５１】
[0136]加算器６２は、再構成されたビデオブロックを生成するために、再構成された残差ブロックを、動き補償ユニット４４および／またはイントラＢＣユニット４８によって生成された動き補償予測ブロックに加算する。再構成領域メモリ６４は、本明細書で説明されるように、ビデオエンコーダ２０、たとえば、イントラＢＣユニット４８によって、現在ビデオブロックのイントラＢＣのための再構成領域の定義に従って、再構成されたビデオブロックを記憶する。再構成領域メモリ６４は、フィルタ処理ユニット６６によってインループフィルタ処理されていない再構成されたビデオブロックを記憶し得る。加算器６２は、再構成されたビデオブロックを再構成領域メモリ６４と並列にフィルタ処理ユニット６６に与え得るか、または再構成領域メモリ６４は、イントラＢＣのための再構成領域がもはや必要とされないとき、再構成されたビデオブロックをフィルタ処理ユニット６６に解放し得る。いずれの場合も、イントラＢＣユニット４８は、現在ビデオブロックを予測するために、再構成領域メモリ６４中の再構成されたビデオブロックを現在ビデオブロックと同じピクチャ内の予測ビデオブロックについて探索し得る。
【０１５２】
[0137]フィルタ処理ユニット６６は、再構成されたビデオブロックに対してインループフィルタ処理を実施し得る。インループフィルタ処理は、再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するためのデブロックフィルタ処理を含み得る。インループフィルタ処理は、再構成されたビデオを改善するためにＳＡＯフィルタ処理をも含み得る。そのうちのいくつかがインループフィルタ処理され得る、再構成されたブロックは、参照ピクチャとして参照ピクチャメモリ６８に記憶され得る。参照ピクチャは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット４２および動き補償ユニット４４によって予測ブロックとして使用され得る再構成されたブロックを含み得る。
【０１５３】
[0138]図３は、本開示で説明される適合制約検査技法の任意の組合せを実装し得る例示的なビデオデコーダ３０を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット８０と、予測処理ユニット８１と、逆量子化処理ユニット８６と、逆変換処理ユニット８８と、加算器９０と、再構成領域メモリ９２と、フィルタ処理ユニット９４と、参照ピクチャメモリ９６とを含む。予測処理ユニット８１は、動き補償ユニット８２と、イントラ予測処理ユニット８４と、イントラブロックコピー（イントラＢＣ）ユニット８５とを含む。ビデオデコーダ３０は、いくつかの例では、図２からのビデオエンコーダ２０に関して説明された符号化パスとは概して逆の復号パスを実施し得る。
【０１５４】
[0139]様々な例では、ビデオデコーダ３０のユニットは、本開示の技法を実施する役割を担い得る。また、いくつかの例では、本開示の技法は、ビデオデコーダ３０のユニットのうちの１つまたは複数の間で分割され得る。たとえば、イントラＢＣユニット８５は、本開示の技法を、単独で、または、動き補償ユニット８２、イントラ予測処理ユニット８４、再構成領域メモリ９２、およびエントロピー復号ニット８０など、ビデオデコーダ３０の他のユニットと組み合わせて実施し得る。
【０１５５】
[0140]上記で説明されたように、ビデオデコーダ３０は、受信された符号化ビデオビットストリームに対してビットストリーム適合検査を実施するように構成され得る。ビデオデコーダ３０が、（受信されたのか推論されたのかにかかわらず）ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素の値を決定するためにスライスヘッダを受信およびパースした後に、ビデオデコーダ３０は、値が、あらかじめ定義された適合制約を満たすことを検証するために、特定のスライスのためのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素の値を同じピクチャの他のスライスのためのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素の値と比較し得る。ビデオデコーダ３０が、ビットストリームが適合検査に合格したと決定した場合、ビデオデコーダ３０は、通常通り復号に進み得る。ビデオデコーダ３０が、ビットストリームが適合検査に合格しないと決定した場合、ビデオデコーダ３０はエラーをロギングし得る。ビデオデコーダ３０は、ビットストリーム適合検査が満たされない場合でも、依然として、ビットストリームを復号することを試み得る。
【０１５６】
[0141]本開示の一例では、ビデオデコーダ３０は、ビデオデータの符号化された現在ピクチャを受信することと、符号化された現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を受信することとを行うように構成され得る。ビデオデコーダ３０は、イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施するようにさらに構成され得る。ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、符号化された現在ピクチャ自体を参照しないかどうかを決定する。
【０１５７】
[0142]復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化係数と、インター予測のための動きベクトルと、イントラＢＣ予測のためのブロックベクトルと、本明細書で説明される他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、イントラＢＣモードによる予測のために、ベクトル成分、フラグ、および他のシンタックス要素を含む、シンタックス要素の２値化および符号化のための本明細書で説明される技法のいずれかの逆を実施し得る。エントロピー復号ユニット８０は、予測処理ユニット８１にベクトルおよび他のシンタックス要素をフォワーディングする。ビデオデコーダ３０は、シーケンスレベル、ピクチャレベル、ビデオスライスレベルおよび／またはビデオブロックレベルにおいてシンタックス要素を取得し得る。
【０１５８】
[0143]いくつかの例では、エントロピー復号ユニット８０は、ブロックベクトルを符号化するためにエンコーダ２０のエントロピー符号化ユニット５６によって使用される符号化プロセスとは概して逆であるプロセスを使用する。たとえば、エントロピー復号ユニット８０は、３つのシンタックス要素に基づいてブロックベクトルの成分を復号し得る。
【０１５９】
[0144]イントラＢＣユニット８０は、選択されたブロックベクトル予測子候補と、シンタックス要素によって示された差分（すなわち、選択されたブロックベクトル予測子と現在ブロックのためのブロックベクトルとの間の差分）とに基づいて、現在ブロックのためのブロックベクトルの値を決定し得る。このようにして、エントロピー復号ユニット８０およびイントラＢＣユニット８０は、符号化されたブロックベクトルを復号し得る。
【０１６０】
[0145]ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされたとき、予測処理ユニット８１のイントラ予測処理ユニット８４は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化（すなわち、ＢまたはＰ）スライスとしてコーディングされたとき、予測処理ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトルおよび他のシンタックス要素に基づいて現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ９６に記憶された参照ピクチャに基づいて、デフォルト構成技法または任意の他の技法を使用して、参照フレームリスト、すなわち、ＲｅｆＰｉｃＬｉｓｔ０とＲｅｆＰｉｃＬｉｓｔ１とを構成し得る。ビデオブロックが、本明細書で説明されるイントラＢＣモードに従ってコーディングされたとき、予測処理ユニット８１のイントラＢＣユニット８５は、エントロピー復号ユニット８０から受信されたブロックベクトルおよび他のシンタックス要素に基づいて、現在ビデオブロックのための予測ブロックを生成する。予測ブロックは、ビデオエンコーダ２０によって定義され、再構成領域メモリ９２から取り出される現在ビデオブロックと同じピクチャ内の再構成領域内にあり得る。
【０１６１】
[0146]動き補償ユニット８２およびイントラＢＣユニット８５は、ベクトルおよび他のシンタックス要素をパースすることによって現在ビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）と、インター予測スライスタイプ（たとえば、ＢスライスまたはＰスライス）と、スライスのための参照ピクチャリストのうちの１つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。同様に、イントラＢＣユニット８５は、現在ビデオブロックがイントラＢＣモードを使用して予測されたことと、ピクチャのどのビデオブロックが再構成された領域内にあり、再構成領域メモリ９２に記憶されるべきであるかを示す構成情報と、スライスの各イントラＢＣ予測ビデオブロックのためのブロックベクトルと、スライスの各イントラＢＣ予測ビデオブロックのためのイントラＢＣ予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつか、たとえば、フラグを使用し得る。
【０１６２】
[0147]動き補償ユニット８２およびイントラＢＣユニット８５はまた、補間フィルタに基づいて補間を実施し得る。動き補償ユニット８２およびイントラＢＣユニット８５は、予測ブロックのサブ整数ピクセルのための補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット８２およびイントラＢＣユニット８５は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用し得る。
【０１６３】
[0148]逆量子化処理ユニット８６は、ビットストリーム中で与えられ、エントロピー復号ユニット８０によって復号された、量子化変換係数を逆量子化、すなわち、量子化解除する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中の各ビデオブロックについてビデオエンコーダ２０によって計算される量子化パラメータの使用を含み得る。逆変換処理ユニット８８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１６４】
[0149]動き補償ユニット８２またはイントラＢＣユニット８５が、ベクトルおよび他のシンタックス要素に基づいて現在ビデオブロックのための予測ブロックを生成した後に、ビデオデコーダ３０は、逆変換処理ユニット８８からの残差ブロックを動き補償ユニット８２およびイントラＢＣユニット８５によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器９０は、再構成されたビデオブロックを生成するためにこの加算演算を実施する１つまたは複数の構成要素を表す。
【０１６５】
[0150]再構成領域メモリ９２は、本明細書で説明されるように、ビデオエンコーダ２０による現在のビデオブロックのイントラＢＣのための再構成領域の定義に従って、再構成されたビデオブロックを記憶する。再構成領域メモリ９２は、フィルタ処理ユニット３９４によってインループフィルタ処理されていない再構成されたビデオブロックを記憶し得る。加算器９０は、再構成されたビデオブロックを再構成領域メモリ９２と並列にフィルタ処理ユニット９４に与え得るか、または再構成領域メモリ９２は、イントラＢＣのための再構成領域がもはや必要とされないとき、再構成されたビデオブロックをフィルタ処理ユニット９４に解放し得る。いずれの場合も、イントラＢＣユニット８５は、再構成領域メモリ９２から現在ビデオブロックのための予測ビデオブロックを取り出す。
【０１６６】
[0151]フィルタ処理ユニット９４は、再構成されたビデオブロックに対してインループフィルタ処理を実施し得る。インループフィルタ処理は、再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するためのデブロックフィルタ処理を含み得る。インループフィルタ処理は、再構成されたビデオを改善するためにＳＡＯフィルタ処理をも含み得る。そのうちのいくつかがインループフィルタ処理され得る、再構成されたブロックは、参照ピクチャとして参照ピクチャメモリ６８に記憶され得る。参照ピクチャは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き補償ユニット８２によって予測ブロックとして使用され得る再構成されたブロックを含み得る。参照ピクチャメモリ９６はまた、図１のディスプレイデバイス３１などのディスプレイデバイス上で後で提示するために復号ビデオを記憶する。
【０１６７】
[0152]図４は、本開示の例示的な符号化プロセスを示すフローチャートである。図４の技法は、ビデオエンコーダ２０の１つまたは複数のハードウェアユニットによって実施され得る。
【０１６８】
[0153]本開示の一例では、ビデオエンコーダ２０は、ビデオデータの現在ピクチャを符号化し（１００）、現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を生成する（１０２）ように構成され得る。ビデオエンコーダ２０は、イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施する（１０４）ようにさらに構成され得る。一例では、ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、現在ピクチャ自体を参照しないように、それぞれのコロケート参照ピクチャインデックスシンタックス要素の値を制約する。本開示のさらなる一例では、ビデオエンコーダ２０は、１つまたは複数のスライスのためのスライスタイプを決定することと、スライスタイプがＰインタースライスタイプ、Ｂインタースライスタイプ、またはイントラスライスタイプのうちの１つを含む、時間動きベクトル予測子が１つまたは複数のスライスのためにインター予測のために有効にされるか否かを決定することとを行うように構成され得る。
【０１６９】
[0154]本開示の別の例では、ビデオエンコーダ２０は、イントラスライスタイプを有する１つまたは複数のスライスのうちのスライスのために、または時間動きベクトル予測子が無効にされた１つまたは複数のスライスのうちのスライスのためにビットストリーム適合検査を実施しないように構成され得る。
【０１７０】
[0155]本開示の別の例では、ビデオエンコーダ２０は、対応するスライスのためのそれぞれのスライスヘッダ中でそれぞれのコロケート参照ピクチャインデックスシンタックス要素を生成することと、１つまたは複数のスライスのそれぞれのスライスヘッダ中で時間動きベクトル予測子有効フラグ（temporal motion vector predictor enabled flag）を生成することとを行うように構成され得る。一例では、それぞれのコロケート参照ピクチャインデックスシンタックス要素は、それぞれのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素であり、時間動きベクトル予測子有効フラグはｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇである。
【０１７１】
[0156]本開示の別の例では、ビデオエンコーダ２０は、現在ピクチャを参照ピクチャとして使用するインター予測モードを使用して、ビデオデータの現在ピクチャの１つまたは複数のブロックを符号化するように構成され得る。
【０１７２】
[0157]本開示の別の例では、ビデオエンコーダ２０は、もう１つの（one more）スライスのうちの第１のスライスのためのスライスヘッダ中に、時間動きベクトル予測子が第１のスライスのために有効にされたことを示すシンタックス要素を含めることと、１つまたは複数のスライスのうちの第２のスライスのための第２のスライスヘッダ中に、時間動きベクトル予測子が第２のスライスのために無効にされたことを示すシンタックス要素を含めることとを行うように構成され得る。
【０１７３】
[0158]本開示の別の例では、ビデオエンコーダ２０は、符号化されるべきビデオデータの現在ピクチャをキャプチャすることと、ビデオデータの符号化された現在ピクチャを出力することとを行うように構成され得る。
【０１７４】
[0159]図５は、本開示の例示的な復号プロセスを示すフローチャートである。図４の技法は、ビデオデコーダの１つまたは複数のハードウェアユニットによって実施され得る。
【０１７５】
[0160]本開示の一例では、ビデオデコーダ３０は、ビデオデータの符号化された現在ピクチャを受信し（１５０）、符号化された現在ピクチャの１つまたは複数のスライスのためのそれぞれのコロケート参照ピクチャインデックスシンタックス要素を受信する（１５２）ように構成され得る。ビデオデコーダ３０は、イントラスライスタイプを有さず、時間動きベクトル予測子が有効にされた、１つまたは複数のスライスのうちのスライスのためにのみビットストリーム適合検査を実施する（１５４）ようにさらに構成され得る。一例では、ビットストリーム適合検査は、各それぞれのコロケート参照ピクチャインデックスシンタックス要素が同じピクチャを指し、符号化された現在ピクチャ自体を参照しないかどうかを決定する。本開示のさらなる一例では、ビデオデコーダ３０は、１つまたは複数のスライスのためのスライスタイプを決定することと、スライスタイプがＰインタースライスタイプ、Ｂインタースライスタイプ、またはイントラスライスタイプのうちの１つを含む、時間動きベクトル予測子が１つまたは複数のスライスのためにインター予測のために有効にされるか否かを決定することとを行うように構成され得る。
【０１７６】
[0161]本開示の別のものでは、ビデオデコーダ３０は、イントラスライスタイプを有する１つまたは複数のスライスのうちのスライスのために、または時間動きベクトル予測子が無効にされた１つまたは複数のスライスのうちのスライスのためにビットストリーム適合検査を実施しないように構成され得る。
【０１７７】
[0162]本開示の別のものでは、ビデオデコーダ３０は、対応するスライスのためのそれぞれのスライスヘッダ中でそれぞれのコロケート参照ピクチャインデックスシンタックス要素を受信することと、１つまたは複数のスライスのそれぞれのスライスヘッダ中で時間動きベクトル予測子有効フラグを受信することとを行うように構成され得る。本開示の一例では、それぞれのコロケート参照ピクチャインデックスシンタックス要素は、それぞれのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘシンタックス要素であり、時間動きベクトル予測子有効フラグはｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇである。
【０１７８】
[0163]本開示の別のものでは、ビデオデコーダ３０は、現在ピクチャを参照ピクチャとして使用するインター予測モードを使用して、ビデオデータの現在ピクチャの１つまたは複数のブロックを復号するように構成され得る。
【０１７９】
[0164]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１８０】
[0165]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１８１】
[0166]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明される技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０１８２】
[0167]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０１８３】
[0168]様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
【図１】
2019514292.tif 000008
【図２】
2019514292.tif 000009
【図３】
2019514292.tif 000010
【図４】
2019514292.tif 000011
【図５】
2019514292.tif 000012
【国際調査報告】
2019514292.tif 000013
2019514292.tif 000014
2019514292.tif 000015