(57)【特許請求の範囲】
【請求項１】
多値階調値で表現される画像データのピクセルを所定の閾値を基準として２値化或いは所定の複数値化するに際し、複数値化の対象ピクセルの変換後の値と元の値との誤差を求め、この誤差を他の未処理ピクセルに配分する誤差拡散処理を行うようにした画像処理方法において、対象画像データの第１のスキャンラインの上方に仮想ピクセルが複数ライン分配置された仮想イメージ領域を設け、該仮想イメージ領域内の仮想ピクセルの各濃度値を数％以下の互いに同一の低濃度値に設定し、前記対象画像データの第１のスキャンラインのピクセルの複数値化を行う前に前記仮想イメージ領域の各ラインの仮想ピクセルに対して誤差拡散処理を行い、前記仮想イメージ領域の最終ラインの各仮想ピクセルの誤差を前記第１のスキャンラインの対応するピクセルに配分するようにしたことを特徴とする画像処理方法。
【請求項２】
前記対象画像データがカラーのとき、前記対象画像データの第１のスキャンラインのピクセルのカラーに応じて前記仮想イメージ領域のライン数を変更するようにしたことを特徴とする請求項１に記載の画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多値画像データの各画素の階調値を２値などの所定の複数値で出力し、複数値化対象画素の誤差を他の画素に拡散する誤差拡散法を採る画像処理方法に関する。
【０００２】
【従来の技術】
従来、多くの階調をもつ画像データを２値化するための方法としてディザ法と誤差拡散方式が知られている。誤差拡散方式は、最も基本的には多階調のピクセル（画素）データを２値化する方法である。例えば、１ピクセルを２５６段階で表現するイメージを、１ピクセルを２段階（インクジェットプリンタ的に言えばドットを打つか打たないか）で表現するイメージに変換する方法である。
【０００３】
ピクセルの値が０〜１２７の場合、基本的には「０」にし、ピクセルの値が１２８〜２５５の場合、基本的には「２５５」にする。この「２５５」は一般的には「１」と表現する。このように、単純に１，０に変換だけすると、その変換したときの元になった数値と、変換された後の値との間には誤差が生じる。この誤差をそれぞれ２値化処理の対象となっているピクセルの周りのピクセルに振る即ち分配して、対象ピクセルの誤差を周りのピクセルに拡散している。
【０００４】
従来の誤差拡散法には、走査方向を右に向けて一方向に移動するときに、誤差の１０分の３を次（右）のピクセルに、１０分の７を真下のピクセルに分配する方法や、誤差の１６分の７を次（右）のピクセルに、１６分の５を真下のピクセルに、１６分の３を左下のピクセルに、１６分の１を右下のピクセルに分配する方式が知られている。
【０００５】
また、特開昭６３−１５５９５２号公報のように、注目画素の周辺画素に対する２値化による誤差の配分比率を一定とせず、画素処理とともに複数組の配分係数セットの中から選択して用いる方法や、更に複雑な方法をとる特開平８−２２８２８４号公報に記載されたものなど、多数の誤差拡散方式が提案されている。
【０００６】
上記従来の誤差拡散法では、画像階調値が低く且つ空間的変化が少ない場合、画像データの最初の数ラインの間は、誤差拡散処理の結果得られる誤差の蓄積が低速となり、どの画素即ちピクセルの階調値も閾値に達しないため、２値データ「１」の出力も行われないという現象が生じる。このため、各ピクセル間の誤差の累積が一様となり、一斉に閾値に達するため、ライン方向に特有の線が発生することがあった。
【０００７】
この問題を解消するため、特開平１０−３０４１９７号公報では、第１ライン目の画像データに誤差拡散処理を施すに際して、初期誤差データあるいは、初期値データを用いる方法が提案されている。また、特開平１１−８８６８４号には、画像データの第１のラインの濃度を複数回誤差拡散させてその値を第１スキャンライン上のピクセルに分配する方式が提案されている。
【０００８】
【発明が解決しようとする課題】
誤差拡散処理において、画像データの第１ラインの対象ピクセルに予め各ピクセル毎に決められた所定の初期誤差データを供給する方式は、コンピュータなどにより独自に生成した画像データの処理には適するがイメージスキャナなどで読み取った画像の処理には適さないという問題点があった。また、この方式では、適正な初期誤差データをどのようにして簡単に作成するのかという問題点があった。
【０００９】
また、全ラインの誤差データとして用いることが可能な全てのピクセルに共通の予め決められた初期値データを設定する方式は、イメージスキャナなどで読み取った画像の処理には適するが、独自に生成した画像の処理には適しない。また、画像データの第１ラインの濃度を複数回誤差拡散させる方式は、画像データの第１ラインが白紙ですべてのピクセルの値が「０」の場合、これを何回誤差拡散させても、適正な誤差データが蓄積できないという問題点があった。
本発明は、上記問題点を解決することを目的とするものである。
また本発明の他の目的は、カラー画像の２値化あるいは、所定の複数値化に適した画像処理方法を提供することである。
【００１０】
【課題を解決するための手段】
上記目的を達成するため、本発明は、多値階調値で表現される画像データのピクセルを所定の閾値を基準として２値化或いは所定の複数値化するに際し、複数値化の対象ピクセルの変換後の値と元の値との誤差を求め、この誤差を他の未処理ピクセルに配分する誤差拡散処理を行うようにした画像処理方法において、対象画像データの第１のスキャンラインの上方に仮想ピクセルが複数ライン分配置された仮想イメージ領域を設け、該仮想イメージ領域内の仮想ピクセルの各濃度を同一の所定の低濃度値に設定し、前記対象画像データの第１のスキャンラインのピクセルの複数値化を行う前に前記仮想イメージ領域の各ラインの仮想ピクセルに対して誤差拡散処理を行い、前記仮想イメージ領域の最終ラインの各仮想ピクセルの誤差を前記第１のスキャンラインの対応するピクセルに配分するようにしたものである。
また本発明は、前記対象画像データがカラーのとき、前記対象画像データの第１のスキャンラインのピクセルのカラーに応じて前記仮想イメージ領域のライン数を変更するようにしたものである。
【００１１】
【発明の実施の形態】
以下に本発明の実施の形態を添付したコンピュータの画像処理フローチャートを参照して詳細に説明する。
図１において、画像処理装置として機能するコンピュータのＣＰＵ（中央演算処理装置）とコンピュータに格納された画像処理プログラムとで構成される誤差拡散処理部（２）は、画像処理動作を開始すると、多値画像メモリ（４）から１ライン分の画像データ（６）を読み出し、画像データ（６）の次ラインの処理を開始し（ステップ１）、次ラインのスキャンラインが画像データ（６）の第１のスキャンラインか否か判断する（ステップ２）。
【００１２】
多値画像メモリ（４）に格納されている多値画像データ（６）は、１番目のラインから右方向にスキャンされ、ラインの右端に達すると、次に２番目のラインの右端から左方向にスキャンされ、画像データ（６）の各ラインの画素即ちピクセルは、右、左双方向から順番に交互にジグザグ状にスキャンされるように構成されている。多値画像データ（６）の上方には、仮想のイメージ領域（１２）が設定され、該領域（１２）内に１〜１００ライン程度の多階調値で表現される仮想ピクセル（１４）が配置されている。
【００１３】
この仮想イメージ領域（１２）の各ピクセルの濃度値は、数％以下の互いに同一の低濃度値に設定されている。前記仮想イメージ領域（１２）のピクセルデータは仮想イメージメモリ（１０）に格納することができるように構成されている。
誤差拡散処理部（２）がステップ２で肯定を判断すると、誤差バッファ（１６）の初期化を行う（ステップ３）。
【００１４】
この誤差バッファ（１６）の初期化は、仮想のイメージ領域（１２）の各仮想ピクセル（１４）に対して、第１ラインから順次、誤差拡散処理を、２値化結果を出力することなく最後まで行い、最終ライン（１８）の各ピクセル（２０）の誤差を誤差バッファ（１６）の初期値として設定する。
【００１５】
次に誤差拡散処理部（２）は、画像データ（６）の第１のスキャンライン（８）の誤差拡散処理を実行する（ステップ４）。画像データ（６）の第１のスキャンライン（８）の誤差拡散処理では、該ライン（８）の各注目ピクセルには、誤差バッファ（１６）から、仮想イメージ領域（１２）の最終ライン（１８）の対応する仮想ピクセル（２０）の誤差が分配される。次に、誤差拡散処理部（２）はステップ１に戻り、次ラインの処理を開始する。
【００１６】
誤差拡散処理部（２）は、ステップ２で否定を判断すると、次ラインの誤差拡散処理を実行する（ステップ５）。次に、誤差拡散処理部（２）は、画像データ（６）の全ラインの誤差拡散処理が終了したか否か判断し（ステップ６）、否定を判断すると、ステップ１に戻り、肯定を判断すると、画像処理動作を終了する（ステップ７）。
上記ステップ（４）（５）における誤差拡散処理は種々の方式が存するが、本実施形態では、次のような方式を採用している。尚、本発明は次に述べる誤差拡散法に特に限定されるものではない。
【００１７】
誤差拡散処理ステップ（４）（５）において、誤差拡散処理部（２）は、仮想イメージ領域（１２）あるいは、画像データ（６）から１ライン分のピクセルを読み出し、注目するピクセルの階調値を、順番に、左端から右端に向けて走査し、走査位置がラインの右端に達すると、今度は走査方向を反転させ、次ラインを、右端から左端に向けて左方向に走査する。誤差拡散処理部（２）はこの走査を繰り返し、画像データ（６）又は、仮想イメージ領域（１２）の終端に達するまで行う。
【００１８】
まず、右方向に画素を走査する場合について説明する。
図４（Ａ）は多値画像データの一部分であり、注目画素とその周辺の画素を示している。（Ｘ）は注目画素（ピクセル）である。注目画素（Ｘ）の後方即ち左隣の画素（Ｄ）は、既に２値化処理済みであり、階調値も既に決定済みである。注目画素（Ｘ）の真下の画素（Ｅ）とその前方即ち右隣の画素（Ｆ）に対しては、注目画素（Ｘ）の誤差の分配が行われない。そのため、画素（Ｅ）（Ｆ）の階調値には変更がない。
【００１９】
誤差拡散処理部(2)は、多値画像メモリ(4)から、あるいは仮想イメージメモリ(10)から処理する注目画素(X)の階調値を読み出し、誤差バッファメモリ(16)からその注目画素(X)に与える誤差値を読み出す。そしてその2つの値を加算し、それと閾値とを比較して、大きければ階調値「1」、そうでなければ階調値「0」とする。このように2値化した階調値は、2値画像メモリ(22)に出力する。
【００２０】
尚、仮想イメージ領域(12)における2値化した階調値は、2値画像メモリ(22)には出力しない。この2値化によって生じる元の階調値との誤差は、その2分の1を前方(右)の画素(G)に、残りの2分の1を後方(左)下の画素(H)に分配する。この各画素に分配する誤差値は、誤差バッファメモリ(16)に記録する。左方向に画素を走査する場合には、図4(b)において、誤差拡散処理部(2)は、多値画像メモリ(4)から、あるいは仮想イメージメモリ(10)から処理する注目画素(X)の階調値を読み出し、誤差バッファメモリ(16)からその注目画素(X)に与える誤差値を読み出す。そしてその2つの値を加算し、それと閾値とを比較して、大きければ階調値「1」、そうでなければ階調値「0」とする。
【００２１】
この2値化によって生じる元の階調値との誤差は、その2分の1を前方(左)の画素(G)に、残りの2分の1を後方(右)下の画素(H)に分配する。この各画素に分配する誤差値は、誤差バッファメモリ(16)に記録する。誤差拡散処理部（２）は、ステップ（４）（５）で上記誤差拡散処理を実行し、仮想イメージ領域（１２）部分の仮想ピクセルを除いて、処理したピクセルの２値化の結果を２値画像メモリ（２２）に出力する。
【００２２】
尚、カラーなど２色以上の色を扱う場合にも、図３に示すように、それぞれの色に対して、上記実施形態と同じように、画像データ（２４）の上方に仮想イメージ領域（２６）を設定し、この仮想イメージ領域（２６）のピクセルに対して誤差拡散処理を行い、画像データ（２４）の対象ピクセルの最初のスキャンラインの各ピクセルに誤差を配分する。
【００２３】
インクジェットプリンタでは、ＣＭＹＫの４原色のそれぞれの色に対しての処理を行う。その場合、各色に対して仮想イメージ領域（２６）が共通であると、最初のスキャンラインのピクセルに対しては、それぞれの色ごとに同じ値が与えられてしまうことになる。通常、誤差拡散法では、規則性があると、出力画像に好ましくない影響が出る可能性がある。そこで、本実施形態では、カラーを扱う場合は、それぞれの色ごとに誤差バッファ（１６）の状態を変更しておくために、仮想イメージ領域（２６）のラインの数を、各色ごとに変化を与えている。
【００２４】
画像データ（２４）の対象ピクセルの色がシアンＣの計算のときは、仮想イメージ領域（２６）のラインの数を８０本とし、仮想イメージ領域（２６）内の各ラインの全てのピクセルの濃度を、ピクセル濃度範囲の数％以下の同じ濃度に設定している。対象ピクセルの色がマゼンダＭの計算のときは、仮想イメージ領域（２６）のラインの数を７０、イエローＹのときは、ラインの数を１００、ブラックＫのときは、仮想イメージ領域（２６）のラインの数を９０としている。
【００２５】
本実施形態における仮想イメージ領域（２６）及びカラー画像データ（２４）に対する誤差拡散処理の方法は、上述した実施形態の誤差拡散処理部の方法と同一である。尚、本発明は２値化に特に限定されるものではなく、４値化その他の処理にも本発明を適用することができる。
【００２６】
【発明の効果】
本発明は上述の如く構成したので、簡単な処理により適正な初期誤差データを作成することができ良好な２値化等の複数値化した高品質の画像データを得ることができる。
【図面の簡単な説明】
【図１】本発明の処理を示すフローチャートである。
【図２】本発明の説明図である。
【図３】本発明の説明図である。
【図４】本発明の説明図である。
【図５】本発明の機能ブロック説明図である。
【符号の説明】
２      誤差拡散処理部
４      多値画像メモリ
６      画像データ
８      第１ライン
１０    仮想イメージメモリ
１２    仮想イメージ領域
１４    仮想ピクセル
１６    誤差バッファ
１８    最終ライン
２０    仮想ピクセル
２２    ２値画像メモリ
２４    画像データ
２６    仮想イメージ領域
【図１】
0004798860.tif 000002
【図２】
0004798860.tif 000003
【図３】
0004798860.tif 000004
【図４】
0004798860.tif 000005
【図５】
0004798860.tif 000006