以下、添付図面を参照して、本発明の実施形態を説明する。以下で説明される個別の実施形態は、本発明の上位概念から下位概念までの種々の概念を理解するために役立つであろう。
なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
[第1の実施形態]
以下、情報処理装置としてのパーソナルコンピュータ(PC)と画像表示装置としてのデジタルカメラとを含む画像表示システムに関する実施形態を説明する。図1に示すように、第1の実施形態に係る画像表示システム10は、PTP規格に基づいて相互に通信可能なデジタルカメラ100とPC101とを含む。なお、PTPは、「Picture Transfer Protocol」の略である。
具体的には、図1に示すように、デジタルカメラ100とPC101とが、通信インターフェース(I/F)102を介してPTP規格に準拠した通信を行う。このデジタルカメラ100は、再生モードに設定された状態で通信I/F102を介してPC101と接続されたことを検知すると、通信モードに遷移する。但し、通信モードにおいても、デジタルカメラ100は、再生モードの場合と同様に画像データを再生することができる。
PC101には、PTP規格に従ってデジタルカメラ100から画像表示情報(詳細は図8を参照して後述)等を受信し、ディスプレイの表示画面をデジタルカメラ100の表示画面に追従させるためのアプリケーションがインストールされている。
なお、通信I/F102は、有線のインターフェースであってもよいし、無線のインターフェースであってもよい。
図2は、デジタルカメラ100及びPC101の内部構成を示すブロック図である。最初に、デジタルカメラ100について説明する。
201は光学系を示す。被写体からの光束が光学系201を通して撮像素子202へ電荷として保持される。撮像素子202で蓄積された電荷が撮像プロセス部203でアナログ画像信号に変換される。撮像プロセス部203から出力されたアナログ画像信号は、A/Dコンバータ204によりデジタル画像信号(以下、「画像データ」と呼ぶ)に変換されて、データバス205を介してRAM210に保存される。
RAM210は、A/Dコンバータ204が出力した画像データや、後述するシステム制御部214が生成した画像ファイルを記憶する。
中央処理部213は、画像処理部207、圧縮伸張部208、表示制御部209、記録再生制御部211、通信制御部212、及び中央制御部215を含む。
画像処理部207は、ホワイトバランス処理、シャープネス処理、ぼかし処理、カラーバランス処理、レベル補正処理等を行う。圧縮伸張部208は、JPEG圧縮処理、JPEG伸張処理等を行う。より詳細には、圧縮伸張部208は、画像処理部207で処理された画像データをJPEG、JPEG2000等の画像圧縮方法に従って圧縮する機能と、圧縮された画像データを伸張する機能とを有する。圧縮率は、ユーザによる設定が可能である。
表示制御部209は、表示部217へのグラフィカルユーザインターフェース(GUI)の描画等を行う。記録再生制御部211は、記憶媒体218へのデータの入出力(I/O)制御を行う。通信制御部212は、通信部219へのデータのI/O制御を行う。
中央制御部215は、上述した各制御部を全体的に制御する。
システム制御部214は、データバス205と接続されている。システム制御部214は、ROM200内の制御プログラムに従ってデジタルカメラ100を制御するマイクロプロセッサを有する。また、システム制御部214は、圧縮伸張部208で圧縮された画像データと付加情報とを含む画像ファイルを生成し、生成した画像ファイルをRAM210に格納する機能を有する。付加情報には、画像データに関する情報、デジタルカメラ100に関する情報、画像データのサムネイル等が含まれる。
また、システム制御部214は、デジタルカメラ100を省電力状態にする機能を有する。ここで、デジタルカメラ100が省電力状態である場合、システム制御部214は、デジタルカメラ100の機能の一部をオフにしてバッテリの消費電力を削減する。
ROM200は、デジタルカメラ100を制御するための制御プログラム、デジタルカメラ100に関する情報等を記憶する。また、ROM200には、表示部217に表示される設定メニューに対応する画像データも記憶されている。
操作部216は、デジタルカメラ100を操作するためのユーザインターフェース(UI)である。操作部216は、デジタルカメラ100の電源をオン又はオフするための電源スイッチ、シャッターボタン、表示部217に設定メニューを表示するためのメニューボタンを有する。操作部216はまた、表示部217に表示されたカーソルを上、下、左、又は右に移動するための十字ボタン、カーソルが選択している画像、項目、値等をデジタルカメラ100に設定又は選択させるためのSETボタン等を有する。シャッターボタンには、半押し状態と全押し状態とがある。シャッターボタンが半押し状態にされると、デジタルカメラ100はAF処理、AE処理等を実行し、シャッターボタンが全押し状態にされると、デジタルカメラ100は画像データの撮像を実行する。操作部216の更なる詳細は、図4を参照して後述する。
表示部217は、液晶パネル等を含み、表示制御部209によって要求された様々な情報を含む画面を表示する。表示部217は、デジタルカメラ100に関する情報を表示する機能、撮像画像を表示する機能、記憶媒体218に保存された撮像画像を表示する機能等を有する。記憶媒体218に保存された撮像画像を表示する場合には、表示部217はその撮像画像に関する情報も表示することができる。また、表示部217は、設定メニュー等のGUIを提供する機能を有する。
記録再生制御部211は、RAM210に格納された画像ファイルを記憶媒体218に書き込む機能と、記憶媒体218に保存された画像ファイルを記憶媒体218から読み出してRAM210に書き込む機能とを有する。記憶媒体218から読み出されてRAM210に書き込まれた画像ファイル内の撮影画像は、システム制御部214によって表示部217に表示される。
記憶媒体218は、フラッシュメモリ等を含み、デジタルカメラ100に電源が投入されていない状態でもデータを保持することが可能である。RAM210に保存された画像(JPEG画像など)を記録再生制御部211の制御に従って格納する。記憶媒体218は、デジタルカメラ100に対して脱着可能であってもよいし、デジタルカメラ100に組み込まれていてもよい。
通信部219は、通信I/F102を介して、PC101の通信部224とデータの送受信を行う。通信部219は、デジタルカメラ100に対して脱着可能であってもよいし、デジタルカメラ100に組み込まれていてもよい。通信制御部212は、通信部219を制御することにより、PTP規格に準拠した通信を行うことができる。
次に、PC101について説明する。
操作部221は、キーボードやマウスなどを含み、ユーザがPC101を操作するために使用される。システム制御部225は、操作部221が受け付けた入力に基づいて、PC101を制御する。
表示部222は、液晶パネル等を含み、表示制御部228により描画された画面を表示する。RAM229は、PC101のオペレーティングシステム(OS)や、アプリケーションを動作させるための揮発性のメモリである。記憶媒体223は、記憶制御部230によるデータの要求に応じてデータを入出力する、不揮発性の記憶装置である。記憶媒体223には、OSやアプリケーションが格納されている。また、RAM229には各種のデータが一次一時記憶される。
通信部224は、通信I/F102を介して、デジタルカメラ100の通信部224とデータの送受信を行う。通信部224は、PC101に対して脱着可能であってもよいし、PC101に組み込まれていてもよい。通信部224は、通信制御部231の制御に従ってデータの送受信を行う。
中央処理部227は、表示制御部228、記憶制御部230、通信制御部231、及び中央制御部226を含む。中央制御部226は、これらの各制御部を全体的に制御する。
図3は、デジタルカメラ100及びPC101において、図2を参照して説明した各ブロックとソフトウェアとの組み合わせによって実装されるモジュールを示す図である。
撮像記録管理モジュール301は、撮像により生成された画像ファイルを、RAM210から記憶媒体218へ記録したり、記憶媒体218に格納された画像ファイルをRAM210へ読み出したりする。
通信管理モジュール302は、PC101との接続を検知し、PC101にデータを送信したり、PC101からデータを受信したりする。本実施形態では、通信管理モジュール302は、PTP規格に準拠した通信を行う。
通信管理モジュール303は、デジタルカメラ100との接続を検知し、デジタルカメラ100にデータを送信したり、デジタルカメラ100からデータを受信したりする。本実施形態では、通信管理モジュール302は、PTP規格に準拠した通信を行う。
データ表示モジュール304は、データ解析管理モジュール305の指示に従い、表示部222に対する画面表示を行う。
データ解析管理モジュール305は、デジタルカメラ100から取得した画像表示情報(詳細は図8を参照して後述)を解析する。データ解析管理モジュール305は、画像表示情報を解析することにより、表示対象の画像データや表示のレイアウトを決定し、必要なデータの取得を通信管理モジュール303に指示する。また、解析結果に基づく表示の実行をデータ表示モジュール304に指示する。
画像表示情報管理モジュール306は、画像表示情報を生成してRAM210へ格納する。画像表示情報管理モジュール306は、デジタルカメラ100の表示部217の表示画面が変化する度に、画像表示情報を更新する。
図4は、デジタルカメラ100の外観の一例を示す図である。電源ボタン401は、デジタルカメラ100の電源をON又はOFFにするためのボタンである。モード切り替えスイッチ402は、デジタルカメラ100の動作モードを切り替えるためのスイッチである。動作モードは、画像を撮影する撮影モード、記憶媒体218に格納された画像データ(静止画像データ、及び動画像データを含む)を表示部217に表示する再生モード等を含む。
シャッターボタン403は、AF処理、AE処理等の開始を指示する第1レリーズスイッチと、静止画又は動画の撮影の開始を指示する第2レリーズスイッチとを有するボタンである。第1レリーズスイッチは、シャッターボタン403が半押しにされるとONになり、第2レリーズスイッチはシャッターボタン403が全押しにされるとONになる。
メニューボタン404は、デジタルカメラ100の設定を変更するための設定メニューを表示部217に表示するためのボタンである。
十字ボタン405は、表示部217に表示されたカーソルを上、下、右、又は左に移動させるためのボタンである。
SETボタン406は、カーソルが選択している項目、画像、値等をデジタルカメラ100に設定又は選択させるためのボタンである。
ディスプレイボタン407は、表示部217をON又はOFFにするためのボタンである。
光源241は、RAM210から記憶媒体218への画像データの転送中や、デジタルカメラ100の起動時、通信開始時などに、点滅したり、点灯したりすることにより、デジタルカメラ100の状態をユーザに通知する。
スピーカ239は、メニューボタン404や、十字ボタン405、SETボタン406やディスプレイボタン407が押下されたときに、音を出力することにより、ボタンの押下が受け付けられたことをユーザに通知する。また、電源ボタン401が押下されたときの起動音や終了音、シャッターボタン403が押下されたときのレリーズ音や合焦音、通信開始時の音などを出力する。また、ユーザは、設定メニューを用いて、これらの音の出力をON又はOFFに設定することができる。
三脚接続部408は、三脚を接続するためのコネクタである。
本実施形態では、電源ボタン401及びシャッターボタン403をデジタルカメラ100の上面に配置する。また、モード切り替えスイッチ402、メニューボタン404、表示部217、十字ボタン405、SETボタン406、及びディスプレイボタン407をデジタルカメラ100の背面に配置する。また、三脚接続部408をデジタルカメラ100の下面に配置する。しかし、これ以外の配置形態が採用されても構わない。
次に、図5乃至図7を参照して、再生モードの詳細を説明する。再生モードでは画像のレイアウトを変えることができる。再生モードは、1枚の画像を表示するシングル再生モード、複数の画像を同時に表示するマルチ再生モード、及び1枚の画像を拡大して表示する拡大再生モードを含む。
図5は、シングル再生モードにおける表示画像の切り替えを説明する図である。デジタルカメラ100の記憶媒体218には、2枚以上の画像が格納されているものとする。図5の左に示すように、表示部217には、記憶媒体218に格納されている猫の写真501が全画面表示されている。十字ボタン405の右ボタンが押下されると、操作部216から、記録再生制御部211へ通知される。記録再生制御部211は、表示すべき画像を記憶媒体218から読み出し、表示部217に表示する。これにより、図5の右に示すように、犬の写真502が表示される。このように、シングル再生モードにおいては、十字ボタン405の押下により、表示画像が切り替わる。
図6は、マルチ再生モードを説明する図である。マルチ再生とは、一画面に複数の画像を再生することである。記憶媒体218には、9枚以上の画像が格納されているものとする。図6の左に示すように、表示部217には、猫の写真501がシングル再生モードで表示されている。この状態で、操作部216に対して特定の操作(例えば、SETボタン406の押下)が行われると、表示部217の表示画像は、図6の右に示すように、複数枚表示601に切り替わる。このとき、記録再生制御部211は、複数枚表示601のために必要な9枚の画像を記憶媒体218から読み出し、表示部217に表示する。
図7は、拡大再生モードを説明する図である。図7の左に示すように、表示部217には、猫の写真501がシングル再生モードで表示されている。この状態で、操作部216に対して特定の操作(例えば、ズームボタン(不図示)の押下)が行われると、表示部217の表示画像は、図7の右に示すように、拡大された猫の写真701に切り替わる。このとき、表示制御部209は、猫の写真501の一部を切り出して拡大された猫の写真701を生成し、表示部217に表示する。
次に、図8を参照して、画像表示情報を説明する。前述の通り、本実施形態では、PC101が、表示部222の表示画面を、デジタルカメラ100の表示部217の表示画面に追従させる。そのためには、PC101は、表示部217の表示画面の状態を知る必要がある。画像表示情報は、表示部217の表示画面の状態を示す情報であり、デジタルカメラ100が生成した画像表示情報をPC101が受信して解析することにより、PC101は、表示部217の表示画面の状態を知ることができる。より具体的には、画像表示情報は、デジタルカメラ100がユーザの指示に従って表示対象として選択した1以上の画像データとレイアウトとを示す。
なお、表示部222の表示画面は、表示部217の表示画面を含んでさえいればよく、両者が完全に一致する必要はない。
画像表示情報は、ユニオン型のデータ構造を持ち、デジタルカメラ100の再生モードによってデータメンバーが変化する。画像表示情報800は、シングル再生モード及び拡大再生モードのための画像表示情報を示す。
画像表示情報800において、Lengthは、デジタルカメラ100がPC101へ転送する必要のあるデータの全長(全容量)を示す。Camera Stateは、デジタルカメラ100の動作モード(再生モード、撮影モード、その他のモード、など)を示す。Camera Mode IDは、Camera Stateが示す動作モードに従属する動作モードを示す。本実施形態においては、Camera Stateが再生モードの場合、Camera Mode IDは、シングル再生モード、マルチ再生モード、又は拡大再生モードのいずれかである。Camera Mode IDに応じて、以降のデータ構造(データメンバー)が変換する。
まず、Camera Mode IDがシングル再生モードの場合を説明する。この場合、図5に示すように、猫の写真501や犬の写真502などが表示部217に表示される。このとき、画像表示情報800は、現在表示している画像データを示す、Object Handleを含む。続いて、画像表示情報800は、Object Handleが示す画像データが示す画像(原画像)のうち、表示部217に表示されている部分を示す座標(X1,Y1),(X2,Y2)を示すデータを含む。但し、シングル再生モードの場合、座標(X1,Y1),(X2,Y2)は、原画像全体に対応するので、座標(X1,Y1),(X2,Y2)を示すデータは省略してもよい。
次に、Camera Mode IDが拡大再生モードの場合を説明する。この場合、図7に示すように、拡大された猫の写真701などが表示部217に表示される。拡大再生モードでは、シングル再生モードと異なり、画像表示情報800は必ず座標(X1,Y1),(X2,Y2)を含む。
次に、マルチ再生モードのための画像表示情報801について説明する。Length,Camera State, Camera Mode IDについては、画像表示情報800と同様である。
続いて、画像表示情報801は、マルチ再生のタイプを示すMultiMode Typeを含む。ここでは、一例として、3×3のマトリクス表示(即ち、図6の複数枚表示601)を挙げる。但し、A×Bのマトリクス表示以外にも、例えば、円形に並べた表示、斜めに並べた表示といった、様々な表示形態を定義することができる。
MultiMode Typeが3×3のマトリクス表示を示す場合、画像表示情報801は、カーソル位置を示すCursor Placeを含む。3×3のマトリクスの各要素に1番〜9番の番号を割り当てることで、どの位置にカーソルがあるかを示すことができる。
続いて、画像表示情報801は、表示されている画像データの数を示すObject Handle Numを含む。この例では、3×3のマトリクス表示が行われるため、9の値が格納される。続いて、画像表示情報801は、Object Handle Numが示す数(即ち、9個)のObject Handleを含む。各Object Handleは、表示されている各画像データを示す。
なお、画像が表示されるべき箇所に、画像が表示されていない場合や、カーソルが特殊な状態にある場合は、特別な値を定義することによって表現することが可能である。例えば、Cursor Placeの値が0の場合は、全画像が選択されている状態を示す。また、Object Handleの値が0の場合は、表示すべき画像データが存在しないことを示す。
図8を参照して、デジタルカメラ100の動作モードが再生モードであり、従属するモードがシングル再生モード、マルチ再生モード、又は拡大再生モードである場合について説明した。しかし、Camera Mode ID以降のデータ構造を定義すれば、デジタルカメラ100が動画再生モード、音声再生モード、或いは、その他別の再生モードである場合にも、本実施形態を拡張することができる。更に、Camera Stateに応じてCamera Mode ID以降のデータ構造を定義すれば、再生モードだけでなく、撮影モードなどにも本実施形態を拡張することができる。
本実施形態の特徴は、画像表示情報が、デジタルカメラ100の表示部217の表示画面の状態を特定可能な最低限の情報のみを含むため、データサイズが比較的小さいことである。従って、画像表示情報の通信は、比較的短時間で行われる。画像表示情報の通信に関する時間的制約がそれほど厳しくなければ、追加的な情報が画像表示情報に含まれても良い。例えば、Object Handleが示す画像データのサムネイルが画像表示情報に含まれてもよい。
図9は、デジタルカメラ100が実行する処理の流れを示すフローチャートである。図9に示す各ステップの処理は、特に断らない限り、システム制御部214がROM200内の制御プログラムを実行することにより実現される。
S901で、デジタルカメラ100は、PC101と接続されたことを検知し、S902に進む。
S902で、デジタルカメラ100は、S903乃至S906に対応する画像表示情報スレッドと、S907乃至S909に対応する画像データスレッドとの、2つのスレッドを開始する。これら2つのスレッドの処理は、並行して実行される。また、画像表示情報スレッドの優先順位は、画像データスレッドの優先順位よりも高い。従って、例えば、後述するS908における画像データ送信処理の実行中であっても、S904における画像表示情報送信処理は割り込んで実行される。
まず、画像表示情報スレッドについて説明する。
S903で、デジタルカメラ100は、画像表示情報管理モジュール306により、表示部217の表示画面に対応する画像表示情報(図8参照)を生成し、RAM210に格納する。この画像表示情報に、更新後の表示画面に表示された画像及びレイアウトの情報(レイアウト情報)が含まれる。
S904で、デジタルカメラ100は、通信管理モジュール302により、デジタルカメラ100の表示が更新された旨を示す更新情報である表示更新イベントをPC101へ送信する。
S904aで、デジタルカメラ100は、PC101から画像表示要求を受信したか否かを判定する。画像表示要求は、表示更新イベントの受信に応じてPC101から送信される。画像表示要求を受信したと判定した場合にはS904bに進み、受信していないと判定した場合にはS905に進む。
S904bで、デジタルカメラ100は、通信管理モジュール302により、現在RAM210に格納されている画像表示情報をPC101へ送信する。
S905で、デジタルカメラ100は、表示画面の切り替えが行われたか否かを判定する。表示画面の切り替えは、例えば図5乃至図7を参照して説明したように、十字ボタン405の右ボタンが押下されたり、SETボタン406が押下されたりした場合に行われる。表示画面の切り替えが行われた場合、S903に戻り、デジタルカメラ100は、切り替え後の表示画面について画像表示情報を生成し、RAM210内の画像表示情報と置き換える。そして、S904に進み、同様の処理を繰り返す。表示画面の切り替えが行われていない場合、S906に進む。
S906では、デジタルカメラ100は、画像表示情報スレッドの終了指示を受け付けたか否かを判定する。画像表示情報スレッドの終了指示は、例えば、デジタルカメラ100とPC101との接続が解除された場合に受け付けられる。終了指示を受け付けた場合、S910に進み、デジタルカメラ100は、画像表示情報スレッドを終了させる。終了指示を受け付けていない場合、S905に戻り、同様の処理を繰り返す。
次に、画像データスレッドについて説明する。
S907で、デジタルカメラ100は、画像データの送信要求を、通信管理モジュール302によりPC101から受信したか否かを判定する。受信した場合、S908に進み、受信していない場合、S909に進む。
S908では、デジタルカメラ100は、画像データの送信要求によってPC101が指定した画像データを、通信管理モジュール302によりPC101へ送信する。次いでS907に戻り、同様の処理を繰り返す。
S909では、デジタルカメラ100は、画像データスレッドの終了指示を受け付けたか否かを判定する。画像データスレッドの終了指示は、例えば、デジタルカメラ100とPC101との接続が解除された場合に受け付けられる。終了指示を受け付けた場合、S910に進み、デジタルカメラ100は、画像データスレッドを終了させる。終了指示を受け付けていない場合、S907に戻り、同様の処理を繰り返す。
図10は、PC101が実行する処理の流れを示すフローチャートである。図10に示す各ステップの処理は、特に断らない限り、システム制御部225が記憶媒体223に格納されているアプリケーションを起動して実行することにより実現される。
S1001で、PC101は、デジタルカメラ100と接続されたことを検知し、S1002に進む。
S1002で、PC101は、記憶媒体223に格納されている、本実施形態に係る処理を実行するためのアプリケーションを起動する。
S1003で、PC101は、S1004乃至S1006に対応する表示更新イベントスレッドと、S1007乃至S1012に対応する画像データスレッドとの、2つのスレッドを開始する。これら2つのスレッドの処理は、並行して実行される。また、表示更新イベントスレッドの優先順位は、画像データスレッドの優先順位よりも高い。従って、例えば、後述するS1010における画像データ受信処理の実行中であっても、S1004における表示更新イベント受信処理は割り込んで実行される。
まず、表示更新イベントスレッドについて説明する。
S1004で、PC101は、通信管理モジュール303により表示更新イベントを受信したか否かを判定する。受信した場合、S1005に進み、受信していない場合、S1005に進む。
S1005で、PC101は、S1004において受信した表示更新イベントを、受信した順序と関連付けて記憶媒体223に記憶する。次いで、S1004に戻り、同様の処理を繰り返す。
S1006では、PC101は、表示更新イベントスレッドの終了指示を受け付けたか否かを判定する。表示更新イベントスレッドの終了指示は、例えば、デジタルカメラ100とPC101との接続が解除された場合に受け付けられる。終了指示を受け付けた場合、S1013に進み、PC101は、表示更新イベントスレッドを終了させる。終了指示を受け付けていない場合、S1004に戻り、同様の処理を繰り返す。
表示更新イベントスレッドでは、S1004において表示更新イベントが受信される度にS1005において記憶媒体223に記憶される。従って、後述するS1008で消去されない限り、表示更新イベントが次々とキューに格納されることになる。
次に、画像データスレッドについて説明する。
S1007で、PC101は、表示更新イベントが記憶媒体223に格納されているか否かを判定する。表示更新イベントが記憶媒体223に納されていればS1008に進み、そうでなければS1012に進む。
S1008で、PC101は、記憶媒体223に格納されている表示更新イベントを全て消去する。但し、最新の(即ち、直近に受信された)表示更新イベントについては、以降の処理で使用するために、例えばRAM229に格納する。最新の表示更新イベントは、表示更新イベントスレッドにおいて言及したキューとは別の場所に格納されればよいので、RAM229ではなく、記憶媒体223に格納されてもよい。S1008の処理により、画像データ取得の制御前に、記憶媒体223(のキュー)に格納されている表示更新イベントが消去される。従って、PC101は、過去に受信された表示更新イベントに従い、画像表示情報を要求することはない。
S1014で、PC101は、デジタルカメラ100に対し、現在の画像表示情報を要求する。
S1015で、PC101は、デジタルカメラ100から送信された画像表示情報を受信する。
S1009aで、PC101は、S1015で受信した画像表示情報が前回の画像表示情報と等しいか否かを判定する(第1判定手段)。等しくなければS1009bに進むが、等しい場合はS1007に戻る。
今回の画像表示情報と前回の画像表示情報は、例えば次のような場合に等しくなる。所与の画像表示情報について後述するS1010でPC101が画像データを取得中に、デジタルカメラ100の表示画面が高速に2回切り替えられ、例えば「図5の左」−>「図5の右」−>「図5の左」のように変化したものとする。この場合、取得中の画像データは猫の写真501に関するものである。そして、この画像データの取得完了後の、最新の画像表示情報は、犬の写真502ではなく、同じく猫の写真501に関するものである。
従って、PC101は、画像データの再取得及び再表示を行う必要が無いので、S1007に戻る。これにより、無駄な処理の実行が防止され、処理が高速化する。
S1009bで、PC101は、データ解析管理モジュール305により最新の画像表示情報を解析し、この画像表示情報が示すレイアウトに従って画像データを表示可能であるか否かを判定する(第2判定手段)。表示可能であればS1010に進み、そうでなければS1007に戻る。
S1010で、PC101は、データ解析管理モジュール305により最新の画像表示情報を解析し、この画像表示情報が示す1以上の画像データを、通信管理モジュール303によりデジタルカメラ100から取得する。
S1011で、PC101は、データ表示モジュール304により、S1010で取得した1以上の画像データを、最新の画像表示情報が示すレイアウトで表示部222に表示する。これにより、デジタルカメラ100の表示部217と同じ表示画面が、PC101の表示部222にも表示される。次いでS1007に戻り、同様の処理を繰り返す。
S1012では、PC101は、画像データスレッドの終了指示を受け付けたか否かを判定する。画像データスレッドの終了指示は、例えば、デジタルカメラ100とPC101との接続が解除された場合に受け付けられる。終了指示を受け付けた場合、S1013に進み、PC101は、画像データスレッドを終了させる。終了指示を受け付けていない場合、S1007に戻り、同様の処理を繰り返す。
ここで、S1007における判定について、更に詳細に説明する。まず、S1007における判定が行われるのは、他の画像表示情報が示す画像データをPC101が取得中でない場合である。PC101が画像データを取得中の場合、S1010における処理が行われているので、取得完了までS1007における判定処理は行われない。
S1007での判定結果は、次の場合に「Yes」になる。第1に、記憶媒体223のキューに画像表示情報が格納されていない状態で、新規に画像表示情報が受信された場合である。この場合、PC101が画像表示情報を受信した際に、これを記憶媒体223に格納するので、判定結果は「Yes」になり、受信した画像表示情報について以降の処理が実行される。第2に、PC101がS1010において画像データを取得中に1以上の画像表示情報を受信した場合である。この場合、受信した画像表示情報は記憶媒体223に格納されるので、取得完了後、処理がS1007に戻ると、S1007での判定結果は「Yes」になり、受信した最新の画像表示情報について、以降の処理が実行される。
図10における特徴の1つは、PC101は、受信した画像表示情報が示すレイアウトを扱えない場合は、画像データの取得や表示を行わないことである。例えば、デジタルカメラ100が、シングル再生モード、拡大再生モード、マルチ再生モードの通知に対応していたとして、PC101のアプリケーションが拡大再生モードに対応していなかったとしたとする。この場合でも、PC101は、シングル再生モードと、拡大再生モードについては、デジタルカメラ100の表示画面に追従することができる。そして、拡大再生モードについては追従せず、最後の表示画面の表示を継続するので、下位互換性を確保した通信が可能である。
図11は、図10のS1010を拡張した、第1の実施形態の変形例を示すフローチャートである。
S1101で、PC101は、画像表示情報が示す1以上の画像データ(取得対象の画像データ)が記憶媒体223にキャッシュされているか否かを判定する。キャッシュされていればS1102に進み、キャッシュされていなければS1103に進む。
S1102では、画像表示情報が示す1以上の画像データが記憶媒体223にキャッシュされているので、PC101は、デジタルカメラ100に代えて記憶媒体223から画像データを取得する。
一方、S1103では、PC101は、デジタルカメラ100から画像データを取得し、S1104で記憶媒体223に格納する。
これにより、以前に取得した画像データを通信により再度デジタルカメラ100から取得する必要が無くなる。従って、通信時間が短縮され、PC101の表示部222の表示画面をより高速にデジタルカメラ100の表示部217の表示画面に追従させることが可能になる。
なお、画像表示情報が示す1以上の画像データのうち一部のみがキャッシュされている場合は、PC101は、キャッシュされている画像データについては記憶媒体223から取得し、それ以外の画像データについてはデジタルカメラ100から取得する。
また、画像データは、記憶媒体223ではなく、RAM229にキャッシュされてもよい。
図12は、第1の実施形態におけるデジタルカメラ100をユーザが操作して、操作することで特定された画像データをPC101で表示するためのシーケンスを示す図である。
図12では、PC101の記憶媒体223又はRAM229に予め、表示すべき画像がキャッシュされていなかったとする。
処理の開始後、ユーザ操作1200では、ユーザが操作を行ったことにより、シングル再生モードで画像が再生されたとする。画像表示情報管理モジュール306は、画像表示情報を生成し、RAM210へ格納する。画像表示情報管理モジュール306は、表示情報が更新されたことをPC101へ通知するために通信管理モジュール302へ通知する。通信管理モジュール302は、PC101の通信管理モジュール303へ通知する。通信管理モジュール302は、受信した表示更新イベントをキューに追加する。はじめイベントキューは、空の状態であるとしたとき、キューにあるイベントの数は1になる。キューに1以上あるときは、通信管理モジュール303は、キューを消費し、空の状態にし、画像表示情報を通信管理モジュール302へ問い合わせる。通信管理モジュール302は、画像表示情報の要求を受信し、画像表示情報管理モジュール306へ問い合わせる。画像表示情報管理モジュール306は、要求に応じてRAM210に格納されている情報を返す。通信管理モジュール302は、図8に定義されるデータ構造に従って、通信管理モジュール303へ応答する。通信管理モジュール303は、図8に定義されるデータ構造をデータ解析管理モジュール305へ通知する。データ解析管理モジュール305は、画像表示情報を解析し、表示に必要となる画像データの取得を開始する。PC101内にはキャッシュデータがないため、デジタルカメラ100へ画像データの取得要求を発行する。通信管理モジュール303、通信管理モジュール302を経由し、撮像記録管理モジュール301は、画像データを記憶媒体218から取得し、通信管理モジュール302、通信管理モジュール303を経由して転送する。必要な情報がそろうと、データ解析管理モジュール305は、描画レイアウトを生成し、表示要求をデータ表示モジュール304へ通知する。データ表示モジュール304は、表示部222に表示を行う。
このシーケンスにおいて、表示すべき情報がPC101に見つからない場合は、デジタルカメラ100へ取得要求を行い、PC101内にある場合には、それを利用することで、より高速に描画を行えるように動作する。
また、PTPの通信において、PTPイベントの中に画像表示情報を含ませて転送させてもよい。この場合、通信管理モジュール303が画像表示情報の取得を行う必要はない。
データ解析管理モジュール305が画像表示情報を解析後、レイアウト方法が理解できないデータ構造であった場合、そこで終了する。これは、S1009bでNoの判断に相当する。
このシーケンスでは、シングル再生モードについて触れているが、マルチ再生モード、拡大再生モードでも同様のシーケンスになる。但し、画像データが複数必要になる表示レイアウトである場合、表示に必要な数だけの画像データを取得するシーケンスが必要になる。
図13は、デジタルカメラ100において表示画面の切り替えが高速に行われた場合のシーケンスを示す図である。
ユーザ操作1200において、データ解析管理モジュール305が画像表示情報を取得している間に、ユーザ操作1300で、ユーザがシングル再生モードで十字ボタン405の右を3連続で操作したものとする。画像表示情報管理モジュール306では、画像表示情報が3回更新されて、通信管理モジュール302、通信管理モジュール303へ表示更新イベントを3回発行する。このとき通信管理モジュール303は、データ解析管理モジュール305が動作しているために動作を待機する。データ解析管理モジュール305の表示要求が終わった後、通信管理モジュール303は動作可能になり、更新イベントキューの数が3つになっているのを空にして、画像表示情報の要求を1回だけ通信管理モジュール302へ行う。通信管理モジュール302は、画像表示情報管理モジュール306へ問い合わせると、RAM210には、4枚目の表示に必要な画像表示情報が格納されているので、これを渡す。通信管理モジュール302を経由し、通信管理モジュール303は、画像表示情報をデータ解析管理モジュール305へ通知する。その後のシーケンスは、図11の場合と同様である。即ち、データ解析を行い、必要に応じて、画像データを入手し、データ表示モジュール304へ表示要求を行う。
デジタルカメラ100では、1,2,3,4枚目が表示部217に表示されるが、PC101では、1,4枚目のみの表示が行われる。
図13におけるシーケンスの特徴の1つとして、次のものが挙げられる。PC101における表示処理を行っている最中に、操作イベントを受け付ける。しかし、通信管理モジュール303が、イベントキューによって、動作可能な状態になったとき、キューに表示更新イベントが複数あった場合でも、それらを全て空にして、1回だけ取得要求を行う。このような特徴的なシーケンスを実現することにより、デジタルカメラ100の操作性に不都合を生じさせず、またPCの処理能力や通信速度の能力にもよらず、可能な限りの処理能力での汎用的なシステムを実現できる。
図13におけるシーケンスは、シングル再生モードを仮定して説明しているが、マルチ再生モード、拡大再生モードなどといった表示にも対応が可能であることがシーケンスの流れからわかる。
また、図13におけるシーケンスは、PTP上で実現するための方法の例であるが、表示更新イベントに、更新情報として画像表示情報を含めてもよい。この場合には、2枚目〜4枚目に関する画像表示情報は、全てキューに保持される。通信管理モジュール303は、キューに複数の画像表示情報がある場合、最も最後に通知されたイベント、ここでは、4枚目の画像表示情報が含まれるイベントを利用し、残りのイベントキューにあるイベントを破棄することで同様の処理を実現することができる。
図14は、デジタルカメラ100をシングル再生モードで1枚目から10枚目まで連続再生したときの、PC101における表示画面の例を示す図である。9枚目の画像は、画像データがPC101へキャッシュされているとする。
図14にあるPC101の表示1400は、1,2,4,5,8,9,10枚目が順に表示されるとする。3枚目、6枚目、7枚目は、PC101の処理速度、もしくは通信速度がデジタルカメラ100の操作に追いつかず、表示されなくなっている。また、9枚目の表示1401は、画像データがPC101にキャッシュされていたため、デジタルカメラ100の表示に追従できたことを示している。
図14は、シングル再生モードで説明しているが、その他のモードで動作するときも同様な表示順序になることが図9〜図13の説明から理解できよう。
以上説明したように、本実施形態によれば、PC101は、デジタルカメラ100から画像表示情報を受信し、この画像表示情報が示す画像データを取得して表示する。画像データの取得・表示中に次々に新しい表示更新イベントを受信した場合は、画像データの表示完了後、直近に受信した表示更新イベントについて画像表示情報を要求し、前記画像表示情報に基づき画像データを取得して表示する。
これにより、画像表示装置の操作性の悪化を抑制しつつ、情報処理装置の表示画面を画像表示装置の表示画面により良く追従させることが可能となる。
[その他の実施形態]
上述した各実施形態の機能を実現するためには、各機能を具現化したソフトウェアのプログラムコードを記録した記録媒体をシステム或は装置に提供してもよい。そして、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによって、上述した各実施形態の機能が実現される。この場合、記録媒体から読み出されたプログラムコード自体が上述した各実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。このようなプログラムコードを供給するための記録媒体としては、例えば、フロッピィ(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスクなどを用いることができる。或いは、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることもできる。
また、上述した各実施形態の機能を実現するための構成は、コンピュータが読み出したプログラムコードを実行することだけには限られない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって上述した各実施形態の機能が実現される場合も含まれている。
更に、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれてもよい。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって上述した各実施形態の機能が実現される場合も含むものである。