(57)【要約】      （修正有）【課題】イントラブロックコピーおよびインターモードに対するブロックベクトルコーディングに関する技法及びデバイスを提供する。【解決手段】ビデオデータを記憶するように構成されたメモリと、プロセッサとを備えるビデオコーディングデバイスは、現在ビデオブロックをコーディングするために使用される参照ピクチャを決定することと、参照ピクチャに対するピクチャ順序カウント（ＰＯＣ）値を決定する。参照ピクチャに対するＰＯＣ値が現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値に等しいことに応答して、参照ピクチャリストが現在ピクチャを含むことを示すようにシンタックス要素の値を設定する２２６。さもなければ、ビデオコーディングデバイスは、参照ピクチャリストが現在ピクチャを含まないことを示すようにシンタックス要素の値を設定する２２８。【選択図】図１２
2019169964.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、
前記ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格があるかどうかを示すシンタックス要素を受信することと、
前記シンタックス要素の値を決定することと、
前記ビデオデータの前記現在ビデオブロックが前記参照ピクチャリスト内にある資格があることを前記シンタックス要素が示すことに応答して、前記現在ピクチャを前記参照ピクチャリストに追加することと、
前記ビデオデータの前記現在ビデオブロックが前記参照ピクチャリスト内にある資格がないことを前記シンタックス要素が示すことに応答して、前記現在ピクチャが前記参照ピクチャリスト内に置かれるのを制限することと
を備える、方法。
【請求項２】
前記現在ピクチャが、ＰスライスまたはＢスライスのうちの１つを備えるイントラランダムアクセスピクチャである、請求項１に記載の方法。
【請求項３】
前記シンタックス要素が第１のシンタックス要素であり、前記イントラランダムアクセスピクチャが、空でない参照ピクチャセットを指定する１つまたは複数の異なるシンタックス要素のセットをさらに備える、請求項２に記載の方法。
【請求項４】
前記現在ピクチャを復号するために使用される参照ピクチャが、前記現在ピクチャの復号されたフィルタリングされていないサンプルを含む、請求項１に記載の方法。
【請求項５】
前記シンタックス要素が、ピクチャパラメータセットまたはシーケンスパラメータセットのうちの１つの中に配置される、請求項１に記載の方法。
【請求項６】
前記現在ピクチャと異なるピクチャに少なくとも部分的に基づいて時間的動きベクトル予測子を決定することをさらに備える、請求項１に記載の方法。
【請求項７】
前記現在ピクチャがクリーンランダムアクセスピクチャまたは切断リンクアクセスピクチャのうちの１つであり、前記シンタックス要素が第１のシンタックス要素であり、前記方法が、
前記現在ピクチャに対する予測参照として使用される資格があるピクチャの数を示す第２のシンタックス要素の値を受信することをさらに備え、前記第２のシンタックス要素が１の値を有する、請求項１に記載の方法。
【請求項８】
前記現在ピクチャが前記参照ピクチャリストに追加される資格があり、前記現在ビデオブロックに対する動きベクトルが整数ペル精度を有し、前記方法が、
候補導出プロセスにおいて使用される前または前記候補導出プロセスが完了した後のいずれかにおいて、前記現在ピクチャに対する複数の動きベクトル予測子候補の各々の動きベクトル予測子候補を整数ペル精度に変換することをさらに備える、請求項１に記載の方法。
【請求項９】
前記参照ピクチャリストが前記現在ピクチャだけを含むとき、時間的動きベクトル予測子を無効にすることをさらに備える、請求項１に記載の方法。
【請求項１０】
前記現在ビデオブロックがルーマ成分とクロマ成分とを備え、前記ルーマ成分または前記クロマ成分のうちの１つだけが整数ペル精度を有する、請求項１に記載の方法。
【請求項１１】
前記現在ピクチャが前記参照ピクチャリストに追加される資格があり、前記現在ピクチャの各予測サンプルが、前記現在ピクチャのピクチャ境界内に含まれる、請求項１に記載の方法。
【請求項１２】
前記現在ピクチャの隣接ピクチャを決定することと、ここにおいて、前記隣接ブロックが空間的隣接ピクチャまたは時間的隣接ピクチャのいずれかである、
前記隣接ピクチャ中の予測ブロックを決定することと、ここにおいて、前記予測ブロックが動きベクトルを含む、
前記現在ブロックに対する参照ピクチャ中の参照ブロックを決定するために前記動きベクトルを使用することと、ここにおいて、前記参照ブロックが動き予測情報を含む、
前記参照ブロックの前記動き予測情報と残差とを使用して前記現在ビデオブロックを復号することとをさらに備える、請求項１に記載の方法。
【請求項１３】
ビデオデータを符号化する方法であって、
前記ビデオデータの現在ビデオブロックを符号化するために使用される参照ピクチャを決定することと、
前記参照ピクチャに対するピクチャ順序カウント（ＰＯＣ）値を決定することと、
前記参照ピクチャに対する前記ＰＯＣ値が前記現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値に等しいことに応答して、参照ピクチャリストが前記現在ピクチャを含むことを示すようにシンタックス要素の値を設定することと、
前記参照ピクチャに対する前記ＰＯＣ値が前記現在ピクチャに対する前記ＰＯＣ値と異なることに応答して、前記参照ピクチャリストが前記現在ピクチャを含まないことを示すように前記シンタックス要素の前記値を設定することとを備える、方法。
【請求項１４】
前記現在ピクチャが、ＰスライスまたはＢスライスのうちの１つを備えるイントラランダムアクセスピクチャである、請求項１３に記載の方法。
【請求項１５】
前記シンタックス要素が第１のシンタックス要素であり、前記イントラランダムアクセスピクチャが、空でない参照ピクチャセットを指定する１つまたは複数の異なるシンタックス要素のセットをさらに備える、請求項１４に記載の方法。
【請求項１６】
前記参照ピクチャが、前記現在ピクチャの復号されたフィルタリングされていないサンプルを含む、請求項１３に記載の方法。
【請求項１７】
前記シンタックス要素が、ピクチャパラメータセットまたはシーケンスパラメータセットのうちの１つの中に配置される、請求項１３に記載の方法。
【請求項１８】
前記現在ピクチャと異なるピクチャに少なくとも部分的に基づいて時間的動きベクトル予測子を決定することをさらに備える、請求項１３に記載の方法。
【請求項１９】
前記現在ピクチャがクリーンランダムアクセスピクチャまたは切断リンクアクセスピクチャのうちの１つであり、前記シンタックス要素が第１のシンタックス要素であり、前記方法が、
前記現在ピクチャに対する予測参照として使用される資格があるピクチャの数を示す第２のシンタックス要素の値を１に設定することをさらに備える、請求項１３に記載の方法。
【請求項２０】
前記参照ピクチャに対する前記ＰＯＣ値が前記現在ピクチャに対する前記ＰＯＣ値に等しく、前記現在ビデオブロックに対する動きベクトルが整数ペル精度を有し、前記方法が、
候補導出プロセスにおいて使用される前または前記候補導出プロセスが完了した後のいずれかにおいて、前記現在ピクチャに対する複数の動きベクトル予測子候補の各々の動きベクトル予測子候補を整数ペル精度に変換することをさらに備える、請求項１３に記載の方法。
【請求項２１】
前記参照ピクチャリストが前記現在ピクチャだけを含むとき、時間的動きベクトル予測子を無効にすることをさらに備える、請求項１３に記載の方法。
【請求項２２】
前記現在ビデオブロックがルーマ成分とクロマ成分とを備え、前記ルーマ成分または前記クロマ成分のうちの１つだけが整数ペル精度を有する、請求項１３に記載の方法。
【請求項２３】
前記参照ピクチャに対する前記ＰＯＣ値が前記現在ピクチャに対する前記ＰＯＣ値に等しく、前記現在ピクチャの各予測サンプルが前記現在ピクチャのピクチャ境界内に含まれる、請求項１３に記載の方法。
【請求項２４】
前記現在ピクチャの隣接ピクチャを決定することと、ここにおいて、前記隣接ブロックが空間的隣接ピクチャまたは時間的隣接ピクチャのいずれかである、
前記隣接ピクチャ中の予測ブロックを決定することと、ここにおいて、前記予測ブロックが動きベクトルを含む、
前記現在ブロックに対する前記参照ピクチャ中の参照ブロックを決定するために前記動きベクトルを使用することと、ここにおいて、前記参照ブロックが動き予測情報を含む、  前記参照ブロックの前記動き予測情報と残差とを使用して前記現在ビデオブロックを符号化することとをさらに備える、請求項１３に記載の方法。
【請求項２５】
ビデオデータを記憶するように構成されたメモリ、ならびに、
１つまたは複数のプロセッサを備え、前記１つまたは複数のプロセッサが、
前記ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格があるかどうかを示すシンタックス要素を受信することと、
前記シンタックス要素の値を決定することと、
前記ビデオデータの前記現在ビデオブロックが前記参照ピクチャリスト内にある資格があることを前記シンタックス要素が示すことに応答して、前記現在ピクチャを参照ピクチャリストに追加することと、
前記ビデオデータの前記現在ビデオブロックが前記参照ピクチャリスト内にある資格がないことを前記シンタックス要素が示すことに応答して、前記現在ピクチャが前記参照ピクチャリスト内に置かれるのを制限することと
を行うように構成された、ビデオ復号デバイス。
【請求項２６】
参照ピクチャに対する前記ＰＯＣ値が前記現在ピクチャに対する前記ＰＯＣ値に等しく、前記現在ビデオブロックに対する動きベクトルが整数ペル精度を有し、前記１つまたは複数のプロセッサが、
候補導出プロセスにおいて使用される前または前記候補導出プロセスが完了した後のいずれかにおいて、前記現在ピクチャに対する複数の動きベクトル予測子候補の各々の動きベクトル予測子候補を整数ペル精度に変換するようにさらに構成される、請求項２５に記載のビデオ復号デバイス。
【請求項２７】
前記１つまたは複数のプロセッサが、
前記参照ピクチャリストが前記現在ピクチャだけを含むとき、時間的動きベクトル予測子を無効にするようにさらに構成される、請求項２５に記載のビデオ復号デバイス。
【請求項２８】
前記現在ビデオブロックがルーマ成分とクロマ成分とを備え、前記ルーマ成分または前記クロマ成分のうちの１つだけが整数ペル精度を有する、請求項２５に記載のビデオ復号デバイス。
【請求項２９】
前記１つまたは複数のプロセッサが、
前記現在ピクチャの隣接ピクチャを決定することと、ここにおいて、前記隣接ブロックが空間的隣接ピクチャまたは時間的隣接ピクチャのいずれかである、
前記隣接ピクチャ中の予測ブロックを決定することと、ここにおいて、前記予測ブロックが動きベクトルを含む、
前記現在ブロックに対する参照ピクチャ中の参照ブロックを決定するために前記動きベクトルを使用することと、ここにおいて、前記参照ブロックが動き予測情報を含む、
前記参照ブロックの前記動き予測情報と残差とを使用して前記現在ビデオブロックを復号することとを行うようにさらに構成される、請求項２５に記載のビデオ復号デバイス。
【請求項３０】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格があるかどうかを示すシンタックス要素を受信することと、
前記シンタックス要素の値を決定することと、
前記ビデオデータの前記現在ビデオブロックが前記参照ピクチャリスト内にある資格があることを前記シンタックス要素が示すことに応答して、前記現在ピクチャを参照ピクチャリストに追加することと、
前記ビデオデータの前記現在ビデオブロックが前記参照ピクチャリスト内にある資格がないことを前記シンタックス要素が示すことに応答して、前記現在ピクチャが前記参照ピクチャリスト内に置かれるのを制限することと
を行わせる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、その各々の内容全体が参照により本明細書に組み込まれる、以下の米国仮特許出願に関する。
２０１５年２月３日に出願された米国仮特許出願第６２／１１１，５６８号、
２０１４年１２月４日に出願された米国仮特許出願第６２／０８７，７０５号、および２０１４年１０月７日に出願された米国仮特許出願第６２／０６１，１２１号。
【０００２】
[0002]本開示はビデオコーディングに関し、より詳細には、他のビデオブロックに基づいたビデオブロックの予測に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ  １０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。これらのビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部）はビデオブロックに区分され得、これらのビデオブロックは、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもある。ピクチャのイントラコーディングされた（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コーディングされたブロックと予測ブロックとの差分を示す。イントラコーディングされたブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。最初に２次元アレイで構成される量子化変換係数は、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
【発明の概要】
【０００６】
[0006]概して、本開示は、イントラブロックコピーおよびインターモードに対するブロックベクトルコーディングに関する技法について説明する。様々な例では、本開示の技法は、スクリーンコンテンツコーディングとともに使用され得る。
【０００７】
[0007]一例では、本開示は、現在ビデオブロックをコーディングするために使用される参照ピクチャを決定することと、参照ピクチャに対するピクチャ順序カウント（ＰＯＣ）値を決定することと、参照ピクチャに対するＰＯＣ値が現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値に等しいことに応答して、参照ピクチャリストが現在ピクチャを含むことを示すようにシンタックス要素の値を設定することと、参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値と異なることに応答して、参照ピクチャリストが現在ピクチャを含まないことを示すようにシンタックス要素の値を設定することとを備えるビデオブロックを符号化する方法を対象とする。
【０００８】
[0008]別の例では、本開示は、ビデオデータを記憶するように構成されたメモリと、１つまたは複数のプロセッサとを備えるビデオ符号化デバイスを対象とし、１つまたは複数のプロセッサが、現在ビデオブロックをコーディングするために使用される参照ピクチャを決定することと、参照ピクチャに対するピクチャ順序カウント（ＰＯＣ）値を決定することと、参照ピクチャに対するＰＯＣ値が現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値に等しいことに応答して、参照ピクチャリストが現在ピクチャを含むことを示すようにシンタックス要素の値を設定することと、参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値と異なることに応答して、参照ピクチャリストが現在ピクチャを含まないことを示すようにシンタックス要素の値を設定することとを行うように構成される。
【０００９】
[0009]別の例では、本開示は、ビデオ符号化のための装置を対象とし、装置は、ビデオブロックをコーディングするために使用される参照ピクチャを決定するための手段と、参照ピクチャに対するピクチャ順序カウント（ＰＯＣ）値を決定するための手段と、参照ピクチャに対するＰＯＣ値が現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値に等しいことに応答して、参照ピクチャリストが現在ピクチャを含むことを示すようにシンタックス要素の値を設定するための手段と、参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値と異なることに応答して、参照ピクチャリストが現在ピクチャを含まないことを示すようにシンタックス要素の値を設定するための手段とを備える。
【００１０】
[0010]別の例では、本開示は、１つまたは複数のプロセッサによって実行されたとき、１つまたは複数のプロセッサに、現在ビデオブロックをコーディングするために使用される参照ピクチャを決定することと、参照ピクチャに対するピクチャ順序カウント（ＰＯＣ）値を決定することと、参照ピクチャに対するＰＯＣ値が現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値に等しいことに応答して、参照ピクチャリストが現在ピクチャを含むことを示すようにシンタックス要素の値を設定することと、参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値と異なることに応答して、参照ピクチャリストが現在ピクチャを含まないことを示すようにシンタックス要素の値を設定することとを行わせる命令を記憶するコンピュータ可読記憶媒体を対象とする。
【００１１】
[0011]別の例では、本開示は、ビデオデータを復号する方法を対象とし、この方法は、ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格がある（ｅｌｉｇｉｂｌｅ）かどうかを示すシンタックス要素を受信することと、シンタックス要素の値を決定することと、ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格があることをシンタックス要素が示すことに応答して、現在ピクチャを参照ピクチャリストに追加することと、ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格がないことをシンタックス要素が示すことに応答して、現在ピクチャが参照ピクチャリスト内に置かれるのを制限することとを備える。
【００１２】
[0012]別の例では、本開示は、ビデオデータを記憶するように構成されたメモリ、ならびに、ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格があるかどうかを示すシンタックス要素を受信することと、シンタックス要素の値を決定することと、ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格があることをシンタックス要素が示すことに応答して、現在ピクチャを参照ピクチャリストに追加することと、ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格がないことをシンタックス要素が示すことに応答して、現在ピクチャが参照ピクチャリスト内に置かれるのを制限することとを行うように構成された１つまたは複数のプロセッサを備えるビデオ復号デバイスを対象とする。
【００１３】
[0013]別の例では、本開示は、ビデオ符号化のための装置を対象とし、装置は、ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格があるかどうかを示すシンタックス要素を受信するための手段と、シンタックス要素の値を決定するための手段と、ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格があることをシンタックス要素が示すことに応答して、現在ピクチャを参照ピクチャリストに追加するための手段と、ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格がないことをシンタックス要素が示すことに応答して、現在ピクチャが参照ピクチャリスト内に置かれるのを制限するための手段とを備える。
【００１４】
[0014]別の例では、本開示は、１つまたは複数のプロセッサによって実行されたとき、１つまたは複数のプロセッサに、ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格があるかどうかを示すシンタックス要素を受信することと、シンタックス要素の値を決定することと、ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格があることをシンタックス要素が示すことに応答して、現在ピクチャを参照ピクチャリストに追加することと、ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格がないことをシンタックス要素が示すことに応答して、現在ピクチャが参照ピクチャリスト内に置かれるのを制限することとを行わせる命令を記憶するコンピュータ可読記憶媒体を対象とする。
【００１５】
[0015]本開示の１つまたは複数の例の詳細が添付の図面および以下の説明に記載されている。本開示の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１６】
【図１】[0016]本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２Ａ】[0017]ビデオデータのための異なるサンプルフォーマットを示す概念図。
【図２Ｂ】ビデオデータのための異なるサンプルフォーマットを示す概念図。
【図２Ｃ】ビデオデータのための異なるサンプルフォーマットを示す概念図。
【図３】[0018]４：２：０サンプルフォーマットに従ってフォーマットされた１６×１６コーディングユニットを示す概念図。
【図４】[0019]４：２：２サンプルフォーマットに従ってフォーマットされた１６×１６コーディングユニットを示す概念図。
【図５】[0020]イントラ動き補償（ＩＭＣ）モードの概念図。
【図６】[0021]マージモードおよびＡＭＶＰモードに対する空間的隣接動きベクトル候補の例を示す図。
【図７】[0022]隣接するブロックＰおよびＱによって形成される４ピクセル長の垂直ブロック境界の図。
【図８】[0023]例示的な空間的ブロックベクトル候補を示す概念図。
【図９】[0024]本開示で説明する技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図１０】[0025]本開示で説明する技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図１１】[0026]本明細書で説明する１つまたは複数の技法による例示的なビデオ符号化技法を示すフロー図。
【図１２】[0027]本明細書で説明する１つまたは複数の技法による例示的な復号技法を示すフロー図。
【発明を実施するための形態】
【００１７】
[0028]最近開発された高効率ビデオコーディング（ＨＥＶＣ）規格を含む様々なビデオコーディング規格は、ビデオブロックのための予測コーディングモードを含み、ここで、現在コーディングされているブロックは、ビデオデータのすでにコーディングされたブロックに基づいて予測される。イントラ予測モードでは、現在ブロックは、現在ブロックと同じピクチャ中の１つまたは複数の以前にコーディングされた隣接するブロックに基づいて予測されるが、インター予測モードでは、現在ブロックは、異なるピクチャ中のすでにコーディングされたブロックに基づいて予測される。インター予測モードでは、予測ブロックとして使用するために以前にコーディングされたフレームのブロックを決定するプロセスは動き推定と呼ばれることがあり、動き推定は一般にビデオエンコーダによって実行され、予測ブロックを識別し取り出すプロセスは動き補償と呼ばれることがあり、動き補償はビデオエンコーダとビデオデコーダの両方によって実行される。
【００１８】
[0029]ビデオエンコーダは、一般に、複数のコーディングシナリオを使用してビデオをコーディングし、望ましいレートひずみトレードオフをもたらすコーディングシナリオを識別することによって、ビデオデータのシーケンスをどのようにコーディングするかを決定する。特定のビデオブロックのためのイントラ予測コーディングシナリオをテストするとき、ビデオエンコーダは、一般に、隣接するピクセルの行（すなわち、コーディングされているブロックのすぐ上にあるピクセルの行）をテストし、隣接するピクセルの列（すなわち、コーディングされているブロックのすぐ左にあるピクセルの列）をテストする。対照的に、インター予測シナリオをテストするとき、ビデオエンコーダは、一般に、はるかに大きい探索エリア中の候補予測ブロックを識別し、ここで、探索エリアは、ビデオデータの以前にコーディングされたフレーム中のビデオブロックに対応する。
【００１９】
[0030]しかしながら、テキスト、シンボル、または繰返しパターンを含むビデオ画像など、いくつかのタイプのビデオ画像の場合、コーディング利得は、イントラブロックコピー（ＩＢＣ）モードと呼ばれることもあるイントラ動き補償（ＩＭＣ）モードを使用することによって、イントラ予測およびインター予測に対して達成され得ることが発見された。本開示では、ＩＭＣモードおよびＩＢＣモードという用語は交換可能である。たとえば、当初はＩＭＣモードという用語が開発者によって使用されていたが、後にＩＢＣモードに変更された。ＩＭＣモードでは、イントラ予測モードの場合、ビデオエンコーダは、コーディングされているブロックと同じフレームまたはピクチャ中の予測ブロックを探索するが、インター予測モードの場合、ビデオエンコーダは、隣接する行および列だけではなく、より広い探索エリアを探索する。
【００２０】
[0031]ＩＭＣモードでは、ビデオエンコーダは、予測されているブロックと同じフレームまたはピクチャ内の予測ブロックを識別するために、動きベクトルまたはブロックベクトルと呼ばれることもあるオフセットベクトルを決定し得る。オフセットベクトルは、たとえば、ｘ成分とｙ成分とを含み、ｘ成分は予測されているビデオブロックと予測ブロックとの間の水平変位を識別し、ｙ成分は予測されているビデオブロックと予測ブロックとの間の垂直変位を識別する。符号化ビットストリームを復号するときに、ビデオデコーダがビデオエンコーダによって選択された予測ブロックを識別することができるように、ビデオエンコーダは、符号化ビットストリーム中で、決定されたオフセットベクトルをシグナリングする。
【００２１】
[0032]本開示は、イントラブロックコピーとインターコーディングとを効率的に統合するための技法を紹介する。提案する技法は、主として、限定はしないが、場合によっては高ビット深度（たとえば、８ビット以上）と４：４：４、４：２：２、４：２：０、４：０：０などの異なるクロマサンプリングフォーマットとのサポートを含むスクリーンコンテンツコーディングを対象とする。
【００２２】
[0033]図１は、本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。図１に示すように、システム１０は、宛先デバイス１４によって後の時間において復号されるべき符号化ビデオデータを生成するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信に対応し得る。
【００２３】
[0034]宛先デバイス１４は、リンク１６を介して、復号されるべき符号化ビデオデータを受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク１６は、ソースデバイス１２が符号化ビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路などの、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【００２４】
[0035]代替的に、符号化データは、出力インターフェース２２からストレージデバイス１７に出力されてもよい。同様に、符号化データは、入力インターフェースによってストレージデバイス１７からアクセスされ得る。ストレージデバイス１７は、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス１７は、ソースデバイス１２によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに相当し得る。宛先デバイス１４は、ストレージデバイス１７からストリーミングまたはダウンロードを介して、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶すること、およびその符号化ビデオデータを宛先デバイス１４へ送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイト用の）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む任意の標準的なデータ接続を通じて符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適したワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。ストレージデバイス１７からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００２５】
[0036]本開示の技法は、必ずしもワイヤレスの用途または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および／またはビデオ電話のような適用例をサポートするために、一方向または双方向のビデオ伝送をサポートするように構成され得る。
【００２６】
[0037]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。いくつかの場合、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成し得る。しかしながら、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤードの適用例に適用され得る。
【００２７】
[0038]キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４へ直接送信され得る。符号化ビデオデータは同じく（または代替的に）、復号および／または再生のために宛先デバイス１４または他のデバイスによって後でアクセスできるように、ストレージデバイス１７に記憶されてもよい。
【００２８】
[0039]宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を介して符号化ビデオデータを受信する。リンク１６を介して通信されるかまたはストレージデバイス１７上で提供される符号化ビデオデータは、ビデオデータを復号する際にビデオデコーダ３０などのビデオデコーダによって使用するための、ビデオエンコーダ２０によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信される符号化ビデオデータとともに含められてよく、記憶媒体上に記憶されてよく、またはファイルサーバを記憶されてもよい。
【００２９】
[0040]ディスプレイデバイス３２は、宛先デバイス１４と統合されてよく、または宛先デバイス１４の外部にあってもよい。いくつかの例では、宛先デバイス１４は、集積ディスプレイデバイスを含んでよく、また、外部ディスプレイデバイスとインターフェースするように構成されてもよい。他の例では、宛先デバイス１４は、ディスプレイデバイスであってもよい。概して、ディスプレイデバイス３２は、復号ビデオデータをユーザに表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３０】
[0041]ビデオエンコーダ２０およびビデオデコーダ３０は、高効率ビデオコーディング（ＨＥＶＣ）などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。「ＨＥＶＣワーキングドラフト１０」または「ＨＥＶＣ  ＷＤ１０」と呼ばれるＨＥＶＣ規格のワーキングドラフトは、Ｂｒｏｓｓら、「Ｅｄｉｔｏｒｓ’  ｐｒｏｐｏｓｅｄ  ｃｏｒｒｅｃｔｉｏｎｓ  ｔｏ  ＨＥＶＣ  ｖｅｒｓｉｏｎ  １」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のビデオコーディング共同研究部会（ＪＣＴ−ＶＣ：Joint Collaborative Team on Video Coding）、第１３回会議、仁川、韓国、２０１３年４月に記載されている。本開示で説明する技法はまた、現在開発中のＨＥＶＣ規格の拡張に従って動作し得る。代替または追加として、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ  １０，アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格などの、他のプロプライエタリ規格もしくは業界規格、またはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、および、スケーラブルビデオコーディング（ＳＶＣ）拡張とマルチビュービデオコーディング（ＭＶＣ）拡張とを含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４を含む。
【００３１】
[0042]最近、新しいビデオコーディング規格、すなわちＨｉｇｈ−Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）の設計が、ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）およびＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）のＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって確定された。以後ＨＥＶＣ  ＷＤと呼ばれる、最新のＨＥＶＣドラフト仕様は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１５＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｏ１００３−ｖ２．ｚｉｐから入手可能である。ＨＥＶＣに対する範囲拡張、すなわち、ＨＥＶＣ−ＲＥｘｔがまた、ＪＣＴ−ＶＣによって開発されている。以後ＲＥｘｔ  ＷＤ７と呼ばれる、範囲拡張の最近のワーキングドラフト（ＷＤ）が、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１７＿Ｖａｌｅｎｃｉａ／ｗｇ１１／ＪＣＴＶＣ−Ｑ１００５−ｖ４．ｚｉｐから入手可能である。
【００３２】
[0043]本明細書では、ＪＣＴＶＣ−Ｑ１００３におけるようなＨＥＶＣ仕様テキストはしばしば、ＨＥＶＣバージョン１と呼ばれる。範囲拡張仕様は、ＨＥＶＣのバージョン２になり得る。しかしながら、おおむね、提案する技法たとえば動きベクトル予測に関する限り、ＨＥＶＣバージョン１および範囲拡張仕様は技術的に同様である。したがって、私たちがＨＥＶＣバージョン１に基づく変化を指すときはいつでも、同じ変化が範囲拡張仕様に適用されてよく、私たちがＨＥＶＣバージョン１モジュールを再使用するときはいつでも、私たちはまた、実際に、（同じ従属節を有する）ＨＥＶＣ範囲拡張モジュールを再使用している。
【００３３】
[0044]最近、動きを伴うテキストおよびグラフィックスなどのスクリーンコンテンツ材料のための新しいコーディングツールの調査が要求され、スクリーンコンテンツに対するコーディング効率を改善する技術が提案されている。新規の専用コーディングツールを用いてスクリーンコンテンツの特性を活用することによってコーディング効率の有意な改善が得られ得るという証拠があるので、スクリーンコンテンツコーディング（ＳＣＣ）のための特定のツールを含む、高効率ビデオコーディング（ＨＥＶＣ）規格の場合によっては開発中の将来の拡張を目標とした提案の募集（ＣｆＰ）が発行されている。会社および団体は、この募集に応答して提案を提出するように勧誘されている。このＣｆＰの使用事例および要件が、ＭＰＥＧドキュメントＮ１４１７４に記載されている。第１７回ＪＣＴ−ＶＣ会合中に、ＳＣＣ試験モデル（ＳＣＭ）が確立される。ＳＣＣの最近のワーキングドラフト（ＷＤ）が、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１８＿Ｓａｐｐｏｒｏ／ｗｇ１１／ＪＣＴＶＣ−Ｒ１００５−ｖ３．ｚｉｐから入手可能である。
【００３４】
[0045]図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は各々、オーディオエンコーダおよびデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を扱うために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）のような他のプロトコルに準拠し得る。
【００３５】
[0046]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を実施するために１つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００３６】
[0047]ＪＣＴ−ＶＣが、ＨＥＶＣ規格を開発した。ＨＥＶＣ規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の機能を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを与えるが、ＨＭは３３個ものイントラ予測符号化モードを与え得る。
【００３７】
[0048]概して、ＨＭの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ：largest coding unit）に分割され得ることを記載している。ツリーブロックは、Ｈ．２６４規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従って、コーディングユニット（ＣＵ）に分割され得る。たとえば、４分木のルートノードとしてのツリーブロックは、４つの子ノードに分割される場合があり、各子ノードは、今度は親ノードとなり、別の４つの子ノードに分割される場合がある。４分木のリーフノードとしての最終的な分割されない子ノードは、コーディングノード、すなわち、コーディングされたビデオブロックを備える。コーディングされたビットストリームに関連付けられたシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
【００３８】
[0049]ＣＵは、ＨＥＶＣにおける基本コーディングユニットとして定義される。ＨＥＶＣでは、フレームは最初に、ＣＴＵ（コーディングツリーユニット）と呼ばれる、いくつかの方形ユニットに分割される。ＣＴＵサイズを２Ｎ×２Ｎとする。各ＣＴＵは４つのＮ×Ｎ  ＣＵに分割され得、各ＣＵは４つの（Ｎ／２）×（Ｎ／２）ユニットにさらに分割され得る。ブロック分割は、あらかじめ定義された最大分割レベルまたは許容される最小ＣＵサイズに達するまで、同様の方法で継続することができる。ＣＴＵのサイズ、ＣＴＵをＣＵにさらに分割するレベル、およびＣＵの最小サイズは符号化構成において定義され、ビデオデコーダ３０に送られるか、またはビデオエンコーダ２０とビデオデコーダ３０の両方に知られていてもよい。
【００３９】
[0050]ＣＵは、コーディングノードと、コーディングノードに関連付けられた予測ユニット（ＰＵ）および変換ユニット（ＴＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４ピクセル以上を持つツリーブロックのサイズまでわたり得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵに関連付けられたシンタックスデータは、たとえば、１つまたは複数のＰＵへのＣＵの区分を記述し得る。区分モードは、ＣＵがスキップモード符号化もしくは直接モード符号化されるのか、イントラ予測モード符号化されるのか、またはインター予測モード符号化されるのかの間で異なり得る。ＰＵは、形状が非方形に区分され得る。ＣＵに関連付けられたシンタックスデータは、たとえば、４分木に従ってＣＵを１つまたは複数のＴＵに区分することをも記述し得る。ＴＵは、形状が正方形または非正方形であり得る。
【００４０】
[0051]ＨＥＶＣ規格は、ＣＵごとに異なり得るＴＵに従う変換を可能にする。ＴＵは、通常、区分されたＬＣＵのために定義された、所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。ＴＵは通常、ＰＵと同じサイズであるか、またはそれよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用してより小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれ得る。ＴＵに関連するピクセル差分値は、変換係数を生成するために変換され得、その変換係数は量子化され得る。
【００４１】
[0052]概して、ＰＵは、予測プロセスに関係するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、そのＰＵ用の動きベクトルを定義するデータを含む場合がある。ＰＵのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度または１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリスト（たとえば、リスト０、リスト１、またはリストＣ）を記述し得る。
【００４２】
[0053]概して、ＴＵは、変換プロセスと量子化プロセスとのために使用される。１つまたは複数のＰＵを有する所与のＣＵは、１つまたは複数の変換ユニット（ＴＵ）をも含み得る。予測の後に、ビデオエンコーダ２０は、ＰＵに対応する残差値を計算することができる。残差値はピクセル差分値を備え、ピクセル差分値は、エントロピーコーディングのためのシリアル化変換係数（serialized transform coefficient）を生成するために、ＴＵを使用して変換係数に変換され、量子化され、走査され得る。本開示では、一般に、ＣＵのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示では、コーディングノードならびにＰＵおよびＴＵを含む、ツリーブロック、すなわち、ＬＣＵまたはＣＵを指すために「ビデオブロック」という用語をも使用し得る。
【００４３】
[0054]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。ピクチャのグループ（ＧＯＰ）は、概して、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャの１つもしくは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は通常、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し、指定のコーディング規格に応じてサイズが異なり得る。
【００４４】
[0055]例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測と、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称ＰＵサイズでのインター予測とをサポートする。ＨＭは、また、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための、非対称区分をサポートする。非対称区分では、ＣＵの一方の方向は区分されず、他方の方向は、２５％と７５％に区分される。２５％区分に対応するＣＵの部分は、「ｎ」とそれに続く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」の指示によって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分される２Ｎ×２Ｎ  ＣＵを指す。
【００４５】
[0056]本開示では、たとえば１６×１６ピクセルまたは１６かける１６ピクセルなど、「Ｎ×Ｎ」および「ＮかけるＮ（N by N）」は、垂直および水平の寸法に関して、ビデオブロックのピクセル範囲を示すために区別なく使用され得る。概して、１６×１６ブロックは、垂直方向に１６ピクセル（ｙ＝１６）、および水平方向に１６ピクセル（ｘ＝１６）を有する。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ここでＮは非負の整数値を表す。ブロック内のピクセルは、行および列に配列され得る。さらに、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはＮ×Ｍピクセルを備えてよく、ここで、Ｍは必ずしもＮに等しいとは限らない。
【００４６】
[0057]したがって、ＨＥＶＣによれば、ＣＵは、１つもしくは複数の予測ユニット（ＰＵ）および／または１つもしくは複数の変換ユニット（ＴＵ）を含み得る。本開示ではまた、ＣＵ、ＰＵ、またはＴＵのいずれかを指すために「ブロック」、「区分」または「部分」という用語を使用する。概して、「部分」は、ビデオフレームの任意のサブセットを指し得る。さらに、本開示では、一般に、ＣＵのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合には、本開示ではまた、コーディングノードならびにＰＵおよびＴＵを含む、ツリーブロック、すなわち、ＬＣＵまたはＣＵを指すために「ビデオブロック」という用語を使用し得る。したがって、ビデオブロックはＣＵ内のコーディングノードに対応する場合があり、ビデオブロックは固定サイズまたは可変サイズを有する場合があり、指定されたコーディング規格に応じてサイズが異なる場合がある。
【００４７】
[0058]クロマフォーマットと呼ばれることもあるビデオサンプリングフォーマットは、ＣＵに含まれるルーマサンプルの数に対して、ＣＵに含まれるクロマサンプルの数を定義し得る。クロマ成分用のビデオサンプリングフォーマットに応じて、Ｕ成分およびＶ成分の、サンプルの数に関するサイズは、Ｙ成分のサイズと同じか、または異なる場合がある。ＨＥＶＣ規格では、ｃｈｒｏｍａ＿ｆｏｒｍａｔ＿ｉｄｃと呼ばれる値は、ルーマ成分に対して、クロマ成分の異なるサンプリングフォーマットを示すために定義される。ＨＥＶＣでは、ｃｈｒｏｍａ＿ｆｏｒｍａｔ＿ｉｄｃはＳＰＳにおいてシグナリングされる。表１は、ｃｈｒｏｍａ＿ｆｏｒｍａｔ＿ｉｄｃの値と関連するクロマフォーマットとの間の関係を示す。
【００４８】
【表１】
2019169964.tif 000003
【００４９】
[0059]表１では、変数ＳｕｂＷｉｄｔｈＣおよびＳｕｂＨｅｉｇｈｔＣは、ルーマ成分用のサンプルの数とクロマ成分ごとのサンプルの数との間の、水平および垂直のサンプリングレートの比を示すために使用され得る。表１に記載されたクロマフォーマットでは、２つのクロマ成分は同じサンプリングレートを有する。したがって、４：２：０サンプリングでは、２つのクロマアレイの各々はルーマアレイの半分の高さと半分の幅とを有するが、４：２：２サンプリングでは、２つのクロマアレイの各々はルーマアレイの同じ高さと半分の幅とを有する。４：４：４サンプリングでは、２つのクロマアレイの各々はルーマアレイと同じ高さと同じ幅とを有し得るか、場合によっては、３つの色平面はすべて、モノクロームサンプリングされたピクチャとして別個に処理され得る。
【００５０】
[0060]表１の例では、４：２：０フォーマットの場合、水平方向と垂直方向の両方について、ルーマ成分用のサンプリングレートは、クロマ成分のサンプリングレートの２倍である。結果として、４：２：０フォーマットに従ってフォーマットされたコーディングユニットの場合、ルーマ成分用のサンプルのアレイの幅および高さは、クロマ成分用のサンプルの各アレイの幅および高さの２倍である。同様に、４：２：２フォーマットに従ってフォーマットされたコーディングユニットの場合、ルーマ成分用のサンプルのアレイの幅は、クロマ成分ごとのサンプルのアレイの幅のそれの２倍であるが、ルーマ成分用のサンプルのアレイの高さは、クロマ成分ごとのサンプルのアレイの高さに等しい。４：４：４フォーマットに従ってフォーマットされたコーディングユニットの場合、ルーマ成分用のサンプルのアレイは、クロマ成分ごとのサンプルのアレイと同じ幅と高さとを有する。ＹＵＶ色空間に加えて、ビデオデータはＲＧＢ空間色に従って定義され得ることに留意されたい。このようにして、本明細書で説明するクロマフォーマットはＹＵＶ色空間またはＲＧＢ色空間のいずれかに適用され得る。ＲＧＢクロマフォーマットは一般に、赤サンプルの数、緑サンプルの数および青サンプルの数が等しくなるようにサンプリングされる。したがって、本明細書で使用する「４：４：４クロマフォーマット」という用語は、ＹＵＶ色空間またはＲＧＢ色空間のいずれかを指し得、ここにおいて、サンプルの数はすべての色成分について等しい。
【００５１】
[0061]本開示の技法によれば、ビデオエンコーダ２０は、現在ピクチャ中の現在ブロックをコーディングするために使用される参照ピクチャを決定し得る。たとえば、参照ピクチャは、現在ビデオブロックをコーディングするために使用される動き予測情報を有する参照ブロックを含み得る。ビデオエンコーダ２０はさらに、参照ピクチャに対するピクチャ順序カウント（ＰＯＣ）値を決定し得る。参照ピクチャに対するＰＯＣ値が現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値に等しいことに応答して、ビデオエンコーダ２０は、参照ピクチャリストが現在ピクチャを含むことを示すようにシンタックス要素の値を設定し得る。参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値と異なることに応答して、ビデオエンコーダ２０は、参照ピクチャリストが現在ピクチャを含まないことを示すようにシンタックス要素の値を設定し得る。
【００５２】
[0062]本開示のさらなる技法では、ビデオデコーダ３０は、ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格があるかどうかを示すシンタックス要素を受信し得る。ビデオデコーダ３０はさらに、シンタックス要素の値を決定し得る。ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格があることをシンタックス要素が示すことに応答して、ビデオデコーダ３０は、現在ピクチャを参照ピクチャリストに追加し得る。ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格がないことをシンタックス要素が示すことに応答して、ビデオデコーダ３０は、現在ピクチャが参照ピクチャリスト内に置かれるのを制限し得る。
【００５３】
[0063]図２Ａ〜図２Ｃは、ビデオデータのための異なるサンプルフォーマットを示す概念図である。図２Ａは、４：２：０サンプルフォーマットを示す概念図である。図２Ａに示すように、４：２：０サンプルフォーマットの場合、クロマ成分はルーマ成分の４分の１のサイズである。したがって、４：２：０サンプルフォーマットに従ってフォーマットされたＣＵの場合、クロマ成分のサンプルごとに４つのルーマサンプルが存在する。図２Ｂは、４：２：２サンプルフォーマットを示す概念図である。図２Ｂに示すように、４：２：２サンプルフォーマットの場合、クロマ成分はルーマ成分の２分の１のサイズである。したがって、４：２：２サンプルフォーマットに従ってフォーマットされたＣＵの場合、クロマ成分のサンプルごとに２つのルーマサンプルが存在する。図２Ｃは、４：４：４サンプルフォーマットを示す概念図である。図２Ｃに示すように、４：４：４サンプルフォーマットの場合、クロマ成分はルーマ成分と同じサイズである。したがって、４：４：４サンプルフォーマットに従ってフォーマットされたＣＵの場合、クロマ成分のサンプルごとに１つのルーマサンプルが存在する。
【００５４】
[0064]図３は、４：２：０サンプルフォーマットに従ってフォーマットされた１６ｘ１６コーディングユニットの一例を示す概念図である。図３は、ＣＵ内のルーマサンプルに対するクロマサンプルの相対位置を示す。上述のように、ＣＵは、一般に、水平方向および垂直方向のルーマサンプルの数によって定義される。したがって、図３に示すように、４：２：０サンプルフォーマットに従ってフォーマットされた１６×１６  ＣＵは、ルーマ成分の１６×１６サンプルと、クロマ成分ごとの８×８サンプルとを含む。さらに、上記で説明したように、ＣＵはより小さいＣＵに区分され得る。たとえば、図３に示すＣＵは、４つの８×８  ＣＵに区分され得、ここで、各８×８  ＣＵは、ルーマ成分用の８×８サンプルと、クロマ成分ごとの４×４サンプルとを含む。
【００５５】
[0065]図４は、４：２：２サンプルフォーマットに従ってフォーマットされた１６×１６コーディングユニットの一例を示す概念図である。図４は、ＣＵ内のルーマサンプルに対するクロマサンプルの相対位置を示す。上記で説明したように、ＣＵは、一般に、水平方向および垂直方向のルーマサンプルの数に従って定義される。したがって、図４に示すように、４：２：２サンプルフォーマットに従ってフォーマットされた１６×１６  ＣＵは、ルーマ成分用の１６×１６サンプルと、クロマ成分ごとの８×１６サンプルとを含む。さらに、上記で説明したように、ＣＵはより小さいＣＵに区分され得る。たとえば、図４に示すＣＵは、４つの８×８  ＣＵに区分され得、ここで、各ＣＵは、ルーマ成分用の８×８サンプルと、クロマ成分ごとの４×８サンプルとを含む。
【００５６】
[0066]ＣＵのＰＵを使用するイントラ予測コーディングまたはインター予測コーディングの後で、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域においてピクセルデータを備え得、ＴＵは、変換、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵについての残差データを含むＴＵを形成し、次いで、ＣＵの変換係数を生成するためにＴＵを変換し得る。
【００５７】
[0067]変換係数を生成するための任意の変換の後に、ビデオエンコーダ２０は、変換係数の量子化を実施し得る。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられ得、ここで、ｎはｍよりも大きい。
【００５８】
[0068]いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は適応走査を実行し得る。量子化変換係数を走査して１次元のベクトルを形成した後、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディングまたは別のエントロピー符号化の方法に従って、１次元のベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０によって使用するための、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化し得る。
【００５９】
[0069]ＣＡＢＡＣを実施するために、ビデオエンコーダ２０は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの近隣値が非０であるか否かに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルのための可変長コードを選択し得る。ＶＬＣにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように、構成され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボル用の等長コードワードを使用することにまさるビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００６０】
[0070]本開示の１つの例示的な技法によれば、ビデオデコーダ３０は、ＩＭＣモードを使用してビデオデータの現在ブロックを復号し得る。ビデオデコーダ３０は、ビデオデータの現在ブロックについて、オフセットベクトルの成分をシグナリングするために使用されるコードワードの長さを決定し、コードワードの長さに基づいて、オフセットベクトルをコーディングし得る。コーディングされているオフセットベクトルの成分はｘ成分またはｙ成分のいずれかであり得、一方の成分をシグナリングするために使用されるコードワードの長さは、ｘ成分およびｙ成分の他方をシグナリングするために使用される第２のコードワードの長さとは異なり得る。
【００６１】
[0071]ビデオデコーダ３０は、たとえば、ビデオデータの現在ブロックのためのＩＭＣを実行するために使用される探索領域のサイズに基づいてコードワードの長さを決定することによって、オフセットベクトルの成分をシグナリングするために使用されるコードワードの長さを決定し得る。探索領域のサイズは、たとえば、現在ブロックのピクセルと探索領域の上部境界との間の距離、現在ブロックのピクセルと探索領域の左境界との間の距離、現在ブロックのピクセルと探索領域の右境界との間の距離のうちの１つまたは複数に基づいて決定され得る。
【００６２】
[0072]加えてまたは代替的に、ビデオデコーダ３０は、現在ブロックを備えるコーディングツリーユニットのサイズ、コーディングツリーユニット（ＣＴＵ）中の現在ブロックのロケーション、またはビデオデータのフレーム中の現在ブロックのロケーションのうちの１つまたは複数に基づいて、現在ブロックのサイズに基づいて、オフセットベクトルの成分をシグナリングするために使用されるコードワードの長さを決定し得る。
【００６３】
[0073]本開示の別の例示的な技法によれば、ビデオデコーダ３０は、ＩＭＣモードを使用してビデオデータの現在ブロックを復号し得る。ビデオデコーダ３０は、ビデオデータの現在ブロックについて、オフセットベクトル（たとえば、ビデオデコーダ３０がオフセットベクトルを決定するために使用する情報をビデオエンコーダ２０がシグナリングした、現在ブロックのルーマ成分のためのオフセットベクトル）を決定し、サブピクセル位置を指すオフセットベクトルに応答して（たとえば、クロマサンプル内のサブピクセル位置を指すオフセットベクトルに応答して）、現在ブロックのクロマ成分のための参照ブロックを配置するために使用される変更されたオフセットベクトルを生成するためにオフセットベクトルを変更し得る。変更されたオフセットベクトルは、たとえば、整数ピクセル位置を指すか、またはサブピクセル位置よりも精度が低い位置であるピクセル位置を指し得る。
【００６４】
[0074]本開示の別の例示的な技法によれば、ビデオデコーダ３０は、ビデオデータの現在ブロックについて、最大ＣＴＵサイズを決定し得る。ビデオデコーダ３０は、ビデオデータの現在ブロックについて、ＩＭＣモードのための最大ＣＵサイズを決定し得る。ＩＭＣモードのための最大ＣＵサイズは、最大ＣＴＵサイズよりも小さくてもよい。ビデオデコーダ３０は、ＩＭＣモードのための最大ＣＵサイズに基づいて、ビデオデータの現在ブロックをコーディングし得る。ＩＭＣモードのための最大ＣＵサイズに基づいてビデオデータの現在ブロックをコーディングすることは、たとえば、ＩＭＣモードのための最大ＣＵサイズよりも大きいビデオデータの現在ブロックのサイズに応答して、ＩＭＣモードでビデオデータの現在ブロックをコーディングしないこと、または、ＩＭＣモードのための最大ＣＵサイズよりも小さいかもしくはそれに等しいビデオデータの現在ブロックのサイズに応答して、ＩＭＣモードでビデオデータの現在ブロックをコーディングすることのうちの１つまたは複数を含み得る。ＩＭＣモードのための最大ＣＵサイズは、たとえば、符号化ビデオビットストリーム中でシグナリングされるか、またはすでにコーディングされたビデオデータの統計値に基づいて決定され得る。
【００６５】
[0075]本開示の別の例示的な技法によれば、ビデオデコーダ３０は、ＩＭＣモードを使用してビデオデータの現在ブロックをコーディングし得る。現在ブロックのサイズ、現在ブロックの位置、および現在ブロックを備えるＣＴＵのサイズのうちの１つまたは複数に基づいて、ビデオデコーダ３０は、ビデオデータの現在ブロックについて、オフセットベクトルをコーディングするためのコーディング方法を決定し、決定されたコーディング方法に基づいてオフセットベクトルをコーディングし得る。オフセットベクトルをコーディングするためのコーディング方法は、たとえば、固定長コーディング、可変長コーディング、算術コーディング、およびコンテキストベースのコーディングのうちの１つまたは組合せを含み得る。現在ブロックの位置は、たとえば、ＣＴＵ内の位置またはビデオデータのフレーム内の位置であり得る。
【００６６】
[0076]図５は、ＩＭＣモードの概念図を示す。上述のように、ＩＭＣモードはＩＢＣモードと同じである。ビデオエンコーダ２０およびビデオデコーダ３０は、たとえば、ＩＭＣモードを使用してビデオデータのブロックを符号化および復号するように構成され得る。リモートデスクトップ、リモートゲーム、ワイヤレスディスプレイ、自動車用インフォテインメント、クラウドコンピューティングなどの多くのアプリケーションは、人々の日常生活における日常手段になりつつあり、そのようなコンテンツをコーディングするときのコーディング効率はＩＭＣモードの使用によって改善され得る。図１のシステム１０は、これらのアプリケーションのうちのいずれかを実行するように構成されたデバイスを表し得る。これらのアプリケーションにおけるビデオコンテンツは、自然コンテンツ、テキスト、人工グラフィックスなどの組合せであることが多い。ビデオフレームのテキスト領域および人工グラフィックス領域では、（文字、アイコン、シンボルなどの）繰返しパターンが存在することが多い。上記で紹介したように、ＩＭＣは、ＪＣＴ−ＶＣ  Ｍ０３５０で報告されたように、この種類の冗長性を除去し、フレーム内コーディング効率を潜在的に改善することを可能にする専用の技法である。図５に示すように、ＩＭＣを使用するコーディングユニット（ＣＵ）の場合、予測信号は同じフレーム中のすでに再構成された領域から取得される。結局、現在ＣＵから変位した予測信号の位置を示すオフセットベクトルは、残差信号とともに符号化される。
【００６７】
[0077]たとえば、図５は、本開示による、同じピクチャ内のビデオデータの予測ブロックから、ビデオデータのブロックのイントラ予測用のモードに従って、たとえば、本開示の技法によるイントラＭＣモードに従って、現在ピクチャ１０３内のビデオデータの現在ブロック１０２を予測するための例示的な技法を示す。図５は、現在ピクチャ１０３内のビデオデータ１０４の予測ブロックを示す。ビデオコーダ、たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、本開示の技法によるイントラＭＣモードに従って現在ビデオブロック１０２を予測するために予測ビデオブロック１０４を使用し得る。
【００６８】
[0078]図５は、ＩＭＣモードでコーディングされている現在ブロックを示す。現在ブロックは、たとえば現在ＣＵであり得る。現在ＣＵのための予測ブロックは、探索領域１０８から取得され得る。探索領域１０８は、現在ＣＵと同じフレームからのすでにコーディングされたブロックを含む。たとえば、フレームがラスタ走査順序で（すなわち、左から右におよび上から下に）コーディングされていると仮定すると、フレームのすでにコーディングされたブロックは、図５に示すように、現在ＣＵの左側および上にあるブロックに対応する。いくつかの例では、探索領域１０８はフレーム中のすべてのすでにコーディングされたブロックを含み得るが、他の例では、探索領域はすべてよりも少ないすでにコーディングされたブロックを含み得る。動きベクトルまたは予測ベクトルと呼ばれることがある、図５におけるオフセットベクトルは、現在ＣＵの左上ピクセルと予測ブロックの左上ピクセルとの間の差分（図５における標識された予測信号）を識別する。したがって、符号化ビデオビットストリーム中でオフセットベクトルをシグナリングすることによって、ビデオデコーダは、現在ＣＵがＩＭＣモードでコーディングされるとき、現在ＣＵのための予測ブロックを識別することができる。
【００６９】
[0079]図５は、イントラブロックコピープロセスの一例を示す図である。ビデオエンコーダ２０は、現在ブロックを予測するためにイントラＢＣプロセスを実行してよい。上述のように、イントラＢＣは、ピクチャ中の冗長性を除去する専用プロセスであり得る。たとえば、イントラＢＣを使用するコーディングユニット（ＣＵ）の場合、ビデオエンコーダ２０またはビデオデコーダ３０は、同じピクチャ中のすでに再構成された領域から現在ブロックを取得し得る。いくつかの例では、ビデオエンコーダ２０またはビデオデコーダ３０はそれぞれ、現在ＣＵから変位されたときに現在ブロックを生成するために使用されるピクチャ中のブロックの位置を示すオフセットベクトルまたは変位ベクトル（動きベクトルとも呼ばれる）を、現在の信号とともに符号化または復号することができる。
【００７０】
[0080]たとえば、図５は、ＲＥｘｔ（すなわち、開発中の規格のＷＤ５を含む、ＨＥＶＣに対する範囲拡張）中に含まれているイントラＢＣの一例を示す。図５では、現在ＣＵは、現在ピクチャ／スライスのすでに復号されたブロックから予測される。言い換えれば、ビデオエンコーダ２０またはビデオデコーダ３０は、現在ピクチャを使用し得、現在ピクチャの現在ＣＵを予測するために参照ピクチャとして使用される。
【００７１】
[0081]概して、リモートデスクトップ、リモートゲーミング、ワイヤレスディスプレイ、自動車インフォテインメント、クラウドコンピューティングなどの多数のアプリケーションが、日常的手段になりつつある。これらのアプリケーションにおけるビデオコンテンツは、通常、自然コンテンツ、テキスト、人工グラフィックスなどの組合せである。テキスト領域および人工グラフィックス領域では、（文字、アイコン、シンボルなどの）繰返しパターンが存在することが多い。イントラＢＣは、この種類の冗長性を除去することとフレーム内コーディング効率を改善することとを可能にする専用技法である。図５に示すように、イントラＢＣを使用するコーディングユニット（ＣＵ）の場合、予測信号は同じピクチャ／スライス中のすでに再構成された領域から取得される。結局、現在ＣＵから変位した予測信号の位置を示すオフセットベクトルまたは変位ベクトル（動きベクトルとも呼ばれる）は、残差信号とともに符号化される。
【００７２】
[0082]いくつかの例では、ビデオエンコーダ２０は、ＰＰＳを指すピクチャがそのピクチャ自体の参照ピクチャリスト中に存在し得るか否かをビデオデコーダ３０に示すために、シンタックス要素ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇをシグナリングし得る。一例として、ビデオエンコーダ２０は、ＰＰＳを指すピクチャがそのピクチャ自体の参照ピクチャリスト中に存在し得ることを示すために、ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇを１に等しいとしてシグナリングし得る。別の例として、ビデオエンコーダ２０は、ＰＰＳを指すピクチャがそのピクチャ自体の参照ピクチャリスト中に存在しないことを示すために、ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇを０に等しいとしてシグナリングし得る。さらに別の例として、ビデオエンコーダ２０は、ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇをシグナリングしない。いくつかの例では、シンタックス要素ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇが存在しないとき、ビデオデコーダ３０はｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値が０に等しいものと推論し得る。いくつかの例では、ビデオエンコーダ２０は、変数ＮｕｍＡｄｄＲｅｆＰｉｃを（ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇ？１：０）に等しく設定し得る。他の例では、追加または代替として、このシンタックス要素は、他のデータ構造、たとえばシーケンスパラメータセット（ＳＰＳ）、ビデオパラメータセット（ＶＰＳ）、スライスヘッダなどに追加され得る。
【００７３】
[0083]現在のＨＥＶＣ範囲拡張規格では、イントラＢＣに対するＭＶは、ＨＥＶＣバージョン１における動きベクトル差分（ＭＶＤ）コーディング方法を使用して符号化される。しかしながら、イントラＢＣ  ＭＶフィールド特性の従来のインターＭＶフィールドとは異なる特性により、このコーディング方法は効率的でない。これに動機づけられて、本開示では、いくつかのＭＶコーディング方法が提案される。これらの例示的な技法は、別個に、または連携して実装され得る。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、各技法を別個に実装し得るか、あるいは１つまたは複数の技法を組み合わせて実装し得る。たとえば、本開示は、ＭＶをより効率的にコーディングするためにいくつかの技法を提案する。
【００７４】
[0084]これらの技法は、ＭＶの水平成分（すなわち、ＭＶ＿ｘ）に関して説明されるが、これらの技法は、ＭＶの垂直成分（すなわち、ＭＶ＿ｙ）に対して等しく適用可能であり得る。これらの技法は、１次元動きベクトルの成分と２次元動きベクトルの成分（すなわち、水平成分および垂直成分）の一方または両方との両方に対して使用され得る。さらに、これらの技法は、ｂ０、ｂ１、．．．、ｂｎを含むＭＶ＿ｘの２値化ストリングに言及し、ここで、ｂｉはストリング中のｉ番目のビンである。これらの技法は、エンコーダ２０のエントロピー符号化ユニットによって、またはデコーダ３０のエントロピー復号ユニットによって実装され得る。他の例では、これらの技法は、エンコーダ２０の予測処理ユニットによって、またはデコーダ３０の予測処理ユニットによって実装され得る。いくつかの例では、これらの技法は、ビデオエンコーダ２０とビデオデコーダ３０とのユニットの任意の組合せによって実装され得る。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０が集積回路（ＩＣ）またはマイクロコントローラとして実装される例では、これらの技法は、ＩＣまたはマイクロコントローラの１つまたは複数のユニットによって実装され得る。
【００７５】
[0085]本開示の第１の例では、第１のビンｂ０は、ＭＶ＿ｘの値が非ゼロであることを示し得る。たとえば、ａｂｓ（ＭＶ＿ｘ）＞０の場合にｂ０は１に等しく、ａｂｓ（ＭＶ＿ｘ）＝０の場合にｂ０は０に等しい（すなわち、ａｂｓ（ＭＶ＿ｘ）＞０で（ｂ０＝１）またはさもなければ（ｂ０＝０）。第１のビンｂ０は、コンテキストを有するＣＡＢＡＣを使用して（適用可能な場合に）符号化または復号され得る。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙに対するｂ０は、別個のコンテキストを有し得る。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙに対するｂ０は、同じコンテキストを共有し得る。いくつかの例では、イントラＭＣのｍｖコーディングにおけるｉ番目のビンは、インターＭＣのｍｖコーディングにおけるｉ番目のビンと同じコンテキストを共有し得る。いくつかの例では、イントラＭＣのｍｖコーディングおよびインターＭＣのｍｖコーディングにおけるｉ番目のビンはコンテキストを共有しない。
【００７６】
[0086]後続のビンｂ１ｂ２．．．は、ａｂｓ（ＭＶ＿ｘ）−１の値を表し得る。いくつかの例では、後続のビンｂ１ｂ２．．．は、バイパスモードにおけるパラメータ３を有する指数ゴロム符号を使用して（適用可能な場合に）符号化または復号され得る。いくつかの例では、指数ゴロム符号の他の順序、たとえば１、２、４、５が使用されることがあり、他の符号、たとえばライスゴロム符号が使用されることがある。指数ゴロム符号またはライスゴロム符号の順序は、ＣＵのサイズに依存し得ることに留意されたい。いくつかの例では、ｂ１は、ａｂｓ（ＭＶ＿ｘ）＝１である（すなわち、ｂ１＝１）か、またはそうでない（すなわち、ｂ１＝０）かを表すことができる。いくつかの例では、ｂ１は、バイパスモードを用いて、またはＣＡＢＡＣコンテキストを用いて（適用可能な場合に）符号化または復号され得る。そのような例では、ｂ２ｂ３．．．はａｂｓ（ＭＶ＿ｘ）−２の値を表してよく、バイパスモードにおけるパラメータ３を有する指数ゴロム符号を使用して（適用可能な場合に）符号化または復号され得る。
【００７７】
[0087]いくつかの例では、最後のビンは、ＭＶ＿ｘの符号を示す。最後のビンは、コンテキストなしにバイパスモードにおいて（適用可能な場合に）符号化または復号され得る。いくつかの例では、符号ビンは、１つまたは複数のコンテキストを有するＣＡＢＡＣを使用して（適用可能な場合に）符号化または復号され得る。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙに対する符号ビンは、別個のコンテキストを有し得る。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙに対する符号ビンは、同じコンテキストを共有し得る。
【００７８】
[0088]本開示の第２の例では、第１のビンｂ０は、後続のｂ１ｂ２．．．が、オフセットだけ少ないＭＶ＿ｘの値（すなわち、ＭＶ＿ｘ−ｏｆｆｓｅｔ＿ｘ）を表すかどうかを示し得る。たとえば、後続のｂ１ｂ２．．．がオフセットだけ少ないＭＶ＿ｘの値を表す場合に、ｂ０は１に等しく（すなわち、ｂ０＝１）、ｂ１ｂ２．．．がオフセットだけ少ないＭＶ＿ｘの値を表さない場合に、ｂ０はゼロに等しい（すなわち、ｂ０＝０）。いくつかの例では、たとえば、ｂ１ｂ２．．．がオフセットだけ少ないＭＶ＿ｘの値を表さない場合、ｂ１ｂ２．．．は、ＭＶ＿ｘの値を表し得る。言い換えれば、第１のビンｂ０は、後続のｂ１ｂ２．．．が、（ＭＶ＿ｘ−ｏｆｆｓｅｔ＿ｘ）の値を表す（ｂ０＝１）か、またはそうではなく（ＭＶ＿ｘ）の値を表す（ｂ０＝０）かを示し得る。いくつかの例では、オフセット（すなわち、ｏｆｆｓｅｔ＿ｘ）は、所定の値に対応してよく、またはＣＵの特性（たとえば、ＣＵ幅）の関数であってよい。たとえば、オフセット（ｏｆｆｓｅｔ＿ｘ）は、負の１を乗じられたＣＵの幅に等しくてよい（すなわち、ｏｆｆｓｅｔ＿ｘは−ＣＵＷｉｄｔｈ）。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙは異なるオフセットを有してよく、各成分は別個のｂ０を有する。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙはｂ０を共有してよく、ＭＶ＿ｘおよびＭＶ＿ｙに対するオフセットは同じであってよく、または異なってもよい。いくつかの例では、ｂ０は、コンテキストなしにバイパスモードにおいて（適用可能な場合に）符号化または復号され得る。いくつかの例では、ｂ０は、１つまたは複数のコンテキストを有するＣＡＢＡＣを使用して（適用可能な場合に）符号化または復号され得る。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙに対するｂ０は、別個のコンテキストを有し得る。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙに対するｂ０は、同じコンテキストを共有し得る。
【００７９】
[0089]いくつかの例では、たとえばｂ０＝１の場合、ｂ１ｂ２．．．は、ＭＶ＿ｘ−ｏｆｆｓｅｔ＿ｘを表すことができる。いくつかの例では、たとえばｂ０＝０の場合、ｂ１ｂ２．．．は、ＭＶ＿ｘを表すことができる。いくつかの例では、本開示の第１の例において上記で説明したコーディング方法は、ｂ１ｂ２．．．をコーディングするために使用され得る。言い換えれば、ｂ０の後、（ＭＶ＿ｘ−ｏｆｆｓｅｔ＿ｘ）（ｂ０＝１）または（ＭＶ＿ｘ）（ｂ０＝０）は、後続のストリングｂ１ｂ２．．．を用いて表されてよく、第１の例において上記で説明した方法は、コーディング方法として使用され得る。いくつかの例では、他のコーディング方法は、ｂ１ｂ２．．．を（適用可能な場合に）符号化または復号するために使用され得る。たとえば、ＨＥＶＣバージョン１におけるＭＶＤコーディング方法は、ｂ１ｂ２．．．をコーディングするために使用され得る。
【００８０】
[0090]本開示の第３の例では、第１のビンｂ０は、後続のｂ１ｂ２．．．が、オフセットだけ少ないＭＶ＿ｘの絶対値（すなわち、（ａｂｓ（ＭＶ＿ｘ）−ｏｆｆｓｅｔ＿ｘ））を表すか否かを示し得る。たとえば、後続のｂ１ｂ２．．．がオフセットだけ少ないＭＶ＿ｘの絶対値を表す場合に、ｂ０は１に等しく（すなわち、ｂ０＝１）、後続のｂ１ｂ２．．．がオフセットだけ少ないＭＶ＿ｘの絶対値を表さない場合に、ｂ０はゼロに等しい（すなわち、ｂ０＝０）。いくつかの例では、たとえば、ｂ１ｂ２．．．がオフセットだけ少ないＭＶ＿ｘの絶対値を表さない場合、ｂ１ｂ２．．．は、ＭＶ＿ｘの絶対値を表し得る。言い換えれば、第１のビンｂ０は、後続のｂ１ｂ２．．．が、（ａｂｓ（ＭＶ＿ｘ）−ｏｆｆｓｅｔ＿ｘ）の値を表す（ｂ０＝１）か、またはそうでなく（ａｂｓ（ＭＶ＿ｘ））の値を表す（ｂ０＝０）かを示し得る。いくつかの例では、オフセット（すなわち、ｏｆｆｓｅｔ＿ｘ）は、所定の値に対応してよく、またはＣＵの特性の関数（たとえば、ＣＵ幅の関数）の関数であり得る。たとえば、オフセットは、負の１を乗じられたＣＵの幅に等しくてよい（すなわち、ｏｆｆｓｅｔ＿ｘ＝−ＣＵＷｉｄｔｈ）。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙは異なるオフセットを有してよく、各成分は別個のｂ０を有する。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙはｂ０を共有してよく、ＭＶ＿ｘおよびＭＶ＿ｙに対するオフセットは同じであってよく、または異なってもよい。いくつかの例では、ｂ０は、コンテキストなしにバイパスモードにおいて（適用可能な場合に）符号化または復号され得る。いくつかの例では、ｂ０は、１つまたは複数のコンテキストを有するＣＡＢＡＣを使用して（適用可能な場合に）符号化または復号され得る。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙに対するｂ０は、別個のコンテキストを有し得る。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙに対するｂ０は、同じコンテキストを共有し得る。
【００８１】
[0091]いくつかの例では、後続のビンｂ１ｂ２．．．は、たとえばｂ０＝１の場合、（ａｂｓ（ＭＶ＿ｘ）−ｏｆｆｓｅｔ＿ｘ）の値を表してよく、またはたとえばｂ０＝０の場合、（ａｂｓ（ＭＶ＿ｘ））の値を表し得る。いくつかの例では、ｂ１ｂ２は、バイパスモードにおけるパラメータ３を有する指数ゴロム符号を使用して（適用可能な場合に）符号化または復号され得る。いくつかの例では、指数ゴロム符号の他の順序、たとえば１、２、４、５が使用されることがあり、他の符号、たとえばライスゴロム符号が使用されることがある。いくつかの例では、指数ゴロム符号またはライスゴロム符号の順序は、ＣＵサイズに依存し得る。
【００８２】
[0092]ｂ１は、（ａｂｓ（ＭＶ＿ｘ）−ｏｆｆｓｅｔ＿ｘ）（ｂ０＝１）または（ａｂｓ（ＭＶ＿ｘ））（ｂ０＝０）が１に等しいか、またはそうでないか（ｂ１＝０）を表すことが可能である。言い換えれば、ｂ０＝１の場合、ｂ１ｂ２．．．は（ａｂｓ（ＭＶ＿ｘ）−ｏｆｆｓｅｔ＿ｘ）の値を表してよく、この場合（すなわち、ｂ０＝１の場合）、（ａｂｓ（ＭＶ＿ｘ）−ｏｆｆｓｅｔ＿ｘ）が１に等しい場合、ｂ１＝１であり、（ａｂｓ（ＭＶ＿ｘ）−ｏｆｆｓｅｔ＿ｘ）が１に等しくない場合、ｂ１＝０である。ｂ０＝０の場合、ｂ１ｂ２．．．は（ａｂｓ（ＭＶ＿ｘ））の値を表してよく、この場合（すなわち、ｂ０＝０の場合）、（ａｂｓ（ＭＶ＿ｘ））が１に等しい場合、ｂ１＝１であり、（ａｂｓ（ＭＶ＿ｘ））が１に等しくない場合、ｂ１＝０である。
【００８３】
[0093]いくつかの例では、ｂ１は、バイパスモードを用いて、またはＣＡＢＡＣコンテキストを用いて（適用可能な場合に）符号化または復号され得る。いくつかの例では、ｂ２ｂ３．．．はａｂｓ（ＭＶ＿Ｘ）−２の値を表してよく、アーは、バイパスモードにおけるパラメータ３を有する指数ゴロム符号を使用して（適用可能な場合に）符号化または復号され得る。いくつかの例では、最後のビンはＭＶ＿ｘの符号を示してよく、最後のビンは、コンテキストなしにバイパスモードにおいて（適用可能な場合に）符号化または復号され得る。いくつかの例では、符号ビンは、１つまたは複数のコンテキストを有するＣＡＢＡＣを使用して（適用可能な場合に）符号化または復号され得る。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙに対する符号ビンは、別個のコンテキストを有し得る。いくつかの例では、ＭＶ＿ｘおよびＭＶ＿ｙに対する符号ビンは、同じコンテキストを共有し得る。
【００８４】
[0094]次に、ＨＥＶＣにおける動き情報、ＰＯＣ、ＣＵ構造、およびＨＥＶＣにおける動き予測の態様について説明する。各ブロックに関して、動き情報のセットが利用可能であり得る。動き情報のセットは、前方予測方向および後方予測方向に関する動き情報を含む。ここで、前方予測方向および後方予測方向は、双方向予測モードの２つの予測方向であり、「前方」および「後方」という用語は、必ずしも幾何学的な意味を有するとは限らず、代わりに、これらの用語は現在ピクチャの参照ピクチャリスト０（ＲｅｆＰｉｃＬｉｓｔ０）および参照ピクチャリスト１（ＲｅｆＰｉｃＬｉｓｔ１）に対応する。ピクチャまたはスライスに関して１つの参照ピクチャリストのみが利用可能であるとき、ＲｅｆＰｉｃＬｉｓｔ０のみが利用可能であり、スライスの各ブロックの動き情報は常に前方である。
【００８５】
[0095]各予測方向に関して、動き情報は参照インデックスと動きベクトルとを含まなければならない。場合によっては、簡単のために、動きベクトル自体は、それが関連付けられた参照インデックスを有することが仮定されるように呼ばれる場合がある。参照インデックスは、現在参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）中の参照ピクチャを識別するために使用される。動きベクトルは水平成分と垂直成分とを有する。
【００８６】
[0096]ビデオコーディング規格において、ピクチャの表示順序を識別するためにピクチャ順序カウント（ＰＯＣ）が広く使用されている。１つのコーディングされたビデオシーケンス内の２つのピクチャが同じＰＯＣ値を有する場合が存在するが、一般に、コーディングされたビデオシーケンス内でそのようなことは生じない。複数のコーディングされたビデオシーケンスがビットストリーム中に存在するとき、同じＰＯＣ値を有するピクチャは、復号順序の点で、互いにより近傍であり得る。ピクチャのＰＯＣ値は、一般に、参照ピクチャリスト構築、ＨＥＶＣにおけるような参照ピクチャセットの導出、および動きベクトルスケーリングのために使用される。
【００８７】
[0097]ＨＥＶＣでは、スライス中の最大コーディングユニットはコーディングツリーブロック（ＣＴＢ）と呼ばれる。ＣＴＢは、それのノードがコーディングユニットである４分木を含んでいる。ＣＴＢのサイズは、ＨＥＶＣメインプロファイルにおいて１６×１６から６４×６４の範囲にあり得る（しかし、技術的には、８×８ＣＴＢサイズがサポートされ得る）。コーディングユニット（ＣＵ）は、ＣＴＢと同じサイズであり得るが、８×８程度に小さくなり得る。各コーディングユニットは１つのモードでコーディングされる。ＣＵがインターコーディングされるとき、ＣＵは、２つの予測ユニット（ＰＵ）にさらに区分され得るか、または、さらなる区分が適用されないとき、１つのＰＵだけになる。２つのＰＵが１つのＣＵ中に存在するとき、２つのＰＵは、半分のサイズの長方形またはＣＵの１／４もしくは３／４のサイズの２つの長方形サイズであり得る。
【００８８】
[0098]ＣＵがインターコーディングされるとき、ＰＵごとに動き情報の１つのセットが存在する。さらに、各ＰＵは、動き情報のセットを導出するために一意のインター予測モードでコーディングされる。ＨＥＶＣでは、最小ＰＵサイズは８×４および４×８である。
【００８９】
[0099]ＨＥＶＣ規格では、予測ユニット（ＰＵ）のために、それぞれ、マージモード（スキップはマージの特殊な場合と見なされる）および高度動きベクトル予測（ＡＭＶＰ）モードと称される２つのインター予測モードがある。ＡＭＶＰモードまたはマージモードのいずれかでは、動きベクトル（ＭＶ）候補リストは、複数の動きベクトル予測子について維持される。現在ＰＵの、動きベクトル、ならびにマージモードにおける参照インデックスは、ＭＶ候補リストから１つの候補を取ることによって生成される。
【００９０】
[0100]ＭＶ候補リストは、マージモードのために最高５つの候補を、およびＡＭＶＰモードのために２つだけの候補を含む。マージ候補は、動き情報のセット、たとえば、参照ピクチャリスト（リスト０およびリスト１）と参照インデックスの両方に対応する動きベクトルを含み得る。マージ候補がマージインデックスによって識別される場合、現在ブロックの予測のために参照ピクチャが使用され、ならびに関連する動きベクトルが決定される。しかしながら、リスト０またはリスト１のいずれかからの各潜在的な予測方向に対するＡＭＶＰモードの下では、ＡＭＶＰ候補が動きベクトルのみを含んでいるので、ＭＶＰインデックスとともに参照インデックスがＭＶ候補リストに明示的にシグナリングされる必要がある。ＡＭＶＰモードでは、予測動きベクトルはさらに改善され得る。上記でわかるように、マージ候補は、動き情報のフルセットに対応し、ＡＭＶＰ候補は、特定の予測方向および参照インデックスのためのただ１つの動きベクトルを含む。両方のモードに関する候補は、同じ空間的および時間的隣接ブロックから同様に導出される。
【００９１】
[0101]ビデオエンコーダ２０は、ビデオデータの以前に再構成されたブロックのセットから、現在ビデオブロック１０２を予測するための予測ビデオブロック１０４を選択する。ビデオエンコーダ２０は、符号化ビデオビットストリーム中にも含まれるビデオデータを逆量子化および逆変換し、得られた残差ブロックを、ビデオデータの再構成されたブロックを予測するために使用される予測ブロックと合計することによって、ビデオデータのブロックを再構成する。図５の例では、「対象とするエリア」または「ラスタエリア」とも呼ばれることがある、ピクチャ１０３内の対象とする領域１０８は、以前に再構成されたビデオブロックのセットを含む。ビデオエンコーダ２０は、以下でより詳細に説明するように、様々な方法でピクチャ１０３内の対象とする領域１０８を定義し得る。ビデオエンコーダ２０は、対象とする領域１０８内の様々なビデオブロックに基づいて現在ビデオブロック１０２を予測しコーディングする相対的な効率と精度との分析に基づいて、対象とする領域１０８中のビデオブロックの中から現在ビデオブロック１０２を予測するための予測ビデオブロック１０４を選択し得る。
【００９２】
[0102]ビデオエンコーダ２０は、現在ビデオブロック１０２に対する予測ビデオブロック１０４のロケーションまたは変位を表す２次元ベクトル１０６を決定する。オフセットベクトルの一例である２次元ベクトル１０６は、それぞれ、現在ビデオブロック１０２に対する予測ビデオブロック１０４の水平変位と垂直変位とを表す、水平変位成分１１２と垂直変位成分１１０とを含む。ビデオエンコーダ２０は、２次元ベクトル１０６を識別または定義する、たとえば、符号化ビデオビットストリーム中の水平変位成分１１２と垂直変位成分１１０とを定義する、１つまたは複数のシンタックス要素を含み得る。ビデオデコーダ３０は、２次元ベクトル１０６を決定するために１つまたは複数のシンタックス要素を復号し、現在ビデオブロック１０２のための予測ビデオブロック１０４を識別するために決定されたベクトルを使用し得る。
【００９３】
[0103]いくつかの例では、２次元ベクトル１０６の解像度は、整数ピクセルであり得、たとえば、整数ピクセル解像度を有するように制約され得る。そのような例では、水平変位成分１１２および垂直変位成分１１０の解像度は整数ピクセルである。そのような例では、ビデオエンコーダ２０およびビデオデコーダ３０は、現在ビデオブロック１０２のための予測子を決定するために予測ビデオブロック１０４のピクセル値を補間する必要はない。
【００９４】
[0104]他の例では、水平変位成分１１２および垂直変位成分１１０の一方または両方の解像度はサブピクセルであり得る。たとえば、成分１１２および１１０の一方は整数ピクセル解像度を有してもよく、他方はサブピクセル解像度を有する。いくつかの例では、水平変位成分１１２および垂直変位成分１１０の両方の解像度はサブピクセルであり得るが、水平変位成分１１２および垂直変位成分１１０は異なる解像度を有し得る。
【００９５】
[0105]いくつかの例では、ビデオデコーダ、たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、特定のレベル、たとえば、ブロックレベル、スライスレベル、またはピクチャレベルの適応に基づいて、水平変位成分１１２および垂直変位成分１１０の解像度を適応させる。たとえば、ビデオエンコーダ２０は、スライスレベルにおいて、たとえば、スライスヘッダ中で、水平変位成分１１２および垂直変位成分１１０の解像度が整数ピクセル解像度であるかまたは整数ピクセル解像度ではないかを示すフラグをシグナリングし得る。水平変位成分１１２および垂直変位成分１１０の解像度が整数ピクセル解像度ではないことをフラグが示す場合、ビデオデコーダ３０は解像度がサブピクセル解像度であると推論し得る。いくつかの例では、必ずしもフラグであるとは限らない１つまたは複数のシンタックス要素は、ビデオデータのスライスまたは他のユニットごとに、水平変位成分１１２および／または垂直変位成分１１０の集合的な解像度または個々の解像度を示すために送信され得る。
【００９６】
[0106]さらに他の例では、フラグまたはシンタックス要素の代わりに、ビデオエンコーダ２０は解像度コンテキスト情報に基づいて水平変位成分１１２および／または垂直変位成分１１０の解像度を設定し得、ビデオデコーダ３０は解像度コンテキスト情報から水平変位成分１１２および／または垂直変位成分１１０の解像度を推論し得る。解像度コンテキスト情報は、例として、現在ビデオブロック１０２を含むピクチャまたはピクチャのシーケンスについての色空間（たとえば、ＹＵＶ、ＲＧＢなど）、特定の色フォーマット（たとえば、４：４：４、４：２：２、４：２：０など）、フレームサイズ、フレームレート、または量子化パラメータ（ＱＰ）を含み得る。少なくともいくつかの例では、ビデオコーダは、以前にコーディングされたフレームまたはピクチャに関する情報に基づいて、水平変位成分１１２および／または垂直変位成分１１０の解像度を決定し得る。このようにして、水平変位成分１１２の解像度および垂直変位成分１１０についての解像度はあらかじめ定義され、シグナリングされ得、他のサイド情報（たとえば、解像度コンテキスト情報）から推論され得るか、またはすでにコーディングされたフレームに基づき得る。
【００９７】
[0107]現在ビデオブロック１０２は、ＣＵ、またはＣＵのＰＵであり得る。いくつかの例では、ビデオコーダ、たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ＩＭＣに従って予測されたＣＵをいくつかのＰＵに分割し得る。そのような例では、ビデオコーダは、ＣＵのＰＵの各々について、それぞれの（たとえば、異なる）２次元ベクトル１０６を決定し得る。たとえば、ビデオコーダは、２Ｎ×２Ｎ  ＣＵを２つの２Ｎ×Ｎ  ＰＵ、２つのＮ×２Ｎ  ＰＵ、または４つのＮ×Ｎ  ＰＵに分割し得る。他の例として、ビデオコーダは、２Ｎ×２Ｎ  ＣＵを（（Ｎ／２）×Ｎ＋（３Ｎ／２）×Ｎ）ＰＵ、（（３Ｎ／２）×Ｎ＋（Ｎ／２）×Ｎ）ＰＵ、（Ｎ×（Ｎ／２）＋Ｎ×（３Ｎ／２））ＰＵ、（Ｎ×（３Ｎ／２）＋Ｎ×（Ｎ／２））ＰＵ、４つの（Ｎ／２）×２Ｎ  ＰＵ、または４つの２Ｎ×（Ｎ／２）ＰＵに分割し得る。いくつかの例では、ビデオコーダは２Ｎ×２Ｎ  ＰＵを使用して２Ｎ×２Ｎ  ＣＵを予測し得る。
【００９８】
[0108]現在ビデオブロック１０２は、ルーマビデオブロック（たとえば、ルーマ成分）と、ルーマビデオブロックに対応するクロマビデオブロック（たとえば、クロマ成分）とを含む。いくつかの例では、ビデオエンコーダ２０は、ルーマビデオブロックのための２次元ベクトル１０６を定義する１つまたは複数のシンタックス要素のみを符号化ビデオビットストリーム中に符号化し得る。そのような例では、ビデオデコーダ３０は、ルーマブロックについてシグナリングされた２次元ベクトルに基づいて、ルーマブロックに対応する１つまたは複数のクロマブロックの各々について２次元ベクトル１０６を導出し得る。本開示で説明する技法では、１つまたは複数のクロマブロックのための２次元ベクトルの導出において、ルーマブロックのための２次元ベクトルがクロマサンプル内のサブピクセル位置を指す場合、ビデオデコーダ３０はルーマブロックのための２次元ベクトルを変更し得る。
【００９９】
[0109]色フォーマット、たとえば、色サンプリングフォーマットまたはクロマサンプリングフォーマットに応じて、ビデオコーダは、ルーマビデオブロックに対して、対応するクロマビデオブロックをダウンサンプリングし得る。色フォーマット４：４：４はダウンサンプリングを含まず、これは、クロマブロックが水平方向および垂直方向においてルーマブロックと同じ数のサンプルを含むことを意味する。色フォーマット４：２：２は水平方向においてダウンサンプリングされ、これは、クロマブロックではルーマブロックに対して水平方向において半分の数のサンプルがあることを意味する。色フォーマット４：２：０は水平方向および垂直方向においてダウンサンプリングされ、これは、クロマブロックではルーマブロックに対して水平方向および垂直方向において半分の数のサンプルがあることを意味する。
【０１００】
[0110]ビデオコーダがクロマビデオブロックのためのベクトル１０６を対応するルーマブロックのためのベクトル１０６に基づいて決定する例では、ビデオコーダはルーマベクトルを変更する必要があり得る。たとえば、ルーマベクトル１０６が、水平変位成分１１２および／または垂直変位成分１１０が奇数のピクセルである整数解像度を有し、色フォーマットが４：２：２または４：２：０である場合、変換されたルーマベクトルは対応するクロマブロック中の整数ピクセルロケーションを指さないことがある。そのような例では、ビデオコーダは、対応するクロマブロックを予測するためのクロマベクトルとして使用するためにルーマベクトルをスケーリングし得る。
【０１０１】
[0111]図６は、マージモードまたはＡＭＶＰモードでコーディングされた特定のＰＵ（ＰＵ0）に対する空間的ＭＶ候補を導出するために使用され得る隣接ブロックの一例を示す。ブロックから候補を生成するために使用される技法は、マージモードとＡＭＶＰモードとについて異なる。マージモードでは、たとえば、図６に示す５つの空間的ＭＶ候補の各々の利用可能性は、一定の順序に従って検査され得る。たとえば、ＨＥＶＣは順序ａ1、ｂ1、ｂ0、ａ0、ｂ2を使用する。
【０１０２】
[0112]ＡＭＶＰモードでは、隣接ブロックは、図６に示すように、ブロックａ0およびａ1からなる左グループ、ならびにブロックｂ0、ｂ1およびｂ2からなる上グループという、２つのグループに分割される。左グループの場合、利用可能性は、順序｛ａ0、ａ1｝に従って検査される。上グループの場合、利用可能性は、順序｛ｂ0、ｂ1、ｂ2｝に従って検査される。各グループについて、シグナリングされた参照インデックスによって示された参照ピクチャと同じ参照ピクチャを参照する隣接ブロック中の潜在的候補は、そのグループの最終候補を形成するために選定されるべき最高優先順位を有する。すべての隣接ブロックが、同じ参照ピクチャを指す動きベクトルを含んでいるとは限らない可能性がある。したがって、そのような候補が見つけられ得ない場合、第１の利用可能な候補は、最終候補を形成するためにスケーリングされることになり、したがって、時間距離差分が補償され得る。
【０１０３】
[0113]次に、ＨＥＶＣにおけるクロマコーディングおよびマージ／レベルの並列処理に対する動きベクトルについて説明する。動きベクトルは、それがクロマ動き補償のために使用される前に現在ＰＵ／ＣＵのルーマ成分に対して導出され、動きベクトルは、クロマサンプリングフォーマットに基づいてスケーリングされる。
【０１０４】
[0114]ＨＥＶＣでは、ＬＣＵは、並列動き推定領域（ＭＥＲ）に分割されてよく、現在ＰＵとは異なるＭＥＲに属するそれらの隣接ＰＵのみがマージ／スキップＭＶＰリスト構築プロセスに含まれることを許容する。ＭＥＲのサイズは、ｌｏｇ２＿ｐａｒａｌｌｅｌ＿ｍｅｒｇｅ＿ｌｅｖｅｌ＿ｍｉｎｕｓ２としてピクチャパラメータセットの中にシグナリングされる。ＭＥＲサイズがＮ×Ｎよりも大きく、２Ｎ×２Ｎが最小ＣＵサイズであるとき、空間的隣接ブロックは、それが現在ＰＵと同じＭＥＲ内にある場合、それは利用不可能と見なされるやり方でＭＥＲは実施される。
【０１０５】
[0115]イントラブロックコピー（ＢＣ）は、現在ＳＣＣ中に含まれている。イントラＢＣの一例が上記の図５に示されており、ここにおいて、現在ＣＵ／ＰＵは、現在ピクチャ／スライスのすでに復号されたブロックから予測される。予測信号は再構成されるが、デブロッキングとサンプル適応オフセット（ＳＡＯ）とを含むインループフィルタリングは行われないことに留意されたい。
【０１０６】
[0116]ブロック補償では、イントラＢＣを用いてコーディングされるルーマ成分またはクロマ成分に対して、ブロック補償が整数ブロック補償を用いて行われる。このように、補間は必要ではない。ブロックベクトルは、整数レベルにおいて予測され、シグナリングされる。
【０１０７】
[0117]現在ＳＣＣでは、ブロックベクトル予測子は、各ＣＴＢの始まりにおいて（−ｗ，０）に設定され、ここでｗはＣＵの幅である。そのようなブロックベクトル予測子は、ＣＵ／ＰＵがイントラＢＣモードでコーディングされる場合、最新のコーディングされたＣＵ／ＰＵのうちの１つになるように更新される。ＣＵ／ＰＵがイントラＢＣでコーディングされない場合、ブロックベクトル予測子は変更されないままである。ブロックベクトル予測の後、ブロックベクトル差分は、ＭＶ差分（ＭＶＤ）コーディングを使用して符号化され、方法はＨＥＶＣである。
【０１０８】
[0118]現在イントラＢＣは、ＣＵとＰＵの両方のレベルにおいて有効にされる。ＰＵレベルイントラＢＣの場合、２Ｎ×ＮおよびＮ×２Ｎ  ＰＵ区分が、すべてのＣＵサイズのためにサポートされる。さらに、ＣＵが最も小さいＣＵであるとき、Ｎ×Ｎ  ＰＵ区分がサポートされる。
【０１０９】
[0119]本開示の技法によれば、ビデオコーディングデバイスは、イントラＢＣブロックをインターブロックとして扱うことができる。ＪＣＴＶＣ−Ｒ０１００では、イントラＢＣモードとインターモードとの統合が提案されている。このように、現在ピクチャは参照ピクチャとして使用され、参照リストに追加されてよい。現在ピクチャが参照リストに追加されると、イントラＢＣブロックは、そのブロックがインターモードでコーディングされたかのように扱われる。現在ピクチャは、現在ピクチャが復号される前は長期としてマークされ、現在ピクチャの復号の後に短期にマークされる。イントラＢＣが有効にされると、Ｐスライスのシンタックスパーシングプロセスおよび復号プロセスが、Ｉスライスに対して後続する。
【０１１０】
[0120]既存のＩＢＣ技法は、いくつかの欠点を有することがある。たとえば、イントラＢＣがインターとして扱われるとき、従来のスライスタイプシグナリングは、復号プロセスにおいて余分の条件検査が生じることになる。同じく、時間的動きベクトル予測子（ＴＭＶＰ）、制約されたイントラ予測、イントラＢＣ  ＭＶ精度などの間の相互作用に対して、いくつかの問題が存在することがある。
【０１１１】
[0121]本開示の技法によれば、イントラＢＣモードがインターモードとして扱われ、現在ピクチャが参照リスト０（または参照リスト１または両方）に追加され得る、イントラＢＣモードとインターモードとのより良い統合を可能にするために、次の技法が提案されている。予測モードは同じ（ＭＯＤＥ＿ＩＮＴＥＲ）であり得るが、ビデオコーディングデバイスは、参照インデックス関連ブロックによって識別された参照ピクチャが現在ピクチャであるかどうか（すなわち、参照ピクチャが現在ピクチャと同じＰＯＣを有するかどうか）を検査することによって、イントラＢＣブロック従来のインターブロックを区別することができる。参照ピクチャおよび現在ピクチャが同じＰＯＣ値を有する場合、現在ブロックは、イントラＢＣブロックと見なされ得る。他の場合、現在ブロックは、従来のインターブロックと見なされ得る。
【０１１２】
[0122]イントラＢＣとインターモードとの統合において、ビデオコーディングデバイスは、多数の他の変更を実施し得る。たとえば、ＩＲＡＰピクチャ（すなわち、ＶＣＬ  ＮＡＬユニットはＢＬＡ＿Ｗ＿ＬＰ〜ＲＳＶ＿ＩＲＡＰ＿ＶＣＬ２３の範囲内のｎａｌ＿ｕｎｉｔ＿ｔｙｐｅを有する）はＩスライスを含まない。代わりに、ＩＲＡＰピクチャはＰスライスまたはＢスライスを含み得る。そのような例では、Ｐスライスの動きベクトルは、現在ピクチャ中のブロックを参照する。さらなる例では、Ｂスライスの双予測動きベクトルはいずれも、現在ピクチャ中のビデオブロックを参照する。Ｂスライスを含むＩＲＡＰピクチャの場合、ビデオコーディングデバイスはさらに、Ｂスライスの異なる動きベクトルに加えられるべき重みをシグナリングすることができる。たとえば、１つの動きベクトルは２５％の重みを有してよく、第２の動きベクトルは７５％の重みを有し得る。
【０１１３】
[0123]さらに、ＩＲＡＰピクチャは、空でないＲＰＳ（non-empty RPS）を指定するシンタックス要素を含み得る。たとえば、ＲＰＳは、デルタＰＯＣ値、または参照ピクチャが入り得るＰＯＣ値の範囲を表すシンタックス要素を含み得る。ＲＰＳは、ＲＰＳの様々な特性を定義するフラグ、およびＨＥＶＣ規格に従ってどのピクチャがＲＰＳ中に含まれ得るかなど、他のシンタックス要素を含み得る。
【０１１４】
[0124]参照ピクチャは、現在ピクチャのすでに復号された、フィルタリング（ＳＡＯ／デブロッキング）されていないサンプルを含み得る。この参照ピクチャは、参照ピクチャセットの中に含まれ得る。予測がこの参照ピクチャ（現在ピクチャ）から適用されると、その予測は、残りの復号プロセスに対してインターモードと見なされ得る。一例では、フラグは、スライスヘッダ、ＳＰＳ、ＰＰＳ、ＶＰＳ、または現在ピクチャがインター予測に対する参照ピクチャとして使用されるかどうかを示すものの中に送信される。
【０１１５】
[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]コーディングプロセスの出力は、ａｖａｉｌａｂｌｅＮで示されるロケーション（ｘＮｂＹ，ｙＮｂＹ）をカバーする隣接予測ブロックの利用可能性であり、ａｖａｉｌａｂｌｅＮは次のように導出される。現在ルーマ予測ブロックおよび隣接ルーマ予測ブロックが同じルーマコーディングブロックをカバーするかどうかを指定する変数ｓａｍｅＣｂ。次の条件のすべてが真である場合、ｓａｍｅＣｂはＴＲＵＥに等しく設定され、ｘＣｂはｘＮｂＹ以下であり、ｙＣｂはｙＮｂＹ以下であり、（ｘＣｂ＋ｎＣｂＳ）はｘＮｂＹより大であり、（ｙＣｂ＋ｎＣｂＳ）はｙＮｂＹより大である。他の場合、ｓａｍｅＣｂは、ＦＡＬＳＥに等しく設定される。
【０１４８】
[0156]隣接予測ブロック利用可能性ａｖａｉｌａｂｌｅＮは、次のように導出される。ｓａｍｅＣｂがＦＡＬＳＥに等しい場合、従属節６．４．１において指定されるｚ走査順序ブロック利用可能性に対する導出プロセスが、入力として（ｘＰｂ，ｙＰｂ）に等しく設定された（ｘＣｕｒｒ、ｙＣｕｒｒ）とルーマロケーション（ｘＮｂＹ，ｙＮｂＹ）とを用いて起動され、出力がａｖａｉｌａｂｌｅＮに割り当てられる。そうではなく、次の条件のすべてが真である場合、ａｖａｉｌａｂｌｅＮはＦＡＬＳＥに等しく設定され、（ｎＰｂＷ＜＜１）はｎＣｂＳに等しく、（ｎＰｂＨ＜＜１）はｎＣｂＳに等しく、ｐａｒｔＩｄｘは１に等しく、（ｙＣｂ＋ｎＰｂＨ）はｙＮｂＹ以下であり、（ｘＣｂ＋ｎＰｂＷ）はｘＮｂＹより大である。他の場合、ａｖａｉｌａｂｌｅＮはＴＲＵＥに等しく設定される。ａｖａｉｌａｂｌｅＮがＴＲＵＥに等しいとき、ＣｕＰｒｅｄＭｏｄｅ［ｘＰｂ］［ｙＰｂ］はＭＯＤＥ＿ＩＮＴＥＲに等しく、ＣｕＰｒｅｄＭｏｄｅ［ｘＮｂＹ］［ｙＮｂＹ］はＭＯＤＥ＿ＩＮＴＲＡに等しく、ａｖａｉｌａｂｌｅＮはＦＡＬＳＥに等しく設定される。
【０１４９】
[0157]本明細書で説明する様々なシンタックス要素に対するシンタックスは、次の表を含む。これらの表によって更新されるＨＥＶＣ規格の関連部分は、各表のヘッダ中に提供される。
【０１５０】
【表２−１】
2019169964.tif 000004
【表２−２】
2019169964.tif 000005
【表２−３】
2019169964.tif 000006
【表２−４】
2019169964.tif 000007
【表２−５】
2019169964.tif 000008
【表２−６】
2019169964.tif 000009
【０１５１】
[0158]本明細書で説明する技法を実施するために、多様なシンタックス要素が、ビデオコーダによって利用され得る。１に等しいシンタックス要素ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｒｏｔａｔｉｏｎ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、ローテーションが、変換スキップ演算を使用してコーディングされたイントラ４×４ブロックに対する残差データブロックに適用されることを指定する。０に等しいｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｒｏｔａｔｉｏｎ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、このローテーションが適用されないことを指定する。存在しないとき、ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｒｏｔａｔｉｏｎ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推論される。
【０１５２】
[0159]１に等しいシンタックス要素ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｃｏｎｔｅｘｔ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、特定のコンテキストが、スキップされた変換を伴う変換ブロックに対するｓｉｇ＿ｃｏｅｆｆ＿ｆｌａｇのパーシングのために使用されることを指定する。０に等しいシンタックス要素ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｃｏｎｔｅｘｔ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、変換ブロックに対する変換スキップまたは変換バイパスの存在または不在が、このフラグに対するコンテキスト選択に使用されないことを指定する。存在しないとき、ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｃｏｎｔｅｘｔ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推論される。
【０１５３】
[0160]１に等しいシンタックス要素ｉｍｐｌｉｃｉｔ＿ｒｄｐｃｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、変換バイパスを使用するブロックに対する残差修正プロセスが、ＣＶＳにおけるイントラブロックに対して使用され得ることを指定する。０に等しいシンタックス要素ｉｍｐｌｉｃｉｔ＿ｒｄｐｃｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、残差修正プロセスが、ＣＶＳにおけるイントラブロックに対して使用されないことを指定する。存在しないとき、ｉｍｐｌｉｃｉｔ＿ｒｄｐｃｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推論される。
【０１５４】
[0161]１に等しいシンタックス要素ｅｘｐｌｉｃｉｔ＿ｒｄｐｃｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、変換バイパスを使用するブロックに対する残差修正プロセスが、ＣＶＳにおけるインターブロックに対して使用され得ることを指定する。０に等しいシンタックス要素ｅｘｐｌｉｃｉｔ＿ｒｄｐｃｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、残差修正プロセスが、ＣＶＳにおけるインターブロックに対して使用されないことを指定する。存在しないとき、ｅｘｐｌｉｃｉｔ＿ｒｄｐｃｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推論される。
【０１５５】
[0162]１に等しいシンタックス要素ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇは、拡張されたダイナミックレンジが、係数パーシングおよび逆変換処理のために使用されることを指定する。０に等しいシンタックス要素ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇは、拡張されたダイナミックレンジが使用されないことを指定する。存在しないとき、ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇの値は０に等しいと推論される。
【０１５６】
[0163]変数ＣｏｅｆｆＭｉｎＹ、ＣｏｅｆｆＭｉｎＣ、ＣｏｅｆｆＭａｘＹおよびＣｏｅｆｆＭａｘＣは、次のように導出される。
【０１５７】
ＣｏｅｆｆＭｉｎＹ＝−（１＜＜（ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ？Ｍａｘ（１５，ＢｉｔＤｅｐｔｈＹ＋６）：１５））    （７−２７）
ＣｏｅｆｆＭｉｎＣ＝−（１＜＜（ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ？Ｍａｘ（１５，ＢｉｔＤｅｐｔｈＣ＋６）：１５））    （７−２８）
ＣｏｅｆｆＭａｘＹ＝（１＜＜（ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ？Ｍａｘ（１５，ＢｉｔＤｅｐｔｈＹ＋６）：１５））−１    （７−２９）
ＣｏｅｆｆＭａｘＣ＝（１＜＜（ｅｘｔｅｎｄｅｄ＿ｐｒｅｃｉｓｉｏｎ＿ｐｒｏｃｅｓｓｉｎｇ＿ｆｌａｇ？Ｍａｘ（１５，ＢｉｔＤｅｐｔｈＣ＋６）：１５））−１    （７−３０）
【０１５８】
[0164]１に等しいシンタックス要素ｉｎｔｒａ＿ｓｍｏｏｔｈｉｎｇ＿ｄｉｓａｂｌｅｄ＿ｆｌａｇは、隣接サンプルのフィルタリング処理がイントラ予測に対して無条件に無効にされることを指定する。０に等しいシンタックス要素ｉｎｔｒａ＿ｓｍｏｏｔｈｉｎｇ＿ｄｉｓａｂｌｅｄ＿ｆｌａｇは、隣接サンプルのフィルタリング処理が無効にされないことを指定する。存在しないとき、ｉｎｔｒａ＿ｓｍｏｏｔｈｉｎｇ＿ｄｉｓａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推論される。
【０１５９】
[0165]１に等しいシンタックス要素ｈｉｇｈ＿ｐｒｅｃｉｓｉｏｎ＿ｏｆｆｓｅｔｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、重み付け予測オフセット値がビット深度依存精度を使用してシグナリングされることを指定する。０に等しいシンタックス要素ｈｉｇｈ＿ｐｒｅｃｉｓｉｏｎ＿ｏｆｆｓｅｔｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、重み付け予測オフセット値が８ビット処理と同等の精度でシグナリングされることを指定する。
【０１６０】
[0166]変数ＷｐＯｆｆｓｅｔＢｄＳｈｉｆｔＹ、ＷｐＯｆｆｓｅｔＢｄＳｈｉｆｔＣ、ＷｐＯｆｆｓｅｔＨａｌｆＲａｎｇｅＹ、およびＷｐＯｆｆｓｅｔＨａｌｆＲａｎｇｅＣは、次のように導出される。
【０１６１】
ＷｐＯｆｆｓｅｔＢｄＳｈｉｆｔＹ＝ｈｉｇｈ＿ｐｒｅｃｉｓｉｏｎ＿ｏｆｆｓｅｔｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ？０：（ＢｉｔＤｅｐｔｈＹ−８）    （７−３１）
ＷｐＯｆｆｓｅｔＢｄＳｈｉｆｔＣ＝ｈｉｇｈ＿ｐｒｅｃｉｓｉｏｎ＿ｏｆｆｓｅｔｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ？０：（ＢｉｔＤｅｐｔｈＣ−８）    （７−３２）
ＷｐＯｆｆｓｅｔＨａｌｆＲａｎｇｅＹ＝１＜＜（ｈｉｇｈ＿ｐｒｅｃｉｓｉｏｎ＿ｏｆｆｓｅｔｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ？（ＢｉｔＤｅｐｔｈＹ−１）：７）    （７−３３）
ＷｐＯｆｆｓｅｔＨａｌｆＲａｎｇｅＣ＝１＜＜（ｈｉｇｈ＿ｐｒｅｃｉｓｉｏｎ＿ｏｆｆｓｅｔｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ？（ＢｉｔＤｅｐｔｈＣ−１）：７）    （７−３４）
【０１６２】
[0167]１に等しいシンタックス要素ｐｅｒｓｉｓｔｅｎｔ＿ｒｉｃｅ＿ａｄａｐｔａｔｉｏｎ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇの２値化に対するライスパラメータ導出が、前のサブブロックから蓄積されたモード依存統計値を使用して各サブブロックの開始において初期化されることを指定する。０に等しいシンタックス要素ｐｅｒｓｉｓｔｅｎｔ＿ｒｉｃｅ＿ａｄａｐｔａｔｉｏｎ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、前のサブブロック状態がライスパラメータ導出に使用されないことを指定する。存在しないとき、ｐｅｒｓｉｓｔｅｎｔ＿ｒｉｃｅ＿ａｄａｐｔａｔｉｏｎ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推論される。
【０１６３】
[0168]１に等しいシンタックス要素ｃａｂａｃ＿ｂｙｐａｓｓ＿ａｌｉｇｎｍｅｎｔ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、ＣＡＢＡＣ整合プロセスが、シンタックス要素ｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇ［］およびｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ［］の復号をバイパスする前に使用されることを指定する。０に等しいシンタックス要素ｃａｂａｃ＿ｂｙｐａｓｓ＿ａｌｉｇｎｍｅｎｔ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、ＣＡＢＡＣ整合プロセスが、復号をバイパスする前に使用されないことを指定する。存在しないとき、ｃａｂａｃ＿ｂｙｐａｓｓ＿ａｌｉｇｎｍｅｎｔ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推論される。
【０１６４】
[0169]１に等しいシンタックス要素ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、ＳＰＳを指す特定のピクチャが、特定のピクチャ自体の参照ピクチャリスト中に含まれ得ることを指定する。０に等しいシンタックス要素ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、ＳＰＳを指す特定のピクチャが、特定のピクチャ自体の参照ピクチャリスト中に決して含まれないことを指定する。存在しないとき、ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推論される。ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しいとき、ＳＰＳを指すＣＶＳ中にＩスライスは存在しない。
【０１６５】
[0170]１に等しいシンタックス要素ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、パレットモードがイントラブロックに対して使用され得ることを指定する。０に等しいシンタックス要素ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、パレットモードが適用されないことを指定する。存在しないとき、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推論される。
【０１６６】
[0171]１に等しいシンタックス要素ｒｅｓｉｄｕａｌ＿ａｄａｐｔｉｖｅ＿ｃｏｌｏｕｒ＿ｔｒａｎｓｆｏｒｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、適応色変換が復号プロセスにおける残差に適応され得ることを指定する。０に等しいシンタックス要素ｒｅｓｉｄｕａｌ＿ａｄａｐｔｉｖｅ＿ｃｏｌｏｕｒ＿ｔｒａｎｓｆｏｒｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、適応色変換が残差に適応されないことを指定する。存在しないとき、ｒｅｓｉｄｕａｌ＿ａｄａｐｔｉｖｅ＿ｃｏｌｏｕｒ＿ｔｒａｎｓｆｏｒｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値は０に等しいと推論される。
【０１６７】
[0172]ｃｏｎｓｔｒａｉｎｅｄ＿ｉｎｔｒａ＿ｐｒｅｄ＿ｆｌａｇは、イントラ予測が、現在ピクチャでない参照ピクチャを使用するまたは使用しないのいずれかでコーディングされた隣接コーディングブロックの残差データおよび復号されたサンプルの使用を可能にすることを、０に等しいｃｏｎｓｔｒａｉｎｅｄ＿ｉｎｔｒａ＿ｐｒｅｄ＿ｆｌａｇが指定するように定義され得る。１に等しいｃｏｎｓｔｒａｉｎｅｄ＿ｉｎｔｒａ＿ｐｒｅｄ＿ｆｌａｇは制約されたイントラ予測を指定し、その場合、一般的なイントラ予測プロセスは、現在ピクチャでない参照ピクチャを使用することなくコーディングされた隣接コーディングブロックからの残差データおよび復号されたサンプルのみを使用する。
【０１６８】
[0173]本明細書で説明する技法による表が、スライスタイプを定義するために使用され得る。そのような表の一例が、いかに示されている。
【０１６９】
【表３】
2019169964.tif 000010
【０１７０】
[0174]ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅが両端を含むＢＬＡ＿Ｗ＿ＬＰ〜ＲＳＶ＿ＩＲＡＰ＿ＶＣＬ２３の範囲内の値を有するとき、すなわち、ピクチャがＩＲＡＰピクチャであり、ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しいとき、ｓｌｉｃｅ＿ｔｙｐｅは２に等しくなるものとする。ｓｐｓ＿ｍａｘ＿ｄｅｃ＿ｐｉｃ＿ｂｕｆｆｅｒｉｎｇ＿ｍｉｎｕｓ１［ＴｅｍｐｏｒａｌＩｄ］が０に等しいとき、ｓｌｉｃｅ＿ｔｙｐｅは２に等しくなるものとする。
【０１７１】
[0175]時間的動きベクトル予測に対して使用されるコロケートされたピクチャの参照インデックスを指定するためのｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ。ｓｌｉｃｅ＿ｔｙｐｅがＰに等しいとき、またはｓｌｉｃｅ＿ｔｙｐｅがＢに等しく、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが１に等しいとき、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘはリスト０中のピクチャを指し、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値は、両端を含む０〜ｎｕｍ＿ｒｅｆ＿ｉｄｘ＿ｌ０＿ａｃｔｉｖｅ＿ｍｉｎｕｓ１の範囲内にあるものとする。ｓｌｉｃｅ＿ｔｙｐｅがＢに等しく、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが０に等しいとき、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘはリスト１中のピクチャを指し、ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値は、両端を含む０〜ｎｕｍ＿ｒｅｆ＿ｉｄｘ＿ｌ１＿ａｃｔｉｖｅ＿ｍｉｎｕｓ１の範囲内にあるものとする。ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘによって指されるピクチャは、コーディングされたピクチャのすべてのスライスに対して同じであり、現在ピクチャ自体でないものとすることが、ビットストリーム適合の要件であり得る。
【０１７２】
[0176]１に等しいシンタックス要素ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］は、現在コーディングユニットについて、ＰスライスまたはＢスライスを復号するとき、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］の後、マージング候補インデックスｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］を除いてそれ以上シンタックス要素がパースされないことを指定する。０に等しいシンタックス要素ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］は、コーディングユニットがスキップされないことを指定する。アレイインデックスｘ０、ｙ０は、ピクチャの左上ルーマサンプルに対する当該コーディングブロックの左上ルーマサンプルのロケーション（ｘ０，ｙ０）を指定する。ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］が存在しないとき、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ［ｘ０］［ｙ０］は０に等しいと推論される。
【０１７３】
[0177]０に等しいシンタックス要素ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇは、現在コーディングユニットがインター予測モードでコーディングされることを指定する。１に等しいシンタックス要素ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇは、現在コーディングユニットがイントラ予測モードでコーディングされることを指定する。変数ＣｕＰｒｅｄＭｏｄｅ［ｘ］［ｙ］は、ｘ＝ｘ０．．ｘ０＋ｎＣｂＳ−１およびｙ＝ｙ０．．ｙ０＋ｎＣｂＳ−１に対して次のように導出される。ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇが０に等しい場合、ＣｕＰｒｅｄＭｏｄｅ［ｘ］［ｙ］はＭＯＤＥ＿ＩＮＴＥＲに等しく設定される。他の場合（ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇは１に等しい）、ＣｕＰｒｅｄＭｏｄｅ［ｘ］［ｙ］はＭＯＤＥ＿ＩＮＴＲＡに等しく設定される。
【０１７４】
[0178]シンタックス要素ｐａｒｔ＿ｍｏｄｅは、現在コーディングユニットの区分モードを指定する。ｐａｒｔ＿ｍｏｄｅのセマンティクスは、ＣｕＰｒｅｄＭｏｄｅ［ｘ０］［ｙ０］に依存する。変数ＰａｒｔＭｏｄｅおよびＩｎｔｒａＳｐｌｉｔＦｌａｇは、ｐａｒｔ＿ｍｏｄｅの値から導出される。ｐａｒｔ＿ｍｏｄｅの値は、次のように制約される。ＣｕＰｒｅｄＭｏｄｅ［ｘ０］［ｙ０］がＭＯＤＥ＿ＩＮＴＲＡに等しい場合、ｐａｒｔ＿ｍｏｄｅは０または１に等しいものとする。他の場合（ＣｕＰｒｅｄＭｏｄｅ［ｘ０］［ｙ０］はＭＯＤＥ＿ＩＮＴＥＲに等しい）、以下が適用される。ｌｏｇ２ＣｂＳｉｚｅがＭｉｎＣｂＬｏｇ２ＳｉｚｅＹより大きく、ａｍｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しい場合、ｐａｒｔ＿ｍｏｄｅは、両端を含む０〜２の範囲内、または両端を含む４〜７の範囲内にあるものとする。他の場合、ｌｏｇ２ＣｂＳｉｚｅがＭｉｎＣｂＬｏｇ２ＳｉｚｅＹより大きく、ａｍｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しいか、またはｌｏｇ２ＣｂＳｉｚｅが３に等しく、ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しい場合、ｐａｒｔ＿ｍｏｄｅは、両端を含む０〜２の範囲内にあるものとする。そうでない場合（ｌｏｇ２ＣｂＳｉｚｅが３より大きく、ＭｉｎＣｂＬｏｇ２ＳｉｚｅＹ以下であるか、またはｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しい）、ｐａｒｔ＿ｍｏｄｅの値は、両端を含む０〜３の範囲内にあるものとする。
【０１７５】
[0179]ｐａｒｔ＿ｍｏｄｅが存在しないとき、変数ＰａｒｔＭｏｄｅおよびＩｎｔｒａＳｐｌｉｔＦｌａｇは、次のように導出される。ＰａｒｔＭｏｄｅは、ＰＡＲＴ＿２Ｎ×２Ｎに等しく設定される。ＩｎｔｒａＳｐｌｉｔＦｌａｇは、０に等しく設定される。ＣｕＰｒｅｄＭｏｄｅ［ｘ０］［ｙ０］がＭＯＤＥ＿ＩＮＴＥＲに等しいとき、ＰａｒｔＭｏｄｅはＰＡＲＴ＿Ｎ×Ｎに等しく、ｌｏｇ２ＣｂＳｉｚｅは３に等しく、現在ＣＵ中のすべてのブロックの参照インデックスが現在ピクチャのみを指すものとすることが、ビットストリーム適合の要件である。
【０１７６】
[0180]シンタックス要素ｒｅｆ＿ｉｄｘ＿ｌ１［ｘ０］［ｙ０］は、ｒｅｆ＿ｉｄｘ＿ｌ０と同じセマンティクスを有し、ｌ０およびリスト０はそれぞれ、ｌ１およびリスト１で置き換えられる。変数ｃｏｄｅＭｖｄＦｌａｇは、以下のように導出される。
ｃｏｄｅＭｖｄＦｌａｇ＝（ＤｉｆｆＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔ０［ｒｅｆ＿ｉｄｘ＿ｌ０］，ｃｕｒｒＰｉｃ）！＝０）１：０
【０１７７】
[0181]シンタックス要素ｍｖｄ＿ｓｉｇｎ＿ｆｌａｇ［ｃｏｍｐＩｄｘ］は、次のように動きベクトル成分差分の符号を指定する。ｍｖｄ＿ｓｉｇｎ＿ｆｌａｇ［ｃｏｍｐＩｄｘ］が０に等しい場合、対応する動きベクトル成分差分は正値を有する。他の場合（ｍｖｄ＿ｓｉｇｎ＿ｆｌａｇ［ｃｏｍｐＩｄｘ］が１に等しい）、対応する動きベクトル成分差分は負値を有する。ｍｖｄ＿ｓｉｇｎ＿ｆｌａｇ［ｃｏｍｐＩｄｘ］が存在しないとき、ｍｖｄ＿ｓｉｇｎ＿ｆｌａｇ［ｃｏｍｐＩｄｘ］は０に等しいと推論される。ｃｏｍｐＩｄｘ＝０．．１の場合の動きベクトル差分ｌＭｖｄ［ｃｏｍｐＩｄｘ］が次のように導出される。
ｌＭｖｄ［ｃｏｍｐＩｄｘ］＝ａｂｓ＿ｍｖｄ＿ｇｒｅａｔｅｒ０＿ｆｌａｇ［ｃｏｍｐＩｄｘ］＊（ａｂｓ＿ｍｖｄ＿ｍｉｎｕｓ２［ｃｏｍｐＩｄｘ］＋２）＊（１−２＊ｍｖｄ＿ｓｉｇｎ＿ｆｌａｇ［ｃｏｍｐＩｄｘ］）    （７−７０）
【０１７８】
[0182]Ｘが０または１である変数ＭｖｄＬＸ［ｘ０］［ｙ０］［ｃｏｍｐＩｄｘ］は、使用されるべきリストＸベクトル成分とそれの予測との間の差分を指定する。ＭｖｄＬＸ［ｘ０］［ｙ０］［ｃｏｍｐＩｄｘ］の値は、両端値を含む−２１５〜２１５−１の範囲内にあるものとする。アレイインデックスｘ０、ｙ０は、ピクチャの左上ルーマサンプルに対する当該予測ブロックの左上ルーマサンプルのロケーション（ｘ０，ｙ０）を指定する。水平動きベクトル成分差分はｃｏｍｐＩｄｘ＝０を割り当てられ、垂直動きベクトル成分はｃｏｍｐＩｄｘ＝１を割り当てられる。ｒｅｆＬｉｓｔが０に等しい場合、ＭｖｄＬ０［ｘ０］［ｙ０］［ｃｏｍｐＩｄｘ］は、ｃｏｍｐＩｄｘ＝０．．１に対してｌＭｖｄ［ｃｏｍｐＩｄｘ］に等しく設定される。他の場合（ｒｅｆＬｉｓｔが１に等しい）、ＭｖｄＬ１［ｘ０］［ｙ０］［ｃｏｍｐＩｄｘ］は、ｃｏｍｐＩｄｘ＝０．．１に対してｌＭｖｄ［ｃｏｍｐＩｄｘ］に等しく設定される。
【０１７９】
[0183]以下は、ＮｕｍＰｉｃＴｏｔａｌＣｕｒｒの値に適用される。現在ピクチャがＢＬＡピクチャまたはＣＲＡピクチャであるとき、ＮｕｍＰｉｃＴｏｔａｌＣｕｒｒの値はｃｕｒｒ＿ｐｉｃ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇに等しいものとする。
【０１８０】
[0184]ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅが両端を含むＢＬＡ＿Ｗ＿ＬＰ〜ＲＳＶ＿ＩＲＡＰ＿ＶＣＬ２３の範囲内の値を有し、すなわちピクチャはＩＲＡＰピクチャであり、ｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しいとき、ＲｅｆＰｉｃＬｉｓｔ０は、現在ピクチャのみを指す１つまたは複数のエントリを含み、ｓｌｉｃｅ＿ｔｙｐｅが１に等しいとき、ＲｅｆＰｉｃＬｉｓｔ１は、現在ピクチャのみを指す１つまたは複数のエントリを含むものとすることが、ビットストリーム適合の要件であり得る。
【０１８１】
[0185]シンタックス要素ＣｕＰｒｅｄＭｏｄｅ［ｘＮｂＹ］［ｙＮｂＹ］は、ＭＯＤＥ＿ＩＮＴＲＡに等しくなく、隣接ルーマロケーション（ｘＮｂＹ，ｙＮｂＹ）におけるブロックの参照ピクチャのうちの少なくとも１つは現在ピクチャではなく、ｃｏｎｓｔｒａｉｎｅｄ＿ｉｎｔｒａ＿ｐｒｅｄ＿ｆｌａｇは１に等しい。
【０１８２】
[0186]変数ｐｒｅｄＦｌａｇＬＸ、ｍｖＬＸおよびｒｅｆＩｄｘＬＸにおいて、ＰＲＥＤ＿ＬＸにおいて、およびシンタックス要素ｒｅｆ＿ｉｄｘ＿ｌＸおよびＭｖｄＬＸにおいて、Ｘが０または１のいずれかで置き換えられる場合、以下が適用される。
１．変数ｒｅｆＩｄｘＬＸおよびｐｒｅｄＦｌａｇＬＸは、次のように導出される。  −    ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃ［ｘＰｂ］［ｙＰｂ］がＰＲＥＤ＿ＬＸまたはＰＲＥＤ＿ＢＩに等しい場合、
ｒｅｆＩｄｘＬＸ＝ｒｅｆ＿ｉｄｘ＿ｌＸ［ｘＰｂ］［ｙＰｂ］
ｐｒｅｄＦｌａｇＬＸ＝１
−    他の場合、変数ｒｅｆＩｄｘＬＸおよびｐｒｅｄＦｌａｇＬＸは、
ｒｅｆＩｄｘＬＸ＝−１
ｐｒｅｄＦｌａｇＬＸ＝０
によって指定される。
２．変数ｍｖｄＬＸは、次のように導出される。
ｍｖｄＬＸ［０］＝ＭｖｄＬＸ［ｘＰｂ］［ｙＰｂ］［０］
ｍｖｄＬＸ［１］＝ＭｖｄＬＸ［ｘＰｂ］［ｙＰｂ］［１］
３．ｐｒｅｄＦｌａｇＬＸが１に等しいとき、従属節８．５．３．２．６におけるルーマ動きベクトル予測に対する導出プロセスは、入力としてルーマコーディングブロックロケーション（ｘＣｂ，ｙＣｂ）と、コーディングブロックサイズｎＣｂＳと、ルーマ予測ブロックロケーション（ｘＰｂ，ｙＰｂ）と、変数ｎＰｂＷと、ｎＰｂＨと、ｒｅｆＩｄｘＬＸと、区分インデックスｐａｒｔＩｄｘとを用いて起動され、出力はｍｖｐＬＸである。  
４．ｐｒｅｄＦｌａｇＬＸが１に等しく、参照ピクチャが現在ピクチャではないとき、ルーマ動きベクトルｍｖＬＸは、次のように導出される。
ｕＬＸ［０］＝（ｍｖｐＬＸ［０］＋ｍｖｄＬＸ［０］＋２16）％２16
ｍｖＬＸ［０］＝（ｕＬＸ［０］＞＝２15）？（ｕＬＸ［０］−２16）：ｕＬＸ［０］
ｕＬＸ［１］＝（ｍｖｐＬＸ［１］＋ｍｖｄＬＸ［１］＋２16）％２16
ｍｖＬＸ［１］＝（ｕＬＸ［１］＞＝２15）？（ｕＬＸ［１］−２16）：ｕＬＸ［１］
注意−上記で指定されたｍｖＬＸ［０］およびｍｖＬＸ［１］の得られた値は常に、両端を含む−２15〜２15−１の範囲内にあることになる。
５．ｐｒｅｄＦｌａｇＬＸが１に等しく、参照ピクチャが現在ピクチャであるとき、ルーマ動きベクトルｍｖＬＸは、次のように導出される。
ｍｖＬＸ［０］＝（ｍｖｐＬＸ［０］＞＞２＋ｍｖｄＬＸ［０］）＜＜２
ｍｖＬＸ［１］＝（ｍｖｐＬＸ［０］＞＞２＋ｍｖｄＬＸ［０］）＜＜２
参照ピクチャが現在ピクチャであるとき、ルーマ動きベクトルｍｖＬＸは、次の制約を順守するものとすることが、ビットストリーム適合の要件である。
（ａ）  ｚ走査順序ブロック利用可能性に対する導出プロセスが、入力として（ｘＣｂ，ｙＣｂ）に等しく設定された（ｘＣｕｒｒ，ｙＣｕｒｒ）と、（ｘＰｂ＋（ｍｖＬＸ［０］＞＞２）、（ｙＰｂ＋ｍｖＬＸ［１］＞＞２））に等しく設定された隣接ルーマロケーション（ｘＮｂＹ，ｙＮｂＹ）とを用いて起動されるとき、出力はＴＲＵＥに等しくなるものとする。  
（ｂ）  ｚ走査順序ブロック利用可能性に対する導出プロセスが、入力として（ｘＣｂ，ｙＣｂ）に等しく設定された（ｘＣｕｒｒ，ｙＣｕｒｒ）と、（ｘＰｂ＋（ｍｖＬＸ［０］＞＞２）＋ｎＰｂＷ−１，ｙＰｂ＋（ｍｖＬＸ［１］＞＞２）＋ｎＰｂＨ−１）に等しく設定された隣接ルーマロケーション（ｘＮｂＹ，ｙＮｂＹ）とを用いて起動されるとき、出力はＴＲＵＥに等しくなるものとする。
（ｃ）  次の条件の一方または両方は真であるものとする。
−    （ｍｖＬＸ［０］＞＞２）＋ｎＰｂＷ＋ｘＢ１の値は０以下である。
−    （ｍｖＬＸ［１］＞＞２）＋ｎＰｂＨ＋ｙＢ１の値は０以下である。
ＣｈｒｏｍａＡｒｒａｙＴｙｐｅが０に等しくなく、Ｘが０または１であるｐｒｅｄＦｌａｇＬＸが１に等しいとき、従属節８．５．３．２．１０におけるクロマ動きベクトルに対する導出プロセスは、入力としてルーマコーディングブロックロケーション（ｘＣｂ，ｙＣｂ）と、ルーマ予測ブロックロケーション（ｘＰｂ，ｙＰｂ）と、ルーマ動きベクトルｍｖＬＸとを用いて起動され、出力はｍｖＣＬＸである。
【０１８３】
[0187]変数ｍｖＬＸＣｏｌおよびａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは次のように導出される。ｓｌｉｃｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しい場合、ｍｖＬＸＣｏｌの両方の成分は０に等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。そうではなく、参照ピクチャが現在ピクチャであり、ｃｏｎｓｔｒａｉｎｅｄ＿ｉｎｔｒａ＿ｐｒｅｄ＿ｆｌａｇが１に等しい場合、ｍｖＬＸＣｏｌの両方の成分は０に等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
【０１８４】
[0188]さらなるシンタックス表は以下を含む。これらの表によって更新されるＨＥＶＣ規格の関連部分は、各表のヘッダ中に提供される。
【０１８５】
【表４−１】
2019169964.tif 000011
【表４−２】
2019169964.tif 000012
【表４−３】
2019169964.tif 000013
【表４−４】
2019169964.tif 000014
【表４−５】
2019169964.tif 000015
【表４−６】
2019169964.tif 000016
【表４−７】
2019169964.tif 000017
【表４−８】
2019169964.tif 000018
【０１８６】
[0189]図６は、動き情報マージおよびＡＭＶＰモードを導出することに対する空間的隣接動きベクトル候補の例を示す。ＨＥＶＣ規格によれば、イントラまたはイントラ予測を使用するとき、動き情報は、ビデオエンコーダ２０またはビデオデコーダ３０に対して利用可能であり得る。各ブロックに関して、動き情報のセットが利用可能であり得る。動き情報のセットは、前方および後方の予測方向に関する動き情報を含み得る。前方および後方の予測方向という用語は、双方向性予測モードに関連する２つの予測方向を示すことを意味する。「前方」および「後方」という用語は、必ずしも幾何学的意味を有するとは限らない。むしろ、「前方」および「後方」は、現在ピクチャの参照ピクチャリスト０（ＲｅｆＰｉｃＬｉｓｔ０）および参照ピクチャリスト１（ＲｅｆＰｉｃＬｉｓｔ１）に対応する。ピクチャまたはスライスに関して１つの参照ピクチャリストのみが利用可能であるとき、ＲｅｆＰｉｃＬｉｓｔ０のみが利用可能であり、スライスの各ブロックの動き情報は常に前方である。
【０１８７】
[0190]各予測方向に関して、動き情報は参照インデックスと動きベクトルとを含まなければならない。参照インデックスは、ピクチャリスト中の特定のピクチャに対するインデックスである。いくつかの場合には、簡明のために、ビデオコーダは、動きは関連する参照インデックスを有するものと仮定してよい。参照インデックスは、現在参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）中の参照ピクチャを識別するために使用される。動きベクトルは水平成分と垂直成分とを有する。ＣＵがインターコーディングされるとき、ＰＵごとに１つの動き情報セットが存在する。ビデオコーダは、ＰＵに対する動き情報のセットを導出するために、そのＰＵに関連付けられたインター予測モードを使用する。
【０１８８】
[0191]ＨＥＶＣ規格では、予測ユニット（ＰＵ）のために、それぞれ、マージモード（それはマージモードの特殊な場合であるスキップモードを含む）および高度動きベクトル予測（ＡＭＶＰ）モードの、２つのインター予測モードがある。ＡＭＶＰモードまたはマージモードのいずれかにおいて、ビデオコーダは、複数の動きベクトル予測子の動きベクトル（ＭＶ）候補リストを維持する。ビデオコーダは、動きベクトル、ならびにＭＶ候補リストから１つの候補を選択することによってマージモードを使用してＰＵをコーディングするときに使用されるべき参照インデックスを生成する。
【０１８９】
[0192]ＭＶ候補リストは、マージモードのために最高５つの候補を、およびＡＭＶＰモードのために２つだけの候補を含む。マージ候補は、動き情報のセット、たとえば、参照ピクチャリスト（リスト０およびリスト１）と対応する参照インデックスの両方に対応する動きベクトルを含み得る。ビデオコーダがマージインデックスによってマージ候補を識別する場合、ビデオコーダは、現在ブロックの予測のために識別された参照ピクチャを使用する。ビデオコーダはまた、現在ブロックに対して関連する動きベクトルを決定する。しかしながら、ＡＭＶＰを使用してブロックをコーディングするとき、リスト０またはリスト１のいずれかからの各潜在的予測方向に対して、ビデオコーダは、各参照インデックスをＭＶＰインデックスと併せて明示的にシグナリングしなければならない。ＡＭＶＰ候補は動きベクトルだけを含むので、ＭＶＰインデックスは、ＭＶ候補リストに対するインデックスである。ＡＭＶＰモードでは、ビデオコーダはさらに、予測された動きベクトルを改良し得る。
【０１９０】
[0193]したがって、上記で説明したように、ビデオコーダは、同様に、ＡＭＶＰモードとマージモードの両方に対する候補を、同じ空間的および時間的隣接ブロックに基づいて導出する。しかしながら、２つのモードは、マージ候補が動き情報のフルセットに対応する一方で、ＡＭＶＰ候補は特定の予測方向および参照インデックスに対して１つだけの動きベクトルを含むという点で違っている。両方のモードに関する候補は、同じ空間的および時間的隣接ブロックから同様に導出される。図６は、マージモードおよびＡＭＶＰモードに対するＭＶ候補を示す。
【０１９１】
[0194]空間的ＭＶ候補は、特定のＰＵ（ＰＵ0）に関して図６に示す隣接ブロックから導出されるが、ブロックから候補を生成する方法は、マージモードおよびＡＭＶＰモードに関して異なる。
【０１９２】
[0195]マージモードでは、図６に示すように、５つの可能な空間的候補位置｛ａ0、ａ1、ｂ0、ｂ1、ｂ2｝がある。ビデオコーダは、その位置におけるＭＶ候補が利用可能であるかどうかを、各ＭＶ候補位置に対して決定する。一例として、候補は、そのロケーションにおけるブロックがまだ復号されていない場合は利用可能でない。ビデオコーダは、次の順序：｛ａ1、ｂ1、ｂ0、ａ0、ｂ2｝で利用可能なＭＶ候補を検査する。
【０１９３】
[0196]ＡＭＶＰモードでは、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、隣接ブロックを、図６に示すようにブロックａ0およびａ1からなる左グループ、ならびにブロックｂ0、ｂ1およびｂ2からなる上隣接グループという、２つのグループに分割する。左隣接グループに対して、ビデオコーダは、順序：｛ａ0、ａ1｝に従ってブロックの利用可能性を検査する。上隣接グループに対して、ビデオコーダは、順序：｛ｂ0、ｂ1、ｂ2｝に従って上隣接ブロックの利用可能性を検査する。各グループについて、シグナリングされた参照インデックスによって示されたピクチャと同じ参照ピクチャを参照する潜在的候補は、そのグループの最終候補を形成するためにビデオコーダによって選定されるべき最高優先順位を有する。隣接ブロックが、同じ参照ピクチャを指す動きベクトルを含まない可能性がある。この場合、ビデオコーダが、シグナリングされたインデックスによって示されるピクチャードと同じ参照ピクチャを指す動きベクトルを発見できない場合、ビデオコーダは、第１の利用可能候補を選択する。ビデオコーダは、最終候補を形成するために第１の利用可能候補をスケーリングする。この場合、候補動きベクトルをスケーリングすることは、時間的距離差分を補償する。
【０１９４】
[0197]動きベクトルは、それがクロマ動き補償のために使用される前に現在ＰＵ／ＣＵのルーマ成分に対して導出され、動きベクトルは、クロマサンプリングフォーマットに基づいてスケーリングされる。
【０１９５】
[0198]ＰＵまたはＣＵは、サンプルのルーマブロック、ならびにサンプルの複数の対応するクロマ（色）ブロックを有し得る。いくつかの場合、各クロマサンプルに対応する複数のルーマサンプル（クロマサブサンプリングと呼ばれる）が存在し得る。動きベクトルを決定するとき、ビデオコーダは、最初に、ＰＵまたはＣＵに対するルーマ動きベクトル成分を導出する。ビデオコーダは、クロマサブサンプリングフォーマットに基づいてクロマ動きベクトルを決定するために、ルーマ動きベクトルをスケーリングすることができる。
【０１９６】
[0199]加えて、ＨＥＶＣでは、ビデオコーダは、ＬＣＵを並列動き推定領域（ＭＥＲ）に分割し得る。ＬＣＵがＭＥＲの一部であるとき、ビデオコーダは、マージ／スキップＭＶＰリスト構築プロセス中に含まれるべき現在ＰＵと異なるＭＥＲに属する隣接ＰＵのみを許容する。ビデオコーダは、ピクチャパラメータセット中のＭＥＲのサイズをコーディングする。ＭＥＲサイズを示すシンタックス要素は、「ｌｏｇ２＿ｐａｒａｌｌｅｌ＿ｍｅｒｇｅ＿ｌｅｖｅｌ＿ｍｉｎｕｓ２」である。
【０１９７】
[0200]いくつかの場合、たとえば、ＭＥＲサイズがＮ×Ｎサンプルより大きいとき、および可能な最小可能ＣＵサイズが２Ｎ×２Ｎサンプルに設定されるとき、ＭＥＲは、動き推定に関して空間的隣接ブロックの利用可能性に影響を与えることがある。たとえば、上記の場合、空間的隣接ブロックが現在ＰＵと同じＭＥＲ内にある場合、ビデオコーダは、空間的隣接ブロックを利用不可能であると見なす。
【０１９８】
[0201]イントラブロックコピー（ＢＣ）は、現在スクリーンコンテンツコーディング（ＳＣＣ）中に含まれている。イントラＢＣの一例は図５に示されている通りであり、ここにおいて、現在ＣＵ／ＰＵは、現在ピクチャ／スライスのすでに復号されたブロックから予測される。予測信号は再構成されるが、デブロッキングとサンプル適応オフセット（ＳＡＯ）とを含むインループフィルタリングは行われないことに留意されたい。
【０１９９】
[0202]イントラＢＣを用いてコーディングされるルーマ成分またはクロマ成分に対して、ブロック補償が整数ブロック補償を用いて行われ、したがって補間は不要である。
【０２００】
[0203]マージモードでは、空間的候補を確証した後、ビデオコーダは、２種類の冗長性を除去する。現在ＰＵに対する候補位置が同じＣＵ内の第１のＰＵを指す場合、ビデオコーダは、同じマージが、予測区分に分割することなくＣＵによって達成され得るので、その位置を除外する。さらに、ビデオコーダは、候補がまったく同じ動き情報を有する冗長なエントリを除外する。空間的隣接候補を検査した後、ビデオコーダは、時間的候補を確証する。時間的候補に対して、ビデオデコーダは、参照ピクチャが利用可能な場合、参照ピクチャのコロケートされたＰＵのすぐ外側の右下位置を使用する。他の場合、ビデオコーダは、中央位置を使用する。ビデオコーダがコロケートされたＰＵを選択する方法は、前の規格の方法と同様であるが、ＨＥＶＣは、どの参照ピクチャリストがコロケートされた参照ピクチャのために使用されるかを指定するためにインデックスを送信することによって、より大きい柔軟性を可能にする。
【０２０１】
[0204]時間的候補の使用に関する１つの問題は、参照ピクチャの動き情報を記憶するために必要なメモリの量である。この問題は、より小さいＰＢ構造が参照ピクチャ中の対応するロケーションにおいて使用されるときでも、時間的動き候補を記憶するための粒度を１６×１６ルーマグリッドの解像度に制限することによって対処される。加えて、ＰＰＳレベルフラグは、ビデオエンコーダが、エラーを起こしやすい送信を伴うアプリケーションに対して有用である時間的候補の使用を無効にすることを許容する。ビデオエンコーダは、スライスヘッダ中でＣをシグナリングすることによって、マージ候補の最大数（Ｃ）を示す。発見されたマージ候補（時間的候補を含む）の数がＣより大きい場合、ビデオコーダだけが、最初のＣ−１個の空間的候補および時間的候補だけを保持する。
【０２０２】
[0205]そうではなく、識別されたマージ候補の数がＣ未満である場合、ビデオコーダは、数がＣに等しくなるまで追加の候補を生成する。このことがパーシングを簡略化し、パーシングをよりロバストにする。なぜならば、コーディングされたデータをパースする能力は、マージ候補利用可能性に依存しないからである。
【０２０３】
[0206]Ｂスライスに対して、ビデオコーダは、参照ピクチャリスト０およびリスト１に対して所定の順序に従って２つの既存の候補を選択することによって、追加のマージ候補を生成する。たとえば、第１の生成された候補は、リスト０に対して第１のマージ候補を使用し、リスト１に対して第２のマージ候補を使用する。ＨＥＶＣは、すでに構成されたマージ候補リスト中で以下の順序にある合計１２の所定の２数のペアを、（０、１）、（１、０）、（０、２）、（２、０）、（１、２）、（２、１）、（０、３）、（３、０）、（１、３）、（３、１）、（２、３）および（３、２）として指定する。これらの中で、５つまでの候補が、冗長なエントリを除去した後で含まれ得る。マージ候補の数が依然としてＣ未満であるとき、マージ候補リスト中の残りのエントリを満たすために、参照インデックスに関連付けられた、ゼロから参照ピクチャの数マイナス１までのゼロ動きベクトルが使用されるのではなく、デフォルト動きベクトルと、対応する参照インデックスとを含むデフォルトマージ候補が使用される。
【０２０４】
[0207]ＡＭＶＰモードでは、ビデオエンコーダは動きベクトルを変更するためにコーディングされた差分を送ることができるので、ＨＥＶＣは、単に、はるかに少ない数の候補が、動きベクトル予測プロセスの場合に使用されることを可能にする。さらに、ビデオエンコーダは、エンコーダにおいて最も計算コストが高い演算のうちの１つである動き推定を実行する必要があり、少数の候補を可能にすることによって複雑さが低減される。隣接ＰＵの参照インデックスが現在ＰＵの参照インデックスに等しくないとき、ビデオコーダは、動きベクトルのスケーリングされたバージョンを使用する。隣接動きベクトルは、現在ピクチャと、隣接ＰＵおよび現在ＰＵそれぞれの参照インデックスによって示される参照ピクチャとの間の時間的距離に従ってスケーリングされる。
【０２０５】
[0208]２つの空間的候補が同じ動きベクトル成分を有するとき、１つの冗長な空間的候補が除外される。動きベクトル予測子の数が２に等しくなく、時間的ＭＶ予測の使用が明示的に無効にされないとき、時間的ＭＶ予測候補が含められる。これは、２つの空間的候補が利用可能であるときに、時間的候補はまったく使用されないことを意味する。最終的に、動きベクトル予測候補の数が２に等しくなるまで、ゼロ動きベクトルであるデフォルト動きベクトルが繰り返し含められ、そのことが、動きベクトル予測子の数が２であることを保証する。したがって、どの動きベクトル予測がＡＭＶＰモードで使用されるかを示すために、コーディングされたフラグだけが必要である。
【０２０６】
[0209]ビデオコーダは、たとえばＡＭＶＰモードまたはマージモードを使用して、動き予測中に現在ＰＵ／ＣＵのルーマ成分に対するＭＶを導出する。ビデオコーダがクロマ動き補償に対するＭＶを使用する前に、ビデオコーダは、ＰＵ／ＣＵのクロマサンプリングフォーマットに基づいてＭＶをスケーリングする。
【０２０７】
[0210]図７は、隣接ブロックＰおよびＱによって形成された４ピクセル長の垂直ブロック境界の一例である。Ｂが正のとき、デブロッキングフィルタが有効にされるか否かを決定するための基準は、次の式に従って定義され得る。
｜Ｐ2,0−２Ｐ1,0＋Ｐ0,0｜＋｜Ｐ2,3−２Ｐ1,3＋Ｐ0,3｜＋｜Ｑ2,0−２Ｑ1,0＋Ｑ0,0｜＋｜Ｑ2,3−２Ｑ1,3＋Ｑ0,3｜＜β                                  （１）
通常のおよび強いデブロッキングフィルタを決定するための基準は、（ｉ＝０、３）
｜Ｐ2,i−２Ｐ1,i＋Ｐ0,i｜＋｜Ｑ2,i−２Ｑ1,i＋Ｑ0,i｜＜β／８      （２）
｜Ｐ3,i−Ｐ0,i｜＋｜Ｑ3,I−Ｑ0,i｜＜β／８                        （３）
｜Ｐ0,I−Ｑ0,i｜＜２．５ＴC                                （４）
水平ブロック境界は、同様の方法で扱われ得る。
【０２０８】
[0211]図８は、例示的な空間的ブロックベクトル候補を示す概念図である。図４に示す４つの空間的ブロックベクトル予測候補が、｛ａ2，ａ1｝を含む左グループと｛ｂ2，ｂ1｝を含む上グループとに分割される。２つの空間的ブロックベクトル予測子候補が選択され、一方は利用可能性検査順序｛ａ2，ａ1｝に従って左グループから、他方は利用可能性検査順序｛ｂ2，ｂ1｝に従って上グループから選択される。１つの空間的ブロックベクトル予測子候補が利用不可能である場合、（−２ｗ，０）が代わりに使用される。両方の空間的ブロックベクトル予測子候補が利用不可能である場合、（−２＊ｗ，０）および（−ｗ，０）が代わりに使用され、ここでｗはＣＵ幅である。現在ブロックが４×４のサイズになると、ｂ2およびｂ1が同じブロックになり、ａ2およびａ1が同じブロックになることに留意されたい。
【０２０９】
[0212]図９は、本開示で説明する技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。ビデオエンコーダ２０は、ビデオを後処理エンティティ２７に出力するように構成され得る。後処理エンティティ２７は、ＭＡＮＥまたはスプライシング／編集デバイスなどの、ビデオエンコーダ２０からの符号化ビデオデータを処理し得るビデオエンティティの一例を表すように意図されている。いくつかの事例では、後処理エンティティ２７はネットワークエンティティの例であってよい。いくつかのビデオ符号化システムでは、後処理エンティティ２７およびビデオエンコーダ２０は別個のデバイスの部分であってよく、他の事例では、後処理エンティティ２７に関して説明される機能は、ビデオエンコーダ２０を備える同じデバイスによって実行されてよい。いくつかの例では、後処理エンティティ２７は図１のストレージデバイス１７の一例である
【０２１０】
[0213]ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディング、インターコーディング、およびＩＭＣコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測（Ｐモード）または双予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。ＩＭＣコーディングモードは、上記で説明したように、ビデオデータのフレームから空間的冗長性を除去し得るが、従来のイントラモードとは異なり、ＩＭＣコーディングコードは、イントラ予測コーディングモードに依拠するのではなく、より広い探索エリア中の予測ブロックをフレーム内に配置し、オフセットベクトルを用いて予測ブロックを指すために使用され得る。
【０２１１】
[0214]図９の例では、ビデオエンコーダ２０は、ビデオデータメモリ３３と、区分ユニット３５と、予測処理ユニット４１と、フィルタユニット６３と、復号ピクチャバッファ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。予測処理ユニット４１は、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測処理ユニット４６とを含む。ビデオブロックの再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換処理ユニット６０と、加算器６２とを含む。フィルタユニット６３は、デブロッキングフィルタ、適応ループフィルタ（ＡＬＦ）、およびサンプル適応オフセット（ＳＡＯ）フィルタのような、１つまたは複数のループフィルタを表すことが意図されている。図７では、フィルタユニット６３はループ内フィルタであるとして示されているが、他の構成では、フィルタユニット６３はループ後フィルタとして実装され得る。
【０２１２】
[0215]ビデオデータメモリ３３は、ビデオエンコーダ２０のコンポーネントによって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ３３に記憶されたビデオデータは、たとえば、ビデオソース１８から取得され得る。復号ピクチャバッファ６４は、たとえば、イントラコーディングモード、インターコーディングモード、またはＩＭＣコーディングモードでビデオエンコーダ２０によってビデオデータを符号化する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ３３および復号ピクチャバッファ６４は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）など、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ３３および復号ピクチャバッファ６４は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ３３は、ビデオエンコーダ２０の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに対してオフチップであり得る。
【０２１３】
[0216]図７に示すように、ビデオエンコーダ２０はビデオデータを受信し、ビデオデータをビデオデータメモリ３３に記憶する。区分ユニット３５はデータをビデオブロックに区分する。この区分はまた、たとえば、ＬＣＵおよびＣＵの４分木構造に従って、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分を含み得る。ビデオエンコーダ２０は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに（および、場合によっては、タイルと呼ばれるビデオブロックのセットに）分割され得る。予測処理ユニット４１は、誤差結果（たとえば、コーディングレートおよびひずみレベル）に基づいて現在ビデオブロックのために、複数のイントラコーディングモードのうちの１つ、複数のインターコーディングモードのうちの１つ、または複数のＩＭＣコーディングモードのうちの１つなどの、複数の可能なコーディングモードのうちの１つを選択し得る。予測処理ユニット４１は、得られたイントラコーディングされたブロック、インターコーディングされたブロック、またはＩＭＣコーディングされたブロックを、残差ブロックデータを生成するために加算器５０に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器６２に与え得る。
【０２１４】
[0217]予測処理ユニット４１内のイントラ予測処理ユニット４６は、空間的圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して現在ビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット４１内の動き推定ユニット４２および動き補償ユニット４４は、時間的圧縮を行うために、１つまたは複数の参照ピクチャ中の１つまたは複数の予測ブロックに対して現在ビデオブロックのインター予測コーディングを実行し得る。予測処理ユニット４１内の動き推定ユニット４２および動き補償ユニット４４はまた、空間的圧縮を行うために、同じピクチャ中の１つまたは複数の予測ブロックに対して現在ビデオブロックのＩＭＣコーディングを実行し得る。
【０２１５】
[0218]動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードまたはＩＭＣモードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスを、Ｐスライス、Ｂスライス、またはＧＰＢスライスとして指定し得る。動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。ＩＭＣコーディングの場合、ＩＭＣにおいてオフセットベクトルと呼ばれることがある動きベクトルは、現在ビデオフレーム内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。
【０２１６】
[0219]予測ブロックは、絶対値差分和（ＳＡＤ）、差分２乗和（ＳＳＤ）、または他の差分の尺度によって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのＰＵに厳密に一致することが判明しているブロックである。いくつかの例では、ビデオエンコーダ２０は、復号ピクチャバッファ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【０２１７】
[0220]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライスにおけるビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、それらの参照ピクチャリストの各々は、復号ピクチャバッファ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【０２１８】
[0221]本開示のいくつかの技法によれば、ＩＭＣモードを使用してビデオブロックをコーディングするとき、動き推定ユニット４２は、ビデオブロックのルーマ成分のための動きベクトル、またはオフセットベクトルを決定し、ルーマ成分のためのオフセットベクトルに基づいて、ビデオブロックのクロマ成分のためのオフセットベクトルを決定し得る。別の例では、ＩＭＣモードを使用してビデオブロックをコーディングするとき、動き推定ユニット４２は、ビデオブロックのクロマ成分のための動きベクトル、またはオフセットベクトルを決定し、クロマ成分のためのオフセットベクトルに基づいて、ビデオブロックのルーマ成分のためのオフセットベクトルを決定し得る。したがって、ビデオエンコーダ２０はビットストリーム中で一方のオフセットベクトルのみをシグナリングし得、そのオフセットベクトルから、ビデオブロックのクロマ成分とルーマ成分の両方のためのオフセットベクトルが決定され得る。
【０２１９】
[0222]動き補償ユニット４４によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを含み得る。補間フィルタリングは、既知のピクセルサンプルから追加のピクセルサンプルを生成し、したがって、ビデオブロックをコーディングするために使用され得る候補予測ブロックの数を潜在的に増加し得る。現在ビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、参照ピクチャリストのうちの１つにおいて動きベクトルが指す、またはＩＭＣコーディングの場合の予測ブロックを、コーディングされているピクチャ内に配置し得る。ビデオエンコーダ２０は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマとクロマの両方の差分成分を含み得る。加算器５０は、この減算演算を実施する１つまたは複数の構成要素を表す。動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０によって使用するための、ビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成し得る。
【０２２０】
[0223]イントラ予測処理ユニット４６は、上記で説明したように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測およびＩＭＣの代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測処理ユニット４６は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット４６は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測処理ユニット４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測処理ユニット４６は、様々な試験されたイントラ予測モードに対するレートひずみ分析を使用してレートひずみ値を計算し、試験されたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに符号化ブロックを生成するために使用されたビットレート（すなわち、いくつかのビット）を決定する。イントラ予測処理ユニット４６は、どのイントラ予測モードがブロックに関する最良のレートひずみ値を示すのかを決定するために、様々な符号化されたブロックのひずみおよびレートから比を算出することができる。
【０２２１】
[0224]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット４６は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット５６に与え得る。エントロピー符号化ユニット５６は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを、送信されるビットストリームに含め得る。
【０２２２】
[0225]予測処理ユニット４１が、インター予測、イントラ予測、またはＩＭＣのいずれかを介して、現在ビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ２０は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、１つまたは複数のＴＵ中に含まれ、変換処理ユニット５２に適用され得る。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット５２は、残差ビデオデータをピクセル領域からの周波数領域などの変換領域に変換し得る。
【０２２３】
[0226]変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【０２２４】
[0227]量子化の後、エントロピー符号化ユニット５６は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディング、または別のエントロピー符号化方法もしくは技法を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化の後、符号化ビットストリームは、ビデオデコーダ３０へ送信されてよく、または後の送信もしくはビデオデコーダ３０による後の取出しのためにアーカイブされてもよい。エントロピー符号化ユニット５６はまた、コーディングされている現在ビデオスライスのための、動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【０２２５】
[0228]逆量子化ユニット５８および逆変換処理ユニット６０は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照ピクチャリストの１つの中の参照ピクチャの１つの予測ブロックに加算することによって参照ブロックを計算することができる。動き補償ユニット４４はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに１つまたは複数の補間フィルタを適用し得る。補間フィルタリングは、既知のピクセルサンプルから追加のピクセルサンプルを生成し、したがって、ビデオブロックをコーディングするために使用され得る候補予測ブロックの数を潜在的に増加し得る。加算器６２は、復号ピクチャバッファ６４に記憶するための参照ブロックを生成するために、再構成された残差ブロックを動き補償ユニット４４によって生成された動き補償予測ブロックに加算する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【０２２６】
[0229]本開示の技法によれば、上記で説明したように、ビデオエンコーダ２０は、統合されたイントラブロックコピーモードを使用してビデオデータのＣＵをコーディングすることと、ここにおいて統合されたイントラブロックコピーを使用してブロックをコーディングすることは現在ピクチャを参照ピクチャセットに追加することを備える、ＣＵに対する動きベクトルが、参照ピクチャセットが現在ピクチャだけを含む場合またはブロックに対する参照ピクチャが現在ピクチャである場合に動きベクトルに対する精度を表すシンタックス要素をコーディングすることなく整数ピクセル精度を有するものと決定することと、ＣＵに対する動きベクトルに基づいてＣＵをコーディングすることとを行うように構成され得る。
【０２２７】
[0230]本開示の技法による別の例では、ビデオエンコーダ２０は、ＣＵに対する動きベクトルが整数ピクセル精度を有するかまたはサブ整数ピクセル精度を有するかを示すシンタックス要素をコーディングするように構成され得る。シンタックス要素が、動きベクトルが整数ピクセル精度を有することを示すとき、ビデオエンコーダ２０は、ＣＵのクロマサンプルのブロックに対するスケーリングされたクロマ動きベクトルを生成するためにＣＵの動きベクトルをスケーリングすることと、スケーリングされたクロマ動きベクトルが整数ピクセル精度を持たない場合に整数ピクセル値になるようにスケーリングされたクロマ動きベクトルの端数を切り上げるかまたは切り捨てることと、丸められたクロマ動きベクトルに基づいてＣＵをコーディングすることとを行うことができる。
【０２２８】
[0231]本明細書で説明する１つまたは複数の技法によれば、ビデオエンコーダ２０のエントロピー符号化ユニット５６は、本開示の技法を実行するように構成され得る。たとえば、ビデオエンコーダ２０のエントロピー符号化ユニット５６は、現在ビデオブロックをコーディングするために使用される参照ピクチャを決定するように構成され得る。ビデオエンコーダ２０のエントロピー符号化ユニット５６は、参照ピクチャに対するＰＯＣ値をさらに決定し得る。参照ピクチャに対するＰＯＣ値が現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値に等しいことに応答して、ビデオエンコーダ２０の符号化ユニット５６は、参照ピクチャリストが現在ピクチャを含むことを示すようにシンタックス要素の値を設定し得る。いくつかの例では、シンタックス要素は、ＰＰＳまたはＳＰＳのうちの１つの中に配置され得る。反対に、参照ピクチャに対するＰＯＣ値が現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値に等しくないことに応答して、ビデオエンコーダ２０の符号化ユニット５６は、参照ピクチャリストが現在ピクチャを含まないことを示すようにシンタックス要素の値を設定し得る。
【０２２９】
[0232]いくつかの例では、現在ピクチャは、ＰスライスまたはＢスライスのうちの１つを備えるイントラランダムアクセスピクチャ（ＩＲＡＰ）である。そのような例では、ＩＲＡＰピクチャは、空でない参照ピクチャセットを指定する１つまたは複数の異なるシンタックス要素のセットをさらに含み得る。いくつかの例では、現在ピクチャの現在ビデオブロックは、ルーマ成分とクロマ成分とを含む。そのような例では、ルーマ成分またはクロマ成分のうちの１つだけが、整数ペル精度を有し得る。
【０２３０】
[0233]いくつかの例では、参照ピクチャは、現在ピクチャの復号されたフィルタリングされていないサンプルをさらに含み得る。様々な例では、参照ピクチャは、動き予測情報をさらに含む参照ブロックを含み得る。ビデオエンコーダ２０のエントロピー符号化ユニット５６は、現在ビデオブロックをコーディングするために参照ブロックの動き情報を使用し得る。たとえば、動き補償ユニット４４は、マージモードでコーディングされるブロックを符号化し得る。現在ブロックのピクチャが参照ピクチャリスト内にある資格がある場合、マージ候補リスト中のマージ候補のうちの１つまたは複数が、現在ブロックと同じピクチャ中の参照ブロックを指す動きベクトル（たとえば、オフセットベクトル）を含み得る。
【０２３１】
[0234]参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しくないいくつかの例では、現在ピクチャに対するＳＰＳを指すＣＶＳは、１つまたは複数のＩスライスを含み得る。
【０２３２】
[0235]いくつかの例では、現在ピクチャは、クリーンランダムアクセスピクチャまたは切断リンクアクセスピクチャのうちの１つである。そのような例では、ビデオエンコーダ２０のエントロピー符号化ユニット５６は、現在ピクチャに対する予測参照として使用され得るピクチャの数を示す第２のシンタックス要素の値を１に設定し得る。
【０２３３】
[0236]参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しいいくつかの例では、現在ビデオブロックに対するＭＶは、整数ペル精度を有し得る。さらに、ビデオエンコーダ２０のエントロピー符号化ユニット５６は、候補導出プロセスにおいて使用される前または候補導出プロセスが完了した後のいずれかにおいて、現在ピクチャに対する複数の動きベクトル予測子候補のうちのＭＶ予測子候補の各々を整数ペル精度に変換することができる。参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しい他の例では、現在ピクチャの各予測サンプルは、現在ピクチャのピクチャ境界内に含まれる。さらに、参照ピクチャリストが現在ピクチャだけを含む場合、ビデオエンコーダ２０のエントロピー符号化ユニット５６は、ＴＭＶＰを無効にすることができる。
【０２３４】
[0237]ビデオエンコーダ３０は、本開示の技法に従って一般的可逆プロセスを実行するように構成され得る。
【０２３５】
[0238]図１０は、本開示で説明する技法を実装し得る例示的なビデオデコーダを示すブロック図である。図１０の例では、ビデオデコーダ３０は、ビデオデータメモリ７８と、エントロピー復号ユニット８０と、予測処理ユニット８１と、逆量子化ユニット８６と、逆変換処理ユニット８８と、加算器９０と、フィルタユニット９１と、復号ピクチャバッファ９２とを含む。予測処理ユニット８１は、動き補償ユニット８２と、イントラ予測処理ユニット８４とを含む。ビデオデコーダ３０は、いくつかの例では、図９からのビデオエンコーダ２０に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。
【０２３６】
[0239]復号プロセス中に、ビデオデコーダ３０は、ビデオデータ、たとえば、符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを、ビデオエンコーダ２０から受信する。ビデオデコーダ３０は、ビデオデータをネットワークエンティティ２９から受信し、ビデオデータをビデオデータメモリ７８に記憶し得る。ビデオデータメモリ７８は、ビデオデコーダ３０の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ７８に記憶されたビデオデータは、たとえば、ストレージデバイス１７から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ７８は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコーディングされたピクチャバッファを形成し得る。したがって、図１０では別々に示されているが、ビデオデータメモリ７８および復号ピクチャバッファ９２は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。ビデオデータメモリ７８および復号ピクチャバッファ９２は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）など、様々なメモリデバイスのいずれかによって形成され得る。様々な例では、ビデオデータメモリ７８は、ビデオデコーダ３０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０２３７】
[0240]ネットワークエンティティ２９は、たとえば、上記で説明した技法のうちの１つまたは複数を実施するように構成されたサーバ、ＭＡＮＥ、ビデオエディタ／スプライサ、または他のそのようなデバイスであり得る。ネットワークエンティティ２９はビデオエンコーダ２０などのビデオエンコーダを含んでもよく、または含まなくてもよい。本開示で説明する技法のいくつかは、ネットワークエンティティ２９が符号化ビデオビットストリームをビデオデコーダ３０に送信するのに先立って、ネットワークエンティティ２９によって実施され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ２９およびビデオデコーダ３０は別個のデバイスの一部であり得るが、他の事例では、ネットワークエンティティ２９に関して説明する機能は、ビデオデコーダ３０を備える同じデバイスによって実行され得る。ネットワークエンティティ２９は、場合によっては、図１のストレージデバイス１７の一例であり得る。
【０２３８】
[0241]ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化係数と、動きベクトルと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、動きベクトルと他のシンタックス要素とを予測処理ユニット８１に転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【０２３９】
[0242]ビデオスライスがイントラコーディングされた（Ｉ）スライスとしてコーディングされたとき、予測処理ユニット８１のイントラ予測処理ユニット８４は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコーディングされた（すなわち、ＢまたはＰ）スライスとしてコーディングされたときまたはブロックがＩＭＣコーディングされたとき、予測処理ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。インター予測の場合、予測ブロックは参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、復号ピクチャバッファ９２に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト０およびリスト１を構成し得る。ＩＭＣコーディングの場合、予測ブロックは予測されているブロックと同じピクチャから生成され得る。
【０２４０】
[0243]動き補償ユニット８２は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックについての予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために予測情報を使用する。たとえば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラ予測またはインター予測）と、インター予測スライスタイプ（たとえば、ＢスライスまたはＰスライス）と、スライス用の参照ピクチャリストのうちの１つまたは複数についての構成情報と、スライスの各インター符号化ビデオブロックについての動きベクトルと、スライスの各インターコーディングされたビデオブロックについてのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【０２４１】
[0244]動き補償ユニット８２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット８２は、ビデオブロックの符号化の間にビデオエンコーダ２０によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間された値を計算し得る。この場合、動き補償ユニット８２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用し得る。
【０２４２】
[0245]本開示のいくつかの技法によれば、ＩＭＣモードを使用してビデオブロックをコーディングするとき、動き補償ユニット８２は、ビデオブロックのルーマ成分のための動きベクトル、またはオフセットベクトルを決定し、ルーマ成分のための動きベクトルに基づいて、ビデオブロックのクロマ成分のための動きベクトルを決定し得る。別の例では、ＩＭＣモードを使用してビデオブロックをコーディングするとき、動き補償ユニット８２は、ビデオブロックのクロマ成分のための動きベクトル、またはオフセットベクトルを決定し、クロマ成分のための動きベクトルに基づいて、ビデオブロックのルーマ成分のための動きベクトルを決定し得る。したがって、ビデオデコーダ３０は、ビットストリーム中で一方のオフセットベクトルのみを受信し得、そのオフセットベクトルから、ビデオブロックのクロマ成分とルーマ成分の両方のためのオフセットベクトルが決定され得る。
【０２４３】
[0246]ＩＭＣモードを使用してビデオブロックを復号するとき、動き補償ユニット８２は、たとえば、クロマ成分のためのオフセットベクトルを決定するために、ルーマ成分のための、ＩＭＣモードのためのオフセットベクトルと呼ばれる、動きベクトルを変更し得る。動き補償ユニット８２は、たとえば、ビデオブロックのためのサンプリングフォーマットに基づいて、およびオフセットベクトルが指すサブピクセル位置の精度に基づいて、ルーマブロックのオフセットベクトルのｘ成分とｙ成分の一方または両方を変更し得る。たとえば、ビデオブロックが４：２：２サンプリングフォーマットを使用してコーディングされる場合、動き補償ユニット８２は、クロマ成分のためのオフセットベクトルを決定するために、ルーマオフセットベクトルのｙ成分ではなく、ｘ成分のみを変更し得る。図４からわかるように、４：２：２サンプリングフォーマットでは、クロマブロックおよびルーマブロックは垂直方向において同じ数のサンプルを有し、したがって、ｙ成分の変更を潜在的に不要にする。クロマ予測ブロックを配置するために使用されるときに、ルーマオフセットベクトルが、クロマサンプルなしの位置（たとえば、現在ブロックを含む現在ピクチャのクロマサンプル中のサブピクセル位置における）を指す場合、動き補償ユニット８２は、ルーマオフセットベクトルのみを変更し得る。ルーマオフセットベクトルが、クロマ予測ブロックを配置するために使用されるときに、クロマサンプルが存在する位置を指す場合、動き補償ユニット８２はルーマオフセットベクトルを変更しなくてもよい。
【０２４４】
[0247]別の例では、ビデオブロックが４：２：０サンプリングフォーマットを使用してコーディングされる場合、動き補償ユニット８２は、クロマ成分のためのオフセットベクトルを決定するために、ルーマオフセットベクトルのｘ成分およびｙ成分のいずれかまたは両方を変更し得る。図３からわかるように、４：２：０サンプリングフォーマットでは、クロマブロックおよびルーマブロックは垂直方向と水平方向の両方において異なる数のサンプルを有する。クロマ予測ブロックを配置するために使用されるときに、ルーマオフセットベクトルが、クロマサンプルなしの位置（たとえば、現在ブロックを含む現在ピクチャのクロマサンプル中のサブピクセル位置における）を指す場合、動き補償ユニット８２は、ルーマオフセットベクトルのみを変更し得る。ルーマオフセットベクトルが、クロマ予測ブロックを配置するために使用されるときに、クロマサンプルが存在する位置を指す場合、動き補償ユニット８２はルーマオフセットベクトルを変更しなくてもよい。
【０２４５】
[0248]動き補償ユニット８２は、変更されたオフセットベクトルとも呼ばれる変更された動きベクトルを生成するためにルーマオフセットベクトルを変更し得る。動き補償ユニット８２は、クロマ予測ブロックを配置するために使用されるときに、クロマブロックのために使用される変更されたオフセットベクトルがより解像度が低いサブピクセル位置または整数ピクセル位置を指すように、サブピクセル位置を指すルーマオフセットベクトルを変更し得る。一例として、１／８ピクセル位置を指すルーマオフセットベクトルは１／４ピクセル位置を指すように変更され得、１／４ピクセル位置を指すルーマオフセットベクトルは１／２ピクセル位置を指すように変更され得る、などである。他の例では、動き補償ユニット８２は、変更されたオフセットベクトルがクロマ参照ブロックを配置するための整数ピクセル位置を常に指すように、ルーマオフセットベクトルを変更し得る。より解像度が低いサブピクセル位置または整数ピクセル位置を指すようにルーマオフセットベクトルを変更することは、何らかの補間フィルタリングの必要性をなくすおよび／または任意の必要とされる補間フィルタリングの複雑性を低減することができ得る。
【０２４６】
[0249]図３および図４を参照し、左上のサンプルが位置（０，０）にあると仮定すると、ビデオブロックは、奇数のｘ位置と偶数のｘ位置の両方および奇数のｙ位置と偶数のｙ位置の両方においてルーマサンプルを有する。４：４：４サンプリングフォーマットでは、ビデオブロックはまた、奇数のｘ位置と偶数のｘ位置の両方および奇数のｙ位置と偶数のｙ位置の両方においてクロマサンプルを有する。したがって、４：４：４サンプリングフォーマットの場合、動き補償ユニットは、ルーマ予測ブロックとクロマ予測ブロックの両方を配置するために同じオフセットベクトルを使用し得る。４：２：２サンプリングフォーマットの場合、図４に示すように、ビデオブロックは奇数のｙ位置と偶数のｙ位置の両方において、ただし偶数のｘ位置のみにおいてクロマサンプルを有する。したがって、４：２：２サンプリングフォーマットの場合、ルーマオフセットベクトルが奇数のｘ位置を指す場合、動き補償ユニット８２は、補間を必要とすることなしに、変更されたオフセットベクトルが現在ブロックのクロマブロックのための参照クロマブロックを配置するために使用され得るように、偶数のｘ位置を指す変更されたオフセットベクトルを生成するためにルーマオフセットベクトルのｘ成分を変更し得る。動き補償ユニット８２は、たとえば、最も近い偶数のｘ位置に切り上げるかまたは切り捨てるかのいずれか、すなわち、ｘ成分が最も近い左側のｘ位置または最も近い右側のｘ位置のいずれかを指すようにｘ成分を変えることによって、ｘ成分を変更し得る。ルーマオフセットベクトルが偶数のｘ位置をすでに指す場合、変更は必要ではないことがある。
【０２４７】
[0250]４：２：０サンプリングフォーマットの場合、図３に示すように、ビデオブロックは偶数のｙ位置のみにおいて、および偶数のｘ位置のみにおいてクロマサンプルを有する。したがって、４：２：０サンプリングフォーマットの場合、ルーマオフセットベクトルが奇数のｘ位置または奇数のｙ位置を指す場合、動き補償ユニット８２は、補間を必要とすることなしに、変更されたオフセットベクトルが現在ブロックのクロマブロックのための参照クロマブロックを配置するために使用され得るように、偶数のｘ位置を指す変更されたオフセットベクトルを生成するためにルーマオフセットベクトルのｘ成分またはｙ成分を変更し得る。動き補償ユニット８２は、たとえば、最も近い偶数のｘ位置に切り上げるかまたは切り捨てるかのいずれか、すなわち、ｘ成分が最も近い左側のｘ位置または最も近い右側のｘ位置のいずれかを指すようにｘ成分を変えることによって、ｘ成分を変更し得る。動き補償ユニット８２は、たとえば、最も近い偶数のｙ位置に切り上げるかまたは切り捨てるかのいずれか、すなわち、ｙ成分が最も近い上側のｙ位置または最も近い下側のｙ位置のいずれかを指すようにｙ成分を変えることによって、ｙ成分を変更し得る。ルーマオフセットベクトルが偶数のｘ位置と偶数のｙ位置とをすでに指す場合、変更は必要ではないことがある。
【０２４８】
[0251]逆量子化ユニット８６は、ビットストリーム中で与えられ、エントロピー復号ユニット８０によって復号された量子化変換係数を逆量子化（inverse quantize）、すなわち逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ２０によって計算される量子化パラメータの使用を含み得る。逆変換処理ユニット８８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換処理を変換係数に適用する。
【０２４９】
[0252]動き補償ユニット８２が、動きベクトルおよび他のシンタックス要素に基づいて現在ビデオブロックのための予測ブロックを生成した後に、ビデオデコーダ３０は、逆変換処理ユニット８８からの残差ブロックを動き補償ユニット８２によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数の構成要素を表す。所望される場合、ピクセル移行を平滑化するために、または別様にビデオ品質を向上させるために、（コーディングループの中とコーディングループの後のいずれかの）ループフィルタも使用され得る。フィルタユニット９１は、デブロッキングフィルタ、適応ループフィルタ（ＡＬＦ）、およびサンプル適応オフセット（ＳＡＯ）フィルタのような、１つまたは複数のループフィルタを表すことが意図されている。図１０では、フィルタユニット９１はループ内フィルタであるとして示されているが、他の構成では、フィルタユニット９１はループ後フィルタとして実装され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、後続の動き補償のために使用される参照ピクチャを記憶する復号ピクチャバッファ９２に記憶される。復号ピクチャバッファ９２は、図１のディスプレイデバイス３２などのディスプレイデバイス上で後で提示するための復号ビデオも記憶するメモリの一部であってもよく、またはそのようなメモリとは別個であってもよい。
【０２５０】
[0253]図１０のビデオデコーダ３０は、ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト（たとえば、リスト０またはリスト１の一方または両方）内にある資格があるかどうかを示すシンタックス要素（たとえば、上記で説明したｃｕｒｒ＿ｐｉｃ＿ａｓ＿ｒｅｆ＿ｅｎａｂｌｅｄ＿ｆｌａｇ）を受信するように構成され得るビデオデコーダの一例を表す。ビデオデコーダ３０は、シンタックス要素の値（たとえば、１ビットシンタックス要素に対するａ１またはａ０）を決定し、ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格があることをシンタックス要素が示すことに応答して、現在ピクチャを参照ピクチャリストに追加することができる。ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格がないことをシンタックス要素が示すことに応答して、ビデオデコーダ３０は、現在ピクチャが参照ピクチャリスト内に置かれるのを制限し得る。
【０２５１】
[0254]ビデオデコーダ３０のエントロピー復号ユニット８０は、ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格があるかどうかを示すシンタックス要素を受信し得る。ビデオデコーダ３０のエントロピー復号ユニット８０は、シンタックス要素の値をさらに決定し得る。ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格があることをシンタックス要素が示すことに応答して、ビデオデコーダ３０の動き補償ユニット８２は、現在ピクチャを参照ピクチャリストに追加し得る。ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格がないことをシンタックス要素が示すことに応答して、ビデオデコーダ３０の動き補償ユニット８２は、現在ピクチャが参照ピクチャリスト内に置かれるのを制限し得る。
【０２５２】
[0255]いくつかの例では、現在ピクチャは、ＰスライスまたはＢスライスのうちの１つを備えるイントラランダムアクセスピクチャ（ＩＲＡＰ）である。そのような例では、ＩＲＡＰピクチャは、空でない参照ピクチャセットを指定する１つまたは複数の異なるシンタックス要素のセットをさらに含み得る。いくつかの例では、現在ピクチャの現在ビデオブロックは、ルーマ成分とクロマ成分とを含む。そのような例では、ルーマ成分またはクロマ成分のうちの１つだけが、整数ペル精度を有し得る。
【０２５３】
[0256]いくつかの例では、参照ピクチャは、現在ピクチャの復号されたフィルタリングされていないサンプルをさらに含み得る。様々な例では、参照ピクチャは、動き予測情報をさらに含む参照ブロックを含み得る。ビデオデコーダ３０の動き補償ユニット８２は、現在ビデオブロックをコーディングするために参照ブロックの動き情報を使用し得る。たとえば、動き補償ユニット８２は、マージモードでコーディングされるブロックを復号し得る。現在ブロックのピクチャが参照ピクチャリスト内にある資格がある場合、マージ候補リスト中のマージ候補のうちの１つまたは複数が、現在ブロックと同じピクチャ中の参照ブロックを指す動きベクトル（たとえば、オフセットベクトル）を含み得る。
【０２５４】
[0257]参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しくないいくつかの例では、現在ピクチャに対するＳＰＳを指すＣＶＳは、１つまたは複数のＩスライスを含み得る。
【０２５５】
[0258]いくつかの例では、現在ピクチャは、クリーンランダムアクセスピクチャまたは切断リンクアクセスピクチャのうちの１つである。そのような例では、ビデオデコーダ３０のエントロピー復号ユニット８０は、現在ピクチャに対する予測参照として使用される資格があるピクチャの数を示す第２のシンタックス要素を受信してよく、第２のシンタックス要素は１の値を有する。
【０２５６】
[0259]参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しいいくつかの例では、現在ビデオブロックに対するＭＶは、整数ペル精度を有し得る。さらに、ビデオデコーダ３０のエントロピー復号ユニット８０は、候補導出プロセスにおいて使用される前または候補導出プロセスが完了した後のいずれかにおいて、現在ピクチャに対する複数の動きベクトル予測子候補のうちのＭＶ予測子候補の各々を整数ペル精度に変換することができる。参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しい他の例では、現在ピクチャの各予測サンプルは、現在ピクチャのピクチャ境界内に含まれる。さらに、参照ピクチャリストが現在ピクチャだけを含む場合、ビデオデコーダ３０のエントロピー復号ユニット８０は、ＴＭＶＰを無効にすることができる。
【０２５７】
[0260]図１１は、本明細書で説明する１つまたは複数の技法による例示的なビデオ符号化技法を示すフロー図である。このフロー図を説明するために、ビデオコーディングデバイスへの参照がなされる。メモリと１つまたは複数のプロセッサとを備えるビデオコーディングデバイスは、図１および図９のビデオエンコーダ２０などのビデオエンコーダを含み得ることを認識されたい。さらに、ビデオコーディングデバイスは、ビデオブロックを符号化することにおいて次の技法を使用し得る。
【０２５８】
[0261]本明細書で説明する１つまたは複数の技法によれば、ビデオコーディングデバイスは、本開示の技法を実行するように構成され得る。たとえば、ビデオコーディングデバイスは、現在ビデオブロックをコーディングするために使用される参照ピクチャを決定するように構成され得る（２００）。ビデオコーディングデバイスは、参照ピクチャに対するＰＯＣ値をさらに決定し得る（２０２）。参照ピクチャに対するＰＯＣ値が現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値に等しい（２０４のＹＥＳ分岐）ことに応答して、ビデオコーディングデバイスは、参照ピクチャリストが現在ピクチャを含むことを示すようにシンタックス要素の値を設定し得る（２０６）。いくつかの例では、シンタックス要素は、ＰＰＳまたはＳＰＳのうちの１つの中に配置され得る。反対に、参照ピクチャに対するＰＯＣ値が現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値に等しくない（２０４のＮＯ分岐）ことに応答して、ビデオコーディングデバイスは、参照ピクチャリストが現在ピクチャを含まないことを示すようにシンタックス要素の値を設定し得る（２０８）。
【０２５９】
[0262]いくつかの例では、現在ピクチャは、ＰスライスまたはＢスライスのうちの１つを備えるイントラランダムアクセスピクチャ（ＩＲＡＰ）である。そのような例では、ＩＲＡＰピクチャは、空でない参照ピクチャセットを指定する１つまたは複数の異なるシンタックス要素のセットをさらに含み得る。いくつかの例では、現在ピクチャの現在ビデオブロックは、ルーマ成分とクロマ成分とを含む。そのような例では、ルーマ成分またはクロマ成分のうちの１つだけが、整数ペル精度を有し得る。
【０２６０】
[0263]いくつかの例では、参照ピクチャは、現在ピクチャの復号されたフィルタリングされていないサンプルをさらに含み得る。様々な例では、参照ピクチャは、動き予測情報をさらに含む参照ブロックを含み得る。ビデオコーディングデバイスは、現在ビデオブロックをコーディングするために参照ブロックの動き情報を使用し得る。
【０２６１】
[0264]参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しくないいくつかの例では、現在ピクチャに対するＳＰＳを指すＣＶＳは、１つまたは複数のＩスライスを含み得る。
【０２６２】
[0265]いくつかの例では、現在ピクチャは、クリーンランダムアクセスピクチャまたは切断リンクアクセスピクチャのうちの１つである。そのような例では、ビデオコーディングデバイスは、現在ピクチャに対する予測参照として使用され得るピクチャの数を示す第２のシンタックス要素の値を１に設定し得る。
【０２６３】
[0266]参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しいいくつかの例では、現在ビデオブロックに対するＭＶは、整数ペル精度を有し得る。さらに、ビデオコーディングデバイスは、候補導出プロセスにおいて使用される前または候補導出プロセスが完了した後のいずれかにおいて、現在ピクチャに対する複数の動きベクトル予測子候補のうちのＭＶ予測子候補の各々を整数ペル精度に変換することができる。参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しい他の例では、現在ピクチャの各予測サンプルは、現在ピクチャのピクチャ境界内に含まれる。
【０２６４】
[0267]いくつかの例では、参照ピクチャリストが現在ピクチャだけを含む場合、ビデオコーディングデバイスはＴＭＶＰを無効にし得る。他の例では、ビデオコーディングデバイスが現在ピクチャと異なるピクチャに少なくとも部分的に基づいてＴＭＶＰを決定し得るように、制約がビデオコーディングデバイスに置かれることがある。
【０２６５】
[0268]いくつかの例では、ビデオコーディングデバイスは、現在ピクチャの隣接ピクチャを決定してよく、隣接ブロックは空間的隣接ピクチャまたは時間的隣接ピクチャのいずれかである。ビデオコーディングデバイスは、隣接ピクチャ中の予測ブロックをさらに決定してよく、予測ブロックは動きベクトルを含む。ビデオコーディングデバイスは、現在ブロックに対する参照ピクチャ中の参照ブロックを決定するために動きベクトルを使用してよく、参照ブロックは動き予測情報を含む。次いで、ビデオコーディングデバイスは、参照ブロックの動き予測情報と残差とを使用して現在ビデオブロックを符号化し得る。
【０２６６】
[0269]図１２は、本明細書で説明する１つまたは複数の技法による例示的なビデオ符号化技法を示すフロー図である。このフロー図を説明するために、ビデオコーディングデバイスへの参照がなされる。メモリと１つまたは複数のプロセッサとを備えるビデオコーディングデバイスは、図１および図１０のビデオデコーダ３０などのビデオデコーダを含み得ることを認識されたい。さらに、ビデオコーディングデバイスは、ビデオブロックを復号することにおいて次の技法を使用し得る。
【０２６７】
[0270]本明細書で説明する１つまたは複数の技法によれば、ビデオコーディングデバイスは、ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格があるかどうかを示すシンタックス要素を受信し得る（２２０）。ビデオコーディングデバイスは、シンタックス要素の値をさらに決定し得る（２２２）。ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格があることをシンタックス要素が示す（２２４のＹＥＳ分岐）ことに応答して、ビデオコーディングデバイスは、現在ピクチャを参照ピクチャリストに追加し得る（２２６）。ビデオデータの現在ビデオブロックが参照ピクチャリスト内にある資格がないことをシンタックス要素が示す（２２４のＮＯ分岐）ことに応答して、ビデオコーディングデバイスは、現在ピクチャが参照ピクチャリスト内に置かれるのを制限し得る（２２８）。
【０２６８】
[0271]他の例では、ビデオコーディングデバイスは、本開示の技法を実行するように構成され得る。たとえば、ビデオコーディングデバイスは、ビデオデータの現在ビデオブロックを復号するために使用される参照ピクチャに対するＰＯＣ値が、現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値と同じであるかどうかを示すシンタックス要素を受信し得る。いくつかの例では、シンタックス要素は、ＰＰＳまたはＳＰＳのうちの１つの中に配置され得る。ビデオコーディングデバイスは、シンタックス要素の値をさらに決定し得る。参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しいことをシンタックス要素が示すことに応答して、ビデオコーディングデバイスは、現在ピクチャを参照ピクチャリストに追加し得る。参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値と異なることをシンタックス要素が示すことに応答して、ビデオコーディングデバイスは、参照ピクチャに対するＰＯＣ値を決定し、その参照ピクチャを参照ピクチャリストに追加し得る。
【０２６９】
[0272]いくつかの例では、現在ピクチャは、ＰスライスまたはＢスライスのうちの１つを備えるイントラランダムアクセスピクチャ（ＩＲＡＰ）である。そのような例では、ＩＲＡＰピクチャは、空でない参照ピクチャセットを指定する１つまたは複数の異なるシンタックス要素のセットをさらに含み得る。いくつかの例では、現在ピクチャの現在ビデオブロックは、ルーマ成分とクロマ成分とを含む。そのような例では、ルーマ成分またはクロマ成分のうちの１つだけが、整数ペル精度を有し得る。
【０２７０】
[0273]いくつかの例では、参照ピクチャは、現在ピクチャの復号されたフィルタリングされていないサンプルをさらに含み得る。様々な例では、参照ピクチャは、動き予測情報をさらに含む参照ブロックを含み得る。ビデオコーディングデバイスは、現在ビデオブロックをコーディングするために参照ブロックの動き情報を使用し得る。
【０２７１】
[0274]参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しくないいくつかの例では、現在ピクチャに対するＳＰＳを指すＣＶＳは、１つまたは複数のＩスライスを含み得る。
【０２７２】
[0275]いくつかの例では、現在ピクチャは、クリーンランダムアクセスピクチャまたは切断リンクアクセスピクチャのうちの１つである。そのような例では、ビデオコーディングデバイスは、現在ピクチャに対する予測参照として使用される資格があるピクチャの数を示す第２のシンタックス要素を受信してよく、第２のシンタックス要素は１の値を有する。
【０２７３】
[0276]参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しいいくつかの例では、現在ビデオブロックに対するＭＶは、整数ペル精度を有し得る。さらに、ビデオコーディングデバイスは、候補導出プロセスにおいて使用される前または候補導出プロセスが完了した後のいずれかにおいて、現在ピクチャに対する複数の動きベクトル予測子候補のうちのＭＶ予測子候補の各々を整数ペル精度に変換することができる。参照ピクチャに対するＰＯＣ値が現在ピクチャに対するＰＯＣ値に等しい他の例では、現在ピクチャの各予測サンプルは、現在ピクチャのピクチャ境界内に含まれる。
【０２７４】
[0277]いくつかの例では、参照ピクチャリストが現在ピクチャだけを含む場合、ビデオコーディングデバイスはＴＭＶＰを無効にし得る。他の例では、ビデオコーディングデバイスが現在ピクチャと異なるピクチャに少なくとも部分的に基づいてＴＭＶＰを決定し得るように、制約がビデオコーディングデバイスに置かれることがある。
【０２７５】
[0278]いくつかの例では、ビデオコーディングデバイスは、現在ピクチャの隣接ピクチャを決定してよく、隣接ブロックは空間的隣接ピクチャまたは時間的隣接ピクチャのいずれかである。ビデオコーディングデバイスは、隣接ピクチャ中の予測ブロックをさらに決定してよく、予測ブロックは動きベクトルを含む。ビデオコーディングデバイスは、現在ブロックに対する参照ピクチャ中の参照ブロックを決定するために動きベクトルを使用してよく、参照ブロックは動き予測情報を含む。次いで、ビデオコーディングデバイスは、参照ブロックの動き予測情報と残差とを使用して現在ビデオブロックを復号し得る。
【０２７６】
[0279]１つまたは複数の例では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０２７７】
[0280]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、任意の接続がコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【０２７８】
[0281]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造または本明細書で説明した技法の実装に好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０２７９】
[0282]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。様々な構成要素、モジュール、またはユニットは、開示された技法を実行するように構成されたデバイスの機能的態様を強調するように本開示において記載されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０２８０】
[0283]本開示の様々な例について説明した。説明されたシステム、動作、または機能の任意の組合せが企図される。これらおよび他の例は、以下の特許請求の範囲の範囲内に入る。
【図１】
2019169964.tif 000019
【図２Ａ】
2019169964.tif 000020
【図２Ｂ】
2019169964.tif 000021
【図２Ｃ】
2019169964.tif 000022
【図３】
2019169964.tif 000023
【図４】
2019169964.tif 000024
【図５】
2019169964.tif 000025
【図６】
2019169964.tif 000026
【図７】
2019169964.tif 000027
【図８】
2019169964.tif 000028
【図９】
2019169964.tif 000029
【図１０】
2019169964.tif 000030
【図１１】
2019169964.tif 000031
【図１２】
2019169964.tif 000032
【手続補正書】
【提出日】令和1年6月12日(2019.6.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、
前記ビデオデータの第１のビデオブロックを含む第１のピクチャが参照ピクチャリスト内にある資格があるかどうかを示す第１のシンタックス要素を受信することと、
前記第１のシンタックス要素の値を決定することと、
前記第１のピクチャが前記参照ピクチャリスト内にある資格があることを前記第１のシンタックス要素が示すことに応答して、
前記第１のピクチャを前記参照ピクチャリストに追加することと、
前記第１のビデオブロックに対する動きベクトルが整数ペル精度を有するものと決定することと、
動きベクトル予測子候補導出プロセスにおいて使用される前または前記動きベクトル予測子候補導出プロセスが完了した後のいずれかにおいて、前記第１のピクチャに対する複数の動きベクトル予測子候補の各々の動きベクトル予測子候補を整数ペル精度に変換することと、
前記参照ピクチャリストからの１つのピクチャのブロックと空間的予測のための第１の残差とを使用して前記第１のビデオブロックを復号することと、
前記ビデオデータの第２のビデオブロックを含む第２のピクチャが参照ピクチャリスト内にある資格があるかどうかを示す第２のシンタックス要素を受信することと、
前記第２のシンタックス要素の値を決定することと、
前記第２のピクチャが前記参照ピクチャリスト内にある資格がないことを前記第２のシンタックス要素が示すことに応答して、前記第２のピクチャが前記参照ピクチャリスト内に置かれるのを制限することと、
前記参照ピクチャリストからの１つのピクチャのブロックと時間的予測のための第２の残差とを使用して前記第２のビデオブロックを復号することとを備える、方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２８０
【補正方法】変更
【補正の内容】
【０２８０】
[0283]本開示の様々な例について説明した。説明されたシステム、動作、または機能の任意の組合せが企図される。これらおよび他の例は、以下の特許請求の範囲の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを復号するための方法であって、
前記ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格があるかどうかを示すシンタックス要素を受信することと、
前記シンタックス要素の値を決定することと、
前記ビデオデータの前記現在ビデオブロックが前記参照ピクチャリスト内にある資格があることを前記シンタックス要素が示すことに応答して、前記現在ピクチャを前記参照ピクチャリストに追加することと、
前記ビデオデータの前記現在ビデオブロックが前記参照ピクチャリスト内にある資格がないことを前記シンタックス要素が示すことに応答して、前記現在ピクチャが前記参照ピクチャリスト内に置かれるのを制限することと
を備える、方法。
［Ｃ２］
前記現在ピクチャが、ＰスライスまたはＢスライスのうちの１つを備えるイントラランダムアクセスピクチャである、Ｃ１に記載の方法。
［Ｃ３］
前記シンタックス要素が第１のシンタックス要素であり、前記イントラランダムアクセスピクチャが、空でない参照ピクチャセットを指定する１つまたは複数の異なるシンタックス要素のセットをさらに備える、Ｃ２に記載の方法。
［Ｃ４］
前記現在ピクチャを復号するために使用される参照ピクチャが、前記現在ピクチャの復号されたフィルタリングされていないサンプルを含む、Ｃ１に記載の方法。
［Ｃ５］
前記シンタックス要素が、ピクチャパラメータセットまたはシーケンスパラメータセットのうちの１つの中に配置される、Ｃ１に記載の方法。
［Ｃ６］
前記現在ピクチャと異なるピクチャに少なくとも部分的に基づいて時間的動きベクトル予測子を決定することをさらに備える、Ｃ１に記載の方法。
［Ｃ７］
前記現在ピクチャがクリーンランダムアクセスピクチャまたは切断リンクアクセスピクチャのうちの１つであり、前記シンタックス要素が第１のシンタックス要素であり、前記方法が、
前記現在ピクチャに対する予測参照として使用される資格があるピクチャの数を示す第２のシンタックス要素の値を受信することをさらに備え、前記第２のシンタックス要素が１の値を有する、Ｃ１に記載の方法。
［Ｃ８］
前記現在ピクチャが前記参照ピクチャリストに追加される資格があり、前記現在ビデオブロックに対する動きベクトルが整数ペル精度を有し、前記方法が、
候補導出プロセスにおいて使用される前または前記候補導出プロセスが完了した後のいずれかにおいて、前記現在ピクチャに対する複数の動きベクトル予測子候補の各々の動きベクトル予測子候補を整数ペル精度に変換することをさらに備える、Ｃ１に記載の方法。
［Ｃ９］
前記参照ピクチャリストが前記現在ピクチャだけを含むとき、時間的動きベクトル予測子を無効にすることをさらに備える、Ｃ１に記載の方法。
［Ｃ１０］
前記現在ビデオブロックがルーマ成分とクロマ成分とを備え、前記ルーマ成分または前記クロマ成分のうちの１つだけが整数ペル精度を有する、Ｃ１に記載の方法。
［Ｃ１１］
前記現在ピクチャが前記参照ピクチャリストに追加される資格があり、前記現在ピクチャの各予測サンプルが、前記現在ピクチャのピクチャ境界内に含まれる、Ｃ１に記載の方法。
［Ｃ１２］
前記現在ピクチャの隣接ピクチャを決定することと、ここにおいて、前記隣接ブロックが空間的隣接ピクチャまたは時間的隣接ピクチャのいずれかである、
前記隣接ピクチャ中の予測ブロックを決定することと、ここにおいて、前記予測ブロックが動きベクトルを含む、
前記現在ブロックに対する参照ピクチャ中の参照ブロックを決定するために前記動きベクトルを使用することと、ここにおいて、前記参照ブロックが動き予測情報を含む、
前記参照ブロックの前記動き予測情報と残差とを使用して前記現在ビデオブロックを復号することとをさらに備える、Ｃ１に記載の方法。
［Ｃ１３］
ビデオデータを符号化する方法であって、
前記ビデオデータの現在ビデオブロックを符号化するために使用される参照ピクチャを決定することと、
前記参照ピクチャに対するピクチャ順序カウント（ＰＯＣ）値を決定することと、
前記参照ピクチャに対する前記ＰＯＣ値が前記現在ビデオブロックを含む現在ピクチャに対するＰＯＣ値に等しいことに応答して、参照ピクチャリストが前記現在ピクチャを含むことを示すようにシンタックス要素の値を設定することと、
前記参照ピクチャに対する前記ＰＯＣ値が前記現在ピクチャに対する前記ＰＯＣ値と異なることに応答して、前記参照ピクチャリストが前記現在ピクチャを含まないことを示すように前記シンタックス要素の前記値を設定することとを備える、方法。
［Ｃ１４］
前記現在ピクチャが、ＰスライスまたはＢスライスのうちの１つを備えるイントラランダムアクセスピクチャである、Ｃ１３に記載の方法。
［Ｃ１５］
前記シンタックス要素が第１のシンタックス要素であり、前記イントラランダムアクセスピクチャが、空でない参照ピクチャセットを指定する１つまたは複数の異なるシンタックス要素のセットをさらに備える、Ｃ１４に記載の方法。
［Ｃ１６］
前記参照ピクチャが、前記現在ピクチャの復号されたフィルタリングされていないサンプルを含む、Ｃ１３に記載の方法。
［Ｃ１７］
前記シンタックス要素が、ピクチャパラメータセットまたはシーケンスパラメータセットのうちの１つの中に配置される、Ｃ１３に記載の方法。
［Ｃ１８］
前記現在ピクチャと異なるピクチャに少なくとも部分的に基づいて時間的動きベクトル予測子を決定することをさらに備える、Ｃ１３に記載の方法。
［Ｃ１９］
前記現在ピクチャがクリーンランダムアクセスピクチャまたは切断リンクアクセスピクチャのうちの１つであり、前記シンタックス要素が第１のシンタックス要素であり、前記方法が、
前記現在ピクチャに対する予測参照として使用される資格があるピクチャの数を示す第２のシンタックス要素の値を１に設定することをさらに備える、Ｃ１３に記載の方法。
［Ｃ２０］
前記参照ピクチャに対する前記ＰＯＣ値が前記現在ピクチャに対する前記ＰＯＣ値に等しく、前記現在ビデオブロックに対する動きベクトルが整数ペル精度を有し、前記方法が、
候補導出プロセスにおいて使用される前または前記候補導出プロセスが完了した後のいずれかにおいて、前記現在ピクチャに対する複数の動きベクトル予測子候補の各々の動きベクトル予測子候補を整数ペル精度に変換することをさらに備える、Ｃ１３に記載の方法。
［Ｃ２１］
前記参照ピクチャリストが前記現在ピクチャだけを含むとき、時間的動きベクトル予測子を無効にすることをさらに備える、Ｃ１３に記載の方法。
［Ｃ２２］
前記現在ビデオブロックがルーマ成分とクロマ成分とを備え、前記ルーマ成分または前記クロマ成分のうちの１つだけが整数ペル精度を有する、Ｃ１３に記載の方法。
［Ｃ２３］
前記参照ピクチャに対する前記ＰＯＣ値が前記現在ピクチャに対する前記ＰＯＣ値に等しく、前記現在ピクチャの各予測サンプルが前記現在ピクチャのピクチャ境界内に含まれる、Ｃ１３に記載の方法。
［Ｃ２４］
前記現在ピクチャの隣接ピクチャを決定することと、ここにおいて、前記隣接ブロックが空間的隣接ピクチャまたは時間的隣接ピクチャのいずれかである、
前記隣接ピクチャ中の予測ブロックを決定することと、ここにおいて、前記予測ブロックが動きベクトルを含む、
前記現在ブロックに対する前記参照ピクチャ中の参照ブロックを決定するために前記動きベクトルを使用することと、ここにおいて、前記参照ブロックが動き予測情報を含む、  前記参照ブロックの前記動き予測情報と残差とを使用して前記現在ビデオブロックを符号化することとをさらに備える、Ｃ１３に記載の方法。
［Ｃ２５］
ビデオデータを記憶するように構成されたメモリ、ならびに、
１つまたは複数のプロセッサを備え、前記１つまたは複数のプロセッサが、
前記ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格があるかどうかを示すシンタックス要素を受信することと、
前記シンタックス要素の値を決定することと、
前記ビデオデータの前記現在ビデオブロックが前記参照ピクチャリスト内にある資格があることを前記シンタックス要素が示すことに応答して、前記現在ピクチャを参照ピクチャリストに追加することと、
前記ビデオデータの前記現在ビデオブロックが前記参照ピクチャリスト内にある資格がないことを前記シンタックス要素が示すことに応答して、前記現在ピクチャが前記参照ピクチャリスト内に置かれるのを制限することと
を行うように構成された、ビデオ復号デバイス。
［Ｃ２６］
参照ピクチャに対する前記ＰＯＣ値が前記現在ピクチャに対する前記ＰＯＣ値に等しく、前記現在ビデオブロックに対する動きベクトルが整数ペル精度を有し、前記１つまたは複数のプロセッサが、
候補導出プロセスにおいて使用される前または前記候補導出プロセスが完了した後のいずれかにおいて、前記現在ピクチャに対する複数の動きベクトル予測子候補の各々の動きベクトル予測子候補を整数ペル精度に変換するようにさらに構成される、Ｃ２５に記載のビデオ復号デバイス。
［Ｃ２７］
前記１つまたは複数のプロセッサが、
前記参照ピクチャリストが前記現在ピクチャだけを含むとき、時間的動きベクトル予測子を無効にするようにさらに構成される、Ｃ２５に記載のビデオ復号デバイス。
［Ｃ２８］
前記現在ビデオブロックがルーマ成分とクロマ成分とを備え、前記ルーマ成分または前記クロマ成分のうちの１つだけが整数ペル精度を有する、Ｃ２５に記載のビデオ復号デバイス。
［Ｃ２９］
前記１つまたは複数のプロセッサが、
前記現在ピクチャの隣接ピクチャを決定することと、ここにおいて、前記隣接ブロックが空間的隣接ピクチャまたは時間的隣接ピクチャのいずれかである、
前記隣接ピクチャ中の予測ブロックを決定することと、ここにおいて、前記予測ブロックが動きベクトルを含む、
前記現在ブロックに対する参照ピクチャ中の参照ブロックを決定するために前記動きベクトルを使用することと、ここにおいて、前記参照ブロックが動き予測情報を含む、
前記参照ブロックの前記動き予測情報と残差とを使用して前記現在ビデオブロックを復号することとを行うようにさらに構成される、Ｃ２５に記載のビデオ復号デバイス。
［Ｃ３０］
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
ビデオデータの現在ビデオブロックを含む現在ピクチャが参照ピクチャリスト内にある資格があるかどうかを示すシンタックス要素を受信することと、
前記シンタックス要素の値を決定することと、
前記ビデオデータの前記現在ビデオブロックが前記参照ピクチャリスト内にある資格があることを前記シンタックス要素が示すことに応答して、前記現在ピクチャを参照ピクチャリストに追加することと、
前記ビデオデータの前記現在ビデオブロックが前記参照ピクチャリスト内にある資格がないことを前記シンタックス要素が示すことに応答して、前記現在ピクチャが前記参照ピクチャリスト内に置かれるのを制限することと
を行わせる、コンピュータ可読記憶媒体。
【外国語明細書】
2019169964000001.pdf