以下、添付図面に従って、本発明をその実施形態に基づき詳細に説明する。
<基本構成の説明>
先ず、本実施形態における基本構成について説明する。なお、以下、画像印刷装置の一例としてのプリンタが、画像供給装置の一例としてのデジタルスチルカメラ(DSC)とが直接通信しながら、DSC内の記憶媒体に記憶された画像をプリントする方式をフォトダイレクトプリント方式と呼ぶことにする。また、フォトダイレクトプリント方式を実現する画像処理システムをダイレクトプリントシステム、フォトダイレクトプリント方式に対応したプリンタをフォトダイレクトプリンタと呼ぶ。
図1は、本発明の実施形態におけるフォトダイレクトプリンタ(PDプリンタという)の外観例を示す斜視図である。
図1において、PDプリンタ1000は、ホストコンピュータ(PC)からデータを受信して印刷する通常のPCプリンタとしての機能を有する。また、デジタルカメラから画像データを受信して印刷するダイレクトプリント機能も備えている。
PDプリンタ1000の外殻をなす本体は、下ケース1001、上ケース1002、アクセスカバー1003及び排出トレイ1004の外装部材を有している。また、下ケース1001は、PDプリンタ1000の略下半部を、上ケース1002は本体の略上半部をそれぞれ形成する。これら両ケースの組合せによって内部に後述の各機構を収納する収納空間を有する中空体構造をなし、その上面部及び前面部にはそれぞれ開口部が形成されている。
さらに、排出トレイ1004は、その一端部が下ケース1001に回転自在に保持され、その回転によって下ケース1001の前面部に形成される開口部を開閉させ得るように構成される。このため、印刷を実行させる際には、排出トレイ1004を前面側へと回転させて開口部を開成させることにより、ここから紙などの記録媒体が排出可能となり、また、排出された記録媒体を順次積載することが可能である。また、排紙トレイ1004には、2枚の補助トレイ1004a,1004bが収納されており、必要に応じて補助トレイを手前に引き出すことにより、排紙トレイ1004の大きさを記録媒体サイズに合わせて拡大、縮小させることができる。
アクセスカバー1003は、その一端部が上ケース1002に回転自在に保持され、上面に形成される開口部を開閉し得るように構成される。アクセスカバー1003を開くことによって本体内部に収納されている記録ヘッドカートリッジ(不図示)あるいはインクタンク(不図示)等の交換が可能となる。
また、上ケース1002の上面には、電源キー1005が設けられている。1007は自動給送部で、記録媒体を装置本体内へと自動的に給送する。1012は外部インタフェースコネクタであり、ここではUSB(Universal Serial Bus)規格に準拠した形状を有する。勿論、他の規格に準じたインタフェースであってもよい。一方、PDプリンタ1000はパーソナルコンピュータ(PC)からの印刷をも実現するため、例えば背面にもインタフェースを備える。
図2は、図1のPDプリンタにDSCを接続して、ダイレクトプリントシステムを構築する様を示している。
図において、ケーブル5000(USBケーブル)は、PDプリンタ1000のコネクタ1012に接続するためのコネクタ5001と、デジタルカメラ(DSC)3012の接続用コネクタ5003と接続するためのコネクタ5002とを備えている。なお、デジタルカメラ3012をPCと接続する場合には、PCが有するUSBコネクタに、上記コネクタ5001を接続することで、撮像した画像をPCに転送することができる。
また、デジタルカメラ3012は、内蔵もしくは着脱可能な記憶媒体に保存している画像データを、接続用コネクタ5003を介して出力可能に構成されている。このように、図2に示すケーブル5000を介してPDプリンタ1000とデジタルカメラ3012とを接続することにより、ダイレクトプリントシステムを構築することができる。
図3は、PDプリンタ1000の制御系のブロック構成図である。
図において、1は装置全体の制御を司るCPU、2はCPU1の動作処理手順(プログラム)やフォントを記憶しているROM、3はCPU1のワークエリアとして使用されるRAMである。4は操作パネルである。5はPCとの接続を行うためのインタフェースであり、7はDSCとの接続を行うインタフェース(USBのホスト側)である。6はプリンタエンジン部であり、実施形態では、熱エネルギーを利用してインク液を吐出するプリントエンジンであるが、記録方式はこれにより限定されるものではない。
図4はDSC(デジタルスチルカメラ)3012のブロック構成図である。
同図において、31はDSC全体の制御を司るCPUであり、32はCPU31の処理手順を記憶しているROMである。33はCPU31のワークエリアとして使用されるRAMであり、34は各種操作を行うボタン並びにスイッチ群である。35は液晶表示器(LCD)であり、撮像した画像を確認したり、各種設定を行う際のメニューを表示するために使用される。36は光学ユニットであり、主としてレンズ及びその駆動系で構成される。37は撮像素子(ここではCCD)であり、38はCPU31の制御下において光学ユニット36を制御するドライバである。39はメモリカード40を接続するためのコネクタであり、41はPC或いは実施形態におけるPDプリンタ1000と接続するためのUSBインタフェース(USBのデバイス側)である。
図5は、ダイレクトプリントシステムを実現するためにPDプリンタ1000並びにDSC3012が備える制御ソフトウェアのプロトコルスタックを説明する図である。
USB−Device505は、デジタルカメラ3012のプロトコルスタックの最下層に位置する物理接続層である。本実施形態では、DSC3012とPDプリンタ1000とをUSBで接続しているため、USBの物理層(デバイス側)が実装されている。
SICD−Devece504は、デバイスの振る舞いを規定するデバイスクラス層である。本実施形態では、USB上での振る舞いを規定するSICD(Still−Image Class)−Deviceを用いている。
PTP−Responder503は、任意のファイルを転送する為の転送プロトコル層である。本実施形態では下位層であるUSB−Device505およびSICD−Device504を用いてファイル転送を実現するPTP(Picture Transfer Protocol)−Responderを用いている。
Direct Print Service−DSC502は、ダイレクトプリント機能を実現するダイレクトプリントプロトコル層である。本実施形態は下位層であるPTP−Responder503のファイル転送機能を利用するDirect Print Service−DSCというダイレクトプリントプロトコルを用いている。
Direct Print DSC Application501は、下位層のダイレクトプリント機能およびスイッチ群、液晶表示器、コネクタ、記憶媒体等を利用し、プリントシステム中のデジタルカメラ3012側を構成するアプリケーション層である。
USB−Host515は、PDプリンタ1000の物理接続層である。本実施形態では、DSC3012とPDプリンタ1000とをUSBで接続しているため、USBの物理層(ホスト側)が実装されている。
SICD−Host514は、接続相手のデバイスクラスに応じてデバイスを制御するデバイスクラス層である。本実施形態ではデジタルカメラ3012をSICDデバイスとして制御するSICD(Still−Image Class)−Hostを用いている。
PTP−Initiator513は、任意のファイルを転送する為の転送プロトコル層である。本フォトダイレクトプリントシステムでは下位層であるUSB−Host515およびSICD−Host514を用いてファイル転送を実現するPTP(Picture Transfer Protocol)−Initiatorを用いている。
Direct Print Service−Printer512は、ダイレクトプリント機能を実現するダイレクトプリントプロトコル層である。本実施形態では下位層であるPTP−Initiator513のファイル転送機能を利用するDirect Print Service−Printerというダイレクトプリントプロトコルを用いている。
DirectPrintPrinterApplication511は、下位層のダイレクトプリント機能やPDプリンタ1000の操作パネル4等の装置を利用し、プリントシステムのPDプリンタ1000側システムを構成するアプリケーション層である。
このようなダイレクトプリントシステムでは、物理的にはUSB−Device505とUSB−Host515がそれぞれの機器のインタフェースを介して直接通信を行っている。しかし、論理的には、対応する階層のスタック(501と511、502と512、503と513、504と514)同士が直接通信を行っている。
図6は、図5に示した制御プログラムを用いたダイレクトプリントシステムの処理手順を示すシーケンス図である。
本図では、ダイレクトプリントプロトコル層であるDirect Print Service−DSC502およびDirect Print Service−Printer512間での処理手順を説明する。図中縦方向は時間軸を表す。矢印はアクションの方向を意味し、ステップS601〜ステップS606、ステップS610〜ステップS613はDirect Print Service512が発行するアクションである。ステップS607〜ステップS609はDirect Print Service502が発行するアクションである。なお、図6では、アクションに対する応答に関しては記載を省略している部分がある。
また、時間軸を表す線の太さはDirect Print Service502,512のいずれがアクションの権限を有するかを示し、基本的に細線は待ち状態、太線は権限有りを示している。つまり、Direct Print Service502は接続時点〜ステップS606のアクション実行まで待ち状態である。そして、その後Direct Print Service512がステップS609のアクション実行まで待ち状態となり、更にその後Direct Print Service502が待ち状態となる。
S601〜606の手順は、デジタルカメラ3012およびPDプリンタ1000が、互いに、相手機器がDirect Print Service対応の機器であるか否かを判定するDirect Print Service Discovery処理である。
図に示すように、このDiscovery処理中にはPDプリンタ1000(Direct Print Service−Printer512)がアクション権限を有している。これは、PDプリンタ1000の物理層がUSB Host515であり、Discovery処理に用いるPTP Operationの発行はUSB Host側から行う必要があるからである。
まずステップS601で、Direct Print Service−Printer512は、PTPのGetDeviceInfo Operationを発行し、デジタルカメラ3012のPTP−Responder503の機能を取得する。PTP−Responder503は、機能に関する情報をDeviceinfoDatasetにより返送する。この中には、Direct Print Service−DSC機能のサポートに関する情報も含まれている。Direct Print Service−Printer512は、取得した情報から、デジタルカメラ3012がDirect Print Service−DSC機能をサポート可能であるかを判定する。そして、もしサポート不可能であればUSB接続を終了して処理を終了する。
次に、ステップS602でDirect Print Service−Printer512は、OpenSession Operation を発行してPTPのSessionを開始する。
次にS603〜605でDirect Print Service−Printer512はDirect Print Service−DSC502がDirect Print Service Discoveryスクリプト(Object名は”DPS_DIS_A”)を保持しているか否かを確認する。
S603で、GetNumObject Operation(数を取得するオブジェクトを指定する引数(ObjectFormatCode)に、”スクリプト”(0x3002)を指定)を発行してDirect Print Service−DSC502が保持しているスクリプト数nを取得する。
次に、ステップS604で、GetObjectHandles Operation(引数に”スクリプト”を指定)を発行し、Direct Print Service−DSC 502が保持しているn個のスクリプトに割り当てられたn個のObject Handleを取得する。
そしてステップS605で、取得したn個のObjectHandleの各々に対してGetObjectInfo Operationを発行し、DSC3012に”DPS_DIS_A”という名前のObjectが存在するかを判定する。もし判定結果がNoであった場合にはステップS605を最大n回繰り返し、DSC3012が有するn個のスクリプト全てに対して判定を行う。具体的には、GetObjectInfo Operationに対して返されたObjectInfo Datasetを参照し、object名(filename)が”DPS_DIS_A”かどうかを判定する。
もしn回の判定全てにおいて判定結果がNoであった場合、Direct Print Service−Printer 512はデジタルカメラ3012がDirect Print Service−DSCをサポートしていないとみなし、USB接続を終了して処理を終了する。
ステップS605において、object名が”DPS_DIS_A”のスクリプトの存在が確認されると、Direct Print Service−Printer 512はDSC3012がDirect Print Service−DSCをサポートしているとみなす。そして、残りのスクリプトに対するアクションの発行及び判定をスキップしてステップS606へと進む。
この時点でDirect Print Service−Printer 512は接続相手であるデジタルカメラ3012がDirect Print Service−DSCをサポートしている事を認識している。しかし、Direct Print Service−DSC 502は接続相手であるPDプリンタ1000がDirect Print Service−Printerをサポートしているか否かは認識していない。
そこでステップS606で、Direct Print Service − Printer 512はSendObjectInfo Operationを発行する。このアクションにより、PDプリンタ1000から、”DPS_DIS_B”という名前のObjectを送信する旨の予告を行って、PDプリンタ1000がDirect Print Service−Printerをサポートしている事をDSC3012へ通知する。
この時点でDirect Print Service−DSC 502は接続相手であるPDプリンタ1000がDirect Print Service−Printerをサポートしている事を認識する。
こうしてDirect Print Service−DSC 502およびDirect Print Service − Printer 512はお互いがDirect Print Serviceをサポートしている事を認識し、以後はDirect Print ServiceのOprationの発行が可能となる。そして、一般的にDirect Print ServiceとしてはPDプリンタ1000がServerであり、デジタルカメラ3012がClientとなるので、以後のアクション権限はデジタルカメラ3012に移る。
ステップS607で、Direct Print Service−DSC 502は、DPS_ConfigurePrintService Operationを発行してDirect Print Serviceを開始する。
次にステップS608で、DPS_GetCapabilities Operationを発行してDirect Print Service−Printer 512がサポートしている印刷機能を示す情報(印刷機能情報)を取得する。
図13はステップS608で取得する印刷機能情報の一例としてのスクリプトファイルを示す図である。図13の例では、印刷機能の項目がタグにより示され、項目の値が開始タグと終了タグの間に記載される形式で記述されている。
sc1301は、サポート機能記述の開始を示すタグである。
sc1302は、サポート印刷機能記述の開始を示すタグである。
sc1303は、サポート印刷品位記述の開始を示すタグである。本例では印刷品位として最も低い”draft”、印刷品位として標準である”normal”、印刷品位として最も高い”fine”をサポートしている事を表している。
sc1304は、サポート印刷用紙サイズ記述の開始を示すタグである。本例では印刷用紙サイズとして“L”判、“2L”判、“A4”、“Hagaki”(葉書)の4種類をサポートしている事を表している。
sc1305は、サポート印刷用紙種類記述の開始を示すタグである。本例では印刷用紙種類として普通紙である”Plain”、写真用紙である”Photo”の2種類をサポートしている事を表している。
sc1306は、サポート画像フォーマット記述の開始を示すタグである。本例では画像フォーマットとして”Jpeg”、”Tiff”の2種類をサポートしている事を表している。
sc1307は、サポート日付印刷設定記述の開始を示すタグである。本例では日付印刷設定として日付印刷を行わない”Off”、日付印刷を行う”On”の2種類をサポートしている事を表している。
sc1308は、サポート画像補正設定記述の開始を示すタグである。本例では画像補正設定としてPrinter側の設定に準じる”PrinterDependent”、Printer側で補正を行わない”Off”、Printer側で補正を行う”On”の3種類をサポートしている事を表している。
sc1309は、サポート切り出し領域設定記述の開始を示すタグである。本例では切り出しを行わない”Off”、切り出しを行う”On”の2種類をサポートしている事を表している。
印刷機能情報を取得すると、DSC3012のDirect Print DSC Apprication501により、取得した機能情報に応じた設定画面(UI)が構築され、LCD35に表示される。そしてユーザは、DSC3012のボタン及びスイッチ群34を用い、PDプリンタ1000がサポートする印刷機能の設定を行うとともに、メモリカード中の撮影画像から、印刷を行う画像(印刷画像)を選択する。そして、ユーザがボタン及びスイッチ群34を用いて印刷開始を選択、指示すると、処理がステップS609へと進む。
ステップS609で、Direct Print Service−DSC 502はDPS_StartJob Operationを発行してDirect Print Systemによる印刷処理を開始する。
図7は、ステップS609でDirect Print Service−DSC 502から送信される印刷設定情報の一例としてのスクリプトファイルを示す図である。
sc701〜sc709の各項目の設定項目は、図13中のsc1301〜sc1309にそれぞれ対応している。
sc710〜sc712は印刷設定時に追加で設定される印刷情報である。
sc701は、印刷設定記述の開始を示すタグである。
sc702は、印刷機能設定記述の開始を示すタグである。
sc703は、印刷品位設定記述の開始を示すタグである。本例では印刷品位として標準である”normal”を設定している事を表している。
sc704は、印刷用紙サイズ設定記述の開始を示すタグである。本例では印刷用紙サイズとして”L”判を設定している事を表している。
sc705は、印刷用紙種類設定記述の開始を示すタグである。本例では印刷用紙種類として写真用紙である”Photo”を設定している事を表している。
sc706は、画像フォーマット設定記述の開始を示すタグである。本例では画像フォーマットとして”Jpeg”を設定している事を表している。
sc707は、日付印刷設定記述の開始を示すタグである。本例では日付印刷設定として日付印刷を行う”On”を設定している事を表している。
sc708は、画像補正設定記述の開始を示すタグである。本例では画像補正設定としてPrinter側の設定に準じる”PrinterDependent”を設定している事を表している。
sc709は、切り出し領域設定記述の開始を示すタグである。本例では切り出しを行わない”Off”を設定している事を表している。
sc710は、印刷写真設定記述の開始を示すタグである。
sc711は、印刷写真ID設定記述の開始を示すタグである。本例では印刷写真IDとして”00000001”を設定していることを表している。
sc712は、印刷写真日付設定記述の開始を示すタグである。本例では印刷写真日付として”2006/01/20”を設定していることを表している。
ステップS609が完了すると、印刷処理が開始され、以後印刷ステータスの発行や、必要とされる写真画像ファイルの取得等のアクション権限がPDプリンタ1000に移る。
続いてステップS610ではPDプリンタ1000がDPS_NotifyDeviceStatusを発行し、印刷を開始した事を通知する。
ステップS611ではPDプリンタ1000がDPS_NotifyJobStatusを発行し、印刷ジョブの進行状況を示す。
ステップS612では必要とされる写真画像ファイル(図7に記載の例であればID=00000001の写真画像ファイル)の属性情報を取得している。
ステップS613では必要とされる写真画像ファイル(図7に記載の例であればID=00000001の写真画像ファイル)本体を取得している。
以後印刷が完了するとその旨をDPS_NotifyDeviceStatusで通知し、またステップS608後の状況に戻り、以後処理を継続する。
以上説明したように、フォトダイレクトプリントシステムでは図13に記載されている項目を印刷設定する事で様々な印刷品位・用紙サイズ・用紙種類・ファイル種類等を設定して印刷を行う事が可能である。
しかし、図13に記載されていない項目、つまりフォトダイレクトプリント規格に規定されていない項目についての印刷調整・補正を行おうとした場合には、前述した課題が発生する。
そこで、規格化されているフォトダイレクトプリントサービスとは別に、プリンタ側の標準設定を設定する標準設定サービスを協働して用いる事で、フォトダイレクトプリントサービスの接続性を維持しつつ、印刷調整・補正を行う事を実現する。
<第1の実施形態>
図8は、本発明の第1の実施形態に係るDSC3012及びPDプリンタ1000の制御プログラムのプロトコルスタックを説明する図である。図8において、図5と同じスタックについては同じ参照数字を付し、説明を省略する。
図5と図8との比較から明らかなように、本実施形態では、標準設定に係るプロトコルスタック801,802,811,812が、PTPプロトコル層の上位層として追加されている。
Default Setting Service−DSC802は、下位層であるPTP−Responderのファイル転送機能を利用して、標準設定機能を実現する標準設定プロトコル層である。
Default Setting DSC Application801は、下位層である標準設定機能および、ボタン及びスイッチ群34、LCD35、コネクタ39、記憶媒体40等を利用して実際に標準設定システム中のデジタルカメラ3012側を構成する標準設定アプリケーション層である。
Default Setting Service−Printer812は、下位層であるPTP−Initiatorのファイル転送機能を利用し、標準設定機能を実現する標準設定プロトコル層である。
Default Setting Printer Application811は、下位層である標準設定機能および、図3中の操作パネル4等を利用して実際に標準設定システム中のPDプリンタ1000側を構成する標準設定アプリケーション層である。
図5で説明したように、本実施形態においても、物理的にはUSB−DEVICE505とUSB−HOST515がUSBインタフェースを介して直接通信を行っているが、論理上は同じ階層のスタック同士(801と811、802と812)が互いに直接通信を行っている。
図9は、図8に示した制御プログラムを用いたダイレクトプリントシステムの処理手順を示すシーケンス図である。
ステップS901〜S913は図6中のステップS601〜S613と振る舞いおよび働きが同一であるので説明を省略する。
本図において図6と異なるのは、標準設定システムの動作であるステップS951〜S953であるので、それらのステップに注目してフローを説明する。ステップS951〜S952は互いの機器がDefault Setting Serviceをサポートしている事を確認するDiscovery処理であり、ステップS953は実際のDefault Setting Serviceを利用した標準設定行為である。
まずステップS951で、812はGetDeviceInfo Operationを発行してデジタルカメラ3012のPTP−Responder503の機能を取得する。ここで、デジタルカメラ3012がDefault Setting Service−DSC機能をサポート可能であるかを判定し、もしサポート不可能であればUSB接続を終了して処理を終了する。
本実施形態では、デジタルカメラ3012がDefault Setting Serviceをサポートしている事を示す情報”DSS_DIS_A”に相当する情報は、GetDeviceInfo Operationに対するResponse(DeviceInfo Dataset)に含まれている。Responseに”DSS_DIS_A”相当の情報を含める方法としては、例えば以下の方法がある。
後述の、標準設定サポート通知スクリプト”DSS_DIS_B”および標準設定スクリプト”DSS_SET”用として、ベンダ固有の画像フォーマットを設定する。そして、GetDeviceInfoに対するResponse中の(ImageFormatsフィールド)に記述される、サポート画像フォーマットをチェックする。
このサポート画像フォーマットに、上記”DSS_DIS_B”および”DSS_SET”用のベンダ固有の画像フォーマットが含まれていれば、Default Setting Serviceをサポートしているものと判断できる。つまり、このベンダ固有画像フォーマットを表す情報が、”DSS_DIS_A”相当の情報である。
この時点で、PDプリンタ1000はデジタルカメラ3012がDefault Setting Service−DSCをサポートしていることを認識できる。しかし、デジタルカメラ3012は、PDプリンタ1000がDefault Setting Service−Printerをサポートしているか否かを認識できていない。
なお、本実施形態では、ステップS951を、規格に準拠したサービスにおいてGetDeviceInfoを発行するステップS901と、DSC3012側から見て区別できないように実装している。これは、DSC3012が規格に規定された動作しかサポートしていない場合でも正常な動作を確保するためである。
つまり、DSC3012が、Default Setting Service−DSCをサポートしておらず、或いはDefault Setting Service−Printerの存在を想定せずに設計された機器(非互換機器)であっても、トラブルを生じさせないためである。
仮に、ステップS951の処理を、ステップS901とは別の処理として実現し、それがDirect Print Serviceの規定外の動作だったとする。この場合、DSC3012が非互換機器だと、PDプリンタ1000の動作を異常動作と判断し、安全のためにUSB接続を切断してしまう可能性がある。
このような動作が発生する危険性を避けるためにも、ステップS951の処理は既存のDirect Print Serviceの処理ステップS901を共通利用して実装する事が好ましい。
以後、図6のステップS602〜S605と同様に、ステップS902〜S905の処理を行う。
ステップS905が終了した時点でも、依然としてDirect Print Service−DSC 502は接続相手であるPDプリンタ1000がDirect Print Service−Printerをサポートしているか否かを認識できない。
そのため、次にステップS952で、Default Setting Service−Printer812は、SendObjectInfo Operationと、それに引き続くSendObject Operationを発行する。これにより、DSC3012に対して、Default Setting Serivce−Printer をサポートしている事ならびにサポート内容を通知するための、標準設定サポート通知スクリプト”DSS_DIS_B”を送付する。
図10は、ステップS952で送信される標準設定サポート通知スクリプト”DSS_DIS_B”の例を示す図である。他のスクリプトと同様、各項目がタグにより示され、項目の値が開始タグ(<(文字列)>)と終了タグ(</(文字列)>)の間に記載される形式で記述されている。
sc1001は、サポート機能記述の開始を示すタグである。
sc1002は、メインUI中で選択可能なサポート機能記述の開始を示すタグである。
sc1003は、サポート印刷モード記述の開始を示すタグである。本例では印刷モードとしてカラー印刷を行う”color”、白黒印刷を行う”monochrome”をサポートしている事を表している。
sc1004は、サブUI中で選択可能なサポート機能記述の開始を示すタグである。
sc1005は、サポート明るさ調整記述の開始を示すタグである。本例では明るさ調整として”−3”〜”+3”の7段階の調整をサポートしている事を表している。
sc1006は、サポートレベル調整記述の開始を示すタグである。本例ではレベル調整として自動調整である”auto”、調整を行わない”off”、調整を行う”on”の3種類をサポートしている事を表している。
sc1007は、サポート顔明るく補正記述の開始を示すタグである。本例では顔明るく補正として自動補正である”auto”、補正を行わない”off”、補正を行う”on”の3種類をサポートしている事を表している。
sc1008は、サポート赤目補正記述の開始を示すタグである。本例では赤目補正として自動補正である”auto”、補正を行わない”off”、補正を行う”on”の3種類をサポートしている事を表している。
sc1009は、詳細UI中で選択可能なサポート機能記述の開始を示すタグである。
sc1010は、サポートコントラスト調整記述の開始を示すタグである。本例ではコントラスト調整として”−3”〜”+3”の7段階の調整をサポートしている事を表している。
sc1011は、サポート彩度調整記述の開始を示すタグである。本例では彩度調整として”−3”〜”+3”の7段階の調整をサポートしている事を表している。
sc1012は、サポート色相調整記述の開始を示すタグである。本例では色相調整として”−3”〜”+3”の7段階の調整をサポートしている事を表している。
sc1013は、サポートカラーバランス調整記述の開始を示すタグである。
sc1014は、サポートカラーバランスの赤色調整記述の開始を示すタグである。本例では赤色調整として”−5”〜”+5”の11段階の調整をサポートしている事を表している。
sc1015は、サポートカラーバランスの緑色調整記述の開始を示すタグである。本例では緑色調整として”−5”〜”+5”の11段階の調整をサポートしている事を表している。
sc1016は、サポートカラーバランスの青色調整記述の開始を示すタグである。本例では青色調整として”−5”〜”+5”の11段階の調整をサポートしている事を表している。
ステップS952において、SendObject Oprationを受信すると、DSC3012のDefault Setting Service−DSC 802は接続相手であるPDプリンタ1000がDefault Setting Service−Printerをサポートしている事を認識する。こうしてDefault Setting Service−DSC 802およびDefault Setting Service−Printer 812はお互いがDefault Setting Serviceをサポートしている事を認識し、以後はDefault Setting ServiceのOprationの発行が可能となる。
続いてステップS906の処理を行う。
上述のように、ステップS906のSendObjectInfo Operationの受信により、Direct Print Service−DSC 502は接続相手であるPDプリンタ1000がDirect Print Service−Printer512をサポートしている事を認識する。
こうしてDirect Print Service−DSC 502およびDirect Print Service−Printer 512はお互いがDirect Print Serviceをサポートしている事を認識し、以後はDirect Print ServiceのOprationの発行が可能となる。
続いてステップS907〜S908の処理を行う。
ステップS908において、DPS_GetCapabilities Operationへの応答として、図13で説明したような印刷設定情報が送信されてくる。これにより、Direct Print Serviceおよび、ステップS952で通知されたDefault Setting Serviceの両方のCapabilityに応じた設定画面(UI)が構築され、LCD35に表示される。このUIについては後で詳しく説明する。
そしてユーザは、DSC3012のボタン及びスイッチ群34を用い、PDプリンタ1000がサポートする印刷機能の設定及び、必要に応じて標準設定を行うとともに、メモリカード中の撮影画像から、印刷を行う画像(印刷画像)を選択する。
そして、ユーザがボタン及びスイッチ群34を用いて印刷開始を選択、指示すると、DPS_StartJobを送信するステップS909を実行する前に、ステップS953へと進む。
ステップS953で、Default Setting Service−DSC 802が、DSS_SetDefault Operationを用いて標準設定情報スクリプト”DSS_SET”をDefault Setting Service−Printer 812に送付する。
図11は、ステップS953で送信される標準設定情報スクリプト”DSS_SET”の例を示す図である。他のスクリプトと同様、各項目がタグにより示され、項目の値が開始タグ(<(文字列)>)と終了タグ(</(文字列)>)の間に記載される形式で記述されている。
sc1101〜sc1116の各項目の設定項目は図10中のsc1001〜sc1016にそれぞれ対応している。
sc1101は、標準設定記述の開始を示すタグである。
sc1102は、メインUI中で選択可能な標準設定機能記述の開始を示すタグである。
sc1103は、標準印刷モード記述の開始を示すタグである。本例では標準印刷モードとしてカラー印刷を行う”color”を設定している事を表している。
sc1102は、メインUI中で選択可能な標準設定機能記述の終了を示すタグである。
sc1104は、サブUI中で選択可能な標準設定機能記述の開始を示すタグである。
sc1105は、標準明るさ調整記述の開始を示すタグである。本例では標準明るさ調整として”+2”を設定している事を表している。
sc1106は、標準レベル調整記述の開始を示すタグである。本例では標準レベル調整として自動調整である”auto”を設定している事を表している。
sc1107は、標準顔明るく補正記述の開始を示すタグである。本例では標準顔明るく補正として補正を行わない”off”を設定している事を表している。
sc1108は、標準赤目補正記述の開始を示すタグである。本例では標準赤目補正として補正を行わない”off”を設定している事を表している。
sc1109は、詳細UI中で選択可能な標準設定機能記述の開始を示すタグである。
sc1110は、標準コントラスト調整記述の開始を示すタグである。本例では標準コントラスト調整として”−2”を設定している事を表している。
sc1111は、標準彩度調整記述の開始を示すタグである。本例では標準彩度調整として”+2”を設定している事を表している。
sc1112は、標準色相調整記述の開始を示すタグである。本例では標準色相調整として”+1”を設定している事を表している。
sc1113は、標準カラーバランス調整記述の開始を示すタグである。
sc1114は、標準カラーバランスの標準赤色調整記述の開始を示すタグである。本 例では標準赤色調整として”+2”を設定している事を表している。
sc1115は、標準カラーバランスの標準緑色調整記述の開始を示すタグである。本例では標準緑色調整として”+3”を設定している事を表している。
sc1116は、標準カラーバランスの標準青色調整記述の開始を示すタグである。本例では標準青色調整として”−1”を設定している事を表している。
続いてステップS909が処理され、印刷処理の開始がDPS_StartJob OperationによってDirect Print Service−Printer812へ、印刷設定情報(図7)と共に通知される。
ここで、印刷設定情報に含まれる、sc708の画像補正設定値として、”PrinterDependent”が記述されている場合には、Printer側の設定に準じる事た補正が指定される。従って、ステップS953で送信される、Default Setting ServiceのDSS_SetDefaultの設定内容が反映された印刷結果が得られる。
もしsc708の画像補正設定記述タグ中に”off”が記述されている場合には、Printer側の設定を行わない事を意味するので、Default Setting ServiceのDSS_SetDefaultの設定内容は無効となる。
以後、ステップS610〜S613と同様にしてステップS910〜S913の印刷処理が行われる。印刷が完了するとPDプリンタ1000はその旨をDPS_NotifyDeviceStatusで通知し、またステップS908後の状況に戻り、以後処理を継続する。
この様に、本実施形態では、フォトダイレクトプリントサービスとは別に、PDプリンタの標準設定を設定する標準設定サービスを協働して用いる。これにより、フォトダイレクトプリントサービスの接続性を維持しつつ、フォトダイレクトプリントサービスの規格で定められていない印刷調整・補正を実施する事が可能になる。
なお、本実施形態中で、PDプリンタ1000が標準設定サービスに関する情報をDSC3012へ通知するステップS952を、標準DPSサービスが行うステップS905とS906の間で行うようにしているのには、以下のような理由がある。
まず第1に、本実施形態において、Default Setting ServiceはDirect Print Serviceの補助的なサービスとして設定されているからである。DSC3012の状況によってはDirect Print Serviceに移行せずに他のプロトコルに移行する可能性もある。従って、ステップS905の処理により、DSC3012がDirect Print Service−DSCをサポートしている(DPS_DIS_Aを有している)事を確認してから、補助サービスである標準設定サービスの情報を通知した方が安全である。
第2に、ステップS906の後になると、Direct Print Serviceのアクション権限がデジタルカメラ3012に移ってしまうからである。アクション権限を有するデジタルカメラ3012は、ステップS908までの処理を直ちに実行し、印刷設定UIを構築してLCD35に表示することが可能である。そしてユーザが印刷設定UIを介して印刷開始を選択すると、ステップS909へと処理が進む。
ステップS906の後、ステップS909までのどこかのタイミングで、ステップS952の処理を実行したとする。この場合、DSC3012は、ユーザが標準設定サービスに関する設定を行えるようにするため、印刷設定UIの再構築を余儀なくされたり、印刷開始を指示したジョブのキャンセルを行う必要に迫られたりする可能性がある。
既に印刷開始を指示したジョブについてはキャンセルせずに、そのジョブ完了後にDefault Setting Serviceを反映した印刷設定UIの構築を行うようにしてもよい。しかし、この場合、ユーザは最初と異なるUIを呈示される。そのため、ユーザの混乱を招いたり、既に印刷指示してしまったジョブについて、標準設定サービスを利用したいユーザは、再度同じ画像の印刷を指示する必要があるなど、ユーザビリティの点で好ましくない。
また、既に印刷指示したジョブに関する印刷設定情報(図7)において、sc708の画像補正設定項目の設定値が、Printer側の設定に準じる”PrinterDependent”に設定されていた場合、別の問題が生じうる。つまり、PDプリンタ1000側ではDefault Setting Serviceが有効であると判断するので、その時点でのDefault Setting Serviceの設定内容を反映してジョブを処理(画像を出力)してしまう可能性がある。
このように、PDプリンタ1000がサポートする標準設定サービスに関する情報をDSC3012へ通知するステップS952は、少なくともDPSのアクション権限がDSC3012に移る前、具体的にはステップS906の実行前であることが好ましい。
なお、本実施形態では、ステップS952において、SendObjectInfo Operation及びSendObject Operationにより、スクリプト”DPS_DIS_B”の存在並びに実体をPDプリンタ1000からDSC3012へ送信する。つまり、PDプリンタ1000がDefault Setting Service−Printerをサポートしている事を通知する機能(Discovery機能)と、Default Setting Service−Printerがサポートしている機能を通知する機能(DSS_SendCapability)をステップS952にまとめている。
しかし、それぞれの機能をより時間的に異なるタイミングで実現しても良い。但し、ステップS952の実行タイミングについて説明したように、DSS_SendCapabilityの実行は少なくともデジタルカメラ3012がステップS908で印刷機能情報を取得し、印刷設定UIを構築する前に行う事が好ましい。
また、本実施形態ではステップS951をステップS901と統合しているが、ステップS901〜S905までの処理のいずれかと同じタイミングであれば良い。重要なのは、基本サービスであるDirect Print Serviceの手順に影響を及ぼさずに、DSC30123012がDefault Setting Service−DSCに対応している事を示す情報”DSS_DIS_A”をPDプリンタ1000へ伝達するという事である。
例えば、ステップS905においてDirect Print ServiceのDiscoveryで用いられる”DPS_DIS_A”オブジェクトの属性情報中の、Direct Print Serviceで使用していない領域を利用し、”DDS_DIS_A”に相当する情報を伝達しても良い。この情報伝達に利用可能な領域としては、例えばオブジェクト作成日時領域・オブジェクト修正日時領域・キーワード領域等がある。
次に、本実施形態におけるDSC3012で構築され、LCD35に表示される印刷設定UIについて説明する。
本実施形態の印刷設定UIは、基本サービスであるDirect Print Serviceに関する設定を行うUIと、本実施形態で追加されているDefault Setting Serviceに関する設定を行うUIを含む。
図14、図15、図16は、「Direct Print Service」でサポートされる設定項目を示すスクリプト(図13)と、「Default Setting Service」でサポートされる設定項目を示すスクリプト(図10)とに基づいて構築される設定UI(設定画面)の例を示す図である。
本実施形態のDSC3012において、設定UIは階層構造を有するGUIであり、LCD35に表示される。ユーザは、DSC3012の有するボタン及びキー34を操作して、所望の項目について所望の値を設定することができる。
図14は、主に「Direct Print Service」の設定を行うための画面(メインUI)の例を示す図である。図15は、メインUIから呼び出される、「Defualt Setting Service」の設定を行うための画面(サブUI)の例を示す図である。図16は、サブUIから呼び出される、「Default Setting Service」の詳細設定を行うための画面(詳細UI)の例を示す図である。
図14において、タイトル2000は、設定画面の種類を示しており、カメラダイレクトプリントの設定画面であることをユーザが認識できるように設けられている。2001〜2019は実際にユーザが設定等を行うためのボタンである。ユーザは、DSC3012が有する方向キーや実行キーを用いて、所望のボタンを選択、押下する操作を行うことができる。或いは、LCD35がタッチパネルを装備している場合には、実際のボタンを扱うように操作することが可能である。GUIの操作を実現する手法は本発明とは直接関係が無く、また周知のどのような手法を用いてもよいため、これ以上の説明は割愛する。
2001は部数選択ボタンで、例えば選択状態でキーを操作することで印刷部数を指定できる。2003は日付印刷設定ボタンであり、ON,OFFがトグルする。ONで日付印刷が行われる。2005はキャンセルボタンで、印刷をスタートせずにカメラダイレクトプリント設定を終了する際に用いる。2007はプリントスタートボタンで、設定画面の設定内容を反映した印刷の開始を指示するためのものである。
2009はトリミング設定ボタンであり、本ボタンを押すことにより、トリミング枠の詳細を設定する別画面(図示せず)に遷移する。ユーザは、この別画面でトリミング枠を調整、設定することが可能である。2011は用紙サイズ設定ボタンで、現在は“L判”が指定されている。例えばこのボタンを選択状態にし、方向キーを操作すると他の用紙サイズに変更することが可能である。2013はレイアウト設定ボタンで、ここでは縁なし印刷か縁有り印刷かを指定可能にしている。2015は印刷品位設定ボタンで、用紙サイズと同様の方法で品質を変更することが可能である。
メインUIにおいて、ボタン2001、2009、2011、2013、2015は、Direct Print Serviceに基づいたPrinterCapabilityに関する設定項目であり、図13に示したスクリプトファイルに基づく項目と、選択肢を有するUIが構築される。
一方、色調設定ボタン2017と調整ボタン2019は、Default Setting Serviceに基づいた設定項目であり、図10に示したスクリプトファイルに基づいて構築されている。
色調調整ボタン2017は色調の設定を行うためのボタンであり、例えば選択状態で方向キーを操作することにより、設定値を変更することができる。具体的には、図10のsc1003の<PrinteModes>の設定可能項目である「color」「monochrome」のいずれかを選択することが可能である。なお、図14において、「color」=「カラー」、「monochrome」=「白黒」と表示されているように、スクリプトファイル中に記載された選択肢そのものをUIに用いる必要はない。DCS3012は、UI構築時に、適宜表現を変えたり、一部の選択肢のみを選択可能にする等の処理を行なってもよい。
調整ボタン2019は、色調整を行うサブUIに画面を遷移させるためのボタンで、図10のスクリプトにおける<subUIs>の存在に基づいて構築する。調整ボタン2019が押下されると、DCS3012は、メインUIに代えて、図15に示すサブUIをLDC35に表示させる。
図15に示すサブUIは、DSC3012が、図10記載のスクリプトで、サブUIタグ(sc1005以降の<subUIs>〜</subUIs>)に囲まれた範囲に記述されている項目と選択肢に基づいて構築する。
タイトル2100は、設定画面の種類を示しており、色調整に間する設定画面であることをユーザが認識できるように設けられている。明るさ調整項目2101は、図10のsc1006の<brightneses>に記載された設置値ー3〜+3を選択肢として構築する。ユーザは、例えば上下の矢印キーでこの項目を選択状態にし、例えば左右の方向キーを操作して、所望の値を選択状態にすることで設定を行うことが可能である。
同様に、レベル調整項目2103、逆光補正項目2105、赤目補正項目2107は、それぞれ、図10のスクリプトにおけるsc1007<levelAdjusts>、sc1008<faceBrigeters>、sc1009<redEyeRemavals>に対応した設定項目である。ユーザは上下左右キーなどでカーソルを移動し、設定を行う。「戻る」ボタン2109は、サブUIでの設定が終了した際に、図14のカメラダイレクトプリント設定画面(メインUI)に戻るためのボタンである。詳細調整ボタン2111は、図16記載の色調整詳細設定画面に遷移するためのボタンである。詳細調整ボタン2109が押下されると、DCS3012は、サブUIに代えて、図16に示す詳細UIをLDC35に表示させる。
図16に示す詳細UIは、DSC3012が、図10記載のスクリプトで、詳細UIタグ(sc1010以降の<detailUIs>〜</detailUIs>)に囲まれた範囲に記述されている項目と選択しに基づいて構築する。
タイトル2200は設定画面の種類を示しており、色調整の詳細設定画面であることをユーザが認識できるように設けられている。コントラスト調整項目2201は、コントラスト調整に関する設定を行う項目である。図10のスクリプトにおけるsc1011の<contraste>に記載された設置値ー3〜+3を選択肢として構築する。ユーザは、例えば上下の矢印キーでこの項目を選択状態にし、例えば左右の方向キーを操作して、所望の値を選択状態にすることで設定を行うことが可能である。
同様に、彩度強調量調整項目2203、色調調整項目2205は、それぞれ、図10のスクリプトにおけるsc1012<saturations>、sc1013<hues>に対応した設定項目である。カラーバランス調整用ボタン2207、2209、2211はそれぞれ図10のスクリプトにおけるsc1014<colorBalarances>の項目の詳細であるsc1015<reds>、sc1016<greens>、sc1017<blues>を設定するための設定ボタンである。ボタンを選択して例えば上下矢印キーを操作して、−5〜+5の間で設定可能である。「戻る」ボタン2213は、詳細UIでの設定が終了した際に、図15の色設定画面(サブUI)に戻るためのボタンである。
このように、本実施形態においてDSC3012が構築する各設定画面(UI)は階層構造を有している。そして、最初に表示するメインUIは、基本サービスであるDirect Photo Print Serviceに関する設定項目を含んでいる。そして、補助サービスであるDefoult Setting Serviceに関する設定項目は、図10のスクリプトでの指定によって、<mainUIs>タグで囲まれる設定項目は最上位層(ここではメインUI)に含めてUIを構築する。同様に、DSC3012は、<sbuUIs>タグに囲まれる設定項目は最上位層から呼び出される中間層、<detailUIs>タグに囲まれる設定項目は中間層から呼び出される最深層の設定画面に含めるようにUIを構築する。
このような構成により、ユーザは、より詳細な設定を行いたい時だけ、設定画面の階層を下がってゆけばよい。標準的な設定を行えればよい、通常のユーザは、最初に表示される最上位層の設定画面により、必要最低限の設定が可能である。より詳細な設定を行いたいユーザは、下位層の設定画面に遷移すれば、所望の設定を行うことができる。
なお、本実施形態では、図10記載のスクリプト中に含まれる、設定階層を指定するタグ<mainUIs>、<subUis>、<detailUIs>に従った階層関係で設定画面を構築した例を示した。しかし、DSC3012は、必ずしもスクリプトに指定された階層構造通りの設定画面を構築しなくても良い。
しかしながら、スクリプトの指定に従った階層構造を採用することで、以下に説明するような効果を達成できる。
最上位層(メインUI)のカメラダイレクトプリント設定画面(図14)は、基本サービスであるダイレクトフォトプリントサービス(DPS)に関するプリンタの能力を示す、図13のスクリプトに記載された項目に基づいて構成している。最初に表示されるメインUIでは、印刷結果に大きな影響を与える、主要設定項目を設定するための画面である。一方で、主要設定項目に加え、標準設定サービス(DSS)に関するプリンタの能力を示す図10のスクリプトに記述された設定項目のうち、最上位階層に指定された設定項目を含めている。すなわち、sc1003の<PrintMode>に対応する項目である。カラー印刷かモノクロ印刷かのような印刷結果に大きな影響を与える設定項目が、標準設定サービスの設定項目中にある場合、DPSの設定と同様にメインUIで設定ができるようにした方が、使い勝手がよい。また、意図しない印刷結果となってしまうことを防ぐこと効果も得られる。
また、DPSの設定を行うUIに、別サービスであるDSSの設定を行うUIへの遷移ボタン2019を設けている。一般に表示サイズが小さいデジタルカメラの表示装置では、多くの項目を一画面に表示するのは困難であり、かといって、画面をスクロールするように構成すると、画面外に出た項目の設定値を見ることができない。本実施形態の設定画面構成のように、類似したレベルの設定項目毎にまとめた階層的な構造とすることで、ユーザにとって設定が容易になるという効果がえられる。
本発明のUI構成では、DPSの設定を主とした設定および印刷開始指示画面から、図15、22記載のようなDSSの設定を主とした設定画面へ遷移する、図14記載の遷移ボタン2019のような構成を有している。また、DSSの設定を主とした設定画面から、DPSの設定を主とした設定画面へ遷移する、図15記載の遷移ボタン2109のような構成を有している。このため、ユーザは、DSS関連の設定を行った際には、必ずDPSのメイン設定画面に戻ってから印刷をスタートすることになる。これによりDSS設定が必ず確定した状態で印刷スタートすることが可能となる。すなわち「DSS設定」が完了した後に「プリントスタート」をユーザは行うことになる。
本実施形態において、図9のステップS953の「DSS_set」とステップS909「DPS_StartJob」は、いずれもDSC3012が行なう処理であるが、ステップS953がステップS909の前に実行されることが好ましい。これは、DSSの設定を行った場合、それが確定した後で、「プリントスタート」の指示がなされるよう、本実施形態のようにUIを構成することで可能となる。
もし、本実施形態のような設定画面間の遷移構成等がなく、「DPS設定」と「DSS設定」とが全く独立して設定し互いのUI間で遷移構成を有さない場合を考える。この場合、図9のステップS953の「DSS_set」が、S909の「DPS_StartJob」よりも必ず前に実行されるようにすることは困難であったり、ユーザに負荷を与えたり、操作上違和感を与えたりする可能性が高い。
例えば、プリントスタート時に、「DSS設定が終了したか?」「DSS設定を行ってから印刷開始してください」などのワーニングが必要となり、ユーザに操作上違和感を与えることになってしまう。一方で、本実施形態のように、「DPS設定」画面と「DSS設定」画面との間に、規則的な遷移関係を持たせることで、ユーザに余計な負荷や操作上の違和感を与えることなく、確実に「DSS_set」と「DPS_StartJob」の送信順序を確定することが可能となる。
なお、本実施形態では、DSSに関する設定画面(図15、図16)には、DPSに関する設定画面(図14)を起点として遷移する場合のみを記載した。しかし、DSSに関する設定が完了してから印刷開始指示を入力可能にしさえすれば、DPSに関する設定画面以外からDSSに関する設定画面に遷移可能な構成であってもよい。
ただし、本実施形態のように、DPSに関する設定が、ダイレクトプリントに関する基本設定であることから、DPSに関する設定を行う画面からDSSに関する設定を行う画面へ遷移する構成とした方が、ユーザにとって違和感ない操作感がえられ好ましい。また、ユーザが「DSS設定」の変更を行わない場合においても、「DSS設定」画面への遷移する構成を有している「DPS設定」画面から操作することにより、ユーザが意図をもって「DSS設定」を変更しなかったと判断できるのでより好ましい。
一方、DSSを用いないケースでは、図10に示すような、DSSが提供するプリンタの設定項目を示すスクリプトファイルはPDプリンタ1000からDSC3012へ送信されない。
この場合、メインUIは例えば図17に示すように、DSSに関する設定項目が無効(ここでは非表示)になる。ただし、DSSに関する設定項目のうち、メインUIに含まれるべき項目が確定している場合には、図17に示すように項目名のみ表示してもよい。このように、DSSを用いない場合、DSSに関する設定画面への遷移を行えないようにすることで、変更できない項目の操作や変更を誤ってユーザが指定することが無く、ユーザの操作感を向上できるという効果が得られる。
なお、上述の例では、設定画面間を遷移するためのボタンを、LCD35に表示するGUIに含めていたが、DSCが操作部として有するボタンであってもよい。この場合、画面遷移用の専用ボタンであっても、他機能と共用されるボタンであってもよい。つまり、各設定画面において、それらのボタンの機能が画面間の遷移するための機能として有効となればよい。
さらに、DPSに関する設定画面に印刷指示を行う「プリントスタート」ボタン2007を設けた場合を説明したが、DPSに関する設定と、印刷指示とを同一画面から行うように構成する必要はない。例えば、上述の設定画面間の遷移ボタンと同様、印刷指示を与えるボタンはGUI中ではなく、DSCが有する実際のボタンであってもよいし、DPSに関する設定画面よりさらに上位階層の設定画面に含まれていても良い。ただし、上述のように、DSS設定がなされた場合には、かならずその設定が完了してから印刷開始指示を行えないような構成とする必要がある。
本実施形態では、DSC3012に表示するUIの構築を、PDプリンタ1000から送信されるDPS及びDSSに関するスクリプトに基づいて行っている。スクリプト中には含まれる項目の関係や、DSC3012の種類によっては、UI中に表示できない項目や選択肢が存在する可能性がある。この場合、それら項目についてはどのように処理してもよいが、表示可能なものは極力表示するのが好ましい。逆に、予めDSC3012が準備している設定項目や選択肢(設定範囲)よりも、スクリプトで与えられた項目や選択肢(設定範囲)が少ない場合、スクリプトに合わせてUIを構築した方が、ユーザにとって親切であるので、より好ましいが、特に限定されない。
以上説明したように、本実施形態によれば、標準でサポートされるダイレクトプリントサービスにおいて、相手側装置の能力を確認するディスカバリー手順を利用して、別のサービスの有無を確認することができる。そのため、相手装置が別のサービスを利用可能であれば、標準でサポートされるダイレクトプリントサービスの手順に影響を与えることなく、別のサービスを反映したダイレクトプリント処理を行なうことが可能である。
また、相手装置が別のサービスを有していない場合には、これまで通り標準でサポートされるダイレクトプリント処理を実行可能であるため、異常な動作を引き起こす可能性もない。
また、カメラ側で、2つのサービスに関する設定を行うことが可能であるため、ユーザの使い勝手がよい。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。
本実施形態においては、PDプリンタ1000からDSC3012へ送信するDSSに関するスクリプトファイルと、DSC3012でのUI構築動作以外は第1の実施形態と共通であるため、共通の構成や動作については説明を省略する。
図12は、本実施形態に係る画像印刷装置の一例としてのPDプリンタ1000から、図9のステップS952で送信される標準設定サポート通知スクリプト”DSS_DIS_B”の例を示す図である。
sc1201は、第1サポート機能記述の開始を示すタグである。本実施形態では、このタグは複数回の使用が可能であり、それぞれ選択可能な印刷モードと他の調整・補正項目との関係を規定することを可能としている。
sc1202は、メインUI中で選択可能なサポート機能記述の開始を示すタグである。
sc1203は、サポート印刷モード記述の開始を示すタグである。本例では印刷モードとしてカラー印刷を行う”color”をサポートしている事を表している。つまり、sc1204〜sc1216までの調整・補正項目はこの”color”に関しての調整・補正項目である事を示す。
sc1204〜sc1213は、図10中のsc1004〜sc1013と内容・働きが同一であるので説明を省略する。
sc1214〜sc1216は、それぞれ、サポートカラーバランスの赤色、緑色、青色調整記述の開始を示すタグである。本例では各色とも、”−3”〜”+3”の7段階の調整をサポートしている事を表している。
sc1221は、第2サポート機能記述の開始を示すタグである。
sc1222は、メインUI中で選択可能なサポート機能記述の開始を示すタグである。
sc1223は、サポート印刷モード記述の開始を示すタグである。本例では印刷モードとして白黒印刷を行う”monochrome”をサポートしている事を表している。つまり、sc1224〜sc1228までの調整・補正項目はこの”monochrome”に関しての調整・補正項目である事を示す。
sc1224、sc1226〜sc1228は、sc1204、sc1206〜sc1208と内容・働きが同一であるので説明を省略する。
sc1225では本例では明るさ調整として”−2”〜”+2”の5段階の調整をサポートしている事を表している。
第2サポート機能設定群では、第1サポート機能設定群でのsc1209〜sc1216に相当する、詳細UI中で選択可能なサポート機能記述が存在しない。これは、第2のサポート機能がモノクロ印刷に関する調整、補正項目であり、モノクロ印刷時には、色調整に関する機能は不要と考えられるからである。
この様に、本実施形態では、印刷モードが”color”か”monochrome”であるかに応じ、サポートする調整項目や調整範囲を変更可能とした記述形式を用いたスクリプトファイルを用いる。
次に、このようなスクリプトファイルを受信したDSC3012がどのようなUIを構築するかについて説明する。
図10と図12のスクリプトファイルの比較から判るように、sc1004〜sc1016と、sc1204〜sc1216は共通であるため、<printModes>が「color」である場合、設定可能な項目や選択肢は同じであり、構築されるUIにも違いがない。
そのため、図12のスクリプトファイルにのみ存在する、<printModes>が「monochrome」の場合のスクリプトの処理について、図18を用いて説明する。
DSC3012では、DSSに関して図12の形式のスクリプトファイルを受信すると、<defaultSettingCapabilities>タグに続く<mainUIs>に規定されている項目をメインUIに含めるようにUIを構築する。従って、図18(a)に示す「カメラダイレクトプリント設定画面」は、第1の実施形態で説明した図14と同一である。
ただし、図18(a)では、ユーザが色調設定ボタン2017を操作し、印刷モードを「モノクロ」に設定している点が異なる。この状態で、調整ボタン2019を押下する操作がなされると、DSC3012はサブUIを構築、表示する。
この際、図12のスクリプトでは、色調設定、すなわち<printModes>の値に応じて異なるサブUIが指定されている。そのため、DSC3012は、色調設定がモノクロであることに基づき、sc1224〜sc1228に基づいた図18(b)に示すサブUIを構築、表示する。
カラー印刷モードにおいて構築、表示されるサブUI(図15)との比較から明らかなように、モノクロ印刷モードに対応したサブUIは、<brightnesses>タグで規定される明るさ調整項目2101bの設定可能範囲が−2〜+2となっている。また、「詳細調整画面」への遷移ボタンである2111bが選択不能な状態(ここでは非表示)となっている。
これは、本実施形態におけるスクリプトファイル(図12)の<printModes>が「monochrome」の場合の設定sc1222〜sc1228の内容を反映したものである。sc1223<printMode>が「Monochrome」の場合<subUIs>中のsc1225<brightnesses>がー2〜+2になっている。<printMode>が「Color」の場合には、sc1205の設定値がー3〜+3である。また、<printMode>が「Color」の場合には、sc1209以下に記載されていた<detailUIs>が「Monochrome」の場合の場合には記載がない。これを反映して、詳細設定画面への遷移ボタン2111bを無効としている。
このように、カメラダイレクトプリント設定画面で印刷モードが「モノクロ」に設定された状態でサブUIへの遷移が指定された場合には、スクリプトファイル中の、モノクロ印刷モードに対応した記述を用いてUIを構築する。
このように、本実施形態によれば、設定値に応じてサポート機能が変化する項目がある場合、実際の設定値に対応したサポート機能を設定可能なUIを構築することが可能である。そのため、実際にはサポートしていない機能を誤ってユーザが選択してしまうことを防止することが可能となるという効果がある。
<他の実施形態>
上述の実施形態では、標準的にサポートされるサービス(Direct Print Service)と協働する、標準的にはサポートされていない機能を実現する別サービスの例として、プリンタ設定を利用可能としたDefault Setting Serviceに注目して説明した。
しかし、本発明の本質は、規格化され、標準的にサポートされるサービス(標準サービス)のディスカバリ手順の期間に、好ましくはこの手順を利用して、標準サービスに規定されない機能を実現する別サービス(補助サービス)のディスカバリを行うことにある。従って、対象とする標準サービスや補助サービスの種類は他の機能を実現するものであってもよい。
例えば、標準サービスが実施形態と同様にフォトダイレクトプリントサービスであり、PDプリンタが2つ以上の給紙口を持つ場合に、給紙口の数の伝達や、印刷処理にどの給紙口から給紙するかを指定可能にする補助サービスであってもよい。また、標準サービスでサポートされない高度なレイアウト機能を実現する補助サービスのサポート情報の伝達と、補助サービスがサポートする高度なレイアウトを利用した印刷を指定可能にするサービスであっても良い。また、両面印刷機能サポート情報の伝達および両面印刷を利用を可能にするサービス等も考えられる。
上述の実施形態において、PDプリンタとDSCが互いに共通する補助サービスのサポートを認識した場合、その旨をユーザに報知するように構成することができる。
例えば、上述の実施形態では、ステップS951に対する応答を受信した時点で、DSCが補助サービスをサポートしているかどうかがPDプリンタで認識できる。この場合、例えばPDプリンタは、補助サービスをサポートするDSCが接続されたことを、何らかの方法でユーザに報知することが好ましい。
例えば、プリンタ本体にLCD等の文字表示可能な表示装置があれば、メッセージを表示しても良いし、LED等の点灯状態を変更してもよい。また、音声を用いても良い。特に、上述した標準設定サービスのように、プリンタの設定が変更される可能性がある場合には、その旨をユーザに伝えることで、動作状態をユーザにより適切に理解してもらえるというメリットがある。
また、実際にプリンタの設定内容が変更されることが確定した場合(DSS_SETがDSCからプリンタに送信され、かつ、標準サービスでの印刷設定がプリンタ設定優先である場合)に、その旨を報知しても同様の利点がある。また、プリンタが文字表示可能な表示装置を有する場合には、実際に設定が変更された内容を表示することによって、さらに詳細な情報をユーザに報知することができる。
また、DSCから設定を変更した直後の印刷処理は、設定内容についてDSCのLCDで確認した上で設定を行っているため、ユーザ自身は設定内容がわかっていると考えられる。しかし、時間が経過したり、他のDSCを用いる場合、他のユーザが知らないうちに設定を変更している場合などは、現在プリンタにどのような設定がなされているのか、ユーザが分からなかったり、ユーザの記憶と異なる状態となる場合がある。
このようなことを考慮して、プリンタの電源をOFFしたり、DSCとプリンタを接続しているUSBコネクタが抜かれた場合には、以前設定したDSS設定の変更内容を用いず、予めプリンタ本体に設定されている出荷時設定に戻るようにする。これにより、ユーザの誤解や混乱を防ぐことが可能となる。
既に述べたように、上述の実施形態では、標準サービスの「DPS」と協働する補助サービスとして「DSS」の例を挙げて説明した。印刷処理に関連性の高い他の補助サービスであっても本発明を適用することが可能である。
また、実施形態ではDSCとPDプリンタとをUSBインタフェース並びにUSBケーブルで接続する例を説明した。しかし、接続方法はこれに限らず、他のインタフェースを利用しても良い。例えば、無線(bluetooth(R)や無線LAN)接続であっても良い。