(57)【要約】  次世代コーデックでのインタ予測において、処理効率を向上させる。復号方法は、復号中の画面内より第１のテンプレート領域を設定するステップと、参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定するステップと、前記第２のテンプレート領域を、所定ベクトル分移動することで設定した第３のテンプレート領域と、前記第１のテンプレート領域との相関値を算出するステップと、複数の前記相関値に基づいて動きベクトルを決定するステップと、前記動きベクトルに基づいて、前記復号対象の動き補償を行うステップと、を有し、前記第１のテンプレート領域を設定するステップは、前記復号対象のサイズが所定の閾値以下であった場合、または、前記復号対象が含まれる画面が、参照されることのない画面に該当する場合に、前記復号対象が含まれる所定のブロックに隣接する領域を、前記第１のテンプレート領域として設定する。
2019187096.tif 000002
【特許請求の範囲】
【請求項１】
画面間予測を用いて画像を復号する復号方法であって、
復号中の画面内より復号対象の矩形領域を取得するステップと、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定するステップと、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定するステップと、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で画像の相関値を算出するステップと、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定するステップと、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行うステップと、を有し、
前記第１のテンプレート領域を設定するステップは、
前記復号対象の矩形領域のサイズが所定の閾値以下であった場合、または、前記復号対象の矩形領域が含まれる画面が、時間的に異なる他の画面を復号する際に参照されることのない参照画面に該当する場合に、符号化装置において決定された、前記復号対象の矩形領域が含まれる所定のブロックに隣接する領域を、前記第１のテンプレート領域として設定することを特徴とする復号方法。
【請求項２】
前記第２のテンプレート領域を設定するステップは、
前記ブロックに含まれる複数の矩形領域それぞれの前記第１のテンプレート領域に相当する第２のテンプレート領域を、並列して設定することを特徴とする請求項１に記載の復号方法。
【請求項３】
前記ブロックは、前記復号対象の矩形領域が含まれる復号単位のブロックであることを特徴とする請求項１または２に記載の復号方法。
【請求項４】
画面間予測を用いて画像を復号する復号方法であって、
復号中の画面内より復号対象の矩形領域を取得するステップと、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定するステップと、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定するステップと、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で画像の相関値を算出するステップと、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定するステップと、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行うステップと、を有し、
前記相関値を算出するステップは、前記第１のテンプレート領域の予測画像を用いて前記相関値を算出することを特徴とする復号方法。
【請求項５】
前記相関値を算出するステップは、前記復号対象の矩形領域のサイズが所定の閾値以下であった場合、または、前記復号対象の矩形領域が含まれる画面が、時間的に異なる他の画面を復号する際に参照されることのない非参照画面に該当する場合、または、前記復号対象の矩形領域が含まれる復号単位のブロックの量子化パラメータが所定の閾値以下であった場合、または、前記復号対象の矩形領域が含まれる復号単位のブロックの動きベクトルの絶対値が、所定の画素数以下であった場合に、前記第１のテンプレート領域の予測画像を用いて前記相関値を算出することを特徴とする請求項４に記載の復号方法。
【請求項６】
前記第２のテンプレート領域を設定するステップは、
前記ブロックに含まれる複数の矩形領域それぞれの前記第１のテンプレート領域に相当する第２のテンプレート領域を、並列して設定することを特徴とする請求項５に記載の復号方法。
【請求項７】
画面間予測を用いて画像を復号する復号方法であって、
復号中の画面内より復号対象の矩形領域を取得するステップと、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定するステップと、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定するステップと、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で画像の相関値を算出するステップと、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定するステップと、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行うステップと、を有し、
前記復号対象の矩形領域が第１の実行条件を満たす場合、前記第１のテンプレート領域を設定するステップは、符号化装置において決定された、前記復号対象の矩形領域が含まれる所定のブロックに隣接する領域を、前記第１のテンプレート領域として設定し、
前記復号対象の矩形領域が第２の実行条件を満たす場合、前記相関値を算出するステップは、前記第１のテンプレート領域の予測画像を用いて前記相関値を算出することを特徴とする復号方法。
【請求項８】
画面間予測を用いて画像を復号する復号装置であって、
復号中の画面内より復号対象の矩形領域を取得する取得手段と、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定する第１の設定手段と、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定する第２の設定手段と、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で画像の相関値を算出する算出手段と、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定する決定手段と、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行う生成手段と、を有し、
前記第１の設定手段は、
前記復号対象の矩形領域のサイズが所定の閾値以下であった場合、または、前記復号対象の矩形領域が含まれる画面が、時間的に異なる他の画面を復号する際に参照されることのない参照画面に該当する場合に、符号化装置において決定された、前記復号対象の矩形領域が含まれる所定のブロックに隣接する領域を、前記第１のテンプレート領域として設定することを特徴とする復号装置。
【請求項９】
画面間予測を用いて画像を復号する復号装置であって、
復号中の画面内より復号対象の矩形領域を取得する取得手段と、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定する第１の設定手段と、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定する第２の設定手段と、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で画像の相関値を算出する算出手段と、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定する決定手段と、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行う生成手段と、を有し、
前記算出手段は、
前記第１のテンプレート領域の予測画像を用いて前記相関値を算出することを特徴とする復号装置。
【請求項１０】
画面間予測を用いて画像を復号する復号装置であって、
復号中の画面内より復号対象の矩形領域を取得する取得手段と、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定する第１の設定手段と、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定する第２の設定手段と、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で画像の相関値を算出する算出手段と、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定する決定手段と、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行う生成手段と、を有し、
前記復号対象の矩形領域が第１の実行条件を満たす場合、前記第１の設定手段は、符号化装置において決定された、前記復号対象の矩形領域が含まれる所定のブロックに隣接する領域を、前記第１のテンプレート領域として設定し、
前記復号対象の矩形領域が第２の実行条件を満たす場合、前記算出手段は、前記第１のテンプレート領域の予測画像を用いて前記相関値を算出することを特徴とする復号装置。
【請求項１１】
画面間予測を用いて画像を復号する符号化装置であって、
復号中の画面内より復号対象の矩形領域を取得する取得手段と、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定する第１の設定手段と、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定する第２の設定手段と、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で画像の相関値を算出する算出手段と、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定する決定手段と、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行う生成手段と、を有し、
前記第１の設定手段は、
前記復号対象の矩形領域のサイズが所定の閾値以下であった場合、または、前記復号対象の矩形領域が含まれる画面が、時間的に異なる他の画面を復号する際に参照されることのない参照画面に該当する場合に、前記符号化装置において決定された、前記復号対象の矩形領域が含まれる所定のブロックに隣接する領域を、前記第１のテンプレート領域として設定することを特徴とする符号化装置。
【請求項１２】
画面間予測を用いて画像を復号する符号化装置であって、
復号中の画面内より復号対象の矩形領域を取得する取得手段と、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定する第１の設定手段と、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定する第２の設定手段と、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で相関値を算出する算出手段と、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定する決定手段と、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行う生成手段と、を有し、
前記算出手段は、
前記第１のテンプレート領域の予測画像を用いて前記相関値を算出することを特徴とする符号化装置。
【請求項１３】
画面間予測を用いて画像を復号する符号化装置であって、
復号中の画面内より復号対象の矩形領域を取得する取得手段と、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定する第１の設定手段と、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定する第２の設定手段と、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で画像の相関値を算出する算出手段と、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定する決定手段と、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行う生成手段と、を有し、
前記復号対象の矩形領域が第１の実行条件を満たす場合、前記第１の設定手段は、前記符号化装置において決定された、前記復号対象の矩形領域が含まれる所定のブロックに隣接する領域を、前記第１のテンプレート領域として設定し、
前記復号対象の矩形領域が第２の実行条件を満たす場合、前記算出手段は、前記第１のテンプレート領域の予測画像を用いて前記相関値を算出することを特徴とする符号化装置。
【請求項１４】
画面間予測を用いて画像を復号する装置のコンピュータに、
復号中の画面内より復号対象の矩形領域を取得するステップと、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定するステップと、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定するステップと、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で画像の相関値を算出するステップと、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定するステップと、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行うステップと、を実行させるためのプログラムであって、
前記第１のテンプレート領域を設定するステップは、
前記復号対象の矩形領域のサイズが所定の閾値以下であった場合、または、前記復号対象の矩形領域が含まれる画面が、時間的に異なる他の画面を復号する際に参照されることのない参照画面に該当する場合に、符号化装置において決定された、前記復号対象の矩形領域が含まれる所定のブロックに隣接する領域を、前記第１のテンプレート領域として設定することを特徴とするプログラム。
【請求項１５】
画面間予測を用いて画像を復号する装置のコンピュータに、
復号中の画面内より復号対象の矩形領域を取得するステップと、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定するステップと、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定するステップと、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で画像の相関値を算出するステップと、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定するステップと、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行うステップと、を実行させるためのプログラムであって、
前記相関値を算出するステップは、前記第１のテンプレート領域の予測画像を用いて前記相関値を算出することを特徴とするプログラム。
【請求項１６】
画面間予測を用いて画像を復号する装置のコンピュータに、
復号中の画面内より復号対象の矩形領域を取得するステップと、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定するステップと、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定するステップと、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で画像の相関値を算出するステップと、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定するステップと、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行うステップと、を実行させるためのプログラムであって、
前記復号対象の矩形領域が第１の実行条件を満たす場合、前記第１のテンプレート領域を設定するステップは、符号化装置において決定された、前記復号対象の矩形領域が含まれる所定のブロックに隣接する領域を、前記第１のテンプレート領域として設定し、
前記復号対象の矩形領域が第２の実行条件を満たす場合、前記相関値を算出するステップは、前記第１のテンプレート領域の予測画像を用いて前記相関値を算出することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号方法、復号装置、符号化装置及びプログラムに関する。
【背景技術】
【０００２】
現在検討中である次世代ビデオコーデック（Ｈ．２６５／ＨＥＶＣに続く次世代コーデック）における画面間予測（インタ予測）の１つとして、テンプレートマッチングによるインタ予測がある。テンプレートマッチングによるインタ予測は、復号対象のブロックに隣接する領域（テンプレート領域）を用いて、時間的に異なる参照画面内でマッチングを行い、動きベクトルを決定することで予測画像を生成する、"動き補償インタ予測"の１つである。【０００３】
ここで、標準化されたビデオコーデックでの動き補償インタ予測に対しては、従来より、種々の改善方法が提案されている。例えば、下記特許文献１では、テンプレートマッチングによるインタ予測において、処理効率を向上させるべく、復号対象のブロックと所定の位置関係にある領域をテンプレート領域として設定する方法が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１０／０９５５６０号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一方で、次世代コーデックの場合、インタ予測の際にｓｕｂＣＵと呼ばれるブロックに分割して符号化を行う。このため、次世代コーデックでのテンプレートマッチングによるインタ予測では、復号対象のブロックとの位置関係が所定の位置関係に当てはまらないパターンが存在する。この結果、上記特許文献１のように、処理効率の向上を実現できない場合がある。【０００６】
一つの側面では、次世代コーデックでのテンプレートマッチングによるインタ予測において、処理効率を向上させることを目的としている。
【課題を解決するための手段】
【０００７】
一態様によれば、復号方法は、以下の構成を備える。すなわち、
画面間予測を用いて画像を復号する復号方法であって、
復号中の画面内より復号対象の矩形領域を取得するステップと、
前記復号中の画面内において、前記復号対象の矩形領域の位置に応じて第１のテンプレート領域を設定するステップと、
前記復号中の画面とは時間的に異なる参照画面内において、前記第１のテンプレート領域に相当する第２のテンプレート領域を設定するステップと、
前記第２のテンプレート領域を、前記参照画面内で所定のベクトル分移動することで、第３のテンプレート領域を設定し、前記第３のテンプレート領域と前記第１のテンプレート領域との間で画像の相関値を算出するステップと、
複数の前記所定のベクトルに対応する複数の前記相関値に基づいて、複数の前記所定のベクトルの中から１つのベクトルを選択することで、前記復号対象の矩形領域の動きベクトルを決定するステップと、
前記動きベクトルに基づいて、前記復号対象の矩形領域の予測画像を生成することで動き補償を行うステップと、を有し、
前記第１のテンプレート領域を設定するステップは、
前記復号対象の矩形領域のサイズが所定の閾値以下であった場合、または、前記復号対象の矩形領域が含まれる画面が、時間的に異なる他の画面を復号する際に参照されることのない参照画面に該当する場合に、符号化装置において決定された、前記復号対象の矩形領域が含まれる所定のブロックに隣接する領域を、前記第１のテンプレート領域として設定することを特徴とする。
【発明の効果】
【０００８】
次世代コーデックでのテンプレートマッチングによるインタ予測において、処理効率を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、エンコーダ及びデコーダの適用例を示す図である。
【図２】図２は、エンコーダ及びデコーダの他の適用例を示す図である。
【図３】図３は、エンコーダのハードウェア構成の一例を示す図である。
【図４】図４は、エンコーダの機能構成の一例を示す図である。
【図５】図５は、次世代コーデックにおいて検討中のインタ予測モードにおける、復号対象の矩形領域及びテンプレート領域を説明するための図である。
【図６】図６は、次世代コーデックにおいて検討中のインタ予測モードにおける、テンプレートマッチングの概要を示す図である。
【図７】図７は、次世代コーデックにおいて検討中のインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成（エンコーダ）の一例を示す図である。
【図８】図８は、次世代コーデックにおいて検討中のインタ予測モードにおける、テンプレートマッチングによるインタ予測処理の流れを示すフローチャートである。
【図９】図９は、ステップＳ８０１を詳細化した、ＣＵレベルの動き探索処理の流れを示すフローチャートである。
【図１０】図１０は、ステップＳ８０２を詳細化した、ｓｕｂＣＵレベルの動き探索処理の流れを示すフローチャートである。
【図１１】図１１は、次世代コーデックにおいて検討中のインタ予測モードにおける、ｓｕｂＣＵごとの処理内容及び処理タイミングを示す図である。
【図１２】図１２は、第１の実施形態に係るエンコーダのインタ予測モードにおける、復号対象の矩形領域及びテンプレート領域を説明するための図である。
【図１３】図１３は、第１の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングの概要を示す図である。
【図１４】図１４は、第１の実施形態に係るエンコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成の一例を示す図である。
【図１５】図１５は、第１の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングの実行条件を示す図である。
【図１６】図１６は、第１の実施形態に係るエンコーダのインタ予測モードにおける、ｓｕｂＣＵレベルの動き探索処理の流れを示すフローチャートである。
【図１７】図１７は、第１の実施形態に係るエンコーダのインタ予測モードにおける、ｓｕｂＣＵごとの処理内容及び処理タイミングを示す図である。
【図１８】図１８は、第１の実施形態に係るエンコーダのインタ予測モードにおける、並列処理の具体例を示す第１の図である。
【図１９】図１９は、第１の実施形態に係るエンコーダのインタ予測モードにおける、並列処理の具体例を示す第２の図である。
【図２０】図２０は、第１の実施形態に係るエンコーダのインタ予測モードにおける、並列処理の具体例を示す第３の図である。
【図２１】図２１は、デコーダの機能構成の一例を示す図である。
【図２２】図２２は、次世代コーデックにおいて検討中のインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成（デコーダ）の一例を示す図である。
【図２３】図２３は、第１の実施形態に係るデコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成の一例を示す図である。
【図２４】図２４は、第２の実施形態に係るエンコーダのインタ予測モードにおける、復号対象の矩形領域及びテンプレート領域を説明するための図である。
【図２５】図２５は、第２の実施形態に係るエンコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成の一例を示す図である。
【図２６】図２６は、第２の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングの実行条件を示す図である。
【図２７】図２７は、第２の実施形態に係るエンコーダのインタ予測モードにおける、ｓｕｂＣＵレベルの動き探索処理の流れを示すフローチャートである。
【図２８】図２８は、第２の実施形態に係るエンコーダのインタ予測モードにおける、ｓｕｂＣＵごとの処理内容及び処理タイミングを示す図である。
【図２９】図２９は、第２の実施形態に係るエンコーダのインタ予測モードにおける、並列処理の具体例を示す第１の図である。
【図３０】図３０は、第２の実施形態に係るエンコーダのインタ予測モードにおける、並列処理の具体例を示す第２の図である。
【図３１】図３１は、第２の実施形態に係るエンコーダのインタ予測モードにおける、並列処理の具体例を示す第３の図である。
【図３２】図３２は、第２の実施形態に係るデコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成の一例を示す図である。
【図３３】図３３は、第３の実施形態に係るエンコーダのインタ予測モードにおける、ｓｕｂＣＵレベルの動き探索処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【００１１】
［第１の実施形態］
＜１．エンコーダ及びデコーダの適用例＞
はじめに、エンコーダ（符号化装置）及びデコーダ（復号装置）の適用例について説明する。図１は、エンコーダ及びデコーダの適用例を示す図である。
【００１２】
図１に示すように、エンコーダ１１０を送信装置に、デコーダ１２０を受信装置にそれぞれ配し、ネットワーク１６０を介して接続することで、エンコーダ１１０及びデコーダ１２０を適用した画像処理システム１００を形成することができる。
【００１３】
画像処理システム１００において、送信装置に配されたエンコーダ１１０は、入力された画像データを符号化することでデータストリーム（符号化列）を生成する。また、送信装置は生成されたデータストリームを、ネットワーク１６０を介して受信装置に送信する。
【００１４】
受信装置はデータストリームを受信する。また、受信装置に配されたデコーダ１２０は、データストリームを復号することで画像データを生成し、表示する。
【００１５】
かかる画像処理システム１００を形成することで、画像データを送信する際の送信負荷を低減できるため、例えば、インタネット分野、放送分野、通信分野等の種々の分野に適用することができる。
【００１６】
適用例１００ａは、画像処理システム１００をインタネット分野に適用した例を示している。適用例１００ａの場合、送信装置１１０の一例であるサーバ装置１１１より送信されたデータストリームを、受信装置１１０の一例であるパーソナルコンピュータ１２１ａ、スマート端末１２１ｂ等が受信し、表示する。これにより、パーソナルコンピュータ１２１ａやスマート端末１２１ｂのユーザは、サーバ装置１１１が保持する動画像データをインタネットを介して視聴することができる。
【００１７】
適用例１００ｂは、画像処理システム１００を放送分野に適用した例を示している。適用例１００ｂの場合、送信装置１１０の一例である放送用送信機１１２より送信されたデータストリームを、受信装置１１０の一例であるテレビ１２２が受信し、表示する。これにより、例えば、テレビ１２２のユーザは、放送用送信機１１２が送信する放送内容を視聴することができる。
【００１８】
適用例１００ｃは、画像処理システム１００を通信分野に適用した例を示している。適用例１００ｃの場合、送信装置１１０の一例であるテレビ電話機１１３より送信されたデータストリームを、受信装置１１０の一例であるテレビ電話機１２３が受信し、表示する。これにより、テレビ電話機１２３のユーザは、通話相手の顔を見ながら通話することができる。
【００１９】
図２は、エンコーダ及びデコーダの他の適用例を示す図である。図２に示すように、エンコーダ１１０とデコーダ１２０とを一体的に構成することで、エンコーダ１１０及びデコーダ１２０を適用した蓄積装置２００を形成することができる。
【００２０】
蓄積装置２００は、入力された画像データをエンコーダ１１０が符号化し、生成したデータストリームを記録媒体に格納する。また、蓄積装置２００は、記録媒体に格納されたデータストリームを、デコーダ１２０が復号することで画像データを生成し、表示する。
【００２１】
かかる蓄積装置２００を形成することで、画像データを格納する際の容量を低減できるため、例えば、蓄積分野に適用することができる。適用例２００ａは蓄積装置２００を蓄積分野に適用した例を示している。適用例２００ａの場合、蓄積装置２００の一例であるビデオレコーダ２１１は、内蔵するエンコーダ１１０が、画像データを符号化することで生成したデータストリームを記録媒体２１２に格納する。また、ビデオレコーダ２１１は、内蔵するデコーダ１２０が、記録媒体２１２より読み出したデータストリームを復号することで画像データを生成し、モニタ２１３に表示する。これにより、ビデオレコーダ２１１のユーザは、取得した動画像データを効率的に蓄積することができる。
【００２２】
＜２．エンコーダ及びデコーダのハードウェア構成＞
次に、エンコーダ及びデコーダのハードウェア構成について説明する。なお、エンコーダ１１０及びデコーダ１２０は、同様のハードウェア構成を有していることから、ここでは、エンコーダ１１０のハードウェア構成について説明する。
【００２３】
図３は、エンコーダのハードウェア構成の一例を示す図である。図３に示すように、エンコーダ１１０は、ＣＰＵ（Central Processing Unit）３０１、ＲＯＭ（Read Only Memory）３０２、ＲＡＭ（Random Access Memory）３０３を有する。ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３は、いわゆるコンピュータを形成する。また、エンコーダ１１０は、補助記憶装置３０４、入力装置３０５、表示装置３０６、接続装置３０７、ドライブ装置３０８を有する。なお、エンコーダ１１０の各ハードウェアは、バス３０９を介して相互に接続される。
【００２４】
ＣＰＵ３０１は、補助記憶装置３０４にインストールされた各種プログラム（例えば、符号化プログラム等）を実行する。
【００２５】
ＲＯＭ３０２は、不揮発性メモリである。ＲＯＭ３０２は、補助記憶装置３０４にインストールされた各種プログラムをＣＰＵ３０１が実行するために必要な各種プログラム、データ等を記憶する、主記憶デバイスとして機能する。具体的には、ＲＯＭ３０２はＢＩＯＳ（Basic Input/Output System）やＥＦＩ（Extensible Firmware Interface）等のブートプログラム等を記憶する。
【００２６】
ＲＡＭ３０３は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）等の揮発性メモリである。ＲＡＭ３０３は、補助記憶装置３０４にインストールされた各種プログラムがＣＰＵ３０１によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
【００２７】
補助記憶装置３０４は、インストールされた各種プログラムや、各種プログラムを実行する際に用いる情報を記憶する補助記憶デバイスである。
【００２８】
入力装置３０５は、エンコーダ１１０に対して各種指示を入力する際に用いる入力デバイスである。
【００２９】
表示装置３０６は、エンコーダ１１０の内部情報を表示する表示デバイスである。接続装置３０７は、エンコーダ１１０が外部からの画像データを受け付けたり、エンコーダ１１０がデコーダ１２０と接続し、通信を行うための通信デバイスである。
【００３０】
ドライブ装置３０８はコンピュータ読み取り可能な記録媒体３１０をセットするためのデバイスである。ここでいう記録媒体３１０には、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。あるいは、記録媒体３１０には、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれてもよい。
【００３１】
なお、補助記憶装置３０４にインストールされる各種プログラムは、例えば、配布された記録媒体３１０がドライブ装置３０８にセットされ、該記録媒体３１０に記録された各種プログラムがドライブ装置３０８により読み出されることでインストールされてもよい。あるいは、補助記憶装置３０４にインストールされる各種プログラムは、接続装置３０７を介してネットワーク１６０からダウンロードされることでインストールされてもよい。
【００３２】
なお、図３に示すハードウェア構成は、あくまで一例にすぎず、適用形態によっては、図３に示すハードウェアの一部を除外して、あるいは他のハードウェアに置き換えてもよいことはいうまでもない。
【００３３】
＜３．エンコーダの機能構成＞
次に、エンコーダ１１０の機能構成について説明する。図４は、エンコーダの機能構成の一例を示す図である。図４に示すように、エンコーダ１１０は、ブロック分割部４０１、直交変換部４０２、量子化部４０３、エントロピ符号化部４０４を有する。また、エンコーダ１１０は、逆量子化部４０５、逆直交変換部４０６、ループフィルタ部４０７、復号画像記憶部４０８、イントラ／インタ予測部４０９を有する。
【００３４】
ブロック分割部４０１は、入力された画像データに含まれる各画面（入力画面または入力フレームと称す）を取得する。また、ブロック分割部４０１は、入力画面（入力フレーム）をストリームで固定サイズのブロックに分割する。更に、ブロック分割部４０１は、固定サイズのブロックそれぞれを、更に再帰的に、符号化単位のブロックに分割する。なお、Ｈ．２６５／ＨＥＶＣにおけるブロック分割部では、入力画面をストリームで固定サイズのブロックであるＣＴＵ（Coding Tree Unit）に分割する。また、Ｈ．２６５／ＨＥＶＣにおけるブロック分割部では、各ＣＴＵのブロックを符号化単位のブロックであるＣＵ（Coding Unit）に分割する。更に、Ｈ．２６５／ＨＥＶＣにおけるブロック分割部では、各ＣＵのブロックを予測ユニット（ＰＵ（Prediction Unit））と変換ユニット（ＴＵ（Transform Unit））のブロックに分割する。
【００３５】
しかしながら、Ｈ．２６５／ＨＥＶＣに続く次世代コーデックの国際標準では、ＰＵ、ＴＵを廃止し、全てＣＵのブロックに分割することが見込まれている。このため、本実施形態では、ブロック分割部４０１が、ＣＴＵのブロックを、全てＣＵのブロックに分割するものとして説明する。なお、Ｈ．２６５／ＨＥＶＣに続く次世代コーデックにおいて検討されている内容によれば、ＣＴＵのブロックのサイズは、最大１２８画素×１２８画素であるので、以下では、ＣＴＵのブロックのサイズは、１２８画素×１２８画素として説明する。
【００３６】
ブロック分割部４０１によりＣＵのブロックに分割された画像データの各入力画面（入力フレーム）は、イントラ／インタ予測部４０９に通知されるとともに、予測残差信号の算出に用いられる。
【００３７】
直交変換部４０２は、入力画面の各ＣＵのブロック内の入力画像と、対応する各ＣＵのブロック内の予測画像との差分に基づいて算出された予測残差信号に対して直交変換処理を実行する。
【００３８】
量子化部４０３は、直交変換処理が実行された予測残差信号を量子化することで量子化信号を生成し、エントロピ符号化部４０４及び逆量子化部４０５に出力する。
【００３９】
エントロピ符号化部４０４は、量子化信号をエントロピ符号化することで、データストリームを生成し、出力する。
【００４０】
逆量子化部４０５は、量子化信号を逆量子化し、逆直交変換部４０６に出力する。逆直交変換部４０６は、逆量子化された量子化信号に対して逆直交変換処理を実行する。逆直交変換部４０６により得られた信号に対しては、例えば、イントラ／インタ予測部４０９が生成した予測画像が加算されることで復号画像が生成され、ループフィルタ部４０７に入力される。
【００４１】
ループフィルタ部４０７は、入力された復号画像の符号化ノイズを低減するフィルタ処理を行う。復号画像記憶部４０８は、ループフィルタ部４０７によりフィルタ処理された復号画像を画面ごと（フレームごと）に記憶する。
【００４２】
イントラ／インタ予測部４０９は、復号中の画面内の各ＣＵのブロックの復号画像を用いて処理対象のＣＵのブロックの予測画像を生成するイントラ予測（画面内予測）を行う。また、イントラ／インタ予測部４０９は、参照画面内の各ＣＵのブロックの復号画像を用いて画面間で動き補償を行い、処理対象のＣＵのブロックの予測画像を生成する動き補償インタ予測（画面間予測）を行う。
【００４３】
更に、イントラ／インタ予測部４０９は、イントラ予測により生成された各ＣＵのブロックの予測画像であるイントラ予測画像または動き補償インタ予測により生成された各ＣＵのブロックの予測画像であるインタ予測画像のいずれか一方を出力する。
【００４４】
イントラ／インタ予測部４０９より出力された各ＣＵのブロックの予測画像は、入力画面内の各ＣＵのブロックの入力画像との残差計算に用いられ、算出された予測残差信号は、直交変換部４０２に入力される。また、イントラ／インタ予測部４０９より出力された予測画像は、逆直交変換部４０６により得られた信号に加算され、復号画像としてループフィルタ部４０７に入力される。
【００４５】
＜４．エンコーダのイントラ／インタ予測部の詳細＞
続いて、エンコーダのイントラ／インタ予測部４０９における、テンプレートマッチングによるインタ予測処理の詳細について説明する。なお、以下では、まず、対比として次世代コーデックにおいて検討中のインタ予測モードにおける、テンプレートマッチングによるインタ予測処理について説明する（以下、＜４．１＞参照）。続いて、第１の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングによるインタ予測処理について説明する（以下、＜４．２＞参照）。
【００４６】
＜４．１  次世代コーデックにおいて検討中のインタ予測モードにおける、テンプレートマッチングによるインタ予測処理＞
（１）復号対象の矩形領域（ｓｕｂＣＵ）及びテンプレート領域の説明
はじめに、次世代コーデックにおいて検討中のインタ予測モードで、テンプレートマッチングによるインタ予測処理を行う場合の、復号対象の矩形領域及びテンプレート領域について説明する。図５は、次世代コーデックにおいて検討中のインタ予測モードにおける、復号対象の矩形領域及びテンプレート領域を説明するための図である。
【００４７】
図５に示すように、入力画面（入力フレーム）５００のうち、１２８画素×１２８画素のＣＴＵ５１０が、ＣＵのブロックに分割され、当該ＣＵのブロックについて、テンプレートマッチングによるインタ予測処理が行われる。
【００４８】
なお、ＣＴＵ５１０に示すように、ＣＴＵのブロックは、インタ予測の際、様々なブロックサイズのＣＵに分割される。図５に示す例では、正方形のＣＵのブロック（８×８、１６×１６、３２×３２、６４×６４。単位は全て［画素］）に分割された場合が含まれる。更に、図５に示す例では、長方形のＣＵのブロック（４×８、８×４、８×１６、１６×８、１６×３２、３２×１６、３２×６４、６４×３２、６４×１２８、１２８×６４。単位は全て［画素］）に分割された場合が含まれる。
【００４９】
ＣＵのブロック５２０は、このうち、６４画素×６４画素に分割された正方形のブロックを拡大して示したものである。ＣＵのブロック５２０に示すように、次世代コーデックにおいては、インタ予測モードにおいて、ｓｕｂＣＵ５３０、５４０、５５０等の矩形領域が生成され、ｓｕｂＣＵを復号対象として、ｓｕｂＣＵごとに、順次、予測画像及び復号画像が生成される。
【００５０】
図５の例において、復号対象のｓｕｂＣＵ５３０について、テンプレートマッチングによるインタ予測処理を行うことで予測画像及び復号画像を生成する場合、
・ｓｕｂＣＵ５３０の上側に隣接するｓｕｂＣＵ５４０と、
・ｓｕｂＣＵ５３０の左側に隣接するｓｕｂＣＵ５５０と、
が用いられる。つまり、ｓｕｂＣＵ５３０についてテンプレートマッチングによるインタ予測処理を行うことで予測画像及び復号画像を生成するにあたっては、ｓｕｂＣＵ５４０、５５０についての予測画像及び復号画像の生成が、いずれも完了していることが前提となる。
【００５１】
図５の例によれば、ｓｕｂＣＵ５４０の復号画像の一部と、ｓｕｂＣＵ５５０の復号画像の一部とが、テンプレート領域５４１、５５１として設定される。そして、設定されたテンプレート領域５４１、５５１の復号画像を用いて、テンプレートマッチングによるインタ予測処理が行われる。
【００５２】
（２）テンプレートマッチングの概要
続いて、次世代コーデックにおいて検討中のインタ予測モードにおける、テンプレートマッチングの概要について説明する。図６は、次世代コーデックにおいて検討中のインタ予測モードにおける、テンプレートマッチングの概要を示す図である。
【００５３】
図６において、画面６２０は、イントラ／インタ予測部４０９によって復号中の画面（フレーム）である。図６の例は、復号対象のｓｕｂＣＵ５３０について、テンプレート領域５４１、５５１が設定された様子を示している。
【００５４】
また、図６において、画面６１０は、復号中の画面６２０において設定されたテンプレート領域とのマッチングが行われる参照画面（復号中の画面６２０とは時間的に異なる復号画面）である。
【００５５】
図６の例は、設定されたテンプレート領域５４１、５５１（第１のテンプレート領域）に相当する画面６１０内の領域として、テンプレート領域６１５、６１６（第２のテンプレート領域）が設定された様子を示している。
【００５６】
また、図６の例は、テンプレート領域６１５、６１６が、画面６１０内で所定のベクトル分移動（ベクトル６１４分移動）されることで、テンプレート領域６１２、６１３（第３のテンプレート領域）が設定された様子を示している。
【００５７】
更に、図６の例は、テンプレート領域６１２、６１３とテンプレート領域５４１、５５１との間で算出された画像の相関値（マッチング度）が最大であったことにより、ベクトル６１４が、復号対象のｓｕｂＣＵ５３０の動きベクトルとして決定された様子を示している。
【００５８】
このように、復号対象のｓｕｂＣＵ５３０に隣接するｓｕｂＣＵの復号画像の一部をテンプレート領域５４１、５５１として設定し、画面６１０内においてマッチングを行うことで、動き補償インタ予測に用いられる動きベクトル６１４を決定することができる。
【００５９】
（３）イントラ／インタ予測部の機能構成（エンコーダ）
続いて、次世代コーデックにおいて検討中のインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成（エンコーダ）について説明する。図７は、次世代コーデックにおいて検討中のインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成の一例を示す図である。
【００６０】
図７に示すように、次世代コーデックにおいて検討中のインタ予測モードの場合、イントラ／インタ予測部４０９は、動き探索処理部７０１、コスト判定部７０２、テンプレート領域設定部７０３、復号中画面取得部７０４を有する。また、イントラ／インタ予測部４０９は、参照画面取得部７０５、マッチング部７０６、動きベクトル算出部７０７、予測画像生成部７０８、動きベクトル格納部７０９、テンプレート探索点設定部７１０を有する。
【００６１】
動き探索処理部７０１は、ブロック分割部４０１より、入力画面（入力フレーム）のＣＴＵのうち、所定のＣＴＵを分割することで得られるＣＵのブロックであって、処理対象のＣＵ（復号対象のｓｕｂＣＵが含まれるＣＵ）のブロックの入力画像を取得する。
【００６２】
また、動き探索処理部７０１は、復号画像記憶部４０８に記憶された復号画面の中から、参照画面取得部７０５により参照画面として読み出された復号画面を取得する。更に、動き探索処理部７０１は、処理対象のＣＵのブロックの入力画像について、参照画面に対する非テンプレートマッチング処理（テンプレートマッチング処理以外の一般的な探索処理）を実行する。これにより、動き探索処理部７０１は、ＣＵレベルの非テンプレートマッチングにおける動きベクトルと、非テンプレートマッチングにおけるコストとを算出し、コスト判定部７０２に通知する。
【００６３】
コスト判定部７０２は、動き探索処理部７０１より通知される、ＣＵレベルの非テンプレートマッチングにおける動きベクトルと、非テンプレートマッチングにおけるコストとを取得する。また、コスト判定部７０２は、後述する動きベクトル算出部７０７より通知される、ＣＵレベルのテンプレートマッチングにおける動きベクトルと、テンプレートマッチングにおけるコストとを取得する。
【００６４】
更に、コスト判定部７０２は、取得したコストを比較することで、ＣＵの予測モードを決定し、インタ予測結果情報として出力する。また、コスト判定部７０２は、ＣＵの予測モードを、非テンプレートマッチングの動きベクトルを利用するモードに決定した場合にあっては、当該動きベクトルを、ＣＵレベルの動きベクトルとして、予測画像生成部７０８に通知する。また、コスト判定部７０２は、決定したＣＵの予測モードを予測画像生成部７０８に通知する。
【００６５】
一方、ＣＵの予測モードを、テンプレートマッチングの動きベクトルを利用するモードに決定した場合にあっては、コスト判定部７０２は、決定したＣＵの予測モードを予測画像生成部７０８に通知する。なお、以下では、説明の簡略化のため、ＣＵの予測モードがテンプレートマッチングの動きベクトルを利用するモードに決定されるものとして説明する。
【００６６】
テンプレート領域設定部７０３は、ＣＵレベルの動き探索にあっては、復号中画面取得部７０４が取得した復号中の画面において、復号対象のＣＵのブロックに対して、ＣＵレベルのテンプレート領域を設定する。また、テンプレート領域設定部７０３は、ｓｕｂＣＵレベルの動き探索にあっては、復号中画面取得部７０４が取得した復号中の画面において、復号対象のｓｕｂＣＵに対して、ｓｕｂＣＵレベルのテンプレート領域を設定する。
【００６７】
更に、テンプレート領域設定部７０３は、ＣＵレベルの動き探索にあっては、参照画面取得部７０５が取得した参照画面内において、復号対象のＣＵのブロックについて設定されたＣＵレベルのテンプレート領域に相当するテンプレート領域を設定する。また、テンプレート領域設定部７０３は、ｓｕｂＣＵレベルの動き探索にあっては、参照画面取得部７０５が取得した参照画面内において、復号対象のｓｕｂＣＵについて設定されたｓｕｂＣＵレベルのテンプレート領域に相当するテンプレート領域を設定する。
【００６８】
復号中画面取得部７０４は取得手段の一例である。復号中画面取得部７０４は、復号画像記憶部４０８より、復号中の画面を読み出す。また、復号中画面取得部７０４は、ＣＵレベルの動き探索にあっては、復号対象のＣＵのブロックについて、テンプレート領域設定部７０３により設定されたＣＵレベルのテンプレート領域の復号画像を、マッチング部７０６に通知する。
【００６９】
更に、復号中画面取得部７０４は、ｓｕｂＣＵレベルの動き探索にあっては、復号対象のｓｕｂＣＵについて、テンプレート領域設定部７０３により設定されたｓｕｂＣＵレベルのテンプレート領域の復号画像を、マッチング部７０６に通知する。
【００７０】
参照画面取得部７０５は第２の設定手段の一例である。参照画面取得部７０５は、復号画像記憶部４０８に記憶された復号画面のうち、所定の復号画面（時間的に異なる復号画面）を参照画面として読み出す。また、参照画面取得部７０５は、読み出した参照画面を動き探索処理部７０１に通知する。
【００７１】
また、参照画面取得部７０５は、読み出した参照画面内において、テンプレート探索点設定部７１０により設定されたＣＵレベルのテンプレート領域の参照画像を抽出する。
【００７２】
なお、テンプレート探索点設定部７１０では、テンプレート領域設定部７０３により設定された参照画面内のＣＵレベルのテンプレート領域に対して、ＣＵレベルの複数の動きベクトル候補に応じた位置それぞれに、テンプレート領域を設定する。そして、参照画面取得部７０５は、複数の動きベクトル候補に応じた位置に設定されたＣＵレベルのテンプレート領域の参照画像を抽出して、マッチング部７０６に通知する。
【００７３】
また、テンプレート探索点設定部７１０では、ＣＵレベルの１の動きベクトル候補に対して、ＣＵレベルのテンプレート探索点用動きベクトルに応じた位置それぞれにテンプレート領域を設定する。ＣＵレベルのテンプレート探索点用動きベクトルとは、ＣＵレベルの基点となる１の動きベクトル候補の周辺位置の動きベクトルである。そして、参照画面取得部７０５は、テンプレート探索点用動きベクトルに応じた位置に設定されたＣＵレベルのテンプレート領域の参照画像を抽出して、マッチング部７０６に通知する。
【００７４】
また、参照画面取得部７０５は、テンプレート探索点設定部７１０により設定されたＣＵレベルの１のテンプレート探索点用動きベクトル（決定されたＣＵレベルの１の動きベクトル）に応じた位置のＣＵのブロックを、参照画面内において特定する。
【００７５】
また、参照画面取得部７０５は、特定した参照画面内のＣＵのブロックから、テンプレート探索点設定部７１０により設定されたｓｕｂＣＵレベルのテンプレート領域の参照画像を抽出する。
【００７６】
なお、テンプレート探索点設定部７１０は、特定した参照画面内のＣＵのブロックにおいて、テンプレート領域設定部７０３により設定されたｓｕｂＣＵレベルのテンプレート領域に対して、ｓｕｂＣＵレベルの複数の動きベクトル候補に応じた位置それぞれに、テンプレート領域を設定する。そして、参照画面取得部７０５は、複数の動きベクトル候補に応じた位置に設定されたｓｕｂＣＵレベルのテンプレート領域の参照画像を抽出して、マッチング部７０６に通知する。
【００７７】
また、テンプレート探索点設定部７１０では、ｓｕｂＣＵレベルの１の動きベクトル候補に対して、ｓｕｂＣＵレベルのテンプレート探索点用動きベクトルに応じた位置それぞれにテンプレート領域を設定する。ｓｕｂＣＵレベルのテンプレート探索点用動きベクトルとは、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補の周辺位置の複数の動きベクトルである。そして、参照画面取得部７０５は、テンプレート探索点用動きベクトルに応じた位置に設定されたｓｕｂＣＵレベルのテンプレート領域の参照画像を抽出して、マッチング部７０６に通知する。
【００７８】
マッチング部７０６は、ＣＵレベルの動き探索にあっては、復号中画面取得部７０４より通知された、ＣＵレベルのテンプレート領域の復号画像と、参照画面取得部７０５より通知された、ＣＵレベルのテンプレート領域の参照画像とのマッチング度を算出する。
【００７９】
なお、参照画面取得部７０５より通知されるＣＵレベルのテンプレート領域の参照画像には、ＣＵレベルの複数の動きベクトル候補に基づいて抽出された参照画像と、ＣＵレベルのテンプレート探索点用動きベクトルに基づいて抽出された参照画像とが含まれる。マッチング部７０６では、算出したそれぞれのマッチング度を動きベクトル算出部７０７に通知する。
【００８０】
また、マッチング部７０６は、ｓｕｂＣＵレベルの動き探索にあっては、ｓｕｂＣＵレベルのテンプレート領域の復号画像と、ｓｕｂＣＵレベルのテンプレート領域の参照画像とのマッチング度を算出する。
【００８１】
なお、ｓｕｂＣＵレベルのテンプレート領域の復号画像は、復号中画面取得部７０４より通知される。また、ｓｕｂＣＵレベルのテンプレート領域の参照画像は、参照画面取得部７０５より通知される。参照画面取得部７０５より通知されるｓｕｂＣＵレベルのテンプレート領域の参照画像には、ｓｕｂＣＵレベルの複数の動きベクトル候補に基づいて抽出された参照画像と、ｓｕｂＣＵレベルのテンプレート探索点用動きベクトルに基づいて抽出された参照画像とが含まれる。マッチング部７０６では、算出したそれぞれのマッチング度を動きベクトル算出部７０７に通知する。
【００８２】
動きベクトル算出部７０７は、マッチング部７０６より通知されたマッチング度のうち、ＣＵレベルの複数の動きベクトル候補に応じた位置に設定されたテンプレート領域の参照画像とのマッチング度の中から、最大のマッチング度を特定する。
【００８３】
また、動きベクトル算出部７０７は、特定した最大のマッチング度に対応する、ＣＵレベルの動きベクトル候補を、ＣＵレベルの基点となる１の動きベクトル候補として、動きベクトル格納部７０９に格納する。
【００８４】
また、動きベクトル算出部７０７は、ＣＵレベルの基点となる１の動きベクトル候補を動きベクトル格納部７０９に格納したことに応じて、マッチング部７０６より通知されたＣＵレベルのマッチング度を取得する。このとき動きベクトル算出部７０７が取得するマッチング度は、ＣＵレベルのテンプレート探索点用動きベクトル（ＣＵレベルの基点となる１の動きベクトル候補の周辺の複数の動きベクトル）に応じた位置に設定されたテンプレート領域の参照画像とのマッチング度である。
【００８５】
更に、動きベクトル算出部７０７は、取得したマッチング度に基づいて、ＣＵレベルのテンプレートマッチングにおける動きベクトルを決定し、決定したＣＵレベルの動きベクトルを動きベクトル格納部７０９に格納する。
【００８６】
また、動きベクトル算出部７０７は、決定したＣＵレベルの動きベクトルによるテンプレートマッチングにおけるコストを算出する。また、動きベクトル算出部７０７は、決定したＣＵレベルの動きベクトルとコストとをコスト判定部７０２に通知する。
【００８７】
また、動きベクトル算出部７０７は、決定したＣＵレベルの動きベクトルを動きベクトル格納部７０９に格納したことに応じて、マッチング部７０６より通知されたｓｕｂＣＵレベルのマッチング度を取得する。また、動きベクトル算出部７０７は、取得したマッチング度のうち、ｓｕｂＣＵレベルの複数の動きベクトル候補に応じた位置に設定されたテンプレート領域の参照画像とのマッチング度の中から、最大のマッチング度を特定する。
【００８８】
また、動きベクトル算出部７０７は、特定した最大のマッチング度に対応する、ｓｕｂＣＵレベルの１の動きベクトル候補を、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補として、動きベクトル格納部７０９に格納する。
【００８９】
また、動きベクトル算出部７０７は、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補を動きベクトル格納部７０９に格納したことに応じて、マッチング部７０６より通知されたｓｕｂＣＵレベルのマッチング度を取得する。このとき動きベクトル算出部７０７が取得するマッチング度は、ｓｕｂＣＵレベルのテンプレート探索点用動きベクトル（ｓｕｂＣＵレベルの基点となる１の動きベクトル候補の周辺の複数の動きベクトル）に応じた位置に設定されたテンプレート領域の参照画像とのマッチング度である。更に、動きベクトル算出部７０７は、取得したマッチング度に基づいて、ｓｕｂＣＵレベルのテンプレートマッチングにおける動きベクトルを決定し、予測画像生成部７０８に通知する。
【００９０】
予測画像生成部７０８は生成手段の一例である。予測画像生成部７０８は、コスト判定部７０２より、ＣＵの予測モードとして、非テンプレートマッチングの動きベクトルを利用するモードが通知された場合、コスト判定部７０２より、非テンプレートマッチングの動きベクトルを取得する。この場合、予測画像生成部７０８は、参照画面取得部７０５より通知された参照画面内において、非テンプレートマッチングの動きベクトルに対応する参照画像を特定する。また、予測画像生成部７０８は、特定した参照画像を用いて予測画像を生成することで動き補償インタ予測を行う。更に、予測画像生成部７０８は、生成したＣＵのブロックの予測画像を、インタ予測画像として出力する。
【００９１】
一方、コスト判定部７０２より、ＣＵの予測モードとして、テンプレートマッチングの動きベクトルを利用するモードが通知された場合、予測画像生成部７０８は、動きベクトル算出部７０７より順次通知される、決定されたｓｕｂＣＵレベルの動きベクトルを取得する。
【００９２】
また、予測画像生成部７０８は、参照画面取得部７０５より通知された参照画面内において、動きベクトル算出部７０７より順次通知された、決定されたｓｕｂＣＵレベルの動きベクトルに対応する参照画像を特定し、復号対象のｓｕｂＣＵの予測画像として、順次、出力する。更に、予測画像生成部７０８は、特定した各参照画像を用いてＣＵのブロックの予測画像を生成する。更に、予測画像生成部７０８は、生成したＣＵのブロックの予測画像を、インタ予測画像として出力する。
【００９３】
動きベクトル格納部７０９は、ＣＵレベルの基点となる１の動きベクトル候補を格納する。また、動きベクトル格納部７０９は、決定したＣＵレベルの動きベクトルを格納する。また、動きベクトル格納部７０９は、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補を格納する。
【００９４】
テンプレート探索点設定部７１０は、テンプレート領域設定部７０３により設定された参照画面内のＣＵレベルのテンプレート領域に対して、ＣＵレベルの複数の動きベクトル候補に応じた位置それぞれに、テンプレート領域を設定する。
【００９５】
また、テンプレート探索点設定部７１０は、動きベクトル格納部７０９に格納された、ＣＵレベルの基点となる１の動きベクトル候補に基づいて、ＣＵレベルのテンプレート探索点用動きベクトルを決定する。また、テンプレート探索点設定部７１０は、参照画面内において、ＣＵレベルのテンプレート探索点用動きベクトルに応じた位置それぞれに、テンプレート領域を設定する。
【００９６】
また、テンプレート探索点設定部７１０は、特定された参照画面内のＣＵのブロックにおいて、テンプレート領域設定部７０３により設定されたｓｕｂＣＵレベルのテンプレート領域に対して、ｓｕｂＣＵレベルの複数の動きベクトル候補に応じた位置それぞれに、テンプレート領域を設定する。
【００９７】
また、テンプレート探索点設定部７１０は、動きベクトル格納部７０９に格納された、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補に基づいて、ｓｕｂＣＵレベルのテンプレート探索点用動きベクトルを決定する。また、テンプレート探索点設定部７１０は、参照画面内において、ｓｕｂＣＵレベルのテンプレート探索点用動きベクトルに応じた位置それぞれに、テンプレート領域を設定する。
【００９８】
（４）インタ予測処理の流れ
続いて、次世代コーデックにおいて検討中のインタ予測モードにおける、テンプレートマッチングによるインタ予測処理の流れについて説明する。図８は、次世代コーデックにおいて検討中のインタ予測モードにおける、テンプレートマッチングによるインタ予測処理の流れを示すフローチャートである。
【００９９】
ステップＳ８０１において、イントラ／インタ予測部４０９は、ＣＵレベルの動き探索処理を実行し、ＣＵレベルの動きベクトルを決定する。
【０１００】
ステップＳ８０２において、イントラ／インタ予測部４０９は、ステップＳ８０１において決定したＣＵレベルの動きベクトルに基づいて、ｓｕｂＣＵレベルの動き探索処理を実行し、ｓｕｂＣＵレベルの動きベクトルを決定する。以下、ステップＳ８０１、Ｓ８０２の詳細について説明する。
【０１０１】
・ＣＵレベルの動き探索処理の流れ（ステップＳ８０１）
図９は、ステップＳ８０１を詳細化した、ＣＵレベルの動き探索処理の流れを示すフローチャートである。
【０１０２】
ステップＳ９０１において、テンプレート領域設定部７０３は、復号中の画面内において、復号対象のＣＵのブロックに対して、ＣＵレベルのテンプレート領域を設定する。
【０１０３】
ステップＳ９０２において、テンプレート探索点設定部７１０は、参照画面内において、ＣＵレベルの複数の動きベクトル候補に応じた位置それぞれにテンプレート領域を設定する。
【０１０４】
ステップＳ９０３において、マッチング部７０６は、ステップＳ９０１において設定されたＣＵレベルのテンプレート領域の復号画像と、ステップＳ９０２において設定されたＣＵレベルのテンプレート領域の参照画像とのマッチング度を算出する。また、動きベクトル算出部７０７は、算出されたマッチング度のうち、最大のマッチング度を特定する。更に、動きベクトル算出部７０７は、特定した最大のマッチング度に対応する、ＣＵレベルの動きベクトル候補を、ＣＵレベルの基点となる１の動きベクトル候補に決定する。
【０１０５】
ステップＳ９０４において、テンプレート探索点設定部７１０は、ＣＵレベルの基点となる１の動きベクトル候補に対して、ＣＵレベルのテンプレート探索点用動きベクトルに応じた位置それぞれにテンプレート領域を設定する。
【０１０６】
ステップＳ９０５において、マッチング部７０６は、ステップＳ９０１において設定されたＣＵレベルのテンプレート領域の復号画像と、ＣＵレベルのテンプレート探索点用動きベクトルに応じた位置に設定されたテンプレート領域の参照画像とのマッチング度を算出する。
【０１０７】
ステップＳ９０６において、動きベクトル算出部７０７は、算出されたマッチング度に基づいて、ＣＵレベルのテンプレートマッチングにおける動きベクトルを決定する。これにより、参照画面取得部７０５では、決定されたＣＵレベルの１の動きベクトルに応じた位置のＣＵのブロック（復号対象のＣＵのブロックに対応する、参照画面内のＣＵのブロック）を特定することができる。
【０１０８】
・ｓｕｂＣＵレベルの動き探索処理の流れ（ステップＳ８０２）
図１０は、ステップＳ８０２を詳細化した、ｓｕｂＣＵレベルの動き探索処理の流れを示すフローチャートである。
【０１０９】
ステップＳ１００１において、テンプレート領域設定部７０３は、復号中の画面内において、復号対象のｓｕｂＣＵに対して、ｓｕｂＣＵレベルのテンプレート領域を設定する。
【０１１０】
ステップＳ１００２において、テンプレート探索点設定部７１０は、参照画面取得部７０５により特定された参照画面内のＣＵのブロックにおいて、ｓｕｂＣＵレベルの複数の動きベクトル候補に応じた位置それぞれにテンプレート領域を設定する。
【０１１１】
ステップＳ１００３において、マッチング部７０６は、ステップＳ１００１において設定されたｓｕｂＣＵレベルのテンプレート領域の復号画像と、ステップＳ１００２において設定されたｓｕｂＣＵレベルのテンプレート領域の参照画像とのマッチング度を算出する。また、動きベクトル算出部７０７は、算出されたマッチング度のうち、最大のマッチング度を特定する。更に、動きベクトル算出部７０７は、特定した最大のマッチング度に対応する、ｓｕｂＣＵレベルの動きベクトル候補を、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補に決定する。
【０１１２】
ステップＳ１００４において、テンプレート探索点設定部７１０は、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補に対して、ｓｕｂＣＵレベルのテンプレート探索点用動きベクトルに応じた位置それぞれにテンプレート領域を設定する。
【０１１３】
ステップＳ１００５において、マッチング部７０６は、ステップＳ１００１において設定されたｓｕｂＣＵレベルのテンプレート領域の復号画像と、ｓｕｂＣＵレベルのテンプレート探索点用動きベクトルに応じた位置に設定されたテンプレート領域の参照画像とのマッチング度を算出する。
【０１１４】
ステップＳ１００６において、動きベクトル算出部７０７は、算出されたマッチング度に基づいて、ｓｕｂＣＵレベルのテンプレートマッチングにおける動きベクトルを決定する。
【０１１５】
ステップＳ１００７において、予測画像生成部７０８は、決定されたｓｕｂＣＵレベルの動きベクトルに対応する参照画像を特定し、復号対象のｓｕｂＣＵの予測画像として出力する。更に、予測画像生成部７０８は、特定した各参照画像を用いてＣＵのブロックの予測画像を生成し、インタ予測画像として出力する。
【０１１６】
なお、予測画像生成部７０８により出力されたｓｕｂＣＵの予測画像は、逆直交変換部４０６より得られた信号に加算され、ｓｕｂＣＵの復号画像としてループフィルタ部４０７に入力される。
【０１１７】
ステップＳ１００８において、復号中画面取得部７０４は、復号中の画面内の処理対象のＣＵに含まれる全てのｓｕｂＣＵについて、予測画像を出力したか否かを判定する。ステップＳ１００８において、予測画像を出力していないｓｕｂＣＵがあると判定した場合には（ステップＳ１００８においてＮＯの場合には）、ステップＳ１００１に戻る。一方、ステップＳ１００８において、復号中の画面内の処理対象のＣＵに含まれる全てのｓｕｂＣＵについて予測画像を出力したと判定した場合には（ステップＳ１００８においてＹＥＳの場合には）、ｓｕｂＣＵレベルの動き探索処理を終了する。
【０１１８】
（５）ｓｕｂＣＵごとの処理のタイミングチャート
続いて、次世代コーデックにおいて検討中のインタ予測モードにおける、ｓｕｂＣＵごとの処理内容及び処理タイミングについて説明する。図１１は、次世代コーデックにおいて検討中のインタ予測モードにおける、ｓｕｂＣＵごとの処理内容及び処理タイミングを示す図である。
【０１１９】
このうち、図１１（ａ）は、復号対象の各ｓｕｂＣＵが含まれるＣＵのブロックの一例を示している。図１１（ａ）の例は、復号対象のｓｕｂＣＵが含まれるＣＵのブロックが"ＣＵｎ"であり、当該ＣＵのブロックには、４つのｓｕｂＣＵ（"ｓｕｂ０"、"ｓｕｂ１"、"ｓｕｂ２"、"ｓｕｂ３"）が含まれることを示している。また、図１１（ａ）の例は、"ＣＵｎ"に隣接する上側のＣＵのブロック及び左側のＣＵのブロックについては、いずれも、復号画像が生成されていることを示している。更に、図１１（ａ）の例は、当該隣接するＣＵのブロックの復号画像の一部が、テンプレート領域１１０１〜１１１２として設定されていることを示している。
【０１２０】
図１１（ｂ）は、"ＣＵｎ"に含まれる４つのｓｕｂＣＵについて、イントラ／インタ予測部４０９が処理を実行する際の処理タイミングを示した図である。図１１（ｂ）の例では、イントラ／インタ予測部４０９が実行する処理を、
・ＣＵレベルの動きベクトル候補の設定と基点となる１の動きベクトル候補の決定、
・ＣＵレベルの動きベクトルの決定、
・ｓｕｂＣＵレベルの動きベクトル候補の設定と基点となる１の動きベクトル候補の決定、
・ｓｕｂＣＵレベルの動きベクトルの決定、
・ｓｕｂＣＵレベルの予測画像の生成、
・ｓｕｂＣＵレベルの復号画像の取得、
に分けて示している。なお、図１１（ｂ）の例では、紙面の都合上、処理タイミング＝"Ｔｍ"〜"Ｔｍ＋６"までを示している。
【０１２１】
図１１（ｂ）に示すように、はじめに、処理タイミング＝"Ｔｍ"において、"ＣＵｎ"について、ＣＵレベルの動きベクトル候補に応じた位置それぞれにテンプレート領域が設定され、ＣＵレベルの基点となる１の動きベクトル候補が決定される。続いて、処理タイミング＝"Ｔｍ＋１"において、"ＣＵｎ"について、ＣＵレベルの動きベクトルが決定される。
【０１２２】
続いて、処理タイミング"Ｔｍ＋２"において、"ｓｕｂＣＵ０"について、ｓｕｂＣＵレベルの動きベクトル候補に応じた位置それぞれにテンプレート領域が設定され、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補が決定される。続いて、処理タイミング＝"Ｔｍ＋３"において、"ｓｕｂＣＵ０"について、ｓｕｂＣＵレベルの動きベクトルが決定される。なお、"ｓｕｂＣＵ０"の動きベクトルの決定に際しては、テンプレート領域１１０１、１１１１の復号画像が用いられる。
【０１２３】
続いて、処理タイミング＝"Ｔｍ＋４"において、"ｓｕｂＣＵ０"について予測画像が生成され、予測画像が出力される。更に、予測画像が出力されたことで復号画像が生成され、処理タイミング＝"Ｔｍ＋５"において、"ｓｕｂＣＵ０"について生成された復号画像が取得される。
【０１２４】
ｓｕｂＣＵ０についての復号画像が取得されると、"ｓｕｂＣＵ１"について、ｓｕｂＣＵレベルの動きベクトルを決定する際に用いられるテンプレート領域１１３１を設定することが可能となる。
【０１２５】
そこで、処理タイミング＝"Ｔｍ＋５"において、"ｓｕｂＣＵ０"について決定されたｓｕｂＣＵレベルの動きベクトルに対して、"ｓｕｂＣＵ１"について、ｓｕｂＣＵレベルの動きベクトル候補に応じた位置それぞれにテンプレート領域が設定され、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補が決定される。その後、処理タイミング＝"Ｔｍ＋６"において、"ｓｕｂＣＵ１"について、ｓｕｂＣＵレベルの動きベクトルが決定される。なお、"ｓｕｂＣＵ１"の動きベクトルの決定に際しては、テンプレート領域１１０２、１１３１の復号画像が用いられる。
【０１２６】
このように、次世代コーデックにおいて検討中のインタ予測モードの場合、復号対象のｓｕｂＣＵに隣接する上側及び左側のｓｕｂＣＵの復号画像が生成されていることが、ｓｕｂＣＵレベルの動きベクトルを決定する際の前提となる（図１１（ｂ）の点線矢印参照）。このため、次世代コーデックのエンコーダにおいて検討中のインタ予測モードは、処理効率が高いとはいえない。
【０１２７】
＜４．２  第１の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングによるインタ予測処理＞
次に、第１の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングによるインタ予測処理について説明する。
【０１２８】
（１）復号対象の矩形領域（ｓｕｂＣＵ）及びテンプレート領域の説明
はじめに、第１の実施形態に係るエンコーダのインタ予測モードにおいて、テンプレートマッチングによるインタ予測処理を行う場合の、復号対象の矩形領域及びテンプレート領域について説明する。図１２は、第１の実施形態に係るエンコーダのインタ予測モードにおける、復号対象の矩形領域及びテンプレート領域を説明するための図である。
【０１２９】
図５を用いて説明したとおり、第１の実施形態に係るエンコーダにおいても、入力画面（入力フレーム）５００のうち、１２８画素×１２８画素のＣＴＵ５１０が、ＣＵのブロックに分割される。また、当該ＣＵのブロックについて、テンプレートマッチングによるインタ予測が行われる（図１２参照）。
【０１３０】
ＣＵのブロック５２０は、このうち、６４画素×６４画素に分割された正方形のブロックを拡大して示したものである。図５を用いて説明したとおり、次世代コーデックにおいては、インタ予測モードにおいて、ｓｕｂＣＵ５３０、５４０、５５０等の矩形領域が生成され、ｓｕｂＣＵを復号対象として、ｓｕｂＣＵごとに、予測画像及び復号画像が生成される。
【０１３１】
ただし、第１の実施形態に係るエンコーダの場合、複数のｓｕｂＣＵの予測画像及び復号画像の生成を、並列して行う。このために、第１の実施形態に係るエンコーダでは、所定のブロックに隣接するブロックの一部を、テンプレート領域として設定する。所定のブロックとは、復号対象の複数のｓｕｂＣＵを含む復号単位のブロックであり、図１２の例では、ＣＵのブロック５２０を指す。
【０１３２】
例えば、復号対象のｓｕｂＣＵがｓｕｂＣＵ５３０であった場合、テンプレートマッチングを行う時点で、
・復号対象のｓｕｂＣＵ５３０が含まれるＣＵのブロック５２０の上側に隣接するＣＵのブロック、及び、
・復号対象のｓｕｂＣＵ５３０が含まれるＣＵのブロック５２０の左側に隣接するＣＵのブロック
は、いずれも、予測画像及び復号画像の生成が完了している。そこで、第１の実施形態に係るエンコーダでは、上側と左側に隣接するＣＵのブロックの一部をテンプレート領域１２０２、１２１３として設定し、復号対象のｓｕｂＣＵ５３０について、テンプレートマッチングを行う。
【０１３３】
同様に、例えば、復号対象のｓｕｂＣＵがｓｕｂＣＵ５４０であった場合、テンプレートマッチングを行う時点で、
・復号対象のｓｕｂＣＵ５４０が含まれるＣＵのブロック５２０の上側に隣接するＣＵのブロック、及び、
・復号対象のｓｕｂＣＵ５４０が含まれるＣＵのブロック５２０の左側に隣接するＣＵのブロック
は、いずれも、予測画像及び復号画像の生成が完了している。そこで、第１の実施形態に係るエンコーダでは、上側と左側に隣接するＣＵのブロックの一部をテンプレート領域１２０２、１２１２として設定し、復号対象のｓｕｂＣＵ５４０について、テンプレートマッチングを行う。つまり、ｓｕｂＣＵ５３０とｓｕｂＣＵ５４０とは、並列してテンプレートマッチングを行うことができる（なお、ｓｕｂＣＵ５５０等についても同様である）。
【０１３４】
このように、復号対象のｓｕｂＣＵが含まれる復号単位（ＣＵ）のブロックの上側及び左側のＣＵのブロックの一部をテンプレート領域として設定することで、複数のｓｕｂＣＵについて、テンプレートマッチングを並列して実行することが可能となる。
【０１３５】
（２）テンプレートマッチングの概要
続いて、第１の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングについて概要を説明する。図１３は、第１の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングの概要を示す図である。
【０１３６】
図１３において、画面６２０は、イントラ／インタ予測部４０９によって復号中の画面（フレーム）である。図１３の例は、復号対象のｓｕｂＣＵ５３０について、テンプレート領域１２０２、１２１３が設定された様子を示している。
【０１３７】
また、図１３において、画面６１０は、復号中の画面６２０において設定されたテンプレート領域とのマッチングが行われる参照画面（復号中の画面６２０とは時間的に異なる復号画面）である。
【０１３８】
図１３の例は、設定されたテンプレート領域１２０２、１２１３（第１のテンプレート領域）に相当する画面６１０内の領域として、テンプレート領域１３２１、１３２２（第２のテンプレート領域）が設定された様子を示している。
【０１３９】
また、図１３の例は、テンプレート領域１３２１、１３２２が、画面６１０内で所定のベクトル分移動（ベクトル６１４分移動）されることで、テンプレート領域１３１１、１３１２（第３のテンプレート領域）が設定された様子を示している。
【０１４０】
更に、図１３の例は、テンプレート領域１３１１、１３１２とテンプレート領域１２０２、１２１３との間で算出された画像のマッチング度が最大であったことで、ベクトル６１４が、復号対象のｓｕｂＣＵ５３０の動きベクトルとして決定された様子を示している。
【０１４１】
このように、復号対象のｓｕｂＣＵ５３０が含まれるＣＵのブロックに隣接するＣＵのブロックの復号画像の一部をテンプレート領域１２０２、１２１３として設定し、画面６１０内においてマッチングを行うことで、動き補償インタ予測に用いる動きベクトル６１４を決定することができる。
【０１４２】
（３）イントラ／インタ予測部の機能構成（エンコーダ）
続いて、第１の実施形態に係るエンコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成について説明する。図１４は、第１の実施形態に係るエンコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成の一例を示す図である。
【０１４３】
図７との相違点は、図１４の場合、テンプレート領域判定部１４０１、テンプレート領域選択部１４０２を有する点である。以下、図７との相違点を中心に説明する。
【０１４４】
テンプレート領域判定部１４０１は、復号対象のｓｕｂＣＵが所定の実行条件を満たすか否かを判定する。また、テンプレート領域判定部１４０１は、所定の実行条件を満たすか否かの判定結果を、テンプレート領域設定部７０３に通知する。
【０１４５】
なお、テンプレート領域設定部７０３では、テンプレート領域判定部１４０１より、所定の実行条件を満たさない旨の判定結果が通知された場合、復号中画面取得部７０４に対して、図５を用いて説明したテンプレート領域を設定する。具体的には、復号対象のｓｕｂＣＵに隣接する上側のｓｕｂＣＵの復号画像の一部と、左側のｓｕｂＣＵの復号画像の一部とを、テンプレート領域として設定する。この場合、復号中画面取得部７０４は、復号中の画面に含まれる復号画像のうち、テンプレート領域設定部７０３により設定されたテンプレート領域の復号画像（隣接するｓｕｂＣＵの復号画像の一部）をテンプレート領域選択部１４０２に通知する。
【０１４６】
一方、テンプレート領域判定部１４０１より、所定の実行条件を満たす旨の判定結果が通知された場合には、テンプレート領域設定部７０３は、復号中画面取得部７０４に対して、図１２を用いて説明したテンプレート領域を設定する。
【０１４７】
具体的には、テンプレート領域設定部７０３は、復号対象のｓｕｂＣＵが含まれるＣＵのブロックを特定し、特定したＣＵのブロックの上側及び左側に隣接するＣＵのブロックの復号画像の一部を、テンプレート領域として設定する。この場合、復号中画面取得部７０４は、復号中の画面に含まれる復号画像のうち、テンプレート領域設定部７０３により設定されたテンプレート領域の復号画像（隣接するＣＵのブロックの復号画像の一部）をテンプレート領域選択部１４０２に通知する。
【０１４８】
テンプレート領域選択部１４０２は、所定の実行条件を満たさない旨の判定結果が通知されると、復号中画面取得部７０４より通知されたテンプレート領域の復号画像（隣接するｓｕｂＣＵの復号画像の一部）を選択する。また、テンプレート領域選択部１４０２は、選択したテンプレート領域の復号画像を、マッチング部７０６に通知する。これにより、マッチング部７０６では、復号対象のｓｕｂＣＵについて、テンプレート領域判定部１４０１より通知された判定結果に応じたテンプレート領域の復号画像を用いて、参照画面内においてテンプレートマッチングを行うことができる。
【０１４９】
また、テンプレート領域選択部１４０２は、所定の実行条件を満たす旨の判定結果が通知されると、復号中画面取得部７０４より通知されたテンプレート領域の復号画像（隣接するＣＵのブロックの復号画像の一部）を選択する。また、テンプレート領域選択部１４０２は、選択したテンプレート領域の復号画像を、マッチング部７０６に通知する。これにより、マッチング部７０６では、復号対象のｓｕｂＣＵについて、テンプレート領域判定部１４０１より通知された判定結果に応じたテンプレート領域の復号画像を用いて、参照画面内においてテンプレートマッチングを行うことができる。
【０１５０】
（４）実行条件情報
続いて、復号対象のｓｕｂＣＵについてテンプレートマッチングが実行される際に、テンプレート領域判定部１４０１が判定するテンプレートマッチングの実行条件について説明する。図１５は、第１の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングの実行条件を示す図である。
【０１５１】
図１５に示すように、実行条件情報１５００は、情報の項目として、"実行条件の判定項目"、"判定項目の閾値"、"判定理由"を含む。
【０１５２】
"実行条件の判定項目"には、復号対象のｓｕｂＣＵについて、実行条件を満たすか否かを判定するための判定項目が格納される。
【０１５３】
"判定項目の閾値"には、"実行条件の判定項目"に格納された各判定項目について、実行条件を満たすと判定するための閾値が格納される。"判定理由"には、実行条件を満たすと判定する理由が格納される。
【０１５４】
図１５の例は、"実行条件の判定項目"として、"ｓｕｂＣＵのサイズ"が含まれ、復号対象のｓｕｂＣＵのサイズが所定の閾値以下（"８画素×８画素以下"）であった場合には、実行条件を満たすと判定することを示している。ｓｕｂＣＵのサイズが小さい場合、隣接するｓｕｂＣＵについて予測画像及び復号画像の生成が完了しないかぎり、次のｓｕｂＣＵの処理に進めないとすると、エンコーダの処理効率が低下するからである。
【０１５５】
そこで、第１の実施形態に係るエンコーダでは、所定のサイズ以下のｓｕｂＣＵが復号対象であった場合には、当該ｓｕｂＣＵが含まれるＣＵのブロックに隣接するＣＵのブロックの復号画像の一部をテンプレート領域として設定する。これにより、第１の実施形態に係るエンコーダでは、複数のｓｕｂＣＵについてテンプレートマッチングを並列に行う並列処理を実現することができる。
【０１５６】
また、図１５の例は、"実行条件の判定項目"として、"ピクチャタイプ"が含まれ、復号対象のｓｕｂＣＵのピクチャタイプが"非参照画面であること"に該当する場合に、実行条件を満たすと判定することを示している。ピクチャタイプが非参照画面であった場合には、テンプレートマッチングにおいて、他の復号中の画面によって参照される画面に該当しない。これは、復号対象のｓｕｂＣＵから離れた領域をテンプレート領域にすることで、符号化誤差が増加しても、その復号画面は参照されないため、符号化誤差自体は累積されない、ということを考慮したものである。
【０１５７】
そこで、第１の実施形態に係るエンコーダでは、非参照画面のｓｕｂＣＵが復号対象であった場合には、当該ｓｕｂＣＵが含まれるＣＵのブロックに隣接するＣＵのブロックの復号画像の一部をテンプレート領域として設定する。これにより、第１の実施形態に係るエンコーダでは、複数のｓｕｂＣＵについてテンプレートマッチングを並列に行う並列処理を実現することができる。
【０１５８】
このように、実行条件情報１５００に定義された実行条件を満たす場合に、並列処理を実行することで、画質に影響を与えることなく、処理効率を向上させることが可能となる。
【０１５９】
（５）インタ予測処理の流れ（ｓｕｂＣＵレベルの動き探索処理の流れ）
続いて、第１の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングによるインタ予測処理の流れについて説明する。なお、第１の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングによるインタ予測処理の全体の流れは、図８と同じであるため、ここでは説明を省略する。
【０１６０】
また、第１の実施形態に係るエンコーダのインタ予測モードの場合、図８の各工程のうち、図９において詳細を説明した、図８のステップＳ８０１（ＣＵレベルの動き探索処理）の流れも同じである。このため、ここでは説明を省略し、図８の各工程のうちステップＳ８０２（ｓｕｂＣＵレベルの動き探索処理）について説明する。
【０１６１】
図１６は、第１の実施形態に係るエンコーダのインタ予測モードにおける、ｓｕｂＣＵレベルの動き探索処理の流れを示すフローチャートである。図１０との相違点は、ステップＳ１６０１からステップＳ１６０３である。
【０１６２】
ステップＳ１６０１において、テンプレート領域判定部１４０１は、復号対象のｓｕｂＣＵが実行条件情報１５００に示す実行条件を満たすか否かを判定する。ステップＳ１６０１において、実行条件を満たすと判定した場合には（ステップＳ１６０１においてＹＥＳの場合には）、ステップＳ１６０２に進む。
【０１６３】
ステップＳ１６０２において、テンプレート領域設定部７０３は、復号対象のｓｕｂＣＵが含まれるＣＵのブロックに隣接するＣＵのブロックの復号画像の一部を、テンプレート領域として設定する。
【０１６４】
一方、ステップＳ１６０１において、実行条件を満たさないと判定した場合には（ステップＳ１６０１においてＮＯの場合には）、ステップＳ１６０３に進む。ステップＳ１６０３において、テンプレート領域設定部７０３は、復号対象のｓｕｂＣＵに隣接するｓｕｂＣＵの復号画像の一部を、テンプレート領域として設定する。
【０１６５】
（６）ｓｕｂＣＵごとの処理のタイミングチャート
続いて、第１の実施形態に係るエンコーダのインタ予測モードにおける、ｓｕｂＣＵごとの処理内容及び処理タイミングについて説明する。図１７は、第１の実施形態に係るエンコーダのインタ予測モードにおける、ｓｕｂＣＵごとの処理内容及び処理タイミングを示す図である。
【０１６６】
このうち、図１７（ａ）は、復号対象の各ｓｕｂＣＵが含まれるＣＵのブロックの一例を示している。図１７（ａ）の例は、復号対象のｓｕｂＣＵが含まれるＣＵのブロックが"ＣＵｎ"であり、当該ＣＵのブロックには、４つのｓｕｂＣＵ（"ｓｕｂ０"、"ｓｕｂ１"、"ｓｕｂ２"、"ｓｕｂ３"）の領域が含まれることを示している。また、図１７（ａ）の例は、"ＣＵｎ"に隣接する上側のＣＵのブロック及び左側のＣＵのブロックについては、いずれも、復号画像が生成されていることを示している。また、図１７（ａ）の例は、当該隣接するＣＵのブロックの復号画像の一部が、テンプレート領域１１０１〜１１１２として設定されていることを示している。
【０１６７】
図１７（ｂ）は、"ＣＵｎ"に含まれる４つのｓｕｂＣＵについて、イントラ／インタ予測部４０９が処理を実行する際の処理タイミングを示した図である。図１１（ｂ）同様、図１７（ｂ）の例では、イントラ／インタ予測部４０９が実行する処理を、
・ＣＵレベルの動きベクトル候補の設定と基点となる１の動きベクトル候補の決定、
・ＣＵレベルの動きベクトルの決定、
・ｓｕｂＣＵレベルの動きベクトル候補の設定と基点となる１の動きベクトル候補の決定、
・ｓｕｂＣＵレベルの動きベクトルの決定、
・ｓｕｂＣＵレベルの予測画像の生成、
・ｓｕｂＣＵレベルの復号画像の取得、
に分けて示している。なお、図１１（ｂ）の例では、紙面の都合上、処理タイミング＝"Ｔｍ"〜"Ｔｍ＋７"までを示している。また、ここでは、復号対象のｓｕｂＣＵが、実行条件情報１５００に定義された実行条件を満たしているものとして説明する。
【０１６８】
図１７（ｂ）に示すように、処理タイミング＝"Ｔｍ"において、"ＣＵｎ"について、ＣＵレベルの動きベクトル候補に応じた位置それぞれにテンプレート領域が設定され、ＣＵレベルの基点となる１の動きベクトル候補が決定される。続いて、処理タイミング＝"Ｔｍ＋１"において、"ＣＵｎ"について、ＣＵレベルの動きベクトルが決定される。
【０１６９】
続いて、処理タイミング"Ｔｍ＋２"において、"ｓｕｂＣＵ０"〜"ｓｕｂＣＵ３"について、ｓｕｂＣＵレベルの動きベクトル候補に応じた位置それぞれにテンプレート領域が設定され、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補の決定が並列に実行される。続いて、処理タイミング＝"Ｔｍ＋３"において、"ｓｕｂＣＵ０"〜"ｓｕｂＣＵ３"について、ｓｕｂＣＵレベルの動きベクトルの決定が並列に実行される。
【０１７０】
なお、"ｓｕｂＣＵ０"についてのｓｕｂＣＵレベルの動きベクトルは、テンプレート領域１１０１、１１１１の復号画像を用いたテンプレートマッチングにより決定される。また、"ｓｕｂＣＵ１"についてのｓｕｂＣＵレベルの動きベクトルは、テンプレート領域１１０２、１１１１の復号画像を用いたテンプレートマッチングにより決定される。また、"ｓｕｂＣＵ２"についてのｓｕｂＣＵレベルの動きベクトルは、テンプレート領域１１０１、１１１２の復号画像を用いたテンプレートマッチングにより決定される。更に、"ｓｕｂＣＵ３"についてのｓｕｂＣＵレベルの動きベクトルは、テンプレート領域１１０２、１１１２の復号画像を用いたテンプレートマッチングにより決定される。
【０１７１】
"ｓｕｂＣＵ０"〜"ｓｕｂＣＵ３"それぞれのｓｕｂＣＵレベルの動きベクトルが決定されると、"ＣＵｎ"の次のＣＵのブロックである、"ＣＵｎ＋１"についての処理に移行し、ＣＵレベルの動きベクトル候補の設定と基点となる１の動きベクトル候補の決定とが行われる。
【０１７２】
具体的には、まず、処理タイミング＝"Ｔｍ＋４"において、"ＣＵｎ＋１"について、ＣＵレベルの動きベクトル候補に応じた位置それぞれにテンプレート領域が設定され、ＣＵレベルの基点となる１の動きベクトル候補が決定される。続いて、処理タイミング＝"Ｔｍ＋５"において、"ＣＵｎ＋１"について、ＣＵレベルの動きベクトルが決定される。
【０１７３】
また、処理タイミング＝"Ｔｍ＋４"では、並行して、"ｓｕｂＣＵ０"〜"ｓｕｂＣＵ３"の予測画像が生成され、出力される。"ｓｕｂＣＵ０"〜"ｓｕｂＣＵ３"それぞれについては、既にｓｕｂＣＵレベルの動きベクトルが決定されているため、予測画像の生成を並列に実行することができる。
【０１７４】
更に、予測画像が出力されることで、復号画像が生成され、処理タイミング＝"Ｔｍ＋５"において、"ｓｕｂＣＵ０"〜"ｓｕｂＣＵ３"それぞれについて生成された復号画像が取得される。"ｓｕｂＣＵ０"〜"ｓｕｂＣＵ３"それぞれについては、既に予測画像が出力されているため、復号画像の取得を並列に実行することができる。
【０１７５】
"ｓｕｂＣＵ０"〜"ｓｕｂＣＵ３"それぞれの復号画像が取得されると、"ＣＵｎ"の次のＣＵのブロックである、"ＣＵｎ＋１"に含まれるｓｕｂＣＵについて、動きベクトルを決定することが可能となる。
【０１７６】
そこで、まず、処理タイミング＝"Ｔｍ＋６"において、"ＣＵｎ＋１"についてのＣＵレベルの動きベクトル候補に応じた位置それぞれにテンプレート領域が設定され、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補が決定される。その後、処理タイミング＝"Ｔｍ＋７"において、"ｓｕｂＣＵ０"〜"ｓｕｂＣＵ３"について、ｓｕｂＣＵレベルの動きベクトルの決定が並列に実行される。
【０１７７】
このように、第１の実施形態に係るエンコーダによれば、複数のｓｕｂＣＵについての並列処理が実行可能となるため、処理効率を向上させることができる。この結果、処理タイミング＝"Ｔｍ"〜"Ｔｍ＋５"の間に、"ＣＵｎ"に含まれる４つのｓｕｂＣＵについて復号画像を生成することができる。
【０１７８】
（７）並列処理の具体例（その１）
続いて、第１の実施形態に係るエンコーダのインタ予測モードにおいて、複数のｓｕｂＣＵについて実行される並列処理の具体例について説明する。図１８は、第１の実施形態に係るエンコーダのインタ予測モードにおける、並列処理の具体例を示す第１の図である。図１８の例は、１２８画素×１２８画素のＣＴＵ５１０を分割することで生成された、８画素×８画素のＣＵのブロック１８００に含まれるｓｕｂＣＵについて実行される並列処理を示している（ｓｕｂＣＵのサイズが４画素×４画素であるため、並列処理が実行される）。
【０１７９】
図１８の例では、ＣＵのブロック１８００を４つのｓｕｂＣＵに分けている。また、図１８の例では、４つのｓｕｂＣＵそれぞれについて、ＣＵのブロック１８００の上側及び左側に隣接するＣＵのブロックの復号画像の一部を、テンプレート領域１８０１、１８０２、１８１１、１８１２として設定している。これにより、ＣＵのブロック１８００に含まれる４つのｓｕｂＣＵについて並列処理を実行することが可能となる。
【０１８０】
（８）並列処理の具体例（その２）
図１９は、第１の実施形態に係るエンコーダのインタ予測モードにおける、並列処理の具体例を示す第２の図である。図１９の例は、１２８画素×１２８画素のＣＴＵ５１０を分割することで生成された、６４画素×６４画素のＣＵのブロック１９００に含まれるｓｕｂＣＵについて実行される並列処理を示している（ピクチャタイプが非参照画像であることで並列処理が実行されるものとする）。
【０１８１】
図１９の例では、ＣＵのブロック１９００を１６個のｓｕｂＣＵに分けている。また、図１９の例では、１６個のｓｕｂＣＵそれぞれについて、ＣＵのブロック１９００の上側及び左側に隣接するＣＵのブロックの復号画像の一部を、テンプレート領域１９０１〜１９０４、１９１１〜１９１４として設定している。これにより、ＣＵのブロック１９００に含まれる１６個のｓｕｂＣＵについて並列処理を実行することが可能となる。
【０１８２】
（９）並列処理の具体例（その３）
図２０は、第１の実施形態に係るエンコーダのインタ予測モードにおける、並列処理の具体例を示す第３の図である。図２０の例は、１２８画素×１２８画素のＣＴＵ５１０を分割することで生成された、８画素×４画素のＣＵのブロック２００１〜２００４を処理する場合を示している。
【０１８３】
図２０の例では、ＣＵのブロック２００１〜２００４それぞれを、２つのｓｕｂＣＵに分けている。このため、ｓｕｂＣＵのサイズが４画素×４画素となり、２つのｓｕｂＣＵについて並列処理が実行される。
【０１８４】
符号２０１０は、ＣＵのブロック２００１〜２００４に含まれる各ｓｕｂＣＵについて、テンプレート領域を設定していく様子を時系列で示したものであり、下から上に向かって時間軸が進むことを示している。
【０１８５】
符号２０１０に示すように、ＣＵのブロック２００１に含まれる２つのｓｕｂＣＵそれぞれについて、ＣＵのブロック２００１の上側及び左側に隣接するＣＵの復号画像の一部が、テンプレート領域２０１１、２０１２、２０２１として設定される。これにより、ＣＵのブロック２００１に含まれる２つのｓｕｂＣＵについて並列処理を実行することが可能となる。
【０１８６】
ＣＵのブロック２００１に含まれる２つのｓｕｂＣＵが並列処理されることで、当該ｓｕｂＣＵについて復号画像が生成されると、続いて、ＣＵのブロック２００２の処理に移行する。具体的には、ＣＵのブロック２００２に含まれる２つのｓｕｂＣＵについて、ＣＵのブロック２００２の上側及び左側に隣接するＣＵのブロック（ＣＵのブロック２００１）の復号画像の一部が、テンプレート領域２０１３、２０１４、２０２２として設定される。これにより、ＣＵのブロック２００２に含まれる２つのｓｕｂＣＵについて並列処理を実行することが可能となる。
【０１８７】
ＣＵのブロック２００２に含まれる２つのｓｕｂＣＵが並列処理されることで、当該ｓｕｂＣＵについて復号画像が生成されると、続いて、ＣＵのブロック２００３の処理に移行する。具体的には、ＣＵのブロック２００３に含まれる２つのｓｕｂＣＵについて、ＣＵのブロック２００３の上側及び左側に隣接するＣＵのブロック（ＣＵのブロック２００２）の復号画像の一部が、テンプレート領域２０１５、２０１６、２０２３として設定される。これにより、ＣＵのブロック２００３に含まれる２つのｓｕｂＣＵについて並列処理を実行することが可能となる。
【０１８８】
ＣＵのブロック２００３に含まれる２つのｓｕｂＣＵが並列処理されることで、当該ｓｕｂＣＵについて復号画像が生成されると、続いて、ＣＵのブロック２００４の処理に移行する。具体的には、ＣＵのブロック２００４に含まれる２つのｓｕｂＣＵについて、ＣＵのブロック２００４の上側及び左側に隣接するＣＵのブロック（ＣＵのブロック２００３）の復号画像の一部が、テンプレート領域２０１７、２０１８、２０２４として設定される。これにより、ＣＵのブロック２００４に含まれる２つのｓｕｂＣＵについて並列処理を実行することが可能となる。
【０１８９】
＜５．デコーダの機能構成＞
次に、復号プログラムを実行することで実現される、デコーダ１２０の機能構成について説明する。図２１は、デコーダの機能構成の一例を示す図である。図２１に示すように、デコーダ１２０は、エントロピ復号部２１０１、逆量子化部２１０２、逆直交変換部２１０３、ループフィルタ部２１０４、復号画像記憶部２１０５、イントラ／インタ予測部２１０６を有する。
【０１９０】
エントロピ復号部２１０１は、受信したデータストリームを復号し、量子化信号を出力する。また、エントロピ復号部２１０１は、データストリームより付帯情報を抽出し、イントラ／インタ予測部２１０６に通知する。
【０１９１】
逆量子化部２１０２は、量子化信号を逆量子化し、逆直交変換部２１０３に出力する。逆直交変換部２１０３は、逆量子化された量子化信号に対して逆直交変換処理を実行することで、予測残差信号を得る。
【０１９２】
逆直交変換部２１０３により得られた予測残差信号には、例えば、イントラ／インタ予測部２１０６が各ＣＵのブロックについて生成した予測画像が加算される。これにより、各ＣＵのブロックの復号画像が生成され、ループフィルタ部２１０４に入力される。
【０１９３】
ループフィルタ部２１０４は、入力された復号画像の符号化ノイズを低減するフィルタ処理を行う。
【０１９４】
また、ループフィルタ部２１０４は、フィルタ処理した復号画像を復号結果として出力するとともに、復号画像記憶部２１０５に記憶する。
【０１９５】
イントラ／インタ予測部２１０６は、復号中の画面内の復号画像を用いて予測画像を生成するイントラ予測（画面内予測）を行う。また、イントラ／インタ予測部２１０６は、参照画面内の復号画像を用いて画面間で動き補償を行い、予測画像を生成する動き補償インタ予測（画面間予測）を行う。
【０１９６】
更に、イントラ／インタ予測部２１０６は、イントラ予測により生成された予測画像または動き補償インタ予測により生成された予測画像のいずれか一方を出力する。出力された予測画像は、逆直交変換部２１０３により得られた予測残差信号に加算されることで復号画像が生成され、ループフィルタ部２１０４に入力される。
【０１９７】
＜６．デコーダのイントラ／インタ予測部の詳細＞
続いて、デコーダのイントラ／インタ予測部２１０６における、テンプレートマッチングによるインタ予測処理の詳細について説明する。なお、デコーダの場合も、以下では、まず、対比として次世代コーデックにおいて検討中のインタ予測モードにおける、テンプレートマッチングによるインタ予測処理について説明する（以下、＜６．１＞参照）。続いて、第１の実施形態に係るデコーダのインタ予測モードにおける、テンプレートマッチングによるインタ予測処理について説明する（以下、＜６．２＞参照）。
【０１９８】
＜６．１  次世代コーデックにおいて検討中のインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するためのイントラ／インタ予測部の機能構成（デコーダ）＞
図２２は、次世代コーデックにおいて検討中のインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成（デコーダ）の一例を示す図である。
【０１９９】
図２２に示すように、次世代コーデックのデコーダにおいて検討中のインタ予測モードの場合、イントラ／インタ予測部２１０６は、テンプレート領域設定部２２０１、復号中画面取得部２２０２、参照画面取得部２２０３を有する。また、イントラ／インタ予測部２１０６は、マッチング部２２０４、動きベクトル算出部２２０５、予測画像生成部２２０７、動きベクトル格納部２２０８、テンプレート探索点設定部２２０９を有する。
【０２００】
テンプレート領域設定部２２０１は第１の設定手段の一例である。テンプレート領域設定部２２０１は、ＣＵレベルの動き探索にあっては、復号中画面取得部２２０２が取得した復号中の画面において、復号対象のＣＵのブロックに対して、ＣＵレベルのテンプレート領域を設定する。また、テンプレート領域設定部２２０１は、ｓｕｂＣＵレベルの動き探索にあっては、復号中画面取得部２２０２が取得した復号中の画面において、復号対象のｓｕｂＣＵに対して、ｓｕｂＣＵレベルのテンプレート領域を設定する。
【０２０１】
更に、テンプレート領域設定部２２０１は、ＣＵレベルの動き探索にあっては、参照画面取得部２２０３が取得した参照画面内において、復号対象のＣＵのブロックについて設定されたＣＵレベルのテンプレート領域に相当するテンプレート領域を設定する。また、テンプレート領域設定部２２０１は、ｓｕｂＣＵレベルの動き探索にあっては、参照画面取得部２２０３が取得した参照画面内において、復号対象のｓｕｂＣＵについて設定されたｓｕｂＣＵレベルのテンプレート領域に相当するテンプレート領域を設定する。
【０２０２】
復号中画面取得部２２０２は取得手段の一例である。復号中画面取得部２２０２は、復号画像記憶部２１０５より、復号中の画面を読み出す。また、復号中画面取得部２２０２は、ＣＵレベルの動き探索にあっては、復号対象のＣＵのブロックについて、テンプレート領域設定部２２０１により設定されたＣＵレベルのテンプレート領域の復号画像を、マッチング部２２０４に通知する。
【０２０３】
更に、復号中画面取得部２２０２は、ｓｕｂＣＵレベルの動き探索にあっては、復号対象のｓｕｂＣＵについて、テンプレート領域設定部２２０１により設定されたｓｕｂＣＵレベルのテンプレート領域の復号画像を、マッチング部２２０４に通知する。
【０２０４】
参照画面取得部２２０３は第２の設定手段の一例である。参照画面取得部２２０３は、復号画像記憶部２１０５に記憶された復号画面のうち、所定の復号画面（時間的に異なる復号画面）を参照画面として読み出す。
【０２０５】
また、参照画面取得部２２０３は、読み出した参照画面内において、テンプレート探索点設定部２２０９により設定されたＣＵレベルのテンプレート領域の参照画像を抽出する。
【０２０６】
なお、テンプレート探索点設定部２２０９では、テンプレート領域設定部２２０１により設定された参照画面内のＣＵレベルのテンプレート領域に対して、ＣＵレベルの複数の動きベクトル候補に応じた位置それぞれに、テンプレート領域を設定する。そして、参照画面取得部２２０３は、複数の動きベクトル候補に応じた位置に設定されたＣＵレベルのテンプレート領域の参照画像を抽出して、マッチング部２２０４に通知する。
【０２０７】
また、テンプレート探索点設定部２２０９では、ＣＵレベルの１の動きベクトル候補に対して、ＣＵレベルのテンプレート探索点用動きベクトルに応じた位置それぞれにテンプレート領域を設定する。ＣＵレベルのテンプレート探索点用動きベクトルとは、ＣＵレベルの基点となる１の動きベクトル候補の周辺位置の動きベクトルである。そして、参照画面取得部２２０３は、テンプレート探索点用動きベクトルに応じた位置に設定されたＣＵレベルのテンプレート領域の参照画像を抽出して、マッチング部２２０４に通知する。
【０２０８】
また、参照画面取得部２２０３は、テンプレート探索点設定部２２０９により設定されたＣＵレベルの１のテンプレート探索点用動きベクトル（決定されたＣＵレベルの１の動きベクトル）に応じた位置のＣＵのブロックを、参照画面内において特定する。
【０２０９】
また、参照画面取得部２２０３は、特定した参照画面内のＣＵのブロックから、テンプレート探索点設定部２２０９により設定されたｓｕｂＣＵレベルのテンプレート領域の参照画像を抽出する。
【０２１０】
なお、テンプレート探索点設定部２２０９は、特定した参照画面内のＣＵのブロックにおいて、テンプレート領域設定部２２０１により設定されたｓｕｂＣＵレベルのテンプレート領域に対して、ｓｕｂＣＵレベルの複数の動きベクトル候補に応じた位置それぞれに、テンプレート領域を設定する。そして、参照画面取得部２２０３は、複数の動きベクトル候補に応じた位置に設定されたｓｕｂＣＵレベルのテンプレート領域の参照画像を抽出して、マッチング部２２０４に通知する。
【０２１１】
また、テンプレート探索点設定部２２０９では、ｓｕｂＣＵレベルの１の動きベクトル候補に対して、ｓｕｂＣＵレベルのテンプレート探索点用動きベクトルに応じた位置それぞれにテンプレート領域を設定する。ｓｕｂＣＵレベルのテンプレート探索点用動きベクトルとは、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補の周辺位置の複数の動きベクトルである。そして、参照画面取得部２２０３は、テンプレート探索点用動きベクトルに応じた位置に設定されたｓｕｂＣＵレベルのテンプレート領域の参照画像を抽出して、マッチング部２２０４に通知する。
【０２１２】
マッチング部２２０４は算出手段の一例である。マッチング部２２０４は、ＣＵレベルの動き探索にあっては、復号中画面取得部２２０２より通知された、ＣＵレベルのテンプレート領域の復号画像と、参照画面取得部２２０３より通知された、ＣＵレベルのテンプレート領域の参照画像とのマッチング度を算出する。
【０２１３】
なお、参照画面取得部２２０３より通知されるＣＵレベルのテンプレート領域の参照画像には、ＣＵレベルの複数の動きベクトル候補に基づいて抽出された参照画像と、ＣＵレベルのテンプレート探索点用動きベクトルに基づいて抽出された参照画像とが含まれる。マッチング部２２０４では、算出したそれぞれのマッチング度を動きベクトル算出部２２０５に通知する。
【０２１４】
また、マッチング部２２０４は、ｓｕｂＣＵレベルの動き探索にあっては、ｓｕｂＣＵレベルのテンプレート領域の復号画像と、ｓｕｂＣＵレベルのテンプレート領域の参照画像とのマッチング度を算出する。
【０２１５】
なお、ｓｕｂＣＵレベルのテンプレート領域の復号画像は、復号中画面取得部２２０２より通知される。また、ｓｕｂＣＵレベルのテンプレート領域の参照画像は、参照画面取得部２２０３より通知される。参照画面取得部２２０３より通知されるｓｕｂＣＵレベルのテンプレート領域の参照画像には、ｓｕｂＣＵレベルの複数の動きベクトル候補に基づいて抽出された参照画像と、ｓｕｂＣＵレベルのテンプレート探索点用動きベクトルに基づいて抽出された参照画像とが含まれる。マッチング部２２０４では、算出したそれぞれのマッチング度を動きベクトル算出部２２０５に通知する。
【０２１６】
動きベクトル算出部２２０５は決定手段の一例である。動きベクトル算出部２２０５は、マッチング部２２０４より通知されたマッチング度のうち、ＣＵレベルの複数の動きベクトル候補に応じた位置に設定されたテンプレート領域の参照画像とのマッチング度の中から、最大のマッチング度を特定する。
【０２１７】
また、動きベクトル算出部２２０５は、特定した最大のマッチング度に対応する、ＣＵレベルの動きベクトル候補を、ＣＵレベルの基点となる１の動きベクトル候補として、動きベクトル格納部２２０８に格納する。
【０２１８】
また、動きベクトル算出部２２０５は、ＣＵレベルの基点となる１の動きベクトル候補を動きベクトル格納部２２０８に格納したことに応じて、マッチング部２２０４より通知されたＣＵレベルのマッチング度を取得する。このとき動きベクトル算出部２２０５が取得するマッチング度は、ＣＵレベルのテンプレート探索点用動きベクトル（ＣＵレベルの基点となる１の動きベクトル候補の周辺の複数の動きベクトル）に応じた位置に設定されたテンプレート領域の参照画像とのマッチング度である。
【０２１９】
更に、動きベクトル算出部２２０５は、取得したマッチング度に基づいて、ＣＵレベルのテンプレートマッチングにおける動きベクトルを決定し、決定したＣＵレベルの動きベクトルを動きベクトル格納部２２０８に格納する。
【０２２０】
また、動きベクトル算出部２２０５は、決定したＣＵレベルの動きベクトルを動きベクトル格納部２２０８に格納したことに応じて、マッチング部２２０４より通知されたｓｕｂＣＵレベルのマッチング度を取得する。また、動きベクトル算出部２２０５は、取得したマッチング度のうち、ｓｕｂＣＵレベルの複数の動きベクトル候補に応じた位置に設定されたテンプレート領域の参照画像とのマッチング度の中から、最大のマッチング度を特定する。
【０２２１】
また、動きベクトル算出部２２０５は、特定した最大のマッチング度に対応する、ｓｕｂＣＵレベルの１の動きベクトル候補を、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補として、動きベクトル格納部２２０８に格納する。
【０２２２】
また、動きベクトル算出部２２０５は、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補を動きベクトル格納部２２０８に格納したことに応じて、マッチング部２２０４より通知されたｓｕｂＣＵレベルのマッチング度を取得する。このとき動きベクトル算出部２２０５が取得するマッチング度は、ｓｕｂＣＵレベルのテンプレート探索点用動きベクトル（ｓｕｂＣＵレベルの基点となる１の動きベクトル候補の周辺の複数の動きベクトル）に応じた位置に設定されたテンプレート領域の参照画像とのマッチング度である。更に、動きベクトル算出部２２０５は、取得したマッチング度に基づいて、ｓｕｂＣＵレベルのテンプレートマッチングにおける動きベクトルを決定し、予測画像生成部２２０７に通知する。
【０２２３】
予測画像生成部２２０７は生成手段の一例である。予測画像生成部２２０７は、参照画面取得部２２０３より通知された参照画面内において、動きベクトル算出部２２０５より順次通知された、決定されたｓｕｂＣＵレベルの動きベクトルに対応する参照画像を特定する。更に、予測画像生成部２２０７は、特定した各参照画像を用いてｓｕｂＣＵの予測画像を生成し、出力する。
【０２２４】
動きベクトル格納部２２０８は、ＣＵレベルの基点となる１の動きベクトル候補を格納する。また、動きベクトル格納部２２０８は、決定したＣＵレベルの動きベクトルを格納する。また、動きベクトル格納部２２０８は、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補を格納する。
【０２２５】
テンプレート探索点設定部２２０９は、テンプレート領域設定部２２０１により設定された参照画面内のＣＵレベルのテンプレート領域に対して、ＣＵレベルの複数の動きベクトル候補に応じた位置それぞれに、テンプレート領域を設定する。
【０２２６】
また、テンプレート探索点設定部２２０９は、動きベクトル格納部２２０８に格納された、ＣＵレベルの基点となる１の動きベクトル候補に基づいて、ＣＵレベルのテンプレート探索点用動きベクトルを決定する。また、テンプレート探索点設定部２２０９は、参照画面内において、ＣＵレベルのテンプレート探索点用動きベクトルに応じた位置それぞれに、テンプレート領域を設定する。
【０２２７】
また、テンプレート探索点設定部２２０９は、特定された参照画面内のＣＵのブロックにおいて、テンプレート領域設定部２２０１により設定されたｓｕｂＣＵレベルのテンプレート領域に対して、ｓｕｂＣＵレベルの複数の動きベクトル候補に応じた位置それぞれに、テンプレート領域を設定する。
【０２２８】
また、テンプレート探索点設定部２２０９は、動きベクトル格納部２２０８に格納された、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補に基づいて、ｓｕｂＣＵレベルのテンプレート探索点用動きベクトルを決定する。また、テンプレート探索点設定部２２０９は、参照画面内において、ｓｕｂＣＵレベルのテンプレート探索点用動きベクトルに応じた位置それぞれに、テンプレート領域を設定する。
【０２２９】
＜６．２  第１の実施形態に係るデコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するためのイントラ／インタ予測部の機能構成＞
続いて、第１の実施形態に係るデコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成について説明する。図２３は、第１の実施形態に係るデコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成の一例を示す図である。
【０２３０】
図２２との相違点は、図２３の場合、テンプレート領域判定部２３０１、テンプレート領域選択部２３０２を有する点である。以下、図２２との相違点を中心に説明する。
【０２３１】
テンプレート領域判定部２３０１は、復号対象のｓｕｂＣＵが所定の実行条件を満たすか否かを判定する。また、テンプレート領域判定部２３０１は、所定の実行条件を満たすか否かの判定結果を、テンプレート領域設定部２２０１に通知する。
【０２３２】
なお、テンプレート領域設定部２２０１では、テンプレート領域判定部２３０１より、所定の実行条件を満たさない旨の判定結果が通知された場合、復号中画面取得部２２０２に対して、図５を用いて説明したテンプレート領域を設定する。具体的には、復号対象のｓｕｂＣＵに隣接する上側のｓｕｂＣＵの復号画像の一部と、左側のｓｕｂＣＵの復号画像の一部を、テンプレート領域として設定する。この場合、復号中画面取得部２２０２は、復号中の画面に含まれる復号画像のうち、テンプレート領域設定部２２０１により設定されたテンプレート領域の復号画像（隣接するｓｕｂＣＵの復号画像の一部）をテンプレート領域選択部２３０２に通知する。
【０２３３】
一方、テンプレート領域判定部２３０１より、所定の実行条件を満たす旨の判定結果が通知された場合には、テンプレート領域設定部２２０１は、復号中画面取得部２２０２に対して、図１２を用いて説明したテンプレート領域を設定する。
【０２３４】
具体的には、テンプレート領域設定部２２０１は、復号対象のｓｕｂＣＵが含まれるＣＵのブロックを特定し、特定したＣＵのブロックの上側及び左側に隣接するＣＵのブロックの復号画像の一部を、テンプレート領域として設定する。この場合、復号中画面取得部２２０２は、復号中の画面に含まれる復号画像のうち、テンプレート領域設定部２２０１により設定されたテンプレート領域の復号画像（隣接するＣＵのブロックの復号画像の一部）をテンプレート領域選択部２３０２に通知する。
【０２３５】
テンプレート領域選択部２３０２は、所定の実行条件を満たさない旨の判定結果が通知されると、復号中画面取得部２２０２より通知されたテンプレート領域の復号画像（隣接するｓｕｂＣＵの復号画像の一部）を選択する。また、テンプレート領域選択部２３０２は、選択したテンプレート領域の復号画像を、マッチング部２２０４に通知する。これにより、マッチング部２２０４では、復号対象のｓｕｂＣＵについて、テンプレート領域判定部２３０１より通知された判定結果に応じたテンプレート領域の復号画像を用いて、参照画面内においてテンプレートマッチングを行うことができる。
【０２３６】
また、テンプレート領域選択部２３０２は、所定の実行条件を満たす旨の判定結果が通知されると、復号中画面取得部２２０２より通知されたテンプレート領域の復号画像（隣接するＣＵのブロックの復号画像の一部）を選択する。また、テンプレート領域選択部２３０２は、選択したテンプレート領域の復号画像を、マッチング部２２０４に通知する。これにより、マッチング部２２０４では、復号対象のｓｕｂＣＵについて、テンプレート領域判定部２３０１より通知された判定結果に応じたテンプレート領域の復号画像を用いて、参照画面内においてテンプレートマッチングを行うことができる。
【０２３７】
＜７．まとめ＞
以上の説明から明らかなように、第１の実施形態に係るエンコーダのイントラ／インタ予測部では、インタ予測モードにおいてテンプレートマッチングによるインタ予測処理を実行する際、
・復号単位（ＣＵ）のブロックを複数の矩形領域（ｓｕｂＣＵ）に分ける。
・復号対象の矩形領域が所定の実行条件を満たすか否かを判定し、所定の実行条件を満たすと判定した場合には、当該矩形領域が含まれる復号単位のブロックに隣接するブロックの復号画像の一部を、テンプレート領域として設定する。
・設定したテンプレート領域を用いて、復号単位のブロックに含まれる全ての矩形領域について、並列処理によりテンプレートマッチングを行い、各矩形領域の予測画像を出力する。
【０２３８】
これにより、第１の実施形態に係るエンコーダによれば、テンプレートマッチングによるインタ予測において、処理効率を向上させることができる。
【０２３９】
また、第１の実施形態に係るデコーダのイントラ／インタ予測部では、インタ予測モードにおいてテンプレートマッチングによるインタ予測処理を実行する際、
・復号単位（ＣＵ）のブロックを複数の矩形領域（ｓｕｂＣＵ）に分ける。
・復号対象の矩形領域が所定の実行条件を満たすか否かを判定し、所定の実行条件を満たすと判定した場合には、当該矩形領域が含まれる復号単位のブロックに隣接するブロックの復号画像の一部を、テンプレート領域として設定する。
・設定したテンプレート領域を用いて、復号単位のブロックに含まれる全ての矩形領域について、並列処理によりテンプレートマッチングを行い、各矩形領域の予測画像を出力する。
【０２４０】
これにより、第１の実施形態に係るデコーダによれば、テンプレートマッチングによるインタ予測において、処理効率を向上させることができる。
【０２４１】
［第２の実施形態］
上記第１の実施形態では、復号対象のｓｕｂＣＵが含まれる復号単位のブロックに隣接するブロックの復号画像の一部を、テンプレート領域として設定することで、処理効率の向上を実現した。これに対して、第２の実施形態では、復号対象のｓｕｂＣＵに隣接するｓｕｂＣＵの予測画像の一部を、テンプレート領域として設定することで、処理効率の向上を実現する。以下、第２の実施形態について、上記第１の実施形態との相違点を中心に説明する。
【０２４２】
＜１．第２の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングによるインタ予測処理＞
（１）復号対象の矩形領域（ｓｕｂＣＵ）及びテンプレート領域の説明
はじめに、第２の実施形態に係るエンコーダのインタ予測モードにおいて、テンプレートマッチングによるインタ予測処理を実行する場合の、復号対象の矩形領域及びテンプレート領域について説明する。図２４は、第２の実施形態に係るエンコーダのインタ予測モードにおける、復号対象の矩形領域及びテンプレート領域を説明するための図である。
【０２４３】
図１２を用いて説明したとおり、第２の実施形態に係るエンコーダにおいても、入力画面（入力フレーム）５００のうち、１２８画素×１２８画素のＣＴＵ５１０が、ＣＵのブロックに分割される。また、当該ＣＵのブロックについて、インタ予測処理が行われる（図２４参照）。
【０２４４】
ＣＵのブロック５２０は、６４画素×６４画素に分割された正方形のブロックを拡大して示したものである。図１２を用いて説明したとおり、次世代コーデックにおいては、インタ予測モードにおいて、ｓｕｂＣＵ５３０、５４０、５５０等の矩形領域が生成され、ｓｕｂＣＵを復号対象として、ｓｕｂＣＵごとに、予測画像及び復号画像が生成される。
【０２４５】
第１の実施形態と同様に、第２の実施形態に係るエンコーダも、複数のｓｕｂＣＵの予測画像及び復号画像の生成を、並列して行う。このために、第２の実施形態に係るエンコーダでは、復号対象のｓｕｂＣＵに隣接するｓｕｂＣＵの予測画像の一部を、テンプレート領域として設定する。
【０２４６】
図２４に示すように、例えば、復号対象のｓｕｂＣＵがｓｕｂＣＵ５３０であった場合、テンプレートマッチングは、
・復号対象のｓｕｂＣＵ５３０に隣接する上側のｓｕｂＣＵ５４０の予測画像の一部、
・復号対象のｓｕｂＣＵ５３０に隣接する左側のｓｕｂＣＵ５５０の予測画像の一部、
を、テンプレート領域として用いて行う。具体的には、テンプレート領域２４０１、２４０２の予測画像を用いて、復号対象のｓｕｂＣＵ５３０について、テンプレートマッチングを行う。
【０２４７】
このように、復号対象のｓｕｂＣＵに隣接するｓｕｂＣＵの予測画像の一部をテンプレート領域として設定することで、復号対象のｓｕｂＣＵのテンプレートマッチングを、隣接するｓｕｂＣＵの処理と並列して実行することが可能となる。
【０２４８】
（２）イントラ／インタ予測部の機能構成（エンコーダ）
続いて、第２の実施形態に係るエンコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成について説明する。図２５は、第２の実施形態に係るエンコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成の一例を示す図である。
【０２４９】
図１４との相違点は、図２５の場合、予測画像取得部２５０１を有する点である。以下、図１４との相違点を中心に説明する。
【０２５０】
予測画像取得部２５０１は、予測画像生成部７０８により生成された、復号対象のｓｕｂＣＵに隣接するｓｕｂＣＵの予測画像を取得する。具体的には、予測画像取得部２５０１は、テンプレート領域設定部７０３より設定されたテンプレート領域（復号対象のｓｕｂＣＵに隣接するｓｕｂＣＵの位置に設定されたテンプレート領域）の予測画像を取得する。また、予測画像取得部２５０１は、取得したテンプレート領域の予測画像を、テンプレート領域選択部１４０２に通知する。
【０２５１】
なお、テンプレート領域設定部７０３は、テンプレート領域判定部１４０１から、所定の実行条件を満たす旨の判定結果が通知された場合には、予測画像取得部２５０１に対して、図２４を用いて説明したテンプレート領域を設定する。
【０２５２】
具体的には、テンプレート領域設定部７０３は、復号対象のｓｕｂＣＵの上側に隣接するｓｕｂＣＵの予測画像の一部と、左側に隣接するｓｕｂＣＵの予測画像の一部とを、テンプレート領域として設定する。この場合、予測画像取得部２５０１は、予測画像生成部７０８により生成された予測画像のうち、テンプレート領域設定部７０３により設定されたテンプレート領域の予測画像（隣接するｓｕｂＣＵの予測画像の一部）をテンプレート領域選択部１４０２に通知する。
【０２５３】
テンプレート領域選択部１４０２は、所定の実行条件を満たさない旨の判定結果が通知されると、復号中画面取得部７０４より通知されたテンプレート領域の復号画像（隣接するｓｕｂＣＵの復号画像の一部）を選択する。また、テンプレート領域選択部１４０２は、選択したテンプレート領域の復号画像を、マッチング部７０６に通知する。これにより、マッチング部７０６では、復号対象のｓｕｂＣＵについて、テンプレート領域判定部１４０１より通知された判定結果に応じたテンプレート領域の復号画像を用いて、参照画面内においてテンプレートマッチングを行うことができる。
【０２５４】
また、テンプレート領域選択部１４０２は、所定の実行条件を満たす旨の判定結果が通知されると、予測画像取得部１４０３より通知されたテンプレート領域の予測画像（隣接するｓｕｂＣＵの予測画像の一部）を選択する。また、テンプレート領域選択部１４０２は、選択したテンプレート領域の予測画像を、マッチング部７０６に通知する。これにより、マッチング部７０６では、復号対象のｓｕｂＣＵについて、テンプレート領域判定部１４０１より通知された判定結果に応じたテンプレート領域の予測画像を用いて、参照画面内においてテンプレートマッチングを行うことができる。
【０２５５】
（３）実行条件情報
続いて、復号対象のｓｕｂＣＵについてテンプレートマッチングが実行される際に、テンプレート領域判定部１４０１が判定するテンプレートマッチングの実行条件について説明する。図２６は、第２の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングの実行条件を示す図である。
【０２５６】
図２６に示すように、実行条件情報２６００は、情報の項目として、"実行条件の判定項目"、"判定項目の閾値"、"判定理由"を含む。
【０２５７】
"実行条件の判定項目"には、復号対象のｓｕｂＣＵについて、実行条件を満たすか否かを判定するための判定項目が格納される。
【０２５８】
"判定項目の閾値"には、"実行条件の判定項目"に格納された各判定項目について、実行条件を満たすと判定するための閾値が格納される。"判定理由"には、実行条件を満たすと判定する理由が格納される。
【０２５９】
図２６の例は、"実行条件の判定項目"として、"ｓｕｂＣＵのサイズ"、"ピクチャタイプ"が格納されている。なお、"ｓｕｂＣＵのサイズ"、"ピクチャタイプ"については、上記第１の実施形態において、図１５を用いて説明済みであるため、ここでは説明を省略する。
【０２６０】
また、図２６の例は、"実行条件の判定項目"として、"ＣＵの量子化パラメータ"が含まれることを示している。当該判定項目は、復号対象のｓｕｂＣＵが含まれるＣＵのブロックの量子化パラメータが、所定の閾値以下（３０以下）であった場合、実行条件を満たすと判定される。ＣＵのブロックの量子化パラメータが"３０以下"の場合、復号画像と予測画像との差分が少ないため、予測画像を用いてテンプレート領域を設定することによる影響が抑えられるからである。
【０２６１】
そこで、第２の実施形態に係るエンコーダでは、復号対象のｓｕｂＣＵが含まれるＣＵのブロックの量子化パラメータが、"３０以下"であった場合、当該ｓｕｂＣＵに隣接するｓｕｂＣＵの予測画像の一部をテンプレート領域として設定する。これにより、第２の実施形態に係るエンコーダでは、複数のｓｕｂＣＵのテンプレートマッチングを並列に実行する並列処理を実現することができる。
【０２６２】
また、図２６の例は、"実行条件の判定項目"として、"ＣＵレベルの動きベクトル"が含まれることを示している。当該判定項目は、復号対象のｓｕｂＣＵが含まれるＣＵのブロックについてのＣＵレベルの動きベクトルの絶対値が所定の画素数以下（"１画素以下"）であった場合、実行条件を満たすと判定される。ＣＵレベルの動きベクトルの絶対値が１画素以下とは、当該ＣＵのブロックが静止領域のブロックであることを示しており、この場合、予測画像がそのまま復号画像となることが多いからである。
【０２６３】
そこで、第２の実施形態に係るエンコーダでは、復号対象のｓｕｂＣＵが含まれるＣＵのブロックについてのＣＵレベルの動きベクトルが、"１画素以下"であった場合、当該ｓｕｂＣＵに隣接するｓｕｂＣＵの予測画像の一部をテンプレート領域として設定する。これにより、第２の実施形態に係るエンコーダでは、複数のｓｕｂＣＵのテンプレートマッチングを並列に実行する並列処理を実現することができる。
【０２６４】
（４）インタ予測処理の流れ（ｓｕｂＣＵレベル動き探索処理の流れ）
続いて、第２の実施形態に係るエンコーダのインタ予測モードにおける、テンプレートマッチングによるインタ予測処理の流れについて説明する。なお、第２の実施形態に係るエンコーダのインタ予測モードの場合も、第１の実施形態と同様、テンプレートマッチングによるインタ予測処理の全体の流れは、図８と同じであるため、ここでは説明を省略する。
【０２６５】
また、第２の実施形態に係るエンコーダのインタ予測モードの場合、図８の各工程のうち、図９において詳細を説明した、図８のステップＳ８０１（ＣＵレベルの動き探索処理）の流れも同じである。このため、ここでは説明を省略し、図８の各工程のうちステップＳ８０２（ｓｕｂＣＵレベルの動き探索処理）について説明する。
【０２６６】
図２７は、第２の実施形態に係るエンコーダのインタ予測モードにおける、ｓｕｂＣＵレベルの動き探索処理の流れを示すフローチャートである。図１０との相違点は、ステップＳ２７０１からステップＳ２７０２である。
【０２６７】
ステップＳ２７０１において、テンプレート領域判定部１４０１は、復号対象のｓｕｂＣＵが実行条件情報２６００に示す実行条件を満たすか否かを判定する。ステップＳ２７０１において、実行条件を満たすと判定した場合には（ステップＳ２７０１においてＹＥＳの場合には）、ステップＳ２７０２に進む。
【０２６８】
ステップＳ２７０２において、予測画像取得部２５０１は、予測画像生成部７０８より、復号対象のｓｕｂＣＵに隣接する上側のｓｕｂＣＵ及び左側のｓｕｂＣＵの予測画像を取得する。なお、復号対象のｓｕｂＣＵに隣接する上側のｓｕｂＣＵまたは左側のｓｕｂＣＵについて、既に復号画像が生成されている場合には、復号中画面取得部７０４が復号対象のｓｕｂＣＵに隣接する上側のｓｕｂＣＵまたは左側のｓｕｂＣＵの復号画像を取得してもよい。また、テンプレート領域選択部１４０２は、復号対象のｓｕｂＣＵに隣接するｓｕｂＣＵの予測画像または復号画像の一部を、テンプレート領域の画像として選択する。
【０２６９】
（５）ｓｕｂＣＵごとの処理のタイミングチャート
続いて、第２の実施形態に係るエンコーダのインタ予測モードにおける、ｓｕｂＣＵごとの処理内容と処理タイミングとについて説明する。図２８は、第２の実施形態に係るエンコーダのインタ予測モードにおける、ｓｕｂＣＵごとの処理内容及び処理タイミングを示す図である。
【０２７０】
このうち、図２８（ａ）は、復号対象の各ｓｕｂＣＵが含まれるＣＵのブロックの一例を示している。図２８（ａ）の例は、復号対象のｓｕｂＣＵが含まれるＣＵのブロックが、"ＣＵｎ"であり、当該ＣＵのブロックには、４つのｓｕｂＣＵ（"ｓｕｂ０"、"ｓｕｂ１"、"ｓｕｂ２"、"ｓｕｂ３"）の領域が含まれることを示している。また、図２８（ａ）の例は、"ＣＵｎ"に隣接する上側のＣＵのブロック及び左側のＣＵのブロックについては、いずれも、復号画像が生成されていることを示している。また、図２８（ａ）の例は、当該隣接するＣＵのブロックの復号画像の一部が、テンプレート領域１１０１〜１１１２として設定されていることを示している。
【０２７１】
図２８（ｂ）は、"ＣＵｎ"に含まれる４つのｓｕｂＣＵについて、イントラ／インタ予測部４０９が処理を実行する際の処理タイミングを示した図である。図１１（ｂ）同様、図２８（ｂ）の例では、イントラ／インタ予測部４０９が実行する処理を、
・ＣＵレベルの動きベクトル候補の設定と基点となる１の動きベクトル候補の決定、
・ＣＵレベルの動きベクトルの決定、
・ｓｕｂＣＵレベルの動きベクトル候補の設定と基点となる１の動きベクトル候補の決定、
・ｓｕｂＣＵレベルの動きベクトルの決定、
・ｓｕｂＣＵレベルの予測画像の生成、
・ｓｕｂＣＵレベルの復号画像の取得、
に分けて示している。なお、図２８（ｂ）の例では、紙面の都合上、処理タイミング＝"Ｔｍ"〜"Ｔｍ＋７"までを示している。また、ここでは、復号対象のｓｕｂＣＵが実行条件情報２６００に定義された実行条件を満たしているものとして説明する。
【０２７２】
図２８（ｂ）に示すように、処理タイミング＝"Ｔｍ"において、"ＣＵｎ"について、ＣＵレベルの動きベクトル候補に応じた位置それぞれにテンプレート領域が設定され、ＣＵレベルの基点となる１の動きベクトル候補が決定される。続いて、処理タイミング＝"Ｔｍ＋１"において、"ＣＵｎ"について、ＣＵレベルの動きベクトルが決定される。
【０２７３】
続いて、処理タイミング"Ｔｍ＋２"において、"ｓｕｂＣＵ０"について、ｓｕｂＣＵレベルの動きベクトル候補が設定され、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補が決定される。
【０２７４】
続いて、処理タイミング"Ｔｍ＋３"において、"ｓｕｂＣＵ０"について、ｓｕｂＣＵレベルの動きベクトルが決定される。なお、"ｓｕｂＣＵ０"の動きベクトルの決定に際しては、テンプレート領域１１０１、１１１１の復号画像が用いられる。ここで、"ｓｕｂＣＵ０"について、ｓｕｂＣＵレベルの動きベクトルが決定されると、"ｓｕｂＣＵ１"及び"ｓｕｂＣＵ２"について、ｓｕｂＣＵレベルの動きベクトル候補に応じた位置それぞれにテンプレート領域を設定することが可能となる。
【０２７５】
そこで、処理タイミング＝"Ｔｍ＋４"において、"ｓｕｂＣＵ１"及び"ｓｕｂＣＵ２"について、ｓｕｂＣＵレベルの動きベクトル候補に応じた位置それぞれにテンプレート領域が設定され、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補が決定される。また、処理タイミング＝"Ｔｍ＋４"では、並行して、"ｓｕｂＣＵ０"について予測画像が生成され、出力される。
【０２７６】
ここで、"ｓｕｂＣＵ０"について、予測画像が生成されると、"ｓｕｂＣＵ１"及び"ｓｕｂＣＵ２"について、ｓｕｂＣＵレベルの動きベクトルを決定することが可能となる。
【０２７７】
そこで、処理タイミング＝"Ｔｍ＋５"において、"ｓｕｂＣＵ１"及び"ｓｕｂＣＵ２"について、ｓｕｂＣＵレベルの動きベクトルが決定される。なお、"ｓｕｂＣＵ１"の動きベクトルの決定に際しては、テンプレート領域１１０２の復号画像とテンプレート領域２８０１の予測画像とが用いられる。また、"ｓｕｂＣＵ２"の動きベクトルの決定に際しては、テンプレート領域２８０２の予測画像と、テンプレート領域１１１２の復号画像とが用いられる。
【０２７８】
また、予測画像が出力されたことで復号画像が生成されているため、処理タイミング＝"Ｔｍ＋５"では、並行して、"ｓｕｂＣＵ０"について生成された復号画像が取得される。
【０２７９】
なお、"ｓｕｂＣＵ１"及び"ｓｕｂＣＵ２"について、ｓｕｂＣＵレベルの動きベクトルが決定されると、"ｓｕｂＣＵ３"について、ｓｕｂＣＵレベルの動きベクトル候補に応じた位置それぞれにテンプレート領域を設定することが可能となる。
【０２８０】
そこで、処理タイミング＝"Ｔｍ＋６"において、"ｓｕｂＣＵ３"について、ｓｕｂＣＵレベルの動きベクトル候補に応じた位置それぞれにテンプレート領域が設定され、ｓｕｂＣＵレベルの基点となる１の動きベクトル候補が決定される。また、処理タイミング＝"Ｔｍ＋６"では、並行して、"ｓｕｂＣＵ１"及び"ｓｕｂＣＵ２"について予測画像が生成され、出力される。
【０２８１】
ここで、"ｓｕｂＣＵ１"及び"ｓｕｂＣＵ２"について、予測画像が生成されると、"ｓｕｂＣＵ３"について、ｓｕｂＣＵレベルの動きベクトルを決定することが可能となる。
【０２８２】
そこで、処理タイミング＝"Ｔｍ＋７"において、"ｓｕｂＣＵ３"について、ｓｕｂＣＵレベルの動きベクトルが決定される。"ｓｕｂＣＵ３"の動きベクトルの決定に際しては、テンプレート領域２８０３の予測画像と、テンプレート領域２８０４の予測画像とが用いられる。
【０２８３】
また、予測画像が出力されたことで復号画像が生成されるため、処理タイミング＝"Ｔｍ＋７"では、並行して、"ｓｕｂＣＵ１"及び"ｓｕｂＣＵ２"について生成された復号画像が取得される。
【０２８４】
このように、第２の実施形態に係るエンコーダによれば、複数のｓｕｂＣＵについて並列処理が実行可能となり、処理効率を向上させることができる。この結果、処理タイミング＝"Ｔｍ"〜"Ｔｍ＋９"の間に、"ＣＵｎ"に含まれる４つのｓｕｂＣＵについて復号画像を生成することができる。
【０２８５】
（６）並列処理の具体例（その１）
続いて、第２の実施形態に係るエンコーダのインタ予測モードにおいて、複数のｓｕｂＣＵについて実行される並列処理の具体例について説明する。図２９は、第２の実施形態に係るエンコーダのインタ予測モードにおける、並列処理の具体例を示す第１の図である。図２９の例は、１２８画素×１２８画素のＣＴＵ５１０を分割することで生成された、８画素×８画素のＣＵのブロック１８００に含まれるｓｕｂＣＵについて実行される並列処理を示している（ｓｕｂＣＵのサイズが４画素×４画素であるため、並列処理が実行される）。
【０２８６】
図２９の例では、ＣＵのブロック１８００を４つのｓｕｂＣＵに分けている。また、図２９の例では、４つのｓｕｂＣＵ２９０１〜２９０４それぞれについて、下記のようにテンプレート領域を設定する。
・ｓｕｂＣＵ２９０１：ｓｕｂＣＵ２９０１に隣接する上側のｓｕｂＣＵの復号画像の一部と、ｓｕｂＣＵ２９０１に隣接する左側のｓｕｂＣＵの復号画像の一部とを、テンプレート領域１８０１、１８１１として設定する。
・ｓｕｂＣＵ２９０２：ｓｕｂＣＵ２９０２に隣接する上側のｓｕｂＣＵの復号画像の一部と、ｓｕｂＣＵ２９０２に隣接する左側のｓｕｂＣＵ２９０１の予測画像の一部とをテンプレート領域１８０２、２９１１として設定する。
・ｓｕｂＣＵ２９０３：ｓｕｂＣＵ２９０３に隣接する上側のｓｕｂＣＵ２９０１の予測画像の一部と、ｓｕｂＣＵ２９０３に隣接する左側のｓｕｂＣＵの復号画像の一部とを、テンプレート領域２９１２、１８１２として設定する。
・ｓｕｂＣＵ２９０４：ｓｕｂＣＵ２９０４に隣接する上側のｓｕｂＣＵ２９０２の予測画像の一部と、ｓｕｂＣＵ２９０４に隣接する左側のｓｕｂＣＵ２９０３の予測画像の一部とを、テンプレート領域２９１３、２９１４として設定する。
【０２８７】
これにより、ＣＵのブロック１８００に含まれる４つのｓｕｂＣＵ２９０１〜２９０４のうち、例えば、ｓｕｂＣＵ２９０２及びｓｕｂＣＵ２９０３のテンプレートマッチングを、ｓｕｂＣＵ２９０１の処理と並列して実行することが可能となる。
【０２８８】
（７）並列処理の具体例（その２）
図３０は、第２の実施形態に係るエンコーダのインタ予測モードにおける、並列処理の具体例を示す第２の図である。図３０の例は、１２８画素×１２８画素のＣＴＵ５１０を分割することで生成された、６４画素×６４画素のＣＵのブロック１９００に含まれるｓｕｂＣＵについて実行される並列処理を示している（例えば、ＣＵのブロック１９００の量子化パラメータが３０以下であることで、並列処理が実行されるものとする）。
【０２８９】
図３０の例では、ＣＵのブロック１９００を１６個のｓｕｂＣＵに分けている。また、図３０の例では、１６個のｓｕｂＣＵそれぞれについて、ｓｕｂＣＵに隣接する上側のｓｕｂＣＵの復号画像または予測画像の一部、左側のｓｕｂＣＵの復号画像または予測画像の一部をそれぞれテンプレート領域として設定する。
【０２９０】
例えば、ｓｕｂＣＵ３００１の場合、ｓｕｂＣＵ３００１に隣接する上側のｓｕｂＣＵの復号画像の一部を、テンプレート領域１９０１として設定し、ｓｕｂＣＵ３００１に隣接する左側のｓｕｂＣＵの復号画像の一部を、テンプレート領域１９１１として設定する。
【０２９１】
これにより、例えば、ｓｕｂＣＵ３００２及びｓｕｂＣＵ３００５のテンプレートマッチングを、ｓｕｂＣＵ３００１の処理と並列して実行することが可能となる。更に、ｓｕｂＣＵ３００２及びｓｕｂＣＵ３００５の処理と並列して、例えば、ｓｕｂＣＵ３００３、３００６、３００９のテンプレートマッチングを実行することが可能となる。
【０２９２】
（８）並列処理の具体例（その３）
図３１は、第２の実施形態に係るエンコーダのインタ予測モードにおける、並列処理の具体例を示す第３の図である。図３１の例は、１２８画素×１２８画素のＣＴＵ５１０を分割することで生成された８画素×４画素のＣＵのブロック２００１〜２００４を処理する場合を示している。
【０２９３】
図３１の例では、ＣＵのブロック２００１〜２００４それぞれを、２つのｓｕｂＣＵに分けている。このため、ｓｕｂＣＵのサイズが４画素×４画素となり、２つのｓｕｂＣＵについて並列処理が実行される。
【０２９４】
符号３１１０は、ＣＵのブロック２００１〜２００４に含まれる各ｓｕｂＣＵについて、テンプレート領域を設定していく様子を時系列で示したものであり、下から上に向かって時間軸が進むことを示している。
【０２９５】
符号３１１０に示すように、ＣＵのブロック２００１に含まれる２つのｓｕｂＣＵのうち、左側のｓｕｂＣＵの上側に隣接するｓｕｂＣＵの復号画像の一部、及び、左側に隣接するｓｕｂＣＵの復号画像の一部を、テンプレート領域２０１１、２０２１として設定する。また、ＣＵのブロック２００１に含まれる２つのｓｕｂＣＵのうち、右側のｓｕｂＣＵの上側に隣接するｓｕｂＣＵの復号画像の一部、及び、左側に隣接するｓｕｂＣＵの予測画像の一部を、テンプレート領域２０１２、３１２１として設定する。
【０２９６】
これにより、ＣＵのブロック２００１に含まれる２つのｓｕｂＣＵのうち、右側のｓｕｂＣＵのテンプレートマッチングを、左側のｓｕｂＣＵの処理と並列して実行することが可能となる。
【０２９７】
ＣＵのブロック２００１に含まれる２つのｓｕｂＣＵが並列処理されることで、当該ｓｕｂＣＵについて復号画像が生成されると、続いて、ＣＵのブロック２００２の処理に移行する。具体的には、ＣＵのブロック２００２に含まれる２つのｓｕｂＣＵのうち、左側のｓｕｂＣＵの上側に隣接するｓｕｂＣＵの復号画像の一部、及び、左側に隣接するｓｕｂＣＵの復号画像の一部を、テンプレート領域２０１３、２０２２として設定する。また、ＣＵのブロック２００２に含まれる２つのｓｕｂＣＵのうち、右側のｓｕｂＣＵの上側に隣接するｓｕｂＣＵの復号画像の一部、及び、左側に隣接するｓｕｂＣＵの予測画像の一部を、テンプレート領域２０１４、３１２２として設定する。
【０２９８】
これにより、ＣＵのブロック２００２に含まれる２つのｓｕｂＣＵのうち、右側のｓｕｂＣＵのテンプレートマッチングを、左側のｓｕｂＣＵの処理と並列して実行することが可能となる。
【０２９９】
ＣＵのブロック２００２に含まれる２つのｓｕｂＣＵが並列処理されることで、当該ｓｕｂＣＵについて復号画像が生成されると、続いて、ＣＵのブロック２００３の処理に移行する。具体的には、ＣＵのブロック２００３に含まれる２つのｓｕｂＣＵのうち、左側のｓｕｂＣＵの上側に隣接するｓｕｂＣＵの復号画像の一部、及び、左側に隣接するｓｕｂＣＵの復号画像の一部を、テンプレート領域２０１５、２０２３として設定する。また、ＣＵのブロック２００３に含まれる２つのｓｕｂＣＵのうち、右側のｓｕｂＣＵの上側に隣接するｓｕｂＣＵの復号画像の一部、及び、左側に隣接するｓｕｂＣＵの予測画像の一部を、テンプレート領域２０１６、３１２３として設定する。
【０３００】
これにより、ＣＵのブロック２００３に含まれる２つのｓｕｂＣＵのうち、右側のｓｕｂＣＵのテンプレートマッチングを、左側のｓｕｂＣＵの処理と並列して実行することが可能となる。
【０３０１】
ＣＵのブロック２００３に含まれる２つのｓｕｂＣＵが並列処理されることで、当該ｓｕｂＣＵについて復号画像が生成されると、続いて、ＣＵのブロック２００４の処理に移行する。具体的には、ＣＵのブロック２００４に含まれる２つのｓｕｂＣＵのうち、左側のｓｕｂＣＵの上側に隣接するｓｕｂＣＵの復号画像の一部、及び、左側に隣接するｓｕｂＣＵの復号画像の一部を、テンプレート領域２０１７、２０２４として設定する。また、ＣＵのブロック２００４に含まれる２つのｓｕｂＣＵのうち、右側のｓｕｂＣＵの上側に隣接するｓｕｂＣＵの復号画像の一部、及び、左側に隣接するｓｕｂＣＵの予測画像の一部を、テンプレート領域２０１８、３１２４として設定する。
【０３０２】
これにより、ＣＵのブロック２００４に含まれる２つのｓｕｂＣＵのうち、右側のｓｕｂＣＵのテンプレートマッチングを、左側のｓｕｂＣＵの処理と並列して実行することが可能となる。
【０３０３】
＜２．第２の実施形態に係るデコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するためのイントラ／インタ予測部の機能構成＞
続いて、第２の実施形態に係るデコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成について説明する。図３２は、第２の実施形態に係るデコーダのインタ予測モードで、テンプレートマッチングによるインタ予測処理を実現するための機能構成の一例を示す図である。
【０３０４】
図２３との相違点は、図３２の場合、予測画像取得部３２０１を有する点である。以下、図２３との相違点を中心に説明する。
【０３０５】
予測画像取得部３２０１は、予測画像生成部２２０７により生成された、復号対象のｓｕｂＣＵに隣接するｓｕｂＣＵの予測画像を取得する。具体的には、予測画像取得部３２０１は、テンプレート領域設定部２２０１より設定されたテンプレート領域（復号対象のｓｕｂＣＵに隣接するｓｕｂＣＵの位置に設定されたテンプレート領域）の予測画像を取得する。また、予測画像取得部３２０１は、取得したテンプレート領域の予測画像を、テンプレート領域選択部２３０２に通知する。
【０３０６】
なお、テンプレート領域設定部２２０１は、テンプレート領域判定部２３０１から、所定の実行条件を満たす旨の判定結果が通知された場合には、予測画像取得部３２０１に対して、図２４を用いて説明したテンプレート領域を設定する。
【０３０７】
具体的には、テンプレート領域設定部２２０１は、復号対象のｓｕｂＣＵの上側に隣接するｓｕｂＣＵの予測画像の一部と、左側に隣接するｓｕｂＣＵの予測画像の一部とを、テンプレート領域として設定する。この場合、予測画像取得部３２０１は、予測画像生成部２２０７により生成された予測画像のうち、テンプレート領域設定部２２０１により設定されたテンプレート領域の予測画像（隣接するｓｕｂＣＵの予測画像の一部）をテンプレート領域選択部２３０２に通知する。
【０３０８】
テンプレート領域選択部２３０２は、所定の実行条件を満たさない旨の判定結果が通知されると、復号中画面取得部２２０２より通知されたテンプレート領域の復号画像（隣接するｓｕｂＣＵの復号画像の一部）を選択する。また、テンプレート領域選択部２３０２は、選択したテンプレート領域の復号画像を、マッチング部２２０４に通知する。これにより、マッチング部２２０４では、復号対象のｓｕｂＣＵについて、テンプレート領域判定部２３０１より通知された判定結果に応じたテンプレート領域の復号画像を用いて、参照画面内においてテンプレートマッチングを行うことができる。
【０３０９】
また、テンプレート領域選択部２３０２は、所定の実行条件を満たす旨の判定結果が通知されると、予測画像取得部３２０１より通知されたテンプレート領域の予測画像（隣接するｓｕｂＣＵの予測画像の一部）を選択する。また、テンプレート領域選択部２３０２は、選択したテンプレート領域の予測画像を、マッチング部２２０４に通知する。これにより、マッチング部２２０４では、復号対象のｓｕｂＣＵについて、テンプレート領域判定部２３０１より通知された判定結果に応じたテンプレート領域の予測画像を用いて、参照画面内においてテンプレートマッチングを行うことができる。
【０３１０】
＜３．まとめ＞
以上の説明から明らかなように、第２の実施形態に係るエンコーダのイントラ／インタ予測部では、インタ予測モードにおいてテンプレートマッチングによるインタ予測処理を実行する際、
・復号単位のブロック（ＣＵ）を複数の矩形領域（ｓｕｂＣＵ）に分ける。
・復号対象の矩形領域が所定の実行条件を満たすか否かを判定し、所定の実行条件を満たすと判定した場合には、当該矩形領域に隣接する矩形領域の予測画像の一部をテンプレート領域として設定する。
・設定したテンプレート領域を用いて、復号単位のブロックに含まれる一部の矩形領域について、並列処理によりテンプレートマッチングを行い、各矩形領域の予測画像を出力する。
【０３１１】
これにより、第２の実施形態に係るエンコーダによれば、テンプレートマッチングによるインタ予測において、処理効率を向上させることができる。
【０３１２】
また、第２の実施形態に係るデコーダのイントラ／インタ予測部では、インタ予測モードにおいてテンプレートマッチングによるインタ予測処理を実行する際、
・復号単位のブロック（ＣＵ）を複数の矩形領域（ｓｕｂＣＵ）に分ける。
・復号対象の矩形領域が所定の実行条件を満たすか否かを判定し、所定の実行条件を満たすと判定した場合には、当該矩形領域に隣接する矩形領域の予測画像の一部を、テンプレート領域として設定する。
・設定したテンプレート領域を用いて、復号単位のブロックに含まれる一部の矩形領域について、並列処理によりテンプレートマッチングを行い、各矩形領域の予測画像を出力する。
【０３１３】
これにより、第２の実施形態に係るデコーダによれば、テンプレートマッチングによるインタ予測において、処理効率を向上させることができる。
【０３１４】
［第３の実施形態］
上記第１の実施形態では、テンプレートマッチングによるインタ予測処理において、所定の実行条件を満たす場合に、復号対象のｓｕｂＣＵが含まれるＣＵのブロックに隣接するＣＵのブロックの復号画像の一部をテンプレート領域として設定する機能について説明した。
【０３１５】
また、上記第２の実施形態では、テンプレートマッチングによるインタ予測処理を実行する際、所定の実行条件を満たす場合に、復号対象のｓｕｂＣＵに隣接するｓｕｂＣＵの予測画像の一部をテンプレート領域として設定する機能について説明した。
【０３１６】
これに対して、第３の実施形態では、上記第１の実施形態において説明した機能と、上記第２の実施形態において説明した機能とをエンコーダ及びデコーダにそれぞれ配し、両機能を切り替えて実行する構成について説明する。以下、第３の実施形態について、上記第２の実施形態との相違点を中心に説明する。
【０３１７】
＜１．インタ予測処理の流れ（ｓｕｂＣＵレベルの動き探索処理の流れ）＞
図３３は、第３の実施形態に係るエンコーダのインタ予測モードにおける、ｓｕｂＣＵレベルの動き探索処理の流れを示すフローチャートである。図２７との相違点は、ステップＳ３３０１、Ｓ３３０２、Ｓ１６０２、Ｓ２７０２、Ｓ１６０３である。
【０３１８】
ステップＳ３３０１において、テンプレート領域判定部１４０１は、復号対象のｓｕｂＣＵが第１の実行条件を満たすか否かを判定する。なお、第１の実行条件とは、例えば、実行条件情報１５００に規定された実行条件のいずれかを指すものとする。
【０３１９】
ステップＳ３３０１において、第１の実行条件を満たすと判定した場合には（ステップＳ３３０１においてＹＥＳの場合には）、ステップＳ１６０２に進む。
【０３２０】
ステップＳ１６０２において、テンプレート領域設定部７０３は、復号対象のｓｕｂＣＵが含まれるＣＵのブロックに隣接するＣＵのブロックの復号画像の一部を、テンプレート領域として設定する。
【０３２１】
一方、ステップＳ３３０１において、第１の実行条件を満たさないと判定した場合には（ステップＳ３３０１においてＮＯの場合には）、ステップＳ３３０２に進む。ステップＳ３３０２において、テンプレート領域判定部１４０１は、復号対象のｓｕｂＣＵが第２の実行条件を満たすか否かを判定する。なお、第２の実行条件とは、例えば、実行条件情報２７００に規定された実行条件のうち、実行条件情報１５００と重複しない実行条件のいずれかを指すものとする。
【０３２２】
ステップＳ３３０２において、第２の実行条件を満たすと判定した場合には（ステップＳ３３０２においてＹＥＳの場合には）、ステップＳ２７０２に進む。ステップＳ２７０２において、予測画像取得部２５０１は、予測画像生成部７０８より、復号対象のｓｕｂＣＵに隣接する上側のｓｕｂＣＵ及び左側のｓｕｂＣＵの予測画像または復号画像を取得する。また、テンプレート領域選択部１４０２は、復号対象のｓｕｂＣＵに隣接するｓｕｂＣＵの予測画像または復号画像の一部を、テンプレート領域として設定する。
【０３２３】
一方、ステップＳ３３０２において、第２の実行条件を満たさないと判定した場合には（ステップＳ３３０２においてＮＯの場合には）、ステップＳ１６０３に進む。ステップＳ１６０３において、テンプレート領域設定部７０３は、復号対象のｓｕｂＣＵに隣接するｓｕｂＣＵの復号画像の一部を、テンプレート領域として設定する。
【０３２４】
＜２．まとめ＞
以上の説明から明らかなように、第３の実施形態に係るエンコーダ及びデコーダのイントラ／インタ予測部は、インタ予測モードにおいてテンプレートマッチングによるインタ予測処理を実行する際、
・復号画像の矩形領域が第１の実行条件を満たすか否かを判定し、第１の実行条件を満たすと判定した場合には、当該矩形領域が含まれる復号単位のブロックに隣接するブロックの復号画像の一部を、テンプレート領域として設定する。
・復号画像の矩形領域が第２の実行条件を満たすか否かを判定し、第２の実行条件を満たすと判定した場合には、当該矩形領域に隣接する矩形領域の予測画像の一部を、テンプレート領域として設定する。
【０３２５】
これにより、第３の実施形態に係るエンコーダ及びデコーダによれば、復号対象のｓｕｂＣＵの属性に応じたテンプレート領域を設定して、テンプレートマッチングによるインタ予測処理を実行することが可能となる。
【０３２６】
この結果、第３の実施形態に係るエンコーダ及びデコーダによれば、テンプレートマッチングによるインタ予測において、処理効率を向上させることができる。
【０３２７】
［その他の実施形態］
上記第１の実施形態では、所定のブロックが、復号対象のｓｕｂＣＵが含まれる復号単位（ＣＵ）のブロックであるとして説明した。しかしながら、所定のブロックはＣＵのブロックに限定されない。復号対象のｓｕｂＣＵが含まれるブロックであれば、ＣＵより小さいブロックであっても、ＣＵより大きいブロックであってもよい。
【０３２８】
ただし、復号対象のｓｕｂＣＵについて処理を開始するにあたっては、所定のブロックの上側に隣接するブロック及び左側に隣接するブロックについて復号画像の生成が完了していることが前提となる。
【０３２９】
また、エンコーダ１１０において予め所定のブロックを定義しておき、データストリームを出力する際、付帯情報に、所定のブロックを示す情報を含めるように構成することが前提となる。これにより、デコーダ１２０では、付帯情報に基づいて、所定のブロックを認識することが可能となるからである。
【０３３０】
また、上記第１乃至第３の実施形態では、図１５の実行条件情報１５００または図２６の実行条件情報２６００に規定された実行条件に基づいて判定を行うものとして説明した。しかしながら、判定に用いる実行条件は、これに限定されず、実行条件情報１５００または実行条件情報２６００に規定されていない他の所定の実行条件に基づいて判定を行ってもよいことはいうまでもない。
【０３３１】
また、上記第１乃至第３の実施形態では、エンコーダ１１０及びデコーダ１２０それぞれにおいて、図１５の実行条件情報１５００または図２６の実行条件情報２６００に規定された全ての実行条件に基づいて判定を行うものとして説明した。
【０３３２】
しかしながら、エンコーダ１１０及びデコーダ１２０では、いずれかの実行条件に基づいて判定を行うように構成してもよい。この場合、デコーダ１２０は、エンコーダ１１０において判定に用いた実行条件を認識する必要があるため、エンコーダ１１０は、判定に用いた実行条件をシンタクスとして付帯情報に含めてデコーダ１２０に送信する。
【０３３３】
例えば、エンコーダ１１０では、実行条件の判定項目＝"ピクチャタイプ"の場合、シーケンスレベルシンタクスとして、
・fruc_parallel_merge_tid_minus1：０〜５
を付帯情報に含めてデコーダ１２０に送信する。なお、"０〜５"は、ピクチャの階層レベルを表しており、"０"の場合は、"ＯＦＦ"を表している。
【０３３４】
また、エンコーダ１１０では、実行条件の判定項目＝"ｓｕｂＣＵのサイズ"の場合、ピクチャレベルシンタクスとして、
・log2_fruc_parallel_merge_size_minus2：０〜５
を付帯情報に含めてデコーダ１２０に送信する。なお、"０"は４画素×４画素以下を、"１"は８画素×８画素以下を、"２"は１６画素×１６画素以下を、"３"は３２画素×３２画素以下を、"４"は６４画素×６４画素以下を、"５"は１２８画素×１２８画素以下をそれぞれ表している。
【０３３５】
また、エンコーダ１１０では、実行条件の判定項目＝"ＣＵの量子化パラメータ"の場合、ピクチャレベルシンタクスとして、
・fruc_parallel_merge_qp_minus1：０〜６４
を付帯情報に含めてデコーダ１２０に送信する。なお、"０"の場合は、"ＯＦＦ"を表している。
【０３３６】
更に、エンコーダ１１０では、実行条件の判定項目＝"ＣＵレベルの動きベクトル"の場合、ピクチャレベルシンタクスとして、
・fruc_parallel_merge_cu_mv_minus1：０〜５１１
を付帯情報に含めてデコーダ１２０に送信する。
【０３３７】
また、上記第３の実施形態では、第１の実行条件を満たす場合には、隣接するＣＵの復号画像の一部をテンプレート領域として設定し、第２の実行条件を満たす場合には、隣接するｓｕｂＣＵの予測画像の一部をテンプレート領域として設定するものとした。つまり、テンプレート領域は、隣接するＣＵの復号画像の一部または隣接するｓｕｂＣＵの予測画像の一部のいずれかを設定するものとした。
【０３３８】
しかしながら、テンプレート領域の設定方法はこれに限定されず、例えば、隣接するＣＵの予測画像の一部を設定するように構成してもよい。
【０３３９】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０３４０】
１００              ：画像処理システム
１１０              ：エンコーダ
１２０              ：デコーダ
４０９              ：イントラ／インタ予測部
５２０              ：ＣＵのブロック
５３０〜５５０      ：ｓｕｂＣＵ
５４１、５４２      ：テンプレート領域
６１０              ：画面
６２０              ：画面
７０１              ：動き探索処理部
７０２              ：コスト判定部
７０３              ：テンプレート領域設定部
７０４              ：復号中画面取得部
７０５              ：参照画面取得部
７０６              ：マッチング部
７０７              ：動きベクトル算出部
７０８              ：予測画像生成部
７０９              ：動きベクトル格納部
７１０              ：テンプレート探索点設定部
１１０１、１１０２  ：テンプレート領域
１１１１、１１１２  ：テンプレート領域
１１３１            ：テンプレート領域
１２０１、１２０２  ：テンプレート領域
１２１１〜１２１３  ：テンプレート領域
１４０１            ：テンプレート領域判定部
１４０２            ：テンプレート領域選択部
１５００            ：実行条件情報
２１０６            ：イントラ／インタ予測部
２２０１            ：テンプレート領域設定部
２２０２            ：復号中画面取得部
２２０３            ：参照画面取得部
２２０４            ：マッチング部
２２０５            ：動きベクトル算出部
２２０７            ：予測画像生成部
２２０８            ：動きベクトル格納部
２２０９            ：テンプレート探索点設定部
２３０１            ：テンプレート領域判定部
２３０２            ：テンプレート領域選択部
２４０１、２４０２  ：テンプレート領域
２５０１            ：予測画像取得部
２６００            ：実行条件情報
２８０１〜２８０４  ：テンプレート領域
３２０１            ：予測画像取得部
【図１】
2019187096.tif 000003
【図２】
2019187096.tif 000004
【図３】
2019187096.tif 000005
【図４】
2019187096.tif 000006
【図５】
2019187096.tif 000007
【図６】
2019187096.tif 000008
【図７】
2019187096.tif 000009
【図８】
2019187096.tif 000010
【図９】
2019187096.tif 000011
【図１０】
2019187096.tif 000012
【図１１】
2019187096.tif 000013
【図１２】
2019187096.tif 000014
【図１３】
2019187096.tif 000015
【図１４】
2019187096.tif 000016
【図１５】
2019187096.tif 000017
【図１６】
2019187096.tif 000018
【図１７】
2019187096.tif 000019
【図１８】
2019187096.tif 000020
【図１９】
2019187096.tif 000021
【図２０】
2019187096.tif 000022
【図２１】
2019187096.tif 000023
【図２２】
2019187096.tif 000024
【図２３】
2019187096.tif 000025
【図２４】
2019187096.tif 000026
【図２５】
2019187096.tif 000027
【図２６】
2019187096.tif 000028
【図２７】
2019187096.tif 000029
【図２８】
2019187096.tif 000030
【図２９】
2019187096.tif 000031
【図３０】
2019187096.tif 000032
【図３１】
2019187096.tif 000033
【図３２】
2019187096.tif 000034
【図３３】
2019187096.tif 000035
【国際調査報告】
2019187096.tif 000036
2019187096.tif 000037
2019187096.tif 000038
2019187096.tif 000039
2019187096.tif 000040
2019187096.tif 000041
2019187096.tif 000042
2019187096.tif 000043