(57)【特許請求の範囲】
【請求項１】
描画コマンドに基づいて印刷を行うプリンタと、前記描画コマンドを発行するプリンタドライバを含むホストコンピュータとからなるカラー印刷システムであって、
前記描画コマンドを解析してオブジェクトの描画範囲から印刷可能範囲内を帯状に分割した領域を示す複数のバンド毎にコマンドを振り分ける手段と、前記複数のバンド毎の独立性を持たせかつ前記コマンドをまとめる手段と、前記複数のバンド毎のコマンドに基づいて前記オブジェクトの描画処理を行うドライバ描画手段とを前記プリンタドライバに有し、
前記複数のバンド毎のコマンドに基づいて２値あるいは多値で前記オブジェクトの描画処理を高速に行う高速描画デバイスと、前記高速描画デバイスと同様な機能を組込型ソフトウェアで実現したファームウェア描画手段とを前記プリンタに有し、
前記ドライバ描画手段と前記高速描画デバイスと前記ファームウェア描画手段とのうちのいずれかの組合せで前記複数のバンド毎に前記オブジェクトの並列描画処理を自在とし、
前記描画コマンドを解析した結果が１ページすべてモノクロデータの場合にバンド分割された描画コマンドを前記プリンタ側に送らずかつＤＤＩ（デバイスドライバインタフェース）インタフェース部で変換された中間言語に前記モノクロデータであることを示すコマンドを付加して前記プリンタ側に転送するプリンタ言語変換処理手段を前記プリンタドライバに含み、
前記プリンタドライバ内で前記描画コマンドを解析した結果が１ページすべてモノクロデータの場合に前記複数のバンド毎にコマンドを振り分ける手段を前記プリンタに含み、
前記プリンタ内の前記高速描画デバイスと前記ファームウェア描画手段とによって前記複数のバンド毎に前記並列描画処理を行うことを特徴とするカラー印刷システム。
【請求項２】
前記プリンタドライバは、前記印刷コマンドを解析して前記複数のバンド毎の色情報と重ね合わせの存在の有無と描画領域ピクセル数と描画コマンドのデータ量とから前記複数のバンド毎の処理負荷量を計算することを特徴とする請求項１記載のカラー印刷システム。
【請求項３】
前記複数のバンド毎に求めた前記処理負荷量から前記ドライバ描画手段と前記高速描画デバイスと前記ファームウェア描画手段との処理能力を考慮して前記並列描画処理のスケジューリングを行うことを特徴とする請求項２記載のカラー印刷システム。
【請求項４】
描画コマンドに基づいて印刷を行うプリンタと、前記描画コマンドを発行するプリンタドライバを含むホストコンピュータとからなり、
前記描画コマンドに基づいて前記オブジェクトの描画処理を行うドライバ描画手段を前記プリンタドライバに含み、
前記描画コマンドに基づいて２値あるいは多値で前記オブジェクトの描画処理を高速に行う高速描画デバイスと、前記高速描画デバイスと同様な機能を組込型ソフトウェアで実現したファームウェア描画手段とを前記プリンタに含むカラー印刷システムの描画コマンド生成方法であって、
前記描画コマンドを解析してオブジェクトの描画範囲から印刷可能範囲内を帯状に分割した領域を示す複数のバンド毎にコマンドを振り分けるステップと、前記複数のバンド毎の独立性を持たせかつ前記コマンドをまとめるステップとを前記プリンタドライバに有し、
前記ドライバ描画手段と前記高速描画デバイスと前記ファームウェア描画手段とのうちのいずれかの組合せで前記複数のバンド毎に前記オブジェクトの並列描画処理を自在とし、
前記描画コマンドを解析した結果が１ページすべてモノクロデータの場合にバンド分割された描画コマンドを前記プリンタ側に送らずかつＤＤＩ（デバイスドライバインタフェース）インタフェース部で変換された中間言語に前記モノクロデータであることを示すコマンドを付加して前記プリンタ側に転送するステップを前記プリンタドライバに含み、
前記プリンタドライバ内で前記描画コマンドを解析した結果が１ページすべてモノクロデータの場合に前記複数のバンド毎にコマンドを振り分けるステップを前記プリンタに含み、
前記プリンタ内の前記高速描画デバイスと前記ファームウェア描画手段とによって前記複数のバンド毎に前記並列描画処理を行うことを特徴とする描画コマンド生成方法。
【請求項５】
前記プリンタドライバは、前記印刷コマンドを解析して前記複数のバンド毎の色情報と重ね合わせの存在の有無と描画領域ピクセル数と描画コマンドのデータ量とから前記複数のバンド毎の処理負荷量を計算するステップを含むことを特徴とする請求項４記載の描画コマンド生成方法。
【請求項６】
前記複数のバンド毎に求めた前記処理負荷量から前記ドライバ描画手段と前記高速描画デバイスと前記ファームウェア描画手段との処理能力を考慮して前記並列描画処理のスケジューリングを行うステップを含むことを特徴とする請求項５記載の描画コマンド生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はカラー印刷システム及びそれに用いる描画コマンド生成方法に関し、特にカラー印刷可能なプリンタシステムに関する。
【０００２】
【従来の技術】
従来、カラー印刷可能な印刷装置においては、大きく分けると、インクジェットプリンタ等のプリンタ内に描画部を持たないプリンタシステムと、レーザプリンタ等のプリンタ内に描画部を持つプリンタシステムとの二種類がある。
【０００３】
プリンタ内に描画部を持たないプリンタシステムでは、ホストコンピュータにインストールされているプリンタドライバにおいて、予め文字、図形、ビットマップ等の印刷データをビット展開し、論理演算を行い、印刷装置がそのまま印刷できる状態に変換し、印刷装置へカラー画像として出力している。
【０００４】
【発明が解決しようとする課題】
上述した従来のプリンタシステムでは、プリンタ内に描画部を持たないプリンタシステムの場合、プリンタドライバがインストールされているホストコンピュータ側でシアン（Ｃ）、マゼンダ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）４色分のビットイメージを作成する必要があるため、処理負担が大きく印刷開始までに時間がかかったり、ＣＭＹＫ４色分のイメージデータ量を転送しなければならず、印刷に時間がかかるという問題がある。
【０００５】
また、レーザプリンタ等のプリンタ内に描画部を持つプリンタでは、プリンタが解釈できるプリンタ言語に変換して転送するため、プリンタ内に描画部を持たないプリンタに送るデータ量に比べ、データ量は少ないが、プリンタの処理負担が大きくなるという問題がある。
【０００６】
そのため、プリンタの処理負担を減らす目的で高速な描画デバイスを搭載するカラーレーザプリンタも少なくない。しかしながら、ホストコンピュータ側のプリンタドライバで描画処理を行おうが、プリンタ側で描画処理を行おうが、処理時間のほとんどは、描画処理時間にかかっている。
【０００７】
そこで、本発明の目的は上記の問題点を解消し、プリンタ内で描画部をもつカラープリンタにおいて高速で最適な描画処理を行うことができるカラー印刷システム及びそれに用いる描画コマンド生成方法を提供することにある。
【０００８】
本発明の他の目的は、プリンタドライバとプリンタとの描画処理分担を最適化することができるカラー印刷システム及びそれに用いる描画コマンド生成方法を提供することにある。
【０００９】
【課題を解決するための手段】
本発明によるカラー印刷システムは、描画コマンドに基づいて印刷を行うプリンタと、前記描画コマンドを発行するプリンタドライバを含むホストコンピュータとからなるカラー印刷システムであって、
前記描画コマンドを解析してオブジェクトの描画範囲から印刷可能範囲内を帯状に分割した領域を示す複数のバンド毎にコマンドを振り分ける手段と、前記複数のバンド毎の独立性を持たせかつ前記コマンドをまとめる手段と、前記複数のバンド毎のコマンドに基づいて前記オブジェクトの描画処理を行うドライバ描画手段とを前記プリンタドライバに備え、
前記複数のバンド毎のコマンドに基づいて２値あるいは多値で前記オブジェクトの描画処理を高速に行う高速描画デバイスと、前記高速描画デバイスと同様な機能を組込型ソフトウェアで実現したファームウェア描画手段とを前記プリンタに備え、
前記ドライバ描画手段と前記高速描画デバイスと前記ファームウェア描画手段とのうちのいずれかの組合せで前記複数のバンド毎に前記オブジェクトの並列描画処理を自在とし、
前記描画コマンドを解析した結果が１ページすべてモノクロデータの場合にバンド分割された描画コマンドを前記プリンタ側に送らずかつＤＤＩ（デバイスドライバインタフェース）インタフェース部で変換された中間言語に前記モノクロデータであることを示すコマンドを付加して前記プリンタ側に転送するプリンタ言語変換処理手段を前記プリンタドライバに具備し、
前記プリンタドライバ内で前記描画コマンドを解析した結果が１ページすべてモノクロデータの場合に前記複数のバンド毎にコマンドを振り分ける手段を前記プリンタに具備し、
前記プリンタ内の前記高速描画デバイスと前記ファームウェア描画手段とによって前記複数のバンド毎に前記並列描画処理を行っている。
【００１１】
本発明による描画コマンド生成方法は、描画コマンドに基づいて印刷を行うプリンタと、前記描画コマンドを発行するプリンタドライバを含むホストコンピュータとからなり、
前記描画コマンドに基づいて前記オブジェクトの描画処理を行うドライバ描画手段を前記プリンタドライバに含み、
前記描画コマンドに基づいて２値あるいは多値で前記オブジェクトの描画処理を高速に行う高速描画デバイスと、前記高速描画デバイスと同様な機能を組込型ソフトウェアで実現したファームウェア描画手段とを前記プリンタに含むカラー印刷システムの描画コマンド生成方法であって、
前記描画コマンドを解析してオブジェクトの描画範囲から印刷可能範囲内を帯状に分割した領域を示す複数のバンド毎にコマンドを振り分けるステップと、前記複数のバンド毎の独立性を持たせかつ前記コマンドをまとめるステップとを前記プリンタドライバに備え、
前記ドライバ描画手段と前記高速描画デバイスと前記ファームウェア描画手段とのうちのいずれかの組合せで前記複数のバンド毎に前記オブジェクトの並列描画処理を自在とし、
前記描画コマンドを解析した結果が１ページすべてモノクロデータの場合にバンド分割された描画コマンドを前記プリンタ側に送らずかつＤＤＩ（デバイスドライバインタフェース）インタフェース部で変換された中間言語に前記モノクロデータであることを示すコマンドを付加して前記プリンタ側に転送するステップを前記プリンタドライバに具備し、
前記プリンタドライバ内で前記描画コマンドを解析した結果が１ページすべてモノクロデータの場合に前記複数のバンド毎にコマンドを振り分けるステップを前記プリンタに具備し、
前記プリンタ内の前記高速描画デバイスと前記ファームウェア描画手段とによって前記複数のバンド毎に前記並列描画処理を行っている。
【００１３】
すなわち、本発明のカラー印刷システムは、ホストコンピュータに提供されている描画部を有するプリンタドライバと、プリンタドライバから印刷コマンドを受け取って印刷を行うプリンタとを備えており、プリンタに、高速な描画可能な高速描画デバイスと高速描画デバイスと同等な描画機能を組込型ソフトウェアで実現したＦ／Ｗ（ファームウェア）描画部とを有している。
【００１４】
これによって、本発明のカラー印刷システムでは、ホストコンピュータ内にあるプリンタドライバの描画部（高速描画デバイスと同等な描画機能）と、プリンタに組込まれている高速描画デバイスと、組込みソフトウェアで実現したＦ／Ｗ描画部とを組合せて印刷を行うことが可能となる。
【００１５】
より具体的に、本発明のプリンタでは、プリンタドライバからバンド毎に分割された描画コマンドに基づいてＣＭＹＫ各色２値あるいは多値で高速に描画を行う高速描画デバイスと、高速描画デバイスと同様な機能を組込型ソフトウェアで実現したＦ／Ｗ描画部とをバンド毎に処理を行うことが可能なカラー印刷システムにおいて、プリンタドライバ内のコマンド解析部で中間言語（描画データ）を解析し、バンド毎に描画部が処理できる描画コマンドの作成を行う。
【００１６】
プリンタドライバは次に各バンド毎に分割された中間言語の解析を行い、中間言語のデータ量やバンド毎の描画面積、バンドの色情報、描画の重ね合わせが存在するかどうか等の情報を元にバンド毎に描画負荷パラメータを求める。
【００１７】
プリンタドライバは求められた描画負荷パラメータを元に、描画処理のスケジューリング行い、バンド毎に分割された中間言語に描画場所のパラメータを付加する。
【００１８】
プリンタドライバは各バンド毎に設定された描画場所のパラメータを元に、各バンド毎にホストコンピュータ内に存在する描画部を使用した描画を行うか、あるいはプリンタ内に存在する高速描画デバイスを使用して描画を行うか、またはプリンタ内に存在するＦ／Ｗ描画部を使用して行うかを割り振り、分散処理を行うことによって、従来に比べて高速な印刷を行うことが可能となる。
【００１９】
また、１ページのデータがすべてモノクロのデータの場合には、プリンタドライバ内で各バンド毎に分割された描画コマンドを作成し、プリンタ側に転送した際にデータ量が多くなり、プリンタへの転送時間がかかりトータルの印刷時間が長くなることが多い。
【００２０】
そこで、プリンタドライバ内に存在するコマンド解析部と同等な機能をプリンタ側のコマンド解析部に設け、プリンタ側でも各バンド毎に分割処理を行い、プリンタ内の描画が処理可能な中間言語を作成する機能を設けることによって、ホストコンピュータとプリンタとの最適な処理負荷分散を実現することが可能となる。
【００２１】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例によるカラー印刷システムの構成を示すブロック図である。図１において、本発明の一実施例によるカラー印刷システムはＣＰＵ（制御部）１と、キーボード２と、表示装置３と、ＲＯＭ（リードオンリメモリ）４と、ＲＡＭ（ランダムアクセスメモリ）５と、ハードディスク６と、プリンタインタフェース７と、プリンタ８とから構成されている。
【００２２】
ＣＰＵ１は本実施例のホストコンピュータ全体の制御に関わるものである。キーボード２は各種データを入力するものであり、表示装置３はＲＡＭ５に蓄えられている画像データを表示するものである。
【００２３】
ＲＯＭ４は装置全体を制御する制御手段及びその他の必要な情報を予め記憶する。ＲＡＭ５はワークエリアとして用意されている。ハードディスク６は各種データの読み書きやプログラムを格納する補助記憶装置である。プリンタインタフェース７はプリンタ８への入出力を制御するものである。
【００２４】
ここで、ＣＰＵ１とキーボード２と表示装置３とＲＯＭ４とＲＡＭ５とハードディスク６とプリンタインタフェース７とはデータバスを介して相互に接続されており、データバスは各種データを転送するために用いられる。
【００２５】
尚、ハードディスク６にはアプリケーションプログラムやオペレーティングシステムやプリンタドライバ等が格納されており、これらのプログラムはＲＡＭ５にロードされてＣＰＵ１によって実行され、各部が制御される。
【００２６】
図２は本発明の一実施例によるホストコンピュータの構成を示すブロック図であり、図３は本発明の一実施例によるプリンタの構成を示すブロック図である。図２において、ホストコンピュータ１０はアプリケーションプログラム１１と、オペレーティングシステム１２とを備えている。
【００２７】
オペレーティングシステム１２はＧＤＩ（グラフィックデバイスインタフェース）モジュール１３と、プリンタドライバ１４と、スプーラ２１とを備えており、プリンタドライバ１４はＤＤＩ（デバイスドライバインタフェース）インタフェース部１５と、ユーザインタフェース部１６と、コマンド解析部１７と、ドライバ描画部１８と、色変換処理部１９と、プリンタ言語変換処理部２０とからなっている。
【００２８】
図３において、プリンタ３０はプリンタインタフェース３１と、受信バッファ３２と、コマンド解析部３３と、プリンタ制御部３４と、印刷制御部３５と、Ｆ／Ｗ描画部３６と、高速描画デバイス３７と、ページメモリ３８と、イメージ圧縮デバイス３９と、出力制御部４０と、プリンタエンジン部４１とから構成されている。
【００２９】
これら図２及び図３を参照してホストコンピュータ１０とプリンタ３０とについて説明する。オペレーティングシステム１２はＧＤＩモジュール１３をアプリケーションプログラム１１に対して提供するものである。
【００３０】
ＧＤＩモジュール１３はデバイスドライバ開発のために予め規定されたプリンタやディスプレイ等の出力デバイスには依存しないグラフィック用インタフェースをアプリケーションプログラム１１に対して提供するものである。
【００３１】
また、ＧＤＩモジュール１３はデバイスドライバ開発のために予め規定されたＤＤＩをデバイスドライバに対して提供する。デバイスドライバはこのＤＤＩに合わせて、対応するデバイス（本実施例の場合はプリンタドライバ１４）を設計する。ＧＤＩモジュール１３はデバイス非依存形式のＧＤＩのファンクションコールをデバイス依存形式のＤＤＩファンクションコールに変換する役割を持つ。
【００３２】
プリンタドライバ１４はアプリケーションプログラム１１からＧＤＩモジュール１３を通じて与えられる描画命令を、プリンタ３０が認識できる出力データ形式に変換するものである。
【００３３】
ユーザインタフェース部１６はユーザからの詳細な印刷設定の情報を取得する機能である。ＤＤＩインタフェース部１５は描画ファンクションを描画するために解析可能な中間言語に変換する。
【００３４】
コマンド解析部１７は描画コマンドによって描画される領域の上限座標と下限座標とから、各印刷可能範囲内を帯状に分割した領域のどの領域に描画されるのかを振り分ける。以後、各印刷可能範囲内を帯状に分割した領域をバンドと呼ぶ。また、コマンド解析部１７はＢｒｕｓｈ（文字や矩形の色）設定コマンドの色に関するデータの検索を行い、バンド毎にカラーフラグにセットする。
【００３５】
さらに、コマンド解析部１７はバンド毎に描画コマンドで同一バンド内に重なる部分が存在するかどうかの解析を行う。コマンド解析部１７は解析を行ったバンド毎の描画パラメータから、バンド毎に描画負荷パラメータを計算する。
【００３６】
コマンド解析部１７はバンド毎に計算された描画負荷パラメータを元に、各バンド毎にホストコンピュータ１０内に存在するドライバ描画部１８を使用した描画を行うか、あるいはプリンタ３０内に存在する高速描画デバイス３７を使用して描画を行うか、またはプリンタ３０内に存在するＦ／Ｗ描画部３６を使用して行うかの描画先フラグを割り振る。
【００３７】
ホストコンピュータ１０内に存在するドライバ描画部１８、プリンタ３０内に存在する高速描画デバイス３７、プリンタ３０内に存在するＦ／Ｗ描画部３６はそれぞれ同等の描画機能を有している。
【００３８】
プリンタ言語変換処理部２０はバンド毎に割り振られた描画コマンドをプリンタ３０が解釈できるプリンタ言語に変換し、バンド毎のデータをまとめて、スプーラ２１を通してプリンタ３０側へ送信する。この時、ホストコンピュータ１０内に存在するドライバ描画部１８に割り振られる場合には、プリンタ言語変換処理部２０とドライバ描画部１８との並列処理を行う。
【００３９】
ホストコンピュータ１０内に存在するドライバ描画部１８は色変換処理部１９を使用しながらバンドの描画処理を行う。また、ホストコンピュータ１０から送られてきたプリンタデータはプリンタインタフェース３１を通し、プリンタ３０内の受信バッファ３２に入る。
【００４０】
受信バッファ３２に入ったデータはプリンタ３０内のコマンド解析部３３でＦ／Ｗ描画部３６や高速描画デバイス３７が解釈できるデータ形式に変換される。ここで、プリンタ３０内のコマンド解析部３３はプリンタドライバ１４内に存在するコマンド解析部１７と同等な機能を有している。
【００４１】
プリンタ制御部３４は受信バッファ３２、コマンド解析部３３、印刷制御部３５、出力制御部４０それぞれの動作管理を行う。コマンド解析部３３で変換されたデータは印刷制御部３５によってデータに付加された描画先フラグを元に高速描画デバイス３７とＦ／Ｗ描画部３６とに割り振られる。
【００４２】
高速描画デバイス３７は専用の描画ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：特定用途向け集積回路）のため、Ｆ／Ｗ描画部３６と並列動作が可能である。
【００４３】
高速描画デバイス３７あるいはＦ／Ｗ描画部３６はＣＭＹＫ各色毎に分解された描画イメージをメモリに展開する。メモリにＣＭＹＫ各色毎に分解された描画イメージは圧縮デバイスによって可逆圧縮法で圧縮され、各バンド毎にページメモリ３８に保存される。
【００４４】
ページメモリ３８に１ページ分の圧縮されたＣＭＹＫ各色毎に分解された描画イメージデータが保存されたら、出力制御部４０はＣＭＹＫ各色毎に分解された描画イメージを展開しながらプリンタエンジン部４１に出力する。
【００４５】
図４は本発明の一実施例で用いられる描画命令の種類を示す図であり、図５（ａ）は本発明の一実施例で用いられる文字描画用のデータ構造を示す図であり、図５（ｂ）は本発明の一実施例で用いられる文字の描画例を示す図である。
【００４６】
図６（ａ）は本発明の一実施例で用いられる矩形描画用のデータ構造を示す図であり、図６（ｂ）は本発明の一実施例で用いられる矩形の描画例を示す図であり、図７は本発明の一実施例で用いられるラスタオペレーションを設定するデータ構造を示す図であり、図８は本発明の一実施例で用いられるＢｒｕｓｈを設定するデータ構造を示す図である。
【００４７】
図９は本発明の一実施例で用いられる印刷図形の一例を示す図であり、図１０は本発明の一実施例で用いられる中間言語のデータ構造を示す図であり、図１１は本発明の一実施例で用いられるバンド毎に振り分けられた描画コマンド例を示す図であり、図１２は図２のコマンド解析部１７の動作を示すフローチャートであり、図１３は図２のドライバ描画部１８と図３のＦ／Ｗ描画部３６及び高速描画デバイス３７とによる並列動作例を示す図である。
【００４８】
これら図２〜図１３を参照して本発明の一実施例によるカラー印刷システムの動作について説明する。尚、図１２に示す処理動作はコマンド解析部１７を構成するプログラムの実行によって実現され、当該プログラムは図１のＲＯＭ４やハードディスク６等に格納可能である。
【００４９】
ホストコンピュータ１０内のアプリケーションプログラム１１から印刷命令があった場合、アプリケーションプログラム１１からＧＤＩモジュール１３を通じて与えられる描画命令がプリンタドライバ１４に発行される。
【００５０】
この描画命令は大きく分類すると、図４に示すように、デバイス制御命令と、文字描画命令と、図形描画命令と、ビットマップ描画命令とに分類される。そこで、ＤＤＩインタフェース部１５は描画命令に従って描画するために、その描画命令を解析可能な中間言語に変換する。
【００５１】
中間言語に変換されるデータ形式の一例として、図５〜図８に示すようなデータ構造に変換される。図５に示すデータ形式は文字描画用のデータ構造である。図５に示すように、中間言語の種類を示すラベル（Ｇｌｙｐｈ）と印刷可能領域における文字の左上の描画開始位置（Ｘ、Ｙ）と文字データの幅及び高さのピクセル数とから表現される。
【００５２】
図６に示すデータ形式は矩形描画用のデータ構造であり、中間言語の種類を示すラベル（Ｒｅｃｔ）と左上座標（Ｘ０，Ｙ０）及び右下座標（Ｘ１，Ｙ１）で囲まれた範囲とが描画されるように表現される。
【００５３】
図７に示すデータ形式はドライバ描画部１８で使用する重ね合わせの論理演算値であるラスタオペレーション（以下、ＲＯＰとする）を設定するデータ構造である。ＲＯＰとはＧＤＩモジュール１３に基づいて描画を行うための論理演算方法である。ＲＯＰ処理はドライバ描画部１８で多様な画像処理を行うことができるという特徴を持つ。
【００５４】
図８に示すデータ形式はＢｒｕｓｈを設定するデータ構造である。ＧＤＩモジュール１３に基づいて描画を行うための色の情報は、レッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）（以下、ＲＧＢとする）を０から２５５までの値の組合せで表現される。Ｂｒｕｓｈ及びＲＯＰ値等の設定コマンドが存在する。
【００５５】
例えば、図９に示すような図形を印刷した場合、コマンド解析部１７にはＤＤＩインタフェース部１５から図１０に示すような中間言語のデータ構造で渡される。
【００５６】
コマンド解析部１７はバンド分のワーク領域を確保し（図１２ステップＳ１）、バンド分のワーク領域を初期化する（図１２ステップＳ２）。コマンド解析部１７は中間言語を取得し、中間言語より各描画オブジェクト（実際に描画する中間言語データ、ここではＧｌｙｐｈやＲｅｃｔコマンド）から描画する領域を求める（図１２ステップＳ３）。
【００５７】
コマンド解析部１７は求めた描画領域の上限座標と下限座標とから、各印刷可能範囲内を帯状に分割した領域の、どのバンド領域に描画されるかを振り分ける（図１２ステップＳ４）。ここで、図１１に示すようにバンド毎に振り分けられた描画コマンドはＲＯＰやＢｒｕｓｈ等が前回と同じデータの場合、ＲＯＰやＢｒｕｓｈのコマンドをリンクしない構成にする。一方、ドライバ描画部１８ではＲＯＰやＢｒｕｓｈ等の描画共通系のデータを保持するように構成する。
【００５８】
このように、ドライバ描画部１８を構成することによって、何度も同じようなデータをプリンタ３０側に送る必要がなくなり、プリンタ３０への送信データの縮小や、ドライバ描画部１８でのコマンド解析の処理時間を短縮することが可能となる。
【００５９】
続いて、コマンド解析部１７はＢｒｕｓｈ設定コマンドの色に関するデータの解析を行う（図１２ステップＳ５）。ここで、ＢｒｕｓｈコマンドのＲＧＢ値が（Ｒ，Ｇ，Ｂ）＝（２５５，２５５，２５５）、あるいは（Ｒ，Ｇ，Ｂ）＝（０，０，０）の場合にはモノクロと判断する。ＢｒｕｓｈコマンドのＲＧＢ値がＲ＝Ｇ＝Ｂの場合には、グレースケール（灰色）と判断する。それ以外の場合にはカラーと判断する。
【００６０】
コマンド解析部１７はＢｒｕｓｈの色がカラー場合、各バンド分用意されているワークエリア内に存在するモノクロフラグにカラーをセットする（図１２ステップＳ６）。
【００６１】
各バンド分用意されているワークエリア内に存在するモノクロフラグの情報はカラーフラグがカラーの場合、ドライバ描画部１８でカラー用のオフスクリーン画像を作成する。カラーフラグがモノクロ、グレースケールの場合にはモノクロ用のオフスクリーン画像を生成する。
【００６２】
このように構成することによって、カラーフラグがモノクロやグレースケールのバンドはＲＧＢからシアン（Ｃ）、マゼンダ（Ｍ）、イエロー（Ｙ）、黒（Ｋ）（以下、ＣＭＹＫとする）への色変換処理や疑似階調処理を省くことができ、かつＫ一面分のみイメージデータを作成すればよいため、描画処理の向上が期待できる。
【００６３】
各バンド分用意されているワークエリア内に存在するモノクロフラグがカラーの場合、コマンド解析部１７はＢｒｕｓｈコマンドが有効な描画オブジェクトに対し、バンド毎に描画コマンドで同一バンド内に重なる部分が存在するかどうかの解析を行う（図１２ステップＳ７）。
【００６４】
重なる部分が存在しないバンドはＣＭＹＫに色分解した後でＲＯＰ処理を行っても、正しい描画イメージを作成することができる。しかしながら、重なる部分が存在したバンドはＣＭＹ上でＲＯＰ処理を行い、その後にＵＣＲ／ＢＧ処理（下色除去処理／黒生成処理）を用いてＣＭＹからＣＭＹＫへの変換処理を行わないと、正しい描画イメージの作成が保証されない。
【００６５】
この処理手順を行った場合には、ＣＭＹＫに色分解した後でＲＯＰ処理を行った場合に比べ、メモリアクセスを行う領域が多くなるため、処理時間がかかってしまう。そのため、カラーバンドで重なる部分が存在したバンドは、優先的に高速描画デバイス３７を用いてＣＭＹで描画を行う必要がある。
【００６６】
コマンド解析部１７は上記の中間言語のコマンド解析処理を１ページ分行う（図１２ステップＳ８）。コマンド解析部１７は１ページ分のコマンド解析が終了したら、バンド毎に描画する面積の和から描画ピクセル数を求めて各バンド分用意されているワークエリア内に保持する（図１２ステップＳ９）。
【００６７】
以上から各バンド分用意されているワークエリア内に保持されている情報であるモノクロフラグ、重ね合わせの存在の有無、描画領域ピクセル数、描画コマンドのデータ量からバンド毎に描画負荷パラメータを設定する（図１２ステップＳ１０）。
【００６８】
このように、各バンド毎の情報を検索しておくことによって、コマンド解析部１７はバンド毎に計算された描画負荷パラメータを元に、各バンド毎にホストコンピュータ１０内に存在するドライバ描画部１８を使用した描画を行うか、あるいはプリンタ３０内に存在する高速描画デバイス３７を使用して描画を行うか、またはプリンタ３０内に存在するＦ／Ｗ描画部３６を使用して行うかを割り振る。
【００６９】
プリンタ言語変換処理部２０はバンド毎に割り振られた描画コマンドをプリンタ３０が解釈できるプリンタ言語に変換し、バンド毎のデータをまとめて、スプーラ２１を通してプリンタ３０側へ送信する。この時、ホストコンピュータ１０内に存在するドライバ描画部１８に割り振られる場合には、プリンタ言語変換処理部２０とホストコンピュータ１０内に存在するドライバ描画部１８との並列処理が行われる。
【００７０】
ホストコンピュータ１０内に存在するドライバ描画部１８は色変換処理部１９を使用しながら、バンドの描画処理を行う。また、ホストコンピュータ１０から送られたプリンタデータはプリンタインタフェース３１を通してプリンタ３０内の受信バッファ３２に入る。
【００７１】
受信バッファ３２に入ったデータはプリンタ３０内のコマンド解析部３３でホストコンピュータ１０でバンド毎に割り振られ、Ｆ／Ｗ描画部３６や高速描画デバイス３７が解釈できるデータ形式に変換する。プリンタ制御部３４は受信バッファ３２、コマンド解析部３３、印刷制御部３５、出力制御部４０の動作管理を行う。
【００７２】
コマンド解析部３３で変換されたデータは印刷制御部３５によって、データに付加された描画先フラグを元に高速描画デバイス３７とＦ／Ｗ描画部３６とに割り振りを行う。
【００７３】
高速描画デバイス３７は専用の描画ＡＳＩＣのため、Ｆ／Ｗ描画部３６と並列動作が可能である。高速描画デバイス３７あるいはＦ／Ｗ描画部３６はＣＭＹＫ各色毎に分解された描画イメージをメモリに展開する。メモリにＣＭＹＫ各色毎に分解された描画イメージはイメージ圧縮デバイス３９によって可逆圧縮法で圧縮され、各バンド毎にページメモリ３８に保存される。
【００７４】
ページメモリ３８に、１ページ分の圧縮されたＣＭＹＫ各色毎に分解された描画イメージデータが保存されたら、出力制御部４０はＣＭＹＫ各色毎に分解された描画イメージを展開しながら、プリンタエンジン部４１に出力する。
【００７５】
このように、プリンタドライバ１４のコマンド解析部１７にてＤＤＩインタフェース部１５で変換された中間言語を解析し、バンド毎に描画負荷パラメータを求めることによって、図１３に示すように、ホストコンピュータ１０のドライバ描画部１８とプリンタ３０内のＦ／Ｗ描画部３６と高速描画デバイス３７とを並列動作させることが可能となる。
【００７６】
また、プリンタ３０内に並列動作処理可能な描画部を複数もった構成の印刷システムにおいても、最適な描画負荷分散処理を行うことが可能となる。以上の構成を用いることによって、ホストコンピュータ１０とプリンタ３０との最適な描画負荷分散処理を行うことが可能となり、従来に比べて高速なカラー描画を行うことができる。
【００７７】
また、プリンタドライバ１４内のコマンド解析部１７の解析結果で各バンド分用意されているワークエリア内に存在するモノクロフラグが１ページすべてモノクロの場合には、バンド分割された描画コマンドをプリンタ３０側に送らず、ＤＤＩインタフェース部１５で変換された中間言語にプリンタ言語変換処理部２０でモノクロデータであることを示すコマンドを付加し、プリンタ３０側に転送する。
【００７８】
プリンタ３０側ではプリンタインタフェース３１を通してプリンタ３０内の受信バッファ３２でプリンタデータを受信する。受信バッファ３２に入ったデータはプリンタ３０内のコマンド解析部３３で各バンド毎に分割処理を行い、高速描画デバイス３７とＦ／Ｗ描画部３６とに割り振りを行う。
【００７９】
高速描画デバイス３７あるいはＦ／Ｗ描画部３６はＫ１色のみの描画イメージを各バンド毎にメモリに展開する。このとき、プリンタ３０内のコマンド解析部３３はホストコンピュータ１０側で行っていたバンド毎に描画コマンドで同一バンド内に重なる部分が存在するかどうかの解析を行う必要はない。なぜならば、ＣＭＹＫでのＲＯＰ処理を行って描画イメージを作成した場合と異なり、Ｋ１色の場合には正しい描画イメージが作成されることが保証されているからである。
【００８０】
次に、作成された描画イメージはイメージ圧縮デバイス３９によって可逆圧縮法で圧縮され、各バンド毎にページメモリ３８に保存される。出力制御部４０は描画イメージを展開しながら、プリンタエンジン部４１に出力する。
【００８１】
１ページモノクロデータの場合はカラー印刷時に比べ、色変換処理や疑似階調処理を省略することができるため、ホストコンピュータ１０側で各バンド毎に分割処理を行い、プリンタ３０側に転送するデータ量が増えるより、プリンタ３０側で各バンド毎に分割処理を行い、プリンタ３０内の描画を行った方が高速印刷を可能とする。
【００８２】
このように、ホストコンピュータ１０のプリンタドライバ１４内で描画コマンドを解析し、オブジェクトの描画範囲からバンド毎にコマンドを振り分け、バンド毎の独立性を持たせ、コマンドをまとめることによって、バンド毎に描画の並列描画処理を可能とすることができる。よって、ホストコンピュータ１０とプリンタ３０との並列描画処理を行うことができる。その結果、従来に比べて高速なカラー印刷を行うことができる。
【００８３】
また、ホストコンピュータ１０のプリンタドライバ１４内で描画コマンドを解析し、バンド毎の色情報、重ね合わせの存在の有無、描画領域ピクセル数、描画コマンドのデータ量からバンド毎の処理負荷量を計算し、並列描画処理のスケジューリングを行うことができる。
【００８４】
よって、ホストコンピュータ１０とプリンタ１０内に存在するＦ／Ｗ描画部３６及び高速描画デバイス３７の処理能力を考慮してバンド毎の描画データを振り分け処理させることができる。その結果、並列動作時における描画待ち時間を最小にすることができ、高速なカラー印刷を行うことができる。
【００８５】
さらに、１ページ分の印刷データがモノクロの場合、プリンタ３０側でバンド分割処理を行い、プリンタ３０内で描画を行わせることによって、ホストコンピュータ１０でバンド分割処理を行ってプリンタ３０側へ転送する場合に比べ、プリンタ３０へのデータ転送量が少なくなる。
【００８６】
この場合、カラー印刷時に比べ、色変換処理や疑似階調処理を省略することができるため、描画処理時間がかからず、ホストコンピュータ１０とプリンタ３０との並列描画処理を行う必要性がなくなる。よって、１ページ分の印刷データがモノクロの場合、ホストコンピュータ１０でバンド分割処理を行って描画させる場合に比べ、高速なモノクロ印刷を行うことができる。
【００８７】
図１４は本発明の他の実施例によるホストコンピュータの構成を示すブロック図であり、図１５は本発明の他の実施例によるプリンタの構成を示すブロック図である。図１４において、ホストコンピュータ５０はアプリケーションプログラム５１と、オペレーティングシステム５２とを備えている。
【００８８】
オペレーティングシステム５２はＧＤＩモジュール５３と、プリンタドライバ５４と、スプーラ６１とを備えており、プリンタドライバ５４はＤＤＩインタフェース部５５と、ユーザインタフェース部５６と、コマンド解析部５７と、ドライバ描画部５８と、色変換処理部５９と、プリンタ言語変換処理部６０とからなっている。
【００８９】
図１５において、プリンタ７０はプリンタインタフェース７１と、受信バッファ７２と、コマンド解析部７３と、プリンタ制御部７４と、印刷制御部７５と、Ｆ／Ｗ描画部７６と、高速描画デバイス７７−１〜７７−ｎと、ページメモリ７８と、イメージ圧縮デバイス７９−１〜７９−ｎと、出力制御部８０と、プリンタエンジン部８１とから構成されている。
【００９０】
本発明の他の実施例によるカラー印刷システムは図２及び図３に示す本発明の一実施例によるカラー印刷システムの構成に対し、複数の高速描画デバイス７７−１〜７７−ｎ及びイメージ圧縮デバイス７９−１〜７９−ｎを有している点で異なる。
【００９１】
このように、プリンタ７０内に複数個の高速描画デバイス７７−１〜７７−ｎ及びイメージ圧縮デバイス７９−１〜７９−ｎを構成することで、本発明の一実施例によるカラー印刷システムのように、ドライバ描画部１９と高速描画デバイス３７とＦ／Ｗ描画部３６との３つの並列描画処理だけでなく、複数の描画デバイスを用いた並列描画処理が可能となる。そのため、上記に記載した構成に比べてより高速なカラー印刷ができる。
【００９２】
【発明の効果】
以上説明したように本発明のカラー印刷システムによれば、描画コマンドに基づいて印刷を行うプリンタと、描画コマンドを発行するプリンタドライバを含むホストコンピュータとからなるカラー印刷システムにおいて、プリンタドライバで、描画コマンドを解析してオブジェクトの描画範囲から印刷可能範囲内を帯状に分割した領域を示す複数のバンド毎にコマンドを振り分け、複数のバンド毎の独立性を持たせかつコマンドをまとめ、プリンタドライバ内の複数のバンド毎のコマンドに基づいてオブジェクトの描画処理を行うドライバ描画手段と、プリンタ内の複数のバンド毎のコマンドに基づいて２値あるいは多値でオブジェクトの描画処理を高速に行う高速描画デバイス及びこの高速描画デバイスと同様な機能を組込型ソフトウェアで実現したファームウェア描画手段とのうちのいずれかの組合せで複数のバンド毎にオブジェクトの並列描画処理を自在とすることによって、プリンタ内で描画部をもつカラープリンタにおいて高速で最適な描画処理を行うことができるという効果がある。
【００９３】
また、本発明の他のカラー印刷システムによれば、上記の動作のほかに、プリンタドライバ内で描画コマンドを解析した結果が１ページすべてモノクロデータの場合にプリンタで複数のバンド毎にコマンドを振り分け、プリンタ内で複数のバンド毎に並列描画処理を行うことによって、プリンタドライバとプリンタとの描画処理分担を最適化することができるという効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例によるカラー印刷システムの構成を示すブロック図である。
【図２】本発明の一実施例によるホストコンピュータの構成を示すブロック図である。
【図３】本発明の一実施例によるプリンタの構成を示すブロック図である。
【図４】本発明の一実施例で用いられる描画命令の種類を示す図である。
【図５】（ａ）は本発明の一実施例で用いられる文字描画用のデータ構造を示す図、（ｂ）は本発明の一実施例で用いられる文字の描画例を示す図である。
【図６】（ａ）は本発明の一実施例で用いられる矩形描画用のデータ構造を示す図、（ｂ）は本発明の一実施例で用いられる矩形の描画例を示す図である。
【図７】本発明の一実施例で用いられるラスタオペレーションを設定するデータ構造を示す図である。
【図８】本発明の一実施例で用いられるＢｒｕｓｈを設定するデータ構造を示す図である。
【図９】本発明の一実施例で用いられる印刷図形の一例を示す図である。
【図１０】本発明の一実施例で用いられる中間言語のデータ構造を示す図である。
【図１１】本発明の一実施例で用いられるバンド毎に振り分けられた描画コマンド例を示す図である。
【図１２】図２のコマンド解析部の動作を示すフローチャートである。
【図１３】図２のドライバ描画部と図３のＦ／Ｗ描画部及び高速描画デバイスとによる並列動作例を示す図である。
【図１４】本発明の他の実施例によるホストコンピュータの構成を示すブロック図である。
【図１５】本発明の他の実施例によるプリンタの構成を示すブロック図である。
【符号の説明】
１  ＣＰＵ
２  キーボード
３  表示装置
４  ＲＯＭ
５  ＲＡＭ
６  ハードディスク
７  プリンタインタフェース
８，３０，７０  プリンタ８
１０，５０  ホストコンピュータ
１１，５１  アプリケーションプログラム
１２，５２  オペレーティングシステム
１３，５３  ＧＤＩモジュール
１４，５４  プリンタドライバ
１５，５５  ＤＤＩインタフェース部
１６，５６  ユーザインタフェース部
１７，５７  コマンド解析部
１８，５８  ドライバ描画部
１９，５９  色変換処理部
２０，６０  プリンタ言語変換処理部
２１，６１  スプーラ
３１，７１  プリンタインタフェース
３２，７２  受信バッファ
３３，７３  コマンド解析部
３４，７４  プリンタ制御部
３５，７５  印刷制御部
３６，７６  Ｆ／Ｗ描画部
３７，
７７−１〜７７−ｎ  高速描画デバイス
３８  ページメモリ
３９，
７９−１〜７９−ｎ  イメージ圧縮デバイス
４０，８０  出力制御部
４１，８１  プリンタエンジン部
【図１】
0003573035.tif 000002
【図２】
0003573035.tif 000003
【図３】
0003573035.tif 000004
【図４】
0003573035.tif 000005
【図５】
0003573035.tif 000006
【図６】
0003573035.tif 000007
【図７】
0003573035.tif 000008
【図８】
0003573035.tif 000009
【図９】
0003573035.tif 000010
【図１０】
0003573035.tif 000011
【図１１】
0003573035.tif 000012
【図１２】
0003573035.tif 000013
【図１３】
0003573035.tif 000014
【図１４】
0003573035.tif 000015
【図１５】
0003573035.tif 000016