(57)【要約】【課題】色変換処理、ハーフトーン処理をともにソフトウェアで実行する場合に、キャッシュメモリを効率的に利用し、色変換処理及びハーフトーン処理の高速化を図ることを目的とする。【解決手段】第一の色空間で規定された入力画像を第二の色空間で規定された階調画像に変換する色変換手段と、前記階調画像を、より低ビットで表現された低階調画像に変換するハーフトーン手段と、横Ｈ画素×縦Ｖ画素又はそれより小さいブロック単位で、前記色変換手段及び前記ハーフトーン手段をセットで実行する制御手段とを備えた画像処理装置であって、前記Ｈ、Ｖを、Ｈ×Ｖのブロック内の全画素についての色変換処理の結果を当該画像処理装置が利用可能なキャッシュメモリに保持できるように設定する。【選択図】図４
2007129613.tif 000002
【特許請求の範囲】
【請求項１】
第一の色空間で規定された階調画像を第二の色空間で規定された階調画像に変換する色変換手段と、
前記階調画像を、より低ビットで表現された低階調画像に変換するハーフトーン手段と、
横Ｈ画素×縦Ｖ画素又はそれより小さいブロック単位で、前記色変換手段及び前記ハーフトーン手段をセットで実行する制御手段とを備えた画像処理装置であって、
前記Ｈ、Ｖが、Ｈ×Ｖのブロック内の全画素についての色変換処理の結果を当該画像処理装置が利用可能なキャッシュメモリに保持できるように設定されていることを特徴とする画像処理装置。
【請求項２】
前記ハーフトーン手段は、前記階調画像に対して所定のディザマトリクスを縦方向にｐ画素（ｐ＜Ｖ）ずらしながら適用することで低階調画像を生成することを特徴とする請求項１記載の画像処理装置。
【請求項３】
請求項１又は２記載の画像処理装置を備えた画像形成装置。
【請求項４】
第一の色空間で規定された階調画像を第二の色空間で規定された階調画像に変換する色変換工程と、
前記階調画像を、より低ビットで表現された低階調画像に変換するハーフトーン工程とを備えた画像処理方法であって、
横Ｈ画素×縦Ｖ画素又はそれより小さいブロック単位で、前記色変換工程及び前記ハーフトーン工程をセットで実行するように構成されており、
前記Ｈ、Ｖが、Ｈ×Ｖのブロック内の全画素についての色変換処理の結果を当該画像処理方法を実行する情報処理装置が利用可能なキャッシュメモリに保持できるように設定されていることを特徴とする画像処理方法。
【請求項５】
請求項４記載の画像処理方法をコンピュータで実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、色変換やハーフトーン処理などの画像処理をソフトウェアにより実行する場合に適した技術に関する。
【背景技術】
【０００２】
従来より、入力画像データに対して画像処理（色変換処理やハーフトーン処理など）を施して印刷データを生成し、該印刷データに基づいて印刷を実行するプリントシステムがある。
【０００３】
色変換処理は、第一の色空間で規定された階調画像を第二の色空間で規定された階調画像に変換する処理である。通常、ホスト装置などで生成される印刷イメージはＲＧＢ色空間で規定される一方、プリンタではＣＭＹＫ色空間で規定された画像データに基づいて印刷を実行することから、色変換処理が必要となる。色変換の方法としては、変換前のＲＧＢ値と変換後のＣＭＹＫ値とを対応づけたＬＵＴ（Look-Up Table）を用意しておき、該ＬＵＴを参照して色変換を行う方法が一般的である。
【０００４】
ハーフトーン処理は、低ビット（例えば２値）のデータにより多階調の画像を表現するために必要となる処理である。例えば、n×n個の閾値からなるディザマトリクスをイメージデータに適用し、対応する各画素の濃淡レベルと閾値を比較し、イメージデータの濃淡レベルの方が大きい場合は１（白）、小さい場合は０（黒）として２値化する組織的ディザ法など、種々のハーフトーン処理が知られている。
【特許文献１】特開平９−２９４２１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のプリントシステムにおいて、画像処理をソフトウェア（ホスト装置のプリンタドライバやプリンタに実装された画像処理プログラム）により実行する場合、画像データはデータ量が多く処理負荷が多いこともあり、処理の高速化を図ることが重要な課題となる。
【０００６】
ここで、従来より、ＣＰＵ内部に設けられた高速なキャッシュメモリに使用頻度の高いデータを蓄積しておくことにより、低速なメインメモリへのアクセスを減らし、高速化を図る方法が知られている。
【０００７】
本願の発明者は、色変換処理、ハーフトーン処理をともにソフトウェアで実行する場合において、キャッシュメモリの動作を考察した結果、色変換処理及びハーフトーン処理を実行する単位によってキャッシュメモリの利用効率が大きく変わることを発見した。例えば、印刷イメージのライン単位で色変換処理及びハーフトーン処理を連続して実行した場合、色変換処理からハーフトーン処理に移行する際に頻繁にキャッシュメモリと外部メモリとの間で読出し／書込みが生じてしまい、オーバーヘッドによって十分に高速化できない場合があることに気づいた。
【０００８】
本発明は、上記発見に基づき想到したものであり、色変換処理、ハーフトーン処理をともにソフトウェアで実行する場合に、キャッシュメモリを効率的に利用し、色変換処理及びハーフトーン処理の高速化を図ることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の画像処理装置は、第一の色空間で規定された階調画像を第二の色空間で規定された階調画像に変換する色変換手段と、前記階調画像を、より低ビットで表現された低階調画像に変換するハーフトーン手段と、横Ｈ画素×縦Ｖ画素又はそれより小さいブロック単位で、前記色変換手段及び前記ハーフトーン手段をセットで実行する制御手段とを備えた画像処理装置であって、前記Ｈ、Ｖが、Ｈ×Ｖのブロック内の全画素についての色変換処理の結果を当該画像処理装置が利用可能なキャッシュメモリに保持できるように設定されていることを特徴とする。
【００１０】
かかる構成によれば、色変換処理の実行してからハーフトーン処理に移行する際、ハーフトーン処理に必要な色変換処理結果が全てキャッシュメモリに保持されているため、メインメモリにアクセスすることなく、ブロック内の画素に対してハーフトーン処理を実行することが可能となり、その結果、処理の高速化を図ることができる。
【００１１】
好適には、前記ハーフトーン手段は、前記階調画像に対して所定のディザマトリクスを縦方向にｐ画素（ｐ＜Ｖ）ずらしながら適用することで低階調画像を生成することを特徴とする。
【００１２】
かかる構成によれば、ｐ＜Ｖという関係が成立していることで、連続してハーフトーン処理を実行するブロックについて、適用するディザマトリクスの領域を重複させることができ、その結果、ディザマトリクスに関するキャッシュヒット率を大きく向上させることができる。
【００１３】
本発明の画像形成装置は、本発明の画像処理装置を備えることを特徴とする。
【００１４】
本発明の画像処理方法は、第一の色空間で規定された階調画像を第二の色空間で規定された階調画像に変換する色変換工程と、前記階調画像を、より低ビットで表現された低階調画像に変換するハーフトーン工程とを備えた画像処理方法であって、横Ｈ画素×縦Ｖ画素又はそれより小さいブロック単位で、前記色変換工程及び前記ハーフトーン工程をセットで実行するように構成されており、前記Ｈ、Ｖが、Ｈ×Ｖのブロック内の全画素についての色変換処理の結果を当該画像処理方法を実行する情報処理装置が利用可能なキャッシュメモリに保持できるように設定されていることを特徴とする。
【００１５】
本発明の画像処理方法は、コンピュータにより実施することができるが、そのためのコンピュータプログラムは、ＣＤ−ＲＯＭ、磁気ディスク、半導体メモリ及び通信ネットワークなどの各種の媒体を通じてコンピュータ（ホスト装置や、画像形成装置が備える画像処理装置など）にインストールまたはロードすることができる。また、コンピュータプログラムが、プリンタ用カードやプリンタ用オプションボードに記録されて流通する場合も含む。
【発明の効果】
【００１６】
以上、本発明によれば、色変換処理、ハーフトーン処理をともにソフトウェアで実行する場合に、キャッシュメモリを効率的に利用し、色変換処理及びハーフトーン処理の高速化を図ることができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１８】
図１は、本実施の形態における画像形成装置の構成図である。この画像形成装置は、一例として、大判用紙への画像形成を可能にするインクジェットプリンタであり、コントローラ２０が、図示しないホストコンピュータから入力画像データを受信し、それを画像処理して画像再生データを生成し、インクを吐出する多数のノズルを有する印刷ヘッド１０に画像再生信号３８を出力する。コントローラ２０は、画像再生データを生成するための画像処理を制御するＣＰＵと、そのＣＰＵバスＣＢＵＳ１と、ＣＰＵバスＣＢＵＳ１に接続された画像処理ユニット２２とを有する。また、ＣＰＵバスＣＢＵＳ１には外部ＣＰＵメモリＣＰＵＭＥＭが接続され、この外部ＣＰＵメモリには、種々のパラメータや制御プログラムが格納されている。
【００１９】
また、ＣＰＵバスＣＢＵＳ１は、画像処理ユニット２２内のＣＰＵインタフェースＣＰＵＩＦを介して第２のＣＰＵバスＣＢＵＳ２に接続されている。また、画像処理ユニット２２は、種々の通信路ＮＥＴ１〜３のインタフェースＩＦ１〜３と、入力データの転送制御を行うパス制御部２４と、解凍処理を行う解凍ユニット２６と、ラスタ方向の画像再生データを印刷ヘッドのパス毎に分解するパス分解処理部３２と、パス毎に分解された画像再生データを印刷ヘッドのノズル順に順番を入れ替えるノズル順変換処理部３４とが、それぞれ専用のハードウエアブロックとして設けられる。また、色変換及びハーフトーン処理部１２は、解凍ユニット２６やパス分解処理部３２、ノズル順変換処理部３４のようなコントローラ２０内の専用ハードウエアではなく、外付けの専用プロセッサ（例えば、ＤＳＰ（Digital Signal Processor））により構成され、色変換及びハーフトーン処理をプログラム（ソフトウェア）により実現し、それらの処理の変更に容易に対応できるようにしている。
【００２０】
更に、画像処理ユニット２２は、前述のパス制御部２４、解凍ユニット２６、パス分解処理部３２、ノズル順変換処理部３４を接続するローカルバスＬＢＵＳを有し、このローカルバスＬＢＵＳには外部メモリコントローラ２８を介して外部の大容量メモリＥ−ＭＥＭが接続される。外部メモリコントローラ２８と外部メモリＥ−ＭＥＭとは、メモリバスＭＢＵＳを介して接続される。そして、外部の大容量メモリＥ−ＭＥＭは、入力画像データを一時的に格納し、各処理後のデータを一時的に格納する複数のバッフ領域を有する。また、ローカルバスＬＢＵＳがハーフトーンインタフェースユニット３０に接続され、ハーフトーンバスＨＴＢＵＳを介して色変換及びハーフトーン処理部１２に接続される。また、ローカルバスＬＢＵＳは、ヘッドインタフェースユニット３６を介して印刷ヘッド１０に接続される。
【００２１】
ＣＰＵバスＣＢＵＳ１、ＣＢＵ２は、コマンド解釈などに利用されるのに対して、ローカルバスＬＢＵＳは大量の画像データの転送に利用されるので、ＣＰＵバスに比較すると大容量のバス（ローカルバスは１２８ビット、ＣＰＵバスは３２ビット）に形成されている。
【００２２】
画像処理ユニット２２内の専用処理ユニットらは、ＣＰＵと、第１のＣＰＵバスＣＢＵＳ１及び第２のＣＰＵバスＣＢＵＳ２を介してその動作を制御される。例えば、ＣＰＵが、各処理ユニットの動作開始レジスタに動作開始フラグを書き込むことで各専用処理ユニットは対応する処理を実行し、ＣＰＵは、各処理ユニットの処理終了時に動作終了割り込み信号を受信してその動作終了を検知する。
【００２３】
インクジェットの大判プリンタは、印刷業などで広く利用されているが、本実施の形態では、入力画像データとして、ＲＧＢ階調データや、ＲＧＢ階調データをＪＰＥＧ形式で圧縮したＪＰＥＧ圧縮データ等を受信可能である。ＲＧＢ階調データ等は、通信線ＮＥＴ１〜ＮＥＴ３を介してコントローラ２０に入力される。ＪＰＥＧ圧縮データの場合は、ホストコンピュータ側で元の画像データがＪＰＥＧ圧縮され、その圧縮データがコントローラ２０に入力される。圧縮率が高いので通信データ量を小さくすることができ、ホストコンピュータとプリンタ間の通信時間を短くすることができる。但し、プリンタ側では、受信したＪＰＥＧ圧縮データを解凍してＲＧＢ階調データを復元する必要がある。
【００２４】
このように入力又は復元されたＲＧＢ階調データには、色変換、ハーフトーン処理、ヘッドのノズルに対応させる変換処理、つまりドット毎のインク吐出データをパス毎に分解するパス分解処理、パス毎に分解されたラスタ方向に並べられたデータをヘッドのノズル順に並び替えるノズル順変換処理が施される。
【００２５】
次に、入力画像データに対応して、データの流れと処理について説明する。入力画像データは、パケットの形態で種々の通信路ＮＥＴ１〜３を介して入力され、それぞれの入力インタフェースＩＦ１〜３は、パケットを元のデータ列に再構成するなどの処理を行い、送信前の元のデータに戻す。そして、この入力データは、パス制御部２４内のＦＩＦＯメモリで構成される第１の入力バッファＩ−ＢＵＦ１に格納されながら、ローカルバスＬＢＵＳを介して、外部の大容量メモリＥ−ＭＥＭの入力バッファＩ−ＢＵＦ３に格納される。この外部メモリＥ−ＭＥＭは、例えば、ダブルレートのシンクロナスＤＲＡＭであり、大容量且つ高速メモリである。また、外部メモリＥ−ＭＥＭへのアクセスは、メモリコントローラユニットＥ−ＭＣとメモリバスＭＢＵＳを経由して行われる。
【００２６】
そして、外部メモリＥ−ＭＥＭに格納された入力データのうち、先頭の部分が再度ローカルバスＬＢＵＳを介して、パス制御部２４内の第２の入力バッファＩ−ＢＵＦ２に格納される。つまり、入力データが全て外部メモリＥ−ＭＥＭに格納されると共に、その先頭の一部のみがパス制御部２４内の第２の入力バッファＩ−ＢＵＦ２に格納されて停止する。第１及び第２の入力バッファＩ−ＢＵＦ１、２は、ＦＩＦＯバッファであり、図示しないＦＩＦＯコントローラにより制御される。
【００２７】
そこで、ＣＰＵは、ＣＰＵバスＣＢＵＳ１、２を介して第２の入力バッファＩ−ＢＵＦ２にアクセスして、入力データの先頭部分のコマンドを解析してフォーマットの種類（圧縮形式情報）とデータ量を認識すると、外部メモリＥ−ＭＥＭの第３の入力バッファＩ−ＢＵＦ３内に格納した入力データを、次々に第２の入力バッファＩ−ＢＵＦ２に転送し、そこから解凍ユニット２６にデータを転送させる。このデータ転送は、ローカルバスＬＢＵＳを経由せず、第２の入力バッファＩ−ＢＵＦ２から専用線で行われる。
【００２８】
例えば、ＪＰＥＧフォーマットの場合は、解凍ユニット２６で解凍（復号化）され、解凍済みの画像データが外部メモリＥ−ＭＥＭのＲＧＢバッファＲＧＢ−ＢＵＦに格納される。入力画像データがＲＧＢ階調データの場合は、解凍ユニット２６を介することなくＲＧＢバッファＲＧＢ−ＢＵＦに格納される。ＲＧＢバッファに格納される画像データは、例えば所定の解像度の画素に対応するそれぞれ８ビットのＲＧＢ階調データとなる。このＲＧＢ階調データは、ハーフトーンインタフェースユニット３０を経由して色変換及びハーフトーン処理部１２に転送され、そこで色変換処理されてインク色に基づく色空間ＣＭＹＫの８ビット階調データに変換される。更に、ＣＭＹＫ階調データはハーフトーン処理されてより低階調のデータ、すなわち、印刷ヘッド１０のノズルによるインク吐出データ（２ビット）に変換され、外部メモリＥ−ＭＥＭのプレーンバッファＰＬ−ＢＵＦに格納される。２ビットのインク吐出データは、ＣＭＹＫ４色のインクそれぞれに対して大きなドット印刷用の吐出の有無と、小さなドット印刷用の吐出の有無を示すデータである。また、上記の色変換及びハーフトーン処理部１２では、解凍済みの画像データの解像度をより高い解像度に変換する解像度変換を必要に応じて行う。その結果、ハーフトーン処理により、プリンタヘッドにより印刷される画素密度の解像度でドットの吐出有無を示すインク吐出データとなる。
【００２９】
なお、上記では、ＲＧＢ階調データ、ＣＭＹＫ階調データ、インク吐出データ（低階調データ）の１色１画素あたりのビット長をそれぞれ８ビット、８ビット、２ビットとしているが、これらは設計に応じて変更可能である。
【００３０】
プレーンバッファＰＬ−ＢＵＦに格納されたＣＭＹＫのインク吐出データは、パス分解処理３２でヘッド１０のパス毎のインク吐出データに分解されて、外部メモリＥ−ＭＥＭ内のパスバッファＭＷ−ＢＵＦに格納される。そして、パス毎に分解されたインク吐出データは、ノズル順変換処理部３４でヘッドのノズル順に並び替えられ、そのノズル順インク吐出データが外部メモリＥ−ＭＥＭ内のヘッドバッファＨＤ−ＢＵＦに格納される。最後に、ノズル順に並び替えられたノズル順インク吐出データが、ヘッドコントロールユニット３６を経由して、画像再生信号３８としてプリンタヘッド１０に転送される。
【００３１】
図２は、本実施の形態における色変換及びハーフトーン処理部１２の構成図である。色変換及びハーフトーン処理部１２は、ＣＰＵチップ５０とメモリ６０とを備える。キャッシュ５４はＣＰＵチップ５０内部の高速メモリ（又は、ＣＰＵチップ５０が高速アクセス可能なＲＡＭなど）であり、ＣＰＵコア５２の動作とメモリ６０へのアクセスとの間の速度差を吸収する。キャッシュ５４の容量は設定に応じて定めることができるが、ここでは１６Ｋバイトとする。メモリ６０とキャッシュとの間では、１６／３２／６４バイト等のキャッシュラインサイズでリード・ライトされる。ＣＰＵコア５２はキャッシュ５４上に有効なデータが有る場合は、キャッシュアクセスのみで動作するため、処理を高速に実行できる。しかし、キャッシュ５４のサイズには限りがあるため、必要なデータが常にキャッシュ５４に存在するとは限らない。ＣＰＵチップ５０は、前述のキャッシュ５４を接続する内部バス５８を有し、この内部バス５８にはメモリコントローラ５６を介してメモリ６０が接続される。メモリ６０には、画像処理プログラム、色変換する際に参照するＬＵＴ、ハーフトーン処理を行う際に参照するディザマトリクスなどが格納されている。
【００３２】
図３は、画像形成装置での印刷処理の流れを示す図である。画像形成装置では、ホストコンピュータから入力画像データを受信すると（Ｓ７０）、第１入力バッファＩ−ＢＵＦ１、外部メモリＥ−ＭＥＭ、第２入力バッファＩ−ＢＵＦ２に入力画像データが格納され、第２入力バッファＩ−ＢＵＦ２に格納されているコマンドが、ＣＰＵにより読み出され解析される。入力画像データがＲＧＢ階調データの場合は、解凍ユニット２６を介することなくＲＧＢバッファＲＧＢ−ＢＵＦに格納される。ＪＰＥＧ圧縮された画像形成データの場合は、ここでＣＰＵによりＪＰＥＧ圧縮フォーマットであることが検出され、圧縮データ５４が解凍ユニット２６に転送され、そこで解凍処理され、その後、解凍されたＲＧＢ階調データがＲＧＢバッファＲＧＢ−ＢＵＦに格納される。
【００３３】
画像形成装置のコントローラ２０は、ＲＧＢバッファＲＧＢ−ＢＵＦのＲＧＢ階調データを、ハーフトーンインタフェースユニット３０とハーフトーンバスＨＴＢＵＳとを介して色変換及びハーフトーン処理部１２に転送する。
【００３４】
色変換及びハーフトーン処理部１２は、画像処理プログラムを実行して、ＲＧＢ階調データからＣＭＹＫ階調データへの色変換処理、及び、ＣＭＹＫ階調データに対してインクの吐出有無に対応するインク吐出データを生成するハーフトーン処理を実行する（Ｓ７２）。生成されたインク吐出データは、外部メモリのプレーンバッファＰＬＢＵＦに格納される。
【００３５】
ここで、本実施形態では、Ｓ７２において、横Ｈ画素×縦Ｖ画素のブロック単位で、色変換処理及びハーフトーン処理をセットで実行するように構成している。
【００３６】
Ｈ、Ｖは、Ｈ×Ｖのブロック内の全画素についての色変換処理の結果を、色変換及びハーフトーン処理部１２（ＣＰＵコア５２）が利用可能なキャッシュメモリ、すなわちキャッシュ５４に保持できるように設定される。具体的には、Ｈ×Ｖ×ＣＭＹＫ階調画像データの１色１画素あたりのビット長（本実施形態では、８ビット）×色数（本実施形態では、４色）≦キャッシ５４の容量（本実施形態では、１６Ｋバイト）という関係が少なくとも成立するように、Ｈ及びＶが設定される。なお、キャッシュ５４がＬＵＴやディザマトリクスなどのデータ保持に利用されている場合でもキャッシュ５４内にＨ×Ｖのブロック内の全画素に対する色変換処理結果を保持できるように、キャッシュ５４の容量に余裕を持たせてＨ、Ｖを定めることが望ましい。
【００３７】
次に、画像形成装置のコントローラ２０は、インク吐出データを、パス分解処理部３２とノズル順変換処理部３４とによりヘッドデータに変換する（Ｓ７４）。そして、変換されたヘッドデータを画像再生信号３８としてプリンタヘッド１０に出力する（Ｓ７６）。
【００３８】
図４、図５は、印刷処理のＳ７２における、色変換処理及びハーフトーン処理の詳細を示すフローチャートである。色変換処理及びハーフトーン処理の各工程（符号が付与されていない部分的な工程を含む）は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００３９】
まず、ＣＰＵコア５２は、転送されたＲＧＢ階調データ上に、所定の順序で、横Ｈ画素×縦Ｖ画素のブロックを設定する（Ｓ８０）。ブロックの設定順としては、例えば図６（ａ）の矢印で示すような順序で設定することが考えられる。
【００４０】
なお、画像端部においてＨ×Ｖのブロックを設定できない場合は、画像内に収まるようにＨ×Ｖより小さいブロックを設定すればよい。
【００４１】
次に、ＣＰＵコア５２は、変数ｘ、ｙに初期値０をセットする（Ｓ８２）。ここで、変数ｘ、ｙは、Ｈ×Ｖのブロック内の画素位置を特定するための変数であり、ブロックの左上画素位置を原点（０、０）とし、走査方向（横方向）をｘ、副走査方向（縦方向）をｙで表すものとする。
【００４２】
次に、ＣＰＵコア５２は、ＲＧＢ階調データ上に設定した前記ブロックにおいて（ｘ、ｙ）で特定される画素のＲＧＢ値を取得する（Ｓ８４）。
【００４３】
次に、ＣＰＵコア５２は、ＬＵＴを参照して、前記取得したＲＧＢ値に対応するＣＭＹＫ値を求め、該ＣＭＹＫ値に基づく各色の階調データを（ｘ、ｙ）の画素に対する色変換処理結果としてキャッシュ５４に書き込む（Ｓ８６）。このとき、ＣＰＵコア５２は、キャッシュ５４に空きがない場合、所定の基準でキャッシュ５４内に格納されているデータを選択し、該選択したデータをメモリコントローラ５６を介してメモリ６０に書き込む（ライトバックする）。
【００４４】
次に、ＣＰＵコア５２は、ｘ＝ｘ＋１を実行する（Ｓ８８）。
【００４５】
次に、ＣＰＵコア５２は、ｘ＜Ｈが成立（かつ（ｘ、ｙ）で特定される画素が存在）するか否かを判断する（Ｓ９０）。そして、成立する場合は、Ｓ８４に戻り、一方、成立しない場合は、ｘ＝０、ｙ＝ｙ＋１を実行する（Ｓ９２）。
【００４６】
次に、ＣＰＵコア５２は、ｙ＜Ｖが成立（かつ（ｘ、ｙ）で特定される画素が存在）するか否かを判断する（Ｓ９４）。そして、成立する場合は、Ｓ８４に戻る。
【００４７】
一方、成立しない場合は、ＣＰＵコア５２は、ブロック内の画素について色変換処理が終了したと判断し、続けてブロック内の画素について各色ごとに９６以降のハーフトーン処理を実行する。
【００４８】
すなわち、ＣＰＵコア５２は、ＣＭＹＫのうち１色を選択するとともに、変数ｘ、ｙに初期値０をセットする（Ｓ９６）。
【００４９】
次に、ＣＰＵコア５２は、（ｘ、ｙ）の画素に対応する前記選択した色の階調データ（以下、「インク色階調データ」という）がキャッシュ５４に存在すれば（Ｓ９８：Ｙｅｓ）、キャッシュ５４からインク色階調データを読み出す（Ｓ１００）。
【００５０】
一方、キャッシュ５４にインク色階調データが存在しない場合（Ｓ９８：Ｎｏ）、ＣＰＵコア５２は、メモリコントローラ５６を介してメモリ６０にアクセスし、メモリ６０からインク色階調データを読み出す（Ｓ１０２）。
【００５１】
次に、ＣＰＵコア５２は、ディザマトリクスを参照して、前記読み出したインク色階調データをより低階調のインク吐出データに変換する（Ｓ１０４）。なお、本実施形態では、各要素ごとに３つの閾値を有するディザマトリクスを用いてインク色階調データを４値化する組織的ディザ法を採用し、１色１画素のビット長が２ビットのインク吐出データを生成するように構成している。
【００５２】
次に、ＣＰＵコア５２は、前記生成したインク吐出データをメモリコントローラ５６を介してメモリ６０に書き込む（ライトバックする）（Ｓ１０６）。
【００５３】
次に、ＣＰＵコア５２は、ｘ＝ｘ＋１を実行する（Ｓ１０８）。
【００５４】
次に、ＣＰＵコア５２は、ｘ＜Ｈが成立（かつ（ｘ、ｙ）で特定される画素が存在する）か否かを判断する（Ｓ１１０）。そして、成立する場合は、Ｓ９８に戻り、一方、成立しない場合は、ｘ＝０、ｙ＝ｙ＋１を実行する（Ｓ１１２）。
【００５５】
次に、ＣＰＵコア５２は、ｙ＜Ｖが成立（かつ（ｘ、ｙ）で特定される画素が存在する）か否かを判断する（Ｓ１１４）。そして、成立する場合は、Ｓ９８に戻る。
【００５６】
一方、成立しない場合は、ＣＰＵコア５２は、ＣＭＹＫのうち未だ選択していない色があるか否かを判断し（Ｓ１１６）、ある場合は、未選択の色を選択すべくＳ９６に戻る。
【００５７】
ＣＭＹＫ４色全て選択している場合、ＣＰＵコア５２は、ブロック内の画素についてハーフトーン処理が終了したと判断し、ＲＧＢ階調データ上にブロックを未だ設定していない領域があるか否かを判断する（Ｓ１１８）。そして、ある場合は、未設定の領域にブロックを設定すべくＳ８０に戻り、そのような領域がない場合は、色変換処理及びハーフトーン処理を終了する。
【００５８】
このように、本実施形態では、Ｈ×Ｖのブロック内の全画素についての色変換処理の結果をキャッシュ５４に保持できるように、具体的には、Ｈ×Ｖ×４バイト≦１６Ｋバイトという関係が少なくとも成立するように、Ｈ及びＶを定め、このＨ×Ｖのブロック単位で色変換処理及びハーフトーン処理をセットで実行するように構成している。かかる構成によれば、理論的には、色変換処理の実行してからハーフトーン処理に移行する際、ハーフトーン処理に必要な色変換処理結果が全てキャッシュ５４に保持されているため、メモリ６０にアクセスすることなく、ブロック内の画素に対してハーフトーン処理を実行することが可能となる。実際には、キャッシュ５４に保持する他のデータとの関係で色変換処理結果がメモリ６０にライトバックされる可能性はあるが、少なくとも、必ずキャッシュミスヒットが生じてしまう構成、すなわち、（Ｈ×Ｖ×色変換後の階調データの１色１画素あたりのビット長×色数）＞（キャッシュメモリサイズ）となるようなブロック単位で色変換処理及びハーフトーン処理を実行する構成（４４インチ等の大判プリンタにおいて、ライン単位に色変換処理及びハーフトーン処理を実行する場合、通常、このような構成となる）に比べれば、キャッシュミスヒットが減ることは確実であり、その結果、処理の高速化を図ることができる。
【００５９】
（変形例）
本変形例では、ブロックノイズの抑制等の観点からディザマトリクスを縦方向（副走査方向）にｐ画素ずらしながら適用してハーフトーン処理（組織的ディザ処理）を実行する場合を想定する。この場合、ｐ＜Ｖという関係が成立するようにｐ（又はＶ）を設定することで、ディザマトリクスに関するキャッシュヒット率を大きく向上させて、更に処理の高速化を図ることができる。以下、その原理を説明する。
【００６０】
今、ディザマトリクスが２５６×２５６のサイズであり、Ｈ＝２５６（ディザマトリクスの横幅と同サイズ）、Ｖ＝８、ｐ＝１とする。また、ＲＧＢ階調データに対して図６（ａ）の矢印で示すような順序でブロックを選択するものとする。このとき、図６（ａ）の符号２００のブロックについてハーフトーン処理を実行する場合、２５６×２５６のディザマトリクスのうち図７（ａ）に示す領域３００が参照され、その値がメモリ６０からキャッシュ５４に書き込まれる。次に、符号２０１のブロックについてハーフトーン処理を実行する場合、２５６×２５６のディザマトリクスが１画素ずれた状態で適用される結果、図７（ｂ）に示す領域３０１が参照されることになる。この場合、領域３０１中の斜線領域については、その値がキャッシュ５４に保持されているため、メモリ６０からディザマトリクスの値を読み出すことなく、キャッシュ５４に保持した値を利用してブロック内の画素に対してハーフトーン処理を実行することが可能となる。このように、ｐ＜Ｖという関係が成立していることで、連続してハーフトーン処理を実行するブロックについて、適用するディザマトリクスの領域を重複させることができ、その結果、ディザマトリクスに関するキャッシュヒット率を大きく向上させることができる。なお、ｐ≧Ｖとした場合、連続してハーフトーン処理を実行するブロック（符号２００、符号２０１）について、適用するディザマトリクスについて重複が生じないため、ブロックを移る都度、原則としてメモリ６０からキャッシュ５４へディザマトリクスの値を書き込む必要が生じる。
【００６１】
（その他）
本発明は、上記実施形態に限定されることなく種々に変形して適用することが可能である。例えば、入力画像の色空間はＲＧＢ色空間以外であってもよく、同様に出力色空間はＣＭＹＫ色空間以外であってもよい。
【００６２】
また上記実施形態では、画像形成装置が色変換及びハーフトーン処理部１２を備える構成としているが、本発明は必ずしもこのような構成に限られるものではない。例えば、ホスト装置のプリンタドライバ等が色変換及びハーフトーン処理部１２の機能を備える構成としてもよい。
【００６３】
また上記実施形態では、色変換処理、ハーフトーン処理を１画素単位で実行する構成としているが、複数画素単位で各処理を実行するように構成してもよい。色変換処理であれば、例えば２×２画素のＲＧＢ値を取得し、これらの平均値に基づきＬＵＴを参照してＣＭＹＫ値を求め、かかるＣＭＹＫ値に基づき２×２の４画素についての色変換後の階調データを決定する。また、ハーフトーン処理であれば、例えば２×２画素のインク色階調データを取得し、これらの平均値にディザマトリクスを適用してインク吐出データを求め、かかるインク吐出データを２×２の４画素についてのハーフトーン処理後の値とする。このように構成することで、ＬＵＴ参照回数やディザマトリクスの適用回数を減らしたり、ディザマトリクスのサイズを小さくできるため、更に処理の高速化を図ることができる。
【００６４】
また上記実施形態では、図６（ａ）に示すような順序でブロックを選択する構成としているが、例えば図６（ｂ）に示すようなジグザグ順序でブロックを選択する構成としてもよい。このようにジグザグ順序でブロックを選択する場合、特に、Ｈ＝ディザマトリクスの横幅、Ｖ＝１とすることで、２〜３ブロック、４〜６ブロック、・・・のように斜めに並ぶブロックについては、参照するディザマトリクスの要素値を完全に重複させることが可能となるため、それらのブロック間では、メモリ６０にアクセスすることなく、キャッシュ５４に保持したディザマトリクスの値を利用して、ハーフトーン処理を実行することが可能となる。
【００６５】
また上記実施形態では、ハーフトーン処理として組織的ディザ法を採用しているが、本発明は必ずしもこのような構成に限られるものではない。例えば、Ｃ（シアン）については組織的ディザ法、Ｍ（マゼンタ）については誤差拡散法など、ＣＭＹＫ等の色ごとにハーフトーン処理のアルゴリズムを変更する構成とすることも考えられる。
【００６６】
なお、本発明の画像処理装置及び画像処理方法は、プリントシステム等への適用に限られず、色変換処理及びハーフトーン処理を行うモジュール／装置／システム等であれば、適用することが可能である。
【図面の簡単な説明】
【００６７】
【図１】本実施の形態における画像形成装置の構成図である。
【図２】本実施の形態における色変換及びハーフトーン処理部１２の構成図である。
【図３】画像形成装置での印刷処理の流れを示すフローチャートである。
【図４】色変換処理及びハーフトーン処理の詳細を示すフローチャートである。
【図５】色変換処理及びハーフトーン処理の詳細を示すフローチャートである。
【図６】色変換処理及びハーフトーン処理を実行する際のブロック選択順序例を説明するための図である。
【図７】連続してハーフトーン処理を実行するブロックについて、適用するディザマトリクスの領域が重複する様子を説明するための図である。
【符号の説明】
【００６８】
１２  色変換及びハーフトーン処理部、５０  ＣＰＵチップ、５２  ＣＰＵコア、５４  キャッシュ、５６  メモリコントローラ、５８  内部バス、６０  外部メモリ
【図１】
2007129613.tif 000003
【図２】
2007129613.tif 000004
【図３】
2007129613.tif 000005
【図４】
2007129613.tif 000006
【図５】
2007129613.tif 000007
【図６】
2007129613.tif 000008
【図７】
2007129613.tif 000009