(57)【特許請求の範囲】
【請求項１】
描画命令を展開して、ビットマップデータ及び該ビットマップデータに対応する画素毎の属性情報を作成する画像処理方法であって、
前記描画命令で指定された論理演算処理に基づいて属性情報に対する操作内容を決定する操作決定工程と、
該決定された操作内容に基づいて属性情報用の論理演算処理を作成する論理演算作成工程と、
前記属性情報用の論理演算処理を実行することによって属性情報を作成する論理演算工程と、
前記属性情報が反転属性を有していれば該属性情報を反転する反転工程と、
を有することを特徴とする画像処理方法。
【請求項２】
前記属性情報は、前記描画命令が有する属性及び前記反転属性のそれぞれを示す情報を有することを特徴とする請求項１記載の画像処理方法。
【請求項３】
前記属性情報は、前記描画命令が有する全ての属性及び前記反転属性のそれぞれを１ビットで示すことを特徴とする請求項２記載の画像処理方法。
【請求項４】
前記描画命令の属性は、オブジェクトの種類に対応する属性であることを特徴とする請求項２又は３記載の画像処理方法。
【請求項５】
前記操作決定工程は、
前記描画命令で指定された論理演算処理を解析する解析工程と、
該解析結果に基づいて前記描画命令の示す属性に対応する付加属性用操作を決定する付加属性用操作決定工程と、
該付加属性用操作に基づいて、前記描画命令の示す属性以外の属性に対応する非付加属性操作を決定する非付加属性用操作決定工程と、
を有することを特徴とする請求項１記載の画像処理方法。
【請求項６】
前記解析工程においては、前記描画命令で指定された論理演算処理、及び論理演算処理対象となるパターンの色情報に基づいて、付加属性用操作を決定することを特徴とする請求項５記載の画像処理方法。
【請求項７】
前記操作決定工程においては、前記描画命令が論理演算処理の指定を有していない場合には、上書きとしての論理演算処理指定があるものとして、属性情報に対する操作内容を決定することを特徴とする請求項１記載の画像処理方法。
【請求項８】
更に、前記描画命令に基づいて属性情報用のソース及びパターンを作成するソース作成工程を有し、
前記論理演算工程においては、前記属性情報用のソース及びパターンに基づいて前記論理演算処理を実行することを特徴とする請求項１記載の画像処理方法。
【請求項９】
前記論理演算工程において作成された属性情報は、属性情報用のソースに対して前記操作決定工程において決定された操作内容を実行した結果と同様であることを特徴とする請求項８記載の画像処理方法。
【請求項１０】
前記ビットマップデータは、多値ビットマップデータであることを特徴とする請求項１記載の画像処理方法。
【請求項１１】
更に、前記反転工程を経た前記属性情報に基づき、前記描画命令を展開したビットマップデータの画素毎に色処理を施す色処理工程を有することを特徴とする請求項１記載の画像処理方法。
【請求項１２】
描画命令を展開して、ビットマップデータ及び該ビットマップデータに対応する画素毎の属性情報を作成する画像処理装置であって、
前記描画命令で指定された論理演算処理に基づいて属性情報に対する操作内容を決定する操作決定手段と、
該決定された操作内容に基づいて属性情報用の論理演算処理を作成する論理演算作成手段と、
前記属性情報用の論理演算処理を実行することによって属性情報を作成する論理演算手段と、
前記属性情報が反転属性を有していれば該属性情報を反転する反転手段と、
該ビットマップデータに対して前記属性情報に基づく色処理を施す色処理手段と、
を有することを特徴とする画像処理装置。
【請求項１３】
画像処理装置と画像形成装置を接続した画像処理システムであって、該画像処理装置は、
描画命令を展開してビットマップデータを作成するビットマップ作成手段と、該ビットマップデータに対応する画素毎の属性情報を作成する属性情報作成手段と、該ビットマップデータに対して前記属性情報に基づく色処理を施す色処理手段と、該色処理後のビットマップデータを前記画像形成装置へ出力する出力手段と、を有し、前記属性情報作成手段は、
該描画命令で指定された論理演算処理に基づいて属性情報に対する操作内容を決定する操作決定手段と、
該決定された操作内容に基づいて属性情報用の論理演算処理を作成する論理演算作成手段と、
前記属性情報用の論理演算処理を実行することによって属性情報を作成する論理演算手段と、
前記属性情報が反転属性を有していれば該属性情報を反転する反転手段と、
を有することを特徴とする画像処理システム。
【請求項１４】
描画命令を展開して、ビットマップデータ及び該ビットマップデータに対応する画素毎の属性情報を作成する画像処理の制御プログラムであって、
前記描画命令で指定された論理演算処理に基づいて属性情報に対する操作内容を決定する操作決定工程のコードと、
該決定された操作内容に基づいて属性情報用の論理演算処理を作成する論理演算作成工程のコードと、
前記属性情報用の論理演算処理を実行することによって属性情報を作成する論理演算工程のコードと、
前記属性情報が反転属性を有していれば該属性情報を反転する反転工程のコードと、
を有することを特徴とする制御プログラム。
【請求項１５】
請求項１４記載の制御プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、描画命令を展開してビットマップデータ及び該ビットマップデータに対応する画素毎の属性情報を作成する画像処理方法及び画像処理装置、及び画像処理システムに関する。
【０００２】
【従来の技術】
一般に高画質出力を可能とする、レーザビームプリンタ等の画像出力デバイスにおいては、ＯＳからの描画命令を受けてＲＧＢ計２４ビットの多値ビットマップを多値ビットマップ領域に展開し、全ての描画命令の処理が終了した時点で、該多値ビットマップ領域全体に対して色処理（色補正、色変換、ｎ値化等）を施すことによって、デバイスに依存した色空間上のビットマップに変換していた。
【０００３】
しかしながら、展開された多値ビットマップにおいてはピクセル毎の属性情報を特に有していないため、ある任意のピクセルに対して、どのオブジェクト（文字、グラフィクス、イメージ）として描画されたか、あるいはオブジェクトのエッジ部分なのか中心部分なのか等の判定はできない。従って、全てのピクセルに対して同様の色処理が施されてしまうため、必ずしも最適な色処理が行えるものではなかった。このような色処理の概念を図１２に示す。
【０００４】
そこで、任意のピクセル毎に最適な色処理を可能とするための方法として、全てのピクセルに対して属性情報を持たせる方法が知られている。
【０００５】
例えば、最も単純な方法としては、ＲＧＢ２４ビットからなる１ピクセル対して、さらに属性情報用に８ビットを確保することによって、１ピクセルをＲＧＢαの計３２ビットデータとして処理を行う方法がある。
【０００６】
また、１ピクセルはＲＧＢ２４ビットのままとして、別領域に属性情報用メモリを確保する方法がある。このような属性情報用メモリを用いた色処理の概念を図１３に示す。この方法によれば、多値ビットマップ領域内のピクセルが更新される度に、該ピクセルに対応する属性情報格納領域も更新される。
【０００７】
このように、描画コマンドを多値ビットマップ領域に展開する際に、全てのピクセルに属性情報を持たせておくことによって、各ピクセル毎に該属性情報を考慮して最適な色処理を施すことが可能となる。
【０００８】
【発明が解決しようとする課題】
上述した全ピクセルが属性情報を備える方法によれば、描画オブジェクトが全て上書きされていく場合には、問題なく最適な色処理を行うことができる。しかしながら、論理演算処理が指定された描画オブジェクトを処理する場合には、属性情報を正確に格納することができないという問題があった。
【０００９】
この問題点を、図１４を参照して説明する。図１４においては、イメージオブジェクトとグラフィクスオブジェクトが、ビットマップに展開した際に互いに重なり合う部分を有する場合を示し、グラフィクスオブジェクトにはその属性情報１０２に対して、「下地がない場合のみ描画」を指示する論理演算が指定されている。この場合、最終的にビットマップが展開されるデバイス依存のビットマップ領域２００においては、イメージとグラフィクスの重なった部分にはイメージ用の色処理が施されているべきである。
【００１０】
しかしながら、上記従来の属性情報の格納方法によれば、図１４の属性情報格納領域１００に示すように、イメージオブジェクトの属性情報１０１が格納された後に、グラフィクスオブジェクトの属性情報１０２が上書きされてしまうことがある。すると色処理を施す際に、イメージ属性を有すると判断されるべきであるピクセルが、グラフィクス属性を有するものと判断してしまうため、最適な描画は行えない。
【００１１】
本発明は上記問題を解決するためになされたものであり、論理演算処理指定を伴った描画を行う際にも、ピクセル毎の属性に適した処理を行って高品位出力を得る画像処理方法及び画像処理装置、及び画像処理システムを提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するための一手法として、本発明の画像処理方法は以下の工程を備える。
【００１３】
すなわち、描画命令を展開して、ビットマップデータ及び該ビットマップデータに対応する画素毎の属性情報を作成する画像処理方法であって、前記描画命令で指定された論理演算処理に基づいて属性情報に対する操作内容を決定する操作決定工程と（実施形態において図11に示すS201〜S205に対応）、該決定された操作内容に基づいて属性情報用の論理演算処理を作成する論理演算作成工程と（同、S206に対応）、前記属性情報用の論理演算処理を実行することによって属性情報を作成する論理演算工程と（同、S210に対応）、前記属性情報が反転属性を有していれば該属性情報を反転する反転工程と（同、S105に対応）、を有することを特徴とする。
【００１４】
【発明の実施の形態】
以下、本発明に係る一実施形態について、図面を参照して詳細に説明する。
【００１５】
＜第１実施形態＞
図１、図２、図３は、本実施形態の画像処理方法が適用される情報処理システムの構成例を示すブロック図である。
【００１６】
図１において、１は中央処理装置であり、本実施形態の画像処理方法を実現する制御プログラムおよびその関連データが記憶されているＦＤ，ＣＤ−ＲＯＭ，ＩＣメモリカード等の記憶媒体を、システムに接続された媒体読取装置６によって読み込む。そして該制御プログラムに基づき、補助記憶装置３から主記憶装置２にロードされたシステムプログラムやアプリケーションプログラムによって入力装置４を介して入力される画像情報を処理し、出力装置５やプリンタ７に出力する。画像情報は、補助記憶装置３や、媒体読取装置６によって読み取られる記憶媒体に格納されていても良い。
【００１７】
なお、本実施形態においては、出力装置５はディスプレイなどの表示装置、または通信インタフェース装置とし、プリンタ７と区別する。また、入力装置４はキーボード、ポインティングデバイス等で構成されているものとする。さらに補助記憶装置３は、ハードディスク、光磁気ディスクで構成されるものであってもいいし、これらの組み合わせで構成されるものであってもよい。また、それぞれの装置がネットワークを介して接続されていてもよい。
【００１８】
図２は、媒体読取装置６に格納されていた制御プログラム及びその関連データが中央処理装置１に読み込まれ、入力装置４を介して入力された印刷命令に基づいてプリンタ７へ印刷用データを送るまでの、印刷処理を示す概念図である。アプリケーション２１、ドライバ２２ともに、ＯＳ２０の制御下で機能する。
【００１９】
図３は、図２に示すドライバ２２における機能構成を示すブロック図である。ＯＳ２０から描画命令を受けると、該描画命令を多値のビットマップに展開して多値ビットマップ領域２３０に格納する（Ｓ２２１）。このとき同時に、描画オブジェクトの属性を示す属性情報を属性情報格納領域２３１に格納する（Ｓ２２２）。ここで属性情報とは、オブジェクトの種類（イメージ、グラフィクス、テキスト等）やオブジェクトの端部を示すエッジ情報等、最適な色処理を行う上で必要とされる情報である。
【００２０】
なお、図３においては多値ビットマップと属性情報を別領域に格納する例を示しているが、例えば多値ビットマップ（ＲＧＢ２４ビット）と属性情報（α８ビット）を結合して１つのビットマップ（ＲＧＢα３２ビット）としても、同様の効果が得られる。
【００２１】
全ての描画命令を処理したら、多値ビットマップと属性情報の合成を行って、様々な属性毎の多値ビットマップデータを抽出する（Ｓ２２３）。そして抽出されたビットマップデータに対し、属性毎に適した色処理を行なって合成することにより、デバイス依存ビットマップ２３２を作成する（Ｓ２２４）。このデバイス依存ビットマップ２３２を、プリンタ７へ出力する（Ｓ２２５）。
【００２２】
なお、本実施形態は情報処理システム内のプリンタ７に対するドライバ２２において、ビットマップ展開及び色処理を行う例について説明するが、プリンタ７内部で該処理を行う場合であっても、本発明は同様に成立する。
【００２３】
以下、上記情報処理システムにおける本実施形態の処理について、図４乃至図１０を参照して詳細に説明する。
【００２４】
図４は、多値ビットマップの１ピクセル毎に、属性情報格納領域２３１に格納される属性情報のフォーマット例を示す図である。本実施形態においては、属性情報をオブジェクトの種類（全３種類：イメージ、グラフィクス、テキスト）とし、それぞれの属性を表す計３ビットと、後述する反転属性を表す１ビットの、最低４ビットによって、１ピクセルあたりの属性情報が構成される。もちろん、予備ビットを加えて例えば８ビット／ピクセル（残りの４ビットは使用しない）としても良いし、１ピクセルあたりの属性情報格納領域２３１もビット順列に限らず、例えば線順列にしても良い。
【００２５】
図５は、本実施形態の特徴である、論理演算処理指定を有する描画オブジェクトを処理する際に、その属性情報を格納する際の各種操作内容を示す図である。
【００２６】
本実施形態においては、論理演算処理指定のある描画オブジェクトの全てに対し、属性情報を属性情報格納領域２３１に格納する際に、以下に示す４種類の操作（オペレート）のいずれかを行う。
【００２７】
操作１：属性情報格納（ターゲットとなる属性のビットのみを立てる）
操作２：クリア（属性情報の全ビットを落とす）
操作３：非操作（属性情報の全ビットをそのまま保持）
操作４：反転（属性情報の全ビットを反転する）
図５は、処理対象ピクセルが下地を示す場合に、既にグラフィクス属性を示すビットが立っている属性情報に対する各操作の具体例を示し、特に操作１においては、新たにイメージ属性を格納する例を示している。なお、同図においては「ON」表記によりビットが立った状態を示す。操作１によれば、イメージ属性を格納することによって、下地であったグラフィクス属性はクリアされることが分かる。
【００２８】
ここで図６、図７、図８を参照して、論理演算処理が指定された描画オブジェクト処理に伴って属性情報を格納する際に、上記４種類の操作を振り分ける方法、すなわち、いずれかの操作を決定する方法について説明する。
【００２９】
先ず説明を容易にするために、図６を用いて一般的な論理演算処理について説明する。一般に論理演算とは、パターン、ソース、デスティネーション（以下、単にデストと称する）の各ビットに基づく演算結果を示すものであり、該演算結果（以降、単に「結果」と称する）が新たにデストに格納される。
【００３０】
結果rxxx（各xはパターン、ソース、デストの値（0/1）を示す）としては、パターン、ソース、デストの全組み合わせ（８通り）に対し、任意に０か１となり得る。つまりこの場合、２の８乗である全２５６通りの論理演算処理があり得る。この論理演算処理を一意に定めるのが論理演算コードであり、図６における結果r000,r001,r010,r011,r100,r101,r110,r111の８ビットを下位から並べることによって、論理演算コードを得ることができる。図６の例ではすなわち、ソースコピーが11001100（=0xCC），パターンコピーが11110000（=0xF0）である例を示している。
【００３１】
論理演算の例として、ソースコピー（ソースのデストへの上書き）とは、パターン、デストの組み合わせに関わらずソースの示すビットがそのまま結果（デスト）となることを意味し、パターンコピー（パターンのデストへの上書き）とは、パターンの示すビットがそのまま結果（デスト）となることを意味する。
【００３２】
図７Ａ〜図７Ｄは、本実施形態において描画オブジェクトで指定された論理演算処理（論理演算コード）に基づき、その属性情報に対する操作内容（以下、属性情報用操作と称する）を決定する例を示す図である。
【００３３】
上述したように、論理演算処理は論理演算コードによって指定される。これは図６に示す結果を一意に決定できるものであれば如何なるものであっても良いが、ここでは、マイクロソフト社のWindowsにおいて提供される論理演算コードを例として説明する。該コードによれば、０がビットの立った状態（ビットON）、１がビットの立っていない状態（ビットOFF）を示す。
【００３４】
図７Ａ，図７Ｂを参照して、属性情報のうち対象となる属性（論理演算処理指定がなければ本来ビットを立てるべき属性）のビットに対して実行される操作内容について説明する。
【００３５】
描画オブジェクトに付随してきたパターンが白を示すのであれば、図６に示した結果r1xxが属性情報用操作の決定に使用されるビットであり、白以外であれば、結果r0xxが使用されるビットである。これは、白（ＲＧＢ値で0xFFFFFFFF）に相当するパターン値は、論理演算処理においては非存在、すなわち何もない旨を示すためである。ここで図７Ａは、パターンが白以外を示していた場合の結果r0xxを示している。これはすなわち、図６に示した論理演算の一般形式において、パターン値が０である場合に相当する。
【００３６】
図７Ｂは、図７Ａに示す結果r0xxに基づいて属性情報用操作が決定される様子を示す図であるが、以下においては、結果r0xx及びr1xxの両方を含む、結果rxxxに基づく決定方法について説明する。
【００３７】
まず、rx00，rx01の組み合わせ、及びrx10，rx11の組み合わせを確認する。すなわち、(rx00,rx01)及び(rx10,rx11)がとり得る値の組み合わせはそれぞれ、（0,0）,(0,1)，(1,0)，(1,1)のいずれかであり、これらが、図５に示す４種類の操作に以下のように割り当てられる。
【００３８】
(0,0)  →  ビットがON          →  操作１（属性情報格納）
(1,1)  →  ビットがOFF         →  操作２（クリア）
(0,1)  →  ビットがデストと同じ→  操作３（何もしない(非操作))
(1,0)  →  ビットがデストと逆  →  操作４（反転）
となる。これら操作のいずれかが、ソースビットが０の場合（rx00,rx01）と１の場合（rx10,rx11）で一意に決定される。
【００３９】
すなわち図７Ｂの例においては、ソースのビット値が０（ON）である場合に、対象となる属性のビット操作（属性情報用操作）としてTarget_SrcONが得られ、ソースのビット値が１（OFF）である場合に、同様にTarget_SrcOFFが得られることを示す。このTarget_SrcON及びTarget_SrcOFFがそれぞれ、上記（0,0）,(0,1)，(1,0)，(1,1)のいずれかとなり、該値に応じて操作が決定される。
【００４０】
なお、描画命令において論理演算処理が指定されていない場合には、単なる上書き処理としての論理演算コードが指定されているものとして、操作を決定する。
【００４１】
ただし、このように決定された属性情報用操作を実行する際には、描画オブジェクトに対するソースを属性情報用ソースに変換する必要がある。具体的には、描画オブジェクトにおいてソースを有するピクセルに関し、そのパターンが白を示すのであれば、対応する属性情報用ソースとして全ての属性をOFF（Windowsにおいては１）とし、逆に白以外を示すのであれば属性情報用ソースの全ての属性をON（Windowsにおいては０）とすれば良い。この例を図７Ｃに示す。
【００４２】
上述したようにして決定される属性情報用操作は、属性情報のうち対象にしている属性のビット（対象属性ビット）に関するものである。対象属性以外のビット（非対象属性ビット）に関する操作は、決定された対象属性ビットの操作に応じて、以下のように一意に決定される。
【００４３】
対象属性ビット              非対象属性ビット
操作１（属性情報格納）→    操作２（クリア）
操作２（クリア）      →    操作２（クリア）
操作３（非操作）      →    操作３（非操作）
操作４（反転）        →    操作４（反転）
図７Ｄに、非対象属性ビットの操作を決定する様子を示す。すなわち図７Ｂと同様に、ソースのビット値が０（ON）である場合に、対象属性のビット操作としてTarget_SrcONが得られ、ソースのビット値が１（OFF）である場合に、同様にTarget_SrcOFFが得られる。そして、対象属性ビット操作Target_SrcON／Target_SrcOFFに応じて、上述したように非対象属性ビット操作NonTarget_SrcON／NonTarget_SrcOFFが操作２〜４のいずれかに決定され、操作１となることはない。
【００４４】
論理演算処理が指定された描画オブジェクトについて、その属性情報用のソースに対して上述したような操作（操作１〜４）を各属性毎に施こし、更に、図９で示すような反転処理を行うことによって、正確な属性情報を得ることができる。
【００４５】
本実施形態においては、上述した属性情報に対する操作１〜４を単純に実行するのではなく、該操作に基づいて論理演算処理を作成し、該論理演算処理によって更に効率的に実行することを特徴とする。すなわち、属性情報用のソースに対して、対象属性ビット及び非対象属性ビット用に決定された操作を施した場合と、該操作に基づいて作成された論理演算処理を実行した場合とで、同様の結果が得られる。
【００４６】
以下、本実施形態における属性情報に対する論理演算処理について、図８Ａ〜図８Ｃを参照して説明する。
【００４７】
上述した属性情報に対する操作は、各ピクセルの属性情報毎、さらにその属性ビットや属性情報用ソースに応じて、操作１〜４を切り替える必要がある。本実施形態においてはこの切り換えを効率良く行うために、属性情報に対する各操作を、図６に示した一般的な論理演算と同様の形式、すなわち属性情報用パターン及び属性情報用ソースを用いて表すとする。このような効率的な処理を実行する際には、図８Ａに示すように属性情報用パターンを用意する必要がある。すなわち属性情報用パターンは、ある描画オブジェクトの属性（この例ではイメージ属性）を示すビットをON、それ以外をOFFにしたものである。
【００４８】
図８Ｂは、図８Ａを参照して説明した属性情報用パターン、図７Ｃを参照して説明した属性情報用ソース、及び図７Ｄを参照して説明した属性情報用操作、の組み合わせを、上述した論理演算の一般形式（図６）によって示した例であり、すなわち、本実施形態における属性情報用の論理演算コードを示す図である。図８Ｂにおける「結果」がすなわち論理演算結果であり、その値（OFF or ON）は図６に示す結果rxxxx（0 or 1）に相当し、図７Ｂ及び図７Ｄで示した対象ビット操作（Target_SrcON，Target_SrcOFF）及び非対象ビット操作（NonTarget_SrcON，NonTarget_SrcOFF）の内容によって、図８Ｃに示すように一意に決定される。
【００４９】
例えば、図８Ｂにおいて属性情報用パターンがOFFであれば、非対象属性ビットに対する操作（図７Ｄに示すNonTarget_SrcOFF，NonTarget_SrcON）に基づき、図８Ｂの「結果」は図８Ｃに示すように決定される。すなわち、非対称属性ビットに対する操作として操作２（クリア）が設定されていれば、ビットを落とすために属性情報格納領域（デスト）に関わらず「結果」はOFFとなる。また、操作３（非操作）が設定されていればデストのビットがそのまま（OFF又はON）使用される。また、操作４(反転)が設定されていればデストのビットを反転した結果（ON又はOFF）となる。なお、属性情報用パターンがOFFであれば非対象属性ビットに対して操作１（属性情報格納）は設定されないため、操作１については考慮する必要がない。
【００５０】
一方、図８Ｂにおいて属性情報用パターンがONであれば、対象属性ビットの操作（図７Ｂに示すTarget_SrcOFF，Target_SrcON）に基づき、図８Ｂの「結果」は、上述した属性情報用パターンがOFFの場合と同様に、図８Ｃのように決定される。但しこの場合には、非対象属性ビットに対して操作１（属性情報格納）が設定されうる。操作１が設定されていれば属性情報用パターンがONであるため、「結果」はデスト（属性情報格納領域）に関わらずONとなる。
【００５１】
本実施形態においては、図８Ｂに示す「結果」により一意に決定されるものを属性情報用論理演算コードとして、一般的な論理演算処理と同様の処理を行うことができる。すなわち、図８Ｂに示す「結果」のOFF/ONを、図６に示す結果rxxxの0/1に置き換えれば良い。これにより、属性情報における対象属性ビットを意識することなく、一度に演算処理を行うことが可能となることが分かる。
【００５２】
図８Ｂに示す論理演算により得られる「結果」（演算結果）がすなわち、属性情報として属性情報格納領域２３１に格納される。なお、このように論理演算によって得られた属性情報は、属性情報用のソースに対して属性情報用の操作をそれぞれ施した場合と同様の結果となる。
【００５３】
以上により全ての描画オブジェクトの処理、すなわちそれに伴う属性情報に対する論理演算処理が終了すると、次に本実施形態の特徴であるビットの反転処理を行う。以下、図９を参照してこの反転処理について説明する。
【００５４】
全ての描画オブジェクトの処理が終了した時点において、属性情報格納領域２３１内に格納されたピクセル毎の属性情報が示すビットパターン（属性情報）は、以下に示す４種類の状態Ａ〜Ｄのいずれかである。
【００５５】
状態Ａ：全てOFF（何も描画されず初期値のまま）
状態Ｂ: １属性のみON（最終操作が操作１（属性情報格納））
状態Ｃ: １属性のみOFF（状態Ｂ後に最終操作が操作４（反転））
状態Ｄ: 全てON（状態Ａ後に最終操作が操作４（反転））
これら各状態のビットパターンにおいて、反転ビットがONである場合、すなわち状態Ｃ及びＤの場合のみ、全４ビットを反転させる。このとき、反転ビットでその他の属性ビットに対する排他的論理和（XOR）を取れば、反転ビットのON/OFFや他の属性ビットに関わらず、処理を一度に行うことができる。
【００５６】
図９は、属性情報格納領域２３１内のビットパターンの取りうる上記状態Ａ〜Ｄについて、状態Ｃ，Ｄをなすパターンに反転処理を施した結果を示す
以上説明したように、全ての描画オブジェクトの処理が終了した後、属性情報格納領域２３１に格納されたビットパターンに対して上記反転処理を施すことにより、理想的な属性情報が完成する。
【００５７】
図１０は、多値ビットマップ領域２３０に展開された多値ビットマップに対する、属性情報格納領域２３１内で完成した属性情報を参照した色処理（Ｓ２２３，Ｓ２２４）の概要を示す図である。同図に示すように本実施形態においては、描画オブジェクトをビットマップ展開した多値ビットマップ領域２３０から、属性情報格納領域２３１内の属性情報に基づいて、属性（オブジェクト種類）毎に多値ビットマップを抽出する。すなわち、グラフィクス用多値ビットマップ２４１と、テキスト用多値ビットマップ２４２、及びイメージ用多値ビットマップ２４３を抽出する。
【００５８】
そして、抽出した各領域に対して、それぞれの属性に適した色処理等を施し、その結果を合成することによって、デバイスに依存したビットマップ２３２を作成する。なお、多値ビットマップ領域２３０から属性毎の多値ビットマップを抽出するのではなく、多値ビットマップ領域２３０内のピクセル毎に、属性情報を参照しつつ色処理等を施しても良い。
【００５９】
上記色処理等は、図１１Ａ，Ｂに示すフローチャートに示す処理がプログラム化され、該プログラムが実行されることによって、実現される。以下、図１１Ａ，Ｂのフローチャートを参照して、本実施形態に係る印刷処理の全体の流れについて説明する。
【００６０】
まず、入力装置４から印刷実行命令が入力されると、補助記憶装置３から主記憶装置２上に読み込まれたＯＳ２０、ドライバ２２やアプリケーション２１のうち、ＯＳ２０がそのメッセージを受け取る。ＯＳ２０は現在アクティブであるアプリケーション２１に、該印刷実行メッセージを送る。
【００６１】
アプリケーション２１は、印刷実行メッセージをＯＳ２０が認識可能なコマンドに変換して、印刷対象データやコマンドのメッセージをＯＳ２０に送る。するとＯＳ２０は、該メッセージを更にドライバ２２の認識可能なコマンドに変換してドライバ２２に送る。ドライバ２２においては、図１１Ａ，Ｂのフローチャートに示す処理が行われる。
【００６２】
まずＯＳ２０から初期化用のメッセージが送られてきたら、ドライバ２２は図３に示す多値ビットマップ領域２３０や属性情報格納領域２３１をアロケートして、その内容をクリアしておく（Ｓ１０１）。
【００６３】
次にドライバ２２は、ＯＳ２０から送られてくる描画命令に従い、多値ビットマップを展開して多値ビットマップ領域２３０に格納し（Ｓ１０２）、更に描画命令の属性を属性情報として、属性情報格納領域２３１に格納する（Ｓ１０３）。
【００６４】
ここで、ステップＳ１０３に示す属性情報格納処理について、図１１Ｂを用いて詳細に説明する。
【００６５】
本実施形態においては、描画命令の属性情報を属性情報格納領域２３１に格納することを特徴とする。そこでまず、描画命令の示す属性を判断する（Ｓ２０１）。そして該描画命令におけるパターンは白であるか又は白以外であるかを判定し（Ｓ２０２）、該判定結果に基づいて、該描画命令で指定されている論理演算コードの適当な個所を抽出し、図７Ａ〜図７Ｄを参照して説明したように、付加属性（対象属性ビット）に対する操作（Target_SrcON/Target_SrcOFF）を作成する（Ｓ２０３，Ｓ２０４）。ここではすなわち、図７Ｂに示すように、描画命令の属性を属性情報格納領域２３１に展開する際の操作が作成される。
【００６６】
なお、描画命令において論理演算処理が指定されていない場合は、単なる上書き処理としての論理演算コードが指定されているものとして、操作を作成する。
【００６７】
続いて、上記作成された描画命令の属性に対する操作に基づき、図７Ｄに示すように、描画命令の属性以外の属性（非対象属性ビット）に対する操作（NonTarget_SrcON/NonTarget_SrcOFF）を作成する（Ｓ２０５）。
【００６８】
これら作成された操作に基づき、属性情報の全ビットに対して該操作をそれぞれ施すことによっても、正確な属性情報を作成することができる。しかしながら本実施形態においては、図８Ａ〜図８Ｃを参照して説明したように、属性情報の各ビット内容に関わらず一括して演算処理を行うことによって、処理の効率化を実現することを特徴とする。
【００６９】
そこで、図８Ｂ，図８Ｃに示したように、ステップＳ２０３，Ｓ２０４，Ｓ２０５で作成された各操作に基づいて、属性情報用の論理演算コードを作成する（Ｓ２０６）。
【００７０】
そして、図７Ｃに示したように、描画オブジェクトに基づいて属性情報用ソースを作成する（Ｓ２０７）。さらに図８Ａに示したように、図４に示す属性情報のフォーマットにおいて描画命令の属性を示すビットをON、それ以外をOFFにした形式により、属性情報用パターンを作成する（Ｓ２０８）。また、描画命令を多値ビットマップに展開する際に、属性情報格納領域２３１において多値ビットマップの各ピクセルに対応した領域を抽出し、これを属性情報用デスティネーションとする（Ｓ２０９）。
【００７１】
そして図８Ｂ及び図８Ｃに示したように、ステップＳ２０９で作成した属性情報用論理演算コードを用いて、上記属性情報用ソース、属性情報用パターン、属性情報用デスティネーションに基づく論理演算処理を実行し（Ｓ２１０）、得られた演算結果を属性情報用デスティネーションに格納する（Ｓ２１１）。
【００７２】
以上説明したステップＳ２０１〜Ｓ２１１の処理によって、属性情報の格納処理（Ｓ１０３）が完了し、処理は図１１Ａに戻る。
【００７３】
全ての描画命令に対して多値ビットマップへの展開、及びそれに対応する属性情報の格納が完了すると（Ｓ１０４）、図９に示したように属性情報格納領域２３１内の反転ビットを考慮し、属性情報の反転属性を変換することによって正確な属性情報を生成する（Ｓ１０５）。
【００７４】
そして該属性情報に従い、属性毎に多値ビットマップを抽出し（Ｓ１０６）、その属性に最適な色処理等の処理を行い（Ｓ１０７）、図１０に示すようにデバイス依存ビットマップ２３２を作成する（Ｓ１０８）。
【００７５】
全ての属性に対してステップＳ１０６〜Ｓ１０８の処理を行い、各属性により生成されるデバイス依存ビットマップを合成していくことにより（Ｓ１０８）、描画命令に対してどのような論理演算処理が指定されていた場合であっても、最適な出力結果を得ることが可能となる。
【００７６】
作成されたデバイス依存ビットマップをプリンタ７へ転送する（Ｓ１１０）ことにより、本実施形態における印刷処理が終了する。
【００７７】
なお、本実施形態におけるプリンタ７としては、デバイス依存ビットマップに基づく出力が可能であればどのような方式によるものであっても良く、またバインディングプリンタであってもノンバインディングプリンタであってもよい。
【００７８】
また、本実施形態においては主に描画命令がその属性としてイメージ、テキスト、グラフィクスの３属性を取りうる場合を例として説明したが、図４に示す属性情報のビットを追加することにより、扱う属性の数の増減が可能である。
【００７９】
以上説明したように本実施形態によれば、論理演算処理の指定のある描画オブジェクトも含めて、全てのピクセルに対して正確な属性情報を格納することができる。従って、ピクセル毎に最適な色処理等を施すことが可能となり、高品位な出力結果を得ることができる。
【００８０】
なお、本実施形態においては描画オブジェクトを展開して多値ビットマップを得る例について説明したが、これは画素の色情報を示すデータであれば任意のフォーマットで良く、例えば２値データであっても本発明は同様に適用される。
【００８１】
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００８２】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８４】
【発明の効果】
以上説明したように本発明によれば、論理演算処理指定を伴った描画を行う際にも、ピクセル毎の属性に適した処理を行って高品位出力を得ることができる。
【図面の簡単な説明】
【図１】本発明に係る一実施形態における情報処理システムの構成例を示すブロック図である。
【図２】本システムにおける印刷処理の概念図である。
【図３】本システムにおけるドライバの機能構成を示すブロック図である。
【図４】本実施形態における属性情報のフォーマット例を示す図である。
【図５】属性情報を格納する際の操作内容を示す図である。
【図６】一般的な論理演算処理を示す図である。
【図７Ａ】白以外のパターンに対する演算結果の例を示す図である。
【図７Ｂ】対象属性ビットに対する操作の決定方法を説明する図である。
【図７Ｃ】属性情報用ソースの作成方法を示す図である。
【図７Ｄ】非対象属性ビットに対する操作の決定方法を説明する図である。
【図８Ａ】属性情報用パターンの作成方法を示す図である。
【図８Ｂ】属性情報用論理演算コードの例を示す図である。
【図８Ｃ】属性情報用論理演算コードにおける各操作の適用方法を示す図である。
【図９】属性情報に対する反転処理を示す図である。
【図１０】多値ビットマップに対する属性情報を参照した色処理の概要を示す図である。
【図１１Ａ】本実施形態に係る印刷処理の全体の流れを示すフローチャートである。
【図１１Ｂ】属性情報格納処理の詳細を示すフローチャートである。
【図１２】従来の描画オブジェクトの多値ビットマップ展開及び色処理の概念を示す図である。
【図１３】従来の、多値ビットマップメモリとは独立した属性情報用メモリを用いた色処理の概念を示す図である。
【図１４】従来の属性情報用メモリを用いると必ずしも最適な色処理が施されたない例を示す図である。
【符号の説明】
１  中央処理装置
２  主記憶装置
３  補助記憶装置
４  入力装置
５  出力装置
６  媒体読取装置
７  プリンタ
８  ＲＯＭ
２０  ＯＳ
２１  アプリケーション
２２  ドライバ
２３０  多値ビットマップ領域
２３１  属性情報格納領域
【図１】
0003733297.tif 000002
【図２】
0003733297.tif 000003
【図３】
0003733297.tif 000004
【図４】
0003733297.tif 000005
【図５】
0003733297.tif 000006
【図６】
0003733297.tif 000007
【図７Ａ】
0003733297.tif 000008
【図７Ｂ】
0003733297.tif 000009
【図７Ｃ】
0003733297.tif 000010
【図７Ｄ】
0003733297.tif 000011
【図８Ａ】
0003733297.tif 000012
【図８Ｂ】
0003733297.tif 000013
【図８Ｃ】
0003733297.tif 000014
【図９】
0003733297.tif 000015
【図１０】
0003733297.tif 000016
【図１１Ａ】
0003733297.tif 000017
【図１１Ｂ】
0003733297.tif 000018
【図１２】
0003733297.tif 000019
【図１３】
0003733297.tif 000020
【図１４】
0003733297.tif 000021