(57)【要約】【課題】ブロック勾配法による動きベクトル検出において、画像のエッジ部分での検出精度の低下を防止する。【解決手段】ブロックを構成する各画素に対応して、近傍の画素の間の画素値の差分と、１時刻前の画像内で同一位置の画素との間の画素値の差分とを求める手段２と、各画素に対する差分とブロック中心画素に対する差分との差を閾値と比較して、各画素に対する差分を動きベクトルの計算における加算に含めるべきかを判定する手段３と、加算に含めるべきと判定された画素に対する差分を用いてブロック中心画素に対する動きベクトルを計算する手段４とを備える。【選択図】図１
2008147974.tif 000002
【特許請求の範囲】
【請求項１】
入力画像内でブロックを構成する複数の各画素に対応して、現時点の画像内の注目画素の近傍の画素の間の画素値の差分と、１時刻前の画像内で該注目画素に対応する画素と該注目画素との間の画素値の差分とを、該注目画素をブロック内で移動させながら求める画素値差分計算手段と、
該画素値差分計算手段の出力する前記ブロック内の各画素に対する画素値の差分と該ブロックの中心画素に対する画素値の差分との差の絶対値をあらかじめ定められた閾値と比較して、動きベクトルの計算における加算に、該各画素に対する画素値の差分を含めるべきか否かを判定する加算判定手段と、
該加算判定手段によって加算に含めるべきものと判定された画素値の差分を用いて、前記ブロックの中心画素に対する動きベクトルを計算する動きベクトル計算手段とを備えることを特徴とする動きベクトル検出装置。
【請求項２】
前記加算判定手段が、前記差の絶対値が前記閾値より大きい特に、前記画素値の差分を前記加算に含めないものと判定することを特徴とする請求項１記載の動きベクトル検出装置。
【請求項３】
前記画素値の差分が、注目画素の横方向の隣接画素の間、縦方向の隣接画素の間、および注目画素と１時刻前の画像内で同一位置の画素との間の画素値の差分であることを特徴とする請求項１記載の動きベクトル検出装置。
【請求項４】
入力画像内でブロックを構成する複数の各画素に対応して、現時点の画像内の注目画素の近傍の画素の間の画素値の差分と、１時刻前の画像内で該注目画素に対応する画素と該注目画素との間の画素値の差分とを、該注目画素をブロック内で移動させながら求め、
前記ブロック内の各画素に対する画素値の差分と該ブロックの中心画素に対する画素値の差分との差の絶対値をあらかじめ定められた閾値と比較して、動きベクトルの計算における加算に、該各画素に対する画素値の差分を含めるべきか否かを判定し、
加算に含めるべきものと判定された画素値の差分を用いて、前記ブロックの中心画素に対する動きベクトルを計算することを特徴とする動きベクトル検出方法。
【請求項５】
請求項４に記載の動きベクトル検出方法を計算機に実行させるための動きベクトル検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理方式に係り、さらに詳しくはＩＰ変換などの画像変換、動画像圧縮、動物体認識などのために用いられる動きベクトルを検出するための動きベクトル検出装置、検出方法、および検出プログラムに関する。
【背景技術】
【０００２】
画像変換、例えばインタレース画像をプログレッシブ画像に変換するＩＰ変換などにおいては、例えばトップフィールド、またはボトムフィールド内の画素の補間のために動きベクトルを用いる方法がある。またＭＰＥＧなどの動画像圧縮符号化方式においては、動きベクトルを用いた圧縮を行うことによって、符号化効率を高めることができる。さらに画像中の動体検出などのように、多数の画像処理技術において動きベクトルが利用されている。
【０００３】
動きベクトルを検出する方法としてブロックマッチングや勾配法がある。ブロックマッチングは画像を一定の大きさのブロックに分割し、そのブロックをテンプレートとして動かすことによって、それぞれのブロックに対する動きベクトルを求めるものであるが、一般に計算に時間がかかり、またメモリ量が大きくなるという問題点がある。
【０００４】
これに対して勾配法、例えばブロック勾配法は、ある画素を中心として、画像の一定の大きさの領域（３×３画素など）に対する動きベクトルを中心画素に対する動きベクトルとして検出するために勾配法の条件式を解くものであり、ブロックマッチング法と比べて演算量は小さくなるが、ノイズに弱く、特に画像のエッジ部分で著しく精度が落ちるという問題点がある。
【０００５】
このような動きベクトル検出に関する従来技術としての特許文献１では、例えば水平方向、または垂直方向の一方の画像勾配しかない画像において動きベクトル検出が不可能となるという問題点を解決するために、異なる演算式に基づいて求めた複数の動きベクトルを、対応する動きベクトルの検出単位における画像の特徴に応じて選択して出力する技術が開示されている。
【０００６】
しかしながらこのような従来技術を用いても、特に勾配法を用いる場合に画像のエッジ部分で動きベクトルの検出精度が落ちてしまうという問題点を解決することはできなかった。
【特許文献１】特開２００４−１５３３６３「動きベクトル検出方法及び動きベクトル検出装置」
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の課題は、上述の問題点に鑑み、勾配法、特にブロック勾配法を用いる動きベクトル検出方式において、画像のエッジ部分で精度が落ちるという問題点を解決し、動きベクトルの検出精度を向上させることである。
【課題を解決するための手段】
【０００８】
本発明の動きベクトル検出装置は、入力画像内でブロックを構成する複数の各画素に対応して、現時点の画像内の注目画素の近傍の画素の間の画素値の差分と、１時刻前の画像内で該注目画素に対応する画素と該注目画素との間の画素値の差分とを、該注目画素をブロック内で移動させながら求める画素値差分計算手段と、画素値差分計算手段の出力する
前記ブロック内の各画素に対する画素値の差分と該ブロックの中心画素に対する画素値の差分との差の絶対値をあらかじめ定められた閾値と比較して、その画素値の差分を動きベクトルの計算における加算に含めるべきか否かを判定する加算判定手段と、加算判定手段によって加算に含めるべきものと判定された画素値の差分を用いて、ブロックの中心画素に対する動きベクトルを計算する動きベクトル計算手段とを備える。
【０００９】
本発明においては、例えば画素値の差分として注目画素の横方向の隣接画素の間、縦方向の隣接画素の間、および注目画素と１時刻前の画像内で同一位置の画素との間の差分が求められ、各画素に対する差分とブロック中心画素に対する差分との差の絶対値があらかじめ定められたそれぞれの閾値より小さい場合にのみ、その画素に対する画素値の差分が動きベクトル計算における加算に含められることによって、そのような差分の値が大きくなる画像のエッジ部分に対する差分が動きベクトル計算に含まれないものとなる。
【００１０】
本発明の動きベクトル検出方法は、以上の動きベクトル検出装置の動作に対応する方法であり、また動きベクトル検出プログラムはその方法を計算機に実行させるものである。
【発明の効果】
【００１１】
本発明によれば、ある画素に対する画素値の差分の内であらかじめ定められた閾値より大きいものがある場合に、その画素に対する画素値の差分が動きベクトルの計算から除外されることによって、特に画像のエッジ部分における動きベクトル検出精度の低下を防止することが可能となり、またそのような画素に対応する画素値の差分を計算から除外することによって、動きベクトル検出のための処理を高速化することが可能となる。
【発明を実施するための最良の形態】
【００１２】
図１は本発明の動きベクトル検出装置の原理構成ブロック図であり、装置１は少なくとも画素値差分計算手段２、加算判定手段３、および動きベクトル計算手段４を備える。
画素値差分計算手段２は、ブロックを構成する各画素に対応して、例えばｘ方向、ｙ方向の隣接画素の間の画素値の差分と、１時刻前の画像内で同一位置の画素との間の差分を求めるものである。加算判定手段３は、各画素に対する差分とブロック中心画素に対する差分との差を閾値と比較して、各画素に対する差分を動きベクトル計算内の加算に含めるべきかを判定し、動きベクトル計算手段４は加算に含めるべきと判定された画素に対する差分を用いてブロック中心画素に対する動きベクトルを計算する。
【００１３】
本発明においては、その基本としてブロック勾配法を用いるために、具体的な実施形態をさらに説明する前に、まず通常のブロック勾配法について説明する。図２は、ブロック勾配法における画素値の差分の求め方の説明図である。同図において左側の画像は時刻ｔ−１における画像、右側の画像は時刻ｔにおける画像であるとする。
【００１４】
図２において中央の画素Ｅ（ｘ，ｙ，ｔ）を注目画素とし、この注目画素に対するｘ方向の画素値差分、ｙ方向の画素値の差分、ｔ方向の画素値の差分（いずれも絶対値）を次式を用いて求めるものとする。なおこの式は一例であり、差分の計算に異なる式を用いることも可能である。
【００１５】
【数１】
2008147974.tif 000003
【００１６】
本実施例では、５×５個の画素によって構成されるブロック領域に対応して、ブロックの中心画素に対する動きベクトルを検出するためのブロック勾配法を用いて、勾配法の条件式を解くものとする。図３は、５×５個の画素によって構成されるブロック内の画素番号の例である。中央の画素、すなわち画素番号０から始め、画素番号２４までの画素のそれぞれに対するｘ方向画素値差分Ｅｘ０からＥｘ２４、ｙ方向差分Ｅｙ０からＥｙ２４、ｔ方向差分Ｅｔ０からＥｔ２４を図２の考え方によって求める。
【００１７】
これらの画素値差分と動きベクトル（ｕ，ｖ）を用いることによって、ブロック勾配法の条件式が次のように求められる。
【００１８】
【数２】
2008147974.tif 000004
【００１９】
ここで動きベクトル（ｕ，ｖ）は次式によって与えられる。
【００２０】
【数３】
2008147974.tif 000005
【００２１】
以上がブロック勾配法の一般的説明であるが、本発明においては画素番号で１から２４の画素のそれぞれに対応するｘ方向差分、ｙ方向差分、ｔ方向差分と、中央の画素、すな
わち画素番号０の画素に対するｘ方向差分、ｙ方向差分、ｔ方向差分との間でそれぞれ差を取り、その差の絶対値をあらかじめ定められた閾値、すなわちｘ方向の閾値、ｙ方向の閾値、ｔ方向の閾値とそれぞれ比較し、差の絶対値のいずれかが閾値以上となる画素に対するｘ方向、ｙ方向、ｔ方向の差分を、動きベクトル（ｕ，ｖ）を計算するための総和から除外し、動きベクトルの計算を行うものとする。これは閾値以上となる画素が、画像の領域として別の領域であるものと考えて、ブロック勾配法の拘束条件が成り立たない、すなわち動きベクトルが同一の領域にない画素であるものと考えるためである。
【００２２】
図４は、画像内の１つのブロックに対する画素値の具体例である。本実施例では、動きベクトル検出対象の画素を中心とする５×５個の画素によって１つのブロックが構成されるものとするが、この５×５個の画素に対して前述のｘ方向の差分、ｙ方向の差分をそれぞれ計算するために、ブロックの周辺画素を加えた７×７個の画素の画素値が必要となる。また時間ｔ方向の差分を求めるために、１時刻前のｔ−１における画素値も必要となる。図４の左側は時刻ｔにおける７×７個の画素の画素値を示し、右側は時刻ｔ−１における７×７個の画素の画素値を示す。
【００２３】
図５は、前述の（１）式によって求められるＥｘ、Ｅｙ、およびＥｔの値を示す。５×５個の画素によって構成されるブロック内のすべての画素に対して、ｘ方向の差分（の絶対値）Ｅｘ、ｙ方向の差分Ｅｙ、およびｔ方向の差分Ｅｔが示されている。
【００２４】
図５の差分に対して、各画素の差分と中央の画素の差分との差の絶対値が、各方向の閾値を越える画素を黒塗りとした結果を図６の上側に示す、その最も左側には各画素のｘ方向の差分Ｅｘと中央の画素の差分Ｅｘ０との差の絶対値が、ｘ方向の閾値Ｅｔｈｘ＝１０以上となる画素を黒塗りで示している。
【００２５】
中央には同様にｙ方向の差の絶対値がｙ方向の閾値Ｅｔｈｙ＝２０以上となる画素を黒塗りで示し、最も右側にはｔ方向の差の絶対値がｔ方向の閾値Ｅｔｈｔ＝３０以上となる画素を黒塗りで示している。
【００２６】
図６の下側はこれらの３つの閾値条件のいずれかが成立する画素を黒塗りで示した状態を示す。本実施例では、中央の画素に対する動きベクトルの検出にあたり、黒塗りの画素に対するエッジ成分（差分）Ｅｘ、Ｅｙ、およびＥｔを、前述の動きベクトル（ｕ，ｖ）の算出のための（３）式における加算から除外して、ｕ，ｖの計算を行うことにする。
【００２７】
図７は、本実施例における動きベクトル検出方法、および検出プログラムの詳細フローチャートである。同図において処理が開始されると、まずステップＳ１からＳ１４のｙ方向のループの処理が行われる。このループではｙ座標、すなわち縦方向の座標が“１”、すなわち最も上のラインがまず取られ、ループの繰り返し毎に１ラインずつ、画像の高さの値にｙ座標が達するまでループが繰り返される。
【００２８】
続いてステップＳ２からＳ１３で、ｘ方向のループの処理が行われる。このループでは、フィールド画像内でｘ座標が“１”、すなわち最も左側の列から始めて画素１個ずつ、画像の幅にｘ座標が一致するまで処理が繰り返される。
【００２９】
続いてステップＳ３で、ステップＳ１、Ｓ２のループの選択結果としての画素、最初は最も左上の画素を中心画素として、基本的には５×５個の画素によって決定されるブロックに対応してＥｘ０、Ｅｙ０、Ｅｔ０の計算が行われる。なお、この処理は後述するステップＳ７における処理の一部と重複するが、例えば図８の装置の構成で、これらの値をそれぞれ個別のレジスタに格納するために、またソフトウェアによる処理では別のメモリに格納するために行われる。
【００３０】
続いてステップＳ４からＳ１１において、ブロック内のｙ方向ループとして、ｙ座標、すなわちｙ＿ｂｌｋの値がｙ−Ｎ／２からｙ＋Ｎ／２までのラインに対する処理が１ラインずつ行われる。ここでＮはブロック内でｙ方向の画素の数、すなわちＮ＝５であり、ブロック内のラインが上から１ラインずつ選択されて処理が行われることになる。なおＮ／２はＮを２で割った結果の整数部である。
【００３１】
続いてステップＳ５からＳ１０によって構成されるループによって、ブロック内のｘ方向ループの処理が行われる。すなわち、ｘ＿ｂｌｋの値がｘ−Ｎ／２からｘ＋Ｎ／２までの画素が１画素ずつ選択されて、ステップＳ６からＳ９の処理が行われることになる。
【００３２】
ステップＳ６では、まず動きベクトル（ｕ，ｖ）の計算式の内部で必要となる総和の値、すなわちＥｘＥｔ、ＥｙＥｔ、Ｅｘ２（＝Ｅｘ２）、Ｅｙ２（＝Ｅｙ２）、およびＥｘＥｙの総和の値がすべて初期化されて“０”とされ、ステップＳ７で座標（ｘ＿ｂｌｋ，ｙ＿ｂｌｋ）の画素に対するＥｘ、Ｅｙ、およびＥｔの値が計算される。
【００３３】
続いてステップＳ８で、図６で説明した３つの閾値条件のいずれか１つがこの画素に対して成立しているか否かが判定され、成立していない場合にはＥｘＥｔ、ＥｙＥｔ、ＥｘＥｘ、ＥｙＥｙ、ＥｘＥｙの値がそれぞれの総和の式に加算された後に、また１つでも閾値条件が成立する場合にはその加算を行うことなく、ステップＳ１０で１つのｘ方向ブロック内ループを終了する。
【００３４】
ブロック内の一番上のライン上で最も左側の画素から右側の画素に対してステップＳ６からＳ９の処理が繰り返され、その後ステップＳ４からＳ１１で１ラインずつ、下のラインについて同様の処理が繰り返され、ブロック内のすべての画素に対する処理を終了すると、ステップＳ１２で、求められたそれぞれの総和の値を用いて、ブロック内の中心画素（ｘ，ｙ）に対して動きベクトル（ｕ，ｖ）が算出される。
【００３５】
ステップＳ２からＳ１３までのループにおいて、画像内の最も上のラインの最も左側の画素から１画素ずつ、その画素を中心画素とするブロックに対して動きベクトル算出が繰り返され、それが終了すると、ステップＳ１からＳ１４のループにおいて、上から２番目、３番目．．のライン内の画素に対する処理が繰り返され、画像高さ、すなわち最も下のラインの画素に対する処理までが繰り返されて、動きベクトル算出処理を終了する。
【００３６】
図８は、動きベクトル検出装置の詳細構成ブロック図である。同図において動きベクトル検出装置１０に対しては、前フレーム保持メモリ１１と、現フレーム保持メモリ１２とが接続され、前フレーム保持メモリ１１からは、例えば前フレーム内のトップフィールドの画像データが、また現フレーム保持メモリ１２からは同様に現フレーム内のトップフィールドの画像データが動きベクトル検出装置１０に与えられ、動きベクトル検出装置１０からは入力画像内の各画素に対する動きベクトル（ｕ，ｖ）が出力される。
【００３７】
動きベクトル検出装置１０は、前フレーム保持メモリ１１から入力される画像データを格納するラインバッファ１３、現フレーム保持メモリ１２から入力され、周辺画素を含み、１つのブロックの画像データを含むＮ行（Ｎライン分）のデータを格納するラインバッファＮ行１４、ｔ方向差分を計算するＥｔ計算部１５、ｘ方向差分を計算するＥｘ計算部１６、ｙ方向差分を計算するＥｙ計算部１７、加算判定部１８、５つの乗算器１９ａから１９ｅ、５つの加算器２０ａから２０ｅ、それぞれ加算結果を格納するΣＥｘＥｔ格納部２１、ΣＥｙＥｔ格納部２２、ΣＥｘ２格納部２３、ΣＥｘＥｙ格納部２４、ΣＥｙ２格納部２５、および動きベクトル計算部２６によって構成されている。
【００３８】
本実施例において、最も特徴的な構成要素としての加算判定部１８は、ブロックの中央の画素に対応するＥｔ０、Ｅｘ０、Ｅｙ０、加算判定の対象となる画素に対応するＥｔ、Ｅｘ、Ｅｙをそれぞれ格納する６個のレジスタ３１から３６、これら６個のレジスタに格納されている値とｘ方向、ｙ方向、ｔ方向に対する閾値を用いて、図６で説明した３つの閾値条件が１つでも成立するか否かを判定する比較部３７、比較部３７の判定結果に従って、３つの閾値条件のいずれも成立しない場合にはＥｔ、Ｅｘ、Ｅｙの値をそれぞれ出力し、いずれか１つの閾値条件が成立する場合にはそれぞれ“０”を出力する３つのセレクタ３８から４０によって構成されている。
【００３９】
なお、本発明の特許請求の範囲の請求項１における画素値差分計算手段は図８の各計算部１５〜１７に対応し、加算判定手段は加算判定部１８に相当し、動きベクトル計算手段はそれぞれ５つの乗算器１９と加算器２０、５つの格納部２１〜２５、および動きベクトル計算部２６に相当する。
【００４０】
図８において３つの閾値条件のいずれも成立しない場合には、セレクタ３８からＥｔが２つの乗算器１９ａ、１９ｂに出力され、またセレクタ３９からＥｘの値が乗算器１９ｃに対する２つの入力として、また乗算器１９ａと１９ｄに対する１つの入力として与えられる。さらにセレクタ４０からＥｙの値が乗算器１９ｂと１９ｄとに対する１つの入力として、また乗算器１９ｅに対する２つの入力として与えられる。
【００４１】
乗算器１９ａの出力は加算器２０ａによってΣＥｘＥｔに加算され、乗算器１９ｂの出力は加算器２０ｂによってΣＥｙＥｔに加算され、乗算器１９ｃの出力は加算器２０ｃによってΣＥｘ２に加算され、乗算器１９ｄの出力は加算器２０ｄによってΣＥｘＥｙに加算され、また乗算器１９ｅの出力は加算器２０ｅによってΣＥｙ２に加算される。
【００４２】
図９は、本発明の動きベクトル検出方式と従来技術としてのブロックマッチング、およびブロック勾配法との比較の説明図である。まず演算量については、本発明とブロック勾配法との演算量はほぼ同じで、ブロックマッチングに比べてかなり小さく、画像の拡大、縮小、および回転に対しても対応が可能である。例えば観覧車の画像のように、回転するような物体の画像に対しては、ブロックマッチングではある方向のテンプレートを動かすために、動きベクトルを検出することが困難である。検出精度については、本発明においてはブロック内の画素と中央の画素との画素値の差分の差の絶対値がある閾値以上になる場合には、その画素に対する差分を動きベクトル算出のための総和に加算しないことによって、ブロック勾配法の欠点である画像のエッジ部分で精度が落ちてしまうことを防止することができ、ブロックマッチングと同程度の検出精度を得ることができる。
【００４３】
なお、以上の説明では、インタレース方式のフィールド画像を例として、本発明の動きベクトル検出方式を説明したが、本発明の適用範囲はこれに限定されることなく、各種の画像処理に適用可能なことは当然である。
【図面の簡単な説明】
【００４４】
【図１】本発明の動きベクトル検出装置の原理構成ブロック図である。
【図２】ブロック勾配法における画素値の差分の求め方の説明図である。
【図３】１つのブロック内の画素の番号の説明図である。
【図４】１つのブロックに対応する画素の画素値の具体例である。
【図５】図４の具体例に対する画素値の差分の説明図である。
【図６】本実施例において動きベクトルの算出に使用しない画素の説明図である。
【図７】本実施例における動きベクトル算出方式の処理フローチャートである。
【図８】本実施例における動きベクトル検出装置の詳細構成ブロック図である。
【図９】本発明と従来技術との比較を示す図である。
【符号の説明】
【００４５】
１、１０      動きベクトル検出装置
２      画素値差分計算手段
３      加算判定手段
４      動きベクトル計算手段
１１      前フレーム保持メモリ
１２      現フレーム保持メモリ
１３      ラインバッファ
１４      ラインバッファＮ行
１５      Ｅｔ計算部
１６      Ｅｘ計算部
１７      Ｅｙ計算部
１８      加算判定部
１９      乗算器
２０      加算器
２１      ΣＥｘＥｔ格納部
２２      ΣＥｙＥｔ格納部
２３      ΣＥｘ２格納部
２４      ΣＥｘＥｙ格納部
２５      ΣＥｙ２格納部
２６      動きベクトル計算部
３１      Ｅｔ０レジスタ
３２      Ｅｔレジスタ
３３      Ｅｘ０レジスタ
３４      Ｅｘレジスタ
３５      Ｅｙ０レジスタ
３６      Ｅｙレジスタ
３７      比較部
３８、３９、４０      セレクタ
【図１】
2008147974.tif 000006
【図２】
2008147974.tif 000007
【図３】
2008147974.tif 000008
【図４】
2008147974.tif 000009
【図５】
2008147974.tif 000010
【図６】
2008147974.tif 000011
【図７】
2008147974.tif 000012
【図８】
2008147974.tif 000013
【図９】
2008147974.tif 000014