(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。
<第1実施形態>
(デジタルカメラのハードウェア構成)
はじめに、
図1を参照して、本実施形態のデジタルカメラ301を説明する。
図1は、デジタルカメラ301のハードウェア構成を示すブロック図である。デジタルカメラ301は通信装置の一例であり、本実施形態では一眼レフデジタルカメラである。
【0009】
デジタルカメラ301は、
図1に示す各部から構成される。
101は、撮影レンズである。
102は、AF(オートフォーカス)駆動回路である。AF駆動回路102は、例えばDCモータやステッピングモータによって構成され、マイクロコンピュータ123の制御によって撮影レンズ101のフォーカスレンズ位置を変化させることによりピントを合わせる。
103は、ズーム駆動回路である。ズーム駆動回路103は、例えばDCモータやステッピングモータによって構成され、マイクロコンピュータ123の制御によって撮影レンズ101の変倍レンズ位置を変化させることにより撮影レンズ101の焦点距離を変化させる。
【0010】
104は、絞りである。
105は、絞り駆動回路である。絞り駆動回路105は、絞り104を駆動する。駆動されるべき量はマイクロコンピュータ123によって算出され、光学的な絞り値を変化させる。
106は、主ミラーであり、撮影レンズ101から入射した光束をファインダ側と撮像素子側とに切替える。主ミラー106は、撮影時以外には、光束を反射させてファインダ部へ導くように配されているが、撮影時には、撮像素子112へと光束を導くように上方に跳ね上がり光束中から待避する。また、主ミラー106は、その中央部が光の一部を透過できるようにハーフミラーとなっており、光束の一部を透過させて、焦点検出を行うためのセンサに入射させる。
【0011】
107は、サブミラーであり、主ミラー106から透過してきた光束を反射させ焦点検出を行うためのセンサ(焦点検出回路109内に配置されている)に導く。
108は、ファインダを構成するペンタプリズムである。ファインダは、他にピント板、アイピースレンズ(不図示)等によって構成される。
109は、焦点検出回路である。主ミラー106の中央部を透過し、サブミラー107で反射した光束は、焦点検出回路109の内部に配置された光電変換を行うためのセンサに至る。フォーカス演算に用いるデフォーカス量は、センサの出力を演算することによって求められる。マイクロコンピュータ123は、演算結果を評価してAF駆動回路102に指示し、フォーカスレンズを駆動させる。
【0012】
110は、フォーカルプレーンシャッタである。
111は、シャッタ駆動回路であり、フォーカルプレーンシャッタ110を駆動する。シャッタの開口時間はマイクロコンピュータ123によって制御される。
112は、撮像素子である。撮像素子112には、CCDやCMOSセンサ等が用いられ、撮影レンズ101によって結像された被写体像を電気信号に変換する。
113は、クランプ回路である。
114は、AGC(Automatic Gain Control)回路である。クランプ回路113やAGC回路114は、A/D変換をする前の基本的なアナログ信号処理を行い、マイクロコンピュータ123により、クランプレベルやAGC基準レベルの変更が行われる。
115は、A/D変換器である。A/D変換器115は撮像素子112のアナログ出力信号をデジタル信号に変換する。
【0013】
116は、映像・音声信号処理回路であり、ゲートアレイ等のロジックデバイスにより実現される。映像・音声信号処理回路116は、デジタル化された画像データに、フィルター処理、色変換処理、ガンマ処理を行うと共に、JPEG等の圧縮処理を行い、メモリコントローラ119に出力する。また、映像・音声信号処理回路116は、マイク132、又は、音声ライン入力133からの音声信号の圧縮処理を行い、メモリコントローラ119に出力する。また、映像・音声信号処理回路116は、撮像素子112からの映像信号や、メモリコントローラ119から逆に入力される画像データを、EVF駆動回路117を通してEVFモニタ118に出力できる。また、映像・音声信号処理回路116は、必要に応じて撮像素子112の信号の露出情報やホワイトバランス等の情報をマイクロコンピュータ123に出力することが可能である。それらの情報を基にマイクロコンピュータ123はホワイトバランスやゲイン調整の指示を行う。さらに、映像・音声信号処理回路116は、マイク132、又は、音声ライン入力133からの音声データを、D/A変換器135を通してスピーカ136に出力できる。映像・音声信号処理回路116の機能切り替えは、マイクロコンピュータ123の指示により行われる。
連続撮影動作の場合においては、一旦、未処理画像のままバッファメモリ122に撮影データを格納し、メモリコントローラ119を通して未処理の画像データを読み出し、映像・音声信号処理回路116にて画像処理や圧縮処理を行い、連続撮影を行う。連像撮影枚数は、バッファメモリ122の大きさに左右される。
【0014】
117は、EVF(電子ビューファインダ)駆動回路である。
118は、EVFモニタである。
119は、メモリコントローラである。メモリコントローラ119は、映像・音声信号処理回路116から入力された未処理のデジタル画像・音声データをバッファメモリ122に格納し、処理済みのデジタル画像・音声データをメモリ120に格納する。また、メモリコントローラ119は、逆にバッファメモリ122やメモリ120から画像・音声データを映像・音声信号処理回路116に出力する。また、メモリコントローラ119は、PC等と接続可能な外部I/F121を介してメモリ120に記憶されている画像・音声を出力できる。
120は、メモリである。メモリ120は取り外し可能であってもよい。
【0015】
121は、コンピュータ等と接続可能な外部I/F(インタフェース)である。外部I/F121は、PC、携帯情報端末、及び、後述する携帯端末302等の外部機器との通信に使われる。なお、外部I/F121は、通信回路を備えたカメラとの通信にも使われ、カメラ同士で各種情報や画像データの送受信を行うことができる。
122は、バッファメモリである。
【0016】
123は、マイクロコンピュータである。
124は、操作部材である。操作部材124は、マイクロコンピュータ123に操作部材124の状態を伝え、マイクロコンピュータ123は操作部材124の変化に応じて各部をコントロールする。
125は、第1スイッチである。
126は、第2スイッチである。第1スイッチ125及び第2スイッチ126は、レリーズボタンの操作でオンオフするスイッチであり、それぞれ操作部材124の入力スイッチのうちの1つである。第1スイッチ125のみオンの状態はレリーズボタン半押し状態であり、この状態でオートフォーカスの動作を行ったり、測光動作を行ったりする。第1スイッチ125及び第2スイッチが共にオンの状態はレリーズボタンの全押し状態であり、画像を記録するためのレリーズボタンオン状態である。この状態で撮影が行われる。また第1スイッチ125及び第2スイッチがオン状態の間は、連続撮影動作が行われる。操作部材124には、他に、ISO設定ボタン、画像サイズ設定ボタン、画質設定ボタン、情報表示ボタン等不図示のスイッチが接続されており、スイッチの状態が検出されている。
【0017】
127は、液晶駆動回路である。
128は、外部液晶表示部材である。
129は、ファインダ内液晶表示部材である。
液晶駆動回路127は、マイクロコンピュータ123の表示内容命令に従って、外部液晶表示部材128やファインダ内液晶表示部材129を駆動する。また、ファインダ内液晶表示部材129には、不図示のLED等のバックライトが配置されており、そのLEDも液晶駆動回路127で駆動される。マイクロコンピュータ123は撮影前に設定されているISO感度、画像サイズ、画質に応じた、画像サイズの予測値データをもとに、メモリコントローラ119を通して、メモリの容量を確認した上で撮影可能残数を演算することができる。液晶駆動回路127は、必要に応じて、演算された撮影可能残数を外部液晶表示部材128及びファインダ内液晶表示部材129に表示させられる。
【0018】
130は、不揮発性メモリ(EEPROM)であり、カメラに電源が入れられていない状態でも、データを保存することができる。
131は、電源部であり、各ICや駆動系に必要な電源を供給する。
132は、マイクである。
133は、音声のライン入力である
134は、A/D変換器である。A/D変換器134はマイク132、又は、音声ライン入力133のアナログ出力信号をデジタル信号に変換する。
135は、D/A変換器である。D/A変換器135はデジタル信号をアナログ出力信号に変換する。
136は、スピーカである。
【0019】
次に、
図2を参照して、本実施形態の制御装置の一例である携帯端末302を説明する。
図2は、携帯端末302のハードウェア構成を示すブロック図である。携帯端末302の例として、いわゆるスマートフォン等の携帯電話、タブレットデバイス、PDA(Personal Digital Assistant)、携帯型AVプレイヤー、電子ブック、電子辞書等が挙げられる。なお、制御装置として、携帯端末302の代わりにPC等を用いてもよい。
【0020】
(携帯端末のハードウェア構成)
携帯端末302は、
図2に示す各部から構成される。
200は、CPUであり、携帯端末302で実行される処理を統括的に制御する。
201は、フラッシュメモリであり、内蔵カメラ203により撮像されたデジタル写真画像や動画像等の各種コンテンツ、及び、CPU200が実行する各種制御プログラムや各種アプリケーションプログラム等を記憶する。
202は、RAMであり、CPU200の作業領域として用いられ、CPU200が処理するコンテンツ等の各種データや、各種アプリケーションのプログラムを一時的に格納する。なお、RAM202は記憶手段の一例である。
203は、内蔵カメラである。204は、マイクである。
【0021】
205は、スピーカである。206は、イヤホンである。イヤホン206及びスピーカ205は、フラッシュメモリ201等に記憶された音声信号、又は通信部213、外部I/F214等から入力された音声信号を出力する。
207は、GPS(Global Positioning System)センサである。
208は、電子コンパスである。
210は、タッチパネルであり、アプリケーションの実行により写真やGUIが表示された状態において、ユーザのタッチ操作を検出し、CPU200へ伝える。タッチパネル210の動作方式としては、例えば抵抗被膜方式や静電容量方式が用いられるが、その他の方式が用いられてもよい。タッチパネル210は、例えば、写真表示アプリケーションの実行中に、ユーザが写真を選択して全画面表示をしたり、ピンチインやピンチアウトによる画像の拡大や縮小をしたりすることを可能にする。
【0022】
211は、液晶表示部である。液晶表示部211は、例えばTFT(Thin Film Transistor)等のLCD(liquid crystal display)やOELD(Organic Electro-Luminescence Display)である。液晶表示部211は、いわゆるGUIを表示する。液晶表示部211はタッチパネル210と一体的に設けられている。なお、液晶表示部211は表示手段の一例である。
212は、スイッチであり、例えば電源スイッチ、起動ボタン等、タッチパネル210では入力できないユーザの操作等を受け付け、入力信号をCPU200へ伝える。
213は、通信部であり、インターネットやLAN(Local Area Network)等のネットワークを介して、他の機器との間で通信処理を行う。通信部213は、無線LANモジュールを有してもよいし、WWAN(Wireless Wide Area Network)モジュールを有してもよい。
【0023】
214は、外部I/F(インタフェース)である。外部I/F214は、例えばUSB(Universal Serial Bus)やHDMI(登録商標)(High-Definition Multimedia Interface)等の各種規格に準じて、データのやり取りを行う。
215は、携帯端末302用の電源である。電源215には、一般的にリチウムイオン電池等の充電型の電源が用いられている。
なお、携帯端末302は、通話用のアンテナや通話用の通信モジュール等を有していてもよい。
【0024】
(通信システムの構成)
次に、
図3を参照して、本実施形態の通信システムについて説明する。
図3は、本実施形態の通信システムの構成を示す概念図である。本実施形態の通信システムは、デジタルカメラ301と携帯端末302とアクセスポイント303とを備える。デジタルカメラ301と携帯端末302とは、アクセスポイント303を介して、無線LANで接続する。
なお、デジタルカメラ301と携帯端末302との間の通信は、本実施形態のようにアクセスポイント303等を介してのインフラストラクチャー接続に限定されるものではない。デジタルカメラ301と携帯端末302との間の通信は、アドホックネットワーク等を用いた直接接続であってもよい。また、デジタルカメラ301又は携帯端末302の一方が簡易的なアクセスポイントとなり、デジタルカメラ301と携帯端末302との間で、インフラストラクチャー接続によって直接通信を確立してもよい。
【0025】
(携帯端末のソフトウェア構成)
次に、
図4を参照して、携帯端末302のソフトウェア構成を説明する。
図4は、携帯端末のソフトウェア構成とデジタルカメラ301との関係を示す図である。携帯端末302は、デジタルカメラ301を制御するカメラ制御アプリケーション401を備える。ユーザは、例えばインターネット上の所定のサーバからカメラ制御アプリケーション401をダウンロードし、携帯端末302にインストールすることが可能である。カメラ制御アプリケーション401は、アプリケーション本体402とカメラ制御SDK403とを備える。
【0026】
カメラ制御SDK403は、デジタルカメラ301との通信モジュールである。カメラ制御アプリケーション401がインストールされた携帯端末302によるデジタルカメラ301との直接の通信は、カメラ制御SDK403を介して行われる。すなわち、カメラ制御SDK403は、主としてデジタルカメラ301との通信を担うソフトウェアプログラムである。カメラ制御SDK403は、デジタルカメラ301のベンダからアプリケーション開発者に提供されることを想定している。アプリケーション開発者は、カメラ制御アプリケーション401のインストールが想定される携帯端末302に応じて、携帯端末のOS向けに提供されるカメラ制御SDK403をカメラ制御アプリケーション401に組み込むか否かを決定する。
アプリケーション本体402は、カメラ制御アプリケーション401の動作の全体を管理し、デジタルカメラ301との通信以外の機能、例えばユーザ操作の受け付け、GUIの表示、カメラ制御アプリケーション401の起動・終了等を行う。
【0027】
(一般的な処理シーケンス)
次に、
図5を参照して、デジタルカメラ301と携帯端末302とが通信接続したときの一般的な処理のシーケンスを説明する。
図5は、携帯端末302がデジタルカメラ301にオペレーションを送信するときのシーケンス図である。
図5のシーケンス図では、携帯端末302とデジタルカメラ301との間での通信接続は確立しているものとする。
ステップS501において、アプリケーション本体402は、制御したい内容に対応するカメラ制御SDK403のアプリケーションプログラミングインタフェース(以下、APIという)をコールし、カメラ制御SDK403に処理を依頼する。
【0028】
ステップS502において、カメラ制御SDK403は、アプリケーション本体402からのAPIコールを受けると、コールされたAPIの処理内容に適したカメラ制御プロトコルのオペレーションIDを特定する。そして、カメラ制御SDK403は、デジタルカメラ301にオペレーションを送信する。
ステップS503において、デジタルカメラ301は、カメラ制御SDK403からのオペレーションを受信すると、要求されたオペレーションIDに対応するカメラの制御を実行する。すなわち、デジタルカメラ301は、携帯端末302からのオペレーションを実行する。
【0029】
ここでオペレーションについて説明する。オペレーションとは、デジタルカメラ301に対する制御コマンドである。オペレーションは、主にデジタルカメラ301が有する画像を送信させるオペレーションと、デジタルカメラ301の撮影機能を制御するオペレーションとに分類される。デジタルカメラ301が有する画像を送信させるオペレーションとしては、例えばデジタルカメラ301が保持する画像データを携帯端末302等の外部装置に送信させる「画像取得」がある。撮影機能を制御するオペレーションとしては、例えばデジタルカメラ301に静止画撮影動作を行わせる「レリーズ」がある。レリーズによりリモート撮影が可能になる。その他、デジタルカメラ301から携帯端末302等の外部装置にいわゆるライブビュー画像を送信する「PC LiveView」(PCLV)、デジタルカメラ301に動画撮影動作を行わせる「動画記録」等がある。また、デジタルカメラ301の設定を変更する「設定値変更」がある。レリーズのオペレーションには、レリーズ開始要求及びレリーズ停止要求がある。PCLVのオペレーションには、PCLV開始要求、PCLV画像取得要求及びPCLV停止要求がある。動画記録のオペレーションには、動画記録開始要求及び動画記録終了要求がある。なお、以降ではPCLVにより送信されるライブビュー画像をPCLV画像ともいう。
【0030】
このように、デジタルカメラ301は、カメラ制御SDK403からのオペレーションによって制御される。しかし、デジタルカメラ301は、動画記録中等によりデジタルカメラ301のCPU処理負荷が高い場合、携帯端末302用にPCLV画像を作成して送信することや、携帯端末302への画像送信等ができないことがある。
そこで、本実施形態のカメラ制御SDK403は、制御モードに応じてデジタルカメラ301に対して送信できるオペレーションを異ならせるようにする。制御モードには、動画記録中モードと通常モードとがある。動画記録中モードは、複数あるデジタルカメラ301の動作状態のうち、デジタルカメラ301の動作状態が動画記録中のときの制御モードである。通常モードは、デジタルカメラ301の動作状態が動画記録中以外のときの制御モードである。
【0031】
カメラ制御SDK403は、デジタルカメラ301から制御禁止通知を受信することで、制御モードを切り替える。カメラ制御SDK403は、種別が「通常」である制御禁止通知を受信すると通常モードになり、種別が「動画記録中」である制御禁止通知を受信すると動画記録中モードになる。なお、後述の通り、カメラ制御SDK403がデジタルカメラ301に接続要求を送信した直後は、種別が「通常」である制御禁止通知を受信したときと同様に、通常モードになるものとする。
【0032】
次に、カメラ制御SDK403が、デジタルカメラ301に送信できる命令及び送信できない命令を判断する方法を説明する。なお、この判断の方法は判断手段による処理の一例である。
携帯端末302のRAM202には、
図8に示す命令テーブル801が記憶される。命令テーブル801は、カメラ制御SDK403がデジタルカメラ301から受信する制御禁止通知の種別と、カメラ制御SDK403がデジタルカメラ301に所定のオペレーションを送信できるか否かの情報とが関連付けられたテーブルである。
図8に示すように、オペレーションとしては、レリーズ、PCLV、動画記録、画像取得、及び、設定値変更がある。また、
図8の「○」はオペレーションを送信できることを表し、「×」はオペレーションを送信できないことを表す。なお、「×」となっているオペレーションは、本発明における禁止命令である。
図8から分かるように、カメラ制御SDK403は、「通常」である制御禁止通知を受信したときは、通常モードであり、命令テーブル801を参照して、命令テーブル801に示す全てのオペレーションを送信できると判断する。また、カメラ制御SDK403は、「動画記録中」である制御禁止通知を受信したときは、動画記録中モードであり、命令テーブル801を参照して、動画記録のオペレーションのみ送信でき、その他のオペレーションを送信できないと判断する。
【0033】
(処理シーケンス)
次に、
図7を参照して、デジタルカメラ301と携帯端末302とが通信接続した際の処理を説明する。
図7は、デジタルカメラ301及び携帯端末302の処理の流れの例を示すシーケンス図である。
図7の処理は、カメラ制御アプリケーション401が起動した携帯端末302とデジタルカメラ301との間で通信接続が確立したときに開始する。なお、本処理におけるデジタルカメラ301の処理は、マイクロコンピュータ123が、入力信号やプログラムにしたがってデジタルカメラ301の各部を制御することにより実現される。また、本処理における携帯端末302の処理は、CPU200が、入力信号やプログラムにしたがって携帯端末302の各部を制御することにより実現される。
以下の処理において実際の主体はアプリケーション本体402又はカメラ制御SDK403を読み込んだCPU200である。しかし、理解を容易にするために、カメラ制御アプリケーション401に含まれるアプリケーション本体402による処理とカメラ制御SDK403による処理とを分けて説明する。
【0034】
ステップS701において、アプリケーション本体402は、カメラ制御SDK403にデジタルカメラ301との接続を要求する。
ステップS702において、カメラ制御SDK403は、デジタルカメラ301に対して、デバイス情報の取得要求を送信する。デジタルカメラ301は、デバイス情報の取得要求を受信する。
ステップS703において、デジタルカメラ301は、デバイス情報を携帯端末302に送信する。このデバイス情報には、デジタルカメラ301が対応するオペレーション、有効なイベント、有効なプロパティが含まれる。カメラ制御SDK403は、デバイス情報を受信する。
【0035】
ここで、イベントについて説明する。イベントとは、デジタルカメラ301で発生した情報を携帯端末302等の外部装置に通知するための情報である。イベントの例として、デジタルカメラ301の設定値がデジタルカメラ301側で変更された場合のイベントや、デジタルカメラ301側の操作で撮影が行われた場合のイベントが挙げられる。
次に、プロパティについて説明する。プロパティとは、デジタルカメラ301の設定値(パラメータ)であり、例えば絞り値、シャッタースピード値、ISO感度等が挙げられる。
【0036】
ステップS704において、カメラ制御SDK403は、デジタルカメラ301に対し接続要求を送信する。デジタルカメラ301は、接続要求を受信する。カメラ制御SDK403は、接続要求の送信直後は、通常モードで動作する。したがって、カメラ制御SDK403は、必要に応じて
図8の命令テーブル801を参照して、デバイス情報で受信したデジタルカメラ301が対応する全てのオペレーションをデジタルカメラ301に送信できると判断する。なお、このオペレーションは、本発明における命令に相当する。
ステップS705において、デジタルカメラ301は、接続要求を受信すると、デジタルカメラ301内の全てのプロパティ値をイベントとして発行し、携帯端末302に対してイベント発生通知を送信する。カメラ制御SDK403は、イベント発生通知を受信する。
ステップS706において、カメラ制御SDK403は、デジタルカメラ301にイベント取得要求を送信する。デジタルカメラ301は、イベント取得要求を受信すると、デジタルカメラ301内の全ての設定値をプロパティ値としてカメラ制御SDK403に送信する。
ステップS707において、カメラ制御SDK403は、デジタルカメラ301から受信したイベント内容を確認し、デジタルカメラ301の設定値をプロパティ値としてアプリケーション本体402に通知する。アプリケーション本体402は、デジタルカメラ301の設定値を受け取る。
以後、デジタルカメラ301内で設定値が変わると、ステップS705からステップS707のシーケンスで、デジタルカメラ301からアプリケーション本体402に設定値が通知される。
【0037】
次に、
図6Aを参照して、デジタルカメラ301を制御するための画面を説明する。
図6Aは、ユーザがカメラ制御アプリケーション401を起動したときに、アプリケーション本体402が携帯端末302の液晶表示部211に表示させる処理選択画面600Aの図である。処理選択画面600Aは、カメラ制御アプリケーション401の起動と共に表示してもよく、アプリケーション本体402が、
図7のステップS707の通知を受けた後に表示してもよい。
処理選択画面600Aは、GUI画面であり、画像取得ボタン601及びカメラ制御ボタン602が含まれる。画像取得ボタン601は、デジタルカメラ301から携帯端末302に画像を送信する処理を開始するためのボタンである。カメラ制御ボタン602は、携帯端末302からデジタルカメラ301を遠隔制御するためのモードに移行するためのボタンである。
【0038】
カメラ制御ボタン602がユーザにより押下されると、アプリケーション本体402は携帯端末302の液晶表示部211に、
図6Bに示すカメラ制御画面600Bを表示し、携帯端末302からデジタルカメラ301を制御できるようになる。カメラ制御画面600Bは、ライブビュー領域611、静止画撮影ボタン612、動画撮影ボタン613、ライブビューボタン614、露出補正ボタン615及びカメラ状態表示領域616を備える。カメラ制御画面600BにはPCLV画像(ライブビュー画像)が表示される。また、カメラ制御画面600Bから、静止画撮影、動画撮影及び露出補正の制御ができる。
【0039】
ライブビュー領域611は、デジタルカメラ301から受信するPCLV画像を表示するための領域である。
静止画撮影ボタン612は、デジタルカメラ301に静止画撮影を指示するためのボタンである。
動画撮影ボタン613は、デジタルカメラ301に動画記録の開始を指示するためのボタンである。なお、動画記録中に動画撮影ボタン613が押下された場合は、携帯端末302はデジタルカメラ301に動画記録の終了を指示する。
【0040】
ライブビューボタン614は、デジタルカメラ301からPCLV画像を取得してライブビュー領域611に表示するか否かを設定するためのボタンである。ON状態の場合、携帯端末302はデジタルカメラ301からPCLV画像を取得し、ライブビュー領域611に表示する。OFF状態の場合、携帯端末302はデジタルカメラ301からPCLV画像を取得せず、ライブビュー領域611は非表示状態となる。
露出補正ボタン615は、デジタルカメラ301に露出補正を指示するためのボタンであり、ユーザにより押下されると補正値の候補(例えば−2〜+2)が表示され、ユーザは所望の補正値を設定できる。
カメラ状態表示領域616は、デジタルカメラ301の状態を表示する領域であり、デジタルカメラ301から通知された状態を表示する。
【0041】
次に、ユーザの操作により、
図6Aに示す処理選択画面600Aのカメラ制御ボタン602が押下された場合について、
図7を参照して説明する。
ステップS708において、アプリケーション本体402は、
図6Bに示すカメラ制御画面600Bを液晶表示部211に表示させる。そして、アプリケーション本体402は、PCLV開始要求のAPIをコールすることで、カメラ制御SDK403にPCLV開始要求を送る。
ステップS709において、カメラ制御SDK403は、
図8の命令テーブル801を参照して、通常モードであるためPCLV開始要求のオペレーションを送信できると判断する。そして、カメラ制御SDK403は、デジタルカメラ301にPCLV開始要求を送信する。デジタルカメラ301は、PCLV開始要求を受信すると、PCLV画像の作成を開始する。
【0042】
ステップS710において、アプリケーション本体402は、PCLV画像取得要求のAPIをコールすることで、カメラ制御SDK403にPCLV画像取得要求を送る。
ステップS711において、カメラ制御SDK403は、
図8の命令テーブル801を参照して、通常モードであるためPCLV画像取得要求のオペレーションを送信できると判断する。そして、カメラ制御SDK403は、デジタルカメラ301に対してPCLV画像取得要求を送信する。デジタルカメラ301はPCLV画像取得要求を受信すると、カメラ制御SDK403にPCLV画像を送信する。カメラ制御SDK403は受信したPCLV画像をアプリケーション本体402に送る。アプリケーション本体402は、PCLV画像を受け取り、ライブビュー領域611に表示する。
【0043】
次に、ステップS711の後に、ユーザの操作により、
図6Bに示すカメラ制御画面600Bの動画撮影ボタン613が押下された場合について、
図7を参照して説明する。
ユーザの操作により動画撮影ボタン613が押下されると、ステップS712において、アプリケーション本体402は、動画記録開始要求のAPIをコールすることで、カメラ制御SDK403に動画記録開始要求を送る。
ステップS713において、カメラ制御SDK403は、
図8の命令テーブル801を参照して、通常モードであるため動画記録開始要求のオペレーションを送信できると判断する。そして、カメラ制御SDK403は、デジタルカメラ301に動画記録開始要求を送信する。デジタルカメラ301は、動画記録開始要求を受信する。
【0044】
ステップS714において、デジタルカメラ301は、携帯端末302へのカメラ設定値の変更イベント等、全てのイベント通知処理を停止する。そして、デジタルカメラ301は、動画記録を開始し、動作状態が動画記録中になる。
ステップS715において、デジタルカメラ301は、現在の動作状態が動画記録中のため、携帯端末302に種別が「動画記録中」の制御禁止通知を送信する。カメラ制御SDK403は、種別が「動画記録中」の制御禁止通知を受信すると、カメラ制御SDK403の制御モードを動画記録中モードに切り替える。なお、デジタルカメラ301が制御禁止通知を送信する処理は、送信手段による処理の一例である。また、カメラ制御SDK403が制御禁止通知を受信する処理は、受信手段による処理の一例である。
【0045】
ステップS716において、アプリケーション本体402は、PCLV画像取得要求のAPIをコールすることで、カメラ制御SDK403にPCLV画像取得要求を送る。カメラ制御SDK403は、
図8の命令テーブル801を参照して、動画記録中モードであるためPCLV画像取得要求のオペレーションを送信できないと判断し、デジタルカメラ301にPCLV画像取得要求を送信しない。
ステップS717において、カメラ制御SDK403は、アプリケーション本体402に対して「BUSY」を返す。アプリケーション本体402は、カメラ制御SDK403から「BUSY」を受け取ると、
図6Cに示すカメラ制御画面600Cのように、ライブビュー領域611の表示をグレーアウトする。そして、アプリケーション本体402は、カメラ状態表示領域616に「BUSY」を一定時間(例えば3秒間)表示する。なお、ステップS716は表示制御手段による処理の一例である。
【0046】
次に、ステップS717の後に、ユーザの操作により、
図6Cに示すカメラ制御画面600Cの露出補正ボタン615が押下された場合について、
図7を参照して説明する。
ステップS718において、アプリケーション本体402は、設定値変更要求のAPIをコールすることで、カメラ制御SDK403に露出値の設定値変更要求を送る。カメラ制御SDK403は、
図8の命令テーブル801を参照して、動画記録中モードであるため設定値変更のオペレーションを送信できないと判断し、露出値の設定値変更要求を送信しない。
ステップS719において、カメラ制御SDK403は、アプリケーション本体402に対して「BUSY」を返す。アプリケーション本体402は、カメラ制御SDK403から「BUSY」を受け取ると、カメラ状態表示領域616に「BUSY」を一定時間(例えば3秒間)表示する。
【0047】
次に、ステップS719の後に、ユーザの操作により、
図6Cに示すカメラ制御画面600Cの動画撮影ボタン613が押下された場合について、
図7を参照して説明する。
ステップS720において、アプリケーション本体402は、動画記録終了要求のAPIをコールすることで、カメラ制御SDK403に動画記録終了要求を送る。
ステップS721において、カメラ制御SDK403は、
図8の命令テーブル801を参照して、動画記録中モードであるため動画記録終了要求のオペレーションを送信できると判断する。そして、カメラ制御SDK403は、デジタルカメラ301に対して、動画記録終了要求を送信する。デジタルカメラ301は、動画記録終了要求を受信する。
【0048】
ステップS722において、デジタルカメラ301は、動画記録を終了する。
ステップS723において、デジタルカメラ301は、携帯端末302に制御禁止解除通知を送信する。制御禁止解除通知は、種別が「通常」の制御禁止通知である。カメラ制御SDK403は、制御禁止解除通知を受信すると、カメラ制御SDK403の制御モードを通常モードに切り替える。
ステップS724からステップS726において、アプリケーション本体402は、デジタルカメラ301の設定値を受け取る。なお、ステップS724からステップS726までの処理は、上述のステップS705からステップS707までの処理と同様のため詳しい説明を省略する。
【0049】
ステップS727において、アプリケーション本体402は、PCLV画像取得要求のAPIをコールすることで、カメラ制御SDK403にPCLV画像取得要求を送る。
ステップS728において、カメラ制御SDK403は、
図8の命令テーブル801を参照して、通常モードであるためPCLV画像取得要求のオペレーションを送信できると判断する。そして、カメラ制御SDK403は、デジタルカメラ301に対してPCLV画像取得要求を送信する。デジタルカメラ301はPCLV画像取得要求を受信すると、カメラ制御SDK403にPCLV画像を送信する。カメラ制御SDK403は受信したPCLV画像をアプリケーション本体402に送る。アプリケーション本体402は、PCLV画像を受け取り、ライブビュー領域611に表示して、PCLVが再開する。
【0050】
次に、ステップS728の後に、ユーザの操作により、
図6Bに示すカメラ制御画面600Bの露出補正ボタン615で露出値が変更される操作がされた場合について、
図7を参照して説明する。
ステップS729において、アプリケーション本体402は、設定値変更要求のAPIをコールすることで、カメラ制御SDK403に露出値の設定値変更要求を送る。
ステップS730において、カメラ制御SDK403は、
図8の命令テーブル801を参照して、通常モードであるため設定値変更要求のオペレーションを送信できると判断する。そして、カメラ制御SDK403は、デジタルカメラ301に対して、露出値の設定値変更要求を送信する。デジタルカメラ301は、露出値の設定値変更要求を受信し、デジタルカメラ301の露出値の設定を指定された値に変更する。
【0051】
以上のように、携帯端末302は、デジタルカメラ301が動画記録中か否かに応じて、デジタルカメラ301に送信できるオペレーションを変え、CPU処理負荷の高い動画記録中にはオペレーションを制限して、CPU処理負荷が増えることを避けられる。ただし、デジタルカメラ301が動画記録中のときでも、動画記録のオペレーションを送信できるようにしている。これにより、デジタルカメラ301がCPU処理負荷の高い動画記録中であっても、携帯端末302から動画記録を終了させる制御ができる。したがって、携帯端末302によるデジタルカメラ301の制御が必要以上に制限されることを抑えて、通信装置及び制御装置の利便性を向上させることができる。また、デジタルカメラ301に接続する携帯端末302に最適な制御機能を提供できる。
【0052】
<第2実施形態>
第1実施形態では、カメラ制御SDK403がアプリケーション本体402からの設定変更要求等を受けたときに、カメラ制御SDK403がデジタルカメラ301に所定のオペレーションを送信できるか否かを判断する例について説明した。しかし、第1実施形態の構成では、ユーザが
図6Bのカメラ制御画面600Bで実行できない制御に対応するボタン等を操作した後に、この操作に対応する制御を実行できるか否か判断されることになる。このため、カメラ制御画面600Bでは、実行できない制御に対応するボタン等は操作できないようすることで、ユーザに分かりやすいインタフェースにできる。
そこで、本実施形態では、デジタルカメラ301からカメラ制御SDK403が制御禁止通知を受けたときに、カメラ制御SDK403が送信できないオペレーションをアプリケーション本体402に通知する。アプリケーション本体402は、通知されたオペレーションの制御に対応するボタン等をユーザが操作できないようにする。
【0053】
以下、本実施形態について詳細に説明する。なお、本実施形態における第1実施形態と共通する部分は、説明を簡略化又は省略し、本実施形態に特有の部分を中心に説明する。
図9を参照して、デジタルカメラ301と携帯端末302とが通信接続した際の処理を説明する。
図9は、デジタルカメラ301及び携帯端末302の処理の流れの例を示すシーケンス図である。
ステップS901からステップS915において、アプリケーション本体402が
図6Bのカメラ制御画面600Bの表示をする。また、動画撮影ボタン613が押された後に、デジタルカメラ301は、カメラ制御SDK403に、種別が「動画記録中」の制御禁止通知を送信する。なお、ステップS901からステップS915までの処理は、
図7のステップS701からステップS715までの処理と同等のため詳しい説明を省略する。
【0054】
ステップS916において、カメラ制御SDK403は、RAM202に格納されている
図8の命令テーブル801を参照し、種別が「動画記録中」の制御禁止通知を受信したときに送信できないオペレーションに対応するAPIを選定する。カメラ制御SDK403は、選定したAPIをアプリケーション本体402に通知する。送信できないオペレーションとして通知されるAPIは、レリーズ、PCLV、画像取得、及び、設定値変更のオペレーションについてのAPIである。また、カメラ制御SDK403は、オペレーションを送信できない理由をアプリケーション本体402に通知する。ステップS916の場合のオペレーションを送信できない理由は、デジタルカメラ301が動画記録中、というものである。
【0055】
ステップS917において、アプリケーション本体402は、
図6Dに示すカメラ制御画面600Dのように、送信できないオペレーションに対応する操作ボタンをグレーアウトして表示する。すなわち、アプリケーション本体402は、レリーズに対応する静止画撮影ボタン612、PCLVに対応するライブビューボタン614及びライブビュー領域611、並びに、設定値変更に対応する露出補正ボタン615をグレーアウトして表示する。そして、グレーアウトされたボタンは操作できないようにする。また、アプリケーション本体402は、カメラ制御画面600Dのカメラ状態表示領域616に「動画記録中」のメッセージを表示する。
こうして、デジタルカメラ301に送信できるオペレーションに対応するボタンと、デジタルカメラ301に送信できないオペレーションに対応するボタンとを区別できるようなカメラ制御画面600Dが表示される。このように、送信できないオペレーションに対応する項目をグレーアウトすることにより、ユーザは実行できない制御を認識できる。
【0056】
ステップS918からステップS921において、ユーザにより動画撮影ボタン613が押されて、デジタルカメラ301は、動画記録を終了する。また、デジタルカメラ301は、カメラ制御SDK403に禁止解除通知を送信する。ステップS918からステップS921までの処理は、
図7のステップS720からステップS723までの処理と同等のため詳しい説明を省略する。
ステップS922において、制御禁止解除通知を受信したカメラ制御SDK403は、アプリケーション本体402に制御禁止解除通知を送る。アプリケーション本体402は制御禁止解除通知を受ける。
ステップS923において、アプリケーション本体402は、実行できないオペレーションとしてグレーアウトしていたボタンのグレーアウトを解除し、グレーアウトしていたボタンを操作できるようにする。こうして、アプリケーション本体402は、
図6Bに示す通常のカメラ制御画面600Bの表示に戻す。カメラ状態表示領域616はメッセージなしの状態にする。これにより、ユーザは制御の禁止が解除されたことを認識できる。
【0057】
なお、ステップS922及びステップS923の代わりに、次に説明するステップS922A及びS923Aの処理としてもよい。
制御禁止解除通知は、種別が「通常」の制御禁止通知である。そこで、ステップS922Aにおいて、カメラ制御SDK403は、
図8の命令テーブル801を参照し、種別が「通常」の制御禁止通知を受信したときに送信できないオペレーションに対応するAPIを選定する。ここで、命令テーブル801から分かるように、種別が「通常」の制御禁止通知を受信したときは、命令テーブル801に示す全てのオペレーションについて、デジタルカメラ301に送信できる。そこで、カメラ制御SDK403は、送信できないオペレーションに対応するAPIがない旨を、アプリケーション本体402に通知する。カメラ制御SDK403は、送信できないオペレーションに対応するAPIがない旨の通知を、カメラ制御アプリケーション401が起動したときにも行うようにしてもよい。
ステップS923Aにおいて、送信できないオペレーションに対応するAPIがない旨の通知を受けたアプリケーション本体402は、ステップS923と同様に、実行できないオペレーションとしてグレーアウトしていたボタンのグレーアウトを解除する。そして、アプリケーション本体402は、グレーアウトしていたボタンを操作できるようにする。こうして、アプリケーション本体402は、
図6Bに示す通常のカメラ制御画面600Bの表示に戻す。カメラ状態表示領域616はメッセージなしの状態にする。これにより、ユーザは制御の禁止が解除されたことを認識できる。
【0058】
ステップS924からS930において、アプリケーション本体402は、デジタルカメラ301の設定値を受け取る。そして、アプリケーション本体402はデジタルカメラ301のプロパティ値を受け取り、PCLV画像取得要求がデジタルカメラ301に送信される。その後、ユーザにより、
図6Bに示すカメラ制御画面600Bの露出補正ボタン615で露出値の変更の操作がされると、デジタルカメラ301に露出補正の設定値変更要求が送信される。なお、ステップS924からS930までの処理は、
図7のステップS724からS730までの処理と同様のため詳しい説明を省略する。
【0059】
このように、本実施形態では、
図6Dに示すカメラ制御画面600Dのようにデジタルカメラ301に送信できないオペレーションに対応する操作ボタンはグレーアウトされる。したがって、ユーザは携帯端末302から実行できない制御を認識できる。また、本実施形態では、第1実施形態と同様に、携帯端末302及びデジタルカメラ301の利便性が向上し、デジタルカメラ301に接続する携帯端末302に最適な制御機能を提供できる。
【0060】
<第3実施形態>
上記の実施形態では、デジタルカメラ301の処理負荷が高い例として、CPU処理負荷の高い動画記録の例を挙げた。しかし、デジタルカメラ301の処理負荷の高い他の例として、カードアクセス負荷が高い静止画の連写、並びに、CPU及びカードアクセスの負荷が共に高い動画のトランスコード等を挙げることができる。
そこで、本実施形態では、デジタルカメラ301の動作状態が動画記録中、静止画の連写中及び動画のトランスコード中のときに、携帯端末302によるデジタルカメラ301の制御が制限される例を説明する。なお、以下では、本実施形態における上記の実施形態と共通する部分の説明を簡略化又は省略し、本実施形態に特有の部分を中心に説明する。
【0061】
デジタルカメラ301が静止画の連写撮影を行う場合、デジタルカメラ301は、カメラ制御SDK403に、種別が「連写中」の制御禁止通知を送信する。デジタルカメラ301が動画のトランスコードを行う場合、デジタルカメラ301は、カメラ制御SDK403に種別が「トランスコード中」の制御禁止通知を送信する。デジタルカメラ301が動画記録を行う場合、デジタルカメラ301は、上記の実施形態と同様に、カメラ制御SDK403に種別が「動画記録中」の制御禁止通知を送信する。
【0062】
本実施形態では、
図8に示す命令テーブル801の代わりに、
図10に示す命令テーブル802が使われる。命令テーブル802には、
図8の命令テーブル801に示すオペレーションの他に、トランスコードのオペレーションが追加されている。トランスコードのオペレーションには、トランスコード開始要求及びトランスコード終了要求がある。また、命令テーブル802には、
図8の命令テーブル801に示す制御禁止通知種別の他に、「連写中」及び「トランスコード中」が追加されている。
カメラ制御SDK403は、種別が「通常」の制御禁止通知を受信したとき、命令テーブル802を参照して、命令テーブル802に示す全てのオペレーションを送信できると判断する。また、カメラ制御SDK403は、種別が「動画記録中」の制御禁止通知を受信したとき、命令テーブル802を参照して、動画記録のオペレーションのみ送信でき、その他のオペレーションを送信できないと判断する。また、カメラ制御SDK403は、種別が「連写中」の制御禁止通知を受信したとき、命令テーブル802を参照して、レリーズ及びPCLVのオペレーションのみ送信でき、その他のオペレーションを送信できないと判断する。また、カメラ制御SDK403は、種別が「トランスコード中」の制御禁止通知を受信したとき、命令テーブル802を参照して、トランスコードのオペレーションのみ送信でき、その他のオペレーションを送信できないと判断する。
【0063】
以上のように、携帯端末302は、デジタルカメラ301の動作状態が負荷の高い状態か否かに応じて、デジタルカメラ301に送信できるオペレーションを変える。デジタルカメラ301が動作状態の負荷の高い状態のとき、携帯端末302から少なくとも負荷の高い動作状態を停止させるための制御ができる。したがって、携帯端末302によるデジタルカメラ301の制御が必要以上に制限されることを抑えて、通信装置及び制御装置の利便性を向上させることができる。また、デジタルカメラ301に接続する携帯端末302に最適な制御機能を提供できる。
【0064】
<その他の実施形態>
カメラ制御SDK403からデジタルカメラ301に送信されるオペレーションの種類は、上述のものに限定されるものではない。また、制御禁止通知の種別も、
図8の命令テーブル801や
図10の命令テーブル802に記載のものに限定されるものではない。
本発明は、上記の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明を実施形態と共に説明したが、上記実施形態は本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。