以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
(第1の実施形態)
以下、本発明の第1の実施形態について図面を参照しながら説明する。本実施形態では、ユーザが通信機器を操作して画像編集アプリケーションからデータ取り込み用アプリケーションを起動して連携し、画像編集アプリケーションで対応可能なデータ形式に基づいて、撮像装置によるデータ送信の制御を行う例について説明する。なお、本実施形態におけるアプリケーションの「起動」として、未起動のアプリケーションを起動させる場合と、バックグラウンドで起動中のアプリケーションをフォアグラウンドへ移動させてアクティブな状態にする場合がある。
(システム構成)
図1は、本実施形態における、撮像装置100と通信機器200との接続形態を模式的に表し、撮像装置100から通信機器200への画像送信方法について示した図である。
接続形態としては、外部中継装置の一例である外部APが形成する無線LANネットワークに、撮像装置100と通信機器200とが参加する形態でもよいし、外部APを介さず、撮像装置100と通信機器200とが直接接続する形態でもよい。直接接続する形態の場合は、撮像装置100が簡易APとして動作して無線LANネットワークを形成する。この場合、撮像装置100は簡易APとして動作すると、ビーコン信号の定期的な送信を開始する。通信機器200はビーコン信号を検知し、撮像装置100が形成した無線LANネットワークに参加し、互いの機器発見、機器の能力取得などを経て通信を確立し、データの送受信が可能な状態となる。
本実施形態において、画像を送信する方法は3種類ある。図1(a)に示すのは、ユーザが撮像装置100を操作して撮像装置100内の画像から送信対象の画像を選択し、選択された画像の通信機器200への送信を指示する。これを「カメラ操作送信」といい、本実施形態のPUSH送信の1つである。図1(b)では、ユーザが撮像装置100、もしくは通信機器200を操作して撮像装置100の撮影自動送信設定をONにすることで、撮像装置にて撮影時に通信機器200へ当該画像を自動的に送信する。これを「撮影自動送信」といい、本実施形態のPUSH送信の1つである。図1(c)では、ユーザが通信機器200を操作して、撮像装置100内に保持された画像の属性情報を取得し、選択された属性情報と対応する画像の送信を撮像装置100に指示する。これを「通信機器操作送信」といい、本実施形態のPull画像送信の1つである。ユーザは選択的にこれら3つの画像送信方法を使い分けることができる。
しかし、これらの画像送信方法は、同時操作は許可されず、いずれかの操作のみを使用可能とする。図1(a)の「カメラ操作送信」は、撮像装置100のみを操作して実現するものとし、撮像装置100で画像送信のための操作をしている最中には、通信機器の操作が行われるのを防ぐ画面を通信機器200上に表示する。図1(b)の「撮影自動送信」も同様に、撮像装置100のみを操作して実現され、撮像装置100で撮影し、撮影画像を自動的に送信している最中は、通信機器200の操作が行われないように、通信機器200上では画像受信画面が表示される。また、図1(c)の「通信機器操作送信」では、通信機器200のみを操作して実現するものとし、通信機器200で画像送信のための操作が行われている最中には、途中で撮像装置100の操作が行われるのを防ぐような画面を撮像装置100に表示する。
また、本実施形態では、通信機器200で操作できる機能は画像送信機能以外にもあって良い。接続している撮像装置100の撮影を通信機器200での操作により遠隔で制御できる「リモート撮影機能」や、撮像装置100本体の時刻設定を通信機器200での操作により遠隔で変更できる「カメラ設定機能」などを提供しても良い。ただし、これらのような通信機器200にて操作が実行されている間は、「カメラ操作送信」は実行できないこととし、そのことを示す画面を撮像装置100に表示する。
(通信機器の構成)
図2は、本実施形態に係る通信機器200のハードウェア構成例を示すブロック図である。
図2において、CPU201は通信機器200全体の処理を制御する。ROM202には、CPU201が実行する各種制御プログラム、データ等が保存されている。RAM203は、CPU201のワーク領域、エラー処理時のデータの退避領域、制御プログラムのロード領域等を有する。HDD(ハードディスクドライブ)204は、OS(オペレーティングシステム)、各種アプリケーション、通信機器200内で実行される各制御プログラムやコンテンツ、データを格納する。
入力装置205は、電源のON/OFFを切り替えるためのボタンなど各種ボタンから構成されている。BMU(ビットムーブユニット)206は、例えば、メモリ間(例えば、VRAM207と他のメモリとの間)のデータ転送や、メモリと各I/Oデバイス(例えば、NETI/F209)との間のデータ転送を制御する。VRAM207には、表示装置211に表示するための画像データが描画される。VRAM207に描画された画像データは、所定の規定に従って表示装置211に転送され、これにより表示装置211に画像が表示される。また、表示装置211はタッチパネルを搭載しており、ユーザが表示装置211の表示面に触れることによって、その位置に表示されたアイコンに係る指示を入力する。NETI/F209は、撮像装置100等とネットワーク103を介して通信を行う。バス212は、アドレスバス、データバス及びコントロールバスを含む。
図3は、本実施形態に係る通信機器200のソフトウェア構成例を示す図である。
通信機器200には、所定のOS301が搭載されており、データ取込みアプリケーション(以下、Write−app)302と、画像編集アプリケーション(以下、Read−app)303とがインストールされている。通信機器200のCPU201は、OS301を起動して、通信機器200が行う基本的な処理を行うとともに、インストールされているアプリケーションの連携処理およびデータをHDD204等に記録する処理を行う。また、通信機器200のCPU201は、Write−app302を起動して、例えば撮像装置100からNETI/F209を介して画像を取り込む処理を行う。また、通信機器200のCPU201は、Read−app303を起動して、取り込んだ画像に対して加工したり、画像の印刷を印刷装置に指示したりする処理を行う。ここで、Write−app302は入力用アプリケーションであり、出力用アプリケーションであると言うこともできる。なお、通信機器200は複数のRead−app303をインストールすることが可能であり、本実施形態ではその中の1つを例にあげて説明する。
(撮像装置の構成)
図4(a)は、本実施形態の外部装置の一例である撮像装置100の構成例を示すブロック図である。なお、ここでは外部装置の一例として撮像装置について述べるが、外部装置はこれに限られない。例えば外部装置は携帯型のメディアプレーヤや、いわゆるタブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよい。
制御部401は、入力された信号や、後述のプログラムに従って撮像装置100の各部を制御する。なお、制御部401が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
撮像部402は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光(映像)を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子としては、一般的には、CMOS(Complementary Metal Oxide Semiconductor)や、CCD(Charge Coupled Device)が利用される。撮像部402は、制御部401に制御されることにより、撮像部402に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行いデジタルデータを画像データとして出力する。本実施形態の撮像装置100では、画像データは、DCF(Design Rule for Camera File system)の規格に従って、記録媒体410に記録される。
不揮発性メモリ403は、電気的に消去・記録可能な不揮発性のメモリであり、制御部401で実行される後述のプログラム等が格納される。
作業用メモリ404は、撮像部402で撮像された画像データを一時的に保持するバッファメモリや、表示部406の画像表示用メモリ、制御部401の作業領域等として使用される。
操作部405は、ユーザが撮像装置100に対する指示をユーザから受け付けるために用いられる。操作部405は例えば、ユーザが撮像装置100の電源のON/OFFを指示するための電源ボタンや、撮影を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。さらに、後述の通信部411を介して外部機器との通信を開始するための専用の接続ボタンなどの操作部材を含む。また、後述する表示部406に形成されるタッチパネルも操作部405に含まれる。なお、レリーズスイッチは、SW1およびSW2を有する。レリーズスイッチが、いわゆる半押し状態となることにより、SW1がONとなる。これにより、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の撮影準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、SW2がONとなる。これにより、撮影を行うための指示を受け付ける。
表示部406は、撮影の際のビューファインダー画像の表示、撮影した画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部406は必ずしも撮像装置100が内蔵する必要はない。撮像装置100は内部又は外部の表示部406と接続することができ、表示部406の表示を制御する表示制御機能を少なくとも有していればよい。
記録媒体410は、撮像部402から出力された画像データを記録することができる。記録媒体410は、撮像装置100に着脱可能なよう構成してもよいし、撮像装置100に内蔵されていてもよい。すなわち、撮像装置100は少なくとも記録媒体410にアクセスする手段を有していればよい。
通信部411は、外部装置と接続するためのインターフェースである。本実施形態の撮像装置100は、通信部411を介して、外部装置とデータのやりとりを行うことができる。例えば、撮像部402で生成した画像データを、通信部411を介して外部装置に送信することができる。また、撮像部402による撮像を通信部411を介して外部装置からコントロールすることができる。なお、本実施形態では、通信部411は外部装置とIEEE802.11の規格に従った、いわゆる無線LANで通信するためのインターフェースを含む。制御部401は、通信部411を制御することで外部装置との無線通信を実現する。
近接無線通信部412は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近接無線通信部412は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することによりIEEE802.15の規格(いわゆるBluetooth(登録商標))に従った近距離無線通信を実現する。本実施形態においてBluetooth通信は、低消費電力であるBluetooth Low Energyのバージョン4.0(以下BLE)を採用する。このBLE通信は、無線LAN通信と比べて通信可能な範囲が狭い(つまり、通信可能な距離が短い)。また、BLE通信は、無線LAN通信と比べて通信速度が遅い。その一方で、BLE通信は、無線LAN通信と比べて消費電力が少ない。本実施形態の撮像装置100は、近接無線通信部412を介して、外部装置とデータのやりとりを行うことができる。例えば、撮像部402による撮像を通信部411を介して外部装置からコントロールすることができる。ただし、通信速度が遅いため撮像部402で生成した画像データを送信することはしない。
なお、本実施形態における撮像装置100の通信部411は、インフラストラクチャモードにおけるアクセスポイントとして動作するAPモードと、インフラストラクチャモードにおけるクライアントとして動作するCLモードとを有している。そして、通信部411をCLモードで動作させることにより、本実施形態における撮像装置100は、インフラストラクチャモードにおけるCL機器として動作することが可能である。撮像装置100がCL機器として動作する場合、周辺のAP機器に接続することで、AP機器が形成するネットワークに参加することが可能である。また、通信部411をAPモードで動作させることにより、本実施形態における撮像装置100は、APの一種ではあるが、より機能が限定された簡易的なAP(以下、簡易AP)として動作することも可能である。撮像装置100が簡易APとして動作すると、撮像装置100は自身でネットワークを形成する。撮像装置100の周辺の装置は、撮像装置100をAP機器と認識し、撮像装置100が形成したネットワークに参加することが可能となる。上記のように撮像装置100を動作させるためのプログラムは不揮発性メモリ403に保持されているものとする。
なお、本実施形態における撮像装置100はAPの一種であるものの、CL機器から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していない簡易APである。したがって、自機が形成したネットワークに参加している他の装置からデータを受信しても、それをインターネットなどのネットワークに転送することはしない。
次に、撮像装置100の外観について説明する。図4(b)、図4(c)は撮像装置100の外観の一例を示す図である。レリーズスイッチ405aや再生ボタン405b、方向キー405c、タッチパネル405dは、前述の操作部405に含まれる操作部材である。また、表示部406には、撮像部402による撮像の結果得られた画像が表示される。また、本実施形態の撮像装置100は、カメラ筺体の側面に近接無線通信部412のアンテナ部分を有する。この近接無線通信部412同士を一定の距離に近づけることにより、他の機器と近接無線通信を確立することができる。これにより、ケーブル等を介さずに非接触で通信可能であると共に、ユーザの意図に沿って通信相手を限定することができる。
(通信機器の処理手順)
次に、図5〜図9を参照しながら、本実施形態に係る通信機器200の処理手順について説明する。本実施形態では、通信機器200のCPU201によってRead−appからWrite−appが起動されて連携する場合に、CPU201がRead−appにて対応可能なデータ形式に応じて、撮像装置100に対してデータの送信制御を行う例について説明する。
図5は、本実施形態の処理手順を説明するためのシーケンス図である。なお、以下で説明する処理は通信機器200のCPU201がOS301、Write−app302やRead−app303を起動し、適宜、これらにしたがって動作し、各部を制御することにより実現される。
なお、以下では説明を簡単にするため、T501からT509を連携開始フェーズ、T510からT520を接続フェーズ、T521からT529を画像保存フェーズ、T530からT533を連携終了フェーズというように、フェーズに分けて説明する。
まず、T501からT509の連携開始フェーズに関して説明する。
T501では、通信機器200のCPU201が、ユーザの操作により、Read−appの起動要求を受け付ける。
続いて、T502では、T501における起動要求に応答して、CPU201がRead−appを起動することにより処理を開始する。CPU201はRead−appを起動すると、図7(a)に示すような画面を表示装置211に表示させる。図7(a)に示す画面において、ユーザは、表示装置211のタッチパネルを介して実行したい編集内容を選択する。
例えば、「写真を加工」が選択されると、表示装置211には、図7(b)に示す画面が表示され、「写真を印刷」が選択されると、表示装置211には、図7(c)に示す画面が表示される。また、「写真を送信」が選択されると、表示装置211には、図7(d)に示す画面が表示される。図7(b)〜図7(d)に示す画面では、HDD204等に保存された画像から編集したい画像を選択することができる。一方、通信機器200が保持していない画像を編集したい場合は、「Write−appから写真を追加」ボタン702を選択することにより、外部装置から画像を取り込むことができる。図5のT506に示す処理は、「Write−appから写真を追加」ボタン702がユーザによって選択されることを検知する処理であり、T507に示す処理はこの検知によって開始する。
図5のT503では、CPU201がデータ共有場所500を参照して、Read−appが対応するデータ形式を示す形式リストが存在するかどうかを判定する。また、Read−appの形式リストが存在する場合、共有場所500に格納されているRead−appの形式リストと、Read−appに設定されている対応可能なデータの形式を示す情報を比較して、変更があるかどうか判定する。なお、Read−appに設定されている形式を示す情報は、Read−appがインストールされた時にHDD204に記憶されるだけでなく、Read−appのバージョンアップ時などにインターネット等を介して外部から受信されて更新される。
ここで、データ共有場所500、および形式リストについて詳細に説明する。
まず、データ共有場所は各アプリケーションから読み書き可能な所定の記憶領域であり、図6(a)を用いて説明する。図6(a)はHDD204内のディレクトリ構成例を示している。図6(a)において、データ共有場所フォルダは601である。本実施形態では、この直下にRead−app、Write−appといった各連携アプリケーションの形式リスト602が書き込まれる。共有フォルダ601、および形式リスト602はRead−app、Write−appなどの連携アプリケーションから読み書きが可能である。また、各連携アプリケーションは、形式リスト602のファイルパス(図6の例でいうと、/root/a/share/format)を記憶しており、各連携アプリケーションは起動した際にそのファイルパス先の形式リスト602のファイルを参照する。そして、各連携アプリケーションに設定された最新の対応可能なデータの形式と比較し、差異があれば、変更があると判定する。
以上がデータ共有場所500に関する説明である。
続いて、形式リストに関して図6(b)を用いて説明する。図6(b)は形式リスト602の例を示している。形式リストは、アプリケーションID651と対応可能なデータの形式の配列652から構成される。アプリケーションID651は、アプリケーションが通信機器200にインストールされた際にHDD204に記録されるアプリケーション固有のIDである。例えば、アプリケーションIDが0x41であるアプリケーション653が対応しているデータ形式は、JPEG形式、およびMP4形式であり、それ以外のデータ形式は対応していないことを示している。以上が形式リストに関する説明である。なお、本実施形態では、形式リストは各アプリケーション(例えばRead−app)が対応”する”データの形式を示す場合について説明したが、各アプリケーションが対応”しない”データの形式を示すようにしてもよい。
再び図5におけるシーケンスの説明に戻る。
そして、T503において、CPU201はデータ共有場所500にRead−appの形式リスト602が存在しない、もしくはRead−appの形式リスト602が存在し、変更があると判定された場合は、T504、T505を実行する。
T504では、CPU201はRead−appに設定されている対応可能なデータの形式に基づき形式リストを生成する。T505では、T504で生成した形式リストをRead−appの固有のIDに関連付けてデータ共有場所500に書き込む。
この際、T503において、データ共有場所500にRead−appの形式リスト602が存在しないと判定された場合は、T504で生成されたリストをRead−appの固有のIDに関連付けて書き込みを実行する。一方、T503において、データ共有場所500に形式リスト602が存在し、変更があると判定された場合は、Read−appの固有のIDに関連付けられた既存の形式リストをT504で生成された形式リストで上書き保存する。
T506では、CPU201は、ユーザがRead−app上に表示される連携ボタンを押下したことを検出する。図7(b)に示す例では、「Write−appから写真を追加ボタン」702が連携ボタンに該当する。
T507では、CPU201はユーザが連携ボタンを押下したのを検知して、Read−appによるWrite−appの起動要求をOSへ送信する。この際、起動要求の中に連携の要求元を示す情報としてRead−appのアプリケーションIDを含み、CPU201は受信したRead−appのアプリケーションIDをRAM203に記憶する。T508では、CPU201はOSからのWrite−appの起動要求を受ける。なお、本実施形態では、起動要求の中にRead−appのアプリケーションIDを含んで起動要求を行うが、これに限定するものではない。例えばHDD204の一時的な場所に連携の要求元を示す情報としてRead−appのアプリケーションIDを格納して、その格納先へのパスをWrite−appの起動要求に含めてOSへ送信するなどしてもよい。そして、CPU201はパスにしたがって取得したRead−appのアプリケーションIDを、RAM203に記憶する。
続いて、T509では、CPU201はWrite−appを起動する。起動した際、図8(a)に示すWrite−appの画面を表示する。図8(a)に示すように、Read−appからの要求にしたがって連携目的でWrite−appが起動された場合は、CPU201はWrite−appを連携モードへ遷移させる。なお、Write−appが既に起動しており、バックグラウンドで動作している場合は、CPU201はWrite−appをフォアグラウンドでの動作に切り替えて、連携モードで動作させる。そして、Write−appが連携モードで動作している間は、その旨をユーザへ示すようにステータスバー801を表示する。Write−appが連携モードで動作するときは、Write−appでは撮像装置100内の画像を取り込む操作を優先することを目的とするため、図8(a)に示すように、撮像装置100と接続するためのガイド機能と、撮像装置100内の画像一覧機能のみに制限される。一方、ユーザが単にWrite−appを起動するような通常モードでの起動では、図8(a)に示すすべての機能が利用可能となり、それに合わせたUI表示となる。なお、解除ボタン802をユーザが押下することが検知されると、CPU201はWrite−appの連携モードを解除し、通常モードの動作へ遷移させる。
以上が連携開始フェーズである。
続いて、T510からT520の接続フェーズに関して説明する。
T510では、ユーザが撮像装置100を操作することに応じて、撮像装置100が通信モードをONに設定すると、T511において、撮像装置100はアクセスポイント起動する。
続いて、T512では、ユーザが通信機器200を操作することに応答して、通信機器200は撮像装置100のアクセスポイントへ接続する。
T513では、CPU201はWrite−appにおいて、OSから撮像装置100を検出したことの通知を受け、T514において、撮像装置100へ接続要求を送信する。
T515では、撮像装置100より通信機器200の認証が行われ、撮像装置100と通信機器200の接続が確立される。
T516では、CPU201は、Write−appがRead−appと連携中であるかどうかを判定する。CPU201が連携中ではないと判断した場合は、T517からT518の処理は行わない。
Write−appがRead−appと連携中であれば、T517では、CPU201は、T508で取得したRead−appのアプリケーションIDをRAM203から読出し、そのアプリケーションIDを元にデータ共有場所500の形式リストを参照する。CPU201はRead−appに該当する対応可能なデータ形式を形式リストから取得しRAM203へ記憶する。
T518では、CPU201は、T517にて取得したRead−appが対応可能なデータ形式に撮像装置100がPUSH送信で送信しないデータ形式(本実施形態では一例としてRAW形式とする)があるか判断する。ここで、CPU201がRead−appが対応可能なデータ形式にRAW形式があると判断した場合は、T519へ処理を進める。一方、RAW形式がないと判断した場合はT521へ処理を進める。なお、撮像装置100がPUSH送信で送信しないデータ形式は、Write−appから読み出し可能にしてRAM203に予め記憶されている。あるいは、撮像装置100がPUSH送信で送信するデータ形式をWrite−appから読み出し可能にしてRAM203に予め記憶しておくようにしてもよい。そして、Read−appが対応可能なデータ形式のうち、撮像装置100がPUSH送信で送信するデータ形式に含まれないものがあるかをT518で判断するようにしてもよい。
Read−appが対応可能なデータ形式にRAW形式があれば、T519では、CPU201はNETI/F209を介して、PUSH送信(本実施形態ではカメラ操作送信および撮影自動送信)の禁止要求を撮像装置100へ送信する。そして、撮像装置100の制御部401は禁止要求を通信機器200から受信すると、PUSH送信を行うための操作を受け付けないようにしたり、その旨を示すダイアログを表示部406に表示する。これらのようにして、撮像装置100の制御部401は撮像装置100内の画像をPUSH送信によって通信機器200へ送信できないようにする。
T520では、CPU201はNETI/F209を介して、撮像装置100からの応答を受信する。なお、CPU201はT519、T520の処理を行った場合は、以降の処理は行わないものとする。
また、これ以降にユーザによって図8(a)に示す解除ボタン802を押下された場合は、CPU201はPUSH送信の禁止解除要求を撮像装置100へ送信する。そして、撮像装置100の制御部401は禁止解除要求を通信機器200から受信すると、PUSH送信を行うための操作の受け付けを再開して、撮像装置100内の画像をPUSH送信によって通信機器200へ送信できるようにする。
以上が、接続フェーズである。なお、T517の処理は撮像装置100との接続が完了したときに行われる場合について説明したが、これに限定しない。例えば、T509のWrite−appが起動したときに行われるようにしてもよい。
続いて、T521からT529の画像保存フェーズについて説明する。
T521では、ユーザは撮像装置100を操作して、撮像装置100内の画像のうち、送信対象の画像を選択した上で、PUSH送信を指示する。撮像装置100は、ユーザの指示に応答して、PUSH送信の要求を通信機器200へ送信する。
T522では、CPU201は、NETI/F209を介して、撮像装置100からPUSH送信要求を受信する。このPUSH送信要求には、T521において撮像装置100上でユーザが選択した元画像に関する情報を示すリスト情報が含まれている。CPU201はこのリスト情報を保存予定画像リストとして、Write−appから読み出し可能にしてRAM203に保存する。
撮像装置100からPUSH送信要求を受信すると、T523において、CPU201はRAM203に記憶された保存予定画像リストに基づき撮影画像(元画像)に対応する属性情報の要求を、NETI/F209を介して撮像装置100へ送信する。本実施形態では、属性情報としてサムネイル画像の場合について説明するが、これに限らず、例えばファイル名などであってもよい。
また、元画像と属性情報それぞれのデータの形式は、同じ場合と異なる場合がある。例えば、元画像もサムネイル画像も同じJPEG形式の静止画ファイルのような場合や、元画像はMP4形式の動画ファイルで、属性情報は動画ファイルから抽出されたJPEG形式の静止画ファイルのような場合がある。本実施形態では、元画像のデータ形式がRead−appにより対応可能であるかどうかに関わらず、少なくとも元画像の属性情報のデータ形式はWrite−appにより対応可能である。
T524では、CPU201はサムネイル画像と、各サムネイル画像に対応する元画像のデータ形式を示す情報を、NETI/F209を介して撮像装置100から受信し、HDD204に保存する。
T525では、HDD204に保存されたサムネイル画像を読みだして表示装置211に表示する。このとき、Write−appには図8(b)に示すGUIが表示される。図12(b)では、サムネイル画像が読み出される度に、順に画面に追加して表示装置211に表示される様子を示し、サムネイル画像と対応する元画像は、まだ撮像装置100から受信されていないため、プログレスバー806は0%を示している。
T526では、CPU201は、T522にてRAM203に記憶された保存予定画像リストに基づき元画像の要求をNETI/F209を介して撮像装置100へ送信する。
T527では、CPU201は、T522で受信した保存予定画像リストに基づき、元画像をNETI/F209を介して撮像装置100から受信する。このとき、CPU201は図8(b)の画面から図8(c)に示すような画面へ表示を切り替えるよう制御する。そして、撮像装置100から元画像を受信する進捗に合わせてプログレスバー807を更新して表示するよう制御する。ここで、サムネイル画像は元画像に比べて低解像度であり、データサイズが小さい。そして、サムネイル画像に比べてデータサイズの大きな元画像を撮像装置100から取り込む際には、Read−appが対応可能な形式の、撮像装置100においてユーザに選択された元画像だけを受信するようにした。これによって、Read−appで処理することのない無駄なデータを受信してしまうのを防ぐことができ、通信負荷を軽減することができる。
元画像の受信が完了すると、T528において、CPU201は、Write−appによる元画像の保存処理を行う。つまり、CPU201は、T527で受信した元画像のファイルをHDD204等に保存し、T529で、新たに保存した元画像に画像IDを付与する。画像IDは元画像の保存先のファイルパスと対応付けられるコードとして説明する。なお、画像IDは保存先のファイルパスであってもよい。
なお、T526での元画像の要求から、T527での元画像の受信処理、T528での元画像の保存処理、T529での元画像に対する画像IDの発行までの処理は、T522にてRAM203に記憶された保存予定画像リストの枚数分繰り返される。この一連の画像保存処理を行っている間は、CPU201は、図8(c)に示す保存進捗画面を表示装置211に表示する。
以上が画像保存のフェーズである。
続いて、T530からT533の連携終了フェーズについて説明する。
T523からT529で説明したように、T522にてRAM203に記憶された保存予定画像リストと対応するすべての元画像の保存処理が終了したら、CPU201は、図8(d)に示す保存完了画面を表示装置211に表示する。ユーザが閉じるボタン804を押したことを検知すると、CPU201は後述する画像IDリストの生成処理を実行することなく、図8(a)の画面の表示に戻る。これによって、今回、取り込まれた元画像のRead−appとの共有を中止することができる。
一方、ユーザにより図8(d)に示す保存完了画面でRead−appに戻るボタン805が押されたことを検出すると、CPU201は、T530の処理を開始する。T530において、CPU201は、画像IDリストの生成処理を行う。具体的には、まず、Write−appにおいて、T528で保存しておいた元画像の画像IDと保存先とを関連付けた画像IDリストを生成し、OSから読み出し可能にしてHDD204に記憶する。これにより、後述するT533においてRead−appはOSから画像IDリストを取得することができ、元画像を画像IDリストにしたがって取得してRead−appの処理に利用することができる。
T531では、CPU201はWrite−appによるRead−appの起動要求をOSへ送信する。また、CPU201は、このタイミングでWrite−appに連携モードを解除させ、通常モードに切り替えて動作させる。具体的には、CPU201は使用できる機能の制限を解除し、図8(a)で制限されていた機能を選択可能な表示に更新して通常モードの状態に戻す。
続いてT532において、CPU201は、OSからRead−appに対して起動要求を行ってRead−appを起動させる。また、図5に示した例では、Read−appは、T507の処理を行った後もバックグラウンドで起動中であることから、T532の処理では、CPU201はRead−appをフォアグラウンドでの動作に切り替える。なお、T507の処理を行った後にCPU201はRead−appの起動を一旦停止し、T532の起動要求に応答して、Read−appを再起動するようにしてもよい。
そして、T533において、CPU201は、Read−appにより、T530でWrite−appにより生成された画像IDリストをOSを介して受け取る。
CPU201は、Read−appにおいて取得した画像IDリストに基づき、HDD204から元画像を取得し、Read−appの一覧表示画面に追加して表示する。例えば、図7(b)に示す画面で「Write−appから写真を追加」を選択してWrite−appと連携した場合は、画像の一覧表示領域701に新たな画像として、Write−appにより撮像装置100から取得された元画像が追加して表示される。
以上のように、通信機器200のCPU201によってRead−appからWrite−appが呼び出されて起動された場合に、CPU201がRead−appが対応可能なデータ形式に応じて、撮像装置100によるPUSH送信の可否を制御するようにした。これによって、Read−appが対応不可能なデータ形式の画像を送受信したり、保存したりといった無駄な処理を実行せずに済む。
なお、本実施形態ではRead−appが対応可能なデータ形式としてRAW形式を例として、撮像装置100によるPUSH送信を禁止するようにしたが、これに限定しない。例えば、Read−appが対応可能なデータ形式として、MP4形式やAVI形式、MOV形式などの動画のデータ形式にも同様に適用することが可能である。
(撮像装置100のUI)
次に本実施形態における、撮像装置100のUIについて図9を用いて説明する。
図5におけるT515にて撮像装置100と通信機器200との接続が確立すると、撮像装置100の表示部406には図9(a)に示すようにPUSH送信を行うための画像選択画面が表示される。ただし、T519にて通信部411を介して通信機器200からPUSH送信の禁止要求を受信した場合は、制御部401は表示部406をブラックアウトさせるなどして、PUSH送信のための画像選択をユーザに行わせないようにする。このとき、制御部401はユーザによって撮像装置100のレリーズなど操作された場合は図9(b)に示すような、ユーザの操作を受け付けないエラーを表示部406に表示する。一方、T521にてユーザが表示部406を操作して画像を選択すると、制御部401は図9(c)に示すような、PUSH送信の対象の画像が選択された状態を示す画面を表示部406に表示する。そして、ユーザの操作により、PUSH送信を指示されると制御部401は図9(d)に示すような画像送信の進捗表示を表示部406に表示し、画像送信が終了すると図9(a)に示すような表示へ更新される。
以上が撮像装置100のGUIの説明である。
(第2の実施形態)
以下、本発明の第2の実施形態について図面を参照しながら説明する。本実施形態では、通信機器200を操作して画像編集アプリケーションからデータ取り込み用アプリケーションを起動して連携し、データ取り込み用アプリケーションにて画像編集アプリケーションで対応可能なデータ形式、および接続している撮像装置100の機種に基づいて、撮像装置100のデータ送信を制御する例について説明する。なお、本実施形態におけるアプリケーションの「起動」として、未起動のアプリケーションを起動させる場合と、バックグラウンドで起動中のアプリケーションをフォアグラウンドへ移動させてアクティブな状態にする場合がある。
(通信機器の処理手順)
図10を参照しながら、本実施形態に係る通信機器200の処理手順について説明する。本実施形態では、通信機器200のCPU201によってRead−appからWrite−appが起動されて連携する場合に、CPU201がRead−appにて対応可能なフォーマットと、接続している撮像装置100の機種を判断し、撮像装置100のデータ送信を制御する例について説明する。
なお、図10に示す処理は、図5におけるT501からT518の処理と同様の処理が実行された後に続けて実行される。
T1005では、通信機器200に接続している撮像装置100の機種を取得する。ここで撮像装置100の機種はT515での接続確立が行われるときに撮像装置100から取得したモデルIDなどである。取得されたモデルIDはCPU201によってRAM203へ読み出し可能として格納される。
T1006では、CPU201は、T517にて参照したRead−appが対応可能なデータ形式とT1005にて識別された撮像装置100の機種に基づき、当該機種の撮像装置100が、Read−appが対応可能なデータ形式の画像をPUSH送信で送信するかどうかを判定する。T1006にて、送信しないと判断されれば、T1007へ処理を進める。なお、PUSH送信で送信しないデータ形式は撮像装置100の機種毎に、Write−appから読み出し可能にしてRAM203に予め記憶されている。そして、Read−appが対応可能なデータ形式に、接続中の撮像装置100の機種がPUSH送信で送信しないデータ形式が含まれている場合はT1007へ処理を進める。あるいは、PUSH送信で送信するデータ形式を撮像装置100の機種毎に、Write−appから読み出し可能にしてRAM203に記憶しておき、Read−appが対応可能なデータ形式に、接続中の撮像装置100の機種がPUSH送信で送信するデータ形式に含まれていない場合はT1007へ処理を進めるようにしてもよい。
T1007では、CPU201はNETI/F209を介して、撮像装置100へPUSH送信の禁止要求を送信する。そして、撮像装置100の制御部401は禁止要求を通信機器200から受信すると、PUSH送信を行うための操作を受け付けないようにしたり、その旨を示すダイアログを表示部406に表示したりする。これらのようにして、撮像装置100内の画像をPUSH送信によって通信機器200へ送信できないようにする。
T1008では、CPU201はNETI/F209を介して、撮像装置100からの応答を受信する。
以上が、通信機器200のCPU201によってRead−appからWrite−appが連携された場合に、Read−appにて対応可能なデータ形式と接続中の撮像装置100の機種に基づき、撮像装置100によるPUSH送信の可否を制御する処理の説明である。
なお、T1003の処理は撮像装置100との接続が完了したタイミングに行われる場合について説明したが、これに限定しない。例えば、T509のWrite−appが起動したタイミングでもよい。
また、本実施形態では接続している撮像装置100の機種の識別にモデルIDを用いる場合を例にあげて説明したが、これに限定しない。例えば、撮像装置100のMACアドレスや機種の名称を示す文字列など、撮像装置100の機種を特定できるものであれば他の情報を用いてもよい。
また、本実施形態では、通信機器200が撮像装置100の機種を識別する情報を撮像装置100から受信し、当該撮像装置100の機種と関連付けられたPUSH送信で送信される又は送信されないデータ形式を読み出す場合について説明した。これに限らず、通信機器200が、撮像装置100によりPUSH送信で送信される又は送信されないデータ形式そのものを撮像装置100から受信するようにしてもよい。
(第3の実施形態)
以下、本発明の第3の実施形態について図面を参照しながら説明する。本実施形態では、ユーザが通信機器200を操作してWrite−appを起動する。そして、ユーザが撮像装置100を操作して撮像装置100内に記憶される画像を通信機器200へ送信し、完了した後に他のアプリケーションを起動して連携する例について説明する。なお、本実施形態におけるアプリケーションの「起動」として、未起動のアプリケーションを起動させる場合と、バックグラウンドで起動中のアプリケーションをフォアグラウンドへ移動させてアクティブな状態にする場合がある。
(通信機器の処理手順)
図11、図12を参照しながら、本実施形態に係る通信機器200の処理手順について説明する。本実施形態では、ユーザが通信機器200を操作してWrite−appを起動する。そして、ユーザが撮像装置100を操作してPUSH送信を行い、送信処理の完了後に他のアプリケーションを起動して連携する処理について説明する。
なお、以下では説明を簡単にするため、T1101からT1108を接続フェーズ、T1109からT1117を画像保存フェーズ、T1118からT1124を連携開始フェーズというように、フェーズに分けて説明する。
まず、T1101からT1108の接続フェーズに関して説明する。
T1101では、通信機器200のCPU201が、ユーザの操作により、Write−appの起動要求を受け付ける。
続いて、T1102では、T1101における起動要求に応答して、CPU201がWrite−appを起動することにより処理を開始する。CPU201はWrite−appを起動すると、図12(a)に示すような画面を表示装置211に表示させる。
T1103では、ユーザが撮像装置100を操作することに応じて、撮像装置100が通信モードをONに設定すると、T1104において、撮像装置100はアクセスポイントとして起動する。
続いて、T1105では、ユーザが通信機器200を操作することに応答して、通信機器200は撮像装置100のアクセスポイントへ接続する。
T1106では、CPU201はWrite−appにおいて、OSから撮像装置100を検出したことの通知を受け、T1107において、撮像装置100へ接続要求を送信する。
T1108では、撮像装置100より通信機器200の認証が行われ、撮像装置100と通信機器200の接続が確立される。
以上が、接続フェーズである。
続いて、T1109からT1117の画像保存フェーズについて説明する。
T1109では、ユーザは撮像装置100を操作して、撮像装置100内の画像のうち、送信対象の画像を選択した上で、PUSH送信を指示する。撮像装置100は、ユーザの指示に応答して、PUSH送信の要求を通信機器200へ送信する。
T1110では、CPU201は、NETI/F209を介して、撮像装置100からPUSH送信要求を受信する。このPUSH送信要求には、T1109において撮像装置100上でユーザが選択した元画像に関する情報を示すリスト情報が含まれている。T1111では、CPU201はこのリスト情報を保存予定画像リストとして、Write−appから読み出し可能にしてRAM203に保存する。
撮像装置100からPUSH送信要求を受信すると、T1111において、CPU201はRAM203に記憶された保存予定画像リストに基づき撮影画像(元画像)に対応する属性情報の要求を、NETI/F209を介して撮像装置100へ送信する。本実施形態では、属性情報としてサムネイル画像の場合について説明するが、これに限らず、例えばファイル名などであってもよい。
また、元画像と属性情報それぞれのデータ形式は、同じ場合と異なる場合がある。例えば、元画像もサムネイル画像も同じJPEG形式の静止画ファイルのような場合や、元画像はMP4形式の動画ファイルで、属性情報は動画ファイルから抽出されたJPEG形式の静止画ファイルのような場合がある。本実施形態では、元画像のデータ形式がRead−appにより対応可能であるかどうかに関わらず、少なくとも元画像の属性情報のデータ形式はWrite−appにより対応可能である。
T1112では、CPU201はサムネイル画像と、各サムネイル画像に対応する元画像のデータ形式を示す情報を、NETI/F209を介して撮像装置100から受信し、HDD204に保存する。ここで、サムネイル画像は元画像に比べて低解像度であり、データサイズが小さい。
T1113では、HDD204に保存されたサムネイル画像を読みだして表示装置211に表示する。このとき、Write−appには図12(b)に示すGUIが表示される。図12(b)では、サムネイル画像が読み出される度に、順に画面に追加して表示装置211に表示される様子を示し、サムネイル画像と対応する元画像は、まだ撮像装置100から受信されていないため、プログレスバー1206は0%を示している。
T1114では、CPU201は、T521にてRAM203に記憶された保存予定画像リストに基づき元画像の要求をNETI/F209を介して撮像装置100へ送信する。
T1115では、CPU201は、T524で要求した元画像をNETI/F209を介して撮像装置100から受信する。ここで、元画像は撮像装置100がPUSH送信で送信するデータ形式であり、本実施形態ではJPEG形式であるとする。
元画像の受信が完了すると、T1116において、CPU201は、Write−appによる元画像の保存処理を行う。つまり、CPU201は、T1115で受信した元画像のファイルをHDD204等に保存し、T1117で、新たに保存した元画像に画像IDを付与する。画像IDは元画像の保存先のファイルパスと対応付けられるコードとして説明する。なお、画像IDは保存先のファイルパスであってもよい。
なお、T1114での元画像の要求から、T1115での元画像の受信処理、T1116での元画像の保存処理、T1117での元画像に対する画像IDの発行までの処理は、T1110にてRAM203に記憶された保存予定画像リストの枚数分繰り返される。この一連の画像保存処理を行っている間は、CPU201は、図12(b)に示す保存進捗画面を表示装置211に表示する。
以上が画像保存のフェーズである。
続いて、T1118からT1124の連携開始フェーズについて説明する。
T1111からT1117で説明したように、T1110にてRAM203に記憶された保存予定画像リストと対応するすべての元画像の保存処理が終了したら、CPU201は、図12(c)に示す保存完了画面を表示装置211に表示する。ユーザが閉じるボタン1202を押したことを検知すると、CPU201は後述する画像IDリストの生成処理を実行することなく、図12(a)の画面の表示に戻る。
一方、ユーザにより図12(c)に示す保存完了画面で他のアプリへ画像を共有するボタン1202が押されたことを検出すると、CPU201は、T1118の他のアプリケーションとの連携の指示を受け付け、以降の処理を行う。T1119において、CPU201は、画像IDリストの生成処理を行う。具体的には、まず、Write−appにおいて、T1115で保存しておいた元画像の画像IDと保存先とを関連付けた画像IDリストを生成し、OSから読み出し可能にしてHDD204に記憶する。これにより、後述するT1124においてRead−appはOSから画像IDリストを取得することができ、元画像を画像IDリストにしたがって取得してRead−appの処理に利用することができる。
T1120では、CPU201がデータ共有場所500を参照して、各Read−appが対応するデータ形式を示す形式リストを取得する。
T1121では、CPU201は表示装置211に図12(d)に示すような連携先リスト1203を表示する。このとき、T1120にて取得した各Read−appが対応するデータ形式の中で、撮像装置100がPUSH送信で送信しないデータ形式(本実施形態では一例としてRAW形式とする)に対応するRead−appを連携先リスト1203に表示しない。すなわち、連携先リスト1203には、撮像装置100がPUSH送信で送信するデータ形式だけに対応するアプリケーションが表示される。
T1122では、CPU201は、連携先リスト1203に対するユーザの操作に応答して、Read−appを選択する。T1123では、CPU201はT1122で選択されたRead−appに対して、OSによって起動要求を行って当該Read−appを起動させて連携する。
そして、T1124において、CPU201は、T529でWrite−appにより生成された画像IDリストをOSを介してRead−appにより受け取る。
その後、CPU201は、Read−appにおいて取得した画像IDリストに基づき、HDD204から元画像を取得し、Read−appの一覧表示画面に追加して表示する。
なお、本実施形態において、撮像装置100がPUSH送信で送信しないデータ形式としてRAW形式を例にあげて説明したが、これに限定しない。例えば、RAW形式の代わりにMP4などの動画のデータ形式であっても同様に適用することが可能である。また、本実施形態では、CPU201は撮像装置100がPUSH送信で送信しないデータ形式に対応可能なアプリケーションを連携先リストで非表示にするようにしたが、これに限定するものでなく、選択不可能な状態で表示するようにしてもよい。
(その他の実施形態)
なお、前述した各実施形態では、Write−appが、通信機器200が撮像装置100から画像を取り込むために使用するアプリケーションである例について説明したが、Write−appとしてそれ以外の用途のアプリケーションにも適用することができる。例えば、Write−appとして、データベースから画像を検索するアプリケーションや、撮影処理を行うアプリケーションを適用してもよい。また、前述した実施形態では、取り扱うデータを画像データとしたが、画像データに限らず、音声データなど他のデータであってもよい。
また、前述した実施形態では、通信機器200として通信機器を例に説明したが、アプリケーションをインストール可能な機器であれば、特に限定されない。例えば、通信機器200として、携帯電話、タブレット、パーソナルコンピュータ(PC)等であっても同様に適用できる。また、Read−appおよびWrite−appが、通信機能が不要なアプリケーションである場合には、必ずしも通信機能がなくてもよく、広く情報処理装置によって実施可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。