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