以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
本実施の形態に係る印刷システム及びアダプタ(中継装置)の代表的な特徴例は以下の通りである。
本実施の形態のアダプタは、汎用的な通信規定を利用し、あくまでも中継機器として、カメラ等の画像データの供給源からの画像データを中継してプリンタに送信する。即ち、このアダプタは、既存のダイレクト印刷プロトコルをそのまま利用する。例えば、プリンタとの接続には、PTP(Picture Transfer Ptotocol(PIMA15740))を利用したPictBridgeを採用し、デジタルカメラや携帯電話等の画像データ供給源との接続は、OBEXによるBluetooth等を用いる。
図1は、本発明の実施の形態に係るフォトダイレクトプリンタ装置(以下、PDプリンタ)1000の概観斜視図である。このPDプリンタ1000は、ホストコンピュータ(PC)からデータを受信して印刷する通常のPCプリンタとしての機能と、メモリカードなどの記憶媒体に記憶されている画像データを直接読取って印刷したり、或いはデジタルカメラやPDAなどからの画像データを受信して印刷する機能を備えている。
図1において、本実施形態に係るPDプリンタ1000の外殻をなす本体は、下ケース1001、上ケース1002、アクセスカバー1003及び排出トレイ1004の外装部材を有している。また、下ケース1001は、PDプリンタ1000の略下半部を、上ケース1002は本体の略上半部をそれぞれ形成しており、両ケースの組合せによって内部に後述の各機構を収納する収納空間を有する中空体構造をなし、その上面部及び前面部にはそれぞれ開口部がされている。更に、排出トレイ1004は、その一端部が下ケース1001に回転自在に保持され、その回転によって下ケース1001の前面部に形成される開口部を開閉させ得るようになっている。このため記録動作を実行させる際には、排出トレイ1004を前面側へと回転させて開口部を開成させることにより、ここから記録されたシート(普通紙、専用紙、樹脂シート等を含む。以下単に記録シート)が排出可能となると共に、排出された記録シートを順次積載し得るようになっている。また排紙トレイ1004には、2枚の補助トレイ1004a,1004bが収納されており、必要に応じて各トレイを手前に引き出すことにより、記録シートの支持面積を3段階に拡大、縮小させ得るようになっている。
アクセスカバー1003は、その一端部が上ケース1002に回転自在に保持され、上面に形成される開口部を開閉し得るようになっており、このアクセスカバー1003を開くことによって本体内部に収納されている記録ヘッドカートリッジ(不図示)或いはインクタンク(不図示)等の交換が可能となる。尚、ここでは特に図示しないが、アクセスカバー1003を開閉させると、その裏面に形成された突起がカバー開閉レバーを回転させるようになっており、そのレバーの回転位置をマイクロスイッチなどで検出することにより、アクセスカバー1003の開閉状態を検出し得るようになっている。
また、上ケース1002の上面には、電源キー1005が設けられている。また、上ケース1002の右側には、液晶表示部1006や各種キースイッチ等を備える操作パネル1010が設けられている。この操作パネル1010の構造は、図2を参照して詳しく後述する。1007は自動給送部で、記録シートを装置本体内へと自動的に給送する。1008は紙間選択レバーで、プリントヘッドと記録シートとの間隔を調整するためのレバーである。1009はカードスロットで、ここにメモリカードを装着可能なアダプタが挿入され、このアダプタを介してメモリカードに記憶されている画像データを直接取り込んで印刷することができる。このメモリカード(PC)としては、例えばコンパクトフラッシュ(登録商標)メモリ、スマートメディア、メモリスティック等がある。1011はビューワ(液晶表示部)で、このPDプリンタ1000の本体に着脱可能であり、PCカードに記憶されている画像の中からプリントしたい画像を検索する場合などに、1コマ毎の画像やインデックス画像などを表示するのに使用される。1012は後述するデジタルカメラを接続するためのUSB端子であり、本実施の形態に係るアダプタ1200を接続することが可能である。また、このPD装置1000の後面には、パーソナルコンピュータ(PC)を接続するためのUSBコネクタが設けられている。
図2は、本実施の形態に係るPDプリンタ1000の操作パネル1010の概観図である。
図において、液晶表示部1006には、その左右に印刷されている項目に関するデータを各種設定するためのメニュー項目が表示される。ここに表示される項目としては、例えば、複数ある写真画像ファイルの内、印刷したい写真画像の先頭番号、指定コマ番号(開始コマ指定/印刷コマ指定)、印刷を終了したい最後の写真番号(終了)、印刷部数(部数)、印刷に使用するシートの種類(用紙種類)、1枚のシートに印刷する写真の枚数設定(レイアウト)、印刷の品位の指定(品位)、撮影した日付を印刷するかどうかの指定(日付印刷)、写真を補正して印刷するかどうかの指定(画像補正)、印刷に必要なシートの枚数表示(用紙枚数)等がある。これら各項目は、カーソルキー2001を用いて選択、或いは指定される。2002はモードキーで、このキーを押下する毎に、印刷の種類(インデックス印刷、全コマ印刷、1コマ印刷、指定コマ印刷等)を切り替えることができ、これに応じてLED2003の対応するLEDが点灯される。2004はメンテナンスキーで、プリントヘッドのクリーニング等、プリンタ装置のメンテナンスを行わせるためのキーである。2005は印刷開始キーで、印刷の開始を指示する時、或いはメンテナンスの設定を確立する際に押下される。2006は印刷中止キーで、印刷を中止させる時や、メンテナンスの中止を指示する際に押下される。
次に図3を参照して、本発明の実施の形態に係るPDプリンタ1000の制御に係る主要部の構成を説明する。なお、この図3において、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
図3において、3000は制御部(制御基板)を示している。3001はASIC(専用カスタムLSI)を示している。3002はDSP(デジタル信号処理プロセッサ)で、内部にCPUを有し、後述する各種制御処理及び、輝度信号(RGB)から濃度信号(CMYK)への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理等を担当している。3003はメモリで、DSP3002のCPUの制御プログラムを記憶するプログラムメモリ3003a、及び実行時のプログラムを記憶するRAMエリア、画像データなどを記憶するワークメモリとして機能するメモリエリアを有している。3004はプリンタエンジンで、ここでは、複数色のカラーインクを用いてカラー画像を印刷するインクジェットプリント方式のプリンタエンジンが搭載されている。3005はデジタルカメラ(DSC)3012を接続するためのポートとしてのUSBコネクタである。このUSBコネクタ3005には、後述するアダプタ1200も接続することができ、このアダプタ1200を介して、赤外線インターフェースを有するカメラ付き携帯電話(以下、携帯電話)1100と接続し、その携帯電話1100から画像データを受信してダイレクト印刷を行うことができる。この実施の形態では、アダプタ1200はプリンタ1000のUSB端子1012に直接接続され、携帯電話1100とは赤外線を使用した無線によるデータ交換を行っている。このアダプタ1200における処理は詳しく後述する。
3006はビューワ1011を接続するためのコネクタである。1013はPC3010を接続するためのポートとしてのUSBコネクタである。3008はUSBハブ(USBHUB)で、このPDプリンタ1000がPC3010からの画像データに基づいて印刷を行う際には、PC3010からのデータをそのままスルーし、USB3021を介してプリンタエンジン3004に出力する。これにより、接続されているPC3010は、プリンタエンジン3004と直接、データや信号のやり取りを行って印刷を実行することができる(一般的なPCプリンタとして機能する)。3009は電源コネクタで、電源3019により、商用ACから変換された直流電圧を入力している。PC3010は一般的なパーソナルコンピュータ、3011は前述したメモリカード(PCカード)、3012はデジタルカメラ(DSC:Digital Still Camera)である。
尚、この制御部3000とプリンタエンジン3004との間の信号のやり取りは、前述したUSB3021を介して行われる。
<携帯電話1100の説明>
図4は、本発明の実施の形態に係るアダプタ1200を介してPDプリンタ1000に画像データを供給する携帯電話1100の外観図で、図4(A)は、操作面が見えるように携帯電話を開放した状態を示し、図4(B)は、その背面を示している。
赤外線送受信部(IrDA)1101は、赤外線通信のために赤外線の送受信を行う。この赤外線送受信部1101は、アダプタ1200との赤外線による送受信以外にも、他の携帯電話1100との間での赤外線によるデータの送受信、TVなどのリモコン受光部を持つ電子機器に対しての赤外線送信などが可能である。液晶表示部1102は、携帯電話として使用する際に各種情報を表示する以外にも、カメラ機能を使用する際には、ファインダとして画像を表示するとともに、撮影した写真などを表示することも可能である。操作ボタン1103は、携帯電話として使用する際のダイヤル操作を以外にもメール文書の作成に使用される。またカメラ機能を使用する際には、シャッタなどのカメラ操作が可能である。尚、この操作ボタン1103の機能は、携帯電話1100の使用状況に応じて多種多様に変化する。撮像用レンズ1104は、通常のカメラのレンズとしての機能を有しており、このレンズ1104で被写体を捉えて操作ボタン1103を操作することにより、光学ズーム操作やピント調整などを行ったり、撮影を行うことができる。カードスロット1105は、メモリカードを接続するためのメモリカードスロットで、このメモリカードを使用することにより、撮像した画像を保存/参照する以外にも、携帯電話1100内部の各種情報を保存/参照することが可能である。
図5は、本発明の実施の形態に係る携帯電話1100の制御に係る主要部の構成を説明するブロック図である。尚、この図5において、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
CPU3103は、この携帯電話1100全体の制御を司っている。ROM3101は、CPU3103により実行される処理手順を実行するためのプログラムや各種データを記憶している。ここではプログラムが適宜バージョンアップが行われることを想定し、このROM3101に書き込み可能な不揮発性メモリ、例えばフラッシュメモリを使用しても良い。RAM3102は、CPU3103による処理の実行時にワークエリアとして使用され、各種データを一時的に保存する。このRAM3102は、通常の揮発性メモリで構成してもよく、また電源を切断しても、その内容を保持する不揮発性メモリで構成してもよい。CCD素子3106は、その素子面に光学ユニット3105で結像された画像に応じた電気信号を発生する。ドライバ3107は、CPU3103の制御下で、光学ユニット3105のフォーカシングや絞りなどを制御する。メモリカード3109は、通常、コンパクトフラッシュ(登録商標)メモリカード、スマートメディア等が用いられ、撮影した画像の画像データ等を記憶している。
[実施の形態1]
次に本発明の実施の形態1に係るアダプタ1200について説明する。
図6は、本実施の形態に係るダイレクト印刷用アダプタ1200の外観図である。
USB端子1203は、PDプリンタ1000のUSB端子1012に接続されることにより、PDプリンタ1000に装着される。1205は、このアダプタ1200がダイレクト印刷規格に準拠していることを示すロゴシールである。このシール1205によりユーザは、このアダプタ1200をダイレクト印刷規格に対応するプリンタに接続することにより、携帯電話などからの画像データを直接受信してプリンタにより印刷させることができると認識できる。尚、このようなロゴシール1205により明示する代わりに、例えばアダプタ1200の筐体に直接ロゴを印刷したり、刻印してもかまわない。1208は操作パネルで、その詳細は図7を参照して後述する。1202は、携帯電話などの画像供給源との間で赤外線による通信を行う赤外線送受信部である。1206は、デジタルカメラ等の画像データ供給源との間でUSBケーブルを接続するためのUSBコネクタである。尚、プリンタ1000のUSB端子1012と接続するUSB端子1203はUSB−Aコネクタであり、画像データ供給源側のコネクタ1206は、USB−Bコネクタとする。1207は切り換えスイッチで、このスイッチ1207をスライドすることにより、赤外線送受信部1202を使用した赤外線による通信で画像データを受信してプリントを行うか、或はUSBコネクタ1206を介して画像データを受信して印刷するかを選択できる。このスイッチ1207は、通常、赤外線(1202)側にセットされており、USB(1206)で使用する場合に、スイッチ1207を切り替えるといった使い方が想定される。このアダプタ1200は、前述したようにPDプリンタ1000のUSBコネクタ1012に接続され固定されるが、操作パネル1208の面積が大きいので、それを支える長さ調整可能な足(図示せず)が裏面に付属している。これによりしっかりとPDプリンタ1000に固定され、安定した接続が実現される。
図7は、本実施の形態に係るアダプタ1200の操作パネル1208を説明する図である。この操作パネル1208は、複数のLED及び操作ボタン等を有しており、ユーザがこれらLEDを見ながら操作ボタンを操作することにより、印刷に使用する用紙や印刷機能などを指定することができる。
2210は、プリントに使用する用紙(記録シート)の種類を指定するエリア、2220はプリントに使用する用紙のサイズを指定するエリア、2230はプリントのレイアウトに関する設定を行うエリア、2240は画像補正の有無を設定するためのエリア、2250は日付け挿入(日付印刷)を行うかどうかを指定するためのエリア、2260はプリントする部数を選択するためのエリアである。これら各エリアにおいて、選択項目の左ににはLED2214〜2215,2225〜2227,2234〜2235,2244,2254が設けられており、これら各項目が選択可能である場合に点灯される。これらLEDの点灯制御は、アダプタ1200がプリンタ1000に接続され、そのプリンタのCapabilityを取得した後、そのプリンタで選択できる機能に対応する項目のLEDを点灯し、選択できない機能に対応する項目のLEDは消灯される。従って、ユーザはこれらLEDの点灯を確認するだけで、そのプリンタ1000を使用して印刷する際に選択できる機能を容易に把握することができる。
それぞれのエリア内の右側には、操作ボタン2211,2221,2231,2241,2251が設けられており、これら操作ボタンを操作(押下)することにより選択候補を順次切り替えることができる。例えば、エリア2210では、ボタン2211を押下する毎に、選択項目「フォト用紙」と「普通紙」が順番に切り替わって(トグル)選択され、その選択された項目の上に位置しているLED2212,2213も、その選択に応じて順次切り替えて点灯される。尚、この際、プリンタ1000のCapabilityに基づいて、例えば「フォト用紙」が選択できない場合(LED2214が消灯している場合)は、その項目(フォト用紙)は選択されず、対応するLED2212を点灯されない。またこの場合は、操作ボタン221が押下されても、LED2213の表示は変更されずLED2213のみがオンする。
エリア(用紙サイズ)2220においても同様で、プリンタ1000が「A4」,「L判」、「ハガキ」による印刷が可能な場合、ボタン2221を押下する毎に、「A4」,「L判」、「ハガキ」の順に選択される項目が変更され、その選択された項目に対応するLED(2222〜2224のいずれか)が点灯される。そして「ハガキ」が選択されている状態(LED2224が点灯)でもう一度ボタン2221押すと最初の「A4」に戻って、LED2224が消灯してLED2222が点灯する。この場合も、プリンタ1000のCapabilityに依存し、そのプリンタ1000がプリントできない用紙サイズに対応する項目のLEDが消灯しており、その項目は選択できない。他のエリアにおいても同様で、エリア(レイアウト)2230は「フチ無し」、「フチ有り」を選択でき、選択された項目のLED2232(2233)が点灯される。エリア(画像補正)2240では、「画像補正をする」(ON)か、「しないか」(OFF)の二者択一となっている。「画像補正をしない」(OFF)は、プリンタのCapabilityによらず設定可能であるため、選択可能か否かを示すLEDは設けられていない。従って、プリンタ1000が「画像補正」を実行可能であれば、操作ボタン2241を押下するたびに、LED2242,2243が交互に点灯される。エリア(日付け挿入)2250は、エリア2240と同様に、「日付挿入」を行うか否かの二者択一の選択が行われ、プリンタ1000が「日付挿入」を実行可能であれば、操作ボタン2251を押下するたびに、LED2252,2253が交互に点灯される。エリア(部数)2260は、操作ボタン2261を押下するたびに表示部(7セグメント表示)2262に表示される数字がが一つインクリメントされ、これによりプリント部数を指定できる。尚、デフォルトは「1」部で、「9」部まで進められた後に更に操作ボタン2261が押された場合は、最初の「1」部に戻る。エリア(印刷再開)2270の印刷再開ボタン2271は、例えばプリンタ1000で給紙を失敗して給紙エラーになるなどして、印刷が一時中断した状態から印刷を再開させる場合に使用される。
次に図8を参照して、本発明の実施の形態に係るアダプタ1200の制御に係る主要部の構成を説明する。
図8は、本実施の形態に係るアダプタ1200のハードウェア構成を説明するブロック図である。尚、図8において、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
CPU3201は、ROM3202に記憶されているプログラムに従って、後述する各種制御処理を担当している。ROM3202は、CPU3201により実行されるプログラムや各種データを記憶している。ここではROM3202に記憶されるプログラムが適宜バージョンアップされることを想定し、ROM3202を、書き込み可能な不揮発性メモリ、例えばフラッシュメモリで構成してもよい。RAM3203は、CPU3201のワークエリアとして使用され、CPU3201による制御処理時に各種データを一時的に保存する。尚、このRAM3203は、電源遮断時に内容が消去される揮発性のメモリであってもよく、或はROM3202と同様に、書き込み可能な不揮発性メモリ、例えばフラッシュメモリで構成されてもよい。またこれらを混在させ、目的に応じて別個のRAMを利用するようにしてもかまわない。一例としては、印刷画像ファイルを保持する領域のみを不揮発性メモリに割り当てることで、アダプタ1200の電源遮断後であっても、そのアダプタ1200内に画像ファイルを不揮発に保持し、アダプタ1200の電源再投入時に画像の再印刷を実現できる。尚、操作パネル1208は、前述したように複数のLEDや操作ボタンを有しており、これらLEDの点灯/消灯制御及び操作ボタンの押下の検出はCPU3201により制御される。
<アダプタ1200の通信プロトコルスタックの説明>
図9は、本実施の形態に係るアダプタ1200をPDプリンタ1000に取り付け、携帯電話1100から画像データを受信してPDプリンタ1000に出力する場合における、PDプリンタ1000、アダプタ1200、携帯電話1100それぞれが構築するプロトコルスタックの概要を説明する図である。
PDプリンタ1000は、物理インターフェースとしてUSBホストとなり、USBで標準に規定されているSICD(Still Image Capture Device)クラスのUSBホストとして働く。トランスポート制御は、このSICDを利用したPTP(Picture Transfer Protocol(PIMA15740))によって実現される。PDプリンタ1000内部のダイレクト印刷アプリケーションは、このPTPを利用してダイレクト印刷のための情報を、画像データの供給装置と交換することにより、ダイレクト印刷に対応するプリンタ装置として機能する。
また携帯電話1100は、物理インターフェースとしてIrDA(Infrared Data Association)のSIR装置、又ははFIR装置を用い、赤外線の通信端末装置としても機能している。上位のプロトコルとして、リンクアクセスにIrLAP(Link Access Protocol)を、リンク管理にIrLMP(Link Management Protocol)を用い、トランスポート制御は、このIrLMPを利用したIrTinyTP(Tiny Transport Protocol)によって実現される。この携帯電話1100内部のデータ転送アプリケーションは、このIrTinyTP上のIrOBEX(Object Exchange Protocol)を利用してデータ転送を行うことにより、赤外線データの通信端末として機能する。尚、他のプロトコル構成によっても赤外線データ通信端末を実現でき、例えばデータ転送アプリケーションは、IrTran−P(Transfer Picture)を用いた画像データの転送や、IrCOMMによるシリアル/パラレルポートエミュレーションを用いたデータ転送によっても実現可能である。
本実施の形態に係るアダプタ1200は、PDプリンタ1000及び携帯電話1100に対応するプロトコルスタックを両方とも具備し、プロトコル変換部(Protocol Translator)900によって相互の通信プロトコルを変換する。例としては、このアダプタ1200は、携帯電話1100より赤外線で送信された画像データを受け取り、その受け取った画像データを用い、プロトコル変換部900によってダイレクト印刷用情報を生成する。そして、その生成した印刷用情報をPDプリンタ1000へ送信してダイレクト印刷ジョブを発行する。
尚、図9においては、画像データのデータ源としてIrDA端子を具備した携帯電話1100を示したが、これ以外にもIrDA端子を具備し画像情報を転送できる端末であればカメラ付きでない携帯電話、PHS、PDA、デジタルスチルカメラその他の端末であってもよい。
また、画像データを転送するために画像データ源が具備する通信手段がIrDA以外のものであってもよく、例えばBlueTooth, 802.11xなどの無線通信手段や、USB,IEEE1394,Ethernet(登録商標)(イーサネット(登録商標))などの有線通信手段であってもよい。
図10は、本実施の形態に係るPDプリンタ1000とアダプタ1200とをUSB接続してダイレクト印刷を行う場合、PDプリンタ1000とアダプタ1200との間でのデータのやり取りを説明する図である。この図10は、図9に示すPTPアーキテクチャでダイレクト印刷を実現した場合で説明する。
PDプリンタ1000とアダプタ1200とが物理的に接続された後、まず1401で、PDプリンタ1000とアダプタ1200との間で初期化が行われる。ここで互いの機器がダイレクト印刷に対応していることが確認される。次に1402で、アダプタ1200はPDプリンタ1000に対して、PDプリンタ1000のCapability要求を発行し、PDプリンタ1000のCapabilityを取得する。次に1403で、アダプタ1200はPDプリンタ1000に対して印刷ジョブを発行して印刷を依頼する。次に1404で、PDプリンタ1000は、アダプタ1200に対してステータス(Status)を通知し、印刷処理の開始を通知する。次に1405で、PDプリンタ1000は、アダプタ1200に対してファイル取得を要求して、印刷処理に必要な画像ファイルを取得する。そして1406で、PDプリンタ1000は印刷処理を実行して印刷処理を完了する。最後に1407で、PDプリンタ1000はアダプタ1200に対してStatus通知を行い、印刷処理の完了を通知する。
ここで1401〜1404,1407では、PDプリンタ1000とアダプタ1200とはスクリプトを交換して互いに情報を交換している。1405は、PTPプロトコルをそのまま利用した純粋なファイル転送であり、ここではGetObject,GetPartialObject等のファイル転送オペレーションが用いられる。また印刷処理1406は、純粋にPDプリンタ1000における内部処理である。
また1408はアダプタ1200における処理を示している。この処理1408では、PDプリンタ1000から取得したCapabilityに含まれる、例えば印刷に使用する用紙の種類、用紙サイズ、レイアウト、画像補正、日付け挿入等の印刷条件を解析する。そして、その解析結果に応じて、前述したように操作パネル1208の設定可能な項目に対応するLEDを点灯するなどの処理を行う。
以下、図11〜図15参照して各処理の詳細を説明する。
図11は、図10の1401で示す、USBを使用したダイレクト印刷時の初期化処理の流れを示す図である。
PDプリンタ1000とアダプタ1200とが物理的に接続された後、まず1501で、PDプリンタ1000からアダプタ1200に対して「GetDeviceInfo」が送信される。これによりアダプタ1200に対して、そのアダプタ1200が保持しているオブジェクトに関する情報が要求される。これに対して1502で、アダプタ1200は、「DeviceInfo Dataset」により、そのアダプタ1200が保持しているオブジェクトに関する情報をPDプリンタ1000に送信する。次に1503で、「OpenSession」により、アダプタ1200を画像データのリソースとして割り当て、必要に応じてデータオブジェクトにハンドルをアサインしたり、特別な初期化を行うための手順の開始要求が発行される。これに対してアダプタ1200から肯定応答(OK)が返送されるとPTPによる通信が開始される。
次に1504で、PDプリンタ1000からアダプタ1200に対して、スクリプト形式の全てのハンドルを要求する(Storage ID: FFFFFF, Object Type: Script)。これに対して1505で、アダプタ1200に保持されている全てのハンドルリストが返送される。次に1506,1507において、PDプリンタ1000からi番目のオブジェクトハンドルの情報を取得する。ここで、このオブジェクトに、アダプタ1200の識別を示すキーワード(例えば「山」)が含まれていると、次に1508において、PDプリンタ1000からオブジェクト情報の送信を指示して(SendObjectInfo)、それに対して肯定応答(OK)を受信すると、「SendObject」により、オブジェクト情報をPDプリンタ1000からアダプタ1200に対して送信する。ここで、このオブジェクトには、前述の1507で受信したキーワードに対する応答キーワード(合言葉)として、例えば「川」が含まれている。
このようにして、PDプリンタ1000とアダプタ1200の双方が互いに接続相手を認識できることになり、これ以降はダイレクト印刷を開始することができる。
図12(A)(B)は、PDプリンタ1000(ホスト)とアダプタ1200(スレーブ)との間でのUSBによるダイレクト印刷時のスクリプトの転送処理を説明する流れ図で、図10の1402〜1404,1407におけるPTPレベルでの共通の通信手順を示している。
図12(A)は、PDプリンタ1000からアダプタ1200に対してスクリプトを伝達する手順を示している。
まず最初に、PDプリンタ1000は「SendObjectInfo」により、アダプタ1200に対してオブジェクト情報の送信要求を伝える。次にPDプリンタ1000からアダプタ1200に「ObjectInfo Dataset」を送信することにより、そのオブジェクトに関する情報を通知する。これを受信したアダプタ1200は、そのオブジェクト情報を解析し、オブジェクト本体が受信可能であれば受信予定のオブジェクトに割り当てるオブジェクトハンドル番号と共に「OK」を応答する。この「OK」の応答に続いて、PDプリンタ1000は「SendObject」により、アダプタ1200に対してオブジェクト本体の送信要求を伝える。そして続いて「Object Data」を送信して、そのオブジェクト本体をスクリプト(Script)形式でアダプタ1200に送信する。アダプタ1200はそのオブジェクト本体を受信し、オブジェクト本体の受信を完了したら「OK」で応答する。
図12(B)は、アダプタ1200からPDプリンタ1000に対してスクリプトを伝達する手順を説明する図である。
まずアダプタ1200からPDプリンタ1000に対して「RequestObjectTransfer」を送信して、PDプリンタ1000が所定のオブジェクトハンドルのオブジェクト取得を行うように促す。これにより、PDプリンタ1000は「GetObjectInfo」によりアダプタ1200に対して所定のオブジェクトハンドルのオブジェクトのオブジェクト情報の取得要求を伝える。この「GetObjectInfo」を受信すると、アダプタ1200は、送信したいオブジェクトに関する情報「ObjectInfo Dataset」をPDプリンタ1000に送信し、送信が完了したら「OK」を応答する。この応答「OK」に続いて、PDプリンタ1000は、「GetObject」によりオブジェクト本体の伝送要求を伝える。これを受信するとアダプタ1200は、「ObjectDataset」により、送信したいオブジェクトのオブジェクト本体をPDプリンタ1000に送信し、送信が完了したら「OK」を送信する。
以上の様にして、USBでのダイレクト印刷時には、PDプリンタ1000とアダプタ1200との間でスクリプトをやり取りして情報の交換を行う。
図13〜図15は、本実施の形態に係るUSBでのダイレクト印刷時に交換されるスクリプトの一例を説明する図である。
図13(A)(B)は、本実施の形態に係るUSBでのダイレクト印刷時のCapability取得スクリプトの一例を示す図であり、前述の図10の処理1402で使用される。
図13(A)は、アダプタ1200からPDプリンタ1000に対して送信されるCapability要求スクリプト例を示し、この例では、「Format/」により、PDプリンタ1000がサポートしている画像フォーマットの種類を要求している。
図13(B)は、図13(A)に示すCapability要求に対して、PDプリンタ1000からアダプタ1200に対して送信される応答スクリプトの一例を示し、この例では、<Format>と<Format/>で挟まれた「JPEG」「PNG」により、PDプリンタ1000が、JPEG及びPNGの2種類の画像フォーマットをサポートしていることが記述されている。
ここで図13(A)に示すCapability要求スクリプトは、図12(B)の「Object Dataset」でアダプタ1200からPDプリンタ1000に送信され、図13(B)に示す応答スクリプトは、図12(A)の「Object Dataset」で、PDプリンタ1000からアダプタ1200に送信される。
Capability取得スクリプトは、これ以外にも、印刷用紙のサポートサイズや、印刷用紙の種類、また各印刷用紙のサイズに対応したレイアウト印刷機能、固定サイズ印刷機能、印刷品位、画像補正、画像切り取り、日付印刷、ファイル名印刷等のCapability情報のやり取りに利用される。
図14(A)〜(C)は、本実施の形態に係るUSBでのダイレクト印刷時のジョブ発行スクリプト例を示し、これは例えば図10の1403で使用される。
図14(A)は、アダプタ1200からPDプリンタ1000に送信されるジョブ発行スクリプトの一例を示し、本例ではオブジェクトハンドル番号が「00000001」のJPEG画像の印刷を要求している。このジョブ発行スクリプトは、図12(B)の「Object Dataset」を使用して、アダプタ1200からPDプリンタ1000に送信される。
図14(B)は、図12(A)の「Object Dataset」を使用して、PDプリンタ1000からアダプタ1200に送信され、図14(A)のジョブ発行スクリプトに対する応答スクリプト例を示しており、本例ではPDプリンタ1000が印刷ジョブを受け付けて、「OK」で応答している。
図14(C)は、図12(A)の「Object Dataset」を使用して、PDプリンタ1000からアダプタ1200に送信する、図14(A)のジョブ発行スクリプトに対する他の応答スクリプト例を示しており、本例ではPDプリンタ1000が印刷ジョブを実行できずに拒否を示す「NG」で応答している。
このジョブ発行スクリプトは、他にもCapability取得スクリプトで説明した様に、画像フォーマット以外にも、例えば用紙サイズ等を指定する場合にも利用される。
また複数の画像を1回のジョブ発行スクリプトで指定することや、各画像の部数指定、切り取り領域指定、日付指定、ファイル名の指定にも利用される。
また図14(C)における拒否内容も「NG」だけでなく、その拒否の理由として、例えば、現在他の画像データ源からの印刷を行っているためか、それとも印刷ジョブの設定が間違っているためか等の理由を通知する場合にも利用されても良い。
図15(A)(B)は、本実施の形態に係るUSBによるダイレクト印刷時のStatus通知スクリプトの一例を示す図で、図10の1404及び1407で使用される。
図15(A)は、図12(A)の「Object Dataset」を使用して、PDプリンタ1000からアダプタ1200に送信されるStatus通知スクリプト例を示し、本例ではPDプリンタ1000が現在印刷状態に無く、印刷開始可能な待機状態「IDLE」であるステータスを通知している。
図15(B)は、図12(B)の「Object Dataset」を使用して、アダプタ1200からPDプリンタ1000に送信される、図14(A)のStatus通知スクリプトに対する応答スクリプト例を示し、この例では「OK」で応答している。
このStatus通知スクリプトは、他にも、PDプリンタ1000におけるエラーの発生状況や、その発生したエラーの種別、印刷中のページ数や印刷枚数等の印刷中のジョブの状況、ケーブルを外してもPDプリンタ1000が印刷ジョブを完遂できる状態か否か、PDプリンタ1000が次の印刷ジョブを受け付け可能か否か、PDプリンタ1000のCapability情報が更新されたか否か、印刷ジョブの終了理由等のやり取りに利用される。
またこのステータス(status)は、PDプリンタ1000からアダプタ1200にステータスを通知する場合だけでなく、アダプタ1200からPDプリンタ1000にステータスを要求する場合も有り得る。
更に、スクリプト交換は、本例で説明したCapabilityの取得、ジョブ発行、ステータス通知以外にも、印刷ジョブの中断、エラーからの復帰、バージョン情報、機器名、シリアル番号、ベンダ名等の認証情報の確認・交換、等のコマンドにも利用されても良い。
図16は、本実施の形態に係るアダプタ1200と携帯電話1100とが赤外線インターフェース1101を介して通信する場合の初期化及びファイル転送時の処理の流れを説明する図である。この図では、ファイル転送を図9に示すIrOBEXアーキテクチャで実施した場合で説明する。
まず2011で、携帯電話1100からアダプタ1200に対して接続確認「CONNECT」を発行する。次に2012で、アダプタ1200が携帯電話1100との接続を許可する場合には「SUCCESS」応答を返す。これが後述するアダプタ1200におけるプリント処理の開始トリガとなる。次に2013で、携帯電話1100は転送したいファイルのファイル名やサイズ等の情報とファイル本体を含む全体データのうちの先頭パケットを送信する(PUT)。アダプタ1200は、その先頭パケットを正常に受信したら、2014で次のデータを送付可能である旨を示す応答「CONTINUE」を返す。これにより携帯電話1100は、2015で次のパケットを送信する(PUT)。次に2016で、アダプタ1200は、そのパケットを正常に受信すると、次のデータを送付可能である旨を示す応答「CONTINUE」返す。以下同様にして、2017〜2018が、送信するパケットの数分繰り返し実行される。こうして2019で、携帯電話1100が最終パケットを送信し(PUT)、2020で、アダプタ1200が最後のパケットを正常に受信したら、データの受信が完了した旨を示す応答「SUCCESS」を携帯電話1100に返して、この手順を終了する。
以上説明したように本実施の形態によれば、携帯電話1100から「PUT」で送信された画像に対し、アダプタ1200はPTPのオブジェクトハンドルを割り振り、そのオブジェクトハンドルを利用したダイレクト印刷をPDプリンタ装置1000に対して依頼することとなる。
図17は、本実施の形態に係るアダプタ1200における処理を説明するフローチャートで、この処理を実行するプログラムはROM3202に記憶されており、CPU3201の制御の下で実行される。
この処理は、このアダプタ1200がPDプリンタ1000に接続されることにより開始され、まずステップS101で、初期化処理を実行してPDプリンタ1000と通信を確立する。次にステップS102で、図6に示すスライドスイッチ1207の設定状態を検知し、そのスイッチ1207の状態に応じて、携帯電話1100とのインターフェースをUSBI/F1203、IrDAI/F1202のいずれにするかを決定する。次にステップS103で、PDプリンタ1000に対してCapabilityを要求し、そのPDプリンタ1000のCapabilityを取得する(図10の1402)。このステップS102におけるCapabilityの取得処理では、例えば図13(A)(B)に示すようなスクリプトの交換が行われる。本実施の形態に係るアダプタ1200の操作パネル1208の表示(図7)に必要な情報としては、例えば「用紙種類」、「用紙サイズ」、「レイアウト」、「画像補正」、「日付け挿入」が含まれる。これらCapabilityのパラメータは、それぞれ「paperTypes」、「paperSizes」、「layouts」、「imageOptimizes」、「dataPrints」である。
図18(A)(B)は、このCapabilityの取得で使用される用紙サイズ(paperSize)のスクリプトの一例を示す図である。
図18(A)は、用紙サイズ(paperSize)のCapabilityを要求するスクリプト例を示している。また図18(B)は、その返答スクリプト例を示している。この図18(B)の例では、PDプリンタ1000で印刷可能な用紙サイズは「A4」と「L判(L-size)」であることが分かる。
次にステップS104で、ステップS103で取得したCapabilityに基づいて、アダプタ1200の操作パネル1208のLED2214,2215,2225〜2227,2234,2235,2244,2254(図7)のオン/オフを決定してLEDを点灯/消灯する。ここでは前述したようにPDプリンタ1000がサポートしている機能に対応する操作パネル1208のLEDを点灯し、そうでないLEDを消灯する。このときに同時に、各機能を選択可能かどうかを示す情報もRAM3203に記憶する。
例えば図18(B)のスクリプトの例では、用紙サイズの「ハガキ」サイズがサポートされていないので、操作パネル1208のLED2225,2226を点灯し、LED2227を消灯する。これらの処理を全ての項目、「用紙種類」、「用紙サイズ」、「レイアウト」、「画像補正」、「日付け挿入」について実行することにより、操作パネル1208のLED表示が完了する。尚、部数2262は、前回の設定を引き継ぐなどの理由がない限り、デフォルトで「1」と表示しておくのが望ましい。
次にステップS105で、操作パネル1208の操作ボタン2211,2221,2231,2241,2251,2261,2271のいずれかが操作されたかをみる。操作されていないときはステップS110に進むが、いずれかが操作されるとステップS106に進み、その操作されたボタンが、部数のカウントを指示するボタン2261であるかを判定する。そうであればステップS107に進み、部数カウントを+1してステップS110に進む。尚、ここでカウント値が「9」を超えると「1」に戻すことは前述した通りである。またステップS106で部数のカウントボタンでないときはステップS108に進み、印刷再開を指示するボタン2271が操作されたかをみる。その場合はステップS115に進み、プリントコマンドを作成してPDプリンタ1000に印刷を指示する。尚、この場合、再度、携帯電話1100から画像データを取得する必要がある場合は、ステップS114に進む。ステップS108で印刷再開指示でない場合はステップS109に進み、図7を参照して説明したように、その操作されたボタンに対応する機能項目の内、PDプリンタ1000が有している機能(対応するLEDが点灯しており、RAM3203にその選択可能な機能が記憶されている)を順次選択して、それに応じてLED(2212,2213,2222〜2224,2232,2233,2242,2243,2252,2253)の点灯/消灯を変更してステップS110に進む。
ステップS110では、プリント開始命令が発行されたかどうか検出する。本実施の形態では、このプリント開始命令は、スライドスイッチ1207によりイネーブルにされているインターフェースを介した、例えば携帯電話1100からの接続要求(図16のCONNECT)がそれにあたる。プリント開始命令が発行されないときはステップS111に進み、スイッチ1207の設定が変更されたかどうかをみる。変更されていないときはステップS105に進むが、変更されるとステップS112で、そのスイッチ1207の設定に応じて、イネーブルにするインターフェースをUSB或は赤外線に切り替えてステップS105に進む。
ステップS110でプリント開始命令が発行されるとステップS113に進み、操作パネル1208で設定された各種設定値を取得する。そしてステップS114で、スライドスイッチ1207によりイネーブルにされているインターフェースを介して、携帯電話1100から画像データを取得し、ステップS115で、ステップS114で取得した設定値及び画像データを基にプリントコマンドを作成する。そしてステップS116で、PDプリンタ1000に対してプリントジョブを発行して、携帯電話1100で指定された画像を、アダプタ1200で指定された印刷条件に従ってPDプリンタ1000により印刷を行わせることができる。
図19は、図17のステップS116で発行されるプリントジョブのスクリプトの一例を示す図である。
この例では、画像形式が「JPEG」、用紙種類は「フォト用紙(photopaper)」、用紙サイズは「L判(L-size)」、レイアウトは「フチ無し(bordeless)」、画像補正(image optimize)は「オン」、日付け挿入(date)は「オン」、そして印刷部数は「1」に設定されている。
この一連の処理により、アダプタ1200を使用してユーザが選択した印刷設定がPDプリンタ1000に伝達され、携帯電話1100からの画像データに基づいてプリントが実行される。
また更に、この応用例について説明する。
上述した例の図17のステップS104では、PDプリンタ1000のCapabilityに基づいて、操作パネル1208の各LEDの点灯/消灯を決定していた。つまりPDプリンタ1000における処理能力の可否をLEDを用いて示していたが、例えば日付け挿入や画像補正などであれば、PDプリンタ1000でなくても、アダプタ1200により実現可能である。例えば日付け挿入の場合は、アダプタ1200が、携帯電話1100からの画像ファイルのヘッダに記述されている日付けを取得し、その画像データを展開し、その展開した画像データに、その取得した日付けをスーパーインポーズし、再度、その画像データを圧縮する機能等を備えていれば実現できる。アダプタ1200が、このような機能を有している場合は、例えPDプリンタ1000が「日付け挿入」の機能を有していなくても、アダプタ1200によりその機能を実現できる。従って、PDプリンタ1000のCapabilityに「日付け挿入」機能が含まれていなくてもLED2254を点灯して、「日付け挿入」機能を選択可能にしても良い。
図20は、この場合の処理を説明するアダプタ1200の処理を示すフローチャートで、この処理は例えば図17のステップS104で実行される。
まずステップS201で、対象となる項目、例えば「日付け挿入」などの設定を行う。次にステップS202で、アダプタ1200の処理能力を判定する。ここで、その機能をアダプタ自身で処理可能と判定した場合はステップS205に進み、その機能に対応する操作パネル1208のLEDを点灯し、その機能が選択可能であることをRAM3203に記憶する。一方ステップS202で、アダプタ1200で処理できないと判定した場合はステップS203に進み、ステップS103(図17)で取得したPDプリンタ1000のCapabilityから、その項目をPDプリンタ1000で処理可能かどうかを判定する。プリンタ1000で処理可能と判定した場合はステップS205に進み、図17のステップS104と同様にして、その項目に対応するLEDを点灯し、処理不可能と判定した場合はステップS204に進み、そのLEDを消灯する。その後ステップS206で、操作パネル1208の全ての項目についてLEDの点灯/消灯を決定したかどうかを判定し、そうでないときはステップS201に戻って前述の処理を実行する。こうして操作パネル1208に表示する全ての項目が検査されて、対応するLEDの点灯/消灯が決定されると、この処理を終了する。
こうしてアダプタ1200が有する機能を加味した各種機能の設定可否を示すLEDの表示形態が決定され、それに基づいてユーザによる機能選択が行われる。この場合、前述の図17のステップS115では、ステップS113で設定された印刷機能毎に、その機能をアダプタ1200で実行するか、PDプリンタ1000で実行するかを判断し、PDプリンタ1000で実行させる場合は従前と同様にプリントデータを作成して印刷ジョブを発行する。しかしアダプタ1200の機能を使用する場合は、例えば上述の「日付け挿入」の場合には、携帯電話1100からの画像ファイルのヘッダに記述されている日付けを取得し、その画像データを展開し、その展開した画像データに、その取得した日付けをスーパーインポーズし、その画像データを圧縮する処理を行う。これは例えば、レイアウトや画像補正などをアダプタ1200で行う場合も同様である。
このように、アダプタ1200における処理も加味することにより、PDプリンタ1000のCapabilityで処理不可能となっている機能であっても、アダプタ1200がその機能を有していれば、その機能を選択して印刷を行うことができる。
画像供給装置が携帯電話以外の場合、例えばアダプタがPictBridge接続時のホストとスレーブの両機能を有し、アダプタ経由でPictBridgeのカメラからのダイレクト印刷が実行される場合を考える。アダプタ自身は、PDプリンタに対しては、直接デジカメが接続されたふるまいをし、デジカメに対してはプリンタのようなふるまいをする。上述したような、プリンタにはなくアダプタ自身にもっている機能については、デジカメに対してあたかもプリンタの有する機能の如く該機能のCapabilityを返す必要がある。デジカメはそのCapabilityを受信し、デジカメの画面に選択項目を表示することも可能である。
以上説明したように本実施の形態1によれば、プリンタ1000に接続されるダイレクト印刷用のアダプタ1200で、PDプリンタ1000を用いた印刷に関する印刷条件を設定できる。
また、設定可能な印刷条件を操作パネル1208のLEDで明示することにより、ユーザが設定可能な印刷条件などの項目を容易に識別できる。
尚、図9において、画像データの供給源として、IrDA端子を具備した携帯電話1100を例示したが、これ以外にもIrDA端子を具備し画像データを転送できる端末であればカメラ付きでない携帯電話、PHS,PDA、デジタルスチルカメラやその他の端末であってもよい。
また画像データを転送するために画像データの供給源が具備する通信手段はIrDA以外のものであっても良く、例えばBlueTooth、802.11xなどの無線通信手段や、USB、IEEE1394,Ethernet(登録商標)などの有線通信手段であってもよい。
[実施の形態2]
次に本発明の実施の形態2について説明する。尚、この実施の形態2において、アダプタ1200の操作パネル1208の外観以外は、前述の実施の形態1と同様である。よって、PDプリンタ1000、アダプタ1200、携帯電話1100の構成に関する説明、及びこれらの間の通信プロトコルに関する説明を省略する。
図21は、本発明の実施の形態2に係るアダプタの操作パネル1208aの概観図で、前述の図7に示す構成と共通する部分は同じ記号で示し、それらの説明を割愛する。
図7と比較すると明らかなように、各項目の右側に、プリンタ1000、アダプタ1200及び携帯電話1100が機能的に接続されている状態で、いずれのUIを使用して各機能設定を行うかを指示するための操作切替用のエリア2610,2620,2630,2640,2650が設けられている。またエラー表示をどこで行うかを指定するエラー表示エリア2800も設けられている。これら追加された各エリアには、操作切替ボタンと、3つのLEDが設けられている。これらLED2612〜2614,2622〜2624,2632〜2634,2642〜2644,2652〜2654,2842〜2844は、各項目を選択するためのUI操作を、接続されたどの機器で行うかを示すLEDで、左から「プリンタ」「アダプタ」「接続機器」(本実施の形態に係る携帯電話1100)にそれぞれ対応している。これらLEDの点灯/消灯の切り換えは、各操作切替ボタン2611,2621,2631,2641,2651を押すことにより変更できる。即ち、操作切替ボタンが押下される毎に、「プリンタ」「アダプタ」「接続機器」の順にLEDが点灯され(常に各エリアで1つのみ点灯)、「接続機器」を選択するLED2614,2624,2634,2644,2654が表示されている状態で、更にもう一度、対応する操作切り替えボタンを押すと「プリンタ」を示すLED2612,2622,2632,2642,2652が点灯されるというようにLEDの点灯がトグルするようになっている。LED2613,2623,2633,2643,2653はそれぞれ、アダプタ1200のUIを使用して、その機能を選択できるように選択された場合に点灯される。
但し、いずれの機器を使用しても、その印刷条件(仕様)を設定できない場合は、操作切替ボタンを押下しても、いずれのLEDも点灯しない。また例えば、ある機能がプリンタ1000とアダプタ1200のUIでしか設定できない場合は、対応する操作切替ボタンが押下される度に、「プリンタ」「アダプタ」を示すLEDが交互に点灯され「接続機器」に対応するLEDは点灯されない。更に、例えばアダプタ1200のUIでしか設定できない場合は「アダプタ」を示すLEDが点灯したままで、操作切替ボタンを押下してもLEDの点灯状態は変化しない。尚、これらの表示形態は、単にユーザに対する明示を規定する一例に過ぎず、これ以外の他の方法、例えば設定可否が分かるようにLEDの発光色を変更したり、LEDの点灯数を変更するなどで行っても構わない。
またエラー表示エリア2800は、エラー表示をどの機器で行うかを選択する切替ボタン2841と、エラー表示用にどの機器かが選択されているかを示すLED2842,2843,2844が設けられている。これにより、例えばプリンタのステータス表示、印紙無しエラーや、インク残量低下などの警告が発生した場合に、どの機器に表示するかを選択できる。
次に本実施の形態2に係る選択処理フローについて説明する。
図22は、本実施の形態2に係るアダプタ1200におけるLEDの設定処理を説明するフローチャートである。
まずステップS301で、接続されているプリンタ1000の製造元を示す情報を取得する。この情報の取得は、前述の実施の形態1で述べたような、スクリプトによるやり取りにより取得できる。次にステップS302で、ステップS301で取得した製造元名がメーカテーブルに登録されているかどうかを判定する。このメーカテーブルは事前に作成され、アダプタ1200のROM3202に格納されている。
図23は、このメーカテーブルの一例を示す図である。
左から順に、プリンタの製造元、製品名が記述されている。そして各製品毎に、「用紙種類」「用紙サイズ」「レイアウト」「画像補正」「日付け挿入」及び「エラー表示」の各項目が設けられ、各項目毎に、そのプリンタによる設定が可能「1」か否「0」かが記述されている。これにより、該当する製造元、製品名のプリンタにおける、これら各機能項目の設定の可否を知ることができる。
図22に戻り、ステップS302で、このメーカテーブルに記述されていないプリンタは、それ以降の判定が行えないためステップS307に進み、「プリンタ」を指定する全てのLED2612,2622,2632,2642,2652,2842を消灯し、これ以降のボタン操作でも点灯しないように、RAM3203に記憶しておく。一方、ステップS302で、そのメーカテーブルに記述されている場合はステップS303に進み、更に、そのプリンタの製品名を取得する。次にステップS304で、ステップS302と同様に、そのプリンタの製品名がメーカテーブルに記述されているか否かを判定し、テーブルに含まれていない場合はステップS307に進み、そのプリンタを選択するLEDを消灯する。なお、ステップS307では、これ以降操作切替ボタンにより表示が切り替えられてもプリンタを選択するLEDを点灯しないように、プリンタのUIを選択しないことを示すフラグをRAM3203にセットしておくことは上述の場合と同様である。
ステップS304で、そのプリンタの製造名が含まれている場合はステップS305に進み、該当する項目、例えば「用紙種類」が、そのプリンタで設定可能か否かを、そのメーカテーブルを基に判定し、設定不可であればステップS307で、その機能に対応するLEDを消灯し、その機能を設定可能であればステップS306で、そのLEDが点灯可能であることをRAM3203に記憶しておく。
具体例として、本実施の形態に係るPDプリンタ1000の製造元が「B社」で、製品名が「B101」の場合、上述した全ての機能項目が設定可能「1」である。これにより、図21に示す操作切替エリアにおけるプリンタを指定するLED2612,2622,2632,2642,2652,2842は全て点灯可能としてRAM3203に記憶される。尚、最終的に、そのLEDが点灯されるかどうかは、それぞれ対応する操作切替ボタン(図21)の押下により決定される。
次に、アダプタにおける設定可否LEDの点灯/消灯制御について説明する。この場合もプリンタの場合と同様に、設定可能か否かの判定に基づいて、各機能項目ごとに、アダプタを指定するLED2613,2623,2633,2643,2653,2843の点灯/消灯を決定してRAM3203に記憶する。但し、プリンタの場合と異なり、不特定のデバイスと接続されるわけではないので、アダプタ1200のメーカテーブルを保持する必要がなく、予め設定されている値に基づいて決定される。このアダプタ1200が、アダプタ用のLEDを設けている点で、ほとんどの場合、点灯可能であると判定される。
最後に接続機器の設定可否LEDの点灯制御について説明する。赤外線通信で接続される携帯電話1100の場合、接続が確立されても画像データが転送されてくるだけなので、携帯電話1100を使用した設定は出来ない。つまり切り換えスイッチ1207が赤外線インターフェースを介して接続されている時点で、全て消灯と判定されてRAM3203に記憶される。
こうして実際に操作切替ボタンが押下されると、点灯可能なLEDを、RAM3203に記憶されている各機器の機能に基づいて判定し、現在点灯しているLEDを消灯して次のLEDを点灯するか、或は選択可能な機器が一つしかない場合はそのLEDを点灯したままにするなどの判定を行って、その操作切替ボタンに対応するLEDの表示制御を行う。こうして、その機能を設定するUIとして使用すると選択された機器(プリンタ、アダプタ、携帯電話)はRAM3203に記憶され、これ以降の処理では、その選択された機器からの設定だけが有効になる。従って、例えば、アダプタ1200以外が選択された場合は、その機能に対応するエリア2210,2220,2230,2240,2250における選択可能かどうかを示すLED(2214,2215,2225,2226,2227,2234,2235,2244,2254)は消灯される。
このように各機能ごとに、UIとして使用する機器を切替可能とすることにより、ユーザは操作切替ボタンを操作して所望の機器を選択し、ユーザにとって最も都合の良い機器でプリント機能を設定できる。この際、プリンタ1000のUIで印刷機能を設定する場合は、例えば「用紙種類」であれば「フォト用紙」や「普通紙」のLED2214,2215を消灯し、アダプタ1200では選択できない状態であることを明示する。
以上説明したように本実施の形態2によれば、アダプタを介して接続されているプリンタ、画像データの供給源のいずれかを指定し、その指定された機器のUIを使用してプリンタにおける印刷仕様を設定できる。
尚、ここで、その機器のUIを使用して印刷仕様を設定するように選択されていないPDプリンタ1000、携帯電話1100に対して、アダプタ1200よりそのUIが選択されていないことを示す情報を送信し、その情報を受け取った機器では、その操作部を使用した印刷設定を禁止しても良く、或は、アダプタ1200が、その選択されていない機器で設定された印刷仕様を無視するようにしても良い。尚、その場合は、その機器のUIを使用した印刷仕様の設定が無効であることをユーザに通知する必要がある。
[実施の形態3]
前述の実施の形態2では、アダプタ1200に接続される画像データの供給源が携帯電話1100であるため、プリント機能の設定が不可能であるとした。これに対して画像データ供給源との接続がUSBであり、アダプタ1200との間での通信の取り決めがなされている場合には、画像データの供給源からの印刷仕様の設定が可能となり得る。例えば、Mass Storage Class(以下、MSC)で接続した場合の、ディレクトリによる取り決めが挙げられる。
図24は、アダプタ1200から見た場合のMSCのディレクトリの階層構造の一例を示す図である。
ここでは「DirectPrint」の下位にある「Setting」の下には、用紙種類や用紙サイズといったプリントを行う上での設定条件が記載されたファイル(setting.script)が置かれている。また「Property」の下には、図23で示すメーカテーブルに相当するファイル(property.script)が格納されている。ここではアダプタ1200とPDプリンタ1000との間を共通にするために、それらは同様の形式のスクリプトで記載されている。従って、選択可否を示すLEDを点灯するか否かの判定には、この「Property」の下にあるファイルを参照して判定される。こうしてMSC側で設定可能であれば、それに対応するLEDを点灯可能とする。
「Print」ディレクトリは、通常は空になっており、MSC側でプリント開始となったときに、このディレクトリに対象ファイルがコピーされる。アダプタ1200は、この「Print」ディレクトリにファイルが格納されたのを検出するとプリント開始となる。ここで接続機器(MSC)での設定を利用すると選択されている場合は、「Setting」の下層にある設定ファイルを参照する。そして、その設定ファイルに設定されている印刷仕様をプリントジョブ発行時のパラメータにセットしてPDプリンタ1000へ転送しプリントさせる。
このように本実施の形態3によれば、画像データの供給源とを接続が双方向での通信が可能なものであれば、その画像データの供給源からの印刷仕様の設定が可能となる。
[実施の形態4]
前述の実施の形態2,3では、ユーザへの選択の幅を広げ、より利便性の向上を図った。この実施の形態4では、アダプタ1200による自動判定で説明する。これが最も有効に活用される機能の一つが「画像補正」「画像加工」機能である。この場合、PDプリンタ1000と同等の機能が、アダプタ1200に搭載されていることが前提となる。例として、画像補正の代表例であるノイズ除去を挙げて説明する。画像のノイズを除去する処理としては、平滑化が最も一般的な方法である。この平滑化は、N×N画素(Nは1よりも大きい整数)の大きさを持ったフィルタ処理をすることにより実現される。尚、このフィルタ処理の詳細は本実施の形態の本質ではないので割愛する。
図25は、本実施の形態4に係るアダプタ1200の操作パネル1208の一部を示す図である。
操作ボタン3001により、ノイズ除去処理のオン/オフが設定される。この機能がオンに設定されてLED3003が点灯した場合、この処理の実行先としてプリンタを示すLED3012が点灯する(デフォルト)。この状態で、操作切替ボタン3011が押下されると、その度に、プリンタを示すLED3012、アダプタを示すLED3013、自動を示すLED3014が順次点灯する。こうして、このノイズ除去処理がプリンタで実行されるように設定されているとき(LED3012が点灯)は、PDプリンタ1000に搭載されているノイズ除去処理により処理が行われるよう、プリントジョブのスクリプトをノイズ除去処理設定ありとし、PDプリンタに画像が送信される。またアダプタ1200を示すLED3013が点灯しているときは、アダプタ1200によるノイズ除去処理が実行され、ノイズ除去の設定は解除し、PDプリンタに画像が送信される。自動を示すLED3014が点灯しているときは、図26のフローチャートを参照して後述するように、アダプタ1200とPDプリンタ1000における画像補正処理機能のいずれを選択するかを自動的に判定し、その判定した結果に基づいて、処理有無の設定をして画像を送信することにより、PDプリンタ1000或はアダプタ1200のいずれかにより、その機能を実行させる。
図26は、本実施の形態4に係るアダプタ1200における処理を説明するフローチャートである。
ここでは「自動」が選択されている(LED3014が点灯)場合の処理を示す。まずステップS401で、アダプタ1200にノイズ除去処理が搭載されているか否かを判定する。搭載されていないと判定した場合はステップS406に進み、PDプリンタ1000に画像データを転送する。このときプリントジョブを指示するスクリプトのノイズ除去の箇所を「オン」に設定して、PDプリンタ1000でノイズ除去を行うように指示する。
一方、ステップS401で、アダプタ1200にノイズ除去処理が搭載されていると判断するとステップS402に進み、PDプリンタ1000内部のノイズ除去処理と、アダプタ1200に搭載されているノイズ除去処理の処理速度を比較する。この比較方法としては、前述の実施の形態2の図23に示したメーカテーブル等に処理速度pbs(pixel per second)を記述しておき、これらの値を基に比較しても良い。また或はPDプリンタ1000内部のCPUのクロック周波数や搭載メモリ容量などのリソース情報とアダプタ1200のそれとを比較し、推測してどちらか処理速度が速いかを判定してもよい。
ステップS403で、PDプリンタ1000におけるノイズ処理の方が高速であると判定するとステップS406に進むが、アダプタ1200における処理の方が高速であると判定するとステップS404に進み、アダプタ1200によりノイズ除去処理を実行する。この場合、例えばJPEG形式の画像データあれば、アダプタ1200にJPEG画像を復号するJPEGデコーダ、及びJPEGに符号化するJPEGエンコーダが必要となる。次にステップS405で、ノイズ除去が終わり元のファイル形式に戻された画像データに基づいてプリントジョブを発行する。この際、PDプリンタ1000でノイズ除去処理が再度実行されないように、プリントジョブを指示するスクリプトのノイズ除去の箇所を「オフ」に設定しておく必要がある。
以上説明した自動モードを設けることにより、処理の最適化が行われ、高速なプリントが実現できる。
尚、上記説明では画像補正としてノイズ除去処理を例に説明したが、これ以外にも、例えば変倍(縮小)処理機能をアダプタ1200に搭載することも考えられる。この場合は、選択された用紙サイズと、プリントに使用される画像の縦横サイズから、冗長な場合は縮小処理を施し、アダプタ1200で画像ファイルのサイズを小さくしてからPDプリンタ1000に転送しても良い。これにより画像データの転送時間を短縮できる。
図27は、アダプタ1200の操作パネル1208の一部を示す図である。
ここでは印刷モードとして「きれい」「はやい」に「自動」を加えている。この印刷モードを示すエリア2900は、前述の図7の操作パネル1208に追加される。2911〜2913はそれぞれ「きれい」「はやい」「自動」に対応するLEDで、その機能が選択されたときに表示される。操作ボタン2921は、それが押下される度に、前述したようにそのLEDの点灯が順次変更される。更にこの構成に図21に示すような、プリンタ、アダプタ、接続機器のいずれで処理を行うかを切り替えて選択する操作切替ボタンやLEDを設けても良い。
尚、自動に関する動作としては、メーカーテーブルに記載される液晶搭載の有無などから、より使用しやすい機器を判定し、ユーザーに操作機器を促すことが挙げられる。例えば、上記実施の形態1で述べたような操作パネルを有するPDプリンタなどで、アダプタのUIよりも操作性が良いと判断された場合は、ユーザーにアダプタのUIを使用しないことを促す。アダプタのLEDなどを消灯したり、図25のプリンタのLED3012を点滅させてもよい。また、画像供給元に対しても、なるべくプリンタの操作系を利用するよう、最低限のCapabilityを通知する。それを受けて画像供給元は、表示に詳細な設定表示を行えず、プリンタ設定などの表示を行い、ユーザーにプリンタのUIの使用を導くことが出来る。
以上説明したように本実施の形態4によれば、アダプタ1200に自動選択モードを設けることにより、PDプリンタ1000に搭載されている処理機能と、アダプタ1200に搭載されている処理機能から最適な組み合わせを選択できる。これによりユーザは手間をかけることなく、より好適なプリント環境を実現することができる。
以上説明したように本実施の形態によれば、画像出力の印刷機能の設定を容易にでき、例えば携帯電話等のように、印刷機能を設定できない場合、或は設定機能を有していても、それに設けられているボタンが小さく操作しにくい等の場合であっても、ユーザが所望する印刷仕様を容易に設定でき、印刷を実行させることができる。
また印刷仕様を設定する機器を、接続されている機器のいずれにするかを選択できるようにすることで、ユーザによる操作性の向上が図られる。更に、自動的に印刷仕様を設定できることにより、面倒な設定処理を行うことなく、最適な処理を実現できるようになった。
なお本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが、その供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。その他のプログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件を満足するユーザに対してインターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
またコンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行ない、その処理によっても前述した実施形態の機能が実現される。