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