<第1の実施形態>
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
図1は、本実施形態に係る画像転送処理が実行可能なシステムの構成例を示す図である。
図1のカメラ制御処理は、デジタル一眼レフカメラ(以下、デジタルカメラ)201、このデジタルカメラ201に対して外部機器として接続し制御を行うPC202、または、スマートフォン、タブレットなどの携帯端末203で構成される。
デジタルカメラ201とPC202は有線ケーブル204により接続可能であり、画像データを含むコンテンツデータ、各種信号などの送受信が可能になっている。有線ケーブル204はUSBケーブルでもよいし、有線LANケーブルでもよい。
また、本実施形態におけるデジタルカメラ201とPC202は、アクセスポイント205を介して無線で接続することも可能である。本実施形態におけるデジタルカメラ201と携帯端末203は、無線LANにより接続されているものとする。
なお、デジタルカメラ201と携帯端末203の間の通信は、アドホックネットワークなどを用いた直接接続であってもよいし、アクセスポイント205などを介してのインフラストラクチャー接続であってもよい。また、カメラが簡易的なアクセスポイントとなり、携帯端末103とインフラストラクチャー接続で直接通信を確立してもよい。
図2は本発明の一実施形態に係わる一眼レフデジタルカメラ201の構成を示すブロック図である。
図2において、101は撮影レンズである。102はAF(オートフォーカス)駆動部である。AF駆動部102は、例えばDCモータやステッピングモータによって構成され、マイクロコンピュータ123の制御によって撮影レンズ101のフォーカスレンズ位置を変化させることによりピントを合わせる。
103はズーム駆動部である。ズーム駆動部103は、例えばDCモータやステッピングモータによって構成され、マイクロコンピュータ123の制御によって撮影レンズ101の変倍レンズ位置を変化させることにより撮影レンズ101の焦点距離を変化させる。
104は絞りである。
105は絞り駆動部である。絞り駆動部105は、絞り104を駆動する。駆動されるべき量はマイクロコンピュータ123によって算出され、光学的な絞り値を変化させる。
106は撮影レンズ101から入射した光束をファインダ側と撮像素子側とに切替えるための主ミラーである。主ミラー106は常時はファインダ部へと光束を導くよう反射させるように配されているが、撮影が行われる場合には、撮像素子112へと光束を導くように上方に跳ね上がり光束中から待避する。また主ミラー106はその中央部が光の一部を透過できるようにハーフミラーとなっており、光束の一部を焦点検出を行うためのセンサに入射するように透過させる。
107は主ミラー106から透過してきた光束を反射させ焦点検出を行うためのセンサ(焦点検出回路109内に配置されている)に導くためのサブミラーである。
108はファインダーを構成するペンタプリズムである。ファインダーは他にピント板、アイピースレンズ(不図示)などによって構成させる。
109は焦点検出回路である。ミラー106の中央部を透過し、サブミラー107で反射された光束は、焦点検出回路109の内部に配置された光電変換を行うためのセンサに至る。フォーカス演算に用いるデフォーカス量は、センサの出力を演算することによって求められる。マイクロコンピュータ123は演算結果を評価してAF駆動部102に指示し、フォーカスレンズを駆動させる。
110はフォーカルプレーンシャッタである。111はシャッタ駆動回路であり、フォーカルプレーンシャッタ110を駆動する。シャッタの開口時間はマイクロコンピュータ123によって、制御される。
112は撮像素子である。撮像素子112には、CCDやCMOSセンサなどが用いられ、撮影レンズ101によって結像された被写体像を電気信号に変換する。
113はクランプ回路である。114はAGC回路である。クランプ回路113やAGC回路114は、A/D変換をする前の基本的なアナログ信号処理を行い、マイクロコンピュータ123により、クランプレベルやAGC基準レベルの変更が行われる。115はA/D変換器である。A/D変換器115は撮像素子112のアナログ出力信号をデジタル信号に変換する。116は映像・音声信号処理回路であり、ゲートアレイなどのロジックデバイスにより実現される。
117はEVF駆動回路である。118はEVF(電子ビューファインダ)モニタである。
119はメモリコントローラである。120はメモリである。121はコンピュータ等と接続可能な外部インタフェースである。122はバッファメモリである。
映像・音声信号処理回路116は、デジタル化された画像データに、フィルター処理、色変換処理、ガンマ処理を行うと共に、JPEGなどの圧縮処理を行い、メモリコントローラ119に出力する。
映像・音声信号処理回路116は、マイク132、または、音声ライン入力133からの音声信号の圧縮処理を行い、メモリコントローラ119に出力する。映像・音声信号処理回路116は、撮像素子112からの映像信号や、メモリーコントローラ119から逆に入力される画像データを、EVF駆動回路117を通してEVF(電子ビューファインダ)モニタ118に出力することも可能である。これらの機能切り替えはマイクロコンピュータ123の指示により行われる。映像・音声信号処理回路116は、必要に応じて撮像素子112の信号の露出情報やホワイトバランスなどの情報をマイクロコンピュータ123に出力することが可能である。それらの情報を基にマイクロコンピュータ123はホワイトバランスやゲイン調整の指示を行う。連続撮影動作の場合においては、一旦、未処理画像のままバッファメモリ122に撮影データを格納し、メモリコントローラ119を通して未処理の画像データを読み出し、映像・音声信号処理回路116にて画像処理や圧縮処理を行い連続撮影を行う。連像撮影枚数は、バッファメモリの大きさに左右される。
映像・音声信号処理回路116は、マイク132、または、音声ライン入力133からの音声データを、DA変換135を通してスピーカー136に出力することも可能である。
メモリコントローラ119では、映像・音声信号処理回路116から入力された未処理のデジタル画像・音声データをバッファメモリに格納し、処理済みのデジタル画像・音声データをメモリ120に格納する。また、逆にバッファメモリ122やメモリ120から画像・音声データを映像・音声信号処理回路部116に出力する。メモリ120は取り外し可能である場合もある。メモリコントローラ119は、PC等と接続可能な外部インタフェース121を介してメモリ120に記憶されている画像・音声を出力可能である。
123はマイクロコンピュータである。124は操作部材である。操作部材124は、マイクロコンピュータ123にその状態を伝え、マイクロコンピュータ123はその操作部材の変化に応じて各部をコントロールする。
125はスイッチ1(以後SW1)である。126はスイッチ2(以後SW2)である。スイッチSW1とスイッチSW2は、レリーズボタンの操作でオンオフするスイッチであり、それぞれ操作部材124の入力スイッチのうちの1つである。スイッチSW1のみオンの状態はレリーズボタン半押し状態であり、この状態でオートフォーカスの動作を行ったり、測光動作を行う。スイッチSW1,SW2が共にオンの状態はレリーズボタンの全押し状態であり、画像を記録するためのレリーズボタンオン状態である。この状態で撮影が行われる。またスイッチSW1,SW2がONし続けている間は、連続撮影動作が行われる。操作部材124には、他に、ISO設定ボタン、画像サイズ設定ボタン、画質設定ボタン、情報表示ボタンなど不図示のスイッチが接続されており、スイッチの状態が検出されている。
127は液晶駆動回路である。128は外部液晶表示部材である。129はファインダー内液晶表示部材である。液晶駆動回路127は、マイクロコンピュータ123の表示内容命令に従って、外部液晶表示部材128やファインダー内液晶表示部材129を駆動する。また、ファインダー内液晶表示部材129には、不図示のLEDなどのバックライトが配置されており、そのLEDも液晶駆動回路127で駆動される。マイクロコンピュータ123は撮影前に設定されているISO感度、画像サイズ、画質に応じた、画像サイズの予測値データをもとに、メモリコントローラ119を通して、メモリの容量を確認した上で撮影可能残数を演算することができる。必要に応じて外部液晶表示部材128、ファインダー内液晶表示部材129にも表示することができる。
130は不揮発性メモリ(EEPROM)で、カメラに電源が入れられていない状態でも、データを保存することができる。
131は電源部である。電源部131は、各ICや駆動系に必要な電源を供給する。
132はマイクである。
133は音声のライン入力である。
134はA/D変換器である。A/D変換器133はマイク132、または、音声ライン入力133のアナログ出力信号をデジタル信号に変換する。
135はD/A変換器である。D/A変換器はデジタル信号をアナログ出力信号に変換する。
136スピーカーである。
137はパーソナルコンピュータや携帯電話・携帯情報端末に代表される外部機器である。前述のインターフェイス121を介してカメラの各種情報や画像データの送受信の相手となる。また通信回路を備えたカメラも同様に外部機器として用いることも可能であり、その場合にはカメラ同士で各種情報や画像データの送受信を行うことも可能である。
図3aは本発明の一実施形態に係るPC202のハードウェア構成を示すブロック図である。
301はCPU、302は内部メモリ、303はグラフィックコントローラを含む表示器であり、外部モニタ装置と接続される場合や内蔵のモニタを有する場合もある。304はキーボード、305はマウス、306は通信ポートでこれを介してカメラとの通信を可能にしている。307はHDなどのディスクメモリである。307は必ずしもディスク形状の媒体でなくても、フラッシュメモリの様にディスク同様に扱える記憶装置でもよい。308はPC内の電源である。
表示器303では、撮影パラメータ操作画面や、ライブビュー画像表示画面を含む各種画面を表示する。このようなリモート撮影(遠隔撮影)システムのアプリケーションプログラムはHD307に記憶されており、ユーザオペレーションやカメラデバイス検出などのトリガで起動されCPU301で実行される。
図3bは、本発明の一実施形態に係る携帯端末203のハードウェア構成を示すブロック図である。携帯端末の例としては、いわゆるスマートフォンなどの携帯電話、タブレットデバイス、PDA(Personal Digital Assistant)、携帯型AVプレイヤー、電子ブック、電子辞書等があげられる。
この携帯端末203は、CPU400、フラッシュメモリ401、RAM402、内蔵カメラ403、マイク404、スピーカ405、イヤホン406、タッチパネル410、液晶表示部411、スイッチ412、通信部413、外部I/F414を有する。さらに携帯端末203は、GPS(Global Positioning System)センサ407や電子コンパス408などを有する。これらのほか、携帯端末203は、通話用のアンテナや通話用の通信モジュール等を有していてもよい。
CPU400は、携帯端末203で実行される処理を統括的に制御する。
RAM402は、CPU400の作業領域として用いられ、CPU400が処理するコンテンツ等の各種データや、各種アプリケーションのプログラムを一時的に格納する。
フラッシュメモリ401は、内蔵カメラ403により撮像されたデジタル写真画像や動画像等の各種コンテンツやCPU400が実行する各種制御プログラムや各種アプリケーションプログラムを記憶する。
液晶表示部411は、例えばTFT(Thin Film Transistor)等のLCDやOELD(Organic Electro−Luminescence Display)であり、いわゆるGUIを表示する。また液晶表示部411はタッチパネル410と一体的に設けられている。タッチパネル410は、アプリケーションの実行により写真やGUIが表示された状態において、ユーザのタッチ操作を検出し、CPU400へ伝える。タッチパネル410の動作方式としては、例えば抵抗被膜方式や静電容量方式が用いられるが、その他の方式が用いられてもよい。タッチパネル410は、例えば、写真表示アプリケーションの実行中に、ユーザが写真を選択して全画面表示をしたり、ピンチインやピンチアウトによる画像の拡大や縮小したりも可能にしている。
スイッチ412は、例えば電源スイッチ、起動ボタン等、タッチパネル415では入力できないユーザの操作等を受け付け、入力信号をCPU400へ伝える。
イヤホン406及びスピーカ405は、上記フラッシュメモリ401等に記憶された、または通信部413、外部I/F414等から入力された音声信号を出力する。
通信部413は、インターネットやLAN(Local Area Network)等のネットワークを介して、他の機器との間で通信処理を行う。当該通信部413は、無線LAN(Local Area Network)モジュールを有していてもよいし、WWAN(Wireless Wide Area Network)モジュールを有していてもよい。
外部I/F(インタフェース)414は、例えばUSB(Universal Serial Bus)やHDMI(登録商標)(High−Definition Multimedia Interface)等の各種規格に準じて、データのやり取りを行う。
電源415は携帯端末203用の電源である。一般的にリチウムイオン電池などの充電型の電源が用いられている。
<SDK>
図4に、本実施形態におけるソフトウェア構成例を示す。本実施形態における外部装置502を用いてデジタルカメラ501を制御するためには、カメラ制御用の通信アプリケーション503をインストールする必要がある。このアプリケーション503は、デジタルカメラ501を制御することを主用途としたアプリケーションソフトウェアである。ユーザは、例えばインターネット上の所定のサーバからアプリケーション503をダウンロードし、外部装置502にインストールすることが可能である。アプリケーション503は、デジタルカメラ501との通信モジュールとなるカメラ接続SDK504(以下、SDK)をライブラリとして内包する。アプリケーション503がインストールされた外部装置502によるデジタルカメラ101との直接の通信は、SDK504を介して行うことになる。すなわち、アプリケーション503のうち、SDK504は主としてデジタルカメラ201との通信を担うソフトウェアプログラムである。その他の機能、例えばユーザ操作の受け付け、GUIの表示、アプリケーション503の起動・終了などはアプリケーション503のうちSDK504以外のソフトウェアプログラムを用いることになる。
なお、本実施形態では、通常のPC用のSDK(以下、PC用SDK)と、携帯電話などの携帯端末用のSDK(以下、携帯端末用SDK)を用意している。ここでいう通常のPCとは、デスクトップPCやノートPCなどを想定しているこれに対し携帯端末とは、例えばいわゆるスマートフォンに代表される携帯電話やタブレットデバイスを想定している。
いずれのSDKも、デジタルカメラ101のベンダからアプリケーション開発者に提供されることを想定している。したがってアプリケーション開発者は、アプリケーションのインストールが想定される外部装置502がPCか携帯端末かに応じて、いずれのSDKをアプリケーション503に組み込むかを決定する。また、PCでも携帯端末でもデジタルカメラ101を制御可能としたい場合は、ベンダはPC用SDKが組み込まれたアプリケーションと携帯端末用SDKが組み込まれたアプリケーションという2タイプを用意することになる。
一般に、PCに比べて携帯電話などの携帯端末は処理能力や画面サイズの面でスペックに差がある。そこで本実施形態では、PC用のアプリケーションで実行可能な処理と、携帯端末用のアプリケーションで実行可能な処理とを異ならせるようにしている。本実施形態では、機器に応じた実行可能な処理の制御をSDKを用いて実現する。
まず、デジタルカメラ201の構成について説明する。デジタルカメラ201は、PCアプリモード及び携帯端末アプリモードという2つの被制御モードを有する。PCアプリモードは、PC用SDKが組み込まれたPC用のアプリケーションにより制御されるモードである。携帯端末アプリモードは、携帯端末用SDKが組み込まれた携帯端末のアプリケーションにより制御されるモードである。
上記2つのモードにおいて外部装置から実行可能な処理は、カメラの不揮発性メモリ130に保持されたテーブルにより管理される。本実施形態における管理テーブルの例を図5に示す。図5に示すように、PCアプリモード及び携帯端末アプリモードでは、実行可能な処理が異なる。
<デジタルカメラ・PC接続シーケンス>
図6に、本実施形態におけるデジタルカメラ201とPC202が接続された際の処理シーケンスを示す。本シーケンスは、PCアプリが起動されたPC202とデジタルカメラ201との間で接続を確立したことに応じて開始される。なお、本シーケンスにおけるデジタルカメラ201の処理は、マイクロコンピュータ123などの制御部が、入力信号やプログラムにしたがってデジタルカメラ201の各部を制御することにより実現される。また、本シーケンスにおけるPC202の処理は、CPU301が、入力信号やプログラムにしたがってPC202の各部を制御することにより実現される。
また本シーケンスの説明では、PCアプリのうちSDKによらないプログラム(以下、これをPCアプリと呼ぶ)を読み込んで実行する処理と、PC用SDKを読み込んで実行する処理とを分けて記載している。また本シーケンスの説明には、理解を容易にするためにこれらのソフトウェアが処理の主体であるかのような記載が含まれる。しかしながら実際の動作主体はPCアプリまたはPC用SDKを読み込んだCPU301である。
まずPCアプリは、PC用SDKに接続要求を行う(S601)。
接続要求を受けたPC用SDKは、デジタルカメラ201に対して、デバイス情報の取得要求を送信する(S602)。
PC202からの取得要求を受信したデジタルカメラ201は、デバイス情報をPC202に送信する(S651)。このデバイス情報には、デジタルカメラ201が対応するオペレーション、有効なイベント、現在のプロパティが含まれる。
ここでデバイス情報について詳細に説明する。オペレーションとは、デジタルカメラ201に対する制御コマンドであり、主にデジタルカメラ201が有する画像を送信させるオペレーションと、デジタルカメラ201の撮影機能を制御するオペレーションに分類される。デジタルカメラ201が有する画像を送信させるオペレーションとしては、例えばデジタルカメラ201から外部装置に画像データを送信する「画像取得」がある。撮影機能を制御するオペレーションとしては、デジタルカメラ201に静止画撮影動作を行わせる「レリーズ」が代表例である。その他、デジタルカメラ201から外部装置にいわゆるライブビュー画像を送信する「PC LiveView」、デジタルカメラ201に動画撮影動作を行わせる「動画記録開始・終了」などがあげられる。なお、PCアプリモードと携帯端末アプリモードの切り替えも、このオペレーションに含まれる。S651では、まずPCアプリモードと携帯端末アプリモードの切り替えオペレーションを利用可能なオペレーションとして通知する。
イベントとは、デジタルカメラ201で発生した情報を外部装置に通知するための情報である。イベントの例としては、デジタルカメラ201の設定値がデジタルカメラ201側で変更した場合のイベントや、デジタルカメラ201側の操作で撮影が行われた場合のイベントがあげられる。
プロパティとは、デジタルカメラ201のパラメータであり、例えば絞り値、シャッタースピード値、ISO感度などがあげられる。
図6の説明に戻る。デバイス情報を取得したPC用SDKは、デバイス情報を参照し、デジタルカメラ201がPCアプリモードと携帯端末アプリモードの切り替えオペレーションに対応しているかを判断する。切り替えオペレーションに対応していると判断した場合は、デジタルカメラ201に対し、動作モードをPCアプリモードに設定するよう要求する(S603)。
デジタルカメラ201は設定の要求を受信すると、図5のPCアプリモードの制御可能テーブル801を参照する。そして制御可能な機能として、「画像取得」、「レリーズ」、「カメラパラメータ設定」、「PC LiveView」、「動画記録開始・終了」を利用可能なオペレーションとして追加する(S652)。
さらにデジタルカメラ201は、制御可能な機能が追加されたことを通知するために、デバイス情報の再取得を要求するようPC202に通知する(S653)。
PC用SDKは通知を受信すると、デバイス情報の再取得要求をデジタルカメラ201に送信する(S604)。
デジタルカメラ201はデバイス情報の再取得要求を受信すると、現在のデバイス情報を再送信する。なお、ここで送信されるデバイス情報には、S652で追加した機能に関する情報も含まれる。このデバイス情報をS654で受信することで、PC用SDKはデジタルカメラ201の制御において使用可能な機能を認識することができる。
次に、PCアプリからデジタルカメラ201の制御を行うシーケンスを説明する。
図8(a)は、PCアプリを起動した際にPCアプリが表示するGUI画面である。この画面はPCアプリの起動とともに表示してもよいし、PC用SDKからS654までの処理が完了した通知を受けてから表示してもよい。
図8(a)に示すGUI画面には画像取得ボタン801及びカメラ制御ボタン802が含まれる。画像取得ボタン801がユーザにより押下されると、デジタルカメラ201からPC202に、画像を送信する処理が開始される。カメラ制御ボタン802は、デジタルカメラ201を遠隔制御するためのモードに移行するためのボタンである。
カメラ制御ボタン802がユーザにより押下されると、図8(b)に示すカメラ制御画面が表示され、PC202からデジタルカメラ201の制御が可能となる。PC202が制御可能なデジタルカメラ201の機能として、図8(b)の例ではライブビュー画像の表示、静止画撮影、動画撮影、露出補正をあげている。ライブビューボタン814はデジタルカメラ201からライブビュー画像を取得し表示するか否かを設定するためのボタンである。ON状態の場合、PC202はデジタルカメラ201からライブビュー画像を取得し、ライブビュー領域811に表示する。OFF状態の場合、PC202はデジタルカメラ201からライブビュー画像を取得せず、ライブビュー領域811は非表示状態となる。静止画撮影ボタン812はデジタルカメラ201に静止画撮影を指示するためのボタンである。動画撮影ボタン813はデジタルカメラ201に動画撮影を指示するためのボタンである。なお、動画撮影中に動画撮影ボタン813が押下された場合は、PC202はデジタルカメラに動画撮影の停止を指示する。露出補正ボタンはデジタルカメラ201に静止画撮影を指示するためのボタンであり、ユーザ操作により押下されると補正値の候補(例えば−2〜+2)が表示され、所望の補正値を設定することができる。
次に、ユーザ操作により、GUI画面上の画像取得ボタン801が押された場合について説明する。PCアプリは、ユーザ操作を検知したことに応じてPC用SDKに対して画像情報の取得を要求する(S605)。本実施形態における画像情報とは、例えばファイル名などの画像を特定するためのID、ファイルサイズ、ファイル形式などである。画像に対応するサムネイルを画像情報として送信してもよい。PC用SDKはデジタルカメラ201に画像情報取得要求を送信する(S606)。
S655において、PC用SDKはデジタルカメラ201から画像情報を受信し、S607において受信した画像情報をPCアプリに受け渡す。PCアプリはS607で取得した画像情報に基づき、ファイル名やサムネイルの一覧を表示し、ユーザに取得対象となる画像を選択させる。そしてPCアプリは、PC用SDKに対して画像の取得を要求する(S608)この要求には取得対象として選択された画像のIDが含まれる。
PC用SDKが画像取得要求を受け付けると、PC用SDKは、S654で受信したオペレーションに「画像取得」含まれているか否かに基づき、PCアプリからの画像取得要求が有効か否かを判断する。画像取得要求が有効であると判断した場合、PC用SDKはS609において画像取得要求を取得対象の画像のIDとともにデジタルカメラ201に送信する。
デジタルカメラ201は、S609にて画像取得要求を受信すると、メモリ120から取得対象のIDを有する画像を読み出し、PC用SDKに画像を送信する(S656)。
そしてS610で、PC用SDKは受信した画像をPCアプリに渡す。この処理により、PCアプリはデジタルカメラ201から受信した画像を表示することが可能となる。
次に、ユーザ操作により、PCアプリのUI画面701上のカメラ制御ボタン703が押された場合について説明する。この場合PCアプリは、S611にて図8(b)に示すカメラ制御用UI画面を表示し、PC用SDKにPC用ライブビュー要求を行う。
PC用SDKはPC用ライブビュー要求を受けると、S654で取得したオペレーションにPC LiveViewが含まれているかを判断する。含まれていればS612にて、デジタルカメラ201にPC用ライブビュー要求を送信する。
デジタルカメラは、PC用ライブビュー要求を受信すると、PC用ライブビュー画像を作成し、S657にてPC用ライブビュー画像をPC用SDKに送信する。
そしてS613においてPC用SDKは受信したPC用ライブビュー画像をPCアプリに渡す。この処理により、PCアプリはデジタルカメラ201から受信したライブビュー画像を表示することが可能となる。
次に、ユーザ操作により、PCアプリの静止画撮影ボタン812が押された場合について説明する。
ユーザ操作により、静止画撮影ボタン812が押されると、S614においてPCアプリは、PC用SDKに対してレリーズ要求を行う。
PC用SDKはレリーズ要求を受けると、S654で取得したオペレーションにレリーズが含まれているかを判断する。含まれていればS615にて、デジタルカメラ201にレリーズ要求を送信する。
レリーズ要求を受信したデジタルカメラ201はS658にてレリーズ動作を行うことで、新たな撮影が行われ画像を取得する。画像を取得すると、S659においてデジタルカメラ201はPC用SDKに対して画像追加イベントを送信する。PC用SDKはS616にて受信した画像追加イベントをPCアプリに送信する。このことにより、PCアプリはデジタルカメラ201側で新たな画像が得られたことを認識することができる。
<デジタルカメラ・携帯端末接続シーケンス>
図7に、本実施形態におけるデジタルカメラ201と携帯端末203が接続された際の処理シーケンスを示す。本シーケンスは、携帯端末アプリが起動された携帯端末203とデジタルカメラ201との間で接続を確立したことに応じて開始される。なお、本シーケンスにおけるデジタルカメラ201の処理は、マイクロコンピュータ123などの制御部が、入力信号やプログラムにしたがってデジタルカメラ201の各部を制御することにより実現される。また、本シーケンスにおける携帯端末203の処理は、CPU400が、入力信号やプログラムにしたがって携帯端末203の各部を制御することにより実現される。
また本シーケンスの説明では、携帯端末アプリのうちSDKによらないプログラム(以下、これを携帯端末アプリと呼ぶ)を読み込んで実行する処理と、携帯端末用SDKを読み込んで実行する処理とを分けて記載している。また本シーケンスの説明には、理解を容易にするためにこれらのソフトウェアが処理の主体であるかのような記載が含まれる。しかしながら実際の動作主体は携帯端末アプリまたは携帯端末用SDKを読み込んだCPU400である。
なお、本シーケンスは、図6のシーケンスとの相違点がPC202か携帯電話203かの違いしかない処理が多い。したがってこれらの処理については、説明を適宜省略するものとする。
まずS701、S702、S751は、図6のS601、S602、S651と同様の処理であるため、説明を省略する。
S751でデバイス情報を取得した携帯端末用SDKは、デバイス情報を参照し、デジタルカメラ201がPCアプリモードと携帯端末アプリモードの切り替えオペレーションに対応しているかを判断する。切り替えオペレーションに対応していると判断した場合は、デジタルカメラ201に対し、動作モードを携帯端末アプリモードに設定するよう要求する(S703)。
デジタルカメラ201は設定の要求を受信すると、図5のPCアプリモードの制御可能テーブル801を参照し、制御可能な機能として、「画像取得」、「リサイズ画像取得」を利用可能なオペレーションとして追加する(S752)。ここで追加されるオペレーションは、PCアプリモードのときと異なる。つまりデジタルカメラ201は、SDKから通知されるモードの情報に応じて相手装置が携帯端末か否かを判断し、携帯端末である場合は利用可能な機能を制限している。
S753、S704、S754は図6のS653、S605、S654と同様の処理であるため、説明を省略する。
図8(c)に、携帯端末アプリの画面の一例を示す。本実施形態における携帯端末アプリは、PCアプリとは異なり、デジタルカメラ201での撮影を遠隔制御する機能はなく、デジタルカメラが有する画像を取得する機能を有するものとする。したがって、画面851には、画像取得を指示するためのボタン852が表示される。
次に、ユーザ操作により、画像取得ボタン852が押された場合について説明する。一般的な携帯端末は、PCに比べてデータの処理能力が低いため、大きなサイズのデータを受信したり表示したりするのに時間がかかる場合がある。そこで本実施形態における携帯端末アプリは、大きなサイズの画像が受信対象となっている場合は、その画像を小さくリサイズして送信するよう、デジタルカメラ201に要求することとした。
図7の説明に戻る。画像取得ボタン852を押下するユーザ操作を検知した場合のS705、S706、S755、S707は、図6のS605、S606、S655、S607と同様の処理であるから、説明を省略する。そしてPCアプリの場合と同様、携帯端末アプリはS707で取得した画像情報に基づき、ファイル名やサムネイルの一覧を表示し、ユーザに取得対象となる画像を選択させる。
取得対象となる画像が選択された場合、携帯端末アプリはS707で取得した画像情報に基づき、選択された画像のサイズが所定の値以上か否かを判断する。ここでいう所定の値とは、予め携帯端末アプリが保持している具体的なバイト数(例えば5MB以上か否か)を用いることができる。また、例えばS755で受信する画像サイズにS、M、Lといったサイズを示す情報が含まれる場合は、このサイズ情報を用いてもよい(例えばMサイズ以上か)。選択された画像が所定の値以上でないと判断した場合は、携帯端末アプリはPCアプリと同様、画像取得要求を携帯端末用SDKに受け渡す。選択された画像が所定の値以上だと判断した場合は、携帯端末アプリはより小さなサイズの画像を要求すべく、リサイズ画像取得要求を携帯端末用SDKに受け渡す。
まず、選択された画像のサイズが所定の値以上でないと判断された場合について説明する。この場合携帯端末アプリは、携帯端末用SDKに対して画像の取得を要求する(S708)。この要求には取得対象の画像のIDが含まれる。
携帯端末用SDKが画像取得要求を受け付けると、携帯端末用SDKは、S754で受信したオペレーションに「画像取得」含まれているか否かに基づき、携帯端末アプリからの画像取得要求が有効か否かを判断する。画像取得要求が有効であると判断した場合、携帯端末用SDKはS709において画像取得要求を取得対象の画像のIDとともにデジタルカメラ201に送信する。
デジタルカメラ201は、S709にて画像取得要求を受信すると、メモリ120から取得対象のIDを有する画像を読み出し、携帯端末用SDKに画像を送信する(S756)。
そしてS710で、PC用SDKは受信した画像をPCアプリに渡す。この処理により、PCアプリはデジタルカメラ201から受信した画像を表示することが可能となる。
次に、選択された画像のサイズが所定の値以上だと判断された場合について説明する。この場合携帯端末アプリは、携帯端末用SDKに対してリサイズ画像の取得を要求する(S711)。この要求には取得対象の画像のIDが含まれる。
携帯端末用SDKがリサイズ画像取得要求を受け付けると、携帯端末用SDKは、S754で受信したオペレーションに「リサイズ画像取得」が含まれているか否かに基づき、携帯端末アプリからのリサイズ画像取得要求が有効か否かを判断する。リサイズ画像取得要求が有効であると判断した場合、携帯端末用SDKはS712においてリサイズ画像取得要求を取得対象の画像のIDとともにデジタルカメラ201に送信する。
デジタルカメラ201は、S712にてリサイズ画像取得要求を受信すると、メモリ120から取得対象のIDを有する画像を読み出し、所定のサイズにリサイズを行う。リサイズ画像のサイズは予めデジタルカメラ201がその目安を保持していてもよいし、携帯端末用SDKがデジタルカメラ201に通知してもよい。リサイズ画像の生成後、デジタルカメラ201は携帯端末用SDKに画像を送信する(S757)。なお、本実施形態のリサイズ画像取得のオペレーションは、リサイズのオペレーションと画像取得のオペレーションを兼ねている。他の方法としては、リサイズのオペレーションを設け、携帯端末用SDKがデジタルカメラ201に画像IDを特定してリサイズを指示する方法がある。この場合、デジタルカメラ201はリサイズが完了したら携帯端末用SDKに通知を行い、携帯端末用SDKは画像取得のオペレーションでリサイズ画像を取得する。
そしてS713で、携帯端末用SDKは受信したリサイズ画像を携帯端末アプリに渡す。この処理により、PCアプリはデジタルカメラ201から受信した画像を表示することが可能となる。
なお、複数の画像が取得対象として選択された場合、携帯端末アプリは個々の画像について画像取得要求を行うかリサイズ画像取得要求を行うかを判断し、判断結果に応じた要求を行う。
なお、本実施形態における携帯端末アプリはライブビューやレリーズを行うためのGUIを有していない。しかしながら、もしライブビューやレリーズを行うためのGUIを有する携帯端末アプリから、携帯端末用SDKがPC用ライブビュー要求やレリーズ要求を受けても、携帯端末用SDKがエラーを返すことになる(S714〜S717)。このようにすることで、デジタルカメラ201との通信を要することなく適切なエラー通知を行うことが可能となる。
なお、PCアプリ、携帯端末アプリともに、アプリケーションが終了すると、各SDKよりデジタルカメラ201に対して切断処理が行われ、各モードで追加された制御機能が削除される。
以上のように構成することで、PCと携帯端末のようにハードスペックが異なる場合でも、デジタルカメラに接続する制御端末に最適な制御機能を提供することが出来る。
なお、オペレーションの種類は本実施形態に示したものに限定されないし、またテーブルの構成も図5に示したものには限定されない。例えば、携帯端末であっても、行楽地などの記念撮影の際にリモート撮影を行う場合が考えられる。したがって、携帯端末アプリモードでもレリーズ及びPC LiveViewを利用可能なオペレーションとしてもよい。この場合、PC LiveViewよりも画質または転送レートを低くしてライブビュー画像を送信するオペレーションを別途設け、携帯端末アプリモードで利用可能にしてもよい。また、携帯端末では詳細なパラメータ設定を必要とする機会が多くないと考えられるため、レリーズは利用可能としてもカメラパラメータ設定は利用可能にしないことも考えられる。また、カメラパラメータ設定をパラメータに応じて複数のオペレーションに分割し、携帯端末ではそのうちの一部のオペレーションしか利用可能にしないようにしてもよい。
<第2の実施形態>
第1の実施形態では、通信相手がPCか携帯端末かに応じて、利用可能なオペレーションを異ならせる例について説明した。これに対し本実施形態では、利用可能なオペレーションをデジタルカメラのベンダ製のアプリケーションか否かに応じて切り替えることとした。デジタルカメラのベンダ以外の第三者にデジタルカメラ制御用のSDKを公開し、アプリケーションを作成させることは、カメラシステムの用途をより拡張する意味では望ましい。しかしその一方で、すべてのオペレーションを利用可能とすると、ベンダ側で予期しなかった制御が行われる可能性もあるため、利用可能なオペレーションに一定の制限をかけることが望ましい。
そこで本実施形態では、アプリケーションがデジタルカメラのベンダが提供しているものか否かに応じて、利用可能なオペレーションを異ならせることとした。
以下、本実施形態について詳細に説明する。本実施形態は第1の実施形態と共通する部分が多いため、共通部分については説明を省略し、本実施形態に特有の部分を中心に説明する。
本実施形態のデジタルカメラ201は、デジタルカメラ201のベンダが作成したPCアプリ(以下、ベンダアプリ)と通信するモード(ベンダアプリモード)、ベンダ以外の第三者が作成したPCアプリ(以下、標準アプリ)と通信するモード(標準アプリモード)とを有する。この2つのモードは利用可能なオペレーションがそれぞれ異なり、モードとオペレーションの関係を示すテーブルが不揮発性メモリ130に保持されている。図9に、テーブルの一例を示す。図9の例では、ベンダアプリモードでは「画像取得」、「レリーズ」、「カメラパラメータ設定」、「PC Liveview」、「動画記録開始・終了」が利用可能である。また、標準アプリモードでは「画像取得」が利用可能である。なお、PC用SDKも同様にベンダアプリモードと標準アプリモードを有しており、PCアプリからの指示がない限り、標準アプリモードで動作するものとする。
本発明の実施例2における自社アプリモード時の処理を示すシーケンスを図10に示す。
本発明の実施例2における他社アプリモード時の処理を示すシーケンスを図11に示す。
以下、図9テーブルと、図11、12のシーケンスを参照して、本発明の第1の実施例による、PCのSDKからのデジタルカメラへの接続モードの違いにより、デジタルカメラの提供する機能の変更について説明する。
<デジタルカメラ・ベンダアプリ接続シーケンス>
図6に、本実施形態におけるデジタルカメラ201とPC202が接続された際の処理シーケンスを示す。なお、本フローはPC202上でベンダアプリが起動した場合について説明する。
まずS1001において、ベンダアプリはPC用SDKに対し、接続モードをベンダアプリモードに設定するよう要求する。
PC用SDKはS1002において、PC用SDKの接続モードを標準アプリモードからベンダアプリモードに切り替える。
続いてS1003において、ベンダアプリはPC用SDKに対し、接続要求を受け渡す。
S1004、S1051は図6のS602、S651と同様の処理である。
S1051にてデバイス情報を取得したPC用SDKは、デバイス情報を参照し、デジタルカメラ201がベンダアプリモードと標準アプリモードの切り替えオペレーションに対応しているかを判断する。切り替えオペレーションに対応していると判断した場合は、デジタルカメラ201に対し、動作モードを自身のモードに合わせてベンダアプリモードに設定するよう要求する(S1005)。
デジタルカメラ201は設定の要求を受信すると、図9のベンダアプリモードのテーブルを参照する。そして制御可能な機能として、「画像取得」、「レリーズ」、「カメラパラメータ設定」、「PC LiveView」、「動画記録開始・終了」を利用可能なオペレーションとして追加する(S1052)。
これ以降のS1006〜S1018及びS1053〜S1059は、図6のS604〜S616及びS653〜S659と同様の処理であるから、説明を省略する。
<デジタルカメラ・標準アプリ接続シーケンス>
次に、図11に本実施形態におけるデジタルカメラ201とPC202が接続された際の処理シーケンスを示す。なお、本フローはPC202上で標準アプリが起動した場合について説明する。
PC202上の標準アプリが起動すると、標準アプリはPC用SDKに接続要求を受け渡す。ここでのベンダアプリとの大きな違いは、図10のS1001のように、PC用SDKのモード設定を要求しない点である。前述したように、PC用SDKはPCアプリからの要求がない限り、標準アプリモードで動作する。
S1102、S1151は図6のS602、S651と同様の処理である。
S1151にてデバイス情報を取得したPC用SDKは、デバイス情報を参照し、デジタルカメラ201がベンダアプリモードと標準アプリモードの切り替えオペレーションに対応しているかを判断する。切り替えオペレーションに対応していると判断した場合は、デジタルカメラ201に対し、動作モードを自身のモードに合わせて標準アプリモードに設定するよう要求する(S1103)。
デジタルカメラ201は設定の要求を受信すると、図9のベンダアプリモードのテーブルを参照し、制御可能な機能として、「画像取得」を利用可能なオペレーションとして追加する(S1152)。
それ以降のS1104〜S1110、S1153〜S1156は、図6のS604〜S610、S653〜S656と同様の処理であるため、説明を省略する。
次に、PC用SDKが標準アプリからPC用ライブビュー要求を受けた場合について説明する(S1111)。この場合、PC用SDKはS1154で取得したオペレーションにPC LiveViewが含まれているかを判断する。PC用SDKが標準アプリモードの場合、PC LiveViewのオペレーションはS1154で取得できないため、PC用SDKは標準アプリにエラーを返す(S1112)。同様に標準アプリからPC用SDKにレリーズ要求をした場合(S1113)も、PC用SDKはエラーを返すことになる(S1114)。
以上説明したように、本実施形態のSDKは、標準アプリに組み込まれているかベンダアプリに組み込まれているかに応じてデジタルカメラのモードを制御し、利用可能なオペレーションを異ならせるよう制御することとした。このようにすることで、アプリから利用可能なオペレーションを適切に制限することが可能となる。
なお、本実施形態ではPCアプリについてベンダアプリ、標準アプリが用意される場合について説明したが、携帯端末アプリについてベンダアプリ、標準アプリを用意し、それぞれ異なるオペレーションを利用可能にしてもよい。
<第3の実施形態>
第1の実施形態では、PCのほうが携帯端末よりスペックが高いという理由で、PCアプリの方が使用可能なオペレーションを多く設けるテーブル構成としていたが、必ずしもこの構成に限定されない。
例えば、家の外に持ち出す機会の少ないPCに対し、普段外に持ち歩く携帯端末の場合は携帯端末の操作で自分撮りをするなど、リモート撮影を行えるようにしておくことが望ましいとも考えられる。
したがって、図12のようなテーブル構成とし、PCからはオペレーションを制限ないしは使用できないようにし、携帯端末のみからカメラを制御できるようにしてもよい。
以上のように構成することで、PCと携帯端末といった使用形態にあった、カメラ制御の機能を提供することが出来る。
<他の実施形態>
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。