(57)【要約】      （修正有）【課題】ぶれの発生している画像データからぶれのない画像データを安価で高速に復元する。【解決手段】画像データ修復部は、撮像時における撮像素子のＹ方向へのぶれに関するぶれ情報を内部メモリから取得し、ぶれ情報に基づいて、ぶれ情報に基づくぶれがない状態で被写体を撮像したときに得られる理想的な画像データを、内部メモリに記録されている静止画像データから復元するための復元行列であって、該理想的な画像データのＹ方向への広がりを表すぶれ伝達関数の行列表現であるぶれ行列の擬似逆行列である復元行列を生成し、この復元行列と静止画像データとにより、理想的な画像データを復元する。ここで、復元行列は、静止画像データのＹ方向の総画素データ数ｎと同じ数のデータからなるｎ個の行ベクトルＤｔで構成される。【選択図】図６
2008061101.tif 000002
【特許請求の範囲】
【請求項１】
被写体を撮像素子によって撮像して得られた静止画像データを、前記撮像時における前記撮像素子の一次元方向へのぶれに関するぶれ情報に基づいて修復する画像データ修復装置であって、
前記ぶれ情報に基づくぶれがない状態で前記被写体を撮像したときに得られる理想的な画像データを前記静止画像データから復元するための復元行列であって、前記ぶれ情報に基づくぶれによる前記理想的な画像データの前記一次元方向への広がりを表すぶれ伝達関数の行列表現であるぶれ行列の擬似逆行列である復元行列を、前記ぶれ情報に基づいて生成する復元行列生成手段と、
前記復元行列生成手段で生成された前記復元行列と前記静止画像データとにより、前記理想的な画像データを復元する画像データ復元手段とを備え、
前記復元行列は、前記静止画像データの前記一次元方向の総画素データ数ｎと同じ数のデータからなるｎ個の行ベクトルＤｔ（ｔ＝１，２，３，・・・，ｎ）で構成され、
前記復元行列生成手段は、前記ぶれ情報に対応するぶれ伝達関数の逆特性である逆ぶれ伝達関数のインパルス応答に基づいて、前記ｎ個の行ベクトルＤｔを生成する画像データ修復装置。
【請求項２】
請求項１記載の画像データ修復装置であって、
前記復元行列生成手段が、前記逆ぶれ伝達関数のインパルス応答を求めるインパルス応答算出手段と、メモリ上に“０”を（ｔ−１）個並べ、その後に、前記インパルス応答算出手段から時系列で算出されるデータの先頭から（ｎ−ｔ）番目までのデータを並べた行ベクトルｄｔを生成する行ベクトルｄｔ生成手段と、前記行ベクトルｄｔの総和Σｄｔを“１”から減算する減算手段と、前記行ベクトルｄｔの最後に前記減算手段で得られたデータ｛１−Σｄｔ｝を配置して前記行ベクトルＤｔを生成する行ベクトル生成手段とを含む画像データ修復装置。
【請求項３】
請求項２記載の画像データ修復装置であって、
前記インパルス応答算出手段が、前記ぶれ情報に応じてフィルタ係数が決定されるＩＩＲ（Infinite Impulse Response）フィルタ回路と、前記ＩＩＲフィルタ回路に単位インパルスを入力する単位インパルス入力手段とで構成される画像データ修復装置。
【請求項４】
請求項１〜３のいずれか１項記載の画像データ修復装置であって、
前記画像データ復元手段は、前記復元行列生成手段で生成された前記ｎ個の行ベクトルＤ１〜Ｄｎの各々に前記静止画像データを順次掛けていくことで、前記理想的な画像データを復元する画像データ修復装置。
【請求項５】
請求項１〜４のいずれか１項記載の画像データ修復装置であって、
前記復元行列生成手段で生成された復元行列に起因して前記画像データ復元手段によって復元された画像データに前記一次元方向に向かって周期的に重畳される複数種類のノイズを算出するノイズ算出手段と、
前記ノイズ算出手段で算出されたノイズを前記画像データ復元手段によって復元された画像データから除去するノイズ除去手段と、
前記復元行列生成手段で生成された復元行列と前記ぶれ行列との積により、前記複数種類のノイズ毎のノイズ重畳周期に関するノイズ周期情報を生成するノイズ周期情報生成手段とを備え、
前記ノイズ算出手段が、前記ノイズ周期情報と前記画像データ復元手段によって復元された画像データと前記静止画像データとに基づいて、前記複数種類のノイズを算出する画像データ修復装置。
【請求項６】
請求項５記載の画像データ修復装置であって、
前記ノイズ周期情報生成手段が、前記復元行列生成手段で生成された前記ｎ個の行ベクトルＤ１〜Ｄｎの各々に前記ぶれ行列を順次掛けていくことで得られるデータにより、前記ノイズ周期情報を生成する画像データ修復装置。
【請求項７】
請求項１〜６のいずれか１項記載の画像データ修復装置であって、
前記静止画像データ及び前記画像データ復元手段で復元された画像データは、それぞれ、前記一次元方向に並ぶ多数の画素データからなる画素データ列が前記一次元方向と直交する方向に多数配列された構成であり、
前記ノイズ算出手段が、前記画像データ復元手段によって復元された画像データの各画素データ列の復元もととなった前記静止画像データの画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎にサンプリングする第１のサンプリング手段と、前記復元もととなった前記静止画像データの画素データ列から復元された画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎に前記第１のサンプリング手段と同一数サンプリングする第２のサンプリング手段と、前記第２のサンプリング手段によってサンプリングされた画素データの積算値から前記第１のサンプリング手段によってサンプリングされた画素データの積算値を減算した値を前記サンプリングした数で割って前記ノイズを算出する割り算手段とを含む画像データ修復装置。
【請求項８】
請求項１〜７のいずれか１項記載の画像データ修復装置と、
前記撮像素子と、
前記撮像素子の出力信号から前記静止画像データを生成する静止画像データ生成手段と、
前記撮像時における前記撮像素子の前記一次元方向へのぶれを検出して前記ぶれ情報を生成するぶれ情報生成手段とを備える撮像装置。
【請求項９】
被写体を撮像素子によって撮像して得られた静止画像データを、前記撮像時における前記撮像素子の一次元方向へのぶれに関するぶれ情報に基づいて修復する画像データ修復方法であって、
前記ぶれ情報に基づくぶれがない状態で前記被写体を撮像したときに得られる理想的な画像データを前記静止画像データから復元するための復元行列であって、前記ぶれ情報に基づくぶれによる前記理想的な画像データの前記一次元方向への広がりを表すぶれ伝達関数の行列表現であるぶれ行列の擬似逆行列である復元行列を、前記ぶれ情報に基づいて生成する復元行列生成ステップと、
前記復元行列生成ステップで生成された前記復元行列と前記静止画像データとにより、前記理想的な画像データを復元する画像データ復元ステップとを備え、
前記復元行列は、前記静止画像データの前記一次元方向の総画素データ数ｎと同じ数のデータからなるｎ個の行ベクトルＤｔ（ｔ＝１，２，３，・・・，ｎ）で構成され、
前記復元行列生成ステップでは、前記ぶれ情報に対応するぶれ伝達関数の逆特性である逆ぶれ伝達関数のインパルス応答に基づいて、前記ｎ個の行ベクトルＤｔを生成する画像データ修復方法。
【請求項１０】
請求項９記載の画像データ修復方法であって、
前記復元行列生成ステップが、前記逆ぶれ伝達関数のインパルス応答を求めるインパルス応答算出ステップと、メモリ上に“０”を（ｔ−１）個並べ、その後に、前記インパルス応答算出ステップにより時系列で算出されるデータの先頭から（ｎ−ｔ）番目までのデータを並べた行ベクトルｄｔを生成する行ベクトルｄｔ生成ステップと、前記行ベクトルｄｔの総和Σｄｔを“１”から減算する減算ステップと、前記行ベクトルｄｔの最後に前記減算ステップで得られたデータ｛１−Σｄｔ｝を配置して前記行ベクトルＤｔを生成する行ベクトル生成ステップとを含む画像データ修復方法。
【請求項１１】
請求項１０記載の画像データ修復方法であって、
前記インパルス応答算出ステップが、単位インパルスを生成する単位インパルス生成ステップと、前記単位インパルスに対し、前記ぶれ情報に応じてフィルタ係数が決定されるＩＩＲフィルタ処理を実行するＩＩＲフィルタ処理ステップを含む画像データ修復方法。
【請求項１２】
請求項９〜１１のいずれか１項記載の画像データ修復方法であって、
前記画像データ復元ステップでは、前記復元行列生成ステップで生成された前記ｎ個の行ベクトルＤ１〜Ｄｎの各々に前記静止画像データを順次掛けていくことで、前記理想的な画像データを復元する画像データ修復方法。
【請求項１３】
請求項９〜１２のいずれか１項記載の画像データ修復方法であって、
前記復元行列生成ステップで生成された復元行列に起因して、前記画像データ復元ステップによって復元された画像データに前記一次元方向に向かって周期的に重畳される複数種類のノイズを算出するノイズ算出ステップと、
前記ノイズ算出ステップで算出されたノイズを前記画像データ復元ステップによって復元された画像データから除去するノイズ除去ステップと、
前記復元行列生成ステップで生成された復元行列と前記ぶれ行列との積により、前記複数種類のノイズ毎のノイズ重畳周期に関するノイズ周期情報を生成するノイズ周期情報生成ステップとを備え、
前記ノイズ算出ステップでは、前記ノイズ周期情報と前記画像データ復元ステップによって復元された画像データと前記静止画像データとに基づいて、前記複数種類のノイズを算出する画像データ修復方法。
【請求項１４】
請求項１３記載の画像データ修復方法であって、
前記ノイズ周期情報生成ステップでは、前記復元行列生成ステップで生成された前記ｎ個の行ベクトルＤ１〜Ｄｎの各々に前記ぶれ行列を順次掛けていくことで得られるデータにより、前記ノイズ周期情報を生成する画像データ修復方法。
【請求項１５】
請求項９〜１４のいずれか１項記載の画像データ修復方法であって、
前記静止画像データ及び前記画像データ復元ステップで復元された画像データは、それぞれ、前記一次元方向に並ぶ多数の画素データからなる画素データ列が前記一次元方向と直交する方向に多数配列された構成であり、
前記ノイズ算出ステップが、前記画像データ復元ステップによって復元された画像データの各画素データ列の復元もととなった前記静止画像データの画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎にサンプリングする第１のサンプリングステップと、前記復元もととなった前記静止画像データの画素データ列から復元された画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎に前記第１のサンプリングステップと同一数サンプリングする第２のサンプリングステップと、前記第２のサンプリングステップによってサンプリングされた画素データの積算値から前記第１のサンプリングステップによってサンプリングされた画素データの積算値を減算した値を前記サンプリングした数で割って前記ノイズを算出する割り算ステップとを含む画像データ修復方法。
【請求項１６】
請求項９〜１５のいずれか１項記載の画像データ修復方法の各ステップをコンピュータに実行させるための画像データ修復プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体を撮像素子によって撮像して得られた静止画像データを修復する画像データ修復装置に関する。
【背景技術】
【０００２】
一般に、被写体像を光電変換し、コンピュータ等の演算装置を用いて画像処理を行なう装置がある。この画像処理装置を用いて、撮影時の手ぶれ等により生じた画像の劣化を修復する技術・装置に関して提案されている。このような画像修復処理では、画像の劣化につながる像のある１点のその周辺の像への滲みや広がりを広がり関数として数学的に扱い、演算処理を可能にしている。
【０００３】
例えば、特許文献１には、広がり関数の行列表現であるぶれ行列の擬似逆行列を、不足データを外挿することにより求め、この擬似逆行列とぶれのある画像データとの掛け算により、ぶれのない画像データを復元する方法が開示されている。
【０００４】
【特許文献１】特開平６−１１８４６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された方法のように、ぶれのない画像データを復元するには、ぶれ行列の擬似逆行列を求める必要がある。擬似逆行列を求めるには、不足データを外挿することでぶれ行列の近似行列を生成し、この近似行列の逆行列を求めるといった手順を踏む必要がある。この逆行列を求める方法には、Gauss-Jordan法、LU分解による方法、特異値分解（SVD）による方法等がある。しかし、これらの方法はいずれも計算量が多く、メモリも消費するといった課題がある。
【０００６】
本発明は、上記事情に鑑みてなされたものであり、ぶれの発生している画像データからぶれの発生していない画像データを復元する処理を、安価な構成で且つ高速に行うことが可能な画像データ修復装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題は以下の（１）〜（１６）によって解決される。
【０００８】
（１）被写体を撮像素子によって撮像して得られた静止画像データを、前記撮像時における前記撮像素子の一次元方向へのぶれに関するぶれ情報に基づいて修復する画像データ修復装置であって、前記ぶれ情報に基づくぶれがない状態で前記被写体を撮像したときに得られる理想的な画像データを前記静止画像データから復元するための復元行列であって、前記ぶれ情報に基づくぶれによる前記理想的な画像データの前記一次元方向への広がりを表すぶれ伝達関数の行列表現であるぶれ行列の擬似逆行列である復元行列を、前記ぶれ情報に基づいて生成する復元行列生成手段と、前記復元行列生成手段で生成された前記復元行列と前記静止画像データとにより、前記理想的な画像データを復元する画像データ復元手段とを備え、前記復元行列は、前記静止画像データの前記一次元方向の総画素データ数ｎと同じ数のデータからなるｎ個の行ベクトルＤｔ（ｔ＝１，２，３，・・・，ｎ）で構成され、前記復元行列生成手段は、前記ぶれ情報に対応するぶれ伝達関数の逆特性である逆ぶれ伝達関数のインパルス応答に基づいて、前記ｎ個の行ベクトルＤｔを生成する画像データ修復装置。
【０００９】
（２）（１）記載の画像データ修復装置であって、前記復元行列生成手段が、前記逆ぶれ伝達関数のインパルス応答を求めるインパルス応答算出手段と、メモリ上に“０”を（ｔ−１）個並べ、その後に、前記インパルス応答算出手段から時系列で算出されるデータの先頭から（ｎ−ｔ）番目までのデータを並べた行ベクトルｄｔを生成する行ベクトルｄｔ生成手段と、前記行ベクトルｄｔの総和Σｄｔを“１”から減算する減算手段と、前記行ベクトルｄｔの最後に前記減算手段で得られたデータ｛１−Σｄｔ｝を配置して前記行ベクトルＤｔを生成する行ベクトル生成手段とを含む画像データ修復装置。
【００１０】
（３）（２）記載の画像データ修復装置であって、前記インパルス応答算出手段が、前記ぶれ情報に応じてフィルタ係数が決定されるＩＩＲ（Infinite Impulse Response）フィルタ回路と、前記ＩＩＲフィルタ回路に単位インパルスを入力する単位インパルス入力手段とで構成される画像データ修復装置。
【００１１】
（４）（１）〜（３）のいずれか１項記載の画像データ修復装置であって、前記画像データ復元手段は、前記復元行列生成手段で生成された前記ｎ個の行ベクトルＤ１〜Ｄｎの各々に前記静止画像データを順次掛けていくことで、前記理想的な画像データを復元する画像データ修復装置。
【００１２】
（５）（１）〜（４）のいずれか１項記載の画像データ修復装置であって、前記復元行列生成手段で生成された復元行列に起因して前記画像データ復元手段によって復元された画像データに前記一次元方向に向かって周期的に重畳される複数種類のノイズを算出するノイズ算出手段と、前記ノイズ算出手段で算出されたノイズを前記画像データ復元手段によって復元された画像データから除去するノイズ除去手段と、前記復元行列生成手段で生成された復元行列と前記ぶれ行列との積により、前記複数種類のノイズ毎のノイズ重畳周期に関するノイズ周期情報を生成するノイズ周期情報生成手段とを備え、前記ノイズ算出手段が、前記ノイズ周期情報と前記画像データ復元手段によって復元された画像データと前記静止画像データとに基づいて、前記複数種類のノイズを算出する画像データ修復装置。
【００１３】
（６）（５）記載の画像データ修復装置であって、前記ノイズ周期情報生成手段が、前記復元行列生成手段で生成された前記ｎ個の行ベクトルＤ１〜Ｄｎの各々に前記ぶれ行列を順次掛けていくことで得られるデータにより、前記ノイズ周期情報を生成する画像データ修復装置。
【００１４】
（７）（１）〜（６）のいずれか１項記載の画像データ修復装置であって、前記静止画像データ及び前記画像データ復元手段で復元された画像データは、それぞれ、前記一次元方向に並ぶ多数の画素データからなる画素データ列が前記一次元方向と直交する方向に多数配列された構成であり、前記ノイズ算出手段が、前記画像データ復元手段によって復元された画像データの各画素データ列の復元もととなった前記静止画像データの画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎にサンプリングする第１のサンプリング手段と、前記復元もととなった前記静止画像データの画素データ列から復元された画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎に前記第１のサンプリング手段と同一数サンプリングする第２のサンプリング手段と、前記第２のサンプリング手段によってサンプリングされた画素データの積算値から前記第１のサンプリング手段によってサンプリングされた画素データの積算値を減算した値を前記サンプリングした数で割って前記ノイズを算出する割り算手段とを含む画像データ修復装置。
【００１５】
（８）（１）〜（７）のいずれか１項記載の画像データ修復装置と、前記撮像素子と、前記撮像素子の出力信号から前記静止画像データを生成する静止画像データ生成手段と、前記撮像時における前記撮像素子の前記一次元方向へのぶれを検出して前記ぶれ情報を生成するぶれ情報生成手段とを備える撮像装置。
【００１６】
（９）被写体を撮像素子によって撮像して得られた静止画像データを、前記撮像時における前記撮像素子の一次元方向へのぶれに関するぶれ情報に基づいて修復する画像データ修復方法であって、前記ぶれ情報に基づくぶれがない状態で前記被写体を撮像したときに得られる理想的な画像データを前記静止画像データから復元するための復元行列であって、前記ぶれ情報に基づくぶれによる前記理想的な画像データの前記一次元方向への広がりを表すぶれ伝達関数の行列表現であるぶれ行列の擬似逆行列である復元行列を、前記ぶれ情報に基づいて生成する復元行列生成ステップと、前記復元行列生成ステップで生成された前記復元行列と前記静止画像データとにより、前記理想的な画像データを復元する画像データ復元ステップとを備え、前記復元行列は、前記静止画像データの前記一次元方向の総画素データ数ｎと同じ数のデータからなるｎ個の行ベクトルＤｔ（ｔ＝１，２，３，・・・，ｎ）で構成され、前記復元行列生成ステップでは、前記ぶれ情報に対応するぶれ伝達関数の逆特性である逆ぶれ伝達関数のインパルス応答に基づいて、前記ｎ個の行ベクトルＤｔを生成する画像データ修復方法。
【００１７】
（１０）（９）記載の画像データ修復方法であって、前記復元行列生成ステップが、前記逆ぶれ伝達関数のインパルス応答を求めるインパルス応答算出ステップと、メモリ上に“０”を（ｔ−１）個並べ、その後に、前記インパルス応答算出ステップにより時系列で算出されるデータの先頭から（ｎ−ｔ）番目までのデータを並べた行ベクトルｄｔを生成する行ベクトルｄｔ生成ステップと、前記行ベクトルｄｔの総和Σｄｔを“１”から減算する減算ステップと、前記行ベクトルｄｔの最後に前記減算ステップで得られたデータ｛１−Σｄｔ｝を配置して前記行ベクトルＤｔを生成する行ベクトル生成ステップとを含む画像データ修復方法。
【００１８】
（１１）（１０）記載の画像データ修復方法であって、前記インパルス応答算出ステップが、単位インパルスを生成する単位インパルス生成ステップと、前記単位インパルスに対し、前記ぶれ情報に応じてフィルタ係数が決定されるＩＩＲフィルタ処理を実行するＩＩＲフィルタ処理ステップを含む画像データ修復方法。
【００１９】
（１２）（９）〜（１１）のいずれか１項記載の画像データ修復方法であって、前記画像データ復元ステップでは、前記復元行列生成ステップで生成された前記ｎ個の行ベクトルＤ１〜Ｄｎの各々に前記静止画像データを順次掛けていくことで、前記理想的な画像データを復元する画像データ修復方法。
【００２０】
（１３）（９）〜（１２）のいずれか１項記載の画像データ修復方法であって、前記復元行列生成ステップで生成された復元行列に起因して、前記画像データ復元ステップによって復元された画像データに前記一次元方向に向かって周期的に重畳される複数種類のノイズを算出するノイズ算出ステップと、前記ノイズ算出ステップで算出されたノイズを前記画像データ復元ステップによって復元された画像データから除去するノイズ除去ステップと、前記復元行列生成ステップで生成された復元行列と前記ぶれ行列との積により、前記複数種類のノイズ毎のノイズ重畳周期に関するノイズ周期情報を生成するノイズ周期情報生成ステップとを備え、前記ノイズ算出ステップでは、前記ノイズ周期情報と前記画像データ復元ステップによって復元された画像データと前記静止画像データとに基づいて、前記複数種類のノイズを算出する画像データ修復方法。
【００２１】
（１４）（１３）記載の画像データ修復方法であって、前記ノイズ周期情報生成ステップでは、前記復元行列生成ステップで生成された前記ｎ個の行ベクトルＤ１〜Ｄｎの各々に前記ぶれ行列を順次掛けていくことで得られるデータにより、前記ノイズ周期情報を生成する画像データ修復方法。
【００２２】
（１５）（９）〜（１４）のいずれか１項記載の画像データ修復方法であって、前記静止画像データ及び前記画像データ復元ステップで復元された画像データは、それぞれ、前記一次元方向に並ぶ多数の画素データからなる画素データ列が前記一次元方向と直交する方向に多数配列された構成であり、前記ノイズ算出ステップが、前記画像データ復元ステップによって復元された画像データの各画素データ列の復元もととなった前記静止画像データの画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎にサンプリングする第１のサンプリングステップと、前記復元もととなった前記静止画像データの画素データ列から復元された画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎に前記第１のサンプリングステップと同一数サンプリングする第２のサンプリングステップと、前記第２のサンプリングステップによってサンプリングされた画素データの積算値から前記第１のサンプリングステップによってサンプリングされた画素データの積算値を減算した値を前記サンプリングした数で割って前記ノイズを算出する割り算ステップとを含む画像データ修復方法。
【００２３】
（１６）（９）〜（１５）のいずれか１項記載の画像データ修復方法の各ステップをコンピュータに実行させるための画像データ修復プログラム。
【発明の効果】
【００２４】
本発明によれば、ぶれの発生している画像データからぶれの発生していない画像データを復元する処理を、安価な構成で且つ高速に行うことが可能な画像データ修復装置を提供することができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施形態について図面を参照して説明する。
【００２６】
図１は、本発明の実施形態を説明するための撮像装置の一例である手ぶれ補正機能を有するデジタルカメラの概略構成を示す図である。
図１に示すデジタルカメラ１００は、撮像部１、アナログ信号処理部２、Ａ／Ｄ変換部３、駆動部４、ぶれ検出部５、デジタル信号処理部６、圧縮／伸張処理部７、システム制御部９、内部メモリ１０、メディアインタフェース（Ｉ／Ｆ）１１、記録メディア１２、操作部１３、画像データ修復部６０、及びシステムバス１４を有する。
【００２７】
システムバス１４には、画像データ修復部６０、デジタル信号処理部６、圧縮／伸張処理部７、システム制御部９、内部メモリ１０およびメディアインタフェース１１が接続されている。
【００２８】
撮像部１は、撮影レンズ１ａを含む光学系と、この光学系を通して被写体からの光を受光するＣＣＤ型やＣＭＯＳ型のイメージ（エリア）センサ等の撮像素子１ｂとを含み、被写体を撮影し、その撮像信号（アナログ信号）を出力する。
【００２９】
アナログ信号処理部２は、撮像部１からの撮像信号に対し、所定のアナログ信号処理を施す。Ａ／Ｄ変換部３は、アナログ信号処理部２で信号処理されたアナログ信号をデジタル信号に変換する。
【００３０】
駆動部４は、デジタルカメラ１００が撮影モードに設定されると、システム制御部９から供給される駆動パルスに従って、撮像素子１ｂ、アナログ信号処理部２、Ａ／Ｄ変換部３を駆動する。ここで、撮影モードとは、被写体を撮影し、撮影して得られた撮像信号から生成した画像データを記録可能なモードである。
【００３１】
デジタル信号処理部６は、Ａ／Ｄ変換部３からのデジタル信号に対し、操作部１３で設定された動作モードに応じたデジタル信号処理を行い、撮影画像データを生成する。デジタル信号処理部６におけるデジタル信号処理には、黒レベル補正処理（ＯＢ処理）、リニアマトリクス補正処理、ホワイトバランス調整処理、ガンマ補正処理、同時化処理等が含まれる。このデジタル信号処理部６は、例えばＤＳＰで構成される。デジタル信号処理部６で生成された撮影画像データは、内部メモリ１０に一時記憶される。
【００３２】
圧縮／伸張処理部７は、デジタル信号処理部６で生成された撮影画像データに対して圧縮処理を施すとともに、記録メディア１２から得られた圧縮画像データに対して伸張処理を施す。
【００３３】
内部メモリ１０は、例えばＤＲＡＭからなり、デジタル信号処理部６やシステム制御部９や画像データ修復部６０のワークメモリとして利用される他、記録メディア１２に記録される撮影画像データを一時的に記憶するバッファメモリとして利用される。
【００３４】
メディアインタフェース１１は、メモリカード等の記録メディア１２との間でデータの入出力を行う。操作部１３は、デジタルカメラに対して各種操作を行うものであり、撮影を指示するためのレリーズボタン（図示せず）を含む。
【００３５】
ぶれ検出部５は、システム制御部９からの指示に従って、撮像素子１ｂの撮像（露光）中におけるデジタルカメラ１００のぶれ（撮像素子１ｂのぶれと同義）を検出し、検出したぶれに関するぶれ情報を生成し、ぶれ情報をシステム制御部９に出力する。このぶれ情報は、このぶれ情報を生成した撮像時に得られた撮影画像データと共に、システム制御部９により内部メモリ１０に記録される。ぶれを検出する方法としては、ジャイロスコープや圧電素子等のセンサによってぶれを検出する方法や、露光によって得られた画像データから画像処理によって導出する方法がある。画像処理により導出する方法としては、輪郭のぶれ方向から導出する方法や、ある特定のマークを被写体の一部に入れて撮影してそのマークのぶれから導出する方法等がある。これら、ぶれを検出する方法についてはいずれも公知であるため、説明を省略する。
【００３６】
ぶれ検出部５で生成されるぶれ情報は、例えば、ぶれの方向と、画素数（撮像素子１ｂの光電変換素子の個数と対応）で表されるぶれの大きさと、ぶれの速度とを含む。
【００３７】
システム制御部９は、撮影動作を含むデジタルカメラ１００全体の統括制御を行う。
【００３８】
画像データ修復部６０は、デジタル信号処理部６で生成された静止画撮影時に得られた撮影画像データ（以下、静止画像データという）と、その静止画像データを得るための撮像時にぶれ検出部５で検出して生成されたぶれ情報とに基づいて、当該静止画像データを修復して、ぶれのない状態で撮像して得られた静止画像データを復元する。
【００３９】
ここで、ぶれの発生している静止画像データを修復する方法について説明する。
撮像素子１ｂが全くぶれない状態で被写体を撮像したときにデジタル信号処理部６で生成されるぶれのない理想的な静止画像データＯの模式図を図２（ａ）に示す。静止画像データＯは、垂直方向Ｙに順番に配列された画素データＯ１〜Ｏ１０の１０個の画素データからなる画素データ列が、垂直方向Ｙに直交する水平方向Ｘに多数配列されたもの、又は、水平方向Ｘに配列された多数の画素データからなる画素データ行が、垂直方向Ｙに１０個配列されたものとなっている。
【００４０】
又、図２（ａ）には、撮像中に撮像素子１ｂがＹ方向に向かって２つの光電変換素子分ぶれたときに、撮像素子１ｂの撮影範囲内に新たに入る被写体から得られる２画素データ行分の画素データを画素データＯ１１，Ｏ１２として図示してある。画素データＯ１１，Ｏ１２は、撮像素子１ｂのぶれによって理想的な静止画像データＯの端部（画素データＯ１０）よりもＹ方向外側に広がった画素データを示す。図２（ａ）に示した各画素データ列とそれのＹ方向外側に続く画素データＯ１１と画素データＯ１２と併せた行列表現は、以下の数１に示すような列ベクトル［Ｏ］として表現することができる。
【００４１】
【数１】
2008061101.tif 000003
【００４２】
一方、撮像素子１ｂがぶれた状態で被写体を撮像したときにデジタル信号処理部６で生成された静止画像データＳの模式図を図２（ｂ）に示す。静止画像データＳは、垂直方向Ｙに順番に配列された画素データＳ１〜Ｓ１０の１０個の画素データからなる画素データ列が、垂直方向Ｙに直交する水平方向Ｘに多数配列されたもの、又は、水平方向Ｘに配列された多数の画素データからなる画素データ行が、垂直方向Ｙに１０個配列されたものとなっている。静止画像データＳの各画素データ列は、以下の数２に示すような列ベクトル［Ｓ］として表現することができる。
【００４３】
【数２】
2008061101.tif 000004
【００４４】
ここで、静止画像データＳを得るための撮像時において、撮像素子１ｂが、Ｙ方向に向かって２つの光電変換素子分ぶれたものとする。このぶれによる静止画像データＯのＹ方向の広がりをｚ領域で表した点広がり関数（以下、ぶれ伝達関数という）の行列表現であるぶれ行列をＨとすると、以下の数３の関係が成立する。
【００４５】
【数３】
2008061101.tif 000005
【００４６】
最終的に求めたいのは、ぶれのない理想的な静止画像データＯであるため、この静止画像データＯを復元するには、以下の数４で示される演算が必要となる。数４において、Ｗはぶれ行列Ｈの逆行列である。
【００４７】
【数４】
2008061101.tif 000006
【００４８】
数３を見て分かるように、［Ｓ］のデータ数と［Ｏ］のデータ数は異なるため、ぶれ行列Ｈは、１０行×１２列の行列となり、正則になっていない。このため、ぶれ行列Ｈの逆行列を求めることはできない。そこで、ぶれ行列Ｈの擬似逆行列を求め、これをＷとすることで、［Ｏ］の値を求めることができる。このような処理を行って、静止画像データＯの各画素データ列のデータを復元することで、ぶれのない静止画像データを得ることができる。このようにして復元された静止画像データＯを以下では復元画像データＯともいう。以下では、上記Ｗのことを、静止画像データＯを復元するための行列であることから、復元行列という。
【００４９】
本実施形態のデジタルカメラに搭載される画像データ修復部６０は、ぶれ行列Ｈの逆行列演算を行うことなく、ぶれ伝達関数から復元行列Ｗをダイレクトに生成する機能と、復元行列Ｗを用いて復元画像データＯを生成したことによって、復元画像データＯに重畳されるノイズを効果的に除去する機能とを有する。
【００５０】
以下では、デジタル信号処理部６で生成される静止画像データを、図２（ｂ）に示したものとし、画像データ修復部６０で復元される静止画像データを、図２（ａ）に示したものとして説明する。
【００５１】
図３は、図１に示す画像データ修復部６０の内部構成を示すブロック図である。
画像データ修復部６０は、内部メモリ１０からぶれ情報（以下、Ａとする）を取得するぶれ情報取得部６２と、ぶれ情報Ａに基づいて復元行列Ｗを生成する復元行列生成部６３と、復元行列生成部６３で生成された復元行列Ｗと内部メモリ１０に記録されているぶれ情報Ａに対応する静止画像データＳとにより、理想的な静止画像データＯを復元する画像データ復元部６４と、復元行列生成部６３で生成された復元行列Ｗに起因して、画像データ復元部６４によって復元された復元画像データＯの各画素データ列にＹ方向に向かって周期的に重畳されるノイズの種類及び重畳周期に関するノイズ周期情報を生成するノイズ周期情報生成部６７と、該ノイズを算出するノイズ算出部６５と、該算出されたノイズを画像データ復元部６４によって復元された復元画像データＯから除去するノイズ除去部６６とを備える。
【００５２】
復元行列生成部６３は、後述する方法によって復元行列Ｗを生成するが、ここではまず、特許文献１に開示されているような方法で復元行列Ｗを生成する方法について説明する。
【００５３】
この方法では、まず、ぶれ情報Ａに基づくぶれの方向、大きさ、及び速度から、ｚ領域で表されるぶれ伝達関数Ｈ（ｚ）を生成し、このぶれ伝達関数Ｈ（ｚ）を行列に変換してぶれ行列Ｈを生成する。例えば、ぶれの方向がＹ方向であり、大きさが２光電変換素子分であり、速度が等速であった場合、ぶれ伝達関数Ｈ（ｚ）は｛（１＋Ｚ−１＋Ｚ−２）／３｝で表され、その行列表現は図４（ａ）に示したものとなる。
【００５４】
次に、ぶれ行列Ｈを正則にするために、ぶれ情報Ａに基づくぶれによる理想的な静止画像データＯの広がりによって、理想的な静止画像データＯの端部よりもＹ方向外側に存在する画素データ（図２（ａ）の画素データＯ１１，Ｏ１２）の値に、画素データＯ１０と同じ値が外挿されるように表された近似行列Ｆを生成する。ぶれ行列Ｈが図４（ａ）のような形だった場合は、ぶれ行列Ｈの一番右から２列を削除し、削除後の行列の一番右の列の一番下の行とその上の行の値にそれぞれ“１”と“２”をプラスした図４（ｂ）に示すような近似行列Ｆを生成する。
【００５５】
近似行列Ｆが図４（ｂ）に示すような形だった場合、復元行列Ｗは図４（ｃ）に示したものとなる。
【００５６】
又、例えば、ぶれ情報Ａに基づくぶれの方向がＹ方向であり、大きさが２光電変換素子分であり、速度が非等速であった場合、ぶれ伝達関数Ｈ（ｚ）は｛（１＋Ｚ−２）／２｝で表され、その行列表現は図５（ａ）に示したものとなり、近似行列Ｆは図５（ｂ）に示したものとなり、復元行列Ｗは図５（ｃ）に示したものとなる。
【００５７】
ここで、図４（ｃ）に示す復元行列Ｗと図５（ｃ）に示す復元行列Ｗとに着目すると、いずれの復元行列Ｗも、静止画像データＳのＹ方向の総画素データ数ｎ（ここではｎ＝１０）と同じ数のデータからなる１０個の行ベクトルＤｔ（ｔ＝１，２，３，・・・，１０）で構成されている。
【００５８】
ここで、行ベクトルＤｔを、先頭から（ｎ−１）列目までのデータで構成される行ベクトルｄｔと、ｎ列目にあるデータｄ’ｔとに分割する。例えば、行ベクトルＤ１は、行ベクトルｄ１＝[３，−３，０，３，−３，０，３，−３，０]と、データｄ’１＝１とに分割する。
【００５９】
このように考えると、行ベクトルｄｔは、“０”を先頭から（ｔ−１）個Ｘ方向に並べ、その後に、行ベクトルｄ１の先頭から（ｎ−ｔ）個のデータを並べた構成となっていることが分かる。又、データｄ’ｔは、行ベクトルｄｔの総和Σｄｔを“１”から減算して得られる値｛１−Σｄｔ｝になっていることが分かる。
【００６０】
又、行ベクトルｄ１のデータの並びは、ぶれ情報Ａに対応するぶれ伝達関数Ｈ（ｚ）の逆特性である逆ぶれ伝達関数Ｈ’（ｚ）のインパルス応答のデータの並びと同じであることも分かる。
【００６１】
このように、ぶれ情報Ａに基づくぶれによる理想的な静止画像データＯの広がりによって、理想的な静止画像データＯの端部よりもＹ方向外側に存在する画素データ（図２（ａ）の画素データＯ１１，Ｏ１２）の値に、画素データＯ１０と同じ値が外挿されるように近似行列Ｆを生成した場合には、復元行列Ｗがある規則性を持つことが分かった。
【００６２】
そこで、復元行列生成部６３では、この規則性に着目し、ぶれ情報Ａに対応するぶれ伝達関数Ｈ（ｚ）の逆特性である逆ぶれ伝達関数Ｈ’（ｚ）のインパルス応答に基づいて、復元行列Ｗを構成するｎ個の行ベクトルＤｔを生成することで、ぶれ行列Ｈや近似行列Ｆを生成することなく、復元行列Ｗを生成することを可能にしている。
【００６３】
図６は、復元行列生成部６３の内部構成を示すブロック図である。
復元行列生成部６３は、ぶれ情報取得部６２で取得されたぶれ情報に対応するぶれ伝達関数を設定するぶれ伝達関数設定部６３ａと、ＩＩＲフィルタ処理を行うＩＩＲフィルタ処理部６３ｃと、ＩＩＲフィルタ処理部６３ｃで行うＩＩＲフィルタ処理のフィルタ係数を設定するフィルタ係数設定部６３ｂと、ＩＩＲフィルタ処理部６３ｃに単位インパルスを入力する単位インパルス入力部６３ｄと、ＩＩＲフィルタ処理部６３ｃの出力から行ベクトルｄｔを生成する行ベクトルｄｔ生成部６３ｅと、行ベクトルｄｔからデータｄ’ｔを生成するデータｄ’ｔ生成部６３ｆと、行ベクトルｄｔとデータｄ’ｔから行ベクトルＤｔを生成する行ベクトルＤｔ生成部６３ｇとを備える。
【００６４】
ぶれ伝達関数設定部６３ａは、ぶれ情報取得部６２で取得されたぶれ情報に対応するぶれ伝達関数Ｈ（ｚ）を、該ぶれ情報から生成したり、ぶれ情報毎のぶれ伝達関数Ｈ（ｚ）が記録されている記録媒体から読み出したりして、設定する。
【００６５】
図７は、ＩＩＲフィルタ処理部６３ｃの具体的な構成例を示すブロック図である。ここでは、ＩＩＲフィルタ処理部６３ｃがハードウェアで構成される例を説明するが、もちろん、ＩＩＲフィルタ処理部６３ｃが行う処理をソフトウェアで実現することも可能である。
ＩＩＲフィルタ処理部６３ｃは、直列接続されたｐ個（ｐは、デジタルカメラ１００において発生しうる手振れの大きさの最大値）の加算器Ｋｑ（ｑ＝１〜ｐ）と、直列接続されたｐ個の遅延バッファＢｑと、乗算器Ｊ０と、ｐ個の乗算器Ｊｑとを備えるＩＩＲフィルタ回路で構成される。
【００６６】
加算器Ｋｑは、加算器Ｋｐ，Ｋｐ−１，・・・，Ｋ２，Ｋ１の順に接続され、加算器Ｋｐの入力は入力端子ＩＮに接続され、加算器Ｋ１の出力は、フィルタ係数（１／ａ０）を乗算する乗算器Ｊ０を介して出力端子Ｏｕｔに接続されている。
【００６７】
遅延バッファＢｑは、遅延バッファＢ１，Ｂ２，・・・，Ｂｐ−１，Ｂｐの順に接続され、遅延バッファＢ１の入力は出力端子Ｏｕｔに接続され、遅延バッファＢｐの出力は加算器Ｋｐの入力に接続されている。
【００６８】
遅延バッファＢｑの出力と、加算器Ｋｑの入力との間には、フィルタ係数（−ａｑ）を乗算する乗算器Ｊｑが接続されている。
【００６９】
フィルタ係数設定部６３ｂは、ぶれ伝達関数設定部６３ａで設定されたぶれ伝達関数に応じて、ＩＩＲフィルタ処理部６３ｃのフィルタ係数を設定する。ぶれ伝達関数Ｈ（ｚ）の逆特性である逆ぶれ伝達関数Ｈ’（ｚ）は、一般に以下の数５で表すことができる。
【００７０】
【数５】
2008061101.tif 000007
【００７１】
例えば、ぶれ伝達関数Ｈ（ｚ）が｛（１＋Ｚ−１＋Ｚ−２）／３｝であった場合、数５におけるＬの値は２となり、ａ０，ａ１，ａ２の値はそれぞれ（１／３）となるため、フィルタ係数設定部６３ｂは、図７に示すＩＩＲフィルタ処理部６３ｃにおいて、ａ０，ａ１，ａ２の値をそれぞれ（１／３）に設定し、ａ３〜ａｐの値を０に設定する。このようにすることで、図７に示すＩＩＲフィルタ処理部６３ｃが、逆ぶれ伝達関数Ｈ’（ｚ）に相当するものとなる。
【００７２】
単位インパルス入力部６３ｄは、先頭のデータのみが“１”でそれ以外のデータは“０”となっている単位インパルスを生成し、これをＩＩＲフィルタ処理部６３ｃの入力端子ＩＮに先頭のデータから順次入力する。
【００７３】
このような構成により、例えば、ぶれ伝達関数Ｈ（ｚ）が｛（１＋Ｚ−１＋Ｚ−２）／３｝であった場合、遅延バッファＢｑの初期値は全て０とすると、ＩＩＲフィルタ６３ｃの出力端子Ｏｕｔからは、“３”，“−３”，“０”，“３”，“−３”，“０”，“３”，“−３”，“０”，・・・といった具合に、データがこの順番で出力される。
【００７４】
行ベクトルｄｔ生成部６３ｅは、内部メモリ１０上に、 データ“０”を（ｔ−１）個並べ、その後に、ＩＩＲフィルタ処理部６３ｃから時系列で出力されるデータ“３”，“−３”，“０”，“３”，“−３”，“０”，“３”，“−３”，“０”，・・・の先頭から（ｎ−ｔ）番目までのデータを並べて、行ベクトルｄｔを生成する。
【００７５】
データｄ’ｔ生成部６３ｆは、行ベクトルｄｔ生成部６３ｅで生成された行ベクトルｄｔのデータの総和Σｄｔを“１”から減算して、データｄ’ｔを生成する。
【００７６】
行ベクトルＤｔ生成部６３ｇは、行ベクトルｄｔ生成部６３ｅで生成された行ベクトルｄｔの最後に、データｄ’ｔ生成部６３ｆで生成されたデータｄ’ｔを配置することで、行ベクトルＤｔを生成し、生成した行ベクトルＤｔを画像データ復元部６４及びノイズ周期情報生成部６７に出力する。
【００７７】
行ベクトルｄｔ生成部６３ｅ、データｄ’ｔ生成部６３ｆ、及び行ベクトルＤｔ生成部６３ｇは、１つの行ベクトルＤｔの生成が終わる毎に、上記ｔの値を順次変えていくことで、復元行列Ｗを構成するｎ個の行ベクトルＤ１〜Ｄｎを生成することができる。
【００７８】
図３に戻り、画像データ復元部６４は、行ベクトルＤｔ生成部６３ｇから順次出力される行ベクトルＤ１〜Ｄｎの各々に、内部メモリ１０に記録されている静止画像データＳの各画素データ列[Ｓ]を掛けることで、理想的な静止画像データＯを復元する。
【００７９】
例えば、行ベクトルＤ１に静止画像データＳの各画素データ列[Ｓ]を掛けると、静止画像データＯの各画素データ列のうち画素データＯ１を復元することができ、行ベクトルＤ２に静止画像データＳの各画素データ列[Ｓ]を掛けると、静止画像データＯの各画素データ列の画素データＯ２を復元することができる。画像データ復元部６４は、このような処理を繰り返していくことで、静止画像データＯの各画素データ列の画素データＯ１〜Ｏ１０を全て復元する。
【００８０】
尚、以上の説明では、画像データ復元部６４が、行ベクトルＤ１〜Ｄｎの各々に静止画像データＳの各画素データ列[Ｓ]を掛ける処理を行うことによって、静止画像データＯを復元するものとしたが、行ベクトルＤｔ生成部６３ｇで行ベクトルＤ１〜Ｄｎを生成して、これを復元行列Ｗの形になるように合成してから、合成後の復元行列Ｗを画像データ復元部６４に入力し、画像データ復元部６４が、この復元行列Ｗに静止画像データＳの各画素データ列[Ｓ]を掛ける処理を行うことで、静止画像データＯを復元するようにしても良い。
【００８１】
行ベクトルＤ１〜Ｄｎの各々に静止画像データＳの各画素データ列  [Ｓ]を掛ける処理を行って静止画像データＯを復元する場合には、例えば、行ベクトルＤ２が生成されている期間に、静止画像データＯの各画素データ列のうち画素データＯ１を復元することができるため、復元処理を高速に行うことができる。又、この場合には、復元処理が一次元の行列同士のベクトル演算だけで済むため、二次元の行列同士の演算を行う場合に比べて、演算処理に必要なメモリを削減することができる。
【００８２】
次に、復元行列Ｗに起因して、画像データ復元部６４によって復元された復元画像データＯの各画素データ列にＹ方向に向かって周期的に重畳されるノイズについて説明する。
【００８３】
図４（ａ）に示すぶれ行列Ｈと、図４（ｃ）に示す復元行列Ｗとの積Ｗ＊Ｈが図４（ｄ）に示す行列となる。復元行列Ｗは、ぶれ行列Ｈの逆行列として求められているため、図４（ｄ）に示す行列の右から３列のデータのうち、右から３番目の列の一番下の行のデータは１となり、それ以外のデータは０となるのが理想である。しかし、復元行列Ｗはぶれ行列Ｈの擬似逆行列であるため、Ｗ＊Ｈの値は理想的なものとはならない。そこで、Ｗ＊Ｈの理想的な値と、Ｗ＊Ｈの実際の値とを比較することで、復元行列Ｗを用いた復元により得られた復元画像データＯに重畳されるノイズを検出することができる。
【００８４】
図４（ｄ）に示すＷ＊Ｈの行列は、１行目と４行目と７行目に同一のノイズ（１）が加わっており、２行目と５行目と８行目に同一のノイズ（２）が加わっており、３行目と６行目と９行目に同一のノイズ（３）が加わっており、１０行目のデータが不正確となっていることが分かる。このことから、図４（ｃ）に示す復元行列Ｗを用いて復元された復元画像データＯは、Ｎを１〜３としたとき、｛３（Ｎ−１）＋１｝行周期でノイズ（１）が加わっており、｛３（Ｎ−１）＋２｝行周期でノイズ（２）が加わっており、｛３（Ｎ−１）＋３｝行周期でノイズ（３）が加わっており、１０行目のデータが不正確となっていることを検出することができる。
【００８５】
同様に、図５（ｄ）に示すＷ＊Ｈの行列は、１行目と５行目と９行目に同一のノイズ（１）が加わっており、２行目と６行目に同一のノイズ（２）が加わっており、３行目と７行目に同一のノイズ（３）が加わっており、４行目と８行目に同一のノイズ（４）が加わっており、１０行目のデータが不正確となっていることが分かる。このことから、図５（ｃ）に示す復元行列Ｗを用いて復元された復元画像データＯは、｛４（Ｎ−１）＋１｝行周期（Ｎ＝１〜３）でノイズ（１）が加わっており、｛４（Ｎ−１）＋２｝行周期（Ｎ＝１，２）でノイズ（２）が加わっており、｛４（Ｎ−１）＋３｝行周期（Ｎ＝１，２）でノイズ（３）が加わっており、｛４（Ｎ−１）＋４｝行周期（Ｎ＝１，２）でノイズ（４）が加わっており、１０行目のデータが不正確となっていることを検出することができる。
【００８６】
このことを利用して、ノイズ周期情報生成部６７はノイズ周期情報を生成する。ノイズ周期情報生成部６７は、ぶれ伝達関数設定部６３ａで設定されたぶれ伝達関数から、その行列表現であるぶれ行列Ｈを生成し、そのぶれ行列Ｈと、復元行列生成部６３ｃで生成された復元行列Ｗのｎ個の行ベクトルＤ１〜Ｄｎの各々の積を求め、この積で得られるデータから、上述したようなノイズの種類（（１）〜（４））と、そのノイズの重畳周期とを検出し、ノイズ種類毎のノイズ重畳周期を示すノイズ周期情報を生成する。
【００８７】
尚、行ベクトルＤｔ生成部６３ｇで行ベクトルＤ１〜Ｄｎを生成して、これを復元行列Ｗの形になるように合成してから、合成後の復元行列Ｗをノイズ周期情報生成部６７に入力し、ノイズ周期情報生成部６７が、上記ぶれ行列Ｈと、入力された復元行列Ｗとの積を求め、この積で得られるデータからノイズ周期情報を生成しても良い。ぶれ行列Ｈと、復元行列生成部６３ｃで生成された復元行列Ｗのｎ個の行ベクトルＤ１〜Ｄｎの各々の積によりノイズ周期情報を生成する場合は、静止画像データＯの復元処理とノイズ周期情報の生成処理とを同時進行することができるため、全体の処理時間を短縮することができる。
【００８８】
ノイズ種類毎のノイズ重畳周期が分かれば、ノイズ種類毎のノイズ値を推測することが可能である。例えば、図４（ｄ）に示す行列からノイズ重畳周期を検出した場合を例にすると、復元画像データＯの１つの画素データ列（以下、Ｂとする）に対し、｛３（Ｎ−１）＋１｝行毎に画素データのサンプリングを行ったときに得られる画素データの総和Σ１は、以下の式１となる。
Σ１＝画素データＯ１＋画素データＯ４＋画素データＯ７＋（３×ノイズ（１））・・・式１
【００８９】
ここで、「画素データＯ１＋画素データＯ４＋画素データＯ７」の値は、「画素データＳ１＋画素データＳ４＋画素データＳ７」とそれほど変わらないため、この値で近似することができる。つまり、式１は、式２のように近似することができる。
Σ１＝画素データＳ１＋画素データＳ４＋画素データＳ７＋（３×ノイズ（１））・・・式２
【００９０】
Σ１と画素データＳ１，Ｓ４，Ｓ７は既知であるため、この式２を変形した以下の式３により、ノイズ（１）の値を求めることができる。
ノイズ（１）＝｛Σ１−（画素データＳ１＋画素データＳ４＋画素データＳ７）｝／３・・・式３
【００９１】
同様に、画素データ列Ｂに対し、｛３（Ｎ−１）＋２｝行毎に画素データのサンプリングを行ったときに得られる画素データの総和Σ２は、以下の式４となる。
Σ２＝画素データＯ２＋画素データＯ５＋画素データＯ８＋（３×ノイズ（２））・・・式４
【００９２】
式４は、以下の式５のように近似することができる。
Σ２＝画素データＳ２＋画素データＳ５＋画素データＳ８＋（３×ノイズ（２））・・・式５
【００９３】
式５を変形した以下の式６により、ノイズ（２）の値を求めることができる。
ノイズ（２）＝｛Σ２−（画素データＳ２＋画素データＳ５＋画素データＳ８）｝／３・・・式６
【００９４】
同様に、画素データ列Ｂに対し、｛３（Ｎ−１）＋３｝行毎に画素データのサンプリングを行ったときに得られる画素データの総和Σ３は、以下の式７となる。
Σ３＝画素データＯ３＋画素データＯ６＋画素データＯ９＋（３×ノイズ（３））・・・式７
【００９５】
式７は、以下の式８のように近似することができる。
Σ３＝画素データＳ３＋画素データＳ６＋画素データＳ９＋（３×ノイズ（３））・・・式８
【００９６】
この式８を変形した以下の式９により、ノイズ（３）の値を求めることができる。
ノイズ（３）＝｛Σ３−（画素データＳ３＋画素データＳ６＋画素データＳ９）｝／３・・・式９
【００９７】
このような処理により、復元画像データＯを構成する各画素データ列毎に、そこに重畳されるノイズを算出することができる。
【００９８】
図３に戻り、ノイズ算出部６５は、このような処理を行うために、静止画像データサンプリング部６５ａと、復元画像データサンプリング部６５ｂと、割り算部６５ｃとを備える。
【００９９】
静止画像データサンプリング部６５ａは、内部メモリ１０に記録されている静止画像データＳの各画素データ列［Ｓ］を、ノイズ周期情報に含まれる各ノイズ種類毎のノイズ重畳周期でサンプリングする。
【０１００】
復元画像データサンプリング部６５ｂは、画像データ復元部６４で生成された復元画像データＯの各画素データ列［Ｏ］を、ノイズ周期情報に含まれる各ノイズ種類毎のノイズ重畳周期でサンプリングする。
【０１０１】
割り算部６５ｃは、各ノイズ重畳周期で復元画像データサンプリング部６５ｂによりサンプリングされた画素データの総和（例えば、上記Σ１）から、該ノイズ重畳周期で静止画像データサンプリング部６５ａによりサンプリングされた画素データの総和（例えば、上記「画素データＳ１＋画素データＳ４＋画素データＳ７」）を減算し、減算して得られる値を、該ノイズ重畳周期でサンプリングしたサンプリング数（例えば３）で割って、復元画像データＯの各画素データ列［Ｏ］に重畳される各ノイズ種類のノイズ値を算出する。
【０１０２】
ノイズ除去部６６は、割り算部６５ｃから出力されたノイズを復元画像データＯから除去し、除去後の復元画像データを例えば内部メモリ１０に記録する。記録された復元画像データは、圧縮／伸張処理部で圧縮処理が施された後、記録メディア１２に記録される。
【０１０３】
例えば、図４（ｄ）に示す行列からノイズ重畳周期を検出した場合を例にすると、ノイズ除去部６６は、復元画像データＯの各画素データ列［Ｏ］の｛３（Ｎ−１）＋１｝行目の画素データから、その画素データ列［Ｏ］について算出されたノイズ（１）を除去し、復元画像データＯの各画素データ列［Ｏ］の｛３（Ｎ−１）＋２｝行目の画素データから、その画素データ列［Ｏ］について算出されたノイズ（２）を除去し、復元画像データＯの各画素データ列［Ｏ］の｛３（Ｎ−１）＋３｝行目の画素データから、その画素データ列［Ｏ］について算出されたノイズ（３）を除去する。
【０１０４】
次に、画像データ修復部６０の動作について説明する。
図８は、画像データ修復部６０の動作を説明するためのフローチャートである。
まず、撮像素子１ｂにより撮像が行われると、その撮像中の撮像素子１ｂのぶれに関するぶれ情報が生成され、このぶれ情報が、その撮像により得られる静止画像データＳと対応付けて内部メモリ１０に記録される。
【０１０５】
内部メモリ１０に静止画像データＳとぶれ情報が記録された後、画像データ修復部６０は、内部メモリ１０からぶれ情報を取得する（ステップＳ１）。次に、画像データ修復部６０は、このぶれ情報にしたがってぶれ伝達関数を設定し（ステップＳ２）、このぶれ伝達関数からＩＩＲフィルタ処理部６３ｃのフィルタ係数を設定する（ステップＳ３）。
【０１０６】
次に、画像データ修復部６０は、単位インパルスを生成してＩＩＲフィルタ処理部６３ｃに入力し（ステップＳ４）、ＩＩＲフィルタ処理部６３ｃからインパルス応答を出力する（ステップＳ５）。
【０１０７】
次に、画像データ修復部６０は、ＩＩＲフィルタ処理部６３ｃから出力されたインパルス応答により行ベクトルｄ１を生成し（ステップＳ６）、行ベクトルｄ１によりデータｄ’１を生成し（ステップＳ７）、行ベクトルｄ１とデータｄ’１により行ベクトルＤ１を生成する（ステップＳ８）。
【０１０８】
次に、画像データ修復部６０は、行ベクトルＤ１と静止画像データＳの各画素データ列[Ｓ]との掛け算により、静止画像データＯの１つの画素データ行を復元する（ステップＳ９）。
【０１０９】
次に、画像データ修復部６０は、ｔ＝ｎになっているか判定し、なっていない場合は（ステップＳ１０：ＮＯ）、ｔをｔ＋１に変更して（ステップＳ１１）、ステップＳ６〜Ｓ９までの処理を繰り返す。ｔ＝ｎになっていた場合（ステップＳ１０：ＹＥＳ）、画像データ修復部６０は、ステップＳ２で設定されたぶれ伝達関数の行列表現であるぶれ行列Ｈを生成し（ステップＳ１２）、既に生成された行ベクトルＤ１〜Ｄｎの各々との積からノイズ周期情報を生成する（ステップＳ１３）。
【０１１０】
次に、画像データ修復部６０は、内部メモリ１０に記録されている静止画像データＳを、ノイズ周期情報にしたがってサンプリングし（ステップＳ１４）、ステップＳ９で復元された復元画像データＯをノイズ周期情報にしたがってサンプリングし（ステップＳ１５）、ステップＳ１４，Ｓ１５でサンプリングしたデータを基に、復元画像データＯに重畳されているノイズを算出する（ステップＳ１６）。次に、画像データ修復部６０は、ステップＳ９で復元した復元画像データＯからステップＳ１６で算出したノイズを除去し（ステップＳ１７）、除去後の復元画像データＯを外部に出力して、画像データ修復処理を終了する。
【０１１１】
以上のように、本実施形態の画像データ修復部６０によれば、ぶれ行列Ｈ及び近似行列Ｆを生成することなく、ぶれ伝達関数によってフィルタ係数を設定したＩＩＲフィルタ処理に基づいて復元行列Ｗを生成することができる。このため、近似行列Ｆの逆行列を演算することで復元行列Ｗを求めていた従来に比べて、メモリ使用量や計算量を減らすことができ、画像データの復元処理を低消費電力且つ高速且つ低コストで行うことができる。
【０１１２】
又、本実施形態の画像データ修復部６０によれば、一次元の行列演算だけで、ぶれのない静止画像データを復元することができるため、二次元の行列演算を行って静止画像データを復元していた従来に比べて、メモリ使用量を減らすことができ、コスト削減が可能となる。
【０１１３】
又、本実施形態の画像データ修復部６０によれば、ぶれ行列Ｈの擬似逆行列Ｗを用いて静止画像データＯを復元した場合に、復元された静止画像データＯに重畳されているノイズを効果的に除去することができる。このため、画質劣化を抑制しながら、ぶれの発生してない静止画像データＯを復元することができ、信頼性の高い手ぶれ補正機能を備えたデジタルカメラを提供することが可能となる。
【０１１４】
尚、上述した実施形態の画像データ修復部６０は、コンピュータを画像データ修復部６０内の各部として機能させるための画像データ修復プログラム、又は、図８に示した画像データ修復部６０の各処理ステップをコンピュータに実行させるための画像データ修復プログラムを、デジタルカメラに搭載されている演算処理装置等のコンピュータ（例えば、デジタル信号処理部６やシステム制御部９）が実行することでも実現できる。又、デジタルカメラ等から得られた静止画像データＳとそれに対応するぶれ情報を、そのままパーソナルコンピュータの内部メモリに取り込み、上記の画像データ修復プログラムをこのコンピュータが実行することで、このコンピュータを画像データ修復部６０として機能させることも可能である。
【図面の簡単な説明】
【０１１５】
【図１】本発明の実施形態を説明するための手ぶれ補正機能を有するデジタルカメラの概略構成を示す図
【図２】ぶれの発生している静止画像データを修復する方法を説明するための図
【図３】図１に示す画像データ修復部の内部構成を示すブロック図
【図４】（ａ）は撮像素子が一次元方向に等速でぶれたときのぶれ行列の一例を示す図、（ｂ）は（ａ）のぶれ行列を近似した近似行列を示す図、（ｃ）は（ｂ）の近似行列の逆行列である復元行列を示す図、（ｄ）は（ａ）のぶれ行列と（ｃ）の復元行列との積で得られる行列を示す図
【図５】（ａ）は撮像素子が一次元方向に等速でぶれたときのぶれ行列の一例を示す図、（ｂ）は（ａ）のぶれ行列を近似した近似行列を示す図、（ｃ）は（ｂ）の近似行列の逆行列である復元行列を示す図、（ｄ）は（ａ）のぶれ行列と（ｃ）の復元行列との積で得られる行列を示す図
【図６】図３に示す復元行列生成部６３の内部構成を示すブロック図
【図７】図６に示すＩＩＲフィルタ処理部の内部構成を示すブロック図
【図８】図１に示す画像データ修復部の動作を説明するためのフローチャート
【符号の説明】
【０１１６】
１  撮像部
２  アナログ信号処理部
３  Ａ／Ｄ変換部
４  駆動部
５  ぶれ検出部
６  デジタル信号処理部
７  圧縮／伸張処理部
９  システム制御部
１０  内部メモリ
１１  メディアインタフェース
１２  記録メディア
１３  操作部
１４  システムバス
６０  画像データ修復部
【図１】
2008061101.tif 000008
【図２】
2008061101.tif 000009
【図３】
2008061101.tif 000010
【図４】
2008061101.tif 000011
【図５】
2008061101.tif 000012
【図６】
2008061101.tif 000013
【図７】
2008061101.tif 000014
【図８】
2008061101.tif 000015