(57)【要約】  本開示は、テンプレートマッチングの負荷の増大を抑制することができるようにする画像処理装置および方法に関する。動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出し、その導出された各動きベクトル候補のコストに基づいて、その動きベクトル候補リストの要素を並び替える。または、動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと探索点のテンプレートとのテンプレートマッチングを行い、コストを導出し、導出された各動きベクトル候補のコストに基づいて修正動きベクトル候補を導出する。本開示は、例えば、画像処理装置、画像符号化装置、または画像復号装置等に適用することができる。
2019244669.tif 000002
【特許請求の範囲】
【請求項１】
動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出するテンプレートマッチング部と、
前記テンプレートマッチング部により導出された各動きベクトル候補のコストに基づいて、前記動きベクトル候補リストの要素を並び替える並び替え部と
を備える画像処理装置。
【請求項２】
小数画素精度の動きベクトル候補リストに対応する整数画素精度の動きベクトル候補リストを導出する導出部をさらに備え、
前記テンプレートマッチング部は、前記導出部により導出された前記整数画素精度の動きベクトル候補リストの各動きベクトル候補について、前記カレントブロックのテンプレートと前記参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出し、
前記並び替え部は、前記テンプレートマッチング部により導出された各動きベクトル候補のコストに基づいて、前記小数画素精度の動きベクトル候補リストの要素を並び替える
請求項１に記載の画像処理装置。
【請求項３】
前記テンプレートマッチング部は、テンプレートマッチングが行われた動きベクトル候補と同一の動きベクトル候補に対するテンプレートマッチングをスキップする
請求項１に記載の画像処理装置。
【請求項４】
前記テンプレートマッチング部は、前記カレントブロックのサイズに応じたサンプリング間隔の前記カレントブロックのテンプレートと、前記カレントブロックのサイズに応じたサンプリング間隔の前記参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出する
請求項１に記載の画像処理装置。
【請求項５】
前記テンプレートマッチング部は、前記カレントブロックの位置に応じたサイズの前記カレントブロックのテンプレートと、前記カレントブロックの位置に応じたサイズの前記参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出する
請求項１に記載の画像処理装置。
【請求項６】
前記テンプレートマッチング部および前記並び替え部は、カレントブロックが所定の閾値より小さい場合、処理をスキップする
請求項１に記載の画像処理装置。
【請求項７】
前記テンプレートマッチング部は、複数予測の動きベクトル候補について、単数予測を設定し、前記単数予測の動きベクトル候補として前記カレントブロックのテンプレートと前記参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出する
請求項１に記載の画像処理装置。
【請求項８】
インター予測を行って予測画像を生成し、前記並び替え部により要素が並び替えられた前記動きベクトル候補リストを用いて、前記予測画像の生成に用いられる動きベクトルを符号化する符号化部をさらに備える
請求項１に記載の画像処理装置。
【請求項９】
前記並び替え部により要素が並び替えられた前記動きベクトル候補リストを用いて、予測画像の生成に用いられる動きベクトルを復元する復元部をさらに備える
請求項１に記載の画像処理装置。
【請求項１０】
動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出し、
導出された各動きベクトル候補のコストに基づいて、前記動きベクトル候補リストの要素を並び替える
画像処理方法。
【請求項１１】
動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと探索点のテンプレートとのテンプレートマッチングを行い、コストを導出するテンプレートマッチング部と、
前記テンプレートマッチング部により導出された各動きベクトル候補のコストに基づいて修正動きベクトル候補を導出し、導出した前記修正動きベクトル候補を用いて前記動きベクトル候補リストを更新する更新部と
を備える画像処理装置。
【請求項１２】
小数画素精度の動きベクトル候補リストに対応する整数画素精度の動きベクトル候補リストを導出する導出部をさらに備え、
前記テンプレートマッチング部は、前記導出部により導出された前記整数画素精度の動きベクトル候補リストの各動きベクトル候補について、前記カレントブロックのテンプレートと前記探索点のテンプレートとのテンプレートマッチングを行い、コストを導出し、
前記更新部は、前記テンプレートマッチング部により導出された各動きベクトル候補のコストに基づいて前記修正動きベクトル候補を導出し、導出した前記修正動きベクトル候補を用いて前記小数画素精度の動きベクトル候補リストを更新する
請求項１１に記載の画像処理装置。
【請求項１３】
前記テンプレートマッチング部は、テンプレートマッチングが行われた動きベクトル候補と同一の動きベクトル候補に対するテンプレートマッチングをスキップする
請求項１１に記載の画像処理装置。
【請求項１４】
前記テンプレートマッチング部は、前記カレントブロックのサイズに応じたサンプリング間隔の前記カレントブロックのテンプレートと、前記カレントブロックのサイズに応じたサンプリング間隔の前記探索点のテンプレートとのテンプレートマッチングを行い、コストを導出する
請求項１１に記載の画像処理装置。
【請求項１５】
前記テンプレートマッチング部は、前記カレントブロックの位置に応じたサイズの前記カレントブロックのテンプレートと、前記カレントブロックの位置に応じたサイズの前記探索点のテンプレートとのテンプレートマッチングを行い、コストを導出する
請求項１１に記載の画像処理装置。
【請求項１６】
前記テンプレートマッチング部および前記更新部は、カレントブロックが所定の閾値より小さい場合、処理をスキップする
請求項１１に記載の画像処理装置。
【請求項１７】
前記テンプレートマッチング部は、複数予測の動きベクトル候補について、単数予測を設定し、前記単数予測の動きベクトル候補として前記カレントブロックのテンプレートと前記探索点のテンプレートとのテンプレートマッチングを行い、コストを導出する
請求項１１に記載の画像処理装置。
【請求項１８】
インター予測を行って予測画像を生成し、前記更新部により前記修正動きベクトル候補を用いて更新された前記動きベクトル候補リストを用いて、前記予測画像の生成に用いられる動きベクトルを符号化する符号化部をさらに備える
請求項１１に記載の画像処理装置。
【請求項１９】
前記更新部により前記修正動きベクトル候補を用いて更新された前記動きベクトル候補リストを用いて、予測画像の生成に用いられる動きベクトルを復元する復元部をさらに備える
請求項１１に記載の画像処理装置。
【請求項２０】
動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと探索点のテンプレートとのテンプレートマッチングを行い、コストを導出し、
導出された各動きベクトル候補のコストに基づいて修正動きベクトル候補を導出し、導出した前記修正動きベクトル候補を用いて前記動きベクトル候補リストを更新する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置および方法に関し、特に、テンプレートマッチングの負荷の増大を抑制することができるようにした画像処理装置および方法に関する。
【背景技術】
【０００２】
従来、画像符号化のインター予測において、予測動きベクトルを用いた動きベクトルの符号化を行うモードがあった。この動きベクトルの符号化においては、予測動きベクトルの候補（MV候補とも称する）のリストであるMV候補リストが生成され、そのMV候補リストの中のいずれかのMV候補が選択され、予測動きベクトルとして用いられた。【０００３】
近年、テンプレートマッチングにより導出されるコストに基づいて、このMV候補リストにおけるMV候補の並び順を並び替える方法が考えられた（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Moonmo Koo, Jin Heo, Junghak Nam, Naeri Park, Jaeho Lee, Jangwon Choi, Sunmi Yoo, Hyeongmun Jang, Ling Li, Jaehyun Lim, "Description of SDR video coding technology proposal by LG Electronics",  JVET-J0017-v1, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, CA, 10-20 April 2018
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１に記載の方法の場合、MV候補リストの各MV候補について、コストを導出するためのテンプレートマッチングが行われるため、このテンプレートマッチングによる負荷が増大するおそれがあった。【０００６】
本開示は、このような状況に鑑みてなされたものであり、テンプレートマッチングの負荷の増大を抑制することができるようにするものである。
【課題を解決するための手段】
【０００７】
本技術の一側面の画像処理装置は、動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出するテンプレートマッチング部と、前記テンプレートマッチング部により導出された各動きベクトル候補のコストに基づいて、前記動きベクトル候補リストの要素を並び替える並び替え部とを備える画像処理装置である。【０００８】
本技術の一側面の画像処理方法は、動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出し、導出された各動きベクトル候補のコストに基づいて、前記動きベクトル候補リストの要素を並び替える画像処理方法である。【０００９】
本技術の他の側面の画像処理装置は、動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと探索点のテンプレートとのテンプレートマッチングを行い、コストを導出するテンプレートマッチング部と、前記テンプレートマッチング部により導出された各動きベクトル候補のコストに基づいて修正動きベクトル候補を導出し、導出した前記修正動きベクトル候補を用いて前記動きベクトル候補リストを更新する更新部とを備える画像処理装置である。【００１０】
本技術の他の側面の画像処理方法は、動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと探索点のテンプレートとのテンプレートマッチングを行い、コストを導出し、導出された各動きベクトル候補のコストに基づいて修正動きベクトル候補を導出し、導出した前記修正動きベクトル候補を用いて前記動きベクトル候補リストを更新する画像処理方法である。【００１１】
本技術の一側面の画像処理装置および方法においては、動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと参照ブロックのテンプレートとのテンプレートマッチングが行われ、コストが導出され、その導出された各動きベクトル候補のコストに基づいて、その動きベクトル候補リストの要素が並び替えられる。【００１２】
本技術の他の側面の画像処理装置および方法においては、動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと探索点のテンプレートとのテンプレートマッチングが行われ、コストが導出され、導出された各動きベクトル候補のコストに基づいて修正動きベクトル候補が導出され、その導出された修正動きベクトル候補を用いてその動きベクトル候補リストが更新される。
【発明の効果】
【００１３】
本開示によれば、画像を処理することができる。特に、テンプレートマッチングの負荷の増大を抑制することができる。なお、上述の効果は必ずしも限定的なものではなく、上述の効果とともに、または上述の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１４】
【図１】MV候補リストの並び替えの例を示す図である。
【図２】テンプレートマッチングの様子の例を示す図である。
【図３】本技術を適用したテンプレートマッチングの方法の主な例を示す図である。
【図４】MV候補リスト導出装置の主な構成例を示すブロック図である。
【図５】MV候補リスト導出処理の流れの例を説明するフローチャートである。
【図６】MV候補リスト並び替え部の主な構成例を示すブロック図である。
【図７】MV候補リスト並び替え処理の流れの例を説明するフローチャートである。
【図８】MV候補リスト並び替え部の主な構成例を示すブロック図である。
【図９】テストフラグおよびコスト参照インデックスの設定例を示す図である。
【図１０】疑似コードの例を示す図である。
【図１１】MV候補リスト並び替え処理の流れの例を説明するフローチャートである。
【図１２】MV候補リスト並び替え処理の流れの例を説明する、図１１に続くフローチャートである。
【図１３】テンプレートの間引きの様子の例を示す図である。
【図１４】MV候補リスト並び替え部の主な構成例を示すブロック図である。
【図１５】テンプレートの間引きの様子の例を示す図である。
【図１６】テンプレートの間引きの様子の例を示す図である。
【図１７】MV候補リスト並び替え処理の流れの例を説明するフローチャートである。
【図１８】MV候補リスト並び替え部の主な構成例を示すブロック図である。
【図１９】テンプレートサイズの設定例を示す図である。
【図２０】テンプレートサイズの設定例を示す図である。
【図２１】テンプレートサイズの設定例を示す図である。
【図２２】MV候補リスト並び替え処理の流れの例を説明するフローチャートである。
【図２３】MV候補リスト並び替え部の主な構成例を示すブロック図である。
【図２４】MV候補リスト導出処理の流れの例を説明するフローチャートである。
【図２５】MV候補リスト並び替え部の主な構成例を示すブロック図である。
【図２６】参照LX予測の設定の様子の例を示す図である。
【図２７】MV候補リスト並び替え処理の流れの例を説明するフローチャートである。
【図２８】画像符号化装置の主な構成例を示すブロック図である。
【図２９】画像符号化処理の流れの例を説明するフローチャートである。
【図３０】画像復号装置の主な構成例を示すブロック図である。
【図３１】画像復号処理の流れの例を説明するフローチャートである。
【図３２】修正MV候補導出の例を示す図である。
【図３３】MVオフセットリストの例を示す図である。
【図３４】MV候補リスト導出装置の主な構成例を示すブロック図である。
【図３５】MV候補リスト導出処理の流れの例を説明するフローチャートである。
【図３６】修正MV候補導出部の主な構成例を示すブロック図である。
【図３７】MVオフセットリストの例を示す図である。
【図３８】修正MV候補導出処理の流れの例を説明するフローチャートである。
【図３９】修正MV候補導出処理の流れの例を説明する、図３８に続くフローチャートである。
【図４０】修正MV候補導出部の主な構成例を示すブロック図である。
【図４１】修正MV候補導出処理の流れの例を説明するフローチャートである。
【図４２】修正MV候補導出処理の流れの例を説明する、図４１に続くフローチャートである。
【図４３】修正MV候補導出部の主な構成例を示すブロック図である。
【図４４】修正MV候補導出処理の流れの例を説明するフローチャートである。
【図４５】修正MV候補導出処理の流れの例を説明する、図４４に続くフローチャートである。
【図４６】修正MV候補導出部の主な構成例を示すブロック図である。
【図４７】修正MV候補導出処理の流れの例を説明するフローチャートである。
【図４８】修正MV候補導出処理の流れの例を説明する、図４７に続くフローチャートである。
【図４９】修正MV候補導出部の主な構成例を示すブロック図である。
【図５０】MV候補リスト導出処理の流れの例を説明するフローチャートである。
【図５１】修正MV候補導出部の主な構成例を示すブロック図である。
【図５２】修正MV候補導出処理の流れの例を説明するフローチャートである。
【図５３】修正MV候補導出処理の流れの例を説明する、図５２に続くフローチャートである。
【図５４】差分動きベクトル候補の選択の様子の例を説明する図である。
【図５５】動きベクトル導出処理の流れの例を説明するフローチャートである。
【図５６】コンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本開示を実施するための形態（以下実施の形態とする）について説明する。なお、説明は以下の順序で行う。
１．テンプレートマッチングの簡略化
２．第１の実施の形態（MV候補リストの並び替えへの適用）
３．第２の実施の形態（画像符号化装置への適用）
４．第３の実施の形態（画像復号装置への適用）
５．第４の実施の形態（修正MV候補導出への適用）
６．第５の実施の形態（差分動きベクトル導出への適用）
７．付記
【００１６】
＜１．テンプレートマッチングの簡略化＞
＜技術内容・技術用語をサポートする文献等＞
本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。
【００１７】
非特許文献１：（上述）
非特許文献２：Jianle Chen, Elena Alshina, Gary J. Sullivan, Jens-Rainer, Jill Boyce, "Algorithm Description of Joint Exploration Test Model 4", JVET-G1001_v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017
非特許文献３：TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU（International Telecommunication Union）, "Advanced video coding for generic audiovisual services", H.264, 04/2017
非特許文献４：TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU（International Telecommunication Union）, "High efficiency video coding", H.265, 12/2016
非特許文献５： B. Bross, "Versatile Video Coding (Draft 1) ", JVET-J1001, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, US, 10-20 Apr. 2018
非特許文献６： Jiane Chen, Elena Alshina, "Algorithm description for Versatile Video Coding and Test Model 1 (VTM 1)" , JVET-J1002, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, US, 10-20 Apr. 2018
非特許文献７：Huanbang Chen, Jianle Chen, Roman Chernyak, Semih Esenlik, Alexey Filippov, Shan Gao, Sergey Ikonin, Alexander Karabutov, Anand Meher Kotra, Xiaomu Lu, Xiang Ma, Vasily Rufitskiy, Timofey Solovyev, Victor Stepin, Maxim Sychev, Tian Wang, Ye-kui Wang, Weiwei Xu, Haitao Yang, Vladyslav Zakharchenko, Hong Zhang, Yin Zhao, Zhijie Zhao, Jiantong Zhou, Cheung Auyeung, Han Gao, Ivan Krasnov, Ruslan Mullakhmetov, Biao Wang, Yiu Fai Wong, Georgy Zhulikov, Adeel Abbas, David Newman, Jicheng An, Xu Chen, Yongbing Lin, Quanhe Yu, Jianhua Zheng, Sri Nitchith Akula, Alexander Alshin, Elena Alshina, Kiho Choi, Kwang Pyo Choi, Narae Choi, Woongil Choi, Amith Dsouza, Raj Narayana Gadde, Seungsoo Jeong, Bora Jin, Chanyul Kim, Sunil Lee, Junghye Min, JeongHoon Park, Minsoo Park, Min Woo Park, Yinji Piao, Chirag Pujara, Anish Tamse, Heechyul Yang, "Description of SDR, HDR and 360° video coding technology proposal by Huawei, GoPro, HiSilicon, and Samsung", JVET-J0025_v2, buJoint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, US, 10-20 Apr. 2018
【００１８】
つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、非特許文献４に記載されているQuad-Tree Block Structure、非特許文献２に記載されているQTBT（Quad Tree Plus Binary Tree） Block Structure、非特許文献５および非特許文献６に記載されているMulti-type (binary/ternay/quaternary) tree Block Strcture(BT/TT/QT coding block structureとも呼ぶ)が実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース（Parsing）、シンタックス（Syntax）、セマンティクス（Semantics）等の技術用語についても同様に、実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
【００１９】
また、本明細書において、画像（ピクチャ）の部分領域や処理単位として説明に用いる「ブロック」（処理部を示すブロックではない）は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献２乃至非特許文献６に記載のTB（Transform Block）、TU（Transform Unit）、PB（Prediction Block）、PU（Prediction Unit）、SCU（Smallest Coding Unit）、CU（Coding Unit）、LCU（Largest Coding Unit）、CTB（Coding Tree Block）、CTU（Coding Tree Unit）、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域（処理単位）が含まれるものとする。また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック（例えばLCUやSCU等）のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定（例えば、許容されるブロックサイズの範囲の指定等）も含む。
【００２０】
また、本明細書において、符号化とは、画像をビットストリームに変換する全体の処理だけではなく、一部の処理も含む。例えば、予測処理、直交変換、量子化、算術符号化等を包括した処理を含むだけではなく、量子化と算術符号化とを総称した処理、予測処理と量子化と算術符号化とを包括した処理、などを含む。同様に、復号とは、ビットストリームを画像に変換する全体の処理だけではなく、一部の処理も含む。例えば、逆算術復号、逆量子化、逆直交変換、予測処理等を包括した処理を含むだけではなく、逆算術復号と逆量子化とを包括した処理、逆算術復号と逆量子化と予測処理とを包括した処理、などを含む。
【００２１】
＜動きベクトルの符号化＞
例えば非特許文献２や非特許文献４に記載の画像符号化・復号方式では、インター予測において、動きベクトル（MV（Motion Vector））を、予測動きベクトル（MVP（Motion Vector Prediction））を用いて符号化するモードがあった。この動きベクトルの符号化においては、予測動きベクトルの候補（MV候補とも称する）のリストであるMV候補リスト（MVCandList（MV Candidate List））が生成され、そのMV候補リストの中のいずれかのMV候補が選択され、予測動きベクトルとして用いられた。
【００２２】
このMV候補には、例えば、カレントPUに隣接する復号済ブロックの動きベクトル情報を使って導出される空間動きベクトルMV候補、符号化対象ピクチャ（curPic（Current Picture））と異なる時間のピクチャ（ColPic（Collocated Picture））の空間位置が同一のブロックと、その隣接ブロックのもつ動きベクトル情報を使って導出される時間MV候補、ゼロ動きベクトルをMV候補とするゼロMV候補等がある。
【００２３】
MV候補リストのどのMV候補をMVPとするかは、MV候補インデックス(mvpIdx)によって指定される(mvp = MVCandList[mvpIdx])。なお、スキップ／マージモード（SKIP/MERGEモード）の場合、MV候補リストのことを、マージMV候補リスト（MergeMVCandList）と称し、MV候補インデックスのことをマージインデックス(mergeIdx)と称する。また、SKIP/MERGEモードでない場合、L0予測、L1予測毎に、MV候補リストのことをLXMV候補リスト（LXMVCandList（X=0,1））と称し、MV候補インデックスのことをLXMV候補インデックス（mvpIdxLX（X=0,1））と称する。
【００２４】
MV候補リストの構築は、予め定められた挿入順でMV候補を追加し、その後、予め決められたMV候補同士を比較して重複MVを除外する、といった手順で行われる。なお、以上の手順の結果、MV候補の数が所定値より少ない場合、MV候補の数が所定値になるまで、追加のMV候補（例えば、ゼロMV候補）が追加される。このようなMV候補リストの場合、MV候補の挿入順は固定であり、静的なMV候補リストといえる。
【００２５】
＜MV候補リストの並び替え＞
非特許文献１では、シーケンスやブロック毎の特性の変化に対応できるように、例えば図１に示されるように、MV候補リストの構築後に、そのMV候補リストを並び替えるMV候補リスト並び替え処理が提案された。図１の例の場合、図中左に示されるMV候補リスト（Normal candidate list）のMV候補の順が、矢印で示されるように並び替えられて（Reordaring）、図中右に示される並び替え後のMV候補リスト（Re-orderd candidate list）が導出されている。
【００２６】
非特許文献１では、このような並び替えについて、例えば図２に示されるように、カレントPUの隣接復号済画素群からなるテンプレート（curTemplate）と、各MV候補の動き情報で定まる参照ピクチャ（refPic）のテンプレート（refTemplate）とでテンプレートマッチングを行い、そのコスト順にMV候補リストを並び替える方法が提案された。
【００２７】
例えば、図２の場合、処理対象であるカレントピクチャ（curPic）上のカレントPU（curPU）の上側に隣接する復号済画素群からなる上部テンプレート（curTemplateA）と、そのカレントPUを起点としてMV候補（mvp）により指定される参照ピクチャ（refPic）上の参照ブロックの上部テンプレート（LXTemplateA）とでテンプレートマッチングが行われる。また、カレントPUの左側に隣接する復号済画素群からなる左部テンプレート（curTemplateL）と、そのカレントPUを起点としてMV候補（mvp）により指定される参照ピクチャ（refPic）上の参照ブロックの左部テンプレート（LXTemplateL）とでテンプレートマッチングが行われる。
【００２８】
なお、カレントPUの上部テンプレート（curTemplateA）は、カレントPUのテンプレートＡとも称する。また、参照ブロックの上部テンプレート（LXTemplateA）は、参照ブロックのテンプレートＡ（refTemplateA）、または、MV候補（mvp）で指定される、カレントPUのテンプレートＡに対応する参照ピクチャのテンプレートＡとも称する。さらに、カレントPUの左部テンプレート（curTemplateL）は、カレントPUのテンプレートＬとも称する。また、参照ブロックの左部テンプレート（LXTemplateL）は、参照ブロックのテンプレートＬ（refTemplateL）、または、MV候補（mvp）で指定される、カレントPUのテンプレートＬに対応する参照ピクチャのテンプレートＬとも称する。
【００２９】
また、カレントPUの上部テンプレートおよび左部テンプレートを、カレントPUのテンプレートとも称し、参照ブロックの上部テンプレートおよび左部テンプレートを、参照ブロックのテンプレート（または、MV候補（mvp）で指定される、カレントPUのテンプレートに対応する参照ピクチャのテンプレート）とも称する。
【００３０】
そして、それらのテンプレートマッチング結果を用いて、カレントPUのテンプレート（curTemplate）と、MV候補（mvp）により指定される、そのカレントPUに対応する参照ピクチャのテンプレート（refTemplate）とのコスト（cost）が算出される。カレントPUのテンプレートＡと、MV候補（mvp）により指定される、そのカレントPUに対応する参照ピクチャのテンプレートＡとのコストをcostAとし、カレントPUのテンプレートＬと、MV候補（mvp）により指定される、そのカレントPUに対応する参照ピクチャのテンプレートＬとのコストをcostBとすると、上述のコスト（cost）は、LX予測の場合、以下の式（１）のように導出される。
【００３１】
【数１】
2019244669.tif 000003
【００３２】
また、双予測の場合、上述のコスト（cost）は、以下の式（２）のように導出される。
【００３３】
【数２】
2019244669.tif 000004
【００３４】
cost_uni(LX)は、例えばSAD（Sum of Absolute Difference）（画素値の差分の絶対値の和による類似度評価）により以下の式（３）のように導出される。なお、以下の式（３）において、posは、テンプレート内の各画素位置を示す。
【００３５】
【数３】
2019244669.tif 000005
【００３６】
このように導出されるコスト（の大きさ）に基づいて、MV候補リストの並び替えが行われる。
【００３７】
しかしながら、このような方法では、MV候補リストの各MV候補についてテンプレートマッチングが行われるため、MV候補毎に動き補償（MC（Motion Compensation））をして参照ピクチャのテンプレートを生成する必要があった。そのため、MV候補リスト並び替え処理（のテンプレートマッチング）の負荷が増大するおそれがあった。
【００３８】
＜テンプレートマッチングの簡略化＞
そこで、図３の表の方法＃１のように、テンプレートマッチングを簡略化するようにする。このようにすることにより、テンプレートマッチングの負荷の増大を抑制する（負荷を低減させる）ことができる。例えば、MV候補リスト並び替え処理において行われるテンプレートマッチングを簡略化することにより、MV候補リスト並び替え処理の負荷の増大を抑制する（負荷を低減させる）ことができる。負荷の増大を抑制することにより、例えば、ハードウエアのコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。
【００３９】
＜方法＃１−１＞
テンプレートマッチングの簡略化の方法として、例えば、図３の表の方法＃１−１のように、粗い精度でテンプレートマッチングを行うようにしてもよい。
【００４０】
例えば、動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出し、その導出された各動きベクトル候補のコストに基づいて、その動きベクトル候補リストの要素を並び替えるようにしてもよい。
【００４１】
例えば、画像処理装置において、動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出するテンプレートマッチング部と、そのテンプレートマッチング部により導出された各動きベクトル候補のコストに基づいて、その動きベクトル候補リストの要素を並び替える並び替え部とを備えるようにしてもよい。
【００４２】
このようにすることにより、テンプレートマッチングにおいて行われる演算を簡略化することができ、負荷の増大を抑制することができる。
【００４３】
特に、MV候補がサブペル（sub-pel）位置を示す場合、サブペル位置のテンプレートを動き補償により生成する必要があり、演算量が増大するおそれがあった。このようにMV候補リストが小数画素精度の場合に、例えば整数画素精度でテンプレートマッチングを行うようにすることにより、テンプレート生成（動き補償）の演算量の増大を抑制することができる。つまり、テンプレートマッチングの負荷の増大を抑制することができる。
【００４４】
その際、小数画素精度の動きベクトル候補リストに対応する整数画素精度の動きベクトル候補リストを導出するようにしてもよい。例えば、画像処理装置において、小数画素精度の動きベクトル候補リストに対応する整数画素精度の動きベクトル候補リストを導出する導出部をさらに備え、テンプレートマッチング部が、その導出部により導出された整数画素精度の動きベクトル候補リストの各動きベクトル候補について、カレントブロックのテンプレートと参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出し、並び替え部が、そのテンプレートマッチング部により導出された各動きベクトル候補のコストに基づいて、小数画素精度の動きベクトル候補リストの要素を並び替えるようにしてもよい。
【００４５】
このようにすることにより、容易に整数精度でのテンプレートマッチングを行うことができる。
【００４６】
例えば、導出部が、小数画素精度の各MV候補を整数画素精度に変換して、小数画素精度のMV候補リストに対応する整数画素精度のMV候補リストを生成し、その整数画素精度のMV候補リストを用いてテンプレートマッチングを行うようにしてもよい。このようにすることにより、小数画素精度の動きベクトル候補リストに対応する整数画素精度の動きベクトル候補リストを導出することができる。
【００４７】
＜方法＃１−２＞
また、例えば、図３の表の方法＃１−２のように、重複するMV候補（重複MV）のテンプレートマッチングをスキップ（省略）するようにしてもよい。例えば、画像処理装置において、テンプレートマッチング部が、既にテンプレートマッチングが行われた動きベクトル候補と同一の動きベクトル候補に対するテンプレートマッチングをスキップするようにしてもよい。このようにすることにより、テンプレートマッチングの回数の増大を抑制する（回数を削減する）ことができる。つまり、テンプレートマッチングの負荷の増大を抑制することができる。
【００４８】
＜方法＃１−３＞
さらに、例えば、図３の表の方法＃１−３のように、テンプレートの一部の画素を間引くようにしてもよい。例えば、カレントPUのサイズに応じた間引き率（割合）で、テンプレートの一部の画素を間引くようにしてもよい。例えば、画像処理装置において、テンプレートマッチング部が、カレントブロックのサイズに応じたサンプリング間隔の、そのカレントブロックのテンプレートと、そのカレントブロックのサイズに応じたサンプリング間隔の、参照ブロックのテンプレートとの間でテンプレートマッチングを行い、コストを導出するようにしてもよい。
【００４９】
換言するに、カレントPUの隣接復号済み画素群（カレントPUに隣接する所定の領域の画素群）から、そのカレントPUのサイズに応じた間隔で画素をサンプリングし（つまり、その隣接復号済み画素群からカレントPUのサイズに応じた割合（抽出率）で画素を抽出し）、そのサンプリングした画素により構成されるテンプレートを生成するようにしてもよい。
【００５０】
このようにテンプレートを生成することにより、テンプレートの画素数が低減するので、テンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができる。つまり、テンプレートマッチングの負荷の増大を抑制することができる。
【００５１】
＜方法＃１−４＞
ところで、カレントPUがCTU境界に隣接する場合、テンプレートマッチングで参照するテンプレートのサイズだけ、CTUレベルのラインバッファを確保する必要があり、メモリサイズが増大するおそれがあった。
【００５２】
そこで、例えば、図３の表の方法＃１−４のように、カレントPUがCTU境界に隣接する場合、テンプレートのライン数を削減するようにしてもよい。つまり、カレントPUの位置に応じたサイズでテンプレートが生成される（すなわち、テンプレートサイズが、カレントPUの位置に応じて設定される）ようにしてもよい。
【００５３】
例えば、画像処理装置において、テンプレートマッチング部が、カレントブロックの位置に応じたサイズのカレントブロックのテンプレートと、そのカレントブロックの位置に応じたサイズの参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出するようにしてもよい。
【００５４】
このようにテンプレートを生成することにより、テンプレート生成に使用する復号済み画素の増大を抑制する（テンプレート生成に使用する復号済み画素を削減する）ことができる。つまり、その復号済み画素を記憶（保持）するラインバッファのサイズの増大を抑制する（ラインバッファサイズを削減する）ことができる。つまり、テンプレートマッチングの負荷の増大を抑制することができる。
【００５５】
＜方法＃１−５＞
また、カレントPUのサイズが小さい場合、テンプレートマッチングの際に、隣接復号済画素群や参照ピクチャへのアクセス回数が増大し、使用するメモリバンドが増大する（つまり負荷が増大する）おそれがあった。
【００５６】
そこで、例えば、図３の表の方法＃１−５のように、カレントPUのサイズが小さい場合（例えばカレントPUのサイズが所定の閾値より小さい場合）、上述のMV候補リストの並び替え処理（MV補正）をスキップ（省略）するようにしてもよい。
【００５７】
例えば、画像処理装置において、テンプレートマッチング部および並び替え部が、カレントブロックが所定の閾値より小さい場合、処理をスキップするようにしてもよい。
【００５８】
このように制御することにより、負荷が大きな、サイズが小さいカレントPUに対するテンプレートマッチング（MV候補リストの並び替え処理）をスキップすることができる。つまり、テンプレートマッチングの負荷の増大を抑制することができる。
【００５９】
＜方法＃１−６＞
また、複数予測の場合、各予測について参照ブロックのテンプレートを作成する必要があるため負荷が増大するおそれがあった。そこで、例えば、図３の表の方法＃１−６のように、複数予測を行うMV候補に対して、予測数を削減し、単予測によるテンプレートマッチングを行うようにしてもよい。例えば、画像処理装置において、テンプレートマッチング部が、複数予測の動きベクトル候補（複数予測候補MV）について、単数予測を設定し、その単数予測の動きベクトル候補としてカレントブロックのテンプレートと参照ブロックのテンプレートとのテンプレートマッチングを行い、コストを導出するようにしてもよい。
【００６０】
このようにすることにより、テンプレートの生成数の増大を抑制する（テンプレートの生成数を削減する）ことができるので、テンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができる。
【００６１】
＜各方法の組み合わせ＞
なお、上述した方法＃１−１乃至方法＃１−６は、それぞれ単独で適用することもできるし、複数の方法を組み合わせて適用することもできる。例えば、方法＃１−１を、方法＃１−２乃至方法＃１−６のいずれかと組み合わせて用いるようにしてもよい。また、例えば、方法＃１−２乃至方法＃１−６の中で複数の方法を組み合わせてもよい。勿論、組み合わせる方法の数は任意であり、３つ以上の方法を組み合わせてもよい。
【００６２】
＜２．第１の実施の形態＞
＜MV候補リストの並び替えにおけるテンプレートマッチングの簡略化＞
上述したように、MV候補リスト並び替え処理においてはテンプレートマッチングが行われるので、このテンプレートマッチングを簡略化することにより、MV候補リスト並び替え処理の負荷の増大を抑制する（負荷を低減させる）ことができる。
【００６３】
＜MV候補リスト導出装置＞
図４は、本技術を適用した画像処理装置の一態様であるMV候補リスト導出装置の構成の一例を示すブロック図である。図４に示されるMV候補リスト導出装置１００は、動きベクトルの符号化に用いられるMV候補リストを導出する装置である。図４に示されるように、MV候補リスト導出装置１００は、第１MV精度MV候補リスト導出部１０１およびMV候補リスト並び替え部１０２を有しており、MV候補リストの導出と並び替えを行う。
【００６４】
第１MV精度MV候補リスト導出部１０１は、カレントPUの周囲ブロックの符号化済（復号済）動き情報や、参照ピクチャの動き情報を参照して、第１MV精度の空間MV候補、時間MV候補、ゼロMV候補等からなる第１MV精度のMV候補リスト（MVCandList）を導出（生成）する。なお、MV精度とは、MV候補の精度を示し、第１MV精度とは所定のMV精度を示す。
【００６５】
また、第１MV精度MV候補リスト導出部１０１は、その第１MV精度のMV候補リストに含まれるMV候補の数を示す情報（numMVCand）を導出（生成）する。第１MV精度MV候補リスト導出部１０１は、生成した第１MV精度のMV候補リストとその第１MV精度のMV候補リストに含まれるMV候補の数を示す情報とをMV候補リスト並び替え部１０２に供給する。
【００６６】
MV候補リスト並び替え部１０２は、第１MV精度MV候補リスト導出部１０１より供給された第１MV精度のMV候補リストのMV候補の順を並び替えて、並び替え後MV候補リスト（MVCandList'）を導出（生成）する。MV候補リスト並び替え部１０２は、テンプレートマッチング部１１１を備え、このテンプレートマッチング部１１１によるテンプレートマッチングを利用して、この並び替えを行う。MV候補リスト並び替え部１０２は、導出した並び替え後MV候補リスト（MVCandList'）を、導出したMV候補リストとして出力する。また、その際、MV候補リスト並び替え部１０２は、第１MV精度のMV候補リスト（並び替え後MV候補リスト）に含まれるMV候補の数を示す情報（numMVCand）も出力する。
【００６７】
テンプレートマッチング部１１１は、（MV候補リスト並び替えのための）テンプレートマッチングを簡略化して行う。
【００６８】
したがって、テンプレートマッチング部１１１は、＜テンプレートマッチングの簡略化＞において上述したように、テンプレートマッチングの負荷の増大を抑制することができ、MV候補リスト並び替え部１０２は、MV候補リストの並び替えの負荷の増大を抑制することができる。したがって、MV候補リスト導出装置１００は、MV候補リスト導出の負荷の増大を抑制することができる。
【００６９】
＜MV候補リスト導出処理の流れ＞
このMV候補リスト導出装置１００により実行されるMV候補リスト導出処理の流れの例を、図５のフローチャートを参照して説明する。
【００７０】
MV候補リスト導出処理が開始されると、第１MV精度MV候補リスト導出部１０１は、ステップＳ１０１において、カレントPUに対する第１MV精度のMV候補リスト（MVCandList）を導出（生成）する。なお、その際、第１MV精度MV候補リスト導出部１０１は、その第１MV精度のMV候補リストに含まれるMV候補の数を示す情報（numMVCand）を導出（生成）する。
【００７１】
ステップＳ１０２において、MV候補リスト並び替え部１０２は、テンプレートマッチングに基づいて、ステップＳ１０１において導出された第１MV精度のMV候補リストのMV候補の並び替えを行い、並び替え後MV候補リスト（MVCandList'）を導出（生成）する。
【００７２】
ステップＳ１０２の処理が終了すると、MV候補リスト導出処理が終了する。
【００７３】
以上のように各ステップの処理を実行することにより、＜テンプレートマッチングの簡略化＞において上述したように、テンプレートマッチングの負荷の増大を抑制することができる。つまり、MV候補リストの並び替えの負荷の増大を抑制することができる。すなわち、MV候補リスト導出の負荷の増大を抑制することができる。
【００７４】
＜方法＃１−１：MV候補リスト並び替え部＞
次に、MV候補リスト並び替え部１０２が、図３の方法＃１−１により、並び替えを行う場合について説明する。図６は、図４のMV候補リスト並び替え部１０２の構成の一例を示すブロック図である。図６に示されるように、この場合のMV候補リスト並び替え部１０２は、第２MV精度MV候補リスト導出部１２１、MV候補リスト並び替え部１２２、およびテンプレートマッチング部１１１を有する。
【００７５】
＜第２MV精度MV候補リスト導出部＞
第２MV精度MV候補リスト導出部１２１は、第１MV精度MV候補リスト導出部１０１から供給される第１MV精度のMV候補リスト（MVCandList）と、その第１MV精度のMV候補リストに含まれるMV候補の数を示す情報（numMVCand）とを取得する。
【００７６】
第２MV精度MV候補リスト導出部１２１は、その取得した第１MV精度のMV候補リスト（MVCandList）に対応する、第２MV精度のMV候補リスト（CoarseMVCandList）を導出（生成）する。
【００７７】
第２精度MVは、第１MV精度よりも低いMV精度を示す。第１MV精度および第２MV精度は、この関係を保つ限り、どのような精度であってもよい。例えば、第１MV精度を小数画素精度（サブペル精度）とし、第２MV精度を整数画素精度（整数ペル精度）としてもよい。第２MV精度が整数画素精度の場合、第１MV精度は、例えば、1/2-pel精度（ハーフペル（半画素）精度）としてもよいし、1/4-pel精度（クウォーターペル（1/4画素）精度）としてもよい。また、第１MV精度が1/4-pel精度の場合、第２MV精度は、例えば、整数画素精度としてもよいし、1/2-pel精度としてもよい。もちろん、第１MV精度および第２MV精度の内少なくとも一方が、これら以外の精度であってもよい。
【００７８】
第２MV精度を示すMV精度パラメータ（coarseMVPrec）が第２MV精度MV候補リスト導出部１２１に入力される。第２MV精度MV候補リスト導出部１２１は、その入力されたMV精度パラメータ（coarseMVPrec）に基づいて、第１MV精度MV候補リスト導出部１０１から供給される第１MV精度のMV候補リストに対応する、そのMV精度パラメータ（coarseMVPrec）が示す第２MV精度のMV候補リスト（CoarseMVCandList'）を導出（生成）する。なお、この第２MV精度は、固定値であってもよいし、ユーザ等により設定することができるようにしてもよい。
【００７９】
また、第２MV精度MV候補リスト導出部１２１は、導出した第２MV精度のMV候補リスト（CoarseMVCandList'）を、第１MV精度のMV候補リストに含まれるMV候補の数を示す情報（numMVCand）とともに、テンプレートマッチング部１１１（の参照ブロックテンプレート生成部１３２）に供給する。
【００８０】
＜第２MV精度のMV候補リストの導出＞
例えば、第２MV精度MV候補リスト導出部１２１は、以下の式（４）のように、第２MV精度のMV候補リスト（CoarseMVCandList）を導出（生成）する。
【００８１】
【数４】
2019244669.tif 000006
【００８２】
要素毎の処理表現の場合、以下のような疑似コードで表現される。すなわち、この疑似コード内の式（５）および式（６）に示されるように、各候補MVの動きベクトル（mv_x, mv_y）をMV精度パラメータ（coarseMVPrec）で右ビットシフトして左ビットシフトすることにより、動きベクトルの下位ビットの情報が捨てられ、粗いMV精度（すなわち、第２MV精度）の動き情報が得られる。
【００８３】
for (i=0; i<numMVCand; i++){
mv_x = MVCandList[i].x      // i番目の候補MVのx成分
mv_y = MVCandList[i].y      // i番目の候補MVのy成分
CoarseMVCandList[i].x = (mv_x>>coarseMVPrec) << coarseMVPrec   ・・・（５）
CoarseMVCandList[i].y = (mv_y>>coarseMVPrec) << coarseMVPrec   ・・・（６）
}
【００８４】
＜MV精度パラメータ＞
第２MV精度MV候補リスト導出部１２１がMV候補リスト（MV候補）のMV精度を第１MV精度から第２MV精度に落とす場合、例えば、垂直方向および水平方向（すなわちｘ成分とｙ成分）のそれぞれについて、その処理が行われるようにしてもよい。つまり、この場合、MV候補のｘ成分およびｙ成分のそれぞれのMV精度が、第２MV精度まで落とされる。例えば、第１MV精度がサブペル精度の場合、MV候補のｘ成分およびｙ成分の両方のMV精度が整数画素精度に変換される。
【００８５】
例えば、第１MV精度が1/2^{max_mv_prec}-pel精度の場合、MV精度パラメータを以下の式（７）のように設定することにより、第２MV精度を整数画素精度とすることができる。
【００８６】
coarseMVPrec = max_mv_prec  ・・・（７）
【００８７】
このようにすることにより、第１MV精度のMV候補の代わりに第２MV精度のMV候補を用いてテンプレートマッチングを行うことができる。つまり、第１MV精度でのテンプレートマッチングのコストを、第２MV精度でのテンプレートマッチングで得られるコストによって代替することができる。したがって、例えば、テンプレートマッチングを整数精度で行って、サブペル精度のテンプレートマッチングを回避するようにすることができる。このようにすることにより、符号化効率を維持しつつMV候補リストの並び替え処理を簡略化することができる。これにより、例えば、エンコーダやデコーダの処理を削減することができる。
【００８８】
なお、MV候補のy成分のMV精度のみを整数精度まで粗くするようにしてもよい。つまり、ｙ成分のみ、MV精度を第１MV精度から第２MV精度に変換するようにしてもよい。この場合、第２MV精度まで落とすMV精度パラメータcoarseMVPrecは、y成分について適用される。この場合、上述の式（５）および式（６）は、以下の式（８）および式（９）のように表すことができる。
【００８９】
CoarseMVCandList[i].x = mv_x  ・・・（８）
CoarseMVCandList[i].y = (mv_y>>coarseMVPrec) << coarseMVPrec  ・・・（９）
【００９０】
一般的に、参照ブロックのテンプレート生成に必要となる画素へのアクセスは、水平方向（ｘ成分）のメモリアクセスよりも垂直方向（ｙ成分）のメモリアクセスの方が、コストが高い。特に、デコーダサイドにおいては、その傾向がより顕著である。また、垂直方向（y成分）のMV精度を整数精度まで落とすことで、テンプレートマッチングのｘ方向のマッチング精度をサブペル精度に維持しつつ、y方向のマッチング精度を整数画素精度へ落とすことになる。ｙ成分のMV精度のみを第２MV精度に落とす場合の方が、ｘ成分およびy成分のそれぞれのMV精度を第２MV精度に落とす場合よりも、マッチング精度が高いため、符号化効率のロスが少ない。ただし、処理量の削減効果は、ｘ成分およびy成分のそれぞれのMV精度を第２MV精度に落とす場合の方が大きい。
【００９１】
＜テンプレートマッチング部＞
テンプレートマッチング部１１１は、第２MV精度MV候補リスト導出部１２１により導出された第２MV精度のMV候補リストを用いてテンプレートマッチングを行い、コストを導出（算出）する。
【００９２】
図６に示されるように、テンプレートマッチング部１１１は、カレントPUテンプレート生成部１３１、参照ブロックテンプレート生成部１３２、およびコスト算出部１３３を有する。
【００９３】
＜カレントPUテンプレート生成部＞
カレントPUテンプレート生成部１３１は、カレントPU位置やそのブロックサイズ等を示す情報と、ピクチャバッファから復号済みの画素値とを取得し、それらに基づいてカレントPUのテンプレート（curTemplate）を生成する。
【００９４】
具体的には、カレントPUの左上位置（x0, y0）を基準として、カレントPUの上部テンプレート（curTemplateA）、およびカレントPUの左部テンプレート（curTemplateL）を生成する。このカレントPUの上部テンプレート（curTemplateA）は、例えば以下の式（１０）に示されるようなカレントピクチャ上の座標位置の画素群により構成される。
【００９５】
【数５】
2019244669.tif 000007
【００９６】
また、カレントPUの左部テンプレート（curTemplateL）は、例えば以下の式（１１）に示されるようなカレントピクチャ上の座標位置の画素群により構成される。
【００９７】
【数６】
2019244669.tif 000008
【００９８】
例えば、カレントPUがピクチャ境界と隣接する等してカレントPUの上部テンプレートまたは左部テンプレートを利用できない場合が考えられる。この場合、参照不可な側のテンプレートは、所定値を設定して生成すればよい。例えば、入力画像のビット深度をbitDepthとすれば、所定値には、'1<<(bitDepth-1) 'や'(1<<(bitDepth-1)) - 1'を設定すればよい。なお、式（１０）および式（１１）において、パラメータtemplateSizeは、テンプレートに用いる画素のライン数を示す。
【００９９】
カレントPUテンプレート生成部１３１は、以上のように生成したカレントPUのテンプレートをコスト算出部１３３に供給する。
【０１００】
＜参照ブロックテンプレート生成部＞
参照ブロックテンプレート生成部１３２は、第２MV精度MV候補リスト導出部１２１により導出された第２MV精度のMV候補リストと、ピクチャバッファから復号済みの画素値とを取得し、それらに基づいて、参照ブロックのテンプレートを導出（生成）する。
【０１０１】
具体的には、カレントPUとMV候補（MVCandList[i]）で定まる参照ブロックの上部テンプレート（LXTemplateA）および左部テンプレート（LXTemplateL）を生成する。なお、双予測である場合は、L0およびL1の両方のテンプレートを生成する。参照ブロックの上部テンプレート（LXTemplateA）は、例えば、以下の式（１２）に示されるような参照ピクチャ上の座標位置の画素群により構成される。
【０１０２】
【数７】
2019244669.tif 000009
【０１０３】
また、参照ブロックの左部テンプレート（LXTemplateL）は、以下の式（１３）に示されるような参照ピクチャ上の座標位置の画素群により構成される。
【０１０４】
【数８】
2019244669.tif 000010
【０１０５】
例えば、参照ブロックがピクチャ境界と隣接する等して参照ブロックの上部テンプレートまたは左部テンプレートを利用できない場合が考えられる。この場合、参照不可な側のテンプレートは、所定値を設定して生成すればよい。なお、式（１２）および式（１３）において、lxdxは、MV候補（MVCandList[i]）のLX予測のx方向の動きベクトルを示し、lxdyは、MV候補（MVCandList[i]）のLX予測のy方向の動きベクトルを示す。
【０１０６】
また、参照ブロックのテンプレートに含まれる画素群の座標位置がサブペル位置である場合、例えば、隣接する整数位置の画素から線形補間して生成する。ただし、参照ブロックテンプレート生成部１３２は、第２MV精度のMV候補に基づいて参照ブロックのテンプレートを導出（生成）する。したがって、例えば、第２MV精度を整数画素精度とすることにより、参照ブロックテンプレート生成部１３２は、このような線形補間を行わずに参照ブロックの点プレーを導出することができる。つまり、参照ブロックテンプレート生成部１３２は、第１MV精度のMV候補に基づく場合よりも容易に、参照ブロックのテンプレートを導出（生成）することができる。したがって、参照ブロックのテンプレート導出の演算量を低減させることができる。参照ブロックテンプレート生成部１３２は、生成した参照ブロックのテンプレートをコスト算出部１３３に供給する。
【０１０７】
＜コスト算出部＞
コスト算出部１３３は、カレントPUテンプレート生成部１３１から供給されたカレントPUのテンプレートと、参照ブロックテンプレート生成部１３２から供給された参照ブロックのテンプレートとを用いて、そのコスト（cost）を導出（算出）する。
【０１０８】
カレントPUのテンプレートと、MV候補（MVCandList[i]）で指定される参照ピクチャのテンプレートとのコスト（cost）は、LX予測の場合は以下の式（１４）のように、双予測の場合は以下の式（１５）のように、導出される。
【０１０９】
【数９】
2019244669.tif 000011
【０１１０】
式（１４）および式（１５）において、costAは、カレントPUの上部テンプレート（curTemplateA）と、参照ブロックの上部テンプレート（LXTemplateA）から得られるコストを示す。また、costLは、カレントPUの左部テンプレート（curTemplateL）と、参照ブロックの左部テンプレート（LXTemplateL）から得られるコストを示す。さらに、cost_uni(LX)は、カレントPUのテンプレートと、MV候補のLX予測部分の動き情報で指定される参照ブロックのテンプレートから得られるコストであり、例えば、SADで以下の式（１６）のように導出（算出）される。
【０１１１】
【数１０】
2019244669.tif 000012
【０１１２】
なお、この式（１６）において、posは、テンプレート内の各（x, y）のペアからなる画素位置を示し、lxmvは、MV候補のLX予測部分の動きベクトルを示す。
【０１１３】
つまり、コスト算出部１３３は、第２MV精度のMV候補に基づいて導出（生成）された参照ブロックのテンプレートを用いてコスト（cost）を導出（算出）する。したがって、コスト算出部１３３は、第１MV精度のMV候補に基づいて導出（生成）された参照ブロックのテンプレートを用いる場合よりも容易に、コストを導出することができる。つまり、コスト算出の演算量を低減させることができる。コスト算出部１３３は、導出した各MV候補に対応するコストをリスト化し、そのコストリスト（CostList）を、MV候補リスト並び替え部１２２に供給する。
【０１１４】
＜MV候補リスト並び替え部＞
MV候補リスト並び替え部１２２は、第１MV精度MV候補リスト導出部１０１から供給される第１MV精度のMV候補リスト（MVCandList）と、コスト算出部１３３から供給される、第２MV精度のMV候補リスト（CoarseMVCandList）の各候補MVに対応するテンプレートマッチングのコストリスト（CostList）とを入力とする。MV候補リスト並び替え部１２２は、そのコストリストを参照して、コストの小さい順に第１MV精度のMV候補リスト（MVCandList）のMV候補を並び替え、並び替え後MV候補リスト（MVCandList’）を出力する。
【０１１５】
以上のように、第２MV精度MV候補リスト導出部１２１は、第１MV精度のMV候補リストに対応する、第１のMV精度よりも粗い（低精度の）第２MV精度のMV候補リストを生成し、テンプレートマッチング部１１１は、その第２MV精度のMV候補リストを用いてテンプレートマッチングを行ってコストを算出し、MV候補リスト並び替え部１２２は、そのテンプレートマッチングにより得られたコストに基づいて第１MV精度のMV候補リストのMV候補の並び替えを行う。
【０１１６】
したがって、MV候補リスト並び替え部１０２は、テンプレートマッチングの負荷の増大を抑制することができ、これにより、MV候補リストの並び替えの負荷の増大を抑制することができる。
【０１１７】
＜MV候補リスト並び替え処理の流れ＞
図７のフローチャートを参照して、この場合（方法＃１−１）のMV候補リスト並び替え部１０２により、図５のステップＳ１０２において実行されるMV候補リスト並び替え処理の流れの例を説明する。
【０１１８】
MV候補リスト並び替え処理が開始されると、第２MV精度MV候補リスト導出部１２１は、ステップＳ１１１において、第２MV精度を示すMV精度パラメータ（coarseMVPrec）に基づいて、第１MV精度のMV候補リスト（MVCandList）に対応する第２MV精度のMV候補リスト（CoarseMVCandList）を導出する。
【０１１９】
ステップＳ１１２において、カレントPUテンプレート生成部１３１は、カレントPUのテンプレート（curTemplate）を生成する。
【０１２０】
ステップＳ１１３において、参照ブロックテンプレート生成部１３２は、変数ｉに初期値（例えば「０」）をセットする。
【０１２１】
ステップＳ１１４において、参照ブロックテンプレート生成部１３２は、第２MV精度のMV候補（CoarseMVCandList[i](i=0,...,numMVCandList-1)）の動きベクトル情報を参照して第２MV精度のMV候補に対応する参照ブロックのテンプレートを生成する。
【０１２２】
ステップＳ１１５において、コスト算出部１３３は、ステップＳ１１２において生成されたカレントPUのテンプレートと、ステップＳ１１４において生成された第２MV精度のMV候補に対応する参照ブロックのテンプレートとに基づいて、コスト（CostList[i]）を導出する。
【０１２３】
ステップＳ１１６において、参照ブロックテンプレート生成部１３２は、変数ｉの値が、第１MV精度のMV候補リスト（MVCandList）に含まれるMV候補の数を示す値（numMVCand）よりも小さいか否かを判定する。変数ｉがその値（numMVCand）よりも小さい（i < numMVCand）と判定された場合、処理はステップＳ１１７に進む。
【０１２４】
ステップＳ１１７において、参照ブロックテンプレート生成部１３２は、変数ｉをインクリメントする（変数ｉの値に「＋１」を加算する）。ステップＳ１１７の処理が終了すると処理はステップＳ１１４に戻り、それ以降の処理を繰り返す。
【０１２５】
つまり、ステップＳ１１４乃至ステップＳ１１７の各処理が、各MV候補（MV候補に対応するコスト（CostList[i]））について実行される。
【０１２６】
そして、ステップＳ１１６において、変数ｉが値（numMVCand）以上である（i ≧ numMVCand）と判定された場合、処理はステップＳ１１８に進む。
【０１２７】
ステップＳ１１８において、MV候補リスト並び替え部１２２は、コストリスト（CostList）を参照してコストの小さい順に第１MV精度のMV候補リストのMV候補を並び替え、並び替え後のMV候補リスト（MVCandList'）を導出する。
【０１２８】
ステップＳ１１８の処理が終了すると、MV候補リスト並び替え処理が終了し、処理は図５に戻る。
【０１２９】
以上のように、ＭＶ候補リスト並び替え処理を行うことにより、MV候補リスト並び替え部１０２は、MV候補リストの並び替えの負荷の増大を抑制することができる。
【０１３０】
＜方法＃１−２：MV候補リスト並び替え部＞
次に、図３の方法＃１−２を適用する場合について説明する。図８は、図４のMV候補リスト並び替え部１０２の構成の一例を示すブロック図である。この場合のMV候補リスト並び替え部１０２は、方法＃１−１および方法＃１−２を用いてMV候補リストの並び替えを行う。すなわち、MV候補リスト並び替え部１０２は、粗い精度でテンプレートマッチングを行い、さらに、テンプレートマッチングが実行済みのMV候補と同一のMV候補（重複MV）を検出し、そのMV候補のテンプレートマッチングをスキップする（実行済みテンプレートマッチング結果（コスト値）を流用する）。
【０１３１】
この場合のMV候補リスト並び替え部１０２は、図８に示されるように、図６の場合と同様に、第２MV精度MV候補リスト導出部１２１、MV候補リスト並び替え部１２２、およびテンプレートマッチング部１１１を有する。ただし、テンプレートマッチング部１１１は、図６の場合の構成に加え、重複MV検出部１４１を有する。
【０１３２】
重複MV検出部１４１は、第２MV精度MV候補リスト導出部１２１により導出（生成）された第２MV精度のMV候補リストを取得する。重複MV検出部１４１は、その第２MV精度のMV候補リストに含まれる処理対象のMV候補が、同じ第２のMV精度のMV候補リストに含まれる、既にテンプレートマッチングが行われたMV候補と同一であるか否かを判定する。そして、重複MV検出部１４１は、その判定結果に応じて、すなわち重複MVの検出結果に応じて、処理対象のMV候補に対して、テストフラグ（ToBeTestFlag）と、コスト参照インデックス（CostRefIdx）とを設定する。
【０１３３】
テストフラグ（ToBeTestFlag）は、そのMV候補について、テンプレートマッチングを行うか否かを示すフラグ情報である。テストフラグ（ToBeTestFlag）が真（例えば１）の場合、テンプレートマッチングを行うことを示す。テストフラグ（ToBeTestFlag）が偽（例えば０）の場合、テンプレートマッチングを行わないことを示す。
【０１３４】
コスト参照インデックス（CostRefIdx）は、コストの複製元（のMV候補）を示すインデックス情報である。換言するに、コスト参照インデックス（CostRefIdx）は、処理対象のMV候補がどのMV候補と同一であるかを示す。なお、テンプレートマッチングが実行済みのMV候補の中に処理対象のMV候補と同一のMV候補（重複MV）が存在しない場合、コスト参照インデックスには値「−１」が設定される。
【０１３５】
このテストフラグ（ToBeTestFlag）とコスト参照インデックス（CostRefIdx）の設定例を図９の表に示す。図９の表において、各MV候補がインデックス順（昇順）に処理されるものとする。インデックス「０」の第２MV精度のMV候補A1'は、最初に処理されるので重複MVは存在しない。したがって、このMV候補A1'について、テンプレートマッチングが行われる。したがって、このMV候補A1'に対して、テストフラグは真に設定される（ToBeTestFlag = 1）。また、重複MVが存在しないので、コスト参照インデックスには値「−１」が設定される（CostRefIdx = -1）。
【０１３６】
インデックス「１」の第２MV精度のMV候補B1'は、その前にテンプレートマッチングが行われたMV候補A1'とは異なる動き情報である。つまり、重複MVは存在しない。したがって、このMV候補B1'について、テンプレートマッチングが行われる。したがって、このMV候補B1'に対して、テストフラグは真に設定される（ToBeTestFlag = 1）。また、重複MVが存在しないので、コスト参照インデックスには値「−１」が設定される（CostRefIdx = -1）。
【０１３７】
インデックス「２」の第２MV精度のMV候補B0’は、インデックス「０」のMV候補A1'と同一の動き情報である。つまり、重複MVが存在する。したがって、このMV候補B0'についてのテンプレートマッチングがスキップ（省略）される。したがって、このMV候補B0'に対して、テストフラグは偽に設定される（ToBeTestFlag = 0）。また、この場合、インデックス「０」のMV候補A1'についてのテンプレートマッチング結果を、このMV候補B0'についてのテンプレートマッチング結果として再利用する（代替する）。したがって、コスト参照インデックスには値「０」が設定される（CostRefIdx = 0）。つまり、コスト参照インデックスの値は、重複MVのインデックスを示す。
【０１３８】
インデックス「３」の第２MV精度のMV候補A0’は、MV候補A1'、MV候補B1'、およびMV候補B0'のいずれとも一致しない。つまり、重複MVは存在しない。したがって、このMV候補A0'について、テンプレートマッチングが行われる。したがって、このMV候補A0'に対して、テストフラグは真に設定される（ToBeTestFlag = 1）。また、重複MVが存在しないので、コスト参照インデックスには値「−１」が設定される（CostRefIdx = -1）。
【０１３９】
インデックス「numMVCand-1」の第２MV精度のMV候補X’は、インデックス「３」のMV候補A0'と同一の動き情報である。つまり、重複MVが存在する。したがって、このMV候補X'について、テンプレートマッチングがスキップ（省略）される。したがって、このMV候補B0'に対して、テストフラグは偽に設定される（ToBeTestFlag = 0）。また、この場合、インデックス「３」のMV候補A0'についてのテンプレートマッチング結果を、このMV候補X'についてのテンプレートマッチング結果として再利用する（代替する）。したがって、コスト参照インデックスには値「３」が設定される（CostRefIdx = 3）。つまり、コスト参照インデックスの値は、重複MVのインデックスを示す。
【０１４０】
重複MV検出部１４１は、このようなテストフラグ（ToBeTestFlag）とコスト参照インデックス（CostRefIdx）の設定を、例えば図１０に示される疑似コードに従って行う。重複MV検出部１４１は、設定したテストフラグ（ToBeTestFlag）とコスト参照インデックス（CostRefIdx）の情報をコスト算出部１３３に供給する。
【０１４１】
コスト算出部１３３は、それらの情報に基づいてテンプレートマッチングを実行するかスキップする（コストを複製する）かして、各MV候補に対応するコストを算出する。
【０１４２】
このようにすることにより、MV候補リスト並び替え部１０２は、テンプレートマッチングの回数の増大を抑制する（回数を削減する）ことができ、テンプレートマッチングの負荷の増大を抑制することができる。つまり、テンプレートマッチングに必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。また、これにより、MV候補リストの並び替えの負荷の増大を抑制することができる。つまり、MV候補リストの並び替えに必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。
【０１４３】
＜MV候補リスト並び替え処理の流れ＞
図１１および図１２のフローチャートを参照して、この場合（方法＃１−２（および方法＃１−１））のMV候補リスト並び替え部１０２により、図５のステップＳ１０２において実行されるMV候補リスト並び替え処理の流れの例を説明する。
【０１４４】
MV候補リスト並び替え処理が開始されると、第２MV精度MV候補リスト導出部１２１は、図１１のステップＳ１３１において、第２MV精度を示すMV精度パラメータ（coarseMVPrec）に基づいて、第１MV精度のMV候補リスト（MVCandList）に対応する第２MV精度のMV候補リスト（CoarseMVCandList）を導出する。
【０１４５】
ステップＳ１３２において、重複MV検出部１４１は、第２MV精度のMV候補リスト（CoarseMVCandList）中の重複MVの検出を行い、各MV候補について、テンプレートマッチングを行うかを示すテストフラグ(ToBeTestFlag[i])と、コストの複製元を示すコスト参照インデックス（CostRefIdx）とを設定する。例えば、重複MV検出部１４１は、図１０に示されるような疑似コードに従って、各MV候補に対して、テストフラグ(ToBeTestFlag[i])およびコスト参照インデックス（CostRefIdx）の設定を行う。
【０１４６】
ステップＳ１３３において、カレントPUテンプレート生成部１３１は、カレントPUのテンプレート（curTemplate）を生成する。
【０１４７】
ステップＳ１３４において、参照ブロックテンプレート生成部１３２は、変数ｉに初期値（例えば「０」）をセットする。
【０１４８】
ステップＳ１３５において、参照ブロックテンプレート生成部１３２は、処理対象の第２のMV精度のMV候補（CoarseMVCandList[i] (i=0,...,numMVCandList-1)）のテストフラグ(ToBeTestFlag[i])が真であるか否かを判定する。このテストフラグが真である（例えば、ToBeTestFlag[i] == 1）と判定された場合、処理は、ステップＳ１３６に進む。
【０１４９】
ステップＳ１３６において、参照ブロックテンプレート生成部１３２は、処理対象の第２MV精度のMV候補の動きベクトル情報を参照して、第２MV精度のMV候補に対応する参照ブロックのテンプレートを生成する。ステップＳ１３６の処理が終了すると処理は図１２のステップＳ１４１に進む。
【０１５０】
図１２のステップＳ１４１において、コスト算出部１３３は、図１１のステップＳ１３３において生成されたカレントPUのテンプレートと、図１１のステップＳ１３６において生成された処理対象の第２MV精度のMV候補に対応する参照ブロックのテンプレートとに基づいて、コスト（CostList[i]）を導出する。コストが導出されると処理はステップＳ１４３に進む。
【０１５１】
また、図１１のステップＳ１３５において、テストフラグが偽である（例えば、ToBeTestFlag[i] == 0）と判定された場合、処理は、図１２のステップＳ１４２に進む。
【０１５２】
ステップＳ１４２において、コスト算出部１３３は、図１１のステップＳ１３２において設定されたコスト参照インデックス（CostRefIdx）が示すコストを、処理対象のMV候補のコストに設定する。つまり、同一の動き情報のコスト値を再利用（代用）する。これにより、処理対象のMV候補についてのコスト値の算出（テンプレートマッチング）を省略することができる。ステップＳ１４２の処理が終了すると処理はステップＳ１４３に進む。
【０１５３】
ステップＳ１４３において、参照ブロックテンプレート生成部１３２は、変数ｉの値が、第１MV精度のMV候補リスト（MVCandList）に含まれるMV候補の数を示す値（numMVCand）よりも小さいか否かを判定する。変数ｉがその値（numMVCand）よりも小さい（i < numMVCand）と判定された場合、処理はステップＳ１４４に進む。
【０１５４】
ステップＳ１４４において、参照ブロックテンプレート生成部１３２は、変数ｉをインクリメントする（変数ｉの値に「＋１」を加算する）。ステップＳ１４４の処理が終了すると処理は図１１のステップＳ１３５に戻り、それ以降の処理を繰り返す。
【０１５５】
つまり、ステップＳ１３５乃至ステップＳ１４４の各処理が、各MV候補（MV候補に対応するコスト（CostList[i]））について実行される。
【０１５６】
そして、図１２のステップＳ１４３において、変数ｉが値（numMVCand）以上である（i ≧ numMVCand）と判定された場合、処理はステップＳ１４５に進む。
【０１５７】
ステップＳ１４５において、MV候補リスト並び替え部１２２は、コストリスト（CostList）を参照してコストの小さい順に第１MV精度のMV候補リストのMV候補を並び替え、並び替え後のMV候補リスト（MVCandList'）を導出する。
【０１５８】
ステップＳ１４５の処理が終了すると、MV候補リスト並び替え処理が終了し、処理は図５に戻る。
【０１５９】
以上のように、MV候補リスト並び替え処理を行うことにより、MV候補リスト並び替え部１０２は、テンプレートマッチングの回数の増大を抑制する（回数を削減する）ことができ、MV候補リストの並び替えの負荷の増大を抑制することができる。
【０１６０】
＜方法＃１−３：テンプレートの間引き＞
次に、図３の方法＃１−３を適用する場合について説明する。方法＃１−３では、一部の画素を間引いたテンプレートを用いてテンプレートマッチングを行う（図１３）。
【０１６１】
このようにすることにより、方法＃１−３を適用しない場合の同一サイズのテンプレートと比べて、画素数が低減するので、テンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができる。これにより、テンプレートマッチングに必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。
【０１６２】
また、この間引き率をカレントPUのサイズに応じて設定するようにする。一般的に、ブロックサイズが大きい程テンプレートも大きくなる。つまり、テンプレートの画素数が増大するので、テンプレートマッチングの演算量も増大する。そこで、例えば、ブロックサイズが大きくなる程、間引き率を大きくするようにしてもよい。このようにすることにより、ブロックサイズの増大に伴うテンプレートの画素数の増大（すなわち、演算量の増大）を抑制することができる。
【０１６３】
換言するに、例えば大きなブロックサイズにおいて演算量が適切となるように間引き率を設定すると、小さいブロックサイズに対して間引き率が大きすぎてしまい、テンプレートの画素数が極端に少なくなり、テンプレートマッチングに不適となるおそれがある。上述のように、間引き率をカレントPUのサイズに応じて設定することにより、小さいブロックサイズに対してもテンプレートの画素数が適切となるように制御することができる。
【０１６４】
なお、テンプレートの画素数の制御は、生成したテンプレートから画素を間引くようにしてもよいし、方法＃１−３を適用しない場合においてテンプレートに含められる隣接画素群の中の一部の画素をサンプリング（抽出）し、そのサンプリングした画素を用いてテンプレートを生成するようにしてもよい。
【０１６５】
つまり、本明細書において「間引く」は、「抽出する」や「サンプリングする」の意味も含むものとする。例えば、「カレントPUのサイズに応じて間引き率を設定する」には、「カレントPUのサイズに応じて抽出率を設定する」や「カレントPUのサイズに応じてサンプリング間隔を設定する」の意味も含まれる。その場合各パラメータの大小は画素数の増減の方向を考慮する。例えば、「間引き率を大きくする」ことは、「抽出率を小さくする」ことや、「サンプリング間隔を広げる」ことと同義である。逆に、「間引き率を小さくする」ことは、「抽出率を大きくする」ことや、「サンプリング間隔を狭くする」ことと同義である。
【０１６６】
なお、画素の間引き方（抽出（サンプリング）の仕方）は任意である。例えば、上部テンプレートは、列（カラム）毎に間引く（抽出する（サンプリングする））ようにし、左部テンプレートは、行（ライン）毎に間引く（抽出する（サンプリングする））ようにしてもよい。
【０１６７】
＜MV候補リスト並び替え部＞
図１４は、図４のMV候補リスト並び替え部１０２の構成の一例を示すブロック図である。この場合のMV候補リスト並び替え部１０２は、方法＃１−１および方法＃１−３を用いてMV候補リストの並び替えを行う。すなわち、MV候補リスト並び替え部１０２は、粗い精度でテンプレートマッチングを行い、さらに、カレントPUのサイズに応じた間引き率（割合）で、テンプレートの一部の画素を間引く。
【０１６８】
この場合のMV候補リスト並び替え部１０２は、図１４に示されるように、図６の場合と同様に、第２MV精度MV候補リスト導出部１２１、MV候補リスト並び替え部１２２、およびテンプレートマッチング部１１１を有する。ただし、テンプレートマッチング部１１１は、図６の場合の構成に加え、テンプレート間引き率導出部１５１を有する。
【０１６９】
＜テンプレート間引き率導出部＞
テンプレート間引き率導出部１５１は、カレントPUのサイズに応じて、上部テンプレートおよび左部テンプレートの間引き率を導出する。テンプレートを間引く理由は、テンプレートマッチング時の参照点数のワーストケースを、基本PUサイズにおけるテンプレートマッチング相当に削減し、かつ、固定化するためである。
【０１７０】
図１５のＢに、この基本PUサイズ（basePUSize）の例を示す。この基本PUサイズは、予め定められている。例えば、規格等によりこの基本PUサイズを設定し、エンコーダ・デコーダがその情報を共有するようにしてもよい。また、ユーザ等によりこの基本PUサイズを設定する（更新する）ことができるようにしてもよい。その場合、設定した基本PUサイズの情報が、エンコーダ側からデコーダ側に供給されるようにすればよい。例えば、その情報を、メタデータ等として画像の符号化データのビットストリームに付加する（シグナリングする）ようにしてもよい。なお、図１５のＢの例の場合、基本PUサイズ（basePUSize）は「８」である。この基本PUサイズの大きさは任意である。
【０１７１】
テンプレート間引き率導出部１５１は、カレントPUのブロックサイズ（PUwidth, PUheight）とPUの基本サイズ（basePUSize）とに基づいて、テンプレート間引き率（skipLineX, skipLineY）（サンプリング間隔）を導出する。例えば、図１５のＡに示されるように、PUwidth、PUheight、skipLineX、skipLineY、およびtemplateSizeを設定するとする。テンプレート間引き率導出部１５１は、上部テンプレートに関するテンプレート間引き率（skipLineX）を以下の式（１７）のように導出する。また、テンプレート間引き率導出部１５１は、左部テンプレートに関するテンプレート間引き率（skipLineY）（サンプリング間隔）を以下の式（１８）のように導出する。
【０１７２】
【数１１】
2019244669.tif 000013
【０１７３】
例えば、PUの基本サイズを８（basePUSize = 8）とし、カレントPUのサイズを１６×４（PUwidth=16, Puheight=4）とすると、上部テンプレートに関するテンプレート間引き率（skipLineX）は、式（１７）を用いて以下のように導出される。
【０１７４】
skipLineX = 16 / min(8, 16) = 16 / 8 = 2
【０１７５】
同様に、左部テンプレートに関するテンプレート間引き率（skipLineY）は、式（１８）を用いて以下のように導出される。
【０１７６】
skipLineY = 4 / min(8, 4)  = 4 / 4  = 1
【０１７７】
この場合、上部テンプレートは、ｘ方向に２画素毎に参照画素を生成することを示し、左部テンプレートは、ｙ方向に１画素毎に参照画素を生成することを示す。
【０１７８】
図１５のＡは、テンプレートの画素の間引きの様子（サンプリングの様子）の一例を示している。図中上部テンプレートおよび左部テンプレートのグレーの部分がサンプリングされた画素を示している。図１６のＡは、テンプレートの画素の間引きの様子（サンプリングの様子）の他の例を示している。図１６のＢは、テンプレートの画素の間引きの様子（サンプリングの様子）のさらに他の例を示している。
【０１７９】
なお、PUの基本サイズ（basePUSize）と、テンプレートに用いる画素のライン数（templateSize）が同じ値であってもよい。また、上述の式（１７）および式（１８）において、min(basePUSize, PUwidth)やmin(basePUSize, PUheight)は、basePUSizeとしてもよい。
【０１８０】
以上のように間引き率を導出すると、テンプレート間引き率導出部１５１は、導出したテンプレート間引き率をカレントPUテンプレート生成部１３１および参照ブロックテンプレート生成部１３２に供給する。
【０１８１】
＜カレントPUテンプレート生成部＞
この場合、カレントPUテンプレート生成部１３１は、供給されたテンプレート間引き率を参照して、カレントPUのテンプレート（curTemplate）を生成する。
【０１８２】
具体的には、カレントPUの左上位置（x0, y0）を基準として、テンプレート間引き率（skipLineX, skipLineY）に基づき、カレントPUの上部テンプレート（curTemplateA）およびカレントPUの左部テンプレート（curTemplateL）を生成する。例えば、カレントPUの上部テンプレートは、以下の式（１９）のように導出される。また、カレントPUの左部テンプレートは、以下の式（２０）のように導出される。
【０１８３】
【数１２】
2019244669.tif 000014
【０１８４】
例えば、カレントPUがピクチャ境界と隣接する等してカレントPUの上部テンプレートまたは左部テンプレートを利用できない場合が考えられる。この場合、参照不可な側のテンプレートは、所定値を設定して生成すればよい。例えば、入力画像のビット深度をbitDepthとすれば、所定値には、'1<<(bitDepth-1) 'や'(1<<(bitDepth-1)) - 1'を設定すればよい。なお、式（１９）および式（２０）において、パラメータtemplateSizeは、テンプレートに用いる画素のライン数を示す。
【０１８５】
カレントPUテンプレート生成部１３１は、以上のように生成したカレントPUのテンプレートをコスト算出部１３３に供給する。
【０１８６】
＜参照ブロックテンプレート生成部＞
参照ブロックテンプレート生成部１３２は、第２MV精度MV候補リスト導出部１２１により導出された第２MV精度のMV候補リストと、ピクチャバッファから復号済みの画素値と、テンプレート間引き率導出部１５１から供給されたテンプレート間引き率を取得し、それらに基づいて、参照ブロックのテンプレートを導出（生成）する。
【０１８７】
具体的には、テンプレート間引き率（skipLineX, skipLineY）に基づき、カレントPUと候補MV（MVCandList[i]）で定まる参照ブロックの上部テンプレート（LXTemplateA）および参照ブロックの左部テンプレート（LXTemplateL）を生成する。なお、双予測である場合は、L0およびL1の両方のテンプレートを生成する。
【０１８８】
例えば、参照ブロックの上部テンプレート（LXTemplateA）は、以下の式（２１）のように導出される。また、参照ブロックの左部テンプレート（LXTemplateL）は、以下の式（２２）のように導出される。
【０１８９】
【数１３】
2019244669.tif 000015
【０１９０】
例えば、参照ブロックがピクチャ境界と隣接する等して参照ブロックの上部テンプレートまたは左部テンプレートを利用できない場合が考えられる。この場合、参照不可な側のテンプレートは、所定値を設定して生成すればよい。なお、式（２１）および式（２２）において、lxdxは、MV候補（MVCandList[i]）のLX予測のx方向の動きベクトルを示し、lxdyは、MV候補（MVCandList[i]）のLX予測のy方向の動きベクトルを示す。
【０１９１】
また、参照ブロックのテンプレートに含まれる画素群の座標位置がサブペル位置である場合、例えば、隣接する整数位置の画素から線形補間して生成する。ただし、参照ブロックテンプレート生成部１３２は、第２MV精度のMV候補に基づいて参照ブロックのテンプレートを導出（生成）する。したがって、例えば、第２MV精度を整数画素精度とすることにより、参照ブロックテンプレート生成部１３２は、このような線形補間を行わずに参照ブロックの点プレーを導出することができる。つまり、参照ブロックテンプレート生成部１３２は、第１MV精度のMV候補に基づく場合よりも容易に、参照ブロックのテンプレートを導出（生成）することができる。したがって、参照ブロックのテンプレート導出の演算量を低減させることができる。参照ブロックテンプレート生成部１３２は、生成した参照ブロックのテンプレートをコスト算出部１３３に供給する。
【０１９２】
＜コスト算出部＞
コスト算出部１３３は、以上のように生成されたテンプレート（一部の画素が間引かれたテンプレート）を用いてテンプレートマッチングを行う。したがって、テンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができる。つまり、テンプレートマッチングに必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。また、これにより、MV候補リストの並び替えの負荷の増大を抑制することができる。つまり、MV候補リストの並び替えに必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。
【０１９３】
＜MV候補リスト並び替え処理の流れ＞
図１７のフローチャートを参照して、この場合（方法＃１−３（および方法＃１−１））のMV候補リスト並び替え部１０２により、図５のステップＳ１０２において実行されるMV候補リスト並び替え処理の流れの例を説明する。
【０１９４】
MV候補リスト並び替え処理が開始されると、第２MV精度MV候補リスト導出部１２１は、ステップＳ１６１において、第２MV精度を示すMV精度パラメータ（coarseMVPrec）に基づいて、第１MV精度のMV候補リスト（MVCandList）に対応する第２MV精度のMV候補リスト（CoarseMVCandList）を導出する。
【０１９５】
ステップＳ１６２において、テンプレート間引き率導出部１５１は、上述したように、上部テンプレートおよび左部テンプレートのテンプレート間引き率を導出する。
【０１９６】
ステップＳ１６３において、カレントPUテンプレート生成部１３１は、ステップＳ１６２において導出されたテンプレート間引き率を参照して、カレントPUのテンプレート（curTemplate）を生成する。
【０１９７】
ステップＳ１６４において、参照ブロックテンプレート生成部１３２は、変数ｉに初期値（例えば「０」）をセットする。
【０１９８】
ステップＳ１６５において、参照ブロックテンプレート生成部１３２は、第２MV精度のMV候補（CoarseMVCandList[i](i=0,...,numMVCandList-1)）の動きベクトル情報と、ステップＳ１６２において導出されたテンプレート間引き率とを参照して、第２MV精度のMV候補に対応する参照ブロックのテンプレートを生成する。
【０１９９】
ステップＳ１６６において、コスト算出部１３３は、ステップＳ１６３において生成されたカレントPUのテンプレートと、ステップＳ１６５において生成された第２MV精度のMV候補に対応する参照ブロックのテンプレートとに基づいて、コスト（CostList[i]）を導出する。つまり、コスト算出部１３３は、ステップＳ１６２において導出されたテンプレート間引き率を参照して生成されたテンプレート（テンプレート間引き率で画素が間引かれたテンプレート）を用いて、テンプレートマッチングを行い、コストを導出する。
【０２００】
ステップＳ１６７において、参照ブロックテンプレート生成部１３２は、変数ｉの値が、第１MV精度のMV候補リスト（MVCandList）に含まれるMV候補の数を示す値（numMVCand）よりも小さいか否かを判定する。変数ｉがその値（numMVCand）よりも小さい（i < numMVCand）と判定された場合、処理はステップＳ１６８に進む。
【０２０１】
ステップＳ１６８において、参照ブロックテンプレート生成部１３２は、変数ｉをインクリメントする（変数ｉの値に「＋１」を加算する）。ステップＳ１６８の処理が終了すると処理はステップＳ１６５に戻り、それ以降の処理を繰り返す。
【０２０２】
つまり、ステップＳ１６５乃至ステップＳ１６８の各処理が、各MV候補（MV候補に対応するコスト（CostList[i]））について実行される。
【０２０３】
そして、ステップＳ１６７において、変数ｉが値（numMVCand）以上である（i ≧ numMVCand）と判定された場合、処理はステップＳ１６９に進む。
【０２０４】
ステップＳ１６９において、MV候補リスト並び替え部１２２は、コストリスト（CostList）を参照してコストの小さい順に第１MV精度のMV候補リストのMV候補を並び替え、並び替え後のMV候補リスト（MVCandList'）を導出する。
【０２０５】
ステップＳ１６９の処理が終了すると、MV候補リスト並び替え処理が終了し、処理は図５に戻る。
【０２０６】
以上のように、MV候補リスト並び替え処理を行うことにより、MV候補リスト並び替え部１０２は、テンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができ、MV候補リストの並び替えの負荷の増大を抑制することができる。
【０２０７】
＜方法＃１−４：MV候補リスト並び替え部＞
次に、図３の方法＃１−４を適用する場合について説明する。図１８は、図４のMV候補リスト並び替え部１０２の構成の一例を示すブロック図である。この場合のMV候補リスト並び替え部１０２は、方法＃１−１および方法＃１−４を用いてMV候補リストの並び替えを行う。すなわち、MV候補リスト並び替え部１０２は、粗い精度でテンプレートマッチングを行い、さらに、カレントPUの位置に応じてテンプレートサイズを制御する。
【０２０８】
この場合のMV候補リスト並び替え部１０２は、図１８に示されるように、図６の場合と同様に、第２MV精度MV候補リスト導出部１２１、MV候補リスト並び替え部１２２、およびテンプレートマッチング部１１１を有する。ただし、テンプレートマッチング部１１１は、図６の場合の構成に加え、テンプレートサイズ設定部１６１を有する。
【０２０９】
＜テンプレートサイズ設定部＞
テンプレートサイズ設定部１６１は、上部テンプレートおよび左部テンプレートのサイズ（テンプレートサイズ）を設定する。
【０２１０】
カレントCTUを符号化・復号するために必要な隣接復号済画素群（ラインバッファ）を削減することにより、ハードウエアの回路規模を削減することができる。そこで、復号済画素を保持するCTUレベルのラインバッファのサイズを削減するために、CTU内におけるカレントPUの位置に応じて、テンプレートサイズを設定するようにする。
【０２１１】
例えば、カレントCTUのCTUサイズ（CTUSize）と、ピクチャ内におけるカレントPUの位置（xPU, yPU）に基づいて、上部テンプレートに関するテンプレートサイズ（templateSizeY）を以下の式（２３）のように設定する。また、左部テンプレートに関するテンプレートサイズ（templateSizeX）を以下の式（２４）のように設定する。
【０２１２】
【数１４】
2019244669.tif 000016
【０２１３】
ここで、templateSize1は、カレントPUがCTU境界に位置する場合のテンプレートサイズであり、templateSize2は、カレントPUがCTU境界に位置しない場合のテンプレートサイズであり、templateSize1<templateSize2の関係を有する。
【０２１４】
例えば、図１９に示されるように、カレントCTU内に９つのCU（PU）が形成されるとする。例えば、図２０のＡに示される例のように、カレントCU（カレントPU）がカレントCTUの左上端のCU（PU）であるとする（図中斜線部分）。この場合、カレントCU（カレントPU）は、カレントCTUの上側のCTU境界と左側のCTU境界に接している。つまり、このカレントCU（カレントPU）の上部テンプレートおよび左部テンプレートは、どちらもカレントCTUの外側に位置する。したがって、templateSizeX=templateSizeY=templateSize1と設定される。
【０２１５】
また、図２０のＢに示される例の場合、カレントCU（カレントPU）（図中斜線部分）は、カレントCTUの上側のCTU境界に接している。つまり、カレントCU（カレントPU）の上部テンプレートは、カレントCTUの外側に位置する。したがって、templateSizeX=templateSize2、templateSizeY=templateSize1と設定される。
【０２１６】
また、図２１のＡに示される例の場合、カレントCU（カレントPU）（図中斜線部分）は、カレントCTUの左側のCTU境界に接している。つまり、カレントCU（カレントPU）の左部テンプレートは、カレントCTUの外側に位置する。したがって、templateSizeX=templateSize1、templateSizeY=templateSize2と設定される。
【０２１７】
また、図２１のＢに示される例の場合、カレントCU（カレントPU）（図中斜線部分）は、カレントCTUのCTU境界に接していない。つまり、カレントCU（カレントPU）の上部テンプレートおよび左テンプレートは、カレントCTUの内側に位置する。したがって、templateSizeX=templateSizeY=templateSize2と設定される。
【０２１８】
templateSize1およびtemplateSize2の値は、templateSize1<templateSize2の関係を有する限り、任意である。例えば、隣接CTU間の依存性を排除しない場合、templateSize1 = 2, templateSize2 = 4と設定することにより、ラインバッファの増大を抑制する（ラインバッファを削減する）ことができる。また、例えば、隣接CTU間の依存性を排除する場合（スライス（またはタイル）間での独立デコードに対応する場合）、隣接CTUの画素参照しないように、templateSize1 = 0, templateSize2 = 4と設定することにより、ラインバッファの増大を抑制する（ラインバッファを削減する）ことができるだけでなく、スライス（またはタイル）間の独立デコードを実現することができる。
【０２１９】
同様に、イントラ予測の参照画素領域のサイズも、CTU内におけるカレントPUの位置に応じて決定するようにしてもよい。このようにすることにより、イントラ予測の参照画素領域の保持に用いられるラインバッファの増大を抑制する（ラインバッファを削減する）ことができる。
【０２２０】
テンプレートサイズ設定部１６１は、以上のように設定したテンプレートサイズの情報をカレントPUテンプレート生成部１３１および参照ブロックテンプレート生成部１３２に供給する。
【０２２１】
＜カレントPUテンプレート生成部＞
カレントPUテンプレート生成部１３１は、テンプレートサイズ設定部１６１から供給されたテンプレートサイズを参照して、カレントPUのテンプレートを生成する。
【０２２２】
具体的には、カレントPUの左上位置（x0, y0）を基準として、テンプレートサイズ設定部１６１により設定されたテンプレートサイズ（templateSizeX, templateSizeY）に基づき、カレントPUの上部テンプレート（curTemplateA）およびカレントPUの左部テンプレート（curTemplateL）を生成する。例えば、上部テンプレートは以下の式（２５）のように導出される。また、左部テンプレートは以下の式（２６）のように導出される。
【０２２３】
【数１５】
2019244669.tif 000017
【０２２４】
例えば、カレントPUがピクチャ境界と隣接する等してカレントPUの上部テンプレートまたは左部テンプレートを利用できない場合が考えられる。この場合、参照不可な側のテンプレートは、所定値を設定して生成すればよい。なお、式（２５）および式（２６）において、パラメータtemplateSizeは、テンプレートに用いる画素のライン数を示す。カレントPUテンプレート生成部１３１は、以上のように生成したカレントPUのテンプレートをコスト算出部１３３に供給する。
【０２２５】
＜参照ブロックテンプレート生成部＞
参照ブロックテンプレート生成部１３２は、第２MV精度MV候補リスト導出部１２１により導出された第２MV精度のMV候補リストと、ピクチャバッファから復号済みの画素値と、テンプレートサイズ設定部１６１から供給されたテンプレートサイズを取得し、それらに基づいて、参照ブロックのテンプレートを導出（生成）する。
【０２２６】
具体的には、テンプレートサイズ（templateSizeX, templateSizeY）に基づき、カレントPUとMV候補（MVCandList[i]）で定まる参照ブロックの上部テンプレート（LXTemplateA）および参照ブロックの左部テンプレート（LXTemplateL）を生成する。なお、双予測である場合は、L0およびL1の両方のテンプレートを生成する。
【０２２７】
例えば、参照ブロックの上部テンプレートは、以下の式（２７）のように導出される。また、参照ブロックの左部テンプレートは、以下の式（２８）のように導出される。
【０２２８】
【数１６】
2019244669.tif 000018
【０２２９】
例えば、参照ブロックがピクチャ境界と隣接する等して参照ブロックの上部テンプレートまたは左部テンプレートを利用できない場合が考えられる。この場合、参照不可な側のテンプレートは、所定値を設定して生成すればよい。なお、式（２７）および式（２８）において、lxdxは、MV候補（MVCandList[i]）のLX予測のx方向の動きベクトルを示し、lxdyは、MV候補（MVCandList[i]）のLX予測のy方向の動きベクトルを示す。
【０２３０】
また、参照ブロックのテンプレートに含まれる画素群の座標位置がサブペル位置である場合、例えば、隣接する整数位置の画素から線形補間して生成する。ただし、参照ブロックテンプレート生成部１３２は、第２MV精度のMV候補に基づいて参照ブロックのテンプレートを導出（生成）する。したがって、例えば、第２MV精度を整数画素精度とすることにより、参照ブロックテンプレート生成部１３２は、このような線形補間を行わずに参照ブロックの点プレーを導出することができる。つまり、参照ブロックテンプレート生成部１３２は、第１MV精度のMV候補に基づく場合よりも容易に、参照ブロックのテンプレートを導出（生成）することができる。したがって、参照ブロックのテンプレート導出の演算量を低減させることができる。参照ブロックテンプレート生成部１３２は、生成した参照ブロックのテンプレートをコスト算出部１３３に供給する。
【０２３１】
＜コスト算出部＞
コスト算出部１３３は、以上のように生成されたテンプレート（カレントPUの位置に応じてテンプレートサイズが制御されたテンプレート）を用いてテンプレートマッチングを行う。したがって、テンプレート生成に使用する復号済み画素の増大を抑制する（テンプレート生成に使用する復号済み画素を削減する）ことができる。つまり、その復号済み画素を記憶（保持）するラインバッファのサイズの増大を抑制する（ラインバッファサイズを削減する）ことができる。つまり、テンプレートマッチングの負荷の増大を抑制することができる。また、これにより、MV候補リストの並び替えの負荷の増大を抑制することができる。
【０２３２】
＜MV候補リスト並び替え処理の流れ＞
図２２のフローチャートを参照して、この場合（方法＃１−４（および方法＃１−１））のMV候補リスト並び替え部１０２により、図５のステップＳ１０２において実行されるMV候補リスト並び替え処理の流れの例を説明する。
【０２３３】
MV候補リスト並び替え処理が開始されると、第２MV精度MV候補リスト導出部１２１は、ステップＳ１８１において、第２MV精度を示すMV精度パラメータ（coarseMVPrec）に基づいて、第１MV精度のMV候補リスト（MVCandList）に対応する第２MV精度のMV候補リスト（CoarseMVCandList）を導出する。
【０２３４】
ステップＳ１８２において、テンプレートサイズ設定部１６１は、上述したように、上部テンプレートおよび左部テンプレートのテンプレートサイズを設定する。
【０２３５】
ステップＳ１８３において、カレントPUテンプレート生成部１３１は、ステップＳ１８２において設定されたテンプレートサイズを参照して、カレントPUのテンプレート（curTemplate）を生成する。
【０２３６】
ステップＳ１８４において、参照ブロックテンプレート生成部１３２は、変数ｉに初期値（例えば「０」）をセットする。
【０２３７】
ステップＳ１８５において、参照ブロックテンプレート生成部１３２は、第２MV精度のMV候補（CoarseMVCandList[i](i=0,...,numMVCandList-1)）の動きベクトル情報と、ステップＳ１８２において設定されたテンプレートサイズとを参照して、第２MV精度のMV候補に対応する参照ブロックのテンプレートを生成する。
【０２３８】
ステップＳ１８６において、コスト算出部１３３は、ステップＳ１６３において生成されたカレントPUのテンプレートと、ステップＳ１６５において生成された第２MV精度のMV候補に対応する参照ブロックのテンプレートとに基づいて、コスト（CostList[i]）を導出する。つまり、コスト算出部１３３は、ステップＳ１８２において設定されたテンプレートサイズ（カレントPUの位置に応じて設定されたテンプレートサイズ）のテンプレートを用いて、テンプレートマッチングを行い、コストを導出する。
【０２３９】
ステップＳ１８７において、参照ブロックテンプレート生成部１３２は、変数ｉの値が、第１MV精度のMV候補リスト（MVCandList）に含まれるMV候補の数を示す値（numMVCand）よりも小さいか否かを判定する。変数ｉがその値（numMVCand）よりも小さい（i < numMVCand）と判定された場合、処理はステップＳ１８８に進む。
【０２４０】
ステップＳ１８８において、参照ブロックテンプレート生成部１３２は、変数ｉをインクリメントする（変数ｉの値に「＋１」を加算する）。ステップＳ１８８の処理が終了すると処理はステップＳ１８５に戻り、それ以降の処理を繰り返す。
【０２４１】
つまり、ステップＳ１８５乃至ステップＳ１８８の各処理が、各MV候補（MV候補に対応するコスト（CostList[i]））について実行される。
【０２４２】
そして、ステップＳ１８７において、変数ｉが値（numMVCand）以上である（i ≧ numMVCand）と判定された場合、処理はステップＳ１８９に進む。
【０２４３】
ステップＳ１８９において、MV候補リスト並び替え部１２２は、コストリスト（CostList）を参照してコストの小さい順に第１MV精度のMV候補リストのMV候補を並び替え、並び替え後のMV候補リスト（MVCandList'）を導出する。
【０２４４】
ステップＳ１８９の処理が終了すると、MV候補リスト並び替え処理が終了し、処理は図５に戻る。
【０２４５】
以上のように、MV候補リスト並び替え処理を行うことにより、MV候補リスト並び替え部１０２は、テンプレートマッチングに用いられるラインバッファのサイズの増大を抑制する（ラインバッファサイズを削減する）ことができ、MV候補リストの並び替えの負荷の増大を抑制することができる。
【０２４６】
＜方法＃１−５：MV候補リスト並び替え部＞
次に、図３の方法＃１−５を適用する場合について説明する。図２３は、図４のMV候補リスト並び替え部１０２の構成の一例を示すブロック図である。この場合のMV候補リスト並び替え部１０２は、方法＃１−１および方法＃１−５を用いてMV候補リストの並び替えを行う。すなわち、MV候補リスト並び替え部１０２は、粗い精度でテンプレートマッチングを行い、さらに、カレントPUのサイズが小さい場合、MV候補リストの並び替え処理をスキップ（省略）する。
【０２４７】
この場合のMV候補リスト並び替え部１０２は、図１８に示されるように、図６の場合の構成（第２MV精度MV候補リスト導出部１２１、MV候補リスト並び替え部１２２、およびテンプレートマッチング部１１１）に加え、ブロックサイズ判定部１７１を有する。
【０２４８】
＜ブロックサイズ判定部＞
ブロックサイズ判定部１７１は、カレントPUのブロックサイズを判定する。このブロックサイズの判定方法は任意である。例えば、ブロックサイズ判定部１７１は、カレントPUのブロックサイズを示す情報に基づいて、そのカレントPUのブロックサイズが所定の閾値より小さいか否かを判定する。そして、カレントPUのブロックサイズが所定の閾値より小さいと判定された場合、ブロックサイズ判定部１７１は、第２MV精度MV候補リスト導出部１２１、テンプレートマッチング部１１１、およびMV候補リスト並び替え部１２２を制御し、それぞれの処理をスキップ（省略）させる。つまり、MV候補リストの並び替え処理をスキップ（省略）させる。
【０２４９】
カレントPUのブロックサイズが小さいと、テンプレートマッチングの際に隣接復号済画素群や参照ピクチャへのアクセス回数が増大し、処理に必要なメモリバンドが増大するおそれがあった。そこで、MV候補リスト並び替え部１０２は、カレントPUのサイズが所定ブロックサイズより小さい場合、テンプレートマッチングによるMV候補リストの補正処理を省略する。このように制御することにより、処理に必要なメモリバンドの増大を抑制することができる。
【０２５０】
換言するに、ブロックサイズ判定部１７１は、カレントPUのブロックサイズが所定の閾値以上である場合、MV候補リストの並び替え処理を実行させる。例えば、ブロックサイズ判定部１７１は、以下の式（２９）のように、カレントPUのブロックサイズを判定する。なお、この式（２９）の代わりに、以下の式（３０）を用いてカレントPUのブロックサイズが判定されるようにしてもよい。
【０２５１】
【数１７】
2019244669.tif 000019
【０２５２】
ここで、PUwidthはPUの横幅を示し、PUheightはPUの縦幅を示す。また、log2Xは、Xの2を底とする対数値を表し、TH1は、所定のブロックサイズに関する閾値である。
【０２５３】
以上のように制御することにより、PUサイズが小さい場合、テンプレートマッチングによるMV補正処理をスキップすることができるため、処理に必要なメモリバンドの増大を抑制することができる。つまり、テンプレートマッチングやMV候補リストの並び替えの負荷の増大を抑制することができる。
【０２５４】
＜MV候補リスト導出処理の流れ＞
図２４のフローチャートを参照して、この場合のMV候補リスト導出装置１００により実行されるMV候補リスト導出処理の流れの例を説明する。
【０２５５】
MV候補リスト導出処理が開始されると、第１MV精度MV候補リスト導出部１０１は、ステップＳ２０１において、カレントPUに対する第１MV精度のMV候補リスト（MVCandList）を導出（生成）する。なお、その際、第１MV精度MV候補リスト導出部１０１は、その第１MV精度のMV候補リストに含まれるMV候補の数を示す情報（numMVCand）を導出（生成）する。
【０２５６】
ステップＳ２０２において、ブロックサイズ判定部１７１は、カレントPUのブロックサイズを示す情報に基づいて、カレントPUのサイズが所定の閾値より小さいか否かを判定する。カレントPUのサイズが所定の閾値より小さくない（閾値以上である）と判定された場合、ブロックサイズ判定部１７１は、MV候補リスト並び替え処理が行われるように制御する。すなわち、処理はステップＳ２０３に進む。
【０２５７】
ステップＳ２０３において、MV候補リスト並び替え部１０２（第２MV精度MV候補リスト導出部１２１、テンプレートマッチング部１１１、およびMV候補リスト並び替え部１２２）は、テンプレートマッチングに基づいて、ステップＳ２０１において導出された第１MV精度のMV候補リストのMV候補の並び替えを行い、並び替え後MV候補リスト（MVCandList'）を導出（生成）する。
【０２５８】
ステップＳ２０３の処理が終了すると、MV候補リスト導出処理が終了する。
【０２５９】
また、ステップＳ２０２において、カレントPUのサイズが所定の閾値より小さいと判定された場合、ブロックサイズ判定部１７１は、MV候補リスト並び替え処理をスキップ（省略）するように制御する。すなわち、ステップＳ２０３の処理はスキップ（省略）されてMV候補リスト導出処理が終了する。
【０２６０】
以上のように各ステップの処理を実行することにより、処理に必要なメモリバンドの増大を抑制することができ、テンプレートマッチングやMV候補リストの並び替えの負荷の増大を抑制することができる。
【０２６１】
＜方法＃１−６：MV候補リスト並び替え部＞
次に、図３の方法＃１−６を適用する場合について説明する。図２５は、図４のMV候補リスト並び替え部１０２の構成の一例を示すブロック図である。この場合のMV候補リスト並び替え部１０２は、方法＃１−１および方法＃１−６を用いてMV候補リストの並び替えを行う。すなわち、MV候補リスト並び替え部１０２は、粗い精度でテンプレートマッチングを行い、さらに、複数予測を行うMV候補に対して、予測数を削減し、単予測によるテンプレートマッチングを行う。
【０２６２】
この場合のMV候補リスト並び替え部１０２は、図２５に示されるように、図６の場合と同様に、第２MV精度MV候補リスト導出部１２１、MV候補リスト並び替え部１２２、およびテンプレートマッチング部１１１を有する。ただし、テンプレートマッチング部１１１は、図６の場合の構成に加え、参照LX予測設定部１８１を有する。
【０２６３】
＜参照LX予測設定部＞
参照LX予測設定部１８１は、第２のMV精度のMV候補リストCoarseMVCandList[i]の動きベクトル情報を参照して、テンプレート生成に用いる参照LX予測を設定する。
【０２６４】
例えば、参照LX予測設定部１８１は、MV候補の動き情報のうち、インター予測識別子（inter_pred_idc）に基づき、テンプレート生成に用いるLX予測を選択する。この選択されたLX予測を参照LX予測とも称する。図２６のＡにそのLX予測の選択のルールの例を示す。
【０２６５】
また、例えば、参照LX予測設定部１８１が、カレントピクチャ（curPic）と各LX予測で参照する参照ピクチャ（refPicLX）との時間距離が小さい方を参照LX予測として選択するようにしてもよい。なお、時間距離が同じ場合、’L0予測’を参照LX予測へ設定するようにしてもよいし、’L1予測’を参照LX予測へ設定するようにしてもよい。このような制御の疑似コードの例を図２６のＢに示す。
【０２６６】
ここで、getPoc(picX)は、あるピクチャpicXのPOC（Picture Ordering Count）を取得する関数であり、abs(X)は、変数Xの絶対値を返す関数である。また、時間距離によらず、’L0予測’を参照LX予測とするようにしてもよい。
【０２６７】
参照LX予測設定部１８１は、設定した参照LX予測を示す情報を、参照ブロックテンプレート生成部１３２およびコスト算出部１３３に供給する。
【０２６８】
＜参照ブロックテンプレート生成部＞
参照ブロックテンプレート生成部１３２は、参照LX予測設定部１８１から供給される参照LX予測に対応するテンプレートを生成する。
【０２６９】
例えば、参照ブロックテンプレート生成部１３２は、カレントPUとMV候補（CoarseMVCandList[i]）の参照LX予測（refLXPred）に対応する動き情報で定まる参照ブロックの上部テンプレート（LXTemplateA）および参照ブロックの左部テンプレート（LXTemplateL）を生成する。
【０２７０】
例えば、参照LX予測（refLXPred）が、L0予測である場合、参照ブロックテンプレート生成部１３２は、そのL0予測に対応する動き情報を用いて、参照ブロックの上部テンプレート（L0TemplateA）および参照ブロックの左部テンプレート（L0TemplateL）を生成する。
【０２７１】
これに対して、参照LX予測（refLXPred）が、L1予測である場合、参照ブロックテンプレート生成部１３２は、そのL1予測に対応する動き情報を用いて、参照ブロックの上部テンプレート（L1TemplateA）および参照ブロックの左部テンプレート（L1TemplateL）を生成する。
【０２７２】
参照ブロックテンプレート生成部１３２は、生成した参照ブロックのテンプレートをコスト算出部１３３に供給する。
【０２７３】
＜コスト算出部＞
コスト算出部１３３は、カレントPUテンプレート生成部１３１により生成されたカレントPUのテンプレートと、参照ブロックテンプレート生成部１３２により生成された参照LX予測に対応するテンプレートとのテンプレートマッチングを行い、コスト（CostList[i]）を導出（算出）する。
【０２７４】
カレントPUのテンプレートと、MV候補（MVCandList[i]）の参照LX予測で指定される参照ピクチャのテンプレートとのコストcostは、LX予測の場合、以下の式（３１）により導出される。
【０２７５】
【数１８】
2019244669.tif 000020
【０２７６】
ここで、costAとは、カレントPUの上部テンプレート（curTemplateA）と、参照ブロックの上部テンプレート（LXTemplateA）から得られるコストである。また、costLとは、カレントPUの左部テンプレート（curTemplateL）と、参照ブロックの左部テンプレート（LXTemplateL）から得られるコストである。また、cost_uni(LX)とは、カレントPUのテンプレートと、MV候補の参照LX予測部分に対応する動き情報で指定される参照ブロックのテンプレートから得られるコストであり、例えば、SADで以下の式（３２）のように算出される。
【０２７７】
【数１９】
2019244669.tif 000021
【０２７８】
なお、posとは、テンプレート内の各（x, y）のペアからなる画素位置を示し、lxmvとは、MV候補の参照LX予測部分に対応する動きベクトルである。
【０２７９】
以上のようにすることにより、MV候補が双予測である場合、実際に生成するテンプレートを、L0予測、または、L1予測のいずれか一方へ制限することができる。したがって、双予測のMV候補に関するテンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができる。つまり、テンプレートマッチングに必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。また、これにより、MV候補リストの並び替えの負荷の増大を抑制することができる。つまり、MV候補リストの並び替えに必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。
【０２８０】
＜MV候補リスト並び替え処理の流れ＞
図２７のフローチャートを参照して、この場合（方法＃１−６（および方法＃１−１））のMV候補リスト並び替え部１０２により、図５のステップＳ１０２において実行されるMV候補リスト並び替え処理の流れの例を説明する。
【０２８１】
MV候補リスト並び替え処理が開始されると、第２MV精度MV候補リスト導出部１２１は、ステップＳ２１１において、第２MV精度を示すMV精度パラメータ（coarseMVPrec）に基づいて、第１MV精度のMV候補リスト（MVCandList）に対応する第２MV精度のMV候補リスト（CoarseMVCandList）を導出する。
【０２８２】
ステップＳ２１２において、カレントPUテンプレート生成部１３１は、カレントPUのテンプレート（curTemplate）を生成する。
【０２８３】
ステップＳ２１３において、参照ブロックテンプレート生成部１３２は、変数ｉに初期値（例えば「０」）をセットする。
【０２８４】
ステップＳ２１４において、参照LX予測設定部１８１は、第２MV精度のMV候補（CoarseMVCandList[i](i=0,...,numMVCandList-1)）の動きベクトル情報を参照して、テンプレートの生成に用いる参照LX予測を設定する。
【０２８５】
ステップＳ２１５において、参照ブロックテンプレート生成部１３２は、ステップＳ２１４において設定された参照LX予測に対応するテンプレートを生成する。
【０２８６】
ステップＳ２１６において、コスト算出部１３３は、ステップＳ２１２において生成されたカレントPUのテンプレートと、ステップＳ２１５において生成された参照LX予測に対応する参照ブロックのテンプレートとに基づいて、コスト（CostList[i]）を導出する。つまり、コスト算出部１３３は、それらのテンプレートを用いて、テンプレートマッチングを行い、コストを導出する。
【０２８７】
ステップＳ２１７において、参照ブロックテンプレート生成部１３２は、変数ｉの値が、第１MV精度のMV候補リスト（MVCandList）に含まれるMV候補の数を示す値（numMVCand）よりも小さいか否かを判定する。変数ｉがその値（numMVCand）よりも小さい（i < numMVCand）と判定された場合、処理はステップＳ２１８に進む。
【０２８８】
ステップＳ２１８において、参照ブロックテンプレート生成部１３２は、変数ｉをインクリメントする（変数ｉの値に「＋１」を加算する）。ステップＳ２１８の処理が終了すると処理はステップＳ２１４に戻り、それ以降の処理を繰り返す。
【０２８９】
つまり、ステップＳ２１４乃至ステップＳ２１８の各処理が、各MV候補（MV候補に対応するコスト（CostList[i]））について実行される。
【０２９０】
そして、ステップＳ２１７において、変数ｉが値（numMVCand）以上である（i ≧ numMVCand）と判定された場合、処理はステップＳ２１９に進む。
【０２９１】
ステップＳ２１９において、MV候補リスト並び替え部１２２は、コストリスト（CostList）を参照してコストの小さい順に第１MV精度のMV候補リストのMV候補を並び替え、並び替え後のMV候補リスト（MVCandList'）を導出する。
【０２９２】
ステップＳ２１９の処理が終了すると、MV候補リスト並び替え処理が終了し、処理は図５に戻る。
【０２９３】
以上のように、MV候補リスト並び替え処理を行うことにより、MV候補リスト並び替え部１０２は、テンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができ、MV候補リストの並び替えの負荷の増大を抑制することができる。
【０２９４】
＜３．第２の実施の形態＞
＜画像符号化装置＞
以上に説明した本技術は、任意の装置やデバイス等に適用することができる。例えば、画像データを符号化する画像符号化装置に、上述した本技術（テンプレートマッチングの簡略化（方法＃１））を適用することができる。つまり、画像データを符号化する画像符号化装置に、上述した方法＃１−１乃至方法１−６の内少なくともいずれか１つを適用することができる。
【０２９５】
図２８は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図２８に示される画像符号化装置３００は、動画像の画像データを符号化する装置である。例えば、画像符号化装置３００は、非特許文献１乃至非特許文献７に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データを符号化する。
【０２９６】
なお、図２８においては、処理部やデータの流れ等の主なものを示しており、図２８に示されるものが全てとは限らない。つまり、画像符号化装置３００において、図２８においてブロックとして示されていない処理部が存在したり、図２８において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像符号化装置３００内の処理部等を説明する他の図においても同様である。
【０２９７】
図２８に示されるように画像符号化装置３００は、制御部３０１、並べ替えバッファ３１１、演算部３１２、直交変換部３１３、量子化部３１４、符号化部３１５、蓄積バッファ３１６、逆量子化部３１７、逆直交変換部３１８、演算部３１９、インループフィルタ部３２０、フレームメモリ３２１、予測部３２２、およびレート制御部３２３を有する。
【０２９８】
＜制御部＞
制御部３０１は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ３１１により保持されている動画像データを処理単位のブロック（CU, PU, 変換ブロックなど）へ分割する。また、制御部３０１は、各ブロックへ供給する符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど）を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
【０２９９】
これらの符号化パラメータの詳細については後述する。制御部３０１は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
【０３００】
ヘッダ情報Hinfoは、各ブロックに供給される。
予測モード情報Pinfoは、符号化部３１５と予測部３２２とに供給される。
変換情報Tinfoは、符号化部３１５、直交変換部３１３、量子化部３１４、逆量子化部３１７、および逆直交変換部３１８に供給される。
フィルタ情報Finfoは、インループフィルタ部３２０に供給される。
【０３０１】
＜並べ替えバッファ＞
画像符号化装置３００には、動画像データの各フィールド（入力画像）がその再生順（表示順）に入力される。並べ替えバッファ３１１は、各入力画像をその再生順（表示順）に取得し、保持（記憶）する。並べ替えバッファ３１１は、制御部３０１の制御に基づいて、その入力画像を符号化順（復号順）に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ３１１は、処理後の各入力画像を演算部３１２に供給する。また、並べ替えバッファ３１１は、その各入力画像（元画像）を、予測部３２２やインループフィルタ部３２０にも供給する。
【０３０２】
＜演算部＞
演算部３１２は、処理単位のブロックに対応する画像I、および予測部３２２より供給される予測画像Pを入力とし、画像recから予測画像Pを以下の式（３３）に示されるように減算して、予測残差resiを導出し、それを直交変換部３１３に供給する。
【０３０３】
resi = rec - P  ・・・（３３）
【０３０４】
＜直交変換部＞
直交変換部３１３は、演算部３１２から供給される予測残差resiと、制御部３０１から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差resiに対して直交変換を行い、係数データcoefを導出する。直交変換部３１３は、その得られた係数データcoefを量子化部３１４に供給する。
【０３０５】
＜量子化部＞
量子化部３１４は、直交変換部３１３から供給される係数データcoefと、制御部３０１から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、係数データcoefをスケーリング（量子化）する。なお、この量子化のレートは、レート制御部３２３により制御される。量子化部３１４は、このような量子化により得られた量子化後の係数データ、すなわち量子化変換係数qcoefを、符号化部３１５および逆量子化部３１７に供給する。
【０３０６】
＜符号化部＞
符号化部３１５は、量子化部３１４から供給された量子化変換係数qcoefと、制御部３０１から供給される各種符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど）と、インループフィルタ部３２０から供給されるフィルタ係数等のフィルタに関する情報と、予測部３２２から供給される最適な予測モードに関する情報とを入力とする。符号化部３１５は、量子化変換係数qcoefを可変長符号化（例えば、算術符号化）し、ビット列（符号化データ）を生成する。
【０３０７】
また、符号化部３１５は、その量子化変換係数qcoefから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
【０３０８】
さらに、符号化部３１５は、インループフィルタ部３２０から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部３２２から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部３１５は、上述した各種符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど）を符号化し、ビット列を生成する。
【０３０９】
また、符号化部３１５は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部３１５は、その符号化データを蓄積バッファ３１６に供給する。
【０３１０】
＜蓄積バッファ＞
蓄積バッファ３１６は、符号化部３１５において得られた符号化データを、一時的に保持する。蓄積バッファ３１６は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置３００の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ３１６は、符号化データ（ビットストリーム）を伝送する伝送部でもある。
【０３１１】
＜逆量子化部＞
逆量子化部３１７は、逆量子化に関する処理を行う。例えば、逆量子化部３１７は、量子化部３１４から供給される量子化変換係数qcoefと、制御部３０１から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化変換係数qcoefの値をスケーリング（逆量子化）する。なお、この逆量子化は、量子化部３１４において行われる量子化の逆処理である。逆量子化部３１７は、このような逆量子化により得られた係数データcoefIを、逆直交変換部３１８に供給する。
【０３１２】
＜逆直交変換部＞
逆直交変換部３１８は、逆直交変換に関する処理を行う。例えば、逆直交変換部３１８は、逆量子化部３１７から供給される係数データcoefIと、制御部３０１から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、係数データcoefIに対して逆直交変換を行い、残差データresiIを導出する。なお、この逆直交変換は、直交変換部３１３において行われる直交変換の逆処理である。逆直交変換部３１８は、このような逆直交変換により得られた残差データresiIを演算部３１９に供給する。なお、逆直交変換部３１８は、復号側の逆直交変換部（後述する）と同様であるので、逆直交変換部３１８については、復号側について行う説明（後述する）を適用することができる。
【０３１３】
＜演算部＞
演算部３１９は、逆直交変換部３１８から供給される残差データresiIと、予測部３２２から供給される予測画像Pとを入力とする。演算部３１９は、その残差データresiIと、その残差データresiIに対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部３１９は、導出した局所復号画像Rlocalをインループフィルタ部３２０およびフレームメモリ３２１に供給する。
【０３１４】
＜インループフィルタ部＞
インループフィルタ部３２０は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部３２０は、演算部３１９から供給される局所復号画像Rlocalと、制御部３０１から供給されるフィルタ情報Finfoと、並べ替えバッファ３１１から供給される入力画像（元画像）とを入力とする。なお、インループフィルタ部３２０に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック（CU、CTU等）の情報等がインループフィルタ部３２０に入力されるようにしてもよい。
【０３１５】
インループフィルタ部３２０は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部３２０は、必要に応じて入力画像（元画像）や、その他の入力情報もそのフィルタ処理に用いる。
【０３１６】
例えば、インループフィルタ部３２０は、バイラテラルフィルタ、デブロッキングフィルタ（DBF（DeBlocking Filter））、適応オフセットフィルタ（SAO（Sample Adaptive Offset））、および適応ループフィルタ（ALF(Adaptive Loop Filter)）の４つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【０３１７】
もちろん、インループフィルタ部３２０が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部３２０がウィーナーフィルタ等を適用するようにしてもよい。
【０３１８】
インループフィルタ部３２０は、フィルタ処理された局所復号画像Rlocalをフレームメモリ３２１に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部３２０は、そのフィルタに関する情報を符号化部３１５に供給する。
【０３１９】
＜フレームメモリ＞
フレームメモリ３２１は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ３２１は、演算部３１９から供給される局所復号画像Rlocalや、インループフィルタ部３２０から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持（記憶）する。また、フレームメモリ３２１は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する（フレームメモリ３２１内のバッファへ格納する）。フレームメモリ３２１は、予測部３２２の要求に応じて、その復号画像R（またはその一部）を予測部３２２に供給する。
【０３２０】
＜予測部＞
予測部３２２は、予測画像の生成に関する処理を行う。例えば、予測部３２２は、制御部３０１から供給される予測モード情報Pinfoと、並べ替えバッファ３１１から供給される入力画像（元画像）と、フレームメモリ３２１から読み出す復号画像R（またはその一部）を入力とする。予測部３２２は、予測モード情報Pinfoや入力画像（元画像）を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部３２２は、生成した予測画像Pを演算部３１２および演算部３１９に供給する。また、予測部３２２は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部３１５に供給する。
【０３２１】
＜レート制御部＞
レート制御部３２３は、レート制御に関する処理を行う。例えば、レート制御部３２３は、蓄積バッファ３１６に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部３１４の量子化動作のレートを制御する。
【０３２２】
＜本技術の適用＞
以上のような構成の画像符号化装置３００において、予測部３２２は、上述した本技術を適用した処理を行う。図２８に示されるように、予測部３２２は、MV候補リスト導出部３３１を有する。
【０３２３】
予測部３２２は、カレントブロックのインター予測により得られた動き情報を、他のブロックの動き情報を用いて符号化する。例えば、予測部３２２は、カレントブロックの動きベクトルを、他のブロックの動きベクトルから導出した予測動きベクトルを用いて符号化したり、他のブロックの動きベクトルのマージを表すマージインデックスを用いて符号化したりする。その際、予測部３２２は、MV候補リスト導出部３３１にMV候補リストを導出させ、そのMV候補リストの中からMV候補を所定の規則に従って選択し、その選択したMV候補を用いて、そのような動きベクトルの符号化を行う。
【０３２４】
MV候補リスト導出部３３１は、第１の実施の形態において説明したMV候補リスト導出装置１００に対応する処理部であり、MV候補リスト導出装置１００と同様の構成を有し、同様の処理を行う。つまり、MV候補リスト導出部３３１は、＜１．テンプレートマッチング＞および＜２．第１の実施の形態＞において上述したように、MV候補リストを導出し、方法＃１−１乃至方法＃１−６の内の少なくともいずれか１つの方法により、テンプレートマッチングを簡略化して行い、コストを算出し、そのコストに基づいてMV候補リストの並び替えを行う。
【０３２５】
予測部３２２は、その並び替え後のMV候補リストを用いて動きベクトルの符号化を行う。つまり、予測部３２２は、インター予測を行って予測画像を生成し、要素が並び替えられた動きベクトル候補リストを用いて、その予測画像の生成に用いられる動きベクトルを符号化する。
【０３２６】
このようにMV候補リスト導出部３３１がMV候補リストの並び替えを行うので、予測部３２２は、シーケンスやブロック毎の特性の変化に対応してより好適に動きベクトルの符号化を行うことができる。したがって、符号化効率の低減を抑制する（符号化効率を向上させる）ことができる。
【０３２７】
また、上述のように、MV候補リスト導出部３３１が、方法＃１−１乃至方法＃１−６の内の少なくともいずれか１つの方法を適用してMV候補リストを導出するので、MV候補リスト並び替え処理において行われるテンプレートマッチングを簡略化することができる。したがって、予測部３２２は、動きベクトルの符号化の負荷の増大を抑制する（負荷を低減させる）ことができる。
【０３２８】
＜画像符号化処理の流れ＞
次に、以上のような画像符号化装置３００により実行される画像符号化処理の流れの例を、図２９のフローチャートを参照して説明する。
【０３２９】
画像符号化処理が開始されると、ステップＳ３０１において、並べ替えバッファ３１１は、制御部３０１に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
【０３３０】
ステップＳ３０２において、制御部３０１は、並べ替えバッファ３１１が保持する入力画像に対して、処理単位を設定する（ブロック分割を行う）。
【０３３１】
ステップＳ３０３において、制御部３０１は、並べ替えバッファ３１１が保持する入力画像についての符号化パラメータを決定（設定）する。
【０３３２】
ステップＳ３０４において、予測部３２２は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部３２２は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
【０３３３】
ステップＳ３０５において、演算部３１２は、入力画像と、ステップＳ３０４の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部３１２は、入力画像と予測画像との予測残差resiを生成する。このようにして求められた予測残差resiは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
【０３３４】
ステップＳ３０６において、直交変換部３１３は、ステップＳ３０５の処理により生成された予測残差resiに対して直交変換処理を行い、係数データcoefを導出する。
【０３３５】
ステップＳ３０７において、量子化部３１４は、制御部３０１により算出された量子化パラメータを用いる等して、ステップＳ３０６の処理により得られた係数データcoefを量子化し、量子化変換係数qcoefを導出する。
【０３３６】
ステップＳ３０８において、逆量子化部３１７は、ステップＳ３０７の処理により生成された量子化変換係数qcoefを、そのステップＳ３０７の量子化の特性に対応する特性で逆量子化し、係数データcoefIを導出する。なお、この逆量子化処理は、復号側において行われる逆量子化処理（後述する）と同様であるので、このステップＳ３０８の逆量子化処理については、復号側について行う説明（後述する）を適用することができる。
【０３３７】
ステップＳ３０９において、逆直交変換部３１８は、ステップＳ３０８の処理により得られた係数データcoefIを、ステップＳ３０６の直交変換処理に対応する方法で逆直交変換し、残差データresiIを導出する。なお、この逆直交変換処理は、復号側において行われる逆直交変換処理（後述する）と同様であるので、このステップＳ３０９の逆直交変換処理については、復号側について行う説明（後述する）を適用することができる。
【０３３８】
ステップＳ３１０において、演算部３１９は、ステップＳ３０９の処理により導出された残差データresiIに、ステップＳ３０４の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
【０３３９】
ステップＳ３１１において、インループフィルタ部３２０は、ステップＳ３１０の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
【０３４０】
ステップＳ３１２において、フレームメモリ３２１は、ステップＳ３１０の処理により導出された、局所的に復号された復号画像や、ステップＳ３１２においてフィルタ処理された、局所的に復号された復号画像を記憶する。
【０３４１】
ステップＳ３１３において、符号化部３１５は、ステップＳ３０７の処理により得られた量子化変換係数qcoefを符号化する。例えば、符号化部３１５は、画像に関する情報である量子化変換係数qcoefを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部３１５は、各種符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo等）を符号化する。さらに、符号化部３１５は、量子化変換係数qcoefから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
【０３４２】
ステップＳ３１４において、蓄積バッファ３１６は、このようにして得られた符号化データを蓄積し、例えばビットストリームとして、それを画像符号化装置３００の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部３２３は、必要に応じてレート制御を行う。
【０３４３】
ステップＳ３１４の処理が終了すると、画像符号化処理が終了する。
【０３４４】
以上のような流れの画像符号化処理のステップＳ３０４の処理において、上述した本技術を適用する。つまり、予測処理における動きベクトルの符号化に用いられるMV候補リストの導出において、＜１．テンプレートマッチング＞および＜２．第１の実施の形態＞において上述したように、方法＃１−１乃至方法＃１−６の内の少なくともいずれか１つの方法を適用し、テンプレートマッチングを簡略化して行い、MV候補リストの並び替えを行うようにする。
【０３４５】
このようにすることにより、テンプレートマッチングの負荷の増大を抑制することができる。つまり、この画像符号化処理を実行することにより、予測処理における動きベクトルの符号化の負荷の増大を抑制することができる。
【０３４６】
＜４．第３の実施の形態＞
＜画像復号装置＞
また、本技術（テンプレートマッチングの簡略化（方法＃１））は、例えば、画像データの符号化データを復号する画像復号装置にも適用することができる。つまり、画像データの符号化データを復号する画像復号装置に、上述した方法＃１−１乃至方法１−６の内の少なくともいずれか１つを適用することができる。
【０３４７】
図３０は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図３０に示される画像復号装置４００は、AVCやHEVCのように、画像とその予測画像との予測残差が符号化された符号化データを復号する装置である。例えば、画像復号装置４００は、非特許文献１乃至非特許文献７に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データが符号化された符号化データを復号する。例えば、画像復号装置４００は、上述の画像符号化装置３００により生成された符号化データ（ビットストリーム）を復号する。
【０３４８】
なお、図３０においては、処理部やデータの流れ等の主なものを示しており、図３０に示されるものが全てとは限らない。つまり、画像復号装置４００において、図３０においてブロックとして示されていない処理部が存在したり、図３０において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像復号装置４００内の処理部等を説明する他の図においても同様である。
【０３４９】
図３０において、画像復号装置４００は、蓄積バッファ４１１、復号部４１２、逆量子化部４１３、逆直交変換部４１４、演算部４１５、インループフィルタ部４１６、並べ替えバッファ４１７、フレームメモリ４１８、および予測部４１９を備えている。なお、予測部４１９は、不図示のイントラ予測部、およびインター予測部を備えている。画像復号装置４００は、符号化データ（ビットストリーム）を復号することによって、動画像データを生成するための装置である。
【０３５０】
＜蓄積バッファ＞
蓄積バッファ４１１は、画像復号装置４００に入力されたビットストリームを取得し、保持（記憶）する。蓄積バッファ４１１は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部４１２に供給する。
【０３５１】
＜復号部＞
復号部４１２は、画像の復号に関する処理を行う。例えば、復号部４１２は、蓄積バッファ４１１から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
【０３５２】
シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部４１２は、ビットストリームから、これらの情報をパースする（解析して取得する）。これらの情報について以下に説明する。
【０３５３】
＜ヘッダ情報Hinfo＞
ヘッダ情報Hinfoは、例えば、VPS（Video Parameter Set）／SPS（Sequence Parameter Set）／PPS（Picture Parameter Set）／SH（スライスヘッダ）などのヘッダ情報を含む。ヘッダ情報Hinfoには、例えば、画像サイズ（横幅PicWidth、縦幅PicHeight）、ビット深度（輝度bitDepthY, 色差bitDepthC）、色差アレイタイプChromaArrayType、CUサイズの最大値MaxCUSize／最小値MinCUSize、４分木分割（Quad-tree分割ともいう）の最大深度MaxQTDepth/最小深度MinQTDepth、２分木分割（Binary-tree分割）の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize（最大変換スキップブロックサイズともいう）、各符号化ツールのオンオフフラグ（有効フラグともいう）などを規定する情報が含まれる。
【０３５４】
例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が１（真）の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が０（偽）の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
【０３５５】
コンポーネント間予測有効フラグ（ccp_enabled_flag）は、コンポーネント間予測（CCP（Cross-Component Prediction），CC予測とも称する）が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「１」（真）の場合、使用可能であることが示され、「０」（偽）の場合、使用不可であることが示される。なお、このCCPは、コンポーネント間線形予測（CCLMまたはCCLMP）とも称する。
【０３５６】
＜予測モード情報Pinfo＞
予測モード情報Pinfoには、例えば、処理対象PB（予測ブロック）のサイズ情報PBSize（予測ブロックサイズ）、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
【０３５７】
イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれる。
【０３５８】
また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ（ccp_flag（cclmp_flag））、多クラス線形予測モードフラグ（mclm_flag）、色差サンプル位置タイプ識別子（chroma_sample_loc_type_idx）、色差MPM識別子（chroma_mpm_idx）、および、これらのシンタックスから導出される輝度イントラ予測モード（IntraPredModeC）等が含まれる。
【０３５９】
コンポーネント間予測フラグ（ccp_flag（cclmp_flag））は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
【０３６０】
多クラス線形予測モードフラグ（mclm_flag）は、線形予測のモードに関する情報（線形予測モード情報）である。より具体的には、多クラス線形予測モードフラグ（mclm_flag）は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「０」の場合、１クラスモード（単一クラスモード）（例えばCCLMP）であることを示し、「１」の場合、２クラスモード（多クラスモード）（例えばMCLMP）であることを示す。
【０３６１】
色差サンプル位置タイプ識別子（chroma_sample_loc_type_idx）は、色差コンポーネントの画素位置のタイプ（色差サンプル位置タイプとも称する）を識別する識別子である。例えば色フォーマットに関する情報である色差アレイタイプ（ChromaArrayType）が420形式を示す場合、色差サンプル位置タイプ識別子は、以下の式（３４）のような割り当て方となる。
【０３６２】
chroma_sample_loc_type_idx == 0：Type2
chroma_sample_loc_type_idx == 1：Type3
chroma_sample_loc_type_idx == 2：Type1
chroma_sample_loc_type_idx == 3：Type0
・・・（３４）
【０３６３】
なお、この色差サンプル位置タイプ識別子（chroma_sample_loc_type_idx）は、色差コンポーネントの画素位置に関する情報（chroma_sample_loc_info()）として（に格納されて）伝送される。
【０３６４】
色差MPM識別子（chroma_mpm_idx）は、色差イントラ予測モード候補リスト（intraPredModeCandListC）の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
【０３６５】
動き予測情報MVinfoには、例えば、merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd等の情報が含まれる（例えば、JCTVC-W1005, 7.3.8.6 Prediction Unit Syntaxを参照）。
【０３６６】
もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【０３６７】
＜変換情報Tinfo＞
変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【０３６８】
処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSize（または、２を底とする各TBWSize（または、TrWidth）、TBHSize（または、TrHeight）の対数値log2TBWSize（または、log2TrWidth）、log2TBHSize（または、log2TrHeight）であってもよい。）
変換スキップフラグ（ts_flag）:（逆）プライマリ変換および（逆）セカンダリ変換をスキップか否かを示すフラグである。
スキャン識別子（scanIdx）
量子化パラメータ（qp）
量子化マトリックス（scaling_matrix（例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax））
【０３６９】
＜残差情報Rinfo＞
残差情報Rinfo（例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照）には、例えば以下のシンタックスが含まれる。
【０３７０】
cbf（coded_block_flag）：残差データ有無フラグ
last_sig_coeff_x_pos：ラスト非ゼロ係数X座標
last_sig_coeff_y_pos：ラスト非ゼロ係数Y座標
coded_sub_block_flag：サブブロック非ゼロ係数有無フラグ
sig_coeff_flag：非ゼロ係数有無フラグ
gr1_flag：非ゼロ係数のレベルが１より大きいかを示すフラグ（GR1フラグとも呼ぶ）
gr2_flag：非ゼロ係数のレベルが２より大きいかを示すフラグ(GR2フラグとも呼ぶ)
sign_flag：非ゼロ係数の正負を示す符号（サイン符号とも呼ぶ）
coeff_abs_level_remaining:非ゼロ係数の残余レベル（非ゼロ係数残余レベルとも呼ぶ）
【０３７１】
もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【０３７２】
＜フィルタ情報Finfo＞
フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
【０３７３】
デブロッキングフィルタ(DBF)に関する制御情報
画素適応オフセット(SAO)に関する制御情報
適応ループフィルタ(ALF)に関する制御情報
その他の線形・非線形フィルタに関する制御情報
【０３７４】
より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【０３７５】
復号部４１２の説明に戻り、復号部４１２は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数qcoefを導出する。復号部４１２は、その量子化変換係数qcoefを、逆量子化部４１３に供給する。
【０３７６】
また、復号部４１２は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、量子化変換係数qcoef、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
【０３７７】
ヘッダ情報Hinfoは、逆量子化部４１３、逆直交変換部４１４、予測部４１９、インループフィルタ部４１６に供給される。
予測モード情報Pinfoは、逆量子化部４１３および予測部４１９に供給される。
変換情報Tinfoは、逆量子化部４１３および逆直交変換部４１４に供給される。
フィルタ情報Finfoは、インループフィルタ部４１６に供給される。
【０３７８】
もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
【０３７９】
＜逆量子化部＞
逆量子化部４１３は、逆量子化に関する処理を行う。例えば、逆量子化部４１３は、復号部４１２から供給される変換情報Tinfoおよび量子化変換係数qcoefを入力とし、その変換情報Tinfoに基づいて、量子化変換係数qcoefの値をスケーリング（逆量子化）し、逆量子化後の係数データcoefIを導出する。
【０３８０】
なお、この逆量子化は、量子化部３１４による量子化の逆処理として行われる。また、この逆量子化は、逆量子化部３１７による逆量子化と同様の処理である。つまり、逆量子化部３１７は、逆量子化部４１３と同様の処理（逆量子化）を行う。
【０３８１】
逆量子化部４１３は、導出した係数データcoefIを逆直交変換部４１４に供給する。
【０３８２】
＜逆直交変換部＞
逆直交変換部４１４は、逆直交変換に関する処理を行う。例えば、逆直交変換部４１４は、逆量子化部４１３から供給される係数データcoefI、および、復号部４１２から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、係数データcoefIに対して逆直交変換処理を行い、残差データresiIを導出する。
【０３８３】
なお、この逆直交変換は、直交変換部３１３による直交変換の逆処理として行われる。また、この逆直交変換は、逆直交変換部３１８による逆直交変換と同様の処理である。つまり、逆直交変換部３１８は、逆直交変換部４１４と同様の処理（逆直交変換）を行う。
【０３８４】
逆直交変換部４１４は、導出した残差データresiI'を演算部４１５に供給する。
【０３８５】
＜演算部＞
演算部４１５は、画像に関する情報の加算に関する処理を行う。例えば、演算部４１５は、逆直交変換部４１４から供給される残差データresiIと、予測部４１９から供給される予測画像Pとを入力とする。演算部４１５は、例えば以下の式（３５）に示されるように、残差データresiIとその残差データresiIに対応する予測画像P（予測信号）とを加算し、局所復号画像Rlocalを導出する。
【０３８６】
Rlocal = resiI + P  ・・・（３５）
【０３８７】
演算部４１５は、導出した局所復号画像Rlocalを、インループフィルタ部４１６およびフレームメモリ４１８に供給する。
【０３８８】
＜インループフィルタ部＞
インループフィルタ部４１６は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部４１６は、演算部４１５から供給される局所復号画像Rlocalと、復号部４１２から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部４１６に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
【０３８９】
インループフィルタ部４１６は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。
【０３９０】
例えば、インループフィルタ部４１６は、バイラテラルフィルタ、デブロッキングフィルタ（DBF（DeBlocking Filter））、適応オフセットフィルタ（SAO（Sample Adaptive Offset））、および適応ループフィルタ（ALF(Adaptive Loop Filter)）の４つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【０３９１】
インループフィルタ部４１６は、符号化側（例えば画像符号化装置３００のインループフィルタ部３２０）により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部４１６が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部４１６がウィーナーフィルタ等を適用するようにしてもよい。
【０３９２】
インループフィルタ部４１６は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ４１７およびフレームメモリ４１８に供給する。
【０３９３】
＜並べ替えバッファ＞
並べ替えバッファ４１７は、インループフィルタ部４１６から供給された局所復号画像Rlocalを入力とし、それを保持（記憶）する。並べ替えバッファ４１７は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する（バッファ内に格納する）。並べ替えバッファ４１７は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ４１７は、並べ替えた復号画像R群を動画像データとして画像復号装置４００の外部に出力する。
【０３９４】
＜フレームメモリ＞
フレームメモリ４１８は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ４１８は、演算部４１５より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ４１８内のバッファへ格納する。
【０３９５】
また、フレームメモリ４１８は、インループフィルタ部４１６から供給される、インループフィルタ処理された局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ４１８内のバッファへ格納する。フレームメモリ４１８は、適宜、その記憶している復号画像R（またはその一部）を参照画像として予測部４１９に供給する。
【０３９６】
なお、フレームメモリ４１８が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
【０３９７】
＜予測部＞
予測部４１９は、予測画像の生成に関する処理を行う。例えば、予測部４１９は、復号部４１２から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部４１９は、その予測モード情報Pinfoによって指定される、フレームメモリ４１８に格納されたフィルタ前またはフィルタ後の復号画像R（またはその一部）を、参照画像として利用する。予測部４１９は、導出した予測画像Pを、演算部４１５に供給する。
【０３９８】
＜本技術の適用＞
以上のような構成の画像復号装置４００において、予測部４１９は、上述した本技術を適用した処理を行う。図３０に示されるように、予測部４１９は、MV候補リスト導出部４３１を有する。
【０３９９】
予測部４１９は、予測画像の生成（動き補償）に用いる動きベクトルを復元する。例えば、予測部４１９は、符号化側から伝送された差分動きベクトルにカレントブロックと異なる他のブロックの動きベクトルから導出した予測動きベクトルを加算したり、他のブロックの動きベクトルをマージしたりして、カレントブロックの動きベクトルを復元する。その際、予測部４１９は、MV候補リスト導出部４３１にMV候補リストを導出させ、そのMV候補リストの中からMV候補を所定の規則に従って選択し、その選択したMV候補を用いて、そのような動きベクトルの復元を行う。予測部４１９は、復元した動きベクトルを用いて動き補償を行い、予測画像を生成する。
【０４００】
MV候補リスト導出部４３１は、第１の実施の形態において説明したMV候補リスト導出装置１００に対応する処理部であり、MV候補リスト導出装置１００と同様の構成を有し、同様の処理を行う。つまり、MV候補リスト導出部４３１は、＜１．テンプレートマッチング＞および＜２．第１の実施の形態＞において上述したように、MV候補リストを導出し、方法＃１−１乃至方法＃１−６の内の少なくともいずれか１つの方法により、テンプレートマッチングを簡略化して行い、コストを算出し、そのコストに基づいてMV候補リストの並び替えを行う。
【０４０１】
予測部４１９は、その並び替え後のMV候補リストを用いて動きベクトルの復元を行う。つまり、予測部４１９は、要素が並び替えられた動きベクトル候補リストを用いて、予測画像の生成に用いられる動きベクトルを復元する。
【０４０２】
このようにMV候補リスト導出部４３１がMV候補リストの並び替えを行うので、予測部４１９は、シーケンスやブロック毎の特性の変化に対応してより好適に符号化された動きベクトルを正しく復号する（動きベクトルを復元する）ことができる。したがって、符号化効率の低減を抑制する（符号化効率を向上させる）ことができる。
【０４０３】
また、上述のように、MV候補リスト導出部４３１が、方法＃１−１乃至方法＃１−６の内の少なくともいずれか１つの方法を適用してMV候補リストを導出するので、MV候補リスト並び替え処理において行われるテンプレートマッチングを簡略化することができる。したがって、予測部４１９は、動きベクトルの復元の負荷の増大を抑制する（負荷を低減させる）ことができる。
【０４０４】
＜画像復号処理の流れ＞
次に、以上のような画像復号装置４００により実行される画像復号処理の流れの例を、図３１のフローチャートを参照して説明する。
【０４０５】
画像復号処理が開始されると、蓄積バッファ４１１は、ステップＳ４０１において、画像復号装置４００の外部から供給される符号化データ（ビットストリーム）を取得して保持する（蓄積する）。
【０４０６】
ステップＳ４０２において、復号部４１２は、その符号化データ（ビットストリーム）を復号し、量子化変換係数qcoefを得る。また、復号部４１２は、この復号により、符号化データ（ビットストリーム）から各種符号化パラメータをパースする（解析して取得する）。
【０４０７】
ステップＳ４０３において、逆量子化部４１３は、ステップＳ４０２の処理により得られた量子化変換係数qcoefに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、係数データcoefIを得る。
【０４０８】
ステップＳ４０４において、逆直交変換部４１４は、ステップＳ４０３の処理により得られた係数データcoefIに対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、残差データresiIを得る。
【０４０９】
ステップＳ４０５において、予測部４１９は、ステップＳ４０２においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ４１８に記憶されている参照画像を参照する等して、予測画像Pを生成する。
【０４１０】
ステップＳ４０６において、演算部４１５は、ステップＳ４０４の処理により得られた残差データresiIと、ステップＳ４０５の処理により得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
【０４１１】
ステップＳ４０７において、インループフィルタ部４１６は、ステップＳ４０６の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
【０４１２】
また、ステップＳ４０８において、フレームメモリ４１８は、ステップＳ４０６の処理により得られた局所復号画像Rlocal、および、ステップＳ４０７の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
【０４１３】
ステップＳ４０９において、並べ替えバッファ４１７は、ステップＳ４０７の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。
【０４１４】
ステップＳ４１０において、並べ替えバッファ４１７は、再生順に並べ替えた復号画像R群を、動画像として画像復号装置４００の外部に出力する。
【０４１５】
ステップＳ４１０の処理が終了すると、画像復号処理が終了する。
【０４１６】
以上のような流れの画像復号処理のステップＳ４０５の処理において、上述した本技術を適用する。つまり、予測処理における動きベクトルの復元に用いられるMV候補リストの導出において、＜１．テンプレートマッチング＞および＜２．第１の実施の形態＞において上述したように、方法＃１−１乃至方法＃１−６の内の少なくともいずれか１つの方法を適用し、テンプレートマッチングを簡略化して行い、MV候補リストの並び替えを行うようにする。
【０４１７】
このようにすることにより、テンプレートマッチングの負荷の増大を抑制することができる。つまり、この画像復号処理を実行することにより、予測処理における動きベクトルの復元の負荷の増大を抑制することができる。
【０４１８】
＜５．第４の実施の形態＞
＜修正MV候補導出への適用＞
以上においては、MV予測リストの並び替えにおけるテンプレートマッチングに本技術を適用する例について説明した。しかしながら、本技術は、任意の処理におけるテンプレートマッチングに適用することができる。つまり、本技術の適用は、上述の例、すなわち、MV予測リストの並び替えにおけるテンプレートマッチングに限定されない。
【０４１９】
例えば、非特許文献１において、並び替え後のMV候補リスト（MVCandList'）の先頭MV候補を初期位置として、デコーダサイド動き探索（デコーダサイドME）により得られる修正MV候補を、さらにMV候補リストの先頭MV候補として追加する技術（修正MV候補導出処理）が提案された（図３２）。図３２の例の場合、図中左に示される並び替え後のMV候補リスト（Re-orderd candidate list）の先頭MV候補（B1）に基づいて、修正MV候補（Refine B1）が追加されて（Refinement）、図中右に示される更新後のMV候補リスト（Updated candidate list）が導出されている。
【０４２０】
なお、先頭MV候補と先頭MV候補の修正MVが同じ動き情報の場合は、MV候補リスト中の先頭から２番目のMV候補を初期値として、デコーダサイドMEにより得られる修正MV候補が、先頭MV候補として追加される。
【０４２１】
修正MV候補を導出する際、修正対象のMV候補を初期位置とする、所定MV精度の探索MVリストが設定され、その探索MVリストの各動き情報に対応する探索点の中でコストが最小となる探索点の動き情報が修正MV候補として選択される。
【０４２２】
この探索MVリストは、例えば、修正対象のMV候補に対する所定MV精度の動きベクトルのMVオフセットリストを予め設定しておき、初期位置に対してそれらのMVオフセットを足すことで設定される。
【０４２３】
例えば、図３３に示されるような、探索初期位置を基準とする所定のMV精度（例えば、1/2^{max_mv_prec}-pel精度）の位置をMVオフセットとし、以下のように、そのリスト（MVオフセットリスト（MVOffsetList0））を予め定義しておく。ただし、動きベクトルの値は、2^{max_mv_prec}倍スケーリングされて表現されているものとする。
【０４２４】
MVOffsetIdx： 0, 1, 2, 3, 4, 5, 6, 7, 8
MVOffsetList0
= {(0,0),(-1,0),(0,-1),(+1,0),(0,+1),(-1,-1),(+1,-1),(+1,+1),(-1,+1)}
【０４２５】
この場合、MVOffsetIdxは、０乃至８の計９個のMVオフセットからなる。ただし、MVオフセットの構成は任意であり、上述の例に限定されない。例えば、MVOffsetIdxが０乃至４のMVオフセットからなるようにしてもよいし、MVOffsetidxが０、並びに、５乃至８のMVオフセットからなるようにしてもよい。
【０４２６】
1/2^{target_mv_prec}-pel精度のMVオフセットリストMVOffsetList(target_mv_prec)は、1/2^{max_mv_prec}-pel精度のMVオフセットリストMVOffsetList0と、所望の動きベクトルの精度を示すパラメータtarget_mv_precを基に、以下の式（３６）のように導出される。
【０４２７】
【数２０】
2019244669.tif 000022
【０４２８】
例えば、max_mv_prec=4 (1/16-pel精度)であって、target_mv_prec=2 (1/2-pel精度)であれば、MVOffsetList(target_mv_prec)は以下の式（３７）のように導出される。
【０４２９】
【数２１】
2019244669.tif 000023
【０４３０】
すなわち、MVOffsetList0の値を(1<<(max_mv_prec-target_mv_prec))倍したMVオフセットを有するMVオフセットリストが得られる。
【０４３１】
しかしながら、このような修正MV候補の導出の際に、MV候補リスト中のあるMV候補を初期位置として、デコーダサイドMEにより修正MV候補を取得する場合において、サブペル位置の探索が含まれると、各サブペル位置のテンプレートをMCにより生成して、テンプレートマッチングをする必要があるため、演算量が増大するおそれがあった。
【０４３２】
＜テンプレートマッチングの簡略化＞
そこで、この修正MV候補の導出においても、図３の表の方法＃１と同様に、テンプレートマッチングを簡略化するようにする。このようにすることにより、テンプレートマッチングの負荷の増大を抑制する（負荷を低減させる）ことができる。例えば、修正MV候補導出処理において行われるテンプレートマッチングを簡略化することにより、修正MV候補導出処理の負荷の増大を抑制する（負荷を低減させる）ことができる。負荷の増大を抑制することにより、例えば、ハードウエアのコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。
【０４３３】
＜方法＃１−１の適用＞
テンプレートマッチングの簡略化の方法として、例えば、図３の表の方法＃１−１と同様に、粗い精度でテンプレートマッチングを行うようにしてもよい。
【０４３４】
例えば、動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと探索点のテンプレートとのテンプレートマッチングを行い、コストを導出し、その導出された各動きベクトル候補のコストに基づいて修正動きベクトル候補を導出し、その導出した修正動きベクトル候補を用いて動きベクトル候補リストを更新するようにしてもよい。
【０４３５】
例えば、画像処理装置において、動きベクトル候補リストの精度よりも粗い精度の動きベクトル候補について、カレントブロックのテンプレートと探索点のテンプレートとのテンプレートマッチングを行い、コストを導出するテンプレートマッチング部と、そのテンプレートマッチング部により導出された各動きベクトル候補のコストに基づいて修正動きベクトル候補を導出し、その導出した修正動きベクトル候補を用いて動きベクトル候補リストを更新する更新部とを備えるようにしてもよい。
【０４３６】
このようにすることにより、テンプレートマッチングにおいて行われる演算を簡略化することができ、負荷の増大を抑制することができる。
【０４３７】
特に、MV候補がサブペル（sub-pel）位置を示す場合、サブペル位置のテンプレートを動き補償により生成する必要があり、演算量が増大するおそれがあった。このようにMV候補リストが小数画素精度の場合に、例えば整数画素精度でテンプレートマッチングを行うようにすることにより、テンプレート生成（動き補償）の演算量の増大を抑制することができる。つまり、テンプレートマッチングの負荷の増大を抑制することができる。
【０４３８】
その際、小数画素精度の動きベクトル候補リストに対応する整数画素精度の動きベクトル候補リストを導出するようにしてもよい。例えば、画像処理装置において、小数画素精度の動きベクトル候補リストに対応する整数画素精度の動きベクトル候補リストを導出する導出部をさらに備え、テンプレートマッチング部が、その導出部により導出された整数画素精度の動きベクトル候補リストの各動きベクトル候補について、カレントブロックのテンプレートと探索点のテンプレートとのテンプレートマッチングを行い、コストを導出し、更新部が、そのテンプレートマッチング部により導出された各動きベクトル候補のコストに基づいて修正動きベクトル候補を導出し、その導出した修正動きベクトル候補を用いて小数画素精度の動きベクトル候補リストを更新するようにしてもよい。
【０４３９】
このようにすることにより、容易に整数精度でのテンプレートマッチングを行うことができる。
【０４４０】
例えば、導出部が、小数画素精度の各MV候補を整数画素精度に変換して、小数画素精度のMV候補リストに対応する整数画素精度のMV候補リストを生成し、その整数画素精度のMV候補リストを用いてテンプレートマッチングを行うようにしてもよい。このようにすることにより、小数画素精度の動きベクトル候補リストに対応する整数画素精度の動きベクトル候補リストを導出することができる。
【０４４１】
＜方法＃１−２の適用＞
また、例えば、図３の表の方法＃１−２と同様に、重複するMV候補（重複MV）のテンプレートマッチングをスキップ（省略）するようにしてもよい。例えば、画像処理装置において、テンプレートマッチング部が、既にテンプレートマッチングが行われた動きベクトル候補と同一の動きベクトル候補に対するテンプレートマッチングをスキップするようにしてもよい。このようにすることにより、テンプレートマッチングの回数の増大を抑制する（回数を削減する）ことができる。つまり、テンプレートマッチングの負荷の増大を抑制することができる。
【０４４２】
＜方法＃１−３の適用＞
さらに、例えば、図３の表の方法＃１−３と同様に、テンプレートの一部の画素を間引くようにしてもよい。例えば、カレントPUのサイズに応じた間引き率（割合）で、テンプレートの一部の画素を間引くようにしてもよい。例えば、画像処理装置において、テンプレートマッチング部が、カレントブロックのサイズに応じたサンプリング間隔の、そのカレントブロックのテンプレートと、そのカレントブロックのサイズに応じたサンプリング間隔の、探索点のテンプレートとの間でテンプレートマッチングを行い、コストを導出するようにしてもよい。
【０４４３】
換言するに、カレントPUの隣接復号済み画素群（カレントPUに隣接する所定の領域の画素群）から、そのカレントPUのサイズに応じた間隔で画素をサンプリングし（つまり、その隣接復号済み画素群からカレントPUのサイズに応じた割合（抽出率）で画素を抽出し）、そのサンプリングした画素により構成されるテンプレートを生成するようにしてもよい。
【０４４４】
このようにテンプレートを生成することにより、テンプレートの画素数が低減するので、テンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができる。つまり、テンプレートマッチングの負荷の増大を抑制することができる。
【０４４５】
＜方法＃１−４の適用＞
ところで、カレントPUがCTU境界に隣接する場合、テンプレートマッチングで参照するテンプレートのサイズだけ、CTUレベルのラインバッファを確保する必要があり、メモリサイズが増大するおそれがあった。
【０４４６】
そこで、例えば、図３の表の方法＃１−４と同様に、カレントPUがCTU境界に隣接する場合、テンプレートのライン数を削減するようにしてもよい。つまり、カレントPUの位置に応じたサイズでテンプレートが生成される（すなわち、テンプレートサイズが、カレントPUの位置に応じて設定される）ようにしてもよい。
【０４４７】
例えば、画像処理装置において、テンプレートマッチング部が、カレントブロックの位置に応じたサイズのカレントブロックのテンプレートと、そのカレントブロックの位置に応じたサイズの探索点のテンプレートとのテンプレートマッチングを行い、コストを導出するようにしてもよい。
【０４４８】
このようにテンプレートを生成することにより、テンプレート生成に使用する復号済み画素の増大を抑制する（テンプレート生成に使用する復号済み画素を削減する）ことができる。つまり、その復号済み画素を記憶（保持）するラインバッファのサイズの増大を抑制する（ラインバッファサイズを削減する）ことができる。つまり、テンプレートマッチングの負荷の増大を抑制することができる。
【０４４９】
＜方法＃１−５の適用＞
また、カレントPUのサイズが小さい場合、テンプレートマッチングの際に、隣接復号済画素群や参照ピクチャへのアクセス回数が増大し、使用するメモリバンドが増大する（つまり負荷が増大する）おそれがあった。
【０４５０】
そこで、例えば、図３の表の方法＃１−５と同様に、カレントPUのサイズが小さい場合（例えばカレントPUのサイズが所定の閾値より小さい場合）、上述の修正MV候補導出処理（つまり、MV候補リストの更新処理）をスキップ（省略）するようにしてもよい。
【０４５１】
例えば、画像処理装置において、テンプレートマッチング部および更新部が、カレントブロックが所定の閾値より小さい場合、処理をスキップするようにしてもよい。
【０４５２】
このように制御することにより、負荷が大きな、サイズが小さいカレントPUに対するテンプレートマッチング（修正MV候補導出処理）をスキップすることができる。つまり、テンプレートマッチングの負荷の増大を抑制することができる。
【０４５３】
＜方法＃１−６の適用＞
また、複数予測の場合、各予測について探索点のテンプレートを作成する必要があるため負荷が増大するおそれがあった。そこで、例えば、図３の表の方法＃１−６と同様に、複数予測を行うMV候補に対して、予測数を削減し、単予測によるテンプレートマッチングを行うようにしてもよい。例えば、画像処理装置において、テンプレートマッチング部が、複数予測の動きベクトル候補について、単数予測を設定し、その単数予測の動きベクトル候補としてカレントブロックのテンプレートと探索点のテンプレートとのテンプレートマッチングを行い、コストを導出するようにしてもよい。
【０４５４】
このようにすることにより、テンプレートの生成数の増大を抑制する（テンプレートの生成数を削減する）ことができるので、テンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができる。
【０４５５】
＜各方法の組み合わせ＞
なお、上述した方法＃１−１乃至方法＃１−６は、それぞれ単独で適用することもできるし、複数の方法を組み合わせて適用することもできる。例えば、方法＃１−１を、方法＃１−２乃至方法＃１−６のいずれかと組み合わせて用いるようにしてもよい。また、例えば、方法＃１−２乃至方法＃１−６の中で複数の方法を組み合わせてもよい。勿論、組み合わせる方法の数は任意であり、３つ以上の方法を組み合わせてもよい。
【０４５６】
＜MV候補リスト導出装置＞
図３４は、本技術を適用した画像処理装置の一態様であるMV候補リスト導出装置の構成の一例を示すブロック図である。図３４に示されるように、この場合のMV候補リスト導出装置１００は、図４の場合と同様に第１MV精度MV候補リスト導出部１０１を有する。ただし、図４の場合のMV候補リスト並び替え部１０２の代わりに、修正MV候補導出部５０２を有する。MV候補リスト導出装置１００は、MV候補リストの導出、並びに、修正MV候補の導出およびその修正MV候補を用いたMV候補リストの更新を行う。
【０４５７】
第１MV精度MV候補リスト導出部１０１は、第１の実施の形態において説明した通り、第１MV精度のMV候補リスト（MVCandList）と、その第１MV精度のMV候補リストに含まれるMV候補の数を示す情報（numMVCand）を導出（生成）する。第１MV精度MV候補リスト導出部１０１は、生成した第１MV精度のMV候補リストとその第１MV精度のMV候補リストに含まれるMV候補の数を示す情報とを、修正MV候補導出部５０２に供給する。
【０４５８】
修正MV候補導出部５０２は、第１MV精度MV候補リスト導出部１０１より供給された第１MV精度のMV候補リストを用いて、修正MV候補を導出し、その修正MV候補を用いて、第１MV精度のMV候補リストを更新する。修正MV候補導出部５０２は、テンプレートマッチング部５１１を備え、このテンプレートマッチング部５１１によるテンプレートマッチングを利用して、この修正MV候補の導出を行う。修正MV候補導出部５０２は、更新後のMV候補リスト（MVCandList'）を、導出したMV候補リストとして出力する。また、その際、修正MV候補導出部５０２は、第１MV精度のMV候補リスト（更新後MV候補リスト）に含まれるMV候補の数を示す情報（numMVCand）も出力する。
【０４５９】
テンプレートマッチング部５１１は、（修正MV候補導出のための）テンプレートマッチングを簡略化して行う。
【０４６０】
したがって、テンプレートマッチング部５１１は、＜テンプレートマッチングの簡略化＞において上述したように、テンプレートマッチングの負荷の増大を抑制することができ、修正MV候補導出部５０２は、修正MV候補導出の負荷の増大を抑制することができる。したがって、MV候補リスト導出装置１００は、MV候補リスト導出の負荷の増大を抑制することができる。
【０４６１】
＜MV候補リスト導出処理の流れ＞
このMV候補リスト導出装置１００により実行されるMV候補リスト導出処理の流れの例を、図３５のフローチャートを参照して説明する。
【０４６２】
この場合のMV候補リスト導出処理が開始されると、第１MV精度MV候補リスト導出部１０１は、ステップＳ５０１において、カレントPUに対する第１MV精度のMV候補リスト（MVCandList）を導出（生成）する。なお、その際、第１MV精度MV候補リスト導出部１０１は、その第１MV精度のMV候補リストに含まれるMV候補の数を示す情報（numMVCand）を導出（生成）する。
【０４６３】
ステップＳ５０２において、修正MV候補導出部５０２は、テンプレートマッチングに基づいて修正MV候補を導出し、ステップＳ５０１において導出された第１MV精度のMV候補リストを更新し、更新後のMV候補リスト（MVCandList'）を導出（生成）する。
【０４６４】
ステップＳ５０２の処理が終了すると、MV候補リスト導出処理が終了する。
【０４６５】
以上のように各ステップの処理を実行することにより、＜テンプレートマッチングの簡略化＞において上述したように、テンプレートマッチングの負荷の増大を抑制することができる。つまり、修正MV候補導出の負荷の増大を抑制することができる。すなわち、MV候補リスト導出の負荷の増大を抑制することができる。
【０４６６】
＜方法＃１−１：修正MV候補導出部への適用＞
次に、修正MV候補導出部５０２が、図３の方法＃１−１により、修正MV候補の導出を行う場合について説明する。図３６は、図３４の修正MV候補導出部５０２の構成の一例を示すブロック図である。図３６に示されるように、この場合の修正MV候補導出部５０２は、第２MV精度探索MVリスト導出部５２１、MV候補リスト更新部５２２、およびテンプレートマッチング部５１１を有する。
【０４６７】
＜第２MV精度探索MVリスト導出部＞
第２MV精度探索MVリスト導出部５２１は、第１MV精度MV候補リスト導出部１０１から供給される第１MV精度のMV候補リスト（MVCandList）と、その第１MV精度のMV候補リストに含まれるMV候補の数を示す情報（numMVCand）とを取得する。第２MV精度探索MVリスト導出部５２１は、その取得した第１MV精度のMV候補リスト（MVCandList）に対応する、第２MV精度の探索MVリスト（searchMVList）を導出（生成）する。
【０４６８】
第１MV精度および第２MV精度は、第１の実施の形態において説明した通りである。
【０４６９】
第２MV精度を示すMV精度パラメータ（targetMVPrec）が第２MV精度探索MVリスト導出部５２１に入力される。第２MV精度探索MVリスト導出部５２１は、その入力されたMV精度パラメータ（targetMVPrec）に基づいて、第１MV精度MV候補リスト導出部１０１から供給される第１MV精度のMV候補リストに対応する、そのMV精度パラメータ（targetMVPrec）が示す第２MV精度の探索MVリスト（searchMVList）を導出（生成）する。なお、この第２MV精度は、固定値であってもよいし、ユーザ等により設定することができるようにしてもよい。
【０４７０】
また、第２MV精度探索MVリスト導出部５２１は、導出した第２MV精度の探索MVリスト（searchMVList）を、その探索MVリストに含まれる探索MVの数を示す情報（numSearchMV）とともに、テンプレートマッチング部１１１（の探索点テンプレート生成部５３２）に供給する。
【０４７１】
＜第２MV精度の探索MVリストの導出＞
例えば、第２MV精度探索MVリスト導出部５２１は、例えば、修正対象のMV候補に対する所定MV精度(=1/2^target_mv_prec-pel精度)の動きベクトルのオフセットリストMVOffsetList(target_mv_prec)を予め定義しておき、初期位置(to-be-refined-mv)に対して、オフセットの値を足すことで、以下の式（３８）のように、探索MVリスト（searchMVList）を導出（生成）する。
【０４７２】
【数２２】
2019244669.tif 000024
【０４７３】
MVオフセットリストは、図３３を参照して説明したとおりである。ここで、target_mv_prec=0と設定することで、図３７に示されるように、1-pel MV精度の探索MVリスト（searchMVList）を導出することができる。例えば、MVPの指す位置と、最近某の整数画素（int-pel）位置（IntPelMVs）に絞る。このようにすることにより、MVPの初期位置を除いて、サブペル精度のMC不要で、Decoder-side MEを実施できる。つまり、サブペル精度のテンプレートマッチングを省略することができるので、修正MV候補導出におけるテンプレートマッチング処理を簡略することができる。
【０４７４】
＜テンプレートマッチング部＞
テンプレートマッチング部１１１は、第２MV精度探索MVリスト導出部５２１により導出された第２MV精度の探索MVリストを用いてテンプレートマッチングを行い、コストを導出（算出）する。
【０４７５】
図３６に示されるように、テンプレートマッチング部１１１は、カレントPUテンプレート生成部５３１、探索点テンプレート生成部５３２、およびコスト算出部５３３を有する。
【０４７６】
＜カレントPUテンプレート生成部＞
カレントPUテンプレート生成部５３１は、カレントPUテンプレート生成部１３１と同様の処理部であり、同様の構成を有し、同様の処理を行う。例えば、カレントPUテンプレート生成部５３１は、カレントPUのテンプレート（curTemplate）を生成する。カレントPUテンプレート生成部５３１は、生成したカレントPUのテンプレート（curTemplate）をコスト算出部５３３に供給する。
【０４７７】
＜探索点テンプレート生成部＞
探索点テンプレート生成部５３２は、第２MV精度探索MVリスト導出部５２１により導出された第２MV精度の探索MVリストと、ピクチャバッファから復号済みの画素値とを取得し、それらに基づいて、探索点のテンプレートを導出（生成）する。例えば、探索点テンプレート生成部５３２は、第２MV精度の探索MVリストの各探索MV（seachMVList[i]）の動き情報に対応するテンプレートを生成する。探索点テンプレート生成部５３２は、生成した各探索点のテンプレートをコスト算出部５３３に供給する。
【０４７８】
＜コスト算出部＞
コスト算出部５３３は、コスト算出部１３３と同様の処理部であり、同様の構成を有し、同様の処理を行う。例えば、コスト算出部５３３は、カレントPUテンプレート生成部５３１から供給されたカレントPUのテンプレートと、探索点テンプレート生成部５３２から供給された探索点のテンプレートとを用いて、そのコスト（cost）を導出（算出）する。コスト算出部５３３は、算出したコストをコストリスト（costList）としてMV候補リスト更新部５２２に供給する。
【０４７９】
＜MV候補リスト更新部＞
MV候補リスト更新部５２２は、第１MV精度MV候補リスト導出部１０１から供給される第１MV精度のMV候補リスト（MVCandList）と、コスト算出部５３３から供給される、第２MV精度の探索MVリスト（searchMVList）の各探索MVに対応するテンプレートマッチングのコストリスト（CostList）とを入力とする。MV候補リスト更新部５２２は、そのコストリストを参照して、コストが最小となる探索MVを修正MV候補として選択し、その修正MV候補を用いて（修正MV候補を挿入する等して）、第１MV精度のMV候補リスト（MVCandList）を更新する。
【０４８０】
以上のように、第２MV精度探索MVリスト導出部５２１は、第１MV精度のMV候補リストに対応する、第１のMV精度よりも粗い（低精度の）第２MV精度の探索MVリストを生成し、テンプレートマッチング部１１１は、その第２MV精度の探索MVリストを用いてテンプレートマッチングを行ってコストを算出し、MV候補リスト更新部５２２は、そのテンプレートマッチングにより得られたコストに基づいて修正MV候補を導出し、その修正MV候補を用いて（挿入する等して）第１MV精度のMV候補リストを更新する。
【０４８１】
したがって、修正MV候補導出部５０２は、テンプレートマッチングの負荷の増大を抑制することができ、これにより、修正MV候補導出（MV候補リストの更新）の負荷の増大を抑制することができる。
【０４８２】
＜修正MV候補導出処理の流れ＞
図３８および図３９のフローチャートを参照して、この場合（方法＃１−１）の修正MV候補導出部５０２により、図３５のステップＳ５０２において実行される修正MV候補導出処理の流れの例を説明する。
【０４８３】
修正MV候補導出処理が開始されると、カレントPUテンプレート生成部５３１は、ステップＳ５１１において、カレントPUのテンプレート（curTemplate）を生成する。
【０４８４】
ステップＳ５１２において、第２MV精度探索MVリスト導出部５２１は、修正対象のMV候補（to-be-refined-mv）を、以下の式（３９）のように、第１MV精度のMV候補リスト（MVCandList）の中から選択する。
【０４８５】
to-be-refined-mv = MVCandList[tgt_idx]  ・・・（３９）
【０４８６】
ステップＳ５１３において、第２MV精度探索MVリスト導出部５２１修正対象のMV候補を初期位置とする、1-pel精度の探索MVリスト（searchMVList）を設定する。
【０４８７】
ステップＳ５１４において、探索点テンプレート生成部５３２は、変数ｉに初期値（例えば「０」）をセットする。
【０４８８】
ステップＳ５１５において、探索点テンプレート生成部５３２は、探索MV（searchMVList[i]）の動き情報に対応するテンプレートを生成する。
【０４８９】
ステップＳ５１６において、コスト算出部５３３は、カレントPUのテンプレートと探索点（searchPoints[i]）に対応するテンプレートとからコスト（CostList[i]）を導出する。
【０４９０】
ステップＳ５１７において、探索点テンプレート生成部５３２は、変数ｉの値が探索MVリスト（searchMVList）に含まれる探索MVの数を示す値（numSearchMV）よりも小さいか否かを判定する。変数ｉがその値（numSearchMV）よりも小さい（i < numSearchMV）と判定された場合、処理はステップＳ５１８に進む。
【０４９１】
ステップＳ５１８において、探索点テンプレート生成部５３２は、変数ｉをインクリメントする（変数ｉの値に「＋１」を加算する）。ステップＳ５１８の処理が終了すると処理はステップＳ５１５に戻り、それ以降の処理を繰り返す。
【０４９２】
つまり、ステップＳ５１５乃至ステップＳ５１８の各処理が、各探索MV（探索MVに対応するコスト（CostList[i]））について実行される。
【０４９３】
そして、ステップＳ５１７において、変数ｉが値（numSearchMV）以上である（i ≧ numSearchMV）と判定された場合、処理は図３９のステップＳ５２１に進む。
【０４９４】
図３９のステップＳ５２１において、MV候補リスト更新部５２２は、探索点（searchPoints[i]（i=0,...,numSearch Points））の中で、コストが最小となる探索点（best_pos）の動き情報を修正MV候補とする。
【０４９５】
ステップＳ５２２において、MV候補リスト更新部５２２は、修正MV候補と同じ動きベクトル情報がMV候補リストに存在しない場合、修正MV候補をMV候補リストへ追加する（numRefinedMV++）。
【０４９６】
ステップＳ５２３において、MV候補リスト更新部５２２は、次のMV候補の補正処理へ移るか否かを判定する。例えば、予め定義された修正MV候補の最大数maxNumRefinedMVに対して、MV候補リストへ追加した修正MV候補の数（numRefinedMV）を比較して、修正MV候補数numRefinedMVがmaxNumRefinedMV以下であれば、次のMV候補の補正処理へ進む。その場合、処理は、図３８のステップＳ５１２に戻る。また、そうでなければ、修正MV候補導出処理が終了する。
【０４９７】
つまり、第２MV精度探索MVリスト導出部５２１が、図３８のステップＳ５１３の処理において、第２のMV精度（例えば整数画素精度）の探索MVリストを設定する。したがって、テンプレートマッチング（ステップＳ５１６）を簡略化することができ、負荷の増大を抑制することができる。つまり、修正MV候補導出部５０２は、修正MV候補導出の負荷の増大を抑制することができる。
【０４９８】
＜方法＃１−２：修正MV候補導出部への適用＞
次に、図３の方法＃１−２を適用する場合について説明する。図４０は、図３４の修正MV候補導出部５０２の構成の一例を示すブロック図である。この場合の修正MV候補導出部５０２は、方法＃１−１および方法＃１−２を用いて修正MV候補の導出を行う。すなわち、修正MV候補導出部５０２は、粗い精度でテンプレートマッチングを行い、さらに、テンプレートマッチングが実行済みの探索MVと同一の探索MV（重複MV）を検出し、その探索MVのテンプレートマッチングをスキップする（実行済みテンプレートマッチング結果（コスト値）を流用する）。
【０４９９】
この場合の修正MV候補導出部５０２は、図４０に示されるように、図３６の場合と同様に、第２MV精度探索MVリスト導出部５２１、MV候補リスト更新部５２２、およびテンプレートマッチング部５１１を有する。ただし、テンプレートマッチング部５１１は、図３６の場合の構成に加え、重複MV検出部５４１を有する。
【０５００】
重複MV検出部５４１は、第２MV精度探索MVリスト導出部５２１により導出（生成）された第２MV精度の探索MVリストを取得する。重複MV検出部５４１は、重複MV検出部１４１の場合と同様の手法により、その第２MV精度の探索MVリストに含まれる処理対象の探索MVが、同じ第２のMV精度の探索MVリストに含まれる、既にテンプレートマッチングが行われた探索MVと同一であるか否かを判定する。そして、重複MV検出部５４１は、重複MV検出部１４１の場合と同様の手法により、その判定結果に応じて、すなわち重複MVの検出結果に応じて、処理対象の探索MVに対して、テストフラグ（ToBeTestFlag）と、コスト参照インデックス（CostRefIdx）とを設定する。
【０５０１】
重複MV検出部５４１は、設定したテストフラグ（ToBeTestFlag）とコスト参照インデックス（CostRefIdx）の情報をコスト算出部５３３に供給する。
【０５０２】
コスト算出部５３３は、それらの情報に基づいてテンプレートマッチングを実行するかスキップする（コストを複製する）かして、各探索MVに対応するコストを算出する。
【０５０３】
このようにすることにより、修正MV候補導出部５０２は、テンプレートマッチングの回数の増大を抑制する（回数を削減する）ことができ、テンプレートマッチングの負荷の増大を抑制することができる。つまり、テンプレートマッチングに必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。また、これにより、修正MV候補導出の負荷の増大を抑制することができる。つまり、修正MV候補導出に必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。
【０５０４】
＜修正MV候補導出処理の流れ＞
図４１および図４２のフローチャートを参照して、この場合（方法＃１−２（および方法＃１−１））の修正MV候補導出部５０２により、図３５のステップＳ５０２において実行される修正MV候補導出処理の流れの例を説明する。
【０５０５】
修正MV候補導出処理が開始されると、カレントPUテンプレート生成部１３１は、図４１のステップＳ５３１において、カレントPUのテンプレート（curTemplate）を生成する。
【０５０６】
ステップＳ５３２において、第２MV精度探索MVリスト導出部５２１は、修正対象のMV候補を第１MV精度のMV候補リスト（MVCandList）から選択する（to-be-refined-mv = MVCandList[tgt_idx]）。
【０５０７】
ステップＳ５３３において、第２MV精度探索MVリスト導出部５２１は、修正対象のMV候補を初期位置とする1-pelMV精度の探索MVリスト（searchMVList）を設定する。
【０５０８】
ステップＳ５３４において、重複MV検出部５４１は、1-pelMV精度の探索MVリスト中の重複MVを検出し、各探索MVについて、テンプレートマッチングを行うかを示すテストフラグ（ToBeTestedFlag）と、コストのコピー元を示すコスト参照インデックス（CostRefIdx）とを設定する。
【０５０９】
ステップＳ５３５において、探索点テンプレート生成部５３２は、変数ｉに初期値（例えば「０」）をセットする。
【０５１０】
ステップＳ５３６において、探索点テンプレート生成部５３２は、探索MV（searchMVList[i]）のテストフラグが真であるか否かを判定する。このテストフラグが真である（例えば、ToBeTestFlag[i] == 1）と判定された場合、処理は、ステップＳ５３７に進む。
【０５１１】
ステップＳ５３７において、探索点テンプレート生成部５３２は、処理対象の探索MVの動きベクトル情報を参照して、その動きベクトル情報に対応するテンプレートを生成する。ステップＳ５３７の処理が終了すると処理は図４２のステップＳ５４１に進む。
【０５１２】
図４２のステップＳ５４１において、コスト算出部５３３は、図４１のステップＳ５３１において生成されたカレントPUのテンプレートと、図４１のステップＳ５３７において生成された処理対象の第２MV精度の探索点（searchPoints[i]）に対応するテンプレートとに基づいて、コスト（CostList[i]）を導出する。コストが導出されると処理はステップＳ５４３に進む。
【０５１３】
また、図４１のステップＳ５３６において、探索MVのテストフラグが偽である（例えば、ToBeTestFlag[i] == 0）と判定された場合、処理は、図４２のステップＳ５４２に進む。
【０５１４】
ステップＳ５４２において、コスト算出部５３３は、図４１のステップＳ５３４において設定されたコスト参照インデックス（CostRefIdx）が示すコストを、処理対象の探索MVのコストに設定する。つまり、同一の動き情報のコスト値を再利用（代用）する。これにより、処理対象の探索MVについてのコスト値の算出（テンプレートマッチング）を省略することができる。ステップＳ５４２の処理が終了すると処理はステップＳ５４３に進む。
【０５１５】
ステップＳ５４３において、探索点テンプレート生成部５３２は、変数ｉの値が探索MVリスト（searchMVList）に含まれる探索MVの数を示す値（numSearchMV）よりも小さいか否かを判定する。変数ｉがその値（numSearchMV）よりも小さい（i < numSearchMV）と判定された場合、処理はステップＳ５４４に進む。
【０５１６】
ステップＳ５４４において、探索点テンプレート生成部５３２は、変数ｉをインクリメントする（変数ｉの値に「＋１」を加算する）。ステップＳ５４４の処理が終了すると処理は図４１のステップＳ５３６に戻り、それ以降の処理を繰り返す。
【０５１７】
つまり、ステップＳ５３６乃至ステップＳ５４４の各処理が、各探索MV（探索MVに対応するコスト（CostList[i]））について実行される。
【０５１８】
そして、図４２のステップＳ５４３において、変数ｉが値（numSearchMV）以上である（i ≧ numSearchMV）と判定された場合、処理はステップＳ５４５に進む。
【０５１９】
ステップＳ５４５において、MV候補リスト更新部５２２は、コストリスト（CostList）を参照して、探索点（searchPoints[i]）の中でコストが最小となる探索点（best_pos）の動き情報を修正MV候補とする（refined-mv = to-be-refined-mv + offsetList[best_pos]）。
【０５２０】
ステップＳ５４６において、MV候補リスト更新部５２２は、修正MV候補と同じ動きベクトル情報がMV候補リストに存在しない場合、修正MV候補をMV候補リストへ追加する（numRefinedMV++）。
【０５２１】
ステップＳ５４７において、MV候補リスト更新部５２２は、次のMV候補の補正処理へ移るか否かを判定する。次のMV候補の補正処理へ進むと判定された場合、処理は、図４１のステップＳ５３２に戻る。また、図４２のステップＳ５４７において、次のMV候補の補正処理へ移らないと判定された場合、修正MV候補導出処理が終了する。
【０５２２】
以上のように、修正MV候補導出処理を行うことにより、修正MV候補導出部５０２は、テンプレートマッチングの回数の増大を抑制する（回数を削減する）ことができ、修正MV候補導出の負荷の増大を抑制することができる。
【０５２３】
＜方法＃１−３：テンプレートの間引きへの適用＞
次に、図３の方法＃１−３を適用する場合について説明する。方法＃１−３では、一部の画素を間引いたテンプレートを用いてテンプレートマッチングを行う。
【０５２４】
このようにすることにより、方法＃１−３を適用しない場合の同一サイズのテンプレートと比べて、画素数が低減するので、テンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができる。これにより、テンプレートマッチングに必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。
【０５２５】
また、この間引き率をカレントPUのサイズに応じて設定するようにする。これにより、ブロックサイズの増大に伴うテンプレートの画素数の増大（すなわち、演算量の増大）を抑制したり、小さいブロックサイズに対してもテンプレートの画素数が適切となるように制御したりすることができる。
【０５２６】
なお、この場合も、テンプレートの画素数の制御は、生成したテンプレートから画素を間引くようにしてもよいし、方法＃１−３を適用しない場合においてテンプレートに含められる隣接画素群の中の一部の画素をサンプリング（抽出）し、そのサンプリングした画素を用いてテンプレートを生成するようにしてもよい。
【０５２７】
また、この場合も、画素の間引き方（抽出（サンプリング）の仕方）は任意である。例えば、上部テンプレートは、列（カラム）毎に間引く（抽出する（サンプリングする））ようにし、左部テンプレートは、行（ライン）毎に間引く（抽出する（サンプリングする））ようにしてもよい。
【０５２８】
＜修正MV候補導出部＞
図４３は、図３４の修正MV候補導出部５０２の構成の一例を示すブロック図である。この場合の修正MV候補導出部５０２は、方法＃１−１および方法＃１−３を用いて修正MV候補の導出を行う。すなわち、修正MV候補導出部５０２は、粗い精度でテンプレートマッチングを行い、さらに、カレントPUのサイズに応じた間引き率（割合）で、テンプレートの一部の画素を間引く。
【０５２９】
この場合の修正MV候補導出部５０２は、図４３に示されるように、図３６の場合と同様に、第２MV精度探索MVリスト導出部５２１、MV候補リスト更新部５２２、およびテンプレートマッチング部５１１を有する。ただし、テンプレートマッチング部５１１は、図３６の場合の構成に加え、テンプレート間引き率導出部５５１を有する。
【０５３０】
＜テンプレート間引き率導出部＞
テンプレート間引き率導出部５５１は、テンプレート間引き率導出部１５１の場合と同様の手法により、カレントPUのサイズに応じて、上部テンプレートおよび左部テンプレートの間引き率を導出する。テンプレート間引き率導出部５５１は、導出したテンプレート間引き率をカレントPUテンプレート生成部５３１および探索点テンプレート生成部５３２に供給する。
【０５３１】
＜カレントPUテンプレート生成部＞
この場合、カレントPUテンプレート生成部５３１は、供給されたテンプレート間引き率を参照して、カレントPUのテンプレート（curTemplate）を生成する。カレントPUテンプレート生成部５３１は、生成したカレントPUのテンプレートをコスト算出部５３３に供給する。
【０５３２】
＜探索点テンプレート生成部＞
探索点テンプレート生成部５３２は、テンプレート間引き率導出部５５１から供給されたテンプレート間引き率を参照して、探索点（searchMVList[i]）の動き情報に対応するテンプレートを導出（生成）する。探索点テンプレート生成部５３２は、生成した探索点のテンプレートをコスト算出部５３３に供給する。
【０５３３】
＜コスト算出部＞
コスト算出部５３３は、以上のように生成されたテンプレート（一部の画素が間引かれたテンプレート）を用いてテンプレートマッチングを行う。したがって、テンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができる。つまり、テンプレートマッチングに必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。また、これにより、修正MV候補導出の負荷の増大を抑制することができる。つまり、修正MV候補導出に必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。
【０５３４】
＜修正MV候補導出処理の流れ＞
図４４および図４５のフローチャートを参照して、この場合（方法＃１−３（および方法＃１−１））の修正MV候補導出部５０２により、図３５のステップＳ５０２において実行される修正MV候補導出処理の流れの例を説明する。
【０５３５】
修正MV候補導出処理が開始されると、テンプレート間引き率導出部１５１は、ステップＳ５６１において、上部テンプレートおよび左部テンプレートのテンプレート間引き率を導出する。
【０５３６】
ステップＳ５６２において、カレントPUテンプレート生成部５３１は、ステップＳ５６１において導出されたテンプレート間引き率を参照して、カレントPUのテンプレート（curTemplate）を生成する。
【０５３７】
ステップＳ５６３において、第２MV精度探索MVリスト導出部５２１は、修正対象のMV候補を第１MV精度のMV候補リスト（MVCandList）から選択する（to-be-refined-mv = MVCandList[tgt_idx]）。
【０５３８】
ステップＳ５６４において、第２MV精度探索MVリスト導出部５２１は、修正対象のMV候補を初期位置とする1-pelMV精度の探索MVリスト（searchMVList）を設定する。
【０５３９】
ステップＳ５６５において、探索点テンプレート生成部５３２は、変数ｉに初期値（例えば「０」）をセットする。
【０５４０】
ステップＳ５６６において、探索点テンプレート生成部５３２は、ステップＳ５６１において導出されたテンプレート間引き率を参照して、探索MV（searchMVList[i]）の動き情報に対応するテンプレートを生成する。
【０５４１】
ステップＳ５６７において、コスト算出部５３３は、ステップＳ５６２において生成されたカレントPUのテンプレートと、ステップＳ５６６において生成された第２MV精度の探索点のテンプレートとに基づいて、コスト（CostList[i]）を導出する。つまり、コスト算出部５３３は、ステップＳ５６１において導出されたテンプレート間引き率を参照して生成されたテンプレート（テンプレート間引き率で画素が間引かれたテンプレート）を用いて、テンプレートマッチングを行い、コストを導出する。
【０５４２】
ステップＳ５６８において、探索点テンプレート生成部５３２は、変数ｉの値が、探索MVリスト（searchMVList）に含まれる探索MVの数を示す値（numSearchMV）よりも小さいか否かを判定する。変数ｉがその値（numSearchMV）よりも小さい（i < numSearchMV）と判定された場合、処理はステップＳ５６９に進む。
【０５４３】
ステップＳ５６９において、探索点テンプレート生成部５３２は、変数ｉをインクリメントする（変数ｉの値に「＋１」を加算する）。ステップＳ５６９の処理が終了すると処理はステップＳ５６６に戻り、それ以降の処理を繰り返す。
【０５４４】
つまり、ステップＳ５６６乃至ステップＳ５６９の各処理が、各探索MV（探索MVに対応するコスト（CostList[i]））について実行される。
【０５４５】
そして、ステップＳ５６８において、変数ｉが値（numSearchMV）以上である（i ≧ numSearchMV）と判定された場合、処理は図４５のステップＳ５７１に進む。
【０５４６】
ステップＳ５７１においてMV候補リスト更新部５２２は、コストリスト（CostList）を参照して、探索点（searchPoints[i]）の中でコストが最小となる探索点（best_pos）を検索し、その動き情報を修正MV候補とする（refined-mv = to-be-refined-mv + offsetList[best_pos]）。
【０５４７】
ステップＳ５７２において、MV候補リスト更新部５２２は、修正MV候補と同じ動きベクトル情報がMV候補リストに存在しない場合、修正MV候補をMV候補リストへ追加する（numRefinedMV++）。
【０５４８】
ステップＳ５７３において、MV候補リスト更新部５２２は、次のMV候補の補正処理へ移るか否かを判定する。次のMV候補の補正処理へ進むと判定された場合、処理は、図４４のステップＳ５６３に戻る。また、図４５のステップＳ５７３において、次のMV候補の補正処理へ移らないと判定された場合、修正MV候補導出処理が終了する。
【０５４９】
以上のように、修正MV候補導出処理を行うことにより、修正MV候補導出部５０２は、テンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができ、修正MV候補導出の負荷の増大を抑制することができる。
【０５５０】
＜方法＃１−４：修正MV候補導出部への適用＞
次に、図３の方法＃１−４を適用する場合について説明する。図４６は、図３４の修正MV候補導出部５０２の構成の一例を示すブロック図である。この場合の修正MV候補導出部５０２は、方法＃１−１および方法＃１−４を用いて修正MV候補導出を行う。すなわち、修正MV候補導出部５０２は、粗い精度でテンプレートマッチングを行い、さらに、カレントPUの位置に応じてテンプレートサイズを制御する。
【０５５１】
この場合の修正MV候補導出部５０２は、図４６に示されるように、図３６の場合と同様に、第２MV精度探索MVリスト導出部５２１、MV候補リスト更新部５２２、およびテンプレートマッチング部５１１を有する。ただし、テンプレートマッチング部５１１は、図３６の場合の構成に加え、テンプレートサイズ設定部５６１を有する。
【０５５２】
＜テンプレートサイズ設定部＞
テンプレートサイズ設定部５６１は、上部テンプレートおよび左部テンプレートのサイズ（テンプレートサイズ）を設定する。カレントCTUを符号化・復号するために必要な隣接復号済画素群（ラインバッファ）を削減することにより、ハードウエアの回路規模を削減することができる。そこで、テンプレートサイズ設定部５６１は、復号済画素を保持するCTUレベルのラインバッファのサイズを削減するために、テンプレートサイズ設定部１６１の場合と同様に手法により、CTU内におけるカレントPUの位置に応じて、テンプレートサイズを設定するようにする。この場合もtemplateSize1およびtemplateSize2の値は、templateSize1<templateSize2の関係を有する限り、任意である。
【０５５３】
同様に、イントラ予測の参照画素領域のサイズも、CTU内におけるカレントPUの位置に応じて決定するようにしてもよい。このようにすることにより、イントラ予測の参照画素領域の保持に用いられるラインバッファの増大を抑制する（ラインバッファを削減する）ことができる。
【０５５４】
テンプレートサイズ設定部５６１は、以上のように設定したテンプレートサイズの情報をカレントPUテンプレート生成部５３１および探索点テンプレート生成部５３２に供給する。
【０５５５】
＜カレントPUテンプレート生成部＞
カレントPUテンプレート生成部５３１は、テンプレートサイズ設定部５６１から供給されたテンプレートサイズを参照して、カレントPUのテンプレートを生成する。カレントPUテンプレート生成部５３１は、生成したカレントPUのテンプレートをコスト算出部５３３に供給する。
【０５５６】
＜探索点テンプレート生成部＞
探索点テンプレート生成部５３２は、第２MV精度探索MVリスト導出部５２１により導出された第２MV精度の探索MVリストと、ピクチャバッファから復号済みの画素値と、テンプレートサイズ設定部５６１から供給されたテンプレートサイズを取得し、それらに基づいて、探索MVのテンプレートを導出（生成）する。探索点テンプレート生成部５３２は、生成した探索MVのテンプレートをコスト算出部５３３に供給する。
【０５５７】
＜コスト算出部＞
コスト算出部５３３は、以上のように生成されたテンプレート（カレントPUの位置に応じてテンプレートサイズが制御されたテンプレート）を用いてテンプレートマッチングを行う。したがって、テンプレート生成に使用する復号済み画素の増大を抑制する（テンプレート生成に使用する復号済み画素を削減する）ことができる。つまり、その復号済み画素を記憶（保持）するラインバッファのサイズの増大を抑制する（ラインバッファサイズを削減する）ことができる。つまり、テンプレートマッチングの負荷の増大を抑制することができる。また、これにより、修正MV候補の導出の負荷の増大を抑制することができる。
【０５５８】
＜修正MV候補導出処理の流れ＞
図４７および図４８のフローチャートを参照して、この場合（方法＃１−４（および方法＃１−１））の修正MV候補導出部５０２により、図３５のステップＳ５０２において実行される修正MV候補導出処理の流れの例を説明する。
【０５５９】
修正MV候補導出処理が開始されると、テンプレートサイズ設定部５６１は、ステップＳ５８１において、上部テンプレートおよび左部テンプレートのテンプレートサイズを設定する。
【０５６０】
ステップＳ５８２において、カレントPUテンプレート生成部５３１は、ステップＳ５８１において設定されたテンプレートサイズを参照して、カレントPUのテンプレート（curTemplate）を生成する。
【０５６１】
ステップＳ５８３において、第２MV精度探索MVリスト導出部５２１は、修正対象のMV候補を第１MV精度のMV候補リスト（MVCandList）から選択する（to-be-refined-mv = MVCandList[tgt_idx]）。
【０５６２】
ステップＳ５８４において、第２MV精度探索MVリスト導出部５２１は、修正対象のMV候補を初期位置とする1-pelMV精度の探索MVリスト（searchMVList）を設定する。
【０５６３】
ステップＳ５８５において、探索点テンプレート生成部５３２は、変数ｉに初期値（例えば「０」）をセットする。
【０５６４】
ステップＳ５８６において、探索点テンプレート生成部５３２は、ステップＳ５８１において導出されたテンプレートサイズを参照して、探索MV（searchMVList[i]）の動き情報に対応するテンプレートを生成する。
【０５６５】
ステップＳ５８７において、コスト算出部５３３は、ステップＳ５８２において生成されたカレントPUのテンプレートと、ステップＳ５８６において生成された探索点（searchPoints[i]）に対応するテンプレートとから、コスト（CostList[i]）を導出する。つまり、コスト算出部５３３は、ステップＳ５８１において設定されたテンプレートサイズ（カレントPUの位置に応じて設定されたテンプレートサイズ）のテンプレートを用いて、テンプレートマッチングを行い、コストを導出する。
【０５６６】
ステップＳ５８８において、探索点テンプレート生成部５３２は、変数ｉの値が、探索MVリストに含まれる探索MVの数を示す値（numSearchMV）よりも小さいか否かを判定する。変数ｉがその値（numSearchMV）よりも小さい（i < numSearchMV）と判定された場合、処理はステップＳ５８９に進む。
【０５６７】
ステップＳ５８９において、探索点テンプレート生成部５３２は、変数ｉをインクリメントする（変数ｉの値に「＋１」を加算する）。ステップＳ５８９の処理が終了すると処理はステップＳ５８６に戻り、それ以降の処理を繰り返す。つまり、ステップＳ５８６乃至ステップＳ５８９の各処理が、各探索MV（各探索MVに対応するコスト（CostList[i]））について実行される。
【０５６８】
そして、ステップＳ５８７において、変数ｉが値（numSearchMV）以上である（i ≧ numSearchMV）と判定された場合、処理は図４８のステップＳ５９１に進む。
【０５６９】
図４８のステップＳ５９１において、MV候補リスト更新部５２２は、探索点（searchPoints[i]）の中でコストが最小となる探索点（best_pos）の動き情報を修正MV候補とする（refined-mv = to-be-refined-mv + offsetList[best_pos]）。
【０５７０】
ステップＳ５９２において、MV候補リスト更新部５２２は、修正MV候補と同じ動きベクトル情報がMV候補リストに存在しない場合、修正MV候補をMV候補リストへ追加する（numRefinedMV++）。
【０５７１】
ステップＳ５９３において、MV候補リスト更新部５２２は、次のMV候補の補正処理へ移るか否かを判定する。次のMV候補の補正処理へ進むと判定された場合、処理は、図４７のステップＳ５８３に戻る。また、図４８のステップＳ５９３において、次のMV候補の補正処理へ移らないと判定された場合、修正MV候補導出処理が終了する。
【０５７２】
以上のように、修正MV候補導出処理を行うことにより、修正MV候補導出部５０２は、テンプレートマッチングに用いられるラインバッファのサイズの増大を抑制する（ラインバッファサイズを削減する）ことができ、修正MV候補導出の負荷の増大を抑制することができる。
【０５７３】
＜方法＃１−５：修正MV候補導出部への適用＞
次に、図３の方法＃１−５を適用する場合について説明する。図４９は、図３４の修正MV候補導出部５０２の構成の一例を示すブロック図である。この場合の修正MV候補導出部５０２は、方法＃１−１および方法＃１−５を用いて修正MV候補の導出を行う。すなわち、修正MV候補導出部５０２は、粗い精度でテンプレートマッチングを行い、さらに、カレントPUのサイズが小さい場合、修正MV候補導出処理をスキップ（省略）する。
【０５７４】
この場合の修正MV候補導出部５０２は、図４９に示されるように、図３６の場合の構成（第２MV精度探索MVリスト導出部５２１、MV候補リスト更新部５２２、およびテンプレートマッチング部５１１）に加え、ブロックサイズ判定部５７１を有する。
【０５７５】
＜ブロックサイズ判定部＞
ブロックサイズ判定部５７１は、ブロックサイズ判定部１７１と同様の手法により、カレントPUのブロックサイズを判定する。例えば、ブロックサイズ判定部５７１は、カレントPUのブロックサイズを示す情報に基づいて、そのカレントPUのブロックサイズが所定の閾値より小さいか否かを判定する。そして、カレントPUのブロックサイズが所定の閾値より小さいと判定された場合、ブロックサイズ判定部５７１は、第２MV精度探索MVリスト導出部５２１、テンプレートマッチング部５１１、およびMV候補リスト更新部５２２を制御し、それぞれの処理をスキップ（省略）させる。つまり、修正MV候補導出処理をスキップ（省略）させる。
【０５７６】
カレントPUのブロックサイズが小さいと、テンプレートマッチングの際に隣接復号済画素群や参照ピクチャへのアクセス回数が増大し、処理に必要なメモリバンドが増大するおそれがあった。そこで、修正MV候補導出部５０２は、カレントPUのサイズが所定ブロックサイズより小さい場合、テンプレートマッチングによる修正MV候補の導出処理を省略する。このように制御することにより、処理に必要なメモリバンドの増大を抑制することができる。つまり、テンプレートマッチングや修正MV候補導出の負荷の増大を抑制することができる。
【０５７７】
＜MV候補リスト導出処理の流れ＞
図５０のフローチャートを参照して、この場合のMV候補リスト導出装置１００により実行されるMV候補リスト導出処理の流れの例を説明する。
【０５７８】
MV候補リスト導出処理が開始されると、第１MV精度MV候補リスト導出部１０１は、ステップＳ６０１において、カレントPUに対する第１MV精度のMV候補リスト（MVCandList）を導出（生成）する。なお、その際、第１MV精度MV候補リスト導出部１０１は、その第１MV精度のMV候補リストに含まれるMV候補の数を示す情報（numMVCand）を導出（生成）する。
【０５７９】
ステップＳ６０２において、ブロックサイズ判定部５７１は、カレントPUのブロックサイズを示す情報に基づいて、カレントPUのサイズが所定の閾値より小さいか否かを判定する。カレントPUのサイズが所定の閾値より小さくない（閾値以上である）と判定された場合、ブロックサイズ判定部１７１は、修正MV候補導出処理が行われるように制御する。すなわち、処理はステップＳ６０３に進む。
【０５８０】
ステップＳ６０３において、修正MV候補導出部５０２（第２MV精度探索MVリスト導出部５２１、テンプレートマッチング部５１１、およびMV候補リスト更新部５２２）は、テンプレートマッチングに基づいて修正MV候補を導出し、その修正MV候補を用いて、ステップＳ６０１において導出された第１MV精度のMV候補リストを更新し、更新後のMV候補リスト（MVCandList'）を導出（生成）する。
【０５８１】
ステップＳ６０３の処理が終了すると、MV候補リスト導出処理が終了する。
【０５８２】
また、ステップＳ６０２において、カレントPUのサイズが所定の閾値より小さいと判定された場合、ブロックサイズ判定部５７１は、修正MV候補導出処理をスキップ（省略）するように制御する。すなわち、ステップＳ６０３の処理はスキップ（省略）されてMV候補リスト導出処理が終了する。
【０５８３】
以上のように各ステップの処理を実行することにより、処理に必要なメモリバンドの増大を抑制することができ、テンプレートマッチングやMV候補リストの更新処理の負荷の増大を抑制することができる。
【０５８４】
＜方法＃１−６：修正MV候補導出部への適用＞
次に、図３の方法＃１−６を適用する場合について説明する。図５１は、図３４の修正MV候補導出部５０２の構成の一例を示すブロック図である。この場合の修正MV候補導出部５０２は、方法＃１−１および方法＃１−６を用いて修正MV候補の導出を行う。すなわち、修正MV候補導出部５０２は、粗い精度でテンプレートマッチングを行い、さらに、複数予測を行うMV候補に対して、予測数を削減し、単予測によるテンプレートマッチングを行う。
【０５８５】
この場合の修正MV候補導出部５０２は、図５１に示されるように、図３６の場合と同様に、第２MV精度探索MVリスト導出部５２１、MV候補リスト更新部５２２、およびテンプレートマッチング部５１１を有する。ただし、テンプレートマッチング部５１１は、図３６の場合の構成に加え、参照LX予測設定部５８１を有する。
【０５８６】
＜参照LX予測設定部＞
参照LX予測設定部５８１は、参照LX予測設定部１８１の場合と同様の手法により、第２のMV精度の探索MV（searchMVList[i]）の動きベクトル情報を参照して、テンプレート生成に用いる参照LX予測を設定する。参照LX予測設定部５８１は、設定した参照LX予測を示す情報を、探索点テンプレート生成部５３２およびコスト算出部５３３に供給する。
【０５８７】
＜探索点テンプレート生成部＞
探索点テンプレート生成部５３２は、参照LX予測設定部５８１から供給される参照LX予測に対応するテンプレートを生成し、生成した参照ブロックのテンプレートをコスト算出部５３３に供給する。
【０５８８】
＜コスト算出部＞
コスト算出部５３３は、カレントPUテンプレート生成部５３１により生成されたカレントPUのテンプレートと、探索点テンプレート生成部５３２により生成された参照LX予測に対応するテンプレートとのテンプレートマッチングを行い、コスト（CostList[i]）を導出（算出）する。
【０５８９】
以上のようにすることにより、MV候補が双予測である場合、実際に生成するテンプレートを、L0予測、または、L1予測のいずれか一方へ制限することができる。したがって、双予測のMV候補に関するテンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができる。つまり、テンプレートマッチングに必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。また、これにより、修正MV候補の導出の負荷の増大を抑制することができる。つまり、修正MV候補の導出に必要なハードウエアコストの増大、処理時間の増大、消費電力の増大等を抑制することができる。
【０５９０】
＜修正MV候補導出処理の流れ＞
図５２および図５３のフローチャートを参照して、この場合（方法＃１−６（および方法＃１−１））の修正MV候補導出部５０２により、図３５のステップＳ５０２において実行される修正MV候補導出処理の流れの例を説明する。
【０５９１】
修正MV候補導出処理が開始されると、カレントPUテンプレート生成部５３１は、ステップＳ６１１において、カレントPUのテンプレート（curTemplate）を生成する。
【０５９２】
ステップＳ６１２において、第２MV精度探索MVリスト導出部５２１は、修正対象のMV候補を第１MV精度のMV候補リスト（MVCandList）から選択する（to-be-refined-mv = MVCandList[tgt_idx]）。
【０５９３】
ステップＳ６１３において、第２MV精度探索MVリスト導出部５２１は、修正対象のMV候補を初期位置とする1-pelMV精度の探索MVリスト（searchMVList）を設定する。
【０５９４】
ステップＳ６１４において、探索点テンプレート生成部５３２は、変数ｉに初期値（例えば「０」）をセットする。
【０５９５】
ステップＳ６１５において、参照LX予測設定部５８１は、探索MV（searchMVList[i]）の動き情報を参照して、テンプレートに用いる参照LX予測を設定する。
【０５９６】
ステップＳ６１６において、探索点テンプレート生成部５３２は、ステップＳ６１５において設定された参照LX予測に対応するテンプレートを生成する。
【０５９７】
ステップＳ６１７において、コスト算出部５３３は、ステップＳ６１１において生成されたカレントPUのテンプレートと、ステップＳ６１６において生成された参照LX予測に対応するテンプレートとに基づいて、コスト（CostList[i]）を導出する。つまり、コスト算出部５３３は、それらのテンプレートを用いて、テンプレートマッチングを行い、コストを導出する。
【０５９８】
ステップＳ６１８において、探索点テンプレート生成部５３２は、変数ｉの値が、探索MVリスト（searchMVList）に含まれる探索点の数を示す値（numSearchMV）よりも小さいか否かを判定する。変数ｉがその値（numSearchMV）よりも小さい（i < numSearchMV）と判定された場合、処理はステップＳ６１９に進む。
【０５９９】
ステップＳ６１９において、探索点テンプレート生成部５３２は、変数ｉをインクリメントする（変数ｉの値に「＋１」を加算する）。ステップＳ６１９の処理が終了すると処理はステップＳ６１５に戻り、それ以降の処理を繰り返す。
【０６００】
つまり、ステップＳ６１５乃至ステップＳ６１９の各処理が、各探索MVに対応するコスト（CostList[i]）について実行される。
【０６０１】
そして、ステップＳ６１８において、変数ｉが値（numSearchMV）以上である（i ≧ numSearchMV）と判定された場合、処理は図５３のステップＳ６２１に進む。
【０６０２】
ステップＳ６２１において、MV候補リスト更新部５２２は、探索点（searchPoints[i]）の中でコストが最小となる探索点（base_pos）の動き情報を修正MV候補とする（refined-mv = to-be-refined-mv + offsetList[best_pos]）。
【０６０３】
ステップＳ６２２において、MV候補リスト更新部５２２は、修正MV候補と同じ動きベクトル情報がMV候補リストに存在しない場合、修正MV候補をMV候補リストへ追加する（numRefinedMV++）。
【０６０４】
ステップＳ６２３において、MV候補リスト更新部５２２は、次のMV候補の補正処理へ移るか否かを判定する。次のMV候補の補正処理へ進むと判定された場合、処理は、図５２のステップＳ６１２に戻る。また、図５３のステップＳ６２３において、次のMV候補の補正処理へ移らないと判定された場合、修正MV候補導出処理が終了する。
【０６０５】
以上のように、修正MV候補導出処理を行うことにより、修正MV候補導出部５０２は、テンプレートマッチングの演算量の増大を抑制する（演算量を削減する）ことができ、MV候補リストの更新処理の負荷の増大を抑制することができる。
【０６０６】
＜画像符号化装置への適用＞
なお、本実施の形態において説明した本技術の場合も、第１の実施の形態の場合と同様に、任意の装置やデバイス等に適用することができる。例えば、上述した画像符号化装置３００に適用するようにしてもよい。例えば、画像符号化装置３００において予測部３２２が動きベクトル符号化を行い、その際MV候補リスト導出部３３１が、方法＃１−１乃至方法１−６の内少なくともいずれか１つを適用したテンプレートマッチングを行って修正MV候補を導出し、その修正MV候補を用いてMV候補リストを更新するようにしてもよい。
【０６０７】
予測部３２２は、その更新後のMV候補リストを用いて動きベクトルの符号化を行う。つまり、予測部３２２は、インター予測を行って予測画像を生成し、修正動きベクトル候補を用いて更新された動きベクトル候補リストを用いて、その予測画像の生成に用いられる動きベクトルを符号化する。
【０６０８】
このようにすることにより、修正MV候補導出処理において行われるテンプレートマッチングを簡略化することができる。したがって、予測部３２２は、動きベクトルの符号化の負荷の増大を抑制する（負荷を低減させる）ことができる。
【０６０９】
＜画像復号装置への適用＞
同様に、本実施の形態において説明した本技術の場合も、上述した画像復号装置４００に適用するようにしてもよい。例えば、画像復号装置４００において予測部４１９が動きベクトルの復元を行い、その際MV候補リスト導出部４３１が、方法＃１−１乃至方法１−６の内少なくともいずれか１つを適用したテンプレートマッチングを行って修正MV候補を導出し、その修正MV候補を用いてMV候補リストを更新するようにしてもよい。
【０６１０】
予測部４１９は、その更新後のMV候補リストを用いて動きベクトルの復元を行う。つまり、予測部４１９は、修正動きベクトル候補を用いて更新された動きベクトル候補リストを用いて、予測画像の生成に用いられる動きベクトルを復元する。
【０６１１】
このようにすることにより、修正MV候補導出処理において行われるテンプレートマッチングを簡略化することができる。したがって、予測部４１９は、動きベクトルの復元の負荷の増大を抑制する（負荷を低減させる）ことができる。
【０６１２】
＜組み合わせ＞
なお、第１の実施の形態において説明したMV候補リストの並び替えと、第４の実施の形態において説明した修正MV候補の導出との両方を行うようにしてもよい。例えば、図４や図３４に示される、第１MV精度MV候補リスト導出部１０１、MV候補リスト並び替え部１０２、修正MV候補導出部５０２を互いに直列に接続し、第１MV精度MV候補リスト導出部１０１が第１MV精度のMV候補リストを導出し、MV候補リスト並び替え部１０２がそのMV候補リストを並び替え、さらに、修正MV候補導出部５０２がその並び替え後のMV候補リストについて、修正MV候補を導出し、更新するようにしてもよい。
【０６１３】
＜６．第５の実施の形態＞
＜差分動きベクトルの符号（sign）導出への適用＞
本技術は、さらに上述した例以外の他の装置にも適用することができる。例えば、非特許文献７においては、ｘ方向およびｙ方向の絶対値と、符号（sign）の組み合わせによって差分動きベクトルをシグナリングし、その符号（sign）の組み合わせを導出するために、符号の組み合わせの各候補のコストをテンプレートマッチングで導出し、各候補をコスト順に並べてリスト化し、その候補リストの中から選択する手法が提案された（図５４）。
【０６１４】
このような処理においても、上述した本技術を適用し、テンプレートマッチングを簡略化することができる。
【０６１５】
＜動きベクトル導出処理の流れ＞
このような場合に実行される動きベクトル導出処理の流れの例を、図５５のフローチャートを参照して説明する。
【０６１６】
復号済動き情報とLX予測の参照ピクチャインデックス（ref_idx_lx）とからAMVP（Adaptive Motion Vector Prediction）予測動きベクトル候補リストを構築する（ステップＳ７０１）。
【０６１７】
AMVP予測動きベクトルリスト（AMVPCandList）からmvp_lx_idxで指定される動きベクトルをLX予測の予測動きベクトル（LX_MVP）とする（ステップＳ７０２）。
【０６１８】
LX予測の差分動きベクトルの絶対値（AbsMVD_LX）から差分動きベクトルの候補リスト（LXMVDCandList）を生成する（ステップＳ７０３）。
【０６１９】
LX予測の予測動きベクトルと、各LX差分動きベクトル候補（LXMVDCandList[i]）とに基づいて、テンプレートマッチングを行い、コストを取得する（ステップＳ７０４）。
【０６２０】
LX差分動きベクトル候補をコスト順にソートしたリスト（SortedLXMVDCandList）を求める（ステップＳ７０５）。
【０６２１】
ソート済みLX差分動きベクトル候補リストからLX_MVD候補インデックス（mvds_lx_idx）で指定されるMVD候補をLX予測の差分動きベクトル（LX_MVD）とする（ステップＳ７０６）。
【０６２２】
求めたLX予測の差分動きベクトル（LX_MVD）とLX予測の動きベクトル（LX_MVP）とから、LX予測の動きベクトル（LX_MV）を設定する（LX_MV = (ref_idx_lx, LX_MVP + LX_MVD)）（ステップＳ７０７）。
【０６２３】
以上のような処理において、ステップＳ７０４の処理に、上述した本技術を適用し、テンプレートマッチングを簡略化する。このようにすることにより、テンプレートマッチングの負荷の増大を抑制することができる。つまり、差分動きベクトルの導出の負荷の増大を抑制することができる。
【０６２４】
＜７．付記＞
＜コンピュータ＞
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
【０６２５】
図５６は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０６２６】
図５６に示されるコンピュータ８００において、CPU（Central Processing Unit）８０１、ROM（Read Only Memory）８０２、RAM（Random Access Memory）８０３は、バス８０４を介して相互に接続されている。
【０６２７】
バス８０４にはまた、入出力インタフェース８１０も接続されている。入出力インタフェース８１０には、入力部８１１、出力部８１２、記憶部８１３、通信部８１４、およびドライブ８１５が接続されている。
【０６２８】
入力部８１１は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部８１２は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部８１３は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部８１４は、例えば、ネットワークインタフェースよりなる。ドライブ８１５は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア８２１を駆動する。
【０６２９】
以上のように構成されるコンピュータでは、CPU８０１が、例えば、記憶部８１３に記憶されているプログラムを、入出力インタフェース８１０およびバス８０４を介して、RAM８０３にロードして実行することにより、上述した一連の処理が行われる。RAM８０３にはまた、CPU８０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０６３０】
コンピュータ（CPU８０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア８２１に記録して適用することができる。その場合、プログラムは、リムーバブルメディア８２１をドライブ８１５に装着することにより、入出力インタフェース８１０を介して、記憶部８１３にインストールすることができる。
【０６３１】
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部８１４で受信し、記憶部８１３にインストールすることができる。
【０６３２】
その他、このプログラムは、ROM８０２や記憶部８１３に、あらかじめインストールしておくこともできる。
【０６３３】
＜情報・処理の単位＞
以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU（Transform Unit）、TB(Transform Block)、PU（Prediction Unit）、PB(Prediction Block)、CU（Coding Unit）、LCU（Largest Coding Unit）、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
【０６３４】
＜制御情報＞
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可（または禁止）するか否かを制御する制御情報（例えばenabled_flag）を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象（または適用しない対象）を示す制御情報を伝送するようにしてもよい。例えば、本技術を適用する（または、適用を許可若しくは禁止する）ブロックサイズ（上限若しくは下限、またはその両方）、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
【０６３５】
＜本技術の適用対象＞
本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換（逆変換）、量子化（逆量子化）、符号化（復号）、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
【０６３６】
また本技術は、複数の視点（ビュー（view））の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点（ビュー（view））の符号化・復号において、本技術を適用するようにすればよい。
【０６３７】
さらに本技術は、所定のパラメータについてスケーラビリティ（scalability）機能を有するように複数レイヤ化（階層化）された階層画像の符号化・復号を行う階層画像符号化（スケーラブル符号化）・復号システムに適用することができる。その場合、各階層（レイヤ）の符号化・復号において、本技術を適用するようにすればよい。
【０６３８】
上述した実施の形態に係る画像処理装置、画像符号化装置、および画像復号装置は、例えば、衛星放送、ケーブルＴＶなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機（例えばテレビジョン受像機や携帯電話機）、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置（例えばハードディスクレコーダやカメラ）などの、様々な電子機器に応用され得る。
【０６３９】
また、本技術は、任意の装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI（Large Scale Integration）等としてのプロセッサ（例えばビデオプロセッサ）、複数のプロセッサ等を用いるモジュール（例えばビデオモジュール）、複数のモジュール等を用いるユニット（例えばビデオユニット）、ユニットにさらにその他の機能を付加したセット（例えばビデオセット）等（すなわち、装置の一部の構成）として実施することもできる。
【０６４０】
さらに、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、コンピュータ、AV（Audio Visual）機器、携帯型情報処理端末、IoT（Internet of Things）デバイス等の任意の端末に対して、画像（動画像）に関するサービスを提供するクラウドサービスに適用することもできる。
【０６４１】
なお、本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
【０６４２】
例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
【０６４３】
＜その他＞
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の２状態を識別する際に用いる情報だけでなく、３以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の２値であってもよいし、３値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報（フラグも含む）は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
【０６４４】
また、符号化データ（ビットストリーム）に関する各種情報（メタデータ等）は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る（リンクさせ得る）ようにすることを意味する。つまり、互いに関連付けられたデータは、１つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ（画像）に関連付けられた情報は、その符号化データ（画像）とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ（画像）に関連付けられた情報は、その符号化データ（画像）とは別の記録媒体（または同一の記録媒体の別の記録エリア）に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、１フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
【０６４５】
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを１つのデータにまとめるといった、複数の物を１つにまとめることを意味し、上述の「関連付ける」の１つの方法を意味する。
【０６４６】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０６４７】
また、例えば、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または各処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または他の処理部）の構成に含めるようにしてもよい。
【０６４８】
なお、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０６４９】
また、例えば、本技術は、１つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０６５０】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能（機能ブロック等）を有し、必要な情報を得ることができるようにすればよい。
【０６５１】
また、例えば、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、１つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を１つのステップとしてまとめて実行することもできる。
【０６５２】
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【０６５３】
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【符号の説明】
【０６５４】
１００  MV候補リスト導出装置，  １０１  第１MV精度MV候補リスト導出部，  １０２  MV候補リスト並び替え部，  １１１  テンプレートマッチング部，  １２１  第２MV精度MV候補リスト導出部，  １２２  MV候補リスト並び替え部，  １３１  カレントPUテンプレート生成部，  １３２  参照ブロックテンプレート生成部，  １３３  コスト算出部，  １４１  重複MV検出部，  １５１  テンプレート間引き率導出部，  １６１  テンプレートサイズ設定部，  １７１  ブロックサイズ判定部，  １８１  参照LX予測設定部，  ３００  画像符号化装置，  ３２２  予測部，  ３３１  MV候補リスト導出部，  ４００  画像復号装置，  ４１９  予測部，  ４３１  MV候補リスト導出部，  ５０２  修正MV候補導出部，  ５１１  テンプレートマッチング部，  ５２１  第２MV精度探索MVリスト導出部，  ５２２  MV候補リスト更新部，  ５３１  カレントPUテンプレート生成部，  ５３２  探索点テンプレート生成部，  ５３３  コスト算出部，  ５４１  重複MV検出部，  ５５１  テンプレート間引き率導出部，  ５６１  テンプレートサイズ設定部，  ５７１  ブロックサイズ判定部，  ５８１  参照LX予測設定部
【図１】
2019244669.tif 000025
【図２】
2019244669.tif 000026
【図３】
2019244669.tif 000027
【図４】
2019244669.tif 000028
【図５】
2019244669.tif 000029
【図６】
2019244669.tif 000030
【図７】
2019244669.tif 000031
【図８】
2019244669.tif 000032
【図９】
2019244669.tif 000033
【図１０】
2019244669.tif 000034
【図１１】
2019244669.tif 000035
【図１２】
2019244669.tif 000036
【図１３】
2019244669.tif 000037
【図１４】
2019244669.tif 000038
【図１５】
2019244669.tif 000039
【図１６】
2019244669.tif 000040
【図１７】
2019244669.tif 000041
【図１８】
2019244669.tif 000042
【図１９】
2019244669.tif 000043
【図２０】
2019244669.tif 000044
【図２１】
2019244669.tif 000045
【図２２】
2019244669.tif 000046
【図２３】
2019244669.tif 000047
【図２４】
2019244669.tif 000048
【図２５】
2019244669.tif 000049
【図２６】
2019244669.tif 000050
【図２７】
2019244669.tif 000051
【図２８】
2019244669.tif 000052
【図２９】
2019244669.tif 000053
【図３０】
2019244669.tif 000054
【図３１】
2019244669.tif 000055
【図３２】
2019244669.tif 000056
【図３３】
2019244669.tif 000057
【図３４】
2019244669.tif 000058
【図３５】
2019244669.tif 000059
【図３６】
2019244669.tif 000060
【図３７】
2019244669.tif 000061
【図３８】
2019244669.tif 000062
【図３９】
2019244669.tif 000063
【図４０】
2019244669.tif 000064
【図４１】
2019244669.tif 000065
【図４２】
2019244669.tif 000066
【図４３】
2019244669.tif 000067
【図４４】
2019244669.tif 000068
【図４５】
2019244669.tif 000069
【図４６】
2019244669.tif 000070
【図４７】
2019244669.tif 000071
【図４８】
2019244669.tif 000072
【図４９】
2019244669.tif 000073
【図５０】
2019244669.tif 000074
【図５１】
2019244669.tif 000075
【図５２】
2019244669.tif 000076
【図５３】
2019244669.tif 000077
【図５４】
2019244669.tif 000078
【図５５】
2019244669.tif 000079
【図５６】
2019244669.tif 000080
【国際調査報告】
2019244669.tif 000081
2019244669.tif 000082
2019244669.tif 000083
2019244669.tif 000084