動きベクトル検出装置および方法、映像表示装置、映像記録装置、映像再生装置、プログラムおよび記録媒体
【課題】サンプリングポイントの違いにより理論的に発生する動きベクトルの誤差を吸収することが可能となり、より正確に動きベクトルを検出する。
【解決手段】動きベクトルを検出部101は、注目画像ブロック内の隣接画素同士の差分値の平均値を算出し、平均値が大きければSADまたはDFDが小さくなるように補正する。そして、注目画像ブロックのフレームの前のフレームの動きベクトルと同一の動きベクトルをもつ探索範囲内のブロック、もしくは注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ探索範囲内のブロックに対しては、補正したSADまたはDFDに対してさらに所定の加算重みを加える。そして、加算重みの加算後のSADまたはDFDを用いて、その値が最小となるブロックにより与えられる動きベクトルを検出する。
【解決手段】動きベクトルを検出部101は、注目画像ブロック内の隣接画素同士の差分値の平均値を算出し、平均値が大きければSADまたはDFDが小さくなるように補正する。そして、注目画像ブロックのフレームの前のフレームの動きベクトルと同一の動きベクトルをもつ探索範囲内のブロック、もしくは注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ探索範囲内のブロックに対しては、補正したSADまたはDFDに対してさらに所定の加算重みを加える。そして、加算重みの加算後のSADまたはDFDを用いて、その値が最小となるブロックにより与えられる動きベクトルを検出する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、原画像間に内挿画像を生成するための動きベクトルを検出する装置および方法に関し、さらに映像表示装置、映像記録装置、映像再生装置、制御プログラム、および、コンピュータ読み取り可能な記録媒体に関するものである。
【背景技術】
【0002】
近年、60Hzの画像を120Hzの画像に変換する手法や、24Hzのフィルム素材による画像を60Hzや120Hzの画像に変換する手法による映像表現が盛んに行われている。この手法は、液晶表示装置の動きボケ改善やフィルム素材によるジャダーの低減のために用いられる。
また、映像信号のデータ圧縮のために地上波デジタル放送などに使用されているMPEG−2においても、フレーム間の動きベクトルを用いて符号化が行われている。
【0003】
液晶表示装置の液晶パネルで発生する動きボケについては、その発生要因として液晶が電荷を保持して発光を維持するホールド型であることがあげられる。動くものに対する人の視覚は滑らかに追従するものであるため、ホールド型発光の場合、輝度レベルが次のフレームまでの期間保持され、時間積分効果により残像感が生じてしまう。これが動きボケである。この動きボケを解消するために、フレーム周波数を倍速化して液晶表示を陰極線管のようなインパルス型に近づける技術が用いられている。
【0004】
この場合、フレーム間に線形補間によってフレームを内挿したり、周波数を単に2倍にしたりする方法があるが、動きにジャダーが発生したり、動きボケを十分に改善することができない。そこでジャダーの影響をなくして動画像の画質を改善するために、動き補償型のフレーム内挿処理を行う技術が実用化されている。
【0005】
この動き補償型のフレーム内挿技術においては、連続するフレーム間(仮に、時間的に前のフレームをF(t)とし、時間的に後のフレームをF(t+1)とする)が類似した画像であることを基本としており、画素もしくは一定の画素グループが、フレーム間でどのように動いたかを動きベクトルとして表現する。フレーム間の動きベクトルを検出する手法としては、ブロックマッチングや勾配法などが知られている。この動きベクトルの情報をもとに、両フレーム((F(t))、F(t+1))の画素の値を用いて内挿画像を生成する。
【0006】
動きベクトルを求めるブロックマッチングにおいては、一般的には、F(t)を一定のサイズ(例えば、8×8画素)のブロックに区切り、これを1つの単位としてF(t+1)に対して動きベクトルを探索していく。このとき、探索する範囲が広い場合や動き精度を細かくした場合、画素相関の検査を行う回数が増えるため演算規模が増大する。検査回数を減らす方法としては、特許文献1に示されるようにフレーム間の動きの継続性を利用した方法が知られている。
【0007】
画素相関を検査する方法としては、ブロック間の絶対差和を用いたSAD(Sum of Absolute Differences)や差分値の2乗和を用いるDFD(Displaced Field Difference)などが知られている。
SADは、現在のフレームの探索対象ブロックにおける画素値と、参照フレームの参照ブロックにおける画素値の絶対差分値和であり、例えばブロック同士の同じ位置の画素値の差分絶対値をとり、これを累積していくことで計算される。また、DFDは、フレーム間におけるブロック内の同じ位置の画素値の差分の2乗和である。SADやDFDが大きい場合には、ブロック同士の差分が大きいことを意味し、ブロック内画像の形状が異なっていることがわかる。つまり、注目画像ブロックに対して、隣接フレームの所定の探索範囲内のブロックのなかでSADやDFDの値が最も小さいブロックを最も相関が高いブロックとして認識することができる。
【0008】
このように、SADやDFDでは、計算した結果がより小さいものを画素相関があるものとし、一般的にはSADやDFDが探索範囲中で最も小さいブロックが示すベクトルをそのブロックの動きベクトルとする。
また、これに加えて、特許文献2に示されるように、あらかじめ探索範囲中にハンディキャップを与える手法も提案されている。これはSADやDFD演算で求めた結果に対して所定の値を加算もしくは減算して蓄積し、最小値を与えるベクトルを動きベクトルとする手法である。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開昭62−206980号公報
【特許文献2】特表2001−507552号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
実際の映像において、物体は画素単位で動いているわけではない。従って映像信号のサンプリングを行ってデータを処理するデジタル処理においては、SADやDFDの結果が0となるまで詳細な探索を行うことは難しい。つまり、映像内の物体が画素単位以下の細かい動きで動いている場合には、SADやDFDを0とするまでの探索が通常できない。このような場合に対処するため、例えば、1画素単位で動きベクトルの探索を行っているときに、補間処理等により0.5画素単位、0.25画素単位、0.125画素単位、等で仮想画素を生成し、これらの仮想画素の値を用いてさらに細かい動きベクトルを検出する方法がある。しかしながら、0.5ピクセル単位で動きベクトルの探索を行うと処理量は4倍になり、0.25ピクセル単位で動きベクトルの探索を行うと処理量は16倍になって、画素単位を細かくすれば処理量が指数的に増大してしまい、実用的とはいえない。
【0011】
図12は、時間的に連続するフレーム間の画像相関について説明する図で、時間的に連続するフレーム(F(t)、F(t+1))の画像を順に図12(A)、図12(B)に示すものである。この画像の例では、三角形の物体10がフレームF(t)からF(t+1)において画面の右方向に移動したものとする。
【0012】
フレームF(t)とフレームF(t+1)とにおける画素相関を演算する場合、フレームF(t)内のブロック11は、F(t+1)内の領域12のどの部分に対しても高い画素相関を示す。つまり、ブロック11に対して探索ブロックとして領域12のブロックを探索したときに、ブロック同士の同一位置の画素値の差分値が少なくなって、領域12のいくつかのブロックに対してSADまたはDFDの演算結果が同様の小さい値となる。従って、ブロック11の移動後のブロックを正確に確定することができず、動きベクトルの誤検出が生じる。
【0013】
このような場合の対策として、特許文献2に示されるようなハンディキャップにより、SADやDFD演算で求めた結果に対して所定の値を加算もしくは減算して蓄積し、最小値を与えるベクトルを動きベクトルとすることで、三角形の頂点の検出結果や過去の動きに基づき正しい動きベクトルを求めることが可能となる。つまり、過去の動きベクトルや周辺ブロックの動きベクトルと同じ値を示すベクトルのSAD値にハンディキャップを与えることにより、離散点以下のズレの誤差を吸収し、正しい動きベクトルを求めることができる。
【0014】
しかしながら、物体の動き量とサンプリング座標によっては、同じ物体のエッジであっても輝度値など数値が異なって表現される。例えば物体の動き量によってはF(t)とF(t+1)で画像の位相がずれ、同一位置の画像ブロックの間であってもその画素値に差分が生じ、SADの値が変化してしまう。つまり、処理量によって規制されるベクトル精度でブロックマッチングにより動きベクトルを検出するとき、物体の位相ずれによって、物体のサンプリングポイントがずれ、ブロックマッチングにより得られたSADやDFDの演算値が0にならない場合が発生する。
【0015】
例えば、図13に示すように、連続する三角形のパターン20a〜20cが画像に存在するような場合、F(t)の領域21がF(t+1)に移動したときの位相が、パターン20bではなく、パターン20aに対して近くなるような場合が発生する。特にパターンの動きが加速や減速を伴う動きであったり、直線でない動きであった場合にその現象は顕著となる。
【0016】
このような場合を考えて、特許文献2に示されるようなハンディキャップにより、動きを継続する手法を用いて正しい動きベクトルを得ることが可能ではあるが、この手法を用いた場合、急峻なエッジが存在するブロックを基準として、SADやDFDに対する加算のハンディキャップを決定することになる。このように、急峻なエッジに基づく大きなハンディキャップを用いた場合、ハンディキャップの占めるウエイトが高くなり、動きの変化に追随することが難しくなる。従って、従来の手法においては良質な動きベクトルを得ることが難しかった。
【0017】
例えば、図14に示すように、2つの同じ物体200,201が0.5画素ずれて配置されて撮影されたものとする。このとき、これらの物体200,201が一定値Mv=(Vx,0)を基本に(±0.5,0)で動いているものとする。この動きベクトルの変動は、例えば、カメラのブレや物体の動きの不均一などで生じるモデルである(一般的な動画像においては、完全な等速運動を行う物体は少ない)。
【0018】
この例の撮影画像においては、輝度値が8ビットで表現され、物体200,201は白(w)で輝度値が255であり、背景は黒(b)で輝度値が0であるものとする。ここで、フレームF(t)では、左側の物体200は、左右両側のエッジが1画素の1/2に位置し、その画素の輝度値は128のグレー(g)となっている。また、フレームF(t+1)では、右側の物体の左右両側エッジが1画素の1/2に位置し、左右両側のエッジ部にグレー(g)の画素が撮像されている。
【0019】
この場合、フレームF(t)とF(t+1)において、Aの領域の動きベクトルは、同じ物体200のCの領域を示すべきである。しかしながら、SADのみで動きベクトルを判定すると、Aの領域に対しては、Dの領域を示す動きベクトルが求まる。
【0020】
例えば、A,B,C,Dに示す領域のブロックが4×4であったときを考える。
フレームF(t)の領域Aについて、フレームF(t+1)の領域Cに対してのSAD値は、F(t)の輝度値128のグレーの画素が4つと、F(t+1)の輝度値0の黒の画素4つに輝度差が生じることから、(128)×4=512を示す。
一方、フレームF(t)の領域Aについて、フレームF(t+1)の領域Dに対してのSADは、各画素の差分がないため0を示す。この場合、領域Aの動きを維持して領域CのSADを最小とし、領域Cに対する動きベクトルを選択させるようにするためには、領域CのSADに対して512以上のハンディキャップを与える必要がある。
【0021】
しかしながら、このような値をハンディキャップとして与えてしまうと、輝度差の小さい画像(例えば、白の輝度値が138、黒の輝度値が118)などの場合には、ハンディキャップを超えるSADを示すことがないため、ハンディキャップそのものによって動きベクトルが決定してしまうことになる。
【0022】
つまり、大きなハンディキャップを与えなければ、正しい動きを求めることができない画像もあり、また、大きなハンディキャップを与えることで正しい動きを求めることができない場合もあるため、固定的なハンディキャップを与えることは好ましくない。
【0023】
このように、従来技術においては、サンプリングポイントの違いにより理論的に発生する可能性があるSADやDFDの値の変動に対する対処はされておらず、動きベクトルの誤検出の要因となっていた。
本発明は、上述のごとき実情に鑑みてなされたものであり、サンプリングポイントの違いにより理論的に発生する動きベクトルの誤差を吸収することが可能となり、より正確に動きベクトルを検出することができるようにした動きベクトル検出装置および方法、映像表示装置、映像記録装置、映像再生装置、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0024】
上記課題を解決するために、本発明の第1の技術手段は、入力される画像信号のフレーム間の動きベクトルを検出する動きベクトル検出部を備えた動きベクトル検出装置において、前記動きベクトル検出部は、入力された画像信号のフレームの注目画像ブロックと、該注目画像ブロックのフレームに時間的に前後する入力画像信号のフレームの所定の探索範囲内のブロックとの間で、画像ブロック同士における互いに同一位置の画素値の差分絶対値の累積加算値を示すSAD、もしくは前記同一位置の画素値の差分の2乗値の累積加算値を示すDFDを検出し、前記注目画像ブロック内の隣接する2つの画素値同士の差分値の平均値を求め、求めた平均値に基づいて前記SADまたはDFDを補正し、該補正したSADまたはDFDに基づいて動きベクトルを検出することを特徴としたものである。
【0025】
第2の技術手段は、第1の技術手段において、前記動きベクトル検出部が、前記平均値が増大するに従って、前記SADまたは前記DFDが徐々にもしくは段階的に小さくなるような乗算係数もしくは加算値を使用して前記SADまたは前記DFDを補正することを特徴としたものである。
【0026】
第3の技術手段は、第1または2の技術手段において、例えば、前記注目画像ブロックのフレームの前のフレームの動きベクトルと同一の動きベクトルをもつ前記探索範囲内のブロックにより計算した前記補正後のSADまたはDFDに対して、または前記注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ前記探索範囲内のブロックにより計算した前記補正後のSADまたはDFDに対して、前記補正したSADまたはDFDが相対的に小さくなる方向の加算重みを加え、前記加算重みを考慮した前記補正後のSADまたはDFDが最も小さくなるブロックにより与えられる動きベクトルを検出することを特徴としたものである。
【0027】
第4の技術手段は、第1〜第3のいずれか1の技術手段の動きベクトル検出装置と、該動きベクトル検出装置が検出した動きベクトルに基づいて、入力される画像信号のフレーム間に内挿する補間フレームを生成する内挿フレーム生成部と、該内挿フレーム生成部から出力された画像信号を表示する表示部とを備えた映像表示装置である。
【0028】
第5の技術手段は、第1〜第3のいずれか1の技術手段の動きベクトル検出装置と、該動きベクトル検出装置が検出した動きベクトルに基づいて、映像信号をフレーム間で圧縮する符号生成部と、情報を符号化した映像を記録する映像記録部とを備えた映像記録装置である。
【0029】
第6の技術手段は、第5の技術手段によって記録された符号化された映像を再生する映像再生装置である。
【0030】
第7の技術手段は、2つの画像の動きベクトルを検出する動きベクトル検出手段において、前記動きベクトル検出手段は、基準画像の注目画像ブロックと、該注目画像ブロックの参照画像の所定の探索範囲内のブロックとの間で、画像ブロック同士における互いに同一位置の画素値の差分絶対値の累積加算値を示すSAD、もしくは前記同一位置の画素値の差分の2乗値の累積加算値を示すDFDを検出するステップと、前記注目画像ブロック内の隣接する2つの画素値同士の差分値の平均値を求めるステップと、求めた平均値に基づいて前記SADまたはDFDを補正するステップとを有し、該補正したSADまたはDFDに基づいて動きベクトルを検出することを特徴としたものである。
【0031】
第8の技術手段は、第7の技術手段において、前記動きベクトル検出ステップで、前記平均値が増大するに従って、前記SADまたは前記DFDが徐々にもしくは段階的に小さくなるような乗算係数もしくは加算値を使用して前記SADまたは前記DFDを補正することを特徴としたものである。
【0032】
第9の技術手段は、第7または8の技術手段において、例えば、前記注目画像ブロックのフレームの前のフレームの動きベクトルと同一の動きベクトルをもつ前記探索範囲内のブロックにより計算した前記補正後のSADまたはDFDに対して、または前記注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ前記探索範囲内のブロックにより計算した前記補正後のSADまたはDFDに対して、前記補正したSADまたはDFDが相対的に小さくなる方向の加算重みを加え、前記加算重みを考慮した前記補正後のSADまたはDFDが最も小さくなるブロックにより与えられる動きベクトルを検出することを特徴としたものである。
【0033】
なお、動きベクトル検出装置は、コンピュータによって実現してもよい。この場合、コンピュータを上記各手段として動作させることにより上記画像補間装置をコンピュータにおいて実現する制御プログラム、およびその制御プログラムを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【0034】
本発明によれば、サンプリングポイントの違いにより理論的に発生する動きベクトルの誤差を吸収することが可能となり、より正確に動きベクトルを検出することができるようにした動きベクトル検出装置および方法、映像表示装置、映像記録装置、映像再生装置、制御プログラム、および、コンピュータ読み取り可能な記録媒体を提供することができる。
【図面の簡単な説明】
【0035】
【図1】本発明に係る動きベクトル検出装置の構成を説明するためのブロック図である。
【図2】物体の画素値の状態と画素値のサンプリング位置との関係の一例を示す図である。
【図3】図2のサンプリング位置における動きベクトルと画素値との関係を示す図である。
【図4】物体の画素値の状態と画素値のサンプリング位置との関係の他の例を示す図である。
【図5】図4のサンプリング位置における動きベクトルと画素値との関係を示す図である。
【図6】SADの値が大きくなると理論誤差が発生しやすくなるメカニズムを説明するための図である。
【図7】4×4画素のブロックの画像例を示す図である。
【図8】4×4画素のブロックの輝度値の例を示す図である。
【図9】4×4画素のブロックの輝度値の他の例を示す図である。
【図10】4×4画素のブロックの他の画像例を示す図である。
【図11】4×4画素のブロックのさらに他の画像例を示す図である。
【図12】時間的に連続するフレーム間の画像相関について説明する図である。
【図13】時間的に連続するフレーム間の画像相関について説明する他の図である。
【図14】時間的に連続するフレーム間の画像相関について説明するさらに他の図である。
【発明を実施するための形態】
【0036】
図1は、本発明に係る動きベクトル検出装置の構成を説明するためのブロック図で、動きベクトル検出装置を液晶表示装置に適用したときの構成例を示すものである。
液晶表示装置は、入力画像信号のフレーム間に動き補償処理を施した画像信号を内挿することにより入力画像信号のフレーム数を変換するフレームレート変換部100を備えている。液晶表示パネル103は、液晶層と該液晶層に走査信号及びデータ信号を印加するための電極とを有するものであり、電極駆動部104は、フレームレート変換部100によりフレームレートが変換された画像信号に基づいて液晶表示パネル103の走査電極及びデータ電極を駆動して、画像信号を表示させる。
【0037】
フレームレート変換部100は、入力画像信号から動きベクトルを検出する動きベクトル検出部101と、動きベクトル検出部101により得られた動きベクトルに基づいて内挿フレームを生成する内挿フレーム生成部102とを備える。内挿フレーム生成部102は、フレームレート変換部100に入力される画像信号の時間的に連続したフレーム(F(t)、F(t+1))の間に内挿フレームを挿入してフレームレートを変換する。本発明に係る動きベクトル検出装置の実施形態は、入力画像信号から動きベクトルを検出する上記動きベクトル検出部101を必須の構成要素として備えるものである。また、本実施形態の動きベクトル検出装置を備えた液晶表示装置は、本発明の映像表示装置の実施形態に相当する。
【0038】
動きベクトル検出部101は、前述したようなブロックマッチング法を用いて動きベクトル情報を求めるものとする。ブロックマッチング法においては、例えば、前のフレームF(t)の注目画像ブロックと、後のフレーム(F(t+1))の所定の探索範囲内の各画像ブロックとを対応画素ごとに比較し、画素値の差分の絶対値を蓄積してSADを算出する。また、DFDを用いる場合には、画素値の差分の2乗を蓄積してDFDを算出する。画素値としてはR,G,Bの各値であってもよいが、一般に画像の輝度値Yが用いられる。以下の例では、輝度値を用いた例として説明する。
【0039】
そして、探索範囲内の各画像ブロックのうち、SADまたはDFDが最も小さい画像ブロックに対する動きベクトルを、注目画像ブロックの動きベクトルとする。この動きベクトルは大きさと方向を含むもので、注目画像ブロックのフレーム上の2次元で示されるベクトルとなる。
【0040】
ここで本発明に係る実施形態では、動きベクトルを検出する際に、注目画像ブロックの特徴量として、注目画像ブロック内の隣接画素同士の差分値の平均値を算出し、その特徴量(平均値)に基づいてSADまたはDFDを補正する。ここでは特徴量が大きければSADまたはDFDが小さくなるように補正する。そして、動きベクトルの検出においては、注目画像ブロックのフレームの前のフレームの動きベクトルと同一の動きベクトルをもつ探索範囲内のブロックに対しては、補正したSADまたはDFDに対してさらに所定の加算重みを加える。もしくは、注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ探索範囲内のブロックに対しては、補正したSADまたはDFDに対してさらに所定の加算重みを加える。そして、加算重みの加算後のSADまたはDFDを用いて、動きベクトルの検出を行う。詳細は後述する。
【0041】
内挿フレーム生成部102では、前のフレームF(t)の注目画像ブロックの画素値と、その動きベクトルと、注目画像の動きベクトルが示す次フレーム(F(t+1))の画像ブロックの画素値とに基づいて内挿フレームを生成し、フレーム(F(t)、F(t+1))間に内挿して出力する。なお、この場合には、時間的に前のフレームに注目画像ブロックを設定したが、時間的に後のフレームに注目画像ブロックを設定し、前のフレームの探索範囲内のブロックを探索する場合であっても本実施形態の処理を適用することができる。
【0042】
上記のように、本発明の実施形態の特徴では、注目画像ブロックの特徴量として、注目画像ブロックを構成する隣接画素同士の差分値の平均を求め、求められた平均値に基づいて、SADまたはDFDの演算結果を補正する。ここでは、SADまたはDFDに乗算する係数、もしくは加算値を求め、その値によってSADまたはDFDを補正する。補正したSADまたはDFDに対しては、所定の加算重み(ハンディキャップ)を加えて判定用のSADまたはDFDを算出し、この値が最小になるブロックにより得られるベクトルを動きベクトルして決定する。
【0043】
より具体的には、上記の注目画像ブロックの隣接画素値の差分値の平均値が大きかった場合、つまり隣接画素の画素値の差が大きく、高いエッジ領域であった場合、SADまたはDFDが小さくなる値を乗算もしくは加算する。この場合、平均値が増大するに従って、SADまたはDFDが徐々にもしくは段階的に小さくなるような乗算係数もしくは加算値を使用してSADまたはDFDを補正することができる。
【0044】
一方、上記の注目画像ブロックの隣接画素値の差分値の平均値が小さかった場合、つまり隣接画素の画素値の差が小さく、平坦な変化の画像であった場合、SADまたはDFDに乗算もしくは加算を行わないか、またはSADまたはDFDが大きくなる値を乗算もしくは加算する。ここでは、平均値が所定レベル以下の場合には、SADまたはDFDの値の補正係数を1とし、もしくは加算値を0とすることで補正前のSADまたはDFDの値を補正後においても維持するようにしてもよい。または、平均値が減少するに従って、SADまたはDFDが徐々にもしくは段階的に大きくなるような乗算係数もしくは加算値を使用するものであってもよい。
【0045】
上記の処理により、エッジ領域のブロックには、SADまたはDFDの結果に対して大きな圧縮を加えてSADまたはDFDが小さくなるように補正する。また、平坦な領域のブロックに対しては、ほとんどハンディキャップを加えず、SADまたはDFDの演算結果をそのまま使用するか、もしくはSADまたはDFDを大きくする補正を行う。
そして補正後のSADまたはDFDの値には、加算重み(ハンディキャップ)を加算して動きベクトルを判定することで、画素未満の動きがあったときのサンプリング位置の違いにより発生する動きベクトルの検出誤差を吸収させるようにする。なお、ここでいう画素未満とは、サンプリング間隔が1画素単位である場合を示すもので、サンプリングが1画素以外の間隔で行われていれば、その間隔未満の動きの検出誤差の吸収に有効となることを示している。
【0046】
加算重み(ハンディキャップ)に関しては、以下のごとくの思想とする。まず、総論として、連続したフレームでは類似した画像となり、連続したフレーム間では類似した動きベクトルとなる確率が高い。シーンチェンジなどを除けば、ほぼこのようになる。
このような特性を利用すると、ブロックマッチングにおいて類似したSADまたはDFDを示すブロックがいくつか存在した場合、前フレームの動きを継続するように動きベクトルを決定したほうが誤検出の確率を低下させることができる。よって、いくつかある候補ベクトルに対して前フレームの動きベクトルと同一のベクトルに対してハンディキャップを与えることで、そのハンディキャップを与えた動きベクトルを選択しやすくする。
【0047】
また、同一の物体の一部であれば同じ動きをする可能性が高い。従って、同一フレームの周辺ブロックと同じ動きベクトルの可能性が高い。よって、いくつかある候補ベクトルに対して、隣接する周辺ブロックと同じ動きベクトルに対してはハンディキャップを与えることで、そのハンディキャップを与えた動きベクトルを選択しやすくする。この他にも平均ベクトルに対してハンディキャップを与えたり、ある領域の平均ベクトルに対してハンディキャップを与えることも可能であり、本発明においてはハンディキャップを与えるベクトルに対しては、特に規定するものではない。
ハンディキャップは、相対的に選択しやすくする方向に与えるものを指す。例えば、求めたSADやDFDにマイナス値を与えて選択し易くする処理が一般的であるが、選択させようとするベクトルではない他の動きベクトルを選択しにくくするために、他の動きベクトルを与えるブロックのSADまたはDFDにプラス値を与えるものであってもよい。本発明は、単純にハンディキャップを与えるだけでは問題を解決できないので、ブロックの特徴(勾配量)に応じてハンディキャップ値を決定できるようにすることで、より多くの問題に対処可能となる。
【0048】
簡単化のために図2〜図3を用いて2次元的に説明する。図2において、実際の物体輝度のアナログ波形が図に示す直線Lに相当するものであったとする。これをディジタル的にサンプリングした場合、画素値1に示す値(輝度値)となる。画素値1のサンプリング間隔は1画素間隔であるものとする。このとき、画素値1のサンプリング位置に対して、±0.5画素分ずれた位置のポイントにおける輝度は、画素値2に示す値となる。
【0049】
従って、入力画像信号の前後のフレーム(F(t)、F(t+1))において、物体の動きが0.5画素分あったと仮定すると、1画素間隔でサンプリングしたときに、前のフレーム(F(t))では画素値1をサンプリングし、次のフレームでは画素値2をサンプリングすることになる。なおここでは、動きベクトル検出装置の規模の観点から、1画素単位で動きベクトル検出を行うものとするが、仮に画素の半分の単位でベクトル検出を行った場合は1/4の大きさで同じ症状が発生するだけであり、動きベクトル検出の単位を画素単位としたことに大きな意味はない。
【0050】
図3は、図2の物体が0.5画素分動いたときの画素値の検出結果を示す図で、図2の例において、前のフレームF(t)でサンプリングした画素値1と、画素値1に対してゼロベクトルを与える後のフレームF(t+1)の画素値2aと、画素値1に対してゼロベクトル+1を与える後のフレームF(t+1)の画素値2bとを示している。画素値2a,2bは、図2で特定の画素値1を挟む2つの画素値2をそれぞれ表している。
【0051】
この場合、ブロックマッチングを行ったときに、前のフレームの画素値1は、ゼロベクトルのときの画素値2aと比較してもゼロベクトル+1のときの画素値2bと比較しても一致することはない。つまり、フレーム間で物体が0.5画素動いてしまったときには、差分が0にならず、SADやDFDが0になることがない。しかしながら、この場合にSADやDFDを最も小さくするのもこれらのゼロベクトル、及びゼロベクトル+1のベクトルである。
【0052】
図4は、図3に比べて傾きが急峻な物体輝度の例を示す。つまり、実際の物体輝度のアナログ波形を示す直線Lが、図2の例よりもその傾きが大きいとき(例えばエッジ領域の画像)の例を示している。
図4に示すアナログ波形をサンプリングした場合、画素値1に示す値となる。画素値1のサンプリング間隔は1画素間隔である。このとき、画素値1のサンプリング位置に対して、±0.5画素分ずれた位置のポイントにおける輝度は、画素値2に示す値となる。従って、入力画像信号の前後のフレーム(F(t)、F(t+1))において、物体の動きが0.5画素分あったと仮定すると、1画素間隔でサンプリングしたときに、前のフレーム(F(t))では画素値1をサンプリングし、次のフレームでは画素値2をサンプリングすることになる。
【0053】
図5は、図4の物体が0.5画素分動いたときの画素値の検出結果を示す図で、図4の例において、前のフレームF(t)でサンプリングした画素値1と、画素値1に対してゼロベクトルを与える後のフレームF(t+1)の画素値2aと、画素値1に対してゼロベクトル+1を与える後のフレームF(t+1)の画素値2bとを示している。画素値2a,2bは、図4で特定の画素値1を挟む2つの画素値2をそれぞれ表している。
この場合、ブロックマッチングを行ったときに、前のフレームの画素値1は、ゼロベクトルのときの画素値2aと比較してもゼロベクトル+1のときの画素値2bと比較しても一致することはない。つまり、フレーム間で物体が0.5画素動いてしまったときには、差分が0にならず、SADやDFDが0になることがない。しかしながら、この場合にSADやDFDを最も小さくするのもこれらのゼロベクトル、及びゼロベクトル+1のベクトルである。
【0054】
ここで、図3と図5とを比較したときに、画素値1とゼロベクトルの画素値2aとの差、及び画素値1とゼロベクトル+1の画素値2bとの差は、図5に示す急峻な画像の方が大きくなる。つまり、傾きが急峻な画像を含むブロックでブロックマッチングを行ったときに、最も小さなSADであっても、そのSADの値は、傾きが緩やかな画像のブロックに比べて大きなSADになる場合がある。
【0055】
SADの値が大きくなると、理論誤差が発生しやすくなる。このときのメカニズムを簡単化のために2次元で説明する。
図6に示すように、あるフレームF(t)にある波形があったものとする。そのとき、座標Xの輝度値をY1、座標X+1の輝度値をY2とする。ここでフレームF(t)に時間的に連続した次のフレームF(t+1)において、動き(−|Δx|)が生じたとする。ただし、0<|Δx|<0.5とする。
【0056】
このとき、フレームF(t)とフレームF(t+1)の座標X+1で生じるSAD値は、|Y2−(Y2+|Δy|)|=|Δy| となる。ここで、
|Δy/Δx|=|(Y2−Y1)/(X+1−X)|=|Y2−Y1| であり、
|Δy|=|Y2−Y1|×|Δx|となる。
【0057】
従って、SAD値はある波形の傾きと動き量に比例する。ここで動き範囲を0<|Δx|<0.5としたのは説明を簡略化したためであり、例えば、1以上であったあった場合、SADを最小にする整数部を別途として捉え、小数部の説明が上記のようになる。
また、0.5<|Δx|<1.0の場合、整数部を1つずらした方がSADは小さくなるためであり、小数部についての説明は上記と同様になり、SADは傾きに比例する。
【0058】
一方、動き量は任意であり、映像によって決まるアナログ量となる。ブロックマッチングにおいては、離散的に値を扱うため、アナログ量である動きに対して余りが生じる確率が高い。従って、離散的に扱う限り、最も正確に近い動きベクトルでブロックマッチングを行ったとしても一点あたりSAD=|Y2−Y1|×|Δx1|の理論誤差が生じる(ここで0<Δx1<(サンプリング距離/2)とする)。
【0059】
簡単にいえば、単純モデルの場合、どれほど細かく中間点を作ってブロックマッチングしても連続ではないので、動きベクトルに余りが生じてしまう。ここでは(勾配)×(余りベクトル)×(ブロックサイズ)が理論的な誤差となる。つまり、急峻な傾きをもつエッジは理論的な誤差を発生する確率が高い。確率とするのは理論的な誤差が余りベクトルの大きさに依存するためである。
【0060】
従って、本発明においては、まず、検査するブロック(注目画像ブロック)における画素値の傾き量を検査する。具体的には、注目画像ブロック内の隣接する2つの画素値同士の差分値の平均値を求める。そして、求めた画素値の差分値の平均値に基づいてSADまたはDFDを補正し、補正したSADまたはDFDに基づき動きベクトルを検出する。
【0061】
例えば、4×4を1つのブロック(注目画像ブロック)とした場合の例では、下記(1)式を計算し、注目画像ブロック内の隣接する画素同士の差分の絶対値の平均値Egを計算する。平均値Egは、注目画像ブロックの特徴量である。
ここでx、yは、ブロック内における横方向及び縦方向の画素の座標をそれぞれ示す。
【0062】
【数1】
【0063】
そして、特徴量Egの値に応じて係数α(0<α≦1)を決定し、SADまたはDFDの演算結果に係数αを乗算することでSADまたはDFDを補正する。αは、Egの値が大きい場合に小さくなり、Egの値が小さい場合に大きくなるようにあらかじめ決めておくものとする。このときに、αをEgの値の増減に応じて徐々に変化させるように設定する。また、Egの値の増減に応じて、αが段階的に変化するものであってもよい。さらにEgが所定のレベル以下の時にはαを1として、補正後においても補正前のSADやDFDを維持するものであってもよい。
【0064】
そして、α倍したSADまたはDFDに加算重みWaを加え、最終的な判定用SADまたはDFDを求めて動きベクトルを決定する。加算重みWaは、注目画像ブロックのフレームの前のフレームの動きベクトルと同一の動きベクトルをもつ探索範囲内のブロックに対して計算したSADまたはDFDに加算する。または、注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ探索範囲内のブロックに対して計算したSADまたはDFDに加算する。それ以外のブロックに対しては、加算重みを加算しない。
【0065】
この場合、Waを負の値として加算すると、SADまたはDFDが小さくなって、動きベクトルとして選択されやすくなる。従って、注目画像ブロックのフレームの前フレームと同じ動きベクトルをもつ探索範囲内のブロック、または注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ探索範囲内のブッロク以外のブロックにより与えられるSADまたはDFDに正の値を加えて、選択されにくくするものであってもよい。つまり、前フレームと同じ動きベクトルをもつ探索範囲内のブロック、または注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ探索範囲内のブッロクにより与えられる動きベクトルが、それ以外の動きベクトルよりも相対的に小さくなる方向の加算重みWaを加算することができる。そして、加算重みを考慮した補正後のSADまたはDFDを使用し、最も小さいSADまたはDFDを与える動きベクトルをその注目画像ブロックの動きベクトルとする。
【0066】
SADを用いたときのSADの演算式(2)と、演算式(2)によって得られたSADに対して係数αを乗算し、加算重みWaを加算して動きベクトルを検出するための判定式(3)とを以下に示す。本実施形態では、SADまたはDFDを用いて動きベクトル検出処理を行うことができるが、以下、簡単のため、SADのみを例として説明する。
【0067】
【数2】
【0068】
加算重みWaは、特許文献2に示されるような探索範囲固有に与えるハンディキャップの値とする。このブロックの特徴量に依存する係数をSAD判定に用いることにより、理論誤差の発生しやすい高いエッジを含んだブロックはSADの値を小さくすることで、エッジを含まないブロックでの検出結果に近づけることで、大きなWaの値を使用せずに済むことになり、弊害なく正しい動きベクトルを求めることが可能となる。
【0069】
さらに具体的な例によって説明する。まず、図7に示すような4×4画素のブロックを考える。このブロックは、白(画素値255)と黒(画素値0)とが交互に市松上に並ぶもので、このような画像にて特徴量Egは、隣接画素の差分が全て255になるため、計算上255となる。この値を4×4画素ブロックの最大値Eg(max)とする。
【0070】
動きベクトルを決定するための判定式(3)は、上記のように、
判定式 = α×SAD+Wa
である。判定式が最小値となるベクトルをそのブロックの動きベクトルとして決定する。
ここで、
α =(Eg(max)−Eg)/Eg(max) ・・・(4)
とする。
【0071】
上述の図14の例においては、領域Aに対して領域Cを選択させるためのハンディキャップとして必要な値は、Wa=−512であった。図14の領域Aが、白=255、黒=0、グレー=128の輝度値をもつとき(ケース1とする)、領域Aの輝度値は図8に示すようになる。この場合、隣接画素同士の差分値の累積は、差分値が127の隣接画素が4カ所、差分値が128の隣接画素が4カ所にあるため、(127×4)+(128×4)=1020となる。また、Egmaxは、255である。
従って特徴量Eg,およびαは、
Eg=1020/24=42.5
α=0.833
となる。
【0072】
従って、図14の例における領域Aに対する領域Cの判定式は、SADが512であることから、判定式=426.66+Waが得られる。
これにより、領域Cの判定式を最も小さくするためには、ハンディキャップとして加算する加算重みWaとしては、−427があればよい。つまり、図14の例では、Waとして−512が必要であったが、上記の処理によりより量的に小さな値のハンディキャップが設定可能となる。
【0073】
一方、上記の領域Aが、白=138、黒=118、グレー=128の輝度値をもつ場合(ケース2とする)、図9に示すようになる。この場合、隣接画素同士の差分値の累積は、差分値が10の隣接画素が8カ所にあるため、80となる。また、Egmaxは、255である。
従って特徴量Eg,及びαは、
Eg=80/24=3.33
α=0.987
となる。
【0074】
ケース1のように急峻なエッジを含むブロックにおいてはαが小さい値を示し、判定式(3)におけるSADの影響度が小さくなる。また、ケース2のようなエッジ量が小さいブロックではαが大きくなり、判定式に占めるSADの結果の影響が大きくなる。
【0075】
上記の例では、図7に示すように、Eg(max)の値が最も大きくなるように設定したが、図10に示すような2本のエッジをもつ画像をEg(max)とするような設定も可能である。
この場合、隣接画素の差分値には、255の箇所が8カ所あり他の箇所は0である。従って、特徴量Egmaxは計算上、(255×8)/24=85となる。
そして領域Aの白、グレー、黒の輝度値がケース1と同じ255,128,0の場合、Eg=42.5であることから、
α=0.5となり、
判定式=256+Wa
となる。Waは−257まで量的に小さくすることが可能となる。
【0076】
さらに、図11に示すようにブロック内に1本のエッジをもつ画像をEg(max)とするような設定も可能である。
この場合、隣接画素の差分値は255の箇所が4カ所あり他の箇所は0である。従って、特徴量Eg(max)は計算上、(255×4)/24=42.5となる。またケース1の領域Aの場合には、Eg=42.5であることから、
α=0 となり、
判定式=0+Wa
となる。従ってWaは−1まで量的に小さくすることが可能となる。
【0077】
一方、図11の例でEg(max)を設定したときに領域Aがケース2に相当する場合には、Egmax=42.5、Eg=3.33 であることから、
α=0.92 となり、
判定式=0.92×SAD+Wa
となる。従ってほぼ、SADの値だけで動きベクトルを判定することになる。
【0078】
このようにして、より小さいWaの設定値を選択することが可能となり、弊害なく動きベクトルを検出することが可能となる。また、急峻なエッジを有するブロックの離散点未満の単位の動きに対しても対応することが可能となる。
ここで示したEg(max)やαの計算式はあくまで一例であり、本発明において限定されない。本発明は、特徴量Egに応じてSADの値に補正をかけることを特徴とする。特徴量Egが大きければ、算出したSADの判定式に占める割合が小さくなるように、特徴量Egが小さければ、算出したSADの判定式に占める割合が大きくなるようにすることを特徴とする。例えば、Waを固定値とせず、特徴量Egに応じて変動させることも含む。以上の処理は、SADに代えてDFDを用いた場合にも同様となる。
【0079】
また、SADまたはDFDに乗算する係数αに代えて、SADまたはDFDに加算する加算値αを平均値Aに応じて決定し、SADまたはDFDにαを加算した上でさらに加算重みWaを加算して判定用SADまたはDFDを決定してもよい。この場合にもαをAの値の増減に応じて徐々に変化させるように設定してもよく、Egの値の増減に応じてαが段階的に変化するものであってもよい。
【0080】
また、本発明に係る動きベクトル検出装置は、例えば、テレビジョン受像装置に備えられて、受信した放送信号に含まれる映像信号に基づいて表示される画像を補間する構成であってもよい。あるいは、本発明に係る動きベクトル検出装置は、DVD再生装置やビデオ再生装置などの映像再生装置に備えられて、記録媒体に記録されている映像データに基づいて再生される画像を補間する構成であってもよい。さらに本発明に係る動きベクトル検出装置は、画像間の動きベクトルを用いた映像信号の符号化方式に用いてもよい。
【0081】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【0082】
最後に、ベクトル検出装置の各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、ベクトル検出装置は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるベクトル検出装置の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、ベクトル検出装置に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【0083】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
【0084】
また、ベクトル検出装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【符号の説明】
【0085】
1…画素値、2…画素値、2a…画素値、2b…画素値、11…ブロック、12…領域、20a…パターン、20b…パターン、21…領域、100…フレームレート変換部、101…ベクトル検出部、102…内挿フレーム生成部、103…液晶表示パネル、104…電極駆動部、200,201…物体。
【技術分野】
【0001】
本発明は、原画像間に内挿画像を生成するための動きベクトルを検出する装置および方法に関し、さらに映像表示装置、映像記録装置、映像再生装置、制御プログラム、および、コンピュータ読み取り可能な記録媒体に関するものである。
【背景技術】
【0002】
近年、60Hzの画像を120Hzの画像に変換する手法や、24Hzのフィルム素材による画像を60Hzや120Hzの画像に変換する手法による映像表現が盛んに行われている。この手法は、液晶表示装置の動きボケ改善やフィルム素材によるジャダーの低減のために用いられる。
また、映像信号のデータ圧縮のために地上波デジタル放送などに使用されているMPEG−2においても、フレーム間の動きベクトルを用いて符号化が行われている。
【0003】
液晶表示装置の液晶パネルで発生する動きボケについては、その発生要因として液晶が電荷を保持して発光を維持するホールド型であることがあげられる。動くものに対する人の視覚は滑らかに追従するものであるため、ホールド型発光の場合、輝度レベルが次のフレームまでの期間保持され、時間積分効果により残像感が生じてしまう。これが動きボケである。この動きボケを解消するために、フレーム周波数を倍速化して液晶表示を陰極線管のようなインパルス型に近づける技術が用いられている。
【0004】
この場合、フレーム間に線形補間によってフレームを内挿したり、周波数を単に2倍にしたりする方法があるが、動きにジャダーが発生したり、動きボケを十分に改善することができない。そこでジャダーの影響をなくして動画像の画質を改善するために、動き補償型のフレーム内挿処理を行う技術が実用化されている。
【0005】
この動き補償型のフレーム内挿技術においては、連続するフレーム間(仮に、時間的に前のフレームをF(t)とし、時間的に後のフレームをF(t+1)とする)が類似した画像であることを基本としており、画素もしくは一定の画素グループが、フレーム間でどのように動いたかを動きベクトルとして表現する。フレーム間の動きベクトルを検出する手法としては、ブロックマッチングや勾配法などが知られている。この動きベクトルの情報をもとに、両フレーム((F(t))、F(t+1))の画素の値を用いて内挿画像を生成する。
【0006】
動きベクトルを求めるブロックマッチングにおいては、一般的には、F(t)を一定のサイズ(例えば、8×8画素)のブロックに区切り、これを1つの単位としてF(t+1)に対して動きベクトルを探索していく。このとき、探索する範囲が広い場合や動き精度を細かくした場合、画素相関の検査を行う回数が増えるため演算規模が増大する。検査回数を減らす方法としては、特許文献1に示されるようにフレーム間の動きの継続性を利用した方法が知られている。
【0007】
画素相関を検査する方法としては、ブロック間の絶対差和を用いたSAD(Sum of Absolute Differences)や差分値の2乗和を用いるDFD(Displaced Field Difference)などが知られている。
SADは、現在のフレームの探索対象ブロックにおける画素値と、参照フレームの参照ブロックにおける画素値の絶対差分値和であり、例えばブロック同士の同じ位置の画素値の差分絶対値をとり、これを累積していくことで計算される。また、DFDは、フレーム間におけるブロック内の同じ位置の画素値の差分の2乗和である。SADやDFDが大きい場合には、ブロック同士の差分が大きいことを意味し、ブロック内画像の形状が異なっていることがわかる。つまり、注目画像ブロックに対して、隣接フレームの所定の探索範囲内のブロックのなかでSADやDFDの値が最も小さいブロックを最も相関が高いブロックとして認識することができる。
【0008】
このように、SADやDFDでは、計算した結果がより小さいものを画素相関があるものとし、一般的にはSADやDFDが探索範囲中で最も小さいブロックが示すベクトルをそのブロックの動きベクトルとする。
また、これに加えて、特許文献2に示されるように、あらかじめ探索範囲中にハンディキャップを与える手法も提案されている。これはSADやDFD演算で求めた結果に対して所定の値を加算もしくは減算して蓄積し、最小値を与えるベクトルを動きベクトルとする手法である。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開昭62−206980号公報
【特許文献2】特表2001−507552号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
実際の映像において、物体は画素単位で動いているわけではない。従って映像信号のサンプリングを行ってデータを処理するデジタル処理においては、SADやDFDの結果が0となるまで詳細な探索を行うことは難しい。つまり、映像内の物体が画素単位以下の細かい動きで動いている場合には、SADやDFDを0とするまでの探索が通常できない。このような場合に対処するため、例えば、1画素単位で動きベクトルの探索を行っているときに、補間処理等により0.5画素単位、0.25画素単位、0.125画素単位、等で仮想画素を生成し、これらの仮想画素の値を用いてさらに細かい動きベクトルを検出する方法がある。しかしながら、0.5ピクセル単位で動きベクトルの探索を行うと処理量は4倍になり、0.25ピクセル単位で動きベクトルの探索を行うと処理量は16倍になって、画素単位を細かくすれば処理量が指数的に増大してしまい、実用的とはいえない。
【0011】
図12は、時間的に連続するフレーム間の画像相関について説明する図で、時間的に連続するフレーム(F(t)、F(t+1))の画像を順に図12(A)、図12(B)に示すものである。この画像の例では、三角形の物体10がフレームF(t)からF(t+1)において画面の右方向に移動したものとする。
【0012】
フレームF(t)とフレームF(t+1)とにおける画素相関を演算する場合、フレームF(t)内のブロック11は、F(t+1)内の領域12のどの部分に対しても高い画素相関を示す。つまり、ブロック11に対して探索ブロックとして領域12のブロックを探索したときに、ブロック同士の同一位置の画素値の差分値が少なくなって、領域12のいくつかのブロックに対してSADまたはDFDの演算結果が同様の小さい値となる。従って、ブロック11の移動後のブロックを正確に確定することができず、動きベクトルの誤検出が生じる。
【0013】
このような場合の対策として、特許文献2に示されるようなハンディキャップにより、SADやDFD演算で求めた結果に対して所定の値を加算もしくは減算して蓄積し、最小値を与えるベクトルを動きベクトルとすることで、三角形の頂点の検出結果や過去の動きに基づき正しい動きベクトルを求めることが可能となる。つまり、過去の動きベクトルや周辺ブロックの動きベクトルと同じ値を示すベクトルのSAD値にハンディキャップを与えることにより、離散点以下のズレの誤差を吸収し、正しい動きベクトルを求めることができる。
【0014】
しかしながら、物体の動き量とサンプリング座標によっては、同じ物体のエッジであっても輝度値など数値が異なって表現される。例えば物体の動き量によってはF(t)とF(t+1)で画像の位相がずれ、同一位置の画像ブロックの間であってもその画素値に差分が生じ、SADの値が変化してしまう。つまり、処理量によって規制されるベクトル精度でブロックマッチングにより動きベクトルを検出するとき、物体の位相ずれによって、物体のサンプリングポイントがずれ、ブロックマッチングにより得られたSADやDFDの演算値が0にならない場合が発生する。
【0015】
例えば、図13に示すように、連続する三角形のパターン20a〜20cが画像に存在するような場合、F(t)の領域21がF(t+1)に移動したときの位相が、パターン20bではなく、パターン20aに対して近くなるような場合が発生する。特にパターンの動きが加速や減速を伴う動きであったり、直線でない動きであった場合にその現象は顕著となる。
【0016】
このような場合を考えて、特許文献2に示されるようなハンディキャップにより、動きを継続する手法を用いて正しい動きベクトルを得ることが可能ではあるが、この手法を用いた場合、急峻なエッジが存在するブロックを基準として、SADやDFDに対する加算のハンディキャップを決定することになる。このように、急峻なエッジに基づく大きなハンディキャップを用いた場合、ハンディキャップの占めるウエイトが高くなり、動きの変化に追随することが難しくなる。従って、従来の手法においては良質な動きベクトルを得ることが難しかった。
【0017】
例えば、図14に示すように、2つの同じ物体200,201が0.5画素ずれて配置されて撮影されたものとする。このとき、これらの物体200,201が一定値Mv=(Vx,0)を基本に(±0.5,0)で動いているものとする。この動きベクトルの変動は、例えば、カメラのブレや物体の動きの不均一などで生じるモデルである(一般的な動画像においては、完全な等速運動を行う物体は少ない)。
【0018】
この例の撮影画像においては、輝度値が8ビットで表現され、物体200,201は白(w)で輝度値が255であり、背景は黒(b)で輝度値が0であるものとする。ここで、フレームF(t)では、左側の物体200は、左右両側のエッジが1画素の1/2に位置し、その画素の輝度値は128のグレー(g)となっている。また、フレームF(t+1)では、右側の物体の左右両側エッジが1画素の1/2に位置し、左右両側のエッジ部にグレー(g)の画素が撮像されている。
【0019】
この場合、フレームF(t)とF(t+1)において、Aの領域の動きベクトルは、同じ物体200のCの領域を示すべきである。しかしながら、SADのみで動きベクトルを判定すると、Aの領域に対しては、Dの領域を示す動きベクトルが求まる。
【0020】
例えば、A,B,C,Dに示す領域のブロックが4×4であったときを考える。
フレームF(t)の領域Aについて、フレームF(t+1)の領域Cに対してのSAD値は、F(t)の輝度値128のグレーの画素が4つと、F(t+1)の輝度値0の黒の画素4つに輝度差が生じることから、(128)×4=512を示す。
一方、フレームF(t)の領域Aについて、フレームF(t+1)の領域Dに対してのSADは、各画素の差分がないため0を示す。この場合、領域Aの動きを維持して領域CのSADを最小とし、領域Cに対する動きベクトルを選択させるようにするためには、領域CのSADに対して512以上のハンディキャップを与える必要がある。
【0021】
しかしながら、このような値をハンディキャップとして与えてしまうと、輝度差の小さい画像(例えば、白の輝度値が138、黒の輝度値が118)などの場合には、ハンディキャップを超えるSADを示すことがないため、ハンディキャップそのものによって動きベクトルが決定してしまうことになる。
【0022】
つまり、大きなハンディキャップを与えなければ、正しい動きを求めることができない画像もあり、また、大きなハンディキャップを与えることで正しい動きを求めることができない場合もあるため、固定的なハンディキャップを与えることは好ましくない。
【0023】
このように、従来技術においては、サンプリングポイントの違いにより理論的に発生する可能性があるSADやDFDの値の変動に対する対処はされておらず、動きベクトルの誤検出の要因となっていた。
本発明は、上述のごとき実情に鑑みてなされたものであり、サンプリングポイントの違いにより理論的に発生する動きベクトルの誤差を吸収することが可能となり、より正確に動きベクトルを検出することができるようにした動きベクトル検出装置および方法、映像表示装置、映像記録装置、映像再生装置、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0024】
上記課題を解決するために、本発明の第1の技術手段は、入力される画像信号のフレーム間の動きベクトルを検出する動きベクトル検出部を備えた動きベクトル検出装置において、前記動きベクトル検出部は、入力された画像信号のフレームの注目画像ブロックと、該注目画像ブロックのフレームに時間的に前後する入力画像信号のフレームの所定の探索範囲内のブロックとの間で、画像ブロック同士における互いに同一位置の画素値の差分絶対値の累積加算値を示すSAD、もしくは前記同一位置の画素値の差分の2乗値の累積加算値を示すDFDを検出し、前記注目画像ブロック内の隣接する2つの画素値同士の差分値の平均値を求め、求めた平均値に基づいて前記SADまたはDFDを補正し、該補正したSADまたはDFDに基づいて動きベクトルを検出することを特徴としたものである。
【0025】
第2の技術手段は、第1の技術手段において、前記動きベクトル検出部が、前記平均値が増大するに従って、前記SADまたは前記DFDが徐々にもしくは段階的に小さくなるような乗算係数もしくは加算値を使用して前記SADまたは前記DFDを補正することを特徴としたものである。
【0026】
第3の技術手段は、第1または2の技術手段において、例えば、前記注目画像ブロックのフレームの前のフレームの動きベクトルと同一の動きベクトルをもつ前記探索範囲内のブロックにより計算した前記補正後のSADまたはDFDに対して、または前記注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ前記探索範囲内のブロックにより計算した前記補正後のSADまたはDFDに対して、前記補正したSADまたはDFDが相対的に小さくなる方向の加算重みを加え、前記加算重みを考慮した前記補正後のSADまたはDFDが最も小さくなるブロックにより与えられる動きベクトルを検出することを特徴としたものである。
【0027】
第4の技術手段は、第1〜第3のいずれか1の技術手段の動きベクトル検出装置と、該動きベクトル検出装置が検出した動きベクトルに基づいて、入力される画像信号のフレーム間に内挿する補間フレームを生成する内挿フレーム生成部と、該内挿フレーム生成部から出力された画像信号を表示する表示部とを備えた映像表示装置である。
【0028】
第5の技術手段は、第1〜第3のいずれか1の技術手段の動きベクトル検出装置と、該動きベクトル検出装置が検出した動きベクトルに基づいて、映像信号をフレーム間で圧縮する符号生成部と、情報を符号化した映像を記録する映像記録部とを備えた映像記録装置である。
【0029】
第6の技術手段は、第5の技術手段によって記録された符号化された映像を再生する映像再生装置である。
【0030】
第7の技術手段は、2つの画像の動きベクトルを検出する動きベクトル検出手段において、前記動きベクトル検出手段は、基準画像の注目画像ブロックと、該注目画像ブロックの参照画像の所定の探索範囲内のブロックとの間で、画像ブロック同士における互いに同一位置の画素値の差分絶対値の累積加算値を示すSAD、もしくは前記同一位置の画素値の差分の2乗値の累積加算値を示すDFDを検出するステップと、前記注目画像ブロック内の隣接する2つの画素値同士の差分値の平均値を求めるステップと、求めた平均値に基づいて前記SADまたはDFDを補正するステップとを有し、該補正したSADまたはDFDに基づいて動きベクトルを検出することを特徴としたものである。
【0031】
第8の技術手段は、第7の技術手段において、前記動きベクトル検出ステップで、前記平均値が増大するに従って、前記SADまたは前記DFDが徐々にもしくは段階的に小さくなるような乗算係数もしくは加算値を使用して前記SADまたは前記DFDを補正することを特徴としたものである。
【0032】
第9の技術手段は、第7または8の技術手段において、例えば、前記注目画像ブロックのフレームの前のフレームの動きベクトルと同一の動きベクトルをもつ前記探索範囲内のブロックにより計算した前記補正後のSADまたはDFDに対して、または前記注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ前記探索範囲内のブロックにより計算した前記補正後のSADまたはDFDに対して、前記補正したSADまたはDFDが相対的に小さくなる方向の加算重みを加え、前記加算重みを考慮した前記補正後のSADまたはDFDが最も小さくなるブロックにより与えられる動きベクトルを検出することを特徴としたものである。
【0033】
なお、動きベクトル検出装置は、コンピュータによって実現してもよい。この場合、コンピュータを上記各手段として動作させることにより上記画像補間装置をコンピュータにおいて実現する制御プログラム、およびその制御プログラムを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【0034】
本発明によれば、サンプリングポイントの違いにより理論的に発生する動きベクトルの誤差を吸収することが可能となり、より正確に動きベクトルを検出することができるようにした動きベクトル検出装置および方法、映像表示装置、映像記録装置、映像再生装置、制御プログラム、および、コンピュータ読み取り可能な記録媒体を提供することができる。
【図面の簡単な説明】
【0035】
【図1】本発明に係る動きベクトル検出装置の構成を説明するためのブロック図である。
【図2】物体の画素値の状態と画素値のサンプリング位置との関係の一例を示す図である。
【図3】図2のサンプリング位置における動きベクトルと画素値との関係を示す図である。
【図4】物体の画素値の状態と画素値のサンプリング位置との関係の他の例を示す図である。
【図5】図4のサンプリング位置における動きベクトルと画素値との関係を示す図である。
【図6】SADの値が大きくなると理論誤差が発生しやすくなるメカニズムを説明するための図である。
【図7】4×4画素のブロックの画像例を示す図である。
【図8】4×4画素のブロックの輝度値の例を示す図である。
【図9】4×4画素のブロックの輝度値の他の例を示す図である。
【図10】4×4画素のブロックの他の画像例を示す図である。
【図11】4×4画素のブロックのさらに他の画像例を示す図である。
【図12】時間的に連続するフレーム間の画像相関について説明する図である。
【図13】時間的に連続するフレーム間の画像相関について説明する他の図である。
【図14】時間的に連続するフレーム間の画像相関について説明するさらに他の図である。
【発明を実施するための形態】
【0036】
図1は、本発明に係る動きベクトル検出装置の構成を説明するためのブロック図で、動きベクトル検出装置を液晶表示装置に適用したときの構成例を示すものである。
液晶表示装置は、入力画像信号のフレーム間に動き補償処理を施した画像信号を内挿することにより入力画像信号のフレーム数を変換するフレームレート変換部100を備えている。液晶表示パネル103は、液晶層と該液晶層に走査信号及びデータ信号を印加するための電極とを有するものであり、電極駆動部104は、フレームレート変換部100によりフレームレートが変換された画像信号に基づいて液晶表示パネル103の走査電極及びデータ電極を駆動して、画像信号を表示させる。
【0037】
フレームレート変換部100は、入力画像信号から動きベクトルを検出する動きベクトル検出部101と、動きベクトル検出部101により得られた動きベクトルに基づいて内挿フレームを生成する内挿フレーム生成部102とを備える。内挿フレーム生成部102は、フレームレート変換部100に入力される画像信号の時間的に連続したフレーム(F(t)、F(t+1))の間に内挿フレームを挿入してフレームレートを変換する。本発明に係る動きベクトル検出装置の実施形態は、入力画像信号から動きベクトルを検出する上記動きベクトル検出部101を必須の構成要素として備えるものである。また、本実施形態の動きベクトル検出装置を備えた液晶表示装置は、本発明の映像表示装置の実施形態に相当する。
【0038】
動きベクトル検出部101は、前述したようなブロックマッチング法を用いて動きベクトル情報を求めるものとする。ブロックマッチング法においては、例えば、前のフレームF(t)の注目画像ブロックと、後のフレーム(F(t+1))の所定の探索範囲内の各画像ブロックとを対応画素ごとに比較し、画素値の差分の絶対値を蓄積してSADを算出する。また、DFDを用いる場合には、画素値の差分の2乗を蓄積してDFDを算出する。画素値としてはR,G,Bの各値であってもよいが、一般に画像の輝度値Yが用いられる。以下の例では、輝度値を用いた例として説明する。
【0039】
そして、探索範囲内の各画像ブロックのうち、SADまたはDFDが最も小さい画像ブロックに対する動きベクトルを、注目画像ブロックの動きベクトルとする。この動きベクトルは大きさと方向を含むもので、注目画像ブロックのフレーム上の2次元で示されるベクトルとなる。
【0040】
ここで本発明に係る実施形態では、動きベクトルを検出する際に、注目画像ブロックの特徴量として、注目画像ブロック内の隣接画素同士の差分値の平均値を算出し、その特徴量(平均値)に基づいてSADまたはDFDを補正する。ここでは特徴量が大きければSADまたはDFDが小さくなるように補正する。そして、動きベクトルの検出においては、注目画像ブロックのフレームの前のフレームの動きベクトルと同一の動きベクトルをもつ探索範囲内のブロックに対しては、補正したSADまたはDFDに対してさらに所定の加算重みを加える。もしくは、注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ探索範囲内のブロックに対しては、補正したSADまたはDFDに対してさらに所定の加算重みを加える。そして、加算重みの加算後のSADまたはDFDを用いて、動きベクトルの検出を行う。詳細は後述する。
【0041】
内挿フレーム生成部102では、前のフレームF(t)の注目画像ブロックの画素値と、その動きベクトルと、注目画像の動きベクトルが示す次フレーム(F(t+1))の画像ブロックの画素値とに基づいて内挿フレームを生成し、フレーム(F(t)、F(t+1))間に内挿して出力する。なお、この場合には、時間的に前のフレームに注目画像ブロックを設定したが、時間的に後のフレームに注目画像ブロックを設定し、前のフレームの探索範囲内のブロックを探索する場合であっても本実施形態の処理を適用することができる。
【0042】
上記のように、本発明の実施形態の特徴では、注目画像ブロックの特徴量として、注目画像ブロックを構成する隣接画素同士の差分値の平均を求め、求められた平均値に基づいて、SADまたはDFDの演算結果を補正する。ここでは、SADまたはDFDに乗算する係数、もしくは加算値を求め、その値によってSADまたはDFDを補正する。補正したSADまたはDFDに対しては、所定の加算重み(ハンディキャップ)を加えて判定用のSADまたはDFDを算出し、この値が最小になるブロックにより得られるベクトルを動きベクトルして決定する。
【0043】
より具体的には、上記の注目画像ブロックの隣接画素値の差分値の平均値が大きかった場合、つまり隣接画素の画素値の差が大きく、高いエッジ領域であった場合、SADまたはDFDが小さくなる値を乗算もしくは加算する。この場合、平均値が増大するに従って、SADまたはDFDが徐々にもしくは段階的に小さくなるような乗算係数もしくは加算値を使用してSADまたはDFDを補正することができる。
【0044】
一方、上記の注目画像ブロックの隣接画素値の差分値の平均値が小さかった場合、つまり隣接画素の画素値の差が小さく、平坦な変化の画像であった場合、SADまたはDFDに乗算もしくは加算を行わないか、またはSADまたはDFDが大きくなる値を乗算もしくは加算する。ここでは、平均値が所定レベル以下の場合には、SADまたはDFDの値の補正係数を1とし、もしくは加算値を0とすることで補正前のSADまたはDFDの値を補正後においても維持するようにしてもよい。または、平均値が減少するに従って、SADまたはDFDが徐々にもしくは段階的に大きくなるような乗算係数もしくは加算値を使用するものであってもよい。
【0045】
上記の処理により、エッジ領域のブロックには、SADまたはDFDの結果に対して大きな圧縮を加えてSADまたはDFDが小さくなるように補正する。また、平坦な領域のブロックに対しては、ほとんどハンディキャップを加えず、SADまたはDFDの演算結果をそのまま使用するか、もしくはSADまたはDFDを大きくする補正を行う。
そして補正後のSADまたはDFDの値には、加算重み(ハンディキャップ)を加算して動きベクトルを判定することで、画素未満の動きがあったときのサンプリング位置の違いにより発生する動きベクトルの検出誤差を吸収させるようにする。なお、ここでいう画素未満とは、サンプリング間隔が1画素単位である場合を示すもので、サンプリングが1画素以外の間隔で行われていれば、その間隔未満の動きの検出誤差の吸収に有効となることを示している。
【0046】
加算重み(ハンディキャップ)に関しては、以下のごとくの思想とする。まず、総論として、連続したフレームでは類似した画像となり、連続したフレーム間では類似した動きベクトルとなる確率が高い。シーンチェンジなどを除けば、ほぼこのようになる。
このような特性を利用すると、ブロックマッチングにおいて類似したSADまたはDFDを示すブロックがいくつか存在した場合、前フレームの動きを継続するように動きベクトルを決定したほうが誤検出の確率を低下させることができる。よって、いくつかある候補ベクトルに対して前フレームの動きベクトルと同一のベクトルに対してハンディキャップを与えることで、そのハンディキャップを与えた動きベクトルを選択しやすくする。
【0047】
また、同一の物体の一部であれば同じ動きをする可能性が高い。従って、同一フレームの周辺ブロックと同じ動きベクトルの可能性が高い。よって、いくつかある候補ベクトルに対して、隣接する周辺ブロックと同じ動きベクトルに対してはハンディキャップを与えることで、そのハンディキャップを与えた動きベクトルを選択しやすくする。この他にも平均ベクトルに対してハンディキャップを与えたり、ある領域の平均ベクトルに対してハンディキャップを与えることも可能であり、本発明においてはハンディキャップを与えるベクトルに対しては、特に規定するものではない。
ハンディキャップは、相対的に選択しやすくする方向に与えるものを指す。例えば、求めたSADやDFDにマイナス値を与えて選択し易くする処理が一般的であるが、選択させようとするベクトルではない他の動きベクトルを選択しにくくするために、他の動きベクトルを与えるブロックのSADまたはDFDにプラス値を与えるものであってもよい。本発明は、単純にハンディキャップを与えるだけでは問題を解決できないので、ブロックの特徴(勾配量)に応じてハンディキャップ値を決定できるようにすることで、より多くの問題に対処可能となる。
【0048】
簡単化のために図2〜図3を用いて2次元的に説明する。図2において、実際の物体輝度のアナログ波形が図に示す直線Lに相当するものであったとする。これをディジタル的にサンプリングした場合、画素値1に示す値(輝度値)となる。画素値1のサンプリング間隔は1画素間隔であるものとする。このとき、画素値1のサンプリング位置に対して、±0.5画素分ずれた位置のポイントにおける輝度は、画素値2に示す値となる。
【0049】
従って、入力画像信号の前後のフレーム(F(t)、F(t+1))において、物体の動きが0.5画素分あったと仮定すると、1画素間隔でサンプリングしたときに、前のフレーム(F(t))では画素値1をサンプリングし、次のフレームでは画素値2をサンプリングすることになる。なおここでは、動きベクトル検出装置の規模の観点から、1画素単位で動きベクトル検出を行うものとするが、仮に画素の半分の単位でベクトル検出を行った場合は1/4の大きさで同じ症状が発生するだけであり、動きベクトル検出の単位を画素単位としたことに大きな意味はない。
【0050】
図3は、図2の物体が0.5画素分動いたときの画素値の検出結果を示す図で、図2の例において、前のフレームF(t)でサンプリングした画素値1と、画素値1に対してゼロベクトルを与える後のフレームF(t+1)の画素値2aと、画素値1に対してゼロベクトル+1を与える後のフレームF(t+1)の画素値2bとを示している。画素値2a,2bは、図2で特定の画素値1を挟む2つの画素値2をそれぞれ表している。
【0051】
この場合、ブロックマッチングを行ったときに、前のフレームの画素値1は、ゼロベクトルのときの画素値2aと比較してもゼロベクトル+1のときの画素値2bと比較しても一致することはない。つまり、フレーム間で物体が0.5画素動いてしまったときには、差分が0にならず、SADやDFDが0になることがない。しかしながら、この場合にSADやDFDを最も小さくするのもこれらのゼロベクトル、及びゼロベクトル+1のベクトルである。
【0052】
図4は、図3に比べて傾きが急峻な物体輝度の例を示す。つまり、実際の物体輝度のアナログ波形を示す直線Lが、図2の例よりもその傾きが大きいとき(例えばエッジ領域の画像)の例を示している。
図4に示すアナログ波形をサンプリングした場合、画素値1に示す値となる。画素値1のサンプリング間隔は1画素間隔である。このとき、画素値1のサンプリング位置に対して、±0.5画素分ずれた位置のポイントにおける輝度は、画素値2に示す値となる。従って、入力画像信号の前後のフレーム(F(t)、F(t+1))において、物体の動きが0.5画素分あったと仮定すると、1画素間隔でサンプリングしたときに、前のフレーム(F(t))では画素値1をサンプリングし、次のフレームでは画素値2をサンプリングすることになる。
【0053】
図5は、図4の物体が0.5画素分動いたときの画素値の検出結果を示す図で、図4の例において、前のフレームF(t)でサンプリングした画素値1と、画素値1に対してゼロベクトルを与える後のフレームF(t+1)の画素値2aと、画素値1に対してゼロベクトル+1を与える後のフレームF(t+1)の画素値2bとを示している。画素値2a,2bは、図4で特定の画素値1を挟む2つの画素値2をそれぞれ表している。
この場合、ブロックマッチングを行ったときに、前のフレームの画素値1は、ゼロベクトルのときの画素値2aと比較してもゼロベクトル+1のときの画素値2bと比較しても一致することはない。つまり、フレーム間で物体が0.5画素動いてしまったときには、差分が0にならず、SADやDFDが0になることがない。しかしながら、この場合にSADやDFDを最も小さくするのもこれらのゼロベクトル、及びゼロベクトル+1のベクトルである。
【0054】
ここで、図3と図5とを比較したときに、画素値1とゼロベクトルの画素値2aとの差、及び画素値1とゼロベクトル+1の画素値2bとの差は、図5に示す急峻な画像の方が大きくなる。つまり、傾きが急峻な画像を含むブロックでブロックマッチングを行ったときに、最も小さなSADであっても、そのSADの値は、傾きが緩やかな画像のブロックに比べて大きなSADになる場合がある。
【0055】
SADの値が大きくなると、理論誤差が発生しやすくなる。このときのメカニズムを簡単化のために2次元で説明する。
図6に示すように、あるフレームF(t)にある波形があったものとする。そのとき、座標Xの輝度値をY1、座標X+1の輝度値をY2とする。ここでフレームF(t)に時間的に連続した次のフレームF(t+1)において、動き(−|Δx|)が生じたとする。ただし、0<|Δx|<0.5とする。
【0056】
このとき、フレームF(t)とフレームF(t+1)の座標X+1で生じるSAD値は、|Y2−(Y2+|Δy|)|=|Δy| となる。ここで、
|Δy/Δx|=|(Y2−Y1)/(X+1−X)|=|Y2−Y1| であり、
|Δy|=|Y2−Y1|×|Δx|となる。
【0057】
従って、SAD値はある波形の傾きと動き量に比例する。ここで動き範囲を0<|Δx|<0.5としたのは説明を簡略化したためであり、例えば、1以上であったあった場合、SADを最小にする整数部を別途として捉え、小数部の説明が上記のようになる。
また、0.5<|Δx|<1.0の場合、整数部を1つずらした方がSADは小さくなるためであり、小数部についての説明は上記と同様になり、SADは傾きに比例する。
【0058】
一方、動き量は任意であり、映像によって決まるアナログ量となる。ブロックマッチングにおいては、離散的に値を扱うため、アナログ量である動きに対して余りが生じる確率が高い。従って、離散的に扱う限り、最も正確に近い動きベクトルでブロックマッチングを行ったとしても一点あたりSAD=|Y2−Y1|×|Δx1|の理論誤差が生じる(ここで0<Δx1<(サンプリング距離/2)とする)。
【0059】
簡単にいえば、単純モデルの場合、どれほど細かく中間点を作ってブロックマッチングしても連続ではないので、動きベクトルに余りが生じてしまう。ここでは(勾配)×(余りベクトル)×(ブロックサイズ)が理論的な誤差となる。つまり、急峻な傾きをもつエッジは理論的な誤差を発生する確率が高い。確率とするのは理論的な誤差が余りベクトルの大きさに依存するためである。
【0060】
従って、本発明においては、まず、検査するブロック(注目画像ブロック)における画素値の傾き量を検査する。具体的には、注目画像ブロック内の隣接する2つの画素値同士の差分値の平均値を求める。そして、求めた画素値の差分値の平均値に基づいてSADまたはDFDを補正し、補正したSADまたはDFDに基づき動きベクトルを検出する。
【0061】
例えば、4×4を1つのブロック(注目画像ブロック)とした場合の例では、下記(1)式を計算し、注目画像ブロック内の隣接する画素同士の差分の絶対値の平均値Egを計算する。平均値Egは、注目画像ブロックの特徴量である。
ここでx、yは、ブロック内における横方向及び縦方向の画素の座標をそれぞれ示す。
【0062】
【数1】
【0063】
そして、特徴量Egの値に応じて係数α(0<α≦1)を決定し、SADまたはDFDの演算結果に係数αを乗算することでSADまたはDFDを補正する。αは、Egの値が大きい場合に小さくなり、Egの値が小さい場合に大きくなるようにあらかじめ決めておくものとする。このときに、αをEgの値の増減に応じて徐々に変化させるように設定する。また、Egの値の増減に応じて、αが段階的に変化するものであってもよい。さらにEgが所定のレベル以下の時にはαを1として、補正後においても補正前のSADやDFDを維持するものであってもよい。
【0064】
そして、α倍したSADまたはDFDに加算重みWaを加え、最終的な判定用SADまたはDFDを求めて動きベクトルを決定する。加算重みWaは、注目画像ブロックのフレームの前のフレームの動きベクトルと同一の動きベクトルをもつ探索範囲内のブロックに対して計算したSADまたはDFDに加算する。または、注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ探索範囲内のブロックに対して計算したSADまたはDFDに加算する。それ以外のブロックに対しては、加算重みを加算しない。
【0065】
この場合、Waを負の値として加算すると、SADまたはDFDが小さくなって、動きベクトルとして選択されやすくなる。従って、注目画像ブロックのフレームの前フレームと同じ動きベクトルをもつ探索範囲内のブロック、または注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ探索範囲内のブッロク以外のブロックにより与えられるSADまたはDFDに正の値を加えて、選択されにくくするものであってもよい。つまり、前フレームと同じ動きベクトルをもつ探索範囲内のブロック、または注目画像ブロックに隣接する画像ブロックと同じ動きベクトルをもつ探索範囲内のブッロクにより与えられる動きベクトルが、それ以外の動きベクトルよりも相対的に小さくなる方向の加算重みWaを加算することができる。そして、加算重みを考慮した補正後のSADまたはDFDを使用し、最も小さいSADまたはDFDを与える動きベクトルをその注目画像ブロックの動きベクトルとする。
【0066】
SADを用いたときのSADの演算式(2)と、演算式(2)によって得られたSADに対して係数αを乗算し、加算重みWaを加算して動きベクトルを検出するための判定式(3)とを以下に示す。本実施形態では、SADまたはDFDを用いて動きベクトル検出処理を行うことができるが、以下、簡単のため、SADのみを例として説明する。
【0067】
【数2】
【0068】
加算重みWaは、特許文献2に示されるような探索範囲固有に与えるハンディキャップの値とする。このブロックの特徴量に依存する係数をSAD判定に用いることにより、理論誤差の発生しやすい高いエッジを含んだブロックはSADの値を小さくすることで、エッジを含まないブロックでの検出結果に近づけることで、大きなWaの値を使用せずに済むことになり、弊害なく正しい動きベクトルを求めることが可能となる。
【0069】
さらに具体的な例によって説明する。まず、図7に示すような4×4画素のブロックを考える。このブロックは、白(画素値255)と黒(画素値0)とが交互に市松上に並ぶもので、このような画像にて特徴量Egは、隣接画素の差分が全て255になるため、計算上255となる。この値を4×4画素ブロックの最大値Eg(max)とする。
【0070】
動きベクトルを決定するための判定式(3)は、上記のように、
判定式 = α×SAD+Wa
である。判定式が最小値となるベクトルをそのブロックの動きベクトルとして決定する。
ここで、
α =(Eg(max)−Eg)/Eg(max) ・・・(4)
とする。
【0071】
上述の図14の例においては、領域Aに対して領域Cを選択させるためのハンディキャップとして必要な値は、Wa=−512であった。図14の領域Aが、白=255、黒=0、グレー=128の輝度値をもつとき(ケース1とする)、領域Aの輝度値は図8に示すようになる。この場合、隣接画素同士の差分値の累積は、差分値が127の隣接画素が4カ所、差分値が128の隣接画素が4カ所にあるため、(127×4)+(128×4)=1020となる。また、Egmaxは、255である。
従って特徴量Eg,およびαは、
Eg=1020/24=42.5
α=0.833
となる。
【0072】
従って、図14の例における領域Aに対する領域Cの判定式は、SADが512であることから、判定式=426.66+Waが得られる。
これにより、領域Cの判定式を最も小さくするためには、ハンディキャップとして加算する加算重みWaとしては、−427があればよい。つまり、図14の例では、Waとして−512が必要であったが、上記の処理によりより量的に小さな値のハンディキャップが設定可能となる。
【0073】
一方、上記の領域Aが、白=138、黒=118、グレー=128の輝度値をもつ場合(ケース2とする)、図9に示すようになる。この場合、隣接画素同士の差分値の累積は、差分値が10の隣接画素が8カ所にあるため、80となる。また、Egmaxは、255である。
従って特徴量Eg,及びαは、
Eg=80/24=3.33
α=0.987
となる。
【0074】
ケース1のように急峻なエッジを含むブロックにおいてはαが小さい値を示し、判定式(3)におけるSADの影響度が小さくなる。また、ケース2のようなエッジ量が小さいブロックではαが大きくなり、判定式に占めるSADの結果の影響が大きくなる。
【0075】
上記の例では、図7に示すように、Eg(max)の値が最も大きくなるように設定したが、図10に示すような2本のエッジをもつ画像をEg(max)とするような設定も可能である。
この場合、隣接画素の差分値には、255の箇所が8カ所あり他の箇所は0である。従って、特徴量Egmaxは計算上、(255×8)/24=85となる。
そして領域Aの白、グレー、黒の輝度値がケース1と同じ255,128,0の場合、Eg=42.5であることから、
α=0.5となり、
判定式=256+Wa
となる。Waは−257まで量的に小さくすることが可能となる。
【0076】
さらに、図11に示すようにブロック内に1本のエッジをもつ画像をEg(max)とするような設定も可能である。
この場合、隣接画素の差分値は255の箇所が4カ所あり他の箇所は0である。従って、特徴量Eg(max)は計算上、(255×4)/24=42.5となる。またケース1の領域Aの場合には、Eg=42.5であることから、
α=0 となり、
判定式=0+Wa
となる。従ってWaは−1まで量的に小さくすることが可能となる。
【0077】
一方、図11の例でEg(max)を設定したときに領域Aがケース2に相当する場合には、Egmax=42.5、Eg=3.33 であることから、
α=0.92 となり、
判定式=0.92×SAD+Wa
となる。従ってほぼ、SADの値だけで動きベクトルを判定することになる。
【0078】
このようにして、より小さいWaの設定値を選択することが可能となり、弊害なく動きベクトルを検出することが可能となる。また、急峻なエッジを有するブロックの離散点未満の単位の動きに対しても対応することが可能となる。
ここで示したEg(max)やαの計算式はあくまで一例であり、本発明において限定されない。本発明は、特徴量Egに応じてSADの値に補正をかけることを特徴とする。特徴量Egが大きければ、算出したSADの判定式に占める割合が小さくなるように、特徴量Egが小さければ、算出したSADの判定式に占める割合が大きくなるようにすることを特徴とする。例えば、Waを固定値とせず、特徴量Egに応じて変動させることも含む。以上の処理は、SADに代えてDFDを用いた場合にも同様となる。
【0079】
また、SADまたはDFDに乗算する係数αに代えて、SADまたはDFDに加算する加算値αを平均値Aに応じて決定し、SADまたはDFDにαを加算した上でさらに加算重みWaを加算して判定用SADまたはDFDを決定してもよい。この場合にもαをAの値の増減に応じて徐々に変化させるように設定してもよく、Egの値の増減に応じてαが段階的に変化するものであってもよい。
【0080】
また、本発明に係る動きベクトル検出装置は、例えば、テレビジョン受像装置に備えられて、受信した放送信号に含まれる映像信号に基づいて表示される画像を補間する構成であってもよい。あるいは、本発明に係る動きベクトル検出装置は、DVD再生装置やビデオ再生装置などの映像再生装置に備えられて、記録媒体に記録されている映像データに基づいて再生される画像を補間する構成であってもよい。さらに本発明に係る動きベクトル検出装置は、画像間の動きベクトルを用いた映像信号の符号化方式に用いてもよい。
【0081】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【0082】
最後に、ベクトル検出装置の各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、ベクトル検出装置は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるベクトル検出装置の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、ベクトル検出装置に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【0083】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
【0084】
また、ベクトル検出装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【符号の説明】
【0085】
1…画素値、2…画素値、2a…画素値、2b…画素値、11…ブロック、12…領域、20a…パターン、20b…パターン、21…領域、100…フレームレート変換部、101…ベクトル検出部、102…内挿フレーム生成部、103…液晶表示パネル、104…電極駆動部、200,201…物体。
【特許請求の範囲】
【請求項1】
入力される画像信号のフレーム間の動きベクトルを検出する動きベクトル検出部を備えた動きベクトル検出装置において、
前記動きベクトル検出部は、入力された画像信号のフレームの注目画像ブロックと、該注目画像ブロックのフレームに時間的に前後する入力画像信号のフレームの所定の探索範囲内のブロックとの間で、画像ブロック同士における互いに同一位置の画素値の差分絶対値の累積加算値を示すSAD、もしくは前記同一位置の画素値の差分の2乗値の累積加算値を示すDFDを検出し、
前記注目画像ブロック内の隣接する2つの画素値同士の差分値の平均値を求め、求めた平均値に基づいて前記SADまたはDFDを補正し、該補正したSADまたはDFDに基づいて動きベクトルを検出することを特徴とする動きベクトル検出装置。
【請求項2】
請求項1に記載の動きベクトル検出装置において、前記動きベクトル検出部は、前記平均値が増大するに従って、前記SADまたは前記DFDが徐々にもしくは段階的に小さくなるような乗算係数もしくは加算値を使用して前記SADまたは前記DFDを補正することを特徴とする動きベクトル検出装置。
【請求項3】
請求項1または2に記載の動きベクトル検出装置において、
優先する動きベクトルをもつ前記探索範囲内のブロックにより計算した前記補正後のSADまたはDFDに対して、
前記補正したSADまたはDFDが相対的に小さくなる方向の加算重みを加え、前記加算重みを考慮した前記補正後のSADまたはDFDが最も小さくなるブロックにより与えられる動きベクトルを検出することを特徴とする動きベクトル検出装置。
【請求項4】
請求項1〜3のいずれか1に記載の動きベクトル検出装置と、該動きベクトル検出装置が検出した動きベクトルに基づいて、入力される画像信号のフレーム間に内挿する補間フレームを生成する内挿フレーム生成部と、該内挿フレーム生成部から出力された画像信号を表示する表示部とを備えた映像表示装置。
【請求項5】
請求項1〜3のいずれか1に記載の動きベクトル検出装置と、該動きベクトル検出装置が検出した動きベクトルに基づいて、情報を符号化する映像記録装置。
【請求項6】
請求項1〜3のいずれか1に記載の動きベクトル検出装置と、該動きベクトル検出装置が検出した動きベクトルに基づいて、符号化された情報を復号して映像信号として再生する映像再生装置。
【請求項7】
2つの画像間の動きベクトルを検出する動きベクトル検出方法において、基準画像の注目画像ブロックと、該注目画像ブロックの参照画像の所定の探索範囲内のブロックとの間で、画像ブロック同士における互いに同一位置の画素値の差分絶対値の累積加算値を示すSAD、もしくは前記同一位置の画素値の差分の2乗値の累積加算値を示すDFDを検出するステップと、
前記注目画像ブロック内の隣接する2つの画素値同士の差分値の平均値を求めるステップと、求めた平均値に基づいて前記SADまたはDFDを補正するステップと、該補正したSADまたはDFDに基づいて動きベクトルを検出するステップを有することを特徴とする動きベクトル検出方法。
【請求項8】
請求項7に記載の動きベクトル検出方法において、前記動きベクトル検出ステップは、前記平均値が増大するに従って、前記SADまたは前記DFDが徐々にもしくは段階的に小さくなるような乗算係数もしくは加算値を使用して前記SADまたは前記DFDを補正することを特徴とする動きベクトル検出方法。
【請求項9】
請求項7または8に記載の動きベクトル検出方法において、
優先する動きベクトルをもつ前記探索範囲内のブロックにより計算した前記補正後のSADまたはDFDに対して、
前記補正したSADまたはDFDが相対的に小さくなる方向の加算重みを加え、前記加算重みを考慮した前記補正後のSADまたはDFDが最も小さくなるブロックにより与えられる動きベクトルを検出することを特徴とする動きベクトル検出方法。
【請求項10】
請求項1〜3までのいずれか1に記載の動きベクトル検出装置を動作させる制御プログラムであって、コンピュータに前記動きベクトル検出装置の機能を実現させるための制御プログラム。
【請求項11】
請求項10に記載の制御プログラムを記録しているコンピュータ読み取り可能な記録媒体。
【請求項1】
入力される画像信号のフレーム間の動きベクトルを検出する動きベクトル検出部を備えた動きベクトル検出装置において、
前記動きベクトル検出部は、入力された画像信号のフレームの注目画像ブロックと、該注目画像ブロックのフレームに時間的に前後する入力画像信号のフレームの所定の探索範囲内のブロックとの間で、画像ブロック同士における互いに同一位置の画素値の差分絶対値の累積加算値を示すSAD、もしくは前記同一位置の画素値の差分の2乗値の累積加算値を示すDFDを検出し、
前記注目画像ブロック内の隣接する2つの画素値同士の差分値の平均値を求め、求めた平均値に基づいて前記SADまたはDFDを補正し、該補正したSADまたはDFDに基づいて動きベクトルを検出することを特徴とする動きベクトル検出装置。
【請求項2】
請求項1に記載の動きベクトル検出装置において、前記動きベクトル検出部は、前記平均値が増大するに従って、前記SADまたは前記DFDが徐々にもしくは段階的に小さくなるような乗算係数もしくは加算値を使用して前記SADまたは前記DFDを補正することを特徴とする動きベクトル検出装置。
【請求項3】
請求項1または2に記載の動きベクトル検出装置において、
優先する動きベクトルをもつ前記探索範囲内のブロックにより計算した前記補正後のSADまたはDFDに対して、
前記補正したSADまたはDFDが相対的に小さくなる方向の加算重みを加え、前記加算重みを考慮した前記補正後のSADまたはDFDが最も小さくなるブロックにより与えられる動きベクトルを検出することを特徴とする動きベクトル検出装置。
【請求項4】
請求項1〜3のいずれか1に記載の動きベクトル検出装置と、該動きベクトル検出装置が検出した動きベクトルに基づいて、入力される画像信号のフレーム間に内挿する補間フレームを生成する内挿フレーム生成部と、該内挿フレーム生成部から出力された画像信号を表示する表示部とを備えた映像表示装置。
【請求項5】
請求項1〜3のいずれか1に記載の動きベクトル検出装置と、該動きベクトル検出装置が検出した動きベクトルに基づいて、情報を符号化する映像記録装置。
【請求項6】
請求項1〜3のいずれか1に記載の動きベクトル検出装置と、該動きベクトル検出装置が検出した動きベクトルに基づいて、符号化された情報を復号して映像信号として再生する映像再生装置。
【請求項7】
2つの画像間の動きベクトルを検出する動きベクトル検出方法において、基準画像の注目画像ブロックと、該注目画像ブロックの参照画像の所定の探索範囲内のブロックとの間で、画像ブロック同士における互いに同一位置の画素値の差分絶対値の累積加算値を示すSAD、もしくは前記同一位置の画素値の差分の2乗値の累積加算値を示すDFDを検出するステップと、
前記注目画像ブロック内の隣接する2つの画素値同士の差分値の平均値を求めるステップと、求めた平均値に基づいて前記SADまたはDFDを補正するステップと、該補正したSADまたはDFDに基づいて動きベクトルを検出するステップを有することを特徴とする動きベクトル検出方法。
【請求項8】
請求項7に記載の動きベクトル検出方法において、前記動きベクトル検出ステップは、前記平均値が増大するに従って、前記SADまたは前記DFDが徐々にもしくは段階的に小さくなるような乗算係数もしくは加算値を使用して前記SADまたは前記DFDを補正することを特徴とする動きベクトル検出方法。
【請求項9】
請求項7または8に記載の動きベクトル検出方法において、
優先する動きベクトルをもつ前記探索範囲内のブロックにより計算した前記補正後のSADまたはDFDに対して、
前記補正したSADまたはDFDが相対的に小さくなる方向の加算重みを加え、前記加算重みを考慮した前記補正後のSADまたはDFDが最も小さくなるブロックにより与えられる動きベクトルを検出することを特徴とする動きベクトル検出方法。
【請求項10】
請求項1〜3までのいずれか1に記載の動きベクトル検出装置を動作させる制御プログラムであって、コンピュータに前記動きベクトル検出装置の機能を実現させるための制御プログラム。
【請求項11】
請求項10に記載の制御プログラムを記録しているコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2011−142400(P2011−142400A)
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願番号】特願2010−719(P2010−719)
【出願日】平成22年1月5日(2010.1.5)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願日】平成22年1月5日(2010.1.5)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]