(57)【要約】【課題】高予測性能を維持しつつ安定レートでＭＥ計算複雑性を減少する動き推定装置の提供。【解決手段】予測対象フレームＦ（０）内の予測対象ブロックＢ０に対し、過去方向フレームＦ（−）内又は未来方向フレームＦ（＋）内の探索領域内で、Ｂ０に最近似の参照ブロックＲＢを探索するブロック探索手段２６、Ｂ０に対しＦ（−），Ｆ（＋）内の探索中心ＳＣを設定する探索中心設定手段２４、及びＦ（−），Ｆ（＋）内のＳＣの周りに探索領域ＳＲの設定を行う探索領域設定手段２５を備え、探索領域設定手段２５は、Ｆ（０）がＰフレームの場合、Ｂ０に対し、相対的大サイズのＳＲ．Ｌ又は相対的小サイズのＳＲ．Ｓを設定し、かつ、隣接する２つのＢ０間で、ＳＲ．ＬとＳＲ．Ｓとの割り当てを逐次切り替え、探索中心設定手段２４は、ＳＲ．Ｓの割当フレームに対しＭＶＰで特定される位置をＳＣに設定する。【選択図】図７
2014150467.tif 000002
【特許請求の範囲】
【請求項１】
時間順に並ぶ複数のフレームで構成された動画像において、前記フレームのうち動きベクトルの予測を行うフレームを予測対象フレームＦ（０）とするとき、該予測対象フレームＦ（０）内を区画して設定される画素ブロックの各々を、順次、動きベクトルの予測を行う予測対象ブロックとし、該予測対象ブロックに対する動きベクトルの推定を行う動き推定装置であって、
前記予測対象フレームＦ（０）内の前記予測対象ブロックに対して、前記予測対象フレームＦ（０）に対し過去方向のフレームＦ（−）内の所定の探索領域内又は未来方向のフレームＦ（＋）内の所定の探索領域内で、前記予測対象ブロックに最も近似する参照ブロックを探索するブロック探索手段と、
前記予測対象ブロックに対し、前記ブロック探索手段が前記フレームＦ（−），Ｆ（＋）内で探索を行う際の探索中心を設定する探索中心設定手段と、
前記予測対象ブロックに対し、前記フレームＦ（−），Ｆ（＋）内の前記探索中心の周りに前記探索領域の設定を行う探索領域設定手段と、を備え、
前記探索領域設定手段は、前記予測対象フレームＦ（０）が片方向予測フレームの場合、前記予測対象ブロックに対し、前記フレームＦ（−）に、相対的にサイズの大きい探索領域ＳＲ．Ｌ又は相対的にサイズの小さい探索領域ＳＲ．Ｓを設定するものであり、
さらに前記探索領域設定手段は、隣接する２つの前記予測対象ブロックの間で、前記探索領域ＳＲ．Ｌと前記探索領域ＳＲ．Ｓとの割り当てを逐次切り替えるものであり、
前記探索中心設定手段は、少なくとも前記探索領域設定手段により前記探索領域ＳＲ．Ｓが割り当てられる前記フレームに対しては、前記予測対象フレームＦ（０）内で先に動きベクトルが予測された画素ブロックにおける動きベクトルから算出される動きベクトル予測値によって特定される位置を、前記探索中心として設定することを特徴とする動き推定装置。
【請求項２】
前記探索領域設定手段は、前記予測対象フレームＦ（０）が双方向予測フレームの場合、前記予測対象ブロックに対し、前記フレームＦ（−），Ｆ（＋）の何れか一方に、前記探索領域ＳＲ．Ｌを設定し、他方に、前記探索領域ＳＲ．Ｓを設定するものであり、
さらに前記探索領域設定手段は、隣接する２つの予測対象ブロックの間で、前記探索領域ＳＲ．Ｌ，ＳＲ．Ｓの前記フレームＦ（−），Ｆ（＋）への割り当てを逐次切り替えることを特徴とする請求項１記載の動き推定装置。
【請求項３】
前記予測対象フレームＦ（０）内の前記画素ブロックを、奇数番目の画素ブロックとそれに隣接する偶数番目の画素ブロックとのペアであるブロックペアの単位に分割し、前記予測対象ブロックを含む前記ブロックペアを予測対象ブロックペアとするとき、
前記探索領域設定手段は、前記予測対象フレームＦ（０）が双方向予測フレームの場合、前記予測対象ブロックペア内の前記各予測対象ブロックのうちの何れか一方の予測対象ブロックに対しては、前記フレームＦ（−），Ｆ（＋）の両方に前記探索領域ＳＲ．Ｓを設定し、
他方の予測対象ブロックに対しては、前記フレームＦ（−），Ｆ（＋）の一方に前記探索領域ＳＲ．Ｌ、他方に前記探索領域ＳＲ．Ｓを設定するものであり、
さらに前記探索領域設定手段は、前記予測対象ブロックペア内で前記探索領域ＳＲ．Ｌが割り当てられる前記予測対象ブロックの（偶奇性，探索方向）の組み合わせが、連続する４つの前記予測対象ブロックペアの間ですべて異なるものとなるように、前記探索領域ＳＲ．Ｓ，ＳＲ．Ｌの割り当てを逐次切り替えるものであることを特徴とする請求項１記載の動き推定装置。
【請求項４】
連続するｐ個（ｐは２以上の整数）の画素ブロックを１組のブロックグループとし、前記予測対象ブロックを含む前記ブロック集合を予測対象ブロックグループとするとき、
前記探索領域設定手段は、隣接する２つの前記予測対象ブロックグループの間で、前記探索領域ＳＲ．Ｌと前記探索領域ＳＲ．Ｓとの割り当てを逐次切り替えるものであり、
前記探索中心設定手段は、少なくとも前記探索領域設定手段により前記探索領域ＳＲ．Ｓが割り当てられる前記フレームに対しては、前記予測対象ブロックグループ毎に同一の前記探索中心とするとともに、前記予測対象フレームＦ（０）内で前記予測対象ブロックグループに隣接し且つ前記予測対象ブロックグループよりも先に動きベクトルが予測された画素ブロックにおける動きベクトルから算出される動きベクトル予測値によって特定される位置を、前記探索中心として設定することを特徴とする請求項１記載の動き推定装置。
【請求項５】
前記探索領域設定手段は、前記予測対象フレームＦ（０）が双方向予測フレームの場合、前記予測対象ブロックに対し、前記フレームＦ（−），Ｆ（＋）の何れか一方に、前記探索領域ＳＲ．Ｌを設定し、他方に、前記探索領域ＳＲ．Ｓを設定するものであり、
さらに前記探索領域設定手段は、隣接する２つの前記予測対象ブロックグループの間で、前記探索領域ＳＲ．Ｌ，ＳＲ．Ｓの前記フレームＦ（−），Ｆ（＋）への割り当てを逐次切り替えることを特徴とする請求項４記載の動き推定装置。
【請求項６】
前記予測対象フレームＦ（０）内の前記画素ブロックグループを、奇数番目の画素ブロックグループとそれに隣接する偶数番目の画素ブロックグループとのペアであるブロックグループペアの単位に分割し、前記予測対象ブロックグループを含む前記ブロックグループペアを予測対象ブロックグループペアとするとき、
前記探索領域設定手段は、前記予測対象フレームＦ（０）が双方向予測フレームの場合、前記予測対象ブロックグループペア内の前記各予測対象ブロックグループのうちの何れか一方の予測対象ブロックグループに対しては、前記フレームＦ（−），Ｆ（＋）の両方に前記探索領域ＳＲ．Ｓを設定し、
他方の予測対象ブロックグループに対しては、前記フレームＦ（−），Ｆ（＋）の一方に前記探索領域ＳＲ．Ｌ、他方に前記探索領域ＳＲ．Ｓを設定するものであり、
さらに前記探索領域設定手段は、前記予測対象ブロックグループペア内で前記探索領域ＳＲ．Ｌが割り当てられる前記予測対象ブロックグループの（偶奇性，探索方向）の組み合わせが、連続する４つの前記予測対象ブロックグループペアの間ですべて異なるものとなるように、前記探索領域ＳＲ．Ｓ，ＳＲ．Ｌの割り当てを逐次切り替えるものであることを特徴とする請求項４記載の動き推定装置。
【請求項７】
コンピュータに読み込ませて実行させることにより、当該コンピュータを、請求項１乃至６の何れか一の動き推定装置として機能させることを特徴とする動き推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化に使用される動き推定技術に関し、特に、安定したレートで動き推定の複雑性を減少させることが可能な動き推定技術に関する。
【背景技術】
【０００２】
動き推定（motion estimation：ＭＥ）は、ＭＰＥＧ−２，Ｈ．２６４／ＡＶＣ，ＨＥＶＣなどの、殆どすべての主流な動画圧縮標準において採用されている。ＭＥは、フレーム間の時間データ冗長性を除去することで、符号化効率に大きく寄与する。ＭＥは、符号化対象のフレーム（以下「予測対象フレーム」）内の画素ブロック（以下「予測対象ブロック」）を参照フレーム内の画素ブロックにマッチングさせることによって行われる。参照フレームから符号化対象のフレームへの変位に伴う対応する画素ブロックの差分のみが符号化される（非特許文献１）。
【０００３】
全探索ＭＥ（full-search ME）では、予測対象ブロックに最もよくマッチする画素ブロックを見つけ出すために、参照フレーム内に設定される探索領域内のすべての点をチェックする。従って、全探索ＭＥの計算複雑性は非常に大きなものとなる。例えば、非特許文献２において、Ｈ．２６４／ＡＶＣエンコーダに於いて、片方向の全探索ＭＥを使用し探索領域（search range：ＳＲ）を３２に設定した場合、全計算時間に占めるＭＥの計算時間の割合は５０％以上を占めることが報告されている。一方、片方向ＭＥに比べて、双方向ＭＥの方が予測性能がより良好であるため、圧縮効率を高めるために双方向ＭＥの必要性が増しているが、双方向ＭＥは片方向ＭＥに比べ複雑性が倍増する。さらに、1080p HD，4K QFHD，8K Ultra HD（又はSuper Hi-Vision，SHV）等のより解像度の高いビデオ・コンテンツでは、より高い圧縮効率を達成するためより大きな探索領域が必要とされることになるが、全探索ＭＥの複雑性は探索領域の二乗に比例するため、ＭＥの計算時間の割合は更に大きくなる。従って、ＭＥの計算複雑性の減少は、極めて重要な技術課題である。
【０００４】
そこで、これまでに、符号化性能を維持しつつＭＥの複雑性を減少させるため、様々な手法が開発されてきている。これらの手法の１カテゴリーとして、探索領域でチェックする探索点数を減少させるため、全探索に代えて新たな探索パターンを適用するというものがある。このカテゴリーの手法の典型的なものとして、３ステップ探索（three step search）（非特許文献３）、４ステップ探索（four step search）（非特許文献４）、ダイヤモンド探索（diamond search）（非特許文献５）、クロスダイヤモンド探索（cross diamond search）（非特許文献６）が知られている。
【０００５】
一方、探索領域（ＳＲ）を小さくし全探索ＭＥの複雑性を減少させたものとして、幾つかの動的ＳＲ選択アルゴリズム（dynamic SR selection algorithm）が開示されている（非特許文献１３−１６）。これらのアルゴリズムの基本的な考え方は、予測される動き強度によって探索領域を適応的に割り当てるというものであり、これにより、小さい探索領域で済むため平均計算時間を抑えることができる。
【０００６】
また、非特許文献１７においては、メモリートラフィックを安定的に減少させることができる動的ＳＲ適応アルゴリズム（dynamic SR adjustment algorithm）が開示されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】T. Wiegand, G. J. Sullivan, G. Bjntegaard, and A. Luthra, "Overview of the H.264/AVC video coding standard," IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, no. 7, pp. 560-576, Jul.
【非特許文献２】W. I. Chong, B. Jeon, and J. Jeong, "Fast motion estimation with modified diamond search for variable motion block sizes," in IEEE International Conference on Image Processing, 2003, pp. 24-17.
【非特許文献３】R. Li, B. Zeng, and M. L. Liou, "A new three-step search algorithm for block motion estimation," IEEE Transactions on Circuits and Systems for Video Technology, vol. 4, no. 4, p. 438442, Aug 1994.
【非特許文献４】L. M. Po and W. C. Ma, "A novel four-step search algorithm for fast block motion estimation," IEEE Transactions on Circuits and Systems for Video Technology, vol. 6, no. 3, p. 313317, Jun 1996.
【非特許文献５】S. Zhu and K.-K. Ma, "A new diamond search algorithm for fast block matching motion estimation," IEEE Transactions on Image Processing, Vol. 9, no. 2, p. 287290, Feb 2000.
【非特許文献６】C. H. Cheung and L. M. Po, "A novel cross-diamond search algorithm for fast block motion estimation," IEEE Transactions on Circuits and Systems for Video Technology, vol. 12, no. 12, p. 11681177, Dec 2002.
【非特許文献７】L. Ding, W. Chen, P. Tsung, and L. Chen, "A 212mpixels/s 4096x2160p multiview video encoder chip for 3D/quad HDTV applications," in International Solid-State Circuits Conference, 2009, pp. 154-155.
【非特許文献８】Y. Lin, D. Li, C. Lin, T. Kuo, and S. Wu, "A 242mw 10mm2 1080p H.264/AVC high-profile encoder chip," in International Solid-State Circuits Conference, 2008, pp. 314-315.
【非特許文献９】P. Tsung, W. Chen, L. Ding, S. Chien, and L. Chen, "Cache-based integer motion/disparity estimation for quad-hd h.264/avc and hd multiview video coding," in IEEE International Conference on Acoustics, Speech and Signal Processing, 2009, pp. 2013-2016.
【非特許文献１０】Y. Lin, C. Lin, T. Kuo, and T. Chang, "A hardware-efficient H.264/AVC motion-estimation design for high-definition video," IEEE Transactions on Circuits and Systems for Video Technology, vol. 35, no. 6, pp. 1526-1535, Jul. 2008.
【非特許文献１１】X. Bao, D. Zhou, P. Liu, and S. Goto, "An advanced hierarchical motion estimation scheme with lossless frame recompression and early level termination for beyond high definition video coding," IEEE Transactions on Multimedia, pp. 1520-9210, Oct. 2011.
【非特許文献１２】H. Y. Peng and T. L. Yu, "Efficient hierarchical motion estimation algorithm and its VLSI architecture," IEEE Transactions on Circuits and Systems for Video Technology, vol. 16, no. 10, pp. 1385-1398, Oct 2008.
【非特許文献１３】C. C. Lou, M. Hsieh, S. W. Lee, and C. C. J. Kuo, "Adaptive motion search range prediction for video encoding," IEEE Transactions on Circuits and Systems for Video Technology, vol. 20, no. 12, p. 19031908, Dec 2010.
【非特許文献１４】S. Goel, Y Ismail, and M. A. Bayoumi, "Adaptive search window size algorithm for fast motion estimation in H.264/AVC standard," in Midwest Symposium on Circuits and Systems, 2005, p. 15571560.
【非特許文献１５】Z. Chen, Q. Liu, T. Ikenaga, and S. Goto, "A motion vector difference based self-incremental adaptive search range algorithm for variable block size motion estimation," in IEEE International Conference on Image Processing, 2008, pp. 1988 - 1991.
【非特許文献１６】G. L. Li and M. J. Chen, "Adaptive search range decision and early termination for multiple reference frame motion estimation for H.264," IEICE Transactions on Communication, vol. E89-B, no. 1, pp. 250-253, Jul. 2006.
【非特許文献１７】J. Jung and J. Kim, "A dynamic search range algorithm for stabilized reduction of memory traffic in video encoder," IEEE Transactions on Circuits and Systems for Video Technology, vol. 20, no. 7, pp. 1041-1046, Jul. 2010.
【非特許文献１８】C. Kao and Y Lin, "A memory-efficient and highly parallel architecture for variable block size integer motion estimation in H.264/AVC," IEEE Transactions on Very Large Scale Integration Systems, vol. 18, no. 6, pp. 1063-8210, June 2010.
【非特許文献１９】H.264/AVC reference software version JM 17.2. [Online]. Available: ＜URL：http://iphome.hhi.de/suehring/tml＞
【非特許文献２０】JCT-VC HEVC reference software version HM 7.0. [Online]. Available: ＜URL：https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware＞
【非特許文献２１】C. Chen, S. Chien, Y. Huang, T. Chen, T. Wang, and L. Chen, "Analysis and architecture design of variable block-size motion estimation for H.264/AVC," IEEE Transactions on Circuits and Systems for Video Technology, vol. 53, no. 3, pp. 1549-8328, March 2006.
【非特許文献２２】G. Bjontegaard, "Calculation of average PSNR differences between RD curves," ITU-T SG16/Q6, 13th VCEG meeting, Apr. 2001.
【非特許文献２３】F. Bossen, "Common test conditions and software reference configurations," JCTVC-H1100, Joint Collaborative Team on Video Coding (JCTVC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29AVG11, Feb. 2012.
【非特許文献２４】J. Zhou, D. Zhou, and S. Goto, "Interlaced asymmetric search range assignment for bidirectional motion estimation," in IEEE International Conference on Image Processing, 2012, in press.
【非特許文献２５】三木弼一編著，「ＭＰＥＧ−４のすべて」，初版，株式会社工業調査会，１９９８年９月３０日，ISBN4-7693-1167-2
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述の３ステップ探索（three step search）（非特許文献３）、４ステップ探索（four step search）（非特許文献４）、ダイヤモンド探索（diamond search）（非特許文献５）、クロスダイヤモンド探索（cross diamond search）（非特許文献６）の各手法は、通常、計算量を効果的に減少させることができるため、ソフトウェアベースのエンコーダを高速化させることができる。しかしながら、これらの新たな探索パターンは、通常、不規則なデータ処理フローを伴うため、ハードウェア実装する際には、パイプライン化又は並列化が困難となるという問題がある。
【０００９】
実際、殆どのハードウェアＭＥアーキテクチャ、特に、近年発表されたビデオ・エンコーダ・チップ（非特許文献７，８）において実装されたＭＥアーキテクチャでは、全探索ＭＥ又は全探索ＭＥの修正バージョンを基本としている。非特許文献７，９では、比較的小さい探索領域の全探索ＭＥの性能を向上させるため、探索中心導出法（search center derivation method）に基づく候補を適用している。非特許文献１０，１１，１２に開示された階層的ＭＥアーキテクチャでは、複雑性を減少させつつ大きな探索窓をサポートするために、階層的に複数のレベルでダウン・サンプリングされた参照ブロックを用いて、各階層において全探索ＭＥを実行している。
【００１０】
また、非特許文献１３−１６に開示されている動的ＳＲ選択アルゴリズムは、安定して複雑性を抑制することを保証することができないという問題がある。従って、リアルタイム・システムにおいて重要な最悪条件性能を向上させることができない。
【００１１】
また、非特許文献１７に開示されている動的ＳＲ適応アルゴリズムでは、メモリートラフィックを安定的に減少させることができるものの、その計算複雑性は、ブロック間でいまだ変動的であるという問題がある。
【００１２】
そこで、本発明の目的は、高い予測性能を維持しつつ、安定したレートでＭＥの計算複雑性を減少させることが可能な動き推定装置を提供することにある。
【課題を解決するための手段】
【００１３】
〔１〕原理
本発明に係る動き推定装置では、本発明者が新たに開発した交互非対称探索範囲割当（alternating asymmetric SR assignment：ＡＡＳＲＡ）スキームを適用する。ＡＡＳＲＡは、双方向ＭＥのためのＡＡＳＲＡ（ＡＡＳＲＡ−Ｂ）、片方向ＭＥのためのＡＡＳＲＡ（ＡＡＳＲＡ−Ｐ）、及びＡＡＳＲＡ−ＢとＡＡＳＲＡ−Ｐの組み合わせであるＡＡＳＲＡ（ＡＡＳＲＡ−ＰＢ）の３つのスキームを含んでいる。最初に、これらのスキームの基本的な原理について説明する。
【００１４】
（１）双方向ＭＥのためのＡＡＳＲＡ（ＡＡＳＲＡ−Ｂ）
双方向予測フレーム（Ｂフレーム）では、過去方向及び未来方向の双方向からの参照を用いて動き推定が行われる。統計的には、図１に示したように、２つの最近接の参照フレーム（１つ過去側及び１つ未来側のフレーム）が、符号化効率にとって最も重要である。実際、近年開示された高スループット・ビデオ・エンコーダにおける実装（非特許文献７，８）では、計算複雑性を減少させメモリ帯域幅を妥当な範囲に維持するため、これら最近接の参照フレームのみが探索されている。一方向のみを探索する片方向予測フレーム（Ｐフレーム）に比べ、Ｂフレームは２倍の数（二方向）の参照フレームを探索するため、それぞれの方向の参照フレームの重要性はＰフレームに比べて低いものとなる。そこで、ＡＡＳＲＡ−Ｂでは、Ｂフレームの一つの参照方向に対しては「弱いＭＥ（weaker ME）」を適用することによって、全体の計算量を減少させる。
【００１５】
ＭＥの計算複雑性は、探索範囲（ＳＲ）のサイズに依存するため、非対称ＳＲ割当（asymmetric SR assignment：ＡＳＲＡ）法では、常に、一方の方向に対しては相対的に大きい探索領域（ＳＲ．Ｌ）を割り当て、もう一方の方向に対しては相対的に小さい探索領域（ＳＲ．Ｓ）を割り当てる。しかしながら、ＳＲ．Ｓよりも大きな探索領域を必要とする急速な動きのビデオシーケンス（high-motion video sequence）に対しては、ＡＳＲＡではＳＲ．Ｓの方向に於いて不正確な動き推定がなされる可能性があり、これにより大きな符号化性能の低下が生じる可能性がある。
【００１６】
この欠点を克服するため、交互非対称ＳＲ割当（ＡＡＳＲＡ）スキームでは、ＡＳＲＡのような二方向への２つのＳＲ（ＳＲ．Ｌ，ＳＲ．Ｓ）の固定的な割り当てではなく、図１に示したように、画素ブロック（マクロブロック（ＭＢ：macroblock）又は最大符号化単位（ＬＵＣ：Largest Coding Unit））毎に１回、過去方向及び未来方向でＳＲ．ＳとＳＲ．Ｌの使用割り当てを切り替える。即ち、画素ブロック（Ｎ）において或る参照方向にＳＲ．Ｌが割り当てられた場合、画素ブロック（Ｎ＋１）においては当該参照方向に対しＳＲ．Ｓが割り当てられなければならない。さらに、画素ブロック（Ｎ＋２）においては当該参照方向に対しＳＲ．Ｌが割り当てられなければならない．．．。その逆もまた同様である。
【００１７】
具体的に実装する場合は、ＳＲ．Ｌの探索中心はゼロ・ベクトル又は動きベクトル予測値（motion vector predictor：ＭＶＰ）（例えば、ITU-T H.264, "SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS"（2012年1月）又は非特許文献２５，ｐ．４４−４６を参照）の何れを使用してもよいが、ＳＲ．Ｓの探索中心は、常にＭＶＰとすべきである。
【００１８】
理論的には、ＡＡＳＲＡ−Ｂには以下のような利点がある。
第一に、それぞれの画素ブロックに於いて、ＭＥの複雑性が安定する。これは、最悪条件性能を確保するために重要である。ＳＲ．ＬとＳＲ．Ｓのサイズ比が十分に大きい場合、両方向にＳＲ．Ｌを割り当てた場合（従来の全探索ＭＥ）に対する複雑性の低減率はおよそ５０％である。また、これにより、ＢフレームとＰフレームとの間の符号化複雑度の変分が減少する。これは、リアルタイム・システムに於いて、Ｐフレームの符号化におけるハードウェア利用効率の改善に繋がる。
【００１９】
第二に、それぞれの方向において、常に、ＳＲ．Ｓを用いた探索の前にＳＲ．Ｌを用いた探索が行われる。ＳＲ．Ｌを用いた探索は、急速な動きに対して正確な動き推定を行うことができるが、これはまた、その次のＳＲ．Ｓを用いた探索に対して、マッチングに適した探索中心を与えるという傾向もある。すなわち、ＳＲ．Ｌを用いた探索で得られた動きベクトル（motion vector：ＭＶ）を、その次のＳＲ．Ｓを用いた探索の探索中心の決定に利用することで、ＳＲ．Ｓのサイズがさほど大きくなくても、良好な動き推定が行われることが予想される。結果的に、ＡＳＲＡとは対照的に、ＡＡＳＲＡ−Ｂでは、両探索方向に等しく且つ充分な重要性を置いているといえる。また、特に、ＳＲ．Ｌの探索中心をＭＶＰとした場合、ＡＡＳＲＡ−Ｂでは、ＳＲ．Ｌよりも大きいリアル・モーション（real motion）でさえ、動きベクトルを補足することが可能となる。図２（ａ）に示すように、これは常時ＳＲ．Ｌによる探索が実行されていることと類似しており、２つ以上の画素ブロックに対する累積多重探索が行われていることに等しい。他方、ＳＲ．Ｓを用いて同様の累積多重探索を行っても同様の効果は得られない（図２（ｂ））。
【００２０】
すべての探索領域をＳＲ．Ｌとした双方向の全探索ＭＥと比較した場合、ＡＡＳＲＡ−Ｂは、検索点数において、ＭＥ複雑性を（１−（ＳＲ．Ｓ／ＳＲ．Ｌ）２）／２倍に減少させる。ＳＲ．Ｓ２＜＜ＳＲ．Ｌ２の場合、計算複雑性の低減率は約５０％である。
【００２１】
（２）片方向ＭＥのためのＡＡＳＲＡ（ＡＡＳＲＡ−Ｐ）
ＡＡＳＲＡ−Ｂは、双方向ＭＥに対する手法であるが、同様の交互ＳＲ割当の考え方が、参照方向が片方向しかないＰフレームに対しても適用することができる。片方向ＭＥのためのＡＡＳＲＡ（ＡＡＳＲＡ−Ｐ）は、フレーム内の先頭の画素ブロックの探索領域に対してＳＲ．Ｌを割り当てることから開始して、予測対象ブロックが隣接する画素ブロックに移る毎に、探索領域のＳＲ．Ｓへの交代、ＳＲ．Ｌへの復帰、・・・が交互に繰り返される。図３に、ＡＡＳＲＡ−Ｐにおける探索領域の割り当て方法を示す。これは、ＡＡＳＲＡ−Ｂ（図１）における片方向側の動作と同じである。各画素ブロックのＭＥ計算複雑性は割り当てられた探索領域のサイズとともに周期的に変化するが、互いに隣接する２つの画素ブロックのペア（以下「ブロックペア」という。）に対する計算複雑性は安定している。
【００２２】
すべての探索領域をＳＲ．Ｌとした片方向の全探索ＭＥと比較した場合、ＡＡＳＲＡ−Ｐは、検索点数において、ＭＥ複雑性を（１−（ＳＲ．Ｓ／ＳＲ．Ｌ）２）／２倍に減少させる。ＳＲ．Ｓ２＜＜ＳＲ．Ｌ２の場合、計算複雑性の低減率は約５０％である。これは、Ｂフレームに対するＡＡＳＲＡ−Ｂの低減率と等しい。
【００２３】
（３）ＡＡＳＲＡ−ＢとＡＡＳＲＡ−Ｐの組み合わせ（ＡＡＳＲＡ−ＰＢ）
ＡＡＳＲＡ−ＢとＡＡＳＲＡ−Ｐは、（参照方向，画素ブロックのインデックス）の２次元空間において、ＳＲ．ＬとＳＲ．Ｓとの切り換えを行うことを特徴とするが、双方向ＭＥに対しては、さらに計算複雑度を低減させるために、ＡＡＳＲＡ−ＢとＡＡＳＲＡ−Ｐの２つのスキームを結合させることができる。
【００２４】
図４に、ＡＡＳＲＡ−ＢとＡＡＳＲＡ−Ｐの組み合わせ（ＡＡＳＲＡ−ＰＢ）スキームにおける探索領域の割り当て方法を示す。連続する２つの画素ブロック（奇数番目の画素ブロックとそれに隣接する偶数番目の画素ブロック）のペア（ブロックペア）が探索領域割当処理における最小単位とみなされる。１つのブロックペア内に於いて、２つの画素ブロックの双方向探索動作で、１つの画素ブロックの１つの探索方向の探索領域に対してのみＳＲ．Ｌが割り当てられ、残り３つの探索領域にはＳＲ．Ｓが割り当てられる。ブロックペア内においてＳＲ．Ｌが割り当てられる（画素ブロックのインデックスの偶奇性，探索方向）は、隣接するブロックペア間で図５に示したように切り替えられる。すなわち、ＳＲ．Ｌが割り当てられる（画素ブロックのインデックスの偶奇性，探索方向）は、連続する４つのブロックペア間ですべて異なるものとなるように設定され、連続する４つのブロックペアを１周期として、周期的にＳＲ．Ｌの割り当ての切り換えが行われる。
【００２５】
すべての探索領域をＳＲ．Ｌとした片方向の全探索ＭＥと比較した場合、ＡＡＳＲＡ−ＰＢは、検索点数において、ＭＥ複雑性を（３−３（ＳＲ．Ｓ／ＳＲ．Ｌ）２）／４倍に減少させる。ＳＲ．ＳのサイズをＳＲ．Ｌのサイズの１／４とした場合、計算複雑性の低減率は７０％である。
【００２６】
ＡＡＳＲＡ−ＰＢは双方向探索に対してＡＡＳＲＡ−Ｂよりも大きな計算複雑性の低減ができるという利点を有するが、ＡＡＳＲＡ−ＰＢのもう一つの利点は、ＰフレームとＢフレームにおけるＭＥ計算における計算複雑性に釣り合いがとれることにある。両タイプのフレームを含む符号化ワークロードにおいて、ＡＡＳＲＡ−ＢがＢフレームに適用されているとすると、元のＰフレームの計算複雑性は、ＡＡＳＲＡ−Ｂを適用したＢフレームの計算複雑性よりもすでに小さいため、例えＰフレームにＡＡＳＲＡ−Ｐを適用したとしても、最悪条件のＭＥ計算複雑性を減少させることはできない。しかしながら、Ｐフレーム及びＢフレームに、それぞれ、ＡＡＳＲＡ−Ｐ，ＡＡＳＲＡ−ＰＢを適用した場合、平均及び最悪条件の計算複雑性の両方を最小にすることができる。
【００２７】
〔２〕本発明の構成及び作用
本発明に係る動き推定装置の第１の構成は、時間順に並ぶ複数のフレームで構成された動画像において、前記フレームのうち動きベクトルの予測を行うフレームを予測対象フレームＦ（０）とするとき、該予測対象フレームＦ（０）内を区画して設定される画素ブロックの各々を、順次、動きベクトルの予測を行う予測対象ブロックとし、該予測対象ブロックに対する動きベクトルの推定を行う動き推定装置であって、
前記予測対象フレームＦ（０）内の前記予測対象ブロックに対して、前記予測対象フレームＦ（０）に対し過去方向のフレームＦ（−）内の所定の探索領域内又は未来方向のフレームＦ（＋）内の所定の探索領域内で、前記予測対象ブロックに最も近似する参照ブロックを探索するブロック探索手段と、
前記予測対象ブロックに対し、前記ブロック探索手段が前記フレームＦ（−），Ｆ（＋）内で探索を行う際の探索中心を設定する探索中心設定手段と、
前記予測対象ブロックに対し、前記フレームＦ（−），Ｆ（＋）内の前記探索中心の周りに前記探索領域の設定を行う探索領域設定手段と、を備え、
前記探索領域設定手段は、前記予測対象フレームＦ（０）が片方向予測フレームの場合、前記予測対象ブロックＢ（ｎ）に対し、前記フレームＦ（−）に、相対的にサイズの大きい探索領域ＳＲ．Ｌ又は相対的にサイズの小さい探索領域ＳＲ．Ｓを設定するものであり、
さらに前記探索領域設定手段は、隣接する２つの前記予測対象ブロックの間で、前記探索領域ＳＲ．Ｌと前記探索領域ＳＲ．Ｓとの割り当てを逐次切り替えることを特徴とする。
【００２８】
この構成により、動き推定装置は、上述したＡＡＳＲＡ−Ｐスキームにより動きベクトルの探索を行うことができる。
【００２９】
ここで、「フレーム」は、オリジナルのビデオシーケンスのフレームであってもよいが、階層的探索（Hierarchical search）を実行する際にオリジナルのビデオシーケンスの各フレームをダウン・サンプリングして生成されるフレームであってもよい。「画素ブロック」とは、フレーム内を区画して設定される画素のブロックであり、マクロブロック（ＭＢ）や最大符号化単位（ＬＵＣ）などである。
【００３０】
本発明に係る動き推定装置の第２の構成は、前記第１の構成において、前記探索領域設定手段は、前記予測対象フレームＦ（０）が双方向予測フレームの場合、前記予測対象ブロックに対し、前記フレームＦ（−），Ｆ（＋）の何れか一方に、前記探索領域ＳＲ．Ｌを設定し、他方に、前記探索領域ＳＲ．Ｓを設定するものであり、
さらに前記探索領域設定手段は、隣接する２つの予測対象ブロックの間で、前記探索領域ＳＲ．Ｌ，ＳＲ．Ｓの前記フレームＦ（−），Ｆ（＋）への割り当てを逐次切り替えることを特徴とする。
【００３１】
この構成により、動き推定装置は、上述したＡＡＳＲＡ−Ｂスキームにより動きベクトルの探索を行うことができる。
【００３２】
本発明に係る動き推定装置の第３の構成は、前記第１の構成において、前記予測対象フレームＦ（０）内の前記画素ブロックを、奇数番目の画素ブロックとそれに隣接する偶数番目の画素ブロックとのペアであるブロックペアの単位に分割し、前記予測対象ブロックを含む前記ブロックペアを予測対象ブロックペアとするとき、
前記探索領域設定手段は、前記予測対象フレームＦ（０）が双方向予測フレームの場合、前記予測対象ブロックペア内の前記各予測対象ブロックのうちの何れか一方の予測対象ブロックに対しては、前記フレームＦ（−），Ｆ（＋）の両方に前記探索領域ＳＲ．Ｓを設定し、
他方の予測対象ブロックに対しては、前記フレームＦ（−），Ｆ（＋）の一方に前記探索領域ＳＲ．Ｌ、他方に前記探索領域ＳＲ．Ｓを設定するものであり、
さらに前記探索領域設定手段は、前記予測対象ブロックペア内で前記探索領域ＳＲ．Ｌが割り当てられる前記予測対象ブロックの（偶奇性，探索方向）の組み合わせが、連続する４つの前記予測対象ブロックペアの間ですべて異なるものとなるように、前記探索領域ＳＲ．Ｓ，ＳＲ．Ｌの割り当てを逐次切り替えるものであることを特徴とする。
【００３３】
この構成により、動き推定装置は、上述したＡＡＳＲＡ−ＰＢスキームにより動きベクトルの探索を行うことができる。
【００３４】
本発明に係る動き推定装置の第４の構成は、前記第１の構成において、連続するｐ個（ｐは２以上の整数）の画素ブロックを１組のブロックグループとし、前記予測対象ブロックを含む前記ブロック集合を予測対象ブロックグループとするとき、前記探索領域設定手段は、隣接する２つの前記予測対象ブロックグループの間で、前記探索領域ＳＲ．Ｌと前記探索領域ＳＲ．Ｓとの割り当てを逐次切り替えるものであり、前記探索中心設定手段は、少なくとも前記探索領域設定手段により前記探索領域ＳＲ．Ｓが割り当てられる前記フレームに対しては、前記予測対象ブロックグループ毎に同一の前記探索中心とするとともに、前記予測対象フレームＦ（０）内で前記予測対象ブロックグループに隣接し且つ前記予測対象ブロックグループよりも先に動きベクトルが予測された画素ブロックにおける動きベクトルから算出される動きベクトル予測値によって特定される位置を、前記探索中心として設定することを特徴とする。
【００３５】
これにより、ＡＡＳＲＡ−Ｐスキームにおいて、ｐ個の画素ブロックに対して並列に動き探索を行う並列化が可能となる。
【００３６】
本発明に係る動き推定装置の第５の構成は、前記第４の構成において、前記探索領域設定手段は、前記予測対象フレームＦ（０）が双方向予測フレームの場合、前記予測対象ブロックに対し、前記フレームＦ（−），Ｆ（＋）の何れか一方に、前記探索領域ＳＲ．Ｌを設定し、他方に、前記探索領域ＳＲ．Ｓを設定するものであり、さらに前記探索領域設定手段は、隣接する２つの前記予測対象ブロックグループの間で、前記探索領域ＳＲ．Ｌ，ＳＲ．Ｓの前記フレームＦ（−），Ｆ（＋）への割り当てを逐次切り替えることを特徴とする。
【００３７】
これにより、ＡＡＳＲＡ−Ｂスキームにおいて、ｐ個の画素ブロックに対して並列に動き探索を行う並列化が可能となる。
【００３８】
本発明に係る動き推定装置の第５の構成は、前記第４の構成において、前記予測対象フレームＦ（０）内の前記画素ブロックグループを、奇数番目の画素ブロックグループとそれに隣接する偶数番目の画素ブロックグループとのペアであるブロックグループペアの単位に分割し、前記予測対象ブロックグループを含む前記ブロックグループペアを予測対象ブロックグループペアとするとき、
前記探索領域設定手段は、前記予測対象フレームＦ（０）が双方向予測フレームの場合、前記予測対象ブロックグループペア内の前記各予測対象ブロックグループのうちの何れか一方の予測対象ブロックグループに対しては、前記フレームＦ（−），Ｆ（＋）の両方に前記探索領域ＳＲ．Ｓを設定し、
他方の予測対象ブロックグループに対しては、前記フレームＦ（−），Ｆ（＋）の一方に前記探索領域ＳＲ．Ｌ、他方に前記探索領域ＳＲ．Ｓを設定するものであり、
さらに前記探索領域設定手段は、前記予測対象ブロックグループペア内で前記探索領域ＳＲ．Ｌが割り当てられる前記予測対象ブロックグループの（偶奇性，探索方向）の組み合わせが、連続する４つの前記予測対象ブロックグループペアの間ですべて異なるものとなるように、前記探索領域ＳＲ．Ｓ，ＳＲ．Ｌの割り当てを逐次切り替えるものであることを特徴とする。
【００３９】
これにより、ＡＡＳＲＡ−ＰＢスキームにおいて、ｐ個の画素ブロックに対して並列に動き探索を行う並列化が可能となる。
【００４０】
本発明に係る動き推定プログラムの構成は、コンピュータに読み込ませて実行させることにより、当該コンピュータを、前記第１乃至６の何れか一の動き推定装置として機能させることを特徴とする。
【発明の効果】
【００４１】
以上のように、本発明によれば、高い予測性能を維持しつつ、安定したレートでＭＥの計算複雑性を減少させることが可能な動き推定装置を提供することができる。計算複雑性のレートが安定しているため、パイプライン化又は並列化が容易であり、ハードウェア実装も容易である。
【００４２】
実際に実験した結果、本発明の第１，２の構成を適用した動き推定装置では、全探索ＭＥを適用したものと比較して４６％を越える計算複雑性の減少を達成することができ、双方向に於いてＭＥが急速な動きを追跡することができるようになる。更に、本発明の第３の構成を適用した動き推定装置では、符号化性能の若干の低下は見られるものの、全探索ＭＥに比べ７０％を上回る計算複雑性の減少を達成できることが実証された。
【図面の簡単な説明】
【００４３】
【図１】双方向ＭＥのためのＡＡＳＲＡ（ＡＡＳＲＡ−Ｂ）スキームにおける探索領域の割り当て方法を示す図である。
【図２】ＡＡＳＲＡ法のＭＶ追跡能力（ａ）とＡＳＲＡ法のＳＥ．Ｓ方向のＭＶ追跡能力（ｂ）との比較を示す図である。
【図３】片方向ＭＥのためのＡＡＳＲＡ（ＡＡＳＲＡ−Ｐ）スキームにおける探索領域の割り当て方法を示す図である。
【図４】ＡＡＳＲＡ−ＢとＡＡＳＲＡ−Ｐの組み合わせ（ＡＡＳＲＡ−ＰＢ）スキームにおける探索領域の割り当て方法を示す図である。
【図５】ＡＡＳＲＡ−ＰＢにおけるＳＲ．Ｌの割り当て切り替え方法を示す図である。
【図６】本発明の実施例１に係る動き推定装置を使用する動画像符号化器の一例を示す図である。
【図７】本発明の実施例１に係る動き推定装置の構成を示すブロック図である。
【図８】本実施例の動き推定装置の全体動作を表すフローチャートである。
【図９】図８の探索領域割当処理を表すフローチャートである。
【図１０】スネーク走査のメモリ・アクセス・シーケンスを示す図である。
【図１１】全探索ＭＥを用いた動き推定装置及び本実施例の動き推定装置を用いたビデオ・エンコーダにおいて、ＳＲのサイズを変化させた場合の符号化ビットレートの変化を示す図である。
【図１２】実施例２に係る動き推定装置８におけるＰフレーム及びＢフレームに対する探索領域割当処理を表すフローチャートである。
【図１３】ＩＭＮＰＤＲに基づくＡＡＳＲＡの探索中心の決め方を説明する図である。
【図１４】本発明の実施例３に係る動き推定装置の構成を示すブロック図である。
【図１５】実施例３に係る動き推定装置の全体動作を表すフローチャートである。
【図１６】ＰＭＲＭＥ及びＡＡＳＲＡスキームを適用したＰＭＲＭＥにおいて、同等のスループットを達成するために必要な相対的ハードウェア並列性を示す図である。
【発明を実施するための形態】
【００４４】
以下、本発明を実施するための形態について、図面を参照しながら説明する。
【実施例１】
【００４５】
（１）動き推定装置を使用するビデオ・エンコーダの全体構成
図６は、本発明の実施例１に係る動き推定装置を使用するビデオ・エンコーダを示す図である。図６においては、ビデオ・エンコーダの一例として、通常のＭＰＥＧ−４エンコーダを挙げているが、本発明に係る動き推定装置の適用範囲はこれに限られるものではない。また、本実施例におけるビデオ・エンコーダ及び動き推定装置は、マイコンや再構成可能論理デバイス（Reconfigurable Logic Device）やＡＳＩＣ（Application Specific Integrated Circuit）などを用いてハードウェア的に構成してもよいが、コンピュータ・プログラムとして構成して記録媒体に記録しておき、該記録媒体の該コンピュータ・プログラムをコンピュータに読み込ませて実行することにより本実施例におけるビデオ・エンコーダ及び動き推定装置を実現するようにしてもよい。
【００４６】
尚、本実施例以下の実施例において、ビデオ・エンコーダ１により符号化する動画像は、時間順に並ぶ複数のフレーム（ＶＯＰ：Video Object Plane）で構成されており、各ＶＯＰのうち動きベクトルの予測を行うフレームを予測対象フレームＦ（０）とし、該予測対象フレームＦ（０）内を所定のサイズの矩形に区画して設定されるブロックを画素ブロックとする。画素ブロックはマクロブロック（ＭＢ：macroblock）や最大符号化単位（ＬＣＵ：Largest Coding Unit）などが使用されるが、ここでは、画素ブロックはマクロブロックであるとする。画素ブロックのサイズは任意とする。
【００４７】
ビデオ・エンコーダ１は、イントラ符号化部２、インター符号化部３、逆量子化器４、逆ＤＣＴ演算器５、加算器６、デブロッキング・フィルタ７、本発明に係る動き推定装置８、及び動き補償器９を備えている。
【００４８】
イントラ符号化部２は、Ｉフレームに対するイントラ符号化（intra-cording）を行う。このイントラ符号化部２は、ＤＣＴ演算器１０量子化器１１、及びエントロピー符号化器１２を備えている。ＤＣＴ演算器１０は、入力されるビデオ画像のフレームを、基本処理単位であるマクロブロック（ＭＢ）に分割し、各ＭＢに対して離散コサイン変換（ＤＣＴ）を施す。量子化器１１は、ＤＣＴが施された各マクロブロックを量子化する。エントロピー符号化器１２は、各マクロブロックの量子化されたＤＣＴ係数と量子化幅を可変長符号化し、符号化ビットストリームとして出力する。
【００４９】
一方、インター符号化部３は、Ｐフレーム及びＢフレームに対するインター符号化（inter-cording）を行う。このインター符号化部３は、加算器１３、ＤＣＴ演算器１４、量子化器１５、及びエントロピー符号化器１６を備えている。まず、動き推定装置８は、符号化対象となるマクロブロック（予測対象ブロック）を含む予測対象フレームに対して、時間的に隣接する他のフレーム（参照フレーム）の中から、ブロックマッチングによる動きベクトル予測により、予測対象ブロックに対して最も近似する（誤差が最も小さい）マクロブロック（以下「予測マクロブロック」という。）を検出する。予測対象ブロックから予測マクロブロックへのベクトルが動きベクトル（ＭＶ：motion vector）である。次に、動き補償器９は、検出された動きベクトルに基づき、参照フレームを動き補償して最適な予測マクロブロックを取得する。次に、加算器１３は、予測対象マクロブロックとそれに対応する予測マクロブロックとの差分を求める。ＤＣＴ演算器１４は、この差分信号に対してＤＣＴを施し、量子化器１５は、このＤＣＴ係数を量子化する。エントロピー符号化器１６は、量子化ＤＣＴ係数を動きベクトルや量子化幅とともに可変長符号化する。
【００５０】
（２）動き推定装置の構成
図７は、本発明の実施例１に係る動き推定装置の構成を示すブロック図である。図１における動き推定装置８に相当する部分である。動き推定装置８は、フレームメモリ２１、動きベクトル記憶部２２、動きベクトル予測値（ＭＶＰ）演算部２３、探索中心設定部２４、探索領域設定部２５、及びブロック探索部２６を備えている。この動き推定装置８が、予測対象フレームＦ（０）内を区画して設定される画素ブロックの各々を、順次、動きベクトルの予測を行う予測対象ブロックとし、該予測対象ブロックに対する動きベクトルの推定を行う。
【００５１】
フレームメモリ２１は、イントラ符号化部２又はインター符号化部３において量子化ＤＴＣ係数に符号化された動画像のフレームを、逆量子化器４、逆ＤＣＴ演算器５、加算器６、及びデブロッキング・フィルタ７でフレームに復号した復号フレームを一時的に記憶する。動きベクトル記憶部２２は、ブロック探索によって求められる各画素ブロックの動きベクトルを一時的に記憶する。
【００５２】
ブロック探索部２６は、フレームメモリ２１から読み出される予測対象フレームＦ（０）内の予測対象ブロックに対して、予測対象フレームＦ（０）に対し過去方向の参照フレームＦ（−）内の所定の探索領域内又は未来方向の参照フレームＦ（＋）内の所定の探索領域内で、予測対象ブロックに最も近似する参照ブロックを探索する。
【００５３】
動きベクトル予測値（ＭＶＰ）演算部２３は、予測対象ブロックの周囲のブロックの動きベクトルから、動きベクトル予測値（ＭＶＰ：motion vector predictor）を算出する。探索中心設定部２４は、予測対象ブロックに対し、ブロック探索部２６が参照フレームＦ（−），Ｆ（＋）内で探索を行う際の探索中心を設定する。探索領域設定部２５は、予測対象ブロックに対し、参照フレームＦ（−），Ｆ（＋）内の探索中心の周りに探索領域の設定を行う。
【００５４】
本実施例では、探索領域設定部２５は、予測対象フレームＦ（０）がＰフレーム（片方向予測フレーム）の場合、ＡＡＳＲＡ−Ｐスキームに基づき探索領域（ＳＲ）の割り当てを行い、予測対象フレームＦ（０）がＢフレーム（双方向予測フレーム）の場合、ＡＡＳＲＡ−Ｂスキームに基づき探索領域（ＳＲ）の割り当てを行うものとする。即ち、予測対象フレームＦ（０）がＰフレームの場合、探索領域設定部２５は、予測対象ブロックに対し、参照フレームＦ（−）に、相対的にサイズの大きい探索領域ＳＲ．Ｌ又は相対的にサイズの小さい探索領域ＳＲ．Ｓを設定する。この際、隣接する２つの予測対象ブロックの間で、探索領域ＳＲ．Ｌと探索領域ＳＲ．Ｓとの割り当てを逐次切り替える。
一方、予測対象フレームＦ（０）がＢフレームの場合、探索領域設定部２５は、予測対象ブロックに対し、参照フレームＦ（−），Ｆ（＋）の何れか一方に、探索領域ＳＲ．Ｌを設定し、他方に、探索領域ＳＲ．Ｓを設定する。この際、隣接する２つの予測対象ブロックの間で、探索領域ＳＲ．Ｌ，ＳＲ．ＳのフレームＦ（−），Ｆ（＋）への割り当てを逐次切り替える。
【００５５】
また、探索中心設定部２４は、探索領域設定部２５により探索領域ＳＲ．Ｓが割り当てられる参照フレームに対しては、ＭＶＰ演算部２３が算出する動きベクトル予測値によって特定される位置を、探索中心として設定する。また、探索領域設定部２５により探索領域ＳＲ．Ｌが割り当てられる参照フレームに対しては、ＭＶＰ演算部２３が算出する動きベクトル予測値又は０ベクトルによって特定される位置を、探索中心として設定する。
【００５６】
（３）動き推定装置の動作
次に、本実施例の動き推定装置８について、以下その動作を説明する。図８は、本実施例の動き推定装置８の全体動作（動き推定処理）を表すフローチャートである。
【００５７】
まず、ブロック探索部２６は、予測対象フレームＦ（０）のフレーム番号を設定する（Ｓ１０１）。
【００５８】
次に、ブロック探索部２６は、予測対象フレームＦ（０）の種類に応じて、参照フレームのフレーム番号を設定する（Ｓ１０２）。例えば、予測対象フレームＦ（０）の種類がＰフレームの場合、予測対象フレームＦ（０）より過去方向にあるＰフレーム又はＩフレームが参照フレームＦ（−）に設定される。また、予測対象フレームＦ（０）の種類がＢフレームの場合、予測対象フレームＦ（０）より過去方向にあるＰフレーム，Ｉフレーム，Ｂフレームの何れかが参照フレームＦ（−）に、予測対象フレームＦ（０）より未来方向にあるＰフレーム，Ｉフレーム，Ｂフレームの何れかが参照フレームＦ（＋）に設定される。尚、予測対象フレームＦ（０）の過去又は未来方向の参照フレームＦ（−），Ｆ（＋）は、通常は最近接のフレームとされるが、場合によっては複数であってもよい。
【００５９】
次に、ブロック探索部２６は、予め定められたコンフィギュレーション（初期設定）に従い、予測対象フレームＦ（０）を所定サイズのＭ個の画素ブロックＢ（ｉ）（ｉ＝０，１，２，…，Ｍ−１）に区画して得られる一つの画素ブロックＢ（ｎ）を予測対象ブロックに設定し、予測対象ブロックＢ（ｎ）のデータをフレームメモリ２１から読み出す（Ｓ１０４）。尚、画素ブロックＢ（ｉ）のインデックスｉは、予測対象フレームＦ（０）の左上隅から、ラスタ走査方向に順次割り振られており、ブロック探索部２６は、各イタレーション（iteration）に於いて、予測対象ブロックＢ（ｎ）を、インデックスｎが小さい順に選択していく。
【００６０】
次に、ＭＶＰ演算部２３は、動きベクトル記憶部２２に記憶された既算出の動きベクトルを用いて、予測対象ブロックＢ（ｎ）に対する動きベクトル予測値（ＭＶＰ）を算出する（Ｓ１０５）。ここで、ＭＶＰの算出方法は、ＭＰＥＧ−４規格において一般的に使用されている算出方法が用いられる（非特許文献２５，pp.44-46参照）。尚、既算出の動きベクトルがない場合には、ＭＶＰは０ベクトルに設定される。
【００６１】
次に、探索領域設定部２５は、予測対象ブロックＢ（ｎ）に対し、ＡＡＳＲＡスキームにより、参照フレームＦ（−）又はＦ（＋）における探索領域（ＳＲ）サイズの割り当てを行う（Ｓ１０６）。以下、予測対象ブロックＢ（ｎ）に対する参照フレームＦ（−）方向のＳＲサイズをＳＲ（ｎ，−）、参照フレームＦ（＋）方向のＳＲサイズをＳＲ（ｎ，＋）と記す。尚、このＳＲ割当処理の詳細については後述する（図９）。
【００６２】
次に、探索中心設定部２４は、参照フレームＦ（−）又はＦ（＋）に対して、探索中心の設定を行う（Ｓ１０７）。ここで、ＳＲ（ｎ，−）又はＳＲ（ｎ，＋）が相対的に大きい探索領域ＳＲ．Ｌの場合には、当該探索方向に対する探索中心は０ベクトル又は当該探索方向のＭＶＰの何れかに設定される。どちらにするかは、コンフィギュレーションにより自由に選択することができる。また、ＳＲ（ｎ，−）又はＳＲ（ｎ，＋）が相対的に小さい探索領域ＳＲ．Ｓの場合には、当該探索方向に対する探索中心は当該探索方向のＭＶＰに設定される。尚、ＳＲ．Ｌ，ＳＲ．Ｓのサイズは、コンフィギュレーションにより自由に設定することができる。
【００６３】
次に、ブロック探索部２６は、参照フレームＦ（−），Ｆ（＋）の一方又は双方において、設定された探索中心を基準として、サイズＳＲ（ｎ，−）又はＳＲ（ｎ，＋）の探索領域を設定し（Ｓ１０８）、設定された探索領域内で全探索によるブロックマッチングを行い、予測対象ブロックＢ（ｎ）に最も近似する参照ブロックを索出する（Ｓ１０９）。ここで、ブロックマッチングは、常法に従い、近似性の判定は、基本的には両ブロック（予測対象ブロックと参照ブロック）の各画素間の二乗誤差和又は絶対値誤差和が使用される。ブロック探索部２６は、予測対象ブロックＢ（ｎ）から索出された参照ブロックＢＲ（ｎ）へのベクトルを動きベクトルＭＶ（ｎ）として、動きベクトル記憶部２２に保存する。
【００６４】
次に、ブロック探索部２６は、予測対象フレームＦ（０）内のすべての画素ブロックＢ（１）〜Ｂ（Ｍ）に対して動き推定処理が完了したかを判定し（Ｓ１１１）、まだ完了していない場合にはステップＳ１０４に戻り、完了した場合には次のステップＳ１１２に進む。
【００６５】
次に、ブロック探索部２６は、隣接するＩフレーム間のビデオシーケンスのすべてのフレームについて、動き推定処理が完了したかを判定し（Ｓ１１２）、まだ完了していない場合にはステップＳ１０１に戻り、完了した場合には動き推定処理を終了する。
【００６６】
次に、上記ステップＳ１０６におけるＳＲ割当処理の詳細について説明する。図９は、図８のＳＲ割当処理（Ｓ１０６）を表すフローチャートである。
【００６７】
図９（ａ）において、まず、探索領域設定部２５は、予測対象フレームＦ（０）がＰフレームであるかＢフレームであるかを判別し（Ｓ２０１）、Ｐフレームの場合には、図９（ｂ）のＰフレームＳＲ割当処理を実行し（Ｓ２０２）、Ｂフレームの場合には、図９（ｃ）のＢフレームＳＲ割当処理を実行する（Ｓ２０３）ことで、探索領域のサイズＳＲ（ｎ，−）又はＳＲ（ｎ，＋）を設定する。
【００６８】
ＰフレームＳＲ割当処理（Ｓ２０２）では（図９（ｂ））、まず、探索領域設定部２５は、予測対象ブロックＢ（ｎ）のインデックスｎが０か否かを判定し（Ｓ３０１）、ｎ＝０の場合、ＳＲ（ｎ，−）をＳＲ．Ｌに設定する（Ｓ３０２）。一方、ｎ＞０の場合、探索領域設定部２５は、１つ前の画素ブロックＢ（ｎ−１）で設定された探索領域のサイズＳＲ（ｎ−１，−）がＳＲ．Ｌであるか否かを判定し（Ｓ３０３）、ＳＲ（ｎ−１，−）＝ＳＲ．Ｌの場合ＳＲ（ｎ，−）をＳＲ．Ｓに設定し（Ｓ３０４）、ＳＲ（ｎ−１，−）＝ＳＲ．Ｓの場合ＳＲ（ｎ，−）をＳＲ．Ｌに設定する（Ｓ３０５）。以上のようにして、図３に示したようなＡＡＳＲＡ−Ｐスキームによる探索領域サイズの割り当てが実行される。
【００６９】
一方、ＢフレームＳＲ割当処理（Ｓ２０３）では（図９（ｃ））、まず、探索領域設定部２５は、予測対象ブロックＢ（ｎ）のインデックスｎが０か否かを判定し（Ｓ４０１）、ｎ＝０の場合、ＳＲ（ｎ，−），ＳＲ（ｎ，＋）を共にＳＲ．Ｌに設定する（Ｓ４０２）。これは、ｎ＝０では、まだ何れの画素ブロックのＭＶも設定されていないため、ＳＲ．Ｓの探索中心となるＭＶＰの予測ができないからである。一方、ｎ＞０の場合、探索領域設定部２５は、１つ前の画素ブロックＢ（ｎ−１）で設定された探索領域のサイズＳＲ（ｎ−１，−）がＳＲ．Ｌであるか否かを判定し（Ｓ４０３）、ＳＲ（ｎ−１，−）＝ＳＲ．Ｌの場合ＳＲ（ｎ，−）をＳＲ．Ｓ，ＳＲ（ｎ，＋）をＳＲ．Ｌに設定する（Ｓ４０４）。ＳＲ（ｎ−１，−）＝ＳＲ．Ｓの場合、ＳＲ（ｎ，−）をＳＲ．Ｌ，ＳＲ（ｎ，＋）をＳＲ．Ｓに設定する（Ｓ４０５）。以上のようにして、図１に示したようなＡＡＳＲＡ−Ｂスキームによる探索領域サイズの割り当てが実行される。
【００７０】
（４）ハードウェア複雑性解析
次に、本発明の効果を検証するために、本実施例の動き推定装置８を、ハードウェア・アーキテクチャに適用した場合における複雑性がどの程度であるかの評価について述べる。処理要素（ＰＥ：Processing Element）とメモリとで編成されるハードウェア・アーキテクチャにおいては、複雑性は、単純に探索点数に比例するとは限らない。そこで、本発明のハードウェア・アーキテクチャにおける複雑性の低減効果を分析・検証するため、一例として、スネーク走査（snake scan）ベースのアーキテクチャ（非特許文献２１）を用いて分析を行う。
【００７１】
スネーク走査は、全探索ＭＥで使用される広く用いられているメモリ・アクセス方式である。図１０に示すように、スネーク走査は、参照ブロックを保存するシフタ・レジスタ配列を更新するのに、次の５つの基本ステップ（Ａ〜Ｅ）が繰り返し実行される。
【００７２】
Ａ：下方向シフト，Ｎピクセルのフェッチ
Ｂ：下方向シフト，Ｎ＋１ピクセルのフェッチ
Ｃ：左方向シフト，ピクセルのフェッチなし
Ｄ：上方向シフト，Ｎピクセルのフェッチ
Ｅ：上方向シフト，Ｎ＋１ピクセルのフェッチ
【００７３】
１つのＮ×Ｎピクセルの画素ブロックをプレロードするためにＮクロック周期を必要とし、このＮクロック周期の後に、シフタ・レジスタ配列は、１サイクル当たり１検索点に必要なデータをＰＥに出力する。（２ＳＲ＋１）２個の検索点を有する検索ウィンドウに対しては、必要な処理サイクル数ＴＳＲは次式（１）のようになる。
【００７４】
【数１】
2014150467.tif 000003
【００７５】
それぞれの探索方向に１つの参照フレームが使用され、画素ブロックのサイズがＮ×Ｎピクセルであると仮定すると、典型的な左右対称のＳＲ割り当て（Ｂフレームの全探索ＭＥにおけるＳＲ割り当て）において、各画素ブロックにおいて双方向探索を行うには２ＴＳＲクロック周期が必要とされる。
【００７６】
スネーク走査法はＳＲに制限を課さないことに注意すると、ＭＥアーキテクチャを複数のＳＲをサポートするように構成し設計してもよい。そこで、同様のハードウェア・デザインを使用した場合、ＡＡＳＲＡ−Ｂに必要とされる処理サイクル数は、ＴＳＲ．Ｌ＋ＴＳＲ．Ｓに等しい。ＳＲ．Ｌ＝ＳＲ，ＳＲ．Ｓ＝λＳＲ（λ＜１）とすると、ＡＡＳＲＡ−Ｂを適用した場合の処理時間短縮率Δｃは、次式（２）のようになる。
【００７７】
【数２】
2014150467.tif 000004
【００７８】
両方法において同じハードウェアが使用されているため、処理時間は複雑性と等価であると見なすことができる。ＳＲ＝１２８，λ＝０．２５，Ｎ＝１６とすると、ＡＡＳＲＡ−Ｂの複雑性の低減率は、探索点数の低減率とほぼ同じく、４６％以上となる。
【００７９】
また、ＡＡＳＲＡ−Ｐのハードウェア・アーキテクチャにおける複雑性の低減率は、ＡＡＳＲＡ−Ｂの場合と同じである。
【００８０】
（５）符号化ビットレート
図１１は、全探索ＭＥを用いた動き推定装置及び本実施例の動き推定装置を用いたビデオ・エンコーダにおいて、ＳＲのサイズを変化させた場合の符号化ビットレートの変化を示す図である。比較のための全探索ＭＥのソフトウェアとしては、ＪＭ（非特許文献１９）及びＨＭ（非特許文献２０）を使用した。ＪＭはＩＢＢＢＰ（Ｉフレーム，Ｂフレーム×３，Ｐフレーム）のフレーム構造によって構成される。ＨＭはＧＯＰ（Group of Picture）サイズが８の階層的Ｂ構造によって構成される。ＪＭ及びＨＭに関しては、１個及び２個の参照フレームが、それぞれＰフレーム及びＢフレームに使用されている。また、量子化パラメータＱＰ＝３２である。
【００８１】
本実施例の動き推定装置においては、ＳＲ．ＳはＳＲ．Ｌの１／４に設定した。これは、ＳＲ＝ＳＲ．Ｌとした場合の全探索ＭＥと比べて、検索点数に関しては、複雑度を４６．８７５％（＝（１−（１／４）２）／２）低減させる。一方、符号化ビットレートのカーブは、ＪＭ及びＨＭとＡＡＳＲＡ−Ｂとは互いに近接している。従って、本実施例の動き推定装置は、全探索ＭＥを用いた動き推定装置に対し、符号化効率においてはほぼ同等の性能を達成できると評価することができる。
【実施例２】
【００８２】
（２）動き推定装置の構成及び動作
本実施例では、Ｂフレーム（双方向予測フレーム）に対してＡＡＳＲＡ−ＰＢスキームに基づき探索領域（ＳＲ）の割り当てを行う例について説明する。尚、動き推定装置８のブロック構成は、図７と同様であるとする。
【００８３】
以下、予測対象フレームＦ（０）内の画素ブロックを、奇数番目の画素ブロックとそれに隣接する偶数番目の画素ブロックとのペアであるブロックペアの単位に分割し、予測対象ブロックを含むブロックペアを予測対象ブロックペアという。
【００８４】
本実施例における探索領域設定部２５は、Ｐフレームに対しては、ＡＡＳＲＡ−Ｐスキームに基づき探索領域（ＳＲ）の割り当てを行う（実施例１参照）。一方、Ｂフレームに対しては、ＡＡＳＲＡ−ＰＢスキームに基づき探索領域（ＳＲ）の割り当てを行う。即ち、探索領域設定部２５は、予測対象フレームＦ（０）がＢフレームの場合、予測対象ブロックペア内の各予測対象ブロックのうちの何れか一方の予測対象ブロックに対しては、参照フレームＦ（−），Ｆ（＋）の両方に探索領域ＳＲ．Ｓを設定し、他方の予測対象ブロックに対しては、参照フレームＦ（−），Ｆ（＋）の一方に探索領域ＳＲ．Ｌ、他方に探索領域ＳＲ．Ｓを設定する。さらに、探索領域設定部２５は、予測対象ブロックペア内で探索領域ＳＲ．Ｌが割り当てられる予測対象ブロックの（偶奇性，探索方向）の組み合わせが、連続する４つの前記予測対象ブロックペアの間ですべて異なるものとなるように、探索領域ＳＲ．Ｓ，ＳＲ．Ｌの割り当てを逐次切り替える。
【００８５】
次に、本実施例の動き推定装置８について、以下その動作を説明する。尚、動き推定装置の全体動作に関しては、図８と同様であり、実施例１において既に述べたため説明は省略する。また、探索領域割当処理については、図９（ａ）の処理フローについても実施例１と同様である。従って、Ｐフレーム，Ｂフレームに対する探索領域割当処理（図９（ａ）のＳ２０２，Ｓ２０３に相当）に関してのみ説明する。尚、本実施例においては、探索領域の割当は、ブロックペアの単位で行うため、図８において「画素ブロック」を「ブロックペア」、「予測対象ブロック」を「予測対象ブロックペア」と読み替えるものとする。
【００８６】
図１２は、実施例２に係る動き推定装置８におけるＰフレーム及びＢフレームに対する探索領域割当処理を表すフローチャートである。尚、図１２（ａ）は、Ｐフレームに対する探索領域割当処理を表すフローチャートであるが、これは、図９（ｂ）の処理を、ブロックペア単位の処理に書き換えただけであり実際の処理内容は図９（ｂ）の処理と全く同じである。
【００８７】
図１２（ｂ）は、Ｂフレームに対する探索領域割当処理を表すフローチャートである。ＢフレームＳＲ割当処理（Ｓ２０３）では、まず、探索領域設定部２５は、予測対象ブロックペアのインデックスｍが０か否かを判定し（Ｓ６０１）、ｍ＝０の場合、ＳＲ（２ｍ，−）をＳＲ．Ｌに、ＳＲ（２ｍ，＋），ＳＲ（２ｍ＋１，−），ＳＲ（２ｍ＋１，＋）を共にＳＲ．Ｓに設定する（Ｓ６０２）。ここで、ｍ＝０では、まだ何れの画素ブロックのＭＶも設定されていないため、ＳＲ（２ｍ，＋）の探索中心となるＭＶＰはＭＶＰ＝（０，０）とする。実施例１と異なり、ＳＲ（２ｍ，＋）をＳＲ．ＬではなくＳＲ．Ｓとしたのは、すべてのブロックペアでＳＲ．Ｌの数を１つとすることで、すべてのブロックペア間での計算複雑性が等価とし、計算レートを一定にするためである。
【００８８】
一方、ｍ＞０の場合、探索領域設定部２５は、１つ前のブロックペアの画素ブロックＢ（２ｍ−２）で設定された探索領域のサイズＳＲ（２ｍ−２，−）がＳＲ．Ｌであるか否かを判定し（Ｓ６０３）、ＳＲ（２ｍ−２，−）＝ＳＲ．Ｌの場合、ＳＲ（２ｍ，−），ＳＲ（２ｍ＋１，−），ＳＲ（２ｍ＋１，＋）をＳＲ．Ｓ，ＳＲ（２ｍ，＋）をＳＲ．Ｌに設定する（Ｓ６０４）。
【００８９】
Ｓ６０３においてＳＲ（２ｍ−２，−）＝ＳＲ．Ｓの場合、探索領域設定部２５は、１つ前のブロックペアの画素ブロックＢ（２ｍ−２）で設定された探索領域のサイズＳＲ（２ｍ−２，＋）がＳＲ．Ｌであるか否かを判定し（Ｓ６０５）、ＳＲ（２ｍ−２，＋）＝ＳＲ．Ｌの場合、ＳＲ（２ｍ，−），ＳＲ（２ｍ，＋），ＳＲ（２ｍ＋１，＋）をＳＲ．Ｓ，ＳＲ（２ｍ＋１，−）をＳＲ．Ｌに設定する（Ｓ６０６）。
【００９０】
Ｓ６０５においてＳＲ（２ｍ−２，＋）＝ＳＲ．Ｓの場合、探索領域設定部２５は、１つ前のブロックペアの画素ブロックＢ（２ｍ−１）で設定された探索領域のサイズＳＲ（２ｍ−１，−）がＳＲ．Ｌであるか否かを判定し（Ｓ６０７）、ＳＲ（２ｍ−１，−）＝ＳＲ．Ｌの場合、ＳＲ（２ｍ，−），ＳＲ（２ｍ，＋），ＳＲ（２ｍ＋１，−）をＳＲ．Ｓ，ＳＲ（２ｍ＋１，＋）をＳＲ．Ｌに設定する（Ｓ６０８）。
【００９１】
Ｓ６０７においてＳＲ（２ｍ−１，−）＝ＳＲ．Ｓの場合、探索領域設定部２５は、ＳＲ（２ｍ，＋），ＳＲ（２ｍ＋１，−），ＳＲ（２ｍ＋１，＋）をＳＲ．Ｓ，ＳＲ（２ｍ，−）をＳＲ．Ｌに設定する（Ｓ６０９）。
【００９２】
以上のようにして、図４，図５に示したようなＡＡＳＲＡ−ＰＢスキームによる探索領域サイズの割り当てが実行される。
【００９３】
（２）ハードウェア複雑性解析
次に、本発明の効果を検証するために、本実施例の動き推定装置８を、ハードウェア・アーキテクチャに適用した場合における複雑性がどの程度であるかの評価について述べる。実施例１と同様、スネーク走査法を適用した場合について、ＡＡＳＲＡ−ＰＢスキームにおける各画素ブロックペア当たりの必要な処理サイクル数は、ＴＳＲ．Ｌ＋３ＴＳＲ．Ｓである。一方、探索領域のサイズをＳＲ．Ｌに固定した全探索ＭＥにおける各画素ブロックペア当たりの必要な処理サイクル数は４ＴＳＲ．Ｌである。従って、ＡＡＳＲＡ−ＰＢを適用した場合の処理時間短縮率Δｃは、次式（３）のようになる。
【００９４】
【数３】
2014150467.tif 000005
【００９５】
両方法において同じハードウェアが使用されているため、処理時間は複雑性と等価であると見なすことができる。ＳＲ＝１２８，λ＝０．２５，Ｎ＝１６とすると、ＡＡＳＲＡ−ＰＢの複雑性の低減率は、探索点数の低減率とほぼ同じく、７０％以上となる。
【実施例３】
【００９６】
（１）原理及び計算複雑性解析
本実施例では、全探索ＭＥ以外の公知のＭＥアーキテクチャに対して、本発明に係る動き推定技術を組み合わせた例について説明する。本発明に係る動き推定技術は、既存の各種アルゴリズム又は各種アーキテクチャに適用することができ、更なる複雑性の低減を図ることが可能となる。本実施例では、本発明に係る動き推定技術をＭＢ並列データ再利用スキーム（MB-parallel data reuse scheme：ＩＭＮＰＤＲ）（非特許文献１８）に組み合わせた例について説明する。
【００９７】
ＩＭＮＰＤＲは、オンチップメモリのバンド幅を低減するために開発された技術で、これは、特に高スループット・ビデオ・エンコーダにおいてＳＲＡＭ領域及び消費電力を低減させることができる。ＩＭＮＰＤＲの基本概念は、検索ウィンドウの重なり部分のメモリ・トラフィックを共有できるように、同時に複数のＭＢに対しＭＥを実行することである。Ｈ．２６４／ＡＶＣ  １０８０ｐ符号化のためのＩＭＮＰＤＲにおいて、４つのＭＢを並列演算する場合、典型的な設定ではＳＲのサイズは３２とされる。
【００９８】
ＩＭＮＰＤＲにＡＡＳＲＡ−Ｂを適用する際の問題の一つとして、並列処理されるＭＢが、同じ相対的な探索中心を共有しなければならないという問題がある。オリジナルのＩＭＮＰＤＲでは、常にゼロ中心ＭＥ（zero-center ME）（探索中心を（０，０）とするＭＥ）を実行するため、これは問題とはならない。ＡＡＳＲＡ−Ｂでは、ＳＲ．Ｌ方向に対しては、ゼロ中心ＭＥを適用することができる。しかし、前述の通り、ＳＲ．Ｓ方向のＭＥでは、先にＭＶが計算された各ＭＢによって与えられるより精度の高い探索中心（ＭＶＰなど）を用いる必要があるため、探索中心はＭＢ毎に動的となる。
【００９９】
そこで、上記問題を解決するため、ＩＭＮＰＤＲにＡＡＳＲＡ−Ｂを適用する場合、並列処理されるＭＢにおけるＳＲ．Ｓに対しては、図１３のように決定される同じ動きベクトル予測値を使用する。すなわち、図１３において４つのＭＢ（ＭＢ０，ＭＢ１，Ｍｂ２，ＭＢ３）のブロック組が並列処理されるとして、該ブロック組の左側のＭＶＡ、右上のＭＶＣ、及び上側の４つのＭＶ（ＭＶＢ０，ＭＶＢ１，ＭＶＢ２，ＭＶＢ３）の平均ＭＶＢを使用し、この３つのＭＶ（ＭＶＡ，ＭＶＢ，ＭＶＣ）の中央値を該ブロック組の各ＭＢの探索中心を指すベクトルＳＣとする。すなわち、
【０１００】
【数４】
2014150467.tif 000006
【０１０１】
ここで、ｐは並列処理されるＭＢの数であり、ここではｐ＝４である。尚、並列処理されるＭＢの数ｐに関しては、適宜変更することが可能である。
【０１０２】
また、４つのＭＢ（ＭＢ０，ＭＢ１，ＭＢ２，ＭＢ３）は同じ参照方向で同じサイズのＳＲを有することとし、一の方向にはＳＲ．Ｓ、他の方向にはＳＲ．Ｌが割り当てる。ＳＲ．ＳとＳＲ．Ｌとの割り当ての切り換えは、１ブロック組（４つのＭＢ）毎に１回実行される。これによって、ＳＲ．Ｓ探索の動的特徴を担保したまま、ＩＭＮＰＤＲにＡＡＳＲＡ−Ｂを適用することが可能となる。
【０１０３】
スネーク走査に続いて、並列なｐ個のＭＢの演算に必要なＩＭＮＰＤＲのサイクル数は、次式により表される。
【０１０４】
【数５】
2014150467.tif 000007
【０１０５】
ここで、元のスネーク走査のサイクル数（式（１））に対する追加のサイクル数は、検索ウィンドウの重なりのない部分に対する部分的ＰＥアイドル時間（partial PR idle time）から来ている。ＳＲ＝３２，ＳＲ．Ｌ＝ＳＲ，ＳＲ．Ｓ＝０．２５ＳＲ，ｐ＝４，Ｎ＝１６として、式（２）を式（５）に代入すると、ＩＭＮＰＤＲに基づいてＡＡＳＲＡ−Ｂを適用することによるサイクル数および複雑性の低減率は、約４３％である。
【０１０６】
ＡＡＳＲＡ−Ｐは、単一の参照方向に対して実行されたＡＡＳＲＡ−Ｂであるとみなすことができるため、ＡＡＳＲＡ−Ｂと同様に、これをＩＭＮＰＤＲに適用することができ、Ｐフレームに対して同じ複雑性の低減率を達成することができる。
【０１０７】
ＡＡＳＲＡ−ＰＢをＩＭＮＰＤＲに適用するためには、図１３に示した方法と同様に、隣接する４つのＭＢは、同じ探索中心を指すベクトルＳＣを共有するＭＢグループとみなす。２つの連続するＭＢグループ毎に、ＭＢグループ・ペアを構成する。そして、図５と同様に、ＭＢグループ・ペアごとに１回ＳＲ．Ｌの割り当て切り換えを実行することによって、ＡＡＳＲＡ−ＰＢを実現することができる。ＳＲ＝３２，ＳＲ．Ｌ＝ＳＲ，ＳＲ．Ｓ＝０．２５ＳＲ，ｐ＝４，Ｎ＝１６として、式（３）を式（５）に代入すると、ＩＭＮＰＤＲに基づいてＡＡＳＲＡ−ＰＢを適用することによるサイクル数および複雑性の低減率は、約６４％である。
【０１０８】
（２）動き推定装置の具体的構成及び動作
図１４は、本発明の実施例３に係る動き推定装置の構成を示すブロック図である。動き推定装置８は、フレームメモリ２１、動きベクトル記憶部２２、探索中心（ＳＣ）演算部２３、探索中心設定部２４、探索領域設定部２５、及びブロック探索部２６を備えている。尚、フレームメモリ２１、動きベクトル記憶部２２に関しては、図７の対応する構成部分と同様である。
【０１０９】
ＳＣ演算部２３は、図１３に示したように、水平に連続して並ぶ４つの予測対象ブロックを、１つの予測対象ブロックグループとし、各予測対象ブロックグループに対して、当該予測対象ブロックグループに隣接するブロックのうち先にＭＶの推定が終了したブロックのＭＶ（ＭＶＡ，ＭＶＢ０，ＭＶＢ１，ＭＶＢ２，ＭＶＢ３，ＭＶＣ）から、式（４ａ），（４ｂ）により、当該予測対象ブロックグループの各予測対象ブロックの探索中心を指す探索中心ベクトルＳＣを算出する。
【０１１０】
探索中心設定部２４は、予測対象ブロックグループ内の予測対象ブロック（ＭＢ０，ＭＢ１，ＭＢ２，ＭＢ３）に対して、探索中心ベクトルＳＣにより、各参照方向の探索中心の設定を行う。
【０１１１】
探索領域設定部２５は、予測対象ブロックグループ内の予測対象ブロック（ＭＢ０，ＭＢ１，ＭＢ２，ＭＢ３）に対して、探索中心設定部２４により設定された探索中心を中心として探索領域の設定を行う。この際、各予測対象ブロックの各参照方向に対する探索領域サイズの割り当ては、Ｐフレームに対してはＡＡＳＲＡ−Ｐ、Ｂフレームに対してはＡＡＳＲＡ−Ｂにより割り当てを行う。
【０１１２】
各ブロック探索部２６は、それぞれの予測対象ブロック（ＭＢ０，ＭＢ１，ＭＢ２，ＭＢ３）に対して並列処理が行われ、各予測対象ブロックに対し探索領域設定部２５により設定された探索領域において、各予測対象ブロックに最も近似する参照ブロックを探索し、動きベクトルを決定する。決定された動きベクトルは、動きベクトル記憶部２２に格納される。
【０１１３】
以上のように構成された本実施例に係る動き推定装置８について、以下その動作を説明する。図１５は、実施例３に係る動き推定装置の全体動作を表すフローチャートである。
図１５において、ステップＳ１０１〜Ｓ１０２及びＳ１１１〜Ｓ１１２は、図８の対応するステップにおける処理と同様であるので、説明は省略する。
【０１１４】
ステップＳ１０２の次に、ブロック探索部２６は、予め定められたコンフィギュレーション（初期設定）に従い、予測対象フレームＦ（０）を所定サイズのＭ個の画素ブロックＢ（ｉ）（ｉ＝０，１，２，…，Ｍ−１）に区画し、連続する４つの予測対象ブロックＢ（４ｎ），Ｂ（４ｎ＋１），Ｂ（４ｎ＋２），Ｂ（４ｎ＋３）を予測対象ブロックに設定し、連続する４つの予測対象ブロックＢ（４ｎ），Ｂ（４ｎ＋１），Ｂ（４ｎ＋２），Ｂ（４ｎ＋３）のデータをフレームメモリ２１から読み出す（Ｓ７０１）。ここで、ｎ（＝０，１，２，…，Ｍ／４−１）はグループ番号である。この４つの予測対象ブロックを予測対象ブロックグループＧＢ（ｎ）＝｛Ｂ（４ｎ），Ｂ（４ｎ＋１），Ｂ（４ｎ＋２），Ｂ（４ｎ＋３）｝とする。尚、画素ブロックＢ（ｉ）のインデックスｉは、予測対象フレームＦ（０）の左上隅から、ラスタ走査方向に順次割り振られており、ブロック探索部２６は、各イタレーション（iteration）に於いて、予測対象ブロックＢ（ｉ）を、インデックスｉが小さい順に選択していく。
【０１１５】
次に、ＳＣ演算部３０は、動きベクトル記憶部２２に記憶された既算出の動きベクトルを用いて、予測対象ブロックグループＧＢ（ｎ）に対する探索中心ベクトルＳＣを算出する（Ｓ７０２）。探索中心ベクトルＳＣの算出処理は、図１３及び式（４ａ）（４ｂ）に示した方法で実行される。尚、（ＭＶＡ，ＭＶＢ０，ＭＶＢ１，ＭＶＢ２，ＭＶＢ３，ＭＶＣ）のうちで既算出の動きベクトルがないものについては、ＭＶは０ベクトルに設定され、式（４ａ）（４ｂ）に代入される。
【０１１６】
次に、探索領域設定部２５は、予測対象ブロックグループＧＢ（ｎ）に対し、ＡＡＳＲＡスキームにより、参照フレームＦ（−）又はＦ（＋）における探索領域（ＳＲ）サイズの割り当てを行う（Ｓ７０３）。以下、予測対象ブロックグループＧＢ（ｎ）に対する参照フレームＦ（−）方向のＳＲサイズをＳＲ（ｎ，−）、参照フレームＦ（＋）方向のＳＲサイズをＳＲ（ｎ，＋）と記す。このＳＲ割当処理の詳細は、図９と同様である。図９において、「Ｓ１０６」を「Ｓ７０３」に、「予測対象ブロック」を「予測対象ブロックグループ」に、「Ｂ（ｎ）」を「ＧＢ（ｎ）」に読み替えればよい。
【０１１７】
次に、探索中心設定部２４は、各予測対象ブロック｛Ｂ（４ｎ），Ｂ（４ｎ＋１），Ｂ（４ｎ＋２），Ｂ（４ｎ＋３）｝について、参照フレームＦ（−）又はＦ（＋）に対して、探索中心の設定を行う（Ｓ７０４）。ここで、ＳＲ（ｉ，−）又はＳＲ（ｉ，＋）が相対的に大きい探索領域ＳＲ．Ｌの場合には、当該探索方向に対する探索中心は０ベクトル又は当該探索方向の探索中心ベクトルＳＣの何れかに設定される。どちらにするかは、コンフィギュレーションにより自由に選択することができる。また、ＳＲ（ｎ，−）又はＳＲ（ｎ，＋）が相対的に小さい探索領域ＳＲ．Ｓの場合には、当該探索方向に対する探索中心は当該探索方向の探索中心ベクトルＳＣに設定される。尚、ＳＲ．Ｌ，ＳＲ．Ｓのサイズは、コンフィギュレーションにより自由に設定することができる。
【０１１８】
次に、ブロック探索部２６は、参照フレームＦ（−），Ｆ（＋）の一方（Ｐフレームの場合）又は双方（Ｂフレームの場合）において、設定された探索中心を基準として、サイズＳＲ（ｉ，−）又はＳＲ（ｉ，＋）（ｉ＝４ｎ，４ｎ＋１，４ｎ＋２，４ｎ＋３）の探索領域を設定し（Ｓ７０５）、設定された探索領域内で全探索によるブロックマッチングを行い、予測対象ブロックＢ（ｉ）に最も近似する参照ブロックを索出する（Ｓ７０７）。ここで、ブロックマッチングは、常法に従い、近似性の判定は、基本的には両ブロック（予測対象ブロックと参照ブロック）の各画素間の二乗誤差和又は絶対値誤差和が使用される。ブロック探索部２６は、予測対象ブロックＢ（ｉ）から索出された参照ブロックＢＲ（ｉ）へのベクトルを動きベクトルＭＶ（ｉ）として、動きベクトル記憶部２２に保存する。
【０１１９】
尚、ステップＳ７０３〜Ｓ７０７までの動作については、各予測対象ブロック｛Ｂ（４ｎ），Ｂ（４ｎ＋１），Ｂ（４ｎ＋２），Ｂ（４ｎ＋３）｝について、並列処理により実行される。
【０１２０】
以上の本実施例の構成においては、探索領域設定部２５が、Ｂフレームに対して、ＡＡＳＲＡ−Ｂにより探索領域の割り当てを行う例について説明したが、ＡＡＳＲＡ−Ｂに代えてＡＡＳＲＡ−ＰＢにより探索領域の割り当てを行うように構成してもよい。この場合、図１５のステップＳ７０３におけるＳＲ割当処理の詳細は、図９（ａ）及び図１２と同様となる。この場合、図９（ａ）において、「Ｓ１０６」を「Ｓ７０３」に読み替え、図１２において、「予測対象ブロック」を「予測対象ブロックグループ」に、「Ｂ（ｎ）」を「ＧＢ（ｎ）」に、「ブロックインデックス」を「ブロックグループインデックス」に、「ブロックペアインデックス」を「ブロックグループペアインデックス」に、それぞれ読み替えればよい。
【実施例４】
【０１２１】
本実施例では、本発明に係る動き推定技術を、階層的探索アーキテクチャと組み合わせた場合の効果について説明する。階層的探索（Hierarchical search）（非特許文献１０，１１参照）は、大きな探索範囲でＭＥを実現するための有力な手法である。ＰＭＲＭＥアーキテクチャ（非特許文献１０）は、それぞれ、サイズが８，３２，１２８のＳＲをカバーするため、オリジナル（Ｌ０）リファレンス，１：４ダウン・サンプリング（Ｌ１）リファレンス，及び１：１６ダウン・サンプリング（Ｌ２）リファレンスに基づく３階層の探索レベルを適用している。これらのレベルでの探索は、それぞれ専用回路において並列に実行される。Ｌ１及びＬ２では、ゼロ探索中心によるＭＥが実行され、Ｌ０では、探索中心にＭＶＰが使用される。ＳＲのサイズ及び解像度の双方が考慮されているため、各レベルにおけるＭＥは、計算複雑度においては近似している。
【０１２２】
ＰＭＲＭＥにＡＡＳＲＡスキームを適用する場合、ＳＲ．Ｌによる探索は３つのレベルのすべてに於いて行う。一方、ＳＲ．Ｓによる探索は、元々探索中心にＭＶＰを使用しているレベルＬ０での探索にのみ適用する。上記ＰＭＲＭＥのＳＲサイズに合わせる場合、コンフィギュレーションの設定は、ＳＲ．Ｌ＝１２８，ＳＲ．Ｓ＝８とすればよい。
【０１２３】
図１６に、同等のスループットを達成するために必要な相対的ハードウェア並列性（relative hardware parallelism）を示す。Ｐフレームに対する元のＰＭＲＭＥを並列性を表すためのベースラインとする。Ｐフレームに対する元のＰＭＲＭＥでは、各レベルに於いて１度の並列性（parallelism）が必要とされる。ＰＭＲＭＥにＡＡＳＲＡ−Ｐを適用した場合、レベルＬ１，Ｌ２はＳＲ．Ｌ探索であるため、レベルＬ０におけるＳＲ．Ｓ探索を２回実行する毎に、レベルＬ１，Ｌ２におけるＳＲ．Ｌ探索がそれぞれ１回実行される。従って、これらのレベルＬ１，Ｌ２における並列性は半分とされる。元のＰＭＲＭＥにおける３階層のレベルでの探索には、同じハードウェアコストがかかると仮定すると、これは全体の複雑性が３３％減少する結果となる。
【０１２４】
Ｂフレームに対する元のＰＭＲＭＥでは、２つの参照方向に対し、各レベルに於いて二度の並列性が必要とされる。これに対し、ＰＭＲＭＥにＡＡＳＲＡ−Ｂを適用した場合、レベルＬ１，Ｌ２において１つの参照方向に対してのみＳＲ．Ｌ探索が実行されるため、これら２レベルにおいては、それぞれ１度の並列性のみが必要とされる。その結果、元のＰＭＲＭＥと比べて全体の複雑性は３３％減少する。ＰＭＲＭＥにＡＡＳＲＡ−ＰＢを適用した場合には、レベルＬ１，Ｌ２に必要な並列性は更に半分となる。従って、元のＰＭＲＭＥと比べて全体の複雑性は５０％減少する。
【符号の説明】
【０１２５】
１  ビデオ・エンコーダ
２  イントラ符号化部
３  インター符号化部
４  逆量子化器
５  逆ＤＣＴ演算器
６  加算器
７  デブロッキング・フィルタ
８  動き推定装置
９  動き補償器
１０  ＤＣＴ演算器
１１  量子化器
１２  エントロピー符号化器
１３  加算器
１４  ＤＣＴ演算器
１５  量子化器
１６  エントロピー符号化器
２１  フレームメモリ
２２  動きベクトル記憶部
２３  動きベクトル予測値（ＭＶＰ）演算部
２４  探索中心設定部
２５  探索領域設定部
２６  ブロック探索部
３０  探索中心（ＳＣ）演算部
【図１】
2014150467.tif 000008
【図２】
2014150467.tif 000009
【図３】
2014150467.tif 000010
【図４】
2014150467.tif 000011
【図５】
2014150467.tif 000012
【図６】
2014150467.tif 000013
【図７】
2014150467.tif 000014
【図８】
2014150467.tif 000015
【図９】
2014150467.tif 000016
【図１０】
2014150467.tif 000017
【図１１】
2014150467.tif 000018
【図１２】
2014150467.tif 000019
【図１３】
2014150467.tif 000020
【図１４】
2014150467.tif 000021
【図１５】
2014150467.tif 000022
【図１６】
2014150467.tif 000023
【手続補正書】
【提出日】平成26年3月26日(2014.3.26)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2014150467.tif 000024
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2014150467.tif 000025
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図１０
【補正方法】変更
【補正の内容】
【図１０】
2014150467.tif 000026
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図１１
【補正方法】変更
【補正の内容】
【図１１】
2014150467.tif 000027