| 【発明の名称】 |
画像データ修復装置、撮像装置、画像データ修復方法、及び画像データ修復プログラム |
| 【発明者】 |
【氏名】岩淵 浩志
|
| 【要約】 |
【課題】ぶれの発生している画像データからぶれのない画像データを安価で高速に復元する。
【構成】画像データ修復部は、撮像時における撮像素子のY方向へのぶれに関するぶれ情報を内部メモリから取得し、ぶれ情報に基づいて、ぶれ情報に基づくぶれがない状態で被写体を撮像したときに得られる理想的な画像データを、内部メモリに記録されている静止画像データから復元するための復元行列であって、該理想的な画像データのY方向への広がりを表すぶれ伝達関数の行列表現であるぶれ行列の擬似逆行列である復元行列を生成し、この復元行列と静止画像データとにより、理想的な画像データを復元する。ここで、復元行列は、静止画像データのY方向の総画素データ数nと同じ数のデータからなるn個の行ベクトルDtで構成される。 |
【特許請求の範囲】
【請求項1】 被写体を撮像素子によって撮像して得られた静止画像データを、前記撮像時における前記撮像素子の一次元方向へのぶれに関するぶれ情報に基づいて修復する画像データ修復装置であって、 前記ぶれ情報に基づくぶれがない状態で前記被写体を撮像したときに得られる理想的な画像データを前記静止画像データから復元するための復元行列であって、前記ぶれ情報に基づくぶれによる前記理想的な画像データの前記一次元方向への広がりを表すぶれ伝達関数の行列表現であるぶれ行列の擬似逆行列である復元行列を、前記ぶれ情報に基づいて生成する復元行列生成手段と、 前記復元行列生成手段で生成された前記復元行列と前記静止画像データとにより、前記理想的な画像データを復元する画像データ復元手段とを備え、 前記復元行列は、前記静止画像データの前記一次元方向の総画素データ数nと同じ数のデータからなるn個の行ベクトルDt(t=1,2,3,・・・,n)で構成され、 前記復元行列生成手段は、前記ぶれ情報に対応するぶれ伝達関数の逆特性である逆ぶれ伝達関数のインパルス応答に基づいて、前記n個の行ベクトルDtを生成する画像データ修復装置。 【請求項2】 請求項1記載の画像データ修復装置であって、 前記復元行列生成手段が、前記逆ぶれ伝達関数のインパルス応答を求めるインパルス応答算出手段と、メモリ上に“0”を(t−1)個並べ、その後に、前記インパルス応答算出手段から時系列で算出されるデータの先頭から(n−t)番目までのデータを並べた行ベクトルdtを生成する行ベクトルdt生成手段と、前記行ベクトルdtの総和Σdtを“1”から減算する減算手段と、前記行ベクトルdtの最後に前記減算手段で得られたデータ{1−Σdt}を配置して前記行ベクトルDtを生成する行ベクトル生成手段とを含む画像データ修復装置。 【請求項3】 請求項2記載の画像データ修復装置であって、 前記インパルス応答算出手段が、前記ぶれ情報に応じてフィルタ係数が決定されるIIR(Infinite Impulse Response)フィルタ回路と、前記IIRフィルタ回路に単位インパルスを入力する単位インパルス入力手段とで構成される画像データ修復装置。 【請求項4】 請求項1〜3のいずれか1項記載の画像データ修復装置であって、 前記画像データ復元手段は、前記復元行列生成手段で生成された前記n個の行ベクトルD1〜Dnの各々に前記静止画像データを順次掛けていくことで、前記理想的な画像データを復元する画像データ修復装置。 【請求項5】 請求項1〜4のいずれか1項記載の画像データ修復装置であって、 前記復元行列生成手段で生成された復元行列に起因して前記画像データ復元手段によって復元された画像データに前記一次元方向に向かって周期的に重畳される複数種類のノイズを算出するノイズ算出手段と、 前記ノイズ算出手段で算出されたノイズを前記画像データ復元手段によって復元された画像データから除去するノイズ除去手段と、 前記復元行列生成手段で生成された復元行列と前記ぶれ行列との積により、前記複数種類のノイズ毎のノイズ重畳周期に関するノイズ周期情報を生成するノイズ周期情報生成手段とを備え、 前記ノイズ算出手段が、前記ノイズ周期情報と前記画像データ復元手段によって復元された画像データと前記静止画像データとに基づいて、前記複数種類のノイズを算出する画像データ修復装置。 【請求項6】 請求項5記載の画像データ修復装置であって、 前記ノイズ周期情報生成手段が、前記復元行列生成手段で生成された前記n個の行ベクトルD1〜Dnの各々に前記ぶれ行列を順次掛けていくことで得られるデータにより、前記ノイズ周期情報を生成する画像データ修復装置。 【請求項7】 請求項1〜6のいずれか1項記載の画像データ修復装置であって、 前記静止画像データ及び前記画像データ復元手段で復元された画像データは、それぞれ、前記一次元方向に並ぶ多数の画素データからなる画素データ列が前記一次元方向と直交する方向に多数配列された構成であり、 前記ノイズ算出手段が、前記画像データ復元手段によって復元された画像データの各画素データ列の復元もととなった前記静止画像データの画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎にサンプリングする第1のサンプリング手段と、前記復元もととなった前記静止画像データの画素データ列から復元された画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎に前記第1のサンプリング手段と同一数サンプリングする第2のサンプリング手段と、前記第2のサンプリング手段によってサンプリングされた画素データの積算値から前記第1のサンプリング手段によってサンプリングされた画素データの積算値を減算した値を前記サンプリングした数で割って前記ノイズを算出する割り算手段とを含む画像データ修復装置。 【請求項8】 請求項1〜7のいずれか1項記載の画像データ修復装置と、 前記撮像素子と、 前記撮像素子の出力信号から前記静止画像データを生成する静止画像データ生成手段と、 前記撮像時における前記撮像素子の前記一次元方向へのぶれを検出して前記ぶれ情報を生成するぶれ情報生成手段とを備える撮像装置。 【請求項9】 被写体を撮像素子によって撮像して得られた静止画像データを、前記撮像時における前記撮像素子の一次元方向へのぶれに関するぶれ情報に基づいて修復する画像データ修復方法であって、 前記ぶれ情報に基づくぶれがない状態で前記被写体を撮像したときに得られる理想的な画像データを前記静止画像データから復元するための復元行列であって、前記ぶれ情報に基づくぶれによる前記理想的な画像データの前記一次元方向への広がりを表すぶれ伝達関数の行列表現であるぶれ行列の擬似逆行列である復元行列を、前記ぶれ情報に基づいて生成する復元行列生成ステップと、 前記復元行列生成ステップで生成された前記復元行列と前記静止画像データとにより、前記理想的な画像データを復元する画像データ復元ステップとを備え、 前記復元行列は、前記静止画像データの前記一次元方向の総画素データ数nと同じ数のデータからなるn個の行ベクトルDt(t=1,2,3,・・・,n)で構成され、 前記復元行列生成ステップでは、前記ぶれ情報に対応するぶれ伝達関数の逆特性である逆ぶれ伝達関数のインパルス応答に基づいて、前記n個の行ベクトルDtを生成する画像データ修復方法。 【請求項10】 請求項9記載の画像データ修復方法であって、 前記復元行列生成ステップが、前記逆ぶれ伝達関数のインパルス応答を求めるインパルス応答算出ステップと、メモリ上に“0”を(t−1)個並べ、その後に、前記インパルス応答算出ステップにより時系列で算出されるデータの先頭から(n−t)番目までのデータを並べた行ベクトルdtを生成する行ベクトルdt生成ステップと、前記行ベクトルdtの総和Σdtを“1”から減算する減算ステップと、前記行ベクトルdtの最後に前記減算ステップで得られたデータ{1−Σdt}を配置して前記行ベクトルDtを生成する行ベクトル生成ステップとを含む画像データ修復方法。 【請求項11】 請求項10記載の画像データ修復方法であって、 前記インパルス応答算出ステップが、単位インパルスを生成する単位インパルス生成ステップと、前記単位インパルスに対し、前記ぶれ情報に応じてフィルタ係数が決定されるIIRフィルタ処理を実行するIIRフィルタ処理ステップを含む画像データ修復方法。 【請求項12】 請求項9〜11のいずれか1項記載の画像データ修復方法であって、 前記画像データ復元ステップでは、前記復元行列生成ステップで生成された前記n個の行ベクトルD1〜Dnの各々に前記静止画像データを順次掛けていくことで、前記理想的な画像データを復元する画像データ修復方法。 【請求項13】 請求項9〜12のいずれか1項記載の画像データ修復方法であって、 前記復元行列生成ステップで生成された復元行列に起因して、前記画像データ復元ステップによって復元された画像データに前記一次元方向に向かって周期的に重畳される複数種類のノイズを算出するノイズ算出ステップと、 前記ノイズ算出ステップで算出されたノイズを前記画像データ復元ステップによって復元された画像データから除去するノイズ除去ステップと、 前記復元行列生成ステップで生成された復元行列と前記ぶれ行列との積により、前記複数種類のノイズ毎のノイズ重畳周期に関するノイズ周期情報を生成するノイズ周期情報生成ステップとを備え、 前記ノイズ算出ステップでは、前記ノイズ周期情報と前記画像データ復元ステップによって復元された画像データと前記静止画像データとに基づいて、前記複数種類のノイズを算出する画像データ修復方法。 【請求項14】 請求項13記載の画像データ修復方法であって、 前記ノイズ周期情報生成ステップでは、前記復元行列生成ステップで生成された前記n個の行ベクトルD1〜Dnの各々に前記ぶれ行列を順次掛けていくことで得られるデータにより、前記ノイズ周期情報を生成する画像データ修復方法。 【請求項15】 請求項9〜14のいずれか1項記載の画像データ修復方法であって、 前記静止画像データ及び前記画像データ復元ステップで復元された画像データは、それぞれ、前記一次元方向に並ぶ多数の画素データからなる画素データ列が前記一次元方向と直交する方向に多数配列された構成であり、 前記ノイズ算出ステップが、前記画像データ復元ステップによって復元された画像データの各画素データ列の復元もととなった前記静止画像データの画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎にサンプリングする第1のサンプリングステップと、前記復元もととなった前記静止画像データの画素データ列から復元された画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎に前記第1のサンプリングステップと同一数サンプリングする第2のサンプリングステップと、前記第2のサンプリングステップによってサンプリングされた画素データの積算値から前記第1のサンプリングステップによってサンプリングされた画素データの積算値を減算した値を前記サンプリングした数で割って前記ノイズを算出する割り算ステップとを含む画像データ修復方法。 【請求項16】 請求項9〜15のいずれか1項記載の画像データ修復方法の各ステップをコンピュータに実行させるための画像データ修復プログラム。
|
【発明の詳細な説明】【技術分野】 【0001】 本発明は、被写体を撮像素子によって撮像して得られた静止画像データを修復する画像データ修復装置に関する。 【背景技術】 【0002】 一般に、被写体像を光電変換し、コンピュータ等の演算装置を用いて画像処理を行なう装置がある。この画像処理装置を用いて、撮影時の手ぶれ等により生じた画像の劣化を修復する技術・装置に関して提案されている。このような画像修復処理では、画像の劣化につながる像のある1点のその周辺の像への滲みや広がりを広がり関数として数学的に扱い、演算処理を可能にしている。 【0003】 例えば、特許文献1には、広がり関数の行列表現であるぶれ行列の擬似逆行列を、不足データを外挿することにより求め、この擬似逆行列とぶれのある画像データとの掛け算により、ぶれのない画像データを復元する方法が開示されている。 【0004】 【特許文献1】特開平6−118468号公報 【発明の開示】 【発明が解決しようとする課題】 【0005】 特許文献1に開示された方法のように、ぶれのない画像データを復元するには、ぶれ行列の擬似逆行列を求める必要がある。擬似逆行列を求めるには、不足データを外挿することでぶれ行列の近似行列を生成し、この近似行列の逆行列を求めるといった手順を踏む必要がある。この逆行列を求める方法には、Gauss-Jordan法、LU分解による方法、特異値分解(SVD)による方法等がある。しかし、これらの方法はいずれも計算量が多く、メモリも消費するといった課題がある。 【0006】 本発明は、上記事情に鑑みてなされたものであり、ぶれの発生している画像データからぶれの発生していない画像データを復元する処理を、安価な構成で且つ高速に行うことが可能な画像データ修復装置を提供することを目的とする。 【課題を解決するための手段】 【0007】 上記課題は以下の(1)〜(16)によって解決される。 【0008】 (1)被写体を撮像素子によって撮像して得られた静止画像データを、前記撮像時における前記撮像素子の一次元方向へのぶれに関するぶれ情報に基づいて修復する画像データ修復装置であって、前記ぶれ情報に基づくぶれがない状態で前記被写体を撮像したときに得られる理想的な画像データを前記静止画像データから復元するための復元行列であって、前記ぶれ情報に基づくぶれによる前記理想的な画像データの前記一次元方向への広がりを表すぶれ伝達関数の行列表現であるぶれ行列の擬似逆行列である復元行列を、前記ぶれ情報に基づいて生成する復元行列生成手段と、前記復元行列生成手段で生成された前記復元行列と前記静止画像データとにより、前記理想的な画像データを復元する画像データ復元手段とを備え、前記復元行列は、前記静止画像データの前記一次元方向の総画素データ数nと同じ数のデータからなるn個の行ベクトルDt(t=1,2,3,・・・,n)で構成され、前記復元行列生成手段は、前記ぶれ情報に対応するぶれ伝達関数の逆特性である逆ぶれ伝達関数のインパルス応答に基づいて、前記n個の行ベクトルDtを生成する画像データ修復装置。 【0009】 (2)(1)記載の画像データ修復装置であって、前記復元行列生成手段が、前記逆ぶれ伝達関数のインパルス応答を求めるインパルス応答算出手段と、メモリ上に“0”を(t−1)個並べ、その後に、前記インパルス応答算出手段から時系列で算出されるデータの先頭から(n−t)番目までのデータを並べた行ベクトルdtを生成する行ベクトルdt生成手段と、前記行ベクトルdtの総和Σdtを“1”から減算する減算手段と、前記行ベクトルdtの最後に前記減算手段で得られたデータ{1−Σdt}を配置して前記行ベクトルDtを生成する行ベクトル生成手段とを含む画像データ修復装置。 【0010】 (3)(2)記載の画像データ修復装置であって、前記インパルス応答算出手段が、前記ぶれ情報に応じてフィルタ係数が決定されるIIR(Infinite Impulse Response)フィルタ回路と、前記IIRフィルタ回路に単位インパルスを入力する単位インパルス入力手段とで構成される画像データ修復装置。 【0011】 (4)(1)〜(3)のいずれか1項記載の画像データ修復装置であって、前記画像データ復元手段は、前記復元行列生成手段で生成された前記n個の行ベクトルD1〜Dnの各々に前記静止画像データを順次掛けていくことで、前記理想的な画像データを復元する画像データ修復装置。 【0012】 (5)(1)〜(4)のいずれか1項記載の画像データ修復装置であって、前記復元行列生成手段で生成された復元行列に起因して前記画像データ復元手段によって復元された画像データに前記一次元方向に向かって周期的に重畳される複数種類のノイズを算出するノイズ算出手段と、前記ノイズ算出手段で算出されたノイズを前記画像データ復元手段によって復元された画像データから除去するノイズ除去手段と、前記復元行列生成手段で生成された復元行列と前記ぶれ行列との積により、前記複数種類のノイズ毎のノイズ重畳周期に関するノイズ周期情報を生成するノイズ周期情報生成手段とを備え、前記ノイズ算出手段が、前記ノイズ周期情報と前記画像データ復元手段によって復元された画像データと前記静止画像データとに基づいて、前記複数種類のノイズを算出する画像データ修復装置。 【0013】 (6)(5)記載の画像データ修復装置であって、前記ノイズ周期情報生成手段が、前記復元行列生成手段で生成された前記n個の行ベクトルD1〜Dnの各々に前記ぶれ行列を順次掛けていくことで得られるデータにより、前記ノイズ周期情報を生成する画像データ修復装置。 【0014】 (7)(1)〜(6)のいずれか1項記載の画像データ修復装置であって、前記静止画像データ及び前記画像データ復元手段で復元された画像データは、それぞれ、前記一次元方向に並ぶ多数の画素データからなる画素データ列が前記一次元方向と直交する方向に多数配列された構成であり、前記ノイズ算出手段が、前記画像データ復元手段によって復元された画像データの各画素データ列の復元もととなった前記静止画像データの画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎にサンプリングする第1のサンプリング手段と、前記復元もととなった前記静止画像データの画素データ列から復元された画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎に前記第1のサンプリング手段と同一数サンプリングする第2のサンプリング手段と、前記第2のサンプリング手段によってサンプリングされた画素データの積算値から前記第1のサンプリング手段によってサンプリングされた画素データの積算値を減算した値を前記サンプリングした数で割って前記ノイズを算出する割り算手段とを含む画像データ修復装置。 【0015】 (8)(1)〜(7)のいずれか1項記載の画像データ修復装置と、前記撮像素子と、前記撮像素子の出力信号から前記静止画像データを生成する静止画像データ生成手段と、前記撮像時における前記撮像素子の前記一次元方向へのぶれを検出して前記ぶれ情報を生成するぶれ情報生成手段とを備える撮像装置。 【0016】 (9)被写体を撮像素子によって撮像して得られた静止画像データを、前記撮像時における前記撮像素子の一次元方向へのぶれに関するぶれ情報に基づいて修復する画像データ修復方法であって、前記ぶれ情報に基づくぶれがない状態で前記被写体を撮像したときに得られる理想的な画像データを前記静止画像データから復元するための復元行列であって、前記ぶれ情報に基づくぶれによる前記理想的な画像データの前記一次元方向への広がりを表すぶれ伝達関数の行列表現であるぶれ行列の擬似逆行列である復元行列を、前記ぶれ情報に基づいて生成する復元行列生成ステップと、前記復元行列生成ステップで生成された前記復元行列と前記静止画像データとにより、前記理想的な画像データを復元する画像データ復元ステップとを備え、前記復元行列は、前記静止画像データの前記一次元方向の総画素データ数nと同じ数のデータからなるn個の行ベクトルDt(t=1,2,3,・・・,n)で構成され、前記復元行列生成ステップでは、前記ぶれ情報に対応するぶれ伝達関数の逆特性である逆ぶれ伝達関数のインパルス応答に基づいて、前記n個の行ベクトルDtを生成する画像データ修復方法。 【0017】 (10)(9)記載の画像データ修復方法であって、前記復元行列生成ステップが、前記逆ぶれ伝達関数のインパルス応答を求めるインパルス応答算出ステップと、メモリ上に“0”を(t−1)個並べ、その後に、前記インパルス応答算出ステップにより時系列で算出されるデータの先頭から(n−t)番目までのデータを並べた行ベクトルdtを生成する行ベクトルdt生成ステップと、前記行ベクトルdtの総和Σdtを“1”から減算する減算ステップと、前記行ベクトルdtの最後に前記減算ステップで得られたデータ{1−Σdt}を配置して前記行ベクトルDtを生成する行ベクトル生成ステップとを含む画像データ修復方法。 【0018】 (11)(10)記載の画像データ修復方法であって、前記インパルス応答算出ステップが、単位インパルスを生成する単位インパルス生成ステップと、前記単位インパルスに対し、前記ぶれ情報に応じてフィルタ係数が決定されるIIRフィルタ処理を実行するIIRフィルタ処理ステップを含む画像データ修復方法。 【0019】 (12)(9)〜(11)のいずれか1項記載の画像データ修復方法であって、前記画像データ復元ステップでは、前記復元行列生成ステップで生成された前記n個の行ベクトルD1〜Dnの各々に前記静止画像データを順次掛けていくことで、前記理想的な画像データを復元する画像データ修復方法。 【0020】 (13)(9)〜(12)のいずれか1項記載の画像データ修復方法であって、前記復元行列生成ステップで生成された復元行列に起因して、前記画像データ復元ステップによって復元された画像データに前記一次元方向に向かって周期的に重畳される複数種類のノイズを算出するノイズ算出ステップと、前記ノイズ算出ステップで算出されたノイズを前記画像データ復元ステップによって復元された画像データから除去するノイズ除去ステップと、前記復元行列生成ステップで生成された復元行列と前記ぶれ行列との積により、前記複数種類のノイズ毎のノイズ重畳周期に関するノイズ周期情報を生成するノイズ周期情報生成ステップとを備え、前記ノイズ算出ステップでは、前記ノイズ周期情報と前記画像データ復元ステップによって復元された画像データと前記静止画像データとに基づいて、前記複数種類のノイズを算出する画像データ修復方法。 【0021】 (14)(13)記載の画像データ修復方法であって、前記ノイズ周期情報生成ステップでは、前記復元行列生成ステップで生成された前記n個の行ベクトルD1〜Dnの各々に前記ぶれ行列を順次掛けていくことで得られるデータにより、前記ノイズ周期情報を生成する画像データ修復方法。 【0022】 (15)(9)〜(14)のいずれか1項記載の画像データ修復方法であって、前記静止画像データ及び前記画像データ復元ステップで復元された画像データは、それぞれ、前記一次元方向に並ぶ多数の画素データからなる画素データ列が前記一次元方向と直交する方向に多数配列された構成であり、前記ノイズ算出ステップが、前記画像データ復元ステップによって復元された画像データの各画素データ列の復元もととなった前記静止画像データの画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎にサンプリングする第1のサンプリングステップと、前記復元もととなった前記静止画像データの画素データ列から復元された画素データ列の各画素データを、前記ノイズ周期情報にしたがったノイズ重畳周期毎に前記第1のサンプリングステップと同一数サンプリングする第2のサンプリングステップと、前記第2のサンプリングステップによってサンプリングされた画素データの積算値から前記第1のサンプリングステップによってサンプリングされた画素データの積算値を減算した値を前記サンプリングした数で割って前記ノイズを算出する割り算ステップとを含む画像データ修復方法。 【0023】 (16)(9)〜(15)のいずれか1項記載の画像データ修復方法の各ステップをコンピュータに実行させるための画像データ修復プログラム。 【発明の効果】 【0024】 本発明によれば、ぶれの発生している画像データからぶれの発生していない画像データを復元する処理を、安価な構成で且つ高速に行うことが可能な画像データ修復装置を提供することができる。 【発明を実施するための最良の形態】 【0025】 以下、本発明の実施形態について図面を参照して説明する。 【0026】 図1は、本発明の実施形態を説明するための撮像装置の一例である手ぶれ補正機能を有するデジタルカメラの概略構成を示す図である。 図1に示すデジタルカメラ100は、撮像部1、アナログ信号処理部2、A/D変換部3、駆動部4、ぶれ検出部5、デジタル信号処理部6、圧縮/伸張処理部7、システム制御部9、内部メモリ10、メディアインタフェース(I/F)11、記録メディア12、操作部13、画像データ修復部60、及びシステムバス14を有する。 【0027】 システムバス14には、画像データ修復部60、デジタル信号処理部6、圧縮/伸張処理部7、システム制御部9、内部メモリ10およびメディアインタフェース11が接続されている。 【0028】 撮像部1は、撮影レンズ1aを含む光学系と、この光学系を通して被写体からの光を受光するCCD型やCMOS型のイメージ(エリア)センサ等の撮像素子1bとを含み、被写体を撮影し、その撮像信号(アナログ信号)を出力する。 【0029】 アナログ信号処理部2は、撮像部1からの撮像信号に対し、所定のアナログ信号処理を施す。A/D変換部3は、アナログ信号処理部2で信号処理されたアナログ信号をデジタル信号に変換する。 【0030】 駆動部4は、デジタルカメラ100が撮影モードに設定されると、システム制御部9から供給される駆動パルスに従って、撮像素子1b、アナログ信号処理部2、A/D変換部3を駆動する。ここで、撮影モードとは、被写体を撮影し、撮影して得られた撮像信号から生成した画像データを記録可能なモードである。 【0031】 デジタル信号処理部6は、A/D変換部3からのデジタル信号に対し、操作部13で設定された動作モードに応じたデジタル信号処理を行い、撮影画像データを生成する。デジタル信号処理部6におけるデジタル信号処理には、黒レベル補正処理(OB処理)、リニアマトリクス補正処理、ホワイトバランス調整処理、ガンマ補正処理、同時化処理等が含まれる。このデジタル信号処理部6は、例えばDSPで構成される。デジタル信号処理部6で生成された撮影画像データは、内部メモリ10に一時記憶される。 【0032】 圧縮/伸張処理部7は、デジタル信号処理部6で生成された撮影画像データに対して圧縮処理を施すとともに、記録メディア12から得られた圧縮画像データに対して伸張処理を施す。 【0033】 内部メモリ10は、例えばDRAMからなり、デジタル信号処理部6やシステム制御部9や画像データ修復部60のワークメモリとして利用される他、記録メディア12に記録される撮影画像データを一時的に記憶するバッファメモリとして利用される。 【0034】 メディアインタフェース11は、メモリカード等の記録メディア12との間でデータの入出力を行う。操作部13は、デジタルカメラに対して各種操作を行うものであり、撮影を指示するためのレリーズボタン(図示せず)を含む。 【0035】 ぶれ検出部5は、システム制御部9からの指示に従って、撮像素子1bの撮像(露光)中におけるデジタルカメラ100のぶれ(撮像素子1bのぶれと同義)を検出し、検出したぶれに関するぶれ情報を生成し、ぶれ情報をシステム制御部9に出力する。このぶれ情報は、このぶれ情報を生成した撮像時に得られた撮影画像データと共に、システム制御部9により内部メモリ10に記録される。ぶれを検出する方法としては、ジャイロスコープや圧電素子等のセンサによってぶれを検出する方法や、露光によって得られた画像データから画像処理によって導出する方法がある。画像処理により導出する方法としては、輪郭のぶれ方向から導出する方法や、ある特定のマークを被写体の一部に入れて撮影してそのマークのぶれから導出する方法等がある。これら、ぶれを検出する方法についてはいずれも公知であるため、説明を省略する。 【0036】 ぶれ検出部5で生成されるぶれ情報は、例えば、ぶれの方向と、画素数(撮像素子1bの光電変換素子の個数と対応)で表されるぶれの大きさと、ぶれの速度とを含む。 【0037】 システム制御部9は、撮影動作を含むデジタルカメラ100全体の統括制御を行う。 【0038】 画像データ修復部60は、デジタル信号処理部6で生成された静止画撮影時に得られた撮影画像データ(以下、静止画像データという)と、その静止画像データを得るための撮像時にぶれ検出部5で検出して生成されたぶれ情報とに基づいて、当該静止画像データを修復して、ぶれのない状態で撮像して得られた静止画像データを復元する。 【0039】 ここで、ぶれの発生している静止画像データを修復する方法について説明する。 撮像素子1bが全くぶれない状態で被写体を撮像したときにデジタル信号処理部6で生成されるぶれのない理想的な静止画像データOの模式図を図2(a)に示す。静止画像データOは、垂直方向Yに順番に配列された画素データO1〜O10の10個の画素データからなる画素データ列が、垂直方向Yに直交する水平方向Xに多数配列されたもの、又は、水平方向Xに配列された多数の画素データからなる画素データ行が、垂直方向Yに10個配列されたものとなっている。 【0040】 又、図2(a)には、撮像中に撮像素子1bがY方向に向かって2つの光電変換素子分ぶれたときに、撮像素子1bの撮影範囲内に新たに入る被写体から得られる2画素データ行分の画素データを画素データO11,O12として図示してある。画素データO11,O12は、撮像素子1bのぶれによって理想的な静止画像データOの端部(画素データO10)よりもY方向外側に広がった画素データを示す。図2(a)に示した各画素データ列とそれのY方向外側に続く画素データO11と画素データO12と併せた行列表現は、以下の数1に示すような列ベクトル[O]として表現することができる。 【0041】 【数1】
【0042】 一方、撮像素子1bがぶれた状態で被写体を撮像したときにデジタル信号処理部6で生成された静止画像データSの模式図を図2(b)に示す。静止画像データSは、垂直方向Yに順番に配列された画素データS1〜S10の10個の画素データからなる画素データ列が、垂直方向Yに直交する水平方向Xに多数配列されたもの、又は、水平方向Xに配列された多数の画素データからなる画素データ行が、垂直方向Yに10個配列されたものとなっている。静止画像データSの各画素データ列は、以下の数2に示すような列ベクトル[S]として表現することができる。 【0043】 【数2】
【0044】 ここで、静止画像データSを得るための撮像時において、撮像素子1bが、Y方向に向かって2つの光電変換素子分ぶれたものとする。このぶれによる静止画像データOのY方向の広がりをz領域で表した点広がり関数(以下、ぶれ伝達関数という)の行列表現であるぶれ行列をHとすると、以下の数3の関係が成立する。 【0045】 【数3】
【0046】 最終的に求めたいのは、ぶれのない理想的な静止画像データOであるため、この静止画像データOを復元するには、以下の数4で示される演算が必要となる。数4において、Wはぶれ行列Hの逆行列である。 【0047】 【数4】
【0048】 数3を見て分かるように、[S]のデータ数と[O]のデータ数は異なるため、ぶれ行列Hは、10行×12列の行列となり、正則になっていない。このため、ぶれ行列Hの逆行列を求めることはできない。そこで、ぶれ行列Hの擬似逆行列を求め、これをWとすることで、[O]の値を求めることができる。このような処理を行って、静止画像データOの各画素データ列のデータを復元することで、ぶれのない静止画像データを得ることができる。このようにして復元された静止画像データOを以下では復元画像データOともいう。以下では、上記Wのことを、静止画像データOを復元するための行列であることから、復元行列という。 【0049】 本実施形態のデジタルカメラに搭載される画像データ修復部60は、ぶれ行列Hの逆行列演算を行うことなく、ぶれ伝達関数から復元行列Wをダイレクトに生成する機能と、復元行列Wを用いて復元画像データOを生成したことによって、復元画像データOに重畳されるノイズを効果的に除去する機能とを有する。 【0050】 以下では、デジタル信号処理部6で生成される静止画像データを、図2(b)に示したものとし、画像データ修復部60で復元される静止画像データを、図2(a)に示したものとして説明する。 【0051】 図3は、図1に示す画像データ修復部60の内部構成を示すブロック図である。 画像データ修復部60は、内部メモリ10からぶれ情報(以下、Aとする)を取得するぶれ情報取得部62と、ぶれ情報Aに基づいて復元行列Wを生成する復元行列生成部63と、復元行列生成部63で生成された復元行列Wと内部メモリ10に記録されているぶれ情報Aに対応する静止画像データSとにより、理想的な静止画像データOを復元する画像データ復元部64と、復元行列生成部63で生成された復元行列Wに起因して、画像データ復元部64によって復元された復元画像データOの各画素データ列にY方向に向かって周期的に重畳されるノイズの種類及び重畳周期に関するノイズ周期情報を生成するノイズ周期情報生成部67と、該ノイズを算出するノイズ算出部65と、該算出されたノイズを画像データ復元部64によって復元された復元画像データOから除去するノイズ除去部66とを備える。 【0052】 復元行列生成部63は、後述する方法によって復元行列Wを生成するが、ここではまず、特許文献1に開示されているような方法で復元行列Wを生成する方法について説明する。 【0053】 この方法では、まず、ぶれ情報Aに基づくぶれの方向、大きさ、及び速度から、z領域で表されるぶれ伝達関数H(z)を生成し、このぶれ伝達関数H(z)を行列に変換してぶれ行列Hを生成する。例えば、ぶれの方向がY方向であり、大きさが2光電変換素子分であり、速度が等速であった場合、ぶれ伝達関数H(z)は{(1+Z−1+Z−2)/3}で表され、その行列表現は図4(a)に示したものとなる。 【0054】 次に、ぶれ行列Hを正則にするために、ぶれ情報Aに基づくぶれによる理想的な静止画像データOの広がりによって、理想的な静止画像データOの端部よりもY方向外側に存在する画素データ(図2(a)の画素データO11,O12)の値に、画素データO10と同じ値が外挿されるように表された近似行列Fを生成する。ぶれ行列Hが図4(a)のような形だった場合は、ぶれ行列Hの一番右から2列を削除し、削除後の行列の一番右の列の一番下の行とその上の行の値にそれぞれ“1”と“2”をプラスした図4(b)に示すような近似行列Fを生成する。 【0055】 近似行列Fが図4(b)に示すような形だった場合、復元行列Wは図4(c)に示したものとなる。 【0056】 又、例えば、ぶれ情報Aに基づくぶれの方向がY方向であり、大きさが2光電変換素子分であり、速度が非等速であった場合、ぶれ伝達関数H(z)は{(1+Z−2)/2}で表され、その行列表現は図5(a)に示したものとなり、近似行列Fは図5(b)に示したものとなり、復元行列Wは図5(c)に示したものとなる。 【0057】 ここで、図4(c)に示す復元行列Wと図5(c)に示す復元行列Wとに着目すると、いずれの復元行列Wも、静止画像データSのY方向の総画素データ数n(ここではn=10)と同じ数のデータからなる10個の行ベクトルDt(t=1,2,3,・・・,10)で構成されている。 【0058】 ここで、行ベクトルDtを、先頭から(n−1)列目までのデータで構成される行ベクトルdtと、n列目にあるデータd’tとに分割する。例えば、行ベクトルD1は、行ベクトルd1=[3,−3,0,3,−3,0,3,−3,0]と、データd’1=1とに分割する。 【0059】 このように考えると、行ベクトルdtは、“0”を先頭から(t−1)個X方向に並べ、その後に、行ベクトルd1の先頭から(n−t)個のデータを並べた構成となっていることが分かる。又、データd’tは、行ベクトルdtの総和Σdtを“1”から減算して得られる値{1−Σdt}になっていることが分かる。 【0060】 又、行ベクトルd1のデータの並びは、ぶれ情報Aに対応するぶれ伝達関数H(z)の逆特性である逆ぶれ伝達関数H’(z)のインパルス応答のデータの並びと同じであることも分かる。 【0061】 このように、ぶれ情報Aに基づくぶれによる理想的な静止画像データOの広がりによって、理想的な静止画像データOの端部よりもY方向外側に存在する画素データ(図2(a)の画素データO11,O12)の値に、画素データO10と同じ値が外挿されるように近似行列Fを生成した場合には、復元行列Wがある規則性を持つことが分かった。 【0062】 そこで、復元行列生成部63では、この規則性に着目し、ぶれ情報Aに対応するぶれ伝達関数H(z)の逆特性である逆ぶれ伝達関数H’(z)のインパルス応答に基づいて、復元行列Wを構成するn個の行ベクトルDtを生成することで、ぶれ行列Hや近似行列Fを生成することなく、復元行列Wを生成することを可能にしている。 【0063】 図6は、復元行列生成部63の内部構成を示すブロック図である。 復元行列生成部63は、ぶれ情報取得部62で取得されたぶれ情報に対応するぶれ伝達関数を設定するぶれ伝達関数設定部63aと、IIRフィルタ処理を行うIIRフィルタ処理部63cと、IIRフィルタ処理部63cで行うIIRフィルタ処理のフィルタ係数を設定するフィルタ係数設定部63bと、IIRフィルタ処理部63cに単位インパルスを入力する単位インパルス入力部63dと、IIRフィルタ処理部63cの出力から行ベクトルdtを生成する行ベクトルdt生成部63eと、行ベクトルdtからデータd’tを生成するデータd’t生成部63fと、行ベクトルdtとデータd’tから行ベクトルDtを生成する行ベクトルDt生成部63gとを備える。 【0064】 ぶれ伝達関数設定部63aは、ぶれ情報取得部62で取得されたぶれ情報に対応するぶれ伝達関数H(z)を、該ぶれ情報から生成したり、ぶれ情報毎のぶれ伝達関数H(z)が記録されている記録媒体から読み出したりして、設定する。 【0065】 図7は、IIRフィルタ処理部63cの具体的な構成例を示すブロック図である。ここでは、IIRフィルタ処理部63cがハードウェアで構成される例を説明するが、もちろん、IIRフィルタ処理部63cが行う処理をソフトウェアで実現することも可能である。 IIRフィルタ処理部63cは、直列接続されたp個(pは、デジタルカメラ100において発生しうる手振れの大きさの最大値)の加算器Kq(q=1〜p)と、直列接続されたp個の遅延バッファBqと、乗算器J0と、p個の乗算器Jqとを備えるIIRフィルタ回路で構成される。 【0066】 加算器Kqは、加算器Kp,Kp−1,・・・,K2,K1の順に接続され、加算器Kpの入力は入力端子INに接続され、加算器K1の出力は、フィルタ係数(1/a0)を乗算する乗算器J0を介して出力端子Outに接続されている。 【0067】 遅延バッファBqは、遅延バッファB1,B2,・・・,Bp−1,Bpの順に接続され、遅延バッファB1の入力は出力端子Outに接続され、遅延バッファBpの出力は加算器Kpの入力に接続されている。 【0068】 遅延バッファBqの出力と、加算器Kqの入力との間には、フィルタ係数(−aq)を乗算する乗算器Jqが接続されている。 【0069】 フィルタ係数設定部63bは、ぶれ伝達関数設定部63aで設定されたぶれ伝達関数に応じて、IIRフィルタ処理部63cのフィルタ係数を設定する。ぶれ伝達関数H(z)の逆特性である逆ぶれ伝達関数H’(z)は、一般に以下の数5で表すことができる。 【0070】 【数5】
【0071】 例えば、ぶれ伝達関数H(z)が{(1+Z−1+Z−2)/3}であった場合、数5におけるLの値は2となり、a0,a1,a2の値はそれぞれ(1/3)となるため、フィルタ係数設定部63bは、図7に示すIIRフィルタ処理部63cにおいて、a0,a1,a2の値をそれぞれ(1/3)に設定し、a3〜apの値を0に設定する。このようにすることで、図7に示すIIRフィルタ処理部63cが、逆ぶれ伝達関数H’(z)に相当するものとなる。 【0072】 単位インパルス入力部63dは、先頭のデータのみが“1”でそれ以外のデータは“0”となっている単位インパルスを生成し、これをIIRフィルタ処理部63cの入力端子INに先頭のデータから順次入力する。 【0073】 このような構成により、例えば、ぶれ伝達関数H(z)が{(1+Z−1+Z−2)/3}であった場合、遅延バッファBqの初期値は全て0とすると、IIRフィルタ63cの出力端子Outからは、“3”,“−3”,“0”,“3”,“−3”,“0”,“3”,“−3”,“0”,・・・といった具合に、データがこの順番で出力される。 【0074】 行ベクトルdt生成部63eは、内部メモリ10上に、 データ“0”を(t−1)個並べ、その後に、IIRフィルタ処理部63cから時系列で出力されるデータ“3”,“−3”,“0”,“3”,“−3”,“0”,“3”,“−3”,“0”,・・・の先頭から(n−t)番目までのデータを並べて、行ベクトルdtを生成する。 【0075】 データd’t生成部63fは、行ベクトルdt生成部63eで生成された行ベクトルdtのデータの総和Σdtを“1”から減算して、データd’tを生成する。 【0076】 行ベクトルDt生成部63gは、行ベクトルdt生成部63eで生成された行ベクトルdtの最後に、データd’t生成部63fで生成されたデータd’tを配置することで、行ベクトルDtを生成し、生成した行ベクトルDtを画像データ復元部64及びノイズ周期情報生成部67に出力する。 【0077】 行ベクトルdt生成部63e、データd’t生成部63f、及び行ベクトルDt生成部63gは、1つの行ベクトルDtの生成が終わる毎に、上記tの値を順次変えていくことで、復元行列Wを構成するn個の行ベクトルD1〜Dnを生成することができる。 【0078】 図3に戻り、画像データ復元部64は、行ベクトルDt生成部63gから順次出力される行ベクトルD1〜Dnの各々に、内部メモリ10に記録されている静止画像データSの各画素データ列[S]を掛けることで、理想的な静止画像データOを復元する。 【0079】 例えば、行ベクトルD1に静止画像データSの各画素データ列[S]を掛けると、静止画像データOの各画素データ列のうち画素データO1を復元することができ、行ベクトルD2に静止画像データSの各画素データ列[S]を掛けると、静止画像データOの各画素データ列の画素データO2を復元することができる。画像データ復元部64は、このような処理を繰り返していくことで、静止画像データOの各画素データ列の画素データO1〜O10を全て復元する。 【0080】 尚、以上の説明では、画像データ復元部64が、行ベクトルD1〜Dnの各々に静止画像データSの各画素データ列[S]を掛ける処理を行うことによって、静止画像データOを復元するものとしたが、行ベクトルDt生成部63gで行ベクトルD1〜Dnを生成して、これを復元行列Wの形になるように合成してから、合成後の復元行列Wを画像データ復元部64に入力し、画像データ復元部64が、この復元行列Wに静止画像データSの各画素データ列[S]を掛ける処理を行うことで、静止画像データOを復元するようにしても良い。 【0081】 行ベクトルD1〜Dnの各々に静止画像データSの各画素データ列 [S]を掛ける処理を行って静止画像データOを復元する場合には、例えば、行ベクトルD2が生成されている期間に、静止画像データOの各画素データ列のうち画素データO1を復元することができるため、復元処理を高速に行うことができる。又、この場合には、復元処理が一次元の行列同士のベクトル演算だけで済むため、二次元の行列同士の演算を行う場合に比べて、演算処理に必要なメモリを削減することができる。 【0082】 次に、復元行列Wに起因して、画像データ復元部64によって復元された復元画像データOの各画素データ列にY方向に向かって周期的に重畳されるノイズについて説明する。 【0083】 図4(a)に示すぶれ行列Hと、図4(c)に示す復元行列Wとの積W*Hが図4(d)に示す行列となる。復元行列Wは、ぶれ行列Hの逆行列として求められているため、図4(d)に示す行列の右から3列のデータのうち、右から3番目の列の一番下の行のデータは1となり、それ以外のデータは0となるのが理想である。しかし、復元行列Wはぶれ行列Hの擬似逆行列であるため、W*Hの値は理想的なものとはならない。そこで、W*Hの理想的な値と、W*Hの実際の値とを比較することで、復元行列Wを用いた復元により得られた復元画像データOに重畳されるノイズを検出することができる。 【0084】 図4(d)に示すW*Hの行列は、1行目と4行目と7行目に同一のノイズ(1)が加わっており、2行目と5行目と8行目に同一のノイズ(2)が加わっており、3行目と6行目と9行目に同一のノイズ(3)が加わっており、10行目のデータが不正確となっていることが分かる。このことから、図4(c)に示す復元行列Wを用いて復元された復元画像データOは、Nを1〜3としたとき、{3(N−1)+1}行周期でノイズ(1)が加わっており、{3(N−1)+2}行周期でノイズ(2)が加わっており、{3(N−1)+3}行周期でノイズ(3)が加わっており、10行目のデータが不正確となっていることを検出することができる。 【0085】 同様に、図5(d)に示すW*Hの行列は、1行目と5行目と9行目に同一のノイズ(1)が加わっており、2行目と6行目に同一のノイズ(2)が加わっており、3行目と7行目に同一のノイズ(3)が加わっており、4行目と8行目に同一のノイズ(4)が加わっており、10行目のデータが不正確となっていることが分かる。このことから、図5(c)に示す復元行列Wを用いて復元された復元画像データOは、{4(N−1)+1}行周期(N=1〜3)でノイズ(1)が加わっており、{4(N−1)+2}行周期(N=1,2)でノイズ(2)が加わっており、{4(N−1)+3}行周期(N=1,2)でノイズ(3)が加わっており、{4(N−1)+4}行周期(N=1,2)でノイズ(4)が加わっており、10行目のデータが不正確となっていることを検出することができる。 【0086】 このことを利用して、ノイズ周期情報生成部67はノイズ周期情報を生成する。ノイズ周期情報生成部67は、ぶれ伝達関数設定部63aで設定されたぶれ伝達関数から、その行列表現であるぶれ行列Hを生成し、そのぶれ行列Hと、復元行列生成部63cで生成された復元行列Wのn個の行ベクトルD1〜Dnの各々の積を求め、この積で得られるデータから、上述したようなノイズの種類((1)〜(4))と、そのノイズの重畳周期とを検出し、ノイズ種類毎のノイズ重畳周期を示すノイズ周期情報を生成する。 【0087】 尚、行ベクトルDt生成部63gで行ベクトルD1〜Dnを生成して、これを復元行列Wの形になるように合成してから、合成後の復元行列Wをノイズ周期情報生成部67に入力し、ノイズ周期情報生成部67が、上記ぶれ行列Hと、入力された復元行列Wとの積を求め、この積で得られるデータからノイズ周期情報を生成しても良い。ぶれ行列Hと、復元行列生成部63cで生成された復元行列Wのn個の行ベクトルD1〜Dnの各々の積によりノイズ周期情報を生成する場合は、静止画像データOの復元処理とノイズ周期情報の生成処理とを同時進行することができるため、全体の処理時間を短縮することができる。 【0088】 ノイズ種類毎のノイズ重畳周期が分かれば、ノイズ種類毎のノイズ値を推測することが可能である。例えば、図4(d)に示す行列からノイズ重畳周期を検出した場合を例にすると、復元画像データOの1つの画素データ列(以下、Bとする)に対し、{3(N−1)+1}行毎に画素データのサンプリングを行ったときに得られる画素データの総和Σ1は、以下の式1となる。 Σ1=画素データO1+画素データO4+画素データO7+(3×ノイズ(1))・・・式1 【0089】 ここで、「画素データO1+画素データO4+画素データO7」の値は、「画素データS1+画素データS4+画素データS7」とそれほど変わらないため、この値で近似することができる。つまり、式1は、式2のように近似することができる。 Σ1=画素データS1+画素データS4+画素データS7+(3×ノイズ(1))・・・式2 【0090】 Σ1と画素データS1,S4,S7は既知であるため、この式2を変形した以下の式3により、ノイズ(1)の値を求めることができる。 ノイズ(1)={Σ1−(画素データS1+画素データS4+画素データS7)}/3・・・式3 【0091】 同様に、画素データ列Bに対し、{3(N−1)+2}行毎に画素データのサンプリングを行ったときに得られる画素データの総和Σ2は、以下の式4となる。 Σ2=画素データO2+画素データO5+画素データO8+(3×ノイズ(2))・・・式4 【0092】 式4は、以下の式5のように近似することができる。 Σ2=画素データS2+画素データS5+画素データS8+(3×ノイズ(2))・・・式5 【0093】 式5を変形した以下の式6により、ノイズ(2)の値を求めることができる。 ノイズ(2)={Σ2−(画素データS2+画素データS5+画素データS8)}/3・・・式6 【0094】 同様に、画素データ列Bに対し、{3(N−1)+3}行毎に画素データのサンプリングを行ったときに得られる画素データの総和Σ3は、以下の式7となる。 Σ3=画素データO3+画素データO6+画素データO9+(3×ノイズ(3))・・・式7 【0095】 式7は、以下の式8のように近似することができる。 Σ3=画素データS3+画素データS6+画素データS9+(3×ノイズ(3))・・・式8 【0096】 この式8を変形した以下の式9により、ノイズ(3)の値を求めることができる。 ノイズ(3)={Σ3−(画素データS3+画素データS6+画素データS9)}/3・・・式9 【0097】 このような処理により、復元画像データOを構成する各画素データ列毎に、そこに重畳されるノイズを算出することができる。 【0098】 図3に戻り、ノイズ算出部65は、このような処理を行うために、静止画像データサンプリング部65aと、復元画像データサンプリング部65bと、割り算部65cとを備える。 【0099】 静止画像データサンプリング部65aは、内部メモリ10に記録されている静止画像データSの各画素データ列[S]を、ノイズ周期情報に含まれる各ノイズ種類毎のノイズ重畳周期でサンプリングする。 【0100】 復元画像データサンプリング部65bは、画像データ復元部64で生成された復元画像データOの各画素データ列[O]を、ノイズ周期情報に含まれる各ノイズ種類毎のノイズ重畳周期でサンプリングする。 【0101】 割り算部65cは、各ノイズ重畳周期で復元画像データサンプリング部65bによりサンプリングされた画素データの総和(例えば、上記Σ1)から、該ノイズ重畳周期で静止画像データサンプリング部65aによりサンプリングされた画素データの総和(例えば、上記「画素データS1+画素データS4+画素データS7」)を減算し、減算して得られる値を、該ノイズ重畳周期でサンプリングしたサンプリング数(例えば3)で割って、復元画像データOの各画素データ列[O]に重畳される各ノイズ種類のノイズ値を算出する。 【0102】 ノイズ除去部66は、割り算部65cから出力されたノイズを復元画像データOから除去し、除去後の復元画像データを例えば内部メモリ10に記録する。記録された復元画像データは、圧縮/伸張処理部で圧縮処理が施された後、記録メディア12に記録される。 【0103】 例えば、図4(d)に示す行列からノイズ重畳周期を検出した場合を例にすると、ノイズ除去部66は、復元画像データOの各画素データ列[O]の{3(N−1)+1}行目の画素データから、その画素データ列[O]について算出されたノイズ(1)を除去し、復元画像データOの各画素データ列[O]の{3(N−1)+2}行目の画素データから、その画素データ列[O]について算出されたノイズ(2)を除去し、復元画像データOの各画素データ列[O]の{3(N−1)+3}行目の画素データから、その画素データ列[O]について算出されたノイズ(3)を除去する。 【0104】 次に、画像データ修復部60の動作について説明する。 図8は、画像データ修復部60の動作を説明するためのフローチャートである。 まず、撮像素子1bにより撮像が行われると、その撮像中の撮像素子1bのぶれに関するぶれ情報が生成され、このぶれ情報が、その撮像により得られる静止画像データSと対応付けて内部メモリ10に記録される。 【0105】 内部メモリ10に静止画像データSとぶれ情報が記録された後、画像データ修復部60は、内部メモリ10からぶれ情報を取得する(ステップS1)。次に、画像データ修復部60は、このぶれ情報にしたがってぶれ伝達関数を設定し(ステップS2)、このぶれ伝達関数からIIRフィルタ処理部63cのフィルタ係数を設定する(ステップS3)。 【0106】 次に、画像データ修復部60は、単位インパルスを生成してIIRフィルタ処理部63cに入力し(ステップS4)、IIRフィルタ処理部63cからインパルス応答を出力する(ステップS5)。 【0107】 次に、画像データ修復部60は、IIRフィルタ処理部63cから出力されたインパルス応答により行ベクトルd1を生成し(ステップS6)、行ベクトルd1によりデータd’1を生成し(ステップS7)、行ベクトルd1とデータd’1により行ベクトルD1を生成する(ステップS8)。 【0108】 次に、画像データ修復部60は、行ベクトルD1と静止画像データSの各画素データ列[S]との掛け算により、静止画像データOの1つの画素データ行を復元する(ステップS9)。 【0109】 次に、画像データ修復部60は、t=nになっているか判定し、なっていない場合は(ステップS10:NO)、tをt+1に変更して(ステップS11)、ステップS6〜S9までの処理を繰り返す。t=nになっていた場合(ステップS10:YES)、画像データ修復部60は、ステップS2で設定されたぶれ伝達関数の行列表現であるぶれ行列Hを生成し(ステップS12)、既に生成された行ベクトルD1〜Dnの各々との積からノイズ周期情報を生成する(ステップS13)。 【0110】 次に、画像データ修復部60は、内部メモリ10に記録されている静止画像データSを、ノイズ周期情報にしたがってサンプリングし(ステップS14)、ステップS9で復元された復元画像データOをノイズ周期情報にしたがってサンプリングし(ステップS15)、ステップS14,S15でサンプリングしたデータを基に、復元画像データOに重畳されているノイズを算出する(ステップS16)。次に、画像データ修復部60は、ステップS9で復元した復元画像データOからステップS16で算出したノイズを除去し(ステップS17)、除去後の復元画像データOを外部に出力して、画像データ修復処理を終了する。 【0111】 以上のように、本実施形態の画像データ修復部60によれば、ぶれ行列H及び近似行列Fを生成することなく、ぶれ伝達関数によってフィルタ係数を設定したIIRフィルタ処理に基づいて復元行列Wを生成することができる。このため、近似行列Fの逆行列を演算することで復元行列Wを求めていた従来に比べて、メモリ使用量や計算量を減らすことができ、画像データの復元処理を低消費電力且つ高速且つ低コストで行うことができる。 【0112】 又、本実施形態の画像データ修復部60によれば、一次元の行列演算だけで、ぶれのない静止画像データを復元することができるため、二次元の行列演算を行って静止画像データを復元していた従来に比べて、メモリ使用量を減らすことができ、コスト削減が可能となる。 【0113】 又、本実施形態の画像データ修復部60によれば、ぶれ行列Hの擬似逆行列Wを用いて静止画像データOを復元した場合に、復元された静止画像データOに重畳されているノイズを効果的に除去することができる。このため、画質劣化を抑制しながら、ぶれの発生してない静止画像データOを復元することができ、信頼性の高い手ぶれ補正機能を備えたデジタルカメラを提供することが可能となる。 【0114】 尚、上述した実施形態の画像データ修復部60は、コンピュータを画像データ修復部60内の各部として機能させるための画像データ修復プログラム、又は、図8に示した画像データ修復部60の各処理ステップをコンピュータに実行させるための画像データ修復プログラムを、デジタルカメラに搭載されている演算処理装置等のコンピュータ(例えば、デジタル信号処理部6やシステム制御部9)が実行することでも実現できる。又、デジタルカメラ等から得られた静止画像データSとそれに対応するぶれ情報を、そのままパーソナルコンピュータの内部メモリに取り込み、上記の画像データ修復プログラムをこのコンピュータが実行することで、このコンピュータを画像データ修復部60として機能させることも可能である。 【図面の簡単な説明】 【0115】 【図1】本発明の実施形態を説明するための手ぶれ補正機能を有するデジタルカメラの概略構成を示す図 【図2】ぶれの発生している静止画像データを修復する方法を説明するための図 【図3】図1に示す画像データ修復部の内部構成を示すブロック図 【図4】(a)は撮像素子が一次元方向に等速でぶれたときのぶれ行列の一例を示す図、(b)は(a)のぶれ行列を近似した近似行列を示す図、(c)は(b)の近似行列の逆行列である復元行列を示す図、(d)は(a)のぶれ行列と(c)の復元行列との積で得られる行列を示す図 【図5】(a)は撮像素子が一次元方向に等速でぶれたときのぶれ行列の一例を示す図、(b)は(a)のぶれ行列を近似した近似行列を示す図、(c)は(b)の近似行列の逆行列である復元行列を示す図、(d)は(a)のぶれ行列と(c)の復元行列との積で得られる行列を示す図 【図6】図3に示す復元行列生成部63の内部構成を示すブロック図 【図7】図6に示すIIRフィルタ処理部の内部構成を示すブロック図 【図8】図1に示す画像データ修復部の動作を説明するためのフローチャート 【符号の説明】 【0116】 1 撮像部 2 アナログ信号処理部 3 A/D変換部 4 駆動部 5 ぶれ検出部 6 デジタル信号処理部 7 圧縮/伸張処理部 9 システム制御部 10 内部メモリ 11 メディアインタフェース 12 記録メディア 13 操作部 14 システムバス 60 画像データ修復部
|
| 【出願人】 |
【識別番号】306037311 【氏名又は名称】富士フイルム株式会社
|
| 【出願日】 |
平成18年9月1日(2006.9.1) |
| 【代理人】 |
【識別番号】100115107 【弁理士】 【氏名又は名称】高松 猛
【識別番号】100132986 【弁理士】 【氏名又は名称】矢澤 清純
|
| 【公開番号】 |
特開2008−61101(P2008−61101A) |
| 【公開日】 |
平成20年3月13日(2008.3.13) |
| 【出願番号】 |
特願2006−237857(P2006−237857) |
|