(57)【要約】  本技術は、より迅速に動き情報を得ることができるようにする画像処理装置および方法に関する。画像処理装置は、複数の動きベクトルの候補のうちの所定の上限数の動きベクトルの候補に基づいて、処理対象のブロックを含む画像とは異なる時刻の参照画像を用いてブロックの動きベクトルを導出する予測部を備える。本技術は画像符号化装置および画像復号装置に適用することができる。
2018163858.tif 000002
【特許請求の範囲】
【請求項１】
複数の動きベクトルの候補のうちの所定の上限数の前記動きベクトルの候補に基づいて、処理対象のブロックを含む画像とは異なる時刻の参照画像を用いて前記ブロックの動きベクトルを導出する予測部を備える
画像処理装置。
【請求項２】
前記予測部は、前記参照画像を用いたブロックマッチングにより前記動きベクトルを導出する
請求項１に記載の画像処理装置。
【請求項３】
前記予測部は、前記ブロックを含む前記画像と前記参照画像とに基づくテンプレートマッチングにより前記動きベクトルを導出する
請求項１に記載の画像処理装置。
【請求項４】
前記予測部は、互いに異なる時刻の前記参照画像に基づくバイラテラルマッチングにより前記動きベクトルを導出する
請求項１に記載の画像処理装置。
【請求項５】
前記予測部は、前記上限数を示す上限数情報を取得し、前記ブロックを含む前記画像と前記参照画像とに基づくテンプレートマッチング、および互いに異なる時刻の前記参照画像に基づくバイラテラルマッチングの何れか一方の前記上限数が０である場合、他方のマッチングにより前記動きベクトルを導出する
請求項１に記載の画像処理装置。
【請求項６】
テンプレートマッチングにより前記動きベクトルを導出するか、またはバイラテラルマッチングにより前記動きベクトルを導出するかを示す情報を符号化する符号化部をさらに備える
請求項１に記載の画像処理装置。
【請求項７】
前記上限数を示す上限数情報を符号化する符号化部をさらに備える
請求項１に記載の画像処理装置。
【請求項８】
前記上限数は、処理対象の画像に関する情報に基づいて定められる
請求項１に記載の画像処理装置。
【請求項９】
前記予測部は、前記ブロックの前記動きベクトルを導出するための処理のうちの少なくとも一部の処理を並列に行う
請求項１に記載の画像処理装置。
【請求項１０】
前記予測部は、
前記動きベクトルの候補についてブロックマッチングにより前記動きベクトルとコストを導出するマッチング処理回路を複数有する動きベクトル導出部と、
複数の前記マッチング処理回路のそれぞれにより並列に導出された前記動きベクトルのそれぞれのうち、前記コストが最小となる前記動きベクトルを、前記ブロックの最終的な前記動きベクトルとして選択する候補選択部と
を備える請求項９に記載の画像処理装置。
【請求項１１】
前記予測部は、
前記動きベクトルの候補の前記動きベクトルらしさを示すコストを算出するコスト演算回路を複数有し、複数の前記動きベクトルの候補のなかから、複数の前記コスト演算回路により並列に算出された複数の前記コストのうちの最も小さい前記コストの前記動きベクトルの候補を選択する候補選択部と、
前記候補選択部により選択された前記動きベクトルの候補に基づいてブロックマッチングにより前記動きベクトルを導出する動きベクトル導出部と
を備える請求項９に記載の画像処理装置。
【請求項１２】
前記予測部は、前記動きベクトルに基づいて前記ブロックの予測画像を生成する
請求項１に記載の画像処理装置。
【請求項１３】
複数の動きベクトルの候補のうちの所定の上限数の前記動きベクトルの候補に基づいて、処理対象のブロックを含む画像とは異なる時刻の参照画像を用いて前記ブロックの動きベクトルを導出する
ステップを含む画像処理方法。
【請求項１４】
複数の動きベクトルの候補について、原画像の処理対象のブロックと、前記原画像とは異なる時刻の復号画像における前記動きベクトルの候補により示されるブロックとの差分を計算し、前記差分に基づいて前記複数の前記動きベクトルの候補のなかから１つの前記動きベクトルの候補を選択する予測部と、
前記予測部により選択された前記動きベクトルの候補を示す情報を符号化する符号化部と
を備える画像処理装置。
【請求項１５】
前記予測部は、
前記原画像および前記復号画像とは異なる時刻の他の復号画像と、前記復号画像における前記選択された前記動きベクトルの候補により示されるブロックとに基づいて、ブロックマッチングにより前記処理対象のブロックの前記他の復号画像との間の動きベクトルを導出し、
前記選択された前記動きベクトルの候補および前記動きベクトルに基づいて、前記処理対象のブロックの予測画像を生成する
請求項１４に記載の画像処理装置。
【請求項１６】
前記予測部は、前記選択された前記動きベクトルの候補に基づいて、ブロックマッチングにより前記処理対象のブロックの動きベクトルを導出するとともに、前記動きベクトルと前記動きベクトルの候補との差分を差分動きベクトルとして導出し、
前記符号化部は、前記情報および前記差分動きベクトルを符号化する
請求項１４に記載の画像処理装置。
【請求項１７】
動きベクトルの候補を示す情報を取得し、前記情報により示される前記動きベクトルの候補から得られる第１の動きベクトルにより示される、処理対象のブロックを含む画像とは異なる時刻の参照画像上のブロックと、前記画像および前記参照画像とは異なる時刻の他の参照画像とに基づいて、ブロックマッチングにより前記処理対象のブロックの前記他の参照画像との間の第２の動きベクトルを導出する予測部を備える
画像処理装置。
【請求項１８】
前記予測部は、前記第１の動きベクトルおよび前記第２の動きベクトルに基づいて前記処理対象のブロックの予測画像を生成する
請求項１７に記載の画像処理装置。
【請求項１９】
処理対象のブロック近傍にある周辺領域のうち、FRUCモードで処理されない前記周辺領域の動きベクトルを動きベクトルの候補として取得するとともに、取得した前記動きベクトルの候補に基づいて、前記処理対象のブロックを含む画像とは異なる時刻の参照画像を用いて前記処理対象のブロックの動きベクトルを導出する予測部を備える
画像処理装置。
【請求項２０】
前記予測部は、前記周辺領域がFRUCモードで処理される場合、その前記前記周辺領域に隣接する、FRUCモードで処理されない領域の動きベクトルを前記動きベクトルの候補として取得する
請求項１９に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は画像処理装置および方法に関し、特に、より迅速に動き情報を得ることができるようにした画像処理装置および方法に関する。
【背景技術】
【０００２】
例えば、画像の符号化や復号に関する技術としてFRUC（Frame Rate Up Conversion）と呼ばれる技術が提案されている。このFRUC技術はJVET（Joint Video Exploration Team）で提案されている技術であり、FRUC技術ではインター予測の際にデコーダ側で動き情報の予測が行われる（例えば、非特許文献１参照）。【０００３】
FRUC技術では、デコーダにおいてテンプレートマッチング法またはバイラテラルマッチング法によってブロックマッチング処理が行われ、動き情報が導出される。このようにデコーダにおいて動き情報を導出すれば、ビットストリームに格納する動き情報に関する情報を削減することができるようになる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Joint Video Exploration Team (JVET)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, “Algorithm Description of Joint Exploration Test Model 4” , JVET-D1001_v3, 4th Meeting: Chengdu, CN, 15-21 October 2016
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、FRUC技術を用いた場合、動き情報を導出するためのブロックマッチングがエンコーダだけでなくデコーダ側でも行われることになるが、このブロックマッチングの処理は処理量が多い。例えばブロックマッチングの処理量が多く、動き情報の導出に時間がかかると、場合によっては動画像等のコンテンツをリアルタイムで再生することができなくなってしまうことがある。【０００６】
そのため、動画像等のコンテンツのリアルタイム再生を行うことができるようにするために、より迅速に動き情報を得ることができるようにする技術が求められている。【０００７】
本技術は、このような状況に鑑みてなされたものであり、より迅速に動き情報を得ることができるようにするものである。
【課題を解決するための手段】
【０００８】
本技術の第１の側面の画像処理装置は、複数の動きベクトルの候補のうちの所定の上限数の前記動きベクトルの候補に基づいて、処理対象のブロックを含む画像とは異なる時刻の参照画像を用いて前記ブロックの動きベクトルを導出する予測部を備える。【０００９】
本技術の第１の側面の画像処理方法は、本技術の第１の側面の画像処理装置に対応する。【００１０】
本技術の第１の側面においては、複数の動きベクトルの候補のうちの所定の上限数の前記動きベクトルの候補に基づいて、処理対象のブロックを含む画像とは異なる時刻の参照画像が用いられて前記ブロックの動きベクトルが導出される。【００１１】
本技術の第２の側面の画像処理装置は、複数の動きベクトルの候補について、原画像の処理対象のブロックと、前記原画像とは異なる時刻の復号画像における前記動きベクトルの候補により示されるブロックとの差分を計算し、前記差分に基づいて前記複数の前記動きベクトルの候補のなかから１つの前記動きベクトルの候補を選択する予測部と、前記予測部により選択された前記動きベクトルの候補を示す情報を符号化する符号化部とを備える。【００１２】
本技術の第２の側面においては、複数の動きベクトルの候補について、原画像の処理対象のブロックと、前記原画像とは異なる時刻の復号画像における前記動きベクトルの候補により示されるブロックとの差分が計算され、前記差分に基づいて前記複数の前記動きベクトルの候補のなかから１つの前記動きベクトルの候補が選択され、選択された前記動きベクトルの候補を示す情報が符号化される。【００１３】
本技術の第３の側面の画像処理装置は、動きベクトルの候補を示す情報を取得し、前記情報により示される前記動きベクトルの候補から得られる第１の動きベクトルにより示される、処理対象のブロックを含む画像とは異なる時刻の参照画像上のブロックと、前記画像および前記参照画像とは異なる時刻の他の参照画像とに基づいて、ブロックマッチングにより前記処理対象のブロックの前記他の参照画像との間の第２の動きベクトルを導出する予測部を備える。【００１４】
本技術の第３の側面においては、動きベクトルの候補を示す情報が取得され、前記情報により示される前記動きベクトルの候補から得られる第１の動きベクトルにより示される、処理対象のブロックを含む画像とは異なる時刻の参照画像上のブロックと、前記画像および前記参照画像とは異なる時刻の他の参照画像とに基づいて、ブロックマッチングにより前記処理対象のブロックの前記他の参照画像との間の第２の動きベクトルが導出される。【００１５】
本技術の第４の側面の画像処理装置は、処理対象のブロック近傍にある周辺領域のうち、FRUCモードで処理されない前記周辺領域の動きベクトルを動きベクトルの候補として取得するとともに、取得した前記動きベクトルの候補に基づいて、前記処理対象のブロックを含む画像とは異なる時刻の参照画像を用いて前記処理対象のブロックの動きベクトルを導出する予測部を備える。【００１６】
本技術の第４の側面においては、処理対象のブロック近傍にある周辺領域のうち、FRUCモードで処理されない前記周辺領域の動きベクトルが動きベクトルの候補として取得されるとともに、取得された前記動きベクトルの候補に基づいて、前記処理対象のブロックを含む画像とは異なる時刻の参照画像が用いられて前記処理対象のブロックの動きベクトルが導出される。
【発明の効果】
【００１７】
本技術の第１の側面乃至第４の側面によれば、より迅速に動き情報を得ることができる。【００１８】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載された何れかの効果であってもよい。
【図面の簡単な説明】
【００１９】
【図１】インター予測モードについて説明する図である。
【図２】画像符号化装置の構成例を示す図である。
【図３】バイラテラルマッチングについて説明する図である。
【図４】バイラテラルマッチングについて説明する図である。
【図５】テンプレートマッチングについて説明する図である。
【図６】テンプレートマッチングについて説明する図である。
【図７】予測部の構成例を示す図である。
【図８】予測動きベクトルの候補について説明する図である。
【図９】予測部の構成例を示す図である。
【図１０】画像符号化処理を説明するフローチャートである。
【図１１】インター予測処理モード設定処理を説明するフローチャートである。
【図１２】FRUCマージモード符号化処理を説明するフローチャートである。
【図１３】テンプレートマッチングによる動き情報導出処理を説明するフローチャートである。
【図１４】バイラテラルマッチングによる動き情報導出処理を説明するフローチャートである。
【図１５】画像復号装置の構成例を示す図である。
【図１６】予測部の構成例を示す図である。
【図１７】予測部の構成例を示す図である。
【図１８】画像復号処理を説明するフローチャートである。
【図１９】FRUCマージモード復号処理を説明するフローチャートである。
【図２０】バイラテラルマッチングによる動き情報導出処理を説明するフローチャートである。
【図２１】テンプレートマッチングによる動き情報導出処理を説明するフローチャートである。
【図２２】インター予測処理モード設定処理を説明するフローチャートである。
【図２３】バイラテラルマッチングによる動き情報導出処理を説明するフローチャートである。
【図２４】テンプレートマッチングによる動き情報導出処理を説明するフローチャートである。
【図２５】FRUCマージモード復号処理を説明するフローチャートである。
【図２６】バイラテラルマッチングによる動き情報導出処理を説明するフローチャートである。
【図２７】テンプレートマッチングによる動き情報導出処理を説明するフローチャートである。
【図２８】バイラテラルマッチングによる動き情報導出処理を説明するフローチャートである。
【図２９】テンプレートマッチングによる動き情報導出処理を説明するフローチャートである。
【図３０】バイラテラルマッチングによる動き情報導出処理を説明するフローチャートである。
【図３１】テンプレートマッチングによる動き情報導出処理を説明するフローチャートである。
【図３２】テンプレートマッチングでの遅延について説明する図である。
【図３３】改良テンプレートマッチングについて説明する図である。
【図３４】予測部の構成例を示す図である。
【図３５】FRUCマージモード符号化処理を説明するフローチャートである。
【図３６】改良テンプレートマッチングによる動き情報導出処理を説明するフローチャートである。
【図３７】予測部の構成例を示す図である。
【図３８】FRUCマージモード復号処理を説明するフローチャートである。
【図３９】改良テンプレートマッチングによる動き情報導出処理を説明するフローチャートである。
【図４０】FRUCブロックの参照について説明する図である。
【図４１】FRUCブロックの参照について説明する図である。
【図４２】FRUCブロックの参照について説明する図である。
【図４３】コンピュータの構成例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して、本技術を適用した実施の形態について説明する。
【００２１】
〈第１の実施の形態〉
〈インター予測モードの種類について〉
本技術では、処理対象となる動画像がインター予測モードまたはイントラ予測モードにより符号化および復号される。
【００２２】
動画像の符号化時や復号時には、動画像を構成するフレームに対応するピクチャがCU（Coding Unit）と呼ばれる処理単位（符号化単位）で符号化および復号される。
【００２３】
CUは、最大符号化単位であるCTU(Coding Tree Unit)を再帰的に分割することにより形成される、可変的なサイズを有するブロックである。以下では、特に断りのない場合には、CTUを単にCUと称し、CTUを分割して得られたCUをサブブロックと称することとする。また、以下ではCUとサブブロックを特に区別する必要がないときには、単にブロックとも称することとする。
【００２４】
さらに、インター予測モードには、例えば図１に示すように複数のモードがあり、それらの複数のモードのうちの何れかのモードに従って符号化および復号が行われる。
【００２５】
図１に示す例では、インター予測モードはスキップモードとノンスキップモードとに分けられる。
【００２６】
ノンスキップモードでは、符号化により得られたビットストリームには、ピクチャ内のブロックについて、そのブロックと参照先となる参照ピクチャの参照ブロックとの画像の差分である予測残差が格納される。これに対して、スキップモードでは、予測残差がビットストリーム内には格納されない。
【００２７】
また、ノンスキップモードは、さらにマージモードとノンマージモードとに分けられる。ノンマージモードでは、符号化により得られたビットストリームには、ピクチャ内のブロックについて、そのブロックについて求められた予測動きベクトルの誤差を示す差分動きベクトルが格納される。これに対して、マージモードではビットストリームには差分動きベクトルは格納されない。
【００２８】
さらに、ノンスキップモードでのノンマージモードには、矢印Ａ１１に示すアフィンAMVP（Advanced Motion Vector Prediction）モードと、矢印Ａ１２に示すNon-FRUCモード、つまり通常のAMVPモードと、矢印Ａ１３に示すFRUCモードとがある。
【００２９】
アフィンAMVPモードは、アフィン変換を利用して動き情報を導出するモードである。AMVPモードは、ピクチャ内のブロックについて、予測残差、予測動きベクトルを得るための予測動きベクトルの候補、および差分動きベクトルがビットストリームに格納されるモードである。すなわち、動き情報として予測動きベクトルの候補と差分動きベクトルがビットストリームに格納される。
【００３０】
ここでは予測動きベクトルの候補を示す情報として、処理対象のブロックの周囲にある複数の周辺領域のうちの１つの周辺領域を示すインデックス等がビットストリームに格納されている。AMVPモードでは、復号時には、予測動きベクトルの候補とされた周辺領域の予測動きベクトルに対して差分動きベクトルを加算して得られるベクトルが処理対象のブロックの動きベクトルとして用いられる。
【００３１】
また、矢印Ａ１３に示すFRUCモードは、ピクチャ内のブロックについて、テンプレートマッチング法とバイラテラルマッチング法の何れにより動き情報を導出するかを示すFRUC_Mode_flagと、予測残差と、差分動きベクトルとがビットストリームに格納されるモードである。このFRUCモードは、AMVPモードを基本としてデコーダ側で動き情報を導出するモードである。以下では、矢印Ａ１３に示すFRUCモードを、特にFRUC AMVPモードとも称することとする。
【００３２】
さらに、ノンスキップモードでのマージモードには、矢印Ａ１４に示すFRUCモードと、矢印Ａ１５に示すAMVPでのマージモードと、矢印Ａ１６に示すアフィンマージモードとがある。
【００３３】
矢印Ａ１４に示すFRUCモードは、ピクチャ内のブロックについて、FRUC_Mode_flagと、予測残差とがビットストリームに格納されるモードである。以下では、矢印Ａ１４に示すFRUCモードを、特にFRUCマージモードとも称することとする。
【００３４】
矢印Ａ１５に示すAMVPでのマージモードは、ピクチャ内のブロックについて、予測残差および予測動きベクトルの候補がビットストリームに格納されるモードであり、以下ではこのマージモードを特にAMVPマージモードとも称することとする。
【００３５】
矢印Ａ１６に示すアフィンマージモードは、差分動きベクトルがビットストリームに格納されない点で、矢印Ａ１１に示したアフィンAMVPモードと異なる。
【００３６】
さらに、スキップモードは、FRUCモードとNon-FRUCモードとに分けられる。すなわち、スキップモードには、矢印Ａ１７に示すFRUCモードと、矢印Ａ１８に示すマージモードと、矢印Ａ１９に示すアフィンマージモードとがある。
【００３７】
矢印Ａ１７に示すFRUCモードは、ピクチャ内のブロックについて、FRUC_Mode_flagがビットストリームに格納されるモードである。以下では、矢印Ａ１７に示すFRUCモードを、特にスキップFRUCモードとも称することとする。
【００３８】
矢印Ａ１８に示すマージモードは、ピクチャ内のブロックについて、予測動きベクトルの候補がビットストリームに格納されるモードであり、以下ではこのマージモードを特にスキップマージモードとも称することとする。
【００３９】
矢印Ａ１９に示すアフィンマージモードは、予測残差がビットストリームに格納されない点で、矢印Ａ１６に示したアフィンマージモードと異なる。
【００４０】
本技術では、図１の矢印Ａ１１乃至矢印Ａ１９に示すモードのうちの何れかのモードがエンコーダ側で選択されてピクチャ上のブロックが符号化される。なお、以下では説明を簡単にするためスキップモードやアフィン変換に関するモードは選択されず、AMVPモード、FRUC AMVPモード、AMVPマージモード、およびFRUCマージモードのなかからブロックの符号化時のモードが選択されるものとして説明を続ける。
【００４１】
〈画像符号化装置の構成例〉
次に、本技術を適用した画像処理装置としての画像符号化装置について説明する。
【００４２】
図２は、本技術を適用した画像符号化装置の一実施の形態の構成例を示す図である。
【００４３】
図２に示す画像符号化装置１１は、AVC（Advanced Video Coding）やHEVC（High Efficiency Video Coding）のように、画像とその予測画像との予測残差を符号化するエンコーダである。例えば、画像符号化装置１１は、HEVCの技術やJVETにて提案された技術を実装している。
【００４４】
なお、図２においては、処理部やデータの流れ等の主なものを示しており、図２に示されるものが全てとは限らない。つまり、画像符号化装置１１において、図２においてブロックとして示されていない処理部が存在したり、図２において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
【００４５】
画像符号化装置１１は、制御部２１、演算部２２、変換部２３、量子化部２４、符号化部２５、逆量子化部２６、逆変換部２７、演算部２８、フレームメモリ２９、および予測部３０を有する。画像符号化装置１１は、入力されるフレーム単位の動画像であるピクチャに対してCUごとまたはサブブロックごとに符号化を行う。
【００４６】
具体的には、画像符号化装置１１の制御部２１は、外部からの入力等に基づいて、ヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等からなる符号化パラメータを設定する。
【００４７】
ヘッダ情報Hinfoは、例えば、ビデオパラメータセット（VPS（Video Parameter Set））、シーケンスパラメータセット（SPS（Sequence Parameter Set））、ピクチャパラメータセット（PPS（Picture Parameter Set））、スライスヘッダ（SH）等の情報を含む。
【００４８】
予測情報Pinfoには、例えば、サブブロック（PU（Prediction Unit））の形成時の各分割階層における水平方向または垂直方向の分割の有無を示すsplit flagが含まれる。また、予測情報Pinfoには、ブロックごとに、そのブロックの予測処理がイントラ予測処理であるか、またはインター予測処理であるかを示すモード情報pred_mode_flagが含まれる。
【００４９】
モード情報pred_mode_flagがインター予測処理を示す場合、予測情報Pinfoには、Merge_flag、FRUC_flag、FRUC_Mode_flag、動きベクトル情報、参照画像（参照ピクチャ）を特定する参照画像特定情報などが含まれる。
【００５０】
Merge_flagは、インター予測処理のモードがマージモードであるか否かを示すフラグ情報である。例えばマージモードである場合にはMerge_flagの値は１とされ、マージモードでない場合にはMerge_flagの値は０とされる。
【００５１】
FRUC_flagは、FRUCモードであるか否かを示すフラグ情報であり、例えばFRUCモードである場合にはFRUC_flagの値は１とされ、FRUCモードでない場合にはFRUC_flagの値は０とされる。
【００５２】
FRUC_Mode_flagは、FRUCモードである場合に、テンプレートマッチング法またはバイラテラルマッチング法の何れにより動き情報を導出するかを示すフラグ情報である。例えばバイラテラルマッチングにより動き情報を導出する場合にはFRUC_Mode_flagの値は１とされ、テンプレートマッチングにより動き情報を導出する場合にはFRUC_Mode_flagの値は０とされる。
【００５３】
動きベクトル情報は、上述した予測動きベクトルの候補と差分動きベクトルのうちの少なくとも何れか一方からなる情報である。
【００５４】
モード情報pred_mode_flagがイントラ予測処理を示す場合、予測情報Pinfoには、そのイントラ予測処理のモードであるイントラ予測モードを示すイントラ予測モード情報などが含まれる。もちろん、予測情報Pinfoの内容は任意であり、上述した例以外のどのような情報がこの予測情報Pinfoに含まれるようにしてもよい。
【００５５】
変換情報Tinfoには、TB(Transform Block)と呼ばれる処理単位（変換ブロック）のサイズを示すTBSizeなどが含まれる。輝度（Ｙ）および色差（Cb,Cr）ごとのTBにより、直交変換処理の処理単位であるTU（Transform Unit）が構成されるが、ここではTUはサブブロックと同じであるとされる。
【００５６】
また、画像符号化装置１１では、符号化対象となる動画像のピクチャ（以下、原画像とも称する）が演算部２２および予測部３０に供給される。
【００５７】
演算部２２は、入力されるピクチャを順に符号化対象のピクチャとし、予測情報Pinfoのsplit flagに基づいて、符号化対象のピクチャに対して符号化対象のブロック、すなわちCUまたはサブブロックを設定する。演算部２２は、符号化対象のブロックの画像Ｉ（以下、カレントブロックとも称する）から、予測部３０から供給されたブロック単位の予測画像Ｐを減算して予測残差Ｄを求め、変換部２３に供給する。
【００５８】
変換部２３は、制御部２１から供給された変換情報Tinfoに基づいて、演算部２２から供給された予測残差Ｄに対して直交変換等を行い、変換係数Coeffを導出し、量子化部２４に供給する。
【００５９】
量子化部２４は、制御部２１から供給された変換情報Tinfoに基づいて、変換部２３から供給された変換係数Coeffをスケーリング（量子化）し、量子化変換係数レベルlevelを導出する。量子化部２４は、量子化変換係数レベルlevelを符号化部２５および逆量子化部２６に供給する。
【００６０】
符号化部２５は、量子化部２４から供給された量子化変換係数レベルlevel等を所定の方法で符号化する。例えば、符号化部２５は、シンタックステーブルの定義に沿って、制御部２１から供給された符号化パラメータ（ヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等）と、量子化部２４から供給された量子化変換係数レベルlevelを、各シンタックス要素のシンタックス値へ変換する。そして、符号化部２５は、各シンタックス値を算術符号化等により符号化する。
【００６１】
符号化部２５は、例えば符号化の結果得られた各シンタックス要素のビット列である符号化データを多重化し、符号化ストリームとして出力する。
【００６２】
逆量子化部２６は、制御部２１から供給された変換情報Tinfoに基づいて、量子化部２４から供給された量子化変換係数レベルlevelの値をスケーリング（逆量子化）し、逆量子化後の変換係数Coeff_IQを導出する。逆量子化部２６は、変換係数Coeff_IQを逆変換部２７に供給する。この逆量子化部２６により行われる逆量子化は、量子化部２４により行われる量子化の逆処理であり、後述する画像復号装置において行われる逆量子化と同様の処理である。
【００６３】
逆変換部２７は、制御部２１から供給された変換情報Tinfoに基づいて、逆量子化部２６から供給された変換係数Coeff_IQに対して逆直交変換等を行い、予測残差Ｄ’を導出する。逆変換部２７は、予測残差Ｄ’を演算部２８に供給する。
【００６４】
この逆変換部２７により行われる逆直交変換は、変換部２３により行われる直交変換の逆処理であり、後述する画像復号装置において行われる逆直交変換と同様の処理である。
【００６５】
演算部２８は、逆変換部２７から供給された予測残差Ｄ’と、予測部３０から供給された、その予測残差Ｄ’に対応する予測画像Ｐとを加算して局所的な復号画像Recを導出する。演算部２８は、局所的な復号画像Recをフレームメモリ２９に供給する。
【００６６】
フレームメモリ２９は、演算部２８から供給された局所的な復号画像Recを用いてピクチャ単位の復号画像を再構築し、フレームメモリ２９内のバッファへ格納する。
【００６７】
フレームメモリ２９は、予測部３０により指定される復号画像を参照画像（参照ピクチャ）としてバッファより読み出し、予測部３０に供給する。また、フレームメモリ２９は、復号画像の生成に係るヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfoなどを、フレームメモリ２９内のバッファに格納するようにしてもよい。
【００６８】
予測部３０は、予測情報Pinfoのモード情報pred_mode_flagに基づいて、フレームメモリ２９に格納された、符号化対象のブロックと同一時刻の復号画像を参照画像として取得する。そして、予測部３０は、参照画像を用いて符号化対象のブロックに対して、イントラ予測モード情報が示すイントラ予測モードのイントラ予測処理を行う。
【００６９】
また、予測部３０は、予測情報Pinfoのモード情報pred_mode_flagと参照画像特定情報に基づいて、フレームメモリ２９に格納された、符号化対象のブロックとは異なる時刻の復号画像を参照画像として取得する。予測部３０は、Merge_flagやFRUC_flag、FRUC_Mode_flag、動きベクトル情報等に基づいて、参照画像に対してMerge_flagおよびFRUC_flagにより定まるモードでのインター予測処理を行う。なお、インター予測処理時には、供給された原画像も必要に応じて用いられる。
【００７０】
予測部３０は、イントラ予測処理またはインター予測処理の結果生成された符号化対象のブロックの予測画像Ｐを演算部２２および演算部２８に供給する。
【００７１】
〈FRUCモードについて〉
ここで、FRUCモードについて説明する。
【００７２】
例えばインター予測では、動き補償を行うためにデコーダ側において予測動きベクトルや参照インデックスといった動き情報が必要となる。
【００７３】
通常、予測動きベクトルは、予測動きベクトルの候補との差分動きベクトル情報といった形で符号化ストリームに含められ、デコーダは予測動きベクトルの候補と差分動きベクトル情報に基づいて予測動きベクトルを再構成する。
【００７４】
符号化ストリームに差分動きベクトルを格納すると、符号化ストリームの符号量が増加することになるため、符号化効率が悪化することになる。
【００７５】
FRUC技術は動き情報の予測、すなわち動き情報の導出の方法の１つであり、FRUC技術によりデコーダ側で動き情報を導出すれば、高精度に予測動きベクトルを予測できるようになるだけでなく動き情報の符号量を削減することができ、符号化効率を向上させることができる。特に、スキップFRUCモードでは動き情報が不要であるため、符号化効率を大幅に向上させることができる。
【００７６】
上述したようにFRUCモードでは、エンコーダ側においてバイラテラルマッチング法とテンプレートマッチング法のうちの何れかを選択することができ、デコーダ側ではエンコーダ側で指定された方法により動き情報を導出することになる。
【００７７】
例えばバイラテラルマッチングでは、図３に示すように符号化対象のピクチャ（フレーム）であるピクチャPIC11と、参照ピクチャであるピクチャPIC12およびピクチャPIC13とが用いられて、ピクチャPIC11上のカレントブロックCB11の予測動きベクトルが導出される。
【００７８】
なお、図３において横方向は時間を示しており、この例ではピクチャPIC12は、ピクチャPIC11よりも表示順で古い時刻のフレームとなっており、ピクチャPIC13は、ピクチャPIC11よりも表示順で新しい時刻のフレームとなっている。
【００７９】
特に、ピクチャPIC12は参照画像特定情報としてのリファレンスリストRef0により参照ピクチャとして示されるピクチャ（フレーム）である。これに対してピクチャPIC13は参照画像特定情報としてのリファレンスリストRef1により参照ピクチャとして示されるピクチャ（フレーム）である。
【００８０】
ここで、リファレンスリストRef0は、基本的には符号化対象のピクチャPIC11よりも古いフレームを参照ピクチャとして示すリストであり、リファレンスリストRef0では符号化対象のピクチャを含む複数のピクチャを参照ピクチャとして指定することができる。
【００８１】
同様に、リファレンスリストRef1は、基本的には符号化対象のピクチャPIC11よりも新しいフレームを参照ピクチャとして示すリストであり、リファレンスリストRef1では符号化対象のピクチャを含む複数のピクチャを参照ピクチャとして指定することができる。
【００８２】
また、図３に示す例では、TD0はピクチャPIC11とピクチャPIC12との間の時間距離を示しており、TD1はピクチャPIC11とピクチャPIC13との間の時間距離を示している。ここでは、例えば時間距離TD0と時間距離TD1は等しい距離とされる。
【００８３】
例えば符号化対象であるカレントブロックCB11の予測動きベクトルの導出時には、カレントブロックCB11の中心を通る直線L11について、ピクチャPIC12における直線L11との交点を中心とするブロックBL11と、ピクチャPIC13における直線L11との交点を中心とするブロックBL12とが選択される。そして、ブロックBL11とブロックBL12との差分が算出される。
【００８４】
さらに、サーチレンジ内において、ブロックBL11とブロックBL12の位置がずらされながら、全てのブロックBL11とブロックBL12の組み合わせについて差分が計算され、差分が最も小さくなる組み合わせが探索される。そして、最も差分が小さくなる組み合わせのブロックを示すベクトルが求めたい予測動きベクトルとされる。
【００８５】
なお、このとき、ブロックBL11の中心とブロックBL12の中心とを結ぶ直線が、必ずカレントブロックCB11の中心を通るように各ブロックが選択される。つまり、カレントブロックCB11を直線的に結ぶブロックBL11およびブロックBL12の差分が計算される。
【００８６】
この例では、カレントブロックCB11の予測動きベクトルとして、図中、矢印により表される動きベクトルMV0と動きベクトルMV1とが得られている。
【００８７】
動きベクトルMV0は、カレントブロックCB11の中心位置と同じ位置関係のピクチャPIC12上の位置を始点とし、ブロックBL11の中心の位置を終点とするベクトルである。同様に、動きベクトルMV1は、カレントブロックCB11の中心位置と同じ位置関係のピクチャPIC13上の位置を始点とし、ブロックBL12の中心の位置を終点とするベクトルである。
【００８８】
このようにバイラテラルマッチングでは、ピクチャPIC12とピクチャPIC13との間ではテクスチャが直線状に動くというモデルを仮定しており、等速で運動（移動）する物体がこのモデルに当てはまる。
【００８９】
図４は、バイラテラルマッチングにおいて、２つの参照ピクチャ上のブロックがカレントブロックと直線的に結ばれていることを分かり易くするために各ピクチャを１次元的に表現した図である。なお、図４において図３における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００９０】
この例では、カレントブロックCB11と、ピクチャPIC12上のブロックBL21と、ピクチャPIC13上のブロックBL22とが直線的に結ばれている。すなわち、カレントブロックCB11、ブロックBL21、およびブロックBL22が直線L21上に位置しており、予測動きベクトルを導出するためにブロックBL21とブロックBL22との差分が計算される。
【００９１】
ここで、参照ピクチャであるピクチャPIC12とピクチャPIC13については、カレントブロックCB11が符号化対象または復号対象となった時点で、それらのピクチャPIC12およびピクチャPIC13の全領域が符号化済みまたは復号済みとなっている。
【００９２】
これに対して、ピクチャPIC11については、カレントブロックCB11が符号化対象または復号対象となった時点において、カレントブロックCB11よりも図中、上側の領域は符号化済みまたは復号済みであるが、カレントブロックCB11よりも図中、下側の領域は符号化または復号がされていない状態となっている。
【００９３】
カレントブロックCB11の予測動きベクトルの導出時には、直線L21の角度（傾き）を変化させることで、差分の計算対象となるブロックが変化する。
【００９４】
以上のようにしてバイラテラルマッチングでは、差分の計算対象となるブロックを変化させながら、符号化対象のピクチャとは表示時刻が異なり、かつ互いに表示時刻が異なる２つの参照ピクチャを用いたブロックマッチングにより予測動きベクトルが導出される。これにより、エンコーダ側だけでなくデコーダ側においても高精度に予測動きベクトルを導出（予測）することができる。
【００９５】
また、テンプレートマッチングでは、例えば図５に示すように符号化対象のピクチャと、符号化対象のピクチャとは表示時刻の異なる参照ピクチャとの間でブロックマッチングが行われる。なお、図５において図３における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００９６】
図５に示す例では、ピクチャPIC11のカレントブロックCB11が符号化対象となっており、このピクチャPIC11と、ピクチャPIC12との間でブロックマッチングが行われる。
【００９７】
ブロックマッチングでは、ピクチャPIC11上のカレントブロックCB11に隣接する領域TM11-1および領域TM11-2がブロックマッチング、つまり差分の計算に用いられる領域であるテンプレートとされる。なお、以下、領域TM11-1および領域TM11-2を特に区別する必要のない場合、単に領域TM11とも称することとする。
【００９８】
この領域TM11は、カレントブロックCB11が処理対象となった時点で、既に符号化済みまたは復号済みとなっている領域である。
【００９９】
また、参照ピクチャであるピクチャPIC12では、領域TM11-1および領域TM11-2と同じ大きさおよび形状である領域TM12-1および領域TM12-2がテンプレートとされる。
【０１００】
なお、領域TM12-1の形状および大きさは、領域TM11-1の形状および大きさと同じであり、領域TM12-2の形状および大きさは、領域TM11-2の形状および大きさと同じである。さらに、領域TM12-1と領域TM12-2の相対的な位置関係は、領域TM11-1と領域TM11-2の相対的な位置関係と同じとなっている。
【０１０１】
以下、領域TM12-1および領域TM12-2を特に区別する必要のない場合、単に領域TM12とも称することとする。
【０１０２】
テンプレートマッチングでは、所定のサーチレンジ内で領域TM12の位置をずらしながら、各位置について同じ形状の領域TM11と領域TM12との差分を計算し、差分が最も小さくなる領域TM12の位置が探索される。
【０１０３】
この例では、差分の計算時には領域TM11-1と領域TM12-1の差分、および領域TM11-2と領域TM12-2の差分が計算されることになる。
【０１０４】
そして、差分が最も小さくなるときの領域TM12の位置を示すベクトルが求めたい予測動きベクトルとされる。この例では、カレントブロックCB11の予測動きベクトルとして、図中、矢印により表される動きベクトルMV0が得られている。
【０１０５】
例えばカレントブロックCB11と同じ形状および大きさであり、ピクチャPIC12における領域TM12との相対的な位置関係が領域TM11とカレントブロックCB11の相対的な位置関係と同じであるブロックをブロックBL31とする。また、領域TM12およびブロックBL31の位置が図５に示されている位置となっているときに領域TM11と領域TM12の差分が最小となるとする。
【０１０６】
この場合、カレントブロックCB11の中心位置と同じ位置関係のピクチャPIC12上の位置を始点とし、ブロックBL31の中心の位置を終点とするベクトルが動きベクトルMV0となる。
【０１０７】
図６は、テンプレートマッチングにおける、参照ピクチャのテンプレートと、カレントブロックに隣接するテンプレートとの関係を分かり易くするために各ピクチャを１次元的に表現した図である。なお、図６において図３または図５における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０１０８】
この例では、カレントブロックCB11に隣接するテンプレートの領域TM11と、参照ピクチャであるピクチャPIC12上のテンプレートの領域TM12とが直線により結ばれて描かれており、予測動きベクトルを導出するために領域TM11と領域TM12との差分が計算される。
【０１０９】
ここで、参照ピクチャであるピクチャPIC12とピクチャPIC13については、カレントブロックCB11が符号化対象または復号対象となった時点で、それらのピクチャPIC12およびピクチャPIC13の全領域が符号化済みまたは復号済みとなっている。
【０１１０】
これに対して、ピクチャPIC11については、カレントブロックCB11が符号化対象または復号対象となった時点において、カレントブロックCB11よりも図中、上側の領域は符号化済みまたは復号済みであるが、カレントブロックCB11よりも図中、下側の領域は符号化または復号がされていない状態となっている。この例では、領域TM11は符号化済みまたは復号済みの領域となっている。
【０１１１】
テンプレートマッチングでは、カレントブロックCB11と、そのカレントブロックCB11に隣接するテンプレートである領域TM11とでは動きベクトルは同じであると仮定される。そして、ピクチャPIC12から領域TM11と類似する領域、つまり差分の小さい領域TM12が探索され、その探索結果により示される動きベクトルが、カレントブロックCB11の予測動きベクトルであるとされる。
【０１１２】
以上のようにしてテンプレートマッチングでは、差分の計算対象となる参照ピクチャ上のテンプレート位置を変化させながら、符号化対象のピクチャとは表示時刻が異なる１つの参照ピクチャを用いたブロックマッチングにより予測動きベクトルが導出される。これにより、エンコーダ側だけでなくデコーダ側においても高精度に予測動きベクトルを導出（予測）することができる。
【０１１３】
〈予測部の構成について〉
ところで、上述した画像符号化装置１１の予測部３０では、バイラテラルマッチングやテンプレートマッチングにより動き情報、すなわち予測動きベクトルの導出が行われる。
【０１１４】
例えば予測部３０は、バイラテラルマッチングにより動き情報を導出する構成として、図７に示す構成を有している。
【０１１５】
すなわち、図７に示す例では、予測部３０は候補取得部５１、バイラテラルマッチング処理部５２、サブブロック候補取得部５３、およびバイラテラルマッチング処理部５４を有している。
【０１１６】
これらの候補取得部５１乃至バイラテラルマッチング処理部５４のうちの候補取得部５１およびバイラテラルマッチング処理部５２は、符号化対象のCU（CTU）について動き情報を導出する処理ブロックとなっている。これに対して、サブブロック候補取得部５３およびバイラテラルマッチング処理部５４は、符号化対象のサブブロックについて動き情報を導出する処理ブロックとなっている。
【０１１７】
候補取得部５１は、符号化対象のCUに隣接する周辺領域の予測動きベクトル（以下、隣接動きベクトルとも称する）を予測動きベクトルの候補、すなわちスタートポイントの候補として収集する。
【０１１８】
例えば図８に示すように１つのCU７１の予測動きベクトルを求めるものとすると、このCU７１に隣接する４つの領域R11-1乃至領域R11-4が周辺領域とされる。なお、以下、領域R11-1乃至領域R11-4を特に区別する必要のない場合、単に領域R11とも称することとする。
【０１１９】
例えば各領域R11はCU７１に対して予め定められた符号化（復号）済みの領域とされている。換言すれば、CU７１が符号化対象とされた時点において、既に符号化され、符号化により得られたものがさらに復号された状態となっている領域R11が周辺領域とされる。
【０１２０】
周辺領域とされるこれらの領域R11は、符号化済みの領域であるため、予測部３０では既にこれらの領域R11の予測動きベクトルが得られている。
【０１２１】
そこで、候補取得部５１は、これらの領域R11の予測動きベクトルを、CU７１の予測動きベクトルの候補、すなわちスタートポイントの候補として用いる。なお、以下では、隣接動きベクトルだけでなく、周辺領域のことも、適宜、スタートポイントの候補や予測動きベクトルの候補とも称することとする。
【０１２２】
図７の説明に戻り、候補取得部５１は符号化対象のCUに対して予め定められた周辺領域のリストをスタートポイントの候補のリスト（以下、候補リストとも称する）として生成する。例えば、AMVPマージモードで予測動きベクトルの導出に用いられる周辺領域を示すインデックスのリストが候補リストとして生成される。
【０１２３】
また、候補取得部５１は生成した候補リストにより示されるスタートポイントの候補、すなわち周辺領域の隣接動きベクトルを取得し、バイラテラルマッチング処理部５２に供給する。
【０１２４】
バイラテラルマッチング処理部５２は、候補選択部６１および動きベクトル導出部６２を有している。
【０１２５】
候補選択部６１は、候補リストにより示される複数の予測動きベクトルの候補（スタートポイントの候補）のなかから１つの候補を選択する。
【０１２６】
動きベクトル導出部６２は、予測動きベクトルの候補をスタートポイントとしてバイラテラルマッチングにより符号化対象のCUの予測動きベクトルを求める。
【０１２７】
すなわち、動きベクトル導出部６２は、１つの参照ピクチャ（以下、基準参照ピクチャと称する）上におけるスタートポイントの候補である隣接動きベクトルにより定まる領域をサーチレンジとし、そのサーチレンジ内のブロックを差分計算ブロックとする。
【０１２８】
そして、動きベクトル導出部６２は、バイラテラルマッチング法により、差分計算ブロックと、その差分計算ブロックに対応する基準参照ピクチャとは異なる時刻の参照ピクチャのブロックとの差分を計算し、その計算結果から求まるコストを算出する。例えば差分計算ブロックについて求まるコストは、差分計算ブロックについての差分が小さいほど小さくなるようにされる。
【０１２９】
なお、以下では、スタートポイントの候補を示すインデックスをidとし、そのインデックスidにより示されるスタートポイントの候補について求めた所定の差分計算ブロックのコストをコストCcur_bilat(id)と記すこととする。また、インデックスidにより示されるスタートポイントの候補について得られた、所定の差分計算ブロックについての予測動きベクトルを予測動きベクトルMVbilat(id)とも記すこととする。
【０１３０】
動きベクトル導出部６２は、差分計算ブロックの位置をサーチレンジ内で動かしながら、各領域を差分計算ブロックとして予測動きベクトルMVbilat(id)とコストCcur_bilat(id)を算出する。
【０１３１】
詳細は後述するが、例えば動きベクトル導出部６２内に、１つのスタートポイントの候補についてバイラテラルマッチングにより予測動きベクトルMVbilat(id)とコストCcur_bilat(id)を算出するマッチング処理回路が並列に複数設けられているとする。
【０１３２】
この場合、各スタートポイントの候補についてマッチング処理回路により並列に処理が行われ、全てのスタートポイントの候補について参照ピクチャごとに計算した予測動きベクトルMVbilat(id)のうち、コストCcur_bilat(id)が最小となる予測動きベクトルMVbilat(id)が、符号化対象のCUの予測動きベクトルとして候補選択部６１により選択される。
【０１３３】
また、動きベクトル導出部６２では、必要に応じて、最終的に得られた予測動きベクトルと、その予測動きベクトルの導出に用いられた予測動きベクトルの候補である隣接動きベクトルとの差分が符号化対象のCUの差分動きベクトルとして算出される。
【０１３４】
バイラテラルマッチング処理部５２は、符号化対象のCUの予測動きベクトルをサブブロック候補取得部５３に供給する。
【０１３５】
サブブロック候補取得部５３は、符号化対象のサブブロックに対して予め定められた符号化対象のCU内にある領域を周辺領域とするとともに、それらの周辺領域と、バイラテラルマッチング処理部５２から供給された予測動きベクトルとをサブブロックの予測動きベクトルの候補とするリスト（以下、サブブロック候補リストとも称する）を生成する。
【０１３６】
サブブロック候補取得部５３は生成したサブブロック候補リストにより示される予測動きベクトルの候補、すなわち周辺領域の隣接動きベクトルと、バイラテラルマッチング処理部５２から供給された予測動きベクトルとを取得し、バイラテラルマッチング処理部５４に供給する。
【０１３７】
バイラテラルマッチング処理部５４は、サブブロック候補取得部５３から供給された隣接動きベクトルおよび予測動きベクトルに基づいて、バイラテラルマッチング処理部５２と同様の処理を行って符号化対象のサブブロックの予測動きベクトルを導出する。
【０１３８】
バイラテラルマッチング処理部５４は、候補選択部６３および動きベクトル導出部６４を有しており、これらの候補選択部６３および動きベクトル導出部６４は、候補選択部６１および動きベクトル導出部６２に対応する。
【０１３９】
また、動きベクトル導出部６４では、必要に応じて、最終的に得られた予測動きベクトルと、その予測動きベクトルの導出に用いられた予測動きベクトルの候補との差分が符号化対象のサブブロックの差分動きベクトルとして算出される。
【０１４０】
以上のように予測部３０では、バイラテラルマッチング処理部５２で導出された予測動きベクトルや差分動きベクトルが符号化対象のCUの動き情報として得られる。また、バイラテラルマッチング処理部５４で導出された予測動きベクトルや差分動きベクトルが符号化対象のサブブロックの動き情報として得られる。
【０１４１】
ところで、バイラテラルマッチングでは、通常、基準参照ピクチャを選択し、その基準参照ピクチャについてさらにスタートポイントの候補を選択し、選択したスタートポイントの候補についてコストが最小となる予測動きベクトルを求めるという処理が繰り返し行われる。すなわち、基準参照ピクチャとスタートポイントの候補の全組み合わせについて、順番に予測動きベクトルを求める処理が繰り返し行われる。
【０１４２】
特に、ブロックマッチングの処理工程は処理量が多いため、ブロックマッチングを繰り返し行うことで予測動きベクトルの導出に時間がかかり、迅速に動き情報を得ることができなくなってしまう。
【０１４３】
そこで、画像符号化装置１１では、バイラテラルマッチング処理部５２またはバイラテラルマッチング処理部５４の少なくとも何れか一方において、いくつかの基準参照ピクチャまたはスタートポイントの候補について予測動きベクトル導出のための処理のうちの少なくとも一部の処理を並列に行うことで、より迅速に動き情報を得ることができるようにされている。
【０１４４】
一例としてバイラテラルマッチング処理部５２の動きベクトル導出部６２においてバイラテラルマッチングを並列に行うことができるような構成とされている場合、動きベクトル導出部６２には、マッチング処理回路が並列に複数設けられている。
【０１４５】
例えば動きベクトル導出部６２にＮ個のマッチング処理回路が設けられているとする。この場合、Ｎ個の各マッチング処理回路は、与えられたスタートポイントの候補についてバイラテラルマッチングによりコストCcur_bilat(id)が最小となる予測動きベクトルMVbilat(id)を導出する演算処理回路とされる。
【０１４６】
以下では、１つのスタートポイントの候補についての最小となるコストCcur_bilat(id)をコストCcur_bilatbest(id)とも称することとし、そのコストCcur_bilatbest(id)に対応する予測動きベクトルMVbilat(id)を予測動きベクトルMVbilatbest(id)とも称することとする。
【０１４７】
いま、例えば候補リストにより示される予測動きベクトルの候補、すなわちスタートポイントの候補がＮ個あるとする。この場合、動きベクトル導出部６２では、Ｎ個のマッチング処理回路によって、１つの基準参照ピクチャのＮ個の各スタートポイントの候補について予測動きベクトルMVbilatbest(id)を導出する演算を並列に行うことができ、より迅速に動き情報を得ることができる。
【０１４８】
例えば各マッチング処理回路において、各スタートポイントの候補について予測動きベクトルMVbilatbest(id)のコストCcur_bilatbest(id)が得られた場合、候補選択部６１はそれらのコストCcur_bilatbest(id)のうちの最も小さいコストCcur_bilatbest(id)に対応する予測動きベクトルMVbilatbest(id)を符号化対象のCUの最終的な予測動きベクトルとする。
【０１４９】
なお、Ｎ個のコストCcur_bilatbest(id)を１つずつ順番に比較するのではなく、Ｎ個のコストCcur_bilatbest(id)を例えばトーナメント方式で比較していくなど、いくつかに分けて複数のコストCcur_bilatbest(id)を同時に比較すれば、より迅速に最小のコストCcur_bilatbest(id)を特定することができる。
【０１５０】
また、例えば候補選択部６１において、複数のスタートポイントの候補（予測動きベクトルの候補）のなかから、１つのスタートポイントの候補を選択するためのコスト演算回路が複数並列に設けられているようにしてもよい。
【０１５１】
そのような場合、例えば１つのコスト演算回路において、１つのスタートポイントの候補についてのコストを算出する処理が行われる。
【０１５２】
すなわち、例えばコスト演算回路は、１つのスタートポイントの候補について、そのスタートポイントの候補である隣接動きベクトルにより示される基準参照ピクチャ上のブロックと、隣接動きベクトルにより示される基準参照ピクチャとは異なる他の参照ピクチャ上のブロックとの差分を求め、その差分に応じたコストを算出する。
【０１５３】
ここで、スタートポイントの候補のコストは、そのスタートポイントの候補、つまり予測動きベクトルの候補の予測動きベクトルらしさを示すものであり、参照ピクチャ上のブロック同士の差分が小さいほどコストの値が小さくなる。
【０１５４】
候補選択部６１では、複数のコスト演算回路によりスタートポイントの候補のコストを計算する処理が並列に行われる。
【０１５５】
候補選択部６１は、全スタートポイントの候補のなかから、最もコストが小さい１つのスタートポイントの候補を選択する。
【０１５６】
この場合、動きベクトル導出部６２は、候補選択部６１により選択された１つのスタートポイントの候補についてのみ、予測動きベクトルMVbilat(id)とコストCcur_bilat(id)を導出する処理を行い、その結果得られた予測動きベクトルMVbilatbest(id)を、符号化対象のCUの最終的な予測動きベクトルとする。したがって、この場合には、動きベクトル導出部６２には１つのマッチング処理回路があればよい。
【０１５７】
このように候補選択部６１に複数のコスト演算回路を並列に設ける場合には、各スタートポイントの候補のコストを求める処理を並列に行うことができ、その結果、より迅速に動き情報を得ることができる。
【０１５８】
バイラテラルマッチング処理部５２だけでなく、バイラテラルマッチング処理部５４においても、候補選択部６３に複数のコスト演算回路が並列に設けられたり、動きベクトル導出部６４に複数のマッチング処理回路が並列に設けられたりするようにしてもよい。
【０１５９】
その他、例えば動きベクトル導出部６２に設けられた複数のマッチング処理回路のそれぞれと、動きベクトル導出部６４に設けられた複数のマッチング処理回路のそれぞれとが直列に接続されるようにしてもよい。この場合、候補選択部６３は、動きベクトル導出部６４の各マッチング処理回路で得られたコストのうちの最も小さいコストに対応する予測動きベクトルを符号化対象のサブブロックの最終的な予測動きベクトルとする。
【０１６０】
なお、以下では、動きベクトル導出部６２に複数のマッチング処理回路が並列に設けられており、候補選択部６１や候補選択部６３、動きベクトル導出部６４には回路が並列には設けられていない場合を例として説明を続ける。
【０１６１】
また、例えば予測部３０は、テンプレートマッチングにより動き情報を導出する構成として、図９に示す構成を有している。
【０１６２】
すなわち、図９に示す例では、予測部３０は候補取得部９１、テンプレートマッチング処理部９２、サブブロック候補取得部９３、およびテンプレートマッチング処理部９４を有している。
【０１６３】
これらの候補取得部９１乃至テンプレートマッチング処理部９４のうちの候補取得部９１およびテンプレートマッチング処理部９２は、符号化対象のCU（CTU）について動き情報を導出する処理ブロックとなっている。これに対して、サブブロック候補取得部９３およびテンプレートマッチング処理部９４は、符号化対象のサブブロックについて動き情報を導出する処理ブロックとなっている。
【０１６４】
候補取得部９１は、候補取得部５１と同様の動作を行って候補リストを生成するとともに候補リストにより示される予測動きベクトルの候補、すなわち周辺領域の隣接動きベクトルを取得してテンプレートマッチング処理部９２に供給する。
【０１６５】
テンプレートマッチング処理部９２は、候補選択部１０１および動きベクトル導出部１０２を有している。
【０１６６】
候補選択部１０１は、候補リストにより示される複数の予測動きベクトルの候補（スタートポイントの候補）のなかから１つの候補を選択する。
【０１６７】
動きベクトル導出部１０２は、予測動きベクトルの候補をスタートポイントの候補としてテンプレートマッチングにより符号化対象のCUの予測動きベクトルを求める。
【０１６８】
すなわち、動きベクトル導出部１０２は、スタートポイントの候補である隣接動きベクトルにより定まる参照ピクチャ上の領域をサーチレンジとし、そのサーチレンジ内の所定位置の領域をテンプレートとする。そして、動きベクトル導出部１０２は、テンプレートマッチング法により、参照ピクチャのテンプレートと、符号化対象のCUに隣接するテンプレートとの差分を計算し、その計算結果から求まるコストを算出する。例えばテンプレートについて求まるコストは、テンプレート同士の差分が小さいほど小さくなるようにされる。
【０１６９】
なお、以下ではスタートポイントの候補を示すインデックスをidとし、そのインデックスidにより示されるスタートポイントの候補に対して参照ピクチャの所定のテンプレートについて得られたコストをコストCcur_temp(id)と記すこととする。また、インデックスidにより示されるスタートポイントの候補について得られた、参照ピクチャの所定のテンプレートについての予測動きベクトルを予測動きベクトルMVtemp(id)とも記すこととする。
【０１７０】
動きベクトル導出部１０２は、テンプレートの位置をサーチレンジ内で動かしながら、各領域をテンプレートとして予測動きベクトルMVtemp(id)とコストCcur_temp(id)を算出する。
【０１７１】
また、１つのスタートポイントの候補についての最小となるコストCcur_temp(id)をコストCcur_tempbest(id)とも称することとし、そのコストCcur_tempbest(id)に対応する予測動きベクトルMVtemp(id)を予測動きベクトルMVtempbest(id)とも称することとする。動きベクトル導出部１０２は、ブロックマッチングにより予測動きベクトルMVtempbest(id)とコストCcur_tempbest(id)を算出する。
【０１７２】
例えば動きベクトル導出部１０２内に、１つのスタートポイントの候補についてテンプレートマッチングにより予測動きベクトルMVtempbest(id)とコストCcur_tempbest(id)を算出するマッチング処理回路が並列に複数設けられているとする。
【０１７３】
この場合、各スタートポイントの候補についてマッチング処理回路により並列に処理がおこなわれ、全てのスタートポイントの候補について参照ピクチャごとに計算した予測動きベクトルMVtempbest(id)のうち、コストCcur_tempbest(id)が最小となる予測動きベクトルMVtempbest(id)が、符号化対象のCUの予測動きベクトルとして候補選択部１０１により選択される。
【０１７４】
また、動きベクトル導出部１０２では、必要に応じて、最終的に得られた予測動きベクトルと、その予測動きベクトルの導出に用いられた予測動きベクトルの候補である隣接動きベクトルとの差分が符号化対象のCUの差分動きベクトルとして算出される。
【０１７５】
テンプレートマッチング処理部９２は、符号化対象のCUの予測動きベクトルをサブブロック候補取得部９３に供給する。
【０１７６】
サブブロック候補取得部９３は、テンプレートマッチング処理部９２からの予測動きベクトルを用いて、サブブロック候補取得部５３と同様の動作を行ってサブブロック候補リストを生成する。
【０１７７】
サブブロック候補取得部９３は生成したサブブロック候補リストにより示される予測動きベクトルの候補、すなわち周辺領域の隣接動きベクトルと、テンプレートマッチング処理部９２から供給された予測動きベクトルとを取得し、テンプレートマッチング処理部９４に供給する。
【０１７８】
テンプレートマッチング処理部９４は、サブブロック候補取得部９３から供給された隣接動きベクトルおよび予測動きベクトルに基づいて、テンプレートマッチング処理部９２と同様の処理を行って符号化対象のサブブロックの予測動きベクトルを導出する。
【０１７９】
テンプレートマッチング処理部９４は、候補選択部１０３および動きベクトル導出部１０４を有しており、これらの候補選択部１０３および動きベクトル導出部１０４は、候補選択部１０１および動きベクトル導出部１０２に対応する。
【０１８０】
また、動きベクトル導出部１０４では、必要に応じて、最終的に得られた予測動きベクトルと、その予測動きベクトルの導出に用いられた予測動きベクトルの候補との差分が符号化対象のサブブロックの差分動きベクトルとして算出される。
【０１８１】
以上のように予測部３０では、テンプレートマッチング処理部９２で導出された予測動きベクトルや差分動きベクトルが符号化対象のCUの動き情報として得られる。また、テンプレートマッチング処理部９４で導出された予測動きベクトルや差分動きベクトルが符号化対象のサブブロックの動き情報として得られる。
【０１８２】
なお、予測部３０においては、バイラテラルマッチングにより動き情報を導出する構成にける場合と同様に、テンプレートマッチング処理部９２およびテンプレートマッチング処理部９４の少なくとも何れか一方において、いくつかの参照ピクチャまたはスタートポイントの候補について予測動きベクトル導出のための処理が並列に行われるようにしてもよい。
【０１８３】
一例としてテンプレートマッチング処理部９２の動きベクトル導出部１０２においてテンプレートマッチングを並列に行うことができるような構成とされている場合、動きベクトル導出部１０２には、マッチング処理回路が並列に複数設けられている。
【０１８４】
例えば動きベクトル導出部１０２にＮ個のマッチング処理回路が設けられているとする。この場合、Ｎ個の各マッチング処理回路は、与えられたスタートポイントの候補についてテンプレートマッチングにより、コストCcur_tempbest(id)と予測動きベクトルMVtempbest(id)を導出する演算処理回路とされる。
【０１８５】
いま、例えば候補リストにより示される予測動きベクトルの候補、すなわちスタートポイントの候補がＮ個あるとする。この場合、動きベクトル導出部１０２では、Ｎ個のマッチング処理回路によって、参照ピクチャのＮ個の各スタートポイントの候補について予測動きベクトルMVtempbest(id)を導出する演算を並列に行うことができ、より迅速に動き情報を得ることができる。
【０１８６】
例えば各マッチング処理回路において、各スタートポイントの候補について予測動きベクトルMVtempbest(id)のコストCcur_tempbest(id)が得られた場合、候補選択部１０１はそれらのコストCcur_tempbest(id)のうちの最も小さいコストCcur_tempbest(id)に対応する予測動きベクトルMVtempbest(id)を符号化対象のCUの最終的な予測動きベクトルとする。
【０１８７】
また、例えば候補選択部６１における場合と同様に、候補選択部１０１にコスト演算回路が複数並列に設けられているようにしてもよい。
【０１８８】
なお、以下では、動きベクトル導出部１０２に複数のマッチング処理回路が並列に設けられており、候補選択部１０１や候補選択部１０３、動きベクトル導出部１０４には回路が並列には設けられていない場合を例として説明を続ける。
【０１８９】
〈画像符号化処理の説明〉
次に、以上において説明した画像符号化装置１１の動作について説明する。
【０１９０】
まず、図１０のフローチャートを参照して、画像符号化装置１１による画像符号化処理について説明する。なお、この画像符号化処理は、CU単位またはサブブロック単位で行われる。
【０１９１】
ステップＳ１１において、制御部２１は、外部からの入力等に基づいて符号化パラメータを設定し、設定した各符号化パラメータを画像符号化装置１１の各部に供給する。
【０１９２】
ステップＳ１１では、例えば上述したヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等が符号化パラメータとして設定される。
【０１９３】
ステップＳ１２において、予測部３０は制御部２１から供給された予測情報Pinfoのモード情報pred_mode_flagに基づいて、インター予測処理を行うか否かを判定する。例えばモード情報pred_mode_flagの値がインター予測処理を示している場合、ステップＳ１２においてインター予測処理を行うと判定される。
【０１９４】
ステップＳ１２においてインター予測処理を行うと判定された場合、ステップＳ１３において、予測部３０は制御部２１から供給された予測情報PinfoのMerge_flagの値が１であるか否か、すなわちMerge_flag＝１であるか否かを判定する。
【０１９５】
ステップＳ１３においてMerge_flag＝１であると判定された場合、すなわちマージモードであると判定された場合、ステップＳ１４において、予測部３０は制御部２１から供給された予測情報PinfoのFRUC_flagの値が１であるか否か、すなわちFRUC_flag＝１であるか否かを判定する。
【０１９６】
ステップＳ１４においてFRUC_flag＝１であると判定された場合、すなわちFRUCモードであると判定された場合、処理はステップＳ１５へと進む。
【０１９７】
ステップＳ１５において、画像符号化装置１１の各部はFRUCマージモードで符号化対象の画像Ｉ（カレントブロック）を符号化する符号化処理を行い、画像符号化処理は終了する。
【０１９８】
FRUCマージモードでの符号化処理では、FRUCモードにより動き情報が導出されて予測情報Pinfoや量子化変換係数レベルlevel等が格納された符号化ストリームが生成される。
【０１９９】
このとき生成される予測情報Pinfoには、例えばMerge_flagやFRUC_flag、FRUC_Mode_flag、参照画像特定情報が含まれており、動きベクトル情報は含まれていない。また、画像Ｉ、すなわちカレントブロックがＰスライスのブロックであるときには、予測情報PinfoにはFRUC_Mode_flagが含まれていないようにされる。
【０２００】
さらに、ここでは説明を省略したが、スキップFRUCモードである場合にはステップＳ１５で行われるFRUCマージモードでの符号化処理と同様の処理が行われ、符号化ストリームが生成されて出力される。但し、スキップFRUCモードでは、符号化ストリームには量子化変換係数レベルlevelは格納されない。
【０２０１】
一方、ステップＳ１４においてFRUC_flag＝１でないと判定された場合、すなわちFRUC_flag＝０であり、FRUCモードではないと判定された場合、処理はステップＳ１６へと進む。
【０２０２】
ステップＳ１６において、画像符号化装置１１の各部はAMVPマージモードで符号化対象の画像Ｉを符号化する符号化処理を行い、画像符号化処理は終了する。
【０２０３】
なお、AMVPマージモードでの符号化処理では、予測部３０においてAMVPモードにより動き補償が行われてインター予測処理が行われる。そして、インター予測処理により得られた予測画像Ｐが用いられてカレントブロックが符号化され、予測情報Pinfoや量子化変換係数レベルlevel等が格納された符号化ストリームが生成される。
【０２０４】
また、ステップＳ１３において、Merge_flag＝１でないと判定された場合、すなわちMerge_flag＝０であり、ノンマージモードであると判定された場合、処理はステップＳ１７へと進む。
【０２０５】
ステップＳ１７において、予測部３０は制御部２１から供給された予測情報PinfoのFRUC_flagの値が１であるか否か、すなわちFRUC_flag＝１であるか否かを判定する。
【０２０６】
ステップＳ１７において、FRUC_flag＝１であると判定された場合、すなわちFRUCモードであると判定された場合、処理はステップＳ１８へと進む。
【０２０７】
ステップＳ１８において、画像符号化装置１１の各部はFRUC AMVPモードで符号化対象の画像Ｉを符号化する符号化処理を行い、画像符号化処理は終了する。
【０２０８】
なお、FRUC AMVPモードでの符号化処理では、FRUCマージモードでの符号化処理と同様の処理が行われて符号化ストリームが生成される。この場合、FRUCモードにより動き情報が導出されて予測情報Pinfoや量子化変換係数レベルlevel等が格納された符号化ストリームが生成される。
【０２０９】
また、予測情報Pinfoには、例えばMerge_flagやFRUC_flag、FRUC_Mode_flag、動きベクトル情報としての差分動きベクトル、参照画像特定情報が含まれている。但し、カレントブロックがＰスライスのブロックであるときには、予測情報PinfoにはFRUC_Mode_flagが含まれていないようにされる。
【０２１０】
これに対して、ステップＳ１７においてFRUC_flag＝１でないと判定された場合、すなわちFRUC_flag＝０であり、FRUCモードではないと判定された場合、処理はステップＳ１９へと進む。
【０２１１】
ステップＳ１９において、画像符号化装置１１の各部はAMVPモードで符号化対象の画像Ｉを符号化する符号化処理を行い、画像符号化処理は終了する。
【０２１２】
なお、AMVPモードでの符号化処理では、予測部３０においてAMVPモードにより動き補償が行われてインター予測処理が行われる。そして、インター予測処理により得られた予測画像Ｐが用いられてカレントブロックが符号化され、予測情報Pinfoや量子化変換係数レベルlevel、動きベクトル情報等が格納された符号化ストリームが生成される。
【０２１３】
また、ステップＳ１２においてインター予測処理を行わないと判定された場合、すなわちイントラ予測処理を行うと判定された場合、処理はステップＳ２０へと進む。
【０２１４】
ステップＳ２０において、画像符号化装置１１の各部はイントラ予測モードで符号化対象の画像Ｉを符号化するイントラ符号化処理を行い、画像符号化処理は終了する。
【０２１５】
イントラ符号化処理では、予測部３０においてイントラ予測モードにより予測画像Ｐが生成される。そして、予測画像Ｐが用いられてカレントブロックが符号化されて、予測情報Pinfoや量子化変換係数レベルlevel等が格納された符号化ストリームが生成される。
【０２１６】
以上のようにして、画像符号化装置１１は、符号化パラメータに応じて入力された画像を符号化し、符号化により得られた符号化ストリームを出力する。このように適切なモードで画像を符号化することにより、符号化効率を向上させることができる。
【０２１７】
〈インター予測処理モード設定処理の説明〉
次に、図１１のフローチャートを参照して、図１０のステップＳ１１の処理に対応するインター予測処理モード設定処理について説明する。
【０２１８】
このインター予測処理モード設定処理は、図１０のステップＳ１１の処理のうちのインター予測処理モードに関する部分の処理である。すなわち、インター予測処理モード設定処理は、Merge_flagとFRUC_flagの値が決定される部分の処理である。また、インター予測処理モード設定処理は、CU単位またはサブブロック単位で行われる。
【０２１９】
ステップＳ５１において、制御部２１は画像符号化装置１１の各部を制御して、符号化対象のブロックについてFRUCマージモードでの符号化処理を行わせ、RDコストJFRUC_MRGを算出させる。
【０２２０】
なお、RDコストは符号化の結果得られる発生ビット量（符号量）や復号画像のSSE（Error Sum of Squares）などに基づいて算出される。
【０２２１】
ステップＳ５２において、制御部２１は画像符号化装置１１の各部を制御して、符号化対象のブロックについてAMVPマージモードでの符号化処理を行わせ、RDコストJMRGを算出させる。
【０２２２】
ステップＳ５３において、制御部２１は画像符号化装置１１の各部を制御して、符号化対象のブロックについてFRUC AMVPモードでの符号化処理を行わせ、RDコストJFRUC_AMVPを算出させる。
【０２２３】
ステップＳ５４において、制御部２１は画像符号化装置１１の各部を制御して、符号化対象のブロックについてAMVPモードでの符号化処理を行わせ、RDコストJAMVPを算出させる。
【０２２４】
ステップＳ５５において、制御部２１は、ステップＳ５１乃至ステップＳ５４の各処理で得られたRDコストJFRUC_MRG、RDコストJMRG、RDコストJFRUC_AMVP、およびRDコストJAMVPのうち、RDコストJFRUC_MRGが最小であるか否かを判定する。
【０２２５】
ステップＳ５５において、RDコストJFRUC_MRGが最小であると判定された場合、処理はステップＳ５６へと進む。この場合、カレントブロックのインター予測モードとして、FRUCマージモードが選択されたことになり、図１０を参照して説明した画像符号化処理では、ステップＳ１５の符号化処理が行われて符号化ストリームが生成されることになる。
【０２２６】
ステップＳ５６において、制御部２１はMerge_flag＝１およびFRUC_flag＝１とする。すなわち、制御部２１は、予測情報PinfoとしてのMerge_flagの値を１とするとともにFRUC_flagの値を１とする。
【０２２７】
ステップＳ５７において、制御部２１はFRUCモードでの動き情報の導出結果に基づいて、FRUC_Mode_flagを生成し、インター予測処理モード設定処理は終了する。但し、カレントブロックがＰスライスのブロックであるときには、ステップＳ５７の処理は行われず、FRUC_Mode_flagは生成されない。
【０２２８】
例えば、FRUCモードでの符号化時において、動き情報の導出にテンプレートマッチング法を採用したときのRDコストJTemplateよりも、動き情報の導出にバイラテラルマッチング法を採用したときのRDコストJBiLateralが小さい場合、FRUC_Mode_flagの値は１とされる。すなわち、ステップＳ５７では値が１であるFRUC_Mode_flagが生成される。これに対して、RDコストJBiLateralがRDコストJTemplate以上である場合、FRUC_Mode_flagの値は０とされる。
【０２２９】
また、ステップＳ５５において、RDコストJFRUC_MRGが最小でないと判定された場合、処理はステップＳ５８へと進む。ステップＳ５８において、制御部２１はRDコストJFRUC_MRG、RDコストJMRG、RDコストJFRUC_AMVP、およびRDコストJAMVPのうち、RDコストJMRGが最小であるか否かを判定する。
【０２３０】
ステップＳ５８においてRDコストJMRGが最小であると判定された場合、処理はステップＳ５９へと進む。この場合、カレントブロックのインター予測モードとして、AMVPマージモードが選択されたことになり、図１０を参照して説明した画像符号化処理では、ステップＳ１６の符号化処理が行われて符号化ストリームが生成されることになる。
【０２３１】
ステップＳ５９において、制御部２１はMerge_flag＝１およびFRUC_flag＝０として、インター予測処理モード設定処理は終了する。
【０２３２】
さらに、ステップＳ５８においてRDコストJMRGが最小でないと判定された場合、処理はステップＳ６０へと進む。
【０２３３】
ステップＳ６０において、制御部２１はRDコストJFRUC_MRG、RDコストJMRG、RDコストJFRUC_AMVP、およびRDコストJAMVPのうち、RDコストJFRUC_AMVPが最小であるか否かを判定する。
【０２３４】
ステップＳ６０においてRDコストJFRUC_AMVPが最小であると判定された場合、ステップＳ６１において、制御部２１はMerge_flag＝０およびFRUC_flag＝１とする。
【０２３５】
この場合、カレントブロックのインター予測モードとして、FRUC AMVPモードが選択されたことになり、図１０を参照して説明した画像符号化処理では、ステップＳ１８の符号化処理が行われて符号化ストリームが生成されることになる。
【０２３６】
ステップＳ６２において、制御部２１はFRUCモードでの動き情報の導出結果に基づいて、FRUC_Mode_flagを生成し、インター予測処理モード設定処理は終了する。但し、カレントブロックがＰスライスのブロックであるときには、ステップＳ６２の処理は行われず、FRUC_Mode_flagは生成されない。
【０２３７】
なお、ステップＳ６２ではステップＳ５７と同様の処理が行われる。
【０２３８】
また、ステップＳ６０において、RDコストJFRUC_AMVPが最小でないと判定された場合、すなわちRDコストJAMVPが最小であると判定された場合、処理はステップＳ６３へと進む。この場合、カレントブロックのインター予測モードとして、AMVPモードが選択されたことになり、図１０を参照して説明した画像符号化処理では、ステップＳ１９の符号化処理が行われて符号化ストリームが生成されることになる。
【０２３９】
ステップＳ６３において、制御部２１はMerge_flag＝０およびFRUC_flag＝０として、インター予測処理モード設定処理は終了する。
【０２４０】
以上のようにして画像符号化装置１１は、各モードのRDコストを算出し、RDコストが最小となるモードを選択して、その選択結果に応じてMerge_flagやFRUC_flagを生成する。これにより、符号化効率を向上させることができる。
【０２４１】
〈FRUCマージモード符号化処理の説明〉
続いて、図１２のフローチャートを参照して、画像符号化装置１１によるFRUCマージモード符号化処理について説明する。なお、このFRUCマージモード符号化処理は、CU単位またはサブブロック単位で行われる。
【０２４２】
ステップＳ９１において、予測部３０は、制御部２１から供給された予測情報Pinfo等に基づいて、処理対象のカレントブロック、すなわち符号化対象の画像ＩであるCUまたはサブブロックがＰスライスのブロックであるか否かを判定する。
【０２４３】
ステップＳ９１においてＰスライスのブロックであると判定された場合、処理はステップＳ９２へと進む。カレントブロックがＰスライスのブロックである場合、Ｐスライスに対しては参照ピクチャが１つしかなく、動き情報の導出時にバイラテラルマッチングを行うことができないので、動き情報の導出方法としてテンプレートマッチングが自動的に採用（選択）される。
【０２４４】
ステップＳ９２において、予測部３０は、テンプレートマッチング法によりカレントブロックの動き情報を導出する。例えば予測部３０は、制御部２１から供給された予測情報Pinfo等に基づいて、フレームメモリ２９から符号化対象のピクチャ（フレーム）と、参照画像特定情報により示される参照ピクチャとを読み出して、それらのピクチャを用いてテンプレートマッチング法によりカレントブロックの動き情報を導出する。
【０２４５】
ステップＳ９２の処理が行われて動き情報が導出されると、その後、処理はステップＳ９７へと進む。
【０２４６】
また、ステップＳ９１においてＰスライスのブロックでないと判定された場合、処理はステップＳ９３へと進む。
【０２４７】
ステップＳ９３において、予測部３０は、テンプレートマッチング法によりカレントブロックの動き情報を導出し、テンプレートマッチング法を採用したときのRDコストJTemplateを算出する。
【０２４８】
例えば予測部３０は、制御部２１から供給された予測情報Pinfo等に基づいて、フレームメモリ２９から符号化対象のピクチャ（フレーム）と、参照画像特定情報により示される参照ピクチャとを読み出す。また、予測部３０は読み出したピクチャを用いてテンプレートマッチング法によりカレントブロックの動き情報を導出するとともに、RDコストJTemplateも算出する。
【０２４９】
ステップＳ９４において、予測部３０は、バイラテラルマッチング法によりカレントブロックの動き情報を導出し、バイラテラルマッチング法を採用したときのRDコストJBiLateralを算出する。
【０２５０】
例えば予測部３０は、制御部２１から供給された予測情報Pinfoの参照画像特定情報により示される２つの参照ピクチャをフレームメモリ２９から読み出す。また、予測部３０は読み出した参照ピクチャを用いてバイラテラルマッチング法によりカレントブロックの動き情報を導出するとともに、RDコストJBiLateralも算出する。
【０２５１】
ステップＳ９５において、予測部３０はRDコストJBiLateralがRDコストJTemplate未満であるか否かを判定する。
【０２５２】
ステップＳ９５において、RDコストJBiLateralがRDコストJTemplate未満であると判定された場合、ステップＳ９６において、予測部３０はバイラテラルマッチング法により導出した動き情報に基づいて予測画像を生成し、演算部２２および演算部２８に供給する。
【０２５３】
例えば予測部３０は、２つの各参照ピクチャのそれぞれにおける動き情報（予測動きベクトル）により示されるブロックのそれぞれを用いた動き補償により生成された画像を予測画像Ｐとする。
【０２５４】
予測画像が生成されると、その後、処理はステップＳ９８へと進む。
【０２５５】
また、ステップＳ９５においてRDコストJBiLateralがRDコストJTemplate未満でないと判定されたか、またはステップＳ９２の処理が行われると、その後、ステップＳ９７の処理が行われる。
【０２５６】
すなわち、ステップＳ９７において、予測部３０はテンプレートマッチング法により導出した動き情報に基づいて予測画像を生成し、演算部２２および演算部２８に供給する。例えば予測部３０は、参照ピクチャにおける動き情報（予測動きベクトル）により示されるブロックの画像を予測画像Ｐとする。
【０２５７】
予測画像が生成されると、その後、処理はステップＳ９８へと進む。
【０２５８】
ステップＳ９６またはステップＳ９７の処理が行われて予測画像Ｐが生成されると、その後、ステップＳ９８の処理が行われる。
【０２５９】
ステップＳ９８において、演算部２２は、供給された画像Ｉと、予測部３０から供給された予測画像Ｐとの差分を予測残差Ｄとして演算し、変換部２３に供給する。
【０２６０】
ステップＳ９９において、変換部２３は、制御部２１から供給された変換情報Tinfoに基づいて、演算部２２から供給された予測残差Ｄに対して直交変換等を行い、その結果得られた変換係数Coeffを量子化部２４に供給する。
【０２６１】
ステップＳ１００において、量子化部２４は、制御部２１から供給された変換情報Tinfoに基づいて、変換部２３から供給された変換係数Coeffをスケーリング（量子化）し、量子化変換係数レベルlevelを導出する。量子化部２４は、量子化変換係数レベルlevelを符号化部２５および逆量子化部２６に供給する。
【０２６２】
ステップＳ１０１において、逆量子化部２６は、制御部２１から供給された変換情報Tinfoに基づいて、量子化部２４から供給された量子化変換係数レベルlevelを、ステップＳ１００の量子化の特性に対応する特性で逆量子化する。逆量子化部２６は、逆量子化により得られた変換係数Coeff_IQを逆変換部２７に供給する。
【０２６３】
ステップＳ１０２において、逆変換部２７は、制御部２１から供給された変換情報Tinfoに基づいて、逆量子化部２６から供給された変換係数Coeff_IQに対して、ステップＳ９９の直交変換等に対応する方法で逆直交変換等を行い、予測残差Ｄ’を導出する。逆変換部２７は、得られた予測残差Ｄ’を演算部２８に供給する。
【０２６４】
ステップＳ１０３において、演算部２８は、逆変換部２７から供給された予測残差Ｄ’と、予測部３０から供給された予測画像Ｐとを加算することにより、局所的な復号画像Recを生成し、フレームメモリ２９に供給する。
【０２６５】
ステップＳ１０４において、フレームメモリ２９は、演算部２８から供給された局所的な復号画像Recを用いてピクチャ単位の復号画像を再構築し、フレームメモリ２９内のバッファで保持する。
【０２６６】
ステップＳ１０５において、符号化部２５は、図１０のステップＳ１１の処理において設定され、制御部２１から供給された符号化パラメータと、ステップＳ１００の処理で量子化部２４から供給された量子化変換係数レベルlevelとを所定の方法で符号化する。
【０２６７】
符号化部２５は、符号化により得られた符号化データを多重化して符号化ストリーム（ビットストリーム）とし、画像符号化装置１１の外部に出力してFRUCマージモード符号化処理は終了する。
【０２６８】
この場合、符号化ストリームには、例えばMerge_flagやFRUC_flag、FRUC_Mode_flag、参照画像特定情報等を符号化して得られたデータと、量子化変換係数レベルlevelを符号化して得られたデータなどが格納されている。このようにして得られた符号化ストリームは、例えば伝送路や記録媒体を介して復号側に伝送される。
【０２６９】
なお、以上において説明したFRUCマージモード符号化処理は、基本的には図１０のステップＳ１５の処理に対応する。但し、より詳細には、ステップＳ１５の時点では、既にテンプレートマッチングを行うか、またはバイラテラルマッチングが行われるかは定められている。そのため、予測情報Pinfoにより示される方法にしたがって動き情報が導出され、得られた動き情報に基づいてステップＳ９６やステップＳ９７で予測画像Ｐが生成される。
【０２７０】
また、図１２におけるステップＳ９１乃至ステップＳ９５の処理は、図１０のステップＳ１１の処理、特にステップＳ１１の処理のうちの図１１のステップＳ５１の処理に対応する。
【０２７１】
すなわち、図１１のステップＳ５１において制御部２１から予測部３０に対してRDコストJFRUC_MRGの算出の指示がなされると、ステップＳ９１乃至ステップＳ９５の処理が行われる。そして、例えば予測部３０は、RDコストJTemplateとRDコストJBiLateralのうちのより小さい方をRDコストJFRUC_MRGとして制御部２１に出力する。なお、カレントブロックがＰスライスのブロックであるときには、RDコストJBiLateralの算出は行われず、RDコストJTemplateがRDコストJFRUC_MRGとして出力される。
【０２７２】
さらに、図１０のステップＳ１５における場合と同様に、図１０のステップＳ１８においても図１２を参照して説明したFRUCマージモード符号化処理と同様の処理が行われる。すなわち、ステップＳ１５における場合とステップＳ１８における場合とでは、図１２のステップＳ１０５において符号化される符号化パラメータが異なる。
【０２７３】
以上のようにして、画像符号化装置１１は、FRUCモードにより動き情報を導出し、符号化対象となるブロックを符号化する。このようにFRUCモードを利用し、復号側において動き情報を導出するようにすることで、符号化ストリームに格納する動きベクトル情報（動き情報）を削減することができ、符号化効率を向上させることができる。
【０２７４】
〈テンプレートマッチングによる動き情報導出処理の説明〉
ここで、図１２のステップＳ９３やステップＳ９２に対応する処理のうちの動き情報を導出する処理について、より詳細に説明する。すなわち、以下、図１３のフローチャートを参照して、予測部３０により行われるテンプレートマッチングによる動き情報導出処理について説明する。
【０２７５】
ステップＳ１３１において、候補取得部９１はスタートポイントの候補を取得することで候補リストを生成する。
【０２７６】
すなわち、候補取得部９１は周辺領域をスタートポイントの候補として収集し、候補リストを生成する。また、候補取得部９１は候補リストにより示される周辺領域の参照ピクチャとの間の隣接動きベクトルを取得してテンプレートマッチング処理部９２に供給する。
【０２７７】
ステップＳ１３２において、動きベクトル導出部１０２は、候補取得部９１から供給された隣接動きベクトルをスタートポイントとし、参照ピクチャごとに各スタートポイントについてテンプレートマッチングにより符号化対象のCUの予測動きベクトルMVtempbest(id)とコストCcur_tempbest(id)を算出する。この場合、フレームメモリ２９から読み出された復号画像である符号化対象のピクチャおよび参照ピクチャが用いられてテンプレートマッチングが行われる。
【０２７８】
なお、ステップＳ１３２では、上述したように複数のマッチング処理回路によって、複数のスタートポイントについて予測動きベクトルとコストを算出する処理が並列に行われる。これにより、より迅速に動き情報を得ることができる。
【０２７９】
ステップＳ１３３において、候補選択部１０１は、ステップＳ１３２で各スタートポイントについて得られた予測動きベクトルMVtempbest(id)のうち、コストCcur_tempbest(id)が最小となる予測動きベクトルMVtempbest(id)を、最終的な予測動きベクトルとして選択する。
【０２８０】
テンプレートマッチング処理部９２は、選択により得られた最終的な予測動きベクトルをサブブロック候補取得部９３に供給する。
【０２８１】
例えば図１２を参照して説明したFRUCマージモード符号化処理がCU単位で行われる場合には、ステップＳ１３３で最終的に得られた予測動きベクトルが動き情報として用いられ、図１２のステップＳ９７の処理が行われる。
【０２８２】
また、例えばFRUC AMVPモードである場合など、符号化ストリームに差分動きベクトルが格納される場合には、差分動きベクトルも算出される。そのような場合、動きベクトル導出部１０２はステップＳ１３３で得られた最終的な予測動きベクトルと、その予測動きベクトルの導出に用いた予測動きベクトルの候補である隣接動きベクトルとの差分を、符号化対象のCUの差分動きベクトルとして算出する。
【０２８３】
ステップＳ１３４において、サブブロック候補取得部９３は、符号化対象のサブブロックについて、スタートポイントの候補を取得することでサブブロック候補リストを生成する。すなわち、サブブロック候補取得部９３は、符号化対象のサブブロックに対して予め定められた符号化対象のCU内の周辺領域と、テンプレートマッチング処理部９２から供給された予測動きベクトルとに基づいてサブブロック候補リストを生成する。
【０２８４】
また、サブブロック候補取得部９３は、サブブロック候補リストにより示される予測動きベクトルの候補、すなわち周辺領域の隣接動きベクトルと、テンプレートマッチング処理部９２から供給された予測動きベクトルとを取得し、テンプレートマッチング処理部９４に供給する。
【０２８５】
ステップＳ１３５において、候補選択部１０３は、全参照ピクチャの全てのスタートポイントの候補のなかから、１つのスタートポイントの候補を選択する。
【０２８６】
すなわち、候補選択部１０３は、各スタートポイントの候補について、スタートポイントの候補である隣接動きベクトルまたは予測動きベクトルにより示される参照ピクチャ上のテンプレートと、符号化対象のサブブロックに隣接するテンプレートとの差分を求める。そして、候補選択部１０３は、求められた差分に基づいて、スタートポイントの候補のコストを算出する。
【０２８７】
ここでは、フレームメモリ２９から読み出された復号画像である符号化対象のピクチャおよび参照ピクチャが用いられて差分が求められる。
【０２８８】
候補選択部１０３は、全てのスタートポイントの候補のなかから、コストが最小となるスタートポイントの候補を選択する。
【０２８９】
ステップＳ１３６において、動きベクトル導出部１０４は、ステップＳ１３５で選択されたスタートポイントの候補について、テンプレートマッチングにより符号化対象のサブブロックの予測動きベクトルとそのコストを算出する。
【０２９０】
すなわち、動きベクトル導出部１０４は、スタートポイントの候補としての隣接動きベクトルまたは予測動きベクトルにより定まる参照ピクチャ上のサーチレンジ内で、参照ピクチャのテンプレートの位置をずらしながらブロックマッチングを行う。
【０２９１】
ブロックマッチングでは、参照ピクチャ上の各位置のテンプレートについて、それらのテンプレートと符号化対象のピクチャ上のサブブロックに隣接するテンプレートとの差分が求められてコストと予測動きベクトルが算出される。この場合においてもフレームメモリ２９から読み出された復号画像である符号化対象のピクチャおよび参照ピクチャが用いられてブロックマッチングが行われる。
【０２９２】
ステップＳ１３７において、動きベクトル導出部１０４は、ステップＳ１３６で算出したテンプレートの位置ごとの予測動きベクトルのうち、コストが最小となる予測動きベクトルを符号化対象のサブブロックの最終的な予測動きベクトルとして選択する。動きベクトル導出部１０４は、このようにして得られた予測動きベクトルをサブブロックの動き情報として出力し、テンプレートマッチングによる動き情報導出処理は終了する。
【０２９３】
例えば図１２を参照して説明したFRUCマージモード符号化処理がサブブロック単位で行われる場合には、ステップＳ１３７で最終的に得られた予測動きベクトルが動き情報として用いられ、図１２のステップＳ９７の処理が行われる。
【０２９４】
また、例えばFRUC AMVPモードである場合など、符号化ストリームに差分動きベクトルが格納される場合には、差分動きベクトルも算出される。そのような場合、動きベクトル導出部１０４はステップＳ１３７で得られた最終的な予測動きベクトルと、その予測動きベクトルの導出に用いた予測動きベクトルの候補との差分を、符号化対象のサブブロックの差分動きベクトルとして算出する。
【０２９５】
以上のようにして予測部３０は、テンプレートマッチング法により動き情報を導出する。このように動き情報の導出時において、予測動きベクトルを算出する処理を複数のスタートポイントの候補について並列に行うことで、より迅速に動き情報を得ることができる。
【０２９６】
〈バイラテラルマッチングによる動き情報導出処理の説明〉
また、図１２のステップＳ９４に対応する処理のうちの動き情報を導出する処理について、より詳細に説明する。すなわち、以下、図１４のフローチャートを参照して、予測部３０により行われるバイラテラルマッチングによる動き情報導出処理について説明する。
【０２９７】
バイラテラルマッチングによる動き情報導出処理では、候補取得部５１によりステップＳ１６１の処理が行われ、動きベクトル導出部６２によりステップＳ１６２の処理が行われ、候補選択部６１によりステップＳ１６３の処理が行われる。
【０２９８】
また、サブブロック候補取得部５３によりステップＳ１６４の処理が行われ、候補選択部６３によりステップＳ１６５の処理が行われ、動きベクトル導出部６４によりステップＳ１６６およびステップＳ１６７の処理が行われる。
【０２９９】
なお、これらのステップＳ１６１乃至ステップＳ１６７の処理は、図１３のステップＳ１３１乃至ステップＳ１３７の処理と同様であるため、その説明は省略する。
【０３００】
但し、ステップＳ１６２およびステップＳ１６６では、テンプレートマッチングではなく、バイラテラルマッチングにより予測動きベクトルとコストの計算が行われる。
【０３０１】
そして、ステップＳ１６３で得られた予測動きベクトル、またはステップＳ１６７で得られた予測動きベクトルが、図１２のステップＳ９６の処理で動き情報として用いられる。また、ステップＳ１６３やステップＳ１６７では必要に応じて差分動きベクトルも算出される。
【０３０２】
以上のようにして予測部３０は、バイラテラルマッチング法により動き情報を導出する。このように動き情報の導出時において、予測動きベクトルを算出する処理を複数のスタートポイントの候補について並列に行うことで、より迅速に動き情報を得ることができる。
【０３０３】
〈画像復号装置の説明〉
次に、図２に示した画像符号化装置１１から出力された符号化ストリームを復号する、本技術を適用した画像処理装置としての画像復号装置について説明する。
【０３０４】
図１５は、本技術を適用した画像復号装置の一実施の形態の構成例を示す図である。
【０３０５】
図１５に示す画像復号装置２０１は、画像符号化装置１１により生成された符号化ストリームを、画像符号化装置１１における符号化方法に対応する復号方法で復号する。例えば、画像復号装置２０１は、HEVCに提案された技術やJVETにて提案された技術を実装している。
【０３０６】
なお、図１５においては、処理部やデータの流れ等の主なものを示しており、図１５に示されるものが全てとは限らない。つまり、画像復号装置２０１において、図１５においてブロックとして示されていない処理部が存在したり、図１５において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
【０３０７】
画像復号装置２０１は復号部２１１、逆量子化部２１２、逆変換部２１３、演算部２１４、フレームメモリ２１５、および予測部２１６を有している。
【０３０８】
画像復号装置２０１は、入力された符号化ストリームに対して、CUごとまたはサブブロックごとに復号を行う。
【０３０９】
復号部２１１は、供給された符号化ストリームを、符号化部２５における符号化方法に対応する所定の復号方法で復号する。例えば、復号部２１１は、シンタックステーブルの定義に沿って、符号化ストリームのビット列からヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等の符号化パラメータと、量子化変換係数レベルlevelとを復号する。
【０３１０】
例えば復号部２１１は、符号化パラメータに含まれるsplit flagに基づいてCUを分割し、各量子化変換係数レベルlevelに対応するCUやサブブロックを順に復号対象のブロックに設定する。
【０３１１】
また、復号部２１１は、復号により得られた符号化パラメータを画像復号装置２０１の各ブロックに供給する。例えば、復号部２１１は予測情報Pinfoを予測部２１６に供給し、変換情報Tinfoを逆量子化部２１２と逆変換部２１３に供給し、ヘッダ情報Hinfoを各ブロックに供給する。また、復号部２１１は、量子化変換係数レベルlevelを逆量子化部２１２に供給する。
【０３１２】
逆量子化部２１２は、復号部２１１から供給された変換情報Tinfoに基づいて、復号部２１１から供給された量子化変換係数レベルlevelの値をスケーリング（逆量子化）し、変換係数Coeff_IQを導出する。この逆量子化は、画像符号化装置１１の量子化部２４により行われる量子化の逆処理である。なお、逆量子化部２６は、この逆量子化部２１２と同様の逆量子化を行う。逆量子化部２１２は、得られた変換係数Coeff_IQを逆変換部２１３に供給する。
【０３１３】
逆変換部２１３は、復号部２１１から供給された変換情報Tinfo等に基づいて、逆量子化部２１２から供給された変換係数Coeff_IQに対して逆直交変換等を行い、その結果得られた予測残差Ｄ’を演算部２１４に供給する。
【０３１４】
逆変換部２１３で行われる逆直交変換は、画像符号化装置１１の変換部２３により行われる直交変換の逆処理である。なお、逆変換部２７は、この逆変換部２１３と同様の逆直交変換を行う。
【０３１５】
演算部２１４は、逆変換部２１３から供給された予測残差Ｄ’と、その予測残差Ｄ’に対応する予測画像Ｐとを加算して局所的な復号画像Recを導出する。
【０３１６】
演算部２１４は、得られた局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、得られた復号画像を外部に出力する。また、演算部２１４は、局所的な復号画像Recをフレームメモリ２１５にも供給する。
【０３１７】
フレームメモリ２１５は、演算部２１４から供給された局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、フレームメモリ２１５内のバッファに格納する。
【０３１８】
また、フレームメモリ２１５は予測部２１６により指定される復号画像を参照画像（参照ピクチャ）としてバッファより読み出し、予測部２１６に供給する。さらにフレームメモリ２１５は、その復号画像の生成に係るヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfoなどをフレームメモリ２１５内のバッファに格納するようにしてもよい。
【０３１９】
予測部２１６は、予測情報Pinfoのモード情報pred_mode_flagに基づいて、フレームメモリ２１５に格納された、復号対象のブロックと同一時刻の復号画像を参照画像として取得する。そして、予測部２１６は、参照画像を用いて復号対象のブロックに対して、イントラ予測モード情報が示すイントラ予測モードのイントラ予測処理を行う。
【０３２０】
また、予測部２１６は、予測情報Pinfoのモード情報pred_mode_flagと参照画像特定情報に基づいてフレームメモリ２１５に格納された、復号対象のブロックと同一時刻の復号画像を取得するとともに、復号対象のブロックとは異なる時刻の復号画像を参照画像として取得する。
【０３２１】
予測部２１６は、画像符号化装置１１の予測部３０と同様に、Merge_flagやFRUC_flag、FRUC_Mode_flag、動きベクトル情報等に基づいて、フレームメモリ２１５から取得した画像を用いてMerge_flagおよびFRUC_flagにより定まるモードでのインター予測処理を行う。
【０３２２】
予測部２１６は、イントラ予測処理またはインター予測処理の結果生成された復号対象のブロックの予測画像Ｐを演算部２１４に供給する。
【０３２３】
〈予測部の構成について〉
また、画像復号装置２０１の予測部２１６も、画像符号化装置１１の予測部３０における場合と同様に、バイラテラルマッチングやテンプレートマッチングにより動き情報を導出する構成を有している。
【０３２４】
例えば予測部２１６は、バイラテラルマッチングにより動き情報を導出する構成として、図１６に示す構成を有している。
【０３２５】
すなわち、図１６に示す例では予測部２１６は候補取得部２４１、バイラテラルマッチング処理部２４２、サブブロック候補取得部２４３、およびバイラテラルマッチング処理部２４４を有している。
【０３２６】
また、バイラテラルマッチング処理部２４２は候補選択部２５１および動きベクトル導出部２５２を有しており、バイラテラルマッチング処理部２４４は候補選択部２５３および動きベクトル導出部２５４を有している。
【０３２７】
なお、候補取得部２４１乃至バイラテラルマッチング処理部２４４は、図７に示した候補取得部５１乃至バイラテラルマッチング処理部５４に対応し、それらの候補取得部５１乃至バイラテラルマッチング処理部５４と同様の構成となっているとともに同様の動作を行うため、その説明は省略する。
【０３２８】
候補選択部２５１乃至動きベクトル導出部２５４も、図７に示した候補選択部６１乃至動きベクトル導出部６４と同様の構成となっているとともに同様の動作を行うため、その説明は省略する。
【０３２９】
さらに、例えば予測部２１６は、テンプレートマッチングにより動き情報を導出する構成として、図１７に示す構成を有している。
【０３３０】
すなわち、図１７に示す例では予測部２１６は候補取得部３０１、テンプレートマッチング処理部３０２、サブブロック候補取得部３０３、およびテンプレートマッチング処理部３０４を有している。
【０３３１】
また、テンプレートマッチング処理部３０２は候補選択部３１１および動きベクトル導出部３１２を有しており、テンプレートマッチング処理部３０４は候補選択部３１３および動きベクトル導出部３１４を有している。
【０３３２】
なお、候補取得部３０１乃至テンプレートマッチング処理部３０４は、図９に示した候補取得部９１乃至テンプレートマッチング処理部９４に対応し、それらの候補取得部９１乃至テンプレートマッチング処理部９４と同様の構成となっているとともに同様の動作を行うため、その説明は省略する。
【０３３３】
候補選択部３１１乃至動きベクトル導出部３１４も、図９に示した候補選択部１０１乃至動きベクトル導出部１０４と同様の構成となっているとともに同様の動作を行うため、その説明は省略する。
【０３３４】
〈画像復号処理の説明〉
次に、画像復号装置２０１の動作について説明する。
【０３３５】
まず、図１８のフローチャートを参照して、画像復号装置２０１による画像復号処理について説明する。
【０３３６】
ステップＳ２１１において、復号部２１１は、画像復号装置２０１に供給された符号化ストリームを復号し、符号化パラメータと量子化変換係数レベルlevelを得る。
【０３３７】
復号部２１１は、符号化パラメータを画像復号装置２０１の各部に供給するとともに、量子化変換係数レベルlevelを逆量子化部２１２に供給する。
【０３３８】
ステップＳ２１２において、復号部２１１は符号化パラメータに含まれるsplit flagに基づいてCTUを分割し、各量子化変換係数レベルlevelに対応するブロック、すなわちCUまたはサブブロックを復号対象のブロックに設定する。なお、以降のステップＳ２１３乃至ステップＳ２２１の処理は復号対象のブロックごとに行われる。
【０３３９】
復号対象のブロックが定められると、その後、復号部２１１から出力された予測情報Pinfoに基づいて、予測部２１６によりステップＳ２１３乃至ステップＳ２１５の処理が行われて復号時のモードが決定される。なお、これらのステップＳ２１３乃至ステップＳ２１５の処理は、予測部３０ではなく予測部２１６により行われる点を除いて、図１０のステップＳ１２乃至ステップＳ１４の処理と同様であるので、その説明は省略する。
【０３４０】
ステップＳ２１５においてFRUC_flag＝１であると判定された場合、すなわちFRUCモードであると判定された場合、処理はステップＳ２１６へと進む。
【０３４１】
ステップＳ２１６において、画像復号装置２０１の各部はFRUCマージモードで復号対象のブロック（カレントブロック）の画像を復号する復号処理を行い、画像復号処理は終了する。
【０３４２】
FRUCマージモードでの復号処理では、FRUCモードにより動き情報が導出され、得られた動き情報を用いたインター予測処理を行うことにより生成された予測画像Ｐが用いられて復号対象のブロックの画像が生成される。
【０３４３】
これに対して、ステップＳ２１５においてFRUC_flag＝１でないと判定された場合、すなわちFRUC_flag＝０であり、FRUCモードではないと判定された場合、処理はステップＳ２１７へと進む。
【０３４４】
ステップＳ２１７において、画像復号装置２０１の各部はAMVPマージモードで復号対象のブロックの画像を復号する復号処理を行い、画像復号処理は終了する。
【０３４５】
なお、AMVPマージモードでの復号処理では、予測部２１６においてAMVPモードにより動き補償が行われてインター予測処理が行われる。そして、その結果得られた予測画像Ｐと、予測残差Ｄ’とが加算されて復号対象のブロックの画像とされる。
【０３４６】
また、ステップＳ２１４においてMerge_flag＝１でないと判定された場合、すなわちMerge_flag＝０であり、ノンマージモードであると判定された場合、処理はステップＳ２１８へと進む。
【０３４７】
ステップＳ２１８において、予測部２１６は復号部２１１から供給された予測情報PinfoのFRUC_flagの値が１であるか否か、すなわちFRUC_flag＝１であるか否かを判定する。
【０３４８】
ステップＳ２１８において、FRUC_flag＝１であると判定された場合、すなわちFRUCモードであると判定された場合、処理はステップＳ２１９へと進む。
【０３４９】
ステップＳ２１９において、画像復号装置２０１の各部はFRUC AMVPモードで復号対象のブロックの画像を復号する復号処理を行い、画像復号処理は終了する。
【０３５０】
なお、FRUC AMVPモードでの復号処理では、FRUCマージモードでの復号処理と同様の処理が行われて動き情報が導出され、復号対象のブロックの画像が生成される。但し、FRUC AMVPモードでは、符号化ストリームには差分動きベクトルが格納されているため、その差分動きベクトルが用いられて復号対象のブロックの予測動きベクトルが導出される。
【０３５１】
これに対して、ステップＳ２１８においてFRUC_flag＝１でないと判定された場合、すなわちFRUC_flag＝０であり、FRUCモードではないと判定された場合、処理はステップＳ２２０へと進む。
【０３５２】
ステップＳ２２０において、画像復号装置２０１の各部はAMVPモードで復号対象のブロックの画像を復号する復号処理を行い、画像復号処理は終了する。
【０３５３】
なお、AMVPモードでの復号処理では、予測部２１６においてAMVPモードにより動き補償が行われてインター予測処理が行われる。そして、インター予測処理により得られた予測画像Ｐと予測残差Ｄ’とが加算されて復号対象のブロックの画像とされる。
【０３５４】
また、ステップＳ２１３においてインター予測処理を行わないと判定された場合、すなわちイントラ予測処理を行うと判定された場合、処理はステップＳ２２１へと進む。
【０３５５】
ステップＳ２２１において、画像復号装置２０１の各部はイントラ予測モードで復号対象のブロックの画像を復号するイントラ復号処理を行い、画像復号処理は終了する。
【０３５６】
イントラ復号処理では、予測部２１６においてイントラ予測モードにより予測画像Ｐが生成され、予測画像Ｐと予測残差Ｄ’とが加算されて復号対象のブロックの画像とされる。
【０３５７】
以上のようにして画像復号装置２０１は、符号化パラメータに応じて復号対象のブロックを復号する。このように適切なモードで画像を復号することにより、少ない符号量の符号化ストリームでも品質のよい画像を得ることができる。
【０３５８】
〈FRUCマージモード復号処理の説明〉
続いて、図１８のステップＳ２１６の処理に対応するFRUCマージモード復号処理について説明する。すなわち、以下、図１９のフローチャートを参照して、画像復号装置２０１により行われるFRUCマージモード復号処理について説明する。なお、このFRUCマージモード復号処理は、復号対象のブロックごとに行われる。
【０３５９】
ステップＳ２５１において、逆量子化部２１２は、図１８のステップＳ２１１の処理により得られた量子化変換係数レベルlevelを逆量子化して変換係数Coeff_IQを導出し、逆変換部２１３に供給する。
【０３６０】
ステップＳ２５２において、逆変換部２１３は、逆量子化部２１２から供給された変換係数Coeff_IQに対して逆直交変換等を行い、その結果得られた予測残差Ｄ’を演算部２１４に供給する。
【０３６１】
ステップＳ２５３において、予測部２１６は、復号部２１１から供給された予測情報Pinfo等に基づいて、復号対象のブロックがＰスライスのブロックであるか否かを判定する。
【０３６２】
ステップＳ２５３においてＰスライスのブロックでないと判定された場合、処理はステップＳ２５４へと進む。
【０３６３】
ステップＳ２５４において、予測部２１６はFRUC_Mode_flagを取得する。
【０３６４】
すなわち、復号対象のブロックがＰスライスのブロックでない場合、図１８のステップＳ２１１では、復号部２１１によって符号化ストリームからFRUC_Mode_flagが読み出され、読み出されたFRUC_Mode_flagを含む予測情報Pinfoが復号部２１１から予測部２１６へと供給される。予測部２１６は、このようにして供給された予測情報PinfoからFRUC_Mode_flagを取得する。
【０３６５】
ステップＳ２５５において、予測部２１６はFRUC_Mode_flagに基づいて、バイラテラルマッチングを行うか否かを判定する。例えばFRUC_Mode_flagの値が１である場合、バイラテラルマッチングを行うと判定される。
【０３６６】
ステップＳ２５５においてバイラテラルマッチングを行うと判定された場合、ステップＳ２５６において予測部２１６はバイラテラルマッチング法により動き情報を導出する。これにより、復号対象のブロックの動き情報として、予測動きベクトルが得られる。
【０３６７】
ステップＳ２５７において、予測部２１６は、ステップＳ２５６の処理により導出した動き情報、すなわち予測動きベクトルに基づいて動き補償を行って予測画像Ｐを生成し、演算部２１４に供給する。
【０３６８】
例えば予測部２１６は、フレームメモリ２１５から参照画像特定情報により示される２つの復号画像を参照ピクチャとして読み出すとともに、各参照ピクチャにおける予測動きベクトルにより示されるブロックを用いた動き補償により予測画像Ｐを生成する。
【０３６９】
このようにして予測画像Ｐが得られると、その後、処理はステップＳ２６０へと進む。
【０３７０】
これに対して、ステップＳ２５５においてバイラテラルマッチングを行わないと判定されたか、またはステップＳ２５３においてＰスライスのブロックであると判定された場合、ステップＳ２５８の処理が行われる。
【０３７１】
ステップＳ２５８において予測部２１６はテンプレートマッチング法により動き情報を導出する。これにより、復号対象のブロックの動き情報として予測動きベクトルが得られる。
【０３７２】
ステップＳ２５９において、予測部２１６は、ステップＳ２５８の処理により導出した動き情報、すなわち予測動きベクトルに基づいて動き補償を行って予測画像Ｐを生成し、演算部２１４に供給する。
【０３７３】
例えば予測部２１６は、フレームメモリ２１５から参照画像特定情報により示される１つの復号画像を参照ピクチャとして読み出すとともに、参照ピクチャにおける予測動きベクトルにより示されるブロックの画像を予測画像Ｐとする。
【０３７４】
このようにして予測画像Ｐが得られると、その後、処理はステップＳ２６０へと進む。
【０３７５】
ステップＳ２５７またはステップＳ２５９の処理が行われて予測画像Ｐが生成されると、ステップＳ２６０の処理が行われる。
【０３７６】
ステップＳ２６０において、演算部２１４は逆変換部２１３から供給された予測残差Ｄ’と、予測部２１６から供給された予測画像Ｐとを加算し、局所的な復号画像Recを導出する。演算部２１４は、得られた局所的な復号画像Recを用いてピクチャ単位の復号画像を再構築し、得られた復号画像を画像復号装置２０１の外部に出力する。また、演算部２１４は、その局所的な復号画像Recをフレームメモリ２１５に供給する。
【０３７７】
ステップＳ２６１において、フレームメモリ２１５は演算部２１４から供給された局所的な復号画像Recを用いてピクチャ単位の復号画像を再構築し、フレームメモリ２１５内のバッファに保持する。このようにして復号画像が得られると、FRUCマージモード復号処理は終了する。
【０３７８】
以上のようにして画像復号装置２０１は、FRUCモードにより動き情報を導出し、復号対象となるブロックを復号する。このようにFRUCモードを利用し、復号側において動き情報を導出することで、符号化ストリームの符号量を削減することができ、符号化効率を向上させることができる。
【０３７９】
なお、図１８のステップＳ２１９においても、図１９を参照して説明したFRUCマージモード復号処理と同様の処理が行われる。但し、FRUC AMVPモードでは、符号化ストリームには差分動きベクトルが格納されているため、その差分動きベクトルが用いられて復号対象のブロックの予測動きベクトルが導出される。
【０３８０】
〈バイラテラルマッチングによる動き情報導出処理の説明〉
ここで、図２０のフローチャートを参照して、予測部２１６により行われる、図１９のステップＳ２５６の処理に対応するバイラテラルマッチングによる動き情報導出処理について説明する。
【０３８１】
バイラテラルマッチングによる動き情報導出処理では、候補取得部２４１によりステップＳ２９１の処理が行われ、動きベクトル導出部２５２によりステップＳ２９２の処理が行われ、候補選択部２５１によりステップＳ２９３の処理が行われる。
【０３８２】
また、サブブロック候補取得部２４３によりステップＳ２９４の処理が行われ、候補選択部２５３によりステップＳ２９５の処理が行われ、動きベクトル導出部２５４によりステップＳ２９６およびステップＳ２９７の処理が行われる。
【０３８３】
なお、これらのステップＳ２９１乃至ステップＳ２９７の処理は、図１４のステップＳ１６１乃至ステップＳ１６７の処理と同様であるため、その説明は省略する。
【０３８４】
また、FRUC AMVPモードである場合など、符号化ストリームに差分動きベクトルが格納されているときには、符号化ストリームから読み出されて復号部２１１から予測部２１６へと供給された差分動きベクトルが予測動きベクトルの候補に加算されて予測動きベクトルとされる。
【０３８５】
〈テンプレートマッチングによる動き情報導出処理の説明〉
また、図２１のフローチャートを参照して、予測部２１６により行われる、図１９のステップＳ２５８の処理に対応するテンプレートマッチングによる動き情報導出処理について説明する。
【０３８６】
テンプレートマッチングによる動き情報導出処理では、候補取得部３０１によりステップＳ３３１の処理が行われ、動きベクトル導出部３１２によりステップＳ３３２の処理が行われ、候補選択部３１１によりステップＳ３３３の処理が行われる。
【０３８７】
また、サブブロック候補取得部３０３によりステップＳ３３４の処理が行われ、候補選択部３１３によりステップＳ３３５の処理が行われ、動きベクトル導出部３１４によりステップＳ３３６およびステップＳ３３７の処理が行われる。
【０３８８】
なお、これらのステップＳ３３１乃至ステップＳ３３７の処理は、図１３のステップＳ１３１乃至ステップＳ１３７の処理と同様であるため、その説明は省略する。
【０３８９】
また、FRUC AMVPモードである場合など、符号化ストリームに差分動きベクトルが格納されているときには、符号化ストリームから読み出されて復号部２１１から予測部２１６へと供給された差分動きベクトルが予測動きベクトルの候補に加算されて予測動きベクトルとされる。
【０３９０】
以上のように、画像復号装置２０１においても予測動きベクトル導出時に一部の処理を並列に行うことで、より迅速に動き情報を得ることができる。
【０３９１】
〈第２の実施の形態〉
〈インター予測処理モード設定処理の説明〉
ところで、第１の実施の形態では、テンプレートマッチングやバイラテラルマッチングで動き情報を導出する際に、複数のマッチング処理回路で並列に処理を行うことで動き情報の導出の高速化を実現する例について説明した。
【０３９２】
しかし、この場合、スタートポイントの候補数に応じた数だけマッチング処理回路が必要となり、マッチング処理回路の数が少ない場合にはスタートポイントの候補数が最大となるときに処理速度が最も低下することになる。
【０３９３】
また、処理速度が最も低下するときでもリアルタイム再生を保証しようとすると、十分な速度で動き情報を導出することができる分の数だけマッチング処理回路を設ける必要があるが、マッチング処理回路の数が増えると回路規模の増大が懸念されることになる。
【０３９４】
そこで、テンプレートマッチングやバイラテラルマッチングで動き情報を導出する際に、スタートポイントの候補数の上限を設定することで、より迅速に動き情報を得ることができるようにしてもよい。
【０３９５】
そのような場合、例えば制御部２１がテンプレートマッチング時におけるスタートポイントの候補の上限数を示すmax_num_fruc_template_candと、バイラテラルマッチング時におけるスタートポイントの候補の上限数を示すmax_num_fruc_bilateral_candとを生成する。
【０３９６】
なお、以下、max_num_fruc_template_candおよびmax_num_fruc_bilateral_candを特に区別する必要のない場合には、単に候補上限数情報とも称することとする。
【０３９７】
例えばスタートポイントの候補の上限数は、予め定められているようにすることができる。また、例えばスタートポイントの候補の上限数は、画像のレベルやティア、すなわち符号化対象となる動画像（コンテンツ）のフレームレートやビットレート、解像度（画像サイズ）などに基づいて動的に定められるようにすることもできる。
【０３９８】
その他、例えば符号化対象となる動画像を再生する再生デバイスの種類、再生デバイスのバッテリ容量や最大消費電力、再生デバイスの処理能力、再生デバイスが有するメモリのアクセス帯域の上限値、再生デバイスの最大リソースなどに基づいてスタートポイントの候補の上限数が定められてもよい。さらに、再生デバイスにおいて並列に設けられているマッチング処理回路の数などに基づいてスタートポイントの候補の上限数が定められてもよい。スタートポイントの候補の上限数を適切に定めることで、リアルタイム再生を保証することもできるようになる。
【０３９９】
このような候補上限数情報は、符号化対象の動画像全体に対して１つ定められるようにしてもよいし、ピクチャごとやスライスごとに定めてもよいし、CUごとやサブブロックごとに定めてもよい。例えば候補上限数情報をスライスごとに定める場合には、CUごとやサブブロックごとに候補上限数情報を定める場合よりも符号化ストリーム全体の符号量をより少なくすることができる。
【０４００】
制御部２１は、候補上限数情報を生成すると、その候補上限数情報をシーケンスパラメータセットやスライスヘッダに格納する。
【０４０１】
このように候補上限数情報が生成される場合、画像符号化装置１１では、図２２に示すインター予測処理モード設定処理が行われる。以下、図２２のフローチャートを参照して、画像符号化装置１１によるインター予測処理モード設定処理について説明する。
【０４０２】
ステップＳ３７１において、制御部２１は、テンプレートマッチング時におけるスタートポイントの候補の上限数を決定し、その決定結果を示すmax_num_fruc_template_candを生成する。例えばスタートポイントの候補の上限数は、レベルやティアなどの符号化対象となる画像（動画像）に関する情報、再生デバイスの処理能力等の再生デバイスに関する情報などに基づいて決定される。
【０４０３】
ステップＳ３７２において、制御部２１は、バイラテラルマッチング時におけるスタートポイントの候補の上限数を決定し、その決定結果を示すmax_num_fruc_bilateral_candを生成する。例えばスタートポイントの候補の上限数は、ステップＳ３７１における場合と同様にして定められる。
【０４０４】
制御部２１は、生成した候補上限数情報であるmax_num_fruc_template_candおよびmax_num_fruc_bilateral_candを、ヘッダ情報Hinfoにおけるシーケンスパラメータセットやスライスヘッダなどの所定の位置に格納する。したがって、例えば図１２のステップＳ１０５では、候補上限数情報が符号化されて符号化ストリームに格納されることになる。
【０４０５】
候補上限数情報がヘッダ情報Hinfoに格納されると、その後、ステップＳ３７３乃至ステップＳ３８５の処理が行われてインター予測処理モード設定処理は終了するが、これらの処理は図１１のステップＳ５１乃至ステップＳ６３の処理と同様であるので、その説明は省略する。
【０４０６】
以上のようにして画像符号化装置１１は、候補上限数情報を生成し、ヘッダ情報Hinfoに格納する。これにより、復号側において候補上限数情報に従ってスタートポイントの候補数を制限することができ、より迅速に動き情報を得ることができるようになる。
【０４０７】
〈バイラテラルマッチングによる動き情報導出処理の説明〉
また、図２２に示したインター予測処理モード設定処理が行われる場合、画像符号化装置１１の予測部３０では、図２３に示すバイラテラルマッチングによる動き情報導出処理と、図２４に示すテンプレートマッチングによる動き情報導出処理が行われる。
【０４０８】
まず、図２３のフローチャートを参照して、画像符号化装置１１の予測部３０により行われるバイラテラルマッチングによる動き情報導出処理について説明する。
【０４０９】
ステップＳ４１１において、候補取得部５１はスタートポイントの候補を取得することで候補リストを生成する。なお、ステップＳ４１１では図１４のステップＳ１６１の処理と同様の処理が行われる。
【０４１０】
ステップＳ４１２において、予測部３０の候補取得部５１はスタートポイントの候補数を制限する。すなわち、候補取得部５１は制御部２１からmax_num_fruc_bilateral_candを取得し、そのmax_num_fruc_bilateral_candにより示される数を候補数の上限とする。これにより、スタートポイントの候補数がmax_num_fruc_bilateral_candにより示される数に制限される。
【０４１１】
スタートポイントの候補数が制限されると、その後、ステップＳ４１３乃至ステップＳ４１８の処理が行われてバイラテラルマッチングによる動き情報導出処理は終了するが、これらの処理は図１４のステップＳ１６２乃至ステップＳ１６７の処理と同様であるので、その説明は省略する。
【０４１２】
但し、ステップＳ４１３では、ステップＳ４１２で定められた、制限後の数のスタートポイントの候補についてのみバイラテラルマッチングが行われて予測動きベクトルが算出される。
【０４１３】
例えばmax_num_fruc_bilateral_candにより示される数が３であるとする。この場合、ステップＳ４１３では、候補リストにより示されるスタートポイントの候補のうち、予め定められた３つの候補が実際のスタートポイントとして用いられ、それらの３つのスタートポイントについてバイラテラルマッチングが行われて予測動きベクトルが算出される。
【０４１４】
したがって、この例では動きベクトル導出部６２において、３つのマッチング処理回路によりスタートポイントの候補について予測動きベクトルを算出する処理が並列に行われることになる。
【０４１５】
なお、候補リストにより示されるスタートポイントの候補のうち、ステップＳ４１３でどのスタートポイントの候補を用いるかは、候補上限数情報により示される候補の数、つまり制限後の候補の数に対して予め定められているものとする。換言すれば、候補上限数情報により示される候補の数に対して、スタートポイントの候補から除外される候補が予め定められている。
【０４１６】
また、ここではステップＳ４１３で用いられるスタートポイントの候補が、候補上限数情報により示される候補の数に制限される例について説明したが、バイラテラルマッチング処理部５４においてもスタートポイントの候補数が制限されるようにしてもよい。
【０４１７】
以上のようにして予測部３０は、スタートポイントの候補の数を制限し、候補上限数情報により示される数の候補を実際のスタートポイントとして用いて動き情報を導出する。これにより、より迅速に動き情報を得ることができる。
【０４１８】
また、候補数の上限を定めるようにすることで、動きベクトル導出部６２に設けるマッチング処理回路の数も低減させることができるようになり、回路規模の増加を抑制することができる。例えば符号化対象の動画像によらず、常に候補上限数情報により示される上限数が同じであれば、並列に設けるマッチング処理回路の数も上限数だけでよくなる。
【０４１９】
〈テンプレートマッチングによる動き情報導出処理の説明〉
続いて、図２４のフローチャートを参照して、画像符号化装置１１の予測部３０により行われるテンプレートマッチングによる動き情報導出処理について説明する。
【０４２０】
ステップＳ４５１において、候補取得部９１はスタートポイントの候補を取得することで候補リストを生成する。なお、ステップＳ４５１では図１３のステップＳ１３１の処理と同様の処理が行われる。
【０４２１】
ステップＳ４５２において、予測部３０の候補取得部９１はスタートポイントの候補数を制限する。
【０４２２】
すなわち、候補取得部９１は制御部２１からmax_num_fruc_template_candを取得し、そのmax_num_fruc_template_candにより示される数を候補数の上限とする。これにより、スタートポイントの候補数がmax_num_fruc_template_candにより示される数に制限される。
【０４２３】
スタートポイントの候補数が制限されると、その後、ステップＳ４５３乃至ステップＳ４５８の処理が行われてテンプレートマッチングによる動き情報導出処理は終了するが、これらの処理は図１３のステップＳ１３２乃至ステップＳ１３７の処理と同様であるので、その説明は省略する。
【０４２４】
但し、ステップＳ４５３では、ステップＳ４５２で定められた、制限後の数のスタートポイントの候補についてのみテンプレートマッチングが行われて予測動きベクトルが算出される。
【０４２５】
例えばmax_num_fruc_template_candにより示される数が３であるとする。この場合、ステップＳ４５３では、候補リストにより示されるスタートポイントの候補のうち、予め定められた３つの候補が実際のスタートポイントとして用いられ、それらの３つのスタートポイントについてテンプレートマッチングが行われて予測動きベクトルが算出される。
【０４２６】
なお、候補リストにより示されるスタートポイントの候補のうち、ステップＳ４５３でどのスタートポイントの候補を用いるかは、候補上限数情報により示される候補の数、つまり制限後の候補の数に対して予め定められているものとする。
【０４２７】
また、ここではステップＳ４５３で用いられるスタートポイントの候補が、候補上限数情報により示される候補の数に制限される例について説明したが、テンプレートマッチング処理部９４においてもスタートポイントの候補数が制限されるようにしてもよい。
【０４２８】
以上のようにして予測部３０は、スタートポイントの候補の数を制限し、候補上限数情報により示される数の候補を実際のスタートポイントとして用いて動き情報を導出する。これにより、より迅速に動き情報を得ることができる。また、候補数の上限を定めるようにすることで、動きベクトル導出部１０２に設けるマッチング処理回路の数も低減させることができるようになり、回路規模の増加を抑制することができる。
【０４２９】
〈FRUCマージモード復号処理の説明〉
また、max_num_fruc_bilateral_candやmax_num_fruc_template_candが符号化ストリームに格納される場合、画像復号装置２０１では、図１８に示した画像復号処理のステップＳ２１１において、復号により得られた符号化パラメータのヘッダ情報Hinfoからmax_num_fruc_bilateral_candとmax_num_fruc_template_candが読み出される。
【０４３０】
そして、これらのmax_num_fruc_bilateral_candやmax_num_fruc_template_candが復号部２１１から予測部２１６へと供給される。
【０４３１】
また、図１８のステップＳ２１６に対応するFRUCマージモード復号処理として、例えば図２５に示す処理が行われる。以下、図２５のフローチャートを参照して、画像復号装置２０１により行われるFRUCマージモード復号処理について説明する。
【０４３２】
なお、ステップＳ４９１乃至ステップＳ４９４の処理は、図１９のステップＳ２５１乃至ステップＳ２５４の処理と同様であるので、その説明は省略する。
【０４３３】
ステップＳ４９５において、予測部２１６は、復号部２１１から候補上限数情報、すなわちmax_num_fruc_bilateral_candおよびmax_num_fruc_template_candを取得する。
【０４３４】
候補上限数情報が取得されると、その後、ステップＳ４９６乃至ステップＳ５０２の処理が行われてFRUCマージモード復号処理は終了するが、これらの処理は図１９のステップＳ２５５乃至ステップＳ２６１の処理と同様であるので、その説明は省略する。
【０４３５】
但し、ステップＳ４９７では、max_num_fruc_bilateral_candにより制限された数のスタートポイントの候補についてバイラテラルマッチング処理が行われる。また、ステップＳ４９９では、max_num_fruc_template_candにより制限された数のスタートポイントの候補についてテンプレートマッチング処理が行われる。
【０４３６】
以上のように予測部２１６が候補上限数情報を取得することで、動き情報の導出時にスタートポイントの候補の数を制限し、より迅速に動き情報を得ることができるようになる。
【０４３７】
〈バイラテラルマッチングによる動き情報導出処理の説明〉
ここで、図２５のステップＳ４９７の処理に対応する処理について説明する。すなわち、以下、図２６のフローチャートを参照して、予測部２１６により行われるバイラテラルマッチングによる動き情報導出処理について説明する。
【０４３８】
なお、ステップＳ５３１の処理は図２０のステップＳ２９１の処理と同様であるので、その説明は省略する。
【０４３９】
ステップＳ５３２において、予測部２１６の候補取得部２４１はスタートポイントの候補数を制限する。すなわち、候補取得部２４１は図２５のステップＳ４９５の処理において復号部２１１から取得したmax_num_fruc_bilateral_candに基づいて、そのmax_num_fruc_bilateral_candにより示される数を候補数の上限とする。これにより、スタートポイントの候補数がmax_num_fruc_bilateral_candにより示される数に制限される。
【０４４０】
スタートポイントの候補数が制限されると、その後、ステップＳ５３３乃至ステップＳ５３８の処理が行われてバイラテラルマッチングによる動き情報導出処理は終了するが、これらの処理は図２０のステップＳ２９２乃至ステップＳ２９７の処理と同様であるので、その説明は省略する。
【０４４１】
但し、ステップＳ５３３では、図２３のステップＳ４１３における場合と同様に、ステップＳ５３２で定められた制限後の数のスタートポイントの候補についてのみバイラテラルマッチングが行われて予測動きベクトルが算出される。
【０４４２】
以上のように予測部２１６はスタートポイントの数を制限してバイラテラルマッチングを行い、動き情報を導出する。これにより、より迅速に動き情報を得ることができる。
【０４４３】
〈テンプレートマッチングによる動き情報導出処理の説明〉
また、図２５のステップＳ４９９の処理に対応する処理について説明する。すなわち、以下、図２７のフローチャートを参照して、予測部２１６により行われるテンプレートマッチングによる動き情報導出処理について説明する。
【０４４４】
なお、ステップＳ５７１の処理は図２１のステップＳ３３１の処理と同様であるので、その説明は省略する。
【０４４５】
ステップＳ５７２において、予測部２１６の候補取得部３０１はスタートポイントの候補数を制限する。すなわち、候補取得部３０１は図２５のステップＳ４９５の処理において復号部２１１から取得したmax_num_fruc_template_candに基づいて、そのmax_num_fruc_template_candにより示される数を候補数の上限とする。これにより、スタートポイントの候補数がmax_num_fruc_template_candにより示される数に制限される。
【０４４６】
スタートポイントの候補数が制限されると、その後、ステップＳ５７３乃至ステップＳ５７８の処理が行われてテンプレートマッチングによる動き情報導出処理は終了するが、これらの処理は図２１のステップＳ３３２乃至ステップＳ３３７の処理と同様であるので、その説明は省略する。
【０４４７】
但し、ステップＳ５７３では、図２４のステップＳ４５３における場合と同様に、ステップＳ５７２で定められた、制限後の数のスタートポイントの候補についてのみテンプレートマッチングが行われて予測動きベクトルが算出される。
【０４４８】
以上のように予測部２１６はスタートポイントの数を制限してテンプレートマッチングを行い、動き情報を導出する。これにより、より迅速に動き情報を得ることができる。
【０４４９】
〈第３の実施の形態〉
〈候補上限数情報について〉
ところで、テンプレートマッチングでは、例えば図５を参照して説明したように、カレントブロックの近傍にある領域がテンプレートとして用いられる。
【０４５０】
したがって、例えば復号によりテンプレートの画像が得られた後でないと、テンプレートマッチング、すなわちブロックマッチングの処理を開始することができない。例えばテンプレートの画像が得られるまでに時間がかかると、ブロックマッチングの処理の開始が遅れることになり、そのようなことはリアルタイム再生の観点からは望ましくない。換言すれば、ブロックマッチングの処理をより早いタイミングで開始することができればリアルタイム再生で有利となる。
【０４５１】
そこで、より迅速に動き情報を得ることができるようにするために、場合によっては上述したmax_num_fruc_template_candの値を０とするようにしてもよい。
【０４５２】
この場合、max_num_fruc_template_candの値が０であれば、テンプレートマッチングは行われずに、バイラテラルマッチングが行われて動き情報が導出されることになる。したがって、より早いタイミングで動き情報を導出するためのブロックマッチングを開始することができる。
【０４５３】
同様に、適宜、max_num_fruc_bilateral_candの値が０とされ、そのようなときにはバイラテラルマッチングが行われず、テンプレートマッチングが行われて動き情報が導出されるようにしてもよい。
【０４５４】
例えば符号化側において、迅速に動き情報を導出したいピクチャやブロックであることや、動き情報の導出に時間がかかっても十分な画質を確保したいピクチャやブロックであること等が定まっていることがある。換言すれば、符号化対象のピクチャやブロックに対して、バイラテラルマッチングまたはテンプレートマッチングの何れにより動き情報を導出したいかが定まっていることがある。
【０４５５】
そのような場合に、制御部２１において、適切にmax_num_fruc_template_candやmax_num_fruc_bilateral_candの値を定めれば、より迅速に動き情報を得ることができるようになる。
【０４５６】
このように、適宜、候補上限数情報の値を０としてテンプレートマッチングまたはバイラテラルマッチングが行われないようにする場合、例えば図２２のステップＳ３７１やステップＳ３７２において、適宜、max_num_fruc_template_candの値が０とされたり、max_num_fruc_bilateral_candの値が０とされたりする。
【０４５７】
この場合、例えば図１２に示したFRUCマージモード符号化処理では、予測部３０は制御部２１から候補上限数情報を取得し、取得した候補上限数情報に応じて動き情報を導出する。すなわち、max_num_fruc_template_cand＝０であるときには、ステップＳ９３の処理は行われず、またmax_num_fruc_bilateral_cand＝０であるときには、ステップＳ９４の処理は行われない。これにより、より迅速に符号化を行うことができるようになる。
【０４５８】
また、max_num_fruc_template_candやmax_num_fruc_bilateral_candが候補上限数情報として符号化ストリームに格納される場合、必ずそれらの候補上限数情報のうちの一方の値が０とされるとする。この場合、画像復号装置２０１の予測部２１６では、候補上限数情報を参照することで、FRUCモード時にバイラテラルマッチングとテンプレートマッチングの何れの方法により動き情報を導出すればよいかを特定することができる。
【０４５９】
したがって、そのような場合には、図１９のステップＳ２５４において予測部２１６は、復号部２１１からmax_num_fruc_template_candおよびmax_num_fruc_bilateral_candを取得する。そして、ステップＳ２５５では、予測部２１６はステップＳ２５４で取得したmax_num_fruc_template_candおよびmax_num_fruc_bilateral_candの値に基づいて、バイラテラルマッチングを行うかを判定する。
【０４６０】
特にこの場合、FRUC_Mode_flagが不要となるので、画像符号化装置１１では図２２のステップＳ３７９およびステップＳ３８４の処理が行われず、符号化ストリームにFRUC_Mode_flagが格納されないようにすることも可能である。
【０４６１】
〈第４の実施の形態〉
〈バイラテラルマッチングによる動き情報導出処理の説明〉
一般的にテンプレートマッチングやバイラテラルマッチングにより予測動きベクトルを導出する場合、まずはスタートポイントの候補、すなわち予測動きベクトルの候補が収集されて候補リストが生成される。
【０４６２】
そして、次にその候補リストにより示される予測動きベクトルの候補が用いられて、それらの予測動きベクトルの候補のなかから最適なものが選択される。すなわち、予測動きベクトルの候補に基づいて、最適な予測動きベクトルが求められる。
【０４６３】
アプリケーション等にもよるが一般的に動画像の放送側では符号化（エンコード）する際には処理に時間がかかってもよいが、テレビやパーソナルコンピュータなどでの再生側ではリアルタイムで復号（デコード）を行う必要があることが多い。しかし、予測動きベクトルの候補に基づいて予測動きベクトルを得る処理は処理量が多いので、場合によってはリアルタイム再生ができなくなってしまう可能性がある。
【０４６４】
また、復号側では原画像がないため、テンプレートマッチングやバイラテラルマッチングにより求められた予測動きベクトルは、原画像に対しては必ずしも最適なものとはならず、最適ではない予測動きベクトルが選択されてしまう可能性もある。
【０４６５】
そこで、符号化側において、符号化前の原画像を用いて予測動きベクトルの候補を選択しておき、復号側ではその予測動きベクトルの候補を用いて予測動きベクトルの微調整のみを行うようにしてもよい。
【０４６６】
そのような場合、例えば図７に示した候補選択部６１や、図９に示した候補選択部１０１は、上述した１つのコスト演算回路が設けられている構成または並列に接続された複数のコスト演算回路が設けられた構成とされる。
【０４６７】
また、例えば図７に示した動きベクトル導出部６２や図９に示した動きベクトル導出部１０２、図１６に示した動きベクトル導出部２５２、および図１７に示した動きベクトル導出部３１２は、上述した１つのマッチング処理回路が設けられている構成とされる。
【０４６８】
さらに、この場合、予測部３０では、バイラテラルマッチングによる動き情報導出処理として、例えば図２８に示す処理が行われる。すなわち、以下、図２８のフローチャートを参照して、画像符号化装置１１により行われるバイラテラルマッチングによる動き情報導出処理について説明する。
【０４６９】
なお、ステップＳ６１１の処理は図１４のステップＳ１６１の処理と同様であるので、その説明は省略する。
【０４７０】
ステップＳ６１２において、候補取得部５１は、ステップＳ６１１で得られた各スタートポイントの候補、すなわち予測動きベクトルの候補に対して、それらの予測動きベクトルの候補を識別するインデックス番号を割り振る。例えば予測動きベクトルの候補、すなわち周辺領域の位置ごとに割り振られるインデックス番号は予め定められている。
【０４７１】
ステップＳ６１３において、候補選択部６１は、原画像を用いて全参照ピクチャについて全てのスタートポイントの候補、すなわち予測動きベクトルの候補のなかから、１つの予測動きベクトルの候補を選択する。
【０４７２】
例えば候補選択部６１は各予測動きベクトルの候補について、予測動きベクトルの候補である隣接動きベクトルにより示される２つの参照ピクチャ上のブロックのそれぞれと、原画像上の符号化対象のCUとの差分を求め、求められた差分に基づいて予測動きベクトルの候補のコストを算出する。
【０４７３】
候補選択部６１は、全ての予測動きベクトルの候補のなかから、コストが最小となる予測動きベクトルの候補を選択する。
【０４７４】
ここで、コストの算出に用いられる２つの参照ピクチャはフレームメモリ２９から読み出された復号画像であるが、符号化対象のCUを含む画像として、演算部２２に供給されるものと同じ原画像が用いられる。このように原画像を用いてコストを算出することで、より適切に、つまりより正確な予測動きベクトルの候補を選択することができる。
【０４７５】
予測部３０は、このようにして選択された予測動きベクトルの候補のインデックス番号を制御部２１に出力する。そして、図１０のステップＳ１１では、制御部２１は予測部３０から供給されたインデックス番号を予測情報Pinfo等に格納する。したがって、例えば図１２のステップＳ１０５では予測動きベクトルの候補、すなわちスタートポイントの候補のインデックス番号が符号化されて格納された符号化ストリームが得られることになる。
【０４７６】
ステップＳ６１４において、動きベクトル導出部６２は、ステップＳ６１３で選択されたスタートポイントの候補、すなわち予測動きベクトルの候補について、バイラテラルマッチングにより符号化対象のCUの予測動きベクトルとそのコストを算出する。なお、ステップＳ６１４では、フレームメモリ２９から読み出された復号画像が参照ピクチャとして用いられて、図１４のステップＳ１６６と同様の処理が行われる。
【０４７７】
ステップＳ６１５において、動きベクトル導出部６２は、ステップＳ６１４で算出した予測動きベクトルのうち、コストが最小となる予測動きベクトルを符号化対象のCUの最終的な予測動きベクトルとして選択し、サブブロック候補取得部５３に供給する。
【０４７８】
また、例えばFRUC AMVPモードである場合など、符号化ストリームに差分動きベクトルが格納される場合には、ステップＳ６１５では予測動きベクトルの候補と予測動きベクトルとの差分が差分動きベクトルとして算出され、得られた差分動きベクトルが符号化ストリームに格納される。なお、差分動きベクトルの算出にも原画像が用いられるようにしてもよい。
【０４７９】
このようにして符号化対象のCUの予測動きベクトルが得られると、その後、ステップＳ６１６乃至ステップＳ６１９の処理が行われてバイラテラルマッチングによる動き情報導出処理は終了するが、これらの処理は図１４のステップＳ１６４乃至ステップＳ１６７の処理と同様であるのでその説明は省略する。
【０４８０】
以上のようにして予測部３０は予測動きベクトルに対応する予測動きベクトルの候補を示すインデックス番号を出力する。これにより、画像復号装置２０１側において、適切な予測動きベクトルの候補を選択することができるとともに、その予測動きベクトルの候補についてのみ処理を行えばよくなり、少ない処理量でより迅速に適切な動き情報を得ることができるようになる。
【０４８１】
〈テンプレートマッチングによる動き情報導出処理の説明〉
同様に、予測部３０では、テンプレートマッチングによる動き情報導出処理として、例えば図２９に示す処理が行われる。すなわち、以下、図２９のフローチャートを参照して、画像符号化装置１１により行われるテンプレートマッチングによる動き情報導出処理について説明する。
【０４８２】
なお、ステップＳ６５１の処理は図１３のステップＳ１３１の処理と同様であるので、その説明は省略する。
【０４８３】
また、ステップＳ６５１の処理が行われると、その後、候補取得部９１によりステップＳ６５２の処理が行われ、候補選択部１０１によりステップＳ６５３の処理が行われる。なお、ステップＳ６５２およびステップＳ６５３の処理は、図２８のステップＳ６１２およびステップＳ６１３の処理と同様であるので、その説明は省略する。
【０４８４】
但し、ステップＳ６５３では各予測動きベクトルの候補について、予測動きベクトルの候補である隣接動きベクトルにより示される１つの参照ピクチャ上のブロック（復号画像）と、原画像上の符号化対象のCUとの差分が求められてコストが算出される。そして、全ての予測動きベクトルの候補のなかから、コストが最小となる予測動きベクトルの候補が選択される。
【０４８５】
予測部３０は、このようにして選択された予測動きベクトルの候補のインデックス番号を制御部２１に出力する。そして、図１０のステップＳ１１では、制御部２１は予測部３０から供給されたインデックス番号を予測情報Pinfo等に格納する。したがって、例えば図１２のステップＳ１０５では予測動きベクトルの候補、すなわちスタートポイントの候補のインデックス番号が符号化されて格納された符号化ストリームが得られることになる。
【０４８６】
ステップＳ６５４において、動きベクトル導出部１０２は、ステップＳ６５３で選択されたスタートポイントの候補、すなわち予測動きベクトルの候補について、テンプレートマッチングにより符号化対象のCUの予測動きベクトルとそのコストを算出する。なお、ステップＳ６５４では、フレームメモリ２９から読み出された復号画像が符号化対象のピクチャおよび参照ピクチャとして用いられて、図１３のステップＳ１３６と同様の処理が行われる。
【０４８７】
ステップＳ６５５において、動きベクトル導出部１０２は、ステップＳ６５４で算出した予測動きベクトルのうち、コストが最小となる予測動きベクトルを符号化対象のCUの最終的な予測動きベクトルとして選択し、サブブロック候補取得部９３に供給する。
【０４８８】
また、例えばFRUC AMVPモードである場合など、符号化ストリームに差分動きベクトルが格納される場合には、ステップＳ６５５では差分動きベクトルも算出され、得られた差分動きベクトルが符号化ストリームに格納される。
【０４８９】
このようにして符号化対象のCUの予測動きベクトルが得られると、その後、ステップＳ６５６乃至ステップＳ６５９の処理が行われてテンプレートマッチングによる動き情報導出処理は終了するが、これらの処理は図１３のステップＳ１３４乃至ステップＳ１３７の処理と同様であるのでその説明は省略する。
【０４９０】
以上のようにして予測部３０は予測動きベクトルに対応するスタートポイントの候補を示すインデックス番号を出力する。これにより、少ない処理量でより迅速に適切な動き情報を得ることができるようになる。
【０４９１】
なお、ここでは符号化対象のCUについて、スタートポイントの候補のインデックス番号を符号化ストリームに格納する例について説明したが、サブブロックについても同様にしてスタートポイントの候補のインデックス番号を符号化ストリームに格納してもよい。
【０４９２】
〈バイラテラルマッチングによる動き情報導出処理の説明〉
一方、画像復号装置２０１では、図３０に示すバイラテラルマッチングによる動き情報導出処理および図３１に示すテンプレートマッチングによる動き情報導出処理が行われる。
【０４９３】
まず、以下、図３０のフローチャートを参照して、画像復号装置２０１により行われる、バイラテラルマッチングによる動き情報導出処理について説明する。
【０４９４】
なお、ステップＳ６９１の処理は、図２０のステップＳ２９１の処理と同様であるので、その説明は省略する。
【０４９５】
ステップＳ６９２において、候補取得部２４１は、ステップＳ６９１で得られた各スタートポイントの候補、すなわち予測動きベクトルの候補に対して、それらのスタートポイントの候補を識別するインデックス番号を割り振る。なお、ステップＳ６９２では図２８のステップＳ６１２と同様の処理が行われる。
【０４９６】
ステップＳ６９３において、予測部２１６は、復号部２１１からスタートポイントの候補を示すインデックス番号を取得する。
【０４９７】
すなわち、復号部２１１では、符号化ストリームの復号によりスタートポイントの候補のインデックス番号が得られる。予測部２１６は、このインデックス番号が含まれた予測情報Pinfo等を復号部２１１から取得することで、インデックス番号を取得する。ステップＳ６９３で得られるインデックス番号は、図２８のステップＳ６１３で選択されたスタートポイントの候補のインデックス番号である。
【０４９８】
ステップＳ６９４において、候補選択部２５１はステップＳ６９３で取得されたインデックス番号に基づいて１つのスタートポイントの候補を選択する。
【０４９９】
具体的には、候補選択部２５１は候補リストにより示されるスタートポイントの候補、つまり予測動きベクトルの候補のなかから、ステップＳ６９３で取得されたインデックス番号により示される予測動きベクトルの候補を選択する。
【０５００】
予測動きベクトルの候補が選択されると、動きベクトル導出部２５２によりステップＳ６９５およびステップＳ６９６の処理が行われて予測動きベクトルが導出される。
【０５０１】
なお、これらの処理は、図２８のステップＳ６１４およびステップＳ６１５の処理と同様であるので、その説明は省略する。但し、ステップＳ６９５では、ステップＳ６９４で選択されたスタートポイントの候補、つまり予測動きベクトルの候補についてのみバイラテラルマッチングによりコストと予測動きベクトルが算出される。
【０５０２】
また、例えばFRUC AMVPモードである場合など、符号化ストリームに差分動きベクトルが格納される場合には、ステップＳ６９５およびステップＳ６９６の処理は行われない。この場合、予測部２１６により復号部２１１から差分動きベクトルが取得され、ステップＳ６９４で選択された予測動きベクトルの候補としての隣接動きベクトルに、差分動きベクトルが加算されたものが予測動きベクトルとされる。
【０５０３】
ステップＳ６９６の処理が行われて復号対象のCUの予測動きベクトルが得られると、その後、ステップＳ６９７乃至ステップＳ７００の処理が行われてバイラテラルマッチングによる動き情報導出処理は終了する。なお、これらのステップＳ６９７乃至ステップＳ７００の処理は、図２０のステップＳ２９４乃至ステップＳ２９７の処理と同様であるので、その説明は省略する。
【０５０４】
以上のようにして予測部２１６は、インデックス番号により示されるスタートポイントの候補のみ処理を行って動き情報を導出する。これにより、複数のスタートポイントの候補ごとに処理を行う必要がなくなるので画像復号装置２０１側の処理量が削減される。その結果、より迅速に動き情報を得ることができる。しかも、スタートポイントの候補として、画像符号化装置１１側で指定されたインデックス番号により示されるものを用いることで、より正確な動き情報を導出することができる。
【０５０５】
〈テンプレートマッチングによる動き情報導出処理の説明〉
続いて、図３１のフローチャートを参照して、画像復号装置２０１により行われるテンプレートマッチングによる動き情報導出処理について説明する。
【０５０６】
なお、ステップＳ７３１の処理は図２１のステップＳ３３１の処理と同様であるので、その説明は省略する。
【０５０７】
また、ステップＳ７３１の処理が行われると、その後、候補取得部３０１によりステップＳ７３２の処理が行われ、予測部２１６によりステップＳ７３３の処理が行われる。さらに、候補選択部３１１によりステップＳ７３４の処理が行われ、動きベクトル導出部３１２によりステップＳ７３５およびステップＳ７３６の処理が行われる。
【０５０８】
なお、これらのステップＳ７３２乃至ステップＳ７３６の処理は、図３０のステップＳ６９２乃至ステップＳ６９６の処理と同様であるので、その説明は省略する。
【０５０９】
但し、ステップＳ７３５では、ステップＳ７３４で選択されたスタートポイントの候補、つまり予測動きベクトルの候補についてのみテンプレートマッチングによりコストと予測動きベクトルが算出される。
【０５１０】
また、例えばFRUC AMVPモードである場合など、符号化ストリームに差分動きベクトルが格納される場合には、ステップＳ７３５およびステップＳ７３６の処理は行われない。この場合、予測部２１６により復号部２１１から差分動きベクトルが取得され、ステップＳ７３４で選択された予測動きベクトルの候補としての隣接動きベクトルに、差分動きベクトルが加算されたものが予測動きベクトルとされる。
【０５１１】
ステップＳ７３６の処理が行われて復号対象のCUの予測動きベクトルが得られると、その後、ステップＳ７３７乃至ステップＳ７４０の処理が行われてテンプレートマッチングによる動き情報導出処理は終了する。なお、これらのステップＳ７３７乃至ステップＳ７４０の処理は、図２１のステップＳ３３４乃至ステップＳ３３７の処理と同様であるので、その説明は省略する。
【０５１２】
以上のようにして予測部２１６は、インデックス番号により示されるスタートポイントの候補のみ処理を行って動き情報を導出する。これにより、複数のスタートポイントの候補ごとに処理を行う必要がなくなるので画像復号装置２０１側の処理量が削減され、より迅速に動き情報を得ることができる。また、スタートポイントの候補として、画像符号化装置１１側で指定されたインデックス番号により示されるものを用いることで、より正確な動き情報を導出することができる。
【０５１３】
〈第５の実施の形態〉
〈改良テンプレートモードについて〉
ところで、テンプレートマッチングでは、例えば図３２に示すようにカレントブロックCB51に隣接する領域TM52-1と領域TM52-2の復号画像（デコード画像）がテンプレートとして用いられる。
【０５１４】
したがって、これらの領域TM52-1および領域TM52-2の復号画像が得られるまではテンプレートマッチングによるブロックマッチングの処理を開始することができない。通常、復号（デコード）の処理手順から領域TM52-1および領域TM52-2の復号画像が得られるまでには時間がかかる。そのため、複数のブロック（CU）について並列に符号化や復号の処理を行うことができないので、処理の高速化が困難である。
【０５１５】
また、バイラテラルマッチングでは、例えば図３を参照して説明したように、画像上の物体の動きは、ブロックBL11とカレントブロックCB11とブロックBL12とを直線的に結ぶ動きに限定されてしまう。しかし、実際には直線的に移動しない物体（画像）も存在するため、バイラテラルマッチングでの予測動きベクトルの導出（探索）に失敗することもあり、符号化効率が悪化してしまう。すなわち、適切な予測動きベクトルを得ることができないことがあった。
【０５１６】
そこで、FRUCモードである場合に、テンプレートマッチング法とバイラテラルマッチング法に加えて、改良テンプレートマッチング法によっても動き情報を導出することができるようにしてもよい。すなわち、FRUCモードである場合に、テンプレートマッチング法、バイラテラルマッチング法、および改良テンプレートマッチング法のうちの何れか１つの方法により動き情報が導出されるようにしてもよい。
【０５１７】
なお、FRUCモードである場合に、動き情報の導出方法として、バイラテラルマッチング法および改良テンプレートマッチング法のうちの何れか一方を選択できるようにしてもよいが、以下ではFRUCモードである場合に、テンプレートマッチング法、バイラテラルマッチング法、および改良テンプレートマッチング法のうちの何れか１つの方法を選択することができるものとして説明を続ける。
【０５１８】
ここで、改良テンプレートマッチングの概要について説明する。
【０５１９】
例えば図３３に示すように、符号化対象のピクチャPIC11と、参照ピクチャであるピクチャPIC12およびピクチャPIC13とがあるとする。なお、図３３において図４における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０５２０】
この例では、ピクチャPIC11上のカレントブロックCB11が符号化対象または復号対象となっている。また、ピクチャPIC12はリファレンスリストRef0により示される、ピクチャPIC11よりも時間的に前の参照ピクチャであり、ピクチャPIC13はリファレンスリストRef1により示される、ピクチャPIC11よりも時間的に後の参照ピクチャである。
【０５２１】
改良テンプレートマッチングでは、まずカレントブロックCB11について、テンプレートマッチング時やバイラテラルマッチング時と同様に、カレントブロックCB11に隣接する周辺領域が予測動きベクトルの候補とされて、それらの周辺領域の隣接動きベクトルが取得される。
【０５２２】
次に、例えばピクチャPIC12について、１つの予測動きベクトルの候補により示されるブロックBL61と、カレントブロックCB11との差分が計算され、予測動きベクトルの候補についてのコストが算出される。このコストはブロックBL61とカレントブロックCB11の差分が小さいほど値が小さくなる。
【０５２３】
同様にして他の予測動きベクトルの候補についてもカレントブロックCB11との差分が計算され、コストが算出される。
【０５２４】
ピクチャPIC12について、予測動きベクトルの候補ごとにコストが算出されると、それらのコストのうちの値が最小となるコストの予測動きベクトルの候補が、ピクチャPIC12についての予測動きベクトルとされる。ここでは、例えばブロックBL61に対応する予測動きベクトルの候補のコストが最小であったとする。
【０５２５】
なお、以下、リファレンスリストRef0の参照ピクチャについて求めたカレントブロックの予測動きベクトル、すなわちカレントブロックとリファレンスリストRef0の参照ピクチャとの間の予測動きベクトルを予測動きベクトルMVL0とも称することとする。
【０５２６】
続いて、予測動きベクトルMVL0により示されるブロックBL61がカレントブロックCB11の位置にあるものとされる。つまり、ブロックBL61の画像がカレントブロックCB11の画像であるものとして用いられる。
【０５２７】
また、カレントブロックCB11について、カレントブロックCB11に隣接する周辺領域が予測動きベクトルの候補とされて、それらの周辺領域のピクチャPIC13についての隣接動きベクトルが取得される。
【０５２８】
次に、例えばピクチャPIC13について、１つの予測動きベクトルの候補により示されるブロックBL62と、カレントブロックCB11として用いられるブロックBL61との差分が計算され、予測動きベクトルの候補についてのコストが算出される。このコストはブロックBL62とブロックBL61の差分が小さいほど値が小さくなる。
【０５２９】
同様にして他の予測動きベクトルの候補についてもブロックBL61との差分が計算され、コストが算出される。
【０５３０】
ピクチャPIC13について、予測動きベクトルの候補ごとにコストが算出されると、それらのコストのうちの値が最小となるコストの予測動きベクトルの候補が選択される。
【０５３１】
さらに、選択された予測動きベクトルの候補により定まるピクチャPIC13上の領域がサーチレンジとされて、そのサーチレンジ内でブロックBL62の位置をずらしながら、ブロックマッチングにより予測動きベクトルが算出される。
【０５３２】
すなわち、サーチレンジ内のブロックBL62と、ブロックBL61との差分が計算され、各ブロックBL62位置についての予測動きベクトルとコストが算出される。このコストはブロックBL61とブロックBL62の差分が小さいほど値が小さくなる。
【０５３３】
ピクチャPIC13について、各ブロックBL62位置のコストが算出されると、それらのコストのうちの値が最小となるコストの予測動きベクトルが、ピクチャPIC13とカレントブロックCB11との間の予測動きベクトルとされる。
【０５３４】
なお、以下、リファレンスリストRef1の参照ピクチャについて求めた予測動きベクトル、すなわちカレントブロックとリファレンスリストRef1の参照ピクチャとの間の予測動きベクトルを予測動きベクトルMVL1とも称することとする。
【０５３５】
例えば、この例では予測動きベクトルMVL0が画像符号化装置１１側で導出され、得られた予測動きベクトルMVL0に対応する予測動きベクトルの候補を示す情報が画像復号装置２０１に伝送される。そして、画像復号装置２０１では、画像符号化装置１１から指定された予測動きベクトルMVL0が用いられて予測動きベクトルMVL1が導出される。
【０５３６】
なお、ここでは予測動きベクトルMVL0が導出された後、予測動きベクトルMVL1が導出される例について説明したが、予測動きベクトルMVL1が導出された後、予測動きベクトルMVL0が導出されるようにしてもよい。
【０５３７】
そのような場合には、予測動きベクトルMVL1が画像符号化装置１１側で導出され、得られた予測動きベクトルMVL1に対応する予測動きベクトルの候補を示す情報が画像復号装置２０１に伝送される。そして、画像復号装置２０１では、画像符号化装置１１から指定された予測動きベクトルMVL1が用いられて予測動きベクトルMVL0が導出される。
【０５３８】
以下では、予測動きベクトルMVL0が画像符号化装置１１側で導出され、予測動きベクトルMVL1が画像復号装置２０１側で導出されるものとして説明を続ける。
【０５３９】
以上のような改良テンプレートマッチングでは、画像符号化装置１１において、予測動きベクトルMVL0導出時において予測動きベクトルの候補を選択する際に、原画像を用いてコストを計算することができる。そのため、より正確な、つまりより適切な予測動きベクトルの候補を選択することができるようになる。
【０５４０】
また、画像復号装置２０１では、参照ピクチャ上の予測動きベクトルMVL0により示されるブロックがカレントブロックであるものとして用いられる。そのため、テンプレート等の復号対象のピクチャの一部の復号画像が得られるまで待機することなくブロックマッチングの処理を開始することができ、より迅速に動き情報を得ることができる。
【０５４１】
さらに、改良テンプレートマッチングでは、予測動きベクトルMVL0と予測動きベクトルMVL1が得られるので、ピクチャPIC12とピクチャPIC13の間でバイラテラルマッチングにおける場合のように物体（画像）の動きが直線状の動きに限定されることがない。したがって、実際の動画像に対してより正確な予測動きベクトルを得ることができるようになり、符号化効率を向上させることができる。
【０５４２】
しかも、画像復号装置２０１側で予測動きベクトルMVL1が導出されるため、予測動きベクトルMVL1に関する情報を符号化ストリームに格納する必要がなくなり、その分だけ符号量を削減することができる。
【０５４３】
〈予測部の構成について〉
FRUCモードにおいて改良テンプレートマッチングにより動き情報を導出することができる場合、画像符号化装置１１の制御部２１で生成されるFRUC_Mode_flagは、テンプレートマッチング法、バイラテラルマッチング法、および改良テンプレートマッチング法の何れにより動き情報を導出するかを示す情報とされる。
【０５４４】
また、画像符号化装置１１の予測部３０には、改良テンプレートマッチングにより動き情報を導出する構成として、例えば図３４に示す構成が設けられる。
【０５４５】
すなわち、図３４に示す例では、予測部３０は候補取得部３６１、改良テンプレートマッチング処理部３６２、サブブロック候補取得部３６３、および改良テンプレートマッチング処理部３６４を有している。
【０５４６】
これらの候補取得部３６１乃至改良テンプレートマッチング処理部３６４のうちの候補取得部３６１および改良テンプレートマッチング処理部３６２は、符号化対象のCU（CTU）について動き情報を導出する処理ブロックとなっている。これに対して、サブブロック候補取得部３６３および改良テンプレートマッチング処理部３６４は、符号化対象のサブブロックについて動き情報を導出する処理ブロックとなっている。
【０５４７】
候補取得部３６１は、例えば図７の候補取得部５１と同様の動作を行って候補リストを生成するとともに候補リストにより示される予測動きベクトルの候補、すなわち周辺領域の隣接動きベクトルを取得して改良テンプレートマッチング処理部３６２に供給する。
【０５４８】
改良テンプレートマッチング処理部３６２は、候補選択部３７１および動きベクトル導出部３７２を有している。
【０５４９】
候補選択部３７１は、候補リストにより示される複数の予測動きベクトルの候補（スタートポイントの候補）のなかから１つの候補を選択する。
【０５５０】
動きベクトル導出部３７２は、予測動きベクトルの候補に基づいてブロックマッチングにより符号化対象のCUの予測動きベクトルを求める。これにより、符号化対象のCUについて、予測動きベクトルMVL0および予測動きベクトルMVL1が得られる。
【０５５１】
また、動きベクトル導出部３７２では、必要に応じて、最終的に得られた予測動きベクトルと、その予測動きベクトルの導出に用いられた予測動きベクトルの候補との差分が符号化対象のCUの差分動きベクトルとして算出される。
【０５５２】
改良テンプレートマッチング処理部３６２は、得られた符号化対象のCUの予測動きベクトルをサブブロック候補取得部３６３に供給する。
【０５５３】
サブブロック候補取得部３６３は、改良テンプレートマッチング処理部３６２からの予測動きベクトルを用いて、図７のサブブロック候補取得部５３と同様の動作を行ってサブブロック候補リストを生成する。
【０５５４】
サブブロック候補取得部３６３は生成したサブブロック候補リストにより示される予測動きベクトルの候補、すなわち周辺領域の隣接動きベクトルと、改良テンプレートマッチング処理部３６２から供給された予測動きベクトルとを取得し、改良テンプレートマッチング処理部３６４に供給する。
【０５５５】
改良テンプレートマッチング処理部３６４は、サブブロック候補取得部３６３から供給された隣接動きベクトルおよび予測動きベクトルに基づいて、改良テンプレートマッチング処理部３６２と同様の処理を行って符号化対象のサブブロックの予測動きベクトルを導出する。
【０５５６】
改良テンプレートマッチング処理部３６４は、候補選択部３７３および動きベクトル導出部３７４を有しており、これらの候補選択部３７３および動きベクトル導出部３７４は、候補選択部３７１および動きベクトル導出部３７２に対応する。
【０５５７】
また、動きベクトル導出部３７４では、必要に応じて、最終的に得られた予測動きベクトルと、その予測動きベクトルの導出に用いられた予測動きベクトルの候補との差分が符号化対象のサブブロックの差分動きベクトルとして算出される。
【０５５８】
〈FRUCマージモード符号化処理の説明〉
続いて、図３５のフローチャートを参照して、画像符号化装置１１によるFRUCマージモード符号化処理について説明する。なお、このFRUCマージモード符号化処理は、CU単位またはサブブロック単位で行われる。
【０５５９】
FRUCマージモード符号化処理が開始されると、ステップＳ７７１乃至ステップＳ７７４の処理が行われるが、これらの処理は図１２のステップＳ９１乃至ステップＳ９４の処理と同様であるので、その説明は省略する。
【０５６０】
ステップＳ７７５において、予測部３０は、改良テンプレートマッチング法によりカレントブロックの動き情報を導出し、改良テンプレートマッチング法を採用したときのRDコストJimpTemplateを算出する。
【０５６１】
例えば予測部３０は、制御部２１から供給された予測情報Pinfo等に基づいて、フレームメモリ２９から参照画像特定情報により示される参照ピクチャを読み出す。また、予測部３０は読み出した参照ピクチャと、供給された符号化対象のピクチャの原画像とを用いて改良テンプレートマッチング法によりカレントブロックの動き情報を導出するとともに、RDコストJimpTemplateも算出する。
【０５６２】
ステップＳ７７６において、予測部３０はステップＳ７７３乃至ステップＳ７７５で算出されたRDコストJBiLateral、RDコストJTemplate、およびRDコストJimpTemplateのうち、RDコストJBiLateralが最小であるか否かを判定する。
【０５６３】
ステップＳ７７６においてRDコストJBiLateralが最小であると判定された場合、ステップＳ７７７の処理が行われて、その後、処理はステップＳ７８１へと進む。なお、ステップＳ７７７の処理は、図１２のステップＳ９６の処理と同様であるので、その説明は省略する。
【０５６４】
また、ステップＳ７７６においてRDコストJBiLateralが最小でないと判定された場合、処理はステップＳ７７８へと進む。
【０５６５】
ステップＳ７７８において、予測部３０はRDコストJBiLateral、RDコストJTemplate、およびRDコストJimpTemplateのうち、RDコストJimpTemplateが最小であるか否かを判定する。
【０５６６】
ステップＳ７７８においてRDコストJimpTemplateが最小であると判定された場合、処理はステップＳ７７９へと進む。
【０５６７】
ステップＳ７７９において、予測部３０は改良テンプレートマッチング法により導出した動き情報に基づいて予測画像を生成し、演算部２２および演算部２８に供給する。例えば予測部３０は、復号画像である２つの各参照ピクチャのそれぞれにおける動き情報、つまり予測動きベクトルMVL0と予測動きベクトルMVL1により示されるブロックのそれぞれを用いた動き補償により生成された画像を予測画像Ｐとする。
【０５６８】
なお、改良テンプレートマッチングでは、リファレンスリストRef0の参照ピクチャ、およびリファレンスリストRef1の参照ピクチャの両方が用いられて予測画像Ｐが生成されるが、それらの参照ピクチャの何れか一方のみが用いられて予測画像Ｐが生成されてもよい。
【０５６９】
ステップＳ７７９において予測画像Ｐが生成されると、その後、処理はステップＳ７８１へと進む。
【０５７０】
また、ステップＳ７７８においてRDコストJimpTemplateが最小でないと判定されたか、またはステップＳ７７２の処理が行われると、その後、ステップＳ７８０の処理が行われるが、ステップＳ７８０の処理は図１２のステップＳ９７の処理と同様であるので、その説明は省略する。ステップＳ７８０の処理が行われると、その後、処理はステップＳ７８１へと進む。
【０５７１】
なお、図１１を参照して説明したインター予測処理モード設定処理のステップＳ５７やステップＳ６２では、ステップＳ７７６やステップＳ７７８の判定結果に基づいて、テンプレートマッチング法、バイラテラルマッチング法、および改良テンプレートマッチング法の何れにより動き情報を導出するかを示すFRUC_Mode_flagが生成される。
【０５７２】
ステップＳ７７７の処理が行われたか、ステップＳ７７９の処理が行われたか、またはステップＳ７８０の処理が行われると、ステップＳ７８１乃至ステップＳ７８８の処理が行われてFRUCマージモード符号化処理は終了する。なお、これらのステップＳ７８１乃至ステップＳ７８８の処理は、図１２のステップＳ９８乃至ステップＳ１０５の処理と同様であるので、その説明は省略する。
【０５７３】
以上のようにして、画像符号化装置１１はFRUCモードにより動き情報を導出し、符号化対象となるブロックを符号化する。このようにFRUCモードを利用し、復号側において動き情報を導出するようにすることで、符号化ストリームに格納する動き情報を削減することができ、符号化効率を向上させることができる。
【０５７４】
〈改良テンプレートマッチングによる動き情報導出処理の説明〉
ここで、図３５のステップＳ７７５に対応する処理のうちの動き情報を導出する処理について、より詳細に説明する。すなわち、以下、図３６のフローチャートを参照して、予測部３０により行われる改良テンプレートマッチングによる動き情報導出処理について説明する。
【０５７５】
ステップＳ８２１において、候補取得部３６１はリファレンスリストRef0の参照ピクチャについてスタートポイントの候補、すなわち予測動きベクトルの候補を取得することで候補リストを生成する。例えばステップＳ８２１では、図１４のステップＳ１６１と同様の処理が行われる。
【０５７６】
ステップＳ８２２において、候補取得部３６１はステップＳ８２１で得られた各予測動きベクトルの候補に対して、それらの予測動きベクトルの候補を識別するインデックス番号を割り振る。例えば予測動きベクトルの候補ごと、すなわち周辺領域の位置ごとに割り振られるインデックス番号は予め定められている。
【０５７７】
また、候補取得部３６１は候補リストにより示される各予測動きベクトルの候補である隣接動きベクトルを取得して改良テンプレートマッチング処理部３６２に供給する。
【０５７８】
ステップＳ８２３において、候補選択部３７１は原画像に基づいて候補リストにより示される予測動きベクトルの候補のなかからコストが最小となる予測動きベクトルの候補を選択する。
【０５７９】
すなわち候補選択部３７１は、参照画像特定情報により示されるリファレンスリストRef0の参照ピクチャ（復号画像）における予測動きベクトルの候補である隣接動きベクトルにより示されるブロックをフレームメモリ２９から読み出す。そして、候補選択部３７１は、読み出したブロックと、供給された原画像上の符号化対象のCU（カレントブロック）との差分を求めることで、予測動きベクトルの候補のコストを算出する。
【０５８０】
候補選択部３７１は、各予測動きベクトルの候補のうち、コストが最小となる予測動きベクトルの候補を選択する。
【０５８１】
ステップＳ８２４において、動きベクトル導出部３７２は差分動きベクトルを導出する。
【０５８２】
すなわち、動きベクトル導出部３７２は、リファレンスリストRef0の参照ピクチャ（復号画像）におけるステップＳ８２３で選択された予測動きベクトルの候補により定まる領域をサーチレンジとする。動きベクトル導出部３７２は、原画像上の符号化対象のCUと、サーチレンジ内のブロックとの差分を求めてコストと予測動きベクトルを計算し、ブロックマッチングによりコストが最小となる予測動きベクトルを、最終的な予測動きベクトルMVL0とする。そして、予測動きベクトルMVL0と、予測動きベクトルの候補である隣接動きベクトルとの差分が差分動きベクトルとして求められる。
【０５８３】
差分動きベクトルが導出されると、得られた差分動きベクトルと、選択された予測動きベクトルの候補を示すインデックス番号と、予測動きベクトルMVL0が導出された旨の選択情報とが予測部３０から制御部２１へと供給される。また、動きベクトル導出部３７２は、得られた予測動きベクトルMVL0をサブブロック候補取得部３６３に供給する。
【０５８４】
ここで、選択情報は、予測動きベクトルMVL0と予測動きベクトルMVL1のうちの何れの予測動きベクトルが画像符号化装置１１側で導出されて符号化ストリームに格納されたかを示す情報である。また、ここでは、例えば差分動きベクトルと、選択された予測動きベクトルの候補を示すインデックス番号とが動きベクトル情報とされる。
【０５８５】
これらの選択情報、インデックス番号、および差分動きベクトルは、図３５のステップＳ７８８において符号化ストリームに格納されて画像復号装置２０１へと伝送される。
【０５８６】
なお、差分動きベクトルが導出されず、選択された予測動きベクトルの候補がそのまま予測動きベクトルMVL0とされてもよい。
【０５８７】
ステップＳ８２５において、候補取得部３６１はステップＳ８２１と同様の処理を行って、リファレンスリストRef1の参照ピクチャについてスタートポイントの候補、すなわち予測動きベクトルの候補を取得することで候補リストを生成する。
【０５８８】
また、候補取得部３６１は候補リストにより示される各予測動きベクトルの候補である隣接動きベクトルを取得して改良テンプレートマッチング処理部３６２に供給する。
【０５８９】
ステップＳ８２６において、候補選択部３７１は候補リストにより示される予測動きベクトルの候補のなかからコストが最小となる予測動きベクトルの候補を選択する。
【０５９０】
すなわち候補選択部３７１は、参照画像特定情報により示されるリファレンスリストRef1の参照ピクチャ（復号画像）における予測動きベクトルの候補である隣接動きベクトルにより示されるブロックをフレームメモリ２９から読み出す。
【０５９１】
また、候補選択部３７１は、参照画像特定情報により示されるリファレンスリストRef0の参照ピクチャ（復号画像）における予測動きベクトルMVL0により示されるブロックをフレームメモリ２９から読み出す。
【０５９２】
そして、候補選択部３７１は、読み出した２つのブロックの差分を求めることで、予測動きベクトルの候補のコストを算出し、各予測動きベクトルの候補のうち、コストが最小となる予測動きベクトルの候補を選択する。
【０５９３】
ステップＳ８２７において、動きベクトル導出部３７２は、ステップＳ８２６の処理で選択した予測動きベクトルの候補に基づいて予測動きベクトルを導出する。
【０５９４】
すなわち、動きベクトル導出部３７２は、フレームメモリ２９から読み出したリファレンスリストRef1の参照ピクチャ（復号画像）におけるステップＳ８２６で選択された予測動きベクトルの候補により定まる領域をサーチレンジとする。
【０５９５】
そして、動きベクトル導出部３７２は、フレームメモリ２９から読み出したリファレンスリストRef0の参照ピクチャ（復号画像）における予測動きベクトルMVL0により示されるブロックと、サーチレンジ内のブロックとの差分を求めてコストと予測動きベクトルを計算し、ブロックマッチングによりコストが最小となる予測動きベクトルを最終的な予測動きベクトルMVL1とする。動きベクトル導出部３７２は、このようにして得られた予測動きベクトルMVL1をサブブロック候補取得部３６３に供給する。
【０５９６】
CU単位で符号化が行われるときには、図３５のステップＳ７７９では、以上の処理により得られた予測動きベクトルMVL0と予測動きベクトルMVL1に基づいて動き補償により予測画像Ｐが生成される。
【０５９７】
ステップＳ８２８において、サブブロック候補取得部３６３は、リファレンスリストRef0の参照ピクチャについて、予測動きベクトルの候補を取得することで符号化対象のサブブロックのサブブロック候補リストを生成する。
【０５９８】
すなわち、サブブロック候補取得部３６３は符号化対象のサブブロックに対して予め定められた符号化対象のCU内の周辺領域と、改良テンプレートマッチング処理部３６２から供給された予測動きベクトルMVL0とに基づいてサブブロック候補リストを生成する。
【０５９９】
また、サブブロック候補取得部３６３は、サブブロック候補リストにより示される予測動きベクトルの候補、すなわち周辺領域の隣接動きベクトルと、改良テンプレートマッチング処理部３６２から供給された予測動きベクトルMVL0とを取得し、改良テンプレートマッチング処理部３６４に供給する。
【０６００】
ステップＳ８２９において、候補選択部３７３は、ステップＳ８２６と同様の処理を行ってサブブロック候補リストにより示される予測動きベクトルの候補のなかからコストが最小となる予測動きベクトルの候補を選択する。
【０６０１】
なお、ここでは、例えばリファレンスリストRef1の参照ピクチャ（復号画像）上のステップＳ８２７で得られた予測動きベクトルMVL1により示されるブロックと、リファレンスリストRef0の参照ピクチャ（復号画像）上の予測動きベクトルの候補により示されるブロックとの差分に基づいて、その予測動きベクトルの候補のコストが算出される。
【０６０２】
ステップＳ８３０において、動きベクトル導出部３７４は、ステップＳ８２９において選択された予測動きベクトルの候補に基づいて、ステップＳ８２７と同様の処理を行って、符号化対象のサブブロックの予測動きベクトルMVL0を導出する。
【０６０３】
この場合、例えばリファレンスリストRef0の参照ピクチャ（復号画像）上の予測動きベクトルの候補により示される領域がサーチレンジとされる。そして、リファレンスリストRef1の参照ピクチャ（復号画像）上のステップＳ８２７で得られた予測動きベクトルMVL1により示されるブロックと、サーチレンジ内のブロックとの差分が求められてコストと予測動きベクトルが計算され、ブロックマッチングによりコストが最小となる予測動きベクトルが最終的な予測動きベクトルMVL0とされる。
【０６０４】
予測動きベクトルMVL0が導出されると、その後、符号化対象のサブブロックに対して、リファレンスリストRef1の参照ピクチャについて、ステップＳ８３１乃至ステップＳ８３３の処理が行われて符号化対象のサブブロックの予測動きベクトルMVL1が導出される。なお、これらのステップＳ８３１乃至ステップＳ８３３の処理は、ステップＳ８２５乃至ステップＳ８２７の処理と同様であるので、その説明は省略する。
【０６０５】
サブブロック単位で符号化が行われるときには、図３５のステップＳ７７９では、以上の処理により得られたサブブロックの予測動きベクトルMVL0と予測動きベクトルMVL1に基づいて動き補償により予測画像Ｐが生成される。
【０６０６】
以上のようにしてサブブロックの予測動きベクトルMVL0と予測動きベクトルMVL1が導出されると、改良テンプレートマッチングによる動き情報導出処理は終了する。
【０６０７】
以上のようにして予測部３０は原画像を用いて改良テンプレートマッチングにより動き情報を導出する。このようにすることで、より迅速に、より正確な予測動きベクトルを得ることができる。
【０６０８】
〈予測部の構成について〉
また、FRUCモードで改良テンプレートマッチングによる動き情報の導出が行われる場合、画像復号装置２０１の予測部２１６には、改良テンプレートマッチングにより動き情報を導出する構成として、例えば図３７に示す構成が設けられる。
【０６０９】
すなわち、図３７に示す例では、予測部２１６は候補取得部４０１、改良テンプレートマッチング処理部４０２、サブブロック候補取得部４０３、および改良テンプレートマッチング処理部４０４を有している。
【０６１０】
また、改良テンプレートマッチング処理部４０２は、候補選択部４１１および動きベクトル導出部４１２を有しており、改良テンプレートマッチング処理部４０４は、候補選択部４１３および動きベクトル導出部４１４を有している。
【０６１１】
なお、候補取得部４０１乃至改良テンプレートマッチング処理部４０４は、図３４の候補取得部３６１乃至改良テンプレートマッチング処理部３６４と同様であるので、その説明は省略する。
【０６１２】
また、候補選択部４１１乃至動きベクトル導出部４１４も図３４の候補選択部３７１乃至動きベクトル導出部３７４と同様であるので、その説明は省略する。
【０６１３】
〈FRUCマージモード復号処理の説明〉
続いて、図３８のフローチャートを参照して、画像復号装置２０１によるFRUCマージモード復号処理について説明する。このFRUCマージモード復号処理は、CU単位またはサブブロック単位で行われる。
【０６１４】
なお、ステップＳ８６１乃至ステップＳ８６７の処理は、図１９のステップＳ２５１乃至ステップＳ２５７の処理と同様であるので、その説明は省略する。
【０６１５】
ステップＳ８６５においてバイラテラルマッチングを行わないと判定された場合、ステップＳ８６８において、予測部２１６はFRUC_Mode_flagに基づいて、改良テンプレートマッチングを行うか否かを判定する。例えばFRUC_Mode_flagの値が改良テンプレートマッチングを行うことを示す値である場合、改良テンプレートマッチングを行うと判定される。
【０６１６】
ステップＳ８６８において改良テンプレートマッチングを行うと判定された場合、ステップＳ８６９において予測部２１６は改良テンプレートマッチング法により動き情報を導出する。これにより、復号対象のブロックの動き情報として、予測動きベクトルが得られる。ここでは、上述した予測動きベクトルMVL0および予測動きベクトルMVL1が予測動きベクトルとして得られる。
【０６１７】
ステップＳ８７０において、予測部２１６は、ステップＳ８６９の処理により導出した動き情報、すなわち予測動きベクトルに基づいて動き補償を行って予測画像Ｐを生成し、演算部２１４に供給する。
【０６１８】
例えば予測部２１６は、フレームメモリ２１５から参照画像特定情報により示される２つの復号画像を参照ピクチャとして読み出すとともに、各参照ピクチャにおける予測動きベクトルにより示されるブロックを用いた動き補償により予測画像Ｐを生成する。
【０６１９】
このようにして予測画像Ｐが得られると、その後、処理はステップＳ８７３へと進む。
【０６２０】
また、ステップＳ８６８において改良テンプレートマッチングを行わないと判定されたか、またはステップＳ８６３においてＰスライスであると判定された場合、ステップＳ８７１およびステップＳ８７２の処理が行われて、その後、処理はステップＳ８７３へと進む。なお、ステップＳ８７１およびステップＳ８７２の処理は、図１９のステップＳ２５８およびステップＳ２５９の処理と同様であるので、その説明は省略する。
【０６２１】
さらに、ステップＳ８６７の処理が行われたか、ステップＳ８７０の処理が行われたか、またはステップＳ８７２の処理が行われると、その後、ステップＳ８７３およびステップＳ８７４の処理が行われてFRUCマージモード復号処理は終了する。なお、これらのステップＳ８７３およびステップＳ８７４の処理は、図１９のステップＳ２６０およびステップＳ２６１の処理と同様であるので、その説明は省略する。
【０６２２】
以上のようにして画像復号装置２０１は、FRUCモードにより動き情報を導出し、復号対象となるブロックを復号する。このようにFRUCモードを利用し、復号側において動き情報を導出することで、符号化ストリームの符号量を削減することができ、符号化効率を向上させることができる。
【０６２３】
〈改良テンプレートマッチングによる動き情報導出処理の説明〉
ここで、図３９のフローチャートを参照して、予測部２１６により行われる、図３８のステップＳ８６９の処理に対応する改良テンプレートマッチングによる動き情報導出処理について説明する。
【０６２４】
ステップＳ９０１において候補取得部４０１により予測動きベクトルの候補が取得され、ステップＳ９０２において候補取得部４０１により各予測動きベクトルの候補に対してインデックス番号が割り振られる。
【０６２５】
なお、これらのステップＳ９０１およびステップＳ９０２の処理は、図３６のステップＳ８２１およびステップＳ８２２の処理と同様であるので、その説明は省略する。
【０６２６】
ステップＳ９０３において、予測部２１６は復号部２１１から予測動きベクトルの候補を示すインデックス番号を取得する。
【０６２７】
すなわち、復号部２１１では、符号化ストリームの復号により予測動きベクトルの候補のインデックス番号、差分動きベクトル、および選択情報が得られる。予測部２１６は、これらのインデックス番号、差分動きベクトル、および選択情報が含まれた予測情報Pinfo等を復号部２１１から取得することで、インデックス番号を取得する。なお、ここで取得されるインデックス番号および差分動きベクトルは、図３６のステップＳ８２３およびステップＳ８２４により得られたものである。
【０６２８】
ステップＳ９０４において、動きベクトル導出部４１２はステップＳ９０３で取得されたインデックス番号に基づいて予測動きベクトルを生成する。
【０６２９】
具体的には、候補選択部４１１は候補リストにより示される予測動きベクトルの候補のなかから、ステップＳ９０３で取得されたインデックス番号により示される予測動きベクトルの候補を選択する。そして、動きベクトル導出部４１２は、候補選択部４１１により選択された予測動きベクトルの候補である隣接動きベクトルに、ステップＳ９０３で取得された差分動きベクトルを加算して、予測動きベクトルMVL0とする。
【０６３０】
なお、差分動きベクトルがない場合には、候補選択部４１１により選択された予測動きベクトルの候補がそのまま予測動きベクトルMVL0とされる。また、ここでは選択情報が予測動きベクトルMVL0が導出された旨の情報であるため、予測動きベクトルMVL0が得られた後、予測動きベクトルMVL1が導出される。しかし、選択情報が予測動きベクトルMVL1が導出された旨の情報であるときには、予測動きベクトルMVL1が得られた後、予測動きベクトルMVL0が導出されることになる。
【０６３１】
予測動きベクトルMVL0が導出されると、その後、ステップＳ９０５乃至ステップＳ９１３の処理が行われて改良テンプレートマッチングによる動き情報導出処理は終了するが、これらの処理は図３６のステップＳ８２５乃至ステップＳ８３３の処理と同様であるのでその説明は省略する。例えば図３８のステップＳ８７０では、以上の処理により導出された予測動きベクトルMVL0および予測動きベクトルMVL1が用いられて予測画像Ｐが生成される。
【０６３２】
以上のようにして予測部２１６はインデックス番号により示される予測動きベクトルの候補を用いて予測動きベクトルMVL0を導出する。このようにすることで、より迅速に、より正確な予測動きベクトルを得ることができる。
【０６３３】
〈第６の実施の形態〉
〈FRUCモードでの並列処理について〉
ところで、FRUCモードでの各ブロックの動き情報の導出の処理速度を向上させるには、複数ブロックについて動き情報を導出する処理を並列に行うことが１つの解決方法となる。
【０６３４】
例えば図４０に示すように、所定のピクチャPIC71内に連続して並ぶブロックB0乃至ブロックB5があるとする。また、斜線が施されたブロックB1、ブロックB2、およびブロックB4ではFRUCモードにより符号化または復号の処理が行われ、残りのブロックB0、ブロックB3、およびブロックB5ではFRUCモードではない他のモードにより符号化または復号が行われるものとする。なお、ここでは復号が行われるものとして説明を続ける。
【０６３５】
例えばFRUCモードで処理されるブロックB1、ブロックB2、およびブロックB4で並列に復号を行うことができれば、３つのブロックを同時に復号することになるので、復号処理を高速化することができる。
【０６３６】
しかし、FRUCモードでの動き情報の導出を考えると、まず予測動きベクトルの候補、つまりスタートポイントの候補を収集する際に、処理対象のブロックの周囲のブロックの予測動きベクトルである隣接動きベクトルを参照する必要がある。
【０６３７】
したがって、この例ではブロックB2についてFRUCモードでの処理を行うときには、隣接するブロックB1の領域を周辺領域として、その周辺領域の予測動きベクトル（隣接動きベクトル）を参照（収集）しなければならない。
【０６３８】
なお、図４０では、各矢印はその矢印の始点位置のブロックが、矢印の終点位置のブロックについての情報を参照していることを表している。
【０６３９】
このように復号時には、各ブロックは自身の図中、左側に隣接するブロックを参照する必要があるため、ブロックB1、ブロックB2、およびブロックB4で並列に復号を行おうとしても、参照先の処理が完了するまでブロックの隣接動きベクトルを得ることができないことが連鎖的に発生してしまう。したがって、このままではそれらのブロックを並列に処理して処理速度を向上させることができない。
【０６４０】
そこで、適宜、FRUCモードで導出された予測動きベクトル（隣接動きベクトル）を、予測動きベクトルの候補として参照しないようにしてもよい。これにより、参照先のブロックの処理が完了するまで動きベクトルの導出を開始できなくなってしまうことが連鎖的に発生しないようにすることができる。
【０６４１】
この場合、条件によらず、必ずFRUCモードで導出された予測動きベクトル（隣接動きベクトル）は、予測動きベクトルの候補とされないようにしてもよい。
【０６４２】
また、例えばFRUCモードで導出された予測動きベクトルを予測動きベクトルの候補とするか否かを、制御信号fruc_mv_decoupling_flagを用いて制御するようにしてもよい。
【０６４３】
そのような場合、制御信号fruc_mv_decoupling_flagの値が１である場合には、FRUCモードで導出された予測動きベクトルは、予測動きベクトルの候補とされないようにされる。これに対して、制御信号fruc_mv_decoupling_flagの値が０である場合には、FRUCモードで導出された予測動きベクトルも予測動きベクトルの候補とされる。
【０６４４】
例えば、画像符号化装置１１において制御信号fruc_mv_decoupling_flagの値を定めておき、制御部２１により制御信号fruc_mv_decoupling_flagが符号化パラメータとして符号化ストリームに格納されるようにされる。
【０６４５】
このようにすれば、画像符号化装置１１の予測部３０と、画像復号装置２０１の予測部２１６とで、制御信号fruc_mv_decoupling_flagに応じて同じ予測動きベクトルの候補が参照されて動き情報が導出されるようになる。
【０６４６】
なお、以下では、このような制御信号fruc_mv_decoupling_flagが用いられるものとして説明を続ける。
【０６４７】
ここで、図４１および図４２を参照して、制御信号fruc_mv_decoupling_flagの値が１である場合における処理例について具体的に説明する。なお、図４１および図４２において図４０における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０６４８】
例えば図４１に示す例においてブロックB1がFRUCモードで復号されると、予測部２１６は、そのブロックB1がFRUCモードで復号されたブロックである旨のFRUCブロック情報を保持しておく。なお、以下、FRUCモードで復号（処理）されるブロック、すなわちFRUCモードにより動き情報が導出されるブロックをFRUCブロックとも称することとする。
【０６４９】
こうすることで、例えば予測部２１６はブロックB2について予測動きベクトルの候補を収集する際に、ブロックB1についてのFRUCブロック情報を参照し、ブロックB1がFRUCブロックであることを把握（特定）することができる。
【０６５０】
なお、以下、FRUCブロックではないブロック、すなわちFRUCモードでは処理されないブロックを非FRUCブロックとも称することとする。
【０６５１】
この例では、例えばブロックB2について予測動きベクトルの候補を収集する際、本来であればブロックB1は予測動きベクトルの候補とされるが、ブロックB1はFRUCブロックであるので予測動きベクトルの候補とはされない。
【０６５２】
そしてブロックB1の代わりに、例えばブロックB1のさらに図中、左側に隣接するブロックB0か、またはブロックB1の図中、上側に隣接する非FRUCブロックが予測動きベクトルの候補とされる。すなわち、FRUCブロックであるブロックB1に隣接する非FRUCブロックの予測動きベクトル（隣接動きベクトル）がブロックB2についての予測動きベクトルの候補とされる。
【０６５３】
なお、仮にブロックB0やブロックB1の図中、上側に隣接するブロックがFRUCブロックである場合には、さらにそのブロックに隣接する非FRUCブロックが予測動きベクトルの候補とされる。
【０６５４】
具体的には、例えばブロックB0がFRUCブロックであり、ブロックB0の図中、左側に隣接するブロックが非FRUCブロックであるときには、その非FRUCブロックが予測動きベクトルの候補とされる。
【０６５５】
同様に、例えばブロックB1の図中、上側に隣接するブロックがFRUCブロックであり、そのブロックの図中、上側に隣接するブロックが非FRUCブロックであるときには、その非FRUCブロックが予測動きベクトルの候補とされる。
【０６５６】
つまり、この例では、復号対象のブロックに対して、そのブロックよりも復号処理が行われる順番が早い側にあり、かつ最も復号対象のブロックに近い位置にある非FRUCブロックが予測動きベクトルの候補とされる。換言すれば、復号対象のブロックよりも先に復号処理が行われ、かつ最も復号対象のブロックに近い位置にある非FRUCブロックが予測動きベクトルの候補とされる。
【０６５７】
なお、復号対象のブロックに隣接する、本来、予測動きベクトルの候補とされるブロックがFRUCブロックであるときには、そのFRUCブロックについての予測動きベクトルがゼロベクトルなどの予め定められたベクトルであるものとされて予測動きベクトルの候補とされるようにしてもよい。
【０６５８】
また、ブロックB1と同様に、FRUCブロックであるブロックB2についても、そのブロックB2がFRUCブロックである旨のFRUCブロック情報が保持され、ブロックB4についても、ブロックB4がFRUCブロックである旨のFRUCブロック情報が保持される。
【０６５９】
このようにして各ブロックについて予測動きベクトルの候補を収集することで、例えばブロックB1ではブロックB0を直ちに参照することが可能とされる。つまり、ブロックB1では、ブロックB0が予測動きベクトルの候補とされる。
【０６６０】
また、ブロックB2では、FRUCブロック情報からブロックB1がFRUCブロックであることが特定できるため、ブロックB1ではなくブロックB0が予測動きベクトルの候補とされ、その予測動きベクトルの候補を直ちに参照することができる。
【０６６１】
さらに、ブロックB3は非FRUCブロックであるが、例えばブロックB3がAMVPモードで復号されるときなどには予測動きベクトルの候補が収集される。
【０６６２】
すなわち、ブロックB3では、FRUCブロック情報からブロックB2およびブロックB1がFRUCブロックであることが特定できる。また、例えばブロックB2の図中、上側に隣接するブロックが非FRUCブロックであるとする。
【０６６３】
この場合、ブロックB3では復号順が自身よりも早く、かつ最も自身に近い位置にある非FRUCブロックとなる、ブロックB2の図中、上側に隣接するブロックが予測動きベクトルの候補とされ、その予測動きベクトルの候補は直ちに参照することが可能である。
【０６６４】
ブロックB4では、隣接するブロックB3がFRUCブロックではないことから、ブロックB3が予測動きベクトルの候補とされ、その予測動きベクトルの候補を直ちに参照することができる。
【０６６５】
さらに、ブロックB5では、FRUCブロック情報からブロックB4がFRUCブロックであることが特定できるため、ブロックB4ではなくブロックB3が予測動きベクトルの候補とされ、その予測動きベクトルの候補を直ちに参照することができる。
【０６６６】
以上のように復号対象のブロックについて予測動きベクトルの候補を収集し、候補リストやサブブロック候補リストを生成することで、図４２に示すようにFRUCブロックのブロックマッチングの結果、つまり予測動きベクトルが参照されなくなる。
【０６６７】
図４２では、FRUCブロックであるブロックB1、ブロックB2、およびブロックB4が参照されないようになされていることが表されている。
【０６６８】
この場合、ブロックB1乃至ブロックB5では、収集される予測動きベクトルの候補にはFRUCブロックで得られる予測動きベクトルは含まれない。
【０６６９】
そのため、FRUCブロックであるブロックB1、ブロックB2、およびブロックB4を同時に、つまり並列に復号することができるようになり、全体として復号処理の高速化を実現することができる。なお、ここでは復号処理が行われる場合を例として説明したが、符号化処理における場合でも復号された画像が用いられるため、同様の理由により符号化処理を高速化することができる。
【０６７０】
以上のようにして処理対象のブロックについて予測動きベクトルの候補を収集し、候補リストやサブブロック候補リストを生成することで、複数のFRUCブロックの並列処理を実現し、符号化処理および復号処理を高速化することができる。
【０６７１】
この場合、処理対象のブロック近傍にある、つまり処理対象のブロックに隣接する予め定められた周辺領域のうち、非FRUCブロックである周辺領域の隣接動きベクトルが予測動きベクトルの候補として取得されることになる。また、周辺領域がFRUCブロックであるときには、その周辺領域の近傍にある非FRUCブロックの隣接動きベクトルが予測動きベクトルの候補として取得される。
【０６７２】
具体的には、画像符号化装置１１では、例えば図１２のステップＳ９６やステップＳ９７が行われたタイミングで、FRUCモードで処理されたブロックについてFRUCブロック情報が生成されて予測部３０に保持される。
【０６７３】
そして、例えば図１３のステップＳ１３１やステップＳ１３４では、FRUCブロック情報に基づいて、FRUCブロックを周辺領域とする隣接動きベクトルについては予測動きベクトル（スタートポイント）の候補から除外される。つまり、FRUCブロックの隣接動きベクトルは予測動きベクトルの候補として選択されず、代わりに他のブロック（非FRUCブロック）の予測動きベクトルが、動きベクトルの候補として選択される。このとき、代わりの動きベクトルの候補が選択（取得）されないようにしてもよい。
【０６７４】
同様に、例えば図１４のステップＳ１６１やステップＳ１６４においても、FRUCブロック情報に基づいて、FRUCブロックを周辺領域とする隣接動きベクトルについては予測動きベクトルの候補から除外される。
【０６７５】
また、画像復号装置２０１においても、復号部２１１から予測部２１６へと、符号化ストリームから読み出された、値が１である制御信号fruc_mv_decoupling_flagが供給された場合には、画像符号化装置１１における場合と同様の処理が行われる。
【０６７６】
すなわち、例えば図１９のステップＳ２５６やステップＳ２５８が行われたタイミングで、FRUCモードで処理されたブロックについてFRUCブロック情報が生成されて予測部２１６に保持される。
【０６７７】
そして、例えば図２０のステップＳ２９１やステップＳ２９４では、FRUCブロック情報に基づいて、FRUCブロックを周辺領域とする隣接動きベクトルについては予測動きベクトルの候補から除外される。つまり、FRUCブロックの隣接動きベクトルは予測動きベクトルの候補として選択されず、代わりに他のブロック（非FRUCブロック）の予測動きベクトルが、動きベクトルの候補として選択される。
【０６７８】
同様に、例えば図２１のステップＳ３３１やステップＳ３３４においても、FRUCブロック情報に基づいて、FRUCブロックを周辺領域とする隣接動きベクトルについては予測動きベクトルの候補から除外される。
【０６７９】
なお、テンプレートマッチングやバイラテラルマッチングだけでなく、上述した改良テンプレートマッチングにおいても、FRUCブロックを周辺領域とする隣接動きベクトルについては予測動きベクトルの候補から除外されるようにすることができる。
【０６８０】
以上のように本技術によれば、より迅速に動き情報を得ることができる。また、以上において説明した本技術は、例えばサーバやネットワークシステム、テレビ、パーソナルコンピュータ、携帯型電話機、記録再生装置、撮像装置、ポータブル機器などの各種の電子機器やシステムに適用することができる。なお、以上において説明した各実施の形態を適宜、組み合わせることも勿論可能である。
【０６８１】
〈コンピュータの構成例〉
ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のコンピュータなどが含まれる。
【０６８２】
図４３は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０６８３】
コンピュータにおいて、ＣＰＵ（Central Processing Unit）５０１，ＲＯＭ（Read Only Memory）５０２，ＲＡＭ（Random Access Memory）５０３は、バス５０４により相互に接続されている。
【０６８４】
バス５０４には、さらに、入出力インターフェース５０５が接続されている。入出力インターフェース５０５には、入力部５０６、出力部５０７、記録部５０８、通信部５０９、及びドライブ５１０が接続されている。
【０６８５】
入力部５０６は、キーボード、マウス、マイクロホン、撮像素子などよりなる。出力部５０７は、ディスプレイ、スピーカアレイなどよりなる。記録部５０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部５０９は、ネットワークインターフェースなどよりなる。ドライブ５１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブル記録媒体５１１を駆動する。
【０６８６】
以上のように構成されるコンピュータでは、ＣＰＵ５０１が、例えば、記録部５０８に記録されているプログラムを、入出力インターフェース５０５及びバス５０４を介して、ＲＡＭ５０３にロードして実行することにより、上述した一連の処理が行われる。
【０６８７】
コンピュータ（ＣＰＵ５０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体５１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０６８８】
コンピュータでは、プログラムは、リムーバブル記録媒体５１１をドライブ５１０に装着することにより、入出力インターフェース５０５を介して、記録部５０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部５０９で受信し、記録部５０８にインストールすることができる。その他、プログラムは、ＲＯＭ５０２や記録部５０８に、あらかじめインストールしておくことができる。
【０６８９】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０６９０】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０６９１】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０６９２】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０６９３】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０６９４】
また、本明細書中に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【０６９５】
さらに、本技術は、以下の構成とすることも可能である。
【０６９６】
（１）
複数の動きベクトルの候補のうちの所定の上限数の前記動きベクトルの候補に基づいて、処理対象のブロックを含む画像とは異なる時刻の参照画像を用いて前記ブロックの動きベクトルを導出する予測部を備える
画像処理装置。
（２）
前記予測部は、前記参照画像を用いたブロックマッチングにより前記動きベクトルを導出する
（１）に記載の画像処理装置。
（３）
前記予測部は、前記ブロックを含む前記画像と前記参照画像とに基づくテンプレートマッチングにより前記動きベクトルを導出する
（１）または（２）に記載の画像処理装置。
（４）
前記予測部は、互いに異なる時刻の前記参照画像に基づくバイラテラルマッチングにより前記動きベクトルを導出する
（１）または（２）に記載の画像処理装置。
（５）
前記予測部は、前記上限数を示す上限数情報を取得し、前記ブロックを含む前記画像と前記参照画像とに基づくテンプレートマッチング、および互いに異なる時刻の前記参照画像に基づくバイラテラルマッチングの何れか一方の前記上限数が０である場合、他方のマッチングにより前記動きベクトルを導出する
（１）または（２）に記載の画像処理装置。
（６）
テンプレートマッチングにより前記動きベクトルを導出するか、またはバイラテラルマッチングにより前記動きベクトルを導出するかを示す情報を符号化する符号化部をさらに備える
（１）乃至（５）の何れか一項に記載の画像処理装置。
（７）
前記上限数を示す上限数情報を符号化する符号化部をさらに備える
（１）乃至（６）の何れか一項に記載の画像処理装置。
（８）
前記上限数は、処理対象の画像に関する情報に基づいて定められる
（１）乃至（７）の何れか一項に記載の画像処理装置。
（９）
前記予測部は、前記ブロックの前記動きベクトルを導出するための処理のうちの少なくとも一部の処理を並列に行う
（１）乃至（８）の何れか一項に記載の画像処理装置。
（１０）
前記予測部は、
前記動きベクトルの候補についてブロックマッチングにより前記動きベクトルとコストを導出するマッチング処理回路を複数有する動きベクトル導出部と、
複数の前記マッチング処理回路のそれぞれにより並列に導出された前記動きベクトルのそれぞれのうち、前記コストが最小となる前記動きベクトルを、前記ブロックの最終的な前記動きベクトルとして選択する候補選択部と
を備える（９）に記載の画像処理装置。
（１１）
前記予測部は、
前記動きベクトルの候補の前記動きベクトルらしさを示すコストを算出するコスト演算回路を複数有し、複数の前記動きベクトルの候補のなかから、複数の前記コスト演算回路により並列に算出された複数の前記コストのうちの最も小さい前記コストの前記動きベクトルの候補を選択する候補選択部と、
前記候補選択部により選択された前記動きベクトルの候補に基づいてブロックマッチングにより前記動きベクトルを導出する動きベクトル導出部と
を備える（９）に記載の画像処理装置。
（１２）
前記予測部は、前記動きベクトルに基づいて前記ブロックの予測画像を生成する
（１）乃至（１１）の何れか一項に記載の画像処理装置。
（１３）
複数の動きベクトルの候補のうちの所定の上限数の前記動きベクトルの候補に基づいて、処理対象のブロックを含む画像とは異なる時刻の参照画像を用いて前記ブロックの動きベクトルを導出する
ステップを含む画像処理方法。
（１４）
複数の動きベクトルの候補について、原画像の処理対象のブロックと、前記原画像とは異なる時刻の復号画像における前記動きベクトルの候補により示されるブロックとの差分を計算し、前記差分に基づいて前記複数の前記動きベクトルの候補のなかから１つの前記動きベクトルの候補を選択する予測部と、
前記予測部により選択された前記動きベクトルの候補を示す情報を符号化する符号化部と
を備える画像処理装置。
（１５）
前記予測部は、
前記原画像および前記復号画像とは異なる時刻の他の復号画像と、前記復号画像における前記選択された前記動きベクトルの候補により示されるブロックとに基づいて、ブロックマッチングにより前記処理対象のブロックの前記他の復号画像との間の動きベクトルを導出し、
前記選択された前記動きベクトルの候補および前記動きベクトルに基づいて、前記処理対象のブロックの予測画像を生成する
（１４）に記載の画像処理装置。
（１６）
前記予測部は、前記選択された前記動きベクトルの候補に基づいて、ブロックマッチングにより前記処理対象のブロックの動きベクトルを導出するとともに、前記動きベクトルと前記動きベクトルの候補との差分を差分動きベクトルとして導出し、
前記符号化部は、前記情報および前記差分動きベクトルを符号化する
（１４）に記載の画像処理装置。
（１７）
複数の動きベクトルの候補について、原画像の処理対象のブロックと、前記原画像とは異なる時刻の復号画像における前記動きベクトルの候補により示されるブロックとの差分を計算し、前記差分に基づいて前記複数の前記動きベクトルの候補のなかから１つの前記動きベクトルの候補を選択し、
前記予測部により選択された前記動きベクトルの候補を示す情報を符号化する
ステップを含む画像処理方法。
（１８）
動きベクトルの候補を示す情報を取得し、前記情報により示される前記動きベクトルの候補から得られる第１の動きベクトルにより示される、処理対象のブロックを含む画像とは異なる時刻の参照画像上のブロックと、前記画像および前記参照画像とは異なる時刻の他の参照画像とに基づいて、ブロックマッチングにより前記処理対象のブロックの前記他の参照画像との間の第２の動きベクトルを導出する予測部を備える
画像処理装置。
（１９）
前記予測部は、前記第１の動きベクトルおよび前記第２の動きベクトルに基づいて前記処理対象のブロックの予測画像を生成する
（１８）に記載の画像処理装置。
（２０）
前記予測部は、差分動きベクトルを取得し、前記差分動きベクトルと前記動きベクトルの候補とを加算して前記第１の動きベクトルとする
（１８）または（１９）に記載の画像処理装置。
（２１）
動きベクトルの候補を示す情報を取得し、前記情報により示される前記動きベクトルの候補から得られる第１の動きベクトルにより示される、処理対象のブロックを含む画像とは異なる時刻の参照画像上のブロックと、前記画像および前記参照画像とは異なる時刻の他の参照画像とに基づいて、ブロックマッチングにより前記処理対象のブロックの前記他の参照画像との間の第２の動きベクトルを導出する
ステップを含む画像処理方法。
（２２）
処理対象のブロック近傍にある周辺領域のうち、FRUCモードで処理されない前記周辺領域の動きベクトルを動きベクトルの候補として取得するとともに、取得した前記動きベクトルの候補に基づいて、前記処理対象のブロックを含む画像とは異なる時刻の参照画像を用いて前記処理対象のブロックの動きベクトルを導出する予測部を備える
画像処理装置。
（２３）
前記予測部は、前記周辺領域がFRUCモードで処理される場合、その前記前記周辺領域に隣接する、FRUCモードで処理されない領域の動きベクトルを前記動きベクトルの候補として取得する
（２２）に記載の画像処理装置。
（２４）
処理対象のブロック近傍にある周辺領域のうち、FRUCモードで処理されない前記周辺領域の動きベクトルを動きベクトルの候補として取得するとともに、取得した前記動きベクトルの候補に基づいて、前記処理対象のブロックを含む画像とは異なる時刻の参照画像を用いて前記処理対象のブロックの動きベクトルを導出する
ステップを含む画像処理方法。
【符号の説明】
【０６９７】
１１  画像符号化装置，  ２１  制御部，  ３０  予測部，  ５１  候補取得部，  ５２  バイラテラルマッチング処理部，  ５３  サブブロック候補取得部，  ５４  バイラテラルマッチング処理部，  ９１  候補取得部，  ９２  テンプレートマッチング処理部，  ９３  サブブロック候補取得部，  ９４  テンプレートマッチング処理部，  ２０１  画像復号装置，  ２１１  復号部，  ２１６  予測部
【図１】
2018163858.tif 000003
【図２】
2018163858.tif 000004
【図３】
2018163858.tif 000005
【図４】
2018163858.tif 000006
【図５】
2018163858.tif 000007
【図６】
2018163858.tif 000008
【図７】
2018163858.tif 000009
【図８】
2018163858.tif 000010
【図９】
2018163858.tif 000011
【図１０】
2018163858.tif 000012
【図１１】
2018163858.tif 000013
【図１２】
2018163858.tif 000014
【図１３】
2018163858.tif 000015
【図１４】
2018163858.tif 000016
【図１５】
2018163858.tif 000017
【図１６】
2018163858.tif 000018
【図１７】
2018163858.tif 000019
【図１８】
2018163858.tif 000020
【図１９】
2018163858.tif 000021
【図２０】
2018163858.tif 000022
【図２１】
2018163858.tif 000023
【図２２】
2018163858.tif 000024
【図２３】
2018163858.tif 000025
【図２４】
2018163858.tif 000026
【図２５】
2018163858.tif 000027
【図２６】
2018163858.tif 000028
【図２７】
2018163858.tif 000029
【図２８】
2018163858.tif 000030
【図２９】
2018163858.tif 000031
【図３０】
2018163858.tif 000032
【図３１】
2018163858.tif 000033
【図３２】
2018163858.tif 000034
【図３３】
2018163858.tif 000035
【図３４】
2018163858.tif 000036
【図３５】
2018163858.tif 000037
【図３６】
2018163858.tif 000038
【図３７】
2018163858.tif 000039
【図３８】
2018163858.tif 000040
【図３９】
2018163858.tif 000041
【図４０】
2018163858.tif 000042
【図４１】
2018163858.tif 000043
【図４２】
2018163858.tif 000044
【図４３】
2018163858.tif 000045
【国際調査報告】
2018163858.tif 000046
2018163858.tif 000047
2018163858.tif 000048
2018163858.tif 000049
2018163858.tif 000050
2018163858.tif 000051
2018163858.tif 000052
2018163858.tif 000053