以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
(第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は複数の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〜図8を参照しながら、本実施形態に係る通信機器101の処理手順について説明する。本実施形態では、通信機器101のCPU201がRead−appを起動し、Read−appによる処理を行う画面でユーザの指示を受け付けて、Write−appを呼び出す処理について説明する。
図5は、本実施形態において、通信機器101のCPU201がRead−appを起動してからWrite−appを起動させて、外部装置から画像を取得し、画像編集処理のために取得された画像をRead−appに渡す処理手順を説明するためのシーケンス図である。なお、以下で説明する処理は通信機器101のCPU201がOS301、Write−app302やRead−app303を起動し、適宜、これらにしたがって動作し、各部を制御することにより実現される。
なお、以下では説明を簡単にするため、T501からT509を連携開始フェーズ、T510からT516を接続フェーズ、T517からT527を画像保存フェーズ、T528からT531を連携終了フェーズというように、フェーズに分けて説明する。
まず、T501からT509の連携開始フェーズに関して説明する。
T501では、通信機器101の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等に保存された画像から編集したい画像を選択することができる。一方、通信機器101が保持していない画像を編集したい場合は、「Write−appから写真を追加」ボタン702を選択することにより、外部装置から画像を取り込むことができる。図5に示す処理では、「Write−appから写真を追加」ボタン702がユーザによって選択されることによって、Read−appからWrite−appの起動を要求し、外部装置からの画像の取り込み処理が実行される。なお、これらの処理の詳細についてはT506以降で後述する。
図5のT503では、CPU201がデータ共有場所500を参照して、Read−appの処理に適したデータ形式およびサイズを組み合わせて保持するリスト(以下、画像タイプリスト)が存在するかどうかを判定する。また、Read−appの画像タイプリストが存在する場合、共有場所500に格納されているRead−appの画像タイプリストと、Read−appに設定されている、処理に適したデータ形式およびサイズを示す情報を比較して、変更があるかどうか判定する。なお、Read−appに設定されているデータ形式およびサイズを示す情報は、Read−appがインストールされた時にHDD204に記憶されるだけでなく、Read−appのバージョンアップ時などにインターネット等を介して外部から受信されて更新される。なお、適したデータ形式およびサイズは、ユーザの意向を反映できるよう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/image_type)を記憶しており、各連携アプリケーションは起動した際にそのファイルパス先の画像タイプリスト602のファイルを参照する。そして、各連携アプリケーションに設定された最新の適したデータ形式およびサイズと比較し、差異があれば、変更があると判定する。
以上がデータ共有場所500に関する説明である。
続いて、画像タイプリストに関して図6(b)を用いて説明する。図6(b)は画像タイプリスト602の例を示している。画像タイプリストは、アプリケーションID651、適したデータ形式およびサイズの組の配列652、アプリケーション名称656から構成される。アプリケーションID651は、アプリケーションが通信機器101にインストールされた際にHDD204に記録されるアプリケーション固有のIDである。アプリケーション名称656は、アプリケーションの名称を示す文字列である。画像タイプリストにおいては、アプリケーションに適したデータ形式とサイズは組み合わせで表現される。例えば、アプリケーションIDが0x41であるアプリケーション653に適したデータ形式およびサイズの組は、大きいサイズのRAW、および、小さいサイズのJEPGであることを示している。ここで本実施例では、図6(b)に示すように、サイズとしてはLarge(大きいサイズ)、Small(小さいサイズ)、Anything(いずれのサイズも許容する)のうちいずれかを指定するものとしている。以上が画像タイプリストに関する説明である。
なお、本実施例では、画像タイプリストは各アプリケーション(例えばRead−app)に”適した”データ形式およびサイズの組を示す場合について説明したが、各アプリケーションに”適していない”データ形式およびサイズの組を示すようにしてもよい。例えば、各アプリケーションが対応しないデータ形式やサイズの組を”適していない”画像タイプとしてリストに示してもよい。
また、本実施例では、サイズとして3段階の値(Large、Small、Anything)のうちいずれかを設定するものとしたが、縦または横のピクセルサイズや辺の長さを具体的な数値で指定するようにしてもよい。
また、通信機器101はRead−appにしたがって動作するとき、HDD204に記憶されたデータのうち、画像タイプが示す条件を満たさないデータを処理対象とせず、HDD204から読み出すことをしない。また、HDD204から画像タイプが示す条件を満たさないデータを処理対象とするような指示を受けた時、警告を示すメッセージを表示装置211に表示するようにしてもよい。
再び図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では撮像装置102内の画像を取り込む操作を優先することを目的とするため、図8(a)に示すように、カメラと接続するためのガイド機能と、カメラ内の画像一覧機能のみに制限される。一方、ユーザが単にWrite−appを起動するような通常モードでの起動では、図8(a)に示すすべての機能が利用可能となり、それに合わせたUI表示となる。なお、解除ボタン802をユーザが押下することが検知されると、CPU201はWrite−appの連携モードを解除し、通常モードの動作へ遷移させる。
以上が連携開始フェーズである。
続いて、T510からT516の接続フェーズに関して説明する。
T510では、ユーザが撮像装置102を操作することに応じて、撮像装置102が通信モードをONに設定すると、T511において、撮像装置102はアクセスポイントの機能を起動する。
続いて、T512では、ユーザが通信機器101を操作することに応答して、通信機器101は撮像装置102のアクセスポイントへ接続する。
T513では、CPU201はWrite−appにおいて、OSから撮像装置102を検出したことの通知を受け、T514において、撮像装置102へ接続要求を送信する。
T515では、撮像装置102より通信機器101の認証が行われ、撮像装置102と通信機器101の接続が確立される。
T516では、CPU201は、T508において取得したRead−appのアプリケーションIDをRAM203から読み出し、そのアプリケーションIDを元に、データ共有場所500の画像タイプリストを参照する。CPU201はRead−appに該当する適したデータ形式およびサイズの組(以下、画像タイプと称する場合がある)を画像タイプリストから取得しRAM203へ記憶する。
以上が、接続フェーズである。なお、T516の処理は撮像装置102との接続が完了したタイミングに行われる場合について説明したが、これに限定しない。例えば、T509のWrite−appが起動したタイミングでもよいし、後述するT520の描画更新を行うタイミングでもよい。
続いて、T517からT527の画像保存フェーズについて説明する。
T517では、CPU201は、図8(a)におけるカメラ内の画像一覧ボタン803を押下することを検出する。
T518では、CPU201は、T517のボタン押下イベントを受けて、撮像装置102の記録媒体410に記録されている撮影画像(元画像または元データ)に対応する属性情報の要求を、NETI/F209を介して撮像装置102へ送信する。本実施形態では、属性情報としてサムネイル画像の場合について説明するが、これに限らず、例えばファイル名などであってもよい。
また、元画像と属性情報それぞれのデータ形式は、同じ場合と異なる場合がある。例えば、元画像もサムネイル画像も同じJPEG形式の静止画ファイルのような場合や、元画像はMP4形式の動画ファイルで、属性情報は動画ファイルから抽出されたJPEG形式の静止画ファイルのような場合がある。本実施形態では、元画像のデータ形式がRead−appにより対応可能であるかどうかに関わらず、少なくとも元画像の属性情報(サムネイル画像)のデータ形式はWrite−appにより対応可能である。
T519では、CPU201はサムネイル画像と、各サムネイル画像に対応する元画像から提供可能なデータ形式を示す情報を、NETI/F209を介して撮像装置102から受信し、HDD204に保存する。例えば、サムネイル画像がJPEG形式であっても、対応する元画像のデータ形式がRAW形式の場合には、撮像装置102の制御部401は、元画像であるRAW形式のデータをそのまま通信機器101に送ることが可能である。一方、元画像をRAW形式からJPEG形式に変換処理し、通信機器101に送ることもできる。この際、制御部401は、RAWおよびJPEGを、元画像から提供可能なデータ形式として通信機器101に通知する。なお、本実施例においては、撮像装置102は元画像のデータ形式によらずサイズ変換を行うことが可能として説明を行うが、これに限定されるものではない。例えば、撮像装置102が、元画像から提供可能なサイズの情報も通信機器101に送るようにしてもよい。このとき、元画像から提供可能なデータ形式とサイズとを組にして、通信機器101に送るようにしてもよい。
T520では、HDD204に保存されたサムネイル画像を読みだして表示装置211に表示する。このとき、Write−appには図8(b)に示すUIが表示される。
なお、T518からT520は表示装置211の描画領域に表示されるサムネイル画像に対して繰り返して実行される。つまり、ユーザによって表示範囲を上下にスクロールして移動される度に、新規に描画されるサムネイル画像に対してT518からT520が繰り返し実行される。
T521では、CPU201は、図8(b)における選択ボタン804をユーザが押下することを検知する。
T522では、CPU201はWrite−appを選択モードの動作へ遷移させ、画面の表示を更新する。このときWrite−appには図8(c)に示すように、複数のサムネイル画像を並べたサムネイル画像一覧画面が表示される。
なお、このとき、撮像装置102が元画像からRead−appに適したデータ形式の画像を提供できない場合に、そのことを識別可能にして対応するサムネイル画像を表示するようにしてもよい。この際、CPU201は、T516においてRAM203へ記憶していたRead−appの画像タイプリストのデータ形式を参照し、T519で受信した各サムネイル画像に対応する元画像から提供可能なデータ形式と照合する。照合した結果、Read−appに適したデータ形式で提供できない元画像と対応するサムネイル画像について、CPU201は、図8(c)に示すように斜線805を重畳して表示するよう制御する。これによって、元画像のデータ形式がRead−appにより対応可能かどうかを識別可能にして各サムネイル画像が表示される。
ここで、斜線805が重畳されたサムネイル画像がユーザにより選択された場合は、図8(d)に示すように、CPU201は、選択画像についてRead−appでは対応していない旨を示す警告ダイアログ808を表示する。そして、選択されたサムネイル画像に関する情報は保存予定画像リストには追加しない。
一方、ユーザがRead−appに適したデータ形式で提供可能な元画像のサムネイル画像を選択した場合は、図8(c)に示すように、CPU201は、選択済みであることを示すチェックマーク806をサムネイル画像上に表示するよう制御する。そして、CPU201は、T516においてRAM203へ記憶していたRead−appの画像タイプリストに含まれるデータ形式を、T519で受信した各サムネイル画像に対応する元画像から提供可能なデータ形式と照合し、どのデータ形式およびサイズで保存すべきかを決定する。そして、CPU201は選択されたサムネイル画像に関する情報と、保存すべきデータ形式およびサイズ(画像タイプ)とを紐づけて保存予定画像リストに追加して、Write−appから読み出し可能にしてRAM203に保存する。
例えば、Read−appが図6(b)内のアプリケーション653であると、JPEG形式を提供可能な元画像と対応するサムネイル画像が選択された場合は、CPU201は、JPEG形式のSmallサイズで保存することを決定し、サムネイル画像に関する情報と紐付けて、保存予定画像リストに追加する。
ここで、サムネイル画像がユーザに選択された際に、撮像装置102が元画像からRead−appに適した複数のデータ形式で画像が提供できる場合には、ユーザがいずれかのデータ形式を選択できるようにする。このとき、CPU201は、T516においてRAM203へ記憶していたRead−appの画像タイプリストに含まれるデータ形式を参照し、T519で受信した各サムネイル画像に対応する元画像から提供可能なデータ形式と比較する。照合した結果、Read−appに適した複数のデータ形式で保存できる場合は、図8(e)に示すように、いずれのデータ形式で保存するかをユーザに選択させる旨の形式選択ダイアログ809を表示する。
例えば、Read−appを図6(b)のアプリケーション653であるとすると、Read−appに適するデータ形式はRAW形式およびJPEG形式である。一方、Write−appにおいて、元画像がRAW形式であるサムネイル画像が選択されると、撮像装置102からはRAW形式、JPEG形式いずれでも画像データを提供可能である。このときに、CPU201は、図8(e)に示す形式選択ダイアログ809を表示する。形式選択ダイアログ809において元画像を保存するデータ形式が決定されると、CPU201は、T516においてRAM203へ記憶していたRead−appの画像タイプリストのデータ形式を、決定されたデータ形式と照合し、保存すべき画像タイプを確定させる。そして、CPU201は選択されたサムネイル画像に関する情報と、保存すべき画像タイプとを紐づけて保存予定画像リストに追加して、Write−appから読み出し可能にしてRAM203に保存する。
また同様に、サムネイル画像がユーザに選択された際に、元画像からRead−appに適するデータ形式で元画像が提供可能で、かつ、Read−appがそのデータ形式において複数のサイズを許容する場合には、ユーザがいずれかのサイズを選択できるようにしてもよい。このとき、CPU201は、T516においてRAM203へ記憶していたRead−appの画像タイプリストに含まれるデータ形式を参照し、T519で受信した各サムネイル画像に対応する元画像から提供可能なデータ形式と比較する。照合した結果、Read−appに適したデータ形式で提供可能であると判断した場合は、画像タイプリスト内で、そのデータ形式に対応するサイズを確認する。そして、複数のサイズが許容されると判断した場合に、図8(f)に示すように、いずれのサイズで保存するかをユーザに選択させる旨のサイズ選択ダイアログ810を表示する。
例えば、Read−appを図6(b)のアプリケーションIDが0x9Fであるアプリケーション655であるとすると、Read−appに適した画像はJPEG形式でサイズがAnything(いずれのサイズも許容する)である。このとき、Write−appにおいて、元画像がJPEG形式であるサムネイル画像が選択されると、CPU201は、図8(f)に示すサイズ選択ダイアログ810を表示する。
サイズ選択ダイアログ810において画像を保存するサイズがユーザにより決定されると、CPU201は、選択されたサムネイル画像に関する情報と、保存すべき画像タイプとを紐づけて保存予定画像リストに追加して、Write−appから読み出し可能にしてRAM203に保存する。なお、図8(e)に示す形式選択ダイアログおよび図8(f)に示すサイズ選択ダイアログは独立して表示させるものとしたが、データ形式およびサイズを一画面にて選択できるようにしてもよい。
CPU201はT523で、ユーザが図8(c)に示す保存開始ボタン807を押下したことを検出すると、T524では、CPU201は、RAM203に記憶された保存予定画像リストに基づき、適したデータ形式およびサイズの条件を満たす元画像を送信するためのデータ要求をNETI/F209を介して撮像装置102へ送信する。
また、このとき、CPU201は図8(c)の画面から図9(a)に示すような画面へ表示を切り替えるよう制御する。
T525では、撮像装置102は必要に応じて元画像に変換処理を施す。撮像装置102は例えば、T524において、RAW形式を持つ元画像に対してJEPG形式の画像を要求された場合は、RAW形式を持つ元画像の画像ファイルからJEPG画像を抽出し、当該JEPG画像を含む画像ファイルを取得する処理を行う。さらに、撮像装置102は例えば、T524において、JPEG画像をSmallサイズで要求された場合には、抽出されたJPEG画像を既定のSmallサイズ(例えば640x480に収まるサイズ)にリサイズする処理も行う。
T526では、CPU201は、T524で要求した適したデータ形式およびサイズの画像をNETI/F209を介して撮像装置102から受信する。ここで、サムネイル画像は元画像や画像から提供可能なデータ形式およびサイズの画像に比べて低解像度であり、データサイズが小さい。よって、「カメラ内の画像一覧」を表示する際には、撮像装置102からサムネイル画像を受信し、速やかに表示装置211に表示することができる。そして、サムネイル画像に比べてデータサイズの大きな適したデータ形式およびサイズの画像を撮像装置102から取り込む際には、ユーザに選択されたサムネイル画像に対応する元画像だけについて、Read−appに適したデータ形式かつサイズで送信するよう要求するようにした。これによって、必要な元画像だけについて、さらに、Read−appに適したデータ形式およびサイズの画像だけを受信することができ、通信負荷を軽減することができる。
Read−appに適したデータ形式およびサイズの画像の受信が完了すると、T527において、CPU201は、Write−appによる画像の保存処理を行う。つまり、CPU201は、T526で受信した適したデータ形式およびサイズの画像のファイルをHDD204等に保存し、T528で、新たに保存した画像に画像IDを付与する。画像IDはT527の処理における保存先のファイルパスと対応付けられるコードとして説明する。なお、画像IDは保存先のファイルパスであってもよい。
なお、T524での適したデータ形式およびサイズの画像の要求から、T525での元画像の変換処理、T526での画像の受信処理、T527での画像の保存処理、T528での適したデータ形式およびサイズの画像に対する画像IDの発行までの処理は、ユーザに選択されたサムネイル画像の枚数分繰り返される。この一連の画像保存処理を行っている間は、CPU201は、図9(a)に示す保存進捗画面を表示装置211に表示する。
以上が画像保存のフェーズである。なお、本実施例ではT522においてRead−appに適したデータ形式で撮像装置102が提供できない元画像に関しては、サムネイル画像の近傍に斜線のような所定のマークを表示する場合について説明したが、これに限定しない。例えば、選択モードのサムネイル一覧画面において、適したデータ形式で提供できない元画像と対応するサムネイル画像は、非表示にしてもよい。あるいは、逆に、Read−appが対応するデータ形式の元画像のサムネイル画像の近傍にマークを表示するようにしてもよい。
続いて、T529からT532の連携終了フェーズについて説明する。
T524からT528で説明したように、ユーザに選択されたサムネイル画像と対応するすべての画像の保存処理が終了したら、CPU201は、図9(b)に示す保存完了画面を表示装置211に表示する。ユーザが閉じるボタン901を押したことを検知すると、CPU201は後述する画像IDリストの生成処理を実行することなく、図8(b)のカメラ内の画像一覧画面の表示に戻る。これによって、今回、取り込まれた元画像のRead−appとの共有を中止することができる。
一方、ユーザにより図9(a)に示す保存完了画面でRead−appに戻るボタン902が押されたことを検出すると、CPU201は、T529の処理を開始する。T529において、CPU201は、画像IDリストの生成処理を行う。具体的には、まず、Write−appにおいて、T528で保存しておいた適したデータ形式およびサイズの画像の画像IDと保存先とを関連付けた画像IDリストを生成し、OSから読み出し可能にしてHDD204に記憶する。これにより、後述するT532においてRead−appはOSから画像IDリストを取得することができ、元画像を画像IDリストにしたがって取得してRead−appの処理に利用することができる。
T530では、CPU201はWrite−appによるRead−appの起動要求をOSへ送信する。また、CPU201は、このタイミングでWrite−appに連携モードを解除させ、通常モードに切り替えて動作させる。具体的には、CPU201は使用できる機能の制限を解除し、図8(a)で制限されていた機能を選択可能な表示に更新して通常モードの状態に戻す。
続いてT531において、CPU201は、OSからRead−appに対して起動要求を行ってRead−appを起動させる。また、図5に示した例では、Read−appは、T507の処理を行った後もバックグラウンドで起動中であることから、T530の処理では、CPU201はRead−appをフォアグラウンドでの動作に切り替える。なお、T507の処理を行った後にCPU201はRead−appの起動を一旦停止し、T530の起動要求に応答して、Read−appを再起動するようにしてもよい。
そして、T532において、CPU201は、Read−appにより、T528でWrite−appにより生成された画像IDリストをOSを介して受け取る。
CPU201は、Read−appにおいて取得した画像IDリストに基づき、HDD204から適したデータ形式およびサイズの画像を取得し、Read−appの一覧表示画面に追加して表示する。例えば、図7(b)に示す画面で「Write−appから写真を追加」を選択してWrite−appと連携した場合は、画像の一覧表示領域701に新たな画像として、Write−appにより撮像装置102から取得された適したデータ形式およびサイズの画像と対応するサムネイル画像が追加して表示される。
以上のように、本実施形態によれば、Read−appから連携されたWrite−appにおいて、撮像装置102内の画像を取り込む際に、Read−appに適するデータ形式およびサイズにて元画像を受信し、保存を行うようにした。
例えば、Read−appに適さないデータ形式の元画像に関しては、Write−appで撮像装置102内の元画像と対応するサムネイル画像を一覧表示した際に、非対応のデータ形式の元画像と対応するサムネイル画像であるか否かを識別可能にして表示するようにした。
これにより、Read−appで画像の編集処理を行うことを目的としてWrite−appを起動して元画像を撮像装置102から取り込む場合に、画像タイプ情報が示す適切なデータ形式の適切なサイズの条件を満たすように変換された元画像を取り込むため、不要な元画像を取り込まずに済み、無駄な通信トラフィックを回避できる。また、Read−appでは対応することのできない元画像であることが、Write−appのサムネイル画像の一覧画面上でも明示的にわかるため、ユーザが不適切な画像を選択することがなくなり、ユーザビリティが向上する。
また、本実施形態において、元画像のリサイズ処理を撮像装置102で行うものとして説明を行ったが、これに限られるものではない。例えば、撮像装置102からリサイズ処理を施されていない元画像を受信した後、CPU201がWrite−appの処理においてRead−appに適したサイズにリサイズするようにしてもよい。これによれば、撮像装置102の能力によらず、Read−appに適したサイズの画像を保存することができる。また、撮像装置102からリサイズ処理の可否の情報を受け取り、Read−appに適したサイズへリサイズできない場合には、Write−appにおいて元画像に対応するサムネイル画像を識別可能に表示してもよい。
また、本実施形態における図6(b)で説明した画像タイプリストにおいて、画像タイプリストに含まれる配列652の各項目それぞれに優先順位をつけて保存するようにしてもよい。例えば、配列652内において先に配置される画像タイプを優先するものとしてもよい。このようにした場合、図6(b)におけるアプリケーション653には、大きいサイズのRAW形式で画像を取り込むのが最も適しているが、一方で小さいサイズのJEPG形式にも対応できると解釈できる。また、アプリケーションIDが0x53であるアプリケーション654には、JEPG形式を小さいサイズで画像を取り込むのが最も適しており、次にJPEG形式の大きなサイズ、さらにその次にTIFF形式の小さなサイズが適していると解釈できる。画像タイプリストに優先順位をつけることで、より適したデータ形式およびサイズの元画像を保存し、アプリケーションに画像データを提供可能となる。また、優先順位によりデータ形式およびサイズが自動的に決定されることで、図8(e)や図8(f)で説明したような形式選択ダイアログやサイズ選択ダイアログでのユーザの手動による操作負荷を減らすことができる。
また、本実施形態では、Read−appに適したデータ形式およびサイズの両方が決定される場合について説明したが、いずれか一方だけを決定し、決定された条件を満たすように変換された元画像を撮像装置から受信するようにしてもよい。
また、本実施形態では、撮像装置100において、画像タイプが示す条件を満たすように元画像を変換する場合について説明した。これに限らず、撮像装置100は元画像を変換せずに、通信機器101へ送信するようにしてもよい。そして、通信機器101がWrite−appにしたがって動作し、画像タイプが示す条件を満たすように元画像を変換してRead−appに読み取り可能にしてHDD204に記憶するようにしてもよい。ここで、撮像装置100は、画像タイプが示す条件を満たすように変換することのできない元画像は通信機器100へ送信しないようにしてもよい。これによって、Read−appで処理することのできない元画像を撮像装置100から通信機器101へ送信することがなくなり、無駄な送信処理を行うのを防ぐことができる。 (第2の実施形態)
第1の実施形態では、Read−appからWrite−appを起動し、応答としてWrite−appからRead−appを起動するものとして説明を行ったが、これに限られるものではない。例えば、Write−app内において、ユーザの起動指示に応じてRead−appを選択して起動するようにしてもよい。このとき、CPU201は、共有場所の画像タイプリストを確認し、起動指示を受けたRead−appに適したデータ形式およびサイズの画像を撮像装置102から取得して渡す。以下、図10を用いて処理の流れを説明する。
図10は、本実施形態において、通信機器101のCPU201がWrite−appを起動した後、ユーザ指示により連携先としてのRead−appを決定し、外部装置から画像を取得し、取得された画像をRead−appに渡す処理手順を説明するためのシーケンス図である。なお、以下で説明する処理は通信機器101のCPU201がOS301、Write−app302やRead−app303を起動し、適宜、これらにしたがって動作し、各部を制御することにより実現される。なお、図10の各処理は図5と共通する処理が多いため、同じ処理には同じ付番を付与し、説明を割愛する。
また、以下では説明を簡単にするため、T501からT1002を連携準備フェーズ、T510からT515を接続フェーズ、T517からT527を画像保存フェーズ、T528からT531を連携終了フェーズというように、フェーズに分けて説明する。
まず、連携準備フェーズの処理について説明する。前述したT501からT505の処理がCPU201により実行されることにより、Read−appの画像タイプリストがデータ共有場所に配置される。なお、T501からT505で示す処理は、Write−appの起動に先立って一度でも実行されておればよく、Write−appの起動前に毎回行われる必要はない。
次に、T1001では、CPU201が、ユーザの操作により、Write−appの起動要求を受け付ける。
続いて、T1002では、T1001における起動要求に応答して、CPU201がWrite−appを起動することにより処理を開始する。ここで、T509と異なり、T1002ではWrite−appがRead−appからの呼び出しにより起動されていない。このため、T1002では、CPU201は、Write−appを通常モードで動作させ、図11(a)に示すWrite−appの画面を表示する。すなわち、図11(a)に示す画面では、図8(a)で表示させていた連携モードを示すステータスバーを表示させず、すべての機能が利用可能となったUI表示がなされる。
なお、図11の画面は図8と共通する個所が多いため、同じUI部品には同じ付番を付与し、説明を割愛する。
次に、T510からT515の接続フェーズの処理により、撮像装置102と通信機器101の接続が確立される。
続いて、T517からT527の画像保存フェーズについて説明する。
CPU201は、T517で、図11(a)におけるカメラ内の画像一覧ボタン803を押下することを検出すると、前述したT518からT520の処理を行い、表示装置211の描画領域にサムネイル画像の一覧を表示する。これにより、Write−appには図11(b)に示すUIが表示される。ここで、図11(b)はWrite−appが通常モードで動作された場合のサムネイル画像一覧画面の表示例であり、連携モードを示すステータスバーは表示されない。
T521では、CPU201は、図11(b)における選択ボタン804をユーザが押下することを検知する。
T1003では、CPU201は、データ共有場所500の画像タイプリストを参照し、アプリケーション名称の一覧を取得してRAM203へ記憶する。そして、T1004では、T1002で取得したアプリケーション名称一覧をRAM203から読み出し、図11(c)に示すように、Write−appから画像を提供して使用するアプリケーション(すなわち、Read−app)をユーザに選択させる旨のアプリ選択ダイアログ1101を表示する。
T1005では、CPU201は、図11(c)におけるアプリ選択ダイアログ1101においてユーザがアプリケーション名称を選択してOKボタン1102を押下することを検知する。
T1006では、CPU201は、T1005においてユーザにより選択されたアプリケーション名称を元にRead−appを確定させる。そして、CPU201は、データ共有場所500の画像タイプリストを参照し、Read−appに該当する適した画像タイプを取得しRAM203へ記憶する。
続いて、CPU201が前述したようにT522からT527の処理を行うことにより、ユーザが選択した画像をRead−appに適したデータ形式およびサイズで撮像装置102から受信し、通信機器101内のHDD204等に保存することができる。
そして、T528からT532の連携終了フェーズの処理により、Write−appにおいて保存した画像をRead−appで読み出して、編集することが可能となる。
以上のように、本実施形態によれば、Write−appにおいて、画像を使用するRead−appをユーザにより選択可能とし、撮像装置102内の画像を取り込む際に、Read−appに適するデータ形式およびサイズにて画像を受信し、保存を行うようにできる。
これにより、ユーザがWrite−appを起動して画像を閲覧し、画像を編集したくなった際に任意のアプリケーションをWrite−app上で選択し、選択されたアプリケーションに適したデータ形式およびサイズの画像を撮像装置102から取り込むことができる。すなわち、元画像を撮像装置102から取り込む場合に、編集処理に好ましくない不要な画像を取り込まずに済み、さらに、適切なデータ形式の画像を適切なサイズに変換してから取り込むため、無駄な通信トラフィックを回避できる。
(その他の実施形態)
なお、前述した各実施形態では、Write−appが、通信機器101が撮像装置102から画像を取り込むために使用するアプリケーションである例について説明したが、Write−appとしてそれ以外の用途のアプリケーションにも適用することができる。例えば、Write−appとして、データベースから画像を検索するアプリケーションや、撮影処理を行うアプリケーションを適用してもよい。また、前述した実施形態では、取り扱うデータを画像データとしたが、画像データに限らず、音声データなど他のデータであってもよい。
また、前述した実施形態では、通信機器101としてスマートフォンを例に説明したが、アプリケーションをインストール可能な機器であれば、特に限定されない。例えば、通信機器101として、携帯電話、タブレット、パーソナルコンピュータ(PC)等であっても同様に適用できる。また、Read−appおよびWrite−appが、通信機能が不要なアプリケーションである場合には、必ずしも通信機能がなくてもよく、広く情報処理装置によって実施可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。