(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
ビデオデータの第１のピクチャについてピクチャ順序カウント（ＰＯＣ）値を参照する第２のピクチャのデータを復号することと、
前記第１のピクチャについて第２次元ピクチャ識別子を参照する前記第２のピクチャのデータを復号することと、
ベースビデオコーディング仕様に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて前記第２のピクチャを復号することと、
前記第２のピクチャの第１のブロックの第１の動きベクトルが短期参照ピクチャを参照すると決定することと、
前記第２のピクチャの第２のブロックの第２の動きベクトルが長期参照ピクチャを参照すると決定することと、
前記第１の動きベクトルが前記短期参照ピクチャを参照するとの前記決定と、前記第２の動きベクトルが前記長期参照ピクチャを参照するとの前記決定とに基づいて、前記第２のピクチャの前記第１のブロックの前記第１の動きベクトルと前記第２のピクチャの前記第２のブロックの前記第２の動きベクトルとの間の動きベクトル予測をディセーブルにすることと、
を備え、ここで、前記第１のブロックおよび前記第２のブロックは、前記第２のピクチャにおいて空間的に隣接するブロックであり、前記第１の動きベクトルと前記第２の動きベクトルとの間の動きベクトル予測をディセーブルにすることは、前記第１の動きベクトルを予測するために前記第２の動きベクトルを使用することなしに前記第１の動きベクトルを復号することと、前記第２の動きベクトルを予測するために前記第１の動きベクトルを使用することなしに前記第２の動きベクトルを復号することと、を備える、
方法。
【請求項２】
前記第２のピクチャを復号することは、
前記ＰＯＣ値と前記第２次元ピクチャ識別子とを使用して前記第１のピクチャを識別することと、
前記第１のピクチャに対して前記第２のピクチャの少なくとも一部分を復号することと、
を備える、請求項１に記載の方法。
【請求項３】
前記第１のピクチャを識別することは、前記第２のピクチャのブロックについての動きベクトルの復号の間に前記第１のピクチャを識別することを備え、前記動きベクトルの復号は、発展型動きベクトル予測（ＡＭＶＰ）、時間的動きベクトル予測（ＴＭＶＰ）、およびマージモードのうちの少なくとも１つに従って前記動きベクトルを復号することを備える、請求項２に記載の方法。
【請求項４】
前記ビデオデータの前記第１のピクチャが長期参照ピクチャを備えるかどうかを示す値を復号することをさらに備え、前記第１のピクチャが前記長期参照ピクチャを備えるかどうかを示す前記値がさらに、前記第１のピクチャがビュー間予測に使用されるかどうかを示す、請求項１に記載の方法。
【請求項５】
前記ベースビデオコーディング仕様への拡張に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて前記第２のピクチャを復号することをさらに備える、請求項１に記載の方法。
【請求項６】
前記第２のピクチャを復号する前に、前記第１のピクチャを含む、すべてのビュー間参照ピクチャを、長期参照ピクチャとしてマークすることをさらに備える、請求項５に記載の方法。
【請求項７】
前記第２のピクチャについて前記ビュー間参照ピクチャの各々の状態を、前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前に記憶することと、ここで前記状態は、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つを備え、前記ビュー間参照ピクチャは、前記第１のピクチャを含み、
前記第２のピクチャを復号した後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々の新たな状態を設定することと、
をさらに備える、請求項６に記載の方法。
【請求項８】
前記ベースビデオコーディング仕様は高効率ビデオコーディング（ＨＥＶＣ）ベース仕様を備え、前記ベースビデオコーディング仕様への前記拡張は、前記ＨＥＶＣベース仕様に対するスケーラブルビデオコーディング（ＳＶＣ）拡張と、前記ＨＥＶＣベース仕様に対するマルチビュービデオコーディング（ＭＶＣ）拡張とのうちの１つを備える、請求項５に記載の方法。
【請求項９】
前記第２次元ピクチャ識別子は、前記第１のピクチャを含むビューのビュー識別子、前記第１のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第１のピクチャを含むスケーラブルビデオコーディング（ＳＶＣ）レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも１つを備える、請求項５に記載の方法。
【請求項１０】
前記第２のピクチャを復号した後、各ビュー間参照ピクチャを、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つとしてマークすることをさらに備える、請求項５に記載の方法。
【請求項１１】
ビュー間参照ピクチャを長期参照ピクチャとしてマークした後、現在使用されていない新たなＰＯＣ値を前記ビュー間参照ピクチャに割り当てることと、
前記第２のピクチャを復号した後、前記ビュー間参照ピクチャについての元のＰＯＣ値をリストアすることと、
をさらに備える、請求項１０に記載の方法。
【請求項１２】
前記元のＰＯＣ値は、前記第１のピクチャの前記ＰＯＣ値を備える、請求項１１に記載の方法。
【請求項１３】
ビデオデータを符号化する方法であって、
ビデオデータの第１のピクチャについてピクチャ順序カウント（ＰＯＣ）値を参照する第２のピクチャのデータを符号化することと、
前記第１のピクチャについて第２次元ピクチャ識別子を参照する前記第２のピクチャのデータを符号化することと、
ベースビデオコーディング仕様に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて前記第２のピクチャを符号化することと、
前記第２のピクチャの第１のブロックの第１の動きベクトルが短期参照ピクチャを参照すると決定することと、
前記第２のピクチャの第２のブロックの第２の動きベクトルが長期参照ピクチャを参照すると決定することと、
前記第１の動きベクトルが前記短期参照ピクチャを参照するとの前記決定と、前記第２の動きベクトルが前記長期参照ピクチャを参照するとの前記決定とに基づいて、前記第２のピクチャの前記第１のブロックの前記第１の動きベクトルと前記第２のピクチャの前記第２のブロックの前記第２の動きベクトルとの間の動きベクトル予測をディセーブルにすることと、
を備え、ここで、前記第１のブロックおよび前記第２のブロックは、前記第２のピクチャにおいて空間的に隣接するブロックであり、前記第１の動きベクトルと前記第２の動きベクトルとの間の動きベクトル予測をディセーブルにすることは、前記第１の動きベクトルを予測するために前記第２の動きベクトルを使用することなしに前記第１の動きベクトルを符号化することと、前記第２の動きベクトルを予測するために前記第１の動きベクトルを使用することなしに前記第２の動きベクトルを符号化することと、を備える、
方法。
【請求項１４】
前記ＰＯＣ値と前記第２次元ピクチャ識別子とを使用して前記第１のピクチャを識別することと、
前記第１のピクチャに対して前記第２のピクチャの少なくとも一部分をコーディングすることと、
をさらに備える、請求項１３に記載の方法。
【請求項１５】
前記第１のピクチャを識別することは、前記第２のピクチャのブロックについての前記動きベクトルの符号化の間に前記第１のピクチャを識別することを備え、前記動きベクトルの符号化は、発展型動きベクトル予測（ＡＭＶＰ）、時間的動きベクトル予測（ＴＭＶＰ）、およびマージモードのうちの少なくとも１つに従って前記動きベクトルを符号化することを備える、請求項１４に記載の方法。
【請求項１６】
前記第２のピクチャの第１の短期動きベクトルと前記第２のピクチャの第２の短期動きベクトルとの間の予測をイネーブルにすることと、
前記第１の短期動きベクトルによって参照される第１の短期参照ピクチャについてのＰＯＣ値と、前記第２の短期動きベクトルによって参照される第２の短期参照ピクチャについてのＰＯＣ値とに基づいて、前記第１の短期動きベクトルと前記第２の短期動きベクトルとのうちの少なくとも１つをスケーリングすることと、
をさらに備える、請求項１３に記載の方法。
【請求項１７】
前記第２次元ピクチャ識別子は、前記第１のピクチャを含むビューのビュー識別子、前記第１のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第１のピクチャを含むスケーラブルビデオコーディング（ＳＶＣ）レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも１つを備える、請求項１３に記載の方法。
【請求項１８】
前記ビデオデータの前記第１のピクチャが長期参照ピクチャを備えるかどうかを示す値を符号化することをさらに備え、前記第１のピクチャが前記長期参照ピクチャを備えるかどうかを示す前記値がさらに、前記第１のピクチャがビュー間予測に使用されるかどうかを示す、請求項１３に記載の方法。
【請求項１９】
前記ベースビデオコーディング仕様への拡張に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて、前記第２のピクチャを符号化することをさらに備える、請求項１３に記載の方法。
【請求項２０】
前記第２のピクチャを符号化する前に、すべてのビュー間参照ピクチャを、長期参照ピクチャとしてマークすることをさらに備える、請求項１９に記載の方法。
【請求項２１】
前記ビュー間参照ピクチャの各々の状態を、前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前に記憶することと、ここで前記状態は、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つを備え、
前記第２のピクチャを符号化した後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々の新たな状態を設定することと、
をさらに備える、請求項２０に記載の方法。
【請求項２２】
前記ベースビデオコーディング仕様は高効率ビデオコーディング（ＨＥＶＣ）ベース仕様を備え、前記ベースビデオコーディング仕様への前記拡張は、前記ＨＥＶＣベース仕様に対するスケーラブルビデオコーディング（ＳＶＣ）拡張と、前記ＨＥＶＣベース仕様に対するマルチビュービデオコーディング（ＭＶＣ）拡張とのうちの１つを備える、請求項１９に記載の方法。
【請求項２３】
前記第２のピクチャを符号化した後、各ビュー間参照ピクチャを、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つとしてマークすることをさらに備える、請求項１９に記載の方法。
【請求項２４】
ビュー間参照ピクチャを長期参照ピクチャとしてマークした後、現在使用されていない新たなＰＯＣ値を前記ビュー間参照ピクチャに割り当てることと、
前記第２のピクチャを符号化した後、前記ビュー間参照ピクチャについての元のＰＯＣ値をリストアすることと、
をさらに備える、請求項２３に記載の方法。
【請求項２５】
前記元のＰＯＣ値は、前記第２のピクチャの前記ＰＯＣ値を備える、請求項２４に記載の方法。
【請求項２６】
ビデオデータを復号するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
前記ビデオデータの第１のピクチャについてピクチャ順序カウント（ＰＯＣ）値を参照する第２のピクチャのデータを復号し、
前記第１のピクチャについて第２次元ピクチャ識別子を参照する前記第２のピクチャのデータを復号し、
ベースビデオコーディング仕様に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて前記第２のピクチャを復号し、
前記第２のピクチャの第１のブロックの第１の動きベクトルが短期参照ピクチャを参照すると決定し、
前記第２のピクチャの第２のブロックの第２の動きベクトルが長期参照ピクチャを参照すると決定し、
前記第１の動きベクトルが前記短期参照ピクチャを参照するとの前記決定と、前記第２の動きベクトルが前記長期参照ピクチャを参照するとの前記決定とに基づいて、前記第２のピクチャの前記第１のブロックの前記第１の動きベクトルと前記第２のピクチャの前記第２のブロックの前記第２の動きベクトルとの間の動きベクトル予測をディセーブルにする
ように構成されたビデオデコーダと、
を備え、ここで、前記第１のブロックおよび前記第２のブロックは、前記第２のピクチャにおいて空間的に隣接するブロックであり、前記第１の動きベクトルと前記第２の動きベクトルとの間の動きベクトル予測をディセーブルにするために、前記ビデオデコーダは、前記第１の動きベクトルを予測するために前記第２の動きベクトルを使用することなしに前記第１の動きベクトルを復号し、前記第２の動きベクトルを予測するために前記第１の動きベクトルを使用することなしに前記第２の動きベクトルを復号するように構成される、
デバイス。
【請求項２７】
前記ビデオデコーダは、前記ＰＯＣ値と前記第２次元ピクチャ識別子とを使用して前記第１のピクチャを識別し、前記第１のピクチャに対して前記第２のピクチャの少なくとも一部分を復号するように構成される、請求項２６に記載のデバイス。
【請求項２８】
前記ビデオデコーダは、前記第２のピクチャのブロックについての動きベクトルの復号の間に前記第１のピクチャを識別するように構成され、前記ビデオデコーダは、発展型動きベクトル予測（ＡＭＶＰ）、時間的動きベクトル予測（ＴＭＶＰ）、およびマージモードのうちの少なくとも１つに従って前記動きベクトルを復号するように構成される、請求項２７に記載のデバイス。
【請求項２９】
前記ビデオデコーダは、前記第２のピクチャの第１の短期動きベクトルと前記第２のピクチャの第２の短期動きベクトルとの間の予測をイネーブルにし、前記第１の短期動きベクトルによって参照される第１の短期参照ピクチャについてのＰＯＣ値と、前記第２の短期動きベクトルによって参照される第２の短期参照ピクチャについてのＰＯＣ値とに基づいて、前記第１の短期動きベクトルと前記第２の短期動きベクトルとのうちの少なくとも１つをスケーリングするように構成される、請求項２６に記載のデバイス。
【請求項３０】
前記第２次元ピクチャ識別子は、前記第１のピクチャを含むビューのビュー識別子、前記第１のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第１のピクチャを含むスケーラブルビデオコーディング（ＳＶＣ）レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも１つを備える、請求項２６に記載のデバイス。
【請求項３１】
前記ビデオデコーダは、前記ビデオデータの前記第１のピクチャが長期参照ピクチャを備えるかどうかを示す値を復号するように構成され、前記第１のピクチャが前記長期参照ピクチャを備えるかどうかを示す前記値がさらに、前記第１のピクチャがビュー間予測に使用されるかどうかを示す、請求項２６に記載のデバイス。
【請求項３２】
前記ビデオデコーダは、前記ベースビデオコーディング仕様への拡張に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて、前記第２のピクチャを復号するようにさらに構成される、請求項２６に記載のデバイス。
【請求項３３】
前記ビデオデコーダは、
前記第１のピクチャを含む、前記第２のピクチャについてのすべてのビュー間参照ピクチャを、前記第２のピクチャを復号する前に、長期参照ピクチャとしてマークし、
前記ビュー間参照ピクチャの各々の状態を記憶し、ここで前記状態は、前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前の、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つを備え、
前記第２のピクチャを復号した後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々の新たな状態を設定する、
ように構成される、請求項３２に記載のデバイス。
【請求項３４】
前記ビデオデコーダは、
前記第１のピクチャを含む、前記第２のピクチャについての各ビュー間参照ピクチャを、前記第２のピクチャを復号した後に、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つとしてマークし、
ビュー間参照ピクチャを長期参照ピクチャとしてマークした後、現在使用されていない新たなＰＯＣ値を、前記ビュー間参照ピクチャの各々に割り当て、
前記第２のピクチャを復号した後、前記ビュー間参照ピクチャについての元のＰＯＣ値をリストアするようにさらに構成される、請求項３２に記載のデバイス。
【請求項３５】
集積回路と、
マイクロプロセッサと、
前記ビデオデコーダを含むワイヤレス通信デバイスと、
のうちの少なくとも１つを備える、請求項２６に記載のデバイス。
【請求項３６】
ビデオデータを符号化するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
ビデオデータの第１のピクチャについてピクチャ順序カウント（ＰＯＣ）値を参照する第２のピクチャのデータを符号化し、
前記第１のピクチャについて第２次元ピクチャ識別子を参照する前記第２のピクチャのデータを符号化し、
ベースビデオコーディング仕様に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて前記第２のピクチャを符号化し、
前記第２のピクチャの第１のブロックの第１の動きベクトルが短期参照ピクチャを参照すると決定し、
前記第２のピクチャの第２のブロックの第２の動きベクトルが長期参照ピクチャを参照すると決定し、
前記第１の動きベクトルが前記短期参照ピクチャを参照するとの前記決定と、前記第２の動きベクトルが前記長期参照ピクチャを参照するとの前記決定とに基づいて、前記第２のピクチャの前記第１のブロックの前記第１の動きベクトルと前記第２のピクチャの前記第２のブロックの前記第２の動きベクトルとの間の動きベクトル予測をディセーブルにする
ように構成されたビデオエンコーダと、
を備え、ここで、前記第１のブロックおよび前記第２のブロックは、前記第２のピクチャにおいて空間的に隣接するブロックであり、前記第１の動きベクトルと前記第２の動きベクトルとの間の動きベクトル予測をディセーブルにするために、前記ビデオエンコーダは、前記第１の動きベクトルを予測するために前記第２の動きベクトルを使用することなしに前記第１の動きベクトルを符号化し、前記第２の動きベクトルを予測するために前記第１の動きベクトルを使用することなしに前記第２の動きベクトルを符号化するように構成される、
デバイス。
【請求項３７】
前記ビデオエンコーダは、前記ＰＯＣ値と前記第２次元ピクチャ識別子とを使用して前記第１のピクチャを識別し、前記第１のピクチャに対して前記第２のピクチャの少なくとも一部分を符号化するように構成される、請求項３６に記載のデバイス。
【請求項３８】
前記ビデオエンコーダは、前記第２のピクチャのブロックについての動きベクトルの符号化の間に前記第１のピクチャを識別するように構成され、前記ビデオエンコーダは、発展型動きベクトル予測（ＡＭＶＰ）、時間的動きベクトル予測（ＴＭＶＰ）、およびマージモードのうちの少なくとも１つに従って前記動きベクトルを符号化するように構成される、請求項３７に記載のデバイス。
【請求項３９】
前記ビデオエンコーダは、前記第２のピクチャの第１の短期動きベクトルと前記第２のピクチャの第２の短期動きベクトルとの間の予測をイネーブルにし、前記第１の短期動きベクトルによって参照される第１の短期参照ピクチャについてのＰＯＣ値と、前記第２の短期動きベクトルによって参照される第２の短期参照ピクチャについてのＰＯＣ値とに基づいて、前記第１の短期動きベクトルと前記第２の短期動きベクトルとのうちの少なくとも１つをスケーリングするように構成される、請求項３６に記載のデバイス。
【請求項４０】
前記第２次元ピクチャ識別子は、前記第１のピクチャを含むビューのビュー識別子、前記第１のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第１のピクチャを含むスケーラブルビデオコーディング（ＳＶＣ）レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも１つを備える、請求項３６に記載のデバイス。
【請求項４１】
前記ビデオエンコーダは、前記ビデオデータの前記第１のピクチャが長期参照ピクチャを備えるかどうかを示す値を符号化するように構成され、ここで、前記第１のピクチャが前記長期参照ピクチャを備えるかどうかを示す前記値がさらに、前記第１のピクチャがビュー間予測に使用されるかどうかを示す、請求項３６に記載のデバイス。
【請求項４２】
前記ビデオエンコーダはさらに、前記ベースビデオコーディング仕様への拡張に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて、第２のピクチャを符号化するように構成される、請求項３６に記載のデバイス。
【請求項４３】
前記ビデオエンコーダは、
前記第２のピクチャを符号化する前に、前記第１のピクチャを含む前記第２のピクチャについてのすべてのビュー間参照ピクチャを長期参照ピクチャとしてマークし、
前記ビュー間参照ピクチャの各々の状態を記憶し、ここで前記状態は、前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前の、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つを備え、
前記第２のピクチャを符号化した後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々について新たな状態を設定するように構成される、請求項４２に記載のデバイス。
【請求項４４】
前記ビデオエンコーダはさらに、
前記第１のピクチャを含む前記第２のピクチャについての各ビュー間参照ピクチャを、前記第２のピクチャを符号化した後に、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つとしてマークし、
ビュー間参照ピクチャを長期参照ピクチャとしてマークした後、現在使用されていない新たなＰＯＣ値を前記ビュー間参照ピクチャの各々に割り当て、
前記第２のピクチャを符号化した後、前記ビュー間参照ピクチャについての元のＰＯＣ値をリストアするように構成される、請求項４２に記載のデバイス。
【請求項４５】
ビデオデータを符号化するためのデバイスであって、
ビデオデータの第１のピクチャについてピクチャ順序カウント（ＰＯＣ）値を参照する第２のピクチャのデータを符号化する手段と、
前記第１のピクチャについて第２次元ピクチャ識別子を参照する前記第２のピクチャのデータを符号化する手段と、
ベースビデオコーディング仕様に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて前記第２のピクチャを符号化する手段と、
前記第２のピクチャの第１のブロックの第１の動きベクトルが短期参照ピクチャを参照すると決定する手段と、
前記第２のピクチャの第２のブロックの第２の動きベクトルが長期参照ピクチャを参照すると決定する手段と、
前記第１の動きベクトルが前記短期参照ピクチャを参照するとの前記決定と、前記第２の動きベクトルが前記長期参照ピクチャを参照するとの前記決定とに基づいて、前記第２のピクチャの前記第１のブロックの前記第１の動きベクトルと前記第２のピクチャの前記第２のブロックの前記第２の動きベクトルとの間の動きベクトル予測をディセーブルにする手段と、
を備え、ここで、前記第１のブロックおよび前記第２のブロックは、前記第２のピクチャにおいて空間的に隣接するブロックであり、前記第１の動きベクトルと前記第２の動きベクトルとの間の動きベクトル予測をディセーブルにする前記手段は、前記第１の動きベクトルを予測するために前記第２の動きベクトルを使用することなしに前記第１の動きベクトルを符号化する手段と、前記第２の動きベクトルを予測するために前記第１の動きベクトルを使用することなしに前記第２の動きベクトルを符号化する手と、を備える、
デバイス。
【請求項４６】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、プロセッサに、
ビデオデータの第１のピクチャについてピクチャ順序カウント（ＰＯＣ）値を参照する第２のピクチャのデータを復号することと、
前記第１のピクチャについて第２次元ピクチャ識別子を参照する前記第２のピクチャのデータを復号することと、
ベースビデオコーディング仕様に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて前記第２のピクチャを復号することと、
前記第２のピクチャの第１のブロックの第１の動きベクトルが短期参照ピクチャを参照すると決定することと、
前記第２のピクチャの第２のブロックの第２の動きベクトルが長期参照ピクチャを参照すると決定することと、
前記第１の動きベクトルが前記短期参照ピクチャを参照するとの前記決定と、前記第２の動きベクトルが前記長期参照ピクチャを参照するとの前記決定とに基づいて、前記第２のピクチャの前記第１のブロックの前記第１の動きベクトルと前記第２のピクチャの前記第２のブロックの前記第２の動きベクトルとの間の動きベクトル予測をディセーブルにすることと、
を行わせ、ここで、前記第１のブロックおよび前記第２のブロックは、前記第２のピクチャにおいて空間的な隣接するブロックであり、
前記プロセッサに、前記第１の動きベクトルと前記第２の動きベクトルとの間の動きベクトル予測をディセーブルにすることを行わせる前記命令は、前記プロセッサに、前記第１の動きベクトルを予測するために前記第２の動きベクトルを使用することなしに前記第１の動きベクトルを復号することと、前記第２の動きベクトルを予測するために前記第１の動きベクトルを使用することなしに前記第２の動きベクトルを復号することとを行わせる命令を備える、
コンピュータ可読記憶媒体。
【請求項４７】
前記第２のピクチャの前記第１のブロックの前記第１の動きベクトルが前記短期参照ピクチャを参照すると決定することは、前記第１の動きベクトルが、短期参照に使用されるとマークされた第１の参照ピクチャを参照すると決定することを備え、
前記第２のピクチャの前記第２のブロックの前記第２の動きベクトルが前記長期参照ピクチャを参照すると決定することは、前記第２の動きベクトルが、長期参照に使用されるとマークされた第２の参照ピクチャを参照すると決定することを備える、
請求項１に記載の方法。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１２年３月１６日に出願された米国仮出願第６１／６１１，９５９号、２０１２年４月１６日に出願された米国仮出願第６１／６２４，９９０号、２０１２年６月１１日に出願された米国仮出願第６１／６５８，３４４号、２０１２年６月２２日に出願された米国仮出願第６１／６６３，４８４号、および２０１２年１２月２７日に出願された米国仮出願第６１／７４６，４７６号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ  １０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法のような、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス（たとえば、ビデオフレームまたはビデオフレームの一部分）が、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことができ、その残差変換係数は、次いで量子化され得る。量子化変換係数は、最初に２次元アレイで構成され、変換係数の１次元ベクトルを生成するために走査されてよく、なお一層の圧縮を達成するためにエントロピーコーディングが適用されてよい。
【発明の概要】
【０００６】
[0006]一般に、本開示は、ハイレベルシンタックスの変更しか伴わずに、来たる高効率ビデオコーディング（ＨＥＶＣ）規格のようなコーディング規格の拡張をサポートするための様々な技法を説明する。たとえば、本開示は、ＨＥＶＣベース仕様と、ベースビューがＨＥＶＣベース仕様に適合する、マルチビュービデオコーデックおよび／または３次元（３Ｄ）ビデオコーデックのＨＥＶＣ拡張との両方における技法を説明する。一般に、「ベースビデオコーディング仕様」は、２次元の単一レイヤのビデオデータをコーディングするために使用される、ＨＥＶＣベース仕様のようなビデオコーディング仕様に相当し得る。ベースビデオコーディング仕様に対する拡張は、３Ｄビデオコーディングおよび／またはマルチレイヤビデオコーディングを可能にするように、ベースビデオコーディング仕様の機能を拡張し得る。ＨＥＶＣベース仕様は、ベースビデオコーディング仕様の例を代表し、一方、ＨＥＶＣベース仕様に対するＭＶＣおよびＳＶＣ拡張は、ベースビデオコーディング仕様に対する拡張の例を代表する。
【０００７】
[0007]一例では、方法は、ビデオデータの第１のピクチャに対するピクチャ順序カウント（ＰＯＣ）値を復号することと、第１のピクチャの第２次元ピクチャ識別子を復号することと、ベースビデオコーディング仕様に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを復号することと、を含む。第２次元ピクチャ識別子はさらに、ピクチャのタイプ、たとえば、ピクチャが長期ピクチャであるか短期ピクチャであるか、または、ピクチャが参照ピクチャである場合、そのピクチャが、そのピクチャを参照するピクチャと同じピクチャ順序カウント（ＰＯＣ）値を有するかどうか、へと簡略化され得る。隣接ブロックから動きベクトル候補を生成するとき、候補が、予測されることになる動きベクトルとは異なる第２次元ピクチャ識別子を有する場合、その候補は利用不可能であると見なされ得、その第２次元ピクチャ識別子は、この動きベクトルが指し、ターゲット参照インデックスによって特定されるピクチャである。
【０００８】
[0008]別の例では、方法は、ビデオデータの第１のピクチャに対するピクチャ順序カウント（ＰＯＣ）値を符号化することと、第１のピクチャの第２次元ピクチャ識別子を符号化することと、ベースビデオコーディング仕様に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを符号化することとを含む。
【０００９】
[0009]別の例では、デバイスは、ビデオデータの第１のピクチャに対するピクチャ順序カウント（ＰＯＣ）値を復号し、第１のピクチャの第２次元ピクチャ識別子を復号し、ベースビデオコーディング仕様に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを復号するように構成されるビデオデコーダを含む。
【００１０】
[0010]別の例では、デバイスは、ビデオデータの第１のピクチャに対するピクチャ順序カウント（ＰＯＣ）値を符号化し、第１のピクチャの第２次元ピクチャ識別子を符号化し、ベースビデオコーディング仕様に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを符号化するように構成されるビデオエンコーダを含む。
【００１１】
[0011]別の例では、デバイスは、ビデオデータの第１のピクチャに対するピクチャ順序カウント（ＰＯＣ）値を復号する手段と、第１のピクチャの第２次元ピクチャ識別子を復号する手段と、ベースビデオコーディング仕様に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを復号する手段とを含む。
【００１２】
[0012]別の例では、デバイスは、ビデオデータの第１のピクチャに対するピクチャ順序カウント（ＰＯＣ）値を符号化する手段と、第１のピクチャの第２次元ピクチャ識別子を符号化する手段と、ベースビデオコーディング仕様に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを符号化する手段とを含む。
【００１３】
[0013]別の例では、実行されるとプロセッサに、ビデオデータの第１のピクチャに対するピクチャ順序カウント（ＰＯＣ）値を復号させ、第１のピクチャの第２次元ピクチャ識別子を復号させ、ベースビデオコーディング仕様に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを復号させる命令を記憶するコンピュータ可読記憶媒体。
【００１４】
[0014]別の例では、実行されるとプロセッサに、ビデオデータの第１のピクチャに対するピクチャ順序カウント（ＰＯＣ）値を符号化させ、第１のピクチャの第２次元ピクチャ識別子を符号化させ、ベースビデオコーディング仕様に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを符号化させる命令を記憶するコンピュータ可読記憶媒体。
【００１５】
[0015]１つまたは複数の例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１６】
【図１】ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を実装し得るビデオエンコーダの例を示すブロック図。
【図３】ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を実装し得るビデオデコーダの例を示すブロック図。
【図４】例示的なＭＶＣ予測パターンを示す概念図。
【図５】ハイレベルシンタックスのみのＨＥＶＣ拡張を達成するために克服されるべき潜在的な問題を示す概念図。
【図６】ハイレベルシンタックスのみのＨＥＶＣ拡張を達成するために克服されるべき潜在的な問題を示す概念図。
【図７】ハイレベルシンタックスのみのＨＥＶＣ拡張を達成するために克服されるべき潜在的な問題を示す概念図。
【図８】ハイレベルシンタックスのみのＨＥＶＣ拡張を達成するために克服されるべき潜在的な問題を示す概念図。
【図９】ハイレベルシンタックスのみのＨＥＶＣ拡張を達成するために克服されるべき潜在的な問題を示す概念図。
【図１０】動きベクトル予測において使用するための現在のブロックに対する隣接ブロックの例示的なセットを示す概念図。
【図１１】本開示の技法による、ビデオデータを符号化するための例示的な方法を示すフローチャート。
【図１２】本開示の技法による、ビデオデータを復号するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１７】
[0024]一般に、本開示は、ハイレベルシンタックス（ＨＬＳ）の変更しか伴わずに、来たる高効率ビデオコーディング（ＨＥＶＣ）規格のようなコーディング規格の拡張をサポートするための様々な技法を説明する。たとえば、本開示は、ＨＥＶＣベース仕様と、ベースビューがＨＥＶＣベース仕様に適合する、マルチビュービデオコーディング（ＭＶＣ）および／または３次元ビデオ（３ＤＶ）コーディングのＨＥＶＣ拡張との両方における技法を説明する。
【００１８】
[0025]本開示は、ＨＥＶＣ拡張仕様においてハイレベルシンタックスのみのプロファイルを可能にするための、いくつかの技法を説明する。ＭＶＣ／３ＤＶの文脈における「ビュー間」という用語は、スケーラブルビデオコーディング（ＳＶＣ）の文脈では「レイヤ間」により置き換えられ得る。すなわち、これらの技法の説明は主に「ビュー間」予測を中心とするが、同じまたは同様の考えが、ＨＥＶＣのＨＬＳのみのＳＶＣ拡張に対する「レイヤ間」参照ピクチャに適用され得る。
【００１９】
[0026]図１は、ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されるように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを与えるソースデバイス１２を含む。特に、ソースデバイス１２は、コンピュータ可読媒体１６を介してビデオデータを宛先デバイス１４に与える。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信に対応し得る。
【００２０】
[0027]宛先デバイス１４は、コンピュータ可読媒体１６を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動させることができる任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体１６は、ソースデバイス１２が、符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、高周波（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路のような、任意のワイヤレスまたは有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００２１】
[0028]いくつかの例では、符号化データは、出力インターフェース２２からストレージデバイスに出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは、符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体のような、種々の分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイスは、ソースデバイス１２によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準的なデータ接続を通じて符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、有線接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００２２】
[0029]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、ｄｙｎａｍｉｃ  ａｄａｐｔｉｖｅ  ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ（ＤＡＳＨ）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、種々のマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００２３】
[0030]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他のコンポーネントまたは構成を含み得る。たとえば、ソースデバイス１２は、外部カメラなどの外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００２４】
[0031]図１の示されるシステム１０は一例にすぎない。ビデオコーディング規格のハイレベルシンタックスのみの拡張によるビデオデータをコーディングするための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。一般に、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、通常「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。その上、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化コンポーネントとビデオ復号コンポーネントとを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャストまたはビデオ電話のための、ビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートすることができる。
【００２５】
[0032]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータにより生成されたビデオとの組合せを生成し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ電話またはビデオ電話を形成し得る。しかしながら、上述のように、本開示で説明される技法は、全般にビデオコーディングに適用可能であってよく、ワイヤレスおよび／または有線の適用例に適用可能であってよい。各々の場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータで生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、次いで、出力インターフェース２２によってコンピュータ可読媒体１６上に出力され得る。
【００２６】
[0033]コンピュータ可読媒体１６は、ワイヤレスブロードキャストまたは有線ネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読媒体などの記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバ（図示せず）は、たとえば、ネットワーク送信を介して、ソースデバイス１２から符号化されたビデオデータを受信し、宛先デバイス１４に符号化ビデオデータを与え得る。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスは、ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを製造することができる。したがって、コンピュータ可読媒体１６は、様々な例において、様々な形態の１つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
【００２７】
[0034]宛先デバイス１４の入力インターフェース２８は、コンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ビデオエンコーダ２０によって定義され、またビデオデコーダ３０によって使用される、ブロックおよび他のコード化ユニット、たとえば、ＧＯＰの特性および／または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスのような、様々なディスプレイデバイスのいずれかを備え得る。
【００２８】
[0035]ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオコーディング規格に従って動作することができ、ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ（ＨＭ）に準拠することができる。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ７」または「ＷＤ７」と呼ばれるＨＥＶＣの最近のドラフトは、文書ＪＣＴＶＣ−Ｉ１００３、Ｂｒｏｓｓら、「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）  Ｔｅｘｔ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｄｒａｆｔ  ７」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）、第９回会合：スイス、ジュネーブ、２０１２年４月２７日から２０１２年５月７日に記載されており、これは２０１２年６月２２日の時点で、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／９＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｉ１００３−ｖ３．ｚｉｐからダウンロード可能である。上で述べられたように、本開示は、ハイレベルシンタックスを使用してＨＥＶＣを拡張するための技法を説明する。したがって、ビデオエンコーダ２０およびビデオデコーダ３０は、ハイレベルシンタックスを使用して拡張されるＨＥＶＣのバージョンに従って動作し得る。
【００２９】
[0036]代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格のような、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。やはり、これらの拡張は、ハイレベルシンタックスを使用して達成され得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は各々、オーディオエンコーダおよびオーディオデコーダと統合されてよく、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアとソフトウェアとを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理することができる。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３０】
[0037]ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）として知られる共同パートナーシップの成果として、ＩＳＯ／ＩＥＣ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とともにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって策定された。いくつかの態様では、本開示で説明される技法は、一般にＨ．２６４規格に準拠するデバイスに適用され得る。Ｈ．２６４規格は、ＩＴＵ−Ｔ研究グループによる２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓに記載されており、本明細書ではＨ．２６４規格またはＨ．２６４仕様、あるいはＨ．２６４／ＡＶＣ規格または仕様と呼ばれ得る。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）はＨ．２６４／ＭＰＥＧ−４  ＡＶＣへの拡張に取り組み続けている。
【００３１】
[0038]ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアのような、種々の適切なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行することができる。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合されてよい。
【００３２】
[0039]ＪＣＴ−ＶＣは、ＨＥＶＣ規格の開発に取り組んでいる。ＨＥＶＣ規格化の取り組みは、ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供し得る。
【００３３】
[0040]一般に、ＨＭの作業モデルは、ビデオフレームまたはピクチャが、ルーマとクロマの両方のサンプルを含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ）に分割され得ることを記載する。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるＬＣＵのサイズを定義し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）に分割され得る。一般に、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはツリーブロックに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。
【００３４】
[0041]４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義されてよく、ＣＵがサブＣＵに分割されるかどうかに依存し得る。ＣＵがさらに分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的分割が存在しない場合でも、リーフＣＵの４つのサブＣＵもリーフＣＵと呼ばれる。たとえば、１６×１６サイズのＣＵがこれ以上分割されない場合、この１６×１６ＣＵがまったく分割されなくても、４つの８×８サブＣＵもリーフＣＵと呼ばれる。
【００３５】
[0042]ＣＵは、ＣＵがサイズ差異を有さないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、４つの子ノード（サブＣＵとも呼ばれる）に分割されてよく、各子ノードは、今度は親ノードとなり、別の４つの子ノードに分割されてよい。４分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフＣＵとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大ＣＵ深さと呼ばれる、ツリーブロックが分割され得る最大回数を定義することができ、また、コーディングノードの最小サイズを定義することもできる。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ）も定義することができる。本開示では、ＨＥＶＣの文脈におけるＣＵ、ＰＵ、またはＴＵ、あるいは他の規格の文脈における同様のデータ構造（たとえば、Ｈ．２６４／ＡＶＣにおけるマクロブロックおよびそれのサブブロック）のいずれかを指すために「ブロック」という用語を使用する。
【００３６】
[0043]ＣＵは、コーディングノードと、コーディングノードに関連する予測ユニット（ＰＵ）および変換ユニット（ＴＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４以上のピクセルを有するツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵに関連するシンタックスデータは、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかによって異なり得る。ＰＵは、形状が非正方形になるように区分され得る。ＣＵに関連するシンタックスデータは、たとえば、４分木に従って、ＣＵを１つまたは複数のＴＵに区分することも記述し得る。ＴＵは、形状が正方形または非正方形（たとえば、矩形）であり得る。
【００３７】
[0044]ＨＥＶＣ規格は、ＣＵごとに異なり得るＴＵに従った変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。ＴＵは通常、ＰＵと同じサイズであるかまたはＰＵよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ）として知られる４分木構造を使用して、より小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれることがある。ＴＵに関連するピクセル差分値は、量子化され得る変換係数を生成するために変換され得る。
【００３８】
[0045]リーフＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。一般に、ＰＵは、対応するＣＵのすべてまたは一部分に対応する空間的エリアを表し、そのＰＵの参照サンプルを取り出すためのデータを含み得る。その上、ＰＵは、予測に関するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵのデータは、ＰＵに対応するＴＵのイントラ予測モードを記述するデータを含み得る、残差４分木（ＲＱＴ）中に含まれ得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵのための１つまたは複数の動きベクトルを定義するデータを含み得る。ＰＵの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリスト（たとえば、リスト０、リスト１、もしくはリストＣ）を記述し得る。
【００３９】
[0046]１つまたは複数のＰＵを有するリーフＣＵはまた、１つまたは複数の変換ユニット（ＴＵ）を含み得る。変換ユニットは、上で論じられたように、（ＴＵ４分木構造とも呼ばれる）ＲＱＴを使用して指定され得る。たとえば、分割フラグは、リーフＣＵが４つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、さらに、さらなるサブＴＵに分割され得る。ＴＵがさらに分割されないとき、そのＴＵはリーフＴＵと呼ばれ得る。一般に、イントラコーディングの場合、リーフＣＵに属するすべてのリーフＴＵは同じイントラ予測モードを共有する。すなわち、一般に、リーフＣＵのすべてのＴＵの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフＴＵの残差値を、ＴＵに対応するＣＵの一部と元のブロックとの間の差分として計算し得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵはＰＵよりも大きくまたは小さくなり得る。イントラコーディングの場合、ＰＵは、同じＣＵについて対応するリーフＴＵと同じ位置にあり得る。いくつかの例では、リーフＴＵの最大サイズは、対応するリーフＣＵのサイズに対応し得る。
【００４０】
[0047]その上、リーフＣＵのＴＵはまた、残差４分木（ＲＱＴ）と呼ばれる、それぞれの４分木データ構造と関連付けられ得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。ＴＵ４分木のルートノードは一般にリーフＣＵに対応し、ＣＵ４分木のルートノードは一般にツリーブロック（またはＬＣＵ）に対応する。分割されないＲＱＴのＴＵはリーフＴＵと呼ばれる。全般に、本開示では、別段明記されない限り、リーフＣＵおよびリーフＴＵに言及するためにそれぞれＣＵおよびＴＵという用語を使用する。
【００４１】
[0048]ビデオシーケンスは通常、一連のビデオフレームまたはピクチャを含む。ピクチャグループ（ＧＯＰ）は、一般に、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は通常、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定のサイズまたは可変のサイズを有してよく、指定されるコーディング規格に応じてサイズが異なり得る。
【００４２】
[0049]一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という表示によって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵへと水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００４３】
[0050]本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ただし、Ｎは非負整数値を表す。ブロック内のピクセルは行と列で構成され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはＮ×Ｍピクセルを備えてよく、ただし、Ｍは必ずしもＮに等しいとは限らない。
【００４４】
[0051]ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備えてよく、ＴＵは、変換、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後の、変換領域における係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＴＵを変換して、ＣＵの変換係数を生成し得る。
【００４５】
[0052]変換係数を生成するための任意の変換の後に、ビデオエンコーダ２０は、変換係数の量子化を実行し得る。量子化は、一般に、さらなる圧縮を提供する、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化されるプロセスを指す。量子化プロセスは、係数の一部またはすべてに関連するビット深度を低減することができる。たとえば、量子化中にｎビット値がｍビット値に切り捨てられてよく、ｎはｍよりも大きい。
【００４６】
[0053]量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化変換係数を含む２次元行列から１次元ベクトルを生成し得る。走査は、より高いエネルギー（したがってより低い周波数）の係数をアレイの前方に配置し、より低いエネルギー（したがってより高い周波数）の係数をアレイの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ２０は、あらかじめ定義された走査順序を利用して、量子化された変換係数を走査し、エントロピー符号化され得る直列化されたベクトルを生成し得る。他の例では、ビデオエンコーダ２０は適応走査を実行し得る。量子化変換係数を走査して１次元ベクトルを形成した後に、ビデオエンコーダ２０は、たとえば、コンテキスト適応可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディング、または別のエントロピー符号化方法に従って、１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化することができる。
【００４７】
[0054]ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルにコンテキストモデル内のコンテキストを割り当てることができる。コンテキストは、たとえば、シンボルの隣接値が０ではないかどうかに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルのための可変長コードを選択することができる。ＶＬＣにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、ＶＬＣを使用すると、たとえば、送信されるべきシンボルごとに等長コードワードを使用するよりも、ビットの節約を実現することができる。確率の決定は、シンボルに割り当てられるコンテキストに基づき得る。
【００４８】
[0055]ビデオエンコーダ２０はさらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびＧＯＰベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはＧＯＰヘッダ中でビデオデコーダ３０に送り得る。ＧＯＰシンタックスデータは、それぞれのＧＯＰ中のいくつかのフレームを記述することができ、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化／予測モードを示すことができる。
【００４９】
[0056]一般に、本開示は、ＨＥＶＣのような、ビデオコーディング規格のハイレベルシンタックス（ＨＬＳ）のみの拡張を可能にするための解決法の様々な例を説明する。たとえば、これらの技法は、ＭＶＣまたはＳＶＣのようなＨＥＶＣのプロファイルに対するＨＬＳのみの拡張を開発するために使用され得る。様々な例が以下で説明される。様々な例が別々に説明されるが、例のいずれかまたはすべての要素は任意の組合せで組み合わされ得ることを理解されたい。
【００５０】
[0057]第１の例では、現在のＨＥＶＣベース仕様に対する変更はない。ＨＥＶＣ拡張では、ピクチャ（たとえば、ビュー成分）は、ピクチャ順序カウント（ＰＯＣ）値および第２次元ピクチャ識別子、たとえばｖｉｅｗ＿ｉｄ値（ピクチャが存在するビューを識別し得る）という、２つの特性によって識別され得る。ビデオエンコーダ２０は、長期参照ピクチャとしてビュー間予測のために使用されるべきビュー成分を示すことが要求され得る。
【００５１】
[0058]第２の例では、現在のＨＥＶＣベース仕様に対する変更はない。ＨＥＶＣ拡張では、次の変更が適用され得る。ピクチャ（たとえば、ビュー成分）は、ＰＯＣ値および第２次元ピクチャ識別子、たとえばｖｉｅｗ＿ｉｄという２つの特性によって識別され得る。この第２の例では、すべてのビュー間参照ピクチャを長期参照ピクチャとしてマークするために、現在のビュー成分をコーディングする直前に、追加のピクチャマーキングプロセスが導入され得る。各ビュー間参照ピクチャを、現在のビュー成分がコーディングされる前の以前マークされた状態と同一である、長期、短期、または「参照に使用されない」のいずれかとしてマークするために、現在のビュー成分をコーディングした直後に、別のピクチャマーキングプロセスが導入され得る。
【００５２】
[0059]第３の例では、第２の例の技法が使用され、次のように補足される。第２の例の技法に加えて、各ビュー間参照ピクチャに対して、長期参照ピクチャとしてマークされた後、ピクチャのＰＯＣ値が、任意の既存の参照ピクチャのＰＯＣ値と等しくない新たなＰＯＣ値にマッピングされる。現在のビュー成分を復号した後、各ビュー間参照ピクチャに対して、そのＰＯＣ値が、現在のビュー成分に等しい元のＰＯＣ値へと再びマッピングされる。たとえば、現在のビュー成分はビュー３に属し（ビュー識別子がビュー順序インデックスに等しいと仮定して）、５に等しいＰＯＣ値を有し得る。２つのビュー間参照ピクチャは、自身のＰＯＣ値（両方とも５である）を、たとえば１０２５および２０５３へと変換させ得る。現在のビュー成分を復号した後、ビュー間ピクチャのＰＯＣ値は再び５に変換され得る。
【００５３】
[0060]第４の例では、第２の例と第３の例のいずれかの技法が使用され、次のように補足され得る。上で言及されたような第１の例または第２の例の技法に加えて、ＨＥＶＣベース仕様において、特に発展型動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）の間に、短期ピクチャを参照する任意の動きベクトルと長期ピクチャを参照する別の動きベクトルとの間の予測をディセーブルにするために、追加のフック（hook）が使用され得る。
【００５４】
[0061]第５の例では、ＨＥＶＣ拡張において、ピクチャは、ＰＯＣ値および第２次元ピクチャ識別情報、たとえばｖｉｅｗ＿ｉｄという２つの特性によって識別され得る。ＨＥＶＣベース仕様において、次のフックの１つまたは複数が（単独でまたは任意の組合せで）追加され得る。一例（例５．１と呼ばれる）では、ＡＭＶＰおよびマージモードの間に参照ピクチャを識別するとき、第２次元ピクチャ識別情報、たとえば、ビュー順序インデックスが、ＰＯＣと一緒に使用され得る。ＨＥＶＣベース仕様における二次元２Ｄビデオ復号のコンテキストでは、第２次元ピクチャ識別情報は常に０に等しく設定され得る。
【００５５】
[0062]別の例（例５．２）では、時間的動きベクトルとビュー間動きベクトルとの間の予測は、ＡＭＶＰ（時間的動きベクトル予測（ＴＭＶＰ）を含む）の間はディセーブルにされる。動きベクトルの性質が、参照ピクチャを識別する関連する参照インデックスによって決定され得るかどうか、および、たとえば、長期参照ピクチャ、短期参照ピクチャ、またはビュー間参照ピクチャのような、動きベクトルを含むピクチャによってどのように参照ピクチャが参照されているか。別の例（例５．３）では、時間的短期動きベクトルと時間的長期動きベクトルとの間の予測が（たとえば、明示的にまたは暗黙的に）ディセーブルにされ得る。別の例（例５．４）では、時間的短期動きベクトルと時間的長期動きベクトルとの間の予測が（たとえば、明示的にまたは暗黙的に）イネーブルにされ得る。
【００５６】
[0063]別の例（例５．５）では、２つの異なるビュー間参照ピクチャを参照する動きベクトルの間の予測が（たとえば、明示的にまたは暗黙的に）ディセーブルにされ得る。２つのビュー間参照ピクチャは、それらの第２次元ピクチャ識別子の値が異なる場合、タイプが異なると見なされ得る。別の例（例５．６）では、２つの異なるビュー間参照ピクチャを参照する動きベクトルの間の予測が（たとえば、明示的にまたは暗黙的に）イネーブルにされ得る。別の例（例５．７）では、長期ピクチャを参照する動きベクトルとビュー間を参照する動きベクトルの間の予測が（たとえば、明示的にまたは暗黙的に）イネーブルにされ得る。別の例（例５．８）では、長期ピクチャを参照する動きベクトルとビュー間を参照する動きベクトルの間の予測が（たとえば、明示的にまたは暗黙的に）ディセーブルにされ得る。
【００５７】
[0064]上の例のいずれにおいても、２つの異なる時間的短期参照ピクチャを参照する２つの動きベクトルの間の予測が常にイネーブルにされ、ＰＯＣ値に基づき一方から他方へのスケーリングがイネーブルにされ得る。加えて、または代替的に、上の例のいずれにおいても、２つの異なる長期ピクチャを参照する動きベクトルの間の予測はディセーブルにされ得る。上で説明された様々な例のいくつかの詳細が、以下でより詳細に論じられる。
【００５８】
[0065]一般に、本開示は、参照インデックス（すなわち、参照ピクチャへのポインタ）と、動きベクトル自体のｘ座標およびｙ座標とを含むものとして、「動きベクトル」または「動きベクトルデータ」に言及する。視差動きベクトルと時間的動きベクトルの両方が、一般に「動きベクトル」と呼ばれ得る。参照インデックスに対応する参照ピクチャは、動きベクトルが参照する参照ピクチャと呼ばれ得る。動きベクトルが同じビューの中の参照ピクチャを参照する場合、それは時間的動きベクトルと呼ばれる。動きベクトルが異なるビューの参照ピクチャを参照する場合、それは視差動きベクトルと呼ばれる。
【００５９】
[0066]時間的動きベクトルは、短期の時間的動きベクトル（「短期動きベクトル」）または長期の時間的動きベクトル（「長期動きベクトル」）であり得る。たとえば、動きベクトルが短期参照ピクチャを参照する場合、その動きベクトルは短期であり、動きベクトルが長期参照ピクチャを参照する場合、その動きベクトルは長期である。別段言及されない限り、視差動きベクトルおよび長期動きベクトルは一般に、たとえば、それぞれビュー間予測および時間的ビュー内予測のための、異なるカテゴリーの動きベクトルを表す。短期参照ピクチャおよび長期参照ピクチャは、時間的参照ピクチャの例を代表する。
【００６０】
[0067]ビデオエンコーダ２０およびビデオデコーダ３０は、参照ピクチャメモリとして実装され得る、復号ピクチャバッファ（ＤＰＢ）から参照ピクチャを識別するように構成され得る。ＤＰＢから参照ピクチャを識別するプロセスは、本開示で説明される技法の例のいずれかにおいて使用され得る。ＤＰＢから参照ピクチャを識別するプロセスは、ＨＥＶＣ拡張仕様において、参照ピクチャセット構築、参照ピクチャリスト構築、および／または参照ピクチャマーキングの目的で使用され得る。
【００６１】
[0068]ビュー成分、テクスチャビュー成分、深度ビュー成分、またはスケーラブルレイヤ（たとえば、ｄｅｐｅｎｄｅｎｃｙ＿ｉｄとｑｕａｌｉｔｙ＿ｉｄの固有の組合せを伴う）が、ピクチャ順序カウント（ＰＯＣ）値および第２次元ピクチャ識別情報によって識別され得る。第２次元ピクチャ識別情報は、マルチビューのコンテキストにおけるビューＩＤ（ｖｉｅｗ＿ｉｄ）、マルチビューのコンテキストにおけるビュー順序インデックス、３ＤＶ（深度を伴うマルチビュー）のコンテキストにおけるビュー順序インデックスとｄｅｐｔｈ＿ｆｌａｇ（現在のビュー成分がテクスチャか深度かを示す）との組合せ、たとえば、２にｄｅｐｔｈ＿ｆｌａｇの値を足した数により乗算されるビュー順序インデックス、ＳＶＣのコンテキストにおけるレイヤＩＤ（スケーラブルコーディング環境では、たとえばＡＶＣベースのＳＶＣでは、レイヤＩＤは、１６にｑｕａｌｉｔｙ＿ｉｄを足した数により乗算されるｄｅｐｅｎｄｅｎｃｙ＿ｉｄに等しくてよい）、または、一般的なレイヤＩＤ（ｌａｙｅｒ＿ｉｄ）、たとえば、ＨＥＶＣベース仕様において規定されるようなｒｅｓｅｒｖｅｄ＿ｏｎｅ＿５ｂｉｔから１を引いた値、のうちの１つまたは複数を含み得る。一般的なレイヤＩＤは、３ＤＶ（深度を伴うマルチビュー）シナリオとスケーラビリティシナリオとの混合に対して適用可能であり得ることに留意されたい。上で言及された例は、たとえば、ビューとして各レイヤを見なすことによって、スケーラブルビデオコーデックを含む、任意の複数レイヤコーデックに当てはまり得る。言い換えると、マルチビュービデオコーディングでは、様々なビューが、別個のレイヤとして見なされ得る。
【００６２】
[0069]いくつかのシナリオでは、ベースレイヤまたは従属（dependent）ビューは、たとえば、異なるアップサンプリング／スムージングフィルタの使用が原因で、または、予測のためにビューが合成されたピクチャを使用するという事実が原因で、複数の表現を有することがあるので、１つのビュー位置において、使用の準備ができている２つのピクチャが存在することがあり、ここで一方のピクチャは通常の復元された従属ビューピクチャであり、他方のピクチャは合成されたビューピクチャであり、両方が同じｖｉｅｗ＿ｉｄまたはビュー順序インデックスを伴う。この場合、第３次元のピクチャ識別情報が使用され得る。
【００６３】
[0070]ビデオエンコーダ２０およびビデオデコーダ３０はまた、参照ピクチャリストから参照ピクチャを識別するように構成され得る。復号ピクチャバッファ（ＤＰＢ）は、参照ピクチャリスト、たとえば、現在のピクチャのＰＯＣ値よりも小さいＰＯＣ値を有する潜在参照ピクチャを含むＲｅｆＰｉｃＬｉｓｔ０と、現在のピクチャのＰＯＣ値よりも大きいＰＯＣ値を有する潜在参照ピクチャを含むＲｅｆＰｉｃＬｉｓｔ１とを含む。参照ピクチャリストから参照ピクチャを識別するための技法は、現在のＨＥＶＣベース仕様書に対するフックとして使用される。定義された機能は、ＡＭＶＰおよびマージモードの間に、ビデオエンコーダまたはビデオデコーダによって複数回呼び出され得る。
【００６４】
[0071]ビュー成分、テクスチャビュー成分、深度ビュー成分、またはスケーラブルレイヤ（たとえば、ｄｅｐｅｎｄｅｎｃｙ＿ｉｄとｑｕａｌｉｔｙ＿ｉｄの固有の組合せを伴う）は、ＰＯＣ値および第２次元ピクチャ識別情報によって識別されてよく、第２次元ピクチャ識別情報は、マルチビューと３ＤＶのいずれかのコンテキストにおけるビュー順序インデックスの１つであり得る。関数ｖｉｅｗＯＩｄｘ（ｐｉｃ）は、「ｐｉｃ」として識別されるピクチャが属するビューのビュー順序インデックスを返す。この関数は、ベースビューの任意のビュー成分、テクスチャビュー成分、または深度ビュー成分に対しては０を返し、ビューＩＤ（ｖｉｅｗ＿ｉｄ）を返し、３ＤＶのコンテキストではビュー順序インデックスとｄｅｐｔｈ＿ｆｌａｇ（現在のビュー成分がテクスチャか深度かを示す）との組合せ、すなわち、２にｄｅｐｔｈ＿ｆｌａｇの値を足した数により乗算されるビュー順序インデックスを返し、ＳＶＣのコンテキストではレイヤＩＤ（スケーラブルコーディング環境では、たとえばＡＶＣベースのＳＶＣでは、レイヤＩＤは、１６にｑｕａｌｉｔｙ＿ｉｄを足した数により乗算されるｄｅｐｅｎｄｅｎｃｙ＿ｉｄに等しくてよい）を返し、または、一般的なレイヤＩＤ（ｌａｙｅｒ＿ｉｄ）、たとえば、ＨＥＶＣベース仕様において規定されるようなｒｅｓｅｒｖｅｄ＿ｏｎｅ＿５ｂｉｔから１を引いた値を返す。関数ｌａｙｅｒＩｄ（ｐｉｃ）は、ピクチャｐｉｃのｌａｙｅｒ＿ｉｄを返す。ｌａｙｅｒＩｄ（ｐｉｃ）は、ベースビューの任意の（テクスチャ）ビュー成分に対しては０を返す。ｌａｙｅｒＩｄ（ｐｉｃ）は、ＳＶＣベースレイヤの任意のピクチャ（またはレイヤ表現）に対しては０を返す。一般的なレイヤＩＤは、３ＤＶ（深度を伴うマルチビュー）およびスケーラビリティシナリオの混合に対して適用可能であり得ることに留意されたい。
【００６５】
[0072]いくつかの状況では、ベースレイヤまたは従属ビューは、たとえば、異なるアップサンプリング／平滑フィルタの使用が原因で、または、予測のためにビューが合成されたピクチャを使用するという事実が原因で、複数の表現を有することがあるので、１つのビュー位置において、使用の準備ができている２つのピクチャが存在することがあり、一方のピクチャは通常の復元された従属ビューピクチャであり、他方のピクチャは合成されたビューピクチャであり、両方が同じｖｉｅｗ＿ｉｄまたはビュー順序インデックスを伴う。この場合、第３次元のピクチャ識別情報が使用され得る。
【００６６】
[0073]上で言及された第２次元および／または第３次元ピクチャ識別情報の１つまたは複数は、関数ＡｄｄＰｉｃＩｄ（ｐｉｃ）を使用することによって定義され得る。
【００６７】
[0074]ビデオエンコーダ２０およびビデオデコーダ３０はまた、参照ピクチャリスト中のエントリーのタイプを識別するように構成され得る。これは、現在のＨＥＶＣベース仕様に対するフックとして使用され得る。以下で定義される関数のいずれかまたはすべてが、ＡＭＶＰおよび／またはマージモードの間に、ビデオエンコーダ２０および／またはビデオデコーダ３０によって複数回呼び出され得る。以下の例示的な技法のいずれかまたはすべては、参照ピクチャリスト中のエントリーのタイプを識別するために使用され得る。一例では、関数「ＲｅｆＰｉｃＴｙｐｅ（ｐｉｃ）」は、ピクチャｐｉｃが時間的参照ピクチャである場合は０を返し、ピクチャｐｉｃが時間的参照ピクチャではない場合は１を返す。別の例では、関数「ＲｅｆＰｉｃＴｙｐｅ（ｐｉｃ）」は、ピクチャｐｉｃが現在のピクチャと同じＰＯＣを有する場合は０を返し、ピクチャｐｉｃが現在のピクチャとは異なるＰＯＣを有する場合は１を返す。
【００６８】
[0075]別の例では、上で論じられた例の結果は、「ｐｉｃ」（関数の引数）のＰＯＣが現在のピクチャのＰＯＣに等しいかどうかを単に確認することによって、関数ＲｅｆＰｉｃＴｙｐｅ（ｐｉｃ）の使用を置き換えることで達成され得る。いくつかの例では、ビュー間参照ピクチャは、「参照に使用されない」としてマークされ得る。ビュー間参照ピクチャは、「参照に使用されない」としてマークされ得る。簡単にするために、そのようなピクチャは、ＨＥＶＣベース仕様では非参照ピクチャと呼ばれる。いくつかの例では、「長期参照に使用される」と「短期参照に使用される」のいずれかとしてマークされたピクチャは、ＨＥＶＣベース仕様において参照ピクチャと呼ばれ得る。いくつかの例では、関数ＲｅｆＰｉｃＴｙｐｅ（ｐｉｃ）は、ピクチャｐｉｃが「長期参照に使用される」または「短期参照に使用される」としてマークされる場合は０を返し、ピクチャｐｉｃが「参照に使用されない」としてマークされる場合は１を返す。加えて、いくつかの例では、ＨＥＶＣ拡張において、復号の直後のビュー成分は、ｎａｌ＿ｒｅｆ＿ｆｌａｇシンタックス要素の値とは無関係に、「参照に使用されない」としてマークされ得る。
【００６９】
[0076]アクセスユニット全体がコーディングされた後、ｎａｌ＿ｒｅｆ＿ｆｌａｇが真である場合、アクセスユニットのビュー成分は、「短期参照に使用される」または「長期参照に使用される」としてマークされ得る。あるいは、ビュー成分は、後続のビュー成分の参照ピクチャセット（ＲＰＳ）が導出された直後に、ビュー成分が後続のビュー成分のＲＰＳに、同じビューの中に復号の順序で含まれる場合にのみ、「短期参照に使用される」または「長期参照に使用される」とマークされ得る。加えて、ＨＥＶＣベース仕様では、現在のピクチャは、復号の直後に、「参照に使用されない」とマークされ得る。
【００７０】
[0077]いくつかの例では、ＲｅｆＰｉｃＴｙｐｅ（ｐｉｃＸ、ｒｅｆＩｄｘ、ＬＸ）は、ｐｉｃＸが現在のピクチャであった時点でのＲｅｆＰｉｃＴｙｐｅ（ｐｉｃ）の値を返し、ここで、ｐｉｃは、ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘを伴う参照ピクチャである。
【００７１】
[0078]「第４の例」として上で呼ばれる例に関して、ビデオエンコーダ２０およびビデオデコーダ３０は、ＡＭＶＰおよびＴＭＶＰの間の、スケーリングを伴わない長期参照ピクチャの間の予測を可能にするように構成され得る。ＡＭＶＰに関して、ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトル予測子（ＭＶＰ）の候補の修正された導出プロセスを実行するように構成され得る。このプロセスへの入力は、現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置（ｘＰ、ｙＰ）と、ルーマ、ｎＰＳＷ、およびｎＰＳＨに対する予測ユニットの幅と高さとを規定する変数と、現在の予測ユニットの区分の参照インデックスｒｅｆＩｄｘＬＸ（Ｘは０または１である）とを含み得る。このプロセスの出力は、（図１０の例で示されるように、ＮはＡとＢのいずれかで置き換えられ、Ａは左側の隣接する候補に対応し、Ｂは上側の隣接する候補に対応する）隣接予測ユニットの動きベクトルｍｖＬＸＮと、隣接予測ユニットの利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮとを含み得る。Ｘが０または１である変数ｉｓＳｃａｌｅｄＦｌａｇＬＸは、０に等しく設定され得る。
【００７２】
[0079]一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトルｍｖＬＸＡと利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡとを次の順序付けられたステップで導出することができ、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。
【００７３】
１．  ２つのサンプル位置のセットを（ｘＡk，ｙＡk）とし、ｋ＝０，１であり、サンプル位置を、ｘＡk＝ｘＰ-１、ｙＡ0＝ｙＰ＋ｎＰＳＨ、およびｙＡ1＝ｙＡ0−ＭｉｎＰｕＳｉｚｅにより規定する。サンプル位置のセット（ｘＡk，ｙＡk）は、左側の区分境界とその延長線のすぐ左側のサンプル位置を表す。
【００７４】
２．  利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡが最初に０に等しく設定されるようにして、ｍｖＬＸＡの両方の成分が０に等しく設定される。
【００７５】
３．  次の条件の１つまたは複数が真である場合、この例では、変数ｉｓＳｃａｌｅｄＦｌａｇＬＸが１に等しく設定される。
【００７６】
−ルーマ位置（ｘＡ0，ｙＡ0）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではない。
【００７７】
−ルーマ位置（ｘＡ1，ｙＡ1）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではない。
【００７８】
４．  ｙＡ1＝ｙＡ0−ＭｉｎＰｕＳｉｚｅである、（ｘＡ0，ｙＡ0）から（ｘＡ1，ｙＡ1）までの（ｘＡk，ｙＡk）に対して、次のことが、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しくなるまで繰り返し適用する。
【００７９】
−ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＡk］［ｙＡk］が１に等しく、参照インデックスｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］が現在の予測ユニットの参照インデックスｒｅｆＩｄｘＬＸに等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＸに等しく設定される。
【００８０】
−そうではなく、ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能である場合［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＡk］［ｙＡk］（Ｙ＝！Ｘである）が１に等しく、ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＹに等しく設定され、ｍｖＬＸＡがｍｖＬＸＡに等しく設定される。
【００８１】
５．  ｙＡ1＝ｙＡ0−ＭｉｎＰｕＳｉｚｅである、（ｘＡ0，ｙＡ0）から（ｘＡ1，ｙＡ1）までの（ｘＡk，ｙＡk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが０に等しい場合、この例では、次のことが、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しくなるまで繰り返し適用する。
【００８２】
−ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＡk］［ｙＡk］が１に等しく、ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］］が両方とも長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＸに等しく設定される。
【００８３】
−そうではなく、ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＡk］［ｙＡk］（Ｙ＝！Ｘである）が１に等しく、ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］］が両方とも長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＹに等しく設定される。
【００８４】
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく、ＲｅｆＰｉｃＬｉｓｔＡ［ｒｅｆＩｄｘＡ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］の両方が短期参照ピクチャである場合、ｍｖＬＸＡは以下で規定されるように導出される（ここで、８−＃＃＃という表記は、ＨＥＶＣの現在のドラフト、すなわちＷＤ７のセクションを指す）。
【００８５】
tx=(16384+(Abs(td)>>1))/td                                (8-126)
DistScaleFactor=Clip3(−4096,4095,(tb * tx+32)>>6)          (8-127)
mvLXA=Clip3(−8192,8191.75,Sign(DistScaleFactor * mvLXA)*
((Abs(DistScaleFactor * mvLXA)+127)>>8))      (8-128)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【００８６】
td=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListA[refIdxA]))            (8-129)
tb=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListX[refIdxLX]))            (8-130)
[0080]一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトルｍｖＬＸＢと利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＢとを次の順序付けられたステップで導出するように構成されてよく、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。
【００８７】
１．  ３つのサンプル位置のセットを（ｘＢk，ｙＢk）とし、ｋ＝０，１，２であり、ｘＢ0＝ｘＰ＋ｎＰＳＷ、ｘＢ1＝ｘＢ0-ＭｉｎＰｕＳｉｚｅ、ｘＢ2＝ｘＰ-ＭｉｎＰｕＳｉｚｅ、およびｙＢk＝ｙＰ-１によりサンプル位置を規定する。サンプル位置のセット（ｘＢk，ｙＢk）は、上側の区分境界とその延長線のすぐ上側のサンプル位置を表す。［Ｅｄ．（ＢＢ）：ＳＰＳ中でＭｉｎＰｕＳｉｚｅを定義するが、導出はＡＭＰフラグの使用に依存すべきである］
２．  ｙＰ−１が（（ｙＣ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）＜＜Ｌｏｇ２ＣｔｂＳｉｚｅ）より小さい場合、次のことが適用する。
【００８８】
xB0 = (xB0>>3)<<3)+((xB0>>3)&1)*7                    (8-131)
xB1 = (xB1>>3)<<3)+((xB1>>3)&1)*7                    (8-132)
xB2 = (xB2>>3)<<3)+((xB2>>3)&1)*7                    (8-133)
３．  利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＢが最初に０に等しく設定されるようにして、ｍｖＬＸＢの両方の成分が０に等しく設定される。
【００８９】
４．  ｘＢ0＝ｘＰ＋ｎＰＳＷ、ｘＢ1＝ｘＢ0-ＭｉｎＰｕＳｉｚｅ、およびｘＢ2＝ｘＰ-ＭｉｎＰｕＳｉｚｅである、（ｘＢ0，ｙＢ0）から（ｘＢ2，ｙＢ2）までの（ｘＢk，ｙＢk）に対して、次のことが、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しくなるまで繰り返し適用する。
【００９０】
−ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］[]と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＢk］［ｙＢk］が１に等しく、参照インデックスｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］が現在の予測ユニットの参照インデックスｒｅｆＩｄｘＬＸに等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＸに等しく設定される。
【００９１】
−そうではななく、ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＢk］［ｙＢk］（Ｙ＝！Ｘである）が１に等しく、ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＹに等しく設定される。
【００９２】
５．  ｉｓＳｃａｌｅｄＦｌａｇＬＸが０に等しく、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しい場合、ｍｖＬＸＡはｍｖＬＸＢに等しく設定され、ｒｅｆＩｄｘＡはｒｅｆＩｄｘＢに等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡは１に等しく設定される。
【００９３】
６．  ｉｓＳｃａｌｅｄＦｌａｇＬＸが０に等しく、ｘＢ0＝ｘＰ＋ｎＰＳＷ、ｘＢ1＝ｘＢ0-ＭｉｎＰｕＳｉｚｅ、およびｘＢ2＝ｘＰ-ＭｉｎＰｕＳｉｚｅである、（ｘＢ0，ｙＢ0）から（ｘＢ2，ｙＢ2）までの（ｘＢk，ｙＢk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが０に等しく設定されている場合、次のことが、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しくなるまで繰り返し適用する。
【００９４】
−ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＢk］［ｙＢk］が１に等しく、ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］］が両方とも長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＸに等しく設定される。
【００９５】
−そうではなく、ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＢk］［ｙＢk］（Ｙ＝！Ｘである）が１に等しく、ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］］が両方とも長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＹに等しく設定される。
【００９６】
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく、ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＢ［ｒｅｆＩｄｘＢ］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しくなく、ＲｅｆＰｉｃＬｉｓｔＢ［ｒｅｆＩｄｘＢ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］の両方が短期参照ピクチャである場合、ｍｖＬＸＢは以下で規定されるように導出され得る（ここで、８−＃＃＃という表記は、ＨＥＶＣの現在のドラフトのセクションを指す）。
【００９７】
tx=(16384+(Abs(td)>>1))/td                                (8-134)
DistScaleFactor=Clip3(−4096,4095,(tb * tx + 32) >>6)      (8-135)
mvLXB=Clip3(−8192,8191.75,Sign(DistScaleFactor * mvLXA)*
((Abs(DistScaleFactor * mvLXA) + 127)>>8))        (8-136)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【００９８】
td=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListB[refIdxB]))                (8-137)
tb=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListX[refIdxLX]))  (8-138)
[0081]ビデオエンコーダ２０およびビデオデコーダ３０はまた、輝度ブロックの動きベクトルをコーディングするための時間的動きベクトル予測（ＴＭＶＰ）のための、修正された導出プロセスを実行するように構成され得る。一例では、このプロセスへの入力は、現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置（ｘＰ、ｙＰ）と、ルーマ、ｎＰＳＷ、およびｎＰＳＨに対する予測ユニットの幅と高さとを規定する変数と、現在の予測ユニットの区分の参照インデックスｒｅｆＩｄｘＬＸ（Ｘは０または１である）とを含む。このプロセスの出力は、動きベクトル予測ｍｖＬＸＣｏｌと利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌとを含み得る。
【００９９】
[0082]一例では、ビデオエンコーダ２０およびビデオデコーダ３０は、ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘを伴う参照ピクチャのピクチャ順序カウントＰｉｃＯｒｄｅｒＣｎｔＶａｌを返す、関数ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）を実行し得る。この関数は次のように規定されてよく、（８−１４１）およびこの説明における同様の参照は、ＨＥＶＣ  ＷＤ７のセクションを指す。
【０１００】
RefPicOrderCnt( picX, refIdx, LX ) 
= PicOrderCnt(RefPicListX[ refIdx ] of the picture picX)      (8 141)
[0083]ｓｌｉｃｅ＿ｔｙｐｅ、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ、およびｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値に応じて、コロケート区分を含むピクチャを規定する変数ｃｏｌＰｉｃは、次のように導出され得る。
【０１０１】
−ｓｌｉｃｅ＿ｔｙｐｅがＢに等しく、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが０に等しい場合、変数ｃｏｌＰｉｃは、ＲｅｆＰｉｃＬｉｓｔ１［ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ］によって規定されるようなコロケート区分を含むピクチャを規定する。
【０１０２】
−そうではない場合（ｓｌｉｃｅ＿ｔｙｐｅがＢに等しく、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが１に等しく、またはｓｌｉｃｅ＿ｔｙｐｅがＰに等しい）、変数ｃｏｌＰｉｃは、ＲｅｆＰｉｃＬｉｓｔ０［ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ］によって規定されるようなコロケート区分を含むピクチャを規定する。
【０１０３】
[0084]変数ｃｏｌＰｕおよびその位置（ｘＰＣｏｌ，ｙＰＣｏｌ）は、次の順序付けられたステップを使用して導出され得る。
【０１０４】
１．  変数ｃｏｌＰｕは次のように導出され得る。
【０１０５】
yPRb=yP+nPSH            (8-139)
−（ｙＰ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）が（ｙＰＲｂ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）に等しい場合、現在の予測ユニットの一番右下のルーマ位置の水平成分は
xPRb=xP+nPSH            (8-140)
によって定義され、変数ｃｏｌＰｕはｃｏｌＰｉｃの内側の、（（ｘＰＲｂ＞＞４）＜＜４，（ｙＰＲｂ＞＞４）＜＜４）によって与えられる修正された位置をカバーする予測ユニットとして設定される。
【０１０６】
−そうではない場合（（ｙＰ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）が（ｙＰＲｂ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）と等しくない）、ｃｏｌＰｕは「利用不可能である」とマークされる。
【０１０７】
２．  ｃｏｌＰｕがイントラ予測モードでコーディングされる場合、またはｃｏｌＰｕが「利用不可能」とマークされる場合、次のことが適用する。
【０１０８】
−現在の予測ユニットの中心のルーマ位置は、
xPCtr=(xP+(nPSW>>1)             (8-141)
yPCtr=(yP+(nPSW>>1)             (8-142)
によって定義される。
【０１０９】
−変数ｃｏｌＰｕは、ｃｏｌＰｉｃの内側の、（（ｘＰＣｔｒ＞＞４）＜＜４，（ｙＰＣｔｒ＞＞４）＜＜４）によって与えられる修正された位置を包含する予測ユニットとして設定される。
【０１１０】
（ｘＰＣｏｌ，ｙＰＣｏｌ）は、ｃｏｌＰｉｃの一番左上のルーマサンプルに対するｃｏｌＰｕの一番左上のルーマサンプルに等しく設定される。
【０１１１】
[0085]関数ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は、次のように定義され得る。ｐｉｃＸが現在のピクチャであった時点で、ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘを伴う参照ピクチャが「長期参照に使用される」とマークされた場合、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は１を返し、それ以外の場合、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｐｉｃ，ｒｅｆＩｄｘ，ＬＸ）は０を返す。
【０１１２】
[0086]変数ｍｖＬＸＣｏｌおよびａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは次のように導出されてよく、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。
【０１１３】
−次の条件の１つまたは複数が真である場合、ｍｖＬＸＣｏｌの両方の成分は０に等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
【０１１４】
−ｃｏｌＰｕはイントラ予測モードでコーディングされる。
【０１１５】
−ｃｏｌＰｕは「利用不可能」とマークされる。
【０１１６】
−ｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇは０に等しい。
【０１１７】
−そうではない場合、動きベクトルｍｖＣｏｌ、参照インデックスｒｅｆＩｄｘＣｏｌ、および参照リスト識別子ｌｉｓｔＣｏｌは次のように導出される。
【０１１８】
−ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ１に等しく設定される。
【０１１９】
−そうではない場合（ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次のことが適用する。
【０１２０】
−ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ０に等しく設定される。
【０１２１】
−そうではない場合（ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次の割当てが行われる。
【０１２２】
−それぞれの参照ピクチャリスト中のそれぞれのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ以下である場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＸに等しく設定され、それぞれ、Ｘは、このプロセスが呼び出されるＸの値である。
【０１２３】
−そうではない場合（少なくとも１つの参照ピクチャリスト中の少なくとも１つのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌより大きい）、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＮに等しく設定され、それぞれ、Ｎは、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇの値である。
【０１２４】
−次の条件の１つが真である場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は長期参照ピクチャであり、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は０に等しい。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は短期参照ピクチャであり、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は１に等しい。
−そうではない場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは１に等しく設定され、次のことが適用する。
【０１２５】
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］が長期参照ピクチャである場合、またはＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）が１に等しい場合、またはＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ）−ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ−ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、
mvLXCol = mvCol                              (8-143)
である。
【０１２６】
−そうではない場合、ｍｖＬＸＣｏｌは、以下で規定されるような動きベクトルｍｖＣｏｌのスケーリングされたバージョンとして導出される。
【０１２７】
tx=(16384+(Abs(td)>>1))/td                                  (8-144)
DistScaleFactor=Clip3(−4096, 4095, (tb * tx+ 32 )>> 6)      (8-145)
mvLXCol = Clip3(−8192, 8191.75, Sign(DistScaleFactor * mvCol)*
((Abs(DistScaleFactor * mvCol)+127)>>8))            (8-146)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０１２８】
td=Clip3(−128, 127, PicOrderCnt(colPic)−
RefPicOrderCnt(colPic, refIdxCol, listCol))              (8-147)
tb=Clip3(−128, 127, PicOrderCntVal−
PicOrderCnt(RefPicListX[refIdxLX]))                      (8-148)
[0087]上の例では、ＴＭＶＰの間に使用されるコロケート（co-located）ブロックの利用可能性は、コロケートブロックについての参照ピクチャのピクチャタイプ（たとえば、ピクチャが短期参照ピクチャか長期参照ピクチャか）にも依存し得る。すなわち、（subcaluseにおけるステップ１の後で）ＴＭＶＰについての一番右下のブロックが利用可能である場合であっても、一番右下のブロックはさらに、ブロック中の動きベクトルが、ターゲット参照ピクチャとは異なるピクチャタイプ（短期または長期）を指す場合、利用不可能となるように設定され得る。同様に、中心ブロックがＴＭＶＰのためにさらに使用され得る。
【０１２９】
[0088]たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、次の詳細な例に従って、ルーマ動きベクトルのための動きベクトル予測子を導出するように構成され得る。ビデオエンコーダ２０およびビデオデコーダ３０によって実施されるプロセスに対する入力は、
−現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置（ｘＰ，ｙＰ）と、
−ルーマのための予測ユニットの幅と高さとを規定する変数、ｎＰＳＷおよびｎＰＳＨと、
−現在の予測ユニットの区分ｒｅｆＩｄｘＬＸ（Ｘは０または１である）の参照インデックスと、を含み得る。
【０１３０】
[0089]プロセスからの出力は、
−動きベクトル予測ｍｖＬＸＣｏｌと、
−利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌと、を含み得る。
【０１３１】
[0090]関数ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は、ビデオエンコーダ２０および／またはビデオデコーダ３０によって実行されると、ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘを伴う参照ピクチャのピクチャ順序カウントＰｉｃＯｒｄｅｒＣｎｔＶａｌを返すことができる。この関数の例示的な実装が、次のように規定される。
【０１３２】
RefPicOrderCnt( picX, refIdx, LX ) = 
PicOrderCnt(ピクチャpicXのRefPicListX[refIdx])
(8-141)
[0091]ｓｌｉｃｅ＿ｔｙｐｅ、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ、およびｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値に応じて、コロケート（collocated）区分を含むピクチャを規定する変数ｃｏｌＰｉｃは、次のように導出され得る。
【０１３３】
−ｓｌｉｃｅ＿ｔｙｐｅがＢに等しく、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが０に等しい場合、変数ｃｏｌＰｉｃは、ＲｅｆＰｉｃＬｉｓｔ１［ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ］によって規定されるようなコロケート区分を含むピクチャを規定する。
【０１３４】
−そうではない場合（ｓｌｉｃｅ＿ｔｙｐｅがＢに等しく、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが１に等しく、またはｓｌｉｃｅ＿ｔｙｐｅがＰに等しい）、変数ｃｏｌＰｉｃは、ＲｅｆＰｉｃＬｉｓｔ０［ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ］によって規定されるようなコロケート区分を含むピクチャを規定する。
【０１３５】
[0092]ビデオエンコーダ２０およびビデオデコーダ３０は、次の順序付けられたステップを使用して、変数ｃｏｌＰｕとその位置（ｘＰＣｏｌ，ｙＰＣｏｌ）とを導出することができる。
【０１３６】
１．  ビデオエンコーダ２０およびビデオデコーダ３０は、次のように変数ｃｏｌＰｕを導出することができる。
【０１３７】
yPRb = yP + nPSH                  (8-139)
−（ｙＰ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）が（ｙＰＲｂ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）に等しい場合、現在の予測ユニットの一番右下のルーマ位置の水平成分は
xPRb = xP + nPSW                  (8-140)
によって定義され得、変数ｃｏｌＰｕはｃｏｌＰｉｃの内側の、（（ｘＰＲｂ＞＞４）＜＜４，（ｙＰＲｂ＞＞４）＜＜４）によって与えられる修正された位置をカバーする予測ユニットとして設定され得る。
【０１３８】
−そうではない場合（（ｙＰ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）が（ｙＰＲｂ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）に等しくない）、ビデオエンコーダ２０およびビデオデコーダ３０は、ｃｏｌＰｕを「利用不可能」とマークすることができる。
【０１３９】
２．  ｃｏｌＰｕがイントラ予測モードでコーディングされる場合、またはｃｏｌＰｕが「利用不可能」とマークされる場合、この例では、次のことが適応する。
【０１４０】
−現在の予測ユニットの中心のルーマ位置は、
xPCtr = ( xP + ( nPSW >> 1 )            (8-141)
yPCtr = ( yP + ( nPSH >> 1 )            (8-142)
によって定義される。
【０１４１】
−変数ｃｏｌＰｕは、ｃｏｌＰｉｃの内側の、（（ｘＰＣｔｒ＞＞４）＜＜４，（ｙＰＣｔｒ＞＞４）＜＜４）によって与えられる修正された位置をカバーする予測ユニットとして設定される。
【０１４２】
３．  ビデオエンコーダ２０およびビデオデコーダ３０は、（ｘＰＣｏｌ，ｙＰＣｏｌ）を、ｃｏｌＰｉｃの一番左上のルーマサンプルに対するｃｏｌＰｕの一番左上のルーマサンプルと等しく設定し得る。
【０１４３】
[0093]関数ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は、次のように定義され得る。ｐｉｃＸが現在のピクチャであった時点で、ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘを伴う参照ピクチャが「長期参照に使用される」とマークされた場合、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は１を返し、それ以外の場合、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｐｉｃ，ｒｅｆＩｄｘ，ＬＸ）は０を返す。
【０１４４】
[0094]ビデオエンコーダ２０およびビデオデコーダ３０は、次のように変数ｍｖＬＸＣｏｌとａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌとを導出し得る。
【０１４５】
ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に設定され、ｎｕｍＴｅｓｔＢｌｏｃｋは０に等しい。
【０１４６】
ｎｕｍＴｅｓｔＢｌｏｃｋが２未満でありａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが０に等しい間は、次のことが順番に実行される。
【０１４７】
xPCtr = ( xP + ( nPSW >> 1 )
yPCtr = ( yP + ( nPSH >> 1 )
−ｃｏｌＰｕがｃｏｌＰｉｃの内側の（（ｘＰＣｔｒ＞＞４）＜＜４，（ｙＰＣｔｒ＞＞４）＜＜４）によって与えられる位置をカバーする場合、ｎｕｍＴｅｓｔＢｌｏｃｋは１に設定される。
【０１４８】
−そうではなく、ｎｕｍＴｅｓｔＢｌｏｃｋが１に等しいとき、ｃｏｌＰｕは、ｃｏｌＰｉｃの内側の（（ｘＰＣｔｒ＞＞４）＜＜４，（ｙＰＣｔｒ＞＞４）＜＜４）によって与えられる修正された位置をカバーする予測ユニットとして設定され、（ｘＰＣｏｌ，ｙＰＣｏｌ）は、ｃｏｌＰｉｃの一番左上のルーマサンプルに対するｃｏｌＰｕの一番左上のルーマサンプルに等しく設定される。
【０１４９】
−ｎｕｍＴｅｓｔＢｌｏｃｋ＋＋
−次の条件の１つまたは複数が真である場合、ｍｖＬＸＣｏｌの両方の成分は０に等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
【０１５０】
−ｃｏｌＰｕはイントラ予測モードでコーディングされる。
【０１５１】
−ｃｏｌＰｕは「利用不可能」とマークされる。
【０１５２】
−ｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇは０に等しい。
【０１５３】
−そうではない場合、動きベクトルｍｖＣｏｌ、参照インデックスｒｅｆＩｄｘＣｏｌ、および参照リスト識別子ｌｉｓｔＣｏｌは次のように導出される。
【０１５４】
−ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ１に等しく設定される。
【０１５５】
−そうではない場合（ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次のことが適用する。
【０１５６】
−ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ０に等しく設定される。
【０１５７】
−そうではない場合（ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次の割当てが行われる。
【０１５８】
−それぞれの参照ピクチャリスト中のそれぞれのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ以下である場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＸに等しく設定され、それぞれ、Ｘは、このプロセスが呼び出されるＸの値である。
【０１５９】
−そうではない場合（少なくとも１つの参照ピクチャリスト中の少なくとも１つのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌより大きい）、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＮに等しく設定され、それぞれ、Ｎは、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇの値である。
【０１６０】
−次の条件の１つが真である場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
【０１６１】
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は長期参照ピクチャであり、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は０に等しい。
【０１６２】
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は短期参照ピクチャであり、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は１に等しい。
【０１６３】
−そうではない場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは１に等しく設定され、次のことが適用する。
【０１６４】
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］が長期参照ピクチャである場合、またはＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）が１に等しい場合、またはＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ）−ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ−ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、
mvLXCol = mvCol          (8-143)
−そうではない場合、ｍｖＬＸＣｏｌは、以下で規定されるような動きベクトルｍｖＣｏｌのスケーリングされたバージョンとして導出される。
【０１６５】
tx = ( 16384 + ( Abs( td ) >>1 ) ) / td          (8-144)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 )        (8-145)
mvLXCol =  Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvCol ) * 
( (Abs( DistScaleFactor * mvCol ) + 127 ) >> 8 ) )                (8-146)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０１６６】
td = Clip3( −128, 127, PicOrderCnt( colPic ) −
RefPicOrderCnt( colPic, refIdxCol, listCol ) )
(8-147)
tb = Clip3( −128, 127, PicOrderCntVal − 
PicOrderCnt( RefPicListX [ refIdxLX ] ) )
(8-148)
[0095]代替的な例では、長期動きベクトルは、参照ピクチャのＰＯＣ値が同じではない場合、別の長期動きベクトルからは決して予測されない。ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトル予測子の候補を導出するための次のプロセスに従って構成されてよく、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。
【０１６７】
[0096]Ｘが０または１である変数ｉｓＳｃａｌｅｄＦｌａｇＬＸは０に等しく設定され得る。動きベクトルｍｖＬＸＡおよび利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡは次の順序付けられたステップにおいて導出され、省略部分は、ＨＥＶＣの現在のドラフトと同じテキストを表し、下線は、ＨＥＶＣの現在のドラフトに対する変更を表す。
【０１６８】
１．  ・・・
２．  ・・・
３．  ・・・
４．  ・・・
５．  ｙＡ1＝ｙＡ0−ＭｉｎＰｕＳｉｚｅである、（ｘＡ0，ｙＡ0）から（ｘＡ1，ｙＡ1）までの（ｘＡk，ｙＡk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが０に等しい場合、次のことが、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しくなるまで繰り返し適用する。
【０１６９】
−ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＡk］［ｙＡk］が１に等しく、ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］］が両方とも異なるＰＯＣ値を伴う長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＸに等しく設定される。
【０１７０】
−そうではなく、ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＡk］［ｙＡk］（Ｙ＝！Ｘである）が１に等しく、ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］］が両方とも異なるＰＯＣ値を伴う長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＹに等しく設定される。
【０１７１】
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく、ＲｅｆＰｉｃＬｉｓｔＡ［ｒｅｆＩｄｘＡ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］の両方が短期参照ピクチャである場合、ｍｖＬＸＡは以下で規定されるように導出される。
【０１７２】
Tx = ( 16384 + ( Abs( td )  >> 1 )) / td                                                          (8-126)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 )        (8-127)
mvLXA = Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvLXA ) *
( (Abs( DistScaleFactor * mvLXA ) + 127 ) >> 8 ))                    (8-128)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０１７３】
td = Clip3( −128, 127, PicOrderCntVal − 
PicOrderCnt( RefPicListA[ refIdxA ] ))
(8-129)
tb = Clip3(−128, 127, PicOrderCntVal − 
PicOrderCnt( RefPicListX[ refIdxLX ] )) 
(8-130)
[0097]ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトルｍｖＬＸＢと利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＢとを次の順序付けられたステップを使用して導出することができ、省略部分はやはり、ＨＥＶＣ  ＷＤ７と同じテキストを表す。
【０１７４】
１．  ・・・
２．  ・・・
３．  ・・・
４．  ・・・
５．  ・・・
６．  Ｂ0＝ｘＰ＋ｎＰＳＷ、ｘＢ1＝ｘＢ0-ＭｉｎＰｕＳｉｚｅ、およびｘＢ2＝ｘＰ-ＭｉｎＰｕＳｉｚｅである、（ｘＢ0，ｙＢ0）から（ｘＢ2，ｙＢ2）までの（ｘＢk，ｙＢk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが０に等しく設定され、ｉｓＳｃａｌｅｄＦｌａｇＬＸが０に等しい場合、次のことが、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しくなるまで繰り返し適用する。
【０１７５】
−ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＢk］［ｙＢk］が１に等しく、ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］］が両方とも異なるＰＯＣ値を伴う長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＸに等しく設定される。
【０１７６】
−そうではない場合、ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＢk］［ｙＢk］（Ｙ＝！Ｘである）が１に等しく、ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］］が両方とも異なるＰＯＣ値を伴う長期参照ピクチャであるかまたは両方とも短期参照ピクチャである場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＹに等しく設定される。
【０１７７】
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく、ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＢ［ｒｅｆＩｄｘＢ］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しくなく、ＲｅｆＰｉｃＬｉｓｔＢ［ｒｅｆＩｄｘＢ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］の両方が短期参照ピクチャである場合、ｍｖＬＸＢは以下で規定されるように導出される。
【０１７８】
tx = ( 16384 + ( Abs( td ) >> 1 )) / td                              (8-134)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 )        (8-135)
mvLXB =Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvLXA ) * 
( (Abs( DistScaleFactor * mvLXA ) + 127 ) >> 8 ))              (8-136)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０１７９】
td = Clip3( −128, 127, PicOrderCntVal − 
PicOrderCnt( RefPicListB[ refIdxB ] )) 
(8-137)
tb = Clip3( −128, 127, PicOrderCntVal − 
PicOrderCnt( RefPicListX[ refIdxLX ] ) ) 
(8-138)
[0098]ビデオエンコーダ２０およびビデオデコーダ３０は、次のプロセスに従って時間的ルーマ動きベクトル予測子を導出するように構成されてよく、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。変数ｍｖＬＸＣｏｌおよびａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは、次のように導出され得る。
【０１８０】
−次の条件の１つまたは複数が真である場合、ｍｖＬＸＣｏｌの両方の成分は０に等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
【０１８１】
−ｃｏｌＰｕはイントラ予測モードでコーディングされる。
【０１８２】
−ｃｏｌＰｕは「利用不可能」とマークされる。
【０１８３】
−ｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇは０に等しい。
【０１８４】
−そうではない場合、動きベクトルｍｖＣｏｌ、参照インデックスｒｅｆＩｄｘＣｏｌ、および参照リスト識別子ｌｉｓｔＣｏｌは次のように導出される。
【０１８５】
−ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ１に等しく設定される。
【０１８６】
−そうではない場合（ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次のことが適用する。
【０１８７】
−ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ０に等しく設定される。
【０１８８】
−そうではない場合（ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次の割当てが行われる。
【０１８９】
−それぞれの参照ピクチャリスト中のそれぞれのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ以下である場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＸに等しく設定され、それぞれ、Ｘは、このプロセスが呼び出されるＸの値である。
【０１９０】
−そうではない場合（少なくとも１つの参照ピクチャリスト中の少なくとも１つのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌより大きい）、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＮに等しく設定され、それぞれ、Ｎは、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇの値である。
【０１９１】
−次の条件の１つが真である場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は長期参照ピクチャであり、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は０に等しい。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は短期参照ピクチャであり、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は１に等しい。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は長期参照ピクチャであり、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は１に等しく、ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）はＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しくない。
−そうではない場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは１に等しく設定され、次のことが適用する。
【０１９２】
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］が長期参照ピクチャである場合、またはＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）が１に等しい場合、またはＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ）−ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ−ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、
mvLXCol = mvCol                                                      (8-143)
−そうではない場合、ｍｖＬＸＣｏｌは、以下で規定されるような動きベクトルｍｖＣｏｌのスケーリングされたバージョンとして導出される。
【０１９３】
tx = (16384 + ( Abs( td ) >>1 ) ) / td                                (8-144)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 )    (8-145)
mvLXCol = Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvCol ) * 
( (Abs( DistScaleFactor * mvCol ) + 127 ) >> 8 ) )        (8-146)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０１９４】
td = Clip3( −128, 127, PicOrderCnt( colPic ) − RefPicOrderCnt( colPic, 
refIdxCol, listCol ) )                                      (8-147)
tb = Clip3( −128, 127, PicOrderCntVal − PicOrderCnt( RefPicListX [ refIdxLX ] ) )
(8-148)
[0099]さらに別の例として、ビュー間参照ピクチャは、「参照に使用されない」としてマークされ得る。簡単にするために、そのようなピクチャは、ＨＥＶＣベース仕様では非参照ピクチャと呼ばれることがあり、「長期参照に使用される」と「短期参照に使用される」のいずれかとしてマークされたピクチャは、ＨＥＶＣベース仕様では参照ピクチャと呼ばれ得る。「参照ピクチャ」および「非参照ピクチャ」という用語は、「「参照に使用される」とマークされたピクチャ」および「「参照に使用されない」とマークされたピクチャ」によって置き換えられ得る。
【０１９５】
[0100]関数ＵｎｕｓｅｄＲｅｆＰｉｃ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は、次のように定義され得る。ｐｉｃＸが現在のピクチャであった時点で、ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘをもつ参照ピクチャが「参照に使用されない」とマークされた場合、ＵｎｕｓｅｄＲｅｆＰｉｃ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は１を返し、それ以外の場合、ＵｎｕｓｅｄＲｅｆＰｉｃ（ｐｉｃ，ｒｅｆＩｄｘ，ＬＸ）は０を返す。
【０１９６】
[0101]ビデオエンコーダ２０およびビデオデコーダ３０は、次のように動きベクトル予測子の候補に対する導出プロセスを実行するように構成されてよく、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表し、省略部分はＨＥＶＣ  ＷＤ７と同じテキストを表す。
【０１９７】
Ｘが０または１である変数ｉｓＳｃａｌｅｄＦｌａｇＬＸは、０に等しく設定され得る。
【０１９８】
動きベクトルｍｖＬＸＡおよび利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡは、次の順序付けられたステップで導出され得る。
【０１９９】
１．  ・・・
２．  ・・・
３．  ・・・
４．  ・・・
５．  ｙＡ1＝ｙＡ0−ＭｉｎＰｕＳｉｚｅである、（ｘＡ0，ｙＡ0）から（ｘＡ1，ｙＡ1）までの（ｘＡk，ｙＡk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが０に等しい場合、次のことが、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しくなるまで繰り返し適用する。
【０２００】
−ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＡk］［ｙＡk］が１に等しく、ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］］が両方とも参照ピクチャであるかまたは両方とも非参照ピクチャである場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＸに等しく設定される。
【０２０１】
−そうではなく、ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＡk］［ｙＡk］（Ｙ＝！Ｘである）が１に等しく、ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］］が両方とも参照ピクチャであるかまたは両方とも非参照ピクチャである場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＹに等しく設定される。
【０２０２】
− ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく、ＲｅｆＰｉｃＬｉｓｔＡ［ｒｅｆＩｄｘＡ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］の両方が短期参照ピクチャである場合、ｍｖＬＸＡは以下で規定されるように導出される。
【０２０３】
Tx = ( 16384 + ( Abs( td ) >> 1 ) ) / td                                (8-126)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 )          (8-127)
mvLXA = Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvLXA ) * 
( (Abs( DistScaleFactor * mvLXA ) + 127 ) >> 8 ) )              (8-128)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０２０４】
td = Clip3( −128, 127, PicOrderCntVal − 
PicOrderCnt( RefPicListA[ refIdxA ] ) )                            (8-129)
tb = Clip3( −128, 127, PicOrderCntVal − 
PicOrderCnt( RefPicListX[ refIdxLX ] ) )                          (8-130)
[0102]ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトルｍｖＬＸＢと利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＢとを次の順序付けられたステップを使用して導出するように構成されてよく、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。
【０２０５】
１．  ・・・
２．  ・・・
３．  ・・・
４．  ・・・
５．  ・・・
６．  Ｂ0＝ｘＰ＋ｎＰＳＷ、ｘＢ1＝ｘＢ0-ＭｉｎＰｕＳｉｚｅ、およびｘＢ2＝ｘＰ-ＭｉｎＰｕＳｉｚｅである、（ｘＢ0，ｙＢ0）から（ｘＢ2，ｙＢ2）までの（ｘＢk，ｙＢk）に対して、ｉｓＳｃａｌｅｄＦｌａｇＬＸが０に等しく、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが０に等しく設定される場合、次のことが、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しくなるまで繰り返し適用する。
【０２０６】
− ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＢk］［ｙＢk］が１に等しく、ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］］が両方とも参照ピクチャであるかまたは両方とも非参照ピクチャである場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＸに等しく設定される。
【０２０７】
− そうではない場合、ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＢk］［ｙＢk］（Ｙ＝！Ｘである）が１に等しく、ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］］が両方とも参照ピクチャであるかまたは両方とも非参照ピクチャである場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＹに等しく設定される。
【０２０８】
− ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく、ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＢ［ｒｅｆＩｄｘＢ］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しくなく、ＲｅｆＰｉｃＬｉｓｔＢ［ｒｅｆＩｄｘＢ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］の両方が短期参照ピクチャである場合、ｍｖＬＸＢは以下で規定されるように導出される。
【０２０９】
tx =( 16384 + ( Abs( td ) >> 1 ) ) / td                                (8-134)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 )          (8-135)
mvLXB =Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvLXA ) * 
( (Abs( DistScaleFactor * mvLXA ) + 127 ) >> 8 ) )        (8-136)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０２１０】
td = Clip3( −128, 127, PicOrderCntVal − 
PicOrderCnt( RefPicListB[ refIdxB ] ) )                  (8-137)
tb = Clip3( −128, 127, PicOrderCntVal − 
PicOrderCnt( RefPicListX[ refIdxLX ] ) )                (8-138)
[0103]ビデオエンコーダ２０およびビデオデコーダ３０は、次のように時間的ルーマ動きベクトル予測子を導出するように構成されてよく、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。
【０２１１】
変数ｍｖＬＸＣｏｌおよびａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは、次のように導出され得る。
【０２１２】
− 次の条件の１つまたは複数が真である場合、ｍｖＬＸＣｏｌの両方の成分は０に等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
【０２１３】
− ｃｏｌＰｕはイントラ予測モードでコーディングされる。
【０２１４】
− ｃｏｌＰｕは「利用不可能」とマークされる。
【０２１５】
− ｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇは０に等しい。
【０２１６】
− そうではない場合、動きベクトルｍｖＣｏｌ、参照インデックスｒｅｆＩｄｘＣｏｌ、および参照リスト識別子ｌｉｓｔＣｏｌは次のように導出される。
【０２１７】
− ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ１に等しく設定される。
【０２１８】
− そうではない場合（ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次のことが適用する。
【０２１９】
− ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ０に等しく設定される。
【０２２０】
− そうではない場合（ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次の割当てが行われる。
【０２２１】
− それぞれの参照ピクチャリスト中のそれぞれのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ以下である場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＸに等しく設定され、それぞれ、Ｘは、このプロセスが呼び出されるＸの値である。
【０２２２】
− そうではない場合（少なくとも１つの参照ピクチャリスト中の少なくとも１つのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌより大きい）、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＮに等しく設定され、それぞれ、Ｎは、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇの値である。
【０２２３】
− 次の条件の１つが真である場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
− ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は非参照ピクチャであり、ＵｎｕｓｅｄＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は０に等しい。
− ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は参照ピクチャであり、ＵｎｕｓｅｄＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は１に等しい。
− そうではない場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは１に等しく設定され、次のことが適用する。
【０２２４】
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］が長期参照ピクチャである場合、またはＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）が１に等しい場合、またはＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ）−ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ−ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、
mvLXCol = mvCol                                                    (8-143)
である。
【０２２５】
− そうではない場合、ｍｖＬＸＣｏｌは、以下で規定されるような動きベクトルｍｖＣｏｌのスケーリングされたバージョンとして導出される。
【０２２６】
Tx = ( 16384 + ( Abs( td ) >>1 ) ) / td                            (8-144)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 )
(8-145)
mvLXCol = Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvCol ) * 
( (Abs( DistScaleFactor * mvCol ) + 127 ) >> 8 ))          (8-146)
ここで、ｔｄおよびｔｂは、次のように導出される。
【０２２７】
td = Clip3( −128, 127, PicOrderCnt( colPic )
− RefPicOrderCnt( colPic, refIdxCol, listCol ))      (8-147)
tb = Clip3( −128, 127, PicOrderCntVal 
− PicOrderCnt( RefPicListX [refIdxLX]))      (8-148)
[0104]「第５の例」として上で呼ばれる例に関して、ビデオエンコーダ２０およびビデオデコーダ３０は、次の技法のいずれかまたはすべてに従って実行するように構成され得る。この例では、異なる長期参照ピクチャを指す動きベクトルの間の予測はディセーブルにされてよく、異なるビュー間参照ピクチャを指す動きベクトルの間の予測はディセーブルにされてよく、ビュー間参照ピクチャを指す動きベクトルと長期参照ピクチャを指す動きベクトルとの間の予測はディセーブルにされてよい。
【０２２８】
[0105]この例では、関数ＡｄｄＰｉｃＩｄ（ｐｉｃ）は、ピクチャｐｉｃが属するビューまたはレイヤのビュー順序インデックスまたはレイヤＩＤを返す。したがって、ベースビューまたはベースレイヤに属する任意のピクチャ「ｐｉｃ」に対して、ＡｄｄＰｉｃＩｄ（ｐｉｃ）は０を返す。ＨＥＶＣベース仕様では、次のことが当てはまり得る。すなわち、関数ＡｄｄＰｉｃＩｄ（ｐｉｃ）は、ＡｄｄＰｉｃＩｄ（ｐｉｃ）が０（またはｒｅｓｅｒｖｅｄ＿ｏｎｅ＿５ビット引く１）を返すというように定義され得る。この例では、ＡｄｄＰｉｃＩｄ（ｐｉｃ）が０に等しくない場合、ピクチャｐｉｃは、時間的参照ピクチャではない（すなわち、短期参照ピクチャでも長期参照ピクチャでもない）。ＡｄｄＰｉｃＩｄ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）はＡｄｄＰｉｃＩｄ（ｐｉｃ）を返すことができ、ｐｉｃは、ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘを伴う参照ピクチャである。
【０２２９】
[0106]ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトル予測子の候補の導出プロセスを実行するように構成され得る。このプロセスへの入力は、現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置（ｘＰ、ｙＰ）と、ルーマ、ｎＰＳＷ、およびｎＰＳＨに対する予測ユニットの幅と高さとを規定する変数と、現在の予測ユニットの区分の参照インデックスｒｅｆＩｄｘＬＸ（Ｘは０または１である）とを含み得る。このプロセスの出力は、隣接予測ユニットの動きベクトルｍｖＬＸＮと、隣接予測ユニットの利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮとを含み得る（ここで、ＮはＡまたはＢにより置き換えられ得る）。
【０２３０】
[0107]Ｘが０または１である変数ｉｓＳｃａｌｅｄＦｌａｇＬＸは、０に等しく設定され得る。ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトルｍｖＬＸＡと利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡとを次の順序付けられたステップを使用して導出するように構成されてよく、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。
【０２３１】
１．  ２つのサンプル位置のセットを（ｘＡk，ｙＡk）とし、ｋ＝０，１であり、ｘＡk＝ｘＰ-１、ｙＡ0＝ｙＰ＋ｎＰＳＨ、およびｙＡ1＝ｙＡ0−ＭｉｎＰｕＳｉｚｅによりサンプル位置を規定する。サンプル位置のセット（ｘＡk，ｙＡk）は、左側の区分境界とその延長線のすぐ左側のサンプル位置を表す。
【０２３２】
２．  利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡが最初に０に等しく設定されるようにして、ｍｖＬＸＡの両方の成分が０に等しく設定される。
【０２３３】
３．  次の条件の１つまたは複数が真である場合、変数ｉｓＳｃａｌｅｄＦｌａｇＬＸが１に等しく設定される。
【０２３４】
− ルーマ位置（ｘＡ0，ｙＡ0）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではない。
【０２３５】
− ルーマ位置（ｘＡ1，ｙＡ1）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではない。
【０２３６】
４．  ｙＡ1＝ｙＡ0−ＭｉｎＰｕＳｉｚｅである、（ｘＡ0，ｙＡ0）から（ｘＡ1，ｙＡ1）までの（ｘＡk，ｙＡk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが０に等しい場合、次のことが適用する。
【０２３７】
− ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＡk］［ｙＡk］が１に等しく、参照インデックスｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］が現在の予測ユニットの参照インデックスｒｅｆＩｄｘＬＸに等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＸに等しく設定される。
【０２３８】
− そうではなく、ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＡk］［ｙＡk］（Ｙ＝！Ｘである）が１に等しく、ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］］）に等しく、ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＹに等しく設定され、ｍｖＬＸＡがｍｖＬＸＡに等しく設定される。
【０２３９】
− ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しい場合、次の１つまたは複数が真であれば、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡは０に設定される。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＬｉｓｔＡ［ｒｅｆＩｄｘＡ］のうちの１つのみが長期参照ピクチャである。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＬｉｓｔＡ［ｒｅｆＩｄｘＡ］の両方が長期参照ピクチャであり、ＰｉｃＯｒｄｅｒＣｎｔ（ＬｉｓｔＡ［ｒｅｆＩｄｘＡ］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しくない。
５．  ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが０に等しいとき、ｙＡ1＝ｙＡ0−ＭｉｎＰｕＳｉｚｅである、（ｘＡ0，ｙＡ0）から（ｘＡ1，ｙＡ1）までの（ｘＡk，ｙＡk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが０に等しい場合、次のことが適用する。
【０２４０】
− ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＡk］［ｙＡk］が１に等しく、ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＬＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＬＸ［ｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＸに等しく設定される。
【０２４１】
− そうではなく、ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＡk］［ｙＡk］（Ｙ＝！Ｘである）が１に等しく、ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＬＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＬＹ［ｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＹに等しく設定される。
【０２４２】
− ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しい場合、次の１つまたは複数が真であれば、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡは０に設定される。
− ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＬｉｓｔＡ［ｒｅｆＩｄｘＡ］のうちの１つのみが長期参照ピクチャである。
− ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＬｉｓｔＡ［ｒｅｆＩｄｘＡ］の両方が長期参照ピクチャであり、ＰｉｃＯｒｄｅｒＣｎｔ（ＬｉｓｔＡ［ｒｅｆＩｄｘＡ］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しくない。
− ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく、ＲｅｆＰｉｃＬｉｓｔＡ［ｒｅｆＩｄｘＡ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］の両方が短期参照ピクチャである場合、ｍｖＬＸＡは以下で規定されるように導出される。
【０２４３】
tx = ( 16384 + ( Abs( td ) >> 1 ) ) / td                              (8-126)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 )        (8-127)
mvLXA= Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvLXA ) *
( (Abs( DistScaleFactor * mvLXA ) + 127 ) >> 8 ))      (8-128)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０２４４】
td = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListA[ refIdxA ] ) )            (8-129)
tb = Clip3( −128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListX [ refIdxLX ] ) )          (8-130)
[0108]ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトルｍｖＬＸＢと利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＢとを次の順序付けられたステップを使用して導出するように構成され得、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。
【０２４５】
１．  ３つのサンプル位置のセットを（ｘＢk，ｙＢk）とし、ｋ＝０，１，２であり、ｘＢ0＝ｘＰ＋ｎＰＳＷ、ｘＢ1＝ｘＢ0-ＭｉｎＰｕＳｉｚｅ、ｘＢ2＝ｘＰ-ＭｉｎＰｕＳｉｚｅ、およびｙＢk＝ｙＰ-１によりサンプル位置を規定する。サンプル位置のセット（ｘＢk，ｙＢk）は、上側の区分境界とその延長線のすぐ上側のサンプル位置を表す。［Ｅｄ．（ＢＢ）：ＳＰＳ中でＭｉｎＰｕＳｉｚｅを定義するが、導出はＡＭＰフラグの使用に依存すべきである］
２．  ｙＰ−１が（（ｙＣ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）＜＜Ｌｏｇ２ＣｔｂＳｉｚｅ）より小さい場合、次のことが適用する。
【０２４６】
xB0 = (xB0>>3)<<3) + ((xB0>>3)&1)*7                                    (8-131)
xB1 = (xB1>>3)<<3) + ((xB1>>3)&1)*7                                    (8-132)
xB2 = (xB2>>3)<<3) + ((xB2>>3)&1)*7                                    (8-133)
３．  利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＢが最初に０に等しく設定されるようにして、ｍｖＬＸＢの両方の成分が０に等しく設定される。
【０２４７】
４．  ｘＢ0＝ｘＰ＋ｎＰＳＷ、ｘＢ1＝ｘＢ0-ＭｉｎＰｕＳｉｚｅ、およびｘＢ2＝ｘＰ-ＭｉｎＰｕＳｉｚｅである、（ｘＢ0，ｙＢ0）から（ｘＢ2，ｙＢ2）までの（ｘＢk，ｙＢk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが０に等しい場合、次のことが適用する。
【０２４８】
− ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＢk］［ｙＢk］が１に等しく、参照インデックスｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］が現在の予測ユニットの参照インデックスｒｅｆＩｄｘＬＸに等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＸに等しく設定される。
【０２４９】
− そうではなく、ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＢk］［ｙＢk］（Ｙ＝！Ｘである）が１に等しく、ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＬＹ［ｒｅｆＩｄｘＹ［ｘＢk］［ｙＢk］］）に等しく、ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＹに等しく設定される。
【０２５０】
− ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しい場合、次の１つまたは複数が真であれば、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡは０に設定される。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＬｉｓｔＢ［ｒｅｆＩｄｘＢ］のうちの１つのみが長期参照ピクチャである。
−ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＬｉｓｔＢ［ｒｅｆＩｄｘＢ］）に等しくない。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＬｉｓｔＢ［ｒｅｆＩｄｘＢ］の両方が長期参照ピクチャであり、ＰｉｃＯｒｄｅｒＣｎｔ（ＬｉｓｔＢ［ｒｅｆＩｄｘＢ］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しくない。
５．  ｉｓＳｃａｌｅｄＦｌａｇＬＸが０に等しく、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しい場合、ｍｖＬＸＡはｍｖＬＸＢに等しく設定され、ｒｅｆＩｄｘＡはｒｅｆＩｄｘＢに等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡは１に等しく設定される。
【０２５１】
６．  ｉｓＳｃａｌｅｄＦｌａｇＬＸが０に等しく、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが０に等しく設定され、ｘＢ0＝ｘＰ＋ｎＰＳＷ、ｘＢ1＝ｘＢ0-ＭｉｎＰｕＳｉｚｅ、およびｘＢ2＝ｘＰ-ＭｉｎＰｕＳｉｚｅである、（ｘＢ0，ｙＢ0）から（ｘＢ2，ｙＢ2）までの（ｘＢk，ｙＢk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが０に等しい場合、次のことが適用する。
【０２５２】
−ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＢk］［ｙＢk］が１に等しく、ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＸに等しく設定される。
【０２５３】
−そうではなく、ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＢk］［ｙＢk］（Ｙ＝！Ｘである）が１に等しく、ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＹに等しく設定される。
【０２５４】
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しい場合、次の１つまたは複数が真であれば、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡは０に設定される。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＬｉｓｔＢ［ｒｅｆＩｄｘＢ］のうちの１つのみが長期参照ピクチャである。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＬｉｓｔＢ［ｒｅｆＩｄｘＢ］の両方が長期参照ピクチャであり、ＰｉｃＯｒｄｅｒＣｎｔ（ＬｉｓｔＢ［ｒｅｆＩｄｘＢ］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しくない。
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく、ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＢ［ｒｅｆＩｄｘＢ］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しくなく、ＲｅｆＰｉｃＬｉｓｔＢ［ｒｅｆＩｄｘＢ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］の両方が短期参照ピクチャである場合、ｍｖＬＸＢは以下で規定されるように導出される。
【０２５５】
tx =( 16384 + ( Abs( td ) >> 1 ) ) / td                          (8-134)
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 )    (8-135)
mvLXB =Clip3( −8192, 8191.75, Sign( DistScaleFactor * mvLXA ) * 
((Abs( DistScaleFactor * mvLXA ) + 127 ) >> 8 ))            (8-136)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０２５６】
td = Clip3( −128, 127, PicOrderCntVal − 
PicOrderCnt( RefPicListB[refIdxB]))              (8-137)
tb =Clip3(−128,127,PicOrderCntVal − 
PicOrderCnt(RefPicListX[refIdxLX]))                (8-138)
[0109]ビデオエンコーダ２０およびビデオデコーダ３０は、次のように時間的ルーマ動きベクトル予測子を導出するように構成され得る。このプロセスへの入力は、現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置（ｘＰ、ｙＰ）と、ルーマ、ｎＰＳＷ、およびｎＰＳＨに対する予測ユニットの幅と高さとを規定する変数と、現在の予測ユニットの区分の参照インデックスｒｅｆＩｄｘＬＸ（Ｘは０または１である）とを含み得る。このプロセスの出力は、動きベクトル予測ｍｖＬＸＣｏｌと利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌとを含み得る。
【０２５７】
[0110]ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘを伴う参照ピクチャのピクチャ順序カウントＰｉｃＯｒｄｅｒＣｎｔＶａｌを返し得る関数ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は、次のように規定され得る。
【０２５８】
RefPicOrderCnt( picX, refIdx, LX ) = 
PicOrderCnt(ピクチャpicX のRefPicListX[ refIdx ])                (8 141)
[0111]ｓｌｉｃｅ＿ｔｙｐｅ、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ、およびｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値に応じて、ビデオエンコーダ２０およびビデオデコーダ３０は、コロケート区分を含むピクチャを規定する変数ｃｏｌＰｉｃを、次のように導出し得る。
【０２５９】
−ｓｌｉｃｅ＿ｔｙｐｅがＢに等しく、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが０に等しい場合、変数ｃｏｌＰｉｃは、ＲｅｆＰｉｃＬｉｓｔ１［ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ］によって規定されるようなコロケート区分を含むピクチャを規定する。
【０２６０】
−そうではない場合（ｓｌｉｃｅ＿ｔｙｐｅがＢに等しく、かつｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが１に等しい、またはｓｌｉｃｅ＿ｔｙｐｅがＰに等しい）、変数ｃｏｌＰｉｃは、ＲｅｆＰｉｃＬｉｓｔ０［ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ］によって規定されるようなコロケート区分を含むピクチャを規定する。
【０２６１】
[0112]ビデオエンコーダ２０およびビデオデコーダ３０は、変数ｃｏｌＰｕとその位置（ｘＰＣｏｌ，ｙＰＣｏｌ）とを次の順序付けられたステップを使用して導出することができ、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。
【０２６２】
１．  変数ｃｏｌＰｕは次のように導出され得る。
【０２６３】
yPRb = yP + nPSH                                            (8-139)
−（ｙＰ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）が（ｙＰＲｂ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）に等しい場合、現在の予測ユニットの一番右下のルーマ位置の水平成分は
yPRb = yP + nPSH                                            (8-139)
によって定義され、変数ｃｏｌＰｕはｃｏｌＰｉｃの内の（（ｘＰＲｂ＞＞４）＜＜４，（ｙＰＲｂ＞＞４）＜＜４）によって与えられる修正された位置をカバーする予測ユニットとして設定される。
【０２６４】
−そうではない場合（（ｙＰ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）が（ｙＰＲｂ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）と等しくない）、ｃｏｌＰｕは「利用不可能である」とマークされる。
【０２６５】
２．  ｃｏｌＰｕがイントラ予測モードでコーディングされる場合、またはｃｏｌＰｕが「利用不可能」とマークされる場合、次のことが適用する。
【０２６６】
−現在の予測ユニットの中心のルーマ位置は、
xPCtr = ( xP + ( nPSW >> 1 )                (8-141)
yPCtr = ( yP + ( nPSH >> 1 )                (8-142)
と定義される。
【０２６７】
−変数ｃｏｌＰｕは、ｃｏｌＰｉｃ内の（（ｘＰＣｔｒ＞＞４）＜＜４，（ｙＰＣｔｒ＞＞４）＜＜４）によって与えられる修正された位置をカバーする予測ユニットとして設定される。
【０２６８】
３．  （ｘＰＣｏｌ，ｙＰＣｏｌ）は、ｃｏｌＰｉｃの一番左上のルーマサンプルに対するｃｏｌＰｕの一番左上のルーマサンプルに等しく設定される。
【０２６９】
関数ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は、次のように定義される。ｐｉｃＸが現在のピクチャであった時点で、ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘを伴う参照ピクチャが「長期参照に使用される」とマークされた場合、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は１を返し、それ以外の場合、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｐｉｃ，ｒｅｆＩｄｘ，ＬＸ）は０を返す。
【０２７０】
関数ＡｄｄＰｉｃＩｄ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）はＡｄｄＰｉｃＩｄ（ｐｉｃ）を返し、ｐｉｃは、ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘを伴う参照ピクチャである。
変数ｍｖＬＸＣｏｌおよびａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは、次のように導出される。
【０２７１】
−次の条件の１つまたは複数が真である場合、ｍｖＬＸＣｏｌの両方の成分は０に等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
【０２７２】
−ｃｏｌＰｕはイントラ予測モードでコーディングされる。
【０２７３】
−ｃｏｌＰｕは「利用不可能」とマークされる。
【０２７４】
−ｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇは０に等しい。
【０２７５】
−そうではない場合、動きベクトルｍｖＣｏｌ、参照インデックスｒｅｆＩｄｘＣｏｌ、および参照リスト識別子ｌｉｓｔＣｏｌは次のように導出される。
【０２７６】
−ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ１に等しく設定される。
【０２７７】
−そうではない場合（ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次のことが適用する。
【０２７８】
−ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ０に等しく設定される。
【０２７９】
−そうではない場合（ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次の割り当てが行われる。
【０２８０】
−それぞれの参照ピクチャリスト中のそれぞれのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ以下である場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＸに等しく設定され、それぞれ、Ｘは、このプロセスが呼び出されるＸの値である。
【０２８１】
−そうではない場合（少なくとも１つの参照ピクチャリスト中の少なくとも１つのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌより大きい）、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＮに等しく設定され、それぞれ、Ｎは、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇの値である。
【０２８２】
−次の条件の１つが真である場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
−ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）に等しくない。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は短期参照ピクチャであり、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は１に等しい。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は長期参照ピクチャであり、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は０に等しい。
−ＲｅｆＰｉｃＬｉｓｔＬＸ［ｒｅｆＩｄｘＬＸ］は長期参照ピクチャであり、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は１に等しく、ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）はＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＬＸ［ｒｅｆＩｄｘＬＸ］）に等しくない。
−そうではない場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは１に等しく設定され、次のことが適用する。
【０２８３】
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］が長期参照ピクチャである、またはＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）が１に等しい、またはＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ）−ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ−ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、
mvLXCol = mvCol                                            (8-143)
−そうではない場合、ｍｖＬＸＣｏｌは、以下で規定されるような動きベクトルｍｖＣｏｌのスケーリングされたバージョンとして導出される。
【０２８４】
tx=(16384+(Abs(td)>>1))/td                            (8-144)
−
DistScaleFactor = Clip3( −4096, 4095, ( tb * tx + 32 ) >> 6 )    (8-145)
mvLXCol = Clip3(−8192, 8191.75, Sign( DistScaleFactor * mvCol ) * 
((Abs( DistScaleFactor * mvCol ) + 127 ) >> 8 ))        (8-146)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０２８５】
td= Clip3(−128, 127, PicOrderCnt(colPic) 
− RefPicOrderCnt( colPic,refIdxCol,listCol))            (8-147)
Tb = Clip3( −128, 127, PicOrderCntVal − PicOrderCnt(RefPicListX 
[refIdxLX] ))                                            (8-148)
[0113]ビデオエンコーダ２０およびビデオデコーダ３０は、組み合わされた双方向予測マージ候補についての次の導出プロセスを実行するように構成され得る。このプロセスの入力は、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔと、ｍｅｒｇｅＣａｎｄＬｉｓｔの中にある各々の候補Ｎの参照インデックスｒｅｆＩｄｘＬ０ＮおよびｒｅｆＩｄｘＬ１Ｎと、ｍｅｒｇｅＣａｎｄＬｉｓｔの中にある各々の候補Ｎの予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ＮおよびｐｒｅｄＦｌａｇＬ１Ｎと、ｍｅｒｇｅＣａｎｄＬｉｓｔの中にある各々の候補Ｎの動きベクトルｍｖＬ０ＮおよびｍｖＬ１Ｎと、ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＭｅｒｇｅＣａｎｄと、空間的および時間的なマージ候補導出プロセスの後の、ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄとを含み得る。このプロセスの出力は、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔと、ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＭｅｒｇｅＣａｎｄと、このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔに追加されている各々の新たな候補ｃｏｍｂＣａｎｄｋの参照インデックスｒｅｆＩｄｘＬ０ｃｏｍｂＣａｎｄｋおよびｒｅｆＩｄｘＬ１ｃｏｍｂＣａｎｄｋと、このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔに追加されている各々の新たな候補ｃｏｍｂＣａｎｄｋの予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ｃｏｍｂＣａｎｄｋおよびｐｒｅｄＦｌａｇＬ１ｃｏｍｂＣａｎｄｋと、このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔに追加されている各々の新たな候補ｃｏｍｂＣａｎｄｋの動きベクトルｍｖＬ０ｃｏｍｂＣａｎｄｋおよびｍｖＬ１ｃｏｍｂＣａｎｄｋとを含み得る。
【０２８６】
[0114]ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄが１よりも大きくＭａｘＮｕｍＭｅｒｇｅＣａｎｄより小さい場合、変数ｎｕｍＩｎｐｕｔＭｅｒｇｅＣａｎｄはｎｕｍＭｅｒｇｅＣａｎｄに設定され、変数ｃｏｍｂＩｄｘおよびｃｏｍｂＣｎｔは０に設定され、変数ｃｏｍｂＳｔｏｐはＦＡＬＳＥに設定され、ｃｏｍｂＳｔｏｐがＴＲＵＥに等しくなるまで次のステップが繰り返され得る（ここで、省略部分はＨＥＶＣ  ＷＤ７で与えられるものと同じステップを表し、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す）。
【０２８７】
１．  変数ｌ０ＣａｎｄＩｄｘおよびｌ１ＣａｎｄＩｄｘは、表８−８において規定されるようにｃｏｍｂＩｄｘを使用して導出される。
【０２８８】
２．  次の割当ては、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔ中の、位置ｌ０ＣａｎｄＩｄｘにおける候補であるｌ０Ｃａｎｄおよび位置ｌ１ＣａｎｄＩｄｘにおける候補であるｌ１Ｃａｎｄについて行われる（ｌ０Ｃａｎｄ＝ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｌ０ＣａｎｄＩｄｘ］、ｌ１Ｃａｎｄ＝ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｌ１ＣａｎｄＩｄｘ］）。
【０２８９】
３．  次の条件のすべてが真である場合、
- predFlagL0l0Cand == 1
- predFlagL1l1Cand == 1
- AddPicId(RefPicListL0[refIdxL0l0Cand])!=
AddPicId(RefPicListL1[refIdxL1l1Cand])||PicOrderCnt(RefPicList0[refIdxL0l0Cand])
!= icOrderCnt(RefPicList1 [refIdxL1l1Cand] ) || mvL0l0Cand != mvL1l1Cand
次のことが適用する。
【０２９０】
-・・・
４．  ・・・
５．  ・・・
[0115]ある代替形態として、２つの長期参照ピクチャの間の予測は、スケーリングを伴わずにイネーブルされ、２つのビュー間参照ピクチャの間の予測は、スケーリングを伴わずにイネーブルされ得る。ビデオエンコーダ２０およびビデオデコーダ３０は、次のように動きベクトル予測子の候補に対する導出プロセスを実行するように構成され得、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表し、省略部分はＨＥＶＣ  ＷＤ７と同じテキストを表す。
【０２９１】
Ｘが０または１である変数ｉｓＳｃａｌｅｄＦｌａｇＬＸは、０に等しく設定され得る。
【０２９２】
動きベクトルｍｖＬＸＡおよび利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡは、次の順序付けられたステップで導出され得る。
【０２９３】
１．  ・・・
２．  ・・・
３．  ・・・
４．  ・・・
５．  ｙＡ1＝ｙＡ0−ＭｉｎＰｕＳｉｚｅである、（ｘＡ0，ｙＡ0）から（ｘＡ1，ｙＡ1）までの（ｘＡk，ｙＡk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが０に等しい場合、次のことが、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しくなるまで繰り返し適用する。
【０２９４】
−ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＡk］［ｙＡk］が１に等しく、ＲｅｆＰｉｃＴｙｐｅ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＲｅｆＰｉｃＴｙｐｅ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＸに等しく設定される。
【０２９５】
−そうではなく、ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＡk］［ｙＡk］（Ｙ＝！Ｘである）が１に等しく、ＲｅｆＰｉｃＴｙｐｅ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＲｅｆＰｉｃＴｙｐｅ（ＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＹに等しく設定される。
【０２９６】
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく、ＲｅｆＰｉｃＬｉｓｔＡ［ｒｅｆＩｄｘＡ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］の両方が短期参照ピクチャである場合、ｍｖＬＸＡは以下で規定されるように導出される。
【０２９７】
tx=(16384+(Abs(td)>>1))/td                                (8-126)
DistScaleFactor=Clip3(−4096,4095,(tb * tx + 32 ) >> 6 )    (8-127)
mvLXA=Clip3(−8192,8191.75, Sign( DistScaleFactor * mvLXA ) * 
((Abs( DistScaleFactor * mvLXA)+127)>>8))      (8-128)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０２９８】
td=Clip3(−128, 127, PicOrderCntVal −
PicOrderCnt(RefPicListA[refIdxA]))                (8-129)
tb=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListX[refIdxLX]))                (8-130)
[0116]ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトルｍｖＬＸＢと利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＢとを次の順序付けられたステップを使用して導出し得、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表し、省略部分はＨＥＶＣ  ＷＤ７と同じテキストを表す。
【０２９９】
１．  ・・・
２．  ・・・
３．  ・・・
４．  ・・・
５．  ・・・
６．  ｘＢ0＝ｘＰ＋ｎＰＳＷ、ｘＢ1＝ｘＢ0-ＭｉｎＰｕＳｉｚｅ、およびｘＢ2＝ｘＰ-ＭｉｎＰｕＳｉｚｅである、（ｘＢ0，ｙＢ0）から（ｘＢ2，ｙＢ2）までの（ｘＢk，ｙＢk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが０に等しく設定され、ｉｓＳｃａｌｅｄＦｌａｇＬＸが０に等しい場合、次のことが、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しくなるまで繰り返し適用する。
【０３００】
−ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＢk］［ｙＢk］が１に等しく、ＲｅｆＰｉｃＴｙｐｅ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＲｅｆＰｉｃＴｙｐｅ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＸに等しく設定される。
【０３０１】
−そうではなく、ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＢk］［ｙＢk］（Ｙ＝！Ｘである）が１に等しく、ＲｅｆＰｉｃＴｙｐｅ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＲｅｆＰｉｃＴｙｐｅ（ＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＹに等しく設定される。
【０３０２】
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく、ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＢ［ｒｅｆＩｄｘＢ］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しくなく、ＲｅｆＰｉｃＬｉｓｔＢ［ｒｅｆＩｄｘＢ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］の両方が短期参照ピクチャである場合、ｍｖＬＸＢは以下で規定されるように導出される。
【０３０３】
tx = (16384+(Abs(td)>>1))/td                                      (8-134)
DistScaleFactor = Clip3(−4096, 4095,(tb * tx + 32 )>>6)            (8-135)
mvLXB=Clip3(−8192, 8191.75, Sign(DistScaleFactor*mvLXA)*
((Abs(DistScaleFactor * mvLXA ) + 127 ) >> 8))              (8-136)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０３０４】
td=Clip3(−128, 127, PicOrderCntVal − 
PicOrderCnt( RefPicListB[refIdxB]))                    (8-137)
tb=Clip3(−128, 127, PicOrderCntVal −
PicOrderCnt( RefPicListX[refIdxLX]))                    (8-138)
[0117]ビデオエンコーダ２０およびビデオデコーダ３０は、次のように、時間的ルーマ動きベクトル予測の導出プロセスを実行するように構成され得る。
【０３０５】
変数ｍｖＬＸＣｏｌおよびａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは、次のように導出され得る。
【０３０６】
−次の条件の１つまたは複数が真である場合、ｍｖＬＸＣｏｌの両方の成分は０に等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
【０３０７】
−ｃｏｌＰｕはイントラ予測モードでコーディングされる。
【０３０８】
−ｃｏｌＰｕは「利用不可能」とマークされる。
【０３０９】
−ｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇは０に等しい。
【０３１０】
−それ以外の場合、動きベクトルｍｖＣｏｌ、参照インデックスｒｅｆＩｄｘＣｏｌ、および参照リスト識別子ｌｉｓｔＣｏｌは次のように導出される。
【０３１１】
−ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ１に等しく設定される。
【０３１２】
−そうではない場合（ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次のことが適用する。
【０３１３】
−ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ０に等しく設定される。
【０３１４】
−そうではない場合（ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次の割当てが行われる。
【０３１５】
−それぞれの参照ピクチャリスト中のそれぞれのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ以下である場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＸに等しく設定され、それぞれ、Ｘは、このプロセスが呼び出されるＸの値である。
【０３１６】
−そうではない場合（少なくとも１つの参照ピクチャリスト中の少なくとも１つのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌより大きい）、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＮに等しく設定され、それぞれ、Ｎは、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇの値である。
【０３１７】
−ＲｅｆＰｉｃＴｙｐｅ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＲｅｆＰｉｃＴｙｐｅ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）に等しくない場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
−そうではない場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは１に等しく設定され、次のことが適用する。
【０３１８】
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］が長期参照ピクチャである、またはＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）が１に等しい、またはＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ）−ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ−ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、mvLXCol=mvCol                                      (8-143)
−そうではない場合、ｍｖＬＸＣｏｌは、以下で規定されるような動きベクトルｍｖＣｏｌのスケーリングされたバージョンとして導出される。
【０３１９】
tx=(16384+(Abs(td)>>1))/td                                (8-144)
DistScaleFactor=Clip3(−4096,4095,(tb*tx+32)>>6)          (8-145)
mvLXCol=Clip3(−8192,8191.75,Sign(DistScaleFactor*mvCol)*
((Abs(DistScaleFactor*mvCol)+127)>>8))              (8-146)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０３２０】
td=Clip3(−128,127,PicOrderCnt(colPic)−
RefPicOrderCnt( colPic, refIdxCol, listCol))      (8-147)
tb=Clip3(−128,127,PicOrderCntVal− 
PicOrderCnt( RefPicListX [refIdxLX]))              (8-148)
この例では、ＨＥＶＣ  ＷＤ７のセクション８．５．２．１．３は同じままであり得る。
【０３２１】
[0118]ある代替的な例では、異なる長期参照ピクチャを指す動きベクトルの間の予測はディセーブルにされ、ビュー間参照ピクチャを指す動きベクトルと長期参照ピクチャを指す動きベクトルとの間の予測はディセーブルにされ、異なるビュー間参照ピクチャを指す動きベクトルの間の予測はイネーブルにされ得る。この例では、以下で説明されるように、ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトル予測子の候補の導出プロセスを実行するように構成され得る。このプロセスへの入力は、現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置（ｘＰ、ｙＰ）と、ルーマ、ｎＰＳＷ、およびｎＰＳＨに対する予測ユニットの幅と高さとを規定する変数と、現在の予測ユニットの区分の参照インデックス（Ｘは０または１である）とを含み得る。このプロセスの出力は、隣接予測ユニットの動きベクトルｍｖＬＸＮと、隣接予測ユニットの利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮとを含み得る（ＮはＡまたはＢにより置き換えられ得る）。
【０３２２】
[0119]Ｘが０または１である変数ｉｓＳｃａｌｅｄＦｌａｇＬＸは、０に等しく設定され得る。ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトルｍｖＬＸＡと利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡとを次の順序付けられたステップを使用して導出することができ、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。
【０３２３】
１．  ２つのサンプル位置のセットを（ｘＡk，ｙＡk）とし、ｋ＝０，１であり、ｘＡk＝ｘＰ-１、ｙＡ0＝ｙＰ＋ｎＰＳＨ、およびｙＡ1＝ｙＡ0−ＭｉｎＰｕＳｉｚｅによりサンプル位置を規定する。サンプル位置のセット（ｘＡk，ｙＡk）は、左側の区分境界とその延長線のすぐ左側のサンプル位置を表す。
【０３２４】
２．  利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡが最初に０に等しく設定されるようにして、ｍｖＬＸＡの両方の成分が０に等しく設定される。
【０３２５】
３．  次の条件の１つまたは複数が真である場合、変数ｉｓＳｃａｌｅｄＦｌａｇＬＸが１に等しく設定される。
【０３２６】
−ルーマ位置（ｘＡ0，ｙＡ0）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではない。
【０３２７】
−ルーマ位置（ｘＡ1，ｙＡ1）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではない。
【０３２８】
４．  ｙＡ1＝ｙＡ0−ＭｉｎＰｕＳｉｚｅである、（ｘＡ0，ｙＡ0）から（ｘＡ1，ｙＡ1）までの（ｘＡk，ｙＡk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが０に等しい場合、次のことが適用する。
【０３２９】
−ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＡk］［ｙＡk］が１に等しく、参照インデックスｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］が現在の予測ユニットの参照インデックスｒｅｆＩｄｘＬＸに等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＸに等しく設定される。
【０３３０】
−そうではなく、ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＡk］［ｙＡk］（Ｙ＝！Ｘである）が１に等しく、ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］］）に等しく、ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＹに等しく設定され、ｍｖＬＸＡがｍｖＬＸＡに等しく設定される。
【０３３１】
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しい場合、次のことが真であれば、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡは０に設定される。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＬｉｓｔＡ［ｒｅｆＩｄｘＡ］のうちの１つのみが長期参照ピクチャである。
５．  ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが０に等しいとき、ｙＡ1＝ｙＡ0−ＭｉｎＰｕＳｉｚｅである、（ｘＡ0，ｙＡ0）から（ｘＡ1，ｙＡ1）までの（ｘＡk，ｙＡk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが０に等しい場合、次のことが適用する。
【０３３２】
−ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＡk］［ｙＡk］が１に等しく、ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＬＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＬＸ［ｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＸ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＸに等しく設定される。
【０３３３】
−そうではなく、ルーマ位置（ｘＡk，ｙＡk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＡk］［ｙＡk］（Ｙ＝！Ｘである）が１に等しく、ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＬＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＬＹ［ｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく設定され、動きベクトルｍｖＬＸＡが動きベクトルｍｖＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ｒｅｆＩｄｘＡがｒｅｆＩｄｘＬＹ［ｘＡk］［ｙＡk］に等しく設定され、ＬｉｓｔＡがＬｉｓｔＹに等しく設定される。
【０３３４】
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しい場合、次のことが真であれば、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡは０に設定される。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＬｉｓｔＡ［ｒｅｆＩｄｘＡ］のうちの１つのみが長期参照ピクチャである。
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しく、ＲｅｆＰｉｃＬｉｓｔＡ［ｒｅｆＩｄｘＡ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］の両方が短期参照ピクチャである場合、ｍｖＬＸＡは以下で規定されるように導出される。
【０３３５】
tx=(16384+(Abs(td)>>1))/td                                      (8-126)
DistScaleFactor=Clip3(−4096,4095,(tb*tx+32)>>6)                (8-127)
mvLXA=Clip3(−8192,8191.75,Sign(DistScaleFactor*mvLXA)*
((Abs(DistScaleFactor*mvLXA)+127)>>8))                    (8-128)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０３３６】
td=Clip3(−128,127,PicOrderCntVal−
PicOrderCnt(RefPicListA[refIdxA]))                        (8-129)
tb=Clip3(−128,127,PicOrderCntVal− 
PicOrderCnt( RefPicListX [refIdxLX]))                      (8-130)
[0120]ビデオエンコーダ２０およびビデオデコーダ３０は、動きベクトルｍｖＬＸＢと利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＢとを次の順序付けられたステップを使用して導出するように構成され得、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。
【０３３７】
１．  ３つのサンプル位置のセットを（ｘＢk，ｙＢk）とし、ｋ＝０，１，２であり、ｘＢ0＝ｘＰ＋ｎＰＳＷ、ｘＢ1＝ｘＢ0-ＭｉｎＰｕＳｉｚｅ、ｘＢ2＝ｘＰ-ＭｉｎＰｕＳｉｚｅ、およびｙＢk＝ｙＰ-１によりサンプル位置を規定する。サンプル位置のセット（ｘＢk，ｙＢk）は、上側の区分境界とその延長線のすぐ上側のサンプル位置を表す。［Ｅｄ．（ＢＢ）：ＳＰＳ中でＭｉｎＰｕＳｉｚｅを定義するが、導出はＡＭＰフラグの使用に依存すべきである］
２．  ｙＰ−１が（（ｙＣ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）＜＜Ｌｏｇ２ＣｔｂＳｉｚｅ）より小さい場合、次のことが適用する。
【０３３８】
xB0 = (xB0>>3)<<3)+((xB0>>3)&1)*7          (8-131)
xB1 = (xB1>>3)<<3)+((xB1>>3)&1)*7          (8-132)
xB2 = (xB2>>3)<<3)+((xB2>>3)&1)*7          (8-133)
３．  利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＢが最初に０に等しく設定されるようにして、ｍｖＬＸＢの両方の成分が０に等しく設定される。
【０３３９】
４．  ｘＢ0＝ｘＰ＋ｎＰＳＷ、ｘＢ1＝ｘＢ0-ＭｉｎＰｕＳｉｚｅ、およびｘＢ2＝ｘＰ-ＭｉｎＰｕＳｉｚｅである、（ｘＢ0，ｙＢ0）から（ｘＢ2，ｙＢ2）までの（ｘＢk，ｙＢk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが０に等しい場合、次のことが適用する。
【０３４０】
−ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＢk］［ｙＢk］が１に等しく、参照インデックスｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］が現在の予測ユニットの参照インデックスｒｅｆＩｄｘＬＸに等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＸに等しく設定される。
【０３４１】
−そうではなく、ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＢk］［ｙＢk］（Ｙ＝！Ｘである）が１に等しく、ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＬＹ［ｒｅｆＩｄｘＹ［ｘＢk］［ｙＢk］］）に等しく、ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＹに等しく設定される。
【０３４２】
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しい場合、次のことが真であれば、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡは０に設定される。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＬｉｓｔＢ［ｒｅｆＩｄｘＢ］のうちの１つのみが長期参照ピクチャである。
５．  ｉｓＳｃａｌｅｄＦｌａｇＬＸが０に等しく、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しい場合、ｍｖＬＸＡはｍｖＬＸＢに等しく設定され、ｒｅｆＩｄｘＡはｒｅｆＩｄｘＢに等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡは１に等しく設定される。
【０３４３】
６．  ｉｓＳｃａｌｅｄＦｌａｇＬＸが０に等しく、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが０に等しく設定された場合、ｘＢ0＝ｘＰ＋ｎＰＳＷ、ｘＢ1＝ｘＢ0-ＭｉｎＰｕＳｉｚｅ、およびｘＢ2＝ｘＰ-ＭｉｎＰｕＳｉｚｅである、（ｘＢ0，ｙＢ0）から（ｘＢ2，ｙＢ2）までの（ｘＢk，ｙＢk）に対して、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが０に等しく設定されるとき、次のことが適用する。
【０３４４】
−ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＸ［ｘＢk］［ｙＢk］が１に等しく、ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＸ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＸに等しく設定される。
【０３４５】
−そうではなく、ルーマ位置（ｘＢk，ｙＢk）をカバーする予測ユニットが利用可能であり［Ｅｄ．（ＢＢ）：ＭｉｎＣｂＡｄｄｒＺＳ［］［］と最小コーディングブロックに対する利用可能なプロセスとを使用して書き換える］、ＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡではなく、ｐｒｅｄＦｌａｇＬＹ［ｘＢk］［ｙＢk］（Ｙ＝！Ｘである）が１に等しく、ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］］）に等しい場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく設定され、動きベクトルｍｖＬＸＢが動きベクトルｍｖＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ｒｅｆＩｄｘＢがｒｅｆＩｄｘＬＹ［ｘＢk］［ｙＢk］に等しく設定され、ＬｉｓｔＢがＬｉｓｔＹに等しく設定される。
【０３４６】
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１に等しい場合、次のことが真であれば、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡは０に設定される。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］とＬｉｓｔＢ［ｒｅｆＩｄｘＢ］のうちの１つのみが長期参照ピクチャである。
−ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１に等しく、ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＢ［ｒｅｆＩｄｘＢ］）がＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しくなく、ＲｅｆＰｉｃＬｉｓｔＢ［ｒｅｆＩｄｘＢ］とＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］の両方が短期参照ピクチャである場合、ｍｖＬＸＢは以下で規定されるように導出される。
【０３４７】
tx=(16384+(Abs(td)>>1))/td                                (8-134)
DistScaleFactor=Clip3(−4096,4095,(tb*tx+32)>>6)            (8-135)
mvLXB=Clip3(−8192,8191.75,Sign(DistScaleFactor*mvLXA)*
((Abs(DistScaleFactor*mvLXA)+127)>>8))              (8-136)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０３４８】
td=Clip3(−128,127,PicOrderCntVal− 
PicOrderCnt(RefPicListB[refIdxB]))                    (8-137)
tb=Clip3(−128,127,PicOrderCntVal− 
PicOrderCnt(RefPicListX[refIdxLX]))                    (8-138)
[0121]ビデオエンコーダ２０およびビデオデコーダ３０は、以下で論じられるように、時間的ルーマ動きベクトル予測の導出プロセスを実施するように構成され得る。このプロセスへの入力は、現在のピクチャの一番左上のサンプルに対する現在の予測ユニットの一番左上のルーマサンプルを規定するルーマ位置（ｘＰ、ｙＰ）と、ルーマ、ｎＰＳＷ、およびｎＰＳＨに対する予測ユニットの幅と高さとを規定する変数と、現在の予測ユニットの区分の参照インデックスｒｅｆＩｄｘＬＸ（Ｘは０または１である）とを含み得る。このプロセスの出力は、動きベクトル予測ｍｖＬＸＣｏｌと利用可能性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌとを含み得る。
【０３４９】
[0122]一例では、関数ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は、ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘを伴う参照ピクチャのピクチャ順序カウントＰｉｃＯｒｄｅｒＣｎｔＶａｌを返し、次のように規定され得る。
【０３５０】
RefPicOrderCnt( picX, refIdx, LX ) = 
PicOrderCnt(ピクチャpicXのRefPicListX[ refIdx ])        (8-141)
[0123]ｓｌｉｃｅ＿ｔｙｐｅ、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ、およびｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘの値に応じて、ビデオエンコーダ２０およびビデオデコーダ３０は、コロケート区分を含むピクチャを規定する変数ｃｏｌＰｉｃを、次のように導出し得る。
【０３５１】
−ｓｌｉｃｅ＿ｔｙｐｅがＢに等しく、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが０に等しい場合、変数ｃｏｌＰｉｃは、ＲｅｆＰｉｃＬｉｓｔ１［ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ］によって規定されるようなコロケート区分を含むピクチャを規定する。
【０３５２】
−そうではない場合（ｓｌｉｃｅ＿ｔｙｐｅがＢに等しくｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが１に等しい、またはｓｌｉｃｅ＿ｔｙｐｅがＰに等しい）、変数ｃｏｌＰｉｃは、ＲｅｆＰｉｃＬｉｓｔ０［ｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘ］によって規定されるようなコロケート区分を含むピクチャを規定する。
【０３５３】
[0124]ビデオエンコーダ２０およびビデオデコーダ３０は、次の順序付けられたステップを使用して、変数ｃｏｌＰｕとその位置（ｘＰＣｏｌ，ｙＰＣｏｌ）とを導出することができる。
【０３５４】
１．  変数ｃｏｌＰｕは次のように導出される。
【０３５５】
yPRb=yP+nPSH                (8-139)
−（ｙＰ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）が（ｙＰＲｂ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）に等しい場合、現在の予測ユニットの一番右下のルーマ位置の水平成分は
xPRb=xP+nPSW                (8-140)
によって定義され、変数ｃｏｌＰｕはｃｏｌＰｉｃ内の、（（ｘＰＲｂ＞＞４）＜＜４，（ｙＰＲｂ＞＞４）＜＜４）によって与えられる修正された位置をカバーする予測ユニットとして設定される。
【０３５６】
−そうではない場合（（ｙＰ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）が（ｙＰＲｂ＞＞Ｌｏｇ２ＣｔｂＳｉｚｅ）と等しくない）、ｃｏｌＰｕは「利用不可能である」とマークされる。
【０３５７】
２．  ｃｏｌＰｕがイントラ予測モードでコーディングされる場合、またはｃｏｌＰｕが「利用不可能」とマークされる場合、次のことが適用する。
【０３５８】
−現在の予測ユニットの中心のルーマ位置は、
xPCtr=(xP+(nPSW>>1)          (8-141)
yPCtr=(yP+(nPSH>>1)          (8-142)
によって定義される。
【０３５９】
−変数ｃｏｌＰｕは、ｃｏｌＰｉｃ内の、（（ｘＰＣｔｒ＞＞４）＜＜４，（ｙＰＣｔｒ＞＞４）＜＜４）によって与えられる修正された位置をカバーする予測ユニットとして設定される。
【０３６０】
３．  （ｘＰＣｏｌ，ｙＰＣｏｌ）は、ｃｏｌＰｉｃの一番左上のルーマサンプルに対するｃｏｌＰｕの一番左上のルーマサンプルに等しく設定される。
【０３６１】
[0125]関数ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は次のように定義され得る。ｐｉｃＸが現在のピクチャであった時点で、ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘを伴う参照ピクチャが「長期参照に使用される」とマークされた場合、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は１を返し、それ以外の場合、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）は０を返す。
【０３６２】
[0126]ビデオエンコーダ２０およびビデオデコーダ３０は、ＨＥＶＣの「ＡｄｄＰｉｃＩｄ（）」関数の修正されたバージョンを実装し得る。たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、この関数がＡｄｄＰｉｃＩｄ（ｐｉｃ）を返すようにＡｄｄＰｉｃＩｄ（ｐｉｃＸ，ｒｅｆＩｄｘ，ＬＸ）を実装することができ、「ｐｉｃ」は、ピクチャｐｉｃＸの参照ピクチャリストＬＸからのインデックスｒｅｆＩｄｘを伴う参照ピクチャである。
【０３６３】
[0127]ビデオエンコーダ２０およびビデオデコーダ３０は、次のように変数ｍｖＬＸＣｏｌとａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌとを導出することができ、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表す。
【０３６４】
−次の条件の１つまたは複数が真である場合、ｍｖＬＸＣｏｌの両方の成分は０に等しく設定され、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
【０３６５】
−ｃｏｌＰｕはイントラ予測モードでコーディングされる。
【０３６６】
−ｃｏｌＰｕは「利用不可能」とマークされる。
【０３６７】
−ｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇは０に等しい。
【０３６８】
−そうではない場合、動きベクトルｍｖＣｏｌ、参照インデックスｒｅｆＩｄｘＣｏｌ、および参照リスト識別子ｌｉｓｔＣｏｌは次のように導出される。
【０３６９】
−ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ１に等しく設定される。
【０３７０】
−そうではない場合（ＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次のことが適用する。
【０３７１】
−ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０に等しい場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌはそれぞれ、ＭｖＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬ０に等しく設定される。
【０３７２】
−そうではない場合（ＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が１に等しい）、次の割当てが行われる。
【０３７３】
−それぞれの参照ピクチャリスト中のそれぞれのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ以下である場合、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＸ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＸに等しく設定され、それぞれ、Ｘは、このプロセスが呼び出されるＸの値である。
【０３７４】
−そうではない場合（少なくとも１つの参照ピクチャリスト中の少なくとも１つのピクチャｐｉｃのＰｉｃＯｒｄｅｒＣｎｔ（ｐｉｃ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌより大きい）、ｍｖＣｏｌ、ｒｅｆＩｄｘＣｏｌ、およびｌｉｓｔＣｏｌは、ＭｖＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＬＮ［ｘＰＣｏｌ］［ｙＰＣｏｌ］、およびＬＮに等しく設定され、それぞれ、Ｎは、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇの値である。
【０３７５】
−次の条件の１つが真である場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは０に等しく設定される。
−ＡｄｄＰｉｃＩｄ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）がＡｄｄＰｉｃＩｄ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）に等しくない。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は短期参照ピクチャであり、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は１に等しい。
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］は長期参照ピクチャであり、ＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）は０に等しい。
−そうではない場合、変数ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌは１に等しく設定され、次のことが適用する。
【０３７６】
−ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］が長期参照ピクチャである、またはＬｏｎｇＴｅｒｍＲｅｆＰｉｃ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）が１に等しい、またはＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ）−ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ，ｒｅｆＩｄｘＣｏｌ，ｌｉｓｔＣｏｌ）がＰｉｃＯｒｄｅｒＣｎｔＶａｌ−ＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）に等しい場合、
mvLXCol=mvCol                  (8-143)
−そうではない場合、ｍｖＬＸＣｏｌは、以下で規定されるような動きベクトルｍｖＣｏｌのスケーリングされたバージョンとして導出される。
【０３７７】
tx=(16384+(Abs(td)>>1))/td                            （8-144)
DistScaleFactor=Clip3(−4096,4095,(tb*tx+32)>>6)        (8-145)
mvLXCol= Clip3(−8192,8191.75,Sign(DistScaleFactor*mvCol)*
((Abs(DistScaleFactor*mvCol)+127)>>8))          (8-146)
ここで、ｔｄおよびｔｂは、次のように導出され得る。
【０３７８】
td=Clip3(−128,127,PicOrderCnt(colPic) − 
RefPicOrderCnt(colPic,refIdxCol, listCol))       (8-147)
tb=Clip3(−128,127,PicOrderCntVal− 
PicOrderCnt(RefPicListX[refIdxLX]))              (8-148)
[0128]ビデオエンコーダ２０およびビデオデコーダ３０は、組み合わされた双方向予測マージ候補の導出プロセスを実行するように構成され得る。このプロセスの入力は、マージ候補ｍｅｒｇｅＣａｎｄＬｉｓｔと、ｍｅｒｇｅＣａｎｄＬｉｓｔの中にある各々の候補Ｎの参照インデックスｒｅｆＩｄｘＬ０ＮおよびｒｅｆＩｄｘＬ１Ｎと、ｍｅｒｇｅＣａｎｄＬｉｓｔの中にある各々の候補Ｎの予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ＮおよびｐｒｅｄＦｌａｇＬ１Ｎと、ｍｅｒｇｅＣａｎｄＬｉｓｔの中にある各々の候補Ｎの動きベクトルｍｖＬ０ＮおよびｍｖＬ１Ｎと、ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＭｅｒｇｅＣａｎｄと、空間的および時間的なマージ候補導出プロセスの後の、ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄとを含み得る。このプロセスの出力は、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔと、ｍｅｒｇｅＣａｎｄＬｉｓｔ内の要素の数ｎｕｍＭｅｒｇｅＣａｎｄと、このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔに追加されている各々の新たな候補ｃｏｍｂＣａｎｄｋの参照インデックスｒｅｆＩｄｘＬ０ｃｏｍｂＣａｎｄｋおよびｒｅｆＩｄｘＬ１ｃｏｍｂＣａｎｄｋと、このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔに追加されている各々の新たな候補ｃｏｍｂＣａｎｄｋの予測リスト利用フラグｐｒｅｄＦｌａｇＬ０ｃｏｍｂＣａｎｄｋおよびｐｒｅｄＦｌａｇＬ１ｃｏｍｂＣａｎｄｋと、このプロセスの呼出しの間にｍｅｒｇｅＣａｎｄＬｉｓｔに追加されている各々の新たな候補ｃｏｍｂＣａｎｄｋの動きベクトルｍｖＬ０ｃｏｍｂＣａｎｄｋおよびｍｖＬ１ｃｏｍｂＣａｎｄｋとを含み得る。
【０３７９】
[0129]このプロセスは次のように定義され得、下線が引かれたテキストはＨＥＶＣ  ＷＤ７に対する変更を表し、省略部分はＨＥＶＣ  ＷＤ７と同じテキストを表す。ｎｕｍＯｒｉｇＭｅｒｇｅＣａｎｄが１よりも大きくＭａｘＮｕｍＭｅｒｇｅＣａｎｄより小さい場合、変数ｎｕｍＩｎｐｕｔＭｅｒｇｅＣａｎｄはｎｕｍＭｅｒｇｅＣａｎｄに設定され、変数ｃｏｍｂＩｄｘおよびｃｏｍｂＣｎｔは０に設定され、変数ｃｏｍｂＳｔｏｐはＦＡＬＳＥに設定され、ｃｏｍｂＳｔｏｐがＴＲＵＥに等しくなるまで次のステップが繰り返され得る。
【０３８０】
１．  変数ｌ０ＣａｎｄＩｄｘおよびｌ１ＣａｎｄＩｄｘは、表８−８において規定されるようにｃｏｍｂＩｄｘを使用して導出される。
【０３８１】
２．  次の割当ては、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔ中の、位置ｌ０ＣａｎｄＩｄｘにおける候補であるｌ０Ｃａｎｄ、および位置ｌ１ＣａｎｄＩｄｘにおける候補であるｌ１Ｃａｎｄについて行われる（ｌ０Ｃａｎｄ＝ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｌ０ＣａｎｄＩｄｘ］、ｌ１Ｃａｎｄ＝ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｌ１ＣａｎｄＩｄｘ］）。
【０３８２】
３．  次の条件のすべてが真である場合、
- predFlagL0l0Cand==1
- predFlagL1l1Cand==1
- AddPicId(RefPicListL0[refIdxL0l0Cand]) != AddPicId(RefPicListL1[refIdxL1l1Cand]) || PicOrderCnt( RefPicList0 [refIdxL0l0Cand] ) != PicOrderCnt( RefPicList1 [refIdxL1l1Cand])|| mvL0l0Cand !=mvL1l1Cand
次のことが適用する。
【０３８３】
４．  ・・・
５．  ・・・
[0130]いくつかの例では、２つの異なる長期参照ピクチャを指す２つの動きベクトルの間の予測がディセーブルにされ得る。他の例では、２つの異なるビュー間参照ピクチャを指す２つの動きベクトルの間の予測がディセーブルにされ得る。
【０３８４】
[0131]このようにして、ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオデータの第１のピクチャについてのピクチャ順序カウント（ＰＯＣ）値をコーディングし、第１のピクチャの第２次元ピクチャ識別子をコーディングし、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャをコーディングするように構成される、ビデオコーダの例を表す。第１のピクチャのＰＯＣ値と第２次元ピクチャ識別子とに基づいて第２のピクチャをコーディングすることは、第１のピクチャのＰＯＣ値と第２次元ピクチャ識別子との両方を使用して第１のピクチャを識別することを含み得る。
【０３８５】
[0132]その上、上で示されたように、第２のピクチャをコーディングすることは、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子と、候補動きベクトル予測子が参照する参照ピクチャのＰＯＣ値および第２次元ピクチャ識別子とに基づいて、第１のピクチャを参照する動きベクトルについての動きベクトル予測をイネーブルまたはディセーブルにすることを含み得る。たとえば、第１のピクチャが短期ピクチャであることを第１のピクチャの第２次元ピクチャ識別子が示し、参照ピクチャが長期参照ピクチャであることを参照ピクチャの第２次元ピクチャ識別子が示す場合、ビデオエンコーダ２０およびビデオデコーダ３０は、第１のピクチャを参照する動きベクトルと参照ピクチャを参照する動きベクトルとの間の動きベクトル予測をディセーブルにし得る。
【０３８６】
[0133]さらに、上でも示されたように、第２のピクチャをコーディングすることは、上で述べられたように、第１のピクチャを参照する第２のピクチャのブロックの動きベクトルをコーディングすることを含み得る。そのようなコーディングは、動きベクトル予測子が異なるＰＯＣ値を有する参照ピクチャを参照する場合には、ビデオエンコーダ２０およびビデオデコーダ３０が、第１のピクチャと第２のピクチャとの間でのＰＯＣ値の差と、参照ピクチャと第２のピクチャとの間でのＰＯＣ値の差とに基づいて動きベクトル予測子をスケーリングするように構成され得るという点で、第１のピクチャのＰＯＣ値に基づき得る。
【０３８７】
[0134]ビデオエンコーダ２０およびビデオデコーダ３０は、上で説明された例のいずれかまたはすべての技法を、単独で、または任意の組合せで実行するように構成され得る。ビデオエンコーダ２０およびビデオデコーダ３０は、適宜、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、種々の好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして各々実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダ内に含まれてよく、それらのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合されてよい。ビデオエンコーダ２０および／またはビデオデコーダ３０を含むデバイスは、集積回路、マイクロプロセッサ、および／または、携帯電話もしくはタブレットコンピュータのようなワイヤレス通信デバイスを備え得る。
【０３８８】
[0135]図２は、ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を実装し得るビデオエンコーダ２０の例を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、空間的予測を利用して、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去する。インターコーディングは、時間的予測を利用して、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去する。イントラモード（Ｉモード）は、いくつかの空間ベースのコーディングモードのいずれかを指し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指し得る。
【０３８９】
[0136]図２に示されるように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、参照ピクチャメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。モード選択ユニット４０は、今度は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、区分ユニット４８とを含む。ビデオブロックの復元のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。復元されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングする、デブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは一般に、加算器６２の出力をフィルタリングすることになる。また、デブロッキングフィルタに加えて追加のフィルタ（ループ内またはループ後）が使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、（ループ内フィルタとして）加算器５０の出力をフィルタリングし得る。
【０３９０】
[0137]符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間的な予測を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。動き補償ユニット４４は、たとえば、発展型動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）、時間的動きベクトル予測（ＴＭＶＰ:temporal motion vector prediction）、またはマージモードコーディングの間に、本開示の技法に従って動きベクトルをコーディングし得る。イントラ予測ユニット４６は代替的に、空間的な予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ２０は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【０３９１】
[0138]その上、区分ユニット４８は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット４８は、初めにフレームまたはスライスをＬＣＵに区分し、レートひずみ分析（たとえば、レートひずみ最適化）に基づいてＬＣＵの各々をサブＣＵに区分し得る。モード選択ユニット４０は、さらに、ＬＣＵをサブＣＵに区分することを示す４分木データ構造を生成し得る。４分木のリーフノードＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。
【０３９２】
[0139]モード選択ユニット４０は、たとえば、誤差結果に基づいて、コーディングモード、すなわち、イントラまたはインターのうちの１つを選択し得、残差ブロックデータを生成するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器５０に与え、参照フレームとして使用するための符号化ブロックを復元するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器６２に与える。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット５６に与える。
【０３９３】
[0140]動き推定ユニット４２および動き補償ユニット４４は高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム（または他のコード化ユニット）内でコーディングされている現在のブロックに対する参照フレーム（または他のコード化ユニット）内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。予測ブロックは、絶対値差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、または他の差分尺度によって決定され得るピクセル差分に関して、コーディングされるブロックに精密に一致することがわかっているブロックである。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【０３９４】
[0141]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択されてよく、それらの参照ピクチャリストの各々は、参照ピクチャメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【０３９５】
[0142]動き補償ユニット４４によって実行される動き補償は、動き推定ユニット４２によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。現在のビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、参照ピクチャリストのうちの１つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。加算器５０は、以下で説明されるように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。一般に、動き推定ユニット４２はルーマ成分に対して動き推定を実行し、動き補償ユニット４４は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット４０はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【０３９６】
[0143]イントラ予測ユニット４６は、上で説明されたように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット４６は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット４６は、たとえば、別々の符号化パスの間に、様々なイントラ予測モードを使用して、現在のブロックを符号化することができ、イントラ予測ユニット４６（または、いくつかの例において、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。
【０３９７】
[0144]たとえば、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、一般に、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに符号化ブロックを生成するために使用されるビットレート（すなわち、ビット数）を決定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのひずみおよびレートから比率を計算し得る。
【０３９８】
[0145]ブロック用のイントラ予測モードを選択した後、イントラ予測ユニット４６は、ブロック用に選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット５６に提供することができる。エントロピー符号化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ２０は、（コードワードマッピングテーブルとも呼ばれる）複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブルと、様々なブロック用の符号化コンテキストの定義と、最確イントラ予測モードの指示とを含み得る送信されるビットストリーム構成データの中に、コンテキストの各々について使用する、イントラ予測モードインデックステーブルと修正されたイントラ予測モードインデックステーブルとを含めることができる。
【０３９９】
[0146]ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、モード選択ユニット４０からの予測データを減算することによって、残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数のコンポーネントを表す。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット５２は、ＤＣＴと概念的に同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてに関連するビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【０４００】
[0147]量子化の後、エントロピー符号化ユニット５６は、量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット５６によるエントロピーコーディングの後、符号化ビットストリームは、別のデバイス（たとえば、ビデオデコーダ３０）に送信されてよく、または後で送信するかもしくは取り出すために保管され得る。
【０４０１】
[0148]逆量子化ユニット５８および逆変換ユニット６０は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを復元する。動き補償ユニット４４は、残差ブロックを参照ピクチャメモリ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、復元された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、復元された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ６４に記憶するための復元されたビデオブロックを生成する。復元されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするための参照ブロックとして、動き推定ユニット４２および動き補償ユニット４４によって使用され得る。
【０４０２】
[0149]ビデオエンコーダ２０は、図１に関して論じられた様々な例示的な技法のいずれかまたはすべてを、単独で、または任意の組合せで実行するように構成され得る。たとえば、本開示の技法によれば、ビデオエンコーダ２０は、参照ピクチャのピクチャ順序カウント（ＰＯＣ）値と参照ピクチャの第２次元の識別子とに基づいてピクチャを符号化することができる。すなわち、ビデオエンコーダ２０は、第１のピクチャ（この例では参照ピクチャ）のＰＯＣ値とともに、第１のピクチャの第２次元ピクチャ識別子を符号化することができる。第２次元ピクチャ識別子は、たとえば、第１のピクチャを含むビューのビュー識別子、第１のピクチャを含むビューのビュー順序インデックス、ビュー順序インデックスと深度フラグの組合せ、第１のピクチャを含むスケーラブルビデオコーディング（ＳＶＣ）レイヤのレイヤ識別子、および一般的なレイヤ識別子を備え得る。
【０４０３】
[0150]加えて、または代替的に、第２次元の識別子は、第１のピクチャが長期参照ピクチャか短期参照ピクチャかを示す値を備え得る。あるいは、ＰＯＣ値および第２次元ピクチャ識別子に加えて、別個の値が、第１のピクチャが長期参照ピクチャか短期参照ピクチャかを示すことができる。いくつかの例では、参照ピクチャが長期か短期かを示すものは、参照ピクチャが時間的参照ピクチャかビュー間参照ピクチャかを示し得る。たとえば、長期参照ピクチャは時間的参照ピクチャ（すなわち、同じレイヤまたはビューの中の参照ピクチャ）に対応してよく、短期参照ピクチャは、ビュー間参照ピクチャに対応してよい。別の例として、長期参照ピクチャはビュー間参照ピクチャに対応してよく、短期参照ピクチャは時間的参照ピクチャに対応してよい。
【０４０４】
[0151]同様に、ビデオエンコーダ２０は、様々なタイプの動きベクトルの間の動きベクトル予測をディセーブルにし得る。動きベクトルの「タイプ」は、たとえば、時間的参照ピクチャ（すなわち、符号化されている現在のピクチャと同じビューの中のピクチャ）を指す時間的動きベクトル、および、ビュー間参照ピクチャ（すなわち、現在のピクチャを含むビューとは異なるビューの中のピクチャ）を指す視差動きベクトルを含み得る。通常、ビュー間参照ピクチャは、現在のピクチャと同じＰＯＣ値を有する。すなわち、通常、ビュー間参照ピクチャおよび現在のピクチャは、同じアクセスユニット中に現れる。ビデオエンコーダ２０は、様々なタイプの動きベクトルの間の動きベクトル予測をディセーブルにし得る。すなわち、現在のピクチャの現在の動きベクトルが時間的動きベクトルであるとき、ビデオエンコーダ２０は、視差動きベクトルに対する動きベクトル予測をディセーブルにし得る。同様に、現在の動きベクトルは視差動きベクトルであるとき、ビデオエンコーダ２０は、時間的動きベクトルに対する動きベクトル予測をディセーブルにし得る。ビデオエンコーダ２０は、そうでなければ、発展型動きベクトル予測（ＡＭＶＰ）またはマージモードのような動きベクトルコーディングプロセスを使用して、現在の動きベクトルを符号化することができる。
【０４０５】
[0152]いくつかの例では、ビデオエンコーダ２０は、第１のピクチャ（たとえば、マルチビュービデオコーディングにおけるビュー成分）が長期参照ピクチャかどうかを示す値を、第１のピクチャがビュー間予測に使用されるかどうかに少なくとも一部基づいてコーディングするように構成され得る。たとえば、ビデオエンコーダ２０は、第１のピクチャが、第１のピクチャを含むシーケンスに対応するシーケンスパラメータセット（ＳＰＳ）において長期参照ピクチャか短期参照ピクチャかを示す、シンタックス要素を符号化することができる。
【０４０６】
[0153]加えて、または代替的に、ビデオエンコーダ２０は、少なくとも一時的に、長期参照ピクチャとしてビュー間参照ピクチャをマークするように構成され得る。ビデオエンコーダ２０はさらに、ビュー間参照ピクチャの現在の状態を記憶することができ、ここで、状態は、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つを備え得る。したがって、第１のピクチャがビュー間ピクチャを備える場合、ビデオエンコーダ２０は、第１のピクチャを長期参照ピクチャとしてマークし得る。第１のピクチャに対して第２のピクチャをコーディングした後、ビデオエンコーダ２０は、記憶された状態に基づいて、ビュー間参照ピクチャの状態を取り戻すことができる。
【０４０７】
[0154]加えて、または代替的に、ビデオエンコーダ２０は一時的に、新たなＰＯＣ値をビュー間参照ピクチャに割り当てつつ、第２のピクチャを符号化することができる。たとえば、ビデオエンコーダ２０は、現在の時間的参照ピクチャに対するＰＯＣ値のセットを決定し、使用されていないＰＯＣ値をビュー間参照ピクチャに割り当てることができる。ビデオエンコーダ２０はまた、各々のビュー間参照ピクチャに対して、それぞれの現在のＰＯＣ値を記憶することができる。第２のピクチャを符号化した後、ビデオエンコーダ２０は、ビュー間参照ピクチャに対する記憶された（すなわち、オリジナルの）ＰＯＣ値をリストアし得る。ビュー間参照ピクチャは通常、第２のピクチャ（すなわち、現在符号化されているピクチャ）と同じアクセスユニット中にあるので、いくつかの例では、代わりに、ビデオエンコーダ２０は単に、ビュー間参照ピクチャについてのＰＯＣ値を、第２のピクチャ、すなわち符号化されている現在のピクチャのＰＯＣ値と等しく設定し、その結果、ＰＯＣ値の記憶が必須ではなくなる。
【０４０８】
[0155]このようにして、図２のビデオエンコーダ２０は、ビデオデータの第１のピクチャに対するピクチャ順序カウント（ＰＯＣ）値を符号化し、第１のピクチャの第２次元ピクチャ識別子を符号化し、ベースビデオコーディング仕様に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを符号化するように構成されるビデオエンコーダの例を表す。ベースビデオコーディング仕様はＨＥＶＣを備え得る。加えて、ビデオエンコーダ２０は、ベースビデオコーディング仕様の拡張、たとえば、ＨＥＶＣのＳＶＣまたはＭＶＣ拡張に従って、ピクチャを符号化するように構成され得る。したがって、ビデオエンコーダ２０はまた、ビデオデータの第１のピクチャに対するピクチャ順序カウント（ＰＯＣ）値を符号化し、第１のピクチャの第２次元ピクチャ識別子を符号化し、ベースビデオコーディング仕様の拡張に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを符号化するように構成されるビデオエンコーダの例を表す。
【０４０９】
[0156]図３は、ビデオコーディング規格のハイレベルシンタックスのみの拡張による、ビデオデータをコーディングするための技法を実装し得るビデオデコーダ３０の例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照ピクチャメモリ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図２）に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成することができ、イントラ予測ユニット７４は、エントロピー復号ユニット７０から受信されたイントラ予測モードインジケータに基づいて予測データを生成することができる。
【０４１０】
[0157]復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット７０は、量子化係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット７０は、動きベクトルと他の予測シンタックス要素とを動き補償ユニット７２に転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【０４１１】
[0158]ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされるとき、イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化（たとえば、Ｂ、Ｐ、またはＧＰＢ）スライスとしてコーディングされるとき、動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストの１つの中の参照ピクチャの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ８２に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト０とリスト１とを構築し得る。
【０４１２】
[0159]本開示の技法によれば、エントロピー復号ユニット７０は、現在のピクチャの現在のブロックに対する動き情報を表す、エントロピー符号化データを復号することができる。たとえば、ＡＭＶＰに従って、エントロピー復号ユニット７０は、現在のブロックに対する動きベクトル差分（ＭＶＤ）値を復号することができる。動き補償ユニット７２（または、エントロピー復号ユニット７０のようなビデオデコーダ３０の別のユニット）は、ＭＶＤ値のような、エントロピー復号された動き情報を使用して、現在のブロックに対する動きベクトルを復元することができる。たとえば、動き補償ユニット７２は、たとえば、現在の動きベクトルが長期参照ピクチャまたは短期参照ピクチャ（または時間的参照ピクチャまたはビュー間参照ピクチャ）を参照するかどうか、および、候補参照ピクチャのセットも長期参照ピクチャまたは短期参照ピクチャ（または、時間的参照ピクチャまたはビュー間参照ピクチャ）を指すかどうかに基づいて、現在の動きベクトルに対する利用可能な動きベクトル予測子のセットを決定することができる。
【０４１３】
[0160]上で論じられたように、動き補償ユニット７２は、異なるタイプの候補動きベクトル予測子が現在の動きベクトルを予測するために使用できないと決定し得る。たとえば、現在の動きベクトルが時間的動きベクトルである場合、動き補償ユニット７２は、視差動きベクトルが現在の動きベクトルに対する動きベクトル予測子として使用できないと決定し得る。同様に、現在の動きベクトルが視差動きベクトルである場合、動き補償ユニット７２は、時間的動きベクトルが現在の動きベクトルに対する動きベクトル予測子として使用できないと決定し得る。いくつかの例では、動き補償ユニット７２は、長期参照ピクチャと短期参照ピクチャの間の動きベクトル予測を、同様に、または代替的にディセーブルにし得る。
【０４１４】
[0161]現在の動きベクトルが視差動きベクトルである場合、動き補償ユニット７２はまた、動きベクトル予測子のスケーリングを避けることができる（このことは同様に、視差動きベクトルにも対応し得る）。加えて、または代替的に、動き補償ユニット７２は、視差動きベクトル予測子が視差動きベクトルの動きベクトル予測の間に参照するビュー間参照ピクチャに、時間的ＰＯＣ値を割り当て得る。
【０４１５】
[0162]いずれの場合でも、動き補償ユニット７２またはビデオデコーダ３０の別の要素は、たとえば、ＡＭＶＰまたはマージモードを使用して、現在のブロックに対する動きベクトルを再現することができる。動き補償ユニット７２は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックについての予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット７２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）、スライスの参照ピクチャリストのうちの１つまたは複数に対する構成情報、スライスの各インター符号化ビデオブロックに対する動きベクトル、スライスの各インターコード化ビデオブロックに対するインター予測ステータス、および現在のビデオスライス中のビデオブロックを復号するための他の情報を決定するために、受信されたシンタックス要素のいくつかを使用する。動き補償ユニット７２は、たとえば、発展型動きベクトル予測（ＡＭＶＰ）、時間的動きベクトル予測（ＴＭＶＰ）、またはマージモードコーディングの間に、本開示の技法に従って動きベクトルをコーディングし得る。
【０４１６】
[0163]動き補償ユニット７２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合、動き補償ユニット７２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【０４１７】
[0164]逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ３０によって計算された量子化パラメータＱＰYの使用を含み得る。逆変換ユニット７８は、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換処理を変換係数に適用して、ピクセル領域において残差ブロックを生成する。
【０４１８】
[0165]動き補償ユニット７２が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換ユニット７８からの残差ブロックを動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器８０は、この加算演算を実行する１つまたは複数のコンポーネントを表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタリングするためのデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化し、またはそうではなくビデオ品質を改善するために、（コーディングループ内またはコーディングループ後の）他のループフィルタも使用され得る。所与のフレームまたはピクチャの中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ８２に記憶される。参照ピクチャメモリ８２はまた、図１のディスプレイデバイス３２のようなディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
【０４１９】
[0166]このようにして、図３のビデオデコーダ３０は、ビデオデータの第１のピクチャに対するピクチャ順序カウント（ＰＯＣ）値を復号し、第１のピクチャの第２次元ピクチャ識別子を復号し、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを復号するように構成される、ビデオデコーダの例を表す。ベースビデオコーディング仕様はＨＥＶＣを備え得る。加えて、ビデオデコーダ３０は、ベースビデオコーディング仕様の拡張、たとえば、ＨＥＶＣのＳＶＣまたはＭＶＣ拡張に従って、ピクチャを符号化するように構成され得る。したがって、ビデオデコーダ３０はまた、ビデオデータの第１のピクチャに対するピクチャ順序カウント（ＰＯＣ）値を復号し、第１のピクチャの第２次元ピクチャ識別子を復号し、ベースビデオコーディング仕様の拡張に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを復号するように構成されるビデオデコーダの例を表す。
【０４２０】
[0167]図４は、例示的なＭＶＣ予測パターンを示す概念図である。マルチビュービデオコーディング（ＭＶＣ）は、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣの拡張である。同様の技法が、ＨＥＶＣに適用され得る。図４の例では、（ビューＩＤ「Ｓ０」〜「Ｓ７」を有する）８つのビューが示され、各ビューについて１２個の時間位置（「Ｔ０」〜「Ｔ１１」）が示されている。すなわち、図４中の各行はビューに対応し、各列は時間位置を示す。
【０４２１】
[0168]ＭＶＣはＨ．２６４／ＡＶＣデコーダによって復号可能であるいわゆるベースビューを有し、ステレオビューペアはＭＶＣによってサポートされ得るが、ＭＶＣの１つの利点は、ＭＶＣが、３Ｄビデオ入力として３つ以上のビューを使用し複数のビューによって表されるこの３Ｄビデオを復号する例を、サポートできることである。ＭＶＣデコーダを有するクライアントのレンダラは、複数のビューを伴う３Ｄビデオコンテンツを予想することができる。
【０４２２】
[0169]典型的なＭＶＣの復号順序の構成は、時間優先コーディングと呼ばれる。アクセスユニットは、１つの出力時間インスタンスのためのすべてのビューのコード化ピクチャを含み得る。たとえば、時刻Ｔ０のピクチャの各々は、共通のアクセスユニットに含まれてよく、時刻Ｔ１のピクチャの各々は、第２の共通のアクセスユニットに含まれてよく、以下同様である。復号順序は、出力または表示順序と必ずしも同一とは限らない。
【０４２３】
[0170]図４中のフレーム、すなわちピクチャは、対応するフレームがイントラコーディングされる（すなわち、Ｉフレームである）のか、一方向に（すなわち、Ｐフレームとして）インターコーディングされるのか、複数の方向に（すなわち、Ｂフレームとして）インターコーディングされるのかを指定する、文字を含む影付きブロックを使用して、図４中の各行と各列との交差部において示されている。一般に、予測は矢印によって示され、ここで矢印の終点のフレームは、予測参照のために矢印の始点のオブジェクトを使用する。たとえば、時間位置Ｔ０にあるビューＳ２のＰフレームは、時間位置Ｔ０にあるビューＳ０のＩフレームから予測される。
【０４２４】
[0171]シングルビュービデオ符号化の場合と同様に、マルチビュービデオコーディングのビデオシーケンスのフレームは、異なる時間位置におけるフレームに関して予測的に符号化され得る。たとえば、時間位置Ｔ１におけるビューＳ０のｂフレームは、時間位置Ｔ０におけるビューＳ０のＩフレームからそのｂフレームに向けられた矢印を有し、その矢印は、ｂフレームがＩフレームから予測されることを示す。しかしながら、加えて、マルチビュービデオ符号化のコンテキストでは、フレームは、ビュー間予測され得る。すなわち、ビュー成分は、参照のために他のビュー中のビュー成分を使用することができる。ＭＶＣでは、たとえば、別のビュー中のビュー成分がインター予測参照であるかのように、ビュー間予測が実現される。潜在的なビュー間参照は、シーケンスパラメータセット（ＳＰＳ）ＭＶＣ拡張においてシグナリングされ、インター予測またはビュー間予測参照のフレキシブルな順序付けを可能にする参照ピクチャリスト構成プロセスによって変更され得る。
【０４２５】
[0172]Ｈ．２６４／ＡＶＣのＭＶＣ拡張では、一例として、ビュー間予測は視差動き補償によってサポートされ、視差動き補償は、Ｈ．２６４／ＡＶＣ動き補償のシンタックスを使用するが、異なるビュー中のピクチャが参照ピクチャとして使用されることを可能にする。２つのビューのコーディングは、ＭＶＣによってサポートされ得るが、一般に、ステレオスコピックビューと呼ばれる。ＭＶＣの利点の１つは、ＭＶＣエンコーダが３Ｄビデオ入力として３つ以上のビューをとらえることができ、ＭＶＣデコーダがそのようなマルチビュー表現を復号できることである。したがって、ＭＶＣデコーダを有するレンダリングデバイスは、３つ以上のビューを伴う３Ｄビデオコンテンツを予測することができる。
【０４２６】
[0173]ＭＶＣでは、ビュー間予測（ＩＶＰ）は、同じアクセスユニット（すなわち、同じ時間インスタンスを有する）内の画像間で可能になる。アクセスユニットは、一般に、共通の時間インスタンスのすべてのビュー成分（たとえば、すべてのＮＡＬユニット）を含むデータユニットである。したがって、ＭＶＣにおいて、ビュー間予測は、同じアクセスユニットにおけるピクチャ間で許可される。非ベースビューの１つの中のピクチャをコーディングするとき、ピクチャが異なるビュー中にあるが同じ時間インスタンス内にある（たとえば、同じＰＯＣ値を有し、したがって同じアクセスユニットの中にある）場合、そのピクチャは参照ピクチャリストに追加され得る。ビュー間予測の参照ピクチャは、任意のインター予測の参照ピクチャと同様に、参照ピクチャリストの任意の位置に置かれ得る。
【０４２７】
[0174]通常、Ｂピクチャの第１または第２の参照ピクチャリストに対する参照ピクチャリスト構成は、２つのステップ、すなわち参照ピクチャリスト初期化と、参照ピクチャリスト並べ替え（修正）とを含む。参照ピクチャリスト初期化は、参照ピクチャメモリ（復号ピクチャバッファとしても知られる）中の参照ピクチャを、ＰＯＣ（ピクチャの表示順でアラインされるPicture Order Count）値の順序に基づいてリストに入れる際に従う、明確なメカニズムである。
【０４２８】
[0175]ビデオコーダは、参照ピクチャリスト並べ替えメカニズムを使用して、参照ピクチャリスト初期化中にリストに入れられたピクチャの位置を任意の新しい位置へと修正し、または参照ピクチャメモリ中の任意の参照ピクチャを、そのピクチャが初期化リストに属さなくても、任意の位置に入れる。参照ピクチャリスト並べ替え（修正）後のいくつかのピクチャは、リスト中の離れた位置に入れられる場合がある。しかしながら、ピクチャの位置が、リストのアクティブ参照ピクチャの数を超える場合、ピクチャは、最終参照ピクチャリストのエントリーとは見なされない。アクティブな参照ピクチャの数は、リストごとにスライスヘッダでシグナリングされ得る。参照ピクチャリストが構築された後（たとえば、利用可能であれば、ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１）、参照ピクチャリストへの参照インデックスは、参照ピクチャリストに含まれる任意の参照ピクチャを識別するために使用され得る。
【０４２９】
[0176]時間的動きベクトル予測子（ＴＭＶＰ）を得るために、まず、コロケートピクチャが識別されることになる。現在のピクチャがＢスライスである場合、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇは、コロケートピクチャがＲｅｆＰｉｃＬｉｓｔ０からのものかＲｅｆＰｉｃＬｉｓｔ１からのものかを示すために、スライスヘッダにおいてシグナリングされる。参照ピクチャリストが識別された後、スライスヘッダでシグナリングされるｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘが、リスト中のピクチャの中のピクチャを識別するために使用される。コロケートＰＵが次いで、コロケートピクチャをチェックすることによって識別される。このＰＵを含むＣＵの一番右下のＰＵの動きと、このＰＵを含むＣＵの中心ＰＵ内の一番右下のＰＵの動きのいずれかが、使用される。上記のプロセスによって識別される動きベクトルが、ＡＭＶＰまたはマージモードのための動き候補を生成するために使用される場合、動きベクトルは、時間的な位置（ＰＯＣに反映される）に基づいてスケーリングされる必要がある。
【０４３０】
[0177]ＨＥＶＣでは、シーケンスパラメータセット（ＳＰＳ）は、フラグｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇを含み、スライスヘッダは、ｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇが１に等しい場合、フラグｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇを含む。ある特定のピクチャに対してｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇとｔｅｍｐｏｒａｌ＿ｉｄの両方が０に等しい場合、復号順序においてその特定のピクチャの前にあるピクチャからの動きベクトルは、当該特定のピクチャまたは復号順序で当該特定のピクチャの後にあるピクチャの復号において、時間的動きベクトル予測子として使用されない。
【０４３１】
[0178]現在、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）は、ＨＥＶＣに基づいて３ＤＶ規格を開発しており、その３ＤＶ規格に対して、規格化の努力の一部は、ＨＥＶＣに基づくマルチビュービデオコーデックの規格化も含む。同様に、ＨＥＶＣベースの３ＤＶでは、異なるビューから復元されたビュー成分に基づくビュー間予測がイネーブルにされる。
【０４３２】
[0179]拡張が実際に「ＨＬＳオンリー」（ハイレベルシンタックスのみ）という要件を満たすような方式で、ＡＶＣはマルチビュー拡張によって拡張された。「ＨＬＳオンリー」という要件は、ＡＶＣ中のマクロブロックレベルにおけるモジュールが再設計される必要がなく、完全にマルチビュービデオコーディング（ＭＶＣ）に対して再使用され得るように、ＭＶＣにおいてハイレベルシンタックス（ＨＬＳ）の変更しか存在しないことを保証する。「ＨＬＳオンリー」という要件は、ＨＥＶＣのＭＶＣ／３ＤＶ拡張に対して、また、マルチループ復号が受け入れ可能であると考えられる場合には、ＨＥＶＣのスケーラブルビデオコーディング（ＳＶＣ）拡張に対しても満たされ得ることが可能である。
【０４３３】
[0180]ビュー間予測を可能にするために、ＨＬＳの変更が、ピクチャの識別という目的のために行われてよく、ここで、参照ピクチャリストの構築およびマーキングは、特定のビューの中のピクチャを識別することが可能である必要がある。
【０４３４】
[0181]ＨＬＳの変更は、Ｈ．２６４／ＭＶＣにおける「ＨＬＳオンリー」という要件を満たすには十分ではなく、それは、ローレベルコーディングモジュールが、たとえばゼロ動き関連スケーリングを処理する状況に決して遭遇しないように、他の制約、仮定が行われるからである。そのような制約、修正、および仮定は以下の通りである。
【０４３５】
・コロケートピクチャがビュー間（のみ）参照ピクチャである場合、時間ダイレクトモードをディセーブルにする
・短期ではないものとしてビュー間（のみ）参照ピクチャを見なす：空間ダイレクトに関する
・暗黙的加重予測をディセーブルにする
[0182]「ＨＬＳオンリー」という要件を満たすために、拡張におけるそのような修正は、ハイレベルシンタックスのみにおいて行われなければならない。したがって、スライスヘッダのもとにあるシンタックス要素に対しては修正はあるべきではなく、拡張仕様に対するＣＵレベルの復号プロセスの変更はない。たとえば、ＨＥＶＣ拡張仕様の動きベクトル予測は、ＨＥＶＣベース仕様における動きベクトル予測と厳密に同じであるべきである。ＨＬＳの変更は、拡張仕様の規範的なデコーダの変更であるが、ベース仕様の観点からは、そのような変更は、必ずしも既知である必要はなく、義務的ではなくてよい。
【０４３６】
[0183]効率的なビュー間予測のような機能を可能にするために、ＨＥＶＣ拡張における修正とベース仕様の両方が実装され得る。通常の復号プロセスまたは基本ＨＥＶＣデコーダのコーディング効率に影響を与えないが、拡張仕様における機能をイネーブルにすることをターゲットとするベース仕様の変更は、フックと呼ばれる。多くの場合、「ＨＬＳオンリー」という要件は、ベース仕様におけるフックと拡張仕様におけるＨＬＳの変更の両方により満たされる。ベース仕様におけるフックが良好に定義されなければ、ある所望の機能が、拡張仕様においてイネーブルにされないことがあり、または、拡張仕様において多くの修正を必要とすることがある。
【０４３７】
[0184]ＨＬＳオンリーＳＶＣでは、場合によってはアップサンプリングおよび／またはフィルタリングの後で、ベースレイヤの表現が、現在のレイヤの現在のピクチャの参照ピクチャリストへと入れられ得る。そのようなピクチャは、レイヤ間参照ピクチャと呼ばれる。
【０４３８】
[0185]ベース仕様と、ＨＬＳオンリーＨＥＶＣ修正の拡張仕様との両方において、様々な修正が行われ得る。ある所望の機能を考えると、ベース仕様と拡張仕様の両方の設計が修正され得る段階において、ベース仕様の修正と拡張仕様の修正との間でトレードオフの問題がある。
【０４３９】
[0186]図５〜図９は、ＨＬＳオンリーＨＥＶＣ拡張を達成するために克服されるべき潜在的な問題を示す概念図である。図５は、たとえば、現在のピクチャ１００が、様々な予測技法を使用して予測された、ブロック１０２および１０４のようなブロックを含む例を示す。具体的には、現在のピクチャ１００は非ベースビューのピクチャに対応するが、ビュー間参照ピクチャ１１０はベースビューのピクチャである。現在のピクチャ１００のブロック１０２は、（視差動きベクトル１０６を使用して）ビュー間参照ピクチャ１１０に対してビュー間予測されるが、ブロック１０４は、（時間的動きベクトル１０８を使用して）同じ非ベースビューの短期（ＳＴ）参照ピクチャ１１２に対するインター予測を使用して予測される。したがって、図５は、時間的動きベクトル（時間的動きベクトル１０８）とビュー間動きベクトル（視差動きベクトル、すなわち視差動きベクトル１０６とも呼ばれる）の両方を伴う隣接ブロックを現在のピクチャが含む例を示す。
【０４４０】
[0187]本開示は、いくつかの例では、視差動きベクトルは時間的動きベクトルを予測するためにスケーリングされるべきではないことを認識する。加えて、本開示は、いくつかの例では、時間的動きベクトルは視差動きベクトルを予測するためにスケーリングされるべきではないことも認識する。本開示は、たとえばＡＭＶＰの間に、時間的短期動きベクトルから視差動きベクトルを予測するのをディセーブルにすることと、視差動きベクトルからの時間的動きベクトルの予測をディセーブルにすることとが可能であるべきであることも認識する。視差動きベクトルは通常、異なるビューにおける同じオブジェクトの局所的な視差に対応する。しかしながら、時間的動きベクトルは通常、オブジェクトの動きに対応する。３ＤＶ参照ソフトウェアであるＨＴＭでは、上記の２つのカテゴリーの動きベクトル間の予測はディセーブルにされる。
【０４４１】
[0188]図６は、異なるビューのビュー間参照ピクチャを使用して予測されるブロックを現在のピクチャが含む例を示す。具体的には、この例では、ビュー間参照ピクチャ１２０はビュー０の中にあり、ビュー間参照ピクチャ１２２はビュー１の中にある。現在のピクチャ１２４はビュー２の中にある。現在のピクチャ１２４は、ビュー０のビュー間参照ピクチャ１２０とビュー１のビュー間参照ピクチャ１２２の両方から、ビュー間予測を使用して予測される、ブロック１２６、１２８を含む。具体的には、この例では、ブロック１２６はビュー間参照ピクチャ１２２から予測され、ブロック１２８はビュー間参照ピクチャ１２０から予測される。
【０４４２】
[0189]ブロック１２６および１２８は、異なる視差動きベクトルを使用して予測される。すなわち、ブロック１２６は視差動きベクトル１３０を使用して予測され、視差動きベクトル１３０はビュー間参照ピクチャ１２２の一部分を参照し、一方、ブロック１２８は視差動きベクトル１３２を使用して予測され、視差動きベクトル１３２はビュー間参照ピクチャ１２０の一部分を参照する。したがって、図６は、異なるビューのビュー間参照ピクチャを参照するビュー間動きベクトルを伴う隣接ブロックを現在のピクチャが含む例を表す。
【０４４３】
[0190]本開示は、２つの視差動きベクトルが同じ参照ピクチャに対応するかどうかを識別することが可能であるべきであることを認識する。ＲｅｆＰｉｃＬｉｓｔ０のエントリーおよびＲｅｆＰｉｃＬｉｓｔ１のエントリーが両方ともビュー間参照ピクチャである場合、ＡＭＶＰの間にこれらの２つの参照ピクチャが同じかどうかを識別することが可能であるべきである。ＲｅｆＰｉｃＬｉｓｔＸ（「Ｘ」は、たとえば０または１という値を表し得る）がビュー間参照ピクチャである２つのエントリーを含む場合、ＡＭＶＰの間にこれらの２つの参照ピクチャが同じかどうかを識別することが可能であるべきである。さらに、図６に示されるように、たとえば、２つのエントリーが異なるビューに対応する場合、同じＰＯＣ値を伴う２つのエントリーは同一ではないことがある。
【０４４４】
[0191]図７は、ベースビューの中のビュー間参照ピクチャに対するビュー間予測と、非ベースビューの中の長期（ＬＴ）参照ピクチャに対するインター予測との両方を使用して予測されるブロックを、非ベースビューの中の現在のピクチャが含む例を示す。すなわち、図７は、現在のピクチャ１４０が、時間的動きベクトル１５２（長期参照ピクチャ１４４を参照する）とビュー間動きベクトル１５０（ビュー間参照ピクチャ１４２を参照する）との両方を伴う隣接ブロック１４６、１４８を含む例を示す。ビュー間動きベクトル１５０はまた、「視差動きベクトル１５０」と呼ばれ得る。本開示は、時間的動きベクトル１５２のような時間的長期動きベクトルから視差動きベクトル１５０のような視差動きベクトルを予測することをディセーブルにし、視差動きベクトルから時間的長期動きベクトルを予測することをディセーブルにすることが可能であるべきであることを認識する。
【０４４５】
[0192]図８は、長期（ＬＴ）参照ピクチャと短期（ＳＴ）参照ピクチャの両方からの非ベースビューのインター予測を使用して予測されるブロックを非ベースビューの中の現在のピクチャが含む例を示す。すなわち、図８は、時間的長期動きベクトルと時間的短期動きベクトルの両方を伴う隣接ブロック１６６、１６８を現在のピクチャ１６０が含む例を示す。具体的には、ブロック１６６は時間的動きベクトル１７０を使用して予測され、時間的動きベクトル１７０は長期参照ピクチャ１６２を参照するが、ブロック１６８は時間的動きベクトル１７２を使用して予測され、時間的動きベクトル１７２は短期参照ピクチャ１６４を参照する。したがって、時間的動きベクトル１７０は長期動きベクトルまたは長期時間的動きベクトルと呼ばれ、一方時間的動きベクトル１７２は短期動きベクトルまたは短期時間的動きベクトルと呼ばれ得る。本開示は、たとえばＡＭＶＰの間の、時間的短期動きベクトルと時間的長期動きベクトルとの間の予測をディセーブルにすることが可能であるべきであることを認識する。
【０４４６】
[0193]図９は、インター予測を使用して予測されるブロックを非ベースビューの中の現在のピクチャが含み、非ベースビューの異なる長期（ＬＴ）参照ピクチャに対してブロックが予測される例を示す。すなわち、図９は、長期ピクチャ１８４、１８２をそれぞれ参照する時間的動きベクトル１９０、１９２を伴う隣接ブロック１８６、１８８を現在のピクチャ１８０が含む例を示す。具体的には、この例では、ブロック１８６は時間的動きベクトル１９０を使用して予測され、時間的動きベクトル１９０は長期参照ピクチャ１８４の一部分を参照し、一方、ブロック１８８は時間的動きベクトル１９２を使用して予測され、時間的動きベクトル１９２は長期参照ピクチャ１８２の一部分を指す。本開示は、ＡＭＶＰの間の、時間的長期動きベクトルの予測をイネーブルおよび／またはディセーブルにすることが可能であるべきであることを認識する。
【０４４７】
[0194]図１０は、現在のブロックに対する隣接ブロックの例示的なセットを示す概念図である。具体的には、この例では、現在のブロックは、Ａ０およびＡ１とラベルされた左側の隣接ブロックと、上側の隣接ブロックＢ０、Ｂ１、およびＢ２とを有する。現在のブロックは、インター予測、たとえば時間的予測またはビュー間予測を使用してコーディングされ得る。したがって、ビデオエンコーダ２０またはビデオデコーダ３０のようなビデオコーダは、動きベクトルを使用して現在のブロックをコーディングし得る。その上、ビデオコーダは動きベクトルをコーディングし得る。様々な例において、ビデオコーダは、たとえば、発展型動きベクトル予測（ＡＭＶＰ）、時間的動きベクトル予測（ＴＭＶＰ）、またはマージモードのために、上で説明される技法を使用して現在のブロックに対する動きベクトルをコーディングし得る。ＴＭＶＰ予測子は、以前にコーディングされたピクチャの中の現在のブロックと同じ位置にある（co-located）ブロックに対する動きベクトルに対応し得る。
【０４４８】
[0195]隣接ブロックＡ０、Ａ１、Ｂ０、Ｂ１、およびＢ２の１つまたは複数の動きベクトルは、現在のブロックをコーディングするために使用される動きベクトルとは異なるタイプであり得る。たとえば、現在のブロックは長期動きベクトルを使用してコーディングされてよく、一方ブロックＡ０、Ａ１、Ｂ０、Ｂ１、およびＢ２の１つまたは複数は短期動きベクトルを使用してコーディングされてよい。別の例として、現在のブロックは短期動きベクトルを使用してコーディングされてよく、一方ブロックＡ０、Ａ１、Ｂ０、Ｂ１、およびＢ２の１つまたは複数は長期動きベクトルを使用してコーディングされてよい。さらに別の例として、現在のブロックは視差動きベクトルを使用してコーディングされてよく、一方ブロックＡ０、Ａ１、Ｂ０、Ｂ１、およびＢ２の１つまたは複数は時間的動きベクトルを使用してコーディングされてよい。さらに別の例として、現在のブロックは時間的動きベクトルを使用してコーディングされてよく、一方ブロックＡ０、Ａ１、Ｂ０、Ｂ１、およびＢ２の１つまたは複数は視差動きベクトルを使用してコーディングされてよい。そのような場合、上で説明されたように、ビデオエンコーダ２０またはビデオデコーダ３０のようなビデオコーダは、異なるタイプの動きベクトルの間での動きベクトル予測をディセーブルにし得る。
【０４４９】
[0196]図１０の例は、空間動きベクトル予測子の候補を示す。しかしながら、時間的動きベクトル予測（ＴＭＶＰ）のために時間的動きベクトル予測子の候補も考慮され得ることを理解されたい。そのようなＴＭＶＰの候補は、以前にコーディングされたピクチャ内のコロケートブロック、すなわち、図１０で「現在のブロック」とラベルされたブロックと同じ位置にあるブロックに対する動き情報に対応し得る。加えて、本開示の技法によれば、ＴＭＶＰの候補は、ＴＭＶＰの候補の動き情報および現在のブロックの動きベクトルが異なるタイプのピクチャ、たとえば、短期参照ピクチャおよび長期参照ピクチャを指す場合、動きベクトル予測子として使用することが不可能であると見なされ得る。
【０４５０】
[0197]図１１は、本開示の技法による、ビデオデータを符号化するための例示的な方法を示すフローチャートである。いくつかの例では、図１１の例示的な方法のステップは、代替的に、異なる順序で、または実質的に並列に実行され得る。同様に、いくつかのステップが省略されてよく、かつ／または他のステップが追加されてよい。ビデオエンコーダ２０によって実行されるものとして説明されるが、他のビデオ符号化デバイスが実質的に同様の方法を実行するように構成され得ることを理解されたい。
【０４５１】
[0198]この例では、ビデオエンコーダ２０は、現在のピクチャに対する参照ピクチャのピクチャ順序カウント（ＰＯＣ）値を符号化する（２００）。たとえば、ビデオエンコーダ２０は、現在のピクチャを含むシーケンスに対するシーケンスパラメータセット（ＳＰＳ）データ構造の中のいくつかの参照ピクチャに対するＰＯＣ値、またはＰＯＣ値を表すデータ（最下位ビット（ＬＳＢｓ）など）を符号化し得る。ビデオエンコーダ２０はまた、加えて、または代替的に、現在のピクチャの現在のスライスのスライスヘッダ中の１つまたは複数の参照ピクチャに対するＰＯＣ値を符号化し得る。いくつかの例では、ビデオエンコーダ２０は、ＳＰＳ中の長期参照ピクチャのＰＯＣ値とスライスヘッダ中の短期参照ピクチャのＰＯＣ値とを表すデータを符号化し得る。ビデオエンコーダ２０はまた、ＳＰＳ中、スライスヘッダ中、または別の場所にあるビュー間参照ピクチャのＰＯＣ値を符号化し得る。一般に、ビュー間参照ピクチャのＰＯＣ値は、符号化されている現在のピクチャのＰＯＣ値と同じである。
【０４５２】
[0199]ビデオエンコーダ２０はまた、参照ピクチャの第２次元の識別子を符号化し得る（２０２）。第２次元の識別子は、参照ピクチャを含むビューのビュー識別子、参照ピクチャを含むビューのビュー順序インデックス、ビュー順序インデックスと深度フラグの組合せ、参照ピクチャを含むスケーラブルビデオコーディング（ＳＶＣ）レイヤのレイヤ識別子、および／または一般的なレイヤ識別子のうちの１つまたは複数を含み得る。このようにして、参照ピクチャに対するＰＯＣ値と参照ピクチャの第２次元の識別子との組合せが、参照ピクチャを識別するために使用され得る。
【０４５３】
[0200]ビデオエンコーダ２０はさらに、現在のピクチャの現在のブロックに対する動き探索を実行し得る。すなわち、動き推定ユニット４２は、現在のブロックに最も近く一致する参照ブロックに対する参照ピクチャを探索し得る。このことは、当該参照ブロックを参照し、また、当該参照ブロックが現れる参照ピクチャも参照する動きベクトルを含む動き情報をもたらし得る。したがって、ビデオエンコーダ２０の動き補償ユニット４４は、参照ピクチャの１つを指す動きベクトルを使用して、現在のブロックを予測し得る（２０４）。
【０４５４】
[0201]ビデオエンコーダ２０はまた、たとえば、発展型動きベクトル予測（ＡＭＶＰ）、時間的動きベクトル予測（ＴＭＶＰ、）またはマージモードを使用して、動きベクトルを符号化し得る。具体的には、ビデオエンコーダ２０は、利用可能な候補動きベクトル予測子のセットを決定し得る（２０６）。たとえば、図１０を参照すると、ビデオエンコーダ２０は、隣接ブロックＡ０、Ａ１、Ｂ０、Ｂ１、およびＢ２に対する動きベクトルが利用可能かどうかを決定し得る。具体的には、本開示の技法によれば、ビデオエンコーダ２０は、隣接ブロックの動きベクトルが現在のブロックに対する動きベクトルとは異なるタイプである場合、これらの隣接ブロックの１つの動きベクトルが利用可能ではないと決定し得る。同様に、ビデオエンコーダ２０は、ＴＭＶＰ候補が現在のブロックの動きベクトルをコーディングするための予測子として使用されることが可能であるかどうかを決定する際、時間的動きベクトル予測子の候補についての動きベクトルが現在のブロックについての動きベクトルとは異なるタイプの参照ピクチャを参照しているかどうかを決定し得る。
【０４５５】
[0202]上で説明されたように、例示的な異なるタイプの動きベクトルは、長期動きベクトルと、短期動きベクトルと、時間的動きベクトルと、視差動きベクトルとを含む。したがって、ビデオエンコーダ２０は、現在のブロックの動きベクトルのタイプ、さらには、隣接ブロックの動きベクトルのタイプを決定し、現在のブロックの現在の動きベクトルのタイプとは異なるタイプの隣接ブロックの動きベクトルが現在の動きベクトルに対する動きベクトル予測子として使用されることは不可能であると決定し得る。タイプを決定するために、ビデオエンコーダ２０は、候補動きベクトルが参照する参照ピクチャのＰＯＣ値、現在の動きベクトルが参照する参照ピクチャのＰＯＣ値、候補動きベクトルが参照する参照ピクチャの第２次元識別子、および／または、現在の動きベクトルが参照する参照ピクチャの第２次元識別子を参照し得る。
【０４５６】
[0203]続いて、ビデオエンコーダ２０は、現在の動きベクトルに対する動きベクトル予測子として、隣接ブロック（これは、以前にコーディングされたピクチャ中のコロケートブロックおよび／または異なるビューのピクチャ中の対応するブロックを含み得る）から利用可能な候補動きベクトル予測子の１つを選択し得る（２０８）。ビデオエンコーダ２０は次いで、選択された動きベクトル予測子を使用して現在の動きベクトルを符号化し得る（２１０）。
【０４５７】
[0204]さらに、ビデオエンコーダ２０は、現在のブロックに対する残差ブロックを計算することができる（２１２）。図２に関して説明されたように、加算器５０は、元のコーディングされていないブロックと、動き補償ユニット４４によって形成された予測ブロックとのピクセルごとの差分を計算し得る。変換処理ユニット５２、量子化ユニット５４、およびエントロピー符号化ユニット５６は次いで、それぞれ、残差ブロックを変換し、量子化し、走査し得る（２１４）。具体的には、変換処理ユニット５２は、残差ブロックを変換して変換係数のブロックを生成し、量子化ユニット５２は変換係数を量子化し、エントロピー符号化ユニット５６は量子化変換係数を走査し得る。エントロピー符号化ユニット５６は次いで、量子化変換係数と、符号化動きベクトル情報とをエントロピー符号化し得る（２１６）。
【０４５８】
[0205]このようにして、図１１の方法は、ビデオデータの第１のピクチャについてのピクチャ順序カウント（ＰＯＣ）値を符号化することと、第１のピクチャの第２次元ピクチャ識別子を符号化することと、ベースビデオコーディング仕様（またはベースビデオコーディング仕様の拡張）に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを符号化することとを含む、方法の例を表す。加えて、方法は、
第２のピクチャの第１のブロックの第１の動きベクトルと（ここで前記第１の動きベクトルは短期参照ピクチャを参照し）、第２のピクチャの第２のブロックの第２の動きベクトル（ここで第２の動きベクトルは長期参照ピクチャを参照し）との間の動きベクトル予測をディセーブルにすることを含み得る。加えて、または代替的に、方法は、第２のピクチャの第１のブロックの第１の動きベクトル（ここで前記第１の動きベクトルはビュー間参照ピクチャを参照し）と、第２のピクチャの第２のブロックの第２の動きベクトル（ここで前記第２の動きベクトルは時間的参照ピクチャを参照し）との間の動きベクトル予測をディセーブルにすることを含み得る。
【０４５９】
[0206]図１２は、本開示の技法による、ビデオデータを復号するための例示的な方法を示すフローチャートである。いくつかの例では、図１２の例示的な方法のステップは、代替的に、異なる順序で、または実質的に並列に実行され得る。同様に、いくつかのステップが省略されてよく、かつ／または他のステップが追加されてよい。ビデオデコーダ３０によって実行されるものとして説明されるが、他のビデオ復号デバイスが実質的に同様の方法を実行するように構成され得ることを理解されたい。
【０４６０】
[0207]この例では、ビデオデコーダ３０は、現在のピクチャに対する参照ピクチャのＰＯＣ値を復号する（２３０）。たとえば、ビデオデコーダ３０は、現在のピクチャを含むシーケンスに対するシーケンスパラメータセット（ＳＰＳ）データ構造の中のいくつかの参照ピクチャに対するＰＯＣ値、またはＰＯＣ値を表すデータ（最下位ビット（ＬＳＢｓ）など）を復号し得る。ビデオデコーダ３０は、たとえば以前に復号された完全なＰＯＣ値から導出されたそれぞれのＭＳＢにＬＳＢを付加することによって、ＰＯＣ値に対する復号されたＬＳＢから当該ＰＯＣ値を復元し得る。ビデオデコーダ３０はまた、加えて、または代替的に、現在のピクチャの現在のスライスのスライスヘッダ中の１つまたは複数の参照ピクチャに対するＰＯＣ値を復号し得る。いくつかの例では、ビデオデコーダ３０は、ＳＰＳ中の長期参照ピクチャのＰＯＣ値と、スライスヘッダ中の短期参照ピクチャのＰＯＣ値とを表すデータを復号し得る。ビデオデコーダ３０はまた、ＳＰＳ中、スライスヘッダ中、または別の場所にあるビュー間参照ピクチャのＰＯＣ値を復号し得る。一般に、ビュー間参照ピクチャのＰＯＣ値は、符号化されている現在のピクチャのＰＯＣ値と同じである。
【０４６１】
[0208]ビデオエンコーダ３０はまた、参照ピクチャの第２次元識別子を復号し得る（２３２）。第２次元識別子は、参照ピクチャを含むビューのビュー識別子、参照ピクチャを含むビューのビュー順序インデックス、ビュー順序インデックスと深度フラグの組合せ、参照ピクチャを含むスケーラブルビデオコーディング（ＳＶＣ）レイヤのレイヤ識別子、および／または一般的なレイヤ識別子のうちの１つまたは複数を含み得る。このようにして、参照ピクチャについてのＰＯＣ値と参照ピクチャの第２次元識別子との組合せが、参照ピクチャを識別するために使用され得る。したがって、参照ピクチャを識別するために、動き情報は、参照ピクチャについてのＰＯＣ値と第２次元識別子との両方を含み得る。
【０４６２】
[0209]ビデオエンコーダ３０はまた、現在のピクチャの現在のブロックに対する動きベクトルを復号し得る。具体的には、ビデオデコーダ３０は、利用可能な候補動きベクトル予測子のセットを決定し得る（２３４）。たとえば、図１０を参照すると、ビデオデコーダ３０は、隣接ブロックＡ０、Ａ１、Ｂ０、Ｂ１、およびＢ２についての動きベクトルが利用可能かどうかを決定し得る。具体的には、本開示の技法によれば、ビデオデコーダ３０は、隣接ブロックの動きベクトルが現在のブロックに対する動きベクトルとは異なるタイプである場合、これらの隣接ブロックの１つの動きベクトルが利用可能ではないと決定し得る。同様に、ビデオデコーダ３０は、ＴＭＶＰ候補が現在のブロックの動きベクトルをコーディングするための予測子として使用されることが可能であるかどうかを決定する際、時間的動きベクトル予測子の候補についての動きベクトルが現在のブロックについての動きベクトルとは異なるタイプの参照ピクチャを参照しているかどうかを決定し得る。
【０４６３】
[0210]上で説明されたように、例示的な異なるタイプの動きベクトルは、長期動きベクトルと、短期動きベクトルと、時間的動きベクトルと、視差動きベクトルとを含む。したがって、ビデオデコーダ３０は、現在のブロックの動きベクトルのタイプ、さらには、隣接ブロックの動きベクトルのタイプを決定し、現在のブロックの動きベクトルのタイプとは異なるタイプの隣接ブロックの動きベクトルが現在の動きベクトルに対する動きベクトル予測子として使用されることは不可能であると決定し得る。タイプを決定するために、ビデオデコーダ３０は、候補動きベクトルが参照する参照ピクチャのＰＯＣ値、現在の動きベクトルが参照する参照ピクチャのＰＯＣ値、候補動きベクトルが参照する参照ピクチャの第２次元識別子、および／または、現在の動きベクトルが参照する参照ピクチャの第２次元識別子を参照し得る。
【０４６４】
[0211]続いて、ビデオデコーダ３０は、現在の動きベクトルに対する動きベクトル予測子として、隣接ブロック（これは、以前にコーディングされたピクチャ中のコロケートブロックおよび／または異なるビューのピクチャ中の対応するブロックを含み得る）から利用可能な候補動きベクトル予測子の１つを選択し得る（２３６）。ビデオデコーダ３０は次いで、選択された動きベクトル予測子を使用して現在の動きベクトルを復号し得る（２３８）。たとえば、ＡＭＶＰを使用して、ビデオデコーダ３０は、現在の動きベクトルについての動きベクトル差分（ＭＶＤ）値を復号し、次いで、選択された動きベクトル予測子にＭＶＤ値を適用し得る。すなわち、ビデオデコーダ３０は、ＭＶＤ値のｘ成分を選択された動きベクトル予測子のｘ成分に加え、ＭＶＤ値のｙ成分を選択された動きベクトル予測子のｙ成分に加え得る。
【０４６５】
[0212]ビデオデコーダ３０の動き補償ユニット７２は次いで、参照ピクチャの１つを指す動きベクトルを使用して、現在のブロックを予測し得る（２４０）。すなわち、動きベクトル自体に加えて、ビデオデコーダ３０は、ＰＯＣ値および第２次元の識別値のような、動きベクトルが対応するブロックについての参照ピクチャ識別情報を復号し得る。このようにして、ビデオデコーダ３０は、ＰＯＣ値と第２次元の識別値とを使用して、動きベクトルが指す参照ピクチャを決定し得る。したがって、動き補償ユニット７２は、動きベクトルと、参照ピクチャ識別情報、すなわちＰＯＣ値および第２次元の識別値とを使用して、現在のブロックに対する予測ブロックを形成し得る。
【０４６６】
[0213]エントロピー復号ユニット７０はさらに、現在のブロックに対応する残差ブロックについての量子化残差係数をエントロピー復号し得る（２４２）。エントロピー復号ユニット７０、逆量子化ユニット７６、および逆変換ユニット７８はそれぞれ、量子化変換係数を逆走査、量子化、変換して、残差ブロックを再現し得る（２４４）。ビデオデコーダ３０の加算器８０は次いで、予測ブロックと残差ブロックとを組み合わせて（すなわち、ピクセルごとに加算して）、現在のブロックを再現し得る（２４６）。
【０４６７】
[0214]このようにして、図１２の方法は、ビデオデータの第１のピクチャについてのピクチャ順序カウント（ＰＯＣ）値を復号することと、第１のピクチャの第２次元ピクチャ識別子を復号することと、ベースビデオコーディング仕様（またはベースビデオコーディング仕様の拡張）に従って、第１のピクチャのＰＯＣ値および第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを復号することとを含む、方法の例を表す。加えて、方法は、短期参照ピクチャを指す、第２のピクチャの第１のブロックの第１の動きベクトルと、長期参照ピクチャを指す、第２のピクチャの第２のブロックの第２の動きベクトルとの間の動きベクトル予測をディセーブルにすることを含み得る。加えて、または代替的に、方法は、ビュー間参照ピクチャを指す、第２のピクチャの第１のブロックの第１の動きベクトルと、時間的参照ピクチャを指す、第２のピクチャの第２のブロックの第２の動きベクトルとの間の動きベクトル予測をディセーブルにすることを含み得る。
【０４６８】
[0215]例によっては、本明細書で説明された技法のうちいずれかの、いくつかの行為またはイベントは、異なる順番で実行される可能性があり、追加され、統合され、または完全に除外され得る（たとえば、すべての説明された行為またはイベントが、本技法の実施のために必要であるとは限らない）ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、連続的にではなく、同時に、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて実行され得る。
【０４６９】
[0216]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されてよく、あるいは、コンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を支援する、任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０４７０】
[0217]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。同様に、いかなる接続も適切にコンピュータ可読媒体と称される。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０４７１】
[0218]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明される技法の実装に好適な他の構造のいずれかを指す。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内で与えられてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、１つまたは複数の回路または論理要素中で完全に実装され得る。
【０４７２】
[0219]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されたが、それらのコンポーネント、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられてよく、または相互動作ハードウェアユニットの集合によって与えられてよい。
【０４７３】
[0220]様々な例が説明されてきた。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］  ビデオデータを復号する方法であって、
ビデオデータの第１のピクチャについてピクチャ順序カウント（ＰＯＣ）値を復号することと、
前記第１のピクチャについて第２次元ピクチャ識別子を復号することと、
ベースビデオコーディング仕様に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて第２のピクチャを復号することと、
を備える方法。
［２］  前記第２のピクチャの第１のブロックの第１の動きベクトルと、ここで前記第１の動きベクトルは短期参照ピクチャを参照し、
前記第２のピクチャの第２のブロックの第２の動きベクトルと、ここで前記第２の動きベクトルは長期参照ピクチャを参照し、
の間の動きベクトル予測をディセーブルにすることをさらに備える、［１］に記載の方法。
［３］  前記第２のピクチャをコーディングすることは、
前記ＰＯＣ値と前記第２次元ピクチャ識別子とを使用して前記第１のピクチャを識別することと、
前記第１のピクチャに対して前記第２のピクチャの少なくとも一部分を復号することと、
を備える、［１］に記載の方法。
［４］  前記第１のピクチャを識別することは、前記第２のピクチャのブロックについての動きベクトルの復号の間に前記第１のピクチャを識別することを備え、前記動きベクトルのコーディングは、発展型動きベクトル予測（ＡＭＶＰ）、時間的動きベクトル予測（ＴＭＶＰ）、およびマージモードのうちの少なくとも１つに従って前記動きベクトルをコーディングすることを備える、［３］に記載の方法。
［５］  前記第２のピクチャの第１の短期動きベクトルと前記第２のピクチャの第２の短期動きベクトルとの間の予測をイネーブルにすることと、
前記第１の短期動きベクトルによって参照される第１の短期参照ピクチャについてのＰＯＣ値と、前記第２の短期動きベクトルによって参照される第２の短期参照ピクチャについてのＰＯＣ値とに基づいて、前記第１の短期動きベクトルと前記第２の短期動きベクトルとのうちの少なくとも１つをスケーリングすることと、
をさらに備える、［１］に記載の方法。
［６］  前記ビュー成分がビュー間予測に使用されるかどうかに少なくとも一部基づいて、前記ビデオデータのビュー成分が長期参照ピクチャを備えるかどうかを示す値を復号することをさらに備える、［１］に記載の方法。
［７］  前記ベースビデオコーディング仕様への拡張に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて第３のピクチャを復号することをさらに備える、［１］に記載の方法。
［８］  前記第３のピクチャを復号する前に、前記第１のピクチャを含むすべてのビュー間参照ピクチャを、長期参照ピクチャとしてマークすることをさらに備える、［７］に記載の方法。
［９］  前記第３のピクチャについて前記ビュー間参照ピクチャの各々についての状態を、前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前に記憶することと、ここで前記状態は、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つを備え、前記ビュー間参照ピクチャは前記第１のピクチャを含み、
前記第２のピクチャをコーディングした後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々の新たな状態を設定することと、
をさらに備える、［８］に記載の方法。
［１０］  前記ベースビデオコーディング仕様は高効率ビデオコーディング（ＨＥＶＣ）ベース仕様を備え、前記ベースビデオコーディング仕様への前記拡張は、前記ＨＥＶＣベース仕様に対するスケーラブルビデオコーディング（ＳＶＣ）拡張と、前記ＨＥＶＣベース仕様に対するマルチビュービデオコーディング（ＭＶＣ）拡張とのうちの１つを備える、［７］に記載の方法。
［１１］  前記第２次元ピクチャ識別子は、前記第１のピクチャを含むビューのビュー識別子、前記第１のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第１のピクチャを含むスケーラブルビデオコーディング（ＳＶＣ）レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも１つを備える、［７］に記載の方法。
［１２］  前記第３のピクチャを復号した後、各ビュー間参照ピクチャを、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つとしてマークすることをさらに備える、［７］に記載の方法。
［１３］  ビュー間参照ピクチャを長期参照ピクチャとしてマークした後で、現在使用されていない新たなＰＯＣ値を前記ビュー間参照ピクチャに割り当てることと、
前記第２のピクチャを復号した後、前記ビュー間参照ピクチャについての元のＰＯＣ値をリストアすることと、
をさらに備える、［１２］に記載の方法。
［１４］  前記元のＰＯＣ値は、前記第１のピクチャの前記ＰＯＣ値を備える、［１３］に記載の方法。
［１５］  ビデオデータを符号化する方法であって、
ビデオデータの第１のピクチャについてピクチャ順序カウント（ＰＯＣ）値を符号化することと、
前記第１のピクチャについて第２次元ピクチャ識別子を符号化することと、
ベースビデオコーディング仕様に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて第２のピクチャを符号化することと、
を備える方法。
［１６］  前記第２のピクチャの第１のブロックの第１の動きベクトルと、ここで前記第１の動きベクトルは短期参照ピクチャを参照し、
前記第２のピクチャの第２のブロックの第２の動きベクトルと、ここで前記第２の動きベクトルは長期参照ピクチャを参照し、
の間の動きベクトル予測をディセーブルにすることをさらに備える、［１５］に記載の方法。
［１７］  前記ＰＯＣ値と前記第２次元ピクチャ識別子とを使用して前記第１のピクチャを識別することと、
前記第１のピクチャに対して前記第２のピクチャの少なくとも一部分をコーディングすることと、
をさらに備える、［１５］に記載の方法。
［１８］  前記第１のピクチャを識別することは、前記第２のピクチャのブロックについての動きベクトルのコーディングの間に前記第１のピクチャを識別することを備え、前記動きベクトルのコーディングは、発展型動きベクトル予測（ＡＭＶＰ）、時間的動きベクトル予測（ＴＭＶＰ）、およびマージモードのうちの少なくとも１つに従って前記動きベクトルをコーディングすることを備える、［１７］に記載の方法。
［１９］  前記第２のピクチャの第１の短期動きベクトルと前記第２のピクチャの第２の短期動きベクトルとの間の予測をイネーブルにすることと、
前記第１の短期動きベクトルによって参照される第１の短期参照ピクチャについてのＰＯＣ値と、前記第２の短期動きベクトルによって参照される第２の短期参照ピクチャについてのＰＯＣ値とに基づいて、前記第１の短期動きベクトルと前記第２の短期動きベクトルとのうちの少なくとも１つをスケーリングすることと、
をさらに備える、［１５］に記載の方法。
［２０］  前記第２次元ピクチャ識別子は、前記第１のピクチャを含むビューのビュー識別子、前記第１のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第１のピクチャを含むスケーラブルビデオコーディング（ＳＶＣ）レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも１つを備える、［１５］に記載の方法。
［２１］  前記ビュー成分がビュー間予測に使用されるかどうかに少なくとも一部基づいて、前記ビデオデータのビュー成分が長期参照ピクチャを備えるかどうかを示す値をコーディングすることをさらに備える、［１５］に記載の方法。
［２２］  前記ベースビデオコーディング仕様への拡張に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて第３のピクチャを符号化することをさらに備える、［１５］に記載の方法。
［２３］  前記第３のピクチャを符号化する前に、すべてのビュー間参照ピクチャを、長期参照ピクチャとしてマークすることをさらに備える、［２２］に記載の方法。
［２４］  前記ビュー間参照ピクチャの各々の状態を、前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前に記憶することと、ここで前記状態は、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つを備え、
前記第２のピクチャをコーディングした後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々の新たな状態を設定することと、
をさらに備える、［２３］に記載の方法。
［２５］  前記ベースビデオコーディング仕様は高効率ビデオコーディング（ＨＥＶＣ）ベース仕様を備え、前記ベースビデオコーディング仕様への前記拡張は、前記ＨＥＶＣベース仕様に対するスケーラブルビデオコーディング（ＳＶＣ）拡張と、前記ＨＥＶＣベース仕様に対するマルチビュービデオコーディング（ＭＶＣ）拡張との１つを備える、［２２］に記載の方法。
［２６］  前記第３のピクチャをコーディングした後、各ビュー間参照ピクチャを、長期参照ピクチャ、短期参照ピクチャ、および参照に使用されない、のうちの１つとしてマークすることをさらに備える、［１５］に記載の方法。
［２７］  ビュー間参照ピクチャを長期参照ピクチャとしてマークした後、現在使用されていない新たなＰＯＣ値を前記ビュー間参照ピクチャに割り当てることと、
前記第２のピクチャをコーディングした後、前記ビュー間参照ピクチャについての元のＰＯＣ値をリストアすることと、
をさらに備える、［２６］に記載の方法。
［２８］  前記元のＰＯＣ値は、前記第２のピクチャの前記ＰＯＣ値を備える、［２７］に記載の方法。
［２９］  ビデオデータを復号するためのデバイスであって、
ビデオデータの第１のピクチャについてピクチャ順序カウント（ＰＯＣ）値を復号し、前記第１のピクチャについて第２次元ピクチャ識別子を復号し、ベースビデオコーディング仕様に従って、前記第１のピクチャの前記ＰＯＣ値および前記第２次元ピクチャ識別子に少なくとも一部基づいて、第２のピクチャを復号するように構成されるビデオデコーダを備える、デバイス。
［３０］  前記ビデオデコーダは、
前記第２のピクチャの第１のブロックの第１の動きベクトルと、ここで前記第１の動きベクトルは短期参照ピクチャを参照し、
前記第２のピクチャの第２のブロックの第２の動きベクトルと、ここで前記第２の動きベクトルは長期参照ピクチャを参照し、
の間の動きベクトル予測をディセーブルにするように構成される、［２９］に記載のデバイス。
［３１］  前記ビデオデコーダは、前記ＰＯＣ値と前記第２次元ピクチャ識別子とを使用して前記第１のピクチャを識別し、前記第１のピクチャに対して前記第２のピクチャの少なくとも一部分を復号するように構成される、［２９］に記載のデバイス。
［３２］  前記ビデオデコーダは、前記第２のピクチャのブロックについての動きベクトルのコーディングの間に前記第１のピクチャを識別するように構成され、前記ビデオデコーダは、発展型動きベクトル予測（ＡＭＶＰ）、時間的動きベクトル予測（ＴＭＶＰ）、およびマージモードのうちの少なくとも１つに従って前記動きベクトルを復号するように構成される、［３１］に記載のデバイス。
［３３］  前記ビデオデコーダは、前記第２のピクチャの第１の短期動きベクトルと前記第２のピクチャの第２の短期動きベクトルとの間の予測をイネーブルにし、前記第１の短期動きベクトルによって参照される第１の短期参照ピクチャについてのＰＯＣ値と、前記第２の短期動きベクトルによって参照される第２の短期参照ピクチャについてのＰＯＣ値とに基づいて、前記第１の短期動きベクトルと前記第２の短期動きベクトルとのうちの少なくとも１つをスケーリングするように構成される、［２９］に記載のデバイス。
［３４］  前記第２次元ピクチャ識別子は、前記第１のピクチャを含むビューのビュー識別子、前記第１のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第１のピクチャを含むスケーラブルビデオコーディング（ＳＶＣ）レイヤのレイヤ識別子、および一般的なレイヤ識別子の少なくとも１つを備える、［２９］に記載のデバイス。
［３５］  前記ビデオデコーダは、前記ビュー成分がビュー間予測に使用されるかどうかに少なくとも一部基づいて、前記ビデオデータのビュー成分が長期参照ピクチャを備えるかどうかを示す値を復号するように構成される、［２９］に記載のデバイス。
［３６］  前記ビデオデコーダはさらに、前記ベースビデオコーディング仕様への拡張に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて第３のピクチャを復号するように構成される、［２９］に記載のデバイス。
［３７］  前記ビデオデコーダは、
前記第３のピクチャを復号する前に、前記第１のピクチャを含む前記第３のピクチャについてのすべてのビュー間参照ピクチャを長期参照ピクチャとしてマークし、
前記ビュー間参照ピクチャの各々の状態を記憶し、ここで前記状態は、長期参照ピクチャ、短期参照ピクチャ、および前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前は参照に使用されない、のうちの１つを備え、
前記第３のピクチャを復号した後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々についての新たな状態を設定するように構成される、［３６］に記載のデバイス。
［３８］  前記ビデオデコーダはさらに、
前記第１のピクチャを含む前記第３のピクチャについての各ビュー間参照ピクチャを、長期参照ピクチャ、短期参照ピクチャ、および前記第３のピクチャを復号した後は参照に使用されない、のうちの１つとしてマークし、
ビュー間参照ピクチャを長期参照ピクチャとしてマークした後、現在使用されていない新たなＰＯＣ値を、前記ビュー間参照ピクチャの各々に割り当て、
前記第２のピクチャをコーディングした後、前記ビュー間参照ピクチャについての元のＰＯＣ値をリストアするように構成される、［３６］に記載のデバイス。
［３９］  集積回路と、
マイクロプロセッサと、
前記ビデオデコーダを含むワイヤレス通信デバイスと、
のうちの少なくとも１つを備える、［２９］に記載のデバイス。
［４０］  ビデオデータを符号化するためのデバイスであって、
ビデオデータの第１のピクチャについてピクチャ順序カウント（ＰＯＣ）値を符号化し、前記第１のピクチャについて第２次元ピクチャ識別子を符号化し、ベースビデオコーディング仕様に従って、前記第１のピクチャの前記ＰＯＣ値および前記第２次元ピクチャ識別子とに少なくとも一部基づいて、第２のピクチャを符号化するように構成されるビデオエンコーダを備える、デバイス。
［４１］  前記ビデオエンコーダは、
前記第２のピクチャの第１のブロックの第１の動きベクトルと、ここで前記第１の動きベクトルは短期参照ピクチャを参照し、
前記第２のピクチャの第２のブロックの第２の動きベクトルと、ここで前記第２の動きベクトルは長期参照ピクチャを参照し、
の間の動きベクトル予測をディセーブルにするように構成される、［４０］に記載のデバイス。
［４２］  前記ビデオエンコーダは、前記ＰＯＣ値と前記第２次元ピクチャ識別子とを使用して前記第１のピクチャを識別し、前記第１のピクチャに対して前記第２のピクチャの少なくとも一部分を符号化するように構成される、［４０］に記載のデバイス。
［４３］  前記ビデオエンコーダは、前記第２のピクチャのブロックについての動きベクトルのコーディングの間に前記第１のピクチャを識別するように構成され、前記ビデオエンコーダは、発展型動きベクトル予測（ＡＭＶＰ）、時間的動きベクトル予測（ＴＭＶＰ）、およびマージモードのうちの少なくとも１つに従って前記動きベクトルを符号化するように構成される、［４２］に記載のデバイス。
［４４］  前記ビデオエンコーダは、前記第２のピクチャの第１の短期動きベクトルと前記第２のピクチャの第２の短期動きベクトルとの間の予測をイネーブルにし、前記第１の短期動きベクトルによって参照される第１の短期参照ピクチャについてのＰＯＣ値と、前記第２の短期動きベクトルによって参照される第２の短期参照ピクチャについてのＰＯＣ値とに基づいて、前記第１の短期動きベクトルと前記第２の短期動きベクトルとのうちの少なくとも１つをスケーリングするように構成される、［４０］に記載のデバイス。
［４５］  前記第２次元ピクチャ識別子は、前記第１のピクチャを含むビューのビュー識別子、前記第１のピクチャを含む前記ビューのビュー順序インデックス、前記ビュー順序インデックスと深度フラグとの組合せ、前記第１のピクチャを含むスケーラブルビデオコーディング（ＳＶＣ）レイヤのレイヤ識別子、および一般的なレイヤ識別子のうちの少なくとも１つを備える、［４０］に記載のデバイス。
［４６］  前記ビデオエンコーダは、前記ビュー成分がビュー間予測に使用されるかどうかに少なくとも一部基づいて、前記ビデオデータのビュー成分が長期参照ピクチャを備えるかどうかを示す値を符号化するように構成される、［４０］に記載のデバイス。
［４７］  前記ビデオエンコーダは、さらに、前記ベースビデオコーディング仕様への拡張に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて第３のピクチャを符号化するように構成される、［４０］に記載のデバイス。
［４８］  前記ビデオエンコーダは、
前記第３のピクチャを符号化する前に、前記第１のピクチャを含む前記第３のピクチャについてのすべてのビュー間参照ピクチャを長期参照ピクチャとしてマークし、
前記ビュー間参照ピクチャの各々の状態を記憶し、ここで前記状態は、長期参照ピクチャ、短期参照ピクチャ、および前記ビュー間参照ピクチャを長期参照ピクチャとしてマークする前は参照に使用されない、のうちの１つを備え、
前記第３のピクチャを符号化した後、前記記憶された状態に基づいて、前記ビュー間参照ピクチャの各々について新たな状態を設定するように構成される、［４７］に記載のデバイス。
［４９］  前記ビデオエンコーダは、さらに、
前記第１のピクチャを含む前記第３のピクチャについての各ビュー間参照ピクチャを、長期参照ピクチャ、短期参照ピクチャ、および前記第３のピクチャを符号化した後は参照に使用されない、のうちの１つとしてマークし、
ビュー間参照ピクチャを長期参照ピクチャとして標識した後、現在使用されていない新たなＰＯＣ値を前記ビュー間参照ピクチャの各々に割り当て、
前記第２のピクチャをコーディングした後、前記ビュー間参照ピクチャについての元のＰＯＣ値をリストアするように構成される、［４７］に記載のデバイス。
［５０］  ビデオデータを符号化するためのデバイスであって、
ビデオデータの第１のピクチャについてピクチャ順序カウント（ＰＯＣ）値を符号化する手段と、
前記第１のピクチャについて第２次元ピクチャ識別子を符号化する手段と、
ベースビデオコーディング仕様に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて第２のピクチャを符号化する手段と、
を備えるデバイス。
［５１］  命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、プロセッサに、
ビデオデータの第１のピクチャについてピクチャ順序カウント（ＰＯＣ）値を復号させ、
前記第１のピクチャについて第２次元ピクチャ識別子を復号させ、
ベースビデオコーディング仕様に従って、前記第１のピクチャの前記ＰＯＣ値と前記第２次元ピクチャ識別子とに少なくとも一部基づいて第２のピクチャを復号させる、
コンピュータ可読記憶媒体。
【図１】
0006258288.tif 000002
【図２】
0006258288.tif 000003
【図３】
0006258288.tif 000004
【図４】
0006258288.tif 000005
【図５】
0006258288.tif 000006
【図６】
0006258288.tif 000007
【図７】
0006258288.tif 000008
【図８】
0006258288.tif 000009
【図９】
0006258288.tif 000010
【図１０】
0006258288.tif 000011
【図１１】
0006258288.tif 000012
【図１２】
0006258288.tif 000013