図1は、本実施形態の一眼レフデジタルカメラ1を示す斜視図である。また、図2は、本実施形態のカメラ1を示す要部構成図である。本実施形態のデジタルカメラ1(以下、単にカメラ1という。)は、カメラ本体2とレンズ鏡筒3から構成され、これらカメラ本体2とレンズ鏡筒3とが着脱可能に結合されている。
レンズ鏡筒3は、カメラ本体2に着脱可能な交換レンズである。図2に示すように、レンズ鏡筒3には、レンズ351,352,353,354および絞り355を含む撮影光学系35が内蔵されている。
レンズ352は、ズームレンズであり、ズームレンズ駆動モータにより、光軸L1方向に移動することで、撮影光学系の焦点距離fを調節可能となっている。ズームレンズ352は、ズームレンズ用エンコーダ33によってその位置が検出されつつズームレンズ駆動モータによってその位置が調節される。ズームレンズ352の位置は、カメラ1の操作部(不図示)に設けられたズームボタンを操作することにより、あるいは、カメラ鏡筒3に設けられたズーム環(不図示)を操作することにより調節される。
また、レンズ353は、フォーカスレンズであり、フォーカスレンズ駆動モータにより、光軸L1方向に移動することで、被写体距離dを調節可能となっている。フォーカスレンズ353は、レンズ鏡筒3の光軸L1に沿って移動可能に設けられ、フォーカスレンズ用エンコーダ34によってその位置が検出されつつフォーカスレンズ駆動モータによってその位置が調節される。
絞り355は、上記撮影光学系を通過してカメラ本体2に備えられた撮像素子21に至る光束の光量を制限するとともにボケ量を調整するために、光軸L1を中心にした開口径が調節可能に構成されている。絞り35は、カメラ本体2に備えられているカメラ制御部22の絞り値設定部221により設定された絞り値に応じて、カメラ本体2に備えられている絞り調整部材(不図示)が駆動することにより、カメラ本体2によって、直接、その開口径が調整される。
レンズメモリ32は、複数のPSF種データDPSFを記憶している。PSF種データDPSFとは、カメラ本体2に備えられた撮像素子21で撮像された撮像画像について、点像拡がり関数(PSF:Point Spread Function)を用いたフィルタ処理により画像回復するために用いられるデータである。
本実施形態においては、後述するように、カメラ本体2により、点像拡がり関数を用いて、撮像画像の回復を行うものである。この際において、点像拡がり関数は、主としてレンズ鏡筒3の撮影光学系35の状態によって変動するものであるため、本実施形態においては、このような観点より、点像拡がり関数に関する情報をレンズ鏡筒3のレンズメモリ32に記憶させるものである。その一方で、後述するように、点像拡がり関数は画像データであるためデータ量が多く、そのため、本実施形態では、レンズメモリ32に記憶させるデータ量を少なく抑えるという観点より、点像拡がり関数そのものではなく、点像拡がり関数(より詳細には、近似点像拡がり関数K_approx)を導出するために用いられるPSF種データDPSFを、レンズメモリ32に記憶させるものである。
レンズ制御部31は、ズームレンズ352、フォーカスレンズ353の駆動制御などレンズ鏡筒3全体の制御を行う。また、レンズメモリ32に記憶されているPSF種データDPSFを読み出し、読み出したPSF種データDPSFに基づいて、現在の撮影光学系に対応する、対応PSF種データDPSF_curを演算し、これをカメラ本体2に送信する。
具体的には、レンズ制御部31は、ズームレンズ用エンコーダ33により検出されたズームレンズ352の位置から撮影光学系の焦点距離fを、また、フォーカスレンズ用エンコーダ34により検出されたフォーカスレンズ353の位置から被写体距離dをそれぞれ求める。また、レンズ制御部31は、カメラ送受信部27およびレンズ送受信部36を介して、カメラ本体2から、絞り値F、および撮像素子21の画像サイズに対応する最大像高hmaxの情報をそれぞれ取得する。なお、絞り値Fは、カメラ制御部22の絞り値設定部221で、また、像高hは、カメラ制御部22の画像サイズ設定部222でそれぞれ設定される。
そして、レンズ制御部31は、撮影光学系の焦点距離f、および被写体距離dの情報、さらには、絞り値F、および撮像素子21の画像サイズに対応する最大像高hmaxの情報に基づいて、レンズメモリ32に備えられたPSF種データDPSFに基づいて、現在の撮影光学系に対応する、対応PSF種データDPSF_curを演算する。そして、演算した対応PSF種データDPSF_curを、レンズ送受信部36およびカメラ送受信部27を介して、カメラ本体2の第1バッファメモリ24に送信する。なお、対応PSF種データDPSF_curの演算方法の詳細については後述する。
一方、カメラ本体2には、上記撮影光学系35からの光束L1を受光する撮像素子21が、撮影光学系の予定焦点面に設けられている。撮像素子21はCCDやCMOSなどのデバイスから構成され、入力される被写体の像を光電変換してアナログ画像信号を生成し、生成したアナログ画像信号をAFE回路211に出力する。AFE回路211は、撮像素子21から出力されたアナログ画像信号に対してゲインコントロールやノイズ除去などのアナログ信号処理を施して、処理後のアナログ画像信号をA/D変換器212に出力する。A/D変換器212は、AFE回路211から出力されたアナログ画像信号をデジタル変換して、得られたデジタル画像データを画像処理部25に出力する。
カメラメモリ23は、レンズ制御部31により演算された対応PSF種データDPSF_curに基づいて、撮像画像の回復に用いるための近似点像拡がり関数K_approxの演算に用いる、直交基底関数φi(i=1,2,・・・,n)、および撮像素子21に備えられたカラーフィルタの分光透過特性の情報を備えている。
第1バッファメモリ24は、レンズ制御部31により演算された現在の撮影光学系に対応する、対応PSF種データDPSF_curを受信し、対応PSF種データDPSF_curを時系列順に保存する。
カメラ制御部22は、マイクロプロセッサとメモリなどの周辺部品から構成され、撮像素子21により撮影画像の撮像や、レンズ鏡筒3の焦点調節状態の検出や、露出制御などカメラ1全体の制御を司る。また、カメラ制御部22は、絞り値設定部221、画像サイズ設定部222、PSF生成部223を備えている。絞り値設定部221は、レンズ鏡筒3に備えられている絞り355の開口径(すなわち、絞り値F)を設定し、これに基づいて、カメラ本体2に備えられている絞り調整部材(不図示)を駆動させることで、絞り355の開口径を調整する。また、絞り値設定部221は、設定した絞り値Fを、カメラ送受信部27およびレンズ送受信部36を介して、レンズ制御部31に送信する。また、画像サイズ設定部222は、撮像素子21の撮像サイズを設定し、画像サイズに対応する最大像高hmaxの情報を、カメラ送受信部27およびレンズ送受信部36を介して、レンズ制御部31に送信する。たとえば、撮像素子21の撮像サイズをフルサイズとする場合には、最大像高hmax=100%という情報を送信し、あるいは、撮像素子21の中心部のみを切り出した(トリミングした)小さい画像サイズとする場合には、切り出した画像サイズに応じた値、たとえば、最大像高hmax=40%という情報を送信する。
PSF生成部223は、レンズ制御部31に対して、近似点像拡がり関数K_approxを演算に必要となる、対応PSF種データDPSF_curを取得するために、レンズ制御部31に対して、対応PSF種データ要求信号を、絞り値F、および撮像素子21の画像サイズに対応する最大像高hmaxの情報とともに送信する。そして、レンズ制御部31から送信された対応PSF種データDPSF_curを、第1バッファメモリ24から取得し、カメラメモリ23から直交基底関数φi(i=1,2,・・・,n)、および撮像素子21に備えられたカラーフィルタの分光透過特性の情報を読み出し、これらに基づいて、撮像画像の回復に用いる近似点像拡がり関数K_approxを演算する。
画像処理部25は、画像分割部251、画像回復部252、および画像合成部253を備え、PSF生成部223で演算された近似点像拡がり関数K_approxに基づいて、撮影画像の回復を行う。撮影画像の回復方法の詳細については後述する。
第2バッファメモリ261は、画像処理部25による画像処理により得られた処理画像を一時的に保存するためのメモリである。
画像表示部262は、たとえば、カメラ本体2の背面に設けられる液晶ディスプレイであり、撮影画像の回復処理により得られた回復画像の表示等を行う。
画像記憶部263は、撮影画像の回復処理により得られた回復画像などを最終的に保存するための記憶部であり、たとえば、SDカードなどの外部記憶媒体などが挙げられる。
次いで、本実施形態における、点像拡がり関数(PSF:Point Spread Function)を用いたフィルタ処理による、撮影画像の回復方法について説明する。
本実施形態では、撮影光学系による諸収差により鮮鋭感が劣化した撮影画像に対し、解像感を回復させる処理を、点像拡がり関数を用いることにより行うものである。そして、このような処理において、たとえば、下記式(1)の関係を用いるものである。
B=L*K+n (1)
上記式(1)において、L:理想的な劣化の無い物体像、B:劣化画像,K:劣化フィルタ(ブラーカーネル、点像拡がり関数)、n:ノイズであり、「*」は畳み込み演算子である。
すなわち、上記式(1)より、劣化画像Bから、理想的な劣化の無い物体像L、すなわち、鮮鋭化画像を点像拡がり関数Kを用いて求めることができるものであり、本実施形態では、このような関係を用いて撮影画像の回復を行うものである。
上記式(1)の関係より、点像拡がり関数Kが既知であれば、鮮鋭化画像を得る事が可能となるが、通常、点像拡がり関数Kは、撮影光学系の特性に依存し、撮影光学系の状態に応じて、それぞれ固有の値を有するものである。そのため、本実施形態のカメラ1のように、レンズ交換式のカメラの場合、レンズ鏡筒3ごとに固有の値を有するものであるため、レンズ鏡筒3に、点像拡がり関数Kの情報を備えるような構成とすることが望ましい。
しかし、その一方で、点像拡がり関数Kは画像データであるため、そのデータ量は非常に大きく、また、点像拡がり関数Kは撮影光学系の設定値、すなわち、絞り値F、焦点距離f、および被写体距離dに応じて変動するものであり、さらには、撮像中心からの像高hに応じても変化するものである。さらには、色収差の存在もあるため、RGBの各データにおいても異なるものとなる。すなわち、点像拡がり関数Kは、これら5種類の変数により変動するものであり、レンズ鏡筒3に、点像拡がり関数Kをそのまま保存した場合、5種類の変数により変動する画像データを保存することとなり、レンズ鏡筒3のレンズメモリ32のメモリ容量を極めて大きいものとする必要が生じてしまう。さらには、このように、レンズ鏡筒3に点像拡がり関数Kをそのまま保存した場合、撮影画像の回復処理を行うために、レンズ鏡筒3に保存した点像拡がり関数Kを、撮影光学系の設定に応じてカメラ本体2に送信する構成とすると、レンズ鏡筒3とカメラ本体2との間の通信容量および通信時間が増大してしまうこととなる。
そのため、本実施形態では、次のような構成を採用するものである。すなわち、本実施形態では、点像拡がり関数Kそのものではなく、点像拡がり関数Kを求めるために用いられるPSF種データDPSFを、レンズメモリ32に記憶させる。そして、このPSF種データDPSFを用いて、撮影光学系の設定値(絞り値F、焦点距離f、被写体距離d)および撮像素子21の画像サイズに対応する最大像高hmaxに基づいて、現在の撮影光学系に対応する、対応PSF種データDPSF_curを演算し、これをカメラ本体2に送信する。そして、カメラ本体2により、対応PSF種データDPSF_curを用いて、近似点像拡がり関数K_approxを演算し、演算した近似点像拡がり関数K_approxを用いて、上記式(1)の関係を用いて、撮影画像の回復を行うものである。
本実施形態において、レンズメモリ32に記憶させるPSF種データDPSFとしては、特に限定されないが、たとえば、以下に説明するように、点像拡がり関数Kを直交関数に展開した場合の、各直交関数の係数とすることができる。
具体的には、直交基底関数φi(i=1,2,・・・,n)により、点像拡がり関数Kを展開すると、たとえば、下記式(2)で表される関係を得ることができる。なお、下記式(2)において、φi(i=1,2,・・・,n)は直交関数であるため、相互の関数は線形独立である。
K=a1・φ1+a2・φ2+・・・+an・φn (2)
ここで、上記式(2)において、ai(i=1,2,・・・,n)は、各次数の基底関数に対応する係数である。また、上記式(2)において、nとしては、n項のみで十分に点像拡がり関数Kを近似できるような値に設定すればよい。
本実施形態で用いる直交関数としては、特に限定されず、公知の直交関数を用いることができるが、たとえば、基底関数として、ウォルシュ・アダマール変換を用いたアダマール基底を用いる方法や、離散コサイン変換を用いる方法などが挙げられる。
そして、本実施形態では、レンズ鏡筒3では、撮影光学系に応じた基底関数係数ai(i=1,2,・・・,n)を、記憶あるいは演算するような構成とし、撮影光学系に応じた基底関数係数ai(i=1,2,・・・,n)を、レンズ鏡筒3からカメラ本体2に送信し、カメラ本体2により、基底関数係数ai(i=1,2,・・・,n)と、直交基底関数φi(i=1,2,・・・,n)とを用いた演算を行うことにより、撮影画像の回復を行うものである。
ここで、上述したように、点像拡がり関数Kは、絞り値F、焦点距離f、および被写体距離dに加えて、撮像中心からの像高h、および波長λの5種類の変数により変動するものである。そのため、これらの5種類の変数のそれぞれに対応した基底関数係数ai(i=1,2,・・・,n)をレンズメモリ32に記憶させることが望ましい。しかしその一方で、このような5種類の変数のそれぞれに対応した全ての基底関数係数aiを、レンズメモリ32に保存すると、データ量が比較的大きくなってしまう。そのため、本実施形態では、基底関数係数aiを算出するための近似式をさらに設定し、このような近似式を用いて、基底関数係数aiを算出する方式を採用することが好ましい。
たとえば、絞り値F、焦点距離f、および被写体距離dの3種類の変数による基底関数係数aiの値の変化を下記式(3)に示す2次式で近似することができ、下記式(3)に従って、基底関数係数近似値ai(F,f,d)を求めることができる。
ai(F,f,d)=bi,1・F2+bi,2・f2+bi,3・d2+bi,4・F・f+bi,5・f・d+bi,6・d・F+bi,7・F+bi,8・f+bi,9・d・bi,10 (3)
ここで、上記式(3)におけるbi,j(j=1,2,・・・,10)は、各項における係数であり、基底関数係数ai(i=1,2,・・・,n)と、絞り値F、焦点距離f、および被写体距離dとの関係から、最小二乗法などを用いて予め求めることができる。なお、本実施形態では、上記式(3)に示すように、基底関数係数aiの値の変化を2次式で近似した例を示したが、さらに次数の高い式を用いてもよいし、あるいは、誤差が問題にならない場合であれば、上記式(3)において1次項を用いないような構成としてもよいし、さらには、1次式で近似してもよい。
このように、基底関数係数aiは、上記式(3)に示すように、絞り値F、焦点距離f、および被写体距離dを用いた近似式で表すことができる。そのため、本実施形態においては、レンズメモリ32には、PSF種データDPSFとして、絞り値F、焦点距離f、被写体距離d、撮像中心からの像高h、および波長λの5種類の変数に応じた基底関数係数ai自体を、そのまま保存するような構成としてももちろんよいが、上記式(3)に示す近似式に用いられる近似用係数bi,jを保存するような構成とすることが好ましい。
特に、近似用係数bi,jは、絞り値F、焦点距離f、被写体距離d、撮像中心からの像高h、および波長λの5種類の変数のうち、絞り値F、焦点距離f、および被写体距離dの3種類の変数に対応するものである。そのため、レンズメモリ32には、近似用係数bi,jとしては、残りの2種類の変数、すなわち、撮像中心からの像高h、および波長λに応じた数のみを保存すればいいこととなり、これにより、レンズメモリ32に保存するためのデータ量を適切に削減することができる。すなわち、基底関数係数ai自体を、そのまま保存する場合には、5種類の変数に対応する比較的多くのデータを保存する必要がある一方で、レンズメモリ32には、PSF種データDPSFとして近似用係数bi,jを保存するような構成とし、近似用係数bi,jを用いて、基底関数係数近似値ai(F,f,d)を演算するような構成とすることで、像高h、および波長λの2種類の変数に対応するデータのみを保存するような構成とすることができる。
なお、近似用係数b
i,jは、基底関数係数a
i(i=1,2,・・・,n)に対応する係数であるため、実際には、下記式(4)で表されるように、i=1,2,・・・,n、j=1,2,・・・,10に対応する、マトリックスからなる近似用係数群B
λ,hとして、像高hおよび波長λごとに、レンズメモリ32に保存されることとなる。すなわち、単一の像高hの条件および波長λの条件に対して、上記式(3)で示される関係を、上記式(2)の項数であるn項に対応する数(すなわち、i×j=n×10個)だけ、備えている必要があり、このようなデータを、近似用係数群B
λ,hとする(下記式(4)参照)。
また、本実施形態において、近似用係数群Bλ,hとしては、像高hおよび波長λに応じた数をレンズメモリ32に保存するものであり、その保存数等は特に限定されない。一例を挙げると、像高hに関しては、撮像素子21の撮像サイズをフルサイズとした場合の像高を100%とし、これを5等分とし、各像高h=0%、20%、40%、60%、80%、100%に対応するものとすることができる。また、波長λに関しては、たとえば、C線(赤、656nm)、d線(黄、587nm)、e線(緑、546nm)、F線(青、486nm)、g線(青、435nm)、h線(紫、404nm)の6波長に対応するものとすることができる。そして、この場合には、近似用係数群Bi,jとしては、図3に示すようなデータを保存するような態様とすることができる。すなわち、本実施形態では、PSF種データDPSFとして、図3に示すような、近似用係数群Bi,jを保存するような態様とすることができる。なお、図3に示す態様は、近似用係数群Bi,jの保存態様の一例であり、このような態様に何ら限定されるものではない。
また、基底関数係数a
i(i=1,2,・・・,n)と、近似用係数群B
i,jと、絞り値F、焦点距離f、および被写体距離dとの関係をまとめると、下記式(5)に示す関係となる。なお、下記式(5)において、A
λ,hは、所定の像高hおよび所定の波長λに対応する基底関数係数近似値a
i(F,f,d)からなる基底関数係数近似値群である。
なお、上記においては、上記式(3)に示すように、絞り値F、焦点距離f、および被写体距離dに応じた近似式を用いる方法を例示したが、このような方法に特に限定されず、上述した5種類の変数のうち、他の変数に応じた近似式を用いる方法を採用してもよいし、さらには、上述した5種類の全ての変数に応じた近似式を用いる方法を採用してもよい。
そして、本実施形態では、以下に説明するように、レンズ制御部31により、このようなレンズメモリ32に保存されたPSF種データDPSFとしての近似用係数群Bλ,hを用いることで、現在の撮影光学系に対応する、対応PSF種データDPSF_curの生成する処理が実行される。
具体的には、レンズ制御部31は、カメラ本体2のカメラ制御部22に備えられたPSF生成部223から、対応PSF種データ要求信号を、絞り値F、および撮像素子21の画像サイズに対応する最大像高hmaxの情報とともに受信した場合に、これらの情報と、レンズ情報(焦点距離f、被写体距離d)とを用いて、対応PSF種データDPSF_curの生成を行う。
すなわち、レンズ制御部31は、ズームレンズ用エンコーダ33により検出されたズームレンズ352の位置から撮影光学系の焦点距離fを、また、フォーカスレンズ用エンコーダ34により検出されたフォーカスレンズ353の位置から被写体距離dをそれぞれ求める。そして、カメラメモリ32からPSF種データDPSFとしての近似用係数群Bλ,h(図3参照)を読み出し、上記式(3)、上記式(5)に従って、各像高hおよび各波長λに対応する基底関数係数近似値ai(F,f,d)(i=1,2,・・・,n)からなる複数の基底関数係数近似値群Aλ,hを算出する。そして、得られた各像高hおよび各波長λに対応する複数の基底関数係数近似値群Aλ,hを、対応PSF種データDPSF_curとして、レンズ送受信部36およびカメラ送受信部27を介して、カメラ本体2の第1バッファメモリ24に送信する。
なお、この際において、レンズ制御部31は、たとえば、撮像素子21の画像サイズに対応する最大像高hmaxの情報として、hmax=100%であるとの情報を、カメラ本体2から受信している場合には、図3に示す像高h=0%〜100%に対応する近似用係数群Bλ,hに基づいて、6×6=36個の基底関数係数近似値群Aλ,hの算出を行い、これを対応PSF種データDPSF_curとしてカメラ本体2の第1バッファメモリ24に送信する。一方、撮像素子21の画像サイズに対応する最大像高hmaxの情報として、たとえば、hmax=40%であるとの情報を受信している場合、すなわち、撮像素子21の中心部のみを切り出した(トリミングした)小さい画像サイズとする場合には、図3に示す像高h=0%〜40%に対応する近似用係数群Bλ,hに基づいて、6×3=18個の基底関数係近似値数群Aλ,hの算出を行い、これを対応PSF種データDPSF_curとしてカメラ本体2の第1バッファメモリ24に送信する。すなわち、本実施形態においては、カメラ本体2から像高hの情報を取得することにより、撮像素子21の使用サイズに応じて、対応PSF種データDPSF_curとしての基底関数係数近似値群Aλ,hの算出および送信を行うことができるため、撮像素子21の使用サイズが小さい場合には、演算負荷およびデータ通信負荷の低減を図ることができる。
そして、本実施形態では、このようにしてレンズ制御部31により演算された対応PSF種データDPSF_curとしての基底関数係数近似値群Aλ,hを用いて、カメラ本体2のカメラ制御部22に備えられたPSF生成部223により、近似点像拡がり関数K_approxを演算する処理が実行される。
具体的には、まず、PSF生成部223は、レンズ制御部31から送信された対応PSF種データDPSF_curとしての基底関数係数近似値群Aλ,hを、第1バッファメモリ24から取得するとともに、カメラメモリ23から直交基底関数φi(i=1,2,・・・,n)を読み出し、これらに基づいて、下記式(6)にしたがって、単波長の近似点像拡がり関数K_approx_Lを演算する。ここで、カメラメモリ23に記憶されている直交基底関数φi(i=1,2,・・・,n)は、撮像素子21の前面に設けられているローパスフィルタ(不図示)の特性をも考慮したものであることが望ましい。
K_approx_L=a1(F,f,d)・φ1+a2(F,f,d)・φ2+・・・+an(F,f,d)・φn (6)
なお、PSF生成部223による、上記単波長の近似点像拡がり関数K_approx_Lの演算は、波長λごと、および、像高hごとに実行される。すなわち、たとえば、対応PSF種データDPSF_curとしての基底関数係数近似値群Aλ,hとして、図3に示す6×6=36個のデータを取得している場合には、図3に示す各波長λおよび各像高hに対応する36個の単波長の近似点像拡がり関数K_approx_Lを演算する。
ここで、上記式(6)に従って演算される、単波長の近似点像拡がり関数K_approx_Lは、各波長λ、すなわち、C線、d線、e線、F線、g線、h線の6波長それぞれ対応するものである。ここで、点像拡がり関数の波長λに関する特性は、主として色収差に基づくものであり、そのため、レンズ鏡筒3に備えられた撮影光学系に依存するものであるといえる。その一方で、点像拡がり関数の波長λに関する特性は、撮影光学系以外にも、撮像素子21上に設けられたカラーフィルタの分光透過特性の影響をも受けるものであり、そのため、レンズ鏡筒3に備えられた撮影光学系による影響に加えて、撮像素子21上に設けられたカラーフィルタの分光透過特性をも考慮する必要がある。
したがって、これらの2点を考慮した上で、撮像素子21上に設けられたカラーフィルタに対応した近似点像拡がり関数を演算する必要がある。すなわち、C線、d線、e線、F線、g線、h線の6波長それぞれ対応する、単波長の近似点像拡がり関数K_approx_Lから、撮像素子21上に設けられたカラーフィルタに対応した近似点像拡がり関数を演算する必要がある。以下においては、撮像素子21が、RGBの3色からなるカラーフィルタを有する場合における、R用近似点像拡がり関数K_approx_R、G用近似点像拡がり関数K_approx_G、および、B用近似点像拡がり関数K_approx_Bを算出する場合について説明する。なお、図4に、撮像素子21の備えるカラーフィルタの分光透過特性の一例を示す。
具体的には、PSF生成部223は、カメラメモリ23に保存されているカラーフィルタの分光透過特性の情報を取得する。なお、分光透過特性の情報としては、各波長(すなわち、C線、d線、e線、F線、g線、h線)に対応する、単波長の近似点像拡がり関数K_approx_L(L=1,2,・・・,6)について、R、G、Bのカラーチャンネルごとに重みWp_r、Wp_g、Wp_b(p=1,2,・・・,6)を予め算出しておき、これを分光透過特性の情報とすることができる。なお、重みWp_r、Wp_g、Wp_bは、通常、各像高hごとに設定される。
そして、下記式(7)〜(9)に示すように、R用近似点像拡がり関数K_approx_R、G用近似点像拡がり関数K_approx_G、および、B用近似点像拡がり関数K_approx_Bを算出することができる。なお、下記式(7)〜(9)の演算は、各像高hごとに実行されることとなる。すなわち、最大像高hmax=100%である場合、像高点数が6点であるため、6点のそれぞれについて、R,G,Bに対して、近似点像拡がり関数を算出するため、18個の近似点像拡がり関数を演算することとなる。
K_approx_R=W1_r・K_approx_1+W2_r・K_approx_2+・・・+W6_r・K_approx_6 (7)
K_approx_G=W1_g・K_approx_1+W2_g・K_approx_2+・・・+W6_g・K_approx_6 (8)
K_approx_B=W1_b・K_approx_1+W2_b・K_approx_2+・・・+W6_b・K_approx_6 (9)
そして、PSF生成部223は、このようにして演算された、各像高hごとに算出したR用近似点像拡がり関数K_approx_R、G用近似点像拡がり関数K_approx_G、および、B用近似点像拡がり関数K_approx_Bの情報を、画像回復に用いるための近似点像拡がり関数K_approx(すなわち、近似点像拡がり関数K_approxは、これら各像高hごとに算出されたR,G,B用の各近似点像拡がり関数からなる。)として、画像処理部25の画像分割部251、および画像回復部252に送信する。
次いで、このようにして演算された近似点像拡がり関数K_approxを用いて、画像処理部25により、撮影画像の回復が行われる。ここで、図2に示すように、画像処理部25は、画像分割部251、画像回復部252、および画像合成部253を備えている。
まず、画像分割部251は、近似点像拡がり関数K_approxを用いた撮影画像の回復を行うために、撮像画像をグリット状(格子状)に分割することで、分割画像を生成させる。具体的には、画像分割部251は、撮像素子21で撮像され、AFE回路211、A/D変換器212を介して、送信されたデジタル画像データに対して、ノイズ除去、ホワイトバランスの調整、デモザイク処理などを行った後、撮像画像をグリット状(格子状)に分割し、分割画像を生成させる。なお、撮影画像の分割方法としては特に限定されないが、通常は、撮像素子21上の像高hに応じて、近似点像拡がり関数K_approxも変動することとなるため、像高hに応じるような態様で、撮像画像を分割することが望ましい。また、この際における撮影画像の分割数は特に限定されないが、たとえば、予め定められた所定数としてもよいし、あるいは、得られた撮影画像ごとに、画像解析を行い、画像解析の結果に基づいて分割数を設定するような構成としてもよいし、さらには、ユーザにより設定可能な構成としてもよい。なお、本実施形態では、後述するように、分割画像ごとに、近似点像拡がり関数K_approxを用いた画像回復を行うため、分割数が多いほど撮影画像の回復の精度が向上することとなる。その一方で、分割数が多いほど撮影画像の回復に要する処理の負荷が高くなることとなるため、これらの関係を勘案して、分割数を設定することが望ましい。画像分割部251は、得られた分割画像を、第2バッファメモリ261に送信する。
一例を挙げると、PSF生成部223により演算された近似点像拡がり関数K_approxについて、異なる像高h間の関数同士の比較を行い(たとえば、同じ次数係数のai同士の比較を行い)、これらの変化が比較的大きい場合には、画像内における点像拡がり関数の変動も比較的大きいものと判断できるため(たとえば、画像の中心部と、周辺部とで点像拡がり関数の変動が大きいなど)、撮影画像の回復精度を十分なものとするために、分割数を比較的多いものとすることができる。これとは逆に、異なる像高h間の関数同士の比較を行った結果、これらの変化が比較的小さい場合には、画像内における点像拡がり関数の変動も比較的小さいものと判断できるため(たとえば、画像の中心部と、周辺部とで点像拡がり関数の変動が小さいなど)、この場合には、分割数を比較的少ないものとすることができる。
次いで、画像回復部252は、画像分割部251により生成された分割画像を、第2バッファメモリ261から読み出し、各分割画像について、PSF生成部223により演算された近似点像拡がり関数K_approx(すなわち、各像高hごとに算出したR用近似点像拡がり関数K_approx_R、G用近似点像拡がり関数K_approx_G、および、B用近似点像拡がり関数K_approx_B)を用いて、回復する処理を実行する。なお、分割画像を回復する処理は、分割画像の像高hに応じた近似点像拡がり関数K_approxを用いて実行される。また、本実施形態では、図3に示すように、各像高h=0%、20%、40%、60%、80%、100%に対応する近似点像拡がり関数K_approxを用いるものであるが、たとえば、像高h=10%の領域などの中間領域については、像高h=0%の近似点像拡がり関数K_approx、および像高h=20%の近似点像拡がり関数K_approxに基づいて、補間関数を求め、得られた補間関数を用いて、分割画像の回復を行うような構成としてもよい。
また、近似点像拡がり関数K_approxを用いて、分割画像の回復を行う方法としては、特に限定されず、公知の方法を制限なく用いることができ、たとえば、上記式(1)の関係から、フーリエ変換および逆フーリエ変換や、ウィーナーフィルターなどを用いた手法により、理想的な劣化の無い物体像Lを求める方法などが挙げられる。画像回復部252は、得られた回復後の分割画像を、第2バッファメモリ261に送信する。
そして、画像合成部253は、画像回復部252により回復された回復後の分割画像を、第2バッファメモリ261から読み出し、従来公知の方法で、回復後の分割画像を縫合(stitching)する処理を行い、これにより、回復後の撮影画像を生成する。その後、画像合成部253は、回復後の撮影画像に対し、γ変換やコントラスト調整、エッジ強調などの各種処理を施した後、回復後の撮影画像は、第2バッファメモリ261を経由して、画像記憶部23に保存される。また、この際において、回復後の撮影画像のユーザによる確認のために、得られた回復画像を、画像表示部262に表示する。
以上のようにして、本実施形態では、点像拡がり関数(PSF:Point Spread Function)を用いたフィルタ処理による、撮影画像の回復が実行される。
次いで、カメラ本体2とレンズ鏡筒3との間のデータの通信方法について説明する。
カメラ本体2には、レンズ鏡筒3が着脱可能に取り付けられるボディ側マウント部201が設けられている。また、図1に示すように、ボディ側マウント部201の近傍(ボディ側マウント部201の内面側)の位置には、ボディ側マウント部201の内面側に突出する接続部202が設けられている。この接続部202には複数の電気接点が設けられている。
一方、レンズ鏡筒3は、カメラ本体2に着脱可能な交換レンズであり、レンズ鏡筒3には、カメラ本体2に着脱可能に取り付けられるレンズ側マウント部301が設けられている。また、図1に示すように、レンズ側マウント部301の近傍(レンズ側マウント部301の内面側)の位置には、レンズ側マウント部301の内面側に突出する接続部302が設けられている。この接続部302には複数の電気接点が設けられている。
そして、カメラ本体2にレンズ鏡筒3が装着されると、ボディ側マウント部201に設けられた接続部202の電気接点と、レンズ側マウント部301に設けられた接続部302の電気接点とが、電気的かつ物理的に接続される。これにより、接続部202,302を介して、カメラ本体2からレンズ鏡筒3への電力供給や、カメラ本体2とレンズ鏡筒3とのデータ通信が可能となる。
図5は接続部202,302の詳細を示す模式図である。なお、図5において接続部202がボディ側マウント部201の右側に配置されているのは、実際のマウント構造に倣ったものである。すなわち、本実施形態の接続部202は、ボディ側マウント部201のマウント面よりも奥まった場所(図5においてボディ側マウント部201よりも右側の場所)に配置されている。同様に、接続部302がレンズ側マウント部301の右側に配置されているのは、本実施形態の接続部302がレンズ側マウント部301のマウント面よりも突出した場所に配置されていることを表している。接続部202と接続部302とがこのように配置されることで、ボディ側マウント部201のマウント面とレンズ側マウント部301のマウント面とを接触させて、カメラ本体2とレンズ鏡筒3とをマウント結合させた場合に、接続部202と接続部302とが接続され、これにより、両方の接続部202,302に設けられている電気接点同士が接続する。
図5に示すように、接続部202にはBP1〜BP12の12個の電気接点が存在する。またレンズ鏡筒3側の接続部302には、カメラ本体2側の12個の電気接点にそれぞれ対応するLP1〜LP12の12個の電気接点が存在する。
電気接点BP1および電気接点BP2は、カメラ本体2内の第1電源回路281に接続されている。第1電源回路281は、電気接点BP1および電気接点LP1を介して、レンズ鏡筒3内の各部(ただし、レンズ駆動モータなどの消費電力が比較的大きい回路を除く)に動作電圧を供給する。電気接点BP1および電気接点LP1を介して、第1電源回路281により供給される電圧値は、特に限定されず、たとえば3〜4Vの電圧値(標準的には、この電圧幅の中間にある3.5V近傍の電圧値)とすることができる。この場合、カメラ本体2側からレンズ鏡筒3側に供給される電流値は、電源オン状態において、約数10mA〜数100mAの範囲内の電流値となる。また、電気接点BP2および電気接点LP2は、電気接点BP1および電気接点LP1を介して供給される上記動作電圧に対応する接地端子である。
電気接点BP3〜BP6は、カメラ側第1通信部291に接続されており、これら電気接点BP3〜BP6に対応して、電気接点LP3〜LP6が、レンズ側第1通信部381に接続されている。そして、カメラ側第1通信部291とレンズ側第1通信部381とは、これらの電気接点を用いて互いに信号の送受信を行う。なお、カメラ側第1通信部291とレンズ側第1通信部381とが行う通信の内容については、後に詳述する。
電気接点BP7〜BP10は、カメラ側第2通信部292に接続されており、これら電気接点BP7〜BP10に対応して、電気接点LP7〜LP10が、レンズ側第2通信部382に接続されている。そして、カメラ側第2通信部292とレンズ側第2通信部382とは、これらの電気接点を用いて互いに信号の送受信を行う。なお、カメラ側第2通信部292とレンズ側第2通信部382とが行う通信の内容については、後に詳述する。
電気接点BP11および電気接点BP12は、カメラ本体2内の第2電源回路282に接続されている。第2電源回路240は、電気接点BP11および電気接点LP11を介して、レンズ駆動モータなどの消費電力が比較的大きい回路に動作電圧を供給する。第2電源回路282により供給される電圧値は、特に限定されないが、第2電源回路282により供給される電圧値の最大値は、第1電源回路281により供給される電圧値の最大値の数倍程度とすることができる。また、この場合、第2電源回路282からレンズ鏡筒3側に供給される電流値は、電源オン状態において、約数10mA〜数Aの範囲内の電流値となる。また、電気接点BP12および電気接点LP12は、電気接点BP11および電気接点LP11を介して供給される上記動作電圧に対応する接地端子である。
なお、図5に示すカメラ本体2側の第1通信部291および第2通信部292は、図2に示すカメラ送受信部27を構成し、図5に示すレンズ鏡筒3側の第1通信部381および第2通信部382は、図1に示すレンズ送受信部36を構成する。
次に、カメラ側第1通信部291とレンズ側第1通信部381との通信(以下、コマンドデータ通信という)について説明する。レンズ制御部31は、電気接点BP3およびLP3から構成される信号線CLKと、電気接点BP4およびLP4から構成される信号線BDATと、電気接点BP5およびLP5から構成される信号線LDATと、電気接点BP6およびLP6から構成される信号線RDYとを介して、カメラ側第1通信部291からレンズ側第1通信部381への制御データの送信と、レンズ側第1通信部381からカメラ側第1通信部291への応答データの送信とを、並行して、所定の周期(たとえば、16ミリ秒間隔)で行う、コマンドデータ通信を行う。
図6は、コマンドデータ通信の一例を示すタイミングチャートである。カメラ制御部22およびカメラ側第1通信部291は、コマンドデータ通信の開始時(T1)に、まず、信号線RDYの信号レベルを確認する。ここで、信号線RDYの信号レベルはレンズ側第1通信部381の通信可否を表しており、通信不可の場合には、レンズ制御部31およびレンズ側第1通信部381により、H(High)レベルの信号が出力される。カメラ側第1通信部291は、信号線RDYがHレベルである場合には、レンズ鏡筒3との通信を行わず、または、通信中である場合にも、次の処理を実行しない。
一方、信号線RDYがL(LOW)レベルである場合、カメラ制御部22およびカメラ側第1通信部291は、信号線CLKを用いて、クロック信号401をレンズ側第1通信部291に送信する。また、カメラ制御部22およびカメラ側第1通信部291は、このクロック信号401に同期して、信号線BDATを用いて、制御データであるカメラ側コマンドパケット信号402をレンズ側第1通信部291に送信する。また、クロック信号401が出力されると、レンズ制御部31およびレンズ側第1通信部381は、このクロック信号401に同期して、信号線LDATを用いて、応答データであるレンズ側コマンドパケット信号403を送信する。
レンズ制御部31およびレンズ側第1通信部291は、レンズ側コマンドパケット信号403の送信完了に応じて、信号線RDYの信号レベルをLレベルからHレベルに変更する(T2)。そして、レンズ制御部31は、時刻T2までに受信したボディ側コマンドパケット信号402の内容に応じて、第1制御処理404を開始する。
たとえば、受信したボディ側コマンドパケット信号402が、レンズ鏡筒3側の特定のデータを要求する内容であった場合、レンズ制御部31は、第1制御処理404として、コマンドパケット信号402の内容を解析するとともに、要求された特定データを生成する処理を実行する。さらに、レンズ制御部31は、第1制御処理404として、コマンドパケット信号402に含まれているチェックサムデータを用いて、コマンドパケット信号402の通信にエラーがないか否かをデータバイト数から簡易的にチェックする通信エラーチェック処理をも実行する。この第1制御処理404で生成された特定データの信号は、レンズ側データパケット信号407としてカメラ本体2側に出力される(T3)。なお、この場合においてコマンドパケット信号402の後でカメラ本体2側から出力されるカメラ側データパケット信号406は、レンズ側にとっては特に意味をなさないダミーデータ (チェックサムデータは含む)となっている。この場合には、レンズ制御部31は、第2制御処理408として、カメラ側データパケット信号406に含まれるチェックサムデータを用いた、上述の如き通信エラーチェック処理を実行する(T4)。
また、たとえば、カメラ側コマンドパケット信号402が、フォーカスレンズ353の駆動指示であり、カメラ側データパケット信号406がフォーカスレンズ353の駆動速度および駆動量であった場合、レンズ制御部31は、第1制御処理404として、コマンドパケット信号402の内容を解析するとともに、その内容を理解したことを表す確認信号を生成する(T2)。この第1制御処理404で生成された確認信号は、レンズ側データパケット信号407としてカメラ本体2に出力される(T3)。またレンズ制御部31は、第2制御処理408として、カメラ側データパケット信号406の内容の解析を実行するとともに、カメラ側データパケット信号406に含まれるチェックサムデータを用いて通信エラーチェック処理を実行する(T4)。そして、第2制御処理408の完了後、レンズ制御部31は、受信したカメラ側コマンドパケット信号406、すなわち、フォーカスレンズ353の駆動速度および駆動量に基づいて、フォーカスレンズ駆動モータを駆動させることで、フォーカスレンズ353を、受信した駆動速度で、受信した駆動量だけ駆動させる(T5)。
また、レンズ制御部31は、第2制御処理408が完了すると、レンズ側第1通信部291に第2制御処理408の完了を通知する。これにより、レンズ制御部31は、信号線RDYにLレベルの信号を出力する(T5)。
上述した時刻T1〜T5の間に行われた通信が、 1回のコマンドデータ通信である。上述のように、1回のコマンドデータ通信では、カメラ制御部22およびカメラ側第1通信部291により、カメラ側コマンドパケット信号402およびカメラ側テータパケット信号406がそれぞれ1つずつ送信される。このように、本実施形態では、カメラ本体2からレンズ鏡筒3に送信される制御データは、処理の都合上2つに分割されて送信されているが、カメラ側コマンドパケット信号402およびカメラ側データパケット信号406は2つ合わせて1つの制御データを構成するものである。
同様に、1回のコマンドデータ通信では、レンズ制御部31およびレンズ側第1通信部381によりレンズ側コマンドパケット信号403およびレンズ側データパケット信号407がそれぞれ1つずつ送信される。このように、レンズ鏡筒3からカメラ本体2に送信される応答データも2つに分割されているが、レンズ側コマンドパケット信号403とレンズ側データパケット信号407とも2つ合わせて1つの応答データを構成する。
次に、カメラ側第2通信部292とレンズ側第2通信部382との通信(以下、ホットライン通信という)について説明する。図5に戻り、レンズ制御部31は、電気接点BP7およびLP7から構成される信号線HREQ、電気接点BP8およびLP8から構成される信号線HANS、電気接点BP9およびLP9から構成される信号線HCLK、電気接点BP10およびLP10から構成される信号線HDATを介して、コマンドデータ通信よりも短い周期(たとえば1ミリ秒間隔)で通信を行うホットライン通信を行う。
たとえば、本実施形態では、ホットライン通信により、レンズ鏡筒3のレンズ情報が、レンズ鏡筒3からカメラ本体2に送信される。なお、ホットライン通信により送信されるレンズ情報には、ズームレンズ352のレンズ位置、フォーカスレンズ353のレンズ位置、および、対応PSF種データDPSF_curが含まれる。
ここで、図7は、ホットライン通信の一例を示すタイミングチャートである。図7(a)は、ホットライン通信が所定周期Tn毎に繰り返し実行されている様子を示す図である。また、繰り返し実行されるホットライン通信のうち、ある1回の通信の期間Txを拡大した様子を図7(b)に示す。以下、図7(b)のタイミングチャートに基づいて、フォーカスレンズ353のレンズ位置をホットライン通信で通信する場面を説明する。
カメラ制御部22およびカメラ側第2通信部292は、まず、ホットライン通信による通信を開始するために、信号線HREQにLレベルの信号を出力する(T6)。そして、レンズ側第2通信部382は、この信号が電気接点LP7に入力されたことを、レンズ制御部31に通知する。レンズ制御部31は、この通知に応じて、ズームレンズ352のレンズ位置、フォーカスレンズ353のレンズ位置、対応PSF種データDPSF_curを生成する生成処理501の実行を開始する。
レンズ制御部31が生成処理501を実行完了すると、レンズ制御部31およびレンズ側第2通信部382は信号線HANSにLレベルの信号を出力する(T7)。そして、カメラ制御部22およびカメラ側第2通信部292は、この信号が電気接点BP8に入力されると、電気接点BP9から信号線HCLKに、クロック信号502を出力する。
レンズ制御部31およびレンズ側第2通信部382は、このクロック信号502に同期して、電気接点LP10から信号線HDATに、ズームレンズ352のレンズ位置、フォーカスレンズ353のレンズ位置、対応PSF種データDPSF_curを表すレンズ位置データ信号503を出力する。そして、レンズ情報データ信号503の送信が完了すると、レンズ制御部31およびレンズ側第2通信部382は電気接点LP8から信号線HANSにHレベルの信号を出力する(T8)。そして、カメラ側第2通信部292は、この信号が電気接点BP8に入力されると、電気接点LP7から信号線HREQに、Hレベルの信号を出力する(T9)。
なお、コマンドデータ通信とホットライン通信は、同時に、あるいは、並行して実行することが可能である。
次いで、図8を参照して、本実施形態に係るカメラ1の動作例を説明する。図8は、本実施形態に係る撮影画像の回復処理を示すフローチャートである。なお、以下の動作は、カメラ1の電源がオンされることにより開始される。
まず、ステップS1においては、カメラ本体2のPSF生成部223により、レンズ鏡筒3のレンズ制御部31に対して、近似点像拡がり関数K_approxを演算に必要となる、対応PSF種データDPSF_curを取得するために、レンズ制御部31に対して、対応PSF種データ要求信号を、絞り値F、および撮像素子21の画像サイズに対応する最大像高hmaxの情報とともに送信する処理が行われる。
ステップS2では、レンズ鏡筒3のレンズ制御部31は、PSF生成部223から対応PSF種データ要求信号、絞り値F、および撮像素子21の画像サイズに対応する最大像高hmaxの情報を受信すると、対応PSF種データDPSF_curを演算する処理を開始する。具体的には、受信した絞り値F、および最大像高hmaxの情報に加えて、撮影光学系の焦点距離f、および被写体距離dの情報に基づいて、レンズメモリ32に備えられたPSF種データDPSFから、現在の撮影光学系に対応する、対応PSF種データDPSF_curを演算する処理を開始する。
ステップS3では、レンズ制御部31は、演算された対応PSF種データDPSF_curに基づいて、PSF種データDPSF_curのデータ量を算出し、算出したPSF種データDPSF_curのデータ量をカメラ本体2のカメラ制御部22に備えられたPSF生成部223に送信する。上述したように、レンズ制御部31により演算される対応PSF種データDPSF_curのデータ量は、撮像素子21の画像サイズに対応する最大像高hmaxによって変動するものである(図3参照)。そのため、本実施形態では、カメラ制御部31は、対応PSF種データDPSF_curの送信を開始する前に、対応PSF種データDPSF_curのデータ量を演算し、これをPSF生成部223に送信する。
ステップS4では、カメラ本体2のPSF生成部223は、レンズ制御部31から送信された対応PSF種データDPSF_curのデータ量の情報を受信すると、対応PSF種データDPSF_curのデータ量と、通信可能データ量とを比較し、対応PSF種データDPSF_curのデータ量が、通信可能データ量以下であるかの判断を行う。対応PSF種データDPSF_curのデータ量が、通信可能データ量以下である場合には、ステップS5に進む。一方、対応PSF種データDPSF_curのデータ量が、通信可能データ量を超えている場合には、ステップS8に進む。なお、通信可能データ量としては、特に限定されないが、たとえば、上述したホットライン通信において、対応PSF種データDPSF_curの通信のために割り当てることのできるデータ量とすることができる。
ステップS5では、PSF生成部223は、対応PSF種データDPSF_curのデータ量が、通信可能データ量以下であったため、レンズ制御部31に対して、一括方式にて対応PSF種データDPSF_curを送信するように要求するための信号を送信する。
ステップS6では、レンズ鏡筒3のレンズ制御部31は、カメラ本体2のPSF生成部223からの要求信号に基づいて、ホットライン通信により、一括方式にて対応PSF種データDPSF_curを、カメラ本体2の第1バッファメモリ24に送信する。そして、ステップS7に進み、カメラ本体2から、対応PSF種データDPSF_curの要求を終了する旨の信号(たとえば、電源OFFの信号)を受信するまで、ホットライン通信により所定の周期(たとえば1ミリ秒間隔)にて、一括方式にて、演算した対応PSF種データDPSF_curを送信する。
なお、図9に、一括方式にて、演算した対応PSF種データDPSF_curを送信する場合における、タイムチャートの一例を示す。図9に示すように、レンズ制御部31は、カメラ本体2の第1バッファメモリ24に、所定の周期Tにて、一括方式にて、他のレンズ情報(たとえば、ズームレンズ352のレンズ位置、フォーカスレンズ353のレンズ位置の情報)とともに、対応PSF種データDPSF_curを逐次送信する。そして、たとえば、図9に示すように、時間t5〜t7にかけて撮影画像の撮像が行われた場合には、カメラ本体2のPSF生成部223は、レンズ制御部31により送信された対応PSF種データDPSF_curに基づいて、上述した方法にしたがって、撮影画像の画像回復に用いるための近似点像拡がり関数K_approxを算出する処理を実行する。なお、図9に示す例においては、撮影画像の撮像は、時間t4におけるホットライン通信と、時間t5におけるホットライン通信との間で行われているため、近似点像拡がり関数K_approxを算出する際には、時間t4に送信された対応PSF種データDPSF_curを使用するような態様としてもよいし、時間t5に送信された対応PSF種データDPSF_curを使用するような態様としてもよい。
一方、ステップS4において、対応PSF種データDPSF_curのデータ量が、通信可能データ量を超えていると判断された場合には、ステップS8に進み、ステップS8では、カメラ本体2のPSF生成部223は、レンズ制御部31に、対応PSF種データDPSF_curを分割して送信させるために、対応PSF種データDPSF_curの分割数の算出を行う。分割数は、分割後のデータ量が通信可能データ量以下の値となるような値とすればよい。上述したように、対応PSF種データDPSF_curのデータ量は、最大像高hmaxによって異なり、そのため、最大像高hmaxが100%である場合などにおいては、対応PSF種データDPSF_curのデータ量が比較的大きくなってしまう場合がある。そのため、本実施形態では、このような場合には、レンズ制御部31から第1バッファメモリ24に、対応PSF種データDPSF_curを送信する際には、データの分割を行い、分割PSFデータDPSF_divとしてデータ送信を行う。その一方で、最大像高hmaxが40%である場合など、対応PSF種データDPSF_curのデータ量が比較的小さく、対応PSF種データDPSF_curのデータ量が、通信可能データ量以下となる場合には、上述したように、一括にて、対応PSF種データDPSF_curの送信を行うものである。
ステップS9では、PSF生成部223は、レンズ制御部31に対して、分割方式にて対応PSF種データDPSF_curを送信するように要求するための信号を、ステップS8で演算した分割数の情報とともに送信する。
ステップS10では、レンズ鏡筒3のレンズ制御部31は、カメラ本体2のPSF生成部223からの要求信号に基づいて、PSF生成部223から送信された分割数の情報にしたがって、演算した対応PSF種データDPSF_curを分割する処理を行い、ホットライン通信により、演算した分割PSFデータDPSF_divを、カメラ本体2の第1バッファメモリ24に送信する。そして、ステップS11に進み、カメラ本体2から、対応PSF種データDPSF_curの要求を終了する旨の信号(たとえば、電源OFFの信号)を受信するまで、ホットライン通信により所定の周期(たとえば1ミリ秒間隔)にて、演算した分割PSFデータDPSF_divを、順次送信する。
なお、図10に、分割方式にて、演算した対応PSF種データDPSF_curを送信する場合における、タイムチャートを示す。図10においては、分割数が4である場合を例示して示している。図10に示すように、レンズ制御部31は、カメラ本体2の第1バッファメモリ24に、所定の周期Tにて、一つの対応PSF種データDPSF_curを分割することにより得られた第1〜第4の分割PSFデータD1〜D4を順次送信し(時間t1〜t4)、次いで、次のタイミングにおいて得られた別の対応PSF種データDPSF_curを分割することにより得られた第1〜第4の分割PSFデータD1〜D4を順次送信する(時間t6〜t10)。そして、このような処理を繰返し行うものである。ここにおいて、時間t1において送信される第1の分割PSFデータD1と、時間t6において送信される第1の分割PSFデータD1とは演算のタイミングが異なる以外は、その情報の性質は同じものであり、第2〜第4の分割PSFデータD2〜D4についても同様となっている。
なお、図10に示すように、分割方式にて、演算した対応PSF種データDPSF_curを送信する場合においては、上述したようにホットライン通信により、分割PSFデータDPSF_div(第1〜第4の分割PSFデータD1〜D4)を送信するものである。そして、ホットライン通信は、たとえば、1ミリ秒間隔で行われるため、このような短い間隔で、焦点距離fなどの撮影光学系の条件が変動することは考え難いため、分割方式にて、対応PSF種データDPSF_curを送信した場合でも良好に対応PSF種データDPSF_curを送信することができる。
そして、たとえば、図10に示すように、時間t5〜t7にかけて撮影画像の撮像が行われた場合には、カメラ本体2のPSF生成部223は、撮影画像の撮像タイミングに応じた第1〜第4の分割PSFデータD1〜D4を、第1バッファメモリ24から読み出す。そして、カメラ本体2のPSF生成部223は、読み出した第1〜第4の分割PSFデータD1〜D4に基づいて、一つの対応PSF種データDPSF_curを生成し、これを用いて、上述した方法にしたがって、撮影画像の画像回復に用いるための近似点像拡がり関数K_approxを算出する処理を実行する。なお、一つの対応PSF種データDPSF_curを生成するために用いる、第1〜第4の分割PSFデータD1〜D4としては、図10に示す第1の組み合わせ(時間t1〜t4におけるデータを用いる態様)の他、第2の組み合わせ(時間t2〜t6におけるデータを用いる態様)、第3の組み合わせ(時間t3〜t8におけるデータを用いる態様)、第4の組み合わせ(時間t4〜t9におけるデータを用いる態様)、第5の組み合わせ(時間t4〜t10におけるデータを用いる態様)のいずれを採用することもできる。特に、このように多数の組み合わせから選択することが可能であるため、仮にデータ送信エラー等が発生してしまい、一部のデータが欠落してしまった場合でも、適切に対応PSF種データDPSF_curを生成することができる。
そして、レンズ鏡筒3のレンズ制御部31は、カメラ本体2から、対応PSF種データDPSF_curの要求を終了する旨の信号を受信した場合には(ステップS7、S11=Yes)、対応PSF種データDPSF_curの演算および送信を終了し、本処理を終了する。
以上のように、本実施形態によれば、撮影画像の画像回復に用いる点像拡がり関数(PSF:Point Spread Function)に関する情報を、レンズ鏡筒3に備える構成とし、レンズ鏡筒3からカメラ本体2に、撮影光学系に応じた点像拡がり関数に関する情報を送信し、カメラ本体2にて、点像拡がり関数を用いた、撮影画像の画像回復処理を行うものである。ここで、上述したように、本実施形態のカメラ1のようにレンズ交換式のカメラの場合、点像拡がり関数としては、レンズ鏡筒3ごとに固有の値を有するものである。そのため、本実施形態によれば、点像拡がり関数に関する情報を、レンズ鏡筒3に備える構成とすることにより、本実施形態のカメラ1のようにレンズ交換式のカメラにおいて、適切、かつ良好に撮影画像の画像回復を行うことができるものである。
また、本実施形態によれば、レンズ鏡筒3に備えられているレンズメモリ32には、点像拡がり関数そのものではなく、点像拡がり関数(より詳細には、近似点像拡がり関数K_approx)を導出するために用いられるPSF種データDPSFを記憶させる構成とするため、レンズメモリ32の記憶容量を極端に増加させることなく、レンズ交換式のカメラにおいて、適切、かつ良好に撮影画像の画像回復を行うことが可能となる。
加えて、本実施形態によれば、レンズ鏡筒3からカメラ本体2に、撮影画像の画像回復に用いる点像拡がり関数に関する情報を送信する際には、点像拡がり関数そのものではなく、上述したPSF種データDPSFから求められる、現在の撮影光学系に対応する、対応PSF種データDPSF_curを送信するものであるため、データ通信量を極端に増大させることなく、レンズ交換式のカメラにおいて、適切、かつ良好に撮影画像の画像回復を行うことが可能となる。具体的には、1度の通信において送信する、撮影画像の画像回復に用いる点像拡がり関数に関する情報の送信容量を、好ましくは200〜4000バイト、より好ましくは200〜2000バイト、さらに好ましく500〜1000バイト程度、より具体的には1000バイト程度に抑えることができるものである。
なお、以上説明した実施形態は、本発明の理解を容易にするために記載されたものであって、本発明を限定するために記載されたものではない。したがって、上記の実施形態に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物をも含む趣旨である。また、上述した各実施形態は、適宜組み合わせて用いることもできる。
たとえば、上述した実施形態では、上記式(2)に示すような直交基底関数にて点像拡がり関数を近似し、点像拡がり関数に関する情報として、直交基底関数に関する情報を、レンズ鏡筒3からカメラ本体2に送信するような構成としたが、このような構成に特に限定されず、点像拡がり関数を近似できるような手法であれば何でもよい。
また、上述した実施形態では、レンズ鏡筒3のレンズ制御部31により、PSF種データDPSFから、撮影光学系の焦点距離f、被写体距離d、絞り値F、および撮像素子21の画像サイズに対応する最大像高hmaxの情報に基づいて、現在の撮影光学系に対応する、対応PSF種データDPSF_curを演算するような構成を例示したが、このような演算をカメラ本体2で行うような構成としてもよい。すなわち、レンズ鏡筒3から、PSF種データDPSF、撮影光学系の焦点距離f、被写体距離dの情報を、カメラ本体2のカメラ制御部22に送信し、カメラ制御部22により、現在の撮影光学系に対応する、対応PSF種データDPSF_curを演算するような構成としてもよい。
また、上述した実施形態においては、レンズメモリ32のメモリ容量、およびカメラ本体2とレンズ鏡筒3との間の通信容量によっては、点像拡がり関数に関する情報として、点像拡がり関数そのものをレンズメモリ32に記憶しておき、レンズ鏡筒3からカメラ本体2に、点像拡がり関数そのものを送信することとしてもよい。
さらに、上述した実施形態においては、レンズ鏡筒3のレンズ制御部31によって、カメラ本体2から受信した絞り値Fおよび最大像高hmaxに基づいて、上記式(3)、(5)に従って演算を行うことにより、現在の撮影光学系に対応する、対応PSF種データDPSF_curを求める方法を例示したが、このような方法に特に限定されない。たとえば、カメラ本体2から受信した絞り値Fおよび最大像高hmaxの少なくとも一方のみを用いて、演算により対応PSF種データDPSF_curを求める方法を採用してもよい。あるいは、絞り値Fおよび最大像高hmaxの少なくとも一方、あるいは両方に対応する、PSF種データDPSFの値を示すテーブルをレンズメモリ31に記憶させておき、絞り値Fおよび/または最大像高hmaxに応じたPSF種データDPSFの値をレンズメモリ31から読み出し、これを、現在の撮影光学系に対応する、対応PSF種データDPSF_curとして、カメラ本体2に送信するような構成としてもよい。