(57)【特許請求の範囲】
【請求項１】
撮像部から撮影情報を検出する撮影情報検出部と、
前記撮影情報内の前記撮像部の動き方向に基づき画像の全画面動き方向を検出する動き検出部と、
予測される注目画像内の注目画素に対応する、注目画像および周辺画像のうち少なくとも何れか一方の処理領域を設定する処理領域設定部と、
前記動き方向に対応する動きボケ除去用の処理係数を設定する処理係数設定部と、
前記処理領域内の画素の画素値と、前記処理係数とに基づき、前記注目画素に対応する画素値を生成する画素値生成部とを備える画像処理装置。
【請求項２】
前記撮影情報に基づき、動きボケ量を検出する動きボケ量検出部を備える請求項１記載の画像処理装置。
【請求項３】
前記処理領域設定部は、前記動きボケ量に応じて、前記処理領域の大きさを設定する請求項２記載の画像処理装置。
【請求項４】
前記処理領域設定部は、前記動き方向に応じて、前記処理領域の方向を決定する請求項２記載の画像処理装置。
【請求項５】
前記動き検出部は、前記撮影情報に基づき前記画像の動きベクトルを検出し、
前記動きボケ量検出部は、前記撮影情報に基づき露光時間比率を検出して、前記動きベクトルと前記露光時間比率とに基づき、動きボケ量を検出し、
前記処理係数設定部は、前記動きボケ量に基づき、前記動きボケ除去用の処理係数を設定する請求項２記載の画像処理装置。
【請求項６】
前記処理領域設定部は、前記動きボケ量に基づき前記処理領域の大きさを設定し、前記動きベクトルの方向に基づき前記処理領域の方向を設定する請求項５記載の画像処理装置。
【請求項７】
前記動き検出部は、前記画像の動きベクトルを検出し、
前記動きボケ量検出部は、前記動きベクトルの動き量を前記動きボケ量として検出する請求項１記載の画像処理装置。
【請求項８】
前記撮影情報内のガンマ値に基づき、前記画像に対して逆ガンマ処理を施す逆ガンマ処理部と、
前記画素値生成部により生成された画素値からなる処理画像に対してガンマ処理を施すガンマ処理部とを備える請求項１記載の画像処理装置。
【請求項９】
撮像部から撮影情報を検出する撮影情報検出工程と、
前記撮影情報内の前記撮像部の動き方向に基づき画像の全画面動き方向を検出する動き検出工程と、
予測される注目画像内の注目画素に対応する、注目画像および周辺画像のうち少なくとも何れか一方の処理領域を設定する処理領域設定工程と、
前記動き方向に対応する動きボケ除去用の処理係数を設定する処理係数設定工程と、
前記処理領域内の画素の画素値と、前記処理係数とに基づき、前記注目画素に対応する画素値を生成する画素値生成工程とを備える画像処理方法。
【請求項１０】
コンピュータに、
撮像部から撮影情報を検出する撮影情報検出ステップと、
前記撮影情報内の前記撮像部の動き方向に基づき画像の全画面動き方向を検出する動き検出ステップと、
予測される注目画像内の注目画素に対応する、注目画像および周辺画像のうち少なくとも何れか一方の処理領域を設定する処理領域設定ステップと、
前記動き方向に対応する動きボケ除去用の処理係数を設定する処理係数設定ステップと、
前記処理領域内の画素の画素値と、前記処理係数とに基づき、前記注目画素に対応する画素値を生成する画素値生成ステップとを実行させる画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置と画像処理方法および画像処理プログラムに関する。詳しくは、撮像部から撮影情報を検出して、この撮影情報内の撮像部の動き方向に基づき画像の全画面動き方向を検出する。また、予測される注目画像内の注目画素に対応する、注目画像および周辺画像のうち少なくとも何れか一方の処理領域と、検出した動き方向に対応する動きボケ除去用の処理係数を設定し、処理領域内の画素の画素値と、処理係数とに基づき、注目画素に対応する画素値を生成するものである。
【背景技術】
【０００２】
従来より、現実世界における事象を、センサを用いてデータ化することが行われている。このセンサを用いて取得されたデータは、現実世界の情報（例えば、光）が、現実世界より低い次元の時空間に射影して得られた情報である。このため、射影して得られた情報は、射影により発生する歪みを有している。例えば、静止している背景の前で移動する物体をビデオカメラで撮像して画像信号としてデータ化する場合、現実世界の情報をサンプリングしてデータ化することから、画像信号に基づいて表示される画像では、射影により発生する歪みとして、動いている物体がボケてしまう動きボケが生じる。
【０００３】
このため、特開２００１−２５０１１９号公報（対応米国出願番号：０９／８３０８５８、対応欧州特許公開番号：ＥＰ１１６４５４５）で開示されているように、例えば、入力画像に含まれる前景のオブジェクトに対応する画像オブジェクトの輪郭を検出することで、前景のオブジェクトに対応する画像オブジェクトを粗く抽出し、この粗く抽出された前景のオブジェクトに対応する画像オブジェクトの動きベクトルを検出して、検出した動きベクトルおよび動きベクトルの位置情報を用いて動きボケの除去が行われている。
【発明の開示】
【０００４】
ところで、動きボケ除去処理においては、動きベクトルを精度良く検出しないと、動きボケを精度良く除去することができない。また、時間方向の情報も使用して処理精度を向上させるものとした場合、例えばシャッタ動作が行われて露光時間が１フレーム期間よりも小さくなると、物体の動き量と入力画像のボケ量とは必ずしも一致しない。このため、露光時間の割合である露光時間比率を精度良く検出しないと入力画像のボケ量を正しく検出できず動きボケを精度良く除去することができなくなってしまう。
【０００５】
そこで、この発明では、動きボケ除去処理を精度良く行うことができる画像処理装置と画像処理方法および画像処理プログラムを提供するものである。
【０００６】
この発明に係る画像処理装置は、撮像部から撮影情報を検出する撮影情報検出部と、撮影情報内の撮像部の動き方向に基づき画像の全画面動き方向を検出する動き検出部と、予測される注目画像内の注目画素に対応する、注目画像および周辺画像のうち少なくとも何れか一方の処理領域を設定する処理領域設定部と、動き方向に対応する動きボケ除去用の処理係数を設定する処理係数設定部と、処理領域内の画素の画素値と、処理係数とに基づき、注目画素に対応する画素値を生成する画素値生成部とを備えるものである。
【０００７】
この発明に係る画像処理方法は、撮像部から撮影情報を検出する撮影情報検出工程と、撮影情報内の撮像部の動き方向に基づき画像の全画面動き方向を検出する動き検出工程と、予測される注目画像内の注目画素に対応する、注目画像および周辺画像のうち少なくとも何れか一方の処理領域を設定する処理領域設定工程と、動き方向に対応する動きボケ除去用の処理係数を設定する処理係数設定工程と、処理領域内の画素の画素値と、処理係数とに基づき、注目画素に対応する画素値を生成する画素値生成工程とを備えるものである。
【０００８】
この発明に係る画像処理プログラムは、コンピュータに、撮像部から撮影情報を検出する撮影情報検出ステップと、撮影情報内の撮像部の動き方向に基づき画像の全画面動き方向を検出する動き検出ステップと、予測される注目画像内の注目画素に対応する、注目画像および周辺画像のうち少なくとも何れか一方の処理領域を設定する処理領域設定ステップと、動き方向に対応する動きボケ除去用の処理係数を設定する処理係数設定ステップと、処理領域内の画素の画素値と、処理係数とに基づき、注目画素に対応する画素値を生成する画素値生成ステップとを実行させるものである。
【０００９】
この発明においては、露光時間や撮像部の動き、ガンマ値等を撮影情報として検出して、ガンマ値に基づき撮像部から供給された画像の逆ガンマ処理が行われる。また、撮影情報に基づき画像の動きベクトルや露光時間比率が検出されて、動きベクトルと露光時間比率に基づき動きボケ量が検出される。この動きボケ量に基づき、動きボケ除去用の処理係数が設定される。さらに、逆ガンマ処理後の画像を用いて、予測される注目画像内の注目画素に対応する、注目画像および周辺画像のうち少なくとも何れか一方に処理領域が設定されて、動きボケ除去用の処理係数と処理領域内の画素の画素値から注目画素に対応する画素値が生成される。この生成された画素値は、撮影情報のガンマ値に基づいてガンマ処理されたのち出力される。
【発明の効果】
【００１０】
この発明によれば、撮像部から撮影情報が検出されて、この撮影情報内の撮像部の動き方向に基づき画像の全画面動き方向が検出される。また、予測される注目画像内の注目画素に対応する、注目画像および周辺画像のうち少なくとも何れか一方に処理領域が設定される。さらに、動き方向に対応する動きボケ除去用の処理係数が設定されて、処理領域内の画素の画素値と処理係数とに基づき、注目画素に対応する画素値が生成される。
【００１１】
このように、撮像部から撮影情報を検出して、この撮影情報を用いて動きボケ除去が行われるので、実世界信号を精度良く構築することができる。また、注目画像や周辺画像に処理領域を設定することで、時間方向の情報を用いた動きボケ除去が可能となり、さらに精度良く実世界信号を構築できる。
【００１２】
また、動きボケ量に応じて処理領域の大きさ、動き方向に応じて処理領域の方向、動きボケ量に応じて処理係数の設定が行われるので、画像の動きに応じた動きボケ除去を行うことができる。さらに、撮影情報に基づき逆ガンマ処理を施した画像を用いて動きボケ除去が行われて、生成された画素値に対してガンマ処理を施してから出力されるので、撮像部からガンマ処理された画像が出力されても、正しく動きボケ除去を行うことができる。
【発明を実施するための最良の形態】
【００１３】
以下、図を参照しながら、この発明の実施の形態について説明する。図１は、本発明を適用するシステムの構成を示すブロック図である。撮像部１０は現実社会を撮像した画像信号ＤＶaを生成して画像処理装置２０に供給する。画像処理装置２０は、供給された入力画像の画像信号ＤＶaに埋もれてしまった情報の抽出を行い、埋もれてしまった情報を抽出した画像信号ＤＶoutを生成して出力する。なお、画像処理装置２０は、外部から供給された種々の情報ＥＴを用いて、画像信号ＤＶaに埋もれてしまった情報の抽出を行うこともできるようになされている。
【００１４】
撮像部１０は、固体撮像素子であるＣＣＤ（Charge-Coupled Device）エリアセンサやＭＯＳエリアセンサを備えたビデオカメラなどで構成されており、現実社会を撮像する。例えば、図２に示すように、撮像部１０と背景に対応するオブジェクトＯＢbとの間を、前景に対応する動きオブジェクトＯＢfが矢印Ａ方向に移動するとき、撮像部１０は、前景に対応する動きオブジェクトＯＢfを背景に対応するオブジェクトＯＢbと共に撮像する。
【００１５】
この撮像部１０の検出素子は、露光時間に対応する期間、入力された光を電荷に変換して、光電変換された電荷を蓄積する。電荷の量は、入力された光の強さと、光が入力されている時間にほぼ比例する。検出素子は、露光時間に対応する期間において、入力された光から変換された電荷を、既に蓄積されている電荷に加えていく。すなわち、検出素子は、露光時間に対応する期間、入力される光を積分して、積分された光に対応する量の電荷を蓄積する。検出素子は、時間に対して、積分効果があるとも言える。このように、画像センサで光電変換を行い、入力された光を画素単位で電荷に変換して露光時間単位で蓄積する。この蓄積された電荷量に応じて画素信号を生成して、この画素信号を用いて所望のフレームレートの画像信号を生成して画像処理装置に供給する。なお、画像センサの露光時間は、上述のように画像センサが入力された光を電荷に変換して検出素子にその電荷を蓄積する期間であり、シャッタ動作が行われていないときは画像時間間隔（例えば１フレーム期間）と等しいものである。また、シャッタ動作が行われるときはシャッタ開時間と等しいものである。
【００１６】
図３Ａおよび図３Ｂは、画像信号で示される撮像画像を説明するための図である。図３Ａは、動いている前景に対応する動きオブジェクトＯＢfと、静止している背景に対応するオブジェクトＯＢbとを撮像して得られる画像を示している。なお、前景に対応する動きオブジェクトＯＢfは、矢印Ａ方向に水平移動しているものとする。
【００１７】
図３Ｂは、図３Ａに示すように矢印Ａ方向に伸びたラインＬ（破線で示す）の位置での画像と時間の関係を示している。動きオブジェクトＯＢfのラインＬにおける移動方向の長さが例えば９画素分であり、１露光時間中に５画素移動する場合、フレーム期間開始時に画素位置Ｐ21にあった前端と画素位置Ｐ13にあった後端は、それぞれ画素位置Ｐ25，Ｐ17で露光時間の終了となる。また、シャッタ動作が行われていないとき、１フレームにおける露光時間は１フレーム期間と等しいことから、次のフレーム期間開始時に前端が画素位置Ｐ26、後端が画素位置Ｐ18となる。
【００１８】
このため、ラインＬのフレーム期間において、画素位置Ｐ12までと画素位置Ｐ26からは、背景成分のみの背景領域となる。また、画素位置Ｐ17〜Ｐ21は、前景成分のみの前景領域となる。画素位置Ｐ13〜Ｐ16と画素位置Ｐ22〜Ｐ25は、背景成分と前景成分が混合された混合領域となる。混合領域は、時間の経過に対応して背景成分が前景に覆い隠されるカバードバックグランド領域と、時間の経過に対応して背景成分が現れるアンカバードバックグランド領域に分類される。なお、図３Ｂでは、前景のオブジェクトＯＢfの進行方向前端側に位置する混合領域がカバードバックグランド領域、後端側に位置する混合領域がアンカバードバックグランド領域となる。このように、画像信号には、前景領域、背景領域、またはカバードバックグランド領域若しくはアンカバードバックグランド領域を含む画像が含まれることとなる。
【００１９】
ここで、画像時間間隔は短時間であり、前景に対応する動きオブジェクトＯＢfは剛体であって等速に移動していると仮定して、ラインＬにおける画素値の時間方向分割動作を図４に示すように行う。この時間方向分割動作では、画素値を時間方向に展開して仮想分割数で等時間間隔に分割する。なお、図４において縦方向は時間に対応し、図中の上から下に向かって時間が経過することを示している。
【００２０】
仮想分割数は、動きオブジェクトの画像時間間隔での動き量ｖなどに対応して設定する。例えば、１フレーム期間内の動き量ｖが上述のように５画素であるときは、動き量ｖに対応して仮想分割数を「５」に設定して、１フレーム期間を等時間間隔で５分割する。
【００２１】
また、背景に対応するオブジェクトＯＢbを撮像したときに得られる画素位置Ｐxの１フレーム期間の画素値をＢx、ラインＬにおける長さが９画素分である前景に対応する動きオブジェクトＯＢfを静止させて撮像したとき、各画素で得られる画素値をＦ09（前端側）〜Ｆ01（後端側）とする。
【００２２】
この場合、例えば画素位置Ｐ14の画素値ＤＰ14は、式（１）で表される。
ＤＰ14＝Ｂ14/ｖ+Ｂ14/ｖ+Ｂ14/v＋Ｆ01/ｖ+Ｆ02/ｖ     ・・・（１）
【００２３】
この画素位置Ｐ14では、背景の成分を３仮想分割時間（フレーム期間/ｖ）含み、前景成分を２仮想分割時間含むので、画素値に対する背景成分の混合比αは（３／５）となる。同様に、例えば画素位置Ｐ22では、背景の成分を１仮想分割時間含み、前景成分を４仮想分割時間含むので、混合比αは（１／５）となる。
【００２４】
また、シャッタ動作が行われて、１フレーム期間に対する露光時間の比率を示す露光時間比率が変化されたとき、例えば、露光時間比率が「３／５」であるときは、図５に示すように、１フレーム期間における画素値の時間方向分割動作を行い、画素値を露光時間比率に応じた仮想分割数で等時間間隔に分割する。
【００２５】
仮想分割数は、動きオブジェクトの画像時間間隔内での動き量ｖなどに対応して設定する。例えば、１フレーム期間内の動き量ｖが上述のように５画素であるときは、動き量ｖに対応して仮想分割数を「５」に設定して、１フレーム期間を等時間間隔で５分割する。
【００２６】
この場合、例えば画素位置Ｐ14の画素値ＤＰ14は、式（２）で表される。
ＤＰ14＝Ｂ14/v＋Ｆ01/ｖ+Ｆ02/ｖ    ・・・（２）
【００２７】
この画素位置Ｐ14では、背景の成分を１仮想分割時間（フレーム期間/ｖ）含み、前景成分を２仮想分割時間含むので、混合比αは（１／３）となる。同様に、例えば画素位置Ｐ22では、背景の成分を１仮想分割時間含み、前景成分を２仮想分割時間含むので、混合比αは（１／３）となる。
【００２８】
また、シャッタ動作が行われたとき、露光時間比率と１フレーム期間内での動き量ｖを乗算して露光時間内動き量ｖsを算出することができる。
【００２９】
このように、前景の成分が移動することから、１露光時間では、異なる前景の成分が加算されるので、動きオブジェクトに対応する前景の領域は、動きボケを含むものとなる。このため、画像処理装置２０では、画像信号に埋もれてしまった有意情報を抽出して前景に対応する動きオブジェクトＯＢfの動きボケを軽減させた画像信号ＤＶoutを生成する。
【００３０】
図６は、画像処理装置の機能ブロック図である。なお、画像処理装置の各機能はハードウェアで実現するか、ソフトウェアで実現するかは問わない。つまり、図６の機能ブロックは、ハードウェアで実現するものとしても良く、ソフトウェアで実現するものとしても良い。
【００３１】
ここで、ソフトウェアを用いるときの画像処理装置２０の構成を例えば図７に示す。ＣＰＵ（Central Processing Unit）２０１は、ＲＯＭ（Read Only Memory）２０２、または記憶部２０８に記憶されているプログラムに従って各種の処理を実行するものであり、ＲＯＭ２０２や記憶部２０８には、画像処理装置の各機能を実現するプログラムが記憶される。ＲＡＭ（Random Access Memory）２０３には、ＣＰＵ２０１が実行するプログラムやデータなどが適宜記憶される。これらのＣＰＵ２０１、ＲＯＭ２０２、およびＲＡＭ２０３は、バス２０４により相互に接続されている。
【００３２】
また、ＣＰＵ２０１には、バス２０４を介して入出力インタフェース２０５が接続されている。入出力インタフェース２０５には、キーボード、マウス、マイクロホンなどよりなる入力部２０６、ディスプレイ、スピーカなどよりなる出力部２０７が接続されている。ＣＰＵ２０１は、入力部２０６から入力される指令に対応して各種の処理を実行する。そして、ＣＰＵ２０１は、処理の結果得られた画像や音声等を出力部２０７に出力する。
【００３３】
入出力インタフェース２０５に接続されている記憶部２０８は、例えばハードディスクなどで構成され、ＣＰＵ２０１が実行するプログラムや各種のデータを記憶する。通信部２０９は、インターネット、その他のネットワークを介して外部の装置と通信する。この例の場合、通信部２０９はセンサの出力を取り込む取得部として働く。また、通信部２０９を介してプログラムを取得し、記憶部２０８に記憶しても良い。
【００３４】
入出力インタフェース２０５に接続されているドライブ部２１０は、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどの記録媒体が装着されたとき、それらを駆動し、記録媒体に記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部２０８に転送されて記憶される。
【００３５】
図６に示すように、画像処理装置２０の撮影情報検出部３１は、撮像部１０で画像信号ＤＶaを生成したときの撮影情報を検出する。この撮影情報としては、撮像部１０でシャッタ動作を行ったときの露光時間（シャッタスピード）を検出して、検出した露光時間を示す情報（露光時間情報）Ｓhを撮影情報とする。撮像部１０で画像信号の生成時にガンマ処理を行っているときには、ガンマ処理で用いたガンマ値を検出して、検出したガンマ値を示す情報（ガンマ値情報）Ｓγを撮影情報とする。また、撮像部１０の撮影方向を手動で動かす場合、例えば磁気センサや三次元ジャイロなどを用いた角速度センサあるいは三次元加速度センサ等を撮像部１０に設けて、撮像部１０に設けたセンサからのセンサ信号に基づき撮像部の動きを検出して、検出した撮像部の動きを示す情報（撮像部動き情報）Ｓcmを撮影情報とする。さらに、撮像部１０の撮影方向が遠隔制御される場合、外部から供給された制御信号に基づいて撮像部動き情報Ｓcmを生成することもできる。撮影情報検出部３１は、生成したガンマ値情報Ｓγを逆ガンマ処理部３２とガンマ処理部４０、露光時間情報Ｓhを動きボケ量検出部３４、撮像部動き情報Ｓcmを動き検出部３３に供給する。
【００３６】
逆ガンマ処理部３２は、撮像部１０から供給された画像信号ＤＶaに対して、撮影情報検出部３１から供給されたガンマ値情報Ｓγに基づく逆ガンマ処理を行う。ここで、撮像部１０は、生成した画像信号ＤＶaを用いて画像表示を行う表示デバイス（例えば陰極線管等）の入出力特性が非線形な特性を有するとき、予めその非線形特性を相殺することで、撮像部１０から表示デバイスまでの総合特性が線形となるようにガンマ処理を行う。このため、撮像部１０から供給された画像信号ＤＶaは、非線形特性を相殺するように補正された信号であるから、この補正で用いたガンマ値に基づいて画像信号ＤＶaの逆ガンマ処理を行い、ガンマ処理前の画像信号ＤＶbを生成する。この画像信号ＤＶbは、実世界の画像に対して線形特性を有した信号であり、この画像信号ＤＶbを用いて動きボケ除去を行うことで、より正確に実世界の画像を推定できる。
【００３７】
動き検出部３３の動きベクトル推定部３３１は、画像信号ＤＶbに基づき全画面の動き方向あるいは動きベクトルを推定して画像動き情報ｖpaとして画像動き選択部３３２に供給する。この動きベクトル推定部３３１では、例えばブロックマッチング法や勾配法等の手法を用いて画素毎の動き方向や動きベクトルを求め、頻度の最も高い動き方向や動きベクトルを全画面の動き方向や動きベクトルとする。
【００３８】
画像動き選択部３３２は、撮影情報検出部３１から供給された撮像部動き情報Ｓcmに基づき画像の全画面動きを示す画像動き情報ｖpbを生成する。ここで、撮像部動き情報Ｓcmは撮像部１０の動きを示しており、撮像部１０の動きに対して画像は逆方向に移動することから、撮像部動き情報Ｓcmの動き方向を逆方向として画像動き情報ｖpbの動き方向を決定できる。また、撮像部動き情報Ｓcmの動き量と撮像部１０の画角に基づき画像動き情報ｖpbの動き量を決定できる。この画像動き選択部３３２は、画像動き情報ｖpaあるいは画像動き情報ｖpbの何れかを選択して、画像動き情報ｖpとして動きボケ量検出部３４と注目画素設定部３５や処理領域設定部３６、画素値生成部３８に供給する。この画像動き情報ｖpa，ｖpbの選択は、ユーザが選択を行うものとしても良く、画像処理装置２０で自動的に選択を行うものとしても良い。また、撮影画像に応じて、画像動き情報ｖpa，ｖpbの選択を行うものとすれば、画像の全画面動きの検出精度を高めて、動きボケ除去を良好に行うことが可能となる。例えば、撮像部１０の撮像方向を移動しながら静止している被写体のみを撮像して画像信号ＤＶaを生成したときは、画像動き情報ｖpbを選択することにより全画面動きを精度良く検出できる。
【００３９】
さらに、画像動き選択部３３２は、画素毎に画像動き情報を選択することもできる。例えば、動きのある被写体と静止している被写体が混在されており、静止している被写体部分が大きいとき、動きベクトル推定部３３１で推定された動き方向や動きベクトルの発生頻度が高い画素位置で、画像動き情報ｖpbを選択し、発生頻度が高くない画素位置で画像動き情報ｖpaを選択する。この場合、静止している被写体の画像部分の動きを精度良く得ることができる。
【００４０】
このように、画像動き選択部３３２は、１画像に対して画像動き情報ｖpaあるいは画像動き情報ｖpbの何れか一方のみを選択することで、全画面動きを検出する。また、画素単位で画像動き情報ｖpaと画像動き情報ｖpbの選択を行うものとすれば、画素単位での動き検出を行うこともできる。
【００４１】
動きボケ量検出部３４は、撮影情報検出部３１からの露光時間情報Ｓhに基づき、画像間隔に対する露光時間の割合である露光時間比率を検出して、この露光時間比率と動き検出部３３から供給された画像動き情報ｖpを用いて乗算処理を行い、露光時間内の動きボケ量ＭＢを画素毎に検出して処理領域設定部３６と処理係数設定部３７に供給する。
【００４２】
注目画素設定部３５は、注目画像を含めて複数の処理対象画像を設定して、動き検出部３３により設定された画像動き情報ｖpに基づき、注目画像の注目画素に対応する処理対象画像上の画素を検出して、この検出した画素を各処理対象画像の注目画素に設定する。さらに、注目画素を設定した複数の処理対象画像の画像信号を処理領域設定部３６に供給する。ここで、注目画像とは、画像処理装置２０に供給された入力画像において動きボケ除去処理を行う画像を示しており、注目画素とは、注目画像内において、動きボケ除去処理を行う画素を示している。
【００４３】
例えば、（ｔ）フレームの画像を注目画像とするとき、（ｔ−１）フレーム，（ｔ）フレーム、（ｔ＋１）フレームの画像を処理対象画像とする。ここで、画像動き情報ｖpに基づき、注目画像の注目画素に対応する（ｔ−１）フレームや（ｔ＋１）フレームの画像上の画素を注目画素として設定する。さらに、（ｔ）フレームの処理対象画像の画像信号ＤＶb(t)を処理領域設定部３６の（ｔ）フレームタップ選択部３６２、注目画素を設定した（ｔ−１）フレームの処理対象画像の画像信号ＤＶb(t-1)を（ｔ−１）フレームタップ選択部３６１、注目画素を設定した（ｔ＋１）フレームの処理対象画像の画像信号ＤＶb(t+1)を（ｔ＋１）フレームタップ選択部３６３にそれぞれ供給する。
【００４４】
なお、注目画像の注目画素が（ｔ＋１）フレームで画像動き情報ｖpだけ移動する場合、（ｔ＋１）フレームの画像を画像動き情報ｖpだけ戻すように移動させれば、注目画像の注目画素と移動後の（ｔ＋１）フレームの注目画素の位置は同じとなり、処理領域設定部３６における処理領域の設定を容易とすることができる。
【００４５】
また、基準となる注目画像は、（ｔ）フレームの画像に限られるものではなく、（ｔ−１）フレームや（ｔ＋１）フレームの画像を注目画像とすることもできる。さらに、注目画像のいずれの画素を注目画素とするかについては、外部から注目画素を指定したり、注目画像内の画素を順次自動的に注目画素に指定する。このようにすれば、所望の画素についてのみ、動きボケ除去処理を行うものとしたり、注目画像の全体に対して動きボケ除去処理を自動的に行うことができる。また、外部から範囲を指定して、この範囲内の画素を順次自動的に注目画素に指定するようにすれば、所望の範囲について動きボケ除去処理を行うことが可能となる。
【００４６】
処理領域設定部３６は、予測される注目画像内の注目画素に対応する、注目画像および周辺画像のうち少なくとも何れか一方の処理領域を設定する。なお、図６では、注目画像と周辺画像の合わせて３フレーム分の動画像に対して処理領域を設定する場合を示している。また、後述するように、静止画であるときは、静止画である注目画像に対して処理領域を設定する。
【００４７】
処理領域設定部３６の（ｔ−１）フレームタップ選択部３６１は、注目画素設定部３５から供給された処理対象画像における注目画素を基準として、例えば動きボケ量検出部３４で設定された動きボケ量ＭＢに応じた空間方向の大きさの処理領域を設定する。あるいは、動きボケ量検出部３４で設定された動きボケ量ＭＢに応じた大きさで、動き検出部３３から供給された画像動き情報ｖpで示された動き方向に処理領域を設定する。さらに、処理領域の画素値を画素値生成部３８のボケ除去処理部３８１に供給する。図８は、処理領域を示しており、丸印で示す注目画素Ｐnaを基準として処理領域ＷＡを各処理対象画像に設定する。（ｔ）フレームタップ選択部３６２，（ｔ＋１）フレームタップ選択部３６３も、（ｔ−１）フレームタップ選択部３６１と同様に、それぞれ注目画素設定部３５から供給された処理対象画像における注目画素Ｐnaを基準として、動きボケ量検出部３４で設定された動きボケ量ＭＢに応じて処理領域を設定する。さらに、処理領域の画素値をボケ除去処理部３８２，３８３に供給する。
【００４８】
処理係数設定部３７は、メモリを用いて構成されており、メモリには動きボケ量あるいは動きボケ量と動き方向に応じた処理係数が予め記憶されている。処理係数設定部３７は、動き方向を特定の方向に設定して動きボケ量に応じて生成した特定の処理係数を記憶しているとき、動きボケ量検出部３４から供給された動きボケ量ＭＢに応じた処理係数をメモリから読み出して、ボケ除去処理部３８１，３８２，３８３に供給することで、処理係数の設定を行う。また、処理係数設定部３７は、動きボケ量と動き方向に応じた処理係数を記憶しているとき、動きボケ量検出部３４から供給された動きボケ量ＭＢと動き検出部３３から供給された画像動き情報ｖpで示された動き方向に応じた処理係数をメモリから読み出して、ボケ除去処理部３８１，３８２，３８３に供給することで、処理係数の設定を行う。また、処理係数設定部３７は、図示せずも外部から動きボケの調整を可能とする調整情報が供給されたとき、この調整情報に基づいて、画素値生成部３８に供給する処理係数の切り換えを行うことで動きボケ除去効果を調整できるようにしても良い。この場合、例えば最初に供給した処理係数で動きボケが最適に行われないような場合が生じても処理係数を切り換えることで動きボケを最適に除去することが可能となる。また、処理係数を切り換えることで意図的に動きボケを残すことも可能である。
【００４９】
画素値生成部３８のボケ除去処理部３８１は、（ｔ−１）フレームタップ選択部３６１から供給された処理領域の画素値と、処理係数設定部３７から供給された処理係数を用いて線形結合を行い、ボケ除去処理後の画素値を生成して統合部３９に供給する。ここで、処理係数設定部３７から、動きボケ量に応じた特定の処理係数が供給されるとき、ボケ除去処理部３８１は、（ｔ−１）フレームタップ選択部３６１から供給された処理領域の画素値と画像動き情報ｖpから新たに処理用の画素値を生成して、この生成した処理用の画素値と特定の処理係数との積和演算を行い画素値を生成する。
【００５０】
ここで、処理用の画素値の生成は、以下のように行う。すなわち、ボケ除去処理に用いる処理係数を生成するとき、動き方向を特定の方向に設定して、このとき得られた処理係数を特定の処理係数として処理係数設定部３７に記憶させる。画素値生成部３８のボケ除去処理部３８１においては、画像動き情報ｖpで示された動き方向が、処理係数を生成したときの特定の方向に対して角度差θを有する場合、例えば図９に示すように、処理係数を生成するときに設定した動き方向が水平方向であり、画像動き情報ｖpで示された動き方向が角度差θを有する場合、注目画素Ｐnaから画像動き情報ｖpで示された動き方向の処理係数に対応する画素位置は、三角印で示す位置Ｐwa，Ｐwbとなる。このため、位置Ｐwaの画素値ＤＰwを、周辺の画素位置Ｐw1，Ｐw2，Ｐw3，Ｐw4の画素値を用いて式（３）から算出する。また、同様にして位置Ｐwaとは逆方向である位置Ｐwbの画素値ＤＰwbを算出する。従って、（ｔ−１）フレームタップ選択部３６１は、処理用の画素値を生成できるように処理領域を設定する。
【００５１】
ＤＰwa＝  （１−βh）×（１−βv）×ＤＰw1
＋    βh    ×（１−βv）×ＤＰw2
＋（１−βh）×    βv    ×ＤＰw3
＋    βh    ×    βv    ×ＤＰw4    ・・・（３）
なお、式（３）において、βh＝ｃｏｓθ，βv＝ｓｉｎθ、ＤＰw1は画素位置Ｐw1の画素値、ＤＰw2〜ＤＰw4は画素位置Ｐw2〜Ｐw4の画素値である。
【００５２】
また、ボケ除去処理部３８１は、動きボケ量と動き方向に応じた処理係数が供給されるとき、（ｔ−１）フレームタップ選択部３６１で、この動きボケ量と動き方向に応じて設定された処理領域の画素値と処理係数設定部３７から供給された処理係数との積和演算を行い画素値を生成する。
【００５３】
ボケ除去処理部３８１は、このようにして算出した画素値を処理用の画素値として、この処理用の画素値と、処理係数設定部３７から供給された処理係数との積和演算を行い画素値を生成する。
【００５４】
ボケ除去処理部３８２は、ボケ除去処理部３８１と同様にして、（ｔ）フレームタップ選択部３６２から供給された処理領域の画素値と、処理係数設定部３７から供給された処理係数を用いて線形結合を行い、ボケ除去処理後の画素値を生成して統合部３９に供給する。ボケ除去処理部３８３は、（ｔ＋１）フレームタップ選択部３６３から供給された処理領域の画素値と、処理係数設定部３７から供給された処理係数を用いて線形結合を行い、ボケ除去処理後の画素値を生成して統合部３９に供給する。
【００５５】
式（４）は、処理領域の画素値と処理係数の線形結合の一例として、積和演算を行う場合を示している。
【００５６】
【数１】
0004766334.tif 000002
【００５７】
式（４）において、ｑ’は、ボケ除去が行われた画素の画素値を表している。ｃi（iは、１乃至ｎの整数値で処理範囲の各画素を示す）は、処理領域の画素値を表している。また、ｄiは処理係数を表している。
【００５８】
統合部３９は、ボケ除去処理部３８１〜３８３から供給されたボケ除去後の画素値を統合して、動きボケ除去がなされた画像である予測画像における注目画素の画素値を生成して画像信号ＤＶcとして出力する。この画素値の統合では、統計的処理を用いるものとする。例えば、単純平均、重み付け平均、メディアンフィルタ等を用いることができる。ここで、重み付け平均では、例えば（ｔ−１）フレームの画素値：ｔフレームの画素値：（ｔ＋１）フレームの画素値＝２：６：２の重み付けを行って平均値を算出する。
【００５９】
ガンマ処理部４０は、統合部３９から供給された画像信号ＤＶcに対して、撮影情報検出部３１から供給されたガンマ値情報Ｓγを用いてガンマ処理を行い画像信号ＤＶoutとして出力する。
【００６０】
図１０は、ソフトウェアで画像処理を行う場合のフローチャートを示している。ステップＳＴ１でＣＰＵ２０１は、注目画像に動きボケの除去を行う注目画素を設定してステップＳＴ２に進む。ステップＳＴ２でＣＰＵ２０１は、撮影情報で示されたガンマ値に基づいて注目画素の逆ガンマ処理を行い、実世界の画像を射影したときの画像信号を生成する。ステップＳＴ３でＣＰＵ２０１は、注目画素の動きベクトルを検出してステップＳＴ４に進む。ステップＳＴ４でＣＰＵ２０１は、注目画素の動きボケ量を検出する。すなわち、ステップＳＴ３で検出した動きベクトルと撮影情報で示された露光時間情報に基づき、注目画素の露光時間における動きボケ量を検出する。
【００６１】
ステップＳＴ５でＣＰＵ２０１は、処理領域を設定する。すなわちＣＰＵ２０１は、注目画像の注目画素に基づき、処理対象画像を設定して、この処理対象画像に注目画素を設定する。さらに、各処理対象画像の注目画素を基準として、ステップＳＴ４で求めた動きボケ量に応じた処理領域、あるいはステップＳＴ３で検出した動きベクトルに対応する動き方向とステップＳＴ４で求めた動きボケ量に応じた処理領域を設定してステップＳＴ６に進む。
【００６２】
ステップＳＴ６でＣＰＵ２０１は、処理係数を設定してステップＳＴ７に進む。この処理係数の設定では、ステップＳＴ４で求めた注目画素の動きボケ量に基づく特定の処理係数、あるいはステップＳＴ４で求めた注目画素の動きボケ量とステップＳＴ３で検出された動きベクトルに応じた動き方向に基づく処理係数を設定する。
【００６３】
ステップＳＴ７でＣＰＵ２０１は、ステップＳＴ６で設定した処理係数を用いてボケ除去処理を各処理対象画像に対して行う。すなわち、ＣＰＵ２０１は、ステップＳＴ５で設定した処理領域の画素値と、ステップＳＴ６で動き量と動き方向に応じて設定した処理係数とに基づき、注目画素に対応する画素値を生成する。あるいは、処理領域の画素値から新たに処理用の画素値を生成すると共に、この処理用の画素値とステップＳＴ６で動き量に応じて設定した特定の処理係数とに基づき、注目画素に対応する画素値を算出する。このようにして、ボケ除去がなされた画素値を各処理対象画像の注目画素毎に算出してステップＳＴ８に進む。
【００６４】
ステップＳＴ８でＣＰＵ２０１は、ステップＳＴ７で処理対象画像毎に算出した画素値の統合処理を行い、得られた画素値を注目画素の動きボケ除去処理後の画素値として出力してステップＳＴ９に進む。ステップＳＴ９でＣＰＵ２０１は、撮影情報で示されたガンマ値を用いて注目画素に対するガンマ処理を行い、ガンマ処理後の画素値を画像信号ＤＶoutとして出力する。
【００６５】
ステップＳＴ１０でＣＰＵ２０１は、処理範囲の全画素に対してボケ除去処理が完了したか否かを判別し、ボケ除去処理が行われていない画素があるときはステップＳＴ１に戻り、処理範囲の全画素に対してボケ除去が完了したときは注目画像に対する画像処理を終了する。
【００６６】
このように、撮影情報を検出して、この検出した撮影情報を用いて注目画素の動きボケ除去処理を行うことにより、動きボケ除去処理の処理精度を高めることができる。
【００６７】
次に、処理係数設定部３７に予め記憶される処理係数を学習によって求めてボケ除去処理を行う場合と、処理係数をモデル式から求めてボケ除去処理を行う場合について説明する。
【００６８】
図１１は、処理係数を学習によって求めてボケ除去処理を行う場合の構成を示したものである。学習部５１は、教師画像である静止画と、この静止画に動きボケを付加した生徒画像を用いて学習処理を実行し、この学習により得られる処理係数を画像処理装置２０の処理係数設定部３７に記憶させる。画像処理装置２０は、上述のように入力画像となる動きボケを含む画像から注目画素に対する処理領域を設定して、この処理領域の画素値と処理係数設定部３７に記憶されている動きボケ量に応じた処理係数を用いて演算処理を行い、ボケ除去後の画素値を生成する。
【００６９】
図１２は、学習部５１の機能ブロック図である。学習部５１の生徒画像生成部５１１は、入力画像である教師画像に対して動き量ｖに応じた動きボケを付加して生徒画像を生成して予測タップ抽出部５１２に供給する。
【００７０】
予測タップ抽出部５１２は、ボケ除去を行う注目画素に対して複数の画素を予測タップとして設定して、生徒画像から予測タップの画素値を抽出して、正規方程式生成部５１３に出力する。なお、予測タップは、動き方向と動き量に応じた係数を生成する場合、上述の処理領域に対応するものである。
【００７１】
正規方程式生成部５１３は、予測タップ抽出部５１２から供給された予測タップの画素値と、教師画像の画素値とから正規方程式を生成し、係数決定部５１４に供給する。係数決定部５１４は、正規方程式生成部５１３から供給された正規方程式に基づき処理係数を演算して、処理係数設定部３７に記憶させる。この正規方程式生成部５１３と、係数決定部５１４についてさらに説明する。
【００７２】
上述した式（４）において、学習前は処理係数ｄiのそれぞれが未定係数である。学習は、複数の教師画像（静止画像）の画素を入力することによって行う。教師画像の画素がｍ個存在し、ｍ個の画素の画素値を「ｑk（ｋは、１乃至ｍの整数値）」と記述する場合、式（４）から、次の式（５）が設定される。
【００７３】
【数２】
0004766334.tif 000003
【００７４】
すなわち、式（５）は、右辺の演算を行うことで、動きボケのない実際の画素値ｑkとほぼ等しいボケ除去後の画素値ｑk’を得ることができる。なお、式（５）において、イコールではなくニアリーイコールとなっているのは誤差を含むからである。すなわち、右辺の演算結果であるボケ除去後の画素値は、動きボケのない実際の画像における注目画素の画素値と厳密には一致せず、所定の誤差を含むためである。
【００７５】
この式（５）において、誤差の自乗和を最小にする処理係数ｄiが学習により求まれば、その処理係数ｄiは、ボケ除去後の画素値ｑkを動きボケのない画素値に近づけるための最適な係数と考えられる。従って、例えば、学習により集められたｍ個（ただし、ｍは、ｎより大きい整数）の画素値ｑkを用いて、最小自乗法により最適な処理係数ｄiを決定する。
【００７６】
式（５）の右辺の処理係数ｄiを最小自乗法で求める場合の正規方程式は、式（６）として表すことができる。
【００７７】
【数３】
0004766334.tif 000004
【００７８】
従って、式（６）に示す正規方程式を解くことで処理係数ｄiを決定できる。具体的には、式（６）で示される正規方程式の各行列のそれぞれを、次の式（７）乃至（９）のように定義すると、正規方程式は、次の式（１０）のように表される。
【００７９】
【数４】
0004766334.tif 000005
【００８０】
【数５】
0004766334.tif 000006
【００８１】
ＣMATＤMAT＝ＱMAT      ・・・（１０）
【００８２】
式（８）で示されるように、行列ＤMATの各成分は、求めたい処理係数ｄiである。従って、式（１０）において、左辺の行列ＣMATと右辺の行列ＱMATが決定されれば、行列解法によって行列ＤMAT（すなわち、処理係数ｄi）の算出が可能である。具体的には、式（７）で示されるように、行列ＣMATの各成分は、予測タップｃikが既知であれば演算可能である。予測タップｃikは、予測タップ抽出部５１２により抽出されるので、正規方程式生成部５１３は、予測タップ抽出部５１２から供給される予測タップｃikのそれぞれを利用して行列ＣMATの各成分を演算することができる。
【００８３】
また、式（９）で示されるように、行列ＱMATの各成分は、予測タップｃikと静止画像の画素値ｑkが既知であれば演算可能である。予測タップｃikは、行列ＣMATの各成分に含まれるものと同一のものであり、また、画素値ｑkは、予測タップｃikに含まれる注目画素（生徒画像の画素）に対する教師画像の画素である。従って、正規方程式生成部５１３は、予測タップ抽出部５１２より供給された予測タップｃikと、教師画像を利用して行列ＱMATの各成分を演算することができる。
【００８４】
このようにして、正規方程式生成部５１３は、行列ＣMATと行列ＱMATの各成分を演算し、その演算結果を係数決定部５１４に供給する。
【００８５】
係数決定部５１４は、上述した式（８）の行列ＤMATの各成分である処理係数ｄiを演算する。具体的には、上述した式（１０）の正規方程式は、次の式（１１）のように変形できる。
【００８６】
ＤMAT＝ＣMAT-1ＱMAT    ・・・（１１）
式（１１）において、左辺の行列ＤMATの各成分が、求める処理係数ｄiである。また、行列ＣMATと行列ＱMATのそれぞれの各成分は、正規方程式生成部５１３より供給される。従って、係数決定部５１４は、正規方程式生成部５１３より行列ＣMATと行列ＱMATのそれぞれの各成分が供給されてきたとき、式（１１）の右辺の行列演算を行うことで行列ＤMATを演算し、その演算結果（処理係数ｄi）を処理係数設定部３７に記憶させる。ここで、動き方向を一定の方向として動き量を変えて上述の学習を行えば、動きボケ量に応じた特定の処理係数が記憶させることができる。また、動き方向も変えて上述の学習を行えば、動きボケ量と動き方向に応じた処理係数を記憶させることができる。
【００８７】
予測タップは、動き量に比例した長さを用いて選択される。例えば注目画素を基準として動き方向に「３×動き量＋９画素」の範囲に含まれる画素を予測タップとする。また、「２×動き量＋３画素」の範囲に含まれる画素を予測タップとすれば、タップ数が少なく構成を簡単にできる。さらに、予測タップの選択では、動き量ｖに応じて予測タップを離散的に選択するものとしても良い。
【００８８】
ここで、動き量ｖに応じて予測タップを離散的に選択する場合について図１３を用いて説明する。例えば図１３に示す画素位置Ｐ47を注目画素位置として注目画素の画素値Ｆ19を求める場合、破線で示すように最初に注目画素の成分Ｆ19/vが現れる画素位置Ｐ45、および画素位置Ｐ45と隣接して注目画素の成分Ｆ19/vを有していない画素位置Ｐ44ついて考えると、式（１２）が成立する。なお、画素位置Ｐ44，Ｐ45の画素値をＤＰ44，ＤＰ45とする。
【００８９】
F19−F14＝（ＤＰ45−ＤＰ44）×ｖ        ・・・（１２）
同様に、破線で示すように最後に注目画素の成分Ｆ19/vが現れる画素位置Ｐ49、および画素位置Ｐ49と隣接して注目画素の成分Ｆ19/vを有していない画素位置Ｐ50ついて考えると、式（１３）が成立する。
【００９０】
F24−F19＝（ＤＰ50−ＤＰ49）×ｖ        ・・・（１３）
ここで、画素値Ｆ14のレベルは空間相関を利用して近似的に求める。例えば画素位置Ｐ42と周辺画素の空間相関が高ければ式（１４）に示すような近似が成立する。
【００９１】
Ｆ14≒ＤＰ42  ・・・（１４）
ここでいう空間相関とは、各画素のアクティビティ（Activity）の大小で表される関係である。すなわち、アクティビティとは、例えば、基準とする画素に隣接する画素間の差分値の和である。図１４はアクティビティの算出を説明するための図である。例えば、画素位置Ｐ42を中心として３画素×３画素の合計９画素の画素間の差分が画素位置Ｐ42のアクティビティＡＣ(P42)であり、以下の式（１５）で示される。なお、図１４において、画素位置Ｐ42-Uは画素位置Ｐ42よりも１つ上のラインの画素、画素位置Ｐ42-Lは画素位置Ｐ42よりも１つ下のラインの画素であることを示しており、他も同様である。
【００９２】
ＡＣ(P42)＝   ｜ＤＰ41-U−ＤＰ42-U｜＋｜ＤＰ42-U−ＤＰ43-U｜
＋｜ＤＰ41 −ＤＰ42  ｜＋｜ＤＰ42 −ＤＰ43 ｜
＋｜ＤＰ41-L−ＤＰ42-L｜＋｜ＤＰ42-L−ＤＰ43-L｜
＋｜ＤＰ41-U−ＤＰ41 ｜＋｜ＤＰ41 −ＤＰ41-L｜
＋｜ＤＰ42-U−ＤＰ42 ｜＋｜ＤＰ42 −ＤＰ42-L｜
＋｜ＤＰ43-U−ＤＰ43 ｜＋｜ＤＰ43 −ＤＰ43-L｜
・・・（１５）
【００９３】
式（１５）で示される画素位置Ｐ42で表される画素のアクティビティＡＣ(P42)は、その値が小さいほど、画素位置Ｐ42の画素と周辺画素の空間相関が高く、画素位置Ｐ42の画素値は周辺画素の画素値に近似していることが示される。逆に、アクティビティが大きいときは、画素位置Ｐ42の画素と周辺画素の空間相関が低く、画素位置Ｐ42の画素値は周辺画素の画素値と異なる可能性が高い。すなわち、空間相関が高いということは、画素内における画素値の変化も少ないと仮定することができるので、式（１６）で示すような関係が成立すると考えられる。
Ｆ12/v＝Ｆ13/v＝Ｆ14/v＝Ｆ15/v＝Ｆ16/v        ・・・（１６）
【００９４】
従って、アクティビティＡＣ(P42)が小さいときには、以下の式（１７）が導出されることになるため、式（１４）が成立すると考えられる。
ＤＰ42/v＝（Ｆ12/v＋Ｆ13/v＋Ｆ14/v＋Ｆ15/v＋Ｆ16/v）＝Ｆ14/v
・・・（１７）
【００９５】
以上の結果から、式（１２）を変形し、式（１４）の関係を代入すると、以下の式（１８）で示されるように、動きボケのない画像の画素に入射される光のレベルとして、F19が求められることになる。
【００９６】
Ｆ19＝（ＤＰ45−ＤＰ44）×v＋ＤＰ42  ・・・（１８）
同様に考えると式（１９）も成立する。
Ｆ19＝ＤＰ52＋（ＤＰ49−ＤＰ50）×v  ・・・（１９）
このように考えると、注目画素の画素値Ｆ19を求めるときには、画素位置Ｐ42,Ｐ44，Ｐ45，Ｐ49，Ｐ50，Ｐ52を得られれば良いことから、注目画素の画素位置Ｐ47を基準として画素位置Ｐ42,Ｐ44，Ｐ45，Ｐ49，Ｐ50，Ｐ52の画素を予測タップとして用いることもできる。
【００９７】
図１５は、処理係数の学習処理を示すフローチャートである。ステップＳＴ１１では、教師画像から生徒画像を生成する。すなわち、教師画像に動きボケを付加して、動きボケが付加された画像である生徒画像を生成する。
【００９８】
ステップＳＴ１２では、生徒画像の中から予測タップを抽出する。ステップＳＴ１３では、予測タップおよび教師画像の画素から、正規方程式を生成する。
【００９９】
ステップＳＴ１４では、ステップＳＴ１３で生成した正規方程式を解いて処理係数を決定し、処理係数設定部３７に記憶させる。
【０１００】
ステップＳＴ１５において、全ての画素について処理を施したか否かを判定して、全ての画素について処理を施していないときは、新たな画素に対してステップＳＴ１２からの処理を繰り返し、全ての画素の処理が終了したときには、学習処理を終了する。
【０１０１】
以上の処理を行い、学習によって動きボケを除去するための処理係数を生成して処理係数設定部３７に記憶させることにより、動きボケの除去処理が実行可能となる。
【０１０２】
また、上述のようにアクティビティの大小、すなわち、空間相関の有無を検出するときには、アクティビティの大小によりクラス分類を行い、クラス分類結果であるクラスコードに対応して処理領域を変更させることで、ボケ除去の精度を向上させることもできる。
【０１０３】
この場合、処理領域設定部３６では、注目画素に対するクラスタップを抽出して、抽出したクラスタップからクラスコードを決定し、このクラスコードに応じて注目画素に対する処理領域を設定して、処理領域の画素値を画素値生成部３８に供給する。また決定したクラスコードを処理領域設定部３６から処理係数設定部３７に供給して、動きボケ量ＭＢとクラスコードに応じた処理係数をメモリから読み出して画素値生成部３８に供給させる。
【０１０４】
ここで、アクティビティの大小によりクラス分類が行われているとき、図１３，図１４を参照して説明したように、アクティビティの算出に用いた画素をクラスタップとして抽出する。この抽出したクラスタップを用いて上述のようにアクティビティを求め、求めたアクティビティによりクラスコードを検出する。例えばアクティビティＡＣ(P42)，ＡＣ(P52)を求めて、アクティビティＡＣ(P42)がアクティビティＡＣ(P52)よりも小さいときクラスコードを「１」、アクティビティＡＣ(P52)がアクティビティＡＣ(P42)よりも小さいときクラスコードを「２」として、クラスコードを処理係数設定部３７に供給する。
【０１０５】
さらに、処理領域設定部３６では、クラスコードに対応して注目画素に対応する処理領域の設定を行う。例えば、クラスコードが「１」であった場合、画素位置Ｐ52よりも画素位置Ｐ42の空間相関が高いので、画素位置Ｐ42、Ｐ44、Ｐ45の画素値を処理領域の画素値として画素値生成部３８に供給する。また、クラスコードが「２」であった場合、画素位置Ｐ42よりも画素位置Ｐ52の空間相関が高いので、画素位置Ｐ49、Ｐ50、Ｐ52の画素値を処理領域の画素値として画素値生成部３８に供給する。
【０１０６】
処理係数設定部３７は、クラスコードに応じて、予め後述する学習部が学習により求めた処理係数を記憶しており、クラスコードおよび動き量に対応する処理係数を画素値生成部３８に供給する。
【０１０７】
画素値生成部３８のボケ除去処理部３８１〜３８３は、処理領域の画素値と処理係数設定部３７から供給された処理係数を用いて演算処理を行い、ボケ除去処理後の画素値を生成して統合部３９に供給する。統合部３９は、ボケ除去処理部３８１〜３８３から供給された画素値を統合して、動きボケ除去がなされた画像である予測画像における注目画素の画素値を出力する。
【０１０８】
図１６は、クラス分類を用いた画像処理のフローチャートを示している。ステップＳＴ２１でＣＰＵ２０１は、注目画像に動きボケの除去を行う注目画素を設定してステップＳＴ２２に進む。ステップＳＴ２２でＣＰＵ２０１は、撮影情報で示されたガンマ値に基づいて注目画素の逆ガンマ処理を行い、実世界の画像を射影したときの画像信号を生成する。ステップＳＴ２３でＣＰＵ２０１は、注目画素の動きベクトルを検出してステップＳＴ２４に進む。ステップＳＴ２４でＣＰＵ２０１は、注目画素の動きボケ量を検出する。すなわち、撮影情報で示された露光時間情報とステップＳＴ２３で検出した動きベクトルを用いて演算処理を行い、注目画素の露光時間内での動きボケ量を検出する。
【０１０９】
ステップＳＴ２５でＣＰＵ２０１は、ステップＳＴ２４で求めた動きボケ量に応じてクラスタップを抽出してステップＳＴ２６に進む。ステップＳＴ２６でＣＰＵ２０１は、クラス分類を行い、クラスタップからクラスコードを決定する。
【０１１０】
ステップＳＴ２７でＣＰＵ２０１は、処理領域を設定する。すなわちＣＰＵ２０１は、注目画像の注目画素に基づき処理対象画像を設定して、処理対象画像に注目画素を設定する。さらに、各処理対象画像の注目画素を基準としてクラスコードと注目画素の動きボケ量と動き方向に応じた処理領域を設定してステップＳＴ２８に進む。
【０１１１】
ステップＳＴ２８でＣＰＵ２０１は、注目画素の動きボケ量とクラスコードに応じた処理係数、あるいはステップＳＴ２２で検出した動きベクトルに応じた動き方向と注目画素の動きボケ量とクラスコードに応じた処理係数を設定してステップＳＴ２９に進む。
【０１１２】
ステップＳＴ２９でＣＰＵ２０１は、ボケ除去処理を各処理対象画像に対して行う。すなわち、ＣＰＵ２０１は、ステップＳＴ２７で設定した処理領域の画素値と、ステップＳＴ２８において動き量と動き方向とクラスコードに応じて設定した処理係数との演算処理を行い、注目画素に対応する画素値を生成する。あるいは、処理領域の画素値から新たに処理用の画素値を生成すると共に、この処理用の画素値とステップＳＴ２８で動き量とクラスコードに応じて設定した特定の処理係数との演算処理を行い、ボケ除去がなされた画素値を各処理対象画像の注目画素毎に算出してステップＳＴ３０に進む。
【０１１３】
ステップＳＴ３０でＣＰＵ２０１は、ステップＳＴ２９で処理対象画像毎に算出した画素値の統合処理を行い、得られた画素値を注目画素の動きボケ除去処理後の画素値として出力してステップＳＴ３１に進む。ステップＳＴ３１でＣＰＵ２０１は、撮影情報で示されたガンマ値を用いて注目画素に対するガンマ処理を行い、ガンマ処理後の画素値を画像信号ＤＶoutとして出力する。
【０１１４】
ステップＳＴ３２でＣＰＵ２０１は、処理範囲の全画素に対してボケ除去処理が完了したか否かを判別し、ボケ除去処理が行われていない画素があるときはステップＳＴ２１に戻り、処理範囲の全画素に対してボケ除去が完了したときは注目画像に対する画像処理を終了する。
【０１１５】
次に、クラス分類を行う場合の処理係数の学習について説明する。図１７は、クラス分類を行う場合の学習部５２の機能ブロック図である。なお図１７において、図１２と対応する部分については同一符号を付し、詳細な説明は省略する。
【０１１６】
学習部５２のクラスタップ抽出部５２１は、上述のようにクラスタップを選択して、選択したクラスタップをクラス分類部５２２に供給する。クラス分類部５２２は、上述のようにクラス分類を行いクラスコードを決定して予測タップ抽出部５２３と正規方程式生成部５２４に供給する。
【０１１７】
予測タップ抽出部５２３はクラスコードに応じて予測タップを切り換えて抽出して、正規方程式生成部５２４に供給する。
【０１１８】
正規方程式生成部５２４は、基本的に図１２の正規方程式生成部５１３と同様のものであるが、クラス分類部５２２から供給されるクラスコード毎に正規方程式を生成して係数決定部５２５に出力する。従って、係数決定部５２５は、クラスコード毎に係数を決定し、クラスコード毎に決定した係数を処理係数設定部３７に記憶させる。ここで、動き方向を特定して動き量毎に生徒画像を生成しているときには、動き量とクラスコードに応じた特定の処理係数が処理係数設定部３７に記憶される。また、動き量と動き方向を切り換えて生徒画像を生成しているときには、動き量と動き方向およびクラスコードに応じた処理係数が処理係数設定部３７に記憶される。
【０１１９】
図１８は、クラス分類を用いた処理係数の学習処理を示すフローチャートである。ステップＳＴ４１では、教師画像から生徒画像を生成する。すなわち、教師画像に動きボケを付加して、動きボケが付加された画像である生徒画像を生成する。
【０１２０】
ステップＳＴ４２では、生徒画像からクラスタップを抽出する。このクラスタップの抽出は、上述のステップＳＴ２５と同様にして行う。
【０１２１】
ステップＳＴ４３では、抽出したクラスタップよりクラス分類を行いクラスコードを決定する。ステップＳＴ４４では、ステップＳＴ４３で決定したクラスコードに対応して、生徒画像から予測タップを抽出する。
【０１２２】
ステップＳＴ４５では、予測タップおよび教師画像の画素からクラスコード毎に正規方程式を生成する。
【０１２３】
ステップＳＴ４６では、ステップＳＴ４５で生成した正規方程式を解いて処理係数を決定し、クラスコード毎に処理係数設定部３７に記憶させる。
【０１２４】
ステップＳＴ４７において、全ての画素について処理を施したか否かを判定して、全ての画素について処理を施していないときは、新たな画素に対してステップＳＴ４２からの処理を繰り返し、全ての画素の処理が終了したときは、学習処理を終了する。このようにして、動き量と動き方向とクラスに応じた動きボケ除去用の処理係数を生成できる。また、動き方向を一定方向とすることで、動き量とクラスに応じた特定の処理係数を生成できる。
【０１２５】
次に、処理係数設定部３７に記憶される処理係数をモデル式から求めてボケ除去処理を行う場合について説明する。
【０１２６】
図１９は、処理領域を空間方向に示したものであり、注目画素Ｐnaを中心として例えば動き方向に（２Ｎ＋１）画素分の処理領域を設定する。図２０Ａおよび図２０Ｂは処理領域の設定例を示しており、動きボケを軽減させる動きオブジェクトＯＢfの画素に対して、動きベクトルの方向が例えば矢印Ｂで示すように水平方向である場合は、図２０Ａに示すように水平方向に処理領域ＷＢを設定する。また、動きベクトルの方向が斜め方向である場合は、図２０Ｂに示したように、該当する角度方向に処理領域ＷＢを設定する。ただし、斜め方向に処理領域を設定する際には、処理領域の画素位置に相当する画素値を、補間等によって求める。
【０１２７】
ここで、処理領域内では、図２１に示すように、実世界変数(Ｙ-8，・・・,Ｙ0，・・・，Ｙ8) が時間混合されている。なお、図２１は、動き量ｖが「ｖ＝５」であって処理領域を１３画素（Ｎ＝６：Ｎは注目画素Ｐnaに対する処理幅の画素数）とした場合である。
【０１２８】
ボケ除去処理では、この処理領域に対して実世界推定を行い、推定した実世界の中心画素変数Ｙ0のみを、動きボケ除去がなされた注目画素の画素値として出力する。
【０１２９】
ここで、処理領域を構成する画素の画素値をＸ-N，Ｘ-N+1，・・・，Ｘ0，・・・，ＸN-1，ＸN とすると、式（２０）に示すような（２Ｎ＋１）個の混合式が成立する。なお、定数ｈは、動き量ｖを１／２倍したときの整数部分の値（小数点以下を切り捨てた値）を示している。
【０１３０】
【数６】
0004766334.tif 000007
【０１３１】
しかし、求めたい実世界変数（Ｙ-N-h，・・・，Ｙ0，・・・，ＹN+h）は、（２Ｎ＋ｖ）個ある。すなわち、変数の数よりも式の数が少ないので、式（２０）に基づき実世界変数（Ｙ-N-h，・・・，Ｙ0，・・・，ＹN+h）を求めることができない。
【０１３２】
そこで、空間相関を用いた拘束式である式（２１）を用いることで、実世界変数よりも式の数を増やし、最小自乗法を用いて、実世界変数の値を求める。
【０１３３】
Ｙt−Ｙt+1＝０  （ｔ＝-N-ｈ,・・・,０,・・・,N+ｈ-1）
・・・（２１）
すなわち、式（２０）で表される（２Ｎ＋１）個の混合式と式（２１）で表される（２Ｎ＋ｖ−1）個の拘束式を合わせた（４Ｎ＋ｖ）個の式を用いて、（２Ｎ＋ｖ）個の未知変数である実世界変数（Ｙ-N-h，・・・，Ｙ0，・・・，ＹN+h）を求める。
【０１３４】
ここで、各式において発生する誤差の二乗和が最小となるような推定を行うことで、動きボケ軽減画像生成処理を行いながら、実世界での画素値の変動を小さくできる。
【０１３５】
式（２２）は、図２１に示すように処理領域を設定した場合を示しており、式（２０）と式（２１）にそれぞれの式で発生する誤差を加えたものである。
【０１３６】
【数７】
0004766334.tif 000008
・・・（２２）
【０１３７】
この式（２２）は式（２３）として示すことができ、式（２４）に示す誤差の二乗和Ｅを最小とするようなＹ（＝Ｙi）は式（２５）として求まる。なお、式（２５）において、Ｔは転置行列であることを示している。
【０１３８】
【数８】
0004766334.tif 000009
【０１３９】
ここで、誤差の二乗和は式（２６）で示すものとなり、この誤差の二乗和を偏微分して、式（２７）に示すように偏微分値が０となるようにすれば、誤差の二乗和が最小となる式（２５）を求めることができる。
【０１４０】
【数９】
0004766334.tif 000010
【０１４１】
この式（２５）の線形結合を行うことで、実世界変数（Ｙ-N-h，・・・，Ｙ0，・・・，ＹN+h）をそれぞれ求めることができ、中心画素変数Ｙ0の画素値を注目画素の画素値として出力する。すなわち、中心画素変数Ｙ0に対する係数を動き量毎に求めて処理係数として処理係数設定部３７に記憶させておき、この処理係数設定部３７に記憶されている動き量に応じた処理係数を用いて、画素値と積和演算を行うことにより動きボケが除去された画素値を出力する。このような処理を処理領域内の全画素に対して行うことで、動きボケが軽減されている実世界変数を処理領域について求めることができる。
【０１４２】
上述では、ＡＹ＝Ｘ＋ｅにおける誤差の二乗和Ｅを最小とするように、最小自乗法で実世界変数（Ｙ-N-h，・・・，Ｙ0，・・・，ＹN+h）を求めているが、式の数＝変数の数となるように式を作ることも可能である。この式をＡＹ＝Ｘとき、Ｙ＝Ａ-1Ｘと変形することにより、実世界変数（Ｙ-N-h，・・・，Ｙ0，・・・，ＹN+h）を求めることができる。
【０１４３】
ところで、上述の構成および処理は、シャッタ動作を行う場合、あるいはシャッタ動作を行わない場合のいずれでも適用可能であるが、撮像部１０でシャッタ動作を行わないものとしたときは、時間方向の主要項を用いることで２フレームの画像から注目画素の画素値を得ることが可能となり画像処理装置の構成をさらに簡単にできる。
【０１４４】
ここで、主要項について説明する。上述のモデル式等によって各画素に対して用いられる処理係数を求めると、処理係数は図２２に示すような形状を示すものとなり、処理係数の絶対値が大きくなる部分を生ずる。このような、処理係数の絶対値が大きくなる部分を主要項とする。この主要項の位置は、注目画素Ｐnaを基準として動き方向および動き量に応じた画素位置となる。なお、図２２において、主要項ＭＣa1は注目画素Ｐnaに対して動き方向に最も近接した主要項、主要項ＭＣb1は動き方向とは逆方向で最も近接した主要項を示している。この主要項ＭＣa1，ＭＣb1は、注目画素Ｐnaから動き量ｖの（１／２）だけ動き方向あるいは動き方向と逆方向に離れた位置に生ずるものである。また、注目画素Ｐnaに隣接する主要項は、動き量だけ動き方向あるいは動き方向と逆方向に離れた位置に生ずるものである。
【０１４５】
この主要項を時間方向に用いるものとした場合、主要項の位置は同じ画素位置に重なるものとなる。すなわち、上述の主要項ＭＣa1，ＭＣb1について着目すると、（ｔ−１）フレームの画像上の主要項ＭＣa1の位置は（ｔ）フレームの画像上の主要項ＭＣb1の位置となる。従って、（ｔ−１）フレームと（ｔ）フレームとの真ん中の位相であって、主要項ＭＣa1，ＭＣb1と同じ画素位置は、注目画素Ｐnaに相当する。このため、例えば２フレームの主要項を用いて画素値を算出して、この画素値を２フレームの中間の位相で出力すれば、動きボケが除去された注目画素Ｐnaの画素値を正しく出力できる。
【０１４６】
このように、時空間方向の主要項を使用して、フレーム間の真ん中を、動きボケ除去後の注目画素Ｐnaの出力位相とした動きボケ除去を行う画像処理装置の機能ブロック図を図２３に示す。なお、図２３において、図６と対応する部分については同一符号を付し、詳細な説明は省略する。
【０１４７】
時空間方向の主要項を使用して、フレーム間の真ん中を、動きボケ除去後の注目画素Ｐnaの出力位相とすると、１フレーム分の画像を得るためには、２フレーム分の画像を用いなければならない。このため、図２３に示す画像処理装置の処理領域設定部には、（ｔ−１）フレームタップ選択部３６１aと（ｔ）フレームタップ選択部３６２aを設けるものとする。画素値生成部３８aは、連続する２フレームから抽出された画素値と、処理係数設定部３７から供給された処理係数を用いて、注目画素Ｐnaの動きボケが除去された画素値を、２フレームの真ん中を出力位相として画素値を生成する。
【０１４８】
（ｔ−１）フレームタップ選択部３６１aは、注目画素設定部３５から供給された処理対象画像から、この処理対象画像内の動きボケが生じている動きオブジェクトにおける注目画素の成分が主に含まれる主要項を抽出するため、（ｔ−１）フレームと（ｔ）フレームの真ん中である位相の注目画素に対して空間位置が略同じ位置である画素の画素値を少なくとも抽出して画素値生成部３８に供給する。
【０１４９】
（ｔ）フレームタップ選択部３６２aも（ｔ−１）フレームタップ選択部３６１aと同様に、注目画素設定部３５から供給された処理対象画像から、この処理対象画像内の動きボケが生じている動きオブジェクトにおける注目画素の成分が主に含まれる主要項を抽出するため、２フレームの真ん中である位相の注目画素に対して空間位置が略同じ位置である画素の画素値を少なくとも抽出して画素値生成部３８に供給する。
【０１５０】
処理係数設定部３７aには、動きボケ量に基づいた特定の処理係数、あるいは動きボケ量と動き方向に基づいた処理係数を記憶しておき、動き検出部３３から供給された画像動き情報ｖpに基づき、この画像動き情報ｖpで示された動きボケ量に基づいた特定の処理係数を画素値生成部３８aに供給する。あるいは、画像動き情報ｖpで示された動きボケ量と動き方向に基づいた処理係数を画素値生成部３８aに供給する。
【０１５１】
画素値生成部３８aは、処理係数設定部３７aから動きボケ量に基づいた特定の処理係数が供給されるとき、処理領域設定部３６の（ｔ−１）フレームタップ選択部３６１aから抽出した画素値と画像動き情報ｖpで示された動き方向に応じて、上述の式（３）を用いて処理用の画素値を生成する。この生成した処理用の画素値と特定の処理係数との積和演算を行い画素値を生成する。また、（ｔ）フレームタップ選択部３６２aから抽出した画素値と画像動き情報ｖpで示された動き方向に応じて、新たに処理用の画素値を生成する。この生成した処理用の画素値と特定の処理係数との積和演算を行い画素値を生成する。
【０１５２】
また、画素値生成部３８aは、処理係数設定部３７aから動きボケ量と動き方向に基づいた特定の処理係数が供給されるとき、処理領域設定部３６aの（ｔ−１）フレームタップ選択部３６１aから抽出した画素値と処理係数との積和演算を行い画素値を生成する。また、（ｔ）フレームタップ選択部３６２aから抽出した画素値と処理係数との積和演算を行い画素値を生成する。
【０１５３】
さらに、画素値生成部３８aは、２フレームの注目画素の画素値を用いて単純平均や重み付け加算、メディアンフィルタ処理等を行い１つの注目画素の画素値を生成して、（ｔ）フレームと（ｔ−１）フレームの中間の位相で画像信号ＤＶcとしてガンマ処理部４０に供給する。
【０１５４】
なお、時空間方向の主要項を使用して、フレーム間の真ん中を、動きボケ除去後の注目画素Ｐnaの出力位相とした動きボケ除去を行う場合、主要項の位置は時間方向に対して注目画素の位置に重なるものとなる。従って、（ｔ−１）フレームタップ選択部３６１aと（ｔ）フレームタップ選択部３６２aは、（ｔ−１）フレームと（ｔ）フレームの真ん中である位相の注目画素の位置を基準として、水平および垂直方向に広がりを持った処理領域を設定しておけば、動き方向毎に処理領域を設定しなくとも、画素値生成部３８aで処理係数との積和演算に用いる画素値を得ることができる。
【０１５５】
図２４は、シャッタ動作を行わない場合の画像処理を示すフローチャートである。シャッタ動作を行わない場合、ステップＳＴ５１でＣＰＵ２０１は、注目画像に動きボケの除去を行う注目画素を設定してステップＳＴ５２に進む。ステップＳＴ５２でＣＰＵ２０１は、撮影情報で示されたガンマ値に基づいて注目画素の逆ガンマ処理を行い、実世界の画像を射影したときの画像信号を生成する。ステップＳＴ５３でＣＰＵ２０１は、注目画素の動きベクトルを検出してステップＳＴ５４に進む。
【０１５６】
ステップＳＴ５４でＣＰＵ２０１は、処理領域を設定する。すなわちＣＰＵ２０１は、注目画像の注目画素に基づき、処理対象画像を設定して、この処理対象画像に注目画素を設定する。さらに、各処理対象画像の注目画素を基準として、ステップＳＴ５３で求めた動きベクトルに応じた処理領域を設定してステップＳＴ５５に進む。ステップＳＴ５５でＣＰＵ２０１は、ステップＳＴ５３で求めた動きベクトルの動き方向あるいは動き方向と動き量に応じて処理係数を設定してステップＳＴ５６に進む。
【０１５７】
ステップＳＴ５６でＣＰＵ２０１は、ステップＳＴ５５で設定した処理係数を用いてボケ除去処理を各処理対象画像に対して行う。すなわち、各処理対象画像に対してステップＳＴ５４で設定した処理範囲の画素値とステップＳＴ５５で設定した処理係数との積和演算を行い、注目画素の動きボケ除去処理後の画素値を生成してステップＳＴ５７に進む。
【０１５８】
ステップＳＴ５７でＣＰＵ２０１は、撮影情報で示されたガンマ値を用いて注目画素に対するガンマ処理を行い、ガンマ処理後の画素値を画像信号ＤＶoutとして出力する。
【０１５９】
ステップＳＴ５８でＣＰＵ２０１は、処理範囲の全画素に対してボケ除去処理が完了したか否かを判別し、ボケ除去処理が行われていない画素があるときはステップＳＴ５１に戻り、処理範囲の全画素に対してボケ除去が完了したときは注目画像に対する画像処理を終了する。このように、上述の図１０におけるステップＳＴ４の動きボケ量の検出が不要となり、より簡単な処理で動きボケ除去を行うことができる。
【０１６０】
処理係数設定部３７aに記憶させる処理係数は、上述のモデル式を用いて求めることができる。すなわち、式（２１）に示すように隣接画素差分＝０とする拘束を導入して、式（２２）に示す足し込み特性を用いることにより、実世界変数に対応する静止画像内の注目画素を含む第１の領域の画素（式（２２）に示すＹ8〜Ｙ-8に相当）と、注目画素の空間位置と同じ動きボケを生じた画像内の画素を含む第２の領域の画素（式（２２）に示すＸ6〜Ｘ-6に相当）間で行列演算を行い、注目画素に相当する中心画素変数Ｙ0の算出に用いる係数を処理係数として処理係数設定部３７aに記憶させる。このように、中心画素変数Ｙ0の算出に用いる係数を処理係数として用いるものとすれば、周辺画像の画素値を用いて動きボケが除去された画素値を算出できる。
【０１６１】
図２５は、モデル式を用いて処理係数の生成を行う係数生成装置の機能ブロック図である。動き設定部７１は、動き方向の設定や動き量の設定を行い、設定された動き方向や動き量を示す動き情報ＭＨを行列式生成部７５１に供給する。
【０１６２】
処理係数生成部７５の行列式生成部７５１は、動き情報ＭＨに基づき、画像に動きボケを付加した少なくとも２つの画像からなるモデルを構築し、２つの画像例えば（ｔ−１）フレームと（ｔ）フレームの画像の画像間に位置する注目画素の空間的位置と略同じ２つの画像内の周辺画素の画素値の足し込み特性と、隣接画素差分＝０とする拘束により行列式を生成する。
【０１６３】
ここで、例えば動き量ｖ＝５の場合における処理係数の生成手法について説明する。この場合、図１９のようなモデルを構築し、行列式を生成する。主要項は画素値Ｘ-3、Ｘ-2、Ｘ2、Ｘ3の画素に相当するので、行列式は式（２８）として示すことができる。
【０１６４】
【数１０】
0004766334.tif 000011
・・・（２８）
【０１６５】
これより、Ｙ0を求めるための行列式を式（２５）のように一意に求めることができる。すなわち、動き量ｖ＝５における主要項の画素値Ｘ-3, Ｘ-2, Ｘ2, Ｘ3に線形結合される処理係数（行列式）を求めることができる。上述の式では未知数Ｙと式の数が一致するように拘束式を追加しているが、式（２２）のように、さらに拘束式を追加して未知数Ｙ＜式の数として、最小二乗法を用いて処理係数を求めてもかまわない。これより、行列式生成部７５１は、動き量毎に上述のように行列式を生成し、係数決定部７５２は、動き量毎に処理係数を求めることができる。また、動き量ｖ＝４の場合、主要項の画素値は画素値Ｘ-3、Ｘ-2、Ｘ-1、Ｘ1 、Ｘ2、Ｘ3となるので、行列式は式（２９）となる。
【０１６６】
【数１１】
0004766334.tif 000012
【０１６７】
ところで、動き量ｖが奇数画素数分であるとき、中心画素変数Ｙ0は図２１に示すように時間的に位相が中央となっている。しかし、動き量ｖが偶数画素数分であるとき、中心画素変数Ｙ0は図２６Ａに示すように時間的に位相が中央とならず位相差を生じてしまう。このため、仮想分割数を２倍として、図２６Ｂに示すように１フレーム期間を等時間間隔で８分割する。さらに、Ｙ0aとＹ1bを加算することで、動き量ｖが奇数画素分であるときの中心画素変数Ｙ0と同様に、時間的に位相が中央である値を得ることができる。
【０１６８】
また、空間的位相を考えたとき、動き量が奇数画素分である場合の主要項は、２つの連続する画素単位で係数が大きく変化する。このため、主要項を用いて注目画素Ｐnaを求めるものとした場合は、注目画素Ｐnaの位相が２つの画素の中央となる。すなわち、動きボケ除去後の画像は、（ｔ−１）フレームおよび（ｔ）フレームの画像に対して１／２画素分だけ位相がずれたものとなる。
【０１６９】
また、１／２画素分の位相のずれを防止する場合は、図２７に示すように、中心画素変数Ｙ0 に対する処理係数ＫＣ-y0と変数Ｙ1(あるいはＹ-1) に対する処理係数ＫＣ-y1と加算して１／２倍とした処理係数ＫＣを用いるものとすれば良い。なお、図２７において、丸印は画素位置を示している。このように処理係数ＫＣを生成すると、主要項ＭＣは３画素単位となることから、主要項ＭＣと処理係数ＫＣを用いることにより、注目画素Ｐnaの位相が（ｔ−１）フレームおよび（ｔ）フレームの画像の画素と等しくなり、（ｔ−１）フレームおよび（ｔ）フレームの画像と位相が等しい動きボケ除去画像を得ることができる。図２６Ｂに示すように動き量ｖが偶数画素分の場合、仮想分割数が２倍とされているので、変数Ｙ0aは変数Ｙ0の１／２倍、変数Ｙ1bは変数Ｙ1の１／２倍であり、変数Ｙ0aと変数Ｙ1bを加算することで、中心画素変数Ｙ0 に対する処理係数ＫＣ-y0と変数Ｙ1 に対する処理係数ＫＣ-y1を加算して１／２倍したものと同等となり、動き量ｖが偶数画素分であるときの主要項は３画素単位となる。
【０１７０】
このため、上述のように動き量ｖが偶数画素分であるときや、動き量が奇数画素分であるときに主要項を３画素単位に変換して処理係数を設定して記憶させておけば、動きボケが除去された注目画素の画素値を、２つのフレームの画素と同じ画素位置で出力させることができる。
【０１７１】
次に、主要項に対する処理係数を学習によって求める場合について説明する。図２８Ａと図２８Ｂに示すように、教師画像を移動して、教師画像に対して（ｔ−１）フレームと（ｔ）フレームの生徒画像を生成する。また、生徒画像に対して主要項を基準とした予測タップを構築して学習を行い、予測タップに対する処理係数を求める。ここで、教師画像は、（ｔ−１）フレームと（ｔ）フレームの生徒画像の中間の位相である。また、教師画像上の注目画素と対応する生徒画像上の位置は、図２２から明らかなように主要項の位置に相当する。従って、予測タップは、教師画像上の注目画素と対応する生徒画像上の位置を基準として、水平および垂直方向に広がりを持って設定する。なお、図２８Ａはプログレッシブフォーマットの場合を示しており、斜線で示す画素は注目画素であることを示している。また、インタレースフォーマットの画像信号を用いる場合には、図２８Ｂに示すように例えば（ｔ−１）フィールドのライン間の位置を基準として予測タップを構築する。このように予測タップを構築して、上述したように正規方程式の演算を行って処理係数を生成する。
【０１７２】
図２９Ａおよび図２９Ｂは学習によって求めた処理係数の具体例を示している。図２９Ａは、動き量を２０，動き方向を０度としたときの（ｔ−１）フィールド用の処理係数と（ｔ）フィールド用の処理係数である。また、図２９Ｂは、動き量を２０，動き方向を４５度としたときの（ｔ−１）フィールド用の処理係数と（ｔ）フィールド用の処理係数である。ここで、（ｔ）フィールドの注目画素の画素値を算出する場合、（ｔ）フレームタップ選択部３６２aは、注目画素の空間位置と略同じ位置の画素の画素値を少なくとも抽出する際に、図２９Ａや図２９Ｂに示す予測タップの画素値、あるいは破線で示すように０度方向や４５度方向の予測タップの画素値を抽出する。また画素値生成部３８aは、破線で示すように０度方向や４５度方向の処理係数と、予測タップの画素値を用いて積和演算を行い注目画素の画素値を算出する。また、（ｔ−１）フィールドの注目画素の画素値を算出する場合、（ｔ）フレームタップ選択部３６２aは、図２９Ａや図２９Ｂに示す予測タップの画素値、あるいは破線で示すように０度方向や４５度方向で注目画素に跨る２ライン相当の予測タップの画素値を抽出する。また、画素値生成部３８aは、破線で示すように０度方向や４５度方向で注目画素に跨る２ライン相当の処理係数と予測タップの画素値を用いて積和演算を行う。さらに、２ライン相当で積和演算を行っていることから、積和演算結果を１／２倍して注目画素の画素値とする。なお、図２９Ａと図２９Ｂにおいて、積和演算に用いる処理係数は図２２に示す主要項の処理係数の形状と同様となっていることがわかる。
【０１７３】
このようにシャッタ動作を行わない場合、動きボケ量検出部３４や統合部３９を設けることなく、簡単な構成で動きボケ除去を行うことができる。また、主要項を時間方向例えば複数フレームや複数フィールド分用いることで、ロバストな動きボケ除去処理を行うことができる。
【０１７４】
ところで動きボケ除去は、動画像に限られるものではなく、静止画像に対しても行うことができる。図３０は、静止画像の動きボケ除去を行う画像処理装置の構成を示している。なお、図３０においても図６と対応する部分については同一符号を付している。
【０１７５】
静止画像を用いる場合、画像信号ＤＶbから動き検出を行うことはできない。従って、撮影情報検出部３１で検出した撮像部１０の動きを示す撮像部動き情報Ｓcmに基づき、処理領域設定部３６bでは、注目画素あるいは主要項を基準として処理領域を設定する。また、処理係数設定部３７bは撮像部動き情報Ｓcmに基づき処理係数を設定する。画素値生成部３８bは、処理領域の画素値と処理係数に基づき積和演算処理を行い、動きボケ除去処理後の画素値を生成してガンマ処理部４０に供給する。このように、静止画像であっても、撮像部１０の動きを示す撮像部動き情報Ｓcmを用いることで動きボケ除去処理を行うことができる。
【０１７６】
静止画像を用いる場合の処理係数の生成は、図１９に示すように、空間方向にタップを張って、上述の式（２２）を利用すれば生成できる。ここで、動画像の場合には、２フレームの真ん中を出力位相とすることで主要項が注目画素の位置となる。しかし、静止画像の場合、注目画素は主要項の位置とならない。また、動き量が大きくなるに伴い、注目画素と主要項との間隔が広くなり、注目画素を基準としたとき、主要項の位置が固定した位置とならない。従って、動き量と動き方向に応じた処理係数を生成して、動き量と動き方向に応じた処理係数を選択して用いるものとして、主要項に対応する画素の画素値との積和演算を行うことにより、静止画像の動きボケ除去を精度良く行うことが可能となる。
【産業上の利用可能性】
【０１７７】
以上のように、本発明に係る画像処理装置と画像処理方法および画像処理プログラムは、撮像部を用いて現実社会を撮像して得られる画像信号に埋もれてしまった情報を抽出する際に有用であり、動きボケを除去した解像度の高い画像を得る場合に好適である。
【図面の簡単な説明】
【０１７８】
図１は、システムの構成を示す図である。
図２は、撮像部による撮像を説明するための図である。
図３Ａと図３Ｂは、撮像画像を説明するための図である。
図４は、画素値の時間方向分割動作を説明するための図である。
図５は、シャッタ動作を行ったときの画素値の時間方向分割動作を説明するための図である。
図６は、画像処理装置の機能ブロック図である。
図７は、ソフトウェアを用いるときの画像処理装置の構成を示す図である。
図８は、処理領域を説明するための図である。
図９は、画素値の算出方法を説明するための図である。
図１０は、画像処理を示すフローチャートである。
図１１は、処理係数を学習によって求めてボケ除去処理を行う場合の構成を示す図である。
図１２は、学習部の機能ブロック図である。
図１３は、予測タップを離散的に選択する場合の動作を説明するための図である。
図１４は、アクティビティの算出を説明するための図である。
図１５は、処理係数の学習処理を示すフローチャートである。
図１６は、クラス分類を用いた画像処理のフローチャートである。
図１７は、クラス分類を行う場合の学習部の機能ブロック図である。
図１８は、クラス分類を用いた処理係数の学習処理を示すフローチャートである。
図１９は、処理領域を説明するための図である。
図２０Ａと図２０Ｂは、処理領域の設定例を示す図である。
図２１は、処理領域における実世界変数の時間混合（動き量ｖ＝５の場合）を説明するための図である。
図２２は、主要項と処理係数を説明するための図である。
図２３は、画像処理装置の他の機能ブロック図である。
図２４は、シャッタ動作を行わないときの画像処理を示すフローチャートである。
図２５は、係数生成装置の機能ブロック図である。
図２６Ａと図２６Ｂは、処理領域における実世界変数の時間混合（動き量ｖ＝４の場合）を説明するための図である。
図２７は、空間方向の位相を一致させるときの主要項と処理係数を説明するための図である。
図２８Ａと図２８Ｂは、学習によって処理係数を求める場合の動作を説明するための図である。
図２９Ａと図２９Ｂは、予測タップに対する処理係数を示す図である。
図３０は、静止画像の動きボケ除去処理を行う画像処理装置の機能ブロック図である。
【図１】
0004766334.tif 000013
【図２】
0004766334.tif 000014
【図３Ａ】
0004766334.tif 000015
【図３Ｂ】
0004766334.tif 000016
【図４】
0004766334.tif 000017
【図５】
0004766334.tif 000018
【図６】
0004766334.tif 000019
【図７】
0004766334.tif 000020
【図８】
0004766334.tif 000021
【図９】
0004766334.tif 000022
【図１０】
0004766334.tif 000023
【図１１】
0004766334.tif 000024
【図１２】
0004766334.tif 000025
【図１３】
0004766334.tif 000026
【図１４】
0004766334.tif 000027
【図１５】
0004766334.tif 000028
【図１６】
0004766334.tif 000029
【図１７】
0004766334.tif 000030
【図１８】
0004766334.tif 000031
【図１９】
0004766334.tif 000032
【図２０Ａ】
0004766334.tif 000033
【図２０Ｂ】
0004766334.tif 000034
【図２１】
0004766334.tif 000035
【図２２】
0004766334.tif 000036
【図２３】
0004766334.tif 000037
【図２４】
0004766334.tif 000038
【図２５】
0004766334.tif 000039
【図２６Ａ】
0004766334.tif 000040
【図２６Ｂ】
0004766334.tif 000041
【図２７】
0004766334.tif 000042
【図２８Ａ】
0004766334.tif 000043
【図２８Ｂ】
0004766334.tif 000044
【図２９Ａ】
0004766334.tif 000045
【図２９Ｂ】
0004766334.tif 000046
【図３０】
0004766334.tif 000047