(57)【特許請求の範囲】
【請求項１】
イントラブロックコピーモードを用いてビデオデータを復号する方法において、
カレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含めることと、前記リファレンスピクチャは前記カレントピクチャと異なる、
前記リファレンスピクチャのコロケートされたブロックを決定することと、前記コロケートされたブロックは前記カレントピクチャのカレントブロックとコロケートされる、
前記コロケートされたブロックから時間動きベクトル予測子を導出することと、
前記時間動きベクトル予測子がサブピクセル精度を有すると決定することと、
サブピクセル精度を有すると決定された前記時間動きベクトル予測子を右シフトすることと、
前記右シフトされた時間動きベクトル予測子に基づいて、前記カレントピクチャ内の予測ブロックを決定することと、
残差ブロックのサンプルと前記予測ブロックの対応するサンプルとを合計することにより復号されたビデオブロックを形成することと、
を備えた方法。
【請求項２】
前記リファレンスピクチャリストは第１のリファレンスピクチャリストであり、前記方法はさらに、イントラブロックコピーモードが前記カレントピクチャのＢスライスに関してイネーブルされることに基づいて、前記Ｂスライスに関する前記カレントピクチャを含む第２のリファレンスピクチャリストを構築することを備えた、または、
前記カレントピクチャは第１のピクチャであり、前記リファレンスピクチャリストは第１のリファレンスピクチャリストであり、前記方法はさらに、
イントラブロックコピーが第２のピクチャに関してイネーブルされるかどうかを示すシンタックス要素をビットストリームから取得することと、
前記第２のピクチャのＩスライスに関する復号プロセスの一部として、イントラブロックコピーが前記Ｉスライスに関してイネーブルされる前記シンタックス要素に基づいた決定に応答して、第２のリファレンスピクチャリストを構築することと、前記第２のリファレンスピクチャリストは前記第２のピクチャを含む、
を備えた、または、
前記方法はさらに、イントラブロックコピーモード符号化ブロックに関する少なくとも１つの動きベクトル候補とインター予測モード符号化ブロックに関する少なくとも１つの候補を含む動きベクトル候補リストを生成することを備えた、請求項１の方法。
【請求項３】
前記カレントピクチャと前記リファレンスピクチャを前記リファレンスピクチャリストに含めることは、
前記リファレンスピクチャリストにおいて、前記リファレンスピクチャリスト内のロングタームピクチャの前に前記カレントピクチャを含めることと、
前記リファレンスピクチャリストにおいて、スライスがＩスライスか、Ｐスライスか、Ｂスライスかに基づいて前記リファレンスピクチャリスト内のロケーションに前記カレントピクチャを含めることと、
の１つを備えた、請求項１の方法。
【請求項４】
イントラブロックコピーモードを用いてビデオデータを符号化する方法において、
カレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含めることと、前記リファレンスピクチャは前記カレントピクチャと異なる、
前記リファレンスピクチャのコロケートされたブロックを決定することと、前記コロケートされたブロックは前記カレントピクチャのカレントブロックとコロケートされる、
前記コロケートされたブロックから時間動きベクトル予測子を導出することと、
前記時間動きベクトル予測子がサブピクセル精度を有すると決定することと、
サブピクセル精度を有すると決定された前記時間動きベクトル予測子を右シフトすることと、
前記右シフトされた時間動きベクトル予測子に基づいて、前記カレントピクチャ内の予測ブロックを決定することと、
前記右シフトされた時間動きベクトル予測子に基づいて決定された前記予測ブロックと前記カレントブロックとの間の差分を表す残差データを生成することと、
を備えた方法。
【請求項５】
前記リファレンスピクチャリストは第１のリファレンスピクチャリストであり、前記方法はさらに、イントラブロックコピーモードが前記カレントピクチャのＢスライスに関してイネーブルされることに基づいて、前記Ｂスライスに関する前記カレントピクチャを含む第２のリファレンスピクチャリストを構築することを備えた、または、
前記カレントピクチャは第１のピクチャであり、前記リファレンスピクチャリストは第１のリファレンスピクチャリストであり、前記方法はさらに、第２のピクチャのＩスライスに関してイントラブロックコピーがイネーブルされるとき前記Ｉスライスに関して第２のリファレンスピクチャリストを構築することを備え、前記第２のリファレンスピクチャリストは前記第２のピクチャを含む、または、
前記方法はさらに、イントラブロックコピーモード符号化ブロックに関する少なくとも１つの動きベクトル候補とインター予測モード符号化ブロックに関する少なくとも１つの候補を含む動きベクトル候補リストを生成することを備えた、請求項４の方法。
【請求項６】
前記カレントピクチャと前記リファレンスピクチャを前記リファレンスピクチャリストに含めることは、
前記リファレンスピクチャリストにおいて、前記リファレンスピクチャリスト内のロングタームピクチャの前に前記カレントピクチャを含めることと、
前記リファレンスピクチャリストにおいて、スライスがＩスライスか、Ｐスライスか、Ｂスライスかに基づいて前記リファレンスピクチャリスト内のロケーションに前記カレントピクチャを含めることと、
の１つを備えた、請求項４の方法。
【請求項７】
イントラブロックコピーモードを用いてビデオデータを復号するデバイスにおいて、
リファレンスピクチャのビデオデータを記憶するように構成されたメモリと、
カレントピクチャと前記リファレンスピクチャをリファレンスピクチャリストに含め、前記リファレンスピクチャは前記カレントピクチャと異なる、
前記リファレンスピクチャのコロケートされたブロックを決定し、前記コロケートされたブロックは前記カレントピクチャのカレントブロックとコロケートされる、
前記コロケートされたブロックから時間動きベクトル予測子を導出し、
前記時間動きベクトル予測子がサブピクセル精度を有すると決定し、
サブピクセル精度を有すると決定された前記時間動きベクトル予測子を右シフトし、    前記右シフトされた時間動きベクトル予測子に基づいて、前記カレントピクチャ内の予測ブロックを決定し、
残差ブロックのサンプルと前記予測ブロックの対応するサンプルとを合計することにより復号されたビデオブロックを形成する、
ように構成された１つまたは複数のプロセッサと、
を備えたデバイス。
【請求項８】
前記リファレンスピクチャリストは第１のリファレンスピクチャリストであり、前記１つまたは複数のプロセッサは、イントラブロックコピーモードが前記カレントピクチャのＢスライスに関してイネーブルされることに基づいて、前記Ｂスライスに関する前記カレントピクチャを含む第２のリファレンスピクチャリストを構築するようにさらに構成される、または、
前記カレントピクチャは第１のピクチャであり、前記リファレンスピクチャリストは第１のリファレンスピクチャリストであり、前記１つまたは複数のプロセッサは、
イントラブロックコピーが第２のピクチャに関してイネーブルされるかどうかを示すシンタックス要素をビットストリームから取得し、
前記第２のピクチャのＩスライスに関する復号プロセスの一部として、イントラブロックコピーが前記Ｉスライスに関してイネーブルされる前記シンタックス要素に基づいた決定に応答して、第２のリファレンスピクチャリストを構築するようにさらに構成され、前記第２のリファレンスピクチャリストは前記第２のピクチャを含む、または、
前記１つまたは複数のプロセッサは、イントラブロックコピーモード符号化ブロックに関する少なくとも１つの動きベクトル候補とインター予測モード符号化ブロックに関する少なくとも１つの候補を含む動きベクトル候補リストを生成するようにさらに構成される、請求項７のデバイス。
【請求項９】
前記１つまたは複数のプロセッサは、
前記リファレンスピクチャリストにおいて、前記リファレンスピクチャリスト内のロングタームピクチャの前に前記カレントピクチャを含めること、
前記リファレンスピクチャリストにおいて、スライスがＩスライスか、Ｐスライスか、Ｂスライスかに基づいて前記リファレンスピクチャリスト内のロケーションに前記カレントピクチャを含めること
の１つを実行するように構成される、請求項７のデバイス。
【請求項１０】
前記デバイスは、
集積回路、
マイクロプロセッサ、または
前記カレントピクチャを表示するように構成されたディスプレイ、または前記カレントピクチャを撮像するように構成されたカメラの１つまたは両方を備えたワイヤレス通信デバイス、
の少なくとも１つを備えた、または、
前記デバイスは、復号されたビデオデータを表示するように構成されたディスプレイをさらに備えた、または、
前記１つまたは複数のプロセッサは、前記ビデオデータを符号化するようにさらに構成され、前記デバイスは、前記ビデオデータを撮像するように構成されたカメラをさらに備えた、請求項７のデバイス。
【請求項１１】
イントラブロックコピーモードを用いてビデオデータを符号化するためのデバイスにおいて、
リファレンスピクチャのビデオデータを記憶するように構成されたメモリと、
カレントピクチャと前記リファレンスピクチャをリファレンスピクチャリストに含め、前記リファレンスピクチャは前記カレントピクチャと異なる、
前記リファレンスピクチャのコロケートされたブロックを決定し、前記コロケートされたブロックは前記カレントピクチャのカレントブロックとコロケートされる、
前記コロケートされたブロックから時間動きベクトル予測子を導出し、
前記時間動きベクトル予測子がサブピクセル精度を有すると決定し、
サブピクセル精度を有すると決定された前記時間動きベクトル予測子を右シフトし、    前記右シフトされた時間動きベクトル予測子に基づいて、前記カレントピクチャ内の予測ブロックを決定し、
前記右シフトされた時間動きベクトル予測子に基づいて決定された前記予測ブロックと前記カレントブロックとの間の差分を表す残差データを生成する、
ように構成された１つまたは複数のプロセッサと、
を備えたデバイス。
【請求項１２】
前記リファレンスピクチャリストは第１のリファレンスピクチャリストであり、前記１つまたは複数のプロセッサは、イントラブロックコピーモードが前記カレントピクチャのＢスライスに関してイネーブルされることに基づいて、前記Ｂスライスに関する前記カレントピクチャを含む第２のリファレンスピクチャリストを構築するようにさらに構成された、または、
前記カレントピクチャは第１のピクチャであり、前記リファレンスピクチャリストは第１のリファレンスピクチャリストであり、前記１つまたは複数のプロセッサは、第２のピクチャのＩスライスに関してイントラブロックコピーがイネーブルされるとき前記Ｉスライスに関して第２のリファレンスピクチャリストを構築するようにさらに構成され、前記第２のリファレンスピクチャリストは前記第２のピクチャを含む、または、
前記１つまたは複数のプロセッサは、イントラブロックコピーモード符号化ブロックに関する少なくとも１つの動きベクトル候補とインター予測モード符号化ブロックに関する少なくとも１つの候補を含む動きベクトル候補リストを生成するようにさらに構成される、請求項１１のデバイス。
【請求項１３】
前記１つまたは複数のプロセッサは、
前記リファレンスピクチャリストにおいて、前記リファレンスピクチャリスト内のロングタームピクチャの前に前記カレントピクチャを含めること、
前記リファレンスピクチャリストにおいて、スライスがＩスライスか、Ｐスライスか、Ｂスライスかに基づいて前記リファレンスピクチャリスト内のロケーションに前記カレントピクチャを含めること、
の１つを実行するように構成される、請求項１１のデバイス。
【請求項１４】
前記デバイスは、
集積回路、
マイクロプロセッサ、または
前記カレントピクチャを表示するように構成されたディスプレイ、または前記カレントピクチャを撮像するように構成されたカメラの１つまたは両方を備えたワイヤレス通信デバイス、
の少なくとも１つを備えた、または、
前記デバイスは、復号されたビデオデータを表示するように構成されたディスプレイをさらに備えた、または、
前記１つまたは複数のプロセッサは、ビデオデータを復号するようにさらに構成された、請求項１１のデバイス。
【請求項１５】
実行されると、ビデオデータをコード化するように構成されたコンピューティングデバイスの１つまたは複数のプロセッサに、
カレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含ませ、前記リファレンスピクチャは前記カレントピクチャと異なる、
前記リファレンスピクチャのコロケートされたブロックを決定させ、前記コロケートされたブロックは前記カレントピクチャのカレントブロックとコロケートされる、
前記コロケートされたブロックから時間動きベクトル予測子を導出させ、
前記時間動きベクトル予測子がサブピクセル精度を有すると決定させ、
サブピクセル精度を有すると決定された前記時間動きベクトル予測子を右シフトさせ、  前記右シフトされた時間動きベクトル予測子に基づいて、前記カレントピクチャ内の予測ブロックを決定させる、
命令を記憶した、非一時的コンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
[0001]本願は、２０１４年８月２２日に出願された米国仮出願番号第62/040,985号の利益を主張し、その全体において参照によりここに組み込まれる。
【技術分野】
【０００２】
[0002]本開示は、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレイヤ、ビデオゲームデバイス、ビデオゲームコンソール、いわゆる「スマートフォン」であるセルラ式または衛星無線電話、ビデオテレビ会議デバイス、ビデオストリーミングデバイス、等を含む、幅広い範囲のデバイスに組み込まれることができる。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ Ｈ.２６３、ＩＴＵ−Ｔ Ｈ.２６４／ＭＰＥＧ−４、Ｐａｒｔ １０、アドバンスドビデオコーディング（ＡＶＣ）、現在開発中の高能率映像コーディング（ＨＥＶＣ）規格、そのような規格の延長によって定義される規格に説明されているもののような、ビデオ圧縮技術をインプリメントする。ビデオデバイスは、そのようなビデオ圧縮技術をインプリメントすることによって、デジタルビデオ情報をより効率よく送信、受信、符号化、復号、および／または記憶することができる。
【０００４】
[0004]ビデオ圧縮技術は、ビデオシーケンスに内在する冗長性を低減または除去するために、空間（イントラピクチャ）予測および／または時間（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングに関して、ビデオスライス（例えば、ビデオフレームまたはビデオフレームの一部）は、ビデオブロックに区分されることができ、それはツリーブロック、符号化ユニット（ＣＵ）および／または符号化ノードとも称され得る。ピクチャのイントラコード化（Ｉ）スライス内におけるビデオブロックは、同じピクチャ内における近隣のブロック内のリファレンスサンプルに関する空間予測を用いて符号化される。ピクチャのインター符号化（ＰまたはＢ）スライス内におけるビデオブロックは、同じピクチャ内における近隣のブロック内のリファレンスサンプルに関する空間予測、または他のリファレンスピクチャ内におけるリファレンスサンプルに関する時間予測を使用することができる。ピクチャはフレームと称されることができ、およびリファレンスピクチャはリファレンスフレームと称され得る。
【０００５】
[0005]空間または時間予測は、現在のブロックを符号化するための予測ブロックの使用を生ずる。残差データは、符号化されるべきオリジナルブロックと予測ブロックとの間のピクセル差分を表す。例えば、残差データのブロックの各それぞれのサンプルはオリジナルブロックのそれぞれのサンプルと予測ブロックの対応するそれぞれのサンプルとの間の差分に等しくすることができる。インター符号化ブロックは予測ブロックを形成する参照サンプルのブロックを指し示す動きベクトルに従って符号化される。イントラ符号化ブロックはイントラ符号化モードおよび残差データに従って符号化される。さらなる圧縮のために、残差データはピクセルドメインから変換ドメインに変換されることができ、残差変換係数を生じることができ、つぎに、それは、量子化されることができる。量子化された変換係数は、最初に２次元アレイにアレンジされ、変換係数の一次元ベクトルを生成するためにスキャンされることができ、さらにいっそう圧縮するためにエントロピー符号化が適用されることができる。
【発明の概要】
【０００６】
[0006]一般に、本開示は、イントラブロックコピー予測に関する技術を記載する。特に、この開示は、統合されたイントラブロック(intra-block)およびインター予測スキーム(inter-prediction scheme)を記載する。たとえば、ビデオコーダは、コロケートブロックがカレントピクチャのカレントブロックとコロケートされているリファレンスピクチャのコロケートブロックを決定することにより、カレントピクチャのビデオデータのカレントブロックを復号または符号化することができる。ビデオコーダはコロケートブロックから時間動きベクトル予測を導出することができ時間動きベクトル予測がサブピクセル予測を有することを決定することができる。時間動きベクトル予測がサブピクセル精度を有すると決定すると、ビデオコーダは時間動きベクトル予測子を右シフトすることができる。時間動きベクトル予測子を右シフトすることは、時間動きベクトルのサブピクセル精度を表す最下位ビット（複数の場合もある）を除去することができ、時間動きベクトルを、サブピクセルレベルの精度を有することから整数ピクセルレベルの精度を有することへ効果的に変換する。イントラブロックコピーモードは整数レベルピクセル精度を使用するので、時間動きベクトル予測子(predictor)を変換することは、符号化効率を増大させることができる。これは、さもなければ、ビデオコーダは、サブピクセル精度によりイントラブロックコピーモードに関して使用不可または非効率であり得る時間動きベクトルを使用することができるためである。時間動きベクトル予測子を右シフトした後、ビデオコーダは、右シフトした時間動きベクトル予測子に基づいて、カレントブロック内の予測ブロックを決定することができる。
【０００７】
[0007]一例において、この開示はイントラブロックコピーモードを用いたビデオデータを復号する方法において、リファレンスピクチャリストにカレントピクチャとリファレンスピクチャを含めることと、ここにおいて、リファレンスピクチャはカレントピクチャとは異なる、リファレンスピクチャのコロケートブロックを決定することと、ここにおいてコロケートブロックはカレントピクチャのカレントブロックとコロケートされる、コロケートされたブロックから時間動きベクトル予測子を導出することと、時間動きベクトル予測子がサブピクセル精度を有すると決定することと、サブピクセル精度を有すると決定された時間動きベクトル予測子を右シフトすることと、右シフトされた時間動きベクトル予測子に基づいて、カレントピクチャ内の予測ブロックを決定することと、および残差ブロックのサンプルを予測ブロックの対応するサンプルと合計することにより復号されたビデオブロックを形成することと、を備える方法を記載する。
【０００８】
[0008]他の例において、この開示は、イントラブロックコピーモードを用いてビデオデータを符号化する方法において、カレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含めることと、ここにおいてリファレンスピクチャはカレントピクチャと異なる、リファレンスピクチャのコロケートされたブロックを決定することと、ここにおいてコロケートされたブロックはカレントピクチャのカレントブロックとコロケートされる、コロケートされたブロックから時間動きベクトル予測子を導出することと、時間動きベクトル予測子がサブピクセル精度を有することを決定することと、サブピクセル精度を有すると決定された時間動きベクトル予測子を右シフトすることと、右シフトされた時間動きベクトル予測子に基づいてカレントピクチャ内の予測ブロックを決定することと、および右シフトされた時間動きベクトルに基づいて決定された予測ブロックとカレントブロックとの間の差分を表す残差データを生成することと、を備えた方法を記載する。
【０００９】
[0009]他の例において、この開示は、イントラブロックコピーモードを用いてビデオデータをコード化するためのデバイスにおいて、ピクチャのビデオデータを記憶するように構成されたメモリと、カレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含ませ、ここにおいて、リファレンスピクチャはカレントピクチャと異なる、リファレンスピクチャのコロケートされたブロックを決定することと、ここにおいてコロケートされたブロックは、カレントピクチャのカレントブロックとコロケートされる、コロケートされたブロックから時間動きベクトル予測子を導出し、時間動きベクトル予測子がサブピクセル精度を有することを決定し、サブピクセル精度を有すると決定された時間動きベクトル予測子を右シフトし、右シフトされた時間動きベクトル予測子に基づいて、カレントピクチャ内の予測ブロックを決定する、ように構成された１つまたは複数のプロセッサを備えた、デバイスを記載する。
【００１０】
[0010]他の例において、この開示は、イントラブロックコピーモードを用いてビデオデータを復号するデバイスにおいて、リファレンスピクチャのビデオデータを記憶するように構成されたメモリと、カレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含め、ここにおいて、リファレンスピクチャはカレントピクチャと異なる、リファレンスピクチャのコロケートされたブロックを決定し、ここにおいてコロケートされたブロックはカレントピクチャのカレントブロックとコロケートされる、コロケートされたブロックから時間動きベクトル予測子を導出し、時間動きベクトル予測子がサブピクセル精度を有すると決定し、サブピクセル精度を有すると決定された時間動きベクトル予測子を右シフトし、右シフトされた時間動きベクトル予測子に基づいて、カレントピクチャ内の予測ブロックを決定し、残差ブロックのサンプルと予測ブロックの対応するサンプルを合計することにより復号されたビデオブロックを形成する、ように構成された１つまたは複数のプロセッサと、を備えたデバイスを開示する。
【００１１】
[0011]他の例において、この開示は、イントラブロックコピーモードを用いてビデオデータを符号化するデバイスにおいて、リファレンスピクチャのビデオデータを記憶するように構成されたメモリと、カレントピクチャとリファレンスピクチャをリファレンスピクチャリスト内に含め、ここにおいて、リファレンスピクチャはカレントピクチャと異なる、リファレンスピクチャのコロケートされたブロックを決定し、ここにおいてコロケートされたブロックはカレントピクチャのカレントブロックとコロケートされる、コロケートされたブロックから時間動きベクトル予測子を導出し、時間動きベクトル予測子がサブピクセル精度を有すると決定し、サブピクセル精度を有すると決定された時間動きベクトル予測子を右シフトし、右シフトされた時間動きベクトル予測子に基づいてカレントピクチャ内の予測ブロックを決定し、右シフトされた時間動きベクトル予測子に基づいて決定された予測ブロックとカレントブロックとの差分を表す残差データを生成する、ように構成された１つまたは複数のプロセッサと、を備えたデバイスを記載する。
【００１２】
[0012]他の例において、この開示は、イントラブロックコピーモードを用いてビデオデータをコード化する装置において、カレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含める手段と、ここにおいて、リファレンスピクチャはカレントピクチャと異なる、リファレンスピクチャのコロケートされたブロックを決定する手段と、ここにおいてコロケートされたブロックはカレントピクチャのカレントブロックとコロケートされる、コロケートされたブロックから時間動きベクトル予測子を導出する手段と、時間動きベクトル予測子がサブピクセル精度を有すると決定する手段と、サブピクセル精度を有すると決定された時間動きベクトル予測子を右シフトする手段と、右シフトされた時間動きベクトル予測子に基づいてカレントピクチャ内の予測ブロックを決定する手段と、を備えた装置を記載する。
【００１３】
[0013]他の例において、この開示は、実行されると、コンピューティングデバイスの１つまたは複数のプロセッサに、カレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含ませ、ここにおいてリファレンスピクチャはカレントピクチャと異なる、リファレンスピクチャのコロケートされたブロックを決定させ、ここにおいて、コロケートされたブロックはカレントピクチャのカレントブロックとコロケートされる、コロケートされたブロックから時間動きベクトル予測子を導出させ、時間動きベクトル予測子がサブピクセル精度を有すると決定させ、サブピクセル精度を有すると決定された時間動きベクトル予測子を右シフトさせ、右シフトされた時間動きベクトル予測子に基づいてカレントピクチャ内の予測ブロックを決定させる、命令が記憶された非一時的コンピュータ可読記憶媒体を記載する。
【００１４】
[0014]１つまたは複数の例の詳細は添付の図面と下記の記述において説明される。他の特徴、目的、および利点は、その説明、図面、および請求項から明らかになるだろう。
【図面の簡単な説明】
【００１５】
【図１】[0015]本開示に記載された技術を利用することができる例示ビデオ符号化および復号システムを例示するブロック図。
【図２】[0016]マージおよび進化した動きベクトル予測（ＡＭＶＰ）モードに関する動きベクトル候補を例示する概念図。
【図３】[0017]イントラＢＣモードに従ってカレントピクチャ内のビデオデータのカレントブロックを予測する例示技術を例示する概念図。
【図４】[0018]本開示において記述されている技術をインプリメントすることができる例示デオエンコーダを例示するブロック図。
【図５】[0019]本開示において記述されている技術をインプリメントすることができる例示ビデオデコーダを例示するブロック図。
【図６】[0020]本開示の技術に一致する復号ビデオデータに関する例示プロセスを例示するフローチャート。
【図７】[0021]本開示の技術に一致するビデオデータを符号化する例示プロセスを例示するフローチャート。
【発明を実施するための形態】
【００１６】
[0022]本開示の態様は、ビデオ符号化およびビデオ復号に関する技術に向けられている。例えば、ビデオコーダは、進化した動きベクトル予測（ＡＶＭＰ）を実行しながら、時間動きベクトル予測子を導出することができる。次に、ビデオコーダは任意のサブピクセル精度を除去するために時間動きベクトル予測子を右シフトすることができる。イントラブロックコピーモードは整数ピクセル精度を使用するので、時間動きベクトル予測子を変換することはコード化効率を増大することができる。これは、ビデオコーダは、そうでなければ、サブピクセル精度によりイントラブロックコピーモードに関して使用不可または非効率であり得る時間動きベクトル予測子を使用することができるためである。この開示の観点は、イントラブロックコピー（ＢＣ）に関するブロックベクトルコード化を改良する技術に向けられることができる。この開示の観点は、ビデオ符号化およびビデオ復号に関する統合されたインター予測プロセスの一部としてイントラＢＣを実行する技術に向けられることができる。ここに記載された技術はスクリーンコンテンツコード化（ＳＣＣ）または、１つまたは複数の伝統的なコード化ツールが非効率である他のコンテンツに適用されることができる。
【００１７】
[0023]インター予測(prediction)はカレントピクチャ以外のピクチャのデータエレメントに基づいてデータエレメントを予測する技術である。例えば、ビデオエンコーダはカレントピクチャの予測ユニット（ＰＵ）に関する予測ブロック(predictive block)を決定するためにインター予測を使用することができる。予測ブロックはリファレンスピクチャ（すなわち、カレントピクチャ以外のピクチャ）内のサンプルに基づいたサンブルのブロックである。ＰＵの動きベクトルはＰＵの予測ブロック(prediction block)と予測ブロック(predictive block)との間の空間的変位(spatial displacement)を示すことができる。この例において、ビデオエンコーダは予測ブロック(predictive block)とＰＵの予測ブロック(prediction block)との間の差分を示す残差データ（すなわち、予測誤差）を生成することができる。ビデオエンコーダはビデオデータのコード化された表示を含むビットストリーム内の残差データを表すデータを含むことができる。ビデオデコーダは予測ブロック(predictive block)を決定するために動きベクトルを使用することができる。したがって、ビデオデコーダは予測ブロック(prediction block)を再構成するために残差データと予測ブロックの対応するサンプルを合計することができる。
【００１８】
[0024]インター予測の他の例において、ビデオコーダは、リファレンスピクチャ内の時間動きベクトル予測子（ＴＭＶＰ）に基づいてカレントピクチャのカレントＰＵの動きベクトルを決定することができる。多くの例において、ＴＭＶＰはＰＵの予測ブロック(prediction block)と少なくとも部分的にコロケートされた予測ブロック(prediction block)を有するＰＵの動きベクトルである。たとえば、ビデオコーダは、カレントＰＵの動きベクトルとしてＴＭＶＰを採用することができ、あるいはＴＭＶＰの動きベクトルに基づいてＰＵの動きベクトルを決定することができる。ビデオコーダは次に予測ブロックを決定するためにカレントＰＵの動きベクトルを使用することができる。
【００１９】
[0025]イントラ予測は、同じ復号されたスライスの、サンプル値のような、データエレメントに基づいてデータエレメントを予測する技術である。イントラブロックコピー（すなわち、イントラＢＣ）はコード化ユニット（ＣＵｓ）またはＰＵｓのようなビデオブロックを符号化するために使用されるイントラ予測の新しく開発されたフォームである。イントラＢＣを用いてカレントピクチャのカレントビデオブロックを符号化するために、ビデオエンコーダは、予測ブロックに関するカレントビデオブロックと同じカレントピクチャのスライス内のサーチ領域をサーチする。いくつかの例において、予測ブロックはカレントビデオブロックのサンプルのアレイに最も厳密にマッチするサンプルのアレイを備えるブロックであり得る。ビデオエンコーダはカレントビデオブロックと予測ブロック(predictive block)との間の変位(displacement)を示すブロックベクトルを生成する。インター予測と同じやり方で、ビデオエンコーダは残差データを生成するために予測ブロックを使用することができる。ビデオデコーダはカレントピクチャ内の予測ブロックを決定するためにカレントビデオブロックのブロックベクトルを使用することができる。ビデオデコーダはカレントビデオブロックの予測ブロックを再構成するために予測ブロックと残差データの対応するサンプルを合計することができる。
【００２０】
[0026]一般に、インター予測に関して使用される動きベクトルはサブピクセル精度を有する。例えば、インター予測に使用される動きベクトルはハーフピクセルあるいは１／４ピクセル精度を有することができる。したがって、インター予測に使用される動きベクトルはピクチャの２つの実際のピクセル間のロケーションを示すことができる。実際のピクセルはピクチャのピクセルのアレイ内の割り当てられた整数座標なのでピクチャの実際のピクセルは整数ピクセルと呼ばれることができる。動きベクトルが２つの整数ピクセル間のロケーションを示す場合、ビデオコーダ（すなわち、ビデオエンコーダまたはビデオデコーダ）はサンプルの値を補間することができる。対照的にイントラＢＣに使用されるブロックベクトルは、整数精度（すなわち、整数精度、整数ピクセル精度）に制限される。したがって、イントラＢＣに使用されるブロックベクトルは整数ピクセル間のロケーションを示さない。
【００２１】
[0027]インター予測とイントラＢＣとの間の類似性のために、インター予測とイントラＢＣを統合する試みが提案された。いくつかのそのような試みにおいて、ビデオコーダはリファレンスピクチャリストを生成する。一般的に、リファレンスピクチャリストはインター予測に関してカレントピクチャにより使用される利用可能なピクチャのリストである。インター予測とイントラＢＣを統合するためのいくつかの提案は、カレントピクチャが他のリファレンスピクチャと同じ態様で使用されることができるようにカレントピクチャをリファレンスピクチャリスト内に含めることを示唆する。
【００２２】
[0028]しかしながら、そのような提案はいくつかの問題を提起する。例えば、イントラＢＣの使用は、動きベクトルまたはブロックベクトルであり得るＴＭＶＰがカレントブロックのブロックベクトルとして使用されるとき、カレントブロックに関する最良のレート歪メトリックを生じるとビデオエンコーダは決定することができる。それゆえ、この例において、ビデオエンコーダはＴＭＶＰを識別する候補インデックスを示すことができ、リファレンスピクチャリスト内のカレントピクチャの位置を示す参照インデックスをシグナルすることができる。ビデオエンコーダはまたもしあるとすれば、カレントブロックのブロックベクトルとＴＭＶＰ（すなわち、コロケートされたブロックのブロックベクトルまたは動きベクトル）との間の差分を示す動きベクトル差分（ＭＶＤ）をシグナルすることができる。しかしながら、ＴＭＶＰがたまたまサブピクセル精度の動きベクトルであるとするなら、イントラＢＣは整数精度ブロックベクトルを有しているので、動きベクトルはイントラＢＣには使用されることができないかあるいはイントラＢＣの使用には非効率である。インター予測とイントラＢＣとの間の精度の差（すなわち、サブピクセル精度対整数ピクセル精度）はまた、インター予測がサブピクセル精度を用いて動作し、イントラＢＣが整数ピクセル精度を用いて動作するのでこれらの２つの予測モードが異なって動作することを意味する。その結果はインター予測とイントラＢＣを統合するための原理を破壊する非互換性である。
【００２３】
[0029]この開示の特別な技術はそのような問題に対する解決を提供する。例えば、ビデオコーダはカレントピクチャとリファレンスピクチャをリファレンスピクチャリスト内に含めることができる。さらに、ビデオコーダはリファレンスピクチャのコロケートされたブロックを決定することができる。コロケートされたブロックはカレントピクチャのカレントブロックとコロケートされる。ブロックがそのブロックのそれぞれのブロック内のオーバラップする位置に少なくとも部分的に対応する場合、ブロックは他のブロックとコロケートされることができる。さらに、この例において、ビデオコーダはコロケートされたブロックからＴＭＶＰを導出することができる。ビデオコーダは次に、ＴＭＶＰがサブピクセル精度を有するかどうかを決定することができる。ＴＭＶＰがサブピクセル精度を有すると決定することに応答して、ビデオコーダはＴＭＶＰを右シフトすることができる。言い換えれば、ビデオコーダはＴＭＶＰの小数部分をあらわすいかなるビット（例えば、２つの最下位ビット）が消去されるようにＴＭＶＰを示す値を右シフトすることができ、その結果整数レベルの精度を有するＴＭＶＰを生ずる。例えば、２つの最下位ビットが除去される場合、それは２だけ右シフトすることと同じであろう。他の例として、ＨＥＶＣにおいて１／４ピクセル精度を有するＴＭＶＰを２だけ右シフトすることはＴＭＶＰをサブピクセル精度（またはこの例では、１／４ピクセル精度）を有することから整数ピクセル精度を有することへ変換するであろう。このように、ビデオコーダはＴＭＶＰをサブピクセル精度から整数ピクセル精度へ効果的に変換することができる。さらに、この例において、ビデオコーダは右シフトされた時間動きベクトル予測子に基づいて、カレントピクチャ内の予測ブロック(predictive block)を決定することができ残差ブロックのサンプルと、予測ブロック(predictive block)の対応するサンプルを合計することにより復号されたビデオブロックを形成することができる。したがって、ＴＭＶＰをサブピクセル精度から整数精度へ変換することにより、ビデオコーダはＴＭＶＰをイントラＢＣ内で使用するためのブロックベクトルとしてＴＭＶＰを使用することが可能であり得る。このように、本開示のこの技術は、インター予測(prediction)とイントラＢＣの統合を容易にすることができる。
【００２４】
[0030]図１は、本開示の１つまたは複数の技術を利用することができる例示ビデオ符号化および復号システム１０を例示するブロック図である。ここに使用されるように、「ビデオコーダ」は一般的にビデオエンコーダとビデオデコーダの両方に言及する。同様に、本開示において、用語「ビデオコーディング」または「コーディング」は一般にビデオ符号化またはビデオ復号に言及する。この開示全体に記載するように、ビデオコーディングシステム１０のビデオエンコーダ２０およびビデオデコータ３０は本開示の１つまたは複数の技術を実行するように構成されることができるエンコーダおよびデコーダの種々の例を表す。
【００２５】
[0031]図１の例で図示されているように、ビデオコーディングシステム１０は、ソースデバイス１２およびデスティネーションデバイス１４を含む。ソースデバイス１２は、符号化されたビデオデータを生成する。したがって、ソースデバイス１２は、ビデオ符号化デバイス、またはビデオ符号化装置と称され得る。デスティネーションデバイス１４は、ソースデバイス１２により生成された符号化されたビデオデータを復号することができる。従って、デスティネーションデバイス１４はビデオ復号デバイスまたはビデオ復号装置と称され得る。ソースデバイス１２とデスティネーションデバイス１４はビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。ソースデバイス１２とデスティネーションデバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、ワイヤレスコミュニケーションデバイス、いわゆる「スマート」フォン、いわゆる「スマート」パッドのようなテレフォンハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレイヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、等を含む広範囲のデバイスのいずれかを備えることができる。いくつかの例において、ソースデバイス１２とデスティネーションデバイス１４はワイヤレス通信に関して装備される。
【００２６】
[0032]デスティネーションデバイス１４は、リンク１６を介してソースデバイス１２から符号化されたビデオデータを受信することができる。リンク１６は、ソースデバイス１２からデスティネーションデバイス１４に符号化されたビデオデータを移動することが可能な１つまたは複数の媒体またはデバイスを備えることができる。１つの例では、リンク１６は、ソースデバイス１２がリアルタイムにデスティネーションデバイス１４に符号化されたビデオデータを直接送信することを可能にする１つまたは複数の通信媒体を備える。この例では、ソースデバイス１２は、ワイヤレスまたは有線(wired)通信プロトコルのような通信規格にしたがって、符号化されたビデオデータを変調または通信し、デスティネーションデバイス１４に変調された（または変調されていない）ビデオデータを送信する。１つまたは複数の通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理送信ラインのような、ワイヤレスおよび／または有線通信媒体を含むことができる。１つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク（例えば、インターネット）のような、パケットベースのネットワークの一部を形成することができる。１つまたは複数の通信媒体は、ルータ、スイッチ、基地局、または、ソースデバイス１２からデスティネーションデバイス１４への通信を容易にする他の機器を含むことができる。
【００２７】
[0033]いくつかの例では、符号化されたデータは、出力インターフェース２２からストレージデバイス３３に出力される。そのような例において、符号化されたデータは入力インターフェース２８によりストレージデバイス３３からアクセスされる。ストレージデバイス３３は、ハードドライブ、ブルーレイディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または非揮発性メモリ、または符号化されたビデオデータを記憶するためのいかなる他の適切なデジタル記憶メディアのような、分散されたまたはローカルにアクセスされた様々なデータ記憶メディアのうちのいずれかを含むことができる。
【００２８】
[0034]ストレージデバイス３３は、ソースデバイス１２によって生成された符号化されたビデオを保持しうる別の中間ストレージデバイスまたはファイルサーバを備えることができる。デスティネーションデバイス１４は、ストリーミングまたはダウンロードを介してストレージデバイス３３から記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶すること、およびデスティネーションデバイス１４にその符号化されたビデオデータを送信することができるいずれかのタイプのサーバであり得る。ファイルサーバの例は、（例えば、ウェブサイトに関する）ウェブサーバ、ファイルトランスファープロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。
【００２９】
[0035]デスティネーションデバイス１４は、インターネット接続を含む、いずれかの規格データ接続を通じて符号化されたビデオデータにアクセスすることができる。データ接続の実例となるタイプは、ファイルサーバに記憶されている符号化されたビデオデータにアクセスするのに適している、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ接続）、有線接続（例えば、ＤＳＬ、ケーブルモデム等）、またはその両方の組み合わせを含むことができる。ストレージデバイス３３からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組み合わせであり得る。
【００３０】
[0036]統合されたイントラブロックコピーおよびインター予測に関する本開示の技術は、必ずしもワイヤレスアプリケーションまたはセッティングに限定されない。技術は、無線テレビ放送、ケーブルテレビ送信、衛星テレビ送信、例えばインターネットを介した、ストリーミングビデオ送信、データ記憶媒体上での記憶に関するデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他のアプリケーションのような様々なマルチメディアアプリケーションのいずれかをサポートする、ビデオコーディングに適用されることができる。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話のようなアプリケーションをサポートするために、一方向または二方向ビデオ送信をサポートするように構成される。
【００３１】
[0037]図１に図示されたビデオコーディングシステム１０は、単なる例であり、本開示の技術は、符号化デバイスと復号デバイスとの間のいかなるデータ通信をも必ずしも含むわけではないビデオコーディングセッティング（例えば、ビデオ符号化またはビデオ復号）に適用することができる。他の例では、データは、ローカルメモリから検索される、ネットワークをわたってストリーミングされる等、が行われる。ビデオ符号化デバイスは、データを符号化し、メモリに記憶することができ、および／またはビデオ復号デバイスは、メモリからデータを検索し、復号することができる。多くの例において、符号化および復号は、互いに通信しないけれども単に、メモリにデータを符号化し、および／またはメモリからデータを検索し、復号するデバイスによって行われる。
【００３２】
[0038]図１の例では、ソースデバイス１２は、ビデオソース１８、ビデオエンコーダ２０、および出力インターフェース２２を含む。いくつかの例では、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含む。ビデオソース１８は、例えば、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組み合わせといった、ビデオキャプチャデバイスのようなソースを含みうる。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２およびデスティネーションデバイス１４は、いわゆるカメラ付電話、またはビデオ電話を形成する。しかしながら、本開示で説明された技術は、一般にビデオコーディングに適用可能であり、ワイヤレスおよび／または有線アプリケーションに適用されうる。
【００３３】
[0039]キャプチャされた、キャプチャされる前の、またはコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化されることができる。符号化されたビデオデータは、ソースデバイス12の出力インターフェース２２を介して、デスティネーションデバイス１４に直接送信されることができる。符号化されたビデオデータはまた（または代替として）、復号および／または再生のために、デスティネーションデバイス１４または他のデバイスによる後のアクセスのためにストレージデバイス３３上に記憶されることができる。
【００３４】
[0040]デスティネーションデバイス１４は、入力インターフェース２８、ビデオデコーダ３０、およびディスプレイデバイス３２を含む。いくつかの例では、入力インターフェース２８は、受信機および／またはモデムを含む。デスティネーションデバイス１４の入力インターフェース２８は、リンク１６を介して符号化されたビデオデータを受信する。リンク１６を介して通信された、またはストレージデバイス３３上で提供された符号化されたビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０のようなビデオデコーダによる使用のためにビデオエンコーダ２０によって生成された様々なシンタックス要素を含むことができる。そのようなシンタックス要素は、通信媒体上に送信された、記憶媒体上に記憶された、またはファイルサーバに記憶された符号化されたビデオデータに含まれることができる。
【００３５】
[0041]ディスプレイデバイス３２は、デスティネーションデバイス１４と一体化されることができるか、あるいはデスティネーションデバイス１４の外部にあることができる。いくつかの例では、デスティネーションデバイス１４は、一体化されたディスプレイデバイスを含み、また外部のディスプレイデバイスとインターフェースするように構成されることができる。他の例において、デスティネーションデバイス１４は、ディスプレイデバイスでありうる。概して、ディスプレイデバイス３２は、ユーザに復号されたビデオデータを表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスのような、様々なディスプレイデバイスのいずれかを備えることができる。
【００３６】
[0042]ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰｓ）、特定用途向け集積回路（ＡＳＩＣｓ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡｓ）、ディスクリートロジック、ハードウェア、またはそれらのいずれかの組み合わせのような、様々の適した回路のいずれかとしてインプリメントされることができる。技術が部分的にソフトウェアでインプリメントされる場合、デバイスは、適した非一時的コンピュータ可読記憶媒体にソフトウェアに関する命令を記憶することができ、本開示の技術を行うために、１つまたは複数のプロセッサを用いたハードウェアでその命令を実行することができる。（ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組み合わせ、等を含む）前述のいずれも、１つまたは複数のプロセッサであると考慮されることができる。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダに含まれることができ、そのいずれもが、それぞれのデバイス内において組み合わされたエンコーダ／デコーダ（ＣＯＤＥＣ）の一部として一体化されることができる。
【００３７】
[0043]ビデコエンコーダ２０とビデオデコーダ３０は、ビデオコーディングに関する共同作業チーム(Joint Collaborative Team on Video Coding) (JCT-VC)により開発された、ＨＥＶＣレンジ拡張規格(HEVC Range Extension standard)、並びに、最近策定された高効率ビデオコーディング(High Efficiency Video Coding) (HEVC)のようなビデオコーディング規格に従って動作することができる。代替として、ビデオエンコーダ２０およびビデオデコーダ３０は、ＭＰＥＧ ４、Ｐａｒｔ １０、アドバンスドビデオコーディング（ＡＶＣ）、またはそのような規格の延長として代わりに称される、ＩＴＵ−Ｔ Ｈ.２６４規格のような、他の所有権または工業規格にしたがって動作することができる。しかしながら本開示の技術は、いずれの特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例はＭＰＥＧ−２とＩＴＵＴ  Ｈ．２６３を含む。
【００３８】
[0044]「HEVC Working Draft 10」または「ＷＤ１０」と呼ばれるＨＥＶＣ規格の最近のドラフトは、２０１３年１月１４−２３日にスイスのジュネーブで開催された第１２回会合である、ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Vide Coding (JCT-VC)における、Bross他著のドキュメントJCTVC-L1003v34である”High efficiency video coding (HEVC)テキスト仕様ドラフト１０(FDIS & Last Callに関する)”に記載されており、２０１３年８月３０日現在でそれは、http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Generava/wg11/JCTVC-L1003^v34.zipからダウンロード可能である。ＨＥＶＣ規格の他のドラフトは２０１３年４月に韓国のインチェン(Incheon)で開催されたITU-T SG 16 WP3 and ISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding (JCT-VC)のBross他著”Editors’ proposed corrections to HEVC version 1”において記載された”WD10 revisions”とここでは呼ばれる。２０１３年８月３０日現在でそれは、http://phenix.int-evry.fr/jct/doc_end_user/documents/12?incheon/wg11/JCTVC-M0432-v3.zipから入手可能である。
【００３９】
[0045]他の最近のHEVC１テキスト仕様ドラフトは、ＨＥＶＣドラフト仕様書に記載され、以下ＨＥＶＣ  ＷＤと呼ばれ、http://phenix.int-evry.fr/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O1003-v2.zip. Wang et al., “High Efficiency Video Coding (HEVC) Defect Report 4”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-TSG16 WP3 and ISO/IEC JTC1/SC29/WG11, 17th Meeting, Valencia, ES, 27 March-4 April 2014,から入手可能である。文献JCTVC-Q1003 (以下、”JCTVC-Q1003”)もＨＥＶＣ規格を記載する。
【００４０】
[0046]ビデオエンコーダおよびビデオデコーダ３０は各々、本開示で記載された技術のいずれかの組み合わせを実行するように構成されたビデオコーダの一例を表す。いくつかの例において、ここに記載された１つまたは複数の技術は１つまたは複数のビデオコーディング規格に使用するように構成される。ビデオコーディング規格の例は、ＩＴＵＴ  Ｈ．２６１、ＩＳＯ／ＩＥＣＭＰＥＧ−１Ｖｉｓｕａｌ、ＩＴＵＴ  Ｈ．２６２またはＩＳＯ／ＩＥＣＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵＴ  Ｈ．２６３、ＩＳＯ／ＩＥＣＭＰＥＧ−４Ｖｉｓｕａｌ、およびそのスケーラブルビデオコーディング（ＳＶＣ）およびマルチビュービデオコーディング（ＭＶＣ）拡張を含むＩＴＵＴ  Ｈ．２６４（ＩＳＯ／ＩＥＣＭＰＥＧ−４  ＡＶＣとしても知られる）を含む。高効率ビデオコーディング（ＨＥＶＣ）は、ＩＴＵ−Ｔビデオコーディング専門家グループ（ＶＣＥＧ）とＩＳＯ／ＩＥＣ動画専門家グループ（ＭＰＥＧ）のビデオコーディング（ＪＣＴ−ＶＣ）に関するジョイントコラボレーションチームによって開発された新しいビデオコーディング規格である。ＨＥＶＣ標準化の努力はＨＥＶＣテストモデル（ＨＭ）と称されるビデオコーディングデバイスの進化しつつあるモデルに基づいている／いた。ＨＭは、例えば、ＩＴＵ−Ｔ Ｈ.２６４／ＡＶＣに従った既存のデバイスに対して、ビデオコード化デバイスのいくつかの追加の能力を仮定する。例えば、Ｈ．２６４は、９個のイントラ予測符号化モードを提供するのに対し、ＨＭは、３３個のイントラ予測符号化モードを提供し得る。
【００４１】
[0047]図１には示されていないけれども、いくつかの例において、ビデオエンコーダ２０およびビデオデコーダ３０は各々、オーディオエンコーダおよびデコーダと一体化され、共通のデータストリームまたは別個のデータストリームにおけるオーディオおよびビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニットまたは他のハードウェアおよびソフトウェアを含むことができる。適用可能である場合、いくつかの例において、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ．Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）のような他のプロトコルに適合する。
【００４２】
[0048]本開示は概して、ビデオデコーダ３０のような別のデバイスに、ある情報を「シグナリングする」または「送信する」ビデオエンコーダ２０に言及する。「シグナリング」または「送信する」という用語は、概して、圧縮されたビデオデータを復号するために使用される、シンタックス要素および／または他のデータの通信に言及することができる。そのような通信は、リアルタイム、または準リアルタイム（ｎｅａｒ−ｒｅａｌ−ｔｉｍｅ）で生じることができる。代わりに、そのような通信は、符号化時に符号化されたビットストリーム内のシンタックス要素をコンピュータ可読記憶媒体に記憶し、それがその後、この媒体に記憶された後のいずれかの時間において復号デバイスによって検索されることができる、ときに生じうるような、時間の期間にわたって生じることができる。
【００４３】
[0049]ビデオシーケンスは典型的に、一連のビデオフレームまたはピクチャを含む。ピクチャのグループ（ＧＯＰ）は一般的に、一連の１つまたは複数のビデオピクチャを備える。ＧＯＰは、ＧＯＰのヘッダ内、１つまたは複数のピクチャのヘッダ内、あるいはどこかに、ＧＯＰに含まれるピクチャの数を記載するシンタックスデータを含めることができる。ピクチャの各スライスは、それぞれのスライスに関する符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は典型的に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに作用する。
【００４４】
[0050]ＨＥＶＣおよび他のビデオコーディング規格において、ビデオシーケンスは典型的に一連のピクチャを含む。ピクチャはまた「フレーム」とも呼ばれることができる。ピクチャはＳＬ、ＳＣｂ、およびＳＣｒで示される３つのサンプルアレイを含むことができる。ＳＬはルーマ(luma)サンプルの２次元アレイ（すなわちブロック）である。ＳＣｂはＣｂクロミナンスサンプルの２次元アレイである。ＳＣｒはＣｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルはまた、ここでは「クロマ」サンプルとも呼ばれることができる。他の例において、ピクチャはモノクロームであり得、ルーマサンプルのアレイのみ含むことができる。
【００４５】
[0051]ピクチャの符号化された表示を生成するために、ビデオエンコーダ２０はコーディングツリーユニット（ＣＴＵｓ）のセットを生成することができる。各それぞれのＣＴＵはルーマサンプルのコーディングツリーブロックであり得、２つがクロマサンプルのコーディングツリーブロックに対応し、シンタックス構造はコーディングツリーブロックのサンプルをコード化するために使用される。モノクロームピクチャまたは３つの別個のカラープレーンを有するピクチャにおいて、ＣＴＵは単一のコーディングツリーブロックとコーディングツリーブロックのサンプルをコード化するために使用されるシンタックス構造を備えることができる。コーディングツリーブロックはサンプルのＮ×Ｎブロックであり得る。コーディングツリーブロックはサンプルのＮ×Ｎブロックであり得る。ＣＴＵは、また「ツリーブロック」または「最大コーディングユニット（ＬＣＵ）」と呼ばれることができる。ＨＥＶＣのＣＴＵｓはＨ．２６４／ＡＶＣのような他の規格のマクロブロックに広範囲に類似することができる。しかしながら、ＣＴＵは必ずしも特定のサイズに限定される必要はなく１つまたは複数のコーディングユニット（ＣＵｓ）を含むことができる。ビットストリーム内のシンタックスデータはＣＴＵｓに関するサイズを定義することができる。
【００４６】
[0052]ＨＥＶＣにおいて、スライス内の最大コーディングユニットはコーディングツリーブロック（ＣＴＢ）と呼ばれる。ＣＴＢは４分木を含み、そのノードがコーディングユニットである。ＣＴＢのサイズはＨＥＶＣメインプロファイル内の１６×１６から６４×６４のレンジであり得る（技術的には、８×８ＣＴＢサイズはサポートされることができるけれども）。各ＣＵは１つのモードでコード化される。
【００４７】
[0053]ビデオフレームまたはピクチャは１つまたは複数のスライスに分割されることができる。スライスはラスタスキャン順序のような、コーディング順序において連続的に順番づけされたＣＴＵｓの整数を含むことができる。
【００４８】
[0054]各ＣＴＵは四分木にしたがって１つまたは複数のコーディングユニット(coding units)（ＣＵｓ）に分割されることができる。一般に、四分木データ構造は、ルートノードがＣＴＵに対応する状態でＣＵごとに１つのノードを含む。ＣＵが４つのサブＣＵに分けられる場合、ＣＵに対応するノードは４つのチャイルドノードを含み、そのそれぞれがサブＣＵのうちの１つに対応する。コーディングユニット（ＣＵ）はＣＴＢの同じサイズであり得、８×８ほどの小さなサイズであり得る。
【００４９】
[0055]四分木データ構造の各ノードは、対応するＣＵに関するシンタックスデータを提供することができる。例えば、四分木におけるノードは、ノードに対応するＣＵがサブＣＵに分けられるかどうかを示す、分割フラグ(split flag)を含むことができる。ＣＵに関するシンタックス要素は再帰的に定義されることができ、ＣＵがサブＣＵｓに分けられるかどうかに依存することができる。ＣＵがこれ以上分けられない場合、それはリーフＣＵと称される。
【００５０】
[0056]ビデオエンコーダ２０は、コーディングツリーブロックをコーディングブロックに分割するためにＣＴＵのコーディングツリーブロックに４分木分割を再帰的に実行することができる、それゆえ「コーディングツリーユニット」という名前が付けられる。コーディングブロックは、サンプルのＮ×Ｎブロックである。いくつかの例において、ＣＵは、コーディングブロックのサンプルをコード化するために使用されるシンタックス構造と、Ｃｒサンプルアレイと、Ｃｂサンプルアレイと、ルーマサンプルアレイを有するピクチャのクロマサンプルの２つの対応するコーディングブロックを備える。モノクロームピクチャ、または３つの別個のカラープレーンを有するピクチャにおいて、ＣＵは単一のコーディングブロックと、コーディングブロックのサンプルをコード化するために使用されるシンタックス構造を備えることができる。
【００５１】
[0057]ＣＵは、ＣＵがサイズの区別を有さないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。ＣＵが対応するサイズは、形状が正方形または方形であり得る。ＣＵのサイズは、８ｘ８画素から、６４ｘ６４画素以上の最大値を有するツリーブロックのサイズまでの範囲に及び得る。ツリーブロックは４つの子ノード（サブＣＵとも称される）に分けられることができ、各子ノードは、今度は親ノードになり、別の４つの子ノードに分けられ得る。四分木のリーフノードと称される最後の分けられない子ノードは、リーフＣＵとも称されるコード化ノードを備える。コード化されたビットストリームに関連付けられるシンタックスデータは、最大ＣＵ 深度(depth)と称される、ツリーブロックが分割され得る最大回数を定義することができ、またコード化ノードの最小サイズをも定義することができる。したがって、ビットストリームはまた、最小コード化単位（ＳＣＵ）を定義することができる。本開示は、ＨＥＶＣのコンテクストにおいて、１つまたは複数の予測ユニット（ＰＵｓ）をさらに含むことができるＣＵ，または変換ユニット（ＴＵｓ）、あるいは他の規格のコンテクストにおいて類似のデータ構造（例えば、Ｈ．２６４／ＡＶＣのマクロブロックおよびサブブロック）のいずれかに言及するために「ブロック」という用語を用いる。
【００５２】
[0058]ＣＵは、１つ以上の予測単位(prediction units)（ＰＵｓ）および１つ以上の変換単位(transform units)（ＴＵｓ）を含み得る。ＣＵと関連付けられるシンタックスデータは、例えば、１つまた複数のＰＵｓへのＣＵの分割を記述し得る。区分化モードは、ＣＵが符号化されたスキップあるいはダイレクトモード、符号化されたイントラ予測モード、または符号化されたインター予測モードであるかどうかによって異なり得る。ＣＵはＣＵのＰＵｓが非正方形の形状であるように分割されることができる。ＣＵと関連付けられるシンタックスデータは、また、四分木にしたがって、例えば、１つまた複数のＴＵｓへのＣＵの分割を記述し得る。
【００５３】
[0059]したがって、ＣＵがインターコード化されると、それはさらに２つの予測ユニット（ＰＵｓ）に分割されることができるかまたはさらなる分割が適用されないとき１つのＰＵのみになる。２つのＰＵｓが１つのＣＵ内に存在するとき、ＰＵｓは、ハーフサイズの方形であり得るかまたは、一方がＣＵのサイズの１／４であり、他方がＣＵの３／４である２つの方形であり得る。ＨＥＶＣにおいて、最小のＰＵサイズは８×４および４×８である。ＣＵがインター符号化されると、動き情報の１つのセットはＣＵの各ＰＵに関して存在する。さらに、各ＰＵは動き情報のセットを導出するために固有のインター予測モードでコード化されることができる。
【００５４】
[0060]ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに分割することができる。予測ブロックは同じ予測が適用されるサンプルの方形（すなわち、正方形または非正方形）ブロックであり得る。ＣＵのＰＵは、ルーマサンプルの予測ブロック、ピクチャのクロマサンプルの２つの対応する予測ブロック、および予測ブロックサンプルを予測するために使用されるシンタックス構造を備えることができる。モノクロームピクチャあるいは３つの別個のカラープレーンを有するピクチャにおいて、ＰＵは単一の予測ブロックと予測ブロックサンプルを予測するために使用されるシンタックス構造を備えることができる。
【００５５】
[0061]一般に、ＰＵは、対応するＣＵのすべてまたは一部に対応する空間的エリアを表し、ＰＵに関する参照サンプルを検索するためのデータを含むことができる。さらにＰＵは、予測と関連するデータを含む。いくつかのサンプルにおいて、ＰＵはイントラモードまたはインターモードを用いて符号化される。他の例として、ＰＵがインターモード符号化されるとき、ＰＵはＰＵに関する１つまたは複数の動きベクトルを定義するデータを含むことができる。ＰＵに関する動きベクトルを定義するデータは、例えば、動きベクトルの水平コンポーネント、動きベクトルの垂直コンポーネント、動きベクトルに関する解像度（例えば、四分の一ピクセル精度または八分の一ピクセル精度）、動きベクトルが指し示す参照ピクチャ、および／または動きベクトルに関する参照ピクチャリスト（例えば、リスト０、リスト１、またはリストＣ）を記載することができる。
【００５６】
[0062]一例として、ＨＥＶＣは、様々なＰＵサイズ内において予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＥＶＣは、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２ＮまたはＮ×Ｎの対称ＰＵサイズにおけるインター予測、および２Ｎ×２ＮまたはＮ×ＮのＰＵサイズにおけるイントラ予測をサポートする。ＨＥＶＣはまた２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２ＮおよびｎＲ×２ＮのＰＵサイズにおけるインター予測に関する非対称分割をサポートする。非対称分割において、ＣＵの１つの方向は分割されず、一方他の方向は２５％および７５％に分割される。２５％分割に対応するＣＵの部分は「ｎ」によって示され、その後に「上」、「下」、「左」または「右」の表示が続く。従って、例えば、「２Ｎ×ｎＵ」は、２Ｎ×０．５Ｎ ＰＵを上部に、２Ｎ×１．５Ｎ ＰＵを下部に水平に区分化される２Ｎ×２Ｎ ＣＵを指す。
【００５７】
[0063]本開示において、「Ｎ×Ｎ」および「Ｎ掛けるＮ」は、垂直および水平次元の観点からビデオブロックのピクセル次元、例えば、１６×１６ピクセル、もしくは１６掛ける１６ピクセルを指すために交換可能に使用されることができる。一般的に、１６ｘ１６のブロックは垂直方向に１６ピクセル（ｙ＝１６）および水平方向に１６ピクセル（ｘ＝１６）有する。同じく、Ｎ×Ｎのブロックは一般的に、垂直方向にＮ個のピクセルおよび水平方向にＮ個のピクセルを有し、この場合、Ｎは非負整数の値を表す。ブロック内のピクセルは、行と列に配列され得る。その上、ブロックは、垂直方向中と、水平方向中とで同じピクセル数を必ずしも有する必要はない。例えば、ブロックはＮ×Ｍピクセルを備えることができ、この場合ＭはかならずしもＮに等しい必要はない。変換ブロックは同じ変換が適用されるサンプルの方形ブロックであり得る。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロック、クロマ(chroma)サンプルの２つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造を備えることができる。従って、ＣＵの各ＴＵはルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックを有することができる。ＴＵのルーマ変換ブロックはＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックはＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックはＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロームピクチャまたは３つの別個のカラープレーンを有するピクチャにおいて、ＴＵは単一の変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造を備えることができる。ＴＵは形状が正方形または非正方形(例えば、方形)であることができる。言い換えれば、ＴＵに対応する変換ブロックは正方形または非正方形であり得る。
【００５８】
[0064]ＨＥＶＣ標準は、異なるＣＵｓに関して異なることができるＴＵｓにしたがって変形を可能にする。ＴＵｓは、いつもこうであるとは限らないが、典型的に、分割されたＬＣＵのために定義された所与のＣＵ内のＰＵｓのサイズに基づくサイズである。ＴＵは典型的に、ＰＵｓと同じサイズか、あるいはそれより小さい。いくつかの例において、ＣＵに対応する残差サンプルは、「残差四分木」（ＲＱＴ）として知られる四分木構造を用いるより小さいユニットにサブ分割される。ＲＱＴのリーフノードは、ＴＵｓ呼ばれることができる。ＴＵｓに関連付けられたピクセル差分値は、量子化され得る変換係数を生成するために変換されることができる。
【００５９】
[0065]ＴＵｓは、上述したように、ＲＱＴ（ＴＵ四分木構造とも称される）を用いて特定されることができる。例えば、分割フラグは、リーフＣＵが４つのＴＵｓに分割されるかどうかを示し得る。次に、各ＴＵはさらなるサブＴＵｓにさらに分割されることができる。ＴＵがこれ以上分割されない場合、それはリーフＴＵと称される。一般的に、イントラコード化に関して、リーフＣＵに属する全てのリーフＴＵｓは、同じイントラ予測モードを共有する。すなわち、同じイントラ予測モードは一般的に、１つのリーフＣＵのすべてのＴＵｓに関して予測された値を計算するために適用される。イントラコード化に関して、ビデオエンコーダ２０は、ＴＵに対応するＣＵの一部とオリジナルブロックの間の差分としてイントラ予測モードを用いて各リーフ−ＴＵに関する残差値を計算することができる。ＴＵは、ＰＵのサイズに必ずしも限定されない。したがって、ＴＵｓは、ＰＵよりも大きいか、あるいは小さくなり得る。イントラコード化に関して、ＰＵは、同じＣＵに関して対応するリーフ−ＴＵとコロケート(collocated)されることができる。いくつかの例において、リーフ−ＴＵの最大サイズは対応するリーフ−ＣＵのサイズに対応する。
【００６０】
[0066]さらに、リーフ−ＣＵｓのＴＵｓは、ＲＱＴｓと称されるそれぞれの四分木データ構造とも関連付けられることができる。すなわち、リーフ−ＣＵは、リーフ−ＣＵがどのようにＴＵｓに分割されたかを示す四分木を含み得る。ＴＵ四分木のルートノードは一般的に、リーフ−ＣＵに対応し、一方ＣＵ四分木のルートノードは一般的に、ツリーブロックに対応する。一般的に、本開示は、特に断りの無い限り、それぞれリーフ−ＣＵとリーフ−ＴＵに言及するために、用語ＣＵおよびＴＵを用いる。
【００６１】
[0067]ＰＵｓとＴＵｓは共にそのブロックに関連したカラースペースのチャネルの各々に対応するサンプルの１つまたは複数のブロックを含む（すなわち、対応する）ことができる。ＰＵｓのブロックは予測ブロックのサンプルを含むことができ、ＴＵｓのブロックは、オリジナルブロックと予測ブロックとの間の差分に対応する残差サンプルを含むブロックであり得る。ＹＣｂＣｒカラースペースに関連したブロックの場合、ルーマサンプルのブロックは「Ｙ」チャネルに対応することができ、クロマブロックの２つの異なるチャネルはそれぞれＣｂチャネルおよびＣｒチャネルに対応することができる。ＣＵのＰＵｓを用いたイントラ予測またはインター予測コード化に続いて、ビデオエンコーダ２０またはビデオデコーダ３０はＣＵのＴＵｓに関する残差デーｔを計算することができる。ＰＵｓは、空間領域（ピクセル領域とも称される）内で予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、およびＴＵｓは、例えばディスクリートコサイン変換（ＤＣＴ）、整数変換、ウェイブレット変換、または残差ビデオデータへの概念上類似する変換などの変換の適用(application)に続いて、変換領域内に係数を備え得る。残差データは、符号化されないピクチャのピクセルとＰＵｓに対応する予測値との間のピクセル差分に対応することができる。ビデオエンコーダ２０またはビデオデコーダ３０はＣＵに関する残差データを含むＴＵｓを形成することができ、次にＴＵｓを変換してＣＵに関する変換係数を生成することができる。いいかえれば、ビデオエンコーダ２０は、ＴＵに関する変換係数ブロックを生成するためにＴＵに関する変換ブロックに変換を適用することができる。ビデオデコーダ３０はＴＵに関する変換ブロックを再構成するためにＴＵに関する変換係数ブロックに逆変換を適用することができる。
【００６２】
[0068]変換係数を生成するために変換（もしあれば）の適用に続いて、ビデオエンコーダ２０は変換係数の量子化を実行することができる。言い換えれば、ビデオエンコーダ２０は変換係数ブロックの変換係数を量子化することができる。量子化は一般に、係数を表すために使用されるデータの量を出来る限り（possibly）減少させ、さらなる圧縮を提供するために変換係数が量子化されるプロセスを指す。量子化プロセスは、係数のいくつかまたはすべてに関連付けられたビット深度を低減することができる。例えば、ｎ-ビット値は量子化の期間にｍビット値に端数を切り捨てる(rounded down)ことができ、ここにおいて、ｎはｍより大きい。逆量子化（すなわち、非量子化）は係数のいくつかまたはすべてのビット深度を増加させることができる。
【００６３】
[0069]量子化に続いて、ビデオエンコーダ２０は量子化された変換係数を含む２次元マトリックスから１次元ベクトルを生成する変換係数を走査し得る。走査は、アレイの前方に、より高いエネルギー（それ故により低い周波数）係数を設定し、およびアレイの後方に、より低いエネルギー（それ故により高い周波数）係数を設定するように設計され得る。いくつかの例において、ビデオエンコーダ２０は、エントロピー符号化され得る直列に変換されたベクトルを生成するために量子化された変換係数を走査するために所定の走査順を利用する。その他の例において、ビデオエンコーダ２０は適応走査を実行する。１次元ベクトルを形成するよう量子化された変換係数をスキャンした後、ビデオエンコーダ２０は、例えば、コンテキスト適応バイナリ算術コーディング（ＣＡＢＡＣ）、コンテキスト適応可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応二進演算コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、シンタックスベースのコンテキスト適応二進演算コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分化エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディングまたは別のエントロピー符号化方法にしたがって、１次元のベクトルをエントロピー符号化することができる。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０により使用するための符号化されたビデオデータに関連づけられたシンタックス要素をエントロピー符号化することができる。
【００６４】
[0070]ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は送信されるべきシンボルに、コンテキストモデル内の１つのコンテキストを割り当てることができる。コンテキストは、例えば、シンボルの近隣値が非ゼロであるか否かに関連し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、伝送されるべきシンボルに関する可変長符号を選択し得る。可変長コーディング（ＶＬＣ）内のコードワードは、比較的より短いコードがより可能性のあるシンボルに対応する一方で、より長いコードがより可能性のないシンボルに対応するように構成されることができる。このようにして、ＶＬＣの使用は、例えば、送信されるべき各シンボルに関する等長コードワードを用いてビットセービングオーバ(a bit savings over)を達成することができる。確立の決定は、シンボルに割り当てられたコンテキストに基づくことができる。
【００６５】
[0071]ビデオエンコーダ２０は、さらに、例えばフレームヘッダ、ブロックヘッダ、スライスヘッダ、またはＧＯＰヘッダ内の、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびＧＯＰベースのシンタックスデータのようなシンタックスデータをビデオデコーダ３０にさらに送り得る。ＧＯＰシンタックスデータは、それぞれのＧＯＰ内のフレームの数を記述し得、およびフレームシンタックスデータは、対応のフレームを符号化するために用いられる符号化／予測モードを示すことができる。
【００６６】
[0072]ＨＥＶＣ規格にしたがって、インター予測またはイントラ予測を使用すると、動き情報がビデオエンコーダ２０またはビデオデコーダ３０に利用可能である。各ブロックに関して、動き情報のセットが利用可能である。動き情報のセットは、前方および後方予測方向に関する動き情報を含むことができる。前方および後方予測方向という用語は、双方向予測モードに関連した２つの予測方向を示すことを意味する。「前方」および「後方」は必ずしも幾何学的意味を持たない。むしろ、「前方」および「後方」はカレントピクチャのピクチャリスト０(RefPicList0)およびリファレンスピクチャリスト１(RefPicList1)に対応する。１つのピクチャまたはスライスに関してただ１つの参照ピクチャが利用可能であるとき、RefPicList0のみが利用可能であり、１つのスライスの各ブロックの動き情報は常に前方である。
【００６７】
[0073]各予測方向に関して、動き情報は参照インデックスおよび動きベクトルを含まなければならない。参照インデックスはリファレンスピクチャリスト内の特定のピクチャへのインデックスである。いくつかの例において、簡単のために、ビデオコーダは、動きが関連する参照インデックスを有すると仮定する。参照インデックスはカレントリファレンスピクチャリスト(RefPicList0またはRefPicList1)内のリファレンスピクチャを識別するために使用される。動きベクトルは水平および垂直成分を有する。ＣＵがインターコード化されると、動き情報の１つのセットが各ＰＵに関して存在する。ビデオコーダはそのＰＵに関する動き情報のセットを導出するためにＰＵに関連したインター予測モードを使用する。
【００６８】
[0074]ピクチャオーダカウント（ＰＯＣ）はピクチャの表示順序を識別するためにビデオコーディング規格において広く使用されている。複数のコード化されたビデオシーケンスがビットストリーム内に存在すると、ＰＯＣの同じ値を有するピクチャは、復号順番の観点において互いにより近い可能性がある。ピクチャのＰＯＣ値は典型的には、リファレンスピクチャリスト構成、ＨＥＶＣにおけるようなリファレンスピクチャセットの導出、および動きベクトルスケーリングに使用される。
【００６９】
[0075]ＨＥＶＣ規格において、予測ユニット（ＰＵ）に関して、それぞれ、２つのインター予測モード、マージ（それはスキップモード、マージモードの特別な場合を含む）、および進化した動きベクトル予測（ＡＭＶＰ）モードがある。ＡＭＶＰまたはマージモードのいずれかにおいて、ビデオコーダは、複数の動きベクトル予測子の動きベクトル（ＭＶ）候補リストを維持する。いくつかの例において、ＭＶ候補リストはマージモードに関して５つまでの候補を含み、ＡＭＶＰモードに関して２つのみの候補を含む。ビデオコーダは、動きベクトル（複数の場合もある）並びにＭＶ候補リストから１つの候補を選択することによりマージモードを用いてＰＵをコード化するときに使用される参照インデックスを生成する。
【００７０】
[0076]例えば、ビデオエンコーダ２０がマージモードを用いてカレントＰＵの動き情報を知らせる(signal)と、ビデオエンコーダ２０は１つまたは複数のマージ候補を含むマージ候補リストを生成することができる。マージ候補の各々は空間動きベクトル予測子または時間動きベクトル予測子（すなわち、ＴＭＶＰ）を指定する。空間動きベクトル予測子はカレントピクチャ内のＰＵであり得る（すなわち、カレントＰＵを含むピクチャ）。ＴＭＶＰは時間リファレンスピクチャ内のＰＵであり得る（すなわちカレントピクチャとは異なるタイムインスタンスで生じるピクチャ）。ＴＭＶＰの動き情報を指定するマージ候補は「時間マージ候補」と呼ばれることができる。
【００７１】
[0077]マージ候補リストを生成した後、ビデオエンコーダ２０はマージ候補のうちの１つを選択し、選択されたマージ候補の、マージ候補リスト内の位置を示すシンタックス要素をビットストリーム内に含めることができる。ビデオデコーダ３０がカレントＰＵを復号すると、ビデオデコーダ３０は同じマージ候補リストを生成する。さらに、ビデオデコーダ３０はビットストリームからシンタックス要素を取得することができ、マージ候補リスト内の選択されたマージ候補を決定するためにシンタックス要素を使用することができる。次に、ビデオデコーダ３０は選択されたマージ候補により示された動き情報をカレントＰＵの動き情報として使用することができる。従って、マージ候補は動き情報のセット、例えば、リファレンスピクチャリスト（リスト０およびリスト１）および対応する参照インデックスの両方に対応する動きベクトルを含むことができる。ビデオコーダがマージインデックスによりマージ候補を識別する場合、ビデオコーダはカレントブロックの予測に関する識別されたリファレンスピクチャを用いる。ビデオコーダはまたカレントブロックに関する関連した動きベクトルを決定する。
【００７２】
[0078]ＡＭＶＰモードは、ビデオエンコーダ２０が候補リストを生成し候補リストから候補を選択するという点においてマージモードに類似する。ＡＭＶＰ候補リスト内の候補は動きベクトル予測子（ＭＶＰ）候補と呼ばれることができる。ＡＭＶＰ候補リスト内の候補は空間動きベクトル予測子および／または時間動きベクトル予測子の動きベクトルを示す候補を含むことができる。ビデオエンコーダ２０がＡＭＶＰモードを用いてカレントＰＵの動き情報をシグナルすると、ビデオエンコーダ２０は候補リスト内の選択されたＭＶＰ候補の位置をシグナリングすることに加えて参照インデックスおよびカレントＰＵに関する動きベクトル差分（ＭＶＤ）をシグナルすることができる。カレントＰＵに関するＭＶＤはカレントＰＵの動きベクトルとＡＭＶＰ候補リストから選択された候補の動きベクトルとの差分を示すことができる。単一予測(uni-prediction)において、ビデオエンコーダ２０はカレントＰＵに関する１つのＭＶＤと１つの参照インデックスをシグナルすることができる。双方予測(bi-prediction)において、ビデオエンコーダ２０はカレントＰＵに関する２つの参照インデックスと２つのＭＶＤｓをシグナルすることができる。したがって、ＡＭＶＰを用いて１つのブロックをコード化するとき、リスト０またはリスト１からの各潜在的な予測方向に関してビデオコーダはいくつかの例に従うＭＶＰインデックスと共に各参照インデックスを明示的にシグナルする。ＡＭＶＰ候補は動きベクトルのみを含むので、ＭＶＰインデックスはＭＶ候補リストへのインデックスである。ＡＭＶＰモードにおいてビデオコーダはさらに予測された動きベクトルを精製(refine)する。
【００７３】
[0079]さらに、カレントＰＵの動き情報がＡＭＶＰモードを用いてシグナルされると、ビデオエンコーダ３０はビットストリームから、カレントＰＵに関するＭＶＤと候補リストインデックスを取得することができる。ビデオデコーダ３０は同じＡＭＶＰ候補リストを生成することができ、ＡＭＶＰ候補リスト内の選択されたＭＶＰ候補の位置の表示に基づいて、選択された候補を決定することができる。ビデオデコーダ３０は選択されたＭＶＰ候補により示される動きベクトルにＭＶＤを加算することによりカレントＰＵの動きベクトルをリカバすることができる。すなわち、ビデオデコーダ３０は、ＭＶＤおよび選択されたＭＶＰ候補により示される動きベクトルに少なくとも部分的に基づいてカレントＰＵの動きベクトルを決定することができる。ビデオデコーダ３０は次にカレントＰＵに関する予測ブロック(predictive block)を生成するためにカレントＰＵの動きベクトルまたはリカバされた動きベクトルを使用することができる。
【００７４】
[0080]従って、上述したように、ビデオコーダは同様に、同じ空間および時間隣接ブロックに基づいてＡＭＶＰモードとマージモードに関する候補を派生する。しかしながら、マージモードとＡＭＶＰモードは、マージ候補が動き情報のフルセットに対応するのに対してＡＭＶＰ候補は特定の予測方向および参照インデックスに関する１つの動きベクトルのみを含む。両方のモードの候補は同様に同じ空間および時間隣接ブロックから派生される。図２はマージモードおよびＡＭＶＰモードに関する空間動きベクトル候補を例示する概念図である。すなわち、図２は、マージモードおよびＡＭＶＰモードに関する空間ＭＶ候補を図示する。
【００７５】
[0081]ブロックから候補を生成する方法はマージモードおよびＡＭＶＰモードに関して異なるけれども、特定のＰＵ（ＰＵ０）に関して図２に示される隣接ブロックから空間ＭＶ候補が派生される。例えば、マージモードにおいて、図２に示されるように５つの可能な空間ＭＶ候補位置{a0, a1, b0, b1, b2}がある。ビデオコーダは各ＭＶ候補位置に関して、その位置におけるＭＶ候補が利用可能であるかどうかを決定する。一例として、候補は、そのロケーションにおけるブロックがまだ復号されていない場合、利用可能でない場合がある。ビデオコーダは、以下の順番{a1, b1, b0, a0, b2}で利用可能なＭＶ候補をチェックすることができる。
【００７６】
[0082]ＡＭＶＰモードにおいて、ビデオコーダは隣接ブロックを２つのグループに分割する：図２に示されるブロックb0, b1およびb2から構成される上側隣接グループと、ブロックa0およびa1から構成される左側グループ。左側隣接グループの場合、ビデオコーダはいくつかの例において以下の順番{a0, a1}に従って、ブロックの利用可能性をチェックする。上側隣接グループの場合、ビデオコーダはいくつかの例において以下の順番{b0, b1, b2}に従って上側隣接グループの利用可能性をチェックする。各グループに関してシグナリングされた参照インデックスにより示されるピクチャと同じリファレンスピクチャを指す潜在候補はグループの最終候補を形成するためにビデオコーダにより選択される最も高い優先度を有する。同じリファレンスピクチャを指す動きベクトルを含む隣接ブロックは存在しないことはあり得る。この場合、シグナリングされたインデックスにより示されたピクチャと同じリファレンスピクチャを指す動きベクトルをビデオコーダが見つけることができない場合、ビデオコーダは第１の利用可能な候補を選択する。ビデオコーダは最終候補を形成するために第１の利用可能な候補をスケール(scale)する。この場合候補動きベクトルをスケーリングすることは時間距離差分を補償する。
【００７７】
[0083]上述したように、ＰＵまたはＣＵはサンプルのルーマブロック並びにサンプルの複数の対応するクロマブロックを有することができる。いくつかの例において、（クロマサブサンプリングと呼ばれる）各クロマサンプルに対応する複数のルーマサンプルが存在することができる。いくつかの例において、動きベクトルはカレントＰＵ／ＣＵのルーマコンポーネントに関して動きベクトルが導出される。そのような例において、動きベクトルがクロマ動き補償に使用される前に、動きベクトルが、クロマサンプリングフォーマットに基づいてスケールされる。したがって、動きベクトルを決定すると、ビデオコーダは最初にＰＵまたはＣＵに関するルーマ動きベクトルコンポーネントを導出する。ビデオコーダはクロマサブサンプリングフォーマットに基づいてクロマ動きベクトルを決定するためにルーマ動きベクトルをスケールすることができる。例えば、動きベクトルは、カレントピクチャが４：４：４フォーマット、４：２：２フォーマットあるいは４：２：０フォーマットを用いて符号化されるかどうかに依存して異なってスケールされることができる。
【００７８】
[0084]さらに、ＨＥＶＣにおいて、ビデオコーダはＬＣＵを平行な動き推定領域（ＭＥＲｓ）に分割することができる。ＬＣＵがＭＥＲの一部であるとき、ビデオコーダは、カレントＰＵと異なるＭＥＲｓに属する隣接ＰＵｓのみがマージ／スキップＭＶＰリスト構成プロセスに含まれることを可能にする。ビデオコーダはピクチャパラメータセット内のＭＥＲのサイズをシンタックス要素（例えば、”log2_parallel_merge_level_minus2”）としてシグナルする。
【００７９】
[0085]ＭＥＲサイズがＮ×Ｎサンプルより大きいとき、および最小の可能なＣＵサイズが２Ｎ×２Ｎサンプルに設定されるときのようないくつかの例において、ＭＥＲは動き推定に関して空間的に隣接するブロックの利用可能性に影響を与えることができる。例えば、上述の場合、空間的に隣接するブロックがカレントＰＵと同じＭＥＲ内にある場合、ビデオコーダは空間的に隣接するブロックが利用可能でないと考える。
【００８０】
[0086]（ＨＥＶＣ）レンジ拡張規格に含めるためのイントラブロックコピー（ＢＣ）技術に関する提案が最近採用された。http://phenis.int-evry.fr/jct/doc_end_use/documents/17_Valencia/wg11/JCTVC-Q1005-v4.zip,から入手可能である、D. Flynn他、「高効率ビデオ符号化（ＨＥＶＣ）レンジ拡張テキスト仕様(High Efficiency Video Coding (HEVC) Range Extensions text specification)：ドラフト７」, ＩＴＵ−Ｔ  ＳＧ  １６  ＷＰ３およびＩＳＯ／ＩＥＣＪＴＣ１／ＳＣ  ２９／ＷＧ１１のビデオ符号化に関する合同組織（ＪＣＴ−ＶＣ）、第１７回ミーティング、バレンシア、ＥＳ、２０１４年３月２７日−４月４日、ドキュメント：ＪＣＴＶＣ−Ｑ１００５（以下、「ＪＣＴＶＣ−Ｑ１００５＿ｖ４」は、ＨＥＶＣレンジ拡張のドラフトである。ＨＥＶＣに対するレンジ拡張はまたＪＣＴ−ＶＣにより開発されつつある。
【００８１】
[0087]このドキュメントにおいて、ＪＣＴＶＣ−Ｑ１００３におけるようなＨＥＶＣ仕様テキストは「ＨＥＶＣバージョン１」と呼ばれることができる。レンジ拡張仕様はＨＥＶＣのバージョン２になることができる。しかしながら、大規模な範囲において、提案された技術に関する限り、例えば、動きベクトル予測に関して、ＨＥＶＣバージョン１とレンジ拡張仕様は技術的に類似している。それゆえ、ＨＥＶＣバージョン１に対する変更への言及は、同じ変更がレンジ拡張仕様に適用されることができることを意味する。
【００８２】
[0088]最近、動きを伴うグラフィックおよびテキストのようなスクリーンコンテンツ素材に関する新しいコーディングツールの研究が始まり、研究者達はスクリーンコンテンツに関するコード化効率を改善する技術を提案してきた。コード化効率における著しい改善は新規で専用のコード化ツールを用いてスクリーンコンテンツの特性を開発することにより取得されることができるので、提案に関する要請(a Call for Proposals)(CfP)が発行された。このCfPの使用事例や要件はＭＰＥＧドキュメントＮ１４１７４に記載されている。第１７回ＪＣＴ−ＶＣ会議の期間中に、研究者達はＳＣＣテストモデル（ＳＣＭ）を確立した。http://phenix.int-evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R1005-v1.zip  から入手可能なJoshi他著「高効率ビデオ符号化（ＨＥＶＣ）スクリーンコンテンツ符号化：ドラフト１」、ITU-T SG 16 WP3およびISO/IEC JTC 1/SC 29/WG 11、第１８回会議、札幌、日本、２０１４年６月３０日−７月９日、ドキュメントＪＣＴＶＣ−Ｒ１００５（以下、「ＪＣＴＶＣ−Ｒ１００５」）はＳＣＣの最近の作業草案（ＷＤ）である。
【００８３】
[0089]遠隔デスクトップ、遠隔ゲーム、ワイヤレスディスプレイ、自動車用のインフォテインメント(automotive infotainment)、クラウドコンピューティング等のような多くのアプリケーションは日常の使用においてルーチン化されつつある。これらのアプリケーションにおけるビデオコンテンツは自然コンテンツ、テキスト、人工グラフィックス等の組み合わせから構成することができる。テキストおよび人工的グラフィックス領域では、（文字、アイコン、およびシンボルのような）繰り返されるパターンが度々存在する。イントラＢＣは、C. Pang他、「２−Ｄ  ＭＶｓを用いた非ＲＣＥ３イントラ動き補償(Non-RCE3 Intra Motion Compensation with 2-D MVs)」、ＩＴＵ−Ｔ  ＳＧ  １６ＷＰ  ３およびＩＳＯ／ＩＥＣ  ＪＴＣ  １・ＳＣ２９・ＷＧ１１のビデオ符号化に関する合同組織（ＪＣＴ−ＶＣ）、第１４回会議、ＡＴ、２０１３年７月２５日−８月２日、ドキュメントＪＣＴＶＣ−Ｎ０２５６（以下、「ＪＣＴＶＣ−Ｎ０２５６」）に記載されるように、テキストおおび人工グラフィックスを符号化する際の冗長度を除去可能にし、フレーム内コード化効率を改善する技術である。
【００８４】
[0090]イントラＢＣはある種の空間冗長度を除去し、フレーム内コード化効率を改善することを可能にする技術である。イントラＢＣ技術に関するさらなる詳細はＪＣＴＶＣ−Ｎ０２５６に見出すことができる。イントラブロックコピー（ＢＣ）イントラ予測モードはカレントスクリーンコンテンツコーディング（ＳＣＣ）に含まれてきた。イントラＢＣの一例は図３に示される、ここにおいて、カレントブロック（例えば、カレントＣＵまたはＰＵ）はカレントピクチャまたはスライスのすでに復号されたブロックから予測される。予測信号はデブロッキング(de-blocking)およびサンプルアダプティブオフセット（ＳＡＯ）を含む、ループ内フィルタリングなしに再構成されることができる。イントラＢＣでコード化されたルーマコンポーネントまたはクロマコンポーネントの場合、いくつかの例によれば、整数ブロック補償を用いてブロック補償が行われ、それゆえ、補間は必要ない。
【００８５】
[0091]図３は例示イントラブロックコピー技術を図示する概念図である。図３の例において、カレントピクチャ１０３はカレントブロック１０２を含む。いくつかの例において、カレントブロック１０２はＣＵである。他の例において、カレントブロック１０２はＰＵである。更に、図３はカレントピクチャ１０３内の予測ブロック１０４（すなわち、予測信号）を図示する。ビデオコーダはイントラＢＣモードに従ってカレントビデオブロック１０２を予測するために予測ブロック１０４を使用することができる。
【００８６】
[0092]ビデオエンコーダ２０はビデオデータの従前に再構成されたブロックのセットの中から予測ブロック１０４を決定する。図３の例において、ピクチャ１０３内のサーチ領域１０８は従前に再構成されたビデオブロックのセットを含む。ビデオエンコーダ２０は、サーチ領域１０８内の種々のビデオブロックに基づいてカレントブロック１０２を予測しコード化する相対的な効率性および精度の解析に基づいてサーチ領域１０８内のビデオブロックの中からカレントブロック１０２を予測するために予測ビデオブロック１０２を決定することができる。
【００８７】
[0093]ビデオエンコーダ２０はカレントビデオブロック１０２に対する予測ビデオブロック１０４のロケーションまたは変位を表す２次元オフセットベクトル１０６を決定する。この開示は、また「ブロックベクトル」としてイントラブロックコピー内で使用されるベクトルに言及することができる。オフセットベクトル１０６は水平変位コンポーネント１１２および垂直変位コンポーネント１１０を含み、それはそれぞれカレントブロック１０２に対する予測ブロック１０４の水平および垂直変位(horizontal and vertical displacement)を表す。ビデオエンコーダ２０は、例えば、符号化されたビデオビットストリーム内の、水平変位コンポーネント１１２および垂直変位コンポーネント１１０を定義する、２次元オフセットベクトル１０６を識別または定義する１つまたは複数のシンタックス要素を含むことができる。ビデオデコーダ３０はオフセットベクトル１０６を決定するために１つまたは複数のシンタックス要素を復号することができ、予測ブロック１０４を識別するために決定されたベクトルを使用することができる。
【００８８】
[0094]カレントブロック１０２はＣＵまたはＣＵのＰＵであり得る。いくつかの例において、ビデオコーダ（例えば、ビデオエンコーダ２０および／またはビデオデコーダ３０）は、イントラＢＣに従って予測されるＣＵを多数のＰＵｓに分割する。そのような例において、ビデオコーダは、ＣＵのＰＵｓの各々に関してそれぞれの（例えば、異なる）２次元オフセットベクトル１０６を決定することができる。例えば、ビデオコーダは２Ｎ×２ＮＣＵを２つの２Ｎ×Ｎ  ＰＵｓ、２つのＮ×２Ｎ  ＰＵｓ、または４つのＮ×Ｎ  ＰＵｓに分割することができる。他の例として、ビデオコーダは２Ｎ×２Ｎ  ＣＵを（（Ｎ／２）×Ｎ＋（３Ｎ／２）×Ｎ）  ＰＵｓ、（（３Ｎ／２）×Ｎ＋（Ｎ／２）×Ｎ）ＰＵｓ、（Ｎ×（Ｎ／２）＋Ｎ×（３Ｎ／２））ＰＵｓ、（Ｎ×（３Ｎ／２）＋（Ｎ×（Ｎ／２））  ＰＵｓ、４つの（Ｎ／２）×２Ｎ  ＰＵｓ、または４つの２Ｎ×（Ｎ／２）  ＰＵｓに分割することができる。いくつかの例において、ビデオコーダは２Ｎ×２Ｎ  ＰＵを用いて２Ｎ×２Ｎ  ＣＵを予測する。
【００８９】
[0095]イントラブロックＢＣモードを用いてブロックを符号化するとき、ビデオコーダは、ルーマコンポーネントとクロマコンポーネントの両方に関してオフセットベクトル１０６は整数ピクセル精度を有すると決定する。動きベクトルに関する整数ピクセル精度を用いることは予測ブロックを生成するためにリファレンスブロックの補間を回避する。ブロックベクトルは整数ピクセル精度を用いて予測されシグナルされる。ＪＣＴＶＣ−Ｒ１００５に従って、ビデオコーダは最初に各ＣＴＢの始めでブロックベクトル予測子を(-w, 0)に設定する。ここにおいて、「w」はＣＵの幅である。ブロックベクトル予測子を用いて、ビデオコーダは従前に符号化されたＣＵまたは、イントラＢＣモードを用いてコード化されたＰＵの値に基づいてカレントブロック１０２に関するブロックベクトルを予測しようと試みる。
【００９０】
[0096]各イントラＢＣ  ＣＵまたはＰＵがコード化された後、ビデオコーダはブロックベクトル予測子を更新する。ＣＵまたはＰＵがイントラＢＣを用いてコード化されない場合、ビデオコーダはブロックベクトル予測子を変更しない。ＣＵまたはＰＵに関するブロックベクトル予測子を決定した後、ビデオエンコーダ２０はブロックベクトル差分を決定するため予測子と実際のブロックベクトルとの間の差分を決定する。ビデオエンコーダ２０はＨＥＶＣの動きベクトル差分コード化方法を用いてブロックベクトル差分を符号化することができる。
【００９１】
[0097]いくつかの例において、イントラＢＣはＣＵレベルとＰＵレベルの両方でイネーブルされる。ＰＵレベルのイントラＢＣモードの場合、２Ｎ×ＮおよびＮ×２ＮのＰＵ分割サイズはすべてのＣＵサイズに関してサポートされる。最小可能ＣＵがＮ×Ｎのサンプルのサイズを有するとき、ＰＵ分割がサポートされる。
【００９２】
[0098]したがって、ビデオコーダはイントラＢＣをインターモードのように取り扱う。さらに、Bin Li他「非ＳＣＣＥ１：イントラＢＣモードとインターモードの統合」、ITU-T SG 16 WP 3およびISO/IEC JTC 1/SC 29/WG 11のビデオ符号化に関する合同組織（ＪＣＴ−ＶＣ）、第１８回会議、札幌、日本、２０１４年６月３０日−７月９日、ドキュメントＪＣＴＶＣ−Ｒ０１００（以下、「ＪＣＴＶＣ−Ｒ０１００」）は、イントラＢＣモードとインターモードの統合のための技術を提案した。ＪＣＴＶＣ−Ｒ０１００の技術に従って、ビデオコーダはカレントピクチャをリファレンスピクチャリストに追加する。カレントピクチャがリファレンスピクチャリストにあるので、ビデオコーダは、ビデオコーダが時間リファレンスピクチャ（すなわち、カレントピクチャのＰＯＣ値とは異なるＰＯＣ値を有するリファレンスピクチャ）を使用するのと同じ方法でイントラＢＣに関するカレントピクチャをリファレンスピクチャとして使用することができる。ＪＣＴＶＣ−Ｒ０１００の技術に従って、ビデオコーダはカレントピクチャを、カレントピクチャを復号する前のロングタームリファレンスピクチャ(long-term reference picture)としてマーキングし、カレントピクチャを、カレントピクチャを復号した後のショートタームリファレンスピクチャとしてマーキングする。さらに、ＪＣＴＶＣ−Ｒ０１００の技術に従って、イントラＢＣモードがイネーブルになると、ビデオコーダはシンタックスパーシングプロセスおよびＩスライスに関するＰスライスの復号プロセスに従う。ＪＣＴＶＣ−Ｑ１００３で定義されるように、Ｉスライスはイントラ予測のみを用いて復号されるスライスである。さらに、ＪＣＴＶＣ−Ｑ１００３に定義されるようにイントラ予測は同じ復号されたスライスのデータエレメント（例えば、サンプル値）のみから導出される。ＪＣＴＶＣ−Ｑ１００３で定義されるように、Ｐスライスは、各ブックのサンプル値を予測するために参照インデックスおよびせいぜい１つの動きベクトルを用いたインター予測またはイントラ予測を用いて復号されることができるスライスである。Ｂスライスは各ブロックのサンプル値を予測するために参照インデックスおよびせいぜい２つの動きベクトルを用いたインター予測またはイントラ予測を用いて復号されることができるスライスである。
【００９３】
[0099]イントラＢＣモードがインター予測モードとして取り扱われるとき、ＡＭＶＰまたはマージに関する時間動きベクトル予測導出、制限されたイントラ予測との相互作用、リファレンスリスト構成等にいくつかの問題が存在する。この開示の技術は、ビデオコーダがイントラＢＣモードをインター予測モードとして取り扱う場合にイントラＢＣとインター予測の統合を改良する。この場合、ビデオコーダはカレントピクチャをリファレンスリスト０（すなわち、リファレンスピクチャリスト０）に追加する。イントラＢＣモードはインター予測モードと類似するが、ビデオコーダは、カレントブロックに関連するリファレンスピクチャがカレントピクチャである（すなわち、リファレンスピクチャがカレントピクチャと同じＰＯＣ値を有する）かどうかをチェックすることによりブロックがイントラＢＣコード化対インターモードコード化であるかどうかを決定することができる。ブロックのリファレンスピクチャがカレントピクチャである場合に、ブロックはイントラＢＣモードのブロックである。さもなければ、カレントブロックは、インター予測モードを用いてコード化される。この開示の技術に従って種々の例がここに記載される。以下の例の各々は別個にあるいは共同して他の例の１つまたは複数に適用することができる。
【００９４】
[0100]いくつかの例において、ビデオコーダ（例えば、ビデオエンコーダ２０および／またはビデオデコーダ３０）はカレントピクチャをリファレンスリスト０に加算し、ビデオコーダは、カレントピクチャの復号の前のロングタームとしてカレントリファレンスピクチャをマーキングする。この場合、ビデオコーダは、ＨＥＶＣ規格に記載された１／４ピクセル精度のような、サブピクセル精度または整数ピクセル精度を用いてイントラＢＣモードに関するブロックベクトルをコード化することができる。ビデオコーダがブロックに関する時間動きベクトル予測を使用し、ビデオコーダが整数ピクセル精度でイントラＢＣに関する動きベクトルをコード化すると、ビデオコーダは、整数ピクセル精度でイントラＢＣモード、ＡＭＶＰモードまたはマージモードに関する動きベクトル予測子（ＴＭＶＰ）を使用することができる。ビデオコーダは、コロケートされたブロックが通常の(conventional)イントラブロックであるときは整数ピクセル精度で、またはコロケートされたブロックが通常のインターブロックであるときはサブピクセル精度でＴＭＶＰを用いることができる。
【００９５】
[0101]いくつかの例において、ビデオコーダは、ＴＭＶＰがサブピクセル精度を有すると決定することができる。この場合、ビデオコーダは最初に動きベクトルを右シフトし、次に、結果として得られた右シフトされた動きベクトルをＴＭＶＰとして使用する。例えば、ビデオコーダは、ＴＭＶＰの小数部分を表す任意のビット（例えば、２つの最下位ビット）が消去され、結果としてＴＭＶＰが整数レベルの精度を有するようにＴＭＶＰのバイナリ値を右シフトすることができる。言い換えれば、ビデオコーダはＴＭＶＰがサブピクセル精度を有すると決定することができ、サブピクセル精度を有すると決定されたＴＭＶＰを右シフトすることができる。この例では、ＴＭＶＰを右シフトすることはＴＭＶＰをサブピクセル精度から整数ピクセル精度に変換し、それによりＴＭＶＰをカレントブロックのＢＣモードコード化のために使用可能にまたは有効利用させる。他の例において、ビデオコーダは、動きベクトル精度が整数精度であるかサブピクセル精度であるかにかかわらず、動きベクトルを右シフトすることなくＴＭＶＰ動きベクトルを使用することができる。いかなる右シフトを行うことなくＴＭＶＰ動きベクトルを使用することにより、ビデオコーダはサブピクセル精度動きベクトルを整数ピクセル精度を有する動きベクトルとして解釈する。
【００９６】
[0102]したがって、ビデオコーダがＴＭＶＰを右シフトすることを包含する符号化プロセスを実行するこの開示の例では、ビデオコーダはカレントピクチャと異なるリファレンスピクチャのビデオデータのコロケートされたブロックを決定する。さらに、そのような例では、ビデオコーダはビデオデータのコロケートされたブロックからＴＭＶＰを導出することができる。ビデオコーダはイントラブロックコピーモードおよび右シフトされた時間動きベクトル予測子を用いてカレントピクチャのビデオデータのカレントブロックをコード化することができる。このコード化プロセスの一部として、ビデオコーダはビデオデータのコロケートされたブロックが符号化されたイントラＢＣモードまたは符号化されたインター予測モードであるかどかを決定することができる。イントラＢＣモードを用いてコード化されたビデオブロックは整数ピクセル精度動きベクトルを有し、整数精度を用いてコード化されたビデオブロックはサブピクセル精度動きベクトルを有するので、ビデオコーダは、ビデオブロックがイントラＢＣモードまたはインター予測モードを用いて符号化されたかどうかに基づいて、ＴＭＶＰがサブピクセル精度または整数ピクセル精度を有するかどうかを決定することができる。したがって、ビデオコーダは、ビデオデータのコロケートされたブロックが符号化された整数精度モードであると決定することに応答する場合にのみＴＭＶＰを右シフトするように構成されることができる。
【００９７】
[0103]いくつかの例において、ビデオエンコーダ２０および／またはビデオデコーダ３０は時間動きベクトル予測子が整数ピクセル精度またはサブピクセル精度を有するかどうかを決定することができる。サブピクセル精度はまた分数ピクセル精度または非整数ピクセル精度と呼ばれることが出来る。ビデオエンコーダ２０および／ビデオデコーダ３０は時間動きベクトル予測子がサブピクセル精度を有すると決定することに応答する場合にのみ時間動きベクトル予測子を右シフトするように構成されることができる。
【００９８】
[0104]上述したように、ビデオコーダはＴＭＶＰをサブピクセル精度を有することから整数ピクセル精度を有することへ変換するためにＴＭＶＰを右シフトすることができる。例えば、ビデオコーダはサブピクセル精度を除去するためにＴＭＶＰを右シフトすることができ、それによりＴＭＶＰのピクセル精度をサブピクセル精度から整数ピクセル精度へ変換する。例えば、ＴＭＶＰは、動きベクトルがカレントブロックの上３．５ピクセル、右３．２５ピクセルのロケーションを示すことを意味する、水平および垂直コンポーネントに関する値（3.25, -3.5）を最初に有することができる。この例において、サブピクセル精度を除去するために右シフトすることは、動きベクトルがカレントブロックの上３ピクセルおよび右３ピクセルのロケーションを示すことを意味する、ＴＭＶＰが水平および垂直コンポーネントに関して（３、−３）の値を有する結果となる。整数レベルの精度を有する時間動きベクトル予測子を変換することにより、予測ブロックを生成するためのリファレンスブロックの補間は回避されることができる。
【００９９】
[0105]他の例として、ビデオデコーダ３０はカレントピクチャのビデオデータのイントラブロックコピーモード符号化ブロックを受信するように構成されることができる。ビデオデコーダ３０はカレントピクチャと異なるリファレンスピクチャのビデオデータのコロケートされたブロックを決定することができる。ビデオデコーダ３０はビデオデータのコロケートされたブロックから時間動きベクトル予測子を導出することができる。ビデオデコーダ３０はＴＭＶＰを右シフトすることができる。ビデオデコーダ３０は右シフトされたＴＭＶＰに基づいてカレントピクチャ内の予測ブロックを決定することができる。ビデオデコーダ３０は右シフトされた時間動きベクトル予測子を用いてカレントピクチャのビデオデータのブロックを復号することができる。
【０１００】
[0106]他の例として、ビデオデコーダ３０はカレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含めることができ、リファレンスピクチャはカレントピクチャと異なる。さらに、この例では、ビデオデコーダ３０はリファレンスピクチャのコロケートされたブロックを決定する。コロケートされたブロックはカレントピクチャのカレントブロックとコロケートされる。ビデオデコーダ３０はコロケートされたブロックから時間動きベクトル予測子を導出することができる。例えば、ビデオデコーダ３０はＴＭＶＰが(-5.25, 4.00)に等しいと決定することができ、その値は、例えば、バイナリ表示の２つの最下位ビットに対応するサブピクセル精度値を有するバイナリ表示により識別される。ビデオデコーダ３０はＴＭＶＰがサブピクセル精度を有すると決定するように構成されることができる。いくつかの例において、ビデオデコーダ３０は、ビデオデータのコロケートされたブロックが符号化されたイントラブロックコピーモードであるかあるいは符号化されたインター予測モードであるかを決定することによりＴＭＶＰがサブピクセル精度を有すると決定する。ビデオデータのコロケートされたブロックが符号化されたインター予測モードであるという決定は、ビデオデータのコロケートされたブロックがサブピクセル精度（例えば、非整数精度または分数精度）を有することを意味することができる。
【０１０１】
[0107]この例において、ＴＭＶＰがサブピクセル精度を有するとの決定に応答して、ビデオデコーダ３０はＴＭＶＰを右シフトする。いくつかの例において、ビデオデコーダ３０は、コロケートされたブロックが符号化されたインター予測モードであると決定する場合にのみＴＭＶＰを右シフトする。ビデオデコーダ３０は右シフトされたＴＭＶＰに基づいて、カレントピクチャ内の予測ブロックを決定するように構成されることができる。例えば、図３の例において、ビデオデコーダ３０は予測信号１０４を決定するために右シフトされたＴＭＶＰを使用することができる。ビデオデコーダ３０は右シフトされた時間動きベクトル予測子に基づいて決定された予測ブロックに基づいて残差データを生成することができる。
【０１０２】
[0108]他の例として、ビデオエンコーダ２０はリファレンスピクチャがカレントピクチャと異なる状態でカレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含むように構成されることができる。ビデオエンコーダ２０はビデオデータのリファレンスピクチャのコロケートされたブロックを決定するように構成されることができる。コロケートされたブロックはカレントピクチャのカレントブロックとコロケートされ、リファレンスピクチャはカレントピクチャと異なる。ビデオエンコーダ２０はコロケートされたブロックから時間動きベクトル予測子を導出するように構成されることができる。ビデオエンコーダ２０は、時間動きベクトル予測子がサブピクセル精度を有すると決定するように構成されることができる。例えば、ビデオエンコーダ２０はビデオデータのコロケートされたブロックが符号化されたイントラブロックコピーモードまたは符号化されたインター予測モードであるかを決定するように構成されることにより、時間動きベクトル予測子が、サブピクセル精度を有すると決定するように構成されることができる。ビデオデータのコロケートされたブロックが符号化されたインター予測モードであるとの決定は、ビデオデータのコロケートされたブロックがサブピクセル精度（例えば、非整数精度または分数精度）を有することを意味することができる。
【０１０３】
[0109]ビデオエンコーダ２０はサブピクセル精度を有すると決定された時間動きベクトル予測子を右シフトするように構成されることができる。いくつかの例において、ビデオエンコーダ２０は、コロケートされたブロックが符号化されたインター予測モードであると決定された場合にのみ時間動きベクトル予測子を右シフトするように構成されることができる。ビデオエンコーダ２０は右シフトされた時間動きベクトル予測子に基づいて、カレントピクチャ内の予測ブロックを決定するように構成されることができる。ビデオエンコーダ２０は予測ブロックに基づいて残差データを生成するように構成されることができる。
【０１０４】
[0110]さらに、この開示のいくつかの例において、Ｉスライスの場合、ビデオコーダはinitType値を導出する。initType値はコンテキストタイプを示し、それは、ビデオコーダがどのようにシンタックス要素がＣＡＢＡＣコード化されるかを決定するために使用される。initType値はinitTypeの値に依存することができ、さらに、cabac_init_flagシンタックス要素に依存することができる。ＪＣＴＶＣ−Ｑ１００３で定義されるように、cabac_init_flagシンタックス要素はコンテキスト変数に関する初期化処理に使用される初期化テーブルを決定するための方法を特定する。ビデオコーダは、ＣＡＢＡＣコンテキストを示すことができるctxIdx値の値を決定するためにinitType値を使用することができる。この開示の技術に従う１つの例において、initTypeの導出は以下の疑似コードで以下のように変更される：
if( slice_type  = =  I && !intra_block_copy_enabled_flag )
initType = 0
else if (slice_type  = =  I && intra_block_copy_enabled_flag )
initType = cabac_init_flag ?2 :1
else if( slice_type  = =  P )
initType = cabac_init_flag ?2 :1
else
initType = cabac_init_flag ?1 :2      
コードセクション１：initType導出
セクション１の先行コードはＪＣＴＶＣ−Ｑ１００３のセクション９．３．２．２を変更する。下線が引かれたテキストはＪＣＴＶＣ−Ｑ１００３に追加されたテキストを示す。ＪＣＴＶＣ−Ｑ１００３に定義されるように、スライスタイプシンタックス要素はスライスに関するコード化タイプを示す。例えば、スライスタイプシンタックス要素はスライスがＩスライスか、Ｐスライスか、またはＢスライスかを示す。さらに、ＪＣＴＶＣ−Ｒ１００５に定義されるように、intra_block_copy_enabled_flagはシーケンスパラメータセット内のシンタックス要素である。Inntra_bock_copy_enabled_flagはシーケンスパラメータセットがアクティブであるコード化ビデオシーケンス内のスライスに関してイントラＢＣがイネーブルされるかどうかを示す。したがって、コードセクション１の例において、initType変数は、イントラＢＣがＩスライスに対してイネーブルされるかどうかに依存してＩスライスを符号化するとき異なる値を有する。
【０１０５】
[0111]他の例において、ビデオコーダは、コードセクション１に従って、イントラＢＣを使用せず、Ｉスライスに関してビットストリーム内に存在しないＣＡＢＡＣ符号シンタックス要素に使用されるinitType値を決定する。言い換えれば、一般的なＩスライスに関して存在しない、すなわちイントラＢＣを伴わないシンタックス要素に関してのみ、対応する変数initTypeはコードセクション１におけるように導出される。他のシンタックス要素の場合、ビデオコーダはinitTypeの値は０に設定することができる。
【０１０６】
[0112]他の例において、イントラＢＣがＣＵまたはＰＵに関してイネーブルされるとき、ビデオコーダはイントラモードとインター予測モードの両方をＩスライス内で可能にすることができる。それゆえ、ビデオデコーダ３０はイントラ予測を用いてピクチャのＩスライスの第１のブロックを復号することができ、イントラＢＣモードを用いてＩスライスの第２のブロックを復号することができる。同様に、ビデオエンコーダ２０はイントラ予測を用いてピクチャのＩスライスの第１のブロックを符号化することができ、イントラＢＣモードを用いてＩスライスの第２のブロックを符号化することができる。以下のの手順例はこの可能性を示す：
When pred_mode_flag が存在しないとき、ビデオコーダは、ｘ＝x0...x0＋nCbS−１およびy=y0…y0+nCbS-1の場合に以下のように変数CuPredMode[s][y]を導出する。
−slice_typeがＩに等しく、intra_block_copy_enalbed_flagが０に等しい場合、CuPredModel[x][y]はMODE_INTRAに等しいと推測される。
コードセクション２：CUPredModeの変更
先行する疑似コードはＪＣＴＶＣ−Ｑ１００３のセクション７．４．９．５を変更する。下線が引かれたテキストはＪＣＴＶＣ−Ｑ１００３に追加されたテキストである。ＪＣＴＶＣ−Ｑ１００３に定義されるように、pred_mode_flagはＣＵに関する予測モード（例えば、インター予測(MODE_INTER)またはイントラ予測（MODE_INTRA））を示すシンタックス要素である。ＣＵｓの予測モードはある環境において推測されることができるので、ビデオコーダは、単にpred_mode_flagの値に依存するよりもむしろ、ピクセルのロケーションに基づいてインデックスされたアレイ変数CuPredModeに予測モードをロードする。従って、コードセクション２では、CuPredMode[x][y]はピクチャ内のロケーション(x, y)におけるＣＵの予測モードを示す。nBbsはＣＵのコード化ブロックのサイズを示す。それゆえ、コードセクション２の例では、ＣＵがＩスライスでイントラＢＣがＩスライスに関してイネーブルされるときビデオコーダはCupredMode[x][y]の値を推定することができる（すなわち、ロケーション(x, y)におけるＣＵの予測モードがMODE_INTRAである）。それゆえ、ビデオエンコーダ２０がＣＵに関するpred_mode_flagシンタックス要素をシグナルする必要がない。これは、符号化されたビデオデータのビットレートを低減することができる。
【０１０７】
[0113]ビデオコーダがこの開示の統合された技術を用いたインター予測としてイントラＢＣを取り扱う他の例として、イントラＢＣコード化ブロックはＡＭＶＰに関する同じ候補リストを共有することができ、またはインターコード化されたブロックとモードをマージすることができる。この例において、候補リストはイントラＢＣコード化ブロックとインターコード化ブロックの両方を含むことができる。それゆえ、ビデオエンコーダ２０および／またはビデオデコーダ３０は、イントラブロックコピーモードに関する少なくとも１つの動きベクトル候補と、インター予測モード符号化ブロックに関する少なくとも１つの候補を含む動きベクトル候補リストを生成することができる。いくつかの例においてイントラＢＣブロックはＡＭＶＰに関する別箇の候補リストを有することができるか、またはインターコード化ブロックからマージすることができる。予測モードは同じであるが、ビデオコーダは、カレントブロックに関するリファレンスピクチャがカレントピクチャであるかどうかをチェックすることによりイントラＢＣコード化ブロックを一般的なインターブロックと異ならせることができる。
【０１０８】
[0114]さらに、この開示の特別な技術はまた、リファレンスリスト構成プロセスを変更することにより統合されたイントラＢＣおよびインターモードを強化することができる。以下の言語おおび疑似コードは、ＪＣＴＶＣ−Ｑ１００３のセクション８．３．４のリファレンスピクチャリスト構成に関する復号プロセスを変更する。下線が引かれたテキストはＪＣＴＶＣ−Ｑ１００３に追加されたテキストを示す。
このプロセスは各ＰまたはＢスライス、またはintra_block_copy_enabled_flagが１に等しいときＩスライスに関する復号プロセスの開始で起動される。
リファレンスピクチャは節８．５．３．３．２（リファレンスピクチャ選択プロセス）で規定される参照インデックスを介してアドレスされる。参照インデックスはリファレンスピクチャリストへのインデックスである。Ｐスライスを復号するとき、単一のリファレンスピクチャリストRefPicList0がある。Ｂスライスを復号するとき、RefPicList0に加えて第２の独立したリファレンスピクチャリストRefPicList1がある。
【０１０９】
[0115]従って、先行する言語は、イントラＢＣモードがＩスライスに関してイネーブルされると、リファレンスピクチャプロセスの変更を可能にするように働く。それゆえ、この例において、ビデオエンコーダ２０はイントラＢＣがＩスライスに関してイネーブルされると、ピクチャのＩスライスに関するリファレンスピクチャリストを構築することができる。リファレンスピクチャリストはピクチャを含む。同様の例において、ビデオデコーダ３０はイントラＢＣがピクチャに関してイネーブルされるかどうかを示すシンタックス要素（例えば、intra_block_copy_enabled_flag）をビットストリームから取得することができる。この例では、シンタックス要素に基づいて、イントラＢＣがピクチャに関してイネーブルされると決定することに応答して、ビデオデコーダ３０はピクチャを含むリファレンスピクチャリストを構築することができる。
【０１１０】
[0116]一例において、intra_block_copy_enabled_flagが１に等しい状態でＩスライスを復号するとき、ビデオデコーダ３０は１つのリファレンスピクチャリストのみを使用すればよい。他の例において、intra_block_copy_enabled_flagが１に等しい状態でＩスライスを復号するとき、RefPicList0に加えて第２の独立したリファレンスピクチャリストRefPicList1があってもよい。
【０１１１】
[0117]いくつかの例において、各スライスに関する復号プロセスの初めで、リファレンスピクチャリストRefPicList0およびＢスライスの場合、RefPicList1は、下線が引かれた箇所がＪＣＴＶＣ−Ｑ１００３に追加されたテキストを示す以下の疑似コードに従って導出される。
incrementRef = (intra_block_copy_enabled_flag)?1 :0
変数NumRpsCurrTempList0はMax( num_ref_idx_l0_active_minus1 + 1, NumPocTotalCurr) + incrementRefに等しく設定され、リストRefPicListTemp0は以下のように構築される。
rIdx = 0
while( rIdx < NumRpsCurrTempList0 ) {
for( i = 0; i < NumPocStCurrBefore  &&  rIdx < NumRpsCurrTempList0; rIdx++, i++ )
RefPicListTemp0[ rIdx ] = RefPicSetStCurrBefore[ i ] 
for( i = 0;  i < NumPocStCurrAfter  &&  rIdx < NumRpsCurrTempList0; rIdx++, i++ )       (8 8)
RefPicListTemp0[ rIdx ] = RefPicSetStCurrAfter[ i ]
for( i = 0; i < NumPocLtCurr  &&  rIdx < NumRpsCurrTempList0; rIdx++, i++ )
RefPicListTemp0[ rIdx ] = RefPicSetLtCurr[ i ]
if (incrementRef)
RefPicListTemp0[ rIdx ] = currPic   (8-8)
}
コードセクション３：RefPicList0の変更
[0118]従って先行する手続は、RefPicListTemp0[rIdx]がカレントピクチャに等しく、この場合、RIdxがRefPicListTemp0アレイ内の最後のインデックスにおいて最大インデックスであるように、RefPicListTemp0変数を変更する。いくつかの例において、ビデオコーダはRefPicListTemp0の始めでまたはロングタームリファレンスピクチャの前にカレントピクチャを追加する。いくつかの例において、ビデオコーダはslice_typeパラメータに基づいてRefPicListEmp0にカレントピクチャを追加する。したがって、これらの例において、ビデオコーダは、スライスがＩスライス、Ｐスライス、またはＢスライスかどうかに基づいてリファレンスピクチャリスト内のロケーションのカレントピクチャをリファレンスピクチャリストに含めることができるかまたは、第２のリファレンスピクチャリスト内のロングタームピクチャの前にカレントピクチャをリファレンスピクチャリストに含めることができる。より小さな値の参照インデックスはより少ないビットで表すことができるので、より頻繁に使用されるリファレンスピクチャはより小さな値の参照インデックスを有することが望ましい。従って、リファレンスピクチャリスト内の他のリファレンスピクチャに比べてリファレンスピクチャリスト内のより若いロケーションにカレントピクチャを含めることは、他のリファレンスピクチャよりもより頻繁にイントラＢＣでカレントピクチャが使用されるであろうという仮定を反映する。
【０１１２】
[0119]例えば、他の例として、Ｉスライスの場合、ビデオコーダはRefPicListTemp0の始めで、およびＰまたはＢスライスの場合には、ロングタームリファレンスピクチャの終わりでRefPicListTemp0にカレントピクチャを追加する。以下の疑似コードはこの例を示し、下線が引かれたテキストはＪＣＴＶＣ−Ｑ１００３に追加されたテキストを示す。
while( rIdx < NumRpsCurrTempList0 ) {
if (incrementRef && Slice_type==I_Slice)
RefPicListTemp0[ rIdx ] = currPic 
for( i = 0; i < NumPocStCurrBefore  &&  rIdx < NumRpsCurrTempList0; rIdx++, i++ )
RefPicListTemp0[ rIdx ] = RefPicSetStCurrBefore[ i ] 
for( i = 0;  i < NumPocStCurrAfter  &&  rIdx < NumRpsCurrTempList0; rIdx++, i++ )       (8-8)
RefPicListTemp0[ rIdx ] = RefPicSetStCurrAfter[ i ]
for( i = 0; i < NumPocLtCurr  &&  rIdx < NumRpsCurrTempList0; rIdx++, i++ )
RefPicListTemp0[ rIdx ] = RefPicSetLtCurr[ i ]
if (incrementRef && (slice_type==P_Slice || slice_type==B_Slice))
RefPicListTemp0[ rIdx ] = currPic
コードセクション４：リファレンスピクチャリスト構成の変更
[0120]他の例として、Ｉスライスの場合、ビデオコーダは始めにカレントピクチャをReficListTemp0に追加し、ＰスライスまたはＢスライスの場合には、ロングタームリファレンスピクチャの前にカレントピクチャを追加する。他の例として、カレントピクチャをRefPicListTemp0に追加するロケーションはカレントピクチャのスライスタイプに基づく。
【０１１３】
[0121]いくつかの例において、ビデオコーダは、下線が引かれたテキストがＪＣＴＶＣ−Ｑ１００３への追加されたテキストを示す以下の疑似コードに従ってRefPicListTemp0に基づいてRefPilList0を構築する。
リストRefPicList0は以下のように構成される。
for( rIdx = 0; rIdx  <= num_ref_idx_l0_active_minus1; rIdx++)
RefPicList0[ rIdx ] = ref_pic_list_modification_flag_l0 ?
RefPicListTemp0[ list_entry_l0[ rIdx ] ] :RefPicListTemp0[ rIdx ] (8-9)
スライスがＢスライスであるとき、変数 NumRpsCurrTempList1は、Max( num_ref_idx_l1_active_minus1 + 1, NumPocTotalCurr ) + incrementRef に等しく設定され、リストRefPicListTemp1は以下のように構成される。
rIdx = 0
while( rIdx < NumRpsCurrTempList1 ) {
for( i = 0; i < NumPocStCurrAfter  &&  rIdx < NumRpsCurrTempList1; rIdx++, i++ )
RefPicListTemp1[ rIdx ] = RefPicSetStCurrAfter[ i ]
for( i = 0;  i < NumPocStCurrBefore  &&  rIdx < NumRpsCurrTempList1; rIdx++, i++ )       (8 10)
RefPicListTemp1[ rIdx ] = RefPicSetStCurrBefore[ i ]
for( i = 0; i < NumPocLtCurr  &&  rIdx < NumRpsCurrTempList1; rIdx++, i++ )
RefPicListTemp1[ rIdx ] = RefPicSetLtCurr[ i ]
(8-10)
if (incrementRef)
RefPicListTemp1 [ rIdx ] = currPic 
}
[0122]いくつかの例において、RefPicListTemp1に関する上述のプロセスと同様に、ビデオコーダは、下線が引かれたテキストがＪＣＴＶＣ−Ｑ１００３への追加されたテキストを示す、ＪＣＴＶＣ−Ｑ１００３、セクション８．３．４の標準言語および以下の疑似コードにしたがって、カレントピクチャのスライスタイプに基づいてカレントピクチャをRefPicListTemp1に追加することができる。
スライスがＢスライスであると、リストRefPicList1は以下のように構成される。
for( rIdx = 0; rIdx  <=  num_ref_idx_l1_active_minus1; rIdx++)   (8-11)
RefPicList1[ rIdx ] = ref_pic_list_modification_flag_l1 ?
(8-11)
RefPicListTemp1[ list_entry_l1[ rIdx ] ] : RefPicListTemp1[ rIdx ]
ここで、currPicは8.5.3.3.2のようにカレント符号化ピクチャであり、カレントピクチャの同じ時間ＩＤを有さなければならない。
【０１１４】
[0123]いくつかの例において、ＪＣＴＶＣ−Ｑ１００３のセクション８．５．３．３．２のリファレンスピクチャインデックスを決定するためのリファレンスピクチャ選択プロセスは以下のように変更されることができる。下線が引かれたテキストはＪＣＴＶＣ−Ｑ１００３に追加されたテキストを示す。
このプロセスへの入力は参照インデックスrefIdxLXである。
このプロセスの出力はルーマサンプルrefPicLXLの２次元アレイおよびクロマサンプルrefPicLXCbおよびreｆＰｉｃＬＸＣｒから構成されるリファレンスピクチャである。
出力リファレンスピクチャRefPicListX[refIdxLX]はルーマサンプルrefPicLXLのpic_height_in_ルーマ_sample１アレイによるpic_width_in_ルーマ_samplesおよびクロマサンプルrefPicLXCbおよびrefPicLXCrのPicHeightInSamplesCアレイによる２つのPicWidthInSamplesCから構成される。
リファレンスピクチャサンプルアレイrefPicLXL, refPicLXCb、およびrefPicLXCrは節８．７で、あるいは、従前に復号されたピクチャまたはカレント復号ピクチャに関するインループフィルタ（デブロッキングおよびＳＡＯ）なしに節８．７で導出された復号されたサンプルアレイSL、 SCb、およびSCrに対応する。
【０１１５】
[0124]イントラＢＣと制限されたイントラ予測の両方がイネーブルされると、イントラまたはイントラＢＣブロックに関する予測は、任意のリファレンスピクチャがカレントピクチャであるインターブロックまたはイントラブロックからのみであり得る。制限されたイントラ予測において、イントラ予測はイントラ予測モードを使用してコード化された隣接コード化ブロックからの復号されたサンプルおよび残差データのみを使用する。ＪＣＴＶＣ−Ｑ１００３に記載されるように、シンタックス要素（例えば、constrained_intra_pred_flag）はピクチャパラメータセットがアクティブである復号ピクチャにおいて、制限されたイントラ予測が使用されるかどうかを示すためにピクチャパラメータセット内でシグナルされる。従って、この例は、イントラＢＣと制限されたイントラ予測の両方がスライスに関してイネーブルされるとき、ビデオコーダは異なるピクチャ内のブロックの動きベクトルあるいは、ブロックベクトルに基づいてスライスのブロックのブロックベクトルを決定するためにインター予測を使用することができる。
【０１１６】
[0125]ＪＣＴＶＣ−Ｑ１００３はcu_skip_flagシンタックス要素を定義する。この開示の例に従って、ＪＣＴＶＣ−Ｑ１００３で定義されたcu_skip_flagの意味論(semantics)は以下のように変更される。
１に等しいcu_skip_flag[x0][y0]はカレントコード化ユニットの場合、ＰスライスまたはＢスライスまたは、１に等しいintra_block_copy_enabled_flagを有するＩスライスを復号するとき、cu_skip_flag[x0][y0]の後にマージ候補インデックスmerge_idx[x0][y0]を除くそれ以上のシンタックス要素は解析(parse)されない。
したがって、この例では、イントラＢＣがイネーブルされるＩスライス内のカレントＣＵに関するcu_skip_flagが１であるとき、ビデオエンコーダ２０はマージフラッグシンタックス要素、ＭＶＤシンタックス要素、動きベクトル予測子フラッグシンタックス要素、またはインター予測方向シンタックス要素をシグナルする。さらに、イントラＢＣがイネーブルされるＩスライス内のカレントＣＵに関するcu_skip_flagが１であるとき、ビデオエンコーダ２０はカレントＣＵに関する変換ツリーをシグナルしない。むしろ、ビデオコーダはマージ候補インデックスにより示されるマージ候補の動き情報により示される予測ブロックをカレントＣＵの再構成されたコード化ブロックであると解釈する。
【０１１７】
[0126]ＱＣＴＶＣ−Ｑ１００３はスライスセグメントヘッダ内のslice_temporal_mvp_enabled_flagを定義する。slice_temporal_mvp_enabled_flagは時間動きベクトル予測子がインター予測のために使用されることができるかどうかを指定する。Intra_block_copy_enable_flagが０に等しいときＩスライス内のslice_temporal_mvp_enabled_flagが０に等しいとき、それはピクチャの標準的復号プロセスに影響を与えず単にビットストリーム制限を表す。
【０１１８】
[0127]統合されたイントラブロックコピーとインター予測技術に関連するこの開示の技術はＨＥＶＣに関連して記載したけれども、この開示の技術はＨＥＶＣに限定されず、インター予測とイントラＢＣ、またはそれらの類似したものが使用される如何なるビデオコード化システムに適用可能であり得る。
【０１１９】
[0128]図４はこの開示で記載された統合されたイントラＢＣとインター予測技術をインプリメントすることができる例示ビデオエンコーダ２０を図示するブロック図である。ビデオエンコーダ２０はビデオスライス内のビデオブロックのイントラおよびインターコード化を実行することができる。イントラコード化は所定のビデオフレームあるいはピクチャ内のビデオの空間的冗長度を低減または除去するために空間予測に依存する。インターコード化はビデオシーケンスの隣接フレームまたはピクチャ内のビデオ内の時間冗長度を低減または除去するために時間予測に依存する。イントラモード（Ｉモード）は空間に基づいたいくつかの圧縮モードのいずれかに言及することができる。上述したように、ビデオエンコーダ２０はイントラＤＣモード、イントラアンギュラー(intra angular)、モード、イントラプレーナーモードおよびイントラＢＣモードを含む複数のイントラモードの１つまたは複数内のビデオデータをコード化するように構成されることができる。単方向予測（Ｐモード）または双方向予測（Ｂモード）のようなインターモードは時間に基づいたいくつかの圧縮モードのいずれかに言及することができる。
【０１２０】
[0129]図４の例において、ビデオエンコーダ２０はビデオデータメモリ４０、予測処理ユニット４１、復号されたピクチャバッファ６４、加算器５０、変換処理ユニット５２、量子化ユニット５４、およびエントロピー符号化ユニット５６を含む。予測処理ユニット４１は分割ユニット３５、動き推定ユニット４２、動き補償ユニット４４、およびイントラ予測処理ユニット４６を含む。ビデオブロック再構成に関して、ビデオエンコーダ２０はまた、逆量子化ユニット５８、逆変換処理ユニット６０、および加算器６２を含む。デブロッキンギフィルタ（図４に図示せず）はまた再構成されたビデオからブロッキネスアーティファクト(blockines artifacts)を除去するためにブロック境界をフィルタするために含まれてもよい。所望なら、デブロッキングフィルタは加算器６２の出力をフィルタする。さらなるループフィルタ（インループまたはポストループ）はまたデブロッキングフィルタに加えて使用されることができる。
【０１２１】
[0130]ビデオデータメモリ４０はビデオエンコーダ２０のコンポーネントにより符号化されるビデオデータを記憶することができる。ビデオデータメモリ４０に記憶されるビデオデータは、例えばビデオソース１８から取得されることができる。復号されたピクチャバッファ（ＤＰＢ）６４はビデオエンコーダ２０（例えば、イントラまたはインターコード化モード、また、イントラまたはインター予測コード化モードとも呼ばれる）によりビデオデータを符号化するのに使用するためのリファレンスビデオデータを記憶するバッファである。ビデオデータメモリ４０およびＤＰＢ６４は、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスのような多種多様なメモリデバイスのいずれかにより形成されることができる。ビデオデータメモリ４０とＤＰＢ６４は同じメモリデバイスまたは別個のメモリデバイスにより提供されることができる。種々の例において、ビデオデータメモリ４０はビデオエンコーダ２０の他のコンポーネントとオンチップ(on-chip)であってもよいし、またはこれらのコンポーネントに関連するオフチップ(off-chip)であってもよい。
【０１２２】
[0131]図４に示すように、ビデオエンコーダ２０はビデオデータを受信し、分割ユニット３５はデータをビデオブロックに分割する。この分割はまた、例えば、ＬＣＵｓおよびＣＵｓの４分木構造に従って、スライス、タイル、または他のより大きな単位への分割、ならびにビデオブロック分割を含むことができる。ビデオエンコーダ２０は一般に符号化されるビデオスライス内のビデオブロックを符号化するコンポーネントを図示する。スライスは複数のビデオブロック（およびおそらくタイルと呼ばれるビデオブロックのセット）に分割されることができる。予測処理ユニット４１は、エラー結果（例えば、コード化レートおよび歪のレベル）に基づいてカレントビデオブロックに関して複数のイントラコード化モードの１つまたは複数のインターコード化モードの１つのような、複数の可能なコード化モードの１つを選択することができる。予測処理ユニット４１は、統合されたイントラＢＣイントラおよびインター予測を実行するためにここに記載されたこの開示の技術をインプリメントするように構成されることができる。予測処理ユニット４１は残差ブロックデータを生成するために加算器５０に、およびリファレンスピクチャとして使用するために符号化されたブロックを再構成するために加算器６２に、結果として生じるイントラまたはインターコード化ブロックを供給することができる。
【０１２３】
[0132]予測処理ユニット４１内のイントラ予測処理ユニット４６は空間圧縮を提供するためにコード化されるカレントブロックと同じフレームまたはスライス内の１つまたは複数の隣接ブロックに関連するカレントビデオブロックのイントラ予測コード化を実行することができる。処理ユニット４１内の動き推定ユニット４２および動き補償ユニット４４は時間圧縮を提供するために１つまたは複数のリファレンスピクチャ内の１つまたは複数の予測ブロックに関連するカレントビデオブロックのインター予測コード化を実行する。
【０１２４】
[0133]動き推定ユニット４２はビデオシーケンスに関する所定のパターンに従ってビデオスライスに関するインター予測モードを決定するように構成されることができる。所定のパターンはＰスライス、Ｂスライスまたはいくつかの例ではＧＰＢスライスとしてシーケンス内のビデオスライスを指定することができる。動き推定ユニット４２および動き補償ユニット４４は高度に集積化されることができるが、概念的目的のために別個に図示されている。動き推定ユニット４２により実行される動き推定は動きベクトルを生成するプロセスであり、それはビデオブロックに関する動きを推定する。例えば、動きベクトルはリファレンスピクチャ内の予測ブロックに関連するカレントビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示すことができる。
【０１２５】
[0134]予測ブロックは絶対差分の合計、スクエア差分(square difference)(SSD)の合計または他の差分メトリックにより決定されることができるピクセル差分の観点からコード化されるビデオブロックのＰＵを厳密に一致させるために発見されるブロックである。いくつかの例において、ビデオエンコーダ２０は復号ピクチャバッファ６４内に記憶されるリファレンスピクチャのサブ整数ピクセル位置に関する値を計算することができる。例えば、ビデオエンコーダ２０はリファレンスピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間することができる。それゆえ、動き推定ユニット４２はフルピクセル位置および分数ピクセル位置に関して動きサーチを実行し、分数ピクセル精度で動きベクトルを出力することができる。
【０１２６】
[0135]動き推定ユニット４２はＰＵの位置を、リファレンスピクチャの予測ブロックの位置と比較することによりインターコード化されたスライス内のビデオブロックのＰＵに関する動きベクトルを計算する。リファレンスピクチャは第１のリファレンスピクチャリスト（リスト０）または第２のリファレンスピクチャリスト（リスト１）から選択されることができ、それらの各々は復号ピクチャバッファ６４に記憶された１つまたは複数のリファレンスピクチャを識別する。動き推定ユニット４２は計算された動きベクトルをエントロピー符号化ユニット５６および動き補償ユニット４４に送信する。
【０１２７】
[0136]動き補償ユニット４４により実行される動き補償は、おそらくサブピクセル精度に補間を行う動き推定により決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含むことができる。カレントビデオブロックのＰＵに関する動きベクトルを受信すると、動き補償ユニット４４はリファレンスピクチャリストの１つ内の、動きベクトルポイントが指し示す予測ブロックの位置を求めることができる。ビデオエンコーダ２０はコード化されるカレントビデオブロックのピクセル値から予測ブロックのピクセル値を減算することにより残差ビデオブロックを形成し、ピクセル差分値を形成する。ピクセル差分値はブロックに関する残差データを形成し、ルーマおよびクロマ差分コンポーネントの両方を含むことができる。加算器５０はこの減算演算を実行する１つのコンポーネントまたは複数のコンポーネントを表す。動き補償ユニット４４はまたビデオスライスのビデオブロックを復号する際にビデオデコーダ３０により使用するビデオブロックとビデオスライスに関連したシンタックス要素を生成することができる。
【０１２８】
[0137]イントラ予測処理ユニット４６は上述したように、動き推定ユニット４２および動き補償ユニット４４により実行されるインター予測の代替としてカレントブロックをイントラ予測することができる。特に、イントラ予測処理ユニット４６はカレントブロックを符号化するためにイントラＢＣモードを含むイントラ予測モードを決定することができる。いくつかの例において、イントラ予測処理ユニット４６は、例えば別個の符号化パス(passes)の期間に種々のイントラ予測モードを用いてカレントブロックを符号化することができ、イントラ予測処理ユニット４６（あるいはいくつかの例では、モード選択ユニット）はテストされたモードから使用するために適当なイントラ予測モードを選択することができる。
【０１２９】
[0138]例えば、イントラ予測処理ユニット４６は種々のテストされたイントラ予測モードに関するレート歪分析を用いてレート歪値を計算することができ、テストされたモードの中でベストのレート歪特性を持つイントラ予測モードを選択することができる。レート歪分析は一般に符号化されたブロックとオリジナル、すなわち、符号化されたブロックを生成するために符号化された非符号化ブロックとの間の歪（または誤差）の量、ならびに符号化されたブロックを生成するために使用されるビットレート（すなわち、ビットの数）を決定する。イントラ予測処理ユニット４６は、どのイントラ予測モードがブロックに関するベストのレート歪値を提示するかを決定するために種々の符号化ブロックに関する歪とレートからの比率を計算することができる。
【０１３０】
[0139]上述したように、この開示の技術に従って、ビデオエンコーダ２０は、時間動きベクトル予測（ＴＭＶＰ）を用いてコード化されたイントラブロックコピー（イントラＢＣ）コード化ブロックに関する動きベクトルを決定し、コロケートされたブロックがイントラＢＣコード化されたと決定することに応答して、整数ピクセル精度でＴＭＶＰベクトルを用いて、ＴＭＶＰベクトルに基づいてコロケートされたブロックを決定し、およびコロケートされたブロックがインターコード化されたと決定することに応答して、リファレンスブロックを決定するためにサブピクセル精度でＴＭＶＰベクトルを使用するように構成されることができる。
【０１３１】
[0140]この開示の技術に従って、ビデオデコーダはビデオエンコーダに関してここに記載された任意のプロセスに関する一般的な可逆処理(reciprocal process)を実行するように構成されることができる。同様に、ビデオエンコーダはビデオデコーダに関してここに記載された任意のプロセスに関する一般的な可逆プロセスを実行するように構成されることができる。
【０１３２】
[0141]いずれの場合も、ブロックに関するイントラ予測モードを選択した後、イントラ予測処理ユニット４６は、ブロックに関する選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット５６に提供することができる。エントロピー符号化ユニット５６はこの開示の技術に従って、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ２０は送信されたビットストリームに構成データを含めることができ、それは複数のイントラ予測モードインデックステーブルと、複数の変更されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、種々のブロックに関するコンテキストを符号化する定義と、およびコンテキスの各々に使用するための、最も確率の高いイントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの表示を含むことができる。
【０１３３】
[0142]予測処理ユニット４１がインター予測またはイントラ予測を介してカレントブロックに関する予測ブロックを生成した後、ビデオエンコーダ２０はカレントブロックから予測ブロックを減算することにより残差ブロックを形成する。残差ブロック内の残差ビデオデータは１つまたは複数のＴＵｓ内に含めることができ変換処理ユニット５２に適用されることができる。変換処理ユニット５２は、ディスクリートコサイン変換（ＤＣＴ）または概念的に類似の変換のような変換を用いて残差ビデオデータを残差変換係数に変換する。変換処理ユニット５２は残差ビデオデータをピクセル領域から周波数領域のような変換領域へ変換することができる。
【０１３４】
[0143]変換処理ユニット５２は結果として得られる変換係数を量子化ユニット５４に送信することができる。量子化ユニット５４はさらにビットレートを低減するために変換係数を量子化する。量子化プロセスはいくつかのまたはすべての係数に関連したビット深度を低減することができる。量子化の程度は量子化パラメータを調整することにより変更されることができる。いくつかの例において、量子化ユニット５４は次に、量子化変換係数を含むマトリクスのスキャンを実行することができる。代替的に、エントロピー符号化ユニット５６はスキャンを実行することができる。
【０１３５】
[0144]量子化に続いて、エントロピー符号化ユニット５６は量子化変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット５６はコンテキスト適応可変超コード化（ＣＡＶＬＣ）、コンテキスト適応バイナリ演算コード化（ＣＡＶＡＣ）、シンタックスベースコンテキスト適応バイナリ演算コード化（ＳＢＡＣ）、確率間隔分割エントロピー（ＰＩＰＥ）コード化または他のエントロピー符号化方法及び技術を実行することが出来る。エントロピー符号化ユニット５６によりエントロピー符号化に続いて、符号化されたビットストリームはビデオデコーダ３０に送信されるか、またはビデオデコーダ３０による、その後の送信または検索に関してアーカイブ(archive)されることができる。エントロピー符号化ユニット５６はコード化されるカレントビデオスライスに関する他のシンタックス要素および動きベクトルを符号化することができる。
【０１３６】
[0145]逆量子化ユニット５８および逆変換処理ユニット６０は、リファレンスピクチャのリファレンスブロックとして後の使用のためにピクセル領域内で残差ブロックを再構成するためにそれぞれ逆量子化および逆変換を適用する。動き補償ユニット４４はリファレンスピクチャリストの１つ内のリファレンスピクチャの１つの予測ブロックに残差ブロックを加算することによりリファレンスブロックを計算することができる。動き補償ユニット４４はまた動き推定に使用するためのサブピクセル精度を計算するために再構成された残差ブロックに１つまたは複数の補間フィルタを適用することができる。加算器６２は復号されたピクチャバッファ６４に記憶するためにリファレンスブロックを生成するために動き補償ユニット４４により生成された動き補償予測ブロックに、再構成された残差ブロックを加算する。リファレンスブロックは、次のビデオフレームまたはピクチャ内のブロックをインター予測するためにリファレンスブロックとして動き推定ユニット４２および動き補償ユニット４４により使用されることができる。
【０１３７】
[0146]この開示の観点に従って、ビデエンコーダ２０はこの開示で記載された技術の如何なる組み合わせも実行することができる。
【０１３８】
[0147]図５はこの開示で記載された統合されたイントラＢＣおよびインター予測に関する技術をインプリメントすることができる。図５の例において、ビデオデコーダ３０はビデオデータメモリ７９、エントロピーデコーディングユニット８０、予測処理ユニット８1、逆量子化ユニット８６、逆変換処理ユニット８８、加算器９０、および復号ピクチャバッファ９２を含む。予測処理ユニット８１は動き補償ユニット８２およびイントラ予測処理ユニット８４を含む。ビデオデコーダ３０は、いくつかの例において、図４からのビデオエンコーダ２０に関連した記載された符号化パスに一般的にレシプロカルな復号パスを実行する。
【０１３９】
[0148]ビデオデータメモリ７９はビデオデコーダ３０のコンポーネントにより復号される、符号化されたビデオビットストリームのようなビデオデータを記憶することができる。ビデオデータメモリ７９に記憶されたビデオデータは例えば、物理データストレージメディアをアクセスすることにより、またはビデオ―データの有線または無線のネットワーク通信を介してカメラのようなローカルビデオソースから、あるいはストレージデバイス３４から取得されることができる。ビデオデータメモリ７９は符号化されたビデオビットストリームから符号化されたビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ）を形成することができる。復号ピクチャバッファ９２はビデオデコーダ３０（例えば、イントラまたはインター符号化モード、イントラまたはインター予測符号化モードとも呼ばれることができる）によりビデオデータを復号するのに使用するリファレンスビデオデータを記憶する復号ピクチャバッファ（ＤＰＢ）の一例である。ビデオデータメモリ７９とＤＰＢ９２は、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＰＲＡＭ）、または他のタイプのメモリデバイスを含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）のような種々のメモリデバイスのいずれかにより形成されることができる。ビデオデータメモリ７９とＤＰＢ９２は同じメモリデバイスまたは別個のメモリデバイスにより提供されることができる。種々の例において、ビデオデータメモリ７９はビデオデコーダ３０の他のコンポーネントとオンチップであるかまたはこれらのコンポーネントに対してオフチップであり得る。
【０１４０】
[0149]復号プロセスの期間にビデオデコーダ３０は符号化されたビデオスライスのビデオブロックを表す符号化されたビデオビットストリームと、ビデオエンコーダ２０から関連したシンタックス要素を受信する。ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化係数、動きベクトルおよび他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット８０は動きベクトルと他のシンタックス要素を予測処理ユニット８１に送る。ビデオデコーダ３０はビデオスライスレベルでおよび／またはビデオブロックレベルでシンタックス要素を受信することができる。
【０１４１】
[0150]ビデオスライスがイントラコード化（Ｉ）スライスとしてコード化されると、予測処理ユニット８１のイントラ予測処理ユニット８４はカレントフレームまたはピクチャの従前に復号されたブロックからのデータおよびシグナルされたイントラ予測モードに基づいてカレントビデオスライスのビデオブロックに関する予測データを生成することができる。予測処理ユニット８１は統合されたイントラＢＣおよびインター予測を実行するためにこの開示の技術をインプリメントするように構成されることができる。ビデオフレームがインターコード化された（すなわち、ＢまたはＰ）としてコード化されると、予測処理ユニット８１の動き補償ユニット８２はエントロピー復号ユニット８０から受信された他のシンタックス要素および動きベクトルに基づいてカレントビデオスライスのビデオブロックに関する予測ブロックを生成する。予測ブロックはリファレンスピクチャリストの１つ内のリファレンスピクチャの１つから生成されることができる。ビデオデコーダ３０は復号ピクチャバッファ９２に記憶されたリファレンスピクチャに基づいてデフォルト構成技術を用いてリファレンスフレームリスト、リスト０およびリスト１を構成することができる。
【０１４２】
[0151]動き補償ユニット８２は動きベクトルおよび他のシンタックス要素をパース(parsing)することによりカレントビデオスライスのビデオブロックに関する予測情報を決定し、復号されるカレントビデオブロックに関する予測ブロックを生成するために予測情報を用いる。例えば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコード化するのに使用される予測モード（例えば、イントラまたはインター予測）、インター予測スライスタイプ（例えば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）、スライスに関するリファレンスピクチャリストの１つまたは複数に関する構成情報、スライスの各インター符号化されたビデオブロックに関する動きベクトル、スライスの各インターコード化されたビデオブロックに関するインター予測ステータス、およびカレントビデオスライス内のビデオブロックを復号するための他の情報を決定するために受信されたシンタックス要素のいくつかを使用する。
【０１４３】
[0152]動き補償ユニット８２はまた補間フィルタに基づいて補間を行うことができる。動き補償ユニット８２はリファレンスブロックのサブ整数ピクセルに関する補間された値を計算するためにビデオブロックの符号化の期間にビデオエンコーダ２０により使用される補間フィルタを使用することができる。この場合、動き補償ユニット８２は受信されたシンタックス要素からビデオエンコーダ２０により使用される補間フィルタを決定することができ、予測ブロックを生成するために補間フィルタを使用することができる。
【０１４４】
[0153]逆量子化ユニット86は、ビットストリームにおいて提供され、かつエントロピー復号ユニット80によって復号される量子化された変換係数を、逆量子化、すなわち非量子化（dequantize）する。逆量子化プロセスは、量子化の程度、および同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス内の各ビデオブロックに関してビデオ符号化器２０によって計算される量子化パラメータ（ＱＰ）値の使用を含みうる。逆変換処理ユニット８８は、ピクセル領域内に残差ブロックを生成するために、変換係数に逆変換、例えば、逆ＤＣＴ、逆整数変換、または概念上同様の逆変換処理を適用する。
【０１４５】
[0154]動き補償ユニット８２が動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックに関する予測ブロックを生成した後で、ビデオ復号器３０は、動き補償ユニット８２によって生成された対応する予測ブロックに逆変換処理ユニット８８からの残差ブロックを加算することによって復号されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数のコンポーネントを表す。所望の場合、非ブロック化フィルタはまた、ブロッキネスアーチファクトを取り除くための復号ブロックにフィルタをかけるために適用され得る。他のループフィルタ（符号化ループ内、または符号化ループ後）はまた、ピクセル遷移をスムースにするために、さもなければ映像品質を向上するために使用されることができる。所与のフレームまたはピクチャ内の復号されたビデオブロックは復号ピクチャバッファ９２に記憶され、それは、次の動き補償に使用されるリファレンスピクチャを記憶する。復号ピクチャバッファ９２はまた、図１のディスプレイデバイス３２のようなディスプレイデバイス上における後の表示のために復号されたビデオを記憶する。
【０１４６】
[0155]この開示の観点に従って、ビデオデコーダ３０はこの開示に記載された技術のいかなる組み合わせも実行するように構成されることができる。
【０１４７】
[0156]図６はこの開示の技術に一致するビデオデータを復号するための例示プロセスを図示するフローチャートである。図６のプロセスは一般的に図示のためにビデオデコーダ３０により実行されるように記載されるが、種々の他のプロセッサも図６に示されるプロセスを実行することができる。
【０１４８】
[0157]図６の例において、ビデオデコーダ３０はカレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含めることができる（２００）。リファレンスピクチャはカレントピクチャとは異なる。ビデオデコーダ３０はリファレンスピクチャのコロケートされたブロックを決定することができる（２０２）。コロケートされたブロックはカレントピクチャのカレントブロックとコロケートされる。ビデオデコーダ３０はコロケートされたブロックから時間動きベクトル予測子を導出することができる（２０４）。ビデオデコーダ３０は時間動きベクトル予測子がサブピクセル精度を有すると決定することができる（２０６）。ビデオデコーダ３０はサブピクセルを有すると決定された時間動きベクトル予測子を右シフトする（２０８）。ビデオデコーダ３０は、右シフトされた時間動きベクトル予測子に基づいて、カレントピクチャ内の予測ブロックを決定することができる（２１０）。ビデオデコーダ３０は残差ブロックのサンプルと予測ブロックの対応するサンプルを加算することにより復号されたビデオブロックを形成することができる（２１２）。
【０１４９】
[0158]図７はこの開示の技術に一致するビデオデータを符号化するための例示プロセスを図示するフローチャートである。図７のプロセスは一般的に例示目的のためにビデオエンコーダ２０により実行されるように記載されるけれども、種々の他のプロセスもまた図７に示されるプロセスを実行することができる。
【０１５０】
[0159]図７の例において、ビデオエンコーダ２０はカレントピクチャおよびリファレンスピクチャをリファレンスピクチャリストに含めることができる（２２０）。リファレンスピクチャはカレントピクチャと異なる。ビデオエンコーダ２０はリファレンスピクチャのコロケートされたブロックを決定することができる（２２２）。コロケートされたブロックはカレントピクチャのカレントブロックとコロケートされる。ビデオエンコーダ２０はコロケートされたブロックから時間動きベクトル予測子を導出することができる（２２４）。ビデオエンコーダ２０は時間動きベクトル予測子がサブピクセル精度を有すると決定することができる（２２６）。ビデオエンコーダ２０はサブピクセル精度を有すると決定された時間動きベクトル予測子を右シフトすることができる（２２８）。ビデオエンコーダ２０は右シフトされた時間動きベクトル予測子に基づいてカレントピクチャ内の予測ブロックを決定することができる（２３０）。ビデオエンコーダ２０は右シフトされた時間動きベクトル予測子に基づいて決定された予測ブロックとカレントブロックとの間の差分を表す残差データを生成することができる（２３２）。
【０１５１】
[0160]この開示の技術に従う例がここに記載される。ビデオエンコーダ２０またはビデオデコーダ３０のようなデオコーダは以下の例を実行することができることが理解されるべきである。
【０１５２】
[0161]例１．ビデオデータを符号化または復号する方法において、前記方法は、時間動きベクトル予測（ＴＭＶＰ）を用いてコード化されたイントラブロックコピー（イントラＢＣ）コード化ブロックに関する動きベクトルを決定すること、コロケートされたブロックがイントラＢＣコード化されると決定することに応答してＴＭＶＰベクトルに基づいてコロケートされたブロックを決定すること、整数ピクセル精度を有するＴＭＶＰベクトルを用いて、リファレンスブロックを決定すること、およびコロケートされたブロックがインターコード化されると決定することに応答して、サブ整数ピクセル精度を有するＴＭＶＰベクトルを用いてリファレンスブロックを決定すること、を備える。
【０１５３】
[0162]例２．例１の方法において、リファレンスブロックに基づいてイントラブロックコピーコード化ブロックを符号化しまたはリファレンスブロックに基づいてイントラブロックコピーコード化ブロックを復号することをさらに備える。
【０１５４】
[0163]例３．例１の方法において、ＴＭＶＰベクトルがサブ整数ピクセル精度を有するとき、ＴＭＶＰ動きベクトルを右シフトすることをさらに備える。
【０１５５】
[0164]例４．例１の方法において、コロケートされたブロックがイントラＢＣコード化されると決定することに応答して、サブ整数ピクセル精度を有するＴＭＶＰベクトルを用いることをさらに備える。
【０１５６】
[0165]例５．ビデオデータを符号化または復号する方法において、ビデオデータのＩスライスをコード化すること、およびイントラブロックコピーモードがＩスライスのブロックに関してイネーブルされるかどうかに基づいてＩスライスのシンタックス要素に関するinitTypeの値を導出すること、およびシンタックス要素をＣＡＢＡＣコード化するためのctxIdx値を決定するためにinitType変数を用いることを備える。
【０１５７】
[0166]例６.例５の方法において、シンタックス要素がイントラＢＣモードのみと関連するかどうかを決定すること、およびシンタックス要素がイントラＢＣモードのみと関連するとの決定に応答してinitTypeを０に等しく設定することをさらに備える。
【０１５８】
[0167]例７．例５の方法において、シンタックス要素をＣＡＢＡＣ符号化することをさらに備える。
【０１５９】
[0168]例８．例５の方法において、シンタックス要素をＣＡＢＡＣ復号することをさらに備える。
【０１６０】
[0169]例９．例５の方法において、イントラＢＣモードがＩスライスに関してイネーブルされるとＩスライスに関するイントラおよびインター予測モードの両方を可能にすることをさらに備える。
【０１６１】
[0170]例１０．ビデオデータを符号化または復号する方法において、イントラブロックコピー（イントラＢＣ）モードがイネーブルされ、スライスがＩスライスであることに応答して、またはスライスがＰまたはＢスライスであると決定することに応答してピクチャのスライスをコード化すること、イントラＢＣモードがスライスに関してイネーブルされるとリファレンスピクチャリスト構成を変更することを備える。
【０１６２】
[0171]例１１．例１０の方法において、スライスがＩスライスであるときおよびイントラＢＣモードがスライスに関してイネーブルされると１つのリファレンスピクチャリストのみを使用することをさらに備える。
【０１６３】
[0172]例１２．例１０の方法において、
スライスがＩスライスでイントラＢＣモードがスライスに関してイネーブルされると、第２の独立したリファレンスピクチャリストを用いることをさらに備える。
【０１６４】
[0173]例１３．例１０の方法において、リファレンスピクチャリストの終わりにスライスのカレントピクチャを挿入することをさらに備える。
【０１６５】
[0174]例１４．例１０の方法において、リファレンスピクチャリストのロングタームリファレンスピクチャの前または始めでスライスのカレントピクチャを追加することをさらに備える。
【０１６６】
[0175]例１５．例１４の方法において、スライスはＰスライスまたはＢスライスである。
【０１６７】
[0176]例１６．例１０の方法において、スライスのスライスタイプに基づいてリファレンスピクチャリストのロケーションにカレントピクチャを追加する。
【０１６８】
[0177]例１７．例１０の方法において、カレントピクチャの予測タイプに基づいてリファレンスピクチャリストのロケーションにカレントピクチャを追加することをさらに備える。
【０１６９】
[0178]例１８．例１０の方法において、リファレンスピクチャリストからリファレンスピクチャを決定すること、およびリファレンスピクチャが従前に復号されたピクチャまたはピクチャであるときリファレンスピクチャに関する適応オフセットを上述のインループフィルタリングし、デブロッキングしおよびサンプルすることをさらに備える。
【０１７０】
[0179]例１９．例１０の方法において、ピクチャのコード化ユニットに関して、コード化ユニットに関してイントラＢＣモードがイネーブルされ、コード化ユニットに関してスキップモードがイネーブルされると決定することと、コード化ユニットに関してスキップモードがイネーブルされると決定することに応答して、リファレンスピクチャリスト構成の期間にマージ候補シンタックス要素のみをパースすることをさらに備える。
【０１７１】
[0180]例２０.例１０の方法において、イントラＢＣモードがスライスに関してイネーブルされたと決定すること、およびスライスに関してイントラＢＣモードがイネーブルされたと決定することに応答してピクチャに関する復号プロセスが変更されないと決定することをさらに備える。
【０１７２】
[0181]例２１．例１０の方法において、リファレンスピクチャリストを符号化することをさらに備える。
【０１７３】
[0182]例２２．例１０の方法において、リファレンスピクチャリストを復号することをさらに備える。この開示の一例において、イントラ予測モードは、イントラＢＣモード、イントラアンギュラーモード、イントラプレーナーモード、またはイントラＤＣモードの１つまたは複数を備え、ビデオデータのカレントブロックはＩスライス、ＰスライスまたはＢスライスのいずれか内にある。
【０１７４】
[0183]例２３．この開示に記載された複数の例のいずれかの組み合わせ。
【０１７５】
[0184]この開示の他の例において、ビデオエンコーダ２０はさらに、ビデオデータのカレントブロックに関する予測ブロックとして使用される１つまたは複数のリファレンスブロックの特定のリファレンスブロックを決定するようにさらに構成される。ここにおいて、イントラＢＣモードを用いてビデオデータのカレントブロックを符号化することは予測ブロックからビデオデータのカレントブロックを予測することを備える。
【０１７６】
[0185]例に依存して、本明細書で説明された技術のうちのいずれのある動作またはイベントも、異なるシーケンスで実行されうるか、加えられうるか、混合されうるか、または完全に除外されうるかが行われうる（例えば、すべての説明された動作またはイベントが技術の実施のために必要であるわけではない）。さらにある特定の例では、動作またはイベントは、例えば、マルチスレッド処理、割り込み処理、または複数のプロセッサを通して、連続的と言うよりむしろ同時に実行されうる。さらに、この開示のある態様は、明瞭さのために単一のモジュールまたはユニットにより実行されるように記載したが、この開示の技術はビデオコーダに関連するユニットまたはモジュールの組み合わせにより実行されることができる。
【０１７７】
[0186]この開示に従って、用語「or」は、コンテキストがそうでないと記載しない限り「および／または」として解釈されることができる。さらに、「１つまたは複数」、または「少なくとも１つ」等のようなフレーズはここに開示されたいくつかの特徴に関して使用され、他では使用されなかった。そのような言語が使用されなかった特徴は、コンテキストがそうでないと記載されない限りそのような暗黙の意味を有すると解することができる。
【０１７８】
[0187]この開示のある態様は例示のために１つまたは複数のビデオコード化規格（例えば、ＨＥＶＣ規格）について記載した。しかしながら、この開示において記載される技術は、いまだ開発されていないまたは依然として開発中の独占所有権のあるビデオ符号化処理または他の規格を含む他のビデオ符号化プロセスに有効であり得る。
【０１７９】
[0188]ここに記載された技術はビデオエンコーダ２０（例えば、図１および４）および／またはビデオデコーダ３０（例えば、図１および５）により実行されることができる。これらは両方とも一般的にビデオコーダと呼ばれることができる。同様に、ビデオコーディングは規定通りにビデオ符号化またはビデオ復号に言及することができる。
【０１８０】
[0189]この技術の種々の態様の特定の組み合わせを上述したけれども、これらの組み合わせはこの開示で記載された技術の例を単に図示するように提供される。従って、この開示の技術はこれらの例示的組み合わせに限定されるべきではなく、この開示に記載された技術の種々の態様の考えられる組み合わせを含むことができる。この開示に記載された技術は任意の組み合わせで一緒に使用されることができる。
【０１８１】
[0190]１つまたは複数の例において、この開示で記載された機能はハードウェア、ソフトウェア、ファームウェアまたはそれらの任意の組み合わせでインプリメントされることができる。ソフトウェアでインプリメントされる場合、機能は１つまたは複数の命令またはコード、コンピュータ可読媒体として記憶されるか送信されることができ、ハードウエアベースの処理ユニットにより実行されることができる。コンピュータ可読媒体はコンピュータ可読記憶媒体を含むことができ、それは、例えば、通信プロトコルに従って、ある場所から他の場所へコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体あるいはデータストレージのような有形的表現媒体に対応する。このように、コンピュータ可読媒体は一般に(1)非一時的であるタンジブル(tangible)コンピュータ可読記憶媒体または（２）信号または搬送波のような通信媒体に対応することができる。データストレージ媒体は、この開示で記載される技術のインプリメンテーションに関する命令、コードおよび／またはデータ構造を検索するために１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによりアクセスされることができる任意の利用可能な媒体であり得る。コンピュータプログラムプロダクトはコンピュータ可読媒体を含むことができる。
【０１８２】
[0191]限定ではなく例示として、そのようなコンピュータ可読記憶媒体はＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭ、または他の光学ディスクストレージ、磁気ディスクストレージ、またはコンピュータによりアクセス可能であり命令またはデータ構造の形態で所望のプログラムコードを記憶するために使用されることができる任意の対の媒体を備えることができる。また、任意の接続は適切にコンピュータ可読媒体と呼ぶことができる。例えば、命令がウェブサイト、サーバ、または同軸ケーブル、ファイバ光ケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）を用いた他の遠隔ソース、または赤外線、無線およびマイクロ波のような無線技術から送信される場合、同軸ケーブル、ファイバ光ケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波のような無線技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は接続、搬送波、信号または他の送信媒体を含まないが、そのかわり非一時的なタンジブルな記憶媒体に向けられていると理解される必要がある。ここで使用されるDiskおよびdiscはコンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタルバーサタイルディスク」（ＤＶＤ）、フロッピー（登録商標）ディスク、およびブルーレイディスクを含み、disksは通常データを磁気的に再生し、一方discsはデータをレーザで光学的に再生する。上記組み合わせもまたコンピュータ可読媒体の範囲内に含まれることができる。
【０１８３】
[0192]命令は、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰｓ）、汎用マイクロプロセッサ、特定用途集積回路（ＡＳＩＣｓ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡｓ）、または他の等価な集積されたまたはディスクリートロジック回路のような１つまたは複数のプロセッサにより実行されることができる。したがって、ここで使用される「プロセッサ」という用語は上述した任意の構造またはここで記載された技術のインプリメンテーションのために適切な任意の他の構造に言及することができる。さらに、いくつかの態様において、ここで記載された機能性は符号化および復号のために構成された専用のハードウェアおよび／またはソフトウエアモジュール内に提供されることができ、または結合されたコーデックに内蔵されることができる。また、この技術は１つまたは複数の回路またはロジックエレメント内に完全にインプリメントされることができる。
【０１８４】
[0193]この開示の技術は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む多種多様のデバイスまたは装置内にインプリメントされることができる。種々のコンポーネント、モジュールまたはユニットはこの開示において、開示された技術を実行するように構成されたデバイスの機能的観点を強調するように記載されているが、必ずしも異なるハードウエアユニットによる実現を必要としない。むしろ、上述したように、種々のユニットは、コーデックハードウエアユニット内で結合されることができ、あるいは適切なソフトウエアおよび／またはファームウエアと組み合わせて、上述した１つまたは複数のプロセッサを含む相互動作可能なハードウエアユニットの集合により提供されることができる。
【０１８５】
[0194]種々の例について述べた。これらおよび他の例は以下のクレームの範囲内にある。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
イントラブロックコピーモードを用いてビデオデータを復号する方法において、
カレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含めることと、前記リファレンスピクチャは前記カレントピクチャと異なる、
前記リファレンスピクチャのコロケートされたブロックを決定することと、前記コロケートされたブロックは前記カレントピクチャのカレントブロックとコロケートされる、
前記コロケートされたブロックから時間動きベクトル予測子を導出することと、
前記時間動きベクトル予測子はサブピクセル精度を有することを決定することと、
サブピクセル精度を有すると決定された前記時間動きベクトル予測子を右シフトすることと、
前記右シフトされた時間動きベクトル予測子に基づいて前記カレントピクチャ内の予測ブロックを決定することと、および
残差ブロックのサンプルと前記予測ブロックの対応するサンプルとを合計することにより復号されたビデオブロックを形成することと、
を備えた方法。
［Ｃ２］
前記カレントピクチャは第１のピクチャであり、前記方法はさらに、
イントラ予測を用いて第２のピクチャのＩスライスの第１のブロックを復号することと、および
イントラブロックコピーモードを用いて前記Ｉスライスの第２のブロックを復号することと
を備えた、Ｃ１の方法。
［Ｃ３］
前記カレントピクチャは、第１のピクチャであり、前記リファレンスピクチャリストは第１のリファレンスピクチャリストであり、前記方法はさらに、
イントラブロックコピーが第２のピクチャに関してイネーブルされるかどうかを示すシンタックス要素をビットストリームから取得することと、および
前記第２のピクチャのＩスライスに関する復号プロセスの一部として、イントラブロックコピーが前記Ｉスライスに関してイネーブルされる前記シンタックス要素に基づいた決定に応答して第２のピクチャリスを含む第２のリファレンスピクチャリストを構築することとを含む、Ｃ１の方法。
［Ｃ４］
前記カレントピクチャと前記リファレンスピクチャを前記リファレンスピクチャリストに含めることは、
前記リファレンスピクチャリストにおいて、前記リファレンスピクチャリスト内のロングタームピクチャの前に前記カレントピクチャを含めることと、
前記リファレンスピクチャリストにおいて、スライスがＩスライスか、Ｐスライスか、またはＢスライスかどうかに基づいて前記リファレンスピクチャリスト内のロケーションに前記カレントピクチャを含めることと、
の１つを備える、Ｃ１の方法。
［Ｃ５］
イントラブロックコピーモード符号化ブロックに関する少なくとも１つの動きベクトル候補とインター予測モード符号化ブロックに関する少なくとも１つの候補を含む動きベクトル候補リストを生成することをさらに備えた、Ｃ１の方法。
［Ｃ６］
イントラブロックコピーモードを用いてビデオデータを符号化する方法において、
カレントピクチャとリファレンスピクチャをリファレンスピクチャリストに含めることと、前記リファレンスピクチャは前記カレントピクチャと異なる、
前記リファレンスピクチャのコロケートされたブロックを決定することと、前記コロケートされたブロックは前記カレントピクチャのカレントブロックとコロケートされる、
前記コロケートされたブロックから時間動きベクトル予測子を導出することと、
前記時間動きベクトル予測子がサブピクセル精度を有すると決定することと、
サブピクセル精度を有すると決定された前記時間動きベクトル予測子を右シフトすることと、
前記右シフトされた時間動きベクトル予測子に基づいて前記カレントピクチャ内の予測ブロックを決定することを、および
前記右シフトされた時間動きベクトル予測子に基づいて決定された前記予測ブロックと前記カレントブロックとの間の差分を表す残差データを生成することと、
を備えた方法。
［Ｃ７］
前記カレントピクチャは、第１のピクチャであり、前記方法はさらに、
イントラ予測を用いて第２のピクチャのＩスライスの第１のブロックを符号化することと、および
イントラブロックコピーモードを用いて前記Ｉスライスの第２のブロックを符号化することと
を備えたＣ６の方法。
［Ｃ８］
前記カレントピクチャは第１のピクチャであり、前記リファレンスピクチャリストは第１のリファレンスピクチャリストであり、前記方法はさらに、
Ｉスライスに関してイントラブロックコピーがイネーブルされると第２のピクチャの前記Ｉスライスに関して第２のリファレンスピクチャリストを構築することと、前記第２のリファレンスピクチャリストは前記第２のピクチャを含む、
を備えた、Ｃ６の方法。
［Ｃ９］
前記カレントピクチャと前記リファレンスピクチャを前記リファレンスピクチャリストに含めることは、
前記リファレンスピクチャリストにおいて、前記リファレンスピクチャリスト内のロングタームピクチャの前に前記カレントピクチャを含めることと、
前記リファレンスピクチャリストにおいて、スライスがＩスライスか、Ｐスライスか、またはＢスライスかどうかに基づいて前記リファレンスピクチャリスト内のロケーションに前記カレントピクチャを含めることと、
の１つを備えた、Ｃ６の方法。
［Ｃ１０］
イントラブロックコピーモード符号化ブロックに関する少なくとも１つの動きベクトル候補とインター予測モード符号化ブロックに関する少なくとも１つの候補を含む動きベクトル候補を生成することをさらに備えた、Ｃ６の方法。
［Ｃ１１］
イントラブロックコピーモードを用いてビデオデータを復号するデバイスにおいて、
リファレンスピクチャのビデオデータを記憶するように構成されたメモリと、および
カレントピクチャと前記リファレンスピクチャをリファレンスピクチャリスト内に含め、前記リファレンスピクチャは前記カレントピクチャと異なる、
前記リファレンスピクチャのコロケートされたブロックを決定し、前記コロケートされたブロックは前記カレントピクチャのカレントブロックとコロケートされる、
前記コロケートされたブロックから時間動きベクトル予測子を導出し、
前記時間動きベクトル予測子はサブピクセル精度を有すると決定し、
サブピクセル精度を有すると決定された前記時間動きベクトル予測子を右シフトし、
前記右シフトされた時間動きベクトル予測子に基づいて、前記カレントピクチャ内の予測ブロックを決定し、
残差ブロックと前記予測ブロックの対応するサンプルを合計することにより復号されたブロックを形成する、
ように構成された１つまたは複数のプロセッサ、
を備えた、デバイス。
［Ｃ１２］
前記カレントピクチャは、第１のピクチャであり、前記１つまたは複数のプロセッサは、さらに、
イントラ予測を用いて第２のピクチャのＩスライスの第１のブロックを復号し、
イントラブロックコピーモードを用いて前記Ｉスライスの第２のブロックを復号する、
ように構成される、Ｃ１１のデバイス。
［Ｃ１３］
前記カレントピクチャは第１のピクチャであり、前記リファレンスピクチャリストは第１のリファレンスピクチャリストであり、前記１つまたは複数のプロセッサは、
イントラブロックコピーが第２のピクチャに関してイネーブルされるかどうかを示すシンタックス要素をビットストリームから取得することと、
前記第２のピクチャのＩスライスに関する復号プロセスの一部として、前記Ｉスライスに関してイントラブロックコピーがイネーブルされるシンタックス要素に基づいた決定に応答して、第２のリファレンスピクチャリストを構築することと、前記第２のリファレンスピクチャリストは前記第２のピクチャを含む、
ようにさらに構成されたＣ１１のデバイス。
［Ｃ１４］
前記１つまたは複数のプロセッサは、前記リファレンスピクチャリスト内のロングタームピクチャの前に前記カレントピクチャを前記リファレンスピクチャリストに含めること、および
スライスがＩスライス、ＰスライスまたはＢスライスかどうかに基づいて前記リファレンスピクチャリスト内のロケーションに前記カレントピクチャを前記リファレンスピクチャリストに含めることの１つを実行するように構成される、Ｃ１１のデバイス。
［Ｃ１５］
前記１つまたは複数のプロセッサはさらに、イントラブロックコピーモード符号化ブロックに関する少なくとも１つの動きベクトル候補とインター予測モード符号化ブロックに関する少なくとも１つの候補を含む動きベクトル候補リストを生成するようにさらに構成されるＣ１１のデバイス。
［Ｃ１６］
前記デバイスは、
集積回路と、
マイクロプロセッサ、または
前記カレントピクチャを表示するように構成されたディスプレイ、または前記カレントピクチャを撮像するように構成されたカメラの１つまたは両方を備えた無線通信デバイス、
の少なくとも１つを備えた、Ｃ１１のデバイス。
［Ｃ１７］
前記デバイスはさらに復号されたビデオデータを表示するように構成されたディスプレイをさらに備えた、Ｃ１１のデバイス。
［Ｃ１８］
前記１つまたは複数のプロセッサはさらに前記ビデオデータを符号化するように構成され、前記デバイスはさらに、前記ビデオデータを撮像するように構成されたカメラを備えた、Ｃ１１のデバイス。
［Ｃ１９］
イントラブロックコピーモードを用いてビデオデータを符号化するためのデバイスにおいて、リファレンスピクチャのビデオデータを記憶するように構成されたメモリと、
カレントピクチャと前記リファレンスピクチャをリファレンスピクチャリスト内に含め、前記リファレンスピクチャは前記カレントピクチャと異なる、
前記リファレンスピクチャのコロケートされたブロックを決定し、前記コロケートされたブロックは前記カレントピクチャのカレントブロックとコロケートされる、
前記コロケートされたブロックから時間動きベクトル予測子を導出し、
前記時間動きベクトル予測子がサブピクセル精度を有すると決定し、
サブピクセル精度を有すると決定された前記時間動きベクトル予測子を右シフトし、
前記右シフトされた時間動きベクトル予測子に基づいて、前記カレントピクチャ内の予測ブロックを決定し、および
前記右シフトされた時間動きベクトル予測子に基づいて決定された前記予測ブロックと前記カレントブロックとの間の差分を表す残差データを生成する、
ように構成された１つまたは複数のプロセッサと、
を備えたデバイス。
［Ｃ２０］
前記カレントピクチャは第１のピクチャであり、前記１つまたは複数のプロセッサは、さらに、
イントラ予測を用いて第２のピクチャのＩスライスの第１のブロックを符号化し、イントラブロックコピーモードを用いて前記Ｉスライスの第２のブロックを符号化する、
ように構成された、Ｃ１９のデバイス。
［Ｃ２１］
前記カレントピクチャは、第１のピクチャであり、前記リファレンスピクチャリストは、第１のリファレンスピクチャリストであり、前記１つまたは複数のプロセッサは、さらに、
前記Ｉスライスに関してイントラブロックコピーがイネーブルされるとき第２のピクチャのＩスライスに関する第２のリファレンスピクチャリストを構築する、前記第２のリファレンスピクチャリストは前記第２のピクチャを含む、
ように構成された、Ｃ１９のデバイス。
［Ｃ２２］
前記１つまたは複数のプロセッサは、
前記リファレンスピクチャリスト内のロングタームピクチャの前に前記カレントピクチャを前記リファレンスピクチャリストに含めること、
スライスがＩスライスか、Ｐスライスか、あるいはＢスライスかどうかに基づいて前記リファレンスピクチャリスト内のロケーションの前記カレントピクチャを前記リファレンスピクチャリストに含めること、
の１つを実行するように構成される、Ｃ１９のデバイス。
［Ｃ２３］
前記１つまたは複数のプロセッサは、さらに、イントラブロックコピーモード符号化ブロックに関する少なくとも１つの動きベクトル候補とインター予測モード符号化ブロックに関する少なくとも１つの候補を含む動きベクトル候補リストを生成するように構成される、Ｃ１９のデバイス。
［Ｃ２４］
集積回路と、
マイクロプロセッサと、または
前記カレントピクチャを表示するように構成されたディスプレイ、または前記カレントピクチャを撮像するように構成されたカメラの１つまたは両方を備えた無線通信デバイス、
の少なくとも１つを備えた、Ｃ１９のデバイス。
［Ｃ２５］
前記デバイスはさらに復号されたビデオデータを表示するように構成されたディスプレイをさらに備えた、Ｃ１９のデバイス。
［Ｃ２６］
前記１つまたは複数のプロセッサはさらにビデオデータを復号するように構成された、Ｃ１９のデバイス。
［Ｃ２７］
イントラブロックコピーモードを用いてビデオデータをコード化するための装置において、カレントピクチャとリファレンスピクチャをリファレンスピクチャリスト内に含める手段と、前記リファレンスピクチャは前記カレントピクチャと異なる、
前記リファレンスピクチャのコロケートされたブロックを決定する手段と、前記コロケートされたブロックは前記カレントピクチャのカレントブロックとコロケートされる、
前記コロケートされたブロックから時間動きベクトル予測子を導出する手段と、
前記時間動きベクトル予測子がサブピクセル精度を有することを決定する手段と、
サブピクセル精度を有すると決定された前記時間動きベクトル予測子を右シフトする手段と、
前記右シフトされた時間動きベクトル予測子に基づいて、前記カレントピクチャ内の予測ブロックを決定する手段と、
を備えた、装置。
［Ｃ２８］
実行されると、ビデオデータをコード化するように構成されたコンピューティングデバイスの１つまたは複数のプロセッサに、
カレントピクチャとリファレンスピクチャをリファレンスピクチャリスト内に含ませ、前記リファレンスピクチャは前記カレントピクチャと異なる、
前記リファレンスピクチャのコロケートされたブロックを決定させ、前記コロケートされたブロックは前記カレントピクチャのカレントブロックとコロケートされる、
前記コロケートされたブロックから時間動きベクトル予測子を導出させ、
前記時間動きベクトル予測子がサブピクセル精度を有すると決定させ、
サブピクセル精度を有すると決定された前記時間動きベクトル予測子を右シフトさせ、および
前記右シフトされた時間動きベクトル予測子に基づいて、前記カレントピクチャ内の予測ブロックを決定させる、
命令を記憶した、非一時的コンピュータ読取可能記憶媒体。
【図１】
0006594954.tif 000002
【図２】
0006594954.tif 000003
【図３】
0006594954.tif 000004
【図４】
0006594954.tif 000005
【図５】
0006594954.tif 000006
【図６】
0006594954.tif 000007
【図７】
0006594954.tif 000008