以下、本発明の実施の形態を図面を参照して説明する。
<第1の実施形態>
図1は、第1の実施形態に係わる撮像装置の構成例を示すブロック図である。本実施形態では、撮像装置の一例として、撮像部としてのカメラ部101を備えたデジタルビデオカメラ(以下、単にカメラとも称する)を挙げて説明する。
カメラは、カメラ全体の動作を制御する演算装置としてのメインCPU107とサブCPU114を持つ。メインCPU107は、プログラム・データ記憶部106からプログラムを読み込み、各種処理を実行する。サブCPU114は、プログラム・データ記憶部116からプログラムを読み込み、各種処理を実行する。メインCPU107、サブCPU114は、ともに、それぞれが読み出したプログラムに従ってカメラ全体を制御する。読み込まれたプログラムは、メインCPU107、サブCPU114に複数のタスクを並列に実行させるための機能を備える。具体的に、メインCPU107の制御によりカメラ制御タスク、レコーダ制御タスク及び表示制御タスクが動作し、サブCPU114の制御によりモード制御タスク、電源制御タスクが動作する。メインCPU107とサブCPU114は、シリアルI/F118、シリアルI/F119を介して、シリアル通信により、データのやり取りを行う。
カメラ部101は、撮像により得られたアナログ映像信号を動画記録装置に入力するための機構を備える。より具体的には、カメラ部101は、被写体からの光を結像させるためのレンズ、レンズによって結像された被写体像を光電変換する撮像素子、撮像素子を駆動する回路等を含む。映像処理部102は、カメラ部101から入力されたアナログ映像信号をデジタルの動画データに変換し、ノイズ除去などの所定の画像処理に基づく補正を行う。カメラ部101及び映像処理部102の動作は、メインCPU107が実行するカメラ制御タスクによって制御される。なお、カメラ制御タスクは、カメラ部101により撮像される画像を予め定められた設定間隔に基づく間隔で記録するインターバル記録を行う記録制御部として機能する。また、映像処理部102は、メインCPU107の制御下で、後述の本体向き検出部110により検出された撮像装置(カメラ本体)の姿勢を用いて、カメラ部101で撮像された画像に、たとえば画像の回転といったような特定の処理を施す。
エンコーダ・デコーダ部104は、映像処理部102からの動画データを符号化する。エンコーダ・デコーダ部104によって符号化された動画データは、たとえばRAMにより構成された一時記憶部103に一旦記憶されたのち、付随する管理データとともに動画記憶部105に記憶される。動画の再生時では、動画記憶部105から読み出された符号化された動画データ(画像データ)が一時記憶部103を介してエンコーダ・デコーダ部104に提供され、復号化される。復号化された動画データは、その後、一時記憶部103内の動画用フレームバッファ(不図示)に展開される。エンコーダ・デコーダ部104及び動画記憶部105の記憶制御は、メインCPU107が実行するレコーダ制御タスクによって制御される。
レコーダ制御タスクでは、設定された設定間隔に基づく間隔で、たとえば一定時間ごとに自動的に動画を記録するインターバル記録の動作を制御する。インターバル記録の記録時間は、映像信号方式における数フレームに設定され、繰り返し時間は分単位/時間単位にて使用者が設定可能となっている。インターバル記録では、予め定められた設定間隔に基づく間隔で、カメラ部101が撮像する画像を記録する。またインターバル記録により記録された複数の動画シーンは、エンコーダ・デコーダ部104にて1つの動画シーンとして結合することが可能となっている。
動画記憶部105から読み出された管理データは、OSD(On Screen Display)データ、すなわち、撮影画像/再生画像に重畳される文字表示やGUI(Graphical User Interface)用のデータの生成に利用される。そして、生成されたOSDデータは、一時記憶部103内のOSD用フレームバッファ(不図示)に描画される。動画用フレームバッファとOSD用フレームバッファの各内容は、表示制御部111で重畳されて、LCDパネル112に表示される。操作キー108、タッチパネル109はいずれもユーザによる動作指示を受け付けるための操作部である。
また、本体向き検出部110は、カメラ本体の向き(姿勢)を検出する姿勢検出部である。本体向き検出部110は、重力方向を検知できる加速度センサやジャイロセンサなどにより構成される。ユーザが天地逆(逆さ姿勢:図2(c)により後述)で使っているか、正常の向き(正姿勢:図2(b)により後述)で使っているかを検出することができる。
不揮発メモリ113は、データを保存するためのメモリである。不揮発メモリはSRAMでもよいし、EEPROM、FLASH−ROMでもよい。電源管理部115は、ビデオカメラ全体の電源を管理する。電源管理部115は、サブCPU114によって実行されるモード制御タスクの管理する内部状態の変化に従って電源を制御する。たとえば、電源管理部115は、撮像装置が起動状態であればメインCPU107へ電源を供給し、撮像装置が電源OFF状態、または、省電モード状態であれば、メインCPU107への電源を遮断する。
図2は、デジタルビデオカメラの外観図の一例を示している。図2(a)は、タッチパネル109を有するLCDパネル112を対面位置にしてカメラを正姿勢にした場合のカメラの前面斜視図である。図2(b)は、タッチパネル109を有するLCDパネル112を背面向きにしてカメラを正姿勢にした場合のカメラの背面斜視図である。図2(b)のLCDパネル112は、図2(a)の対面位置から、軸210を中心として約180度回転した状態となっている。図2(c)は、タッチパネル109を有するLCDパネル112を背面向きにしてカメラを正姿勢とは上下逆さま(逆さ姿勢)とした場合のカメラの背面斜視図である。
LCDパネル112を備えた表示部は、カメラ部101を有する本体部201に対してヒンジ部(不図示)を介して軸211を回転軸として回動可能に連結されている。表示部は、軸211を回転軸として約90度回転可能であり、本体部に対して閉じた位置(LCDパネル112の背面側が本体部201に対向する位置)と、開いた位置(図2(b)、図2(c)の位置)とに移動可能である。また、表示部は軸210でも約180度回転可能に取り付けられている。この軸210周りに回転することで、LCDパネル112の表示面がカメラ部101のレンズ部と同じ方向(被写体側)を向く対面位置と、LCDパネル112の表示面が被写体側と逆側を向く背面位置とに移動可能である(図2(a)、(b))。
図2(a)〜図2(c)における原点205は、LCDパネル112の同一位置を示している。図2(b)のように、表示部を背面向きにした正姿勢において左上に位置する原点205は、同じ正姿勢で表示部を対面向きにした場合は右下となる(図2(a))。すなわち、図2(b)と図2(a)の状態では、ユーザから見てLCDパネル112は上下左右ともに反対(180度回転した状態)であることがわかる。また、図2(b)のように、表示部を背面向きにした正姿勢において左上に位置する原点205は、同じ対面位置で本体部201を逆さ姿勢にした場合は右下となる(図2(c))。すなわち、図2(b)と図2(c)の状態においても、ユーザから見てLCDパネル112は上下左右ともに反対(180度回転した状態)であることがわかる。
図2(b)に示すように、操作キー108の一部としてシャッターボタン202が本体部201に取り付けられている。ユーザはシャッターボタン202を押すことにより、任意のタイミングで静止画像を記録することが可能である。さらに、図2(c)に示すように、操作キー108の一部としてレンズカバースライドスイッチ203が本体部201に取り付けられている。ユーザはレンズカバースライドスイッチ203を移動させることにより、カメラ部101のレンズカバーを開閉することが可能である。
なおタッチパネル109とLCDパネル112とは一体的に構成することができる。例えば、タッチパネル109の光の透過率がLCDパネル112の表示を妨げないように構成し、LCDパネル112の表示面の上層に取り付ける。そして、タッチパネル109における入力座標と、LCDパネル112上の表示座標とを対応付ける。これにより、恰もユーザがLCDパネル112上に表示された画面を直接的に操作可能であるかのようなGUI(グラフィカルユーザインターフェース)を構成することができる。サブCPU114はタッチパネル109への以下の操作、あるいは状態を検出できる。
・タッチパネル109を指やペンで触れたこと(以下、タッチダウン(Touch−Down)と称する)。
・タッチパネル109を指やペンで触れている状態であること(以下、タッチオン(Touch−On)と称する)。
・タッチパネル109を指やペンで触れたまま移動していること(以下、タッチムーブ(Touch−Move)と称する)。
・タッチパネル109へ触れていた指やペンを離したこと(以下、タッチアップ(Touch−Up)と称する)。
・タッチパネル109に何も触れていない状態(以下、タッチオフ(Touch−Off)と称する)。
これらの操作/状態や、タッチパネル109上に指やペンが触れている位置座標は内部バスを通じてサブCPU114からメインCPU107に通知される。メインCPU107は通知された情報に基づいてタッチパネル109上にどのような操作が行なわれたかを判定する。タッチムーブでは、タッチパネル109上で移動する指やペンの移動方向が、位置座標の変化に基づいて、タッチパネル109上の垂直成分・水平成分毎の移動量として検出される。またタッチパネル109上をタッチダウンから一定のタッチムーブを経てタッチアップをしたとき、ストロークを描いたこととする。
素早くストロークを描く操作をフリックと呼ぶ。フリックは、タッチパネル109上に指を触れたままある程度の距離だけ素早く動かして、そのまま離すといった操作であり、言い換えればタッチパネル109上を指ではじくように素早くなぞる操作である。所定距離以上を、所定速度以上でタッチムーブしたことが検出され、そのままタッチアップが検出されるとフリックが行なわれたと判定できる。また、所定距離以上を、所定速度未満でタッチムーブしたことが検出された場合はドラッグが行なわれたと判定するものとする。タッチパネル109は、抵抗膜方式や静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式、光センサ方式等、様々な方式のタッチパネルのうちいずれの方式のものを用いても良い。
サブCPU114によって実行されるモード制御タスクは、操作部(操作キー108、タッチパネル109)からの指示、モード制御タスク自身が管理する内部状態の変化に従って、ビデオカメラ全体の動作状態を遷移さる。そのため、サブCPU114は、シリアルI/F118,119を介して、メインCPU107によって実行される各タスクへイベントを通知する。
図3は、撮影状態において特定の本体部201の向きに対してLCDパネル112に表示される画面の一例を示す図である。図3(a)は、本体部201の向きが正姿勢で表示部が背面位置の際の通常撮影モードにおけるLCDパネル112に表示される画面の一例を示している。LCDパネル112には、カメラ部101で撮像された画像301が全画面表示されており、被写体310を撮像した画像の例として被写体像302が表示されている。画面の左上部には、タッチによる操作が可能であることを示すタッチボタンであるメニューボタン303がOSDで表示されている。
図3(b)は、自動回転機能がオフ状態であり、本体部201の向きが逆さ姿勢の際の通常撮影モードにおけるLCDパネル112に表示される画面の一例である。なお、自動回転機能とは、本体の向きに合わせて、GUIの向きや記録映像の向きを回転させることにより、天地逆にしても通常の向きの操作性を維持したまま、ユーザ所望の画像(パネル上見たままの画像)を記録することを実現する機能である。自動回転機能がオンの場合、本体の向きが重力に対して天地逆(逆さま)である場合は、撮影された画像を180度回転(上下左右反転に等しい)して画像ファイルとして記録する。これによって、本体を正姿勢にして再生した場合、またはテレビなどの外部機器で再生した場合に、画像に写っている被写体の向きを重力方向に対して正しい向きとして視聴することができる。なお、この自動回転機能は、メニュー画面においてオンまたはオフの切り替えをすることが可能である。
この自動回転機能は、本体向き検出部110によって、本体が天地逆の状態(逆さ姿勢)であるか天地逆でない状態(正姿勢)であるかを検出し、各状態に応じて映像処理制御を行うことにより実現される。各状態に応じた映像処理については後述する。図3(b)のLCDパネル112には、カメラ部101で撮像された画像301が全画面表示されており、被写体310を撮像した画像の例として被写体像302が表示されている。画面の右下部には、タッチによる操作が可能であることを示すタッチボタンであるメニューボタン303がOSDで逆さま(すなわち、重力方向の上をメニューボタン303の下とした向き)に表示されている。ここでメニューボタン303が逆さまに表示されているのは、自動回転機能がオフであり、本体部201を逆さ姿勢にしているためである。
図3(c)は、自動回転機能がオン状態であり、本体部201の向きが天地逆の際(逆さ状態の際)の通常撮影モードにおけるLCDパネル112に表示される画面の一例である。図3(c)のLCDパネル112には、カメラ部101で撮像された画像301が全画面表示されており、被写体310を撮像した画像の例として被写体像302が表示されている。画面の左上部には、タッチによる操作が可能であることを示すタッチボタンであるメニューボタン303がOSDで表示されている。図3(b)のメニューボタンとは異なり、自動回転機能がオンになっているため、メニューボタン303はユーザから見て正しい向き(すなわち、重力方向の上をメニューボタン303の上とした向き)で表示されている。また、上述したように、撮影された画像は、180度回転(上下左右反転に等しい)する処理が施された後、画像ファイルとして記録される。
図4(a)〜図4(c)に、本撮像装置の、インターバル記録に関する各種表示例を示す。図4(a)の撮影待機画面401は、インターバル記録モードに設定した際の撮影待機時(インターバル記録のスタート前)にLCDパネル上に表示される表示例である。カメラスルー画(ライブビュー画像)に重畳して、タッチボタンとして記録設定ボタン402、STARTボタン403が表示される。STARTボタン403がタッチされた場合には、動画のインターバル記録が開始される。記録設定ボタン402がタッチされた場合は、記録設定画面404へ遷移する。
図4(b)に、記録設定画面404の表示例を示す。記録設定画面404では、インターバル記録の記録間隔が設定できる。インターバル記録の記録間隔を5秒、10秒、30秒、1分、10分に設定する選択肢(タッチボタン)が表示され、何れかの選択肢がタッチされると、タッチされた選択肢の記録間隔が設定される。設定された記録間隔は、不揮発メモリ113に記録される。
図4(c)に、インターバル記録を行っている途中でユーザが終了操作を行った場合に表示されるインターバル記録の終了確認画面の表示例を示す。タッチボタンとして「いいえ」を示すボタン431、「はい」を示すボタン432が表示される。ボタン431がタッチされた場合にはインターバル記録動作を継続する。ボタン432がタッチされた場合にはインターバル記録動作を終了する。
次に、本撮像装置におけるインターバル記録モードでの処理について説明する。図5に、インターバル記録モード処理のフローチャートを示す。この処理は、プログラム・データ記憶部106に記録されたプログラムを一時記憶部103をワークメモリとして展開し、メインCPU107が実行することで実現する。デジタルビデオカメラが起動され、撮影モードに含まれるインターバル記録モードに設定されると図5の処理が開始される。
S501において、メインCPU107はLCDパネル112へ表示指示を行い、カメラスルー画、および、OSDのためのBitmap(記録設定ボタン402、STARTボタン403)の表示を行う。S502において、メインCPU107は、本体向き検出部110からの出力に基づきカメラ本体(本体部201)の姿勢を検出する。S503において、メインCPU107は、S502で検出した姿勢が逆さ姿勢であるか否かを判定する。逆さ姿勢ではく正姿勢である場合には処理はS504に進み、逆さ姿勢である場合には処理はS505に進む。
S504では、メインCPU107は、正姿勢における処理を行う。具体的には、姿勢情報として正姿勢が検出された旨の情報を一時記憶部103に記録する。そして、タッチボタンなどのOSDを回転せずに表示する。また、カメラ部101で撮像された映像にも回転処理を施すことなく、そのままの向きでスルー画像として表示する。この時の表示例が図3(a)である。
S505では、メインCPU107は、逆さ姿勢における処理を行う。具体的には、姿勢情報として逆さ姿勢が検出された旨の情報を一時記憶部103に記録する。そして、自動回転機能がオンの場合はタッチボタンなどのOSDを180度回転して表示する。映像処理部102は、カメラ部101で撮像された映像を動画記憶部105での記録用に180度回転処理する。ただしこの時点ではまだ記録は行わない。LCDパネル112にスルー画像(ライブビュー画像)として表示する映像用に、180度回転処理した映像を更に180度回転処理し、LCDパネル112にスルー画像として表示される。この時の表示例が図3(c)である。なお、スルー画像は結果として撮像した映像を回転せずに表示しているものと同等である。したがって、スルー画像用には、カメラ部101で撮像された映像に回転処理を施さずに、そのまま表示するものとしても良い。
S506において、メインCPU107は、シリアルI/F118,119を介してサブCPU114から受信した情報を元に、STARTボタン403がタッチされたか否かを判定する。STARTボタン403がタッチされたと判定した場合、処理はS507へ進み、そうでない場合はS509へ進む。
S507では、メインCPU107は、動画インターバル記録用のタイマをスタートする。より具体的には、メインCPU107は、STARTボタン403がタッチされた時点の時刻(Tstart)を一時記憶部103に記録する、あるいは、STARTボタン403がタッチされた時点からの時間を計測し始める。また、メインCPU107は、設定値として記録されている動画インターバル記録の記録間隔を不揮発メモリ113から読み出す。動画インターバル記録での各撮影のタイミング(各回の記録の記録予定時間)は、STARTボタン403がタッチされた時刻から、記録間隔×(撮影回数−1)で決まる。例えば、記録間隔が30秒に設定されていれば、各撮影タイミングは、STARTボタン403のタッチから、1回目は0秒後、2回目は30秒後、3回目は60秒後、4回目は90秒後…といったように決まる。S508において、メインCPU107は、動画インターバル記録処理を行う。動画インターバル記録処理の詳細内容については、図6を用いて後述する。
S509において、メインCPU107は、シリアルI/F118,119を介してサブCPU114から受信した情報を元に、シャッターボタン202が押されたかどうかを判定する。押されたと判定した場合にはS510へ進み、そうでない場合はS512へ進む。S510において、メインCPU107は、S507と同様に、静止画インターバル撮影用のタイマをスタートする。S511において、メインCPU107は静止画インターバル記録処理を行う。
S512において、メインCPU107は、シリアルI/F118,119を介してサブCPU114から受信した情報を元に、記録設定ボタン402がタッチされたか否かを判定する。記録設定ボタン402がタッチされたと判定した場合、処理はS513へ進み、タッチされていないと判定した場合にはS514へ進む。S513では、メインCPU107は、LCDパネル112に図4(b)で説明した記録設定画面を表示する。この記録設定画面で表示されたいずれかの選択肢へのタッチを受付け、何れかの選択肢がタッチされると、タッチされた選択肢の記録間隔を設定値として不揮発メモリ113に記録する。
S514において、メインCPU107は、タッチパネル109や、他の操作キー108への操作が無い状態である無操作状態が3分以上経過しているかどうかを判定する。無操作状態が3分以上経過していると判定した場合には、省電を目的として自動的に電源OFFを行うため、処理はS517へ進む(オートパワーオフ)。3分以上経過していないと判定した場合には、処理はS515へ進む。なお、無操作状態を判定する時間を3分としたのは一例であって、予め定められた時間であれば3分に限るものではない。
S515において、メインCPU107は、電源をOFFする操作があったか否かを判定する。本実施形態では、レンズカバースライドスイッチ203を閉じるように移動させる操作が電源をOFFとする操作であるものとする。したがって、レンズカバースライドスイッチ203を閉じる操作があった場合、処理はS517に進み、そうでない場合は処理はS516へ進む。
S516において、メインCPU107はインターバル記録モード以外のモードへの遷移指示があるかどうかを判定する。インターバル記録モード以外のモードへの遷移指示があると判定した場合には、電源をOFFとせずに処理は終了となる。遷移指示がないと判定した場合には、S502へ進み処理を繰り返す。
S517において、メインCPU107は、電源をOFFとする処理を行う。具体的には、メインCPU107は、シリアルI/F118,119を介してサブCPU114に電源OFF要求を通知する。サブCPU114は、電源OFF要求が通知されると、電源オフ処理を実行する。この電源オフ処理によって電源管理部115からメインCPU107への電源の供給がストップされ、動画インターバル記録モード処理が終了する。なお、サブCPU114は、電池を格納しており、電池残量がある限りはメインCPU107の電源のON/OFFに関わらずに常に起動しているものとする。また、サブCPU114は、メインCPU107を駆動する電力に比べると微小な電力しか必要としないものとする。
図6に、動画インターバル記録処理のフローチャートを示す。この処理は、図5で前出したS508の処理の詳細である。またこの処理は、プログラム・データ記憶部106に記録されたプログラムを一時記憶部103に展開してメインCPU107が実行することにより実現する。
S601において、メインCPU107は、電源OFFからの復帰かどうかを判定する。電源OFFからの復帰では無く、STARTボタン403をタッチされたことによる処理であれば、処理はS602に進み、電源OFFからの復帰であれば処理はS603に進む。S602において、メインCPU107は、現在までの撮影回数を示す撮影回数情報kを0にセットして一時記憶部103に保持する。撮影回数情報kは一時記憶部103上に配置されているが、メインCPU107の電源がOFFされる際に、シリアルI/F118,119を介してサブCPU114に送られ、保持される。
S601でチェックされる電源OFFからの復帰には、後述の省電力モードからの復帰が含まれる。S603において、メインCPU107は、シリアルI/F118,119を介して、サブCPU114から後述のS617で退避したインターバル記録用のパラメータや復帰要因情報を取得し、取得した情報を一時記憶部103に記録する。なお、本処理において復帰するインターバル記録用のパラメータには、姿勢情報、撮影回数情報、記録の開始時刻などが含まれる。また、復帰要因情報とは、インターバル記録の終了操作によって電源がONされたか、起動タイマの満了に応じて電源がONされたかを示す情報である。S604において、メインCPU107は、サブCPU114から受信した姿勢情報に基づいて、映像処理部102へ映像の回転指示を行い、LCDパネル112に表示される映像の回転を行う。これは、前述したS503〜S505の処理と同様であり、正姿勢であれば記録用の映像を360度回転する、あるいは回転せず、逆さ姿勢であれば記録用の映像を180度回転する。なお、180度回転することに代えて、画像の左右及び上下を反転する処理としてもよい。180度回転と左右上下反転のどちらの処理を施しても結果として得られる画像の向きは同じである。
S605において、メインCPU107は、姿勢情報の更新禁止処理を実行し、本体向き検出部110からの出力を取得しないようにする。あるいは、本体向き検出部110での向き検出を停止することにより節電を図るようにしても良い。そして、以降の処理では一時記憶部103に保持された姿勢情報を参照する。このように、インターバル記録の開始後は、その時点で検出される姿勢ではなく、S605で更新が禁止された時点の姿勢が用いられることになる。こうして、1回目の画像の記録の際に用いられた姿勢に基づいて2回目以降の画像の記録時における映像の回転処理が行われる。ここで参照している姿勢情報は、動画インターバル記録を開始する直前に検出していた姿勢の情報、あるいは、サブCPU114から送信された姿勢情報である。いずれも、動画インターバル記録の開始直前(すなわち、STARTボタン403がタッチされる直前)に検出していた姿勢を表す情報である。
このように、動画インターバル記録中では、動画インターバル記録の開始時点の姿勢(言い換えると、1回目の撮影の際の姿勢)のみに基づいて処理され、途中で姿勢が変わったとしても検出姿勢に反映しない。このようにすることで、インターバル記録で記録された一連の画像の向きに関して整合性を保つことができる。例えば、インターバル記録で記録された各画像を後で結合するようなことがあった場合にも、結合された動画の途中で突然画像の向きが変わるといった各画像間での不整合が起こることを防ぐことができる。また、インターバル記録の途中でカメラが倒れる、あるいはユーザが意図的に姿勢を変えるなどしてカメラの姿勢が変わると、記録される映像に写る被写体の向きが開始時点の向きと変わる。これによって、記録された画像を見るユーザはカメラの姿勢がインターバル記録の途中で変わったことがわかる。他方、インターバル記録の途中でユーザが意図的にカメラの姿勢を変えたのであれば、ユーザの意図通りの画像が記録される。
S606において、メインCPU107は、シリアルI/F118,119を介してサブCPU114から受信した情報を元に、インターバル記録を終了させる操作があったか否かを判定する。電源OFFからの復帰直後であれば、サブCPU114から受信した復帰要因情報が、インターバル記録の終了操作を示すものであればインターバル記録の終了操作があったと判定する。インターバル記録の終了操作は、操作キー108に含まれる、再生モードに移行する指示を行う再生ボタンの押下である。再生ボタンの押下以外はインターバル記録の終了操作とはみなさず、インターバル記録の最中では再生ボタンの押下とレンズカバースライドスイッチ203を閉じるように移動させる操作(電源をOFFする操作)以外の操作は無視される。インターバル記録の終了操作があったと判定した場合には処理はS607に進み、そうでない場合はS611に進む。
S607において、メインCPU107は、ユーザに対して本当にインターバル記録を終了するかどうかを確認するための、インターバル記録の終了確認画面をLCDパネル112に表示する。この時の表示例が図4(c)である。S608において、メインCPU107は、「いいえ」に対応するボタン431に対するタッチ(インターバル記録継続操作)があったか否かを判定する。ボタン431へのタッチがあった場合、処理はS614に進み、そうでない場合はS609に進む。S609において、メインCPU107は、「はい」に対応するボタン432に対するタッチ(インターバル記録終了決定操作)があったか否かを判定する。ボタン432へのタッチがあった場合、処理はS610に進み、そうでない場合はS608に戻る。
S610において、メインCPU107は、姿勢情報更新禁止の解除処理を実行し、処理を図5のS509へ進める。この解除処理によって、S509に進んだ後は、カメラの姿勢か変わる度に本体向き検出部110で検出された姿勢に姿勢情報が更新され、S503〜S505の姿勢に応じた処理が行われる。
一方、インターバル記録を終了させる操作がなされていない場合、S611において、メインCPU107は、インターバル記録における次の記録開始時間になったか否かを判定する。各回の撮影開始時間は前述の通り、STARTボタン403へのタッチ操作から、記録間隔×(撮影回数−1)の時間で決まる。従って次回(k+1)回目の記録開始時間は、記録間隔×kとして求まる。次回が1回目の撮影であれば、記録開始時間は0秒なので、撮影回数情報kが0の場合はYesと判定される。2回目以降の撮影は、前回撮影の開始時からスタートしたタイマが設定された記録間隔に達した場合、あるいは、STARTボタン403へのタッチからの経過時間が次回記録の記録開始時間に達した場合にYesと判定される。記録開始時間になった場合には処理はS612に進み、そうでない場合はS614に進む。
S612において、メインCPU107は、インターバル記録の1回分の記録として、所定時間(例えば0.5秒)分に相当するNフレームの動画を記録する。記録されたNフレームの動画は、1回分の記録につき1つの動画ファイルとして、動画記憶部105に記憶する。なお、1連のインターバル記録(STARTボタン403へのタッチからインターバル記録終了操作まで)で記録される複数の動画ファイルは、インターバル記録の開始に伴って生成される同一のフォルダに記録するものとする。従って、同一フォルダに記録されていることをもって、一連のインターバル記録で撮影された動画ファイル群であることを識別できるようにしている。また、このとき一時記憶部103に保持されている固定された姿勢情報(1回目の記録時の姿勢に相当)が逆さ姿勢を示していれば、カメラ部101で撮像された画像は180度回転して記録される。S613では、メインCPU107は、撮影回数情報kを1つカウントアップする。
図9(a)は、第一の実施形態によるインターバル記録の一例を説明する図である。901〜904は、撮像素子により取得される動画を示しており、動画901と動画904は逆さ姿勢で撮像されたものである。図9(a)では、1回目の記録が逆さ姿勢であり、動画901は180度回転処理された後、動画ファイル911として記録される。この例では、1回目の記録が逆さ姿勢であったため、2回目以降の動画については、撮像装置の姿勢に関わらず180度回転処理が施されることになる。そのため、2回目の記録が正姿勢で行われると、撮像素子上では動画902が得られ、180度回転処理が施され、動画ファイル912として記録される。3回目、4回目の動画についても同様であり、動画903,904は、180度回転処理が施され、動画ファイル913,914として記録される。このようにして、インターバル記録により得られた一連の動画ファイルは、天地の方向が全て一致した状態となり、画像の向きの整合性が保たれることになる。
S614において、メインCPU107は、一時記憶部103にアクセスし、現在までの撮影回数を示す撮影回数情報kがM以下かどうかを判定する。Mは1以上の整数であるものとする。撮影回数がM回以下である場合は、電源ON状態のまま次回の記録開始時間まで待つために処理はS615に進む。撮影回数がM回より多い場合は電源OFF状態として節電するための処理に進むように、S616に進む。こうして、本実施形態では、インターバル記録における記録回数が所定回数を超えるまでは、省電力状態への移行が実行されないようにしている。
ここで、撮影回数がM回を超えるまで節電処理(省電力状態への移行)を実行しないのは、以下のような理由による。すなわち、STARTボタン403のタッチによってインターバル記録を開始した際、1回目の記録を行ってすぐに節電するために電源OFF状態としてしまうと、ユーザはインターバル記録が正常に行われているかどうか判断できず、不安に思う可能性がある。また、ユーザが意図した構図での撮影が行われているかを確認するために、スルー画像を見たいと思っている可能性もある。従ってS614の処理で、インターバル記録の開始からM回目までは節電せずにスルー画像を表示したままとするようにしている。このようにすることで、インターバル記録開始初期にインターバル記録の状態に入っていることをユーザが確認でき、ユーザの不安を解消することができる。M回を超えて何度か正常に撮影できたことを確認できた場合は、インターバル記録の性質上、三脚や床に設置されたカメラの傍からユーザが立ち去る可能性があるため、表示をやめて節電状態にしても支障は少ない。
なお、1回目の記録直後の表示さえ確認できれば良いと考えた場合は、M=2に設定しておけば、2回目の記録の後に節電状態(電源OFF状態)となるため、必要最小限の電力消費となる。また、ユーザがカメラの傍を立ち去るまでの時間を考え、記録間隔に応じてMの値を異なる値に設定しても良い。例えば、インターバル記録の開始から1分ほどでユーザがLCDパネル112の表示を見なくなると考えれば、記録間隔が10秒の場合はM=6、記録間隔が1分の場合はM=1、記録間隔が10分の場合はM=0と設定すればよい。
また、S614において、記録回数Mを用いた判定処理に変えて、STARTボタン403のタッチによってインターバル記録を開始した時点から所定時間(例えば1分)が経過したか否かを判定するようにしても良い。その場合、所定時間が経過していない場合にS615に進み、所定時間が経過した場合にS616に進む。このようにすれば、記録間隔の設定にかかわらず、インターバル記録の開始から、ユーザがカメラの側を離れるなどして表示を見なくなるまでは、スルー画像や次回撮影までの時間等の何らかの動作表示をユーザが確認することができる。なお、S614の処理を省いてS616に一律に進むようにし、1回目の記録の直後から節電状態になるようにしても良い。
S615において、メインCPU107は、LCDパネル112に次回の撮影(記録)までの時間を表示する。これにより、ユーザはインターバル記録が動作しており、あと何秒で記録が開始されるのかを知ることができる。次回の撮影までの時間の代わりに、あるいはそれと一緒に、スルー画像、現在までの撮影回数(k)、インターバル記録の開始からの経過時間等の情報の少なくとも1つを表示しても良い。なお、S615の処理を省いて何も表示しないようにしても良い。
また、メインCPU107は、インターバル記録の次の記録までの時間が所定時間を超えている場合には撮像装置を省電力状態へ移行し、次の記録までの時間が所定時間以下の場合には撮像装置を省電力状態へ移行しないように制御する。より具体的には、S616において、メインCPU107は、次の撮影までの時間Tが、所定時間T1以下かどうかを判定する。次の撮影までの時間Tは以下のようにして求められる。
T={記録間隔×(k+1)}−(S507でスタートしたタイマの経過時間)
インターバル記録の記録間隔がT1以下の値に設定されている場合は、S616において常にYesと判定されるため、S617の節電処理は行わない。記録間隔がT1より大きい値に設定されている場合は、前述したS608でインターバル記録の継続操作が行われたと判定されたタイミング次第で判定が変わる。次の撮影までの時間Tが所定時間T1以下であると判定した場合、処理はS615に進み、そうでない場合はS617に進む。
このように、節電処理を行うのを次回撮影までの時間が所定時間T1より長い場合に限っているのは以下の理由による。節電制御を行う場合、サブCPU114に電源OFF要求を送信してメインCPU107の電源がOFFになって節電状態となるまでの時間や、節電状態から復帰して記録可能となるまでの時間が発生する。そのため、次の撮影までの時間Tが短い場合に節電状態とする制御を行ってしまうと、記録開始しなければならないタイミングまでに節電状態から復帰して記録可能な状態になるのが間に合わない場合がある。記録開始しなければならないタイミングで記録することが不可能となってしまい、ユーザが設定した記録間隔からずれた(遅れた)タイミングでの撮影になってしまう可能性がある。このような状況に陥らないように、節電処理を行うのを次回撮影までの時間が所定時間T1より長い場合に限っている。これにより、ユーザの指定した記録間隔の設定に忠実に従った撮影を行うことができる。一方、次の撮影開始までの時間が長い場合にはメインCPU107の電源をすぐにOFFすることによって、バッテリーの消費を抑えることができる。
インターバル記録のためのパラメータを記憶している一時記憶部103は、省電力状態においてその記憶内容を維持することができない。したがって、S617において、メインCPU107は、撮像装置を省電力状態へ移行させる前に、一時記憶部103に保持しているインターバル記録のためのパラメータを、省電力状態において記憶を維持することができるメモリに退避させる。すなわち、メインCPU107は、姿勢情報、撮影回数情報、STARTボタン403がタッチされた時点の時刻TstartなどのパラメータをシリアルI/F118,119を介して、サブCPU114へ送信する。サブCPU114は、受信した記録パラメータを一時記憶部117に記憶する。一時記憶部117は、省電力状態においても電力供給が維持されるため、省電力状態でもパラメータを維持することができる。これによって、メインCPU107の電源がOFFとなって揮発性メモリである一時記憶部103の内容がクリアされてしまっても、次回復帰時に姿勢情報、撮影回数情報、Tstartを再取得できるようにしている。なお、本実施形態では姿勢情報、撮影回数情報、TstartをサブCPU114へ送信して一時記憶部117に記録するようにしているが、これに代えて不揮発メモリ113に記録するようにしてもよい。その場合は、省電力状態からの復帰時には、メインCPU107は不揮発メモリ113から姿勢情報、撮影回数情報、Tstartを取得する(S603)。なお、本実施形態では、インターバル記録の記録間隔は変更がそれほど頻繁には発生しないという観点から不揮発メモリ113に記憶している。そのため、省電力状態への移行時に退避するパラメータに記録間隔を含めていないが、記録間隔を一時記憶部103に記憶して、上記退避処理の対象としてもよいことは言うまでもない。
S618において、メインCPU107は、シリアルI/F118,119を介して、サブCPU114へ電源OFFの要求を行う。電源OFFの要求を行うと、サブCPU114からの処理によりメインCPU107は電源OFF状態(省電力状態)となり、図6の処理を終了する。なお、図5のS505における静止画インターバル記録処理は、記録の対象が動画ではなく静止画となることを除いて図6の動画インターバル記録処理と同様の処理である。すなわち、静止画インターバル記録処理では、図6の動画インターバル記録処理において、S612の処理が静止画記録処理となり、1つの静止画につき1つの静止画ファイルが生成される。
次に、本撮像装置の動画インターバル記録処理におけるサブCPU114の動作について説明する。図7は動画インターバル記録処理におけるサブCPU114の制御フローチャートである。この処理は、プログラム・データ記憶部116に記憶されたプログラムを、一時記憶部117に展開してサブCPU114が実行することにより実現される。
S701において、サブCPU114は内部で管理している起動タイマをクリアする。S702において、サブCPU114は、一時記憶部117にて管理している姿勢情報・撮影回数情報のクリア処理を行う。S703において、サブCPU114は、シリアルI/F118,119を介して、メインCPU107から姿勢情報、撮影回数情報、STARTボタン403がタッチされた時点の時刻Tstart、記録間隔を受信したかどうかを判定する。前述した図6のS617でメインCPU107から送信された各種情報をサブCPU114が受信したか否かがこのステップで判断される。姿勢情報、撮影回数情報、STARTボタン403がタッチされた時点の時刻Tstart、記録間隔を受信したと判定された場合、処理はS704へ進み、そうでない場合はS705へ進む。
S704では、サブCPU114は、メインCPU107から受信した姿勢情報、撮影回数情報k、STARTボタン403がタッチされた時点の時刻Tstart、記録間隔を一時記憶部117へ記録する。S705において、サブCPU114は、シリアルI/F118,119を介してメインCPU107から電源OFFの要求を受信したかどうかを判定する。前述した図6のS618でメインCPU107から送信される電源OFF要求が受信されたか否かがこのステップで判定される。電源OFFの要求を受信したと判定された場合、処理はS706へ進み、そうでない場合はS703へ戻る。
S706において、サブCPU114は、電源管理部115へメインCPU107の電源遮断の指示を行い、メインCPU107の電源をOFFする。S707において、サブCPU114は、次の起動までの起動タイマをセットする。起動タイマは、次回の記録開始時間までの時間よりも所定時間T2(例えば5秒)短い時間に設定される。たとえば、次回の記録開始時間は以下のように求められる。
Tstart+{記録間隔×(k+1)}
したがって、起動タイマは以下のようにして決まる。
起動タイマ=Tstart+{記録間隔×(k+1)}−現在時刻−T2
S708において、サブCPU114は、インターバル記録の終了操作があったか否かを判定する。終了操作があった場合、処理はS711に進み、そうでない場合はS709へ進む。S709において、サブCPU114は、S707でセットした起動タイマが満了したか(起動タイマ分の時間が経過したか)否かを判定する。起動タイマが満了したと判定されると、処理はS711へ進み、そうでない場合はS710に進む。
S710において、サブCPU114は、起動タイマのデクリメント処理を行う。S711において、サブCPU114は、電源管理部115へメインCPU107への電源投入を指示し、Main−CPU107の電源をONする。S712において、サブCPU114は、シリアルI/F118,119を介してメインCPU107へ姿勢情報、撮影回数情報k、Tstart、記録間隔、及び起動要因情報を送信する。なお、起動要因情報とは、インターバル記録の終了操作によって電源をONしたか、起動タイマの満了に応じて電源をONしたかを示す情報である。
以上のように、本実施形態によれば、動画インターバル記録処理、および、静止画インターバル記録処理では、インターバル記録モードの記録中は、同一の姿勢情報を参照することが可能となる。そのため、インターバル記録において後に撮影された動画シーンを結合する場合に、ユーザの意図した結合を実現することが可能となる。
なお、上述の実施形態では、動画または静止画のインターバル記録を開始させるトリガー(動画インターバル記録で言えばSTARTボタン403へのタッチ)の直前に検出されていた姿勢を姿勢情報として保持する例を説明した。しかし、保持すべき姿勢を検出するタイミングはこれに限るものではなく、インターバル記録の1回目の記録画像に関する姿勢を検出し、2回目以降の記録画像でも1回目の記録画像と同じ姿勢情報を参照するものであればよい。例えば、インターバル記録を開始させるトリガーの直後に検出された姿勢、1回目の記録画像の撮影の直前または途中または直後に検出した姿勢を姿勢情報として維持してもよい。
なお、上述の実施形態においては、カメラが逆さ姿勢の場合に180度回転処理する例を説明したが、これに限るものではなく、正姿勢以外の他の姿勢の時に回転処理を施しても良い。例えば、カメラを正姿勢から約90度傾けられた縦姿勢にして撮影されていることが検出できた場合に、記録する画像をカメラが傾いている向きと逆向きに90度回転して記録するようにしても良い。この場合も、1回目の記録画像の姿勢に合わせるように処理する。
<第二の実施形態>
上述した第一の実施形態においては、一時記憶部103に保持されている姿勢情報(1回目の記録時の姿勢)が逆さ姿勢を示していれば、カメラ部101で撮像された画像は180度回転して記録される。しかしながら、記録時にそのような回転処理をすることはせずに、一時記憶部103に保持されている姿勢情報(1回目の記録時の姿勢)を示す属性情報を画像ファイルに関連付けて記録するようにしてもよい。例えば、1回目の記録が逆さ姿勢で撮像された場合に2回目以降の画像の記録時に逆さ姿勢に応じた回転処理を行って画像を記録する第一実施形態の構成に代えて、回転処理は実行せずに各記録時の姿勢を示す属性を付与して画像を記録するようにしてもよい。このように回転処理を行わずに属性付与処理を行った場合は、後の結合処理において、画像に付与されている属性情報を参照して、一連のインターバル記録で得られた画像を全て1回目の記録画像の姿勢に合わせるように回転処理する。例えば、一連のインターバル記録で得られた複数の動画を結合する際に、属性情報を参照し、1回目の記録画像が逆さ姿勢を示していれば、結合する全ての動画に180度回転処理(上下左右反転処理と同義)を施してから結合する。
第二の実施形態では、以上のような、インターバル記録された動画ファイルの結合時に、先頭ファイルの姿勢情報をもとに映像を回転させて結合する構成を説明する。なお、第二の実施形態によるビデオカメラ本体の構成、概観、LCDパネルへの表示形態については第一の実施の形態(図1、図2、図3)と同様である。
図8は、インターバル記録の終了後に実行される動画ファイル結合において、先頭ファイルの姿勢情報を基に映像信号を回転させて結合する制御のフローチャートである。S801において、メインCPU107は、結合する動画ファイル群の先頭ファイルに関連づいた姿勢情報を取得する。結合する動画ファイル群としては、例えば、1つのフォルダをユーザが指定することで、指定されたフォルダに含まれる全動画ファイルを結合対象とすることができる。第1の実施形態のように一連のインターバル記録で記録された画像が同一フォルダに格納される場合は、このように指定することで、一連のインターバル記録で記録された複数の動画を結合対象とすることができる。先頭ファイルとは、たとえば、指定されたフォルダに含まれる動画ファイルの中で最もファイル番号の小さいファイル(ファイル名に含まれる番号の小さいファイル)である。
なお、結合対象のファイルの指定方法はこれに限るものではなく、任意の動画ファイル、あるいは静止画も含めて、結合対象となるファイルをユーザが任意に指定できるようにしてファイル群を形成するようにしても良い。また、姿勢情報はメタデータとして画像ファイルとは別の管理ファイルで管理されたものでもよいし、画像ファイルのヘッダの中に記録された姿勢情報でもよい。先頭ファイルに関連づいた姿勢情報の取得が終了すると、処理はS802へ進む。
S802において、メインCPU107は、内部変数で管理しているファイルポインタを先頭ファイルへのポインタで初期化する。ファイルポインタは、各々のファイルの識別子として管理され、ファイルのオープン/クローズ、読み込み、書き込み、デコード、エンコード処理で使用される。ファイルポインタを先頭ファイルのポインタで初期化すると、処理はS803へ進む。
S803において、メインCPU107は、ファイルを結合するためにファイルポインタが示すファイルをデコードするようにエンコーダ・デコーダ部104に指示し、デコード処理を行う。デコード処理が完了すると、処理はS804へ進む。S804において、メインCPU107は、デコードしたファイルに関連づいた姿勢情報と、S801で取得した先頭ファイルの姿勢情報が異なるかどうかを判定する。異なると判定された場合、処理はS805へ進み、同じと判定された場合、処理はS806へ進む。
S805では、メインCPU107は、S801で取得した先頭ファイルの姿勢情報が示す姿勢で撮像した回転状態となるように映像処理部102へ映像の回転指示を行い、映像の回転を行う。映像の回転が終了すると、処理はS806へ進む。S806において、メインCPU107は映像処理部102へファイル結合の指示を出し、ファイルの結合を行う。ファイルの結合が完了すると、処理はS807へ進む。
S807において、メインCPU107は次のファイルを結合の対象とするため、内部で管理しているファイルポインタのインクリメント処理を行う。ファイルポインタのインクリメント処理が完了すると、処理はS808へ進む。S808において、メインCPU107は、S807でインクリメントしたファイルポインタが最終ファイルを超えているかどうかを判定する。最終ファイルを超えている場合は、結合処理は完了となる。最終ファイルを超えていないと判定された場合、処理は803へ戻り、上述の処理が繰り返される。
S808において、S807でインクリメントしたファイルポインタが最終ファイルを超えていると判定された場合、処理はS809へ進む。S809において、メインCPU107は結合したファイルをエンコードするため、エンコーダ・デコーダ部104へエンコード指示を行い、エンコード処理を行う。エンコードが完了すると、本処理を終了する。
以上のように、動画ファイル結合では、先頭ファイルの姿勢情報をもとに後のファイルの姿勢情報を変換するため、結合されたシーンは、同一の姿勢情報となり、ユーザの意図した結合を実現することが可能となる。たとえば、図9(b)のように4回の動画記録により得られた動画ファイル921〜924を統合する場合、最初の動画ファイル921の姿勢情報は「逆さ姿勢」を示している。図9において、画像枠のふと線で示した側が、撮像装置の下側に対応している。動画ファイル921の動画は、自動回転機能により180度回転されて(撮像装置の下側を示す太線が上側に来るように回転されている)、被写体は正立した状態となっている。この動画ファイル921を先頭の動画ファイル931として結合する場合、次の動画ファイル922は、姿勢情報が正姿勢であり、先頭の動画ファイル921の姿勢情報とは異なる。そのため、画像の天地の状態が「正姿勢」の状態から「逆さ姿勢」の状態で撮影された状態になるように回転処理が施され、2番目の動画ファイル932としてから、動画ファイル931と結合される。同様に、3番目の動画ファイル923についても、180度回転処理が施して得られた動画ファイル933が結合される。動画ファイル924は、姿勢情報が先頭の動画ファイル921と同じなので、回転処理が施されていない動画ファイル934の状態で結合される。このようにして、インターバル記録により得られた一連の動画ファイルの結合が完了すると、結合された動画ファイルは全て天地の方向が一致した状態となり、画像の向きの整合性が保たれることになる。
なお、上述したメインCPU107やサブCPU114の制御は1つのハードウェアが行ってもよいし、複数のハードウェアが処理を分担することで、装置全体の制御を行ってもよい。
また、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。
また、上述した実施形態においては、本発明をビデオカメラに適用した場合を例にして説明したが、これはこの例に限定されず、インターバル記録が可能な撮像装置を有する電子装置であれば適用可能である。すなわち、本発明は、カメラ機能を有するパーソナルコンピュータやPDA、携帯電話端末や携帯型の画像ビューワ、音楽プレーヤー、ゲーム機などに適用可能である。
(他の実施形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。