(57)【特許請求の範囲】
【請求項１】
光学レンズが設けられる筺体、
前記筺体に設けられ、前記光学レンズを通して被写体の光学像が照射される撮像面を有する、撮像素子、
前記筺体の回転角を繰り返し計測する計測手段、
前記撮像面および当該撮像面に照射される光学像の間の位置関係の変化を前記計測手段の計測結果に基づいて前記光学レンズおよび前記撮像素子の少なくとも１つを変位させることにより抑制する抑制手段、
前記計測手段の計測結果が前記撮像面に照射された光学像の画角との間で角度条件を満足する度に前記撮像素子に対して露光処理を施す露光手段、
前記露光手段の１回の露光処理が終了してから次回の露光処理が開始されるまでの期間に渡って前記抑制手段を無効化する第１無効化手段、
前記第１無効化手段によって前記抑制手段が無効化されている期間に、前記抑制手段が変位させる対象を、次回の露光期間に前記抑制手段で抑制可能な変化の最大量が増大する向きに移動させておく、移動手段、および
前記露光手段の露光処理によって前記撮像面で生成された被写体像をメモリに取り込む取り込み手段を備える、ディジタルカメラ。
【請求項２】
前記計測手段は、
前記筺体の角速度を検出する検出手段、および
前記露光手段による前回の露光処理の開始時点からの回転角を前記検出手段の検出結果に基づいて算出する第１算出手段を含む、請求項１記載のディジタルカメラ。
【請求項３】
前記光学レンズおよび前記撮像素子の少なくとも１つの位置を変位させる変位手段をさらに備え、
前記抑制手段は、前記計測手段の計測結果に基づいて前記変位手段を制御して、前記撮像素子を前記光学像の動きに追従させる、請求項１または２記載のディジタルカメラ。
【請求項４】
前記移動手段は、前記第１無効化手段によって前記抑制手段が無効化されている期間に前記変位手段を制御して、前記光学レンズおよび前記撮像素子の少なくとも１つを前記筺体に対して先行させる先行手段を含む、請求項３記載のディジタルカメラ。
【請求項５】
前記露光手段による１回の露光処理の露光期間と対応する前記筺体の回転角の半値を前記検出手段の検出結果に基づいて算出する第２算出手段をさらに備え、
前記先行手段は前記筺体に対する前記光学レンズおよび前記撮像素子の少なくとも１つの位置を前記第２算出手段の算出結果と対応する距離だけ先行させる、請求項４記載のディジタルカメラ。
【請求項６】
前記第２算出手段の算出結果が前記変位手段の最大変位と対応する最大回転角を上回るとき前記先行手段を無効化する第２無効化手段、および
前記第２無効化手段の無効化処理に応答してユーザへの報知処理を実行する報知手段をさらに備える、請求項５記載のディジタルカメラ。
【請求項７】
前記角度条件は、
前記第２無効化手段によって前記先行手段が無効化されていない期間にあっては、前記第１算出手段の算出結果が前記画角から前記第２算出手段の算出結果を減じた値に到達するという条件であり、
前記第２無効化手段によって前記先行手段が無効化されている期間にあっては、前記第１算出手段の算出結果が前記画角と一致するという条件である、請求項６記載のディジタルカメラ。
【請求項８】
前記メモリに格納された複数の被写体像を互いに結合して単一のパノラマ被写体像を作成する作成手段をさらに備える、請求項１ないし７のいずれかに記載のディジタルカメラ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ディジタルカメラに関し、特にたとえば、軸の周りを回転しつつ繰り返し露光を行い、得られた複数の被写界像を互いに結合して単一のパノラマ被写界像を作成する、ディジタルカメラに関する。
【背景技術】
【０００２】
この種の装置の一例が、特許文献１に開示されている。この背景技術では、前回の露光開始時点から現時点までの回転角を計測し、この計測された回転角が既定の回転角と等しければ撮影を実行する。または、計測回転角が既定回転角と等しいとき、ユーザへの通知を行う。これによって、パノラマ撮影に関し、効率および精度の双方の向上を図ろうとしている。
【特許文献１】特開２０００−３０５２０７号公報［G03B 37/00, 15/00, 15/08, 17/18］
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、背景技術では、パノラマ撮影中、露光の度にカメラを静止させる必要がある。そうしなければ、回転ブレが生じるからである。このため、依然として、パノラマ撮影には時間と手間がかかる。
【０００４】
それゆえに、この発明の主たる目的は、新規な、ディジタルカメラを提供することである。
【０００５】
この発明の他の目的は、高精度のパノラマ撮影を効率よく行える、ディジタルカメラを提供することである。
【課題を解決するための手段】
【０００６】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために後述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。
【０００７】
第１の発明に従うディジタルカメラは、光学レンズが設けられる筺体、筺体に設けられ光学レンズを通して被写体の光学像が照射される撮像面を有する撮像素子、筺体の回転角を繰り返し計測する計測手段、撮像面および当該撮像面に照射される光学像の間の位置関係の変化を計測手段の計測結果に基づいて光学レンズおよび撮像素子の少なくとも１つを変位させることにより抑制する抑制手段、計測手段の計測結果が撮像面に照射される光学像の画角との間で角度条件を満足する度に撮像素子に対して露光処理を施す露光手段、露光手段の１回の露光処理が終了してから次回の露光処理が開始されるまでの期間に渡って抑制手段を無効化する第１無効化手段、第１無効化手段によって抑制手段が無効化されている期間に、当該抑制手段が変位させる対象を次回の露光期間に抑制可能な変化の最大量が増大する向きに移動させておく、移動手段、および露光手段の露光処理によって撮像面で生成された被写体像をメモリに取り込む取り込み手段を備える。
【０００８】
第１の発明では、ディジタルカメラ（１０）の筺体（１０Ａ）に光学レンズ（１２）および撮像素子（１４）が設けられる。撮像素子の撮像面（１４ｆ）には、光学レンズを通して被写界の光学像が照射される。
【０００９】
ディジタルカメラの筺体（１０Ａ）が回転されると、計測手段（Ｓ９１，Ｓ９３，３６）は、筺体の回転角（ｐ）を繰り返し計測する計測処理を開始する。抑制手段（Ｓ１，Ｓ７１，Ｓ７７）は、撮像面および光学像の間の位置関係の回転による変化を計測手段の計測結果に基づいて光学レンズおよび撮像素子の少なくとも１つを変位させることにより抑制する。露光手段（Ｓ４１，Ｓ５７，３４）は、計測手段の計測結果が撮像面上の光学像の画角（Ｐ）との間で角度条件を満足する度に、撮像素子に対して露光処理を施す。抑制手段は、露光手段の１回の露光処理が終了してから次回の露光処理が開始されるまでの期間に渡って、第１無効化手段（Ｓ６１）により無効化される。移動手段（Ｓ６５，Ｓ６７）は、第１無効化手段によって抑制手段が無効化されている期間に、当該抑制手段が変位させる対象を次回の露光期間に抑制可能な変化の最大量が増大する向きに移動させておく。
【００１０】
露光手段の露光処理によって撮像面で生成された被写界像は、取り込み手段（１８）によってメモリ（２０）に取り込まれる。なお、こうしてメモリに格納された複数の被写界像は互いに結合され、これにより単一のパノラマ被写界像が作成される。
【００１１】
第１の発明によれば、回転角が画角との間で角度条件を満足する度に露光処理が実行されるので、精度の高いパノラマ被写体像の作成が可能となる。また、撮像面および光学像の間の位置関係の変化が抑制手段により抑制されるので、露光の度に回転を止める必要がない。
また、筐体の回転による被写体像のブレ（回転ブレ）は、筐体の角速度が速いほど、また撮像素子への露光時間が長いほど大きくなるので、回転ブレを抑えるには、露光時間を短くするか、角速度を遅くする必要があるが、第１の発明によれば、抑制手段を１回の露光処理が終了してから次回の露光処理が開始されるまでの期間に渡って無効化し、こうして抑制手段が無効化されている期間に、当該抑制手段が変位させる対象を、次回の露光期間に抑制可能な変化の最大量が増大する向きに移動させておくので、角速度および露光時間の少なくとも一方の許容度が大きくなる。
【００１２】
第２の発明に従うディジタルカメラは、第１の発明に従属し、計測手段は、筺体の角速度を検出する検出手段、および露光手段による前回の露光処理の開始時点からの回転角を検出手段の検出結果に基づいて算出する第１算出手段を含む。
【００１３】
第２の発明では、回転角の計測にあたって、検出手段（Ｓ９１，３６）が筺体の角速度（ｗ）を検出する。第１算出手段（Ｓ９３）は、検出手段の検出結果に基づいて、露光手段による前回の露光処理の開始時点からの回転角を算出する。
【００１４】
第３の発明に従うディジタルカメラは、第１または第２の発明に従属し、光学レンズおよび撮像素子の少なくとも１つの位置を変位させる変位手段をさらに備え、抑制手段は、計測手段の計測結果に基づいて変位手段を制御して、撮像素子を光学像の動きに追従させる。
【００１５】
第３の発明では、変位手段（３８）が、計測手段の計測結果に基づいて、光学レンズおよび撮像素子の少なくとも１つの位置を変位させる。抑制手段は、撮像素子が光学像の動きに追従するように、変位手段を制御する。
【００１６】
第４の発明に従うディジタルカメラは、第３の発明に従属し、移動手段は、第１無効化手段によって抑制手段が無効化されている期間に変位手段を制御して光学レンズおよび撮像素子の少なくとも１つを筺体に対して先行させる先行手段を含む。
【００１７】
第４の発明では、先行手段（Ｓ６５，Ｓ６７）は、こうして抑制手段が無効化されている期間に、筺体に対して光学レンズおよび撮像素子の少なくとも１つを先行させる先行処理を実行する。
【００１８】
第４の発明によれば、角速度および露光時間の少なくとも一方の許容度が大きくなる。
【００１９】
第５の発明に従うディジタルカメラは、第４の発明に従属し、露光手段による１回の露光処理の露光期間と対応する筺体の回転角の半値を検出手段の検出結果に基づいて算出する第２算出手段をさらに備え、先行手段は光学レンズおよび撮像素子の少なくとも１つの位置を第２算出手段の算出結果と対応する距離だけ先行させる。
【００２０】
第５の発明では、第２算出手段（Ｓ９５）が、露光手段による１回の露光処理の露光期間（Ｔ）と対応する筺体の回転角の半値（ｓ＝ｗ＊Ｔ／２）を、検出手段の検出結果（ｗ）に基づいて算出する。先行手段は、光学レンズおよび撮像素子の少なくとも１つの位置を、第２算出手段の算出結果（ｓ）と対応する距離（ｍ）だけ先行させる。
【００２１】
なお、上記の値ｓに、回転揺らぎに相当する値を加算しておいてもよい。すなわち、ｓ＝ｗ＊Ｔ／２＋α。もしくは、ｓ＝ｗ＊Ｔ／（２−β）（ただしβ≪１）。
【００２２】
第５の発明によれば、露光期間に筺体が回転する回転角の半値に対応する距離だけ光学レンズおよび撮像素子の少なくとも１つを先行させることで、抑制手段で抑制可能な変化の最大量が２倍に増大する結果、角速度または露光時間の許容度は、先行処理を実行しないときの約２倍となる。なお、先行角が大きければ大きいほど、許容度は増すが、撮像素子の光軸（ｚ）と光学レンズの光軸（Ｚ）との間のズレも大きくなるために、光学像が撮像面に対して傾斜して画質が劣化する。この点、先行角を露光期間での回転角の半値とすれば、露光期間に渡って位置関係の変化を抑制しながら、光軸ズレによる画質劣化の最大値を極力小さくすることができる。
【００２３】
第６の発明に従うディジタルカメラは、第５の発明に従属し、第２算出手段の算出結果が変位手段の最大変位と対応する最大回転角を上回るとき先行手段を無効化する第２無効化手段、および第２無効化手段の無効化処理に応答してユーザへの報知処理を実行する報知手段をさらに備える。
【００２４】
第６の発明では、先行手段は、第２算出手段の算出結果（ｓ）が変位手段の最大変位（Ｄ）と対応する最大回転角（Ｓ）を上回るとき（ｓ＞Ｓ）、第２無効化手段（Ｓ６３）によって無効化される。これに応答して、ユーザへの報知処理が報知手段（Ｓ７５，Ｓ１２３，Ｓ１２５）によって実行される。
【００２５】
第６の発明によれば、筺体の角速度が許容度を超えたときには、先行処理は実行されず、代わりに報知がなされるので、ユーザは回転動作を中断して露光を行うことができる。
【００２６】
第７の発明に従うディジタルカメラは、第６の発明に従属し、角度条件は、第２無効化手段によって先行手段が無効化されていない期間にあっては、第１算出手段の算出結果が画角から第２算出手段の算出結果を減じた値に到達するという条件であり、第２無効化手段によって先行手段が無効化されている期間にあっては、第１算出手段の算出結果が画角と一致するという条件である。
【００２７】
第７の発明によれば、角速度（ｗ）が許容度を超えていなければ、撮像素子は第２算出手段の算出結果（ｓ）と対応する距離（ｍ）だけ先行され、撮像素子への露光は回転角（ｐ）が画角（Ｐ）よりも第２算出手段の算出結果（ｓ）だけ小さい値に到達したとき（ｐ≧Ｐ−ｓ）開始されるので、抑制処理による被写界像の歪みを極力小さくできる。一方、角速度が許容度を超えていれば、先行処理に代えて報知処理が実行され、露光処理は、この報知処理の後に回転角（ｐ）が画角（Ｐ）と一致したとき（ｐ＝Ｐ）実行される。
【００２８】
第８の発明に従うディジタルカメラは、第１ないし第７のいずれかの発明に従属し、メモリに格納された複数の被写界像を互いに結合して単一のパノラマ被写界像を作成する作成手段をさらに備える。
【００２９】
第８の発明では、作成手段（Ｓ１９）が、メモリに格納された複数の被写界像を互いに結合して、単一のパノラマ被写界像を作成する。
【発明の効果】
【００３０】
この発明によれば、露光の度に回転を止める必要がなくなるので、高精度のパノラマ撮影を効率よく行うことができる。
【００３１】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００３２】
図１を参照して、この実施例のディジタルカメラ１０は、イメージセンサ１４を含む。被写界の光学像は、光学レンズ１２を通してイメージセンサ１４の受光面つまり撮像面１４ｆに照射され、撮像面１４ｆでは、光電変換によって被写体の光学像に対応する電荷つまり生画像信号が生成される。
【００３３】
被写体のリアルタイム動画像つまりスルー画像をＬＣＤモニタ２４に表示するとき、ＣＰＵ３２は、プリ露光および間引き読み出しの繰り返しをドライバ３４に命令する。ドライバ３４は、イメージセンサ１４のプリ露光とこれによって生成された生画像信号の間引き読み出しとを繰り返し実行する。イメージセンサ１４からは、被写体の光学像に対応する低解像度の生画像信号が出力される。
【００３４】
出力された生画像信号は、カメラ処理回路１６によってＡ／Ｄ変換，ＹＵＶ変換等の一連の処理を施され、これによってＹＵＶ形式に従うディジタル信号である画像データが生成される。生成された画像データはメモリ制御回路１８によってＳＤＲＡＭ２０に書き込まれ、その後同じメモリ制御回路１８によって読み出される。ＬＣＤドライバ２２は、メモリ制御回路１８によって読み出された画像データでＬＣＤモニタ２４を駆動し、この結果、被写体のスルー画像がモニタ画面に表示される。
【００３５】
カメラ処理回路１６によって生成された画像データのうちＹデータはまた、露光制御のためにＣＰＵ３２に与えられる。ＣＰＵ３２は、与えられたＹデータを積算することによって輝度評価値を生成する。生成された輝度評価値は、輝度メモリＲ１に書き込まれる。なお、輝度メモリＲ１（および角速度メモリＲ２:後述）は、図１ではＣＰＵ３２に内蔵されているが、ＣＰＵ３２の外部に設けられてもよい。
【００３６】
ＣＰＵ３２は、ドライバ３４に設定されたプリ露光時間を輝度メモリＲ１のデータに基づいて調整する。このような露光制御によって、ＬＣＤモニタ２４から出力されるスルー画像の明るさが調整される。
【００３７】
また、ディジタルカメラ１０は、ジャイロセンサ３６をさらに含む。ジャイロセンサ３６は、ディジタルカメラ１０の角速度を繰り返し検出し、検出結果を示す角速度データをＣＰＵ３２に与える。ＣＰＵ３２は、与えられた角速度データを角速度メモリＲ２に書き込む。
【００３８】
ここで図２を参照して、ディジタルカメラ１０は筺体１０Ａを有する。イメージセンサ１４は筺体１０Ａの内部に設けられ、光学レンズ１２は、筺体１０Ａの前面に形成された開口部に装着される。この実施例では、筺体１０Ａに関し、その天地方向（撮像面１４ｆの短辺方向）を“Ｘ”方向とし、その左右方向（撮像面１４ｆの長辺方向）を“Ｙ”方向とし、そしてＸ方向およびＹ方向の各々と垂直な方向を“Ｚ方向”とする。この定義に従えば、Ｚ方向は、図３に示すように、光学レンズ１２の光軸方向と一致する。
【００３９】
そして、ジャイロセンサ３６は、Ｘ方向に沿うＸ軸の周りの角速度およびＹ方向に沿うＹ軸の周りの角速度をそれぞれ検出する２軸センサである。したがって、ジャイロセンサ３６の検出結果には、Ｘ軸周りの角速度成分およびＹ軸周りの角速度成分の２つの成分が含まれる。
【００４０】
一方、イメージセンサ１４は、アクチュエータ３８によって、その撮像面１４ｆと平行な単一の面内で任意の方向に移動可能に支持される。ＣＰＵ３２は、角速度メモリＲ２に格納されたデータに基づいて、Ｘ方向の手ブレ補正量（ｄＸ）およびＹ方向の手ブレ補正量（ｄＹ）をそれぞれ算出する。そしてアクチュエータ３８を制御して、イメージセンサ１４をＸ方向およびＹ方向にそれぞれｄＸおよびｄＹだけ移動させる。
【００４１】
これによって、手ブレの影響で撮像面１４ｆ上の光学像が変位しても、光学像の変位に撮像面１４ｆが追従する結果となり、スルー画像のぼやけが抑制される。そして、このような手ブレ補正処理は、スルー撮影時だけでなく、パノラマ撮影時にも実行される。
【００４２】
パノラマ撮影を行うとき、ユーザは、図２に示すように、ディジタルカメラ１０をＸ軸の周りに回転させる。ディジタルカメラ１０は、回転中、本露光処理を繰り返し実行する。これによって、図４に示すように、円周方向に連続する複数の被写界（Ｅ０，Ｅ１，Ｅ２…）が順次撮影される。こうして得られる一連の被写界像は、前述と同様の手ブレ補正処理の結果、回転ブレによるぼやけが抑制されている。回転後、ディジタルカメラ１０は、得られた複数の被写界像を互いに結合し、単一のパノラマ被写界像として記録する。
【００４３】
より詳しくは、ユーザは最初、光学レンズ１２の光軸つまりＺ軸を一連の被写界Ｅ０，Ｅ１，Ｅ２…のうち先頭の被写界Ｅ０の中心に向け、シャッタボタン４２を半押しする。ディジタルカメラ１０のＣＰＵ３２は、半押し操作に応答してパノラマ撮影用の露光制御処理を実行する。具体的には、輝度メモリＲ１のデータに基づいてパノラマ撮影用の最適露光時間（Ｔ）を算出し、結果をドライバ３４に設定する。
【００４４】
ユーザはその後、半押し状態にあるシャッタボタン４２をさらに全押し、そして全押し状態を維持したまま回転動作を開始する。ＣＰＵ３２は、全押し操作に応答してまず１回目の露光処理を実行する。
【００４５】
１回目の露光処理では、ＣＰＵ３２は、本露光と、これにより生成された全電荷の読み出しとをドライバ３４に命令する。イメージセンサ１４は、最適露光時間Ｔに従う本露光を施され、これによって生成された全電荷つまり高解像度の生画像信号がイメージセンサ１４から出力される。出力された生画像信号は、カメラ処理回路１６によってＹＵＶ形式の画像データに変換される。変換された画像データ、つまり被写界Ｅ０に対応する画像データは、メモリ制御回路１８を通してＳＤＲＡＭ２０に書き込まれる。
【００４６】
画像データの書込みが完了すると、ＣＰＵ３２は、手ブレ補正処理を停止し、そしてアクチュエータ３８を介してイメージセンサ１４を角度“ｓ”だけ先行させる。このセンサ先行処理は、次の手順で実行される。
【００４７】
すなわち、最初、角速度メモリＲ２からＸ軸周りの角速度（ｗ）を取得する。次に、この角速度ｗと、先にドライバ３４にセットされた露光時間Ｔとに基づいて、次式（１）によりセンサ先行角ｓを算出する。
【００４８】
ｓ＝ｗ＊Ｔ／２  …（１）
こうして算出されるセンサ先行角ｓは、露光時間Ｔに対応する回転角つまりｗ＊Ｔの半分の値である（図５参照）。次に、センサ先行角ｓに対応するセンサ先行距離ｍを次式（２）により算出する。
【００４９】
ｍ＝ｆ＊ｔａｎ（ｓ）  …（２）
ここでｆは、光学レンズ１２の焦点距離である（図３参照）。
【００５０】
そして、アクチュエータ３８を制御して、イメージセンサ１４をＹ方向に距離“ｍ”だけ移動させる。これによって、イメージセンサ１４の光軸ｚは、光学レンズ１２の光軸であるＺ軸に対して角度“ｓ”だけ先行する結果となる（図６（Ａ）参照）。その後、２回目の本露光が開始されるまでの期間、光軸ｚおよびＺ軸は、角度“ｓ”の間隔を保ったまま共通の角速度（ｗ）で回転する（図６（Ｂ）参照）。なお、角速度ｗは、人の手による回転なので、時々刻々変化する。
【００５１】
また、ＣＰＵ３２は、Ｚ軸の回転角（ｐ）を繰り返し算出する。ここで回転角ｐは、図５に示すように、露光開始時のＺ軸位置を起点とする回転角である。ＣＰＵ３２は、具体的には、本露光の開始時に、時間を示す変数ｔおよび回転角を示す変数ｐの各々をリセットし（ｔ＝０，ｐ＝０）、以降、角速度ｗを取得する度に、次式（３）によって変数ｐを更新する。
【００５２】
ｐ＝ｐ＋ｗ＊Δｔ  …（３）
ここでΔｔは、角速度を取得する周期（たとえば１／１００秒）である。こうして、ｗ＊Δｔを積算していくことで、本露光開始からの回転角ｐが得られる。
【００５３】
ＣＰＵ３２は、回転角ｐが次式（４）を満足したタイミングで、手ブレ補正タスクを再起動し、そして２回目の本露光処理を実行する。
【００５４】
ｐ≧Ｐ−ｓ  …（４）
ここでＰは、１回の露光処理で撮影可能な被写界（Ｅ０，Ｅ１，…）のＹ方向の画角であり、“パノラマ回転角”と呼ぶ（図３参照）。パノラマ回転角Ｐは、光学レンズ１２の焦点距離（ｆ）および撮像面１４ｆのＹ方向の長さ（Ｗ）に基づいて、次式（５）により算出される。
【００５５】
Ｐ＝ａｒｃｔａｎ（Ｗ／ｆ）  …（５）
手ブレ補正タスクを再起動したことで、Ｚ軸の前方を共通の角速度ｗで回転していた光軸ｚは、２回目の露光開始に伴って先行処理が停止され、その結果、回転速度が“０”となる（すなわち撮像素子１４の光軸ｚが被写界に対して静止する：図６（Ｃ）参照）。このとき、変数ｔおよび変数ｐの各々はリセットされる。２回目の露光処理は、手ブレ補正タスクと並行して、前述した１回目の露光処理と同様に実行される。露光処理中、光軸ｚの回転速度は、２回目の露光処理が完了するまでの期間、手ブレ補正処理によってゼロに維持される（すなわち光軸ｚが被写界に対して静止した状態が維持される：図６（Ｄ），図７（Ａ）および図７（Ｂ）参照）。
【００５６】
すなわち、走行中の自動車など動いている被写体を撮影する際に行われる、いわゆる“流し撮り”と同様の原理によって、露光処理中、イメージセンサ１４が被写界Ｅ１に対して静止するので、回転を止めることなく露光を行いながら、回転ブレのない被写界像が得られる。
【００５７】
２回目の露光処理が終了すると、手ブレ補正タスクは再び停止され、前述と同様のセンサ先行処理が実行される。これによって、光軸ｚは、Ｚ軸に対して角度“ｓ”だけ先行し、３回目の本露光処理が開始されるまでの期間、Ｚ軸と角度“ｓ”の間隔を保ったまま共通の角速度ｗで回転する結果となる（図７（Ｃ）参照）。
【００５８】
ＣＰＵ３２はその後、得られた被写界Ｅ１に対応する画像データをメモリ制御回路１８を通してＳＤＲＡＭ２０にさらに書き込む。
【００５９】
以降、終了条件が満足されるまで、具体的には、シャッタ操作が解除されるか、あるいは本露光の連続実行回数が既定値（たとえば“５”）に達するまで、上記と同様の処理が繰り返される。
【００６０】
したがって、静止状態で実行される１回目の露光処理では、手ブレによるぼやけが抑制された被写界像が得られ、回転状態で実行される２回目以降の露光処理では、手ブレおよび回転ブレの各々によるぼやけが抑制された被写界像が得られる。
【００６１】
また、２回目以降の露光処理では、露光開始前にイメージセンサ１４の光軸ｚをＺ軸よりも先行させたため、角速度ｗ（および／または露光時間Ｔ）の許容度が大きくなっている。特に、先行角を“ｓ”としたことで、許容度は２倍となる。さらに、先行角を“ｓ”として、回転角ｐが“Ｐ−ｓ”に到達したとき露光処理を開始することで、手ブレ補正処理による被写界像の歪みを極力抑制できる。
【００６２】
ただし、ユーザの回転動作が速すぎれば、上記の手ブレ補正処理では回転の影響を打ち消しきれなくなる。そこでＣＰＵ３２は、上式（１）で算出されるセンサ先行角ｓが次式（６）を満足するとき、センサ先行処理を停止する。
【００６３】
ｓ≦Ｓ  …（６）
ここでＳは、図３に示すように、Ｘ軸周りの補正可能角度であり、具体的には、イメージセンサ１４のＹ方向に関する最大移動距離（補正可能距離）を“Ｄ”として、次式（７）で与えられる。
【００６４】
Ｓ＝ａｒｃｔａｎ（Ｄ／ｆ）  …（７）
センサ先行処理の停止に伴い、ＣＰＵ３２は、ＬＣＤドライバ２２を制御して警告／誘導画面（図示せず）をスルー画像上に表示する。警告／案内画面には、回転動作が速すぎる旨の警告と、“ｐ＝Ｐ”となる位置でディジタルカメラ１０の回転を停止させるための案内（たとえば撮影すべき被写界の中心を示すグラフィックなど）とが含まれる。
【００６５】
シャッタ操作が解除されるか、本露光処理の連続実行回数が規定値に達すると、ＣＰＵ３２は、ＳＤＲＡＭ２０に格納された複数の被写界像をメモリ制御回路１８を制御して互いに結合する。次に、得られた単一のパノラマ被写界像に対応する画像データの圧縮処理をＪＰＥＧコーデック２６に命令する。ＪＰＥＧコーデック２６は、メモリ制御回路１８を通してＳＤＲＡＭ２０から対応画像データを読み出し、読み出された画像データにＪＰＥＧ圧縮を施す。これにより生成された圧縮画像データは、メモリ制御回路１８を通してＳＤＲＡＭ２０に書き込まれる。ＪＰＥＧ圧縮が完了すると、ＣＰＵ３２は、メモリ制御回路１８を通してＳＤＲＡＭ２０から圧縮画像データを読み出し、読み出された圧縮画像データを含む画像ファイルをＩ／Ｆ２８を通して記録媒体３０に記録する。
【００６６】
以上のようなＣＰＵ３２の処理は、図８〜図１３のフローに従って実行される。具体的には、ＣＰＵ３２は、図８〜図１０に示すメインタスクと、図１１に示す回転角（ｐ）／先行角（ｓ）算出タスクと、図１２に示す手ブレ補正タスクと、図１３に示す表示制御タスクとを実行する。パノラマ撮影モードがオンされると、まずメインタスクが起動され、その後、回転角（ｐ）／先行角（ｓ）算出タスク，手ブレ補正タスクおよび表示制御タスクがメインタスクによって起動される。
【００６７】
なお、ＣＰＵ３２は、μＩＴＲＯＮなどのマルチタスクＯＳの制御下で、これらのタスクを含む複数のタスクを並列的に実行することができる。また、これらのフロー図に対応するプログラムは、フラッシュメモリ４０に格納されている。
【００６８】
まず図８を参照して、メインタスクが起動されると、ＣＰＵ３２は最初、ステップＳ１およびＳ３で手ブレ補正タスクおよび表示制御タスクをそれぞれ起動し、そしてステップＳ５でスルー撮影命令を発行する。この命令に応じ、前述のようなスルー撮影処理が開始され、被写体のスルー画像がモニタ画面に表示される。また、輝度メモリＲ１への輝度評価値の書き込み処理も開始される。
【００６９】
続くステップＳ７では、シャッタボタン４２が半押しされたか否かを判別し、判別結果が否定的（ＮＯ）であれば、ステップＳ９でスルー撮影用の露光調整を行う。具体的には、ドライバ３４に設定されたプリ露光時間を、輝度メモリＲ１に格納された輝度評価値に基づいて調整する。その後、ステップＳ７に戻る。
【００７０】
ステップＳ７の判別結果が肯定的（ＹＥＳ）になると、ステップＳ１１に移って、パノラマ撮影用の露光調整を行い、得られた最適露光時間（Ｔ）をドライバ３４に設定する。その後、ステップＳ１３およびＳ１５のループに入って、半押し状態のシャッタボタン４２が全押しされるか、あるいは半押し操作が解除されるのを待つ。
【００７１】
半押し操作が解除されると、ステップＳ１５でＹＥＳと判別し、ステップＳ７に戻る。シャッタボタン４２の状態が半押し状態から全押し状態に移行すると、ステップＳ１３でＹＥＳと判別し、ステップＳ１７に移ってパノラマ露光処理（後述）を実行する。パノラマ露光処理が完了した時点で、ＳＤＲＡＭ２０には、一連の被写界Ｅ０，Ｅ１，…（図４参照）にそれぞれ対応する複数の被写界像が格納されている。
【００７２】
続くステップＳ１９では、ＳＤＲＡＭ２０に格納された複数の被写界像を互いに結合し、得られた単一のパノラマ被写界像を再びＳＤＲＡＭ２０に書き込む。そしてステップＳ２１で、ＳＤＲＡＭ２０に格納されたパノラマ被写界像の圧縮をＪＰＥＧコーデック２６に命令する。
【００７３】
ＪＰＥＧコーデック２６によって圧縮処理が実行され、圧縮画像データがＳＤＲＡＭ２０に書き込まれると、ステップＳ２３に移る。ステップＳ２３では、ＳＤＲＡＭ２０から圧縮画像データを読み出して、ＪＰＥＧファイルの態様で記録媒体３０に記録する。
【００７４】
上記ステップＳ１７のパノラマ露光処理は、図９および図１０のサブルーチンに従う。まず図９を参照して、最初のステップＳ３１では、角速度を示す変数ｗ，回転角を示す変数ｐ，センサ先行角を示す変数ｓ，センサ先行距離を示す変数ｍ，および本露光処理の連続実行回数を示す変数ｎの各々に、初期値として“０”をセットする。
【００７５】
次のステップＳ３３では、回転角（ｐ）／先行角（ｓ）算出タスクを起動する。回転角（ｐ）／先行角（ｓ）算出タスクは、回転角および先行角をたとえば１／１００秒周期で繰り返し算出して、結果を変数ｐおよび変数ｓにセットする（詳細は後述）。その後、ステップＳ３５およびＳ３７に移って、終了条件が満足されたか否かを判別する。
【００７６】
具体的には、ステップＳ３５では全押し操作が解除されたか否かを判別し、ステップＳ３７では変数ｎが上限値たとえば“５”に達したか否かを判別する。ステップＳ３５の判別結果およびＳ３７の判別結果のいずれかがＹＥＳであれば、ステップＳ３９に移って回転角（ｐ）／先行角（ｓ）算出タスクを停止し、上位層のルーチンに復帰する。
【００７７】
ステップＳ３５の判別結果およびＳ３７判別結果の各々がＮＯであれば、ステップＳ４１に移って、露光開始命令を発行する。この命令に応じ、前述のような本露光処理が実行され、撮像面１４ｆに照射された光学像に対応する被写界像がＳＤＲＡＭ２０に記録される。
【００７８】
また、本露光処理の開始に伴い、ステップＳ４３でタイマをリセットおよびスタートする。これによって、露光開始からの経過時間を示す変数ｔ（図５参照）が初期化される。そして、ステップＳ４５で変数ｐをリセットした後、ステップＳ４７に進む。
【００７９】
ステップＳ４７では変数ｎが“１”よりも小さいか否かを判別し、この判別結果がＹＥＳであれば、ステップＳ４９〜Ｓ５３で各種パラメータを取得／算出した後、ステップＳ５５に移る。ステップＳ４７の判別結果がＮＯであれば、直ちにステップＳ５５に移る。したがって、ステップＳ４９〜Ｓ５３の処理は、１回目の本露光処理のときだけ実行される。
【００８０】
ステップＳ４９ではイメージセンサ幅Ｗ，補正可能距離Ｄ，および焦点距離ｆを取得する。なお、これらのパラメータの値はフラッシュメモリ４０に記憶されている。ステップＳ５１ではパノラマ回転角Ｐを上式（５）により算出し、ステップＳ５３では補正可能角度Ｓを上式（７）により算出する。
【００８１】
ステップＳ５５では、タイマつまり変数ｔの値が露光時間Ｔに到達したか否かを判別し、ＮＯと判別されれば待機する。ステップＳ５５の判別結果がＹＥＳとなると、ステップＳ５７に移って露光終了命令を発行する。そして、ステップＳ５９で変数ｎをインクリメントし、さらにステップＳ６１で手ブレ補正タスクを停止した後、ステップＳ６３に進む。
【００８２】
図１０を参照して、ステップＳ６３では、変数ｓが上式（６）を満足するか否かを判別し、判別結果がＹＥＳであれば、ステップＳ６５〜Ｓ７１を経てステップＳ７３に進む。ステップＳ６５ではセンサ先行距離（ｍ）を上式（２）により算出し、そしてステップＳ６７ではアクチュエータ３８を制御してセンサ先行処理を実行する。
【００８３】
ステップＳ６９では、変数ｐが上式（４）を満足するか否かを判別し、この判別結果がＮＯであればステップＳ６３に戻る。ステップＳ６９の判別結果がＹＥＳであれば、ステップＳ７１で手ブレ補正タスクを再起動し、ステップＳ７３でフラグＧをリセットし、その後ステップＳ３５に戻る。
【００８４】
ステップＳ６３でＮＯであれば、ステップＳ７５でフラグＧに“１”をセットし、そしてステップＳ７７で手ブレ補正タスクを再起動した後、ステップＳ７９およびＳ８１のループに入る。ステップＳ７９では変数ｐがパノラマ回転角Ｐと一致したか否かを判別し、ステップＳ８１では全押し操作が解除されたか否かを判別する。
【００８５】
ユーザがモニタ画面を参照してディジタルカメラ１０を適切な位置まで回転させると、ステップＳ７９の判別結果がＹＥＳとなり、ループを抜けてステップＳ７３でフラグＧをリセットした後、ステップＳ３５に戻る。ユーザがシャッタボタン４２の全押しを止めれば、ステップＳ８１の判別結果がＹＥＳとなり、ループを抜けてステップＳ８３に移る。
【００８６】
ステップＳ８３では、回転角（ｐ）／先行角（ｓ）算出タスクを停止する。その後、上位層のルーチンに復帰する。
【００８７】
次に、図１１を参照して、回転角（ｐ）／先行角（ｓ）算出タスクでは、ＣＰＵ３２は、まずステップＳ９１で、角速度メモリＲ２からＸ軸周りの角速度を取得し、これを変数ｗにセットする。次いで、ステップＳ９３でＸ軸周りの回転角（ｐ）を上式（３）により算出し、そしてステップＳ９５ではセンサ先行角（ｓ）を上式（１）により算出する。その後、ステップＳ９７で角速度の取得周期がΔｔとなるように待機し、ステップＳ９１に戻る。
【００８８】
次に、図１２を参照して、手ブレ補正タスクでは、ＣＰＵ３２は、最初のステップＳ１０１で、変数ｄＸおよび変数ｄＹにそれぞれ初期値として“０”をセットする。
【００８９】
続くステップＳ１０３およびＳ１０５では、角速度メモリＲ２のデータに基づいて、Ｘ方向の補正量およびＹ方向の補正量を算出し、結果を変数ｄＸおよび変数ｄＹにセットする。
【００９０】
そしてステップＳ１０７およびＳ１０９で、アクチュエータ３８を制御して、イメージセンサ１４をＸ方向およびＹ方向にｄＸおよびｄＹだけ移動させる。移動後、ステップＳ１０３に戻る。
【００９１】
次に、図１３を参照して、表示制御タスクでは、ＣＰＵ３２は、最初のステップＳ１２１で、フラグＧに初期値として“０”をセットする。次のステップＳ１２３では、フラグＧが“１”であるか否かを判別する。この判別結果がＹＥＳであれば、ステップＳ１２５に移って、ＬＣＤドライバ２２を介して警告／誘導画面をスルー画像上に表示する。そして、ステップＳ１２３に戻る。
【００９２】
ステップＳ１２３の判別結果がＮＯであれば、ステップＳ１２７に移って、警告／誘導画面を消去し、そしてステップＳ１２３に戻る。
【００９３】
以上から明らかなように、この実施例のディジタルカメラ１０は、光学レンズ１２およびイメージセンサ１４を含む。イメージセンサ１４は、光学レンズ１２を通して被写界の光学像が照射される撮像面１４ｆを有する。
【００９４】
ディジタルカメラ１０が回転されると、ＣＰＵ３２は、ジャイロセンサ３６の出力に基づいて回転角（ｐ）を繰り返し計測する（Ｓ９１，Ｓ９３，）。そして、計測結果が撮像面１４ｆに照射された光学像の画角（Ｐ）との間で角度条件を満足する度に、ドライバ３４を介してイメージセンサ１４に露光処理を施す（Ｓ４１，Ｓ５７）。露光処理中、ＣＰＵ３２は、アクチュエータ３８を制御して、回転に起因する光学像の動きにイメージセンサ１４を追従させる（Ｓ１，Ｓ７１，Ｓ７７）。
【００９５】
露光処理によって生成された被写界像は、メモリ制御回路１８によってＳＤＲＡＭ２０に取り込まれる。一連の露光処理が終了すると、ＣＰＵ３２は、ＳＤＲＡＭ２０に格納された複数の被写界像を互いに結合して、単一のパノラマ被写界像を作成する（Ｓ１９）。
【００９６】
これによって、露光の度に回転を止める必要がなくなり、精度の高いパノラマ撮影を効率よく行えるようになる。
【００９７】
なお、この実施例では、手ブレ補正の方式として、イメージセンサ１４を移動させるセンサ移動方式を採用したが、代わりに、光学レンズ１２を移動させる光学方式を採用してもよい。イメージセンサ１４の有効画素領域を移動させる電子方式の採用も可能である。
【００９８】
なお、この実施例では、ディジタルカメラ１０をＸ軸の周りに回転させながらパノラマ撮影を行ったが、回転軸はＹ軸でもよい。
【００９９】
なお、この実施例では、ジャイロセンサ３６を用いたが、これ以外の角速度センサを用いてもよい。または、角速度センサに代えて、回転角センサをも用いてもよい。この場合、角速度は、回転角の単位時間当たりの変化量として算出できる。また、接写（マクロ）撮影用などに直線的速度センサを用いてもよい。
【０１００】
なお、この実施例では、ＣＰＵ３２が、ＳＤＲＡＭ２０に格納された複数の被写界像を互いに結合したが（Ｓ１９）、この画像結合処理は、ＰＣなどの外部装置で実行してもよい。
【０１０１】
なお、この実施例では、光学レンズ１２の焦点距離ｆを一定としたが、可変としてもよい。この場合、つまりズームを行う場合には、光学レンズ１２の焦点距離を変化させるためのモータ（図示せず）が必要となる。ＣＰＵ３２は、変数ｆ（つまり現在の焦点距離）を認識しており、これに基づいて上式（５）による算出処理および上式（７）による算出処理を行うことができる。
【図面の簡単な説明】
【０１０２】
【図１】この発明の一実施例の構成を示すブロック図である。
【図２】パノラマ撮影のためのディジタルカメラの回転、および手ブレ補正のためのイメージセンサの移動を示す図解図である。
【図３】図１実施例に適用される手ブレ補正処理を説明するための図解図である。
【図４】図１実施例に適用されるパノラマ露光処理を説明するための図解図である。
【図５】図１実施例に適用されるセンサ先行処理を説明するための図解図である。
【図６】（Ａ）〜（Ｄ）は光学レンズの光軸（Ｚ軸）およびイメージセンサの光軸ｚの間の位置関係の変化を時系列順に示す図解図である。
【図７】（Ａ）〜（Ｃ）は図６（Ｄ）に続く変化を時系列順に示す図解図である。
【図８】図１実施例に適用されるＣＰＵ動作の一部を示すフロー図である。
【図９】図１実施例に適用されるＣＰＵ動作の他の一部を示すフロー図である。
【図１０】図１実施例に適用されるＣＰＵ動作のその他の一部を示すフロー図である。
【図１１】図１実施例に適用されるＣＰＵ動作のさらにその他の一部を示すフロー図である。
【図１２】図１実施例に適用されるＣＰＵ動作の他の一部を示すフロー図である。
【図１３】図１実施例に適用されるＣＰＵ動作のその他の一部を示すフロー図である。
【符号の説明】
【０１０３】
１０  …ディジタルカメラ
１２  …光学レンズ
１４  …イメージセンサ
１４ｆ  …撮像面
１６  …カメラ処理回路
１８  …メモリ制御回路
２２  …ＬＣＤドライバ
３２  …ＣＰＵ
３４  …ドライバ
３６  …ジャイロセンサ
３８  …アクチュエータ
Ｒ１  …輝度メモリ
Ｒ２  …角速度メモリ
【図１】
0004964054.tif 000002
【図２】
0004964054.tif 000003
【図３】
0004964054.tif 000004
【図４】
0004964054.tif 000005
【図５】
0004964054.tif 000006
【図６】
0004964054.tif 000007
【図７】
0004964054.tif 000008
【図８】
0004964054.tif 000009
【図９】
0004964054.tif 000010
【図１０】
0004964054.tif 000011
【図１１】
0004964054.tif 000012
【図１２】
0004964054.tif 000013
【図１３】
0004964054.tif 000014