撮像装置、ぶれ修復方法及びプログラム
【課題】確実に周期性のないシャッターの開口パターンを低コストで取得できるようにする。
【解決手段】複数の周期性のない開口パターンをリストとして開口パターン保持手段によって保持しておき、その中から開口パターンを一つ選択することによって、撮影に使用するシャッターの開口パターンを決定する。ぶれ修復回路428は、指定された露光時間の間にシャッターの開閉を不規則に行い、得られた画像とシャッターの開口パターンの相関を用いてぶれを修復する符号化開口処理を行う。
【解決手段】複数の周期性のない開口パターンをリストとして開口パターン保持手段によって保持しておき、その中から開口パターンを一つ選択することによって、撮影に使用するシャッターの開口パターンを決定する。ぶれ修復回路428は、指定された露光時間の間にシャッターの開閉を不規則に行い、得られた画像とシャッターの開口パターンの相関を用いてぶれを修復する符号化開口処理を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル画像データをぶれ修復する技術に関するものである。
【背景技術】
【0002】
近年、デジタルカメラの撮像素子の高解像度化に伴い、撮影時の手ぶれ補正処理が注目されている。特にパーソナルコンピュータ上で簡単に100%以上に画像を拡大して確認できるので、如何に手ぶれを補正するかが重要なテーマとなっている。
【0003】
手ぶれの補正方法としては、ハードウェアによる実現方法と、ソフトウェアによる実現方法とがある。ハードウェアによる実現方法には、カメラにジャイロセンサを搭載し、露光中はジャイロセンサから得た振動を打ち消すようにレンズや撮像素子を駆動して手ぶれを低減する方法が考えられる。例えば、レンズ光学系の補正による実現方法は、特許文献1に開示されている。
【0004】
しかしながら、ハードウェアによる実現方法には、部品点数や製造コストの増加という問題がある。そのため、安価なデジタルカメラで同様の機能を実現する場合には、ソフトウェアによる実現が考えられる。
【0005】
ソフトウェアによる実現方法には、短時間露光した画像を複数枚用意して合成する方法が考えられる。例えば、特許文献2に開示されたものがその一つである。特許文献2では、ぶれを許容可能な露光時間で連続的に撮影した複数枚画像の相互のぶれを補正し、合成することによって手ぶれ補正を実現している。
【0006】
一方で、近年、シャッターの開口パターンをコード化し、このコード化された開口パターンを利用することで手ぶれを補正する技術も開発されている。例えば、ランダムにコード化された露出時間で画像を撮影し、露出時間コードの逆行列をかけることでぶれを補正する。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−214657号公報
【特許文献2】特開2007−243774号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、非特許文献1で述べられているようなシャッターの開口パターンをランダムにコード化する方法には、次のような課題がある。従来、このランダムな開口パターンを生成するにあたり、疑似乱数を使用して計算する方法が一般的であるが、このような方法では、確実に周期性のないパターンが生成されることは保証されない。もし、このパターンに周期性が現われてしまった場合には、ぶれ補正画像の画質劣化につながってしまうという問題がある。また、デジタルカメラ等への実装を考えた際に、疑似乱数の計算コストがかかってしまうという問題も生じる。
【0009】
本発明は以上のような状況に鑑みてなされたものであり、確実に周期性のないシャッターの開口パターンを低コストで取得できるようにすることを目的とする。
【課題を解決するための手段】
【0010】
本発明の撮像装置は、ぶれ検出手段を備えた撮像装置であって、周期性のないシャッターの開口パターンを保持する開口パターン保持手段と、前記開口パターン保持手段によって保持された開口パターンから開口パターンを決定する開口パターン決定手段と、前記開口パターン決定手段によって決定された開口パターンを使用して撮影を行う撮影手段と、前記ぶれ検出手段によって検出されたぶれ情報と、開口パターンから得られる点像関数の逆フィルタを撮影画像に適用することでぶれ修復した画像を得るぶれ修復正手段とを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、周期性のないシャッターの開口パターンを低コストで取得し、撮影を行うことが可能となり、ぶれ補正を行う際の画像の画質劣化を抑えることができる。
【図面の簡単な説明】
【0012】
【図1】デジタルカメラの外観を示す斜視図である。
【図2】デジタルカメラの内部構造を示す垂直断面図である。
【図3】デジタルカメラの回路構成を示すブロック図である。
【図4】符号化開口処理によるぶれ修復処理の流れを示すフローチャートである。
【図5】ぶれ修復処理の原理の概念を説明するための図である。
【図6】PSFの作成方法を示すフローチャートである。
【図7】一般的な回転運動におけるPSFの例を示す図である。
【図8】開口している場合のPSFの例及び周波数特性を示す図である。
【図9】シャッターの開閉条件を制御した場合のPSFの例及び周波数特性を示す図である。
【図10】回転ぶれを起こした画像及び回転ぶれを補正した画像を示す図である。
【図11】第1の実施形態における開口パターンのリストを示す図である。
【図12】第2の実施形態における開口パターンの決定方法を説明するための図である。
【図13】第3の実施形態における開口パターンの決定処理の流れを示すフローチャートである。
【図14】開口パターンの候補の選出方法を説明するための図である。
【図15】第4の実施形態における開口パターンの決定処理の流れを示すフローチャートである。
【図16】第5の実施形態における開口パターンの決定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。
(第1の実施形態)
図1は本実施形態に係る撮像装置であるデジタルカメラの外観を示す斜視図、図2はデジタルカメラの内部構造を示す図1の垂直断面図、図3はデジタルカメラの回路構成を示すブロック図である。
【0014】
図1に示すように、カメラ本体100の上部には、ファインダ観察用の接眼窓111、AE(自動露出)ロックボタン112、AF(自動焦点)の測距点選択ボタン113、撮影操作をするためのレリーズボタン114が設けられている。また、電子ダイヤル411、撮影モード選択ダイヤル117、外部表示装置409が設けられている。電子ダイヤル411は、他の操作ボタンと併用してカメラに数値を入力したり、撮影モードを切り換えたりするための多機能信号入力装置である。また、外部表示装置409は、液晶表示装置から構成され、シャッタースピード、絞り、撮影モード等の撮影条件や、他の情報を表示する。
【0015】
カメラ本体100の背面には、撮影された画像や各種設定画面等を表示するLCDモニタ装置417、LCDモニタ装置417をオン/オフするためのモニタスイッチ121、十字配置スイッチ116、メニューボタン124が設けられている。十字配置スイッチ116は、上下左右に配された4つのボタンと、中央に配されたSETボタンとを有し、ユーザがLCDモニタ装置417に表示されるメニュー項目等の選択や実行をカメラに指示するために用いられる。また、メニューボタン124は、LCDモニタ装置417にカメラの各種設定を行うためのメニュー画面を表示させるためのボタンである。例えば、撮影モードを選択、設定する時は、このメニューボタン124を押した後、十字配置スイッチ116の上下左右のボタンを操作して希望のモードを選択し、希望のモードが選択された状態でSETボタンを押すことにより設定が完了する。このメニューボタン124と十字配置スイッチ116は、後述するAFモードの設定にも使用される。
【0016】
図2において、100はカメラ本体、200は撮像光学系の撮影レンズであり、撮影レンズ200はカメラ本体100に対してレンズマウント202を介して着脱可能である。201は撮影光軸である。
【0017】
203は撮影光路中に配置されたクイックリターンミラーであり、撮影レンズ200からの被写体光をファインダ光学系に導く位置(図2に示す位置、斜設位置と呼ぶ)と、撮影光路外に退避する位置(退避位置と呼ぶ)との間で移動可能である。
【0018】
204はピント板であり、ピント板204上にはクイックリターンミラー203からファインダ光学系に導かれる被写体光が結像される。205はファインダの視認性を向上させるためのコンデンサレンズ、206はペンタゴナルダハプリズムであり、ピント板204及びコンデンサレンズ205を通った被写体光をファインダ観察用の接眼レンズ208及び測光センサ207に導く。
【0019】
209、210はそれぞれシャッターを構成する後幕と先幕で、これら後幕209、先幕210の開放によって、後方に配置されている固体撮像素子である撮像素子418が必要時間だけ露光される。このとき、後述するようにして決定されたシャッターの開口パターンに従って、指定された露光時間の間にシャッターの開閉を不規則に行い撮影を行う。画像データは、予め定められた時間tで時分割露光した状態でA/Dコンバータ423や画像処理回路425(図3を参照)等によって処理される。画像処理回路425では、露光条件生成回路427の出力に応じて選択された画像データを加算合成して出力する。出力された合成画像データは、ぶれ修復回路428で露光条件や動き情報を用いてぶれ修復(ぶれ補正)処理を適用し、外部記憶装置419等へ出力される。ぶれ修復処理の詳細については後述する。
【0020】
211はプリント基板であり、このプリント基板211に撮像素子418が保持されている。プリント基板211の後方には、もう一枚のプリント基板である表示基板215が配置されている。表示基板215の反対側の面に、LCDモニタ装置417及びバックライト照明装置416が配置されている。
【0021】
419は画像データを記録する外部記憶装置、217は電池(携帯用電源)であり、これら外部記憶装置419及び電池217は、カメラ本体100に対して着脱可能である。
【0022】
図3において、マイクロコンピュータ402は、撮像素子(本実施形態ではCCD)418が出力する画像データの処理や、LCDモニタ装置417の表示制御をはじめ、カメラ全体の動作を制御する。
【0023】
スイッチ(SW1)405は、レリーズボタン114(図1を参照)の半押し状態でオンになり、スイッチ(SW1)405がオンすると、本実施形態のデジタルカメラは撮影準備状態になる。スイッチ(SW2)406は、レリーズボタン114が最後まで押された状態(全押し状態)でオンになり、スイッチ(SW2)406がオンすると、本実施形態のデジタルカメラは撮影動作を開始する。
【0024】
レンズ制御回路407は、撮影レンズ200との通信及びAF時の撮影レンズ200の駆動制御や絞り羽根の駆動制御を行う。外部表示制御回路408は、外部表示装置(OLC)409や、ファインダ内の表示装置(不図示)の制御を行う。スイッチセンス回路410は、カメラに設けられた電子ダイヤル411を含む多数のスイッチ類の信号をマイクロコンピュータ402に伝える。ストロボ発光調光制御回路412は、X接点412aを介して接地されており、外部ストロボの制御を行う。
【0025】
測距(AF)回路413は、AFのための被写体に対するデフォーカス量を検出する。測光(AE)回路414は、被写体の輝度を測定する。シャッター制御回路415は、シャッターの制御を行い、撮像素子418に対して適正な露光を行う。
【0026】
本実施形態のLCDモニタ装置417は透過型であり、LCDモニタ装置の駆動だけでは画像を視認することはできず、必ずその裏面には図3に示すようにバックライト照明装置416が必要である。このようにLCDモニタ装置417とバックライト照明装置416は画像表示装置を構成している。
【0027】
外部記憶装置419は、例えばカメラ本体100に着脱可能なハードディスクドライブや半導体メモリカード等である。
【0028】
また、マイクロコンピュータ402には、A/Dコンバータ423、画像バッファメモリ424、DSP等からなる画像処理回路425、ぶれ検出手段たる動き情報検出回路426、露光条件生成回路427、ぶれ修復回路428が接続されている。画像処理回路425は、スイッチ(SW2)406がオンされた場合、画像データに対して不図示の距離マップ生成回路から得た距離マップを用いてシャープネス処理を適用する。
【0029】
ぶれ修復回路428では、符号化開口(Coded Exposure)という技術を用いてぶれ修復を実現する。符号化開口とは、指定された露光時間の間にシャッターの開閉を不規則に行い、得られた画像とシャッターの開口パターンの相関を用いてぶれを修復する技術である。以下、画像の回転方向のぶれを修復する場合を例にして、符号化開口処理の基本的な流れを説明する。その後、本実施形態における符号化開口処理の実現方法について述べる。なお、このぶれ修復回路428が、ぶれ情報と開口パターンから得られる点像関数の逆フィルタを撮影画像に適用することでぶれ修復した画像を得るぶれ修復正手段として機能する。
【0030】
<符号化開口処理の概要>
まず、符号化開口処理によるぶれ修復処理の流れについて図4のフローチャートを用いて説明する。例えば通常のカメラでの撮影において、入力された撮影データを考える(ステップS401)。このとき、(x,y)に単位時間当たりに入射する光の強度をI(x,y)、角速度をω(t)、露光時間をTとすると、カメラには時間tにI(x,y)を−θ(T−t)だけ回転させた情報が入射するので、撮影データI_blur(x,y)は、下式(1)〜(3)となる。
【0031】
【数1】
【0032】
なお、座標系の原点は入力される回転中心座標に一致させる。式(1)において、h(t)はシャッターの開閉情報(開口パターン)を表す関数であり、1又は0の値をとる。1ならばシャッターが開いていることを示し、0ならばシャッターが閉じていることを表す。式(1)から式(2)の変形では積分変数の変換を行っている。ω(t)=dθ/dtであり、ω(θ)にはtとθの関係を利用して、ω(t)をθの変数に書き直した関数である。同様に、h(θ)はtとθの関係を利用して、h(t)をθに書き直した関数である。ここで、φ=θ(T)である。式(3)において、h'(θ)=h(θ)/ω(θ)である。
【0033】
次に、露光条件を取得する(ステップS402)。この場合の露光条件とは、露光時間中のシャッターの開口パターンとする。
【0034】
次に、ぶれの角度と時間の関係を得る(ステップS403)。
【0035】
次に、ぶれ角度と露光条件から、極座標上のPSF h'(θ)を算出する(ステップS404)。ここでPSFとは、Point Spread Function(点像分布関数、点像関数)の略である。PSF h'(θ)の詳細な算出方法については後述する。
【0036】
次に、撮影データを極座標に変換する(ステップS405)。前述した通り、このときの直交座標系の原点は入力画像の回転中心座標に一致させる。極座標変換を行うと、式(3)は、下式(4)となる。
【0037】
【数2】
【0038】
ここで、式(3)における(x,y)=r(cosΘ,sinΘ)である。これは平行移動に対するぶれと同じ式であり、PSF h'(θ)によるコンボリューションを行ったものとみなすことができる。
【0039】
これは理論的な式であり、実際のデータはデジタルであることから、実空間から極座標の変換を行うためには、何らかの補間が必要になる。補間方法は任意のものを用いてよい。ここではバイリニア補間を用いることとする。
【0040】
引き続いて、式(4)のコンボリューションを打ち消すようにデコンボリューションを行う(ステップS406)。このときのデコンボリューションのアルゴリズムは、任意の既存アルゴリズムを用いればよい。例えば、周波数空間上での除算、Lucy−Richardsonのアルゴリズム、Wienerフィルタを用いたアルゴリズム、正則化フィルタを用いたアルゴリズム等が挙げられる。この例では、開口パターンを制御することでh'(θ)の形状をコントロールし、周波数空間上での除算を行うものとする。デコンボリューションの詳細については後述する。
【0041】
デコンボリューションによってI(r,Θ)が得られるので、このI(r,Θ)を実空間表示I(x,y)に戻す(ステップS407)。この変換処理でも、実空間から極座標への変換と同様に補間処理が必要となる。
【0042】
その後、実空間に変換したデータをぶれ修復後のデータとして出力する(ステップS408)。
【0043】
以上述べたような処理により、不規則に変化させたシャッターの開閉によって得た画像について、その開口パターンとぶれ情報から、画像のぶれ修復処理を実現できる。このぶれ修復処理の原理を概念的に表したものが図5である。図5は、回転方向のぶれを極座標変換によって横方向のぶれに変換し、その横方向のぶれをデコンボリューションによって除去し、最後に実空間に戻して回転方向のぶれを修復する流れを示している。
【0044】
なお、この例では回転方向のぶれ修復処理を対象とするために極座標に変換して処理を適用したが、前述したように極座標に変換せずに処理を行うことで、水平垂直方向への所謂シフトぶれの補正も可能である。例えば、まず極座標への変換を行わない状態で水平垂直方向のぶれを修復した後に、前述の回転方向のぶれ修復処理を実行することが考えられる。
【0045】
<PSFの作成方法>
本実施形態では、動き情報検出回路426によって角度と時間の関係θ(t)を得ることができる。PSFの作成方法を図6のフローチャートを用いて説明する。まず、角度を時間で微分することにより、角速度ω(t)を算出する(ステップS601)。これをθ(t)と組み合わせることにより、角速度をθの関数で表すことができる。これをω(θ)とする。
【0046】
また、露光条件と角度から、シャッターの開閉情報(開口パターン)を表す関数h(t)についても同様にθの関数で表すことができる。これをh(θ)とする(ステップS602)。
【0047】
これらの情報から、下式(5)を算出し(ステップS603)、h'(θ)をPSFとして出力する(ステップS604)。式(3)より、これが極座標上でのPSFとなる。
【0048】
【数3】
【0049】
一般的な回転運動におけるPSFの例を図7に示す。図7において、横軸は角度(単位はラジアン)、縦軸はPSFの値を示す。このときの開口条件は、h(t)=1 (0≦t≦T) h(t)=0 elseであるとする。また、角速度は加速度運動をしているものとする。ω(θ)が増大していくので、PSF h'(θ)の値は減少する。
【0050】
<デコンボリューションの方法>
式(4)を周波数空間上に変換すると、下式(6)となる。(f,ρ)において、fはrの周波数変換に対応する変数であり、ρはΘの周波数変換に対応する変数である。
【0051】
【数4】
【0052】
H'(f,ρ)は既知なので、周波数空間上でI_blur(f,ρ)をH'(f、ρ)で割れば、I(f,ρ)を原理的に求めることができる。しかし、ここには問題がある。以下では、等角速度運動によるぶれを考え、ω(θ)を定数であるものとする。
【0053】
まず通常の露光条件であるh(t)=1 (0≦t≦T) h(t)=0 elseの場合を考えてみる。ここで、h(t)=1はシャッターが開いている状態を表し、h(t)=0はシャッターが閉じている状態を示す。このときのPSFの形状を図8(a)に、このPSFを周波数変換したものを図8(b)に示す。図8において、横軸は角度(単位はラジアン)、縦軸は図8(a)ではPSFの値、図8(b)ではH'(f,ρ)の絶対値を表す。図8(b)から、通常の露光条件の場合には、H'(f,ρ)の値が周期的に0になる点が現れることが分かる。これは、その周波数に該当する情報が失われてしまっていることを意味する。
【0054】
このような状態では、デコンボリューションした出力画像上に情報が失われた周波数に相当する部分にエラー(波形の模様)が生じる。このエラーを生じないようにするための技術が符号化開口である。例えば、シャッターの開閉を表す0と1の順序及び長さをランダムに変化させることで、PSFの周波数特性が0になることを防ぐことができる。このときのPSFの形状を図9(a)に、このPSFを周波数変換したものを図9(b)に示す。図9において、縦軸と横軸はそれぞれ図8と同様である。この場合、どの周波数でも情報が失われることはないので、H'(f,ρ)で除算することにより、理論的には完全にデコンボリューションを行うことが可能である。
【0055】
最後に、シミュレーションによって回転方向にぶれた画像を生成し、符号化開口を利用したぶれ修復処理を適用した結果を図10に模式的に示す。図10(a)がぶれた画像、図10(b)がぶれ修復処理の適用結果である。
【0056】
以上説明したように、符号化開口を応用したぶれ修復処理を適用することで、好適なぶれ修復結果を得ることができる。また、この処理に必要な情報は、開口パターンと動き情報、開口パターンに従って加算合成して生成したぶれ画像であることが分かる。
【0057】
次に、本発明の主眼である開口パターンの決定方法について説明する。本実施形態では、複数の周期性のない開口パターンをリストとして開口パターン保持手段によって保持しておき、その中から開口パターンを一つ選択することによって、撮影に使用する開口パターンを決定する。
【0058】
図11は、開口パターンのリストを示す図である。リストには、IDと開口パターンが登録されており、それぞれが一対一に関連付けられたテーブルのかたちとなっている。ここで、開口パターンの「1」はシャッターが開いている状態、「0」はシャッターが閉じている状態を示しており、リスト中のそれぞれの開口パターンは周期性を持たないように予め設計されている。
【0059】
ここで、周期性を持たないパターンとは、図9に示したように、PSFの周波数特性がゼロにならないようなパターンのことを意味する。この周期性を持たないような開口パターンの設計には、例えば、周期の非常に長いことで知られているメルセンヌ・ツイスタのような疑似乱数生成方法を用いることが考えられる。そして、生成された乱数が周期性を持たないことを検証した上で、リストへと登録する。もちろん、この開口パターンの設計方法には、必ずしも疑似乱数を用いる必要はなく、最終的に生成された開口パターンが周期性を持たないものになれば、任意の方法を用いてよい。また、周期性がないことの検証は、図9に示したように、PSFを周波数変換し、H'(f,ρ)の絶対値が、ゼロに落ちないことを確認することによって行えばよい。
【0060】
本実施形態では、撮影時に、露光条件生成回路427によって、この開口パターンのリストの中から、例えばランダムに一つを選択することで、撮影に使用する開口パターンを決定する。これが本発明でいう開口パターン決定手段による処理例である。
【0061】
撮影後の画像データに対するぶれ補正処理は、ぶれ修復回路428により、前述した図4のフローに従って行われる。ここで、ステップS402における露光条件として、撮影時に開口パターンのリストから選択された開口パターンが取得されることになる。
【0062】
以上の処理により、撮影時に、確実に周期性を持たない開口パターンを選択して使用することができるので、PSFの周波数特性が0になることを防ぐことができる。よって、ぶれ補正を行った際に、ぶれ補正画像の画質劣化を抑えることが可能となる。また、テーブル参照によって開口パターンを決定するので、疑似乱数等によって動的にパターンを決定するような従来の方法に比べて、計算コストを抑えることができる。
【0063】
(第2の実施形態)
第1の実施形態では、予め用意された周期性を持たない開口パターンのリストから一つを選択することによって、撮影に使用する開口パターンを決定する方法について述べた。本実施形態では、開口パターンを決定するための第二の方法について説明する。
【0064】
本実施形態では、図12に示すように、予め十分長い周期性のない開口パターンを用意し、その一部分をランダムに抜き出すことによって、撮影に使用する開口パターンを決定する。このように、周期性のないパターンの一部を抜き出すことによって生成されるパターンは、それ自身も必ず周期性を持たないので、確実に周期性のない開口パターンを使って撮影を行うことができるようになる。
【0065】
この十分長い周期性のない開口パターンを生成する方法に関しては、第1の実施形態で述べた、疑似乱数を使用する方法等が考えられる。本実施形態でも第1の実施形態と同様に、この開口パターンの生成には、必ずしも疑似乱数を用いる必要はなく、生成された開口パターンが周期性を持たないものになれば、任意の方法を用いてよい。また、この予め準備される長い開口パターンは、もちろん一つである必要はなく、第1の実施形態で示したようなリストの形で複数用意し、その中の一部分を使用する開口パターンとして抜き出すようにしてもよい。
【0066】
撮影後の画像データに対するぶれ補正処理は、第1の実施形態で説明した図4のフローに従って行われる。ここで、ステップS402における露光条件として、予め準備された十分長い周期性のないパターンの一部を抜き出すことによって決定された開口パターンが取得されることになる。
【0067】
以上の処理により、撮影時に、確実に周期性を持たない開口パターンを使用することができるので、PSFの周波数特性が0になることを防ぐことができる。よって、ぶれ補正を行った際に、ぶれ補正画像の画質劣化を抑えることが可能となる。また、疑似乱数等によって動的にパターンを決定するような従来の方法に比べて、計算コストを抑えることができる。
【0068】
(第3の実施形態)
第1の実施形態及び第2の実施形態では、開口パターンをランダムに一つ決定する方法について説明したが、例えば、これらの方法によって複数の候補を決定し、さらにその候補の中から撮影条件に従って最終的な開口パターンを決定するようにしてもよい。本実施形態では、このように開口パターンの候補が複数ある場合のパターンの決定方法について説明する。
【0069】
本実施形態では、撮影時の露光時間に従って、複数の開口パターンの候補の中から一つを決定する。この処理の詳細を、図13のフローチャートを用いて説明する。ステップS1301では、開口パターンの候補を複数選出する。これは、図14(a)に示すように、周期性のない十分長いパターンからランダムに複数のパターンを抜き出すことによって行ってもよい。或いは、図14(b)に示すように、周期性のないパターンが複数あり、それぞれから一部分をランダムに抜き出すことによって行ってもよい。また、第1の実施形態で説明したような開口パターンのリスト中の各エントリを複数の候補とみなしてもよい。
【0070】
ステップS1302では、ステップS1301で選出された開口パターンの候補のそれぞれに対して、パターンの平均値を算出する。これは、パターンの各ビットを足し合わせ、ビット長で割ることによって求める。つまり、この平均値は、もし全開口(パターンが全て1)の場合は1となり、全閉口(パターンが全て0)の場合は0となる。よって、ここで算出される平均値は、0から1の間に入ることになる。図14に示す例では、各候補の平均値を括弧中に示している。
【0071】
ステップS1303では、撮影時の露光時間を取得する。
【0072】
ステップS1304では、ステップS1303で取得した露光時間と、予め定められた露光時間の閾値とを比較する。もし、露光時間が閾値よりも小さければステップS1305へと進み、そうでなければステップS1306へと進む。
【0073】
ステップS1305では、ステップS1302で算出した開口パターンの各候補の平均値を比較し、その平均値が最大となるパターンを撮影に使用する開口パターンとして決定し、処理を終了する。
【0074】
一方、ステップS1306では、ステップS1302で算出した開口パターンの各候補の平均値を比較し、その平均値が最小となるパターンを撮影に使用する開口パターンとして決定し、処理を終了する。
【0075】
以上の処理により、開口パターンの候補が複数ある場合に、その中から適切な開口パターンを決定することができる。また、このように、露光条件に従って開口パターンをコントロールすることによって、全体の露光量を増加させることができ、ノイズを抑えたぶれ補正を行うことが可能となる。
【0076】
本実施形態では、露光条件に従って開口パターンをコントロールする方法について述べたが、他の撮影条件を使用しても同様の効果を得ることができるのは言うまでもない。例えば、ISO感度をパラメータとして開口パターンをコントロールしてもよい。ISO感度をパラメータとした場合には、高感度の際には、露出の多いパターン、つまり、平均値の大きいパターンを選ぶようにすることで同様の効果を得ることができる。
【0077】
(第4の実施形態)
本実施形態では、開口パターンの候補が複数ある場合のパターンの決定方法として、撮影条件である撮影モードに従って複数の開口パターンの候補の中から一つを決定する処理について説明する。
【0078】
一般的に、ポートレートモードで撮影されるポートレート写真においては、撮影画像中に平坦な部分が多く現れる。言い換えると、低周波成分を多く持つ画像となることが多い。このような場合に、全周波数領域において応答値を持つようなランダムノイズパターンの開口パターンを使って撮影及びぶれ補正を行うと、不必要な周波数成分を持つため、ぶれ補正画像のノイズが目立ってしまうという問題が生じる。本実施形態では、この問題の解決方法として、撮影モードに従って、開口パターンの選択をコントロールする方法について説明する。
【0079】
図15は、本実施形態における開口パターンの決定方法を示すフローチャートである。ステップS1501では、開口パターンの候補を複数選出する。これは、図14(a)に示すように、周期性のない十分長いパターンからランダムに複数のパターンを抜き出すことによって行ってもよい。或いは、図14(b)に示すように、周期性のないパターンが複数あり、それぞれから一部分をランダムに抜き出すことによって行ってもよい。また、第1の実施形態で説明したような開口パターンのリスト中の各エントリを複数の候補とみなしてもよい。
【0080】
ステップS1502では、テップS1501で選出された開口パターンの候補のそれぞれを周波数変換する。
【0081】
ステップS1503では、撮影モードを取得する。
【0082】
ステップS1504では、撮影モードがポートレートモードかどうかを判定する。もし、ポートレートモードならばステップS1505に進み、そうでなければステップS1506に進む。
【0083】
ステップS1505では、ステップS1502で周波数変換された開口パターンの各候補の中から、周波数特性がピンクノイズ特性に最も近いパターンを開口パターンとして決定し、処理を終了する。
【0084】
一方、ステップS1506では、ステップS1502で周波数変換された開口パターンの各候補の中から、周波数特性がランダムノイズ特性に最も近いパターンを開口パターンとして決定し、処理を終了する。
【0085】
以上の処理により、低周波成分の多く含まれるポートレート画像に対して、符号化開口処理によるぶれ補正を行う際に、ノイズの発生を低減させることができる。
【0086】
(第5の実施形態)
本実施形態では、開口パターンの候補が複数ある場合のパターンの決定方法として、撮影条件である撮影時のf値に従って複数の開口パターンの候補の中から一つを決定する処理について説明する。
【0087】
撮影時のf値が小さい場合、被写界深度が浅くなるため、f値が大きい場合に比べて画像中にぼけた部分が多く生じる。つまり、低周波成分をより多く持つ画像となることが多い。このような場合に、全周波数領域において応答値を持つようなランダムノイズパターンの開口パターンを使って撮影及びぶれ補正を行うと、不必要な周波数成分を持つため、ぶれ補正画像のノイズが目立ってしまうという問題が生じる。本実施形態では、この問題の解決方法として、撮影時のf値に従って、開口パターンの選択をコントロールする方法について説明する。
【0088】
図16は、本実施形態における開口パターンの決定方法を示すフローチャートである。ステップS1601では、開口パターンの候補を複数選出する。これは、図14(a)に示すように、周期性のない十分長いパターンからランダムに複数のパターンを抜き出すことによって行ってもよい。或いは、図14(b)に示すように、周期性のないパターンが複数あり、それぞれから一部分をランダムに抜き出すことによって行ってもよい。また、第1の実施形態で説明したような開口パターンのリスト中の各エントリを複数の候補とみなしてもよい。
【0089】
ステップS1602では、テップS1601で選出された開口パターンの候補のそれぞれを周波数変換する。
【0090】
ステップS1603では、設定されたf値を取得する。
【0091】
ステップS1604では、ステップS1603で取得したf値と閾値を比較する。もし、f値が閾値より小さければステップS1605に進み、そうでなければステップS1606に進む。
【0092】
ステップS1605では、ステップS1602で周波数変換された開口パターンの各候補の中から、周波数特性がピンクノイズ特性に最も近いパターンを開口パターンとして決定し、処理を終了する。
【0093】
一方、ステップS1606では、ステップS1602で周波数変換された開口パターンの各候補の中から、周波数特性がランダムノイズ特性に最も近いパターンを開口パターンとして決定し、処理を終了する。
【0094】
以上の処理により、絞りを開けた状態で撮影されたぼけの多く含まれる画像、つまり低周波成分の多く含まれる画像に対して、符号化開口処理によるぶれ補正を行う際に、ノイズの発生を低減させることができる。
【0095】
なお、本発明の目的は、前述した実施形態の機能またはフローチャートを実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給することによっても達成される。この場合、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。
【0096】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【技術分野】
【0001】
本発明は、デジタル画像データをぶれ修復する技術に関するものである。
【背景技術】
【0002】
近年、デジタルカメラの撮像素子の高解像度化に伴い、撮影時の手ぶれ補正処理が注目されている。特にパーソナルコンピュータ上で簡単に100%以上に画像を拡大して確認できるので、如何に手ぶれを補正するかが重要なテーマとなっている。
【0003】
手ぶれの補正方法としては、ハードウェアによる実現方法と、ソフトウェアによる実現方法とがある。ハードウェアによる実現方法には、カメラにジャイロセンサを搭載し、露光中はジャイロセンサから得た振動を打ち消すようにレンズや撮像素子を駆動して手ぶれを低減する方法が考えられる。例えば、レンズ光学系の補正による実現方法は、特許文献1に開示されている。
【0004】
しかしながら、ハードウェアによる実現方法には、部品点数や製造コストの増加という問題がある。そのため、安価なデジタルカメラで同様の機能を実現する場合には、ソフトウェアによる実現が考えられる。
【0005】
ソフトウェアによる実現方法には、短時間露光した画像を複数枚用意して合成する方法が考えられる。例えば、特許文献2に開示されたものがその一つである。特許文献2では、ぶれを許容可能な露光時間で連続的に撮影した複数枚画像の相互のぶれを補正し、合成することによって手ぶれ補正を実現している。
【0006】
一方で、近年、シャッターの開口パターンをコード化し、このコード化された開口パターンを利用することで手ぶれを補正する技術も開発されている。例えば、ランダムにコード化された露出時間で画像を撮影し、露出時間コードの逆行列をかけることでぶれを補正する。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−214657号公報
【特許文献2】特開2007−243774号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、非特許文献1で述べられているようなシャッターの開口パターンをランダムにコード化する方法には、次のような課題がある。従来、このランダムな開口パターンを生成するにあたり、疑似乱数を使用して計算する方法が一般的であるが、このような方法では、確実に周期性のないパターンが生成されることは保証されない。もし、このパターンに周期性が現われてしまった場合には、ぶれ補正画像の画質劣化につながってしまうという問題がある。また、デジタルカメラ等への実装を考えた際に、疑似乱数の計算コストがかかってしまうという問題も生じる。
【0009】
本発明は以上のような状況に鑑みてなされたものであり、確実に周期性のないシャッターの開口パターンを低コストで取得できるようにすることを目的とする。
【課題を解決するための手段】
【0010】
本発明の撮像装置は、ぶれ検出手段を備えた撮像装置であって、周期性のないシャッターの開口パターンを保持する開口パターン保持手段と、前記開口パターン保持手段によって保持された開口パターンから開口パターンを決定する開口パターン決定手段と、前記開口パターン決定手段によって決定された開口パターンを使用して撮影を行う撮影手段と、前記ぶれ検出手段によって検出されたぶれ情報と、開口パターンから得られる点像関数の逆フィルタを撮影画像に適用することでぶれ修復した画像を得るぶれ修復正手段とを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、周期性のないシャッターの開口パターンを低コストで取得し、撮影を行うことが可能となり、ぶれ補正を行う際の画像の画質劣化を抑えることができる。
【図面の簡単な説明】
【0012】
【図1】デジタルカメラの外観を示す斜視図である。
【図2】デジタルカメラの内部構造を示す垂直断面図である。
【図3】デジタルカメラの回路構成を示すブロック図である。
【図4】符号化開口処理によるぶれ修復処理の流れを示すフローチャートである。
【図5】ぶれ修復処理の原理の概念を説明するための図である。
【図6】PSFの作成方法を示すフローチャートである。
【図7】一般的な回転運動におけるPSFの例を示す図である。
【図8】開口している場合のPSFの例及び周波数特性を示す図である。
【図9】シャッターの開閉条件を制御した場合のPSFの例及び周波数特性を示す図である。
【図10】回転ぶれを起こした画像及び回転ぶれを補正した画像を示す図である。
【図11】第1の実施形態における開口パターンのリストを示す図である。
【図12】第2の実施形態における開口パターンの決定方法を説明するための図である。
【図13】第3の実施形態における開口パターンの決定処理の流れを示すフローチャートである。
【図14】開口パターンの候補の選出方法を説明するための図である。
【図15】第4の実施形態における開口パターンの決定処理の流れを示すフローチャートである。
【図16】第5の実施形態における開口パターンの決定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。
(第1の実施形態)
図1は本実施形態に係る撮像装置であるデジタルカメラの外観を示す斜視図、図2はデジタルカメラの内部構造を示す図1の垂直断面図、図3はデジタルカメラの回路構成を示すブロック図である。
【0014】
図1に示すように、カメラ本体100の上部には、ファインダ観察用の接眼窓111、AE(自動露出)ロックボタン112、AF(自動焦点)の測距点選択ボタン113、撮影操作をするためのレリーズボタン114が設けられている。また、電子ダイヤル411、撮影モード選択ダイヤル117、外部表示装置409が設けられている。電子ダイヤル411は、他の操作ボタンと併用してカメラに数値を入力したり、撮影モードを切り換えたりするための多機能信号入力装置である。また、外部表示装置409は、液晶表示装置から構成され、シャッタースピード、絞り、撮影モード等の撮影条件や、他の情報を表示する。
【0015】
カメラ本体100の背面には、撮影された画像や各種設定画面等を表示するLCDモニタ装置417、LCDモニタ装置417をオン/オフするためのモニタスイッチ121、十字配置スイッチ116、メニューボタン124が設けられている。十字配置スイッチ116は、上下左右に配された4つのボタンと、中央に配されたSETボタンとを有し、ユーザがLCDモニタ装置417に表示されるメニュー項目等の選択や実行をカメラに指示するために用いられる。また、メニューボタン124は、LCDモニタ装置417にカメラの各種設定を行うためのメニュー画面を表示させるためのボタンである。例えば、撮影モードを選択、設定する時は、このメニューボタン124を押した後、十字配置スイッチ116の上下左右のボタンを操作して希望のモードを選択し、希望のモードが選択された状態でSETボタンを押すことにより設定が完了する。このメニューボタン124と十字配置スイッチ116は、後述するAFモードの設定にも使用される。
【0016】
図2において、100はカメラ本体、200は撮像光学系の撮影レンズであり、撮影レンズ200はカメラ本体100に対してレンズマウント202を介して着脱可能である。201は撮影光軸である。
【0017】
203は撮影光路中に配置されたクイックリターンミラーであり、撮影レンズ200からの被写体光をファインダ光学系に導く位置(図2に示す位置、斜設位置と呼ぶ)と、撮影光路外に退避する位置(退避位置と呼ぶ)との間で移動可能である。
【0018】
204はピント板であり、ピント板204上にはクイックリターンミラー203からファインダ光学系に導かれる被写体光が結像される。205はファインダの視認性を向上させるためのコンデンサレンズ、206はペンタゴナルダハプリズムであり、ピント板204及びコンデンサレンズ205を通った被写体光をファインダ観察用の接眼レンズ208及び測光センサ207に導く。
【0019】
209、210はそれぞれシャッターを構成する後幕と先幕で、これら後幕209、先幕210の開放によって、後方に配置されている固体撮像素子である撮像素子418が必要時間だけ露光される。このとき、後述するようにして決定されたシャッターの開口パターンに従って、指定された露光時間の間にシャッターの開閉を不規則に行い撮影を行う。画像データは、予め定められた時間tで時分割露光した状態でA/Dコンバータ423や画像処理回路425(図3を参照)等によって処理される。画像処理回路425では、露光条件生成回路427の出力に応じて選択された画像データを加算合成して出力する。出力された合成画像データは、ぶれ修復回路428で露光条件や動き情報を用いてぶれ修復(ぶれ補正)処理を適用し、外部記憶装置419等へ出力される。ぶれ修復処理の詳細については後述する。
【0020】
211はプリント基板であり、このプリント基板211に撮像素子418が保持されている。プリント基板211の後方には、もう一枚のプリント基板である表示基板215が配置されている。表示基板215の反対側の面に、LCDモニタ装置417及びバックライト照明装置416が配置されている。
【0021】
419は画像データを記録する外部記憶装置、217は電池(携帯用電源)であり、これら外部記憶装置419及び電池217は、カメラ本体100に対して着脱可能である。
【0022】
図3において、マイクロコンピュータ402は、撮像素子(本実施形態ではCCD)418が出力する画像データの処理や、LCDモニタ装置417の表示制御をはじめ、カメラ全体の動作を制御する。
【0023】
スイッチ(SW1)405は、レリーズボタン114(図1を参照)の半押し状態でオンになり、スイッチ(SW1)405がオンすると、本実施形態のデジタルカメラは撮影準備状態になる。スイッチ(SW2)406は、レリーズボタン114が最後まで押された状態(全押し状態)でオンになり、スイッチ(SW2)406がオンすると、本実施形態のデジタルカメラは撮影動作を開始する。
【0024】
レンズ制御回路407は、撮影レンズ200との通信及びAF時の撮影レンズ200の駆動制御や絞り羽根の駆動制御を行う。外部表示制御回路408は、外部表示装置(OLC)409や、ファインダ内の表示装置(不図示)の制御を行う。スイッチセンス回路410は、カメラに設けられた電子ダイヤル411を含む多数のスイッチ類の信号をマイクロコンピュータ402に伝える。ストロボ発光調光制御回路412は、X接点412aを介して接地されており、外部ストロボの制御を行う。
【0025】
測距(AF)回路413は、AFのための被写体に対するデフォーカス量を検出する。測光(AE)回路414は、被写体の輝度を測定する。シャッター制御回路415は、シャッターの制御を行い、撮像素子418に対して適正な露光を行う。
【0026】
本実施形態のLCDモニタ装置417は透過型であり、LCDモニタ装置の駆動だけでは画像を視認することはできず、必ずその裏面には図3に示すようにバックライト照明装置416が必要である。このようにLCDモニタ装置417とバックライト照明装置416は画像表示装置を構成している。
【0027】
外部記憶装置419は、例えばカメラ本体100に着脱可能なハードディスクドライブや半導体メモリカード等である。
【0028】
また、マイクロコンピュータ402には、A/Dコンバータ423、画像バッファメモリ424、DSP等からなる画像処理回路425、ぶれ検出手段たる動き情報検出回路426、露光条件生成回路427、ぶれ修復回路428が接続されている。画像処理回路425は、スイッチ(SW2)406がオンされた場合、画像データに対して不図示の距離マップ生成回路から得た距離マップを用いてシャープネス処理を適用する。
【0029】
ぶれ修復回路428では、符号化開口(Coded Exposure)という技術を用いてぶれ修復を実現する。符号化開口とは、指定された露光時間の間にシャッターの開閉を不規則に行い、得られた画像とシャッターの開口パターンの相関を用いてぶれを修復する技術である。以下、画像の回転方向のぶれを修復する場合を例にして、符号化開口処理の基本的な流れを説明する。その後、本実施形態における符号化開口処理の実現方法について述べる。なお、このぶれ修復回路428が、ぶれ情報と開口パターンから得られる点像関数の逆フィルタを撮影画像に適用することでぶれ修復した画像を得るぶれ修復正手段として機能する。
【0030】
<符号化開口処理の概要>
まず、符号化開口処理によるぶれ修復処理の流れについて図4のフローチャートを用いて説明する。例えば通常のカメラでの撮影において、入力された撮影データを考える(ステップS401)。このとき、(x,y)に単位時間当たりに入射する光の強度をI(x,y)、角速度をω(t)、露光時間をTとすると、カメラには時間tにI(x,y)を−θ(T−t)だけ回転させた情報が入射するので、撮影データI_blur(x,y)は、下式(1)〜(3)となる。
【0031】
【数1】
【0032】
なお、座標系の原点は入力される回転中心座標に一致させる。式(1)において、h(t)はシャッターの開閉情報(開口パターン)を表す関数であり、1又は0の値をとる。1ならばシャッターが開いていることを示し、0ならばシャッターが閉じていることを表す。式(1)から式(2)の変形では積分変数の変換を行っている。ω(t)=dθ/dtであり、ω(θ)にはtとθの関係を利用して、ω(t)をθの変数に書き直した関数である。同様に、h(θ)はtとθの関係を利用して、h(t)をθに書き直した関数である。ここで、φ=θ(T)である。式(3)において、h'(θ)=h(θ)/ω(θ)である。
【0033】
次に、露光条件を取得する(ステップS402)。この場合の露光条件とは、露光時間中のシャッターの開口パターンとする。
【0034】
次に、ぶれの角度と時間の関係を得る(ステップS403)。
【0035】
次に、ぶれ角度と露光条件から、極座標上のPSF h'(θ)を算出する(ステップS404)。ここでPSFとは、Point Spread Function(点像分布関数、点像関数)の略である。PSF h'(θ)の詳細な算出方法については後述する。
【0036】
次に、撮影データを極座標に変換する(ステップS405)。前述した通り、このときの直交座標系の原点は入力画像の回転中心座標に一致させる。極座標変換を行うと、式(3)は、下式(4)となる。
【0037】
【数2】
【0038】
ここで、式(3)における(x,y)=r(cosΘ,sinΘ)である。これは平行移動に対するぶれと同じ式であり、PSF h'(θ)によるコンボリューションを行ったものとみなすことができる。
【0039】
これは理論的な式であり、実際のデータはデジタルであることから、実空間から極座標の変換を行うためには、何らかの補間が必要になる。補間方法は任意のものを用いてよい。ここではバイリニア補間を用いることとする。
【0040】
引き続いて、式(4)のコンボリューションを打ち消すようにデコンボリューションを行う(ステップS406)。このときのデコンボリューションのアルゴリズムは、任意の既存アルゴリズムを用いればよい。例えば、周波数空間上での除算、Lucy−Richardsonのアルゴリズム、Wienerフィルタを用いたアルゴリズム、正則化フィルタを用いたアルゴリズム等が挙げられる。この例では、開口パターンを制御することでh'(θ)の形状をコントロールし、周波数空間上での除算を行うものとする。デコンボリューションの詳細については後述する。
【0041】
デコンボリューションによってI(r,Θ)が得られるので、このI(r,Θ)を実空間表示I(x,y)に戻す(ステップS407)。この変換処理でも、実空間から極座標への変換と同様に補間処理が必要となる。
【0042】
その後、実空間に変換したデータをぶれ修復後のデータとして出力する(ステップS408)。
【0043】
以上述べたような処理により、不規則に変化させたシャッターの開閉によって得た画像について、その開口パターンとぶれ情報から、画像のぶれ修復処理を実現できる。このぶれ修復処理の原理を概念的に表したものが図5である。図5は、回転方向のぶれを極座標変換によって横方向のぶれに変換し、その横方向のぶれをデコンボリューションによって除去し、最後に実空間に戻して回転方向のぶれを修復する流れを示している。
【0044】
なお、この例では回転方向のぶれ修復処理を対象とするために極座標に変換して処理を適用したが、前述したように極座標に変換せずに処理を行うことで、水平垂直方向への所謂シフトぶれの補正も可能である。例えば、まず極座標への変換を行わない状態で水平垂直方向のぶれを修復した後に、前述の回転方向のぶれ修復処理を実行することが考えられる。
【0045】
<PSFの作成方法>
本実施形態では、動き情報検出回路426によって角度と時間の関係θ(t)を得ることができる。PSFの作成方法を図6のフローチャートを用いて説明する。まず、角度を時間で微分することにより、角速度ω(t)を算出する(ステップS601)。これをθ(t)と組み合わせることにより、角速度をθの関数で表すことができる。これをω(θ)とする。
【0046】
また、露光条件と角度から、シャッターの開閉情報(開口パターン)を表す関数h(t)についても同様にθの関数で表すことができる。これをh(θ)とする(ステップS602)。
【0047】
これらの情報から、下式(5)を算出し(ステップS603)、h'(θ)をPSFとして出力する(ステップS604)。式(3)より、これが極座標上でのPSFとなる。
【0048】
【数3】
【0049】
一般的な回転運動におけるPSFの例を図7に示す。図7において、横軸は角度(単位はラジアン)、縦軸はPSFの値を示す。このときの開口条件は、h(t)=1 (0≦t≦T) h(t)=0 elseであるとする。また、角速度は加速度運動をしているものとする。ω(θ)が増大していくので、PSF h'(θ)の値は減少する。
【0050】
<デコンボリューションの方法>
式(4)を周波数空間上に変換すると、下式(6)となる。(f,ρ)において、fはrの周波数変換に対応する変数であり、ρはΘの周波数変換に対応する変数である。
【0051】
【数4】
【0052】
H'(f,ρ)は既知なので、周波数空間上でI_blur(f,ρ)をH'(f、ρ)で割れば、I(f,ρ)を原理的に求めることができる。しかし、ここには問題がある。以下では、等角速度運動によるぶれを考え、ω(θ)を定数であるものとする。
【0053】
まず通常の露光条件であるh(t)=1 (0≦t≦T) h(t)=0 elseの場合を考えてみる。ここで、h(t)=1はシャッターが開いている状態を表し、h(t)=0はシャッターが閉じている状態を示す。このときのPSFの形状を図8(a)に、このPSFを周波数変換したものを図8(b)に示す。図8において、横軸は角度(単位はラジアン)、縦軸は図8(a)ではPSFの値、図8(b)ではH'(f,ρ)の絶対値を表す。図8(b)から、通常の露光条件の場合には、H'(f,ρ)の値が周期的に0になる点が現れることが分かる。これは、その周波数に該当する情報が失われてしまっていることを意味する。
【0054】
このような状態では、デコンボリューションした出力画像上に情報が失われた周波数に相当する部分にエラー(波形の模様)が生じる。このエラーを生じないようにするための技術が符号化開口である。例えば、シャッターの開閉を表す0と1の順序及び長さをランダムに変化させることで、PSFの周波数特性が0になることを防ぐことができる。このときのPSFの形状を図9(a)に、このPSFを周波数変換したものを図9(b)に示す。図9において、縦軸と横軸はそれぞれ図8と同様である。この場合、どの周波数でも情報が失われることはないので、H'(f,ρ)で除算することにより、理論的には完全にデコンボリューションを行うことが可能である。
【0055】
最後に、シミュレーションによって回転方向にぶれた画像を生成し、符号化開口を利用したぶれ修復処理を適用した結果を図10に模式的に示す。図10(a)がぶれた画像、図10(b)がぶれ修復処理の適用結果である。
【0056】
以上説明したように、符号化開口を応用したぶれ修復処理を適用することで、好適なぶれ修復結果を得ることができる。また、この処理に必要な情報は、開口パターンと動き情報、開口パターンに従って加算合成して生成したぶれ画像であることが分かる。
【0057】
次に、本発明の主眼である開口パターンの決定方法について説明する。本実施形態では、複数の周期性のない開口パターンをリストとして開口パターン保持手段によって保持しておき、その中から開口パターンを一つ選択することによって、撮影に使用する開口パターンを決定する。
【0058】
図11は、開口パターンのリストを示す図である。リストには、IDと開口パターンが登録されており、それぞれが一対一に関連付けられたテーブルのかたちとなっている。ここで、開口パターンの「1」はシャッターが開いている状態、「0」はシャッターが閉じている状態を示しており、リスト中のそれぞれの開口パターンは周期性を持たないように予め設計されている。
【0059】
ここで、周期性を持たないパターンとは、図9に示したように、PSFの周波数特性がゼロにならないようなパターンのことを意味する。この周期性を持たないような開口パターンの設計には、例えば、周期の非常に長いことで知られているメルセンヌ・ツイスタのような疑似乱数生成方法を用いることが考えられる。そして、生成された乱数が周期性を持たないことを検証した上で、リストへと登録する。もちろん、この開口パターンの設計方法には、必ずしも疑似乱数を用いる必要はなく、最終的に生成された開口パターンが周期性を持たないものになれば、任意の方法を用いてよい。また、周期性がないことの検証は、図9に示したように、PSFを周波数変換し、H'(f,ρ)の絶対値が、ゼロに落ちないことを確認することによって行えばよい。
【0060】
本実施形態では、撮影時に、露光条件生成回路427によって、この開口パターンのリストの中から、例えばランダムに一つを選択することで、撮影に使用する開口パターンを決定する。これが本発明でいう開口パターン決定手段による処理例である。
【0061】
撮影後の画像データに対するぶれ補正処理は、ぶれ修復回路428により、前述した図4のフローに従って行われる。ここで、ステップS402における露光条件として、撮影時に開口パターンのリストから選択された開口パターンが取得されることになる。
【0062】
以上の処理により、撮影時に、確実に周期性を持たない開口パターンを選択して使用することができるので、PSFの周波数特性が0になることを防ぐことができる。よって、ぶれ補正を行った際に、ぶれ補正画像の画質劣化を抑えることが可能となる。また、テーブル参照によって開口パターンを決定するので、疑似乱数等によって動的にパターンを決定するような従来の方法に比べて、計算コストを抑えることができる。
【0063】
(第2の実施形態)
第1の実施形態では、予め用意された周期性を持たない開口パターンのリストから一つを選択することによって、撮影に使用する開口パターンを決定する方法について述べた。本実施形態では、開口パターンを決定するための第二の方法について説明する。
【0064】
本実施形態では、図12に示すように、予め十分長い周期性のない開口パターンを用意し、その一部分をランダムに抜き出すことによって、撮影に使用する開口パターンを決定する。このように、周期性のないパターンの一部を抜き出すことによって生成されるパターンは、それ自身も必ず周期性を持たないので、確実に周期性のない開口パターンを使って撮影を行うことができるようになる。
【0065】
この十分長い周期性のない開口パターンを生成する方法に関しては、第1の実施形態で述べた、疑似乱数を使用する方法等が考えられる。本実施形態でも第1の実施形態と同様に、この開口パターンの生成には、必ずしも疑似乱数を用いる必要はなく、生成された開口パターンが周期性を持たないものになれば、任意の方法を用いてよい。また、この予め準備される長い開口パターンは、もちろん一つである必要はなく、第1の実施形態で示したようなリストの形で複数用意し、その中の一部分を使用する開口パターンとして抜き出すようにしてもよい。
【0066】
撮影後の画像データに対するぶれ補正処理は、第1の実施形態で説明した図4のフローに従って行われる。ここで、ステップS402における露光条件として、予め準備された十分長い周期性のないパターンの一部を抜き出すことによって決定された開口パターンが取得されることになる。
【0067】
以上の処理により、撮影時に、確実に周期性を持たない開口パターンを使用することができるので、PSFの周波数特性が0になることを防ぐことができる。よって、ぶれ補正を行った際に、ぶれ補正画像の画質劣化を抑えることが可能となる。また、疑似乱数等によって動的にパターンを決定するような従来の方法に比べて、計算コストを抑えることができる。
【0068】
(第3の実施形態)
第1の実施形態及び第2の実施形態では、開口パターンをランダムに一つ決定する方法について説明したが、例えば、これらの方法によって複数の候補を決定し、さらにその候補の中から撮影条件に従って最終的な開口パターンを決定するようにしてもよい。本実施形態では、このように開口パターンの候補が複数ある場合のパターンの決定方法について説明する。
【0069】
本実施形態では、撮影時の露光時間に従って、複数の開口パターンの候補の中から一つを決定する。この処理の詳細を、図13のフローチャートを用いて説明する。ステップS1301では、開口パターンの候補を複数選出する。これは、図14(a)に示すように、周期性のない十分長いパターンからランダムに複数のパターンを抜き出すことによって行ってもよい。或いは、図14(b)に示すように、周期性のないパターンが複数あり、それぞれから一部分をランダムに抜き出すことによって行ってもよい。また、第1の実施形態で説明したような開口パターンのリスト中の各エントリを複数の候補とみなしてもよい。
【0070】
ステップS1302では、ステップS1301で選出された開口パターンの候補のそれぞれに対して、パターンの平均値を算出する。これは、パターンの各ビットを足し合わせ、ビット長で割ることによって求める。つまり、この平均値は、もし全開口(パターンが全て1)の場合は1となり、全閉口(パターンが全て0)の場合は0となる。よって、ここで算出される平均値は、0から1の間に入ることになる。図14に示す例では、各候補の平均値を括弧中に示している。
【0071】
ステップS1303では、撮影時の露光時間を取得する。
【0072】
ステップS1304では、ステップS1303で取得した露光時間と、予め定められた露光時間の閾値とを比較する。もし、露光時間が閾値よりも小さければステップS1305へと進み、そうでなければステップS1306へと進む。
【0073】
ステップS1305では、ステップS1302で算出した開口パターンの各候補の平均値を比較し、その平均値が最大となるパターンを撮影に使用する開口パターンとして決定し、処理を終了する。
【0074】
一方、ステップS1306では、ステップS1302で算出した開口パターンの各候補の平均値を比較し、その平均値が最小となるパターンを撮影に使用する開口パターンとして決定し、処理を終了する。
【0075】
以上の処理により、開口パターンの候補が複数ある場合に、その中から適切な開口パターンを決定することができる。また、このように、露光条件に従って開口パターンをコントロールすることによって、全体の露光量を増加させることができ、ノイズを抑えたぶれ補正を行うことが可能となる。
【0076】
本実施形態では、露光条件に従って開口パターンをコントロールする方法について述べたが、他の撮影条件を使用しても同様の効果を得ることができるのは言うまでもない。例えば、ISO感度をパラメータとして開口パターンをコントロールしてもよい。ISO感度をパラメータとした場合には、高感度の際には、露出の多いパターン、つまり、平均値の大きいパターンを選ぶようにすることで同様の効果を得ることができる。
【0077】
(第4の実施形態)
本実施形態では、開口パターンの候補が複数ある場合のパターンの決定方法として、撮影条件である撮影モードに従って複数の開口パターンの候補の中から一つを決定する処理について説明する。
【0078】
一般的に、ポートレートモードで撮影されるポートレート写真においては、撮影画像中に平坦な部分が多く現れる。言い換えると、低周波成分を多く持つ画像となることが多い。このような場合に、全周波数領域において応答値を持つようなランダムノイズパターンの開口パターンを使って撮影及びぶれ補正を行うと、不必要な周波数成分を持つため、ぶれ補正画像のノイズが目立ってしまうという問題が生じる。本実施形態では、この問題の解決方法として、撮影モードに従って、開口パターンの選択をコントロールする方法について説明する。
【0079】
図15は、本実施形態における開口パターンの決定方法を示すフローチャートである。ステップS1501では、開口パターンの候補を複数選出する。これは、図14(a)に示すように、周期性のない十分長いパターンからランダムに複数のパターンを抜き出すことによって行ってもよい。或いは、図14(b)に示すように、周期性のないパターンが複数あり、それぞれから一部分をランダムに抜き出すことによって行ってもよい。また、第1の実施形態で説明したような開口パターンのリスト中の各エントリを複数の候補とみなしてもよい。
【0080】
ステップS1502では、テップS1501で選出された開口パターンの候補のそれぞれを周波数変換する。
【0081】
ステップS1503では、撮影モードを取得する。
【0082】
ステップS1504では、撮影モードがポートレートモードかどうかを判定する。もし、ポートレートモードならばステップS1505に進み、そうでなければステップS1506に進む。
【0083】
ステップS1505では、ステップS1502で周波数変換された開口パターンの各候補の中から、周波数特性がピンクノイズ特性に最も近いパターンを開口パターンとして決定し、処理を終了する。
【0084】
一方、ステップS1506では、ステップS1502で周波数変換された開口パターンの各候補の中から、周波数特性がランダムノイズ特性に最も近いパターンを開口パターンとして決定し、処理を終了する。
【0085】
以上の処理により、低周波成分の多く含まれるポートレート画像に対して、符号化開口処理によるぶれ補正を行う際に、ノイズの発生を低減させることができる。
【0086】
(第5の実施形態)
本実施形態では、開口パターンの候補が複数ある場合のパターンの決定方法として、撮影条件である撮影時のf値に従って複数の開口パターンの候補の中から一つを決定する処理について説明する。
【0087】
撮影時のf値が小さい場合、被写界深度が浅くなるため、f値が大きい場合に比べて画像中にぼけた部分が多く生じる。つまり、低周波成分をより多く持つ画像となることが多い。このような場合に、全周波数領域において応答値を持つようなランダムノイズパターンの開口パターンを使って撮影及びぶれ補正を行うと、不必要な周波数成分を持つため、ぶれ補正画像のノイズが目立ってしまうという問題が生じる。本実施形態では、この問題の解決方法として、撮影時のf値に従って、開口パターンの選択をコントロールする方法について説明する。
【0088】
図16は、本実施形態における開口パターンの決定方法を示すフローチャートである。ステップS1601では、開口パターンの候補を複数選出する。これは、図14(a)に示すように、周期性のない十分長いパターンからランダムに複数のパターンを抜き出すことによって行ってもよい。或いは、図14(b)に示すように、周期性のないパターンが複数あり、それぞれから一部分をランダムに抜き出すことによって行ってもよい。また、第1の実施形態で説明したような開口パターンのリスト中の各エントリを複数の候補とみなしてもよい。
【0089】
ステップS1602では、テップS1601で選出された開口パターンの候補のそれぞれを周波数変換する。
【0090】
ステップS1603では、設定されたf値を取得する。
【0091】
ステップS1604では、ステップS1603で取得したf値と閾値を比較する。もし、f値が閾値より小さければステップS1605に進み、そうでなければステップS1606に進む。
【0092】
ステップS1605では、ステップS1602で周波数変換された開口パターンの各候補の中から、周波数特性がピンクノイズ特性に最も近いパターンを開口パターンとして決定し、処理を終了する。
【0093】
一方、ステップS1606では、ステップS1602で周波数変換された開口パターンの各候補の中から、周波数特性がランダムノイズ特性に最も近いパターンを開口パターンとして決定し、処理を終了する。
【0094】
以上の処理により、絞りを開けた状態で撮影されたぼけの多く含まれる画像、つまり低周波成分の多く含まれる画像に対して、符号化開口処理によるぶれ補正を行う際に、ノイズの発生を低減させることができる。
【0095】
なお、本発明の目的は、前述した実施形態の機能またはフローチャートを実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給することによっても達成される。この場合、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。
【0096】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【特許請求の範囲】
【請求項1】
ぶれ検出手段を備えた撮像装置であって、
周期性のないシャッターの開口パターンを保持する開口パターン保持手段と、
前記開口パターン保持手段によって保持された開口パターンから開口パターンを決定する開口パターン決定手段と、
前記開口パターン決定手段によって決定された開口パターンを使用して撮影を行う撮影手段と、
前記ぶれ検出手段によって検出されたぶれ情報と、開口パターンから得られる点像関数の逆フィルタを撮影画像に適用することでぶれ修復した画像を得るぶれ修復正手段とを備えることを特徴とする撮像装置。
【請求項2】
前記開口パターン保持手段は開口パターンのリストを保持し、
前記開口パターン決定手段は、前記開口パターンのリストから開口パターンを選択することによって開口パターンを決定することを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記パターン決定手段は、前記開口パターン保持手段によって保持された開口パターンの一部を抜き出すことによって開口パターンを決定することを特徴とする請求項1に記載の撮像装置。
【請求項4】
撮影条件を取得する撮影条件取得手段をさらに備え、
前記開口パターン決定手段は、前記撮影条件に従って開口パターンを決定することを特徴とする請求項1に記載の撮像装置。
【請求項5】
前記撮影条件は、露光時間であることを特徴とする請求項4に記載の撮像装置。
【請求項6】
前記撮影条件は、撮影モードであることを特徴とする請求項4に記載の撮像装置。
【請求項7】
前記撮影モードがポートレートモードの際にピンクノイズ特性に最も近い周波数特性を持つ開口パターンを決定することを特徴とする請求項6に記載の撮像装置。
【請求項8】
前記撮影条件は、f値であることを特徴とする請求項4に記載の撮像装置。
【請求項9】
ぶれ検出手段を備えた撮像装置によるぶれ修復方法であって、
開口パターン保持手段によって予め保持された周期性のないシャッターの開口パターンから開口パターンを決定するステップと、
前記決定された開口パターンを使用して撮影を行うステップと、
前記ぶれ検出手段によって検出されたぶれ情報と、開口パターンから得られる点像関数の逆フィルタを撮影画像に適用することでぶれ修復した画像を得るステップとを有することを特徴とする撮像装置によるぶれ修復方法。
【請求項10】
ぶれ検出手段を備えた撮像装置を制御するためのプログラムであって、
周期性のないシャッターの開口パターンを保持する開口パターン保持手段と、
前記開口パターン保持手段によって保持された開口パターンから開口パターンを決定するパターン決定手段と、
前記パターン決定手段によって決定された開口パターンを使用して撮影を行う撮影手段と、
前記ぶれ検出手段によって検出されたぶれ情報と、開口パターンから得られる点像関数の逆フィルタを撮影画像に適用することでぶれ修復した画像を得るぶれ修復正手段としてコンピュータを機能させるためのプログラム。
【請求項1】
ぶれ検出手段を備えた撮像装置であって、
周期性のないシャッターの開口パターンを保持する開口パターン保持手段と、
前記開口パターン保持手段によって保持された開口パターンから開口パターンを決定する開口パターン決定手段と、
前記開口パターン決定手段によって決定された開口パターンを使用して撮影を行う撮影手段と、
前記ぶれ検出手段によって検出されたぶれ情報と、開口パターンから得られる点像関数の逆フィルタを撮影画像に適用することでぶれ修復した画像を得るぶれ修復正手段とを備えることを特徴とする撮像装置。
【請求項2】
前記開口パターン保持手段は開口パターンのリストを保持し、
前記開口パターン決定手段は、前記開口パターンのリストから開口パターンを選択することによって開口パターンを決定することを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記パターン決定手段は、前記開口パターン保持手段によって保持された開口パターンの一部を抜き出すことによって開口パターンを決定することを特徴とする請求項1に記載の撮像装置。
【請求項4】
撮影条件を取得する撮影条件取得手段をさらに備え、
前記開口パターン決定手段は、前記撮影条件に従って開口パターンを決定することを特徴とする請求項1に記載の撮像装置。
【請求項5】
前記撮影条件は、露光時間であることを特徴とする請求項4に記載の撮像装置。
【請求項6】
前記撮影条件は、撮影モードであることを特徴とする請求項4に記載の撮像装置。
【請求項7】
前記撮影モードがポートレートモードの際にピンクノイズ特性に最も近い周波数特性を持つ開口パターンを決定することを特徴とする請求項6に記載の撮像装置。
【請求項8】
前記撮影条件は、f値であることを特徴とする請求項4に記載の撮像装置。
【請求項9】
ぶれ検出手段を備えた撮像装置によるぶれ修復方法であって、
開口パターン保持手段によって予め保持された周期性のないシャッターの開口パターンから開口パターンを決定するステップと、
前記決定された開口パターンを使用して撮影を行うステップと、
前記ぶれ検出手段によって検出されたぶれ情報と、開口パターンから得られる点像関数の逆フィルタを撮影画像に適用することでぶれ修復した画像を得るステップとを有することを特徴とする撮像装置によるぶれ修復方法。
【請求項10】
ぶれ検出手段を備えた撮像装置を制御するためのプログラムであって、
周期性のないシャッターの開口パターンを保持する開口パターン保持手段と、
前記開口パターン保持手段によって保持された開口パターンから開口パターンを決定するパターン決定手段と、
前記パターン決定手段によって決定された開口パターンを使用して撮影を行う撮影手段と、
前記ぶれ検出手段によって検出されたぶれ情報と、開口パターンから得られる点像関数の逆フィルタを撮影画像に適用することでぶれ修復した画像を得るぶれ修復正手段としてコンピュータを機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2010−273032(P2010−273032A)
【公開日】平成22年12月2日(2010.12.2)
【国際特許分類】
【出願番号】特願2009−122234(P2009−122234)
【出願日】平成21年5月20日(2009.5.20)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年12月2日(2010.12.2)
【国際特許分類】
【出願日】平成21年5月20日(2009.5.20)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]