(57)【特許請求の範囲】
【請求項１】
複数の有彩色および無彩色のプレーンからなるラスタ画像を記憶する記憶手段と、
取得した描画制御データに従って、第１のラスタ画像および第２のラスタ画像を描画して前記記憶手段に書き込み、前記第１のラスタ画像の無彩色のプレーンを参照しながら、前記描画制御データに指令される前記第１のラスタ画像と前記第２のラスタ画像との画像間のラスタ操作演算を代替する代替演算を実行する描画手段と
を含み、前記描画手段は、前記代替演算として、前記複数の有彩色および無彩色のプレーンの各プレーンにつき、前記第１のラスタ画像の無彩色のプレーン上のマスク指定階調値を含む領域に、対応する前記第２のラスタ画像の各プレーンの階調値を上書きする、画像処理装置。
【請求項２】
前記描画制御データに含まれるラスタ操作演算の指令と、前記ラスタ操作演算の指令の前段階の指令とから、前記代替演算に変更する必要があるか否かを判定する判定手段をさらに含む、請求項１に記載の画像処理装置。
【請求項３】
受信した前記描画制御データを解釈し、前記判定手段による判定の結果、前記代替演算への変更が必要であった場合に、前記描画制御データに指令されるラスタ操作演算の指令を、前記代替演算の指令に変換する解釈手段と、
前記記憶手段に記憶されたラスタ画像を読み出して、画像形成エンジンに送出する画像送出手段と
をさらに含む、請求項２に記載の画像処理装置。
【請求項４】
前記ラスタ画像は、前記複数の有彩色のプレーンと前記無彩色のプレーンとが非独立の関係を有し、かつ、各プレーンが当該画像処理装置に接続される画像形成エンジンに応じた階調深度を有する画像データであり、
前記ラスタ操作演算は、前記複数の有彩色および無彩色による色空間とは異なる色空間での処理を前提として指令されている、請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
画像処理装置が、取得した描画制御データに従って、複数の有彩色および無彩色のプレーンからなる第１のラスタ画像および第２のラスタ画像を描画して、記憶手段に書き込むステップと、
画像処理装置が、前記第１のラスタ画像の無彩色のプレーンを参照しながら、前記描画制御データに指令される前記第１のラスタ画像と前記第２のラスタ画像との画像間のラスタ操作演算を代替する代替演算を実行するステップと
を含み、前記代替演算を実行するステップは、画像処理装置が、前記複数の有彩色および無彩色のプレーンの各プレーンにつき、前記第１のラスタ画像の無彩色のプレーン上のマスク指定階調値を含む領域に、対応する前記第２のラスタ画像の各プレーンの階調値を上書きするステップを含む、画像処理方法。
【請求項６】
画像処理装置が、前記描画制御データに含まれるラスタ操作演算の指令と、前記ラスタ操作演算の指令の前段階の指令とから、前記代替演算に変更する必要があるか否かを判定するステップと、
画像処理装置が、判定の結果、前記代替演算への変更が必要であった場合に、前記描画制御データに指令されるラスタ操作演算の指令を、前記代替演算の指令に変換するステップと
をさらに含む、請求項５に記載の画像処理方法。
【請求項７】
画像処理装置が実行する装置実行可能なプログラムであって、前記プログラムは、前記画像処理装置を、
複数の有彩色および無彩色のプレーンからなるラスタ画像を記憶する記憶手段、および
取得した描画制御データに従って、第１のラスタ画像および第２のラスタ画像を描画して前記記憶手段に書き込み、前記第１のラスタ画像の無彩色のプレーンを参照しながら、前記描画制御データに指令される前記第１のラスタ画像と前記第２のラスタ画像との画像間のラスタ操作演算を代替する代替演算を実行する描画手段
として機能させるためのプログラムであり、前記描画手段は、前記代替演算として、前記複数の有彩色および無彩色のプレーンの各プレーンにつき、前記第１のラスタ画像の無彩色のプレーン上のマスク指定階調値を含む領域に、対応する前記第２のラスタ画像の各プレーンの階調値を上書きする、プログラム。
【請求項８】
前記プログラムは、前記画像処理装置を、さらに、
前記描画制御データに含まれるラスタ操作演算の指令と、前記ラスタ操作演算の指令の前段階の指令とから、前記代替演算に変更する必要があるか否かを判定する判定手段
として機能させる、請求項７に記載のプログラム。
【請求項９】
前記プログラムは、前記画像処理装置を、さらに、
受信した前記描画制御データを解釈し、前記判定手段による判定の結果、前記代替演算への変更が必要であった場合に、前記描画制御データに指令されるラスタ操作演算の指令を、前記代替演算の指令に変換する解釈手段、および
前記記憶手段に記憶されたラスタ画像を読み出して画像形成エンジンに送出する画像送出手段
として機能させる、請求項８に記載のプログラム。
【請求項１０】
前記ラスタ画像は、前記複数の有彩色のプレーンと前記無彩色のプレーンとが非独立の関係を有し、かつ、各プレーンが当該画像処理装置に接続される画像形成エンジンに応じた階調深度を有する画像データであり、
前記ラスタ操作演算は、前記複数の有彩色および無彩色による色空間とは異なる色空間での処理を前提として指令されている、請求項７〜９のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に関し、より詳細には、画像間の演算処理を行なう画像処理装置、画像処理方法およびプログラムに関する。
【背景技術】
【０００２】
複合機やレーザプリンタなどの画像形成装置は、Ｗｉｎｄｏｗｓ（登録商標）がサポートするラスタ操作（ＲＯＰ：Raster Operation）演算など、各種画像の論理演算機能に対応している。このＲＯＰ演算は、描画オブジェクトの重ね合わせといった高度な表現力を実現する。
【０００３】
アプリケーションからＷｉｎｄｏｗｓ（登録商標）のＧＤＩ（Graphic Device Interface）経由で要求される上記ＲＯＰ演算は、ＲＧＢ色空間の各色８ｂｉｔ階調深度での処理を前提としている。一方、画像形成装置のプリンタ・コントローラ上では、装置の掲載メモリの制約およびパフォーマンスの観点から、ＣＭＹＫ色空間の１ｂｉｔまたは２ｂｉｔの階調深度といった、プロッタ・エンジン出力に最低限必要な色空間および階調深度にて画像を扱うことが望まれている。また、ＲＯＰ演算を、最低限必要な色空間および階調深度にて実現することができれば、必要なメモリ・リソースを削減でき、同時にパフォーマンスを向上させることができる。
【０００４】
このような背景から、プロッタ・エンジンに応じたＣＭＹＫ色空間および少値の階調深度にてＲＯＰ演算を実現することが望まれていた。しかしながら、上記論理演算処理をＣＭＹＫ色空間でそのまま行なうと、色味の互換性が保てず、モニタ上のイメージと印刷出力結果との間で色が相違してしまうという問題があった。このため、従来では、ＲＯＰ演算が要求されたときにＲＧＢ色空間に変換して処理を行ったり、ＣＭＹＫ色空間にてＲＧＢ色空間でＲＯＰ演算を行なった場合のものに近い結果が得られるよう独自のＲＯＰ演算に変換したり、ＲＯＰ演算結果を修正したりといった、種々の手法が提案されている。
【０００５】
例えば特開２０００−２３６４５１号公報（特許文献１）は、同じ画素位置に対する描画処理が複数回発生した場合に、下地画像を取りこみ新たな描画データと演算描画（ＲＯＰ）を行ない出力画像を更新する手段を備えたことを特徴とするカラー画像処理装置を開示している。また特開２００５−１５１３８１号公報（特許文献２）は、ＣＭＹＫ空間でディザ処理を行えるようにすると同時に、ＲＯＰの互換性を保てられる画像処理方法を提供することを目的として、複数のラスタ操作コードの中における所定のラスタ操作コードで無ければ、色分解された各画像データに黒色生成または下地除去の処理を施して画像データから黒色の画像データを除去した後残りの各画像データのそれぞれにラスタ操作処理を行ない、そして黒色の画像データをディザ処理された画像データに戻す画像処理を行なう画像処理方法を開示する。
【特許文献１】特開２０００−２３６４５１号公報
【特許文献２】特開２００５−１５１３８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、一連のＧＤＩコールにより要求されるＲＯＰ演算には、所望の描画結果を得るために複数のＲＯＰ演算を組み合わせる場合があり、従来技術では、対応することができなかった。図７を参照して、複数のＲＯＰ演算の複合による描画オブジェクトの重ね合わせ処理について説明する。図７は、ＲＧＢ色空間における２段階のＲＯＰ演算による描画結果を一例として示す。図７に示す２段階のＲＯＰ演算では、背景画像と描画オブジェクトの透過的な重ね合わせが実現される。第１段階目のＲＯＰ演算では、背景画像のデスティネーション画像（Destination-1）２００と、黒文字「Ａ」の形状のマスクイメージが描画されたソース画像（Source-1）２０２とを、ＲＯＰ０ｘ８８（ＡＮＤ）にて処理すると、背景画像に文字「Ａ」の形状のマスクが重ね合わされたデスティネーション画像（Destination-2）２０４が描画結果として得られる。
【０００７】
続いて第２段階目では、第１段階のＲＯＰ演算により得られたデスティネーション画像（Destination-2）２０４を参照し、該デスティネーション画像２０４と、背景に重ね合わせたい文字「Ａ」が描かれたソース画像（Source-2）２０６とを、ＲＯＰ０ｘＥＥ（ＯＲ）にて処理すると、背景画像に文字「Ａ」が重ね合わされたデスティネーション画像（Destination-3）２０８が描画結果として得られる。上述のように、ＲＧＢ色空間においては、論理積および論理和のＲＯＰ演算を複合させることによって、背景オブジェクトに目的の描画オブジェクトを透過的に重ね合わせることが可能となる。
【０００８】
しかしながら、上述のような複合的なＲＯＰ演算をＣＭＹＫ空間にて実現させようとする場合、特に、前段階で得られたデスティネーション画像を参照するようなＲＯＰ演算の場合には、従来技術は、最適とは言えない結果が得られ、充分に対応できるものではなかった。例えば、上記第２段階目で、ソース画像（Source-2）２０６の背景部分（黒地部分）をマスクして、文字「Ａ」の描画オブジェクト部分のみをデスティネーション画像（Destination-1）に上書きする代替処理も提案されているが、この場合、ソース画像（Source-2）の背景部分に背景色以外の画素がノイズまたはゴミとして含まれると、ノイズまたはゴミまで描画結果に現れてしまうという問題もあった。
【０００９】
本発明は、上記問題点に鑑みてなされたものであり、例えばＲＯＰ０ｘ８８およびＲＯＰ０ｘＥＥのＲＯＰ演算を複合させたような複合的なラスタ操作演算を、例えばＣＭＹＫ空間のような複数の有彩色および無彩色による色空間上の演算にて、ＲＧＢ色空間で実行された場合に期待されるものと同様な描画結果が得られるよう実現する画像処理装置、画像処理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明では、上記課題を解決するために、取得した描画制御データに従って、複数の有彩色および無彩色のプレーンからなる第１のラスタ画像および第２のラスタ画像を描画して、記憶手段に書き込み、上記第１のラスタ画像の無彩色のプレーンを参照しながら、描画制御データに指令される上記第１のラスタ画像と上記第２のラスタ画像との画像間のラスタ操作演算（ＲＯＰ演算）を代替する代替演算を実行する構成を採用する。
【００１１】
ラスタ操作演算は、ＲＧＢ色空間上で行われることが前提とされるが、上記構成により、複数の有彩色および無彩色のプレーンからなるラスタ画像を扱う画像処理装置においても、適切な描画結果を得ることが可能となる。要求のラスタ操作演算が、複数の有彩色および無彩色による色空間上の演算にて代替されるため、ラスタ操作演算をＲＧＢ色空間上で実行するための余分な記憶領域の必要性が回避され、装置の記憶容量の削減およびパフォーマンスの向上を可能とする。
【００１２】
なお上記代替とは、指令されるラスタ操作演算がその実行の前提となるＲＧＢ色空間上で行われた場合の結果に適合する描画結果を、複数の有彩色および無彩色による色空間にて得ることを言う。上記構成では、例えば有彩色のプレーンと無彩色のプレーンとが非独立の関係に有るようなＣＭＹＫ色空間にて表現されたラスタ画像であっても、上記代替演算の際に参照される無彩色のプレーンが、適切にマスクの形状が反映されていることが期待されるため、適切な描画結果を得ることができる。
【００１３】
また上記代替演算では、無彩色のプレーンに対する演算を、他の有彩色のプレーンに対する演算の後に実行することができる。また、上記判定手段は、例えば画像間の論理積のラスタ操作演算の指令に続き、前記第１のラスタ画像と前記第２のラスタ画像との画像間の論理和のラスタ操作演算の指令がなされた場合に、代替演算が必要であると判定することができる。また上記処理手段は、画像間の論理積のラスタ操作演算が指令された場合には、該ラスタ操作演算を代替して、画像間の論理和のラスタ操作演算を実行することができる。上記ラスタ画像は、シアン、マゼンダおよびイエローの３つの有彩色およびブラックの無彩色からなるＣＭＹＫ色空間にて表現され、各色１〜４ビットの階調深度を有する画像とすることができる。
【００１４】
すなわち本発明によれば、複数の有彩色および無彩色のプレーンからなるラスタ画像を記憶する記憶手段と、
取得した描画制御データに従って、第１のラスタ画像および第２のラスタ画像を描画して前記記憶手段に書き込み、前記第１のラスタ画像の無彩色のプレーンを参照しながら、前記描画制御データに指令される前記第１のラスタ画像と前記第２のラスタ画像との画像間のラスタ操作演算を代替する代替演算を実行する描画手段と
を含む画像処理装置が提供される。
【００１５】
前記描画手段は、前記代替演算として、前記複数の有彩色および無彩色のプレーンの各プレーンにつき、前記第１のラスタ画像の無彩色のプレーン上のマスク指定階調値を含む領域に、対応する前記第２のラスタ画像の各プレーンの階調値を上書きすることができる。また上記画像処理装置は、前記描画制御データに含まれるラスタ操作演算の指令と、前記ラスタ操作演算の指令の前段階の指令とから、前記代替演算に変更する必要があるか否かを判定する判定手段をさらに含むことができる。
【００１６】
さらに、上記画像処理装置は、受信した前記描画制御データを解釈し、前記判定手段による判定の結果、前記代替演算への変更が必要であった場合に、前記描画制御データに指令されるラスタ操作演算の指令を、前記代替演算の指令に変換する解釈手段と、前記記憶手段に記憶されたラスタ画像を読み出して、画像形成エンジンに送出する画像送出手段とをさらに含むことができる。前記ラスタ画像は、前記複数の有彩色のプレーンと前記無彩色のプレーンとが非独立の関係を有し、かつ、各プレーンが当該画像処理装置に接続される画像形成エンジンに応じた階調深度を有する画像データであり、前記ラスタ操作演算は、前記複数の有彩色および無彩色による色空間とは異なる色空間での処理を前提として指令されているものとすることができる。
【００１７】
また、本発明によれば、取得した描画制御データに従って、複数の有彩色および無彩色のプレーンからなる第１のラスタ画像および第２のラスタ画像を描画して、記憶手段に書き込むステップと、
前記第１のラスタ画像の無彩色のプレーンを参照しながら、前記描画制御データに指令される前記第１のラスタ画像と前記第２のラスタ画像との画像間のラスタ操作演算を代替する代替演算を実行するステップと
を含む画像処理方法が提供される。
【００１８】
さらに本発明によれば、画像処理装置を、上記各手段として機能させる装置実行可能なプログラムが提供される。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態を説明するが、本発明の実施形態は、以下の実施形態に限定されるものではない。なお本実施形態では、画像処理装置の一例として、プリント機能を有するレーザプリンタ１０に用いられるプリント・コントローラ１２を例として説明する。
【００２０】
図１は、レーザプリンタ１０のハードウェア構成の実施形態を示す図である。図に示したレーザプリンタ１０は、プリント・コントローラ１２と、原稿に画像出力するプロッタ・エンジン３４と、ユーザからの入力操作を待ち受ける操作パネル３６とを含んで構成される。
【００２１】
プリント・コントローラ１２は、中央演算処理装置（ＣＰＵ）１４と、システム・メモリ１６と、システムの各種設定を格納するＮＶ−ＲＡＭ１８と、プロッタ・エンジン３４との間のインタフェースであるエンジン・インタフェース（Ｉ／Ｆ）２０と、描画メモリ２２とを含んで構成される。さらに、プリンタ・コントローラ１２は、ホスト・パーソナル・コンピュータ（以下、ホストＰＣとして参照する。）６０をシリアル、パラレルまたはネットワーク接続させるホストＩ／Ｆ２４と、制御プログラムを格納するプログラムＲＯＭ２６と、印字のためのフォントを格納するフォントＲＯＭ２８と、操作パネル３６とのインタフェースであるパネルＩ／Ｆ３０とを含んで構成される。プリント・コントローラ１２上のこれらの要素は、内部バス３２を介して接続する。
【００２２】
プリント・コントローラ１２は、描画制御データを構成するホストＰＣ６０から受信したＰＤＬ（ページ記述言語）などの印刷制御データに従って、描画データにラスタライズし、プロッタ・エンジン３４に対して画像出力させる。上記描画メモリ２２は、ホストＰＣ６０からの印刷制御データ、該印刷制御データから生成される中間データ、ラスタ形式の描画データを記憶する。レーザプリンタ１０は、プログラムＲＯＭ２６やＮＶ−ＲＡＭ１８などの記憶装置に格納されたプログラム（図示せず）および設定情報（図示せず）を読出し、ＣＰＵ１４の作業メモリ領域を提供するシステム・メモリ１６のメモリ領域に展開し、また描画メモリ２２を画像形成処理の作業領域として利用することによって、後述する各機能手段および各処理を実現する。
【００２３】
図２は、本実施形態のレーザプリンタ１０における描画処理のデータフロー図を示す。ホストＰＣ６０は、アプリケーションからのドキュメント・データを、所定のプリンタ・ドライバを使用して、複数の描画コマンドからなる印刷制御データに変換して、レーザプリンタ１０に送信し、プリントを指令する。上記描画コマンドは、文字、グラフィック、イメージの描画指令を含むことができる。また上記印刷制御データは、ＰｏｓｔＳｃｒｉｐｔ（登録商標）、ＰＣＬ（登録商標）、ＬＩＰＳ（登録商標）、ＲＰＤＬ（登録商標）など、種々のプリンタ言語により記述されたデータとすることができ、特に限定されるものではない。
【００２４】
レーザプリンタ１０では、インタプリタ部４０が、ホストＰＣ６０から受信した印刷制御データを解釈し、中間データを生成し、中間データ記憶部４６へ一時的に記憶する。描画処理部４４は、中間データ記憶部４６から中間データを読み出し、中間データに含まれる描画指令に応じてラスタライズする。上記ラスタライズでは、例えば、ＲＧＢ多値の描画オブジェクトを、カラーマッチングおよびＵＣＲ／ＢＧ（Under Color Removal / Black Generation）によりＣＭＹＫ色空間に変換し、ガンマ処理などの所定の画像処理を実施した後、ディザリング等によりプロッタ・エンジン３４が扱い可能な階調深度に少値化し、例えばＣＭＹＫ色空間の各色プレーン１ｂｉｔの階調深度を有したラスタ形式の描画データを生成し、描画データ記憶部４８に記憶する。描画データ記憶部４８に記憶された描画データは、プロッタ・エンジン３４へ送出され、プロッタ・エンジン３４は、描画データに従って原稿上に画像出力する。
【００２５】
また本実施形態では、インタプリタ部４０は、印刷制御データにラスタ操作（ＲＯＰ：Raster Operation）演算の指令が含まれている場合には、複合ＲＯＰ判定部４２に対し当該ＲＯＰ演算の指令と、その直前の指令の識別値とを渡して問い合わせ、代替演算処理への変更の要否判定を依頼する。またインタプリタ部４０は、判定結果を受け取り、代替演算処理への変更が必要である場合には、ＲＯＰ演算の指令を代替演算処理の指令に変換する。複合ＲＯＰ判定部４２は、インタプリタ部４０からの問い合わせに応答して、要求のＲＯＰ演算処理を代替演算処理へ変更する必要があるか否かを判定し、判定結果を返答する。なお、ＲＯＰ演算の指令の識別値には、例えばＲＯＰ３では、２５６通りの組み合わせのいずれかの種類を指定するＲＯＰコードが付されている。
【００２６】
上記描画処理部４４は、より具体的には、通常の描画処理を実行する通常図形描画処理部５２と、代替演算処理を実行するＫプレーン参照図形描画処理部５０とを含んで構成される。描画処理部４４は、中間データを読み込み、代替演算処理が指令されていた場合には、Ｋプレーン参照図形描画処理部５０をして、指令された描画処理を実行させる。一方、代替演算処理以外の通常のＲＯＰ演算の指令がされていた場合には、通常図形描画処理部５２をして、指令された描画処理を実行させる。
【００２７】
なお、上記ＲＯＰ演算とは、２以上の描画オブジェクトを重ね合わせる際に実行される画像間の論理演算処理である。ＲＯＰ演算を行なうことによって、単に上下関係をつけて上書きするだけでなく、「透過」や「反転」などの効果を与えることができる。Ｗｉｎｄｏｗｓ（登録商標）のＧＤＩ（Graphic Device Interface）では、ＲＯＰ２、ＲＯＰ３などのＲＯＰ命令がサポートされている。ＲＯＰ２では、ソース画像とデスティネーション画像との２つのラスタ画像の描画オブジェクトの論理演算を行なうものであり、描画オブジェクトの状態および出力結果の組み合わせから１６種類存在する。ＲＯＰ３は、ソース画像およびデスティネーション画像の他に、パターン画像を加えた、３つの描画オブジェクトの論理演算を行なうものであり、描画オブジェクトの状態および出力結果から２５６種類存在する。このＲＯＰ演算による描画結果は、デスティネーション画像が記憶されるメモリ領域に上書きされることとなる。本実施形態のプリント・コントローラ１２は、特定の複数のＲＯＰ演算が特定の順序で実施される実施された場合に、該ＲＯＰ演算を、ＣＭＹＫ色空間に適合した代替演算処理に変換する。
【００２８】
以下、複合ＲＯＰ判定部４２による判定処理について、フローチャートを参照しながら説明する。図３は、複合ＲＯＰ判定部４２における判定処理のフローチャートを示す。図３に示す処理は、インタプリタ部４０からの問い合わせを受けて、ステップＳ１００から開始される。ステップＳ１０１では、問い合わせに含まれるＲＯＰ演算の指令の識別値から、対応するＲＯＰコードを得て、ステップＳ１０２で、該ＲＯＰコードが［０ｘＥＥ］であるか否かを判定する。なお、上記［０ｘＥＥ］のＲＯＰコードは、ＲＧＢ色空間でのソース画像およびデスティネーション画像の画像間の論理和を指定するものである。
【００２９】
ステップＳ１０２で、ＲＯＰコードが［０ｘＥＥ］では無いと判定された場合（ＮＯ）には、ステップＳ１０６へ分岐させ、通常図形描画処理を実行するものとし、インタプリタ部４０に代替演算処理が不要である旨を通知し、ステップＳ１０５で処理を終了させる。一方、ステップＳ１０２で、ＲＯＰコードが［０ｘＥＥ］であると判定された場合（ＹＥＳ）には、ステップＳ１０３へ分岐させる。
【００３０】
ステップＳ１０３では、直前の指令が、ＲＯＰコード［０ｘ８８］で指定されるＲＯＰ演算であったか否かを判定する。ステップＳ１０３で、直前の指令がＲＯＰコード［０ｘ８８］で指定されるＲＯＰ演算ではないと判定された場合（ＮＯ）には、処理をステップＳ１０６へ分岐させ、通常図形描画処理を実行するものと判定し、インタプリタ部４０に対し、代替演算処理が不要である旨を判定結果として返信し、ステップＳ１０５で処理を終了させる。一方、ステップＳ１０３で、直前の指令が、ＲＯＰコード［０ｘ８８］で指定されるＲＯＰ演算であると判定された場合（ＹＥＳ）には、処理をステップＳ１０４へ分岐させる。ステップＳ１０４では、後述するＫプレーン参照図形描画処理を実行するものとし、インタプリタ部４０に対し代替演算処理が必要である旨を判定結果として返信し、ステップＳ１０５で処理を終了させる。
【００３１】
上記ステップＳ１０２およびステップＳ１０３の判定により、［０ｘ８８］で指定されるＲＯＰ演算に引き続いて［０ｘＥＥ］で指定されるＲＯＰ演算が指令される場合、つまり０ｘ８８−０ｘＥＥの複合ＲＯＰ演算が指令された場合に、［０ｘＥＥ］で指定されるＲＯＰ演算の指令が適切な代替演算の指令に変換され、描画処理部４４のＫプレーン参照図形描画処理部５０にて適切な代替演算処理が実行されることとなる。またそれ以外の場合には、描画処理部４４の通常図形描画処理部５２にて通常の描画処理が実行されることとなる。なお、上記ステップＳ１０２およびステップＳ１０３の判定の順序は、交換することができる。また上記実施形態では、ＲＯＰ演算の指令と、その直前の指令の識別値とから、代替演算に変更する必要があるか否かを判定している。しかしながら、複数のＲＯＰ０ｘ８８演算が連続して実行された後に、対応する複数のＲＯＰ０ｘＥＥ演算が実行される場合もあり、他の実施形態では、ＲＯＰ０ｘ８８演算とＲＯＰ０ｘＥＥ演算との関連付けを記憶し、上記場合に対応することもできる。
【００３２】
なお、上記通常の描画処理とは、ＲＧＢ色空間での演算が前提である単体のＲＯＰ演算を、ＣＭＹＫ色空間にて実現するよう適切に変換したものである。例えば、ＲＯＰコード［０ｘ８８］で示されるＲＯＰ演算は、ＲＧＢ色空間での画像間の論理積（ＡＮＤ）を指定するが、ＣＭＹＫ色空間では、論理和（ＯＲ）に変換することにより同様の結果が得られるため、インタプリタ部４０は、中間データ中の論理積（ＡＮＤ）の演算指令を、論理和（ＯＲ）の指令に変換し、通常図形描画処理部５２は、ＣＭＹＫ色空間にて、ソース画像と描画データとの論理和を演算することとなる。
【００３３】
以下、０ｘ８８−０ｘＥＥの複合ＲＯＰ演算が指令された場合に実行されるＲＯＰ０ｘＥＥの代替演算処理について説明する。図４は、Ｋプレーン参照図形描画処理部５０が実行する代替演算処理の実施形態を示すフローチャートである。また図５は、０ｘ８８−０ｘＥＥの複合ＲＯＰ演算による描画結果を一例として示す。まず、ＲＯＰ０ｘＥＥ演算の前段階で、ＲＯＰ０ｘ８８演算が実行された場合、所定の形状を有するマスクイメージが元の背景画像に対して描画された図５に示すようなデスティネーション画像（Destination-2）１００が得られる。なお、図５のデスティネーション画像（Destination-2）１００において、黒ベタで塗りつぶされた領域がマスクイメージである。
【００３４】
ＣＭＹＫ色空間では、黒などの無彩色は、イメージやフォントといったオブジェクトの属性や特定の実装形態に応じて、Ｋ成分のみのブラック、ＣＭＹＫのコンポジットブラック、またはＣＭＹのコンポジットブラックのいずれかで表現される。ＣＭＹ成分およびＫ成分にどのように分配されるかは、前段階のＵＣＲ／ＢＧに依存する。このため、黒にてマスクイメージを描画した場合、ＣＭＹＫ各プレーンすべてに適切なマスクイメージが描かれるとは限らない。図５に示すように、マスクイメージ描画後のデスティネーション画像（Destination-2）１００の各ＣＭＹプレーン１００Ｃ，１００Ｍ，１００Ｙでは、実際のマスクイメージに比較して薄い結果となってしまう。
【００３５】
一方、ＲＧＢ色空間で黒（RBG(0,0,0)）またはＣＭＹＫ色空間で黒（K(255)/CMYK(255,255,255,255),CMYK(255,255,255,0)）にてマスクの色が指定される場合、デスティネーション画像（Destination-2）１００のＫプレーンは、ほとんどの実装環境で、黒ベタで描画されることとなり、正しいマスクイメージの形状を保持しているものと期待される。そこで、本実施形態では、ＲＯＰ０ｘ８８に続くＲＯＰ０ｘＥＥ演算の際には、Ｋプレーン以外の各ＣＭＹプレーンの描画演算の際にも、Ｋプレーンを参照する。
【００３６】
図４に示す処理は、中間データにより代替演算処理が指令されていた場合に、描画処理部４４により呼び出され、ステップＳ２００から開始される。ステップＳ２０１およびステップＳ２０６は、ループ構造をなし、Ｃ，Ｍ，Ｙ，Ｋの順番に各プレーンについて、ステップＳ２０２〜Ｓ２０５およびＳ２０８で示す処理フローを繰り返させる。またステップＳ２０１およびＳ２０６のループ構造内のステップＳ２０２およびステップＳ２０５もループ構造をなし、描画範囲にある各描画座標につき、ステップＳ２０３およびＳ２０４またはＳ２０８の処理を繰り返させる。ステップＳ２０１およびＳ２０６のループが終了したら、ステップＳ２０７へ進め、処理を終了させる。なお、上記描画範囲は、デスティネーション画像１００の全部または一部とすることができる。
【００３７】
ステップＳ２０３では、デスティネーション画像１００のＫプレーン１００Ｋにおける現在座標（ｘ、ｙ）の値がａｌｌ＿ｏｎのマスク指定階調値であるか否かを判定する。ここで、ステップＳ２０３では、現在座標（ｘ、ｙ）の値が、１ｂｉｔの階調深度の場合に［１］（［ＯＮ］）を、２ｂｉｔ以上の階調深度の場合に全ｂｉｔが［１］（［ＯＮ］）である場合に、ａｌｌ＿ｏｎであると判定する。ステップＳ２０３で、現在座標（ｘ、ｙ）の値がａｌｌ＿ｏｎであると判定された場合（ＹＥＳ）には、ステップＳ２０４へ処理を分岐させ、現在の処理対象であるカレントプレーンにつき、ソース画像（Source-2）１１０の対応する座標の階調値を読み出し、その座標が背景色でない場合には、デスティネーション画像１００の現在座標に上書きし、ステップＳ２０５に処理を進める。なお、図５に示す例では、ソース画像（Source-2）では、白が背景色とされている。
【００３８】
一方、ステップＳ２０３で、現在座標（ｘ、ｙ）の値がａｌｌ＿ｏｎではないと判定された場合（ｎｏ）には、ステップＳ２０８へ分岐させる。ステップＳ２０８では、描画を行なわずに、ステップＳ２０５へ処理を進める。
【００３９】
上述したように、ステップＳ２０３および、ステップＳ２０４またはＳ２０８の処理を、ＣＭＹＫ全プレーンおよび描画範囲の全座標について実行することにより、前段階のＲＯＰ演算によりマスクイメージとして描画された領域に、ソース画像１１０の画像が適切に描画されることとなり、ＲＧＢ色空間で０ｘ８８−０ｘＥＥの複合ＲＯＰ演算を行なった場合と同様の結果が得られる。この際には、ＲＯＰ演算を実行するためにＲＧＢ色空間の画像を記憶するための余分なメモリ領域の必要性が回避され、装置を省メモリ化することが可能となり、加えて、メモリアクセス量が低減するため、パフォーマンスを向上させることも可能となる。
【００４０】
また、デスティネーション画像１００に描画されたマスクイメージがマスクとして利用されるため、ソース画像（Source-2）にゴミやノイズが含まれていた場合であっても、該ゴミやノイズがデスティネーション画像１００に上書きされてしまうことを好適に防止することが可能となる。画像形成装置では、アンチエイリアシングによりマスクイメージ周辺に余分な画像が含まれる場合があるが、この余分なゴミを好適に低減することが可能となる。
【００４１】
なお、ＣＭＹＫの各プレーンの処理順序は、すべてのプレーンでの処理の際に参照されるＫプレーンが、他のプレーンの処理が行われる前に上書きされてしまわないように、Ｋプレーンに対する処理を最後に行なうことが好ましい。しかしながら、Ｋプレーン以外のＣＭＹプレーンの処理順序は、特に制限されるものではなく、如何なる順序であってもよい。また、特定の実施形態において、ＣＭＹＫ以外のカラートナーまたはカラーインクが用いられ、プレーン数が増減した場合にも適用することができる。また、上述の実施形態では、カラーのラスタ画像に適用されているが、モノクロのラスタ画像に適用してもよい。
【００４２】
以下、０ｘ８８−０ｘＥＥの複合ＲＯＰ演算が指令された場合に実行されるＲＯＰ０ｘＥＥの代替演算処理の他の実施形態について説明する。図６は、Ｋプレーン参照図形描画処理部５０が実行する代替演算処理の他の実施形態を示すフローチャートである。
【００４３】
図６に示す処理は、代替演算処理が指令されていた場合に、描画処理部４４により呼び出され、ステップＳ３００から開始される。ステップＳ３０１およびステップＳ３０６は、ループ構造をなし、描画範囲の各描画座標につき、ステップＳ３０２〜Ｓ３０５およびＳ３０８で示す処理フローを繰り返させる。ステップＳ３０１およびＳ３０６のループが終了したら、ステップＳ３０７へ進め、処理を終了させる。ステップＳ３０２では、デスティネーション画像１００のＫプレーン１００Ｋにおける現在座標（ｘ、ｙ）の値がａｌｌ＿ｏｎのマスク指定階調値であるか否かを判定する。
【００４４】
ステップＳ３０２で、現在座標（ｘ、ｙ）の値がａｌｌ＿ｏｎではないと判定された場合（ＮＯ）には、ステップＳ３０８へ処理を分岐させ、ステップＳ３０８では、描画を行なわずに、ステップＳ３０６へ処理を進める。一方、ステップＳ３０２で、現在座標（ｘ、ｙ）の値がａｌｌ＿ｏｎであると判定された場合（ＹＥＳ）には、ステップＳ３０３へ処理を進める。ステップＳ３０３およびステップＳ３０５は、ループ構造をなし、Ｃ，Ｍ，Ｙ，Ｋの順番に各プレーンについて、ステップＳ３０４の処理を繰り返させる。ステップＳ３０４では、カレントプレーンにつき、ソース画像（Source-2）１１０の対応する座標の値を読み出し、その値が背景色でない場合には、デスティネーション画像１００の現在座標に上書きし、ステップＳ３０５に処理を進める。
【００４５】
図４に示す実施形態と同様に、図６の実施形態の代替処理では、前段階のＲＯＰ演算によりマスクイメージとして描画された領域に、ソース画像１１０の画像が適切に描画され、０ｘ８８−０ｘＥＥの複合ＲＯＰ演算をＲＧＢ色空間で行なった場合と同様の結果が得られることとなる。この際には、余分なメモリ領域の必要性が回避され、装置を省メモリ化することが可能となる。加えてメモリアクセス量が低減するため、パフォーマンスを向上させることが可能となる。また本実施形態では、図６に示すように、Ｋプレーンを参照して現在座標（ｘ、ｙ）の値がａｌｌ＿ｏｎであるか否かを判定する処理が、各座標につき１度だけ実行されることとなり、処理速度の向上を図ることができる。
【００４６】
以上説明したように、上述までの実施形態によれば、例えばＲＯＰ０ｘ８８およびＲＯＰ０ｘＥＥのＲＯＰ演算を複合させたような複合的なラスタ操作演算を、例えばＣＭＹＫ空間のような複数の有彩色および無彩色による色空間上の演算にて、ＲＧＢ色空間で実行された場合に期待されるものと同様な描画結果が得られるよう実現する画像処理装置、画像処理方法、およびプログラムを提供することができる。
【００４７】
なお、上述までの実施形態では、画像処理装置として、レーザプリンタのプリンタ・コントローラを一例として説明してきた。しかしながら、上述までの実施形態の画像処理装置、画像処理方法およびプログラムは、複写機や複合機などの他の画像形成装置、ファクシミリなどの画像通信装置などに適用することができる。
【００４８】
また上記機能は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、ＳＤカード、ＭＯなど装置可読な記録媒体に格納して頒布することができる。
【００４９】
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【００５０】
【図１】レーザプリンタのハードウェア構成の実施形態を示す図。
【図２】本実施形態のレーザプリンタにおける描画処理のデータフロー図。
【図３】複合ＲＯＰ判定部における判定処理のフローチャート。
【図４】Ｋプレーン参照図形描画処理部が実行する代替演算処理の実施形態を示すフローチャート。
【図５】０ｘ８８−０ｘＥＥの複合ＲＯＰ演算による描画結果を一例として示す図。
【図６】Ｋプレーン参照図形描画処理部が実行する代替演算処理の他の実施形態を示すフローチャート。
【図７】ＲＧＢ色空間における２段階のＲＯＰ演算による描画結果を一例として示す図。
【符号の説明】
【００５１】
１０…レーザプリンタ、１２…プリント・コントローラ、１４…ＣＰＵ、１６…システム・メモリ、１８…ＮＶ−ＲＡＭ、２０…エンジンＩ／Ｆ、２２…描画メモリ、２４…ホストＩ／Ｆ、２６…プログラムＲＯＭ、２８…フォントＲＯＭ、３０…パネルＩ／Ｆ、３２…内部バス、３４…プロッタ・エンジン、３６…操作パネル、４０…インタプリタ部、４２…複合ＲＯＰ判定部、４４…描画処理部、４６…中間データ記憶部、４８…描画データ記憶部、５０…Ｋプレーン参照図形描画処理部、５２…通常図形描画処理部、６０…ホストＰＣ、１００…デスティネーション画像、１１０…ソース画像、２００…デスティネーション画像、２０２…ソース画像、２０４…デスティネーション画像、２０６…ソース画像、２０８…デスティネーション画像
【図１】
0005046237.tif 000002
【図２】
0005046237.tif 000003
【図３】
0005046237.tif 000004
【図４】
0005046237.tif 000005
【図５】
0005046237.tif 000006
【図６】
0005046237.tif 000007
【図７】
0005046237.tif 000008