(57)【要約】【課題】  従来のインデックス印刷では、各画像のサイズが小さすぎて、何の画像であるかの確認はできるものの、その画像の品質まで確認することは難しい場合が多い。【解決手段】  インデックス印刷において１枚のシートに印刷する画像（コマ）数を変えて、インデックス画像を印刷できるように、コマンドのマイナーコードを使用して、１枚のシート当たりのインデックス画像数を固定にして印刷するか（Ｓ１１４）、総画像数を複数のシートに均等に分けてインデックス画像を印刷する（Ｓ１１３）かを指定することができる。【選択図】  図１１
2005066986.tif 000002
【特許請求の範囲】
【請求項１】
画像供給デバイスと、当該画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する画像記録装置とを含む記録システムであって、
前記画像供給デバイスと前記画像記録装置との間でのコマンドを層構造とし、上位層は装置によらずに認知が必須のコード、下位層は認知が装置に依存するコードとして、
前記上位層にインデックス記録を指示する情報を、前記下位層には前記インデックス記録において同一記録媒体に記録するインデックス画像数の決定方法に関する情報を含むことを特徴とする記録システム。
【請求項２】
前記インデックス画像数の決定方法は、
１記録媒体に所定画像数を記録して複数の記録媒体で総画像数を記録する第１モードと、
前記総画像数をほぼ均一に複数の記録媒体に分割して記録する第２モードとを含むことを特徴とする請求項１に記載の記録システム。
【請求項３】
前記所定画像数は、前記記録媒体に記録可能な最大画像数に相当することを特徴とする請求項２に記載の記録システム。
【請求項４】
前記総画像数は、前記画像供給デバイスからインデックス記録を指定された画像のうち、所定の条件を満たす画像の数に相当することを特徴とする請求項２又は３に記載の記録システム。
【請求項５】
前記第２のモードで分割した各記録媒体の各画像についてに連続的な識別子を付与する付与手段を有することを特徴とする請求項２乃至４のいずれか１項に記載の記録システム。
【請求項６】
画像供給デバイスと、当該画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する画像記録装置とを含む記録システムであって、
前記画像供給デバイスと前記画像出力装置との間でのコマンドを層構造とし、上位層は装置によらずに認知が必須のコード、下位層は認知が装置に依存するコードとして、
前記上位層に新規の記録ジョブの送信を禁止する情報を、前記下位層には前記上位層で規定された事項の例外事項に関する情報を含むことを特徴とする記録システム。
【請求項７】
前記下位層は、一つの記録ジョブを分割した後続の記録ジョブの送信を許可する事項を含むことを特徴とする請求項６に記載の記録システム。
【請求項８】
画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する記録装置であって、
前記画像供給デバイスから送信される層構造の記録コマンドを受信する受信手段と、
前記記録コマンドの上位層がインデックス画像を記録するインデックス記録モードを指定しているかを判定する判定手段と、
前記判定手段により前記インデックス記録モードが指定されていると判定されると、前記上位層の下層で指定されている記録モードに従って記録を行うように制御する制御手段と、
を有することを特徴とする記録装置。
【請求項９】
前記下層で指定されている記録モードは、総画像数に対して、一つの記録媒体に記録するインデックス画像数をほぼ均等に分配して記録する均等配分記録モードと、記録媒体に記録可能な最大数のインデックス画像を記録することを前提とする記録モードとを含むことを特徴とする請求項８に記載の記録装置。
【請求項１０】
画像供給デバイスと、当該画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する画像記録装置とを含む記録システムにおける記録制御方法であって、
前記画像供給デバイスと前記画像出力装置との間でのコマンドを層構造とし、上位層は装置によらずに認知が必須のコード、下位層は認知が装置に依存するコードとして、
前記上位層にインデックス記録を指示する情報を、前記下位層は前記インデックス記録において同一記録媒体に記録するインデックス画像数の決定方法に関する情報を含み、
前記下位層を認知可能な場合は前記下位層で指示されたインディスク画像の記録を行い、前記下位層を認知できない場合はデフォルトのインディスク記録を実行することを特徴とする記録制御方法。
【請求項１１】
前記インデックス画像数の決定方法は、
１記録媒体に所定画像数を記録して複数の記録媒体で総画像数を記録する第１モードと、
前記総画像数をほぼ均一に複数の記録媒体に分割して記録する第２モードとを含むことを特徴とする請求項１０に記載の記録制御方法。
【請求項１２】
前記所定画像数は、前記記録媒体に記録可能な最大画像数に相当することを特徴とする請求項１１に記載の記録制御方法。
【請求項１３】
前記総画像数は、前記画像供給デバイスからインデックス記録を指定された画像のうち、所定の条件を満たす画像の数に相当することを特徴とする請求項１０又は１１に記載の記録制御方法。
【請求項１４】
前記第２のモードで分割した各記録媒体の各画像についてに連続的な識別子を付与する工程を有することを特徴とする請求項１１乃至１３のいずれか１項に記載の記録制御方法。
【請求項１５】
画像供給デバイスと、当該画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する画像記録装置とを含む記録システムにおける記録制御方法であって、
前記画像供給デバイスと前記画像出力装置との間でのコマンドを層構造とし、上位層は装置によらずに認知が必須のコード、下位層は認知が装置に依存するコードとして、
前記上位層に新規の記録ジョブの送信を禁止する情報を、前記下位層には前記上位層で規定された事項の例外事項に関する情報を含み、
前記下位層が認知不能の場合は前記上位層に従った処理を実行することを特徴とする記録制御方法。
【請求項１６】
前記下位層は、一つの記録ジョブを分割した後続の記録ジョブの送信を許可する事項を含むことを特徴とする請求項１５に記載の記録制御方法。
【請求項１７】
画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する記録装置における記録制御方法であって、
前記画像供給デバイスから送信される層構造の記録コマンドを受信する受信工程と、
前記記録コマンドの上位層がインデックス画像を記録するインデックス記録モードを指定しているかを判定する判定工程と、
前記判定工程で前記インデックス記録モードが指定されていると判定されると、前記上位層の下層で指定されている記録モードに従って記録を行うように制御する制御工程と、を有することを特徴とする記録制御方法。
【請求項１８】
前記前記上位層の下層で指定されている記録モードは、総画像数に対して、一つの記録媒体に記録するインデックス画像数をほぼ均等に分配して記録する均等配分記録モードと、記録媒体に記録可能な最大数のインデックス画像を記録することを前提とする記録モードとを含むことを特徴とする請求項１７に記載の記録制御方法。
【請求項１９】
請求項１０乃至１８のいずれか１項に記載の記録制御方法を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像供給デバイスから供給される画像データを基に記録媒体に画像を記録する記録装置と記録システム及びその制御方法とそのプログラムに関するものである。
【背景技術】
【０００２】
近年、簡単な操作で画像を撮影し、その撮影した画像をデジタル画像データに変換できるデジタルカメラ（撮像装置）が広く使用されるようになってきている。このようなカメラで撮影した画像を印刷して写真として使用する場合には、通常、一旦、その撮影されたデジタル画像データを、デジタルカメラからＰＣ（コンピュータ）に取り込み、そのＰＣで画像処理を行った後、そのＰＣからカラープリンタに出力して印刷するのが一般的である。
【０００３】
これに対して最近は、ＰＣを介することなく、直接、デジタルカメラからカラープリンタにデジタル画像データを伝送して印刷できるカラープリントシステム（以降ダイレクト印刷と称する）や、デジタルカメラに搭載され、その撮像した画像を記憶しているメモリカードを、直接、カラープリンタに装着し、そのメモリカードに記憶されている、撮影された画像を印刷できる、所謂フォトダイレクト（ＰＤ）プリンタ等も開発されている(特許文献１参照)。
【０００４】
このメモリーカードの記憶容量の増大に伴って、多くの画像ファイルを一枚のメモリカードに蓄えられるようになった反面、どの様な画像ファイルが、どのメモリカードに保存されているのかを確認するのが困難になってきた。そのため、ダイレクトプリントにおいても、銀塩写真の焼き増し時に添付されるようなインデックス印刷ができる機種が増えてきている。このインデックス印刷は、メモリカードに格納されている画像ファイルを印刷する一手段であるが、画像を鑑賞して楽しむための印刷というよりも、実際にプリントしたい画像を確認して選択する目的で使われている。従って、インデックス印刷時は、各画像に識別肢（例えば、番号など）が付加されて印刷される。またインデックス印刷時には、プリンタが一枚の記録媒体（シート）に印刷できる最大のコマ数で画像を印刷する場合が多い。
【特許文献１】特開２００３−０６１０３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら従来のインデックス印刷では、各画像のサイズが小さすぎて、何の画像であるかの確認はできるものの、その画像の品質まで確認することは難しい場合が多い。例えば、インデックス印刷で画像を確認し、実際に大きく（例えば標準のＬ版サイズ）印刷してみて初めて、その画像のピントがボケてしまっていたりとか色合いがおかしい等の不具合に気付くことがある。これでは印刷に要する手間だけではなく、その画像を印刷するのに要したインクやシートが無駄になってしまう。このような問題はインデックス画像のサイズを大きくすれば解消できると思われる。しかし前述のようにメモリカードの記憶容量が増大して非常に多くの画像が記憶されている状態では、そのメモリカードに記憶されている多数の画像を効率良く確認するためには一枚のシートにより多くの画像を印刷し（印刷コマ数を増やし）一度に多くの画像を確認できるようにするニーズも大きい。
【０００６】
一方、一枚のシートに多数のインデックス画像を印刷するためには、プリンタはそれら画像データを記憶するために膨大なメモリ容量を必要とする。よって、印刷可能な最大インディスク画像数の設定はプリンタの製造コストとも大きく関連している。よって現状では、インデックス印刷における１シート当たりの最大画像数は、プリンタが許容できる最大の画像数とされている場合が多く、例えばＡ４サイズにインデックス印刷する場合、約６０画像から１００画像程度である場合が多い。
【０００７】
本発明は上記従来例に鑑みてなされたもので、インデックス記録時のコマ数とコマサイズを最適値に制御できる記録装置と記録システム及びその記録制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の記録装置は以下のような構成を備える。即ち、
画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する記録装置であって、
前記画像供給デバイスから送信される層構造の記録コマンドを受信する受信手段と、
前記記録コマンドの上位層がインデックス画像を記録するインデックス記録モードを指定しているかを判定する判定手段と、
前記判定手段により前記インデックス記録モードが指定されていると判定されると、前記上位層の下層で指定されている記録モードに従って記録を行うように制御する制御手段と、を有することを特徴とする。
【０００９】
上記目的を達成するために本発明の記録システムは以下のような構成を備える。即ち、  画像供給デバイスと、当該画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する画像記録装置とを含む記録システムであって、
前記画像供給デバイスと前記画像記録装置との間でのコマンドを層構造とし、上位層は装置によらずに認知が必須のコード、下位層は認知が装置に依存するコードとして、
前記上位層にインデックス記録を指示する情報を、前記下位層には前記インデックス記録において同一記録媒体に記録するインデックス画像数の決定方法に関する情報を含むことを特徴とする。
【００１０】
上記目的を達成するために本発明の記録制御方法は以下のような工程を備える。即ち、  画像供給デバイスと、当該画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する画像記録装置とを含む記録システムにおける記録制御方法であって、
前記画像供給デバイスと前記画像出力装置との間でのコマンドを層構造とし、上位層は装置によらずに認知が必須のコード、下位層は認知が装置に依存するコードとして、
前記上位層にインデックス記録を指示する情報を、前記下位層は前記インデックス記録において同一記録媒体に記録するインデックス画像数の決定方法に関する情報を含み、
前記下位層を認知可能な場合は前記下位層で指示されたインディスク画像の記録を行い、前記下位層を認知できない場合はデフォルトのインディスク記録を実行することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、記録する画像の数に応じてインデックス記録時のコマ数とコマサイズが最適値に制御される記録装置と記録システム及び記録制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面を参照して本発明の好適な実施例を詳細に説明する。
【実施例】
【００１３】
＜プリンタの概要説明＞
図１は、本発明の実施例に係るフォトダイレクトプリンタ装置（以下、ＰＤプリンタ）１０００の概観斜視図である。このＰＤプリンタ１０００は、ホストコンピュータ（ＰＣ）からデータを受信して印刷する通常のＰＣプリンタとしての機能と、メモリカードなどの記憶媒体に記憶されている画像データを直接読取って印刷したり、或いはデジタルカメラやＰＤＡなどからの画像データを受信して印刷する機能を備えている。
【００１４】
図１において、本実施例に係るＰＤプリンタ１０００の外殻をなす本体は、下ケース１００１、上ケース１００２、アクセスカバー１００３及び排出トレイ１００４の外装部材を有している。また、下ケース１００１は、ＰＤプリンタ１０００の略下半部を、上ケース１００２は本体の略上半部をそれぞれ形成しており、両ケースの組合せによって内部に後述の各機構を収納する収納空間を有する中空体構造をなし、その上面部及び前面部にはそれぞれ開口部がされている。さらに、排出トレイ１００４は、その一端部が下ケース１００１に回転自在に保持され、その回転によって下ケース１００１の前面部に形成される開口部を開閉させ得るようになっている。このため、記録動作を実行させる際には、排出トレイ１００４を前面側へと回転させて開口部を開成させることにより、ここから記録されたシート（普通紙、専用紙、樹脂シート等を含む。以下単にシートとする）が排出可能となると共に、排出されたシートを順次積載し得るようになっている。また排紙トレイ１００４には、２枚の補助トレイ１００４ａ，１００４ｂが収納されており、必要に応じて各トレイを手前に引き出すことにより、シートの支持面積を３段階に拡大、縮小させ得るようになっている。
【００１５】
アクセスカバー１００３は、その一端部が上ケース１００２に回転自在に保持され、上面に形成される開口部を開閉し得るようになっており、このアクセスカバー１００３を開くことによって本体内部に収納されている記録ヘッドカートリッジ（不図示）或いはインクタンク（不図示）等の交換が可能となる。尚、ここでは特に図示しないが、アクセスカバー１００３を開閉させると、その裏面に形成された突起がカバー開閉レバーを回転させるようになっており、そのレバーの回転位置をマイクロスイッチなどで検出することにより、アクセスカバー１００３の開閉状態を検出し得るようになっている。
【００１６】
また、上ケース１００２の上面には、電源キー１００５が設けられている。また、上ケース１００２の右側には、液晶表示部１００６や各種キースイッチ等を備える操作パネル１０１０が設けられている。この操作パネル１０１０の構造は、図２を参照して詳しく後述する。１００７は自動給送部で、シートを装置本体内へと自動的に給送する。１００８は紙間選択レバーで、プリントヘッドとシートとの間隔を調整するためのレバーである。１００９はカードスロットで、ここにメモリカードを装着可能なアダプタが挿入され、このアダプタを介してメモリカードに記憶されている画像データを直接取り込んで印刷することができる。このメモリカード（ＰＣ）としては、例えばコンパクトフラッシュ（登録商標）メモリ、スマートメディア、メモリスティック等がある。１０１１はビューワ（液晶表示部）で、このＰＤプリンタ１０００の本体に着脱可能であり、ＰＣカードに記憶されている画像の中からプリントしたい画像を検索する場合などに、１コマ毎の画像やインデックス画像などを表示するのに使用される。１０１２は後述するデジタルカメラを接続するためのＵＳＢ端子である。また、このＰＤ装置１０００の後面には、パーソナルコンピュータ（ＰＣ）を接続するためのＵＳＢコネクタが設けられている。
＜プリンタ操作部の概要説明＞
図２は、本実施例に係るＰＤプリンタ１０００の操作パネル１０１０の概観図である。
【００１７】
図において、液晶表示部１００６には、その左右に印刷されている項目に関するデータを各種設定するためのメニュー項目が表示される。ここに表示される項目としては、例えば、複数ある写真画像ファイルの内、印刷したい写真画像の先頭番号、指定コマ番号（開始コマ指定／印刷コマ指定）、印刷を終了したい最後の写真番号（終了）、印刷部数（部数）、印刷に使用するシートの種類（用紙種類）、１枚のシートに印刷する写真の枚数設定（レイアウト）、印刷の品位の指定（品位）、撮影した日付を印刷するかどうかの指定（日付印刷）、写真を補正して印刷するかどうかの指定（画像補正）、印刷に必要なシートの枚数表示（用紙枚数）等がある。これら各項目は、カーソルキー２００１を用いて選択、或いは指定される。２００２はモードキーで、このキーを押下する毎に、印刷の種類（インデックス印刷、全コマ印刷、１コマ印刷、指定コマ印刷等）を切り替えることができ、これに応じてＬＥＤ２００３の対応するＬＥＤが点灯される。２００４はメンテナンスキーで、プリントヘッドのクリーニング等、プリンタのメンテナンスを行わせるためのキーである。２００５は印刷開始キーで、印刷の開始を指示する時、或いはメンテナンスの設定を確立する際に押下される。２００６は印刷中止キーで、印刷を中止させる時や、メンテナンスの中止を指示する際に押下される。
【００１８】
＜プリンタ電気仕様概要＞
次に図３を参照して、本実施例に係るＰＤプリンタ１０００の制御に係る主要部の構成を説明する。尚、この図３において、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００１９】
図３において、３０００は制御部（制御基板）を示している。３００１はＡＳＩＣ（専用カスタムＬＳＩ）を示している。３００２はＤＳＰ（デジタル信号処理プロセッサ）で、内部にＣＰＵを有し、後述する各種制御処理及び、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理等を担当している。３００３はメモリで、ＤＳＰ３００２のＣＰＵの制御プログラムを記憶するプログラムメモリ３００３ａ、及び実行時のプログラムを記憶するＲＡＭエリア、画像データなどを記憶するワークメモリとして機能するメモリエリアを有している。３００４はプリンタエンジンで、ここでは、複数色のカラーインクを用いてカラー画像を印刷するインクジェットプリンタのプリンタエンジンが搭載されている。３００５はデジタルカメラ（ＤＳＣ）３０１２を接続するためのポートとしてのＵＳＢコネクタである。３００６はビューワ１０１１を接続するためのコネクタである。３００８はＵＳＢハブ(USBHUB)で、このＰＤプリンタ１０００がＰＣ３０１０からの画像データに基づいて印刷を行う際には、ＰＣ３０１０からのデータをそのままスルーし、ＵＳＢ３０２１を介してプリンタエンジン３００４に出力する。これにより、接続されているＰＣ３０１０は、プリンタエンジン３００４と直接、データや信号のやり取りを行って印刷を実行することができる（一般的なＰＣプリンタとして機能する）。３００９は電源コネクタで、電源３０１９により、商用ＡＣから変換された直流電圧を入力している。ＰＣ３０１０は一般的なパーソナルコンピュータ、３０１１は前述したメモリカード（ＰＣカード）、３０１２はデジタルカメラ（ＤＳＣ：DigitalStillCamera)である。
【００２０】
尚、この制御部３０００とプリンタエンジン３００４との間の信号のやり取りは、前述したＵＳＢ３０２１又はＩＥＥＥ１２８４バス３０２２を介して行われる。
＜デジタルカメラの概要説明＞
図４は、本実施例に係るＤＳＣ（デジタルカメラ）３０１２の構成を示すブロック図である。
【００２１】
同図において、３１００はＤＳＣ３０１２全体の制御を司るＣＰＵであり、３１０１はＣＰＵ３１００による処理手順を記憶しているＲＯＭである。３１０２はＣＰＵ３１００のワークエリアとして使用されるＲＡＭであり、３１０３は各種操作を行うスイッチ群で、シャッター、モード切替スイッチ、選択スイッチやカーソルキー等が含まれている。２７００は液晶表示部であり、現時点で撮影している映像や、撮像されてメモリカードに記憶されている画像を表示したり、各種設定を行う際のメニューを表示するために使用される。３１０５は光学ユニットであり、主としてレンズ及びその駆動系で構成される。３１０６はＣＣＤ素子であり、３１０７はＣＰＵ３１００の制御下において光学ユニット３１０５を駆動制御するドライバである。３１０８は記憶媒体３１０９（コンパクトフラッシュ(登録商標)メモリカード、スマートメディア等）を接続するためのコネクタであり、３１１０はＰＣ或いは実施例におけるＰＤプリンタ１０００と接続するためのＵＳＢインターフェース（ＵＳＢのスレーブ側）である。
【００２２】
＜カメラ／プリンタの接続概要説明＞
図５は、本実施例に係るＰＤプリンタ１０００とＤＳＣ３０１２との接続を説明する図で、前述の図面と共通している部分は同じ記号で示し、その説明を省略している。
【００２３】
図において、ケーブル５０００は、ＰＤプリンタ１０００のコネクタ１０１２と接続されるコネクタ５００１と、デジタルカメラ３０１２の接続用コネクタ５００３と接続するためのコネクタ５００２とを備えており、また、デジタルカメラ３０１２は、内部のメモリに保存している画像データを、接続用コネクタ５００３を介して出力可能に構成されている。なお、デジタルカメラ３０１２の構成としては、内部に記憶手段としてのメモリを備えるものや、取外し可能なメモリを装着するためのスロットを備えたものなど、種々の構成を採用することができる。この図５に示すようにして、ケーブル５０００を介してＰＤプリンタ１０００とデジタルカメラ３０１２とを接続することにより、デジタルカメラ３０１２からの画像データを直接ＰＤプリンタ１０００で印刷することができる。
【００２４】
以上の構成に基づくＤＳＣ３０１２とＰＤプリンタ１０００とを含む印刷システムにおける動作概要を以下に説明する。尚、この実施例に係る印刷システムでは、ＤＳＣ３０１２とＰＤプリンタ１０００とはそれぞれ本実施例に係る手順ＤＰＳ（Direct Print System）の仕様に従った動作が可能であるものとする。
【００２５】
＜ダイレクトプリントシステムの概要説明＞
図６は、本実施例に係る印刷システムにおいて、ＤＳＣ３０１２からＰＤプリンタ１０００に対してプリント要求を発行して印刷を行う場合の手順を説明する図である。
【００２６】
この処理手順は、ＰＤプリンタ１０００とＤＳＣ３０１２とがＵＳＢケーブル５０００を介して接続された後、互いにＤＰＳ仕様に準拠していることを確認した後に実行される。まずＤＳＣ３０１２は「CofigurePrintService」をＰＤプリンタ１０００に送信して、ＰＤプリンタ１０００の状態をチェックする（６００）。これに対してＰＤプリンタ１０００から、その時点でのＰＤプリンタ１０００の状態（ここでは「アイドル」状態）が通知される（６０１）。ここでは「アイドル」状態であるため、ＤＳＣ３０１２はＰＤプリンタ１０００のcapabilityを問合せ（６０２）、そのcapabilityに応じたプリント開始要求（StartJob）を発行する（６０３）。尚、このプリント開始要求は、６０１で、後述するＰＤプリンタ１０００からのステータス情報の中の「newJobOK」が「True（真）」になっていることを条件に、ＤＳＣ３０１２からＰＤプリンタ１０００に発行される。
【００２７】
このプリント開始要求に対してＰＤプリンタ１０００は、印刷が指示された画像データのファイルＩＤに基づいてファイル情報をＤＳＣ３０１２に要求する（GetFileInfo）（６０４）。これに応答してＤＳＣ３０１２から、そのファイル情報（FileInfo）が送信される。このファイル情報にはファイル容量等の情報が含まれる。そしてＰＤプリンタ１０００がそのファイル情報を受信して処理可能であると判断すると、そのファイル情報をＤＳＣ３０１２に要求する（GetFile）（６０５）。これによりその要求されたファイルの画像データ（ImageFile）がＤＳＣ３０１２からＰＤプリンタ１０００に送られる。これによりＰＤプリンタ１０００がプリント処理を開始すると、６０６で「印刷中（Printing）」を示すステータス情報が、ＰＤプリンタ１０００からＤＳＣ３０１２に「NotifyDeviceStatus」によって送られる。そして１頁のプリント処理が終了すると、次のページの処理開始時にＰＤプリンタ１０００から「NotifyJobStatus」６０７により、それが通知される。そして１頁だけの印刷であれば、そのプリント要求した１頁の印刷が終了すると、次に「NotifyDviceStatus」６０８によりＰＤプリンタ１０００が「アイドル」状態になったことが通知される（NotifyDeviceStatus(Idle)）。
【００２８】
尚、例えば、１頁に複数（Ｎ）の画像をレイアウトして印刷するＮ−ｕｐ印刷の場合には、Ｎ枚の画像を印刷する度に、「NotifyJobStatus」６０７がＰＤプリンタ１０００からＤＳＣ３０１２に送られることになる。本実施例での「NotifyJobStatus」及び「NotifyDeviceStatus」の発行タイミングと画像データの取得の順番は一例であり、製品の実装によっては様々なケースが起こりうる。
【００２９】
尚、このプリント処理において、ＤＳＣ３０１２からのプリント開始要求（StartJob）に、印刷すべき画像データのファイルＩＤを一括して含めて送信して印刷する場合と、一般の写真現像で使用されるＤＰＯＦファイルのファイルＩＤのみをＤＳＣ３０１２からのプリント開始要求（StartJob）に含めてＰＤプリンタ１０００に送信し、ＰＤプリンタ１０００がそのＤＰＯＦファイルを解釈し、必要な画像データのファイルＩＤを取得してプリントする場合も含まれる。
【００３０】
＜印刷Jobの概要説明＞
図７は、ＤＳＣ３０１２からＰＤプリンタ１０００に対して発行されるプリント開始要求の具体例を説明する図である。
【００３１】
図において、７２０は、この印刷ジョブのコンフィグレーション（jobConfig）を示し、７２１はプリント情報（printInfo）を示している。
【００３２】
まずコンフィグレーション７２０について説明する。７００は印刷する画質（quality）を示し、これには例えば「標準」、「高画質」などがある。７０１は用紙サイズ（paperSize）、７０２は用紙タイプ（papertype）で、例えば「普通紙」、「写真用紙」、「インクジェット専用紙」等がある。７０３は印刷する画像ファイルのタイプ（fileType）を指定するもので、例えばＤＰＯＦを使用する場合は、これで指定される。７０４は日付印刷の有無（datePrint）、７０５はファイル名の印刷の有無（fileNamePrint）、７０６は画像最適化を行うかどうか（imageOptimize）、７０７は固定サイズの印刷（fixedSize）、７０８は画像の指定された範囲の印刷を行うかどうかの有無をそれぞれ指定する（cropping）。またプリント情報７２１は、ファイルＩＤ（fieldID）７０９と、日付情報（date）７１０を含んでいる。
【００３３】
図８は、前述のJobStatusとDeviceStatusに含まれる情報を説明する図である。ここで図８（Ａ）のJobStatus、及び図８（Ｂ）のDeviceStatusは、ＰＤプリンタ１０００からＤＳＣ３０１２に送信される。また、ＤＳＣ３０１２は任意のタイミングで、それらの情報をＰＤプリンタ１０００へ送信要求することができる。
【００３４】
図８（Ａ）において、「prtPID」、「ImagePath」及び「copyID」はＤＰＯＦファイルの印刷が指示された場合に有効になる。ここで「prtPID」は、ＤＰＯＦファイルで指定された印刷セクションの識別情報（ＩＤ）、「ImagePath」はＤＰＯＦファイルで指定された画像ファイルを特定するためのパスの情報、そして「copyID」は複数枚の印刷指定時に、実際に何枚目を印刷しているかを意味している。ＤＰＯＦファイルによる印刷の場合は、ＤＳＣ３０１２は、プリント開始要求（StartJob）中にＤＰＯＦファイルの「fileID」を記載してＰＤプリンタ１０００に送信する。これによりＰＤプリンタ１０００は、そのＤＰＯＦファイルの印刷を開始できる。そしてＰＤプリンタ１０００は、そのＤＰＯＦファイルの「fileID」を基にＤＰＯＦファイルを取得し、「GetFileID」を実行して、ＤＰＯＦファイル中に指定された画像ファイルの「fileID」を特定し、その画像ファイルをＤＳＣ３０１２に要求して、その画像データを取得する。こうしてＤＰＯＦファイルで指定された画像を印刷することができる。そして、ＤＰＯＦファイルによる印刷実行中に、印刷の進行状況を示す上記「prtPID」、「ImagePath」及び「copyID」が、ＰＤプリンタ１０００から前述の「NotifyJobStatus」によりＤＳＣ３０１２に通知される。
【００３５】
尚、このＤＰＯＦファイルの印刷中に何らかの理由で印刷が中断された後、印刷が再開された時は、印刷が中止されたページの先頭から、その印刷処理が再開される。
【００３６】
「progress」は、印刷予定枚数の内、現在何枚目を印刷しているか（Ｎ／Ｔ）を示す。ここでＮは現在の印刷ページ、Ｔはトータルの印刷枚数を示す。「imagePrinted」は印刷済みの画像枚数を示す。
【００３７】
次に図８（Ｂ）に示すDeviceStatusについて説明する。
【００３８】
「dpsPrintServiceStatus」は、ＰＤプリンタ１０００の状態を意味し、ＤＳＣ３０１２に通知される。この状態には、アイドル、プリント、ポーズ状態が含まれる。「jobEndReason」は、プリント処理の終了状況を意味し、最終ページの印刷が完了するとＤＳＣ３０１２に通知される。「errorStatus」はそのエラーの状態を意味し、エラーが発生した場合に通知される。「errorReason」は、そのエラーの発生理由を意味し、「errorStatus」と共に通知される。「disconnectEnable」は、ＵＳＢケーブル５０００が外されても印刷可能であることを意味し、ＰＤプリンタ１０００からＤＳＣ３０１２に通知される。「CapabilityChanged」は、ＰＤプリンタ１０００におけるcapabilityが変更されたことを意味し、ＤＳＣ３０１２に通知される。「newJobOK」は、ＰＤプリンタ１０００が印刷要求を受付け可能であることを意味し、ＤＳＣ３０１２に通知される。
【００３９】
＜GetCapabilityの説明＞
図９（Ａ），（Ｂ）は、ＤＳＣ３０１２からＰＤプリンタ１０００に対して発行されるプリンタのcapability取得方法の具体例を説明する図である。
【００４０】
図９（Ａ）は、ＤＳＣ３０１２からＰＤプリンタ１０００に対して、ＰＤプリンタ１０００のcapabilityを要求するコマンドを説明する図である。
【００４１】
図９（Ａ）の例では、＜getCapability＞，＜/getCapability＞によりcapabilityの取得が要求され、＜capability＞，＜/capability＞で囲まれる＜layouts/＞９０１により、ＰＤプリンタ１０００がcapabilityとして、レイアウト印刷機能を有しているかどうかが問い合わせられている。
【００４２】
図９（Ｂ）は、図９（Ａ）のcapability要求に応じて、ＰＤプリンタ１０００からＤＳＣ３０１２に対してcapabilityが返送される例を示す図である。
【００４３】
図中、＜capability＞９０２，＜/capability＞９０６で囲まれるcapability情報の中で、＜layouts＞９０３，＜layouts/＞９０５で囲まれるインデックス印刷情報９０４により、ＰＤプリンタ１０００が有しているインデックス印刷機能が通知されている。
【００４４】
この図９（Ｂ）から明らかなように本実施例では、capabilityは８桁のコード（「57000000」、「57FE0000」）でＰＤプリンタ１０００からＤＳＣ３０１２に送信されている。この実施例では、レイアウトのcapabilityは、上位２桁が「５７」で始まるコードと規定されており、次の２桁が１枚のシートに何枚の画像を印刷できるかを示すレイアウト情報を示している。即ち、上位４桁が「５７０１」は、１枚のシートに１つの画像を印刷するレイアウト印刷が可能であることを示し、「５７０２」は１枚のシートに２つの画像を印刷するレイアウト印刷機能を有することを示している。尚、上位４桁が「５７００」の場合は、ＰＤプリンタ１０００のデフォルトレイアウトでレイアウト印刷するモードを示している。つまりＤＳＣ３０１２からは、１シートに印刷する枚数の具体的な指示はせず、ＰＤプリンタ１０００に任せる、即ち、ＰＤプリンタ１０００に任せても良いモードをＰＤプリンタ１０００がサポートしていることを意味するcapabilityが、ＰＤプリンタ１０００からＤＳＣ３０１２に返信されたことを意味する。また「５７ＦＥ」は、ＰＤプリンタ１０００がインデックス印刷をサポートしていることを示している。即ち、１枚のシートに多数のコマ数で画像が印刷できることを示している。つまり図９（Ｂ）の例では、ＰＤプリンタ１０００が返信しているレイアウト印刷におけるcapabilityは、ＰＤプリンタ１０００のデフォルトで印刷されるレイアウト印刷モードと、インデックス印刷モードを有していることを示している。
【００４５】
尚、図９では、レイアウト印刷に関してのcapabilityの送受信の仕方について説明したが、このcapabilityにより確認できる機能は、このレイアウト印刷に限るものでないことはもちろんである。例えば、ＰＤプリンタ１０００が印刷可能なシートの種類についてのcapability、プリンタ１０００が印刷可能なシートサイズのcapability、プリンタ１０００が対応できる画像データのファイルタイプについてのcapability、プリンタ１０００が日付やファイル名を画像に付加して印刷できるか否かのcapability、プリンタ１０００が対応できる印刷モードについてのcapability、プリンタ１０００が対応できる画像の自動補正機能の有無についてのcapability等様々なcapabilityがあるが、ここではこれらcapabilityの詳細な通信仕様に関しての説明は割愛する。
【００４６】
図１０は、本実施例に係るダイレクト印刷システムで使用される、ＰＤプリンタ１０００とＤＳＣ３０１２との間でのステータスやコマンド等の通知をするためのコードの構成例を説明する図である。ここでは前述したように、各コードは８桁で、各桁の数値は１６進コードで構成されている。
【００４７】
ここで上位４桁「ＸＸＸＸ」はメジャーコード、下位４桁「ＹＹＹＹ」はマイナーコードである。このコードを、図９（Ｂ）のインデックス印刷情報９０４に当て嵌めると、上位４桁のメジャーコードでレイアウト印刷であり、かつ１枚のシートに幾つの画像を印刷するレイアウト印刷であるのかが示される。またマイナーコードにより、メジャーコードで示したcapabilityを更に詳細に規定する。
【００４８】
図１１は、本発明の第１実施例に係る印刷システムにおけるインデックス印刷処理を説明するフローチャートである。
【００４９】
ＤＳＣ３０１２とＰＤプリンタ１０００とが接続されると不図示の仕様に従ってコンフィギュレーションが行われ通信の確立が行われる。次に不図示の仕様に従って、互いにダイレクト印刷の対応機種であることが確認される。これによりＤＳＣ３０１２は、ＵＩ表示を表示部２７００に表示するために、ＰＤプリンタ１０００が有しているcapabilityをＰＤプリンタ１０００から入手する。そして、その入手したcapabilityに応じてＵＩ表示を行い、ユーザからの印刷命令を待つアイドル（待機）状態に移行する。前述したように、ＤＳＣ３０１２とＰＤプリンタ１０００とが、この時点までに実施しなければならない通信処理は最小限に抑えられているのでユーザの待ち時間を非常に短くできる。
【００５０】
ここでユーザが、ＤＳＣ３０１２のＵＩを用いてダイレクト印刷を行う画像や印刷の仕様を決定し印刷指示を入力する。これによりステップＳ１１１で、ＤＳＣ３０１２は、その印刷指示に基づいて印刷ジョブを作成し、ＰＤプリンタ１０００にStartJobを発行する。これを受信したＰＤプリンタ１０００は、ステップＳ１１２で、この印刷ジョブを受信して解析する。この第１実施例では、ＤＳＣ３０１２のユーザからの印刷指示は、１００枚の画像をインデックス印刷する印刷ジョブであるとする。即ち、StartJobの＜layouts＞タグ９０３で指定される８桁のコードの上位４桁は「５７ＦＥ」である。
【００５１】
この実施例のＰＤプリンタ１０００は、最大６４コマのインデックス画像を同一のシートに印刷できる能力を有しており、１枚のシートに印刷する画像数が指定されていないインデックス印刷の印刷ジョブを受信した場合には、６４コマのインデックス画像を印刷することを前提にして、各画像の拡大縮小処理や、印刷位置の確定を行う。
【００５２】
図１２は、本実施例におけるインデックス印刷を説明する図である。
【００５３】
tartJobの＜layouts＞タグ９０３の下位４桁のマイナーコードが「００００」の場合、即ち、上位の桁を含めて＜layouts＞タグで指定される８桁のコードが「５７ＦＥ００００」の場合はステップＳ１１４に進み、各シートに印刷される画像の枚数と、印刷される画像が特定される。ここでは、１枚目のシートはＰＤプリンタ１０００の最大印刷枚数である６４画像が印刷され、２枚目のシートに残りの３６枚の画像が印刷されるように設定される。尚、ここでは２枚目のシートに印刷される３６枚の画像も、１枚目のシートの場合と同様に、６４枚の画像が印刷される場合と同様の拡大／縮小処理及び印刷位置で印刷が行われる。よって、２枚目のシートには、そのシートの前半強が印刷されているだけで、後半がほとんどは白紙の状態で印刷される。もちろん、２枚目のシートに一杯に３６枚の画像を印刷することもできるが、これでは１枚目のシートに印刷された画像サイズと２枚目のシートに印刷された画像のサイズとが異なってしまうので、通常は印刷画像のサイズを統一させるために同じサイズで印刷するのが好ましい。
【００５４】
一方、＜layouts＞タグのコードに「５７ＦＥ０００１」が設定されていた場合はステップＳ１１３に進む。この場合は、上位４桁のメジャーコードが前記例と同じであるので、１００枚の画像のインデックス印刷を行う印刷ジョブであることは同じであるが、下位４桁のマイナーコードに「０００１」が設定されているため、各シートで印刷されるコマ数が、各シートに均等に配分されて印刷されるインデックス印刷モードが指定される。具体的には、本実施例で使用しているＰＤプリンタ１０００は、１シートに最大６４コマのインデックス画像を印刷可能であるが、１００枚のインデックス画像の印刷の場合には、２枚のシートにそれぞれ５０画像ずつに分けて印刷するように設定される。
【００５５】
こうしてステップＳ１１３或はＳ１１４を実行するとステップＳ１１５に進み、各シートに印刷される画像データを確定し、対象とするシートに印刷される対象画像データをＤＳＣ３０１２から取得する。次にステップＳ１１６に進み、１シート当たり５０コマのインデックス画像を印刷されることを前提に、一コマの印刷サイズが演算され、それに基づいて各画像データに対して拡大／縮小及び画像処理が施される。こうして印刷対象のシートの画像に対する処理が終えると印刷を実行する。こうしてステップＳ１１７で、全てのインデックス画像の印刷処理が完了したかを判断し、印刷処理が完了していればこの処理を終了するが、完了していないときはステップＳ１１５に戻り、次のインデックスシート用の画像データの取得を行い、以下同様に処理される。
【００５６】
図１２において、１２００は、ステップＳ１１４の処理を実行して印刷した例を示し、１２０１はステップＳ１１３を実行して印刷した例を示す。
【００５７】
尚、１シート当たりの印刷コマ数が、最大数（ここでは６４）以下の場合は、６４コマを印刷する場合と比較して、１コマのサイズをより大きくして印刷することが可能となる。前述したようにインデックス印刷では、その後の整理などの観点から印刷枚数を増やしたくない反面、少しでも印刷画像が大きい方が利用価値が高まる。このような観点から、後者のように、５０枚ずつに振り分けてインデックス印刷を行うコマ数可変のインデックス印刷は有効である。
【００５８】
しかし一方では、既に、別のインデックス画像を印刷したシートを所有している場合などでは、前回インデックス印刷したインデックス画像と同じサイズにしたいという要望もある。このような場合は、前者のように、１枚目のシートに６４コマを印刷し、２枚目のシートに３６コマを、それぞれ同じサイズのインデックス画像で印刷すればよい。
【００５９】
本実施例では、ＤＳＣ３０１２のＵＩを用いて、いずれのインデックス印刷を指定できるか選択できるので、様々なユーザのニーズに応えることができる。また前述したように、ＤＳＣ３０１２は、このＵＩ操作の結果に従ってＰＤプリンタ１０００に印刷ジョブを発行する時に、＜layouts＞タグの８桁コードの中のマイナーコードの値を変更するだけで指定することができるので、実装負荷も殆どなく該機能を実現できる。
【００６０】
更には、前記の通りマイナーコードの取り扱いは任意となっているので、仮にコマ数可変のインデックス印刷に対応していないＰＤプリンタ１０００に対してＤＳＣ３０１２のコマ数可変インデックス印刷を指示するコードを送信したとしても、コマ数固定で印刷されることを除いて、全て正常にインデックス印刷が行われるので、極めて実装の負荷が低減される。
【００６１】
図１３は、本発明の第１実施例に係るＰＤプリンタ１０００におけるインデックス印刷処理を説明するフローチャートで、この処理を実行するプログラムはプログラムメモリ３００３ａに記憶されている。
【００６２】
この処理は前述したように、ＤＳＣ３０１２からの印刷指示により、Ｎ枚の画像をインデックス印刷する印刷ジョブが指示されることにより開始される。即ち、StartJobの＜layouts＞タグ９０３で指定される８桁のコードの上位４桁が「５７ＦＥ」の場合に実行される。そしてステップＳ１２１に進み、マイナーコードが判別でき、かつそのマイナーコードが「０００１」、即ち、均等配分インデックス印刷が指示されているかをみる。均等配分のインデックス印刷が指示されているときはステップＳ１２２に進み、インデックス印刷が指定された画像数Ｎを取得する。次にステップＳ１２３に進み、インデックス印刷に要するシート数を計数するための変数ｎを「１」にセットする。ステップＳ１２４では、画像数Ｎを変数ｎで除算した値（Ｎ／ｎ）が「６４」（１シートに印刷可能な最大コマ数）よりも大きいかを調べる。「６４」よりも大きいときは１（ｎ）枚のシートだけでは不十分であるためステップＳ１２５で変数ｎの値を＋１してステップＳ１２４に進む。
【００６３】
こうしてステップＳ１２４で、（Ｎ／ｎ）が「６４」に等しいか、それ以下になるとステップＳ１２６に進み、（Ｎ／ｎ）が整数であるかをみる。整数であればステップＳ１２７に進み、ｎ枚のシートのそれぞれに（Ｎ／ｎ）コマの画像を配置するようにレイアウトし、ステップＳ１２８に進んで、シートサイズとそのシートにレイアウトする画像数とに応じて、各画像の変倍処理を行ってインデックス画像を作成する。そしてステップＳ１２９に進み、ｎ枚のシートのそれぞれにインデックス画像を印刷するインデックス印刷を実行する。
【００６４】
またステップＳ１２６で、（Ｎ／ｎ）が整数でないときはステップＳ１３０に進み、（Ｎ／ｎ）の整数部分が「６４」に等しいかをみる。等しいときは、ステップＳ１２５に進んで、変数ｎを＋１誌てステップＳ１２４に進む。これはインデックス印刷の画像数が、例えば１９４枚の場合、１シートに最大６４コマの画像を印刷すると３枚のシートに６４画像が印刷され、残りの１枚のシートには２枚のインデックス画像だけが印刷されることになる。そこで、これら１９４枚の画像を４枚のシートに分配して、４８コマのインデックス画像が印刷されたシート２枚と、５０コマのインデックス画像が印刷されたシート２枚の計４枚のシートに印刷するものである。尚、このような分配が不要であればステップＳ１３０の処理はなくても良い。ステップＳ１３０で、（Ｎ／ｎ）の整数部分が「６４」に等しくない時はステップＳ１３１に進み、Ｎ＝ｎｘ＋ｙで表されるとき、ｎ枚のシートの内、（ｎ−ｙ）枚のシートにｘコマのインデックス画像を配置し、ｙ枚のシートには（ｘ＋１）コマのインデックス画像を配置する。そしてステップＳ１２８に進み、シートサイズとそのシートにレイアウトする画像数（ｘ或は（ｘ＋１））とに応じて、各画像の変倍処理を行ってインデックス画像を作成する。
【００６５】
又ステップＳ１２１で、均等配分インデックス印刷が指示されていないときはステップＳ１３２に進み、インデックス画像数Ｎを取得する。次にステップＳ１３３に進み、この画像数Ｎが、１シートに印刷可能な最大インデックス画像数「６４」以上かどうかをみる。「６４」以上でなければステップＳ１３７に進み、１枚のシートにＮコマのインデックス画像をレイアウトしてステップＳ１２８に進む。
【００６６】
またステップＳ１３３で、この画像数Ｎが、１シートに印刷可能な最大インデックス画像数「６４」以上の場合はステップＳ１３４に進み、画像数Ｎ＝６４×ｎ＋ｙによりシート数ｎと残りの画像数ｙを求める。そしてステップＳ１３５に進み、ｎ枚のシートのそれぞれに６４コマのインデックス画像をレイアウトし、ｙの値が「０」でないときは、１枚のシートにｙ枚のインデックス画像をレイアウトする。こうしてステップＳ１２８に進み、そのレイアウトに従って画像の変倍を行ってインデックス画像を生成する。このようにして、画像数Ｎと均等配分印刷の有無に応じたインデックス画像の印刷を行うことができる。
【００６７】
尚、本実施例では、インデックス印刷する総画像（コマ）数は、印刷ジョブ（StartJob）で指定された画像数により決定される。
【００６８】
また本実施例でのインデックス印刷は、必ずしもメモリカードに保存されている全ての画像を印刷する印刷モードではない。例えば、メモリカードに保存されている画像の中でＰＤプリンタ１０００が対応可能なファイルタイプの画像を抽出し、その抽出した画像を選択的に印刷してもよく、またユーザが選んだ画像のみの印刷の場合もある。即ち、複数の画像が印刷対象となり、印刷レイアウト（１枚のシートに何コマ印刷を行うか）を指定することなく、印刷ジョブがＰＤプリンタ１０００に渡されて印刷される印刷モードを本実施例ではインデックス印刷と称している。
【００６９】
また、前述の例では、均等配分により全てのシートでの印刷コマ数がそれぞれ等しくなるとしたが、画像の数によっては等分できない場合もあり、また条件により、必ずしも全てのシートで印刷されるコマ数が等しくなるとは限らない。
【００７０】
また第１実施例では、同一シートに印刷される画像データは、一括してＤＳＣ３０１２からＰＤプリンタ１０００に受信した後に画像処理を行うものとして説明したが、画像処理と画像データの受信を必要に応じて交互に行う仕様であって勿論良い。
【００７１】
［第２実施例］
前述の第１実施例では、インデックス印刷に先立って、印刷する画像の総コマ数を印刷ジョブ（StartJob）に記載されている画像の数により確定し、その後、各シートに印刷するコマ数を決定した。しかし、この第２実施例では、総コマ数を決定する際に（StartJob）に記載されている画像の数で決定するのではなく、各画像が印刷できる画像であるかどうかを確認し、実際に印刷可能であると判断された画像の総数に基づいて、各シートに印刷するコマ数を決定してもよい。
【００７２】
具体的には、この第２実施例では、印刷指定されている画像ファイルをＤＳＣ３０１２から受信した後、デコード処理を行い、問題なくレンダリングできることを確認し、その後に、総印刷コマ数を決定する。また、デコード処理の段階で画像ファイルに問題が確認されて印刷が行えないことが判明した場合には、その画像は印刷対象外とする。従って、印刷ジョブを受信した段階で、例えば６５枚の画像を印刷するデフォルトのインデックス印刷指示であった場合、ＰＤプリンタ１０００における最大印刷可能コマ数は６４枚に基づく２枚のシートへのインデックス印刷が実行される。しかし、この第２実施例では、前段階でのチェック（プレチェック）により、例えば画像ファイルに問題が確認されて印刷できない画像が１つあることが判明していると、印刷対象画像数は６４となり、１枚のシートに６４コマが配置されてインデックス印刷される。
【００７３】
このようなダイレクト印刷の制御を行うことにより、最適なレイアウトでのインデックス印刷を実現できる。
【００７４】
尚、この第２実施例では、画像ファイルのプレチェックとして画像ファイルのデコードを行って確認したが、ファイル名等に基づいてファイルタイプを確認し、ＰＤプリンタ１０００がサポートしているファイルタイプであるかどうかを判定することにより、前述のプレチェックに代えることもできる。また、画像ファイルは多くの場合、画像データの前にタグとして画像の各種情報を格納しているため、そのタグを正しく読み込めて、そのタグの適正かどうかにより判定するなど、画像ファイル全てのデコードを行わずにプレチェックとすることも可能である。
【００７５】
このようなプレチェックは、印刷対象の画像データがデジタルデータである場合、その必要性がより高まる。即ち、印刷対象の画像が銀塩カメラで取られたフィルム（アナログデータ）であれば必ず印刷は出来る。しかしデジタルデータの場合、データファイルの破損やサポート外の形式でのデータ形式であるなど様々な理由で、その画像が印刷できない場合が起こりうる。よって、銀塩カメラのフイルムデータの場合とは異なり、画像データをプレチェックする必要性は高いといえる。尚、こうして印刷対象の画像数Ｎが決定された後の処理は前述の第１実施例と同様にして実行できる。
【００７６】
［実施例３］
前述の第１，２実施例では、総コマ数の特定を一つの印刷ジョブのデータに基づいて判断した。しかし、上述の実施例の前提においても、本来１つの印刷ジョブであるはずの印刷ジョブが、ＤＳＣ３０１２の都合により複数の印刷ジョブに分割されてＰＤプリンタ１０００に転送される可能性がある。この原因としては種々考えられるが、例えば、印刷ジョブ（StartJob）におけるファイルサイズの上限を超える場合や、１ジョブで指定できる画像数の制限がある場合などに、その印刷ジョブを複数のジョブに分けなければならない。又或は、ＰＤプリンタ１０００とＤＳＣ３０１２はインターフェースを介してデータを送受信しているが、このデータを受信する受信バッファサイズの上限を超える印刷ジョブを送信しようとした場合、又更には、データの転送レートなどに応じて、印刷ジョブが分割されて転送される可能性がある。
【００７７】
いま、総コマ数が１２０枚のインデックス印刷を行う場合、仮に印刷ジョブが１００枚分の画像分しか作成できないとする。この場合は、最初に送信される印刷ジョブで１００枚の画像のインデックス印刷を指示し、次の印刷ジョブで２０枚の画像のインデックス印刷を指示することになる。この時、前述の第１実施例の動作に従えば、最初に総コマ数が１００枚の画像に対して、各シートへの印刷コマ数や各コマの印刷位置などが決定される。次に、総コマ数が２０枚の画像に対して、１つのシートへの印刷コマ数や各コマの印刷位置が決定される。これでは本来２枚のシートに印刷されるはずのインデックス画像が、３枚のシートに印刷されてしまい、総コマ数が１２０枚として印刷ジョブが送信された場合とは異なる印刷結果となってしまう。
【００７８】
このため、この第３実施例では、ＰＤプリンタ１０００は１つの印刷ジョブを受信すると、その印刷ジョブの内容を解釈し、この後直ぐにこの印刷ジョブの印刷処理に移行するのではなく、次の印刷ジョブを受信して、その内容を解釈し、１つ前に受信している印刷ジョブと同じ条件の印刷ジョブ（同じインデックス印刷ジョブ）がある場合には、それら印刷ジョブの結合を行う。即ち、１つ目の印刷ジョブが総コマ数１００枚の印刷ジョブで、２つ目の印刷ジョブが総コマ数２０枚の印刷ジョブあった場合は、総コマ数１２０枚の印刷ジョブとして印刷する。このような方法を実現するために、この第３実施例では以下の方法を取る。
【００７９】
図１４は、前述の図６を参照して説明した＜notifyDeviceStatus＞のコマンドの例を示す図で、図１４（Ａ）は、ＰＤプリンタ１０００からＤＳＣ３０１２に送られるコマンド例を示し、図１４（Ｂ）は、ＤＳＣ３０１２からＰＤプリンタ１０００に送られるコマンド例を示している。
【００８０】
図１４（Ａ）の１４０１の＜newJobOK＞は、ＰＤプリンタ１０００からＤＳＣ３０１２に、次の印刷ジョブを送って良いかどうかの情報を伝達するタグを示し、ここで「７６００００００」は、新しい印刷ジョブが受信できない状態である事を示しており、「７６０１００００」は、新しい印刷ジョブが受信できる状態であることをＰＤプリンタ１０００からＤＳＣ３０１２に伝えるために用いられる。
【００８１】
この図１４（Ａ）では、このタグの内容は「７６００００００」となっているので、ＰＤプリンタ１０００は新しい印刷ジョブを受信できない状態であることを示している。ここで、この８桁のコードは、前述のように上位４桁がメジャーコードで、下位４桁がマイナーコードである。よって、上位４桁は「７６００」であり、基本的には新規の印刷ジョブの送信が禁止されている。しかし、マイナーコードで「０００１」を記載することにより、もし前回と同じ印刷ジョブ、即ち、前回の印刷ジョブに連続している印刷ジョブであれば、その場合にのみ印刷ジョブを送っても良いと規定している。従って、ＰＤプリンタ１０００は、＜newJobOK＞タグ１４０１のメジャーコードに「７６００」を付加して、新規の印刷ジョブを原則禁止しておき、マイナーコードに「０００１」をセットしおく。これにより、次の印刷ジョブがＤＳＣ３０１２から送られてきた場合には、前回と同一の印刷ジョブ、即ち、前回の印刷ジョブの続きであると判定して処理できる。
【００８２】
ここで、もしＤＳＣ３０１２が＜newJobOK＞タグ１４０１のマイナーコードを理解できないカメラの場合、メジャーコードで判定されて、次の印刷ジョブがＤＳＣ３０１２から送られない。また、ＰＤプリンタ１０００がメモリの制約で、次の次の印刷ジョブを受け取れない場合も印刷ジョブの統合は行えない。しかし、通常、上記送受信データの上限設定はメモリ容量の最も小さいデバイスに合わされているので、複数の印刷ジョブを受信できる場合が多く、印刷ジョブの統合は有効である。
【００８３】
図１５は、本発明の第３実施例に係るＰＤプリンタ１０００における印刷ジョブの受信処理を説明するフローチャートで、この処理を実行するプログラムはプログラムメモリ３００３ａに記憶されている。
【００８４】
まずステップＳ１５１で、ＤＳＣ３０１２から印刷ジョブを受信するとステップＳ１５２に進み、DeviceStatusでＤＳＣ３０１２に応答する。この際、同じ印刷ジョブを受信できることを、前述の＜newJobOK＞タグ１４０１に「７６０００００１」をセットしてＤＳＣ３０１２に送信する。これによりＤＳＣ３０１２に対して、同じ印刷ジョブであれば連続して受信できることを知らせる。
【００８５】
こうしてステップＳ１５３に進み、次の印刷ジョブを受信したかをみる。次の印刷ジョブを受信すると、これはＤＳＣ３０１２が、ステップＳ１５２で送信した＜newJobOK＞タグ１４０１のマイナーコードを理解して印刷ジョブを送信してきたと判断できるので、前に受信している印刷ジョブと今回受信した印刷ジョブとを結合して一つの印刷ジョブとして扱う。そしてステップＳ１５２に進み、前述した処理を実行する。
【００８６】
またステップＳ１５３で、次の印刷ジョブを受信しないときはステップＳ１５５に進み、所定時間の経過を待って印刷ジョブを受信しないことを確認してからステップＳ１５６に進み、それまでに受信した印刷ジョブを確定し、その確定した印刷ジョブの処理を開始する（Ｓ１５７）。この印刷ジョブの処理としては、例えば図１３のフローチャートで示す処理が実行されることになる。
【００８７】
図１６は、本発明の第３実施例に係るＤＳＣ３０１２における印刷ジョブの発行処理を説明するフローチャートで、この処理を実行するプログラムはＲＯＭ３１１０１に記憶されている。
【００８８】
この処理は印刷ジョブが発生して、それをＰＤプリンタ１０００に送信する必要が発生することにより開始され、まずステップＳ１６１で、ＰＤプリンタ１０００に対して印刷ジョブを送信する。次にステップＳ１６２に進み、ＰＤプリンタ１０００からDeviceStatusを受信したかどうかをみる。DeviceStatusを受信するとステップＳ１６３に進み、＜newJobOK＞タグ１４０１のメジャーコードを判別する。次にステップＳ１６４で、新規の印刷ジョブの送信が禁止されているかどうかを判定し、そのコードが含まれていないときはステップＳ１６５に進んで、その対応する処理を実行する。
【００８９】
ステップＳ１６４で、新規の印刷ジョブの送信が禁止されている（メジャーコードが「７６００」）時はステップＳ１６６に進み、そのマイナーコードを識別可能かどうかを調べ、識別可能であればステップＳ１６７に進み、そのコードが同じ印刷ジョブであれば受信可能、即ち「０００１」かどうかを調べる。そうであればステップＳ１６８に進み、前回、ＰＤプリンタ１０００に送信した印刷ジョブに連続している印刷ジョブがあるかどうかを調べ、あればステップＳ１６９に進み、その印刷ジョブをＰＤプリンタ１０００に送信する。これにより前述の図１５のステップＳ１５４で、連続する印刷ジョブが受信されることになる。又ステップＳ１６６、Ｓ１６７，Ｓ１６８の判定で「Ｎｏ」の場合にはステップＳ１６２に進み、次にＰＤプリンタ１０００から送信されてくるDeviceStatusを受信する。
【００９０】
更に本実施例のように、同一の印刷ジョブであることが予め分っている場合、コマンドを解釈するコマンドデコーダを一時的に切り離すなど次の印刷ジョブを受けられる工夫は際限なくあるが、ここでの詳細な説明は省略する。
【００９１】
更に、本実施例では＜newJobOK＞タグで、同一の印刷ジョブである場合だけ次の印刷ジョブの受信を行ったが、無条件に次の印刷ジョブを受信して、解釈して同じ印刷ジョブであるかどうかを判断して印刷制御する方式であっても勿論良い。
【００９２】
［実施例４］
前述したように、インデックス印刷は画像を確認することが主目的であるため、インデックス画像に識別子が付加されて印刷される場合が多い。この識別子としては、ファイル名が考えられるが、画像の順番を示す連番が使用される場合が多い。
【００９３】
このようなインデックスを利用するユーザは、まずインデックス印刷を行ってメモリカードに格納されている画像の一覧を取得する。次に、そのインデックス画像を参照して印刷したい画像を選択する。この選択した画像に付加されている番号を、ＤＳＣ３０１２のＵＩを用いて入力し、印刷対象の画像を指定する。もちろんインデックス印刷には様々な利用方法があるが、この様な使い方に用いられることも多い。この時、前述のように印刷ジョブが複数のジョブに分割されてしまうと画像の選択時に混乱をきたす原因となる。そこでこの第４実施例では、前記第３実施例と同様に、複数のジョブに分割された印刷ジョブをＰＤプリンタ１０００で纏めることにより、インデックス画像の各コマに付加される識別子を纏めたジョブでプリントされる全ての画像に対して連続的に付与できるので、最適にナンバリングできる。
【００９４】
尚、この第４実施例では、識別子を番号としたが、文字列と番号の組み合わせであっても、また文字だけであっても勿論良い。
また、インデックスプリントのジョブを複数に分割した場合であっても、ジョブに各画像に付与する識別子を規定するための情報を付与することにより、異なるジョブであっても連続的に識別子を付与することを可能にすることができる。
例えば第１の実施形態のような、複数枚の印刷用紙それぞれに配置する画像数に応じて、２枚目、もしくはそれ以降の用紙に配置される画像に付与される識別子を特定する情報を、２枚目、もしくはそれ以降をプリントするためのジョブに付与するようにする。
これにより、連続的な番号を１枚目の画像から付与していく際に、各用紙に配置する画像数が層画像数により適応的に変化しても、連続的な番号を付与することができる。
【００９５】
つまり、８０枚の画像をインデックスプリントするプリント命令において、１枚の用紙に最大５０画像を配置できるとすると、「５７ＦＥ０００１」のマイナーコードが理解できるない場合は２枚目は５１枚目からプリントされるので、例えば５１番から付与するような命令が、２枚目のインデックスプリントの命令に付与される。一方、「５７ＦＥ０００１」のマイナーコードが理解できるような場合には、２枚目の用紙は４１枚目の画像から配置されるはずであるので、２枚目の用紙に対するプリント命令には、例えば４１番の番号から印刷するような命令を付与する。
【００９６】
［他の実施の形態］
本実施例では、画像供給装置としてのＤＳＣ３０１２がプリンタの機能情報を要求することから始まって、お互いの機能情報を交換したが、画像記録装置としてのＰＤプリンタ１０００が画像供給装置としてのＤＳＣ３０１２の機能情報を要求することから始めて、機能情報をお互いに取得することによっても達成できる。
【００９７】
本発明の目的は前述したように、実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００９８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【００９９】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施例の機能が実現される場合も含む。
【図面の簡単な説明】
【０１００】
【図１】本発明の実施例に係るＰＤプリンタの概観斜視図である。
【図２】本実施例に係るＰＤプリンタの操作パネルの概観図である。
【図３】本実施例に係るＰＤプリンタの制御に係る主要部の構成を示すブロック図である。
【図４】本実施例に係るＤＳＣの構成を示すブロック図である。
【図５】本実施例に係るＰＤプリンタとデジタルカメラとの接続を説明する図である。
【図６】本実施例に係る印刷システムにおけるＰＤプリンタとＤＳＣとの間のコマンドのやり取りを説明する図である。
【図７】本実施例に係るＤＳＣから発行されるプリント開始コマンドの具体例を説明する図である。
【図８】本実施例に係るＰＤプリンタからＤＳＣに送信されるJobStatus（Ａ）とDeviceStatus（Ｂ）を説明する図である。
【図９】本実施例に係るＰＤプリンタのcapabilityのやり取りを説明する図で、（Ａ）はＤＳＣからＰＤプリンタへのcapabilityの要求コマンド例を示し、（Ｂ）はＰＤプリンタからＤＳＣへの応答コマンド例を示す図である。
【図１０】本実施例に係るＰＤプリンタからＤＳＣに対して通知するcapabilityのコードフォーマットを説明する図である。
【図１１】本実施例に係る印刷システムにおける、印刷ジョブの発行から印刷データが生成されるまでの処理を説明するフローチャートである。
【図１２】本発明の実施例に係るインデックス印刷の具体例を説明する図である。
【図１３】本発明の第１実施例に係るＰＤプリンタにおけるインデックス印刷処理を説明するフローチャートである。
【図１４】本実施例に係るＰＤプリンタからＤＳＣに対して通知する他のコードフォーマットを説明する図である。
【図１５】本発明の第３実施例に係るＰＤプリンタにおける印刷ジョブの受信処理を説明するフローチャートである。
【図１６】本発明の第３実施例に係るＤＳＣにおける印刷ジョブの送信処理を説明するフローチャートである。
【図１】
2005066986.tif 000003
【図２】
2005066986.tif 000004
【図３】
2005066986.tif 000005
【図４】
2005066986.tif 000006
【図５】
2005066986.tif 000007
【図６】
2005066986.tif 000008
【図７】
2005066986.tif 000009
【図８】
2005066986.tif 000010
【図９】
2005066986.tif 000011
【図１０】
2005066986.tif 000012
【図１１】
2005066986.tif 000013
【図１２】
2005066986.tif 000014
【図１３】
2005066986.tif 000015
【図１４】
2005066986.tif 000016
【図１５】
2005066986.tif 000017
【図１６】
2005066986.tif 000018