(57)【要約】  本技術は、さらなる符号化効率の向上を図ることができるようにする画像処理装置および方法に関する。画像処理装置は、参照画像を用いて符号化対象のブロックから予測画像を生成する処理を行う際に、参照画像を用いたブロックマッチングによりブロックの動きベクトルを導出するにあたって、互いに異なる時刻の参照画像に基づくバイラテラルマッチングが使えるか否かの判定を行う予測部を備える。本技術は、例えば、画像符号化装置および画像復号装置に適用することができる。
2018163857.tif 000002
【特許請求の範囲】
【請求項１】
参照画像を用いて符号化対象のブロックから予測画像を生成する処理を行う際に、前記参照画像を用いたブロックマッチングにより前記ブロックの動きベクトルを導出するにあたって、互いに異なる時刻の前記参照画像に基づくバイラテラルマッチングが使えるか否かの判定を行う予測部を備える
画像処理装置。
【請求項２】
前記予測部は、前記符号化対象のブロックが参照する前記参照画像が１枚だけなのか、または、前記参照画像が２枚あるのかという参照関係に基づいて、前記バイラテラルマッチングが使えるか否かの判定を行う
請求項１に記載の画像処理装置。
【請求項３】
前記予測部は、前記参照画像についてピクチャの出力順を示すピクチャオーダカウントに従って、前記参照関係を確認する
請求項２に記載の画像処理装置。
【請求項４】
前記予測部は、前記符号化対象のブロックが参照する前記参照画像が１枚だけである場合、前記バイラテラルマッチングが使えないと判定し、前記ブロックを含む画像と前記参照画像とに基づくテンプレートマッチングにより前記動きベクトルを導出する
請求項２に記載の画像処理装置。
【請求項５】
前記予測部は、前記符号化対象のブロックが参照する前記参照画像が２枚ある場合、前記バイラテラルマッチングが使えると判定し、前記バイラテラルマッチングにより導出された前記動きベクトルから算出されるコストが、前記テンプレートマッチングにより導出された前記動きベクトルから算出されるコスト未満であれば、前記バイラテラルマッチングを用いることを決定する
請求項４に記載の画像処理装置。
【請求項６】
前記予測部は、前記バイラテラルマッチングが使えると判定した場合であっても、前記バイラテラルマッチングにより導出された前記動きベクトルから算出されるコストが、前記テンプレートマッチングにより導出された前記動きベクトルから算出されるコスト未満でなければ、前記テンプレートマッチングにより前記動きベクトルを導出する
請求項５に記載の画像処理装置。
【請求項７】
前記予測部は、前記動きベクトルに基づいて前記ブロックの予測画像を生成する
請求項１に記載の画像処理装置。
【請求項８】
参照画像を用いて符号化対象のブロックから予測画像を生成する処理を行う際に、前記参照画像を用いたブロックマッチングにより前記ブロックの動きベクトルを導出するにあたって、互いに異なる時刻の前記参照画像に基づくバイラテラルマッチングが使えるか否かの判定を行う
ステップを含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は画像処理装置および方法に関し、特に、さらなる符号化効率の向上を図ることができるようにした画像処理装置および方法に関する。
【背景技術】
【０００２】
例えば、画像の符号化や復号に関する技術として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マージモード復号処理を説明するフローチャートである。
【図１３】スライスヘッダのシンタックスの例を示す図である。
【図１４】num_ref_idx_l0_active_minus1の詳細を示す図である。
【図１５】num_ref_idx_l1_active_minus1の詳細を示す図である。
【図１６】POCについて説明する図である。
【図１７】コーディングユニットのシンタックスの例を示す図である。
【図１８】コーディングユニットのシンタックスの例を示す図である。
【図１９】コーディングユニットのシンタックスの例を示す図である。
【図２０】コーディングユニットのシンタックスの例を示す図である。
【図２１】コーディングユニットのシンタックスの例を示す図である。
【図２２】fruc_merge_mode_flag1を送信しない条件について説明する図である。
【図２３】コンピュータの構成例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本技術を適用した実施の形態について説明する。
【００１５】
〈第１の実施の形態〉
〈インター予測モードの種類について〉
本技術では、処理対象となる動画像がインター予測モードまたはイントラ予測モードにより符号化および復号される。
【００１６】
動画像の符号化時や復号時には、動画像を構成するフレームに対応するピクチャが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 AMVPモード、矢印Ａ１４に示すFRUCマージモード、および、矢印Ａ１７に示すスキップFRUCモードは、FRUC技術を用いた動き情報を導出するモードである。そして、これらの各モードでは、バイラテラルマッチング法とテンプレートマッチング法の何れかが選択されるが、画像Ｉ、すなわちカレントブロックがＰスライスのブロックである場合には、バイラテラルマッチング法を用いることができない。
【００６７】
例えば、バイラテラルマッチングでは、後述の図３を参照して説明するように、符号化対象のピクチャ（フレーム）であるピクチャPIC11と、参照ピクチャであるピクチャPIC12およびピクチャPIC13とが用いられる。このように、バイラテラルマッチングでは、マッチングの探索対象として、異なる時間の２つの参照フレームが必要になることより、マッチングの探索対象が１フレームだけであった場合には、バイラテラルマッチング法を用いることができない。
【００６８】
そこで、予測部３０は、参照フレームの出力順を示すPOC（Picture Order Count：ピクチャオーダカウント）番号に従って、符号化対象のピクチャが参照する参照フレームが１枚だけなのか、または、参照フレームが２枚あるのか（以下適宜、符号化対象のピクチャの参照関係と称する）を確認し、その参照関係よりバイラテラルマッチング法が使えるか否かを判定する。
【００６９】
例えば、予測部３０は、参照フレームが同じPOC番号しかない場合、符号化対象のピクチャの参照関係について、参照フレームが１枚だけであると確認し、バイラテラルマッチング法が使えないと判定する。従って、この場合、動き情報の導出方法としてテンプレートマッチング法が自動的に採用（選択）され、予測部３０は、テンプレートマッチング法により動き情報を導出して、その動き情報に基づいて予測画像を生成する。
【００７０】
また、予測部３０は、参照フレームに異なるPOC番号がある場合、符号化対象のピクチャの参照関係について、参照フレームが２枚あると確認し、バイラテラルマッチング法が使えると判定する。従って、この場合、予測部３０は、まず、後述の図９のフローチャートを参照して説明するように、バイラテラルマッチング法により導出された動き情報から算出されるコストと、テンプレートマッチング法により導出された動き情報から算出されるコストとを算出する。例えば、差分計算ブロックについて求まるコストは、差分計算ブロックについての差分が小さいほど小さくなるようにされる。
【００７１】
そして、予測部３０は、バイラテラルマッチング法を用いるコストが、テンプレートマッチング法を用いるコスト未満であれば、バイラテラルマッチング法を用いることを決定し、バイラテラルマッチング法より導出した動き情報に基づいて予測画像を生成する。一方、予測部３０は、バイラテラルマッチング法が使える場合であっても、バイラテラルマッチング法を用いるコストが、テンプレートマッチング法を用いるコスト未満でなければ、テンプレートマッチング法を用いることを決定し、テンプレートマッチング法により導出した動き情報に基づいて予測画像を生成する。
【００７２】
このように、画像符号化装置１１では、予測部３０が、符号化対象のピクチャの参照関係に基づいてバイラテラルマッチング法が使えるか否かの判定を行うことができる。これにより、画像符号化装置１１では、バイラテラルマッチング法が使えない場合には、動き情報の導出方法としてテンプレートマッチング法が自動的に採用される。従って、画像符号化装置１１は、例えば、テンプレートマッチング法を用いることを示す情報を付加するような無駄な符号の送信を回避して、さらなる符号化効率の向上を図ることができる。
【００７３】
〈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単位またはサブブロック単位で行われる。
【０１１７】
ステップＳ１１において、制御部２１は、外部からの入力等に基づいて符号化パラメータを設定し、設定した各符号化パラメータを画像符号化装置１１の各部に供給する。
【０１１８】
ステップＳ１１では、例えば上述したヘッダ情報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等に基づいて、フレームメモリ２９から符号化対象のピクチャ（フレーム）と、参照画像特定情報により示される参照ピクチャとを読み出して、それらのピクチャを用いてテンプレートマッチング法によりカレントブロックの動き情報を導出する。
【０１７１】
ステップＳ９２の処理が行われて動き情報が導出されると、その後、処理はステップＳ９９へと進む。
【０１７２】
また、ステップＳ９１においてＰスライスのブロックでないと判定された場合、処理はステップＳ９３へと進む。
【０１７３】
ステップＳ９３において、予測部３０は、符号化対象のピクチャの参照関係を確認する。
【０１７４】
ステップＳ９４において、予測部３０は、ステップＳ９３で符号化対象のピクチャの参照関係を確認した結果に基づいて、その参照関係からバイラテラルマッチング法が使えるか否かを判定する。例えば、予測部３０は、参照フレームが同じPOC番号しかない場合、バイラテラルマッチング法が使えないと判定し、参照フレームに異なるPOC番号がある場合、バイラテラルマッチング法が使えると判定する。
【０１７５】
ステップＳ９４においてバイラテラルマッチング法が使えないと判定された場合、処理はステップＳ９２へと進み、上述したように、予測部３０は、テンプレートマッチング法によりカレントブロックの動き情報を導出する。
【０１７６】
また、ステップＳ９４においてバイラテラルマッチング法が使えると判定された場合、処理はステップＳ９５へと進む。
【０１７７】
ステップＳ９５において、予測部３０は、テンプレートマッチング法によりカレントブロックの動き情報を導出し、テンプレートマッチング法を採用したときの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モードを利用し、復号側において動き情報を導出するようにすることで、符号化ストリームに格納する動きベクトル情報（動き情報）を削減することができ、符号化効率を向上させることができる。
【０２０４】
そして、画像符号化装置１１は、符号化対象のピクチャの参照関係からバイラテラルマッチング法が使えるか否かの判定を行って、バイラテラルマッチング法が使えない場合には、動き情報の導出方法としてテンプレートマッチング法を自動的に採用することができる。これにより、上述したような無駄な符号の送信が回避されて、さらなる符号化効率の向上を図ることができる。
【０２０５】
〈画像復号装置の説明〉
次に、図２に示した画像符号化装置１１から出力された符号化ストリームを復号する、本技術を適用した画像処理装置としての画像復号装置について説明する。
【０２０６】
図１０は、本技術を適用した画像復号装置の一実施の形態の構成例を示す図である。
【０２０７】
図１０に示す画像復号装置２０１は、画像符号化装置１１により生成された符号化ストリームを、画像符号化装置１１における符号化方法に対応する復号方法で復号する。例えば、画像復号装置２０１は、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により定まるモードでのインター予測処理を行う。
【０２２４】
予測部２１６は、イントラ予測処理またはインター予測処理の結果生成された復号対象のブロックの予測画像Ｐを演算部２１４に供給する。
【０２２５】
さらに、予測部２１６は、予測部３０と同様に、符号化対象のピクチャの参照関係に基づいて、バイラテラルマッチング法が使えるか否かを判定して、バイラテラルマッチング法が使えないと判定された場合には、自動的に、テンプレートマッチング法を用いることとする。
【０２２６】
例えば、予測部２１６は、参照フレームが同じPOC番号しかない場合、符号化対象のピクチャの参照関係について、参照フレームが１枚だけであると確認し、バイラテラルマッチング法が使えないと判定する。従って、この場合、動き情報の導出方法としてテンプレートマッチング法が自動的に採用（選択）され、予測部２１６は、テンプレートマッチング法により動き情報を導出して、その動き情報に基づいて予測画像を生成する。
【０２２７】
また、予測部２１６は、参照フレームに異なるPOC番号がある場合、符号化対象のピクチャの参照関係について、参照フレームが２枚あると確認し、バイラテラルマッチング法が使えると判定する。この場合、予測部２１６は、画像符号化装置１１から送信されてくるFRUC_MERGE_MODE_FLAG1をビットストリームから読み出す。
【０２２８】
〈画像復号処理の説明〉
次に、画像復号装置２０１の動作について説明する。
【０２２９】
まず、図１１のフローチャートを参照して、画像復号装置２０１による画像復号処理について説明する。
【０２３０】
ステップＳ２１１において、復号部２１１は、画像復号装置２０１に供給された符号化ストリームを復号し、符号化パラメータと量子化変換係数レベル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等に基づいて、復号対象のブロックがＰスライスのブロックであるか否かを判定する。
【０２５６】
ステップＳ２５３においてＰスライスのブロックでないと判定された場合、処理はステップＳ２５４へと進む。
【０２５７】
ステップＳ２５４において、予測部２１６は、符号化対象のピクチャの参照関係を確認する。
【０２５８】
ステップＳ２５５において、予測部２１６は、ステップＳＳ２５４で符号化対象のピクチャの参照関係を確認した結果に基づいて、その参照関係からバイラテラルマッチング法が使えるか否かを判定する。例えば、予測部２１６は、参照フレームが同じPOC番号しかない場合、バイラテラルマッチング法が使えないと判定し、参照フレームに異なるPOC番号がある場合、バイラテラルマッチング法が使えると判定する。
【０２５９】
ステップＳ２５５においてバイラテラルマッチング法が使えると判定された場合、処理はステップＳ２５６へと進む。
【０２６０】
ステップＳ２５６において、予測部２１６は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モードでは、符号化ストリームには差分動きベクトルが格納されているため、その差分動きベクトルが用いられて復号対象のブロックの予測動きベクトルが導出される。
【０２７７】
そして、画像復号装置２０１は、符号化対象のピクチャの参照関係からバイラテラルマッチング法が使えるか否かの判定を行って、バイラテラルマッチング法が使えない場合には、動き情報の導出方法としてテンプレートマッチング法を自動的に採用することができる。これにより、上述したような無駄な符号の送信が回避されて、さらなる符号化効率の向上を図ることができる。
【０２７８】
さらに、画像復号装置２０１では、バイラテラルマッチング法が使えない場合には、バイラテラルマッチング法を試してRDコストを計算する必要がない。即ち、従来では、FRUC Mergeモードを符号化する際、Ｐスライスでない場合、テンプレートマッチング法およびバイラテラルマッチング法のどちらを用いるかを判断するために、RDコストを計算するようにしていた。
【０２７９】
これに対し、画像復号装置２０１は、図１２に示したFRUCマージモード復号処理のように、バイラテラルマッチング法が使えるか否かを判定することで、バイラテラルマッチング法が使えない場合には、RDコストを算出する処理を行わないようにすることができる。従って、画像復号装置２０１は、RDコストを算出する処理を行わない分だけ、処理量を削減することができる。
【０２８０】
ところで、仮に、バイラテラルマッチング法を行うことを示す情報がビットストリームにあった場合、デコーダはバイラテラルマッチング法を行うことができないため、デコード処理で曖昧になることが懸念される。従って、この場合、各デコーダで処理結果が異なってしまうことが想定される。
【０２８１】
これに対し、本実施の形態の画像符号化装置１１および画像復号装置２０１は、符号化対象のピクチャの参照関係に基づいて、バイラテラルマッチング法が使えるか否かを判定することによって、このように各デコーダで処理結果が異なってしまうことを回避し、確実に正確なデコードが行われるようにすることができる。
【０２８２】
なお、上述したように、図９のステップＳ９４および図１２のステップＳ２５５では、符号化対象のピクチャの参照関係に基づいてバイラテラルマッチング法が使えるか否かを判定していたが、この判定は、符号化対象のピクチャの参照関係に基づくものに限定されることはない。即ち、符号化対象のピクチャの参照関係以外に基づいて、バイラテラルマッチング法が使えるか否かを判定してもよい。
【０２８３】
〈スライスヘッダのシンタックス〉
図１３に、スライスヘッダのシンタックスの例を示す。なお、図１３においては、バイラテラルマッチング法が使えるか否かの判定について説明するのに必要な一部分のみが抜き出されており、各行の左端の数字は、説明の便宜上付した行番号である。
【０２８４】
例えば、３行目には、スライスタイプの判定を行うこと（例えば、図９のステップＳ９１および図１２のステップＳ２５３に対応）が示されている。例えば、ＰスライスまたはＢスライスであれば、４行目に示すようなリファレンスフレーム数を伝えるためのフラグnum_ref_idx_active_override_flagが含まれている。
【０２８５】
また、６行目に示すnum_ref_idx_l0_active_minus1は、リスト０の参照インデックス数の最大に１を引いた数を意味しており、これが０であるか否かに従って、バイラテラルマッチング法が使えるか否かの判定が行われる。また、このnum_ref_idx_l0_active_minus1の詳細については、図１４に示す通りである。
【０２８６】
また、８行目に示すnum_ref_idx_l1_active_minus1は、リスト１の参照インデックス数の最大に１を引いた数を意味しており、これが０であるか否かに従って、バイラテラルマッチング法が使えるか否かの判定が行われる。また、このnum_ref_idx_l1_active_minus1の詳細については、図１５に示す通りである。
【０２８７】
なお、この判定には、参照フレームのPOCを知る必要があり、POCについては、HEVCの規格書 8.3.1 Decoding process for picture order countに記述されている。例えば、関数PicOrderCnt( picX )は、図１６の２行目に示すように指定される。また、関数DiffPicOrderCnt( picA , picB )は、図１６の４行目に示すように、picAとpicBのPOCの差を計算する。また、図１６の５行目に示すように、リスト０のインデックス０のPOCと、リスト１のインデックス１のPOCの差を計算する。
【０２８８】
〈コーディングユニットのシンタックス〉
図１７乃至図２１に、コーディングユニットのシンタックスの例を示す。なお、図１７乃至図２１において、各行の左端の数字は、説明の便宜上付した行番号である。なお、HEVCではコーディングユニットとプリディクションユニット（PU（Prediction Unit））が異なったサイズであったのに対し、それらのサイズを統合すること（PART_2Nx2Nだけ）が検討されている。
【０２８９】
例えば、図１７の７行目に示すように、スキップモードであるか否かが判定され、スキップモードである場合には、図１７の８行目のprediction_unit( x0, y0, nCbS, nCbS )に従って、図１８の４９行目が読み出される。一方、スキップモードでない場合には、図１８の３５行目のprediction_unit( x0, y0, nCbS, nCbS )に従って、図１８の４９行目が読み出される。
【０２９０】
そして、図１９の５１行目から６４行目に示すような条件に従って、バイラテラルマッチング法が使えるか否かの判定が行われる。また、同様に、マージモードの場合には、図１９の７１行目から８４行目に示すような条件に従って、バイラテラルマッチング法が使えるか否かの判定が行われる。
【０２９１】
ここで、Current Reference Picture (CRP)またはIntra Block Copy (IBC) と呼ばれる技術がある。従来、参照ピクチャのPOC番号は、カレント・ピクチャとは異なっていたが、CRPまたはIBCを適用する際、カレント・ピクチャと同じPOC番号の参照ピクチャを参照できる。
【０２９２】
例えば、上述したシンタックスではfruc_merge_mode_flag1を送信しない条件として、図１９の５４行目に示すような条件が挙げられていた。すなわち、Ｂスライスで、参照ピクチャ数がリスト０およびリスト１ともに１で、それらのPOC番号の差がゼロであることを条件としている。
【０２９３】
しかし、CRPまたはIBCが適用されるならば、参照ピクチャ数が１追加されることより、図１９の５４行目に示すような条件は、図２２に示すように変更されることが検討される。即ち、図２２に示すRefPicList0[0]およびRefPicList1[0]には、カレント・ピクチャとは異なるPOC番号の参照ピクチャが格納されており、RefPicList0[0]およびRefPicList1[0]には、カレント・ピクチャと同じPOCの参照ピクチャが格納されている。なお、ここで説明した以外にも、必要に応じて、バイラテラルマッチング法が使えるか否かを判定するための条件を、適宜、変更してもよい。
【０２９４】
〈コンピュータの構成例〉
ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のコンピュータなどが含まれる。
【０２９５】
図２３は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０２９６】
コンピュータにおいて、ＣＰＵ５０１，ＲＯＭ（Read Only Memory）５０２，ＲＡＭ（Random Access Memory）５０３は、バス５０４により相互に接続されている。
【０２９７】
バス５０４には、さらに、入出力インターフェース５０５が接続されている。入出力インターフェース５０５には、入力部５０６、出力部５０７、記録部５０８、通信部５０９、及びドライブ５１０が接続されている。
【０２９８】
入力部５０６は、キーボード、マウス、マイクロホン、撮像素子などよりなる。出力部５０７は、ディスプレイ、スピーカアレイなどよりなる。記録部５０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部５０９は、ネットワークインターフェースなどよりなる。ドライブ５１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブル記録媒体５１１を駆動する。
【０２９９】
以上のように構成されるコンピュータでは、ＣＰＵ５０１が、例えば、記録部５０８に記録されているプログラムを、入出力インターフェース５０５及びバス５０４を介して、ＲＡＭ５０３にロードして実行することにより、上述した一連の処理が行われる。
【０３００】
コンピュータ（ＣＰＵ５０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体５１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０３０１】
コンピュータでは、プログラムは、リムーバブル記録媒体５１１をドライブ５１０に装着することにより、入出力インターフェース５０５を介して、記録部５０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部５０９で受信し、記録部５０８にインストールすることができる。その他、プログラムは、ＲＯＭ５０２や記録部５０８に、あらかじめインストールしておくことができる。
【０３０２】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０３０３】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０３０４】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０３０５】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０３０６】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０３０７】
また、本明細書中に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【０３０８】
さらに、本技術は、以下の構成とすることも可能である。
【０３０９】
（１）
参照画像を用いて符号化対象のブロックから予測画像を生成する処理を行う際に、前記参照画像を用いたブロックマッチングにより前記ブロックの動きベクトルを導出するにあたって、互いに異なる時刻の前記参照画像に基づくバイラテラルマッチングが使えるか否かの判定を行う予測部を備える
画像処理装置。
（２）
前記予測部は、前記符号化対象のブロックが参照する前記参照画像が１枚だけなのか、または、前記参照画像が２枚あるのかという参照関係に基づいて、前記バイラテラルマッチングが使えるか否かの判定を行う
上記（１）に記載の画像処理装置。
（３）
前記予測部は、前記参照画像についてピクチャの出力順を示すピクチャオーダカウントに従って、前記参照関係を確認する
上記（２）に記載の画像処理装置。
（４）
前記予測部は、前記符号化対象のブロックが参照する前記参照画像が１枚だけである場合、前記バイラテラルマッチングが使えないと判定し、前記ブロックを含む画像と前記参照画像とに基づくテンプレートマッチングにより前記動きベクトルを導出する
上記（１）から（３）までのいずれかに記載の画像処理装置。
（５）
前記予測部は、前記符号化対象のブロックが参照する前記参照画像が２枚ある場合、前記バイラテラルマッチングが使えると判定し、前記バイラテラルマッチングにより導出された前記動きベクトルから算出されるコストが、前記テンプレートマッチングにより導出された前記動きベクトルから算出されるコスト未満であれば、前記バイラテラルマッチングにより前記動きベクトルを導出する
上記（４）に記載の画像処理装置。
（６）
前記予測部は、前記バイラテラルマッチングが使えると判定した場合であっても、前記バイラテラルマッチングにより導出された前記動きベクトルから算出されるコストが、前記テンプレートマッチングにより導出された前記動きベクトルから算出されるコスト未満でなければ、前記テンプレートマッチングにより前記動きベクトルを導出する
上記（５）に記載の画像処理装置。
（７）
前記予測部は、前記動きベクトルに基づいて前記ブロックの予測画像を生成する
上記（１）から（６）までのいずれかに記載の画像処理装置。
（８）
参照画像を用いて符号化対象のブロックから予測画像を生成する処理を行う際に、前記参照画像を用いたブロックマッチングにより前記ブロックの動きベクトルを導出するにあたって、互いに異なる時刻の前記参照画像に基づくバイラテラルマッチングが使えるか否かの判定を行う
ステップを含む画像処理方法。
【符号の説明】
【０３１０】
１１  画像符号化装置，  ２１  制御部，  ３０  予測部，  ５１  候補取得部，  ５２  バイラテラルマッチング処理部，  ５３  サブブロック候補取得部，  ５４  バイラテラルマッチング処理部，  ９１  候補取得部，  ９２  テンプレートマッチング処理部，  ９３  サブブロック候補取得部，  ９４  テンプレートマッチング処理部，  ２０１  画像復号装置，  ２１１  復号部，  ２１６  予測部
【図１】
2018163857.tif 000003
【図２】
2018163857.tif 000004
【図３】
2018163857.tif 000005
【図４】
2018163857.tif 000006
【図５】
2018163857.tif 000007
【図６】
2018163857.tif 000008
【図７】
2018163857.tif 000009
【図８】
2018163857.tif 000010
【図９】
2018163857.tif 000011
【図１０】
2018163857.tif 000012
【図１１】
2018163857.tif 000013
【図１２】
2018163857.tif 000014
【図１３】
2018163857.tif 000015
【図１４】
2018163857.tif 000016
【図１５】
2018163857.tif 000017
【図１６】
2018163857.tif 000018
【図１７】
2018163857.tif 000019
【図１８】
2018163857.tif 000020
【図１９】
2018163857.tif 000021
【図２０】
2018163857.tif 000022
【図２１】
2018163857.tif 000023
【図２２】
2018163857.tif 000024
【図２３】
2018163857.tif 000025
【国際調査報告】
2018163857.tif 000026
2018163857.tif 000027
2018163857.tif 000028
2018163857.tif 000029