以下、図を参照しながら、この発明の実施の一形態について説明する。図1は、本発明を適用するシステムの構成を示すブロック図である。画像センサ10は、例えば、固体撮像素子であるCCD(Charge-Coupled Device)エリアセンサやCMOSエリアセンサを備えたビデオカメラなどで構成されており、実世界を撮像する。例えば、図2に示すように、画像センサ10と背景に対応するオブジェクトOBbとの間を、前景に対応する動きオブジェクトOBfが矢印A方向に移動するとき、画像センサ10は、前景に対応する動きオブジェクトOBfを背景に対応するオブジェクトOBbと共に撮像する。
この画像センサ10は、それぞれが時間積分効果を有する複数の検出素子からなるものであり、入力される光に応じて発生された電荷を検出素子毎に露光期間積分する。すなわち、画像センサ10で光電変換を行い、入力された光を画素単位で電荷に変換して例えば1フレーム期間単位で蓄積を行う。この蓄積された電荷量に応じて画素データを生成して、この画素データを用いて所望のフレームレートの画像データDVaを生成して図1に示す画像処理装置20に供給する。また、画像センサ10にシャッター機能が設けられており、シャッター速度に応じて露光期間を調整して画像データDVaの生成が行われる場合には、露光期間を示す露光期間パラメータHEを画像処理装置20に供給する。この露光期間パラメータHEは、1フレーム期間におけるシャッター開期間を例えば「0〜1.0」の値で示したものであり、シャッター機能を使用しないときの値は「1.0」、シャッター期間が1/2フレーム期間であるときの値は「0.5」とされるものである。
画像処理装置20は、画像センサ10での時間積分効果によって、画像データDVaに埋もれてしまった有意情報を抽出し、移動する前景に対応する動きオブジェクトOBfに生じた時間積分効果による動きボケを、有意情報を利用して軽減させる。なお、画像処理装置20には、動きボケの軽減を行う画像領域を選択するための領域選択情報HAが供給される。
図3は、画像データDVaで示される撮像画像を説明するための図である。図3Aは、動いている前景に対応する動きオブジェクトOBfと、静止している背景に対応するオブジェクトOBbとを撮像して得られる画像を示している。なお、前景に対応する動きオブジェクトOBfは、矢印A方向に水平移動しているものとする。
図3Bは、図3Aの破線で示すラインLにおける画像と時間の関係を示している。動きオブジェクトOBfのラインLにおける移動方向の長さが例えば9画素分であり、1露光期間中に5画素移動する場合、フレーム期間開始時に画素位置P21にあった前端と画素位置P13にあった後端は、それぞれ画素位置P25,P17で露光期間の終了となる。また、シャッター機能が用いられていないとき、1フレームにおける露光期間は1フレーム期間と等しいものとなり、次のフレーム期間開始時に前端が画素位置P26、後端が画素位置P18となる。なお、説明を簡単とするため、特に記載が無い場合はシャッター機能が用いられていないものとして説明を行う。
このため、ラインLのフレーム期間において、画素位置P12までと画素位置P26からは、背景成分のみの背景領域となる。また、画素位置P17〜P21は、前景成分のみの前景領域となる。画素位置P13〜P16と画素位置P22〜P25は、背景成分と前景成分が混合された混合領域となる。混合領域は、時間の経過に対応して背景成分が前景に覆い隠されるカバードバックグランド領域と、時間の経過に対応して背景成分が現れるアンカバードバックグランド領域に分類される。なお、図3Bでは、前景のオブジェクトの進行方向前端側に位置する混合領域がカバードバックグランド領域、後端側に位置する混合領域がアンカバードバックグランド領域となる。このように、画像データDVaには、前景領域、背景領域、またはカバードバックグランド領域若しくはアンカバードバックグランド領域を含む画像が含まれることとなる。
ここで、1フレームは短時間であり、前景に対応する動きオブジェクトOBfは剛体であって等速に移動していると仮定して、図4に示すように、1露光期間における画素値の時間方向分割動作を行い、画素値を仮想分割数で等時間間隔に分割する。
仮想分割数は、前景に対応する動きオブジェクトの1フレーム期間内での動き量vなどに対応して設定する。例えば、1フレーム期間内の動き量vが上述のように5画素であるときは、動き量vに対応して仮想分割数を「5」に設定して、1フレーム期間を等時間間隔で5分割する。
また、背景に対応するオブジェクトOBbを撮像したときに得られる画素位置Pxの1フレーム期間の画素値をBx、ラインLにおける長さが9画素分である前景に対応する動きオブジェクトOBfを静止させて撮像したときに各画素で得られる画素値をF09(前端側)〜F01(後端側)とする。
この場合、例えば画素位置P15の画素値DP15は、式(1)で表される。
DP15=B15/v+B15/v+F01/v+F02/v+F03/v ・・・(1)
この画素位置P15では、背景の成分を2仮想分割時間(フレーム期間/v)含み、前景成分を3仮想分割時間含むので、背景成分の混合比αは(2/5)である。同様に、例えば画素位置P22では、背景の成分を1仮想分割時間含み、前景成分を4仮想分割時間含むので、混合比αは(1/5)である。
また、前景に対応する動きオブジェクトが剛体であり、前景の画像が次のフレームにおいて5画素右側に表示されるように等速で移動すると仮定しているので、例えば、画素位置P13の最初の仮想分割時間における前景の成分(F01/v)は、画素位置P14における2番目の仮想分割時間における前景の成分、画素位置P15における3番目の仮想分割時間における前景の成分、画素位置P16における4番目の仮想分割時間における前景の成分、画素位置P17における5番目の仮想分割時間における前景の成分と等しくなる。また、画素位置P14の最初の仮想分割時間における前景の成分(F02/v)から画素位置P21の最初の仮想分割時間における前景の成分(F09/v)についても、前景の成分(F01/v)と同様である。
このため、式(2)に示すように、混合比αを用いて各画素位置の画素値DPを示すこともできる。なお、式(2)において、「FE」は前景の成分の合計値を示している。
DP=α・B+FE ・・・(2)
このように、前景の成分が移動することから、1フレーム期間では、異なる前景の成分が加算されるので、動きオブジェクトに対応する前景の領域は、動きボケを含むものとなる。このため、画像処理装置20では、画像データDVaに埋もれてしまった有意情報として混合比αを抽出し、この混合比αを利用して前景に対応する動きオブジェクトOBfの動きボケを軽減させた画像データDVoutを生成する。
図5は、画像処理装置20の構成を示すブロック図である。画像処理装置20に供給された画像データDVaは、動きベクトル検出部30と動きボケ軽減画像生成部40に供給される。また、領域選択情報HAと露光期間パラメータHEは、動きベクトル検出部30に供給される。さらに、後述するメモリ55から読み出された画像データDVmは動きベクトル検出部30に供給される。動きベクトル検出部30は、領域選択情報HAに基づいて、動きボケ軽減処理を行う処理領域を順次抽出する。さらに、画像データDVaあるいは画像データDVmにおける処理領域の画像データを用いて処理領域内における動きオブジェクトに対応する動きベクトルMVCを検出して、動きボケ軽減画像生成部40に供給する。例えば、時間的に連続する少なくとも第1の画像と第2の画像のうち、一方の画像内の動きオブジェクトの位置に対応する注目画素を設定して、この注目画素に対する動きベクトルを第1の画像と第2の画像を用いて検出する。また、処理領域を示す処理領域情報HZを生成して、動きボケ軽減画像生成部40に供給する。さらに、前景のオブジェクトの動きに応じて領域選択情報HAの更新を行い、動きオブジェクトの動きに応じて処理領域を移動させる。
動きボケ軽減画像生成部40は、動きベクトルMVCと処理領域情報HZと画像データDVaに基づいて領域特定や混合比の算出を行い、算出した混合比を用いて前景成分や背景成分の分離を行う。さらに、分離した前景成分の画像に対して動きボケ調整を行って動きボケ軽減オブジェクト画像の画像データである前景成分画像データDBfを生成する。また、背景成分画像データDBbに基づく背景画像上に、前景成分画像データDBfに基づく動きボケが軽減された前景領域の画像を合成して動きボケ軽減画像の画像データDVoutを生成する。この画像データDVoutは、メモリ55や画像表示装置(図示せず)に供給される。ここで、動きボケ軽減オブジェクト画像である前景領域の画像は、検出された動きベクトルMVCに対応する時空間位置に合成させることで、動きオブジェクトを追従した位置に動きボケの軽減された動きオブジェクトの画像を出力できる。すなわち、時間的に連続する少なくとも第1の画像と第2の画像を用いて動きベクトルを検出したとき、この検出された動きベクトルに対応する一方の画像内の注目画素の位置あるいは他方の画像内の注目画素に対応する位置に、動きボケが軽減された動きオブジェクトの画像を合成する。
図6は、動きベクトル検出部30の構成を示すブロック図である。領域選択情報HAは、処理領域設定部31に供給される。また、画像データDVaとメモリ55から読み出された画像データDVmは、画像データ選択部32に供給される。さらに、露光期間パラメータHEは、動きベクトル補正部34に供給される。
処理領域設定部31は、領域選択情報HAに基づき、動きボケ軽減処理を行う処理領域を順次抽出して、この処理領域を示す処理領域情報HZを検出部33と動きボケ軽減画像生成部40に供給する。また、後述する検出部33で検出された動きベクトルMVを利用して領域選択情報HAを更新して、動きボケの軽減を行う画像領域を動きオブジェクトの動きに合わせて追尾させる。
画像データ選択部32は、メモリ55から読み出した画像データDVmを用いて動きベクトルMVの検出が可能となるまで画像データDVaを検出部33に供給し、その後、メモリ55から読み出した画像データDVmで動きベクトルの検出が可能となったとき、メモリ55から読み出した画像データDVmを検出部33に供給する。
検出部33は、例えば、ブロックマッチング法、勾配法、位相相関法、或いはペルリカーシブ法などの手法により、処理領域情報HZで示された処理領域について動きベクトル検出を行い検出した動きベクトルMVを動きベクトル補正部34に供給する。或いは、検出部33は、領域選択情報HAで示す領域内に設定された追尾点の周辺、例えば領域選択情報HAで示す領域内の画像特徴量と同一の画像特徴量を有する領域を、時間方向における複数の周辺フレームの画像データから検出することにより、追尾点の動きベクトルMVを算出して処理領域設定部31に供給する。
ここで、検出部33が出力する動きベクトルMVは、動き量(ノルム)と動き方向(角度)に対応する情報が含まれている。動き量は、動きオブジェクトに対応する画像の位置変化を表す値である。例えば、前景に対応する動きオブジェクトOBfが、あるフレームを基準として次のフレームにおいて水平方向にmove-x,垂直方向にmove-yだけ移動したとき、動き量は式(3)によって求めることができる。また、動き方向は式(4)によって求めることができる。この動き量と動き方向は、処理領域に対して1対のみ与えられる。
動きベクトル補正部34は、露光期間パラメータHEを用いて動きベクトルMVの補正を行う。動きベクトル補正部34に供給された動きベクトルMVは、上述のようにフレーム間の動きベクトルである。しかし、後述する動きボケ軽減画像生成部40で用いる動きベクトルは、フレーム内の動きベクトルを用いて処理を行うことから、シャッター機能が用いられて1フレームにおける露光期間が1フレーム期間よりも短いときに、フレーム間の動きベクトルを用いてしまうと動きボケ軽減処理を正しく行うことができない。このため、フレーム間の動きベクトルである動きベクトルMVを1フレーム期間に対する露出期間の割合で補正して、動きベクトルMVCとして動きボケ軽減画像生成部40に供給する。
図7は、動きボケ軽減画像生成部40の構成を示すブロック図である。領域特定部41は、画像データDVaに基づく表示画像における処理領域情報HZで示された処理領域内の各画素が、前景領域、背景領域、または混合領域のいずれに属するかを示す情報(以下、領域情報と称する)ARを生成して混合比算出部42と前景背景分離部43、および動きボケ調整部44に供給する。
混合比算出部42は、画像データDVaおよび領域特定部41から供給された領域情報ARを基に、混合領域において背景成分の混合比αを算出して、算出した混合比αを前景背景分離部43に供給する。
前景背景分離部43は、領域特定部41から供給された領域情報AR、および混合比算出部42から供給された混合比αを基に、画像データDVaを前景成分のみから成る前景成分画像データDBeと背景成分のみから成る背景成分画像データDBbに分離して、前景成分画像データDBeを動きボケ調整部44に供給する。
動きボケ調整部44は、動きベクトルMVCで示された動き量および領域情報ARを基に、前景成分画像データDBeに含まれる1以上の画素を示す調整処理単位を決定する。調整処理単位は、動きボケ軽減の処理の対象となる1群の画素を指定するデータである。
動きボケ調整部44は、前景背景分離部43から供給された前景成分画像、動きベクトル検出部30から供給された動きベクトルMVCおよびその領域情報AR、並びに調整処理単位を基に、前景成分画像データDBeに含まれる動きボケを低減させる。この動きボケを低減させた前景成分画像データDBfを出力部45に供給する。
図8は、領域特定部41の構成を示すブロック図である。画像メモリ411は、入力された画像データDVaをフレーム単位で記憶する。画像メモリ411は、処理の対象がフレーム#nであるとき、フレーム#nの2つ前のフレームであるフレーム#n-2、フレーム#nの1つ前のフレームであるフレーム#n-1、フレーム#n、フレーム#nの1つ後のフレームであるフレーム#n+1、およびフレーム#nの2つ後のフレームであるフレーム#n+2を記憶する。
静動判定部412は、フレーム#nに対する処理領域情報HZで特定された領域と同一の領域のフレーム#n-2,#n-1,#n+1,#n+2の画像データを画像メモリ411から読み出して、読み出した画像データのフレーム間差分絶対値を算出する。このフレーム間差分絶対値が予め設定している閾値Thより大きいか否かによって、動き部分であるか静止部分であるかを判別し、この判別結果を示す静動判定情報SMを領域判定部413に供給する。
図9は、画像メモリ411から読み出した画像データを示している。なお、図9は処理領域情報HZで特定された領域内における1つのラインの画素位置P01〜P37の画像データを読み出した場合を示している。
静動判定部412は、連続する2フレームの画素毎のフレーム間差分絶対値を求め、フレーム差分絶対値が予め設定している閾値Thより大きいか否かを判定し、フレーム間差分絶対値が閾値Thよりも大きいときは動き、フレーム間差分絶対値が閾値Th以下であるときは静止と判定する。
領域判定部413は、静動判定部412で得られた判定結果を用いて、処理領域情報HZで特定された領域の各画素が、静止領域、カバードバックグランド領域、アンカバードバックグランド領域、動き領域のいずれに属するか、図10に示すように領域判定処理を行う。
例えば、最初にフレーム#n-1とフレーム#nの静動判定の結果が静止である画素を静止領域の画素と判定する。また、フレーム#nとフレーム#n+1の静動判定の結果が静止である画素を静止領域の画素と判定する。
次に、フレーム#n-2とフレーム#n-1の静動判定の結果が静止であり、フレーム#n-1とフレーム#nの静動判定の結果が動きである画素をカバードバックグランド領域の画素と判定する。また、フレーム#nとフレーム#n+1の静動判定の結果が動きであり、フレーム#n+1とフレーム#n+2の静動判定の結果が静止である画素をアンカバードバックグランド領域の画素と判定する。
その後、フレーム#n-1とフレーム#nの静動判定の結果とフレーム#nとフレーム#n+1の静動判定の結果が共に動きである画素を動き領域の画素と判定する。
なお、カバードバックグランド領域における動き領域側の画素やアンカバードバックグランド領域における動き領域側の画素は、背景成分が含まれていなくとも、カバードバックグランド領域やアンカバードバックグランド領域と判別されてしまう場合がある。例えば図9の画素位置P21は、フレーム#n-2とフレーム#n-1の静動判定の結果が静止であり、フレーム#n-1とフレーム#nの静動判定の結果が動きであることから、背景成分が含まれていなくともカバードバックグランド領域と判別されてしまう。また、画素位置P17は、フレーム#nとフレーム#n+1の静動判定の結果が動きであり、フレーム#n+1とフレーム#n+2の静動判定の結果が静止であることから、背景成分が含まれていなくともアンカバードバックグランド領域と判別されてしまう。このため、カバードバックグランド領域における動き領域側の画素とアンカバードバックグランド領域における動き領域側の画素を動き領域の画素に補正することで、各画素の領域判定を精度良く行うことができる。このようにして領域判定を行い、各画素が静止領域やカバードバックグランド領域,アンカバードバックグランド領域,動き領域のいずれかに属するものであるかを示す領域情報ARを生成して、混合比算出部42と前景背景分離部43と動きボケ調整部44に供給する。
なお、領域特定部41は、アンカバードバックグランド領域およびカバードバックグランド領域に対応する領域情報に論理和を適用することにより、混合領域に対応する領域情報を生成して、各画素が静止領域や混合領域,動き領域のいずれに属するものであるかを領域情報ARで示すものとしても良い。
図11は、混合比算出部42の構成を示すブロック図である。推定混合比処理部421は、画像データDVaを基にカバードバックグランド領域に対応する演算を行い画素毎に推定混合比αcを算出して、この算出した推定混合比αcを混合比決定部423に供給する。また、推定混合比処理部422は、画像データDVaを基にアンカバードバックグランド領域に対応する演算を行い画素毎に推定混合比αuを算出して、この算出した推定混合比αuを混合比決定部423に供給する。
混合比決定部423は、推定混合比処理部421,422から供給された推定混合比αc,αuと領域特定部41から供給された領域情報ARに基づいて、背景成分の混合比αを設定する。混合比決定部423は、対象となる画素が動き領域に属する場合、混合比αを「α=0」に設定する。また、対象となる画素が静止領域に属する場合、混合比αを「α=1」に設定する。対象となる画素がカバードバックグランド領域に属する場合、推定混合比処理部421から供給された推定混合比αcを混合比αに設定し、対象となる画素がアンカバードバックグランド領域に属する場合、推定混合比処理部422から供給された推定混合比αuを混合比αに設定する。この設定した混合比αを前景背景分離部43に供給する。
ここで、フレーム期間が短く、前景に対応する動きオブジェクトが剛体でフレーム期間内に等速で動いていると仮定できると、混合領域に属する画素の混合比αは、画素の位置の変化に対応して、直線的に変化する。このような場合、理想的な混合比αの混合領域における傾きθは、図12に示すように、前景に対応する動きオブジェクトのフレーム期間内における動き量vの逆数として表すことができる。すなわち、静止(背景)領域における混合比αは「1」、動き(前景)領域における混合比αは「0」の値を有し、混合領域では「0」から「1」の範囲で変化する。
図9に示すカバードバックグランド領域の画素位置P24の画素値DP24は、フレーム#n-1における画素位置P24の画素値をB24としたとき式(5)として表すことができる。
この画素値DP24では、画素値DP24の中に背景成分が(3/v)含まれることから動き量vが「v=5」のとき混合比αは「α=(3/5)」となる。
すなわち、カバードバックグランド領域における画素位置Pgの画素値Dgcは、式(6)として示すことができる。なお「Bg」は、フレーム#n-1における画素位置Pgの画素値、「FEg」は画素位置Pgにおける前景成分の合計を示している。
Dgc=αc・Bg+FEg ・・・(6)
また、画素値Dgcの画素位置におけるフレーム#n+1における画素値をFgとして、この画素位置における(Fg/v)がそれぞれ等しいものとすると、FEg=(1−αc)Fgとなる。すなわち、式(6)は式(7)として示すことができる。
Dgc=αc・Bg+(1−αc)Fg ・・・(7)
この式(7)を変形すると式(8)となる。
αc=(Dgc−Fg)/(Bg−Fg) ・・・(8)
式(8)において、Dgc,Bg,Fgは既知であることから、推定混合比処理部421は、カバードバックグランド領域の画素に対して、フレーム#n-1,#n,#n+1の画素値を用いて推定混合比αcを求めることができる。
アンカバードバックグランド領域についても、カバードバックグランド領域と同様にして、アンカバードバックグランド領域の画素値をDPuとすると、式(9)を得ることができる。
αu=(Dgu−Bg)/(Fg−Bg) ・・・(9)
式(9)においても、Dgu,Bg,Fgは既知であることから、推定混合比処理部422は、アンカバードバックグランド領域の画素に対して、フレーム#n-1,#n,#n+1の画素値を用いて推定混合比αuを求めることができる。
混合比決定部423は、領域情報ARが静止領域であることを示しているとき混合比αを「α=1」、動き領域であることを示しているとき混合比αを「α=0」として出力する。また、カバードバックグランド領域であることを示しているときは、推定混合比処理部421で算出した推定混合比αc、アンカバードバックグランド領域であることを示しているときは、推定混合比処理部422で算出した推定混合比αuをそれぞれ混合比αとして出力する。
図13は、前景背景分離部43の構成を示すブロック図である。前景背景分離部43に供給された画像データDVaと領域特定部41から供給された領域情報ARは、分離部431、スイッチ部432、およびスイッチ部433に供給される。混合比算出部42から供給された混合比αは、分離部431に供給される。
分離部431は、領域情報ARに基づき、画像データDVaからカバードバックグランド領域とアンカバードバックグランド領域の画素のデータを分離する。この分離したデータと混合比αに基づき動きを生じた前景のオブジェクトの成分と静止している背景の成分を分離して、前景のオブジェクトの成分である前景成分を合成部434に供給し、背景成分を合成部435に供給する。
例えば、図9のフレーム#nにおいて、画素位置P22〜P25はカバードバックグランド領域に属する領域であり、それぞれの画素位置P22〜P25における混合比を混合比α22〜α25とすると、画素位置P22の画素値DP22は、フレーム#n-1における画素位置P22の画素値を「B22j」とした場合、式(10)で表される。
DP22=B22/v+F06/v+F07/v+F08/v+F09/v
=α22・B22j+F06/v+F07/v+F08/v+F09/v ・・・(10)
このフレーム#nにおける画素位置P22の前景成分FE22は、式(11)で表すことができる。
FE22=F06/v+F07/v+F08/v+F09/v=DP22−α22・B22j ・・・(11)
すなわち、フレーム#nにおけるカバードバックグランド領域の画素位置Pgの前景成分FEgcは、フレーム#n-1における画素位置Pgの画素値を「Bgj」としたとき、式(12)を用いて求めることができる。
FEgc=DPg−αc・Bgj ・・・(12)
また、アンカバードバックグランド領域における前景成分FEguも、カバードバックグランド領域における前景成分FEgcと同様にして求めることができる。
例えば、フレーム#nにおいて、アンカバードバックグランド領域内の画素位置P16の画素値DP16は、フレーム#n+1における画素位置P16の画素値を「B16k」としたとき、式(13)で表される。
DP16=B16/v+F01/v+F02/v+F03/v+F04/v
=α16・B16k+F01/v+F02/v+F03/v+F04/v ・・・(13)
このフレーム#nにおける画素位置P16の前景成分FE16は、式(14)で表すことができる。
FE16=F01/v+F02/v+F03/v+F04/v=DP16−α16・B16k ・・・(14)
すなわち、フレーム#nにおけるアンカバードバックグランド領域の画素位置Pguの前景成分FEguは、フレーム#n+1における画素位置Pgの画素値を「Bgk」としたとき、式(15)を用いて求めることができる。
FEgu=DPg−αu・Bk ・・・(15)
このように、分離部431は、画像データDVaと領域特定部41で生成された領域情報ARと混合比算出部で算出された混合比αを用いて、前景成分と背景成分を分離できる。
スイッチ部432は、領域情報ARに基づいてスイッチ制御を行い、画像データDVaから動き領域の画素のデータを選択して合成部434に供給する。スイッチ部433は、領域情報ARに基づいてスイッチ制御を行い、画像データDVaから静止領域の画素のデータを選択して合成部435に供給する。
合成部434は、分離部431から供給された前景のオブジェクトの成分とスイッチ部432から供給された動き領域のデータを用いて、前景成分画像データDBeを合成して、動きボケ調整部44に供給する。また、合成部434は、前景成分画像データDBeの生成処理の最初に実行される初期化において、内蔵しているフレームメモリに全ての画素値が0である初期データを格納し、この初期データに画像データを上書きする。従って、背景領域に対応する部分は初期データの状態とされる。
合成部435は、分離部431から供給された背景の成分とスイッチ部433から供給された静止領域のデータを用いて、背景成分画像データDBbを合成して出力部45に供給する。また、合成部435は、背景成分画像データDBbの生成処理の最初に実行される初期化において、内蔵しているフレームメモリに全ての画素値が0である画像を格納し、この初期データに画像データを上書きする。従って、前景領域に対応する部分は初期データの状態とされる。
図14は、動きボケ調整部44の構成を示すブロック図である。動きベクトル検出部30から供給された動きベクトルMVCは、調整処理単位決定部441とモデル化部442に供給される。領域特定部41から供給された領域情報ARは、調整処理単位決定部441に供給される。また、前景背景分離部43から供給された前景成分画像データDBeは、足し込み部444に供給される。
調整処理単位決定部441は、領域情報ARと動きベクトルMVCに基づき、前景成分画像のカバードバックグランド領域からアンカバードバックグランド領域までの動き方向に並ぶ連続する画素を調整処理単位として設定する。または、アンカバードバックグランド領域からカバードバックグランド領域までの動き方向に並ぶ連続する画素を調整処理単位として設定する。この設定した調整処理単位を示す調整処理単位情報HCをモデル化部442と足し込み部444に供給する。図15は、調整処理単位を示しており、例えば図9におけるフレーム#nの画素位置P13〜P25を調整処理単位とした場合を示している。なお、調整処理単位決定部441では、動き方向が水平方向や垂直方向と異なる場合、アフィン変換を行って動き方向を水平方向や垂直方向に変換することで、動き方向が水平方向や垂直方向の場合と同様に処理することができる。
モデル化部442は、動きベクトルMVCおよび設定された調整処理単位情報HCを基に、モデル化を実行する。このモデル化では、調整処理単位に含まれる画素の数、画像データDVaの時間方向の仮想分割数、および画素毎の前景成分の数に対応する複数のモデルを予め記憶しておき、調整処理単位、および画素値の時間方向の仮想分割数を基に、画像データDVaと前景の成分との対応を指定するモデルMDを選択するようにしても良い。
モデル化部442は、選択したモデルMDを方程式生成部443に供給する。方程式生成部443は、モデル化部442から供給されたモデルMDを基に方程式を生成する。調整処理単位を上述のようにフレーム#nの画素位置P13〜P25として、動き量vが「5画素」で仮想分割数を「5」としたとき、調整処理単位内の画素位置C01における前景成分FE01や画素位置C02〜C13における前景成分FE02〜FE13は、式(16)〜(28)で示すことができる。
FE01=F01/v ・・・(16)
FE02=F02/v+F01/v ・・・(17)
FE03=F03/v+F02/v+F01/v ・・・(18)
FE04=F04/v+F03/v+F02/v+F01/v ・・・(19)
FE05=F05/v+F04/v+F03/v+F02/v+F01/v ・・・(20)
FE06=F06/v+F05/v+F04/v+F03/v+F02/v ・・・(21)
FE07=F07/v+F06/v+F05/v+F04/v+F03/v ・・・(22)
FE08=F08/v+F07/v+F06/v+F05/v+F04/v ・・・(23)
FE09=F09/v+F08/v+F07/v+F06/v+F05/v ・・・(24)
FE10=F09/v+F08/v+F07/v+F06/v ・・・(25)
FE11=F09/v+F08/v+F07/v ・・・(26)
FE12=F09/v+F08/v ・・・(27)
FE13=F09/v ・・・(28)
方程式生成部443は、生成した方程式を変形して新たな方程式を生成する。方程式生成部443が生成する方程式を、式(29)〜式(41)に示す。
FE01=1・F01/v+0・F02/v+0・F03/v+0・F04/v+0・F05/v
+0・F06/v+0・F07/v+0・F08/v+0・F09/v ・・・(29)
FE02=1・F01/v+1・F02/v+0・F03/v+0・F04/v+0・F05/v
+0・F06/v+0・F07/v+0・F08/v+0・F09/v ・・・(30)
FE03=1・F01/v+1・F02/v+1・F03/v+0・F04/v+0・F05/v
+0・F06/v+0・F07/v+0・F08/v+0・F09/v ・・・(31)
FE04=1・F01/v+1・F02/v+1・F03/v+1・F04/v+0・F05/v
+0・F06/v+0・F07/v+0・F08/v+0・F09/v ・・・(32)
FE05=1・F01/v+1・F02/v+1・F03/v+1・F04/v+1・F05/v
+0・F06/v+0・F07/v+0・F08/v+0・F09/v ・・・(33)
FE06=0・F01/v+1・F02/v+1・F03/v+1・F04/v+1・F05/v
+1・F06/v+0・F07/v+0・F08/v+0・F09/v ・・・(34)
FE07=0・F01/v+0・F02/v+1・F03/v+1・F04/v+1・F05/v
+1・F06/v+1・F07/v+0・F08/v+0・F09/v ・・・(35)
FE08=0・F01/v+0・F02/v+0・F03/v+1・F04/v+1・F05/v
+1・F06/v+1・F07/v+1・F08/v+0・F09/v ・・・(36)
FE09=0・F01/v+0・F02/v+0・F03/v+0・F04/v+1・F05/v
+1・F06/v+1・F07/v+1・F08/v+1・F09/v ・・・(37)
FE10=0・F01/v+1・F02/v+0・F03/v+0・F04/v+0・F05/v
+1・F06/v+1・F07/v+1・F08/v+1・F09/v ・・・(38)
FE11=0・F01/v+0・F02/v+0・F03/v+0・F04/v+0・F05/v
+0・F06/v+1・F07/v+1・F08/v+1・F09/v ・・・(39)
FE12=0・F01/v+0・F02/v+0・F03/v+0・F04/v+0・F05/v
+0・F06/v+0・F07/v+1・F08/v+1・F09/v ・・・(40)
FE13=0・F01/v+0・F02/v+0・F03/v+0・F04/v+0・F05/v
+0・F06/v+0・F07/v+0・F08/v+1・F09/v ・・・(41)
この式(29)〜(41)は、式(42)として表すこともできる。
式(42)において、jは調整処理単位内の画素位置を示す。この例において、jは1〜13のいずれか1つの値を有する。また、iは、前景の成分の位置を示す。この例において、iは、1〜9のいずれか1つの値を有する。aijは、iおよびjの値に対応して、0または1の値を有する。
ここで、誤差を考慮すると、式(42)は、式(43)のように表すことができる。
式(43)において、ejは、注目画素Cjに含まれる誤差である。この式(43)は、式(44)に書き換えることができる。
ここで、最小自乗法を適用するため、誤差の二乗和Eを式(45)に示すように定義する。
誤差が最小になるためには、誤差の二乗和Eに対する変数Fkによる偏微分の値が0になればよいことから、式(46)を満たすようにFkを求める。
式(46)において、動き量vは固定値であるから、式(47)を導くことができる。
式(47)を展開して移項すると、式(48)を得る。
この式(48)のkに、1〜9の整数のいずれか1つを代入して得られる9つの式に展開する。さらに、得られた9つの式を、行列により1つの式により表すことができる。この式を正規方程式と呼ぶ。
このような最小自乗法に基づく、方程式生成部443が生成する正規方程式の例を式(49)に示す。
この式(49)をA・F=v・FEと表すと、A,vはモデル化の時点で既知である。また、FEは足し込み動作において画素値を入力することで既知となり、Fが未知である。
このように、最小自乗法に基づく正規方程式により前景成分Fを算出することにより、画素値FEに含まれている誤差を分散させることができる。方程式生成部443は、このように生成された正規方程式を足し込み部444に供給する。
足し込み部444は、調整処理単位決定部441から供給された調整処理単位情報HCを基に、前景成分画像データDBeを、方程式生成部443から供給された行列の式に設定する。さらに、足し込み部444は、画像データの設定なされた行列式を演算部445に供給する。
演算部445は、掃き出し法(Gauss-Jordanの消去法)などの解法に基づく処理により、動きボケが軽減された前景成分Fi/vを算出して、動きボケが軽減された前景の画素値F01〜F09を生成する。この生成した画素値F01〜F09は、前景成分画像の位置を変化させないため、調整処理単位の中心を基準として画素値F01〜F09の画像位置を設定して、例えば1フレーム期間の1/2の位相で出力部45に供給する。すなわち、図16に示すように、画素値F01〜F09を画素位置C03〜C11の画像データとして、動きボケの軽減された前景成分画像の画像データDVafcを1フレーム期間の1/2のタイミングで出力部45に供給する。
なお、演算部445は、画素値が偶数個のとき、例えば画素値F01〜F08を求めたときは、中央の2つの画素値F04,F05の何れかを調整処理単位の中心として出力する。また、シャッター動作が行われて1フレームにおける露光期間が1フレーム期間よりも短いときには、露光期間の1/2の位相で出力部45に供給する。
出力部45は、前景背景分離部43から供給された背景成分画像データDBbに、動きボケ調整部44から供給された前景成分画像データDBfを合成して画像データDVoutを生成して出力する。また、生成した画像データDVoutをメモリ55に供給する。ここで、動きボケの軽減された前景成分画像は、動きベクトル検出部30で検出された動きベクトルMVCに対応する時空間位置に合成する。すなわち、動きベクトルMVCに応じて設定された処理領域情報HZによって示された位置に動きボケの軽減された前景成分画像を合成することで、動きボケの軽減された前景成分画像を動きボケ調整前の画像位置に正しく出力できる。
メモリ55は、出力部45から供給された動きボケ軽減画像の画像データDVoutを記憶する。また、記憶している画像データを画像データDVmとして、動きベクトル検出部30に供給する。
このようにして、画像内の動きオブジェクトの動きボケが軽減されている動きボケ軽減画像を生成して、この動きボケ軽減画像を用いて動きベクトルを検出することから、画像センサ10からの画像データDVaに基づく画像に動きボケを生じていても、この動きボケによる影響を少なくして動きオブジェクトの動きベクトルを精度良く検出できる。
また、画像内の処理領域では、動きオブジェクトに対応する動きボケが生じていない各画素の画素値が動きベクトルに対応して移動しながら時間方向に積分された値であるとしてモデル化して、前景オブジェクト成分と背景オブジェクト成分との混合比を有意情報として抽出することができ、この有意情報を利用して動きオブジェクトの成分を分離して、分離した動きオブジェクトの成分に基づき精度良く動きボケを軽減させることができる。
さらに、注目画素あるいは動きベクトルに基づき注目画素に対応する位置に動きボケが軽減された動きオブジェクトの画像が出力されるので、動きオブジェクトの画像を正しい位置に出力できる。
ところで、動きボケの軽減は、ソフトウェアを用いても実現できる。図17は、画像処理装置の他の構成としてソフトウェアで動きボケ軽減を行う場合を示している。CPU(Central Processing Unit)61は、ROM(Read Only Memory)62、または記憶部63に記憶されているプログラムに従って各種の処理を実行する。この記憶部63は、例えばハードディスクなどで構成され、CPU61が実行するプログラムや各種のデータを記憶する。RAM(Random Access Memory)64には、CPU61が実行するプログラムや各種の処理を行う際に用いられるデータ等が適宜記憶される。これらのCPU61、ROM62、記憶部63およびRAM64は、バス65により相互に接続されている。
CPU61には、バス65を介して、入力インタフェース部66や出力インタフェース部67,通信部68,ドライブ69が接続されている。入力インタフェース部66には、キーボードやポインティングデバイス(例えばマウス等),マイクロホンなどの入力装置が接続される。また、出力インタフェース部67には、ディスプレイ、スピーカなどの出力装置が接続されている。CPU61は、入力インタフェース部66から入力される指令に対応して各種の処理を実行する。そして、CPU61は、処理の結果得られた画像や音声等を出力インタフェース部67から出力する。通信部68は、インターネット、その他のネットワークを介して外部の装置と通信する。この通信部68は画像センサ10から出力された画像データDVaの取り込みや、プログラムの取得等に用いられる。ドライブ69は、磁気ディスク,光ディスク,光磁気ディスク,半導体メモリなどが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部63に転送され、記憶される。
次に、図18のフローチャートを参照して、画像処理装置の動作について説明する。ステップST1において、CPU61は、画像センサ10によって生成された画像データDVaを、入力部や通信部等を介して取得し、この取得した画像データDVaを記憶部63に記憶させる。
ステップST2でCPU61は、動きボケ軽減画像を用いて動きベクトルの検出が可能であるか否かを判別する。ここで、記憶部63やRAM64に、動きボケ軽減画像の画像データが動きベクトルの検出に必要とされるフレーム数分だけ記憶されておらず、動きボケ軽減画像の画像データを用いた動きベクトルの検出が出来ないときにはステップST3に進む。また、動きボケ軽減画像の画像データが動きベクトルの検出に必要とされるフレーム数分記憶されており、この記憶されている画像データを用いて動きベクトルの検出が出来るときはステップST4に進む。
ステップST3でCPU61は、ステップST1で取得した画像データDVaを動きベクトル検出用データに設定してステップST5に進む。また、ステップST4でCPU61は、記憶されている動きボケ軽減画像の画像データDVmを動きベクトル検出用データに設定してステップST5に進む。
ステップST5でCPU61は、外部からの指示を受けて処理領域を決定する。
ステップST6でCPU61は、動きベクトル検出用データを用いて、ステップST5で決定された処理領域における前景に対応する動きオブジェクトOBfの動きベクトルを検出する。
ステップST7でCPU61は、露光期間パラメータを取得してステップST8に進み、ステップST6で検出した動きベクトルを露光期間パラメータに応じて補正してステップST9に進む。
ステップST9でCPU61は、補正された動きベクトルに基づき、動きオブジェクトOBfの動きボケを軽減するための動きボケ軽減オブジェクト画像生成処理を行い、動きオブジェクトOBfの動きボケを軽減させた画像データを生成する。図19は、動きボケ軽減オブジェクト画像生成処理を示すフローチャートである。
ステップST15でCPU61は、ステップST5で決定された処理領域について領域特定処理を行い、決定された処理領域内の画素が、背景領域,前景領域,カバードバックグランド領域,アンカバードバックグランド領域のいずれに属するか判別して領域情報を生成する。この領域情報の生成では、処理の対象がフレーム#nであるとき、フレーム#n-2,#n-1,#n,#n+1,#n+2の画像データを用いてフレーム間差分絶対値を算出する。このフレーム間差分絶対値が予め設定している閾値Thより大きいか否かによって、動き部分であるか静止部分であるかを判別し、この判別結果に基づいて領域の判別を行い領域情報を生成する。
ステップST16でCPU61は、混合比算出処理を行い、ステップST15で生成した領域情報を用いて、背景成分が含まれる割合を示す混合比αを処理領域内の各画素について算出しステップST17に進む。この混合比αの算出では、カバードバックグランド領域やアンカバードバックグランド領域の画素に対して、フレーム#n-1,#n,#n+1の画素値を用いて推定混合比αcを求める。また、背景領域は混合比αを「1」、前景領域は混合比αを「0」とする。
ステップST17でCPU61は、前景背景分離処理を行い、ステップST15で生成した領域情報とステップST16で算出した混合比αに基づき、前景成分のみから成る前景成分画像データと、背景成分のみから成る背景成分画像データとに処理領域内の画像データを分離する。すなわち、フレーム#nにおけるカバードバックグランド領域については上述の式(12)、アンカバードバックグランド領域については上述の式(15)の演算を行い前景成分を求めて、前景成分画像データと背景成分のみから成る背景成分画像データに分離する。
ステップST18でCPU61は、動きボケ調整処理を行い、ステップST8で得られた補正後の動きベクトルとステップST15で生成した領域情報を基に、前景成分画像データに含まれる1以上の画素を示す調整処理単位を決定して、ステップST17で分離した前景成分画像データに含まれる動きボケを低減させる。すなわち、動きベクトルMVCと処理領域情報HZと領域情報ARに基づき調整処理単位を設定して、この動きベクトルMVCおよび設定された調整処理単位を基に、モデル化を実行して正規方程式を作成する。この作成した正規方程式に画像データを設定して、掃き出し法(Gauss-Jordanの消去法)などの解法に基づく処理を行い、動きボケ軽減オブジェクト画像の画像データ、すなわち動きボケが軽減された前景成分画像データを生成する。
ステップST10でCPU61は、処理結果の出力処理を行い、ステップST17で分離した背景成分画像データに基づく画像上のステップST8で得られた動きベクトルに対応する時空間位置に、ステップST18で生成した動きボケの軽減されている前景成分画像データを合成して、処理結果である動きボケ軽減画像の画像データDVoutを生成して出力する。
ステップST11でCPU61は、動きボケの軽減処理を終了するか否かを判別する。ここで、次のフレームの画像について動きボケの軽減処理を行うときには、ステップST2に戻り、動きボケの軽減処理を行わないときは処理を終了する。このように、ソフトウェアによっても、動きボケの軽減処理を行うことができる。
また、上述の実施の形態では、動きボケを軽減させるオブジェクトの動きベクトルを求めるとともに、動きボケを軽減させるオブジェクトが含まれる処理領域を、静止領域と動き領域と混合領域等に区分して、動き領域と混合領域の画像データを用いて動きボケを軽減させる処理を行うものであるが、画素毎に動きベクトルを求めて動きボケ軽減画像生成処理を行うものとすれば、前景・背景・混合領域を特定せず動きボケの軽減を行うことができる。
この場合、動きベクトル検出部30では、注目画素の動きベクトルを求めて動きボケ軽減画像生成部40に供給する。また、注目画素の画素位置を示す処理領域情報HDを出力部に供給する。
図20は、前景・背景・混合領域を特定せず動きボケを軽減できる動きボケ軽減画像生成部の構成を示している。動きボケ軽減画像生成部40aの処理領域設定部48は、動きボケを軽減させる画像上の注目画素に対して、この注目画素に対する動きベクトルの動き方向に合わせて処理領域を設定して演算部49に通知する。また、注目画素の位置を出力部45aに供給する。図21は処理領域を示しており、注目画素を中心として動き方向に(2N+1)画素分の処理領域を設定する。図22は処理領域の設定例を示しており、動きボケを軽減させる動きオブジェクトOBfの画素に対して動きベクトルの方向が例えば矢印Bで示すように水平方向である場合は、図22Aに示すように水平方向に処理領域WAを設定する。また、動きベクトルの方向が斜め方向である場合は、図22Bに示したように、該当する角度方向に処理領域WAを設定する。ただし、斜め方向に処理領域を設定する際には、処理領域の画素位置に相当する画素値を、補間等によって求める。
ここで、処理領域内では、図23に示すように、実世界変数(Y-8,・・・,Y0,・・・,Y8) が時間混合されている。なお、図23は、動き量vが「v=5」であって処理領域を13画素(N=6:Nは注目画素に対する処理幅の画素数)とした場合である。
演算部49は、この処理領域に対して実世界推定を行い、推定した実世界の中心画素変数Y0のみを、動きボケ除去がなされた注目画素の画素値として出力する。
ここで、処理領域を構成する画素の画素値をX-N,X-N+1,・・・,X0,・・・,XN-1,XN とすると、式(50)に示すような(2N+1)個の混合式が成立する。なお、定数hは、動き量vを1/2倍したときの整数部分の値(小数点以下を切り捨てた値)を示している。
しかし、求めたい実世界変数(Y-N-h,・・・,Y0,・・・,YN+h)は、(2N+v)個ある。すなわち、変数の数よりも式の数が少ないので、式(50)に基づき実世界変数(Y-N-h,・・・,Y0,・・・,YN+h)を求めることができない。
そこで、空間相関を用いた拘束式である式(51)を用いることで、実世界変数よりも式の数を増やし、最小自乗法を用いて、実世界変数の値を求める。
Yt−Yt+1=0 (t=-N-h,・・・,0,・・・,N+h-1)・・・(51)
すなわち、式(50)で表される(2N+1)個の混合式と式(51)で表される(2N+v−1)個の拘束式を合わせた(4N+v)個の式を用いて、(2N+v)個の未知変数である実世界変数(Y-N-h,・・・,Y0,・・・,YN+h)を求める。
ここで、各式において発生する誤差の二乗和が最小となるような推定を行うことで、動きボケ軽減画像生成処理を行いながら、実世界での画素値の変動を小さくできる。
式(52)は、図23に示すように処理領域を設定した場合を示しており、式(50)と式(51)にそれぞれの式で発生する誤差を加えたものである。
この式(52)は式(53)として示すことができ、式(54)に示す誤差の二乗和Eを最小とするようなY(=Yi)は式(55)として求まる。なお、式(55)において、Tは転置行列であることを示している。
ここで、誤差の二乗和は式(56)で示すものとなり、この誤差の二乗和を偏微分して、式(57)に示すように偏微分値が0となるようにすれば、誤差の二乗和が最小となる式(55)を求めることができる。
この式(55)の線形結合を行うことで、実世界変数(Y-N-h,・・・,Y0,・・・,YN+h)をそれぞれ求めることができ、中心画素変数Y0の画素値を注目画素の画素値として出力する。例えば、演算部49は、動き量毎に予め求めておいた行列(ATA)-1ATを記憶しておき、動き量に応じた行列と処理領域内の画素の画素値に基づき、中心画素変換Y0の画素値を注目値として出力する。このような処理を処理領域内の全画素に対して行うことで、動きボケが軽減されている実世界変数を全画面、或いは、ユーザが指定した領域について求めることができる。
上述では、AY=X+eにおける誤差の二乗和Eを最小とするように、最小自乗法で実世界変数(Y-N-h,・・・,Y0,・・・,YN+h)を求めているが、式の数=変数の数が一致するように式(58)を作ることも可能である。この式をAY=Xとおき、Y=A-1Xと変形することにより、実世界変数(Y-N-h,・・・,Y0,・・・,YN+h)を求めることも可能である。
出力部45aでは、演算部49で求めた中心画素変数Y0の画素値を、動きベクトル検出部30から供給された処理領域情報HZで示された領域内に設定した注目画素の画素値とする。また、背景領域や混合領域であるため中心画素変数Y0を求めることができないときには、動きボケ軽減画像生成処理前の注目画素の画素値を用いて、画像データDVoutを生成する。
このように、動きオブジェクトの画素毎の動きが異なる場合でも、注目画素に対応する動きベクトルで、実世界を推定することが可能となり、精度の高い動きボケ軽減画像生成処理を行うことができる。例えば、動きオブジェクトが剛体と仮定できないような場合であっても、動きオブジェクトの画像の動きボケを軽減させることができる。
ところで、上述の実施の形態では、動きオブジェクトOBfの動きボケを軽減させて画像表示を行うものであり、図24に示すように動きオブジェクトOBfが図24A,図24B,図24Cの順に移動しても、この動きオブジェクトOBfを追従しながら、動きオブジェクトOBfの動きボケを軽減させて良好な画像を表示するものである。しかし、動きオブジェクトOBfを基準として、動きボケの軽減された動きオブジェクトOBfの画像が画面上の所定位置となるように画像の表示位置を制御することで、動きオブジェクトOBfを追従しているような画像表示を行うこともできる。
この場合、動きベクトル検出部30では、領域選択情報HAで示す領域内に設けた追尾点を動きベクトルMVに応じて移動させて、この移動後の追尾点を示す座標情報HGを出力部45に供給する。出力部45は、座標情報HGで示された追尾点が画面上の所定位置となるように画像データDVoutを生成する。このようにして、動きオブジェクトOBfを追従しているように画像表示を行うことができる。
さらに、動きオブジェクトOBfを基準として、すなわち領域選択情報HAで示す領域内に設けた追尾点を基準として、動きボケが軽減されている画像データDVoutを用いて拡大画像を生成して、追尾点が画面上の所定位置となるように表示すれば、図25A〜図25Cに示すように動きオブジェクトOBfが移動しても、図25D〜図25Fに示すように動きオブジェクトOBfを追従しながら動きオブジェクトOBfの拡大画像を出力できる。この場合、動きオブジェクトOBfの拡大画像が画像の画枠の大きさで表示されるので、追尾点が画面上の所定位置となるように表示画像を移動させても、画面上に表示の無い部分が生じてしまうことを防止できる。また、拡大画像の生成では、動きボケが軽減されている画像の画素値の繰り返しを行うことで拡大画像を生成できる。例えば各画素値を2回繰り返すことで、縦方向と横方向のサイズを2倍とした拡大画像を生成できる。また、隣接画素の平均値等を新たな画素値とすれば、この隣接画素間に新たな画素が設けられて拡大画像を生成できる。さらに、動きボケの軽減された画像を用いて空間解像度創造を行うことにより高精細で動きボケの少ない拡大画像を出力できる。以下、空間解像度創造を行って拡大画像を生成する場合について説明する。
図26は、画像処理装置の他の構成として、空間解像度創造を行い拡大画像の出力を可能とする場合を示している。なお、図26において、図5と対応する部分については同一符号を付し、詳細な説明は省略する。
動きベクトル検出部30で生成された座標情報HGは、空間解像度創造部70に供給される。また、動きボケ軽減画像生成部40から出力される動きボケ軽減画像の画像データDVoutは空間解像度創造部70に供給される。
図27は、空間解像度創造部の構成を示している。動きボケの軽減がなされた画像データDVoutは、空間解像度創造部70に供給される。
空間解像度創造部70は、画像データDVoutの注目画素をクラス分類するクラス分類部71、クラス分類部71でのクラス分類結果に応じた予測係数を出力する予測係数メモリ72、予測係数メモリ72から出力された予測係数と画像データDVoutとを用いて予測演算を行い、補間画素データDHを生成する予測演算部73、動きベクトル検出部30からの座標情報HGに基づき、オブジェクトOBjの画像を表示画素分読み出して拡大画像の画像データDVzを出力する拡大画像出力部74を有している。
画像データDVoutは、クラス分類部71のクラス画素群切り出し部711と予測演算部73の予測画素群切り出し部731と拡大画像出力部74に供給される。クラス画素群切り出し部711は、動きの程度を表わすためのクラス分類(動きクラス)の為に必要な画素を切り出す。このクラス画素群切り出し部711で切り出した画素群は、クラス値決定部712に供給される。クラス値決定部712は、クラス画素群切り出し部711で切り出した画素群の画素データについてフレーム間差分を算出し、例えばこのフレーム間差分の絶対値の平均値を、予め設定した複数の閾値と比較することでクラス分けを行い、クラス値CLを決定する。
予測係数メモリ72には、予測係数が記憶されており、クラス分類部71で決定されたクラス値CLに応じた予測係数KEを予測演算部73に供給する。
予測演算部73の予測画素群切り出し部731は、予測演算に使用する画素データ(すなわち予測タップ)TPを画像データDVoutから切り出して、演算処理部732に供給する。演算処理部732は、予測係数メモリ72から供給された予測係数KEと予測タップTPとを用いて、それぞれ線形一次演算を行うことにより、注目画素に対応する補間画素データDHを算出して拡大画像出力部74に供給する。
拡大画像出力部74は、画像データDVoutと補間画素データDHから、座標情報HGに基づく位置が画面上の所定位置となるように表示サイズ分の画素データを読み出すことで、拡大画像の画像データDVzを生成して出力する。
このように拡大画像の生成を行い、生成した補間画素データDHと画像データDVoutを用いて、動きボケの軽減された高画質の拡大画像を出力できる。例えば、補間画素データDHを生成して水平方向や垂直方向の画素数を2倍とすれば、動きオブジェクトOBfを縦横2倍として、動きボケを軽減された画像を高画質に出力できる。
なお、予測係数メモリ72に記憶されている予測係数は、図28に示す学習装置を用いて作成できる。なお図28において、図27と対応する部分については同一符号を付している。
学習装置75は、クラス分類部71と予測係数メモリ72と係数算出部76を有している。クラス分類部71と係数算出部76には、教師画像の画素数を削減することにより生成された生徒画像の画像データGSが供給される。
クラス分類部71は、生徒画像の画像データGSから、クラス画素群切り出し部711によって、クラス分類を行うために必要な画素を切り出し、この切り出した画素群の画素データを用いてクラス分けを行い、クラス値を決定する。
係数算出部76の生徒画素群切り出し部761は、予測係数の算出に使用する画素データを生徒画像の画像データGSから切り出して、予測係数学習部762に供給する。
予測係数学習部762は、クラス分類部71から供給されたクラス値で示されたクラス毎に、教師画像の画像データGTと生徒画素群切り出し部761からの画素データと予測係数を用いて正規方程式を生成する。さらに、正規方程式を掃き出し法などの一般的な行列解法を用いて予測係数についてそれぞれ解き、得られた係数を予測係数メモリ72に格納する。
図29,30は、空間解像度創造処理を合わせて行う場合の動作を示すフローチャートである。
ステップST21でCPU61は、画像データDVaを取得してステップST22に進む。
ステップST22でCPU61は、処理領域を設定してステップST23に進む。
ステップST23でCPU61は、変数iを「i=0」に設定してステップST24に進む。
ステップST24でCPU61は、変数iが「i≠0」であるか否かを判別する。ここで「i≠0」でないときはステップST25に進み、「i≠0」であるときはステップST29に進む。
ステップST25でCPU61は、ステップST22で設定した処理領域について動きベクトルを検出してステップST26に進む。
ステップST26でCPU61は、露光期間パラメータを取得してステップST27に進み、ステップST25で検出した動きベクトルを露光期間パラメータに応じて補正してステップST28に進む。
ステップST28でCPU61は、補正後の動きベクトルと画像データDVaを用いて図19に示す動きボケ軽減オブジェクト画像生成処理を行い、動きボケが軽減された動きオブジェクトの画像を生成してステップST33に進む。
ステップST33でCPU61は、処理結果の記憶処理を行い、図18のステップST10と同様にして背景成分データに、ステップST27で求められた動きベクトルに対応する時空間位置に、動きボケを軽減させた前景画像の画像データを合成して、処理結果である画像データDVoutを生成する。さらに生成した処理結果である画像データDVoutを記憶部63あるいはRAM64に記憶させてステップST34に進む。
ステップST34でCPU61は、動きオブジェクトの動きに合わせて処理領域を移動させて追尾後処理領域の設定を行いステップST35に進む。この追尾後処理領域の設定では、例えば動きオブジェクトOBfの動きベクトルMVを検出して行う。あるいは、ステップST25やステップST29で検出されている動きベクトルを用いて行う。
ステップST35でCPU61は、変数iを「i=i+1」に設定してステップST36に進む。
ステップST36でCPU61は、処理結果が動きベクトルの検出可能分だけ記憶された否かを判別する。ここで、動きベクトルの検出が可能であるフレーム数分だけ動きボケが軽減された画像データDVoutが記憶されていないときにはステップST24に戻る。
ステップST36からステップST24に戻り、ステップST24の処理がCPU61で行われるときは、変数iが「i≠0」であることからステップST29に進み、ステップST34で設定された追尾後処理領域について動きベクトルを検出してステップST30に進む。
CPU61は、ステップST26〜28と同様な処理をステップST30〜32で行いステップST33に進む。ステップST33からの処理を繰り返し、処理結果が動きベクトルの検出可能分だけ記憶されたことをステップST36でCPU61が判別するとステップST36から図30のステップST37に進む。
ステップST37でCPU61は、変数iを「i=0」に設定してステップST38に進む。
ステップST38でCPU61は、変数iが「i≠0」であるか否かを判別し「i≠0」でないときにはステップST39に進み、「i≠0」であるときは、ステップST43に進む。
ステップST39でCPU61は、記憶されている処理結果を用いてステップST22で設定された処理領域について動きベクトルを検出してステップST40に進む。
ステップST40でCPU61は、露光期間パラメータを取得してステップST41に進みステップST39で検出した動きベクトルを露光期間パラメータに応じて補正してステップST42に進む。
ステップST42でCPU61は、補正後の動きベクトルと画像データDVaを用いて動きボケ軽減オブジェクト画像生成処理を行い、動きボケが軽減された動きオブジェクトの画像を生成してステップST47に進む。
ステップST47でCPU61は、処理結果の出力と記憶処理を行い、ステップST33と同様にして処理結果である画像データDVoutを生成して出力する。また、生成した画像データDVoutを記憶部63あるいはRAM64に記憶させる。
ステップST48でCPU61は、ステップST47で生成した画像データDVoutを用いて空間解像度創造処理を行い、座標情報HGで示された位置が画面上の一定位置となるように表示画面サイズの拡大画像の画像データDVzを生成する。
ステップST49でCPU61は、ステップST34と同様にして追尾後処理領域の設定を行いステップST50に進む。
ステップST50でCPU61は、変数iを「i=i+1」に設定してステップST51に進む。
ステップST51でCPU61は、動作の終了であるか否かを判別する。ここで、動作の終了でないときはステップST38に戻る。
ステップST51からステップST38に戻り、ステップST38の処理がCPU61で行われるとき、変数iが「i≠0」であることからステップST43に進み、ステップST43では、記憶されている処理結果を用いて追尾後処理領域について動きベクトルを検出してステップST44に進む。
CPU61は、ステップST40〜42と同様な処理をステップST44〜46で行いステップST47に進み、ステップST47からの処理を行う。その後、画像データDVaの終了あるいは動作の終了操作が行われたときは、ステップST51で動作の終了と判別して処理を終了する。
また、動きボケが軽減された画像データDVoutを用いて空間解像度創造だけでなく、特開2002−199349号公報で示されている時間解像度創造を行い、時間解像度の高い画像を高画質に生成することもできる。図31は、時間解像度創造を行いフレームレートの変換を可能とする場合の画像処理装置の構成を示している。なお、図31において、図5と対応する部分については同一符号を付し、詳細な説明は省略する。
時間解像度創造前後におけるフレームレートを示す周波数情報HFは、動きベクトル割り付け部80と時間解像度創造部90に供給される。また、動きベクトル検出部30で生成された動きベクトルMVCは、動きボケ軽減画像生成部40と動きベクトル割り付け部80に供給される。さらに、メモリ55から読み出された画像データDVmは、動きベクトル検出部30だけでなく画像データ選択部85にも供給される。
動きベクトル割り付け部80は、供給された周波数情報HFに基づき、新たに生成するフレーム画像の動きベクトルMVDを、動きベクトルMVに基づいて生成する。例えば、新たに生成するフレーム画像の画素に対して動きベクトルMVを用いて動きベクトルの割り付けを行い、割り付け後の動きベクトルMVDを時間解像度創造部90に供給する。
周波数情報HFは、フレーム周波数変換のレートを示す情報であり、例えば倍速変換や2.5倍速変換あるいは24P画像から60P画像に変換するいわゆる24−60変換などを示す情報である。
ここで、動きベクトル割り付け処理について、例えば周波数情報HFがフレーム倍速変換を示す情報である場合を説明する。この場合、図32に示すように画像データDVaの2フレームRFa,RFb間に新たに2フレームRFn0,RFn1の画像を生成する。この新たに生成する2フレームの画像を注目フレームとする。動きベクトル割り付け部80は、動きベクトル検出部30から供給された画像データDVaの動きベクトルMVから、注目フレームの各画素について、交差する動きベクトルを検出して、検出した動きベクトルを注目フレームの画像の動きベクトルMVCとして割り付ける。例えば注目フレームRFn0の画素PGn0xにおいて、この画素PGn0xに対する画素領域PWを動きベクトルMV-jが交差するとき、この動きベクトルMV-jを画素PGn0xの動きベクトルMVC-n0xとして割り付ける。また、交差する動きベクトルが複数であるときは、交差する複数の動きベクトルを平均化して割り付ける。さらに、交差する動きベクトルが検出できないときは、周辺画素や近距離の画素に割り付けられた動きベクトルを平均化したり、重み付けしたのち平均化して割り付ける。このようにして、注目フレームの全ての画素に動きベクトルを割り付ける。
画像データ選択部85は、画像センサ10から供給された画像データDVaあるいはメモリ55から読み出された画像データDVmのいずれかを選択して、画像データDVsとして時間解像度創造部90に供給する。
時間解像度創造部90は、画像データDVsと動きベクトルMVDおよび周波数情報HFに基づいて、所望のフレームレートの画像データDVtを生成する。
図33は、時間解像度創造部の構成を示している。時間解像度創造部90は、画像データDVsの注目画素をクラス分類するクラス分類部91、クラス分類部91でのクラス分類結果に応じた予測係数を出力する予測係数メモリ92、予測係数メモリ92から出力された予測係数と画像データDVsとを用いて予測演算を行い、フレーム補間画素データを生成する予測演算部93を有している。
画像データDVsは、クラス分類部91のクラス画素群切り出し部913と予測演算部93の予測画素群切り出し部931に供給される。周波数情報HFは、時間モード値決定部911に供給される。また、生成するフレーム上の注目画素に割り付けられた動きベクトルMVDは、タップ中心位置決定部912と位置モード値決定部915に供給される。
時間モード値決定部911は、供給された周波数情報HFに基づき、生成するフレームの時間位置を示す時間モード値TMを決定して、タップ中心位置決定部912と位置モード値決定部915および予測係数メモリ92に供給する。図34は、時間モード値決定部911の動作を説明するための図である。時間モード値決定部911は、変換前後の周波数から生成する注目フレームの時間位置に関する時間モード値を決定する。
図34Aは、フレーム倍速変換する場合を示す。この場合では、上述のように画像データDVaの2フレームRFa,RFb間に注目フレームである2フレームRFn0,RFn1を生成する。そして、2フレームRFn0,RFn1のどちらを生成するかによって、モード0およびモード1が規定される。例えば2フレーム間で、より時間的に前の注目フレームRFn0上の画素値を生成する場合には、時間モード値が0とされ、他方の注目フレームRFn1上の画素値を生成する場合には、時間モード値が1とされる。また、図34Bは、フレーム周波数を2.5倍にする変換する場合を示しており、4種類の時間的位置の注目フレーム上の画素値を生成することになるので、どのフレーム位置の係数を生成するかによって、時間モード値が0から3までの何れかの値をとる。
タップ中心位置決定部912は、動きベクトルMVDを用いて、時間モード値TMで示された注目フレーム上における注目画素の動きベクトルを決定する。すなわち、動きベクトル割り付け部80によって、新たに生成するフレーム画像の画素に対して動きベクトルの割り付けが行われているときは、注目画素に対応する動きベクトルを選択する。この決定された動きベクトルに基づき、注目フレーム上の注目画素に対応する画像データDVsの前後2フレーム上の位置を検出し、タップ中心位置TCとして設定する。
クラス画素群切り出し部913は、このタップ中心位置TCを基準として、注目フレームに対する画像データDVsの前後2フレームから、動きの程度を表わすためのクラス分類の為に必要な画素を切り出してクラス値決定部914に供給する。
図35は、上述したタップ中心位置TCに基づいて、クラス画素群切り出し部913によって取り出されるクラス画素群のいくつかの例を示している。なお、図ではタップ中心位置TCの画素を黒丸、タップ中心位置TCの周辺に位置しておりクラス画素として使用される画素を×が記載された丸印で示している。このようなクラス画素群を注目フレームに対する画像データDVsの前後2フレームから切り出す。
クラス値決定部914は、クラス画素群切り出し部913で切り出した画素群の画素データに対してフレーム間差分を算出し、例えばこのフレーム間差分の絶対値の平均値を、予め設定した複数の閾値と比較することでクラス分けを行い、クラス値CMを決定する。
図36は、クラス値の決定処理を説明するための図である。クラス値決定部914は、切り出したクラス画素群の画素値を例えば1ビットADRC(Adaptive Dynamic Range Coding)によって符号化し、符号化の結果(ビット列)を整数としてみた値をクラス値とする。
ここで、画素値が8ビットで表現されている時には、画素値として0から255までの値を取りうる。図36では、注目フレームに対する画像データDVsの前後2フレームから、それぞれ5個の画素を切り出し、合計10画素によってクラス画素群が構成されているものとする。この10画素のクラス画素値の最大値と最小値の差がダイナミックレンジDRである。1ビットADRCであるので、ダイナミックレンジDRが1/2とされた値が中値CLVとされ、この中値CLVに対するクラス画素値の大小関係が調べられる。クラス画素値が中値CLVより小であれば、"0" と符号化され、クラス画素値が中値CLV以上であれば、"1"と符号化される。図36の例では、1ビットADRCの結果の符号化値のビット列が(0000100001)となる。このビット列を整数としてみた値(=33)がクラス値とされる。
クラス数を削減するために、符号化結果のビット列をビット毎に反転させた値をクラス値としても良い。この場合は、クラス数は半分となる。また、タップ配置が左右/上下に対称な場合、画素値を並び替えて同様の計算を行なって、クラス数をそれぞれ半分としても良い。
位置モード値決定部915は、タップ中心位置TC,動きベクトルMVDおよび時間モード値TMに基づいて位置モード値HMを決定して、予測係数メモリ92に供給する。タップ中心位置TCは、上述のように注目フレーム上の注目画素と交差する動きベクトルと注目画素の位置に基づいて設定されるものであり、各画素の中心を示す位置を整数格子点位置とするとき、タップ中心位置TCは整数格子点位置に対して小数以下(画素間距離以下)のずれを有する場合が生ずる。従って、位置モード値決定部915は、この小数以下のずれに基づいたクラス分けを行って位置モード値HMを決定する。ここで、例えばフレーム周波数を5倍とし、注目画素と交差する動きベクトルは1つであるとした場合、整数格子点位置に対して小数以下のずれは、0,0.2,0.4,0.6,0.8の5通りのパターンとなる。この小数以下のずれ量を水平方向および垂直方向毎に考えると、5×5=25通りの組み合わせが考えられることから、小数以下のずれがいずれの組み合わせに該当するかによって25通りの位置モード値HMを決定する。
予測係数メモリ92は、供給された時間モード値TM、位置モード値HM、クラス値CMの組み合わせに対応する予測係数KFを読み出して予測演算部93の演算処理部932に供給する。
予測演算部93の予測画素群切り出し部931は、タップ中心位置決定部912で決定されたタップ中心位置TCを基準として、予測演算に使用する予測タップTFを変換前の画像データDVsから切り出して、演算処理部932に供給する。演算処理部932は、予測係数メモリ92から供給された予測係数KFと予測タップTFとを用いて、線形一次演算を行うことにより、変換後の画像データDVtを生成する。
このように動きボケ軽減画像生成処理後の画像データDVmを用いて動きベクトルの検出を行い、検出した動きベクトルを用いて時間解像度創造を行うことにより、フレームレート変換後の画像における動きを精度良く表示できる。さらに、画像データ選択部85では、画像データDVsとして画像データDVmを選択すれば、動きボケが軽減された画像を用いて、新たなフレームの画像を生成できる。例えば、画像データDVoutが24フレーム/秒であるとき、時間解像度創造を行い、60フレーム/秒で動きボケの軽減された画像の画像データDVtを生成できる。また、画像データDVsとして画像データDVaを選択すれば、画像データDVtは、画像センサ10で得られた画像のフレームレートを変換した画像となる。
図37は、時間解像度創造処理をソフトウェアで実現する場合のフローチャートである。ステップST61でCPU61は、周波数情報HFに基づき時間モード値TMを決定する。ステップST62でCPU61は、タップ中心位置決定処理を行う。
図38は、タップ中心位置決定処理を示すフローチャートである。ステップST621でCPU61は、注目フレーム上の注目画素位置を決定する。ステップST622でCPU61は、注目画素に対応する位置の算出を行う。すなわち、時間モード値TMで示される注目フレーム上に設定された注目画素の動きベクトルに基づき、注目フレームに対する画像データDVsの前後2フレーム上の注目画素に対応する位置を小数精度で算出する。ステップST623は、算出した注目画素に対応する位置に最も近接した画素位置をタップ中心位置TCとして決定する。
タップ中心位置決定処理が終了してステップST63に進むと、ステップST63でCPU61は、位置モード値HMを決定する。この位置モード値HMの決定では、上述のステップST622で注目画素に対応する位置を小数精度で算出して、この位置と最も近接した画素位置との差分を位置モード値HMに変換する。
ステップST64でCPU61は、ステップST62で決定したタップ中心位置TCに基づいてクラス画素群の切り出しを行い、ステップST65でCPU61は、切り出したクラス画素群に基づいてクラス値CMを決定する。
ステップST66でCPU61は、ステップST62で決定したタップ中心位置TCに基づき予測画素群の切り出しを行う。ステップST67でCPU61は、クラス値CMと位置モード値HMと時間モード値TMに基づいた予測係数を読み出す。ステップST68でCPU61は、予測画素群の複数の画素と予測係数の線型1次結合(予測演算)によって、注目フレームの注目画素のデータを生成する。ステップST69でCPU61は、生成した注目画素のデータを画像データDVtとして出力する。
ステップST70でCPU61は、注目フレーム内全画素を処理したか否かが決定される。ここで、処理が終了していないならば、ステップST62に戻り、フレーム内全画素を処理したと判断されると処理を終了する。
予測係数メモリ92に記憶されている予測係数は、図39に示す学習装置を用いて作成できる。なお、図39において、図33と対応する部分については同一符号を付している。
まず、教師画像(注目フレームの画像に相当)の画像データGTを用いてフレームレート変換を行い生徒画像(画像データDVsの画像に相当)の画像データGSを生成し、生徒画像の画像データGSをクラス分類部94と係数算出部95に供給する。
クラス分類部94の動きベクトル検出部941は、所定数のフレーム間での動きベクトルを検出して、タップ中心位置決定部912と位置モード値決定部915に供給する。タップ中心位置決定部912は、上述のようにタップ中心位置を決定して、クラス画素群切り出し部913と生徒画素群切り出し部951に供給する。
生徒画素群切り出し部951は、タップ中心位置に基づいて、複数の生徒画素からなる生徒画素群を画像データGSから切り出す。切り出された生徒画素群は、予測係数学習部952に供給される。
クラス画素群切り出し部913は、タップ中心位置に基づいて、複数の生徒画素からなるクラス画素群を切り出す。切り出されたクラス画素群はクラス値決定部914に供給される。クラス値決定部914は、上述のようにクラス画素群からクラス値を決定する。この決定されたクラス値は、予測係数学習部952に供給される。
位置モード値決定部915は、上述のようにタップ中心位置、動きベクトルおよび時間モード値に基づいて位置モード値を決定して予測係数学習部952に供給する。さらに、時間モード値に基づいて教師画素切り出し部942が教師画素を切り出す。切り出された教師画素は予測係数学習部952に供給される。
予測係数学習部952は、供給された時間モード値、位置モード値、クラス値、生徒画素群、教師画素を使用して、生徒画素群から教師画素を予測するための予測係数を学習する。予測係数の学習では、複数の予測係数と生徒画素との線型1次演算によって予測値を推定した時に、予測値と教師画像中の真値との誤差の二乗和を最小とするように、予測係数を定める。実際的な計算方法としては、誤差の二乗和に関する式を偏微分し、偏微分値が0となるように予測係数が定められる。その場合に、上述のように正規方程式がたてられ、正規方程式が掃き出し法等の一般的な行列解法にしたがって解かれ、予測係数が算出される。この算出された予測係数を予測係数メモリ92に格納する。
図40は、予測係数の学習処理をソフトウェアで行う場合のフローチャートを示している。ステップST81でCPU61は、教師画像の画像データを用いてフレームレート変換を行い生徒画像の画像データを生成する。ステップST82でCPU61は、周波数情報に基づいて時間モード値を決定する。
ステップST83でCPU61は、教師画像の動きベクトルを検出し、ステップST84でCPU61は、時間モード値と動きベクトルに基づいてタップ中心位置を決定する。
ステップST85でCPU61は、動きベクトルやタップ中心位置および時間モード値から位置モード値を決定する。
ステップST86でCPU61は、タップ中心位置の情報に基づいて生徒画像からクラス画素群を切り出す。ステップST87でCPU61は、クラス画素群に基づいてクラス値を決定する。ステップST88でCPU61は、タップ中心位置の情報に基づいて生徒画像から生徒画素群を切り出す。ステップST89でCPU61は、教師画像から教師画素を切り出す。
ステップST90からステップST95までの処理は、最小二乗法に基づく予測係数学習処理である。すなわち、複数の予測係数と生徒画素との線型1次結合によって予測値を推定した時に、予測値と教師画像中の真値との誤差の二乗和を最小とするように、予測係数を定める。実際的な計算方法としては、誤差の二乗和に関する式を偏微分し、偏微分値が0となるように予測係数が定められる。その場合に正規方程式がたてられ、正規方程式が掃き出し法等の一般的な行列解法にしたがって解かれ、予測係数が算出される。
ステップST90でCPU61は、各クラス毎の正規方程式にデータを足し込む処理を行う。ステップST91でCPU61は、フレーム内全画素を処理したか否かを判別する。ここで処理が終了していないならば、ステップST84(タップ中心位置決定)に戻る。フレーム内全画素を処理したと判断されると、ステップST92に進む。ステップST92でCPU61は、画像内の全フレームの処理を終了したか否かを判別する。ここで、処理が終了していないと判別したときはステップST82に戻り、処理が終了していると判別したときはステップST93に進む。ステップST93でCPU61は、入力全画像を処理したか否かを判別する。ここで、処理が終了していないと判別したときはステップST81に戻る。また、全画像の処理が完了したと判別したときはステップST94に進む。ステップST94でCPU61は、掃き出し法によって正規方程式を解き、求められた予測係数をステップST95で出力して予測係数メモリ92に格納させる。
図41は、上述した時間解像度創造処理を合わせて行う場合の動作を示すフローチャートである。
ステップST101でCPU61は、動きベクトル軽減処理の処理結果が動きベクトルの検出可能分だけ記憶されたか否かを判別する。ここで、動きベクトルの検出可能分だけ処理結果が記憶されていないときにはステップST101に戻り、動きベクトルの検出可能分だけ処理結果が記憶されたときにはステップST102に進む。
ステップST102でCPU61は、記憶されている処理結果を用いて動きベクトルを検出してステップST103に進む。
ステップST103でCPU61は、検出した動きベクトルを用いて新たに生成するフレーム上の各画素に対して動きベクトルの割り付けを行いステップST104に進む。
ステップST104でCPU61は、動きベクトル軽減処理を行う際に取得した露光期間パラメータに応じて動きベクトルを補正してステップST105に進む。
ステップST105でCPU61は、時間解像度創造処理を行い、記憶されている処理結果とステップST104で求めた動きベクトルに基づき時間解像度創造後のフレームレートである画像データDVtを生成してステップST106に進む。
ステップST106で、画像データDVaが終了していないとき、あるいは動作の終了操作が行われていないときはステップST102に戻り、画像データDVaの終了あるいは動作の終了操作が行われたときは、動作の終了と判別して処理を終了する。
このように、動きボケ軽減画像を用いることで、動きベクトルを精度良く検出することができ、検出された動きベクトルを用いて動きボケの少ない時間解像度の高い画像を得ることができる。
10・・・画像センサ、20・・・画像処理装置、30,941・・・動きベクトル検出部、31・・・処理領域設定部、32・・・画像データ選択部、33・・・検出部、34・・・動きベクトル補正部、40,40a・・・動きボケ軽減画像生成部、41・・・領域特定部、42・・・混合比算出部、43・・・前景背景分離部、44・・・動きボケ調整部、45,45a・・・出力部、48・・・処理領域設定部、49・・・演算部、55・・・メモリ、61・・・CPU(Central Processing Unit)、62・・・ROM(Read Only Memory)、63・・・記憶部、64・・・RAM(Random Access Memory)、65・・・バス、66・・・入力インタフェース部、67・・・出力インタフェース部、68・・・通信部、69・・・ドライブ、70・・・空間解像度創造部、71,91,94・・・クラス分類部、72,92・・・予測係数メモリ、73,93・・・予測演算部、74・・・拡大画像出力部、75・・・学習装置、76,95・・・係数算出部、80・・・動きベクトル割り付け部、85・・・画像データ選択部、90・・・時間解像度創造部、411・・・画像メモリ、412・・・静動判定部、413・・・領域判定、421,422・・・推定混合比処理部、423・・・混合比決定部、431・・・分離部、432,433・・・スイッチ部、434,435・・・合成部、441・・・処理単位決定部、442・・・モデル化部、443・・・方程式生成部、444・・・足し込み部、445・・・演算部、711,913・・・クラス画素群切り出し部、712,914・・・クラス値決定部、731,931・・・予測画素群切り出し部、732,932・・・演算処理部、761,951・・・生徒画素群切り出し部、762,952・・・予測係数学習部、911・・・時間モード値決定部、912・・・タップ中心位置決定部、915・・・位置モード値決定部、942・・・教師画像切り出し部