以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
図1は、本実施形態における画像データ送受信システムを構成する一デバイスの概略構成を示すブロック図である。画像データ送受信デバイスとしては、PDA、携帯電話、デジタルカメラ等があるが、本実施形態では該デバイスとしてデジタルカメラを例とする。
デジタルカメラ101は、制御部102、記憶部103、通信部104、表示部105、入力部106、及び、撮影部107で構成される。記憶部103、通信部104、表示部105、入力部106、及び、撮影部107は、制御部102である制御回路に接続し、制御部102がこれらを統括的に制御する。制御部102はまた、撮像部107から撮像画像データの圧縮処理を含むデジタル画像処理、通信部104で受信したデータ、コマンドの解釈及び、実行、入力部106からの指示に対する制御などを実行する。
撮像部107は、撮像するためのレンズ、CCD、デジタル画像処理回路からなる。CCDは、レンズが映し出した光画像を電気信号に変換し、デジタル画像処理回路は、CCDから得た画像信号をデジタル化する。
記憶部103は、制御部102で実行される制御プログラムを記憶するROM、及びワークエリアとして使用されるRAMを含む。また、この記憶部103は、デバイス固有の識別子であるデバイスID、デバイス名、デバイスの概観を表すアイコン画像などのデバイス固有の情報、アプリケーションプログラム等を記憶するフラッシュメモリを備える。また、この記憶部103は、撮像部107で撮影された画像データ、他デバイスから受信した画像データ等を記憶するための脱着可能なメモリカードをアクセスするためのI/Fを備える。メモリカードとしては、コンパクトフラッシュカード(登録商標)、SDカード等が挙げられる。
通信部104は、画像データ、制御コマンドを外部通信デバイス間で送受信する。無線の場合、アンテナ、無線通信回路を備える。
表示部105は、デジタルカメラのファインダの表示や、カメラ設定プログラム、その他アプリケーションプログラムのGUI(Graphical User Interface)を表示するLCD及びLCD制御回路を備える。
入力部106は、デジタルカメラのシャッターボタンや、カメラの設定の指示をするキー、LCDに表示されたGUI上のボタンやテキストフィールド等のGUI部品の指示をするキーや十字キーなどからなる。ユーザによって各種キーが操作されると、制御部102がキーに対応したプログラムを実行する。
図2に、本実施形態に係る画像データ交換デバイス同士が通信している状態を示す。同図(A)は、デバイス間通信が一対一の通信状態を示している。また、同図(B)はデバイス間通信が一対多である通信状態を示している。図示では、デジタルカメラ、PDA、携帯電話が無線接続による通信状態にある。無線接続ではなく、有線接続でもかまわない。画像データを送信する一台のデバイスが、通信接続されている一台のデバイス、もしくは、複数のデバイスに対して画像データの送信を行う。なお、本実施形態においては、一対一の画像データの送受信について説明することとする。
本提案における画像データを交換するデバイスが有する通信手段は無線・有線どちらの通信方式でもかまわないが、本実施形態におけるデバイスはBluetooth通信モジュールを有し、無線通信にて外部デバイスと通信を行うものとする。
Bluetoothは、2.4GHz周波数帯域を用いる無線伝送方式である。最大通信距離は10m乃至100m(送信出力によって異なる)で、低消費電力であることから小型デバイスに搭載可能である。
本実施形態におけるデバイスは、他デバイスとの通信を確立や、コマンドや画像データの送受信等の処理により画像データの交換を実現する画像データ送受信プログラムをROMもしくは、フラッシュメモリに有する。そして、このプログラムを実行することで通信モードに移行する。
本実施形態では、デバイス(実施形態ではデジタルカメラ)に備えられた記憶部103に記憶された画像データを、他デバイスに送信するものである。そのため、画像データ送受信デバイスは、デジタルカメラのような撮像部を備えることは必須ではないため、画像データを記録する記憶部、他デバイスと通信を行う通信部を有するPDA、携帯電話でもよい。なお、本実施形態において、画像データを送信するデバイスはマスタデバイスと呼ぶ。
以後の説明では、画像データ送受信デバイスとはデジタルカメラであるとする。
デジタルカメラは、画像データを着脱式メディアに保存している。保存されている画像データは、撮像部107の撮像解像度に依存した大きなサイズの画像データと、その画像データの確認用の、小さなサイズのサムネイル画像が含まれる。
図3は、デジタルカメラが記憶部に格納するデバイス情報テーブルである。同図(A)、(B)は本実施形態に登場するデジタルカメラA、デジタルカメラBそれぞれが自デバイス内の記憶部に記憶しているデバイス情報テーブルである(ROM、もしくはフラッシュメモリに格納されている)。デバイス情報テーブルは、自デバイスを一意に特定するためのデバイスID、自デバイスカメラ名、アイコンデータである。本実施形態ではデバイスIDとはBluetooth通信を行うデバイス個々に割り当てられるBluetoothデバイスアドレス、自デバイスカメラ名とはデジタルカメラの名称、アイコンデータとはデジタルカメラの概観を表す画像データである。
図4は、本実施形態に係る画像データ交換デバイスであるデジタルカメラの背面の表示部、操作部を示している。デジタルカメラ401は、表示画面(LCD)407、撮像指示を行うシャッター402を有する。また、デジタルカメラ401カメラの諸設定や、起動するアプリケーションを選択するメニューGUIに切り替えるための「メニュー」ボタン403を有する。また、デジタルカメラ401は、メニューGUI内のオブジェクトの選択や、表示画像の切り替えを行う、上下左右方向を指示する十字キー406を有する。また、デジタルカメラ401は、GUIの指示されているオブジェクトを実行するための「決定」ボタン404、GUI上のオブジェクトの選択解除や、プログラムの実行を中止する「キャンセル」ボタン405を有する。
本実施形態では、画像データを送信するデジタルカメラをデジタルカメラAとし、画像データ受信側のデジタルカメラをデジタルカメラBとする。そして、まず、デジタルカメラAがデジタルカメラBと画像データの送受信を行うことを決定するまでの処理、続いて、サムネイル画像データを送受信する処理、本画像データ送受信処理について説明する。
<画像データ交換デバイス決定処理>
まず、デジタルカメラAにて、記憶部に収められている画像データ送信を行うためのアプリケーションを実行する。
このアプリケーションを起動するためには、まず、ユーザが「メニュー」ボタン403を押下する。この結果、制御部102は、表示部105にアプリケーションメニュー(不図示)を表示する。次いで、ユーザが十字キー406を操作し、選択カーソルを、メニュー中の「画像データ通信」に移動させ、「決定」ボタン404を押下したことを制御部102が検出した場合に、画像データ送受信プログラムを実行することになる。この画像データ通信プログラムの実行により、画像データの送受信を行うデバイスを決定する処理を進めるためのGUIがLCDに表示される。このときのLCDに表示されたGUIを示すのが図5である。
図5のGUIには、通信可能なデバイスを検索する処理を実行するためのデバイス検索ボタン502が設けられている。また、このGUIには、検索されたデバイスの情報を表示するための検索結果フィールド501、検索結果フィールドに表示されたデバイスの中から画像データの送受信を行うデバイスを選択するためのデバイス選択ボタン503が設けられている。また、このGUIには、処理結果や処理状態などを通知するメッセージを表示するメッセージ欄504なども設けられている。GUI上のボタンは十字キー406 、決定ボタン404により、選択、決定し、決定の指示により選択されたGUI上のボタンに関連付けられた処理が実行される。
デバイス検索ボタン502を押下してから、画像データの送受信するデジタルカメラを決定するまでの概略的なデジタルカメラA(マスタ)の制御部102の処理の流れを図6のフローチャートに示す。
まず、画像デバイス検索ボタンを押下すると、デジタルカメラは通信可能な外部デバイスを検索する(ステップS601)。制御部102は、通信部104を制御することで、Bluetoothの同期確立フェーズの「問い合わせ」、「呼び出し」処理をおこない、デジタルカメラAの通信可能な範囲内に存在するデバイスを探索する。デバイスが検出されなかった場合(アクノリッジが返ってこない場合)には、検出されないことを通知するメッセージ「デバイスが検出されませんでした。」をメッセージ欄504に表示する(ステップS608)。
一方、デバイスが検出された場合は、そのデバイスからデバイス情報(図3参照)を取得して検索結果フィールド501に表示する(ステップS603)。ここでは、デジタルカメラAの近傍に、デジタルカメラB乃至Eが存在し、これら4つのデジタルカメラが検出されたとする。この場合、デジタルカメラAの検索結果フィールド501には、図7に示す検索結果が表示される。図示の検索結果フィールド501中の、「カメラB」の周りの四角い枠は、選択中のオブジェクトを示すポインティング先を表している。このポインタの位置は、十字キー406を操作することにより、他のGUI上の他のオブジェクト(ボタンや他のカメラ)に変更することができる。
ユーザによる検索結果フィールド501に表示されたデバイスの中から画像データを送信する相手となるデバイスの選択を検出する(ステップS604)。選択対象は、十字キー406で4つのデジタルカメラの中から画像データを送信したい相手のデバイスにポインティング先を移動することで行われる。そして、決定ボタン404を押下した際のポインティングが示すデバイスが送信対象のデバイスとして決定する。本例では、図示の通信デバイスとして「カメラB」が選択されている状態で決定ボタン404を操作することになる。図8は、「カメラB」を確定した際の検索フィールド501内の表示例を示している。図示の如く、「カメラB」が選択されたことを報知するため、その「カメラB」のアイコンを太枠にして所定時間表示する。
こうして、送信先のデバイスが決定されると、制御部102は、通信部104を制御し、デジタルカメラBに対して画像データ送受信デバイスとして選択されたことを示す「共有デバイス通知」を送信する(ステップS605)。
デジタルカメラBは、この共有デバイス通知を受信すると、デジタルカメラAと画像データの交換を行うか否かの応答を行う。例えば、デジタルカメラBのGUIに、デジタルカメラAから共有デバイス通知を受信した旨と、受信可能にしても良いか否か選択するGUIを表示し、デジタルカメラBのユーザにそのいずれかを選択させる。この選択結果を、応答情報としてデジタルカメラAに送信する。
共有デバイス通知に対する応答を受信したデジタルカメラAは、その応答が画像データの送受信に合意するものか、拒否するものかを判断する(ステップS606)。デジタルカメラBが画像データの交換を行うデバイスとなることを拒否した場合、その旨を表すメッセージ「画像データ交換相手がいません」をメッセージ欄504に表示する(ステップS608)。逆にデジタルカメラBが合意した場合は、デジタルカメラAは合意したデバイスのデバイス情報をLCDに表示する(ステップS607)。
図9は、上記のようにして、画像データ送受信対象デバイスが決定された際の、デジタルカメラAの表示例を示している。図示の如く、交換対象フィールド901には、送受信対象となったデジタルカメラBの名前とアイコンが表示される。また、画像データの交換を開始するための交換スタートボタン902もGUIとして表示される。
次に、画像データ送受信相手を決定する処理についての通信手順について説明する。
デバイス間の通信はパケット通信によって行われる。図10に通信パケットのデータ構造を示す。図示した通信パケットは、Bluetoothのペイロード部分である。パケットには、パケットの送信元デバイスID、送信先デバイスIDコマンドの種類を示すコマンドID、各コマンドのためのパラメータデータが含まれる。ただし、パラメータデータがないパケットもある。パケットの送信元デバイスID、送信先デバイスIDには、デバイス個々に割り当てられた固有デバイスIDが用いられる。デバイスIDは、デバイス製造時にデバイス固有に割り当てられるシリアルナンバーでよい。ただし、Bluetooth通信を行うデバイスにはそれぞれ、Bluetoothデバイスアドレスと呼ばれるアドレスが一意に与えられている。そこで、本実施形態では、BluetoothデバイスアドレスをデバイスIDとして扱う。勿論、送信元と送信先が一意に決まればよいので、例えば、MACアドレスでも構わない。
通信パケットを受信したデバイスは、通信パケットの情報をRAMに記憶し、コマンドIDに対応した処理を行う。
なお、本提案の実施形態にて用いる通信パケットのコマンドID、パラメータをまとめて図27に示す。また、図11に画像データ交換相手を決定する通信手順を示す。
デジタルカメラAにて、デバイス検索ボタン502を押下すると、デジタルカメラAの制御部102は、Bluetooth同期確立の「問い合わせ」、「呼び出し」処理をおこなう(タイミング1101)。デジタルカメラAは、この「問い合わせ」、「呼び出し」処理にて、デジタルカメラAの近傍にあるBluetooth搭載デバイスのBluetoothデバイスアドレスを知ることができる。本例では近傍にあるデジタルカメラB、デジタルカメラC,デジタルカメラD、デジタルカメラEのBluetoothデバイスアドレスを、記憶部103内に確保した検索デバイステーブルに格納する。
図12は、この検索デバイステーブルを示している。検索デバイステーブルには、「問い合わせ」、「呼び出し」の処理で検索されたデバイスのBluetoothデバイスアドレスと、デバイス情報を記録するテーブルである。
本実施形態においては、デジタルカメラB乃至Eを特定するために、BluetoothデバイスアドレスをデバイスIDとして扱う。本実施形態では、このデバイスIDを、それぞれ、デバイスID_B、デバイスID_C、デバイスID_D、デバイスID_Eと記すこととする。
デバイスが検出されなかった場合には、検出されないことを通知するメッセージ「デバイスが検出されませんでした。」をメッセージ欄504に表示する。
次に、検出されたデバイスから、デバイス情報(カメラ名、アイコン)を取得する。取得するためにデジタルカメラAは、検出されたデバイスに対してデバイス情報要求通信パケットを送信する(タイミング1102乃至1105)。デバイス情報要求通信パケットとは、コマンドIDとして「1」を持つ通信パケットである(図27参照)。通信パケットの送信元デバイスIDには、情報テーブルにデバイスIDとして記憶されているBluetoothデバイスアドレスであるデバイスID_Aを格納する。また、通信パケットの送信先デバイスIDには検索デバイステーブルに記憶された何れかのBluetoothデバイスアドレスを格納する。そして、通信パケットのコマンドIDには「1」を格納する。このようにして生成された通信パケットを、送信先デバイスIDが示すデバイスに送信する。
デジタルカメラB乃至Eのそれぞれは、コマンドIDが「1」であるデバイス情報要求通信パケットを受信すると、自デバイス情報をパラメータ部分に収めたデバイス情報応答通信パケットをデバイス情報要求元のデジタルカメラAに送信する。これを示すのがタイミング1106乃至1109である。
このデバイス情報応答通信パケットのコマンドIDには「2」が格納され、そのパラメータ部分には、記憶部のデバイス情報テーブルから読み出した、デバイスID、デバイス名、アイコンデータのデータ長、及びアイコンデータが格納される。こうして、各デバイス(デジタルカメラB乃至E)は、生成したデバイス情報応答通信パケットをデジタルカメラAに送信する。
デジタルカメラAは、デバイス情報要求したデバイスから送信されるデバイス情報応答通信パケットを受信する。そして、受信したパケットのコマンドIDが「2」であると判断すると、デバイス情報応答通信パケットのパラメータ部分に収められたデバイス情報を読み出し、デバイス情報テーブルに記憶する。例えば、デジタルカメラBから受信したデバイス情報応答通信パケットの場合、パラメータ部分には、デバイスIDとしてデバイスID_B、デバイス名として「カメラB」が納められている。また、更に、アイコンデータ長とデジタルカメラBの概観を示すアイコンイメージのアイコンBも収められている。従って、デジタルカメラAは、デバイス情報テーブルのデバイスID_Bに対するデバイス名(1)の欄に「カメラB」、アイコン(1)の欄にアイコンBを記憶する。デジタルカメラC、デジタルカメラD、デジタルカメラEから受信したデバイス情報応答通信パケットのパラメータ内の情報に関しても同様に、デバイス情報テーブルに収める。
受信した全てのデバイス情報応答通信パケットに対する処理を終えると、その情報を検索結果フィールド501に表示する(図7)。
検索結果フィールド501にデバイス情報が表示されると、ユーザは十字キー406、決定ボタン404を用いて、画像データ交換相手となるデバイスを選択、確定し、デバイス選択ボタン503を押下する(タイミング1116)。
すると、デバイス選択ボタン503を押下したことにより選択されたデバイスに対して、デジタルカメラAは画像データの交換を望んでいることを通知する共有通知通信パケットを送信する(タイミング1110)。共有通知通信パケットは、コマンドID「3」、パラメータとして、送信元であるデジタルカメラAのデバイス情報を格納した通信パケットである。本実施形態では、デジタルカメラAはデジタルカメラBと画像データの送受信を行う例を説明している。従って、デジタルカメラAはデバイス情報テーブルからデバイス名、アイコンデータを読み出し、デバイス名、アイコンデータ長、アイコンデータの順にパラメータ部分に格納した共有通知通信パケットを生成する。そして、デジタルカメラAは生成された共有通知通信パケットを、デジタルカメラBのデバイスIDを送信先IDとして送信する。
共有通知通信パケットを受信したデジタルカメラBは、受信した通信パケットのコマンドIDが「3」であると判断すると、画像データの交換を行うかを問う共有通知ダイアログをLCDに表示する(タイミング1112)。図13は、このタイミングでの、デジタルカメラBの背面外観図と、LCDの表示例を示している。
共有通知ダイアログ1301には、共有通知通信パケットを送信デバイスの情報、ユーザに入力を促すメッセージ「画像データの交換を行いますか?」が表示される。また更に、画像データの交換を行うか否かをユーザが入力するための「はい」ボタン1302、「いいえ」ボタン1303も表示される。共有通知通信パケットを送信したデバイスの情報は、パケットのパラメータ部分に収められた、デバイス名、アイコンデータを読み出して表示する。
デジタルカメラBのユーザは十字キー、決定ボタンにより、ダイアログ上の「はい」ボタン、「いいえ」ボタンの何れかを押下する(タイミング1113)。押下すると、共有通知通信パケットの送信元であるデジタルカメラAに対して、画像データの送受信を行うか否かの情報を収めた共有応答通信パケットを送信する。共有応答通信パケットは、コマンドID「4」、パラメータ部分にはデジタルカメラAと画像データの送受信を行うか否かの情報を収める。例えば、画像データの送受信を行う場合は「1」、行わない場合は「0」を収める。よって、ユーザが共有通知ダイアログ上の「はい」ボタン1302を選択した場合には「1」、「いいえ」ボタン1303を選択した場合には「0」をパラメータ部分に収めた共有応答通信パケットがデジタルカメラAに送信される。また、どちらのボタンを押下した場合も、ダイアログは非表示になる。
さらに、「はい」ボタンを押下した場合、デジタルカメラBは記憶部に収められている画像データ送受信プログラムが実行すると共に、画像データを送受信する相手であるデジタルカメラAのデバイス情報を図14に示す共有デバイステーブルに記憶する。
共有応答通信パケットを受信したデジタルカメラAは、受信した通信パケットのコマンドIDが「4」であると判断すると、画像データの送受信を行うか否かの情報を含んでいるパラメータ部分の情報を読み出す。
読み出した情報が画像データの共有を希望する意味を持つ「1」である場合、画像データの送受信する相手の情報を収めるデジタルカメラAの共有デバイステーブルに、共有応答通信パケット送信元のデバイス情報を収める。この際、パラメータ部分にはデバイス情報は格納されていないので、共有応答通信パケットの送信元デバイスIDより、検索デバイステーブルからデバイス情報をコピーする。そして、このデバイス情報を含んだ交換対象フィールド901をLCDに表示する(タイミング1117)。
逆に、読み出した情報が画像データの共有を拒否する意味を持つ「0」である場合は、デジタルカメラAと画像データの送受信を行うデバイスは存在しないことになる。従って、このような場合には、メッセージ「画像データ交換相手がいません」をメッセージ欄504に表示する。
<サムネイル画像データ送受信処理>
次に、デジタルカメラAが画像データ送信相手として決定したデジタルカメラBにサムネイル画像データを送信する手順について説明する。
デジタルカメラの画像データは、デジタルカメラの記憶部、例えばスロットに挿入されたメモリカードに記憶されている。画像データは、図15に示す画像データテーブルの如く、画像データID、画像データ、及び画像データ縮小画像データであるサムネイル画像データで構成される。
図16のフローチャートは、サムネイル画像データ送信側であるデジタルカメラAの制御部102が実行するサムネイル画像データ送信処理の流れを示している。デジタルカメラAは、画像データ送信先であるデジタルカメラBに、記憶部に格納しているサムネイル画像データを順次、送信する。本例では、送信するサムネイル画像データは、デジタルカメラの記憶部に保存している全てのサムネイル画像データとする。ただし、多くのデジタルカメラに備えられているスライドショー機能と同様、あらかじめユーザが選択しているサムネイル画像データのみを送信対象としても構わない。
サムネイル画像データ送信処理は、画像データ送受信デバイスとして決定したデジタルカメラAのLCDに表示されたデータ交換ボタン902を押下することにより開始する。この処理に係るプログラムは、記憶部103に格納されており、制御部102が実行する。
データ交換ボタン902を押下すると、画像データテーブルに格納されているサムネイル画像データの数Nをカウントする(ステップS16011)。次に、送信が終了した画像データ数をカウントする変数nを“0”で初期化する(ステップS1602)。
次いで、変数nと変数Nとを比較する(ステップS1603)。変数nが変数Nより小さいのは、送信対象の全てのサムネイル画像データの送信を完了していないことを意味する。この場合には、画像データテーブルのn番目のサムネイル画像データを読み出す(ステップS1604)。読み出したサムネイル画像データは、LCDに表示する(ステップS1605)とともに、先の通信で決定した画像データ送信先であるデジタルカメラBに送信する(ステップS1606)。
次のサムネイル画像データを読み出すまで送信したサムネイル画像データを表示しておく為、適当なインターバル時間T1秒待つ(ステップS1607)。そして、この後、画像データをカウントする変数nを一つカウントアップし(ステップS1608)、次のサムネイル画像送信処理に移る。
変数nがNより小さい場合は、順次、次のサムネイル画像データを読み出し、デジタルカメラBにサムネイル画像データを送信する。
また、変数nが変数Nに達した場合は、送信対象サムネイル画像データを全て送信したことになるので、デジタルカメラBにサムネイル画像データの送信終了を通知する。
サムネイル画像データ受信側であるデジタルカメラBは、受信ごとにサムネイル画像データをLCDに表示する。
図17にサムネイル画像データ送信するデジタルカメラAと、サムネイル画像データを受信したデジタルカメラBそれぞれの背面のLCDに表示されたサムネイルのシーケンスを示す。
デジタルカメラAは、読み出したサムネイル画像データを表示し(A1)、デジタルカメラBに送信する。次のサムネイル画像データを表示するまではそのままそれまでの画像データを表示する。そしてインターバル時間T1秒をおいた後、次に読み出したサムネイル画像データを表示する(A2)。
デジタルカメラBは、デジタルカメラAからサムネイル画像データを受信すると、受信したサムネイル画像データをLCDに表示する(B1)。次の画像データを受信するまで表示を続け、次のサムネイル画像データを受信するとその画像データの表示を行う(B2)。
図18に、サムネイル画像データ送受信処理の通信手順を示す。
デジタルカメラAは、最初のサムネイル画像データを読み出し(タイミング1801)、自身のLCDに表示する(1802)。そして、サムネイル画像データ送信通信パケットにて、読み出したサムネイル画像データをデジタルカメラBに送信する(タイミング1807)。サムネイル画像データ通信パケットのコマンドIDには「20」、パラメータには画像データテーブルから読み出した画像データID、サムネイル画像データ長、サムネイル画像データを格納することになる。
デジタルカメラBは、サムネイル画像データ送信通信パケットを受信し、コマンドIDが「20」であると判断すると、パラメータ部分の情報を読み出し、RAMに記憶する。そして、RAMに記憶したサムネイル画像データを読み出してLCDに表示する(タイミング1811)。以後、サムネイル画像データ送信通信パケットを受信した場合は、同様の処理を行う(タイミング1812、1813)。
デジタルカメラAはサムネイル画像データ送信後、インターバル時間T1秒おきに、その後次のサムネイル画像データの読み出し、表示、送信処理を行う。最後N−1番目のサムネイル画像データの送信を終了すると、最後にサムネイル画像データ送信終了通信パケットを送信する(タイミング1810)。サムネイル画像データ送信終了通信パケットのコマンドIDには「21」を格納される。
デジタルカメラBは、サムネイル画像データ送信終了通信パケットを受信し、コマンドIDが「21」であると判断すると、最後に受信した画像データの表示を終了する。
ここで、デジタルカメラAから受信したサムネイル画像データをデジタルカメラBのRAMに記憶するとしたが、フラッシュメモリやメモリカードに記憶してもよい。フラッシュメモリに記憶することにより電源オフ/オン後もデジタルカメラBでサムネイル画像データを再生することができる。
<画像データ送受信処理>
最後に、サムネイル画像データに対する、サイズの大きな画像データ(以後、本画像データと呼ぶ)を取得する処理について説明する。
デジタルカメラBのユーザは、順次LCDに表示されるデジタルカメラAからのサムネイル画像データを閲覧できる。そして、LCDに表示されているサムネイル画像データの本画像データが欲しいと思った場合に、サムネイル画像データがLCDに表示されている所定の時間内に決定ボタンを押下することにより、デジタルカメラAから所望の本画像データを受信する。
デジタルカメラBにて、LCDに受信したサムネイル画像データを表示中に決定ボタンが押された場合の処理の流れを図19に示す。
サムネイル画像データをLCDに表示している間に決定ボタンが押下されると、デジタルカメラB(の制御部)はサムネイル画像データの受信を行うメインスレッドとは別のスレッドを作成する(ステップS1901)。スレッドとは、プログラムを実行する単位であって、メインのスレッドであるプライマリスレッドに対して別スレッドを作成することにより並列処理を行うことができる。本例では、サムネイル画像データの送受信をプライマリスレッドで行い、別スレッドにより本画像データの送受信をデジタルカメラA、デジタルカメラB間で行う。このような並列処理を行うことにより、本画像データの送受信を行いつつ、順次、サムネイル画像の閲覧を続行することができる。
別スレッドにてLCDに表示中のサムネイル画像データに対する画像データIDをRAMから読み出す(ステップS1902)。そして、デジタルカメラAに対して、サムネイル画像データに対する本画像データを要求するため、本画像データ要求通信パケットを送信する(ステップS1903)。本画像データ要求通信パケットのコマンドIDには「22」(図27参照)、パラメータ部分には読み出した画像データIDを格納して送信する。そのまま、要求した本画像データが本画像データ要求通信パケットによってデジタルカメラAから送信されるのに待機する(ステップS1904)。
待機中に本画像データ要求通信パケットを受信すると、コマンドIDが「23」であることを確認する。その後、本画像データ要求通信パケットのパラメータ部分に格納されている画像データを読み出し、デジタルカメラBに接続されたメモリカードに保存する(ステップS1905)。保存するとスレッドは終了する。
一方、本画像データを要求されたデジタルカメラAの処理フローを図20に示す。
デジタルカメラAは、本画像データ要求通信パケットを受信し、コマンドIDが「22」であると判断すると、本画像データを送信するための別スレッドを作成する(ステップS2001)。別スレッドにて、本要求画像データ要求通信パケットのパラメータ部分からデジタルカメラBが要求する本画像データの画像データIDを読み出し、画像データIDにマッチする本画像データを画像データテーブルから読み出す(ステップS2002)。そして、デジタルカメラBを送信先として本画像データを送信する(ステップS2003)。本画像データは、コマンドID「23」、パラメータ部分に画像データID、本画像データ長、本画像データを格納した本画像データ送信通信パケットにて送信する。本画像データの送信を行うスレッドは、本画像データの送信の終了をもって終了する。
以上の処理により、デジタルカメラBは、LCDにサムネイル画像データを表示している際に決定ボタンを押下することにより、表示中のサムネイル画像データに対する本画像データをデジタルカメラAから受信することができる。
本実施形態においては、デバイスが一対一で画像データの送受信を行う例を挙げて説明したが、送信側デバイス1台が複数のデバイスを相手に画像データの送信を行うことも可能である。
この場合、先に説明した<画像データ交換デバイス決定処理>では、デジタルカメラAが画像データを送信する相手としてデジタルカメラBのみを選択するのではなく、例えば、デジタルカメラC、デジタルカメラD、複数のデジタルカメラを選択する。また、<サムネイル画像データ送受信処理>では、サムネイル画像データをデジタル化カメラBにのみ送信するのではなく、一枚のサムネイル画像データをデジタルカメラB乃至Dに送信する。そして、その後、次のサムネイル画像データを読み出して同様にそれぞれのデジタルカメラに送信すれば良い。また、<画像データ送信処理>にて、サムネイル画像データ受信側のデジタルカメラB乃至Dのユーザがそれぞれのカメラの決定ボタンを押下して所望の画像データを指定する。これにより、それぞれのデジタルカメラが別スレッドによる並列処理にてデジタルカメラAから所望の本画像データを取得することができる。
<第2の実施形態>
上記実施形態(第1の実施形態)では、デジタルカメラ間で送信されるのは本画像データそのものとしていたため、送信がハッキングされた場合、本画像データが予測していないデバイスに受信され、容易に本画像データを流布されてしまう危険性がある。そのため、デバイス間で送受信を行う処理フローにおいて暗号化するステップを設けた例を第2の実施形態として説明する。
本実施形態では、公開鍵暗号方式を用いた暗号処理を行う。公開鍵暗号方式とは、公開鍵と秘密鍵の対になる2つの鍵を使ってデータの暗号化/複号化を行う暗号方式である。代表的な公開鍵暗号方式としてはRSAがある。本第2の実施形態では、例えばRSAを使用する。もちろん、他の暗号方式を用いても良い。
第2の実施形態における<画像データ交換デバイス決定処理>は、ほぼ第1の実施形態と同じであるが、この処理の最後に画像データ画像データを受信側デバイスであるデジタルカメラBの公開鍵を画像データ送信側のデジタルカメラAに送信する。
デジタルカメラBは記憶部、例えばメモリカードに暗号化のための公開鍵を保持する。この公開鍵は、一般的な公開鍵、秘密鍵を対で生成するツールで作成されたものである。特にデジタルカメラ内で公開鍵を作成する必要はなく、PCで作成された公開鍵をメモリカードの保存し、メモリカードを介してデジタルカメラが公開鍵を扱えるようにすればよい。
本第2の実施形態では、第1の実施形態の画像データ交換デバイス決定処理の最後に、画像データ受信側であるデジタルカメラBは、共有応答通信パケットをデジタルカメラAに送信する。共有応答通信パケットとは、画像データの交換を行うか否かという情報をパラメータ部分に格納している。本第2の実施形態では、図13に示す共有通知ダイアログにてユーザが「はい」ボタンを押下した場合に、次の処理を行なう。まず、デジタルカメラB(の制御部)は、パラメータ部分に、画像データの交換を希望することを示す情報「1」と、画像データを暗号化するための公開鍵情報を格納した共有応答通信パケットを作成する。そして、デジタルカメラBは、作成したパケットを共有応答通信パケットとしてデジタルカメラAにを送信する。
共有応答通信パケットを受信したデジタルカメラAは、コマンドIDが「4」であると判断すると、パラメータ部分から情報を読み出す。そして、画像データの交換を希望する「1」が含まれていた場合は、続いて格納されている公開鍵を記憶部の共有デバイステーブルに格納する。図21は、デジタルカメラAの共有デバイステーブルを示す。共有デバイステーブルには、画像データ交換するデジタルカメラBのデバイス情報であるBluetoothデバイスアドレス、デバイス名、アイコンと公開鍵を記憶する。
画像データ交換における次の処理、すなわち、<サムネイル画像データ送受信処理>については第1の実施形態と同様の処理を行うので説明を省略する。
次に、本第2の実施形態における<画像データ送信処理>について説明する。
なお、以下の説明では、<サムネイル画像データ送受信処理>の記載の如く、デジタルカメラBのLCD上にデジタルカメラAからのサムネイル画像データを順次表示する。そしてそれを閲覧しているデジタルカメラBのユーザが、そのLCDに表示されているサムネイル画像データの本画像データの取得を希望するのであれば、LCDに所望するサムネイル画像データが表示している時間内に決定ボタンを押下すればよい。押下した場合のデジタルカメラBで行う処理は第1の実施形態と同様である。すなわち、図19の処理フローに従い、デジタルカメラAに画像データの要求を行い、要求に伴いデジタルカメラAから送信された本画像データを記憶部に保存する。異なるのは、本画像データが公開鍵により暗号化されている点のみである。暗号化された本画像データは、PCに保存されている秘密鍵により複号化処理を行い、画像データの表示や印刷を行うことが可能になる。または、デジタルカメラB側が秘密鍵情報を有し、受信した本画像の暗号復号を行なっても構わない。
一方、本画像データ要求通信パケットを受信したデジタルカメラAの処理は第1の実施形態とほぼ同様であるが、本画像データを暗号化する処理ステップが加わる。図22に、本画像データ要求通信パケットを受信した場合のデジタルカメラAの処理フローを示す。
デジタルカメラAの制御部102は、本画像データ要求通信パケットを受信し、コマンドIDが「22」であると判断すると、本画像データを送信するための別スレッドを作成する(ステップS2201)。別スレッドにて、本要求画像データ要求通信パケットのパラメータ部分からデジタルカメラBが要求する本画像データの画像データIDを読み出し、画像データIDにマッチする本画像データを画像データテーブルから読み出す(ステップS2202)。読み出した本画像データは、そのまま送信するのではなく、まず、送信先デバイスから得ている公開鍵によって暗号化処理を施す(ステップS2203)。このため、共有デバイステーブルからデジタルカメラBに対する公開鍵を読み出し、その公開鍵を用いて読み出した本画像データの暗号化処理を行う。
次に、暗号化した本画像データをデジタルカメラBに送信する(ステップS2204)。暗号化された本画像データは、コマンドID「23」、パラメータ部分に画像データID、本画像データ長、本画像データを格納した本画像データ送信通信パケットにて送信する。最後に、本画像データの送信を行うスレッドは、本画像データの送信の終了をもって終了する。
<第3の実施形態>
第1の実施形態では、デジタルカメラAがサムネイル画像データを順次送信するタイミングは、デジタルカメラAが管理する一定のインターバル時間T1秒であった。
本第3の実施形態では、デジタルカメラAが、画像データ受信側であるデジタルカメラBから、本画像データ要求通信パケットを受信したタイミングに基づいてサムネイル画像データを送信する例を説明する。以下にその手順の説明を行う。
図23に、デジタルカメラAの制御部がサムネイル画像データを送信する処理の流れを表すフローチャートを示す。
デジタルカメラAが画像データテーブルからサムネイル画像データを読み出し、サムネイル画像データ通信パケットを送信するまでの手順(ステップS2301乃至S2306)は、第1の実施形態の<サムネイル画像データ送受信処理>と同じである。従って、その説明は省く。
最初のサムネイル画像データをデジタルカメラBに送信すると、デジタルカメラAはタイムアウト処理のためのタイマーをスタートさせ、デジタルカメラBからの本画像データ要求通信パケット受信に待機する(ステップS2307)。設定したタイマーが所定時間を経過した場合は、次のサムネイル画像データを表示する処理に移行する(ステップS2308)。
本画像データ要求通信パケットを受信した場合、デジタルカメラAは通信パケットのパラメータ部分に収められている情報を読み出し、パラメータ部分に情報が含まれているか否かを判断する(ステップS2310)。本第3の実施形態において扱う画像データ要求通信パケットのパラメータ部分には、画像データ要求する場合は所望する画像データIDが格納され、画像データ要求しない場合はパラメータ部分には情報が収められないものとする。
画像データ要求通信パケットのパラメータ部分に画像データIDが格納されている場合は、第1の実施形態の<画像データ送信処理> と同様に、画像データIDに対応する本画像データをデジタルカメラBに送信する(ステップS2311)。
画像データ要求通信パケットのパラメータ部分に画像データIDが格納されていない場合は、デジタルカメラBが本画像データを要求していないことを表すので、本画像データの送信は行わない。
このとき、デジタルカメラAのユーザにデジタルカメラBが本画像データを所望したか否かをわかりやすく表現するため、デジタルカメラAは画像データ要求通信パケットを受信してパラメータを読み出した結果に基づいてアイコンや、音声データを再生する。例えば、デジタルカメラBが画像データを所望していた場合、図24に示すようにデジタルカメラAのメッセージ欄に画像データを所望したことがわかるような手の平の形をしたアイコンや「はい!」等のテキストを表示する。また、「はい!」という声を録音した音声データの再生を行う。そしてデジタルカメラBが像データを所望していない場合は、グーの手をしたアイコンや「いらない」等のテキストを表示したり、「いらない」という音声を録音した音声データの再生をデジタルカメラAが行う。
その後、全ての画像データ交換デバイスから画像データ要求通信パケットを受信したかを確認する(ステップS2312)。本例の場合、デジタルカメラAと画像データの交換を行っているデバイスはデジタルカメラBのみなので、デジタルカメラBから画像データ要求通信パケットを受信したことを確認すると、次のサムネイル画像データの表示処理に移行する(ステップS2308)。つまり、デジタルカメラBのユーザが、表示されたサムネイルについて不要であることを示す指示入力する場合、第1の実施形態で示した時間T1経過しなくても、次のサムネイルの送信が行なえる。
なお、デジタルカメラAがデジタルカメラB以外の複数のデジタルカメラと画像データの送受信を行っている場合は、その全てのデジタルカメラからの画像データ要求通信パケットを受信したかを確認する。そして、全てのデジタルカメラから画像データ要求通信パケットを受信した場合、或いは、タイムアップした場合、次のサムネイル画像データの表示処理に移行する。
デジタルカメラAはこのフローチャートの処理手順により全てのサムネイル画像データの送信を順次行う。
次に、サムネイル画像データを受信する側であるデジタルカメラBの処理の流れについて説明する。
第1の実施形態では、デジタルカメラBは受信したサムネイル画像データをLCDに表示し、表示している間にユーザが決定ボタンを押下すると、本画像データを要求する本学データ要求通信パケットを送信するものとしていた。これに対し、本第3の本実施形態では、表示されているサムネイルに関する本画像データの取得を希望する場合は決定ボタンを押下し、希望しない場合は、次のサムネイル画像データの表示を要求する十字キーの右を押下するものとする。決定ボタンを押下した場合のデジタルカメラBの処理は、第1の実施形態と同様に図20のフローチャートを実行する。十字キーの右側を押下した場合はスレッドの作成は行わず、単に次のサムネイルの要求通信パケットを送信する。
どちらの場合も、本画像データ要求通信パケットをデジタルカメラAに対して送信するが、パラメータ部分に収める情報が異なる。
本画像データを要求する場合は、所望する本画像データの画像データIDがパラメータ部分に収められ、本画像データを要求しない場合は、パラメータにはなにも情報が収められずに送信される。
以上のように本第3の実施形態によれば、デジタルカメラAからサムネイル画像データが送信されるタイミングは、タイムアウトの場合を除いて、全ての画像データ送信対象デバイスにて決定ボタンもしくは、十字キーの右が押下されたタイミングとなる。従って、画像データ受信側のユーザの希望するタイミングで次のサムネイル画像データを表示することが可能となる。
<第4の実施形態>
本第4の実施形態では、第1の実施形態における<サムネイル画像データ送受信処理>を変更した例を説明する。
第1の実施形態では、デジタルカメラAの画像データテーブルに記憶されているサムネイル画像データ全てをデジタルカメラBに送信していた。本第4の実施形態では、画像データ送信側デバイスにて、読み出したサムネイル画像データを表示している間に所定のユーザ入力が検知されると、表示中の画像データを外部デバイスへ送信する処理を行わずに、次画像データの読み出しを行なう処理手段を設ける。また、サムネイル画像データ送信する前の所定時間、サムネイル画像データを表示する。
なお、<サムネイル画像データ送受信処理>において、サムネイル画像データを受信する側の処理は、第1の実施形態と同様であるので、ここでは説明しない。また、同様に、最後のサムネイル画像データを送信後にサムネイル画像データ送信終了通信パケットを受信側デバイスに対して送信する処理に関しても、第1の実施形態と同様であるので、ここでは説明しない。
図25に、デジタルカメラAがデジタルカメラBへのサムネイル画像データの送信を中止した場合の処理を含むフローチャートを図25に示す。
第1の実施形態と同様に、読み出したサムネイル画像データをLCDに表示する(ステップS2501乃至S2505)。本第4の実施形態では、読み出したサムネイル画像データを送信する前に、サムネイル画像データの表示を続ける所定時間T2秒を設ける(ステップS2506)。
サムネイル画像データが表示されている所定の時間T2秒内にユーザによってキャンセルボタンが押下されたことを検知した場合(ステップS2507)、ステップS2510に進む。すなわち、デジタルカメラAは表示しているサムネイル画像データの送信処理とT1時間の待機処理(ステップS2508、S2509)は行なわない。
T2秒内にキャンセルボタンの押下を検知しなかった場合は、サムネイル画像データをデジタルカメラBに送信する(ステップS2508)。そして、インターバル時間T1秒待機してから(ステップS2509)、次のサムネイル画像データ読み出し処理に移行する(ステップS2510)。
以上のサムネイル画像データの送信中止処理を含む、サムネイル画像データ送受信処理の通信シーケンスの例を図26に示す。
デジタルカメラAの制御部102は、画像データテーブルからサムネイル画像データを読み出し(タイミング2601)、LCDに表示する(タイミング2602)。サムネイル画像データ表示は、デジタルカメラBへの送信までの間に設けたインターバル時間T2秒持続する(ステップS2616)。そして、T2秒後、表示中のサムネイル画像データをデジタルカメラBに対して送信する(タイミング2609)。その後、第1の実施形態と同様に、次の画像データ送信までのインターバル時間T1秒後(タイミング2617)、次の画像データの読み出し処理(タイミング2604)に移行する。
一方で、インターバル時間T2秒は、持続して画像データの表示を行う時間であると共に、ユーザからの画像データ送信拒否中止を指示する入力を受け付ける時間とする。T2秒内に「キャンセル」ボタンが押下されたことを検知すると(タイミング2618)、検知した段階で、本来、次の処理であるデジタルカメラBに対して画像データの送信を行わずに、次の画像データの読み出し処理に移行する(タイミング2605)。そして、読み出したサムネイル画像データをLCDに表示する(タイミング2606)。
T2秒間に送信拒否中止を指示されると、T2秒経過する前に、読み出した次の画像データの表示が行われるので、拒否中止されたサムネイル画像データを表示する時間は、タイミング2618に示すようにT2より短い時間 T2−α(秒)となる。
送信する前にサムネイル画像データを送信側デバイスのLCDに表示することで、ユーザは送信する画像を目視により確認することができ、また、送信拒否中止手段を設けることで、目視した画像データの送信を中止することができる。
以上本発明に係る各実施形態を説明したが、実施形態では、無線通信手段としてBluetoothを例にしたが、これによって本願発明が限定されるものではない。ただし各デバイスのユーザが、互いに、目視で確認できる程度の近距離であることが望ましいので、Bluetooth等、近距離で高速転送が可能な通信手段が望ましい。
上記説明によれば、デバイスから複数枚の画像データを一枚ずつ送信する場合に、ユーザは画像データの選択、送信の指示を一枚ずつ行わなくて済むのでユーザの入力回数が少なくて済む。
また、送信された画像データは、画像データ送信デバイスと画像データ受信デバイスに、同時に表示されているタイミングがあり、それぞれのデバイスのユーザは同じ画像データを同じタイミングで閲覧することができ、共通な画像の閲覧を要求する時間を持つことができる。
さらに、順次送信される画像データを閲覧しながら、欲しいと感じた画像を表示ししているタイミングでユーザが1回の入力を行えば、画像データの取得を行うことができるので、画像データの取得に関してユーザの利便性が上がる。
また、画像データを送信するデバイスにて、送信する画像データは予め送信前に表示される。そして、もし、表示している画像データを送信したくなければ、ユーザ入力によりその時点で画像データの送信を中止することができるので、予め送信する画像データを選択するユーザの手間を省くことができる。
実施形態では、画像送信する側及び受信する側のデバイスが共にデジタルカメラである例を説明した。しかしながら、表示部を有する携帯型のデバイスであれば、これに限らず、PDA、携帯電話、ノートPC等、その種類は問わない。特に、PDAやノートPC等の場合、無線通信手段等のハードウェアを必要とするものの、それと協動動作するアプリケーションによって実現することになる。従って、本発明は、コンピュータプログラムもその範疇にあるのは明らかである。また、通常、コンピュータプログラムは、CD−ROM等のコンピュータ可読記憶媒体に格納されている。プログラムを実行可能とするためには、コンピュータが備える読取り装置(CD−ROMドライブ)等にそれをセットし、システムにコピーもしくはインストールすることになる。従って、このようなコンピュータ可読記憶媒体も当然に本発明の範疇にある。