(57)【特許請求の範囲】
【請求項１】
印刷装置に出力すべき印刷データを生成する情報処理装置であって、
入力した印刷対象データを、スプールせずに逐次印刷データへと変換する第１データ変換手段と、
入力した印刷対象データを、スプールしてから印刷データへと変換する第２データ変換手段と、
前記情報処理装置に関する環境情報を取得する環境情報取得手段と、
前記環境情報取得手段により取得した前記環境情報に基づいて、前記第１データ変換手段と、
前記第２データ変換手段の何れに印刷対象データを入力するかを選択する選択手段と、
を備え、
前記第２データ変換手段は、入力した印刷対象データを、その印刷対象データの特性に応じて、前記印刷データとしての印刷コマンド、またはイメージデータのいずれかに変換することを特徴とする情報処理装置。
【請求項２】
印刷装置に出力すべき印刷データを生成する情報処理装置であって、
入力した印刷対象データを、スプールせずに逐次印刷データへと変換する第１データ変換手段と、
入力した印刷対象データを、スプールしてから印刷データへと変換する第２データ変換手段と、
前記情報処理装置に関する環境情報を取得する環境情報取得手段と、
前記環境情報取得手段により取得した前記環境情報に基づいて、前記第１データ変換手段と、前記第２データ変換手段の何れに印刷対象データを入力するかを選択する選択手段と、
を備え、
前記第２データ変換手段は、入力した印刷対象データを、その印刷対象データの特性に応じて、前記印刷データとしてのイメージデータに変換するか、或いは、前記第１データ変換手段に出力するかを選択することを特徴とする情報処理装置。
【請求項３】
印刷対象としての印刷対象データにデータ変換を施して印刷装置に出力する情報処理装置の制御方法であって、
前記情報処理装置に関する環境情報を取得する環境情報取得工程と、
前記環境情報取得工程により取得した前記環境情報に基づいて、入力した印刷対象データをスプールしてからデータ変換すべきか、スプールせずにデータ変換すべきかを判定する判定工程と、
前記判定工程で、スプールせずにデータ変換すべきと判定された印刷対象データを、スプールせずに逐次印刷データへと変換する第１データ変換工程と、
前記判定工程で、スプールしてからデータ変換すべきと判定された印刷対象データを、スプールしてから印刷データへと変換する第２データ変換工程と、
を含み、
前記第２データ変換工程は、入力した印刷対象データを、その印刷対象データの特性に応じて、前記印刷データとしての印刷コマンド、またはイメージデータのいずれかに変換することを特徴とする情報処理装置の制御方法。
【請求項４】
印刷対象としての印刷対象データにデータ変換を施して印刷装置に出力する情報処理装置の制御方法であって、
前記情報処理装置に関する環境情報を取得する環境情報取得工程と、
前記環境情報取得工程により取得した前記環境情報に基づいて、入力した印刷対象データをスプールしてからデータ変換すべきか、スプールせずにデータ変換すべきかを判定する判定工程と、
前記判定工程で、スプールせずにデータ変換すべきと判定された印刷対象データを、スプールせずに逐次印刷データへと変換する第１データ変換工程と、
前記判定工程で、スプールしてからデータ変換すべきと判定された印刷対象データを、スプールしてから印刷データへと変換する第２データ変換工程と、
を含み、
前記第２データ変換工程は、入力した印刷対象データを、その印刷対象データの特性に応じて、前記印刷データとしてのイメージデータに変換するか、或いは、前記第１データ変換工程に移行するかを選択することを特徴とする情報処理装置の制御方法。
【請求項５】
プリンタと接続されたコンピュータに読み込まれることによってプリンタドライバとして機能するプログラムであって、
印刷対象データを入力する入力機能と、
入力した印刷対象データを、スプールせずに逐次印刷データへと変換する第１データ変換機能と、
入力した印刷対象データを、スプールしてから印刷データへと変換する第２データ変換機能と、
読み込まれた前記コンピュータに関する環境情報を取得する環境情報取得機能と、
前記環境情報取得機能により取得した前記環境情報に基づいて、入力した印刷対象データを前記第１データ変換機能によるデータ変換と、前記第２データ変換機能によるデータ変換の何れの対象とするかを選択する選択機能と、
を実現し、
前記第２データ変換機能は、入力した印刷対象データを、その印刷対象データの特性に応じて、前記印刷データとしての印刷コマンド、またはイメージデータのいずれかに変換することを特徴とするプログラム。
【請求項６】
プリンタと接続されたコンピュータに読み込まれることによってプリンタドライバとして機能するプログラムであって、
印刷対象データを入力する入力機能と、
入力した印刷対象データを、スプールせずに逐次印刷データへと変換する第１データ変換機能と、
入力した印刷対象データを、スプールしてから印刷データへと変換する第２データ変換機能と、
読み込まれた前記コンピュータに関する環境情報を取得する環境情報取得機能と、
前記環境情報取得機能により取得した前記環境情報に基づいて、入力した印刷対象データを前記第１データ変換機能によるデータ変換と、前記第２データ変換機能によるデータ変換の何れの対象とするかを選択する選択機能と、
を実現し、
前記第２データ変換機能は、入力した印刷対象データを、その印刷対象データの特性に応じて、前記印刷データとしてのイメージデータに変換するか、或いは、前記第１データ変換機能を実行するかを選択することを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置、その制御方法及びプログラムに関するものである。
【０００２】
【従来の技術】
従来、印刷データを生成する印刷データ生成部（プリンタドライバ）は、印刷アプリケーションから受ける印刷情報を逐次印刷コマンドへと変換していく非スプールコマンド生成機能のみを有するものが殆どであった。
【０００３】
しかしながら近年、印刷装置の高解像度化、カラー化に伴い印刷コマンドが肥大化し、膨大な量の印刷コマンドを生成することが多くなり、印刷装置への転送経路や印刷装置の処理能力によっては印刷処理速度の低下の一因となっていた。
【０００４】
そこで、上記欠点を解消するべく、印刷アプリケーションから受ける印刷情報を一旦ディスクなどの記憶装置内に格納しておき、この格納された印刷情報から印刷装置の処理速度を低下させるような非常に複雑なページは、ホストコンピュータ側でバンドビットマップを生成し印刷装置へ送るイメージ展開機能を用いて印刷装置へ転送し、また印刷装置の処理速度を維持できる程度のページに対しては従来のように印刷コマンドを生成し印刷装置へ転送するようなスプールコマンド生成機能が考案された。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記スプールコマンド生成機能は従来の非スプールコマンド生成機能に比べ、ホストコンピュータ側に負荷のかかる機能であり、低処理能力のホストコンピュータ上でスプールコマンド生成機能を実行すると、かえって非スプールコマンド生成機能を用いた印刷よりも印刷時間がかかってしまう場合が存在した。
【０００６】
これは、スプール処理自体がホストコンピュータに対して大きな負荷となり、ユーザが印刷指示を出してから最初のページの印刷コマンドが印刷装置へ到達するまでに時間を要しているからである。
【０００７】
もちろん、このような低処理能力のホストコンピュータではスプールコマンド生成機能のバンドビットマップイメージ生成処理も時間を要する処理となり、更に印刷パフォーマンスの低下を引き起こすこととなる。
【０００８】
一方、高処理能力のホストコンピュータにおいては、スプール処理のオーバーヘッドは少なく、ビットマップイメージ生成時間は短時間で行えるため、スプールコマンド生成機能を有効に活用できる。
【０００９】
また、スプールコマンド生成機能を用いてビットマップ展開されるページが存在すると、非スプールコマンド生成機能を使用するより印刷装置へ転送するデータサイズが大きくなる傾向にあるため、転送能力の低いＩ／Ｆを用いる場合も印刷時間の遅延の原因となる。例えば、標準的なホストコンピュータのローカルポートであるセントロニクスなどは低速なＩ／Ｆであり、ＬＡＮを経由しＬＰＲプロトコルを用いたダイレクト印刷などは高速なＩ／Ｆである。
【００１０】
低速なＩ／Ｆで印刷装置が接続されていて、印刷装置への転送データサイズの大きくなるスプールコマンド生成機能を使用すると、データの転送に時間を要するため、印刷パフォーマンスが低下し、非スプールコマンド生成機能を使用すると、印刷装置側でのデータ待ち時間が短時間となるため印刷パフォーマンスが向上する。
【００１１】
同様に、高速なＩ／Ｆで印刷装置が接続されている場合、スプールコマンド生成機能を使用すると印刷装置の印刷データ受信能力を充分に活用できるのと同時に、印刷装置内での負荷の少ないコマンドで出力することが可能であるためより高速な印刷が可能となる。
【００１２】
本発明は以上の背景を鑑み考案されたものであり、その目的は、操作者の印刷指示からプリンタによる印刷処理までの全体の印刷処理に関して、より高速な印刷スループットの得られる印刷データを生成する情報処理装置、その制御方法及びプログラムを提供することにある。
【００１３】
【課題を解決するための手段】
上記目的を達成するため、本発明に係る装置は、
印刷装置に出力すべき印刷データを生成する情報処理装置であって、
入力した印刷対象データを、スプールせずに逐次印刷データへと変換する第１データ変換手段と、
入力した印刷対象データを、スプールしてから印刷データへと変換する第２データ変換手段と、
前記情報処理装置に関する環境情報を取得する環境情報取得手段と、
前記環境情報取得手段により取得した前記環境情報に基づいて、前記第１データ変換手段と、
前記第２データ変換手段の何れに印刷対象データを入力するかを選択する選択手段と、
を備え、
前記第２データ変換手段は、入力した印刷対象データを、その印刷対象データの特性に応じて、前記印刷データとしての印刷コマンド、またはイメージデータのいずれかに変換することを特徴とする。
【００１４】
上記目的を達成するため、本発明に係る他の装置は、
印刷装置に出力すべき印刷データを生成する情報処理装置であって、
入力した印刷対象データを、スプールせずに逐次印刷データへと変換する第１データ変換手段と、
入力した印刷対象データを、スプールしてから印刷データへと変換する第２データ変換手段と、
前記情報処理装置に関する環境情報を取得する環境情報取得手段と、
前記環境情報取得手段により取得した前記環境情報に基づいて、前記第１データ変換手段と、前記第２データ変換手段の何れに印刷対象データを入力するかを選択する選択手段と、
を備え、
前記第２データ変換手段は、入力した印刷対象データを、その印刷対象データの特性に応じて、前記印刷データとしてのイメージデータに変換するか、或いは、前記第１データ変換手段に出力するかを選択することを特徴とする。
【００１５】
上記目的を達成するため、本発明に係る方法は、
印刷対象としての印刷対象データにデータ変換を施して印刷装置に出力する情報処理装置の制御方法であって、
前記情報処理装置に関する環境情報を取得する環境情報取得工程と、
前記環境情報取得工程により取得した前記環境情報に基づいて、入力した印刷対象データをスプールしてからデータ変換すべきか、スプールせずにデータ変換すべきかを判定する判定工程と、
前記判定工程で、スプールせずにデータ変換すべきと判定された印刷対象データを、スプールせずに逐次印刷データへと変換する第１データ変換工程と、
前記判定工程で、スプールしてからデータ変換すべきと判定された印刷対象データを、スプールしてから印刷データへと変換する第２データ変換工程と、
を含み、
前記第２データ変換工程は、入力した印刷対象データを、その印刷対象データの特性に応じて、前記印刷データとしての印刷コマンド、またはイメージデータのいずれかに変換することを特徴とする。
【００１６】
上記目的を達成するため、本発明に係る方法は、
印刷対象としての印刷対象データにデータ変換を施して印刷装置に出力する情報処理装置の制御方法であって、
前記情報処理装置に関する環境情報を取得する環境情報取得工程と、
前記環境情報取得工程により取得した前記環境情報に基づいて、入力した印刷対象データをスプールしてからデータ変換すべきか、スプールせずにデータ変換すべきかを判定する判定工程と、
前記判定工程で、スプールせずにデータ変換すべきと判定された印刷対象データを、スプールせずに逐次印刷データへと変換する第１データ変換工程と、
前記判定工程で、スプールしてからデータ変換すべきと判定された印刷対象データを、スプールしてから印刷データへと変換する第２データ変換工程と、
を含み、
前記第２データ変換工程は、入力した印刷対象データを、その印刷対象データの特性に応じて、前記印刷データとしてのイメージデータに変換するか、或いは、前記第１データ変換工程に移行するかを選択することを特徴とする。
【００１７】
上記目的を達成するため、本発明に係るプログラムは、
プリンタと接続されたコンピュータに読み込まれることによってプリンタドライバとして機能するプログラムであって、
印刷対象データを入力する入力機能と、
入力した印刷対象データを、スプールせずに逐次印刷データへと変換する第１データ変換機能と、
入力した印刷対象データを、スプールしてから印刷データへと変換する第２データ変換機能と、
読み込まれた前記コンピュータに関する環境情報を取得する環境情報取得機能と、
前記環境情報取得機能により取得した前記環境情報に基づいて、入力した印刷対象データを前記第１データ変換機能によるデータ変換と、前記第２データ変換機能によるデータ変換の何れの対象とするかを選択する選択機能と、
を実現し、
前記第２データ変換機能は、入力した印刷対象データを、その印刷対象データの特性に応じて、前記印刷データとしての印刷コマンド、またはイメージデータのいずれかに変換することを特徴とする。
【００１８】
上記目的を達成するため、本発明に係るプログラムは、
プリンタと接続されたコンピュータに読み込まれることによってプリンタドライバとして機能するプログラムであって、
印刷対象データを入力する入力機能と、
入力した印刷対象データを、スプールせずに逐次印刷データへと変換する第１データ変換機能と、
入力した印刷対象データを、スプールしてから印刷データへと変換する第２データ変換機能と、
読み込まれた前記コンピュータに関する環境情報を取得する環境情報取得機能と、
前記環境情報取得機能により取得した前記環境情報に基づいて、入力した印刷対象データを前記第１データ変換機能によるデータ変換と、前記第２データ変換機能によるデータ変換の何れの対象とするかを選択する選択機能と、
を実現し、
前記第２データ変換機能は、入力した印刷対象データを、その印刷対象データの特性に応じて、前記印刷データとしてのイメージデータに変換するか、或いは、前記第１データ変換機能を実行するかを選択することを特徴とする。
【００２３】
【発明の実施の形態】
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素の相対配置、表示画面等は、特に特定的な記載がない限りは、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００２４】
（第１の実施の形態）
図１は、本発明に係る情報処理装置に好適な第１実施形態としてのホストコンピュータを示すブロック図である。
【００２５】
図１では、ホストコンピュータ１００は、通信媒体により印刷装置２００と接続され、印刷システムを形成している。この印刷システムでは、少なくともホストコンピュータ１００から印刷装置２００への通信が可能であるとする。
【００２６】
ホストコンピュータ１００は、不図示のＣＰＵ及び磁気ディスクやメモリ等の記憶装置を備えており、不図示のオペレーティングシステム（以下ＯＳ）がその磁気ディスクから読出されてＣＰＵにより実行可能である。
【００２７】
図１において、アプリケーション１１０、処理選択部１２０、環境情報取得部１３０、スプールコマンド生成部１５０、非スプールコマンド生成部１６０における処理は、何れもソフトウェアで実現されるものであり、ホストコンピュータ１００内の記憶装置に格納されたプログラムコードをＣＰＵが実行することにより、それぞれの機能を実現する。
【００２８】
一方、印刷装置２００は、不図示のプリンタエンジンコントローラ及びプリンタエンジンなどから構成されており。プリンタエンジンコントローラ側には不図示のＣＰＵが搭載されプリンタエンジンコントローラのプログラムコードを格納するＲＯＭ及び記憶領域としてのＲＡＭなどが搭載されている。
【００２９】
更にプリンタエンジン側には不図示の記録媒体の搬送機構、半導体レーザーユニット、感光ドラム、現像ユニット、定着ユニット、ドラムクローニングユニット、分離ユニット等で構成され、公知の電子写真プロセスで印刷を行う。
【００３０】
以下に本発明の印刷時の動作について順を追って説明していく。
【００３１】
本ホストコンピュータでは、印刷に先立って、ユーザに対し、使用しているホストコンピュータに関する環境情報を取得する機会を与える。
【００３２】
プリンタドライバのＵＩ画面上などに、図６のような画面３００を表示し、印刷モード選択ボタン３１０を表示する。この印刷モード選択ボタン３１０は、図１の環境情報取得部１４０に対して環境情報取得の指示を送るためのボタンであり、画面上のボタン３１０がクリックされれば、ホストコンピュータ１００は、それを検知して環境情報を取得する。
【００３３】
また、３２０のように現在設定されている印刷モード、非スプールコマンド生成、スプールコマンド生成など、を排他的に表示できるものとする（図６では●印が現在選択されている印刷モードを示す）。
【００３４】
もちろん、図６の３２０の「非スプールコマンド」とは非スプールコマンド生成手段にて印刷が行われる印刷モードを示し、「スプールコマンド」はスプールコマンド生成手段にて印刷が行われる印刷モードを示す。
【００３５】
印刷モード選択ボタン３１０が押されると、同時にホストコンピュータ１００の環境情報を取得する。ここで環境情報とは、ホストコンピュータのパフォーマンスに影響を及ぼすハードウェアの能力や容量を指すものとする。
【００３６】
具体的には、ＣＰＵ能力、ＲＡＭ搭載量、ＲＡＭスピード、使用可能なハードディスク容量、ハードディスクスピード、及び印刷装置が接続されているＩ／Ｆのスピードなどの項目が挙げられる。
【００３７】
次に、これらの指標が本印刷システムにおいて印刷パフォーマンスに係わる理由を述べる。
【００３８】
ＣＰＵ能力：
ホストコンピュータ１００内のアプリケーション１１０、処理選択部１２０、環境情報取得部１３０、スプールコマンド生成部１５０、非スプールコマンド生成部１６０などのプログラムコードを実行するにあたり、ＣＰＵ能力が高いものほど高速に処理することが可能である。特に、スプールコマンド生成部１５０で行なう処理には、描画コマンドをビットマップイメージに変換する処理が含まれており、スプールコマンド生成部１５０での処理時間は、ＣＰＵ能力が高ければ高いほど短くなる。逆にＣＰＵ能力が低いと、スプールコマンド生成部１５０での処理に時間を要するため、非スプールコマンド生成部１６０を用いた方が高速である。
【００３９】
ＲＡＭ搭載量：
ＲＡＭ搭載量に関してもホストコンピュータ１００内の各プログラムコードを実行するにあたりその処理時間に係わるパラメータであるといえる。
【００４０】
ＯＳを含めたホストコンピュータ１００内のシステム全体でＲＡＭ搭載量を超える記憶領域を必要とする場合、ＯＳは使用頻度の低いＲＡＭ上の記憶領域をハードハードディスクなどに書き出しておき（ページアウト）、このスワップアウトされた領域内の情報が必要となった時に再度ＲＡＭ上にロード（ページイン）することで見かけ上搭載ＲＡＭ容量以上の記憶領域をハンドリングする。しかしながら、ＲＡＭに対するリード／ライトのスピードに比べ、ハードディスクに対する読み取り／書き込みは低速なため、頻繁にページアウト、ページインを繰り返すとシステム全体のパフォーマンス低下の原因となる。先のＣＰＵ能力の項目でも述べたように、スプールコマンド生成部１５０では描画コマンドをビットマップイメージに変換する処理を含んでおり、非スプールコマンド生成部１６０に比べより大量の記憶領域へのアクセスを必要とする。よって、ＲＡＭ搭載量の多い環境ではスプールコマンド生成部１５０の方が高速に処理を行うことが可能であるが、ＲＡＭ搭載量の少ない環境では非スプールコマンド生成部を選択した方が早く処理することが可能な場合もある。
【００４１】
ＲＡＭスピード：
当然ながら、ＲＡＭ上の情報へアクセスするが速ければ速いほど処理を高速に行うことが可能になる。また先に述べたページアウト、ページインに係わる時間もＲＡＭスピードの影響を受けることになる。本システムではスプールコマンド生成部１５０での処理においては、非スプールコマンド生成部１６０での処理よりは大量のＲＡＭアクセスが必要なため、ＲＡＭスピードが速い環境においてはスプールコマンド生成部１５０を選択した方がより高速な印刷を行うことが可能である。
【００４２】
使用可能なハードディスク容量：
スプールコマンド生成部１５０は描画情報を一旦ハードディスクに格納するため、非スプールコマンド生成部１６０に比べ、未知数ではあるがある程度のハードディスクの空き容量が必要である。また、先にも述べたが、ＲＡＭ搭載量を越える記憶領域をプログラムコードが必要とする場合、使用頻度の低い領域をページアウトする領域としてもハードディスクは使用されるため、スプールコマンド生成部１５０を選択する場合、ある程度の使用可能なハードディスク容量が必要となる。
【００４３】
ハードディスクスピード：
スプールコマンド生成部１５０は描画情報を一旦ハードディスクに格納するため、非スプールコマンド生成部１６０に比べハードディスクを多用する処理である。ハードディスクへのアクセススピードが速いほどスプールコマンド生成部１５０は高速な処理が可能となる。また、ページアウト、ページインに係わる時間も高速なハードディスクの方がスムーズに行える。つまり、高速なハードディスクを使用できる環境ではスプールコマンド生成部１５０を選択することでよりパフォーマンスを発揮できるが、低速なハードディスク環境でスプールコマンド生成部１５０を用いると印刷時間の低下の原因になる。
【００４４】
印刷装置が接続されているＩ／Ｆのスピード：
スプールコマンド生成部１５０を用いる場合、ページ単位で、そのページの複雑度によって、イメージ展開するページと文字や図形の描画コマンドで形成されるページとが存在することになる。一般的にイメージ展開したページは文字や図形のコマンドで形成されるページに比べ、印刷装置２００への転送データ量が大きくなる傾向にあり、カラー印刷、高階調出力などの場合、更にその差は大きくなる。つまり高速なインタフェースでホストコンピュータ１００と印刷装置２００とが接続されている場合、積極的にスプールコマンド生成部１５０を選択することで印刷パフォーマンスの向上が見込まれ、接続されているインタフェースが低速であると判断される場合、非スプールコマンド生成部１６０を選択する方が好ましいパフォーマンスとなる場合がある。
【００４５】
なお、双方向の通信が可能なインタフェースにおいては、実際にデータを印刷装置２００に転送し、そのリバースを取得することでその通信速度を実測することは可能であるが、接続されているインタフェースのタイプを取得するだけもある程度の能力の把握は可能である。例えば、プリンタとの接続インタフェースが、セントロ（ニブルモード）であるか、セントロ（ＥＣＰモード）であるか、ＵＳＢであるか、ＬＰＲであるか、ＩＥＥＥ１３９４であるかなどを判定し、インターフェースタイプを取得すれば、大まかな転送能力は把握できたことになる。
【００４６】
図５は、これら６つの環境情報の値に対してスプールコマンド生成部１５０と非スプールコマンド生成部１６０とでどちらにアドバンテージがあるかをまとめた一覧表である。
【００４７】
これらの環境変数の各値を総合的に評価し、動作モードを非スプールコマンド生成モードとするのかスプールコマンド生成モードとするのかを決定することになる。
【００４８】
動作モードの決定方法としては、例えば、上に挙げた全ての環境変数値がある一定の能力を超えている場合にのみ非スプールコマンド生成モードとし、それ以外の場合はスプールコマンド生成モードを選択する方法や、各々の環境変数値をポイント化し、対象とする環境変数全てのポイントを合計した値がある一定基準を超えた場合は非スプールコマンド生成モードとし、それ以外の場合はスプールコマンド生成モードを選択するなど様々手法が考えられる。
【００４９】
本発明を適応するシステムに適した判定基準を設けるようにすることで、本発明の効果は尚一層向上すると考えられる。
【００５０】
図６の印刷モード選択ボタン３１０が押された場合、ホストコンピュータ１００の環境情報を取得し、総合的に判断し、非スプールコマンド生成モード、スプールコマンド生成モードのいずれか、より好ましい印刷パフォーマンスを得られると予測される印刷モードを選択し、選択した印刷モードに選択印（●）を付け、ユーザに印刷モードが変更されたことを伝える。
【００５１】
これ以降、処理選択部１２０はここで決定された印刷モードに従った処理系（スプールコマンド生成部または非スプールコマンド生成部）を選択する。
【００５２】
すなわち、環境情報に基づいて、スプール後に印刷データに変換するべきか、或いはスプールせずに印刷データに変換するべきかを判定し、その判定結果を不図示のメモリに登録しておくことにより、処理選択部１２０は、その登録内容を参照して、印刷対象データをスプールコマンド生成部に入力するか、非スプールコマンド生成部に入力するか判断する。
【００５３】
なお、印刷モードの選択は、少なくとも、ホストコンピュータ１００の仕様、或いは、印刷装置２００との通信インタフェースに変更がある度に、図６のダイアログを表示して行なうことが望ましい。
【００５４】
以下に、処理選択部１２０で選択されるスプールコマンド生成部１５０及び非スプールコマンド生成部１６０の、それぞれの印刷時の動作について簡単に述べる。
【００５５】
[スプールコマンド生成部]
図２は、スプールコマンド生成部１５０の動作を説明するためのブロック図である。
【００５６】
処理選択部１２０によってスプールコマンド生成部１５０が選択される場合、アプリケーション１１０からＯＳの描画手段であるグラフィックエンジン（ＧＤＩと呼ばれる）に渡される描画情報（ＧＤＩ関数：Graphic Device Interface）は、グラフィックエンジンにより出力先のモジュールが解釈可能な描画情報（ＤＤＩ関数：Device Driver Interface）に変換され、変換された描画情報（ＤＤＩ関数）は全て処理選択部１２０から、スプールコマンド生成部１５０内のスプール処理部１５１に渡され、描画情報１５２として、一旦ディスクなどの記憶装置内に格納される。１ページ分の描画情報１５２を格納し終わると、スプール処理部１５１はデスプール処理部１５３を起動し、デスプール処理部１５３に対してデスプールの開始を通告する。後続するページがあれば引き続きそれらのページをスプールし、ページが終了する度にページの開始をデスプール処理部１５３へ通告する。
【００５７】
また、スプール処理部１５１はバンド単位で各描画命令の外接矩形や描画に関する統計情報も同様にスプールしておくようにする。このスプールされる情報をバンドスプールデータと呼ぶことにする。
【００５８】
デスプール処理部１５３はデスプールの開始指示を受けると、先にスプールされた描画情報１５２やバンドスプールデータを参照し、ページまたはバンドごとに、文字やテキストなどのＰＤＬコマンドに変換する場合と、イメージ展開してイメージ描画コマンドのみに変換する場合とで、どちらがホストコンピュータ１００での処理時間、データ転送時間及び印刷装置２００での処理時間のトータルが少なくなるかを判定する。
【００５９】
つまり、ＰＤＬコマンドのみで構成される方が高速と判断される場合、ＰＤＬコマンド生成部１５４を選択し、イメージ描画コマンドのみで構成されるほうが高速と判断される場合はイメージ展開部１５５を選択する。
【００６０】
また、バンド毎にＰＤＬコマンド生成部１５３とイメージ展開処理部１５５を切り替えて使用する場合、バンドリストを生成し、描画情報１５２内の描画要素はそれぞれのバンドに登録される。勿論、複数のバンドに跨る描画命令は各バンドに対して登録する必要がある。
【００６１】
デスプール処理部１５３によって、ＰＤＬコマンド生成部１５３が選択された場合、スプールされた描画情報１５２はＰＤＬコマンド生成部１５３で、逐次、出力対象である印刷装置２００が処理可能なプリンタコマンドへと置き換えられて印刷データが生成され、ＯＳ（オペレーションシステム）のプリントスプーラを介して印刷装置２００へと出力される。
【００６２】
なお、バンド単位でＰＤＬコマンド生成部１５３とイメージ展開処理部１５５を切り替えて使用するのであれば、各バンドに対してクリップをかけたり、または描画自体を該当するバンド内に収めるような工夫を行ったりする必要がある。
【００６３】
一方、デスプール処理部１５３によって、イメージ展開部１５４が選択される場合、スプールされた描画情報１５２及びバンドスプールデータはイメージ展開部１５５によって、必要であればバンディング処理が施され、イメージ展開される。但し、バンドごとの切り替えを行う場合、すでにデスプール処理部１５２においてバンディング処理が施されるため、この必要はない。
【００６４】
更に、必要であればイメージ展開された画像に色変換処理を施した後に、ユーザが指定した出力階調まで落とすＮ値化処理（Ｎ＝１、２..８）を行った後に、適切なイメージ描画コマンドの形式で印刷データが生成され、ＯＳのプリントスプーラを介して印刷装置２００へ転送される。
【００６５】
１ページに対応するすべてのバンドに対する処理が終了すると１ページ分の処理が完了したことになる。
【００６６】
後続するページが存在する場合も同様に、デスプール処理部１５３にて使用されるコマンド形態が選択し、選択された手段にてコマンド生成を行う。
【００６７】
以上が処理選択部１２０によってスプールコマンド生成部１５０が選択される場合の処理であるが、上記ＰＤＬコマンド生成部１５３での変換処理は後述する非スプールコマンド生成部１６０での処理とほぼ同等の処理であることから、スプールコマンド生成部１５０を以下のように構成することでこれら二つの変換処理を一つにまとめることが可能である。図３は、スプールコマンド生成部１５０の他の構成例を説明するためのブロック図である。
【００６８】
図３に示したようにデスプール処理部１５３はＰＤＬコマンド生成部１５４を直接呼び出すのではなく、ＯＳの提供する描画インタフェースを呼び出し、再度、処理選択部１２０を呼び出す。処理選択部１２０ではこれがデスプール処理部１５３からの呼び出しであることを認識し、処理系の選択などは行わずに、必ず非スプールコマンド生成部１６０を用いて印刷コマンドを生成する。つまりデスプール処理部は、スプールした印刷対象データの複雑さに応じて、非スプールコマンド生成部に印刷対象データを出力する。
【００６９】
このように、同様のコマンド変換処理を分散させることなく、一箇所（非スプールコマンド生成部１６０）に集約することで、開発効率を集約できる。
【００７０】
次に処理選択部１２０によって非スプールコマンド生成部１６０が選択される場合の処理について簡単に述べる。
【００７１】
[非スプールコマンド生成部]
図４は、非スプールコマンド生成部の処理を示すブロック図である。
【００７２】
処理選択部１２０によって非スプールコマンド生成部１６０が選択される場合、アプリケーション１１０からＯＳの描画手段であるグラフィックエンジンを介して渡される描画情報（ＤＤＩ関数）は全て処理選択部１２０から非スプールコマンド生成部１６０へと渡される。
【００７３】
非スプールコマンド生成部１６０では逐次渡されてくる描画情報を、出力対象の印刷装置２００の処理可能なプリンタコマンドへと変換していき、これらを印刷装置２００へ転送することで印刷を行う。
【００７４】
つまり、こちらの処理経路は一般的なプリンタドライバによるコマンド生成処理といえる。
【００７５】
以上に述べたように、本実施形態に係るホストコンピュータにおいては、そのホストコンピュータの処理能力及び印刷装置に接続されているインタフェースなどの環境情報を取得しておき、これらの情報に基づいて、スプールコマンド生成部及び非スプールコマンド生成部のうち最適な手段を選択する。すなわち、低処理能力のホストコンピュータ及び低速度の接続インタフェースにおいては、非スプールコマンド生成機能を選択して、スプールコマンド生成機能を用いた場合に生じるスプール処理のオーバーヘッド、イメージ展開処理の遅延及びデータ転送時間の遅延などを回避する。また、高処理能力のホストコンピュータ及び高速な接続インタフェースにおいて、積極的にスプールコマンド生成機能を活用して、更に高速な印刷環境をユーザに提供する。
【００７６】
また、スプールコマンド生成機能が選択される場合であっても、可能な限り、ページまたはバンド単位でＰＤＬコマンド生成を行いることで、イメージ展開機能にかかわるホストコンピュータ側の負荷を軽減することが可能となる。
【００７７】
更に、ユーザに環境情報取得動作を行わせ、その結果を表示することで、印刷に使用するホストコンピュータの処理能力に適合した動作モードをユーザに提示することが可能となる。
【００７８】
更に、ＵＩ上に選択された印刷モードを表示することにより、ホストコンピュータの処理能力に依存した現在の動作モードをユーザに提示することが可能となる。
【００７９】
なお、上記実施形態では、ユーザインタフェースからユーザが指示することにより、スプール処理を行なうべきか行なわないべきかを判定しているが、本発明はこれに限定されるものではなく、所定のタイミングで自動的にその判定を行なっても良い。このタイミングとしては、例えば、印刷開始時などが挙げられる。
【００８０】
更に、上記実施形態では、ホストコンピュータに関するハードウェア情報のみに基づいて、スプール処理を行なうべきか行なわないべきかを判定しているが、本発明はこれに限定されるものではなく、印刷対象となるデータの内容（容量、色、複雑さなど）をも考慮して判定しても良い。
【００８１】
また、上記実施形態では、環境情報として、ハードウェアの能力をホストコンピュータから取得したが、本発明に係る環境情報は、これに限定されるものではなく、ＯＳのバージョンやプリンタへの通信プロトコルなど、ソフトウェアの能力を含む情報であっても良い。
【００８２】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００８３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８５】
【発明の効果】
本発明によれば、より高速な印刷処理を行なうことのできる情報処理装置、その制御方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態としてのホストコンピュータを適用した印刷システムを示すブロック図である。
【図２】本発明の一実施形態としてのホストコンピュータのスプールコマンド生成部を示すブロック図である。
【図３】本発明の一実施形態としてのホストコンピュータのスプールコマンド生成部の他の例を示すブロック図である。
【図４】本発明の一実施形態としてのホストコンピュータの非スプールコマンド生成部の構成を示すブロック図である。
【図５】本発明の一実施形態としてのホストコンピュータの各環境情報と各コマンド生成部の効果との関係を示す図である。
【図６】本発明の一実施形態としてのホストコンピュータの環境情報取得ダイアログを示す図である。
【符号の説明】
１００  ホストコンピュータ
１１０  アプリケーション
１２０  処理選択部
１３０  ホスト環境情報
１４０  環境情報取得部
１５０  スプールコマンド生成部
１５１  スプール処理部
１５２  描画情報
１５３  デスプール処理部
１５４  ＰＤＬコマンド生成部
１５５  イメージ展開部
１６０  非スプールコマンド生成部
２００  印刷装置
３００  モード判定結果をユーザに表示するダイアログの一例
３１０  環境情報取得ボタン
３２０  選択された動作モードを表示する領域
【図１】
0003907484.tif 000002
【図２】
0003907484.tif 000003
【図３】
0003907484.tif 000004
【図４】
0003907484.tif 000005
【図５】
0003907484.tif 000006
【図６】
0003907484.tif 000007