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