(57)【要約】【課題】少ないハードウェア規模で、十分な動き検出範囲の広さを確保しつつ、動きベクトルの精度を維持することができる動き検出装置を提供する。【解決手段】動き検出装置１０００は、サブブロックＡバッファ１００３、サブブロックＢバッファ１００４、サブブロックＣバッファ１００５、サブブロックＤバッファ１００６、サブブロック選択・探索中心点設定部１００７、ブロック間コスト計算回路１００８、動きベクトル決定部１００９を備え、動き検出対象ブロックを互いに位相の異なる位置でサブサンプリングして分離し、各サブブロックと、間引き参照画像の動き検出範囲との間でブロックマッチングを行い、動きベクトルを求める。【選択図】      図１
2008085674.tif 000002
【特許請求の範囲】
【請求項１】
符号化画像から切り出された動き検出対象ブロックと、参照画像との間で動きベクトルの検出を行う動き検出装置において、
前記動き検出対象ブロックを互いに画素のサンプリング位置が異なる複数のサブブロックに分離するサンプリング部と、
前記参照画像から、前記複数のサブブロックの中のいずれか一つのサブブロックと同じ位置で画素をサンプリングすることにより間引き参照画像を生成する間引き参照画像生成部と、
前記複数のサブブロックの各々に関して、探索中心点を基準にして前記各サブブロックと前記間引き参照画像との間のブロックマッチングにより前記各サブブロックの動きベクトルを求めるとともに、前記動きベクトルを用いて次のサブブロックの前記探索中心点を設定する動きベクトル算出部と、
前記複数のサブブロックに関して求められた複数の動きベクトルの中から最も類似度が高い動きベクトルを選択することにより、前記動き検出対象ブロックの動きベクトルを求める最終動きベクトル選択部と、
を有する動き検出装置。
【請求項２】
前記探索中心点は、
前記動き検出対象ブロックの周囲に位置し、かつ、既にブロックマッチングが完了して求められた動きベクトルから予測する予測ベクトルの終点である、
請求項１記載の動き検出装置。
【請求項３】
前記サブブロックは、前記間引き参照画像と同じ位置で画素をサンプリングしたサブブロックであり、
前記探索中心点は、前記動きベクトルの始点である、
請求項１記載の動き検出装置。
【請求項４】
前記サブブロックは、前記間引き参照画像と同じ位置で画素をサンプリングしたサブブロックであり、
前記動き検出対象ブロックの周囲に位置し、かつ、既にブロックマッチングが完了して求められた動きベクトルから予測する予測ベクトルの終点を探索中心点とした場合に、
（１）前記探索範囲内に前記動きベクトルの始点が含まれていれば、そのまま予測ベクトルの終点を前記探索中心点とし、
（２）前記動きベクトルの始点が含まれていなければ、前記動きベクトルの始点が含まれるように移動した位置を探索中心点とする、
請求項１記載の動き検出装置。
【請求項５】
前記参照画像の水平方向のみの間引きを行い、前記ブロックマッチングのコスト計算に基づいてフィールド符号化モードの類似度とフレーム符号化モードの類似度をそれぞれ算出する類似度計算部と、
前記類似度が高い方のモードで、前記符号化画像をブロック単位に符号化する符号化部と、
を有する請求項１記載の動き検出装置。
【請求項６】
符号化画像から切り出された動き検出対象ブロックと、参照画像との間で動きベクトルの検出を行う動き検出方法において、
前記動き検出対象ブロックを互いに画素のサンプリング位置が異なる複数のサブブロックに分離し、
前記参照画像から、前記複数のサブブロックの中のいずれか一つのサブブロックと同じ位置で画素をサンプリングすることにより間引き参照画像を生成し、
前記複数のサブブロックの各々に関して、探索中心点を基準にして前記各サブブロックと前記間引き参照画像との間のブロックマッチングにより前記各サブブロックの動きベクトルを求めるとともに、前記動きベクトルを用いて次のサブブロックの前記探索中心点を設定し、
前記複数のサブブロックに関して求められた複数の動きベクトルの中から最も類似度が高い動きベクトルを選択することにより、前記動き検出対象ブロックの動きベクトルを求める、
動き検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化における動き検出装置及びその方法に関するものである。
【背景技術】
【０００２】
動画像符号化では、動画像の時間方向の冗長性を削減するために画像間の予測を用いて符号化を行う。画像間の予測では、画像ブロックの変移量を示す動きベクトルを用いるが、動きベクトルを決定するための計算量は非常に大きく、この削減は非常に重要な問題である。
【０００３】
この動きベクトル検出処理の代表的な方法に全探索がある。これは、参照画像内の全ての参照画像ブロックそれぞれと、動き検出対象ブロックとの間で類似度を算出して、類似度が高い参照画像ブロックへの変位量を動きベクトルとして決定するというものである。全探索は、類似度を算出するべきブロック数が多く、またブロック間の類似度を求める際にも、ブロック中の画素全てに対して差分絶対値和を計算する必要があるため、膨大な計算量を要する。
【０００４】
また、様々な動き検出処理方法が各種論文書籍等で紹介されているが、ハードウェアにおける動き検出処理の問題として、参照画像をメモリから動き検出部に読み込む際の通信量が非常に大きい点や、高精度な動き検出装置を実現するためにはハードウェアコストが非常に大きくなるという問題がある。
【０００５】
これに対して、特許文献１では、動き検出の際に用いる参照画像をサブサンプリングすることで、メモリから動き検出部への参照画像の転送量、参照画像を保持するためのメモリ量、動き検出部のハードウェア規模等を削減している。さらに、動き検出対象ブロックを互いに位相が異なる複数のブロックに分離し、各分離した動き検出対象ブロックと参照画像間の動き検出を並列に行うため、画像のサブサンプリング位置が異なることを利用した一画素精度の高精度な動き検出を可能としている。
【特許文献１】特開２０００−４４４１公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
近年、映像のハイビジョン化や、動画像符号化技術の向上（規格上参照可能な画像枚数が増えたことで圧縮性能が向上）に伴い、高性能な動画像圧縮を実現するためには、動き検出処理において、より広範囲で多数の画像を調査する必要が出てきた。そのため、許容可能なハードウェア規模でＬＳＩを実現しようとすると、ハイビジョン映像に対して十分広い範囲の動き検出処理を行うことが困難となった。また、複数の参照画像を調査することも困難であるため、最新の動画像符号化規格の潜在能力も引き出すことができない。
【０００７】
そこで本発明は、従来方法と比較して、少ないハードウェア規模で、十分な動き検出範囲の広さを確保しつつ、動きベクトルの精度を維持することができる動き検出装置及びその方法を提供する。
【課題を解決するための手段】
【０００８】
本発明は、符号化画像から切り出された動き検出対象ブロックと、参照画像との間で動きベクトルの検出を行う動き検出装置において、前記動き検出対象ブロックを互いに画素のサンプリング位置が異なる複数のサブブロックに分離するサンプリング部と、前記参照画像から、前記複数のサブブロックの中のいずれか一つのサブブロックと同じ位置で画素をサンプリングすることにより間引き参照画像を生成する間引き参照画像生成部と、前記複数のサブブロックの各々に関して、探索中心点を基準にして前記各サブブロックと前記間引き参照画像との間のブロックマッチングにより前記各サブブロックの動きベクトルを求めるとともに、前記動きベクトルを用いて次のサブブロックの前記探索中心点を設定する動きベクトル算出部と、前記複数のサブブロックに関して求められた複数の動きベクトルの中から最も類似度が高い動きベクトルを選択することにより、前記動き検出対象ブロックの動きベクトルを求める最終動きベクトル選択部と、を有する動き検出装置である。
【発明の効果】
【０００９】
これにより本発明は、動き検出範囲の広さを確保しつつ、動きベクトルの精度を維持することができる。
【発明を実施するための最良の形態】
【００１０】
（実施形態の概要）
（１）定義
まず、本明細書における用語の定義を説明する。
【００１１】
「サブサンプリング」とは、動き検出対象ブロックから画素（ピクセル）をサンプリングすることをいう。
【００１２】
「動き検出対象サブブロック」とは、動き検出対象ブロックから任意の画素をサブサンプリングして分離したサンプリングブロックを意味する。
【００１３】
「位相が異なる動き検出対象サブブロック」とは、動き検出対象ブロックから画素をサブサンプリングするときに、画素のサンプリング位置が異なるサブブロックの関係を意味する。
【００１４】
「水平方向」とは、画像の横方向をいい、「垂直方向」とは、画像の縦方向という。
【００１５】
（２）従来例の概要
図９は、特許文献１による動き検出処理（以下、従来例と呼ぶ）の概要である。
【００１６】
従来例では、動き検出対象ブロックを互いに位相の異なる画素位置でサブサンプリングして分離したサブブロックと、サブサンプリングした参照画像間で動き検出処理であるブロックマッチングを行う。図９においては、動き検出対象サブブロック（以下、単に「サブブロック」という）Ａ、サブブロックＢ、サブブロックＣ、サブブロックＤ、ローカルメモリ上の参照画像領域で表現されている。
【００１７】
従来例において必要となるハードウェア規模と計算時間について示す。
【００１８】
サブブロックＡ、サブブロックＢ、サブブロックＣ、サブブロックＤのブロックマッチングは、並列で行うため、４つの動きベクトル検出処理を行うブロックマッチング回路が必要となる。また、動き検出範囲を［±ｘ，±ｙ］としたとき、参照画像領域（サブサンプリング前）の面積は（２ｘ＋１５）＊（２ｙ＋１５）、水平垂直両方向で１／２サブサンプリングを行うハードウェアにおいて、ブロックマッチング回路への参照画像の読み込み画素数は、（ｘ＋７）＊（ｙ＋７）となる。ブロックマッチングを行う点数はｘ＊ｙ点であり、これはブロックマッチングに要する時間に比例する。
【００１９】
（３）本実施形態の概要
次に、図２を用いて本発明の一実施形態におけるブロックマッチングのハードウェア規模及び計算時間について示す。
【００２０】
本実施形態においても、従来例と同様に、動き検出対象ブロックを互いに位相の異なる画素位置で画像をサブサンプリング分離したブロックと、サブサンプリングした参照画像間でブロックマッチングを行う。図２において、サブブロックＡ、サブブロックＢ、サブブロックＣ、サブブロックＤ、ローカルメモリ上の参照画像領域と表現する。
【００２１】
サブブロックＡ，サブブロックB，サブブロックＣ，サブブロックＤに分離する。動き検出範囲をそれぞれ［±ｘ／４，±ｙ／４］としたとき、参照画像領域（サブサンプリング前）の面積は、（ｘ＊２＋１５）＊（ｙ＊２＋１５）が必要となる。これは、計４回のブロックマッチングで探索窓がシフトしていくときに最大到達可能な範囲である。水平垂直両方向で１／２サブサンプリングを行うハードウェアにおいて、参照画像のブロックマッチング回路への読み込み画素数は、（ｘ／４＋７）＊（ｙ／４＋７）となり、ブロックマッチング点数はｘ／４＊ｙ／４点である。４回のブロックマッチングでの合計の参照画像読み込み画素数は、（ｘ／２＋１４）＊（ｙ／２＋１４）、ブロックマッチング点数（時間）はｘ／２＊ｙ／２となる。
【００２２】
一方、１回の動き検出範囲が［±ｘ／４，±ｙ／４］である。これを４回行うと、最大で［±ｘ，±ｙ］の範囲の動きベクトル検出が可能となる。また、ブロック間のコスト計算を行う回路は、従来例のように４並列とせず、同じ回路を使い回すため従来例の１／４となる。
【００２３】
（４）比較
図１０に従来例と本実施形態の比較を示す。
【００２４】
従来例と本実施形態とで同一動き検出範囲を設定した場合に、本実施形態では、従来例の４分の１の計算時間と、４分の１のブロックマッチング回路ですむ。別の表現では、同一計算時間、同一回路数とした場合に、より広範囲、複数枚の参照画像に対してブロックマッチングを行うことが可能となる。
【００２５】
すなわち、許容可能な回路規模で動き検出装置を実現した場合においても、ハイビジョン映像を対象とし、かつ、参照画像フレームを複数枚利用しつつ十分な広さの探索範囲を設定することが可能となる。
【００２６】
また、本実施形態は、繰り返し行う探索において、動きベクトルの位相を変えながら、探索窓が解（動きベクトル位置）にシフトしていく方法であるため、初期探索中心点近辺に解があれば、探索窓は大きくシフトせず密な評価をし、解が遠い場合には、探索窓を大きくシフトすることにより、荒い探索にはなるが、遠くまで探索するというように、動き量に合わせて限られたハードウェアリソースを適応的に割り当てることが可能となる。
【００２７】
（第１の実施形態）
本発明の第１の実施形態の動き検出装置について図１〜図４に基づいて説明する。本実施形態は、１６ｘ１６ブロックを８ｘ８ブロックの４つに分離した場合である。なお、本実施形態の動き検出装置は、動画像符号化装置における動きベクトルの検出に適用した場合について説明する。
【００２８】
（１）動き検出装置の構成
図１は、本実施形態に関わる動き検出装置１０００の構成を示すブロック図である。
【００２９】
図１に示す様に動き検出装置１０００は、サブブロックＡバッファ１００３、サブブロックＢバッファ１００４、サブブロックＣバッファ１００５、サブブロックＤバッファ１００６、サブブロック選択・探索中心点設定部（以下、単に「設定部」という）１００７、ブロック間コスト計算回路（以下、単に「計算回路」という）１００８、動きベクトル決定部１００９、符号化部１０１０を備えている。
【００３０】
（１−１）サブサンプリング
動き検出対象画像である符号化画像１００１から切り出された動き検出対象ブロック１００２は、異なる位相でサブサンプリングして分離され、サブブロックＡバッファ１００３、サブブロックＢバッファ１００４、サブブロックＣバッファ１００５、サブブロックＤバッファ１００６にそれぞれ格納される。
【００３１】
このときの、サブサンプリング分離方法は、図３に示す通りであり、動き検出対象ブロック３０００は、サブブロックＡ３００１、サブブロックＢ３００２、サブブロックＣ３００３、サブブロックＤ３００４に分離される。
【００３２】
（１−２）設定部１００７
設定部１００７は、サブブロックＡ、サブブロックＢ、サブブロックＣ、サブブロックＤにブロックマッチングを適用する順序と動き検出の際の動きベクトル探索範囲の設定を行う。
【００３３】
本実施形態ではサブブロックに対する動き検出の順序を、サブブロックＡ、サブブロックＢ、サブブロックＣ、サブブロックＤとする。
【００３４】
（１−３）計算回路１００８
計算回路１００８は、設定部１００７から受けた動きベクトル探索範囲となる領域を、間引き参照画像１０１１から動き検出範囲１０１２として切り出し、各サブブロックと動き検出範囲１０１２との間でブロックマッチングを行う。なお、「間引き参照画像１０１１」とは、サブブロックのいずれかと同一の位相で、水平垂直両方向でそれぞれ２分の１サブサンプリングしてある画像をいう。
【００３５】
ブロックマッチングとは、サブブロックと、動き検出範囲１０１２内のブロック間の類似度を求める処理であり、ブロック間の類似度には、一般的にＳＡＤ（Sum of Absolute Difference）、ＳＳＤ（Sum of Squared Difference）、ＭＥ（Motion Estimation）コスト等を用いる。ＭＥコストとは、動きベクトルの符号量や参照画像を指定するための符号量を見積もり考慮したものである。
【００３６】
（１−４）動きベクトル決定部１００９
動きベクトル決定部１００９は、計算回路１００８から、動きベクトルとブロック間の類似度を随時受け取り、最終的に類似度の高いものを動きベクトルとして決定する。
【００３７】
また、各サブブロックと動き検出範囲のブロックマッチングが完了するたびに、それぞれのブロックマッチングで最も類似度が高かった動きベクトルを、次のサブブロックのブロックマッチングを行う際に、参照画像の動き検出範囲を設定するための探索中心点として利用する。
【００３８】
（１−５）符号化部１０１０
直行変換・量子化部等の符号化部１０１０は、動きベクトル決定部１００９によって決定した動きベクトルを受け取り、動画像符号化におけるその後の処理である詳細動き検出、符号化モード判定、直行変換、量子化、デブロッキング処理等を行う。
【００３９】
（２）動き検出における動作
動き検出における動作の様子を図２に示す。
【００４０】
符号化画像から切り出された動き出対象ブロックは、図２中に示すように異なる位相の画素位置でサブサンプリングされ、サブブロックＡ、サブブロックＢ、サブブロックＣ、サブブロックＤに分離される。
【００４１】
これらは、それぞれ図１におけるサブブロックＡバッファ、サブブロックＢバッファ、サブブロックＣバッファ、サブブロックＤバッファに格納される。
【００４２】
間引き参照画像から切り出した探索領域と、各サブブロック間でブロックマッチングを行うが、この順序は、図２に示すように、<1> サブブロックＡと探索領域、<2> サブブロックＢと探索領域、<3> サブブロックＣと探索領域、<4> サブブロックＤと探索領域の順として説明する。なお、図中では丸数字で記載しているが、明細書中では丸数字が表現できないので、＜１＞などのように表現する。
【００４３】
<1> サブブロックＡのブロックマッチング時の探索中心点の設定は、周囲のブロックが持つ動きベクトルから得られる予測ベクトルの終点により決定する。予測ベクトルは、動画像符号化の規格で定められており、例えば、Ｈ．２６４／ＡＶＣにおける代表的な例は、動き検出対象ブロックの左のブロック、上のブロック、右上のブロックの持つ動きベクトルのメディアン予測で得られるベクトルである。また、周囲のブロックの符号化モードが確定していない場合は、予測ベクトルに用いるベクトルを、動き検出結果の動きベクトルで代用したものを用いる。
【００４４】
<1> のブロックマッチングの結果、最もブロック間の類似度の高かった動きベクトルの終点を、<2> のブロックマッチングの際の探索中心点として利用する。
【００４５】
<2> のブロックマッチングの結果、最もブロック間の類似度の高かった動きベクトルの終点を、<3> のブロックマッチングの際の探索中心点として利用する。
【００４６】
<3> のブロックマッチングの結果、最もブロック間の類似度の高かった動きベクトルの終点を、<4> のブロックマッチングの際の探索中心点として利用する。
【００４７】
計４回のブロックマッチングにおいて、探索中心点がそれぞれ設定され、探索領域が図２のようにシフトする。
【００４８】
（３）動きベクトルの算出方法
次に、動きベクトルの算出方法を図４に示す。
【００４９】
間引き参照画像は、水平垂直両方向それぞれの偶数位置をサブサンプリングしたものを用いると仮定する。
【００５０】
動き検出対象ブロックに関しては、サブブロックＡは、水平方向の偶数位置／垂直方向の偶数位置をサブサンプリングしていると仮定する。
【００５１】
サブブロックＢは、水平方向の奇数位置／垂直方向の偶数位置をサブサンプリングしていると仮定する。
【００５２】
サブブロックＣは、水平方向の偶数位置／垂直方向の奇数位置をサブサンプリングしていると仮定する。
【００５３】
サブブロックＤは、水平方向の奇数位置／垂直方向の奇数位置をサブサンプリングしていると仮定する。
【００５４】
サブブロックＡのブロックマッチング（図２中では<1> のブロックマッチング）で得られる動きベクトルの位相は、水平方向の偶数／垂直方向の偶数（図４中の左上、例では（６，４））となる。
【００５５】
サブブロックＢのブロックマッチング（図２中では<2> のブロックマッチング）で得られる動きベクトルの位相は、水平方向の奇数／垂直方向の偶数（図４中の右上、例では（５，４））となる。
【００５６】
サブブロックＣのブロックマッチング（図４中では<3> のブロックマッチング）で得られる動きベクトルの位相は、水平方向の偶数／垂直方向の奇数（図３中の左下、例では（６，５））となる。
【００５７】
サブブロックＤのブロックマッチング（図４中では<4> のブロックマッチング）で得られる動きベクトルの位相は、水平方向の奇数／垂直方向の奇数（図４中の右下、例では（５，５））となる。
【００５８】
このように、それぞれのブロックマッチングで、２画素精度の異なる位相の動きベクトルが得られる。図２中で、<1> <2> <3> <4> の探索領域が設定されており、それぞれのブロックマッチングでは２画素精度の動きベクトルが得られるが、これらが互いに重なる部分では、得られる動きベクトルの位相が互いに補完関係にあるため、検出できる動きベクトルの精度が向上する。
【００５９】
これらの効果を利用することで、本実施形態では、初期探索範囲（図２中での<1> の領域）に解があれば、その周囲を密に評価し、解が遠い場合には、解方向に向かって探索領域がシフトしていくことにより、荒い探索にはなるが、遠くまで探索するというように、動き量に合わせて限られたハードウェアリソース（図１の計算回路１００８）を適応的に割り当てることが可能となる。
【００６０】
（第２の実施形態）
本発明の第２の実施形態の動き検出装置５０００について図５〜図７に基づいて説明する。本実施形態は、８ｘ１６ブロック、参照画像の水平方向のみサブサンプリングする場合である。
【００６１】
（１）動き検出装置５０００の構成
本実施形態に関わる動き検出装置５０００の構成を図５に示す。
【００６２】
図５においては、図１のサブブロックＡバッファ１００３、サブブロックＢバッファ１００４、サブブロックＣバッファ１００５、サブブロックＤバッファ１００６を、ひとまとめにして一般化することでサブブロックバッファ５００３としている。すなわち、動き検出対象ブロックをいくつに分離するかは任意に決定できる。本実施形態は、２つに分離する例である。その他の部分は、図１と図５で同一の役割を持つ。
【００６３】
図５に示すように、動き検出装置５０００は、サブブロックバッファ５００３、設定部５００４、計算回路５００５、動きベクトル決定部５００６、符号化部５００７を備えている。
【００６４】
サブブロックバッファ５００３は、図６のように、サブブロックＡバッファ６００１とサブブロックＢバッファ６００２とを備えている。
【００６５】
（２）サブサンプリング
符号化画像５００１から切り出された動き検出対象ブロック５００２は、互いに異なる位相でサブサンプリングして分離された後、サブブロックＡバッファ６００１、サブブロックＢバッファ６００２にそれぞれ格納される。
【００６６】
このときの、動き検出対象ブロックの分離方法は、図７に示すとおりであり、動き検出対象ブロック７０００は、サブブロックＡ７００３（ｘ，ｙを整数として水平方向２ｘ，垂直方向ｙでサブサンプリング）、サブブロックＢ７００４（ｘ，ｙを整数として水平方向２ｘ＋１，垂直方向ｙでサブサンプリング）に分離される。
【００６７】
（３）設定部５００４
設定部５００４は、サブブロックＡ、サブブロックＢに、ブロックマッチングを適用する順序と、動き検出を行う探索範囲の設定を行う。この例では、動き検出を適用する順序は、サブブロックバッファＡ、サブブロックＢの順序として説明する。しかし、この順序に制約するものではない。
【００６８】
（４）計算回路５００５
計算回路５００５は、設定部５００４から受けた探索中心点の情報をもとに、間引き参照画像５００８（水平方向２分の１サブサンプリングしてある）から動き検出範囲５００９として切り出し、各サブブロックと動き検出範囲５００９との間でブロックマッチングを行う。
【００６９】
ブロックマッチングにおいて、サブブロックＡのブロックマッチング時の探索領域中心は、周囲のブロックが持つ動きベクトルから得られる予測ベクトルの終点とする。
【００７０】
サブブロックＡのブロックマッチングの結果、最もブロック間の類似度の高かった動きベクトルの終点を、サブブロックＢの探索中心点として利用する。サブブロックＡとサブブロックＢは、水平方向のサンプリング位置が異なるため、得られる動きベクトルは、垂直方向は共に１画素精度であるが、水平方向は、サブブロックＡで偶数、サブブロックＢで奇数となる。
【００７１】
これにより、本実施形態では、初期探索範囲内に解があれば、その周囲を密に評価し、解が遠い場合には、探索範囲を解方向にシフトすることにより、荒い探索にはなるが、遠くまで探索することができ、動き量に合わせて適応的にハードウェアリソースを割り当てることが可能となる。
【００７２】
なお、動きベクトル決定部５００６と符号化部５００７とは、第１の実施形態と同様の役割を行う。
【００７３】
（第３の実施形態）
本発明の第３の実施形態の動き検出装置５０００について図５〜図７に基づいて説明する。本実施形態は、１６ｘ１６ブロックを４ｘ１６ブロックの２つに分離する場合である。
【００７４】
本実施形態に関わる動き検出装置５０００の構成は、図５に示すように第２の実施形態と同様である。
【００７５】
（１）サブサンプリング
符号化画像５００１から切り出された動き検出対象ブロック５００２は、互いに異なる位相でサブサンプリング分離された後、サブブロックＡバッファ６００１、サブブロックＢバッファ６００２にそれぞれ格納される。このときの、動き検出対象ブロックの分離方法は、図７に示すとおりである。また、図８に示すように、動き検出対象ブロック８０００は、サブブロックＡ８００３（ｘ，ｙを整数として水平方向４ｘ，垂直方向ｙの位置でサブサンプリング）、サブブロックＢ８００４（ｘ，ｙを整数として水平方向４ｘ＋１，垂直方向ｙの位置でサブサンプリング）に分離される。図８が唐突にでてくる
（２）設定部５００４
設定部５００４は、サブブロックＡ、サブブロックＢに、ブロックマッチングを適用する順序と、動き検出を行う探索範囲の設定を行う。この例では、動き検出を適用する順序は、サブブロックバッファＡ、サブブロックＢの順序として説明する。
【００７６】
（３）計算回路５００５
計算回路５００５は、設定部５００４から受けた探索中心点の情報をもとに、間引き参照画像５００８（水平方向４分の１サブサンプリングしてある）から動き検出範囲５００９として切り出し、各サブブロックと動き検出範囲５００９との間でブロックマッチングを行う。
【００７７】
（４）ブロックマッチング
ブロックマッチングにおいて、サブブロックＡのブロックマッチング時の探索領域中心は、周囲のブロックが持つ動きベクトルから得られる予測ベクトルの終点とする。
【００７８】
サブブロックＡのブロックマッチングの結果、最もブロック間の類似度の高かった動きベクトルの終点を、サブブロックＢの探索中心点として利用する。サブブロックＡとサブブロックＢは、水平方向のサンプリング位置が異なるため、得られる動きベクトルは、垂直方向は共に１画素精度であるが、水平方向は、ｘを整数としてサブブロックＡで４ｘ、サブブロックＢで４ｘ＋１となる。
【００７９】
これにより、本実施形態では、初期探索範囲内に解があれば、その周囲を密に評価し、解が遠い場合には、探索範囲を解方向にシフトすることにより、荒い探索にはなるが、遠くまで探索することができ、動き量に合わせて適応的にハードウェアリソースを割り当てることが可能となる。
【００８０】
なお、動きベクトル決定部５００６と符号化部５００７とは、第１の実施形態と同様の役割を行う。
【００８１】
（第４の実施形態）
本発明の第４の実施形態の動き検出装置１０００について図１〜図４に基づいて説明する。本実施形態は、１６ｘ１６ブロックを８ｘ８ブロックの４つに分離する場合である。
【００８２】
本実施形態に関わる動き検出装置１０００の構成は、図１に示すように第１の実施形態と同様である。
【００８３】
（１）サブサンプリング
符号化画像１００１から切り出された動き検出対象ブロック１００２は、サブサンプリング分離された後、サブブロックＡバッファ１００３、サブブロックＢバッファ１００４、サブブロックＣバッファ１００５、サブブロックＤバッファ１００６にそれぞれ格納される。
【００８４】
このときの、サブサンプリングの分離方法は、図２に示すとおりであり、動き検出対象ブロック２０００は、サブブロックＡ２００１、サブブロックＢ２００２、サブブロックＣ２００３、サブブロックＤ２００４に分割される。
【００８５】
（２）設定部１００７
設定部１００７は、サブブロックＡ、サブブロックＢ、サブブロックＣ、サブブロックＤにブロックマッチングを適用する順序と、動き検出の際の探索中心点の設定を行う。
【００８６】
本実施形態では、動き検出を適用する順序は、サブブロックバッファＡを最初に評価する。サブブロックＡは、水平垂直両方向ともに偶数位置をサブサンプリングしており、間引き参照画像とサブサンプリングの位相が等しいものとする。
【００８７】
以降の動き検出を適用する順序は、サブブロックＢ、サブブロックＣ、サブブロックＤの順序とする。
【００８８】
（３）計算回路１００８
計算回路１００８は、設定部１００７から受けた動きベクトル探索範囲となる領域を、間引き参照画像１０１１から動き検出範囲１０１２として切り出し、各サブブロックと動き検出範囲１０１２との間で動きベクトル検出処理を行う。なお、「間引き参照画像１０１１」とは、水平垂直両方向それぞれ偶数位置を２分の１サブサンプリングした画像である。
【００８９】
なお、図５に示すように、動きベクトル決定部５００６と符号化部５００７とは、第１の実施形態と同様の役割を行う。
【００９０】
（４）ブロックマッチング
次に、ブロックマッチングについて詳細を述べる。
【００９１】
符号化画像から切り出された動き検出対象ブロックは、図２中に示すように異なる位相の画素でサブサンプリングされ、サブブロックＡ、サブブロックＢ、サブブロックＣ、サブブロックＤに分離される。これらは、それぞれ図１におけるサブブロックＡバッファ１００３、サブブロックＢバッファ１００４、サブブロックＣバッファ１００５、サブブロックＤバッファ１００６に格納される。
【００９２】
参照画像から切り出したブロックマッチング領域と、各サブブロック間でブロックマッチングを行うが、この順序は、図２に示すように<1> サブブロックＡとブロックマッチング領域、<2> サブブロックＢとブロックマッチング領域、<3> サブブロックＣとブロックマッチング領域、<4> サブブロックＤとブロックマッチング領域の順として説明する。
【００９３】
<1> サブブロックＡのブロックマッチング時には、動きベクトルの始点（０，０）を探索中心点とする。動きベクトルの始点は、動き検出対象ブロックを符号化画像から切り出した範囲の左上の位置である。そして、動きベクトルの始点は、選択頻度が高く必ず評価したいが、<2> <3> <4> のブロックマッチングでは、サブブロックのサンプリングの位相と、間引き参照画像のサブサンプリングの位相が異なるので動きベクトルの始点（０，０）を評価できないためにこのような操作を行う。
【００９４】
<1> のブロックマッチングの結果、最もブロック間の類似度の高かった動きベクトルの終点を、<2> のブロックマッチングの際の探索中心点として利用する。
【００９５】
<2> のブロックマッチングの結果、最もブロック間の類似度の高かった動きベクトルの終点を、<3> のブロックマッチングの際の探索中心点として利用する。
【００９６】
<3> のブロックマッチングの結果、最もブロック間の類似度の高かった動きベクトルの終点を、<4> のブロックマッチングの際の探索中心点として利用する。
【００９７】
計４回のブロックマッチングにおいて、探索中心点がそれぞれ設定され、ブロックマッチング範囲が図２のようにシフトする。
【００９８】
本実施形態では、初期探索範囲（図２中での<1> の領域）に解があれば、その周囲を密に評価し、解が遠い場合には、探索範囲を解方向にシフトさせることにより、荒い探索にはなるが、遠くまで探索するというように、動き量に合わせて適応的にハードウェアリソース（図１中、計算回路１００８）を割り当てることが可能となる。また、動画像符号化において、比較的選択される頻度が高い動きベクトルの始点（０，０）を必ず評価することができる。
【００９９】
（第５の実施形態）
本発明の第４の実施形態の動き検出装置１０００について図１〜図４に基づいて説明する。本実施形態は、１６ｘ１６ブロックを８ｘ８ブロックの４つに分離し、かつ、探索中心点始点（０，０）にシフトする場合である。
【０１００】
本実施形態に関わる動き検出装置１０００の構成は、図１に示すように第１の実施形態と同様である。
【０１０１】
（１）サブサンプリング
符号化画像１００１から切り出された動き検出対象ブロック１００２は、サブサンプリング分離された後、サブブロックＡバッファ１００３、サブブロックＢバッファ１００４、サブブロックＣバッファ１００５、サブブロックＤバッファ１００６にそれぞれ格納される。
【０１０２】
このときの、サブサンプリングする分離方法は、図２に示すとおりであり、動き検出対象ブロック２０００は、サブブロックＡ２００１、サブブロックＢ２００２、サブブロックＣ２００３、サブブロックＤ２００４に分割される。
【０１０３】
（２）設定部１００７
設定部１００７は、サブブロックＡ、サブブロックＢ、サブブロックＣ、サブブロックＤにブロックマッチングを適用する順序と、動き検出の際の探索中心点の設定を行う。
【０１０４】
本実施形態では、動き検出を適用する順序は、サブブロックバッファＡを最初に評価する。サブブロックＡは、水平垂直両方向ともに偶数位置をサブサンプリングしており、間引き参照画像とサブサンプリングの位相が等しいものとする。以降の動き検出を適用する順序は、サブブロックＢ、サブブロックＣ、サブブロックＤの順序とする。
【０１０５】
（３）計算回路１００８
計算回路１００８は、設定部１００７から受けた動きベクトル探索範囲となる領域を、間引き参照画像１０１１（水平垂直両方向それぞれ偶数位置を２分の１サブサンプリング）から動き検出範囲１０１２として切り出し、各サブブロックと動き検出範囲１０１２との間で動きベクトル検出処理を行う。
【０１０６】
なお、図５に示すように、動きベクトル決定部５００６と符号化部５００７とは、第１の実施形態と同様の役割を行う。
【０１０７】
（４）ブロックマッチング
次に、ブロックマッチングについて詳細を述べる。
【０１０８】
符号化画像から切り出された動き検出対象ブロックは、図２中に示すように異なる位相の画素でサブサンプリングされ、サブブロックＡ、サブブロックＢ、サブブロックＣ、サブブロックＤに分離される。
【０１０９】
これらは、それぞれ図１におけるサブブロックＡバッファ１００３、サブブロックＢバッファ１００４、サブブロックＣバッファ１００５、サブブロックＤバッファ１００６に格納される。
【０１１０】
参照画像から切り出したブロックマッチング領域と、各サブブロック間でブロックマッチングを行うが、この順序は、図２に示すように<1> サブブロックＡとブロックマッチング領域、<2> サブブロックＢとブロックマッチング領域、<3> サブブロックＣとブロックマッチング領域、<4> サブブロックＤとブロックマッチング領域の順として説明する。
【０１１１】
<1> 動き検出対象ブロックＡのブロックマッチング時には、周囲のブロックの動きベクトルから予測する予測ベクトルの終点を探索中心点とする。しかし、探索範囲内で、動きベクトルの始点（０，０）の評価ができない場合は、動きベクトルの始点（０，０）の評価を行えるように探索中心点をシフトする。これは、動きベクトルの始点（０，０）は、選択頻度が高く必ず評価したいが、<2> <3> <4> のブロックマッチングでは、サブブロックのサンプリングの位相と、間引き参照画像のサブサンプリングの位相が異なるので動きベクトル始点（０，０）を評価できないためにこのような操作を行う。
【０１１２】
<1> のブロックマッチングの結果、最もブロック間の類似度の高かった動きベクトルの終点を、<2> のブロックマッチングの際の探索中心点として利用する。
【０１１３】
<2> のブロックマッチングの結果、最もブロック間の類似度の高かった動きベクトルの終点を、<3> のブロックマッチングの際の探索中心点として利用する。
【０１１４】
<3> のブロックマッチングの結果、最もブロック間の類似度の高かった動きベクトルの終点を、<4> のブロックマッチングの際の探索中心点として利用する。
【０１１５】
計４回のブロックマッチングにおいて、探索中心点がそれぞれ設定され、ブロックマッチング範囲が図２のようにシフトする。
【０１１６】
本実施形態では、初期探索範囲（図２中での<1> の領域）に解があれば、その周囲を密に評価し、解が遠い場合には、探索範囲を解方向にシフトさせることにより、荒い探索にはなるが、遠くまで探索するというように、動き量に合わせて適応的にハードウェアリソース（図１中、計算回路１００８）を割り当てることが可能となる。また、動画像符号化において、比較的選択される頻度が高い動きベクトルの始点（０，０）を必ず評価することができる。
【０１１７】
（第６の実施形態）
本発明の第３の実施形態の動き検出装置５０００について図５〜図７に基づいて説明する。本実施形態は、参照画像について垂直方向の間引きは行わずにフレーム符号化モード、または、フィールド符号化モードの判定をコスト計算で行う場合である。
【０１１８】
本実施形態に関わる動き検出装置５０００の構成は、図５に示すように第２の実施形態と同様である。
【０１１９】
（１）サブサンプリング
符号化画像５００１から切り出された動き検出対象ブロック５００２は、サブサンプリング分離された後、サブブロックＡバッファ６００１、サブブロックＢバッファ６００２にそれぞれ格納される。
【０１２０】
このときのサブサンプリング分離の方法は、図７に示す通りであり、動き検出対象ブロック７０００は、サブブロックＡ７００３、サブブロックＢ７００４に分割される。
【０１２１】
（２）設定部５００４
設定部５００４は、サブブロックＡ、サブブロックＢに、ブロックマッチングを適用する順序と動き検出の際の動きベクトル探索範囲の設定を行う。
【０１２２】
この例では、サブブロックバッファＡ、サブブロックＢの順序とするが、この順序に制約するものではない。
【０１２３】
（３）計算回路５００５
計算回路５００５は、設定部５００４から受けた動きベクトル探索範囲となる領域を、間引き参照画像５００８（水平方向で２分の１サブサンプリングしてある）から動き検出範囲５００９として切り出し、各サブブロックと動き検出範囲５００９との間で動きベクトル検出処理を行う。
【０１２４】
動きベクトル検出において、サブブロックＡのブロックマッチング時の探索領域中心の設定は、周囲のブロックが持つ動きベクトルから得られる予測ベクトルの終点により決定する。
【０１２５】
サブブロックＡのブロックマッチングの結果、最もブロック間の類似度の高かった動きベクトルの終点を、サブブロックＢの探索中心点として利用する。サブブロックＡとサブブロックＢは、水平方向のサンプリング位置が異なるため、得られる動きベクトルは、垂直方向は共に１画素精度であるが、水平方向は、サブブロックＡで偶数、サブブロックＢで奇数となる。
【０１２６】
これにより、本実施形態では、初期探索範囲に解があれば、その周囲を密に評価し、解が遠い場合には、探索範囲が解方向にシフトすることにより、荒い探索にはなるが、遠くまで探索するというように、動き量に合わせて適応的にハードウェアリソースを割り当てることが可能となる。
【０１２７】
（４）動きベクトル決定部５００６
動きベクトル決定部５００６は、計算回路５００７から、動きベクトルとブロック間の類似度を随時受け取る。計算回路５００７では、フレーム符号化モードの場合の類似度とフィールド符号化モードの場合の類似度を算出する。
【０１２８】
このときの類似度は、ＭＥコストに加えて、フレーム符号化モードの類似度には、フレームらしさを表現する値、フィールド符号化モードの類似度には、フィールドらしさを表現する値を加える。「フレームらしさ」、「フィールドらしさ」を表現する値とは、例えば、フレーム画像の水平方向ライン間の差分絶対値和が小さいときにフレームらしさが高く、大きいときにフィールドらしさが高いといった値である。
【０１２９】
最終的に類似度が高いブロックのモード（フレーム符号化モード、または、フィールド符号化モードのどちらか一方のモード）と動きベクトルを決定する。
【０１３０】
また、サブブロックと動き検出範囲のブロックマッチングが完了するたびに、それぞれのブロックマッチングで最も類似度が高かった動きベクトルを、次のサブブロックのブロックマッチングを行う際に、動き検出範囲を設定するための探索中心点として利用する。
【０１３１】
なお、符号化部５００７は、第１の実施形態と同様の役割を行う。
【０１３２】
（変更例）
本発明は上記各実施形態に限らず、その主旨を逸脱しない限り種々に変更することができる。
【０１３３】
例えば、上記各実施形態ではサブブロックに対する動き検出の順序を、サブブロックＡ、サブブロックＢ、サブブロックＣ、サブブロックＤとしているが、この順序に制約するものではない。
【図面の簡単な説明】
【０１３４】
【図１】本発明の第１、４、５の実施形態に関わる動き検出装置のブロック図である。
【図２】上記実施形態に関わる動き検出装置の処理概要を示す図である。
【図３】上記実施形態に関わる動き検出装置における動き検出対象ブロックのサブサンプリング分離例を示す図である。
【図４】上記実施形態に関わる動き検出装置における異なる位相でサブサンプリング分離した動き検出対象ブロックと間引き参照画像間で得られる動きベクトルを示す図である。
【図５】第２、３、６の実施形態に関わる動き検出装置のブロック図である。
【図６】上記実施形態に関わる動き検出装置におけるサブブロックバッファの構成例である。
【図７】上記実施形態に関わる動き検出装置における動き検出対象ブロックのサブサンプリング分離例を示す図である。
【図８】上記実施形態に関わる動き検出装置における動き検出対象ブロックのサブサンプリング分離例を示す図である。
【図９】従来例における動き検出装置の処理概要を示す図である。
【図１０】従来例と本発明の実施形態の比較を示す表である。
【符号の説明】
【０１３５】
１０００  動き検出装置
１００１  当該画像
１００２  動き検出対象ブロック
１００３  サブブロックＡバッファ
１００４  サブブロックＢバッファ
１００５  サブブロックＣバッファ
１００６  サブブロックＤバッファ
１００７  設定部
１００８  計算回路
１００９  動きベクトル決定部
１０１０  直行変換・量子化部等の符号化部
１０１１  間引き参照画像
１０１２  動き検出範囲
【図１】
2008085674.tif 000003
【図２】
2008085674.tif 000004
【図３】
2008085674.tif 000005
【図４】
2008085674.tif 000006
【図５】
2008085674.tif 000007
【図６】
2008085674.tif 000008
【図７】
2008085674.tif 000009
【図８】
2008085674.tif 000010
【図９】
2008085674.tif 000011
【図１０】
2008085674.tif 000012