(57)【特許請求の範囲】
【請求項１】
ビデオコーディングプロセスにおいて動きベクトルを符号化する方法であって、前記方法はビデオエンコーダが実行し、前記方法は、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、前記判断されたモードは、マージモードまたは適応動きベクトル予測モードのうちの１つである、
前記判断されたモードと、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを備える候補ブロックのセットとを使用して、前記現在のブロックについて前記動きベクトル予測プロセスを実行することと
を備え、前記判断されたモードがマージモードである場合、前記候補ブロックのセット中の１つの候補ブロックが追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記左下候補ブロック、前記左候補ブロック、前記上候補ブロック、または前記右上候補ブロックのうちのいずれか１つが利用不可能または無効である場合、前記マージモードにおいて使用される、
方法。
【請求項２】
前記複数のモードは、前記マージモードと適応動きベクトル予測モードとを含む、請求項１に記載の方法。
【請求項３】
前記ビデオデータの現在のブロックについて参照フレームに対する動きベクトルを判断することをさらに備え、参照フレームのロケーションは、予測方向に基づく、請求項２に記載の方法。
【請求項４】
前記判断されたモードは、前記マージモードであり、前記マージモードは、前記動きベクトル予測プロセスを実行する際に使用するための最大Ｎ個の候補ブロックを有し、
前記動きベクトル予測プロセスは、検査パターンに従って実行され、前記検査パターンは、前記候補ブロックのセット中の候補ブロックの各々を検査するための順序を定義し、
前記候補ブロックのセットは、前記検査パターンに沿って前記候補ブロックのセット中の最初のＮ個の利用可能な候補ブロックとして定義される、
請求項３に記載の方法。
【請求項５】
前記検査パターンは、ブロックサイズ、パーティションサイズ、およびパーティションインデックスのうちの１つまたは複数に基づく、
請求項４に記載の方法。
【請求項６】
マージインデックス、前記判断されたモード、パーティションサイズ、パーティションインデックス、参照フレームインデックス、動きベクトル差分、および動きベクトル予測のうちの１つまたは複数に基づいて、後でコーディングされるブロックのための前記検査パターンを更新することをさらに備える、
請求項４に記載の方法。
【請求項７】
前記候補ブロックのセットは、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを含み、前記追加の候補ブロックは、前記左上候補ブロックである、
請求項１に記載の方法。
【請求項８】
前記追加の候補ブロックは、前記現在のブロックとの因果関係がある候補ブロックである、
請求項１に記載の方法。
【請求項９】
ビデオコーディングプロセスにおいて動きベクトルを符号化するように構成された装置であって、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、前記判断されたモードは、マージモードまたは適応動きベクトル予測モードのうちの１つである、
前記判断されたモードと、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを備える候補ブロックのセットとを使用して、前記現在のブロックについて前記動きベクトル予測プロセスを実行することと
を行うように構成されるビデオエンコーダを備え、前記判断されたモードがマージモードである場合、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記左下候補ブロック、前記左候補ブロック、前記上候補ブロック、または前記右上候補ブロックのうちのいずれか１つが利用不可能または無効である場合、前記マージモードにおいて使用される、
装置。
【請求項１０】
前記複数のモードは、前記マージモードと適応動きベクトル予測モードとを含む、請求項９に記載の装置。
【請求項１１】
前記ビデオエンコーダは、
ビデオデータの前記現在のブロックについて参照フレームに対する動きベクトルを判断することを行うようにさらに構成され、参照フレームのロケーションは、予測方向に基づく、
請求項１０に記載の装置。
【請求項１２】
前記判断されたモードは、前記マージモードであり、前記マージモードは、前記動きベクトル予測プロセスを実行する際に使用するための最大Ｎ個の候補ブロックを有し、
前記動きベクトル予測プロセスは、検査パターンに従って実行され、前記検査パターンは、前記候補ブロックのセット中の候補ブロックの各々を検査するための順序を定義し、
前記候補ブロックのセットは、前記検査パターンに沿って前記候補ブロックのセット中の最初のＮ個の利用可能な候補ブロックとして定義される、
請求項１１に記載の装置。
【請求項１３】
前記検査パターンは、ブロックサイズ、パーティションサイズ、およびパーティションインデックスのうちの１つまたは複数に基づく、
請求項１２に記載の装置。
【請求項１４】
前記ビデオエンコーダは、
マージインデックス、前記判断されたモード、パーティションサイズ、パーティションインデックス、参照フレームインデックス、動きベクトル差分、および動きベクトル予測のうちの１つまたは複数に基づいて、後でコーディングされるブロックのための前記検査パターンを更新することを行うようにさらに構成される、
請求項１２に記載の装置。
【請求項１５】
前記候補ブロックのセットは、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを含み、前記追加の候補ブロックは、前記左上候補ブロックである、
請求項９に記載の装置。
【請求項１６】
前記追加の候補ブロックは、前記現在のブロックとの因果関係がある候補ブロックである、
請求項９に記載の装置。
【請求項１７】
ビデオコーディングプロセスにおいて動きベクトルを符号化するように構成された装置であって、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断するための手段と、前記判断されたモードは、マージモードまたは適応動きベクトル予測モードのうちの１つである、
前記判断されたモードと、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを備える候補ブロックのセットとを使用して、前記現在のブロックについて前記動きベクトル予測プロセスを実行するための手段と
を備え、前記判断されたモードがマージモードである場合、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記左下候補ブロック、前記左候補ブロック、前記上候補ブロック、または前記右上候補ブロックのうちのいずれか１つが利用不可能または無効である場合、前記マージモードにおいて使用される、
装置。
【請求項１８】
前記複数のモードは、前記マージモードと適応動きベクトル予測モードとを含む、請求項１７に記載の装置。
【請求項１９】
実行されたとき、ビデオデータを符号化するためのデバイスのプロセッサに、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、前記判断されたモードは、マージモードまたは適応動きベクトル予測モードのうちの１つである、
前記判断されたモードと、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを備える候補ブロックのセットとを使用して、前記現在のブロックについて前記動きベクトル予測プロセスを実行することと
を行わせる命令を備え、前記判断されたモードがマージモードである場合、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記左下候補ブロック、前記左候補ブロック、前記上候補ブロック、または前記右上候補ブロックのうちのいずれか１つが利用不可能または無効である場合、前記マージモードにおいて使用される、コンピュータプログラム。
【請求項２０】
前記複数のモードは、前記マージモードと適応動きベクトル予測モードとを含む、請求項１９に記載のコンピュータプログラム。
【請求項２１】
ビデオコーディングプロセスにおいて動きベクトルを復号する方法であって、前記方法はビデオデコーダが実行し、前記方法は、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、前記判断されたモードは、マージモードまたは適応動きベクトル予測モードのうちの１つである、
左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを備える候補ブロックのセットから候補ブロックを判断することと
を備え、前記判断されたモードがマージモードである場合、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記左下候補ブロック、前記左候補ブロック、前記上候補ブロック、または前記右上候補ブロックのうちのいずれか１つが利用不可能または無効である場合、前記マージモードにおいて使用され、前記候補ブロックに関連する情報は、前記現在のブロックのための動きベクトルを復号するために使用される、方法。
【請求項２２】
前記動きベクトル予測プロセスのための前記モードは、受信したシンタックス要素から判断され、前記候補ブロックは、受信したシンタックス要素から判断される、請求項２１に記載の方法。
【請求項２３】
前記動きベクトル予測プロセスのための前記モードは、前記マージモードである、請求項２１に記載の方法。
【請求項２４】
前記動きベクトル予測プロセスのための前記モードは、適応動きベクトル予測モードである、
請求項２１に記載の方法。
【請求項２５】
前記動きベクトル予測プロセスのための前記モードは、前記マージモードであり、前記方法は、
候補動きベクトルを示す候補ブロックインデックスを受信することと、
前記受信した候補ブロックインデックスを有する前記候補ブロックに関連する動きベクトルと参照フレームと予測方向とを取り出すことと、
前記取り出された動きベクトルと参照フレームと予測方向とを使用して、前記現在のブロックに対してインター予測プロセスを実行することと
をさらに備える、請求項２１に記載の方法。
【請求項２６】
前記動きベクトル予測プロセスのための前記モードは、前記マージモードであり、前記マージモードは、前記動きベクトル予測プロセスを実行する際に使用するための最大Ｎ個の候補ブロックを有し、
前記動きベクトル予測プロセスは、検査パターンに従って実行され、前記検査パターンは、前記候補ブロックのセット中の候補ブロックの各々を検査するための順序を定義し、
前記候補ブロックのセットは、前記検査パターンに沿って前記候補ブロックのセット中の最初のＮ個の利用可能な候補ブロックとして定義される、
請求項２１に記載の方法。
【請求項２７】
前記検査パターンは、ブロックサイズ、パーティションサイズ、およびパーティションインデックスのうちの１つまたは複数に基づく、
請求項２６に記載の方法。
【請求項２８】
マージインデックス、前記判断されたモード、パーティションサイズ、パーティションインデックス、参照フレームインデックス、動きベクトル差分、および動きベクトル予測のうちの１つまたは複数に基づいて、後でコーディングされるブロックのための前記検査順序パターンを更新することをさらに備える、
請求項２６に記載の方法。
【請求項２９】
前記候補ブロックのセットは、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを含み、前記追加の候補ブロックは、前記左上候補ブロックである、
請求項２１に記載の方法。
【請求項３０】
前記追加の候補ブロックは、前記現在のブロックとの因果関係がある候補ブロックである、
請求項２１に記載の方法。
【請求項３１】
前記動きベクトル予測プロセスのための前記モードは、適応動きベクトル予測モードであり、前記方法は、
参照フレームインデックスと、動きベクトル差分と、予測方向を示すシンタックス要素とを受信することと、
候補動きベクトルを示す候補ブロックインデックスを受信することと、
前記受信した候補ブロックインデックスに関連する前記候補動きベクトルを取り出すことと、
前記候補動きベクトルと前記動きベクトル差分とを使用して、前記現在のブロックのための動きベクトルを計算することと、
前記計算された動きベクトルと、前記受信した参照フレームインデックスと、前記受信した予測方向とを使用してインター予測プロセスを実行することと
をさらに備える、請求項２１に記載の方法。
【請求項３２】
ビデオコーディングプロセスにおいて動きベクトルを復号するように構成される装置であって、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、前記判断されたモードは、マージモードまたは適応動きベクトル予測モードのうちの１つである、
左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを備える候補ブロックのセットから候補ブロックを判断することと
を行うように構成されたビデオデコーダを備え、
前記判断されたモードがマージモードである場合、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記左下候補ブロック、前記左候補ブロック、前記上候補ブロック、または前記右上候補ブロックのうちのいずれか１つが利用不可能または無効である場合、前記マージモードにおいて使用され、前記候補ブロックに関連する情報は、前記現在のブロックのための動きベクトルを復号するために使用される、装置。
【請求項３３】
前記動きベクトル予測プロセスのための前記モードは、受信したシンタックス要素から判断され、前記候補ブロックが、受信したシンタックス要素から判断される、請求項３２に記載の装置。
【請求項３４】
前記動きベクトル予測プロセスのための前記モードは、前記マージモードである、請求項３２に記載の装置。
【請求項３５】
前記動きベクトル予測プロセスのための前記モードは、適応動きベクトル予測モードである、
請求項３２に記載の装置。
【請求項３６】
前記動きベクトル予測プロセスのための前記モードは、前記マージモードであり、前記ビデオコーダは、
候補動きベクトルを示す候補ブロックインデックスを受信することと、
前記受信した候補ブロックインデックスに関連する前記動きベクトルと参照フレームと予測方向とを取り出すことと、
前記取り出された動きベクトルと参照フレームと予測方向とを使用して、前記現在のブロックに対してインター予測プロセスを実行することと
を行うようにさらに構成される、請求項３２に記載の装置。
【請求項３７】
前記動きベクトル予測プロセスのための前記モードは、前記マージモードであり、前記マージモードは、前記動きベクトル予測プロセスを実行する際に使用するための最大Ｎ個の候補ブロックを有し、
前記動きベクトル予測プロセスは、検査パターンに従って実行され、前記検査パターンは、前記候補ブロックのセット中の候補ブロックの各々を検査するための順序を定義し、
前記候補ブロックのセットは、前記検査パターンに沿って前記候補ブロックのセット中の最初のＮ個の利用可能な候補ブロックとして定義される、
請求項３２に記載の装置。
【請求項３８】
前記検査パターンは、ブロックサイズ、パーティションサイズ、およびパーティションインデックスのうちの１つまたは複数に基づく、
請求項３７に記載の装置。
【請求項３９】
前記ビデオデコーダは、
マージインデックス、前記判断されたモード、パーティションサイズ、パーティションインデックス、参照フレームインデックス、動きベクトル差分、および動きベクトル予測のうちの１つまたは複数に基づいて、後でコーディングされるブロックのための前記検査順序パターンを更新すること
を行うようにさらに構成される、請求項３７に記載の装置。
【請求項４０】
前記候補ブロックのセットは、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを含み、前記追加の候補ブロックは、前記左上候補ブロックである、
請求項３２に記載の装置。
【請求項４１】
前記追加の候補ブロックは、前記現在のブロックとの因果関係がある候補ブロックである、
請求項３２に記載の装置。
【請求項４２】
前記動きベクトル予測プロセスのための前記モードは、適応動きベクトル予測モードであり、前記ビデオデコーダは、
参照フレームインデックスと、動きベクトル差分と、予測方向を示すシンタックス要素とを受信することと、
候補動きベクトルを示す候補ブロックインデックスを受信することと、
前記受信した候補ブロックインデックスに関連する前記候補動きベクトルを取り出すことと、
前記候補動きベクトルと前記動きベクトル差分とを使用して、前記現在のブロックのための動きベクトルを計算することと、
前記計算された動きベクトルと、前記受信した参照フレームインデックスと、前記受信した予測方向とを使用してインター予測プロセスを実行することと
を行うようにさらに構成される、請求項３２に記載の装置。
【請求項４３】
ビデオコーディングプロセスにおいて動きベクトルを復号するように構成される装置であって、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断するための手段と、前記判断されたモードは、マージモードまたは適応動きベクトル予測モードのうちの１つである、
左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを備える候補ブロックのセットから候補ブロックを判断するための手段と
を備え、前記判断されたモードがマージモードである場合、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記左下候補ブロック、前記左候補ブロック、前記上候補ブロック、または前記右上候補ブロックのうちのいずれか１つが利用不可能または無効である場合、前記マージモードにおいて使用され、前記候補ブロックに関連する情報は、前記現在のブロックのための動きベクトルを復号するために使用される、装置。
【請求項４４】
前記複数のモードは、前記マージモードと適応動きベクトル予測モードとを含む、請求項４３に記載の装置。
【請求項４５】
実行されたとき、ビデオデータを復号するためのデバイスのプロセッサに、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、前記判断されたモードは、マージモードまたは適応動きベクトル予測モードのうちの１つである、
左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを備える候補ブロックのセットから候補ブロックを判断することと
を行わせる命令を備え、
前記判断されたモードがマージモードである場合、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記左下候補ブロック、前記左候補ブロック、前記上候補ブロック、または前記右上候補ブロックのうちのいずれか１つが利用不可能または無効である場合、前記マージモードにおいて使用され、前記候補ブロックに関連する情報は、前記現在のブロックのための動きベクトルを復号するために使用される、コンピュータプログラム。
【請求項４６】
前記複数のモードは、前記マージモードと適応動きベクトル予測モードとを含む、請求項４５に記載のコンピュータプログラム。
【請求項４７】
前記候補ブロックのセットは、前記複数のモードの各々について同じである、請求項１に記載の方法。
【請求項４８】
前記候補ブロックのセットは、前記複数のモードの各々について同じである、請求項９に記載の装置。
【請求項４９】
前記候補ブロックのセットは、前記複数のモードの各々について同じである、請求項１７に記載の装置。
【請求項５０】
前記候補ブロックのセットは、前記複数のモードの各々について同じである、請求項１９に記載のコンピュータプログラム。
【請求項５１】
前記候補ブロックのセットは、前記複数のモードの各々について同じである、請求項２１に記載の方法。
【請求項５２】
前記候補ブロックのセットは、前記複数のモードの各々について同じである、請求項３２に記載の装置。
【請求項５３】
前記候補ブロックのセットは、前記複数のモードの各々について同じである、請求項４３に記載の装置。
【請求項５４】
前記候補ブロックのセットは、前記複数のモードの各々について同じである、請求項４５に記載のコンピュータプログラム。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、それらのすべての全体が参照により本明細書に組み込まれる、２０１１年７月１１日に出願された米国仮出願第６１／５０６，５５８号、２０１１年６月２０日に出願された米国仮出願第６１／４９９，１１４号、および２０１１年７月１８日に出願された米国仮出願第６１／５０９，００７号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関し、より詳細には、動きベクトル予測プロセスにおいて動きベクトル予測候補ブロックを選択するための技法に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するための、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を含む。ブロックベースのビデオコーディングでは、ビデオフレームまたはスライスはマクロブロックに区分され得る。各ブロックはさらに区分され得る。イントラコード化（Ｉ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに関する空間的予測を使用して符号化される。インターコード化（ＰまたはＢ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに関する空間的予測、あるいは他の参照フレーム中の参照サンプルに関する時間的予測を使用し得る。空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。
【０００５】
インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックをポイントする動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。最初は２次元アレイに構成される、量子化された変換係数は、特定の順序でスキャンされて、エントロピーコーディングのための変換係数の１次元ベクトルが生成され得る。
【発明の概要】
【０００６】
概して、本開示では、ビデオデータをコーディングするための技法について説明する。本開示では、動きベクトル予測プロセスにおいて動きベクトル予測候補ブロックを選択するための技法について説明する。
【０００７】
本開示の一例では、ビデオコーディングプロセスにおいて動きベクトルを符号化する方法は、動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、判断されたモードと候補ブロックのセットとを使用して、ビデオデータの現在のブロックについて動きベクトル予測プロセスを実行することであって、候補ブロックのセットが複数のモードの各々について同じである、実行することとを備える。
【０００８】
本開示の別の例では、ビデオコーディングプロセスにおいて動きベクトルを復号する方法は、ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、候補ブロックのセットからの候補ブロックを判断することであって、候補ブロックのセットが複数のモードの各々について同じであり、候補ブロックに関連する情報が、現在のブロックのための動きベクトルを復号するために使用される、判断することとを備える。
【０００９】
本開示の別の例では、ビデオコーディングプロセスにおいて動きベクトルを符号化する方法は、動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、判断されたモードと候補ブロックのセットとを使用して、ビデオデータの現在のブロックについて動きベクトル予測プロセスを実行することであって、候補ブロックのセットが複数のモードの各々について同じであり、候補ブロックのセット中の１つの候補ブロックが追加の候補ブロックとして指定され、追加の候補ブロックは、候補ブロックのセットの候補ブロックのうちの別の候補ブロックが利用不可能である場合に使用される、実行することとを備える。
【００１０】
本開示の別の例では、ビデオコーディングプロセスにおいて動きベクトルを復号する方法は、ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを示すシンタックス要素を受信することと、候補ブロックのセットからの候補ブロックを示すインデックスを受信することであって、候補ブロックのセットが複数のモードの各々について同じであり、候補ブロックのセット中の１つの候補ブロックが追加の候補ブロックとして指定され、追加の候補ブロックは、候補ブロックのセットの候補ブロックのうちの別の候補ブロックが利用不可能である場合に使用され、候補ブロックに関連する情報が、現在のブロックのための動きベクトルを復号するために使用される、受信することとを備える。
【００１１】
１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１Ａ】適応動きベクトル予測（ＡＭＶＰ：adaptive motion vector prediction）モードによる動きベクトル予測のための候補ブロックを示す概念図。
【図１Ｂ】マージモードによる動きベクトル予測のための候補ブロックを示す概念図。
【図２】例示的なビデオ符号化および復号システムを示すブロック図。
【図３】例示的なビデオエンコーダを示すブロック図。
【図４Ａ】マージモードのためのシグナリング情報の概念図。
【図４Ｂ】ＡＭＶＰモードのためのシグナリング情報の概念図。
【図５Ａ】本開示の一例による、ＡＭＶＰおよびマージモードのための候補ブロックを示す概念図。
【図５Ｂ】本開示の別の例による、ＡＭＶＰおよびマージモードのための候補ブロックを示す概念図。
【図６】本開示の別の例による、ＡＭＶＰおよびマージモードのための候補ブロックを示す概念図。
【図７】本開示の別の例による、ＡＭＶＰおよびマージモードのための候補ブロックと検査パターンとを示す概念図。
【図８】例示的なビデオデコーダを示すブロック図。
【図９】ビデオを符号化する例示的な方法を示すフローチャート。
【図１０】マージモードにおいてビデオを符号化する例示的な方法を示すフローチャート。
【図１１】ＡＭＶＰモードにおいてビデオを符号化する例示的な方法を示すフローチャート。
【図１２】ビデオを復号する例示的な方法を示すフローチャート。
【図１３】マージモードにおいてビデオを復号する例示的な方法を示すフローチャート。
【図１４】ＡＭＶＰモードにおいてビデオを復号する例示的な方法を示すフローチャート。
【図１５】ビデオを符号化する別の例示的な方法を示すフローチャート。
【図１６】ビデオを復号する別の例示的な方法を示すフローチャート。
【図１７】マージモードにおいてビデオを復号する別の例示的な方法を示すフローチャート。
【図１８】ＡＭＶＰモードにおいてビデオを復号する別の例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１３】
概して、本開示では、ビデオデータをコーディングするための技法について説明する。本開示では、動きベクトル予測プロセスにおいて動きベクトル予測候補ブロックを選択するための技法について説明する。一例では、本開示は、複数の動きベクトル予測モードの各々が、候補ブロックの同じセットを使用して、現在のブロックのための動きベクトルを予測することを提案する。別の例では、本開示は、候補ブロックのセット中の１つの候補ブロックが追加の候補ブロックとして指定されることを提案する。追加の候補ブロックは、セット中のブロックのうちの別の１つが利用不可能である場合に使用される。
【００１４】
デジタルビデオデバイスは、デジタルビデオ情報をより効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（フレーム内）予測および／または時間的（フレーム間）予測技法を適用し得る。
【００１５】
Ｊｏｉｎｔ  Ｃｏｏｐｅｒａｔｉｖｅ  Ｔｅａｍ  ｆｏｒ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格に従うビデオコーディングでは、ビデオフレームがコーディングユニットに区分され得る。コーディングユニット（ＣＵ）は、概して、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を指す。ＣＵは、通常、Ｙとして示されるルミナンス成分と、ＵおよびＶとして示される２つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、サンプルの数で表されるＵおよびＶ成分のサイズは、Ｙ成分のサイズと同じであるかまたはそれとは異なり得る。ＣＵは、一般に正方形であり、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４などの他のビデオコーディング規格の下でのいわゆるマクロブロックと同様であると見なされ得る。
【００１６】
より良好なコーディング効率を達成するために、コーディングユニットは、ビデオコンテンツに応じて可変サイズを有し得る。さらに、コーディングユニットは、予測または変換のためにより小さいブロックに分割され得る。具体的には、各コーディングユニットは、予測ユニット（ＰＵ）と変換ユニット（ＴＵ）とにさらに区分され得る。予測ユニットは、Ｈ．２６４などの他のビデオコーディング規格の下でのいわゆるパーティションと同様であると見なされ得る。変換ユニット（ＴＵ）は、変換係数を生成するために変換が適用される残差データのブロックを指す。
【００１７】
本出願では、例示のために、開発中のＨＥＶＣ規格の現在提案されている態様のいくつかに従うコーディングについて説明する。ただし、本開示で説明する技法は、Ｈ．２６４または他の規格に従って定義されるビデオコーディングプロセスあるいはプロプライエタリビデオコーディングプロセスなど、他のビデオコーディングプロセスのために有用であり得る。
【００１８】
ＨＥＶＣの規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスのモデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３４個ものイントラ予測符号化モードを提供する。
【００１９】
ＨＭによれば、ＣＵは、１つまたは複数の予測ユニット（ＰＵ）および／または１つまたは複数の変換ユニット（ＴＵ）を含み得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大ＣＵである最大コーディングユニット（ＬＣＵ）を定義し得る。概して、ＣＵは、ＣＵがサイズの差異を有しないことを除いて、Ｈ．２６４のマクロブロックと同様の目的を有する。したがって、ＣＵは、サブＣＵに分割され得る。概して、本開示におけるＣＵへの言及は、ピクチャの最大コーディングユニットまたはＬＣＵのサブＣＵを指すことがある。ＬＣＵはサブＣＵに分割され得、各サブＣＵはさらにサブＣＵに分割され得る。ビットストリームのシンタックスデータは、ＣＵ深さと呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ）をも定義し得る。本開示ではまた、ＣＵ、ＰＵ、またはＴＵのいずれかを指すために「ブロック」または「部分」という用語を使用する。概して、「部分」は、ビデオフレームの任意のサブセットを指し得る。
【００２０】
ＬＣＵは４分木データ構造に関連付けられ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。ＣＵがさらに分割されない場合、そのＣＵはリーフＣＵと呼ばれる。
【００２１】
その上、リーフＣＵのＴＵもそれぞれの４分木データ構造に関連付けられ得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。本開示では、ＬＣＵがどのように区分されるかを示す４分木をＣＵ４分木と呼び、リーフＣＵがどのようにＴＵに区分されるかを示す４分木をＴＵ４分木と呼ぶ。ＴＵ４分木のルートノードは概してリーフＣＵに対応し、ＣＵ４分木のルートノードは概してＬＣＵに対応する。分割されないＴＵ４分木のＴＵはリーフＴＵと呼ばれる。
【００２２】
リーフＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分を表し、そのＰＵの参照サンプルを取り出すためのデータを含み得る。たとえば、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵのための動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルがポイントする参照フレーム、および／または動きベクトルの参照リスト（たとえば、リスト０もしくはリスト１）を記述し得る。（１つまたは複数の）ＰＵを定義するリーフＣＵのデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが予測コーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかに応じて異なり得る。イントラコーディングの場合、ＰＵは、以下で説明するリーフ変換ユニットと同じように扱われ得る。
【００２３】
ブロック（たとえば、ビデオデータの予測ユニット（ＰＵ））をコーディングするために、ブロックの予測子が最初に導出される。予測子は、イントラ（Ｉ）予測（すなわち、空間的予測）またはインター（ＰまたはＢ）予測（すなわち、時間的予測）のいずれかを通して導出され得る。したがって、いくつかの予測ユニットは、同じフレーム中の隣接参照ブロックに関する空間的予測を使用してイントラコーディング（Ｉ）され得、他の予測ユニットは、他のフレーム中の参照ブロックに関してインターコーディング（ＰまたはＢ）され得る。
【００２４】
予測子が識別されると、元のビデオデータブロックとそれの予測子との間の差分が計算される。この差分は、予測残差とも呼ばれ、コーディングされるべきブロックのピクセルと、参照ブロックの対応するピクセル、すなわち、予測子との間のピクセル値差分を指す。より良好な圧縮を達成するために、予測残差（すなわち、ピクセル差分値のアレイ）は、概して、たとえば、離散コサイン変換（ＤＣＴ）、整数変換、カルーネンレーベ（Karhunen-Loeve）（Ｋ−Ｌ）変換、または他の変換を使用して変換され得る。
【００２５】
インター予測を使用してＰＵをコーディングすることは、現在のブロックと参照フレーム中のブロックとの間の動きベクトルを計算することを伴う。動きベクトルは、動き推定（または動き探索）と呼ばれるプロセスを通して計算される。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在のフレーム中の予測ユニットの変位を示し得る。参照サンプルは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of squared difference）、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされているＰＵを含むＣＵの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得る。いくつかの例では、参照サンプルは分数ピクセル位置において発生し得る。現在の部分に最も良く一致する参照フレームの部分を見つけると、エンコーダは、現在の部分のための現在の動きベクトルを、現在の部分から参照フレーム中の一致する部分までの（すなわち、現在の部分の中心から一致する部分の中心までの）ロケーションの差分として判断する。
【００２６】
いくつかの例では、エンコーダは、符号化ビデオビットストリーム中で、各部分について動きベクトルをシグナリングし得る。シグナリングされた動きベクトルは、ビデオデータを復号するために、デコーダによって動き補償を実行するために使用される。しかしながら、元の動きベクトルを直接シグナリングすると、一般に、情報を搬送するために多数のビットが必要なので、コーディングがあまり効率的でなくなることがある。
【００２７】
いくつかの事例では、元の動きベクトルを直接シグナリングするのではなく、エンコーダは、各パーティションについて、すなわち、各ＰＵについて動きベクトルを予測し得る。この動きベクトル予測を実行する際に、エンコーダは、現在の部分と同じフレーム中の空間的に隣接するブロックから判断される候補動きベクトルのセット、あるいは参照フレーム中のコロケートブロックから判断される候補動きベクトルを選択し得る。エンコーダは、動きベクトル予測を実行し、必要な場合、シグナリングする際のビットレートを低減するために、元の動きベクトルをシグナリングするのではなく予測差分をシグナリングし得る。空間的に隣接するブロックからの候補動きベクトルは空間ＭＶＰ候補と呼ばれることがあるが、別の参照フレーム中のコロケートブロックからの候補動きベクトルは時間ＭＶＰ候補と呼ばれることがある。
【００２８】
動きベクトル予測の２つの異なるモードまたはタイプがＨＥＶＣ規格の現在のワーキングドラフトにおいて提案されている。一方のモードは「マージ」モードと呼ばれる。他方のモードは適応動きベクトル予測（ＡＭＶＰ）と呼ばれる。マージモードでは、エンコーダは、フレームの現在の部分のための選択された候補動きベクトルから、動きベクトルと、（所与の参照ピクチャリストにおいて動きベクトルがポイントする参照フレームを識別する）参照インデックスと、（すなわち、参照フレームが時間的に現在のフレームに先行するかまたは後続するかに関して、参照ピクチャリスト（リスト０またはリスト１）を識別する）動き予測方向とをコピーするように、予測シンタックスのビットストリームシグナリングを通してデコーダに命令する。これは、選択された候補動きベクトル（すなわち、特定の空間ＭＶＰ候補または時間ＭＶＰ候補）を識別する候補動きベクトルリストへのインデックスをビットストリーム中でシグナリングすることによって達成される。したがって、マージモードでは、予測シンタックスは、モード（この場合は「マージ」モード）を識別するフラグと、選択された候補動きベクトルを識別するインデックスとを含み得る。いくつかの事例では、候補動きベクトルは、現在の部分に関する因果的部分中にあることになる。すなわち、候補動きベクトルは、デコーダによってすでに復号されていることになる。したがって、デコーダは、因果的部分のための動きベクトルと参照インデックスと動き予測方向とをすでに受信および／または判断している。したがって、デコーダは、単に、メモリから、因果的部分に関連する動きベクトルと参照インデックスと動き予測方向とを取り出し、これらの値を現在の部分についての動き情報としてコピーし得る。マージモードでブロックを再構成するために、デコーダは、現在の部分についての導出された動き情報を使用して予測ブロックを取得し、予測ブロックに残差データを加算してコード化ブロックを再構成する。
【００２９】
ＡＭＶＰでは、エンコーダは、候補部分から動きベクトルのみをコピーし、コピーされたベクトルを現在の部分の動きベクトルのための予測子として使用するようにビットストリームシグナリングを通してデコーダに命令し、動きベクトル差分（ＭＶＤ：motion vector difference）をシグナリングする。現在の部分の動きベクトルに関連する参照フレームおよび予測方向は別にシグナリングされる。ＭＶＤは、現在の部分のための現在の動きベクトルと、候補部分から導出された動きベクトル予測子との間の差分である。この場合、エンコーダは、動き推定を使用して、コーディングされるべきブロックのための実際の動きベクトルを判断し、次いで、実際の動きベクトルと動きベクトル予測子との間の差分をＭＶＤ値として判断する。このようにして、デコーダは、マージモードの場合のように、現在の動きベクトルとして候補動きベクトルの厳密なコピーを使用しないが、そうではなく、動き推定から判断された現在の動きベクトルに値が「近接」し得る候補動きベクトルを使用し、現在の動きベクトルを再生するためにＭＶＤを加算し得る。ＡＭＶＰモードでブロックを再構成するために、デコーダは、対応する残差データを加算してコード化ブロックを再構成する。
【００３０】
たいていの状況では、ＭＶＤは、シグナリングするために現在の動きベクトル全体よりも少ないビットを必要とする。したがって、ＡＭＶＰは、動きベクトル全体を送ることに勝るコーディング効率を維持しながら、現在の動きベクトルをより正確にシグナリングすることを可能にする。対照的に、マージモードはＭＶＤの指定に対応しておらず、したがって、マージモードは、シグナリング効率の増加（すなわち、ビットの低減）のために動きベクトルシグナリングの精度を犠牲にする。ＡＭＶＰの予測シンタックスは、モードのフラグ（この場合はＡＭＶＰフラグ）と、候補部分のインデックスと、現在の動きベクトルと候補部分からの予測動きベクトルとの間のＭＶＤと、参照インデックスと、動き予測方向とを含み得る。
【００３１】
現在の部分について動きベクトルを判断するために動き推定が実行されると、エンコーダは、参照フレーム中の一致する部分を現在の部分と比較する。この比較は、一般に、上述のように、現在の部分から参照フレーム中の（「参照サンプル」と通常呼ばれる）部分を減算することを伴い、いわゆる残差データを生じる。残差データは、現在の部分と参照サンプルとの間のピクセル差分値を示す。エンコーダは、次いで、この残差データを空間領域から、周波数領域などの変換領域に変換する。通常、エンコーダは、この変換を達成するために、残差データに離散コサイン変換（ＤＣＴ）を適用する。得られた変換係数は異なる周波数を表し、エネルギーの大部分が、通常、数個の低周波係数に集中するので、エンコーダは、残差データの圧縮を可能にするためにこの変換を実行する。
【００３２】
一般に、得られた変換係数は、特に変換係数が最初に量子化される（丸められる）場合、ランレングス符号化を可能にする方法で一緒にグループ化される。エンコーダは、量子化変換係数についてこのランレングス符号化を実行し、次いで、ランレングスコーディングされた量子化変換係数をさらに圧縮するために統計的ロスレス（またはいわゆる「エントロピー」）符号化を実行する。
【００３３】
ロスレスエントロピーコーディングを実行した後に、エンコーダは、符号化ビデオデータを含むビットストリームを生成する。このビットストリームはまた、いくつかの事例では、たとえば、動きベクトル予測が実行されたかどうかと、動きベクトルモードと、動きベクトル予測子（ＭＶＰ：motion vector predictor）インデックス（すなわち、選択された動きベクトルをもつ候補部分のインデックス）とを指定するいくつかの予測シンタックス要素を含む。ＭＶＰインデックスは、それのシンタックス要素変数名「ｍｖｐ＿ｉｄｘ」と呼ばれることもある。
【００３４】
高効率ビデオコーディング（ＨＥＶＣ）と呼ばれる、ＩＴＵ−Ｔ／ＩＳＯ／ＩＥＣ  Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって採用のために提案されている現在の設計では、エンコーダは、上記で説明した１）ＡＭＶＰおよび２）マージモードを含む、現在の部分のための動きベクトルをそれによって予測するためのいくつかの動きベクトル予測モードを実行する。これらの２つのモードは同様であるが、ＡＭＶＰは、ＭＶＤ、動き予測方向および参照インデックスを定義することが可能であることに関してより多くのフレキシビリティを提供し、マージモードは、単にこの動きベクトル情報（すなわち、動きベクトル、動き予測方向、および参照インデックス）をコピーし、ＭＶＤの精度の増加に対応しない。
【００３５】
図１Ａに、ＡＭＶＰモードにおいて使用するための、ＨＥＶＣ規格において現在提案されている候補ブロック（またはＰＵの部分／ブロック）のセット１００を示し、図１Ｂに、マージモードにおいて使用するための、ＨＥＶＣ規格において現在提案されている候補ブロックのセット１１０を示す。ＡＭＶＰモードは、左下（ＢＬ）ブロック１０１、左（Ｌ）ブロック１０２、右上（ＲＡ）ブロック１０３、上（Ａ）ブロック１０４、左上（ＬＡ）ブロック１０５、および時間ブロック（Ｔ）１０６という６つの候補ブロックを使用する。候補ブロックのセットに加えて、ＡＭＶＰモードは、候補ブロックを検査するための順序をも指定することに留意されたい。図１Ａの例では、検査パターンは、ＢＬ−Ｌ−ＲＡ−Ａ−ＬＡ−Ｔのように進む。図１Ｂに示すように、マージモードは、左下（ＢＬ）ブロック１１１、左（Ｌ）ブロック１１２、右上（ＲＡ）ブロック１１３、上（Ａ）ブロック１１４、および時間（Ｔ）ブロック１１５という５つの候補ブロックを使用する。これらの候補ブロックに関連する動きベクトルが、マージモードおよびＡＭＶＰモードで動きベクトル予測子を判断するために使用される。マージモードは、ＡＭＶＰと同様の検査パターンを使用し得るか、または異なる検査パターンを使用し得る。
【００３６】
上記で説明したように、ＡＭＶＰモードは６つの候補ブロックを使用し、マージモードは５つの候補ブロックを使用する。また、右上（ＲＡ）、左下（ＢＬ）、および時間（Ｔ）ブロック以外の、ＡＭＶＰモードのための候補ブロックとマージモードのための候補ブロックとは、異なるロケーションにある。したがって、符号化プロセスと復号プロセスの両方の間に多数の候補ブロックが記憶および検討されなければならない。また、左下ブロックはすべての状況において利用可能であるとは限らないので、ＡＭＶＰのための検査パターンは最適でないことがある。そのような状況は、左下ブロックがまだコーディングされていない（たとえば、それがスライスまたはＣＵ境界上にある）とき、または左下ブロックのためのデータが破損している場合を含む。
【００３７】
本開示では、ＡＭＶＰモードとマージモードの両方ための一体化された候補ブロックセットを提案する。概して、どの動きベクトル予測モード（たとえば、マージモードまたはＡＭＶＰモード）が使用されるかにかかわらず、同じ候補ブロックセットが使用される。したがって、動きベクトルと他のインター予測関係の情報（たとえば、参照フレーム、予測方向など）とを記憶するために、より少ないメモリが必要とされる。本開示の他の例では、追加の候補ブロックを含む候補ブロックのセットを使用するための技法を提案する。また、より最適な検査パターンのための技法をも開示する。
【００３８】
図２は、本開示の例による動きベクトル予測のための技法を利用するように構成され得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図２に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先デバイス１４に送信するソースデバイス１２を含む。符号化ビデオデータはまた、記憶媒体３４またはファイルサーバ３６に記憶され得、必要に応じて宛先デバイス１４によってアクセスされ得る。記憶媒体またはファイルサーバに記憶されたとき、ビデオエンコーダ２０は、コード化ビデオデータを記憶媒体に記憶するための、ネットワークインターフェース、コンパクトディスク（ＣＤ）、ブルーレイ（登録商標）またはデジタルビデオディスク（ＤＶＤ）バーナーまたはスタンピングファシリティデバイス、あるいは他のデバイスなど、別のデバイスにコード化ビデオデータを与え得る。同様に、ネットワークインターフェース、ＣＤまたはＤＶＤリーダーなど、ビデオデコーダ３０とは別個のデバイスが、記憶媒体からコード化ビデオデータを取り出し、取り出されたデータをビデオデコーダ３０に与え得る。
【００３９】
ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、多種多様なデバイスのいずれかを備え得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。したがって、通信チャネル１６は、符号化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、またはワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。同様に、ファイルサーバ３６は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス１４によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。
【００４０】
本開示の例による、動きベクトル予測のための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００４１】
図２の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器２２と、送信機２４とを含む。ソースデバイス１２において、ビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例、あるいは符号化ビデオデータがローカルディスクに記憶された適用例に適用され得る。
【００４２】
キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００４３】
ビデオエンコーダ２０によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオはまた、後で消費するために記憶媒体３４またはファイルサーバ３６に記憶され得る。記憶媒体３４は、ブルーレイディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオを記憶するための他の好適なデジタル記憶媒体を含み得る。記憶媒体３４に記憶された符号化ビデオは、次いで、復号および再生のために宛先デバイス１４によってアクセスされ得る。
【００４４】
ファイルサーバ３６は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス１４に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な他のタイプのデバイスを含む。ファイルサーバ３６からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。ファイルサーバ３６は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス１４によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデム、イーサネット（登録商標）、ＵＳＢなど）、またはその両方の組合せを含み得る。
【００４５】
図２の例では、宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調して、ビデオデコーダ３０のための復調されたビットストリームを生成する。チャネル１６を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ３０が使用する、ビデオエンコーダ２０によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ（コーデック）の一部を形成し得る。
【００４６】
ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００４７】
図２の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００４８】
ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００４９】
図２には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００５０】
ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで部分的に実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００５１】
ビデオエンコーダ２０は、ビデオ符号化プロセスにおける動きベクトル予測のための本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ３０は、ビデオコーディングプロセスにおける動きベクトル予測のためのこれらの技法のいずれかまたはすべてを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指すことがある。
【００５２】
本開示の一例では、ソースデバイス１２のビデオエンコーダ２０は、動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、判断されたモードと候補ブロックのセットとを使用して、ビデオデータの現在のブロックについて動きベクトル予測プロセスを実行することであって、候補ブロックのセットが複数のモードの各々について同じである、実行することとを行うように構成され得る。
【００５３】
本開示の別の例では、ソースデバイス１２のビデオエンコーダ２０は、ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、判断されたモードと候補ブロックのセットとを使用して、現在のブロックについて動きベクトル予測プロセスを実行することであって、候補ブロックのセットが複数のモードの各々について同じであり、候補ブロックのセット中の１つの候補ブロックが追加の候補ブロックとして指定され、追加の候補ブロックは、候補ブロックのセットの候補ブロックのうちの別の候補ブロックが利用不可能である場合に使用される、実行することとを行うように構成され得る。
【００５４】
本開示の別の例では、宛先デバイス１４のビデオデコーダ３０は、ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを示すシンタックス要素を受信することと、候補ブロックのセットからの候補ブロックを示すインデックスを受信することであって、候補ブロックのセットが複数のモードの各々について同じであり、候補ブロックに関連する情報が、現在のブロックのための動きベクトルを復号するために使用される、受信することとを行うように構成され得る。
【００５５】
本開示の別の例では、宛先デバイス１４のビデオデコーダ３０は、ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを示すシンタックス要素を受信することと、候補ブロックのセットからの候補ブロックを示すインデックスを受信することであって、候補ブロックのセットが複数のモードの各々について同じであり、候補ブロックのセット中の１つの候補ブロックが追加の候補ブロックとして指定され、追加の候補ブロックは、候補ブロックのセットの候補ブロックのうちの別の候補ブロックが利用不可能である場合に使用され、候補ブロックに関連する情報が、現在のブロックのための動きベクトルを復号するために使用される、受信することとを行うように構成され得る。
【００５６】
図３は、本開示で説明する動きベクトル予測のための技法を使用し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０について、例示のためにＨＥＶＣコーディングのコンテキストにおいて説明するが、変換係数のスキャンを必要とし得る他のコーディング規格または方法に関して本開示を限定するものではない。ビデオエンコーダ２０は、ビデオフレーム内のＣＵのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオデータの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在のフレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースのビデオ圧縮モードのいずれかを指すことがある。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指すことがある。
【００５７】
図３に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図３の例では、ビデオエンコーダ２０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、参照フレームバッファ６４と、加算器５０と、変換モジュール５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。図３に示す変換モジュール５２は、残差データのブロックに実際の変換または変換の組合せを適用する構造または装置であり、ＣＵの変換ユニット（ＴＵ）と呼ばれることもある変換係数のブロックと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換モジュール６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図３に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。
【００５８】
符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット（ＬＣＵ）に分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット４６は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する受信したビデオブロックのイントラ予測コーディングを実行し得る。
【００５９】
モード選択ユニット４０は、たとえば、各モードについての誤差（すなわち、ひずみ）結果に基づいて、コーディングモードのうちの１つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインター予測ブロック（たとえば、予測ユニット（ＰＵ））を、残差ブロックデータを生成するために加算器５０に与え、参照フレーム中で使用する符号化ブロックを再構成するために加算器６２に与える。加算器６２は、以下でより詳細に説明するように、予測ブロックを、そのブロックについての、逆変換モジュール６０からの逆量子化され逆変換されたデータと合成して、符号化ブロックを再構成する。いくつかのビデオフレームはＩフレームに指定され得、Ｉフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット４２によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測ユニット４６は、ＰフレームまたはＢフレーム中のブロックのイントラ予測符号化を実行し得る。
【００６０】
動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定（または動き探索）は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在のフレーム中の予測ユニットの変位を示し得る。動き推定ユニット４２は、予測ユニットを参照フレームバッファ６４に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットのための動きベクトルを計算する。参照サンプルは、絶対値差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされているＰＵを含むＣＵの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得る。いくつかの例では、参照サンプルは分数ピクセルロケーションにおいて発生し得る。
【００６１】
動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット４４は、たとえば、ＰＵのための動きベクトルによって識別される参照サンプルを取り出すことによって、現在のＣＵの予測ユニットについての予測値を計算し得る。いくつかのビデオ符号化技法では、動き推定ユニット４２は、計算された動きベクトルと、参照フレームと、予測方向（すなわち、参照フレームが現在のフレームに時間的に先行するのか後続するのかに関する方向）とをエントロピー符号化ユニット５６および動き補償ユニット４４に送る。他のビデオ符号化技法は、動きベクトルを符号化するために動きベクトル予測プロセスを利用する。動きベクトル予測プロセスは、マージモードとＡＭＶＰモードとを含む複数のモードの中から選定され得る。
【００６２】
マージモードでは、エンコーダは、候補ブロックのセットを検討し、現在のブロックと同じ（または最もぴったり一致する）動きベクトルと参照フレームと予測方向とを有するブロックを選択する。これは、各候補ブロックを順に検査することと、候補ブロックの動きベクトル、参照フレーム、および予測方向が現在のブロックにコピーされると、最良のレートひずみ性能を生じる候補ブロックを選定することとによって達成される。次いで、符号化ビデオビットストリーム中でこの動きベクトル情報（すなわち、動きベクトル、参照フレーム、および予測方向）をシグナリングするのではなく、エンコーダは、選択された候補ブロックのためのインデックス番号をシグナリングする。デコーダは、シグナリングされたインデックス番号によって示される候補ブロックから動きベクトル情報をコピーし、コピーされた動きベクトル情報を現在のブロックのために使用し得る。図４Ａに、マージモードシグナリングの一例を示す。マージフラグ２０１は、マージモードが使用されていることを示す。候補ブロックインデックス２０２は、マージモードのために定義された候補ブロックのセットからの候補ブロックのうちのどれが、現在のブロックについての動きベクトル情報を取り出すために使用されるべきかを示す。
【００６３】
場合によっては、マージモード候補セットのための候補の指定された数を満たすために、何らかの「人工」動きベクトル情報が、候補セットを埋めるために生成され得ることに留意されたい。「人工」動きベクトル情報は、異なる候補ブロックからの動きベクトル情報の部分的な組合せによって生成され得る。たとえば、候補ブロック１からのリスト０動きベクトルが、参照フレームインデックスおよび予測方向とともに、候補２からのリスト１動きベクトルと組み合わせられて、候補セットにおいて新しい動きベクトル情報を形成し得る。いくつかの他の例では、ゼロ動きベクトルも、候補セットを埋めるために追加の動きベクトル情報として追加され得る。しかしながら、候補セットがどのように形成されるかにかかわらず、マージモードでは、現在のブロックについての動きベクトル情報を与えるためにどの候補が選択されるかを示すために、候補セットへのインデックスのみがデコーダにシグナリングされる必要がある。デコーダ側において、同じ候補セットが形成され、動きベクトル情報は、候補セットへのシグナリングされたインデックスによって識別され得る。
【００６４】
ＡＭＶＰモードでは、エンコーダは、候補ブロックのセットを検討し、最良のレートひずみを生じるか、または何らかの所定のしきい値（たとえば、レートひずみしきい値）を満たす動きベクトル差分（すなわち、それぞれの候補ブロックの動きベクトルと現在のブロックの実際の動きベクトルとの間の差分）を生成するブロックを選択する。ＡＭＶＰモードは、満足な候補が見つかり、選定されるまで、検査パターンにおいて候補ブロックを検討し得る。代替的に、いくつかの例では、すべての候補ブロックが検査され得、最良の結果を生じる候補ブロックが、コーディングされるべきブロックのためのＭＶＰとして選択される。エンコーダは、次いで、動きベクトル差分とともに、動きベクトル差分を生成するために使用された候補ブロックのためのインデックスをシグナリングし得る。デコーダは、次いで、シグナリングされたインデックスによって示される候補ブロックから取り出された動きベクトルに、受信した動きベクトル差分を加算することによって、現在のブロックのための動きベクトルを再生成し得る。図４Ｂに、ＡＭＶＰモードシグナリングの一例を示す。ＡＭＶＰモードフラグ２０５は、ＡＭＶＰモードが使用されていることを示す。候補ブロックインデックス２０６は、ＡＭＶＰモードのために定義された候補ブロックのセットからの候補ブロックのうちのどれが、動きベクトルを取り出すために使用されるべきかを示す。ＡＭＶＰモードはまた、動きベクトル差分２０７と、参照フレーム２０８と、予測方向２０９とをシグナリングする。いくつかの例では、参照フレームおよび予測方向を明示的にシグナリングするのではなく、参照フレームおよび予測方向は、候補ブロックに関連する動きベクトル情報から代わりに取り出される。
【００６５】
上記で説明した例では、符号化ビットストリーム中で動きベクトル情報をシグナリングすることは、エンコーダからデコーダへのそのような要素のリアルタイム送信を必要とするのではなく、そのような情報がビットストリーム中に符号化され、任意の方法でデコーダにとってアクセス可能にされることを意味する。これは、（たとえば、ビデオ会議における）リアルタイム送信、ならびに（たとえば、ストリーミング、ダウンロード、ディスクアクセス、カードアクセス、ＤＶＤ、ブルーレイなどにおける）デコーダによる将来の使用のために符号化ビットストリームをコンピュータ可読媒体に記憶することを含み得る。
【００６６】
本開示の例によれば、マージモードおよびＡＭＶＰモードは、（すなわち、ブロックの数とロケーションの両方に関して）候補ブロックの同じセットを利用する。したがって、エンコーダとデコーダの両方は、候補ブロックのための動きベクトル情報を記憶するために必要なメモリの量を低減し得る。それは、現在のブロックのコーディングプロセス中にそれらの動きベクトルを取り出す際のメモリ帯域幅要件をも低減し得る。
【００６７】
本開示の第１の例では、マージモードおよびＡＭＶＰモードは、両方とも、図５Ａに示す候補ブロックの同じセット１２０を使用する。この例では、マージモードは、５つではなく６つの候補ブロックを現在使用するであろう。しかしながら、両方のモードが同じロケーションにある候補ブロックを使用するので、マージモードとＡＭＶＰモードの両方のための候補ブロックの総数は低減される。この例では、候補ブロックは、図５Ａに示すように、左下（ＢＬ）１２１、左（Ｌ）１２２、左上（ＬＡ）１２５、上（Ａ）１２４、右上（ＲＡ）１２３、および時間（Ｔ）１２６位置にある。この例では、左候補ブロック１２２は、現在のブロック１２７の左エッジに隣接する。左ブロック１２２の下エッジは、現在のブロック１２７の下エッジにアラインされる。上候補ブロック１２４は、現在のブロック１２７の上エッジに隣接する。上ブロック１２４の右エッジは、現在のブロック１２７の右エッジにアラインされる。
【００６８】
本開示の第２の例では、ＡＭＶＰモードおよびマージモードは、図５Ｂに示す候補ブロックのセット１３０を使用する。この例では、ＡＭＶＰモードのための候補ブロックの数は５まで低減される。マージモードとＡＭＶＰモードの両方が、同じロケーションにある候補ブロックを現在使用するので、候補ブロックのさらなる低減が達成される。この例では、候補ブロックは、左下（ＢＬ）１３１、左（Ｌ）１３２、上（Ａ）１３４、右上（ＲＡ）１３３、および時間（Ｔ）１３５ロケーションにある。上ブロック１３４および左ブロック１３２のロケーションは、図５Ａの例における上ブロック１２４および左ブロック１２２のロケーションとは異なることに留意されたい。この例では、左候補ブロック１３２は、現在のブロック１３７の左エッジに隣接する。左ブロック１３２の上エッジは、現在のブロック１３７の上エッジにアラインされる。上候補ブロック１３４は、現在のブロック１３７の上エッジに隣接する。上ブロック１３４の左エッジは、現在のブロック１３７の左エッジにアラインされる。一例では、ＡＭＶＰモードのための検査パターンは、ＢＬ−Ｌ−ＲＡ−Ａ−Ｔのように進む。
【００６９】
本開示の第３の例では、マージモードおよびＡＭＶＰモードは、図６に示す候補ブロックのセット１４０を使用する。この例では、候補ブロックの数は、各モードのための総数を５まで低減することによって、ならびに両方のモードのための候補ブロックロケーションを一体化することによって低減される。この例では、候補ブロックは、左下（ＢＬ）１４１、左（Ｌ）１４２、上（Ａ）１４３、右上（ＲＡ）１４４、および時間（Ｔ）１４５にある。この例では、左候補ブロック１４２は、現在のブロック１４７の左エッジに隣接する。左ブロック１４２の下エッジは、現在のブロック１４７の下エッジにアラインされる。上候補ブロック１４３は、現在のブロック１４７の上エッジに隣接する。上ブロック１４３の右エッジは、現在のブロック１４７の右エッジにアラインされる。
【００７０】
別の例では、本開示では、ＡＭＶＰモードのための改善された検査パターンについて説明する。図７に示すように、たとえば、検査パターンは、Ｌ−ＢＬ−Ａ−ＲＡ−ＬＡ−Ｔのように進む。図１Ａに示したようにＢＬ候補ブロックにおいて開始するのではなく、図７の例はＬ候補ブロックにおいて開始する。ビデオコンテンツは一般に水平方向に移動するので、左側ブロックは、概して、現在のブロックにより多く相関する。ＢＬ候補ブロックは、すべての状況において利用可能であるとは限らない（すなわち、まだコーディングされていないことがある）ので、Ｌ候補ブロックが最初に検査される。さらに、Ａ候補ブロックの動きベクトルは、現在のブロックの動きベクトルに対してＲＡ候補ブロックのそれよりも高い統計的相関を有することが示されているので、Ａ候補ブロックはＲＡ候補ブロックの前に検査される。
【００７１】
マージモードは、図７に示す同じ検査パターンを使用し得るか、または異なる検査パターンを使用し得る。一例として、マージモードのための検査パターンは、Ｌ−Ａ−ＲＡ−ＢＬ−（ＬＡ）−Ｔのように進み得る。この例では、ＬＡブロックの包含は、最初の４つの候補ブロックのうちの１つが利用不可能であるかどうかに応じて随意または適応可能である。
【００７２】
図７の例は、図５Ａの候補ブロックのセットに関して示されている。ただし、この検査パターンは任意の候補セットに適用可能であり得る。概して、左候補ブロックが左下候補ブロックの前に検査されるべきである。次に、上候補ブロックが右上候補ブロックの前に検査されるべきである。残りの候補ブロックは、次いで、任意の順序で検査され得る。いくつかの例では、時間候補ブロックは最後に検査され得る。
【００７３】
本開示の別の例では、マージモードとＡＭＶＰの両方のためのフレキシブルな追加の候補を開示する。図５Ａの例に示したように、５つの空間候補ブロック（すなわち、Ｌ、ＢＬ、Ａ、ＲＡ、およびＬＡ）および１つの時間候補ブロック（すなわち、Ｔ）があり、候補ブロックの合計は６つになる。ＨＥＶＣ規格の前の提案では、マージモードのための候補ブロックの最大数は５つである。したがって、図５Ａに示した候補ブロックのうちの１つは、マージモードでは削除され得る。一例では、ＬＡ候補ブロックは追加の候補ブロックとして定義され得る（すなわち、それは、当初はマージモードのための候補ブロックのセットの一部として検討されない）。
【００７４】
しかしながら、上述のように、すべての候補ブロックがすべての状況において利用可能であるとは限らない。たとえば、ＢＬ候補ブロックは、現在のブロックがコーディングされるときに、まだコーディングされていないことがある。さらに、いくつかの候補ブロックのためのデータが、破損することがあるかまたは（たとえば、リアルタイム復号において）そもそも受信されていないことがある。したがって、本開示は、セット中の候補ブロックが利用不可能であるとわかる状況において追加の候補ブロックを利用することを提案する。このようにして、候補の総数は、利用不可能な候補のために検査を無駄にすることなしに最大限界に保たれる。
【００７５】
一例では、ＬおよびＢＬ候補は、適用可能なとき、エンコーダまたはデコーダによって最初に検査される。これらの候補ブロックのうちの１つが有効でない（たとえば、破損している）かまたは利用可能でない場合、追加の候補ブロック（たとえば、ＬＡ）が代わりに使用され得る。Ｌ候補ブロックとＢＬ候補ブロックの両方が有効である場合、ＡおよびＲＡ候補ブロックが検査される。これらの候補ブロックのうちの１つが有効でないかまたは利用可能でない場合、ＬＡ候補ブロックが代わりに使用され得る。Ａ候補ブロックとＲＡ候補ブロックの両方が有効である場合、ＬＡ候補ブロックは使用されないことになる。この例では、ＬＡ候補ブロックが追加の候補ブロックとして使用される。ただし、現在のブロックに対していずれかの因果的位置にある（すなわち、現在のブロックに対して、候補ブロックがすでにコーディングされた位置にある）いずれかの追加の候補ブロックが使用され得る。
【００７６】
別の例では、図５Ａに示したすべての候補ブロックが使用される。候補ブロックの最大数がＮ個（ここで、Ｎは６よりも少ない）であるマージモードでは、検査パターンにおける最初のＮ個の利用可能な候補ブロックがマージモードのための候補ブロックとして使用される。図５Ａの例では、Ｌ−Ａ−ＲＡ−ＢＬ−ＬＡ−Ｔの検査パターンをもつ６つの候補ブロックがある。検査パターンにおける最初のＮ個の利用可能な候補ブロックがマージモードのための候補ブロックの最終セットを形成する。この例では、検査パターンは固定である。別の例では、検査パターンは、ブロックサイズ、パーティションサイズ、および／またはパーティションインデックスに基づいて選択され得る。別の例では、検査パターンは、符号化および復号中に適応的に更新され得る。更新は、前に符号化／復号されたブロックのマージインデックス、動きベクトル予測モード、パーティションサイズ、パーティションインデックス、および／または動きベクトル情報（たとえば、参照インデックス、動きベクトル差分、動きベクトル予測子）に依存し得る。
【００７７】
別の例によれば、追加の候補ブロックを利用する技法は、ＡＭＶＰモードにも適用され得る。ＨＥＶＣ規格の現在のワーキングドラフトにおけるＡＭＶＰモードは、図５Ａに示したすべての６つの候補ブロックを検査することをすでに可能にしている。しかしながら、上述のように、これらの候補ブロックのいくつかが利用不可能または無効であることがある。そのような場合、追加のマージ候補が定義され得る。そのようなマージ候補は、現在のＰＵに対して因果的であるいずれかの位置にあり得る。
【００７８】
図３に戻ると、イントラ予測ユニット４６は、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、受信ブロックに対してイントラ予測を実行し得る。イントラ予測ユニット４６は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在のブロックの上、右上、左上、または左のブロックに対して受信ブロックを予測し得る。イントラ予測ユニット４６は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測ユニット４６は、符号化されているＣＵのサイズに基づいて、一定数の方向性予測モード、たとえば、３４個の方向性予測モードで構成され得る。
【００７９】
イントラ予測ユニット４６は、たとえば、様々なイントラ予測モードの予測誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成し、その合成された値をＰＵ中の１つまたは複数のピクセル位置に適用するための機能を含み得る。ＰＵ中のすべてのピクセル位置の値が計算されると、イントラ予測ユニット４６は、ＰＵの計算値または予測値と符号化されるべき受信した元のブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測ユニット４６は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測ユニット４６は、次いで、ＰＵを加算器５０に送り得る。
【００８０】
ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償ユニット４４またはイントラ予測ユニット４６によって計算された予測データを減算することによって残差ブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。残差ブロックはピクセル差分値の２次元行列に対応し得、残差ブロック中の値の数は、残差ブロックに対応するＰＵ中のピクセルの数と同じである。残差ブロック中の値は、ＰＵ中のコロケートピクセルの値と、コーディングされるべき元のブロック中のコロケートピクセルの値との間の差分、すなわち、誤差に対応し得る。そのような演算はルーマ成分とクロマ成分の両方に適用され、したがって、差分は、コーディングされるブロックのタイプに応じてクロマ差分またはルーマ差分であり得る。
【００８１】
変換モジュール５２は、残差ブロックから１つまたは複数の変換ユニット（ＴＵ）を形成し得る。変換モジュール５２は、複数の変換の中から変換を選択する。変換は、ブロックサイズ、コーディングモードなど、１つまたは複数のコーディング特性に基づいて選択され得る。変換モジュール５２は、次いで、選択された変換をＴＵに適用して、変換係数の２次元アレイを備えるビデオブロックを生成する。
【００８２】
変換モジュール５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、次いで、その変換係数を量子化し得る。エントロピー符号化ユニット５６が、次いで、スキャンモードに従って、行列中の量子化された変換係数のスキャンを実行し得る。本開示では、エントロピー符号化ユニット５６がスキャンを実行するものとして説明する。ただし、他の例では、量子化ユニット５４などの他の処理ユニットがスキャンを実行し得ることを理解されたい。
【００８３】
変換係数が１次元アレイにスキャンされると、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、または別のエントロピーコーディング方法などのエントロピーコーディングを係数に適用し得る。エントロピーコーディングはまた、マージモードおよびＡＭＶＰモードにおいて使用されるシンタックス要素など、シンタックス要素に適用され得る。
【００８４】
ＣＡＶＬＣを実行するために、エントロピー符号化ユニット５６は、送信されるべきシンボルの可変長コードを選択し得る。ＶＬＣのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。
【００８５】
ＣＡＢＡＣを実行するために、エントロピー符号化ユニット５６は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。変換係数の場合、コンテキストは、たとえば、隣接値が非０であるか否かに関係し得る。エントロピー符号化ユニット５６はまた、選択された変換を表す信号など、シンタックス要素をエントロピー符号化し得る。本開示の技法によれば、エントロピー符号化ユニット５６は、コンテキストモデル選択のために使用されるファクタの中でも、たとえば、イントラ予測モードのためのイントラ予測方向、シンタックス要素に対応する係数のスキャン位置、ブロックタイプ、および／または変換タイプに基づいて、これらのシンタックス要素を符号化するために使用されるコンテキストモデルを選択し得る。
【００８６】
エントロピー符号化ユニット５６によるエントロピーコーディングの後に、得られた符号化ビデオは、ビデオデコーダ３０などの別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【００８７】
場合によっては、エントロピー符号化ユニット５６またはビデオエンコーダ２０の別のユニットは、エントロピーコーディングに加えて他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット５６はＣＵおよびＰＵのコード化ブロックパターン（ＣＢＰ）値を判断するように構成され得る。また、場合によっては、エントロピー符号化ユニット５６は係数のランレングスコーディングを実行し得る。
【００８８】
逆量子化ユニット５８および逆変換モジュール６０は、それぞれ逆量子化および逆変換を適用して、たとえば、参照ブロックを再構築する際に後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照フレームバッファ６４のフレームのうちの１つから形成された予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された参照ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照フレームバッファ６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００８９】
図８は、符号化ビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。図８の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換モジュール７８と、参照フレームバッファ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図３参照）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【００９０】
エントロピー復号ユニット７０は、変換係数の１次元アレイを取り出すために、符号化ビットストリームに対してエントロピー復号プロセスを実行する。使用されるエントロピー復号プロセスは、ビデオエンコーダ２０によって使用されたエントロピーコーディング（たとえば、ＣＡＢＡＣ、ＣＡＶＬＣなど）に依存する。エンコーダによって使用されたエントロピーコーディングプロセスは、符号化ビットストリーム中でシグナリングされるか、または所定のプロセスであり得る。
【００９１】
いくつかの例では、エントロピー復号ユニット７０（または逆量子化ユニット７６）は、ビデオエンコーダ２０のエントロピー符号化ユニット５６（または量子化ユニット５４）によって使用されたスキャンモードをミラーリングするスキャンを使用して受信値をスキャンし得る。係数のスキャンは逆量子化ユニット７６において実行され得るが、スキャンについては、例示のために、エントロピー復号ユニット７０によって実行されるものとして説明する。さらに、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ３０のエントロピー復号ユニット７０、逆量子化ユニット７６、および他のユニットの構造および機能は互いに高度に統合され得る。
【００９２】
逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、ＨＥＶＣのために提案されたプロセスまたはＨ．２６４復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を判断し、同様に、適用されるべき逆量子化の程度を判断するための、ＣＵについてビデオエンコーダ２０によって計算された量子化パラメータＱＰの使用を含み得る。逆量子化ユニット７６は、係数が１次元アレイから２次元アレイに変換される前または変換された後に変換係数を逆量子化し得る。
【００９３】
逆変換モジュール７８は、逆量子化された変換係数に逆変換を適用する。いくつかの例では、逆変換モジュール７８は、ビデオエンコーダ２０からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードなどの１つまたは複数のコーディング特性から変換を推論することによって、逆変換を判断し得る。いくつかの例では、逆変換モジュール７８は、現在のブロックを含むＬＣＵのための４分木のルートノードにおけるシグナリングされた変換に基づいて、現在のブロックに適用すべき変換を判断し得る。代替的に、変換は、ＬＣＵ４分木中のリーフノードＣＵのためのＴＵ４分木のルートにおいてシグナリングされ得る。いくつかの例では、逆変換モジュール７８は、逆変換モジュール７８が、復号されている現在のブロックの変換係数に２つ以上の逆変換を適用する、カスケード逆変換を適用し得る。
【００９４】
イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在のフレームの前に復号されたブロックからのデータとに基づいて、現在のフレームの現在のブロックについての予測データを生成し得る。
【００９５】
本開示の例によれば、ビデオデコーダ３０は、符号化ビットストリームから、動きベクトル予測モードを識別する予測シンタックスと、関連する動きベクトル情報とを受信し得る（たとえば、図４Ａおよび図４Ｂおよび関係する説明を参照）。特に、ビデオデコーダ３０は、候補ブロックのセットからの候補ブロックを示すインデックスを受信し得、候補ブロックのセットは複数のモードの各々について同じであり、候補ブロックに関連する情報は、現在のブロックのための動きベクトルを復号するために使用される。候補ブロックのセットは、図５Ａ、図５Ｂ、または図６に示したセット、または現在のブロックに対して因果的である候補ブロックの他のセットであり得る。
【００９６】
シンタックス要素がマージモードを示す場合、ビデオデコーダは、受信したインデックスを有する候補ブロックに関連する動きベクトルと参照フレームと予測方向とを取り出すことと、取り出された動きベクトルと参照フレームと予測方向とを使用して、現在のブロックについてインター予測プロセスを実行することとを行うようにさらに構成される。
【００９７】
シンタックス要素が適応動きベクトル予測（ＡＭＶＰ）モードを示す場合、ビデオデコーダは、参照フレームインデックスと、動きベクトル差分と、予測方向を示すシンタックス要素とを受信することと、受信したインデックスを有する候補ブロックに関連する候補動きベクトルを取り出すことと、候補動きベクトルと動きベクトル差分とを使用して、現在のブロックのための動きベクトルを計算することと、計算された動きベクトルと、受信した参照フレームインデックスと、受信した予測方向とを使用してインター予測プロセスを実行することとを行うようにさらに構成される。
【００９８】
予測モードにかかわらず、予測方向、参照フレームインデックス、および動きベクトルが現在のブロックについて判断されると、動き補償ユニットは現在のブロックのための動き補償ブロックを生成する。これらの動き補償ブロックは、本質的に、残差データを生成するために使用される予測ブロックを再生成する。
【００９９】
動き補償ユニット７２は、動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行し得る。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１００】
さらに、動き補償ユニット７２およびイントラ予測ユニット７４は、ＨＥＶＣの例では、（たとえば、４分木によって与えられる）シンタックス情報の一部を使用して、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されたＬＣＵのサイズを判断し得る。動き補償ユニット７２およびイントラ予測ユニット７４はまた、シンタックス情報を使用して、符号化ビデオシーケンスのフレームの各ＣＵがどのように分割されるか（および、同様に、サブＣＵがどのように分割されるか）を記述する分割情報を判断し得る。シンタックス情報はまた、各ＣＵがどのように符号化されるかを示すモード（たとえば、イントラまたはインター予測、およびイントラ予測の場合はイントラ予測符号化モード）と、各インター符号化ＰＵについての１つまたは複数の参照フレーム（および／またはそれらの参照フレームの識別子を含んでいる参照リスト）と、符号化ビデオシーケンスを復号するための他の情報とを含み得る。
【０１０１】
加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測ユニット７４によって生成された対応する予測ブロックと合成して、復号ブロックを形成する。復号ブロックは、実際には、量子化または他のコーディング態様による損失を受けた、最初にコーディングされたブロックを再構成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、参照フレームバッファ８２に記憶され、参照フレームバッファ８２は、その後の動き補償のための参照ブロックを与え、また、（図２のディスプレイデバイス３２などの）ディスプレイデバイス上での提示のために復号ビデオを生成する。
【０１０２】
上述のように、本開示の技法はエンコーダとデコーダの両方に適用可能である。概して、上記の説明によれば、エンコーダは、動きベクトル予測プロセス（たとえば、マージモードおよびＡＭＶＰモード）を実行するために候補ブロックの同じセットを利用する。デコーダは、次いで、エンコーダによって使用された候補ブロックの同じセットを使用して、受信されたシンタックス要素に基づいて動きベクトルを復号し得る。すべての動きベクトル予測モードのための候補ブロックを一体化することによって、動きベクトル情報（たとえば、動きベクトル、予測方向、参照フレームインデックスなど）を記憶するために必要なメモリの量が低減される。それらの候補ブロックから動きベクトル情報を取り出す際のメモリ帯域幅要件も低減され得る。
【０１０３】
図９は、図３のビデオエンコーダ２０などのビデオエンコーダによって実行され得る、ビデオを符号化する例示的な方法を示すフローチャートである。ビデオエンコーダ２０は、ビデオデータの現在のブロックについて参照フレームに対する動きベクトルを判断する（９００）ように構成され得る。ビデオエンコーダ２０はまた、動きベクトル予測プロセスのための複数のモード（たとえば、マージモードまたはＡＭＶＰ）のうちの１つを判断し（９０１）、判断されたモードと候補ブロックのセットとを使用して、ビデオデータの現在のブロックについて動きベクトル予測プロセスを実行する。候補ブロックのセットは複数のモードの各々について同じである。
【０１０４】
複数のモードは、マージモードと適応動きベクトル予測モードとを含み得る。図１０に、動きベクトル予測プロセスがマージモードにあるときの、ビデオを符号化する例示的な方法を示す。この場合、ビデオエンコーダは、候補ブロックの動きベクトル、参照フレーム、および予測方向が現在のブロックにコピーされると、満足なレートひずみ性能を生じる候補ブロックのセットからの候補動きベクトルを判断すること（１００１）と、候補動きベクトルを識別するインデックスをシグナリングすること（１００２）とを行うようにさらに構成される。
【０１０５】
一例では、候補ブロックのセットは、上候補ブロック、右上候補ブロック、左候補ブロック、左下候補ブロック、および時間候補ブロックを含み得る。左候補ブロックは現在のブロックの左エッジに隣接し、左候補ブロックの上エッジは現在のブロックの上エッジにアラインされる。上候補ブロックは現在のブロックの上エッジに隣接し、上候補ブロックの左エッジは現在のブロックの左エッジにアラインされる。
【０１０６】
他の例では、左候補ブロックは現在のブロックの左エッジに隣接し、左候補ブロックの下エッジは現在のブロックの下エッジにアラインされる。上候補ブロックは現在のブロックの上エッジに隣接し、上候補ブロックの右エッジは現在のブロックの右エッジにアラインされる。
【０１０７】
別の例では、候補ブロックのセットは、左上候補ブロック、上候補ブロック、右上候補ブロック、左候補ブロック、左下候補ブロック、および時間候補ブロックを含む。
【０１０８】
図１１に、動きベクトル予測プロセスがＡＭＶＰモードにあるときの、ビデオを符号化する例示的な方法を示す。この場合、ビデオエンコーダは、候補ブロックのセット中の各候補ブロックからの候補動きベクトルを判断すること（１１０１）と、検査パターンに従って現在のブロックのための動きベクトルと候補ブロックの各々からの候補動きベクトルとの間の動きベクトル差分を計算すること（１１０２）とを行うように構成される。ビデオエンコーダはまた、計算された動きベクトル差分に基づいて候補動きベクトルのうちの１つを選択すること（１１０３）と、候補動きベクトルのうちの選択された１つを有する候補ブロックを識別するインデックスをシグナリングすること、候補動きベクトルのうちの選択された１つに関して計算された動きベクトル差分をシグナリングすること、参照フレームをシグナリングすること、および予測方向をシグナリングすること（１１０４）とを行うように構成される。
【０１０９】
一例では、候補ブロックのセットは、上候補ブロック、右上候補ブロック、左候補ブロック、左下候補ブロック、および時間候補ブロックを含む。この例では、検査パターンは、左下候補ブロック、左候補ブロック、右上候補ブロック、上候補ブロック、時間候補ブロックの順序で進む。
【０１１０】
別の例では、候補ブロックのセットは、左上候補ブロック、上候補ブロック、右上候補ブロック、左候補ブロック、左下候補ブロック、および時間候補ブロックを含む。検査パターンは、左候補ブロック、左下候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、時間候補ブロックの順序で進む。
【０１１１】
図１２は、図３のビデオデコーダ３０などのビデオデコーダによって実行され得る、ビデオを復号する例示的な方法を示すフローチャートである。ビデオデコーダ３０は、ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを示すシンタックス要素を受信すること（１２０１）と、候補ブロックのセットからの候補ブロックを示すインデックスを受信することであって、候補ブロックのセットが複数のモードの各々について同じであり、候補ブロックに関連する情報が、現在のブロックのための動きベクトルを復号するために使用される、受信すること（１２０２）とを行うように構成され得る。複数のモードは、マージモードと適応動きベクトル予測モードとを含み得る。
【０１１２】
図１３は、動きベクトル予測プロセスがマージモードである場合の、ビデオを復号する例示的な方法を示すフローチャートである。この場合、ビデオデコーダは、受信したインデックスを有する候補ブロックに関連する動きベクトルと参照フレームと予測方向とを取り出すこと（１３０１）と、取り出された動きベクトルと参照フレームと予測方向とを使用して、現在のブロックに対してインター予測プロセスを実行すること（１３０２）とを行うようにさらに構成される。
【０１１３】
一例では、候補ブロックのセットは、上候補ブロック、右上候補ブロック、左候補ブロック、左下候補ブロック、および時間候補ブロックを含む。左候補ブロックは現在のブロックの左エッジに隣接し、左候補ブロックの上エッジは現在のブロックの上エッジにアラインされる。上候補ブロックは現在のブロックの上エッジに隣接し、上候補ブロックの左エッジは現在のブロックの左エッジにアラインされる。
【０１１４】
別の例では、左候補ブロックは現在のブロックの左エッジに隣接し、左候補ブロックの下エッジは現在のブロックの下エッジにアラインされる。上候補ブロックは現在のブロックの上エッジに隣接し、上候補ブロックの右エッジは現在のブロックの右エッジにアラインされる。
【０１１５】
別の例では、候補ブロックのセットは、左上候補ブロック、上候補ブロック、右上候補ブロック、左候補ブロック、左下候補ブロック、および時間候補ブロックを含む。
【０１１６】
図１４は、動きベクトル予測プロセスがＡＭＶＰモードである場合の、ビデオを復号する例示的な方法を示すフローチャートである。この場合、ビデオデコーダは、参照フレームインデックスと、動きベクトル差分と、予測方向を示すシンタックス要素とを受信すること（１４０１）と、受信したインデックスを有する候補ブロックに関連する候補動きベクトルを取り出すこと（１４０２）とを行うように構成される。ビデオデコーダは、候補動きベクトルと動きベクトル差分とを使用して、現在のブロックのための動きベクトルを計算すること（１４０３）と、計算された動きベクトルと、受信した参照フレームインデックスと、受信した予測方向とを使用してインター予測プロセスを実行すること（１４０４）とを行うようにさらに構成される。
【０１１７】
一例では、候補ブロックのセットは、上候補ブロック、右上候補ブロック、左候補ブロック、左下候補ブロック、および時間候補ブロックを含み、候補ブロックのセットのための検査パターンは、左下候補ブロック、左候補ブロック、右上候補ブロック、上候補ブロック、時間候補ブロックの順序で進む。
【０１１８】
別の例では、候補ブロックのセットは、左上候補ブロック、上候補ブロック、右上候補ブロック、左候補ブロック、左下候補ブロック、および時間候補ブロックを含み、候補ブロックのセットのための検査パターンは、左候補ブロック、左下候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、時間候補ブロックの順序で進む。
【０１１９】
図１５は、図３のビデオエンコーダ２０などのビデオエンコーダによって実行され得る、ビデオを符号化する別の例示的な方法を示すフローチャートである。ビデオエンコーダ２０は、ビデオデータの現在のブロックについて参照フレームに対する動きベクトルを判断すること（１５０１）と、ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断すること（１５０２）と、判断されたモードと候補ブロックのセットとを使用して、現在のブロックについて動きベクトル予測プロセスを実行することであって、候補ブロックのセットが複数のモードの各々について同じであり、候補ブロックのセット中の１つの候補ブロックが追加の候補ブロックとして指定される、実行すること（１５０３）とを行うように構成され得る。追加の候補ブロックは、候補ブロックのセットの候補ブロックのうちの別の候補ブロックが利用不可能である場合に使用される。ビデオエンコーダ２０は、マージインデックス、判断されたモード、パーティションサイズ、参照フレームインデックス、動きベクトル差分、および動きベクトル予測のうちの１つまたは複数に基づいて検査パターンを更新するようにさらに構成され得る（１５０４）。
【０１２０】
複数のモードは、マージモードと適応動きベクトル予測モードとを含み得る。マージモードは、動きベクトル予測プロセスを実行する際に使用するための最大Ｎ個の候補ブロックを有し得る。その場合、動きベクトル予測プロセスは、検査パターンに従って実行され、検査パターンは、候補ブロックのセット中の候補ブロックの各々を検査するための順序を定義する。候補ブロックのセットは、検査パターンに沿って候補ブロックのセット中の最初のＮ個の利用可能な候補ブロックとして定義される。検査パターンは、ブロックサイズ、パーティションサイズ、およびパーティションインデックスのうちの１つまたは複数に基づき得る。より詳細には、たとえば、各異なるブロックサイズ、パーティションサイズまたはパーティションインデックスのための検査パターンは、同じブロックサイズ、パーティションサイズまたはパーティションインデックスなどを有するいくつかの前のコード化ブロックにおける候補選択の統計値に基づいて更新または変更され得る。
【０１２１】
別の例では、候補ブロックのセットは、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを含む。この例では、追加の候補ブロックは左上候補ブロックである。ただし、追加の候補ブロックは、現在のブロックとの因果関係があるいずれかの候補ブロックであり得る。
【０１２２】
図１６は、図３のビデオデコーダ３０などのビデオデコーダによって実行され得る、ビデオを復号する別の例示的な方法を示すフローチャートである。ビデオデコーダ３０は、ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを示すシンタックス要素を受信すること（１６０１）と、候補ブロックのセットからの候補ブロックを示すインデックスを受信することであって、候補ブロックのセットが複数のモードの各々について同じであり、候補ブロックのセット中の１つの候補ブロックが追加の候補ブロックとして指定される、受信すること（１６０２）とを行うように構成され得る。追加の候補ブロックは、候補ブロックのセットの候補ブロックのうちの別の候補ブロックが利用不可能である場合に使用される。候補ブロックに関連する情報は、現在のブロックのための動きベクトルを復号するために使用される。
【０１２３】
複数のモードは、マージモードと適応動きベクトル予測モードとを含み得る。図１７に、受信したシンタックス要素が、マージモードが使用されることを示す場合の復号の方法を示す。この場合、ビデオデコーダは、受信したインデックスを有する候補ブロックに関連する動きベクトルと参照フレームと予測方向とを取り出すこと（１７０１）と、取り出された動きベクトルと参照フレームと予測方向とを使用して、現在のブロックに対してインター予測プロセスを実行すること（１７０２）とを行うようにさらに構成される。
【０１２４】
マージモードは、動きベクトル予測プロセスを実行する際に使用するための最大Ｎ個の候補ブロックを有するものとして定義され得る。この場合、動きベクトル予測プロセスは、検査パターンに従って実行され、検査パターンは、候補ブロックのセット中の候補ブロックの各々を検査するための順序を定義し得る。候補ブロックのセットは、検査パターンに沿って候補ブロックのセット中の最初のＮ個の利用可能な候補ブロックとして定義される。検査パターンは、ブロックサイズ、パーティションサイズ、およびパーティションインデックスのうちの１つまたは複数に基づく。
【０１２５】
別の例では、マージモードとＡＭＶＰモードの両方について、候補ブロックのセットは、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを含み得る。追加の候補ブロックは左上候補ブロックである。ただし、追加の候補ブロックは、現在のブロックとの因果関係があるいずれかの候補ブロックであり得る。
【０１２６】
図１８に、受信したシンタックス要素が、ＡＭＶＰモードが使用されることを示す場合の復号の方法を示す。この場合、ビデオデコーダは、参照フレームインデックスと、動きベクトル差分と、予測方向を示すシンタックス要素とを受信すること（１８０１）と、受信したインデックスを有する候補ブロックに関連する候補動きベクトルを取り出すこと（１８０２）とを行うようにさらに構成される。ビデオデコーダは、候補動きベクトルと動きベクトル差分とを使用して、現在のブロックのための動きベクトルを計算すること（１８０３）と、計算された動きベクトルと、受信した参照フレームインデックスと、受信した予測方向とを使用してインター予測プロセスを実行すること（１８０４）とを行うようにさらに構成される。
【０１２７】
１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１２８】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１２９】
命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１３０】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１３１】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオコーディングプロセスにおいて動きベクトルを符号化する方法であって、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、
前記判断されたモードと候補ブロックのセットとを使用して、前記現在のブロックについて前記動きベクトル予測プロセスを実行することと
を備え、前記候補ブロックのセットは、前記複数のモードの各々について同じであり、前記候補ブロックのセット中の１つの候補ブロックが追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記候補ブロックのセットの前記候補ブロックのうちの別の候補ブロックが利用不可能である場合、前記動きベクトル予測プロセスにおいて使用される、
方法。
［Ｃ２］
前記複数のモードは、マージモードと適応動きベクトル予測モードとを含む、
［Ｃ１］に記載の方法。
［Ｃ３］
前記ビデオデータの現在のブロックについて参照フレームに対する動きベクトルを判断することをさらに備え、参照フレームのロケーションは、予測方向に基づく、
［Ｃ２］に記載の方法。
［Ｃ４］
前記判断されたモードは、前記動きベクトル予測プロセスを実行する際に使用するための最大Ｎ個の候補ブロックを有するマージモードであり、
前記動きベクトル予測プロセスは、検査パターンに従って実行され、前記検査パターンは、前記候補ブロックのセット中の候補ブロックの各々を検査するための順序を定義し、
前記候補ブロックのセットは、前記検査パターンに沿って前記候補ブロックのセット中の最初のＮ個の利用可能な候補ブロックとして定義される、
［Ｃ３］に記載の方法。
［Ｃ５］
前記検査パターンは、ブロックサイズ、パーティションサイズ、およびパーティションインデックスのうちの１つまたは複数に基づく、
［Ｃ４］に記載の方法。
［Ｃ６］
マージインデックス、前記判断されたモード、パーティションサイズ、パーティションインデックス、参照フレームインデックス、動きベクトル差分、および動きベクトル予測のうちの１つまたは複数に基づいて、後でコーディングされるブロックのための前記検査パターンを更新することをさらに備える、
［Ｃ４］に記載の方法。
［Ｃ７］
前記候補ブロックのセットは、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを含み、前記追加の候補ブロックは、前記左上候補ブロックである、
［Ｃ１］に記載の方法。
［Ｃ８］
前記追加の候補ブロックは、前記現在のブロックとの因果関係がある候補ブロックである、
［Ｃ１］に記載の方法。
［Ｃ９］
ビデオコーディングプロセスにおいて動きベクトルを符号化するように構成された装置であって、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、
前記判断されたモードと候補ブロックのセットとを使用して、前記現在のブロックについて前記動きベクトル予測プロセスを実行することと
を行うように構成されるビデオエンコーダを備え、前記候補ブロックのセットは、前記複数のモードの各々について同じであり、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記候補ブロックのセットの前記候補ブロックのうちの別の候補ブロックが利用不可能である場合、前記動きベクトル予測プロセスにおいて使用される、
装置。
［Ｃ１０］
前記複数のモードは、マージモードと適応動きベクトル予測モードとを含む、
［Ｃ９］に記載の装置。
［Ｃ１１］
前記ビデオエンコーダは、
ビデオデータの前記現在のブロックについて参照フレームに対する動きベクトルを判断することを行うようにさらに構成され、参照フレームのロケーションは、予測方向に基づく、
［Ｃ１０］に記載の装置。
［Ｃ１２］
前記判断されたモードは、前記動きベクトル予測プロセスを実行する際に使用するための最大Ｎ個の候補ブロックを有するマージモードであり、
前記動きベクトル予測プロセスは、検査パターンに従って実行され、前記検査パターンは、前記候補ブロックのセット中の候補ブロックの各々を検査するための順序を定義し、
前記候補ブロックのセットは、前記検査パターンに沿って前記候補ブロックのセット中の最初のＮ個の利用可能な候補ブロックとして定義される、
［Ｃ１１］に記載の装置。
［Ｃ１３］
前記検査パターンは、ブロックサイズ、パーティションサイズ、およびパーティションインデックスのうちの１つまたは複数に基づく、
［Ｃ１２］に記載の装置。
［Ｃ１４］
前記ビデオエンコーダは、
マージインデックス、前記判断されたモード、パーティションサイズ、パーティションインデックス、参照フレームインデックス、動きベクトル差分、および動きベクトル予測のうちの１つまたは複数に基づいて、後でコーディングされるブロックのための前記検査パターンを更新することを行うようにさらに構成される、
［Ｃ１２］に記載の装置。
［Ｃ１５］
前記候補ブロックのセットは、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを含み、前記追加の候補ブロックは、前記左上候補ブロックである、
［Ｃ９］に記載の装置。
［Ｃ１６］
前記追加の候補ブロックは、前記現在のブロックとの因果関係がある候補ブロックである、
［Ｃ９］に記載の装置。
［Ｃ１７］
ビデオコーディングプロセスにおいて動きベクトルを符号化するように構成された装置であって、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断するための手段と、
前記判断されたモードと候補ブロックのセットとを使用して、前記現在のブロックについて前記動きベクトル予測プロセスを実行するための手段と
を備え、前記候補ブロックのセットは、前記複数のモードの各々について同じであり、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記候補ブロックのセットの前記候補ブロックのうちの別の候補ブロックが利用不可能である場合、前記動きベクトル予測プロセスにおいて使用される、
装置。
［Ｃ１８］
前記複数のモードは、マージモードと適応動きベクトル予測モードとを含む、
［Ｃ１７］に記載の装置。
［Ｃ１９］
実行されたとき、ビデオデータを符号化するためのデバイスのプロセッサに、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、
前記判断されたモードと候補ブロックのセットとを使用して、前記現在のブロックについて前記動きベクトル予測プロセスを実行することと
を行わせる命令を記憶したコンピュータ可読記憶媒体を備え、前記候補ブロックのセットは、前記複数のモードの各々について同じであり、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記候補ブロックのセットの前記候補ブロックのうちの別の候補ブロックが利用不可能である場合、前記動きベクトル予測プロセスにおいて使用される、
コンピュータプログラム製品。
［Ｃ２０］
前記複数のモードは、マージモードと適応動きベクトル予測モードとを含む、
［Ｃ１９］に記載のコンピュータプログラム製品。
［Ｃ２１］
ビデオコーディングプロセスにおいて動きベクトルを復号する方法であって、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、
候補ブロックのセットから候補ブロックを判断することと
を備え、前記候補ブロックのセットは、前記複数のモードの各々について同じであり、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記候補ブロックのセットの前記候補ブロックのうちの別の候補ブロックが利用不可能である場合、前記動きベクトル予測プロセスにおいて使用され、前記候補ブロックに関連する情報は、前記現在のブロックのための動きベクトルを復号するために使用される、
方法。
［Ｃ２２］
前記動きベクトル予測プロセスのための前記モードは、受信したシンタックス要素から判断され、前記候補ブロックは、受信したシンタックス要素から判断される、
［Ｃ２１］に記載の方法。
［Ｃ２３］
前記動きベクトル予測プロセスのための前記モードは、マージモードである、
［Ｃ２１］に記載の方法。
［Ｃ２４］
前記動きベクトル予測プロセスのための前記モードは、適応動きベクトル予測モードである、
［Ｃ２１］に記載の方法。
［Ｃ２５］
前記動きベクトル予測プロセスのための前記モードは、マージモードであり、前記方法は、
前記受信したインデックスを有する前記候補ブロックに関連する動きベクトルと参照フレームと予測方向とを取り出すことと、
前記取り出された動きベクトルと参照フレームと予測方向とを使用して、前記現在のブロックに対してインター予測プロセスを実行することと
をさらに備える、［Ｃ２１］に記載の方法。
［Ｃ２６］
前記動きベクトル予測プロセスのための前記モードは、前記動きベクトル予測プロセスを実行する際に使用するための最大Ｎ個の候補ブロックを有するマージモードであり、
前記動きベクトル予測プロセスは、検査パターンに従って実行され、前記検査パターンは、前記候補ブロックのセット中の候補ブロックの各々を検査するための順序を定義し、
前記候補ブロックのセットは、前記検査パターンに沿って前記候補ブロックのセット中の最初のＮ個の利用可能な候補ブロックとして定義される、
［Ｃ２１］に記載の方法。
［Ｃ２７］
前記検査パターンは、ブロックサイズ、パーティションサイズ、およびパーティションインデックスのうちの１つまたは複数に基づく、
［Ｃ２６］に記載の方法。
［Ｃ２８］
マージインデックス、前記判断されたモード、パーティションサイズ、パーティションインデックス、参照フレームインデックス、動きベクトル差分、および動きベクトル予測のうちの１つまたは複数に基づいて、後でコーディングされるブロックのための前記検査順序パターンを更新することをさらに備える、
［Ｃ２６］に記載の方法。
［Ｃ２９］
前記候補ブロックのセットは、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを含み、前記追加の候補ブロックは、前記左上候補ブロックである、
［Ｃ２１］に記載の方法。
［Ｃ３０］
前記追加の候補ブロックは、前記現在のブロックとの因果関係がある候補ブロックである、
［Ｃ２１］に記載の方法。
［Ｃ３１］
前記動きベクトル予測プロセスのための前記モードは、適応動きベクトル予測モードであり、前記方法は、
参照フレームインデックスと、動きベクトル差分と、予測方向を示すシンタックス要素とを受信することと、
前記受信したインデックスを有する前記候補ブロックに関連する候補動きベクトルを取り出すことと、
前記候補動きベクトルと前記動きベクトル差分とを使用して、前記現在のブロックのための動きベクトルを計算することと、
前記計算された動きベクトルと、前記受信した参照フレームインデックスと、前記受信した予測方向とを使用してインター予測プロセスを実行することと
をさらに備える、［Ｃ２１］に記載の方法。
［Ｃ３２］
ビデオコーディングプロセスにおいて動きベクトルを復号するように構成される装置であって、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、
候補ブロックのセットから候補ブロックを判断することと
を行うように構成されたビデオデコーダを備え、
前記候補ブロックのセットは、前記複数のモードの各々について同じであり、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記候補ブロックのセットの前記候補ブロックのうちの別の候補ブロックが利用不可能である場合、前記動きベクトル予測プロセスにおいて使用され、前記候補ブロックに関連する情報は、前記現在のブロックのための動きベクトルを復号するために使用される、
装置。
［Ｃ３３］
前記動きベクトル予測プロセスのための前記モードは、受信したシンタックス要素から判断され、前記候補ブロックが、受信したシンタックス要素から判断される、
［Ｃ３２］に記載の装置。
［Ｃ３４］
前記動きベクトル予測プロセスのための前記モードは、マージモードである、
［Ｃ３２］に記載の装置。
［Ｃ３５］
前記動きベクトル予測プロセスのための前記モードは、適応動きベクトル予測モードである、
［Ｃ３２］に記載の装置。
［Ｃ３６］
前記動きベクトル予測プロセスのための前記モードがマージモードであり、前記ビデオコーダは、
前記受信したインデックスを有する前記候補ブロックに関連する動きベクトルと参照フレームと予測方向とを取り出すことと、
前記取り出された動きベクトルと参照フレームと予測方向とを使用して、前記現在のブロックに対してインター予測プロセスを実行することと
を行うようにさらに構成される、［Ｃ３２］に記載の装置。
［Ｃ３７］
前記動きベクトル予測プロセスのための前記モードは、前記動きベクトル予測プロセスを実行する際に使用するための最大Ｎ個の候補ブロックを有するマージモードであり、
前記動きベクトル予測プロセスは、検査パターンに従って実行され、前記検査パターンは、前記候補ブロックのセット中の候補ブロックの各々を検査するための順序を定義し、
前記候補ブロックのセットは、前記検査パターンに沿って前記候補ブロックのセット中の最初のＮ個の利用可能な候補ブロックとして定義される、
［Ｃ３２］に記載の装置。
［Ｃ３８］
前記検査パターンは、ブロックサイズ、パーティションサイズ、およびパーティションインデックスのうちの１つまたは複数に基づく、
［Ｃ３７］に記載の装置。
［Ｃ３９］
前記ビデオデコーダは、
マージインデックス、前記判断されたモード、パーティションサイズ、パーティションインデックス、参照フレームインデックス、動きベクトル差分、および動きベクトル予測のうちの１つまたは複数に基づいて、後でコーディングされるブロックのための前記検査順序パターンを更新すること
を行うようにさらに構成される、［Ｃ３７］に記載の装置。
［Ｃ４０］
前記候補ブロックのセットは、左下候補ブロック、左候補ブロック、上候補ブロック、右上候補ブロック、左上候補ブロック、および時間候補ブロックを含み、前記追加の候補ブロックは、前記左上候補ブロックである、
［Ｃ３２］に記載の装置。
［Ｃ４１］
前記追加の候補ブロックは、前記現在のブロックとの因果関係がある候補ブロックである、
［Ｃ３２］に記載の装置。
［Ｃ４２］
前記動きベクトル予測プロセスのための前記モードは、適応動きベクトル予測モードであり、前記ビデオデコーダは、
参照フレームインデックスと、動きベクトル差分と、予測方向を示すシンタックス要素とを受信することと、
前記受信したインデックスを有する前記候補ブロックに関連する候補動きベクトルを取り出すことと、
前記候補動きベクトルと前記動きベクトル差分とを使用して、前記現在のブロックのための動きベクトルを計算することと、
前記計算された動きベクトルと、前記受信した参照フレームインデックスと、前記受信した予測方向とを使用してインター予測プロセスを実行することと
を行うようにさらに構成される、［Ｃ３２］に記載の装置。
［Ｃ４３］
ビデオコーディングプロセスにおいて動きベクトルを復号するように構成される装置であって、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断するための手段と、
候補ブロックのセットから候補ブロックを判断するための手段と
を備え、前記候補ブロックのセットは、前記複数のモードの各々について同じであり、前記候補ブロックのセット中の１つの候補ブロックは、追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記候補ブロックのセットの前記候補ブロックのうちの別の候補ブロックが利用不可能である場合、前記動きベクトル予測プロセスにおいて使用され、前記候補ブロックに関連する情報は、前記現在のブロックのための動きベクトルを復号するために使用される、
装置。
［Ｃ４４］
前記複数のモードは、マージモードと適応動きベクトル予測モードとを含む、
［Ｃ４３］に記載の装置。
［Ｃ４５］
実行されたとき、ビデオデータを復号するためのデバイスのプロセッサに、
ビデオデータの現在のブロックについて動きベクトル予測プロセスのための複数のモードのうちの１つを判断することと、
候補ブロックのセットから候補ブロックを判断することと
を行わせる命令を記憶したコンピュータ可読記憶媒体を備え、
前記候補ブロックのセットは、前記複数のモードの各々について同じであり、前記候補ブロックのセット中の１つの候補ブロックが追加の候補ブロックとして指定され、前記追加の候補ブロックは、前記候補ブロックのセットの前記候補ブロックのうちの別の候補ブロックが利用不可能である場合、前記動きベクトル予測プロセスにおいて使用され、前記候補ブロックに関連する情報は、前記現在のブロックのための動きベクトルを復号するために使用される、
コンピュータプログラム製品。
［Ｃ４６］
前記複数のモードは、マージモードと適応動きベクトル予測モードとを含む、
［Ｃ４５］に記載のコンピュータプログラム製品。
【図１Ａ】
0005893729.tif 000002
【図１Ｂ】
0005893729.tif 000003
【図２】
0005893729.tif 000004
【図３】
0005893729.tif 000005
【図４Ａ】
0005893729.tif 000006
【図４Ｂ】
0005893729.tif 000007
【図５Ａ】
0005893729.tif 000008
【図５Ｂ】
0005893729.tif 000009
【図６】
0005893729.tif 000010
【図７】
0005893729.tif 000011
【図８】
0005893729.tif 000012
【図９】
0005893729.tif 000013
【図１０】
0005893729.tif 000014
【図１１】
0005893729.tif 000015
【図１２】
0005893729.tif 000016
【図１３】
0005893729.tif 000017
【図１４】
0005893729.tif 000018
【図１５】
0005893729.tif 000019
【図１６】
0005893729.tif 000020
【図１７】
0005893729.tif 000021
【図１８】
0005893729.tif 000022