(実施形態1)
図1は、本発明の実施形態1に係る遠隔制御システムの概略構成の一例を示す図であり、図2は、この遠隔制御システムのブロック図である。100は、制御装置の一例としてのPC(Personal Computer)(以下PC)であり、200は、撮像装置の一例としてのデジタルカメラである。また、300は、PC100とデジタルカメラ200を接続する接続ケーブルの一例であるUSBケーブル(Universal Serial)(以下USB)である。以下にこれらについて詳細に説明する。
<USBケーブル300>
USBケーブル300は、双方向でデータを伝送するデータライン、ストローブ信号を転送するストローブ信号ライン及び電源ライン等を有する。
データラインには、PC100と接続したデジタルカメラ200を制御するためのプロトコルが用意されている。このプロトコルによってUSB対応のPC100とデジタルカメラ200との装置間において、様々なデータの転送やコマンド700の送受信を行うことが可能になる。
ストローブ信号ラインとは、データを転送する装置側がデータを受信する装置側に、データが出力されていることを示す信号であるストローブ信号を伝送するためのラインである。また、データ転送はストローブ信号の立ち上がりと立ち下がりの両方で行う。データを受信する装置においては、データラインとストローブ信号ラインによって、伝送されたデータを生成する。
電源ラインはPC100からデジタルカメラ200に対して必要に応じて電力を供給するためのラインである。
なお、接続ケーブルは、USBケーブルに限るものではない。例えば、画像データ、音声データ及び補助データを伝送するラインを有するIEEE1394規格に準拠した接続ケーブルが考えられる。また、上記実施形態中では接続ケーブルとしたが、PC100とデジタルカメラ200との通信を無線通信によって行うものであっても良い。
<デジタルカメラ200>
デジタルカメラ200は、USBケーブル300を介して、映像(video)データ、音声(audio)データ及び補助データをPC100に送信することができる映像ソースである。また、デジタルカメラ200は、PC100からUSBケーブル300を介して制御のためのコマンド700を受信し、コマンド700に応じた処理を実行する。
より具体的には、デジタルカメラ200は、図2に示すように、CPU201、メモリ202、記録部203、通信部204、画像処理部205、表示部206、操作部207、撮像部208を有しており、撮影準備処理及び撮影処理を実行する。
CPU201は、メモリ202に記憶されているコンピュータプログラムに従って、デジタルカメラ200の全体の動作を制御する。また、CPU201は、USBケーブル300を介してPC100に関する情報をPC100から取得してメモリ202に記憶する。なお、CPU201のワークエリアは、メモリ202に限られるものではなく、ハードディスク装置等の外部記憶装置であってもよい。
メモリ202は、上記の通りCPU201のワークエリアとして機能するメモリである。また、CPU201で使用される様々な値、データ及び情報を記憶するメモリでもある。また、メモリ202に記憶される情報には、デジタルカメラ200を制御するコンピュータプログラム、表示部206に表示される所定の画像データやアイコン等もある。
通信部204は、USBケーブル300を接続するための端子を有する。通信部204は、画像データと、音声データと、CPU101で生成された補助データとを、USBケーブル300を介してPC100に送信する。また、通信部204は、PC100からUSBケーブル300を介して送信されてくるコマンド700を受信する。通信部204は、PC100からのコマンド700を受信した場合、受信したコマンド700をCPU101に供給する。
操作部207は、デジタルカメラ200を操作するためのユーザインターフェースであり、デジタルカメラ200を操作するための複数のボタンを有する。ユーザからの指示は、操作部207を介してCPU201に入力される。操作部207内の各ボタンは、スイッチ、タッチパネル等により構成される。操作部207は、シャッターボタン、電源ボタン、スタート/ストップボタン、モード変更ボタン、メニューボタン、十字ボタン、SETボタン等を有する。
シャッターボタンは、シャッターボタンの半押しされた状態であるS1とシャッターボタンの全押しされた状態であるS2の2つの状態を持つ。
電源ボタンは、デジタルカメラ200を電源オン(ON)状態又は電源オフ(OFF)状態に変更することをCPU201に指示するボタンである。電源オン状態とは、不図示の電源(バッテリ、AC電源等)からデジタルカメラ200の全部に必要な電力を供給することができる状態である。電源オフ状態とは、不図示の電源(バッテリ、AC電源等)からデジタルカメラ200の一部又は全部への電力の供給を停止した状態である。
スタート/ストップボタンは、撮像部208によって生成された画像データ等の記録媒体への記録の開始又は一時停止をCPU201に指示するボタンである。モード変更ボタンは、デジタルカメラ200の動作モードを通常撮影モード、再生モード、連続撮影モード、バルブ撮影モード、ミラーアップ撮影モード等のいずれかに変更することをCPU201に指示するボタンである。
メニューボタンは、デジタルカメラ200のメニュー画面の表示又は非表示をCPU201に指示するボタンである。デジタルカメラ200のメニュー画面は、デジタルカメラ200を制御するためのメニュー画面、デジタルカメラ200の設定を変更するためのメニュー画面を含む。これらのメニュー画面は、メモリ202に記憶されている。
また、操作部207は、再生ボタン、停止ボタン、一時停止ボタン、早送りボタン、巻き戻しボタン等を有する。これらのボタンは、記録媒体に記録された画像データの再生(play)、停止(stop)、一時停止(pause)、早送り(fast forward)及び巻き戻し(rewind)の実行をCPU201に指示するボタンである。
撮像部208は、撮像素子、A/D変換部、光学系を備えている。光学系とは撮影レンズ群のことであり、撮影の倍率を挙げるバリエータレンズや焦点を調整するフォーカシングレンズ、撮影光量を調節する絞り及びそれらの駆動回路等が含まれている。撮像素子は光学系を介して入射した被写体光を電気信号である画像信号に変換する。撮像素子としては、例えばCCDイメージセンサーやCMOSセンサーが挙げられる。A/D変換部は撮像素子から出力される画像信号(アナログデータ)をデジタルデータ(画像データ)に変換し、画像処理部205に出力する。
画像処理部205は、撮像部208から出力された画像データまたは記録部203から出力された画像データに対して画素補間処理や色変換処理等の画像処理を行う。また、画像処理部205は、圧縮伸長回路を備えており、適応離散コサイン変換(ADCT)等により画像データを圧縮伸長する圧縮・伸長回路であり、メモリ202に格納されている画像データを読み込んで、画像データに対して圧縮処理或いは伸長処理を行う。また、画像処理部205は、撮像部208から出力される画像データを用いて演算処理を行う。この演算結果に基づいてCPU101は、TTL(スルー・ザ・レンズ)方式のAF処理、AE処理、フラッシュプリ発光処理、TTL方式のオートホワイトバランス処理を制御している。
表示部206は、液晶ディスプレイ等により構成される。表示部206は、撮像部208が生成した画像データ又は記録部203が記録媒体から再生した画像データを表示する。
ここで、撮影準備処理とは、デジタルカメラ200の操作部207に含まれるシャッターボタンが半押しされてS1の状態になった場合に、デジタルカメラ200で行われる処理のことである。この処理では、CPU201により、撮像部208の撮像素子、A/D変換部、光学系が制御され、AF処理、AE処理が行われる。また、撮影準備処理には、例えばフラッシュプリ発光(Electronic Flash、以下EF)処理、オートホワイトバランス(Auto White Balance、以下AWB)処理、防振処理等も含まれる。
AF処理とは、CPU201が撮像部208に含まれるフォーカシングレンズの位置制御を行う処理であり、フォーカシングレンズの合焦位置を検出してフォーカシングレンズの位置を調整する処理である。
詳細には、まずCPU201が、フォーカシングレンズを無限遠に相当する位置から各々の動作モードにおいて設定される至近距離に相当する位置まで駆動させながら、撮像素子によって複数の画像信号を取得させるよう制御する。そして、画像信号から抽出される高周波成分が最も多くなるフォーカシングレンズの位置(合焦位置)等の測定データ及び/或いは設定パラメータをメモリ202に記憶させ、フォーカシングレンズの位置を調整するよう制御する。
AE処理とは、画像処理部205での演算結果を用いて測光値を取得し、露出を適正にする処理である。
詳細には、撮像部208から出力された画像データは、画像処理部205にて、1画面を複数のエリア(例えば、16×16)に分割され、分割エリアごとにRGB信号を積算され、その積算値がCPU201に提供される。CPU201は、積算値に基づいて被写体の明るさ(被写体輝度)を検出し、撮影に適した露出の値を算出する。求めた露出値に応じて、絞り値とシャッタースピードが決定され、これに従いCPU201は撮像素子及び光学系を制御して適正な露光量を得る。また、露出が適正と判断されたなら、測定データ及び/或いは設定パラメータはメモリ202に記憶される。
EF処理とは、CPU201がAE処理を行って絞り値及びシャッタースピードを決定した結果に応じて、フラッシュが必要と判断した場合に行う処理である。CPU201でフラッシュが必要と判定されたならばフラッシュ・フラグをセットし、フラッシュを充電する。また、AF補助光の投光機能、フラッシュ調光機能も有する。
AWB処理とは、記録された画像から外光の色温度、外光とフラッシュ光との光量の割合を求めることによって、フラッシュ撮影画像の適切な色バランスを得るために行う処理である。画像処理部205によって、分割エリアごとにRGB信号の色別の平均積算値が算出され、その算出結果がCPU201に提供される。CPU201は、Rの積算値、Bの積算値、Gの積算値を得て、分割エリア毎にR/G及びB/Gの比を求める。そして、これらR/G、B/Gの値のR/G、B/G軸座標の色空間における分布等に基づいて光源種判別を行い、判別された光源種に応じてR、G、B信号に対するホワイトバランスの補正値を制御し、各色チャンネルの信号に補正をかける。
以上、撮影準備処理について説明を行ったが、これらの処理以外に、撮影処理が行われる前に実行されるのが好ましい処理を撮影準備処理として行っても良い。また、AWB処理は、撮影準備処理と撮影処理の間に行っても良い。
次に、撮影処理について説明を行う。
撮影処理とはデジタルカメラ200のシャッターボタンが全押しされてS2の状態になった場合に行われる処理である。この処理では、撮像部208において撮像素子から出力されたアナログデータがA/D変換部でデジタルデータに変換された後、画像処理部205で圧縮が行われ、記録部203に画像データが書き込まれる。
<PC100>
PC100はUSBケーブル300を介して、デジタルカメラ200から送信された映像(Video)データを表示器に表示し、音声(audio)データをスピーカから出力する。また、PC100は、ユーザからの入力に応じてデジタルカメラ200の制御のためのコマンド700を生成し、USBケーブル300を介してコマンド700をデジタルカメラ200に送信する。
PC100は、図2に示すように、CPU(Central Processing Unit)101、メモリ102、通信部104、表示部105、操作部106を有する。
CPU101は、メモリ102に記憶されているコンピュータプログラムに従って、PC100の動作を制御する。また、CPU101は不図示のタイマーを有し、各部が実行する処理の経過時間等を計測する。
メモリ102は、CPU101のメインメモリとしても機能し、通信部104から受信したデジタルカメラ200からのデータを格納する。また、メモリ102には、PC100の状態をユーザに通知するための複数のアイコン、PC100の動作を制御するためのコンピュータプログラム等が記憶されている。また、表示部105に表示するメニュー画面も記憶されている。
通信部104は、USBケーブル300を接続するための端子を有する。通信部104は、USBケーブル300を介してデジタルカメラ200から送信された画像データ、音声データ及び補助データを受信することができる。デジタルカメラ200から送信された画像データは、メモリ102に格納されるとともに表示部105に表示される。また、デジタルカメラ200から送信された音声データは、不図示のスピーカ部から出力される。また、デジタルカメラ200から送信された補助データは、CPU101に供給される。
表示部105は、液晶ディスプレイ等の表示器により構成される。表示部105は、メモリ102及び通信部104の少なくとも一つから供給された画像データを表示することができる。また、表示部105は、メモリ102に記憶されているグラフィカルユーザインターフェースであるメニュー画面を表示することもできる。メニュー画面は、PC100を制御するためのPC制御画面、PC100の設定を変更するためのPC設定画面、または、デジタルカメラ200を制御するためのカメラコントロール画面400等を含む。カメラコントロール画面400の詳細については、後述する。
なお、これらのメニュー画面が表示部105に表示されている場合、CPU101はマウスカーソル(矢印の形状のアイコン)500をメニュー画面に重畳して表示する。
また、表示部105は、CPU101から供給されたカメラコントロール画面400の所定の領域に、通信部104から供給された画像データを表示する。
操作部106は、PC100を操作するためのユーザインターフェースである。また、操作部106は、PC100を操作するための操作手段として、マウス106aやタブレット、トラックボール等のポインティングデバイスやキーボード106bを有する。これらのポインティングデバイスをユーザが操作することによって、メニュー画面に重畳されたマウスカーソル500をメニュー画面上で操作を行うことができる。
メニュー画面上において、ポインティングデバイスの位置情報に応じてマウスカーソル500はメニュー画面上を移動し、ポインティングデバイスが押下されると、マウスカーソル500は検出された所定領域に応じて処理を行う。
<カメラコントロール画面400>
図3は、メニュー画面の一例であるカメラコントロール画面400を表すもので、パソコンのOSで標準的に採用されているようなウィンドウシステム上に構成したものである。
カメラコントロール画面400はカメラを遠隔制御するためのウィンドウである。画像データを表示するビュー領域401、遠隔制御システムの状態を文字情報で表示するステータス領域402、シャッターボタン403、撮像装置のパラメータを表示するパラメータ領域404等がある。
ビュー領域401は、デジタルカメラ200からPC100の通信部104で連続的に受信したライブビュー映像、もしくは撮影動作により受信した静止画像を表示している。
ステータス領域402には、遠隔制御システムの状態として「撮影可能」と表示されている。しかし、それ以外の遠隔制御システムの状態では、「撮影可能」、「撮影準備中」、「撮影処理中」と表示される。
シャッターボタン403は、シャッターボタンの半押しされた状態であるS1とシャッターボタンの全押しされた状態であるS2の2つの状態の撮影処理を行う。デジタルカメラ200の動作モードが通常撮影モードの場合、マウスカーソル500がシャッターボタン403上に移動されると、PC100からデジタルカメラ200に対して撮影準備処理の開始を指示する。また、デジタルカメラ200の動作モードが通常撮影モードの場合、マウスカーソル500がシャッターボタン403上にある状態でクリックされると、PC100からデジタルカメラ200に対して一連の撮影処理の動作開始を指示する。シャッターボタンがS1の状態のときに行う撮影準備処理とシャッターボタンがS2の状態のときに行う撮影処理については、前述したとおりである。
パラメータ領域404には、動作モード、シャッタースピード、絞り値、ホワイトバランス値等が表示されている。これらの値は、デジタルカメラ200から受信する補助データに含まれている。なお、パラメータ領域404はこれ以外の補助データを表示するものであっても良い。また、操作によりパラメータ領域404上の値が変更された場合には、CPU101は通信部104に補助データ設定のためのコマンド700を生成させ、送信コマンドキュー600に追加する。ここで、補助データ設定のためのコマンド700に含まれる送信コマンド710を補助データ設定コマンドと称する。送信コマンドキュー600の処理については後述する。これにより、デジタルカメラのパラメータが変更される。
CPU101は通信部104でデジタルカメラ200から受信したデータをそれぞれビュー領域401、ステータス領域402、パラメータ領域404に表示するように制御している。
なお、シャッターボタン403やパラメータ領域404などの予め決められた領域でマウスオーバやクリックなどの指示が行われると、デジタルカメラ200へのそれぞれの制御のためのコマンドがPC100により生成されることとなる。
<PC100からコマンド700を受けた際のデジタルカメラ200の動作>
次に、図1、図2及び図4を参照し、実施形態1に係るデジタルカメラ200で行われる処理を説明する。図4は実施形態1に係るデジタルカメラ200で行われる処理の一例を示すフローチャートである。図4のフローチャートが示す処理は、PC100とデジタルカメラ200とがUSBケーブル300を介して接続され、PC100及びデジタルカメラ200が電源オン状態であるときに実行される処理である。なお、図4のフローチャートに示す処理は、CPU201がメモリ202に記憶されているコンピュータプログラムを実行することによって制御される。
ステップS101において、デジタルカメラ200の動作モードが操作部207で通常撮影モードに設定された場合、CPU201は通信部204に通常撮影モードを示す動作モード信号を生成させる。そして、USBケーブル300を介してPC100の通信部104に送信するように指示を行う。
ステップS102において、CPU201は通信部204が撮影準備の制御ためのコマンド700を受信したか否かを判定する。ここで、撮影準備の制御ためのコマンド700に含まれる送信コマンド710を撮影準備コマンドと称する。CPU201が撮影準備コマンドを含むコマンド700を受信したと判定した場合は、CPU201はメモリ202に撮影準備フラグを設定する。そして、CPU201は撮影準備処理を実行させるように指示を出す(ステップS103)。
CPU201が撮影準備コマンドを含むコマンド700を受信しなかったと判定した場合は、再び、通信部204が撮影準備コマンドを含むコマンド700を受信したか否かを判定する。
ステップS103において、撮影準備処理が行なわれるとステップS404に進む。
ステップS104において、CPU201は通信部204がPC100からの撮影の制御のためのコマンド700を受信したか否かを判定する。ここで、コマンド700に含まれる撮影の制御のための送信コマンド710を撮影コマンドと称する。
CPU201は、通信部204が撮影コマンドを含むコマンド700を受信したと判定した場合、メモリ202に撮影フラグをセットし、撮影処理を実行させるように指示を出す(ステップS105)。そして、撮影処理が行なわれると、CPU201はメモリ202の撮影準備フラグ及び撮影フラグをリセットする。
一方、通信部204が撮影コマンドを含むコマンド700を受信しなかったと判定した場合は、CPU201はメモリ202の撮影準備フラグをリセットし、ステップS102に戻る。
ステップS106において、CPU201は通信部204に画像データの送信準備が完了したことを示す準備完了信号を生成させ、PC100に送信するように指示を出す。PC100に準備完了信号が送信された後、CPU201は記録部203から画像データを読み出して、通信部に読み出した画像データをPCに送信するように指示を出す。そして、本フローチャートで行われるデジタルカメラ200の処理は終了する。
<デジタルカメラ200へコマンド700を送信する際のPC100の動作>
次に、図1、図2及び図5を参照し、実施形態1に係るPC100で行われる処理を説明する。図5は実施形態1に係るPC100で行われる処理の一例を示すフローチャートである。図5のフローチャートが示す処理は、PC100とデジタルカメラ200とがUSBケーブル300を介して接続され、PC100及びデジタルカメラ200が電源オン状態であるときに実行される処理である。なお、図5のフローチャートに示す処理は、CPU101がメモリ102に記憶されているコンピュータプログラムを実行することによって制御される。
通信部104がデジタルカメラ200から通常撮影モードを示す動作モード信号を受信した場合、CPU101はメモリ102に動作モードフラグを「通常撮影モード」に設定する。
その後、CPU101はメモリ102からカメラコントロール画面400を読み出して、表示部105に表示させる。表示部105に表示されたカメラコントロール画面400のパラメータ領域404のMODEは通常撮影に設定され、カメラコントロール画面400のステータス領域402に「撮影可能」と表示される。なお、デジタルカメラ200の動作モードが連続撮影モードに設定された場合、表示部105に表示されたカメラコントロール画面400のMODEは連続撮影に設定され、動作モードがバルブ撮影モードに設定された場合、MODEはバルブ撮影に設定される。また、デジタルカメラ200の動作モードがミラーアップ撮影モードに設定された場合は、MODEはミラーアップ撮影に設定される。
ステップS201において、CPU101は判定手段の一例であるマウスカーソル500が撮影ボタン403の領域上で検出(マウスオーバ)されたか否か判定する。CPU101によって、マウスカーソル500が撮影ボタン403の領域上で検出されなかった場合には、マウスカーソル500が撮影ボタン403の領域上で検出されたか否か判定を繰返す。
ステップS201において、CPU101によってマウスカーソル500が撮影ボタン403の領域上で検出されると、CPU101は通信部104に撮影準備コマンドを含むコマンド700を生成させ、送信コマンドキュー600に追加を指示する。
ステップS203において、CPU101はマウスカーソル500が撮影ボタン403の領域上で続けて検出(マウスオーバ中)されているか否かを判定する。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出したと判定した場合、本フローチャートは、ステップS203からステップS204に進む。一方、CPU101がマウスカーソル500を撮影ボタン403の領域上で検出しなかった場合、本フローチャートは、ステップS203からステップS201に戻る。
ステップS204において、CPU101はマウスカーソル500を操作する操作部106のマウス106aのボタンがユーザによりクリックされたか否かを判定する。
CPU101がマウス106aのボタンがクリックされたと判定した場合、本フローチャートは、ステップS204からステップS205に進む。一方、CPU101がマウス106aのボタンがクリックされたと判定しなかった場合、本フローチャートはステップS204からステップS203に戻る。
ステップS205において、マウスカーソル500が撮影ボタン403の領域上にある状態でマウス106aのボタンがクリックされると、CPU101は指示手段の一例である通信部104に撮影コマンドを含むコマンド700を生成させる。そして、送信コマンドキュー600に追加する。
ステップS205を実行後、送信コマンドキュー600の撮影コマンドを含むコマンド700がデジタルカメラ200に送信される。そして、デジタルカメラ200によって図4のフローチャートのように撮影処理と画像データ送信が実行され、PC100に画像データが送られてくる。
ステップS206において、CPU101はデジタルカメラ200から送られた画像データを、表示部105に表示させる。そして、本フローチャートは終了する。
このように、マウス106aが操作されることによってマウスカーソル500が撮影ボタン403の領域上にマウスオーバされるとPC100はデジタルカメラ200に撮影準備処理を指示する。その後、マウスカーソル500がマウスオーバされた撮影ボタン403の領域上にある場合、マウス106aがクリック操作されるとPC100はデジタルカメラ200に撮影処理を指示する。さらに、デジタルカメラ200からPC100へ送られた画像データを表示する。
なお、実施形態1では不図示のファインダーを通して撮影対象を確認してデジタルカメラ200を遠隔制御する形だが、ライブビュー映像をPC100の表示部105に表示して、撮影対象を確認しながら、デジタルカメラ200を遠隔制御する形でもよい。
<送信コマンドキュー600の構成>
次に、送信コマンドキュー600について、図6、図7を用いて説明する。
図6は、コマンド700がコマンド1から順番にコマンド5まで追加され、送信コマンドキュー600に5つのコマンドがあることを図示している。送信コマンドキュー600は、複数のコマンド700を順に処理するためのものであり、先入れ先出し方式で処理されるものとする。また、送信コマンドキュー600内のコマンド700に対しては、追加と取り出し、削除、順序の入れ換え、順序管理ができるものとする。
図7は、コマンド700について、図示している。
コマンド700は、次の構成要素から成り立つ。カメラを制御するための送信コマンド710、送信コマンドキュー600に追加した時間を記録した登録時刻720、複数の同じ送信コマンドを1つのコマンドでまとめる場合に同じ送信コマンドを管理するためのカウント730である。前述したように、送信コマンド710には、デジタルカメラ200を制御するための補助データ設定コマンド、撮影準備コマンド、撮影コマンドなどの種類がある。送信コマンド710を確認することで、コマンドを追加する際に同じ種類のコマンドが送信コマンドキュー600内にあるかどうかを確認できる。さらに、登録時刻720を確認することで、コマンドを追加する際に同じ種類のコマンドが送信コマンドキュー600に追加されてからの経過時間を計算できる。さらに、カウント730を確認することで、同じ種類のコマンドがいくつまとめられたかを確認できる。
<送信コマンドキュー600へのコマンド700の追加>
次に、図8を参照し、実施形態1に係る送信コマンドキュー600へのコマンドの追加処理を説明する。図8は実施形態1に係る送信コマンドキュー600へのコマンド700の追加処理の一例を示すフローチャートである。
図8のフローチャートが示す処理は、ステップS202やステップS205で撮影準備コマンドや撮影コマンドなどの送信コマンド710を含むコマンド700が送信コマンドキュー600に作成された後に実行される処理である。または、パラメータ領域404の補助データの変更による補助データ設定コマンドなどの他の送信コマンド710を含むコマンド700が送信コマンドキュー600に作成された後に実行される処理である。なお、図8のフローチャートに示す処理は、CPU101がメモリ102に記憶されているコンピュータプログラムを実行することによって制御される。以下の説明では、撮影準備コマンド、撮影コマンド、補助データ設定コマンドなどを総称して送信コマンド710として取り扱う。
ステップS301において、送信コマンドキュー600に追加する送信コマンドと同じ種類の送信コマンドを含むコマンド700が既に送信コマンドキュー600に追加されているかを判定し、さらに、登録時刻から一定時間以上経過しているかを判定する。条件に当てはまる場合には、送信コマンドキュー600へコマンド700を追加しないで処理を終了する。一方、条件に当てはまらない場合には、送信コマンド710、登録時刻720、カウント730からコマンド700を生成し、送信コマンドキュー600に追加する。そして、処理を終了する。
上述のように本実施形態では、コマンドの内で、同じ種類の送信コマンドを含むコマンド700が一定時間内に繰り返し発生した場合には、送信コマンドキュー600において、コマンド700の追加を制限して、間引く。これにより、デジタルカメラ200へ同じ送信コマンドを含むコマンド700が大量に送信され、デジタルカメラ200の負荷が大きくなる問題を解消できる。
<送信コマンドキュー600からのコマンド700の取り出し処理>
次に、図9を参照し、実施形態1に係る送信コマンドキュー600からのコマンド700の取り出し処理を説明する。
図9のフローチャートが示す処理は、CPU101がメモリ102に記憶されているコンピュータプログラムを実行することによって制御される。
ステップS401において、送信コマンドキュー600内にコマンド700があるか否かを判定する。ある場合には、ステップS402へ進む。ない場合には、S401に戻り、再び送信コマンドキュー600内にコマンド700があるか否かを判定する。
ステップS402において、コマンド700を送信コマンドキュー600から取り出し、ステップS403へ進む。
ステップS403において、CPU101は通信部104にコマンド700をデジタルカメラ200に送信させるように制御し、ステップS401へ戻る。
ここで、コマンド700に含まれる送信コマンド710が撮影準備コマンドの場合は、ステータス表示領域402に「撮影準備中」と表示される。また、送信コマンド710が撮影コマンドの場合は、ステータス表示領域402に「撮影処理中」と表示される。また、送信コマンド710が補助データ設定コマンドの場合には、ステータス表示領域402の表示状態は変更しない。
このようにして、ステップS401からステップS403を繰り返す。
なお、実施形態1では図8のフローチャートのS301において、送信コマンドキュー600に追加するコマンドと送信コマンドが同じ種類のものが追加されているかを判定した。そして、登録時刻から一定時間以上経過しているかを判定し、一定時間内の同じ種類のコマンドを追加しないようにしていた。しかしながら、一例として図10のステップS303に示すように、送信コマンドキュー600に同じ種類のコマンドが追加されていたら、送信コマンドキュー600へコマンドを追加しないで処理を終了するようにしてもよい。
また、実施形態1では図8のフローチャートにおいて、コマンドの登録時刻から一定時間以上経過しているかを判定していた。だが、送信コマンドキュー600に同じ種類のコマンドが追加されていたら、該当するコマンドが一定値を超えているかを判定し、超えていなければ新しくコマンドを追加し、超えていればカウントを1追加して処理を終了するようにしてもよい。一例として図11のステップS303、ステップS305、ステップS306に示すように処理する。
また、実施形態1では図8、図10のフローチャートにおいて、すべての送信コマンドに対して共通して処理を行っていた。しかしながら、一例として図12のステップS304のように、ユーザの指示通りに実行したい撮影コマンドを含むコマンドについては、すべてのコマンドを送信コマンドキューに追加するようにしてもよい。
(実施形態2)
実施形態1では、通常撮影について説明したが、実施形態2では、バルブ撮影について説明する。
<バルブ撮影>
バルブ撮影は、シャッターボタンを押した時に、撮影動作を開始し、シャッターボタンを離した時に、撮影動作を終了し、一連の撮影動作が完了する。
シャッターボタンのS1の状態において、通常撮影のS1の状態の時と同等の撮影準備処理を行うが、シャッターボタンのS2の状態において、通常撮影のS2の状態の時の処理とは異なり撮影を開始のみを行う。そして、シャッターボタンを離した状態になった時に、撮影を停止し、一連の撮影動作が終了する。
カメラコントロール画面400による、バルブ撮影時の操作としては、撮影ボタン403を1度目にクリックした際に撮影を開始し、2度目にクリックした際に撮影を停止するようにする。
<カメラコントロール画面400>
次に、メニュー画面の一例であるカメラコントロール画面400の説明について、実施形態1の動作と異なる部分に関して、図3を用いて説明する。
シャッターボタン403は、シャッターボタンの半押しされた状態であるS1とシャッターボタンの全押しされた状態であるS2の2つの状態の撮影処理を行う。マウスカーソル500がシャッターボタン403上に移動した時、デジタルカメラ200の動作モードがバルブ撮影モードの場合、PC100からデジタルカメラ200に対して撮影準備処理の開始を指示する。マウスカーソル500がシャッターボタン403上にある状態でクリックした時、デジタルカメラ200の動作モードがバルブ撮影モードの場合、PC100からデジタルカメラ200に対して撮影処理の動作開始を指示する。その後、さらに、マウスカーソル500がシャッターボタン403上にある状態でクリックした時、デジタルカメラ200の動作モードがバルブ撮影モードの場合、PC100からデジタルカメラ200に対して撮影処理の動作停止を指示する。これにより、一連の撮影動作が終了する。
<PC100からコマンド700を受けた際のデジタルカメラ200の動作>
次に、図13を参照し、実施形態2に係るデジタルカメラ200で行われる処理の一例を示すフローチャートを用いて説明する。
ステップS111において、デジタルカメラ200の動作モードが操作部207でバルブ撮影モードに設定された場合、CPU201は通信部204に撮影モードを示す動作モード信号を生成させる。そして、USBケーブル300を介してPC100の通信部104に送信するように指示を行う。この場合、本フローチャートはステップS111からステップS102に進む。
ステップS102において、CPU201は通信部204が撮影準備のコマンドを受信したか否かを判定する。CPU201が撮影準備のコマンドを受信したと判定した場合は、CPU201はメモリ202に撮影準備フラグを設定する。この場合、本フローチャートはステップS102からステップS103に進む。
CPU201が撮影準備のコマンドを受信しなかったと判定した場合は、本フローチャートはステップS102からステップS102に戻る。
ステップS103において、CPU201は撮影準備処理を撮像部208に実行させるように指示を出す。
撮影準備処理が行なわれた場合、本フローチャートはステップS103からステップS112に進む。
ステップS112において、CPU201は通信部204がPC100からの撮影開始を制御するための送信コマンドを含む撮影開始のコマンドを受信したか否かを判定する。CPU201は通信部204が撮影開始のコマンドを受信したと判定した場合は、CPU201はメモリ202に撮影フラグをセットする。この場合、本フローチャートはステップS112からステップS113に進む。
CPU201は通信部204が撮影開始のコマンドを受信しなかったと判定した場合は、CPU201はメモリ202の撮影準備フラグをリセットする。この場合、本フローチャートはステップS112からステップS102に戻る。
ステップS113において、CPU201は撮影処理開始を撮像部208に実行させるように指示を出す。この場合、本フローチャートは、ステップS113からステップS114へ進む。
ステップS114おいて、CPU201は通信部204がPC100からの撮影停止を制御するための送信コマンドを含む撮影停止のコマンドを受信したか否かを判定する。この場合、本フローチャートはステップS114からステップS115に進む。
CPU201は通信部204が撮影停止のコマンドを受信しなかったと判定した場合は、本フローチャートはステップS114からステップS114に戻る。
ステップS115において、CPU201は撮像部208での撮影処理を終了させるように指示を出す。
撮影処理が行なわれた場合、CPU201はメモリ202の撮影準備フラグ及び撮影フラグをリセットする。この場合、本フローチャートはステップS115からステップS106に進む。
ステップS106において、撮影処理が完了した後、CPU201は通信部204に画像データの送信準備が完了したことを示す準備完了信号を生成させ、PC100に送信するように指示を出す。PC100に準備完了信号が送信された後、CPU201は記録部203から画像データを読み出して、通信部に読み出した画像データをPCに送信するように指示を出す。この場合、本フローチャートで行われるデジタルカメラ200の処理は終了する。
<デジタルカメラ200へコマンド700を送信する際のPC100の動作>
次に、図14を参照し、実施形態2に係るPC100で行われる処理の一例を示すフローチャートを用いて説明する。
ステップS201において、CPU101はマウスカーソル500が撮影ボタン403の領域上で検出されたか否か判定する。この場合、本フローチャートはステップS201からステップS202に進む。CPU101によって、マウスカーソル500が撮影ボタン403の領域上で検出されなかった場合、本フローチャートは、ステップS201からステップS201に戻る。
ステップS202において、CPU101によってマウスカーソル500が撮影ボタン403の領域上で検出されると、CPU101は通信部104に撮影準備のコマンドを生成させ、送信コマンドキュー600に追加する。この場合、本フローチャートはステップS202からステップS203に進む。
ステップS203において、ステップS201でマウスカーソル500がマウスオーバした領域で、マウスカーソル500がマウスオーバされているか否かを判定する。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出したと判定した場合、本フローチャートは、ステップS203からステップS204に進む。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出しなかった場合、本フローチャートは、ステップS203からステップS201に戻る。
ステップS204において、CPU101はマウスカーソル500を操作する操作部106のマウス106aのボタンがクリックされたか否かを判定する。
CPU101がマウス106aのボタンがクリックされたと判定した場合、本フローチャートは、ステップS204からステップS211に進む。
CPU101がマウス106aのボタンがクリックされたと判定しなかった場合、本フローチャートはステップS204からステップS203に戻る。
ステップS211において、CPU101によってマウスカーソル500が撮影ボタン403の領域上にある場合にマウス106aのボタンがクリックされると、CPU101は通信部104に撮影開始のコマンドを生成させ、送信コマンドキュー600に追加する。本フローチャートは、ステップS211からステップS212に進む。
ステップS212において、CPU101はマウスカーソル500が撮影ボタン403の領域上マウスオーバされているか否かを判定する。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出したと判定した場合、本フローチャートは、ステップS212からステップS213に進む。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出しなかった場合、本フローチャートは、ステップS212からステップS212に戻る。
ステップS213において、CPU101はマウスカーソル500を操作する操作部106のマウス106aのボタンがクリックされたか否かを判定する。
CPU101がマウス106aのボタンがクリックされたと判定した場合、本フローチャートは、ステップS213からステップS214に進む。
CPU101がマウス106aのボタンがクリックされたと判定しなかった場合、本フローチャートはステップS213からステップS212に戻る。
ステップS214において、CPU101によってマウスカーソル500が撮影ボタン403の領域上にある場合にマウス106aのボタンがクリックされると、CPU101は通信部104に撮影停止のコマンドを生成させ、送信コマンドキュー600に追加する。本フローチャートは、ステップS214からステップS206に進む。
ステップS214を実行後、送信コマンドキュー600の撮影停止のコマンドがデジタルカメラ200に送信されると、図11のフローチャートのステップS115により撮影処理を実行する。そして、ステップS106により画像データ送信を実行し、PC100に画像データが送られてくる。
このように、マウス106aを操作することによってマウスカーソル500が撮影ボタン403の領域上にマウスオーバするとPC100はデジタルカメラ200に撮影準備処理を指示する。その後、マウスカーソル500がマウスオーバされた撮影ボタン403の領域上にある場合、マウス106aがクリックされるとPC100はデジタルカメラ200に撮影開始を指示する。その後、マウスカーソル500がマウスオーバされた撮影ボタン403の領域上にある場合、マウス106aがクリックされるとPC100はデジタルカメラ200に撮影停止を指示する。
ステップS206において、CPU101はデジタルカメラ200から送られた画像データを、表示部105に表示させる。ここで、本フローチャートは終了する。
これにより、PC100において撮影モードがバルブ撮影時の操作を実現することができる。
また、実施形態2では図14のフローチャートにおいて、撮影開始を1度目のクリックで実施し、撮影停止を2度目のクリックで実施している。だが、図18のフローチャートのステップS212、ステップS231のようにしてもよい。つまり、撮影停止は、1度目のクリックの後、撮影ボタンの領域上からマウスカーソルがなくなる、あるいは、撮影ボタンの領域上にある状態でクリック解除の状態のときに実施するようにしてもよい。
また、一定時間内に多数の撮影開始のコマンド及び撮影停止のコマンドが発生した場合には、コマンドの内、重複するコマンドを一定時間だけ間引いてもよい。または、コマンドの内、重複するコマンドを一定回数だけ間引いてもよい。
(実施形態3)
実施形態1、2では、通常撮影、バルブ撮影について説明したが、実施形態3では、ミラーアップ撮影について説明する。
<ミラーアップ撮影>
ミラーアップ撮影は、1回目にシャッターボタンを押した時に、ミラーアップ動作を実行し、2回目にシャッターボタンを押した時に、撮影動作を実行し、一連の撮影動作が完了する。
1回目のシャッターボタンのS1の状態において、通常撮影のS1の状態の時と同等の撮影準備処理を行うが、1回目のシャッターボタンのS2の状態において、通常撮影のS2の状態の時の処理とは異なりミラーアップを行う。そして、1回目のシャッターボタンのS2の状態において、撮影動作を行い、一連の撮影動作が終了する。
カメラコントロール画面400による、ミラーアップ撮影時の操作としては、撮影ボタン403を1度目にクリックした際にミラーアップを実行し、2度目にクリックした際に撮影動作を実行するようにする。
<カメラコントロール画面400>
次に、メニュー画面の一例であるカメラコントロール画面400の説明について、実施形態1の動作と異なる部分に関して、図3を用いて説明する。
シャッターボタン403は、シャッターボタンの半押しされた状態であるS1とシャッターボタンの全押しされた状態であるS2の2つの状態の撮影処理を行う。マウスカーソル500がシャッターボタン403上に移動した時、デジタルカメラ200の動作モードがミラーアップ撮影モードの場合、PC100からデジタルカメラ200に対して撮影準備処理の開始を指示する。マウスカーソル500がシャッターボタン403上にある状態でクリックした時、デジタルカメラ200の動作モードがミラーアップ撮影モードの場合、PC100からデジタルカメラ200に対して撮影処理の動作開始を指示する。その後、さらに、マウスカーソル500がシャッターボタン403上にある状態でクリックした時、デジタルカメラ200の動作モードがミラーアップ撮影モードの場合、PC100からデジタルカメラ200に対して撮影処理の動作停止を指示する。これにより、一連の撮影動作が終了する。
<PC100からコマンド700を受けた際のデジタルカメラ200の動作>
次に、図15を参照し、実施形態3に係るデジタルカメラ200で行われる処理の一例を示すフローチャートを用いて説明する。
ステップS121において、デジタルカメラ200の動作モードが操作部207でミラーアップ撮影モードに設定された場合、CPU201は通信部204に撮影モードを示す動作モード信号を生成させる。そして、USBケーブル300を介してPC100の通信部104に送信するように指示を行う。この場合、本フローチャートはステップS121からステップS102に進む。
ステップS102において、CPU201は通信部204が撮影準備のコマンドを受信したか否かを判定する。CPU201が撮影準備のコマンドを受信したと判定した場合は、CPU201はメモリ202に撮影準備フラグを設定する。この場合、本フローチャートはステップS102からステップS103に進む。
CPU201が撮影準備のコマンドを受信しなかったと判定した場合は、本フローチャートはステップS102からステップS102に戻る。
ステップS103において、CPU201は撮影準備処理を撮像部208に実行させるように指示を出す。
撮影準備処理が行なわれた場合、本フローチャートはステップS103からステップS112に進む。
ステップS112において、CPU201は通信部204がPC100からの撮影開始のコマンドを受信したか否かを判定する。この場合、本フローチャートはステップS112からステップS122に進む。
CPU201は通信部204が撮影開始のコマンドを受信しなかったと判定した場合は、CPU201はメモリ202の撮影準備フラグをリセットする。この場合、本フローチャートはステップS112からステップS102に戻る。
ステップS122において、CPU201は不図示のミラーに対してミラーアップするように指示を出す。この場合、本フローチャートは、ステップS122からステップS114へ進む。
ステップS114おいて、CPU201は通信部204がPC100からの撮影停止のコマンドを受信したか否かを判定する。CPU201は通信部204が撮影停止のコマンドを受信したと判定した場合は、CPU201はメモリ202に撮影フラグをセットする。この場合、本フローチャートはステップS114からステップS105に進む。
CPU201は通信部204が撮影停止のコマンドを受信しなかったと判定した場合は、本フローチャートはステップS114からステップS114に戻る。
ステップS105において、CPU201は撮影処理を撮像部208に実行させるように指示を出す。
撮影処理が行なわれた場合、CPU201はメモリ202の撮影準備フラグ及び撮影フラグをリセットする。この場合、本フローチャートはステップS105からステップS106に進む。
ステップS106において、撮影処理が完了した後、CPU201は通信部204に画像データの送信準備が完了したことを示す準備完了信号を生成させ、PC100に送信するように指示を出す。PC100に準備完了信号が送信された後、CPU201は記録部203から画像データを読み出して、通信部に読み出した画像データをPCに送信するように指示を出す。この場合、本フローチャートで行われるデジタルカメラ200の処理は終了する。
<デジタルカメラ200へコマンド700を送信する際のPC100の動作>
次に、図16を参照し、実施形態3に係るPC100で行われる処理の一例を示すフローチャートを用いて説明する。
ステップS201において、CPU101はマウスカーソル500が撮影ボタン403の領域上で検出されたか否か判定する。この場合、本フローチャートはステップS201からステップS202に進む。CPU101によって、マウスカーソル500が撮影ボタン403の領域上で検出されなかった場合、本フローチャートは、ステップS201からステップS201に戻る。
ステップS202において、CPU101によってマウスカーソル500が撮影ボタン403の領域上で検出されると、CPU101は通信部104に撮影準備のコマンドを生成させ、送信コマンドキュー600に追加する。この場合、本フローチャートはステップS202からステップS203に進む。
ステップS203において、ステップS201でマウスカーソル500がマウスオーバした領域で、マウスカーソル500がマウスオーバされているか否かを判定する。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出したと判定した場合、本フローチャートは、ステップS203からステップS204に進む。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出しなかった場合、本フローチャートは、ステップS203からステップS201に戻る。
ステップS204において、CPU101はマウスカーソル500を操作する操作部106のマウス106aのボタンがクリックされたか否かを判定する。
CPU101がマウス106aのボタンがクリックされたと判定した場合、本フローチャートは、ステップS204からステップS211に進む。
CPU101がマウス106aのボタンがクリックされたと判定しなかった場合、本フローチャートはステップS204からステップS203に戻る。
ステップS211において、CPU101によってマウスカーソル500が撮影ボタン403の領域上にある場合にマウス106aのボタンがクリックされると、CPU101は通信部104に撮影開始のコマンドを生成させ、送信コマンドキュー600に追加する。本フローチャートは、ステップS211からステップS212に進む。
ステップS212において、CPU101はマウスカーソル500が撮影ボタン403の領域上マウスオーバされているか否かを判定する。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出したと判定した場合、本フローチャートは、ステップS212からステップS213に進む。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出しなかった場合、本フローチャートは、ステップS212からステップS212に戻る。
ステップS213において、CPU101はマウスカーソル500を操作する操作部106のマウス106aのボタンがクリックされたか否かを判定する。
CPU101がマウス106aのボタンがクリックされたと判定した場合、本フローチャートは、ステップS213からステップS214に進む。
CPU101がマウス106aのボタンがクリックされたと判定しなかった場合、本フローチャートはステップS213からステップS212に戻る。
ステップS214において、CPU101によってマウスカーソル500が撮影ボタン403の領域上にある場合にマウス106aのボタンがクリックされると、CPU101は通信部104に撮影停止のコマンドを生成させ、送信コマンドキュー600に追加する。本フローチャートは、ステップS214からステップS206に進む。
ステップS214を実行後、送信コマンドキュー600の撮影停止のコマンドがデジタルカメラ200に送信されると、図15のフローチャートのステップS105により撮影処理を実行する。そして、ステップS106により画像データ送信を実行し、PC100に画像データが送られてくる。
このように、マウス106aを操作することによってマウスカーソル500が撮影ボタン403の領域上にマウスオーバするとPC100はデジタルカメラ200に撮影準備処理を指示する。その後、マウスカーソル500がマウスオーバされた撮影ボタン403の領域上にある場合、マウス106aがクリックされるとPC100はデジタルカメラ200に撮影開始を指示する。その後、マウスカーソル500がマウスオーバされた撮影ボタン403の領域上にある場合、マウス106aがクリックされるとPC100はデジタルカメラ200に撮影停止を指示する。
ステップS206において、CPU101はデジタルカメラ200から送られた画像データを、表示部105に表示させる。ここで、本フローチャートは終了する。
これにより、PC100において撮影モードがミラーアップ撮影時の操作を実現することができる。
また、実施形態3では図16のフローチャートにおいて、撮影開始を1度目のクリックで実施し、撮影停止を2度目のクリックで実施している。だが、図18のフローチャートのステップS212、ステップS231のようにしてもよい。つまり、撮影停止は、1度目のクリックの後、撮影ボタンの領域上からマウスカーソルがなくなる、あるいは、撮影ボタンの領域上にある状態でクリック解除の状態のときに実施するようにしてもよい。
また、一定時間内に多数の撮影開始のコマンド及び撮影停止のコマンドが発生した場合には、コマンドの内、重複するコマンドを一定時間だけ間引いてもよい。または、コマンドの内、重複するコマンドを一定回数だけ間引いてもよい。
(実施形態4)
実施形態1、2、3では、通常撮影、バルブ撮影、ミラーアップ撮影について説明したが、実施形態4では、連続撮影について説明する。
<連続撮影>
連続撮影は、シャッターボタンを押した時に、撮影動作を開始し、通常撮影と同等の撮影動作を一回以上繰り返す。そして、シャッターボタンを離した時に、撮影動作を終了し、一連の撮影動作が完了する。
シャッターボタンのS1の状態において、通常撮影のS1の状態の時と同等の撮影準備処理を行うが、シャッターボタンのS2の状態において、通常撮影のS2の状態の時の処理とは異なり撮影を開始のみを行う。そして、シャッターボタンを離した状態になった時に、撮影を停止し、一連の撮影動作が終了する。
カメラコントロール画面400による、連続撮影時の操作としては、撮影ボタン403をクリックした際に撮影を開始する。そして、マウスカーソル500が撮影ボタン403の領域上になくなる、あるいは、撮影ボタン403の領域上にある状態でクリックを解除する際に撮影を停止するようにする。
<カメラコントロール画面400>
次に、メニュー画面の一例であるカメラコントロール画面400の説明について、実施形態1の動作と異なる部分に関して、図3を用いて説明する。
シャッターボタン403は、シャッターボタンの半押しされた状態であるS1とシャッターボタンの全押しされた状態であるS2の2つの状態の撮影処理を行う。マウスカーソル500がシャッターボタン403上に移動した時、デジタルカメラ200の動作モードが連続撮影モードの場合、PC100からデジタルカメラ200に対して撮影準備処理の開始を指示する。マウスカーソル500がシャッターボタン403上にある状態でクリックした時、デジタルカメラ200の動作モードが連続撮影モードの場合、PC100からデジタルカメラ200に対して撮影処理の動作開始を指示する。その後、さらに、マウスカーソル500が撮影ボタン403の領域上になくなる、あるいは、撮影ボタン403の領域上にある状態でクリックを解除する時、PC100からデジタルカメラ200に対して撮影処理の動作停止を指示する。これにより、一連の撮影動作が終了する。
<PC100からコマンド700を受けた際のデジタルカメラ200の動作>
次に、図17を参照し、実施形態4に係るデジタルカメラ200で行われる処理の一例を示すフローチャートを用いて説明する。
ステップS131において、デジタルカメラ200の動作モードが操作部207で連続撮影モードに設定された場合、CPU201は通信部204に撮影モードを示す動作モード信号を生成させる。そして、USBケーブル300を介してPC100の通信部104に送信するように指示を行う。この場合、本フローチャートはステップS131からステップS102に進む。
ステップS102において、CPU201は通信部204が撮影準備のコマンドを受信したか否かを判定する。CPU201が撮影準備のコマンドを受信したと判定した場合は、CPU201はメモリ202に撮影準備フラグを設定する。この場合、本フローチャートはステップS102からステップS103に進む。
CPU201が撮影準備のコマンドを受信しなかったと判定した場合は、本フローチャートはステップS102からステップS102に戻る。
ステップS103において、CPU201は撮影準備処理を撮像部208に実行させるように指示を出す。
撮影準備処理が行なわれた場合、本フローチャートはステップS103からステップS112に進む。
ステップS112において、CPU201は通信部204がPC100からの撮影開始のコマンドを受信したか否かを判定する。CPU201は通信部204が撮影開始のコマンドを受信したと判定した場合は、CPU201はメモリ202に撮影フラグをセットする。この場合、本フローチャートはステップS112からステップS113に進む。
CPU201は通信部204が撮影開始のコマンドを受信しなかったと判定した場合は、CPU201はメモリ202の撮影準備フラグをリセットする。この場合、本フローチャートはステップS112からステップS102に戻る。
ステップS113において、CPU201は撮影処理開始を撮像部208に実行させるように指示を出す。連続撮影モードでは、撮影処理開始により、通常撮影と同等の撮影処理を一回以上繰り返す。この場合、本フローチャートは、ステップS113からステップS114へ進む。
ステップS114おいて、CPU201は通信部204がPC100からの撮影停止のコマンドを受信したか否かを判定する。CPU201は通信部204が撮影停止のコマンドを受信したと判定した場合は、CPU201はメモリ202の撮影準備フラグ及び撮影フラグをリセットする。この場合、本フローチャートはステップS114からステップS115に進む。
CPU201は通信部204が撮影停止のコマンドを受信しなかったと判定した場合は、本フローチャートはステップS114からステップS114に戻る。
ステップS115において、CPU201は撮像部208での撮影処理を終了させるように指示を出す。本フローチャートはステップS115からステップS106に進む。
ステップS106において、撮影処理が完了した後、CPU201は通信部204に画像データの送信準備が完了したことを示す準備完了信号を生成させ、PC100に送信するように指示を出す。PC100に準備完了信号が送信された後、CPU201は記録部203から画像データを読み出して、通信部に読み出した画像データをPCに送信するように指示を出す。この場合、本フローチャートで行われるデジタルカメラ200の処理は終了する。
<デジタルカメラ200へコマンド700を送信する際のPC100の動作>
次に、図18を参照し、実施形態4に係るPC100で行われる処理の一例を示すフローチャートを用いて説明する。
ステップS201において、CPU101はマウスカーソル500が撮影ボタン403の領域上で検出されたか否か判定する。この場合、本フローチャートはステップS201からステップS202に進む。CPU101によって、マウスカーソル500が撮影ボタン403の領域上で検出されなかった場合、本フローチャートは、ステップS201からステップS201に戻る。
ステップS202において、CPU101によってマウスカーソル500が撮影ボタン403の領域上で検出されると、CPU101は通信部104に撮影準備のコマンドを生成させ、送信コマンドキュー600に追加する。この場合、本フローチャートはステップS202からステップS203に進む。
ステップS203において、ステップS201でマウスカーソル500がマウスオーバした領域で、マウスカーソル500がマウスオーバされているか否かを判定する。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出したと判定した場合、本フローチャートは、ステップS203からステップS204に進む。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出しなかった場合、本フローチャートは、ステップS203からステップS201に戻る。
ステップS204において、CPU101はマウスカーソル500を操作する操作部106のマウス106aのボタンがクリックされたか否かを判定する。
CPU101がマウス106aのボタンがクリックされたと判定した場合、本フローチャートは、ステップS204からステップS211に進む。
CPU101がマウス106aのボタンがクリックされたと判定しなかった場合、本フローチャートはステップS204からステップS203に戻る。
ステップS211において、CPU101によってマウスカーソル500が撮影ボタン403の領域上にある場合にマウス106aのボタンがクリックされると、CPU101は通信部104に撮影開始のコマンドを生成させ、送信コマンドキュー600に追加する。本フローチャートは、ステップS211からステップS212に進む。
ステップS212において、CPU101はマウスカーソル500が撮影ボタン403の領域上マウスオーバされているか否かを判定する。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出したと判定した場合、本フローチャートは、ステップS212からステップS231に進む。
CPU101がマウスカーソル500を撮影ボタン403の領域上で検出しなかった場合、本フローチャートは、ステップS212からステップS214に進む。
ステップS231において、CPU101はマウスカーソル500を操作する操作部106のマウス106aのボタンがクリック解除されたか否かを判定する。
CPU101がマウス106aのボタンがクリック解除されたと判定した場合、本フローチャートは、ステップS231からステップS214に進む。
CPU101がマウス106aのボタンがクリック解除されたと判定しなかった場合、本フローチャートはステップS231からステップS212に戻る。
ステップS214において、CPU101によってマウスカーソル500が撮影ボタン403の領域上にある場合にマウス106aのボタンがクリック解除されると、CPU101は通信部104に撮影停止のコマンドを生成させる。そして、送信コマンドキュー600に追加する。本フローチャートは、ステップS214からステップS206に進む。
ステップS214を実行後、送信コマンドキュー600の撮影停止のコマンドがデジタルカメラ200に送信されると、図17のフローチャートのステップS115により撮影処理を実行する。そして、ステップS106により画像データ送信を実行し、PC100に画像データが送られてくる。
このように、マウス106aを操作することによってマウスカーソル500が撮影ボタン403の領域上にマウスオーバするとPC100はデジタルカメラ200に撮影準備処理を指示する。その後、マウスカーソル500がマウスオーバされた撮影ボタン403の領域上にある場合、マウス106aがクリックされるとPC100はデジタルカメラ200に撮影開始を指示する。その後、マウスカーソル500がマウスオーバされた撮影ボタン403の領域上になくなるとPC100はデジタルカメラ200に撮影停止を指示する。あるいは、マウスカーソル500がマウスオーバされた撮影ボタン403の領域上にある状態でマウス106aがクリック解除されるとPC100はデジタルカメラ200に撮影停止を指示する。
ステップS206において、CPU101はデジタルカメラ200から送られた画像データを、表示部105に表示させる。ここで、本フローチャートは終了する。
これにより、PC100において撮影モードが連続撮影時の操作を実現することができる。
また、実施形態4では図18のフローチャートにおいて、撮影開始をクリックで実施し、撮影停止を撮影ボタンの領域上からマウスカーソルがなくなると実施している。あるいは、撮影ボタンの領域上にマウスカーソルがある状態でクリック解除したときに実施している。しかし、撮影停止は、1度目のクリックの後、2回目のクリックのときに実施するようにしてもよい。
また、一定時間内に多数の撮影開始のコマンド及び撮影停止のコマンドが発生した場合には、コマンドの内、重複するコマンドを一定時間だけ間引いてもよい。または、コマンドの内、重複するコマンドを一定回数だけ間引いてもよい。
なお、実施形態1〜4のポインティングデバイスとしては、マウスを一例にして説明した。しかしながら、トラックパッド、トラックボール、タッチパネルディスプレイなどの、画面上で現在地を示す記号であるカーソルを移動させ、画面上での入力位置や座標を指定するものでもよい。
(他の実施形態)
上述の実施形態は、システム或は装置のコンピュータ(或いはCPU、MPU等)によりソフトウェア的に実現することも可能である。従って、上述の実施形態をコンピュータで実現するために、該コンピュータに供給されるコンピュータプログラム自体も本発明を実現するものである。つまり、上述の実施形態の機能を実現するためのコンピュータプログラム自体も本発明の一つである。
なお、上述の実施形態を実現するためのコンピュータプログラムは、コンピュータで読み取り可能であれば、どのような形態であってもよい。例えば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等で構成することができるが、これらに限るものではない。上述の実施形態を実現するためのコンピュータプログラムは、記憶媒体又は有線/無線通信によりコンピュータに供給される。プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記憶媒体、MO、CD、DVD等の光/光磁気記憶媒体、不揮発性の半導体メモリなどがある。
有線/無線通信を用いたコンピュータプログラムの供給方法としては、コンピュータネットワーク上のサーバを利用する方法がある。この場合、本発明を形成するコンピュータプログラムとなりうるデータファイル(プログラムファイル)をサーバに記憶しておく。プログラムファイルとしては、実行形式のものであっても、ソースコードであっても良い。そして、このサーバにアクセスしたクライアントコンピュータに、プログラムファイルをダウンロードすることによって供給する。この場合、プログラムファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに分散して配置することも可能である。つまり、上述の実施形態を実現するためのプログラムファイルをクライアントコンピュータに提供するサーバ装置も本発明の一つである。
また、上述の実施形態を実現するためのコンピュータプログラムを暗号化して格納した記憶媒体を配布し、所定の条件を満たしたユーザに、暗号化を解く鍵情報を供給し、ユーザの有するコンピュータへのインストールを許可してもよい。鍵情報は、例えばインターネットを介してホームページからダウンロードさせることによって供給することができる。また、上述の実施形態を実現するためのコンピュータプログラムは、すでにコンピュータ上で稼働するOSの機能を利用するものであってもよい。さらに、上述の実施形態を実現するためのコンピュータプログラムは、その一部をコンピュータに装着される拡張ボード等のファームウェアで構成してもよいし、拡張ボード等が備えるCPUで実行するようにしてもよい。