(57)【特許請求の範囲】
【請求項１】
画像間の重ね合わせの論理演算を指示する論理演算指示と当該論理演算指示にしたがって描画すべきオブジェクトを指示する少なくとも１つの描画オブジェクト指示とを組とした描画命令を順に蓄積する命令蓄積手段と、
前記論理演算指示と前記描画オブジェクト指示とを組とした１つ又は複数のステップの描画命令を、論理演算を使用しない代替描画命令に変換する複数の命令変換手段と、
前記命令蓄積手段で順に蓄積される描画命令に対して、当該描画命令を前記代替描画命令に変換可能な命令変換手段を第１の変換候補として選択し、かつ、当該描画命令を前記代替描画命令に変換し得る可能性を持つ命令変換手段を第２の変換候補として選択する処理を行う変換候補選択手段と、
前記変換候補選択手段による選択処理において選択された全ての変換候補が前記第１の変換候補となったときに、当該第１の変換候補に対して変換実行を指示する変換制御手段とを備え、
前記変換制御手段は、前記命令蓄積手段の資源が不足した場合、この資源不足が発生するまでに前記変換候補選択手段によって選択された第１の変換候補に対して変換実行を指示する
ことを特徴とする画像処理装置。
【請求項２】
前記変換制御手段は、前記第１の変換候補が複数存在する場合、最も多くのステップの描画命令を前記代替描画命令に変換可能な第１の変換候補に対して変換実行を指示する
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記変換制御手段は、前記第１の変換候補よりも多くのステップの描画命令を前記代替描画命令に変換し得る可能性を持つ第２の変換候補が存在する場合に、次に取得した描画命令が前記命令蓄積部で蓄積されるまで前記変換実行の指示を遅延する
ことを特徴とする請求項1記載の画像処理装置。
【請求項４】
前記変換制御手段は、前記次に取得した描画命令が前記第２の変換候補で前記代替描画命令に変換可能な描画命令であった場合に、当該第２の変換候補に対して変換実行を指示する
ことを特徴とする請求項３記載の画像処理装置。
【請求項５】
前記変換制御手段は、前記次に取得した描画命令が前記第２の変換候補で前記代替描画命令に変換不可能な描画命令であった場合又は次の描画命令を取得できなかった場合に、当該第２の変換候補よりも少ないステップの描画命令を代替描画命令に変換可能な前記第１の変換候補に対して変換実行を指示する
ことを特徴とする請求項３記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、画像作成装置などから出力される画像の描画命令を受け取って処理する画像処理装置に関する。
【０００２】
【従来の技術】
パーソナルコンピュータなどの情報処理装置などから出力される様々な描画命令を処理し、印刷装置で印刷可能な画素の並びで表現された画像データに展開する画像形成システムにおいては、描画命令を受け取ってから画像データに展開されるまでの間に、当該描画命令に応じた様々な処理が行われる。その１つとして、複数の画像が互いに重なる位置に描かれる場合に、元の画像と、新たに書き込む画像との重ね合わせの方法の指示に従って、両方の画像を重ね合わせる処理がある。指示される重ね合わせの方法は、通常、論理和、論理積、排他的論理和などの論理演算の種類として指示される。このような画像間の重ね合わせの論理演算は、ＲＯＰ(Raster Operation)として知られている。
【０００３】
上記画像間の重ね合わせの論理演算（以下、ＲＯＰ処理とも記す）は、一般に処理が複雑で、実行のためのメモリも多く必要とするものが多い。したがって、ＲＯＰ処理を使用する描画命令を画像データに展開する場合と、ＲＯＰ処理を使用しない描画命令を画像データに展開する場合では、前者の方が処理時間が長くなる。また、ＲＯＰ処理は、単体で使用する場合よりも、複数のＲＯＰ処理を組み合わせて使用する場合が圧倒的に多い。さらに、ＲＯＰ処理を使用する描画命令は、その命令に含まれる指示内容によっては、最終的に描画される画像の描画結果を変えることなく、ＲＯＰ処理を使用しない描画命令（以下、代替描画命令とも記す）に変換（置換）できることも多い。
【０００４】
こうした点に着目した従来技術の一例として、特開２０００−１３２６７１号公報には、ＲＯＰ処理を使用する３つのステップの描画命令の指示内容を、ＲＯＰ処理を使用しない代替描画命令に変換して処理することにより、処理時間の短縮を図る技術が記載されている。この公報に記載の技術では、入力される描画命令の指示内容をメモリに順に蓄積するとともに、この蓄積した描画命令の指示内容が予め設定された命令変換適合条件の指示内容に一致するか否かを判断し、３つのステップの描画命令の指示内容の１つが命令変換適合条件の指示内容に一致しないと判断した場合は、その時点で代替描画命令への変換を取り止め、３つのステップの描画命令の指示内容の全てが命令変換適合条件の指示内容に一致すると判断した場合は、その時点で代替描画命令への変換を実行するようにしている。
【０００５】
【発明が解決しようとする課題】
ところで、ＲＯＰ処理を使用する描画命令は、画像間の重ね合わせの論理演算を指示する論理演算指示（以下、ＲＯＰ指示とも記す）と当該論理演算指示にしたがって描画すべきオブジェクトを指示する描画オブジェクト指示との組み合わせによって構成されるのに対し、各々の指示を含む描画命令は、一度に全て与えられるわけではなく、メモリやハードディスクから１つずつ読み込んで生成される。
【０００６】
また、ＲＯＰ処理を使用する描画命令は、典型的には情報処理装置上のアプリケーションソフトウエアからの印刷時にオペレーションシステムから出力されるが、同一のアプリケーションソフトウエアからの印刷でも、オペレーティングシステムが異なると、異なるＲＯＰ処理の描画命令が出力されることが多い。即ち、ＲＯＰ処理を使用する描画命令の組み合わせは、オペレーティングシステムに依存して様々なパターンが現れる。また、新たなアプリケーションソフトウェアが開発されると新たな組み合わせが現れる可能性があり、組み合わせの数は増加する傾向にある。
【０００７】
こうしたＲＯＰ処理を使用する描画命令の新たな組み合わせの中には、従来から存在していたＲＯＰ描画命令を含んでいる場合がある。即ち、代替描画命令への変換が可能な描画命令の個数や指示内容には幾つものパターンが存在し、そのパターンの組み合わせの中には、代替描画命令への変換が可能なＭ個のステップの描画命令の指示内容を規定した第１の命令変換パターンと、このＭ個のステップの描画命令を内包する（Ｍ＋Ｎ）個のステップの描画命令の指示内容を規定した第２の命令変換パターンとが存在する場合がある（Ｍ，Ｎは、共に正の整数）。
【０００８】
これに対して、上記公報に記載された技術では、３つのステップの描画命令の指示内容の全てが上記命令変換適合条件の指示内容に一致（完全一致）したときに代替描画命令への変換を実行するようにしているため、上述した第１の命令変換パターンや第２の命令変換パターンの存在に対して適切な変換処理を行えない場合が考えられる。
【０００９】
即ち、第１の命令変換パターンは第２の命令変換パターンに内包される関係にあるため、例えば、メモリに順に蓄積された３つのステップの描画命令の指示内容が第１の命令変換パターンに一致すると判断した場合は、この時点で代替描画命令への変換を実行することになる。そのため、その後入力される４つ目の描画命令の指示内容が第２の命令変換パターンに一致するものであったとしても、結果的に３つのステップの描画命令しか変換されないことになる。また、４つ目の描画命令をメモリに蓄積してその指示内容を第２の命令変換パターンと比較したときに、当該指示内容が第２の命令変換パターンに一致しなかった場合は、変換処理で前提としている完全一致の条件を満たさないため、代替描画命令への変換を取り止めることになる。そのため、それまでの処理が無駄になってしまう。
【００１０】
本発明は、上記課題を解決するためになされたもので、その目的とするところは、論理演算を使用する描画命令を代替描画命令に変換する際の命令変換処理を柔軟にしかも適切かつ効率良く行うことができる画像処理装置を提供することにある。
【００１１】
【課題を解決するための手段】
本発明に係る画像処理装置は、画像間の重ね合わせの論理演算を指示する論理演算指示と当該論理演算指示にしたがって描画すべきオブジェクトを指示する少なくとも１つの描画オブジェクト指示とを組とした描画命令を順に蓄積する命令蓄積手段と、論理演算指示と描画オブジェクト指示とを組とした１つ又は複数のステップの描画命令を、論理演算を使用しない代替描画命令に変換する複数の命令変換手段と、命令蓄積手段で順に蓄積される描画命令に対して、当該描画命令を代替描画命令に変換可能な命令変換手段を第１の変換候補として選択し、かつ、当該描画命令を代替描画命令に変換し得る可能性を持つ命令変換手段を第２の変換候補として選択する処理を行う変換候補選択手段と、この変換候補選択手段による選択処理において選択された全ての変換候補が第１の変換候補となったときに、当該第１の変換候補に対して変換実行を指示する変換制御手段とを備え、変換制御手段は、命令蓄積手段の資源が不足した場合、この資源不足が発生するまでに変換候補選択手段によって選択された第１の変換候補に対して変換実行を指示する構成となっている。
【００１２】
上記構成からなる画像処理装置において、論理演算指示と少なくとも１つの描画オブジェクト指示とを組とした描画命令が命令蓄積手段で蓄積されると、この蓄積された描画命令を代替描画命令に変換可能な命令変換手段が第１の変換候補として、また代替描画命令に変換し得る可能性を持つ命令変換手段が第２の変換候補として変換候補選択手段により選択される。そして、変換候補選択手段による選択処理において選択された全ての変換候補が第１の変換候補になると、この第１の変換候補に対して変換制御手段が変換実行を指示し、この指示された変換候補によって代替描画命令への変換処理が行われる。これにより、論理演算を使用する描画命令を代替描画命令に変換する際の命令変換処理を柔軟にしかも適切かつ効率良く行うことが可能となる。
【００１３】
また、変換制御手段における変換実行の指示形態として、第１の変換候補が複数存在する場合に、最も多くの描画命令を代替描画命令に変換可能な第１の変換候補に対して変換実行を指示する構成とすれば、実際に変換処理を行う変換実行の指示先が最適化される。
【００１４】
また、変換制御手段における変換実行の指示形態として、命令蓄積手段の資源が不足した場合に、この資源不足が発生するまでに変換候補選択手段によって選択された第１の変換候補に対して変換実行を指示する構成とすれば、資源不足が発生するまで行った処理を無駄にすることなく、代替描画命令への変換処理を実行させることが可能となる。
【００１５】
また、変換制御手段における変換実行の指示形態として、第１の変換候補よりも多くの描画命令を代替描画命令に変換し得る可能性を持つ第２の変換候補が存在する場合に、次に取得した描画命令が命令蓄積部で蓄積されるまで変換実行の指示を遅延する構成とすれば、次に取得した描画命令に応じて最適な変換候補に変換実行を指示することが可能となる。さらに、かかる指示形態として、次に取得した描画命令が第２の変換候補で代替描画命令に変換可能な描画命令であった場合に、当該第２の変換候補に対して変換実行を指示する構成とすれば、より多くの描画命令を代替描画命令に変換させることが可能となる。また、かかる指示形態として、次に取得した描画命令が第２の変換候補で代替描画命令に変換不可能な描画命令であった場合又は次の描画命令を取得できなかった場合に、当該第２の変換候補よりも少ない描画命令を代替描画命令に変換可能な第１の変換候補に対して変換実行を指示する構成とすれば、それまでの処理を無駄にすることなく、代替描画命令への変換処理を実行させることが可能となる。
【００１６】
【発明の実施の形態】
以下、本発明に係る画像処理装置の構成をプリンタに適用した場合の具体的な実施の形態について図面を参照しつつ詳細に説明する。なお、本発明に係る画像処理装置は、画像データを取り扱うプリンタドライバやアプリケーションソフトウェアを組み込んだホストコンピュータ（例えば、パーソナルコンピュータ、ワークステーションなど）などにも適用可能である。
【００１７】
図１は本発明の実施形態に係る印刷処理システムの構成を示すブロック図である。図示した印刷処理システムの構成においては、ホストコンピュータ１とプリンタ２とが、例えば、通信ケーブルや通信ネットワーク等の通信手段を介して接続されている。ホストコンピュータ１は、印刷対象となる画像データを描画処理するための印刷データを上記通信手段を介してプリンタ２に送信するものである。ホストコンピュータ１から送信される印刷データは、描画すべきオブジェクトを指示する描画オブジェクト指示や画像間の重ね合わせの論理演算を指示する論理演算指示を含む描画命令によって構成される。プリンタ２は、ホストコンピュータ１から送信された印刷データにしたがって用紙等の印刷媒体に画像を印刷出力するものである。
【００１８】
プリンタ２は、ホストインターフェイス３と、ＣＰＵ(Central Processing Unit)４と、プログラムＲＯＭ(Read-Only Memory)５と、ＲＡＭ(Random Access Memory)６と、プリンタエンジンインターフェイス７と、プリンタエンジン８とを備え、プリンタエンジン８を除く他の機能部３，４，５，６，７をシステムバス９で相互に接続した構成となっている。
【００１９】
ＣＰＵ４は、システムバス９を介して各機能部を制御するものである。プログラムＲＯＭ５は、インタプリタ部５１、命令変換処理部５２、イメージング部５３、印刷制御部５３を記憶するものである。これらインタプリタ部５１、命令変換処理部５２、イメージング部５３、印刷制御部５３は、プログラムＲＯＭ５に格納された各種の機能プログラムをＣＰＵ４が読み出して実行することにより具現化（実現）されるものである。
【００２０】
インタプリタ部５１は、ホストインターフェイス３を通じてホストコンピュータ１から受信した印刷データを解釈し、その印刷データに含まれる描画命令を順位に生成するものである。インタプリタ部５１によって生成された描画命令は、命令変換処理部５２に送られる。インタプリタ部５１では、画像間の重ね合わせの論理演算を指示する論理演算指示と、描画すべきオブジェクトを指示する描画オブジェクト指示のうち、どちらか一方を指示するかたちで生成される。論理演算指示は、描画処理時に使用するＲＯＰ処理（論理演算処理）の種別（論理積、論理和、排他的論理和等）を指示するもので、描画オブジェクト指示は、円，矩形などの外形を座標点で記述された図形オブジェクトの描画や、イメージ，文字などのビットマップ化されたイメージオブジェクトの描画、さらには描画すべきオブジェクトの色などの属性を指示するものである。
【００２１】
ちなみに、インタプリタ部５１で生成した描画命令が画像間の重ね合わせの論理演算を指示するもの（論理演算指示）であった場合は、これに続く描画命令として、先の論理演算指示にしたがって描画すべきオブジェクトを指示する少なくとも１つの描画命令がインタプリタ部５１から生成されることになる。
【００２２】
命令変換処理部５２は、インタプリタ部５１から生成される描画命令を受け取って命令変換処理（詳細は後述）を行うことにより、インタプリタ部５１から受け取った１つ又は複数のステップの描画命令を代替描画命令に変換して、また変換せずにそのまま出力するものである。より具体的に述べると、命令変換処理部５２は、インタプリタ部５１から受け取った描画命令がＲＯＰ処理を使用して描画を行う命令であった場合に、その描画命令を、ＲＯＰ処理を使用しない代替描画命令に変換可能であるかどうかを確認し、変換可能である場合はインタプリタ部５１から受け取った描画命令を代替描画命令に変換して出力し、変換不可能である場合はインタプリタ部５１から受け取った描画命令をそのまま出力する。インタプリタ部５１から出力された描画命令はイメージング部５３に送られる。
【００２３】
イメージング部５３は、命令変換処理部５２から出力される描画命令によって指示されたオブジェクトの描画処理を行い、1ページ分のビットマップデータを生成するものである。このイメージング部５３では、インタプリタ部５１から出力された描画命令にＲＯＰ処理が指示されている場合はＲＯＰ処理を使用し、ＲＯＰ処理が指示されていない場合は上書きで、ビットマップデータに描画を重ねていく。また、イメージング部５３は、画像のクリッピング機能を持ち、描画命令によりクリッピング領域が指定されている場合には、クリッピング領域内だけに描画することが可能となっている。イメージング部５３によって生成されたビットマップデータは印刷制御部５４に送られる。
【００２４】
印刷制御部５４は、印刷を行なう際にプリンタエンジン８を起動し、イメージング部５３により生成されたビットマップデータを、プリンタエンジン８に供給する処理を行う。
【００２５】
一方、ＲＡＭ６には、命令バッファ６１、ページバッファ６２、ワーク領域６３が割り当てられる。命令バッファ６１は、命令変換処理部５２がインタプリタ部５１から受け取った１つ又は複数のステップの描画命令を代替描画命令に変換する際に、変換の対象となる描画命令を蓄積するという用途で一次的に使用される領域である。ページバッファ６２は、イメージング部５３が描画処理した1ページ分のビットマップデータを保存するために使用される領域である。ワーク領域６３は、各種のプログラムを動作（実行）させるために一時的に使用される領域である。プリンタエンジン８は、プリンタエンジンインターフェイス７を介して供給されるビットマップデータにしたがって、用紙等に画像を出力（形成）するものである。
【００２６】
図２は命令変換処理部５２の内部の機能構成を示すブロック図である。図示のように命令変換処理部５２は、命令変換制御部５２１と、命令蓄積部５２２と、命令変換部５２３と、変換候補選択部５２４とを備えて構成されている。また、命令変換部５２３は、複数の命令変換手段、即ち、ＲＯＰ命令変換部５２３Ａと、ＲＯＰ命令変換部５２３Ｂと、ＲＯＰ命令変換部５２３Ｃと、ＲＯＰ命令変換部５２３Ｄとを備えて構成されている。
【００２７】
命令変換制御部５２１は、インタプリタ部５１で生成された描画命令を受け取って、この受け取った描画命令の指示内容や命令変換処理部５２の内部状態に基いて、命令蓄積部５２２、命令変換部５２３及び変換候補選択部５２４の処理動作を統括的に制御するとともに、インタプリタ部５１から受け取った描画命令をイメージング部５３に出力する処理を行うものである。
【００２８】
命令蓄積部５２２は、命令変換制御部５２１の制御処理にしたがって命令バッファ６２に描画命令を蓄積したり、命令バッファ６２から描画命令を読み出したりする処理を行うものである。この命令蓄積部５２２では、画像間の重ね合わせの論理演算を指示する論理演算指示とこの論理演算指示にしたがって描画すべきオブジェクトを指示する少なくとも１つの描画オブジェクト指示とを組とした描画命令を命令バッファ６２に順に蓄積する。
【００２９】
命令変換部５２３は、命令変換制御部５２１の制御処理にしたがって、命令蓄積部５２２により順に蓄積された１つ又は複数のステップの描画命令を代替描画命令（ＲＯＰ処理を使用しない描画命令）に変換する処理を行うとともに、この変換した代替描画命令をイメージング部５３に出力する処理を行うものである。
【００３０】
変換候補選択部５２４は、命令蓄積部５２２に順に蓄積される描画命令の指示内容に基づいて、当該描画命令を代替描画命令に変換可能なＲＯＰ命令変換部を第１の変換候補として選択する一方、当該描画命令を代替描画命令に変換し得る可能性を持つＲＯＰ命令変換部を第２の変換候補として選択し、この選択結果を命令変換制御部５２１に通知するものである。この変換候補選択部５４では、自身で選択した変換候補をリスト構造で保持し、このリスト構造にしたがった変換候補リストが命令変換制御部５２１によって参照される。
【００３１】
ここで、命令変換部５２３が備える各々のＲＯＰ命令変換部５２３Ａ，５２３Ｂ，５２３Ｃ，５２３Ｄによる描画命令の変換処理について、図３〜図６を用いて順に説明する。これらの図中において、矢印はデータの流れを示し、白抜きの楕円はＲＯＰ処理、上書き処理、クリップ処理等の画像データに対する処理操作を示している。また、ここでは1つの画素がＲＧＢ・２４ビットで表現されるものとし、ＲＯＰ処理はＲＧＢ色空間で行われるものとする。また、黒の画素の色値を000000h、白の画素の色値をFFFFFFhで表現するものとする(ｈは１６進の整数表現を意味する)。また、以降の説明では、1つのＲＯＰ処理を使用して図形やイメージを描画する一連の描画処理をＲＯＰ描画ステップと呼び、少なくとも１つのＲＯＰ描画ステップを組み合わせたものをＲＯＰ描画パターンと呼ぶことにする。
【００３２】
図３はＲＯＰ命令変換部５２３Ａによる描画命令の変換処理を説明する図であり、図中（Ａ）は変換前の描画命令、（Ｂ）は変換後の描画命令（代替描画命令）を示している。先ず、図３（Ａ）は1つのＲＯＰ描画ステップからなるＲＯＰ描画パターン（以下、１ステップＲＯＰ描画パターン）を示すもので、この場合の描画命令は、ステップ１として、白黒イメージと描画領域に論理積演算(AND)が施され、描画領域に書き込まれる。このとき、イメージの黒の画素の部分が黒で描画され、白の画素の部分は描画領域の色のままとなる。
【００３３】
このような1ステップＲＯＰ描画パターンに対応する描画命令をＲＯＰ命令変換部（１ステップＲＯＰ命令変換部とも記す）５２３Ａで変換する場合は、図３（Ｂ）に示すように、上述した白黒イメージを、色の深さを持たないイメージマスクに変換し、そのイメージマスクを描画領域に上書き描画するといった代替描画命令に変換する。これにより、１ステップＲＯＰ命令変換部５２３Ａにおいては、ＲＯＰ処理を使用する１つの描画命令が、描画結果を変えることなく、ＲＯＰ処理を使用しない代替描画命令に変換される。
【００３４】
図４はＲＯＰ命令変換部５２３Ｂによる描画命令の変換処理を説明する図であり、図中（Ａ）は変換前の描画命令、（Ｂ）は変換後の描画命令（代替描画命令）を示している。先ず、図４（Ａ）は２つのＲＯＰ描画ステップからなるＲＯＰ描画パターン（以下、２ステップＲＯＰ描画パターン）を示すもので、この場合の描画命令は、ステップ１として、白黒イメージと描画領域に論理積演算(AND)が施され、描画領域に書き込まれる。このとき、イメージの黒の画素の部分が黒で描画され、白の画素の部分は描画領域の色のままとなる。
【００３５】
次に、ステップ２では、白抜きされた背景を持つ任意色のイメージと描画領域に論理和演算(OR)が施され、描画領域に書き込まれる。このとき、先のステップ１において黒で描画された部分の画素とイメージの画素の論理和をとるとイメージの画素そのものになる。また、ステップ１において黒で描画されなかった部分の画素とイメージの白抜きされた背景の画素の論理和をとると、描画領域の色そのものとなる。
【００３６】
このような２ステップＲＯＰ描画パターンに対応する描画命令をＲＯＰ命令変換部（以下、２ステップＲＯＰ命令変換部とも記す）５２３Ｂで変換する場合は、図４（Ｂ）に示すように、ステップ１で描画される白黒イメージを、深さを持たないイメージマスクに変換した後、ステップ２で描画される任意色のイメージを上書き描画する際、イメージマスクでクリッピングするといった代替描画命令に変換する。これにより、２ステップＲＯＰ命令変換部５２３Ｂにおいては、ＲＯＰ処理を使用する２つの描画命令が、描画結果を変えることなく、ＲＯＰ処理を使用しない代替描画命令に変換される。
【００３７】
図５はＲＯＰ命令変換部５２３Ｃによる描画命令の変換処理を説明する図であり、図中（Ａ）は変換前の描画命令、（Ｂ）は変換後の描画命令（代替描画命令）を示している。先ず、図５（Ａ）は３つのＲＯＰ描画ステップからなるＲＯＰ描画パターン（以下、３ステップＲＯＰ描画パターン）を示すもので、この場合の描画命令は、任意色のイメージを円の内側だけに描画するために、ステップ１では、任意色の矩形イメージと描画領域に排他的論理和演算(XOR)が施され、描画領域に書き込まれる。
【００３８】
次に、ステップ２では、黒色の円と描画領域に論理積演算(AND)が施され、描画領域に書き込まれる。このとき、２４ビットのＲＧＢ空間では黒が000000hと表現されるため、円と論理積演算が施された領域の画素は黒(000000h)となる。また、ステップ１で描画された部分で円と論理積演算が施されなかった領域の画像は変わらない。
【００３９】
次いで、ステップ３では、任意色の矩形イメージと描画領域に排他的論理和演算(XOR)が施され、描画領域に書き込まれる。描画される矩形イメージはステップ1で描画された矩形イメージと全く同じものである。このステップにより、ステップ２で描画された黒の円の領域は、黒のピクセルがすべて000000hであることから、矩形イメージの画素と同じものとなる。一方、黒の円から外れた領域は、元々描画領域が持っていた色値に２回同一の色値で排他的論理和を施すことになるため、元の描画領域の色に戻る。
【００４０】
このような３ステップＲＯＰ描画パターンに対応する描画命令をＲＯＰ命令変換部（以下、３ステップＲＯＰ命令変換部とも記す）５２３Ｃで変換する場合は、図５（Ｂ）に示すように、ステップ２で指定される黒の円の形状をクリップ領域（クリッピング領域）として使用し、矩形イメージを上書きで描画するといった代替描画命令に変換する。これにより、３ステップＲＯＰ命令変換部５２３Ｃにおいては、ＲＯＰ処理を使用する３つの描画命令が、描画結果を変えることなく、ＲＯＰ処理を使用しない代替描画命令に変換される。この３ステップＲＯＰ命令変換部５２３Ｃによる描画命令の変換処理では、矩形イメージに対してクリッピング処理を施す必要があるものの、ＲＯＰ処理を不要とした命令形式に変換でき、また描画処理の回数を１／３程度に減らすことができるため、処理速度を大きく改善することができる。
【００４１】
図６はＲＯＰ命令変換部５２３Ｄによる描画命令の変換処理を説明する図であり、図中（Ａ）は変換前の描画命令、（Ｂ）は変換後の描画命令（代替描画命令）を示している。先ず、図６（Ａ）は４つのＲＯＰ描画ステップからなるＲＯＰ描画パターン（以下、４ステップＲＯＰ描画パターン）を示すもので、この場合の描画命令は、ステップ１として、白と黒の矩形イメージと描画領域に排他的論理和演算(XOR)が施され、描画領域に書き込まれる。
【００４２】
次に、ステップ２では、黒色の円と描画領域に論理積演算(AND)が施され、描画領域に書き込まれる。これにより、円の部分だけが黒になる。また、ステップ1で描画された部分で円と論理積演算が施されなかった領域の画像は変わらない。
【００４３】
次いで、ステップ３では、白と黒の矩形イメージと描画領域に排他的論理和演算(XOR)が施され、描画領域に書き込まれる。描画される矩形イメージはステップ1で描画された矩形イメージと全く同じものである。このステップにより、ステップ２で描画された黒の円の領域は、黒の画素がすべて000000hであることから、矩形イメージの画素と同じものとなる。一方、黒の円から外れた領域は、元々描画領域が持っていた色値に２回同一の色値で排他的論理和を施すことになるため、元の描画領域の色に戻る。
【００４４】
続いて、ステップ４では、青の円と描画領域に論理積演算(OR)が施され、描画領域に書き込まれる。この場合、円の形状はステップ２の黒色の円と同一である。また、描画領域の黒の画素の部分は、青の画素との論理和をとることで青に変わり、描画領域の白の画素の部分は、青の画素との論理和をとることで白のままとなる。なお、本例ではステップ４で青の円を描画しているが、青以外の色でもかまわない。
【００４５】
このような４ステップＲＯＰ描画パターンは、先述した３ステップＲＯＰ描画パターンをその一部として含んでいるため、３ステップＲＯＰ描画パターンを構成している３つのＲＯＰ描画ステップ１〜３を、上記同様にＲＯＰ処理を使用しない命令形式に変換して処理し、その後、ステップ４で示された論理和を使用するＲＯＰ描画ステップを、ＲＯＰ処理を使って描画する方法が考えられる。しかしながら、この命令変換方式では、相変わらず論理和のＲＯＰ処理を行う必要があり、十分な処理速度の向上は期待できないという難点がある。
【００４６】
そこで、上述のような４ステップＲＯＰ描画パターンに対応する描画命令をＲＯＰ命令変換部（以下、４ステップＲＯＰ命令変換部とも記す）５２３Ｄで変換する場合は、図６（Ｂ）に示すように、上記ステップ1で描画される白黒イメージの黒の画素を、ステップ４で円を論理和演算で描画するときに使われる色（この場合は青）に変更する。次に、このイメージを、上記ステップ２で描画される円の形状でクリッピングして、上書き描画する。これにより、４ステップＲＯＰ命令変換部５２３Ｄにおいては、ＲＯＰ処理を使用する４つの描画命令が、描画結果を変えることなく、ＲＯＰ処理を使用しない代替描画命令に変換される。かかる変換方式を採用することにより、処理速度の大幅な向上が期待できる。ここで挙げた例は、あるＲＯＰ描画パターンをその一部として含むようなＲＯＰ描画パターンには、専用の変換方式が存在することを示唆している。このような描画命令の変換形式や組み合わせは、３ステップＲＯＰ描画パターンとこれを包含する４ステップＲＯＰ描画パターンの場合に限るものではなく、先述した1ステップＲＯＰ描画パターンとこれを包含する２ステップＲＯＰ描画パターンの場合やその他の場合でも同様のことが言える。
【００４７】
なお、本実施形態においては、描画すべきオブジェクトとして円を図形の一例として使っているが、本発明は、これに限ることなく他の任意の図形、文字などに適用可能である。また、図３〜図６に示した描画命令の変換方式以外にも、代替描画命令に変換可能なＲＯＰ描画パターンがあれば、それに対応して命令変換部５２３の内部構成を適宜変更（ＲＯＰ命令変換部を追加）すればよい。また、ここでは１つの論理演算指示に対して１つの描画オブジェクト指示が対応する場合について説明したが、これ以外にも、１つの論理演算指示に対して複数の描画オブジェクト指示が対応する場合もある。例えば、論理演算指示の命令が排他的論理和(XOR)で与えられた場合に、この論理演算指示にしたがって描画すべきオブジェクトを指示する描画オブジェクト指示として楕円描画が指示する命令が複数与えられる場合などが考えられる。このことから、命令蓄積部５２２によって命令バッファ６３に蓄積される描画命令、即ち論理演算指示と少なくとも１つの描画オブジェクト指示とを組とした描画命令の個数は、１つのＲＯＰ描画パターンに対応するＲＯＰ描画ステップのステップ数に一致したものとなる。
【００４８】
以上のような命令変換部５２３の内部構成に対して、変換候補選択部５２４では図７に示す命令変換適合条件の参照テーブルを用いて変換候補を選択する。この命令変換適合条件の参照テーブルは、命令変換部５２３で変換可能な描画命令の指示内容に対応して予め設定されるもので、変換候補選択部５２４に保持されている。この参照テーブルでは、各々のＲＯＰ命令変換部５２３Ａ〜５２３Ｄで変換可能なＲＯＰ指示（論理演算指示）の指示内容と描画オブジェクト指示の指示内容とがステップ１〜４にわたって規定されている。この場合、命令変換部５２３で変換可能な描画命令の最大ステップ数は４ステップとなる。なお、命令変換適合条件の参照テーブルの内容は、命令変換部５３２の内部構成に対応して設定されるため、命令変換部５３２の内部構成が変われば、それに応じて命令変換適合条件のテーブル内容も変わることになる。
【００４９】
続いて、命令変換処理部５２で行われる命令変換処理について図８及び図９のフローチャートを用いて説明する。先ず、命令変換処理が開始されると、命令変換制御部５２１は命令変換処理部５２の内部状態を通常実行状態に設定（初期化）する（ステップＳ１１）。命令変換処理部５２の内部状態には、通常実行状態と変換判定状態の２つの形態がある。
【００５０】
通常実行状態とは、インタプリタ部５１から受け取った描画命令を命令蓄積部５２２で蓄積せずに、イメージング部５３に出力するように設定された状態である。また、変換判定状態とは、インタプリタ部５１から受け取った描画命令を命令蓄積部５２２で命令バッファ６１に蓄積した後、描画命令の変換処理を実行する変換候補（命令変換部５２３Ａ〜５２３Ｄのいずれか１つ）が確定するまで待つように設定された状態である。命令変換処理部５２の内部状態が変換判定状態に設定された場合は、必ず命令蓄積部５２２によって何らかの描画命令が命令バッファ６１に蓄積された状態となる。
【００５１】
次に、命令変換制御部５２１は、インタプリタ部５１から送られた描画命令を１つ取得する処理を行う（ステップＳ１２）。このとき、インタプリタ部５１から描画命令が送られた場合はこれを取得することになるが、インタプリタ部５１で全ての描画命令の送り出しを終えていた場合は描画命令の取得が行われないことになる。次いで、命令変換制御部５２１は、インタプリタ部５１から取得した描画命令の有無を判断し（ステップＳ１３）、もし描画命令が無いと判断した場合はステップＳ１５に移行して現在設定されている内部状態を判断する。このとき、通常実行状態に設定されていると判断した場合は、その時点で命令変換処理を終了し、変換判定状態に設定されていると判断した場合は、後述するステップＳ２０に移行する。
【００５２】
一方、先のステップＳ１３で描画命令が有りと判断した場合は、これに続いて命令変換制御部５２１は、現在設定されている内部状態を判断する（ステップＳ１４）。そして、変換判定状態に設定されていると判断した場合は、インタプリタ部５１から取得した描画命令を命令蓄積部５２２に送り、この命令蓄積部５２２で命令バッファ６１に描画命令を蓄積させる（ステップＳ１６）。その後、命令変換制御部５２１は、変換候補選択部５２４を起動して変換候補リストの更新処理を実行させる（ステップＳ１７）。
【００５３】
また、上記ステップＳ１４で通常実行状態に設定されていると判断した場合は、これに続いて命令変換制御部５２１は、ステップＳ１３で有りとした描画命令がＲＯＰ指示と描画オブジェクト指示のどちらで指示されているかを判断する（ステップＳ１８）。そして、描画命令がＲＯＰ指示であると判断すると、ステップＳ１６に移行してその描画命令を上記同様に命令蓄積部５２２で命令バッファ６１に蓄積させる。また、描画命令が描画オブジェクト指示であると判断すると、その描画命令をイメージング部５３に渡した後（ステップＳ１９）、先のステップＳ１２に戻って上記同様の処理を行う。
【００５４】
ここで、ステップＳ１２で取得した描画命令をステップＳ１６で命令蓄積部５２２が命令バッファ６１に蓄積する処理を考えると、この描画命令の蓄積処理は、命令変換処理部５２の内部状態が変換判定状態に設定されている場合、もしくは通常実行状態に設定されている状態で先に取得した描画命令の指示がＲＯＰ指示であった場合に限り行われる。また、命令変換処理部５２の内部状態は、命令変換処理部５２の内部状態が通常実行状態に設定されている状態で命令変換制御部５２１がインタプリタ部５１から取得したＲＯＰ指示の描画命令を、命令蓄積部５２２が命令バッファ６１に蓄積した後に、後述するステップＳ２３で変換判定状態に更新される。また、インタプリタ部５１からは、ＲＯＰ指示の描画命令が送られた後、これに続いて、当該ＲＯＰ指示にしたがって描画すべきオブジェクトを指示する描画オブジェクト指示の描画命令が送られる。このとき、１つのＲＯＰ指示に対して複数の描画オブジェクト指示が対応する場合、インタプリタ部５１からは、ＲＯＰ指示の描画命令が送られた後に、これに対応する複数の描画オブジェクト指示の描画命令が順に送られることになる。
【００５５】
そのため、命令蓄積部５２２による描画命令の蓄積処理では、ＲＯＰ指示の描画命令を命令バッファ６１に蓄積した後、これに続いて送られる少なくとも１つの描画オブジェクト指示の描画命令を命令バッファ６１に蓄積する処理が行われる。その結果、命令蓄積部５２２による描画命令の蓄積処理では、インタプリタ部５１から送られるＲＯＰ指示の描画命令とこれに続いて（連続して）インタプリタ部５１から送られる少なくとも１つの描画オブジェクト指示の描画命令（先のＲＯＰ指示にしたがって描画すべきオブジェクトを指示する描画命令）とを１つの組とした描画命令が命令バッファ６１に順に蓄積されることになる。
【００５６】
また、上記ステップＳ１７で行われる変換候補リストの更新処理では、その時点で命令蓄積部５２２により命令バッファ６２に蓄積されている描画命令を代替描画命令に変換可能なＲＯＰ命令変換部が第１の変換候補、代替描画命令に変換し得る可能性をもつＲＯＰ命令変換部が第２の変換候補として選択され、この選択された変換候補が変換候補選択部５２４の内部でリスト構造で保持される。
【００５７】
第１の変換候補として選択されるＲＯＰ命令変換部とは、その時点で命令蓄積部５２２により命令バッファ６１に蓄積されている描画命令の指示内容が、当該ＲＯＰ命令変換部に対応して上記命令変換適合条件の参照テーブルに規定された最終のステップまでの指示内容と完全に一致しているものをいう。これに対して、第２の変換候補として選択されるＲＯＰ命令変換部とは、その時点で命令蓄積部５２２により命令バッファ６１に蓄積されている描画命令の指示内容が、当該ＲＯＰ命令変換部に対応して上記命令変換適合条件の参照テーブルに規定された途中のステップまでの指示内容と完全に一致しているものをいう。
【００５８】
再び処理フローに戻って、上記ステップＳ１７で変換候補選択部５２４により変換候補リストの更新処理を実行すると、これに続いて命令変換制御部５２１は、ステップＳ１７で更新処理された変換候補リストの中に変換候補が存在するかどうかを判断する（ステップＳ２０）。そして、変換候補が無いと判断すると、命令蓄積部５２２によって命令バッファ６１に蓄積された全ての描画命令を変換せずにイメージング部５３に渡した後（ステップＳ２１）、後述するステップＳ２７に移行する。
【００５９】
また、変換候補が有りと判断すると、命令変換制御部５２１は、現在リストアップされている全ての変換候補が第１の変換候補として選択されたものであるかどうか（即ち、全ての変換候補が描画命令を代替描画命令に変換可能な命令変換部として選択されたものかどうか）を判断する（ステップＳ２２）。このとき、全ての変換候補が第１の変換候補になっていないと判断すると、命令変換制御部５２１は、命令変換処理部５２の内部状態が変換判定状態となるように状態設定を更新した後（ステップＳ２３）、先のステップＳ１２に戻って上記同様の処理を行う。
【００６０】
ここで、変換候補リスト中の全ての変換候補が第１の変換候補になっていない場合とは、変換候補リスト中の全ての変換候補が第２の変換候補として存在している場合と、変換候補リスト中に第１の変換候補と第２の変換候補が混在している場合のいずれかに該当する。また、変換候補リスト中に第１の変換候補と第２の変換候補が混在している場合の具体例としては、第１の変換候補として３ステップＲＯＰ命令変換部５２３Ｃが、第２の変換候補として４ステップＲＯＰ命令変換部がそれぞれリストアップされている場合が考えられる。この場合、第２の変換候補は、第１の変換候補よりも多くのステップの描画命令を代替描画命令に変換し得る可能性を持つものとなる。
【００６１】
再び処理フローに戻って、上記ステップＳ２２で全ての変換候補が第１の変換候補になっていると判断すると、これに続いて命令変換制御部５２１は、現在の変換候補リストの中に第１の変換候補が１つしか存在しない場合はその第１の変換候補を、また第１の変換候補が複数存在する場合は、最も多くのステップの描画命令を代替描画命令に変換可能な第１の変換候補（換言すると、変換処理の対象となる描画命令の処理ステップ数が最も多い変換候補）を、変換処理の実行対象として選択する（ステップＳ２４）。例えば、第１の変換候補として３ステップＲＯＰ命令変換部５２３Ｃと４ステップＲＯＰ命令変換部５２３Ｄの両方がリストアップされていた場合は、４ステップＲＯＰ命令変換部５２３Ｄが３ステップＲＯＰ命令変換部５２３Ｃよりも多くのステップの描画命令を代替描画命令に変換可能であるため、この場合は４ステップＲＯＰ命令変換部５２３Ｄが変換処理の実行対象として選択されることになる。
【００６２】
続いて、命令変換制御部５２１は、先に選択した変換処理の実行対象の変換候補（第１の変換候補）を一意に指定して命令変換部５２３に変換実行を指示することにより、命令変換部５２３に描画命令の変換処理を実行させて変換後の描画命令（代替描画命令）をイメージング部５３に渡す（ステップＳ２５）。このとき、変換実行の指示を受けた命令変換部５２３では、命令変換制御部５２１で実行対象の変換候補に指定されたＲＯＰ命令変換部によって描画命令の変換処理が行われる。例えば、指定された実行対象の変換候補が３ステップＲＯＰ命令変換部５２３Ｃであったとすると、この３ステップＲＯＰ命令変換部５２３Ｃでは、命令バッファ６１に蓄積されている３つのステップの描画命令（３ステップＲＯＰ描画パターンに整合する描画命令）を代替描画命令に変換し、この変換後の描画命令をイメージング部５３に送る。
【００６３】
その後、変換候補選択部５２４が保持する変換候補リストを空（変換候補が無しの状態）にする（ステップＳ２６）。次いで、命令変換制御部５２１は、命令変換処理部５２の内部状態が変換判定状態となるように状態設定を更新した後（ステップＳ２７）、先のステップＳ１２に戻って上記同様の処理を行う。
【００６４】
図１０及び図１１は変換候補選択部５２４で実行される変換候補リストの更新処理を示すフローチャートである。この変換候補リストの更新処理の中には、変換候補を選択する選択処理も含まれている。先ず、変換候補選択部５２４自身が保持している変換候補リストの中に変換候補が存在するかどうかを判断する（ステップＳ３１）。このとき、変換候補が無いと判断すると、後述するステップＳ３９に移行する。また、変換候補が有りと判断すると、リスト中の全ての変換候補に対してステップＳ３２〜Ｓ３８に基づくループ処理を行った後、後述するステップＳ３９に移行する。
【００６５】
ステップＳ３３では、先のステップＳ１６で命令蓄積部５２２により新たに命令バッファ６１に蓄積された描画命令がＲＯＰ指示と描画オブジェクト指示のどちらで指示されているかを判断し、ＲＯＰ指示であると判断した場合はステップＳ３４に、描画オブジェクト指示であると判断した場合はステップＳ３５に進む。ステップＳ３４では、命令変換適合条件の参照テーブルに規定された指示内容との比較により、新たに蓄積された描画命令のＲＯＰ指示内容が、現在処理中の変換候補に対応する次のステップの指示内容に一致するかどうかを確認する。
【００６６】
一方、ステップＳ３５では、命令変換適合条件の参照テーブルに規定された指示内容との比較により、新たに蓄積された描画命令の描画オブジェクト指示内容が、現在処理中の変換候補に対応する現在のステップの指示内容に一致するかどうかを確認する。その後、ステップＳ３６では、先のステップＳ３４又はステップＳ３５での確認結果として、指示内容が一致したかどうかを判断し、一致したと判断した場合は、現在変換候補リストに登録されている変換候補をそのまま残す（再選択する）かたちでステップＳ３８に進んで１つの変換候補に対するループ処理を終了し、一致しないと判断した場合はステップＳ３７で現在処理中の変換候補を変換候補リストから削除した後、ステップＳ３８に進む。
【００６７】
こうした１回のループ処理により、例えば、現在処理中の変換候補が３ステップＲＯＰ命令変換部５２３Ｃで、現在確認する命令変換適合条件のステップがステップ２である場合において、新たに蓄積された描画命令の指示がＲＯＰ指示であるときは、このＲＯＰ指示の指示内容が、命令変換適合条件の参照テーブル（図７参照）で３ステップＲＯＰ命令変換部５２３Ｃに対応して設定されたステップ２の指示内容、即ちANDと比較されることになる。そして、新たに蓄積された描画命令のＲＯＰ指示がANDであれば一致すると判断し、それ以外（例えばOR）であれば一致しないと判断して３ステップＲＯＰ命令変換部５２３Ｃを変換候補リストから削除する。
【００６８】
また、ＲＯＰ指示の描画命令に続いて新たに蓄積された描画命令の指示が描画オブジェクト指示であるときは、この描画オブジェクト指示の指示内容が、命令変換適合条件の参照テーブル（図７参照）で３ステップＲＯＰ命令変換部５２３Ｃに対応して設定されたステップ２の指示内容、即ち「黒で描画する指示であること」と比較されることになる。そして、新たに蓄積された描画命令の描画オブジェクト指示が、例えば「黒で円を描画する指示」であれば一致すると判断し、それ以外（例えば、任意色のイメージで描画する）であれば一致しないと判断して３ステップＲＯＰ命令変換部５２３Ｃを変換候補リストから削除する。
【００６９】
また、ステップＳ３５で描画オブジェクト指示の指示内容が一致するかどうかを確認するときに、その確認対象となっているステップが現在処理中の変換候補で途中のステップとなっている場合は、この途中のステップで描画オブジェクト指示内容の一致が確認された段階では、当該命令変換部は第２の変換候補として変換候補リストに登録される。これに対して、確認対象となっているステップが現在処理中の変換候補で最終のステップとなっている場合は、この最終のステップで描画オブジェクト指示内容の一致が確認された段階で、当該変換候補は第１の変換候補として変換候補リストに登録される。
【００７０】
例えば、確認対象となっているステップがステップ２で、現在処理中の変換候補が３ステップＲＯＰ命令変換部５２３Ｃであるときは、描画オブジェクト指示内容の一致が確認された段階で、現在処理中の変換候補が第２の変換候補として登録され、確認対象となっているステップがステップ３で、現在処理中の変換候補が３ステップＲＯＰ命令変換部５２３Ｃであるときは、描画オブジェクト指示内容の一致が確認された段階で、現在処理中の変換候補が第１の変換候補として登録される。変換候補リストにおける第１，第２の変換候補の識別は、例えば変換候補リスト中に存在する各々の変換候補に対して、それぞれ識別用のフラグを立てることにより明確に識別することができる。ちなみに、フラグ等を用いて各々の変換候補に付加される識別情報は、上記ステップＳ２２での判断処理で用いられる。
【００７１】
一方、上記ステップＳ３１で変換候補リストの中に変換候補が無いと判断した場合は、先のステップＳ１６で命令蓄積部５２２により新たに命令バッファ６１に蓄積された描画命令がＲＯＰ指示と描画オブジェクト指示のどちらで指示されているかを判断する（ステップＳ３９）。このとき、描画オブジェクト指示であると判断した場合はその時点で変換候補リストの更新処理を終了する。また、ＲＯＰ指示であると判断した場合は命令変換適合条件の参照テーブルにある全てのＲＯＰ命令変換部５２３Ａ〜５２３Ｄに対してステップＳ４０〜Ｓ４４に基づくループ処理を行った後、変換候補リストの更新処理を終了する。
【００７２】
ステップＳ４１では、命令変換適合条件の参照テーブルに規定された指示内容との比較により、新たに蓄積された描画命令のＲＯＰ指示内容が、現在処理中のＲＯＰ命令変換部に対応するステップ１の指示内容に一致するかどうかを確認する。その後、ステップＳ４２では、先のステップＳ４１での確認結果として、指示内容が一致したかどうかを判断し、一致しないと判断した場合はステップＳ４４に進んで１つのＲＯＰ命令変換部に対するループ処理を終了し、一致したと判断した場合はステップＳ４３で現在処理中のＲＯＰ命令変換部を変換候補に選択して変換候補リストに登録した後、ステップＳ４４に進む。この場合は、ステップ１のＲＯＰ指示内容が一致するかどうかの判断しか行っていないため、ステップＳ４３で変換候補リストに登録される変換候補は、いずれも描画命令を代替描画命令に変換し得る可能性を持つ第２の変換候補として選択され、変換候補リスト内で上記の識別情報が付加される。
【００７３】
こうした１回のループ処理により、例えば、新たに蓄積された描画命令のＲＯＰ指示がXORを指定するものであるときは、このＲＯＰ指示の指示内容が、命令変換適合条件の参照テーブル（図７参照）のステップ１で規定された各々のＲＯＰ命令変換部５２３Ａ〜５２３ＤのＲＯＰ指示内容と比較される。そして、この比較結果によりステップ１のＲＯＰ指示内容がXORに設定された３ステップＲＯＰ命令変換部５２３Ｃと４ステップＲＯＰ命令変換部５２３Ｄがそれぞれ第２の変換候補として選択され、変換候補リストに登録されることになる。
【００７４】
ここで、上述した一連の命令変換処理にしたがって実際の処理の流れを時系列的にシミュレーションしてみると、次のようになる。先ず、ステップＳ１１で命令変換処理部５２の内部状態が通常実行状態に設定されたときに、例えばステップＳ１２で描画オブジェクト指示の描画命令を取得したとすると、この描画命令はステップＳ１９でＲＯＰ処理を使用しない描画命令としてイメージング部５３に送られる。以降、ステップＳ１２で描画オブジェクト指示の描画命令を連続して取得している間は、同じ処理が繰り返される。
【００７５】
これに対して、ステップＳ１２でＲＯＰ指示の描画命令を取得したとすると、この描画命令はステップ１６で命令蓄積部５２２により命令バッファ６１に蓄積される。その後、変換候補選択部５２４による変換候補リストの更新処理が行われる。このとき、先に取得したＲＯＰ指示の描画命令がORを指示する内容であるとすると、変換候補リストの更新処理では、命令変換適合条件の参照テーブルでステップ１のＲＯＰ指示内容がORに一致するＲＯＰ命令変換部が存在するかどうかを確認する。この場合、ステップ１のＲＯＰ指示内容がORで規定されたＲＯＰ命令変換部は存在しないため、変換候補が１つも選択されず、変換候補リストへの登録が行われないことになる。したがって、その後のステップＳ２０では変換候補が無しとの判断から、命令蓄積部５２２により蓄積された描画命令、即ちORを指示したＲＯＰ指示の描画命令がそのままイメージング部５３に渡され、これに続いて取得される描画オブジェクト指示の描画命令もそのままイメージング部５３に渡される。
【００７６】
これに対して、先に取得したＲＯＰ指示の描画命令がXORを指示する内容であるとすると、変換候補リストの更新処理では命令変換適合条件の参照テーブルにしたがって３ステップＲＯＰ命令変換部５２３Ｃと４ステップＲＯＰ命令変換部５２３Ｄが、それぞれ第２の変換候補として選択され、変換候補リストに登録される。その後、ステップＳ２０での判断処理では変換候補リストに変換候補が有りと判断されるが、この時点では、先に選択された変換候補の全てが第１の変換候補になっていないため、内部状態の設定を変換判定状態に更新した後、ステップＳ１２に戻って描画命令の取得を行う。このとき取得される描画命令の指示は必ず描画オブジェクト指示となる。取得した描画オブジェクト指示の描画命令はステップＳ１６で命令蓄積部５２２により命令バッファ６１に蓄積され、再び変換候補選択部５２４による変換候補リストの更新処理が行われる。
【００７７】
このとき、先の取得した描画オブジェクト指示の描画命令が「黒と白の画素からなるイメージで描画する」といった指示内容であるとすると、現在変換候補として選択されている３ステップＲＯＰ命令変換部５２３Ｃと４ステップＲＯＰ命令変換部５２３Ｄがそのまま第２の変換候補として変換候補リストに残る。その後、上記同様にステップＳ２０での判断処理では変換候補リストに変換候補が有りと判断されるが、この時点では変換候補の全てが第１の変換候補になっていないため、上記同様に内部状態の設定を変換判定状態に更新してステップＳ１２に戻り、再び描画命令の取得を行う。
【００７８】
このとき取得した描画命令が、例えば描画オブジェクト指示であるとすると、この描画オブジェクト指示の描画命令は命令蓄積部５２２によって一旦命令バッファ６１に蓄積されるものの、その後の変換候補リストの更新処理では、その時点で変換候補として選択されている３ステップＲＯＰ命令変換部５２３Ｃと４ステップＲＯＰ命令変換部５２３Ｄで変換可能な指示内容に対してステップ２の指示内容が一致しないため、これらのＲＯＰ命令変換部５２３Ｃ，５２３Ｄが変換候補リストから削除される。そして、ステップＳ２０で変換候補が無しと判断され、それまで命令蓄積部５２２により命令バッファ６１に蓄積された全ての描画命令が変換せずにイメージング部５３に渡される。
【００７９】
これに対して、取得した描画命令が、例えばＲＯＰ指示であって、このＲＯＰ指示内容がANDであるとすると、この描画命令を命令バッファ６１に蓄積した後に行われる変換候補リストの更新処理では、その時点で変換候補に選択されている３ステップＲＯＰ命令変換部５２３Ｃと４ステップＲＯＰ命令変換部５２３Ｄで変換可能な指示内容に対してステップ２の指示内容が一致するため、これらのＲＯＰ命令変換部５２３Ｃ，５２３Ｄが第２の変換候補としてそのまま変換候補リストに残る。
【００８０】
その後、ステップ３のＲＯＰ指示の描画命令まで指示内容が一致して変換候補リストに３ステップＲＯＰ命令変換部５２３Ｃと４ステップＲＯＰ命令変換部５２３Ｄが存在しているときに、ステップＳ１２で取得した描画命令が描画オブジェクト指示でかつその指示内容がステップ１と同じ指示であった場合は、この描画命令を命令バッファ６１に蓄積した後に行われる変換候補リストの更新処理において、３ステップＲＯＰ命令変換部５２３Ｃは第１の変換候補として、４ステップＲＯＰ命令変換部５２３Ｄは第２の変換候補として選択されて変換候補リストに残る。この時点では、３ステップＲＯＰ命令変換部５２３Ｃで代替描画命令への変換処理を行うことができるものの、変換候補リストの中には３ステップＲＯＰ命令変換部５２３Ｃ（第１の変換候補）よりも多くのステップの描画命令を変換し得る可能性を持つ４ステップＲＯＰ命令変換部５２３Ｄ（第２の変換候補）が存在するため、ステップＳ２０では変換候補の全てが第１の変換候補になっていないと判断し、再びステップＳ１２に戻って描画命令の取得を行う。
【００８１】
このとき取得した描画命令が、例えば描画オブジェクト指示の描画命令であるとすると、この描画命令は４ステップＲＯＰ命令変換部５２３Ｄで変換可能な描画命令の指示内容に一致しないため、その後のリスト更新処理では、それまで第２の変換候補として残っていた４ステップＲＯＰ命令変換部５２３Ｄが変換候補リストから削除される。その結果、変換候補リストには、第１の変換候補として選択された３ステップＲＯＰ命令変換部５２３Ｃだけが残るため、ステップＳ２２で全ての変換候補が第１の変換候補になったと判断される。その結果、３ステップＲＯＰ命令変換部５２３Ｃによって代替描画命令への変換処理が行われる。その際、３ステップＲＯＰ命令変換部５２３Ｃで変換不可能な描画命令、即ちステップ４の指示内容と比較された描画オブジェクト指示の描画命令は、ＲＯＰ処理を使用しない描画命令としてイメージング部５３に送られる。
【００８２】
これに対して、取得した描画命令が、例えばＲＯＰ指示の描画命令で、その描画命令のＲＯＰ指示内容がORであるとすると、この描画命令は４ステップＲＯＰ命令変換部５２４Ｄで変換可能な描画命令の指示内容と一致するため、その後のリスト更新処理では４ステップＲＯＰ命令変換部５２３Ｄが第２の変換候補として変換候補リストに残る。また、描画命令のＲＯＰ指示内容がOR以外であるとすると、この描画命令は４ステップＲＯＰ命令変換部５２４Ｄで変換可能な描画命令の指示内容と一致しないため、その後のリスト更新処理では４ステップＲＯＰ命令変換部５２３Ｄが変換候補リストから削除される。その際、描画命令のＲＯＰ指示内容がANDであるとすると、これに続く描画命令の描画オブジェクト指示内容によっては１ステップＲＯＰ命令変換部５２３Ａや２ステップＲＯＰ命令変換部５２３Ｂで代替描画命令に変換し得る可能性もある。こうした状況への対応としては、ＲＯＰ指示がANDである描画命令をそのまま命令バッファ６１に蓄積しておいて、次回の変換候補リストの更新処理に用いるようにすればよい。
【００８３】
一方、上記ＲＯＰ指示（ORの指示）の描画命令に続いて取得された描画オブジェクト指示の描画命令が「指定する形状がステップ２で指定する形状と同じ」といった指示内容であるとすると、この描画命令は４ステップＲＯＰ命令変換部５２３Ｄで変換可能な描画命令の指示内容と最終のステップで一致するため、その後のリスト更新処理では、先述した３ステップＲＯＰ命令変換部５２３Ｃと同様に４ステップＲＯＰ命令変換部５２３Ｄも第１の変換候補として選択されて変換候補リストに残る。この時点では、全ての変換候補が第１の変換候補になるため、ステップＳ２４では最も多くのステップの描画命令を代替描画命令に変換可能な第１の変換候補として４ステップＲＯＰ命令変換部５２３Ｄが選択される。その結果、４ステップＲＯＰ命令変換部５２３Ｄによって代替描画命令への変換処理が行われる。
【００８４】
また、上記ＲＯＰ指示の描画命令に続いて取得された描画オブジェクト指示の描画命令が「指定する形状がステップ２で指定する形状と同じ」といった指示内容ではなかったとすると、この描画命令は４ステップＲＯＰ命令変換部５２３Ｄで変換可能な描画命令の指示内容と最終のステップで一致しないため、その後のリスト更新処理では、それまで第２の変換候補として残っていた４ステップＲＯＰ命令変換部５２４Ｄが変換候補リストから削除される。
【００８５】
これにより、変換候補リストに３ステップＲＯＰ命令変換部５２３Ｃだけが残るため、ステップＳ２２で全ての変換候補が第１の変換候補になったと判断される。その結果、３ステップＲＯＰ命令変換部５２３Ｃによって代替描画命令への変換処理が行われる。その際、３ステップＲＯＰ命令変換部５２３Ｃで変換不可能な描画命令、即ちステップ４の指示内容と比較されたＲＯＰ指示と描画オブジェクト指示の描画命令は、代替描画命令に変換されず、ＲＯＰ処理を使用する描画命令としてイメージング部５３に送られる。
【００８６】
このように本実施形態に係るプリンタ２の命令変換処理部５２においては、命令蓄積部５２２によって命令バッファ６１に描画命令が蓄積されるたびに、その描画命令の指示内容と命令変換適合条件の参照テーブルの指示内容とを比較しつつ、第１の変換候補と第２の変換候補を選択する処理を繰り返し行い、選択された全ての変換候補が第１の変換候補となった時点で、この第１の変換候補に変換実行を指示して代替描画命令への変換処理を実行させるようにしている。これにより、代替描画命令に変換可能なＲＯＰ描画パターンとして、３ステップＲＯＰ描画パターンとこれを内包する４ステップＲＯＰ描画パターンが存在する場合でも、それらのＲＯＰ描画パターンに適したＲＯＰ命令変換部に変換処理を実行させることができる。そのため、ＲＯＰ指示を含む描画命令を代替描画命令に変換する際の変換処理を柔軟にしかも適切かつ効率良く行うことが可能となる。
【００８７】
また、変換候補選択部５２４による変換候補リストの更新処理結果として、変換候補リストに第１の変換候補が複数存在する場合、最も多くのステップの描画命令を代替描画命令に変換可能な第１の変換候補に対して変換実行を指示するため、実際に変換処理を行う変換実行の指示先を最適化して高速な画像処理を実現することが可能となる。
【００８８】
また、変換候補リストに第１の変換候補よりも多くのステップの描画命令を代替描画命令に変換し得る可能性を持つ第２の変換候補が存在する場合は、次に取得した描画命令が命令蓄積部５２２で蓄積されるまで変換実行の指示を遅延するため、次に取得した描画命令に応じて最適な変換候補に変換実行を指示することができる。
【００８９】
即ち、次に取得した描画命令が第２の変換候補で代替描画命令に変換可能な描画命令であった場合は、この第２の変換候補（命令取得後のリスト更新処理で第１の変換候補として選択される変換候補）に対して変換実行を指示することにより、より多くのステップの描画命令を代替描画命令に変換することができる。
【００９０】
また、次に取得した描画命令が第２の変換候補で代替描画命令に変換不可能な描画命令であった場合又は次の描画命令を取得できなかった場合は、第２の変換候補よりも少ないステップの描画命令を代替描画命令に変換可能な第１の変換候補に対して変換実行を指示することにより、それまでの処理を無駄にすることなく、代替描画命令への変換処理を実行させることができる。
【００９１】
ちなみに、代替描画命令への変換が可能なＲＯＰ描画パターンのステップ数が多くなると、上述した一連の命令変換処理を実行している最中に、命令蓄積部５２２による描画命令の蓄積処理に伴い、命令蓄積部５２２が使用できる資源（本例では命令バッファのメモリ容量）が不足する場合も考えられる。
【００９２】
このような場合は、資源不足の発生を命令変換制御部５２１で検知し、これを検知した時点で命令変換制御部５２１が即座に変換実行を指示する構成とすればよい。この場合、命令変換制御部５２１では、資源不足が発生するまでに命令蓄積部５２２で蓄積した描画命令を代替描画命令に変換可能な命令変換部として変換候補選択部５２４が選択した変換候補に対して変換実行を指示するものとする。これにより、処理の途中で資源不足が発生しても、それまでの処理を無駄することなく、命令変換部５２３で代替描画命令への変換処理を実行させることが可能となる。
【００９３】
【発明の効果】
以上説明したように本発明の画像処理装置によれば、描画命令で指示される様々な指示内容の出現パターンに対して、論理演算指示を含む描画命令を代替描画命令に変換する際の命令変換処理を柔軟にしかも適切かつ効率良く行うことができる。これにより、例えば、論理演算指示を含む描画命令とこれを一部として描画命令とを正しく認識し、それぞれの描画命令に対して最も効率的な命令変換形態を適用して画像処理速度を向上させることができる。
【図面の簡単な説明】
【図１】  本発明の実施形態に係る印刷処理システムの構成を示すブロック図である。
【図２】  命令変換処理部の内部の機能構成を示すブロック図である。
【図３】  命令変換部で実行される描画命令変換処理の第１処理例を説明する図である。
【図４】  命令変換部で実行される描画命令変換処理の第２処理例を説明する図である。
【図５】  命令変換部で実行される描画命令変換処理の第３処理例を説明する図である。
【図６】  命令変換部で実行される描画命令変換処理の第４処理例を説明する図である。
【図７】  命令変換適合条件の指示内容を規定した参照テーブルの一例を示す図である。
【図８】  命令変換処理を示すフローチャート（その１）である。
【図９】  命令変換処理を示すフローチャート（その２）である。
【図１０】  変換候補リストの更新処理を示すフローチャート（その１）である。
【図１１】  変換候補リストの更新処理を示すフローチャート（その２）である。
【符号の説明】
１…ホストコンピュータ、２…プリンタ、５１…インタプリタ部、５２…命令変換処理部、５３…イメージング部、６１…命令バッファ、５２１…命令変換制御部、５２２…命令蓄積部、５２３…命令変換部、５２３Ａ〜５２３Ｄ…ＲＯＰ命令変換部、５２４…変換候補選択部
【図１】
0004062942.tif 000002
【図２】
0004062942.tif 000003
【図３】
0004062942.tif 000004
【図４】
0004062942.tif 000005
【図５】
0004062942.tif 000006
【図６】
0004062942.tif 000007
【図７】
0004062942.tif 000008
【図８】
0004062942.tif 000009
【図９】
0004062942.tif 000010
【図１０】
0004062942.tif 000011
【図１１】
0004062942.tif 000012