(57)【要約】【課題】インクジェットプリンターなどの面積階調を用いた出力機器における画質を向上させるための低コストな画像処理装置を提供する。【解決手段】カラー輝度信号からハイライト領域を検出するハイライト検出手段１０４と、適応的に出力を切り替える色変換手段１０６と、ハーフトーニング手段１０７と、インデックス出力を再配置する手段１１７から構成され、入力からバンドバッファーに至る一連の処理を各出力色毎に少なくとも１ラインはストールなく行えることを特徴とする。ハイライト検出手段１０４は、入力信号がハイライト領域にあるかどうかを判別してその結果を出力し、色変換手段１０６は、第１の色の濃度の処理を行うときに、ハイライト検出手段１０４での検出結果に応じて、第１の色の濃度に対応した単色のテーブルかまたは、それと別の第２の色の濃度に対応したテーブルとの和を保持するテーブルを切り替えて使う。【選択図】　　　　図１
2004128975.tif 000002
【特許請求の範囲】
【請求項１】
多値のカラー輝度信号を、２値または多値のカラー濃度制御信号へ変換する画像処理装置であって、
前記カラー輝度信号の入力値がハイライト領域に属するかどうかを検出するハイライト検出手段と、
該ハイライト検出手段による検出の結果、前記入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを用いて補間演算を行い、前記入力値がハイライト領域に属さない場合には、前記第１の色に対応した濃度出力用のテーブルを用いて補間演算を行い、前記入力値を濃度出力に変換する色変換手段と、
該色変換手段により変換された濃度出力を誤差拡散処理して、２値または多値のインデックス出力を求めるハーフトーニング手段と、
該ハーフトーニング手段により求められたインデックス出力のうち、前記第１の色に対応したインデックス出力と、前記第１及び第２の色の和に対応したインデックス出力とを比較して、該第１及び第２の色の和に対応したインデックス出力を整形する手段と
を備えたことを特徴とする画像処理装置。
【請求項２】
多値のカラー輝度信号を、２値または多値のカラー濃度制御信号へ変換する画像処理装置であって、
前記カラー輝度信号の入力値がハイライト領域に属するかどうかを検出するハイライト検出手段と、
該ハイライト検出手段による検出の結果、前記入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを、前記入力値がハイライト領域に属さない場合には、前記第１の色に対応した濃度出力用のテーブルをそれぞれ用いて補間演算を行い、前記入力値を濃度出力に変換する色変換手段と、
該色変換手段により変換された濃度出力のうち、前記第２の色以外の濃度出力に対しては誤差拡散処理を行ってインデックス出力を求め、前記第２の色の濃度出力に対しては、前記インデックス出力のうちの前記第１の色に対応したインデックス出力と、前記ハイライト検出手段による検出の結果とに基づいて、誤差拡散出力を制御して前記第２の色に対応したインデックス出力を求めると共に、前記第１の色に対応したインデックス出力を調整するハーフトーニング手段と
を備えたことを特徴とする画像処理装置。
【請求項３】
前記ハイライト検出手段は、前記第１及び第２の色の補色成分である２つの輝度信号成分の各々に対応した２つの境界値と、単色処理領域であることを示す他の１つの境界値を有し、
前記２つの境界値の各々と、対応する前記入力値とを比較し、全ての入力値が対応する前記境界値より大きいかどうかを判別する第１の手段と、
前記第１及び第２の色の補色成分である２つの輝度値を２５５からそれぞれ減算して２つの値を求め、該２つの値の差の絶対値が前記他の１つの境界値より小さいかどうかを判別する第２の手段と、
前記第１の手段及び前記第２の手段の判別結果が共に真であったときに、前記入力値がハイライト領域に属することを決定する第３の手段と
を備えたことを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記色変換手段は、前記ハイライト検出手段の検出結果に基づき、前記入力値がハイライト領域に属すると判断された場合は、前記入力値により定義される空間において、前記第１及び第２の色の補色成分を表す２軸で構成される平面に射影された正方形が、最もハイライト側に位置するような立方体頂点の格子点値の和を用いて補間演算を行うことを特徴とする請求項１または２に記載の画像処理装置。
【請求項５】
前記整形する手段は、
前記第２の色に対応したインデックス出力内で、所定の大きさの２次元ウインドウ内を検索して、ハイライト領域にありかつインデックス値が１である画素の個数を求めてそれを置換元画素数として記録し、前記インデックス値を０に置き換える第１の手段と、
前記第１の色に対応したインデックス出力内で、所定の大きさの２次元ウインドウ内部を検索して、ハイライト領域にありかつインデックス値が１である画素の個数を求めてそれを置換先候補画素数として記録し、該画素の位置を置換先座標として記録する第２の手段と、
前記置換元画素数及び置換先候補画素数のうち小さい方を置換可能画素数として記録する第３の手段と、
乱数を用いて、前記置換可能画素数と等しい数の置換先座標を求める第４の手段と、
前記置換先座標にある前記第１の色に対応したインデックス出力を０にして、前記第２の色に対応したインデックス出力を１にする第５の手段と
を備えたことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
多値のカラー輝度信号を、２値または多値のカラー濃度制御信号へ変換する画像処理装置の画像処理方法であって、
前記カラー輝度信号の入力値がハイライト領域に属するかどうかを検出するステップと、
該検出の結果、前記入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを用いて補間演算を行い、前記入力値がハイライト領域に属さない場合には、前記第１の色に対応した濃度出力用のテーブルを用いて補間演算を行い、前記入力値を濃度出力に変換するステップと、
該変換された濃度出力を誤差拡散処理して、２値または多値のインデックス出力を求めるステップと、
該求められた前記第１の色に対応したインデックス出力と、前記第１及び第２の色の和に対応したインデックス出力とを比較して、該第１及び第２の色に対応したインデックス出力を整形するステップと
を備えたことを特徴とする画像処理方法。
【請求項７】
多値のカラー輝度信号を、２値または多値のカラー濃度制御信号へ変換する画像処理装置の画像処理方法であって、
前記カラー輝度信号の入力値がハイライト領域に属するかどうかを検出するステップと、
該検出の結果、前記入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを、前記入力値がハイライト領域に属さない場合には、前記第１の色に対応した濃度出力用のテーブルをそれぞれ用いて補間演算を行い、前記入力値を濃度出力に変換するステップと、
該変換された濃度出力のうち、前記第２の色以外の濃度出力に対しては誤差拡散処理を行ってインデックス出力を求め、前記第２の色の濃度出力に対しては、前記インデックス出力のうちの前記第１の色に対応したインデックス出力と、前記検出の結果とに基づいて、誤差拡散出力を制御して前記第２の色に対応したインデックス出力を求めると共に、前記第１の色に対応したインデックス出力を調整するステップと
を備えたことを特徴とする画像処理方法。
【請求項８】
前記検出するステップは、
前記第１及び第２の色の補色成分である２つの輝度信号成分の各々に対応した２つの境界値の各々と、対応する前記入力値とを比較し、全ての入力値が対応する前記境界値より大きいかどうかを判別する第１のステップと、
前記第１及び第２の色の補色成分である２つの輝度値を２５５からそれぞれ減算して２つの値を求め、該２つの値の差の絶対値が、単色処理領域であることを判別するための他の１つの境界値より小さいかどうかを判別する第２のステップと、
前記第１及び第２のステップの判別結果が共に真であったときに、前記入力値がハイライト領域に属することを決定する第３のステップと
を備えたことを特徴とする請求項６または７に記載の画像処理方法。
【請求項９】
前記変換するステップは、前記検出の結果、前記入力値がハイライト領域に属すると判断された場合は、前記入力値により定義される空間において、前記第１及び第２の色の補色成分を表す２軸で構成される平面に射影された正方形が、最もハイライト側に位置するような立方体頂点の格子点値の和を用いて補間演算を行うことを特徴とする請求項６または７に記載の画像処理方法。
【請求項１０】
前記整形するステップは、
前記第２の色に対応したインデックス出力内で、所定の大きさの２次元ウインドウ内を検索して、ハイライト領域にありかつインデックス値が１である画素の個数を求めてそれを置換元画素数として記録し、前記インデックス値を０に置き換える第１のステップと、
前記第１の色に対応したインデックス出力内で、所定の大きさの２次元ウインドウ内部を検索して、ハイライト領域にありかつインデックス値が１である画素の個数を求めてそれを置換先候補画素数として記録し、該画素の位置を置換先座標として記録する第２のステップと、
前記置換元画素数及び置換先候補画素数のうち小さい方を置換可能画素数として記録する第３のステップと、
乱数を用いて、前記置換可能画素数と等しい数の置換先座標を求める第４のステップと、
前記置換先座標にある第１の色に対応したインデックス出力を０にして、前記第２の色に対応したインデックス出力を１にする第５のステップと
を備えたことを特徴とする請求項６に記載の画像処理方法。
【請求項１１】
多値のカラー輝度信号を、２値または多値のカラー濃度制御信号へ変換する画像処理装置に対し、
前記カラー輝度信号の入力値がハイライト領域に属するかどうかを検出するステップと、
該検出の結果、前記入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを用いて補間演算を行い、前記入力値がハイライト領域に属さない場合には、前記第１の色に対応した濃度出力用のテーブルを用いて補間演算を行い、前記入力値を濃度出力に変換するステップと、
該変換された濃度出力を誤差拡散処理して、２値または多値のインデックス出力を求めるステップと、
該求められたインデックス出力のうち、前記第１の色に対応したインデックス出力と、前記第１及び第２の色の和に対応したインデックス出力とを比較して、前記第１及び第２の色の和に対応したインデックス出力を整形するステップと
を実行させることを特徴とするコンピュータプログラム。
【請求項１２】
多値のカラー輝度信号を、２値または多値のカラー濃度制御信号へ変換する画像処理装置に対し、
前記カラー輝度信号の入力値がハイライト領域に属するかどうかを検出するステップと、
該検出の結果、前記入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを、前記入力値がハイライト領域に属さない場合には、前記第１の色に対応した濃度出力用のテーブルをそれぞれ用いて補間演算を行い、前記入力値を濃度出力に変換するステップと、
該変換された濃度出力のうち、前記第２の色以外の濃度出力に対しては誤差拡散処理を行ってインデックス出力を求め、前記第２の色の濃度出力に対しては、前記インデックス出力のうちの前記第１の色に対応したインデックス出力と、前記ハイライト検出手段による検出の結果とに基づいて、誤差拡散出力を制御して前記第２の色に対応したインデックス出力を求めると共に、前記第１の色に対応したインデックス出力を調整するステップと
を実行させることを特徴とするコンピュータプログラム。
【請求項１３】
請求項１１または１２に記載のコンピュータプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多値のカラー輝度信号からそれより低い階調数のカラー濃度制御信号を生成するための画像処理装置、画像処理方法、コンピュータプログラム及びコンピュータ読み取り可能な記憶媒体に関し、特にインクジェットプリンターなどの面積階調を用いた出力機器に好適な画像処理装置、画像処理方法、コンピュータプログラム及びコンピュータ読み取り可能な記憶媒体に関するものである。
【０００２】
【従来の技術】
インクジェットプリンターなどの面積階調を用いたカラープリンターにおける画像処理装置は、通常、多値の輝度信号を多値の濃度制御信号に変換するための色変換手段、多値の濃度制御信号からそれより少ない階調数の信号（インデックス出力）に変換するためのハーフトーニング手段、及び、得られたインデックス出力をビットマップ化してプリンターエンジンのドットパターンに変換するためのビットマップ化手段から構成されている。
【０００３】
また、その後段には、変換されたドットパターンを読み込んでプリンター固有のフォーマットに変換し、その信号に基づいて印字制御を行う印字制御手段が接続されている。例えばインクジェットプリンターにおける印字制御部の機能は、ビットマップ化手段から供給されたドットパターンを、印字ヘッドノズルの物理的な配置に置き換えながら、信号に応じてノズルをオンオフし、インクの吐出を制御することである。
【０００４】
近年、プリンターの高精度化と高画質化に伴い、上述した画像処理装置にも、高精度化が求められている。このような要求から、色変換手段には、３次元ＬＵＴ（Ｌｏｏｋ−Ｕｐ　Ｔａｂｌｅ）と補間演算とを組み合わせた方式が、また、ハーフトーニング処理には、誤差拡散法を用いた方式が、それぞれ主流となっている。更に、プリンターの高速化に対応するために、これらの装置をハードウエアで構成する必要性にも迫られている。
【０００５】
上述した装置をハードウエアで構成する場合、出力色毎に所定のバンドに区切ってそのバンド内部ではストールすることなく逐次処理してゆく構成をとるのが一般的である。しかしながら、このような構成では、輝度入力からインデックス出力（或いはビットマップ出力）までを一気に作成してしまうので、ある処理の途中段階で他の色の情報を用いることが出来ない。
【０００６】
さて、面積階調を用いたインクジェットプリンターなどの画像処理装置における良く知られた欠点として画像の粒状化がある。この現象は、この種のプリンターの出力が原理的に微小画素のオンオフのみで決定されることに起因している。
近年のインクジェットプリンターにおけるインク吐出制御技術の進歩により、より微小なドットの形成が可能になり、それに応じてプリンターの解像度があがるため、粒状化に起因する画質の悪化はかなり改善されてきているが、ドットの空間的な配置がまばらになるハイライト領域では、やはり粒状性の悪化は避けられない現象である。
【０００７】
この現象を回避する技術が、例えば、特許文献１に述べられている。この公報によれば、誤差拡散処理を行う際に、全ての色を独立に処理するのではなく、シアンとマゼンタの処理では双方の和を入力として用い、通常２値の出力系であれば、それを３値として扱い、真中の状態では、シアン、マゼンタのどちらか一方だけを出力することで、両色が同じ位置に重なりにくくする処理を行っている。
こうすることで、ハイライト領域における出力ドットの空間周波数をあげて粒状性の悪化を防ぐと共に、階調も保存されることになる。また、これと似た効果を持つ他の技術が特許文献２に開示されている。この公報に記載の方式では、シアンとマゼンタを同時に処理する際に、ハイライト部ではあらかじめドットの分散性が確保されたディザマトリックスを用いてディザ処理を行い、かつ各色が重ならないように制御することで、前記方式と同様の効果を狙っている。
【０００８】
【特許文献１】
特開平８−２７９９２０号公報
【０００９】
【特許文献２】
特開平２０００−１８４２１５号公報
【００１０】
【発明が解決しようとする課題】
しかしながら、上述した２つの先行技術では、ハーフトーニング処理において２つの色を同時に処理する必要がある。この構成をハードウエアを用いて実現して高速化を図ろうとすると、非常にコストが高いものとなる。何故ならば、もし、システムのストールを排除して高速化を達成しようとすると、ハーフトーニング処理の前段にある色変換処理も２色以上の処理を同時に行わなければならない。もし、色変換処理が前述した補間演算方式で構成されていると仮定すると、２色以上のテーブルを格納するＳＲＡＭ及び並列動作する複数の演算回路が必要となってしまうという問題がある。
【００１１】
また、同様の理由から、ハーフトーニング手段に誤差拡散方式を用いた場合、誤差を保持しておくための誤差バッファーを形成するために、２色分のＳＲＡＭが必要になってしまうという問題がある。
【００１２】
一方、２色同時処理を行わずに高速化を図ろうとすれば、必然的に動作クロックを上げなければならず、システムの複雑化と素子の高性能化が要求される。従ってコストの上昇は避けられないものとなるという問題がある。
【００１３】
本発明はこのような問題に鑑みてなされたものであり、その目的とするところは、インクジェットプリンターなどの面積階調を用いた出力機器における画質を向上させるための低コストな画像処理装置、画像処理方法、コンピュータプログラム及びコンピュータ読み取り可能な記憶媒体を提供することにある。
【００１４】
【課題を解決するための手段】
このような目的を達成するために、請求項１に記載の発明は、多値のカラー輝度信号を、２値または多値のカラー濃度制御信号へ変換する画像処理装置であって、前記カラー輝度信号の入力値がハイライト領域に属するかどうかを検出するハイライト検出手段と、該ハイライト検出手段による検出の結果、前記入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを用いて補間演算を行い、前記入力値がハイライト領域に属さない場合には、前記第１の色に対応した濃度出力用のテーブルを用いて補間演算を行い、前記入力値を濃度出力に変換する色変換手段と、該色変換手段により変換された濃度出力を誤差拡散処理して、２値または多値のインデックス出力を求めるハーフトーニング手段と、該ハーフトーニング手段により求められたインデックス出力のうち、前記第１の色に対応したインデックス出力と、前記第１及び第２の色の和に対応したインデックス出力とを比較して、該第１及び第２の色の和に対応したインデックス出力を整形する手段とを備えたことを特徴とする。
【００１５】
また、請求項２に記載の発明は、多値のカラー輝度信号を、２値または多値のカラー濃度制御信号へ変換する画像処理装置であって、前記カラー輝度信号の入力値がハイライト領域に属するかどうかを検出するハイライト検出手段と、該ハイライト検出手段による検出の結果、前記入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを、前記入力値がハイライト領域に属さない場合には、前記第１の色に対応した濃度出力用のテーブルをそれぞれ用いて補間演算を行い、前記入力値を濃度出力に変換する色変換手段と、該色変換手段により変換された濃度出力のうち、前記第２の色以外の濃度出力に対しては誤差拡散処理を行ってインデックス出力を求め、前記第２の色の濃度出力に対しては、前記インデックス出力のうちの前記第１の色に対応したインデックス出力と、前記ハイライト検出手段による検出の結果とに基づいて、誤差拡散出力を制御して前記第２の色に対応したインデックス出力を求めると共に、前記第１の色に対応したインデックス出力を調整するハーフトーニング手段とを備えたことを特徴とする。
【００１６】
また、請求項３に記載の発明は、請求項１または２に記載の画像処理装置において、前記ハイライト検出手段は、前記第１及び第２の色の補色成分である２つの輝度信号成分の各々に対応した２つの境界値と、単色処理領域であることを示す他の１つの境界値を有し、前記２つの境界値の各々と、対応する前記入力値とを比較し、全ての入力値が対応する前記境界値より大きいかどうかを判別する第１の手段と、前記第１及び第２の色の補色成分である２つの輝度値を２５５からそれぞれ減算して２つの値を求め、該２つの値の差の絶対値が前記他の１つの境界値より小さいかどうかを判別する第２の手段と、前記第１の手段及び前記第２の手段の判別結果が共に真であったときに、前記入力値がハイライト領域に属することを決定する第３の手段とを備えたことを特徴とする。
【００１７】
また、請求項４に記載の発明は、請求項１または２に記載の画像処理装置において、前記色変換手段は、前記ハイライト検出手段の検出結果に基づき、前記入力値がハイライト領域に属すると判断された場合は、前記入力値により定義される空間において、前記第１及び第２の色の補色成分を表す２軸で構成される平面に射影された正方形が、最もハイライト側に位置するような立方体頂点の格子点値の和を用いて補間演算を行うことを特徴とする。
【００１８】
また、請求項５に記載の発明は、請求項１に記載の画像処理装置において、前記整形する手段は、前記第２の色に対応したインデックス出力内で、所定の大きさの２次元ウインドウ内を検索して、ハイライト領域にありかつインデックス値が１である画素の個数を求めてそれを置換元画素数として記録し、前記インデックス値を０に置き換える第１の手段と、前記第１の色に対応したインデックス出力内で、所定の大きさの２次元ウインドウ内部を検索して、ハイライト領域にありかつインデックス値が１である画素の個数を求めてそれを置換先候補画素数として記録し、該画素の位置を置換先座標として記録する第２の手段と、前記置換元画素数及び置換先候補画素数のうち小さい方を置換可能画素数として記録する第３の手段と、乱数を用いて、前記置換可能画素数と等しい数の置換先座標を求める第４の手段と、前記置換先座標にある前記第１の色に対応したインデックス出力を０にして、前記第２の色に対応したインデックス出力を１にする第５の手段とを備えたことを特徴とする。
【００１９】
また、請求項６に記載の発明は、多値のカラー輝度信号を、２値または多値のカラー濃度制御信号へ変換する画像処理装置の画像処理方法であって、前記カラー輝度信号の入力値がハイライト領域に属するかどうかを検出するステップと、該検出の結果、前記入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを用いて補間演算を行い、前記入力値がハイライト領域に属さない場合には、前記第１の色に対応した濃度出力用のテーブルを用いて補間演算を行い、前記入力値を濃度出力に変換するステップと、該変換された濃度出力を誤差拡散処理して、２値または多値のインデックス出力を求めるステップと、該求められた前記第１の色に対応したインデックス出力と、前記第１及び第２の色の和に対応したインデックス出力とを比較して、該第１及び第２の色に対応したインデックス出力を整形するステップとを備えたことを特徴とする。
【００２０】
また、請求項７に記載の発明は、多値のカラー輝度信号を、２値または多値のカラー濃度制御信号へ変換する画像処理装置の画像処理方法であって、前記カラー輝度信号の入力値がハイライト領域に属するかどうかを検出するステップと、該検出の結果、前記入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを、前記入力値がハイライト領域に属さない場合には、前記第１の色に対応した濃度出力用のテーブルをそれぞれ用いて補間演算を行い、前記入力値を濃度出力に変換するステップと、該変換された濃度出力のうち、前記第２の色以外の濃度出力に対しては誤差拡散処理を行ってインデックス出力を求め、前記第２の色の濃度出力に対しては、前記インデックス出力のうちの前記第１の色に対応したインデックス出力と、前記検出の結果とに基づいて、誤差拡散出力を制御して前記第２の色に対応したインデックス出力を求めると共に、前記第１の色に対応したインデックス出力を調整するステップとを備えたことを特徴とする。
【００２１】
また、請求項８に記載の発明は、請求項６または７に記載の画像処理方法において、前記検出するステップは、前記第１及び第２の色の補色成分である２つの輝度信号成分の各々に対応した２つの境界値の各々と、対応する前記入力値とを比較し、全ての入力値が対応する前記境界値より大きいかどうかを判別する第１のステップと、前記第１及び第２の色の補色成分である２つの輝度値を２５５からそれぞれ減算して２つの値を求め、該２つの値の差の絶対値が、単色処理領域であることを判別するための他の１つの境界値より小さいかどうかを判別する第２のステップと、前記第１及び第２のステップの判別結果が共に真であったときに、前記入力値がハイライト領域に属することを決定する第３のステップとを備えたことを特徴とする。
【００２２】
また、請求項９に記載の発明は、請求項６または７に記載の画像処理方法において、前記変換するステップは、前記検出の結果、前記入力値がハイライト領域に属すると判断された場合は、前記入力値により定義される空間において、前記第１及び第２の色の補色成分を表す２軸で構成される平面に射影された正方形が、最もハイライト側に位置するような立方体頂点の格子点値の和を用いて補間演算を行うことを特徴とする。
【００２３】
また、請求項１０に記載の発明は、請求項６に記載の画像処理方法において、前記整形するステップは、前記第２の色に対応したインデックス出力内で、所定の大きさの２次元ウインドウ内を検索して、ハイライト領域にありかつインデックス値が１である画素の個数を求めてそれを置換元画素数として記録し、前記インデックス値を０に置き換える第１のステップと、前記第１の色に対応したインデックス出力内で、所定の大きさの２次元ウインドウ内部を検索して、ハイライト領域にありかつインデックス値が１である画素の個数を求めてそれを置換先候補画素数として記録し、該画素の位置を置換先座標として記録する第２のステップと、前記置換元画素数及び置換先候補画素数のうち小さい方を置換可能画素数として記録する第３のステップと、乱数を用いて、前記置換可能画素数と等しい数の置換先座標を求める第４のステップと、前記置換先座標にある第１の色に対応したインデックス出力を０にして、前記第２の色に対応したインデックス出力を１にする第５のステップとを備えたことを特徴とする。
【００２４】
また、請求項１１に記載の発明は、コンピュータプログラムであって、多値のカラー輝度信号を、２値または多値のカラー濃度制御信号へ変換する画像処理装置に対し、前記カラー輝度信号の入力値がハイライト領域に属するかどうかを検出するステップと、該検出の結果、前記入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを用いて補間演算を行い、前記入力値がハイライト領域に属さない場合には、前記第１の色に対応した濃度出力用のテーブルを用いて補間演算を行い、前記入力値を濃度出力に変換するステップと、該変換された濃度出力を誤差拡散処理して、２値または多値のインデックス出力を求めるステップと、該求められたインデックス出力のうち、前記第１の色に対応したインデックス出力と、前記第１及び第２の色の和に対応したインデックス出力とを比較して、前記第１及び第２の色の和に対応したインデックス出力を整形するステップとを実行させることを特徴とする。
【００２５】
また、請求項１２に記載の発明は、コンピュータプログラムであって、多値のカラー輝度信号を、２値または多値のカラー濃度制御信号へ変換する画像処理装置に対し、前記カラー輝度信号の入力値がハイライト領域に属するかどうかを検出するステップと、該検出の結果、前記入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを、前記入力値がハイライト領域に属さない場合には、前記第１の色に対応した濃度出力用のテーブルをそれぞれ用いて補間演算を行い、前記入力値を濃度出力に変換するステップと、該変換された濃度出力のうち、前記第２の色以外の濃度出力に対しては誤差拡散処理を行ってインデックス出力を求め、前記第２の色の濃度出力に対しては、前記インデックス出力のうちの前記第１の色に対応したインデックス出力と、前記ハイライト検出手段による検出の結果とに基づいて、誤差拡散出力を制御して前記第２の色に対応したインデックス出力を求めると共に、前記第１の色に対応したインデックス出力を調整するステップとを実行させることを特徴とする。
【００２６】
また、請求項１３に記載の発明は、コンピュータ読み取り可能な記憶媒体であって、請求項１１または１２に記載のコンピュータプログラムを記憶したことを特徴とする。
【００２７】
本発明では、ハイライト検出手段、色変換手段、ハーフトーニング手段、バンドバッファー及びビットマップ化手段から構成されるので、入力からバンドバッファーに至る一連の処理を各出力色毎に高速に行える。
【００２８】
ハイライト検出手段は、入力信号がハイライト領域にあるかどうかを判別してその結果を出力し、色変換手段は、第１の濃度の処理を行うときに、ハイライト検出手段での検出結果に応じて、第１の濃度に対応した単色のテーブルかまたは、それと別の第２の濃度に対応したテーブルとの和を保持するテーブルを切り替えて使う。
【００２９】
再配置化手段或いはハーフトーニング手段は、第２の濃度の処理を行う際に、第１の濃度のバンドバッファー出力及びハイライト検出手段出力を参照して、ハイライト領域では、２色がなるべく重ならず、かつ階調性を保てるように第２の濃度の出力処理を行い、かつ第１の濃度のバンドバッファー出力を調整する。
【００３０】
このような構成により、インクジェットプリンターなどの面積階調を用いた出力機器における画質を向上させるための低コストな画像処理装置を提供することが可能となる。
【００３１】
【発明の実施の形態】
（第１実施形態）
本発明の第１実施形態は、画像処理装置として比較的高解像度のインクジェットプリンターを用いた場合について想定したものである。また、出力色はＣ，Ｍ，Ｙ，Ｋの４色であるものとする。以下、図面を参照しながら説明する。
【００３２】
本実施形態に係る画像処理装置の構成を図１に示す。同図においてＣＰＵ１０１は全体の処理を制御するものであり、画像データ読み込み手段１０２は画像データバッファー１１５からＣＰＵ１０１による制御の下で画像データを読み込むためのものである。γ変換手段１０３は入力された輝度データ（Ｒ，Ｇ，Ｂ）の入力γ特性を変換するためのものであり、ハイライト検出手段１０４は入力されたデータがハイライト領域に属するかどうかを検出するためのものである。
【００３３】
色変換テーブル読み込み手段１０５はＣＰＵ１０１による制御の下で色変換テーブルバッファー１１６から所望の色変換テーブルを読み込むためのものであり、色変換手段１０６は入力された輝度データを濃度データに変換するためのものである。本画像処理装置における色変換手段１０６は、３次元ＬＵＴと補間演算とを用いて色変換を行う構成になっている。補間方式としては、公知のものが複数知られており、ここでは詳細な限定は行わないが、基本的にどのような方式にも対応可能である。
【００３４】
ハーフトーニング手段１０７は入力された濃度データを二値化するためのものであり、インデックス・フラグ合成手段１０９はハーフトーニング手段から出力されたインデックス出力とハイライト検出手段から出力されたフラグとを合成するためのものである。インデックスバンド書き込み手段１０８はインデックス・フラグ合成手段１０９から出力された合成出力をＣＰＵ１０１の制御の下でインデックスバンドバッファー１１７へ書き込むためのものである。
【００３５】
ウインドウバッファー制御手段１２０はインデックスバンドバッファー１１７から所定のフォーマットでデータを読み書きするためのものであり、インデックス・フラグ分離手段１１１はウインドウバッファー制御手段１２０から読み込まれたウインドウ成分からインデックスとフラグとを分離するためのものであり、ＣＭ再配置手段１１２は、インデックス・フラグ分離手段１１１から得られたフラグ及びインデックスから、ＣＭのインデックスを整形する。
【００３６】
インデックスバンド読み込み手段１１０は、ＣＰＵ１０１による制御の下でインデックスバンドバッファー１１７からインデックスを読み込み、ビットマップ化手段１１９に送る。ビットマップ化手段１１９は、入力されたインデックス出力からビットマップを作成するためのものであり、ヘッド駆動手段１１３は、入力されたビットマップを基にプリンターヘッドの吐出制御を行うためのものである。プリンターエンジン１１４は、ＣＰＵ１０１による制御の下で、ヘッド駆動制御手段１１３から出力された制御信号に基づき、印刷出力を行う。また、ＣＰＵバス１１８には、ＣＰＵ制御が必要な全てのデバイスが、インターフェースを介して接続されている。画像データバッファー１１５、色変換テーブルバッファー１１６、インデックスバンドバッファー１１７は、それぞれが特定のデータを格納しておくためのバッファーであり、その実体はＣＰＵバス１１８に接続されたＲＡＭである。
【００３７】
次に必要に応じて他の図面を参照しながら、この画像処理装置により実行される動作について説明する。尚、この画像処理装置を制御するためのプログラムは、ＣＰＵバス１１８に接続されたＲＯＭまたはＲＡＭに格納されているものとする。
【００３８】
本実施形態に係る画像処理装置は、図１におけるインデックスバンドバッファー１１７を境界にして左側のブロックと右側のブロックが並列に動作する。左側のブロックは、γ変換手段１０３、ハイライト検出手段１０４、色変換テーブル読み込み手段１０５、色変換手段１０６、ハーフトーニング手段１０７、インデックスバンド書き込み手段１０８、画像データバッファー１１５及び色変換テーブルバッファー１１６から構成されている。このような構成により、画像データバッファー１１５から読み出された輝度信号を色変換し、ハーフトーニング処理した後、インデックスバンドバッファー１１７へ格納する一連の処理を行う。
【００３９】
また、右側のブロックは、インデックスバンド読み込み手段１１０、インデックス・フラグ分離手段１１１、ＣＭ再配置手段１１２、ヘッド駆動制御手段１１３、プリンターエンジン１１４、ビットマップ化手段１１９及びウインドウバッファー制御手段１２０にて構成され、インデックスバンドバッファー１１７から読み込まれたインデックスをビットマップ化し、プリンターエンジン１１４へ供給する処理を行う。以降の説明では、それぞれのブロックの動作について別々に述べることにする。
【００４０】
まず、左側のブロックの動作について説明する。最初に図２のフローチャートを参照し、概略の処理シーケンスについて述べる。ステップＳ２０１及びステップＳ２１５をそれぞれ先端、終端とするループは、各出力色毎に処理が行われることを示している。ここでは一般的な場合として、プリンターがＣ，Ｍ，Ｙ，Ｋの４つの色材を持っている場合を想定している。最初の出力色はＣである。
【００４１】
まず、ステップＳ２０２で出力色の判定が行われる。出力色がＣであった場合は、ステップＳ２０３でハイライト検出手段１０４の状態を有効にすると共に検出用の境界パラメーターを設定する。次にステップＳ２０４で色変換テーブル読み込み手段１０５の読み込み方法をＣ用に設定すると共に、読み出し用のスタートアドレスを設定する。一方、出力色が他の色であった場合は、ステップＳ２０５及びステップＳ２０６において、ハイライト検出手段１０４の状態が無効に設定され、色変換テーブル読み込み手段１０５の読み込み方法がＣ以外の該当する色に設定されると共に、読み出し用のスタートアドレスも設定される。これらの設定は全て、対応するレジスターに所定の値を書き込むことで行われるものとする。
【００４２】
次にステップＳ２０７では、色変換テーブル読み込み手段１０５のスタートフラグがアサートされて、色変換テーブルバッファー１１６の読み出し処理が開始される。ステップＳ２０８では、設定されたパラメーターに応じた読み込み処理が行われる。色変換テーブルバッファー１１６から色変換手段１０６へのデータ転送が終了すると、ステップＳ２０９において割り込み、或いはポーリングによる読み込み終了が検出される。
【００４３】
次にステップＳ２１０では、インデックスバンド書き込み手段１０８に書き込みスタートアドレスが設定される。ステップＳ２１１では画像データ読み込み手段１０２に読み込みスタートアドレス及びデータ数が設定される。読み込みスタートアドレス及びデータ数は、バンドの高さに応じて変化する。これでハードウエアの設定処理が終わる。
【００４４】
最後にステップＳ２１２でバンド処理のスタートフラグがアサートされて、一連のバンド処理が開始される。バンド処理が終了すると、ステップＳ２１４において、割り込み或いはポーリングを用いて終了が検出され、一色（１バンド）の処理が終わる。以上で概略シーケンスの説明を終わる。
【００４５】
次に、ステップＳ２０８における色変換テーブル読み込み処理について説明する。図３は、色変換テーブル読み込み手段１０５及び色変換手段１０６の概略構成を表す。同図において、色変換テーブル３０２及び３０３は３次元ＬＵＴである。この内、３０２には非ハイライト領域における演算を行うためのデータが格納されており、３０３にはハイライト領域における演算を行うためのデータが格納されている。３０２は容量が大きいのでＳＲＡＭで構成されるのに対し、３０３は条件によってはレジスターで構成する事も可能である。
【００４６】
また、図４は色変換テーブルバッファー１１６内部の格納イメージを示している。色変換テーブル読み込み手段１０５の読み込みモードがＣｙａｎ用に設定されている場合、同時に設定された読み込みスタートアドレスは、図４におけるＣｙａｎＳｔａｒｔＡｄｄｒｅｓｓを指している。このとき、色変換テーブル読み込み手段１０５のリードエンドアドレスは、図４におけるＣｙａｎＥｎｄＡｄｄｒｅｓｓに自動設定される。即ちＣｙａｎモードでは、設定されたスタートアドレスにあらかじめわかっているＣｙａｎ用の３次元ＬＵＴ容量＋ハイライト領域用テーブル容量を足した値が色変換テーブル読み込み手段１０５のリードエンドアドレスに設定されるのである。
【００４７】
この状態で画像処理装置が起動されると、色変換テーブル読み込み手段１０５は、ＣＰＵバス１１８を通じてまず通常のＣｙａｎ変換用テーブルをロードしながら、内部バスをアクセスしてデータを非ハイライト領域変換用色変換テーブル３０２に格納する。あらかじめ設定してある非ハイライト領域変換用テーブルのロードが終了したら、内部バスの接続先をハイライト領域変換用テーブル３０３に切り変えて、ハイライト領域用のテーブル値を格納する。また読み込みモードＣｙａｎ用でないときは、色変換テーブル読み込み手段１０５のリードエンドアドレスが、スタートアドレス＋該当する色の３次元ＬＵＴ容量に自動設定され、上述した様に通常の３次元ＬＵＴを読み込んで色変換テーブル３０２に格納する。以上でステップＳ２０８における色変換テーブル読み込み処理についての説明を終わる。
【００４８】
次にステップＳ２１３におけるバンド処理について説明する。図５にバンド処理の動作を表すフローチャートを示す。同図において、ステップＳ５０１からステップＳ５０９で構成されるループ処理は、ステップＳ２１１で設定されたバンドの全てのデータに対して行われる。まずステップＳ５０２では、一画素の輝度データ（Ｒ，Ｇ，Ｂ）が画像データ読み込み手段１０２を通じて画像データバッファー１１５から読み込まれる。
【００４９】
次にステップＳ５０３では、読み込まれたデータに対して入力γ変換が施される。この処理は、γ変換手段１０３における１次元ＬＵＴを用いた変換処理である。１次元ＬＵＴは、図２における処理が始まる以前に、システムを初期化する任意のタイミングで設定されているものとする。尚、１次元ＬＵＴの構成は、ＲＧＢ各色毎にそれぞれ異なるテーブルを用いても同じテーブルを用いても構わない。
【００５０】
次にステップＳ５０４ではハイライト検出処理が行われる。この処理は、ステップＳ２０３或いはステップＳ２０５で設定された条件に基づき、ハイライト検出手段１０４が行う。処理の内容は単純な大小比較である。ハイライト検出が有効なときは、前述した様にステップＳ２０３において境界値が設定されている。
ハイライト検出手段１０４では、下記の２つの条件を満たせば入力値がハイライト領域に属すると判断する。
【００５１】
Ｒｈ＜ＲかつＧｈ＜Ｇ（１）
ｍａｘ（２５５−Ｒ，２５５−Ｇ）−ｍｉｎ（２５５−Ｒ，２５５−Ｇ）＜Ｋ　　　　（２）
ここに、Ｒｈ，Ｇｈは２つの輝度信号成分の各々に対応した２つの境界パラメーター、Ｋは単色処理領域であることを判断するための他の１つの境界パラメーターであり、入力値の精度は８ビットであるものとする。２つの境界値Ｒｈ，Ｇｈの各々と、対応する入力値とを比較し、全ての入力値が対応する境界値より大きいかどうかを判別する（１）の条件は、明らかにハイライト領域であるためのものである。一方、（２）の条件は、無関係のようにも見える。しかし、本実施形態の効果は、Ｃ＋Ｍの２次色或いはＣ＋Ｍ＋Ｙの３次色に対してのみ現れるものであるから、ＣあるいはＭどちらかの成分が殆ど０である場合には適用するべきではない。そこで、第１及び第２の色の補色成分である２つの輝度値を２５５からそれぞれ減算して２つの値を求め、２つの値の差の絶対値が境界値Ｋより小さいかどうかを判別する条件（２）によって、上記ケースへの適用を防いでいるのである。これらの条件が満たされたとき、ハイライト検出手段１０４は入力値がハイライト領域に属することを決定し、ハイライト検出フラグをアサートする。逆に、上記条件が満たされないとき、及びハイライト検出が無効なときは、ハイライト検出フラグをネゲートする。
【００５２】
この処理は、全ての出力色（本実施形態では、ＣＭＹＫの４色）に適用されるが、前述した通りハイライト検出処理が有効であるのは、出力色がＣｙａｎのときだけであり、他色のときは無効である。従って、ハイライト検出フラグがアサートされる可能性があるのは、Ｃｙａｎについてのみであり、他色のときは、全てネゲートされることになる。
【００５３】
次にステップＳ５０５では、色変換処理が行われる。ここでの処理の詳細については後述する。次にステップＳ５０６では、色変換処理から出力された多値の濃度データをそれより少ない階調数に落とすハーフトーニング処理が行われる。ここでの処理の詳細については後述する。
【００５４】
次にステップＳ５０７ではステップＳ５０６で得られたインデックス出力とステップＳ５０４で得られたハイライト検出フラグの合成がインデックス・フラグ合成手段１０９にて行われる。ここでの処理方法は、インデックス出力の値数や、インデックスバンドバッファー１１７への書き込み時のデータパッキング手法などに応じて様々な最適化手法が考えられる。例えば、インデックス出力が５値である場合を考えると、３ビットあれば表現可能である。一方、ハイライト検出フラグは１ビットであるから、上位１ビットをハイライト検出フラグに割り当て、下位３ビットをインデックス出力に割り当てた４ビットの信号を生成すれば、合成が可能となる。いずれにせよ、実装に依存した最適な手法を用いれば良い。
【００５５】
最後にステップＳ５０８では、インデックスバンドバッファー１１７への書き込み処理が行われる。この処理は、インデックスバンド書き込み手段１０８によって行われ、バンドデータは、インデックスバンドバッファー１１７に順次書き込まれてゆく。書き込み手法は、ステップＳ５０７に実装された方法に応じて様々なものが考えられる。例えば、上記例のように、インデックス出力とハイライト検出フラグの合成出力が４ビットで与えられるならば、２画素の出力をパッキングして１バイトのデータを生成し、これをアクセス単位としてバッファーを構成するＲＡＭへアクセスすれば良い。以上で、図５を用いた一連のバンド処理の説明を終わり、次にステップＳ５０５における色変換処理とステップＳ５０６におけるハーフトーニング処理について説明する。
【００５６】
まず、色変換処理について説明する。図６は、色変換処理を表すフローチャートである。この処理は、図１における色変換手段１０６にて行われる。また、その構成は、図３に示されている。まず、ステップＳ６０１において、ハイライト検出フラグがアサートされているかどうかがチェックされる。もし、ハイライト領域であるならば、ステップＳ６０２で補間演算手段３０４にハイライト領域変換用の格子点値が入力され、ハイライト領域でないならば、ステップＳ６０３に分岐し、非ハイライト領域変換用の格子点値が入力される。ここで問題となるのはハイライト領域をどのように定義するかということである。これは即ち（１）式のＲｈ及びＧｈを決定する問題に帰着する。これは粒状性向上の効果と装置コストとのトレードオフで定まる。つまり、Ｒｈ、Ｇｈが大きいほどハイライト領域変換用テーブルの容量が小さくなりコストが低下するのに対し、粒状性救済の範囲は狭まってゆく。最も効率の高い条件は、
Ｒｈ，Ｇｈ　＞　２５５＊（Ｎ−２）／（Ｎ−１）　（Ｎは格子点数）
を満たす場合であり、この時ハイライト領域変換用テーブルは、図７に示す立方体Ｃ０〜Ｃ５の各頂点における格子点値のみを保持していれば良い。実験によれば、比較的解像度の高いプリンターではこの条件を満たすことが確認されている。以後、本実施形態では、この条件が満たされているものとして議論を進める。
尚、ハイライト領域用の格子点値は、Ｃｙａｎ用に作成されたテーブルの格子点値とＭａｇｅｎｔａ用に作成されたテーブルの格子点値の和をとったものである。
【００５７】
非ハイライト領域用の格子点値とハイライト領域用の格子点値は、ステップＳ２０８の説明で述べた通り、それぞれ非ハイライト領域用色変換テーブル３０２とハイライト領域用色変換テーブル３０３に格納されている。ステップＳ６０１からステップＳ６０３で表される動作は、図３におけるセレクター３０５がハイライト検出フラグに応じて、補間演算手段３０４への格子点値送出経路を選択することで実現される。
【００５８】
最後にステップＳ６０４では、得られた格子点値と入力値（ＲＧＢ）を用いて補間演算を行い、多値の濃度値を出力する。このようにして、ハイライト検出手段１０４の検出結果に基づき、入力値がハイライト領域に属すると判断された場合に、入力値により定義される空間においてＲＧ平面に射影された正方形が最もハイライト側に位置するような立方体頂点の格子点値の和を用いた補間演算が行われる。
【００５９】
尚、補間演算手段３０４に実装される補間アルゴリズムは、入力空間を均等分割して構成される各立方体をそのまま補間空間として用いるものでも、或いは各立方体を更に複数の多面体に分割してそれを補間単位として用いるものでも構わない。分割空間としては、例えば四面体、三角柱などが知られている。また、この変換処理を高速に逐次処理してゆくためには、補間演算手段３０４へ送る複数の格子点値を一括して決定する手段がどうしても必要になる。
【００６０】
このような手段は、例えば図８に示したような構成を用いて実現できる。ここでは、例として入力空間が各軸１５等分に均等分割されており、入力空間における各格子点の座標は、ＲＧＢ入力値の各上位４ビットからなる１２ビットの値で一義的に定まるものとする。同図において、格子点決定手段８０１〜８０８という８つの要素は、格子点の座標を決定ものであり、その後段に接続されたＳＲＡＭ８０９〜８１６とそれぞれ一対一に対応している。ＳＲＡＭ８０９〜８１６には、入力空間における格子点を重複なく８つの群に分けた場合の格子点値が格納されている。これらの８つの群は、入力座標（Ｒ，Ｇ，Ｂ）の下位１ビットをそれぞれ取り出し、この順番でＭＳＢ（Ｍｏｓｔ　Ｓｉｇｎｉｆｉｃａｎｔ　Ｂｉｔ）から並べた場合の３ビットの値を元に分割されている。即ち、ＲＧＢの各々の偶奇の組み合わせにより８通りに分割されていると考えても良い。
【００６１】
ＳＲＡＭ８０９から８１６に振られた番号Ｂｎ（ｎ＝０〜７）は、上記３ビットの値を表している。例えば、ブロック８０９に振られたＢ０は、このＳＲＡＭに格納されている格子点の座標の下位３ビットの値が”０００”であるような点の集まり、即ち格子点座標のＲＧＢが全て偶数であるような格子点の値が格納されていることを示している。同様にして、ブロック８１２のＢ３は、ＲＧＢのうち、Ｒが偶数でＧＢが共に奇数であるような格子点値を格納していることを示す。また、１つのＳＲＡＭにおけるアドレスインデックスは、格子点座標（Ｒ，Ｇ，Ｂ）の上位３ビットをそれぞれ取り出し、それらをこの順番でＭＳＢから並べた９ビットの値により決定されるものとする。
【００６２】
一方、セレクター８１７は、ＳＲＡＭ（８０９から８１６）から出力された８つの値をその後段の８つのレジスターのどれに入力するのかを選択する。またＰ０レジスター〜Ｐ７レジスターは、それぞれが後述する補間立方体の１つの頂点と対応している。選択処理手段８２６は、補間空間形状に応じて付加されるものであり、上述した補間アルゴリズムに応じて入力された８つの頂点座標から更に補間空間に対応したものを選択する動作を行う。当然のことであるが、もし補間空間が上記の補間立方体そのものであるならば、選択処理手段８２６は省略することが出来る。最後に積和演算手段８２７は補間演算を行うための手段であり、通常は複数の積和演算回路を組み合わせて構成される。
【００６３】
次にこの構成における処理動作を順を追って説明する。まず、８つの格子点決定手段８０１〜８０８には、上述した上位３ビットｘ３色の９ビット信号と下位１ビットｘ３色の３ビット信号が同時に入力される。これら８つの座標決定手段は、上記２つの信号から座標を決定するのであるが、その動作モードはそれぞれ異なっている。これらの手段に対応したＳＲＡＭの番号（上述したＢｎ）３ビットを１ビットずつ分解し、ＭＳＢからＫｒ、Ｋｇ、Ｋｂで表し、入力された３ビット信号を１ビットずつ分解し、ＭＳＢからＬｒ、Ｌｇ、Ｌｂとおき、入力された９ビット信号を３ビットずつ分解し、ＭＳＢからＭｒ、Ｍｇ、Ｍｂで表すことにすると、出力される格子点座標は、
Ｕｒ＜＜６＋Ｕｇ＜＜３＋Ｕｂ　　　　　　　　　　　　　　　　　　　　　　　（３）
で求められる。ここに＜＜ｎはｎビットだけ左にシフトすることを表す。またＵｐ（ｐ＝ｒ，ｇ，ｂ）は、以下の式で与えられる。
【００６４】
【数１】
2004128975.tif 000003
【００６５】
上式により求められた９ビットの格子点座標は、そのままアドレスインデックスとしてＳＲＡＭ８０９〜８１６に送られ、８つのＳＲＡＭからは、そのアドレスに位置する８つの格子点値がそれぞれ同時にセレクター８１７に出力される。セレクター８１７は上述したように、これらの８つの値をＰ０レジスター〜Ｐ７レジスターのいずれに出力するかを選択するが、Ｐ０レジスターからＰ７レジスターが、それぞれ、図９に表した補間立方体の８つの頂点に一対一で対応しているものとすると、その選択アルゴリズムは、図１０に示す表で表される。
【００６６】
最後にレジスターから出力された８つの値から、補間空間の形状に応じた値の選択が、ブロック８２６で行われ、演算手段８２７で出力が計算される。尚、この構成と図３に示したハイライト領域における選択の切り分けは、同図におけるハイライト領域変換用テーブル３０３が上述した構成を持ち、これらをＢ０’〜Ｂ７’と表した時、図８の８０１〜８０８の出力がＢ０’〜Ｂ７’に対しても入力され、図３のセレクター３０５がＢ０〜Ｂ７またはＢ０’〜Ｂ７’のどちらか一方の系列を出力するように構成することで矛盾なく動作可能である。
【００６７】
このようにして、ハイライト検出手段１０４による検出の結果、入力値がハイライト領域に属する場合には、第１の色に対応した濃度出力用のテーブルと第２の色に対応した濃度出力用のテーブルとの和からなるテーブルを用いて補間演算を行い、入力値がハイライト領域に属さない場合には、第１の色に対応した濃度出力用のテーブルを用いて補間演算を行い、入力値を濃度出力に変換する処理が実現される。以上で、ステップＳ５０５における色変換処理に関する説明を終わる。
【００６８】
次にステップＳ５０６におけるハーフトーニング処理について説明する。ハーフトーニング処理は、図１におけるハーフトーニング手段１０７によって行われ、用いられるアルゴリズムは一般的に良く知られた誤差拡散法である。その構成例は図１１のようになる。入力された多値の濃度制御信号は、加算器１１０１に入力される。一方、加算器１１０１のもう１つの入力端子には、誤差演算手段１１０２から出力された累積誤差が入力されている。この累積誤差は、現在処理している画素（着目画素）に隣接した画素で生じた誤差値に所定の係数をかけて加算したものである。この係数は拡散係数と呼ばれ、その値及び空間的配置に特徴を持つ様々なものが考案されている。本手法では、用いる拡散係数及びその空間的配置については特に限定しないが、例えば図１２に示したフロイド・スタインバーグ型の係数配置が良く用いられている。同図において、円１２０２は着目画素を、Ｗ０〜Ｗ３は以前に処理された画素を拾ってくるウインドウを、矢印１２０４はスキャン方向、即ち着目画素の移動方向を示す。
【００６９】
加算器１１０１では累積誤差と濃度値が加算され（以後、加算濃度と呼ぶ）、コンパレーター１１０５に出力される。コンパレーター１１０５では、入力された加算濃度と設定された閾値とを比較して、入力値の方が大きければ、設定されたインデックスを出力する。インデックスが持ち得る状態数は、通常、入力解像度とプリンターエンジンが持つ出力解像度との関係によって定まる。インクジェットプリンターなどの面積階調方式の出力機器では、その物理解像度によって定まる単位画素が持つ状態数は通常”１”か”０”かの二値であるから、インデックスの状態数は、（Ｏｈ／Ｉｈ）＊（Ｏｖ／Ｉｖ）＋１で与えられる。ここにＯｈ、Ｏｖはそれぞれ水平方向、垂直方向の出力解像度であり、Ｉｈ、Ｉｖはそれぞれ水平方向、垂直方向の入力解像度である。
【００７０】
例えば、入力解像度が水平・垂直方向とも６００　ｄｐｉであり、出力解像度が水平・垂直方向とも１２００　ｄｐｉであれば、インデックスが持つ状態数は５値になる。インデックスが５値の場合を例にとると、入力とコンパレーター１１０５のインデックス出力との関係は図１３に示すようになる。同図においてＩは加算誤差であり、Ｔ０，Ｔ１，Ｔ２，Ｔ３はそれぞれ閾値である。また、コンパレーター入力値のビット幅を８ビットとすれば、
０＜＝Ｔ０＜６４　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　（５）
６４＜＝Ｔ１＜１２８　　　　　　　　　　　　　　　　　　　　　　　　　　　　　（６）
１２８＜＝Ｔ２＜１９２　　　　　　　　　　　　　　　　　　　　　　　　　　　（７）
１９２＜＝Ｔ３＜２５５　　　　　　　　　　　　　　　　　　　　　　　　　　　（８）
なる関係を満たす。
【００７１】
次に、コンパレーター１１０５から出力されたインデックスは、インデックス変換器１１０６に入力され、加算誤差と同じ精度になるように、ビット拡張され出力換算濃度として出力される。例えば加算誤差の精度が８ビットであれば、インデックスとインデックス変換後の出力換算濃度出力との関係は、
Ｏｕｔ＝ｍｉｎ（２５５，Ｉｎ＜＜６）　　　　　　　　　　　　　　　　　　　　　　　（９）
で表される。出力換算濃度は、加算器１１０４に入力される。加算器１１０４では、加算濃度から出力換算濃度を減算した結果をエラーバッファー１１０３へ格納する。
【００７２】
以上が図１１に示した一般的な構成を用いた誤差拡散法の動作であるが、誤差拡散法には、その欠点を克服するために考案された様々な改良系が存在する。例えば、良く知られた欠点として、（１）「誤差分布の偏りに起因して生じる掃き寄せ」や、（２）「特定のパターンの繰り返しによって生じるテクスチャー」などの現象がある。（１）の現象を回避する手段としては、例えば入力値に応じて閾値を変動させ、誤差分布の偏りをなくす方法などが知られている。また（２）の現象を回避する手段としては、例えば閾値に小振幅のランダムなノイズを加えたり、スキャニング方向をライン毎に変化させたりしてテクスチャーの発生を抑制する方法などが知られている。尚、（２）の解決手段の１つであるノイズ重畳は、色毎にその発生シーケンスを変えることで、ドットの重なりを防いで画質を向上させるための手段としても用いられる。本実施形態に係る画像処理装置にこのような改良形の誤差拡散法を適用することは当然のことながら可能であり、本実施形態の効果をより高めることも出来る。
【００７３】
このようにして、色変換手段１０６により変換された濃度出力を誤差拡散処理して、２値または多値のインデックス出力を求める処理が実現される。以上でステップＳ５０６におけるハーフトーニング処理の説明を終わる。
【００７４】
上述したように、本実施形態に係る画像処理装置で行われるハーフトーニング処理は、誤差拡散処理であった。しかし、本実施形態では、処理する出力色に応じて、誤差拡散出力の持つ意味が変わってくる。Ｃｙａｎ以外の処理フェーズに対しての誤差拡散出力は、通常の誤差拡散の定義に当てはまるが、Ｃｙａｎの処理フェーズでは、入力輝度データが属する領域に応じて、Ｃｙａｎ単色の処理とＢｌｕｅ（Ｃｙａｎ＋Ｍａｇｅｎｔａ）に対する処理とが動的に切り替わり、両者が混在しているような領域においては、厳密な意味での動作モードが異なる。そこで、Ｃｙａｎ処理フェーズについて、（１）入力輝度データが定常的にハイライト領域にある場合、（２）入力輝度データが定常的に非ハイライト領域にある場合、（３）両者が混在している場合、の３つの場合に分けてその動作モードを考察しておこう。
【００７５】
（１）入力輝度データが定常的にハイライト領域にある場合
誤差拡散の入力値は、常にＢｌｕｅ成分（Ｃｙａｎ＋Ｍａｇｅｎｔａ）と等しくなる。従って、濃度平均値の保存はＢｌｕｅ成分に対して行われ、この意味での矛盾はない。また、ハイライト領域に属する入力に対する一般的な単色処理と比較して、当然ながら入力値が大きくなるため、誤差拡散出力の空間周波数は高くなる。この場合の動作モードは、通常の誤差拡散のそれと全く同じである。
【００７６】
（２）入力輝度データが定常的に非ハイライト領域にある場合
誤差拡散の入力値は、常にＣｙａｎ成分と等しくなる。従って、濃度平均値の保存はＣｙａｎ成分に対して行われ、この意味での矛盾はない。この場合の動作モードは、通常の誤差拡散のそれと全く同じである。
【００７７】
（３）両者が混在している場合
この場合、Ｂｌｕｅ成分とＣｙａｎ成分が空間的に混在するので厳密な意味での濃度平均値の保存性は成り立たなくなるが、後述するように後段のビットマップ化手段においてＭａｇｅｎｔａ成分への置き換えが行われるのでマクロ的な平均濃度は保存される。むしろ問題となるのは、Ｂｌｕｅ成分での処理がＣｙａｎ成分への処理に（或いはその逆に）切り替わるような境界部分での挙動である。境界部分では、支配系が切り替わるので継ぎ目が擬似輪郭として知覚されやすくなる。しかし、前述したハイライト検出手段の条件（２）より、Ｃｙａｎ或いはＭａｇｅｎｔａの支配が一方的な場合、ハイライト領域における１次色の処理はほぼ起こらないので、この場合の遷移方向はＢｌｕｅまたはＧｒａｙからＣｙａｎ方向或いはＭａｇｅｎｔａ方向への変化と、ＢｌｕｅまたはＧｒａｙにおける輝度方向への変化となる。前者の場合、境界部分は常に色味の変化を伴うので、元々微小である境界での遷移は色味の変化に隠蔽されて殆ど目立たなくなる。また、後者の場合は、逆に濃度保存性が良好であるため、両者の境界は滑らかにつながる。
【００７８】
以上でバンド処理、及び図１における左側のブロックの説明を終わり、次に同図における右側のブロックの動作について説明する。ここでの動作は、中央部のＣＭ再配置手段１１２を中心としたブロックと右側のビットマップ化手段１１９を中心としたブロックが機能的に大きく分かれるので、以下、２つのブロックに分けて説明する。
【００７９】
図１４は中央部のブロックの動作を表すフローチャートである。同図においてステップＳ１４０１からステップＳ１４１３で構成されるループは、Ｃ，Ｍに関する処理である。同図を見れば明らかなように、ＣＭ以外の色に関する処理は、ここには含まれない。
【００８０】
Ｃ，Ｍに関する処理は、ウインドウ単位で行われる。ステップＳ１４０１におけるパラメーターＢｈは１バンド当たりのラスター数を示し、Ｗｈはウインドウの高さを表している。ここでＢｈはＷｈの整数倍になっているものとする。ステップＳ１４０１でウインドウ単位の行位置が指定されると、ステップＳ１４０２では、ウインドウ行番号が偶数であるか奇数であるかが判別される。ここで偶数であった場合は、ステップＳ１４０３において偶数フラグが立てられ、奇数であった場合は、ステップＳ１４０４にて奇数フラグが立てられる。偶数フラグが立てられた場合は、ステップＳ１４０５からステップＳ１４１２のループで構成されるウインドウ単位の列方向処理は、ウインドウ単位で左から右に向けて順次、行われていく。また奇数フラグであった場合は、同様にして右から左に処理される。
【００８１】
ステップＳ１４０５におけるパラメーターＷｗはウインドウの幅を表し、Ｌは１ラスター当たりの画素数を示している。ここでは簡単のために、ＬはＷｗの整数倍であるものとする。ステップＳ１４０５でウインドウ単位の列位置が指定されると、ステップＳ１４０６において該当位置にあるインデックスバンドバッファー１１７内のデータがウインドウバッファー制御手段１２０の制御の下、ウインドウ単位で読み込まれ、インデックス・フラグ分離手段１１１にあるウインドウバッファーに格納される。この読み込み処理は、Ｃ，Ｍ双方に対して行われ、それぞれが異なるウインドウバッファーに格納される。
【００８２】
インデックスバンドから切り出されるウインドウ部のイメージは、図１５の例に示すようになる。同図に示された様に、左から右にスキャンしてゆく場合は、ウインドウ１５０１の左上端を原点として、Ｗｗ×Ｗｈの範囲が一度に読み込まれる範囲となる。また右から左にスキャンするときは、ウインドウ１５０２の右上端を原点として、Ｗｗ×Ｗｈの範囲が一度に読み込まれる範囲となる。ウインドウ原点のインデックスバンドバッファーにおける座標は、左右スキャンのときは（ｉ＊Ｗｗ，ｊ＊Ｗｈ）であり、右左スキャンのときは、（（Ｌ−１）−ｉ＊Ｗｗ，ｊ＊Ｗｈ）となる。
【００８３】
ステップＳ１４０６でＣ，Ｍのウインドウバッファーにデータが格納された後、ステップＳ１４０７からステップＳ１４０９で構成されるループで、フラグとインデックスの分離処理がインデックス・フラグ分離手段１１１において行われる。ここでの処理は、Ｃのウインドウバッファーの全てのデータに対して、インデックス・フラグ合成手段１０９が行ったのと逆の処理を行い、ハイライト検出フラグを分離してフラグが１だった画素の画素番号、即ち図１５に示された数値を画素番号バッファーに格納すると同時に、ウインドウバッファーのデータをインデックス出力に戻す。
【００８４】
次にステップＳ１４１０では、Ｃ，Ｍ再配置処理が行われるが、この処理については後述する。再配置処理が終わったら、ステップＳ１４１１では、ウインドウバッファー制御手段１２０による制御の下、ウインドウバッファー内のデータがインデックスバンドバッファー１１７の該当位置に書き戻される。以上の一連の処理をウインドウ単位の列方向に施したら、行方向のポインターを進めて、１バンド分の処理を行うことで、ＣＭに関するシーケンスは終了する。
【００８５】
次にステップＳ１４１０におけるＣＭ再配置処理について説明する。まず、前提として、ハイライト検出フラグが立っている位置におけるインデックス出力は、ＣＭとも殆ど１または０であることに注意する必要がある。これは、本実施形態が対象としている出力機器が高解像度のものだからである。良く設計された誤差拡散法を用いると、一色当たりの出力ドットの空間周波数が１５０ｄｐｉ程度あれば、最早、粒状性は問題にならない。仮に１２００ｄｐｉの出力解像度を持つプリンターで、１５０ｄｐｉの空間周波数を持つパターンを再現したとすると平均的には８ｘ８ドットに１つの割合でドットがオンする計算になる。これを８ビットの入力濃度に換算すれば、レベル４程度になり、この値をハイライト領域上限に設定すれば良いことになる。従って、インデックスのとり得る値数が２値より大きかったとしても、設定されたハイライト領域は非常に明るいところのみであるから、誤差拡散の出力は大きくても大部分が１なのである。
【００８６】
尚、ＢｌｕｅまたはＧｒａｙにおける非ハイライト領域からハイライト領域への比較的大きなエッジ近傍では、ハイライト検出フラグが立った状態で２以上のインデックス出力が発生する可能性がある。特に掃き寄せ対策を施した処理系では、エッジに対する応答が速くなるので、発生する確立が高くなると考えられる。このような状態のときに強制的に処理を切り替えると、擬似輪郭の発生などの弊害が考えられるので、後述するようにハイライト処理は、インデックスが１の場合に限定している。
【００８７】
図１６は、この処理を表すフローチャートである。まずステップＳ１６０１において、Ｍ用のウインドウ（Ｍウインドウ）内部をサーチして、置換元画素を特定し、その総数Ｒｃを求めると共に該当位置のＭのインデックス（Ｍインデックス）を０クリアする。置換元画素とは、ハイライト検出フラグが１で、かつ該当位置におけるＭインデックスが１である画素のことである。従って、ここでの処理はステップＳ１４０８において作成された画素番号バッファーに格納されている画素番号位置におけるＭの値を検査し、それが１であるかどうかを判別すれば良い。
【００８８】
次にステップＳ１６０２では、未置換画素スタックをサーチして、過去の置換元画素数の総和Ｒｐを求める。ここで未置換画素スタックとは、図１７の例に示すような構造をしており、ｔ０からｔｎ−１には一度前の処理からｎ回前の処理までのＲｃが格納されている。Ｒｐはｔ０からｔｎ−１の総和である。尚、未置換画素スタックは、最初のＣＭ再配置処理が行われる前の任意のタイミングで０に初期化されているものとする。次にステップＳ１６０３では、ＲｃとＲｐを加算して、現処理における置換元画素数の総和Ｒを求める。
【００８９】
このようにして、第２の色に対応したインデックス出力内で、所定の大きさの２次元ウインドウ内を検索して、ハイライト領域にありかつインデックス値が１である画素の個数を求めてそれを置換元画素数として記録し、インデックス値を０に置き換える処理が実現される。
【００９０】
次にステップＳ１６０４では、Ｃウインドウ内部の置換先候補画素数Ｑを求める。ここで置換先候補画素とは、ハイライト検出フラグが１で、かつ該当位置におけるＣインデックスが１である画素のことである。従って、ここでの処理はステップＳ１４０８において作成された画素番号バッファーに格納されている画素番号位置におけるＣの値を検査し、それが１であるかどうかを判別すれば良い。
このようにして、第１の色に対応したインデックス出力内で、所定の大きさの２次元ウインドウ内部を検索して、ハイライト領域にありかつインデックスが１である画素の個数を求めてそれを置換先候補画素数として記録し、画素の位置を置換先座標として記録する処理が実現される。
【００９１】
もしＱが０であったなら、以降の処理をスキップして、ステップＳ１６１０へ飛ぶ。Ｑが０でない場合、ステップＳ１６０６では、現処理における置換可能画素数Ｐ＝ｍｉｎ（Ｒ，Ｑ）を求める。このようにして、置換元画素数及び置換先候補画素数のうち小さい方を置換可能画素数として記録する処理が行われる。
【００９２】
次にステップＳ１６０７では、乱数を用いてＰ個の置換先画素を求める。この処理は、ステップＳ１６０４で求めたＱ個の置換先候補画素から、Ｐ個の画素を選び出す処理である。乱数による選択アルゴリズムは、例えば次の様にして実現できる。
【００９３】
（１）Ｑ個の置換先候補画素の画素番号（図１５を参照）を格納した配列ＱＡを作成する。この処理は、ステップＳ１６０４で同時に行うことが出来る。
（２）Ｑ個の乱数を発生させ、これと配列ＱＡのインデックスを対応付ける。
（３）上記インデックスに対応した乱数の大小を比較して、大きい順にＰ個のインデックスを選択する。
（４）上記Ｐ個のインデックスに対応した配列ＱＡの要素を置換画素とする。
このようにして、乱数を用いて、置換可能画素数と等しい数の置換先座標を求める処理が実現される。
【００９４】
選択された画素に対し、ステップＳ１６０８では、対象位置にあるＣ画素を０クリアし、Ｍ画素を１にする。これにより、置換先座標にある第１の色に対応したインデックス出力を０にして、前記第１及び第２の色の和に対応したインデックス出力を１にする処理が実現される。
【００９５】
次にステップＳ１６０９では、未置換画素スタックの終端から始めて置換済み画素数を減算してゆく。この処理については後述する。最後にステップＳ１６１０では、Ｒｃで未置換画素スタックをプッシュする。このとき、スタックの終端の値は消滅する。
【００９６】
次にステップＳ１６０９における未置換画素スタックの減算処理について、図１８のフローチャートを用いて説明する。ステップＳ１８０１からステップＳ１８０６におけるループでは、未置換画素スタック内部での減算処理である。ステップＳ１８０２では、置換済み画素数からスタックの現在位置における未置換画素数を減算している。この結果が０以下であれば、減算処理は終了し、ステップＳ１８０７でスタックの現在位置における未置換画素数が更新されてループを抜ける。一方、０より大きければ置換済み画素として消費されたものがまだ残っているので、ステップＳ１８０５で置換済み画素数を更新して次のスタック位置に進む。こうして全てのスタック領域における減算処理が終了すると、スタックの画素を全て消費しても、置換済み画素数に達しなかったことを意味するので、ステップＳ１８０７でＲｃを消費させる。
【００９７】
このようにして、ハーフトーニング手段１０７により求められた第１の色に対応したインデックス出力と、第１及び第２の色の和に対応したインデックス出力とを比較して、第２のインデックス出力を整形する処理が実現される。以上でＣＭ再配置処理に関する説明を終わる。
【００９８】
最後に再び図１に戻り、ビットマップ化手段１１９を中心としたブロックの動作について説明する。ここでの処理は、全て色毎に行われる。まずインデックスバンド読み込み手段１１０によって、インデックスバンドバッファー１１７から１バンド分のインデックスが読み込まれる。次に、ビットマップ化手段１１９では、読み込まれた各画素に対しインデックス展開を行い、ビットマップを生成する。ここでの処理は、インデックスで表された入力画素の値をプリンターの出力解像度に対応したビットマップに変換する処理である。ハーフトーン処理に関する説明の部分で述べた通り、もし、入力解像度と出力解像度がそれぞれ６００ｄｐｉ、１２００ｄｐｉであったとすれば、１つの入力画素に対して２ｘ２の４つの出力画素が対応する。このとき、インデックスが持つ値数は０から４の５値であり、これらの値に対応した２ｘ２のビットマップパターンに展開すれば良い。
【００９９】
ビットマップ展開の方法には、様々な手法が考案されているが、最も一般的に用いられている方法は、テーブルを用いて置き換える手法である。例えば図１９に示したような表を用いて、インデックスに対応するビットマップに展開するのである。同図において、最左欄の数字はインデックス番号を示す。また、Ｐ０、Ｐ１、・・・は、インデックス内のＫｎ＋０の位置を示す。ここで、ｎは０以上の整数、Ｋは周期である。通常、このようなパターンテーブルのセットは複数用意されており、それらを何らかの規則（例えばカラム単位）に則って切り替えて使う。
【０１００】
ビットマップ化処理が、読み込まれた全ての画素に対して施されると、生成されたビットマップイメージは、ヘッド駆動制御手段１１３へ送られて、ノズルの物理的な配置に対応した形に並べ替えられる。このとき、通常は、並列して次の色に対して、上述したビットマップ生成が行われるような構成に設計されている。こうして全ての色に対するビットマップ化処理と並べ替えが終了すると、ヘッド駆動制御手段１１３は、ヘッド制御用の信号を生成して、プリンターエンジン１１４を駆動し、１バンド分の印字を行う。
【０１０１】
以上で、本実施形態の動作説明を終了するが、最後に本実施形態で用いたアルゴリズムのポイントについて幾つか述べておく。
【０１０２】
（１）Ｍの誤差拡散出力を単なる置換画素数決定の際に用いていること。
本実施形態では、画素の再構成を行うに当たり、ＣＭ混合成分に対する誤差拡散出力の分布をベースにしており、Ｍの出力分布を積極的に用いることはしていない。これは、適切に設計された誤差拡散法においては、その出力分布がその入力濃度におけるほぼ理想的な空間特性を有しており、この分布を少しでもずらすと、まるで低周波成分への折り返しが発生しているような大きなノイズを生成してしまうからである。従って、本実施形態では、なるべくリファレンスの分布を崩さないような手法を採用した。
【０１０３】
（２）置換のために２次元ウインドウを用いていること。
１次元の処理では、どんなに質の良い乱数を用いても、局所的に発生する２次元的な凝集を回避できず、結果として色のテクスチャーを発生させてしまうからである。
【０１０４】
（３）置換失敗画素の伝播を抑制していること。
単に濃度の保存性のみを考慮した場合は、無限に伝播させた方が良い。しかし、当然のことながら自然画の相関は局所的なものである。従って、余分なノイズを発生させるよりは、濃度の保存性を多少犠牲にしても、適当なところで打ち切った方が妥当である。
【０１０５】
（４）置換先の決定に乱数を用いていること。
Ｍ画素の出力分布からオン画素を探して、ＣＭ分布からその最近接位置を採用しても、処理が複雑になるだけで、効果に殆ど差がないことが実験的に確認された。これは、もともと誤差拡散法の出力分布が多分に乱数的であり、位置を確定する手段としては、どちらもほぼ等価なものであるからだと考えられる。
【０１０６】
以上説明したように、本実施形態では、ＣＭ再配置手段とビットマップ化手段とがバンドメモリー領域を共有するように構成したことで、機能拡張に伴う装置コストの増加を最小限に抑えることが出来るという効果を奏する。
【０１０７】
尚、本実施形態では、４色出力のプリンターを想定していたが、出力色が２色以上である全ての場合に適用可能である。また、複合する２色はＣ，Ｍに限られたことではなく、例えば、同じ色で濃度の異なる２種類の出力など、任意の出力の組み合わせに容易に拡張できることは明らかである。
【０１０８】
（第２実施形態）
本発明の第２実施形態は、第１実施形態と異なり、低解像度のプリンターにまで適用範囲を広げたものである。図２０に、本実施形態の構成を示す。同図において、図１と同じ参照符号を持つ部分は、同一の機能を有していることを示している。図１と比較して異なる部分は、右側のブロックの構成が一体化したこと、及びＣＭ再配置手段１１２とビットマップ化手段１１９の処理順序が反対になったことである。また、それに伴い、ウインドウバッファー読み込み手段２００１がウインドウバッファー制御手段１２０の代わりに付加されている。ウインドウバッファー読み込み手段２００１は、ウインドウバッファー制御手段１２０から、インデックスバンドバッファー１１７への書き込み制御機能を省略したものであり、その他の機能は全て同一である。
【０１０９】
本実施形態における左側のブロックの処理機序は、図１におけるそれと完全に同一であるので、説明を省略し、右側のブロックについてのみ動作を説明する。
左側のブロックにより、１バンドのインデックス出力処理が終わると、ウインドウバッファー読み込み手段２００１、ビットマップ化手段１１９、ＣＭ再配置手段１１２によって構成されるブロックでは、まずＣＭに関する処理を行ってから他の色に対する処理を行う。
【０１１０】
この処理シーケンスは、基本的に、図１４に示されたものと同じであるが、異なる点は、ステップＳ１４０９とステップＳ１４１０の間でウインドウ領域におけるビットマップ展開処理が行われ、ＣＭ再配置処理が、上記ビットマップ化されたウインドウで行われること（ただし、この場合、ステップＳ１４０８で作成された画素番号バッファーは、同じ入力画素を起源とする出力ビットマップの間で共有される）と、ステップＳ１４１１とステップＳ１４１７におけるインデックスバンドバッファーへの書き込み処理が、ヘッド制御手段１１３のビットマップメモリーに対する書き込み動作になることである。これ以降の動作は、全て第１実施形態におけるものと同一であるため、説明を省略する。
以上で第２実施形態の説明を終わる。
【０１１１】
（第３実施形態）
本発明の第３実施形態は、画像処理装置としてインクジェットプリンターを用いた場合について想定したものである。また、出力色はＣ，Ｍ，Ｙ，Ｋの４色であるものとする。図２１は本実施形態の構成を表す。同図において、図１におけるものと同じ参照符号を用いてあるものは、同じ機能を持っていることを示す。
図２１において、ハーフトーニング手段２１０１は、本質的な機能は図１に示すハーフトーニング手段１０７と同等であるが、色に応じて適応的な処理を行う機能が付加されている。またインデックスバンド制御手段２１０２は、インデックスバンド書き込み手段１０８に読み込み機能を付加したものである。
【０１１２】
次に、本実施形態に係る画像処理装置の動作について詳細に説明する。尚、図２１の右側のブロックの動作は、図１におけるものと全く同じであるので説明を省略し、左側のブロックについてのみ述べることにする。図２１における左側のブロックは、各色の１バンドの処理を行い、結果をインデックスバンドバッファー１１７へ格納する一連の動作を行う。この基本シーケンスは、図２に示されたものと全く同一であるが、ステップＳ２１３におけるバンド処理の内容が異なる。
【０１１３】
図２２は、本実施形態におけるバンド処理のシーケンスを表すフローチャートである。同図において図５と異なるのは、ステップＳ５０５で色変換処理が行われた後で、ステップＳ２２０１の分岐条件に応じて、Ｍの処理とそれ以外の色の処理が切り替わる点にある。Ｍ以外の色に関する処理は、ステップＳ５０６からステップＳ５０８で行われるので、第１実施形態の場合と同じ動作になる。
【０１１４】
次にステップＳ２２０２におけるＭフェーズでのハーフトーニング処理について説明する。図２３は、ハーフトーニング手段２１０１の概略構成を示す。同図において、図１１における参照符号と同じ値が振ってあるものは、同じ機能を持っていることを示している。図１１の構成と異なる点は、コンパレーター２３０１であり、ここには、モード設定信号と、ハイライト検出フラグ及びＣのインデックスが入出力されている。モード設定信号は、処理がＭに関する処理であるかどうかを判断するためのものであり、図２におけるステップＳ２１２以前の任意の時点で、ハーフトーニング手段２１０１の該当レジスターに出力されているものとする。またインデックスバンド制御手段２１０２から読み込まれた該当位置におけるＣｙａｎインデックス・フラグ出力から、インデックス・フラグ分離手段１１１を通じて分離されたハイライト検出フラグとＣｙａｎインデックスが入力される。もし、モード設定信号がＭの処理でないことを表していれば、通常のコンパレート動作を行うので、ハーフトーニング手段２１０１の動作は、図１に示すハーフトーニング手段１０７と全く等価になる。
【０１１５】
動作モードがＭであるときのハーフトーニングの処理フローを図２４に示す。
ステップＳ２４０１とステップＳ２４０２における処理は、現在処理しているＭ画素の座標と同じ座標における処理済みのＣインデックス出力Ｃｉとハイライト検出フラグＨｆを求める手続きである。
【０１１６】
次にステップＳ２４０３において、Ｍ入力と累積誤差との加算が行われて、加算濃度が計算される。これは通常の誤差拡散処理と同じである。これらが求められると、ステップＳ２４０４で現在位置がハイライト領域に含まれているかどうか検査される。もし、ハイライト領域でないならば、ステップＳ２４１０で通常の閾値処理が行われる。逆にハイライト領域であった場合は、ステップＳ２４０５でそこにＣ出力があるかどうかが判別される。もし、Ｃ出力が存在しなかったら、ステップＳ２４０９にてＭの出力インデックスＭｉを０に設定する。一方、Ｃ出力が存在したら、ステップＳ２４０６で通常の閾値処理が行われて、Ｍｉが求められる。ステップＳ２４０７では、求めたＭｉと入力されたＣｉとの比較が行われて小さい方が改めてＭｉに設定される。ステップＳ２４０８では、ＣｉからＭｉを減算した値をＣｉに設定する。
【０１１７】
このようにして、変換された濃度出力のうち、Ｍ以外の濃度出力に対しては誤差拡散処理を行ってインデックス出力を求め、Ｍの濃度出力に対しては、Ｃに対応したインデックス出力と、ハイライト検出手段１０４による検出の結果を示すハイライト検出フラグとに基づいて、誤差拡散出力を制御して第２の色に対応したインデックス出力を求めると共に、Ｃに対応したインデックス出力を調整する処理が実現される。一連の閾値処理が終わったら、誤差の計算と格納がステップＳ２４１１で行われ、最後にＣｉ，Ｍｉがインデックスバンドバッファー１１７に書き込まれる。
【０１１８】
以上がＭを処理するときのハーフトーニング処理動作であるが、この処理で特徴的なものは上述したステップＳ２４０５からステップＳ２４０８におけるハイライト領域での処理である。最後にこのハイライト領域アルゴリズムについて若干の考察を加えておこう。ステップＳ２４０５でＣｉが０のときは、Ｍｉを強制的に０にしているが、これはＣＭ混合で得られた出力分布を尊重してなるべく乱さないようにするための措置であり、基本的な思想は第１実施形態の最後に述べたことと同一である。一方、ステップＳ２４０７とステップＳ２４０８とで行われる減算による置き換え処理は、Ｃの濃度保存性をほぼ確保している。Ｍに関しての濃度保存性は、通常の誤差拡散と同様に保たれることは明らかである。
【０１１９】
尚、本実施形態では、４色出力のプリンターを想定していたが、出力色が２色以上である全ての場合に適用可能である。また、複合する２色はＣ，Ｍに限られたことではなく、例えば、同じ色で濃度の異なる２種類の出力など、任意の出力の組み合わせに容易に拡張できることは明らかである。
以上で本実施形態の説明を終わる。
【０１２０】
尚、本発明は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【０１２１】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１２２】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、光ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ不揮発性のメモリカード、ＲＯＭなどを用いることが出来る。
【０１２３】
また、コンピュータが読み出したプログラムコードを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によっても前述した実施の形態の機能が実現され得る。
【０１２４】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施の形態の機能が実現され得る。
【０１２５】
本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体からそのプログラムをパソコン通信など通信ラインを介して要求者にそのプログラムを配信する場合にも適用できることは言うまでもない。
【０１２６】
更に、本発明の精神と範囲を逸脱しない限り、種々の態様で変更が可能である。従って、他の実施形態も請求項の範囲に属するものである。
【０１２７】
【発明の効果】
以上説明したように、本発明によれば、色変換処理において第１の濃度出力を演算する際に、第１の濃度出力、或いは第１の濃度出力と第２の濃度出力との和を適応的に出力させることにより、ハイライト領域での粒状性の向上による画質向上を、高速にかつ低コストで実現できるという効果を奏する。
【図面の簡単な説明】
【図１】本発明第１実施形態の構成を表すブロック図である。
【図２】本発明第１実施形態の動作を表すフローチャートである。
【図３】図１における色変換テーブル読み込み手段及び色変換手段の概略構成を表すブロック図である。
【図４】図１における色変換テーブルバッファー内部の格納イメージを表す図である。
【図５】本発明第１実施形態におけるバンド処理の動作を表すフローチャートである。
【図６】色変換処理を表すフローチャートである。
【図７】色変換処理における補間空間でのハイライト領域の空間的な配置を説明するための図である。
【図８】色変換処理において補間格子の格子点座標を一括して読み込むための構成の一例を示すブロック図である。
【図９】図８におけるレジスターと対応する補間立法体上の格子点の空間的な配置の一例を示す図である。
【図１０】図８におけるセレクターの選択アルゴリズムの一例を表す表である。
【図１１】本発明第１実施形態におけるハーフトーニング手段の構成の一例を表すブロック図である。
【図１２】図１１におけるコンパレーターの動作の一例を表す表である。
【図１３】誤差拡散法に用いられる拡散係数配置の一例を示す図である。
【図１４】図１におけるＣＭ再配置手段を中心としたブロックの動作を表すフローチャートである。
【図１５】図１におけるインデックス・フラグ分離手段内部に格納されるウインドウデータのイメージを示す図である。
【図１６】ＣＭ再配置処理の一例を表すフローチャートである。
【図１７】未置換画素スタックの構造の一例を示す図である。
【図１８】図１６におけるステップＳ１６０９での処理を表すフローチャートである。
【図１９】図１におけるビットマップ化手段で行われるインデックス展開処理の一例を示す図である。
【図２０】本発明第２実施形態の構成を表すブロック図である。
【図２１】本発明第３実施形態の構成を表すブロック図である。
【図２２】本発明第３実施形態におけるバンド処理のシーケンスを表すフローチャートである。
【図２３】本発明第３実施形態におけるハーフトーニング手段の概略構成を示すブロック図である。
【図２４】本発明第３実施形態における動作モードがＭであるときのハーフトーニングの処理フローである。
【符号の説明】
１０１　ＣＰＵ
１０２　画像データ読み込み手段
１０３　γ変換手段
１０４　ハイライト検出手段
１０５　色変換テーブル読み込み手段
１０６　色変換手段
１０７、２１０１　ハーフトーニング手段
１０８　インデックスバンド書き込み手段
１０９　インデックス・フラグ合成手段
１１０　インデックスバンド読み込み手段
１１１　インデックス・フラグ分離手段
１１２　ＣＭ再配置手段
１１３　ヘッド駆動制御手段
１１４　プリンターエンジン
１１５　画像データバッファー
１１６　色変換テーブルバッファー
１１７　インデックスバンドバッファー
１１８　ＣＰＵバス
１１９　ビットマップ化手段
１２０　ウインドウバッファー制御手段
３０２　非ハイライト領域用色変換テーブル
３０３　ハイライト領域用色変換テーブル
３０４　補間演算手段
３０５　セレクター
８０１、８０２、８０３、８０４、８０５、８０６、８０７、８０８　格子点決定手段
８０９、８１０、８１１、８１２、８１３、８１４、８１５、８１６　ＳＲＡＭ８１７　セレクター
８１８　Ｐ０レジスター
８１９　Ｐ１レジスター
８２０　Ｐ２レジスター
８２１　Ｐ３レジスター
８２２　Ｐ４レジスター
８２３　Ｐ５レジスター
８２４　Ｐ６レジスター
８２５　Ｐ７レジスター
８２６　選択処理手段
８２７　積和演算手段
１１０１、１１０４　加算器
１１０２　誤差演算手段
１１０３　エラーバッファー
１１０５、２３０１　コンパレーター
１１０６　インデックス変換器
１５０１、１５０２　ウインドウ
２００１　ウインドウバッファー読み込み手段
２１０２　インデックスバンド制御手段
【図１】
2004128975.tif 000004
【図２】
2004128975.tif 000005
【図３】
2004128975.tif 000006
【図４】
2004128975.tif 000007
【図５】
2004128975.tif 000008
【図６】
2004128975.tif 000009
【図７】
2004128975.tif 000010
【図８】
2004128975.tif 000011
【図９】
2004128975.tif 000012
【図１０】
2004128975.tif 000013
【図１１】
2004128975.tif 000014
【図１２】
2004128975.tif 000015
【図１３】
2004128975.tif 000016
【図１４】
2004128975.tif 000017
【図１５】
2004128975.tif 000018
【図１６】
2004128975.tif 000019
【図１７】
2004128975.tif 000020
【図１８】
2004128975.tif 000021
【図１９】
2004128975.tif 000022
【図２０】
2004128975.tif 000023
【図２１】
2004128975.tif 000024
【図２２】
2004128975.tif 000025
【図２３】
2004128975.tif 000026
【図２４】
2004128975.tif 000027