【手続補正書】
【提出日】平成16年7月13日(2004.7.13)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】      明細書
【発明の名称】  画像処理装置、画像処理方法、印刷装置、画像処理プログラムおよび画像処理プログラムを記録した媒体
【特許請求の範囲】
【請求項１】  画像を複数の画素で多階調表現した画像データを入力し、各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により画像出力装置の出力画像を表現する画像データを生成する画像処理装置であって、
上記画像出力装置にて出力される画像の画質設定に関する画質設定情報の入力を受け付ける画質設定手段と、
入力された上記画質設定情報に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理手段とを具備することを特徴とする画像処理装置。
【請求項２】  上記変換処理手段は、上記画質設定手段にて入力された上記画質設定情報に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および拡散されてきた上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を当該処理区分外の未変換画素に拡散させながら画像データをまとめて変換することを特徴とする請求項１に記載の画像処理装置。
【請求項３】  上記画像出力装置は、設定された解像度にて画像を出力し、
上記解像度を取得する解像度取得手段が設けられ、
上記変換処理手段は、上記取得された解像度が高くなるにつれて上記出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じて一または二以上の画素数の近隣した画素を上記処理区分とすることを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】  上記変換処理手段は、二以上の画素数の近隣した画素をまとめてブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値に基づいて当該着目ブロックが所定のブロック処理条件を満たすか否かを判定する判定手段と、
この判定手段にて上記ブロック処理条件を満たすと判定されたとき、上記着目ブロックを上記着目された処理区分として同着目ブロック全体をまとめて上記画像データを変換する第一変換手段と、
上記判定手段にて上記ブロック処理条件を満たさないと判定されたとき、上記着目ブロック内の画素を区分した画素区分を上記処理区分として同画素の階調値および変換処理済みの画素における上記階調誤差に基づいて同画素区分の階調誤差を求めながら同着目ブロック内の画素の画像データを変換可能な第二変換手段とを有することを特徴とする請求項３に記載の画像処理装置。
【請求項５】  上記判定手段は、上記着目ブロック内の画素を区分してさらに小さいブロックとし、同ブロックのうち上記画像データを変換する着目ブロック内の各画素の階調値に基づいて当該着目ブロックが別の所定のブロック処理条件を満たすか否かを判定し、
上記第一変換手段は、上記判定手段にて上記別のブロック処理条件を満たすと判定されたとき、上記着目ブロックを上記着目された処理区分として同着目ブロック全体をまとめて上記画像データを変換することを特徴とする請求項４に記載の画像処理装置。
【請求項６】  上記変換処理手段は、異なる上記画質設定情報のそれぞれに対応する上記ブロック内の各画素の階調値の平均値が同じとなる条件のもとで、上記入力された画質設定情報がより高速を意味する情報になるほど上記処理区分の画素数を増やすことを特徴とする請求項４または請求項５に記載の画像処理装置。
【請求項７】  上記判定手段は、上記着目ブロック内の各画素の階調値の総和に基づいて当該着目ブロックが上記ブロック処理条件を満たすか否かを判定することを特徴とする請求項４〜請求項６のいずれかに記載の画像処理装置。
【請求項８】  上記判定手段は、上記階調値の総和が基準とする第一閾値以下またはより小のとき、または、同階調値の総和が同第一閾値より大きい別の基準の第二閾値以上またはより大のとき、上記着目ブロックが上記ブロック処理条件を満たすと判定するとともに、上記画質設定情報がより高速を意味する情報であるほど同第一閾値と第二閾値との差を小さくすることを特徴とする請求項７に記載の画像処理装置。
【請求項９】  上記画像出力装置は、設定された解像度にて画像を出力し、
上記解像度を取得する解像度取得手段が設けられ、
上記変換処理手段は、異なる上記解像度のそれぞれに対応する上記ブロック内の各画素の階調値の平均値が同じとなる条件のもとで、上記取得された解像度が高くなるにつれて上記出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じて一または二以上の画素数の近隣した画素を上記処理区分とすることを特徴とする請求項４〜請求項８のいずれかに記載の画像処理装置。
【請求項１０】  上記画像出力装置は、複数の要素色を使用して画像を出力し、
上記変換処理手段は、上記複数の要素色別に、上記要素色の濃さに応じて一または二以上の画素数の近隣した画素を上記処理区分とするとともに上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換することを特徴とする請求項１〜請求項９のいずれかに記載の画像処理装置。
【請求項１１】  画像を複数の画素で多階調表現した画像データを入力して複数の要素色別に各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により表現することにより、同複数の要素色を使用して画像を出力する画像出力装置の出力画像を表現する画像データを生成する画像処理装置であって、
上記要素色の濃さに応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理手段を具備することを特徴とする画像処理装置。
【請求項１２】  上記変換処理手段は、上記複数の要素色の中で相対的に薄い要素色に対応する上記処理区分の画素数を同複数の要素色の中で相対的に濃い要素色に対応する上記処理区分の画素数以上とすることを特徴とする請求項１０または請求項１１に記載の画像処理装置。
【請求項１３】  画像を複数の画素で多階調表現した画像データを入力して各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により表現することにより、設定された解像度にて画像を出力する画像出力装置の出力画像を表現する画像データを生成する画像処理装置であって、
上記解像度を取得する解像度取得手段と、
取得された上記解像度が高くなるにつれて上記出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理手段とを具備することを特徴とする画像処理装置。
【請求項１４】  画像を複数の画素で多階調表現した画像データを入力し、各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により画像出力装置の出力画像を表現する画像データを生成する画像処理方法であって、
上記画像出力装置にて出力される画像の画質設定に関する画質設定情報の入力を受け付ける画質設定工程と、
入力された上記画質設定情報に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理工程とを具備することを特徴とする画像処理方法。
【請求項１５】  画像を複数の画素で多階調表現した画像データを入力して複数の要素色別に各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により表現することにより、同複数の要素色を使用して画像を出力する画像出力装置の出力画像を表現する画像データを生成する画像処理方法であって、
上記要素色の濃さに応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理工程を具備することを特徴とする画像処理方法。
【請求項１６】  画像を複数の画素で多階調表現した画像データを入力して各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により表現することにより、設定された解像度にて画像を出力する画像出力装置の出力画像を表現する画像データを生成する画像処理方法であって、
上記解像度を取得する解像度取得工程と、
取得された上記解像度が高くなるにつれて上記出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理工程とを具備することを特徴とする画像処理方法。
【請求項１７】  画像を複数の画素で多階調表現した画像データを入力して各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により表現した画像データに変換し、変換後の画像データに基づく画像を印刷する印刷装置であって、
上記印刷する画像の画質設定に関する画質設定情報の入力を受け付ける画質設定手段と、
入力された上記画質設定情報に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理手段と、
上記変換された画像データに基づく画像を印刷する印刷手段とを具備することを特徴とする印刷装置。
【請求項１８】  画像を複数の画素で多階調表現した画像データを入力して複数の要素色別に各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により表現した画像データに変換し、同複数の要素色を使用して変換後の画像データに基づく画像を印刷する印刷装置であって、
上記要素色の濃さに応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理手段と、
上記変換された画像データに基づく画像を印刷する印刷手段とを具備することを特徴とする印刷装置。
【請求項１９】  画像を複数の画素で多階調表現した画像データを入力して各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により表現した画像データに変換し、変換後の画像データに基づく画像を設定された解像度にて印刷する印刷装置であって、
上記解像度を取得する解像度取得手段と、
取得された上記解像度が高くなるにつれて上記出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理手段と、
上記変換された画像データに基づく画像を印刷する印刷手段とを具備することを特徴とする印刷装置。
【請求項２０】  画像を複数の画素で多階調表現した画像データを入力し、各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により画像出力装置の出力画像を表現する画像データを生成する機能をコンピュータに実現させる画像処理プログラムであって、
上記画像出力装置にて出力される画像の画質設定に関する画質設定情報の入力を受け付ける画質設定機能と、
入力された上記画質設定情報に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理機能とを実現させることを特徴とする画像処理プログラム。
【請求項２１】  画像を複数の画素で多階調表現した画像データを入力して複数の要素色別に各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により表現することにより、同複数の要素色を使用して画像を出力する画像出力装置の出力画像を表現する画像データを生成する機能をコンピュータに実現させる画像処理プログラムであって、
上記要素色の濃さに応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理機能を実現させることを特徴とする画像処理プログラム。
【請求項２２】  画像を複数の画素で多階調表現した画像データを入力して各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により表現することにより、設定された解像度にて画像を出力する画像出力装置の出力画像を表現する画像データを生成する機能をコンピュータに実現させる画像処理プログラムであって、
上記解像度を取得する解像度取得機能と、
取得された上記解像度が高くなるにつれて上記出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理機能とを実現させることを特徴とする画像処理プログラム。
【請求項２３】  上記請求項２０〜請求項２２のいずれかに記載の画像処理プログラムを記録した媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置、画像処理方法、印刷装置、画像処理プログラムおよび画像処理プログラムを記録した媒体に関する。
【０００２】
【従来の技術】
従来、画像を印刷する際には、画像をドットマトリクス状の画素で多階調表現した画像データを入力し、誤差拡散法により、各画素の階調誤差を他の未変換画素に拡散させながら各画素に対応してドット形成の有無により表現した画像データに変換し、変換した画像データをプリンタに対して出力する処理を行っている。プリンタでは、設定された解像度にて、変換された画像データに基づく画像を印刷する。同誤差拡散法によると、誤差が生じないため画質はよい反面、誤差を算出して割り振っていく際の演算処理に時間がかかるため、２×２画素をまとめてブロックとし、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させながら同着目ブロック内の画素の画像データをまとめて変換するブロック単位処理が行われている。同ブロック単位処理によると、画像データを変換する処理を高速化することができるものの、１画素単位で変換する場合と比べて画像の分解能は低下し、画質が低下することになる。
【０００３】
そこで、画像の中でブロック単位の変換処理を行っても高画質を維持可能である高明度および低明度の領域を所定のブロック処理条件が成立する領域として設定し、同条件を満たすか否かを着目ブロック内の画素全ての階調値と複数段階の閾値とを比較することにより判定している。そして、同条件を満たすと判定したとき着目ブロック内の画素の画像データをまとめて変換する処理を行い、同条件を満たさないと判定したとき着目ブロック内で画素別に画像データを変換する処理を行っている。その結果、画像データのうちドット形成密度が非常に小さいか非常に大きいことにより分解能の低下が目立たず高画質を維持可能な領域のみ、ドットはブロック単位で形成され、画像データの変換処理はある程度高速化されながら高画質が維持される。
【０００４】
【発明が解決しようとする課題】
上述した従来の技術においては、ブロック処理条件の判定処理は一律に行われるため、高画質で画像を印刷させる必要がなくても、処理速度を上げて画像を印刷させることができなかった。その結果、印刷された画像を得るまでに必要以上に時間がかかると感じることがあった。そこで、このような場合に画像データの変換処理を高速化させ、印刷された画像を素早く入手したいという希望があった。
本発明は、上記課題にかんがみてなされたもので、画像を複数の画素で多階調表現した画像データから階調誤差を用いてドット形成の有無により表現した画像データに変換する処理を効率よく行い、多くの画像データ変換処理を行うときに総合的にみて変換後の画像データをより早く得ることが可能な画像処理装置、画像処理方法、印刷装置、画像処理プログラムおよび画像処理プログラムを記録した媒体の提供を目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかる発明は、画像を複数の画素で多階調表現した画像データを入力し、各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により画像出力装置の出力画像を表現する画像データを生成する画像処理装置であって、上記画像出力装置にて出力される画像の画質設定に関する画質設定情報の入力を受け付ける画質設定手段と、入力された上記画質設定情報に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理手段とを具備する構成としてある。
【０００６】
本画像処理装置のユーザは、画質設定手段により、画像出力装置にて出力される画像の画質設定に関する画質設定情報の入力を行うことができる。変換処理手段は、入力された画質設定情報に応じて一または二以上の画素数の近隣した画素を処理区分とし、画像データを変換する着目された処理区分内の各画素の階調値と変換処理済みの画素における階調誤差とに基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する。すると、画像出力装置からは、画質設定情報が反映された処理区分にて階調誤差を用いて変換された画像データに基づく画像が出力される。
すなわち、画像出力装置に画像を出力させるにあたり、入力された画質設定情報に合った適切な大きさの処理区分にて画像データ変換処理（以下、単に変換処理とも記載）を行うことが可能となるので、階調誤差を用いて画像データを変換する処理を効率よく行うことができ、種々の画質設定にて多くの変換処理を行うときに総合的にみて変換後の画像データをより早く得ることが可能となる。
また、請求項２にかかる発明は、上記変換処理手段は、上記画質設定手段にて入力された上記画質設定情報に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および拡散されてきた上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を当該処理区分外の未変換画素に拡散させながら画像データをまとめて変換する構成としてある。
本画像処理装置のユーザは、画質設定手段により、画像出力装置にて出力される画像の画質設定に関する画質設定情報の入力を行うことができる。変換処理手段は、入力された画質設定情報に応じて一または二以上の画素数の近隣した画素を処理区分とし、画像データを変換する着目された処理区分内の各画素の階調値と拡散されてきた階調誤差（以下、拡散誤差とも記載）とに基づいて、同着目された処理区分全体の階調誤差を当該処理区分外の未変換画素に拡散させながら画像データをまとめて変換する。すると、画像出力装置からは、画質設定情報が反映された処理区分にて誤差拡散法を用いて変換された画像データに基づく画像が出力される。
すなわち、画像出力装置に画像を出力させるにあたり、入力された画質設定情報に合った適切な大きさの処理区分にて画像データ変換処理を行うことが可能となるので、誤差拡散法を用いて画像データを変換する処理を効率よく行うことができ、種々の画質設定にて多くの変換処理を行うときに総合的にみて変換後の画像データをより早く得ることが可能となる。
【０００７】
なお、上記変換処理手段は、上記入力された画質設定情報がより高速を意味する情報になるほど上記処理区分の画素数を増やしてもよい。すると、画質設定情報がより高速を意味する情報になるほど処理区分は大きくなり、画像データの変換処理は高速化される。
【０００８】
ここで、本発明を適用可能な画像出力装置は様々考えられ、例えば、画像データを入力して印刷を行うプリンタであってもよいし、表示により出力するディスプレイであってもよい。
変換前の画像データは画像を複数の画素で多階調表現したデータであればよく、複数の色データから構成されるカラー画像データであってもよいし、単独の色データから構成されるモノクロ画像データであってもよい。また、同画像データは様々な階調数とすることができ、例えば、２５６階調、１００階調等とすることができる。さらに、同画像データから階調誤差を用いてドットを形成する際、二値化によりドットを形成してもよいし、例えば大中小のドットを形成するために二値よりも大きい多値化によりドットを形成してもよい。
【０００９】
ところで、画像出力装置が設定された解像度にて画像を出力する場合、解像度を取得する解像度取得手段を設け、変換処理手段は、上記取得された解像度が高くなるにつれて上記出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じて一または二以上の画素数の近隣した画素を上記処理区分としてもよい。すると、出力画像上に占める処理区分の面積は、解像度が高くなるにつれて大きくならないことになるので、高い解像度であるときの画質は最低でも低い解像度における最高画質となる。画像データの変換処理は解像度が高くなるほど時間がかかるため、ユーザは高解像度であるときの画質は低解像度における画質と同等以上であることを期待する。従って、高い解像度における画質が低い解像度における画質よりも低くなるような意味のない変換処理が行われなくなる。
【００１０】
画像データをまとめて変換する画素から構成される処理区分は、複数の画素から構成されるのみならず、１画素のみから構成されてもよく、この場合であっても本発明に含まれる。また、同じ画像データに対して処理区分の画素数を変化させながら変換処理を行ってもよい。その一例として、請求項４にかかる発明のように、変換処理手段に判定手段と第一変換手段と第二変換手段を設けてもよい。ここで、判定手段は、二以上の画素数の近隣した画素をまとめてブロックとし、画像データを変換する着目ブロック内の各画素の階調値（以下、着目ブロックの階調値とも記載）に基づいて着目ブロックが所定のブロック処理条件を満たすか否かを判定する。ブロック処理条件が満たされると判定されたとき、第一変換手段が着目ブロック内の各画素の階調値と拡散誤差とに基づいて同着目ブロック全体の階調誤差を求めながら同着目ブロック内の画素の画像データ（以下、着目ブロックの画像データとも記載）をまとめて変換する。言い換えると、画像データの変換処理はブロック単位で行われることになる。
一方、ブロック処理条件が満たされないと判定されたとき、第二変換手段が着目ブロック内の画素を区分した画素区分別に同画素の階調値と拡散誤差とに基づいて同画素区分の階調誤差を求めながら同着目ブロックの画像データを変換可能である。言い換えると、画像データの変換処理はブロックよりも小さな画素単位で行われることになる。
【００１１】
すなわち、ブロック単位で画像データの変換処理を行っても高画質を維持可能な領域をブロック処理条件が成立する領域として設定すれば、画像データのうち高画質を維持可能な領域のみドットがブロック単位で形成され、画質は低下せずに変換処理が高速化される。また、画質設定情報に応じて二以上の画素をブロックとするようにすれば、画質設定情報に応じてブロックは適切な大きさとされるので、より効率的に変換処理を行うことができる。
ここで、着目ブロック内を区分する画素は、１画素としてもよいし、複数の画素としてもよい。画素区分を１画素単位とすると、ブロック処理条件が満たされないときに１画素単位という簡易な処理にて画像データの変換処理が行われるようになり、簡易な構成にて高画質を維持しながら変換処理をさらに高速化させることができる。また、画素区分は着目ブロック内の画素を均等に区分したものであってもよいし、着目ブロック内の画素を不均等に区分したものであってもよい。
なお、本発明にいうブロックをそのまま処理区分に対応させる考え方を採用してもよい。この場合、処理区分内の画素を区分した画素区分別に同画素区分の階調誤差を求めながら着目された処理区分内の画素の画像データを変換可能とすればよい。
【００１２】
さらに、請求項５にかかる発明のように、上記判定手段は、上記着目ブロック内の画素を区分してさらに小さいブロックとし、同ブロックのうち上記画像データを変換する着目ブロック内の各画素の階調値に基づいて当該着目ブロックが別の所定のブロック処理条件を満たすか否かを判定し、上記第一変換手段は、上記判定手段にて上記別のブロック処理条件を満たすと判定されたとき、上記着目ブロックを上記着目された処理区分として同着目ブロック全体をまとめて上記画像データを変換する構成としてもよい。すなわち、きめ細やかに処理区分の大きさを切り替えることが可能となり、画像データの変換処理はさらに小さいブロック単位でも行われるようになる。
なお、さらに小さいブロック内の画素を区分してさらに小さいブロックとするように、さらに小さいブロックを複数段階設けてもよい。
【００１３】
上記変換処理手段は、異なる上記画質設定情報のそれぞれに対応する上記ブロック内の各画素の階調値の平均値が同じとなる条件のもとで、上記入力された画質設定情報がより高速を意味する情報になるほど上記処理区分の画素数を増やす構成としてもよい。すなわち、異なる画質設定情報のそれぞれに対応するブロックの階調値の平均値が同じとなる条件のもとで、画質設定情報がより高速を意味する情報になるほど処理区分は大きくなり、変換処理は高速化される。
【００１４】
上記判定手段は、上記着目ブロック内の各画素の階調値の総和に基づいて当該着目ブロックが上記ブロック処理条件を満たすか否かを判定する構成としてもよい。すなわち、着目ブロックの階調値の総和を求めるだけで上記判定を行うことができる。なお、同判定手段は、着目ブロックの階調値の平均に基づいてブロック処理条件を満たすか否かを判定してもよい。ここで、着目ブロックの階調値の平均は同階調値の総和を着目ブロック内の画素数で除したものであるので、同階調値の平均を求めて判定を行うことも請求項７にかかる発明に含まれることになる。
【００１５】
上記判定手段は、上記階調値の総和が基準とする第一閾値以下またはより小のとき、または、同階調値の総和が同第一閾値より大きい別の基準の第二閾値以上またはより大のとき、上記着目ブロックが上記ブロック処理条件を満たすと判定するとともに、上記画質設定情報がより高速を意味する情報であるほど同第一閾値と第二閾値との差を小さくする構成としてもよい。すなわち、着目ブロックの階調値の総和が第一閾値以下またはより小となるような階調値の小さい領域や、同総和が第二閾値以上またはより大となるような階調値の大きい領域では、ブロック単位で画像データの変換処理が行われる。例えば、階調値が小さいほどドットの形成密度を小さくさせる場合、ブロック内でドットが形成されないために分解能の低下が目立たないドットの形成密度の小さい領域や、ブロック内で全てのドットが形成されるために分解能の低下が目立たないドットの形成密度の大きい領域で、ドットはブロック単位で形成されるので、高画質を維持しながら変換処理を高速化させることができる。また、画質設定が高速になるほど、第一閾値と第二閾値との差は小さくなり、画像データのとりうる階調領域のうちブロック単位で変換処理が行われる領域が大きくなるので、変換処理は高速化される。
【００１６】
ところで、ブロック処理条件に応じて処理区分を変更する際、上記変換処理手段は、異なる解像度のそれぞれに対応するブロック内の各画素の階調値の平均値が同じとなる条件のもとで、上記取得された解像度が高くなるにつれて出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じて一または二以上の画素数の近隣した画素を処理区分としてもよい。すると、出力画像上に占める処理区分の面積は、異なる解像度のそれぞれに対応するブロックの階調値の平均値が同じとなる条件のもとで解像度が高くなるにつれて大きくならないことになる。
【００１７】
上記画像出力装置が複数の要素色を使用して画像を出力する場合、変換処理手段は、複数の要素色別に、同要素色の濃さに応じて一または二以上の画素数の近隣した画素を上記処理区分とするとともに上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換してもよい。すると、画像出力装置からは、要素色の濃さが反映された処理区分にて階調誤差を用いて変換された画像データに基づく画像が出力される。
【００１８】
むろん、上述した画質設定手段が設けられていない画像処理装置であっても、同様のことが言える。そこで、請求項１１にかかる発明は、画像を複数の画素で多階調表現した画像データを入力して複数の要素色別に各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により表現することにより、同複数の要素色を使用して画像を出力する画像出力装置の出力画像を表現する画像データを生成する画像処理装置であって、上記要素色の濃さに応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理手段を具備する構成としてある。すなわち、出力画像は、要素色の濃さが反映された処理区分にて階調誤差を用いて変換された画像データに基づく画像とされる。
また、画像を複数の画素で多階調表現した画像データを入力して複数の要素色別に各画素の階調誤差を他の未変換画素に拡散させながらドット形成の有無により表現することにより、同複数の要素色を使用して画像を出力する画像出力装置の出力画像を表現する画像データを生成する画像処理装置であって、上記要素色の濃さに応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および拡散されてきた上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を当該処理区分外の未変換画素に拡散させながら画像データをまとめて変換する変換処理手段を具備する構成としてもよい。すなわち、出力画像は、要素色の濃さが反映された処理区分にて誤差拡散法を用いて変換された画像データに基づく画像とされる。
例えば、目立たない要素色について必要以上に小さい処理区分にしないようにすれば、画像データのうち目立たない要素色の画像データについては比較的大きい処理区分単位でドットが形成され、画質は低下せずに変換処理が高速化される。
なお、請求項２〜９に記載された構成を請求項１１にかかる画像処理装置に対応させることも可能である。
【００１９】
ここで、上記変換処理手段は、上記複数の要素色の中で相対的に薄い要素色に対応する上記処理区分の画素数を同複数の要素色の中で相対的に濃い要素色に対応する上記処理区分の画素数以上とする構成としてもよい。相対的に薄い要素色に対応する処理区分は濃い要素色に対応する処理区分と同じ画素数かそれより多い画素数とされるが、薄い要素色は目立たないため、画質は低下せずに変換処理が高速化される。
【００２０】
ところで、画像出力装置が設定された解像度にて画像を出力し、解像度を取得する解像度取得手段が設けられている場合、画質設定手段を設けない構成としてもよい。そこで、請求項１３にかかる発明は、画像を複数の画素で多階調表現した画像データを入力して各画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドット形成の有無により表現することにより、設定された解像度にて画像を出力する画像出力装置の出力画像を表現する画像データを生成する画像処理装置であって、上記解像度を取得する解像度取得手段と、取得された上記解像度が高くなるにつれて上記出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および変換処理済みの画素における上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を求めながら画像データをまとめて変換する変換処理手段とを具備する構成としてある。
また、画像を複数の画素で多階調表現した画像データを入力して各画素の階調誤差を他の未変換画素に拡散させながらドット形成の有無により表現することにより、設定された解像度にて画像を出力する画像出力装置の出力画像を表現する画像データを生成する画像処理装置であって、上記解像度を取得する解像度取得手段と、取得された上記解像度が高くなるにつれて上記出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じて一または二以上の画素数の近隣した画素を処理区分とし、上記画像データを変換する着目された処理区分内の各画素の階調値および拡散されてきた上記階調誤差に基づいて、同着目された処理区分全体の階調誤差を当該処理区分外の未変換画素に拡散させながら画像データをまとめて変換する変換処理手段とを具備する構成としてもよい。
すなわち、出力画像上に占める処理区分の面積は、解像度が高くなるにつれて大きくならないことになるので、高解像度であるときの画質は最低でも低解像度における最高画質となる。従って、高解像度における画質が低解像度における画質よりも低くなるような意味のない変換処理が行われなくなる。
なお、請求項２〜１０、１２に記載された構成を請求項１３にかかる画像処理装置に対応させることも可能である。
【００２１】
ところで、上述した画像処理装置は、単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としては各種の態様を含むものであって、適宜、変更可能である。
また、上述した画像処理を行う際の手法は、所定の手順に従って処理を進めていくうえで、その根底にはその手順に発明が存在するということは当然である。従って、本発明は方法としても適用可能であり、請求項１４〜１６にかかる発明においても、基本的には同様の作用となる。
さらに、変換された画像データに基づく画像を印刷する印刷手段を備える印刷装置としても適用可能であり、請求項１７〜１９にかかる発明においても、基本的には同様の作用となる。
【００２２】
本発明を実施しようとする際に、画像処理装置にて所定のプログラムを実行させる場合もある。さらに、同プログラムを記録した媒体が流通し、同記録媒体からプログラムを適宜コンピュータに読み込むことが考えられる。そこで、そのプログラムやプログラムを記録したコンピュータ読み取り可能な記録媒体としても適用可能であり、請求項２０〜２３にかかる発明においても、基本的には同様の作用となる。
むろん、請求項２〜１０、１２に記載された構成を上記方法や印刷装置やプログラムやプログラムを記録した媒体に対応させることも可能であることは言うまでもない。
ここで、上記記録媒体は、磁気記録媒体や光磁気記録媒体の他、今後開発されるいかなる記録媒体であってもよい。また、一部がソフトウェアであって、一部がハードウェアで実現される場合においても本発明の思想において全く異なるものではなく、一部を記録媒体上に記録しておいて必要に応じて適宜読み込む形態のものも含まれる。さらに、一次複製品、二次複製品などの複製段階については全く問う余地なく同等である。
【００２３】
【発明の効果】
以上説明したように、請求項１、１１、１３〜２３にかかる発明によれば、画像を複数の画素で多階調表現した画像データから階調誤差を用いてドット形成の有無により表現した画像データに変換する処理を効率よく行い、多くの画像データ変換処理を行うときに総合的にみて変換後の画像データをより早く得ることが可能となる。
請求項２にかかる発明によれば、画像を複数の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理を効率よく行い、多くの画像データ変換処理を行うときに総合的にみて変換後の画像データをより早く得ることが可能となる。
請求項３にかかる発明によれば、意味のない画像データ変換処理が行われなくなり、種々の解像度にて多くの画像データ変換処理を行うときに総合的にみて変換後の画像データをさらに早く得ることが可能となる。
請求項４にかかる発明によれば、高画質を維持しながら処理速度をさらに向上させることが可能となる。
【００２４】
請求項５にかかる発明によれば、きめ細やかに処理区分の大きさが切り替わるので、高画質を維持しながら処理速度をさらに向上させることが可能となる。
請求項６にかかる発明によれば、さらに効率的に画像データの変換処理を行うことができる。
請求項７にかかる発明によれば、簡易な構成でブロック処理条件を満たすか否かを判定することが可能となる。
請求項８にかかる発明によれば、簡易な構成で画質設定がより高速になるほど画像データの変換処理を高速化させることができる。
【００２５】
請求項９にかかる発明によれば、ブロック処理条件に応じて処理区分を変更する場合に、意味のない画像データ変換処理が行われなくなり、種々の解像度にて多くの画像データ変換処理を行うときに総合的にみて変換後の画像データをさらに早く得ることが可能となる。
請求項１０にかかる発明によれば、高画質を維持しながら処理速度をさらに向上させることが可能となり、多くの画像データ変換処理を行うときに総合的にみて変換後の画像データをさらに早く得ることが可能となる。
請求項１２にかかる発明によれば、高画質を維持しながら処理速度をさらに向上させる構成例を提供することができる。
【００２６】
【発明の実施の形態】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）画像処理装置の構成の概略：
（２）画像処理装置の各種手段の構成：
（３）画像処理装置が行う処理の概略：
（４）ブロック単位の画像データ変換処理の説明：
（５）画像処理装置が行う処理の詳細：
（６）第二の実施形態：
（７）第三の実施形態：
（８）第四の実施形態：
（９）その他の変形例：
【００２７】
（１）画像処理装置の構成の概略：
図１は、本発明の第一の実施形態にかかる画像処理装置を含む印刷装置（広義の印刷装置）１００の概略構成を示している。本印刷装置１００は、本発明にいう画像処理装置となるパーソナルコンピュータ（ＰＣ）１０と、画像出力装置であるカラー印刷可能なインクジェットプリンタ２０とから構成されている。
ＰＣ１０は演算処理の中枢をなすＣＰＵ１１を備えており、このＣＰＵ１１はシステムバス１０ａを介してＰＣ１０全体の制御を行う。同バス１０ａには、ＲＯＭ１２、ＲＡＭ１３、各種ドライブ１４，１５、各種インターフェイス（Ｉ／Ｆ）１６〜１９等が接続されている。本実施形態のＰＣ１０はデスクトップ型ＰＣを採用しているが、コンピュータとしては一般的な構成を有するものを採用可能である。
【００２８】
ハードディスクドライブ１４に接続されたハードディスク（ＨＤ）１４ａには、ソフトウェアとしてオペレーティングシステム（ＯＳ）や画像情報等を作成可能なアプリケーションプログラム（ＡＰＬ）等が格納されており、これらのソフトウェアは、実行時にＣＰＵ１１によって適宜ＲＡＭ１３に転送される。そして、ＣＰＵ１１は、ＲＡＭ１３を一時的なワークエリアとして適宜アクセスしながら種々のプログラムを実行する。
入力Ｉ／Ｆ１６には、キーボード１６ａやマウス１６ｂが操作用入力機器として接続されるとともに、図示しないスキャナやデジタルカメラ等も接続されるようになっている。ＣＲＴＩ／Ｆ１７には、画像データに基づく画像を表示するディスプレイ１８ａが接続されている。プリンタＩ／Ｆ１９には、パラレルＩ／Ｆケーブルを介してプリンタ２０が接続されている。むろん、シリアルＩ／ＦやＳＣＳＩ、ＵＳＢ接続など種々の接続態様を採用可能である。
【００２９】
プリンタ２０は、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）、の計４色（複数の要素色）の色インクを使用するものとする。むろん、４色以外のインクを使用するプリンタを採用してもよい。また、インク通路内に泡を発生させてインクを吐出するバブル方式のプリンタや、レーザープリンタ等、種々の印刷装置を採用可能である。
図２に示すように、プリンタ２０では、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＡＳＩＣ２４、コントロールＩＣ２５、通信Ｉ／Ｏ２６、Ｉ／Ｆ２７がバス２０ａを介して接続されている。
【００３０】
通信Ｉ／Ｏ２６はＰＣ１０のプリンタＩ／Ｆ１９と接続されており、プリンタ２０は通信Ｉ／Ｏ２６を介してＰＣ１０から送信されるＣＹＭＫに変換された画像のデータやページ記述言語等からなる印刷ジョブを受信する。また、ＰＣ１０から各種要求を受信したとき、通信Ｉ／Ｏ２６は対応する情報をＰＣ１０に出力する。本プリンタ２０は印刷時の解像度として720 ×360dpi、1440×720dpi、2880×1440dpi 等を選択可能となっており、ＰＣ１０から通信Ｉ／Ｏ２６を介して解像度の選択情報を入手してＲＡＭ２３に記憶しておき、解像度に応じたドット単位で印刷を行うことが可能となっている。
【００３１】
カートリッジホルダ２８にはＣＹＭＫのインクカートリッジ２８ａ〜ｄが装着されており、インクカートリッジ２８ａ〜ｄ内の各インクが色別に図示しない印刷ヘッドに供給されるようになっている。ＡＳＩＣ２４は、ＣＰＵ２１と所定の信号を送受信しつつヘッド駆動部２９に対してＣＹＭＫデータに基づく印加電圧データを出力する。同ヘッド駆動部２９は、同印加電圧データに基づいて印刷ヘッドに内蔵されたピエゾ素子への印加電圧パターンを生成し、印刷ヘッドに４色のインクを解像度に応じたドット単位で吐出させる。印刷ヘッドのインク吐出面には、４色のインクを吐出する４組のノズル列が印刷ヘッドの主走査方向に並ぶように形成され、ノズル列のそれぞれは複数のノズルが副走査方向に一定の間隔で直線状に配置されている。
Ｉ／Ｆ２７に接続されたキャリッジ機構２７ａや紙送り機構２７ｂは、印刷ヘッドを主走査させたり、適宜改ページ動作を行いながらメディアを順次送り出して副走査を行ったりする。そして、ＣＰＵ２１が、ＲＡＭ２３をワークエリアとして利用しながらＲＯＭ２２に書き込まれたプログラムに従って各部を制御する。
【００３２】
ＰＣ１０では、以上のハードウェアを基礎としてバイオスが実行され、その上層にてＯＳとＡＰＬとが実行される。ＯＳには、プリンタＩ／Ｆ１９を制御するプリンタドライバ等の各種のドライバ類が組み込まれ、ＯＳの一部となってハードウェアの制御を実行する。プリンタドライバは、プリンタＩ／Ｆ１９を介してプリンタ２０と双方向の通信を行うことが可能であり、ＧＤＩ（Graphics Device Interface ）等が組み込まれたＯＳを介してＡＰＬから画像データを受け取って印刷ジョブを作成し、プリンタ２０に送出する。そして、本発明の画像処理プログラムは、同プリンタドライバから構成される。むろん、ＡＰＬにより構成することも可能である。また、ＨＤ１４ａは同プログラムを記録した媒体であるが、同媒体は、例えば、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク、不揮発性メモリ、パンチカード、バーコード等の符号が印刷された印刷媒体、等であってもよい。むろん、モデム等の通信Ｉ／Ｆ１８をインターネット網に接続し、所定のサーバにアクセスして本画像処理プログラムをダウンロードして実行させることも可能である。
【００３３】
（２）画像処理装置の各種手段の構成：
図３は、上記ハードウェアと上記プリンタドライバとが協働して構築する画像処理装置の構成を模式的に示している。プリンタドライバは、各種モジュールを有しており、機能制御モジュールの制御に基づいて所定の機能を実現しつつ連携動作して画像データを変換することが可能である。そして、プリンタドライバの各モジュールに対応して、画像処理装置の各部が構成される。
解像度変換処理部は、画像データを入力し、プリンタ２０の解像度に合わせて同画像データの解像度を変換する。入力する画像データは、画像をドットマトリクス状の多数の画素で多階調表現したデータであり、様々な種類がある。例えば、ｓＲＧＢ色空間で定義されるＲＧＢから構成された画像データや、ＹＵＶ表色系における輝度（Ｙ成分）、Ｂの色差（Ｕ成分）、Ｒの色差（Ｖ成分）から構成された画像データ等がある。また、画像データの各成分も様々な階調数とされており、例えば、２５６階調、１０２４階調等がある。そこで、ｓＲＧＢやＹＵＶ表色系等の定義に従って、画像データを広域ＲＧＢ色空間内のＲＧＢ各２５６階調（０〜２５５の整数値）の階調データからなるＲＧＢデータに変換する。色変換処理部、階調数変換処理部、インターレース処理部は、同画像データに基づいてプリンタ２０に対して出力するＣＭＹＫ別とされた画像データへの変換処理を行い、プリンタ２０に送出する。すると、プリンタ２０は、変換された画像データに基づいて、印刷用紙（メディア）上に色インクのドットを形成し、カラー画像を印刷する。
【００３４】
本画像処理装置Ａは、図に示す各種手段Ａ１〜Ａ３を備えている。
画質設定手段Ａ１は、印刷設定モジュールに含まれており、プリンタ２０にて出力される画像の画質設定に関する画質設定情報の入力を受け付ける。本画像処理装置には解像度別に最高画質モード、高画質モード、普通モード、高速モードの４段階の印刷モードが設けられており、画質設定手段Ａ１は印刷モードを選択する操作入力を受け付け、同印刷モードを表すパラメータを画質設定情報として入力する。従って、本画像処理装置のユーザは、ＰＣ１０に対して印刷モードを選択する操作入力を行うことにより、プリンタ２０の出力画像の画質を選択可能となっている。
解像度取得手段Ａ３は、解像度変換モジュールに含まれており、プリンタ２０に対して設定する解像度を取得する。
【００３５】
変換処理手段Ａ２は、画質設定手段Ａ１にて入力された画質設定情報に応じて一または二以上の画素数の近隣した画素を処理区分とし、画像データを変換する着目された処理区分内の各画素の階調値（以下、処理区分の階調値とも記載）と拡散誤差とに基づいて、同着目された処理区分全体の階調誤差を当該処理区分外の未変換画素に拡散させながら画像データをまとめて変換する。図３に示す例では、高速モードが選択されているときに２×２画素が処理区分Ｕ１とされ、高画質モードが選択されているときに１画素が処理区分Ｕ２とされている。この場合、高画質モードよりも高速モードのほうが処理区分は大きくなり、画像データの変換処理は高速化されることになる。
また、適宜、要素色ＣＭＹＫの濃さに応じた画素数の近隣した画素を処理区分とする。
【００３６】
さらに、高画質を維持しながら変換処理を高速化させるため、変換処理手段Ａ２は、解像度に応じて二以上の画素数の近隣した画素をまとめてブロック（図の例では、ブロックＢ１）とし、画像データを変換する着目ブロック（図の例では、ブロックＢ２）内で所定のブロック処理条件が成立したときのみ同ブロック内で画像データをまとめて変換し、同条件が成立していないときには同ブロック内で画素を区分した画素区分別に画像データを変換するようにしている。この処理を実現するため、変換処理手段Ａ２は、図４に示す各種手段Ａ２１〜Ａ２３を有している。
【００３７】
すなわち、判定手段Ａ２１は、解像度取得手段Ａ３にて取得された解像度に応じて二以上の画素数の近隣した画素をまとめてブロックとし、画像データを変換する着目ブロックＢ３の階調値に基づいてブロック処理条件を満たすか否かを判定する。図の例は、解像度として1440×720dpiが設定されているときの処理区分を示しており、着目ブロックＢ３は４×４画素とされている。なお、本実施形態では、取得された解像度が大きくなるほどブロックの画素数を増やすことにしている。例えば、比較的低解像度である720 ×360dpiであるときに近隣した２×２画素をブロックとし、比較的高解像度である2880×1440dpi であるときに近隣した８×８画素をブロックとする。なお、解像度が小さいとき、１画素のみを処理区分として画素別に着目画素の画像データを変換するようにしてもよい。
第一変換手段Ａ２２は、ブロック処理条件が満たされると判定されたときに、着目ブロックＢ３を着目された処理区分として、着目ブロックＢ３全体の階調誤差を当該着目ブロックＢ３外の未変換画素に拡散させながら同着目ブロックＢ３全体をまとめて画像データを変換する、ブロック単位の変換処理を行う。一方、第二変換手段Ａ２３は、ブロック処理条件が満たされないと判定されたとき、着目ブロックＢ３内の画素を区分したブロックより小さい画素区分Ｕ３を処理区分として、画素区分Ｕ３内の画素の階調値と拡散誤差とに基づいて画素区分Ｕ３の階調誤差を他の未変換画素に拡散させながら着目ブロックＢ３内の画素の画像データを変換可能である。本実施形態では、画素区分Ｕ３を１画素としている。すなわち、１画素単位の変換処理を行う。
【００３８】
さらに、高画質を維持しながら変換処理を高速化させるため、判定手段Ａ２１は、着目ブロックＢ３内の画素を区分してさらに小さいブロックとし、同ブロックのうち画像データを変換する着目ブロックＢ４の階調値に基づいて所定の小ブロック処理条件（別のブロック処理条件）を満たすか否かを判定している。解像度が1440×720dpiである場合、４×４画素の着目ブロックＢ３をさらに小さい２×２画素のブロックとする。そして、第一変換手段Ａ２２は、小ブロック処理条件が満たされると判定されたとき、着目ブロックＢ４を着目された処理区分として同着目ブロックＢ４全体をまとめて画像データを変換する。一方、第二変換手段Ａ２３は、小ブロック処理条件も満たされないと判定されたときに、画素区分Ｕ３別に画素区分Ｕ３の階調値と拡散誤差とに基づいて同画素区分Ｕ３の階調誤差を他の未変換画素に拡散させながら着目ブロックＢ４の画像データを変換する。
なお、ブロック内で区分されるさらに小さいブロックは、略均等に区分されたものであってもよいし、不均等に区分されたものであってもよい。
【００３９】
図５は、本画像処理装置が行う処理をフローチャートにより示している。本フローは、ＰＣ１０のＣＰＵ１１によって行われるものである。
ＡＰＬはＡＰＬ用印刷機能を有しており、このＡＰＬ用印刷機能にてディスプレイ１７ａに表示される印刷実行メニューが選択されると、画像処理プログラムが起動し、印刷インターフェイス画面を表示する（ステップＳ１０５。以下、「ステップ」の記載を省略）。図６は、同印刷インターフェイス画面の一部の領域９１を示している。同領域９１には、各種選択欄９１ａ〜ｆ、各種ボタン９１ｇ，ｈが設けられている。
【００４０】
印刷用紙選択欄９１ａでは、普通紙、上質紙といったメディアの種類をマウス１６ｂにて選択入力可能である。印刷品質選択欄９１ｂでは、フォト、ファインといった画像を印刷する際の品質を選択入力可能である。走査方向選択欄９１ｃでは、印刷ヘッドの主走査の際に単方向のみにてドットを形成させるか双方向にてドットを形成させるかを選択入力可能である。パス数選択欄９１ｄでは、主走査方向の１行分のドットを何回の走査で形成させるかを選択入力可能である。
印刷モード選択欄９１ｅでは、複数段階の印刷モードのいずれかをマウス１６ｂにて選択入力可能である。図では、印刷モードは４段階設けられ、左端が高速モードとされ、右端が最高画質モードとされている。ここで、上記選択欄９１ａ〜ｄに選択入力が行われると、推奨する印刷モードを決定する処理を行い、決定した印刷モードの段階を表示する。
【００４１】
インク別処理選択欄９１ｆでは、インクの色別に画像データ変換処理を変えるか否かを選択入力可能である。より具体的に説明すると、同選択欄９１ｆでは「する」と「しない」を選択入力可能であり、「する」が選択入力された場合には色別とされる処理区分のうちＹの処理区分のみ他の色の処理区分よりも画素数を増やすことにしている。
そして、ＯＫボタン９１ｇがマウス１６ｂにてクリック操作されると、各種選択欄等から印刷モード等の各種印刷パラメータを取得する（Ｓ１１０）。ここで、印刷モードを表すパラメータは画質設定情報であるため、Ｓ１０５〜Ｓ１１０の処理は画質設定情報の入力を受け付ける画質設定手段を構成する。
【００４２】
その後、画像データを入手する（Ｓ１１５）。その際、画像を印刷させる解像度の選択に関する情報が含まれていれば、その情報も入手する。
次に、解像度変換処理部にて、プリンタ２０に印刷させる解像度を取得する（Ｓ１２０）。解像度を取得する際、ＡＰＬから解像度の選択に関する情報が含まれていれば、その情報に基づいて解像度を決定する。解像度の選択に関する情報が含まれていなければ、デフォルトの解像度（例えば、720 ×360dpi）を取得する。なお、上記印刷インターフェイス画面にて操作入力された内容に応じて解像度を決定して取得してもよい。このように、Ｓ１２０の処理は、Ｓ１０５〜Ｓ１１０の処理とともに、プリンタに設定された解像度を取得する解像度取得手段を構成する。
【００４３】
さらに、入手した画像データの解像度をプリンタ２０が印刷するための解像度に変換する、解像度変換処理を行う（Ｓ１２５）。解像度変換された画像データを構成する階調データは様々な階調数とすることができるが、本実施形態ではＲＧＢ各２５６階調としている。そして、階調値が大きくなるほどＲＧＢ各成分が大きくなるようにしてあり、ＲＧＢ全ての階調値が０であるときはほぼブラックに相当し、ＲＧＢ全ての階調値が２５５であるときはインクのドットが形成されないことになる。なお、入手した画像データの解像度が高い場合には、例えば一定の割合でデータを間引くことにより解像度を変換し、入手した画像データの解像度が低い場合には、例えば線形補間により画像データを補間して解像度を変換する。
【００４４】
その後、色変換処理部にて、ＲＧＢ別の階調データからなる画像データをＣＭＹＫのインクのそれぞれに対応した階調データからなる画像データに変換する、色変換処理を行う（Ｓ１３０）。その際、ＬＵＴ（ルックアップテーブル）と呼ばれる色変換テーブルを参照して画像データを変換する。本実施形態のＬＵＴは、２５６階調のＲＧＢそれぞれの階調値をＣＭＹＫそれぞれについて２５６階調とされた階調値に対応させたテーブルであり、補間演算を前提として、例えば、１７×１７×１７の格子点に対応した大量のデータを備えている。変換後のＣＭＹＫに基づく画像データ（以下、ＣＭＹＫデータと記載）も、画像をドットマトリクス状の画素別に２５６階調の階調データで表現したデータであり、階調値が大きくなるほどＣＭＹＫ各成分が大きくなるようにしてある。従って、階調値が大きくなるほど、印刷用紙上に形成されるドット密度は大きくなる。なお、変換後のＣＭＹＫデータの階調数も、様々な階調とすることができる。
【００４５】
そして、階調数変換処理部にて、画像を多数の画素で多階調表現したＣＭＹＫデータをいわゆる誤差拡散法によりドット形成の有無により表現した画像データに変換する、階調数変換処理を行う（Ｓ１３５）。ＣＭＹＫデータは２５６階調で表現されているが、プリンタ２０は色インク別にドットを形成するか否かにより印刷を行うため、本実施形態ではプリンタ２０に送出するデータを「ドットを形成する」意味の階調値「２５５」または「ドットを形成しない」意味の階調値「０」のいずれかに変換するようにしている。詳しくは後述するが、本階調数変換処理にて、一以上の画素数の近隣した画素を処理区分とし、着目された処理区分全体の階調誤差を当該処理区分外の未変換画素に拡散させながら画像データをまとめて変換する。
【００４６】
その後、インターレース処理部にて、プリンタ２０のドットの形成順序を考慮しながらドット形成の有無により表現した画像データを並べ替えるインターレース処理を行う（Ｓ１４０）。そして、解像度取得手段にて取得された解像度の選択情報とともに、最終的に得られた画像データをプリンタ２０に対して送出し（Ｓ１４５）、本フローを終了する。すると、プリンタ２０は、解像度の選択情報を入手するとともに同画像データを入手し、印刷ヘッドを駆動して解像度に対応した各色インクのドットを印刷媒体上に形成する。その結果、ＡＰＬからの画像データに対応したカラー画像が印刷用紙に印刷されることになる。
【００４７】
（３）画像処理装置が行う処理の概略：
次に、本画像処理装置が行う階調数変換処理について、図７のフローチャートを参照しながら説明する。なお、変換前の画像データはＣＭＹＫ別とされた階調値から構成されているので、図のフローはＣＭＹＫ別に行われることになるが、フローをわかりやすくするため図示を省略している。また、変換前の画像データはＲＡＭ１３に記憶されているとともに、各画素から拡散させた階調誤差を記憶する領域や変換した画像データを記憶する領域もＲＡＭ１３に設けられている。
まず、上記Ｓ１２０にて取得された解像度に応じて処理を分岐させる（Ｓ２０２）。本実施形態では、低解像度である720 ×360dpiのときにＳ２０４に進み、高解像度である1440×720dpiのときにＳ２１２に進み、超高解像度である2880×1440dpi のときにＳ２２０に進むようにしている。
【００４８】
分岐後の各処理の最初に、Ｓ１１０で入力された画質設定情報に応じて処理区分決定用の各種閾値を設定する（Ｓ２０４，Ｓ２１２，Ｓ２２０）。詳しくは後述するが、図８に示すように、低解像度の場合には低解像度用閾値テーブルＴ１を参照し、高解像度の場合には高解像度用閾値テーブルＴ２を参照し、超高解像度の場合には超高解像度用閾値テーブルＴ３を参照して、画質設定情報である印刷モードを表すパラメータに対応する複数の閾値を設定する。また、印刷インターフェイス画面にてインク別の変換処理を行う設定が選択入力された場合には、Ｙの画像データのみ図中点線で示したイエロー用データを参照して閾値を設定する。なお、テーブルＴ２，Ｔ３については、イエロー用データの図示を省略している。
【００４９】
そして、低解像度の場合に近隣した２×２画素をまとめてブロックとし、高解像度の場合に近隣した４×４画素をまとめてブロックとし、超高解像度の場合に近隣した８×８画素をまとめてブロックとして、画像データを変換する着目ブロックの位置を設定する（Ｓ２０６，Ｓ２１４，Ｓ２２２）。図９は、着目ブロックを模式的に示している。実際には縦方向の解像度に対し横方向の解像度は２倍となっているが、各画素Ｕ０１〜Ｕ０３を正方形で図示している。また、異なる解像度間で出力画像上の面積が同じとなるように、各画素Ｕ０１〜Ｕ０３と着目ブロックＢ０１〜Ｂ０３を描いている。すなわち、高解像度の場合の１画素の面積は低解像度の場合の１画素の面積の４分の１であり、超高解像度の場合の１画素の面積は低解像度の場合の１画素の面積の１６分の１である。
変換前の画像データは、画像をドットマトリクス状の画素Ｕ０１〜Ｕ０３で２５６階調表現したＣＭＹＫ別のデータである。そして、全画素について着目ブロックＢ０１〜Ｂ０３と同じ大きさのブロックとし、そのうちのいずれかのブロックを着目ブロックとして設定して、ブロック全体またはブロックを区分したさらに小さいブロックまたは画素別に誤差拡散法による変換処理を行う。本実施形態では、多数の画素を区分する多数のブロックが図に示す着目ブロックＢ０１〜Ｂ０３の単位で上下左右方向に整然と並んでおり、画像データの変換処理の順序は、左上のブロックから開始して順番に右上のブロックまでとし、その後一つずつ下の左端のブロックから順番に右端のブロックまでとして、最後に右下のブロックとしている。むろん、変換処理の順序は、適宜変更可能であり、解像度に応じて異なる順序とすることも可能である。
【００５０】
本実施形態では、印刷させる解像度が大きくなるほどブロックの画素数を増やすようにしている。図の左右方向を横方向、上下方向を縦方向とすると、720 ×360dpi、1440×720dpi、2880×1440dpi の順に、横２画素と縦２画素の計４画素、横４画素と縦４画素の計１６画素、横８画素と縦８画素の計６４画素、を一つのブロックとしている。従って、ブロックの画素数は解像度に比例した数とされている。むろん、ブロック内の画素の数を解像度に比例した数としなくてもよく、1440×720dpiの場合に３×３画素や５×５画素のブロックとしてもよい。また、ブロックの構成は縦横同画素数に限定されるものではなく、例えば、横１列に並んだ複数の画素であってもよいし、横２×縦４画素といった長方形状であってもよいし、ある基準画素と同基準画素の右隣と左下と下隣の画素の計４画素をまとめたものであってもよい。
【００５１】
着目ブロックの位置を設定すると、低解像度の場合には２×２画素、高解像度の場合には４×４画素、超高解像度の場合には８×８画素、の着目ブロック内で誤差拡散法を用いて変換処理を行う超高解像度用変換処理を行う（Ｓ２０８，Ｓ２１６，Ｓ２２４）。
詳しくは後述するが、解像度別の変換処理では、画質を低下させないように、着目ブロックが画像中で明度の高いハイライト領域すなわち明るい領域にあるのか、明度の低い暗い領域にあるのか、明度の中間的な領域にあるのか等を判定し、判定結果に応じた変換処理を行う。例えば、低解像度の場合には、変換処理の処理単位を２×２画素の着目ブロックＢ０１全体とするか、画素Ｕ０１別とするか、を切り替えながら誤差拡散法による変換処理を行う。高解像度の場合には、処理単位を４×４画素の着目ブロックＢ０２全体、着目ブロックＢ０２内の画素を区分してさらに小さい２×２画素のブロックＢ０４、画素Ｕ０２別、とするかを切り替えながら変換処理を行う。超高解像度の場合には、処理単位を８×８画素の着目ブロックＢ０３全体、着目ブロックＢ０３内の画素を区分してさらに小さい４×４画素のブロックＢ０５、同ブロックＢ０５の画素を区分してさらに小さい２×２画素のブロックＢ０６、画素Ｕ０３別、とするかを切り替えながら変換処理を行う。
【００５２】
解像度別の変換処理を行うと、画像データの全ブロックについて変換処理を終了したか否かを判断する（Ｓ２１０，Ｓ２１８，Ｓ２２６）。変換処理を行っていないブロックがある場合、低解像度の場合にはＳ２０６に戻り、高解像度の場合にはＳ２１４に戻り、超高解像度の場合にはＳ２２２に戻り、前回の着目ブロックの右側にブロックがあるときには当該ブロックを着目ブロックの位置として設定し、前回の着目ブロックの右側にブロックがないときには一つ下の左端のブロックを着目ブロックとして設定する。そして、全ブロックについて変換処理を終了するまで繰り返し解像度別の変換処理を行う。
その後、上記Ｓ１４０のインターレース処理が行われ、プリンタ２０に対してドット形成の有無により表現した画像データが送出され、設定された解像度にて画像を印刷させることになる。
【００５３】
（４）ブロック単位の画像データ変換処理の説明：
図１０は、２×２画素のブロック単位で誤差拡散を行いながら画像データを変換する様子を説明する説明図である。なお、変換後の画像データはＲＡＭ１３内の所定領域に格納されることになるが、わかりやすく説明するため、変換処理が終了した画素については変換後の画像データを記載している。
図の上段は、着目ブロックＢ１２の左隣のブロックＢ１３まで誤差拡散を伴う画像データの変換処理が終了した状態を示している。図の例では、着目ブロックＢ１２は画像中で明度の高い領域となっており、着目ブロックＢ１２内の各画素Ｐａ〜Ｐｄのいずれにも階調値２０（各画素内の上段に記載）が格納されているとともに、他のブロックから階調誤差５０（各画素内の下段に記載）が拡散されてきているものとする。また、処理の一例として、各画素Ｐａ〜Ｐｄの階調値の総和（Ｓ１とする）が閾値１００以下のときにブロック処理条件が成立するものとし、着目ブロックＢ１２の階調値と拡散誤差の総和が閾値１５０よりも大きいときに同着目ブロックＢ１２内の１画素にのみドットを形成するものとする。むろん、閾値には様々な値を採用することができる。
【００５４】
ここで、階調値の総和Ｓ１は８０となるのでブロック処理条件は成立し、同画素の拡散誤差の総和は２００となり、着目ブロックＢ１２の階調値と拡散誤差との総和は８０＋２００＝２８０であるので着目ブロックＢ１２内の１画素にのみドットを形成することになる。本実施形態では、左隣のブロックＢ１３のように、着目ブロックＢ１２の左上の画素Ｐａにドットを形成し（画素Ｐａの階調値を２５５とし）、残りの画素Ｐｂ〜Ｐｄの階調値を０とすることにしている。このように、着目ブロック内の所定位置の画素にのみドットを形成することにより、変換処理が簡素化されるので、画像データの変換が迅速に行われることになる。ここで、１画素にのみドットを形成する場合には、画素Ｐｂ〜Ｐｄのいずれかにドットを形成してもよいし、着目ブロック内の画素のうち最も階調値の大きい画素にドットを形成してもよいし、ランダムに画素を選択してドットを形成してもよい。
【００５５】
着目ブロック全体の階調誤差は、着目ブロックＢ１２の階調値と拡散誤差との総和から画像データ変換後の着目ブロックの階調値の総和を差し引いた値となる。図の例では、着目ブロックＢ１２の階調値と拡散誤差との総和は２８０であるから、変換後の着目ブロックＢ１２の階調値の総和２５５を差し引くことにより、階調誤差は２５となる。そして、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させる。図では、着目ブロックＢ１２に隣接した６つの未変換画素Ｕ１１〜Ｕ１６に階調誤差を拡散させることになる。なお、左上のブロック内の画素や、上隣のブロック内の画素や、左隣のブロック内の画素等は変換処理済みであるので、これらの画素には階調誤差を拡散させないようにしている。
【００５６】
また、同階調誤差を他のブロック内の未変換画素に対して略均等に拡散させるようにしている。上述した例では、着目ブロックＢ１２全体の階調誤差は２５であり、他のブロック内の未変換画素は６つあるので、２５を６で除して小数点以下を四捨五入した「４」ずつ未変換画素に拡散させる。ここで、階調誤差が６で割り切れない場合には、未変換画素Ｕ１６に拡散させる階調誤差を調整して、未変換画素Ｕ１１〜Ｕ１６に拡散させる階調誤差の合計を着目ブロックＢ１２全体の階調誤差と一致させるようにしている。その結果、未変換画素Ｕ１６には階調誤差「５」が拡散される。
なお、上記以外にも、様々な手法で同階調誤差を他のブロック内の未変換画素に拡散させることができる。例えば、着目ブロック全体の階調誤差を、同着目ブロックの右隣、左下、下隣、右下のブロック内の画素一つのみに拡散させてもよいし、着目ブロックに隣接していない未変換画素に階調誤差を拡散させてもよいし、未変換画素の位置に応じて同階調誤差を拡散する割合を異ならせてもよい。
このようにして、２×２画素のブロック単位で階調誤差を拡散させながら画像データをまとめて変換することができる。むろん、４×４画素、８×８画素のブロック単位でも、同様のことが言える。また、着目ブロックが画像中で明度の低い領域でも、同様の考え方でブロック単位で画像データを変換することが可能である。
【００５７】
このように、上記ブロック全体の階調誤差を当該ブロック外の未変換画素に拡散させながら画像データをまとめて変換する場合もあれば、ブロック内の画素を区分したさらに小さいブロックまたは画素別に区分された領域の階調誤差を他の未変換画素に拡散させながらブロックの画像データを変換する場合もある。これらの変換処理を切り替えるため、ブロック内の各画素の階調値（以下、ブロックの階調値と記載）の総和に基づいて画像データをまとめて変換する処理区分を決定するための複数の閾値を上記Ｓ２０４，Ｓ２１２，Ｓ２２０で設定するようにしている。その際、図８で示した解像度別の閾値テーブルＴ１〜Ｔ３を参照して閾値を設定する。図１１は、図８で示した閾値テーブルに格納された閾値と処理区分の画素数との関係を解像度別にブロックの階調値の平均値を表す軸に沿って示している。また、図１２は同関係を表形式で表している。なお、実際の変換処理ではブロックの階調値の総和を基準とした閾値としているが、わかりやすく説明するため、図の各種閾値はブロックの階調値の平均を基準とした閾値としている。
【００５８】
図１１に示すように、各解像度の中で画質設定情報に対応した４段階となるように閾値を設定する。例えば、720 ×360dpiにおける最高画質モードの場合、閾値としてｄ１０，ｄ２０を設定する。そして、図１２に示すように、ブロックの階調値の平均（ｘとする）が基準とする閾値ｄ１０以下（ｄ１０より小としてもよい）のとき、または、平均ｘが同閾値ｄ１０より大きい別の基準の閾値ｄ２０より大（ｄ２０以上としてもよい）のとき、ブロック処理条件を満たすと判定するようにしている。すなわち、０≦ｘ≦ｄ１０またはｄ２０＜ｘ≦２５５のときには４画素単位の変換処理を行い、ｄ１０＜ｘ≦ｄ２０のときには画素別に変換処理を行う。
【００５９】
ここで、画質設定情報がより高速を意味する情報であるほど両閾値の差を小さくすることにしている。印刷モードが最高画質モードよりも１段階画質が低い高画質モードである場合、閾値としてｄ１１（ｄ１１＞ｄ１０），ｄ２１（ｄ２１＜ｄ２０）を設定する。さらに１段階画質が低い普通モードである場合、閾値としてｄ１２（ｄ１２＞ｄ１１），ｄ２２（ｄ２２＜ｄ２１）を設定する。最も画質が低い高速モードである場合、閾値としてｄ１３（ｄ１３＞ｄ１２），ｄ２３（ｄ２３＜ｄ２２）を設定する。そして、０≦ｘ≦ｄ１１〜ｄ１３またはｄ２１〜ｄ２３＜ｘ≦２５５のときブロック処理条件を満たすと判定する。
すなわち、図の中で閾値変化領域と示したように、比較的低階調領域において処理区分を４画素単位と１画素単位とを切り替える閾値は下限値ｄ１０〜上限値ｄ１３の範囲で変化し、比較的高階調領域において処理区分を１画素単位と４画素単位とを切り替える閾値は下限値ｄ２３〜上限値ｄ２０の範囲で変化することになる。そして、画質設定が高速になるほど、比較的低階調領域における閾値と比較的高階調領域における閾値との差は小さくなり、画像データのとりうる階調領域のうちブロック単位で変換処理が行われる領域が大きくなる。従って、簡易な構成で画質設定がより高速になるほど画像データの変換処理を高速化させることができ、従来のように高画質で画像を印刷させる必要がなくても変換処理の処理速度を上げることができないという問題を解消することができる。
【００６０】
1440×720dpiでは、最高画質モードの場合、720 ×360dpiの場合と同じ閾値ｄ１０，ｄ２０の他、別の閾値ｄ３０（ｄ３０＞ｄ１０），ｄ４０（ｄ４０＜ｄ２０）を設定する。そして、ブロックの階調値の平均をｘとして、０≦ｘ≦ｄ１０またはｄ２０＜ｘ≦２５５のときにはブロック処理条件成立として１６画素単位の変換処理を行い、ｄ１０＜ｘ≦ｄ３０またはｄ４０＜ｘ≦ｄ２０のときには別のブロック処理条件成立として４画素単位の変換処理を行い、ｄ３０＜ｘ≦ｄ４０のときには１画素単位の変換処理を行う。
【００６１】
高解像度の場合には、画質設定情報がより高速を意味する情報であるほど４画素単位と１画素単位とを切り替える二つの閾値の差を小さくすることにしている。高画質モードの場合には、閾値としてｄ３１（ｄ３１＞ｄ３０），ｄ４１（ｄ４１＜ｄ４０）を設定する。普通モードである場合、閾値としてｄ３２（ｄ３２＞ｄ３１），ｄ４２（ｄ４２＜ｄ４１）を設定する。高速モードである場合、閾値としてｄ３３（ｄ３３＞ｄ３２），ｄ４３（ｄ４３＜ｄ４２）を設定する。そして、０≦ｘ≦ｄ１０またはｄ２０＜ｘ≦２５５のときブロック処理条件を満たすと判定し、ｄ１０＜ｘ≦ｄ３１〜ｄ３３またはｄ４１〜ｄ４３＜ｘ≦ｄ２０のとき別のブロック処理条件を満たすと判定する。
従って、比較的低階調領域において処理区分を４画素単位と１画素単位とを切り替える閾値は下限値ｄ３０〜上限値ｄ３３の範囲で変化し、比較的高階調領域において処理区分を１画素単位と４画素単位とを切り替える閾値は下限値ｄ４３〜上限値ｄ４０の範囲で変化することになる。
【００６２】
ここで、高解像度の場合に処理区分を１６画素単位と４画素単位とを切り替える閾値は、低解像度の場合に処理区分を４画素単位と１画素単位とを切り替える閾値ｄ１０，ｄ２０と同じにされている。この結果、高解像度の場合にまとめられる４×４画素のブロックの階調値の平均値と低解像度の場合にまとめられる２×２画素のブロックの階調値の平均値とが同じとなる条件、すなわち、インク使用量が同じとなる条件のもとで、高解像度の場合におけるプリンタの出力画像上に占める処理区分の面積は低解像度の場合における処理区分の面積と同じかまたは小さくなる。
低解像度の最高画質モードと高解像度の高速モードとで処理区分を比較すると、０≦ｘ≦ｄ１０，ｄ２０＜ｘ≦２５５の階調領域では低解像度の場合に４画素であるのに対し高解像度の場合に１６画素であるので、図９を参照すると出力画像上の処理区分の面積は同じになることが分かる。また、ｄ１０＜ｘ≦ｄ３３，ｄ４３＜ｘ≦ｄ２０の階調領域では低解像度の場合に１画素であるのに対し高解像度の場合に４画素であるので、やはり出力画像上の処理区分の面積は同じになる。そして、ｄ３３＜ｘ≦ｄ４３の階調領域では低解像度の場合に１画素であるのに対し高解像度の場合に１画素であるので、出力画像上の処理区分の面積は高解像度の場合のほうが小さくなる。変換処理は解像度が高くなるほど単位面積当たりの画素数が増えるため処理時間がかかることになるため、ユーザは高解像度であるときの画質は低解像度における画質と同等以上であることを期待する。上述したように各種閾値を設定することにより、解像度間で画質の逆転現象が起きない範囲で変換処理を選択することになり、高解像度であるときの画質を最低でも低解像度における最高画質にさせることができる。
【００６３】
2880×1440dpi では、最高画質モードの場合、1440×720dpiの場合と同じ閾値ｄ１０，ｄ３０，ｄ４０，ｄ２０の他、別の閾値ｄ５０（ｄ５０＞ｄ３０），ｄ６０（ｄ６０＜ｄ５０）を設定する。そして、ブロックの階調値の平均をｘとして、０≦ｘ≦ｄ１０またはｄ２０＜ｘ≦２５５のときにはブロック処理条件成立として６４画素単位の変換処理を行い、ｄ１０＜ｘ≦ｄ３０またはｄ４０＜ｘ≦ｄ２０のときには別のブロック処理条件成立として１６画素単位の変換処理を行い、ｄ３０＜ｘ≦ｄ５０またはｄ６０＜ｘ≦ｄ４０のときにはさらに別のブロック処理条件成立として４画素単位の変換処理を行い、ｄ５０＜ｘ≦ｄ６０のときには１画素単位の変換処理を行う。
【００６４】
高解像度の場合には、画質設定情報がより高速を意味する情報であるほど４画素単位と１画素単位とを切り替える二つの閾値の差を小さくすることにしている。すなわち、比較的低階調側では閾値をｄ５０〜ｄ５３の範囲で変更し、比較的高階調側では閾値をｄ６３〜ｄ６０の範囲で変更する。
ここで、超高解像度の場合に処理区分を１６画素単位と４画素単位とを切り替える閾値は、高解像度の場合に処理区分を４画素単位と１画素単位とを切り替える閾値ｄ３０，ｄ４０と同じにされている。この結果、インク使用量が同じとなる条件のもとで、超高解像度の場合におけるプリンタの出力画像上に占める処理区分の面積は高解像度の場合における処理区分の面積と同じかまたは小さくなる。従って、超高解像度であるときの画質を最低でも高解像度における最高画質にさせることができる。
なお、上述した各種閾値は、ブロックの階調値の平均または総和にかかわらず一定値とされてもよいし、ブロックの階調値の平均または総和に応じて変化させるようにしてもよい。
【００６５】
また、印刷インターフェイス画面にてインク別の変換処理を行う設定が選択入力された場合には、インクの要素色ＣＭＹＫ別に閾値を設定する。すると、ＣＭＹＫ別に要素色の濃さに応じた画素数の近隣した画素を処理区分とするとともに、画像データを変換する着目された処理区分の階調値と拡散誤差に基づいて同着目された処理区分全体の階調誤差を当該処理区分外の未変換画素に拡散させながら画像データをまとめて変換することになる。本実施形態では、図８で示した解像度別閾値テーブルＴ１〜Ｔ３からＹ用の閾値のみについてはイエロー用データを参照して設定する。図１３は、低解像度における閾値と処理区分の画素数との関係をブロックの階調値の平均値を表す軸に沿って示している。
【００６６】
図に示すように、最高画質モードの場合には、ＣＭＫ用の閾値もＹ用の閾値もｄ１０，ｄ２０と同じにしてある。しかし、高画質モードの場合には、ＣＭＫ用の閾値ｄ１１，ｄ２１に対し、Ｙ用の閾値はｄ１１’（ｄ１１’＞ｄ１１），ｄ２１’（ｄ２１’＜ｄ２１）となっており、Ｙについては４画素単位で変換処理を行う階調領域がＣＭＫよりも広くなっている。普通モード、高速モードの場合についても同様である。すると、Ｙの２×２画素のブロックの階調値の平均値とＣＭＫの２×２画素のブロックの階調値の平均値とが同じとなる条件、すなわち、インク使用量が同じとなる条件のもとで、複数の要素色ＣＭＹＫの中で相対的に薄い要素色Ｙに対応する処理区分の画素数を相対的に濃い要素色ＣＭＫに対応する処理区分の画素数と同じかまたはそれよりも多くすることになる。ここで、ＹはＣＭＫと比べて目立たないため、高画質を維持しながら処理速度をさらに向上させることが可能となる。
【００６７】
なお、ＣＭＹＫ全て別々の閾値を設定してもよいし、インク使用量が同じとなる条件のもとで、ＣＭに対応する処理区分の画素数をＫに対応する処理区分の画素数と同じかまたはそれよりも多くするとともにＹに対応する処理区分の画素数をＣＭに対応する処理区分の画素数と同じかまたはそれよりも多くするように閾値を設定してもよい。また、Ｌｃ（ライトシアン）、Ｌｍ（ライトマゼンタ）のインクも使用する場合には、濃い要素色をＣＭＫとし、薄い要素色をＹＬｃＬｍとして、閾値を設定してもよい。
【００６８】
（５）画像処理装置が行う処理の詳細：
以下、本画像処理装置が行う処理の詳細について、解像度が1440×720dpiである場合を例にとって説明する。
図１４は、図７のＳ２１６で行われる高解像度用変換処理をフローチャートにより示している。
まず、ＲＡＭ１３からＣＭＹＫ別に４×４画素からなる着目ブロック内の各画素の階調値を読み込み（Ｓ３０２）、読み込んだ階調値の総和Ｓ２を算出する（Ｓ３０４）。ここで、図９の中程に示した着目ブロックＢ０２内の１６画素の階調値をＤＡｉ（ｉ＝１〜１６）で表すと、以下の式により階調値の総和Ｓ２を算出することができる。
Ｓ２ ＝ Σ（ＤＡｉ）    ・・・（１）
そして、後述するように、総和Ｓ２に基づいて、所定のブロック処理基準値である閾値Ｄ２１，Ｄ２２を基準として、高解像度の場合におけるブロック処理条件を満たすか否かを判定し、同条件を満たすと判定したときには４×４画素単位で変換処理を行い、同条件を満たさないと判定したときにはより小さい処理区分にて変換処理を行うようにしている。ここで、閾値Ｄ２１，Ｄ２２は、図７の階調数変換処理のＳ２１２にて、ブロックの階調値の平均を基準とした閾値ｄ１０，ｄ２０にブロックの画素数１６を乗じた値に設定される。
【００６９】
階調値の総和Ｓ２を算出すると、総和Ｓ２が０であるか否かを判断する（Ｓ３０６）。この判断は、後述するＳ３１０，Ｓ３１４，Ｓ３１８とともに、ＣＭＹＫ別に行われる。各画素の階調値は０〜２５５であるので、着目ブロック内の各画素の階調値が全て０であるときのみ総和Ｓ２は０となる。従って、ＣＭＹＫ別に見たときに着目ブロック内の各画素の階調値が全て０であるときに条件成立となってＳ３０８に進み、各画素の階調値のうち一つでも１以上のものがあれば条件不成立となってＳ３１０に進む。
Ｓ３０８では、着目ブロック内の画素全てをオフすなわちドットを形成しない状態とする。すなわち、着目ブロック内の変換後の画像データは全ての画素において０とされ、「ドットを形成しない」画像データとなる。その後、詳しくは後述するが、着目ブロック全体で生じる階調誤差を算出し（Ｓ３２４）、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させ（Ｓ３２６）、本フローを終了する。このように、着目ブロック内の各画素の階調値が全て０である場合には、後述するＳ３１２の１６画素単位変換処理（その１）が行われないので変換処理を高速化させることができる。
【００７０】
Ｓ３１０では、総和Ｓ２が閾値Ｄ２１よりも大きいか否かを判断する。むろん、Ｓ２≧Ｄ２１であるか否かを判断するようにしてもよい。閾値Ｄ２１は、画像データの階調値の小さい領域において、１６画素単位の変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものである。Ｓ２＞Ｄ２１のとき画像データの階調値の小さい領域におけるブロック処理条件を満たさないと判定してＳ３１４に進み、それ以下のとき同条件を満たすと判定してＳ３１２に進む。
【００７１】
Ｓ３１２では、１６画素単位変換処理（その１）を行い、本フローを終了する。Ｓ３１２が行われるのは、着目ブロックが画像中で明度の高い領域にあるときであり、ドット形成密度が小さいため、ブロック単位でドットを形成しても画像の分解能の低下は目立たず、高画質を維持することが可能である。そこで、図１５の上段に示すように、４×４画素単位の変換処理を行う。なお、図の上段において、着目ブロックＢ２２内の１６画素のいずれにも階調値２０が格納されているとともに、他のブロックから拡散されてきた階調誤差の総和は８００とする。また、処理の一例として、階調値の総和Ｓ２が閾値４００以下のときにブロック処理条件が成立するものとし、着目ブロックＢ２２の階調値と拡散誤差の総和が閾値９５０よりも大きいときに同着目ブロックＢ２２内の４画素をオンにするものとする。むろん、これらの閾値は一例にすぎない。
【００７２】
ここで、総和Ｓ２はブロック処理条件成立となる３２０であり、拡散誤差の総和は８００であるので、着目ブロックＢ２２内の各画素の階調値と拡散誤差との総和は４画素オンとなる１１２０となる。本実施形態では、１６画素の着目ブロック内で４画素オンとするとき、左隣のブロックＢ２３のように、一番上の最も左の画素Ｐｅと、上から二番目の最も右の画素Ｐｆと、上から三番目の最も左の画素Ｐｇと、一番下の最も右の画素Ｐｈとにドットを形成する（階調値を２５５にする）ようにしている。また、同着目ブロック内で３画素オンとするときには画素Ｐｅ〜Ｐｇをオンとし、２画素オンとするときには画素Ｐｅ，Ｐｆをオンとし、１画素オンとするときには画素Ｐｅのみをオンとするようにしている。むろん、これ以外にも様々な手法により着目ブロック内で１〜４画素にドットを形成することができる。
【００７３】
着目ブロック全体の階調誤差は、着目ブロックＢ２２の階調値と拡散誤差との総和１１２０から画像データ変換後の着目ブロックの階調値の総和２５５×４＝１０２０を差し引いた値となる。図の例では、階調誤差は１００となり、着目ブロック全体の階調誤差を他のブロック内で同着目ブロックに隣接した未変換画素Ｕ２１〜Ｕ３０に拡散させる。本実施形態では、同階調誤差を未変換画素Ｕ２１〜Ｕ３０に対して略均等に拡散させるとともに、階調誤差が１０で割り切れない場合には未変換画素Ｕ３０に拡散させる階調誤差を調整することにしている。むろん、これ以外にも様々な手法で同階調誤差を未変換画素に拡散させることができる。
このようにして、４×４画素単位で誤差拡散法により画像データをまとめて変換することができる。
【００７４】
図１６は、上記１６画素単位変換処理（その１）をフローチャートにより示している。
まず、４×４画素の着目ブロックについて、着目ブロックの階調値と拡散誤差との総和である補正データＢｘを算出する（Ｓ３５２）。着目ブロック内の各画素に拡散されてきた拡散誤差をそれぞれＥｉ（ｉ＝１〜１６），とすると、着目ブロック全体に拡散されてきた拡散誤差ＳＥは、以下の式から求めることができる。
ＳＥ ＝ Σ（Ｅｉ）    ・・・（２）
着目ブロックの階調値の総和Ｓ２を用いると、補正データＢｘは以下の式により算出することができる。
Ｂｘ ＝ Ｓ２ ＋ ＳＥ    ・・・（３）
そこで、ＲＡＭ１３から着目ブロック内の各画素の拡散誤差Ｅ１を読み出し、上記式（２），（３）により補正データＢｘを算出する。なお、各画素の拡散誤差は、上記Ｓ３０２で各画素の階調値を読み出すときに一緒に読み出しておいてもよい。
【００７５】
本実施形態では、着目ブロック内で１〜４画素のオンを可能にするため、ｔｈ２１＜ｔｈ２２＜ｔｈ２３＜ｔｈ２４である四種類の閾値を用いている。これらの閾値は、画像データの階調値の小さい領域において、それぞれ、着目ブロック内に１，２，３，４ドット形成するか否かかの境界値として予め設定されるものである。Ｓ３５４では、Ｂｘ＞ｔｈ２１であるか否かを判断する。Ｂｘ≦ｔｈ２１のとき、着目ブロック内の画素全てをオフ、すなわち、ドットを形成せず（Ｓ３５６）、Ｓ３７２に進む。Ｂｘ＞ｔｈ２１のとき、Ｂｘがｔｈ２２よりも大きいか否かを判断する（Ｓ３５８）。Ｂｘがｔｈ２２以下のとき（ｔｈ２１＜Ｂｘ≦ｔｈ２２）、着目ブロック内で１画素をオン、すなわち、ドットを形成し（Ｓ３６０）、Ｓ３７２に進む。Ｂｘ＞ｔｈ２２のとき、Ｂｘがｔｈ２３よりも大きいか否かを判断する（Ｓ３６２）。Ｂｘがｔｈ２３以下のとき（ｔｈ２２＜Ｂｘ≦ｔｈ２３）、着目ブロック内で２画素をオンとし（Ｓ３６４）、Ｓ３７２に進む。Ｂｘ＞ｔｈ２３のとき、Ｂｘがｔｈ２４よりも大きいか否かを判断する（Ｓ３６６）。Ｂｘがｔｈ２４以下のとき（ｔｈ２３＜Ｂｘ≦ｔｈ２４）、着目ブロック内で３画素をオンとし（Ｓ３６８）、Ｓ３７２に進む。Ｂｘ＞ｔｈ２４のとき、着目ブロック内で４画素をオンとし（Ｓ３７０）、Ｓ３７２に進む。
このように、ブロック単位の変換処理を行う際に着目ブロック内で複数のドットをまとめて形成することができるため、着目ブロック内で１ドットしか形成できなかった従来と比べ、画質を低下させることなく変換処理をより高速化させることが可能となる。
なお、着目ブロック内で１画素のみオンとするようにしてもよいし、全画素オフまたは４画素オンの二段階のみ切り替えるようにしてもよいし、ｔｈ２４’＞ｔｈ２４なる閾値ｔｈ２４’を設けてＢｘ＞ｔｈ２４’の場合に５画素オンとするようにしてもよい。
【００７６】
Ｓ３７２では、着目ブロック全体の階調誤差を算出する。ここで、画像データ変換後の着目ブロック内に形成されるドット数をＮｄｏｔとすると、画像データ変換後の着目ブロック内における各画素の階調値の総和Ｓｄｏｔは、以下の式から求めることができる。
Ｓｄｏｔ ＝ ２５５ × Ｎｄｏｔ    ・・・（４）
すなわち、着目ブロック全体で生じる階調誤差Ｅは、以下の式のように、着目ブロック内の各画素の階調値と拡散誤差との総和から画像データ変換後の着目ブロック内における各画素の階調値の総和を差し引くことにより算出することができる。
Ｅ ＝ Ｓ２ ＋ ＳＥ − Ｓｄｏｔ    ・・・（５）
そして、階調誤差Ｅを他のブロック内の未変換画素に拡散させ（Ｓ３７４）、本フローを終了する。上述したように、着目ブロック外の未変換画素Ｕ２１〜Ｕ３０に対して階調誤差を略Ｅ／１０ずつ略均等に階調誤差を拡散させる。
このようにして、４×４画素の着目ブロックにおけるブロック単位の画像データの変換処理が終了する。すなわち、図１６で示したフローの処理は第一変換手段を構成することになる。
その後はＳ２１８にて全ブロックについて変換処理が終了したか否かが判断され、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
【００７７】
図１４のＳ３１４では、総和Ｓ２が閾値Ｄ２２（Ｄ２２＞Ｄ２１）よりも大きいか（または、以上か）否かを判断する。閾値Ｄ２２は、画像データの階調値の大きい領域において、１６画素単位の変換処理を行っても高画質を維持可能であるか否かの境界値として設定されるものである。Ｓ２＞Ｄ２２のとき画像データの階調値の大きい領域におけるブロック処理条件を満たすと判定してＳ３１８に進み、それ以下のとき（Ｄ２１＜Ｓ２≦Ｄ２２）同条件を満たさないと判定してＳ３１６に進む。なお、画像データ中でＤ２２＜Ｓ２を満たす領域は、画像中で明度の低い領域である。
【００７８】
Ｓ３１６では、４×４画素より小さい処理区分にて変換処理を行う小ブロック変換処理を行い、本フローを終了する。図１７は、その処理をフローチャートにより示している。
まず、４×４画素の着目ブロック内の画素を区分して２×２画素のさらに小さいブロック（以下、小ブロックとも記載）とし、画像データを変換する着目された小ブロック（以下、着目小ブロックと記載）の位置を設定する（Ｓ４０２）。図９を参照して説明すると、小ブロックＢａ〜Ｂｄは着目ブロックＢ０２内において点線または実線で区切られた２×２画素から構成され、着目小ブロックは小ブロックＢａ〜Ｂｄのいずれかに設定される。そして、小ブロック単位で変換処理を行うことになる。本実施形態では、画像データの変換処理の順序を、小ブロックＢａ，Ｂｂ，Ｂｃ，Ｂｄの順としている。むろん、画像データの変換処理の順序は、適宜変更可能である。また、小ブロックの構成は横２×縦２画素に限定されるものではなく、例えば横２×縦４画素といった長方形状であってもよいし、横１列に並んだ複数の画素であってもよい。また、小ブロックが全て同じ構成である必要はなく、例えば、横３×縦２画素と横１×縦２画素とに区分されてもよい。
【００７９】
次に、２×２画素の着目小ブロックの階調値をＣＭＹＫ別に読み込み（Ｓ４０４）、読み込んだ階調値の総和Ｓ３を算出する（Ｓ４０６）。ここで、着目小ブロック内の４画素の階調値をＤＡｉ（ｉ＝１〜４）で表すと、上記式（１）と同様にして総和Ｓ３を算出することができる。
Ｓ３ ＝ Σ（ＤＡｉ）    ・・・（６）
そして、後述するように、総和Ｓ３に基づいて、所定の小ブロック処理基準値である第一閾値Ｄ３１、第二閾値Ｄ３２を基準として、小ブロック処理条件を満たすか否かを判定し、同条件を満たすと判定したときには２×２画素の小ブロック単位で変換処理を行い、同条件を満たさないと判定したときには１画素単位で画像データの変換処理を行うようにしている。ここで、閾値Ｄ３１，Ｄ３２は、図７の階調数変換処理のＳ２１２にて、ブロックの階調値の平均を基準とした閾値ｄ３０〜ｄ３３のいずれか（インク別処理を行うときＹの画像データについてはｄ３０，ｄ３１’〜ｄ３３’のいずれか），ｄ４０〜ｄ４３のいずれか（インク別処理を行うときＹの画像データについてはｄ４０，ｄ４１’〜ｄ４３’のいずれか）にブロックの画素数４を乗じた値に設定される。すなわち、入力された画質設定情報がより高速を意味する情報（高速モード側）であるほど閾値ｄ３０〜ｄ３３と閾値ｄ４０〜ｄ４３との差が小さくなり、１画素単位変換処理よりも高速にて変換処理が可能な４画素単位変換処理の行われる階調領域が広くなる。その結果、印刷モードが高速モード側となるほど変換処理はより高速にて行われることになる。また、ＣＭＹＫの中で相対的に薄いＹの画像データについても両閾値の差が小さくなり、１画素単位変換処理よりも高速にて変換処理が可能な４画素単位変換処理の行われる階調領域が広くなる。ここで、画像中のＹ成分は目立たないため、高画質が維持されるともに変換処理はさらに高速にて行われることになる。
なお、小ブロック処理条件を満たさないと判定したときに、小ブロック内の画素を２以上の画素単位で区分した画素区分とし、同画素区分別に変換処理を行ってもよい。
【００８０】
総和Ｓ３を算出すると、総和Ｓ３が第一閾値Ｄ３１よりも大きいか（または、以上か）否かを判断する（Ｓ４０８）。同判断は、Ｓ４１２とともにＣＭＹＫ別に行われる。閾値Ｄ３１は、画像データの階調値の比較的小さい領域において、小ブロック単位の変換処理を行っても高画質を維持可能であるか否かの境界値として設定されるものである。Ｓ３＞Ｄ３１のとき画像データの階調値の比較的小さい領域における小ブロック処理条件を満たさないと判定してＳ４１２に進み、Ｓ３≦Ｄ３１のとき同条件を満たすと判定してＳ４１０に進む。
【００８１】
Ｓ４１０では、４画素単位変換処理（その１）を行い、Ｓ４１８に進む。図１５の下段に示すように、４×４画素の着目ブロックＢ２２内を２×２画素に区分して小ブロックとし、小ブロック単位の変換処理を行う。小ブロック全体で１画素オンにする場合、着目小ブロックＢ２４の左上の画素にドットを形成することにしているが、様々な手法によりドットを形成することが可能である。また、着目小ブロック全体の階調誤差を着目小ブロック外の未変換画素Ｕ４１〜Ｕ４５に略均等に（図の例では、２５／５＝５ずつ）拡散させる。むろん、これ以外にも様々な手法で階調誤差を未変換画素に拡散させることができる。このようにして、着目小ブロック全体の階調誤差を着目小ブロック外の未変換画素に拡散させながら、着目小ブロック内の画素の画像データをまとめて変換することができる。なお、着目小ブロックが画像中で明度の低い領域でも、同様の考え方で小ブロック単位で画像データを変換することが可能である。
【００８２】
図１８は、上記４画素単位変換処理（その１）をフローチャートにより示している。
まず、着目ブロックについて、着目ブロックの階調値と拡散誤差との総和である補正データＢｘを算出する（Ｓ４５２）。着目ブロック全体に拡散されてきた拡散誤差ＳＥは、ｉ＝１〜４として、上記式（２）により算出することができる。そして、着目ブロックの階調値の総和Ｓ１を用いると、補正データＢｘは、以下の式により算出することができる。
Ｂｘ ＝ Ｓ１ ＋ ＳＥ    ・・・（７）
次に、Ｂｘが所定の閾値ｔｈ１１よりも大きいか（または、以上か）否かを判断する（Ｓ４５４）。Ｂｘ＞ｔｈ１１の場合、着目ブロック内の１画素のみオン（左上の画素の階調値を２５５）とし、残りの３画素の階調値を０とする。一方、Ｂｘ≦ｔｈ１１の場合、着目ブロック内の画素全てをオフ（４画素全ての階調値を０）とする（Ｓ４５８）。
【００８３】
その後、着目ブロック全体で生じる階調誤差を算出する（Ｓ４６０）。ここで、画像データ変換後の着目ブロック内に形成されるドット数をＮｄｏｔとして、上記式（４）により画像データ変換後の着目ブロックの階調値の総和Ｓｄｏｔを求め、以下の式により着目ブロック全体で生じる階調誤差Ｅを算出する。
Ｅ ＝ Ｓ１ ＋ ＳＥ − Ｓｄｏｔ    ・・・（８）
そして、階調誤差Ｅを当該ブロック外の未変換画素に拡散させ（Ｓ４６２）、本フローを終了する。本実施形態では、着目ブロック外の未変換画素（図１５の例では、Ｕ４１〜Ｕ４５）に対して階調誤差を略均等に拡散させている。ここで、階調誤差が拡散させる未変換画素の数で割り切れない場合には、着目ブロックの右下の未変換画素（図１５の例では、Ｕ１６）に拡散させる階調誤差を調整している。
このようにして、２×２画素の着目ブロックにおけるブロック単位の画像データの変換処理が終了する。すなわち、図１８で示したフローの処理は、別のブロック処理条件を満たすと判定されたときにさらに小さいブロック単位で画像データを変換する意味での第一変換手段を構成する。
その後はＳ４１８にて全小ブロックについて変換処理が終了したか否かが判断され、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理が行われる。
【００８４】
図１７のＳ４１２では、着目小ブロックの階調値の総和Ｓ３が第二閾値Ｄ３２よりも大きいか（または、以上か）否かを判断する。閾値Ｄ３２は、画像データの階調値の比較的大きい領域において、小ブロック単位の変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものである。Ｓ３＞Ｄ３２のとき画像データの階調値の比較的大きい領域における小ブロック処理条件を満たさないと判定してＳ４１６に進み、Ｓ３≦Ｄ３２のとき同条件を満たすと判定してＳ４１４に進む。
【００８５】
Ｓ４１４では、１画素単位変換処理を行い、本フローを終了する。図１９に示すように、着目ブロックＢ１２内で画素Ｐａ，Ｐｂ，Ｐｃ，Ｐｄの順番に、同画素の階調誤差を他の未変換画素に拡散させながら着目ブロックＢ１２内の画素の画像データを変換する。なお、斜線が記入された画素は、誤差拡散を伴う画像データの変換処理が終了したことを示している。ここで、未変換画素は、着目ブロックＢ１２内であってもよいし、他のブロック内であってもよい。
まず、画素Ｐａについて、階調値と他の画素からの階調誤差に基づいてドットを形成するか否かを判定して変換後の画像データを２５５または０とするとともに、画素Ｐａの階調誤差を他の未変換画素に拡散させる。このとき、図中ブロック矢印で示したように、同画素Ｐａに隣接する未変換画素Ｐｂ〜Ｐｄに略均等に拡散させる。画素Ｐｂ〜Ｐｄについても、同様にしてドットを形成するか否かを判定し、変換後の画像データを２５５または０とするとともに、画素Ｐｂ〜Ｐｄに隣接する未変換画素に略均等に拡散させる。ここで、画素Ｐｂからは未変換画素Ｐｃ，Ｐｄ，Ｕ１１，Ｕ１２に対して階調誤差を拡散させ、画素Ｐｃからは未変換画素Ｐｄ，Ｕ１３〜Ｕ１５に対して階調誤差を拡散させ、画素Ｐｄからは未変換画素Ｕ１２，Ｕ１４〜Ｕ１６に対して階調領域を拡散させる。このようにして、着目ブロック内の画素別に同画素の階調誤差を拡散させながら画像データを変換することができる。
【００８６】
なお、上記以外にも、様々な手法で同階調誤差を他の未変換画素に拡散させることができる。例えば、画素Ｐａ〜Ｐｃについては、着目ブロックＢ１２内の未変換画素にのみ階調誤差を拡散させ、画素Ｐｄについてのみ、他のブロック内の未変換画素に階調誤差を拡散させてもよい。また、未変換画素の位置に応じて同階調誤差を拡散する割合を異ならせるようにしてもよい。むろん、画像データを変換する順番についても様々な順番が可能であり、ブロック毎に画像データの変換処理の順序を変えてもよい。
本実施形態では、着目ブロック内の画素を１画素単位で区分して本発明にいう画素区分としているが、着目ブロック内の画素を２以上の画素単位で区分して画素区分としてもよい。例えば、横２画素×縦１画素を画素区分とすると、まず、画素Ｐａ，Ｐｂの階調値と拡散誤差とに基づいて同画素Ｐａ，Ｐｂ全体の階調誤差を当該画素Ｐａ，Ｐｂ外の未変換画素に拡散させながら同画素Ｐａ，Ｐｂの画像データをまとめて変換すればよい。次に、画素Ｐｃ，Ｐｄの階調値と拡散誤差とに基づいて同画素Ｐｃ，Ｐｄ全体の階調誤差を当該画素Ｐｃ，Ｐｄ外の未変換画素に拡散させながら同画素Ｐｃ，Ｐｃの画像データをまとめて変換すればよい。
【００８７】
以上の考えのもと、上記１画素単位変換処理の詳細を図２０のフローチャートに基づいて説明する。図示を省略しているが、本フローもＣＭＹＫ別に行われる。
まず、着目ブロックＢ１２内で着目画素の位置を設定し（Ｓ５０２）、着目画素の階調値と拡散されてきた拡散誤差とを読み込む（Ｓ５０４）。さらに、着目画素についての補正データＣｘを算出する（Ｓ５０６）。ここで、着目画素の階調値をＳｉ、拡散されてきた拡散誤差をＥｉとすると、補正データＣｘは、以下の式のように階調値Ｓｉと拡散誤差Ｅｉとの和となる。
Ｃｘ ＝ Ｓｉ ＋ Ｅｉ    ・・・（９）
その後、Ｃｘが所定の閾値ｔｈ０よりも大きいか（または、以上か）否かを判断する（Ｓ５０８）。Ｃｘ＞ｔｈ０である場合、着目画素の階調値を「ドットを形成する」意味の２５５とし（Ｓ５１０）、Ｃｘ≦ｔｈ０の場合、着目画素の画像データを「ドットを形成しない」意味の０とする（Ｓ５１２）。
【００８８】
その後、着目画素で生じる階調誤差を算出する（Ｓ５１４）。ここで、画像データ変換後の着目画素の画像データをＤｏｔとすると、着目画素の階調値Ｓｉ、着目画素に拡散されてきた拡散誤差Ｅｉを用いて、着目画素で生じる階調誤差Ｅ’を算出することができる。
Ｅ’ ＝ Ｓｉ ＋ Ｅｉ − Ｄｏｔ    ・・・（１０）
さらに、図１９で示したように、階調誤差Ｅ’を他の未変換画素に略均等に拡散させる（Ｓ５１６）。そして、着目ブロック内の全画素について変換処理を終了したか否かを判断する（Ｓ５１８）。着目ブロック内で変換処理を行っていない画素がある場合にはＳ５０２に戻り、次の着目画素の位置を設定して、繰り返し上述した変換処理を行う。一方、着目ブロック内の全画素について変換処理を終了した場合、１画素単位変換処理を終了する。
このようにして、２×２画素の着目ブロックにおける１画素単位の画像データの変換処理が終了する。すなわち、図２０で示したフローの処理は、ブロック処理条件を満たさないと判定されたときに着目ブロック内で画素別に画像データを変換する第二変換手段を構成する。
その後、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理が行われる。
【００８９】
図１７のＳ４１６では、４画素単位変換処理（その２）を行い、その後、Ｓ４１８に進む。図２１は、同処理をフローチャートにより示している。
まず、上記Ｓ４５２と同様にして、着目ブロックについての補正データＢｘを算出し（Ｓ５５２）、補正データＢｘが所定の閾値ｔｈ１２（ｔｈ１２＞ｔｈ１１）よりも大きいか（または、以上か）否かを判断する（Ｓ５５４）。Ｂｘ＞ｔｈ１２の場合に着目ブロック内の画素全てをオン（４画素全ての階調値を２５５）とし（Ｓ５５６）、Ｂｘ≦ｔｈ１２の場合に着目ブロック内の１画素のみオフ（例えば、着目ブロック内の右下の画素の階調値を０、残りの３画素の階調値を２５５）とする（Ｓ５５８）。その後、Ｓ４６０，Ｓ４６２と同様にして、着目ブロック全体の階調誤差Ｅを算出し（Ｓ５６０）、同階調誤差Ｅを他のブロック内の未変換画素に拡散させ（Ｓ５６２）、本フローを終了する。
すなわち、図２１で示したフローの処理も第一変換手段を構成することになる。
【００９０】
その後、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理が行われる。
小ブロック変換処理が終了すると、図１４の高解像度用変換処理も終了して、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
【００９１】
ブロック処理条件を満たすと判定したときに実行される図１４のＳ３１８では、１６画素の着目ブロックの階調値の総和Ｓ２が２５５×１６＝４０８０であるか否かを判断する。各画素の階調値は０〜２５５であるので、着目ブロック内の各画素の階調値が全て２５５であるときのみ条件成立となり、Ｓ３２２に進む。一方、各画素の階調値のうち一つでも２５４以下のものがあれば条件不成立となり、Ｓ３２０に進む。
Ｓ３２０では、１６画素単位変換処理（その２）を行い、その後、本フローを終了する。図２２は、同処理をフローチャートにより示している。
【００９２】
まず、着目ブロックについての補正データＢｘを算出する（Ｓ６０２）。本実施形態では、画像データの階調値の大きい領域において、着目ブロック内で１〜４画素のオフを可能にするため、ｔｈ２５＜ｔｈ２６＜ｔｈ２７＜ｔｈ２８である四種類の閾値を用いているが、閾値の数は様々に設定可能である。Ｓ６０４では、Ｂｘがｔｈ２５よりも大きいか否かを判断する。Ｂｘ≦ｔｈ２５のとき、着目ブロック内の４画素をオフとし（Ｓ６０６）、Ｓ６２２に進む。Ｂｘ＞ｔｈ２５のとき、Ｂｘがｔｈ２６よりも大きいか否かを判断する（Ｓ６０８）。Ｂｘ≦ｔｈ２６のとき、着目ブロック内で３画素をオフとし（Ｓ６１０）、Ｓ６２２に進む。Ｂｘ＞ｔｈ２６のとき、Ｂｘがｔｈ２７よりも大きいか否かを判断する（Ｓ６１２）。Ｂｘ≦ｔｈ２７のとき、着目ブロック内で２画素をオフとし（Ｓ６１４）、Ｓ６２２に進む。Ｂｘ＞ｔｈ２７のとき、Ｂｘがｔｈ２８よりも大きいか否かを判断する（Ｓ６１６）。Ｂｘがｔｈ２８以下のとき、着目ブロック内で１画素をオフとし（Ｓ６１８）、Ｓ６２２に進む。Ｂｘ＞ｔｈ２８のとき、着目ブロック内の画素全てをオンとし（Ｓ６２０）、Ｓ６２２に進む。
このように、ブロック単位の変換処理を行う際に着目ブロック内で複数の画素をオフにすることができるため、高画質を維持しながら変換処理をより高速化させることが可能となる。
【００９３】
Ｓ６２２では、Ｓ３７２と同様にして、着目ブロック全体の階調誤差Ｅを算出する。そして、階調誤差Ｅを他のブロック内の未変換画素に略均等に拡散させ（Ｓ６２４）、本フローを終了する。
このように、図２２で示したフローの処理も第一変換手段を構成することになる。その後、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
【００９４】
図１４のＳ３２２では、着目ブロック内の画素全てをオンとする。そして、着目ブロック全体の階調誤差Ｅを算出し（Ｓ３２４）、階調誤差Ｅを他のブロック内の未変換画素に略均等に拡散させて（Ｓ３２６）、本フローを終了する。このように、着目ブロック内の各画素の階調値が全て２５５である場合には、Ｓ３２０の１６画素単位変換処理（その２）が行われないので変換処理を高速化させることができる。その後、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
【００９５】
このように、高解像度（1440×720dpi）の場合に４×４画素の着目ブロックで行われる画像データの変換処理は、同着目ブロックの階調値の平均またはさらに小さくした２×２画素のブロックの階調値の平均をｘとして、図１２で示したように切り替えられることになる。従って、Ｓ３１０，Ｓ３１４，Ｓ４０８，Ｓ４１２の判断処理は、画像データを変換する着目ブロックの階調値の総和またはさらに小さくした２×２画素のブロックの階調値の総和に基づいてブロック処理条件を満たすか否かを判定する判定手段を構成する。そして、図１４で示した階調数変換処理が、画質設定情報に応じて一または二以上の画素数の近隣した画素を処理区分とし、着目された処理区分内の各画素の階調値と拡散誤差とに基づいて、誤差拡散法により画像データを変換する変換処理手段を構成することになる。
【００９６】
なお、720 ×360dpiの場合に行われる低解像度用変換処理（図７のＳ２０８）は、図１７で示した小ブロック変換処理と同様の処理にて行うことができるので、詳しい説明を省略する。すなわち、図７の階調数変換処理のＳ２０４にて、閾値Ｄ３１を第一閾値としてブロックの階調値の平均を基準とした閾値ｄ１０〜ｄ１３のいずれかにブロックの画素数４を乗じた値に設定し、閾値Ｄ３２を第二閾値としてブロックの階調値の平均を基準とした閾値ｄ２０〜ｄ２３のいずれかにブロックの画素数４を乗じた値に設定すれば、Ｓ４０２にて着目小ブロックの代わりに２×２画素の着目ブロックの位置を設定し、Ｓ４０４にて着目ブロック内の各画素の階調値を読み込み、Ｓ４０６にて着目ブロックの階調値の総和（Ｓ３とする）を算出することにより、４画素単位と１画素単位とを切り替えながら変換処理を行うことができる。
【００９７】
また、2880×1440dpi の場合に行われる超高解像度用変換処理（図７のＳ２２４）は、図１４で示した高解像度用変換処理と同様の処理にて行うことができる。すなわち、図７の階調数変換処理のＳ２２０にて、閾値Ｄ２１をブロックの階調値の平均を基準とした閾値ｄ１０にブロックの画素数６４を乗じた値に設定し、閾値Ｄ２２をブロックの階調値の平均を基準とした閾値ｄ２０にブロックの画素数６４を乗じた値に設定すれば、Ｓ３１２，Ｓ３２０にて１６画素単位変換処理（その１，２）の代わりに６４画素単位変換処理（その１，２）を行い、Ｓ３１６にて４×４画素をさらに小さいブロックとする小ブロック変換処理を行えばよい。そして、図１７で示した小ブロック変換処理では、Ｓ４０２にて４×４画素の着目小ブロックの位置を設定し、Ｓ４１０，Ｓ４１６にて４画素単位変換処理（その１，２）の代わりに１６画素単位変換処理（その１，２）を行い、Ｓ４１４にて１画素単位変換処理の代わりに２×２画素をさらに小さいブロックとする小ブロック変換処理を行うことにより、６４画素単位、１６画素単位、４画素単位、１画素単位を切り替えながら変換処理を行うことができる。このように、きめ細やかに処理区分の大きさが切り替わるので、ブロックとしては２×２画素に固定されていた従来と比べ、高画質を維持しながら処理速度をさらに向上させることが可能となる。
また、プリンタに設定された解像度が1440×720dpi以上のときのみ小ブロック変換処理を行うようにしているので、効率よく変換処理を行うことができる。
むろん、2880×1440dpi より高い解像度である場合や、720 ×360dpiより低い解像度である場合も、同様の考え方により処理区分の大きさを切り替えながら変換処理を行うことができる。
【００９８】
以上説明したように、本発明によると、画像をドットマトリクス状の画素で多階調表現した画像データを入力し、各画素の階調誤差を他の未変換画素に拡散させながらドット形成の有無によりプリンタのような画像出力装置の出力画像を表現する画像データを生成するにあたり、入力された画質設定情報に合った適切な大きさの処理区分にて画像データの変換処理を行うことが可能となる。特に、入力された画質設定情報がより高速を意味する情報であるほど４画素単位変換処理と１画素単位変換処理とを切り替える際により高速にて画像データ変換処理が可能な４画素単位変換処理が行われる階調領域が広くなるので、画像データの変換処理は高速化される。従って、誤差拡散法を用いて画像データを変換する処理を効率よく行うことができ、種々の画質設定にて多くの画像データ変換処理を行うときに総合的にみて変換後の画像データをより早く得ることが可能となる。
【００９９】
また、異なる解像度のそれぞれに対応するブロックの階調値の平均値が同じとなる条件のもとで、画像出力装置に設定された解像度が高くなるにつれて出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じた画素数の近隣した画素を処理区分としているので、処理区分の面積は、解像度が高くなるにつれて大きくならないことになる。従って、高い解像度における画質が低い解像度における画質よりも低くなるような意味のない変換処理が行われなくなり、種々の解像度にて多くの変換処理を行うときに総合的にみて変換後の画像データをさらに早く得ることが可能となる。
【０１００】
さらに、要素色ＣＭＹＫの濃さに応じた画素数の近隣した画素を処理区分として誤差拡散法により画像データをまとめて変換することが可能であるので、目立たない要素色について必要以上に小さい処理区分としないようにすることにより高画質を維持しながら処理速度をさらに向上させることが可能となる。特に、異なる要素色ＣＭＹＫのそれぞれに対応するブロックの階調値の平均値が同じとなる条件のもとで、要素色ＣＭＹＫの中で相対的に薄い要素色Ｙに対応する処理区分の画素数を相対的に濃い要素色ＣＭＫに対応する処理区分の画素数以上とするので、目立たない要素色Ｙの画像データについては目立つ要素色ＣＭＫの画像データよりも同じかより大きい処理区分単位でドットが形成され、画質は低下せずに変換処理が高速化される。従って、複数の要素色からなる階調データで表現される画像データに対して多くの変換処理を行うときに総合的にみて変換後の画像データをさらに早く得ることが可能となる。
【０１０１】
加えて、解像度に合った適切な大きさの処理区分にて画像データの変換処理を行うことが可能となるので、より高解像度である場合に変換処理を高速化させることができ、変換処理を効率よく行うことができる。また、各画素の階調値の小さい領域と階調値の大きい領域の双方にて、画像データのうち高画質を維持可能な領域のみドットがブロック単位で形成されるので、高画質を維持しながら変換処理をさらに高速化させることができる。さらに、きめ細やかに画像データをまとめて変換するブロックの大きさを切り替えることにより、解像度に関係なく高画質を維持しながら変換処理を高速化することが可能となる。
【０１０２】
（６）第二の実施形態：
なお、本発明の画像処理プログラムを実行可能な画像処理装置と画像出力装置は、様々な構成が可能である。
例えば、プリンタは、コンピュータと一体化されたものであってもよいし、いわゆるバリアブルプリンタ等のように形成するドットの大きさが可変とされたものであってもよい。上述したフローについては、ＰＣ内で実行する以外にも、一部または全部をプリンタあるいは専用の画像処理装置で実行するようにしてもよい。画像出力装置は、印刷媒体上にドットを形成して印刷を行う装置以外であってもよく、例えば、液晶表示画面上で輝点形成の有無により画像を表現する液晶表示装置であってもよい。
また、プリンタに対してプリンタドライバによらずに解像度が設定されるようになっている場合等では、プリンタに印刷させる解像度を取得するにあたり、プリンタから解像度についての情報を入手することにより解像度を取得してもよい。
さらに、上述した実施形態ではｎ×ｎ画素（ｎは正の整数）を処理区分やブロックとしたが、処理区分やブロックは様々な構成が可能である。例えば、解像度が1440×720dpiであるときに横４画素×縦２画素を処理区分やブロックとする等、解像度の縦横の比と一致した領域の画素を処理区分やブロックとしてもよい。すると、見た目の処理区分やブロックの大きさが縦横同じになっているので、高画質を維持しながら変換処理を高速化させることが可能となる。
【０１０３】
ところで、画質設定情報に応じた画素数の近隣した画素をブロックとしてもよい。図２３は、第二の実施形態において、高解像度における各印刷モードと処理区分の画素数との関係をブロックの階調値の平均値を表す軸に沿って示している。
図において、同じ解像度の中で画質設定情報に対応した４段階となるようにブロックの大きさを設定する。ここで、超高画質モードのときには横２×縦２画素、高画質モードのときには横４×縦２画素、普通モードのときには横４×縦４画素、高速モードのときには横８×縦４画素、のブロックとする。すなわち、画質設定情報がより高速を意味する情報になるほどブロックの画素数を増やしている。閾値としては、固定されたｄ１０，ｄ３０，ｄ４０，ｄ２０を設定する。そして、各ブロックの階調値の平均ｘについて、ｘ≦ｄ１０またはｘ＞ｄ２０のとき、ブロック処理条件を満たすと判定し、各印刷モードに対応した大きさのブロック全体をまとめて誤差拡散法による変換処理を行う。また、横方向の画素数が半分となるように各ブロックを二つに区分したさらに小さいブロックにてｄ１０＜ｘ≦ｄ３０またはｄ４０＜ｘ≦ｄ２０となるとき、別のブロック処理条件を満たすと判定し、各印刷モードに対応した大きさのブロックの半分をまとめて誤差拡散法による変換処理を行う。さらに小さいブロックにてｄ３０＜ｘ≦ｄ４０となるときには、元のブロックを縦横ともに画素数が半分ずつとなるように各ブロックを二つに区分した画素区分別に誤差拡散法による変換処理を行う。なお、位置を設定された着目ブロック内で変換処理を行うには、図１４で示した高解像度用変換処理と同様の処理を行えばよいので、詳しい説明を省略する。
【０１０４】
すると、異なる印刷モードのそれぞれに対応するブロックの階調値の平均値が同じとなる条件のもとで、入力された画質設定情報がより高速を意味する情報になるほど処理区分の画素数が増えることになる。従って、画質設定がより高速になるほど変換処理は高速化され、種々の印刷モードにて多くの変換処理を行うときに総合的にみて変換後の画像データをより早く得ることが可能となる。
なお、第一の実施形態では異なる解像度間で画質の逆転現象が生じないように印刷モードに応じた画素数の近隣した画素を処理区分としたが、第二の実施形態のように印刷モードに応じてブロックの画素数を決定することにより解像度間で画質の逆転現象が生じることとなっても、印刷モードがより高速モード側となるほど変換処理は高速化されるので、多くの変換処理を行うときに総合的にみて変換後の画像データをより早く得る効果が得られることになる。また、各印刷モードで全階調領域にわたって処理区分の画素数を変更しない場合に、同様の効果が得られることになる。
この他、印刷モードに応じて解像度も変化させるようにしてもよい。
【０１０５】
（７）第三の実施形態：
さらに、全階調領域にわたって解像度が高くなるにつれて出力画像上に占める面積が同じかまたは小さくなるように一以上の画素数の近隣した画素を処理区分としてもよい。図２４は、第三の実施形態において、各解像度と処理区分の画素数との関係をブロックの階調値の平均値を表す軸に沿って示している。
図において、いずれの解像度でも２×２画素をブロックとする。各解像度の中では、画質設定情報に対応した４段階となるように閾値を設定する。図の例では、各解像度について同じ閾値を設定することになり、超高画質モードから高速モードになるにつれて閾値ｄ１０，ｄ２０、閾値ｄ１１，ｄ２１、閾値ｄ１２，ｄ２２、閾値ｄ１３，ｄ２３を設定する。そして、印刷モードのそれぞれについて、各ブロックの階調値の平均ｘが閾値ｄ１０〜ｄ１３以下のとき、または、平均ｘが閾値ｄ２０〜ｄ２３より大のとき、ブロック処理条件を満たすと判定し、２×２画素のブロック全体をまとめて誤差拡散法による変換処理を行う。一方、ｄ１０〜ｄ１３＜ｘ≦ｄ２０〜ｄ２３となるときには、画素別に誤差拡散法による変換処理を行う。なお、位置を設定された着目ブロック内で変換処理を行うには、図１７で示した小ブロック変換処理と同様の処理を行えばよいので、詳しい説明を省略する。
【０１０６】
すると、全階調領域にわたって、出力画像上に占める処理区分の面積は解像度が高くなるにつれて大きくならないことになり、より確実に高い解像度であるときの画質を最低でも低い解像度における最高画質とさせることができる。従って、高い解像度における画質が低い解像度における画質よりも低くなるような意味のない変換処理が行われなくなり、種々の解像度にて多くの変換処理を行うときに総合的にみて変換後の画像データをさらに早く得ることが可能となる。
【０１０７】
（８）第四の実施形態：
さらに、画像出力装置が使用する複数の要素色のそれぞれに応じた画素数の近隣した画素をブロックとしてもよい。図２５は、第四の実施形態において、高解像度の高画質モードにおける各要素色と処理区分の画素数との関係をブロックの階調値の平均値を表す軸に沿って示している。なお、図示していないが、同じ解像度の中で画質設定情報に対応した４段階となるように閾値を設定するようになっており、同閾値は要素色にかかわらず同じ値とされるようになっている。
図において、同じ解像度かつ同じ印刷モードの中でプリンタが使用するＣＭＹＫのインクのうち、最も濃いＫに対応する画像データについては横２×縦２画素のブロックとし、次に濃いＣとＭに対応する画像データについては横４×縦２画素のブロックとし、最も薄いＹに対応する画像データについては横４×縦４画素のブロックと、複数の要素色の中で相対的に薄くなるほど対応するブロックの画素数を増やしている。そして、各ブロックの階調値の平均をｘとして、ｘ≦ｄ１０またはｘ＞ｄ２０より大のとき、ブロック処理条件を満たすと判定し、各要素色に対応した大きさのブロック全体をまとめて誤差拡散法による変換処理を行う。また、画素数が半分となるように各ブロックを二つに区分したさらに小さいブロックにてｄ１０＜ｘ≦ｄ３０またはｄ４０＜ｘ≦ｄ２０となるとき、別のブロック処理条件を満たすと判定し、各要素色に対応した大きさのブロックの半分をまとめて誤差拡散法による変換処理を行う。さらに小さいブロックにてｄ３０＜ｘ≦ｄ４０となるときには、元のブロックを縦横ともに画素数が半分ずつとなるように各ブロックを二つに区分した画素区分別に誤差拡散法による変換処理を行う。なお、位置を設定された着目ブロック内で変換処理を行うには、図１４で示した高解像度用変換処理と同様の処理を行えばよいので、詳しい説明を省略する。
【０１０８】
すると、異なる要素色の画像データのそれぞれに対応するブロックの階調値の平均値が同じとなる条件のもとで、要素色が薄いほど処理区分の画素数が増えることになる。薄い要素色は目立たないため、画質は低下せずに変換処理が高速化され、多くの変換処理を行うときに総合的にみて変換後の画像データをより早く得ることが可能となる。
【０１０９】
（９）その他の変形例：
なお、図１４の高解像度用変換処理のＳ３１０，Ｓ３１４、図１７の小ブロック変換処理のＳ４０８，Ｓ４１２の判断処理では、着目ブロックの階調値の総和以外に基づいてブロック処理条件を満たすか否かを判定するようにしてもよい。例えば、着目ブロックの階調値の最大値ＭＡＸと最小値ＭＩＮに基づいてブロック処理条件を満たすか否かを判定してもよい。すると、各画素の階調値が急変する領域では、きめ細やかに画像データを変換することができるので、画像中のいわゆるエッジ部分を不鮮明にさせることなく高画質な画像を得ることが可能となる。この他、以下の条件式
（ Ｓ２ ＞ Ｄ２１ ） OR （ ＭＡＸ ＞ Ｄ２１’ ）
または、
（ Ｓ２ ＞ Ｄ２１ ） AND （ ＭＡＸ ＞ Ｄ２１’ ）
等が成立するか否かを判断するようにしてもよい。ここで、Ｄ２１’は所定の閾値である。また、以下の条件式
Ｓ２ ＋ ＭＡＸ ＞ Ｄ２１''
Ｓ２ ＋ ＭＩＮ ＞ Ｄ２２''
等が成立するか否かを判断するようにしてもよい。ここで、Ｄ２１''，Ｄ２２''は所定の閾値である。また、総和Ｓ２とＭＡＸ，ＭＩＮとにそれぞれに異なる係数を乗じて加算した値に基づいてブロック処理条件等を満たすか否かを判定してもよい。
【０１１０】
さらに、着目ブロックがエッジ部分であるときは着目ブロックよりも小さい処理区分にて画像データの変換処理を行うようにしてもよい。エッジ部分であるか否かは、所定の閾値をｔｈｅ１として、以下の条件式により判定することができる。
ＭＡＸ − ＭＩＮ ＞ ｔｈｅ１
また、縦横に隣り合う画素同士について階調値の差の絶対値ＡＢＳｉを求め、求められた複数の絶対値ＡＢＳｉの最大値が別の閾値以上またはより大であるときに着目ブロックはエッジ部分であると判定してもよい。すると、各画素の階調値が急変する領域ではきめ細やかに画像データを変換することができるので、画像中のいわゆるエッジ部分を不鮮明にさせないことになる。
以上説明したように、本発明によると、種々の態様により、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理を効率よく行い、多くの画像データ変換処理を行うときに総合的にみて変換後の画像データをより早く得ることが可能となる。
【図面の簡単な説明】
【図１】
本発明の第一の実施形態にかかる画像処理装置を含む印刷装置の概略構成図である。
【図２】
プリンタのブロック構成をＰＣとともに示すブロック構成図である。
【図３】
画像処理装置の構成を模式的に示す図である。
【図４】
変換処理手段の構成を模式的に示す図である。
【図５】
画像処理装置が行う処理を示すフローチャートである。
【図６】
印刷インターフェイス画面の一部の領域を示す図である。
【図７】
階調数変換処理を示すフローチャートである。
【図８】
解像度別閾値テーブルの構造を模式的に示す図である。
【図９】
着目ブロックを模式的に示す図である。
【図１０】
２×２画素単位で誤差拡散を行いながら画像データを変換する様子を説明する図である。
【図１１】
閾値と処理区分の画素数との関係を解像度別に示す図である。
【図１２】
閾値と処理区分の画素数との関係を表形式で表す図である。
【図１３】
低解像度における閾値と処理区分の画素数との関係を示す図である。
【図１４】
高解像度用変換処理を示すフローチャートである。
【図１５】
誤差拡散を行いながら画像データを変換する様子を説明する説明図である。
【図１６】
１６画素単位変換処理（その１）を示すフローチャートである。
【図１７】
小ブロック変換処理を示すフローチャートである。
【図１８】
４画素単位変換処理（その１）を示すフローチャートである。
【図１９】
１画素単位で誤差拡散を行いながら画像データを変換する様子を示す模式図である。
【図２０】
１画素単位変換処理を示すフローチャートである。
【図２１】
４画素単位変換処理（その２）を示すフローチャートである。
【図２２】
１６画素単位変換処理（その２）を示すフローチャートである。
【図２３】
第二の実施形態において、高解像度における各印刷モードと処理区分の画素数との関係を示す図である。
【図２４】
第三の実施形態において、各解像度と処理区分の画素数との関係を示す図である。
【図２５】
第四の実施形態において、高解像度の高画質モードにおける各要素色と処理区分の画素数との関係を示す図である。
【符号の説明】
１０…パーソナルコンピュータ
１１…ＣＰＵ
１２…ＲＯＭ
１３…ＲＡＭ
１４ａ…ハードディスク
２０…インクジェットプリンタ
１００…印刷装置
Ａ…画像処理装置
Ａ１…画質設定手段
Ａ２…変換処理手段
Ａ２１…判定手段
Ａ２２…第一変換手段
Ａ２３…第二変換手段
Ａ３…解像度取得手段
Ｔ１〜Ｔ３…解像度別閾値テーブル
Ｂ０１〜Ｂ０３，Ｂ２〜Ｂ４，Ｂ１２，Ｂ２２…着目ブロック
Ｂ０４〜Ｂ０６…さらに小さいブロック
Ｂ１，Ｂ１３，Ｂ２３…ブロック
Ｂ２４…着目小ブロック
Ｂａ〜Ｂｄ…小ブロック
Ｐａ〜Ｐｈ…画素
Ｕ０１〜Ｕ０３…画素
Ｕ１，Ｕ２…処理区分
Ｕ３…画素区分
Ｕ１１〜Ｕ１６，Ｕ２１〜Ｕ３０，Ｕ４１〜Ｕ４５…画素