以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
(第1の実施形態)
本発明の第1の実施形態について図面を参照しながら説明する。本実施形態では、ユーザが情報処理装置である通信機器(スマートフォン)を操作して画像アップロード用アプリケーションを起動させて、更にこの画像アップロード用アプリケーションと連携してデータ取り込み用アプリケーションを起動させ、取り込んだデータを画像アップロード用アプリケーションでインターネット接続を通じて画像共有サービスへアップロードする例について説明する。なお、本実施形態におけるアプリケーションの「起動」として、未起動のアプリケーションを起動させる場合と、バックグラウンドで起動中のアプリケーションをフォアグラウンドへ移動させる場合がある。
(ネットワークの構成)
図1は、本実施形態に係る通信機器101を含むシステムの構成例を説明するための図である。
図1に示すように、通信機器101は、データ取り込み用アプリケーションを用いて撮像装置102と接続し、ネットワーク103を介して撮像装置102から画像を取り込むことができる。なお、撮像装置102との接続に用いられる通信は、有線通信であっても無線通信であってもよい。
(通信機器の構成)
図2は、本実施形態に係る通信機器101のハードウェア構成例を示すブロック図である。
図2において、CPU201は通信機器101全体の処理を制御する。ROM202には、CPU201が実行する各種制御プログラム、データ等が保存されている。RAM203は、CPU201のワーク領域、エラー処理時のデータの退避領域、制御プログラムのロード領域等を有する。HDD(ハードディスクドライブ)204は、OS(オペレーティングシステム)、各種アプリケーション、通信機器101内で実行される各制御プログラムやコンテンツ、データを格納する。
入力装置205は、電源のON/OFFを切り替えるためのボタンなど各種ボタンから構成されている。BMU(ビットムーブユニット)206は、例えば、メモリ間(例えば、VRAM207と他のメモリとの間)のデータ転送や、メモリと各I/Oデバイス(例えば、NETI/F209)との間のデータ転送を制御する。VRAM207には、表示装置211に表示するための画像データが描画される。VRAM207に描画された画像データは、所定の規定に従って表示装置211に転送され、これにより表示装置211に画像が表示される。また、表示装置211はタッチパネルを搭載しており、ユーザが表示装置211の表示面に触れることによって、その位置に表示されたアイコンに係る指示を入力する。NETI/F209は、撮像装置102等とネットワーク103を介して通信を行う。バス212は、アドレスバス、データバス及びコントロールバスを含む。
図3は、本実施形態に係る通信機器101のソフトウェア構成例を示す図である。
通信機器101には、所定のOS301が搭載されており、データ取込みアプリケーション(以下、Write−app)302と、画像編集アプリケーション(以下、Read−app)303とがインストールされている。通信機器101のCPU201は、OS301を起動して、通信機器101が行う基本的な処理を行うとともに、インストールされているアプリケーションの連携処理およびデータをHDD204等に記録する処理を行う。
また、通信機器101のCPU201は、Write−app302を起動して、例えば撮像装置102からNETI/F209を介して画像を取り込む処理を行う。また、通信機器101のCPU201は、Read−app303を起動して、前記取り込む処理後に取り込んだ画像に対して加工したり、画像の印刷を印刷装置に指示したりする処理を行う。ここで、Write−app302は入力用アプリケーションであり、出力用アプリケーションであると言うこともできる。
さらに、通信機器101のCPU201は、OS301のネットワーク接続処理を使用して、撮像装置102やプリンタ等のデバイスとネットワーク103を介して通信するためにWi−Fiネットワークの接続や切り替え、またインターネットを利用するためにインターネットに接続可能なWi−Fiネットワークへの接続や切り替え、およびセルラー通信によるモバイルデータネットワーク接続を可能とする。なお、通信機器101は複数のRead−app303をインストールすることが可能であり、本実施形態ではその中の1つを例にあげて説明する。
(撮像装置の構成)
図4(a)は、本実施形態の外部装置の一例である撮像装置102の構成例を示すブロック図である。なお、ここでは外部装置の一例として撮像装置について述べるが、外部装置はこれに限られない。例えば外部装置は携帯型のメディアプレーヤや、いわゆるタブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよい。
制御部401は、入力された信号や、後述のプログラムに従って撮像装置102の各部を制御する。なお、制御部401が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
撮像部402は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光(映像)を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子としては、一般的には、CMOS(Complementary Metal Oxide Semiconductor)や、CCD(Charge Coupled Device)が利用される。撮像部402は、制御部401に制御されることにより、撮像部402に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行って、デジタルデータを画像データとして出力する。本実施形態の撮像装置102では、画像データは、DCF(Design Rule for Camera File system)の規格に従って、記録媒体410に記録される。
不揮発性メモリ403は、電気的に消去・記録可能な不揮発性のメモリであり、制御部401で実行される後述のプログラム等が格納される。
作業用メモリ404は、撮像部402で撮像された画像データを一時的に保持するバッファメモリや、表示部406の画像表示用メモリ、制御部401の作業領域等として使用される。
操作部405は、ユーザが撮像装置102に対する指示をユーザから受け付けるために用いられる。操作部405は例えば、ユーザが撮像装置102の電源のON/OFFを指示するための電源ボタンや、撮影を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。さらに、後述の通信部411を介して外部機器との通信を開始するための専用の接続ボタンなどの操作部材を含む。また、後述する表示部406に形成されるタッチパネルも操作部405に含まれる。なお、レリーズスイッチは、SW1およびSW2を有する。レリーズスイッチが、いわゆる半押し状態となることにより、SW1がONとなる。これにより、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の撮影準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、SW2がONとなる。これにより、撮影を行うための指示を受け付ける。
表示部406は、撮影の際のビューファインダー画像の表示、撮影した画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部406は必ずしも撮像装置102が内蔵する必要はない。撮像装置102は内部又は外部の表示部406と接続することができ、表示部406の表示を制御する表示制御機能を少なくとも有していればよい。
記録媒体410は、撮像部402から出力された画像データを記録することができる。記録媒体410は、撮像装置102に着脱可能なよう構成してもよいし、撮像装置102に内蔵されていてもよい。すなわち、撮像装置102は少なくとも記録媒体410にアクセスする手段を有していればよい。
通信部411は、外部装置と接続するためのインターフェースである。本実施形態の撮像装置102は、通信部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通信と比べて消費電力が少ない。本実施形態の撮像装置102は、近接無線通信部412を介して、外部装置とデータのやりとりを行うことができる。例えば、撮像部402による撮像を、通信部411を介して外部装置からコントロールすることができる。ただし、通信速度が遅いため撮像部402で生成した画像データを送信することはしない。
なお、本実施形態における撮像装置102の通信部411は、インフラストラクチャモードにおけるアクセスポイントとして動作するAPモードと、インフラストラクチャモードにおけるクライアントとして動作するCLモードとを有している。
そして、通信部411をCLモードで動作させることにより、本実施形態における撮像装置102は、インフラストラクチャモードにおけるCL機器として動作することが可能である。撮像装置102がCL機器として動作する場合、周辺のAP機器に接続することで、AP機器が形成するネットワークに参加することが可能である。また、通信部411をAPモードで動作させることにより、本実施形態における撮像装置102は、APの一種ではあるが、より機能が限定された簡易的なAP(以下、簡易AP)として動作することも可能である。撮像装置102が簡易APとして動作すると、撮像装置102は自身でネットワークを形成する。撮像装置102の周辺の装置は、撮像装置102をAP機器と認識し、撮像装置102が形成したネットワークに参加することが可能となる。上記のように撮像装置102を動作させるためのプログラムは不揮発性メモリ403に保持されているものとする。
なお、本実施形態における撮像装置102はAPの一種であるものの、CL機器から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していない簡易APである。したがって、自機が形成したネットワークに参加している他の装置からデータを受信しても、それをインターネットなどのネットワークに転送することはしない。
次に、撮像装置102の外観について説明する。図4(b)、図4(c)は撮像装置102の外観の一例を示す図である。レリーズスイッチ405aや再生ボタン405b、方向キー405c、タッチパネル405dは、前述の操作部405に含まれる操作部材である。また、表示部406には、撮像部402による撮像の結果得られた画像が表示される。
また、本実施形態の撮像装置102は、カメラ筺体の側面に近接無線通信部412のアンテナ部分を有する。この近接無線通信部412同士を一定の距離に近づけることにより、他の機器と近接無線通信を確立することができる。これにより、ケーブル等を介さずに非接触で通信可能であると共に、ユーザの意図に沿って通信相手を限定することができる。
ここで、図5を参照しながら、本実施形態に係るWrite−App302を使用して通信機器101が撮像装置102からNETI/F209を介して画像データを取り込む処理を行った後にRead−app303を使用してインターネット接続で画像データをアップロードするケースにおける、ネットワーク接続の課題とその解決方法について、説明する。
図5(a)本発明が解決しようとする課題を説明する図である。501から503に情報機器101のWrite−App302とRead−app303の操作内容、また、511から512に情報機器101の接続するネットワークの状態を示す。
501ではRead−app303を操作してWrite−App302を起動する。Read−app303ではインターネットを使用する機能を設けているため、通信機器101のネットワーク状態としては511に示すとおりにインターネットを利用可能なネットワークに接続した状態である。
続いて502ではWrite−App302を操作して撮像装置102との接続操作を行い、画像データを取り込み、Read−app303へ画像データを渡すべく、Read−app303を呼び出す。このとき、通信機器101を撮像装置102に接続する際、撮像装置102はアクセスポイントとして動作するAPモードで接続する簡易AP接続、および、インフラストラクチャモードにおけるクライアントとして動作するCLモードで接続するインフラ接続、の2つの接続形態に対応している。どちらの接続方法で接続するかはユーザが選択できるが、簡易AP接続ではCL機器から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していないため、512に示すインターネットが利用できないネットワーク状態となる。この状態で、503においてWrite−App302に呼び出されたRead−app303は、画像データを受け取ってインターネット接続で画像データをアップロードしようとしても、このときの通信機器101のネットワーク状態512ではインターネットが利用できない状態となってしまう。ユーザがOS301を直接操作してインターネットを利用できるようにネットワーク状態を切り替えてれば良いのだが、非常にわずらわしい。
そこで、図5(b)に上記課題を解決する構成を示す。Read−app303からWrite−App302が呼出されて起動されたタイミングで通信機器101のネットワーク状態521をWrite−App302が記憶する。続けて502にてWrite−App302が簡易AP接続で撮像装置102に接続した場合、ネットワーク状態522はインターネット利用できないネットワークとなる。
この後、Write−App302で画像データを取り込んでRead−app303を呼び出すタイミングでインターネット利用可能なネットワーク521へ接続を切り替える。これにより503ではこのネットワーク521を利用してRead−app303は画像データを受け取ってインターネット接続で画像データをアップロードすることができる。
502にてWrite−App302が既に接続済みのネットワーク状態523を使用してインフラ接続で撮像装置102に接続した場合には、Write−App302で画像データを取り込んでRead−app303を呼び出すタイミングでネットワーク切り替えをせずとも、503ではこのネットワーク521を利用してRead−app303は受け取った画像データをインターネット接続でアップロードすることができる。
つまり、Write−App302が撮像装置102との接続に使用したネットワーク状態に応じて、Write−App302画像データを取り込んでRead−app303を呼び出すタイミングで、必要に応じて、情報機器101のネットワーク状態を切り替える必要がある。
(通信機器の処理手順)
次に、図6〜図8を参照しながら、本実施形態に係る通信機器101の処理手順について説明する。本実施形態では、まず通信機器101のCPU201がRead−appを起動し、Read−appによる処理を行う画面でユーザの指示を受け付けて、Write−appを呼び出す処理について説明する。
図6は、本実施形態において、通信機器101のCPU201がRead−appを起動してからWrite−appを起動させてWrite−appにより外部装置から画像を取得し、そして、取得された画像に対してRead−appによりインターネットで画像アップロード処理を行う処理手順を説明するためのシーケンス図である。なお、以下で説明する処理は通信機器101のCPU201がOS301、Write−app302やRead−app303を起動し、適宜、これらにしたがって動作し、各部を制御することにより実現される。
まず、ユーザの操作に応答して、通信機器101のCPU201がRead−appを起動することにより処理を開始する。CPU201はRead−appを起動すると、図8(a)に示すような画面を表示装置211に表示させる。
図8(a)に示す画面において、ユーザは、表示装置211のタッチパネルを介して実行したい編集処理を選択する。例えば、「写真を加工」が選択されると、表示装置211には、図8(b)に示す画面が表示され、「写真を印刷」が選択されると、表示装置211には、図8(c)に示す画面が表示される。また、「写真をアップロード」が選択されると、表示装置211には、図8(d)に示す画面が表示される。
図8(b)〜図8(d)に示す画面では、HDD204等に保存された画像から編集したい画像を選択することができる。一方、通信機器101が保持していない画像を編集したい場合は、「Write−appから写真を追加」を選択することにより、外部装置から画像を取り込むことができる。図6に示す処理は、この「Write−appから写真を追加」がユーザによって選択されることによって開始する。
図6のT1001では、CPU201はRead−appで要求IDを発行し、加えてインターネット利用フラグを指定する。T502では、CPU201はRead−appによるWrite−appの起動要求を受け入れ、T1001で発行された要求IDとインターネット利用フラグおよび起動要求とを関連付けてHDD204に記憶する。
ここで、要求IDは、選択された編集内容によって異なるIDが付与されるものである。例えば図8(b)〜図8(d)に示す画面のどの画面から「Write−appから写真を追加」が選択されたかによって要求IDが異なる。また、インターネット利用フラグは、受け取った画像データを使用するときにインターネット利用をするかどうかの有無を示す情報であり、ネットワーク状態を示す情報である。例えば図8(d)に示す画像データを画像共有サービスへアップロードするときには、インターネット利用「あり」のフラグを指定する。
次に、T503において、CPU201は、OSからWrite−appに対して起動要求を行ってWrite−appを起動させ、T1002でCPU201は、Write−appにおいて要求IDとインターネット利用フラグを受け付け記憶する。Write−appが起動する際には、Write−appは要求元のRead−appのIDを受け取るようにする。Read−appのIDは、通信機器101にインストールされたRead−app固有のIDであり、Read−appがインストールされる際にHDD204に記憶され、Write−appの起動要求を行う際にHDD204から読み出されて通知される。
続いてT505において、CPU201は、Write−appにてRead−appのIDの照合を行う。つまり、要求元のRead−appのIDがHDD204に記憶されたRead−appのIDと一致するか否かをWrite−appにて判定する。なお、CPU201はWrite−appにしたがって動作し、Write−appと連携可能なRead−appのIDを、Write−appから読み出し可能にしてHDD204に予め記憶している。そして、Read−appのIDがHDD204に記憶されたIDと一致しない場合は、T506において、CPU201は当該アプリからの要求を受け付けられない旨を示すメッセージを表示し、本処理を中止する。このようにすることにより、不明なアプリケーションにより誤ってWrite−appが起動されるのを防止することができる。
Read−appのIDがHDD204に記憶されたIDと一致した場合は、CPU201は、Write−appを起動する。これによって、Write−appの画面がフォアグラウンドに表示される。例えば、Write−appが未起動で、新たに起動された場合には、図7(a)に示すトップ画面661が表示される。また、Write−appが起動中で、バックグラウンドで例えば「ライブビュー撮影」機能を実行していた場合は、ライブビュー撮影用の画面が表示される。
そして、CPU201は、Write−appの状態を検出し、検出された状態に応じた処理を実行する。Write−appが連携NGの状態の場合は、T507において、CPU201は、Write−appによりエラーメッセージの表示処理を実行する。Write−appが連携OKの状態の場合は、T508において、CPU201は、Write−appを連携モードに切り替えてフォアグラウンドで動作させる。
本実施形態において連携NGの状態は、通信機器101において、Write−appが起動していて、特定の機能、例えば、ライブビュー撮影、カメラの時刻設定、リモコンのいずれかの機能を実行している状態である。ライブビュー撮影では、通信機器101はWi−Fi通信を介して撮像装置102と接続し、ライブビュー画像を撮像装置102から受信して、表示装置211に表示する。そして、ユーザの操作に応答して、撮影設定の変更、フォーカス枠の移動、レリーズなどの撮影処理に関する指示を撮像装置102へ送信する。撮像装置102は、通信機器101からの指示にしたがって撮影処理を実行する。
また、カメラの時刻設定では、通信機器101は、自機器に設定された時刻の情報を取得し、撮像装置102へ送信する。撮像装置102は、通信機器101からの時刻情報にしたがって時刻を設定する。また、リモコンでは、通信機器101はBluetooth通信を介して撮像装置102と接続し、レリーズの指示を撮像装置102へ送信する。撮像装置102は、通信機器からのレリーズ指示に応答して撮影処理を実行する。
そして、Write−appが連携NGの状態と検出された場合、T507において、CPU201は、Write−appにしたがって動作し、図7(c)に示すように、連携モードを開始できないことを示すエラーメッセージ663を表示装置211に表示させる。このことで、ユーザは、現在、一時的にWrite−appをRead−appから呼び出せない状態であり、Read−appの処理対象として、Write−appによって撮像装置102から取り込まれた画像を使用することができないことを知ることができる。
なお、Write−appが連携NGの状態であるとき、CPU201は、Write−appではなく、Read−appにしたがって動作し、エラーメッセージを表示装置211に表示する構成としてもよい。この場合、CPU201はWrite−appからOSを介してRead−appを呼び出し、連携NGの状態であることを通知する。これによって、CPU201はRead−appを起動してフォアグラウンドで実行させ、Read−appにしたがってエラーメッセージの表示処理を実行する。
一方、本実施形態において連携OKの状態は、通信機器101において、Write−appが起動していて、連携NGの状態とは異なる機能、例えば、トップメニュー画面の表示、接続ガイドの表示、カメラ内の画像一覧の表示等の機能を実行している状態である。さらに、Write−appが未起動のときも連携OKの状態である。接続ガイドの表示では、通信機器101は接続ガイドに関する表示データをHDD204から読み出して表示装置211に表示する。また、カメラ内の画像一覧の表示では、通信機器101は、撮像装置102の記録媒体410に記録されている撮影済みの画像と対応するサムネイル画像を撮像装置102から受信する。そして、受信されたサムネイル画像を通信機器101のHDD204に保存し、保存されたサムネイル画像をHDD204から読み出して表示装置211に表示する。図7(d)は、Write−appがカメラ内の画像一覧の表示を実行しているときに表示される画像一覧画面664である。
そして、Write−appが連携OKの状態と検出された場合、CPU201はWrite−appを連携モードに切り替えて動作する(T508)。Write−appが既に起動しており、バックグラウンドで動作している場合は、CPU201はWrite−appをフォアグラウンドでの動作に切り替えるとともに、連携モードで動作させる。また、Write−appが起動していなかった場合は、CPU201はWrite−appを起動し、連携モードにしてフォアグラウンドで動作させる。Write−appが連携モードで動作するとき、具体的には、Write−appが提供する機能のうち使用できる機能に制限がかけられ、UI表示にそれが反映される。図7(a)はWrite−appの通常モードのトップ画面661の表示例である。図7(b)はWrite−appの連携モードのトップ画面662の表示例である。通常モードでは、すべての機能を使用できるので、図7(a)のトップ画面661ではすべての機能が選択可能であり、そのことを示すように各機能のアイコンが表示される。一方、連携モード中は使用できる機能が制限されるため、図7(b)のトップ画面662では、使用できない一部の機能(ライブビュー撮影、カメラの時刻設定、リモコン)のアイコンが選択不可であり、実行不可を示すようにグレーアウトして表示される。また、図7(b)のトップ画面662では、通常モードと異なる連携モードであることを示すようにトップバー602の色を変えている。Write−appの連携モードでは、撮像装置102内の画像を取り込む操作を優先することを目的として、上述のような機能制限を行っている。
Read−appから呼び出された時、Write−appが「カメラ内の画像一覧」機能を実行していれば、T508においてCPU201はWrite−appを連携モードへ切替え、図7(e)の画像一覧画面665に切替えてフォアグラウンドに表示する。
また同時に、T1003で通信機器101のネットワーク状態を記憶する。本実施形態では、通信機器101のネットワーク状態として Wi−Fi ネットワーク接続の有無、Wi−Fi ネットワーク接続中の場合にはそのWi−Fiネットワークを識別可能とするSSID(ネットワーク識別情報)を記憶する。また、モバイルデータ通信の有効状態も合わせて記憶してもよい。T1004で通信機器101と撮像装置102との接続を確立する。このときに、ユーザの操作に応じて、撮像装置102がアクセスポイントとして動作するAPモードと、撮像装置102がクライアントとして動作するCLモードとのどちらでも接続することができる。接続が確立した時点で、T1005で通信機器101が撮像装置102との接続確立時のネットワーク状態として、インターネット接続の可否を確認して記憶する。つまり、T1003でRead−appでのネットワーク状態を記憶し、T1005でWrite−appでのネットワーク状態を記憶する。
CPU201は、Write−appの「カメラ内の画像一覧」機能を実行するとき、取り込み可能な撮像装置102内の本画像と対応するサムネイル画像を撮像装置102から受信する。そして、図7(e)に示すように、複数のサムネイル画像を並べた画像一覧画面665に表示している。ユーザはRead−appで使用するために、一覧表示された複数のサムネイル画像の中から所望のものを選択し、指示を入力する。CPU201は、選択されたサムネイル画像に関する情報を「保存予定画像リスト」として、Write−appから読み出し可能にしてRAM203に保存しておく。
T509において、CPU201はWrite−appにより、画像一覧画面665において、ユーザにより保存ボタン611を押下されたことを検知すると、撮像装置102に対して保存予定画像リストに基づき、本画像の取得要求を行う。そして、T510において、CPU201は、Write−appにより撮像装置102からNETI/F209を介して本画像のデータを受信する。ここで、サムネイル画像は本画像に比べて低解像度であり、データサイズが小さい。よって、「カメラ内の画像一覧」を表示する際には、撮像装置102から取り込み可能な本画像と対応するサムネイル画像を受信し、速やかに表示装置211に表示することができる。そして、撮像装置102から取り込み可能な本画像のうち、ユーザに選択された本画像だけを受信することで、通信負荷を軽減することができる。
本画像の受信が完了すると、次に、T511において、CPU201は、Write−appによる本画像の保存処理を行う。つまり、CPU201は、T510で受信した本画像のファイルをHDD204等に保存し、新たに保存した本画像に画像IDを付与する。画像IDは本画像の保存先のファイルパスと対応付けられるコードとして説明する。なお、画像IDは保存先のファイルパスそのものであってもよい。
なお、T509での画像の要求から、T510での画像の受信処理、T511での画像の保存処理、画像IDの発行までの処理は、ユーザに選択されたサムネイル画像と対応する本画像の枚数分繰り返される。この一連の画像保存処理を行っている間は、CPU201は、図7(f)に示す保存進捗画面666を表示装置211に表示する。
ユーザに選択されたサムネイル画像と対応するすべての本画像の保存処理が終了したら、CPU201は、図7(h)に示す保存完了画面668を表示装置211に表示する。ユーザが「閉じる」ボタン608を押したことを検知すると、CPU201は後述する画像IDリストの生成処理を実行することなく、図7(e)のカメラ内の画像一覧画面665の表示に戻る。これによって、今回、取り込まれた画像のRead−appとの共有を中止することができる。
一方、ユーザにより図7(h)の保存完了画面668で「Read−appに戻る」ボタン609が押されたことを検出すると、CPU201は、T1006の処理を開始する。
T1006においてCPU201は、T1002で要求IDと合わせて読み込んで記憶したRead−appのインターネット利用フラグと、T1005において記憶した撮像装置102との接続確立時のネットワークのインターネット可否とを比較する。T1002のインターネット利用フラグが「利用あり」でかつ、T1005のインターネット可否が「不可」である場合、T1006で撮像装置102とのネットワーク接続を切断する。T1007においてCPU201は、T1003で記憶した連携開始時のネットワーク状態に戻っているか判断し、戻っていなければ戻す処理を行う。
T512において、CPU201は、Write−appによる画像IDリストの生成処理を行う。具体的には、まず、Write−appにおいて、T511で保存しておいた画像の画像IDと保存先とを関連付けた画像IDリストを生成し、OSから読み出し可能にしてHDD204に記憶する。これにより、後述するT516においてRead−appは画像IDリストを、OSを介して受け取ることができ、Read−appの処理に利用することができる。よって、画像IDリストはRead−appの処理に利用可能なようにHDD204にWrite−appにより記憶されているといえる。そして、T513において、CPU201は、OSによって、Write−appからRead−appへの呼出し要求として、要求IDをWrite−appから受け付ける。ここで、要求IDは、T504でWrite−appが受け取ったものと同じである。
その後、T514において、CPU201は、Write−appに連携モードを解除させ、通常モードに切り替えて動作させる。具体的には、使用できる機能の制限を解除し、UI表示を通常モードの状態に戻すことである。
続いてT515において、CPU201は、OSからRead−appに対して起動要求を行ってRead−appを起動させる。このとき、Read−appが起動する際には、Read−appは、呼出し要求を行った要求元のWrite−appのIDを取得する。Write−appのIDは、通信機器101にインストールされたWrite−app固有のIDであり、Write−appがインストールされる際にHDD204に記憶されRead−appの呼出し要求を行う際にHDD204から読出されて通知される。
また、図5に示した例では、Read−appは、T502の処理を行った後も起動中であることから、T515の処理は、スリープ状態の解除、または起動中であることの確認処理として機能する。なお、Read−appはT502の処理を行った後に起動を一旦停止し、T515の起動要求に応答して、再起動するようにしてもよい。そして、T516において、CPU201は、Read−appにおいて、T512でWrite−appにより生成された画像IDリストと、応答としてT513で受け付けた要求IDとをOSを介して受け取る。
次に、T517において、CPU201は、Read−appにてWrite−appのIDの照合を行う。つまり、Write−appのIDがHDD204に記憶されたWrite−appのIDと一致するか否かをRead−appにて判定する。なお、CPU201はRead−appにしたがって動作し、Read−appと連携可能なWrite−appのIDを、Read−appから読み出し可能にしてHDD204に予め記憶している。そして、Write−appのIDがHDD204に記憶されたIDと一致しない場合は、T518において、CPU201は、Read−appからOSに対してエラーを通知させ、Read−appの起動を中止する。このようにすることにより、不明なアプリケーションにより誤ってRead−appが起動されるのを防止することができる。
一方、Write−appのIDがHDD204に記憶されたIDと一致した場合は、T519において、CPU201は、T516で取得した要求IDと対応する画面を表示する。例えば、T1001でRead−appから要求IDを通知したときに表示されていたのと同じ画面を表示装置211に表示する。そして、CPU201は、Read−appにおいて取得した画像IDリストに基づき、HDD204から画像を取得し、一覧表示に追加する。例えば、図8(b)に示す画面で「Write−appから写真を追加」を選択した場合は、図8(b)に示す画面を表示して、画面の左側の画像の一覧表示に新たな画像を追加する。
そして、T520において、CPU201は、Read−appにてユーザが選択した編集処理を、T519で取得された画像に対して行い、編集結果をOSにしたがってHDD204に保存し、処理を終了する。
(第2の実施形態)
以下、本発明の第2の実施形態について図面を参照しながら説明する。本実施形態では、ユーザが情報処理装置である通信機器(スマートフォン)を操作して画像印刷用アプリケーションを起動させて、データ取り込み用アプリケーションを起動させ、取り込んだデータを画像印刷用アプリケーションでネットワーク上のプリンタに接続して印刷する例について説明する。
第1の実施形態と基本構成は同じであるため、図1に示すネットワークの構成、図2・3に示す通信機器101の構成、図4に示す撮像装置102の構成、および、図7・8に示すWrite−appとRead−appの表示画面の表示画面を用いて説明する。
図9を参照しながら、本実施形態に係るWrite−App302を使用して通信機器101が撮像装置102からNETI/F209を介して画像データを取り込む処理を行った後にRead−app303を使用してネットワーク上のプリンタで画像データを印刷するケースにおける、ネットワーク接続の課題とその解決方法について、説明する。
図9(a)は本発明が解決しようとする課題を説明する図である。901から903に情報機器101のWrite−App302とRead−app303の操作内容、また、911から912に情報機器101の接続するネットワークの状態を示す。901ではRead−app303を操作してWrite−App302を起動する。Read−app303ではプリンタを使用する印刷機能を設けているため、通信機器101のネットワーク状態としては911に示すとおりにネットワーク上のプリンタへの接続や接続状態の確認をすることができる。
続いて902ではWrite−App302を操作して撮像装置102との接続操作を行い、画像データを取り込み、Read−app303へ画像データを渡すべく、Read−app303を呼び出す。このとき、第1の実施形態と同じく。通信機器101を撮像装置102に接続する際、撮像装置102はアクセスポイントとして動作するAPモードで接続する簡易AP接続、および、インフラストラクチャモードにおけるクライアントとして動作するCLモードで接続するインフラ接続、の2つの接続形態に対応している。どちらの接続方法で接続するかはユーザが選択できるが、簡易AP接続では動的に撮像装置102に接続するときにのみ作成されるネットワークであるため、定常的にプリンタが接続していることのできるネットワークではない。この状態で、903においてWrite−App302に呼び出されたRead−app303は、画像データを受け取ってプリンタで画像印刷をしようとしても、このときの通信機器101のネットワーク状態912ではプリンタが利用できない状態となってしまう。ユーザがOS301を直接操作してプリンタ接続できるようにネットワーク状態を切り替えてれば良いのだが、非常にわずらわしい。
そこで、図9(b)に上記課題の解決する構成を示す。Read−app303からWrite−App302が起動されたタイミングで通信機器101のネットワーク状態921をWrite−App302が記憶する。続けて902にてWrite−App302が簡易AP接続や別のネットワークに切り替えて撮像装置102に接続した場合、ネットワーク状態922はプリンタの利用できないネットワークとなる。この後、Write−App302画像データを取り込んでRead−app303を呼び出すタイミングでプリンタ接続していたものと同じネットワーク921へ接続を切り替える。これにより903ではこのネットワーク921を利用してRead−app303は受け取った画像データをプリンタで印刷することができる。
902にてWrite−App302が既に接続済みのネットワーク状態921を使用してインフラ接続で撮像装置102に接続した場合には、Write−App302画像データを取り込んでRead−app303を呼び出すタイミングでネットワーク切り替えをせずとも903ではこのネットワーク921を利用してRead−app303は受け取った画像データをプリンタで印刷することができる。つまり、Write−App302が撮像装置102との接続に使用したネットワーク状態に応じて、Write−App302画像データを取り込んでRead−app303を呼び出すタイミングで、必要に応じて、情報機器101のネットワーク状態を切り替える必要がある。
(通信機器の処理手順)
次に、図10および図7〜8を参照しながら、本実施形態に係る通信機器101の処理手順について説明する。本実施形態では、まず通信機器101のCPU201がRead−appを起動し、Read−appによる処理を行う画面でユーザの指示を受け付けて、Write−appを呼び出す処理について説明する。
図10は、本実施形態において、通信機器101のCPU201がRead−appを起動してからWrite−appを起動させてWrite−appにより外部装置から画像を取得し、そして、取得された画像に対してRead−appによりネットワーク上のプリンタで印刷処理を行う処理手順を説明するためのシーケンス図である。なお、以下で説明する処理は通信機器101のCPU201がOS301、Write−app302やRead−app303を起動し、適宜、これらにしたがって動作し、各部を制御することにより実現される。
まず、ユーザの操作に応答して、通信機器101のCPU201がRead−appを起動することにより処理を開始する。CPU201はRead−appを起動すると、図8(a)に示すような画面を表示装置211に表示させる。図8(a)に示す画面において、ユーザは、表示装置211のタッチパネルを介して実行したい編集処理を選択する。
本実施形態では、「写真を印刷」を選択して表示装置211には、図8(c)に示す画面が表示した場合について説明する。通信機器101が保持していない画像を編集したい場合は、「Write−appから写真を追加」を選択することにより、外部装置から画像を取り込むことができる。図6に示す処理は、この「Write−appから写真を追加」がユーザによって選択されることによって開始する。
図6のT1101は、CPU201はRead−appで要求IDを発行し、加えてWi−Fiデバイス接続中フラグを指定する。T502では、CPU201はRead−appによるWrite−appの起動要求を受け入れ、T1101で発行された要求IDとWi−Fiデバイス接続中フラグおよび起動要求とを関連付けてHDD204に記憶する。ここで、要求IDは、選択された編集内容によって異なるIDが付与されるものである。例えば図8(b)〜図8(d)に示す画面のどの画面から「Write−appから写真を追加」が選択されたかによって要求IDが異なる。また、Wi−Fiデバイス接続中フラグは、Read−appが受け取った画像データを使用するときに使用するプリンタなどのWi−Fiデバイスが接続中かどうかの有無を示す情報である。例えば図8(c)に示すように既にネットワーク上にあるプリンタを検出して印刷可能な状態であることが確認できている場合には、接続中Wi−Fiデバイス「あり」のフラグを指定する。
次に、T503において、CPU201は、OSからWrite−appに対して起動要求を行ってWrite−appを起動させ、T1102において、CPU201は、Write−appにおいて要求IDとWi−Fiデバイス接続中フラグを受け付け記憶する。Write−appが起動する際には、Write−appは要求元のRead−appのIDを受け取るようにする。Read−appのIDは、通信機器101にインストールされたRead−app固有のIDであり、Read−appがインストールされる際にHDD204に記憶され、Write−appの起動要求を行う際にHDD204から読み出されて通知される。
続いてT505において、CPU201は、Write−appにてRead−appのIDの照合を行う。つまり、要求元のRead−appのIDがHDD204に記憶されたRead−appのIDと一致するか否かをWrite−appにて判定する。なお、CPU201はWrite−appにしたがって動作し、Write−appと連携可能なRead−appのIDを、Write−appから読み出し可能にしてHDD204に予め記憶している。そして、エラー処理のT506とT507、および連携NGの場合の動作は第1の実施形態と同じであるため説明を省略する。
Read−appから呼び出された時、Write−appが「カメラ内の画像一覧」機能を実行していれば、T508においてCPU201はWrite−appを連携モードへ切替え、図7(e)の画像一覧画面665に切替えてフォアグラウンドに表示する。
また同時に、T1103で通信機器101のネットワーク状態(ネットワーク情報)を記憶する。本実施形態では、通信機器101のネットワーク状態としてWi−Fiネットワーク接続の有無、Wi−Fiネットワーク接続中の場合にはそのWi−Fiネットワークを識別可能とするSSIDを記憶する。T1104で通信機器101と撮像装置102との接続を確立する。このときに、ユーザの操作に応じて、撮像装置102がアクセスポイントとして動作するAPモードと、撮像装置102がクライアントとして動作するCLモードとのどちらでも接続することができる。接続が確立した時点で、T1005で通信機器101が撮像装置102との接続確立時のネットワーク状態として、そのWi−Fiネットワークを識別可能とするSSID(ネットワーク識別情報)を記憶する。
CPU201が、Write−appの「カメラ内の画像一覧」機能を実行して、取り込み可能な撮像装置102内の本画像と対応するサムネイル画像を撮像装置102から受信して表示したり、本画像の保存処理をしたりする処理は第1の実施形態と同じため割愛する。
ユーザに選択されたサムネイル画像と対応するすべての本画像の保存処理が終了したら、CPU201は、図7(h)に示す保存完了画面668を表示装置211に表示する。ユーザにより図7(h)の保存完了画面668で「Read−appに戻る」ボタン609が押されたことを検出すると、CPU201は、T1106の処理を開始する。
T1106においてCPU201は、T1102で要求IDと合わせて読み込んで記憶したRead−appのWi−Fiデバイス接続中フラグと、T11103において記憶した連携開始時のネットワーク状態、および、撮像装置102との接続確立時のネットワーク状態とを確認する。
T1102のWi−Fiデバイス接続中フラグが「接続中デバイスあり」であった場合は、T1003の連携開始時のSSIDとT1105の撮像装置102との接続確立時のSSID(ネットワーク識別情報)が異なっているかを確認する。異なっている場合には、T1106で撮像装置102とのネットワーク接続を切断する。T1107においてCPU201は、T1103で記憶した連携開始時のネットワーク状態に戻っているか判断し、戻っていなければ戻す処理を行う。なお、SSIDが同じである場合は、ネットワーク状態を戻すように切り替えを行わない。
この後、CPU201は、Write−appによる画像IDリストを生成してRead−appを起動して画像を渡す処理は第1の実施形態と同じ処理であるため割愛する。
(他の実施形態)
前述した実施形態では、通信機器101としてスマートフォンを例に説明したが、アプリケーションをインストール可能な機器であれば、特に限定されない。例えば、通信機器101として、携帯電話、タブレット、パーソナルコンピュータ(PC)等であっても同様に適用できる。また、Read−appおよびWrite−appが、通信機能が不要なアプリケーションである場合には、必ずしも通信機能がなくてもよく、広く情報処理装置によって実施可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。