(57)【特許請求の範囲】
【請求項１】
複数の濃度成分からなる多値画像データに誤差拡散処理を行う誤差拡散処理手段を備える画像処理装置であって、
前記複数の濃度成分のうちの１つである第１の濃度成分に前記誤差拡散処理を行う場合、当該誤差拡散処理で用いる閾値を、前記複数の濃度成分のうちの少なくとも１つである前記第１の濃度成分とは異なり、かつ前記誤差拡散処理前の第２の濃度成分の濃度値と、前記第２の濃度成分の濃度値を前記閾値に変換するためのテーブルとに基づいて決定する決定手段を備え、
前記誤差拡散処理手段は、処理結果として、前記第１の濃度成分が前記決定された閾値よりも小さかった場合には第１の出力結果を出力し、前記第１の濃度成分が前記決定された閾値と等しいか又は大きく、前記決定された閾値に前記第１の濃度成分の量子化階調数に基づく所定の値を加えた値よりも小さかった場合には前記第１の出力結果とは異なる第２の出力結果を出力し、前記第１の濃度成分が前記決定された閾値に前記第１の濃度成分の量子化階調数に基づく所定の値を加えた値と等しいか又は大きかった場合には前記第１の出力結果、前記第２の出力結果のいずれとも異なる第３の出力結果を出力することを特徴とする画像処理装置。
【請求項２】
前記第１の濃度成分と前記第２の濃度成分とは、色、染料濃度、及び吐出量のうちの少なくとも１つが異なっていることを特徴とする請求項１記載の画像処理装置。
【請求項３】
複数の濃度成分からなる多値画像データに誤差拡散処理を行う誤差拡散処理工程を備える画像処理方法であって、
前記複数の濃度成分のうちの１つである第１の濃度成分に前記誤差拡散処理を行う場合、当該誤差拡散処理で用いる閾値を、前記複数の濃度成分のうちの少なくとも１つである前記第１の濃度成分とは異なり、かつ前記誤差拡散処理前の第２の濃度成分の濃度値と、前記第２の濃度成分の濃度値を前記閾値に変換するためのテーブルとに基づいて決定する決定工程を備え、
前記誤差拡散処理工程では、処理結果として、前記第１の濃度成分が前記決定された閾値よりも小さかった場合には第１の出力結果が出力され、前記第１の濃度成分が前記決定された閾値と等しいか又は大きく、前記決定された閾値に前記第１の濃度成分の量子化階調数に基づく所定の値を加えた値よりも小さかった場合には前記第１の出力結果とは異なる第２の出力結果が出力され、前記第１の濃度成分が前記決定された閾値に前記第１の濃度成分の量子化階調数に基づく所定の値を加えた値と等しいか又は大きかった場合には前記第１の出力結果、前記第２の出力結果のいずれとも異なる第３の出力結果が出力されることを特徴とする画像処理方法。
【請求項４】
前記第１の濃度成分と前記他の濃度成分は、色、染料濃度、及び吐出量のうちの少なくとも１つが異なっていることを特徴とする請求項３記載の画像処理方法。
【請求項５】
複数の濃度成分からなる多値画像データに誤差拡散処理を行う誤差拡散処理ステップを備える画像処理方法をコンピュータに実行させるプログラムであって、
前記複数の濃度成分のうちの１つである第１の濃度成分に前記誤差拡散処理を行う場合、当該誤差拡散処理で用いる閾値を、前記複数の濃度成分のうちの少なくとも１つである前記第１の濃度成分とは異なり、かつ前記誤差拡散処理前の第２の濃度成分の濃度値と、前記第２の濃度成分の濃度値を前記閾値に変換するためのテーブルとに基づいて決定する決定ステップを備え、
前記誤差拡散処理ステップでは、処理結果として、前記第１の濃度成分が前記決定された閾値よりも小さかった場合には第１の出力結果が出力され、前記第１の濃度成分が前記決定された閾値と等しいか又は大きく、前記決定された閾値に前記第１の濃度成分の量子化階調数に基づく所定の値を加えた値よりも小さかった場合には前記第１の出力結果とは異なる第２の出力結果が出力され、前記第１の濃度成分が前記決定された閾値に前記第１の濃度成分の量子化階調数に基づく所定の値を加えた値と等しいか又は大きかった場合には前記第１の出力結果、前記第２の出力結果のいずれとも異なる第３の出力結果が出力されることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置及び方法、並びにプログラムに関し、特に、多値画像データに擬似中間調処理として誤差拡散処理を行う画像処理装置及び方法、並びにプログラムに関する。
【０００２】
【従来の技術】
従来、カラー画像を２値で表現する擬似中間調処理として誤差拡散法が知られている("An Adaptive Algorithm for Spatial Gray Scale" in society for Information Display 1975 Symposium Digest of Technical Papers, 1975, 36)。この方法は、着目画素をＰ、その濃度をｖとし、着目画素Ｐの周辺画素Ｐ０，Ｐ１，Ｐ２，Ｐ３の濃度をそれぞれｖ０，ｖ１，ｖ２，ｖ３とし、２値化のための閾値をＴとすると、着目画素Ｐにおける２値化誤差Ｅを周辺画素Ｐ０，Ｐ１，Ｐ２，Ｐ３に経験的に求めた重み係数Ｗ０，Ｗ１，Ｗ２，Ｗ３で振り分けて、マクロ的に平均濃度を元画像の濃度と等しくする方法である。
【０００３】
例えば、出力２値データをｏとすると、周辺画素の濃度ｖ０，ｖ１，ｖ２，ｖ３は下記にように表すことができる。
【０００４】
ｖ≧Ｔ  ならば  ｏ＝１，Ｅ＝ｖ−Ｖｍａｘ；・・・（１）
ｖ＜Ｔ  ならば  ｏ＝０，Ｅ＝ｖ−Ｖｍｉｎ；
（ただし、Ｖｍａｘ：最大濃度、Ｖｍｉｎ：最小濃度）
ｖ０＝ｖ０＋Ｅ×Ｗ０；・・・（２）
ｖ１＝ｖ１＋Ｅ×Ｗ１；・・・（３）
ｖ２＝ｖ２＋Ｅ×Ｗ２；・・・（４）
ｖ３＝ｖ３＋Ｅ×Ｗ３；・・・（５）
(重み係数の例: W0 = 7/16, W1 = 1/16, W2 = 5/16, W3 = 3/16 )
従来、カラーインクジェットプリンタ等では、シアン（Ｃ）、マゼンタ（Ｍ）、イエロ（Ｙ）、ブラック（Ｋ）の４色のインクを用いて多値画像データを出力する際に、各色独立に誤差拡散法等を用いて擬似中間調処理を行っていたために、１色について見た場合には視覚特性が優れていても、２色以上が重なり合うと必ずしも良好な視覚特性が得られない。
【０００５】
この問題を改善するために、特開平８−２７９９２０号公報及び特開平１１−１０９１８号公報等においては、２色以上を組み合わせて誤差拡散法を用いることにより、２色以上が重なり合う場合においても良好な視覚特性の得られる擬似中間調処理方法が開示されている。
【０００６】
また、特開平９−１３９８４１号公報においては、２色以上を独立に擬似中階調処理した後に、入力値の合計により出力値の修正を行うことにより、上記と同様の効果が得られる方法が開示されている。
【０００７】
特に、カラー画像の中濃度領域の粒状感を低減するのに、シアン（Ｃ）成分とマゼンタ（Ｍ）成分のドットが互いに重なり合わない様に画像処理をすることが効果的であり、そのために以下の方法が用いられている。
【０００８】
図１３は、従来のカラー画像の画像処理方法を説明する説明図である。
【０００９】
図１３において、カラー画像の画像データは、その各画素、各濃度成分（ＹＭＣＫ）が８ビット（階調値が０〜２５５）の多値データで表現されている。画像データにおける任意の注目画素のシアン（Ｃ）成分の濃度値Ｃｔとマゼンタ（Ｍ）成分の濃度値Ｍｔは、原画像のＣ成分とＭ成分の濃度値をそれぞれＣ、Ｍとすると、次式で表される。ここで、ＣｅｒｒとＭｅｒｒは、それぞれＣ成分とＭ成分の注目画素に対して誤差拡散された値である。
【００１０】
Ct = C + Cerr
Mt = M + Merr
従来のカラー画像の画像処理方法では、注目画素のＣ成分とＭ成分の濃度に従って以下に示す４通りの画像処理制御を行う。
【００１１】
１．（Ｃｔ＋Ｍｔ）が閾値（Threshold 1）以下である場合、即ち、図１３に示す領域（１）に属する場合にはドット記録を行わない。
【００１２】
２．（Ｃｔ＋Ｍｔ）が閾値（Threshold 1）を越えており、且つ（Ｃｔ＋Ｍｔ）が別の閾値（Threshold 2）未満であり、且つＣｔ＞Ｍｔである場合、即ち、図１３の領域（２）に属する場合には、Ｃインクのみでドット記録を行う。
【００１３】
３．（Ｃｔ＋Ｍｔ）が閾値（Threshold 1）を越えており、且つ（Ｃｔ＋Ｍｔ）が別の閾値（Threshold 2）未満であり、且つＣｔ≦Ｍｔである場合、即ち、図１３の領域（３）に属する場合には、Ｍインクのみでドット記録を行う。
【００１４】
４．（Ｃｔ＋Ｍｔ）が別の閾値（Threshold 2）以上である場合、即ち、図１３の領域（４）に属する場合には、Ｃインク及びＭインクを用いてドット記録を行う。なお、Threshold 1＜Threshold 2とする。
【００１５】
【発明が解決しようとする課題】
しかしながら、上記従来の画像処理方法では、量子化を行う場合に階調数が多くなればなるほど判定式が複雑化し、処理時間が余計にかかってしまうという問題がある。例えば、従来の画像処理方法によりシアンとマゼンタを３値に量子化した場合のアルゴリズムを次式に示す。
【００１６】
0004194285.tif 000002
0004194285.tif 000003
このように、シアンとマゼンタを３値に量子化するだけでも複雑な処理となり、より多い階調に量子化する場合には更に複雑となる。
【００１７】
本発明は、上記問題に鑑みてなされたものであり、より階調数の多い画像処理形態においても高速処理が可能で、保持するテーブル情報のサイズをコンパクトにすることができ、且つドット着弾位置ずれに対して良好な画像処理を行うことができる画像処理装置及び方法、並びにプログラムを提供することを目的とする。
【００１８】
【課題を解決するための手段】
上記目的を達成するために、請求項１記載の画像処理装置は、複数の濃度成分からなる多値画像データに誤差拡散処理を行う誤差拡散処理手段を備える画像処理装置であって、前記複数の濃度成分のうちの１つである第１の濃度成分に前記誤差拡散処理を行う場合、当該誤差拡散処理で用いる閾値を、前記複数の濃度成分のうちの少なくとも１つである前記第１の濃度成分とは異なり、かつ前記誤差拡散処理前の第２の濃度成分の濃度値と、前記第２の濃度成分の濃度値を前記閾値に変換するためのテーブルとに基づいて決定する決定手段を備え、前記誤差拡散処理手段は、処理結果として、前記第１の濃度成分が前記決定された閾値よりも小さかった場合には第１の出力結果を出力し、前記第１の濃度成分が前記決定された閾値と等しいか又は大きく、前記決定された閾値に前記第１の濃度成分の量子化階調数に基づく所定の値を加えた値よりも小さかった場合には前記第１の出力結果とは異なる第２の出力結果を出力し、前記第１の濃度成分が前記決定された閾値に前記第１の濃度成分の量子化階調数に基づく所定の値を加えた値と等しいか又は大きかった場合には前記第１の出力結果、前記第２の出力結果のいずれとも異なる第３の出力結果を出力することを特徴とする。
【００２４】
請求項２記載の画像処理装置は、請求項１記載の画像処理装置において、前記第１の濃度成分と前記第２の濃度成分とは、色、染料濃度、及び吐出量のうちの少なくとも１つが異なっていることを特徴とする。
【００３３】
上記目的を達成するために、請求項３記載の画像処理方法は、複数の濃度成分からなる多値画像データに誤差拡散処理を行う誤差拡散処理工程を備える画像処理方法であって、前記複数の濃度成分のうちの１つである第１の濃度成分に前記誤差拡散処理を行う場合、当該誤差拡散処理で用いる閾値を、前記複数の濃度成分のうちの少なくとも１つである前記第１の濃度成分とは異なり、かつ前記誤差拡散処理前の第２の濃度成分の濃度値と、前記第２の濃度成分の濃度値を前記閾値に変換するためのテーブルとに基づいて決定する決定工程を備え、前記誤差拡散処理工程では、処理結果として、前記第１の濃度成分が前記決定された閾値よりも小さかった場合には第１の出力結果が出力され、前記第１の濃度成分が前記決定された閾値と等しいか又は大きく、前記決定された閾値に前記第１の濃度成分の量子化階調数に基づく所定の値を加えた値よりも小さかった場合には前記第１の出力結果とは異なる第２の出力結果が出力され、前記第１の濃度成分が前記決定された閾値に前記第１の濃度成分の量子化階調数に基づく所定の値を加えた値と等しいか又は大きかった場合には前記第１の出力結果、前記第２の出力結果のいずれとも異なる第３の出力結果が出力されることを特徴とする。
【００３９】
請求項４記載の画像処理方法は、請求項３記載の画像処理方法において、前記第１の濃度成分と前記他の濃度成分は、色、染料濃度、及び吐出量のうちの少なくとも１つが異なっていることを特徴とする。
【００４８】
上記目的を達成するために、請求項５記載のプログラムは、複数の濃度成分からなる多値画像データに誤差拡散処理を行う誤差拡散処理ステップを備える画像処理方法をコンピュータに実行させるプログラムであって、前記複数の濃度成分のうちの１つである第１の濃度成分に前記誤差拡散処理を行う場合、当該誤差拡散処理で用いる閾値を、前記複数の濃度成分のうちの少なくとも１つである前記第１の濃度成分とは異なり、かつ前記誤差拡散処理前の第２の濃度成分の濃度値と、前記第２の濃度成分の濃度値を前記閾値に変換するためのテーブルとに基づいて決定する決定ステップを備え、前記誤差拡散処理ステップでは、処理結果として、前記第１の濃度成分が前記決定された閾値よりも小さかった場合には第１の出力結果が出力され、前記第１の濃度成分が前記決定された閾値と等しいか又は大きく、前記決定された閾値に前記第１の濃度成分の量子化階調数に基づく所定の値を加えた値よりも小さかった場合には前記第１の出力結果とは異なる第２の出力結果が出力され、前記第１の濃度成分が前記決定された閾値に前記第１の濃度成分の量子化階調数に基づく所定の値を加えた値と等しいか又は大きかった場合には前記第１の出力結果、前記第２の出力結果のいずれとも異なる第３の出力結果が出力されることを特徴とする。
【００５８】
【発明の実施の形態】
以下、本発明の実施の形態に係る画像処理装置について図面を参照して詳細に説明する。
【００５９】
（共通の実施の形態）
以下に示す実施の形態において共通に用いられる画像処理システムの全体概要、ハードウエア構成の概要、ソフトウエア構成の概要、及び画像処理の概要について説明する。
【００６０】
１．画像処理システムの全体概要
図１は、本発明の実施の形態に係る画像処理装置を備える画像処理システムの概略構成を示すブロック図である。
【００６１】
図１において、本画像処理システムは、パーソナルコンピュータ（以下、単に「パソコン」という。）等で構成され、画像処理装置として機能するホスト装置５１と、インクジェットプリンタ等で構成された画像出力装置５２とを備え、これらの間が双方向インターフェース５３により接続されている。
【００６２】
ホスト装置５１は、後述するＭＰＵ、メモリ、大容量記憶装置であるハードディスクドライブ、キーボード、及びＣＲＴ等から成る表示装置を備え、メモリには本発明を適用したドライバソフトウエア５４が記憶（格納）されている。
【００６３】
２．ホスト装置５１と画像出力装置５２のハードウエア構成
図２は、図１におけるホスト装置５１と画像出力装置５２のハードウエア構成の概要を示すブロック図である。
【００６４】
図２において、ホスト装置５１は、処理部１０００と、表示装置２００１と、制御プログラムやデータが格納されたハードディスクドライブ（ＨＤＤ）装置２００２と、キーボード２００３とで構成されている。
【００６５】
処理部１０００は、制御プログラムに従ってホスト装置５１全体の制御を行うＭＰＵ１００１と、処理部１０００内の各構成要素を互いに接続するバス１００２と、ＭＰＵ１００１が実行する制御プログラムやデータ等を一時記憶するＤＲＡＭ１００３と、システムバス１００２及びＭＰＵ１００１を接続するブリッジ１００４と、表示装置２００１にグラフィック情報を表示させるための制御機能を備えたグラフィックアダプタ１００５とを備える。
【００６６】
また、処理部１０００は、ＨＤＤ２００２とのインターフェースを司るＨＤＤコントローラ１００６と、キーボード２００３とのインターフェースを司るキーボードコントローラ１００７と、ＩＥＥＥ１２８４規格に従って画像出力装置５２との間の通信を制御するパラレルインターフェースである通信Ｉ／Ｆ１００８とを備える。
【００６７】
処理部１０００は、グラフィックアダプタ１００５を介して表示装置２００１に接続され、ＨＤＤコントローラ１００６を介してＨＤＤ装置２００２に接続され、キーボードコントローラ１００７を介してキーボード２００３に接続されている。
【００６８】
画像出力装置５２は、制御回路部３００３と、記録ヘッド３０１０と、記録ヘッド３０１０を搬送するキャリアを駆動するキャリア（ＣＲ）モータ３０１１と、用紙を搬送する搬送（ＬＦ）モータ３０１２とで構成されている。
【００６９】
制御回路部３００３は、制御プログラム実行機能と周辺装置制御機能とを兼ね備え、画像出力装置５２全体の制御を行うＭＣＵ３００１と、制御回路部３００３内の各構成要素を互いに接続するシステムバス３００２と、記録データの記録ヘッド３０１０への供給、メモリアドレスデコーディング、キャリアモータへの制御パルス発生機構等を制御回路として内部に納めたゲートアレイ３０１３（Ｇ．Ａ．）とを備える。
【００７０】
また、制御回路部３００３は、ＭＣＵ３００１が実行する制御プログラムやホスト印刷情報等を格納するＲＯＭ３００４と、各種データ（画像記録情報やヘッドに供給される記録データ等）を保存するＤＲＡＭ３００５と、ＩＥＥＥ１２８４規格に従ってホスト装置５１との間の通信を制御するパラレルインターフェースである通信Ｉ／Ｆ３００６と、ゲートアレイ３０１３から出力されたヘッド記録信号に基づいて記録ヘッド３０１０を駆動するための電気信号に変換するヘッドドライバ３００７とを備える。
【００７１】
制御回路部３００３は、ゲートアレイ３０１３から出力されるキャリアモータ制御パルスを実際にＣＲモータ３０１１を駆動するための電気信号に変換するＣＲモータドライバ３００８と、ＭＣＵ３００１から出力された搬送モータ制御パルスを実際にＬＦモータ３０１２を駆動するための電気信号に変換するＬＦモータドライバ３００９とを備える。
【００７２】
次に、画像出力装置５２の具体的構成について説明する。
【００７３】
図３は、図１における画像出力装置５２の代表的な実施の形態であるインクジェットプリンタの概略構成を示す斜視図である。
【００７４】
図３において、インクジェットプリンタＩＪＲＡは、図２に示した制御回路部３００３と共に、記録ヘッドＩＪＨ（記録ヘッド３０１０）と、キャリッジＨＣと、インクタンクＩＴと、インクカートリッジＩＪＣとを備える。記録ヘッドＩＪＨは、ＹＭＣＫ各成分の多値濃度データに基づいて、少なくともイエロ（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）、ブラック（Ｋ）の４つのインクを用いてカラー画像を記録することができる。
【００７５】
キャリッジＨＣは、駆動モータ５０１３の正逆回転に連動して駆動力伝達ギア５００９〜５０１１を介して回転するリードスクリュー５００５の螺旋溝５００４に対して係合する。また、キャリッジＨＣはピン（不図示）を有し、ガイドレール５００３に支持されて矢印ａ，ｂ方向を往復移動する。
【００７６】
キャリッジＨＣには、記録ヘッドＩＪＨとインクタンクＩＴとを内蔵した一体型インクジェットカートリッジＩＪＣが搭載されている。紙押え板５００２は、キャリッジＨＣの移動方向にわたって記録用紙Ｐをプラテン５０００に対して押圧する。フォトカプラ５００７，５００８は、キャリッジＨＣのレバー５００６の存在を確認して駆動モータ５０１３の回転方向切り換え等を行うためのホームポジション検知器である。
【００７７】
支持部材５０１６は、記録ヘッドＩＪＨの前面をキャップするキャップ部材５０２２を支持するものである。吸引器５０１５は、キャップ部材５０２２内を吸引するものであり、キャップ内開口５０２３を介して記録ヘッドＩＪＨの吸引回復を行う。部材５０１９は、クリーニングブレード５０１７を前後方向に移動可能にするものであり、本体支持板５０１８にこれらが支持されている。なお、クリーニングブレード５０１７は、本形態に限らず周知のクリーニングブレードが適用可能であることは云うまでもない。
【００７８】
レバー５０２１は、吸引回復の吸引を開始するためのレバーで、キャリッジＨＣと係合するカム５０２０の移動に伴って移動し、駆動モータからの駆動力がクラッチ切り換え等の公知の伝達機構で移動制御される。
【００７９】
これらのキャッピング、クリーニング、吸引回復は、キャリッジＨＣがホームポジション側の領域に来たときに、リードスクリュー５００５の作用によってそれらの対応位置で所望の処理が行えるように構成されているが、周知のタイミングで所望の動作を行うようにすれば、本例にはいずれも適用できる。
【００８０】
なお、上述したように、インクタンクＩＴと記録ヘッドＩＪＨとは一体的に形成されて交換可能なインクカートリッジＩＪＣを構成してもよいが、これらインクタンクＩＴと記録ヘッドＩＪＨとを分離可能に構成して、インクがなくなったときにインクタンクＩＴだけを交換できるようにしてもよい。
【００８１】
３．ソフトウエア構成の概要及び画像処理の概要
図４は、図１の画像処理システムで用いられるソフトウエアの構造を示すブロック図である。
【００８２】
図４において、ホスト装置５１は、階層構造をしたアプリケーションソフトウエアと、オペレーティングシステム（ＯＳ）と、ドライバソフトウエアの３つのソフトウエアを備え、これらのソフトウエアが画像出力装置５２に対して記録データを出力するために互いに連携して画像処理を行う。
【００８３】
アプリケーションソフトウエアの階層には、アプリケーションソフトウエア１１が設けられ、ＯＳ（オペレーティングシステム）の階層には、アプリケーションソフトウエア１１からの描画命令を受け取る描画処理インターフェース２１と生成された画像データをインクジェットプリンタ等の画像出力装置５２へ渡すスプーラ２２とが設けられている。
【００８４】
そして、ドライバソフトウエアの階層には、画像出力装置５２固有の表現形式が記憶された装置固有描画機能３１−１，３１−２，・・・，３１−ｎと、ＯＳからの線分割化画像情報を受け取り、ドライバソフトウエア内部の表色系からデバイス固有の表色系への変換を行う色特性変換モジュール３３と、デバイスの各画素の状態を表す量子化量への変換を行うハーフトーニング（中間調処理）モジュール３４と、ハーフトーニングが施された画像データに画像出力装置５２へのコマンドを付加してスプーラ２２に出力するプリントコマンド生成モジュール３５とが設けられている。
【００８５】
本実施の形態では、画像出力装置５２夫々に個別に依存する部分は、装置固有描画機能３１−１，３１−２，・・・，３１−ｎが扱い、画像出力装置５２の個別の実装に依存するプログラム部品を共通的に処理を行なうことができるプログラムと分離し、且つドライバソフトウエアの根幹処理部分を個別の画像出力装置から独立した構造にしている。
【００８６】
量子化量に変換された線分割化画像は、色特性変換モジュール３３やハーフトーニングモジュール３４等により画像処理が施され、プリントコマンド生成モジュール３５によりデータ圧縮／コマンドが付加されて、ＯＳ（オペレーティングシステム）に設けられたスプーラ２２を介して画像出力装置５２へ出力される。
【００８７】
次に、図１の画像処理システムにおける画像処理の概要について具体的に説明する。
【００８８】
図５は、図１の画像処理システムにおいて実行される画像処理を示すフローチャートである。
【００８９】
図５において、アプリケーションソフトウエア１１が画像出力装置５２へ画像を出力する場合、まず、アプリケーションソフトウエア１１がＯＳの描画処理インターフェース２１を介して文字、線分、図形、及びビットマップ等の描画命令をドライバソフトウエア内部の装置固有描画機能３１−１，３１−２，…，３１−ｎに発行する（ステップＳ１）。
【００９０】
次に、画面／紙面を構成する描画命令が完結したか否かを判別し（ステップＳ２）、描画命令が完結すると（ステップＳ２でＹＥＳ）、ＯＳは、ドライバソフトウエア内部の装置固有描画機能３１−１，３１−２，…，３１−ｎを呼び出しつつ、各描画命令をＯＳの内部形式から装置固有の表現形式（各描画単位を線分割化したもの）に変換し（ステップＳ３）、しかる後に画面／紙面を線分割化した画像情報としてドライバソフトウエアへ渡す（ステップＳ４）。
【００９１】
ドライバソフトウエア内部では、色特性変換モジュール３３によってデバイスの色特性を補正すると共に、ドライバソフトウエア内部の表色系からデバイス固有の表色系への変換を行い（ステップＳ５）、更にハーフトーニングモジュール３４によってデバイスの各画素の状態を表す量子化量への変換（ハーフトーニング）を行う（ステップＳ６）。なお、ここでの量子化量への変換とは、画像出力装置５２の処理するデータの形態に対応して多値化することである。例えば、画像出力装置５２による記録が２値データに基づいて行われるときは２値化され、画像出力装置５２による記録が多値データ（濃淡インクによる記録、大小インクによる記録を行うため）に基づいて行われるときは多値化される。このハーフトーニングについての詳細は、後述する各実施形態において説明する。
【００９２】
プリントコマンド生成モジュール３５は、いずれも量子化（２値化、多値化等）された画像データを受け取る（ステップＳ７）。プリントコマンド生成モジュール３５は、量子化された画像情報を相異なる方法にて画像出力装置５２の特性に合わせて加工し、該画像情報にデータ圧縮、コマンドヘッダの付加を行い、データを生成する（ステップＳ８）。
【００９３】
次に、プリントコマンド生成モジュール３５は、ＯＳ内部に設けられたスプーラ２２に生成したデータを受け渡し（ステップＳ９）、画像出力装置５２へのデータ出力を行って（ステップＳ１０）、本処理を終了する。
【００９４】
本実施の形態では、ホスト装置５１内のＨＤＤ装置２００２等に格納された図５の処理に基づくプログラムをＭＰＵ１００１により実行させることで、上述の制御方法を実現させることが可能となる。
【００９５】
以上のように、ドライバソフトウエアの根幹処理部分を個別の画像出力装置５２から独立した構造にしているので、ドライバソフトウエアと画像出力装置５２間のデータ処理の分担をドライバソフトウエアの構成を損なうことなく柔軟に変更することが可能になり、ソフトウエアの保守及び管理面で有利となる。
【００９６】
次に、ハーフトーニングモジュール３４によって実行される誤差拡散処理の詳細について説明する。なお、本誤差拡散処理では、各画素をイエロ（Ｙ）成分、マゼンタ（Ｍ）成分、シアン（Ｃ）成分、ブラック（Ｋ）成分からなる濃度データとし、各成分を８ビット（２５６階調表現）で構成される多値画像データとして用いることとする。
【００９７】
（第１の実施の形態）
本第１の実施の形態では、複雑な閾値制御を閾値テーブルを用いて簡便に処理する画像処理方法を示す。閾値テーブルとは、各階調を決定するために必要な閾値が設定されたデータである。ここでは、カラーの画像データは、その各画素、各濃度成分（ＹＭＣＫ）が８ビット（階調値が０〜２５５）の多値データで表現されている。
【００９８】
カラーの画像データにおける任意の注目画素のＣ成分の濃度値ＣｔとＭ成分の濃度値Ｍｔは、原画像のＣ成分とＭ成分の濃度値をそれぞれＣ、Ｍとすると、次式で表される。ここで、ＣｅｒｒとＭｅｒｒは、それぞれＣ成分とＭ成分の注目画素に対して誤差拡散された値である。
【００９９】
Ct = C + Cerr
Mt = M + Merr
本第１の実施の形態におけるカラー画像の画像処理方法では、注目画素のＣ成分とＭ成分の各濃度値を用いて以下の手順で画像処理を行う。
【０１００】
１．Ｍ成分の濃度値Ｍtに基づいてＣ成分の誤差拡散で用いる閾値（Ｃthreshold）を求める。
【０１０１】
２．Ｃ成分の濃度値Ｃtと閾値（Ｃthrehosld）とを比較し、濃度値Ｃtの方が大きい場合はＣインクで出力を行う。
【０１０２】
３．Ｃ成分の濃度値Ｃtに基づいてＭ成分の誤差拡散で用いる閾値（Ｍthreshold）を求める。
【０１０３】
４．Ｍ成分の濃度値Ｍtと閾値（Ｍthrehosld）とを比較し、濃度値Ｍtの方が大きい場合はＭインクで出力を行う。
【０１０４】
上記の方法により、シアンとマゼンタを３値に量子化した場合のアルゴリズムを次式に示す。これにより、従来例と比べて処理を簡略化することができる。
【０１０５】
Ct = C + Cerr
Mt = M + Merr
Cout = 0
if( Ct > Threshold_Table1[Mt] )    Cout=1
if( Ct > Threshold_Table2[Mt] )    Cout=2
（Threshold_Table1[Mt]：Ｍ成分の濃度値Ｍｔの第１の閾値テーブル、Threshold_Table2[Mt]：Ｍ成分の濃度値Ｍｔの第２の閾値テーブル）
Mout = 0
if( Mt > Threshold_Table1[Ct] )    Mout=1
if( Mt > Threshold_Table2[Ct] )    Mout=2
（Threshold_Table1[Ct]：Ｃ成分の濃度値Ｃｔの第１の閾値テーブル、Threshold_Table2[Ct]：Ｃ成分の濃度値Ｃｔの第２の閾値テーブル）
しかしながら、本アルゴリズムでは、Ｃ成分及びＭ成分の出力を２値で行う場合には１つの閾値テーブルを参照し、３値で行う場合には２つの閾値テーブルを参照するというように、ｎ値で行う場合にはｎ−１個の閾値テーブルが必要となるため、より階調数の多い多値処理に対して準備するテーブルの数が多くなってしまう。
【０１０６】
また、閾値テーブルの数だけ濃度値との比較を行うので、その都度メモリ中に格納された閾値テーブルを参照する必要があり、処理速度も必然的に遅くなってしまう。特に、５値化の場合では必要な閾値テーブルが４つとなり、以下に示すアルゴリズムが必要となる。
【０１０７】
Ct = C + Cerr
Mt = M + Merr
Cout = 0
if( Ct > Threshold_Table1[Mt] )    Cout=1
if( Ct > Threshold_Table2[Mt] )    Cout=2
if( Ct > Threshold_Table3[Mt] )    Cout=3
if( Ct > Threshold_Table4[Mt] )    Cout=4
（Threshold_Table3[Mt]：Ｍ成分の濃度値Ｍｔの第３の閾値テーブル、Threshold_Table4[Mt]：Ｍ成分の濃度値Ｍｔの第４の閾値テーブル）
Mout = 0
if( Mt > Threshold_Table1[Ct] )    Mout=1
if( Mt > Threshold_Table2[Ct] )    Mout=2
if( Mt > Threshold_Table3[Ct] )    Mout=3
if( Mt > Threshold_Table4[Ct] )    Mout=4
（Threshold_Table3[Ct]：Ｃ成分の濃度値Ｃｔの第３の閾値テーブル、Threshold_Table4[Ct]：Ｃ成分の濃度値Ｃｔの第４の閾値テーブル）
次に、より階調数の多い画像処理形態においても高速処理が可能で、保持するテーブル情報のサイズをコンパクトにすることが可能な画像処理方法を示す。
【０１０８】
本第１の実施の形態における誤差拡散処理の対象となるのは、Ｃ成分とＭ成分の多値画像データであり、誤差拡散処理によって３値以上に多値化する場合を扱う。
【０１０９】
図６は、本発明の第１の実施の形態におけるマゼンタ濃度値に基づくシアンの量子化閾値と出力量子化値との関係の一例を示す図である。
【０１１０】
図６において、太線６０１、点線６０２、破線６０３、及び一点破線６０４は、２色以上を組み合わせて５値に誤差拡散を行う場合のマゼンタ濃度値Ｍｔに基づくシアンの量子化閾値である。同図中、太線６０１、点線６０２、破線６０３、及び一点破線６０４の各量子化閾値は、互いに変化傾向が極めて似ている。
【０１１１】
図７に、図６より複雑に閾値を設定して２色以上を組み合わせて５値に誤差拡散を行う場合のマゼンタ濃度値に基づくシアンの量子化閾値と出力量子化値との関係の他の例を示す。同図中、太線７０１、点線７０２、破線７０３、及び一点破線７０４の各量子化閾値は、図６と同様に、互いに変化傾向が極めて似ている。
【０１１２】
これらの量子化閾値は、互いに並行移動をすれば略一致するので、閾値テーブルは太線６０１，７０１のテーブルのみを保持すればよい。これにより、太線６０１，７０１の閾値に所定のオフセット量を加算・減算することで全テーブル（太線６０１〜一点破線６０４、太線７０１〜一点破線７０４）を保持したときと略同様の結果を得ることができる。
【０１１３】
次に、閾値に対して階調毎にオフセット量を与えることでテーブル数を削減する誤差拡散方法を示す。
【０１１４】
Ct = C + Cerr
Mt = M + Merr
Cth = Threshold_Table[Mt]
Mth = Threshold_Table[Ct]
（Cth：Ｍ成分の濃度値Ｍｔの閾値、Mth：Ｃ成分の濃度値Ｃｔの閾値）
Cout = 0
if( Ct > Cth +   0 )    Cout=1
if( Ct > Cth +  64 )    Cout=2
if( Ct > Cth + 128 )    Cout=3
if( Ct > Cth + 192 )    Cout=4
（０，６４，１２８，１９２：所定の値）
Mout = 0
if( Mt > Mth +   0 )    Mout=1
if( Mt > Mth +  64 )    Mout=2
if( Mt > Mth + 128 )    Mout=3
if( Mt > Mth + 192 )    Mout=4
（０，６４，１２８，１９２：所定の値）
上記方法によれば、閾値テーブル(Threshold_Table)を保持する数を最小で１つに低減できるので、誤差拡散処理を行う出力階調数が大きければ大きいほどより大きな効果が得られる。
【０１１５】
例えば、５値化の場合、通常必要な閾値テーブルサイズは２５６×４＝１０２４閾値であるのに対し、２５６閾値と１／４に低減することが可能である。
【０１１６】
更に、１７値化の場合を考えると、通常必要な閾値テーブルサイズは２５６×１６＝４０９６閾値であるのに対し、２５６閾値と１／１６に低減することが可能である。一般化すれば、ｎ値化に対して１／（ｎ−１）に低減することが可能であると云える。
【０１１７】
また、閾値テーブルを格納してある記憶媒体（ＲＯＭ、ＲＡＮ等）を参照する回数が１回で済むので、その分だけ処理が高速に行えるというメリットもある。
【０１１８】
次に、閾値を変調するという考え方ではなく、次式に示すうように量子化を行う濃度値に対して他の濃度成分値に基づいてオフセット量を与える（濃度値に変調を行う）という形でも実現可能である。これにより、上述した実施の形態と同様に、テーブルサイズ低減効果及び処理高速化効果が得られる。
【０１１９】
Ct = C + Cerr
Mt = M + Merr
Ct2 = Ct + Modulation_Table1[Mt]
Mt2 = Mt + Modulation_Table1[Ct]
（Modulation_Table1[Mt]：Ｍ成分の濃度値Ｍｔに基づく変調テーブル、Modulation_Table1[Ct]：Ｃ成分の濃度値Ｃｔの変調テーブル）
Cout = 0
if( Ct2 >  31 )    Cout=1
if( Ct2 >  95 )    Cout=2
if( Ct2 > 159 )    Cout=3
if( Ct2 > 223 )    Cout=4
（３１，９５，１５９，２２３：所定の値）
Mout = 0
if( Mt2 >  31 )    Mout=1
if( Mt2 >  95 )    Mout=2
if( Mt2 > 159 )    Mout=3
if( Mt2 > 223 )    Mout=4
（３１，９５，１５９，２２３：所定の値）
上記第１の実施の形態によれば、カラーの画像データに擬似中間調処理として誤差拡散処理を行うときは、ハーフトーニングモジュール３４により注目画素における、例えば、Ｍ成分の濃度値Ｍｔに基づいてＣ成分の誤差拡散処理で用いる閾値Ｃthrehosldを求め、閾値Ｃthrehosldに所定の値を加えた値ＣとＣ成分の濃度値Ｃｔとを比較するので、より階調数の多い画像処理形態においても、より複雑な閾値設定を簡便に行いつつ、高速処理が可能であり、更に保持するテーブル情報のサイズがコンパクトな誤差拡散処理が実現できる。
【０１２０】
（第２実施の形態）
上記第１の実施の形態では、各階調の閾値テーブル及び濃度値変調テーブルを共通で利用し、テーブル数を低減することでコンパクト、且つ高速な誤差拡散を実現したが、本第２の実施の形態では、各閾値テーブル及び濃度値変調テーブルそれ自体をコンパクトにした誤差拡散処理について説明する。
【０１２１】
図８は、本発明の第２の実施の形態におけるマゼンタ濃度値に基づくシアンの量子化閾値群と出力量子化値との関係の一例を示す図である。
【０１２２】
図８において、太線８０１、点線８０２、破線８０３、及び一点破線８０４は、２色以上を組み合わせて５値に誤差拡散を行う場合のマゼンタ濃度値Ｍｔに基づくシアンの量子化閾値群である。
【０１２３】
同図中、太線８０１はマゼンタ濃度値ＭｔがＭｔ＜６４の範囲でのシアンの量子化シアンの量子化閾値群であり、点線８０２はマゼンタ濃度値Ｍｔが６４≦Ｍｔ＜１２８の範囲でのシアンの量子化シアンの量子化閾値群である。また、破線８０３はマゼンタ濃度値Ｍｔが１２８≦Ｍｔ＜１９２の範囲でのシアンの量子化シアンの量子化閾値群であり、一点破線８０４はマゼンタ濃度値Ｍｔが１９２≦Ｍｔの範囲でのシアンの量子化シアンの量子化閾値群である。太線８０１、点線８０２、破線８０３、及び一点破線８０４の４つの閾値群は、互いに変化傾向が極めて似ている。
【０１２４】
図９に、図８より複雑に閾値を設定して２色以上を組み合わせて５値に誤差拡散を行う場合のマゼンタ濃度値Ｍｔに基づくシアンの量子化閾値群と出力量子化値との関係の他の例を示す。同図中、太線９０１、点線９０２、破線９０３、及び一点破線９０４の４つの閾値群は、図８と同様に、互いに変化傾向が極めて似ている。
【０１２５】
これらの量子化閾値群は、互いに並行移動をすれば略一致するので、閾値テーブル群は太線８０１，９０１のテーブルのみを保持すればよい。これにより、参照する側のマゼンタの濃度値Ｍｔを変調して太線８０１，９０１の閾値テーブルを参照することで全テーブル（太線８０１〜一点破線８０４、太線９０１〜一点破線９０４）を保持したときと略同等の結果を得ることができる。
【０１２６】
次に、他の色の濃度値を変調した後に閾値テーブルを参照することでテーブルのサイズを削減する誤差拡散方法を示す。
【０１２７】
Ct = C + Cerr
Mt = M + Merr
Ccnv = Convert_Table[Ct]（第１の変調濃度値）
Mcnv = Convert_Table[Mt]（第２の変調濃度値）
（Convert_Table[Ct]：Ｃ成分の濃度値Ｃｔに基づく変換テーブル、Convert_Table[Mt]：Ｍ成分の濃度値Ｍｔに基づく変換テーブル）
Cout = 0
if( Ct > Threshold_Table1[Mcnv] )    Cout=1
if( Ct > Threshold_Table2[Mcnv] )    Cout=2
if( Ct > Threshold_Table3[Mcnv] )    Cout=3
if( Ct > Threshold_Table4[Mcnv] )    Cout=4
（Threshold_Table1〜4[Mcnv]：Ｍ成分の濃度値Ｍｔに基づくＣの量子化閾値）
Mout = 0
if( Mt > Threshold_Table1[Ccnv] )    Mout=1
if( Mt > Threshold_Table2[Ccnv] )    Mout=2
if( Mt > Threshold_Table3[Ccnv] )    Mout=3
if( Mt > Threshold_Table4[Ccnv] )    Mout=4
（Threshold_Table1〜4[Ccnv]：Ｃ成分の濃度値Ｃｔに基づくＭの量子化閾値）
上記方法によれば、量子化を行う階調数が大きければ大きいほど、閾値テーブル(Threshold_Table)のサイズを小さく（ｎ値化の場合には約１／（ｎ−１））できるので、誤差拡散処理を行う出力階調数が大きければ大きいほどより大きな効果が得られる。
【０１２８】
例えば、５値化の場合、通常必要な閾値テーブルサイズは２５６×４＝１０２４閾値であるのに対し、２５６／（５−１）×４＝２５６閾値と１／４に低減することが可能である。
【０１２９】
更に、１７値化の場合を考えると、通常必要な閾値テーブルサイズは２５６×１６＝４０９６閾値であるのに対し、２５６／（１７−１）×１６＝２５６閾値と１／１６に低減することが可能である。一般化すれば、ｎ値化に対して１／（ｎ−１）に低減することが可能であると云える。
【０１３０】
また、本第２の実施の形態では、参照する側のマゼンタの濃度値を変調方法としてConvert_Table[Ct]を用い、Convert_Table[ X ] = X mod 64 で表される計算で予め求められた変調テーブルを用いているが、必ずしも上記の様に変調を行う必要は無く、どの様な手段で参照する側のマゼンタの濃度値を変調してもよい。
【０１３１】
例えば、上記Convert_Table[X]は、
if(  64 ＞ X        )    Convert_Table[X] = X
if( 128 ＞ X ≧  64 )    Convert_Table[X] = X - 64
if( 192 ＞ X ≧ 128 )    Convert_Table[X] = X - 128
if(        X ≧ 192 )    Convert_Table[X] = X - 192
の様に条件分岐で設定してもよいし、Convert_Table[X] = X & 0x003Fの様にビット操作で行ってもよい。また、必ずしも事前に求められたテーブルを参照する必要は無く、リアルタイムに計算・変調・変換を行って処理を行ってもよい。
【０１３２】
上記第２の実施の形態によれば、より階調数の多い画像処理形態においても、より複雑な閾値設定を簡便に行いつつ、保持するテーブル情報のサイズがコンパクトな誤差拡散処理が実現できる。
【０１３３】
（第３の実施の形態）
本第３の実施の形態では、上記第１の実施の形態と上記第２の実施の形態とを組み合わせた、より保持するテーブル情報のサイズがコンパクトな誤差拡散処理について説明する。
【０１３４】
図１０は、本発明の第３の実施の形態におけるマゼンタ濃度値に基づくシアンの量子化閾値と出力量子化値との関係の一例を示す図である。
【０１３５】
図１０において、太線１００１、点線、破線、及び一点破線は、２色以上を組み合わせて５値に誤差拡散を行う場合のマゼンタ濃度値Ｍｔに基づくシアンの量子化閾値である。同図中、太線１００１の閾値と他の点線、破線、一点破線で示された閾値群とを比較すると、互いに変化傾向が極めて似ている。
【０１３６】
図１１に、図１０より複雑に閾値を設定して２色以上を組み合わせて５値に誤差拡散を行う場合のマゼンタ濃度値Ｍｔに基づくシアンの量子化閾値と出力量子化値の関係の他の例を示す。同図中、太線１１０１の閾値と他の点線、破線、一点破線で示された閾値群を比較すると、互いに変化傾向が極めて似ている。
【０１３７】
これらの量子化閾値群は、互いに並行移動をすれば略一致するので、閾値テーブル群は太線１００１，１１０１のテーブルのみを保持すればよい。これにより、太線１００１，１１０１の閾値に所定のオフセット量を加算・減算し、更に参照する側のマゼンタの濃度値Ｍｔを変調して太線１００１，１１０１の閾値テーブルを参照することで、点線、破線、及び一点破線部分を含めた全閾値群を保持したときと略同等の結果を得ることが可能である。
【０１３８】
下記に、閾値に対して階調毎にオフセットを与え、かつ参照する側のマゼンタの濃度値を変調することでテーブル数及びテーブルサイズを削減する誤差拡散方法を示す。
【０１３９】
Ct = C + Cerr
Mt = M + Merr
Ccnv = Convert_Table[Ct]
Mcnv = Convert_Table[Mt]
Cth = Threshold_Table[Mcnv]
Mth = Threshold_Table[Ccnv]
Cout = 0
if( Ct > Cth +   0 )    Cout=1
if( Ct > Cth +  64 )    Cout=2
if( Ct > Cth + 128 )    Cout=3
if( Ct > Cth + 192 )    Cout=4
Mout = 0
if( Mt > Mth +   0 )    Mout=1
if( Mt > Mth +  64 )    Mout=2
if( Mt > Mth + 128 )    Mout=3
if( Mt > Mth + 192 )    Mout=4
上記方法によれば、閾値テーブル(Threshold_Table)を保持する数を最小で１つに低減することができ、同時に、量子化を行う階調数が大きければ大きいほど、閾値テーブル(Threshold_Table)のサイズを小さく（ｎ値化の場合に約１／（ｎ−１）に）できるので、誤差拡散処理を行う出力階調数が大きければ大きいほど本実施形態の効果は大きくなる。
【０１４０】
例えば５値化の場合には、必要な閾値テーブルサイズは本実施形態を適用しない例が２５６×４＝１０２４閾値であるのに対し、２５６／（５−１）＝６４閾値と、全体で１／１６に低減することが可能である。
【０１４１】
更に、１７値化の場合を考えると、必要な閾値テーブルサイズは本実施形態を適用しない例が２５６×１６＝４０９６閾値であるのに対し、２５６／（１７−１）＝１６閾値と、全体で１／２５６に低減することが可能である。一般化すれば、ｎ値化に対し、１／（ｎ−１）2に低減することが可能であると云える。
【０１４２】
また、上記第１の実施の形態と同様にテーブルを格納してある記憶媒体（ＲＯＭ、ＲＡＮ等）を参照する回数が１回で済むので、その分だけ処理が高速に行えるというメリットもある。また、第２の実施の形態で述べている様に、どの様な手段で参照する側のマゼンタの濃度値を変調してもよい。
【０１４３】
更に、閾値を変調するという考え方ではなく、次式に示すように量子化を行う濃度値に対して他の濃度成分値に基づいてオフセット量を与え（濃度値に変調を行う）、且つ参照する側のマゼンタの濃度値を変調するという形でも実現可能である。これにより、上記第１の実施の形態と同様に、テーブルサイズ低減効果及び処理高速化効果が同様に得られる。
【０１４４】
Ct = C + Cerr
Mt = M + Merr
Ccnv = Convert_Table[Ct]
Mcnv = Convert_Table[Mt]
Ct2 = Ct + Modulation_Table1[Mcnv]
Mt2 = Mt + Modulation_Table1[Ccnv]
Cout = 0
if( Ct2 >  31 )    Cout=1
if( Ct2 >  95 )    Cout=2
if( Ct2 > 159 )    Cout=3
if( Ct2 > 223 )    Cout=4
Mout = 0
if( Mt2 >  31 )    Mout=1
if( Mt2 >  95 )    Mout=2
if( Mt2 > 159 )    Mout=3
if( Mt2 > 223 )    Mout=4
上記第３の実施の形態によれば、より階調数の多い画像処理形態においても、より複雑な閾値設定を簡便に行いつつ、高速処理が可能であり、保持するテーブル情報のサイズがコンパクトな誤差拡散処理が実現できる。
【０１４５】
（第４の実施の形態）
上記第１〜第３の実施の形態では、より簡便な誤差拡散方式での改善について説明してきたが、本第４の実施の形態では従来例を改善する実施の形態を述べる。また、上記第１〜第３の実施の形態では、閾値テーブルサイズの低減効果と、サイズ低減に伴う処理速度の向上という効果について説明したが、本第４の実施の形態では主に処理の簡素化及びそれに伴う処理速度の向上の面について述べる。
【０１４６】
図１２は、本発明の第４の実施の形態におけるマゼンタ濃度値に基づくシアンの量子化閾値と出力量子化値との関係の一例を示す図である。
【０１４７】
図中の点線はそれぞれ量子化値の代表値である。ここで点線で囲まれた各領域１３０１〜１３１６を比較すると、閾値は非常に似た形状をしている。次式のアルゴリズムにすることで、量子化階調値がいくつであっても、比較文の数が変わらず、従来例に比べて非常に簡便に処理が行える。
【０１４８】
0004194285.tif 000004
本第４の実施の形態では、ｆ（ｘ），ｇ（ｙ），ｈ（ｚ），ｉ（ｗ）を次のように定義している。
【０１４９】
ｆ（ｘ）：ｘ以下の量子化代表値の量子化値の中で最大の値
ｇ（ｙ）：ｙ以下の量子化代表値の量子化値の中で最大の値
ｈ（ｚ）：ｚ．（ｚ以下の量子化代表値の中で最大の値）
ｉ（ｗ）：ｗ．（ｗ以下の量子化代表値の中で最大の値）
また、上記ｆ（ｘ），ｇ（ｙ），ｈ（ｚ），ｉ（ｗ）はそれぞれ演算・比較等によって用いてもよいし、事前にテーブルを作成してテーブル参照によって求めてもよい。また、複数の濃度値で同一のテーブルや演算・比較方法を共有してもよい。
【０１５０】
上記第４の実施の形態によれば、より階調数の多い画像処理形態においても、高速処理が可能であり、保持するテーブル情報のサイズがコンパクトな誤差拡散処理が実現できる。
【０１５１】
（第５の実施の形態）
上記第１〜第４の実施の形態では、シアン及びマゼンタの２色のみを扱ったが、本第５の実施の形態ではより多くの濃度値に対して本発明を適用した例を示す。
【０１５２】
シアンの大液滴濃インク（Ｃｌ）と大液滴淡インク（ｃｌ）と小液滴濃インク（Ｃｓ）と小液滴淡インク（ｃｌ）、及びマゼンタの大液滴濃インク（Ｍｌ）と大液滴淡インク（ｍｌ）と小液滴濃インク（Ｍｓ）と小液滴淡インク（ｍｓ）それぞれに対して上記第１の実施の形態を適用した場合のアルゴリズムを次式に示す。
【０１５３】
0004194285.tif 000005
0004194285.tif 000006
上記方法によって、複数色の染料濃度が異なり、吐出量が異なるインク群間でのより階調数の多い画像処理形態においても、より複雑な閾値設定を簡便に行いつつ、高速処理が可能であり、保持するテーブル情報のサイズがコンパクトな誤差拡散処理を実現できる。
【０１５４】
また、同様に、上記第２〜第４の実施の形態を上記複数色の染料濃度が異なり、吐出量が異なるインク群間に適用しても上記各実施の形態で説明した効果が得られる。
【０１５５】
また、上記第１〜第５の実施の形態では、複数の濃度成分のうちの少なくとも２つの濃度成分の濃度値の和に基づいて誤差拡散処理を行っているが、これに限らず、複数の濃度成分のうちの少なくとも２つの濃度成分の濃度値の最大値に基づいて当該誤差拡散処理を行っても同様の効果が得られる。
【０１５６】
上記第１〜第５の実施の形態では、インクの色をシアンとマゼンタの２色とし、染料濃度も濃・淡の２段階とし、吐出量も大・小の２段階としたが、本発明の効果はこれに限ることではなく、それぞれより大きな色数、量子化階調数、染料濃度階調数、吐出量階調数に対して本発明を適用しても同様の効果が得られることは云うまでもない。
【０１５７】
また、上記第１〜第５の実施の形態では、記録ヘッドＩＪＨから吐出される液滴をインクとし、インクタンクＩＴに収容される液体をインクとしていたが、これに限定されるものではなく、例えば、記録画像の定着性や耐水性を高めたり、その画像品質を高めたりするために記録媒体に対して吐出される処理液のようなものがインクタンクＩＴに収容されていてもよい。
【０１５８】
上記第１〜第５の実施の形態では、画像出力装置５２が、特に、インクジェット記録方式の中でもインク吐出を行うために利用するエネルギーとして熱エネルギーを発生する手段（例えば、電気熱変換体やレーザ光等）を備え、この熱エネルギーによりインクの状態変化を生起させる方式を用いることにより記録の高密度化、高精細化が達成できる。
【０１５９】
その代表的な構成や原理については、例えば、米国特許第４７２３１２９号明細書、同第４７４０７９６号明細書に開示されている基本的な原理を用いて行うものが好ましい。この方式はいわゆるオンデマンド型、コンティニュアス型のいずれにも適用可能であるが、特に、オンデマンド型の場合には、液体（インク）が保持されているシートや液路に対応して配置されている電気熱変換体に、記録情報に対応していて核沸騰を越える急速な温度上昇を与える少なくとも１つの駆動信号を印加することによって、電気熱変換体に熱エネルギーを発生せしめ、記録ヘッドの熱作用面に膜沸騰を生じさせて、結果的にこの駆動信号に１対１で対応した液体（インク）内の気泡を形成できるので有効である。この気泡の成長、収縮により吐出用開口を介して液体（インク）を吐出させて、少なくとも１つの滴を形成する。この駆動信号をパルス形状をすると、即時適切に気泡の成長収縮が行われるので、特に応答性に優れた液体（インク）の吐出が達成でき、より好ましい。
【０１６０】
このパルス形状の駆動信号としては、米国特許第４４６３３５９号明細書、同第４３４５２６２号明細書に記載されているようなものが適している。なお、上記熱作用面の温度上昇率に関する発明の米国特許第４３１３１２４号明細書に記載されている条件を採用すると、更に優れた記録を行うことができる。
【０１６１】
記録ヘッドの構成としては、上述の各明細書に開示されているような吐出口、液路、電気熱変換体の組み合わせ構成（直線状液流路又は直角液流路）の他に熱作用面が屈曲する領域に配置されている構成を開示する米国特許第４５５８３３３号明細書、米国特許第４４５９６００号明細書を用いた構成も本発明に含まれるものである。加えて、複数の電気熱変換体に対して、共通するスロットを電気熱変換体の吐出部とする構成を開示する特開昭５９−１２３６７０号公報や熱エネルギーの圧力波を吸収する開口を吐出部に対応させる構成を開示する特開昭５９−１３８４６１号公報に基づいた構成としてもよい。
【０１６２】
更に、記録装置が記録できる最大記録媒体の幅に対応した長さを有するフルラインタイプの記録ヘッドとしては、上述した明細書に開示されているような複数の記録ヘッドの組み合わせによってその長さを満たす構成や、一体的に形成された１個の記録ヘッドとしての構成のいずれでもよい。
【０１６３】
加えて、上記第１〜第５の実施の形態で説明した記録ヘッド自体に一体的にインクタンクが設けられたカートリッジタイプの記録ヘッドのみならず、装置本体に装着されることで、装置本体との電気的な接続や装置本体からのインクの供給が可能になる交換自在のチップタイプの記録ヘッドを用いてもよい。
【０１６４】
また、以上説明した記録装置の構成に、記録ヘッドに対する回復手段、予備的な手段等を付加することは記録動作を一層安定にできるので好ましい。これらを具体的に挙げれば、記録ヘッドに対してのキャッピング手段、クリーニング手段、加圧或いは吸引手段、電気熱変換体或いはこれとは別の加熱素子、又はこれらの組み合わせによる予備加熱手段等がある。また、記録とは別の吐出を行う予備吐出モードを備えることも安定した記録を行うために有効である。
【０１６５】
更に、記録装置の記録モードとしては黒色等の主流色のみの記録モードだけではなく、記録ヘッドを一体的に構成するか複数個の組み合わせによってでもよいが、異なる色の複色カラー、又は混色によるフルカラーの少なくとも１つを備えた装置とすることもできる。
【０１６６】
以上説明した実施の形態においては、インクが液体であることを前提として説明しているが、室温やそれ以下で固化するインクであっても、室温で軟化もしくは液化するものを用いてもよく、あるいはインクジェット方式ではインク自体を３０°Ｃ以上７０°Ｃ以下の範囲内で温度調整を行ってインクの粘性を安定吐出範囲にあるように温度制御するものが一般的であるから、使用記録信号付与時にインクが液状をなすものであればよい。
【０１６７】
加えて、積極的に熱エネルギーによる昇温をインクの固形状態から液体状態への状態変化のエネルギーとして使用せしめることで積極的に防止するため、又はインクの蒸発を防止するため、放置状態で固化し加熱によって液化するインクを用いてもよい。いずれにしても熱エネルギーの記録信号に応じた付与によってインクが液化し、液状インクが吐出されるものや、記録媒体に到達する時点では既に固化し始めるもの等のような、熱エネルギーの付与によって初めて液化する性質のインクを使用する場合も本発明は適用可能である。このような場合インクは、特開昭５４−５６８４７号公報あるいは特開昭６０−７１２６０号公報に記載されるような多孔質シート凹部、貫通孔に液状又は固形物として保持された状態で、電気熱変換体に対して対向するような形態としてもよい。本発明においては、上述した各インクに対して最も有効なものは、上述した膜沸騰方式を実行するものである。
【０１６８】
本発明に係る記録装置の形態としては、コンピュータ等の情報処理装置の画像出力端末として一体又は別体に設けられるものの他、リーダ等と組み合わせた複写装置、更には送受信機能を有するファクシミリ装置の形態を取るものであってもよい。
【０１６９】
なお、本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、及びプリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用してもよい。
【０１７０】
また、本発明の目的は、上述した各実施の形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体（又は記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成されることは云うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が上述した各実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７１】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した各実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは云うまでもない。
【０１７２】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは云うまでもない。
【０１７３】
以上詳細に説明したように、本発明によれば、より階調数の多い画像処理形態においても高速処理が可能で、保持するテーブル情報のサイズをコンパクトにすることができ、且つドット着弾位置ずれに対して良好な画像処理を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る画像処理装置を備える画像処理システムの概略構成を示すブロック図である。
【図２】図１におけるホスト装置５１と画像出力装置５２のハードウエア構成の概要を示すブロック図である。
【図３】図１における画像出力装置５２の代表的な実施の形態であるインクジェットプリンタの概略構成を示す斜視図である。
【図４】図１の画像処理システムで用いられるソフトウエアの構造を示すブロック図である。
【図５】図１の画像処理システムにおいて実行される画像処理を示すフローチャートである。
【図６】本発明の第１の実施の形態におけるマゼンタ濃度値に基づくシアンの量子化閾値と出力量子化値との関係の一例を示す図である。
【図７】本発明の第１の実施の形態におけるマゼンタ濃度値に基づくシアンの量子化閾値と出力量子化値との関係の他の例を示す図である。
【図８】本発明の第２の実施の形態におけるマゼンタ濃度値に基づくシアンの量子化閾値群と出力量子化値との関係の一例を示す図である。
【図９】本発明の第２の実施の形態におけるマゼンタ濃度値に基づくシアンの量子化閾値群と出力量子化値との関係の他の例を示す図である。
【図１０】本発明の第３の実施の形態におけるマゼンタ濃度値に基づくシアンの量子化閾値と出力量子化値との関係の一例を示す図である。
【図１１】本発明の第３の実施の形態におけるマゼンタ濃度値に基づくシアンの量子化閾値と出力量子化値との関係の他の例を示す図である。
【図１２】本発明の第４の実施の形態におけるマゼンタ濃度値に基づくシアンの量子化閾値と出力量子化値との関係の一例を示す図である。
【図１３】従来のカラー画像の画像処理方法を説明する説明図である。
【符号の説明】
１１  アプリケーションソフトウエア
２１  描画処理インターフェース
２２  スプーラ
３１−１，３１−２，・・・，３１−ｎ  装置固有描画機能
３３  色特性変換モジュール
３４  ハーフトーニング（中間調処理）モジュール
３５  プリントコマンド生成モジュール
５１  ホスト装置
５２  画像出力装置
５３  双方向インターフェース
５４  ドライバソフトウエア
１０００  処理部
１００１  ＭＰＵ
１００２  バス
１００３  ＤＲＡＭ
１００４  ブリッジ
１００５  グラフィックアダプタ
１００６  ＨＤＤコントローラ
１００７  キーボードコントローラ
１００８  通信Ｉ／Ｆ
２００１  表示装置
２００２  ＨＤＤ装置
２００３  キーボード
３００１  ＭＣＵ
３００３  制御回路部
３００４  ＲＯＭ
３００５  ＤＲＡＭ
３００６  通信Ｉ／Ｆ
３００７  ヘッドドライバ
３００８  ＣＲモータドライバ
３００９  ＬＦモータドライバ
３０１０  記録ヘッド
３０１１  キャリア（ＣＲ）モータ
３０１２  搬送（ＬＦ）モータ
【図１】
0004194285.tif 000007
【図２】
0004194285.tif 000008
【図３】
0004194285.tif 000009
【図４】
0004194285.tif 000010
【図５】
0004194285.tif 000011
【図６】
0004194285.tif 000012
【図７】
0004194285.tif 000013
【図８】
0004194285.tif 000014
【図９】
0004194285.tif 000015
【図１０】
0004194285.tif 000016
【図１１】
0004194285.tif 000017
【図１２】
0004194285.tif 000018
【図１３】
0004194285.tif 000019