(57)【特許請求の範囲】
【請求項１】
動き探索処理が施される探索対象ブロックの画素データを格納する第１のメモリ手段と、
前記探索対象ブロックの過去を示す参照ブロックに関する画素データを格納する第２のメモリ手段と、
前記第１および第２のメモリ手段に同一のアドレスを供給するアドレス生成手段と、
前記第１および第２のメモリ手段において前記アドレスによって指定された画素データに基づいて差分絶対値を演算して出力する差分絶対値演算手段と、
前記差分絶対値を累積して差分絶対値和を求める累積演算手段と、
前記差分絶対値和から最小値を検出する差分絶対値和比較手段と、
前記差分絶対値演算手段から出力される値を保持する差分絶対値保存手段と、
該差分絶対値保存手段の保持する値の中でその最大値を検出するとともに、該最大値に対応するエリアを示すエリア情報を検出する最大値検出手段とを備え、
前記アドレス生成手段は、動き探索処理を開始する際に、処理対象のブロックを複数のエリアに分割し、分割した各エリアにおけるそれぞれ所定の位置における画素データをそれぞれ読み出すアドレスを生成し、
前記最大値検出手段は、分割したエリアの中で差分絶対値が最大値であるエリアを特定し、前記最大値を持つエリアから差分絶対値和演算を開始させることを特徴とする動き検出処理装置。
【請求項２】
請求項１に記載の装置において、該装置は、前記累積演算手段の出力に接続され、前記差分絶対値和に基づいて、最大値検出処理が不要であることを示す割り込み信号を生成する評価手段を備え、該評価手段は、複数に分割された各エリアの１箇所の画素データに対する前記差分絶対値和が、所定の閾値よりも小さい場合に前記割り込み信号を生成して、最大値検出処理を中断することを特徴とする動き検出処理装置。
【請求項３】
動き探索処理が施される探索対象ブロックと、該探索対象ブロックの過去の参照ブロックとの両ブロックにおいて同一のアドレスで指定された画素データを用いて差分絶対値を演算する差分絶対値演算工程と、
前記差分絶対値を累積して差分絶対値和を求める累積演算工程と、
前記差分絶対値和から最小値を検出する差分絶対値和比較工程と、
前記差分絶対値演算工程から出力される値を保持する差分絶対値保存工程と、
該差分絶対値保存工程の保持する値の中でその最大値を検出するとともに、該最大値に対応するエリアを示すエリア情報を検出する最大値検出工程とを備え、
前記アドレスは、前記動き探索処理を開始する際に前記探索対象ブロックおよび前記参照ブロックを複数のエリアに分割し、前記複数のエリアの各々における画素データを指定するアドレスであり、
前記最大値検出工程は、分割したエリアの中で差分絶対値が最大値であるエリアを特定し、前記最大値を持つエリアから差分絶対値和演算を開始させることを特徴とする動き検出処理方法。
【請求項４】
請求項１に記載の方法において、該方法は、前記累積演算工程にて求められる前記差分絶対値和に基づいて、最大値検出処理が不要であることを示す割り込み信号を生成する評価工程を備え、該評価工程は、複数に分割された各エリアの１箇所の画素データに対する前記差分絶対値和が、所定の閾値よりも小さい場合に前記割り込み信号を生成して、最大値検出処理を中断することを特徴とする動き検出処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化にて動き探索処理を行う動き検出処理装置および方法に関するものである。
【背景技術】
【０００２】
近年、動画像符号化技術において、現在のフレームに対して過去のフレーム（参照フレーム）からの変動分を求め、動きベクトルとして符号化することによって、符号化効率を高める動き検出技術が開発されている。復号時には、動きベクトルと参照フレームとの情報から現在フレームを復元する。
【０００３】
この動き検出は、現在の一コマの画像を示す現在フレーム内に配置されたある８画素×８画素の探索対象ブロックに対して、参照フレームからの変動分を探索するために参照フレームに探索範囲を設定する。次に、探索対象ブロックと同じ形状のブロックをこの探索範囲内で探索することにより、対象ブロックの変動分を動きベクトルとして表現する。
【０００４】
同じ形状のブロックを探索する方法としては、差分絶対値和と呼ばれる方法が用いられる。数式で示すと次のようになる。
【０００５】
【数１】
0004527674.tif 000002
ここで、P1（x,y）は現在フレームの探索対象ブロックにおける（x,y）位置における画素値を示し、P2（x,y）は参照フレームの参照ブロックにおける（x、y）位置における画素値を示し、ＳＡＤはこれら画素値の差分絶対値和である。
【０００６】
上式(1)は、ブロック同士の同じ位置の画素値の差分絶対値をとり、これを累積していく方法に適用される。SAD値が大きい場合はブロック同士の差分が大きいことを意味し、ブロック内画像の形状が異なっていることが分かる。探索範囲の中でSAD値が最も小さいブロックを同じ形状のブロックとして認識することができる。
【０００７】
このような処理を行う構成として、たとえば８画素×８画素のブロック画像データを格納する64 byteのメモリ領域をそれぞ有する探索対象ブロック格納用RAMと、参照ブロック格納用RAMに８ビット値の画素データを入力し、これらRAMにアドレス生成回路から生成されるアドレスを同時に与える。これは、探索対象ブロックと参照ブロックの同じ位置の画素値を双方のRAMより出力するためである。
【０００８】
アドレス生成回路は、ブロック内の画素位置を水平方向の８画素ごとに水平走査し、垂直方向に順次副走査して同様に水平走査するアドレスを生成する。
【０００９】
このアドレスによって探索対象ブロック格納用RAMおよび参照ブロック格納用RAMから読み出された画素値は、差分絶対値｜P1（x,y）−P2（x,y）｜を算出する差分絶対値演算回路に入力される。算出された差分絶対値は、累積演算回路に入力されて１ブロック分の総和が求められ、さらにSAD値比較回路にてSAD値が最小となるブロックが検出される。
【００１０】
演算量を削減するために、SAD値比較回路に、ある閾値を設定しておき、累積演算回路における途中の演算結果が、この閾値を上回った場合に累積演算を中断し次の参照ブロックに対する演算に移行する場合がある。
【００１１】
また、従来文献１に記載の発明では、時系列的に離隔した二つの画像間における差分絶対値和を演算し、その演算結果が所定の閾値を超えると狭範囲探索窓における演算を終了することが開示されているものの、大きな差分絶対値から和演算を開始する開示はなかった。
【特許文献１】特開平10-271514号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら上記従来構成では、演算量が非常に多く、一般的なＣＰＵなどでは処理できなかったり、処理できたとしても消費電力が非常に大きくなったりするなどの問題点があった。
【００１３】
そこで、差分絶対値和演算を行なうための専用のハードウェアをＣＰＵ内部、或いは別のハードウェアアクセラレータとして設けたり、或いは、ＳＡＤ値がある閾値を超えた場合にそのブロックに対する演算を途中で打ち切ったりするなどの工夫が用いられたとしても、大抵の場合、処理速度が低下し、また、消費電力が増大してボトルネックとなるという問題があった。
【００１４】
本発明はこのような課題に鑑み、処理速度の低下や消費電力の増加を防止することのできる動き検出処理装置および方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は上述の課題を解決するために、動き探索処理が施される探索対象ブロックの画素データを格納する第１のメモリ手段と、探索対象ブロックの過去を示す参照ブロックに関する画素データを格納する第２のメモリ手段と、第１および第２のメモリ手段に同一のアドレスを供給するアドレス生成手段と、第１および第２のメモリ手段においてアドレスによって指定された画素データに基づいて差分絶対値を演算して出力する差分絶対値演算手段と、差分絶対値を累積して差分絶対値和を求める累積演算手段と、差分絶対値和から最小値を検出する差分絶対値和比較手段と、差分絶対値演算手段から出力される値を保持する差分絶対値保存手段と、差分絶対値保存手段の保持する値の中でその最大値を検出するとともに、最大値に対応するエリアを示すエリア情報を検出する最大値検出手段とを備え、アドレス生成手段は、動き探索処理を開始する際に、処理対象のブロックを複数のエリアに分割し、分割した各エリアにおけるそれぞれ所定の位置における画素データをそれぞれ読み出すアドレスを生成し、最大値検出手段は、分割したエリアの中で差分絶対値が最大値であるエリアを特定し、最大値を持つエリアから差分絶対値和演算を開始させることを特徴とする。
【００１６】
また、本発明は上述の課題を解決するために、動き探索処理が施される探索対象ブロックと、探索対象ブロックの過去の参照ブロックとの両ブロックにおいて同一のアドレスで指定された画素データを用いて差分絶対値を演算する差分絶対値演算工程と、差分絶対値を累積して差分絶対値和を求める累積演算工程と、差分絶対値和から最小値を検出する差分絶対値和比較工程と、差分絶対値演算工程から出力される値を保持する差分絶対値保存工程と、差分絶対値保存工程の保持する値の中でその最大値を検出するとともに、最大値に対応するエリアを示すエリア情報を検出する最大値検出工程とを備え、アドレスは、動き探索処理を開始する際に探索対象ブロックおよび参照ブロックを複数のエリアに分割し、複数のエリアの各々における画素データを指定するアドレスであり、最大値検出工程は、分割したエリアの中で差分絶対値が最大値であるエリアを特定し、最大値を持つエリアから差分絶対値和演算を開始させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、処理速度の低下や消費電力の増加を防止することのできる動き検出処理装置が提供される。たとえば、自然界の画像の特徴から累積値の増加を早めることが期待できるため、たとえば、差分絶対値和比較手段内で、ある閾値またはそれまでの累積差分値の最小値と比較することで演算を打ち切る処理を行うことができ、この打ち切る判断を早めることができることから処理速度の向上および消費電力の低減が可能となる。
【発明を実施するための最良の形態】
【００１８】
次に添付図面を参照して本発明による動き検出処理装置および方法の実施例を詳細に説明する。図１を参照すると、本発明が適用された動き探索回路の実施例が示されている。なお、以下の説明において本発明に直接関係のない部分は、図示およびその説明を省略し、また、信号の参照符号はその現われる接続線の参照番号にて表す。
【００１９】
図示するように、動き探索回路10は、たとえば８画素×８画素のブロック画像データを格納するそれぞれ64 byteのメモリ領域をそれぞ有する探索対象ブロック格納用RAM 12と参照ブロック格納用RAM 14とを有している。探索対象ブロック格納用RAM 12は、探索対象ブロックの画素データ（P1（x,y））を格納するメモリであり、参照ブロック格納用RAM 14は、参照ブロックの画素データ（P2（x,y））を格納するメモリであり、これらメモリは同一サイズ、同一構成でよい。探索対象ブロック格納用RAM 12および参照ブロック格納用RAM 14には、アドレス生成回路16の出力18から出力されるアドレス信号がともに同一タイミングにて入力される。
【００２０】
探索対象ブロック格納用RAM 12および参照ブロック格納用RAM 14は、それぞれアドレス信号18に応じたアドレスの画素データをそれぞれ出力20,22に出力する。これら出力20,22は差分絶対値演算回路24に接続されている。
【００２１】
差分絶対値演算回路24は、入力される画素データの差分絶対値（｜P1（x,y）−P2（x,y）｜）を算出する回路であり、その算出結果を出力26,28に出力する。差分絶対値演算回路24の出力26は差分絶対値保存レジスタ30に接続され、出力28は累積演算回路32に接続されている。
【００２２】
差分絶対値保存レジスタ30は、８×８画素のブロック内に64個ある差分絶対値のうち４箇所分の差分絶対値を保持するように4 byte分設けられる。
【００２３】
画素アドレス”0”〜画素アドレス”63”が配列された８×８画素のブロック200を図２に示す。８×８画素のブロック200を第１エリア202、第２エリア204、第３エリア206および第４エリア208に４分割し、差分絶対値保存レジスタ30は、各々のエリア202〜208から一箇所の差分絶対値を保持する。差分絶対値保存レジスタ30の出力40は、最大値検出回路42に接続されている。
【００２４】
最大値検出回路42は、差分絶対値保存レジスタ30に格納されている４つの値のうち最大値を検出し、最大値がどこのエリアに含まれていたものかを示すエリア情報を出力44に出力する。この出力44はアドレス生成回路16に接続されている。また、最大値検出回路42は、クロック信号を出力45に出力してアドレス生成回路16に供給する。なお、最大値検出回路42は、検出された複数の差分絶対値のうち２個または３個の差分絶対値が同じ値をとり、かつそれらが最大値である場合には、それら最大値の差分絶対値のうちいずれかが所属するエリアのエリア情報を出力するとよい。また検出された複数の差分絶対値がすべて同じ値であった場合には、いずれかのエリアから直ちに処理を開始することができる。
【００２５】
累積演算回路32は、差分絶対値演算回路24にて算出された差分絶対値から１ブロック分の総和を算出し、算出した差分絶対値和(SAD)を出力50に出力する。この出力50はSAD値比較回路52に接続されている。
【００２６】
SAD値比較回路52は、SAD値が最小のものであるか否かを検出し、SAD値が累積途中のものでも最小のものではないことを検出すると、リセット信号54を生成して出力54に出力する。このリセット信号によって現在処理を行なっているブロックの差分絶対値演算を中断する。
【００２７】
図３を参照すると、同図には図２に示した８×８画素のブロック200に対してアドレス生成回路16から出力するアドレス信号の順番が示されている。画素アドレス”0”〜画素アドレス”63”は、探索対象ブロック格納用RAM 12および参照ブロック格納用RAM 14に格納される。
【００２８】
８×８画素のブロック200は、第１エリア202、第２エリア204、第３エリア206および第４エリア208に４分割される。なお４分割は一例であり、他の複数の分割数に分割してもよい。アドレス生成回路16は、それぞれのエリアにごとに図３にて矢印で示された順番にアクセスする。この場合、アドレス生成回路16は、各エリア202〜208に対してそれぞれ図４〜図７に示すように６ビット値のアドレス信号18を出力する。このアドレス信号18を生成するアドレス生成回路16の内部構成例を図８に示す。
【００２９】
本実施例におけるアドレス生成回路16は、６ビットのアドレスを２ビットずつに分割する。アドレス生成回路16はこの２ビットの数値を生成する生成回路800〜808を有する。生成回路800〜808にはそれぞれ、エリア情報44、クロック45およびリセット信号54が供給され、生成した２ビットの数値をそれぞれ出力810〜818に出力する。
【００３０】
各生成回路800〜808の出力する２ビットのアドレスの生成状態を図９〜図13に示す。図９〜図13にはそれぞれ生成回路800〜808の状態遷移図が示されている。○印で囲んだ記載の数値がその状態のときに出力OUT810〜818から出力する値を示している。生成回路802の出力810はビット連結回路820に接続されている。生成回路802,804の出力812,814はそれぞれ選択回路830の入力B,A側に接続されている。生成回路806,808の出力816,818はそれぞれ選択回路832の入力B,A側に接続されている。
【００３１】
選択回路830,832は、それぞれ入力A,B側に入力される値を、入力44に入力されるエリア情報に応じて選択するセレクタ回路である。具体的には一方の選択回路830は、エリア情報44が第１エリアまたは第３エリアを示している場合には入力A側に入力される値を選択し、エリア情報44が第２エリアまたは第４エリアを示している場合には入力B側に入力される値を選択する。他方の選択回路832は、エリア情報44が第１エリアまたは第２エリアを示している場合には入力A側に入力される値を選択し、エリア情報44が第３エリアまたは第４エリアを示している場合には入力B側に入力される値を選択する。選択回路830,832はそれぞれ選択した値をそれぞれ出力840,842に出力する。これら出力840,842はビット連結回路820に接続されている。
【００３２】
ビット連結回路820は、生成回路800の出力810をビット１および０とし、選択回路830の出力840をビット３および２とし、さらに選択回路832の出力842をビット５および４として、これら２ビットの値を連結して６ビットのアドレス信号18を生成する。このビット連結回路820はアドレス生成回路16の出力を形成している。
【００３３】
このように、第１エリア202〜第４エリア208のエリア情報に基づいて、生成回路800〜808の出力する数値を組み合わせることによって、図４〜図７に示したアドレスを得る。
【００３４】
以上の構成で、動き探索回路10の動作を図14を参照して説明する。まず、リセット信号54が解除して動作状態となると（時間t1）、最大値検出回路42から第１エリア202〜第４エリア208を１クロック毎に切り替えるエリア情報44が出力される（S1400）。リセット解除後の各生成回路800〜808は初期状態にあるので、エリア情報44を第１エリア202〜第４エリア208の順に切り替えることによって、アドレス生成回路16からアドレス”0”,”4”,”32”,”36”の順番でアドレス信号18が順次出力される（S1402）。これらアドレスは、各エリア202〜208における左上の位置を示している。
【００３５】
このアドレス信号18が示す位置のデータが、探索対象ブロック格納用RAM12および参照ブロック格納用RAM 14から出力され、毎分絶対値演算回路24にて差分絶対値が計算されて、算出した差分絶対値は差分絶対値保存レジスタ30と、累積演算回路32に渡される。最大値検出回路42では、差分絶対値保存レジスタ30に保存された４つの値のうちそれらの最大値を検出し（S1404）、その検出した値が出力された際のエリア情報44をアドレス生成回路16に出力するとともに、それと同時にそれまで停止していたクロック45を駆動させる（S1406）。
【００３６】
アドレス生成回路16では、クロック45とエリア情報44とによって差分絶対値の最大値が含まれていたエリアに対するアドレスを継続して出力し（S1408）、差分絶対値演算回路24にてそのエリアでの差分絶対値が計算され（S1410）、累積演算回路32にて差分絶対値が累積される（S1412）。
【００３７】
本実施例においても、図15に示すように、演算途中のＳＡＤ値が所定の閾値を超えた場合（タイミングT1,T2）やそれまでの最小値を超えた場合にそのブロックに対する演算を打ち切って、演算量を減らすとよい。
【００３８】
このように上記実施例によれば、８×８画素ブロックを複数のたとえば４分割し、最初に各エリアの画素データに対してそれぞれ差分絶対値演算を行い、最大値を持つエリアから、引き続き演算を続け累積する。画像の特徴として、ある位置の画素値の近傍は似たような値を持つ傾向があり、低周波成分が支配的であるため、差分絶対値の最大値を持つエリア内を先に累積し、かつ、最大値を持つエリアを特定するために行なった最初の４回の差分絶対値演算も、ＳＡＤ値を求めるために累積していく。このため少ない演算のオーバーヘッドで、第９図に示す通り、その累積値の増加を早めることが出来るため、演算の打ち切りタイミングを早めることができる。これにより、動き検出処理を行なう処理量を減らすことができ、処理能力が向上され、また消費電力を削減することができる。
【００３９】
次に本発明が適用された第２の実施例を図16を参照して説明する。本実施例における動き探索回路1600は、累積演算回路32の出力にさらにSAD値評価回路1602が接続され、SAD値評価回路1602の出力1604が最大値検出回路1606に接続されている点で図１に示した実施例と異なり、他の構成は図１に示した実施例と同様の構成でよいのでその説明を省略する。
【００４０】
SAD値評価回路1602は、４分割されたエリアにおけるそれぞれ１箇所ずつの差分絶対値和（SAD）をあらかじめ設定された値と比較する。SAD値評価回路1602は、４分割されたエリア202〜208（図２）を確定するために、最初に各エリアのそれぞれ１箇所の画素データに対するSAD値を予め設定されている閾値と比較する。SAD値評価回路1602は、SAD値が閾値よりも小さい場合にイネーブルの割込み信号1604を生成する。SAD値評価回路1602は、生成した割り込み信号を出力1604に出力し、この出力は最大値検出回路1606に接続されている。
【００４１】
本実施例における最大値検出回路1606は、図１に示した最大値検出回路42と同様の機能を有するとともに、イネーブルの割り込み信号1604が入力されると、最大値検出操作を中止し、エリア情報としてたとえば第１エリアを指示する信号を直ちに出力し、本動き探索回路1600における差分絶対値和を算出する演算を開始する。
【００４２】
本実施例では、探索対象ブロックと参照ブロックとが同一である場合には、SAD値算出演算を途中で中断せず、ブロック全体に渡って最後のブロックまでSAD値演算を行う。この場合、４分割されたエリアのどのエリアから演算を開始しても同じ結果となるので、エリアを決める為の最大値検出処理が不要となり、任意のエリアから演算を開始することができる。
【００４３】
このように本実施例によれば、４分割されたエリアのそれぞれ１箇所の画素データに対するSAD値が予め設定された閾値よりも小さい場合に、割り込み信号1604によって最大値検出処理を中断することができるので、最大値検出のために必要なレイテンシを無くすることができる。このレイテンシは、図16に示した構成にて、専用回路で処理を行う場合、小さく抑えることができる。同一処理を汎用RISCなどを使用して行う場合、最大値検出のためにレイテンシが大きくなることがあるので、上記実施例における割り込み処理を追加して行なうことにより、不要な最大値検出処理を中止して、この結果、処理速度の向上や、消費電力の低減を図ることができる。
【００４４】
なお、図１に示した第１の実施例において、アドレス生成回路16の内部構成として、６ビットのアドレスを２ビットずつ分割したアドレスを別々に生成し、これら分割した情報を連結する構成を示したがこれに限らず、たとえば、１エリアのアドレスを順次出力するアドレス生成回路16の出力18に対し、オフセット値（第２エリアの場合”4”、第３エリアの場合”32”、第４エリアの場合”36”を加算する構成を採用してもよい。
【００４５】
また、第１の実施例では８×８画素のブロックを処理する構成を例示しているが、これに限らず、たとえばMPEG 4の処理単位である16×16画素のブロックに対しても適用可能である。
【００４６】
エリアの分割方法について、４×４画素のブロックに４分割し、差分絶対値の最大を求めるために各ブロックの左上の画素を計算したが、これに限らず。エリア分割数、分割方法および最大値を求めるための画素位置等に関して、上記実施例に限定されるものではない。
【図面の簡単な説明】
【００４７】
【図１】本発明が適用された動き探索回路のブロック図である。
【図２】８×８画そのブロックを分割することを示す図である。
【図３】分割したブロックに対するアドレスの順番を示す図である。
【図４】第１エリアのアドレスを示す図である。
【図５】第２エリアのアドレスを示す図である。
【図６】第３エリアのアドレスを示す図である。
【図７】第４エリアのアドレスを示す図である。
【図８】アドレス生成回路の構成例を示すブロック図である。
【図９】生成回路の状態遷移図である。
【図１０】生成回路の状態遷移図である。
【図１１】生成回路の状態遷移図である。
【図１２】生成回路の状態遷移図である。
【図１３】生成回路の状態遷移図である。
【図１４】動き探索回路の動作を示すタイミングチャートである。
【図１５】演算の打ち切りタイミング例を示す図である。
【図１６】動き探索回路の他の実施例を示すブロック図である。
【符号の説明】
【００４８】
10  動き探索回路
12  探索対象ブロック格納用RAM
14  参照ブロック格納用RAM
16  アドレス生成回路
24  差分絶対値演算回路
30  差分絶対値保存レジスタ
32  累積演算回路
42  最大値検出回路
52  SAD値比較回路
【図１】
0004527674.tif 000003
【図２】
0004527674.tif 000004
【図３】
0004527674.tif 000005
【図４】
0004527674.tif 000006
【図５】
0004527674.tif 000007
【図６】
0004527674.tif 000008
【図７】
0004527674.tif 000009
【図８】
0004527674.tif 000010
【図９】
0004527674.tif 000011
【図１０】
0004527674.tif 000012
【図１１】
0004527674.tif 000013
【図１２】
0004527674.tif 000014
【図１３】
0004527674.tif 000015
【図１４】
0004527674.tif 000016
【図１５】
0004527674.tif 000017
【図１６】
0004527674.tif 000018