(57)【特許請求の範囲】
【請求項１】
ＲＧＢ空間における描画データに関するＲＯＰをＣＭＹＫ空間において演算する画像形成装置であって、
前記描画データの色空間をＲＧＢからＣＭＹＫに変換する色空間変換手段と、
ビットの反転演算を含むＲＯＰの反転演算を実行し、当該反転演算を当該ＲＯＰより除去し、ｘ又はｘｎを含むＲＯＰの描画座標から、ｘ又はｘｎを含まない他のＲＯＰの描画座標を除いた座標を記録する反転演算解決手段と、
前記ＣＭＹＫ空間における描画データに対してディザリングを行うディザリング手段と、
前記ディザリングされた描画データに対して、前記反転演算が除去されたＲＯＰを施し、一部のＲＯＰについては、前記描画データの色空間をＣＭＹＫ空間からＣＭＹ空間に変換した後に演算するＲＯＰ演算手段とを有し、
前記ＲＯＰ演算手段は、前記ｘ又はｘｎを含むＲＯＰについて、前記反転演算解決手段によって記録された座標に関しては、前記描画データの色空間をＣＭＹＫ空間からＣＭＹ空間に変換せずに演算することを特徴とする画像形成装置。
【請求項２】
前記一部のＲＯＰは、少なくとも０、ＤＰＳａａ、ＤＳａ、Ｄ、ＤＳａ、Ｓ、Ｐ、及び１を含まないことを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記一部のＲＯＰは、更に、Ｐが黒の場合にＤＰＳｏａ、ＳＤＰｏａ、ＤＰＳａｏ、及びＤＰｏを含まないことを特徴とする請求項２記載の画像形成装置。
【請求項４】
前記一部のＲＯＰは、前記ｘ又はｘｎを含むＲＯＰに挟まれているＲＯＰであることを特徴とする請求項１乃至３いずれか一項記載の画像形成装置。
【請求項５】
ＲＧＢ空間における描画データに関するＲＯＰをＣＭＹＫ空間において演算する画像処理方法であって、
前記描画データの色空間をＲＧＢからＣＭＹＫに変換する色空間変換手順と、
ビットの反転演算を含むＲＯＰの反転演算を実行し、当該反転演算を当該ＲＯＰより除去し、ｘ又はｘｎを含むＲＯＰの描画座標から、ｘ又はｘｎを含まない他のＲＯＰの描画座標を除いた座標を記録する反転演算解決手順と、
前記ＣＭＹＫ空間における描画データに対してディザリングを行うディザリング手順と、
前記ディザリングされた描画データに対して、前記反転演算が除去されたＲＯＰを施し、一部のＲＯＰについては、前記描画データの色空間をＣＭＹＫ空間からＣＭＹ空間に変換した後に演算するＲＯＰ演算手順とを有し、
前記ＲＯＰ演算手順は、前記ｘ又はｘｎを含むＲＯＰについて、前記反転演算解決手順において記録された座標に関しては、前記描画データの色空間をＣＭＹＫ空間からＣＭＹ空間に変換せずに演算することを特徴とする画像処理方法。
【請求項６】
請求項５記載の画像処理方法を画像形成装置に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像処理方法及びプログラムに関し、特にＲＧＢ空間における描画データに関するＲＯＰをＣＭＹＫ空間において演算する画像形成装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年のレーザプリンタやインクジェットプリンタに見られるカラー出力機器（画像形成装置）では、ＣＭＹＫの４版を用いて出力する方法が一般的である。これらは一般的には、ＰＣなどのホストコンピュータで動作するアプリケーションからの印刷要求をＲＧＢ色空間のデータとして受け取り、ＰＣまたは出力機器にて、墨版生成／下色除去（以下「ＢＧ／ＵＣＲ」という。）を行うことでＫ版を生成してＣＭＹＫデータに変換し、これが印刷される。
【０００３】
また、アプリケーションから渡される描画データの演算方法としてＡＮＤやＯＲなどの論理演算（Raster Operation；以下ＲＯＰと略す）が指定されることがある。これは、Windows（登録商標）で動作するアプリケーションに多く見られる。ＲＧＢやＣＭＹデータは、各版が独立しているので版毎にＲＯＰを行っても所望の結果が得られるが、ＢＧ／ＵＣＲなどによってＫ版が生成されたＣＭＹＫデータは、そのまま各版をＲＯＰしてしまうと所望の結果が得られない場合がある。例えば、ＮＯＴやＸＯＲなどビットの反転演算を含むＲＯＰをＣＭＹＫ全版に行うと、Ｋ版、ＣＭＹ版共に反転することになり、期待結果より濃いか又は薄いといったような結果となることがある。
【０００４】
そこで、従来、ＲＯＰの互換性を保証するための様々な技術が提案されている。例えば、特許文献１では、同じ画素位置に対する描画処理が複数回発生した場合に下地画像を取り込み新たな描画データとＲＯＰを行い、出力画像を更新する。つまりＣＭＹの３カラーでディザ処理をしてＲＯＰを行い、ＢＧ／ＵＣＲを行う。
【特許文献１】特開２０００−２３６４５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１によれば、ＲＯＰの互換性は保たれるが、Ｋ版の生成がディザ処理後となるため画質的に限界があった。また、他の技術によって、画質の向上を図ろうとすると大量のメモリが必要となったり、又は、性能の劣化を招いてしまったりする問題があった。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、ＲＯＰの互換性を適切に保持することのできる画像形成装置、画像処理方法及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、本発明は、ＲＧＢ空間における描画データに関するＲＯＰをＣＭＹＫ空間において演算する画像形成装置であって、前記描画データの色空間をＲＧＢからＣＭＹＫに変換する色空間変換手段と、前記ＲＯＰにおけるビットの反転演算を解決する反転演算解決手段と、前記ＣＭＹＫ空間における描画データに対してディザリングを行うディザリング手段と、前記ディザリングされた描画データに対して、前記反転演算が解決されたＲＯＰを施すＲＯＰ演算手段とを有し、前記ＲＯＰ演算手段は、一部のＲＯＰについては、前記描画データの色空間をＣＭＹＫ空間からＣＭＹ空間に変換した後に演算することを特徴とする。
【０００８】
このような画像形成装置では、ＲＯＰの互換性を適切に保持することができる。
【０００９】
また、上記課題を解決するため、本発明は、上記画像形成装置における画像処理方法、前記画像処理方法を前記画像形成装置に実行させるためのプログラムとしてもよい。
【発明の効果】
【００１０】
本発明によれば、ＲＯＰの互換性を適切に保持することのできる画像形成装置、画像処理方法及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の実施の形態について説明する。
【００１２】
図１は、本発明の実施の形態における融合機のハードウェアの概略構成例及びソフトウェア構成例を説明するための図である。図１において融合機１０１は、種々のハードウェア１１１と、種々のソフトウェア１１２と、融合機起動部１１３により構成される。これらにより、図１の融合機１０１は、コピーやプリンタやスキャナやファクシミリとして機能する。
【００１３】
ハードウェア１１１としては、撮像部１２１と、印刷部１２２と、その他のハードウェア１２３が存在する。
【００１４】
撮像部１２１は、原稿から画像データを取得するためのハードウェアであり、コピーやスキャナやファクシミリとして機能する際に使用される。撮像部１２１は、白黒画像用のものでもカラー画像用のものでもよい。撮影部１２１は、原稿に関する機構として、原稿セット部等を備える。
【００１５】
印刷部１２２は、画像データを印刷用紙等に印刷するためのハードウェアであり、コピーやプリンタやファクシミリとして機能する際に使用される。印刷部１２２は、白黒画像用のものでもカラー画像用のものでもよい。印刷部１２２は、ここでは電子写真方式を採用しており、感光体、帯電機、露光機、現像機、転写機、定着機等を備える。印刷部１２２は、印刷用紙等に関する機構として、給紙部、排紙部、印刷用紙搬送機構等を備える。
【００１６】
その他のハードウェア１２３に関しては、図２において説明する。
【００１７】
ソフトウェア１１２としては、種々のアプリケーション１３１と、プラットフォーム１３２が存在する。これらは、ＵＮＩＸ（登録商標）等のＯＳ（オペレーティングシステム）によりプロセス単位で並列的に実行される。
【００１８】
アプリケーション１３１は、コピーやプリンタやスキャナやファクシミリ等の各機能に固有の情報処理を実行するためのソフトウェアである。アプリケーション１３１としては、コピー用のアプリケーションであるコピーアプリ１４１と、プリンタ用のアプリケーションであるプリンタアプリ１４１と、スキャナ用のアプリケーションであるスキャナアプリ１４３と、ファクシミリ用のアプリケーションであるファクシミリアプリ１４４と、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ１４５と等が存在する。
【００１９】
プラットフォーム１３２は、アプリケーション１３１からハードウェア１１１への処理要求に関する情報処理を実行するためのソフトウェアである。アプリケーション１３１からの処理要求の受信には、予め定義されている関数により処理要求を受信するアプリケーションプログラムインタフェース（ＡＰＩ）１３３を利用して、ハードウェア１１１への処理要求の送信には、予め定義されている関数により処理要求を送信するエンジンインタフェース（ＥＮＩ）１３４を利用する。プラットフォーム１３２は、種々のコントロールサービス１５１と、システムリソースマネージャ１５２と、種々のハンドラ１５３により構成される。
【００２０】
コントロールサービス１５１は、アプリケーション１３１からハードウェア１１１への処理要求を解釈して、解釈結果に応じてハードウェア１１１の獲得要求を発生する。コントロールサービス１５１としては、ネットワークコントロールサービス（ＮＣＳ）１６１と、ファクシミリコントロールサービス（ＦＣＳ）１６２と、デリバリコントロールサービス（ＤＣＳ）１６３と、エンジンコントロールサービス（ＥＣＳ）１６４と、メモリコントロールサービス（ＭＣＳ）１６５と、オペレーションパネルコントロールサービス（ＯＣＳ）１６６と、ユーザディレクトリコントロールサービス（ＵＣＳ）１６７と、システムコントロールサービス（ＳＣＳ）１６８が存在する。
【００２１】
ＮＣＳ１６１のプロセスは、ネットワーク等を介してデータ通信を行うためのＡＰＩを提供する。ＦＣＳ１６２のプロセスは、ファクシミリとして画像データ通信・画像データ取得・画像データ印刷等を行うためのＡＰＩを提供する。ＤＣＳ１６３のプロセスは、融合機１０１に蓄積されている文書データの配送に関する制御を行う。ＥＣＳ１６４のプロセスは、撮像部１２１や印刷部１２２等のエンジン部に関する制御を行う。ＭＣＳ１６５のプロセスは、画像データ記憶・画像データ処理等のメモリやハードディスクドライブに関する制御を行う。ＯＣＳ１６６のプロセスは、オペレーションパネルに関する制御を行う。ＵＣＳ１６７のプロセスは、ユーザ情報の管理に関する制御を行う。ＳＣＳ１６８のプロセスは、システムの管理に関する制御を行う。
【００２２】
システムリソースマネージャ（ＳＲＭ）１５２は、ハードウェア１１１の獲得要求を調停して、調停結果に応じてハードウェア１１１への処理要求を実現するための制御を行う。具体的に言うと、ＳＲＭ１５２のプロセスは、獲得要求に係るハードウェア１１１が利用可能か否か（他の獲得要求と競合しないか否か）を判定して、利用可能である場合にはその旨をコントロールサービス１５１に通知する。さらには、獲得要求に係るハードウェア１１１の利用スケジュールを作成して、作成結果に応じてハードウェア１１１への処理要求を実現するための制御を行う。
【００２３】
ハンドラ１５３は、上記の調停結果に応じてハードウェア１１１を管理する。ハンドラ１５３としては、ファクシミリコントロールユニットハンドラ（ＦＣＵＨ）１７１と、イメージメモリハンドラ（ＩＭＨ）１７２が存在する。ＦＣＵＨ１７１は、ファクシミリコントロールユニットを管理する。ＩＭＨ１７２は、メモリを各プロセスに割り振り、各プロセスが割り振られたメモリを管理する。
【００２４】
融合機起動部１１３は、融合機１０１の電源投入時に最初に実行される。これにより、ＵＮＩＸ（登録商標）等のＯＳが起動されて、アプリケーション１３１とプラットフォーム１３２が起動される。これらのプログラムは、ハードディスクドライブに蓄積されており、ハードディスクドライブから再生されて、メモリに起動されることになる。
【００２５】
図２は、本発明の実施の形態における融合機のハードウェア構成例を示す図である。ハードウェア１１１としては、コントローラ２０１と、オペレーションパネル２０２と、ＵＳＢデバイス２０３と、ＩＥＥＥ１３９４デバイス２０４と、ファクシミリコントロールユニット（ＦＣＵ）２０５と、撮像部１２１と、印刷部１２２が存在する。図２における撮像部１２１と印刷部１２２を除く構成要素が、図１における「その他のハードウェア１２３」に該当する。
【００２６】
コントローラ２０１は、ＣＰＵ２１１と、ＡＳＩＣ２１２と、ＮＢ（ノースブリッジ）２２１と、ＳＢ（サウスブリッジ）２２２と、ＭＥＭ−Ｐ（システムメモリ）２３１と、ＭＥＭ−Ｃ（ローカルメモリ）２３２と、ＨＤＤ（ハードディスクドライブ）２３３と、ＮＩＣ（ネットワークインタフェースコントローラ）２４１により構成される。
【００２７】
ＣＰＵ２１１は、種々の情報処理を実行するためのハードウェアである。例えば、ＵＮＩＸ（登録商標）等のＯＳにより、アプリケーション１３１とプラットフォーム１３２をプロセス単位で並列的に実行する。ＡＳＩＣ２１２は、画像データ処理用のＩＣである。ＮＢ２２１は、ＣＰＵ２１１とＡＳＩＣ２１２を接続するためのブリッジである。ＳＢ２２２は、ＮＢ２２１と周辺機器等を接続するためのブリッジである。
【００２８】
ＭＥＭ−Ｐ２３１は、ＮＢ２２１に接続されて使用されるメモリである。ＭＥＭ−Ｃ２３２は、ＡＳＩＣ２１２に接続されて使用されるメモリである。ＨＤＤ２３３は、ＡＳＩＣ２１２に接続されて使用されるストレージであり、画像データ蓄積・文書データ蓄積・プログラム蓄積・フォントデータ蓄積・フォームデータ蓄積等を行うために使用される。ＮＩＣ２４１は、ＡＳＩＣ２１２に接続されて使用されるハードウェアであり、ネットワーク等を介してＭＡＣアドレス等を使用したデータ通信を行うために使用される。
【００２９】
オペレーションパネル２０２は、オペレータが融合機１０１に入力を行うためのハードウェア（操作部）であると共に、融合機１０１がオペレータに出力を行うためのハードウェア（表示部）である。オペレーションパネル２０２は、ＡＳＩＣ２１２に接続されている。
【００３０】
ＵＳＢデバイス２０３は、ＵＳＢ規格に準拠したケーブルを接続するためのデバイスである。ＩＥＥＥ１３９４デバイス２０４は、ＩＥＥＥ１３９４規格に準拠したケーブルを接続するためのデバイスである。これらは、タンデム印刷等を行うために使用される。ＵＳＢデバイス２０３と、ＩＥＥＥ１３９４デバイス２０４と、ファクシミリコントロールユニット２０５と、撮像部１２１と、印刷部１２２は、ＰＣＩバスによりＡＳＩＣ２１２に接続されている。
【００３１】
図３は、本発明の実施の形態の融合機におけるプリンタアプリの機能構成例を示す図である。図３において、プリンタアプリ１４１は、ホストコンピュータからの印刷要求に基づいて、印刷部１２２に印刷処理を実行させるための機能を実現するためのプログラムであり、パーサー部１４１１、ＲＯＰ置換部１４１２、ＣＭＹＫ変換部１４１３、ディザリング部１４１４、レンダラ部１４１５、及びＲＯＰ演算データ転送部１４１６等より構成される。
【００３２】
パーサー部１４１１は、ホストコンピュータより受信される印刷データに含まれるＰＤＬ（Page Description Language）等を解釈する。ホストコンピュータからの印刷データにおけるＰＤＬでは、８ビットのＲＧＢ（以下「ＲＧＢ（８）」と記載する。）によって色空間が指定されている。パーサー部１４１１では、ＲＧＢ（８）データから８ビットのＣＭＹ（以下「ＣＭＹ（８）」と記載する。）データへの色空間の変換も行われる。
【００３３】
ＲＯＰ置換部１４１２は、反転演算を含むＲＯＰを、当該反転演算を含まないＲＯＰに置換する。すなわち、ＲＯＰ置換部１４１２によって、ソース（Ｓ）やパターン（Ｐ）に対する反転演算の解決等が行われる。これは、反転演算については予めＣＭＹにおいて解決してしまうことにより、ＣＭＹＫにおける反転演算は互換性が必ずしも保証されないという不都合を回避するためである。言い換えれば、後述するように、後工程でＲＯＰ演算を行うＲＯＰ演算データ転送部１４１６では、ＣＭＹＫにおいて互換性が保証されるＲＯＰについてはＣＭＹＫによってＲＯＰを行い、互換性が保証されないものについてはＣＭＹにおいてＲＯＰを行うところ、ＲＯＰ置換部１４１２において予め反転演算を解決してしまうことにより、ＣＭＹＫでＲＯＰ演算が可能なケースを増加させるためである。
【００３４】
ＣＭＹＫ変換部１４１３は、墨版生成／下色除去（以下「ＢＧ／ＵＣＲ」という。）を行い、Ｋ版を生成することによりＣＭＹ（８）データを８ビットのＣＭＹＫ（以下「ＣＭＹＫ（８）」と記載する。）データに変換する。
【００３５】
ディザリング部１４１４は、ディザリングによってＣＭＹＫ（８）データを減色し、ｎビット（例えば１ビット）のＣＭＹＫ（以下「ＣＭＹＫ（ｎ）」と記載する。）データを生成する。
【００３６】
レンダラ部１４１５は、描画用内部データを解析し、ＣＭＹＫ（ｎ）データの描画を行う。
【００３７】
ＲＯＰ演算データ転送部１４１６は、ＣＭＹＫ（ｎ）データについてＲＯＰを行う。詳細については後述するが、ＲＯＰ演算データ転送部１４１６は、ＣＭＹＫ（ｎ）のままで互換性が保証されるＲＯＰについてはＣＭＹＫ（ｎ）において演算を行い、ＣＭＹＫ（ｎ）のままではＲＯＰの互換性が保証されないものについては、ＣＭＹＫ（ｎ）をＣＭＹ（ｎ）に戻して演算を行う。
【００３８】
ＲＯＰ演算データ転送部１４１６によるＲＯＰ演算の結果は画像メモリ２３２ａに転送され、画像メモリ２３２ａの内容が印刷される。
【００３９】
以下、図３のプリンタアプリ１４１におけるＲＯＰ置換部１４１２とＲＯＰ演算データ転送部１４１６における処理手順について説明する。
【００４０】
図４は、ＲＯＰ置換部によるＲＯＰ置換処理の処理手順を説明するためのフローチャートである。図４の処理は、ＲＯＰコードごとに行われる。したがって、一つの印刷要求に対してＲＯＰコードが複数含まれている場合、その数分だけのループ処理となる。
【００４１】
ステップＳ１０１において、現在処理対象とされているＲＯＰコード（以下「カレントＲＯＰ」という。）内のソースイメージの反転演算（Ｓｎ）に関して判定を行い、処理を分岐させる。ＲＯＰコードが、ＰＤＳｎａｏｎ、ＤＰＳｎａａ、ＤＳｎａ、ＰＳｎａ、Ｓｎ、DＰＳｎａｏｎ、ＰDＳｎｏｘ、ＰDＳｎｏａｎ、DＰＳｎｏｘ、DＰＳｎｏａｎ、DＰＳｎａｘ、DＰＳｎｏａ、ＰDＳｎｏａ、DＰＳｎａｏ、DＳｎｏ、ＰDＳｎａｘ、ＰDＳｎａｏ、ＰＳｎｏ、又はDＰＳｎｏｏである場合、ソースイメージ（Ｓ）の反転演算（ｎｏｔ）を行う（Ｓ１０２）。なお、前記ＲＯＰコードはＲＧＢにおけるもの記載している。かかる点を明確にするため、図中では「ＲＯＰ  ＣＯＤＥ（ＲＧＢ）」と記載している。また、本実施の形態においてＲＯＰコードの表記は、逆ポーランド記法に基づく。
【００４２】
続いて、カレントＲＯＰより当該反転演算を除去することよりカレントＲＯＰ内の「Ｓｎ」を「Ｓ」に置換する（Ｓ１０３）。これによって、ソースイメージに対するｎｏｔ演算が解決されたことになる。図５は、ソースイメージに対するｎｏｔ演算解決によるＲＯＰコード（ＲＧＢ）の置換結果を示す図である。
【００４３】
一方、上記以外の場合、すなわち、カレントＲＯＰに「Ｓｎ」が存在しない場合、又はソースイメージをｎｏｔ演算できない場合は、Ｓｎの解決（Ｓ１０２、Ｓ１０３）は行われない。
【００４４】
ステップＳ１０１又はステップＳ１０３に続いてステップＳ１０４に進み、カレントＲＯＰ内のパターンの反転演算（Ｐｎ）に関して判定を行い、処理を分岐させる。カレントＲＯＰが、ＳＤＰｎａａ、ＤＰｎａ、ＳＰｎａ、Ｐｎ、ＳＤＰｎａｏｎ、ＤＳＰｎａｏｎ、ＳＤＰｎｏｘ、ＤＳＰｎｏｘ、ＳＤＰｎｏａｎ、ＤＳＰｎｏａｎ、ＤＳＰｎｏａ、ＳＤＰｎｏａ、ＤＳＰｎａｘ、ＤＳＰｎａｏ、ＤＰｎｏ、ＳＤＰｎａｘ、ＳＤＰｎａｏ、ＳＰｎｏ、又はＳＤＰｎｏｏである場合、パターン（Ｐ）の反転演算（ｎｏｔ）を行う（Ｓ１０５）。
【００４５】
続いて、カレントＲＯＰより当該反転演算を除去することよりカレントＲＯＰ内の「Ｐｎ」を「Ｐ」に置換する（Ｓ１０６）。これによって、パターンに対するｎｏｔ演算が解決されたことになる。図６は、パターンに対するｎｏｔ演算解決によるＲＯＰコード（ＲＧＢ）の置換結果を示す図である。
【００４６】
一方、上記以外の場合、すなわち、カレントＲＯＰに「Ｐｎ」が存在しない場合、又はパターンをｎｏｔ演算できない場合は、Ｐｎの解決（Ｐ１０５、Ｐ１０６）は行われない。
【００４７】
ステップＳ１０４又はステップＳ１０６に続いてステップＳ１０７に進み、ＸＯＲ描画座標事前解析処理を実行する。ここで、ＸＯＲ描画事前解析処理とは、ＸＯＲ演算を含む描画が、ＣＭＹＫで描画可能であるか、又はＣＭＹで描画すべきであるかを座標単位で記録しておくための処理をいう。その記録には、二次元のビットマップ（厳密にはバンド単位の領域を持つビットマップ）が用いられる。当該ビットマップの各ビットは、バンド単位毎に０に初期化され、以下で説明するＸＯＲ描画事前解析処理が全てのＲＯＰコードに対して行われる間を通して初期化されることなく更新され続けられる。したがって、最終的にバンド単位における全てのＲＯＰコードが解析された結果として、ＣＭＹＫでＸＯＲ描画演算可能であるビットには「１」が記録され、ＣＭＹでＸＯＲ演算すべきであるビットには「０」が記録された状態となる。なお、以下の説明において、当該ビットマップを「ＸＯＲ描画タイプチェック用ビットマップ」という。ＸＯＲ描画タイプチェック用ビットマップは、ＲＯＰ演算転送部１４１６が描画を行う際に用いる。
【００４８】
図７は、ＲＯＰ置換部によるＸＯＲ描画事前解析処理の処理手順を説明するためのフローチャートである。
【００４９】
ステップＳ２０１において、カレントＲＯＰ内におけるＸＯＲ演算（ｘ）の有無を判定する。カレントＲＯＰ内にＸＯＲ演算が無い場合、ステップＳ２０２に進み、ＸＯＲ描画タイプチェック用ビットマップにおいて、カレントＲＯＰによる描画対象座標に対応するビットがＯＮ（１）であり、かつ、当該描画対象座標の描画色が黒又は白であるかを判定する。この判定は描画対象座標に含まれる各座標について行われる。したがって、カレントＲＯＰに対して分岐先の双方の処理が実行される可能性がある。なお、ＸＯＲ描画タイプチェック用ビットマップにおけるいずれかのビットがＯＮ（１）である場合とは、既に他のＲＯＰコード（ＲＧＢ）について図７の処理が実行され、当該他のＲＯＰコード（ＲＧＢ）がＸＯＲ演算を含むために当該ビットがＯＮ（１）とされた場合である。
【００５０】
ステップＳ２０２の判定が否定的なビットについて、すなわち、ＸＯＲ描画タイプチェック用ビットマップにおいて、当該ビットがＯＦＦ（０）であるか、又は、描画色が黒又は白のいずれでも無い場合（中間色である場合）は、ＸＯＲ描画タイプチェック用ビットマップに対して当該ビットの更新は行わない（ＯＦＦ（０）のまま）。
【００５１】
一方、ステップＳ２０２の判定が肯定的なビットが含まれている場合、すなわち、ＸＯＲ描画タイプチェック用ビットマップにおいて当該ビットがすでにＯＮ（１）であるビットが含まれている場合、カレントＲＯＰは、ＸＯＲ演算を含むＲＯＰコード（ＲＧＢ）によって挟まれている可能性がある。したがって、この場合は、カレントＲＯＰについて、ＸＯＲ演算を含むＲＯＰコード（ＲＧＢ）によって挟まれているマスクである可能性があることを記録しておく（Ｓ２０３）。このような記録がされたＲＯＰコード（ＲＧＢ）を以下、「仮マスクＲＯＰ」という。続いて、ステップＳ２０２の判定が肯定的なビットについて、ＸＯＲ描画タイプチェック用ビットマップの値をＯＦＦ（０）にする（Ｓ２０４）。ステップＳ２０１で判定されているように、カレントＲＯＰは、ＸＯＲ演算を含まないＲＯＰコード（ＲＧＢ）だからである。
【００５２】
一方、ステップＳ２０１において、カレントＲＯＰがＸＯＲ演算を含むと判定された場合、すなわち、カレントＲＯＰが、ＰＤｘ、ＰＤｘｎ、ＤＳｘ、又はＤＳｘｎのいずれかである場合、ステップＳ２０５に進み、ＸＯＲ描画タイプチェック用ビットマップにおいて、カレントＲＯＰによる描画対象座標に対応するビットがＯＮ（１）であるビットの有無を判定する。このようなビットがある場合、以前に仮マスクＲＯＰとして記録されているＲＯＰコード（ＲＧＢ）は、ＸＯＲ演算を含むＲＯＰコード（ＲＧＢ）によって挟まれていることが確定される。したがって、ステップＳ２０６に進み、仮マスクＲＯＰとして記録されていたＲＯＰをマスクであるとして確定する。
【００５３】
ステップＳ２０５又はステップＳ２０６に続いてステップＳ２０７に進み、カレントＲＯＰは、ＸＯＲ演算を含むＲＯＰコード（ＲＧＢ）であるため、ＸＯＲ描画タイプチェック用ビットマップにおいて、カレントＲＯＰによる描画対象座標に対応するビットをＯＮ（１）とする。
【００５４】
したがって、上記で説明した図７の処理が全てのＲＯＰコード（ＲＧＢ）に対して実行されることにより、ＸＯＲ演算と合成される描画データであるマスクとしてのＲＯＰコード（ＲＧＢ）が判別され、また、ＸＯＲ描画タイプチェック用ビットマップにおいて、ＸＯＲ演算の対象となるビットがＯＮ（１）とされたこととなる。
【００５５】
次に、ＲＯＰ演算データ転送部１４１６による処理手順について説明する。図８は、ＲＯＰ演算データ転送部によるＲＯＰ演算の処理手順を説明するためのフローチャートである。図８の処理も、ＲＯＰコードごとに行われる。したがって、一つの印刷要求に対してＲＯＰコードが複数含まれている場合、その数分だけのループ処理となる。
【００５６】
まず、現在処理対象とされているＲＯＰコード（ＲＧＢ）（「以下、「カレントＲＯＰ」という。」が、マスクであるか否かを判定する（Ｓ３０１）。すなわち、図７の処理においてＲＯＰ置換部１４１２によって、マスクであると判別されたＲＯＰコード（ＲＧＢ）であるか否かが判定される。
【００５７】
カレントＲＯＰがマスクである場合（Ｓ３０１でＹｅｓ）、このようなＲＯＰをＣＭＹＫで描画すると所望の色が得られないため、ＣＭＹＫ（ｎ）をＣＭＹ（ｎ）に変換する（Ｓ３０２）。すなわち、Ｃ、Ｍ、Ｙのそれぞれの値をＫの値との論理和をとったものとする（Ｓ３０２）。続いて、ＣＭＹ（ｎ）においてカレントＲＯＰの演算を行って画像を描画する（Ｓ３０３）。
【００５８】
一方、カレントＲＯＰがマスクで無い場合（Ｓ３０１でＮｏ）、カレントＲＯＰ自体がＣＭＹＫ（ｎ）において演算可能な（互換性が保証される）ものであるか否かを判定する（Ｓ３０４）。ここで、ＣＭＹＫ（ｎ）において演算可能なＲＯＰとは、０、ＤＰＳａａ、ＤＳａ、ＤＰａ、Ｄ，ＰＳａ、Ｓ、Ｐ、及び１が相当する。カレントＲＯＰがこれらに合致する場合、ステップＳ３０５に進み、カレントＲＯＰをＣＭＹＫ（ｎ）におけるＲＯＰコード（以下「ＲＯＰコード（ＣＭＹＫ）」という。）に変換する（Ｓ３０５）。続いて、変換後のＲＯＰコード（ＣＭＹＫ）を演算し、画像の描画を行う（Ｓ３０６）。
【００５９】
一方、カレントＲＯＰ自体では直ちにＣＭＹＫ（ｎ）において演算可能であると判定できない場合は、ステップＳ３０７に進み、対象となっているパターン（Ｐ）が黒で、かつ、パターンが黒の場合に演算可能な（互換性が保証される）カレントＲＯＰであるか否かを判定する。このようなＲＯＰコードは、ＤＰＳｏａ、ＳＤＰｏａ、ＤＰＳａｏ、ＤＰｏが相当する。カレントＲＯＰがこれらの場合、ステップＳ３０８に進み、パターンにおけるＣＭＹＫ（ｎ）それぞれのプレーンの値を全て黒（２ｎ−１）とする。（Ｓ３０８）したがって、例えばｎが１の場合（すなわち、各プレーンが１ビットの場合）、Ｃ、Ｍ、Ｙ、Ｋそれぞれの値は「１」となる。すなわち、ＣＭＹＫ（１）よれば、Ｃ（０）、Ｍ（０）、Ｙ（０）、Ｋ（１）によって黒が表現されるが、このようなパターンはＣ（１）、Ｍ（１）、Ｙ（１）、Ｋ（１）に変換される。これは、後（Ｓ３１０）で行うＲＯＰ演算の互換性を保つためである。言い換えれば、このような変換を行った場合にＲＯＰ演算の互換性が保証されるカレントＲＯＰが、ステップＳ３０７において「パターンが黒の場合に演算可能なカレントＲＯＰ」と判定される。
【００６０】
続いて、カレントＲＯＰをＲＯＰコード（ＣＭＹＫ）に変換し（Ｓ３０９）、変換後のＲＯＰコード（ＣＭＹＫ）を演算して、画像の描画を行う（Ｓ３１０）。
【００６１】
一方、ステップＳ３０７において、カレントＲＯＰが上記（ＤＰＳｏａ、ＳＤＰｏａ、ＤＰＳａｏ、ＤＰｏ）以外の場合、ステップＳ３１１に進み、カレントＲＯＰがＸＯＲ演算を含むか否かを判定する。ＸＯＲ演算を含まない場合、ステップＳ３０２と同様にＣＭＹＫ（ｎ）をＣＭＹ（ｎ）に変換し（Ｓ３１４）、ＣＭＹ（ｎ）においてＲＯＰ演算を行った上で画像を描画する（Ｓ３１５）。
【００６２】
一方、カレントＲＯＰがＸＯＲ演算を含む場合（すなわち、ＤＰｘ、ＰＤｘｎ、ＤＳｘ、又はＤＳｘｎの場合）、ステップＳ３１２に進み、カレントＲＯＰをＲＯＰコード（ＣＭＹＫ）に変換し、カレントＲＯＰに基づく描画処理を行う（Ｓ３１３）。
【００６３】
ステップＳ３１３の処理は、図９において更に詳しく説明する。
【００６４】
図９は、ＲＯＰ演算データ転送部によるＸＯＲ演算を含むＲＯＰコードの処理手順を説明するためのフローチャートである。
【００６５】
まず、カレントＲＯＰの描画対象座標の各座標について、ＸＯＲ描画タイプチェック用ビットマップに基づいて描画タイプ（ＣＭＹＫで描画可能か、又はＣＭＹで描画すべきか）を判定する（Ｓ４０１）。
【００６６】
ＣＭＹで描画すべきであると判定された座標については、ＣＭＹＫ（ｎ）をＣＭＹ（ｎ）に変換し（Ｓ４０３）、ＣＭＹ（ｎ）においてＲＯＰ演算を行った上で画像を描画する（Ｓ４０４）。
【００６７】
一方、ＣＭＹＫで描画可能であると判定された座標については、ＣＭＹＫに基づくカレントＲＯＰコードをそのまま演算し、画像の描画を行う（Ｓ４０５）。
【００６８】
次に、ステップＳ４０１における描画対象座標の描画タイプの判定処理の詳細について説明する。図１０は、ＲＯＰ演算データ転送部による描画対象座標の描画タイプの判定処理の処理手順を説明するためのフローチャートである。
【００６９】
まず、描画対象座標の各座標について、ＲＯＰ置換部１４１２によって生成されたＸＯＲ描画タイプチェック用ビットマップにおいて対応するビットの値を検査する（Ｓ５０１）。ＸＯＲ描画タイプチェック用ビットマップにおけるビットがＯＮ（１）である座標については、ＸＯＲ演算はＣＭＹＫで描画可能であると判定する（Ｓ５０２）。一方、当該ビットがＯＦＦ（１）である座標については、ＸＯＲ演算はＣＭＹでのみ描画可能、すなわち、ＣＭＹで描画すべきであると判定する（Ｓ５０３）。この場合、ＣＭＹＫで描画すると、所望の色が得られないからである。
【００７０】
上述したように、本実施の形態におけるプリンタアプリ１４１によれば、ＣＭＹＫで処理できるＲＯＰ及び使用頻度の高いＲＯＰは、ＣＭＹＫ空間で処理する。また、ディザリング前にＢＧ／ＵＣＲを実施し、かつ、ＣＭＹＫ(ｎ)のプレーンに直接描画する。したがって、高画質、高性能、省メモリを適切に実現することができる。
【００７１】
また、使用頻度の低いＲＯＰやＣＭＹＫ空間では処理できないＲＯＰについては、ＣＭＹ空間で処理するため、印刷結果が期待されるものと全く異なるといった事態の発生を防止することができる。
【００７２】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施の形態における融合機のハードウェアの概略構成例及びソフトウェア構成例を説明するための図である。
【図２】本発明の実施の形態における融合機のハードウェア構成例を示す図である。
【図３】本発明の実施の形態の融合機におけるプリンタアプリの機能構成例を示す図である。
【図４】ＲＯＰ置換部によるＲＯＰ置換処理の処理手順を説明するためのフローチャートである。
【図５】ソースイメージに対するｎｏｔ演算解決によるＲＯＰコード（ＲＧＢ）の置換結果を示す図である。
【図６】パターンに対するｎｏｔ演算解決によるＲＯＰコード（ＲＧＢ）の置換結果を示す図である。
【図７】ＲＯＰ置換部によるＸＯＲ描画事前解析処理の処理手順を説明するためのフローチャートである。
【図８】ＲＯＰ演算データ転送部によるＲＯＰ演算の処理手順を説明するためのフローチャートである。
【図９】ＲＯＰ演算データ転送部によるＸＯＲ演算を含むＲＯＰコードの処理手順を説明するためのフローチャートである。
【図１０】ＲＯＰ演算データ転送部による描画対象座標の描画タイプの判定処理の処理手順を説明するためのフローチャートである。
【符号の説明】
【００７４】
１０１  融合機
１１１  ハードウェア
１１２  ソフトウェア
１１３  融合機起動部
１２１  撮像部
１２２  印刷部
１２３  その他のハードウェア
１３１  アプリケーション
１３２  プラットフォーム
１３３  アプリケーションインタフェース
１３４  エンジンインタフェース
１４１  コピーアプリ
１４２  プリンタアプリ
１４３  スキャナアプリ
１４４  ファクシミリアプリ
１４５  ネットワークファイルアプリ
１５１  コントロールサービス
１５２  システムリソースマネージャ
１５３  ハンドラ
１６１  ネットワークコントロールサービス
１６２  ファクシミリコントロールサービス
１６３  デリバリコントロールサービス
１６４  エンジンコントロールサービス
１６５  メモリコントロールサービス
１６６  オペレーションパネルコントロールサービス
１６７  ユーザディレクトリコントロールサービス
１６８  システムコントロールサービス
１７１  ファクシミリコントロールユニットハンドラ
１７２  イメージメモリハンドラ
２０１  コントローラ
２０２  オペレーションパネル
２０３  ＵＳＢデバイス
２０４  ＩＥＥＥ１３９４デバイス
２０５  ファクシミリコントロールユニット
２１１  ＣＰＵ
２１２  ＡＳＩＣ
２２１  ＮＢ
２２２  ＳＢ
２３１  ＭＥＭ−Ｐ
２３２  ＭＥＭ−Ｃ
２３３  ＨＤＤ
２４１  ＮＩＣ
１４１１  パーサー部
１４１２  ＲＯＰ置換部
１４１３  ＣＭＹＫ変換部
１４１４  ディザリング部
１４１５  レンダラ部
１４１６  ＲＯＰ演算データ転送部
【図１】
0004630208.tif 000002
【図２】
0004630208.tif 000003
【図３】
0004630208.tif 000004
【図４】
0004630208.tif 000005
【図５】
0004630208.tif 000006
【図６】
0004630208.tif 000007
【図７】
0004630208.tif 000008
【図８】
0004630208.tif 000009
【図９】
0004630208.tif 000010
【図１０】
0004630208.tif 000011