以下、図に基づいて本発明の実施の形態を説明する。
実施の形態1.
図1は、本発明の実施の形態1に係る画像出力システムの構成を示すブロック図である。この画像出力システムは、いわゆるダイレクト印刷システムの一種である。図1において、プリンタ装置1は、本発明の画像出力装置の一実施の形態であって、画像出力要求および画像データファイルを受信しその画像出力要求および画像データファイルに基づき画像を印刷する装置である。また、デジタルカメラ装置2は、本発明の画像供給装置の一実施の形態であって、撮影した画像を画像データファイルとして所定の記録媒体に格納し、画像出力要求、その画像出力要求で指定された画像データファイルなどを出力する装置である。
この画像出力要求は、所望の印刷条件でプリンタ装置1に印刷を実行させるための制御コマンドである。この画像出力要求には、1つの画像につき1つの画像データファイルが指定される記述ルールが適用される。したがって、例えば、1枚の印刷用紙に4つの画像が印刷される場合には、通常、4つの画像データファイルが指定される。
通信路3は、プリンタ装置1とデジタルカメラ装置2とを接続する有線の伝送媒体である。この通信路3は、有線の通信路に限定されず、無線の通信路を使用してもよい。この実施の形態1では、通信路3には、USB(Universal Serial Bus)のケーブルが使用される。なお、通信路3が有線通信路である場合には、プリンタ装置1とデジタルカメラ装置2には図示せぬコネクタが設けられ、通信路3のケーブルの両端のコネクタと両装置1,2のコネクタとが、それぞれ接続される。
図1に示すプリンタ装置1において、通信回路11は、通信路3を介して各種情報を電気信号として送受する回路である。また、通信制御部12は、通信回路11を制御し、各種プロトコルに従って通信相手と制御情報(制御コマンド、その応答、機器やジョブの状態通知など)および画像データファイルを送受する回路または装置である。
また、プリンタ装置1において、印刷制御部13は、印刷機構14を制御および監視し、印刷処理を制御する回路または装置である。印刷機構14は、画像を出力する機械的および/または電気的な構成部である。プリンタ装置1の印刷機構14としては、印字機構、紙送り機構などが該当する。また、印刷制御部13および印刷機構14により、画像データファイルに基づき画像を印刷する印刷手段が構成される。
また、プリンタ装置1において、操作部15は、ユーザにより操作され、その操作に応じた信号を出力する回路または装置である。この操作部15としては、各種スイッチ、タッチパネルなどが、適宜使用される。表示装置16は、各種情報を表示する装置である。この表示装置16としては、各種インジケータ、液晶ディスプレイなどが、適宜使用される。電源回路17は、例えば商用電源やAC/DC変換器に接続され、供給された電力を内部の回路に供給する回路である。
図1に示すデジタルカメラ装置2において、通信回路21は、通信路3を介して各種情報を電気信号として送受する回路である。また、通信制御部22は、通信回路21を制御し、各種プロトコルに従って通信相手と情報を送受する回路または装置である。また、中央制御部23は、通信制御部22、記録媒体24などの各種機能の有する回路または装置との間で各種情報の授受を行いながら、各種処理を実行する回路または装置である。
また、デジタルカメラ装置2において、記録媒体24は、画像データを含む1または複数の画像データファイル31を格納する装置である。画像データファイル31は、例えばデジタルカメラにより撮影された画像、その他の画像の画像データを含むファイルである。この画像データの形式は、例えばJPEG(Joint Photographic Experts Group)形式、EXIF(EXchangeable Image File )形式などとされる。
なお、記録媒体24としては、半導体メモリ、半導体メモリを使用したメモリカード、磁気記録媒体、光記録媒体、光磁気記録媒体などが使用され、デジタルカメラ装置2の内部に固定されていてもよいし、デジタルカメラ装置2に対して着脱可能でもよい。
また、デジタルカメラ装置2において、操作部25は、ユーザにより操作され、その操作に応じた信号を出力する回路または装置である。この操作部25としては、各種スイッチ、タッチパネルなどが、適宜使用される。表示装置26は、画像データに基づく画像などの各種情報を表示する装置である。この表示装置26としては、各種インジケータ、液晶ディスプレイなどが、適宜使用される。なお、表示装置26は、各種機能の設定項目をメニュー項目としたメニューを表示する表示手段として機能する。なお、設定項目が所定のコードで表される場合、それに対応するメニュー項目は、その項目を表すテキストとされる。
また、デジタルカメラ装置2において、撮影部27は、レンズなどの光学系、CCD(Charge Coupled Device )などといった撮像素子などを有し、被写体の撮影を行い、撮影した画像に対応する画像データを出力する機構または装置である。
また、バッテリ28は、デジタルカメラ装置2の内部回路に電力を供給する電池である。なお、バッテリ28としては、蓄電池、使い捨て電池などが使用される。また、デジタルカメラ装置2が可搬性を要求される装置である場合には、電源としてバッテリ28が設けられるが、デジタルカメラ装置2が可搬性を要求されない装置である場合には、電源としてプリンタ装置1の電源回路17のような電源回路を代わりに設けるようにしてもよいし、プリンタ装置1から通信路3を介して電力供給を受けるようにしてもよい。
図2は、本発明の実施の形態1に係る画像出力システムにおけるプリンタ装置1のハードウェア構成例を示すブロック図である。図2において、CPU41は、コンピュータプログラムを実行し、プログラムに記述された処理を実行する演算装置である。また、ROM42は、コンピュータプログラムおよびデータを予め記憶したメモリである。また、RAM43は、コンピュータプログラムを実行する際にそのプログラムおよびデータを一時的に記憶するメモリである。
なお、CPU41が実行するコンピュータプログラムとして、画像データファイルの画像データに対して色変換、ハーフトーニングなどの画像処理を施すためのプログラム、その画像データから印刷用の制御データ(ESC/Pなどといった印刷制御コマンド)を生成するためのプログラム、ダイレクト印刷に係る制御情報および画像データの転送のためのプロトコルに従って処理を行うためのプログラムなどがROM42、不揮発性メモリ46または図示せぬ他の記録媒体に格納されている。
また、図2において、プリントエンジン44は、CPU41から供給される印刷用の制御データに基づいて印刷機構14を制御して印刷処理を実行する回路または装置である。
また、USBホスト側インタフェース45は、図1の通信回路11に該当し、USBに規定されたホスト側のインタフェース回路である。
また、不揮発性メモリ46は、各種設定やその履歴などを記憶する記憶手段としての不揮発性の半導体メモリである。なお、この記憶手段としては、半導体メモリの代わりに、磁気記録媒体などの他の記録媒体を使用してもよい。
バス47は、CPU41、ROM42、RAM43、プリントエンジン44、USBホスト側インタフェース45、不揮発性メモリ46、操作部15および表示装置16を相互に接続する信号路である。なお、バス47の本数、およびCPU41、プリントエンジン44などのバス47への接続のトポロジは、図2のものに限定されるものではない。なお、図2における操作部15および表示装置16は、図1のものと同様である。
図3は、本発明の実施の形態1に係る画像出力システムにおけるデジタルカメラ装置2のハードウェア構成例を示すブロック図である。図3において、CPU61は、プログラムを実行し、プログラムに記述された処理を実行する演算装置である。また、ROM62は、プログラムおよびデータを予め記憶したメモリである。また、RAM63は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶するメモリである。
なお、CPU61が実行するプログラムとしては、撮影時やデータ転送時などに各部の制御を行うためのプログラム、ダイレクト印刷に係る制御情報および画像データの転送のためのプロトコルに従って処理を行うためのプログラム、画像データファイルの管理を行うためのプログラムなどがROM62または図示せぬ他の記録媒体に格納されている。
また、図3において、メモリカード65は、図1の記録媒体24に該当し、撮影により得られた画像データなどを格納する記録媒体である。なお、メモリカード65の代わりに、装置内に固定された半導体メモリ、磁気記録装置などを使用するようにしてもよい。
また、USBデバイス側インタフェース66は、図1の通信回路21に該当し、USBに規定されたデバイス側のインタフェース回路である。
バス67は、CPU61、ROM62、RAM63、メモリカード65、USBデバイス側インタフェース66、操作部25、表示装置26および撮影部27を相互に接続する信号路である。なお、バス67の本数、およびCPU61などのバス67への接続のトポロジは、図3のものに限定されるものではない。なお、図3における操作部25、表示装置26および撮影部27は、図1のものと同様である。
図4は、本発明の実施の形態1に係る画像出力システムにおいて、プリンタ装置1とデジタルカメラ装置2との間で使用されるプロトコル階層の一例を示す図である。図4(A)は、印刷システム全体のプロトコル階層を示す図であり、図4(B)は、そのうちのDPDP層84a,84bの詳細なプロトコル構成を示す図である。
この実施の形態1では、まず、物理層81として、USBケーブルである通信路3、並びにUSBホスト側インタフェース45およびUSBデバイス側インタフェース66内の図示せぬ信号送受信回路が使用される。そして、この実施の形態1におけるプリンタ装置1およびデジタルカメラ装置2では、その物理層を制御する層として、USBホスト側インタフェース45およびUSBデバイス側インタフェース66により実現されるUSB層82a,82bがあり、USBクラスとしてスチルイメージクラス(SIC)が使用される。これにより、データ伝送路が実現される。なお、USB規格については、現在USB1.1、USB2.0など存在するが、将来提案される次バージョン以降のものでもよく、USBと同等の通信規格のものを代わりに使用してもよい。なお、通信路3にUSBを使用する場合、プリンタ装置1がUSBホストとなり、デジタルカメラ装置2がUSBデバイスとなる。
そして、その上位において、デジタル静止画装置(DSPD)の外部からの制御やデジタル静止画装置(DSPD)の外部への画像データ転送を規定した画像転送プロトコル(PTP)が使用される。PTP層83a,83bは、PTPに基づいてデータファイルの転送を行う処理部である。なお、PTPの標準規格としては、PHOTOGRAPHIC AND IMAGING MANUFACTURERS ASSOCIATION,INCの「PIMA15740:2000」がある。PTPは、DSPD間での画像データの交換のための通信方式を提供するプロトコルであり、PTPでは、ストレージ内のオブジェクト(画像データファイルなど)は、パスではなく、オブジェクトハンドルで指定される。
この実施の形態1では、上述のPTPの上位で、デジタルカメラ装置2に格納された画像データを、通信路3を介して直接、プリンタ装置1へ供給して印刷を行うためのプロトコルであるDPDPプロトコルに基づいて印刷に係る制御情報の送受および印刷処理を行うDPDP層84a,84bが使用される。DPDP層84a,84bでは、プリンタ装置1とデジタルカメラ装置2との間で、印刷処理に係る制御情報が、マークアップ言語(ここでは、XML;eXtensible Markup Language)で記述した一連のスクリプト(すなわち、テキストデータ)として通信路3を介して送受される。なお、印刷処理に係る制御情報としては、印刷処理における各種コマンド、そのコマンドに対する応答、装置や印刷ジョブの状態の通知などがある。また、このスクリプトには、制御情報のみが含まれ、印刷の対象となる画像データファイル自体は含まれない。すなわち、画像データファイルの格納場所などの情報はこのスクリプトに含まれるが、画像データそのものは含まれない。
上述の各プロトコルのうち、物理層81が、この実施の形態1では、通信回路11、通信路3および通信回路21により実現され、USB層82a,82bが、通信回路11および通信回路21により実現され、PTP層83a,83bおよびDPDP層84a,84bが、通信制御部12および通信制御部22により実現される。なお、通信制御部12および通信制御部22は、プログラムがCPU41,61により実行されることで実現される。
そして、DPDP層84a,84bでは、DPDP層84a,84bと複数種類の下位層との整合性を得るために、DPDP層84a,84bの最下位層に、下位層の入出力フォーマット(コマンドセット、応答のフォーマット)に対応して制御情報の授受を行うトランスポート層91が設けられる。このため、DPDP層84a,84bの下位層は、PTP層83a,83bに限定されず、その下位層に応じてトランスポート層91を変更すればよい。
また、DPDP層84a,84bでは、トランスポート層91の上位に、制御情報を含むXMLスクリプトの生成および解釈を行うXML処理層92が設けられ、さらに、XML処理層92の上位に、制御情報を送受してダイレクト印刷処理を進行させるアプリケーション層93が設けられる。
この実施の形態1では、DPDP層84a,84bは、互いに連携し、フレーム挿入印刷機能を実現する。その際、画像出力要求において、フレーム挿入印刷用のレイアウト定義ファイルと画像データファイルがいずれも画像データファイルとして指定され、ファイル名印刷に使用されるファイル名の指定を利用して、印刷ジョブがフレーム挿入印刷であるか否かが区別される。
ここで、フレーム挿入印刷機能(以下、PIF機能という)について説明する。なお、以下、PIF機能を使用した印刷をPIF印刷という。
図5は、PIF機能の概念を説明する図である。図6は、PIF印刷の場合の印刷画像の一例を示す図である。PIF機能を使用した場合、例えば図5に示すように、同一の画像エリアに、複数の画像121,122,123が重畳した状態で印刷される。その場合に、例えば、それらの画像121,122,123のうちの1つの画像123は、フレーム画像であり、フレーム画像データには、他の画像122が表示される透明なエリアに関する情報(例えば、そのエリアの位置、透明率など)が記述される。そして、図6に示すように、背景の画像121の画像データ、印刷対象とされるメインの画像122の画像データ、およびフレーム画像である画像123のデータが合成されて、1枚の画像131の画像データが生成され、その画像データに基づき合成後の画像131が印刷される。
PIF印刷の場合のメイン画像122の位置、背景画像およびフレーム画像のレイアウトは、レイアウト定義ファイルにおいて定義される。図7は、実施の形態1におけるレイアウト定義ファイルの一例を示す図である。レイアウト定義ファイル32は、画像データファイル31とは別のファイルとされ、レイアウトデータ32aとフレーム画像データ32bとを有する。レイアウトデータ32aは、画像の嵌め込み位置などを定義するデータである。フレーム画像データ32bは、フレーム画像のJPEGデータである。レイアウト定義ファイル32のファイル名の拡張子は、使用可能な画像データファイルの拡張子のいずれとも異なるものとされる。
図8は、レイアウト定義ファイル32におけるレイアウトデータ32aの一例を示す図である。図8に示すように、レイアウトデータ32aには、ヘッダ情報(見出し[HEADER]で始まる部分)と、ページ情報(見出し[PAGE]で始まる部分)が記述される。
ヘッダ情報には、レイアウト定義ファイルに関する情報が含まれている。例えば、ヘッダ情報には、変数「HdKeyWord 」、変数「HdDirection 」、変数「HdSound 」と、変数「HdThumbnail 」と、変数「HdPhysicalPaperSize 」、変数「HdMargines」などが含まれる。
変数「HdKeyWord 」は、ページレイアウトに関する特定のまたはユーザ所望のキーワードを値として有する変数である。例えば図8では、「Christmas 」や「Greeting」とされている。なお、このキーワードには、半角英数字に限らず所望の文字コードの文字を使用することができる。「HdKeyWord 」によるキーワードに基づいてレイアウト定義ファイルが検索される。
変数「HdDirection 」は、ページレイアウトの表示方向情報を値として有する変数である。表示方向は、デジタルカメラのファインダまたは表示画面に表示されるとき、あるいは印刷されるときのページレイアウトの向きであり、例えば縦向きや横向きとされる。
変数「HdSound 」は、サウンドファイル情報、すなわち、レイアウト定義ファイルに関連付けられているサウンドファイルのポインタを値として有する変数である。変数「HdSound 」の値は、例えば、サウンドファイルのファイル名(例えば図8に示すように「GSOUND.PCM」)と相対パス名(例えば図8に示すように「\EPUDL\ 」)とされる。相対パス名の代わりに絶対的なパス名を使用してもよい。以下、ファイルポインタの表現方法は、この場合と同様とすることができるものとする。このように、レイアウト定義ファイルにはサウンドファイルを関連付けることが可能であり、例えば、このレイアウト定義ファイルが外部出力される場合には、そのサウンドファイルも出力されるようにしてもよい。サウンドファイルは、所定のときに再生される。例えば、そのレイアウト定義ファイルに記述されているページレイアウトがデジタルカメラのファインダまたは表示部、プリンタの表示部などに表示されたとき、そのページレイアウトを含んだページデザインが印刷されるときなどに、そのサウンドファイルに記録されているが音声などが自動的に再生される。
変数「HdThumbnail 」は、サムネイル情報、すなわち、ページレイアウトのサムネイル画像の画像データファイルのポインタを値として有する変数である。なお、このサムネイル画像は、特定の装置(パーソナルコンピュータ、携帯電話機、デジタルカメラ、プリンタなど)を用いて作成される。なお、ユーザの操作に応じて、サムネイル画像を配列した複数のページレイアウトの一覧が表示されたり印刷されたりするようにしてもよい。
変数「HdPhysicalPaperSize 」は、物理的なページサイズ情報、すなわち、ページレイアウトを印刷した場合に、そのページレイアウトのサイズに完全にマッチする用紙サイズを値として有する変数である。
変数「HdMargines」は、印刷マージン情報、すなわち、印刷用紙に対してどの程度の余白を残してページレイアウトを印刷するかを表す情報を値として有する変数である。例えば図8に示すように、変数「HdMargines」の値を「3, 3, 3, 3」とした場合には、方形の用紙の上下左右の縁に3ミリメートルの余白が生じるように印刷が行われる。なお、印刷マージンの数値は、正の値に限らず、ゼロまたは負の値であってもよい。そのようにした場合は、余白が全く形成されずに印刷が行われる。
また、レイアウト定義ファイル内のページ情報には、ページレイアウトの属性に関する情報が含まれる。例えば、ページ情報には、関数「Draw Picture」、関数「Draw Strings」、関数「Draw Line 」などが含まれる。
関数「Draw Picture」は、画像エリアに関する情報などを引数として画像を描画する関数である。
関数「Draw Picture」の第1引数は、画像エリアに適用されるターゲット画像のファイルを関連付ける画像ファイルポインタである。第1引数の画像ファイルポインタの値は、レイアウト定義ファイルの生成時にターゲット画像が決まっている場合には、そのターゲット画像のファイルポインタとされ、レイアウト定義ファイルの生成時にターゲット画像が決まっていない場合には、NULL(空)とされる。ページレイアウトの画像エリアに適用される背景の画像121が予め決定されているときは、その画像のファイルポインタが、第1引数として記述される。なお、適用される画像の種類をファイル名の拡張子によって識別するようにしてもよい。例えば、背景画像の場合には拡張子「EFF」とすればよい。なお、レイアウト定義ファイルの生成時にターゲット画像が決まっていない場合には、ターゲット画像が印刷ジョブ開始コマンド内などで指定される。
関数「Draw Picture」の第2の引数は、画像エリアのフォトIDである。フォトIDの値は、適用される画像が未決定の場合には1以上の整数とされ、適用される画像が決定済みである場合には、ゼロとされる。
関数「Draw Picture」の第3引数から第6引数までは、方形の画像エリアの外形を示す対角線上の2点のX−Y座標値である。なお、画像エリアの外形は、方形に限らず、多角形、真円、長円などといった形状でもよく、画像エリアの外形を示す方法は、座標を記述する方法に限らず、例えば、境界線を表す関数式でもよい。
関数「Draw Picture」の第7引数は、画像エリアに適用される画像を回転させる程度を示す回転度合情報である。回転度合情報は、所定の範囲(例えば0度〜360度)の範囲で設定することが可能である。
関数「Draw Picture」の第8引数は、画像に対して適用するフィッティング規則を指定する数値である。フィッティング規則としては、例えば、画像エリア内に余白が生じるか否かに拘わらず画像をそのまま適用するといった規則、ユーザ所望の縦横比を維持しながらユーザ所望の範囲が表示されるように画像を画像エリアに余白を生じさせること無く適用するといった規則などがある。
関数「Draw Picture」の第9引数は、画像エリアにおいて画像を配置する位置を決定する位置合わせ規則を指定する数値である。位置合わせ規則としては、例えば、左上合わせ(画像エリアの左上頂点に画像の左上頂点を合わせる方法)、中央合わせ(画像エリアの中央に画像の中央に合わせる方法)などがある。
また、ページ情報のうちの関数「Draw Strings」は、引数で指定された位置に、引数で指定された文字、図形等の飾り部品を描画する関数である。関数「Draw Strings」の構造は、ページレイアウトにどのような飾り部品が適用されるかによって異なる。
関数「Draw Strings」の第1引数は、飾り部品の適用のために使用される画像ファイルのポインタである。関数「Draw Strings」の第2引数は、画像エリアのフォトIDである。
関数「Draw Strings」の第3引数は、飾り部品の内容を表す第1の飾り部品情報である。図8では、この第2引数は、「%G, %d, %y」とされている。この値「%G, %d, %y」は、使用画像情報として記述されている画像ファイル中の画像の撮影年月日を示す文字列を表す。なお、撮影年月日を示す文字列の代わりに、ユーザ所望の文字列を記述してもよい。
関数「Draw Strings」の第4引数から第7引数までは、第1の飾り部品情報により指定される飾り部品が配置される位置を示す飾り部品適用位置情報である。図8では、第4引数から第7引数までは、画像エリア外形の指定と同様の形式で、「100, 200, 200, 300」とされている。
関数「Draw Strings」の第8引数から第12引数までは、適用される飾り部品の属性を示す第2の飾り部品情報である。図8では、第8引数から第12引数までは、「“Mincho”, 0, 128, 128, 128」とされている。図8では、第8引数から第12引数までに記述された属性は、上述した飾り部品適用位置に入れ込まれる撮影年月日を表す文字の属性である。ここでは、明朝体で、8ポイントの大きさで、RGB各色が128の値を持った色で、撮影年月日を表す文字列が記述されることが表わされている。
また、ページ情報のうちの関数「Draw Line 」は、ページレイアウトに適用される線を描画する関数である。関数「Draw Line 」は、8個の引数をとり、第1引数および第2引数が、線の始端座標であり、第3引数および第4引数が線の周端座標である。そして、第5引数から第8引数までは、描画される線の属性情報(線の太さおよびRGB値)である。図8では、第5引数から第8引数までは、「5, 255, 0, 0」とされており、線の太さが5ポイントとされ、線の色についてR値が255、G値が0、B値が0とされている。
PIF印刷を行う場合、上述のレイアウト定義ファイル32に基づいて、プリンタなどにより複数の画像121,122,123が合成され、合成後の画像が印刷される。
なお、プリンタ装置1の通信回路11およびデジタルカメラ装置1の通信回路21は、データ通信を行う通信手段として機能する。また、プリンタ装置1の印刷制御部13は、所定の画像出力形式(実施の形態1では、PIF印刷形式)に従って複数のデータファイルに基づき画像を出力する画像出力手段として機能する。
また、デジタルカメラ装置2のDPDP層84bは、通信手段を制御して、複数のデータファイルを使用して1つの画像を出力する画像出力形式のために使用される複数のデータファイルを画像データファイルとして指定した画像出力要求をプリンタ装置1に送信する通信制御手段として機能する。また、DPDP層84bは、その画像出力要求を生成する要求生成手段としても機能する。
また、プリンタ装置1のDPDP層84aは、通信手段(実施の形態1では通信回路11)により画像出力要求を受信すると、画像出力要求において指定されている画像データファイル名に基づいて、画像データファイルとして指定されたファイルがレイアウト定義ファイルであるか否かを判定し、レイアウト定義ファイルが指定されていると判定した場合には、レイアウト定義ファイルに含まれるレイアウトデータに基づいて画像出力を画像出力手段(実施の形態1では印刷制御部13)に実行させる制御手段として機能する。
次に、実施の形態1に係る画像出力システムにおける各装置の動作について説明する。図9は、実施の形態1に係る画像出力システムにおいてPIF印刷時に使用される画像出力要求のXMLスクリプトの一例を示す図である。図10は、実施の形態1に係る画像出力システムにおけるプリンタ装置1の動作を説明するフローチャートである。
プリンタ装置1およびデジタルカメラ装置2では、起動後に、CPU41,61が、ROM42,62などに予め記憶されている各種プログラムを実行する。これにより、プリンタ装置1およびデジタルカメラ装置2において、通信制御部12,22、印刷制御部13および中央制御部23が実現され、図4に示す階層的な処理部が実現される。
その後、ユーザによりプリンタ装置1とデジタルカメラ装置2が通信路3により物理的に接続されると、まず、USB層82a,82bのエンティティにより両者の間のスティルイメージクラスに基づくデータ伝送路が確立される。そして、USBによる伝送路が確立されると、そのUSB層82a,82bの上位にて、そのデータ伝送路を使用するPTP層83a,83bのエンティティが起動される。なお、USB層82a,82bおよびUSB層82a,82bより上位の各プロトコル層のエンティティ(通信主体)は、通信制御部12,22により実現される。
そして、プリンタ装置1とデジタルカメラ装置2は、それぞれ所定の名称のファイルを格納しておき(あるいは、仮想的に格納しているように見せかけて)、通信制御部12,22により、PTPに基づいてそのファイルが検出された場合に、DPDPプロトコルに対応している機器が通信相手として接続されたことを検知する。このコネクション処理により、自己が使用しているものと同一のプロトコル(ここでは、DPDPプロトコル)を通信相手が使用していることが保証される。このコネクション処理により、通信相手としてDPDPプロトコルに対応した機器が接続されると、プリンタ装置1およびデジタルカメラ装置2の通信制御部12,22は、DPDP層84a,84bによりDPDPプロトコルに従った処理を開始する。
コネクション処理により、通信相手としてDPDPプロトコルに対応したプリンタ装置1が検出されると、デジタルカメラ装置2のDPDP層84bは、DPDPプロトコルのバージョン情報、デジタルカメラ装置2のベンダ名称、このデジタルカメラ装置2に関するベンダ固有のバージョン情報、デジタルカメラ装置2の製品名、デジタルカメラ装置2のシリアル番号などを含む環境情報をプリンタ装置1へ通知する。そして、プリンタ装置1のDPDP層84aは、その環境情報を受信すると、このデジタルカメラ装置2と連携してDPDPプロトコルに従ったダイレクト印刷を実行可能か否かを判断し、DPDPプロトコルに従ったダイレクト印刷を受け付けるか否かを示す情報、DPDPプロトコルのバージョン情報、プリンタ装置1のベンダ名称、このプリンタ装置1に関するベンダ固有のバージョン情報、プリンタ装置1の製品名、プリンタ装置1のシリアル番号などを含む環境情報を有する応答をデジタルカメラ装置2に送信する。デジタルカメラ装置2のDPDP層84bは、そのプリンタ装置1の環境情報を含む応答を受信する。
このとき、デジタルカメラ装置2のDPDP層84bは、DPDPプロトコルに従って、XMLスクリプトで記述された所定の制御コマンドを生成し送信する。プリンタ装置1のDPDP層84aは、その制御コマンドを受信すると、DPDPプロトコルに従って、自己の環境情報を含む応答としてXMLスクリプトを生成し送信する。
なお、デジタルカメラ装置2のDPDP層84bが制御コマンドを生成し送信する場合、アプリケーション層93からXML処理層92へ制御コマンドの情報(コマンド種類など)が渡され、XML処理層92が、その情報に基づいてXMLスクリプトを生成し、トランスポート層91が、そのXMLスクリプトの転送命令を下位のプロトコル(ここではPTP)に供給する。そして、プリンタ装置1のDPDP層84aが制御コマンドを受信する場合、下位のプロトコル(ここではPTP)からトランスポート層91へデータとして制御コマンドが渡され、XML処理層92が、その制御コマンドのXMLスクリプトから制御コマンドの情報を抽出し、アプリケーション層93が、その制御コマンドの情報に基づいて指定された処理を実行する。このようにして、制御コマンドが、DPDP層84a,84b間で転送される。制御コマンドの応答、機器またはジョブの状態通知などの他の制御情報についても同様に転送される。
デジタルカメラ装置2のDPDP層84bは、ダイレクト印刷を実行可能である旨の応答を受信すると、プリンタ装置1に設けられる複数の機能の設定項目のそれぞれについての選択肢情報をプリンタ装置1から取得する。その際、デジタルカメラ装置2のDPDP層84bは、選択肢情報の送信要求である制御コマンドを送信する。プリンタ装置1のDPDP層84aは、その制御コマンドを受信すると、選択肢情報を含む応答を送信する。デジタルカメラ装置2のDPDP層84bは、その応答を受信し、選択肢情報を取得する。
このようにして接続時の初期処理が完了すると、デジタルカメラ装置2は、ダイレクト印刷についてのユーザによる操作を受付可能となる。
その後、ユーザが、デジタルカメラ装置2の操作部25に対して所定の操作を行い、PIF印刷を行う旨の指令を入力すると、デジタルカメラ装置2のDPDP層84bは、その指令を受け付ける。デジタルカメラ装置2のDPDP層84bは、操作部25および表示装置26によるユーザインタフェースに基づいて、PIF印刷のための、ユーザ所望のレイアウト定義ファイル(すなわち、フレーム画像および背景画像を含むレイアウト)、並びに画像データファイルを特定する。
そして、デジタルカメラ装置2のDPDP層84bは、レイアウト定義ファイル32およびメイン画像の画像データファイル31を指定した画像出力要求を生成する。その際、画像出力要求のXMLスクリプトでは、そのXMLスクリプトにおいて指定される画像データファイルの種類が、デフォルトとされ、画像データファイル名印刷機能の設定項目の値が、オン以外の値、つまり、オフまたはデフォルトとされる。なお、デフォルトが設定されている場合には、このXMLスクリプトを受信するプリンタ装置1が、その設定項目の値を決定する。さらに、レイアウト定義ファイル32が、画像データファイル31と同様に指定され、その画像データファイルの指定に対して、画像データファイル名印刷用の画像データファイル名としてレイアウト定義ファイル32のファイル名が指定される。そして、そのレイアウト定義ファイル32に対する指定の後に、メイン画像の画像データファイル31が指定される。
図9は、PIF印刷時に、実施の形態1において図7に示すレイアウト定義ファイル32と画像データファイル31が選択された場合のXMLスクリプトを示している。レイアウト定義ファイル32のファイルIDは「FFFF0001」であり、画像データファイル31のファイルIDは「00000001」である。
図9に示すXMLスクリプトでは、そのXMLスクリプトにおいて指定される画像データファイルの種類が、タグ<ImageFileType>,</ImageFileType>により「Default」(つまりデフォルト)と指定されている。PIF印刷のようなあるベンダ固有の印刷機能についての専用データファイルのファイル形式は、予めDPDPプロトコルでは定義されていない。このため、ファイルの種類が「Default」とされる。
また、画像データファイル名の印刷機能の設定項目の値が、タグ<ImageFileNamePrint>,</ImageFileNamePrint>によりOFF(つまりオフ)と設定されている。つまり、画像とともに画像データファイル名を印刷しない設定とされている。なお、画像とともにファイル名が印刷される場合には、印刷領域の右下隅や左下隅などに画像に比べて小さくファイル名の文字列が印刷される。
さらに、レイアウト定義ファイル32のファイルIDが、画像データファイルのファイルIDを指定するタグ<ImageFileID>,</ImageFileID>により「FFFF0001」と指定されている。
さらに、そのレイアウト定義ファイル32のファイルIDの指定の直後に、そのファイルIDのファイル名を印刷するための画像データファイル名が、タグ<ImageFileName>,</ImageFileName>により「PIF_FILE.FD2」と指定されている。ここでは、レイアウト定義ファイル32のファイル名が指定されているが、この欄は、本来、画像データファイルのファイル名を指定するためのものである。
つまり、この実施の形態1では、画像データファイル名の印刷が実行されないように指定した上で、レイアウト定義ファイル32のファイルIDの指定に関連付けて画像データファイル名印刷用の画像データファイル名として、レイアウト定義ファイル32のファイル名の文字列が設定される。このように、画像データファイルのファイルIDを指定するタグを使用してレイアウト定義ファイル32のファイルIDを指定し、その指定に関連付けて、画像データファイル名印刷用の画像データファイル名として、レイアウト定義ファイル32のファイル名が設定される。
なお、図9に示すXMLスクリプトのうち、タグ<DPDP_Request>,</DPDP_Request>は、このXMLスクリプトがDPDPに基づく要求(制御コマンド)であることを示し、タグ<Job>,</Job>は、画像出力要求であることを示している。
次に、デジタルカメラ装置2のDPDP層84bは、この画像出力要求のXMLスクリプトを、PTP層83b以下の処理層を使用して送信する。このXMLスクリプトは、通信路3を介してプリンタ装置1へ転送される。
そして、プリンタ装置1のDPDP層84aは、PTP層83a以下の処理層により転送されてきた画像出力要求のXMLスクリプトを受信する(ステップS1)。
プリンタ装置1のDPDP層84aは、その内容を解析し、ファイル名印刷がオンに設定されているか否かを判定する(ステップS2)。その際、DPDP層84aは、タグ<ImageFileNamePrint>,</ImageFileNamePrint>を検索し、それらのタグに囲まれた文字列からファイル名印刷がオンであるか否かを判定する。
画像出力要求においてファイル名印刷がオンに設定されていない場合、つまり、ファイル名印刷がオフまたはデフォルトに設定されている場合には、プリンタ装置1のDPDP層84aは、画像出力要求における最初の画像データファイルの指定に対してファイル名印刷用のファイル名が指定されているか否かを判定する(ステップS3)。
例えば、図9に示すXMLスクリプトの場合、最初の画像データファイルの指定「<imageFileID>FFFF0001</imageFileID>」の直後に、ファイル名印刷用のファイル名の指定「<imageFileName>PIF_FILE.FD2</imageFileName>」が存在するので、最初の画像データファイルの指定に対してファイル名印刷用のファイル名が指定されていると判定される。
なお、プリンタ装置1のDPDP層84aは、画像出力要求の先頭から検索していき、タグ<imageFileID>,</imageFileID>を検出する。そして、DPDP層84aは、これらのタグにより指定されているファイルIDを、画像データファイルのファイルIDとして検出する。つまり、このとき、DPDP層84aは、画像データファイルのファイルIDの検出を行う。
最初の画像データファイルの指定に対してファイル名印刷用のファイル名が指定されている場合、プリンタ装置1のDPDP層84aは、ファイル名印刷用のファイル名の拡張子がレイアウト定義ファイルの拡張子であるか否かを判定する(ステップS4)。
この実施の形態1では、DPDP層84aには、レイアウト定義ファイルの拡張子が「.fd2」と予め定義されている。したがって、図9に示す画像出力要求の場合、ファイル名印刷用のファイル名の拡張子がレイアウト定義ファイルの拡張子であると判定される。
ファイル名印刷用のファイル名の拡張子がレイアウト定義ファイルの拡張子であると判定した場合、プリンタ装置1のDPDP層84aは、画像出力要求において最初に指定されているファイルIDのファイルを、レイアウト定義ファイルとして、デジタルカメラ装置2から取得する(ステップS5)。
その際、プリンタ装置1のDPDP層84aは、そのファイルIDを指定したファイル送信要求(制御コマンド)を生成し、デジタルカメラ装置2へ送信する。デジタルカメラ装置のDPDP層84bは、そのファイル送信要求により指定されたファイルIDを有するデータファイルを記録媒体24から読み出し、プリンタ装置1へ送信する。プリンタ装置1のDPDP層84aは、そのデータファイルを受信する。このようにして、プリンタ装置1は、画像出力要求において最初に指定されたファイルを取得する。
また、このファイル送信要求は、通信路3を介してプリンタ装置1からデジタルカメラ装置2へ転送される。そして、データファイルは、通信路3を介してデジタルカメラ装置2からプリンタ装置1へ転送される。デジタルカメラ装置2のDPDP層84bは、PTP層83a以下の処理層により転送されてきたファイル送信要求のXMLスクリプトを受信すると、指定されたデータファイルを、PTP層83bを使用して転送する。なお、この処理においては、DPDPプロトコルのファイル転送要求をPTPのファイル転送要求GetObjectに変換し、DPDP層84aおよびPTP層83a,83bのみでファイル転送を行うようにしてもよい。
その後、プリンタ装置1のDPDP層84aは、画像出力要求において指定されている残りのデータファイルを、フレーム画像の画像データファイルとして、デジタルカメラ装置2から取得する(ステップS6)。例えば図9に示す画像出力要求の場合、ファイルIDが「00000001」である画像データファイル31が、メイン画像の画像データファイルとしてプリンタ装置1により取得される。
そして、プリンタ装置1のDPDP層84aは、取得したレイアウト定義ファイルとメイン画像の画像データファイル31に基づいて、印刷制御部13および印刷機構14によりPIF印刷を実行させる(ステップS7)。その際、レイアウト定義ファイル32内のフレーム画像データ32bによる画像と画像データファイル31による画像とが合成されフレーム挿入画像とされる。これにより、例えば図6に示すような1つの画像131が印刷される。
一方、画像出力要求においてファイル名印刷がオンに指定されている場合(ステップS2)、最初のファイル指定に対して印刷用ファイル名の指定がない場合(ステップS3)、および印刷用ファイル名の拡張子が所定の拡張子ではない場合(ステップS4)には、プリンタ装置1のDPDP層84aは、画像出力要求においてタグ<imageFileID>,</imageFileID>により指定されたファイルを、すべて画像データファイルとしてデジタルカメラ装置2から取得する(ステップS8)。そして、プリンタ装置1のDPDP層84aは、1組のタグ<imageFileID>,</imageFileID>により指定される1つの画像データファイルに基づいて1つの画像を特定し、その画像を出力する(ステップS9)。
以上のように、上記実施の形態1によれば、デジタルカメラ装置2は、画像出力要求において、画像出力のレイアウトデータ32aを含むレイアウト定義ファイル32を画像データファイルとして指定し、さらに、このレイアウト定義ファイル32のファイル名を、画像出力時に画像とともに出力される画像データファイル名として指定し、その画像出力要求をプリンタ装置1に送信する。プリンタ装置1は、画像出力要求を受信すると、画像出力要求において指定されている画像データファイル名に基づいて、画像データファイルとして指定されたファイルがレイアウト定義ファイルであるか否かを判定し、レイアウト定義ファイルが指定されていると判定した場合には、レイアウト定義ファイルに含まれるレイアウトデータに基づいて画像出力を行う。
これにより、画像出力要求において画像出力対象の1つの画像に対して1つの画像データファイルが指定される記述ルールを採用している場合でも、画像データファイルとともに画像データファイル以外のデータファイル(ここではレイアウト定義ファイル)を使用して1つの画像を出力することができる。
さらに、画像データファイルの指定に、ファイル名ではなくファイル種別の情報を持たないファイル番号を使用している場合でも、レイアウト定義ファイル32に基づく画像出力か否かが正確に判定される。また、ファイルの指定にファイル名ではなくファイル種別の情報を持たないファイル番号を使用する場合、そのファイルがレイアウト定義ファイルか否かを判定するために、そのファイルの種別をプリンタ装置1からデジタルカメラ装置2へ問い合わせる必要がなく、プリンタ装置1とのデジタルカメラ装置2との間の通信回数を減らすことができる。
さらに、上記実施の形態1によれば、メイン画像とフレーム画像とを重畳させた画像を出力する画像出力形式のために使用される複数のデータファイルとしての、メイン画像とフレーム画像のレイアウトデータを含むレイアウト定義ファイル32およびそのメイン画像のデータファイル31が、それぞれ画像データファイルとして画像出力要求において指定される。
これにより、画像出力要求において画像出力対象の1つの画像に対して1つの画像データファイルが指定される記述ルールを採用している場合でも、フレーム挿入印刷を実現することができる。
さらに、上記実施の形態1によれば、レイアウト定義ファイルを使用する画像出力のための画像出力要求を生成する際に、画像データファイル名出力機能の設定項目の値がオン以外に設定される。
これにより、画像データファイル名出力機能のための画像データファイル名の指定を、レイアウト定義ファイルの判別用に使用しても、画像データファイル名が画像に重畳されて出力されずに済む。
実施の形態2.
本発明の実施の形態2に係る画像出力システムは、1つの画像出力要求において、複数のフレーム挿入画像(すなわちメイン画像にフレーム画像を重畳した画像)をある画像出力エリア(例えば1頁)内に割り当てることが可能なものである。
実施の形態2では、画像出力要求において、1つのフレーム挿入画像について1つのレイアウト定義ファイルが指定される。したがって、1頁に4枚のフレーム挿入画像が割り当てられる場合には、通常、4つのレイアウト定義ファイルが画像出力要求において指定される。ただし、例えば、同一のレイアウト定義ファイルが連続して使用される場合には、レイアウト定義ファイルの指定「<ImageFileID>xxx</ImageFileID>」の直後にそのレイアウト定義ファイルの反復使用回数nを指定して、その反復使用回数分のレイアウト定義ファイルの指定を行うようにしてもよい。その場合、「<ImageFileID>xxx</ImageFileID>」の後に、既存の記述ルールにおいて画像データファイルの反復使用回数を指定するタグ「Copy」を使用した要素「<Copy>n</Copy>」が挿入される。
そして、プリンタ装置1は、画像出力要求において指定された各データファイルをデジタルカメラ装置2から取得し、各データファイルの内容を解析して、画像出力要求において指定された複数のデータファイルのうちのレイアウト定義ファイルの数を特定し、各レイアウト定義ファイルおよびメイン画像の画像データファイルに基づいて1つのフレーム挿入画像を生成し、印刷する。
なお、実施の形態2におけるプリンタ装置1およびデジタルカメラ装置2の基本的な構成およびその他の動作については、実施の形態1の場合と同様であるので、その説明を省略する。
以上のように、上記実施の形態2によれば、複数のフレーム挿入画像を1頁内に割り当てることができる。
実施の形態3.
本発明の実施の形態3に係る画像出力システムは、画像データファイルと音声データファイルとを関連付けた定義ファイルをレイアウト定義ファイルの代わりに使用し、プリンタ装置1の代わりに、スピーカ付きの表示装置などといった画像表示と音声出力の可能な画像出力装置を有し、デジタルカメラ装置には音楽データファイルを格納し、その定義ファイル、並びにその定義ファイルにおいて指定された画像データファイルと音声データファイルとを画像供給装置から画像出力装置へ伝送し、画像出力装置により、画像データファイルに基づく画像と音声データファイルに基づく音声とを並行して出力するようにしたものである。
なお、この場合、1つの音声データファイルと複数の画像データファイルとを定義ファイル内で指定しておき、画像データファイルが指定された順番で画像を出力するようにしてもよい。また、音楽の再生開始からの経過時間により、画像データファイルに基づく画像の表示タイミングや表示期間を定義ファイル内で指定するようにしてもよい。
また、画像出力要求において、音声データファイルの代わりに動画像データファイルを指定して、静止画像と動画像を組み合せて出力するようにしてもよい。
以上のように、上記実施の形態3によれば、既存の記述ルールを使用して、1つの画像出力要求において画像と音声との組み合わせや静止画像と動画像との組み合わせを指定し、それらを並行して出力することができる。
なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
例えば、上述の各実施の形態では、マークアップ言語の1つであるXMLを使用して制御情報を記述しているが、SGML(Standard Generalized Markup Language)などの他のマークアップ言語を使用して記述するようにしてもよい。
また、上述の各実施の形態では、DPDPプロトコル以下の階層において、PTPおよびUSBを使用しているが、TCP/IP(Transmission Control Protocol / Internet Protocol )などの他のプロトコルを使用するようにしてもよい。また、その際の伝送媒体としては、有線LAN、ブルーツース、無線LANなどを使用してもよい。さらに、上述の実施の形態において、デジタルカメラ装置2における画像データの管理および転送を行うプロトコルとして、PTPの代わりにUSBマスストレージクラスを使用するようにしてもよい。
また、上述の各実施の形態において、プリンタ装置1の代わりに、紙などの媒体に画像を記録する他の記録装置、画像を表示する表示装置、画像を投影する投影装置などを使用してもよい。
また、上述の各実施の形態において、デジタルカメラ装置2は、動画用および/または静止画用のデジタルカメラ、およびそのような撮像機能を有する種々の電子機器とすることができる。そのような電子機器としては、移動体電話、PDA、音楽プレーヤ、テレビジョン受像機、ビデオ録画/再生装置、テレビジョン電話機、テレビビジョン会議装置などがある。また、デジタルカメラ装置2は、可搬性のある装置でもよいし、あまり可搬性のない装置でもよい。また、デジタルカメラ装置2の代わりに、撮像機能を有さない上述のような電子機器を使用するようにしてもよい。
また、上述の各実施の形態においては、画像の情報を含む複数のデータファイルを使用して1つの画像を出力する例としてPIF印刷を挙げているが、画像の情報を含む複数のデータファイルを使用して1つの画像を出力する他の画像出力処理についても同様に実現可能である。
また、上述の各実施の形態においては、画像の情報を含む2つのデータファイルを使用して1つの画像を出力しているが、3つ以上のデータファイルを使用して1つの画像を出力する他の画像出力処理についても同様に実現可能である。
また、上述の各実施の形態においては、画像出力要求におけるレイアウト定義ファイルなどの指定の順番を特に指定せずに、画像出力要求におけるファイルIDの指定をすべて特定し、各指定に対するファイル名印刷用のファイル名の指定の有無およびそのファイル名の拡張子に基づいて、いずれかのデータファイルがレイアウト定義ファイルであると判定された場合に、PIF印刷を行うようにしてもよい。
また、上述の各実施の形態において、デジタルカメラ装置2は、環境情報に基づいて、プリンタ装置1のベンダを確認し、PIF印刷用の画像出力要求の送信を許可するか禁止するかを判断するようにしてもよい。すなわち、デジタルカメラ装置2は、PIF印刷を採用しているベンダのプリンタ装置1が接続された場合には、PIF印刷用の画像出力要求の送信を許可し、そうでない場合には、禁止する。
また、上述の各実施の形態において、レイアウト定義ファイル32は、デジタルカメラ装置2からプリンタ装置1へ供給されているが、その代わりに、プリンタ装置1が、内蔵の記憶手段にレイアウト定義ファイル32を記憶しておき、デジタルカメラ装置2は、レイアウト定義ファイル32の指定のみをプリンタ装置1へ送信しレイアウト定義ファイル32を送信しないようにしてもよい。
また、上述の各実施の形態において、ファイル名印刷の設定項目の値に拘わらず、ファイル名印刷のためのファイル名に基づいて、PIF印刷を行うか否かを判定するようにしてもよい。
1 プリンタ装置(画像出力装置)、2 デジタルカメラ装置(画像供給装置)、11 通信回路(通信手段)、13 印刷制御部(画像出力手段)、21 通信回路(通信手段)、31 画像データファイル、32 レイアウト定義ファイル、32a レイアウトデータ、84a DPDP層(制御手段)、84b DPDP層(要求生成手段,通信制御手段)。