(57)【要約】【課題】誤差拡散法により画像データを変換する処理のさらなる高速化を課題とする。【解決手段】ブロックとする所定数の画素の階調値に対応付けて変換処理を行う画素の処理単位を決定するための処理単位情報を記憶しておき、着目ブロック内の各画素の階調値のみを処理単位情報と対比してブロック処理条件を満たすか否かを判定し、ブロック処理条件を満たすと判定されたとき、画像変換処理を着目ブロック単位で行い、ブロック処理条件を満たさないと判定されたときでも、着目ブロック内でのドットの形成状況を判定し、着目ブロック内に形成するドット数が基準ドット数以下と判定したときには画像変換処理を着目ブロック単位で行うようにした。高画質を維持しながら誤差拡散法による画像データの変換処理をさらに高速化させることができる。【選択図】  図３
2005039387.tif 000002
【特許請求の範囲】
【請求項１】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う画像処理装置であって、
ブロックとする所定数の画素の階調値に対応付けて、上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを上記処理単位情報と対比して同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が基準ドット数以下と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同基準ドット数より大と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換手段とを具備することを特徴とする画像処理装置。
【請求項２】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う画像処理装置であって、
ブロックとする所定数の画素の階調値に対応付けて、上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを上記処理単位情報と対比して同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が第二基準ドット数以上と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換手段とを具備することを特徴とする画像処理装置。
【請求項３】
上記判定手段は、上記ブロック処理条件が満たされない所定のブロック移行条件を上記着目ブロックが満たすか否かを同着目ブロック内の各画素の階調値と上記処理単位情報とを対比して判定し、
上記第二変換手段は、上記着目ブロックが上記ブロック移行条件を満たすと判定されたときに上記着目ブロック内でのドットの形成状況を判定して判定結果に対応して上記着目ブロック単位でまたは上記画素区分別に上記変換処理を行い、上記着目ブロックが上記ブロック移行条件を満たさないと判定されたときには上記画素区分別に上記変換処理を行うことを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
上記判定手段は、上記着目ブロックが上記ブロック処理条件を満たすか否かを判定し、同着目ブロックが同ブロック処理条件を満たさないと判定したときに同着目ブロックが上記ブロック移行条件を満たすか否かを判定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
上記判定手段は、上記着目ブロックが上記ブロック処理条件またはブロック移行条件を満たすか否かを判定し、同着目ブロックが同ブロック処理条件またはブロック移行条件を満たすと判定したときに同着目ブロックが上記ブロック処理条件を満たすか否かを判定することを特徴とする請求項３に記載の画像処理装置。
【請求項６】
上記処理単位情報には上記ブロック内の各画素の階調値の総和に対応付けられた第一および第二の閾値が含まれるとともに、同第二の閾値は同第一の閾値よりも高ドット密度側の値とされ、
上記判定手段は、上記着目ブロック内の各画素の階調値の総和が上記第一の閾値から低ドット密度側であるときに上記着目ブロックが上記ブロック処理条件を満たすと判定し、同着目ブロック内の各画素の階調値の総和が上記第一の閾値から高ドット密度側であるとともに上記第二の閾値から低ドット密度側であるときに上記着目ブロックが所定のブロック移行条件を満たすと判定し、
上記第二変換手段は、上記着目ブロックが上記ブロック移行条件を満たすと判定されたときに上記着目ブロック内でのドットの形成状況を判定して判定結果に対応して上記着目ブロック単位でまたは上記画素区分別に上記変換処理を行い、上記着目ブロックが上記ブロック移行条件を満たさないと判定されたときには上記画素区分別に上記変換処理を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項７】
上記第二の閾値は、上記ブロック内の画素数をＮ、画素区分数をＮ０とするとき、低ドット密度側から（Ｎ０−１）／（Ｎ×Ｎ０）以内の値とされていることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
上記処理単位情報には上記ブロック内の各画素の階調値の総和に対応付けられた第三および第四の閾値が含まれるとともに、同第四の閾値は同第三の閾値よりも高ドット密度側の値とされ、
上記判定手段は、上記着目ブロック内の各画素の階調値の総和が上記第四の閾値から高ドット密度側であるときに上記着目ブロックが上記ブロック処理条件を満たすと判定し、同着目ブロック内の各画素の階調値の総和が上記第三の閾値から高ドット密度側であるとともに上記第四の閾値から低ドット密度側であるときに上記着目ブロックが所定のブロック移行条件を満たすと判定し、
上記第二変換手段は、上記着目ブロックが上記ブロック移行条件を満たすと判定されたときに上記着目ブロック内でのドットの形成状況を判定して判定結果に対応して上記着目ブロック単位でまたは上記画素区分別に上記変換処理を行い、上記着目ブロックが上記ブロック移行条件を満たさないと判定されたときには上記画素区分別に上記変換処理を行うことを特徴とする請求項２に記載の画像処理装置。
【請求項９】
上記第三の閾値は、上記ブロック内の画素数をＮ、画素区分数をＮ０とするとき、高ドット密度側から（Ｎ０−１）／（Ｎ×Ｎ０）以内の値とされていることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う画像処理装置であって、
ブロックとする所定数の画素の階調値に対応付けて、上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを上記処理単位情報と対比して同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が基準ドット数以下または同基準ドット数より大きい第二基準ドット数以上と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同基準ドット数より大かつ同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を行う第二変換手段とを具備することを特徴とする画像処理装置。
【請求項１１】
上記処理単位情報には上記ブロック内の各画素の階調値の総和に対応付けられた第一、第二、第三および第四の閾値が含まれるとともに、同第一、第二、第三、第四の閾値の順に、より高ドット密度側の値とされ、
上記判定手段は、上記着目ブロック内の各画素の階調値の総和が上記第一の閾値から低ドット密度側または上記第四の閾値から高ドット密度側であるときに上記着目ブロックが上記ブロック処理条件を満たすと判定し、同着目ブロック内の各画素の階調値の総和が上記第一の閾値から高ドット密度側であるとともに上記第二の閾値から低ドット密度側、または、上記第三の閾値から高ドット密度側であるとともに上記第四の閾値から低ドット密度側であるときに上記着目ブロックが所定のブロック移行条件を満たすと判定し、
上記第二変換手段は、上記着目ブロックが上記ブロック移行条件を満たすと判定されたときに上記着目ブロック内でのドットの形成状況を判定して判定結果に対応して上記着目ブロック単位でまたは上記画素区分別に上記変換処理を行い、上記着目ブロックが上記ブロック移行条件を満たさないと判定されたときには上記画素区分別に上記変換処理を行うことを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
上記処理単位情報には上記ブロック内の各画素の階調値の総和に対応付けられた第一および第四の閾値が含まれるとともに、同第四の閾値は同第一の閾値よりも高ドット密度側の値とされ、
上記判定手段は、上記着目ブロック内の各画素の階調値の総和が上記第一の閾値から低ドット密度側であるかまたは上記第四の閾値から高ドット密度側であるときに上記着目ブロックが上記ブロック処理条件を満たすと判定し、
上記ブロック内の各画素の階調値の総和がとりうる範囲のうち上記第四の閾値から高ドット密度側の範囲が上記第一の閾値から低ドット密度領域側の範囲より広くされていることを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
上記処理単位情報は、上記ブロック内の画素の階調値に対応付けて上記処理単位を決定するための個別処理単位情報を格納した情報テーブルであり、
上記判定手段は、上記着目ブロック内の画素の階調値に対応する上記個別処理単位情報を上記情報テーブルから読み出し、読み出した個別処理単位情報から上記着目ブロックが上記ブロック処理条件を満たすか否かを判定することを特徴とする請求項１〜請求項５，請求項１０のいずれかに記載の画像処理装置。
【請求項１４】
上記第二変換手段は、上記着目ブロック内の画素を区分した画素区分別に上記変換処理を行う際、同着目ブロック内の画素別に上記変換処理を行うことを特徴とする請求項１〜請求項１３のいずれかに記載の画像処理装置。
【請求項１５】
画像をドットマトリクス状の画素で多階調表現した画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換するとともに、同階調数変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる階調数変換処理を行う画像処理装置であって、
解像度変換前の上記画像データを構成する画素の中から一または二以上の近隣した画素を処理区分とするとともに解像度変換後の上記画像データを構成する画素の中から同処理区分に対応する画素数の近隣した画素をブロックとし、上記画像データを階調数変換する着目ブロックに対応する処理区分内の画素の階調値と、同処理区分内の画素の階調値に対応付けられて上記階調数変換処理を行う画素の処理単位を決定するための処理単位情報とを対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記階調数変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の画素を区分した画素区分別に上記階調数変換処理を実行可能な第二変換手段とを具備することを特徴とする画像処理装置。
【請求項１６】
上記判定手段は、上記解像度変換が上記画像データを高解像度化する変換であるとき、上記処理区分を１画素とするとともに上記解像度変換後の画像データを構成する画素の中から同処理区分に対応して同解像度変換の変換倍率に一致する画素数の近隣した画素を上記ブロックとすることを特徴とする請求項１５に記載の画像処理装置。
【請求項１７】
上記判定手段は、上記解像度変換が上記画像データを低解像度化する変換であるか否かを判断し、同解像度変換が低解像度化する変換であると判断したときには上記着目ブロックは上記ブロック処理条件を満たさないと判定することを特徴とする請求項１５に記載の画像処理装置。
【請求項１８】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う画像処理方法であって、
近隣する所定数の画素をブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを、同ブロック内の画素の階調値に対応付けられて記憶されるとともに上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定工程と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換工程と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が基準ドット数以下と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同基準ドット数より大と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換工程とを具備することを特徴とする画像処理方法。
【請求項１９】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う画像処理方法であって、
近隣する所定数の画素をブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを、同ブロック内の画素の階調値に対応付けられて記憶されるとともに上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定工程と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換工程と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が第二基準ドット数以上と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換工程とを具備することを特徴とする画像処理方法。
【請求項２０】
画像をドットマトリクス状の画素で多階調表現した画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換するとともに、同階調数変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる階調数変換処理を行う画像処理方法であって、
解像度変換前の上記画像データを構成する画素の中から一または二以上の近隣した画素を処理区分とするとともに解像度変換後の上記画像データを構成する画素の中から同処理区分に対応する画素数の近隣した画素をブロックとし、上記画像データを階調数変換する着目ブロックに対応する処理区分内の画素の階調値と、同処理区分内の画素の階調値に対応付けられて上記階調数変換処理を行う画素の処理単位を決定するための処理単位情報とを対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定する判定工程と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記階調数変換処理を同着目ブロック単位で行う第一変換工程と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の画素を区分した画素区分別に上記階調数変換処理を実行可能な第二変換工程とを具備することを特徴とする画像処理方法。
【請求項２１】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行い、変換後の画像データに対応する画像の印刷制御を行う印刷制御装置であって、
ブロックとする所定数の画素の階調値に対応付けて、上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを上記処理単位情報と対比して同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が基準ドット数以下と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同基準ドット数より大と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換手段と、
上記変換後の画像データに対応する画像を印刷させる制御を行う印刷制御手段とを具備することを特徴とする印刷制御装置。
【請求項２２】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行い、変換後の画像データに対応する画像の印刷制御を行う印刷制御装置であって、
ブロックとする所定数の画素の階調値に対応付けて、上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを上記処理単位情報と対比して同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が第二基準ドット数以上と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換手段と、
上記変換後の画像データに対応する画像を印刷させる制御を行う印刷制御手段とを具備することを特徴とする印刷制御装置。
【請求項２３】
画像をドットマトリクス状の画素で多階調表現した画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換するとともに、同階調数変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる階調数変換処理を行い、階調数変換後の画像データに対応する画像の印刷制御を行う印刷制御装置であって、
解像度変換前の上記画像データを構成する画素の中から一または二以上の近隣した画素を処理区分とするとともに解像度変換後の上記画像データを構成する画素の中から同処理区分に対応する画素数の近隣した画素をブロックとし、上記画像データを階調数変換する着目ブロックに対応する処理区分内の画素の階調値と、同処理区分内の画素の階調値に対応付けられて上記階調数変換処理を行う画素の処理単位を決定するための処理単位情報とを対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記階調数変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の画素を区分した画素区分別に上記階調数変換処理を実行可能な第二変換手段と、
上記階調数変換後の画像データに対応する画像を印刷させる制御を行う印刷制御手段とを具備することを特徴とする印刷制御装置。
【請求項２４】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う機能をコンピュータに実現させる画像処理プログラムであって、
近隣する所定数の画素をブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを、同ブロック内の画素の階調値に対応付けられて記憶されるとともに上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定機能と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換機能と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が基準ドット数以下と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同基準ドット数より大と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換機能とを実現させることを特徴とする画像処理プログラム。
【請求項２５】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う機能をコンピュータに実現させる画像処理プログラムであって、
近隣する所定数の画素をブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを、同ブロック内の画素の階調値に対応付けられて記憶されるとともに上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定機能と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換機能と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が第二基準ドット数以上と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換機能とを実現させることを特徴とする画像処理プログラム。
【請求項２６】
画像をドットマトリクス状の画素で多階調表現した画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換するとともに、同階調数変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる階調数変換処理を行う機能をコンピュータに実現させる画像処理プログラムであって、
解像度変換前の上記画像データを構成する画素の中から一または二以上の近隣した画素を処理区分とするとともに解像度変換後の上記画像データを構成する画素の中から同処理区分に対応する画素数の近隣した画素をブロックとし、上記画像データを階調数変換する着目ブロックに対応する処理区分内の画素の階調値と、同処理区分内の画素の階調値に対応付けられて上記階調数変換処理を行う画素の処理単位を決定するための処理単位情報とを対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定する判定機能と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記階調数変換処理を同着目ブロック単位で行う第一変換機能と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の画素を区分した画素区分別に上記階調数変換処理を実行可能な第二変換機能とを実現させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置、画像処理方法、印刷制御装置および画像処理プログラムに関する。
【０００２】
【従来の技術】
従来、画像を印刷する際には、画像をドットマトリクス状の画素で多階調表現した画像データを入力し、誤差拡散法により、各画素の階調誤差を他の未変換画素に拡散させながら各画素に対応してドット形成の有無により表現した画像データに変換する処理を行っている。この誤差拡散法によると、誤差が生じないため画質はよい反面、誤差を算出して割り振っていく際の演算処理に時間がかかるため、２×２画素をまとめてブロックとし、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させながら同着目ブロック内の画素の画像データをまとめて変換するブロック単位処理が行われている。同ブロック単位処理によると、画像データを変換する処理を高速化することができるものの、１画素単位で変換する場合と比べて画像の分解能は低下し、画質が低下することになる。
そこで、引用文献１に開示された技術のように、ブロック単位の変換処理を行っても高画質を維持可能である画像の明度が高い領域を所定のブロック処理条件が成立する領域として設定し、同ブロック処理条件を満たすか否かを着目ブロック内の画素全ての階調値と拡散されてきた階調誤差との総和に基づいて判定している。具体的には、同総和Ｂｘがブロック内の階調値のとりうる範囲の中から閾値ｔｈ２以下となるような所定の範囲を持ったブロック処理条件を満たすか否かを判定している。そして、同ブロック処理条件を満たすと判定したとき着目ブロック内の画素の画像データをまとめて変換する処理を行い、同ブロック処理条件を満たさないと判定したとき一律に着目ブロック内で画素別に画像データを変換する処理を行っている。その結果、画像データのうちドット形成密度が非常に小さくて分解能の低下が目立たず高画質を維持可能な領域のみ、ドットはブロック単位で形成され、画像データの変換処理はある程度高速化されながら高画質が維持される。
【０００３】
【特許文献１】
特開２００２−１８５７８９号公報
【０００４】
【発明が解決しようとする課題】
上述した従来の技術においては、画像データの変換処理をある程度高速化させることができるものの、さらなる高速化が望まれていた。
本発明は、上記課題にかんがみてなされたもので、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能な画像処理装置、画像処理方法、印刷制御装置および画像処理プログラムの提供を目的とする。
【０００５】
【課題を解決するための手段および発明の効果】
上記目的を達成するため、請求項１、請求項２、請求項１０にかかる発明では、上記記憶手段と判定手段と第一変換手段と第二変換手段を具備する構成としてある。
本画像処理装置は、画像をドットマトリクス状の画素で多階調表現した画像データを、ドット形成の有無により表現した画像データに変換する。この変換の際、変換対象の画素について当該画素の階調値と拡散されてきた階調誤差（以下、拡散誤差とも記載）からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う。
上記変換処理を行う画素の処理単位を決定するための処理単位情報が、ブロックとする所定数の画素の階調値に対応付けられて記憶手段により記憶されている。判定手段は、近隣する上記所定数の画素を上記ブロックとし、画像データを変換する着目ブロック内の各画素の階調値のみを処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定する。同ブロック処理条件は、ブロック内の階調値のとりうる範囲の中から所定の範囲を持っており、ある階調値のみ満たされるような範囲を持たない条件ではない。
着目ブロックについてブロック処理条件が満たされると判定されたとき、第一変換手段は、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。
一方、着目ブロックについてブロック処理条件が満たされないと判定されたとき、第二変換手段は、着目ブロック内の各画素の階調値と拡散誤差とから同着目ブロック内でのドットの形成状況を判定し、判定結果に対応する処理を行う。
【０００６】
請求項１にかかる発明では、着目ブロック内に形成するドット数が基準ドット数以下と判定したときには、第一変換手段のように、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。そして、着目ブロック内に形成するドット数が基準ドット数より大と判定したときに、着目ブロック内の画素を区分した画素区分別に上記変換処理を行うことが可能である。言い換えると、画像データの変換処理（以下、画像変換処理とも記載）はブロックよりも小さな画素単位で行われることになる。
すなわち、誤差拡散法を用いて画像データを変換する際に上記ブロック処理条件が成立していないときでも、着目ブロック内で基準ドット数以下しかドットが形成されない場合にはブロック単位で画像変換処理が行われる。なお、ブロック内に基準ドット数以下しかドットが形成されないとき、画像変換処理をブロック単位で行ったとしても着目ブロック内から当該着目ブロック外に拡散される階調誤差は同じであり、また、ドットが基準ドット数以下しか形成されないことには変わりがないため、高画質を維持することができる。従って、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。
また、着目ブロック内の各画素の階調値のみを処理単位情報と対比しているので、着目ブロック内に拡散されてくる階調誤差の大きさによって画像変換処理の処理単位がブロック単位と画素区分単位とで切り替わることはない。従って、ブロック内の階調値が同じときに同処理単位が切り替わることによる意図しないドットの模様が現れるようなことはなく、変換後の画像データに基づく画像をさらに高画質にさせることも可能となる。
ここで、基準ドット数を０としてもよい。すると、第二変換手段は、着目ブロック内にドットを形成しないと判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、着目ブロック内にドットを形成すると判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を行うことになる。この場合、着目ブロックについてブロック処理条件が成立していないときでも、着目ブロック内でドットが形成されない場合にはブロック単位で画像変換処理が行われるので、簡易な構成で画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。
なお、基準ドット数より１多い別の基準ドット数からみると、着目ブロック内に形成するドット数が別の基準ドット数より小と判定したときには基準ドット数以下と判定したことになり、同ドット数が別の基準ドット数以上と判定したときには基準ドット数より大と判定したことになるので、請求項１にかかる発明に含まれる。
【０００７】
請求項２にかかる発明では、着目ブロック内に形成するドット数が第二基準ドット数以上と判定したときには、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。一方、着目ブロック内に形成するドット数が第二基準ドット数より小と判定したときに、着目ブロック内の画素を区分した画素区分別に上記変換処理を行うことが可能である。
すなわち、誤差拡散法を用いて画像データを変換する際に上記ブロック処理条件が成立していないときでも、着目ブロック内で第二基準ドット数以上のドットが形成される場合にはブロック単位で画像変換処理が行われる。なお、ブロック内に基準ドット数以上ドットが形成されるとき、画像変換処理をブロック単位で行ったとしても着目ブロック内から当該着目ブロック外に拡散される階調誤差は同じであり、また、ドットが基準ドット数以上形成されることには変わりがないため、高画質を維持することができる。従って、誤差拡散法による画像変換処理をさらに高速化させることが可能となる。また、上述したのと同様の作用により、意図しないドットの模様が現れるようなことはなく、変換後の画像データに基づく画像をさらに高画質にさせることも可能となる。
なお、第二基準ドット数より１少ない別の第二基準ドット数からみると、着目ブロック内に形成するドット数が別の第二基準ドット数より大と判定したときには第二基準ドット数以上と判定したことになり、同ドット数が別の第二基準ドット数以下と判定したときには第二基準ドット数より小と判定したことになるので、請求項２にかかる発明に含まれる。
【０００８】
請求項１０にかかる発明では、着目ブロック内に形成するドット数が基準ドット数以下、または、第二基準ドット数以上と判定したときには、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。なお、第二基準ドット数は、基準ドット数より大きくされている。一方、着目ブロック内に形成するドット数が基準ドット数より大、かつ、第二基準ドット数より小と判定したときに、着目ブロック内の画素を区分した画素区分別に上記変換処理を行う。
すなわち、誤差拡散法を用いて画像データを変換する際に上記ブロック処理条件が成立していないときでも、着目ブロック内で基準ドット数以下しかドットが形成されないか、または、第二基準ドット数以上のドットが形成される場合にはブロック単位で画像変換処理が行われる。ドットの密度が低い低ドット密度の領域とドット密度が高い高ドット密度の領域の両方で画像変換処理をブロック単位で行うことにより、より効果的に誤差拡散法による画像変換処理を高速化させることが可能となる。また、上述したのと同様の作用により、意図しないドットの模様が現れるようなことはなく、変換後の画像データに基づく画像をさらに高画質にさせることも可能となる。
【０００９】
ここで、請求項１４にかかる発明のように、画素区分を１画素としてもよい。すなわち、第二変換手段の一例を提供することができ、画素区分別に変換処理を行う際に１画素単位という簡易な処理にて画像変換処理が行われるようになる。従って、簡易な構成にて、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。
むろん、着目ブロック内を区分する画素は、上述したように１画素とする以外にも、複数の画素としてもよく、この場合であっても本発明に含まれる。また、画素区分は着目ブロック内の画素を均等に区分したものであってもよいし、着目ブロック内の画素を不均等に区分したものであってもよい。
なお、変換前の画像データは、複数の色データから構成されるカラー画像データ、単独の色データから構成されるモノクロ画像データ、等、様々なデータが考えられる。また、同画像データは様々な階調数とすることができ、例えば、２５６階調、２のｎ乗でない１００階調等としてもよい。さらに、誤差拡散法を用いてドットを形成する際、二値化によりドットを形成してもよいし、例えば大中小のドットを形成するために二値よりも大きい多値化によりドットを形成してもよい。
【００１０】
ところで、請求項１、請求項２または請求項１０に記載の画像処理装置において、上記判定手段は、上記ブロック処理条件が満たされない所定のブロック移行条件を上記着目ブロックが満たすか否かを同着目ブロック内の各画素の階調値と上記処理単位情報とを対比して判定し、上記第二変換手段は、上記着目ブロックが上記ブロック移行条件を満たすと判定されたときに上記着目ブロック内でのドットの形成状況を判定して判定結果に対応して上記着目ブロック単位でまたは上記画素区分別に上記変換処理を行い、上記着目ブロックが上記ブロック移行条件を満たさないと判定されたときには上記画素区分別に上記変換処理を行う構成としてもよい。
着目ブロックについてブロック移行条件が満たされると判定されたときにのみ、着目ブロック内でのドットの形成状況が判定されて判定結果に対応して着目ブロック単位でまたは画素区分別に上記変換処理が行われる。ブロック処理条件が満たされず、かつ、ブロック移行条件も満たされないときには、ドット形成状況の判定をするまでもなく画素区分単位の変換処理が行われるので、画像変換処理の速度をさらに向上させることが可能となる。
【００１１】
ブロック移行条件を設ける一例として、上記判定手段は、上記着目ブロックが上記ブロック処理条件を満たすか否かを判定し、同着目ブロックが同ブロック処理条件を満たさないと判定したときに同着目ブロックが上記ブロック移行条件を満たすか否かを判定する構成としてもよい。ブロック処理条件を満たす場合が比較的多いときに、画像変換処理の速度をさらに向上させることが可能となる。例えば、ブロック処理条件を満たす場合が満たさない場合よりも多い場合に、同条件を満たす場合が比較的多いと判定して先に同条件成立の可否を判定するようにしてもよい。
【００１２】
別の一例として、上記判定手段は、上記着目ブロックが上記ブロック処理条件またはブロック移行条件を満たすか否かを判定し、同着目ブロックが同ブロック処理条件またはブロック移行条件を満たすと判定したときに同着目ブロックが上記ブロック処理条件を満たすか否かを判定する構成としてもよい。両条件を満たす場合が満たさない場合と比べて比較的多いときに、画像変換処理の速度をさらに向上させることが可能となる。例えば、両条件を満たす場合が満たさない場合よりも多い場合に、両条件を満たす場合が比較的多いと判定して先に両条件成立の可否を判定するようにしてもよい。
【００１３】
上記ブロック処理条件とブロック移行条件を具体的に規定する一例として、請求項６にかかる発明のように、第一の閾値と、この第一の閾値よりも高ドット密度側の第二の閾値を設けてもよい。着目ブロック内の各画素の階調値の総和が第一の閾値から低ドット密度側であるときにブロック処理条件が満たされてブロック単位の変換処理が行われ、同総和が第一の閾値から第二の閾値までであるときにブロック移行条件が満たされてドット形成状況の判定結果に対応する処理単位で変換処理が行われ、同総和が第二の閾値から高ドット密度側であるときに画素区分別に変換処理が行われる。ブロック内で基準ドット数以下しかドットが形成されず、分解能の低下の目立たないドットの形成密度が小さい低ドット密度領域のみドットはブロック単位で形成されるので、簡易な構成ながら画質を低下させずに変換処理をさらに高速化させることができる。また、着目ブロック内への階調誤差が考慮されて着目ブロック内でのドットの形成状況が判定されるので、精度よくドットの形成状況を判定することができる。
なお、ブロック内の各画素の階調値の平均は同階調値の総和をブロック内の画素数で除したものであるので、同階調値の平均は同階調値の総和に含まれる。以下も、同様である。
【００１４】
このとき、上記第二の閾値は、上記ブロック内の画素数をＮ、画素区分数をＮ０とするとき、低ドット密度側から（Ｎ０−１）／（Ｎ×Ｎ０）以内の値とされていると、より確実に画像変換処理をさらに高速化させることができる。なお、本発明において、「（Ｎ０−１）／（Ｎ×Ｎ０）以内」には「（Ｎ０−１）／（Ｎ×Ｎ０）」も含まれるものとする。
【００１５】
また、請求項８にかかる発明のように、第三の閾値と、この第三の閾値よりも高ドット密度側の第四の閾値を設けてもよい。着目ブロック内の各画素の階調値の総和が第四の閾値から高ドット密度側であるときにブロック処理条件が満たされてブロック単位の変換処理が行われ、同総和が第四の閾値から第三の閾値までであるときにブロック移行条件が満たされてドット形成状況の判定結果に対応する処理単位で変換処理が行われ、同総和が第三の閾値から低ドット密度側であるときに画素区分別に変換処理が行われる。ブロック内で基準ドット数以上ドットが形成され、分解能の低下の目立たないドットの形成密度が大きい高ドット密度領域のみドットはブロック単位で形成されるので、簡易な構成ながら画質を低下させずに変換処理をさらに高速化させることができる。また、着目ブロック内への階調誤差が考慮されて着目ブロック内でのドットの形成状況が判定されるので、精度よくドットの形成状況を判定することができる。
【００１６】
このとき、上記第三の閾値は、上記ブロック内の画素数をＮ、画素区分数をＮ０とするとき、高ドット密度側から（Ｎ０−１）／（Ｎ×Ｎ０）以内の値とされていると、より確実に画像変換処理をさらに高速化させることができる。なお、本発明において、「（Ｎ０−１）／（Ｎ×Ｎ０）以内」には「（Ｎ０−１）／（Ｎ×Ｎ０）」も含まれるものとする。
【００１７】
さらに、請求項１１にかかる発明のように、順に、より高ドット密度側の値とされた第一、第二、第三、第四の閾値を設けてもよい。着目ブロック内への階調誤差が考慮されるので、着目ブロック内でのドットの形成状況を精度よく判定することができるとともに、閾値を用いるという簡易な構成ながら、画質を低下させずに変換処理をより効果的に高速化させることができる。
【００１８】
さらに、請求項１２にかかる発明のように、第一の閾値と、この第一の閾値よりも高ドット密度側の第四の閾値とを設け、ブロック内の各画素の階調値の総和がとりうる範囲のうち同第四の閾値から高ドット密度側の範囲が同第一の閾値から低ドット密度領域側の範囲より広くされているようにしてもよい。印刷装置等の画像出力装置の高解像度化が進むなか、画像出力装置が形成する１ドットの面積は同画像出力装置に設定された１画素の面積より大きくなっている。すると、低ドット密度領域でドットを形成する割合と高ドット密度領域でドットを形成しない割合とが同じであるとすると、高ドット密度領域で形成されたドットが占める領域の面積は、低ドット密度領域でドットが形成されていない領域の面積よりも小さくなる。その結果、高ドット密度領域のほうが低ドット密度領域よりも分解能の低下が目立たないので、第四の閾値から高ドット密度側の範囲を第一の閾値から低ドット密度領域側の範囲より広くしても、画質を低下させずに画像変換処理をさらに高速化させることができる。
以上のことから、本構成は、形成される１ドットの面積が設定された１画素の面積より大きい画像出力装置の出力画像を表現する画像データを生成する画像処理装置に好適である。
なお、第二および第三の閾値についても、上記ブロック内の各画素の階調値の総和がとりうる範囲のうち同第三の閾値から高ドット密度側の範囲が同第二の閾値から低ドット密度領域側の範囲より広くされている構成としてもよく、同様の作用、効果となる。
【００１９】
むろん、ブロック処理条件やブロック移行条件を判定するために閾値を設けなくてもよく、上記処理単位情報は、上記ブロック内の画素の階調値に対応付けて上記処理単位を決定するための個別処理単位情報を格納した情報テーブルであり、上記判定手段は、上記着目ブロック内の画素の階調値に対応する上記個別処理単位情報を上記情報テーブルから読み出し、読み出した個別処理単位情報から上記着目ブロックが上記ブロック処理条件およびブロック移行条件を満たすか否かを判定する構成としてもよい。簡易な構成ながら画質を低下させずに変換処理をさらに高速化させることができる。
【００２０】
ところで、画像をドットマトリクス状の画素で多階調表現した画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換するとともに、同階調数変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる階調数変換処理を行う画像処理装置の場合、解像度変換前の画像データを利用してブロック処理条件を判定してもよい。そこで、請求項１５にかかる発明は、上記判定手段と第一変換手段と第二変換手段とを具備する構成としてある。
判定手段は、解像度変換前の画像データを構成する画素の中から一または二以上の近隣した画素を処理区分とするとともに、解像度変換後の画像データを構成する画素の中から同処理区分に対応する画素数の近隣した画素をブロックとする。そして、画像データを階調数変換する着目ブロックに対応する処理区分内の画素の階調値と処理単位情報とを対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定する。同処理単位情報は、処理区分内の画素の階調値に対応付けられて階調数変換処理を行う画素の処理単位を決定するための情報である。
着目ブロックについてブロック処理条件が満たされると判定されたとき、第一変換手段は、着目ブロック内の全画素をまとめて上記変換対象として上記階調数変換処理を同着目ブロック単位で行う。一方、着目ブロックについてブロック処理条件が満たされないと判定されたとき、第二変換手段は、着目ブロック内の画素を区分した画素区分別に上記階調数変換処理を行うことが可能である。
【００２１】
すなわち、ブロック処理条件が満たされる領域を高画質を維持可能な領域とすれば、高画質を維持可能な領域のみドットはブロック単位で形成されるので、画像データの変換処理を高速化させることができる。また、解像度変換前の画像データから着目ブロックに対応する処理区分内の画素の階調値を参照することにより、着目ブロック内の画素の階調値を参照する必要がなくなるので、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。
なお、請求項１〜請求項１４に記載された構成を請求項１５に対応させることも可能である。
【００２２】
上記判定手段は、上記解像度変換が上記画像データを高解像度化する変換であるとき、上記処理区分を１画素とするとともに上記解像度変換後の画像データを構成する画素の中から同処理区分に対応して同解像度変換の変換倍率に一致する画素数の近隣した画素を上記ブロックとする構成としてもよい。解像度変換前の画像データから着目ブロックに対応する１画素のみの階調値を参照することにより、着目ブロック内の画素の階調値を参照する必要がなくなるので、誤差拡散法による画像変換処理をより効果的に高速化させることが可能となる。
【００２３】
また、上記判定手段は、上記解像度変換が上記画像データを低解像度化する変換であるか否かを判断し、同解像度変換が低解像度化する変換であると判断したときには上記着目ブロックは上記ブロック処理条件を満たさないと判定する構成としてもよい。解像度変換が低解像度化する変換であるとき、低解像度化された画像データの階調数変換処理は時間が短くて済むので、高速化よりも画質維持を優先させることが可能である。本構成によると、着目ブロック内の画素を区分した画素区分別に階調数変換処理が行われるので、誤差拡散法による画像変換処理を高速にて行う際に効率よく処理を行うことが可能となる。
【００２４】
なお、上述した第一変換手段と第二変換手段は、様々な構成により階調誤差を周辺の未変換画素に拡散させることができる。例えば、周辺の未変換画素に対して階調誤差を略均等に拡散させると、簡易な構成にて誤差拡散を行うことができる。むろん、未変換画素に拡散する割合に異なる重みを持たせてもよい。第一変換手段が画素区分別に上記変換処理を行う際には、階調誤差を着目ブロック内の未変換画素に拡散させてもよいし、着目ブロック外の未変換画素に拡散させてもよい。
上述したブロックは、様々な構成が可能であり、例えば、２×２画素、３×３画素、２×４画素、１×５画素、等とすることができる。
【００２５】
また、上記第二変換手段は、上記着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定したとき、同着目ブロック内に形成するドット数が基準ドット数より大と判定したときに同着目ブロック全体では画素をまとめずに上記変換処理を実行可能な手段としても、同様の作用、効果となる。
さらに、上記第二変換手段は、上記着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定したとき、同着目ブロック内に形成するドット数が第二基準ドット数より小と判定したときに同着目ブロック全体では画素をまとめずに上記変換処理を実行可能な手段としても、同様の作用、効果となる。
さらに、上記第二変換処理は、上記着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定したとき、同着目ブロック内に形成するドット数が基準ドット数より大かつ同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を行う手段としても、同様の作用、効果となる。
【００２６】
ところで、上述した画像処理装置は、単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としては各種の態様を含むものであって、適宜、変更可能である。
また、上述した画像処理を行う際の手法は、所定の手順に従って処理を進めていくうえで、その根底にはその手順に発明が存在する。従って、請求項１８〜請求項２０にかかる発明のように、本発明は画像処理装置の制御方法としても適用可能であり、同様の作用、効果となる。
さらに、請求項２１〜請求項２３にかかる発明のように、本発明は画像データに基づく画像の印刷制御を行う印刷制御手段を備える印刷制御装置としても適用可能であり、さらに、画像を印刷する印刷手段を備える印刷装置としても適用可能であり、同様の作用、効果となる。
【００２７】
本発明を実施しようとする際に、画像処理装置にて所定のプログラムを実行させる場合もあるので、請求項２４〜請求項２６にかかる発明のように、本発明は画像処理装置の制御プログラムとしても適用可能であり、さらに、その制御プログラムを記録したコンピュータ読み取り可能な記録媒体としても適用可能であり、同様の作用、効果となる。ここで、上記記録媒体は、磁気記録媒体や光磁気記録媒体の他、今後開発されるいかなる記録媒体であってもよい。二次複製品等の複製段階も問わない。一部がハードウェアで実現される場合や、一部を記録媒体上に記録しておいて必要に応じて適宜読み込む場合も本発明の思想に含まれる。
なお、本発明を構成する第二変換機能が着目ブロック内の画素の画像データをまとめて変換する際には、上記第一変換機能を利用して変換してもよいし、上記第一変換機能を実現させるプログラムとは別のプログラムにより変換してもよい。また、着目ブロック内の画素の画像データをまとめて変換する機能を実現させるプログラムをサブルーチンとしておき、第一変換機能、第二変換機能の双方が同サブルーチンをコールするようにしてもよい。
【００２８】
むろん、請求項３〜請求項９，請求項１１〜請求項１４，請求項１６，請求項１７に記載された構成を上記方法や印刷制御装置や印刷装置やプログラムやプログラムを記録した媒体に対応させることも可能である。
【００２９】
【発明の実施の形態】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）画像処理装置の構成の概略：
（２）画像処理装置の各種手段の構成：
（３）画像処理装置が行う処理の概略：
（４）画像処理装置が行う処理の詳細：
（５）第二の実施形態：
（６）まとめ：
【００３０】
（１）画像処理装置の構成の概略：
図１は、本発明の第一の実施形態にかかる画像処理装置を含む印刷装置（広義の印刷装置）１００の概略構成を示している。本印刷装置１００は、本発明にいう画像処理装置および印刷制御装置となるパーソナルコンピュータ（ＰＣ）１０と、画像出力装置（狭義の印刷装置）であるカラー印刷可能なインクジェットプリンタ２０とから構成されている。
ＰＣ１０では、演算処理の中枢をなすＣＰＵ１１がシステムバス１０ａを介してＰＣ全体の制御を行う。同バス１０ａには、ＲＯＭ１２、ＲＡＭ１３、各種ドライブ１４，１５、各種インターフェイス（Ｉ／Ｆ）１６〜１９等が接続されている。本発明にいう記憶手段は、ハードディスクドライブ１４ａとハードディスク（ＨＤ）１４とから構成される。本発明に用いられるコンピュータは、デスクトップ型ＰＣ、ノート型ＰＣ、モバイル対応ＰＣ、等、コンピュータとして一般的な構成を有していればよく、ＰＣに限定されるものではない。
【００３１】
ＨＤ１４にはオペレーティングシステム（ＯＳ）や画像情報等を作成可能なアプリケーションプログラム（ＡＰＬ）等が格納されており、これらのソフトウェアは、実行時にＣＰＵ１１によって適宜ＲＡＭ１３に転送される。また、ＨＤ１４は、複数の閾値からなる処理単位情報１４ｂを画像処理プログラムとともに記憶している。
入力Ｉ／Ｆ１６には、キーボード１６ａやマウス１６ｂが操作用入力機器として接続されている。また、ＣＲＴＩ／Ｆ１７には、表示用のディスプレイ１７ａが接続されている。さらに、プリンタＩ／Ｆ１９には、例えばシリアルＩ／Ｆ接続によりプリンタ２０が接続されている。
【００３２】
なお、ＨＤ１４は画像処理プログラムを記録した媒体となるが、本プログラムを格納可能な記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク、不揮発性メモリ等であってもよい。さらに、バス１０ａに接続されたモデム等の通信Ｉ／Ｆ１８をインターネット網に接続し、所定のサーバから本プログラムをダウンロードして実行することも可能である。
【００３３】
プリンタ２０は、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）、の計４色（複数の要素色）の色インクを使用するものとする。むろん、６色、７色、等、４色以外のインクを使用するプリンタを採用してもよい。また、インク通路内に泡を発生させてインクを吐出するバブル方式のプリンタや、複数色のカラートナーを使用するレーザープリンタ等、種々の印刷装置を採用可能である。
図２は、変換後の画像データに基づく画像を印刷する印刷手段であるプリンタ２０のブロック構成をＰＣ１０とともに示している。プリンタ２０では、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＡＳＩＣ２４、コントロールＩＣ２５、通信Ｉ／Ｏ２６、Ｉ／Ｆ２７がバス２０ａを介して接続されている。
【００３４】
通信Ｉ／Ｏ２６はＰＣのプリンタＩ／Ｆ１９と接続されており、プリンタ２０は通信Ｉ／Ｏ２６を介してＰＣ１０から送信されるＣＹＭＫに変換された画像のデータやページ記述言語等からなる印刷ジョブを受信する。また、ＰＣ１０から各種要求を受信したとき、通信Ｉ／Ｏ２６は対応する情報をＰＣ１０に出力する。印刷時の解像度として７２０  ×３６０ｄｐｉ、１４４０×７２０ｄｐｉ、２８８０×１４４０ｄｐｉ  等を選択可能となっており、ＰＣ１０から通信Ｉ／Ｏ２６を介して解像度の選択情報を入手してＲＡＭ２３に記憶しておき、解像度に応じたドット単位で印刷を行うことが可能となっている。
【００３５】
カートリッジホルダ２８にはＣＹＭＫのインクカートリッジ２８ａ〜ｄが装着されており、インクカートリッジ２８ａ〜ｄ内の各インクが色別に図示しない印刷ヘッドに供給されるようになっている。ＡＳＩＣ２４は、ＣＰＵ２１と所定の信号を送受信しつつヘッド駆動部２９に対してＣＹＭＫデータに基づく印加電圧データを出力する。同ヘッド駆動部２９は、同印加電圧データに基づいて印刷ヘッドに内蔵されたピエゾ素子への印加電圧パターンを生成し、印刷ヘッドに４色のインクを解像度に応じたドット単位で吐出させる。印刷ヘッドのインク吐出面には、４色のインクを吐出する４組のノズル列が印刷ヘッドの主走査方向に並ぶように形成され、ノズル列のそれぞれは複数のノズルが副走査方向に一定の間隔で直線状に配置されている。
Ｉ／Ｆ２７に接続されたキャリッジ機構２７ａや紙送り機構２７ｂは、印刷ヘッドを主走査させたり、適宜改ページ動作を行いながらメディアを順次送り出して副走査を行ったりする。そして、ＣＰＵ２１が、ＲＡＭ２３をワークエリアとして利用しながらＲＯＭ２２に書き込まれたプログラムに従って各部を制御する。
【００３６】
ＰＣ１０では、以上のハードウェアを基礎としてバイオスが実行され、その上層にてＯＳとＡＰＬとが実行される。ＯＳには、プリンタＩ／Ｆ１９を制御するプリンタドライバ等の各種のドライバ類が組み込まれ、ＯＳの一部となってハードウェアの制御を実行する。プリンタドライバは、プリンタＩ／Ｆ１９を介してプリンタ２０と双方向の通信を行うことが可能であり、ＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ  ）等が組み込まれたＯＳを介してＡＰＬから画像データを受け取って印刷ジョブを作成し、プリンタ２０に送出する。本画像処理プログラムは同プリンタドライバから構成されるが、ＡＰＬにより構成してもよい。
【００３７】
（２）画像処理装置の各種手段の構成：
図３は、上記ハードウェアと上記プリンタドライバとが協働して構築する画像処理装置の構成を模式的に示している。プリンタドライバは、各種モジュールを有しており、機能制御モジュールの制御に基づいて所定の機能を実現しつつ連携動作して画像データを変換することが可能である。そして、プリンタドライバの各モジュールに対応して、画像処理装置の各部が構成される。
画像入手部は、ディスプレイに表示する解像度とプリンタに出力する解像度とが設定された画像データを入力する。同画像データは、画像をドットマトリクス状の多数の画素で多階調表現したデータであり、様々な種類がある。図ではｓＲＧＢ色空間で定義されるＲＧＢから構成された画像データを示しているが、ＹＵＶ表色系における輝度（Ｙ成分）、Ｂの色差（Ｕ成分）、Ｒの色差（Ｖ成分）から構成された画像データ等でもよい。画像データの各成分も、例えば、２５６階調、１０２４階調等、様々な階調数とすることができる。ディスプレイに表示する解像度は、ディスプレイの性能に合わせたデフォルトの設定（例えば３６０×３６０ｄｐｉ等）とすることができる。画像データに対してプリンタに出力する解像度を設定するには、例えば、図示しない所定の印刷インターフェイス画面を表示し、所定の解像度選択欄にて解像度の情報の操作入力を受け付け、入力された解像度の情報を同画像データに付加することにより設定することができる。また、ＡＰＬが画像データに対して解像度を設定する機能を有していれば、そのＡＰＬから解像度が設定された画像データを入手することができる。
解像度変換処理部は、プリンタ２０の解像度に合わせて上記画像データに対して設定された解像度を変換する。その際、ｓＲＧＢやＹＵＶ表色系等の定義に従って、画像データを広域ＲＧＢ色空間内のＲＧＢ各２５６階調（０〜２５５の整数値）の階調データからなるＲＧＢデータに変換する。色変換処理部は、ＲＧＢデータをＣＭＹＫ各２５６階調（０〜２５５の整数値）の階調データからなるＣＭＹＫデータに色変換する。同ＣＭＹＫデータは、色インクの使用量に対応する（略比例する）階調値とされているので、階調値が小さいほどドットの形成密度が小さくなって明度が高くなり、階調値が大きいほどドットの形成密度が大きくなって明度が低くなる。階調数変換処理部は、２５６階調のＣＭＹＫデータを、ＣＭＹＫ各２階調でドット形成の有無により画像出力装置の出力画像を表現する画像データ（以下、２値化データとも記載）に階調数変換する。インターレース処理部（印刷制御手段）は、プリンタ２０の印刷ヘッドの副走査に合わせて２値化データを並び替える処理を行い、並び替え後の２値化データをプリンタ２０に送出することにより、階調数変換後の画像データに対応する画像を印刷させる制御を行う。すると、プリンタ２０は、２値化データを入手し、同２値化データに基づいて印刷用紙（メディア）上に色インクのドットを形成し、ＲＧＢデータに対応するカラー画像を印刷する。
【００３８】
本画像処理装置Ａは、階調数変換部を構成する各種手段Ａ１〜Ａ４を備えている。
判定手段Ａ１は、近隣する所定の２×２画素をまとめてブロックとし、画像データを変換する着目ブロックＢ１内の各画素の階調値に基づいて所定のブロック処理条件を満たすか否かを判定する。ここで、記憶手段Ａ４は上記処理単位情報１４ｂを記憶しており、判定手段Ａ１は、着目ブロックＢ１内の各画素の階調値のみと処理単位情報１４ｂとを対比してブロック処理条件の成立の可否を判定する。同処理単位情報１４ｂは、ブロックとする所定の２×２画素の階調値に対応付けられた情報であるとともに、誤差拡散法による画像変換処理を行う画素の処理単位を決定可能とする情報である。
着目ブロックＢ１が上記ブロック処理条件を満たすと判定されると、第一変換手段Ａ２により着目ブロックＢ１内の画素の画像データが変換され、着目ブロックＢ１が上記ブロック処理条件を満たさないと判定されると、第二変換手段Ａ３により着目ブロックＢ１内の画素の画像データが変換されるようになっている。
第一変換手段Ａ２は、着目ブロックＢ１内の各画素の階調値と拡散されてきた階調誤差である拡散誤差とに基づいて、着目ブロックＢ１全体の階調誤差を着目ブロックＢ１外の他のブロック内の未変換画素に拡散させながら着目ブロックＢ１内の画素の画像データをまとめて変換する。すなわち、ブロック単位の画像変換処理を行う。
【００３９】
一方、第二変換手段Ａ３は、着目ブロックＢ１内の各画素の階調値と拡散誤差とから着目ブロックＢ１内でのドットの形成状況を判定する。着目ブロックＢ１内に形成するドット数が基準ドット数以下、または、第二基準ドット数以上と判定したときには、着目ブロックＢ１内の全画素をまとめて画像データの変換対象として画像変換処理を着目ブロックＢ１単位で行う。また、着目ブロックＢ１内に形成するドット数が基準ドット数より大、かつ、第二基準ドット数より小と判定したときに着目ブロックＢ１内の画素を区分した画素区分別に画像変換処理を実行することが可能となっている。
本実施形態では、基準ドット数を０、第二基準ドット数を４とし、画素区分を１画素としている。すなわち、着目ブロックＢ１内にドットを形成しない場合や着目ブロックＢ１内の画素全てにドットを形成する場合、ブロック単位の変換処理を行い、これらの場合以外に、ブロック全体では画素をまとめずにブロックより小さい１画素単位の画像変換処理を行う。１画素単位の変換処理では、着目ブロックＢ１内の画素別に、同画素の階調値と拡散誤差とに基づいて、同画素の階調誤差を他の未変換画素に拡散させながら着目ブロックＢ１内の画素の画像データを変換する処理を行う。なお、図では着目ブロックＢ１内の着目画素Ｕ１を太線で囲っている。
さらに、高画質を維持しながら画像変換処理を高速化させるため、判定手段Ａ１は、ブロック処理条件が満たされない所定のブロック移行条件を着目ブロックＢ１が満たすか否かを判定する。その際も、着目ブロックＢ１内の各画素の階調値と処理単位情報１４ｂとを対比して判定する。
第二変換手段Ａ３は、着目ブロックＢ１がブロック移行条件を満たすと判定されたときに、着目ブロックＢ１内でのドットの形成状況を判定して判定結果に対応して着目ブロックＢ１単位でまたは画素区分別に画像変換処理を行う。また、着目ブロックＢ１がブロック移行条件を満たさないと判定されたときには、画素区分別に画像変換処理を行う。
【００４０】
本実施形態では、処理単位を決定するための処理単位情報１４ｂを閾値０，Ｄ１〜Ｄ５から構成するとともに、これらの閾値を着目ブロックＢ１内の各画素の階調値の総和Ｓ（ブロック内の階調値）に対応付けている。これらの閾値は、本画像処理プログラムに含まれており、同プログラムとともにＨＤ１４に記憶されている。
図４は、上記閾値と総和Ｓとの対応関係を示している。図に示す閾値Ｄ１，Ｄ２，Ｄ３，Ｄ４は本発明にいう第一、第二、第三、第四の閾値であり、０＜Ｄ１＜Ｄ２＜Ｄ３＜Ｄ４＜Ｄ５（＝４×２５５）の関係がある。ここで、Ｓ＝０の側がドットの形成密度が小さい低ドット密度側（高明度側）であり、Ｓ＝Ｄ５の側がドットの形成密度が大きい高ドット密度側（低明度側）である。また、ブロック内の階調値のとりうる範囲の中間から閾値Ｄ１，Ｄ２を低ドット密度側にするとともに閾値Ｄ３，Ｄ４を高ドット密度側としており、総和Ｓの中間値Ｄ５／２を基準としてＤ２＜Ｄ５／２＜Ｄ３としてある。
総和Ｓが第一の閾値Ｄ１から低ドット密度側であるとき（図ではＳ≦Ｄ１）、ドットの形成密度が小さい所定の低ドット密度領域であり、所定のブロック処理条件成立として総和Ｓに２×２画素のブロックの処理単位を対応付けている。低ドット密度領域は、画像中で明度が高い所定の高明度領域でもある。また、総和Ｓが第四の閾値Ｄ４から高ドット密度側であるとき（図ではＳ＞Ｄ４）、ドットの形成密度が大きい所定の高ドット密度領域であり、所定のブロック処理条件成立として総和Ｓに２×２画素のブロックの処理単位を対応付けている。高ドット密度領域は、画像中で明度が低い所定の低明度領域でもある。
このように、ブロック処理条件は、総和Ｓのとりうる範囲の中から所定の範囲を持っており、スポット的な値のみ成立する条件とはされていない。なお、本実施形態ではＳ＝０，Ｓ＝Ｄ５であるとき例外的な処理を行うため、Ｓ＝０，Ｓ＝Ｄ５であるときをブロック処理条件に含まなくてもよいし、含めてもよい。
総和Ｓが第二の閾値Ｄ２から高ドット密度側かつ第三の閾値Ｄ２から低ドット密度側であるとき（図ではＤ２＜Ｓ≦Ｄ３）、ドットの形成密度が中間的な所定の中間調領域であり、所定の分割処理条件成立として総和Ｓに１画素（画素区分）の処理単位を対応付けている。同中間調領域は、画像の明度の中間的な所定の中間調領域でもある。分割処理条件も、総和Ｓのとりうる範囲の中から所定の範囲を持っている。
【００４１】
総和Ｓが閾値Ｄ１から高ドット密度側かつ閾値Ｄ２から低ドット密度側であるとき（図ではＤ１＜Ｓ≦Ｄ２）、上記低ドット密度領域と中間調領域との間の中間的な所定の低ドット密度側移行領域であり、所定のブロック移行条件成立として総和Ｓに２×２画素のブロックまたは１画素の処理区分を対応付けている。総和Ｓが閾値Ｄ３から高ドット密度側かつ閾値Ｄ４から低ドット密度側であるとき（図ではＤ３＜Ｓ≦Ｄ４）、上記高ドット密度領域と中間調領域との間の中間的な所定の高ドット密度側移行領域であり、所定のブロック移行条件成立として総和Ｓに２×２画素のブロックまたは１画素の処理区分を対応付けている。ブロック移行条件も、総和Ｓのとりうる範囲の中から所定の範囲を持っている。
そして、第二変換手段Ａ３は、着目ブロックがブロック移行条件を満たすと判定されたときに着目ブロック内でのドットの形成状況を判定して判定結果に対応して着目ブロック単位でまたは画素区分別に画像変換処理を行う。
【００４２】
なお、閾値Ｄ１〜Ｄ４は、画像データの種類等に応じて適宜決定される値である。本実施形態では、以下の関係を満たすように閾値を決めている。
閾値Ｄ１，Ｄ４については、Ｄ５−Ｄ４＞Ｄ１−０として、上記総和Ｓがとりうる範囲のうち閾値Ｄ４から高ドット密度側の範囲が閾値Ｄ１から低ドット密度領域側の範囲より広くしている。
図５の上段に示すように、プリンタ２０が形成する１ドットの面積は、同プリンタ２０に設定された１画素の面積より大きくされている。図の下段に示すように、低ドット密度領域でドットを形成する割合と高ドット密度領域でドットを形成しない割合とが同じ（図の例では、１／８）であるとすると、高ドット密度領域でドットが形成されていない領域Ｒ２の面積は、低ドット密度領域で形成されたドットが占める領域Ｒ１の面積よりも小さくなる。その結果、低ドット密度領域よりも高ドット密度領域のほうがドットの分解能の低下が目立たない。従って、Ｄ５−Ｄ４＞Ｄ１−０となるように閾値Ｄ４を設定しても、画質を低下させずに誤差拡散法による画像変換処理をさらに高速化させることができる。
例えば、１より小さい正の係数Ｋを用いて、Ｋ（Ｄ５−Ｄ４）＝Ｄ１−０となるように閾値Ｄ１，Ｄ４を設定すればよい。Ｋは、０．９，０．８等、様々な値とすることができる。
むろん、１ドットの面積が１画素の面積とほぼ同じであれば、Ｄ５−Ｄ４＝Ｄ１−０となるように閾値Ｄ４を設定してもよい。
【００４３】
また、閾値Ｄ２については、ブロック内の画素数をＮ、画素区分数をＮ０とするとき、低ドット密度側から（Ｎ０−１）／（Ｎ×Ｎ０）以内の値としている。
ドット密度（Ｄｕｔｙ）が１／Ｎであるとき、ブロック内で１ドット形成されることになる。ブロック内にドットが形成されないときにブロック単位の変換処理を行う場合、ブロック内にドットが形成されないのは低ドット密度側から１／Ｎ以内となるので、閾値Ｄ２は少なくとも低ドット密度側から１／Ｎ以内とするのが好ましい。
ここで、ドット密度をＤｕｔｙ（０〜１の相対値）で表し、ブロックがｘ個あるとし、そのうち割合ｔでブロック内にドットが形成されないとする。試験を行ったところ、ブロック単位の画像変換処理の時間と画素区分単位の画像変換処理の時間とはほぼ同じ時間（Ｔとする）であり、上記総和Ｓを算出して閾値と対比して処理を分岐させる時間もほぼ時間Ｔと同じであった。全ブロックの画像変換処理の時間はｔ・Ｔ・ｘ＋（１−ｔ）・（Ｔ・ｘ＋Ｔ・Ｎ０・ｘ）となるので、これが、ブロック移行条件を判定せずに全て画素区分別に画像変換処理を行うときの時間Ｔ・Ｎ０・ｘ以下となれば、ブロック移行条件を判定して処理単位を切り替えることもより高速化のメリットが生じることになる。ｔ・Ｔ・ｘ＋（１−ｔ）・（Ｔ・ｘ＋Ｔ・Ｎ０・ｘ）≦Ｔ・Ｎ０・ｘを解くとｔ≧１／Ｎ０となるので、ｔ≧１／Ｎ０となるＤｕｔｙを求めればよい。すなわち、
Ｄｕｔｙ≦（１／Ｎ）・｛１−（１／Ｎ０）｝
であれば、画像変換処理の速度が向上する。上記式を解くと、
Ｄｕｔｙ≦（Ｎ０−１）／（Ｎ×Ｎ０）    …（１）
となる。画素区分が１画素であれば、
Ｄｕｔｙ≦（Ｎ−１）／Ｎ２    …（２）
となる。本実施形態のように、ブロックを４画素とすると、Ｄｕｔｙ≦０．１８７５となる。
【００４４】
閾値Ｄ３についても同様のことが言え、ブロック内の画素数をＮ、画素区分数をＮ０とするとき、高ドット密度側から（Ｎ０−１）／（Ｎ×Ｎ０）以内の値としている。すなわち、
Ｄｕｔｙ≧１−｛（Ｎ０−１）／（Ｎ×Ｎ０）｝    …（３）
であれば、画像変換処理の速度が向上する。画素区分が１画素であれば、
Ｄｕｔｙ≧１−｛（Ｎ−１）／Ｎ２｝    …（４）
となる。本実施形態のように、ブロックを４画素とすると、Ｄｕｔｙ≧０．８１２５となる。
ここで、１ドットの面積が１画素の面積より大きいことを考慮し、Ｄ５−Ｄ３＞Ｄ２−０として、総和Ｓがとりうる範囲のうち閾値Ｄ３から高ドット密度側の範囲が閾値Ｄ２から低ドット密度領域側の範囲より広くしている。例えば、Ｋ（Ｄ５−Ｄ３）＝Ｄ２−０（ただし、Ｋは１より小さい正の係数）となるようにして、閾値Ｄ３についてはＤｕｔｙ＝１−｛（Ｎ０−１）／（Ｎ×Ｎ０）｝となるように、
Ｄ２＝２５５×［１−｛（Ｎ０−１）／（Ｎ×Ｎ０）｝］
とし、閾値Ｄ２については、
Ｄ３＝２５５×Ｋ×｛（Ｎ０−１）／（Ｎ×Ｎ０）｝
とすることができる。
以上のようにして閾値Ｄ２，Ｄ３を設定すると、より確実に画像変換処理をさらに高速化させることができる。
むろん、１ドットの面積が１画素の面積とほぼ同じであれば、Ｄ５−Ｄ３＝Ｄ２−０となるように閾値Ｄ３を設定してもよい。
【００４５】
図６は、本画像処理装置が行う処理を示すフローチャートである。本フローは、ＰＣ１０のＣＰＵ１１によって行われるものである。
ＡＰＬに備えられたＡＰＬ用印刷機能にてディスプレイ１７ａに表示される印刷実行メニューが選択されると、画像処理プログラムが起動し、画像入力部にてＲＧＢに基づく画像データを入手する（ステップＳ１０５。以下、「ステップ」の記載を省略）。次に、解像度変換処理部にて、入手した画像データの解像度をプリンタ２０が印刷するための解像度に解像度変換する、解像度変換処理を行う（Ｓ１１０）。本実施形態では、解像度変換後の画像データをＲＧＢ各２５６階調（０〜２５５の整数値）からなるＲＧＢデータとするものとして説明する。ここで、階調値が大きくなるほどＲＧＢ各成分が大きくなり、ＲＧＢ全ての階調値が０であるときはほぼブラックに相当し、ＲＧＢ全ての階調値が２５５であるときはインクのドットが形成されないことになる。なお、入手した画像データの解像度が高い場合には、例えば一定の割合でデータを間引くことにより解像度を変換し、入手した画像データの解像度が低い場合には、例えば線形補間により画像データを補間して解像度を変換して、解像度変換後のＲＧＢデータとする。
【００４６】
さらに、色変換処理部にて、ＬＵＴ（ルックアップテーブル）と呼ばれる色変換テーブルを参照して、ＲＧＢデータをＣＭＹＫの色インクのそれぞれに対応したＣＹＭＫデータに変換する、色変換処理を行う（Ｓ１１５）。本実施形態のＬＵＴは、２５６階調のＲＧＢそれぞれの階調値をＣＭＹＫそれぞれについて２５６階調とされた階調値に対応させたテーブルであり、補間演算を前提として、例えば、１７の３乗の格子点に対応した大量のデータを備えている。変換されたＣＭＹＫデータも、画像をドットマトリクス状の画素で多階調表現した画像データであり、本実施形態ではＣＭＹＫ各２５６階調（０〜２５５の整数値）からなるデータであるとして説明する。同ＣＭＹＫデータは、階調値が大きくなるほどＣＭＹＫ各成分が大きくなり、印刷媒体上に形成されるドット密度は大きくなる。
【００４７】
そして、階調数変換処理部にて、２５６階調のＣＭＹＫからなる画像データをドット形成の有無により表現した画像データに変換する、階調数変換処理を行う（Ｓ１２０）。その際、いわゆる誤差拡散法により、各画素の階調誤差を他の未変換画素に拡散させながら画像データを変換する。
階調数変換前のＣＭＹＫデータは２５６階調であるが、プリンタ２０は色インク別にドットを形成するか否かにより印刷を行うため、本実施形態ではプリンタ２０に送出するデータを「ドットを形成する」意味の階調値「２５５」または「ドットを形成しない」意味の階調値「０」のいずれかに変換して２値化データを生成するようにしている。実際には２値化データを１ビットで表現しているため、階調値「２５５」をビットオンに対応させ、階調値「０」をビットオフに対応させた２値化データを生成する。以下、便宜上「２５５」と「０」の２値に変換するものとして説明する。
詳しくは後述するが、所定の処理条件に応じてブロック単位で階調数変換処理を行うようにしており、高画質が維持されながら画像変換処理は高速化されるようになっている。
【００４８】
その後、インターレース処理部にて、プリンタ２０のドットの形成順序を考慮しながら２値化データを並べ替えるインターレース処理を行う（Ｓ１２５）。そして、解像度変換処理部にて取得された解像度の情報とともに、最終的に得られた画像データをプリンタ２０に対して送出し（Ｓ１３０）、本フローを終了する。すると、プリンタ２０は、解像度の情報を入手するとともに同画像データを入手し、印刷ヘッドを駆動して解像度に対応した各色インクのドットを印刷媒体上に形成する。その結果、ＡＰＬからの画像データに対応したカラー画像が印刷用紙に印刷されることになる。
【００４９】
（３）画像処理装置が行う処理の概略：
図７は、本画像処理装置が行う階調数変換処理をフローチャートにより示している。なお、変換前の画像データはＣＭＹＫ別とされた階調値から構成されているので、図のフローはＣＭＹＫ別に行われることになるが、フローをわかりやすくするため図示を省略している。また、変換前の画像データはＲＡＭ１３に記憶されているとともに、各画素から拡散させた階調誤差を記憶する領域や変換した画像データを記憶する領域もＲＡＭ１３に設けられている。
まず、近隣する所定の２×２画素をまとめてブロックとし、画像データを変換する着目ブロックの位置を設定する（Ｓ２０２）。
図８は、着目ブロックの位置を設定する様子を模式的に示している。階調数変換前のＣＭＹＫデータは、画像をドットマトリクス状の画素Ｕ１０で２５６階調表現したＣＭＹＫ別のデータである。図では、各画素Ｕ１０を小さな正方形で示している。ここで、図の上下方向を縦方向、左右方向を横方向とすると、本実施形態では縦２画素、横２画素の計４画素を一つのブロックＢ１１（図では、４つの画素を囲む点線で示している。）としている。また、図中太線で示したように、着目ブロックＢ１２はブロックＢ１１のいずれかに設定される。画像変換処理の順序は、左上のブロックから開始して順番に右上のブロックまでとし、その後一つずつ下の左端のブロックから順番に右端のブロックまでとして、最後に右下のブロックとしている。むろん、変換処理の順序は、適宜変更可能であり、解像度等に応じて異なる順序とすることも可能である。
なお、ブロックは正方形状である以外にも、例えば、長方形状、横１列に並んだ複数の画素のような直線状、ある基準画素と同基準画素の右隣と左下と下隣の画素の計４画素とをまとめた形状等でもよい。
【００５０】
階調数変換処理は、ブロックＢ１１単位で行われるが、画質を低下させないように、着目ブロックＢ１２が画像中で明度の高いハイライト領域すなわち高明度領域にあるのか、明度の低い低明度領域にあるのか、明度の中間的な中間調領域にあるのか、ハイライト領域と中間調領域との間の領域にあるのか、中間調領域と低明度領域との間の領域にあるのかを判定し、判定結果に応じた変換処理を行う。
着目ブロックの位置を設定すると、着目ブロック内の各画素の階調値を読み込む（Ｓ２０４）。同階調値はＣＭＹＫ別に色変換されてＲＡＭ１３に記憶されているので、ＲＡＭ１３からＣＭＹＫ別に着目ブロックに対応した４画素分の階調値を読み込むことになる。図８では、説明の便宜のため、着目ブロックＢ１２内の左上、右上、左下、右下の画素を、それぞれＰａ，Ｐｂ，Ｐｃ，Ｐｄとしている。
【００５１】
その後、読み込んだ階調値の総和Ｓを算出する（Ｓ２０６）。ここで、画素Ｐａ，Ｐｂ，Ｐｃ，Ｐｄの階調値をそれぞれＤａ，Ｄｂ，Ｄｃ，Ｄｄとすると、ＣＭＹＫ別にＳを以下の式により算出する。
Ｓ  ＝  Ｄａ  ＋  Ｄｂ  ＋  Ｄｃ  ＋  Ｄｄ    …（５）
なお、ブロックがｎ画素から構成されている場合には、階調値の総和Ｓは、以下の一般式により算出することができる。
Ｓ  ＝  Σ（Ｄｉ）
ただし、ｉは１〜ｎの整数
【００５２】
そして、総和Ｓに基づいて、閾値Ｄ１，Ｄ４を基準として、ブロック処理条件を満たすか否かを判定し、同条件成立時にはブロック単位で画像変換処理を行うようにしている。一方、同条件不成立時、着目ブロック内の各画素の階調値と拡散誤差とに基づいて、着目ブロック内にドットを形成するか否かまたは着目ブロック内の画素全てにドットを形成するか否かを判定し、判定結果に対応する処理単位で画像変換処理を行うようにしている。さらに、ブロック処理条件不成立時、総和Ｓに基づいて、閾値Ｄ２，Ｄ３を基準としてブロック移行条件を満たすか否かを判定し、同条件成立時にドット形成を判定して判定結果に応じた処理を行うようにしている。
【００５３】
階調値の総和Ｓを算出すると、Ｓが「０」であるか否かを判断する（Ｓ２０８）。着目ブロック内の各画素の階調値が全て「０」であるときのみ総和Ｓは「０」となるので、ＣＭＹＫ別に見たときに着目ブロック内の各画素の階調値が全て「０」であるときに条件成立となり、Ｓ２１０に進む。一方、各画素の階調値のうち一つでも「１」以上のものがあれば、Ｓ２１４に進む。
Ｓ２１０では、着目ブロック内の画素全てをオフすなわちドットを形成しない状態とする。すなわち、着目ブロック内の変換後の画像データは全ての画素において「０」とされ、「ドットを形成しない」画像データとなる。そして、詳しくは後述するが、ブロック単位で誤差拡散を行うブロック単位拡散処理を行い（Ｓ２１２）、Ｓ２３８に進む。着目ブロック内の各画素の階調値が全て「０」である場合には、後述するＳ２１６の変換処理（その１）が行われないので画像変換処理を高速化させることができる。
【００５４】
Ｓ２１４では、総和Ｓが閾値Ｄ１よりも大きいか否かを判断する。むろん、ＳがＤ１以上であるか否かを判断してもよい。閾値Ｄ１は、画像データの階調値の小さい領域において、ブロック単位の画像変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものである。Ｓ＞Ｄ１のとき着目ブロックが階調値の小さい領域におけるブロック処理条件を満たさないと判定してＳ２１８に進み、Ｓ≦Ｄ１のとき着目ブロックが同条件を満たすと判定してＳ２１６に進む。
０＜Ｓ≦Ｄ１であるときに実行されるＳ２１６では、詳しくは後述するが、ブロック単位で誤差拡散を行いながら画像データをまとめて変換する変換処理（その１）を行い、Ｓ２３８に進む。
【００５５】
上記ブロック処理条件を満たさないと判定したときに実行されるＳ２１８では、総和Ｓが閾値Ｄ２よりも大きいか否かを判断する。むろん、ＳがＤ２以上であるか否かを判断してもよい。閾値Ｄ２は、画像データの階調値の小さい領域において、ブロック単位の画像変換処理を行ったときに高画質を維持可能な条件が存在するか否かの境界値として予め設定されるものである。Ｓ＞Ｄ２のとき着目ブロックが階調値の小さい領域におけるブロック移行条件を満たさないと判定してＳ２２２に進み、Ｓ≦Ｄ２のとき着目ブロックが同条件を満たすと判定してＳ２２０に進む。
Ｄ１＜Ｓ≦Ｄ２であるときに実行されるＳ２２０では、詳しくは後述するが、着目ブロック内でドットを形成するか否かを判定し、判定結果に応じてブロック単位または１画素単位で誤差拡散を行いながら画像データを変換する変換処理（その２）を行い、Ｓ２３８に進む。
【００５６】
上記ブロック移行条件を満たさないと判定したときに実行されるＳ２２２では、総和Ｓが閾値Ｄ３よりも大きいか否かを判断する。むろん、ＳがＤ３以上であるか否かを判断してもよい。閾値Ｄ３は、画像データの階調値の大きい領域において、ブロック単位の画像データ変換処理を行ったときに高画質を維持可能な条件が存在するか否かの境界値として予め設定されるものである。Ｓ＞Ｄ３のときＳ２２６に進み、Ｓ≦Ｄ３のときにＳ２２４に進む。画像データ中でＤ２≦Ｓ＜Ｄ３を満たす領域は、画像中で明度の中間的な領域である。
Ｓ２２４では、詳しくは後述するが、着目ブロック内にドットを形成するか否かまたは着目ブロック内の画素全てにドットを形成するか否かの判定を行わずに１画素単位で誤差拡散を行いながら画像データを変換する１画素単位変換処理を行い、Ｓ２３８に進む。
【００５７】
Ｓ２２６では、総和Ｓが閾値Ｄ４よりも大きいか否かを判断する。むろん、ＳがＤ４以上であるか否かを判断してもよい。閾値Ｄ４は、画像データの階調値の大きい領域において、ブロック単位の画像データ変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものである。Ｓ＞Ｄ４のときに着目ブロックが階調値の大きい領域におけるブロック処理条件を満たすと判定してＳ２３０に進み、Ｓ≦Ｄ４のときに着目ブロックが階調値の大きい領域におけるブロック移行条件を満たすと判定してＳ２２８に進む。
Ｄ３＜Ｓ≦Ｄ４であるときに実行されるＳ２２８では、詳しくは後述するが、着目ブロック内の画素全てにドットを形成するか否かを判定し、判定結果に応じてブロック単位または１画素単位で誤差拡散を行いながら画像データを変換する変換処理（その３）を行い、Ｓ２３８に進む。
【００５８】
上記ブロック処理条件を満たすと判定したときに実行されるＳ２３０では、総和Ｓが閾値Ｄ５であるか否かを判断する。Ｄ５＝４×２５５＝１０２０であるので、ＣＭＹＫ別に見たときに着目ブロック内の各画素の階調値が全て「２５５」であるときに条件成立となり、Ｓ２３４に進む。一方、各画素の階調値のうち一つでも「２５４」以下のものがあれば、Ｓ２３２に進む。Ｓ２３２では、詳しくは後述するが、ブロック単位で誤差拡散を行いながら画像データをまとめて変換する変換処理（その４）を行い、Ｓ２３８に進む。
一方、Ｓ２３４では、着目ブロック内の画素全てをオンすなわちドットを形成する状態とする。すなわち、着目ブロック内の変換後の画像データは全ての画素において「２５５」とされ、「ドットを形成する」画像データとなる。そして、詳しくは後述するが、ブロック単位で誤差拡散を行うブロック単位拡散処理を行い（Ｓ２３６）、Ｓ２３８に進む。着目ブロック内の各画素の階調値が全て「２５５」である場合には、Ｓ２３２の変換処理（その４）が行われないので画像変換処理を高速化させることができる。
Ｓ２３８では、画像データの全ブロックについて変換処理を終了したか否かを判断する。変換処理を行っていないブロックがある場合にはＳ２０２に戻り、前回の着目ブロックの右側にブロックがあるときには当該ブロックを着目ブロックの位置として設定し、前回の着目ブロックの右側にブロックがないときには一つ下の左端のブロックを着目ブロックとして設定する。そして、繰り返し上述した画像変換処理を行う。一方、全ブロックについて変換処理を終了した場合、階調数変換処理を終了する。その後、図６で示したＳ１２５のインターレース処理が行われ、プリンタ２０に対して並び替えられた２値化データが送出されることになる。
【００５９】
このように、着目ブロックで行われる画像変換処理は、上記総和Ｓに応じて、以下のように切り替えられる。
Ｓ＝０のとき、          全画素オフの後、ブロック単位拡散処理
０＜Ｓ≦Ｄ１のとき、    変換処理（その１）
Ｄ１＜Ｓ≦Ｄ２のとき、  変換処理（その２）
Ｄ２＜Ｓ≦Ｄ３のとき、  １画素単位変換処理
Ｄ３＜Ｓ≦Ｄ４のとき、  変換処理（その３）
Ｄ４＜Ｓ＜Ｄ５のとき、  変換処理（その４）
Ｓ＝Ｄ５のとき、        全画素オンの後、ブロック単位拡散処理
本実施形態では、０＜Ｓ≦Ｄ１またはＤ４＜Ｓのときブロック処理条件成立であり、Ｄ１＜Ｓ≦Ｄ２またはＤ３＜Ｓ≦Ｄ４のときブロック移行条件成立である。すなわち、図７のＳ２０２〜Ｓ２０８，Ｓ２１４，Ｓ２１８，Ｓ２２２，Ｓ２２６の処理を行うＰＣは、着目ブロック内の各画素の階調値のみを処理単位情報と対比して同着目ブロックがブロック処理条件やブロック移行条件を満たすか否かを判定する判定手段を構成する。
【００６０】
なお、ブロック単位で誤差拡散を行いながら画像データをまとめて変換するには、例えば、以下のようにすればよい。
図９は、ブロック単位で誤差拡散を行いながら画像データを変換する様子を説明する説明図である。なお、変換前の画像データはＲＡＭ１３内の所定領域に格納されているとともに、変換後の画像データはＲＡＭ１３内の別の所定領域に格納されることになるが、わかりやすく説明するため、変換処理が終了した画素については変換後の画像データを記載している。
図の上段は、着目ブロックＢ１２の左隣のブロックＢ１３まで誤差拡散を伴う画像変換処理が終了した状態を示している。図の例では、着目ブロックＢ１２は画像中で明度の高い領域となっており、着目ブロックＢ１２内の各画素Ｐａ〜Ｐｄのいずれにも階調値「２０」（各画素内の上段に記載）が格納されているとともに、他のブロックから階調誤差「５０」（各画素内の下段に記載）が拡散されてきているものとする。また、処理の一例として、各画素Ｐａ〜Ｐｄの階調値の総和Ｓ１が閾値「１００」以下のときにブロック処理条件が成立するものとし、着目ブロックＢ１２内の各画素の階調値と拡散誤差の総和が閾値「１５０」よりも大きいときに同着目ブロックＢ１２内の１画素にのみドットを形成するものとする。むろん、これらの閾値は一例にすぎない。
【００６１】
ここで、階調値の総和Ｓ１は２０×４＝８０となるのでブロック処理条件は成立し、同画素の拡散誤差の総和は５０×４＝２００となり、着目ブロックＢ１２内の各画素の階調値と拡散誤差との総和は８０＋２００＝２８０であるので着目ブロックＢ１２内の１画素にのみドットを形成することになる。本実施形態では、左隣のブロックＢ１３のように、着目ブロックＢ１２の左上の画素Ｐａにドットを形成することにしている。すなわち、画素Ｐａの画像データを「２５５」とし、残りの画素Ｐｂ〜Ｐｄの画像データを「０」とすることになる。
このように、着目ブロック内の所定位置の画素にのみドットを形成することにより、変換処理が簡素化されるので、画像データの変換が迅速に行われることになる。ここで、着目ブロックＢ１２内の１画素にのみドットを形成する場合には、画素Ｐｂ〜Ｐｄのいずれかにドットを形成してもよいし、着目ブロック内の画素のうち最も階調値の大きい画素にドットを形成してもよいし、ランダムに画素を選択してドットを形成してもよい。
【００６２】
着目ブロック全体の階調誤差は、着目ブロックＢ１２内の各画素の階調値と拡散誤差との総和から画像データ変換後の着目ブロック内における各画素の階調値の総和を差し引いた値となる。図の例では、着目ブロックＢ１２内の各画素の階調値と拡散誤差との総和は２８０であるから、変換後の着目ブロックＢ１２内の各画素の階調値の総和２５５を差し引くことにより、階調誤差は「２５」となる。そして、着目ブロック全体の階調誤差を他のブロック内の未変換画素Ｕ１１〜Ｕ１６に拡散させる。ここで、未変換画素Ｕ１１〜Ｕ１６は、それぞれ、着目ブロックＢ１２の右隣のブロックにおける左上の画素、同右隣のブロックにおける左下の画素、左下のブロックにおける右上の画素、下隣のブロックにおける左上の画素、同下隣のブロックにおける右上の画素、右下のブロックにおける左上の画素である。左上のブロック内の画素や、上隣のブロック内の画素や、左隣のブロック内の画素は変換処理済みであるので、これらの画素には階調誤差を拡散させないようにしている。
【００６３】
また、本実施形態では、同階調誤差を他のブロック内の未変換画素に対して略均等に拡散させるようにしている。図の例では、着目ブロックＢ１２全体の階調誤差は「２５」であり、他のブロック内の未変換画素は６つあるので、２５を６で除して小数点以下を四捨五入した「４」ずつ未変換画素に拡散させる。階調誤差が６で割り切れない場合には、所定位置の未変換画素Ｕ１６に拡散させる階調誤差を調整し、拡散させる階調誤差の合計を着目ブロックＢ１２全体の階調誤差と一致させる。図の下段に示すように、未変換画素Ｕ１６には階調誤差「５」が拡散されることになる。
このようにして、ブロック単位で画像変換処理を行うことができる。
【００６４】
なお、様々な手法で着目ブロックの階調誤差を周辺の未変換画素に拡散させることができ、例えば、同階調誤差を、着目ブロックの右隣、左下、下隣、右下のブロック内の画素一つのみに拡散させてもよいし、着目ブロックに隣接していない未変換画素に拡散させてもよいし、未変換画素の位置に応じて拡散する割合を異ならせてもよい。
また、図１０に示すように、着目ブロックＢ１２が画像中で明度の低い領域でも、同様の考え方でブロック単位で画像データを変換することができる。
【００６５】
一方、図１１は、１画素単位で誤差拡散を行いながら画像データを変換する様子を示している。なお、斜線が記入された画素は、誤差拡散を伴う画像変換処理が終了したことを示している。
本実施形態では、着目ブロックＢ１２内で画素Ｐａ，Ｐｂ，Ｐｃ，Ｐｄの順番に、同画素の階調誤差を他の未変換画素に拡散させながら着目ブロックＢ１２内の画素の画像データを変換する。ここで、未変換画素は、着目ブロックＢ１２内であってもよいし、他のブロック内であってもよい。
【００６６】
まず、１画素目の画素Ｐａについて、階調値と他の画素からの階調誤差に基づいてドットを形成するか否かを判定し、変換後の画像データを「２５５」または「０」とする。そして、画素Ｐａの階調誤差を他の未変換画素に拡散させる。このとき、図中ブロック矢印で示したように、同画素Ｐａの右隣の未変換画素Ｐｂ、下隣の未変換画素Ｐｃ、右下の未変換画素Ｐｄに拡散させる。１画素単位の変換処理を行う場合も、階調誤差を３つの未変換画素Ｐｂ〜Ｐｄに対して略均等に拡散させる。
２画素目の画素Ｐｂについても、同様にしてドットを形成するか否かを判定し、変換後の画像データを「２５５」または「０」とする。そして、画素Ｐｂの階調誤差を、同画素Ｐｂの左下の未変換画素Ｐｃ、下隣の未変換画素Ｐｄ、着目ブロックＢ１２外となる右隣の未変換画素Ｕ１１、右下の未変換画素Ｕ１２に対して略均等に拡散させている。
３画素目の画素Ｐｃについても、同様にして変換後の画像データを「２５５」または「０」とする。そして、画素Ｐｃの階調誤差を、同画素Ｐｃの右隣の未変換画素Ｐｄ、着目ブロックＢ１２外となる左下の未変換画素Ｕ１３、下隣の未変換画素Ｕ１４、右下の未変換画素Ｕ１５に対して略均等に拡散させる。
４画素目の画素Ｐｄについても、同様にして変換後の画像データを「２５５」または「０」とする。そして、画素Ｐｄの階調誤差を、着目ブロックＢ１２外となる同画素Ｐｄの右隣の未変換画素Ｕ１２、左下の未変換画素Ｕ１４、下隣の未変換画素Ｕ１５、右下の未変換画素Ｕ１６に対して略均等に拡散させる。
【００６７】
このようにして、着目ブロック内の画素別に同画素の階調誤差を拡散させながら画像データを変換することができる。むろん、着目ブロックが２×２画素以外であっても、同様にして画素別の画像変換処理を行うことが可能である。
なお、上記以外にも、様々な手法で同階調誤差を他の未変換画素に拡散させることができる。例えば、画素Ｐａ，Ｐｂ，Ｐｃについては、着目ブロックＢ１２内の未変換画素にのみ階調誤差を拡散させながら画像データを変換し、画素Ｐｄについてのみ、他のブロック内の未変換画素に階調誤差を拡散させながら画像データを変換してもよい。また、未変換画素の位置に応じて同階調誤差を拡散する割合を異ならせるようにしてもよい。むろん、画像データを変換する順番についても、例えば、画素Ｐａ，Ｐｃ，Ｐｂ，Ｐｄの順としてもよいし、ブロック毎に順序を変えてもよい。
本実施形態では、着目ブロック内の画素を１画素単位で区分して画素区分としているが、着目ブロック内の画素を２以上の画素単位で区分して画素区分としてもよい。例えば、横２画素×縦１画素を画素区分とすると、まず、図１１の画素Ｐａ，Ｐｂの階調値と拡散誤差とに基づいて同画素Ｐａ，Ｐｂ全体の階調誤差を当該画素Ｐａ，Ｐｂ外の未変換画素に拡散させながら同画素Ｐａ，Ｐｂの画像データをまとめて変換すればよい。次に、画素Ｐｃ，Ｐｄの階調値と拡散誤差とに基づいて同画素Ｐｃ，Ｐｄ全体の階調誤差を当該画素Ｐｃ，Ｐｄ外の未変換画素に拡散させながら同画素Ｐｃ，Ｐｄの画像データをまとめて変換すればよい。
【００６８】
ところで、従来は、上述したブロック処理条件が成立する領域はブロック単位の画像変換処理を行っても高画質を維持可能である画像の明度の高い領域とされ、同条件を満たすか否かを着目ブロック内の画素全ての階調値と拡散誤差とに基づいて判定していた。そして、同条件成立時には着目ブロック単位で画像変換処理を行い、同条件不成立時には一律に着目ブロック内で画素別に画像変換処理を行っていた。しかし、着目ブロック内にドットを形成しない場合、１画素単位の変換処理を行ってもブロック単位の変換処理を行っても、着目ブロック内から他のブロックに拡散される階調誤差は同じであり、また、ドットが形成されないことには変わりがない。さらに、着目ブロック内の画素全てにドットを形成する場合も同様であり、処理単位が違っていても、他のブロックに拡散される階調誤差は同じであるとともに同画素全てにドットが形成されることにも変わりがない。
【００６９】
そこで、本発明では、図３で示したように、ブロック処理条件不成立時でも、着目ブロックがブロック移行条件を満たすか否かを判定し、判定結果に応じて１画素単位またはブロック単位の画像変換処理を行うようにしている。その結果、画像の高画質を維持しながら、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。また、画像データの階調値の小さい領域のみならず、同階調値の大きい領域でも、画像の高画質を維持しながら画像データ変換処理をさらに高速化させることが可能となる。
また、従来は、着目ブロック内の画素全ての階調値と拡散誤差との総和を用いてブロック処理条件の成立可否を判定して処理単位を切り替えていたが、ブロック内の各画素の階調値の総和が同じでも、ブロック内の拡散誤差の大きさにより、画像変換処理はブロック単位の処理となったり１画素単位の処理となったりしていた。その結果、ブロック単位の処理が行われたブロックと１画素単位の処理が行われたブロックとで形成されるドットのパターンが異なり、意図しないドットの模様が現れることがあった。本発明では、着目ブロック内に拡散されてきた階調誤差を含めずに着目ブロック内の画素全ての階調値のみを用いてブロック処理条件の成立可否を判定して処理単位を切り替えることにより、意図しない模様が現れることを防いでいる。
【００７０】
（４）画像処理装置が行う処理の詳細：
以下、本画像処理装置が行う階調数変換処理の詳細について、説明する。
図１２は、図７のＳ２１２，Ｓ２３６で行われるブロック単位拡散処理を示すフローチャートである。上記Ｓ２１０では画像データの変換処理後の着目ブロック内の画素全てについての画像データがドットを形成しないことを意味する「０」とされ、上記Ｓ２３４では変換処理後の着目ブロック内の画素全てについての画像データがドットを形成することを意味する「２５５」とされて、本フローが開始される。また、本フローは、後述する変換処理（その１〜４）の途中でもコールされる。
【００７１】
まず、着目ブロック全体で生じる階調誤差を算出する（Ｓ３０２）。着目ブロック内の各画素Ｐａ〜Ｐｄに拡散されてきた拡散誤差をそれぞれＥａ，Ｅｂ，Ｅｃ，Ｅｄとすると、着目ブロック全体に拡散されてきた拡散誤差ＳＥは、以下の式から求めることができる。
ＳＥ  ＝  Ｅａ  ＋  Ｅｂ  ＋  Ｅｃ  ＋  Ｅｄ    …（６）
また、階調数変換後の着目ブロック内に形成されるドット数をＮｄｏｔとすると、変換処理後の着目ブロック内における各画素の階調値の総和Ｓｄｏｔは、以下の式から求めることができる。
Ｓｄｏｔ  ＝  ２５５  ×  Ｎｄｏｔ    …（７）
すなわち、着目ブロック全体で生じる階調誤差Ｅは、以下の式のように、着目ブロック内の各画素の階調値と拡散誤差との総和から変換処理後の着目ブロック内における各画素の階調値の総和を差し引くことにより算出することができる。
Ｅ  ＝  Ｓ  ＋  ＳＥ  −  Ｓｄｏｔ    …（８）
【００７２】
次に、着目ブロック全体の階調誤差Ｅを他のブロック内の未変換画素に略均等に拡散させ（Ｓ３０４）、本フローを終了する。このようにして、着目ブロックにおいてブロック単位の画像変換処理が終了する。
【００７３】
図１３は、図７のＳ２１６で行われる変換処理（その１）を示すフローチャートである。本フローは、着目ブロックがブロック処理条件成立と判定される０＜Ｓ≦Ｄ１のときに行われる。
まず、着目ブロックについて、着目ブロック内の各画素の階調値と拡散誤差との総和である補正データＢｘを算出する（Ｓ４０２）。ここで、着目ブロック内の各画素Ｐａ〜Ｐｄに拡散されてきた拡散誤差Ｅａ〜Ｅｄの総和である着目ブロック全体の拡散誤差ＳＥを用いると、Ｂｘは、以下の式により算出することができる。
Ｂｘ  ＝  Ｓ  ＋  ＳＥ    …（９）
具体的には、着目ブロック内の各画素の拡散誤差を記憶しているＲＡＭ１３から拡散誤差Ｅａ〜Ｅｄを読み出し、上記式（６），（９）によりＢｘを算出する。なお、各画素の拡散誤差は、上記Ｓ２０４で各画素の階調値を読み出すときに一緒に読み出しておいてもよい。
【００７４】
次に、算出したＢｘが所定のドット形成基準値である閾値ｔｈ１よりも大きいか否かを判断する（Ｓ４０４）。むろん、Ｂｘ≧ｔｈ１であるか否かを判断してもよい。閾値ｔｈ１は、画像データの階調値の小さい領域において、着目ブロック内に１ドット形成するか否かの境界値として予め設定されるものであり、画像データの種類等に応じて適宜決定される値である。
Ｂｘ＞ｔｈ１の場合、着目ブロック内の１画素のみオン、すなわち、ドットを形成し（Ｓ４０６）、Ｓ４１０に進む。本実施形態では、着目ブロック内の左上の画素を「ドットを形成する」画像データとし、残りの３画素を「ドットを形成しない」画像データとする。一方、Ｂｘ≦ｔｈ１の場合、着目ブロック内の画素全てをオフ、すなわち、ドットを形成せず（Ｓ４０８）、Ｓ４１０に進む。この場合、着目ブロック内の４画素全てを「ドットを形成しない」画像データとする。
このようにして、画像データの変換の際に変換対象の４画素について当該４画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。
【００７５】
本フローが行われるのは着目ブロックが高明度領域にあるときなので、ドット形成密度が小さく、ブロック単位でドットを形成しても画像の分解能の低下は目立たず、高画質を維持することが可能である。そこで、画像データを変換した後、図１２で示したブロック単位拡散処理を行い（Ｓ４１０）、着目ブロック全体の階調誤差Ｅを算出して他のブロック内の未変換画素に拡散させ、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
すなわち、図１３で示した処理を行うＰＣは、ブロック処理条件成立時に着目ブロック内の全画素をまとめて変換対象として画像データの変換処理を同着目ブロック単位で行う第一変換手段を構成する。
【００７６】
図１４は、図７のＳ２２０で行われる変換処理（その２）を示すフローチャートである。本フローは、着目ブロックがブロック移行条件成立と判定されるＤ１＜Ｓ≦Ｄ２のときに行われる。
まず、上記Ｓ４０２と同様にして、着目ブロックについての補正データＢｘを算出する（Ｓ５０２）。次に、算出したＢｘが所定のドット形成基準値である閾値ｔｈ２よりも大きいか否かを判断する（Ｓ５０４）。むろん、Ｂｘ≧ｔｈ２であるか否かを判断してもよい。閾値ｔｈ２も、画像データの階調値の小さい領域において、着目ブロック内に１ドット形成するか否かの境界値として予め設定されるものである。本実施形態では、ｔｈ２  ＝  ｔｈ１として、閾値ｔｈ２を上記変換処理（その１）で使用する閾値ｔｈ１と同じ値にしている。このようにすることにより、記憶させる閾値を少なくさせることができるので、画像変換処理を簡素化させることができる。むろん、画像データの種類等に応じて、ｔｈ２をｔｈ１とは異なる値にしてもよい。
【００７７】
Ｂｘ＞ｔｈ２の場合、１画素単位で誤差拡散を行いながら画像データを変換する１画素単位変換処理を行い（Ｓ５０６）、本フローを終了する。
図１５は、１画素単位変換処理を示すフローチャートである。図のフローは、ＣＭＹＫ別に行われ、上記Ｓ２２４や後述する変換処理（その３）の途中でもコールされるようになっている。
まず、図１１で示したように、着目ブロック内の着目画素の位置を設定する（Ｓ６０２）。
【００７８】
着目画素の位置を設定すると、着目画素の階調値と拡散されてきた拡散誤差とをＲＡＭ１３から読み込む（Ｓ６０４）。次に、着目画素についての補正データＣｘを算出する（Ｓ６０６）。ここで、着目画素の階調値をＳｉ、拡散されてきた拡散誤差をＥｉとすると、Ｃｘは、以下の式のように階調値Ｓｉと拡散誤差Ｅｉとの和となる。
Ｃｘ  ＝  Ｓｉ  ＋  Ｅｉ    …（１０）
【００７９】
Ｃｘを算出すると、Ｃｘが所定の閾値ｔｈ０よりも大きいか否かを判断する（Ｓ６０８）。むろん、Ｃｘ≧ｔｈ０であるか否かを判断するようにしてもよい。本実施形態では、閾値ｔｈ０を上記変換処理（その１）や変換処理（その２）で使用する閾値ｔｈ１，ｔｈ２と同じ値にしている。むろん、画像データの種類等に応じて、ｔｈ０をｔｈ１，ｔｈ２とは異なる値にしてもよい。
Ｃｘ＞ｔｈ０の場合、着目画素を「ドットを形成する」画像データとして（Ｓ６１０）Ｓ６１４に進み、Ｃｘ≦ｔｈ０の場合、着目画素を「ドットを形成しない」画像データとして（Ｓ６１２）Ｓ６１４に進む。
このようにして、画像データの変換の際に変換対象の画素について当該画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。
【００８０】
Ｓ６１４では、着目画素で生じる階調誤差を算出する。ここで、画像データ変換後の着目画素の画像データをＤｏｔとすると、着目画素の階調値Ｓｉ、着目画素に拡散されてきた拡散誤差Ｅｉを用いて、着目画素で生じる階調誤差Ｅ’を算出することができる。
Ｅ’  ＝  Ｓｉ  ＋  Ｅｉ  −  Ｄｏｔ    …（１１）
Ｓ６１６では、図１１で示したように、着目画素の階調誤差Ｅ’を他の未変換画素に略均等に拡散させる。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
【００８１】
Ｓ６１８では、着目ブロック内の全画素について変換処理を終了したか否かを判断する。着目ブロック内で変換処理を行っていない画素がある場合にはＳ６０２に戻り、次の着目画素の位置を設定して、繰り返し上述した画像変換処理を行う。一方、着目ブロック内の全画素について変換処理を終了した場合、１画素単位変換処理を終了する。
このようにして、着目ブロック内の画素別に同画素の階調値と拡散誤差とに基づいて同画素の階調誤差を他の未変換画素に拡散させながら着目ブロック内の画素の画像データを変換することができる。
【００８２】
図１４のＳ５０４において、Ｂｘ≦ｔｈ２であった場合、着目ブロック内の画素全てをオフ、すなわち、着目ブロック内の４画素全てを「ドットを形成しない」画像データとする（Ｓ５０８）。Ｓ５０８が行われるのは着目ブロック内にドットが形成されないときであるが、画像変換処理をブロック単位で行ったとしても着目ブロック内から他のブロックに拡散される階調誤差は同じであり、また、ドットが形成されないことには変わりがないため、高画質を維持することができる。そこで、Ｓ５１０にて、図１２で示したブロック単位拡散処理を行い、着目ブロック全体の階調誤差Ｅを算出して他のブロック内の未変換画素に拡散させ、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
【００８３】
このように、図１４で示した処理を行うＰＣは、ブロック移行条件成立時に着目ブロック内の各画素の階調値と拡散誤差とから同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が０と判定したときには同着目ブロック内の全画素をまとめて変換対象として画像変換処理を同着目ブロック単位で行い、同形成するドット数が０より大と判定したときに画素区分別に画像変換処理を行う第二変換手段を構成する。
従って、着目ブロックがブロック処理条件を満たさないと判定されたときでも、着目ブロック内でドットが形成されない場合にはブロック単位で画像変換処理が行われる。その際、画像の高画質は維持されるので、誤差拡散法による画像変換処理をさらに高速化させることができる。
【００８４】
なお、上記総和ＳについてＤ２＜Ｓ≦Ｄ３が成立するとき、図７のＳ２２４にて図１５で示した１画素単位変換処理が行われる。Ｓ２２４が行われるのは着目ブロックが画像中で明度の中間的な中間調領域にあるときであるので、１画素単位できめ細やかな変換処理を行う。
すなわち、中間調領域ではドット形成を判定するまでもなく１画素単位の画像変換処理が行われるので、画像変換処理の速度をさらに向上させることが可能となる。
【００８５】
図１６は、図７のＳ２２８で行われる変換処理（その３）を示すフローチャートである。本フローは、着目ブロックがブロック移行条件成立と判定されるＤ３＜Ｓ≦Ｄ４のときに行われる。
まず、上記Ｓ４０２と同様にして、着目ブロックについての補正データＢｘを算出する（Ｓ７０２）。次に、算出したＢｘが所定の第二ドット形成基準値である閾値ｔｈ３よりも大きいか否かを判断する（Ｓ７０４）。むろん、Ｂｘ≧ｔｈ３であるか否かを判断するようにしてもよい。閾値ｔｈ３は、画像データの階調値の大きい領域において、着目ブロック内で全ドット形成するか否かの境界値として予め設定されるものである。ここで、閾値ｔｈ３は、上記変換処理（その１，２）で使用する閾値ｔｈ１，ｔｈ２よりも大きな値としている。
【００８６】
Ｂｘ＞ｔｈ３の場合、着目ブロック内の画素全てをオン、すなわち、着目ブロック内の４画素全てを「ドットを形成する」画像データとする（Ｓ７０６）。Ｓ７０６が行われるのは着目ブロック内の画素全てにドットが形成されるときであるが、画像変換処理をブロック単位で行ったとしても着目ブロック内から他のブロックに拡散される階調誤差は同じであり、また、画素全てにドットが形成されることには変わりがないため、高画質を維持することができる。そこで、Ｓ７０８にて、図１２で示したブロック単位拡散処理を行い、着目ブロック全体の階調誤差Ｅを算出して他のブロック内の未変換画素に拡散させ、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
一方、Ｂｘ≦ｔｈ３以下の場合、図１５で示した１画素単位変換処理を行い（Ｓ７１０）、本フローを終了する。
【００８７】
このように、図１６で示した処理を行うＰＣは、ブロック移行条件成立時に着目ブロック内の各画素の階調値と拡散誤差とから同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が４と判定したときには同着目ブロック内の全画素をまとめて変換対象として画像変換処理を同着目ブロック単位で行い、同形成するドット数が４より小と判定したときに画素区分別に画像変換処理を行う第二変換手段を構成する。
従って、着目ブロックがブロック処理条件を満たさないと判定されたときでも、着目ブロック内の画素全てでドットが形成される場合にはブロック単位で画像変換処理が行われる。その際、画像の高画質は維持されるので、誤差拡散法による画像変換処理をさらに高速化させることができる。
【００８８】
図１７は、図７のＳ２３２で行われる変換処理（その４）を示すフローチャートである。本フローは、着目ブロックがブロック処理条件成立と判定されるＤ４＜Ｓ＜Ｄ５のときに行われる。
まず、上記Ｓ４０２と同様にして、着目ブロックについての補正データＢｘを算出する（Ｓ８０２）。次に、算出したＢｘが所定の第二ドット形成基準値である閾値ｔｈ４よりも大きいか否かを判断する（Ｓ８０４）。むろん、Ｂｘ≧ｔｈ４であるか否かを判断するようにしてもよい。閾値ｔｈ４も、画像データの階調値の大きい領域において、着目ブロック内で全ドット形成するか否かの境界値として予め設定されるものである。本実施形態では、ｔｈ４  ＝  ｔｈ３として、閾値ｔｈ４を上記変換処理（その４）で使用する閾値ｔｈ３と同じ値にしている。このようにすることにより、記憶させる閾値を少なくさせることができるので、画像変換処理を簡素化させることができる。むろん、画像データの種類等に応じて、ｔｈ４をｔｈ３とは異なる値にしてもよい。
【００８９】
Ｂｘ＞ｔｈ４の場合、着目ブロック内の画素全てをオン、すなわち、ドットを形成し（Ｓ８０６）、Ｓ８１０に進む。この場合、着目ブロック内の４画素全てを「ドットを形成する」画像データとする。一方、Ｂｘ≦ｔｈ４の場合、着目ブロック内の１画素のみオフ、すなわち、１画素のみドットを形成せず（Ｓ８０８）、Ｓ８１０に進む。本実施形態では、着目ブロック内の右下の画素を「ドットを形成しない」画像データとし、残りの３画素を「ドットを形成する」画像データとしている。
このようにして、画像データの変換の際に変換対象の４画素について当該４画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。
【００９０】
本フローが行われるのは着目ブロックが低明度領域にあるときなので、ドット形成密度が大きく、ブロック単位でドットを形成しても画像の分解能の低下は目立たず、高画質を維持することが可能である。そこで、画像データを変換した後、図１２で示したブロック単位拡散処理を行い（Ｓ８１０）、着目ブロック全体の階調誤差Ｅを算出して他のブロック内の未変換画素に拡散させ、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
【００９１】
以上説明したように、誤差拡散法を用いて画像データを変換する際にブロック処理条件が成立していないときでも、着目ブロック内でドットが形成されなかったり着目ブロック内の画素全てでドットが形成される場合には、ブロック単位で画像データの変換処理が行われる。これらの場合には、画像データの変換処理をブロック単位で行ったとしても着目ブロック内から他のブロックに拡散される階調誤差は同じであるとともに着目ブロック内でドットが形成されなかったり着目ブロック内の画素全てでドットが形成されることには変わりがないため、高画質を維持することができる。従って、各画素の階調値の小さい領域と階調値の大きい領域の双方にて、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。
また、画像中で明度が比較的高い領域において上記総和Ｓが閾値Ｄ２以上またはより大のときには着目ブロック内でのドットの形成有無を判定するまでもなく１画素単位の画像変換処理を行い、画像中で明度が比較的低い領域において上記総和Ｓが閾値Ｄ３以下またはより小のときには着目ブロック内でのドットの形成有無を判定するまでもなく１画素単位の画像変換処理を行うので、処理速度がさらに向上する。
さらに、画像変換処理の処理単位は着目ブロック内の各画素の階調値のみに基づいて切り替えられるので、ブロック内の画素の階調値の総和が同じであれば、ブロック内に拡散されてくる階調誤差の大きさには関係なく、画像変換処理の処理単位は一定となる。従って、ブロック内の階調値が同じときにブロック単位の変換処理が行われたり１画素単位の変換処理が行われたりして形成されるドットによる意図しない模様が現れることがなく、変換後の画像データに基づく画像をさらに高画質にさせることも可能となる。
【００９２】
なお、本画像処理装置を実現させるフローは、様々な変形例が考えられる。
例えば、処理を簡素化させるため、図７のＳ２０８〜Ｓ２１２，Ｓ２３０，Ｓ２３４〜Ｓ２３６の処理を省略して、閾値Ｄ１〜Ｄ４のみと総和Ｓとを対比して各種変換処理を行ってもよい。
同図のＳ２０２〜２２０，Ｓ２２４，Ｓ２３８の処理のみを行い、Ｓ＞Ｄ２のときに一律に１画素単位変換処理を行うようにして、低ドット密度側のみブロック処理条件とブロック移行条件の判定結果に対応する処理単位の変換処理を行ってもよい。逆に、同図のＳ２０２〜Ｓ２０６，Ｓ２２２〜２３８の処理のみを行い、Ｓ≦Ｄ３のときに一律に１画素単位変換処理を行うようにして、高ドット密度側のみブロック処理条件とブロック移行条件の判定結果に対応する処理単位の変換処理を行ってもよい。
さらに処理を簡素化させるため、同図のＳ２０２〜２１６，Ｓ２２４，Ｓ２３８の処理のみを行い、Ｓ＞Ｄ１のときに一律に１画素単位変換処理を行うようにして、低ドット密度側のみブロック処理条件のみの判定結果に対応する処理単位の変換処理を行ってもよい。逆に、同図のＳ２０２〜Ｓ２０６，Ｓ２２６，Ｓ２２４，Ｓ２３０〜２３８の処理のみを行い、Ｓ２２６で条件不成立時にＳ２２４に進ませることによりＳ≦Ｄ４のときに一律に１画素単位変換処理を行うようにして、高ドット密度側のみブロック処理条件のみの判定結果に対応する処理単位の変換処理を行ってもよい。
【００９３】
図１８と図１９は、処理を簡素化した階調数変換処理の一例を示すフローチャートである。
Ｓ２０２〜Ｓ２０６にて総和Ｓを算出すると、Ｓ２１４にてＳ＞Ｄ１であるか否かを判断する。Ｓ≦Ｄ１のとき同ブロック処理条件を満たすと判定し、変換処理（その１）を行って（Ｓ２１６）、Ｓ２３８に進む。
Ｓ＞Ｄ１のとき、Ｓ＞Ｄ４であるか否かを判断する（Ｓ２２６）。Ｓ≦Ｄ４のときブロック処理条件を満たさないと判定し、第二変換手段による図１９の変換処理（その５）を行って（Ｓ９２２）Ｓ２３８に進む。Ｓ＞Ｄ４のとき高ドット密度側のブロック処理条件を満たすと判定し、変換処理（その４）を行って（Ｓ２３２）Ｓ２３８に進む。
【００９４】
図１９に示す変換処理（その５）を開始すると、補正データＢｘを算出し（Ｓ１００２）、上記Ｓ５０４と同様、Ｂｘ＞ｔｈ２であるか否かを判断する（Ｓ１００４）。Ｂｘ≦ｔｈ２の場合、上記Ｓ５０８〜Ｓ５１０と同様、着目ブロック内の画素全てをオフとし（Ｓ１００６）、図１２で示したブロック単位拡散処理を行って（Ｓ１００８）、フローを終了する。これにより、着目ブロック内にドットを形成しない場合にブロック単位の画像変換処理が行われる。
Ｂｘ＞ｔｈ２の場合、Ｂｘ＞ｔｈ３であるか否かを判断する（Ｓ１０１０）。Ｂｘ＞ｔｈ３の場合、上記Ｓ７０６〜Ｓ７０８と同様、着目ブロック内の画素全てをオンとし（Ｓ１０１２）、図１２で示したブロック単位拡散処理を行って（Ｓ１０１４）、フローを終了する。これにより、着目ブロック内の画素全てにドットを形成する場合にブロック単位の画像変換処理が行われる。
一方、Ｂｘ≦ｔｈ３（ｔｈ２＜Ｂｘ≦ｔｈ３）の場合には、１画素単位変換処理を行い（Ｓ１０１６）、フローを終了する。
このようにしても、画像の高画質を維持しながら、誤差拡散法による画像変換処理をさらに高速化させることが可能となる。
【００９５】
総和Ｓと処理単位情報とを対比する順序も、様々考えられる。例えば、Ｓ＝Ｄ５であるか否か、Ｓ＞Ｄ４であるか否か、Ｓ＞Ｄ３であるか否か、Ｓ＞Ｄ２であるか否か、Ｓ＞Ｄ１であるか否か、Ｓ＝０であるか否か、の順に判定し、対応する変換処理を行ってもよい。また、ブロック処理条件またはブロック移行条件が満たされるか否かを先に判定した後、ブロック処理条件が成立するか否かを判定してもよい。
【００９６】
図２０は、階調数変換処理の変形例を示すフローチャートである。
Ｓ２０６で総和Ｓを算出すると、Ｓ２１８に進んでＳ＞Ｄ２であるか否かを判断する。Ｓ≦Ｄ２のとき着目ブロックが低ドット密度側のブロック処理条件またはブロック移行条件を満たすと判定し、Ｓ＞Ｄ１であるか否かを判断する（Ｓ２１４）。Ｓ≦Ｄ１のとき低ドット密度側のブロック処理条件を満たすと判定して変換処理（その１）を行い、Ｓ＞Ｄ１のとき低ドット密度側のブロック移行条件を満たすと判定して変換処理（その２）を行い、Ｓ２３８に進む。
Ｓ２１８でＳ＞Ｄ２であったとき、Ｓ２２２でＤ＞Ｄ３であるか否かを判断する。Ｓ＞Ｄ３のとき着目ブロックが高ドット密度側のブロック処理条件またはブロック移行条件を満たすと判定し、Ｓ＞Ｄ４であるか否かを判断する（Ｓ２２６）。Ｓ≦Ｄ４のとき高ドット密度側のブロック移行条件を満たすと判定して変換処理（その３）を行い、Ｓ＞Ｄ４のとき高ドット密度側のブロック処理条件を満たすと判定して変換処理（その４）を行い、Ｓ２３８に進む。
Ｓ２２２でＳ≦Ｄ３であったとき、１画素単位変換処理（Ｓ２２４）を行い、Ｓ２３８に進む。
本フローによると、ブロックが画素別処理条件と比べてブロック処理条件またはブロック移行条件を満たす場合が比較的多いときに、画像変換処理の速度をさらに向上させることが可能となる。
【００９７】
図２１は、階調数変換処理の別の変形例を示すフローチャートである。
Ｓ２０６で総和Ｓを算出すると、Ｄ２＜Ｓ≦Ｄ３であるか否かを判断する（Ｓ１１０２）。Ｄ２＜Ｓ≦Ｄ３のとき、１画素単位変換処理を行って（Ｓ１１０４）Ｓ２３８に進む。これにより、着目ブロックが分割処理条件を満たすと判定される中間調領域が他の領域よりも多い画像について画像変換処理を行う場合に処理を高速化させるという利点がある。
Ｓ１１０２で条件不成立時には着目ブロックがブロック処理条件またはブロック移行条件を満たすと判定したことになり、Ｄ１＜Ｓ≦Ｄ２であるか否かを判断する（Ｓ１１０６）。Ｄ１＜Ｓ≦Ｄ２のとき着目ブロックが低ドット密度側のブロック移行条件を満たすと判定し、変換処理（その２）を行って（Ｓ１１０８）Ｓ２３８に進む。Ｓ１１０６で条件不成立時、Ｄ３＜Ｓ≦Ｄ４であるか否かを判断する（Ｓ１１１０）。Ｄ３＜Ｓ≦Ｄ４のとき高ドット密度側のブロック移行条件を満たすと判定し、変換処理（その３）を行って（Ｓ１１１２）Ｓ２３８に進む。これにより、ブロック移行条件が成立する低ドット密度移行領域や高ドット密度移行領域が低ドット密度領域や高ドット密度領域よりも多い画像について画像変換処理を行う場合に処理を高速化させるという利点がある。
Ｓ１１１０で条件不成立時、Ｓ≦Ｄ１であるか否かを判断する（Ｓ１１１４）。Ｓ≦Ｄ１のとき低ドット密度側のブロック処理条件を満たすと判定し、変換処理（その１）を行って（Ｓ１１１６）Ｓ２３８に進む。Ｓ１１１４で条件不成立時、Ｓ＞Ｄ４なので高ドット密度側のブロック処理条件を満たすと判定し、変換処理（その４）を行って（Ｓ１１１８）Ｓ２３８に進む。
【００９８】
本フローによると、１画素（画素区分）単位で画像変換処理を行う場合が他の処理単位で画像変換処理を行う場合と比べて比較的多いときに、画像変換処理の速度をさらに向上させることが可能となる。従って、例えば、分割処理条件を満たす場合が満たさない場合よりも多い場合に本処理を行えばよい。
また、先にブロック処理条件が満たされるか否かが判定され、同条件が満たされないと判定されたときにブロック移行条件が満たされか否かが判定される。ブロック移行条件を満たす場合がブロック処理条件を満たす場合と比べて比較的多いときに、画像変換処理の速度をさらに向上させることが可能となる。従って、例えば、ブロック移行条件を満たす場合がブロック処理条件を満たす場合よりも多い場合に本処理を行えばよい。
むろん、図７で示したように、ブロック処理条件が満たされるか否かを先に判定した後、ブロック移行条件が満たすか否かを判定してもよい。
【００９９】
図２２は、変換処理（その２）の変形例を示すフローチャートである。本フローでは、基準ドット数を１として、ブロック処理条件不成立時に着目ブロック内に形成するドット数が１以下と判定したときには画像変換処理を着目ブロック単位で行う。
Ｓ５０４でＢｘ＞ｔｈ２のとき、Ｂｘ＞ｔｈ２１であるか否かを判断する（Ｓ５１２）。ここで、所定の閾値ｔｈ２１はｔｈ２より大きくされている。Ｂｘ≦ｔｈ２１（ｔｈ２＜Ｂｘ≦ｔｈ２１）のとき、着目ブロック内で１ドット形成し（Ｓ５１４）、Ｓ５１０に進んでブロック単位拡散処理を行い、フローを終了する。これにより、ブロック処理条件不成立時に着目ブロック内に１ドット以下しかドットを形成しないときにはブロック単位の画像変換処理が行われる。
【０１００】
また、図２３は、変換処理（その３）の変形例を示すフローチャートである。本フローでは、第二基準ドット数を３として、ブロック処理条件不成立時に着目ブロック内に形成するドット数が３以上と判定したときには画像変換処理を着目ブロック単位で行う。
Ｓ７０２で補正データＢｘを算出すると、Ｂｘ＞ｔｈ３１であるか否かを判断する（Ｓ７１２）。ここで、所定の閾値ｔｈ３１はｔｈ３より小さくされている。Ｂｘ＞ｔｈ３１のとき、１画素単位変換処理を行い（Ｓ７１０）、フローを終了する。Ｂｘ≦ｔｈ３１のとき、Ｂｘ＞ｔｈ３であるか否かを判断する（Ｓ７０４）。Ｂｘ≦ｔｈ３（ｔｈ３１＜Ｂｘ≦ｔｈ３）のとき、着目ブロック内で１画素オフすなわち３ドット形成し（Ｓ７１４）、Ｓ７０８に進んでブロック単位拡散処理を行い、フローを終了する。これにより、ブロック処理条件不成立時に着目ブロック内に３ドット以上ドットを形成するときにはブロック単位の画像変換処理が行われる。
【０１０１】
図２４は、画像変換処理を行う画素の処理単位を決定するための処理単位情報の変形例を示している。本処理単位情報Ｔ１は、ブロック内の画素の階調値の総和Ｓに対応付けて処理単位を決定するための個別処理単位情報を格納した情報テーブルとされ、ＨＤ１４に記憶されている。総和Ｓは０〜１０２０の整数値をとりうるため、１０２１種類の総和Ｓに対応させて画像変換処理の種類を表す情報が格納されている。図では、（ｕ１）〜（ｕ７）の７種類の個別処理単位情報が設けられている。本例では、ブロック移行条件成立時の処理として、画素区分を２×１画素とする処理と１画素とする処理の２種類を設けている。
【０１０２】
図２５は、処理単位情報Ｔ１を用いた階調数変換処理を示すフローチャートである。
Ｓ２０６で総和Ｓを算出すると、ＨＤ１４に記憶された処理単位情報Ｔ１の情報テーブルから総和Ｓに対応する個別処理単位情報を読み出して取得する（Ｓ１２０２）。そして、Ｓ１２０４，Ｓ１２０８，Ｓ１２１２，Ｓ１２１６にて個別処理単位情報に対応させて処理を分岐させ、Ｓ１２０６，Ｓ１２１０，Ｓ１２１４，Ｓ１２１８，Ｓ１２２０にて個別処理単位情報に対応する変換処理を行って、Ｓ２３８に進む。なお、図中、変換処理（その１，４）はブロック処理条件成立時の画像変換処理であり、変換処理（その６，７）は画素区分を２×１画素とするブロック移行条件成立時の画像変換処理であり、変換処理（その２）は画素区分を１画素とするブロック移行条件成立時の画像変換処理である。
以上の処理により、閾値を用いずに画像変換処理を切り替えることができるので、簡易な構成ながら画質を低下させずに画像変換処理をさらに高速化させることができる。
【０１０３】
なお、第一変換手段、第二変換手段によりブロック単位で画像変換処理を行う前に、着目ブロックがいわゆるエッジ部分であるか否かを判定し、エッジ部分であると判定したときには１画素単位で画像変換処理を行うようにしてもよい。その際、例えば、着目ブロック内で隣接した画素の階調値の差が所定値以上のときや、着目ブロック内で階調値の最大値と最小値との差が所定値以上のときにエッジ部分であると判定することができる。すると、各画素の階調値が急変する領域では、きめ細やかに画像データを変換することができるので、画像中のエッジ部分を不鮮明にさせることなく高画質な画像を得ることが可能となる。
【０１０４】
（５）第二の実施形態：
また、画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換する場合、解像度変換前の画像データを用いてブロック処理条件等の成立の可否を判定し、判定結果に対応する画像変換処理を行うようにしてよい。
図６のフローを参照すると、例えば、解像度が設定されたＣＭＹＫデータを入手し（Ｓ１０５）、解像度変換処理を行い（Ｓ１１０）、Ｓ１１５の色変換処理を行わずに階調数変換処理（Ｓ１２０）を行う場合に解像度変換前の画像データを用いてブロック処理条件等の成立の可否を判定することができる。また、解像度が設定されたＲＧＢデータを入手し（Ｓ１０５）、先に色変換処理（Ｓ１１５）を行った後、解像度変換処理を行い（Ｓ１１０）、階調数変換処理（Ｓ１２０）を行ってもよい。さらに、解像度が設定されたＲＧＢデータを入手して保持しておき（Ｓ１０５）、解像度変換処理を行い（Ｓ１１０）、色変換処理を行って（Ｓ１１５）解像度変換処理（Ｓ１２０）を行うとともに、保持しておいた解像度変換前のＲＧＢデータに対してＳ１１５と同様の色変換処理を行い、同色変換後であって解像度変換前の画像データ（ＣＭＹＫデータ）を用いてブロック処理条件等の成立の可否を判定してもよい。
【０１０５】
図２６は、解像度変換前の画像データを用いてブロック処理条件等の成立の可否を判定する判定手段の処理を説明する図である。図の左側は解像度変換前の画像データ（ＣＭＹＫデータ）５１であり、右側は解像度変換後の画像データ（ＣＭＹＫデータ）５２である。図の例のように、３６０×３６０ｄｐｉに設定された画像データを２×２倍の７２０×７２０ｄｐｉに高解像度化する場合、変換前の画像データの１画素に対して変換後の画像データの２×２画素を対応させる。本発明の判定手段は、変換前の画像データ５１を構成する画素の中から一または二以上の近隣した画素を処理区分５３とするとともに、変換後の画像データ５２を構成する画素の中から処理区分５３に対応する画素数の近隣した画素をブロック５４とする。図の例では、処理区分５３を１画素とし、ブロック５４を２×２画素としている。
そして、ブロック５４の中から画像データを階調数変換する着目ブロック５５を設定するとともに、この着目ブロック５５に対応する着目処理区分５６を処理区分５３の中から設定し、着目処理区分５６内の画素の階調値と、階調数変換処理を行う画素の処理単位を決定するための処理単位情報とを対比して、着目ブロック５５が所定のブロック処理条件を満たすか否かを判定する。本処理単位情報は、処理区分内の画素の階調値に対応付けられた情報である。ブロック処理条件は、処理区分内の階調値のとりうる範囲の中から所定の範囲を持った条件とされている。
【０１０６】
図２７は、解像度を２×２倍に高解像度化させる場合に上記処理区分を１画素として画像変換処理を行う階調数変換処理をフローチャートにより示している。本フローでは、処理区分に対応して解像度変換の変換倍率２×２倍に一致する画素数の近隣した画素をブロックとしている。本実施形態の処理単位情報は、閾値ＤＡ１〜ＤＡ４から構成している。ここで、閾値ＤＡ１，ＤＡ２，ＤＡ３，ＤＡ４は本発明にいう第一、第二、第三、第四の閾値であり、０＜ＤＡ１＜ＤＡ２＜ＤＡ３＜ＤＡ４＜２５５の関係がある。なお、ＤＡ１〜ＤＡ４は、第一の実施形態で用いた閾値Ｄ１〜Ｄ４を４で除した値とすることができ、第一の実施形態のように、２５５−ＤＡ４＞ＤＡ１−０、２５５−ＤＡ３＞ＤＡ２−０としてもよいし、上述した式（１）〜（４）を満たすようにしてもよい。
まず、解像度変換後の画像データを構成する画素の中から近隣する所定の２×２画素をまとめてブロックとし、画像データを階調数変換する着目ブロックの位置を設定する（Ｓ２００２）。次に、解像度変換前の画像データを構成する画素の中から着目ブロックに対応する着目画素（着目処理区分）の位置を設定する（Ｓ２００４）。さらに、同着目画素の階調値ＳＡを取得する（Ｓ２００６）。これにより、画像データを階調数変換する着目ブロックに対応する処理区分の画素の階調値が取得されるが、第一の実施形態のように総和Ｓを算出する必要がないので、処理が高速化される。
【０１０７】
階調値ＳＡを取得すると、ＳＡ＞ＤＡ１（またはＳＡ≧ＤＡ１）であるか否かを判断する（Ｓ２００８）。ＳＡ≦ＤＡ１のとき着目ブロックが低ドット密度側のブロック処理条件を満たすと判定し、第一の実施形態の変換処理（その１）を行って（Ｓ２０１０）、Ｓ２０２６に進む。これにより、同条件が満たされると判定されたときに画像変換処理が着目ブロック単位で行われる。
Ｓ２００８でＳＡ＞ＤＡ１のとき上記ブロック処理条件を満たさないと判定し、Ｓ２０１２でＳＡ＞ＤＡ２（またはＳＡ≧ＤＡ２）であるか否かを判断する。ＳＡ≦ＤＡ２のとき着目ブロックが低ドット密度側のブロック移行条件を満たすと判定し、第一の実施形態の変換処理（その２）を行って（Ｓ２０１４）、Ｓ２０２６に進む。これにより、同条件が満たされると判定されたときに着目ブロック内のドットの形成状況を判定して判定結果に対応する処理単位の画像変換処理が行われる。
Ｓ２０１２でＳＡ＞ＤＡ２のとき上記ブロック移行条件を満たさないと判定し、Ｓ２０１６でＳＡ＞ＤＡ３（またはＳＡ≧ＤＡ３）であるか否かを判断する。ＳＡ≦ＤＡ３のとき着目ブロックが分割処理条件を満たすと判定し、第一の実施形態の１画素単位変換処理を行って（Ｓ２０１８）、Ｓ２０２６に進む。これにより、同条件が満たされると判定されたときに画像変換処理が１画素単位（画素区分単位）で行われる。
【０１０８】
Ｓ２０１６でＳＡ＞ＤＡ３のとき、Ｓ２０２０でＳＡ＞ＤＡ４（またはＳＡ≧ＤＡ４）であるか否かを判断する。ＳＡ≦ＤＡ４のとき着目ブロックが高ドット密度側のブロック移行条件を満たすと判定し、第一の実施形態の変換処理（その３）を行って（Ｓ２０２２）、Ｓ２０２６に進む。これにより、同条件が満たされると判定されたときに着目ブロック内のドットの形成状況を判定して判定結果に対応する処理単位の画像変換処理が行われる。
Ｓ２０２０でＳＡ＞ＤＡ４のとき高ドット密度側のブロック処理条件を満たすと判定し、第一の実施形態の変換処理（その４）を行って（Ｓ２０２４）、Ｓ２０２６に進む。これにより、同条件が満たされると判定されたときに画像変換処理が着目ブロック単位で行われる。
なお、変換処理（その１〜４）で補正データＢｘを算出する際には、着目ブロック内の各画素の階調値の総和を階調値ＳＡの４倍（１ビット分シフト）とすることができるので、Ｂｘを算出する処理も高速化させることができる。
Ｓ２０２６では、画像データの全ブロックについて階調数変換処理を終了したか否かを判断し、階調数変換処理を行っていないブロックがある場合にはＳ２００２に戻り、全ブロックについて階調数変換処理を終了した場合にはフローを終了する。
【０１０９】
以上のフローにより、高画質を維持可能な領域のみドットはブロック単位で形成されるので、画像データの変換処理を高速化させることができる。また、解像度変換前の画像データから着目ブロックに対応する１画素のみの階調値を参照することにより着目ブロック内の画素の階調値を参照する必要がなくなるし、着目ブロック内でのドットの形成状況を判定する処理の速度も向上するので、誤差拡散法による画像変換処理を効果的に高速化させることが可能となる。
【０１１０】
なお、図２７で示した処理では処理区分内の画素の階調値のみを処理単位情報と対比して画像変換処理を切り替えたが、処理区分内の画素の階調値に基づいていれば他のパラメータを考慮して所定の処理単位情報と対比することにより画像変換処理を切り替えるようにすることも可能である。例えば、階調値ＳＡと着目ブロックに拡散されてきた全拡散誤差とに基づいて画像変換処理を切り替えてもよく、階調値ＳＡの４倍と同拡散誤差との総和（上述した補正データＢｘに相当）と所定の処理単位情報とを対比して画像変換処理を切り替えてもよい。処理区分が複数の画素から構成される場合、ブロックの画素数をｎとすると、処理区分の各画素の階調値の平均をｎ倍した値と着目ブロックに拡散されてきた全階調誤差との総和と所定の処理単位情報とを対比することにより、画像変換処理を切り替えることができる。
【０１１１】
また、解像度変換前後の解像度を取得して高解像度化であるか低解像度化であるかを判断し、判断結果に対応して階調数変換処理を切り替えてもよい。
図２８は、階調数変換処理の変形例を示すフローチャートである。まず、画像データに対して設定された解像度変換前の解像度（例えばディスプレイに表示する解像度）ＤＰ１を取得する（Ｓ２１０２）。次に、画像データに対して設定された解像度変換後の解像度（例えばプリンタに出力する解像度）ＤＰ２を取得する（Ｓ２１０４）。そして、ＤＰ１＞ＤＰ２であるか否かを判断する（Ｓ２１０６）。これにより、解像度変換処理の解像度変換が画像データを低解像度化する変換であるか否かを判断することができる。
ＤＰ１≦ＤＰ２のとき解像度変換は低解像度化でない（高解像度化または同解像度）と判定し、高解像度化である場合には図２７で示した画像変換処理を行い、同解像度の場合には処理区分の画素数をブロックの画素数と同じにして図２７と同様の画像変換処理を行う。
【０１１２】
ＤＰ１＞ＤＰ２のとき解像度変換は低解像度化と判定し、解像度変換後の画像データを構成する画素の中から近隣する所定の２×２画素をまとめてブロックとし、画像データを階調数変換する着目ブロックの位置を設定する（Ｓ２１０８）。次に、解像度変換前の画像データを構成する画素の中から着目ブロックに対応する着目画素の位置を設定する（Ｓ２１１０）。ここで、ブロックに対応して複数の画素からなる着目処理区分を設定して着目処理区分内の各画素の階調値の総和を算出するようにしてもよいが、低解像度化する解像度変換は通常画素を間引く処理を行っているので、着目処理区分の中から間引き処理で残された画素を着目画素とすればよい。さらに、同着目画素の階調値ＳＡを取得する（Ｓ２１１２）。そして、着目ブロックはブロック処理条件を満たさないと判定し、第一の実施形態の１画素単位変換処理を行って（Ｓ２１１４）、Ｓ２１１６に進む。Ｓ２１０８〜Ｓ２１１４の処理は、全ブロックが終了するまで行われる。
解像度変換が低解像度化する変換であるとき、低解像度化された画像データの階調数変換処理は時間が短くて済むので、高速化よりも画質維持を優先させることが可能である。上述した処理により、低解像度化する解像度変換処理が行われたときには全ドット密度領域にわたって着目ブロック内の画素を区分した画素区分別に階調数変換処理が行われるので、誤差拡散法による画像変換処理を高速にて行う際に効率よく処理を行うことが可能となる。
【０１１３】
（６）まとめ：
なお、本発明の画像処理プログラムを実行可能な画像処理装置と周辺装置は、様々な構成が可能である。
例えば、プリンタは、コンピュータと一体化されたものであってもよい。また、大中小のドットを形成可能である等、形成するドットの大きさを可変としたプリンタを使用してもよい。
上述したフローについては、ＰＣ内で実行する以外にも、一部または全部をプリンタあるいは専用の画像処理装置で実行するようにしてもよい。
画像を出力する装置は、印刷媒体上にドットを形成して印刷を行う装置以外であってもよく、例えば、液晶表示画面上で輝点形成の有無により画像を表現する液晶表示装置であってもよい。
【０１１４】
以上説明したように、本発明によると、種々の態様により、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能な画像処理装置、印刷制御装置、印刷装置、画像処理プログラムおよびそのプログラムを記録した媒体を提供することができる。また、画像処理方法としても適用可能である。
【図面の簡単な説明】
【図１】第一の実施形態にかかる画像処理装置を含む印刷装置の概略構成図。
【図２】プリンタのブロック構成をＰＣとともに示すブロック構成図。
【図３】画像処理装置の構成を模式的に示す図。
【図４】閾値と総和Ｓとの対応関係を模式的に示す図。
【図５】画素とドットの大きさの関係を模式的に示す図。
【図６】本画像処理装置が行う処理を示すフローチャート。
【図７】階調数変換処理を示すフローチャート。
【図８】着目ブロックの位置を設定する様子を模式的に示す図。
【図９】ブロック単位で誤差拡散を行いながら画像データを変換する様子を示す図。
【図１０】ブロック単位で誤差拡散を行いながら画像データを変換する様子を示す図。
【図１１】１画素単位で誤差拡散を行いながら画像データを変換する様子を示す図。
【図１２】ブロック単位拡散処理を示すフローチャート。
【図１３】変換処理（その１）を示すフローチャート。
【図１４】変換処理（その２）を示すフローチャート。
【図１５】１画素単位変換処理を示すフローチャート。
【図１６】変換処理（その３）を示すフローチャート。
【図１７】変換処理（その４）を示すフローチャート。
【図１８】階調数変換処理の変形例を示すフローチャート。
【図１９】変換処理（その５）を示すフローチャート。
【図２０】階調数変換処理の変形例を示すフローチャート。
【図２１】階調数変換処理の変形例を示すフローチャート。
【図２２】変換処理（その２）の変形例を示すフローチャート。
【図２３】変換処理（その３）の変形例を示すフローチャート。
【図２４】変形例における処理単位情報の構造を模式的に示す図。
【図２５】階調数変換処理の変形例を示すフローチャート。
【図２６】第二の実施形態において判定手段の処理を説明する図。
【図２７】第二の実施形態における階調数変換処理を示すフローチャート。
【図２８】階調数変換処理の変形例を示すフローチャート。
【符号の説明】
１０…パーソナルコンピュータ、１４…ハードディスク、１４ａ…ハードディスクドライブ、１４ｂ…処理単位情報、２０…インクジェットプリンタ、５１…解像度変換前の画像データ、５２…解像度変換後の画像データ、５３…処理区分、５４…ブロック、５５…着目ブロック、５６…着目処理区分、１００…印刷装置、Ａ…画像処理装置、Ａ１…判定手段、Ａ２…第一変換手段、Ａ３…第二変換手段、Ａ４…記憶手段、Ｂ１，Ｂ１２…着目ブロック、Ｂ１１，Ｂ１３…ブロック、Ｐａ，Ｐｂ，Ｐｃ，Ｐｄ…画素、Ｔ１…処理単位情報、Ｕ１…着目画素、Ｕ１０〜Ｕ１６…画素
【図１】
2005039387.tif 000003
【図２】
2005039387.tif 000004
【図３】
2005039387.tif 000005
【図４】
2005039387.tif 000006
【図５】
2005039387.tif 000007
【図６】
2005039387.tif 000008
【図７】
2005039387.tif 000009
【図８】
2005039387.tif 000010
【図９】
2005039387.tif 000011
【図１０】
2005039387.tif 000012
【図１１】
2005039387.tif 000013
【図１２】
2005039387.tif 000014
【図１３】
2005039387.tif 000015
【図１４】
2005039387.tif 000016
【図１５】
2005039387.tif 000017
【図１６】
2005039387.tif 000018
【図１７】
2005039387.tif 000019
【図１８】
2005039387.tif 000020
【図１９】
2005039387.tif 000021
【図２０】
2005039387.tif 000022
【図２１】
2005039387.tif 000023
【図２２】
2005039387.tif 000024
【図２３】
2005039387.tif 000025
【図２４】
2005039387.tif 000026
【図２５】
2005039387.tif 000027
【図２６】
2005039387.tif 000028
【図２７】
2005039387.tif 000029
【図２８】
2005039387.tif 000030
【手続補正書】
【提出日】平成16年10月6日(2004.10.6)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】画像を複数の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う画像処理装置であって、
ブロックとする所定数の画素の階調値に対応付けて、上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを上記処理単位情報と対比して同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および上記変換処理済みの画素の階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が基準ドット数以下と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同基準ドット数より大と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換手段とを具備することを特徴とする画像処理装置。
【請求項２】画像を複数の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う画像処理装置であって、
ブロックとする所定数の画素の階調値に対応付けて、上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを上記処理単位情報と対比して同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が基準ドット数以下と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同基準ドット数より大と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換手段とを具備することを特徴とする画像処理装置。
【請求項３】画像を複数の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う画像処理装置であって、
ブロックとする所定数の画素の階調値に対応付けて、上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを上記処理単位情報と対比して同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および上記変換処理済みの画素の階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が第二基準ドット数以上と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換手段とを具備することを特徴とする画像処理装置。
【請求項４】画像を複数の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う画像処理装置であって、
ブロックとする所定数の画素の階調値に対応付けて、上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを上記処理単位情報と対比して同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および拡散されてきた上記階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が第二基準ドット数以上と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換手段とを具備することを特徴とする画像処理装置。
【請求項５】上記判定手段は、上記ブロック処理条件が満たされない所定のブロック移行条件を上記着目ブロックが満たすか否かを同着目ブロック内の各画素の階調値と上記処理単位情報とを対比して判定し、
上記第二変換手段は、上記着目ブロックが上記ブロック移行条件を満たすと判定されたときに上記着目ブロック内でのドットの形成状況を判定して判定結果に対応して上記着目ブロック単位でまたは上記画素区分別に上記変換処理を行い、上記着目ブロックが上記ブロック移行条件を満たさないと判定されたときには上記画素区分別に上記変換処理を行うことを特徴とする請求項１〜請求項４のいずれかに記載の画像処理装置。
【請求項６】上記判定手段は、上記着目ブロックが上記ブロック処理条件を満たすか否かを判定し、同着目ブロックが同ブロック処理条件を満たさないと判定したときに同着目ブロックが上記ブロック移行条件を満たすか否かを判定することを特徴とする請求項５に記載の画像処理装置。
【請求項７】上記判定手段は、上記着目ブロックが上記ブロック処理条件またはブロック移行条件を満たすか否かを判定し、同着目ブロックが同ブロック処理条件またはブロック移行条件を満たすと判定したときに同着目ブロックが上記ブロック処理条件を満たすか否かを判定することを特徴とする請求項５に記載の画像処理装置。
【請求項８】上記処理単位情報には上記ブロック内の各画素の階調値の総和に対応付けられた第一および第二の閾値が含まれるとともに、同第二の閾値は同第一の閾値よりも高ドット密度側の値とされ、
上記判定手段は、上記着目ブロック内の各画素の階調値の総和が上記第一の閾値から低ドット密度側であるときに上記着目ブロックが上記ブロック処理条件を満たすと判定し、同着目ブロック内の各画素の階調値の総和が上記第一の閾値から高ドット密度側であるとともに上記第二の閾値から低ドット密度側であるときに上記着目ブロックが所定のブロック移行条件を満たすと判定し、
上記第二変換手段は、上記着目ブロックが上記ブロック移行条件を満たすと判定されたときに上記着目ブロック内でのドットの形成状況を判定して判定結果に対応して上記着目ブロック単位でまたは上記画素区分別に上記変換処理を行い、上記着目ブロックが上記ブロック移行条件を満たさないと判定されたときには上記画素区分別に上記変換処理を行うことを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項９】上記第二の閾値は、上記ブロック内の画素数をＮ、画素区分数をＮ０とするとき、低ドット密度側から（Ｎ０−１）／（Ｎ×Ｎ０）以内の値とされていることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】上記処理単位情報には上記ブロック内の各画素の階調値の総和に対応付けられた第三および第四の閾値が含まれるとともに、同第四の閾値は同第三の閾値よりも高ドット密度側の値とされ、
上記判定手段は、上記着目ブロック内の各画素の階調値の総和が上記第四の閾値から高ドット密度側であるときに上記着目ブロックが上記ブロック処理条件を満たすと判定し、同着目ブロック内の各画素の階調値の総和が上記第三の閾値から高ドット密度側であるとともに上記第四の閾値から低ドット密度側であるときに上記着目ブロックが所定のブロック移行条件を満たすと判定し、
上記第二変換手段は、上記着目ブロックが上記ブロック移行条件を満たすと判定されたときに上記着目ブロック内でのドットの形成状況を判定して判定結果に対応して上記着目ブロック単位でまたは上記画素区分別に上記変換処理を行い、上記着目ブロックが上記ブロック移行条件を満たさないと判定されたときには上記画素区分別に上記変換処理を行うことを特徴とする請求項３または請求項４に記載の画像処理装置。
【請求項１１】上記第三の閾値は、上記ブロック内の画素数をＮ、画素区分数をＮ０とするとき、高ドット密度側から（Ｎ０−１）／（Ｎ×Ｎ０）以内の値とされていることを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】画像を複数の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う画像処理装置であって、
ブロックとする所定数の画素の階調値に対応付けて、上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを上記処理単位情報と対比して同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および上記変換処理済みの画素の階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が基準ドット数以下または同基準ドット数より大きい第二基準ドット数以上と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同基準ドット数より大かつ同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を行う第二変換手段とを具備することを特徴とする画像処理装置。
【請求項１３】上記処理単位情報には上記ブロック内の各画素の階調値の総和に対応付けられた第一、第二、第三および第四の閾値が含まれるとともに、同第一、第二、第三、第四の閾値の順に、より高ドット密度側の値とされ、
上記判定手段は、上記着目ブロック内の各画素の階調値の総和が上記第一の閾値から低ドット密度側または上記第四の閾値から高ドット密度側であるときに上記着目ブロックが上記ブロック処理条件を満たすと判定し、同着目ブロック内の各画素の階調値の総和が上記第一の閾値から高ドット密度側であるとともに上記第二の閾値から低ドット密度側、または、上記第三の閾値から高ドット密度側であるとともに上記第四の閾値から低ドット密度側であるときに上記着目ブロックが所定のブロック移行条件を満たすと判定し、
上記第二変換手段は、上記着目ブロックが上記ブロック移行条件を満たすと判定されたときに上記着目ブロック内でのドットの形成状況を判定して判定結果に対応して上記着目ブロック単位でまたは上記画素区分別に上記変換処理を行い、上記着目ブロックが上記ブロック移行条件を満たさないと判定されたときには上記画素区分別に上記変換処理を行うことを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】上記処理単位情報には上記ブロック内の各画素の階調値の総和に対応付けられた第一および第四の閾値が含まれるとともに、同第四の閾値は同第一の閾値よりも高ドット密度側の値とされ、
上記判定手段は、上記着目ブロック内の各画素の階調値の総和が上記第一の閾値から低ドット密度側であるかまたは上記第四の閾値から高ドット密度側であるときに上記着目ブロックが上記ブロック処理条件を満たすと判定し、
上記ブロック内の各画素の階調値の総和がとりうる範囲のうち上記第四の閾値から高ドット密度側の範囲が上記第一の閾値から低ドット密度領域側の範囲より広くされていることを特徴とする請求項１３に記載の画像処理装置。
【請求項１５】上記処理単位情報は、上記ブロック内の画素の階調値に対応付けて上記処理単位を決定するための個別処理単位情報を格納した情報テーブルであり、
上記判定手段は、上記着目ブロック内の画素の階調値に対応する上記個別処理単位情報を上記情報テーブルから読み出し、読み出した個別処理単位情報から上記着目ブロックが上記ブロック処理条件を満たすか否かを判定することを特徴とする請求項１〜請求項７，請求項１２のいずれかに記載の画像処理装置。
【請求項１６】上記第二変換手段は、上記着目ブロック内の画素を区分した画素区分別に上記変換処理を行う際、同着目ブロック内の画素別に上記変換処理を行うことを特徴とする請求項１〜請求項１５のいずれかに記載の画像処理装置。
【請求項１７】画像を複数の画素で多階調表現した画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換するとともに、同階調数変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する階調数変換処理を行う画像処理装置であって、
解像度変換前の上記画像データを構成する画素の中から一または二以上の近隣した画素を処理区分とするとともに解像度変換後の上記画像データを構成する画素の中から同処理区分に対応する画素数の近隣した画素をブロックとし、上記画像データを階調数変換する着目ブロックに対応する処理区分内の画素の階調値と、同処理区分内の画素の階調値に対応付けられて上記階調数変換処理を行う画素の処理単位を決定するための処理単位情報とを対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記階調数変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の画素を区分した画素区分別に上記階調数変換処理を実行可能な第二変換手段とを具備することを特徴とする画像処理装置。
【請求項１８】上記判定手段は、上記解像度変換が上記画像データを高解像度化する変換であるとき、上記処理区分を１画素とするとともに上記解像度変換後の画像データを構成する画素の中から同処理区分に対応して同解像度変換の変換倍率に一致する画素数の近隣した画素を上記ブロックとすることを特徴とする請求項１７に記載の画像処理装置。
【請求項１９】上記判定手段は、上記解像度変換が上記画像データを低解像度化する変換であるか否かを判断し、同解像度変換が低解像度化する変換であると判断したときには上記着目ブロックは上記ブロック処理条件を満たさないと判定することを特徴とする請求項１７に記載の画像処理装置。
【請求項２０】画像を複数の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う画像処理方法であって、
近隣する所定数の画素をブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを、同ブロック内の画素の階調値に対応付けられて記憶されるとともに上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定工程と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換工程と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および上記変換処理済みの画素の階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が基準ドット数以下と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同基準ドット数より大と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換工程とを具備することを特徴とする画像処理方法。
【請求項２１】画像を複数の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う画像処理方法であって、
近隣する所定数の画素をブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを、同ブロック内の画素の階調値に対応付けられて記憶されるとともに上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定工程と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換工程と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および上記変換処理済みの画素の階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が第二基準ドット数以上と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換工程とを具備することを特徴とする画像処理方法。
【請求項２２】画像を複数の画素で多階調表現した画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換するとともに、同階調数変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する階調数変換処理を行う画像処理方法であって、
解像度変換前の上記画像データを構成する画素の中から一または二以上の近隣した画素を処理区分とするとともに解像度変換後の上記画像データを構成する画素の中から同処理区分に対応する画素数の近隣した画素をブロックとし、上記画像データを階調数変換する着目ブロックに対応する処理区分内の画素の階調値と、同処理区分内の画素の階調値に対応付けられて上記階調数変換処理を行う画素の処理単位を決定するための処理単位情報とを対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定する判定工程と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記階調数変換処理を同着目ブロック単位で行う第一変換工程と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の画素を区分した画素区分別に上記階調数変換処理を実行可能な第二変換工程とを具備することを特徴とする画像処理方法。
【請求項２３】画像を複数の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行い、変換後の画像データに対応する画像の印刷制御を行う印刷制御装置であって、
ブロックとする所定数の画素の階調値に対応付けて、上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを上記処理単位情報と対比して同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および上記変換処理済みの画素の階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が基準ドット数以下と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同基準ドット数より大と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換手段と、
上記変換後の画像データに対応する画像を印刷させる制御を行う印刷制御手段とを具備することを特徴とする印刷制御装置。
【請求項２４】画像を複数の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行い、変換後の画像データに対応する画像の印刷制御を行う印刷制御装置であって、
ブロックとする所定数の画素の階調値に対応付けて、上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを上記処理単位情報と対比して同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および上記変換処理済みの画素の階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が第二基準ドット数以上と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換手段と、
上記変換後の画像データに対応する画像を印刷させる制御を行う印刷制御手段とを具備することを特徴とする印刷制御装置。
【請求項２５】画像を複数の画素で多階調表現した画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換するとともに、同階調数変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する階調数変換処理を行い、階調数変換後の画像データに対応する画像の印刷制御を行う印刷制御装置であって、
解像度変換前の上記画像データを構成する画素の中から一または二以上の近隣した画素を処理区分とするとともに解像度変換後の上記画像データを構成する画素の中から同処理区分に対応する画素数の近隣した画素をブロックとし、上記画像データを階調数変換する着目ブロックに対応する処理区分内の画素の階調値と、同処理区分内の画素の階調値に対応付けられて上記階調数変換処理を行う画素の処理単位を決定するための処理単位情報とを対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記階調数変換処理を同着目ブロック単位で行う第一変換手段と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の画素を区分した画素区分別に上記階調数変換処理を実行可能な第二変換手段と、
上記階調数変換後の画像データに対応する画像を印刷させる制御を行う印刷制御手段とを具備することを特徴とする印刷制御装置。
【請求項２６】画像を複数の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う機能をコンピュータに実現させる画像処理プログラムであって、
近隣する所定数の画素をブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを、同ブロック内の画素の階調値に対応付けられて記憶されるとともに上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定機能と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換機能と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および上記変換処理済みの画素の階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が基準ドット数以下と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同基準ドット数より大と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換機能とを実現させることを特徴とする画像処理プログラム。
【請求項２７】画像を複数の画素で多階調表現した画像データをドット形成の有無により表現した画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う機能をコンピュータに実現させる画像処理プログラムであって、
近隣する所定数の画素をブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値のみを、同ブロック内の画素の階調値に対応付けられて記憶されるとともに上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、同着目ブロックが同ブロック内の階調値のとりうる範囲の中から所定の範囲を持った所定のブロック処理条件を満たすか否かを判定する判定機能と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う第一変換機能と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の各画素の階調値および上記変換処理済みの画素の階調誤差から同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が第二基準ドット数以上と判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、同形成するドット数が同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な第二変換機能とを実現させることを特徴とする画像処理プログラム。
【請求項２８】画像を複数の画素で多階調表現した画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換するとともに、同階調数変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する階調数変換処理を行う機能をコンピュータに実現させる画像処理プログラムであって、
解像度変換前の上記画像データを構成する画素の中から一または二以上の近隣した画素を処理区分とするとともに解像度変換後の上記画像データを構成する画素の中から同処理区分に対応する画素数の近隣した画素をブロックとし、上記画像データを階調数変換する着目ブロックに対応する処理区分内の画素の階調値と、同処理区分内の画素の階調値に対応付けられて上記階調数変換処理を行う画素の処理単位を決定するための処理単位情報とを対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定する判定機能と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記階調数変換処理を同着目ブロック単位で行う第一変換機能と、
上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の画素を区分した画素区分別に上記階調数変換処理を実行可能な第二変換機能とを実現させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置、画像処理方法、印刷制御装置および画像処理プログラムに関する。
【０００２】
【従来の技術】
従来、画像を印刷する際には、画像をドットマトリクス状の画素で多階調表現した画像データを入力し、誤差拡散法により、各画素の階調誤差を他の未変換画素に拡散させながら各画素に対応してドット形成の有無により表現した画像データに変換する処理を行っている。この誤差拡散法によると、誤差が生じないため画質はよい反面、誤差を算出して割り振っていく際の演算処理に時間がかかるため、２×２画素をまとめてブロックとし、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させながら同着目ブロック内の画素の画像データをまとめて変換するブロック単位処理が行われている。同ブロック単位処理によると、画像データを変換する処理を高速化することができるものの、１画素単位で変換する場合と比べて画像の分解能は低下し、画質が低下することになる。
そこで、引用文献１に開示された技術のように、ブロック単位の変換処理を行っても高画質を維持可能である画像の明度が高い領域を所定のブロック処理条件が成立する領域として設定し、同ブロック処理条件を満たすか否かを着目ブロック内の画素全ての階調値と拡散されてきた階調誤差との総和に基づいて判定している。具体的には、同総和Ｂｘがブロック内の階調値のとりうる範囲の中から閾値ｔｈ２以下となるような所定の範囲を持ったブロック処理条件を満たすか否かを判定している。そして、同ブロック処理条件を満たすと判定したとき着目ブロック内の画素の画像データをまとめて変換する処理を行い、同ブロック処理条件を満たさないと判定したとき一律に着目ブロック内で画素別に画像データを変換する処理を行っている。その結果、画像データのうちドット形成密度が非常に小さくて分解能の低下が目立たず高画質を維持可能な領域のみ、ドットはブロック単位で形成され、画像データの変換処理はある程度高速化されながら高画質が維持される。
【０００３】
【特許文献１】
特開２００２−１８５７８９号公報
【０００４】
【発明が解決しようとする課題】
上述した従来の技術においては、画像データの変換処理をある程度高速化させることができるものの、さらなる高速化が望まれていた。
本発明は、上記課題にかんがみてなされたもので、画像を複数の画素で多階調表現した画像データから階調誤差を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能な画像処理装置、画像処理方法、印刷制御装置および画像処理プログラムの提供を目的とする。
【０００５】
【課題を解決するための手段および発明の効果】
上記目的を達成するため、請求項１、請求項３、請求項１２にかかる発明では、上記記憶手段と判定手段と第一変換手段と第二変換手段を具備する構成としてある。
本画像処理装置は、画像を複数の画素で多階調表現した画像データを、ドット形成の有無により表現した画像データに変換する。この変換の際、変換対象の画素について当該画素の階調値と変換処理済みの画素の階調誤差とに基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う。
上記変換処理を行う画素の処理単位を決定するための処理単位情報が、ブロックとする所定数の画素の階調値に対応付けられて記憶手段により記憶されている。判定手段は、近隣する上記所定数の画素を上記ブロックとし、画像データを変換する着目ブロック内の各画素の階調値のみを処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定する。同ブロック処理条件は、ブロック内の階調値のとりうる範囲の中から所定の範囲を持っており、ある階調値のみ満たされるような範囲を持たない条件ではない。
着目ブロックについてブロック処理条件が満たされると判定されたとき、第一変換手段は、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。
一方、着目ブロックについてブロック処理条件が満たされないと判定されたとき、第二変換手段は、着目ブロック内の各画素の階調値と変換処理済みの画素の階調誤差とに基づいて階調誤差を求めながら同着目ブロック内でのドットの形成状況を判定し、判定結果に対応する処理を行う。
また、請求項２、請求項４にかかる発明の画像処理装置は、画像を複数の画素で多階調表現した画像データを、ドット形成の有無により表現した画像データに変換する。この変換の際、変換対象の画素について当該画素の階調値と拡散されてきた階調誤差（以下、拡散誤差とも記載）からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う。
上記変換処理を行う画素の処理単位を決定するための処理単位情報が、ブロックとする所定数の画素の階調値に対応付けられて記憶手段により記憶されている。判定手段は、近隣する上記所定数の画素を上記ブロックとし、画像データを変換する着目ブロック内の各画素の階調値のみを処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定する。同ブロック処理条件は、ブロック内の階調値のとりうる範囲の中から所定の範囲を持っており、ある階調値のみ満たされるような範囲を持たない条件ではない。
着目ブロックについてブロック処理条件が満たされると判定されたとき、第一変換手段は、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。
一方、着目ブロックについてブロック処理条件が満たされないと判定されたとき、第二変換手段は、着目ブロック内の各画素の階調値と拡散誤差とから同着目ブロック内でのドットの形成状況を判定し、判定結果に対応する処理を行う。
【０００６】
請求項１、請求項２にかかる発明では、着目ブロック内に形成するドット数が基準ドット数以下と判定したときには、第一変換手段のように、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。そして、着目ブロック内に形成するドット数が基準ドット数より大と判定したときに、着目ブロック内の画素を区分した画素区分別に上記変換処理を行うことが可能である。言い換えると、画像データの変換処理（以下、画像変換処理とも記載）はブロックよりも小さな画素単位で行われることになる。
すなわち、階調誤差を用いて画像データを変換する際に上記ブロック処理条件が成立していないときでも、着目ブロック内で基準ドット数以下しかドットが形成されない場合にはブロック単位で画像変換処理が行われる。なお、ブロック内に基準ドット数以下しかドットが形成されないとき、画像変換処理をブロック単位で行ったとしても着目ブロック内から当該着目ブロック外に拡散される階調誤差は同じであり、また、ドットが基準ドット数以下しか形成されないことには変わりがないため、高画質を維持することができる。従って、画像を複数の画素で多階調表現した画像データから階調誤差を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。請求項２にかかる発明では、画像を複数の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。
また、着目ブロック内の各画素の階調値のみを処理単位情報と対比しているので、着目ブロック内に拡散されてくる階調誤差の大きさによって画像変換処理の処理単位がブロック単位と画素区分単位とで切り替わることはない。従って、ブロック内の階調値が同じときに同処理単位が切り替わることによる意図しないドットの模様が現れるようなことはなく、変換後の画像データに基づく画像をさらに高画質にさせることも可能となる。
ここで、基準ドット数を０としてもよい。すると、第二変換手段は、着目ブロック内にドットを形成しないと判定したときには同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、着目ブロック内にドットを形成すると判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を行うことになる。この場合、着目ブロックについてブロック処理条件が成立していないときでも、着目ブロック内でドットが形成されない場合にはブロック単位で画像変換処理が行われるので、簡易な構成で画像を複数の画素で多階調表現した画像データから階調誤差を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。
なお、基準ドット数より１多い別の基準ドット数からみると、着目ブロック内に形成するドット数が別の基準ドット数より小と判定したときには基準ドット数以下と判定したことになり、同ドット数が別の基準ドット数以上と判定したときには基準ドット数より大と判定したことになるので、請求項１、請求項２にかかる発明に含まれる。
【０００７】
請求項３、請求項４にかかる発明では、着目ブロック内に形成するドット数が第二基準ドット数以上と判定したときには、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。一方、着目ブロック内に形成するドット数が第二基準ドット数より小と判定したときに、着目ブロック内の画素を区分した画素区分別に上記変換処理を行うことが可能である。
すなわち、階調誤差を用いて画像データを変換する際に上記ブロック処理条件が成立していないときでも、着目ブロック内で第二基準ドット数以上のドットが形成される場合にはブロック単位で画像変換処理が行われる。なお、ブロック内に基準ドット数以上ドットが形成されるとき、画像変換処理をブロック単位で行ったとしても着目ブロック内から当該着目ブロック外に拡散される階調誤差は同じであり、また、ドットが基準ドット数以上形成されることには変わりがないため、高画質を維持することができる。従って、階調誤差を用いた画像変換処理をさらに高速化させることが可能となる。請求項４にかかる発明では、誤差拡散法による画像変換処理をさらに高速化させることが可能となる。また、上述したのと同様の作用により、意図しないドットの模様が現れるようなことはなく、変換後の画像データに基づく画像をさらに高画質にさせることも可能となる。
なお、第二基準ドット数より１少ない別の第二基準ドット数からみると、着目ブロック内に形成するドット数が別の第二基準ドット数より大と判定したときには第二基準ドット数以上と判定したことになり、同ドット数が別の第二基準ドット数以下と判定したときには第二基準ドット数より小と判定したことになるので、請求項３、請求項４にかかる発明に含まれる。
【０００８】
請求項１２にかかる発明では、着目ブロック内に形成するドット数が基準ドット数以下、または、第二基準ドット数以上と判定したときには、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。なお、第二基準ドット数は、基準ドット数より大きくされている。一方、着目ブロック内に形成するドット数が基準ドット数より大、かつ、第二基準ドット数より小と判定したときに、着目ブロック内の画素を区分した画素区分別に上記変換処理を行う。
すなわち、階調誤差を用いて画像データを変換する際に上記ブロック処理条件が成立していないときでも、着目ブロック内で基準ドット数以下しかドットが形成されないか、または、第二基準ドット数以上のドットが形成される場合にはブロック単位で画像変換処理が行われる。ドットの密度が低い低ドット密度の領域とドット密度が高い高ドット密度の領域の両方で画像変換処理をブロック単位で行うことにより、より効果的に階調誤差を用いた画像変換処理を高速化させることが可能となる。また、上述したのと同様の作用により、意図しないドットの模様が現れるようなことはなく、変換後の画像データに基づく画像をさらに高画質にさせることも可能となる。
【０００９】
ここで、請求項１６にかかる発明のように、画素区分を１画素としてもよい。すなわち、第二変換手段の一例を提供することができ、画素区分別に変換処理を行う際に１画素単位という簡易な処理にて画像変換処理が行われるようになる。従って、簡易な構成にて、画像を複数の画素で多階調表現した画像データから階調誤差を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。
むろん、着目ブロック内を区分する画素は、上述したように１画素とする以外にも、複数の画素としてもよく、この場合であっても本発明に含まれる。また、画素区分は着目ブロック内の画素を均等に区分したものであってもよいし、着目ブロック内の画素を不均等に区分したものであってもよい。
なお、変換前の画像データは、複数の色データから構成されるカラー画像データ、単独の色データから構成されるモノクロ画像データ、等、様々なデータが考えられる。また、同画像データは様々な階調数とすることができ、例えば、２５６階調、２のｎ乗でない１００階調等としてもよい。さらに、階調誤差を用いてドットを形成する際、二値化によりドットを形成してもよいし、例えば大中小のドットを形成するために二値よりも大きい多値化によりドットを形成してもよい。
【００１０】
ところで、請求項１〜請求項４、請求項１２のいずれかに記載の画像処理装置において、上記判定手段は、上記ブロック処理条件が満たされない所定のブロック移行条件を上記着目ブロックが満たすか否かを同着目ブロック内の各画素の階調値と上記処理単位情報とを対比して判定し、上記第二変換手段は、上記着目ブロックが上記ブロック移行条件を満たすと判定されたときに上記着目ブロック内でのドットの形成状況を判定して判定結果に対応して上記着目ブロック単位でまたは上記画素区分別に上記変換処理を行い、上記着目ブロックが上記ブロック移行条件を満たさないと判定されたときには上記画素区分別に上記変換処理を行う構成としてもよい。
着目ブロックについてブロック移行条件が満たされると判定されたときにのみ、着目ブロック内でのドットの形成状況が判定されて判定結果に対応して着目ブロック単位でまたは画素区分別に上記変換処理が行われる。ブロック処理条件が満たされず、かつ、ブロック移行条件も満たされないときには、ドット形成状況の判定をするまでもなく画素区分単位の変換処理が行われるので、画像変換処理の速度をさらに向上させることが可能となる。
【００１１】
ブロック移行条件を設ける一例として、上記判定手段は、上記着目ブロックが上記ブロック処理条件を満たすか否かを判定し、同着目ブロックが同ブロック処理条件を満たさないと判定したときに同着目ブロックが上記ブロック移行条件を満たすか否かを判定する構成としてもよい。ブロック処理条件を満たす場合が比較的多いときに、画像変換処理の速度をさらに向上させることが可能となる。例えば、ブロック処理条件を満たす場合が満たさない場合よりも多い場合に、同条件を満たす場合が比較的多いと判定して先に同条件成立の可否を判定するようにしてもよい。
【００１２】
別の一例として、上記判定手段は、上記着目ブロックが上記ブロック処理条件またはブロック移行条件を満たすか否かを判定し、同着目ブロックが同ブロック処理条件またはブロック移行条件を満たすと判定したときに同着目ブロックが上記ブロック処理条件を満たすか否かを判定する構成としてもよい。両条件を満たす場合が満たさない場合と比べて比較的多いときに、画像変換処理の速度をさらに向上させることが可能となる。例えば、両条件を満たす場合が満たさない場合よりも多い場合に、両条件を満たす場合が比較的多いと判定して先に両条件成立の可否を判定するようにしてもよい。
【００１３】
上記ブロック処理条件とブロック移行条件を具体的に規定する一例として、請求項８にかかる発明のように、第一の閾値と、この第一の閾値よりも高ドット密度側の第二の閾値を設けてもよい。着目ブロック内の各画素の階調値の総和が第一の閾値から低ドット密度側であるときにブロック処理条件が満たされてブロック単位の変換処理が行われ、同総和が第一の閾値から第二の閾値までであるときにブロック移行条件が満たされてドット形成状況の判定結果に対応する処理単位で変換処理が行われ、同総和が第二の閾値から高ドット密度側であるときに画素区分別に変換処理が行われる。ブロック内で基準ドット数以下しかドットが形成されず、分解能の低下の目立たないドットの形成密度が小さい低ドット密度領域のみドットはブロック単位で形成されるので、簡易な構成ながら画質を低下させずに変換処理をさらに高速化させることができる。また、着目ブロック内への階調誤差が考慮されて着目ブロック内でのドットの形成状況が判定されるので、精度よくドットの形成状況を判定することができる。
なお、ブロック内の各画素の階調値の平均は同階調値の総和をブロック内の画素数で除したものであるので、同階調値の平均は同階調値の総和に含まれる。以下も、同様である。
【００１４】
このとき、上記第二の閾値は、上記ブロック内の画素数をＮ、画素区分数をＮ０とするとき、低ドット密度側から（Ｎ０−１）／（Ｎ×Ｎ０）以内の値とされていると、より確実に画像変換処理をさらに高速化させることができる。なお、本発明において、「（Ｎ０−１）／（Ｎ×Ｎ０）以内」には「（Ｎ０−１）／（Ｎ×Ｎ０）」も含まれるものとする。
【００１５】
また、請求項１０にかかる発明のように、第三の閾値と、この第三の閾値よりも高ドット密度側の第四の閾値を設けてもよい。着目ブロック内の各画素の階調値の総和が第四の閾値から高ドット密度側であるときにブロック処理条件が満たされてブロック単位の変換処理が行われ、同総和が第四の閾値から第三の閾値までであるときにブロック移行条件が満たされてドット形成状況の判定結果に対応する処理単位で変換処理が行われ、同総和が第三の閾値から低ドット密度側であるときに画素区分別に変換処理が行われる。ブロック内で基準ドット数以上ドットが形成され、分解能の低下の目立たないドットの形成密度が大きい高ドット密度領域のみドットはブロック単位で形成されるので、簡易な構成ながら画質を低下させずに変換処理をさらに高速化させることができる。また、着目ブロック内への階調誤差が考慮されて着目ブロック内でのドットの形成状況が判定されるので、精度よくドットの形成状況を判定することができる。
【００１６】
このとき、上記第三の閾値は、上記ブロック内の画素数をＮ、画素区分数をＮ０とするとき、高ドット密度側から（Ｎ０−１）／（Ｎ×Ｎ０）以内の値とされていると、より確実に画像変換処理をさらに高速化させることができる。なお、本発明において、「（Ｎ０−１）／（Ｎ×Ｎ０）以内」には「（Ｎ０−１）／（Ｎ×Ｎ０）」も含まれるものとする。
【００１７】
さらに、請求項１３にかかる発明のように、順に、より高ドット密度側の値とされた第一、第二、第三、第四の閾値を設けてもよい。着目ブロック内への階調誤差が考慮されるので、着目ブロック内でのドットの形成状況を精度よく判定することができるとともに、閾値を用いるという簡易な構成ながら、画質を低下させずに変換処理をより効果的に高速化させることができる。
【００１８】
さらに、請求項１４にかかる発明のように、第一の閾値と、この第一の閾値よりも高ドット密度側の第四の閾値とを設け、ブロック内の各画素の階調値の総和がとりうる範囲のうち同第四の閾値から高ドット密度側の範囲が同第一の閾値から低ドット密度領域側の範囲より広くされているようにしてもよい。印刷装置等の画像出力装置の高解像度化が進むなか、画像出力装置が形成する１ドットの面積は同画像出力装置に設定された１画素の面積より大きくなっている。すると、低ドット密度領域でドットを形成する割合と高ドット密度領域でドットを形成しない割合とが同じであるとすると、高ドット密度領域で形成されたドットが占める領域の面積は、低ドット密度領域でドットが形成されていない領域の面積よりも小さくなる。その結果、高ドット密度領域のほうが低ドット密度領域よりも分解能の低下が目立たないので、第四の閾値から高ドット密度側の範囲を第一の閾値から低ドット密度領域側の範囲より広くしても、画質を低下させずに画像変換処理をさらに高速化させることができる。
以上のことから、本構成は、形成される１ドットの面積が設定された１画素の面積より大きい画像出力装置の出力画像を表現する画像データを生成する画像処理装置に好適である。
なお、第二および第三の閾値についても、上記ブロック内の各画素の階調値の総和がとりうる範囲のうち同第三の閾値から高ドット密度側の範囲が同第二の閾値から低ドット密度領域側の範囲より広くされている構成としてもよく、同様の作用、効果となる。
【００１９】
むろん、ブロック処理条件やブロック移行条件を判定するために閾値を設けなくてもよく、上記処理単位情報は、上記ブロック内の画素の階調値に対応付けて上記処理単位を決定するための個別処理単位情報を格納した情報テーブルであり、上記判定手段は、上記着目ブロック内の画素の階調値に対応する上記個別処理単位情報を上記情報テーブルから読み出し、読み出した個別処理単位情報から上記着目ブロックが上記ブロック処理条件およびブロック移行条件を満たすか否かを判定する構成としてもよい。簡易な構成ながら画質を低下させずに変換処理をさらに高速化させることができる。
【００２０】
ところで、画像を複数の画素で多階調表現した画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換するとともに、同階調数変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する階調数変換処理を行う画像処理装置の場合、解像度変換前の画像データを利用してブロック処理条件を判定してもよい。そこで、請求項１７にかかる発明は、上記判定手段と第一変換手段と第二変換手段とを具備する構成としてある。
判定手段は、解像度変換前の画像データを構成する画素の中から一または二以上の近隣した画素を処理区分とするとともに、解像度変換後の画像データを構成する画素の中から同処理区分に対応する画素数の近隣した画素をブロックとする。そして、画像データを階調数変換する着目ブロックに対応する処理区分内の画素の階調値と処理単位情報とを対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定する。同処理単位情報は、処理区分内の画素の階調値に対応付けられて階調数変換処理を行う画素の処理単位を決定するための情報である。
着目ブロックについてブロック処理条件が満たされると判定されたとき、第一変換手段は、着目ブロック内の全画素をまとめて上記変換対象として上記階調数変換処理を同着目ブロック単位で行う。一方、着目ブロックについてブロック処理条件が満たされないと判定されたとき、第二変換手段は、着目ブロック内の画素を区分した画素区分別に上記階調数変換処理を行うことが可能である。
【００２１】
すなわち、ブロック処理条件が満たされる領域を高画質を維持可能な領域とすれば、高画質を維持可能な領域のみドットはブロック単位で形成されるので、画像データの変換処理を高速化させることができる。また、解像度変換前の画像データから着目ブロックに対応する処理区分内の画素の階調値を参照することにより、着目ブロック内の画素の階調値を参照する必要がなくなるので、画像を複数の画素で多階調表現した画像データから階調誤差を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。
なお、請求項１〜請求項１６に記載された構成を請求項１７に対応させることも可能である。
【００２２】
上記判定手段は、上記解像度変換が上記画像データを高解像度化する変換であるとき、上記処理区分を１画素とするとともに上記解像度変換後の画像データを構成する画素の中から同処理区分に対応して同解像度変換の変換倍率に一致する画素数の近隣した画素を上記ブロックとする構成としてもよい。解像度変換前の画像データから着目ブロックに対応する１画素のみの階調値を参照することにより、着目ブロック内の画素の階調値を参照する必要がなくなるので、階調誤差を用いた画像変換処理をより効果的に高速化させることが可能となる。
【００２３】
また、上記判定手段は、上記解像度変換が上記画像データを低解像度化する変換であるか否かを判断し、同解像度変換が低解像度化する変換であると判断したときには上記着目ブロックは上記ブロック処理条件を満たさないと判定する構成としてもよい。解像度変換が低解像度化する変換であるとき、低解像度化された画像データの階調数変換処理は時間が短くて済むので、高速化よりも画質維持を優先させることが可能である。本構成によると、着目ブロック内の画素を区分した画素区分別に階調数変換処理が行われるので、階調誤差を用いた画像変換処理を高速にて行う際に効率よく処理を行うことが可能となる。
【００２４】
なお、上述した第一変換手段と第二変換手段は、様々な構成により階調誤差を周辺の未変換画素に拡散させることができる。例えば、周辺の未変換画素に対して階調誤差を略均等に拡散させると、簡易な構成にて誤差拡散を行うことができる。むろん、未変換画素に拡散する割合に異なる重みを持たせてもよい。第一変換手段が画素区分別に上記変換処理を行う際には、階調誤差を着目ブロック内の未変換画素に拡散させてもよいし、着目ブロック外の未変換画素に拡散させてもよい。
上述したブロックは、様々な構成が可能であり、例えば、２×２画素、３×３画素、２×４画素、１×５画素、等とすることができる。
【００２５】
また、上記第二変換手段は、上記着目ブロック内の各画素の階調値および上記変換処理済みの画素の階調誤差から同着目ブロック内でのドットの形成状況を判定したとき、同着目ブロック内に形成するドット数が基準ドット数より大と判定したときに同着目ブロック全体では画素をまとめずに上記変換処理を実行可能な手段としても、同様の作用、効果となる。
さらに、上記第二変換手段は、上記着目ブロック内の各画素の階調値および上記変換処理済みの画素の階調誤差から同着目ブロック内でのドットの形成状況を判定したとき、同着目ブロック内に形成するドット数が第二基準ドット数より小と判定したときに同着目ブロック全体では画素をまとめずに上記変換処理を実行可能な手段としても、同様の作用、効果となる。
さらに、上記第二変換処理は、上記着目ブロック内の各画素の階調値および上記変換処理済みの画素の階調誤差から同着目ブロック内でのドットの形成状況を判定したとき、同着目ブロック内に形成するドット数が基準ドット数より大かつ同第二基準ドット数より小と判定したときに同着目ブロック内の画素を区分した画素区分別に上記変換処理を行う手段としても、同様の作用、効果となる。
【００２６】
ところで、上述した画像処理装置は、単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としては各種の態様を含むものであって、適宜、変更可能である。
また、上述した画像処理を行う際の手法は、所定の手順に従って処理を進めていくうえで、その根底にはその手順に発明が存在する。従って、請求項２０〜請求項２２にかかる発明のように、本発明は画像処理装置の制御方法としても適用可能であり、同様の作用、効果となる。
さらに、請求項２３〜請求項２５にかかる発明のように、本発明は画像データに基づく画像の印刷制御を行う印刷制御手段を備える印刷制御装置としても適用可能であり、さらに、画像を印刷する印刷手段を備える印刷装置としても適用可能であり、同様の作用、効果となる。
【００２７】
本発明を実施しようとする際に、画像処理装置にて所定のプログラムを実行させる場合もあるので、請求項２６〜請求項２８にかかる発明のように、本発明は画像処理装置の制御プログラムとしても適用可能であり、さらに、その制御プログラムを記録したコンピュータ読み取り可能な記録媒体としても適用可能であり、同様の作用、効果となる。ここで、上記記録媒体は、磁気記録媒体や光磁気記録媒体の他、今後開発されるいかなる記録媒体であってもよい。二次複製品等の複製段階も問わない。一部がハードウェアで実現される場合や、一部を記録媒体上に記録しておいて必要に応じて適宜読み込む場合も本発明の思想に含まれる。
なお、本発明を構成する第二変換機能が着目ブロック内の画素の画像データをまとめて変換する際には、上記第一変換機能を利用して変換してもよいし、上記第一変換機能を実現させるプログラムとは別のプログラムにより変換してもよい。また、着目ブロック内の画素の画像データをまとめて変換する機能を実現させるプログラムをサブルーチンとしておき、第一変換機能、第二変換機能の双方が同サブルーチンをコールするようにしてもよい。
【００２８】
むろん、請求項３〜請求項１１，請求項１３〜請求項１６，請求項１８，請求項１９に記載された構成を上記方法や印刷制御装置や印刷装置やプログラムやプログラムを記録した媒体に対応させることも可能である。
【００２９】
【発明の実施の形態】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）画像処理装置の構成の概略：
（２）画像処理装置の各種手段の構成：
（３）画像処理装置が行う処理の概略：
（４）画像処理装置が行う処理の詳細：
（５）第二の実施形態：
（６）まとめ：
【００３０】
（１）画像処理装置の構成の概略：
図１は、本発明の第一の実施形態にかかる画像処理装置を含む印刷装置（広義の印刷装置）１００の概略構成を示している。本印刷装置１００は、本発明にいう画像処理装置および印刷制御装置となるパーソナルコンピュータ（ＰＣ）１０と、画像出力装置（狭義の印刷装置）であるカラー印刷可能なインクジェットプリンタ２０とから構成されている。
ＰＣ１０では、演算処理の中枢をなすＣＰＵ１１がシステムバス１０ａを介してＰＣ全体の制御を行う。同バス１０ａには、ＲＯＭ１２、ＲＡＭ１３、各種ドライブ１４，１５、各種インターフェイス（Ｉ／Ｆ）１６〜１９等が接続されている。本発明にいう記憶手段は、ハードディスクドライブ１４ａとハードディスク（ＨＤ）１４とから構成される。本発明に用いられるコンピュータは、デスクトップ型ＰＣ、ノート型ＰＣ、モバイル対応ＰＣ、等、コンピュータとして一般的な構成を有していればよく、ＰＣに限定されるものではない。
【００３１】
ＨＤ１４にはオペレーティングシステム（ＯＳ）や画像情報等を作成可能なアプリケーションプログラム（ＡＰＬ）等が格納されており、これらのソフトウェアは、実行時にＣＰＵ１１によって適宜ＲＡＭ１３に転送される。また、ＨＤ１４は、複数の閾値からなる処理単位情報１４ｂを画像処理プログラムとともに記憶している。
入力Ｉ／Ｆ１６には、キーボード１６ａやマウス１６ｂが操作用入力機器として接続されている。また、ＣＲＴＩ／Ｆ１７には、表示用のディスプレイ１７ａが接続されている。さらに、プリンタＩ／Ｆ１９には、例えばシリアルＩ／Ｆ接続によりプリンタ２０が接続されている。
【００３２】
なお、ＨＤ１４は画像処理プログラムを記録した媒体となるが、本プログラムを格納可能な記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク、不揮発性メモリ等であってもよい。さらに、バス１０ａに接続されたモデム等の通信Ｉ／Ｆ１８をインターネット網に接続し、所定のサーバから本プログラムをダウンロードして実行することも可能である。
【００３３】
プリンタ２０は、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）、の計４色（複数の要素色）の色インクを使用するものとする。むろん、６色、７色、等、４色以外のインクを使用するプリンタを採用してもよい。また、インク通路内に泡を発生させてインクを吐出するバブル方式のプリンタや、複数色のカラートナーを使用するレーザープリンタ等、種々の印刷装置を採用可能である。
図２は、変換後の画像データに基づく画像を印刷する印刷手段であるプリンタ２０のブロック構成をＰＣ１０とともに示している。プリンタ２０では、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＡＳＩＣ２４、コントロールＩＣ２５、通信Ｉ／Ｏ２６、Ｉ／Ｆ２７がバス２０ａを介して接続されている。
【００３４】
通信Ｉ／Ｏ２６はＰＣのプリンタＩ／Ｆ１９と接続されており、プリンタ２０は通信Ｉ／Ｏ２６を介してＰＣ１０から送信されるＣＹＭＫに変換された画像のデータやページ記述言語等からなる印刷ジョブを受信する。また、ＰＣ１０から各種要求を受信したとき、通信Ｉ／Ｏ２６は対応する情報をＰＣ１０に出力する。印刷時の解像度として720 ×360dpi、1440×720dpi、2880×1440dpi 等を選択可能となっており、ＰＣ１０から通信Ｉ／Ｏ２６を介して解像度の選択情報を入手してＲＡＭ２３に記憶しておき、解像度に応じたドット単位で印刷を行うことが可能となっている。
【００３５】
カートリッジホルダ２８にはＣＹＭＫのインクカートリッジ２８ａ〜ｄが装着されており、インクカートリッジ２８ａ〜ｄ内の各インクが色別に図示しない印刷ヘッドに供給されるようになっている。ＡＳＩＣ２４は、ＣＰＵ２１と所定の信号を送受信しつつヘッド駆動部２９に対してＣＹＭＫデータに基づく印加電圧データを出力する。同ヘッド駆動部２９は、同印加電圧データに基づいて印刷ヘッドに内蔵されたピエゾ素子への印加電圧パターンを生成し、印刷ヘッドに４色のインクを解像度に応じたドット単位で吐出させる。印刷ヘッドのインク吐出面には、４色のインクを吐出する４組のノズル列が印刷ヘッドの主走査方向に並ぶように形成され、ノズル列のそれぞれは複数のノズルが副走査方向に一定の間隔で直線状に配置されている。
Ｉ／Ｆ２７に接続されたキャリッジ機構２７ａや紙送り機構２７ｂは、印刷ヘッドを主走査させたり、適宜改ページ動作を行いながらメディアを順次送り出して副走査を行ったりする。そして、ＣＰＵ２１が、ＲＡＭ２３をワークエリアとして利用しながらＲＯＭ２２に書き込まれたプログラムに従って各部を制御する。
【００３６】
ＰＣ１０では、以上のハードウェアを基礎としてバイオスが実行され、その上層にてＯＳとＡＰＬとが実行される。ＯＳには、プリンタＩ／Ｆ１９を制御するプリンタドライバ等の各種のドライバ類が組み込まれ、ＯＳの一部となってハードウェアの制御を実行する。プリンタドライバは、プリンタＩ／Ｆ１９を介してプリンタ２０と双方向の通信を行うことが可能であり、ＧＤＩ（Graphics Device Interface ）等が組み込まれたＯＳを介してＡＰＬから画像データを受け取って印刷ジョブを作成し、プリンタ２０に送出する。本画像処理プログラムは同プリンタドライバから構成されるが、ＡＰＬにより構成してもよい。
【００３７】
（２）画像処理装置の各種手段の構成：
図３は、上記ハードウェアと上記プリンタドライバとが協働して構築する画像処理装置の構成を模式的に示している。プリンタドライバは、各種モジュールを有しており、機能制御モジュールの制御に基づいて所定の機能を実現しつつ連携動作して画像データを変換することが可能である。そして、プリンタドライバの各モジュールに対応して、画像処理装置の各部が構成される。
画像入手部は、ディスプレイに表示する解像度とプリンタに出力する解像度とが設定された画像データを入力する。同画像データは、画像をドットマトリクス状の多数の画素で多階調表現したデータであり、様々な種類がある。図ではｓＲＧＢ色空間で定義されるＲＧＢから構成された画像データを示しているが、ＹＵＶ表色系における輝度（Ｙ成分）、Ｂの色差（Ｕ成分）、Ｒの色差（Ｖ成分）から構成された画像データ等でもよい。画像データの各成分も、例えば、２５６階調、１０２４階調等、様々な階調数とすることができる。ディスプレイに表示する解像度は、ディスプレイの性能に合わせたデフォルトの設定（例えば360×360dpi等）とすることができる。画像データに対してプリンタに出力する解像度を設定するには、例えば、図示しない所定の印刷インターフェイス画面を表示し、所定の解像度選択欄にて解像度の情報の操作入力を受け付け、入力された解像度の情報を同画像データに付加することにより設定することができる。また、ＡＰＬが画像データに対して解像度を設定する機能を有していれば、そのＡＰＬから解像度が設定された画像データを入手することができる。
解像度変換処理部は、プリンタ２０の解像度に合わせて上記画像データに対して設定された解像度を変換する。その際、ｓＲＧＢやＹＵＶ表色系等の定義に従って、画像データを広域ＲＧＢ色空間内のＲＧＢ各２５６階調（０〜２５５の整数値）の階調データからなるＲＧＢデータに変換する。色変換処理部は、ＲＧＢデータをＣＭＹＫ各２５６階調（０〜２５５の整数値）の階調データからなるＣＭＹＫデータに色変換する。同ＣＭＹＫデータは、色インクの使用量に対応する（略比例する）階調値とされているので、階調値が小さいほどドットの形成密度が小さくなって明度が高くなり、階調値が大きいほどドットの形成密度が大きくなって明度が低くなる。階調数変換処理部は、２５６階調のＣＭＹＫデータを、ＣＭＹＫ各２階調でドット形成の有無により画像出力装置の出力画像を表現する画像データ（以下、２値化データとも記載）に階調数変換する。インターレース処理部（印刷制御手段）は、プリンタ２０の印刷ヘッドの副走査に合わせて２値化データを並び替える処理を行い、並び替え後の２値化データをプリンタ２０に送出することにより、階調数変換後の画像データに対応する画像を印刷させる制御を行う。すると、プリンタ２０は、２値化データを入手し、同２値化データに基づいて印刷用紙（メディア）上に色インクのドットを形成し、ＲＧＢデータに対応するカラー画像を印刷する。
【００３８】
本画像処理装置Ａは、階調数変換部を構成する各種手段Ａ１〜Ａ４を備えている。
判定手段Ａ１は、近隣する所定の２×２画素をまとめてブロックとし、画像データを変換する着目ブロックＢ１内の各画素の階調値に基づいて所定のブロック処理条件を満たすか否かを判定する。ここで、記憶手段Ａ４は上記処理単位情報１４ｂを記憶しており、判定手段Ａ１は、着目ブロックＢ１内の各画素の階調値のみと処理単位情報１４ｂとを対比してブロック処理条件の成立の可否を判定する。同処理単位情報１４ｂは、ブロックとする所定の２×２画素の階調値に対応付けられた情報であるとともに、誤差拡散法による画像変換処理を行う画素の処理単位を決定可能とする情報である。
着目ブロックＢ１が上記ブロック処理条件を満たすと判定されると、第一変換手段Ａ２により着目ブロックＢ１内の画素の画像データが変換され、着目ブロックＢ１が上記ブロック処理条件を満たさないと判定されると、第二変換手段Ａ３により着目ブロックＢ１内の画素の画像データが変換されるようになっている。  第一変換手段Ａ２は、着目ブロックＢ１内の各画素の階調値と拡散されてきた階調誤差である拡散誤差とに基づいて、着目ブロックＢ１全体の階調誤差を着目ブロックＢ１外の他のブロック内の未変換画素に拡散させながら着目ブロックＢ１内の画素の画像データをまとめて変換する。すなわち、ブロック単位の画像変換処理を行う。
【００３９】
一方、第二変換手段Ａ３は、着目ブロックＢ１内の各画素の階調値と拡散誤差とから着目ブロックＢ１内でのドットの形成状況を判定する。着目ブロックＢ１内に形成するドット数が基準ドット数以下、または、第二基準ドット数以上と判定したときには、着目ブロックＢ１内の全画素をまとめて画像データの変換対象として画像変換処理を着目ブロックＢ１単位で行う。また、着目ブロックＢ１内に形成するドット数が基準ドット数より大、かつ、第二基準ドット数より小と判定したときに着目ブロックＢ１内の画素を区分した画素区分別に画像変換処理を実行することが可能となっている。
本実施形態では、基準ドット数を０、第二基準ドット数を４とし、画素区分を１画素としている。すなわち、着目ブロックＢ１内にドットを形成しない場合や着目ブロックＢ１内の画素全てにドットを形成する場合、ブロック単位の変換処理を行い、これらの場合以外に、ブロック全体では画素をまとめずにブロックより小さい１画素単位の画像変換処理を行う。１画素単位の変換処理では、着目ブロックＢ１内の画素別に、同画素の階調値と拡散誤差とに基づいて、同画素の階調誤差を他の未変換画素に拡散させながら着目ブロックＢ１内の画素の画像データを変換する処理を行う。なお、図では着目ブロックＢ１内の着目画素Ｕ１を太線で囲っている。
さらに、高画質を維持しながら画像変換処理を高速化させるため、判定手段Ａ１は、ブロック処理条件が満たされない所定のブロック移行条件を着目ブロックＢ１が満たすか否かを判定する。その際も、着目ブロックＢ１内の各画素の階調値と処理単位情報１４ｂとを対比して判定する。
第二変換手段Ａ３は、着目ブロックＢ１がブロック移行条件を満たすと判定されたときに、着目ブロックＢ１内でのドットの形成状況を判定して判定結果に対応して着目ブロックＢ１単位でまたは画素区分別に画像変換処理を行う。また、着目ブロックＢ１がブロック移行条件を満たさないと判定されたときには、画素区分別に画像変換処理を行う。
【００４０】
本実施形態では、処理単位を決定するための処理単位情報１４ｂを閾値０，Ｄ１〜Ｄ５から構成するとともに、これらの閾値を着目ブロックＢ１内の各画素の階調値の総和Ｓ（ブロック内の階調値）に対応付けている。これらの閾値は、本画像処理プログラムに含まれており、同プログラムとともにＨＤ１４に記憶されている。
図４は、上記閾値と総和Ｓとの対応関係を示している。図に示す閾値Ｄ１，Ｄ２，Ｄ３，Ｄ４は本発明にいう第一、第二、第三、第四の閾値であり、０＜Ｄ１＜Ｄ２＜Ｄ３＜Ｄ４＜Ｄ５（＝４×２５５）の関係がある。ここで、Ｓ＝０の側がドットの形成密度が小さい低ドット密度側（高明度側）であり、Ｓ＝Ｄ５の側がドットの形成密度が大きい高ドット密度側（低明度側）である。また、ブロック内の階調値のとりうる範囲の中間から閾値Ｄ１，Ｄ２を低ドット密度側にするとともに閾値Ｄ３，Ｄ４を高ドット密度側としており、総和Ｓの中間値Ｄ５／２を基準としてＤ２＜Ｄ５／２＜Ｄ３としてある。
総和Ｓが第一の閾値Ｄ１から低ドット密度側であるとき（図ではＳ≦Ｄ１）、ドットの形成密度が小さい所定の低ドット密度領域であり、所定のブロック処理条件成立として総和Ｓに２×２画素のブロックの処理単位を対応付けている。低ドット密度領域は、画像中で明度が高い所定の高明度領域でもある。また、総和Ｓが第四の閾値Ｄ４から高ドット密度側であるとき（図ではＳ＞Ｄ４）、ドットの形成密度が大きい所定の高ドット密度領域であり、所定のブロック処理条件成立として総和Ｓに２×２画素のブロックの処理単位を対応付けている。高ドット密度領域は、画像中で明度が低い所定の低明度領域でもある。
このように、ブロック処理条件は、総和Ｓのとりうる範囲の中から所定の範囲を持っており、スポット的な値のみ成立する条件とはされていない。なお、本実施形態ではＳ＝０，Ｓ＝Ｄ５であるとき例外的な処理を行うため、Ｓ＝０，Ｓ＝Ｄ５であるときをブロック処理条件に含まなくてもよいし、含めてもよい。
総和Ｓが第二の閾値Ｄ２から高ドット密度側かつ第三の閾値Ｄ２から低ドット密度側であるとき（図ではＤ２＜Ｓ≦Ｄ３）、ドットの形成密度が中間的な所定の中間調領域であり、所定の分割処理条件成立として総和Ｓに１画素（画素区分）の処理単位を対応付けている。同中間調領域は、画像の明度の中間的な所定の中間調領域でもある。分割処理条件も、総和Ｓのとりうる範囲の中から所定の範囲を持っている。
【００４１】
総和Ｓが閾値Ｄ１から高ドット密度側かつ閾値Ｄ２から低ドット密度側であるとき（図ではＤ１＜Ｓ≦Ｄ２）、上記低ドット密度領域と中間調領域との間の中間的な所定の低ドット密度側移行領域であり、所定のブロック移行条件成立として総和Ｓに２×２画素のブロックまたは１画素の処理区分を対応付けている。総和Ｓが閾値Ｄ３から高ドット密度側かつ閾値Ｄ４から低ドット密度側であるとき（図ではＤ３＜Ｓ≦Ｄ４）、上記高ドット密度領域と中間調領域との間の中間的な所定の高ドット密度側移行領域であり、所定のブロック移行条件成立として総和Ｓに２×２画素のブロックまたは１画素の処理区分を対応付けている。ブロック移行条件も、総和Ｓのとりうる範囲の中から所定の範囲を持っている。
そして、第二変換手段Ａ３は、着目ブロックがブロック移行条件を満たすと判定されたときに着目ブロック内でのドットの形成状況を判定して判定結果に対応して着目ブロック単位でまたは画素区分別に画像変換処理を行う。
【００４２】
なお、閾値Ｄ１〜Ｄ４は、画像データの種類等に応じて適宜決定される値である。本実施形態では、以下の関係を満たすように閾値を決めている。
閾値Ｄ１，Ｄ４については、Ｄ５−Ｄ４＞Ｄ１−０として、上記総和Ｓがとりうる範囲のうち閾値Ｄ４から高ドット密度側の範囲が閾値Ｄ１から低ドット密度領域側の範囲より広くしている。
図５の上段に示すように、プリンタ２０が形成する１ドットの面積は、同プリンタ２０に設定された１画素の面積より大きくされている。図の下段に示すように、低ドット密度領域でドットを形成する割合と高ドット密度領域でドットを形成しない割合とが同じ（図の例では、１／８）であるとすると、高ドット密度領域でドットが形成されていない領域Ｒ２の面積は、低ドット密度領域で形成されたドットが占める領域Ｒ１の面積よりも小さくなる。その結果、低ドット密度領域よりも高ドット密度領域のほうがドットの分解能の低下が目立たない。従って、Ｄ５−Ｄ４＞Ｄ１−０となるように閾値Ｄ４を設定しても、画質を低下させずに誤差拡散法による画像変換処理をさらに高速化させることができる。
例えば、１より小さい正の係数Ｋを用いて、Ｋ（Ｄ５−Ｄ４）＝Ｄ１−０となるように閾値Ｄ１，Ｄ４を設定すればよい。Ｋは、０．９，０．８等、様々な値とすることができる。
むろん、１ドットの面積が１画素の面積とほぼ同じであれば、Ｄ５−Ｄ４＝Ｄ１−０となるように閾値Ｄ４を設定してもよい。
【００４３】
また、閾値Ｄ２については、ブロック内の画素数をＮ、画素区分数をＮ０とするとき、低ドット密度側から（Ｎ０−１）／（Ｎ×Ｎ０）以内の値としている。
ドット密度（Duty）が１／Ｎであるとき、ブロック内で１ドット形成されることになる。ブロック内にドットが形成されないときにブロック単位の変換処理を行う場合、ブロック内にドットが形成されないのは低ドット密度側から１／Ｎ以内となるので、閾値Ｄ２は少なくとも低ドット密度側から１／Ｎ以内とするのが好ましい。
ここで、ドット密度をDuty（０〜１の相対値）で表し、ブロックがｘ個あるとし、そのうち割合ｔでブロック内にドットが形成されないとする。試験を行ったところ、ブロック単位の画像変換処理の時間と画素区分単位の画像変換処理の時間とはほぼ同じ時間（Ｔとする）であり、上記総和Ｓを算出して閾値と対比して処理を分岐させる時間もほぼ時間Ｔと同じであった。全ブロックの画像変換処理の時間はｔ・Ｔ・ｘ＋（１−ｔ）・（Ｔ・ｘ＋Ｔ・Ｎ０・ｘ）となるので、これが、ブロック移行条件を判定せずに全て画素区分別に画像変換処理を行うときの時間Ｔ・Ｎ０・ｘ以下となれば、ブロック移行条件を判定して処理単位を切り替えることもより高速化のメリットが生じることになる。ｔ・Ｔ・ｘ＋（１−ｔ）・（Ｔ・ｘ＋Ｔ・Ｎ０・ｘ）≦Ｔ・Ｎ０・ｘを解くとｔ≧１／Ｎ０となるので、ｔ≧１／Ｎ０となるDutyを求めればよい。すなわち、
Duty≦（１／Ｎ）・｛１−（１／Ｎ０）｝
であれば、画像変換処理の速度が向上する。上記式を解くと、
Duty≦（Ｎ０−１）／（Ｎ×Ｎ０）    …（１）
となる。画素区分が１画素であれば、
Duty≦（Ｎ−１）／Ｎ2    …（２）
となる。本実施形態のように、ブロックを４画素とすると、Duty≦0.1875となる。
【００４４】
閾値Ｄ３についても同様のことが言え、ブロック内の画素数をＮ、画素区分数をＮ０とするとき、高ドット密度側から（Ｎ０−１）／（Ｎ×Ｎ０）以内の値としている。すなわち、
Duty≧１−｛（Ｎ０−１）／（Ｎ×Ｎ０）｝    …（３）
であれば、画像変換処理の速度が向上する。画素区分が１画素であれば、
Duty≧１−｛（Ｎ−１）／Ｎ2｝    …（４）
となる。本実施形態のように、ブロックを４画素とすると、Duty≧0.8125となる。
ここで、１ドットの面積が１画素の面積より大きいことを考慮し、Ｄ５−Ｄ３＞Ｄ２−０として、総和Ｓがとりうる範囲のうち閾値Ｄ３から高ドット密度側の範囲が閾値Ｄ２から低ドット密度領域側の範囲より広くしている。例えば、Ｋ（Ｄ５−Ｄ３）＝Ｄ２−０（ただし、Ｋは１より小さい正の係数）となるようにして、閾値Ｄ３についてはDuty＝１−｛（Ｎ０−１）／（Ｎ×Ｎ０）｝となるように、
Ｄ２＝２５５×［１−｛（Ｎ０−１）／（Ｎ×Ｎ０）｝］
とし、閾値Ｄ２については、
Ｄ３＝２５５×Ｋ×｛（Ｎ０−１）／（Ｎ×Ｎ０）｝
とすることができる。
以上のようにして閾値Ｄ２，Ｄ３を設定すると、より確実に画像変換処理をさらに高速化させることができる。
むろん、１ドットの面積が１画素の面積とほぼ同じであれば、Ｄ５−Ｄ３＝Ｄ２−０となるように閾値Ｄ３を設定してもよい。
【００４５】
図６は、本画像処理装置が行う処理を示すフローチャートである。本フローは、ＰＣ１０のＣＰＵ１１によって行われるものである。
ＡＰＬに備えられたＡＰＬ用印刷機能にてディスプレイ１７ａに表示される印刷実行メニューが選択されると、画像処理プログラムが起動し、画像入力部にてＲＧＢに基づく画像データを入手する（ステップＳ１０５。以下、「ステップ」の記載を省略）。次に、解像度変換処理部にて、入手した画像データの解像度をプリンタ２０が印刷するための解像度に解像度変換する、解像度変換処理を行う（Ｓ１１０）。本実施形態では、解像度変換後の画像データをＲＧＢ各２５６階調（０〜２５５の整数値）からなるＲＧＢデータとするものとして説明する。ここで、階調値が大きくなるほどＲＧＢ各成分が大きくなり、ＲＧＢ全ての階調値が０であるときはほぼブラックに相当し、ＲＧＢ全ての階調値が２５５であるときはインクのドットが形成されないことになる。なお、入手した画像データの解像度が高い場合には、例えば一定の割合でデータを間引くことにより解像度を変換し、入手した画像データの解像度が低い場合には、例えば線形補間により画像データを補間して解像度を変換して、解像度変換後のＲＧＢデータとする。
【００４６】
さらに、色変換処理部にて、ＬＵＴ（ルックアップテーブル）と呼ばれる色変換テーブルを参照して、ＲＧＢデータをＣＭＹＫの色インクのそれぞれに対応したＣＹＭＫデータに変換する、色変換処理を行う（Ｓ１１５）。本実施形態のＬＵＴは、２５６階調のＲＧＢそれぞれの階調値をＣＭＹＫそれぞれについて２５６階調とされた階調値に対応させたテーブルであり、補間演算を前提として、例えば、１７の３乗の格子点に対応した大量のデータを備えている。変換されたＣＭＹＫデータも、画像をドットマトリクス状の画素で多階調表現した画像データであり、本実施形態ではＣＭＹＫ各２５６階調（０〜２５５の整数値）からなるデータであるとして説明する。同ＣＭＹＫデータは、階調値が大きくなるほどＣＭＹＫ各成分が大きくなり、印刷媒体上に形成されるドット密度は大きくなる。
【００４７】
そして、階調数変換処理部にて、２５６階調のＣＭＹＫからなる画像データをドット形成の有無により表現した画像データに変換する、階調数変換処理を行う（Ｓ１２０）。その際、いわゆる誤差拡散法により、各画素の階調誤差を他の未変換画素に拡散させながら画像データを変換する。
階調数変換前のＣＭＹＫデータは２５６階調であるが、プリンタ２０は色インク別にドットを形成するか否かにより印刷を行うため、本実施形態ではプリンタ２０に送出するデータを「ドットを形成する」意味の階調値「２５５」または「ドットを形成しない」意味の階調値「０」のいずれかに変換して２値化データを生成するようにしている。実際には２値化データを１ビットで表現しているため、階調値「２５５」をビットオンに対応させ、階調値「０」をビットオフに対応させた２値化データを生成する。以下、便宜上「２５５」と「０」の２値に変換するものとして説明する。
詳しくは後述するが、所定の処理条件に応じてブロック単位で階調数変換処理を行うようにしており、高画質が維持されながら画像変換処理は高速化されるようになっている。
【００４８】
その後、インターレース処理部にて、プリンタ２０のドットの形成順序を考慮しながら２値化データを並べ替えるインターレース処理を行う（Ｓ１２５）。そして、解像度変換処理部にて取得された解像度の情報とともに、最終的に得られた画像データをプリンタ２０に対して送出し（Ｓ１３０）、本フローを終了する。すると、プリンタ２０は、解像度の情報を入手するとともに同画像データを入手し、印刷ヘッドを駆動して解像度に対応した各色インクのドットを印刷媒体上に形成する。その結果、ＡＰＬからの画像データに対応したカラー画像が印刷用紙に印刷されることになる。
【００４９】
（３）画像処理装置が行う処理の概略：
図７は、本画像処理装置が行う階調数変換処理をフローチャートにより示している。なお、変換前の画像データはＣＭＹＫ別とされた階調値から構成されているので、図のフローはＣＭＹＫ別に行われることになるが、フローをわかりやすくするため図示を省略している。また、変換前の画像データはＲＡＭ１３に記憶されているとともに、各画素から拡散させた階調誤差を記憶する領域や変換した画像データを記憶する領域もＲＡＭ１３に設けられている。
まず、近隣する所定の２×２画素をまとめてブロックとし、画像データを変換する着目ブロックの位置を設定する（Ｓ２０２）。
図８は、着目ブロックの位置を設定する様子を模式的に示している。階調数変換前のＣＭＹＫデータは、画像をドットマトリクス状の画素Ｕ１０で２５６階調表現したＣＭＹＫ別のデータである。図では、各画素Ｕ１０を小さな正方形で示している。ここで、図の上下方向を縦方向、左右方向を横方向とすると、本実施形態では縦２画素、横２画素の計４画素を一つのブロックＢ１１（図では、４つの画素を囲む点線で示している。）としている。また、図中太線で示したように、着目ブロックＢ１２はブロックＢ１１のいずれかに設定される。画像変換処理の順序は、左上のブロックから開始して順番に右上のブロックまでとし、その後一つずつ下の左端のブロックから順番に右端のブロックまでとして、最後に右下のブロックとしている。むろん、変換処理の順序は、適宜変更可能であり、解像度等に応じて異なる順序とすることも可能である。
なお、ブロックは正方形状である以外にも、例えば、長方形状、横１列に並んだ複数の画素のような直線状、ある基準画素と同基準画素の右隣と左下と下隣の画素の計４画素とをまとめた形状等でもよい。
【００５０】
階調数変換処理は、ブロックＢ１１単位で行われるが、画質を低下させないように、着目ブロックＢ１２が画像中で明度の高いハイライト領域すなわち高明度領域にあるのか、明度の低い低明度領域にあるのか、明度の中間的な中間調領域にあるのか、ハイライト領域と中間調領域との間の領域にあるのか、中間調領域と低明度領域との間の領域にあるのかを判定し、判定結果に応じた変換処理を行う。
着目ブロックの位置を設定すると、着目ブロック内の各画素の階調値を読み込む（Ｓ２０４）。同階調値はＣＭＹＫ別に色変換されてＲＡＭ１３に記憶されているので、ＲＡＭ１３からＣＭＹＫ別に着目ブロックに対応した４画素分の階調値を読み込むことになる。図８では、説明の便宜のため、着目ブロックＢ１２内の左上、右上、左下、右下の画素を、それぞれＰａ，Ｐｂ，Ｐｃ，Ｐｄとしている。
【００５１】
その後、読み込んだ階調値の総和Ｓを算出する（Ｓ２０６）。ここで、画素Ｐａ，Ｐｂ，Ｐｃ，Ｐｄの階調値をそれぞれＤａ，Ｄｂ，Ｄｃ，Ｄｄとすると、ＣＭＹＫ別にＳを以下の式により算出する。
Ｓ ＝ Ｄａ ＋ Ｄｂ ＋ Ｄｃ ＋ Ｄｄ    …（５）
なお、ブロックがｎ画素から構成されている場合には、階調値の総和Ｓは、以下の一般式により算出することができる。
Ｓ ＝ Σ（Ｄｉ）
ただし、ｉは１〜ｎの整数
【００５２】
そして、総和Ｓに基づいて、閾値Ｄ１，Ｄ４を基準として、ブロック処理条件を満たすか否かを判定し、同条件成立時にはブロック単位で画像変換処理を行うようにしている。一方、同条件不成立時、着目ブロック内の各画素の階調値と拡散誤差とに基づいて、着目ブロック内にドットを形成するか否かまたは着目ブロック内の画素全てにドットを形成するか否かを判定し、判定結果に対応する処理単位で画像変換処理を行うようにしている。さらに、ブロック処理条件不成立時、総和Ｓに基づいて、閾値Ｄ２，Ｄ３を基準としてブロック移行条件を満たすか否かを判定し、同条件成立時にドット形成を判定して判定結果に応じた処理を行うようにしている。
【００５３】
階調値の総和Ｓを算出すると、Ｓが「０」であるか否かを判断する（Ｓ２０８）。着目ブロック内の各画素の階調値が全て「０」であるときのみ総和Ｓは「０」となるので、ＣＭＹＫ別に見たときに着目ブロック内の各画素の階調値が全て「０」であるときに条件成立となり、Ｓ２１０に進む。一方、各画素の階調値のうち一つでも「１」以上のものがあれば、Ｓ２１４に進む。
Ｓ２１０では、着目ブロック内の画素全てをオフすなわちドットを形成しない状態とする。すなわち、着目ブロック内の変換後の画像データは全ての画素において「０」とされ、「ドットを形成しない」画像データとなる。そして、詳しくは後述するが、ブロック単位で誤差拡散を行うブロック単位拡散処理を行い（Ｓ２１２）、Ｓ２３８に進む。着目ブロック内の各画素の階調値が全て「０」である場合には、後述するＳ２１６の変換処理（その１）が行われないので画像変換処理を高速化させることができる。
【００５４】
Ｓ２１４では、総和Ｓが閾値Ｄ１よりも大きいか否かを判断する。むろん、ＳがＤ１以上であるか否かを判断してもよい。閾値Ｄ１は、画像データの階調値の小さい領域において、ブロック単位の画像変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものである。Ｓ＞Ｄ１のとき着目ブロックが階調値の小さい領域におけるブロック処理条件を満たさないと判定してＳ２１８に進み、Ｓ≦Ｄ１のとき着目ブロックが同条件を満たすと判定してＳ２１６に進む。
０＜Ｓ≦Ｄ１であるときに実行されるＳ２１６では、詳しくは後述するが、ブロック単位で誤差拡散を行いながら画像データをまとめて変換する変換処理（その１）を行い、Ｓ２３８に進む。
【００５５】
上記ブロック処理条件を満たさないと判定したときに実行されるＳ２１８では、総和Ｓが閾値Ｄ２よりも大きいか否かを判断する。むろん、ＳがＤ２以上であるか否かを判断してもよい。閾値Ｄ２は、画像データの階調値の小さい領域において、ブロック単位の画像変換処理を行ったときに高画質を維持可能な条件が存在するか否かの境界値として予め設定されるものである。Ｓ＞Ｄ２のとき着目ブロックが階調値の小さい領域におけるブロック移行条件を満たさないと判定してＳ２２２に進み、Ｓ≦Ｄ２のとき着目ブロックが同条件を満たすと判定してＳ２２０に進む。
Ｄ１＜Ｓ≦Ｄ２であるときに実行されるＳ２２０では、詳しくは後述するが、着目ブロック内でドットを形成するか否かを判定し、判定結果に応じてブロック単位または１画素単位で誤差拡散を行いながら画像データを変換する変換処理（その２）を行い、Ｓ２３８に進む。
【００５６】
上記ブロック移行条件を満たさないと判定したときに実行されるＳ２２２では、総和Ｓが閾値Ｄ３よりも大きいか否かを判断する。むろん、ＳがＤ３以上であるか否かを判断してもよい。閾値Ｄ３は、画像データの階調値の大きい領域において、ブロック単位の画像データ変換処理を行ったときに高画質を維持可能な条件が存在するか否かの境界値として予め設定されるものである。Ｓ＞Ｄ３のときＳ２２６に進み、Ｓ≦Ｄ３のときにＳ２２４に進む。画像データ中でＤ２≦Ｓ＜Ｄ３を満たす領域は、画像中で明度の中間的な領域である。
Ｓ２２４では、詳しくは後述するが、着目ブロック内にドットを形成するか否かまたは着目ブロック内の画素全てにドットを形成するか否かの判定を行わずに１画素単位で誤差拡散を行いながら画像データを変換する１画素単位変換処理を行い、Ｓ２３８に進む。
【００５７】
Ｓ２２６では、総和Ｓが閾値Ｄ４よりも大きいか否かを判断する。むろん、ＳがＤ４以上であるか否かを判断してもよい。閾値Ｄ４は、画像データの階調値の大きい領域において、ブロック単位の画像データ変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものである。Ｓ＞Ｄ４のときに着目ブロックが階調値の大きい領域におけるブロック処理条件を満たすと判定してＳ２３０に進み、Ｓ≦Ｄ４のときに着目ブロックが階調値の大きい領域におけるブロック移行条件を満たすと判定してＳ２２８に進む。
Ｄ３＜Ｓ≦Ｄ４であるときに実行されるＳ２２８では、詳しくは後述するが、着目ブロック内の画素全てにドットを形成するか否かを判定し、判定結果に応じてブロック単位または１画素単位で誤差拡散を行いながら画像データを変換する変換処理（その３）を行い、Ｓ２３８に進む。
【００５８】
上記ブロック処理条件を満たすと判定したときに実行されるＳ２３０では、総和Ｓが閾値Ｄ５であるか否かを判断する。Ｄ５＝４×２５５＝１０２０であるので、ＣＭＹＫ別に見たときに着目ブロック内の各画素の階調値が全て「２５５」であるときに条件成立となり、Ｓ２３４に進む。一方、各画素の階調値のうち一つでも「２５４」以下のものがあれば、Ｓ２３２に進む。Ｓ２３２では、詳しくは後述するが、ブロック単位で誤差拡散を行いながら画像データをまとめて変換する変換処理（その４）を行い、Ｓ２３８に進む。
一方、Ｓ２３４では、着目ブロック内の画素全てをオンすなわちドットを形成する状態とする。すなわち、着目ブロック内の変換後の画像データは全ての画素において「２５５」とされ、「ドットを形成する」画像データとなる。そして、詳しくは後述するが、ブロック単位で誤差拡散を行うブロック単位拡散処理を行い（Ｓ２３６）、Ｓ２３８に進む。着目ブロック内の各画素の階調値が全て「２５５」である場合には、Ｓ２３２の変換処理（その４）が行われないので画像変換処理を高速化させることができる。
Ｓ２３８では、画像データの全ブロックについて変換処理を終了したか否かを判断する。変換処理を行っていないブロックがある場合にはＳ２０２に戻り、前回の着目ブロックの右側にブロックがあるときには当該ブロックを着目ブロックの位置として設定し、前回の着目ブロックの右側にブロックがないときには一つ下の左端のブロックを着目ブロックとして設定する。そして、繰り返し上述した画像変換処理を行う。一方、全ブロックについて変換処理を終了した場合、階調数変換処理を終了する。その後、図６で示したＳ１２５のインターレース処理が行われ、プリンタ２０に対して並び替えられた２値化データが送出されることになる。
【００５９】
このように、着目ブロックで行われる画像変換処理は、上記総和Ｓに応じて、以下のように切り替えられる。
Ｓ＝０のとき、          全画素オフの後、ブロック単位拡散処理
０＜Ｓ≦Ｄ１のとき、    変換処理（その１）
Ｄ１＜Ｓ≦Ｄ２のとき、  変換処理（その２）
Ｄ２＜Ｓ≦Ｄ３のとき、  １画素単位変換処理
Ｄ３＜Ｓ≦Ｄ４のとき、  変換処理（その３）
Ｄ４＜Ｓ＜Ｄ５のとき、  変換処理（その４）
Ｓ＝Ｄ５のとき、        全画素オンの後、ブロック単位拡散処理
本実施形態では、０＜Ｓ≦Ｄ１またはＤ４＜Ｓのときブロック処理条件成立であり、Ｄ１＜Ｓ≦Ｄ２またはＤ３＜Ｓ≦Ｄ４のときブロック移行条件成立である。すなわち、図７のＳ２０２〜Ｓ２０８，Ｓ２１４，Ｓ２１８，Ｓ２２２，Ｓ２２６の処理を行うＰＣは、着目ブロック内の各画素の階調値のみを処理単位情報と対比して同着目ブロックがブロック処理条件やブロック移行条件を満たすか否かを判定する判定手段を構成する。
【００６０】
なお、ブロック単位で誤差拡散を行いながら画像データをまとめて変換するには、例えば、以下のようにすればよい。
図９は、ブロック単位で誤差拡散を行いながら画像データを変換する様子を説明する説明図である。なお、変換前の画像データはＲＡＭ１３内の所定領域に格納されているとともに、変換後の画像データはＲＡＭ１３内の別の所定領域に格納されることになるが、わかりやすく説明するため、変換処理が終了した画素については変換後の画像データを記載している。
図の上段は、着目ブロックＢ１２の左隣のブロックＢ１３まで誤差拡散を伴う画像変換処理が終了した状態を示している。図の例では、着目ブロックＢ１２は画像中で明度の高い領域となっており、着目ブロックＢ１２内の各画素Ｐａ〜Ｐｄのいずれにも階調値「２０」（各画素内の上段に記載）が格納されているとともに、他のブロックから階調誤差「５０」（各画素内の下段に記載）が拡散されてきているものとする。また、処理の一例として、各画素Ｐａ〜Ｐｄの階調値の総和Ｓ１が閾値「１００」以下のときにブロック処理条件が成立するものとし、着目ブロックＢ１２内の各画素の階調値と拡散誤差の総和が閾値「１５０」よりも大きいときに同着目ブロックＢ１２内の１画素にのみドットを形成するものとする。むろん、これらの閾値は一例にすぎない。
【００６１】
ここで、階調値の総和Ｓ１は２０×４＝８０となるのでブロック処理条件は成立し、同画素の拡散誤差の総和は５０×４＝２００となり、着目ブロックＢ１２内の各画素の階調値と拡散誤差との総和は８０＋２００＝２８０であるので着目ブロックＢ１２内の１画素にのみドットを形成することになる。本実施形態では、左隣のブロックＢ１３のように、着目ブロックＢ１２の左上の画素Ｐａにドットを形成することにしている。すなわち、画素Ｐａの画像データを「２５５」とし、残りの画素Ｐｂ〜Ｐｄの画像データを「０」とすることになる。
このように、着目ブロック内の所定位置の画素にのみドットを形成することにより、変換処理が簡素化されるので、画像データの変換が迅速に行われることになる。ここで、着目ブロックＢ１２内の１画素にのみドットを形成する場合には、画素Ｐｂ〜Ｐｄのいずれかにドットを形成してもよいし、着目ブロック内の画素のうち最も階調値の大きい画素にドットを形成してもよいし、ランダムに画素を選択してドットを形成してもよい。
【００６２】
着目ブロック全体の階調誤差は、着目ブロックＢ１２内の各画素の階調値と拡散誤差との総和から画像データ変換後の着目ブロック内における各画素の階調値の総和を差し引いた値となる。図の例では、着目ブロックＢ１２内の各画素の階調値と拡散誤差との総和は２８０であるから、変換後の着目ブロックＢ１２内の各画素の階調値の総和２５５を差し引くことにより、階調誤差は「２５」となる。そして、着目ブロック全体の階調誤差を他のブロック内の未変換画素Ｕ１１〜Ｕ１６に拡散させる。ここで、未変換画素Ｕ１１〜Ｕ１６は、それぞれ、着目ブロックＢ１２の右隣のブロックにおける左上の画素、同右隣のブロックにおける左下の画素、左下のブロックにおける右上の画素、下隣のブロックにおける左上の画素、同下隣のブロックにおける右上の画素、右下のブロックにおける左上の画素である。左上のブロック内の画素や、上隣のブロック内の画素や、左隣のブロック内の画素は変換処理済みであるので、これらの画素には階調誤差を拡散させないようにしている。
【００６３】
また、本実施形態では、同階調誤差を他のブロック内の未変換画素に対して略均等に拡散させるようにしている。図の例では、着目ブロックＢ１２全体の階調誤差は「２５」であり、他のブロック内の未変換画素は６つあるので、２５を６で除して小数点以下を四捨五入した「４」ずつ未変換画素に拡散させる。階調誤差が６で割り切れない場合には、所定位置の未変換画素Ｕ１６に拡散させる階調誤差を調整し、拡散させる階調誤差の合計を着目ブロックＢ１２全体の階調誤差と一致させる。図の下段に示すように、未変換画素Ｕ１６には階調誤差「５」が拡散されることになる。
このようにして、ブロック単位で画像変換処理を行うことができる。
【００６４】
なお、様々な手法で着目ブロックの階調誤差を周辺の未変換画素に拡散させることができ、例えば、同階調誤差を、着目ブロックの右隣、左下、下隣、右下のブロック内の画素一つのみに拡散させてもよいし、着目ブロックに隣接していない未変換画素に拡散させてもよいし、未変換画素の位置に応じて拡散する割合を異ならせてもよい。
また、図１０に示すように、着目ブロックＢ１２が画像中で明度の低い領域でも、同様の考え方でブロック単位で画像データを変換することができる。
【００６５】
一方、図１１は、１画素単位で誤差拡散を行いながら画像データを変換する様子を示している。なお、斜線が記入された画素は、誤差拡散を伴う画像変換処理が終了したことを示している。
本実施形態では、着目ブロックＢ１２内で画素Ｐａ，Ｐｂ，Ｐｃ，Ｐｄの順番に、同画素の階調誤差を他の未変換画素に拡散させながら着目ブロックＢ１２内の画素の画像データを変換する。ここで、未変換画素は、着目ブロックＢ１２内であってもよいし、他のブロック内であってもよい。
【００６６】
まず、１画素目の画素Ｐａについて、階調値と他の画素からの階調誤差に基づいてドットを形成するか否かを判定し、変換後の画像データを「２５５」または「０」とする。そして、画素Ｐａの階調誤差を他の未変換画素に拡散させる。このとき、図中ブロック矢印で示したように、同画素Ｐａの右隣の未変換画素Ｐｂ、下隣の未変換画素Ｐｃ、右下の未変換画素Ｐｄに拡散させる。１画素単位の変換処理を行う場合も、階調誤差を３つの未変換画素Ｐｂ〜Ｐｄに対して略均等に拡散させる。
２画素目の画素Ｐｂについても、同様にしてドットを形成するか否かを判定し、変換後の画像データを「２５５」または「０」とする。そして、画素Ｐｂの階調誤差を、同画素Ｐｂの左下の未変換画素Ｐｃ、下隣の未変換画素Ｐｄ、着目ブロックＢ１２外となる右隣の未変換画素Ｕ１１、右下の未変換画素Ｕ１２に対して略均等に拡散させている。
３画素目の画素Ｐｃについても、同様にして変換後の画像データを「２５５」または「０」とする。そして、画素Ｐｃの階調誤差を、同画素Ｐｃの右隣の未変換画素Ｐｄ、着目ブロックＢ１２外となる左下の未変換画素Ｕ１３、下隣の未変換画素Ｕ１４、右下の未変換画素Ｕ１５に対して略均等に拡散させる。
４画素目の画素Ｐｄについても、同様にして変換後の画像データを「２５５」または「０」とする。そして、画素Ｐｄの階調誤差を、着目ブロックＢ１２外となる同画素Ｐｄの右隣の未変換画素Ｕ１２、左下の未変換画素Ｕ１４、下隣の未変換画素Ｕ１５、右下の未変換画素Ｕ１６に対して略均等に拡散させる。
【００６７】
このようにして、着目ブロック内の画素別に同画素の階調誤差を拡散させながら画像データを変換することができる。むろん、着目ブロックが２×２画素以外であっても、同様にして画素別の画像変換処理を行うことが可能である。
なお、上記以外にも、様々な手法で同階調誤差を他の未変換画素に拡散させることができる。例えば、画素Ｐａ，Ｐｂ，Ｐｃについては、着目ブロックＢ１２内の未変換画素にのみ階調誤差を拡散させながら画像データを変換し、画素Ｐｄについてのみ、他のブロック内の未変換画素に階調誤差を拡散させながら画像データを変換してもよい。また、未変換画素の位置に応じて同階調誤差を拡散する割合を異ならせるようにしてもよい。むろん、画像データを変換する順番についても、例えば、画素Ｐａ，Ｐｃ，Ｐｂ，Ｐｄの順としてもよいし、ブロック毎に順序を変えてもよい。
本実施形態では、着目ブロック内の画素を１画素単位で区分して画素区分としているが、着目ブロック内の画素を２以上の画素単位で区分して画素区分としてもよい。例えば、横２画素×縦１画素を画素区分とすると、まず、図１１の画素Ｐａ，Ｐｂの階調値と拡散誤差とに基づいて同画素Ｐａ，Ｐｂ全体の階調誤差を当該画素Ｐａ，Ｐｂ外の未変換画素に拡散させながら同画素Ｐａ，Ｐｂの画像データをまとめて変換すればよい。次に、画素Ｐｃ，Ｐｄの階調値と拡散誤差とに基づいて同画素Ｐｃ，Ｐｄ全体の階調誤差を当該画素Ｐｃ，Ｐｄ外の未変換画素に拡散させながら同画素Ｐｃ，Ｐｄの画像データをまとめて変換すればよい。
【００６８】
ところで、従来は、上述したブロック処理条件が成立する領域はブロック単位の画像変換処理を行っても高画質を維持可能である画像の明度の高い領域とされ、同条件を満たすか否かを着目ブロック内の画素全ての階調値と拡散誤差とに基づいて判定していた。そして、同条件成立時には着目ブロック単位で画像変換処理を行い、同条件不成立時には一律に着目ブロック内で画素別に画像変換処理を行っていた。しかし、着目ブロック内にドットを形成しない場合、１画素単位の変換処理を行ってもブロック単位の変換処理を行っても、着目ブロック内から他のブロックに拡散される階調誤差は同じであり、また、ドットが形成されないことには変わりがない。さらに、着目ブロック内の画素全てにドットを形成する場合も同様であり、処理単位が違っていても、他のブロックに拡散される階調誤差は同じであるとともに同画素全てにドットが形成されることにも変わりがない。
【００６９】
そこで、本発明では、図３で示したように、ブロック処理条件不成立時でも、着目ブロックがブロック移行条件を満たすか否かを判定し、判定結果に応じて１画素単位またはブロック単位の画像変換処理を行うようにしている。その結果、画像の高画質を維持しながら、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。また、画像データの階調値の小さい領域のみならず、同階調値の大きい領域でも、画像の高画質を維持しながら画像データ変換処理をさらに高速化させることが可能となる。
また、従来は、着目ブロック内の画素全ての階調値と拡散誤差との総和を用いてブロック処理条件の成立可否を判定して処理単位を切り替えていたが、ブロック内の各画素の階調値の総和が同じでも、ブロック内の拡散誤差の大きさにより、画像変換処理はブロック単位の処理となったり１画素単位の処理となったりしていた。その結果、ブロック単位の処理が行われたブロックと１画素単位の処理が行われたブロックとで形成されるドットのパターンが異なり、意図しないドットの模様が現れることがあった。本発明では、着目ブロック内に拡散されてきた階調誤差を含めずに着目ブロック内の画素全ての階調値のみを用いてブロック処理条件の成立可否を判定して処理単位を切り替えることにより、意図しない模様が現れることを防いでいる。
【００７０】
（４）画像処理装置が行う処理の詳細：
以下、本画像処理装置が行う階調数変換処理の詳細について、説明する。
図１２は、図７のＳ２１２，Ｓ２３６で行われるブロック単位拡散処理を示すフローチャートである。上記Ｓ２１０では画像データの変換処理後の着目ブロック内の画素全てについての画像データがドットを形成しないことを意味する「０」とされ、上記Ｓ２３４では変換処理後の着目ブロック内の画素全てについての画像データがドットを形成することを意味する「２５５」とされて、本フローが開始される。また、本フローは、後述する変換処理（その１〜４）の途中でもコールされる。
【００７１】
まず、着目ブロック全体で生じる階調誤差を算出する（Ｓ３０２）。着目ブロック内の各画素Ｐａ〜Ｐｄに拡散されてきた拡散誤差をそれぞれＥａ，Ｅｂ，Ｅｃ，Ｅｄとすると、着目ブロック全体に拡散されてきた拡散誤差ＳＥは、以下の式から求めることができる。
ＳＥ ＝ Ｅａ ＋ Ｅｂ ＋ Ｅｃ ＋ Ｅｄ    …（６）
また、階調数変換後の着目ブロック内に形成されるドット数をＮｄｏｔとすると、変換処理後の着目ブロック内における各画素の階調値の総和Ｓｄｏｔは、以下の式から求めることができる。
Ｓｄｏｔ ＝ ２５５ × Ｎｄｏｔ    …（７）
すなわち、着目ブロック全体で生じる階調誤差Ｅは、以下の式のように、着目ブロック内の各画素の階調値と拡散誤差との総和から変換処理後の着目ブロック内における各画素の階調値の総和を差し引くことにより算出することができる。
Ｅ ＝ Ｓ ＋ ＳＥ − Ｓｄｏｔ    …（８）
【００７２】
次に、着目ブロック全体の階調誤差Ｅを他のブロック内の未変換画素に略均等に拡散させ（Ｓ３０４）、本フローを終了する。このようにして、着目ブロックにおいてブロック単位の画像変換処理が終了する。
【００７３】
図１３は、図７のＳ２１６で行われる変換処理（その１）を示すフローチャートである。本フローは、着目ブロックがブロック処理条件成立と判定される０＜Ｓ≦Ｄ１のときに行われる。
まず、着目ブロックについて、着目ブロック内の各画素の階調値と拡散誤差との総和である補正データＢｘを算出する（Ｓ４０２）。ここで、着目ブロック内の各画素Ｐａ〜Ｐｄに拡散されてきた拡散誤差Ｅａ〜Ｅｄの総和である着目ブロック全体の拡散誤差ＳＥを用いると、Ｂｘは、以下の式により算出することができる。
Ｂｘ ＝ Ｓ ＋ ＳＥ    …（９）
具体的には、着目ブロック内の各画素の拡散誤差を記憶しているＲＡＭ１３から拡散誤差Ｅａ〜Ｅｄを読み出し、上記式（６），（９）によりＢｘを算出する。なお、各画素の拡散誤差は、上記Ｓ２０４で各画素の階調値を読み出すときに一緒に読み出しておいてもよい。
【００７４】
次に、算出したＢｘが所定のドット形成基準値である閾値ｔｈ１よりも大きいか否かを判断する（Ｓ４０４）。むろん、Ｂｘ≧ｔｈ１であるか否かを判断してもよい。閾値ｔｈ１は、画像データの階調値の小さい領域において、着目ブロック内に１ドット形成するか否かの境界値として予め設定されるものであり、画像データの種類等に応じて適宜決定される値である。
Ｂｘ＞ｔｈ１の場合、着目ブロック内の１画素のみオン、すなわち、ドットを形成し（Ｓ４０６）、Ｓ４１０に進む。本実施形態では、着目ブロック内の左上の画素を「ドットを形成する」画像データとし、残りの３画素を「ドットを形成しない」画像データとする。一方、Ｂｘ≦ｔｈ１の場合、着目ブロック内の画素全てをオフ、すなわち、ドットを形成せず（Ｓ４０８）、Ｓ４１０に進む。この場合、着目ブロック内の４画素全てを「ドットを形成しない」画像データとする。
このようにして、画像データの変換の際に変換対象の４画素について当該４画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。
【００７５】
本フローが行われるのは着目ブロックが高明度領域にあるときなので、ドット形成密度が小さく、ブロック単位でドットを形成しても画像の分解能の低下は目立たず、高画質を維持することが可能である。そこで、画像データを変換した後、図１２で示したブロック単位拡散処理を行い（Ｓ４１０）、着目ブロック全体の階調誤差Ｅを算出して他のブロック内の未変換画素に拡散させ、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
すなわち、図１３で示した処理を行うＰＣは、ブロック処理条件成立時に着目ブロック内の全画素をまとめて変換対象として画像データの変換処理を同着目ブロック単位で行う第一変換手段を構成する。
【００７６】
図１４は、図７のＳ２２０で行われる変換処理（その２）を示すフローチャートである。本フローは、着目ブロックがブロック移行条件成立と判定されるＤ１＜Ｓ≦Ｄ２のときに行われる。
まず、上記Ｓ４０２と同様にして、着目ブロックについての補正データＢｘを算出する（Ｓ５０２）。次に、算出したＢｘが所定のドット形成基準値である閾値ｔｈ２よりも大きいか否かを判断する（Ｓ５０４）。むろん、Ｂｘ≧ｔｈ２であるか否かを判断してもよい。閾値ｔｈ２も、画像データの階調値の小さい領域において、着目ブロック内に１ドット形成するか否かの境界値として予め設定されるものである。本実施形態では、ｔｈ２ ＝ ｔｈ１として、閾値ｔｈ２を上記変換処理（その１）で使用する閾値ｔｈ１と同じ値にしている。このようにすることにより、記憶させる閾値を少なくさせることができるので、画像変換処理を簡素化させることができる。むろん、画像データの種類等に応じて、ｔｈ２をｔｈ１とは異なる値にしてもよい。
【００７７】
Ｂｘ＞ｔｈ２の場合、１画素単位で誤差拡散を行いながら画像データを変換する１画素単位変換処理を行い（Ｓ５０６）、本フローを終了する。
図１５は、１画素単位変換処理を示すフローチャートである。図のフローは、ＣＭＹＫ別に行われ、上記Ｓ２２４や後述する変換処理（その３）の途中でもコールされるようになっている。
まず、図１１で示したように、着目ブロック内の着目画素の位置を設定する（Ｓ６０２）。
【００７８】
着目画素の位置を設定すると、着目画素の階調値と拡散されてきた拡散誤差とをＲＡＭ１３から読み込む（Ｓ６０４）。次に、着目画素についての補正データＣｘを算出する（Ｓ６０６）。ここで、着目画素の階調値をＳｉ、拡散されてきた拡散誤差をＥｉとすると、Ｃｘは、以下の式のように階調値Ｓｉと拡散誤差Ｅｉとの和となる。
Ｃｘ ＝ Ｓｉ ＋ Ｅｉ    …（１０）
【００７９】
Ｃｘを算出すると、Ｃｘが所定の閾値ｔｈ０よりも大きいか否かを判断する（Ｓ６０８）。むろん、Ｃｘ≧ｔｈ０であるか否かを判断するようにしてもよい。本実施形態では、閾値ｔｈ０を上記変換処理（その１）や変換処理（その２）で使用する閾値ｔｈ１，ｔｈ２と同じ値にしている。むろん、画像データの種類等に応じて、ｔｈ０をｔｈ１，ｔｈ２とは異なる値にしてもよい。
Ｃｘ＞ｔｈ０の場合、着目画素を「ドットを形成する」画像データとして（Ｓ６１０）Ｓ６１４に進み、Ｃｘ≦ｔｈ０の場合、着目画素を「ドットを形成しない」画像データとして（Ｓ６１２）Ｓ６１４に進む。
このようにして、画像データの変換の際に変換対象の画素について当該画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。
【００８０】
Ｓ６１４では、着目画素で生じる階調誤差を算出する。ここで、画像データ変換後の着目画素の画像データをＤｏｔとすると、着目画素の階調値Ｓｉ、着目画素に拡散されてきた拡散誤差Ｅｉを用いて、着目画素で生じる階調誤差Ｅ’を算出することができる。
Ｅ’ ＝ Ｓｉ ＋ Ｅｉ − Ｄｏｔ    …（１１）
Ｓ６１６では、図１１で示したように、着目画素の階調誤差Ｅ’を他の未変換画素に略均等に拡散させる。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
【００８１】
Ｓ６１８では、着目ブロック内の全画素について変換処理を終了したか否かを判断する。着目ブロック内で変換処理を行っていない画素がある場合にはＳ６０２に戻り、次の着目画素の位置を設定して、繰り返し上述した画像変換処理を行う。一方、着目ブロック内の全画素について変換処理を終了した場合、１画素単位変換処理を終了する。
このようにして、着目ブロック内の画素別に同画素の階調値と拡散誤差とに基づいて同画素の階調誤差を他の未変換画素に拡散させながら着目ブロック内の画素の画像データを変換することができる。
【００８２】
図１４のＳ５０４において、Ｂｘ≦ｔｈ２であった場合、着目ブロック内の画素全てをオフ、すなわち、着目ブロック内の４画素全てを「ドットを形成しない」画像データとする（Ｓ５０８）。Ｓ５０８が行われるのは着目ブロック内にドットが形成されないときであるが、画像変換処理をブロック単位で行ったとしても着目ブロック内から他のブロックに拡散される階調誤差は同じであり、また、ドットが形成されないことには変わりがないため、高画質を維持することができる。そこで、Ｓ５１０にて、図１２で示したブロック単位拡散処理を行い、着目ブロック全体の階調誤差Ｅを算出して他のブロック内の未変換画素に拡散させ、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
【００８３】
このように、図１４で示した処理を行うＰＣは、ブロック移行条件成立時に着目ブロック内の各画素の階調値と拡散誤差とから同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が０と判定したときには同着目ブロック内の全画素をまとめて変換対象として画像変換処理を同着目ブロック単位で行い、同形成するドット数が０より大と判定したときに画素区分別に画像変換処理を行う第二変換手段を構成する。
従って、着目ブロックがブロック処理条件を満たさないと判定されたときでも、着目ブロック内でドットが形成されない場合にはブロック単位で画像変換処理が行われる。その際、画像の高画質は維持されるので、誤差拡散法による画像変換処理をさらに高速化させることができる。
【００８４】
なお、上記総和ＳについてＤ２＜Ｓ≦Ｄ３が成立するとき、図７のＳ２２４にて図１５で示した１画素単位変換処理が行われる。Ｓ２２４が行われるのは着目ブロックが画像中で明度の中間的な中間調領域にあるときであるので、１画素単位できめ細やかな変換処理を行う。
すなわち、中間調領域ではドット形成を判定するまでもなく１画素単位の画像変換処理が行われるので、画像変換処理の速度をさらに向上させることが可能となる。
【００８５】
図１６は、図７のＳ２２８で行われる変換処理（その３）を示すフローチャートである。本フローは、着目ブロックがブロック移行条件成立と判定されるＤ３＜Ｓ≦Ｄ４のときに行われる。
まず、上記Ｓ４０２と同様にして、着目ブロックについての補正データＢｘを算出する（Ｓ７０２）。次に、算出したＢｘが所定の第二ドット形成基準値である閾値ｔｈ３よりも大きいか否かを判断する（Ｓ７０４）。むろん、Ｂｘ≧ｔｈ３であるか否かを判断するようにしてもよい。閾値ｔｈ３は、画像データの階調値の大きい領域において、着目ブロック内で全ドット形成するか否かの境界値として予め設定されるものである。ここで、閾値ｔｈ３は、上記変換処理（その１，２）で使用する閾値ｔｈ１，ｔｈ２よりも大きな値としている。
【００８６】
Ｂｘ＞ｔｈ３の場合、着目ブロック内の画素全てをオン、すなわち、着目ブロック内の４画素全てを「ドットを形成する」画像データとする（Ｓ７０６）。Ｓ７０６が行われるのは着目ブロック内の画素全てにドットが形成されるときであるが、画像変換処理をブロック単位で行ったとしても着目ブロック内から他のブロックに拡散される階調誤差は同じであり、また、画素全てにドットが形成されることには変わりがないため、高画質を維持することができる。そこで、Ｓ７０８にて、図１２で示したブロック単位拡散処理を行い、着目ブロック全体の階調誤差Ｅを算出して他のブロック内の未変換画素に拡散させ、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
一方、Ｂｘ≦ｔｈ３以下の場合、図１５で示した１画素単位変換処理を行い（Ｓ７１０）、本フローを終了する。
【００８７】
このように、図１６で示した処理を行うＰＣは、ブロック移行条件成立時に着目ブロック内の各画素の階調値と拡散誤差とから同着目ブロック内でのドットの形成状況を判定し、同着目ブロック内に形成するドット数が４と判定したときには同着目ブロック内の全画素をまとめて変換対象として画像変換処理を同着目ブロック単位で行い、同形成するドット数が４より小と判定したときに画素区分別に画像変換処理を行う第二変換手段を構成する。
従って、着目ブロックがブロック処理条件を満たさないと判定されたときでも、着目ブロック内の画素全てでドットが形成される場合にはブロック単位で画像変換処理が行われる。その際、画像の高画質は維持されるので、誤差拡散法による画像変換処理をさらに高速化させることができる。
【００８８】
図１７は、図７のＳ２３２で行われる変換処理（その４）を示すフローチャートである。本フローは、着目ブロックがブロック処理条件成立と判定されるＤ４＜Ｓ＜Ｄ５のときに行われる。
まず、上記Ｓ４０２と同様にして、着目ブロックについての補正データＢｘを算出する（Ｓ８０２）。次に、算出したＢｘが所定の第二ドット形成基準値である閾値ｔｈ４よりも大きいか否かを判断する（Ｓ８０４）。むろん、Ｂｘ≧ｔｈ４であるか否かを判断するようにしてもよい。閾値ｔｈ４も、画像データの階調値の大きい領域において、着目ブロック内で全ドット形成するか否かの境界値として予め設定されるものである。本実施形態では、ｔｈ４ ＝ ｔｈ３として、閾値ｔｈ４を上記変換処理（その４）で使用する閾値ｔｈ３と同じ値にしている。このようにすることにより、記憶させる閾値を少なくさせることができるので、画像変換処理を簡素化させることができる。むろん、画像データの種類等に応じて、ｔｈ４をｔｈ３とは異なる値にしてもよい。
【００８９】
Ｂｘ＞ｔｈ４の場合、着目ブロック内の画素全てをオン、すなわち、ドットを形成し（Ｓ８０６）、Ｓ８１０に進む。この場合、着目ブロック内の４画素全てを「ドットを形成する」画像データとする。一方、Ｂｘ≦ｔｈ４の場合、着目ブロック内の１画素のみオフ、すなわち、１画素のみドットを形成せず（Ｓ８０８）、Ｓ８１０に進む。本実施形態では、着目ブロック内の右下の画素を「ドットを形成しない」画像データとし、残りの３画素を「ドットを形成する」画像データとしている。
このようにして、画像データの変換の際に変換対象の４画素について当該４画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。
【００９０】
本フローが行われるのは着目ブロックが低明度領域にあるときなので、ドット形成密度が大きく、ブロック単位でドットを形成しても画像の分解能の低下は目立たず、高画質を維持することが可能である。そこで、画像データを変換した後、図１２で示したブロック単位拡散処理を行い（Ｓ８１０）、着目ブロック全体の階調誤差Ｅを算出して他のブロック内の未変換画素に拡散させ、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
【００９１】
以上説明したように、誤差拡散法を用いて画像データを変換する際にブロック処理条件が成立していないときでも、着目ブロック内でドットが形成されなかったり着目ブロック内の画素全てでドットが形成される場合には、ブロック単位で画像データの変換処理が行われる。これらの場合には、画像データの変換処理をブロック単位で行ったとしても着目ブロック内から他のブロックに拡散される階調誤差は同じであるとともに着目ブロック内でドットが形成されなかったり着目ブロック内の画素全てでドットが形成されることには変わりがないため、高画質を維持することができる。従って、各画素の階調値の小さい領域と階調値の大きい領域の双方にて、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能となる。
また、画像中で明度が比較的高い領域において上記総和Ｓが閾値Ｄ２以上またはより大のときには着目ブロック内でのドットの形成有無を判定するまでもなく１画素単位の画像変換処理を行い、画像中で明度が比較的低い領域において上記総和Ｓが閾値Ｄ３以下またはより小のときには着目ブロック内でのドットの形成有無を判定するまでもなく１画素単位の画像変換処理を行うので、処理速度がさらに向上する。
さらに、画像変換処理の処理単位は着目ブロック内の各画素の階調値のみに基づいて切り替えられるので、ブロック内の画素の階調値の総和が同じであれば、ブロック内に拡散されてくる階調誤差の大きさには関係なく、画像変換処理の処理単位は一定となる。従って、ブロック内の階調値が同じときにブロック単位の変換処理が行われたり１画素単位の変換処理が行われたりして形成されるドットによる意図しない模様が現れることがなく、変換後の画像データに基づく画像をさらに高画質にさせることも可能となる。
【００９２】
なお、本画像処理装置を実現させるフローは、様々な変形例が考えられる。
例えば、処理を簡素化させるため、図７のＳ２０８〜Ｓ２１２，Ｓ２３０，Ｓ２３４〜Ｓ２３６の処理を省略して、閾値Ｄ１〜Ｄ４のみと総和Ｓとを対比して各種変換処理を行ってもよい。
同図のＳ２０２〜２２０，Ｓ２２４，Ｓ２３８の処理のみを行い、Ｓ＞Ｄ２のときに一律に１画素単位変換処理を行うようにして、低ドット密度側のみブロック処理条件とブロック移行条件の判定結果に対応する処理単位の変換処理を行ってもよい。逆に、同図のＳ２０２〜Ｓ２０６，Ｓ２２２〜２３８の処理のみを行い、Ｓ≦Ｄ３のときに一律に１画素単位変換処理を行うようにして、高ドット密度側のみブロック処理条件とブロック移行条件の判定結果に対応する処理単位の変換処理を行ってもよい。
さらに処理を簡素化させるため、同図のＳ２０２〜２１６，Ｓ２２４，Ｓ２３８の処理のみを行い、Ｓ＞Ｄ１のときに一律に１画素単位変換処理を行うようにして、低ドット密度側のみブロック処理条件のみの判定結果に対応する処理単位の変換処理を行ってもよい。逆に、同図のＳ２０２〜Ｓ２０６，Ｓ２２６，Ｓ２２４，Ｓ２３０〜２３８の処理のみを行い、Ｓ２２６で条件不成立時にＳ２２４に進ませることによりＳ≦Ｄ４のときに一律に１画素単位変換処理を行うようにして、高ドット密度側のみブロック処理条件のみの判定結果に対応する処理単位の変換処理を行ってもよい。
【００９３】
図１８と図１９は、処理を簡素化した階調数変換処理の一例を示すフローチャートである。
Ｓ２０２〜Ｓ２０６にて総和Ｓを算出すると、Ｓ２１４にてＳ＞Ｄ１であるか否かを判断する。Ｓ≦Ｄ１のとき同ブロック処理条件を満たすと判定し、変換処理（その１）を行って（Ｓ２１６）、Ｓ２３８に進む。
Ｓ＞Ｄ１のとき、Ｓ＞Ｄ４であるか否かを判断する（Ｓ２２６）。Ｓ≦Ｄ４のときブロック処理条件を満たさないと判定し、第二変換手段による図１９の変換処理（その５）を行って（Ｓ９２２）Ｓ２３８に進む。Ｓ＞Ｄ４のとき高ドット密度側のブロック処理条件を満たすと判定し、変換処理（その４）を行って（Ｓ２３２）Ｓ２３８に進む。
【００９４】
図１９に示す変換処理（その５）を開始すると、補正データＢｘを算出し（Ｓ１００２）、上記Ｓ５０４と同様、Ｂｘ＞ｔｈ２であるか否かを判断する（Ｓ１００４）。Ｂｘ≦ｔｈ２の場合、上記Ｓ５０８〜Ｓ５１０と同様、着目ブロック内の画素全てをオフとし（Ｓ１００６）、図１２で示したブロック単位拡散処理を行って（Ｓ１００８）、フローを終了する。これにより、着目ブロック内にドットを形成しない場合にブロック単位の画像変換処理が行われる。
Ｂｘ＞ｔｈ２の場合、Ｂｘ＞ｔｈ３であるか否かを判断する（Ｓ１０１０）。Ｂｘ＞ｔｈ３の場合、上記Ｓ７０６〜Ｓ７０８と同様、着目ブロック内の画素全てをオンとし（Ｓ１０１２）、図１２で示したブロック単位拡散処理を行って（Ｓ１０１４）、フローを終了する。これにより、着目ブロック内の画素全てにドットを形成する場合にブロック単位の画像変換処理が行われる。
一方、Ｂｘ≦ｔｈ３（ｔｈ２＜Ｂｘ≦ｔｈ３）の場合には、１画素単位変換処理を行い（Ｓ１０１６）、フローを終了する。
このようにしても、画像の高画質を維持しながら、誤差拡散法による画像変換処理をさらに高速化させることが可能となる。
【００９５】
総和Ｓと処理単位情報とを対比する順序も、様々考えられる。例えば、Ｓ＝Ｄ５であるか否か、Ｓ＞Ｄ４であるか否か、Ｓ＞Ｄ３であるか否か、Ｓ＞Ｄ２であるか否か、Ｓ＞Ｄ１であるか否か、Ｓ＝０であるか否か、の順に判定し、対応する変換処理を行ってもよい。また、ブロック処理条件またはブロック移行条件が満たされるか否かを先に判定した後、ブロック処理条件が成立するか否かを判定してもよい。
【００９６】
図２０は、階調数変換処理の変形例を示すフローチャートである。
Ｓ２０６で総和Ｓを算出すると、Ｓ２１８に進んでＳ＞Ｄ２であるか否かを判断する。Ｓ≦Ｄ２のとき着目ブロックが低ドット密度側のブロック処理条件またはブロック移行条件を満たすと判定し、Ｓ＞Ｄ１であるか否かを判断する（Ｓ２１４）。Ｓ≦Ｄ１のとき低ドット密度側のブロック処理条件を満たすと判定して変換処理（その１）を行い、Ｓ＞Ｄ１のとき低ドット密度側のブロック移行条件を満たすと判定して変換処理（その２）を行い、Ｓ２３８に進む。
Ｓ２１８でＳ＞Ｄ２であったとき、Ｓ２２２でＤ＞Ｄ３であるか否かを判断する。Ｓ＞Ｄ３のとき着目ブロックが高ドット密度側のブロック処理条件またはブロック移行条件を満たすと判定し、Ｓ＞Ｄ４であるか否かを判断する（Ｓ２２６）。Ｓ≦Ｄ４のとき高ドット密度側のブロック移行条件を満たすと判定して変換処理（その３）を行い、Ｓ＞Ｄ４のとき高ドット密度側のブロック処理条件を満たすと判定して変換処理（その４）を行い、Ｓ２３８に進む。
Ｓ２２２でＳ≦Ｄ３であったとき、１画素単位変換処理（Ｓ２２４）を行い、Ｓ２３８に進む。
本フローによると、ブロックが画素別処理条件と比べてブロック処理条件またはブロック移行条件を満たす場合が比較的多いときに、画像変換処理の速度をさらに向上させることが可能となる。
【００９７】
図２１は、階調数変換処理の別の変形例を示すフローチャートである。
Ｓ２０６で総和Ｓを算出すると、Ｄ２＜Ｓ≦Ｄ３であるか否かを判断する（Ｓ１１０２）。Ｄ２＜Ｓ≦Ｄ３のとき、１画素単位変換処理を行って（Ｓ１１０４）Ｓ２３８に進む。これにより、着目ブロックが分割処理条件を満たすと判定される中間調領域が他の領域よりも多い画像について画像変換処理を行う場合に処理を高速化させるという利点がある。
Ｓ１１０２で条件不成立時には着目ブロックがブロック処理条件またはブロック移行条件を満たすと判定したことになり、Ｄ１＜Ｓ≦Ｄ２であるか否かを判断する（Ｓ１１０６）。Ｄ１＜Ｓ≦Ｄ２のとき着目ブロックが低ドット密度側のブロック移行条件を満たすと判定し、変換処理（その２）を行って（Ｓ１１０８）Ｓ２３８に進む。Ｓ１１０６で条件不成立時、Ｄ３＜Ｓ≦Ｄ４であるか否かを判断する（Ｓ１１１０）。Ｄ３＜Ｓ≦Ｄ４のとき高ドット密度側のブロック移行条件を満たすと判定し、変換処理（その３）を行って（Ｓ１１１２）Ｓ２３８に進む。これにより、ブロック移行条件が成立する低ドット密度移行領域や高ドット密度移行領域が低ドット密度領域や高ドット密度領域よりも多い画像について画像変換処理を行う場合に処理を高速化させるという利点がある。
Ｓ１１１０で条件不成立時、Ｓ≦Ｄ１であるか否かを判断する（Ｓ１１１４）。Ｓ≦Ｄ１のとき低ドット密度側のブロック処理条件を満たすと判定し、変換処理（その１）を行って（Ｓ１１１６）Ｓ２３８に進む。Ｓ１１１４で条件不成立時、Ｓ＞Ｄ４なので高ドット密度側のブロック処理条件を満たすと判定し、変換処理（その４）を行って（Ｓ１１１８）Ｓ２３８に進む。
【００９８】
本フローによると、１画素（画素区分）単位で画像変換処理を行う場合が他の処理単位で画像変換処理を行う場合と比べて比較的多いときに、画像変換処理の速度をさらに向上させることが可能となる。従って、例えば、分割処理条件を満たす場合が満たさない場合よりも多い場合に本処理を行えばよい。
また、先にブロック処理条件が満たされるか否かが判定され、同条件が満たされないと判定されたときにブロック移行条件が満たされか否かが判定される。ブロック移行条件を満たす場合がブロック処理条件を満たす場合と比べて比較的多いときに、画像変換処理の速度をさらに向上させることが可能となる。従って、例えば、ブロック移行条件を満たす場合がブロック処理条件を満たす場合よりも多い場合に本処理を行えばよい。
むろん、図７で示したように、ブロック処理条件が満たされるか否かを先に判定した後、ブロック移行条件が満たすか否かを判定してもよい。
【００９９】
図２２は、変換処理（その２）の変形例を示すフローチャートである。本フローでは、基準ドット数を１として、ブロック処理条件不成立時に着目ブロック内に形成するドット数が１以下と判定したときには画像変換処理を着目ブロック単位で行う。
Ｓ５０４でＢｘ＞ｔｈ２のとき、Ｂｘ＞ｔｈ２１であるか否かを判断する（Ｓ５１２）。ここで、所定の閾値ｔｈ２１はｔｈ２より大きくされている。Ｂｘ≦ｔｈ２１（ｔｈ２＜Ｂｘ≦ｔｈ２１）のとき、着目ブロック内で１ドット形成し（Ｓ５１４）、Ｓ５１０に進んでブロック単位拡散処理を行い、フローを終了する。これにより、ブロック処理条件不成立時に着目ブロック内に１ドット以下しかドットを形成しないときにはブロック単位の画像変換処理が行われる。
【０１００】
また、図２３は、変換処理（その３）の変形例を示すフローチャートである。本フローでは、第二基準ドット数を３として、ブロック処理条件不成立時に着目ブロック内に形成するドット数が３以上と判定したときには画像変換処理を着目ブロック単位で行う。
Ｓ７０２で補正データＢｘを算出すると、Ｂｘ＞ｔｈ３１であるか否かを判断する（Ｓ７１２）。ここで、所定の閾値ｔｈ３１はｔｈ３より小さくされている。Ｂｘ＞ｔｈ３１のとき、１画素単位変換処理を行い（Ｓ７１０）、フローを終了する。Ｂｘ≦ｔｈ３１のとき、Ｂｘ＞ｔｈ３であるか否かを判断する（Ｓ７０４）。Ｂｘ≦ｔｈ３（ｔｈ３１＜Ｂｘ≦ｔｈ３）のとき、着目ブロック内で１画素オフすなわち３ドット形成し（Ｓ７１４）、Ｓ７０８に進んでブロック単位拡散処理を行い、フローを終了する。これにより、ブロック処理条件不成立時に着目ブロック内に３ドット以上ドットを形成するときにはブロック単位の画像変換処理が行われる。
【０１０１】
図２４は、画像変換処理を行う画素の処理単位を決定するための処理単位情報の変形例を示している。本処理単位情報Ｔ１は、ブロック内の画素の階調値の総和Ｓに対応付けて処理単位を決定するための個別処理単位情報を格納した情報テーブルとされ、ＨＤ１４に記憶されている。総和Ｓは０〜１０２０の整数値をとりうるため、１０２１種類の総和Ｓに対応させて画像変換処理の種類を表す情報が格納されている。図では、（ｕ１）〜（ｕ７）の７種類の個別処理単位情報が設けられている。本例では、ブロック移行条件成立時の処理として、画素区分を２×１画素とする処理と１画素とする処理の２種類を設けている。
【０１０２】
図２５は、処理単位情報Ｔ１を用いた階調数変換処理を示すフローチャートである。
Ｓ２０６で総和Ｓを算出すると、ＨＤ１４に記憶された処理単位情報Ｔ１の情報テーブルから総和Ｓに対応する個別処理単位情報を読み出して取得する（Ｓ１２０２）。そして、Ｓ１２０４，Ｓ１２０８，Ｓ１２１２，Ｓ１２１６にて個別処理単位情報に対応させて処理を分岐させ、Ｓ１２０６，Ｓ１２１０，Ｓ１２１４，Ｓ１２１８，Ｓ１２２０にて個別処理単位情報に対応する変換処理を行って、Ｓ２３８に進む。なお、図中、変換処理（その１，４）はブロック処理条件成立時の画像変換処理であり、変換処理（その６，７）は画素区分を２×１画素とするブロック移行条件成立時の画像変換処理であり、変換処理（その２）は画素区分を１画素とするブロック移行条件成立時の画像変換処理である。
以上の処理により、閾値を用いずに画像変換処理を切り替えることができるので、簡易な構成ながら画質を低下させずに画像変換処理をさらに高速化させることができる。
【０１０３】
なお、第一変換手段、第二変換手段によりブロック単位で画像変換処理を行う前に、着目ブロックがいわゆるエッジ部分であるか否かを判定し、エッジ部分であると判定したときには１画素単位で画像変換処理を行うようにしてもよい。その際、例えば、着目ブロック内で隣接した画素の階調値の差が所定値以上のときや、着目ブロック内で階調値の最大値と最小値との差が所定値以上のときにエッジ部分であると判定することができる。すると、各画素の階調値が急変する領域では、きめ細やかに画像データを変換することができるので、画像中のエッジ部分を不鮮明にさせることなく高画質な画像を得ることが可能となる。
【０１０４】
（５）第二の実施形態：
また、画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換する場合、解像度変換前の画像データを用いてブロック処理条件等の成立の可否を判定し、判定結果に対応する画像変換処理を行うようにしてよい。
図６のフローを参照すると、例えば、解像度が設定されたＣＭＹＫデータを入手し（Ｓ１０５）、解像度変換処理を行い（Ｓ１１０）、Ｓ１１５の色変換処理を行わずに階調数変換処理（Ｓ１２０）を行う場合に解像度変換前の画像データを用いてブロック処理条件等の成立の可否を判定することができる。また、解像度が設定されたＲＧＢデータを入手し（Ｓ１０５）、先に色変換処理（Ｓ１１５）を行った後、解像度変換処理を行い（Ｓ１１０）、階調数変換処理（Ｓ１２０）を行ってもよい。さらに、解像度が設定されたＲＧＢデータを入手して保持しておき（Ｓ１０５）、解像度変換処理を行い（Ｓ１１０）、色変換処理を行って（Ｓ１１５）解像度変換処理（Ｓ１２０）を行うとともに、保持しておいた解像度変換前のＲＧＢデータに対してＳ１１５と同様の色変換処理を行い、同色変換後であって解像度変換前の画像データ（ＣＭＹＫデータ）を用いてブロック処理条件等の成立の可否を判定してもよい。
【０１０５】
図２６は、解像度変換前の画像データを用いてブロック処理条件等の成立の可否を判定する判定手段の処理を説明する図である。図の左側は解像度変換前の画像データ（ＣＭＹＫデータ）５１であり、右側は解像度変換後の画像データ（ＣＭＹＫデータ）５２である。図の例のように、360×360dpiに設定された画像データを２×２倍の720×720dpiに高解像度化する場合、変換前の画像データの１画素に対して変換後の画像データの２×２画素を対応させる。本発明の判定手段は、変換前の画像データ５１を構成する画素の中から一または二以上の近隣した画素を処理区分５３とするとともに、変換後の画像データ５２を構成する画素の中から処理区分５３に対応する画素数の近隣した画素をブロック５４とする。図の例では、処理区分５３を１画素とし、ブロック５４を２×２画素としている。
そして、ブロック５４の中から画像データを階調数変換する着目ブロック５５を設定するとともに、この着目ブロック５５に対応する着目処理区分５６を処理区分５３の中から設定し、着目処理区分５６内の画素の階調値と、階調数変換処理を行う画素の処理単位を決定するための処理単位情報とを対比して、着目ブロック５５が所定のブロック処理条件を満たすか否かを判定する。本処理単位情報は、処理区分内の画素の階調値に対応付けられた情報である。ブロック処理条件は、処理区分内の階調値のとりうる範囲の中から所定の範囲を持った条件とされている。
【０１０６】
図２７は、解像度を２×２倍に高解像度化させる場合に上記処理区分を１画素として画像変換処理を行う階調数変換処理をフローチャートにより示している。本フローでは、処理区分に対応して解像度変換の変換倍率２×２倍に一致する画素数の近隣した画素をブロックとしている。本実施形態の処理単位情報は、閾値ＤＡ１〜ＤＡ４から構成している。ここで、閾値ＤＡ１，ＤＡ２，ＤＡ３，ＤＡ４は本発明にいう第一、第二、第三、第四の閾値であり、０＜ＤＡ１＜ＤＡ２＜ＤＡ３＜ＤＡ４＜２５５の関係がある。なお、ＤＡ１〜ＤＡ４は、第一の実施形態で用いた閾値Ｄ１〜Ｄ４を４で除した値とすることができ、第一の実施形態のように、２５５−ＤＡ４＞ＤＡ１−０、２５５−ＤＡ３＞ＤＡ２−０としてもよいし、上述した式（１）〜（４）を満たすようにしてもよい。
まず、解像度変換後の画像データを構成する画素の中から近隣する所定の２×２画素をまとめてブロックとし、画像データを階調数変換する着目ブロックの位置を設定する（Ｓ２００２）。次に、解像度変換前の画像データを構成する画素の中から着目ブロックに対応する着目画素（着目処理区分）の位置を設定する（Ｓ２００４）。さらに、同着目画素の階調値ＳＡを取得する（Ｓ２００６）。これにより、画像データを階調数変換する着目ブロックに対応する処理区分の画素の階調値が取得されるが、第一の実施形態のように総和Ｓを算出する必要がないので、処理が高速化される。
【０１０７】
階調値ＳＡを取得すると、ＳＡ＞ＤＡ１（またはＳＡ≧ＤＡ１）であるか否かを判断する（Ｓ２００８）。ＳＡ≦ＤＡ１のとき着目ブロックが低ドット密度側のブロック処理条件を満たすと判定し、第一の実施形態の変換処理（その１）を行って（Ｓ２０１０）、Ｓ２０２６に進む。これにより、同条件が満たされると判定されたときに画像変換処理が着目ブロック単位で行われる。
Ｓ２００８でＳＡ＞ＤＡ１のとき上記ブロック処理条件を満たさないと判定し、Ｓ２０１２でＳＡ＞ＤＡ２（またはＳＡ≧ＤＡ２）であるか否かを判断する。ＳＡ≦ＤＡ２のとき着目ブロックが低ドット密度側のブロック移行条件を満たすと判定し、第一の実施形態の変換処理（その２）を行って（Ｓ２０１４）、Ｓ２０２６に進む。これにより、同条件が満たされると判定されたときに着目ブロック内のドットの形成状況を判定して判定結果に対応する処理単位の画像変換処理が行われる。
Ｓ２０１２でＳＡ＞ＤＡ２のとき上記ブロック移行条件を満たさないと判定し、Ｓ２０１６でＳＡ＞ＤＡ３（またはＳＡ≧ＤＡ３）であるか否かを判断する。ＳＡ≦ＤＡ３のとき着目ブロックが分割処理条件を満たすと判定し、第一の実施形態の１画素単位変換処理を行って（Ｓ２０１８）、Ｓ２０２６に進む。これにより、同条件が満たされると判定されたときに画像変換処理が１画素単位（画素区分単位）で行われる。
【０１０８】
Ｓ２０１６でＳＡ＞ＤＡ３のとき、Ｓ２０２０でＳＡ＞ＤＡ４（またはＳＡ≧ＤＡ４）であるか否かを判断する。ＳＡ≦ＤＡ４のとき着目ブロックが高ドット密度側のブロック移行条件を満たすと判定し、第一の実施形態の変換処理（その３）を行って（Ｓ２０２２）、Ｓ２０２６に進む。これにより、同条件が満たされると判定されたときに着目ブロック内のドットの形成状況を判定して判定結果に対応する処理単位の画像変換処理が行われる。
Ｓ２０２０でＳＡ＞ＤＡ４のとき高ドット密度側のブロック処理条件を満たすと判定し、第一の実施形態の変換処理（その４）を行って（Ｓ２０２４）、Ｓ２０２６に進む。これにより、同条件が満たされると判定されたときに画像変換処理が着目ブロック単位で行われる。
なお、変換処理（その１〜４）で補正データＢｘを算出する際には、着目ブロック内の各画素の階調値の総和を階調値ＳＡの４倍（１ビット分シフト）とすることができるので、Ｂｘを算出する処理も高速化させることができる。
Ｓ２０２６では、画像データの全ブロックについて階調数変換処理を終了したか否かを判断し、階調数変換処理を行っていないブロックがある場合にはＳ２００２に戻り、全ブロックについて階調数変換処理を終了した場合にはフローを終了する。
【０１０９】
以上のフローにより、高画質を維持可能な領域のみドットはブロック単位で形成されるので、画像データの変換処理を高速化させることができる。また、解像度変換前の画像データから着目ブロックに対応する１画素のみの階調値を参照することにより着目ブロック内の画素の階調値を参照する必要がなくなるし、着目ブロック内でのドットの形成状況を判定する処理の速度も向上するので、誤差拡散法による画像変換処理を効果的に高速化させることが可能となる。
【０１１０】
なお、図２７で示した処理では処理区分内の画素の階調値のみを処理単位情報と対比して画像変換処理を切り替えたが、処理区分内の画素の階調値に基づいていれば他のパラメータを考慮して所定の処理単位情報と対比することにより画像変換処理を切り替えるようにすることも可能である。例えば、階調値ＳＡと着目ブロックに拡散されてきた全拡散誤差とに基づいて画像変換処理を切り替えてもよく、階調値ＳＡの４倍と同拡散誤差との総和（上述した補正データＢｘに相当）と所定の処理単位情報とを対比して画像変換処理を切り替えてもよい。処理区分が複数の画素から構成される場合、ブロックの画素数をｎとすると、処理区分の各画素の階調値の平均をｎ倍した値と着目ブロックに拡散されてきた全階調誤差との総和と所定の処理単位情報とを対比することにより、画像変換処理を切り替えることができる。
【０１１１】
また、解像度変換前後の解像度を取得して高解像度化であるか低解像度化であるかを判断し、判断結果に対応して階調数変換処理を切り替えてもよい。
図２８は、階調数変換処理の変形例を示すフローチャートである。まず、画像データに対して設定された解像度変換前の解像度（例えばディスプレイに表示する解像度）ＤＰ１を取得する（Ｓ２１０２）。次に、画像データに対して設定された解像度変換後の解像度（例えばプリンタに出力する解像度）ＤＰ２を取得する（Ｓ２１０４）。そして、ＤＰ１＞ＤＰ２であるか否かを判断する（Ｓ２１０６）。これにより、解像度変換処理の解像度変換が画像データを低解像度化する変換であるか否かを判断することができる。
ＤＰ１≦ＤＰ２のとき解像度変換は低解像度化でない（高解像度化または同解像度）と判定し、高解像度化である場合には図２７で示した画像変換処理を行い、同解像度の場合には処理区分の画素数をブロックの画素数と同じにして図２７と同様の画像変換処理を行う。
【０１１２】
ＤＰ１＞ＤＰ２のとき解像度変換は低解像度化と判定し、解像度変換後の画像データを構成する画素の中から近隣する所定の２×２画素をまとめてブロックとし、画像データを階調数変換する着目ブロックの位置を設定する（Ｓ２１０８）。次に、解像度変換前の画像データを構成する画素の中から着目ブロックに対応する着目画素の位置を設定する（Ｓ２１１０）。ここで、ブロックに対応して複数の画素からなる着目処理区分を設定して着目処理区分内の各画素の階調値の総和を算出するようにしてもよいが、低解像度化する解像度変換は通常画素を間引く処理を行っているので、着目処理区分の中から間引き処理で残された画素を着目画素とすればよい。さらに、同着目画素の階調値ＳＡを取得する（Ｓ２１１２）。そして、着目ブロックはブロック処理条件を満たさないと判定し、第一の実施形態の１画素単位変換処理を行って（Ｓ２１１４）、Ｓ２１１６に進む。Ｓ２１０８〜Ｓ２１１４の処理は、全ブロックが終了するまで行われる。
解像度変換が低解像度化する変換であるとき、低解像度化された画像データの階調数変換処理は時間が短くて済むので、高速化よりも画質維持を優先させることが可能である。上述した処理により、低解像度化する解像度変換処理が行われたときには全ドット密度領域にわたって着目ブロック内の画素を区分した画素区分別に階調数変換処理が行われるので、誤差拡散法による画像変換処理を高速にて行う際に効率よく処理を行うことが可能となる。
【０１１３】
（６）まとめ：
なお、本発明の画像処理プログラムを実行可能な画像処理装置と周辺装置は、様々な構成が可能である。
例えば、プリンタは、コンピュータと一体化されたものであってもよい。また、大中小のドットを形成可能である等、形成するドットの大きさを可変としたプリンタを使用してもよい。
上述したフローについては、ＰＣ内で実行する以外にも、一部または全部をプリンタあるいは専用の画像処理装置で実行するようにしてもよい。
画像を出力する装置は、印刷媒体上にドットを形成して印刷を行う装置以外であってもよく、例えば、液晶表示画面上で輝点形成の有無により画像を表現する液晶表示装置であってもよい。
【０１１４】
以上説明したように、本発明によると、種々の態様により、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理をさらに高速化させることが可能な画像処理装置、印刷制御装置、印刷装置、画像処理プログラムおよびそのプログラムを記録した媒体を提供することができる。また、画像処理方法としても適用可能である。
【図面の簡単な説明】
【図１】第一の実施形態にかかる画像処理装置を含む印刷装置の概略構成図。
【図２】プリンタのブロック構成をＰＣとともに示すブロック構成図。
【図３】画像処理装置の構成を模式的に示す図。
【図４】閾値と総和Ｓとの対応関係を模式的に示す図。
【図５】画素とドットの大きさの関係を模式的に示す図。
【図６】本画像処理装置が行う処理を示すフローチャート。
【図７】階調数変換処理を示すフローチャート。
【図８】着目ブロックの位置を設定する様子を模式的に示す図。
【図９】ブロック単位で誤差拡散を行いながら画像データを変換する様子を示す図。
【図１０】ブロック単位で誤差拡散を行いながら画像データを変換する様子を示す図。
【図１１】１画素単位で誤差拡散を行いながら画像データを変換する様子を示す図。
【図１２】ブロック単位拡散処理を示すフローチャート。
【図１３】変換処理（その１）を示すフローチャート。
【図１４】変換処理（その２）を示すフローチャート。
【図１５】１画素単位変換処理を示すフローチャート。
【図１６】変換処理（その３）を示すフローチャート。
【図１７】変換処理（その４）を示すフローチャート。
【図１８】階調数変換処理の変形例を示すフローチャート。
【図１９】変換処理（その５）を示すフローチャート。
【図２０】階調数変換処理の変形例を示すフローチャート。
【図２１】階調数変換処理の変形例を示すフローチャート。
【図２２】変換処理（その２）の変形例を示すフローチャート。
【図２３】変換処理（その３）の変形例を示すフローチャート。
【図２４】変形例における処理単位情報の構造を模式的に示す図。
【図２５】階調数変換処理の変形例を示すフローチャート。
【図２６】第二の実施形態において判定手段の処理を説明する図。
【図２７】第二の実施形態における階調数変換処理を示すフローチャート。
【図２８】階調数変換処理の変形例を示すフローチャート。
【符号の説明】
１０…パーソナルコンピュータ、１４…ハードディスク、１４ａ…ハードディスクドライブ、１４ｂ…処理単位情報、２０…インクジェットプリンタ、５１…解像度変換前の画像データ、５２…解像度変換後の画像データ、５３…処理区分、５４…ブロック、５５…着目ブロック、５６…着目処理区分、１００…印刷装置、Ａ…画像処理装置、Ａ１…判定手段、Ａ２…第一変換手段、Ａ３…第二変換手段、Ａ４…記憶手段、Ｂ１，Ｂ１２…着目ブロック、Ｂ１１，Ｂ１３…ブロック、Ｐａ，Ｐｂ，Ｐｃ，Ｐｄ…画素、Ｔ１…処理単位情報、Ｕ１…着目画素、Ｕ１０〜Ｕ１６…画素