(57)【特許請求の範囲】
【請求項１】
アプリケーションから渡されたデータを変換し、変換された描画命令をプリンタドライバに発行するグラフィックデバイスインターフェースから発行された描画命令を処理するプリンタドライバが図形内部を充填するためのビットパターンデータを含むパターンブラシを基に、画像出力デバイスに適した形式の画像データを生成して前記画像出力デバイスに出力する画像出力制御装置であって、
前記プリンタドライバは、
前記パターンブラシのビットパターンデータが多値形式であり、かつ、色数が２色以下であるか否かを判定する判定手段と、
前記パターンブラシのビットパターンデータが多値形式かつ色数が２色以下の場合には、前記ビットパターンデータを２値形式に変換する変換手段と、
前記変換手段により２値形式に変換されたビットパターンデータを含むパターンブラシを基に、前記画像出力デバイスに適した形式の画像データを生成する生成手段と
を備えることを特徴とする画像出力制御装置。
【請求項２】
前記画像出力デバイスはプリンタであることを特徴とする請求項１に記載の画像出力制御装置。
【請求項３】
前記変換手段により２値形式に変換されたビットパターンデータを含む画像描画データを中間データに変換して格納するスプール手段を更に備え、
前記生成手段は、前記中間データから前記画像出力デバイスに適した形式の画像データを生成することを特徴とする請求項１または２に記載の画像出力制御装置。
【請求項４】
前記変換手段は、前記ビットパターンデータが２色以下の場合に、１画素を表す２値のうち、一方の値に前記２色のうちの一方を、他方の値に他方の色を割り当てることを特徴とする請求項１乃至３のいずれか１項に記載の画像出力制御装置。
【請求項５】
前記変換手段は、ソースビットマップを使用する際に、ソースビットマップが２値形式でない場合、前記ビットパターンデータを２値形式へ変換することを特徴とする請求項１乃至４のいずれか１項に記載の画像出力制御装置。
【請求項６】
前記変換手段は、前記ビットパターンデータ情報が白と黒の２色で構成されている場合には、前景色を黒、背景色を白の２値パターンデータに変換することを特徴とする請求項１乃至５のいずれか１項に記載の画像出力制御装置。
【請求項７】
アプリケーションから渡されたデータを変換し、変換された描画命令をプリンタドライバに発行するグラフィックデバイスインターフェースにより発行された描画命令を処理するプリンタドライバで実行され、通信媒体を介して印刷装置と通信可能なデータ処理装置とその印刷装置とによって構成される印刷システムにおいて、
前記プリンタドライバは、
前記グラフィックデバイスインターフェースより渡される描画命令を記憶可能な形式の中間言語に変換するスプール手段と、
前記スプール手段により変換された中間言語を保持する中間言語記憶手段と、
中間言語を前記中間言語記憶手段より取り出して再生する再生手段と、
前記再生手段により渡された中間言語の描画命令を描画展開する描画手段とを備え、
前記スプール手段は、前記描画命令がビットマップ描画であってソースビットマップを使用する場合において、当該ソースビットマップが多値形式かつ２色以下のパターンブラシ情報である場合、当該パターンブラシ情報を２値形式のパターンブラシ情報へフォーマット変換し、前記中間言語記憶手段により中間言語としてスプールし、当該ソースビットマップが２値形式のパターンブラシ情報である場合、渡されたパターンブラシ情報を変換せずに中間言語としてスプールすることを特徴とするデータ処理装置。
【請求項８】
アプリケーションから渡されたデータを変換し、変換された描画命令をプリンタドライバに発行するグラフィックデバイスインターフェースから発行された描画命令を処理するプリンタドライバが図形内部を充填するためのパターンデータを含む画像描画データから、画像出力デバイスに適した形式の画像データを生成して前記画像出力デバイスに出力する画像出力制御方法であって、
前記プリンタドライバが、
前記パターンデータが多値形式であり、かつ、色数が２色以下であるか否かを判定する判定工程と、
前記パターンデータが多値形式かつ色数が２色以下の場合には、前記パターンデータを２値形式に変換する変換工程と、
前記変換工程により２値形式に変換されたパターンデータを含む画像描画データを基に、前記画像出力デバイスに適した形式の画像データを生成する生成工程と
を実行することを特徴とする画像出力制御方法。
【請求項９】
前記画像出力デバイスはプリンタであることを特徴とする請求項８に記載の画像出力制御方法。
【請求項１０】
前記変換工程により２値形式に変換されたビットパターンデータを含む画像描画データを中間データに変換して格納するスプール工程を更に備え、
前記生成工程は、前記中間データから前記画像出力デバイスに適した形式の画像データを生成することを特徴とする請求項８または９に記載の画像出力制御方法。
【請求項１１】
前記変換工程は、前記ビットパターンデータが２色以下の場合に、１画素を表す２値のうち、一方の値に前記２色のうちの一方を、他方の値に他方の色を割り当てることを特徴とする請求項８乃至１０のいずれか１項に記載の画像出力制御方法。
【請求項１２】
前記変換工程は、ソースビットマップを使用する際に、ソースビットマップが２値形式でない場合、前記ビットパターンデータを２値形式へ変換することを特徴とする請求項８乃至１１のいずれか１項に記載の画像出力制御方法。
【請求項１３】
前記変換工程は、前記ビットパターンデータ情報が白と黒の２色で構成されている場合には、前景色を黒、背景色を白の２値パターンデータに変換することを特徴とする請求項８乃至１２のいずれか１項に記載の画像出力制御方法。
【請求項１４】
アプリケーションから渡されたデータを変換し、変換された描画命令をプリンタドライバに発行するグラフィックデバイスインターフェースから発行された描画命令を処理するプリンタドライバで実行され、通信媒体を介して印刷装置と通信可能なデータ処理装置とその印刷装置とによって構成される印刷システムにおいて、
前記プリンタドライバが、
前記グラフィックデバイスインターフェースより渡される描画命令を記憶可能な形式の中間言語に変換するスプール工程と、
前記スプール工程により変換された中間言語を中間言語記憶手段に保持する中間言語記憶工程と、
中間言語を前記中間言語記憶手段より取り出して再生する再生工程と、
前記再生工程により渡された中間言語の描画命令を描画展開する描画工程とを備え、
前記スプール工程では、前記描画命令がビットマップ描画であってソースビットマップを使用する場合において、当該ソースビットマップが多値形式かつ２色以下のパターンブラシ情報である場合、当該パターンブラシ情報を２値形式のパターンブラシ情報へフォーマット変換し、前記中間言語記憶手段により中間言語としてスプールし、当該ソースビットマップが２値形式のパターンブラシ情報である場合、渡されたパターンブラシ情報を変換せずに中間言語としてスプールすることを特徴とするデータ処理装置。
【請求項１５】
アプリケーションから渡されたデータを変換し、変換された描画命令をプリンタドライバに発行するグラフィックデバイスインターフェースから発行された描画命令を処理するプリンタドライバが図形内部を充填するためのビットパターンデータを含むパターンブラシを基に、画像出力デバイスに適した形式の画像データを生成して前記画像出力デバイスに出力する画像出力制御装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ可読記憶媒体であって、
前記プログラムは、前記プリンタドライバを、
前記パターンブラシのビットパターンデータが多値形式であり、かつ、色数が２色以下であるか否かを判定する判定手段と、
前記パターンブラシのビットパターンデータが多値形式かつ色数が２色以下の場合には、前記ビットパターンデータを２値形式に変換する変換手段と、
前記変換手段により２値形式に変換されたビットパターンデータを含むパターンブラシを基に、前記画像出力デバイスに適した形式の画像データを生成する生成手段と
して機能させることを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばホストコンピュータ等で稼働するアプリケーションプログラムにより作成された画像をプリンタやディスプレイモニタから出力するための画像出力制御装置及び方法に関する。
【０００２】
【従来の技術】
従来の印刷システムにおける印刷制御方法および処理の流れについて図９を用いて説明する。
【０００３】
一般的には、図９に示すようにホスト・コンピュータ２００は、ディスプレイモニタ２２０、キーボード２１０、マウス２１１、印刷装置１００の周辺装置と接続されており、印刷システムを構成している。
【０００４】
特に印刷装置１００とは、セントロニクスインターフェース等のパラレル通信手段や、ネットワーク通信手段である外部Ｉ／Ｆ２０２９を介して接続されている。
【０００５】
ホスト・コンピュータ１００では、ワードプロセッサや表計算のようなアプリケーションソフトウェア２０１（以下アプリケーションと略称）がウインドウズ９５やウインドウズ９８（マイクロソフト社の登録商標）のようないわゆる基本ＯＳソフト２０２０の上で動作している。こうしたアプリケーション２０１から印刷を行う場合、そのプログラム内から、基本ＯＳソフト２０２０が提供するいくつかのサブシステムのうちグラフィック・サブシステム２０２の機能を用いて印刷を行う。このグラフィック・サブシステム２０２は、例えばウインドウズでは、ＧＤＩ２０２１(Graphic Device Interface)と呼ばれており、ディスプレイやプリンタに対する画像情報の処理を司っている。このＧＤＩ２０２１は、ディスプレイ２２０や印刷装置１００といった各デバイス毎の依存性を吸収するためにデバイスドライバと呼ばれるモジュールを動的にリンクし、それぞれのデバイスに対する出力処理を行う。プリンタに対するこのモジュールは特にプリンタ・ドライバ２０２２と呼ばれる。プリンタ・ドライバ２０２２には、その能力や機能などに応じてあらかじめデバイスドライバに実装することが決められているＤＤＩ(Device Driver Interface)と呼ばれる関数群が用意されている必要がある。
【０００６】
印刷などの基本的な入出力の機能は基本ＯＳソフトを介して行う必要があるために、アプリケーションから印刷や表示など、画像の出力を行う際には、基本ＯＳソフトによって提供される機能をアプリケーションから使用するためのＡＰＩ(Application Programming Interface)コールがアプリケーションによって行われる。ＧＤＩ２０２１は、アプリケーションのＡＰＩコールをデバイスドライバ用にデータ変換を行い、このＤＤＩ関数群を有するプリンタ・ドライバ２０２２が適宜ＧＤＩ２０２１からコールされ所定の描画処理が実行されるような仕組みになっている。ＧＤＩ２０２１では、このようにプリンタ・ドライバ２２０２を介してアプリケーションからの印刷要求をシーケンシャルに処理している。
【０００７】
図９のプリンタ・ドライバ２２０２は、複数の処理方式の異なるサブドライバ２０２３−２０２６をコールすることにより描画処理を行う。サブドライバ２０２３−２０２６は、ホスト・コンピュータ側で描画命令のコマンド生成を行い、そのコマンドの大半を印刷装置１００側で描画処理するＰＤＬサブドライバ２０２３と、ホスト・コンピュータ側で描画命令をバンドメモリ２０２７に展開して印刷装置１００へ送る、イメージドライバサブ２０２４−２０２６とに分けられる。図９に示す従来型の印刷システムにおいては、どのサブドライバで処理されるかは印刷時のユーザの設定によって切り替えられ、１つの印刷ジョブに対して１つのサブドライバしか対応していなかった。
【０００８】
これに対して最近、アプリケーションからＧＤＩを介してプリンタドライバに渡された印刷データを、一旦中間データに変換してスプールファイルとして格納し、それをデスプーラによって取り出してから、ＰＤＬコマンドやイメージデータに変換し、印刷装置に送信して印刷させるという、スプールサブシステムを有する印刷システムも利用されている。
【０００９】
このようなシステムでは、スプールファイルから取り出された中間データをＰＤＬサブドライバによってＰＤＬコマンド化するか、それともイメージサブドライバによってイメージデータ化するかは、プリンタドライバによって１ページ分の印刷データに基づいて決定される。すなわち図８のシステムとは異なり、ユーザがサブドライバを指定する必要はない。
【００１０】
さて、ＧＤＩには、パターンブラシと呼ばれる小さな画像パターンを、図名内部に充填して塗りつぶす機能が用意されている。図７として、マイクロソフト社のウインドウズＯＳにおいて、ＧＤＩからプリンタ・ドライバに渡されるパターンブラシ情報の構造の例を示す。この構造はＤＤＢ(Device Depend Bitmap)形式と呼ばれるビットマップであり、ＤＤＢ形式のパターンブラシをＤＤＢパターンブラシと呼ぶ。
【００１１】
ＤＤＢは名前の通りデバイス依存ビットマップを表すが、１ＢＰＰ、すなわち１画素当たり１ビットであり、かつ、プレーン数が１のＤＤＢ、すなわち２値形式は、デバイスに依存しない標準的なフォーマットとして定義されている。なお、このフォーマットをＤＤＢ１ＢＰＰと略称する。ＤＤＢ１ＢＰＰは、図７の上半部分に示されているようにフォーマット情報を表すＰＢＩＴＭＡＰ構造体４００と、ビットパターン情報を表すデータ列４０１、ピクセルのＯｎ＝１，Ｏｆｆ＝０の各色を表すＤＲＡＷＭＯＤＥ構造体４０２によりパターンブラシを表現している。ピクセルＯｎの部分が背景色、ピクセルＯｆｆの部分が前景色を表している。
【００１２】
このようにＤＤＢ１ＢＰＰでは２色構成のブラシまでしか表現できないために、プリンタドライバ２０２２は、３色以上の構成のパターンブラシ、すなわち多値形式のパターンブラシを処理するために、デバイス依存のＤＤＢのフォーマットで渡されるデータを処理可能となっている。このデバイス依存のＤＤＢ形式は、図７の下半部分に示すように、フォーマット情報を表すＰＢＩＴＭＡＰ構造体４１０とビットパターン情報とピクセル色情報とを併せ持つ独自のデータ列４１１とによって３色以上のパターンブラシを表すことができる。プリンタドライバ２０２２には、ＧＤＩ２０２１より、ＤＤＢ１ＢＰＰまたはデバイス依存のＤＤＢの形でパターンブラシ情報が渡される。後者のデバイス依存のＤＤＢパターンブラシは、一般に色数を表現する情報量が大きいために、デバイス依存のＤＤＢパターンブラシは、ＤＤＢ１ＢＰＰパターンブラシより情報量が大きい。図７の例では、デバイス依存のＤＤＢパターンブラシは２４ＢＰＰであり（ＤＤＢ２４ＢＰＰと呼ぶ）、ピクセル幅と高さが同じＤＤＢ１ＢＰＰのパターンブラシと比較すれば、ビットパターンだけで２４倍ものサイズになってしまう。
【００１３】
【発明が解決しようとする課題】
このように、或るサイズのパターンブラシ情報をデバイス依存ＤＢＢフォーマットで表現すると、同サイズのパターンブラシ情報をＤＢＢ１ＢＰＰフォーマットで表現した場合に比べて、データサイズが非常に大きくなる。このため、ＧＤＩからプリンタドライバにパターンブラシ情報を渡すための形式としてデバイス依存ＤＢＢフォーマットを用いると、ＧＤＩにおいてもプリンタドライバにおいても、ＤＢＢ１ＢＰＰフォーマットを用いる場合に比べて処理時間が長くなる。更に、スプールサブシステムを持った印刷システムにおいては、スプールされる中間データもまた大きくなり、スプールファイルを設ける記憶媒体の容量を大きくしなければならない。
【００１４】
ＧＤＩ２０２１がどの形式のパターンブラシをプリンタドライバに渡すかは、アプリケーション２０１の描画要求の手順やプリンタドライバ２０２２の処理方法に依存し、パターンブラシの構成色数に依存しない。したがって、アプリケーション２０１の描画要求の手順やプリンタドライバ２０２２の処理方法により、パターンブラシの形式をデバイス依存のＤＤＢフォーマットとするものと定められてしまえば、本来ＤＢＢ１ＢＰＰのフォーマットで表現可能な２色以下の画像データであっても、デバイス依存のＤＤＢフォーマットでＧＤＩからプリンタドライバにパターンブラシ情報が渡される。
【００１５】
このように、本来ＤＢＢ１ＢＰＰフォーマットで表現可能なパターンブラシ情報であっても、それに比べてデータ量が相当大きくなってしまうデバイス依存ＢＰＰフォーマットでＧＤＩからプリンタドライバに渡されてしまうために、本来不要なはずの処理時間やスプールファイル容量など、貴重なシステム資源が浪費されてしまう。
【００１６】
またプリンタドライバの中には、（１）多値パターンブラシより２値パターンブラシの方が高速に処理できるものや、（２）２値パターンブラシの背景色＝白、前景色＝黒となる時に高速で処理可能なのもの、などがある。このようなプリンタドライバでは、前述したように、多色のパターンブラシ情報を表現するためのデバイス依存ＤＢＢフォーマットでパターンブラシ情報を渡されても、その特徴を生かせず、印刷速度を向上させることはできない。
【００１７】
本発明は上記従来例に鑑みてなされたもので、プリンタドライバに渡されるパターンブラシ情報の形式を、パターンブラシ情報の内容に最適化することで、印刷速度を向上させると共に、処理時間や記憶容量など、システム資源を浪費しない画像出力制御装置及び方法を提供することを目的とする。
【００１８】
【課題を解決するための手段】
本発明は上記従来例に鑑みてなされたもので、次のような構成からなる。
【００１９】
アプリケーションから渡されたデータを変換し、変換された描画命令をプリンタドライバに発行するグラフィックデバイスインターフェースから発行された描画命令を処理するプリンタドライバが図形内部を充填するためのビットパターンデータを含むパターンブラシを基に、画像出力デバイスに適した形式の画像データを生成して前記画像出力デバイスに出力する画像出力制御装置であって、
前記プリンタドライバは、
前記パターンブラシのビットパターンデータが多値形式であり、かつ、色数が２色以下であるか否かを判定する判定手段と、
前記パターンブラシのビットパターンデータが多値形式かつ色数が２色以下の場合には、前記ビットパターンデータを２値形式に変換する変換手段と、
前記変換手段により２値形式に変換されたビットパターンデータを含むパターンブラシを基に、前記画像出力デバイスに適した形式の画像データを生成する生成手段とを備える。
【００２０】
あるいは、アプリケーションから渡されたデータを変換し、変換された描画命令をプリンタドライバに発行するグラフィックデバイスインターフェースから発行された描画命令を処理するプリンタドライバで実行され、通信媒体を介して印刷装置と通信可能なデータ処理装置とその印刷装置とによって構成される印刷システムにおいて、
前記プリンタドライバは、
前記グラフィックデバイスインターフェースより渡される描画命令を記憶可能な形式の中間言語に変換するスプール手段と、
前記スプール手段により変換された中間言語を保持する中間言語記憶手段と、
中間言語を前記中間言語記憶手段より取り出して再生する再生手段と、
前記再生手段により渡された中間言語の描画命令を描画展開する描画手段とを備え、
前記スプール手段は、前記描画命令がビットマップ描画であってソースビットマップを使用する場合において、当該ソースビットマップが多値形式かつ２色以下のパターンブラシ情報である場合、当該パターンブラシ情報を２値形式のパターンブラシ情報へフォーマット変換し、前記中間言語記憶手段により中間言語としてスプールし、当該ソースビットマップが２値形式のパターンブラシ情報である場合、渡されたパターンブラシ情報を変換せずに中間言語としてスプールする。
【００２５】
【発明の実施の形態】
［第１の実施の形態］
＜印刷システムの構成＞
図８に本発明を適用する印刷システムのブロック図を示す。図８のシステムは、ディスプレイモニタ２２０，キーボード２１０，ポインティングデバイス２１１，印刷装置１００，ホスト・コンピュータ２００を含む。このシステムは次のように動作する。
【００２６】
図８において、アプリケーション２０１から印刷を行う際には、アプリケーション２０１が適当なＡＰＩをコールする。ＧＤＩ２０２１は、それに応じてアプリケーションから渡されたデータをデバイスドライバ用に変換し、プリンタドライバ２０２２の提供するＤＤＩ関数をコールすることで、プリンタドライバに対して描画命令を発行する。プリンタドライバ２０２２は、受け取った描画命令を中間言語で記述した中間データに変換しつつ一旦ワークバッファ３００へスプールし、並行して１ページを構成する描画命令を分析する。その際、プリンタドライバ２０２２は、ＧＤＩ２０２１から渡されたパターンブラシ情報を、それを中間データに変換する前に、その内容に応じてＤＢＢ１ＢＰＰフォーマットに変換する。プリンタドライバ２０２２はその分析結果によりサブドライバ２０２３−２０２６のうちのどれを用いるか決定する。サブドライバ２０２３−２０２６は、図９に示すサブドライバ２０２３−２０３６のＩ／Ｆと同一インターフェイスである。デスプーラ３０１は、ワークバッファ３００に格納された中間データをプリンタドライバにより決定されたサブドライバに受け渡す。このシステム構成により、ユーザに複雑な判断を行わせることなく、印刷すべき文書に最適なサブドライバで印刷要求を再生することができる。
【００２７】
プリンタドライバ２０２２は、前述したパターンブラシのフォート変換のために、パターンブラシ最適化部３０２３を有する。このパターンブラシ最適化部３０２３では、図１から図６のフローチャートに示す手順を実行し、ＤＤＢ１ＢＰＰフォーマットに変換しても印刷結果に影響を及ぼさないようなデバイス依存のＤＤＢパターンブラシについては、ＤＤＢ１ＢＰＰのパターンブラシにフォーマットを変換する。
【００２８】
図１０は、図８の印刷システムのハードウエアブロック図である。図１０において、ホストコンピュータ３０００は、ＲＯＭ３のプログラム用ＲＯＭに記憶された文書処理プログラム等に基づいて、図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理等を行うアプリケーションプログラム等やＯＳ、図１〜図６に示す手順を含むプリンタドライバなどを実行するＣＰＵ１を備える。システムバス４に接続される各デバイスをＣＰＵ１が統括的に制御する。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。キーボードコントローラ（ＫＢＣ）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ１０の表示を制御する。ディスクコントローラ（ＤＫＣ）７は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）８は、所定の双方向インターフェース（双方向Ｉ／Ｆ）２１を介してプリンタ１０００に接続されて、プリンタ１０００との通信制御処理を実行する。なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭヘのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧ（表示内容と印刷内容とを一致させる機能）を可能としている。また、ＣＰＵ１はＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウィンドウを開き、種々のデータ処理を実行する。
【００２９】
プリンタ１０００において、プリンタＣＰＵ１２は、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等に記憶された制御プログラム等に基づいてシステムバス１５に接続される各種のデバイスとのアクセスを統括的に制御し、印刷部Ｉ／Ｆ１６を介して接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。ＣＰＵ１２は双方向Ｉ／Ｆ２１を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知可能に構成されている。ＲＡＭ１９はＣＰＵ２１の主メモリ、ワークエリア等として機能するＲＡＭである。入力部１８はホストコンピュータ３０００と双方向インターフェース２１を介して印刷状態情報などのステータス情報などの交信を制御し、プリンタ内の情報等をホストコンピュータ３０００に通知可能に構成されている。メモリコントローラ（ＭＣ）２０は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ１４とのアクセスを制御する。操作部１０１２は、表示パネルやキーボードを含んでおり、オペレータへの情報の提供や、オペレータからの指示の入力を行わせる。
【００３０】
＜パターンブラシ形式の最適化＞
図１に、パターンブラシ最適化部３０２３によるパターンブラシ形式の最適化ルーチンのフローチャートを示す。
【００３１】
ステップ１−１はフォーマット変換の有効性判断のサブルーチンである。このステップでは、パターンブラシを適用する描画の種類や、ＤＤＢ１ＢＰＰのパターンブラシとして出力しても他の描画情報に影響を与えないか否かを判断している。詳細な処理は図２，図３，図４のフローチャートに示す。
【００３２】
このステップ１−１のルーチンへの入力情報は以下の情報である。
・ブラシを構成する情報（パターンブラシの場合ＤＤＢパターン情報を含む）
・パターンブラシを適用する描画の種類
・ＤＤＢ１ＢＰＰブラシに変換するための変換用パターンメモリ情報
・描画の種類がビットマップ描画の場合、論理描画の指定（ラスタ操作：ＲＯＰ）とソースビットマップの情報
またこのステップ１−１のルーチンからの出力情報は以下の情報である。
・フォーマット変換が有効かどうかを示すフォーマット変換有効フラグ
ステップ１−２は、ステップ１−１より判断されたフォーマット変換有効フラグをもちいて、フォーマット変換が有効かどうか判断を行うステップである。フォーマット変換によって、他の描画に影響がある。または変換処理に必要なメモリが足りない場合、ここでフォーマット変換処理を終える。
【００３３】
ステップ１−３はパターンブラシを構成するデバイス依存ＤＤＢの構成色数を判断するルーチンである。詳細は図５のフローチャートに示す。このルーチンへの入力情報は以下の情報である。
・パターンブラシを構成するデバイス依存ＤＤＢ
またこのルーチンからの出力情報は以下の情報である。
・デバイス依存ＤＤＢの全構成色を格納する構成色格納配列
ステップ１−４では、ステップ１−３より得られたデバイス依存ＤＤＢの全構成色を格納する構成色格納配列が、３色以上のパターンを有しているか判定する。有している場合にはフォーマット変換処理を終える。２色以下であればブラシフォーマット変換を実行する。
【００３４】
ステップ１−５は、デバイス依存のＤＤＢパターンブラシをＤＤＢ１ＢＰＰパターンブラシに変換する処理である。処理の詳細については図６に示す。
【００３５】
このルーチンへの入力情報は以下の情報である。
・構成色格納配列
・デバイス依存ＤＤＢブラシ
・変換用パターンメモリ（ＤＤＢ１ＢＰＰパターンブラシのパターンとなる）
・背景色、前景色を表すＤＲＡＷＭＯＤＥ構造体
またこのルーチンからの出力情報は以下の情報である。
・変換用パターンメモリ（ＤＤＢ１ＢＰＰパターンブラシのパターンとなる）
・背景色、前景色を表すＤＲＡＷＭＯＤＥ構造体
上記変換用パターンメモリ及び背景色、前景色を表すＤＲＡＷＭＯＤＥ構造体の情報を用いて、ＤＤＢ１ＢＰＰフォーマットのブラシパターン情報が中間データに変換される。
【００３６】
＜変換の有効性判断＞
図２を用いて、ステップ１−１におけるフォーマット変換の有効性判断の処理詳細を説明する。なお、フォーマット変換有効フラグはオフに初期化されているものとする。
【００３７】
ステップ２−１においてはビットマップ描画であるか、それともグラフィクス描画であるか判定される。フォーマット変換の有効性判断処理は、描画の種類により、大きく２つの処理にわけられる。
【００３８】
ステップ２−２はビットマップ描画用のフォーマット変換の有効性判断処理である。図４で詳細は説明する。
【００３９】
ステップ２−３はグラフィクス描画用のフォーマット変換の有効性判断処理である。図３で詳細は説明する。
【００４０】
図３を用いて、ステップ２−３グラフィクス描画用フォーマット変換の有効性判断処理の詳細を説明する。
【００４１】
ステップ３−１では、ブラシの種類の情報を用いて、パターンブラシであるか判断する。ブラシの種類には、パターンブラシの他に、単色のソリッドブラシ、決められた登録パターンを用いるハッチブラシがある。パターンブラシでない場合、フォーマット変換を行う必要がないので、フォーマット変換有効フラグをオフとしたまま処理を終了する。一方、パターンブラシの場合、ステップ３−２に行く。
【００４２】
ステップ３−２では、パターンブラシを構成するＤＤＢパターンがデバイス依存のＤＤＢパターンか判定する。デバイス依存のＤＤＢパターンの場合はステップ３−３へ進み、デバイス依存のＤＤＢパターンではない場合は、フォーマット変換を行う必要がないので、フォーマット変換有効フラグをオフとしたまま処理を終了する。
【００４３】
ステップ３−３では、デバイス依存のＤＤＢパターンの大きさが変換用のパターンメモリ内に格納可能か判断する。格納可能な大きさの場合、ステップ３−４へ行く。格納可能な大きさではない場合、フォーマット変換を行うことができないので、フォーマット変換有効フラグをオフとしたまま処理を終了する。
【００４４】
次に図４を用いて、ステップ２−３におけるビットマップ描画用フォーマット変換の有効性判断処理の詳細を説明する。ビットマップ描画でＤＤＢ１ＢＰＰのソースビットマップ描画を行う際には、ＤＲＡＷＭＯＤＥ構造体４０２の背景色および前景色が必要となる。ステップ４−１及びステップ４−２は、パターンブラシの変換によってＤＲＡＷＭＯＤＥ構造体４０２の背景色、前景色を変更してもよいか判断するステップである。
【００４５】
ステップ４−１ではソースビットマップを使用するか否かを、ビットマップ描画のＲＯＰより判断する。ソースビットマップを使用する場合は、ソースビットマップがＤＤＢ１ＢＰＰである可能性があるのでステップ４−２へ進み、ソースビットマップを用いない場合は、ステップ４−３へ進む。
【００４６】
ステップ４−２では、ソースビットマップがＤＤＢ１ＢＰＰであるか判定する。ソースビットマップがＤＤＢ１ＢＰＰの場合、ＤＲＡＷＭＯＤＥ構造体４０２の背景色，前景色を変更すると、ソースビットマップの背景色，前景色に異常をきたすのでフォーマット変換を行うことは出来ない。よってフォーマット変換有効フラグをオフとしたまま処理を終了する。
【００４７】
ソースビットマップがＤＤＢ１ＢＰＰではない場合、ステップ４−３に進み、図３に示したグラフィクス描画用フォーマットの変換有効性判断を行う。
【００４８】
＜パターンブラシ構成色分析処理＞
図５を用いて、ステップ１−３のパターンブラシ構成色数分析の詳細を説明する。
【００４９】
ステップ５−１は、デバイス依存ＤＤＢパターンブラシの全ピクセルについて、ステップ５−２〜ステップ５−８までの処理を繰り返すためのループの入り口である。これにより、各ピクセルごとにステップ５−２〜５−７までの処理が行われ、その処理がピクセルを変えては繰り返される。
【００５０】
ステップ５−２では、現在のピクセルの色をデバイス依存ＤＤＢパターンより取得する。また、ここでは、ステップ５−４で使用される同色フラグをオフにしておく。
【００５１】
ステップ５−３は、現在までに構成色格納配列に格納されているパターンの全構成色について、ステップ５−４〜５−５までループするための入り口である。これにより、各構成色ごとにステップ５−４の処理が行われ、その処理が構成色を変えては繰り返される。
【００５２】
ステップ５−４では、現在のピクセル色と、現在の構成色とが同じであれば、同色フラグをオンにする。
【００５３】
ステップ５−５はステップ５−３のループの終端である。同色フラグがオンの際はループを抜けてもよい。
【００５４】
ステップ５−６では、同色フラグがオンであるか判定し、オンの場合、新しい構成色を発見したので、ステップ５−７へ分岐する。同色フラグがオフの場合、ステップ５−８へ分岐する。
【００５５】
ステップ５−７では、新しい構成色を発見したので、構成色格納配列の格納最後尾に現在のピクセル色を格納する。
【００５６】
ステップ５−８は、ステップ５−１のループの終端である。３色以上構成色格納配列に格納しようとした場合はループを抜けてもよい。
【００５７】
図５に示したステップ１−３におけるパターンブラシ構成色数分析処理の結果を受けて、ステップ１−４でブラシのフォーマットを変更するかの最終判断を行い、図６に示したように、ステップ１−５でブラシフォーマット変換が行われる。その詳細を説明する。
【００５８】
＜ブラシフォーマット変換＞
ステップ６−１は、デバイス依存ＤＤＢパターンブラシの全ピクセルについて、ステップ６−２から６−６までの処理を繰り返すループの入り口である。これにより、各ピクセルについてステップ６−２から６−５までの処理が行われ、その処理がピクセルを変えつつ繰り返される。
【００５９】
ステップ６−２では、現在のピクセルの色をデバイス依存ＤＤＢパターンより取得する。
【００６０】
ステップ６−３では、現在のピクセルの色を構成色格納配列の第一番目の構成色と比較する。同じ色の場合、ステップ６−４へ分岐し、異なる場合ステップ６−５へ分岐する。
【００６１】
ステップ６−４では、ＤＤＢ１ＢＰＰに変換するための変換用パターンメモリにおける該当ピクセルをオフピクセルに設定する。
【００６２】
ステップ６−５では、ＤＤＢ１ＢＰＰに変換するための変換用パターンメモリにおける該当ピクセルをオンピクセルに設定する。  ステップ６−６はステップ６−１のループの終端である。
【００６３】
ステップ６−７では、構成格納配列の第１番目の色要素を前景色に、第２番目の色要素を背景色にするようＤＲＡＷＭＯＤＥ構造体を書き換える。
【００６４】
以上説明した手順により、ＤＤＢ１ＢＰＰフォーマットに変換しても描画される画像が変わらないようなデバイス依存のＤＤＢパターンブラシ情報（多値ブラシ）を判別し、描画される画像が変わらないと判定された場合にはＤＤＢ１ＢＰＰフォーマット（２値ブラシ）に変換する。こうして、得られる画像を変えることなくパターンブラシ情報を小さくすることができ、スプールファイルを作成する記憶媒体の容量を小さく抑えることができる。さらに、処理時間を短縮することもできる。また、モノクローム画像の描画を特に高速化したプリンタドライバなどでは、その特徴を生かした高速な処理を実現できる。
【００６５】
［変形例］
モノクロームのデバイス依存ＤＤＢパターンブラシをＤＤＢ１ＢＰＰとしてスプールした場合、プリンタドライバ等の描画手段によっては、背景色を黒、前景を白で登録すると通常のモノクロ処理と異なるために、カラーのブラシと解釈して描画処理が遅くなるものがある。そのため背景色を白、前景色を黒に変換する処理を図６のステップに組み込むことも出来る。
【００６６】
このようにして、アプリケーションからの描画要求をスプールして、印刷文書の特徴を分析し、描画手段を最適なものに切り替えるプリンタ・ドライバにおいて、多値ブラシをその構成色数に応じたパターンブラシに変換することにより、中間言語データのスプール量を減らすことが可能になり、印刷に必要なリソースの軽減と中間言語の再生のスピード化という効果を得る。
【００６７】
また、多値パターンブラシより、２値パターンブラシで処理されるほうが早い描画系や、２値ブラシの背景色＝白、前景色＝黒となる時のみ、高速で処理可能なの描画処理系でも、多値パターンブラシを２値パターンブラシに適切に変換して処理可能となるために、印刷の速度を向上させることができる。
【００６８】
なお、本発明は、複数の機器〈例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用しても良い。
【００６９】
また、本発明の目的は、前述した実施形態の機能を実現するプリンタドライバと呼ばれるソフトウェアプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のホスト・コンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【００７０】
この場合、記憶媒体から読み出されたプログラムコード事態が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７１】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７２】
また、ホスト・コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、ホスト・コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００７３】
さらに、記憶媒体から読み出されたプログラムコードが、ホスト・コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【００７４】
本発明を記憶媒体に適応する場合、その記憶媒体には、先に説明した図１乃至図６のフローチャートに対応するプログラムコードを格納することになる。
【００７５】
【発明の効果】
以上説明したように本発明によれば、プリンタドライバに渡されるパターンブラシ情報の形式を、パターンブラシ情報の内容に最適化することで、印刷速度を向上させると共に、処理時間や記憶容量などのシステム資源の浪費を防止できるという効果を奏する。
【図面の簡単な説明】
【図１】本発明のブラシスプール最適化処理のフローチャートである。
【図２】本発明のフォーマット変換有効性判断のフローチャートである。
【図３】本発明のグラフィックス描画用フォーマット変換有効性判断のフローチャートである。
【図４】本発明のビットマップ描画用フォーマット変換有効性判断のフローチャートである。
【図５】本発明のパターンブラシ構成色数分析処理のフローチャートである。
【図６】本発明のブラシフォーマット変換処理のフローチャートである。
【図７】ＤＤＢのフォーマットを表す模式図である。
【図８】本発明の印刷システム全体の基本構成を示すブロック図である。
【図９】従来の印刷システム全体の基本構成を示すブロック図である。
【図１０】印刷システムのブロック図である。
【符号の説明】
１００  印刷装置
２００  ホスト・コンピュータ
２０１  アプリケーション
２０２  グラフィクス・サブ・システム
２０２０  基本ＯＳソフト
２０２１  ＧＤＩ
２０２２  プリンタ・ドライバ
２０２３  ＰＤＬサブドライバ
２０２４  モノクロ１ＢＰＰサブドライバ
２０２５  ＹＭＣＫ４ＢＰＰサブドライバ
２０２６  ＲＧＢ２４ＢＰＰサブドライバ
２０２７  バンドメモリ
２０３  スプールサブシステム
２０２９  外部Ｉ／Ｆ
２２０  ディスプレイ・モニタ
２１０  キーボード
２１１  マウス
３００  ワークバッファ
３０１  デスプーラ
３０２３  パターンブラシ最適化手段
４００  フォーマット情報
４０１  ビットパターン情報
４０２  ピクセル色情報
４０３  ビットパターン情報＋ピクセル色情報
【図１】
0004467715.tif 000002
【図２】
0004467715.tif 000003
【図３】
0004467715.tif 000004
【図４】
0004467715.tif 000005
【図５】
0004467715.tif 000006
【図６】
0004467715.tif 000007
【図７】
0004467715.tif 000008
【図８】
0004467715.tif 000009
【図９】
0004467715.tif 000010
【図１０】
0004467715.tif 000011