(57)【要約】【課題】ブレ量の算出精度の低下を抑制することが可能なブレ量算出技術等を提供する。【解決手段】ブレ演算装置は、ブレ検出手段の検出信号に基づいてブレ量の候補値をそれぞれ算出するＮ個（Ｎは３以上の整数）のブレ演算手段と、Ｎ個のブレ演算手段のいずれかをメイン演算手段として選択する選択手段とを備える。また、選択手段は、メイン演算手段によって算出されたブレ量の候補値をブレ量の演算結果として出力し、メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定する。複数のサブ演算手段のそれぞれは、第１の所定時間ｔ１が経過するごとに演算動作を新規に開始し、複数のサブ演算手段は、各演算開始時刻が第２の所定時間ｔ２（ただし、ｔ２＝ｔ１／（Ｎ−１））ずつずれた状態で順次に演算動作を開始する。そして、選択手段は、第２の所定時間ｔ２間隔でメイン演算手段を変更するか否かを決定する。【選択図】図１１
2007322958.tif 000002
【特許請求の範囲】
【請求項１】
ブレ演算装置であって、
ブレ検出手段の検出信号を積分することによりブレ量の候補値をそれぞれ算出するＮ個（ただし、Ｎは３以上の整数）のブレ演算手段と、
前記Ｎ個のブレ演算手段のいずれかをメイン演算手段として選択し、前記Ｎ個のブレ演算手段のうち前記メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定するとともに、前記メイン演算手段によって算出されたブレ量の候補値を、当該ブレ演算装置によるブレ量の演算結果として出力する選択手段と、
を備え、
前記複数のサブ演算手段のそれぞれは、第１の所定時間が経過するごとに演算動作を新規に開始し、
前記複数のサブ演算手段は、各演算開始時刻が第２の所定時間（ただし、第２の所定時間は第１の所定時間を（Ｎ−１）で除した値）ずつずれた状態で順次に演算動作を開始し、
前記選択手段は、前記第２の所定時間間隔で前記メイン演算手段を変更するか否かを決定することを特徴とするブレ演算装置。
【請求項２】
請求項１に記載のブレ演算装置において、
前記選択手段は、前記メイン演算手段として現在選択されているブレ演算手段によって算出されたブレ量の候補値が所定値を越えないときには、引き続き当該ブレ演算手段を前記メイン演算手段として選択することを特徴とするブレ演算装置。
【請求項３】
請求項１に記載のブレ演算装置において、
前記選択手段は、前記メイン演算手段として現在選択されているブレ演算手段によって算出されたブレ量の候補値が所定値を越えると、他のブレ演算手段を新たなメイン演算手段として選択することを特徴とするブレ演算装置。
【請求項４】
請求項３に記載のブレ演算装置において、
前記複数のサブ演算手段のそれぞれは、前記新たなメイン演算手段の選択時点以後において、第１の所定時間経過ごとに演算動作を新規に開始することを特徴とするブレ演算装置。
【請求項５】
請求項１に記載のブレ演算装置において、
前記選択手段は、前記複数のサブ演算手段のうちのいずれかのサブ演算手段の演算時間が前記第１の所定時間に到達したことに応答して、前記メイン演算手段を変更するか否かを決定することを特徴とするブレ演算装置。
【請求項６】
撮像装置であって、
前記撮像装置のブレを検出するブレ検出手段と、
前記ブレ検出手段の検出信号を積分することによりブレ量の候補値をそれぞれ算出するＮ個（ただし、Ｎは３以上の整数）のブレ演算手段と、
前記Ｎ個のブレ演算手段のいずれかをメイン演算手段として選択し、前記Ｎ個のブレ演算手段のうち前記メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定するとともに、前記メイン演算手段によって算出されたブレ量の候補値を、ブレ補正用のブレ量の演算結果として出力する選択手段と、
前記ブレ補正用のブレ量に基づいて、前記撮像装置に関するブレ補正を行うブレ補正手段と、
を備え、
前記複数のサブ演算手段のそれぞれは、第１の所定時間が経過するごとに演算動作を新規に開始し、
前記複数のサブ演算手段は、各演算開始時刻が第２の所定時間（ただし、第２の所定時間は第１の所定時間を（Ｎ−１）で除した値）ずつずれた状態で順次に演算動作を開始し、
前記選択手段は、前記第２の所定時間間隔で前記メイン演算手段を変更するか否かを決定することを特徴とする撮像装置。
【請求項７】
請求項６に記載の撮像装置において、
前記ブレ補正手段は、前記メイン演算手段として現在選択されているブレ演算手段によるブレ量の候補値が不適切であると判定されるときには、ブレ補正動作を禁止することを特徴とする撮像装置。
【請求項８】
ブレ演算方法であって、
ａ）ブレ検出手段の検出信号を積分することによりブレ量の候補値をそれぞれ算出するＮ個（ただし、Ｎは３以上の整数）のブレ演算手段のうちのいずれかをメイン演算手段として選択し、前記メイン演算手段によって算出されたブレ量の候補値を、前記Ｎ個のブレ演算手段によるブレ量の演算結果として出力するステップと、
ｂ）前記Ｎ個のブレ演算手段のうち前記メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定するステップと、
を備え、
前記複数のサブ演算手段のそれぞれは、第１の所定時間が経過するごとに演算動作を新規に開始し、
前記複数のサブ演算手段は、各演算開始時刻が第２の所定時間（ただし、第２の所定時間は第１の所定時間を（Ｎ−１）で除した値）ずつずれた状態で順次に演算動作を開始し、
前記メイン演算手段を変更するか否かが前記第２の所定時間間隔で決定されることを特徴とするブレ演算方法。
【請求項９】
ブレ演算装置であって、
ブレ検出手段の検出信号を積分することによりブレ量の候補値をそれぞれ算出するＮ個（ただし、Ｎは３以上の整数）のブレ演算手段と、
前記Ｎ個のブレ演算手段のいずれかをメイン演算手段として選択し、前記Ｎ個のブレ演算手段のうち前記メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定するとともに、前記メイン演算手段によって算出されたブレ量の候補値を、当該ブレ演算装置によるブレ量の演算結果として出力する選択手段と、
を備え、
前記選択手段は、前記メイン演算手段として現在選択されているブレ演算手段によるブレ量の候補値が所定値を越えたことを或る判定時点で判定すると、前記メイン演算手段を変更し、
前記複数のサブ演算手段のそれぞれは、前記メイン演算手段の変更時点以後において、第１の所定時間経過ごとに演算動作を新規に開始し、
前記複数のサブ演算手段は、前記メイン演算手段の変更時点以後において、各演算開始時刻が第２の所定時間（ただし、第２の所定時間は第１の所定時間を（Ｎ−１）で除した値）ずつずれた状態で順次に演算動作を開始し、
前記選択手段は、前記第２の所定時間間隔で前記メイン演算手段を変更するか否かを決定することを特徴とするブレ演算装置。
【請求項１０】
請求項９に記載のブレ演算装置において、
前記メイン演算手段として現在選択されているブレ演算手段によって算出されたブレ量の候補値が所定値を越えないと判定されるときには、前記複数のサブ演算器によるブレ演算は休止されることを特徴とするブレ演算装置。
【請求項１１】
撮像装置であって、
前記撮像装置のブレを検出するブレ検出手段と、
前記ブレ検出手段の検出信号を積分することによりブレ量の候補値をそれぞれ算出するＮ個（ただし、Ｎは３以上の整数）のブレ演算手段と、
前記Ｎ個のブレ演算手段のいずれかをメイン演算手段として選択し、前記Ｎ個のブレ演算手段のうち前記メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定するとともに、前記メイン演算手段によって算出されたブレ量の候補値を、ブレ補正用のブレ量として出力する選択手段と、
前記ブレ補正用のブレ量に基づいて、前記撮像装置に関するブレ補正を行うブレ補正手段と、
を備え、
前記選択手段は、前記メイン演算手段として現在選択されているブレ演算手段によるブレ量の候補値が所定値を越えたことを或る判定時点で判定すると、前記メイン演算手段を変更し、
前記複数のサブ演算手段のそれぞれは、前記メイン演算手段の変更時点以後において、第１の所定時間経過ごとに演算動作を新規に開始し、
前記複数のサブ演算手段は、前記メイン演算手段の変更時点以後において、各演算開始時刻が第２の所定時間（ただし、第２の所定時間は第１の所定時間を（Ｎ−１）で除した値）ずつずれた状態で順次に演算動作を開始し、
前記選択手段は、前記第２の所定時間間隔で前記メイン演算手段を変更するか否かを決定することを特徴とする撮像装置。
【請求項１２】
ブレ演算方法であって、
ａ）ブレ検出手段の検出信号を積分することによりブレ量の候補値をそれぞれ算出するＮ個（ただし、Ｎは３以上の整数）のブレ演算手段のうちのいずれかをメイン演算手段として選択し、前記メイン演算手段によって算出されたブレ量の候補値を、前記Ｎ個のブレ演算手段によるブレ量の演算結果として出力するステップと、
ｂ）前記Ｎ個のブレ演算手段のうち前記メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定するステップと、
を備え、
前記メイン演算手段として現在選択されているブレ演算手段によるブレ量の候補値が所定値を越えたことが或る判定時点で判定されると、前記メイン演算手段が変更され、
前記複数のサブ演算手段のそれぞれは、前記メイン演算手段の変更時点以後において、第１の所定時間経過ごとに演算動作を新規に開始し、
前記複数のサブ演算手段は、前記メイン演算手段の変更時点以後において、各演算開始時刻が第２の所定時間（ただし、第２の所定時間は第１の所定時間を（Ｎ−１）で除した値）ずつずれた状態で順次に演算動作を開始し、
前記メイン演算手段を変更するか否かが前記第２の所定時間間隔で決定されることを特徴とするブレ演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置等のブレを演算するブレ演算技術、および当該ブレ演算技術を用いてブレを補正する撮像技術に関する。
【背景技術】
【０００２】
撮像装置においては、撮影の際の手ブレを補正する技術が存在する。具体的には、撮像装置にブレ検出用の角速度センサ（ジャイロセンサ等）を設け、当該角速度センサの出力信号（検出信号）を積分することにより角速度等を算出し、算出された当該角速度等に基づいて、手ブレによる被写体像の位置ずれ等をキャンセルするようにレンズ光学系あるいは撮像素子（ＣＣＤ等）を駆動する技術が存在する（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００５−１８９６５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、撮像装置を操作するユーザ（操作者）は、撮影技法のひとつとして、意図的に当該撮像装置を所定方向に（例えば水平方向に）動かすパンニング操作等を行うことがある。
【０００５】
しかしながら、このパンニング操作が行われるときに上記のようなブレ補正制御を行うものとすると、角速度センサの低周波成分（特に直流成分）の影響によって、当該角速度センサの出力信号に基づいて算出されるブレ量が不正確な値になる。そのため、当該ブレ量をそのまま用いてブレ補正動作を行うとブレ補正性能が低下してしまう。
【０００６】
そこで、この発明の課題は、ブレ量の算出精度の低下を抑制することが可能なブレ量算出技術、および当該ブレ量算出技術を利用してブレ補正を行う撮像装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、上記課題を解決すべくなされたものであり、その第１の側面は、ブレ演算装置であって、ブレ検出手段の検出信号を積分することによりブレ量の候補値をそれぞれ算出するＮ個（ただし、Ｎは３以上の整数）のブレ演算手段と、前記Ｎ個のブレ演算手段のいずれかをメイン演算手段として選択し、前記Ｎ個のブレ演算手段のうち前記メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定するとともに、前記メイン演算手段によって算出されたブレ量の候補値を、当該ブレ演算装置によるブレ量の演算結果として出力する選択手段とを備え、前記複数のサブ演算手段のそれぞれは、第１の所定時間が経過するごとに演算動作を新規に開始し、前記複数のサブ演算手段は、各演算開始時刻が第２の所定時間（ただし、第２の所定時間は第１の所定時間を（Ｎ−１）で除した値）ずつずれた状態で順次に演算動作を開始し、前記選択手段は、前記第２の所定時間間隔で前記メイン演算手段を変更するか否かを決定することを特徴とするブレ演算装置である。
【０００８】
なお、「ブレ演算手段」および「選択手段」等は、電子回路等の物理的存在であるハードウエアのみによって実現されるものであってもよく、あるいはハードウエアとソフトウエアとの協働によって実現されるものであってもよい。
【０００９】
また、本発明の第２の側面は、撮像装置であって、前記撮像装置のブレを検出するブレ検出手段と、前記ブレ検出手段の検出信号を積分することによりブレ量の候補値をそれぞれ算出するＮ個（ただし、Ｎは３以上の整数）のブレ演算手段と、前記Ｎ個のブレ演算手段のいずれかをメイン演算手段として選択し、前記Ｎ個のブレ演算手段のうち前記メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定するとともに、前記メイン演算手段によって算出されたブレ量の候補値を、ブレ補正用のブレ量の演算結果として出力する選択手段と、前記ブレ補正用のブレ量に基づいて、前記撮像装置に関するブレ補正を行うブレ補正手段とを備え、前記複数のサブ演算手段のそれぞれは、第１の所定時間が経過するごとに演算動作を新規に開始し、前記複数のサブ演算手段は、各演算開始時刻が第２の所定時間（ただし、第２の所定時間は第１の所定時間を（Ｎ−１）で除した値）ずつずれた状態で順次に演算動作を開始し、前記選択手段は、前記第２の所定時間間隔で前記メイン演算手段を変更するか否かを決定することを特徴とする撮像装置である。
【００１０】
また、本発明の第３の側面は、ブレ演算方法であって、ａ）ブレ検出手段の検出信号を積分することによりブレ量の候補値をそれぞれ算出するＮ個（ただし、Ｎは３以上の整数）のブレ演算手段のうちのいずれかをメイン演算手段として選択し、前記メイン演算手段によって算出されたブレ量の候補値を、前記Ｎ個のブレ演算手段によるブレ量の演算結果として出力するステップと、ｂ）前記Ｎ個のブレ演算手段のうち前記メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定するステップとを備え、前記複数のサブ演算手段のそれぞれは、第１の所定時間が経過するごとに演算動作を新規に開始し、前記複数のサブ演算手段は、各演算開始時刻が第２の所定時間（ただし、第２の所定時間は第１の所定時間を（Ｎ−１）で除した値）ずつずれた状態で順次に演算動作を開始し、前記メイン演算手段を変更するか否かが前記第２の所定時間間隔で決定されることを特徴とするブレ演算方法である。
【００１１】
また、本発明の第４の側面は、ブレ演算装置であって、ブレ検出手段の検出信号を積分することによりブレ量の候補値をそれぞれ算出するＮ個（ただし、Ｎは３以上の整数）のブレ演算手段と、前記Ｎ個のブレ演算手段のいずれかをメイン演算手段として選択し、前記Ｎ個のブレ演算手段のうち前記メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定するとともに、前記メイン演算手段によって算出されたブレ量の候補値を、当該ブレ演算装置によるブレ量の演算結果として出力する選択手段とを備え、前記選択手段は、前記メイン演算手段として現在選択されているブレ演算手段によるブレ量の候補値が所定値を越えたことを或る判定時点で判定すると、前記メイン演算手段を変更し、前記複数のサブ演算手段のそれぞれは、前記メイン演算手段の変更時点以後において、第１の所定時間経過ごとに演算動作を新規に開始し、前記複数のサブ演算手段は、前記メイン演算手段の変更時点以後において、各演算開始時刻が第２の所定時間（ただし、第２の所定時間は第１の所定時間を（Ｎ−１）で除した値）ずつずれた状態で順次に演算動作を開始し、前記選択手段は、前記第２の所定時間間隔で前記メイン演算手段を変更するか否かを決定することを特徴とするブレ演算装置である。
【００１２】
また、本発明の第５の側面は、撮像装置であって、前記撮像装置のブレを検出するブレ検出手段と、前記ブレ検出手段の検出信号を積分することによりブレ量の候補値をそれぞれ算出するＮ個（ただし、Ｎは３以上の整数）のブレ演算手段と、前記Ｎ個のブレ演算手段のいずれかをメイン演算手段として選択し、前記Ｎ個のブレ演算手段のうち前記メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定するとともに、前記メイン演算手段によって算出されたブレ量の候補値を、ブレ補正用のブレ量として出力する選択手段と、前記ブレ補正用のブレ量に基づいて、前記撮像装置に関するブレ補正を行うブレ補正手段とを備え、前記選択手段は、前記メイン演算手段として現在選択されているブレ演算手段によるブレ量の候補値が所定値を越えたことを或る判定時点で判定すると、前記メイン演算手段を変更し、前記複数のサブ演算手段のそれぞれは、前記メイン演算手段の変更時点以後において、第１の所定時間経過ごとに演算動作を新規に開始し、前記複数のサブ演算手段は、前記メイン演算手段の変更時点以後において、各演算開始時刻が第２の所定時間（ただし、第２の所定時間は第１の所定時間を（Ｎ−１）で除した値）ずつずれた状態で順次に演算動作を開始し、前記選択手段は、前記第２の所定時間間隔で前記メイン演算手段を変更するか否かを決定することを特徴とする撮像装置である。
【００１３】
また、本発明の第６の側面は、ブレ演算方法であって、ａ）ブレ検出手段の検出信号を積分することによりブレ量の候補値をそれぞれ算出するＮ個（ただし、Ｎは３以上の整数）のブレ演算手段のうちのいずれかをメイン演算手段として選択し、前記メイン演算手段によって算出されたブレ量の候補値を、前記Ｎ個のブレ演算手段によるブレ量の演算結果として出力するステップと、ｂ）前記Ｎ個のブレ演算手段のうち前記メイン演算手段以外のブレ演算手段を複数のサブ演算手段として決定するステップとを備え、前記メイン演算手段として現在選択されているブレ演算手段によるブレ量の候補値が所定値を越えたことが或る判定時点で判定されると、前記メイン演算手段が変更され、前記複数のサブ演算手段のそれぞれは、前記メイン演算手段の変更時点以後において、第１の所定時間経過ごとに演算動作を新規に開始し、前記複数のサブ演算手段は、前記メイン演算手段の変更時点以後において、各演算開始時刻が第２の所定時間（ただし、第２の所定時間は第１の所定時間を（Ｎ−１）で除した値）ずつずれた状態で順次に演算動作を開始し、前記メイン演算手段を変更するか否かが前記第２の所定時間間隔で決定されることを特徴とするブレ演算方法である。
【発明の効果】
【００１４】
本発明によれば、複数のサブ演算手段のそれぞれは、第１の所定時間が経過するごとに演算動作を新規に開始し、複数のサブ演算手段を含むＮ個のブレ演算手段のいずれかがメイン演算手段として選択され、選択されたブレ演算手段によって算出されたブレ量の候補値がブレ量の演算結果として得られる。また、メイン演算手段とは異なる期間を対象にしてブレ量を算出したサブ演算手段を含むＮ個のブレ演算手段のいずれかが新たなメイン演算手段として選択される。したがって、パンニング操作の影響を低減した値をブレ量の演算結果として出力することが可能である。すなわち、ブレ量の算出精度の低下を抑制することが可能である。また、メイン演算手段を変更するか否かが第２の所定時間間隔で決定されるので、単一のサブ演算手段を用いる場合に比べて、メイン演算手段を早期に更新することが可能である。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態を図面に基づいて説明する。
【００１６】
＜１．装置概要＞
＜１−１．基本構成＞
図１および図２は、本発明の実施形態に係る撮像装置１の外観構成を示す図である。ここで、図１は、撮像装置１の正面外観図であり、図２は、撮像装置１の背面外観図である。この撮像装置１は、レンズ交換式一眼レフレックスタイプのデジタルカメラとして構成されている。
【００１７】
図１に示すように、撮像装置１は、カメラ本体部（カメラボディ）２を備えている。このカメラ本体部２に対して、交換式の撮影レンズユニット（交換レンズ）３が着脱可能である。
【００１８】
撮影レンズユニット３は、主として、鏡胴３６、ならびに、鏡胴３６の内部に設けられるレンズ群３７（図３参照）及び絞り等によって構成される。レンズ群３７には、光軸方向に移動することによって焦点位置を変更するフォーカスレンズ等が含まれている。
【００１９】
カメラ本体部２は、撮影レンズユニット３が装着される円環状のマウント部Ｍｔを正面略中央に備え、撮影レンズユニット３を着脱するための着脱ボタン８９を円環状のマウント部Ｍｔ付近に備えている。
【００２０】
また、カメラ本体部２は、その正面左上部にモード設定ダイアル８２を備え、その正面右上部に制御値設定ダイアル８６を備えている。モード設定ダイアル８２を操作することによって、カメラの各種モード（各種撮影モード（人物撮影モード、風景撮影モード、およびフルオート撮影モード等）、撮影した画像を再生する再生モード、および外部機器との間でデータ交信を行う通信モード等を含む）の設定動作（切替動作）を行うことが可能である。また、制御値設定ダイアル８６を操作することによれば、各種撮影モードにおける制御値を設定することが可能である。
【００２１】
また、カメラ本体部２は、正面左端部に撮影者が把持するためのグリップ部１４を備えている。グリップ部１４の上面には露光開始を指示するためのレリーズボタン１１が設けられている。グリップ部１４の内部には電池収納室とカード収納室とが設けられている。電池収納室にはカメラの電源として、例えば４本の単３形乾電池が収納されており、カード収納室には撮影画像の画像データを記録するためのメモリカード９０（図３参照）が着脱可能に収納されるようになっている。
【００２２】
レリーズボタン１１は、半押し状態（Ｓ１状態）と全押し状態（Ｓ２状態）の２つの状態を検出可能な２段階検出ボタンである。レリーズボタン１１が半押しされＳ１状態になると、被写体に関する記録用静止画像（本撮影画像）を取得するための準備動作（例えば、ＡＦ制御動作およびＡＥ制御動作等）が行われる。また、レリーズボタン１１がさらに押し込まれてＳ２状態になると、当該本撮影画像の撮影動作（撮像素子５（後述）を用いて被写体像に関する露光動作を行い、その露光動作によって得られた画像信号に所定の画像処理を施す一連の動作）が行われる。
【００２３】
図２において、カメラ本体部２の背面略中央上部には、ファインダ１０が設けられている。ファインダ１０には、撮影レンズユニット３からの被写体像が導かれる。撮影者は、ファインダ１０を覗くことによって、被写体を視認することができる。より具体的には、撮影レンズユニット３を通過してきた被写体像を、ミラー機構６(図３参照)で上方に反射させ、ペンタプリズムを通した像を接眼レンズを介して見ることで、被写体像を視認することができる。このように、ファインダ１０を用いて構図決めを行うことが可能である。なお、本撮影画像の撮影時においては、ミラー機構６は被写体像の光路から待避し、撮影レンズユニット３からの光がシャッタ４（図３参照）の開放タイミングに合わせて撮像素子５に到達し、被写体に係る撮影画像（撮影画像データ）が得られる。
【００２４】
カメラ本体部２の背面の略中央には、背面モニタ１２が設けられている。背面モニタ１２は、例えばカラー液晶ディスプレイ（ＬＣＤ）として構成される。背面モニタ１２は、撮影条件等を設定するためのメニュー画面を表示したり、再生モードにおいてメモリカード９０に記録された撮影画像を再生表示したりすることができる。
【００２５】
背面モニタ１２の左上部にはメインスイッチ８１が設けられている。メインスイッチ８１は２点スライドスイッチからなり、接点を左方の「ＯＦＦ」位置に設定すると、電源がオフになり、接点の右方の「ＯＮ」位置に設定すると、電源がオンになる。
【００２６】
背面モニタ１２の右側には方向選択キー８４が設けられている。この方向選択キー８４は円形の操作ボタンを有し、この操作ボタンにおける上下左右の４方向の押圧操作と、右上、左上、右下及び左下の４方向の押圧操作とが、それぞれ検出されるようになっている。なお、方向選択キー８４は、上記８方向の押圧操作とは別に、中央部のプッシュボタンの押圧操作も検出されるようになっている。
【００２７】
背面モニタ１２の左側には、メニュー画面の設定、画像の削除などを行うための複数のボタンからなる設定ボタン群８３が設けられている。
【００２８】
つぎに、図３を参照しながら、撮像装置１の機能の概要について説明する。図３は、撮像装置１の機能構成を示すブロック図である。
【００２９】
図３に示すように、撮像装置１は、操作部８０、全体制御部１０１、フォーカス制御部１２１、ミラー制御部１２２、シャッタ制御部１２３、タイミング制御回路１２４、デジタル信号処理回路５０、およびブレ補正制御部２０１等を備える。
【００３０】
操作部８０は、レリーズボタン１１（図１参照）を含む各種ボタンおよびスイッチ等を備えて構成される。操作部８０に対するユーザーの入力操作に応答して、全体制御部１０１が各種動作を実現する。
【００３１】
全体制御部１０１は、マイクロコンピュータとして構成され、主にＣＰＵ、メモリ、及びＲＯＭ等を備える。全体制御部１０１は、ＲＯＭ内に格納されるプログラムを読み出し、当該プログラムをＣＰＵで実行することによって、各種機能を実現する。例えば、全体制御部１０１は、ＡＦモジュール２０およびフォーカス制御部１２１等と協動して、フォーカスレンズの位置を制御する合焦制御動作を行う。全体制御部１０１は、ＡＦモジュール２０によって検出される被写体の合焦状態に応じて、フォーカス制御部１２１を用いてＡＦ動作を実現する。なお、ＡＦモジュール２０は、ミラー機構６を介して進入してきた光を用いて、位相差方式等の合焦状態検出手法により被写体の合焦状態を検出することが可能である。
【００３２】
フォーカス制御部１２１は、全体制御部１０１から入力される信号に基づいて制御信号を生成しモータＭ１を駆動することによって、撮影レンズユニット３のレンズ群３７に含まれるフォーカスレンズを移動する。また、フォーカスレンズの位置は、撮影レンズユニット３のレンズ位置検出部３９によって検出され、フォーカスレンズの位置を示すデータが全体制御部１０１に送られる。このように、フォーカス制御部１２１および全体制御部１０１等は、フォーカスレンズの光軸方向の動きを制御する。
【００３３】
ミラー制御部１２２は、ミラー機構６が光路から退避した状態（ミラーアップ状態）とミラー機構６が光路を遮断した状態（ミラーダウン状態）との状態切替を制御する。ミラー制御部１２２は、全体制御部１０１から入力される信号に基づいて制御信号を生成しモータＭ２を駆動することによって、ミラーアップ状態とミラーダウン状態とを切り替える。
【００３４】
シャッタ制御部１２３は、全体制御部１０１から入力される信号に基づいて制御信号を生成しモータＭ３を駆動することによって、シャッタ４の開閉を制御する。
【００３５】
タイミング制御回路１２４は、撮像素子５等に対するタイミング制御を行う。
【００３６】
撮像素子（ここではＣＣＤセンサ（単にＣＣＤとも称する））５は、光電変換作用により被写体の光像を電気的信号に変換して、撮像画像に係る画像信号を生成する。撮像素子５は、タイミング制御回路１２４から入力される駆動制御信号（蓄積開始信号および蓄積終了信号）に応答して、受光面に結像された被写体像の露光（光電変換による電荷蓄積）を行い、当該被写体像に係る画像信号を生成する。また、撮像素子５は、タイミング制御回路１２４から入力される読出制御信号に応答して、当該画像信号を信号処理部５１へ出力する。また、タイミング制御回路１２４からのタイミング信号（同期信号）は、信号処理部５１及びＡ／Ｄ（アナログ／デジタル）変換回路５２にも入力される。
【００３７】
撮像素子５で取得された画像信号は、信号処理部５１において所定のアナログ信号処理が施され、当該アナログ信号処理後の画像信号はＡ／Ｄ変換回路５２によってデジタル画像データ（画像データ）に変換される。この画像データは、デジタル信号処理回路５０に入力される。
【００３８】
デジタル信号処理回路５０は、Ａ／Ｄ変換回路５２から入力される画像データに対してデジタル信号処理を行い、撮像画像に係る画像データを生成する。デジタル信号処理回路５０は、黒レベル補正回路５３、ホワイトバランス（ＷＢ）回路５４、γ補正回路５５及び画像メモリ５６を備える。
【００３９】
黒レベル補正回路５３は、Ａ／Ｄ変換回路５２が出力した画像データを構成する各画素データの黒レベルを基準の黒レベルに補正する。ＷＢ回路５４は、画像のホワイトバランス調整を行う。γ補正回路５５は、撮像画像の階調変換を行う。画像メモリ５６は、生成された画像データを一時的に記憶するための、高速アクセス可能な画像メモリであり、複数フレーム分の画像データを記憶可能な容量を有する。
【００４０】
本撮影時には、画像メモリ５６に一時記憶される画像データは、全体制御部１０１において適宜画像処理が施され、カードＩ／Ｆ１３２を介してメモリカード９０に記憶される。
【００４１】
また、画像メモリ５６に一時記憶される画像データは、全体制御部１０１によって適宜ＶＲＡＭ１３１に転送され、背面モニタ１２に画像データに基づく画像が表示される。これによって、撮影画像を確認するための確認表示（アフタービュー）、および撮影済みの画像を再生する再生表示等が実現される。
【００４２】
さらに、撮像装置１は、通信用Ｉ／Ｆ１３３を有しており、当該インターフェイス１３３の接続先の機器（例えば、パーソナルコンピュータ等）とデータ通信をすることが可能である。
【００４３】
また、撮像装置１は、フラッシュ４１、フラッシュ制御回路４２、およびＡＦ補助光発光部４３を備えている。フラッシュ４１は、被写体の輝度不足時等に利用される光源である。フラッシュの点灯の有無および点灯時間等は、フラッシュ制御回路４２および全体制御部１０１等によって制御される。ＡＦ補助光発光部４３は、ＡＦ用の補助光源である。ＡＦ補助光発光部４３の点灯の有無および点灯時間等は、全体制御部１０１等によって制御される。
【００４４】
ブレ補正制御部２０１は、全体制御部１０１と同様に、マイクロコンピュータとして構成される。ブレ補正制御部２０１は、その内部に格納されたソフトウエアを実行することによってブレ補正制御機能等を実現する。具体的には、ブレ補正制御部２０１は、ブレ検出用のジャイロセンサ（角速度センサ）６１の出力信号（検出信号）に基づき、駆動機構５ａを用いて撮像素子５を駆動して、手ブレ等に起因する撮像装置１のブレを補正する機能を有している。なお、このブレ補正制御部２０１は、ブレ量を制御するブレ補正制御装置として機能するとともに、ブレ量の演算を行うブレ演算装置としても機能する。
【００４５】
ブレ補正制御部２０１は、所定のデータ通信線ＣＬを通じて全体制御部１０１と通信し、情報を送受信する。具体的には、ブレ補正制御部２０１は、全体制御部１０１からのブレ補正制御に関するコマンドを受信し、当該コマンドに基づいてブレ補正制御を行う。また、ブレ補正制御部２０１は、本撮影画像取得時のブレ補正に関連するデータを本撮影画像の撮影の際に全体制御部１０１に送信する。
【００４６】
また、全体制御部１０１とブレ補正制御部２０１との間には、データ通信線ＣＬのほかに、信号線ＥＸＰが接続されている。この信号線ＥＸＰは、本撮影画像の露光中であるか否かを示す信号線であり、当該信号線ＥＸＰの信号レベルは、例えば、露光中には「Ｈ」レベルになり、非露光中には「Ｌ」レベルになる。
【００４７】
＜１−２．ブレ補正機構＞
撮像素子５は、駆動機構５ａによって駆動され、被写体からの光の光軸に垂直な平面（ＸＹ平面）内において移動することによって、手ブレ等に起因して撮像装置１に生じるブレを抑制することが可能である。具体的には、ブレ補正制御部２０１は、ジャイロセンサ６１によって検出された撮像装置１のブレを打ち消すように、撮像素子５を駆動する。これによって、撮像装置１のブレを光学的に補正するブレ補正制御が実現される。
【００４８】
図４および図５は、駆動機構５ａの構成を示す概略図である。図４は、駆動機構５ａを背面側（−Ｚ側）から見た図であり、図５は、図４のII−II断面における断面図である。
【００４９】
図４および図５に示すように、駆動機構５ａは、ベース板１５０、第１移動部１５１、第２移動部１５２およびアクチュエータ６８Ｘ，６８Ｙ等を備えている。ベース板１５０、第１移動部１５１および第２移動部１５２は、それぞれ、略矩形状の略板状部材であり、ベース板１５０および第１移動部１５１は、その略中央部に中空部を有している。
【００５０】
ベース板１５０はカメラ本体部２に固定されている。また、ベース板１５０と第１移動部１５１とはアクチュエータ６８Ｘを介して連結されており、第１移動部１５１と第２移動部１５２とはアクチュエータ６８Ｙを介して連結されている。また、第２移動部１５２の表側（＋Ｚ側）には撮像素子５が固定されている。アクチュエータ６８Ｘの駆動によって、第１移動部１５１はベース板１５０に対してＸ軸方向に移動することが可能であり、アクチュエータ６８Ｙの駆動によって、第２移動部１５２は第１移動部１５１に対してＹ軸方向に移動することが可能である。この結果、撮像素子５は、ベース板１５０（ひいてはカメラ本体部２）に対してＸ軸方向およびＹ軸方向にそれぞれ移動可能である。なお、第１移動部１５１のＸ軸方向の移動および第２移動部１５２のＹ軸方向の移動は、それぞれ、不図示のレール部材によってガイドされている。
【００５１】
詳細には、ベース板１５０の背面側（−Ｚ側）の上部中央位置には、アクチュエータ６８Ｘが取り付けられている。また、第１移動部１５１は、その上縁部に突出部１５３を有しており、当該突出部１５３にはスライダ１５４が一体的に形成されている。アクチュエータ６８Ｘの駆動軸１５５は、このスライダ１５４の中空部を貫通しており、このスライダ１５４とアクチュエータ６８Ｘの駆動軸１５５とは摩擦結合されている。換言すれば、ベース板１５０と第１移動部１５１とは、Ｘ軸方向に相対移動可能となるように、アクチュエータ６８Ｘを介して連結されている。このような構成において、アクチュエータ６８Ｘに所定の駆動パルスを連続して印加することによって、第１移動部１５１は、ベース板１５０に対してＸ軸方向に移動することが可能である。
【００５２】
また、第２移動部１５２の側部中央位置には、アクチュエータ６８Ｙが取り付けられている。また、第１移動部１５１は、一側部（右側部）に一体的に形成されたスライダ１５７を有している。アクチュエータ６８Ｙの駆動軸１５８は、このスライダ１５７の中空部を貫通しており、このスライダ１５７とアクチュエータ６８Ｙの駆動軸１５８とは摩擦結合されている。換言すれば、第１移動部１５１と第２移動部１５２とは、Ｙ軸方向に相対移動可能となるように、アクチュエータ６８Ｙを介して連結されている。このような構成において、アクチュエータ６８Ｙに所定の駆動パルスを連続して印加すると、第２移動部１５２は、第１移動部１５１に対してＹ軸方向に移動することが可能である。
【００５３】
＜１−３．ブレ補正制御の概要＞
図６は、ブレ補正制御に関する機能ブロック図である。
【００５４】
撮像装置１は、互いに異なる方向に関する２系統の制御系６０Ｘ，６０Ｙを有している。制御系６０Ｘは、撮像装置１のヨー方向における角速度に基づいて撮像素子５のＸ方向におけるブレを検出し、当該Ｘ方向のブレを打ち消すように撮像素子５をＸ方向に駆動するものである。また、制御系６０Ｙは、撮像装置１のピッチ方向における角速度に基づいて撮像素子５のＹ方向におけるブレを検出し、当該Ｙ方向のブレを打ち消すように撮像素子５をＹ方向に駆動するものである。
【００５５】
以下では、一方の制御系６０Ｘについて詳細に説明し他方の制御系６０Ｙの説明を省略するが、制御系６０Ｙも制御系６０Ｘと同様の構成を備えている。ただし、制御系６０Ｙは、制御対象方向が制御系６０Ｘと異なっている。
【００５６】
制御系６０Ｘは、ジャイロセンサ（角速度センサ）６１（６１Ｘ）と増幅器６２（６２Ｘ）とＡ／Ｄ変換部６３（６３Ｘ）と蓄積部６４（６４Ｘ）とブレ演算部６５（６５Ｘ）と制御量演算部６６（６６Ｘ）とドライバ６７（６７Ｘ）とアクチュエータ６８（６８Ｘ）と位置検出器６９（６９Ｘ）とを備えている。
【００５７】
ジャイロセンサ６１Ｘは、カメラ本体部２に固定されており、カメラ本体部２の所定方向（ここではヨー方向）における角速度に応じた信号を出力する。ジャイロセンサ６１Ｘの出力信号は、増幅器６２Ｘ、Ａ／Ｄ変換部６３Ｘおよび蓄積部６４Ｘを介して、ブレ演算部６５Ｘに入力される。
【００５８】
ここにおいて、増幅器６２Ｘは、ジャイロセンサ６１Ｘの信号を所定倍（例えば５０倍）に増幅し、Ａ／Ｄ変換部６３Ｘは、増幅されたアナログ信号を所定のサンプリング周期（例えば、０．５ｍｓ（ミリ秒））でデジタル信号に変換する。また、蓄積部６４Ｘは、所定回数（例えば２０回）のサンプリングにわたる当該デジタル信号を一時的に記憶しておくバッファメモリとして機能する。なお、蓄積部６４Ｘに記憶されるデジタル信号は、読み出された後、古いものから順次に更新されていく。
【００５９】
ブレ演算部６５Ｘは、蓄積部６４Ｘに記憶されている入力信号を順次に読み出し、当該入力信号に基づいてブレに関する角速度（ブレ角速度）を算出し、さらに当該角速度を積分することによって角度（ブレ角度）を算出し、算出結果を制御量演算部６６Ｘに出力する。
【００６０】
制御量演算部６６Ｘは、ブレ演算部６５Ｘによって算出されたブレ角度と、位置検出器６９Ｘによって検出された撮像素子５のＸ方向位置とに基づいて、ブレを打ち消すためのＸ方向の駆動量を決定し、当該駆動量に応じた駆動信号をドライバ６７Ｘに出力する。すなわち、制御量演算部６６Ｘは、撮像素子５の受光面上における被写体像のブレを補正するため、ブレ補正用のブレ量に基づいて撮像素子５を駆動する駆動制御を行う。
【００６１】
具体的には、ブレ演算部６５Ｘによって算出されたブレ角度に対して、或るゲインＧを乗じることによって、Ｘ方向移動量を算出する。このＸ方向移動量は、ブレ角度を撮像素子５のＸ方向の移動量のスケールに変換した値である。
【００６２】
このゲインＧとしては、撮影レンズのレンズ群３７の焦点距離が大きくなるにつれて、より大きな値を用いることが好ましい。これによれば、焦点距離の増大に伴って増大する（光像の）ブレ量を、適切に補正することが可能になる。
【００６３】
また、このＸ方向移動量が撮像素子５のＸ方向における基準位置（例えば、Ｘ方向における駆動範囲の中央位置）からの移動量として算出されるように、ブレ補正開始時のブレ角度に基づく適切なオフセット処理が行われることが好ましい。これによれば、駆動範囲を有効に利用した手ブレ補正動作が可能になる。
【００６４】
そして、制御量演算部６６Ｘは、上記のＸ方向移動量と、位置検出器６９Ｘによって検出された撮像素子５のＸ方向位置（現在値）とに基づいて、ブレを打ち消すためのＸ方向の駆動量を決定し、当該駆動量に応じた駆動信号を生成し、当該駆動信号をドライバ６７Ｘに出力する。
【００６５】
ドライバ６７Ｘは、当該駆動信号に応じてアクチュエータ６８Ｘを駆動し、撮像素子５をＸ方向に移動する。このようなフィードバック動作によって、撮像装置１のＸ方向のブレを抑制することが可能である。
【００６６】
なお、上述のＡ／Ｄ変換部６３（６３Ｘ，６３Ｙ）と蓄積部６４（６４Ｘ，６４Ｙ）とブレ演算部６５（６５Ｘ，６５Ｙ）と制御量演算部６６（６６Ｘ，６６Ｙ）とは、マイクロコンピュータとして構成されるブレ補正制御部２０１内においてソフトウエア的に構成される機能部として構築される。
【００６７】
ブレ補正制御部２０１は、全体制御部１０１との通信によって、レリーズボタン１１の押下状態を認識し、認識結果に応じて動作内容を変更する。具体的には、全押し状態Ｓ２になると上述のようなブレ補正動作がブレ補正制御部２０１の制御下において実行される。一方、半押し状態Ｓ１のときには、Ａ／Ｄ変換部６３、蓄積部６４およびブレ演算部６５の動作が開始されブレ検出動作は開始されるが、未だ制御量演算部６６の動作は開始されずブレ補正動作は実行されない。すなわち、半押し状態Ｓ１のときには、あらかじめブレを検知しておくだけにとどまり、撮像素子５の駆動動作を伴う実際の補正動作は未だ行われない。
【００６８】
なお、ジャイロセンサ６１および増幅器６２は、撮像装置１の電源スイッチがオン状態のときには、常に通電状態であり動作している。ただし、上述したように、ブレ補正制御部２０１は、半押し状態Ｓ１又は全押し状態Ｓ２において、ブレ検出動作を開始しブレ角度を算出することが可能であり、それ以外の状態では、ブレ角度の算出を行っていない。そのため、無用な電力消費を抑制することが可能である。
【００６９】
＜２．ブレ補正制御＞
＜２−１．角速度の演算処理＞
次に、角速度の演算処理について説明する。
【００７０】
図７は、増幅器６２周辺の詳細構成を示す図である。
【００７１】
図７に示すように、ジャイロセンサ６１の出力信号は、増幅器６２（詳細には非反転増幅器）の＋側入力端子に入力する。また増幅器６２の出力信号Ｖａは、ブレ補正制御部２０１の入力端子ＡＤに入力する。
【００７２】
また、ブレ補正制御部２０１の出力端子ＤＡは、増幅器６２の−側入力端子と接続されており、Ｄ／Ａ変換後の出力信号がブレ補正制御部２０１から増幅器６２の−側入力端子に入力する。
【００７３】
ここで、ブレ補正制御部２０１の出力端子ＤＡからの出力電圧は、所定の固定値に設定されている。すなわち、ブレ補正制御部２０１の動作中においては、出力端子ＤＡからは常に一定の電圧（固定値）が出力され増幅器６２に入力される。この固定値は、環境温度が基準温度（例えば摂氏２５度）であり且つ撮像装置１が静止状態であるときに、増幅器６２からの出力電圧（換言すれば、ジャイロセンサ６１の出力信号の増幅後の値）Ｖａが基準電圧Ｖｓ（例えば１．５Ｖ（ボルト））になるように調整された値である。
【００７４】
環境温度が基準温度とほぼ等しい場合には、増幅器６２の出力電圧Ｖａは基準電圧Ｖｓにほぼ等しくなる。そのため、図８に示すように、ブレが存在する場合における出力電圧（角速度に応じた電圧）Ｖａは、基準電圧Ｖｓ（例えば１．５Ｖ）を中心に上下に周期的に変化する信号として検出されることになる。なお、図８は、基準温度環境下における、ジャイロセンサ６１の出力電圧Ｖａ（経時変化）の一例を示す図である。
【００７５】
ところが、ジャイロセンサ６１の出力電圧は、環境温度の影響を受けて変化する。そのため、環境温度が基準温度から大きくずれた場合には、出力電圧Ｖａが基準電圧Ｖｓから大きくずれることになる。そして、図９に示すように、ブレが存在する場合における出力電圧Ｖａは、基準電圧Ｖｓから大きくずれた或る電圧（例えば、電圧Ｖｂ１）を中心に上下に周期的に変化する信号として検出されることになる。
【００７６】
図９は、様々な環境下における、ジャイロセンサ６１の出力電圧Ｖａ（経時変化）の例を示す図である。一点鎖線Ｌ０は、基準温度環境下における出力電圧を示しており、実線Ｌ１は、或る使用環境Ｃ１における出力電圧を示しており、破線Ｌ２は、別の使用環境Ｃ２における出力電圧を示している。
【００７７】
例えば、使用環境Ｃ１においては、出力電圧Ｖａは、基準電圧Ｖｓから大きくずれた或る電圧Ｖｂ１を中心に上下に周期的に変化する信号として検出されている。同様に、使用環境Ｃ２においては、出力電圧Ｖａは、基準電圧Ｖｓから大きくずれた或る電圧Ｖｂ２を中心に上下に周期的に変化する信号として検出されている。
【００７８】
このように、環境温度の変動に起因する静止時電圧のオフセット量（例えば（Ｖｂ１−Ｖｓ））が存在するため、出力電圧Ｖａをそのまま角速度信号として採用すると、角速度信号が非常に不正確な値になってしまう。
【００７９】
そこで、この実施形態におけるブレ補正制御部２０１は、角速度検出開始時点でのジャイロセンサ６１の出力信号の信号レベルを基準レベルに設定して角速度信号の算出を開始し、各時点における角速度信号を算出する。
【００８０】
例えば、使用環境Ｃ１（出力信号Ｌ１参照）においては、角速度検出開始時点Ｔ０でのジャイロセンサ出力信号の増幅後の出力電圧Ｖａ１を基準レベルに設定して、角速度信号の算出が開始される。また、角速度信号は、基準レベルに対する相対値として算出され得る。具体的には、出力電圧Ｖａ１に対するＡ／Ｄ変換後の値Ｖｄ１を基準値に設定し、以後においては原則として、ジャイロセンサ６１の出力電圧Ｖａに対するＡ／Ｄ変換後の値Ｖｄと上記の値Ｖｄ１との差分値（Ｖｄ−Ｖｄ１）が、角速度信号を表す値として算出される。
【００８１】
また、他の使用環境Ｃ２（出力信号Ｌ２参照）においても同様である。使用環境Ｃ２においては、角速度検出開始時点Ｔ０でのジャイロセンサ出力信号の増幅後の出力電圧Ｖａ２を基準レベルに設定して、角速度信号の算出が開始される。そして、例えば、出力電圧Ｖａ２に対するＡ／Ｄ変換後の値Ｖｄ２を基準値に設定し、以後においては原則として、ジャイロセンサ６１の出力電圧Ｖａに対するＡ／Ｄ変換後の値Ｖｄと上記の値Ｖｄ２との差分値（Ｖｄ−Ｖｄ２）が、角速度信号を表す値として算出される。
【００８２】
このような角速度信号の算出によれば、ジャイロセンサ６１の信号レベルの温度特性を精度良く補償することが可能である。
【００８３】
特に、図９に示すように、環境温度に応じた静止時電圧のオフセット量は、手ブレによる角速度信号の変動量（例えば、手ブレを正弦波振動と仮定した場合の振幅）と比較して、非常に大きい。例えば、ジャイロセンサ６１からの増幅前の出力電圧で表現すると、手ブレによる角速度信号の変動量が数十ミリボルト程度であるのに対して、環境温度に応じた静止時電圧の変動量は数百ミリボルト程度になることもある。したがって、このような大きな誤差の発生要因である温度特性変化を補償することは非常に有意義である。
【００８４】
なお、使用環境Ｃ１に近い環境において、手ブレ等に起因する角速度信号の周期的変動が、角速度検出開始時点Ｔ０での出力電圧Ｖａ（例えばＶａ１）を中心に変動する場合には、ジャイロセンサ６１の温度特性を非常に精度良く補償することが可能である。一方、図９に示すように、手ブレ等に起因する角速度信号の周期的変動の中心が、時点Ｔ０での出力電圧Ｖａ（Ｖａ１等）からずれている場合には、補償精度は若干低下することになる。この場合においても、上述のような温度特性の補償が実現されているが、さらに、別途の手法によって、ジャイロセンサ６１の出力信号の低周波成分（特に直流成分）を除去することによれば、補償精度の改善を図ることが可能である。
【００８５】
例えば、ジャイロセンサ６１の増幅後の電圧Ｖｄの低周波成分（特に直流成分）を除去するようなハイパスフィルタを、ブレ補正制御部２０１においてソフトウエア的に構成すればよい。逆に言えば、上記のように角速度検出開始時点でのジャイロセンサ６１の出力信号の信号レベルを基準レベルに設定して角速度信号の算出を開始することによれば、ハイパスフィルタのみによっては除去不可能な温度特性による変動成分を補正することが可能になる。
【００８６】
図１０は、このようなハイパスフィルタの構成例を示す図である。
【００８７】
このハイパスフィルタ７１は、差分算出部７１ａと記憶部７１ｂと加算部７１ｃと記憶部７１ｄと乗算部７１ｅとＨＰＦ係数決定部７１ｆとを備えている。
【００８８】
差分算出部７１ａは、ジャイロセンサ６１からの入力信号（詳細には、Ａ／Ｄ変換後のジャイロデータ（角速度データ））と記憶部７１ｂの出力値（１回前のジャイロデータ）との差分値を算出し、加算部７１ｃに出力する。
【００８９】
記憶部７１ｂは、各時点でのジャイロセンサ６１からの入力データを一時的に記憶し、当該入力データを次の入力データの入力時に差分算出部７１ａへと出力する。この記憶部７１ｂには、角速度検出開始時点において、「ゼロ」ではなく、その時点での入力データの値が初期設定される。
【００９０】
加算部７１ｃは、差分算出部７１ａの出力値（すなわち上記差分値）と、乗算部７１ｅの出力値とを加算し、加算（積算）された値を角速度データとして出力する。この値が、ＨＰＦ処理されたジャイロデータになる。
【００９１】
記憶部７１ｄは、加算部７１ｃから出力された角速度データを一時的に記憶し、当該各速度データを次データの入力タイミングで乗算部７１ｅに出力する。すなわち、この記憶部７１ｄには、或る時点までの積算値が記憶され、次回の積算値を求める際に利用される。また、記憶部７１ｄには、角速度検出開始時点において、「ゼロ」が初期設定される。
【００９２】
乗算部７１ｅは、記憶部７１ｄの出力値にＨＰＦ係数を乗じて加算部７１ｃに出力する。このＨＰＦ係数は、ＨＰＦ係数決定部７１ｆによって決定される。
【００９３】
このような構成によれば、基本的には、今回の入力データ（ジャイロデータ）と前回の入力データ（記憶部７１ｂに格納されたジャイロデータ）との差分値が前回の出力データ（記憶部７１ｄに格納された出力データ）に対して加算部７１ｃによって加算（積算）されて、今回の出力データ（角速度データ）、換言すれば、現時点での角速度、として出力される。
【００９４】
また、記憶部７１ｂには、角速度検出開始時点において、「ゼロ」ではなく、その時点での入力データの値が初期設定されるため、出力データは、角速度検出開始時点を基準にして算出される。例えば、角速度検出開始時点の入力データと同じ値のジャイロデータが入力されるときには、所定値（ここでは「ゼロ」）が出力される。このように、ハイパスフィルタ７１の出力値は、角速度検出開始時点でのジャイロセンサ６１の出力信号の信号レベルを基準レベルに設定してその算出が開始された角速度信号となる。
【００９５】
また、仮にＨＰＦ係数を１に設定すると、ジャイロセンサ６１出力の基準変換後のデータがハイパスフィルタ７１の出力データとしてそのまま出力されることになる。これに対して、ここでは、ＨＰＦ係数として１よりも小さな値（例えば、０．９９５）を用いる。これによれば、乗算部７１ｅの出力値が前回の出力データの値よりも小さな値として出力され、入力されるジャイロデータの低周波成分（特に直流成分）を除去する機能を実現することができる。
【００９６】
さらに、ここでは、ＨＰＦ係数を経時的に変化させる。具体的には、ＨＰＦ係数は、角速度検出開始時点には第１の値（例えば、０．９９５０）に設定され、その後、漸増（詳細には、所定の割合で線形に増加）して、角速度検出開始時点から時間ｔ１（例えば、６００ｍｓ（ミリ秒））経過後には、第２の値（第１の値よりも大きな値、例えば、０．９９９７）になる。また、時間ｔ１経過後は第２の値を維持するように設定される。したがって、角速度検出開始時点から時間ｔ１が経過するまでの期間においては、ハイパスフィルタ処理におけるカットオフ周波数が徐々に（低周波側に）下がっていくことになる。端的に言えば、角速度検出開始当初はハイパスフィルタの大きな作用を得ると共に徐々にハイパスフィルタの作用を抑えていく動作が行われることになる。
【００９７】
このようなハイパスフィルタ７１を用いることによれば、演算開始から所定時間ｔ１経過後には、直流成分の影響が大きく低減された良好な角速度データを得ることが可能である。
【００９８】
＜２−２．ブレ角度の演算処理＞
次に、ブレ角度の演算処理について説明する。まず、図１１を参照しながら、ブレ演算部６５の詳細構成について説明する。
【００９９】
図１１は、ブレ演算部６５（６５Ｘ）の詳細構成を示す図である。上述したように、ブレ演算部６５は、ブレ補正制御部２０１においてソフトウエアプログラムが実行されることによって実現される処理部である。
【０１００】
図１１に示すように、ブレ演算部６５ＸはＮ個（ただし、Ｎは３以上の整数）のブレ演算器７０と、セレクタ７４とを有している。ここでは、Ｎ個のブレ演算器７０として３個のブレ演算器７０Ａ，７０Ｂ，７０Ｃを有する場合を例示する。
【０１０１】
各ブレ演算器７０Ａ，７０Ｂ，７０Ｃは、共通のジャイロセンサ６１の出力信号に基づいて、ブレ量の候補値（以下、単にブレ量とも称する）をそれぞれ個別に算出する。後述するように、各ブレ演算器７０Ａ，７０Ｂ，７０Ｃは、各ブレ量（候補値）の演算開始時刻が基本的に異なっており、各ブレ演算器７０Ａ，７０Ｂ，７０Ｃの演算値は互いに異なる値になる。
【０１０２】
セレクタ７４は、Ｎ個のブレ演算器７０のいずれかをメイン演算器として選択し、メイン演算器によって算出されたブレ量（候補値）を、ブレ演算部６５Ｘによるブレ量の演算結果（換言すれば、ブレの補正に用いるためのブレ量）として制御量演算部６６へ出力する。また、セレクタ７４は、Ｎ個のブレ演算器７０のうちメイン演算器以外のブレ演算器を複数（（Ｎ−１）個）のサブ演算器として決定する。サブ演算器は、ジャイロセンサ６１の出力信号に基づいて、比較的新しい時刻に開始された期間のブレ量を算出する。
【０１０３】
なお、メイン演算器は、その出力値がブレ演算部６５の出力値として出力されるブレ演算器であるとも表現され、サブ演算器は、ブレ演算部６５の出力値を決定する際に補助的な役割を果たすブレ演算器であるとも表現される。
【０１０４】
また、各ブレ演算器７０Ａ，７０Ｂ，７０Ｃは、それぞれ、ハイパスフィルタ（ＨＰＦ）７１と積分部７２と補正部７３とを有している。
【０１０５】
ハイパスフィルタ７１は、例えば上述のような構成を有しており、ジャイロセンサ６１から出力される信号に含まれる低周波成分（特に直流成分）を低減する。ハイパスフィルタ７１を通過した角速度信号においては、不要な低周波成分が良好に除去される。
【０１０６】
ただし、この低減効果を得るには演算開始から或る程度の時間ｔ１（例えば、６００ｍｓ（ミリ秒））を要するため、ブレ補正に用いるブレ量としては、各ブレ演算器７０の演算開始時刻から所定時間ｔ１を経過した時刻以後のブレ量を用いることが好ましい。
【０１０７】
また、積分部７２は、このハイパスフィルタ７１を通過して算出された角速度信号をさらに積分することによってブレ角度（ブレ量）を算出する。詳細には、前回までの積算値に新たな角速度データを加算（積算）することによって、ブレ角度を算出することができる。なお、この積算の際には、当該前回までの積算値に対して所定の係数（積算係数とも称する）を乗じた値に、新たな角速度データを加算することが好ましい。この積算係数としては、１より小さな値（例えば、０．９９９７）を採用する。これによれば、直流成分をさらに低減することが可能である。
【０１０８】
補正部７３は、積分部７２の出力値（候補値）を所定のタイミングで補正する。補正部７３は、或る時刻において当該時刻までの累積誤差を解消するための値を、積分部７２の出力値に加算することによって、積分部７２の出力値を補正する。たとえば、メイン演算器として選択される直前または直後に、直流成分を補償する補正処理を行うようにすればよい。この補正動作を行うことによれば、ブレ量の精度をさらに向上させることが可能である。
【０１０９】
このようにして、各ブレ演算器７０Ａ，７０Ｂ，７０Ｃは、ジャイロセンサ６１の出力信号を積分することにより、ブレ量（ブレ角度）の候補値を算出する。
【０１１０】
＜２−３．ブレ角度の検出原理について＞
ところで、上述したように、撮像装置１の操作者は、撮影技法のひとつとして、意図的に当該撮像装置を所定方向に（例えば水平方向に）動かすパンニング操作等を行うことがある。
【０１１１】
しかしながら、パンニング操作等が行われるときに、ジャイロセンサ６１の出力値の積算値をそのまま用いてブレ補正制御を行うものとすると、ジャイロセンサ６１の低周波成分（特にブレ演算開始以後に増加した直流成分）の影響によってブレ補正性能が低下してしまう。
【０１１２】
例えば、パンニング操作の終了間際の角速度の減少期間ＤＭ（図１２参照）においては、手ブレ成分以外にパンニングによる速度成分（詳細には角速度の漸減成分）が存在し、その影響によって、当該角速度を積分して算出したブレ量の精度は大きく低下する。そのため、当該ブレ量をそのまま継続的に用いてブレ補正を行うと、ブレ補正性能の低下を招来してしまう。
【０１１３】
そこで、本願発明者は、パンニングの影響を低減するため、ブレ演算量が所定条件を満たさない場合（ブレ量が非常に大きな値になってしまうなどの異常状態が発生した場合）には、異なるタイミングで演算が開始された別のブレ演算の演算値に基づいてブレ量を算出する、という技術を発案した。別のブレ演算の演算値を用いることによって、パンニングの影響等を低減することが可能である。
【０１１４】
図１２は、ブレ演算精度の向上原理等を説明するための図であり、パンニング操作が終了する際のジャイロセンサ６１の出力信号等を示している。
【０１１５】
ここでは、まず、２つのブレ演算器７０Ａ，７０Ｂを用いる場合を想定する。
【０１１６】
具体的には、図１２に示すように、２つのブレ演算器７０Ａ，７０Ｂのうち、一方のブレ演算器をメイン演算器とし、他方のブレ演算器をサブ演算器として設定する。
【０１１７】
その後、メイン演算器とサブ演算器とを入れ替えるか否かを判定する判定処理を行う。
【０１１８】
メイン演算器によるブレ量が所定条件を満たす間は、メイン演算器をそのまま維持する。低周波成分の影響を低減するためには、ブレ演算器の演算時間は基本的には長い方が好ましいからである。
【０１１９】
一方、メイン演算器によるブレ量が所定条件（例えば、ブレ量が所定の閾値を越えないこと）を満たさない場合には、所定の判定時点でサブ演算器とメイン演算器とを入れ替え、入れ替え後のメイン演算器によるブレ量をブレ演算部６５のブレ量（演算結果）として出力する。なお、１回の入れ替え操作だけでメイン演算器の出力値が正しい値になるとは限らない。そのため、パンニングの影響が未だ残っている場合には、メイン演算器の入れ替えがさらに繰り返された後に、当該メイン演算器によるブレ量が所定条件を満たすようになる。ここにおいて、サブ演算器は、メイン演算器と異なる期間（詳細には、その演算開始時刻がメイン演算器よりも後の期間）にわたるブレ量を演算しているため、パンニングの影響を低減することが可能になる。
【０１２０】
また、メイン演算器として採用されなかったブレ演算器は、その出力値をリセットして、サブ演算器としてブレ演算を再開し、メイン演算器との次の入れ替えタイミング（時間ｔ１後の判定タイミング）に向けて準備する。
【０１２１】
また、低周波成分の影響を低減してブレ量をより正確な値にするため、メイン演算器の出力になるサブ演算器としては、その演算期間として時間ｔ１が経過したサブ演算器を用いるものとする。
【０１２２】
以降、同様の動作を順次繰り返して行う。
【０１２３】
なお、図１２においては、太枠の矩形を付して示す期間はそのブレ演算器がメイン演算器として機能していることを示し、細枠の矩形を付して示す期間はそのブレ演算器がサブ演算器として機能していることを示している。
【０１２４】
上記の判定動作は、所定の時間間隔Δｔａで行われる。時間間隔Δｔａは短い方が好ましい。ただし、２つのブレ演算器７０Ａ，７０Ｂを用いる場合には、この時間間隔Δｔａを時間ｔ１より短くしても、待ち時間（入れ替え対象のサブ演算器の演算時間が時間ｔ１に到達するのを待つ時間）が生じるため、時間間隔Δｔａを時間ｔ１に設定するものとする。また、このように、所定の時間間隔Δｔａで判定動作が行われると、メイン演算器として採用されなかった複数のサブ演算器は、時間間隔Δｔａで順次にリセットされてブレ演算動作を開始することになる。サブ演算器は、メイン演算器とは演算対象期間が異なるため、メイン演算器とは異なる値のブレ量を算出する。
【０１２５】
上記のように２つのブレ演算器７０Ａ，７０Ｂを用いる場合には、ブレ量の変動要因が消滅した後（例えば、パンニング停止後）、例えば時間ｔ１から時間ｔ１の２倍程度の期間で、再び正確なブレ量を算出することが可能である。
【０１２６】
具体的には、ジャイロセンサ６１の信号が図１２の実線Ｌ１０のように変化する場合には、各ブレ演算器７０Ａ，７０Ｂが期間Δｔａごとに交互にメイン演算器として選択され、時刻Ｔ３３以後においては連続してブレ演算器７０Ａがメイン演算器として選択される。詳細には、ブレ演算器７０Ａは、時刻Ｔ３２からサブ演算器としてブレ演算を開始した後、時刻Ｔ３３にメイン演算器になる。この時刻Ｔ３３以降のブレ演算器７０Ａの出力値は、演算開始時刻Ｔ３２から時間ｔ１が経過していることに加えて、時刻Ｔ３２よりも前のジャイロセンサ６１出力の影響を受けずに済むため、正常な値になる。したがって、ブレ演算器の出力値は、パンニング停止（時刻Ｔ３１）から時間ｔ１の約２倍の時間ｔ３が経過した後に正常になる。
【０１２７】
また、ジャイロセンサ６１の信号が図１２の破線Ｌ１１のように変化する場合には、ブレ演算器の出力値は、パンニング停止（時刻Ｔ３４）後から時間ｔ１にほぼ等しい時間ｔ４が経過した時刻Ｔ３３以降において、正常になる。
【０１２８】
ここにおいて、ブレ量の変動要因が消滅してから（例えば、パンニング停止後）、再び正確なブレ量が算出されるまでの時間は短い方が好ましい。
【０１２９】
そこで、本願発明者は、ブレ量の変動要因が消滅した後から、再びブレ補正可能状態になるまでの期間を短縮することが可能な技術をさらに案出した。
【０１３０】
図１３は、このようなブレ演算の基本原理等を説明するための図である。このブレ演算によれば、正確なブレ演算値をより早期に出力することが可能である。図１３においては、図１２と同様にパンニング操作が終了する際のジャイロセンサ６１の出力信号等が示されているとともに、３つのブレ演算器７０Ａ，７０Ｂ，７０Ｃの各出力値が概念的に示されている。
【０１３１】
具体的には、３個以上のブレ演算器７０（ここでは３つのブレ演算器７０Ａ，７０Ｂ，７０Ｃ）を用いる。まず、Ｎ個（ここではＮ＝３）のブレ演算器のうちの一つをメイン演算器として選択し、Ｎ個のブレ演算器のうちメイン演算器以外のブレ演算器を複数（（Ｎ−１）個）のサブ演算器として決定する。
【０１３２】
また、複数のサブ演算器は、メイン演算器との入れ替え対象となるための準備動作（予備的なブレ演算動作）を行う。具体的には、複数のサブ演算器は、その演算開始時刻が時間ｔ２ずつずれた状態で、順次に演算動作を開始する。また、複数のサブ演算器は、できるだけ直近の期間のブレ量を新規に算出するように、それぞれ、時間ｔ１経過ごとに演算量をリセットしてブレ量の演算動作を新規に開始する。さらに、メイン演算器の出力値の精度をさらに向上させるため、ブレ演算開始から時間ｔ１経過したサブ演算器を入れ替え候補にしてメイン演算器との入れ替え判定を行う。
【０１３３】
また、メイン演算器によるブレ量が所定条件を満たすか否かに応じて、メイン演算器を変更するか否かを、期間ｔ２（ただし、ｔ２＝ｔ１／（Ｎ−１））ごとに判定する。詳細には、複数のサブ演算器のいずれかのサブ演算器の演算時間が時間ｔ１に到達したこと（当該サブ演算器の演算開始時刻から時間ｔ１が経過したこと）に応答して、メイン演算器を変更するか否かを判定する。
【０１３４】
メイン演算器によるブレ量が所定条件を満たす間は、メイン演算器をそのまま維持する。低周波成分の影響を低減するためには、ブレ演算器の演算時間は基本的には長い方が好ましいからである。一方、メイン演算器によるブレ量が所定条件を満たさなくなると、その直後の判定時点で一つのサブ演算器をメイン演算器に変更し、変更後のメイン演算器の演算結果をブレ演算部６５のブレ量（演算結果）として出力する。なお、１回の入れ替え操作だけでメイン演算器の出力値が正しい値になるとは限らない。そのため、パンニングの影響が未だ残っている場合には、メイン演算器の入れ替えがさらに繰り返された後に、当該メイン演算器によるブレ量が所定条件を満たすようになる。ここにおいて、サブ演算器は、メイン演算器と異なる期間（詳細には、その演算開始時刻がメイン演算器よりも後の期間）にわたるブレ量を演算しているため、パンニングの影響を低減することが可能になる。
【０１３５】
また、上記の判定動作は、所定の時間間隔Δｔｂで繰り返し行われる。この時間間隔Δｔｂは短い方が好ましい。ただし、３つ以上のブレ演算器７０を用いる場合には、この時間間隔Δｔｂを上記の時間ｔ２（すなわち、時間ｔ１をサブ演算器の数（Ｎ−１）で除した値）に設定して、Ｎ回以上の判定動作を繰り返して行う際にも待ち時間（入れ替え対象のサブ演算器の演算時間が時間ｔ１に到達するのを待つ時間）が発生しないようにしている。
【０１３６】
また、メイン演算器とサブ演算器との入れ替えが行われると、それまでサブ演算器であったブレ演算器がメイン演算器として動作するとともに、それまでメイン演算器であったブレ演算器がサブ演算器になる。一方、メイン演算器とサブ演算器との入れ替えが行われない場合には、サブ演算器は引き続きサブ演算器である。
【０１３７】
入れ替えが行われた場合にも行われなかった場合にも、入れ替え対象のいずれかのブレ演算器は、判定時点においてリセットされて、サブ演算器としてブレ演算動作を再開することになる。そのため、（Ｎ−１）個のサブ演算器は互いに時間ｔ２ずれた状態で動作することになる。また、各サブ演算器は、メイン演算器とは演算対象期間が異なるため、メイン演算器とは異なる値のブレ量を算出する。
【０１３８】
以上のような動作によれば、ブレ量の変動要因が消滅した後（例えば、パンニング停止後）、時間ｔ１から時間ｔ１の１．５倍程度の期間で、再び正常なブレ量を検出することが可能になる。このことについて図１３を参照しながら説明する。
【０１３９】
具体的には、ジャイロセンサ６１の信号が図１３の実線Ｌ１４のように変化する場合には、各ブレ演算器７０Ａ，７０Ｂ，７０Ｃが期間Δｔｂごとに交互にメイン演算器として選択され、時刻Ｔ３６以後においては連続してブレ演算器７０Ａがメイン演算器として選択される。
【０１４０】
詳細には、ブレ演算器７０Ａは、時刻Ｔ３５からサブ演算器としてブレ演算を開始した後、時刻Ｔ３６にメイン演算器になる。この時刻Ｔ３６以降のブレ演算器７０Ａの出力値は、演算開始時刻Ｔ３５から時間ｔ１が経過していることに加えて、時刻Ｔ３５よりも前のジャイロセンサ６１出力の影響を受けずに済むため、正常な値になる。したがって、ブレ演算器の出力値は、パンニング停止（時刻Ｔ３１）から時間ｔ１の約１．５倍の時間ｔ６が経過した時刻Ｔ３６以降は、正常になる。
【０１４１】
また、ジャイロセンサ６１の信号が図１２の破線Ｌ１１のように変化する場合には、ブレ演算器の出力値は、パンニング停止（時刻Ｔ３８）後から時間ｔ１にほぼ等しい時間ｔ７が経過した時刻Ｔ３６以降において、正常になる。
【０１４２】
以上のように、Ｎ個のブレ演算器の中から適切なブレ演算器がメイン演算器として選択され、当該メイン演算器によって算出されたブレ量が、当該ブレ演算部６５による演算結果（Ｎ個のブレ演算器７０によるブレ量）として出力される。したがって、ブレ量の算出精度の低下を抑制することが可能である。
【０１４３】
詳細には、各サブ演算器は、それぞれ、第１の所定時間が経過するごとに演算動作を新規に開始するので、各サブ演算器はメイン演算器とは異なる期間を対象にしてブレ量を算出し、パンニング操作の影響を低減したブレ演算量を予備的に算出することができる。また、複数のサブ演算器を含むＮ個のブレ演算器のいずれかがメイン演算器として選択され、選択されたブレ演算器によって算出されたブレ量（候補値）が、当該ブレ演算装置によるブレ量の演算結果として出力されるので、ブレ量の演算結果としてパンニング操作の影響を低減した値を出力することが可能である。さらに、サブ演算器は、演算開始から第１の所定時間が経過したブレ演算量を予備的に算出しておくことができるので、ジャイロセンサ６１の出力の低周波成分の影響を低減したブレ量を出力することが可能である。
【０１４４】
また、複数のサブ演算器は、各演算開始時刻が時間ｔ２（＝ｔ１／（Ｎ−１））ずつずれた状態で順次に演算動作を開始するので、複数のサブ演算器は効率的に新規の演算動作を開始することができる。さらに、メイン演算器を変更するか否かが、（時間ｔ１よりも小さな）時間ｔ２間隔で決定されるので、単一のサブ演算器を用いる場合に比べて、メイン演算器を早期に更新することが可能である。
【０１４５】
また、複数のサブ演算器のうちのいずれかのサブ演算器の演算時間が時間ｔ１に到達したことに応答して、当該サブ演算器を対象にしてメイン演算器を変更するか否かが決定されるので、演算開始から時間ｔ１経過したサブ演算器を即時に対象にして、当該決定動作を効率的に行うことができる。
【０１４６】
なお、異常判定（メイン演算器によるブレ量が所定条件を満たさない旨の判定）から正常判定（メイン演算器によるブレ量が所定条件を満たす旨の判定）に移行した後においても、暫くは、未だパンニングの影響が残っている可能性が高い。そのため、以下の態様においては、異常判定がなされた後、所定期間にわたって正常判定が継続するまで、時間ｔ２ごとにメイン演算器を無条件に変更するものとする。具体的には、入れ替えカウンタＣＴ（後述）を用いて、時間ｔ２のＫ倍（ここではＫ＝２）に相当する時間にわたって正常判定が継続するまで、時間ｔ２ごとにメイン演算器を無条件に変更するものとする。この結果、正常判定に転換した直後よりもさらに後の時点で開始されたブレ演算の演算値が、ブレ演算部６５のブレ量として出力される。これによれば、パンニングの影響をさらに低減し、より高精度のブレ量を得ることが可能になる。
【０１４７】
また、上述のように、時刻Ｔ３６以降のブレ演算器７０Ａによる演算値が正常なブレ量として出力されるが、当該時刻Ｔ３６以前の演算値であっても比較的高精度の値が得られることもある。例えば、時刻Ｔ３７から時刻Ｔ３６までのブレ演算器７０Ｃによる演算値は、パンニング停止直前のジャイロセンサ６１出力の影響を受けてはいるが、その影響は比較的小さい。そこで、以下に詳述する態様においては、時刻Ｔ３７以降のブレ演算器７０Ｃによる演算値を正常な値とみなし、当該演算値を用いてブレ補正駆動を行う場合を例示する。一方、異常判定から正常判定に移行した直後の時刻Ｔ３５から時刻Ｔ３７までの期間においては、ブレ演算器７０Ｂによる演算値は未だ正常ではないとみなして、ブレ補正制御駆動を行わないものとする。
【０１４８】
＜２−４．詳細動作＞
＜プログラム概略＞
次に、上記のブレ演算動作およびブレ制御動作を実現するプログラムの一例について詳述する。
【０１４９】
図１４に示すように、この実施形態においては、１つのメインルーチンＲ０と３つの割り込みルーチン（詳細には、交信処理ルーチンＲ１、信号入力処理ルーチンＲ２、ならびに、ブレ演算処理ルーチンＲ３）とを含んで構成されるソフトウエアプログラムがブレ補正制御部２０１によって実行される。図１５は、メインルーチンＲ０の内容を示すフローチャートである。また、図１６は、交信処理ルーチンＲ１の内容を示すフローチャートであり、図１７は、信号入力処理ルーチンＲ２の内容を示すフローチャートである。また、図１８は、ブレ演算処理ルーチンＲ３の内容を示すフローチャートである。
【０１５０】
交信処理ルーチンＲ１は、全体制御部１０１との間の通信動作を行うものであり、全体制御部１０１との間の交信信号に応じて発生する割り込み信号に応じて実行される。
【０１５１】
信号入力処理ルーチンＲ２は、ジャイロセンサ６１の出力信号を入力するものであり、所定の微少時間ｔ０間隔（例えば、０．５ｍｓ（ミリ秒））ごとのタイマ割り込み信号に応じて起動されて実行される。
【０１５２】
ブレ演算処理ルーチンＲ３は、ブレ量の演算動作およびブレ補正動作を行うものであり、微少時間ｔ０間隔ごとのタイマ割り込み信号に応じて起動されて実行される。
【０１５３】
また、これら３つの割り込みルーチンＲ１，Ｒ２，Ｒ３の割り込み優先順位に関しては、交信処理ルーチンＲ１の優先順位が最も高く、ブレ演算処理ルーチンＲ３の優先順位が最も低い。
【０１５４】
したがって、交信処理ルーチンＲ１の優先順位が最も高く、全体制御部１０１とブレ補正制御部２０１との交信処理が最も優先して実行されるので、交信データの欠落が防止される。
【０１５５】
また、信号入力処理ルーチンＲ２は、非常に短時間の処理であるため、交信処理ルーチンＲ１の合い間を縫って高頻度に実行可能であり、原則として所定時間ｔ０間隔に起動されて実行される。
【０１５６】
また、ブレ演算処理ルーチンＲ３は、原則として所定時間ｔ０間隔で起動されるが、最も優先順位が低いため、他の２つのルーチンＲ１，Ｒ２の処理が行われていない空き時間に実行される。そのため、ブレ演算処理ルーチンＲ３による処理は、交信処理および入力処理に遅れて実行されることがある。具体的には、交信処理および複数の入力処理が先に実行され、その後に当該複数の入力処理によって入力された複数の信号に対して纏めてブレ演算処理ルーチンによる処理が実行されることもある。
【０１５７】
以下では、これらの各処理ルーチンについて順に説明する。
【０１５８】
＜メインルーチン＞
まず、図１５を参照してメインルーチンＲ０について説明する。
【０１５９】
撮像装置１のメインスイッチ８１の操作によって、撮像装置１の電源がオンされると、ステップＳＰ１において、ジャイロセンサ６１および増幅器６２にも電力が供給され、ジャイロセンサ６１および増幅器６２がそれぞれの動作を開始する。
【０１６０】
その後、ステップＳＰ２において全体制御部１０１からの受信データの存在が確認されるまで待ち状態になり、受信データの存在が確認されるとステップＳＰ３に進む。全体制御部１０１からの受信データは、上述の割り込み処理によって交信処理ルーチンＲ１によって受信され、ステップＳＰ２で新規受信データの有無が判断される。
【０１６１】
ステップＳＰ３では、受信データの内容に基づいて、ブレ演算動作等が必要か否かを判定する。例えば、ブレ演算動作等を開始すべき旨の指令（「ブレ制御開始指令」とも称する）が含まれている場合には、ブレ演算動作等が必要であると判定される。また、ブレ演算動作等を停止すべき旨の指令（「ブレ制御停止指令」とも称する）が含まれている場合には、ブレ演算動作等が不要であると判定される。ブレ制御開始指令あるいはブレ制御停止指令は、撮像装置１における設定内容およびレリーズボタン１１等の押下状態に応じて全体制御部１０１によって生成され、適宜のタイミング（例えばレリーズボタン１１が半押し状態Ｓ１にされた時点）でブレ補正制御部２０１へ送出されるコマンドである。
【０１６２】
ステップＳＰ３でブレ演算動作等が必要であると判定されると、ステップＳＰ４に進みブレ演算動作等に関する各種の初期設定動作を行う。
【０１６３】
具体的には、ステップＳＰ４においては、複数のブレ演算器７０のうちの一の演算器（ここではブレ演算器７０Ａ）をメイン演算器として選択する。また、ステップＳＰ５においては、ブレ演算器７０Ａ，７０Ｂ，７０Ｃの初期設定、詳細にはハイパスフィルタ７１におけるＨＰＦ係数の設定動作等が行われる。
【０１６４】
その後、ステップＳＰ６において、２つの処理ルーチンＲ２，Ｒ３をそれぞれ起動させるための各割り込み発生用タイマＴＭ２，ＴＭ３を起動する。起動された各割り込み発生用タイマＴＭ２，ＴＭ３は、それぞれ、時間ｔ０間隔でタイマ割り込み信号を発生する。この結果、対応する各処理ルーチンＲ２，Ｒ３がそれぞれの優先順位に応じて実行されることになる。
【０１６５】
一方、ステップＳＰ３でブレ演算動作等が不要であると判定されると、ステップＳＰ７に進み、各割り込み発生用タイマＴＭ２，ＴＭ３を停止し、各割り込み処理ルーチンＲ２，Ｒ３の実行を停止する。
【０１６６】
＜交信処理ルーチン＞
交信処理ルーチンＲ１は、１バイト単位のデータ通信に応じて起動される。図１６に示すように、交信処理ルーチンＲ１においては、送信データを送信用バッファに格納する処理（ステップＳＰ１１）、および受信データを受信領域から所定のメモリ領域に待避させて格納する処理（ステップＳＰ１２）が実行される。
【０１６７】
＜信号入力処理ルーチン＞
信号入力処理ルーチンＲ２は、所定時間ｔ０ごとにタイマ起動される。図１７に示すように、信号入力処理ルーチンＲ２においては、ジャイロセンサ６１から入力されたアナログ信号をデジタル信号（デジタルデータ）に変換するＡ／Ｄ変換処理（ステップＳＰ２１）が行われるとともに、変換後のデジタルデータを蓄積部６４に記憶する処理（ステップＳＰ２２）が行われる。また、この記憶処理は、複数のデジタルデータをバッファリングしておくバッファリング処理である。次回入力される最新データを記憶すべき位置を示す記録アドレスをインクリメントする処理も行われる（ステップＳＰ２３）。
【０１６８】
＜ブレ演算処理ルーチン＞
ブレ演算処理ルーチンＲ３は、原則として所定時間ｔ０ごとにタイマ起動され、ブレ演算処理を行うとともに、必要に応じてブレ補正処理を行う。
【０１６９】
ブレ演算処理ルーチンＲ３においては、まず、ジャイロセンサ６１信号の読出処理（ステップＳＰ３１）が行われる。図１９は、当該読出処理の詳細動作を示すフローチャートである。
【０１７０】
図１９に示すように、まずステップＳＰ４１において、読出アドレスと記録アドレスとの同一性が判定される。
【０１７１】
読出アドレスと記録アドレスとが同一でないと判定される場合には、未読データが残存していると判定され、蓄積部６４からの読出処理等が行われる。具体的には、読出アドレスに格納されているジャイロデータ（デジタルデータ）が読み出され（ステップＳＰ４２）、読出アドレスがインクリメントされる（ステップＳＰ４３）。
【０１７２】
一方、読出アドレスと記録アドレスとが同一であると判定される場合には、バッファリングされている全データが読み出し済みであると判定されて、ステップＳＰ３１の処理が終了する。
【０１７３】
次に、ステップＳＰ３２（図１８）において、未処理のジャイロデータが存在するか否かが判定される。ステップＳＰ３１（ステップＳＰ４２）においてジャイロデータが読み出された場合には、未処理のジャイロデータが存在すると判定されてステップＳＰ３３に進む。また、複数の未処理ジャイロデータが存在する場合には、次述するステップＳＰ３３およびステップ３４が未処理ジャイロデータ数に対応する回数繰り返される。一方、ステップＳＰ３１（ステップＳＰ４２）においてジャイロデータが読み出されなかった場合には、未処理のジャイロデータが存在しないと判定されて、このブレ演算処理ルーチンＲ３の処理は一旦終了する。
【０１７４】
ステップＳＰ３３においては、ブレ演算処理が行われる。ステップＳＰ３３のブレ演算処理においては、上述のブレ演算部６５の処理内容が実行される。このブレ演算処理について後に詳述する。
【０１７５】
次のステップＳＰ３４においては、ブレ補正処理が行われる。ステップＳＰ３４のブレ補正処理においては、上述の制御量演算部６６の処理内容等が実行される。
【０１７６】
＜ステップＳＰ３４（ブレ補正処理）＞
図２２は、ステップＳＰ３４の処理内容を示すフローチャートである。
【０１７７】
この実施形態においては、本撮影画像生成のための露光中においてのみブレ補正駆動を行うものとする。ただし、露光開始時点で大きなパンニング操作が行われていると判定されるときには、ブレ補正駆動を行わないものとする。
【０１７８】
図２２に示すように、まず、ステップＳＰ９１〜ＳＰ９５においては、ブレ補正駆動動作を行うべきか否かが判定される。
【０１７９】
具体的には、まず、信号線ＥＸＰの信号レベルに基づいて、露光中であるか否かが判定される。
【０１８０】
露光中でないと判定される場合には、ブレ補正量演算処理（ステップＳＰ９６）を行うことなく、ステップＳＰ３４の処理を終了する。
【０１８１】
露光中であると判定されるとステップＳＰ９２に進み、露光中の補正禁止フラグＦ４（次述）がセットされているか否かが判定される。補正禁止フラグＦ４は、後述するように、ブレ補正駆動の禁止を意味するフラグである。
【０１８２】
当該補正禁止フラグＦ４がセットされている場合には、ブレ補正駆動を行うべきではないものとして、ブレ補正量演算処理（ステップＳＰ９６）を行うことなく、ステップＳＰ３４の処理を終了する。
【０１８３】
一方、当該補正禁止フラグＦ４がセットされていない場合には、ステップＳＰ９３に進む。ステップＳＰ９３〜ステップＳＰ９５においては、補正禁止フラグＦ４をセットすべきか否かが判定され、必要な場合に補正禁止フラグＦ４がセットされる。具体的には、その判断時点が露光の開始時点であり（ステップＳＰ９３）且つその時点においてフラグＦ１またはフラグＦ３がセットされている（Ｆ１＝１またはＦ３＝１）場合には、補正禁止フラグＦ４がセットされる（Ｆ４＝１）。一方、それ以外の場合（具体的には、現時点が露光開始時点ではない場合、または、フラグＦ１およびフラグＦ３の双方がセットされていない場合（Ｆ１＝０且つＦ３＝０である場合）には補正禁止フラグＦ４はセットされず（Ｆ４＝０）、ステップＳＰ９６に進む。なお、フラグＦ１，Ｆ３は、それぞれ、ブレ補正禁止を意味するフラグである。ただし、後述するように、両フラグは、セットされるタイミングが異なっており、ここでは２つのフラグに基づいて、ブレ補正の禁止および許可を判定する。
【０１８４】
ステップＳＰ９６においては、ブレ補正量の演算処理および出力処理が行われる。具体的には、ステップＳＰ３３で算出されたブレ角度等に基づいて、ブレを打ち消すための駆動量（ブレ補正量）が決定され、当該駆動量に応じた駆動信号がドライバ６７に出力される。この結果、ドライバ６７がアクチュエータ６８を駆動することによって、撮像装置１のブレを打ち消すように撮像素子５が移動される。
【０１８５】
上記の動作によれば、露光開始時点においてフラグＦ１，Ｆ３のいずれかがセットされている場合には、ステップＳＰ９６の動作は行われず、当該露光期間においてはブレ補正駆動動作は行われない。一方、露光開始時点においてフラグＦ１およびＦ３のいずれもセットされていない場合には、当該露光期間中において、ステップＳＰ９６の処理が時間間隔ｔ０で繰り返して実行され、ブレ補正駆動動作が行われる。
【０１８６】
＜ステップＳＰ３３（ブレ演算処理）＞
また、以下では、図２０のフローチャートを参照しながら、ステップＳＰ３３のブレ演算処理について説明する。
【０１８７】
図２０に示すように、まず、ステップＳＰ５１において各ブレ演算器７０Ａ，７０Ｂ，７０Ｃにおける各ブレ量の演算処理が行われる。
【０１８８】
各ブレ演算器７０Ａ，７０Ｂ，７０Ｃは、それぞれ、上述したように、蓄積部６４Ｘから順次に読み出したジャイロデータに対してハイパスフィルタ７１を作用させて、ブレに関する角速度（ブレ角速度）を算出する。そして、さらに当該角速度を積分（積算）することによって角度（ブレ角度）を算出する。このブレ角度は、各ブレ演算器７０Ａ，７０Ｂ，７０Ｃについてそれぞれ算出される。このような積分処理が、所定時間間隔ｔ０でステップＳＰ３３が読み出されるごとに行われ、各ブレ演算器７０Ａ，７０Ｂ，７０Ｃの各演算開始時刻からのブレ角度（ブレ量）が算出されることになる。
【０１８９】
なお、この実施形態においては、上述のように、ハイパスフィルタ７１におけるＨＰＦ係数は、ブレ演算開始時刻から所定時間ｔ１にわたって徐々に漸増するようにＨＰＦ係数決定部７１ｆによって変更される。また、補正部７３による補正処理が、メイン演算器として選択される直前（あるいは直後でもよい）にのみ行われる。
【０１９０】
また、各ブレ演算器７０Ａ，７０Ｂ，７０Ｃの各演算開始時刻は、互いに異なっている。具体的には、初期状態においては、メイン演算器であるブレ演算器７０Ａの演算は、ステップＳＰ３３が最初に実行される時点から開始される。サブ演算器である他の２つのブレ演算器７０Ｂ，７０Ｃの演算は、互いに時間ｔ２（例えば、３００ｍｓ（ｔ１＝６００ｍｓのとき））ずれて実行される。詳細には、ブレ演算器７０Ｂの演算は、ブレ演算器７０Ａの演算開始時刻と同時刻から開始され、ブレ演算器７０Ｃの演算は、ブレ演算器７０Ａの演算開始時刻から時間ｔ２経過した後に開始される。なお、以後、メイン演算器が変更され、メイン演算器が入れ替わった後においても、変更後の残りのサブ演算器は互いに時間ｔ２ずれて演算を開始する。
【０１９１】
また、時間ｔ１の経過を判定するためのタイマが、各ブレ演算器７０Ａ，７０Ｂ，７０Ｃごとに設けられている。ブレ演算器７０Ａ，７０Ｂ，７０Ｃのいずれか２つ（例えば２つのサブ演算器）の演算開始時刻は、互いに時間ｔ２ずれているため、少なくとも時間ｔ２が経過するごとに、ブレ演算器７０Ａ，７０Ｂ，７０Ｃの各タイマのいずれかによって時間ｔ１の経過が検出される。なお、各ブレ演算器７０Ａ，７０Ｂ，７０Ｃの開始タイミングの初期設定は、ステップＳＰ５（図１５参照）において行われている。具体的には、３つのブレ演算器７０Ａ，７０Ｂ，７０Ｃのうち、ブレ演算器７０Ａ，７０Ｂについてはタイマ初期値を設定し、ブレ演算器７０Ｃについては時間ｔ２（＝ｔ１／２）が経過した後の値をダミー設定することによって、上記の演算開始時刻のずれを実現することができる。
【０１９２】
この実施形態においては、ブレ演算器７０Ａ，７０Ｂ，７０Ｃの各タイマが時間ｔ２ごとに時間経過を検出することを利用し、この検出時点においてメイン演算器の選択判定処理を行う。
【０１９３】
具体的には、ステップＳＰ５２において、ブレ演算器７０Ａ，７０Ｂ，７０Ｃのいずれか（ここでは２つのサブ演算器）のタイマが時間ｔ１の経過を検出した時点を、判定タイミングとして判定する。判定タイミングであると判定される場合にはステップＳＰ５３に進み、判定タイミングでないと判定される場合にはステップＳＰ５４に進む。したがって、ステップＳＰ５３の処理は、基本的には時間ｔ２（例えば、３００ｍｓ）ごとに実行されることになる。ステップＳＰ５３の処理については次述する。
【０１９４】
ステップＳＰ５４〜ＳＰ５７においては、メイン演算器として現在選択されているブレ演算器が算出したブレ角度（ブレ量）に基づいて、パンニング操作の有無等を判定する。具体的には、ブレ角度（詳細には、その絶対値）が所定値ＴＨ１以上である場合には、大きなパンニング操作が行われているものと判定し、パンニングフラグＦ１をセットする（例えば、その値を「１」に設定する）。換言すれば、メイン演算器によって算出されたブレ量（候補値）が所定値ＴＨ１を越えるとき（および所定値ＴＨ１に等しいとき）には、当該メイン演算器によるブレ量が不適切（ブレ演算異常）であると判定するのである。
【０１９５】
また、ブレ角度（詳細には、その絶対値）が所定値ＴＨ１未満であり且つ所定値ＴＨ２（ただし、ＴＨ２＜ＴＨ１）以上である場合には、小さなパンニング操作が行われているものと判定し、パンニングフラグＦ２をセットする。なお、このステップＳＰ５４〜ＳＰ５７の処理は、ステップＳＰ３３が実行されるごとに行われるので、基本的には時間ｔ０（例えば、０．５ｍｓ）ごとに実行されることになる。
【０１９６】
一方、ステップＳＰ５３においては、図２１に示すような各処理が行われる。
【０１９７】
まず、ステップＳＰ６１〜ＳＰ６３において、各フラグ等の値に応じた分岐処理が行われる。フラグＦ１がセットされている場合にはステップＳＰ６６に進み、フラグＦ２がセットされている場合にはステップＳＰ７４に進む。また、いずれのフラグＦ１，Ｆ２もセットされておらず且つ入れ替えカウンタＣＴがセットされている（ＣＴ＝１あるいは２）場合にはステップＳＰ８１に進み、いずれのフラグＦ１，Ｆ２もセットされておらず且つ入れ替えカウンタＣＴもリセットされている（ＣＴ＝０）場合にはステップＳＰ６４に進む。
【０１９８】
ステップＳＰ６６においては、露光中でないことを確認した上で、メイン演算器のリセット処理（ステップＳＰ６７）とメイン演算器の入れ替え処理（ステップＳＰ６８）とが行われる。なお、露光中においては、メイン演算器の入れ替え等によってブレ量が不連続になることを防止するため、これらの処理（ステップＳＰ６７，ＳＰ６８）を行わないものとする。
【０１９９】
フラグＦ１がセットされている場合、すなわち、大きなパンニング操作が行われている場合には、メイン演算器を別のブレ演算器（サブ演算器）に変更する。これによって、パンニングの影響を大きく受けるブレ演算器の出力値が、ブレ演算部６５の出力として制御量演算部６６へと出力されることが防止される。ここにおいて、入れ替え対象となるサブ演算器は、ステップＳＰ５２で時間ｔ１の経過を検出したタイマに対応するブレ演算器である。
【０２００】
例えば、ブレ演算器７０Ａがメイン演算器であるときに、サブ演算器であるブレ演算器７０Ｂがその演算開始から時間ｔ１経過したことが当該ブレ演算器７０Ｂのタイマによって検出されたとする。このとき、フラグＦ１がセットされていることが確認されると、今度はブレ演算器７０Ｂがメイン演算器として設定され、それまでメイン演算器であったブレ演算器７０Ａは、サブ演算器に設定される。また、メイン演算器のリセット処理（ステップＳＰ６７）によって、それまでメイン演算器であったブレ演算器７０Ａの演算量とそのタイマとは共にリセットされ、ブレ演算器７０Ａは、サブ演算器として演算を開始する。なお、ブレ演算器７０Ｂは、メイン演算器になっても演算値をリセットすることなくブレ演算を継続する。
【０２０１】
その後、フラグＦ３がセットされ（ステップＳＰ６９）、入れ替えカウンタＣＴに値「２」がセットされる（ステップＳＰ７１）。また、フラグＦ１およびフラグＦ２がリセットされる（ステップＳＰ７２，ＳＰ７３）。
【０２０２】
ここで、フラグＦ３は、ブレ補正禁止を意味するフラグである。フラグＦ３がセットされているときは、パンニング操作等によるブレ検出異常の発生中であると判断され（ステップＳＰ９４（図２２）参照）、ブレ補正動作は行われない。なお、フラグＦ３は、正常復帰後の最初の判定タイミングで実行されるステップＳＰ８５においてリセットされるため、正常状態に復帰して時間ｔ２が経過するとブレ補正可能な状態になる。
【０２０３】
また、入れ替えカウンタＣＴは、演算器の出力値が正常に戻った後にメイン演算器を無条件に入れ替える期間を設定するためのカウンタ（詳細には減算カウンタ）である。この実施形態では、所定の判定タイミングまでの時間ｔ２の間にフラグＦ１がセットされない状態になった後（換言すれば、演算器出力値が正常状態に復帰した後）に、時間ｔ２ごとの判定処理が「２回」行われるまで（すなわち、時間ｔ１（＝ｔ２×２）が経過するまで）は、無条件にメイン演算器の入れ替え（変更）が行われる。
【０２０４】
次に、ステップＳＰ７４に進んだ場合について説明する。
【０２０５】
ステップＳＰ７４，ＳＰ７５，ＳＰ７６は、ステップＳＰ６６，ＳＰ６７，ＳＰ６８と同様の処理である。また、ステップＳＰ７４，ＳＰ７５，ＳＰ７６の後、フラグＦ２およびフラグＦ３がリセットされる（ステップＳＰ７７，ＳＰ７８）。
【０２０６】
フラグＦ２がセットされている場合、すなわち、小さなパンニング操作が行われている場合にも、メイン演算器を別のブレ演算器（サブ演算器）に変更する。これによって、パンニングの影響を大きく受けるブレ演算器の出力値が、ブレ演算部６５の出力として制御量演算部６６へと出力されることが防止される。ただし、小さなパンニング操作が行われている場合には、当該パンニング操作がブレ量の演算に及ぼす影響は小さいものと考えられるので、この実施形態ではブレ補正駆動動作を行うことを許可する。そのため、フラグＦ３のセット処理は行われない。
【０２０７】
次に、ステップＳＰ８１に進んだ場合について説明する。
【０２０８】
ステップＳＰ８１，ＳＰ８２，ＳＰ８３は、ステップＳＰ６６，ＳＰ６７，ＳＰ６８と同様の処理である。また、ステップＳＰ８１，ＳＰ８２，ＳＰ８３の処理が実行された後に、入れ替えカウンタＣＴがデクリメントされ（ステップＳＰ８４）、フラグＦ３がリセットされる（ステップＳＰ８５）。
【０２０９】
入れ替えカウンタＣＴがセットされている間、換言すれば、ＣＴ＝２、あるいは、ＣＴ＝１のときには、ステップＳＰ６６，ＳＰ６７，ＳＰ６８と同様の処理、すなわち、メイン演算器の入れ替え処理等が行われる。
【０２１０】
＜２−５．ブレ補正動作例＞
このようなプログラム処理による一例について、図２３および図２４を参照しながら説明する。図２３および図２４においては、ジャイロセンサ６１出力の経時変化およびカメラ角度の経時変化が示されるとともに、各ブレ演算器７０Ａ，７０Ｂ，７０Ｃの出力値が概念的に示されている。太枠の矩形で示される期間はそのブレ演算器がメイン演算器として機能していることを示し、細枠（砂地ハッチング）の矩形で示される期間はそのブレ演算器がサブ演算器として機能していることを示している。また、チェック模様が付された部分は、ブレ量が所定値以上になっている状態を示している。
【０２１１】
図２３においては、時刻Ｔ５０において、ブレ演算器７０Ａがメイン演算器に設定されてブレ演算を開始するとともに、ブレ演算器７０Ｂはサブ演算器としてブレ演算を開始する。以後、所定の微少時間ｔ０（例えば、０．５ｍｓ）ごとに、メイン演算器による演算量が、ブレ補正に用いるブレ量として出力される。ただし、最初の演算開始時刻Ｔ５０から時間ｔ１後の時刻Ｔ５２までの期間においては、ブレ演算器７０Ａの出力値は未だ正確な値ではないとみなして、例外的にブレ補正動作を許可しないものとする。
【０２１２】
また、時刻Ｔ５０から時間ｔ２が経過した時刻Ｔ５１に、ブレ演算器７０Ｃはサブ演算器としてブレ演算を開始する。
【０２１３】
その後、さらに時間ｔ２が経過した時刻Ｔ５２には、サブ演算器７０Ｂのタイマが時間ｔ１の経過を検出し、判定タイミングが到来する。この時点では、パンニング操作が行われていないため、フラグＦ１，Ｆ２はセットされておらずステップＳＰ６４（図２１参照）に進む。具体的には、サブ演算器７０Ｂのリセット動作が行われ、ブレ演算器７０Ｂは、再びサブ演算器としてブレ演算を開始する。また、メイン演算器の入れ替え動作は行われず、引き続きブレ演算器７０Ａがメイン演算器として選択される。
【０２１４】
さらに時間ｔ２が経過した時刻Ｔ５３には、今度は、サブ演算器７０Ｃのタイマが時間ｔ１の経過を検出し、判定タイミングが到来する。この時点では、パンニング操作が行われていないため、フラグＦ１，Ｆ２はセットされておらずステップＳＰ６４（図２１参照）に進む。具体的には、サブ演算器７０Ｃのリセット動作が行われ、ブレ演算器７０Ｃは、再びサブ演算器としてブレ演算を開始する。また、メイン演算器の入れ替え動作は行われず、引き続きブレ演算器７０Ａがメイン演算器として選択される。
【０２１５】
さらに時間ｔ２が経過した時刻Ｔ５４には、再び、サブ演算器７０Ｂのタイマが時間ｔ１の経過を検出し、判定タイミングが到来する。この時点では、パンニング操作が行われていないため、フラグＦ１，Ｆ２はセットされておらずステップＳＰ６４（図２１参照）に進む。具体的には、サブ演算器７０Ｂのリセット動作が行われ、ブレ演算器７０Ｂは、再びサブ演算器としてブレ演算を開始する。また、メイン演算器の入れ替え動作は行われず、引き続きブレ演算器７０Ａがメイン演算器として選択される。
【０２１６】
以後、同様の動作が繰り返される。
【０２１７】
その後、パンニング操作が行われると、大きなパンニング操作が行われたことが判定され、メイン演算器の入れ替え動作等が実行される。図２３および図２４においては、ジャイロセンサ６１の出力が略台形状に変化する場合、具体的には、角速度が徐々に増加した後に一定値になり、その後、角速度が徐々に減少した後にゼロに戻る場合、が示されている。以下では、説明の便宜上、図２４を参照しながら、角速度が徐々に減少してゼロに戻る際のブレ演算動作について説明する。
【０２１８】
時刻Ｔ７０において、サブ演算器７０Ｃのタイマによる判定タイミングが到来する。この時点においては、フラグＦ１が既にセットされパンニング操作が検出されており、ステップＳＰ６６（図２１参照）に進む。そして、メイン演算器の入れ替え動作等が行われる。具体的には、それまでサブ演算器であったブレ演算器７０Ｃがメイン演算器になる。ブレ演算器７０Ｃは、時間ｔ１前の時刻Ｔ６８から演算開始された演算値をリセットすることなくブレ演算を継続する。一方、それまでメイン演算器であったブレ演算器７０Ａは、リセットされた後にサブ演算器としてブレ演算を再開する。
【０２１９】
さらに時間ｔ２が経過した時刻Ｔ７１には、サブ演算器７０Ｂのタイマによる判定タイミングが到来する。この時点においては、フラグＦ１が時刻Ｔ７１までに再びセットされパンニング操作が検出されており、ステップＳＰ６６に進む。そして、メイン演算器の入れ替え動作等が行われる。具体的には、それまでサブ演算器であったブレ演算器７０Ｂがメイン演算器になる。ブレ演算器７０Ｂは、時間ｔ１前の時刻Ｔ６９から演算開始された演算値をリセットすることなくブレ演算を継続する。一方、それまでメイン演算器であったブレ演算器７０Ｃは、リセットされた後にサブ演算器としてブレ演算を再開する。
【０２２０】
その後、さらに時間ｔ２が経過した時刻Ｔ７２には、サブ演算器７０Ａのタイマによる判定タイミングが到来する。この時点においては、フラグＦ１が時刻Ｔ７２までに再びセットされパンニング操作が検出されており、ステップＳＰ６６に進む。そして、メイン演算器の入れ替え動作等が行われる。具体的には、それまでサブ演算器であったブレ演算器７０Ａがメイン演算器になる。ブレ演算器７０Ａは、時間ｔ１前の時刻Ｔ７０から演算開始された演算値をリセットすることなくブレ演算を継続する。一方、それまでメイン演算器であったブレ演算器７０Ｂは、リセットされた後にサブ演算器としてブレ演算を再開する。
【０２２１】
さらに時間ｔ２が経過した時刻Ｔ７３には、サブ演算器７０Ｃのタイマによる判定タイミングが到来する。この時点においては、フラグＦ１が時刻Ｔ７３までに再びセットされパンニング操作が検出されており、ステップＳＰ６６に進む。そして、メイン演算器の入れ替え動作等が行われる。具体的には、それまでサブ演算器であったブレ演算器７０Ｃがメイン演算器になる。ブレ演算器７０Ｃは、時間ｔ１前の時刻Ｔ７１から演算開始された演算値をリセットすることなくブレ演算を継続する。一方、それまでメイン演算器であったブレ演算器７０Ａは、リセットされた後にサブ演算器としてブレ演算を再開する。
【０２２２】
さらに時間ｔ２が経過した時刻Ｔ７４には、サブ演算器７０Ｂのタイマによる判定タイミングが到来する。この時点においては、パンニング操作によるブレ量の異常増加は検出されず、フラグＦ１，Ｆ２はいずれもセットされておらず、入れ替えカウンタＣＴの値が「２」であるためステップＳＰ８１に進む。そして、メイン演算器の入れ替え動作等が行われる。具体的には、それまでサブ演算器であったブレ演算器７０Ｂがメイン演算器になる。ブレ演算器７０Ｂは、時間ｔ１前の時刻Ｔ７２から演算開始された演算値をリセットすることなくブレ演算を継続する。一方、それまでメイン演算器であったブレ演算器７０Ｃは、リセットされた後にサブ演算器としてブレ演算を再開する。また、入れ替えカウンタＣＴの値はデクリメントされ「１」になる（ステップＳＰ８４（図２１参照））。さらに、フラグＦ３がリセットされる（ステップＳＰ８５）ため、この時点以後にレリーズボタン１１が全押し状態Ｓ２になった場合には、ブレ補正動作が許可される。
【０２２３】
さらに時間ｔ２が経過した時刻Ｔ７５には、サブ演算器７０Ａのタイマによる判定タイミングが到来する。この時点においては、パンニング操作によるブレ量の異常増加は検出されず、フラグＦ１，Ｆ２はいずれもセットされておらず、入れ替えカウンタＣＴの値が「１」であるためステップＳＰ８１に進む。そして、メイン演算器の入れ替え動作等が行われる。具体的には、それまでサブ演算器であったブレ演算器７０Ａがメイン演算器になる。ブレ演算器７０Ａは、時間ｔ１前の時刻Ｔ７３から演算開始された演算値をリセットすることなくブレ演算を継続する。一方、それまでメイン演算器であったブレ演算器７０Ｂは、リセットされた後にサブ演算器としてブレ演算を再開する。また、入れ替えカウンタＣＴの値はデクリメントされ「０」にリセットされる。
【０２２４】
さらに時間ｔ２が経過した時刻Ｔ７６には、サブ演算器７０Ｃのタイマによる判定タイミングが到来する。この時点においては、パンニング操作によるブレ量の異常増加は検出されず、フラグＦ１，Ｆ２はいずれもセットされておらず、入れ替えカウンタＣＴの値が「０」であるため、メイン演算器の入れ替え動作は行われず、ステップＳＰ６４に進む。ステップＳＰ６４では、ブレ演算器７０Ｃのリセット処理が行われ、ブレ演算器７０Ｃは、再びサブ演算器としてブレ演算を開始する。また、ブレ演算器７０Ａは、時刻Ｔ７３から演算開始された演算値をリセットすることなくブレ演算を継続する。
【０２２５】
このように、複数のブレ演算器の中から適宜にメイン演算器を選択することによって、適切な値をブレ演算部６５のブレ量として決定することができる。特に、メイン演算器の演算値が所定値を越えると、他のブレ演算器を新たなメイン演算器として選択するので、パンニング操作の影響を抑制し、より適切なブレ量を算出することが可能である。
【０２２６】
また、パンニング停止後の時刻Ｔ７５（詳細には、パンニング停止から、時間ｔ１の約１．５倍の時間が経過した時刻）以後においては、時刻Ｔ７３以前に既に終了しているパンニングの影響を受けることがない。そのため、上述のように理論的にパンニング操作の影響がほぼ無くなったブレ量が算出される。したがって、時刻Ｔ７５以降においては、メイン演算器の正常な出力値に基づいて正確なブレ補正動作を行うことが可能である。
【０２２７】
ただし、上述したように、時刻Ｔ７５よりも前の時刻Ｔ７４においてもパンニング操作の影響が低減されているとも考えられる。そのため、この実施形態においては、時刻Ｔ７４から時刻Ｔ７５までの間にブレ演算器７０Ｂによって算出される演算量も正しい値であるとみなして、ブレ補正可能な状態にしている。
【０２２８】
その後、時刻Ｔ９０には、サブ演算器７０Ｂのタイマによる判定タイミングが到来する。この時点においては、フラグＦ２が時刻Ｔ９０までにセットされ小さなパンニング操作が検出されており、ステップＳＰ７４に進む。そして、メイン演算器の入れ替え動作等が行われる。具体的には、それまでサブ演算器であったブレ演算器７０Ｂがメイン演算器になる。ブレ演算器７０Ｂは、時間ｔ１前の時刻Ｔ８８から演算開始された演算値をリセットすることなくブレ演算を継続する。一方、それまでメイン演算器であったブレ演算器７０Ａは、リセットされた後にサブ演算器としてブレ演算を再開する。
【０２２９】
ここで、小さなパンニング操作が行われたときには、フラグＦ３がセットされることはなく、ブレ補正動作が可能である。ただし、それまでのメイン演算器であるブレ演算器７０Ａによる演算値には誤差が含まれているものと判断し、別のブレ演算器（ここではブレ演算器７０Ｂ）をメイン演算器に変更し、より高精度のブレ量を算出するようにしている。また、メイン演算器の入れ替えは一度行えば十分であると考え、大きなパンニング操作が行われたと判定されたときのような、入れ替えカウンタＣＴを用いた無条件の追加的なメイン演算器の入れ替え動作は行っていない。
【０２３０】
また、上記においては、角速度が低減する段階における動作（図２４）を中心に説明したが、角速度が増加する段階における動作（図２３）も同様である。また、この実施形態では、角速度が一定値で安定するパンニング期間においては、ブレ検出異常が検出されていない。これは、各ブレ演算器７０Ａ，７０Ｂ，７０Ｃにおける角速度検出開始時点（リセット時点）でのジャイロセンサ６１の出力信号の信号レベルを基準レベルに設定して角速度信号の算出を開始していることに依拠するものであり、当該一定値を中心にその角速度が周期的に変動する微少なブレが検出されているためである。換言すれば、角速度が一定値で安定するパンニング期間中に開始されたブレ演算処理を、角速度検出開始時点でのジャイロセンサ６１の出力信号の信号レベルを基準レベルに設定して角速度信号の算出を開始することによれば、当該一定値を中心にその角速度が周期的に変動するブレを良好に検出することが可能であり、当該ブレを良好に制御することが可能である。
【０２３１】
＜３．変形例＞
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
【０２３２】
たとえば、上記実施形態においては、パンニング操作が行われていることが判定される前から、常に、サブ演算器による新規のブレ演算動作（予備的なブレ演算動作）が順次に開始される場合を例示しているが、これに限定されない。
【０２３３】
具体的には、図２５に示すように、パンニング操作が検出されブレ検出異常の判定処理が行われるまで（例えば時刻Ｔ７０まで）は、メイン演算器（例えばブレ演算器７０Ａ）以外のブレ演算器（例えばブレ演算器７０Ｂ，７０Ｃ）の新規のブレ演算動作を行わない（すなわちブレ演算動作を休止しておく）ようにしてもよい。そして、パンニング操作検出後の最初の判定タイミング（例えば時刻Ｔ７０）から、サブ演算器を含む複数のブレ演算器７０Ａ，７０Ｂ，７０Ｃによる新規のブレ演算を順次に開始するようにしてもよい。
【０２３４】
なお、この場合には、サブ演算器による新規のブレ演算が開始されるまでの間は、メイン演算器以外のブレ演算器による新規な演算値を予め準備しておくことができない。例えば、ブレ検出異常の判定時点Ｔ７０から、時間ｔ１経過後の時刻Ｔ７２までは、別のブレ演算器によるブレ演算値（詳細には、ブレ演算開始から時間ｔ１を経過した良好なブレ演算値）を得ることができない。ただし、ブレ検出異常の判定時点Ｔ７０から時間ｔ１経過した時刻Ｔ７２より後においては、いずれかのブレ演算器７０Ａ，７０Ｂ，７０Ｃによる新規の演算値を得ることが可能である。したがって、時刻Ｔ７２より後においては、新たにメイン演算器になったブレ演算器の当該新規の演算値に基づいてブレ検出異常の有無を正確に判定することが可能になる。特に、パンニング操作は比較的長い時間にわたって行われることが多いという事情があるため、このような態様によって上記の思想を実現しても、実用上十分な場合が多い。
【０２３５】
図２６も同様の変形例を示す動作図である。ただし、図２６の変形例においては、大きなパンニング操作に起因してブレ検出異常と判定される前においては、各サブ演算器の演算値をダミー演算器として利用する場合が示されている。具体的には、各サブ演算器の演算値は、ブレ検出異常と判定される前においては、メイン演算器の演算値と同一となるように設定されている。図２６における横縞ハッチング部分は、そのブレ演算器（サブ演算器）の演算値がメイン演算器の演算値と同一になっている区間を表している。
【０２３６】
このような動作は、図２７のフローチャートに示すように、ステップＳＰ６４（図２１参照）の代わりにステップＳＰ６５を実行することによって実現される。ステップＳＰ６５においては、その判定時点でのメイン演算器の演算値を、サブ演算器の演算値として設定する処理が行われる。また、その後、当該置換後の値に、角速度の積分値がさらに積算されることによってブレ量が算出される。この結果、サブ演算器の演算値は、図２６における横縞ハッチングが付された区間においては、メイン演算器の演算値と同一になる。
【０２３７】
図２７（ステップＳＰ５３）において、フラグＦ１，Ｆ２がセットされず且つ入れ替えカウンタＣＴもセットされていないと判定されるときには、パンニング操作が行われていないものと判断され、その判定時点において、メイン演算器の演算値がそのままサブ演算器の演算値に設定される（ステップＳＰ６５）。
【０２３８】
その結果、図２６に示すように、例えば、ブレ異常検出と判定される前の時刻Ｔ６８においては、メイン演算器７０Ａの演算値がそのままサブ演算器７０Ｃの演算値に設定される。したがって、時刻Ｔ６８から時刻Ｔ７０までのサブ演算器７０Ｃの演算値は、メイン演算器７０Ａの演算値と同一になる。
【０２３９】
また、ブレ異常検出と判定される前の時刻Ｔ６９においては、メイン演算器７０Ａの演算値がそのままサブ演算器７０Ｂの演算値に設定される。
【０２４０】
その後、ブレ異常検出と判定される時刻Ｔ７０以後においては、上記実施形態とほぼ同様の処理が実行された後、再び、フラグＦ１等がゼロであり且つカウンタＣＴもゼロの期間（具体的には、時刻Ｔ７６以後の期間）が到来する。そして、当該期間においては、メイン演算器の演算値がそのままサブ演算器の演算値に設定される。
【０２４１】
なお、本変形例においては、時刻Ｔ７０以前において、各ブレ演算器７０Ｂ，７０Ｃの演算値は、メイン演算器７０Ａの演算値と同一の値となる。従って、図２６のような場合、各時刻Ｔ７０，Ｔ７１において、メイン演算器が各ブレ演算器７０Ｂ，７０Ｃに入れ替わる際には、メイン演算器入れ替わり直後から、フラグＦ３がセットされることになる。
【０２４２】
また、図２６の変形例においても、小さなパンニング操作が行われたことを時刻Ｔ９０で判定すると、それまでのメイン演算器であるブレ演算器７０Ａによる演算値には比較的小さな誤差が含まれているものと判断し、別のブレ演算器７０Ｂをメイン演算器に変更している。この場合も、時刻Ｔ９０以前において、各ブレ演算器７０Ｂ，７０Ｃの演算値は、メイン演算器の演算値と同一の値となるため、多くの場合、各時刻Ｔ９０，Ｔ９１においてメイン演算器が各ブレ演算器７０Ｂ，７０Ｃに入れ替わった直後に、フラグＦ２がセットされる。そして、時刻Ｔ９２でメイン演算器がブレ演算器７０Ａに入れ替わることになるが、ブレ演算器７０Ａは、小さなパンニング操作の終了後にブレ検出を開始しているので、より好ましいブレ演算値を得ることができる。
【０２４３】
また、上記実施形態においては、上述のように、ハイパスフィルタ７１におけるＨＰＦ係数は経時的に変化していたが、これに限定されず、一定値であってもよい。また、ブレ角度に関しては、積分部７２における積分係数を１に設定して、完全積分によって求めるようにしてもよい。さらには、補正部７３による補正処理を行わないようにしてもよい。
【０２４４】
また、上記実施形態においては、２０１内にソフトウエア的なハイパスフィルタ７１を設ける場合を例示したが、これに限定されず、ハードウエア（抵抗器およびコンデンサ等）で構成されるハイパスフィルタを、ジャイロセンサ６１と増幅器６２（図７参照）との間等に設けるようにしてもよい。そして、この場合にも、当該ハードウエアハイパスフィルタによって直流成分が低減される間での期間ｔ１を考慮し、上記の思想を適用することができる。
【０２４５】
また、上記実施形態においては、撮像素子５を駆動して、撮像素子５の受光面上における被写体像のブレを補正する場合を例示したが、これに限定されない。例えば、撮影光学系（詳細には、撮影レンズユニット３内の１つまたは複数のレンズ）を駆動することによって、撮像素子５の受光面上における被写体像のブレを光学的に補正するようにしてもよい。あるいは、上述のような光学補正方式のブレ補正ではなく、時系列の複数の画像等を用いた画像補正方式によるブレ補正を行うようにしてもよい。
【図面の簡単な説明】
【０２４６】
【図１】実施形態に係る撮像装置の正面外観図である。
【図２】撮像装置の背面外観図である。
【図３】撮像装置の機能構成を示すブロック図である。
【図４】駆動機構を背面側（−Ｚ側）から見た図である。
【図５】図４のII−II断面における断面図である。
【図６】ブレ補正制御に関する機能ブロック図である。
【図７】増幅器６２周辺の詳細構成を示す図である。
【図８】基準温度環境下における出力電圧の一例を示す図である。
【図９】様々な環境下における出力電圧の例を示す図である。
【図１０】ハイパスフィルタの構成例を示す図である。
【図１１】ブレ演算部の詳細構成を示す図である。
【図１２】ブレ演算精度の向上原理等を説明するための図である。
【図１３】正確なブレ演算値をより早期に出力するブレ演算の基本原理等を説明するための図である。
【図１４】ソフトウエア構成の概要を示す図である。
【図１５】メインルーチンの内容を示すフローチャートである。
【図１６】交信処理ルーチンの内容を示すフローチャートである。
【図１７】信号入力処理ルーチンの内容を示すフローチャートである。
【図１８】ブレ演算処理ルーチンの内容を示すフローチャートである。
【図１９】読出処理を示すフローチャートである。
【図２０】ステップＳＰ３３のブレ演算処理を示すフローチャートである。
【図２１】ステップＳＰ５３の演算器選択処理を示すフローチャートである。
【図２２】ステップＳＰ３４のブレ演算処理を示すフローチャートである。
【図２３】動作例を示す図である。
【図２４】動作例を示す図である。
【図２５】変形例に係る動作を示す図である。
【図２６】別の変形例に係る動作を示す図である。
【図２７】図２６の変形例に係るフローチャートの一部（ステップＳＰ３３）を示す図である。
【符号の説明】
【０２４７】
１  撮像装置
５  撮像素子
１１  レリーズボタン
３７  レンズ群
６０Ｘ，６０Ｙ  制御系
６１，６１Ｘ，６１Ｙ  ジャイロセンサ
６５，６５Ｘ，６５Ｙ  ブレ演算部
７０Ａ，７０Ｂ，７０Ｃ  ブレ演算器
７１  ハイパスフィルタ
７４  セレクタ
１０１  全体制御部
２０１  ブレ補正制御部
【図１】
2007322958.tif 000003
【図２】
2007322958.tif 000004
【図３】
2007322958.tif 000005
【図４】
2007322958.tif 000006
【図５】
2007322958.tif 000007
【図６】
2007322958.tif 000008
【図７】
2007322958.tif 000009
【図８】
2007322958.tif 000010
【図９】
2007322958.tif 000011
【図１０】
2007322958.tif 000012
【図１１】
2007322958.tif 000013
【図１２】
2007322958.tif 000014
【図１３】
2007322958.tif 000015
【図１４】
2007322958.tif 000016
【図１５】
2007322958.tif 000017
【図１６】
2007322958.tif 000018
【図１７】
2007322958.tif 000019
【図１８】
2007322958.tif 000020
【図１９】
2007322958.tif 000021
【図２０】
2007322958.tif 000022
【図２１】
2007322958.tif 000023
【図２２】
2007322958.tif 000024
【図２３】
2007322958.tif 000025
【図２４】
2007322958.tif 000026
【図２５】
2007322958.tif 000027
【図２６】
2007322958.tif 000028
【図２７】
2007322958.tif 000029