JP6155087B2 - 動き推定装置及びプログラム - Google Patents

動き推定装置及びプログラム Download PDF

Info

Publication number
JP6155087B2
JP6155087B2 JP2013096489A JP2013096489A JP6155087B2 JP 6155087 B2 JP6155087 B2 JP 6155087B2 JP 2013096489 A JP2013096489 A JP 2013096489A JP 2013096489 A JP2013096489 A JP 2013096489A JP 6155087 B2 JP6155087 B2 JP 6155087B2
Authority
JP
Japan
Prior art keywords
motion estimation
motion
filter coefficient
input
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013096489A
Other languages
English (en)
Other versions
JP2014220565A (ja
Inventor
俊枝 三須
俊枝 三須
康孝 松尾
康孝 松尾
境田 慎一
慎一 境田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Broadcasting Corp
Original Assignee
Japan Broadcasting Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Broadcasting Corp filed Critical Japan Broadcasting Corp
Priority to JP2013096489A priority Critical patent/JP6155087B2/ja
Publication of JP2014220565A publication Critical patent/JP2014220565A/ja
Application granted granted Critical
Publication of JP6155087B2 publication Critical patent/JP6155087B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Analysis (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)

Description

本発明は、映像信号から動きベクトルを推定する動き推定装置及びプログラムに関する。
映像符号化において映像フレーム間の相関を利用した情報圧縮を行うことや、画像監視システムにおいて動物体の検出や追跡を行うことを目的として、映像フレーム間において局所的なあるいは大局的な動き量や動きの方向を推定する動き推定技術が広く用いられている。
動き推定技術として、ある時点の映像フレームにおいて、画像内に設定したブロック領域内の輝度や色のパターンと類似する領域を別の映像フレームの画像内において探索することで、該ブロック領域の動きベクトルを求めるブロックマッチング法が知られている。ブロックマッチング法においては、類似する領域の探索を、部分画像間の相互相関の最大化や、誤差(絶対値誤差、二乗誤差など)の総和の最小化により実現する手法が実用化されている。
また、ブロックマッチング法において、面的な探索の演算負荷を削減するため、映像フレームを階層的に縮小した画像群を作成し、低解像画像で粗く探索した結果に基づき、より高解像な画像においてより精細に探索を行う階層探索もある(例えば、特許文献1参照)。さらに、ブロックマッチング法において、菱形の探索領域を設定し、所定の探索手順によって高速に動きベクトル探索を行うダイアモンドサーチ動き推定手法がある(例えば、特許文献2参照)。
動き推定技術として、ブロックマッチング法のほか、画像の時間勾配及び空間勾配に基づき、動き推定を行う勾配法が知られている(例えば、非特許文献1参照)。勾配法として、例えばLucas−Kanade法が知られている。勾配法によって大きな動きベクトルを求めるためには、まず、大きな範囲を覆う平滑化フィルタを入力映像に適用してから必要に応じて縮小変換し、勾配演算を実行する必要がある。しかし、大きな範囲を覆う平滑化を入力映像に適用すると小さな動きベクトルの精度が低下してしまう。このトレードオフを解決するため、大きな範囲を覆う平滑化を入力映像に適用して動きベクトルを求め、その結果を利用しつつ、小さな範囲を覆う平滑化を入力映像に適用して動きベクトルを高精度化していく階層化手法も用いられている。
特許第3979977号公報 特許第4897323号公報
Bruce D.Lucas and Takeo Kanade, "An Iterative Image Registration Technique with an Application to Stereo Vision (IJCAI)", Proceedings of the 7th International Joint Conference on Artificial Intelligence (IJCAI ’81), April, 1981, PP.674-679.
しかし、従来の勾配法により動き推定を行う場合には、動き量と同程度の大きさの点拡がり関数によって画像をぼかしてから勾配演算を行わなければならないため、大きな動き量を推定できるようにするためには、画像を大きくぼかす必要がある。しかし、画像を大きくぼかすと、動きの異なる領域のテクスチャが混合する可能性が高くなり、推定精度を低下させる要因となる。このように、画像のぼかし量を一定とした場合には、動きの大きい場合の動き推定の頑健性を維持しつつ、動きの小さい場合の動き推定の精度を向上させることは困難であった。
かかる事情に鑑みてなされた本発明の目的は、映像信号の動きベクトルを推定する際に、動きの大きい場合の動き推定の頑健性を維持しつつ、動きの小さい場合の動き推定の精度を向上させることが可能な動き推定装置及びプログラムを提供することにある。
上記課題を解決するため、本発明に係る動き推定装置は、入力映像信号から動きベクトルを推定する動き推定装置であって、入力映像信号に対してフィルタ係数を用いて畳み込み演算を行い、畳み込み演算後の入力映像信号から勾配法により動きベクトルを推定するn個(n≧2)の動き推定部と、前記動きベクトルに基づいて前記フィルタ係数を決定し、前記動きベクトルの大きさが大きいほど、前記フィルタ係数の畳み込みカーネルのサイズを大きくする(n−1)個の係数制御部とを備え、前記動き推定部及び前記係数制御部は交互に直列に接続され、各係数制御部は、前段に接続された動き推定部から入力される動きベクトルに基づいて、後段に接続される動き推定部のフィルタ係数を決定し、前記n個の動き推定部のうちの最後段の動き推定部によって推定された動きベクトルを当該動き推定装置の出力とすることを特徴とする。
さらに、本発明に係る動き推定装置において、前記動き推定部は、入力信号を1クロック遅延させた1クロック遅延信号を出力する第1のシフトレジスタと、前記入力信号を1ライン遅延させた1ライン遅延信号を出力する第2のシフトレジスタと、前記入力信号を1フレーム遅延させた1フレーム遅延信号を出力する第3のシフトレジスタと、前記入力信号及び前記1クロック遅延信号の差分値B、前記入力信号及び前記1ライン遅延信号の差分値B、並びに前記入力信号及び前記1フレーム遅延信号の差分値Bを算出する第1の減算回路と、を有する差分演算部と、前記B、B、及びBを入力し、B・B、B・B、B・B、B 、及びB をそれぞれ算出する第1の乗算回路と、前記第1の乗算回路から入力される信号を1クロックずつ遅延させる複数の第4のシフトレジスタと、前記第1の乗算回路から入力される信号及び前記複数の第4のシフトレジスタの出力値を加算する第1の加算回路と、前記第1の加算回路から入力される信号を1ラインずつ遅延させる複数の第5のシフトレジスタと、前記第1の加算回路から入力される信号及び前記複数の第5のシフトレジスタの出力値を加算する第2の加算回路と、を有し、前記B・Bの所定ブロック内の総和値U、前記B・Bの前記所定ブロック内の総和値R、前記B・Bの前記所定ブロック内の総和値T、前記B の前記所定ブロック内の総和値Q、及び前記B の前記所定ブロック内の総和値Pを算出する総和演算部と、前記総和演算部の演算結果を入力し、R・U、R・T、Q・T、P・Q、P・U、及びRをそれぞれ算出する第2の乗算回路と、前記第2の乗算回路の演算結果を入力し、Q・T−R・U、R−P・Q、及びP・U−R・Tをそれぞれ算出する第2の減算回路と、前記第2の減算回路の演算結果を入力し、(Q・T−R・U)/(R−P・Q)、及び(P・U−R・T)/(R−P・Q)をそれぞれ算出する除算回路と、を備えることを特徴とする。
さらに、本発明に係る動き推定装置において、前記動き推定部は、前記差分演算部の前段に前記畳み込み演算を行う畳込部を備え、前記畳込部は、シフトレジスタ、加算回路、及び乗算回路を用いて、所定のブロック内で前記入力映像信号及び前記フィルタ係数の積和演算を行うことを特徴とする。
さらに、本発明に係る動き推定装置において、前記係数制御部は、前記動き推定部から入力される動きベクトルの水平成分及び垂直成分の各大きさに応じて、前記フィルタ係数の畳み込みカーネルの水平方向及び垂直方向のサイズを制御すること特徴とする。
さらに、本発明に係る動き推定装置において、前記係数制御部は、前記動き推定部から入力される動きベクトルの水平成分及び垂直成分の各大きさに応じて、前記フィルタ係数の畳み込みカーネルの水平方向及び垂直方向のサイズを制御することを特徴とする。
さらに、本発明に係る動き推定装置において、前記係数制御部により決定されるフィルタ係数の畳み込みカーネルのサイズは、該係数制御部よりも前段に配置された係数制御部により決定されるフィルタ係数の畳み込みカーネルのサイズを超えないことを特徴とする。
さらに、本発明に係る動き推定装置において、前記係数制御部は、フィルタ係数列を複数組み記憶したフィルタ係数テーブルを備え、前記動き推定部から入力される動きベクトルに応じて、前記フィルタ係数テーブルからフィルタ係数を選択することを特徴とする。
また、上記課題を解決するため、本発明に係るプログラムは、コンピュータを、上記動き推定装置として機能させることを特徴とする。
本発明によれば、映像信号の動きベクトルを推定する際に、階層化を行うことなく、動きの大きい場合の動き推定の頑健性を維持しつつ、動きの小さい場合の動き推定の精度を向上させることができるようになる。
本発明の一実施形態に係る動き推定装置の構成を示すブロック図である。 本発明の一実施形態に係る動き推定装置における動き推定部の構成を示すブロック図である。 本発明の一実施形態に係る動き推定装置における畳込部の構成を示すブロック図である。 本発明の一実施形態に係る動き推定装置における総和演算部の構成を示すブロック図である。 本発明の一実施形態に係る動き推定装置が出力する動きベクトルの対象画素を説明する図である。 本発明の一実施形態に係る動き推定装置が出力する動きベクトルの有効領域及び無効領域を説明する図である。 本発明の一実施形態に係る動き推定装置における係数制御部の構成を示すブロック図である。 本発明の一実施形態に係る、動き推定部を3つ備える場合の動き推定装置の構成を示すブロック図である。
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
図1は、本発明の一実施形態に係る動き推定装置の構成を示すブロック図である。図1に示す例では、動き推定装置1は、n個(n≧2)の動き推定部10と、(n−1)個の係数制御部20と、(n−1)個の遅延部30とを備える。動き推定部10及び係数制御部20は交互に直列に接続される。図1は、n=2の場合を示しており、動き推定装置1は、2個の動き推定部10(10−1及び10−2)と、1個の係数制御部20と、1個の遅延部30とを備える。
動き推定部10−1は、入力映像信号I、及び畳み込み演算に用いられるフィルタ係数H(1)に基づいて動きベクトルV(1)を推定し、係数制御部20に出力する。動き推定部10の詳細については後述する。
遅延部30は、動き推定部10−1における動き推定の遅延を補償するために、入力映像信号Iを遅延させて動き推定部10−2に出力する。遅延部30は例えばシフトレジスタによって実現される。動き推定部10−1がクロックのカウント値c(cは整数)の時点で出力する動きベクトルが、入力映像信号Iのクロックのカウント値c時点の画素位置に対応する場合には、入力映像信号Iをc−cクロックだけ遅延させる。
係数制御部20は、前段(入力側)の動き推定部10−1により生成される動きベクトルV(1)=(u(1),v(1))に基づいて、後段(出力側)の動き推定部10−2の畳み込み演算に用いられるフィルタ係数H(2)を決定し、動き推定部10−2に出力する。係数制御部20の詳細については後述する。
動き推定部10−2は、遅延部30によって遅延された入力映像信号I、及び係数制御部20によって決定されたフィルタ係数H(2)に基づいて動きベクトルV(2)を推定する。
次に、動き推定部10の詳細について説明する。本実施形態では、勾配法を用いて動き推定を行うが、ブロックマッチング法により動き推定をおこなってもよい。
図2は、勾配法を用いて動き推定を行う動き推定部10の構成を示すブロック図である。図2に示す例では、動き推定部10は、畳込部11と、差分演算部12と、乗算回路13(13−1乃至13−5)と、総和演算部14(14−1乃至14−5)と、乗算回路15(15−1乃至15−6)と、減算回路16(16−1乃至16−3)と、除算回路17(17−1及び17−2)とを備える。
畳込部11は、動きベクトル推定の前処理として、ラスタスキャンによって画素値がクロックごとに順次入力される入力映像信号Iに対して、フィルタ係数Hを用いて畳込演算を行う。映像信号を構成するフレームの画像サイズを水平L画素、垂直M画素とおき、時刻t、画像座標(i,j)(i∈{0,1,…,L−1}、j∈{0,1,…,M−1})における画素値をI(t;i,j)とおく。ラスタスキャンにより、第cクロックにおいて、式(1)に示す画素値I(c)が入力される。ここに、c%LはcをLで除したときの剰余を表す。
はzより大きくない最大の整数を表す。また、Fは1フレーム内の画素数(すなわち、F=L・M)を表すものとする。
図3は、畳込部11の構成例を示すブロック図である。畳込部11は、所定のブロック内で入力信号とフィルタ係数との積和演算を行うためのシフトレジスタ、加算回路、及び乗算回路を有する。図3に示す例では、畳込部11は、シフトレジスタ111(111−1乃至111−4)と、乗算回路112(112−1乃至112−5)と、加算回路113と、シフトレジスタ114(114−1乃至114−4)と、乗算回路115(115−1乃至115−5)と、加算回路116とを備える。
ここで、所望の畳込係数列(畳込カーネル)のサイズを水平K画素、垂直K画素とし、座標(i,j)(i∈(0,1,…,K−1)、j∈(0,1,…,K−1))における畳込係数をC(i,j)とおく。図3では畳込カーネルのサイズを5×5とする場合の構成を示しているが、実際には、シフトレジスタ111はK−1個の遅延要素によって構成され、乗算回路112はK個の乗算回路により構成され、シフトレジスタ114はK−1個の遅延要素により構成され、乗算回路115はK個の乗算回路により構成されるものとする。
シフトレジスタ111は、入力信号Iを1クロックずつ遅延させて出力する。
乗算回路112は、入力信号、及びシフトレジスタ111の遅延要素の各出力に対してそれぞれスカラーg,g,…,gを乗じ、乗算値を加算回路113に出力する。
加算回路113は、乗算回路112から入力される乗算値の総和値A(c)を求め、シフトレジスタ114−1及び乗算回路115−1に出力する。A(c)は、式(2)で表される。
シフトレジスタ114は、入力信号を1ライン(すなわちLクロック)ずつ遅延させて出力する。
乗算回路115は、加算回路113の出力、及びシフトレジスタ114の遅延要素の各出力に対してそれぞれスカラーh,h,…,hを乗じ、乗算値を加算回路116に出力する。
加算回路116は、乗算回路115の出力値の総和値B(c)を求め、差分演算部12に出力する。B(c)は、式(3)で表される。
この演算結果は、座標(i,j)における値がg・hとなる2次元関数を、入力系列値I(c)を画像内の矩形の右下とし、水平K画素、垂直K画素の矩形内において入力系列値I(c)を2次元的に畳み込んだ結果に一致する。
以上、畳込部11の処理について説明したが、動き推定装置1の入力側に設けられる動き推定部10−1においては、畳込部11を備えないで、入力映像信号Iを差分演算部12に直接入力するようにしてもよい。その場合には、フィルタ係数H(1)を入力する必要はない。また、動き推定部10−1及び動き推定部10−2は、各々に内在する畳込部11のタップ長が異なっても同一であってもよい。
再び図2の説明に戻る。差分演算部12は、シフトレジスタ121(121−1乃至121−3)と、減算回路122(122−1乃至122−3)とを備える。差分演算部12の入力信号をBとし、その第cクロックにおける画素値をB(c)とする。
シフトレジスタ121−1は、入力信号Bを1クロック遅延させて1クロック遅延画素値B(c−1)を出力する。シフトレジスタ121−2は、入力信号Bを1ライン(すなわちLクロック)遅延させて1ライン遅延画素値B(c−L)を出力する。シフトレジスタ121−3は、入力信号Bを1フレーム(すなわちF=L・Mクロック)遅延させて1フレーム遅延画素値B(c−F)を出力する。
減算回路122−1は、入力画素値B(c)と、シフトレジスタ121−1から出力される1クロック遅延画素値B(c−1)との差分を演算し、水平差分値B(c)を出力する。すなわち、B(c)=B(c)−B(c−1)である。
減算回路122−2は、入力画素値B(c)と、シフトレジスタ121−2から出力される1ライン遅延画素値B(c−L)との差分を演算し、垂直差分値B(c)を出力する。すなわち、B(c)=B(c)−B(c−L)である。
減算回路122−3は、入力画素値B(c)と、シフトレジスタ121−3から出力される1フレーム遅延画素値B(c−F)との差分を演算し、時間差分値B(c)を出力する。すなわち、B(c)=B(c)−B(c−F)である。
乗算回路13は、B(c)・B(c)、B(c)・B(c)、B(c)・B(c)、B(c)・B(c)、及びB(c)・B(c)をそれぞれ求め、その結果を総和演算部14に出力する。
総和演算部14は、画像内における水平サイズT画素、垂直サイズTの矩形ブロック内において乗算回路13から入力される乗算値の総和をそれぞれ求め、その結果を乗算回路15に出力する。総和演算部14−1乃至14−5はすべて同じ構成で実現できる。
図4は、総和演算部14の構成を示すブロック図である。図4に示す例では、総和演算部14は、シフトレジスタ141(14−1乃至14−4)と、加算回路142と、シフトレジスタ143(143−1乃至143−4)と、加算回路144とを備える。総和演算部14の入力信号Dの第cクロックにおける画素値をD(c)とする。
シフトレジスタ141は、入力信号Dを1クロック遅延させて出力する。図4では4個の遅延要素により構成されているが、実際にはT−1個の遅延要素によって構成されるものとする。
加算回路142は、画素値D(c)及びシフトレジスタ141の各出力の総和値E(c)を算出する。総和値E(c)は式(4)で表される。
シフトレジスタ143は、入力信号を1ライン(すなわちLクロック)遅延させて出力する。図4では4個の遅延要素により構成されているが、実際にはT−1個の遅延要素によって構成されるものとする。
加算回路144は、加算回路142の出力値及びシフトレジスタ143の各出力の総和値F(c)を算出する。総和値F(c)は式(5)で表される。これは、入力系列値D(c)を画像内の矩形の右下とし、水平T画素、垂直T画秦の矩形内において2次元的に入力系列値D(c)を総和した結果に一致する。
再び図2の説明に戻る。総和演算部14は、乗算回路13の結果をそれぞれ画像内の水平T画素、垂直T画素の矩形内において総和演算を実行する。総和演算部14−1乃至14−5の演算結果U(c)、R(c)、T(c)、Q(c)、及びP(c)は、それぞれ式(6)乃至式(10)で表される。
乗算回路15は、R(c)・U(c)、R(c)・T(c)、Q(c)・T(c)、P(c)・Q(c)、P(c)・U(c)、及びR(c)をそれぞれ求め、その結果を減算回路16に出力する。
減算回路16−1は、乗算回路15−3の出力値Q(c)・T(c)から乗算回路15−1の出力値R(c)・U(c)を減じた減算値(Q(c)・T(c)−R(c)・U(c))を除算回路17−1に出力する。減算回路16−2は、乗算回路15−6の出力値R(c)から乗算回路15−4の出力値P(c)・Q(c)を減じた減算値(R(c)−P(c)・Q(c))を除算回路17−1及び17−2に出力する。減算回路16−3は、乗算回路15−5の出力値P(c)・U(c)から乗算回路15−2の出力値R(c)・T(c)を減じた減算値(P(c)・U(c)−R(c)・T(c))を除算回路17−2出力する。
除算回路17−1は、減算回路16−1の出力値を減算回路16−2の出力値により除した除算値u(c)を出力する。除算回路17−2は、減算回路16−3の出力値を減算回路16−2の出力値により除した除算値v(c)を出力する。除算値u(c)及びv(c)はそれぞれ式(11)及び(12)で表される。このようにして得られるベクトル(u(c),v(c))は、勾配法による動きベクトルに相当する。動きベクトルはクロックごとにラスタスキャン順序にて画素単位で更新される。
図5は、動き推定装置1が出力する動きベクトルの対象画素を説明する図である。クロックcの時点で入力映像として入力された画素位置が図5中のI(c)の位置である場合、当該時点で得られる動きベクトル(u(c),v(c))は、図5の領域100内の画素値列に対して演算した結果となっている。典型的にはクロックcの時点で出力される動きベクトル(u(c),v(c))は領域100の中心画素における動きを表している。なお、動き推定部10−1が畳込部11を備えない場合には、領域100は水平方向にT−1画素、垂直方向にT−1画素の領域となる。
図6は、動き推定装置1が出力する動きベクトルの有効領域及び無効領域を説明する図である。図6(a)に示すように、クロックcの時点の入力画素の位置I(c)が入力画像の端寄りに存在する場合には、演算に用いられた画素値列が、図6の領域200及び領域201のように別々に割れてしまうことや、フレームを跨いでしまうことがある。このような場合に得られる動きベクトル(u(c),v(c))は信頼できない。そのため、入力画像の位置I(c)が図6(b)に示す領域300内に位置する場合には、動きベクトルを動き推定部10から出力しないなどして利用しないようにし、入力画像の位置I(c)が領域301内に位置する場合のみ、その動きベクトルを利用することが好ましい。
あるいは、動き推定部10の前段にて、入力フレームの大きさを左及び上方向にそれぞれK+T−2画素及びK+T−2画素分だけ拡張することで、元の入力映像Iの画面全体をカバーする動きベクトルを得ることもできる。このときの拡張には、0次外挿(最近傍補間)を用いることが好ましい。
再び図1の説明に戻る。動き推定部10−1には、入力映像I及びフィルタ係数H(1)が入力される。フィルタ係数H(1)は例えば固定係数とし、その点拡がりは想定される動きベクトルの最大値を半径とする円内程度に設定する。例えば、動きベクトルの大きさとして、最大2画素を想定する場合には、半径2画素程度の拡がりを有する平滑化フィルタの係数をフィルタ係数H(1)として与える。例えば、フィルタ係数H(1)として、水平フィルタ係数g。乃至g及び垂直フィルタ係数h乃至hにそれぞれガウシアンや移動平均フィルタの係数を設定する。具体的には、例えば、g=g=g=g=g=h=h=h=h=h=1/5とする。
次に、係数制御部20の詳細について説明する。係数制御部20は、動き推定部10−1の出力する動きベクトルV(1)=(u(1),v(1))に基づき、出力するフィルタ係数H(2)を決定する。係数制御部20は、例えば、動きベクトルV(1)の大きさが大きいほど、点拡がり(畳込カーネルのサイズ)の大きいフィルタ係数H(2)を出力する。あるいは、係数制御部20は、動きベクトルV(1)の水平成分u(1)及び垂直成分v(1)のそれぞれの大きさに応じて、水平方向の点拡がりと垂直方向の点拡がりを独立に制御してもよい。
図7は、係数制御部20の構成を示すブロック図である。図7に示す例では、係数制御部20は、フィルタ選択部21と、フィルタ係数テーブル22とを備える。
フィルタ選択部21は、入力された動きベクトルV(1)の大きさ、又は入力された動きベクトルの水平成分u(1)及び垂直成分v(1)の大きさに応じて、出力すべきフィルタ係数H(2)の点拡がりを制御する。フィルタ選択部21は、動きベクトルV(1)の水平成分u(1)及び垂直成分v(1)の大きさに応じて、出力すべきフィルタ係数の拡がりを制御する場合、例えば式(13)に示すような闘値処理によって、選択出力すべきフィルタを識別するインデックスwの値を決定する。
式(13)において、θ及びθは、動きベクトルV(1)の水平成分u(1)及び垂直成分v(1)に対してその絶対値の大小を判定するための閥値であり、いずれも正の実数とする。例えば、θ=2、θ=2とすると、水平成分u(1)の大きさが2画素より大きいか否か、垂直成分v(1)の大きさが2画素より大きいか否かの組み合わせによって、wの値が0乃至3に決定される。
フィルタ係数H(2)の点拡がりの大きさは、フィルタ係数H(1)の点拡がりの大きさを超えないようにするのが好適である。なお、動き推定部10−1が畳込部11を備えない場合については、フィルタ係数H(1)は入力されないが、点拡がりの大きさが無限大のフィルタ係数H(1)が入力されているとみなすと、フィルタ係数H(2)の点拡がりの大きさはフィルタ係数H(1)よりも小さいといえる。
フィルタ係数テーブル22は、インデックスwごとに出力すべきフィルタ係数H(2)が記憶されているルックアップテーブルを備える。フィルタ係数テーブル22は、入力されたインデックスwの値に応じてルックアップテーブルを参照し、インデックスwに対応付けられたフィルタ係数をフィルタ係数H(2)として出力する。
図7のフィルタ係数テーブル22の吹き出しにルックアップテーブルの一例を示す。このルックアップテーブルによれば、フィルタ係数テーブル22からはフィルタ係数H(2)として、インデックスw=0のときには3×3画素の移動平均フィルタが、インデックスw=1のときには5×3画素の移動平均フィルタが、インデックスw=2のときには3×5画素の移動平均フィルタが、インデックスw=3のときには5×5画素の移動平均フィルタが、それぞれ出力される。
図1に示す実施形態では、動き推定装置1が動き推定部10を2個備える場合について説明したが、動き推定部10を3個以上備えてもよい。図8は、動き推定部10を3個備える場合の動き推定装置1の構成を示すブロック図である。
後段に配置される係数制御部20により決定されるフィルタ係数の点拡がりの大きさ(畳込カーネルのサイズ)は、前段に配置される係数制御部20により決定されるフィルタ係数の点拡がりの大きさを超えないようにするのが好適である。以下に具体例を述べる。例えば、動き推定部10−1に入力されるフィルタ係数H(1)の畳込カーネルのサイズを65×65画素とする。係数制御部20−1は動きベクトルV(1)の大きさを判定し、20画素よりも大きい場合にはフィルタ係数H(2)の畳込カーネルのサイズを51×51画素とし、20画素以下である場合にはフィルタ係数H(2)の畳込カーネルのサイズを41×41画素とする。係数制御部20−2は動きベクトルV(2)の大きさを判定し、20画素よりも大きい場合にはフィルタ係数H(2)の畳込カーネルのサイズを51×51画素とし、10画素よりも大きく20画素以下である場合にはフィルタ係数H(2)の畳込カーネルのサイズを41×41画素とし、10画素以下である場合にはフィルタ係数H(2)の畳込カーネルのサイズを21×21画素とる。
上述したように、動き推定装置1は、入力映像信号から動きベクトルを推定するn個(n≧2)の動き推定部10−1乃至10−nと、動きベクトルに基づいて畳み込み演算に用いられるフィルタ係数を決定する、(n−1)個の係数制御部20−1乃至20−(n−1)とを備え、動き推定部10及び係数制御部20は交互に直列に接続され、各係数制御部20−k(1≦k≦n−1)は、前段に接続された動き推定部10−kから出力される動きベクトルに基づいて、後段に接続される動き推定部10−(k+1)のフィルタ係数を決定し、最後段の動き推定部10−nによって推定された動きベクトルV(n)を出力する。
かかる構成により、動き推定装置1は、まず前段の動き推定部10によっておおまかな動きベクトルを求め、この動きベクトルの大きさや方向に応じてその後段の動き推定部10においてフィルタ係数の点拡がりを制御することができる。かくして、階層化を行うことなく、大きな動きベクトルから小さな動きベクトルまで頑健に算出することができ、小さな動きベクトルはより高精度に算出することが可能となる。
ここで、最前段の動き推定部10−1も、外部から入力されるフィルタ係数H(1)を用いて畳み込み演算を行うのが好適である。このような構成にすることにより、映像信号に含まれる雑音が動きベクトルに与える悪影響を抑えることができるほか、動きベクトルが大きい場合(総和演算部14が総和演算を行うブロックの大きさ程度よりも大きい場合)においても動き推定が可能となる。
動き推定部10は、ブロックマッチング法により動きベクトルを推定してもよい。ただし、ブロックマッチング法においては、探索先の画像内においてブロック領域をずらしながら相関演算あるいは誤差演算(以下、相関演算等)を行う必要がある。そのため、ソフトウェア処理では繰り返しループが必要であり、演算処理時間がかかる。また、ハードウェア処理では、例えば、シフトレジスタによって構成されるラインメモリを複数ライン分確保し、該メモリに探索先の画像を構成する画素値をクロックに従って順次入力し、相関演算等をとるべき画素群の対を、相関演算等を行う演算器へ配線して、相関演算等を実行する。このとき、探索元の画像内のある1ブロックにつき、探索先の画像内における複数の位置のブロック群に対して、それぞれ相関等の演算を行う必要がある。このため、探索元の1ブロック内の画素列と、探索先の1ブロック内の画素列とを相関演算器に全て配線したとしても、探索元のブロック位置の総数と、探索先の探索領域内のブロック位置の総数の積の回数だけシフトレジスタをシフトさせなければフレーム内の動きベクトルを求めることができない。シフトレジスタのシフト回数を減らすためには、異なる複数のブロック対に対して並列的に配線を行う必要がある。いずれにしても、例えばFPGA(Field-Programmable Gate Array)等による論理部・順序部においてブロックマッチングを実装することは、ハードウェア規模及び演算処理時間の観点で高コストである。
そこで、動き推定部10は、勾配法により動きベクトルを推定するのが好適である。勾配法においては、さまざまな大きさの動きに対応させるためには、多くの階層を有する階層化手法を用いることも考えられるが、ソフトウェア、ハードウェアいずれの実装に置いても演算コストや所要リソースの観点で不利である。そこで動き推定部10を、図2乃至図4を参照して説明した回路構成とし、階層化を行わないで動き推定をするのがより好適である。上述したように、動き推定部10は、シフトレジスタと、乗算回路、加算回路、減算回路、及び除算回路17によって動きベクトルVを順次オンラインで演算することができる。ハードウェア規模が大きくなる要因である除算回路17はわずか2個であり、他はフリップフロップとDSP(Digital Signal Processor)で容易に実現できるため、演算回路を小規模化でき、演算処理時間も短縮することが可能となる。
また、上述したように、係数制御部20は、動き推定部10から入力される動きベクトルの大きさに応じて、フィルタ係数の点拡がりを制御するか、あるいは、動きベクトルの水平成分及び垂直成分の各大きさに応じて、フィルタ係数の水平方向及び垂直方向の点拡がりを制御する。そして、後段に配置された係数制御部20により決定されるフィルタ係数の点拡がりの大きさが前段に配置された係数制御部20により決定されるフィルタ係数の点拡がりの大きさを超えないようにする。かかる構成により、動きベクトルに応じて適応的にフィルタ係数を決定することができ、動きの大きい場合の動き推定の頑健性と動きの小さい場合の動き推定の精度とを両立して向上させることができる。
また、係数制御部20は、フィルタ係数列を複数組み記憶したフィルタ係数テーブル22を備え、動き推定部10から入力される動きベクトルに応じてフィルタ係数テーブル22からフィルタ係数を選択するようにしてもよい。このように構成することにより、フィルタ係数の決定を高速化することができる。
なお、上述した動き推定装置1として機能させるためにコンピュータを好適に用いることができ、そのようなコンピュータは、動き推定装置1の各機能を実現する処理内容を記述したプログラムを当該コンピュータの記憶部に格納しておき、当該コンピュータのCPUによってこのプログラムを読み出して実行させることで実現することができる。なお、このプログラムは、コンピュータ読取り可能な記録媒体に記録することができる。
上述の実施形態は代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、実施形態に記載の複数の構成ブロックを1つに組み合わせたり、あるいは1つの構成部ブロックを分割したりすることが可能である。
このように、本発明によれば、映像から動きベクトルを推定する際に、大きな動きベクトルから小さな動きベクトルまで頑健に求めることができるので、動きベクトルを推定する任意の用途に有用である。
1 動き推定装置
10 動き推定部
11 畳込部
12 差分演算部
13,15,112,115 乗算回路
14 総和演算部
16,122 減算回路
17 除算回路
20 係数制御部
21 フィルタ選択部
22 フィルタ係数テーブル
30 遅延部
111,114,121,141,143 シフトレジスタ
113,116,142,144 加算回路

Claims (8)

  1. 入力映像信号から動きベクトルを推定する動き推定装置であって、
    入力映像信号に対してフィルタ係数を用いて畳み込み演算を行い、畳み込み演算後の入力映像信号から勾配法により動きベクトルを推定するn個(n≧2)の動き推定部と、
    前記動きベクトルに基づいて前記フィルタ係数を決定し、前記動きベクトルの大きさが大きいほど、前記フィルタ係数の畳み込みカーネルのサイズを大きくする(n−1)個の係数制御部とを備え、
    前記動き推定部及び前記係数制御部は交互に直列に接続され、
    各係数制御部は、前段に接続された動き推定部から入力される動きベクトルに基づいて、後段に接続される動き推定部のフィルタ係数を決定し、
    前記n個の動き推定部のうちの最後段の動き推定部によって推定された動きベクトルを当該動き推定装置の出力とすることを特徴とする、動き推定装置。
  2. 前記動き推定部は、
    入力信号を1クロック遅延させた1クロック遅延信号を出力する第1のシフトレジスタと、前記入力信号を1ライン遅延させた1ライン遅延信号を出力する第2のシフトレジスタと、前記入力信号を1フレーム遅延させた1フレーム遅延信号を出力する第3のシフトレジスタと、前記入力信号及び前記1クロック遅延信号の差分値BX、前記入力信号及び前記1ライン遅延信号の差分値BY、並びに前記入力信号及び前記1フレーム遅延信号の差分値Btを算出する第1の減算回路と、を有する差分演算部と、
    前記By、Bt、及びBxを入力し、By・Bt、Bx・By、Bx・Bt、By2、及びBx2をそれぞれ算出する第1の乗算回路と、
    前記第1の乗算回路から入力される信号を1クロックずつ遅延させる複数の第4のシフトレジスタと、前記第1の乗算回路から入力される信号及び前記複数の第4のシフトレジスタの出力値を加算する第1の加算回路と、前記第1の加算回路から入力される信号を1ラインずつ遅延させる複数の第5のシフトレジスタと、前記第1の加算回路から入力される信号及び前記複数の第5のシフトレジスタの出力値を加算する第2の加算回路と、を有し、前記By・Btの所定ブロック内の総和値U、前記Bx・Byの前記所定ブロック内の総和値R、前記Bx・Btの前記所定ブロック内の総和値T、前記By2の前記所定ブロック内の総和値Q、及び前記Bx2の前記所定ブロック内の総和値Pを算出する総和演算部と、
    前記総和演算部の演算結果を入力し、R・U、R・T、Q・T、P・Q、P・U、及びR2をそれぞれ算出する第2の乗算回路と、
    前記第2の乗算回路の演算結果を入力し、Q・T−R・U、R2−P・Q、及びP・U−R・Tをそれぞれ算出する第2の減算回路と、
    前記第2の減算回路の演算結果を入力し、(Q・T−R・U)/(R2−P・Q)、及び(P・U−R・T)/(R2−P・Q)をそれぞれ算出する除算回路と、
    を備えることを特徴とする、請求項に記載の動き推定装置。
  3. 前記動き推定部は、前記差分演算部の前段に前記畳み込み演算を行う畳込部を備え、
    前記畳込部は、シフトレジスタ、加算回路、及び乗算回路を用いて、所定のブロック内で前記入力映像信号及び前記フィルタ係数の積和演算を行うこと特徴とする、請求項に記載の動き推定装置。
  4. 前記n個の動き推定部のうちの最前段の動き推定部は、外部から入力されるフィルタ係数を用いて畳み込み演算を行うことを特徴とする、請求項1〜のいずれか一項に記載の動き推定装置。
  5. 前記係数制御部は、前記動き推定部から入力される動きベクトルの水平成分及び垂直成分の各大きさに応じて、前記フィルタ係数の畳み込みカーネルの水平方向及び垂直方向のサイズを制御することを特徴とする、請求項1からのいずれか一項に記載の動き推定装置。
  6. 前記係数制御部により決定されるフィルタ係数の畳み込みカーネルのサイズは、該係数制御部よりも前段に配置された係数制御部により決定されるフィルタ係数の畳み込みカーネルのサイズを超えないことを特徴とする、請求項1からのいずれか一項に記載の動き推定装置。
  7. 前記係数制御部は、
    フィルタ係数列を複数組み記憶したフィルタ係数テーブルを備え、
    前記動き推定部から入力される動きベクトルに応じて、前記フィルタ係数テーブルからフィルタ係数を選択することを特徴とする、請求項1からのいずれか一項に記載の動き推定装置。
  8. コンピュータを、請求項1からのいずれか一項に記載の動き推定装置として機能させるためのプログラム。
JP2013096489A 2013-05-01 2013-05-01 動き推定装置及びプログラム Active JP6155087B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013096489A JP6155087B2 (ja) 2013-05-01 2013-05-01 動き推定装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013096489A JP6155087B2 (ja) 2013-05-01 2013-05-01 動き推定装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2014220565A JP2014220565A (ja) 2014-11-20
JP6155087B2 true JP6155087B2 (ja) 2017-06-28

Family

ID=51938683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013096489A Active JP6155087B2 (ja) 2013-05-01 2013-05-01 動き推定装置及びプログラム

Country Status (1)

Country Link
JP (1) JP6155087B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008092480A (ja) * 2006-10-05 2008-04-17 Shibasoku:Kk 動きベクトル検出方法及び動きベクトル検出回路
JP4775277B2 (ja) * 2007-02-07 2011-09-21 株式会社デンソー 画像処理装置及び画像処理方法
JP4662969B2 (ja) * 2007-11-08 2011-03-30 株式会社半導体理工学研究センター 画像処理装置及び方法
JP2011233039A (ja) * 2010-04-28 2011-11-17 Sony Corp 画像処理装置、画像処理方法、撮像装置、およびプログラム
JP2013041387A (ja) * 2011-08-15 2013-02-28 Sony Corp 画像処理装置、画像処理方法、撮像装置、電子機器、及び、プログラム

Also Published As

Publication number Publication date
JP2014220565A (ja) 2014-11-20

Similar Documents

Publication Publication Date Title
KR101393048B1 (ko) 이미지들의 수퍼 해상도를 위한 방법 및 장치
Banz et al. Real-time stereo vision system using semi-global matching disparity estimation: Architecture and FPGA-implementation
US8958484B2 (en) Enhanced image and video super-resolution processing
US10818018B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
KR20120072352A (ko) 적응 필터링을 이용한 디지털 이미지 안정화 방법
WO2010002630A2 (en) Computing higher resolution images from multiple lower resolution images
JP6236259B2 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP6581359B2 (ja) 情報処理装置及びその制御方法及びプログラム及び記憶媒体、並びに、ビデオカメラ
Roxas et al. Video completion via spatio-temporally consistent motion inpainting
JP2019067169A (ja) 移動ベクトル算出方法、装置、プログラム、及びノイズ除去処理を含む移動ベクトル算出方法
JP6155087B2 (ja) 動き推定装置及びプログラム
US8558948B2 (en) System, method, and apparatus for providing improved high definition video from upsampled standard definition video
JP4662969B2 (ja) 画像処理装置及び方法
EP2424243B1 (en) Motion estimation using integral projection
Xu et al. Spatio-temporal video completion in spherical image sequences
JP2006215657A (ja) 動きベクトル検出方法、動きベクトル検出装置、動きベクトル検出プログラム及びプログラム記録媒体
JP6854629B2 (ja) 画像処理装置、画像処理方法
Patanavijit et al. An iterative super-resolution reconstruction of image sequences using a Bayesian approach with BTV prior and affine block-based registration
Araneda et al. A compact hardware architecture for digital image stabilization using integral projections
Blachut et al. Hardware implementation of multi-scale Lucas-Kanade optical flow computation algorithm—A demo
TWI493476B (zh) 影像處理電路與方法
Krämer et al. Super-resolution mosaicing from MPEG compressed video
KR101428531B1 (ko) 움직임 벡터의 정규화 및 윤곽선의 패턴 분석을 이용한 복수 영상 기반 초해상도 영상 생성 방법
KR101841123B1 (ko) 근사해를 이용한 블록 기반의 동영상 옵티컬 플로 추정
Imamura et al. Scalable Architecture for High-Resolution Real-time Optical Flow Processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170414

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170605

R150 Certificate of patent or registration of utility model

Ref document number: 6155087

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250