(57)【要約】【課題】誤差拡散法により画像データを変換する処理のさらなる効率化を課題とする。【解決手段】変換処理をまとめて行う画素の領域を表す変換処理区分設定を解像度に対応させて記憶しておき、画像データに対して設定された解像度を取得し、取得した解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて変換対象として画像変換処理を同変換処理区分単位で行うようにした。解像度に合った適切な大きさの変換処理区分にて変換処理が行われるので、高解像度である場合に変換処理を高速化させることができ、誤差拡散法を用いた画像変換処理を効率よく行うことが可能となる。【選択図】  図３
2005039388.tif 000002
【特許請求の範囲】
【請求項１】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う画像処理装置であって、
予め設けられた複数段階の解像度に対応させて、上記変換処理をまとめて行う画素の領域を表す複数段階の変換処理区分設定を記憶した記憶手段と、
上記複数段階の解像度のうち、上記画像データに対して設定された解像度を取得する解像度取得手段と、
記憶された上記複数段階の変換処理区分設定のうち上記解像度取得手段にて取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて上記変換対象として上記変換処理を同変換処理区分単位で実行可能な変換処理手段とを具備することを特徴とする画像処理装置。
【請求項２】
上記変換処理区分は、二以上の画素をまとめたブロックとされ、
上記記憶手段は、上記ブロックとする領域の画素の階調値に対応付けて、同ブロック内で上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶し、
上記変換処理手段は、上記解像度取得手段にて取得された解像度に対応する変換処理区分設定で近隣する上記二以上の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値を上記処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な変換手段とを具備することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
上記処理単位情報には、上記ブロック内の画素を区分してさらに小さいブロックである小ブロックとする領域の画素の階調値に対応付けて、同小ブロック内で上記変換処理を行う画素の処理単位を決定するための情報が含まれ、
上記判定手段は、上記着目ブロックが上記ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分して上記小ブロックとし、上記画像データを変換する着目小ブロック内の各画素の階調値を上記処理単位情報と対比して同着目小ブロックが所定の第二のブロック処理条件を満たすか否かを判定し、
上記変換手段は、上記着目小ブロックが上記第二のブロック処理条件を満たすと判定されたとき、同着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行うことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
上記判定手段は、上記解像度取得手段にて取得された解像度が所定の第一の解像度であるときに上記第二のブロック処理条件の成立可否を判定し、同取得された解像度が所定の第二の解像度であるときには上記第二のブロック処理条件の成立可否を判定しないことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
上記第一の解像度は、上記第二の解像度よりも高解像度とされていることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
上記処理単位情報には上記ブロック内の各画素の階調値の総和に対応付けられた低密度側閾値と高密度側閾値とが含まれるとともに、同高密度側閾値は同低密度側閾値よりも高ドット密度側の値とされ、
上記判定手段は、上記着目ブロック内の各画素の階調値の総和が上記低密度側閾値から低ドット密度側または上記高密度側閾値から高ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定することを特徴とする請求項３〜請求項５のいずれかに記載の画像処理装置。
【請求項７】
上記処理単位情報には上記小ブロック内の各画素の階調値の総和に対応付けられた小ブロック用の低密度側閾値と小ブロック用の高密度側閾値とが含まれるとともに、同小ブロック用の高密度側閾値は同小ブロック用の低密度側閾値よりも高ドット密度側の値とされ、
上記判定手段は、上記着目ブロック内の各画素の階調値の総和が上記低密度側閾値から高ドット密度側かつ上記高密度側閾値から低ドット密度側であり、かつ、上記着目小ブロック内の各画素の階調値の総和が上記小ブロック用の低密度側閾値から低ドット密度側または上記小ブロック用の高密度側閾値から高ドット密度側であるときに同着目小ブロックが上記第二のブロック処理条件を満たすと判定することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
上記ブロック内の各画素の階調値の総和がとりうる範囲のうち上記高密度側閾値から高ドット密度側の範囲が上記低密度側閾値から低ドット密度領域側の範囲より広くされていることを特徴とする請求項６または請求項７に記載の画像処理装置。
【請求項９】
上記処理単位情報には、上記第一の解像度に対応する上記ブロック内の各画素の階調値の総和に対応付けられた第一の低密度側閾値と、上記第二の解像度に対応する上記ブロック内の各画素の階調値の総和に対応付けられた第二の低密度側閾値とが含まれ、
上記判定手段は、上記解像度取得手段にて上記第一の解像度が取得されたとき、同第一の解像度に対応する上記着目ブロック内の各画素の階調値の総和が上記第一の低密度側閾値から低ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定し、上記解像度取得手段にて上記第二の解像度が取得されたとき、同第二の解像度に対応する上記着目ブロック内の各画素の階調値の総和が上記第二の低密度側閾値から低ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定し、
上記第一の低密度側閾値は、ドットの形成密度に相当する値が上記第二の低密度側閾値を含めて当該第二の低密度側閾値から低ドット密度側の値とされていることを特徴とする請求項５に記載の画像処理装置。
【請求項１０】
上記処理単位情報には、上記第一の解像度に対応する上記ブロック内の各画素の階調値の総和に対応付けられた第一の高密度側閾値と、上記第二の解像度に対応する上記ブロック内の各画素の階調値の総和に対応付けられた第二の高密度側閾値とが含まれ、
上記判定手段は、上記解像度取得手段にて上記第一の解像度が取得されたとき、同第一の解像度に対応する上記着目ブロック内の各画素の階調値の総和が上記第一の高密度側閾値から高ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定し、上記解像度取得手段にて上記第二の解像度が取得されたとき、同第二の解像度に対応する上記着目ブロック内の各画素の階調値の総和が上記第二の高密度側閾値から高ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定し、
上記第一の高密度側閾値は、ドットの形成密度に相当する値が上記第二の高密度側閾値を含めて当該第二の高密度側閾値から高ドット密度側の値とされていることを特徴とする請求項５または請求項９に記載の画像処理装置。
【請求項１１】
上記処理単位情報には、上記第一の解像度に対応する上記ブロック内の各画素の階調値の総和に対応付けられた第一の低密度側閾値および第一の高密度側閾値と、上記第二の解像度に対応する上記ブロック内の各画素の階調値の総和に対応付けられた第二の低密度側閾値および第二の高密度側閾値とが含まれ、
上記第一の高密度側閾値は上記第一の低密度側閾値よりも高ドット密度側の値とされるとともに、上記第二の高密度側閾値は上記第二の低密度側閾値よりも高ドット密度側の値とされ、
上記判定手段は、上記解像度取得手段にて上記第一の解像度が取得されたとき、同第一の解像度に対応する上記着目ブロック内の各画素の階調値の総和が上記第一の低密度側閾値から低ドット密度側または上記第一の高密度側閾値から高ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定し、上記解像度取得手段にて上記第二の解像度が取得されたとき、同第二の解像度に対応する上記着目ブロック内の各画素の階調値の総和が上記第二の低密度側閾値から低ドット密度側または上記第二の高密度側閾値から高ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定し、
上記第一の低密度側閾値はドットの形成密度に相当する値が上記第二の低密度側閾値と同じとされているとともに、上記第一の高密度側閾値はドットの形成密度に相当する値が上記第二の高密度側閾値と同じとされていることを特徴とする請求項５に記載の画像処理装置。
【請求項１２】
上記処理単位情報には、上記ブロック内の各画素の階調値の最大値と最小値のいずれかまたは組み合わせに基づく値に対応付けられた閾値が含まれ、
上記判定手段は、上記着目ブロック内の各画素の階調値の最大値と最小値のいずれかまたは組み合わせに基づく値を上記閾値と対比して同着目ブロックが上記ブロック処理条件を満たすか否かを判定することを特徴とする請求項２〜請求項１１のいずれかに記載の画像処理装置。
【請求項１３】
上記処理単位情報は、上記ブロック内の画素の階調値に対応付けて上記処理単位を決定するための個別処理単位情報を格納した情報テーブルであり、
上記判定手段は、上記着目ブロック内の画素の階調値に対応する上記個別処理単位情報を上記情報テーブルから読み出し、読み出した個別処理単位情報から上記着目ブロックが上記ブロック処理条件を満たすか否かを判定することを特徴とする請求項２〜請求項５のいずれかに記載の画像処理装置。
【請求項１４】
上記変換処理区分設定は、上記解像度が大きくなるほど上記変換処理区分内の画素の数を増やす設定とされていることを特徴とする請求項１〜請求項１３のいずれかに記載の画像処理装置。
【請求項１５】
上記変換処理区分設定は、上記解像度の縦横の比と一致した長方形状の領域の画素を上記変換処理区分とする設定とされていることを特徴とする請求項１〜請求項１４のいずれかに記載の画像処理装置。
【請求項１６】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う画像処理装置であって、
ブロックとする所定数の画素の階調値に対応付けて上記変換処理を行う画素の処理単位を決定するための処理単位情報と、同ブロック内の画素を区分してさらに小さいブロックである小ブロックとする別の所定数の画素の階調値に対応付けて上記変換処理を行う画素の処理単位を決定するための処理単位情報とを記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値を上記処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同着目ブロックが同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分して上記小ブロックとし、上記画像データを変換する着目小ブロック内の各画素の階調値を上記処理単位情報と対比して所定の第二のブロック処理条件を同着目小ブロックが満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、上記着目小ブロックが上記第二のブロック処理条件を満たすと判定したときには同着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行い、上記着目小ブロックが上記第二のブロック処理条件を満たさないと判定したときには同着目小ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な変換手段とを具備することを特徴とする画像処理装置。
【請求項１７】
上記画素区分は、１画素とされていることを特徴とする請求項２〜請求項１６のいずれかに記載の画像処理装置。
【請求項１８】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う画像処理方法であって、
予め設けられた複数段階の解像度のうち、上記画像データに対して設定された解像度を取得する解像度取得工程と、
予め記憶されているとともに上記変換処理をまとめて行う画素の領域を表す複数段階の変換処理区分設定のうち上記取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて上記変換対象として上記変換処理を同変換処理区分単位で実行可能な変換処理工程とを具備することを特徴とする画像処理方法。
【請求項１９】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う画像処理方法であって、
近隣する所定数の画素をブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値を、同ブロック内の画素の階調値に対応付けられて上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同着目ブロックが同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分してさらに小さいブロックである小ブロックとし、上記画像データを変換する着目小ブロック内の各画素の階調値を、同小ブロック内の画素の階調値に対応付けられて上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、所定の第二のブロック処理条件を同着目小ブロックが満たすか否かを判定する判定工程と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、上記着目小ブロックが上記第二のブロック処理条件を満たすと判定したときには同着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行い、上記着目小ブロックが上記第二のブロック処理条件を満たさないと判定したときには同着目小ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な変換工程とを具備することを特徴とする画像処理方法。
【請求項２０】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により印刷装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行い、変換後の画像データに対応する画像の印刷制御を行う印刷制御装置であって、
予め設けられた複数段階の解像度に対応させて、上記変換処理をまとめて行う画素の領域を表す複数段階の変換処理区分設定を記憶した記憶手段と、
上記複数段階の解像度のうち、上記画像データに対して設定された解像度を取得する解像度取得手段と、
記憶された上記複数段階の変換処理区分設定のうち上記解像度取得手段にて取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて上記変換対象として上記変換処理を同変換処理区分単位で実行可能な変換処理手段と、
上記印刷装置に対して上記変換後の画像データに対応する画像を印刷させる制御を行う印刷制御手段とを具備することを特徴とする印刷制御装置。
【請求項２１】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により印刷装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行い、変換後の画像データに対応する画像の印刷制御を行う印刷制御装置であって、
ブロックとする所定数の画素の階調値に対応付けて上記変換処理を行う画素の処理単位を決定するための処理単位情報と、同ブロック内の画素を区分してさらに小さいブロックである小ブロックとする別の所定数の画素の階調値に対応付けて上記変換処理を行う画素の処理単位を決定するための処理単位情報とを記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値を上記処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同着目ブロックが同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分して上記小ブロックとし、上記画像データを変換する着目小ブロック内の各画素の階調値を上記処理単位情報と対比して所定の第二のブロック処理条件を同着目小ブロックが満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、上記着目小ブロックが上記第二のブロック処理条件を満たすと判定したときには同着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行い、上記着目小ブロックが上記第二のブロック処理条件を満たさないと判定したときには同着目小ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な変換手段と、
上記印刷装置に対して上記変換後の画像データに対応する画像を印刷させる制御を行う印刷制御手段とを具備することを特徴とする印刷制御装置。
【請求項２２】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う機能をコンピュータに実現させる画像処理プログラムであって、
予め設けられた複数段階の解像度のうち、上記画像データに対して設定された解像度を取得する解像度取得機能と、
予め記憶されているとともに上記変換処理をまとめて行う画素の領域を表す複数段階の変換処理区分設定のうち上記取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて上記変換対象として上記変換処理を同変換処理区分単位で実行可能な変換処理機能とを実現させることを特徴とする画像処理プログラム。
【請求項２３】
画像をドットマトリクス状の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う機能をコンピュータに実現させる画像処理プログラムであって、
近隣する所定数の画素をブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値を、同ブロック内の画素の階調値に対応付けられて上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同着目ブロックが同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分してさらに小さいブロックである小ブロックとし、上記画像データを変換する着目小ブロック内の各画素の階調値を、同小ブロック内の画素の階調値に対応付けられて上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、所定の第二のブロック処理条件を同着目小ブロックが満たすか否かを判定する判定機能と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、上記着目小ブロックが上記第二のブロック処理条件を満たすと判定したときには同着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行い、上記着目小ブロックが上記第二のブロック処理条件を満たさないと判定したときには同着目小ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な変換機能とを実現させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置、画像処理方法、印刷制御装置および画像処理プログラムに関する。
【０００２】
【従来の技術】
従来、画像を印刷する際には、画像をドットマトリクス状の画素で多階調表現した画像データを入力し、誤差拡散法により、各画素の階調誤差を他の未変換画素に拡散させながら各画素に対応してドット形成の有無により表現した画像データに変換し、変換した画像データをプリンタに対して出力する処理を行っている。プリンタでは、設定された解像度にて、変換された画像データに基づく画像を印刷する。同誤差拡散法によると、誤差が生じないため画質はよい反面、誤差を算出して割り振っていく際の演算処理に時間がかかるため、２×２画素をまとめてブロックとし、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させながら同着目ブロック内の画素の画像データをまとめて変換するブロック単位処理が行われている。同ブロック単位処理によると、画像データを変換する処理を高速化することができるものの、１画素単位で変換する場合と比べて画像の分解能は低下し、画質が低下することになる。
そこで、引用文献１に開示された技術のように、ブロック単位の変換処理を行っても高画質を維持可能である画像の明度が高い領域を所定のブロック処理条件が成立する領域として設定し、同ブロック処理条件を満たすか否かを着目ブロック内の画素全ての階調値と拡散されてきた階調誤差との総和に基づいて判定している。具体的には、同総和Ｂｘがブロック内の階調値のとりうる範囲の中から閾値ｔｈ２以下となるような所定の範囲を持ったブロック処理条件を満たすか否かを判定している。そして、同ブロック処理条件を満たすと判定したとき着目ブロック内の画素の画像データをまとめて変換する処理を行い、同ブロック処理条件を満たさないと判定したとき一律に着目ブロック内で画素別に画像データを変換する処理を行っている。その結果、画像データのうちドット形成密度が非常に小さくて分解能の低下が目立たず高画質を維持可能な領域のみ、ドットはブロック単位で形成され、画像データの変換処理はある程度高速化されながら高画質が維持される。
【０００３】
【特許文献１】
特開２００２−１８５７８９号公報
【０００４】
【発明が解決しようとする課題】
上述した従来の技術においては、ブロック単位の画像データ変換処理を行う際、高解像度で印刷させる場合でも２×２画素単位で変換処理が行われるため、低解像度で印刷させる場合と比べて見た目で小さい処理単位となり、処理速度は十分に高速化されていなかった。
本発明は、上記課題にかんがみてなされたもので、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理を効率よく行うことが可能な画像処理装置、画像処理方法、印刷制御装置および画像処理プログラムの提供を目的とする。
【０００５】
【課題を解決するための手段および発明の効果】
上記目的を達成するため、請求項１にかかる発明では、上記記憶手段と解像度取得手段と変換処理手段とを具備する構成としてある。
本画像処理装置は、画像をドットマトリクス状の画素で多階調表現した画像データを、ドット形成の有無により画像出力装置の出力画像を表現する画像データに変換する。この変換の際、変換対象の画素について当該画素の階調値と拡散されてきた階調誤差（以下、拡散誤差とも記載）からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う。
上記変換処理をまとめて行う画素の領域を表す複数段階の変換処理区分設定が、予め設けられた複数段階の解像度に対応して記憶手段により記憶されている。解像度取得手段は、複数段階の解像度のうち、画像データに対して設定された解像度を取得する。変換処理手段は、記憶された複数段階の変換処理区分設定のうち解像度取得手段にて取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて上記変換対象として上記変換処理を同変換処理区分単位で行うことが可能である。
すなわち、画像出力装置に画像を出力させるにあたり、解像度に合った適切な大きさの変換処理区分にて画像データの変換処理（以下、画像変換処理とも記載）を行うことが可能となるので、高解像度である場合に変換処理を高速化させることができる。従って、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理を効率よく行うことが可能となる。
【０００６】
ここで、上記画像出力装置は、例えば印刷装置、ディスプレイのような表示装置等、様々なものが考えられる。
上記変換処理区分は、複数の画素から構成されるのみならず、１画素のみから構成されてもよく、この場合でも本発明に含まれる。また、同じ画像データに対して変換処理区分の画素数を変化させながら変換処理を行ってもよい。
【０００７】
なお、変換前の画像データは、複数の色データから構成されるカラー画像データ、単独の色データから構成されるモノクロ画像データ、等、様々なデータが考えられる。また、同画像データは様々な階調数とすることができ、例えば、２５６階調、２のｎ乗でない１００階調等としてもよい。さらに、誤差拡散法を用いてドットを形成する際、二値化によりドットを形成してもよいし、例えば大中小のドットを形成するために二値よりも大きい多値化によりドットを形成してもよい。
【０００８】
ところで、請求項２にかかる発明では、変換処理区分を二以上の画素をまとめたブロックとしている。そして、上記変換処理を行う画素の処理単位を決定するための処理単位情報が、ブロックとする所定数の画素の階調値に対応付けられて記憶手段により記憶されている。判定手段は、近隣する上記所定数の画素を上記ブロックとし、画像データを変換する着目ブロック内の各画素の階調値を処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定する。
着目ブロックについてブロック処理条件が満たされると判定されたとき、変換手段は、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。一方、着目ブロックについてブロック処理条件が満たされないと判定されたとき、変換手段は、着目ブロック内の画素を区分した画素区分別に上記変換処理を行うことが可能である。
従って、ブロック単位で画像変換処理を行っても高画質を維持可能な領域をブロック処理条件が成立する領域として設定すれば、画像データのうち高画質を維持可能な領域のみドットがブロック単位で形成され、高画質を維持しながら誤差拡散法による画像変換処理をさらに効率よく行うことができる。
【０００９】
ここで、請求項１７にかかる発明のように、画素区分を１画素としてもよい。すなわち、変換手段の一例を提供することができ、画素区分別に変換処理を行う際に１画素単位という簡易な処理にて画像変換処理が行われるようになる。従って、簡易な構成にて、誤差拡散法を用いた画像変換処理を効率よく行うことが可能となる。
むろん、着目ブロック内を区分する画素は、上述したように１画素とする以外にも、複数の画素としてもよく、この場合であっても本発明に含まれる。また、画素区分は着目ブロック内の画素を均等に区分したものであってもよいし、着目ブロック内の画素を不均等に区分したものであってもよい。
【００１０】
上記処理単位情報には、請求項３にかかる発明のように、上記ブロック内の画素を区分してさらに小さいブロックである小ブロックとする領域の画素の階調値に対応付けて、同小ブロック内で上記変換処理を行う画素の処理単位を決定するための情報が含まれてもよい。判定手段は、着目ブロックがブロック処理条件を満たさないと判定したとき、着目ブロック内の画素を区分して小ブロックとし、画像データを変換する着目小ブロック内の各画素の階調値を処理単位情報と対比して同着目小ブロックが所定の第二のブロック処理条件を満たすか否かを判定する。着目小ブロックについて第二のブロック処理条件が満たされると判定されたとき、変換手段は、着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行う。一方、着目小ブロックについて第二のブロック処理条件が満たされないと判定されたとき、変換手段は、着目小ブロック内の画素を区分した画素区分別に上記変換処理を行うことが可能である。
着目ブロックがブロック処理条件を満たさないと判定されても、さらに小さい着目小ブロックが第二のブロック処理条件を満たすと判定されると画像変換処理は小ブロック単位で行われる。従って、きめ細やかに画像データをまとめて変換するブロックの大きさを切り替えることが可能となり、高画質を維持しながら分解能の低下が目立たない領域の変換処理をさらに高速化させ、画像変換処理をさらに効率よく行うことが可能となる。
なお、小ブロックを複数段階設けてもよい。この場合、小ブロックの画素を区分してさらに小さい小ブロックとする領域の画素の階調値に対応付けて同小ブロック内で上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶手段に記憶させ、着目小ブロック内の画素を区分してさらに小さい小ブロックとし、着目された小ブロック内の各画素の階調値と同処理単位情報とを対比して別の所定の第二のブロック処理条件を満たすか否かを判定し、同条件を満たすと判定したとき、同着目された小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目された小ブロック単位で行えばよい。
【００１１】
上記判定手段は、上記解像度取得手段にて取得された解像度が所定の第一の解像度であるときに上記第二のブロック処理条件の成立可否を判定し、同取得された解像度が所定の第二の解像度であるときには上記第二のブロック処理条件の成立可否を判定しない構成としてもよい。解像度に応じてブロックの大きさを変更するか否かが切り替わるので、高画質を維持しながら画像変換処理をさらに効率よく行うことが可能となる。
【００１２】
その際、上記第一の解像度は、上記第二の解像度よりも高解像度とされていると、高解像度のときにブロックの大きさが段階的に切り替えられる。従って、高解像度のときに高画質を維持しながら変換の処理速度を向上させ、画像変換処理をさらに効率よく行うことが可能となる。
【００１３】
上記ブロック処理条件を具体的に規定する一例として、請求項６にかかる発明のように、低密度側閾値と、同閾値よりも高ドット密度側の高密度側閾値とを設けてもよい。着目ブロック内の各画素の階調値の総和が低密度側閾値から低ドット密度側、または、高密度側閾値から高ドット密度側であるときにブロック処理条件が満たされてブロック単位の変換処理が行われ、同総和が低密度側閾値から高密度側閾値までであるときに画素区分別に変換処理が行われる。分解能の低下の目立たないドットの形成密度が小さい低ドット密度領域とドットの形成密度が大きい高ドット密度領域の両方でドットはブロック単位で形成されるので、閾値を用いるという簡易な構成ながら、画質を低下させずに画像変換処理をさらに効率よく行うことが可能となる。
なお、ブロック内の各画素の階調値の平均は同階調値の総和をブロック内の画素数で除したものであるので、同階調値の平均は同階調値の総和に含まれる。以下も、同様である。
【００１４】
また、請求項７にかかる発明のように、小ブロック用の低密度側閾値と、同閾値よりも高ドット密度側の小ブロック用の高密度側閾値とを設けてもよい。着目ブロックがブロック処理条件を満たさないときでも、上記着目小ブロック内の各画素の階調値の総和が小ブロック用の低密度側閾値から低ドット密度側、または、小ブロック用の高密度側閾値から高ドット密度側であるときに第二のブロック処理条件が満たされて小ブロック単位の変換処理が行われ、同総和が低密度側閾値から高密度側閾値までであるときに画素区分別に変換処理が行われる。ドットは小ブロック単位でも形成されるので、閾値を用いるという簡易な構成ながら、画質を低下させずに画像変換処理をさらに効率よく行うことが可能となる。
【００１５】
ここで、上記ブロック（小ブロックを含む。請求項４〜請求項１５について、同様）内の各画素の階調値の総和がとりうる範囲のうち上記高密度側閾値（小ブロック用の高密度側閾値を含む。請求項４〜請求項１５について、同様）から高ドット密度側の範囲が上記低密度側閾値（小ブロック用の低密度側閾値を含む。請求項４〜請求項１５について、同様）から低ドット密度領域側の範囲より広くされている構成としてもよい。印刷装置等の画像出力装置の高解像度化が進むなか、画像出力装置が形成する１ドットの面積は同画像出力装置に設定された１画素の面積より大きくなっている。すると、低ドット密度領域でドットを形成する割合と高ドット密度領域でドットを形成しない割合とが同じであるとすると、高ドット密度領域で形成されたドットが占める領域の面積は、低ドット密度領域でドットが形成されていない領域の面積よりも小さくなる。その結果、高ドット密度領域のほうが低ドット密度領域よりも分解能の低下が目立たないので、高密度側閾値から高ドット密度側の範囲を低密度側閾値から低ドット密度領域側の範囲より広くしても、画質を低下させずに変換の処理速度を向上させて画像変換処理をさらに効率よく行うことが可能となる。
以上のことから、本構成は、形成される１ドットの面積が設定された１画素の面積より大きい画像出力装置の出力画像を表現する画像データを生成する画像処理装置に好適である。
【００１６】
さらに、請求項９にかかる発明のように、ブロック内の階調値の総和に対応付けられた低密度側閾値を第一および第二の低密度側閾値とから構成し、第一の低密度側閾値を、ドットの形成密度に相当する値が第二の低密度側閾値を含めて当該第二の低密度側閾値から低ドット密度側の値として、解像度別にブロック処理条件（第二のブロック処理条件を含む。請求項４〜請求項１５について、同様）の成立可否を判定してもよい。ブロック内の各画素の階調値の総和がより低解像度の第二の解像度用の第二の低密度側閾値に相当する値より低ドット密度側とすると、より低解像度の第二の解像度が取得されたときには変換処理が常にブロック単位となる一方、より高解像度の第一の解像度が取得されたときには変換処理がブロック単位またはブロックより小さい単位となる。すなわち、同総和が第二の低密度側閾値に相当する値から低ドット密度側になるにつれ、高解像度取得時よりも先に低解像度取得時で変換処理がブロックより小さい単位となることはない。従って、解像度に応じて処理単位を変更する場合に解像度に合わない処理単位で画像変換処理は行われず、画質を低下させずに画像変換処理をさらに効率よく行うことが可能となる。
【００１７】
また、請求項１０にかかる発明のように、ブロック内の階調値の総和に対応付けられた高密度側閾値を第一および第二の高密度側閾値とから構成し、第一の高密度側閾値を、ドットの形成密度に相当する値が第二の高密度側閾値を含めて当該第二の高密度側閾値から高ドット密度側の値として、解像度別にブロック処理条件の成立可否を判定してもよい。ブロック内の各画素の階調値の総和がより低解像度の第二の解像度用の第二の高密度側閾値に相当する値より高ドット密度側とすると、より低解像度の第二の解像度が取得されたときには変換処理が常にブロック単位となる一方、より高解像度の第一の解像度が取得されたときには変換処理がブロック単位またはブロックより小さい単位となる。すなわち、同総和が第二の高密度側閾値に相当する値から高ドット密度側になるにつれ、高解像度取得時よりも先に低解像度取得時で変換処理がブロックより小さい単位となることはない。従って、解像度に応じて処理単位を変更する場合に解像度に合わない処理単位で画像変換処理は行われず、画質を低下させずに画像変換処理をさらに効率よく行うことが可能となる。
【００１８】
むろん、請求項１１にかかる発明のように、第一の低密度側閾値はドットの形成密度に相当する値が第二の低密度側閾値と同じとされ、第一の高密度側閾値はドットの形成密度に相当する値が第二の高密度側閾値と同じとされてもよい。共通の低密度側閾値と高密度側閾値のみを記憶しておけばよくなるので、記憶させる閾値を少なくさせることができる。
【００１９】
むろん、上記判定手段は着目ブロック内の階調値の総和以外に基づいてブロック処理条件の成立可否を判定してもよく、上記処理単位情報には、上記ブロック内の各画素の階調値の最大値と最小値のいずれかまたは組み合わせに基づく値に対応付けられた閾値が含まれ、上記判定手段は、上記着目ブロック内の各画素の階調値の最大値と最小値のいずれかまたは組み合わせに基づく値を上記閾値と対比して同着目ブロックが上記ブロック処理条件を満たすか否かを判定する構成としてもよい。簡易な構成でブロック処理条件を満たすか否かを判定することが可能となる。また、着目ブロック内の各画素の階調値の最大値や最小値と総和との組み合わせに基づいてブロック処理条件を満たすか否かを判定するようにしてもよい。また、上記最大値や最小値と上記総和との加算値や、加重を異ならせて上記最大値や最小値と上記総和とを平均した値等に基づいてブロック処理条件を満たすか否かを判定するようにしてもよい。
【００２０】
むろん、ブロック処理条件を判定するために閾値を設けなくてもよく、上記処理単位情報は、上記ブロック内の画素の階調値に対応付けて上記処理単位を決定するための個別処理単位情報を格納した情報テーブルであり、上記判定手段は、上記着目ブロック内の画素の階調値に対応する上記個別処理単位情報を上記情報テーブルから読み出し、読み出した個別処理単位情報から上記着目ブロックが上記ブロック処理条件を満たすか否かを判定する構成としてもよい。簡易な構成ながら画質を低下させずに変換処理をさらに高速化させることができる。
【００２１】
ところで、上記変換処理区分設定は、上記解像度が大きくなるほど上記変換処理区分内の画素の数を増やす設定とされていると、上記変換処理手段は、画像データに対して設定された解像度が大きくなるほど上記変換処理区分内の画素の数を増やすことになる。また、解像度が大きくなるほど小ブロック内の画素数を増やしてもよい。解像度が大きくなるほどドット密度が大きくなるため、画像変換処理をまとめて行う画素の数を増やしても高画質を維持することができる。従って、高解像度であるときに高画質を維持しながら画像変換処理を高速化することができ、誤差拡散法による画像変換処理をさらに効率よく行うことが可能となる。
その際、上記変換処理区分設定は、上記変換処理区分内の画素の数を上記解像度に比例した数とする設定とされていると、上記変換処理手段は、上記取得された解像度が高くなるにつれて上記出力画像上に占める面積が同じとなる画素数の近隣した画素を上記変換処理区分とすることになる。また、小ブロックの画素数を解像度に比例した数としてもよい。すると、解像度が異なっても形成されるドットについて見た目の分解能が同じとなるので、高解像度であるときに高画質をより確実に維持することができ、画像変換処理をさらに効率よく行うことが可能となる。
ここで、変換処理区分やブロックの画素数は、ドットマトリクス状の画素の横成分と縦成分とを掛け合わせた値を基準として決定してもよいし、横成分または縦成分を基準として決定してもよい。
【００２２】
なお、上記変換処理区分設定は、上記解像度の縦横の比と一致した長方形状の領域の画素を上記変換処理区分とする設定とされていると、上記変換処理手段は、上記解像度の縦横の比と一致した長方形状の領域の画素を上記変換処理区分とすることになる。また、小ブロックも解像度の縦横の比と一致した長方形状の領域の画素としてもよい。すると、見た目の変換処理区分や小ブロックの大きさが縦横同じになるので、高画質を維持しながら変換処理を高速化させることができ、画像変換処理をさらに効率よく行うことが可能となる。
【００２３】
むろん、簡易な構成例として、上記変換処理区分設定は、ｎを正の整数として、ｎ×ｎ画素を上記変換処理区分とする設定としてもよい。小ブロックについても、ｎ’を正の整数として、ｎ’×ｎ’画素を上記小ブロックとする構成としてもよい。
【００２４】
なお、上述した変換手段は、様々な構成により階調誤差を周辺の未変換画素に拡散させることができる。例えば、周辺の未変換画素に対して階調誤差を略均等に拡散させると、簡易な構成にて誤差拡散を行うことができる。むろん、未変換画素に拡散する割合に異なる重みを持たせてもよい。変換手段が画素区分別に上記変換処理を行う際には、階調誤差を着目ブロック内の未変換画素に拡散させてもよいし、着目ブロック外の未変換画素に拡散させてもよい。
【００２５】
ところで、第二のブロック処理条件成立時に小ブロック単位で画像変換処理を行うことにより、解像度に関係なくきめ細やかに変換処理を行う処理単位を切り替えることが可能となる。そこで、請求項１６にかかる発明のように、上記記憶手段と判定手段と変換手段とを具備する構成としてもよい。
上記変換処理を行う画素の処理単位を決定するための処理単位情報が、小ブロックを含むブロックとする所定数の画素の階調値に対応付けられて記憶手段により記憶されている。判定手段は、近隣する上記所定数の画素を上記ブロックとし、画像データを変換する着目ブロック内の各画素の階調値を処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定する。同条件成立時、変換手段は、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。同条件不成立時、判定手段は、ブロック内の画素を区分して小ブロックとし、画像データを変換する着目小ブロック内の各画素の階調値を処理単位情報と対比して同着目小ブロックが所定の第二のブロック処理条件を満たすか否かを判定する。同条件成立時、変換手段は、着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行う。同条件不成立時、変換手段は、着目小ブロック内の画素を区分した画素区分別に上記変換処理を行うことが可能である。
このように、画像をドットマトリクス状の画素で多階調表現した画像データを入力して誤差拡散法によりドット形成の有無により表現した画像データに変換するにあたり、ブロック単位と小ブロック単位と小ブロックより小さい画素単位とをきめ細やかに切り替えながら画像データを変換することが可能となる。従って、画像データに応じた適切な大きさの処理単位にて変換処理を行うことが可能となるので、誤差拡散法を用いた画像変換処理を効率よく行うことが可能となる。
【００２６】
また、画像をドットマトリクス状の画素で多階調表現した画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換するとともに、同階調数変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる階調数変換処理を行う画像処理装置である場合、上述した判定手段は、解像度変換前の上記画像データを構成する画素の中から一または二以上の近隣した画素を処理区分とするとともに解像度変換後の上記画像データを構成する画素の中から同処理区分に対応する画素数の近隣した画素をブロックとし、上記画像データを階調数変換する着目ブロックに対応する処理区分内の画素の階調値と、同処理区分内の画素の階調値に対応付けられて上記階調数変換処理を行う画素の処理単位を決定するための処理単位情報とを対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定してもよい。
すなわち、ブロック処理条件が満たされる領域を高画質を維持可能な領域とすれば、高画質を維持可能な領域のみドットはブロック単位で形成されるので、画像変換処理を高速化させることができる。また、解像度変換前の画像データから着目ブロックに対応する処理区分内の画素の階調値を参照することにより、着目ブロック内の画素の階調値を参照する必要がなくなるので、誤差拡散法を用いた画像変換処理をさらに高速化させることが可能となる。
【００２７】
ところで、上述した画像処理装置は、単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としては各種の態様を含むものであって、適宜、変更可能である。
また、上述した画像処理を行う際の手法は、所定の手順に従って処理を進めていくうえで、その根底にはその手順に発明が存在する。従って、請求項１８、請求項１９にかかる発明のように、本発明は画像処理装置の制御方法としても適用可能であり、同様の作用、効果となる。
さらに、請求項２０、請求項２１にかかる発明のように、本発明は画像データに基づく画像の印刷制御を行う印刷制御手段を備える印刷制御装置としても適用可能であり、さらに、画像を印刷する印刷手段を備える印刷装置としても適用可能であり、同様の作用、効果となる。
【００２８】
本発明を実施しようとする際に、画像処理装置にて所定のプログラムを実行させる場合もあるので、請求項２２、請求項２３にかかる発明のように、本発明は画像処理装置の制御プログラムとしても適用可能であり、さらに、その制御プログラムを記録したコンピュータ読み取り可能な記録媒体としても適用可能であり、同様の作用、効果となる。ここで、上記記録媒体は、磁気記録媒体や光磁気記録媒体の他、今後開発されるいかなる記録媒体であってもよい。二次複製品等の複製段階も問わない。一部がハードウェアで実現される場合や、一部を記録媒体上に記録しておいて必要に応じて適宜読み込む場合も本発明の思想に含まれる。
なお、画像出力装置にて出力される画像の解像度は、本画像処理プログラムにて自動的に設定されたものであってもよいし、設定入力されるものであってもよい。また、解像度は、本プログラムを実現させるコンピュータ内で設定されていてもよいし、画像出力装置内で設定されていてもよい。
【００２９】
【発明の実施の形態】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）画像処理装置の構成の概略：
（２）画像処理装置の各種手段の構成：
（３）画像処理装置が行う処理の概略：
（４）画像処理装置が行う処理の詳細：
（５）第二の実施形態：
（６）第三の実施形態：
（７）まとめ：
【００３０】
（１）画像処理装置の構成の概略：
図１は、本発明の第一の実施形態にかかる画像処理装置を含む印刷装置（広義の印刷装置）１００の概略構成を示している。本印刷装置１００は、本発明にいう画像処理装置および印刷制御装置となるパーソナルコンピュータ（ＰＣ）１０と、画像出力装置（狭義の印刷装置）であるカラー印刷可能なインクジェットプリンタ２０とから構成されている。
ＰＣ１０では、演算処理の中枢をなすＣＰＵ１１がシステムバス１０ａを介してＰＣ全体の制御を行う。同バス１０ａには、ＲＯＭ１２、ＲＡＭ１３、各種ドライブ１４，１５、各種インターフェイス（Ｉ／Ｆ）１６〜１９等が接続されている。本発明にいう記憶手段は、ハードディスクドライブ１４ａとハードディスク（ＨＤ）１４とから構成される。本発明に用いられるコンピュータは、デスクトップ型ＰＣ、ノート型ＰＣ、モバイル対応ＰＣ、等、コンピュータとして一般的な構成を有していればよく、ＰＣに限定されるものではない。
【００３１】
ＨＤ１４にはオペレーティングシステム（ＯＳ）や画像情報等を作成可能なアプリケーションプログラム（ＡＰＬ）等が格納されており、これらのソフトウェアは、実行時にＣＰＵ１１によって適宜ＲＡＭ１３に転送される。また、ＨＤ１４は、複数段階の解像度を表す解像度情報１４ｂや複数段階の変換処理区分設定１４ｃや複数の閾値からなる処理単位情報１４ｄを画像処理プログラムとともに記憶している。
入力Ｉ／Ｆ１６には、キーボード１６ａやマウス１６ｂが操作用入力機器として接続されている。また、ＣＲＴＩ／Ｆ１７には、表示用のディスプレイ１７ａが接続されている。さらに、プリンタＩ／Ｆ１９には、例えばシリアルＩ／Ｆ接続によりプリンタ２０が接続されている。
【００３２】
なお、ＨＤ１４は画像処理プログラムを記録した媒体となるが、本プログラムを格納可能な記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク、不揮発性メモリ等であってもよい。さらに、バス１０ａに接続されたモデム等の通信Ｉ／Ｆ１８をインターネット網に接続し、所定のサーバから本プログラムをダウンロードして実行することも可能である。
【００３３】
プリンタ２０は、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）、の計４色（複数の要素色）の色インクを使用するものとする。むろん、６色、７色、等、４色以外のインクを使用するプリンタを採用してもよい。また、インク通路内に泡を発生させてインクを吐出するバブル方式のプリンタや、複数色のカラートナーを使用するレーザープリンタ等、種々の印刷装置を採用可能である。
図２は、変換後の画像データに基づく画像を印刷する印刷手段であるプリンタ２０のブロック構成をＰＣ１０とともに示している。プリンタ２０では、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＡＳＩＣ２４、コントロールＩＣ２５、通信Ｉ／Ｏ２６、Ｉ／Ｆ２７がバス２０ａを介して接続されている。
【００３４】
通信Ｉ／Ｏ２６はＰＣのプリンタＩ／Ｆ１９と接続されており、プリンタ２０は通信Ｉ／Ｏ２６を介してＰＣ１０から送信されるＣＹＭＫに変換された画像のデータやページ記述言語等からなる印刷ジョブを受信する。また、ＰＣ１０から各種要求を受信したとき、通信Ｉ／Ｏ２６は対応する情報をＰＣ１０に出力する。印刷時の解像度として７２０  ×３６０ｄｐｉ、１４４０×７２０ｄｐｉ、２８８０×１４４０ｄｐｉ  等を選択可能となっており、ＰＣ１０から通信Ｉ／Ｏ２６を介して解像度の選択情報を入手してＲＡＭ２３に記憶しておき、解像度に応じたドット単位で印刷を行うことが可能となっている。
【００３５】
カートリッジホルダ２８にはＣＹＭＫのインクカートリッジ２８ａ〜ｄが装着されており、インクカートリッジ２８ａ〜ｄ内の各インクが色別に図示しない印刷ヘッドに供給されるようになっている。ＡＳＩＣ２４は、ＣＰＵ２１と所定の信号を送受信しつつヘッド駆動部２９に対してＣＹＭＫデータに基づく印加電圧データを出力する。同ヘッド駆動部２９は、同印加電圧データに基づいて印刷ヘッドに内蔵されたピエゾ素子への印加電圧パターンを生成し、印刷ヘッドに４色のインクを解像度に応じたドット単位で吐出させる。印刷ヘッドのインク吐出面には、４色のインクを吐出する４組のノズル列が印刷ヘッドの主走査方向に並ぶように形成され、ノズル列のそれぞれは複数のノズルが副走査方向に一定の間隔で直線状に配置されている。
Ｉ／Ｆ２７に接続されたキャリッジ機構２７ａや紙送り機構２７ｂは、印刷ヘッドを主走査させたり、適宜改ページ動作を行いながらメディアを順次送り出して副走査を行ったりする。そして、ＣＰＵ２１が、ＲＡＭ２３をワークエリアとして利用しながらＲＯＭ２２に書き込まれたプログラムに従って各部を制御する。
【００３６】
ＰＣ１０では、以上のハードウェアを基礎としてバイオスが実行され、その上層にてＯＳとＡＰＬとが実行される。ＯＳには、プリンタＩ／Ｆ１９を制御するプリンタドライバ等の各種のドライバ類が組み込まれ、ＯＳの一部となってハードウェアの制御を実行する。プリンタドライバは、プリンタＩ／Ｆ１９を介してプリンタ２０と双方向の通信を行うことが可能であり、ＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ  ）等が組み込まれたＯＳを介してＡＰＬから画像データを受け取って印刷ジョブを作成し、プリンタ２０に送出する。本画像処理プログラムは同プリンタドライバから構成されるが、ＡＰＬにより構成してもよい。
【００３７】
（２）画像処理装置の各種手段の構成：
図３は、上記ハードウェアと上記プリンタドライバとが協働して構築する画像処理装置の構成を模式的に示している。プリンタドライバは、各種モジュールを有しており、機能制御モジュールの制御に基づいて所定の機能を実現しつつ連携動作して画像データを変換することが可能である。そして、プリンタドライバの各モジュールに対応して、画像処理装置の各部が構成される。
画像入手部は、ディスプレイに表示する解像度とプリンタに出力する解像度とが設定された画像データを入力する。同画像データは、画像をドットマトリクス状の多数の画素で多階調表現したデータであり、様々な種類がある。図ではｓＲＧＢ色空間で定義されるＲＧＢから構成された画像データを示しているが、ＹＵＶ表色系における輝度（Ｙ成分）、Ｂの色差（Ｕ成分）、Ｒの色差（Ｖ成分）から構成された画像データ等でもよい。画像データの各成分も、例えば、２５６階調、１０２４階調等、様々な階調数とすることができる。ディスプレイに表示する解像度は、ディスプレイの性能に合わせたデフォルトの設定（例えば３６０×３６０ｄｐｉ等）とすることができる。画像データに対してプリンタに出力する解像度を設定するには、例えば、図示しない所定の印刷インターフェイス画面を表示し、所定の解像度選択欄にて解像度の情報の操作入力を受け付け、入力された解像度の情報を同画像データに付加することにより設定することができる。また、ＡＰＬが画像データに対して解像度を設定する機能を有していれば、そのＡＰＬから解像度が設定された画像データを入手することができる。
解像度変換処理部は、記憶手段Ａ３を構成するＨＤ１４に記憶された解像度情報１４ｂを参照しながら、プリンタ２０の解像度に合わせて上記画像データに対して設定された解像度を変換する。その際、ｓＲＧＢやＹＵＶ表色系等の定義に従って、画像データを広域ＲＧＢ色空間内のＲＧＢ各２５６階調（０〜２５５の整数値）の階調データからなるＲＧＢデータに変換する。色変換処理部は、ＲＧＢデータをＣＭＹＫ各２５６階調（０〜２５５の整数値）の階調データからなるＣＭＹＫデータに色変換する。同ＣＭＹＫデータは、色インクの使用量に対応する（略比例する）階調値とされているので、階調値が小さいほどドットの形成密度が小さくなって明度が高くなり、階調値が大きいほどドットの形成密度が大きくなって明度が低くなる。階調数変換処理部は、２５６階調のＣＭＹＫデータを、ＣＭＹＫ各２階調でドット形成の有無により画像出力装置の出力画像を表現する画像データ（以下、２値化データとも記載）に階調数変換する。インターレース処理部（印刷制御手段）は、プリンタ２０の印刷ヘッドの副走査に合わせて２値化データを並び替える処理を行い、並び替え後の２値化データをプリンタ２０に送出することにより、階調数変換後の画像データに対応する画像を印刷させる制御を行う。すると、プリンタ２０は、２値化データを入手し、同２値化データに基づいて印刷用紙（メディア）上に色インクのドットを形成し、ＲＧＢデータに対応するカラー画像を印刷する。
【００３８】
本画像処理装置Ａは、階調数変換部を構成する手段Ａ１〜Ａ３を備えている。
解像度取得手段Ａ１は、解像度変換処理部に含まれており、プリンタ２０に対して設定する解像度を取得する。同解像度は予め複数段階設けられており、これらの解像度のうち解像度変換後の画像データに対して設定された解像度を取得する。変換処理手段Ａ２は、取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて変換対象として画像変換処理を同変換処理区分単位で実行することが可能である。ここで、変換処理区分設定は変換処理をまとめて行う画素の領域を表す設定であり、記憶手段Ａ３が複数段階の解像度に対応させて複数段階とされた上記変換処理区分設定１４ｃを記憶している。解像度取得手段Ａ１は、複数段階の変換処理区分設定のうち、取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とする。
【００３９】
その際、取得された解像度が大きくなるほど変換処理区分内の画素の数を増やすことにしている。例えば、比較的低解像度である７２０×３６０ｄｐｉ（所定の第二の解像度）であるとき、近隣した２×２画素を変換処理区分とし、ある変換処理区分Ｂ１に着目して同変換処理区分Ｂ１内の画像データをまとめて変換することが可能となっている。一方、比較的高解像度である１４４０×７２０ｄｐｉ（７２０×３６０ｄｐｉに対する所定の第一の解像度）であるとき、４×４画素を変換処理区分とし、ある変換処理区分Ｂ２に着目して同変換処理区分Ｂ２内の画像データをまとめて変換することが可能となっている。図では、着目された変換処理区分Ｂ１，Ｂ２を太線で囲っている。なお、解像度が比較的小さいとき、１画素のみを変換処理区分とし、画素別に着目画素の画像データを変換してもよい。
以下、本明細書において、７２０×３６０ｄｐｉを低解像度と呼び、１４４０×７２０ｄｐｉを高解像度と呼び、２８８０×１４４０ｄｐｉ（所定の第一の解像度）の場合を超高解像度（高解像度の一種でもある）と呼ぶことにする。
【００４０】
図４は、画像データの設定が低解像度であるときに変換処理手段Ａ２が行う処理を模式的に示している。
変換処理手段Ａ２は判定手段Ａ２１と変換手段Ａ２２，Ａ２３とを備えており、同判定手段Ａ２１は上記取得された解像度に対応する変換処理区分設定で近隣する２×２画素をブロック（変換処理区分の一種）とし、画像データを変換する着目ブロック内の各画素の階調値のみに基づいて所定のブロック処理条件を満たすか否かを判定する。ここで、記憶手段Ａ１は上記処理単位情報１４ｄを記憶しており、判定手段Ａ２１は、着目ブロックＢ１内の各画素の階調値のみと処理単位情報１４ｄとを対比してブロック処理条件の成立の可否を判定する。同処理単位情報１４ｄは、ブロックとする領域の画素の階調値に対応付けられた情報であるとともに、誤差拡散法による画像変換処理を行う画素の処理単位を決定可能とする情報である。
着目ブロックＢ１が上記ブロック処理条件を満たすと判定されると、第一変換手段Ａ２２により着目ブロックＢ１内の画素の画像データが変換され、着目ブロックＢ１が上記ブロック処理条件を満たさないと判定されると、第二変換手段Ａ２３により着目ブロックＢ１内の画素の画像データが変換される。
第一変換手段Ａ２２は、着目ブロックＢ１内の各画素の階調値と拡散されてきた階調誤差である拡散誤差とに基づいて、着目ブロックＢ１全体の階調誤差を着目ブロックＢ１外の他のブロック内の未変換画素に拡散させながら着目ブロックＢ１内の画素の画像データをまとめて変換する。すなわち、ブロック単位の画像変換処理を行う。一方、第二変換手段Ａ２３は、着目ブロックＢ１内の画素を区分した画素区分別に画像変換処理を実行することが可能となっている。すなわち、ブロック全体では画素をまとめずにブロックより小さい１画素単位の画像変換処理を行う。なお、図では着目ブロックＢ３内の着目画素Ｕ１を太線で囲っている。
【００４１】
図５は、画像データの設定が高解像度であるときに変換処理手段Ａ２が行う処理を模式的に示している。
判定手段Ａ２１は、低解像度の場合と同様の処理により４×４画素の着目ブロックＢ４が所定のブロック処理条件を満たすか否かを判定する。着目ブロックＢ４がブロック処理条件を満たすと判定されると、第一変換手段Ａ２２により着目ブロックＢ４内の画素の画像データが変換されるが、着目ブロックＢ４がブロック処理条件を満たさないと判定されると、着目ブロックＢ４内の画素を２×２画素毎に区分して小ブロック（さらに小さいブロック）とし、着目された小ブロックＢ５内の各画素の階調値に基づいて所定の第二のブロック処理条件を満たすか否かを判定する。そして、当該条件が満たされると判定されると、第一変換手段Ａ２２により小ブロックＢ５内の画素の画像データが変換され、同条件が満たされないと判定されると、第二変換手段Ａ２３により小ブロックＢ５内の画素の画像データが変換される。なお、図では着目小ブロックＢ５内の着目画素Ｕ２を太線で囲っている。
このように、取得された解像度が高解像度（第一の解像度）であるときにのみ第二のブロック処理条件の成立可否が判定されて小ブロック単位での画像変換処理が行われるようになっており、取得された解像度が低解像度（第二の解像度）であるときには第二のブロック処理条件の成立可否が判定されず小ブロック単位での画像変換処理は行われない。
なお、着目ブロック内で区分される小ブロックは、略均等に区分されたものであってもよいし、不均等に区分されたものであってもよい。
【００４２】
上記変換処理区分設定１４ｃと処理単位情報１４ｄは、本画像処理プログラムに含まれており、同プログラムとともにＨＤ１４に記憶されている。
図６は、画像データに設定された解像度と上記変換処理区分設定との対応関係を示している。図に示すように、７２０×３６０ｄｐｉのとき変換処理区分設定は２×２画素であり、この場合、小ブロック単位での画像変換処理を行わない設定としてある。本実施形態では、変換処理区分内の画素の数を解像度に比例した数とする変換処理区分設定としてあり、１４４０×７２０ｄｐｉのとき変換処理区分設定は４×４画素と大きくしてあり、この場合、１段階のみの小ブロック単位での画像変換処理を行う設定としてある。また、２８８０×１４４０ｄｐｉのとき変換処理区分設定は８×８画素とさらに大きくしてあり、この場合、２段階の小ブロック単位での画像変換処理を行う設定としてある。なお、変換処理区分は解像度設定が高くなるにつれてプリンタの出力画像上に占める面積が同じとなる画素数の近隣した画素から構成されているので、解像度が異なっても形成されるドットについて見た目の分解能が同じとなる。従って、高解像度であるときに高画質をより確実に維持することができ、画像変換処理を効率よく行うことが可能となる。
【００４３】
本実施形態では、処理単位を決定するための処理単位情報１４ｄを複数の閾値から構成するとともに、これらの閾値を着目ブロック内の各画素の階調値の総和Ｓ（ブロック内の階調値）に対応付けている。
図７と図８は、上記閾値とブロック内の階調値の平均ｘとの対応関係を示している。なお、同平均ｘはドットの形成密度に相当する値であり、上記閾値は、ブロック内の階調値の平均ｘに対応付けられると、上記総和Ｓに対応付けられていることにもなる。
処理単位情報Ｔ１の閾値には、第二の解像度（低解像度）に対応するブロックの階調値の平均に対応付けられた第二の低密度側閾値ｄ１１と第二の高密度側閾値ｄ１２、第一の解像度（高解像度）に対応するブロックの階調値の平均ｘに対応付けられた第一の低密度側閾値ｄ２１，ｄ２２，ｄ３１〜ｄ３３と第一の高密度側閾値ｄ２３，ｄ２４，ｄ３４〜ｄ３６がある。ここで、ｄ２２，ｄ３２，ｄ３３は小ブロック用の低密度側閾値であり、ｄ２３，ｄ３４，ｄ３５は小ブロック用の高密度側閾値である。
これらの閾値は、０＜ｄ１１＜ｄ１２＜２５５、０＜ｄ２１＜ｄ２２＜ｄ２３＜ｄ２４＜２５５、０＜ｄ３１＜ｄ３２＜ｄ３３＜ｄ３４＜ｄ３５＜ｄ３６＜２５５の関係がある。ここで、ｘ＝０の側がドットの形成密度が小さい低ドット密度側（高明度側）であり、ｘ＝２５５の側がドットの形成密度が大きい高ドット密度側（低明度側）である。また、ブロック内の階調値の平均がとりうる範囲の中間から閾値ｄ１１，ｄ２１，ｄ２２，ｄ３１〜ｄ３３を低ドット密度側にするとともに閾値ｄ１２，ｄ２３，ｄ２４，ｄ３４〜ｄ３６を高ドット密度側としており、平均ｘの中間値２５５／２を基準としてｄ１１＜２５５／２＜ｄ１２、ｄ２２＜２５５／２＜ｄ２３、ｄ３３＜２５５／２＜ｄ３４としてある。
【００４４】
例えば１４４０×７２０ｄｐｉの場合において、平均ｘが閾値ｄ２１から低ドット密度側であるとき（図ではｘ≦ｄ２１）、ドットの形成密度が小さい所定の低ドット密度領域であり、所定のブロック処理条件成立として平均ｘに４×４＝１６画素のブロックの処理単位を対応付けている。低ドット密度領域は、画像中で明度が高い所定の高明度領域でもある。また、平均ｘが閾値ｄ２４から高ドット密度側であるとき（図ではｘ＞ｄ２４）、ドットの形成密度が大きい所定の高ドット密度領域であり、所定のブロック処理条件成立として平均ｘに４×４＝１６画素のブロックの処理単位を対応付けている。高ドット密度領域は、画像中で明度が低い所定の低明度領域でもある。このように、ブロック処理条件は、平均ｘ（総和Ｓと読み替え可。以下、同様）のとりうる範囲の中から所定の範囲を持っており、スポット的な値のみ成立する条件とはされていない。
平均ｘが閾値ｄ２２から高ドット密度側かつ閾値ｄ２３から低ドット密度側であるとき（図ではｄ２２＜ｘ≦ｄ２３）、ドットの形成密度が中間的な所定の中間調領域であり、所定の画素区分別処理条件成立として総和Ｓに１画素（画素区分）の処理単位を対応付けている。同中間調領域は、画像の明度の中間的な所定の中間調領域でもある。画素区分別処理条件も、平均ｘのとりうる範囲の中から所定の範囲を持っている。
【００４５】
平均ｘが閾値ｄ２１から高ドット密度側かつ閾値ｄ２２から低ドット密度側であるとき（図ではｄ２１＜ｘ≦ｄ２２）、上記低ドット密度領域と中間調領域との間の中間的な所定の低ドット密度側移行領域であり、所定の第二のブロック処理条件成立として平均ｘに２×２＝４画素の小ブロックを対応付けている。平均ｘが閾値ｄ２３から高ドット密度側かつ閾値ｄ２４から低ドット密度側であるとき（図ではｄ２３＜Ｓ≦ｄ２４）、上記高ドット密度領域と中間調領域との間の中間的な所定の高ドット密度側移行領域であり、所定の第二のブロック処理条件成立として平均ｘに２×２＝４画素のブロックを対応付けている。第二のブロック処理条件も、平均ｘのとりうる範囲の中から所定の範囲を持っている。
そして、変換手段Ａ３は、着目小ブロックが第二のブロック処理条件を満たすと判定されたときに着目小ブロック単位で画像変換処理を行う。
【００４６】
７２０×３６０ｄｐｉの場合、第二のブロック処理条件が成立する領域は設けられておらず、処理単位情報は、ブロック処理条件が成立する０≦ｘ≦ｄ１１またはｄ１２＜ｘ≦２５５のときに処理単位を４画素とし、画素区分別処理条件が成立するｄ１１＜ｘ≦ｄ１２のときに処理単位を１画素とする情報とされている。２８８０×１４４０ｄｐｉの場合、第二のブロック処理条件が成立する領域が２段階設けられ、処理単位情報は、ブロック処理条件が成立する０≦ｘ≦ｄ３１またはｄ３６＜ｘ≦２５５のときに処理単位を８×８＝６４画素とし、第二のブロック処理条件が成立するｄ３１＜ｘ≦ｄ３２またはｄ３５＜ｘ≦ｄ３６のときに処理単位を１６画素とし、別の第二のブロック処理条件が成立するｄ３２＜ｘ≦ｄ３３またはｄ３４＜ｘ≦ｄ３５のときに処理単位を４画素とし、画素区分別処理条件が成立するｄ３３＜ｘ≦ｄ３４のときに処理単位を１画素とする情報とされている。
【００４７】
なお、上記閾値は、画像データの種類等に応じて適宜決定される値である。本実施形態では、以下の関係を満たすように閾値を決めている。
例えば１４４０×７２０ｄｐｉの場合において、閾値ｄ２１，ｄ２４については、２５５−ｄ２４＞ｄ２１−０として、上記平均ｘがとりうる範囲のうち閾値ｄ２４から高ドット密度側の範囲が閾値ｄ２１から低ドット密度領域側の範囲より広くしている。また、小ブロック用の閾値ｄ２２，ｄ２３についても、２５５−ｄ２３＞ｄ２２−０として、上記平均ｘがとりうる範囲のうち閾値ｄ２３から高ドット密度側の範囲が閾値ｄ２２から低ドット密度領域側の範囲より広くしている。
図９の上段に示すように、プリンタ２０が形成する１ドットの面積は、同プリンタ２０に設定された１画素の面積より大きくされている。図の下段に示すように、低ドット密度領域でドットを形成する割合と高ドット密度領域でドットを形成しない割合とが同じ（図の例では、１／８）であるとすると、高ドット密度領域でドットが形成されていない領域Ｒ２の面積は、低ドット密度領域で形成されたドットが占める領域Ｒ１の面積よりも小さくなる。その結果、低ドット密度領域よりも高ドット密度領域のほうがドットの分解能の低下が目立たない。従って、２５５−ｄ２４＞ｄ２１−０、２５５−ｄ２３＞ｄ２２−０となるように閾値ｄ２４，ｄ２３を設定しても、画質を低下させずに誤差拡散法による画像変換処理をさらに高速化させることができる。
例えば、１より小さい正の係数Ｋ１，Ｋ２を用いて、Ｋ１・（２５５−ｄ２４）＝ｄ２１−０、Ｋ２・（２５５−ｄ２３）＝ｄ２２−０となるように閾値ｄ２１〜ｄ２４を設定すればよい。Ｋ１，Ｋ２は、０．９，０．８等、様々な値とすることができる。
むろん、１ドットの面積が１画素の面積とほぼ同じであれば、２５５−ｄ２４＝ｄ２１−０、２５５−ｄ２３＝ｄ２２−０となるように閾値ｄ２４，ｄ２３を設定してもよい。すると、低密度側閾値と高密度側閾値のいずれかのみを記憶しておけばよくなるので、記憶させる閾値を少なくさせることができ、所望の画質の画像を得るために処理単位情報とする閾値を調整する際に利便性が向上する。
以上のことは、７２０×３６０ｄｐｉ、２８８０×１４４０ｄｐｉ用の閾値についても言える。
【００４８】
ここで、ｄ３１≦ｄ２１≦ｄ１１と、第一の低密度側閾値は、ドットの形成密度に相当する値が第二の低密度側閾値を含めて当該第二の低密度側閾値から低ドット密度側の値とされている。また、ｄ１２≦ｄ２４≦ｄ３６と、第一の高密度側閾値は、ドットの形成密度に相当する値が第二の高密度側閾値を含めて当該第二の高密度側閾値から高ドット密度側の値とされている。なお、１４４０×７２０ｄｐｉを２８８０×１４４０ｄｐｉ（第一の解像度）に対する第二の解像度とすることもでき、この場合、ｄ３２≦ｄ２２と、小ブロック用の第一の低密度側閾値は、ドットの形成密度に相当する値が小ブロック用の第二の低密度側閾値を含めて当該第二の低密度側閾値から低ドット密度側の値とされていることになる。また、ｄ２３≦ｄ３５と、小ブロック用の第一の高密度側閾値は、ドットの形成密度に相当する値が小ブロック用の第二の高密度側閾値を含めて当該第二の高密度側閾値から高ドット密度側の値とされていることになる。
例えば、図８に示す平均ｘの軸上で、高解像度の場合に１６画素単位の変換処理と４画素単位の変換処理とを切り替える閾値ｄ２１，ｄ２４の位置は、低解像度の場合に４画素単位の変換処理と１画素単位の変換処理とを切り替える閾値ｄ１１，ｄ１２の位置を含めて同位置から外側（それぞれ低ドット密度側、高ドット密度側）とされている。なお、後述する図１２に示すように、高解像度の場合の１６画素、４画素の面積は、それぞれ低解像度の場合の４画素、１画素の面積と同じである。その結果、高解像度の場合にまとめられる４×４画素のブロックの階調値の平均値と低解像度の場合にまとめられる２×２画素のブロックの階調値の平均値とが同じとなる条件、すなわち、インク使用量が同じとなる条件のもとで、高解像度の場合におけるプリンタの出力画像上に占める処理単位の面積は低解像度の場合における処理単位の面積と同じかまたは小さくなる。
変換処理は解像度が高くなるほど単位面積当たりの画素数が増えるため処理時間がかかることになるため、ユーザは高解像度であるときの画質は低解像度における画質と同等以上であることを期待する。上述したように各種閾値を設定することにより、解像度間で画質の逆転現象が起きないように変換処理を選択することになり、階調値のとりうる階調領域の全領域にわたって高解像度であるときの画質を低解像度における画質以上にさせることができる。従って、解像度に応じて処理単位を変更する場合に解像度に合わない処理単位で画像変換処理は行われず、画質を低下させずに画像変換処理をさらに効率よく行うことが可能となる。
なお、上述した各種閾値は、ブロックの階調値の平均または総和にかかわらず一定値とされてもよいし、ブロックの階調値の平均または総和に応じて変化させるようにしてもよい。
【００４９】
図１０は、本画像処理装置が行う処理を示すフローチャートである。本フローは、ＰＣ１０のＣＰＵ１１によって行われるものである。
ＡＰＬに備えられたＡＰＬ用印刷機能にてディスプレイ１７ａに表示される印刷実行メニューが選択されると、画像処理プログラムが起動し、画像入力部にてＲＧＢに基づく画像データを入手する（ステップＳ１０５。以下、「ステップ」の記載を省略）。その際、画像を印刷させる解像度を選択させる等の解像度の選択に関する情報が含まれていれば、その情報も入手する。
例えば、ＡＰＬがＨＤ１４に記憶された解像度情報１４ｂを参照してプリンタにて印刷可能な複数段階の解像度を表示し、これらの解像度の中からいずれかの解像度を選択する操作入力を受け付け、選択入力された解像度を画像データに含める処理を行うことにより、画像データに上記解像度を選択させる情報を含めることができる。
【００５０】
次に、解像度変換処理部にて、プリンタ２０の解像度に合わせて上記画像データに対して設定された解像度を取得する（Ｓ１１０）。解像度を取得する際、ＡＰＬから解像度を選択させる情報が含まれていれば、その情報に対応する解像度を取得する。解像度を選択させる情報が含まれていなければ、デフォルトの解像度（例えば、７２０×３６０ｄｐｉ）を取得する。また、図示しない印刷インターフェイス画面を表示し、同画面に設けられた印刷モードや印刷媒体の種類を選択する欄にて各種選択入力を受け付け、ＨＤ１４に記憶された解像度情報１４ｂを参照しながらプリンタにて印刷可能な複数段階の解像度のうち選択入力された内容に対応する解像度を画像データに対して設定しつつ同解像度を取得する処理を行うことにより、画像データに対して設定された解像度を取得することが可能となっている。むろん、同解像度情報１４ｂを参照してプリンタにて印刷可能な複数段階の解像度を表示し、これらの解像度の中からいずれかの解像度を選択する操作入力を受け付け、選択入力された解像度を画像データに対して設定しつつ同解像度を取得する処理を行うことにより、画像データに対して設定された解像度を取得してもよい。
さらに、入手した画像データの解像度をプリンタ２０が印刷するための解像度に解像度変換する、解像度変換処理を行う（Ｓ１１５）。本実施形態では、解像度変換後の画像データをＲＧＢ各２５６階調（０〜２５５の整数値）からなるＲＧＢデータとするものとして説明する。ここで、階調値が大きくなるほどＲＧＢ各成分が大きくなり、ＲＧＢ全ての階調値が０であるときはほぼブラックに相当し、ＲＧＢ全ての階調値が２５５であるときはインクのドットが形成されないことになる。なお、入手した画像データの解像度が高い場合には、例えば一定の割合でデータを間引くことにより解像度を変換し、入手した画像データの解像度が低い場合には、例えば線形補間により画像データを補間して解像度を変換して、解像度変換後のＲＧＢデータとする。
【００５１】
さらに、色変換処理部にて、ＬＵＴ（ルックアップテーブル）と呼ばれる色変換テーブルを参照して、ＲＧＢデータをＣＭＹＫの色インクのそれぞれに対応したＣＹＭＫデータに変換する、色変換処理を行う（Ｓ１２０）。本実施形態のＬＵＴは、２５６階調のＲＧＢそれぞれの階調値をＣＭＹＫそれぞれについて２５６階調とされた階調値に対応させたテーブルであり、補間演算を前提として、例えば、１７の３乗の格子点に対応した大量のデータを備えている。変換されたＣＭＹＫデータも、画像をドットマトリクス状の画素で多階調表現した画像データであり、本実施形態ではＣＭＹＫ各２５６階調（０〜２５５の整数値）からなるデータであるとして説明する。同ＣＭＹＫデータは、階調値が大きくなるほどＣＭＹＫ各成分が大きくなり、印刷媒体上に形成されるドット密度は大きくなる。
【００５２】
そして、階調数変換処理部にて、２５６階調のＣＭＹＫからなる画像データをドット形成の有無により表現した画像データに変換する、階調数変換処理を行う（Ｓ１２５）。その際、いわゆる誤差拡散法により、各画素の階調誤差を他の未変換画素に拡散させながら画像データを変換する。
階調数変換前のＣＭＹＫデータは２５６階調であるが、プリンタ２０は色インク別にドットを形成するか否かにより印刷を行うため、本実施形態ではプリンタ２０に送出するデータを「ドットを形成する」意味の階調値「２５５」または「ドットを形成しない」意味の階調値「０」のいずれかに変換して２値化データを生成するようにしている。実際には２値化データを１ビットで表現しているため、階調値「２５５」をビットオンに対応させ、階調値「０」をビットオフに対応させた２値化データを生成する。以下、便宜上「２５５」と「０」の２値に変換するものとして説明する。
詳しくは後述するが、所定の処理条件に応じてブロック単位で階調数変換処理を行うようにしており、高画質が維持されながら画像変換処理は高速化されるようになっている。
【００５３】
その後、インターレース処理部にて、プリンタ２０のドットの形成順序を考慮しながら２値化データを並べ替えるインターレース処理を行う（Ｓ１３０）。そして、解像度変換処理部にて取得された解像度の選択情報とともに、最終的に得られた画像データをプリンタ２０に対して送出し（Ｓ１３５）、本フローを終了する。すると、プリンタ２０は、解像度の選択情報を入手するとともに同画像データを入手し、印刷ヘッドを駆動して解像度に対応した各色インクのドットを印刷媒体上に形成する。その結果、ＡＰＬからの画像データに対応したカラー画像が印刷用紙に印刷されることになる。
【００５４】
（３）画像処理装置が行う処理の概略：
図１１は、本画像処理装置の変換処理手段が行う階調数変換処理をフローチャートにより示している。なお、変換前の画像データはＣＭＹＫ別とされた階調値から構成されているので、図のフローはＣＭＹＫ別に行われることになるが、フローをわかりやすくするため図示を省略している。また、変換前の画像データはＲＡＭ１３に記憶されているとともに、各画素から拡散させた階調誤差を記憶する領域や変換した画像データを記憶する領域もＲＡＭ１３に設けられている。
まず、上記Ｓ１１０にて取得された解像度に応じて処理を分岐させる（Ｓ２０２）。本実施形態では、低解像度である７２０×３６０ｄｐｉのときにＳ２０４に進み、高解像度である１４４０×７２０ｄｐｉのときにＳ２１２に進み、超高解像度である２８８０×１４４０ｄｐｉのときにＳ２２０に進むようにしている。
分岐後の各処理の最初に、処理単位情報をＲＡＭ１３内の所定領域に格納する等の各種初期設定を行う（Ｓ２０４，Ｓ２１２，Ｓ２２０）。そして、低解像度の場合に近隣した２×２画素をまとめて変換処理区分であるブロックとし、高解像度の場合に近隣した４×４画素をまとめて変換処理区分であるブロックとし、超高解像度の場合に近隣した８×８画素をまとめて変換処理区分であるブロックとして、画像データを変換する着目ブロックの位置を設定する（Ｓ２０６，Ｓ２１４，Ｓ２２２）。
【００５５】
図１２は、着目ブロックを模式的に示している。ここで、図の上下方向を縦方向、左右方向を横方向とする。実際には縦方向の解像度に対し横方向の解像度は２倍であるが、各画素Ｕ０１〜Ｕ０３を正方形で図示している。また、異なる解像度間で出力画像上の面積が同じとなるように、各画素Ｕ０１〜Ｕ０３と着目ブロックＢ０１〜Ｂ０３を描いている。図に示すように、高解像度の場合の１画素の面積は低解像度の場合の１画素の面積の４分の１であり、超高解像度の場合の１画素の面積は低解像度の場合の１画素の面積の１６分の１である。
階調数変換前のＣＭＹＫデータは、画像をドットマトリクス状の画素で２５６階調表現したＣＭＹＫ別のデータである。そして、全画素について着目ブロックＢ０１〜Ｂ０３と同じ大きさのブロックとし、そのうちのいずれかのブロックを着目ブロックとして設定して、ブロック全体またはブロックを区分したさらに小さいブロックまたは画素別に誤差拡散法による変換処理を行う。本実施形態では、多数の画素を区分する多数のブロックが図に示す着目ブロックＢ０１〜Ｂ０３の単位で上下左右方向に整然と並んでおり、画像データの変換処理の順序は、左上のブロックから開始して順番に右上のブロックまでとし、その後一つずつ下の左端のブロックから順番に右端のブロックまでとして、最後に右下のブロックとしている。むろん、変換処理の順序は、適宜変更可能であり、解像度に応じて異なる順序とすることも可能である。
なお、ブロックは正方形状である以外にも、例えば、長方形状、横１列に並んだ複数の画素のような直線状、ある基準画素と同基準画素の右隣と左下と下隣の画素の計４画素とをまとめた形状等でもよい。
【００５６】
着目ブロックの位置を設定すると、低解像度の場合には２×２画素、高解像度の場合には４×４画素、超高解像度の場合には８×８画素、の着目ブロック内で誤差拡散法を用いて解像度別の変換処理を行う（Ｓ２０８，Ｓ２１６，Ｓ２２４）。
解像度別の変換処理では、画質を低下させないように、着目ブロックが画像中で明度の高いハイライト領域すなわち高明度領域にあるのか、明度の低い低明度領域にあるのか、明度の中間的な中間調領域にあるのか、ハイライト領域と中間調領域との間の領域にあるのか、中間調領域と低明度領域との間の領域にあるのか等を判定し、判定結果に応じた変換処理を行う。例えば、低解像度の場合には、変換処理の処理単位を２×２画素の着目ブロックＢ０１全体とするか、画素Ｕ０１別とするか、を切り替えながら誤差拡散法による変換処理を行う。高解像度の場合には、処理単位を４×４画素の着目ブロックＢ０２全体、着目ブロックＢ０２内の画素を区分してさらに小さい２×２画素のブロックＢ０４、画素Ｕ０２別、とするかを切り替えながら変換処理を行う。超高解像度の場合には、処理単位を８×８画素の着目ブロックＢ０３全体、着目ブロックＢ０３内の画素を区分してさらに小さい４×４画素のブロックＢ０５、同ブロックＢ０５の画素を区分してさらに小さい２×２画素のブロックＢ０６、画素Ｕ０３別、とするかを切り替えながら変換処理を行う。
【００５７】
解像度別の変換処理を行うと、画像データの全ブロックについて変換処理を終了したか否かを判断する（Ｓ２１０，Ｓ２１８，Ｓ２２６）。変換処理を行っていないブロックがある場合、低解像度の場合にはＳ２０６に戻り、高解像度の場合にはＳ２１４に戻り、超高解像度の場合にはＳ２２２に戻り、前回の着目ブロックの右側にブロックがあるときには当該ブロックを着目ブロックの位置として設定し、前回の着目ブロックの右側にブロックがないときには一つ下の左端のブロックを着目ブロックとして設定する。そして、全ブロックについて変換処理を終了するまで繰り返し解像度別の変換処理を行う。
このようにして、複数段階の変換処理区分設定のうち解像度取得手段にて取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて変換対象として画像変換処理を同変換処理区分単位で実行可能としている。
その後、上記Ｓ１３０のインターレース処理が行われ、プリンタ２０に対してドット形成の有無により表現した画像データが送出され、画像データに対して設定された解像度にて画像を印刷させることになる。
【００５８】
図１３は、２×２画素のブロック単位で誤差拡散を行いながら画像データを変換する様子を説明する説明図である。なお、変換前の画像データはＲＡＭ１３内の所定領域に格納されているとともに、変換後の画像データはＲＡＭ１３内の別の所定領域に格納されることになるが、わかりやすく説明するため、変換処理が終了した画素については変換後の画像データを記載している。
図の上段は、着目ブロックＢ１２の左隣のブロックＢ１３まで誤差拡散を伴う画像変換処理が終了した状態を示している。図の例では、着目ブロックＢ１２は画像中で明度の高い領域となっており、着目ブロックＢ１２内の各画素Ｐａ〜Ｐｄのいずれにも階調値２０（各画素内の上段に記載）が格納されているとともに、他のブロックから階調誤差５０（各画素内の下段に記載）が拡散されてきているものとする。また、処理の一例として、各画素Ｐａ〜Ｐｄの階調値の総和Ｓ１が閾値１００以下のときにブロック処理条件が成立するものとし、着目ブロックＢ１２の階調値と拡散誤差の総和が閾値１５０よりも大きいときに同着目ブロックＢ１２内の１画素にのみドットを形成するものとする。むろん、これらの閾値は一例にすぎない。
【００５９】
ここで、階調値の総和Ｓ１は８０となるのでブロック処理条件は成立し、同画素の拡散誤差の総和は２００となり、着目ブロックＢ１２の階調値と拡散誤差との総和は８０＋２００＝２８０であるので着目ブロックＢ１２内の１画素にのみドットを形成することになる。本実施形態では、左隣のブロックＢ１３のように、着目ブロックＢ１２の左上の画素Ｐａにドットを形成し（画素Ｐａの階調値を２５５とし）、残りの画素Ｐｂ〜Ｐｄの階調値を０とすることにしている。このように、着目ブロック内の所定位置の画素にのみドットを形成することにより、変換処理が簡素化されるので、画像データの変換が迅速に行われることになる。ここで、１画素にのみドットを形成する場合には、画素Ｐｂ〜Ｐｄのいずれかにドットを形成してもよいし、着目ブロック内の画素のうち最も階調値の大きい画素にドットを形成してもよいし、ランダムに画素を選択してドットを形成してもよい。
【００６０】
着目ブロック全体の階調誤差は、着目ブロックＢ１２の階調値と拡散誤差との総和から画像データ変換後の着目ブロックの階調値の総和を差し引いた値となる。図の例では、着目ブロックＢ１２の階調値と拡散誤差との総和は２８０であるから、変換後の着目ブロックＢ１２の階調値の総和２５５を差し引くことにより、階調誤差は２５となる。そして、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させる。図では、着目ブロックＢ１２に隣接した６つの未変換画素Ｕ１１〜Ｕ１６に階調誤差を拡散させることになる。なお、左上のブロック内の画素や、上隣のブロック内の画素や、左隣のブロック内の画素等は変換処理済みであるので、これらの画素には階調誤差を拡散させないようにしている。
【００６１】
また、同階調誤差を他のブロック内の未変換画素に対して略均等に拡散させるようにしている。図の例では、着目ブロックＢ１２全体の階調誤差は２５であり、他のブロック内の未変換画素は６つあるので、２５を６で除して小数点以下を四捨五入した４ずつ未変換画素に拡散させる。階調誤差が６で割り切れない場合には、所定位置の未変換画素Ｕ１６に拡散させる階調誤差を調整し、拡散させる階調誤差の合計を着目ブロックＢ１２全体の階調誤差と一致させる。その結果、未変換画素Ｕ１６には階調誤差「５」が拡散される。
なお、様々な手法で着目ブロックの階調誤差を周辺の未変換画素に拡散させることができ、例えば、同階調誤差を、着目ブロックの右隣、左下、下隣、右下のブロック内の画素一つのみに拡散させてもよいし、着目ブロックに隣接していない未変換画素に拡散させてもよいし、未変換画素の位置に応じて拡散する割合を異ならせてもよい。
また、着目ブロックが画像中で明度の低い領域でも、同様の考え方でブロック単位で画像データを変換することができる。
【００６２】
なお、ブロック処理条件の成立可否を判定する際、着目ブロック内の画素全ての階調値と拡散誤差との総和を用いて判定すると、ブロック内の各画素の階調値の総和が同じでも、ブロック内の拡散誤差の大きさにより、画像変換処理はブロック単位の処理となったり１画素単位の処理となったりする。試験を行ったところ、着目ブロック内の画素全ての階調値と拡散誤差との総和を用いたブロック処理条件の成立可否の判定結果により処理単位を切り替えると、ブロック単位の処理が行われたブロックと１画素単位の処理が行われたブロックとで形成されるドットのパターンが異なり、意図しないドットの模様が現れることがあった。本実施形態では、着目ブロック内に拡散されてきた階調誤差を含めずに着目ブロック内の画素全ての階調値のみを用いてブロック処理条件の成立可否を判定して処理単位を切り替えることにより、意図しない模様が現れることを防いでいる。
【００６３】
（４）画像処理装置が行う処理の詳細：
以下、本画像処理装置が行う処理の詳細について、高解像度の場合を例にとって説明する。
図１４は、図１１のＳ２１６で行われる高解像度用変換処理を示すフローチャートである。
まず、ＲＡＭ１３からＣＭＹＫ別に１６画素からなる着目ブロック内の各画素の階調値を読み込み（Ｓ３０２）、読み込んだ階調値の総和Ｓ２を算出する（Ｓ３０４）。ここで、図１２の中程に示した着目ブロックＢ０２内の１６画素の階調値をＤＡｉ（ｉ＝１〜１６）で表すと、以下の式により階調値の総和Ｓ２を算出することができる。
Ｓ２  ＝  Σ（ＤＡｉ）    ・・・（１）
そして、後述するように、総和Ｓ２を、所定のブロック処理基準値である閾値Ｄ２１，Ｄ２４と対比して、高解像度の場合におけるブロック処理条件を満たすか否かを判定し、同条件成立時には１６画素単位で変換処理を行い、同条件不成立時にはより小さい処理単位にて変換処理を行うようにしている。ここで、閾値Ｄ２１，Ｄ２４は、ブロックの階調値の平均を基準とした閾値ｄ２１，ｄ２４にブロックの画素数１６を乗じた値であり、１６画素単位の変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものである。
【００６４】
階調値の総和Ｓ２を算出すると、Ｓ２が０であるか否かを判断する（Ｓ３０６）。着目ブロック内の各画素の階調値が全て０であるときのみ総和Ｓ２は０となるので、ＣＭＹＫ別に見たときに着目ブロック内の各画素の階調値が全て０であるときに条件成立となってＳ３０８に進み、各画素の階調値のうち一つでも１以上のものがあれば条件不成立となってＳ３１０に進む。
Ｓ３０８では、着目ブロック内の画素全てをオフすなわちドットを形成しない状態とする。すなわち、着目ブロック内の変換後の画像データは全ての画素において０とされ、「ドットを形成しない」画像データとなる。その後、詳しくは後述するが、着目ブロック全体で生じる階調誤差を算出し（Ｓ３２４）、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させ（Ｓ３２６）、本フローを終了する。着目ブロック内の各画素の階調値が全て０である場合には、後述するＳ３１２の１６画素単位変換処理（その１）が行われないので画像変換処理を高速化させることができる。
【００６５】
Ｓ３１０では、総和Ｓ２が閾値Ｄ２１よりも大きいか否かを判断する。むろん、Ｓ２≧Ｄ２１であるか否かを判断するようにしてもよい。Ｓ２＞Ｄ２１のとき着目ブロックが階調値の小さい領域におけるブロック処理条件を満たさないと判定してＳ３１４に進み、Ｓ２≦Ｄ２１のとき同条件を満たすと判定してＳ３１２に進む。
Ｓ３１２では、１６画素単位変換処理（その１）を行い、本フローを終了する。Ｓ３１２が行われるのは、着目ブロックが画像中で明度の高い領域にあるときであり、ドット形成密度が小さいため、ブロック単位でドットを形成しても画像の分解能の低下は目立たず、高画質を維持することが可能である。
【００６６】
図１５の上段は、４×４画素単位の画像変換処理を模式的に示している。なお、図の上段において、着目ブロックＢ２２内の１６画素のいずれにも階調値２０が格納されているとともに、他のブロックから拡散されてきた階調誤差の総和は８００とする。また、処理の一例として、階調値の総和Ｓ２が閾値４００以下のときにブロック処理条件が成立するものとし、着目ブロックＢ２２の階調値と拡散誤差の総和が閾値９５０よりも大きいときに同着目ブロックＢ２２内の４画素をオンにするものとする。むろん、これらの閾値は一例にすぎない。
ここで、総和Ｓ２はブロック処理条件成立となる３２０であり、拡散誤差の総和は８００であるので、着目ブロックＢ２２内の各画素の階調値と拡散誤差との総和は４画素オンとなる１１２０となる。本実施形態では、１６画素の着目ブロック内で４画素オンとするとき、左隣のブロックＢ２３のように、一番上の最も左の画素Ｐｅと、上から二番目の最も右の画素Ｐｆと、上から三番目の最も左の画素Ｐｇと、一番下の最も右の画素Ｐｈとにドットを形成する（階調値を２５５にする）ようにしている。また、同着目ブロック内で３画素オンとするときには画素Ｐｅ〜Ｐｇをオンとし、２画素オンとするときには画素Ｐｅ，Ｐｆをオンとし、１画素オンとするときには画素Ｐｅのみをオンとするようにしている。むろん、これ以外にも様々な手法により着目ブロック内で１〜４画素にドットを形成することができる。
【００６７】
着目ブロック全体の階調誤差は、着目ブロックＢ２２の階調値と拡散誤差との総和１１２０から画像データ変換後の着目ブロックの階調値の総和２５５×４＝１０２０を差し引いた値となる。図の例では、階調誤差は１００となり、着目ブロック全体の階調誤差を他のブロック内で同着目ブロックに隣接した未変換画素Ｕ２１〜Ｕ３０に拡散させる。本実施形態では、同階調誤差を未変換画素Ｕ２１〜Ｕ３０に対して略均等に拡散させるとともに、階調誤差が１０で割り切れない場合には未変換画素Ｕ３０に拡散させる階調誤差を調整している。むろん、これ以外にも様々な手法で同階調誤差を周辺の未変換画素に拡散させることができる。
このようにして、４×４画素単位で誤差拡散法による画像変換処理を行うことができる。
【００６８】
図１６は、ブロック処理条件成立時に行われる１６画素単位変換処理（その１）をフローチャートにより示している。
まず、４×４画素の着目ブロックについて、着目ブロックの階調値と拡散誤差との総和である補正データＢｘを算出する（Ｓ３５２）。着目ブロック内の各画素に拡散されてきた拡散誤差をそれぞれＥｉ（ｉ＝１〜１６），とすると、着目ブロック全体に拡散されてきた拡散誤差ＳＥは、以下の式から求めることができる。
ＳＥ  ＝  Σ（Ｅｉ）    ・・・（２）
着目ブロックの階調値の総和Ｓ２を用いると、補正データＢｘは以下の式により算出することができる。
Ｂｘ  ＝  Ｓ２  ＋  ＳＥ    ・・・（３）
そこで、ＲＡＭ１３から着目ブロック内の各画素の拡散誤差Ｅ１を読み出し、上記式（２），（３）により補正データＢｘを算出する。なお、各画素の拡散誤差は、上記Ｓ３０２で各画素の階調値を読み出すときに一緒に読み出しておいてもよい。
【００６９】
本実施形態では、着目ブロック内で１〜４画素のオンを可能にするため、ｔｈ２１＜ｔｈ２２＜ｔｈ２３＜ｔｈ２４である四種類の閾値を用いている。これらの閾値は、画像データの階調値の小さい領域において、それぞれ、着目ブロック内に１，２，３，４ドット形成するか否かの境界値として予め設定されるものである。Ｓ３５４では、Ｂｘ＞ｔｈ２１であるか否かを判断する。Ｂｘ≦ｔｈ２１のとき、着目ブロック内の画素全てをオフ、すなわち、ドットを形成せず（Ｓ３５６）、Ｓ３７２に進む。Ｂｘ＞ｔｈ２１のとき、Ｂｘ＞ｔｈ２２であるか否かを判断する（Ｓ３５８）。Ｂｘ≦ｔｈ２２のとき（ｔｈ２１＜Ｂｘ≦ｔｈ２２）、着目ブロック内で１画素をオン、すなわち、ドットを形成し（Ｓ３６０）、Ｓ３７２に進む。Ｂｘ＞ｔｈ２２のとき、Ｂｘ＞ｔｈ２３であるか否かを判断する（Ｓ３６２）。Ｂｘ≦ｔｈ２３のとき（ｔｈ２２＜Ｂｘ≦ｔｈ２３）、着目ブロック内で２画素をオンとし（Ｓ３６４）、Ｓ３７２に進む。Ｂｘ＞ｔｈ２３のとき、Ｂｘ＞ｔｈ２４であるか否かを判断する（Ｓ３６６）。Ｂｘ≦ｔｈ２４のとき（ｔｈ２３＜Ｂｘ≦ｔｈ２４）、着目ブロック内で３画素をオンとし（Ｓ３６８）、Ｓ３７２に進む。Ｂｘ＞ｔｈ２４のとき、着目ブロック内で４画素をオンとし（Ｓ３７０）、Ｓ３７２に進む。
このようにして、画像データの変換の際に変換対象の１６画素について当該１６画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。着目ブロック内で複数のドットをまとめて形成することができるため、着目ブロック内で１ドットしか形成できなかった従来と比べ、画質を低下させることなく変換処理をより高速化させることが可能となる。
なお、着目ブロック内で１画素のみオンとするようにしてもよいし、全画素オフまたは４画素オンの二段階のみ切り替えるようにしてもよいし、ｔｈ２４’＞ｔｈ２４なる閾値ｔｈ２４’を設けてＢｘ＞ｔｈ２４’の場合に５画素オンとするようにしてもよい。
【００７０】
Ｓ３７２では、着目ブロック全体の階調誤差を算出する。ここで、画像データ変換後の着目ブロック内に形成されるドット数をＮｄｏｔとすると、画像データ変換後の着目ブロック内における各画素の階調値の総和Ｓｄｏｔは、以下の式から求めることができる。
Ｓｄｏｔ  ＝  ２５５  ×  Ｎｄｏｔ    ・・・（４）
すなわち、着目ブロック全体で生じる階調誤差Ｅは、以下の式のように、着目ブロック内の各画素の階調値と拡散誤差との総和から画像データ変換後の着目ブロック内における各画素の階調値の総和を差し引くことにより算出することができる。
Ｅ  ＝  Ｓ２  ＋  ＳＥ  −  Ｓｄｏｔ    ・・・（５）
そして、階調誤差Ｅを他のブロック内の未変換画素に略均等に拡散させ（Ｓ３７４）、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
その後はＳ２１８にて全ブロックについて変換処理が終了したか否かが判断され、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
【００７１】
図１４のＳ３１４では、総和Ｓ２が閾値Ｄ２４（Ｄ２４＞Ｄ２１）よりも大きいか（または、以上か）否かを判断する。Ｓ２＞Ｄ２４のとき画像データの階調値の大きい領域におけるブロック処理条件を満たすと判定してＳ３１８に進み、それ以下のとき（Ｄ２１＜Ｓ２≦Ｄ２４）同条件を満たさないと判定してＳ３１６に進む。なお、画像データ中でＤ２４＜Ｓ２を満たす領域は、画像中で明度の低い領域である。
Ｓ３１６では、１６画素より小さい処理単位で変換処理を行う小ブロック変換処理を行い、本フローを終了する。
【００７２】
図１７は、上記小ブロック変換処理を示すフローチャートである。
まず、４×４画素の着目ブロック内の画素を区分して２×２画素のさらに小さいブロックである小ブロックとし、画像データを変換する着目された着目小ブロックの位置を設定する（Ｓ４０２）。図１２を参照して説明すると、小ブロックＢａ〜Ｂｄは着目ブロックＢ０２内において点線または実線で区切られた２×２画素から構成され、着目小ブロックは小ブロックＢａ〜Ｂｄのいずれかに設定される。そして、小ブロック単位で変換処理を行うことになる。本実施形態では、画像データの変換処理の順序を、小ブロックＢａ，Ｂｂ，Ｂｃ，Ｂｄの順としている。むろん、変換処理の順序は、適宜変更可能である。また、小ブロックは、正方形状である以外にも、例えば、長方形状、横１列に並んだ複数の画素のような直線状等でもよいし、横３×縦２画素と横１×縦２画素のように不均等に区分されてもよい。
【００７３】
次に、着目小ブロックの階調値をＣＭＹＫ別に読み込み（Ｓ４０４）、読み込んだ階調値の総和Ｓ３を算出する（Ｓ４０６）。ここで、着目小ブロック内の４画素の階調値をＤＡｉ（ｉ＝１〜４）で表すと、上記式（１）と同様にして総和Ｓ３を算出することができる。
Ｓ３  ＝  Σ（ＤＡｉ）    ・・・（６）
そして、後述するように、総和Ｓ３を、所定の小ブロック処理基準値である閾値Ｄ２２，Ｄ２３と対比して、着目小ブロックが第二のブロック処理条件を満たすか否かを判定し、同条件成立時に４画素の小ブロック単位で画像変換処理を行い、同条件不成立時に１画素単位で画像変換処理を行う。ここで、閾値Ｄ２２，Ｄ２３は、ブロックの階調値の平均を基準とした閾値ｄ２２，ｄ２３にブロックの画素数４を乗じた値であり、４画素単位の変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものである。
【００７４】
総和Ｓ３を算出すると、Ｓ３がＤ２２よりも大きいか（または、以上か）否かを判断する（Ｓ４０８）。同判断は、Ｓ４１２とともにＣＭＹＫ別に行われる。Ｓ３＞Ｄ２２のとき画像データの階調値の比較的小さい領域における第二のブロック処理条件を満たさないと判定してＳ４１２に進み、Ｓ３≦Ｄ３１のとき同条件を満たすと判定してＳ４１０に進む。
【００７５】
Ｓ４１０では、４画素単位変換処理（その１）を行い、Ｓ４１８に進む。図１５の下段に示すように、４×４画素の着目ブロックＢ２２内を２×２画素に区分して小ブロックとし、小ブロック単位の変換処理を行う。小ブロック全体で１画素オンにする場合、着目小ブロックＢ２４の左上の画素にドットを形成することにしているが、様々な手法によりドットを形成することが可能である。また、着目小ブロック全体の階調誤差を着目小ブロック外の未変換画素Ｕ４１〜Ｕ４５に略均等に（図の例では、２５／５＝５ずつ）拡散させる。むろん、これ以外にも様々な手法で階調誤差を周辺の未変換画素に拡散させることができる。このようにして、着目小ブロック全体の階調誤差を着目小ブロック外の未変換画素に拡散させながら、着目小ブロック内の画素の画像データをまとめて変換することができる。なお、着目小ブロックが画像中で明度の低い領域でも、同様の考え方で小ブロック単位で画像データを変換することが可能である。
【００７６】
図１８は、第二のブロック処理条件成立時に行われる４画素単位変換処理（その１）をフローチャートにより示している。
まず、着目ブロックについて、着目ブロックの階調値と拡散誤差との総和である補正データＢｘを算出する（Ｓ４５２）。着目ブロック全体に拡散されてきた拡散誤差ＳＥは、ｉ＝１〜４として、上記式（２）により算出することができる。そして、着目ブロックの階調値の総和Ｓ１を用いると、補正データＢｘは、以下の式により算出することができる。
Ｂｘ  ＝  Ｓ１  ＋  ＳＥ    ・・・（７）
次に、Ｂｘが所定の閾値ｔｈ１１よりも大きいか（または、以上か）否かを判断する（Ｓ４５４）。Ｂｘ＞ｔｈ１１の場合、着目ブロック内の１画素のみオン（左上の画素の階調値を２５５）とし、残りの３画素の階調値を０とする（Ｓ４５６）。一方、Ｂｘ≦ｔｈ１１の場合、着目ブロック内の画素全てをオフ（４画素全ての階調値を０）とする（Ｓ４５８）。このようにして、画像データの変換の際に変換対象の４画素について当該４画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。
【００７７】
その後、着目ブロック全体で生じる階調誤差を算出する（Ｓ４６０）。ここで、画像データ変換後の着目ブロック内に形成されるドット数をＮｄｏｔとして、上記式（４）により画像データ変換後の着目ブロックの階調値の総和Ｓｄｏｔを求め、以下の式により着目ブロック全体で生じる階調誤差Ｅを算出する。
Ｅ  ＝  Ｓ１  ＋  ＳＥ  −  Ｓｄｏｔ    ・・・（８）
そして、階調誤差Ｅを当該ブロック外の未変換画素に略均等に拡散させ（Ｓ４６２）、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
その後はＳ４１８にて全小ブロックについて変換処理が終了したか否かが判断され、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理が行われる。
【００７８】
図１７のＳ４１２では、総和Ｓ３がＤ２３よりも大きいか（または、以上か）否かを判断する。Ｓ３＞Ｄ２３のとき画像データの階調値の比較的大きい領域における第二のブロック処理条件を満たさないと判定してＳ４１６に進み、Ｓ３≦Ｄ３２のとき同条件を満たすと判定してＳ４１４に進む。
【００７９】
Ｓ４１４では、１画素単位変換処理を行い、本フローを終了する。図１９に示すように、着目ブロック（着目小ブロック）Ｂ１２内で画素Ｐａ，Ｐｂ，Ｐｃ，Ｐｄの順番に、同画素の階調誤差を他の未変換画素に拡散させながらブロックＢ１２内の画素の画像データを変換する。なお、斜線が記入された画素は、誤差拡散を伴う画像データの変換処理が終了したことを示している。ここで、未変換画素は、ブロックＢ１２内であってもよいし、他のブロック内であってもよい。
まず、画素Ｐａについて、階調値と他の画素からの階調誤差とからドットの形成有無を判定して変換後の画像データを２５５または０とするとともに、画素Ｐａの階調誤差を他の未変換画素に拡散させる。このとき、図中ブロック矢印で示したように、同画素Ｐａに隣接する未変換画素Ｐｂ〜Ｐｄに略均等に拡散させる。画素Ｐｂ〜Ｐｄについても、同様にしてドットを形成するか否かを判定し、変換後の画像データを２５５または０とするとともに、画素Ｐｂ〜Ｐｄに隣接する未変換画素に略均等に拡散させる。ここで、画素Ｐｂからは未変換画素Ｐｃ，Ｐｄ，Ｕ１１，Ｕ１２に対して階調誤差を拡散させ、画素Ｐｃからは未変換画素Ｐｄ，Ｕ１３〜Ｕ１５に対して階調誤差を拡散させ、画素Ｐｄからは未変換画素Ｕ１２，Ｕ１４〜Ｕ１６に対して階調領域を拡散させる。このようにして、ブロック内の画素別に同画素の階調誤差を拡散させながら画像データを変換することができる。むろん、ブロックが２×２画素以外であっても、同様にして画素別の画像変換処理を行うことが可能である。
【００８０】
なお、上記以外にも、様々な手法で同階調誤差を他の未変換画素に拡散させることができる。例えば、画素Ｐａ〜Ｐｃについては、着目ブロックＢ１２内の未変換画素にのみ階調誤差を拡散させ、画素Ｐｄについてのみ、他のブロック内の未変換画素に階調誤差を拡散させてもよい。また、未変換画素の位置に応じて同階調誤差を拡散する割合を異ならせるようにしてもよい。むろん、画像データを変換する順番についても様々な順番が可能であり、ブロック毎に画像データの変換処理の順序を変えてもよい。
本実施形態では、着目ブロック内の画素を１画素単位で区分して画素区分としているが、着目ブロック内の画素を２以上の画素単位で区分して画素区分としてもよい。例えば、横２画素×縦１画素を画素区分とすると、まず、画素Ｐａ，Ｐｂの階調値と拡散誤差とに基づいて同画素Ｐａ，Ｐｂ全体の階調誤差を当該画素Ｐａ，Ｐｂ外の未変換画素に拡散させながら同画素Ｐａ，Ｐｂの画像データをまとめて変換すればよい。次に、画素Ｐｃ，Ｐｄの階調値と拡散誤差とに基づいて同画素Ｐｃ，Ｐｄ全体の階調誤差を当該画素Ｐｃ，Ｐｄ外の未変換画素に拡散させながら同画素Ｐｃ，Ｐｄの画像データをまとめて変換すればよい。
【００８１】
図２０は、画素区分別処理条件成立時に行われる１画素単位変換処理を示すフローチャートである。本フローもＣＭＹＫ別に行われる。
まず、着目ブロック内で着目画素の位置を設定し（Ｓ５０２）、着目画素の階調値と拡散されてきた拡散誤差とを読み込む（Ｓ５０４）。さらに、着目画素についての補正データＣｘを算出する（Ｓ５０６）。ここで、着目画素の階調値をＳｉ、拡散されてきた拡散誤差をＥｉとすると、補正データＣｘは、以下の式のように階調値Ｓｉと拡散誤差Ｅｉとの和となる。
Ｃｘ  ＝  Ｓｉ  ＋  Ｅｉ    ・・・（９）
その後、Ｃｘが所定の閾値ｔｈ０よりも大きいか（または、以上か）否かを判断する（Ｓ５０８）。Ｃｘ＞ｔｈ０である場合、着目画素の階調値を「ドットを形成する」意味の２５５とし（Ｓ５１０）、Ｃｘ≦ｔｈ０の場合、着目画素の画像データを「ドットを形成しない」意味の０とする（Ｓ５１２）。
【００８２】
その後、着目画素で生じる階調誤差を算出する（Ｓ５１４）。ここで、変換処理後の着目画素の画像データをＤｏｔとすると、着目画素の階調値Ｓｉ、着目画素に拡散されてきた拡散誤差Ｅｉを用いて、着目画素で生じる階調誤差Ｅ’を算出することができる。
Ｅ’  ＝  Ｓｉ  ＋  Ｅｉ  −  Ｄｏｔ    ・・・（１０）
さらに、図１９で示したように、階調誤差Ｅ’を他の未変換画素に略均等に拡散させる（Ｓ５１６）。そして、着目ブロック内の全画素について変換処理を終了したか否かを判断する（Ｓ５１８）。着目ブロック内で変換処理を行っていない画素がある場合にはＳ５０２に戻り、次の着目画素の位置を設定して、繰り返し上述した変換処理を行う。一方、着目ブロック内の全画素について変換処理を終了した場合、１画素単位変換処理を終了する。
このようにして、画像データの変換の際に変換対象の画素について当該画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。
その後、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理が行われる。
図１７のＳ４１６では、４画素単位変換処理（その２）を行い、その後、Ｓ４１８に進む。
【００８３】
図２１は、第二のブロック処理条件成立時に行われる４画素単位変換処理（その２）を示すフローチャートである。
まず、上記Ｓ４５２と同様にして、着目ブロックについての補正データＢｘを算出し（Ｓ５５２）、補正データＢｘが所定の閾値ｔｈ１２（ｔｈ１２＞ｔｈ１１）よりも大きいか（または、以上か）否かを判断する（Ｓ５５４）。Ｂｘ＞ｔｈ１２の場合に着目ブロック内の画素全てをオン（４画素全ての階調値を２５５）とし（Ｓ５５６）、Ｂｘ≦ｔｈ１２の場合に着目ブロック内の１画素のみオフ（例えば、着目ブロック内の右下の画素の階調値を０、残りの３画素の階調値を２５５）とする（Ｓ５５８）。このようにして、画像データの変換の際に変換対象の４画素について当該４画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。
その後、Ｓ４６０，Ｓ４６２と同様にして、着目ブロック全体の階調誤差Ｅを算出し（Ｓ５６０）、同階調誤差Ｅを他のブロック内の未変換画素に拡散させ（Ｓ５６２）、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
【００８４】
その後、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理が行われる。
小ブロック変換処理が終了すると、図１４の高解像度用変換処理も終了して、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
上述した４画素単位変換処理（その１，２）により、１６画素の着目ブロックがブロック処理条件を満たさないと判定されたときでも、さらに小さい着目小ブロックが第二のブロック処理条件を満たすと判定されると着目小ブロック内の全画素をまとめて変換対象として画像変換処理が４画素の着目小ブロック単位で行われる。従って、画像データをまとめて変換するブロックの大きさをきめ細やかに切り替えることが可能となり、高画質を維持しながら分解能の低下が目立たない領域の変換処理をさらに高速化させ、画像変換処理をさらに効率よく行うことが可能となる。また、低ドット密度側と高ドット密度側の双方で第二のブロック処理条件成立時に着目小ブロック単位の画像変換処理が行われるので、画像変換処理をさらに効率よく行うことが可能となる。
【００８５】
ブロック処理条件成立時に行われる図１４のＳ３１８では、１６画素の着目ブロックの階調値の総和Ｓ２が２５５×１６＝４０８０であるか否かを判断する。着目ブロック内の各画素の階調値が全て２５５であるときのみ条件成立となってＳ３２２に進み、各画素の階調値のうち一つでも２５４以下のものがあれば条件不成立となってＳ３２０に進む。
Ｓ３２０では、１６画素単位変換処理（その２）を行い、その後、本フローを終了する。
【００８６】
図２２は、ブロック処理条件成立時に行われる１６画素単位変換処理（その２）を示すフローチャートである。図１６と同様であるので、簡単に説明する。
まず、着目ブロックについての補正データＢｘを算出する（Ｓ６０２）。本実施形態では、画像データの階調値の大きい領域において、着目ブロック内で１〜４画素のオフを可能にするため、ｔｈ２５＜ｔｈ２６＜ｔｈ２７＜ｔｈ２８である四種類の閾値を用いているが、閾値の数は様々に設定可能である。Ｂｘ≦ｔｈ２５のとき着目ブロック内の４画素をオフとし（Ｓ６０４〜Ｓ６０６）、ｔｈ２５＜Ｂｘ≦ｔｈ２６のとき着目ブロック内で３画素をオフとし（Ｓ６０８〜Ｓ６１０）、ｔｈ２６＜Ｂｘ≦ｔｈ２７のとき着目ブロック内で２画素をオフとし（Ｓ６１２〜Ｓ６１４）、ｔｈ２７＜Ｂｘ≦ｔｈ２８のとき着目ブロック内で１画素をオフとし（Ｓ６１６〜Ｓ６１８）、ｔｈ２８＜Ｂｘのとき着目ブロック内の画素全てをオンとし（Ｓ６２０）、Ｓ６２２に進む。
このようにして、画像データの変換の際に変換対象の１６画素について当該１６画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。着目ブロック内で複数の画素をオフにすることができるため、高画質を維持しながら変換処理をより高速化させることが可能となる。Ｓ６２２では、着目ブロック全体の階調誤差Ｅを算出する。そして、階調誤差Ｅを他のブロック内の未変換画素に略均等に拡散させ（Ｓ６２４）、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。その後、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
上述した１６画素単位変換処理（その１，２）により、ブロック処理条件が成立したときに着目ブロック内の全画素をまとめて変換対象として画像変換処理が１６画素の着目ブロック単位で行われる。従って、画像データのうち高画質を維持可能な領域のみドットがブロック単位で形成され、高画質を維持しながら誤差拡散法による画像変換処理を効率よく行うことができる。また、低ドット密度側と高ドット密度側の双方でブロック処理条件成立時に着目ブロック単位の画像変換処理が行われるので、画像変換処理をさらに効率よく行うことが可能となる。
【００８７】
図１４のＳ３２２では、着目ブロック内の画素全てをオンとする。そして、着目ブロック全体の階調誤差Ｅを算出し（Ｓ３２４）、階調誤差Ｅを他のブロック内の未変換画素に略均等に拡散させて（Ｓ３２６）、本フローを終了する。このように、着目ブロック内の各画素の階調値が全て２５５である場合には、Ｓ３２０の１６画素単位変換処理（その２）が行われないので変換処理を高速化させることができる。その後、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
【００８８】
このように、高解像度の場合の画像変換処理は、１６画素のブロックの階調値の平均またはさらに小さい４画素のブロックの階調値の平均をｘとして、図７で示したように切り替えられることになる。従って、Ｓ３１０，Ｓ３１４，Ｓ４０８，Ｓ４１２の判断処理を行うＰＣは、画像データを変換する着目ブロックの階調値の総和を処理単位情報と対比して着目ブロックがブロック処理条件（第二のブロック処理条件を含む）を満たすか否かを判定する判定手段を構成する。また、Ｓ３０２〜Ｓ３０８，Ｓ３１２，Ｓ４０２〜Ｓ４０６，Ｓ４１０，Ｓ４１４〜Ｓ４１８，Ｓ３１８〜Ｓ３２６の処理を行うＰＣは、ブロック処理条件成立時にブロック（変換処理区分）単位の画像変換処理を行い、同ブロック処理条件不成立であるが第二のブロック処理条件成立時に同ブロックを区分したさらに小さいブロック単位の画像変換処理を行い、第二のブロック処理条件を含めたブロック処理条件不成立時に１画素（画素区分）単位の画像変換処理を行う変換手段を構成する。
【００８９】
なお、７２０×３６０ｄｐｉ設定の場合に行われる低解像度用変換処理（図１１のＳ２０８）は、図１７で示した小ブロック変換処理と同様の処理にて行うことができるので、詳しい説明を省略する。すなわち、閾値Ｄ２２，Ｄ２３の代わりにブロックの階調値の平均を基準とした閾値ｄ１１，ｄ１２にブロックの画素数４を乗じた値の閾値Ｄ１１，Ｄ１２を用いればよい。そして、Ｓ４０２にて４画素の着目ブロックの位置を設定し、Ｓ４０４にて着目ブロック内の各画素の階調値を読み込み、Ｓ４０６にて着目ブロックの階調値の総和（Ｓ３とする）を算出し、総和Ｓ３と閾値Ｄ１１，Ｄ１２とを対比してブロック処理条件の成立可否を判定し、判定結果に対応して４画素単位と１画素単位とを切り替えながら変換処理を行えばよい。
【００９０】
また、２８８０×１４４０ｄｐｉ設定の場合に行われる超高解像度用変換処理（図１１のＳ２２４）は、図１４で示した高解像度用変換処理と同様の処理にて行うことができる。すなわち、閾値Ｄ２１，Ｄ２４の代わりにブロックの階調値の平均を基準とした閾値ｄ３１，ｄ３６にブロックの画素数６４を乗じた値の閾値Ｄ３１，Ｄ３６を用いればよい。そして、Ｓ３１２，Ｓ３２０にて６４画素単位変換処理（その１，２）を行い、Ｓ３１６にて６４画素をさらに小さい１６画素のブロックとする小ブロック変換処理を行えばよい。図１７で示した小ブロック変換処理では、閾値Ｄ２２，Ｄ２３の代わりにブロックの階調値の平均を基準とした閾値ｄ３２，ｄ３５にブロックの画素数１６を乗じた値の閾値Ｄ３２，Ｄ３５を用いればよい。そして、Ｓ４０２にて４×４画素の着目小ブロックの位置を設定し、Ｓ４１０，Ｓ４１６にて１６画素単位変換処理（その１，２）を行い、Ｓ４１４にてさらに小さい４画素のブロックとする小ブロック変換処理を行うことにより、６４画素単位、１６画素単位、４画素単位、１画素単位を切り替えながら変換処理を行うことができる。このように、きめ細やかに処理区分の大きさが切り替わるので、ブロックとしては２×２画素に固定されていた従来と比べ、高画質を維持しながら処理速度をさらに向上させることが可能となる。
また、プリンタに設定された解像度が１４４０×７２０ｄｐｉ以上のときのみ小ブロック変換処理を行うようにしているので、高画質を維持しながら分解能の低下が目立たない領域の変換処理をさらに高速化させ、画像変換処理をさらに効率よく行うことが可能となる。
むろん、２８８０×１４４０ｄｐｉより高い解像度である場合や、７２０×３６０ｄｐｉより低い解像度である場合も、同様の考え方により処理区分の大きさを切り替えながら変換処理を行うことができる。
【００９１】
従来は、画像を印刷させる解像度に関係なく、２×２画素をまとめてブロックとし、ブロック単位の変換処理を行っても高画質を維持可能である画像の明度が高い領域を所定のブロック処理条件が成立する領域として設定し、着目ブロックが同ブロック処理条件を満たすと判定したときブロック単位の変換処理を行い、同ブロック処理条件を満たさないと判定したとき１画素単位で変換処理を行っていた。しかし、高解像度で印刷させる場合でも２×２画素単位で変換処理が行われるため、低解像度で印刷させる場合と比べて見た目で小さい処理単位となり、処理速度は十分に高速化されていなかった。
本発明によると、画像をドットマトリクス状の画素で多階調表現した画像データを入力し、各画素の階調誤差を他の未変換画素に拡散させながらドット形成の有無によりプリンタのような画像出力装置の出力画像を表現する画像データを生成するにあたり、解像度に合った適切な大きさの変換処理区分にて画像データの変換処理を行うことが可能となる。従って、高解像度である場合に変換処理を高速化させることができ、誤差拡散法を用いた画像変換処理を効率よく行うことが可能となる。
また、各画素の階調値の小さい領域と階調値の大きい領域の双方にて、画像データのうち高画質を維持可能な領域のみドットがブロック単位で形成されるので、高解像度の場合に高画質を維持しながら変換処理をさらに高速化させ、画像変換処理をさらに効率よく行うことができる。きめ細やかに画像変換処理の処理単位を切り替えることにより効率よく画像変換処理を行うことができるようになっているし、高解像度のときのみブロックの大きさが段階的に切り替えられて画像変換処理が行われるので、高解像度の場合に高画質を維持しながら変換処理をさらに高速化させ、画像変換処理をさらに効率よく行うことが可能となっている。むろん、きめ細やかに画像変換処理の処理単位を切り替えることにより、解像度に関係なく高画質を維持しながら画像変換処理を効率よく行うことが可能となる。
【００９２】
さらに、異なる解像度のそれぞれに対応するブロックの階調値の平均値が同じとなる条件のもとで、画像出力装置に合わせて画像データに設定された解像度が高くなるにつれて出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じた画素数の近隣した画素を処理単位としているので、処理単位の面積は、解像度が高くなるにつれて大きくならないことになる。従って、高い解像度における画質が低い解像度における画質よりも低くなるような意味のない変換処理が行われなくなり、この点でも画像変換処理をさらに効率よく行うことが可能となっている。
また、画像変換処理の処理単位は着目ブロック内の各画素の階調値のみに基づいて切り替えられるので、ブロック内の画素の階調値の総和が同じであれば、ブロック内に拡散されてくる階調誤差の大きさには関係なく、画像変換処理の処理単位は一定となる。従って、ブロック内の階調値が同じときにブロック単位の変換処理が行われたり１画素単位の変換処理が行われたりして形成されるドットによる意図しない模様が現れることがなく、変換後の画像データに基づく画像をさらに高画質にさせることも可能となる。
むろん、高画質の程度が下がることにはなっても使用環境等に応じてブロックの階調値のみではなくブロックに拡散されてきた階調誤差も含めたパラメータに基づいてブロック処理条件の成立可否を判定することは可能である。この場合であっても、解像度に応じた変換処理区分にすることにより、画像変換処理をさらに効率よく行うことが可能になることには変わりない。
【００９３】
なお、本画像処理装置を実現させるフローは、様々な変形例が考えられる。
例えば、図１０Ｓ１１５の解像度変換処理で画像データの解像度変換が行われるので、解像度変換前の画像データを用いてブロック処理条件等の成立の可否を判定し、判定結果に対応する画像変換処理を行うようにしてよい。例えば解像度変換前の画像データの１画素を４×４画素に高解像度化するとき、図１４を参照して高解像度用変換処理を説明すると、まず、解像度変換後の画像データを構成する画素の中から近隣する所定の４×４画素をまとめてブロックとし、画像データを階調数変換する着目ブロックの位置を設定する（Ｓ３０２に相当）。次に、解像度変換前の画像データを構成する画素の中から着目ブロックに対応する着目画素（着目処理区分）の位置を設定する。さらに、同着目画素の階調値（ＳＡとする）を取得する（Ｓ３０４に相当）。これにより、画像データを階調数変換する着目ブロックに対応する処理区分の画素の階調値が取得されるが、上記総和Ｓ２を算出する必要がないので、処理が高速化される。
階調値ＳＡを取得すると、ＳＡと処理単位情報である所定の閾値（ＤＡ２１，ＤＡ２４とする）とを対比して処理を切り替える。ＳＡ≦ＤＡ２１（または、ＳＡ＜ＤＡ２１）のとき低ドット密度側のブロック処理条件成立と判定し、１６画素単位変換処理（その１）を行う（Ｓ３１０〜Ｓ３１２に相当）。ＳＡ＞ＤＡ２４（またはＳＡ≧ＤＡ２４）のとき高ドット密度側のブロック処理条件成立と判定し、１６画素単位変換処理（その１）を行う（Ｓ３１４，Ｓ３２０に相当）。これら以外のとき同条件不成立と判定し、小ブロック変換処理を行う（Ｓ３１６に相当）。
以上のフローにより、高画質を維持可能な領域のみドットはブロック単位で形成されるので、画像データの変換処理を高速化させることができる。また、解像度変換前の画像データから着目ブロックに対応する１画素のみの階調値を参照することにより着目ブロック内の画素の階調値を参照する必要がなくなるし、着目ブロック内でのドットの形成状況を判定する処理の速度も向上するので、誤差拡散法による画像変換処理を効果的に高速化させることが可能となる。
【００９４】
また、処理を簡素化させるため、図１４のＳ３０６〜Ｓ３０８，Ｓ３１８，Ｓ３２２〜Ｓ３２６の処理を省略して、閾値Ｄ２１，Ｄ２４のみと総和Ｓ２とを対比して各種変換処理を行ってもよい。
同図のＳ３０２〜Ｓ３１２，Ｓ３１６の処理のみを行い、Ｓ２＞Ｄ２１のときに一律に小ブロック変換処理を行ってもよい。その際、図１７のＳ４０２〜Ｓ４１０，Ｓ４１４，Ｓ４１８の処理のみを行い、Ｓ３＞Ｄ２２のときに一律に１画素単位変換処理を行うようにして、低ドット密度側のみブロック処理条件の判定結果に対応する処理単位の変換処理を行ってもよい。逆に、図１４のＳ３０２〜Ｓ３０４，Ｓ３１４〜Ｓ３２６の処理のみを行い、Ｓ２≦Ｄ２２のときに一律に小ブロック変換処理を行ってもよい。その際、図１７のＳ４０２〜Ｓ４０６，Ｓ４１２〜Ｓ４１８の処理のみを行い、Ｓ３≦Ｄ２３のときに一律に１画素単位変換処理を行うようにして、高ドット密度側のみブロック処理条件の判定結果に対応する処理単位の変換処理を行ってもよい。
むろん、小ブロック変換処理を行わずに処理を簡素化させてもよい。
【００９５】
図２３は、処理を簡素化した階調数変換処理の一例を示すフローチャートである。
まず、取得された解像度に応じて処理を分岐させる（Ｓ９０２）。７２０×３６０ｄｐｉの場合、２×２画素の着目ブロックの位置を設定する（Ｓ９０４）。次に、着目ブロック内の階調値の総和と閾値Ｄ１１（＝ｄ１１×４），Ｄ１２（＝ｄ１２×４）とを対比して着目ブロックがブロック処理条件を満たすか否かを判定し、２×２画素単位または１画素単位を切り替えながら誤差拡散法による画像変換処理を行う、低解像度用変換処理を行う（Ｓ９０６）。同Ｓ９０４〜Ｓ９０８の処理を全ブロックについて行う（Ｓ９０８）。
一方、１４４０×７２０ｄｐｉの場合、３×３画素の着目ブロックの位置を設定する（Ｓ９１０）。次に、着目ブロック内の階調値の総和と所定の閾値とを対比して着目ブロックがブロック処理条件を満たすか否かを判定し、３×３画素単位または１画素単位を切り替えながら誤差拡散法による画像変換処理を行う、高解像度用変換処理を行う（Ｓ９１２）。同Ｓ９１０〜Ｓ９１２の処理を全ブロックについて行う（Ｓ９１４）。
このようにしても、解像度に合った適切な大きさの変換処理区分にて画像変換処理を行うことが可能となるので、高解像度である場合に変換処理を高速化させることができ、画像変換処理を効率よく行うことができる。
むろん、ブロック処理条件の成立可否に対応して処理単位を切り替える処理を行わない場合でも、解像度に対応する数の画素を変換処理区分とすると、解像度に合った適切な大きさの変換処理区分にて画像変換処理を行うことが可能となるので、画像変換処理を効率よく行うことができる。
【００９６】
総和Ｓ２，Ｓ３と処理単位情報とを対比する順序も、様々考えられる。例えば、図１４の処理において、Ｓ２＝２５５×１６であるか否か、Ｓ２＞Ｄ２４であるか否か、Ｓ２＞Ｄ２１であるか否か、Ｓ２＝０であるか否か、の順に判定し、対応する変換処理を行ってもよい。また、第二のブロック処理条件または画素区分別処理条件が満たされるか否かを先に判定した後、ブロック処理条件が成立するか否かを判定してもよい。すると、ブロックがブロック処理条件と比べて第二のブロック処理条件または画素区分別処理条件を満たす場合が比較的多いとき（例えば、ブロック処理条件を満たさない場合が同条件を満たす場合よりも多い場合）に、画像変換処理の速度をさらに向上させることが可能となる。図１７の小ブロック変換処理においては、画素区分別処理条件が満たされるか否かを先に判定した後、第二のブロック処理条件が成立するか否かを判定してもよい。すると、小ブロックが第二のブロック処理条件と比べて画素区分別処理条件を満たす場合が比較的多いとき（例えば、第二のブロック処理条件を満たさない場合が同条件を満たす場合よりも多い場合）に、画像変換処理の速度をさらに向上させることが可能となる。
【００９７】
図２４は、処理単位情報とする閾値の変形例を模式的に示している。本例では、第一の低密度側閾値ｄ２１，ｄ３１はドットの形成密度に相当する値が第二の低密度側閾値ｄ１１と同じとされ、第一の高密度側閾値ｄ２４，ｄ３６はドットの形成密度に相当する値が第二の高密度側閾値ｄ１２と同じとされている。また、１４４０×７２０ｄｐｉを２８８０×１４４０ｄｐｉ（第一の解像度）に対する第二の解像度とすると、小ブロック用の第一の低密度側閾値ｄ３２はドットの形成密度に相当する値が小ブロック用の第二の低密度側閾値ｄ２２と同じとされ、小ブロック用の第一の高密度側閾値ｄ３５はドットの形成密度に相当する値が小ブロック用の第二の高密度側閾値ｄ２３と同じとされている。
すると、図１１Ｓ２０８，Ｓ２１６，Ｓ２２４の解像度別の変換処理では、ブロック処理条件の成立可否を判定するためにブロック内の階調値の総和と共通の閾値とを対比すればよいので、解像度間で共通の低密度側閾値と高密度側閾値のみを記憶しておけばよい。従って、記憶させる閾値を少なくさせることができ、所望の画質の画像を得るために処理単位情報とする閾値を調整する際に利便性が向上する。
【００９８】
図２５は、画像変換処理を行う画素の処理単位を決定するための処理単位情報の変形例を示している。本処理単位情報Ｔ２は、ブロック内の画素の階調値の総和Ｓに対応付けて処理単位を決定するための個別処理単位情報を格納した情報テーブルとされ、ＨＤ１４に記憶されている。総和Ｓ２は０〜４０８０、総和Ｓ３は０〜１０２０の整数値をとりうるため、４０８１種類の総和Ｓ２と１０２１種類の総和Ｓ３に対応させて画像変換処理の種類を表す情報が格納されている。図では、（ｕ１）〜（ｕ６）の６種類の個別処理単位情報が設けられている。
【００９９】
図２６は、処理単位情報Ｔ２を用いた高解像度用変換処理を示すフローチャートである。
Ｓ３０２〜Ｓ３０４で１６画素分の総和Ｓ２を算出すると、ＨＤ１４に記憶された処理単位情報Ｔ２の情報テーブルから総和Ｓ２に対応する個別処理単位情報を読み出して取得する（Ｓ３２８）。そして、Ｓ３３０，Ｓ３３２にて個別処理単位情報に対応させて処理を分岐させ、Ｓ３１２，Ｓ３１６，Ｓ３２０にて個別処理単位情報に対応する変換処理を行って、本フローを終了する。ここで、ブロック処理条件成立時に１６画素単位変換処理を行い、同条件不成立時に小ブロック変換処理を行う。
なお、小ブロック変換処理についても、図１７のＳ４０２〜Ｓ４０６で４画素分の総和Ｓ３を算出すると、ＨＤ１４に記憶された処理単位情報Ｔ２の情報テーブルから総和Ｓ３に対応する個別処理単位情報を読み出して取得し、個別処理単位情報に対応させて処理を分岐させ、Ｓ４１０，Ｓ４１４，Ｓ４１６にて個別処理単位情報に対応する変換処理を行い、Ｓ４１８で全小ブロックについて画像変換処理を繰り返し行えばよい。ここで、第二のブロック処理条件成立時に４画素単位変換処理を行い、同条件不成立時に１画素単位変換処理を行う。
以上の処理により、閾値を用いずに画像変換処理を切り替えることができるので、簡易な構成ながら画質を低下させずに画像変換処理をさらに高速化させることができる。
【０１００】
（５）第二の実施形態：
変換処理区分や小ブロックは、ｎ×ｎ画素（ｎは正の整数）とする以外にも、様々な構成が可能である。
図２７は、第二の実施形態にかかる画像処理装置が行う階調数変換処理を示すフローチャートである。なお、プリンタ２０の解像度として、横３６０×縦３６０ｄｐｉ、横７２０×縦３６０ｄｐｉ、横７２０×縦７２０ｄｐｉ、横１４４０×縦７２０ｄｐｉ、横１４４０×縦１４４０ｄｐｉの５種類を設定することが可能であるものとする。
解像度取得手段にて取得された解像度に基づいて変換処理区分の画素の数を決定する際、横方向の解像度を３６０で除した値をＸ１、縦方向の解像度を３６０で除した値をＹ１として、近隣したＸ１×Ｙ１画素を変換処理区分とする（Ｓ７０２）。本例では、全段階の解像度に対応させたＸ１を除する３６０とＹ１を除する３６０とが変換処理区分設定となる。図の右側に示すように、解像度が３６０×３６０ｄｐｉ、７２０×３６０ｄｐｉ、７２０×７２０ｄｐｉ、１４４０×７２０ｄｐｉ、１４４０×１４４０ｄｐｉであるとき、それぞれ１×１画素（１画素単位）、２×１画素、２×２画素、４×２画素、４×４画素を変換処理区分とする。すなわち、変換処理区分設定は、解像度が大きくなるほど変換処理区分内の画素の数を増やす設定とされており、より具体的には、変換処理区分内の画素の数を解像度に比例した数として解像度の縦横の比と一致した領域の画素を変換処理区分とする設定とされている。
【０１０１】
次に、画像データを変換する着目された変換処理区分の位置を設定する（Ｓ７０４）。さらに、Ｓ２０８，Ｓ２１６，Ｓ２２４と同様にして、変換処理区分内の画素について当該画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる（Ｓ７０６）。
なお、１４４０×７２０ｄｐｉと１４４０×１４４０ｄｐｉのときには変換処理区分が所定の小ブロック移行条件を満たしているか否かを判定し、（Ｓ７１２）、同条件を満たすと判定した場合、解像度取得手段にて取得された解像度に基づいて小ブロックの画素の数を決定する際、横方向の解像度を３６０で除した値をＸ２、縦方向の解像度を３６０で除した値をＹ２として、近隣したＸ２×Ｙ２画素を小ブロックとする（Ｓ７１４）。ここで、１４４０×７２０ｄｐｉのときには２×１画素、１４４０×１４４０ｄｐｉのときには２×２画素の小ブロックとする。このように、解像度が大きくなるほど画素数を比例して増やすとともに、解像度の縦横の比と一致した領域の画素を小ブロックとしている。その後、図示しないフローにより、画像データを変換する着目された小ブロックの位置を設定し、着目小ブロック内の各画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換し、変換により生じる階調誤差を周辺の未変換画素に拡散させる。
【０１０２】
画像データの全変換処理区分について変換処理を終了するまで、Ｓ７０４〜Ｓ７０８の処理を繰り返す（Ｓ７０８）。本フローを終了すると、上記インターレース処理を行い、プリンタ２０に対してドット形成の有無により表現した画像データを送出し、解像度に応じた画像を印刷させることになる。その際、見た目の変換処理区分や小ブロックの大きさが縦横同じになっているので、高画質を維持しながら画像データ変換処理を高速化させることが可能となる。
なお、変換処理区分を縦横の解像度を１８０で除した画素から構成してもよい。すると、１４４０×７２０ｄｐｉのときに８×４画素を変換処理区分とすることになるが、縦横の解像度比が２であるため横方向を２画素で１画素相当とみることができ、第一の実施形態のように１４４０×７２０ｄｐｉのときに４×４画素の変換処理区分とする場合と比べて画質の低下を少なくさせることができ、より高速にて画像変換処理を行うことが可能となる。
【０１０３】
（６）第三の実施形態：
図２８は、第三の実施形態にかかる画像処理装置が行う高解像度用変換処理を示すフローチャートである。本フローでは、４×４画素の着目ブロック内の各画素の階調値の最大値と最小値に基づいて第二のブロック処理条件を含むブロック処理条件の成立可否を判定する。
着目ブロック内の各画素の階調値を読み込むと（Ｓ８０２）、着目ブロック内の階調値の総和Ｓ２を算出するとともに、各画素の階調値の最大値ＭＡＸと最小値ＭＩＮとを抽出する（Ｓ８０４）。次に、ＭＡＸ，ＭＩＮと所定のブロック処理基準値である閾値Ｄ２１’，Ｄ２２’（処理単位情報）とを対比して、処理を切り替える。すなわち、ＭＡＸ≦Ｄ２１’（ＭＡＸ＜Ｄ２１’でもよい）のとき着目ブロックが低ドット密度側のブロック処理条件を満たすと判定して図１６で示した１６画素単位変換処理（その１）を行い（Ｓ８０６〜Ｓ８０８）、ＭＩＮ＞Ｄ２２’（ＭＩＮ≧Ｄ２２’でもよい）のとき着目ブロックが高ドット密度側のブロック処理条件を満たすと判定して図２２で示した１６画素単位変換処理（その３）を行い（Ｓ８１０，Ｓ８１４）、これら以外のとき図２９に示す小ブロック変換処理を行い（Ｓ８１２）、フローを終了する。
小ブロック変換処理を開始すると、２×２画素の着目小ブロックの位置を設定し（Ｓ８５２）、着目小ブロック内の各画素の階調値を読み込み（Ｓ８５４）、着目小ブロック内の階調値の総和Ｓ３を算出するとともに、各画素の階調値の最大値ＭＡＸｓと最小値ＭＩＮｓとを抽出する（Ｓ８５６）。次に、ＭＡＸｓ，ＭＩＮｓと所定の小ブロック処理基準値である閾値Ｄ３１’，Ｄ３２’とを対比して、処理を切り替える。すなわち、ＭＡＸｓ≦Ｄ３１’（ＭＡＸｓ＜Ｄ３１’でもよい）のとき着目小ブロックが低ドット密度側の第二のブロック処理条件を満たすと判定して図１８で示した４画素単位変換処理（その１）を行い（Ｓ８５８〜Ｓ８６０）、ＭＩＮ＞Ｄ２２’（ＭＩＮ≧Ｄ２２’でもよい）のとき着目小ブロックが高ドット密度側の第二のブロック処理条件を満たすと判定して図２１で示した４画素単位変換処理（その２）を行い（Ｓ８６２，Ｓ８６６）、これら以外のとき図２０で示した１画素単位変換処理を行い（Ｓ８６４）、Ｓ８６８で全小ブロックについて変換処理が終了するまで繰り返しＳ８５２〜Ｓ８６６の処理を行う（Ｓ８６８）。
【０１０４】
例えば、画像中で明度の高い領域で最大値ＭＡＸを用いてブロック処理条件の成立可否を判定するものとし、Ｄ２１’＝５０とする。上記総和Ｓ２が１６０のとき、着目ブロック内の各画素の階調値が全て１０であれば最大値「１０」はＤ２１’より小さいためブロック処理条件成立となり、ブロック単位で画像変換処理を行う。一方、着目ブロック内の画素一つのみ階調値１６０であって残りの１５画素が階調値０であれば最大値「１６０」はＤ２１’より大きいためブロック処理条件不成立となる。
また、画像中で明度の低い領域で最小値ＭＩＮを用いてブロック処理条件の成立可否を判定するものとし、Ｄ２２’＝２００とする。上記総和Ｓ２が３８４０のとき、着目ブロック内の各画素の階調値が全て２４０であればブロック処理条件成立となり、着目ブロック内の画素一つのみ階調値９０であって残りの１５画素が階調値２５０であればブロック処理条件不成立となる。
このように、各画素の階調値が急変する領域では、きめ細やかに画像データを変換することができるので、画像中のいわゆるエッジ部分を不鮮明にさせることなく高画質な画像を得ることが可能となる。
なお、Ｓ８０６を行う前に、ＭＡＸが０であるか否かを判断し、ＭＡＸ＝０であるときに着目ブロック内の画素全てをオフとして着目ブロック全体の階調誤差を周辺の未変換画素に拡散させてもよい。また、Ｓ８１０終了後に、ＭＩＮが２５５であるか否かを判断し、ＭＩＮ＝２５５であるときに着目ブロック内の画素全てをオンとして着目ブロック全体の階調誤差を周辺の未変換画素に拡散させてもよい。すると、着目ブロック内の各画素の階調値が全て０または２５５である場合には、上記１６画素単位変換処理（その１または２）を行う必要がなくなるので画像変換処理を高速化させることができる。
【０１０５】
このように、上記最大値や最小値を求めるだけでブロック単位や小ブロック単位の変換処理を行うという簡易な構成で、低ドット密度側と高ドット密度側の双方の領域で高画質な画像を高速にて得ることができる。
また、上記Ｓ８０６，Ｓ８５８では、Ｄ２１’’をブロック処理基準値、Ｄ３１’’を小ブロック処理基準値として、Ｓ２＋ＭＡＸ＞Ｄ２１’’、Ｓ３＋ＭＡＸｓ＞Ｄ３１’’の成立可否を判断してもよい。一方、上記Ｓ８１０，Ｓ８６２では、Ｄ２２’’をブロック処理基準値、Ｄ３２’’を小ブロック処理基準値として、Ｓ２＋ＭＩＮ＞Ｄ２２’’、Ｓ３＋ＭＩＮｓ＞Ｄ３２’’の成立可否を判断してもよい。さらに、上記Ｓ２，Ｓ３とＭＡＸ，ＭＡＸｓ（または、ＭＩＮ，ＭＩＮｓ）とにそれぞれに異なる係数を乗じて加算した値と、所定の閾値とを対比してブロック処理条件の成立可否を判定してもよいし、加重を異ならせてＳ２，Ｓ３とＭＡＸ，ＭＡＸｓ（または、ＭＩＮ，ＭＩＮｓ）とを加重平均した値と、所定の閾値とを対比してブロック処理条件の成立可否を判定してもよい。
さらに、以下の条件式
（  Ｓ２  ＞  Ｄ２１  ）  ＯＲ  （  ＭＡＸ  ＞  Ｄ２１’  ）
（  Ｓ２  ≦  Ｄ２２  ）  ＯＲ  （  ＭＩＮ  ≦  Ｄ２２’  ）
（  Ｓ３  ＞  Ｄ３１  ）  ＯＲ  （  ＭＡＸｓ  ＞  Ｄ３１’  ）
（  Ｓ３  ≦  Ｄ３２  ）  ＯＲ  （  ＭＩＮｓ  ≦  Ｄ３２’  ）
すなわち、それぞれの論理式における二つの不等式のいずれかが成立するか否かを判断し、いずれかが成立した場合にブロック処理条件成立と判定してもよい。むろん、
（  Ｓ２  ＞  Ｄ２１  ）  ＡＮＤ    （  ＭＡＸ  ＞  Ｄ２１’  ）
（  Ｓ２  ≦  Ｄ２２  ）  ＡＮＤ    （  ＭＩＮ  ≦  Ｄ２２’  ）
（  Ｓ３  ＞  Ｄ３１  ）  ＡＮＤ    （  ＭＡＸｓ  ＞  Ｄ３１’  ）
（  Ｓ３  ≦  Ｄ３２  ）  ＡＮＤ    （  ＭＩＮｓ  ≦  Ｄ３２’  ）
が成立するか否かを判断してもよい。
【０１０６】
図３０は、上記ＭＡＸ，ＭＩＮを利用した高解像度用変換処理の変形例を示すフローチャートである。本フローでは、Ｓ３０４にて階調値の総和Ｓ２を算出した後、着目ブロック内の階調値と処理単位情報とを対比して、着目ブロックが画像中のいわゆるエッジ部分であるか否かを判定する（Ｓ３４０）。例えば、上記最大値ＭＡＸと最小値ＭＩＮを抽出し、ＭＡＸ−ＭＩＮ＞ｔｈｅ１（または、ＭＡＸ−ＭＩＮ≧ｔｈｅ１）のとき、着目ブロックはエッジ部分であると判定することができる。また、縦横に隣り合う画素同士について階調値の差の絶対値ＡＢＳｉを求め、求められた複数の絶対値ＡＢＳｉの最大値が別の閾値以上またはより大であるときに着目ブロックはエッジ部分であると判定してもよい。
エッジ部分であると判定した場合には小ブロック変換処理を行い（Ｓ３４２）、エッジ部分でないと判定した場合には、Ｓ３１０〜Ｓ３１６，Ｓ３２０の処理を行い、本フローを終了する。Ｓ３４２では、１画素単位変換処理を行ってもよい。また、図１７で示した小ブロック変換処理でも、Ｓ４０８の前に着目小ブロックがエッジ部分であるか否かを判定し、エッジ部分であると判定したときには１画素単位変換処理を行ってもよい。
このように、各画素の階調値が急変する領域ではきめ細やかに画像データを変換することができるので、画像中のいわゆるエッジ部分を不鮮明にさせないことになる。
【０１０７】
（７）まとめ：
なお、本発明の画像処理プログラムを実行可能な画像処理装置と周辺装置は、様々な構成が可能である。
例えば、プリンタは、コンピュータと一体化されたものであってもよい。また、大中小のドットを形成可能である等、形成するドットの大きさを可変としたプリンタを使用してもよい。
上述したフローについては、ＰＣ内で実行する以外にも、一部または全部をプリンタあるいは専用の画像処理装置で実行するようにしてもよい。また、プリンタに対してプリンタドライバによらずに解像度が設定される場合等では、プリンタに設定された解像度が画像データに対して設定されたことになるので、プリンタから解像度についての情報を入手することにより画像データに対して設定された解像度を取得してもよい。
画像を出力する装置は、印刷媒体上にドットを形成して印刷を行う装置以外であってもよく、例えば、液晶表示画面上で輝点形成の有無により画像を表現する液晶表示装置であってもよい。
【０１０８】
以上説明したように、本発明によると、種々の態様により、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理を効率よく行うことが可能な画像処理装置、印刷制御装置、印刷装置、画像処理プログラムおよびそのプログラムを記録した媒体を提供することができる。また、画像処理方法としても適用可能である。
【図面の簡単な説明】
【図１】第一の実施形態にかかる画像処理装置を含む印刷装置の概略構成図。
【図２】プリンタのブロック構成をＰＣとともに示すブロック構成図。
【図３】画像処理装置の構成を模式的に示す図。
【図４】低解像度時に変換処理手段が行う処理を模式的に示す図。
【図５】高解像度時に変換処理手段が行う処理を模式的に示す図。
【図６】解像度と変換処理区分設定との対応関係を模式的に示す図。
【図７】閾値とブロックの階調値の平均との対応関係を模式的に示す図。
【図８】閾値とブロックの階調値の平均との対応関係を模式的に示す図。
【図９】画素とドットの大きさの関係を模式的に示す図。
【図１０】本画像処理装置が行う処理を示すフローチャート。
【図１１】階調数変換処理を示すフローチャート。
【図１２】着目ブロックを模式的に示す図。
【図１３】誤差拡散を行いながら画像データを変換する様子の説明図。
【図１４】高解像度用変換処理を示すフローチャート。
【図１５】誤差拡散を行いながら画像データを変換する様子の説明図。
【図１６】１６画素単位変換処理（その１）を示すフローチャート。
【図１７】小ブロック変換処理を示すフローチャート。
【図１８】４画素単位変換処理（その１）を示すフローチャート。
【図１９】誤差拡散を行いながら画像データを変換する様子の説明図。
【図２０】１画素単位変換処理を示すフローチャート。
【図２１】４画素単位変換処理（その２）を示すフローチャート。
【図２２】１６画素単位変換処理（その２）を示すフローチャート。
【図２３】階調数変換処理の変形例を示すフローチャート。
【図２４】処理単位情報とする閾値の変形例を模式的に示す図。
【図２５】変形例における処理単位情報の構造を模式的に示す図。
【図２６】高解像度用変換処理の変形例を示すフローチャート。
【図２７】第二の実施形態における階調数変換処理を示すフローチャート。
【図２８】第三の実施形態における高解像度用変換処理を示すフローチャート。
【図２９】第三の実施形態における小ブロック変換処理を示すフローチャート。
【図３０】高解像度用変換処理の変形例を示すフローチャート。
【符号の説明】
１０…パーソナルコンピュータ、１４…ハードディスク、１４ａ…ハードディスクドライブ、１４ｂ…解像度情報、１４ｃ…変換処理区分設定、１４ｄ…処理単位情報、２０…インクジェットプリンタ、１００…印刷装置、Ａ…画像処理装置、Ａ１…解像度取得手段、Ａ２…変換処理手段、Ａ２１…判定手段、Ａ２２…第一変換手段（変換手段）、Ａ２３…第二変換手段（変換手段）、Ａ３…記憶手段、Ｂ１，Ｂ２…変換処理区分、Ｂ３，Ｂ４，Ｂ０１〜Ｂ０３，Ｂ１２，Ｂ２２…着目ブロック、Ｂ５…着目小ブロック、Ｂ０４〜Ｂ０６…小ブロック、Ｂ１３，Ｂ２３…ブロック、Ｂ２４…着目小ブロック、Ｂａ〜Ｂｄ…小ブロック、Ｐａ〜Ｐｈ…画素、Ｔ１，Ｔ２…処理単位情報、Ｕ１，Ｕ２…着目画素、Ｕ０１〜Ｕ０３…画素、Ｕ１１〜Ｕ１６，Ｕ２１〜Ｕ３０，Ｕ４１〜Ｕ４５…画素
【図１】
2005039388.tif 000003
【図２】
2005039388.tif 000004
【図３】
2005039388.tif 000005
【図４】
2005039388.tif 000006
【図５】
2005039388.tif 000007
【図６】
2005039388.tif 000008
【図７】
2005039388.tif 000009
【図８】
2005039388.tif 000010
【図９】
2005039388.tif 000011
【図１０】
2005039388.tif 000012
【図１１】
2005039388.tif 000013
【図１２】
2005039388.tif 000014
【図１３】
2005039388.tif 000015
【図１４】
2005039388.tif 000016
【図１５】
2005039388.tif 000017
【図１６】
2005039388.tif 000018
【図１７】
2005039388.tif 000019
【図１８】
2005039388.tif 000020
【図１９】
2005039388.tif 000021
【図２０】
2005039388.tif 000022
【図２１】
2005039388.tif 000023
【図２２】
2005039388.tif 000024
【図２３】
2005039388.tif 000025
【図２４】
2005039388.tif 000026
【図２５】
2005039388.tif 000027
【図２６】
2005039388.tif 000028
【図２７】
2005039388.tif 000029
【図２８】
2005039388.tif 000030
【図２９】
2005039388.tif 000031
【図３０】
2005039388.tif 000032
【手続補正書】
【提出日】平成16年10月6日(2004.10.6)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】画像を複数の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う画像処理装置であって、
予め設けられた複数段階の解像度に対応させて、上記変換処理をまとめて行う画素の領域を表す複数段階の変換処理区分設定を記憶した記憶手段と、
上記複数段階の解像度のうち、上記画像データに対して設定された解像度を取得する解像度取得手段と、
記憶された上記複数段階の変換処理区分設定のうち上記解像度取得手段にて取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて上記変換対象として上記変換処理を同変換処理区分単位で実行可能な変換処理手段とを具備することを特徴とする画像処理装置。
【請求項２】画像を複数の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および拡散されてきた階調誤差からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う画像処理装置であって、
予め設けられた複数段階の解像度に対応させて、上記変換処理をまとめて行う画素の領域を表す複数段階の変換処理区分設定を記憶した記憶手段と、
上記複数段階の解像度のうち、上記画像データに対して設定された解像度を取得する解像度取得手段と、
記憶された上記複数段階の変換処理区分設定のうち上記解像度取得手段にて取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて上記変換対象として上記変換処理を同変換処理区分単位で実行可能な変換処理手段とを具備することを特徴とする画像処理装置。
【請求項３】上記変換処理区分は、二以上の画素をまとめたブロックとされ、
上記記憶手段は、上記ブロックとする領域の画素の階調値に対応付けて、同ブロック内で上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶し、
上記変換処理手段は、上記解像度取得手段にて取得された解像度に対応する変換処理区分設定で近隣する上記二以上の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値を上記処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、同着目ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な変換手段とを具備することを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】上記処理単位情報には、上記ブロック内の画素を区分してさらに小さいブロックである小ブロックとする領域の画素の階調値に対応付けて、同小ブロック内で上記変換処理を行う画素の処理単位を決定するための情報が含まれ、
上記判定手段は、上記着目ブロックが上記ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分して上記小ブロックとし、上記画像データを変換する着目小ブロック内の各画素の階調値を上記処理単位情報と対比して同着目小ブロックが所定の第二のブロック処理条件を満たすか否かを判定し、
上記変換手段は、上記着目小ブロックが上記第二のブロック処理条件を満たすと判定されたとき、同着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行うことを特徴とする請求項３に記載の画像処理装置。
【請求項５】上記判定手段は、上記解像度取得手段にて取得された解像度が所定の第一の解像度であるときに上記第二のブロック処理条件の成立可否を判定し、同取得された解像度が所定の第二の解像度であるときには上記第二のブロック処理条件の成立可否を判定しないことを特徴とする請求項４に記載の画像処理装置。
【請求項６】上記第一の解像度は、上記第二の解像度よりも高解像度とされていることを特徴とする請求項５に記載の画像処理装置。
【請求項７】上記処理単位情報には上記ブロック内の各画素の階調値の総和に対応付けられた低密度側閾値と高密度側閾値とが含まれるとともに、同高密度側閾値は同低密度側閾値よりも高ドット密度側の値とされ、
上記判定手段は、上記着目ブロック内の各画素の階調値の総和が上記低密度側閾値から低ドット密度側または上記高密度側閾値から高ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定することを特徴とする請求項４〜請求項６のいずれかに記載の画像処理装置。
【請求項８】上記処理単位情報には上記小ブロック内の各画素の階調値の総和に対応付けられた小ブロック用の低密度側閾値と小ブロック用の高密度側閾値とが含まれるとともに、同小ブロック用の高密度側閾値は同小ブロック用の低密度側閾値よりも高ドット密度側の値とされ、
上記判定手段は、上記着目ブロック内の各画素の階調値の総和が上記低密度側閾値から高ドット密度側かつ上記高密度側閾値から低ドット密度側であり、かつ、上記着目小ブロック内の各画素の階調値の総和が上記小ブロック用の低密度側閾値から低ドット密度側または上記小ブロック用の高密度側閾値から高ドット密度側であるときに同着目小ブロックが上記第二のブロック処理条件を満たすと判定することを特徴とする請求項７に記載の画像処理装置。
【請求項９】上記ブロック内の各画素の階調値の総和がとりうる範囲のうち上記高密度側閾値から高ドット密度側の範囲が上記低密度側閾値から低ドット密度領域側の範囲より広くされていることを特徴とする請求項７または請求項８に記載の画像処理装置。
【請求項１０】上記処理単位情報には、上記第一の解像度に対応する上記ブロック内の各画素の階調値の総和に対応付けられた第一の低密度側閾値と、上記第二の解像度に対応する上記ブロック内の各画素の階調値の総和に対応付けられた第二の低密度側閾値とが含まれ、
上記判定手段は、上記解像度取得手段にて上記第一の解像度が取得されたとき、同第一の解像度に対応する上記着目ブロック内の各画素の階調値の総和が上記第一の低密度側閾値から低ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定し、上記解像度取得手段にて上記第二の解像度が取得されたとき、同第二の解像度に対応する上記着目ブロック内の各画素の階調値の総和が上記第二の低密度側閾値から低ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定し、
上記第一の低密度側閾値は、ドットの形成密度に相当する値が上記第二の低密度側閾値を含めて当該第二の低密度側閾値から低ドット密度側の値とされていることを特徴とする請求項６に記載の画像処理装置。
【請求項１１】上記処理単位情報には、上記第一の解像度に対応する上記ブロック内の各画素の階調値の総和に対応付けられた第一の高密度側閾値と、上記第二の解像度に対応する上記ブロック内の各画素の階調値の総和に対応付けられた第二の高密度側閾値とが含まれ、
上記判定手段は、上記解像度取得手段にて上記第一の解像度が取得されたとき、同第一の解像度に対応する上記着目ブロック内の各画素の階調値の総和が上記第一の高密度側閾値から高ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定し、上記解像度取得手段にて上記第二の解像度が取得されたとき、同第二の解像度に対応する上記着目ブロック内の各画素の階調値の総和が上記第二の高密度側閾値から高ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定し、
上記第一の高密度側閾値は、ドットの形成密度に相当する値が上記第二の高密度側閾値を含めて当該第二の高密度側閾値から高ドット密度側の値とされていることを特徴とする請求項６または請求項１０に記載の画像処理装置。
【請求項１２】上記処理単位情報には、上記第一の解像度に対応する上記ブロック内の各画素の階調値の総和に対応付けられた第一の低密度側閾値および第一の高密度側閾値と、上記第二の解像度に対応する上記ブロック内の各画素の階調値の総和に対応付けられた第二の低密度側閾値および第二の高密度側閾値とが含まれ、
上記第一の高密度側閾値は上記第一の低密度側閾値よりも高ドット密度側の値とされるとともに、上記第二の高密度側閾値は上記第二の低密度側閾値よりも高ドット密度側の値とされ、
上記判定手段は、上記解像度取得手段にて上記第一の解像度が取得されたとき、同第一の解像度に対応する上記着目ブロック内の各画素の階調値の総和が上記第一の低密度側閾値から低ドット密度側または上記第一の高密度側閾値から高ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定し、上記解像度取得手段にて上記第二の解像度が取得されたとき、同第二の解像度に対応する上記着目ブロック内の各画素の階調値の総和が上記第二の低密度側閾値から低ドット密度側または上記第二の高密度側閾値から高ドット密度側であるときに同着目ブロックが上記ブロック処理条件を満たすと判定し、
上記第一の低密度側閾値はドットの形成密度に相当する値が上記第二の低密度側閾値と同じとされているとともに、上記第一の高密度側閾値はドットの形成密度に相当する値が上記第二の高密度側閾値と同じとされていることを特徴とする請求項６に記載の画像処理装置。
【請求項１３】上記処理単位情報には、上記ブロック内の各画素の階調値の最大値と最小値のいずれかまたは組み合わせに基づく値に対応付けられた閾値が含まれ、
上記判定手段は、上記着目ブロック内の各画素の階調値の最大値と最小値のいずれかまたは組み合わせに基づく値を上記閾値と対比して同着目ブロックが上記ブロック処理条件を満たすか否かを判定することを特徴とする請求項３〜請求項１２のいずれかに記載の画像処理装置。
【請求項１４】上記処理単位情報は、上記ブロック内の画素の階調値に対応付けて上記処理単位を決定するための個別処理単位情報を格納した情報テーブルであり、
上記判定手段は、上記着目ブロック内の画素の階調値に対応する上記個別処理単位情報を上記情報テーブルから読み出し、読み出した個別処理単位情報から上記着目ブロックが上記ブロック処理条件を満たすか否かを判定することを特徴とする請求項３〜請求項６のいずれかに記載の画像処理装置。
【請求項１５】上記変換処理区分設定は、上記解像度が大きくなるほど上記変換処理区分内の画素の数を増やす設定とされていることを特徴とする請求項１〜請求項１４のいずれかに記載の画像処理装置。
【請求項１６】上記変換処理区分設定は、上記解像度の縦横の比と一致した長方形状の領域の画素を上記変換処理区分とする設定とされていることを特徴とする請求項１〜請求項１５のいずれかに記載の画像処理装置。
【請求項１７】画像を複数の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う画像処理装置であって、
ブロックとする所定数の画素の階調値に対応付けて上記変換処理を行う画素の処理単位を決定するための処理単位情報と、同ブロック内の画素を区分してさらに小さいブロックである小ブロックとする別の所定数の画素の階調値に対応付けて上記変換処理を行う画素の処理単位を決定するための処理単位情報とを記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値を上記処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同着目ブロックが同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分して上記小ブロックとし、上記画像データを変換する着目小ブロック内の各画素の階調値を上記処理単位情報と対比して所定の第二のブロック処理条件を同着目小ブロックが満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、上記着目小ブロックが上記第二のブロック処理条件を満たすと判定したときには同着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行い、上記着目小ブロックが上記第二のブロック処理条件を満たさないと判定したときには同着目小ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な変換手段とを具備することを特徴とする画像処理装置。
【請求項１８】上記画素区分は、１画素とされていることを特徴とする請求項３〜請求項１７のいずれかに記載の画像処理装置。
【請求項１９】画像を複数の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う画像処理方法であって、
予め設けられた複数段階の解像度のうち、上記画像データに対して設定された解像度を取得する解像度取得工程と、
予め記憶されているとともに上記変換処理をまとめて行う画素の領域を表す複数段階の変換処理区分設定のうち上記取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて上記変換対象として上記変換処理を同変換処理区分単位で実行可能な変換処理工程とを具備することを特徴とする画像処理方法。
【請求項２０】画像を複数の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う画像処理方法であって、
近隣する所定数の画素をブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値を、同ブロック内の画素の階調値に対応付けられて上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同着目ブロックが同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分してさらに小さいブロックである小ブロックとし、上記画像データを変換する着目小ブロック内の各画素の階調値を、同小ブロック内の画素の階調値に対応付けられて上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、所定の第二のブロック処理条件を同着目小ブロックが満たすか否かを判定する判定工程と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、上記着目小ブロックが上記第二のブロック処理条件を満たすと判定したときには同着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行い、上記着目小ブロックが上記第二のブロック処理条件を満たさないと判定したときには同着目小ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な変換工程とを具備することを特徴とする画像処理方法。
【請求項２１】画像を複数の画素で多階調表現した画像データをドット形成の有無により印刷装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行い、変換後の画像データに対応する画像の印刷制御を行う印刷制御装置であって、
予め設けられた複数段階の解像度に対応させて、上記変換処理をまとめて行う画素の領域を表す複数段階の変換処理区分設定を記憶した記憶手段と、
上記複数段階の解像度のうち、上記画像データに対して設定された解像度を取得する解像度取得手段と、
記憶された上記複数段階の変換処理区分設定のうち上記解像度取得手段にて取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて上記変換対象として上記変換処理を同変換処理区分単位で実行可能な変換処理手段と、
上記印刷装置に対して上記変換後の画像データに対応する画像を印刷させる制御を行う印刷制御手段とを具備することを特徴とする印刷制御装置。
【請求項２２】画像を複数の画素で多階調表現した画像データをドット形成の有無により印刷装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行い、変換後の画像データに対応する画像の印刷制御を行う印刷制御装置であって、
ブロックとする所定数の画素の階調値に対応付けて上記変換処理を行う画素の処理単位を決定するための処理単位情報と、同ブロック内の画素を区分してさらに小さいブロックである小ブロックとする別の所定数の画素の階調値に対応付けて上記変換処理を行う画素の処理単位を決定するための処理単位情報とを記憶した記憶手段と、
近隣する上記所定数の画素を上記ブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値を上記処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同着目ブロックが同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分して上記小ブロックとし、上記画像データを変換する着目小ブロック内の各画素の階調値を上記処理単位情報と対比して所定の第二のブロック処理条件を同着目小ブロックが満たすか否かを判定する判定手段と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、上記着目小ブロックが上記第二のブロック処理条件を満たすと判定したときには同着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行い、上記着目小ブロックが上記第二のブロック処理条件を満たさないと判定したときには同着目小ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な変換手段と、
上記印刷装置に対して上記変換後の画像データに対応する画像を印刷させる制御を行う印刷制御手段とを具備することを特徴とする印刷制御装置。
【請求項２３】画像を複数の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う機能をコンピュータに実現させる画像処理プログラムであって、
予め設けられた複数段階の解像度のうち、上記画像データに対して設定された解像度を取得する解像度取得機能と、
予め記憶されているとともに上記変換処理をまとめて行う画素の領域を表す複数段階の変換処理区分設定のうち上記取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて上記変換対象として上記変換処理を同変換処理区分単位で実行可能な変換処理機能とを実現させることを特徴とする画像処理プログラム。
【請求項２４】画像を複数の画素で多階調表現した画像データをドット形成の有無により画像出力装置の出力画像を表現する画像データに変換するとともに、同変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う機能をコンピュータに実現させる画像処理プログラムであって、
近隣する所定数の画素をブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値を、同ブロック内の画素の階調値に対応付けられて上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同着目ブロックが同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分してさらに小さいブロックである小ブロックとし、上記画像データを変換する着目小ブロック内の各画素の階調値を、同小ブロック内の画素の階調値に対応付けられて上記変換処理を行う画素の処理単位を決定するための処理単位情報と対比して、所定の第二のブロック処理条件を同着目小ブロックが満たすか否かを判定する判定機能と、
上記着目ブロックが上記ブロック処理条件を満たすと判定されたとき、同着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行い、上記着目ブロックが上記ブロック処理条件を満たさないと判定されたとき、上記着目小ブロックが上記第二のブロック処理条件を満たすと判定したときには同着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行い、上記着目小ブロックが上記第二のブロック処理条件を満たさないと判定したときには同着目小ブロック内の画素を区分した画素区分別に上記変換処理を実行可能な変換機能とを実現させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置、画像処理方法、印刷制御装置および画像処理プログラムに関する。
【０００２】
【従来の技術】
従来、画像を印刷する際には、画像をドットマトリクス状の画素で多階調表現した画像データを入力し、誤差拡散法により、各画素の階調誤差を他の未変換画素に拡散させながら各画素に対応してドット形成の有無により表現した画像データに変換し、変換した画像データをプリンタに対して出力する処理を行っている。プリンタでは、設定された解像度にて、変換された画像データに基づく画像を印刷する。同誤差拡散法によると、誤差が生じないため画質はよい反面、誤差を算出して割り振っていく際の演算処理に時間がかかるため、２×２画素をまとめてブロックとし、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させながら同着目ブロック内の画素の画像データをまとめて変換するブロック単位処理が行われている。同ブロック単位処理によると、画像データを変換する処理を高速化することができるものの、１画素単位で変換する場合と比べて画像の分解能は低下し、画質が低下することになる。
そこで、引用文献１に開示された技術のように、ブロック単位の変換処理を行っても高画質を維持可能である画像の明度が高い領域を所定のブロック処理条件が成立する領域として設定し、同ブロック処理条件を満たすか否かを着目ブロック内の画素全ての階調値と拡散されてきた階調誤差との総和に基づいて判定している。具体的には、同総和Ｂｘがブロック内の階調値のとりうる範囲の中から閾値ｔｈ２以下となるような所定の範囲を持ったブロック処理条件を満たすか否かを判定している。そして、同ブロック処理条件を満たすと判定したとき着目ブロック内の画素の画像データをまとめて変換する処理を行い、同ブロック処理条件を満たさないと判定したとき一律に着目ブロック内で画素別に画像データを変換する処理を行っている。その結果、画像データのうちドット形成密度が非常に小さくて分解能の低下が目立たず高画質を維持可能な領域のみ、ドットはブロック単位で形成され、画像データの変換処理はある程度高速化されながら高画質が維持される。
【０００３】
【特許文献１】
特開２００２−１８５７８９号公報
【０００４】
【発明が解決しようとする課題】
上述した従来の技術においては、ブロック単位の画像データ変換処理を行う際、高解像度で印刷させる場合でも２×２画素単位で変換処理が行われるため、低解像度で印刷させる場合と比べて見た目で小さい処理単位となり、処理速度は十分に高速化されていなかった。
本発明は、上記課題にかんがみてなされたもので、画像を複数の画素で多階調表現した画像データから階調誤差を用いてドット形成の有無により表現した画像データに変換する処理を効率よく行うことが可能な画像処理装置、画像処理方法、印刷制御装置および画像処理プログラムの提供を目的とする。
【０００５】
【課題を解決するための手段および発明の効果】
上記目的を達成するため、請求項１にかかる発明では、上記記憶手段と解像度取得手段と変換処理手段とを具備する構成としてある。
本画像処理装置は、画像を複数の画素で多階調表現した画像データを、ドット形成の有無により画像出力装置の出力画像を表現する画像データに変換する。この変換の際、変換対象の画素について当該画素の階調値と変換処理済みの画素の階調誤差とに基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する変換処理を行う。
上記変換処理をまとめて行う画素の領域を表す複数段階の変換処理区分設定が、予め設けられた複数段階の解像度に対応して記憶手段により記憶されている。解像度取得手段は、複数段階の解像度のうち、画像データに対して設定された解像度を取得する。変換処理手段は、記憶された複数段階の変換処理区分設定のうち解像度取得手段にて取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて上記変換対象として上記変換処理を同変換処理区分単位で行うことが可能である。
すなわち、画像出力装置に画像を出力させるにあたり、解像度に合った適切な大きさの変換処理区分にて画像データの変換処理（以下、画像変換処理とも記載）を行うことが可能となるので、高解像度である場合に変換処理を高速化させることができる。従って、画像を複数の画素で多階調表現した画像データから階調誤差を用いてドット形成の有無により表現した画像データに変換する処理を効率よく行うことが可能となる。
また、請求項２にかかる発明の画像処理装置は、画像を複数の画素で多階調表現した画像データを、ドット形成の有無により画像出力装置の出力画像を表現する画像データに変換する。この変換の際、変換対象の画素について当該画素の階調値と拡散されてきた階調誤差（以下、拡散誤差とも記載）からドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる変換処理を行う。
上記変換処理をまとめて行う画素の領域を表す複数段階の変換処理区分設定が、予め設けられた複数段階の解像度に対応して記憶手段により記憶されている。解像度取得手段は、複数段階の解像度のうち、画像データに対して設定された解像度を取得する。変換処理手段は、記憶された複数段階の変換処理区分設定のうち解像度取得手段にて取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて上記変換対象として上記変換処理を同変換処理区分単位で行うことが可能である。
すなわち、画像出力装置に画像を出力させるにあたり、解像度に合った適切な大きさの変換処理区分にて画像データの変換処理（以下、画像変換処理とも記載）を行うことが可能となるので、高解像度である場合に変換処理を高速化させることができる。従って、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理を効率よく行うことが可能となる。
【０００６】
ここで、上記画像出力装置は、例えば印刷装置、ディスプレイのような表示装置等、様々なものが考えられる。
上記変換処理区分は、複数の画素から構成されるのみならず、１画素のみから構成されてもよく、この場合でも本発明に含まれる。また、同じ画像データに対して変換処理区分の画素数を変化させながら変換処理を行ってもよい。
【０００７】
なお、変換前の画像データは、複数の色データから構成されるカラー画像データ、単独の色データから構成されるモノクロ画像データ、等、様々なデータが考えられる。また、同画像データは様々な階調数とすることができ、例えば、２５６階調、２のｎ乗でない１００階調等としてもよい。さらに、階調誤差を用いてドットを形成する際、二値化によりドットを形成してもよいし、例えば大中小のドットを形成するために二値よりも大きい多値化によりドットを形成してもよい。
【０００８】
ところで、請求項３にかかる発明では、変換処理区分を二以上の画素をまとめたブロックとしている。そして、上記変換処理を行う画素の処理単位を決定するための処理単位情報が、ブロックとする所定数の画素の階調値に対応付けられて記憶手段により記憶されている。判定手段は、近隣する上記所定数の画素を上記ブロックとし、画像データを変換する着目ブロック内の各画素の階調値を処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定する。
着目ブロックについてブロック処理条件が満たされると判定されたとき、変換手段は、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。一方、着目ブロックについてブロック処理条件が満たされないと判定されたとき、変換手段は、着目ブロック内の画素を区分した画素区分別に上記変換処理を行うことが可能である。
従って、ブロック単位で画像変換処理を行っても高画質を維持可能な領域をブロック処理条件が成立する領域として設定すれば、画像データのうち高画質を維持可能な領域のみドットがブロック単位で形成され、高画質を維持しながら階調誤差を用いた画像変換処理をさらに効率よく行うことができる。
【０００９】
ここで、請求項１８にかかる発明のように、画素区分を１画素としてもよい。すなわち、変換手段の一例を提供することができ、画素区分別に変換処理を行う際に１画素単位という簡易な処理にて画像変換処理が行われるようになる。従って、簡易な構成にて、階調誤差を用いた画像変換処理を効率よく行うことが可能となる。
むろん、着目ブロック内を区分する画素は、上述したように１画素とする以外にも、複数の画素としてもよく、この場合であっても本発明に含まれる。また、画素区分は着目ブロック内の画素を均等に区分したものであってもよいし、着目ブロック内の画素を不均等に区分したものであってもよい。
【００１０】
上記処理単位情報には、請求項４にかかる発明のように、上記ブロック内の画素を区分してさらに小さいブロックである小ブロックとする領域の画素の階調値に対応付けて、同小ブロック内で上記変換処理を行う画素の処理単位を決定するための情報が含まれてもよい。判定手段は、着目ブロックがブロック処理条件を満たさないと判定したとき、着目ブロック内の画素を区分して小ブロックとし、画像データを変換する着目小ブロック内の各画素の階調値を処理単位情報と対比して同着目小ブロックが所定の第二のブロック処理条件を満たすか否かを判定する。着目小ブロックについて第二のブロック処理条件が満たされると判定されたとき、変換手段は、着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行う。一方、着目小ブロックについて第二のブロック処理条件が満たされないと判定されたとき、変換手段は、着目小ブロック内の画素を区分した画素区分別に上記変換処理を行うことが可能である。
着目ブロックがブロック処理条件を満たさないと判定されても、さらに小さい着目小ブロックが第二のブロック処理条件を満たすと判定されると画像変換処理は小ブロック単位で行われる。従って、きめ細やかに画像データをまとめて変換するブロックの大きさを切り替えることが可能となり、高画質を維持しながら分解能の低下が目立たない領域の変換処理をさらに高速化させ、画像変換処理をさらに効率よく行うことが可能となる。
なお、小ブロックを複数段階設けてもよい。この場合、小ブロックの画素を区分してさらに小さい小ブロックとする領域の画素の階調値に対応付けて同小ブロック内で上記変換処理を行う画素の処理単位を決定するための処理単位情報を記憶手段に記憶させ、着目小ブロック内の画素を区分してさらに小さい小ブロックとし、着目された小ブロック内の各画素の階調値と同処理単位情報とを対比して別の所定の第二のブロック処理条件を満たすか否かを判定し、同条件を満たすと判定したとき、同着目された小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目された小ブロック単位で行えばよい。
【００１１】
上記判定手段は、上記解像度取得手段にて取得された解像度が所定の第一の解像度であるときに上記第二のブロック処理条件の成立可否を判定し、同取得された解像度が所定の第二の解像度であるときには上記第二のブロック処理条件の成立可否を判定しない構成としてもよい。解像度に応じてブロックの大きさを変更するか否かが切り替わるので、高画質を維持しながら画像変換処理をさらに効率よく行うことが可能となる。
【００１２】
その際、上記第一の解像度は、上記第二の解像度よりも高解像度とされていると、高解像度のときにブロックの大きさが段階的に切り替えられる。従って、高解像度のときに高画質を維持しながら変換の処理速度を向上させ、画像変換処理をさらに効率よく行うことが可能となる。
【００１３】
上記ブロック処理条件を具体的に規定する一例として、請求項７にかかる発明のように、低密度側閾値と、同閾値よりも高ドット密度側の高密度側閾値とを設けてもよい。着目ブロック内の各画素の階調値の総和が低密度側閾値から低ドット密度側、または、高密度側閾値から高ドット密度側であるときにブロック処理条件が満たされてブロック単位の変換処理が行われ、同総和が低密度側閾値から高密度側閾値までであるときに画素区分別に変換処理が行われる。分解能の低下の目立たないドットの形成密度が小さい低ドット密度領域とドットの形成密度が大きい高ドット密度領域の両方でドットはブロック単位で形成されるので、閾値を用いるという簡易な構成ながら、画質を低下させずに画像変換処理をさらに効率よく行うことが可能となる。
なお、ブロック内の各画素の階調値の平均は同階調値の総和をブロック内の画素数で除したものであるので、同階調値の平均は同階調値の総和に含まれる。以下も、同様である。
【００１４】
また、請求項８にかかる発明のように、小ブロック用の低密度側閾値と、同閾値よりも高ドット密度側の小ブロック用の高密度側閾値とを設けてもよい。着目ブロックがブロック処理条件を満たさないときでも、上記着目小ブロック内の各画素の階調値の総和が小ブロック用の低密度側閾値から低ドット密度側、または、小ブロック用の高密度側閾値から高ドット密度側であるときに第二のブロック処理条件が満たされて小ブロック単位の変換処理が行われ、同総和が低密度側閾値から高密度側閾値までであるときに画素区分別に変換処理が行われる。ドットは小ブロック単位でも形成されるので、閾値を用いるという簡易な構成ながら、画質を低下させずに画像変換処理をさらに効率よく行うことが可能となる。
【００１５】
ここで、上記ブロック（小ブロックを含む。請求項５〜請求項１６について、同様）内の各画素の階調値の総和がとりうる範囲のうち上記高密度側閾値（小ブロック用の高密度側閾値を含む。請求項５〜請求項１６について、同様）から高ドット密度側の範囲が上記低密度側閾値（小ブロック用の低密度側閾値を含む。請求項５〜請求項１６について、同様）から低ドット密度領域側の範囲より広くされている構成としてもよい。印刷装置等の画像出力装置の高解像度化が進むなか、画像出力装置が形成する１ドットの面積は同画像出力装置に設定された１画素の面積より大きくなっている。すると、低ドット密度領域でドットを形成する割合と高ドット密度領域でドットを形成しない割合とが同じであるとすると、高ドット密度領域で形成されたドットが占める領域の面積は、低ドット密度領域でドットが形成されていない領域の面積よりも小さくなる。その結果、高ドット密度領域のほうが低ドット密度領域よりも分解能の低下が目立たないので、高密度側閾値から高ドット密度側の範囲を低密度側閾値から低ドット密度領域側の範囲より広くしても、画質を低下させずに変換の処理速度を向上させて画像変換処理をさらに効率よく行うことが可能となる。
以上のことから、本構成は、形成される１ドットの面積が設定された１画素の面積より大きい画像出力装置の出力画像を表現する画像データを生成する画像処理装置に好適である。
【００１６】
さらに、請求項１０にかかる発明のように、ブロック内の階調値の総和に対応付けられた低密度側閾値を第一および第二の低密度側閾値とから構成し、第一の低密度側閾値を、ドットの形成密度に相当する値が第二の低密度側閾値を含めて当該第二の低密度側閾値から低ドット密度側の値として、解像度別にブロック処理条件（第二のブロック処理条件を含む。請求項５〜請求項１６について、同様）の成立可否を判定してもよい。ブロック内の各画素の階調値の総和がより低解像度の第二の解像度用の第二の低密度側閾値に相当する値より低ドット密度側とすると、より低解像度の第二の解像度が取得されたときには変換処理が常にブロック単位となる一方、より高解像度の第一の解像度が取得されたときには変換処理がブロック単位またはブロックより小さい単位となる。すなわち、同総和が第二の低密度側閾値に相当する値から低ドット密度側になるにつれ、高解像度取得時よりも先に低解像度取得時で変換処理がブロックより小さい単位となることはない。従って、解像度に応じて処理単位を変更する場合に解像度に合わない処理単位で画像変換処理は行われず、画質を低下させずに画像変換処理をさらに効率よく行うことが可能となる。
【００１７】
また、請求項１１にかかる発明のように、ブロック内の階調値の総和に対応付けられた高密度側閾値を第一および第二の高密度側閾値とから構成し、第一の高密度側閾値を、ドットの形成密度に相当する値が第二の高密度側閾値を含めて当該第二の高密度側閾値から高ドット密度側の値として、解像度別にブロック処理条件の成立可否を判定してもよい。ブロック内の各画素の階調値の総和がより低解像度の第二の解像度用の第二の高密度側閾値に相当する値より高ドット密度側とすると、より低解像度の第二の解像度が取得されたときには変換処理が常にブロック単位となる一方、より高解像度の第一の解像度が取得されたときには変換処理がブロック単位またはブロックより小さい単位となる。すなわち、同総和が第二の高密度側閾値に相当する値から高ドット密度側になるにつれ、高解像度取得時よりも先に低解像度取得時で変換処理がブロックより小さい単位となることはない。従って、解像度に応じて処理単位を変更する場合に解像度に合わない処理単位で画像変換処理は行われず、画質を低下させずに画像変換処理をさらに効率よく行うことが可能となる。
【００１８】
むろん、請求項１２にかかる発明のように、第一の低密度側閾値はドットの形成密度に相当する値が第二の低密度側閾値と同じとされ、第一の高密度側閾値はドットの形成密度に相当する値が第二の高密度側閾値と同じとされてもよい。共通の低密度側閾値と高密度側閾値のみを記憶しておけばよくなるので、記憶させる閾値を少なくさせることができる。
【００１９】
むろん、上記判定手段は着目ブロック内の階調値の総和以外に基づいてブロック処理条件の成立可否を判定してもよく、上記処理単位情報には、上記ブロック内の各画素の階調値の最大値と最小値のいずれかまたは組み合わせに基づく値に対応付けられた閾値が含まれ、上記判定手段は、上記着目ブロック内の各画素の階調値の最大値と最小値のいずれかまたは組み合わせに基づく値を上記閾値と対比して同着目ブロックが上記ブロック処理条件を満たすか否かを判定する構成としてもよい。簡易な構成でブロック処理条件を満たすか否かを判定することが可能となる。また、着目ブロック内の各画素の階調値の最大値や最小値と総和との組み合わせに基づいてブロック処理条件を満たすか否かを判定するようにしてもよい。また、上記最大値や最小値と上記総和との加算値や、加重を異ならせて上記最大値や最小値と上記総和とを平均した値等に基づいてブロック処理条件を満たすか否かを判定するようにしてもよい。
【００２０】
むろん、ブロック処理条件を判定するために閾値を設けなくてもよく、上記処理単位情報は、上記ブロック内の画素の階調値に対応付けて上記処理単位を決定するための個別処理単位情報を格納した情報テーブルであり、上記判定手段は、上記着目ブロック内の画素の階調値に対応する上記個別処理単位情報を上記情報テーブルから読み出し、読み出した個別処理単位情報から上記着目ブロックが上記ブロック処理条件を満たすか否かを判定する構成としてもよい。簡易な構成ながら画質を低下させずに変換処理をさらに高速化させることができる。
【００２１】
ところで、上記変換処理区分設定は、上記解像度が大きくなるほど上記変換処理区分内の画素の数を増やす設定とされていると、上記変換処理手段は、画像データに対して設定された解像度が大きくなるほど上記変換処理区分内の画素の数を増やすことになる。また、解像度が大きくなるほど小ブロック内の画素数を増やしてもよい。解像度が大きくなるほどドット密度が大きくなるため、画像変換処理をまとめて行う画素の数を増やしても高画質を維持することができる。従って、高解像度であるときに高画質を維持しながら画像変換処理を高速化することができ、階調誤差を用いた画像変換処理をさらに効率よく行うことが可能となる。
その際、上記変換処理区分設定は、上記変換処理区分内の画素の数を上記解像度に比例した数とする設定とされていると、上記変換処理手段は、上記取得された解像度が高くなるにつれて上記出力画像上に占める面積が同じとなる画素数の近隣した画素を上記変換処理区分とすることになる。また、小ブロックの画素数を解像度に比例した数としてもよい。すると、解像度が異なっても形成されるドットについて見た目の分解能が同じとなるので、高解像度であるときに高画質をより確実に維持することができ、画像変換処理をさらに効率よく行うことが可能となる。
ここで、変換処理区分やブロックの画素数は、複数の画素の横成分と縦成分とを掛け合わせた値を基準として決定してもよいし、横成分または縦成分を基準として決定してもよい。
【００２２】
なお、上記変換処理区分設定は、上記解像度の縦横の比と一致した長方形状の領域の画素を上記変換処理区分とする設定とされていると、上記変換処理手段は、上記解像度の縦横の比と一致した長方形状の領域の画素を上記変換処理区分とすることになる。また、小ブロックも解像度の縦横の比と一致した長方形状の領域の画素としてもよい。すると、見た目の変換処理区分や小ブロックの大きさが縦横同じになるので、高画質を維持しながら変換処理を高速化させることができ、画像変換処理をさらに効率よく行うことが可能となる。
【００２３】
むろん、簡易な構成例として、上記変換処理区分設定は、ｎを正の整数として、ｎ×ｎ画素を上記変換処理区分とする設定としてもよい。小ブロックについても、ｎ’を正の整数として、ｎ’×ｎ’画素を上記小ブロックとする構成としてもよい。
【００２４】
なお、上述した変換手段は、様々な構成により階調誤差を周辺の未変換画素に拡散させることができる。例えば、周辺の未変換画素に対して階調誤差を略均等に拡散させると、簡易な構成にて誤差拡散を行うことができる。むろん、未変換画素に拡散する割合に異なる重みを持たせてもよい。変換手段が画素区分別に上記変換処理を行う際には、階調誤差を着目ブロック内の未変換画素に拡散させてもよいし、着目ブロック外の未変換画素に拡散させてもよい。
【００２５】
ところで、第二のブロック処理条件成立時に小ブロック単位で画像変換処理を行うことにより、解像度に関係なくきめ細やかに変換処理を行う処理単位を切り替えることが可能となる。そこで、請求項１７にかかる発明のように、上記記憶手段と判定手段と変換手段とを具備する構成としてもよい。
上記変換処理を行う画素の処理単位を決定するための処理単位情報が、小ブロックを含むブロックとする所定数の画素の階調値に対応付けられて記憶手段により記憶されている。判定手段は、近隣する上記所定数の画素を上記ブロックとし、画像データを変換する着目ブロック内の各画素の階調値を処理単位情報と対比して同着目ブロックが所定のブロック処理条件を満たすか否かを判定する。同条件成立時、変換手段は、着目ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目ブロック単位で行う。同条件不成立時、判定手段は、ブロック内の画素を区分して小ブロックとし、画像データを変換する着目小ブロック内の各画素の階調値を処理単位情報と対比して同着目小ブロックが所定の第二のブロック処理条件を満たすか否かを判定する。同条件成立時、変換手段は、着目小ブロック内の全画素をまとめて上記変換対象として上記変換処理を同着目小ブロック単位で行う。同条件不成立時、変換手段は、着目小ブロック内の画素を区分した画素区分別に上記変換処理を行うことが可能である。
このように、画像を複数の画素で多階調表現した画像データを入力して階調誤差を用いてドット形成の有無により表現した画像データに変換するにあたり、ブロック単位と小ブロック単位と小ブロックより小さい画素単位とをきめ細やかに切り替えながら画像データを変換することが可能となる。従って、画像データに応じた適切な大きさの処理単位にて変換処理を行うことが可能となるので、階調誤差を用いた画像変換処理を効率よく行うことが可能となる。
【００２６】
また、画像を複数の画素で多階調表現した画像データを解像度変換した後にドット形成の有無により表現した画像データに階調数変換するとともに、同階調数変換の際に変換対象の画素について当該画素の階調値および変換処理済みの画素の階調誤差に基づいて階調誤差を求めながらドットの形成有無を判断して判断結果に対応する画像データに変換する階調数変換処理を行う画像処理装置である場合、上述した判定手段は、解像度変換前の上記画像データを構成する画素の中から一または二以上の近隣した画素を処理区分とするとともに解像度変換後の上記画像データを構成する画素の中から同処理区分に対応する画素数の近隣した画素をブロックとし、上記画像データを階調数変換する着目ブロックに対応する処理区分内の画素の階調値と、同処理区分内の画素の階調値に対応付けられて上記階調数変換処理を行う画素の処理単位を決定するための処理単位情報とを対比して、同着目ブロックが所定のブロック処理条件を満たすか否かを判定してもよい。
すなわち、ブロック処理条件が満たされる領域を高画質を維持可能な領域とすれば、高画質を維持可能な領域のみドットはブロック単位で形成されるので、画像変換処理を高速化させることができる。また、解像度変換前の画像データから着目ブロックに対応する処理区分内の画素の階調値を参照することにより、着目ブロック内の画素の階調値を参照する必要がなくなるので、階調誤差を用いた画像変換処理をさらに高速化させることが可能となる。
【００２７】
ところで、上述した画像処理装置は、単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としては各種の態様を含むものであって、適宜、変更可能である。
また、上述した画像処理を行う際の手法は、所定の手順に従って処理を進めていくうえで、その根底にはその手順に発明が存在する。従って、請求項１９、請求項２０にかかる発明のように、本発明は画像処理装置の制御方法としても適用可能であり、同様の作用、効果となる。
さらに、請求項２１、請求項２２にかかる発明のように、本発明は画像データに基づく画像の印刷制御を行う印刷制御手段を備える印刷制御装置としても適用可能であり、さらに、画像を印刷する印刷手段を備える印刷装置としても適用可能であり、同様の作用、効果となる。
【００２８】
本発明を実施しようとする際に、画像処理装置にて所定のプログラムを実行させる場合もあるので、請求項２３、請求項２４にかかる発明のように、本発明は画像処理装置の制御プログラムとしても適用可能であり、さらに、その制御プログラムを記録したコンピュータ読み取り可能な記録媒体としても適用可能であり、同様の作用、効果となる。ここで、上記記録媒体は、磁気記録媒体や光磁気記録媒体の他、今後開発されるいかなる記録媒体であってもよい。二次複製品等の複製段階も問わない。一部がハードウェアで実現される場合や、一部を記録媒体上に記録しておいて必要に応じて適宜読み込む場合も本発明の思想に含まれる。
なお、画像出力装置にて出力される画像の解像度は、本画像処理プログラムにて自動的に設定されたものであってもよいし、設定入力されるものであってもよい。また、解像度は、本プログラムを実現させるコンピュータ内で設定されていてもよいし、画像出力装置内で設定されていてもよい。
【００２９】
【発明の実施の形態】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）画像処理装置の構成の概略：
（２）画像処理装置の各種手段の構成：
（３）画像処理装置が行う処理の概略：
（４）画像処理装置が行う処理の詳細：
（５）第二の実施形態：
（６）第三の実施形態：
（７）まとめ：
【００３０】
（１）画像処理装置の構成の概略：
図１は、本発明の第一の実施形態にかかる画像処理装置を含む印刷装置（広義の印刷装置）１００の概略構成を示している。本印刷装置１００は、本発明にいう画像処理装置および印刷制御装置となるパーソナルコンピュータ（ＰＣ）１０と、画像出力装置（狭義の印刷装置）であるカラー印刷可能なインクジェットプリンタ２０とから構成されている。
ＰＣ１０では、演算処理の中枢をなすＣＰＵ１１がシステムバス１０ａを介してＰＣ全体の制御を行う。同バス１０ａには、ＲＯＭ１２、ＲＡＭ１３、各種ドライブ１４，１５、各種インターフェイス（Ｉ／Ｆ）１６〜１９等が接続されている。本発明にいう記憶手段は、ハードディスクドライブ１４ａとハードディスク（ＨＤ）１４とから構成される。本発明に用いられるコンピュータは、デスクトップ型ＰＣ、ノート型ＰＣ、モバイル対応ＰＣ、等、コンピュータとして一般的な構成を有していればよく、ＰＣに限定されるものではない。
【００３１】
ＨＤ１４にはオペレーティングシステム（ＯＳ）や画像情報等を作成可能なアプリケーションプログラム（ＡＰＬ）等が格納されており、これらのソフトウェアは、実行時にＣＰＵ１１によって適宜ＲＡＭ１３に転送される。また、ＨＤ１４は、複数段階の解像度を表す解像度情報１４ｂや複数段階の変換処理区分設定１４ｃや複数の閾値からなる処理単位情報１４ｄを画像処理プログラムとともに記憶している。
入力Ｉ／Ｆ１６には、キーボード１６ａやマウス１６ｂが操作用入力機器として接続されている。また、ＣＲＴＩ／Ｆ１７には、表示用のディスプレイ１７ａが接続されている。さらに、プリンタＩ／Ｆ１９には、例えばシリアルＩ／Ｆ接続によりプリンタ２０が接続されている。
【００３２】
なお、ＨＤ１４は画像処理プログラムを記録した媒体となるが、本プログラムを格納可能な記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク、不揮発性メモリ等であってもよい。さらに、バス１０ａに接続されたモデム等の通信Ｉ／Ｆ１８をインターネット網に接続し、所定のサーバから本プログラムをダウンロードして実行することも可能である。
【００３３】
プリンタ２０は、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）、の計４色（複数の要素色）の色インクを使用するものとする。むろん、６色、７色、等、４色以外のインクを使用するプリンタを採用してもよい。また、インク通路内に泡を発生させてインクを吐出するバブル方式のプリンタや、複数色のカラートナーを使用するレーザープリンタ等、種々の印刷装置を採用可能である。
図２は、変換後の画像データに基づく画像を印刷する印刷手段であるプリンタ２０のブロック構成をＰＣ１０とともに示している。プリンタ２０では、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＡＳＩＣ２４、コントロールＩＣ２５、通信Ｉ／Ｏ２６、Ｉ／Ｆ２７がバス２０ａを介して接続されている。
【００３４】
通信Ｉ／Ｏ２６はＰＣのプリンタＩ／Ｆ１９と接続されており、プリンタ２０は通信Ｉ／Ｏ２６を介してＰＣ１０から送信されるＣＹＭＫに変換された画像のデータやページ記述言語等からなる印刷ジョブを受信する。また、ＰＣ１０から各種要求を受信したとき、通信Ｉ／Ｏ２６は対応する情報をＰＣ１０に出力する。印刷時の解像度として720 ×360dpi、1440×720dpi、2880×1440dpi 等を選択可能となっており、ＰＣ１０から通信Ｉ／Ｏ２６を介して解像度の選択情報を入手してＲＡＭ２３に記憶しておき、解像度に応じたドット単位で印刷を行うことが可能となっている。
【００３５】
カートリッジホルダ２８にはＣＹＭＫのインクカートリッジ２８ａ〜ｄが装着されており、インクカートリッジ２８ａ〜ｄ内の各インクが色別に図示しない印刷ヘッドに供給されるようになっている。ＡＳＩＣ２４は、ＣＰＵ２１と所定の信号を送受信しつつヘッド駆動部２９に対してＣＹＭＫデータに基づく印加電圧データを出力する。同ヘッド駆動部２９は、同印加電圧データに基づいて印刷ヘッドに内蔵されたピエゾ素子への印加電圧パターンを生成し、印刷ヘッドに４色のインクを解像度に応じたドット単位で吐出させる。印刷ヘッドのインク吐出面には、４色のインクを吐出する４組のノズル列が印刷ヘッドの主走査方向に並ぶように形成され、ノズル列のそれぞれは複数のノズルが副走査方向に一定の間隔で直線状に配置されている。
Ｉ／Ｆ２７に接続されたキャリッジ機構２７ａや紙送り機構２７ｂは、印刷ヘッドを主走査させたり、適宜改ページ動作を行いながらメディアを順次送り出して副走査を行ったりする。そして、ＣＰＵ２１が、ＲＡＭ２３をワークエリアとして利用しながらＲＯＭ２２に書き込まれたプログラムに従って各部を制御する。
【００３６】
ＰＣ１０では、以上のハードウェアを基礎としてバイオスが実行され、その上層にてＯＳとＡＰＬとが実行される。ＯＳには、プリンタＩ／Ｆ１９を制御するプリンタドライバ等の各種のドライバ類が組み込まれ、ＯＳの一部となってハードウェアの制御を実行する。プリンタドライバは、プリンタＩ／Ｆ１９を介してプリンタ２０と双方向の通信を行うことが可能であり、ＧＤＩ（Graphics Device Interface ）等が組み込まれたＯＳを介してＡＰＬから画像データを受け取って印刷ジョブを作成し、プリンタ２０に送出する。本画像処理プログラムは同プリンタドライバから構成されるが、ＡＰＬにより構成してもよい。
【００３７】
（２）画像処理装置の各種手段の構成：
図３は、上記ハードウェアと上記プリンタドライバとが協働して構築する画像処理装置の構成を模式的に示している。プリンタドライバは、各種モジュールを有しており、機能制御モジュールの制御に基づいて所定の機能を実現しつつ連携動作して画像データを変換することが可能である。そして、プリンタドライバの各モジュールに対応して、画像処理装置の各部が構成される。
画像入手部は、ディスプレイに表示する解像度とプリンタに出力する解像度とが設定された画像データを入力する。同画像データは、画像をドットマトリクス状の多数の画素で多階調表現したデータであり、様々な種類がある。図ではｓＲＧＢ色空間で定義されるＲＧＢから構成された画像データを示しているが、ＹＵＶ表色系における輝度（Ｙ成分）、Ｂの色差（Ｕ成分）、Ｒの色差（Ｖ成分）から構成された画像データ等でもよい。画像データの各成分も、例えば、２５６階調、１０２４階調等、様々な階調数とすることができる。ディスプレイに表示する解像度は、ディスプレイの性能に合わせたデフォルトの設定（例えば360×360dpi等）とすることができる。画像データに対してプリンタに出力する解像度を設定するには、例えば、図示しない所定の印刷インターフェイス画面を表示し、所定の解像度選択欄にて解像度の情報の操作入力を受け付け、入力された解像度の情報を同画像データに付加することにより設定することができる。また、ＡＰＬが画像データに対して解像度を設定する機能を有していれば、そのＡＰＬから解像度が設定された画像データを入手することができる。
解像度変換処理部は、記憶手段Ａ３を構成するＨＤ１４に記憶された解像度情報１４ｂを参照しながら、プリンタ２０の解像度に合わせて上記画像データに対して設定された解像度を変換する。その際、ｓＲＧＢやＹＵＶ表色系等の定義に従って、画像データを広域ＲＧＢ色空間内のＲＧＢ各２５６階調（０〜２５５の整数値）の階調データからなるＲＧＢデータに変換する。色変換処理部は、ＲＧＢデータをＣＭＹＫ各２５６階調（０〜２５５の整数値）の階調データからなるＣＭＹＫデータに色変換する。同ＣＭＹＫデータは、色インクの使用量に対応する（略比例する）階調値とされているので、階調値が小さいほどドットの形成密度が小さくなって明度が高くなり、階調値が大きいほどドットの形成密度が大きくなって明度が低くなる。階調数変換処理部は、２５６階調のＣＭＹＫデータを、ＣＭＹＫ各２階調でドット形成の有無により画像出力装置の出力画像を表現する画像データ（以下、２値化データとも記載）に階調数変換する。インターレース処理部（印刷制御手段）は、プリンタ２０の印刷ヘッドの副走査に合わせて２値化データを並び替える処理を行い、並び替え後の２値化データをプリンタ２０に送出することにより、階調数変換後の画像データに対応する画像を印刷させる制御を行う。すると、プリンタ２０は、２値化データを入手し、同２値化データに基づいて印刷用紙（メディア）上に色インクのドットを形成し、ＲＧＢデータに対応するカラー画像を印刷する。
【００３８】
本画像処理装置Ａは、階調数変換部を構成する手段Ａ１〜Ａ３を備えている。
解像度取得手段Ａ１は、解像度変換処理部に含まれており、プリンタ２０に対して設定する解像度を取得する。同解像度は予め複数段階設けられており、これらの解像度のうち解像度変換後の画像データに対して設定された解像度を取得する。変換処理手段Ａ２は、取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて変換対象として画像変換処理を同変換処理区分単位で実行することが可能である。ここで、変換処理区分設定は変換処理をまとめて行う画素の領域を表す設定であり、記憶手段Ａ３が複数段階の解像度に対応させて複数段階とされた上記変換処理区分設定１４ｃを記憶している。解像度取得手段Ａ１は、複数段階の変換処理区分設定のうち、取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とする。
【００３９】
その際、取得された解像度が大きくなるほど変換処理区分内の画素の数を増やすことにしている。例えば、比較的低解像度である720×360dpi（所定の第二の解像度）であるとき、近隣した２×２画素を変換処理区分とし、ある変換処理区分Ｂ１に着目して同変換処理区分Ｂ１内の画像データをまとめて変換することが可能となっている。一方、比較的高解像度である1440×720dpi（720×360dpiに対する所定の第一の解像度）であるとき、４×４画素を変換処理区分とし、ある変換処理区分Ｂ２に着目して同変換処理区分Ｂ２内の画像データをまとめて変換することが可能となっている。図では、着目された変換処理区分Ｂ１，Ｂ２を太線で囲っている。なお、解像度が比較的小さいとき、１画素のみを変換処理区分とし、画素別に着目画素の画像データを変換してもよい。
以下、本明細書において、720×360dpiを低解像度と呼び、1440×720dpiを高解像度と呼び、2880×1440dpi（所定の第一の解像度）の場合を超高解像度（高解像度の一種でもある）と呼ぶことにする。
【００４０】
図４は、画像データの設定が低解像度であるときに変換処理手段Ａ２が行う処理を模式的に示している。
変換処理手段Ａ２は判定手段Ａ２１と変換手段Ａ２２，Ａ２３とを備えており、同判定手段Ａ２１は上記取得された解像度に対応する変換処理区分設定で近隣する２×２画素をブロック（変換処理区分の一種）とし、画像データを変換する着目ブロック内の各画素の階調値のみに基づいて所定のブロック処理条件を満たすか否かを判定する。ここで、記憶手段Ａ１は上記処理単位情報１４ｄを記憶しており、判定手段Ａ２１は、着目ブロックＢ１内の各画素の階調値のみと処理単位情報１４ｄとを対比してブロック処理条件の成立の可否を判定する。同処理単位情報１４ｄは、ブロックとする領域の画素の階調値に対応付けられた情報であるとともに、誤差拡散法による画像変換処理を行う画素の処理単位を決定可能とする情報である。
着目ブロックＢ１が上記ブロック処理条件を満たすと判定されると、第一変換手段Ａ２２により着目ブロックＢ１内の画素の画像データが変換され、着目ブロックＢ１が上記ブロック処理条件を満たさないと判定されると、第二変換手段Ａ２３により着目ブロックＢ１内の画素の画像データが変換される。
第一変換手段Ａ２２は、着目ブロックＢ１内の各画素の階調値と拡散されてきた階調誤差である拡散誤差とに基づいて、着目ブロックＢ１全体の階調誤差を着目ブロックＢ１外の他のブロック内の未変換画素に拡散させながら着目ブロックＢ１内の画素の画像データをまとめて変換する。すなわち、ブロック単位の画像変換処理を行う。一方、第二変換手段Ａ２３は、着目ブロックＢ１内の画素を区分した画素区分別に画像変換処理を実行することが可能となっている。すなわち、ブロック全体では画素をまとめずにブロックより小さい１画素単位の画像変換処理を行う。なお、図では着目ブロックＢ３内の着目画素Ｕ１を太線で囲っている。
【００４１】
図５は、画像データの設定が高解像度であるときに変換処理手段Ａ２が行う処理を模式的に示している。
判定手段Ａ２１は、低解像度の場合と同様の処理により４×４画素の着目ブロックＢ４が所定のブロック処理条件を満たすか否かを判定する。着目ブロックＢ４がブロック処理条件を満たすと判定されると、第一変換手段Ａ２２により着目ブロックＢ４内の画素の画像データが変換されるが、着目ブロックＢ４がブロック処理条件を満たさないと判定されると、着目ブロックＢ４内の画素を２×２画素毎に区分して小ブロック（さらに小さいブロック）とし、着目された小ブロックＢ５内の各画素の階調値に基づいて所定の第二のブロック処理条件を満たすか否かを判定する。そして、当該条件が満たされると判定されると、第一変換手段Ａ２２により小ブロックＢ５内の画素の画像データが変換され、同条件が満たされないと判定されると、第二変換手段Ａ２３により小ブロックＢ５内の画素の画像データが変換される。なお、図では着目小ブロックＢ５内の着目画素Ｕ２を太線で囲っている。
このように、取得された解像度が高解像度（第一の解像度）であるときにのみ第二のブロック処理条件の成立可否が判定されて小ブロック単位での画像変換処理が行われるようになっており、取得された解像度が低解像度（第二の解像度）であるときには第二のブロック処理条件の成立可否が判定されず小ブロック単位での画像変換処理は行われない。
なお、着目ブロック内で区分される小ブロックは、略均等に区分されたものであってもよいし、不均等に区分されたものであってもよい。
【００４２】
上記変換処理区分設定１４ｃと処理単位情報１４ｄは、本画像処理プログラムに含まれており、同プログラムとともにＨＤ１４に記憶されている。
図６は、画像データに設定された解像度と上記変換処理区分設定との対応関係を示している。図に示すように、720×360dpiのとき変換処理区分設定は２×２画素であり、この場合、小ブロック単位での画像変換処理を行わない設定としてある。本実施形態では、変換処理区分内の画素の数を解像度に比例した数とする変換処理区分設定としてあり、1440×720dpiのとき変換処理区分設定は４×４画素と大きくしてあり、この場合、１段階のみの小ブロック単位での画像変換処理を行う設定としてある。また、2880×1440dpiのとき変換処理区分設定は８×８画素とさらに大きくしてあり、この場合、２段階の小ブロック単位での画像変換処理を行う設定としてある。なお、変換処理区分は解像度設定が高くなるにつれてプリンタの出力画像上に占める面積が同じとなる画素数の近隣した画素から構成されているので、解像度が異なっても形成されるドットについて見た目の分解能が同じとなる。従って、高解像度であるときに高画質をより確実に維持することができ、画像変換処理を効率よく行うことが可能となる。
【００４３】
本実施形態では、処理単位を決定するための処理単位情報１４ｄを複数の閾値から構成するとともに、これらの閾値を着目ブロック内の各画素の階調値の総和Ｓ（ブロック内の階調値）に対応付けている。
図７と図８は、上記閾値とブロック内の階調値の平均ｘとの対応関係を示している。なお、同平均ｘはドットの形成密度に相当する値であり、上記閾値は、ブロック内の階調値の平均ｘに対応付けられると、上記総和Ｓに対応付けられていることにもなる。
処理単位情報Ｔ１の閾値には、第二の解像度（低解像度）に対応するブロックの階調値の平均に対応付けられた第二の低密度側閾値ｄ１１と第二の高密度側閾値ｄ１２、第一の解像度（高解像度）に対応するブロックの階調値の平均ｘに対応付けられた第一の低密度側閾値ｄ２１，ｄ２２，ｄ３１〜ｄ３３と第一の高密度側閾値ｄ２３，ｄ２４，ｄ３４〜ｄ３６がある。ここで、ｄ２２，ｄ３２，ｄ３３は小ブロック用の低密度側閾値であり、ｄ２３，ｄ３４，ｄ３５は小ブロック用の高密度側閾値である。
これらの閾値は、０＜ｄ１１＜ｄ１２＜２５５、０＜ｄ２１＜ｄ２２＜ｄ２３＜ｄ２４＜２５５、０＜ｄ３１＜ｄ３２＜ｄ３３＜ｄ３４＜ｄ３５＜ｄ３６＜２５５の関係がある。ここで、ｘ＝０の側がドットの形成密度が小さい低ドット密度側（高明度側）であり、ｘ＝２５５の側がドットの形成密度が大きい高ドット密度側（低明度側）である。また、ブロック内の階調値の平均がとりうる範囲の中間から閾値ｄ１１，ｄ２１，ｄ２２，ｄ３１〜ｄ３３を低ドット密度側にするとともに閾値ｄ１２，ｄ２３，ｄ２４，ｄ３４〜ｄ３６を高ドット密度側としており、平均ｘの中間値２５５／２を基準としてｄ１１＜２５５／２＜ｄ１２、ｄ２２＜２５５／２＜ｄ２３、ｄ３３＜２５５／２＜ｄ３４としてある。
【００４４】
例えば1440×720dpiの場合において、平均ｘが閾値ｄ２１から低ドット密度側であるとき（図ではｘ≦ｄ２１）、ドットの形成密度が小さい所定の低ドット密度領域であり、所定のブロック処理条件成立として平均ｘに４×４＝１６画素のブロックの処理単位を対応付けている。低ドット密度領域は、画像中で明度が高い所定の高明度領域でもある。また、平均ｘが閾値ｄ２４から高ドット密度側であるとき（図ではｘ＞ｄ２４）、ドットの形成密度が大きい所定の高ドット密度領域であり、所定のブロック処理条件成立として平均ｘに４×４＝１６画素のブロックの処理単位を対応付けている。高ドット密度領域は、画像中で明度が低い所定の低明度領域でもある。このように、ブロック処理条件は、平均ｘ（総和Ｓと読み替え可。以下、同様）のとりうる範囲の中から所定の範囲を持っており、スポット的な値のみ成立する条件とはされていない。
平均ｘが閾値ｄ２２から高ドット密度側かつ閾値ｄ２３から低ドット密度側であるとき（図ではｄ２２＜ｘ≦ｄ２３）、ドットの形成密度が中間的な所定の中間調領域であり、所定の画素区分別処理条件成立として総和Ｓに１画素（画素区分）の処理単位を対応付けている。同中間調領域は、画像の明度の中間的な所定の中間調領域でもある。画素区分別処理条件も、平均ｘのとりうる範囲の中から所定の範囲を持っている。
【００４５】
平均ｘが閾値ｄ２１から高ドット密度側かつ閾値ｄ２２から低ドット密度側であるとき（図ではｄ２１＜ｘ≦ｄ２２）、上記低ドット密度領域と中間調領域との間の中間的な所定の低ドット密度側移行領域であり、所定の第二のブロック処理条件成立として平均ｘに２×２＝４画素の小ブロックを対応付けている。平均ｘが閾値ｄ２３から高ドット密度側かつ閾値ｄ２４から低ドット密度側であるとき（図ではｄ２３＜Ｓ≦ｄ２４）、上記高ドット密度領域と中間調領域との間の中間的な所定の高ドット密度側移行領域であり、所定の第二のブロック処理条件成立として平均ｘに２×２＝４画素のブロックを対応付けている。第二のブロック処理条件も、平均ｘのとりうる範囲の中から所定の範囲を持っている。
そして、変換手段Ａ３は、着目小ブロックが第二のブロック処理条件を満たすと判定されたときに着目小ブロック単位で画像変換処理を行う。
【００４６】
720×360dpiの場合、第二のブロック処理条件が成立する領域は設けられておらず、処理単位情報は、ブロック処理条件が成立する０≦ｘ≦ｄ１１またはｄ１２＜ｘ≦２５５のときに処理単位を４画素とし、画素区分別処理条件が成立するｄ１１＜ｘ≦ｄ１２のときに処理単位を１画素とする情報とされている。2880×1440dpiの場合、第二のブロック処理条件が成立する領域が２段階設けられ、処理単位情報は、ブロック処理条件が成立する０≦ｘ≦ｄ３１またはｄ３６＜ｘ≦２５５のときに処理単位を８×８＝６４画素とし、第二のブロック処理条件が成立するｄ３１＜ｘ≦ｄ３２またはｄ３５＜ｘ≦ｄ３６のときに処理単位を１６画素とし、別の第二のブロック処理条件が成立するｄ３２＜ｘ≦ｄ３３またはｄ３４＜ｘ≦ｄ３５のときに処理単位を４画素とし、画素区分別処理条件が成立するｄ３３＜ｘ≦ｄ３４のときに処理単位を１画素とする情報とされている。
【００４７】
なお、上記閾値は、画像データの種類等に応じて適宜決定される値である。本実施形態では、以下の関係を満たすように閾値を決めている。
例えば1440×720dpiの場合において、閾値ｄ２１，ｄ２４については、２５５−ｄ２４＞ｄ２１−０として、上記平均ｘがとりうる範囲のうち閾値ｄ２４から高ドット密度側の範囲が閾値ｄ２１から低ドット密度領域側の範囲より広くしている。また、小ブロック用の閾値ｄ２２，ｄ２３についても、２５５−ｄ２３＞ｄ２２−０として、上記平均ｘがとりうる範囲のうち閾値ｄ２３から高ドット密度側の範囲が閾値ｄ２２から低ドット密度領域側の範囲より広くしている。
図９の上段に示すように、プリンタ２０が形成する１ドットの面積は、同プリンタ２０に設定された１画素の面積より大きくされている。図の下段に示すように、低ドット密度領域でドットを形成する割合と高ドット密度領域でドットを形成しない割合とが同じ（図の例では、１／８）であるとすると、高ドット密度領域でドットが形成されていない領域Ｒ２の面積は、低ドット密度領域で形成されたドットが占める領域Ｒ１の面積よりも小さくなる。その結果、低ドット密度領域よりも高ドット密度領域のほうがドットの分解能の低下が目立たない。従って、２５５−ｄ２４＞ｄ２１−０、２５５−ｄ２３＞ｄ２２−０となるように閾値ｄ２４，ｄ２３を設定しても、画質を低下させずに誤差拡散法による画像変換処理をさらに高速化させることができる。
例えば、１より小さい正の係数Ｋ１，Ｋ２を用いて、Ｋ１・（２５５−ｄ２４）＝ｄ２１−０、Ｋ２・（２５５−ｄ２３）＝ｄ２２−０となるように閾値ｄ２１〜ｄ２４を設定すればよい。Ｋ１，Ｋ２は、０．９，０．８等、様々な値とすることができる。
むろん、１ドットの面積が１画素の面積とほぼ同じであれば、２５５−ｄ２４＝ｄ２１−０、２５５−ｄ２３＝ｄ２２−０となるように閾値ｄ２４，ｄ２３を設定してもよい。すると、低密度側閾値と高密度側閾値のいずれかのみを記憶しておけばよくなるので、記憶させる閾値を少なくさせることができ、所望の画質の画像を得るために処理単位情報とする閾値を調整する際に利便性が向上する。
以上のことは、720×360dpi、2880×1440dpi用の閾値についても言える。
【００４８】
ここで、ｄ３１≦ｄ２１≦ｄ１１と、第一の低密度側閾値は、ドットの形成密度に相当する値が第二の低密度側閾値を含めて当該第二の低密度側閾値から低ドット密度側の値とされている。また、ｄ１２≦ｄ２４≦ｄ３６と、第一の高密度側閾値は、ドットの形成密度に相当する値が第二の高密度側閾値を含めて当該第二の高密度側閾値から高ドット密度側の値とされている。なお、1440×720dpiを2880×1440dpi（第一の解像度）に対する第二の解像度とすることもでき、この場合、ｄ３２≦ｄ２２と、小ブロック用の第一の低密度側閾値は、ドットの形成密度に相当する値が小ブロック用の第二の低密度側閾値を含めて当該第二の低密度側閾値から低ドット密度側の値とされていることになる。また、ｄ２３≦ｄ３５と、小ブロック用の第一の高密度側閾値は、ドットの形成密度に相当する値が小ブロック用の第二の高密度側閾値を含めて当該第二の高密度側閾値から高ドット密度側の値とされていることになる。
例えば、図８に示す平均ｘの軸上で、高解像度の場合に１６画素単位の変換処理と４画素単位の変換処理とを切り替える閾値ｄ２１，ｄ２４の位置は、低解像度の場合に４画素単位の変換処理と１画素単位の変換処理とを切り替える閾値ｄ１１，ｄ１２の位置を含めて同位置から外側（それぞれ低ドット密度側、高ドット密度側）とされている。なお、後述する図１２に示すように、高解像度の場合の１６画素、４画素の面積は、それぞれ低解像度の場合の４画素、１画素の面積と同じである。その結果、高解像度の場合にまとめられる４×４画素のブロックの階調値の平均値と低解像度の場合にまとめられる２×２画素のブロックの階調値の平均値とが同じとなる条件、すなわち、インク使用量が同じとなる条件のもとで、高解像度の場合におけるプリンタの出力画像上に占める処理単位の面積は低解像度の場合における処理単位の面積と同じかまたは小さくなる。
変換処理は解像度が高くなるほど単位面積当たりの画素数が増えるため処理時間がかかることになるため、ユーザは高解像度であるときの画質は低解像度における画質と同等以上であることを期待する。上述したように各種閾値を設定することにより、解像度間で画質の逆転現象が起きないように変換処理を選択することになり、階調値のとりうる階調領域の全領域にわたって高解像度であるときの画質を低解像度における画質以上にさせることができる。従って、解像度に応じて処理単位を変更する場合に解像度に合わない処理単位で画像変換処理は行われず、画質を低下させずに画像変換処理をさらに効率よく行うことが可能となる。
なお、上述した各種閾値は、ブロックの階調値の平均または総和にかかわらず一定値とされてもよいし、ブロックの階調値の平均または総和に応じて変化させるようにしてもよい。
【００４９】
図１０は、本画像処理装置が行う処理を示すフローチャートである。本フローは、ＰＣ１０のＣＰＵ１１によって行われるものである。
ＡＰＬに備えられたＡＰＬ用印刷機能にてディスプレイ１７ａに表示される印刷実行メニューが選択されると、画像処理プログラムが起動し、画像入力部にてＲＧＢに基づく画像データを入手する（ステップＳ１０５。以下、「ステップ」の記載を省略）。その際、画像を印刷させる解像度を選択させる等の解像度の選択に関する情報が含まれていれば、その情報も入手する。
例えば、ＡＰＬがＨＤ１４に記憶された解像度情報１４ｂを参照してプリンタにて印刷可能な複数段階の解像度を表示し、これらの解像度の中からいずれかの解像度を選択する操作入力を受け付け、選択入力された解像度を画像データに含める処理を行うことにより、画像データに上記解像度を選択させる情報を含めることができる。
【００５０】
次に、解像度変換処理部にて、プリンタ２０の解像度に合わせて上記画像データに対して設定された解像度を取得する（Ｓ１１０）。解像度を取得する際、ＡＰＬから解像度を選択させる情報が含まれていれば、その情報に対応する解像度を取得する。解像度を選択させる情報が含まれていなければ、デフォルトの解像度（例えば、720×360dpi）を取得する。また、図示しない印刷インターフェイス画面を表示し、同画面に設けられた印刷モードや印刷媒体の種類を選択する欄にて各種選択入力を受け付け、ＨＤ１４に記憶された解像度情報１４ｂを参照しながらプリンタにて印刷可能な複数段階の解像度のうち選択入力された内容に対応する解像度を画像データに対して設定しつつ同解像度を取得する処理を行うことにより、画像データに対して設定された解像度を取得することが可能となっている。むろん、同解像度情報１４ｂを参照してプリンタにて印刷可能な複数段階の解像度を表示し、これらの解像度の中からいずれかの解像度を選択する操作入力を受け付け、選択入力された解像度を画像データに対して設定しつつ同解像度を取得する処理を行うことにより、画像データに対して設定された解像度を取得してもよい。
さらに、入手した画像データの解像度をプリンタ２０が印刷するための解像度に解像度変換する、解像度変換処理を行う（Ｓ１１５）。本実施形態では、解像度変換後の画像データをＲＧＢ各２５６階調（０〜２５５の整数値）からなるＲＧＢデータとするものとして説明する。ここで、階調値が大きくなるほどＲＧＢ各成分が大きくなり、ＲＧＢ全ての階調値が０であるときはほぼブラックに相当し、ＲＧＢ全ての階調値が２５５であるときはインクのドットが形成されないことになる。なお、入手した画像データの解像度が高い場合には、例えば一定の割合でデータを間引くことにより解像度を変換し、入手した画像データの解像度が低い場合には、例えば線形補間により画像データを補間して解像度を変換して、解像度変換後のＲＧＢデータとする。
【００５１】
さらに、色変換処理部にて、ＬＵＴ（ルックアップテーブル）と呼ばれる色変換テーブルを参照して、ＲＧＢデータをＣＭＹＫの色インクのそれぞれに対応したＣＹＭＫデータに変換する、色変換処理を行う（Ｓ１２０）。本実施形態のＬＵＴは、２５６階調のＲＧＢそれぞれの階調値をＣＭＹＫそれぞれについて２５６階調とされた階調値に対応させたテーブルであり、補間演算を前提として、例えば、１７の３乗の格子点に対応した大量のデータを備えている。変換されたＣＭＹＫデータも、画像をドットマトリクス状の画素で多階調表現した画像データであり、本実施形態ではＣＭＹＫ各２５６階調（０〜２５５の整数値）からなるデータであるとして説明する。同ＣＭＹＫデータは、階調値が大きくなるほどＣＭＹＫ各成分が大きくなり、印刷媒体上に形成されるドット密度は大きくなる。
【００５２】
そして、階調数変換処理部にて、２５６階調のＣＭＹＫからなる画像データをドット形成の有無により表現した画像データに変換する、階調数変換処理を行う（Ｓ１２５）。その際、いわゆる誤差拡散法により、各画素の階調誤差を他の未変換画素に拡散させながら画像データを変換する。
階調数変換前のＣＭＹＫデータは２５６階調であるが、プリンタ２０は色インク別にドットを形成するか否かにより印刷を行うため、本実施形態ではプリンタ２０に送出するデータを「ドットを形成する」意味の階調値「２５５」または「ドットを形成しない」意味の階調値「０」のいずれかに変換して２値化データを生成するようにしている。実際には２値化データを１ビットで表現しているため、階調値「２５５」をビットオンに対応させ、階調値「０」をビットオフに対応させた２値化データを生成する。以下、便宜上「２５５」と「０」の２値に変換するものとして説明する。
詳しくは後述するが、所定の処理条件に応じてブロック単位で階調数変換処理を行うようにしており、高画質が維持されながら画像変換処理は高速化されるようになっている。
【００５３】
その後、インターレース処理部にて、プリンタ２０のドットの形成順序を考慮しながら２値化データを並べ替えるインターレース処理を行う（Ｓ１３０）。そして、解像度変換処理部にて取得された解像度の選択情報とともに、最終的に得られた画像データをプリンタ２０に対して送出し（Ｓ１３５）、本フローを終了する。すると、プリンタ２０は、解像度の選択情報を入手するとともに同画像データを入手し、印刷ヘッドを駆動して解像度に対応した各色インクのドットを印刷媒体上に形成する。その結果、ＡＰＬからの画像データに対応したカラー画像が印刷用紙に印刷されることになる。
【００５４】
（３）画像処理装置が行う処理の概略：
図１１は、本画像処理装置の変換処理手段が行う階調数変換処理をフローチャートにより示している。なお、変換前の画像データはＣＭＹＫ別とされた階調値から構成されているので、図のフローはＣＭＹＫ別に行われることになるが、フローをわかりやすくするため図示を省略している。また、変換前の画像データはＲＡＭ１３に記憶されているとともに、各画素から拡散させた階調誤差を記憶する領域や変換した画像データを記憶する領域もＲＡＭ１３に設けられている。
まず、上記Ｓ１１０にて取得された解像度に応じて処理を分岐させる（Ｓ２０２）。本実施形態では、低解像度である720×360dpiのときにＳ２０４に進み、高解像度である1440×720dpiのときにＳ２１２に進み、超高解像度である2880×1440dpiのときにＳ２２０に進むようにしている。
分岐後の各処理の最初に、処理単位情報をＲＡＭ１３内の所定領域に格納する等の各種初期設定を行う（Ｓ２０４，Ｓ２１２，Ｓ２２０）。そして、低解像度の場合に近隣した２×２画素をまとめて変換処理区分であるブロックとし、高解像度の場合に近隣した４×４画素をまとめて変換処理区分であるブロックとし、超高解像度の場合に近隣した８×８画素をまとめて変換処理区分であるブロックとして、画像データを変換する着目ブロックの位置を設定する（Ｓ２０６，Ｓ２１４，Ｓ２２２）。
【００５５】
図１２は、着目ブロックを模式的に示している。ここで、図の上下方向を縦方向、左右方向を横方向とする。実際には縦方向の解像度に対し横方向の解像度は２倍であるが、各画素Ｕ０１〜Ｕ０３を正方形で図示している。また、異なる解像度間で出力画像上の面積が同じとなるように、各画素Ｕ０１〜Ｕ０３と着目ブロックＢ０１〜Ｂ０３を描いている。図に示すように、高解像度の場合の１画素の面積は低解像度の場合の１画素の面積の４分の１であり、超高解像度の場合の１画素の面積は低解像度の場合の１画素の面積の１６分の１である。
階調数変換前のＣＭＹＫデータは、画像をドットマトリクス状の画素で２５６階調表現したＣＭＹＫ別のデータである。そして、全画素について着目ブロックＢ０１〜Ｂ０３と同じ大きさのブロックとし、そのうちのいずれかのブロックを着目ブロックとして設定して、ブロック全体またはブロックを区分したさらに小さいブロックまたは画素別に誤差拡散法による変換処理を行う。本実施形態では、多数の画素を区分する多数のブロックが図に示す着目ブロックＢ０１〜Ｂ０３の単位で上下左右方向に整然と並んでおり、画像データの変換処理の順序は、左上のブロックから開始して順番に右上のブロックまでとし、その後一つずつ下の左端のブロックから順番に右端のブロックまでとして、最後に右下のブロックとしている。むろん、変換処理の順序は、適宜変更可能であり、解像度に応じて異なる順序とすることも可能である。
なお、ブロックは正方形状である以外にも、例えば、長方形状、横１列に並んだ複数の画素のような直線状、ある基準画素と同基準画素の右隣と左下と下隣の画素の計４画素とをまとめた形状等でもよい。
【００５６】
着目ブロックの位置を設定すると、低解像度の場合には２×２画素、高解像度の場合には４×４画素、超高解像度の場合には８×８画素、の着目ブロック内で誤差拡散法を用いて解像度別の変換処理を行う（Ｓ２０８，Ｓ２１６，Ｓ２２４）。
解像度別の変換処理では、画質を低下させないように、着目ブロックが画像中で明度の高いハイライト領域すなわち高明度領域にあるのか、明度の低い低明度領域にあるのか、明度の中間的な中間調領域にあるのか、ハイライト領域と中間調領域との間の領域にあるのか、中間調領域と低明度領域との間の領域にあるのか等を判定し、判定結果に応じた変換処理を行う。例えば、低解像度の場合には、変換処理の処理単位を２×２画素の着目ブロックＢ０１全体とするか、画素Ｕ０１別とするか、を切り替えながら誤差拡散法による変換処理を行う。高解像度の場合には、処理単位を４×４画素の着目ブロックＢ０２全体、着目ブロックＢ０２内の画素を区分してさらに小さい２×２画素のブロックＢ０４、画素Ｕ０２別、とするかを切り替えながら変換処理を行う。超高解像度の場合には、処理単位を８×８画素の着目ブロックＢ０３全体、着目ブロックＢ０３内の画素を区分してさらに小さい４×４画素のブロックＢ０５、同ブロックＢ０５の画素を区分してさらに小さい２×２画素のブロックＢ０６、画素Ｕ０３別、とするかを切り替えながら変換処理を行う。
【００５７】
解像度別の変換処理を行うと、画像データの全ブロックについて変換処理を終了したか否かを判断する（Ｓ２１０，Ｓ２１８，Ｓ２２６）。変換処理を行っていないブロックがある場合、低解像度の場合にはＳ２０６に戻り、高解像度の場合にはＳ２１４に戻り、超高解像度の場合にはＳ２２２に戻り、前回の着目ブロックの右側にブロックがあるときには当該ブロックを着目ブロックの位置として設定し、前回の着目ブロックの右側にブロックがないときには一つ下の左端のブロックを着目ブロックとして設定する。そして、全ブロックについて変換処理を終了するまで繰り返し解像度別の変換処理を行う。
このようにして、複数段階の変換処理区分設定のうち解像度取得手段にて取得された解像度に対応する変換処理区分設定で近隣する画素を変換処理区分とし、同変換処理区分内の全画素をまとめて変換対象として画像変換処理を同変換処理区分単位で実行可能としている。
その後、上記Ｓ１３０のインターレース処理が行われ、プリンタ２０に対してドット形成の有無により表現した画像データが送出され、画像データに対して設定された解像度にて画像を印刷させることになる。
【００５８】
図１３は、２×２画素のブロック単位で誤差拡散を行いながら画像データを変換する様子を説明する説明図である。なお、変換前の画像データはＲＡＭ１３内の所定領域に格納されているとともに、変換後の画像データはＲＡＭ１３内の別の所定領域に格納されることになるが、わかりやすく説明するため、変換処理が終了した画素については変換後の画像データを記載している。
図の上段は、着目ブロックＢ１２の左隣のブロックＢ１３まで誤差拡散を伴う画像変換処理が終了した状態を示している。図の例では、着目ブロックＢ１２は画像中で明度の高い領域となっており、着目ブロックＢ１２内の各画素Ｐａ〜Ｐｄのいずれにも階調値２０（各画素内の上段に記載）が格納されているとともに、他のブロックから階調誤差５０（各画素内の下段に記載）が拡散されてきているものとする。また、処理の一例として、各画素Ｐａ〜Ｐｄの階調値の総和Ｓ１が閾値１００以下のときにブロック処理条件が成立するものとし、着目ブロックＢ１２の階調値と拡散誤差の総和が閾値１５０よりも大きいときに同着目ブロックＢ１２内の１画素にのみドットを形成するものとする。むろん、これらの閾値は一例にすぎない。
【００５９】
ここで、階調値の総和Ｓ１は８０となるのでブロック処理条件は成立し、同画素の拡散誤差の総和は２００となり、着目ブロックＢ１２の階調値と拡散誤差との総和は８０＋２００＝２８０であるので着目ブロックＢ１２内の１画素にのみドットを形成することになる。本実施形態では、左隣のブロックＢ１３のように、着目ブロックＢ１２の左上の画素Ｐａにドットを形成し（画素Ｐａの階調値を２５５とし）、残りの画素Ｐｂ〜Ｐｄの階調値を０とすることにしている。このように、着目ブロック内の所定位置の画素にのみドットを形成することにより、変換処理が簡素化されるので、画像データの変換が迅速に行われることになる。ここで、１画素にのみドットを形成する場合には、画素Ｐｂ〜Ｐｄのいずれかにドットを形成してもよいし、着目ブロック内の画素のうち最も階調値の大きい画素にドットを形成してもよいし、ランダムに画素を選択してドットを形成してもよい。
【００６０】
着目ブロック全体の階調誤差は、着目ブロックＢ１２の階調値と拡散誤差との総和から画像データ変換後の着目ブロックの階調値の総和を差し引いた値となる。図の例では、着目ブロックＢ１２の階調値と拡散誤差との総和は２８０であるから、変換後の着目ブロックＢ１２の階調値の総和２５５を差し引くことにより、階調誤差は２５となる。そして、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させる。図では、着目ブロックＢ１２に隣接した６つの未変換画素Ｕ１１〜Ｕ１６に階調誤差を拡散させることになる。なお、左上のブロック内の画素や、上隣のブロック内の画素や、左隣のブロック内の画素等は変換処理済みであるので、これらの画素には階調誤差を拡散させないようにしている。
【００６１】
また、同階調誤差を他のブロック内の未変換画素に対して略均等に拡散させるようにしている。図の例では、着目ブロックＢ１２全体の階調誤差は２５であり、他のブロック内の未変換画素は６つあるので、２５を６で除して小数点以下を四捨五入した４ずつ未変換画素に拡散させる。階調誤差が６で割り切れない場合には、所定位置の未変換画素Ｕ１６に拡散させる階調誤差を調整し、拡散させる階調誤差の合計を着目ブロックＢ１２全体の階調誤差と一致させる。その結果、未変換画素Ｕ１６には階調誤差「５」が拡散される。
なお、様々な手法で着目ブロックの階調誤差を周辺の未変換画素に拡散させることができ、例えば、同階調誤差を、着目ブロックの右隣、左下、下隣、右下のブロック内の画素一つのみに拡散させてもよいし、着目ブロックに隣接していない未変換画素に拡散させてもよいし、未変換画素の位置に応じて拡散する割合を異ならせてもよい。
また、着目ブロックが画像中で明度の低い領域でも、同様の考え方でブロック単位で画像データを変換することができる。
【００６２】
なお、ブロック処理条件の成立可否を判定する際、着目ブロック内の画素全ての階調値と拡散誤差との総和を用いて判定すると、ブロック内の各画素の階調値の総和が同じでも、ブロック内の拡散誤差の大きさにより、画像変換処理はブロック単位の処理となったり１画素単位の処理となったりする。試験を行ったところ、着目ブロック内の画素全ての階調値と拡散誤差との総和を用いたブロック処理条件の成立可否の判定結果により処理単位を切り替えると、ブロック単位の処理が行われたブロックと１画素単位の処理が行われたブロックとで形成されるドットのパターンが異なり、意図しないドットの模様が現れることがあった。本実施形態では、着目ブロック内に拡散されてきた階調誤差を含めずに着目ブロック内の画素全ての階調値のみを用いてブロック処理条件の成立可否を判定して処理単位を切り替えることにより、意図しない模様が現れることを防いでいる。
【００６３】
（４）画像処理装置が行う処理の詳細：
以下、本画像処理装置が行う処理の詳細について、高解像度の場合を例にとって説明する。
図１４は、図１１のＳ２１６で行われる高解像度用変換処理を示すフローチャートである。
まず、ＲＡＭ１３からＣＭＹＫ別に１６画素からなる着目ブロック内の各画素の階調値を読み込み（Ｓ３０２）、読み込んだ階調値の総和Ｓ２を算出する（Ｓ３０４）。ここで、図１２の中程に示した着目ブロックＢ０２内の１６画素の階調値をＤＡｉ（ｉ＝１〜１６）で表すと、以下の式により階調値の総和Ｓ２を算出することができる。
Ｓ２ ＝ Σ（ＤＡｉ）    ・・・（１）
そして、後述するように、総和Ｓ２を、所定のブロック処理基準値である閾値Ｄ２１，Ｄ２４と対比して、高解像度の場合におけるブロック処理条件を満たすか否かを判定し、同条件成立時には１６画素単位で変換処理を行い、同条件不成立時にはより小さい処理単位にて変換処理を行うようにしている。ここで、閾値Ｄ２１，Ｄ２４は、ブロックの階調値の平均を基準とした閾値ｄ２１，ｄ２４にブロックの画素数１６を乗じた値であり、１６画素単位の変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものである。
【００６４】
階調値の総和Ｓ２を算出すると、Ｓ２が０であるか否かを判断する（Ｓ３０６）。着目ブロック内の各画素の階調値が全て０であるときのみ総和Ｓ２は０となるので、ＣＭＹＫ別に見たときに着目ブロック内の各画素の階調値が全て０であるときに条件成立となってＳ３０８に進み、各画素の階調値のうち一つでも１以上のものがあれば条件不成立となってＳ３１０に進む。
Ｓ３０８では、着目ブロック内の画素全てをオフすなわちドットを形成しない状態とする。すなわち、着目ブロック内の変換後の画像データは全ての画素において０とされ、「ドットを形成しない」画像データとなる。その後、詳しくは後述するが、着目ブロック全体で生じる階調誤差を算出し（Ｓ３２４）、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させ（Ｓ３２６）、本フローを終了する。着目ブロック内の各画素の階調値が全て０である場合には、後述するＳ３１２の１６画素単位変換処理（その１）が行われないので画像変換処理を高速化させることができる。
【００６５】
Ｓ３１０では、総和Ｓ２が閾値Ｄ２１よりも大きいか否かを判断する。むろん、Ｓ２≧Ｄ２１であるか否かを判断するようにしてもよい。Ｓ２＞Ｄ２１のとき着目ブロックが階調値の小さい領域におけるブロック処理条件を満たさないと判定してＳ３１４に進み、Ｓ２≦Ｄ２１のとき同条件を満たすと判定してＳ３１２に進む。
Ｓ３１２では、１６画素単位変換処理（その１）を行い、本フローを終了する。Ｓ３１２が行われるのは、着目ブロックが画像中で明度の高い領域にあるときであり、ドット形成密度が小さいため、ブロック単位でドットを形成しても画像の分解能の低下は目立たず、高画質を維持することが可能である。
【００６６】
図１５の上段は、４×４画素単位の画像変換処理を模式的に示している。なお、図の上段において、着目ブロックＢ２２内の１６画素のいずれにも階調値２０が格納されているとともに、他のブロックから拡散されてきた階調誤差の総和は８００とする。また、処理の一例として、階調値の総和Ｓ２が閾値４００以下のときにブロック処理条件が成立するものとし、着目ブロックＢ２２の階調値と拡散誤差の総和が閾値９５０よりも大きいときに同着目ブロックＢ２２内の４画素をオンにするものとする。むろん、これらの閾値は一例にすぎない。
ここで、総和Ｓ２はブロック処理条件成立となる３２０であり、拡散誤差の総和は８００であるので、着目ブロックＢ２２内の各画素の階調値と拡散誤差との総和は４画素オンとなる１１２０となる。本実施形態では、１６画素の着目ブロック内で４画素オンとするとき、左隣のブロックＢ２３のように、一番上の最も左の画素Ｐｅと、上から二番目の最も右の画素Ｐｆと、上から三番目の最も左の画素Ｐｇと、一番下の最も右の画素Ｐｈとにドットを形成する（階調値を２５５にする）ようにしている。また、同着目ブロック内で３画素オンとするときには画素Ｐｅ〜Ｐｇをオンとし、２画素オンとするときには画素Ｐｅ，Ｐｆをオンとし、１画素オンとするときには画素Ｐｅのみをオンとするようにしている。むろん、これ以外にも様々な手法により着目ブロック内で１〜４画素にドットを形成することができる。
【００６７】
着目ブロック全体の階調誤差は、着目ブロックＢ２２の階調値と拡散誤差との総和１１２０から画像データ変換後の着目ブロックの階調値の総和２５５×４＝１０２０を差し引いた値となる。図の例では、階調誤差は１００となり、着目ブロック全体の階調誤差を他のブロック内で同着目ブロックに隣接した未変換画素Ｕ２１〜Ｕ３０に拡散させる。本実施形態では、同階調誤差を未変換画素Ｕ２１〜Ｕ３０に対して略均等に拡散させるとともに、階調誤差が１０で割り切れない場合には未変換画素Ｕ３０に拡散させる階調誤差を調整している。むろん、これ以外にも様々な手法で同階調誤差を周辺の未変換画素に拡散させることができる。
このようにして、４×４画素単位で誤差拡散法による画像変換処理を行うことができる。
【００６８】
図１６は、ブロック処理条件成立時に行われる１６画素単位変換処理（その１）をフローチャートにより示している。
まず、４×４画素の着目ブロックについて、着目ブロックの階調値と拡散誤差との総和である補正データＢｘを算出する（Ｓ３５２）。着目ブロック内の各画素に拡散されてきた拡散誤差をそれぞれＥｉ（ｉ＝１〜１６），とすると、着目ブロック全体に拡散されてきた拡散誤差ＳＥは、以下の式から求めることができる。
ＳＥ ＝ Σ（Ｅｉ）    ・・・（２）
着目ブロックの階調値の総和Ｓ２を用いると、補正データＢｘは以下の式により算出することができる。
Ｂｘ ＝ Ｓ２ ＋ ＳＥ    ・・・（３）
そこで、ＲＡＭ１３から着目ブロック内の各画素の拡散誤差Ｅ１を読み出し、上記式（２），（３）により補正データＢｘを算出する。なお、各画素の拡散誤差は、上記Ｓ３０２で各画素の階調値を読み出すときに一緒に読み出しておいてもよい。
【００６９】
本実施形態では、着目ブロック内で１〜４画素のオンを可能にするため、ｔｈ２１＜ｔｈ２２＜ｔｈ２３＜ｔｈ２４である四種類の閾値を用いている。これらの閾値は、画像データの階調値の小さい領域において、それぞれ、着目ブロック内に１，２，３，４ドット形成するか否かの境界値として予め設定されるものである。Ｓ３５４では、Ｂｘ＞ｔｈ２１であるか否かを判断する。Ｂｘ≦ｔｈ２１のとき、着目ブロック内の画素全てをオフ、すなわち、ドットを形成せず（Ｓ３５６）、Ｓ３７２に進む。Ｂｘ＞ｔｈ２１のとき、Ｂｘ＞ｔｈ２２であるか否かを判断する（Ｓ３５８）。Ｂｘ≦ｔｈ２２のとき（ｔｈ２１＜Ｂｘ≦ｔｈ２２）、着目ブロック内で１画素をオン、すなわち、ドットを形成し（Ｓ３６０）、Ｓ３７２に進む。Ｂｘ＞ｔｈ２２のとき、Ｂｘ＞ｔｈ２３であるか否かを判断する（Ｓ３６２）。Ｂｘ≦ｔｈ２３のとき（ｔｈ２２＜Ｂｘ≦ｔｈ２３）、着目ブロック内で２画素をオンとし（Ｓ３６４）、Ｓ３７２に進む。Ｂｘ＞ｔｈ２３のとき、Ｂｘ＞ｔｈ２４であるか否かを判断する（Ｓ３６６）。Ｂｘ≦ｔｈ２４のとき（ｔｈ２３＜Ｂｘ≦ｔｈ２４）、着目ブロック内で３画素をオンとし（Ｓ３６８）、Ｓ３７２に進む。Ｂｘ＞ｔｈ２４のとき、着目ブロック内で４画素をオンとし（Ｓ３７０）、Ｓ３７２に進む。
このようにして、画像データの変換の際に変換対象の１６画素について当該１６画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。着目ブロック内で複数のドットをまとめて形成することができるため、着目ブロック内で１ドットしか形成できなかった従来と比べ、画質を低下させることなく変換処理をより高速化させることが可能となる。
なお、着目ブロック内で１画素のみオンとするようにしてもよいし、全画素オフまたは４画素オンの二段階のみ切り替えるようにしてもよいし、ｔｈ２４’＞ｔｈ２４なる閾値ｔｈ２４’を設けてＢｘ＞ｔｈ２４’の場合に５画素オンとするようにしてもよい。
【００７０】
Ｓ３７２では、着目ブロック全体の階調誤差を算出する。ここで、画像データ変換後の着目ブロック内に形成されるドット数をＮｄｏｔとすると、画像データ変換後の着目ブロック内における各画素の階調値の総和Ｓｄｏｔは、以下の式から求めることができる。
Ｓｄｏｔ ＝ ２５５ × Ｎｄｏｔ    ・・・（４）
すなわち、着目ブロック全体で生じる階調誤差Ｅは、以下の式のように、着目ブロック内の各画素の階調値と拡散誤差との総和から画像データ変換後の着目ブロック内における各画素の階調値の総和を差し引くことにより算出することができる。
Ｅ ＝ Ｓ２ ＋ ＳＥ − Ｓｄｏｔ    ・・・（５）
そして、階調誤差Ｅを他のブロック内の未変換画素に略均等に拡散させ（Ｓ３７４）、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
その後はＳ２１８にて全ブロックについて変換処理が終了したか否かが判断され、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
【００７１】
図１４のＳ３１４では、総和Ｓ２が閾値Ｄ２４（Ｄ２４＞Ｄ２１）よりも大きいか（または、以上か）否かを判断する。Ｓ２＞Ｄ２４のとき画像データの階調値の大きい領域におけるブロック処理条件を満たすと判定してＳ３１８に進み、それ以下のとき（Ｄ２１＜Ｓ２≦Ｄ２４）同条件を満たさないと判定してＳ３１６に進む。なお、画像データ中でＤ２４＜Ｓ２を満たす領域は、画像中で明度の低い領域である。
Ｓ３１６では、１６画素より小さい処理単位で変換処理を行う小ブロック変換処理を行い、本フローを終了する。
【００７２】
図１７は、上記小ブロック変換処理を示すフローチャートである。
まず、４×４画素の着目ブロック内の画素を区分して２×２画素のさらに小さいブロックである小ブロックとし、画像データを変換する着目された着目小ブロックの位置を設定する（Ｓ４０２）。図１２を参照して説明すると、小ブロックＢａ〜Ｂｄは着目ブロックＢ０２内において点線または実線で区切られた２×２画素から構成され、着目小ブロックは小ブロックＢａ〜Ｂｄのいずれかに設定される。そして、小ブロック単位で変換処理を行うことになる。本実施形態では、画像データの変換処理の順序を、小ブロックＢａ，Ｂｂ，Ｂｃ，Ｂｄの順としている。むろん、変換処理の順序は、適宜変更可能である。また、小ブロックは、正方形状である以外にも、例えば、長方形状、横１列に並んだ複数の画素のような直線状等でもよいし、横３×縦２画素と横１×縦２画素のように不均等に区分されてもよい。
【００７３】
次に、着目小ブロックの階調値をＣＭＹＫ別に読み込み（Ｓ４０４）、読み込んだ階調値の総和Ｓ３を算出する（Ｓ４０６）。ここで、着目小ブロック内の４画素の階調値をＤＡｉ（ｉ＝１〜４）で表すと、上記式（１）と同様にして総和Ｓ３を算出することができる。
Ｓ３ ＝ Σ（ＤＡｉ）    ・・・（６）
そして、後述するように、総和Ｓ３を、所定の小ブロック処理基準値である閾値Ｄ２２，Ｄ２３と対比して、着目小ブロックが第二のブロック処理条件を満たすか否かを判定し、同条件成立時に４画素の小ブロック単位で画像変換処理を行い、同条件不成立時に１画素単位で画像変換処理を行う。ここで、閾値Ｄ２２，Ｄ２３は、ブロックの階調値の平均を基準とした閾値ｄ２２，ｄ２３にブロックの画素数４を乗じた値であり、４画素単位の変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものである。
【００７４】
総和Ｓ３を算出すると、Ｓ３がＤ２２よりも大きいか（または、以上か）否かを判断する（Ｓ４０８）。同判断は、Ｓ４１２とともにＣＭＹＫ別に行われる。Ｓ３＞Ｄ２２のとき画像データの階調値の比較的小さい領域における第二のブロック処理条件を満たさないと判定してＳ４１２に進み、Ｓ３≦Ｄ３１のとき同条件を満たすと判定してＳ４１０に進む。
【００７５】
Ｓ４１０では、４画素単位変換処理（その１）を行い、Ｓ４１８に進む。図１５の下段に示すように、４×４画素の着目ブロックＢ２２内を２×２画素に区分して小ブロックとし、小ブロック単位の変換処理を行う。小ブロック全体で１画素オンにする場合、着目小ブロックＢ２４の左上の画素にドットを形成することにしているが、様々な手法によりドットを形成することが可能である。また、着目小ブロック全体の階調誤差を着目小ブロック外の未変換画素Ｕ４１〜Ｕ４５に略均等に（図の例では、２５／５＝５ずつ）拡散させる。むろん、これ以外にも様々な手法で階調誤差を周辺の未変換画素に拡散させることができる。このようにして、着目小ブロック全体の階調誤差を着目小ブロック外の未変換画素に拡散させながら、着目小ブロック内の画素の画像データをまとめて変換することができる。なお、着目小ブロックが画像中で明度の低い領域でも、同様の考え方で小ブロック単位で画像データを変換することが可能である。
【００７６】
図１８は、第二のブロック処理条件成立時に行われる４画素単位変換処理（その１）をフローチャートにより示している。
まず、着目ブロックについて、着目ブロックの階調値と拡散誤差との総和である補正データＢｘを算出する（Ｓ４５２）。着目ブロック全体に拡散されてきた拡散誤差ＳＥは、ｉ＝１〜４として、上記式（２）により算出することができる。そして、着目ブロックの階調値の総和Ｓ１を用いると、補正データＢｘは、以下の式により算出することができる。
Ｂｘ ＝ Ｓ１ ＋ ＳＥ    ・・・（７）
次に、Ｂｘが所定の閾値ｔｈ１１よりも大きいか（または、以上か）否かを判断する（Ｓ４５４）。Ｂｘ＞ｔｈ１１の場合、着目ブロック内の１画素のみオン（左上の画素の階調値を２５５）とし、残りの３画素の階調値を０とする（Ｓ４５６）。一方、Ｂｘ≦ｔｈ１１の場合、着目ブロック内の画素全てをオフ（４画素全ての階調値を０）とする（Ｓ４５８）。このようにして、画像データの変換の際に変換対象の４画素について当該４画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。
【００７７】
その後、着目ブロック全体で生じる階調誤差を算出する（Ｓ４６０）。ここで、画像データ変換後の着目ブロック内に形成されるドット数をＮｄｏｔとして、上記式（４）により画像データ変換後の着目ブロックの階調値の総和Ｓｄｏｔを求め、以下の式により着目ブロック全体で生じる階調誤差Ｅを算出する。
Ｅ ＝ Ｓ１ ＋ ＳＥ − Ｓｄｏｔ    ・・・（８）
そして、階調誤差Ｅを当該ブロック外の未変換画素に略均等に拡散させ（Ｓ４６２）、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
その後はＳ４１８にて全小ブロックについて変換処理が終了したか否かが判断され、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理が行われる。
【００７８】
図１７のＳ４１２では、総和Ｓ３がＤ２３よりも大きいか（または、以上か）否かを判断する。Ｓ３＞Ｄ２３のとき画像データの階調値の比較的大きい領域における第二のブロック処理条件を満たさないと判定してＳ４１６に進み、Ｓ３≦Ｄ３２のとき同条件を満たすと判定してＳ４１４に進む。
【００７９】
Ｓ４１４では、１画素単位変換処理を行い、本フローを終了する。図１９に示すように、着目ブロック（着目小ブロック）Ｂ１２内で画素Ｐａ，Ｐｂ，Ｐｃ，Ｐｄの順番に、同画素の階調誤差を他の未変換画素に拡散させながらブロックＢ１２内の画素の画像データを変換する。なお、斜線が記入された画素は、誤差拡散を伴う画像データの変換処理が終了したことを示している。ここで、未変換画素は、ブロックＢ１２内であってもよいし、他のブロック内であってもよい。
まず、画素Ｐａについて、階調値と他の画素からの階調誤差とからドットの形成有無を判定して変換後の画像データを２５５または０とするとともに、画素Ｐａの階調誤差を他の未変換画素に拡散させる。このとき、図中ブロック矢印で示したように、同画素Ｐａに隣接する未変換画素Ｐｂ〜Ｐｄに略均等に拡散させる。画素Ｐｂ〜Ｐｄについても、同様にしてドットを形成するか否かを判定し、変換後の画像データを２５５または０とするとともに、画素Ｐｂ〜Ｐｄに隣接する未変換画素に略均等に拡散させる。ここで、画素Ｐｂからは未変換画素Ｐｃ，Ｐｄ，Ｕ１１，Ｕ１２に対して階調誤差を拡散させ、画素Ｐｃからは未変換画素Ｐｄ，Ｕ１３〜Ｕ１５に対して階調誤差を拡散させ、画素Ｐｄからは未変換画素Ｕ１２，Ｕ１４〜Ｕ１６に対して階調領域を拡散させる。このようにして、ブロック内の画素別に同画素の階調誤差を拡散させながら画像データを変換することができる。むろん、ブロックが２×２画素以外であっても、同様にして画素別の画像変換処理を行うことが可能である。
【００８０】
なお、上記以外にも、様々な手法で同階調誤差を他の未変換画素に拡散させることができる。例えば、画素Ｐａ〜Ｐｃについては、着目ブロックＢ１２内の未変換画素にのみ階調誤差を拡散させ、画素Ｐｄについてのみ、他のブロック内の未変換画素に階調誤差を拡散させてもよい。また、未変換画素の位置に応じて同階調誤差を拡散する割合を異ならせるようにしてもよい。むろん、画像データを変換する順番についても様々な順番が可能であり、ブロック毎に画像データの変換処理の順序を変えてもよい。
本実施形態では、着目ブロック内の画素を１画素単位で区分して画素区分としているが、着目ブロック内の画素を２以上の画素単位で区分して画素区分としてもよい。例えば、横２画素×縦１画素を画素区分とすると、まず、画素Ｐａ，Ｐｂの階調値と拡散誤差とに基づいて同画素Ｐａ，Ｐｂ全体の階調誤差を当該画素Ｐａ，Ｐｂ外の未変換画素に拡散させながら同画素Ｐａ，Ｐｂの画像データをまとめて変換すればよい。次に、画素Ｐｃ，Ｐｄの階調値と拡散誤差とに基づいて同画素Ｐｃ，Ｐｄ全体の階調誤差を当該画素Ｐｃ，Ｐｄ外の未変換画素に拡散させながら同画素Ｐｃ，Ｐｄの画像データをまとめて変換すればよい。
【００８１】
図２０は、画素区分別処理条件成立時に行われる１画素単位変換処理を示すフローチャートである。本フローもＣＭＹＫ別に行われる。
まず、着目ブロック内で着目画素の位置を設定し（Ｓ５０２）、着目画素の階調値と拡散されてきた拡散誤差とを読み込む（Ｓ５０４）。さらに、着目画素についての補正データＣｘを算出する（Ｓ５０６）。ここで、着目画素の階調値をＳｉ、拡散されてきた拡散誤差をＥｉとすると、補正データＣｘは、以下の式のように階調値Ｓｉと拡散誤差Ｅｉとの和となる。
Ｃｘ ＝ Ｓｉ ＋ Ｅｉ    ・・・（９）
その後、Ｃｘが所定の閾値ｔｈ０よりも大きいか（または、以上か）否かを判断する（Ｓ５０８）。Ｃｘ＞ｔｈ０である場合、着目画素の階調値を「ドットを形成する」意味の２５５とし（Ｓ５１０）、Ｃｘ≦ｔｈ０の場合、着目画素の画像データを「ドットを形成しない」意味の０とする（Ｓ５１２）。
【００８２】
その後、着目画素で生じる階調誤差を算出する（Ｓ５１４）。ここで、変換処理後の着目画素の画像データをＤｏｔとすると、着目画素の階調値Ｓｉ、着目画素に拡散されてきた拡散誤差Ｅｉを用いて、着目画素で生じる階調誤差Ｅ’を算出することができる。
Ｅ’ ＝ Ｓｉ ＋ Ｅｉ − Ｄｏｔ    ・・・（１０）
さらに、図１９で示したように、階調誤差Ｅ’を他の未変換画素に略均等に拡散させる（Ｓ５１６）。そして、着目ブロック内の全画素について変換処理を終了したか否かを判断する（Ｓ５１８）。着目ブロック内で変換処理を行っていない画素がある場合にはＳ５０２に戻り、次の着目画素の位置を設定して、繰り返し上述した変換処理を行う。一方、着目ブロック内の全画素について変換処理を終了した場合、１画素単位変換処理を終了する。
このようにして、画像データの変換の際に変換対象の画素について当該画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。
その後、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理が行われる。
図１７のＳ４１６では、４画素単位変換処理（その２）を行い、その後、Ｓ４１８に進む。
【００８３】
図２１は、第二のブロック処理条件成立時に行われる４画素単位変換処理（その２）を示すフローチャートである。
まず、上記Ｓ４５２と同様にして、着目ブロックについての補正データＢｘを算出し（Ｓ５５２）、補正データＢｘが所定の閾値ｔｈ１２（ｔｈ１２＞ｔｈ１１）よりも大きいか（または、以上か）否かを判断する（Ｓ５５４）。Ｂｘ＞ｔｈ１２の場合に着目ブロック内の画素全てをオン（４画素全ての階調値を２５５）とし（Ｓ５５６）、Ｂｘ≦ｔｈ１２の場合に着目ブロック内の１画素のみオフ（例えば、着目ブロック内の右下の画素の階調値を０、残りの３画素の階調値を２５５）とする（Ｓ５５８）。このようにして、画像データの変換の際に変換対象の４画素について当該４画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。
その後、Ｓ４６０，Ｓ４６２と同様にして、着目ブロック全体の階調誤差Ｅを算出し（Ｓ５６０）、同階調誤差Ｅを他のブロック内の未変換画素に拡散させ（Ｓ５６２）、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。
【００８４】
その後、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理が行われる。
小ブロック変換処理が終了すると、図１４の高解像度用変換処理も終了して、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
上述した４画素単位変換処理（その１，２）により、１６画素の着目ブロックがブロック処理条件を満たさないと判定されたときでも、さらに小さい着目小ブロックが第二のブロック処理条件を満たすと判定されると着目小ブロック内の全画素をまとめて変換対象として画像変換処理が４画素の着目小ブロック単位で行われる。従って、画像データをまとめて変換するブロックの大きさをきめ細やかに切り替えることが可能となり、高画質を維持しながら分解能の低下が目立たない領域の変換処理をさらに高速化させ、画像変換処理をさらに効率よく行うことが可能となる。また、低ドット密度側と高ドット密度側の双方で第二のブロック処理条件成立時に着目小ブロック単位の画像変換処理が行われるので、画像変換処理をさらに効率よく行うことが可能となる。
【００８５】
ブロック処理条件成立時に行われる図１４のＳ３１８では、１６画素の着目ブロックの階調値の総和Ｓ２が２５５×１６＝４０８０であるか否かを判断する。着目ブロック内の各画素の階調値が全て２５５であるときのみ条件成立となってＳ３２２に進み、各画素の階調値のうち一つでも２５４以下のものがあれば条件不成立となってＳ３２０に進む。
Ｓ３２０では、１６画素単位変換処理（その２）を行い、その後、本フローを終了する。
【００８６】
図２２は、ブロック処理条件成立時に行われる１６画素単位変換処理（その２）を示すフローチャートである。図１６と同様であるので、簡単に説明する。
まず、着目ブロックについての補正データＢｘを算出する（Ｓ６０２）。本実施形態では、画像データの階調値の大きい領域において、着目ブロック内で１〜４画素のオフを可能にするため、ｔｈ２５＜ｔｈ２６＜ｔｈ２７＜ｔｈ２８である四種類の閾値を用いているが、閾値の数は様々に設定可能である。Ｂｘ≦ｔｈ２５のとき着目ブロック内の４画素をオフとし（Ｓ６０４〜Ｓ６０６）、ｔｈ２５＜Ｂｘ≦ｔｈ２６のとき着目ブロック内で３画素をオフとし（Ｓ６０８〜Ｓ６１０）、ｔｈ２６＜Ｂｘ≦ｔｈ２７のとき着目ブロック内で２画素をオフとし（Ｓ６１２〜Ｓ６１４）、ｔｈ２７＜Ｂｘ≦ｔｈ２８のとき着目ブロック内で１画素をオフとし（Ｓ６１６〜Ｓ６１８）、ｔｈ２８＜Ｂｘのとき着目ブロック内の画素全てをオンとし（Ｓ６２０）、Ｓ６２２に進む。
このようにして、画像データの変換の際に変換対象の１６画素について当該１６画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換する。着目ブロック内で複数の画素をオフにすることができるため、高画質を維持しながら変換処理をより高速化させることが可能となる。
Ｓ６２２では、着目ブロック全体の階調誤差Ｅを算出する。そして、階調誤差Ｅを他のブロック内の未変換画素に略均等に拡散させ（Ｓ６２４）、本フローを終了する。このようにして、画像データの変換により生じる階調誤差を周辺の未変換画素に拡散させる。その後、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
上述した１６画素単位変換処理（その１，２）により、ブロック処理条件が成立したときに着目ブロック内の全画素をまとめて変換対象として画像変換処理が１６画素の着目ブロック単位で行われる。従って、画像データのうち高画質を維持可能な領域のみドットがブロック単位で形成され、高画質を維持しながら誤差拡散法による画像変換処理を効率よく行うことができる。また、低ドット密度側と高ドット密度側の双方でブロック処理条件成立時に着目ブロック単位の画像変換処理が行われるので、画像変換処理をさらに効率よく行うことが可能となる。
【００８７】
図１４のＳ３２２では、着目ブロック内の画素全てをオンとする。そして、着目ブロック全体の階調誤差Ｅを算出し（Ｓ３２４）、階調誤差Ｅを他のブロック内の未変換画素に略均等に拡散させて（Ｓ３２６）、本フローを終了する。このように、着目ブロック内の各画素の階調値が全て２５５である場合には、Ｓ３２０の１６画素単位変換処理（その２）が行われないので変換処理を高速化させることができる。その後、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
【００８８】
このように、高解像度の場合の画像変換処理は、１６画素のブロックの階調値の平均またはさらに小さい４画素のブロックの階調値の平均をｘとして、図７で示したように切り替えられることになる。従って、Ｓ３１０，Ｓ３１４，Ｓ４０８，Ｓ４１２の判断処理を行うＰＣは、画像データを変換する着目ブロックの階調値の総和を処理単位情報と対比して着目ブロックがブロック処理条件（第二のブロック処理条件を含む）を満たすか否かを判定する判定手段を構成する。また、Ｓ３０２〜Ｓ３０８，Ｓ３１２，Ｓ４０２〜Ｓ４０６，Ｓ４１０，Ｓ４１４〜Ｓ４１８，Ｓ３１８〜Ｓ３２６の処理を行うＰＣは、ブロック処理条件成立時にブロック（変換処理区分）単位の画像変換処理を行い、同ブロック処理条件不成立であるが第二のブロック処理条件成立時に同ブロックを区分したさらに小さいブロック単位の画像変換処理を行い、第二のブロック処理条件を含めたブロック処理条件不成立時に１画素（画素区分）単位の画像変換処理を行う変換手段を構成する。
【００８９】
なお、720×360dpi設定の場合に行われる低解像度用変換処理（図１１のＳ２０８）は、図１７で示した小ブロック変換処理と同様の処理にて行うことができるので、詳しい説明を省略する。すなわち、閾値Ｄ２２，Ｄ２３の代わりにブロックの階調値の平均を基準とした閾値ｄ１１，ｄ１２にブロックの画素数４を乗じた値の閾値Ｄ１１，Ｄ１２を用いればよい。そして、Ｓ４０２にて４画素の着目ブロックの位置を設定し、Ｓ４０４にて着目ブロック内の各画素の階調値を読み込み、Ｓ４０６にて着目ブロックの階調値の総和（Ｓ３とする）を算出し、総和Ｓ３と閾値Ｄ１１，Ｄ１２とを対比してブロック処理条件の成立可否を判定し、判定結果に対応して４画素単位と１画素単位とを切り替えながら変換処理を行えばよい。
【００９０】
また、2880×1440dpi設定の場合に行われる超高解像度用変換処理（図１１のＳ２２４）は、図１４で示した高解像度用変換処理と同様の処理にて行うことができる。すなわち、閾値Ｄ２１，Ｄ２４の代わりにブロックの階調値の平均を基準とした閾値ｄ３１，ｄ３６にブロックの画素数６４を乗じた値の閾値Ｄ３１，Ｄ３６を用いればよい。そして、Ｓ３１２，Ｓ３２０にて６４画素単位変換処理（その１，２）を行い、Ｓ３１６にて６４画素をさらに小さい１６画素のブロックとする小ブロック変換処理を行えばよい。図１７で示した小ブロック変換処理では、閾値Ｄ２２，Ｄ２３の代わりにブロックの階調値の平均を基準とした閾値ｄ３２，ｄ３５にブロックの画素数１６を乗じた値の閾値Ｄ３２，Ｄ３５を用いればよい。そして、Ｓ４０２にて４×４画素の着目小ブロックの位置を設定し、Ｓ４１０，Ｓ４１６にて１６画素単位変換処理（その１，２）を行い、Ｓ４１４にてさらに小さい４画素のブロックとする小ブロック変換処理を行うことにより、６４画素単位、１６画素単位、４画素単位、１画素単位を切り替えながら変換処理を行うことができる。このように、きめ細やかに処理区分の大きさが切り替わるので、ブロックとしては２×２画素に固定されていた従来と比べ、高画質を維持しながら処理速度をさらに向上させることが可能となる。
また、プリンタに設定された解像度が1440×720dpi以上のときのみ小ブロック変換処理を行うようにしているので、高画質を維持しながら分解能の低下が目立たない領域の変換処理をさらに高速化させ、画像変換処理をさらに効率よく行うことが可能となる。
むろん、2880×1440dpiより高い解像度である場合や、720×360dpiより低い解像度である場合も、同様の考え方により処理区分の大きさを切り替えながら変換処理を行うことができる。
【００９１】
従来は、画像を印刷させる解像度に関係なく、２×２画素をまとめてブロックとし、ブロック単位の変換処理を行っても高画質を維持可能である画像の明度が高い領域を所定のブロック処理条件が成立する領域として設定し、着目ブロックが同ブロック処理条件を満たすと判定したときブロック単位の変換処理を行い、同ブロック処理条件を満たさないと判定したとき１画素単位で変換処理を行っていた。しかし、高解像度で印刷させる場合でも２×２画素単位で変換処理が行われるため、低解像度で印刷させる場合と比べて見た目で小さい処理単位となり、処理速度は十分に高速化されていなかった。
本発明によると、画像をドットマトリクス状の画素で多階調表現した画像データを入力し、各画素の階調誤差を他の未変換画素に拡散させながらドット形成の有無によりプリンタのような画像出力装置の出力画像を表現する画像データを生成するにあたり、解像度に合った適切な大きさの変換処理区分にて画像データの変換処理を行うことが可能となる。従って、高解像度である場合に変換処理を高速化させることができ、誤差拡散法を用いた画像変換処理を効率よく行うことが可能となる。
また、各画素の階調値の小さい領域と階調値の大きい領域の双方にて、画像データのうち高画質を維持可能な領域のみドットがブロック単位で形成されるので、高解像度の場合に高画質を維持しながら変換処理をさらに高速化させ、画像変換処理をさらに効率よく行うことができる。きめ細やかに画像変換処理の処理単位を切り替えることにより効率よく画像変換処理を行うことができるようになっているし、高解像度のときのみブロックの大きさが段階的に切り替えられて画像変換処理が行われるので、高解像度の場合に高画質を維持しながら変換処理をさらに高速化させ、画像変換処理をさらに効率よく行うことが可能となっている。むろん、きめ細やかに画像変換処理の処理単位を切り替えることにより、解像度に関係なく高画質を維持しながら画像変換処理を効率よく行うことが可能となる。
【００９２】
さらに、異なる解像度のそれぞれに対応するブロックの階調値の平均値が同じとなる条件のもとで、画像出力装置に合わせて画像データに設定された解像度が高くなるにつれて出力画像上に占める面積が同じかまたは小さくなるように同解像度に応じた画素数の近隣した画素を処理単位としているので、処理単位の面積は、解像度が高くなるにつれて大きくならないことになる。従って、高い解像度における画質が低い解像度における画質よりも低くなるような意味のない変換処理が行われなくなり、この点でも画像変換処理をさらに効率よく行うことが可能となっている。
また、画像変換処理の処理単位は着目ブロック内の各画素の階調値のみに基づいて切り替えられるので、ブロック内の画素の階調値の総和が同じであれば、ブロック内に拡散されてくる階調誤差の大きさには関係なく、画像変換処理の処理単位は一定となる。従って、ブロック内の階調値が同じときにブロック単位の変換処理が行われたり１画素単位の変換処理が行われたりして形成されるドットによる意図しない模様が現れることがなく、変換後の画像データに基づく画像をさらに高画質にさせることも可能となる。
むろん、高画質の程度が下がることにはなっても使用環境等に応じてブロックの階調値のみではなくブロックに拡散されてきた階調誤差も含めたパラメータに基づいてブロック処理条件の成立可否を判定することは可能である。この場合であっても、解像度に応じた変換処理区分にすることにより、画像変換処理をさらに効率よく行うことが可能になることには変わりない。
【００９３】
なお、本画像処理装置を実現させるフローは、様々な変形例が考えられる。
例えば、図１０Ｓ１１５の解像度変換処理で画像データの解像度変換が行われるので、解像度変換前の画像データを用いてブロック処理条件等の成立の可否を判定し、判定結果に対応する画像変換処理を行うようにしてよい。例えば解像度変換前の画像データの１画素を４×４画素に高解像度化するとき、図１４を参照して高解像度用変換処理を説明すると、まず、解像度変換後の画像データを構成する画素の中から近隣する所定の４×４画素をまとめてブロックとし、画像データを階調数変換する着目ブロックの位置を設定する（Ｓ３０２に相当）。次に、解像度変換前の画像データを構成する画素の中から着目ブロックに対応する着目画素（着目処理区分）の位置を設定する。さらに、同着目画素の階調値（ＳＡとする）を取得する（Ｓ３０４に相当）。これにより、画像データを階調数変換する着目ブロックに対応する処理区分の画素の階調値が取得されるが、上記総和Ｓ２を算出する必要がないので、処理が高速化される。
階調値ＳＡを取得すると、ＳＡと処理単位情報である所定の閾値（ＤＡ２１，ＤＡ２４とする）とを対比して処理を切り替える。ＳＡ≦ＤＡ２１（または、ＳＡ＜ＤＡ２１）のとき低ドット密度側のブロック処理条件成立と判定し、１６画素単位変換処理（その１）を行う（Ｓ３１０〜Ｓ３１２に相当）。ＳＡ＞ＤＡ２４（またはＳＡ≧ＤＡ２４）のとき高ドット密度側のブロック処理条件成立と判定し、１６画素単位変換処理（その１）を行う（Ｓ３１４，Ｓ３２０に相当）。これら以外のとき同条件不成立と判定し、小ブロック変換処理を行う（Ｓ３１６に相当）。
以上のフローにより、高画質を維持可能な領域のみドットはブロック単位で形成されるので、画像データの変換処理を高速化させることができる。また、解像度変換前の画像データから着目ブロックに対応する１画素のみの階調値を参照することにより着目ブロック内の画素の階調値を参照する必要がなくなるし、着目ブロック内でのドットの形成状況を判定する処理の速度も向上するので、誤差拡散法による画像変換処理を効果的に高速化させることが可能となる。
【００９４】
また、処理を簡素化させるため、図１４のＳ３０６〜Ｓ３０８，Ｓ３１８，Ｓ３２２〜Ｓ３２６の処理を省略して、閾値Ｄ２１，Ｄ２４のみと総和Ｓ２とを対比して各種変換処理を行ってもよい。
同図のＳ３０２〜Ｓ３１２，Ｓ３１６の処理のみを行い、Ｓ２＞Ｄ２１のときに一律に小ブロック変換処理を行ってもよい。その際、図１７のＳ４０２〜Ｓ４１０，Ｓ４１４，Ｓ４１８の処理のみを行い、Ｓ３＞Ｄ２２のときに一律に１画素単位変換処理を行うようにして、低ドット密度側のみブロック処理条件の判定結果に対応する処理単位の変換処理を行ってもよい。逆に、図１４のＳ３０２〜Ｓ３０４，Ｓ３１４〜Ｓ３２６の処理のみを行い、Ｓ２≦Ｄ２２のときに一律に小ブロック変換処理を行ってもよい。その際、図１７のＳ４０２〜Ｓ４０６，Ｓ４１２〜Ｓ４１８の処理のみを行い、Ｓ３≦Ｄ２３のときに一律に１画素単位変換処理を行うようにして、高ドット密度側のみブロック処理条件の判定結果に対応する処理単位の変換処理を行ってもよい。
むろん、小ブロック変換処理を行わずに処理を簡素化させてもよい。
【００９５】
図２３は、処理を簡素化した階調数変換処理の一例を示すフローチャートである。
まず、取得された解像度に応じて処理を分岐させる（Ｓ９０２）。720×360dpiの場合、２×２画素の着目ブロックの位置を設定する（Ｓ９０４）。次に、着目ブロック内の階調値の総和と閾値Ｄ１１（＝ｄ１１×４），Ｄ１２（＝ｄ１２×４）とを対比して着目ブロックがブロック処理条件を満たすか否かを判定し、２×２画素単位または１画素単位を切り替えながら誤差拡散法による画像変換処理を行う、低解像度用変換処理を行う（Ｓ９０６）。同Ｓ９０４〜Ｓ９０８の処理を全ブロックについて行う（Ｓ９０８）。
一方、1440×720dpiの場合、３×３画素の着目ブロックの位置を設定する（Ｓ９１０）。次に、着目ブロック内の階調値の総和と所定の閾値とを対比して着目ブロックがブロック処理条件を満たすか否かを判定し、３×３画素単位または１画素単位を切り替えながら誤差拡散法による画像変換処理を行う、高解像度用変換処理を行う（Ｓ９１２）。同Ｓ９１０〜Ｓ９１２の処理を全ブロックについて行う（Ｓ９１４）。
このようにしても、解像度に合った適切な大きさの変換処理区分にて画像変換処理を行うことが可能となるので、高解像度である場合に変換処理を高速化させることができ、画像変換処理を効率よく行うことができる。
むろん、ブロック処理条件の成立可否に対応して処理単位を切り替える処理を行わない場合でも、解像度に対応する数の画素を変換処理区分とすると、解像度に合った適切な大きさの変換処理区分にて画像変換処理を行うことが可能となるので、画像変換処理を効率よく行うことができる。
【００９６】
総和Ｓ２，Ｓ３と処理単位情報とを対比する順序も、様々考えられる。例えば、図１４の処理において、Ｓ２＝２５５×１６であるか否か、Ｓ２＞Ｄ２４であるか否か、Ｓ２＞Ｄ２１であるか否か、Ｓ２＝０であるか否か、の順に判定し、対応する変換処理を行ってもよい。また、第二のブロック処理条件または画素区分別処理条件が満たされるか否かを先に判定した後、ブロック処理条件が成立するか否かを判定してもよい。すると、ブロックがブロック処理条件と比べて第二のブロック処理条件または画素区分別処理条件を満たす場合が比較的多いとき（例えば、ブロック処理条件を満たさない場合が同条件を満たす場合よりも多い場合）に、画像変換処理の速度をさらに向上させることが可能となる。図１７の小ブロック変換処理においては、画素区分別処理条件が満たされるか否かを先に判定した後、第二のブロック処理条件が成立するか否かを判定してもよい。すると、小ブロックが第二のブロック処理条件と比べて画素区分別処理条件を満たす場合が比較的多いとき（例えば、第二のブロック処理条件を満たさない場合が同条件を満たす場合よりも多い場合）に、画像変換処理の速度をさらに向上させることが可能となる。
【００９７】
図２４は、処理単位情報とする閾値の変形例を模式的に示している。本例では、第一の低密度側閾値ｄ２１，ｄ３１はドットの形成密度に相当する値が第二の低密度側閾値ｄ１１と同じとされ、第一の高密度側閾値ｄ２４，ｄ３６はドットの形成密度に相当する値が第二の高密度側閾値ｄ１２と同じとされている。また、1440×720dpiを2880×1440dpi（第一の解像度）に対する第二の解像度とすると、小ブロック用の第一の低密度側閾値ｄ３２はドットの形成密度に相当する値が小ブロック用の第二の低密度側閾値ｄ２２と同じとされ、小ブロック用の第一の高密度側閾値ｄ３５はドットの形成密度に相当する値が小ブロック用の第二の高密度側閾値ｄ２３と同じとされている。
すると、図１１Ｓ２０８，Ｓ２１６，Ｓ２２４の解像度別の変換処理では、ブロック処理条件の成立可否を判定するためにブロック内の階調値の総和と共通の閾値とを対比すればよいので、解像度間で共通の低密度側閾値と高密度側閾値のみを記憶しておけばよい。従って、記憶させる閾値を少なくさせることができ、所望の画質の画像を得るために処理単位情報とする閾値を調整する際に利便性が向上する。
【００９８】
図２５は、画像変換処理を行う画素の処理単位を決定するための処理単位情報の変形例を示している。本処理単位情報Ｔ２は、ブロック内の画素の階調値の総和Ｓに対応付けて処理単位を決定するための個別処理単位情報を格納した情報テーブルとされ、ＨＤ１４に記憶されている。総和Ｓ２は０〜４０８０、総和Ｓ３は０〜１０２０の整数値をとりうるため、４０８１種類の総和Ｓ２と１０２１種類の総和Ｓ３に対応させて画像変換処理の種類を表す情報が格納されている。図では、（ｕ１）〜（ｕ６）の６種類の個別処理単位情報が設けられている。
【００９９】
図２６は、処理単位情報Ｔ２を用いた高解像度用変換処理を示すフローチャートである。
Ｓ３０２〜Ｓ３０４で１６画素分の総和Ｓ２を算出すると、ＨＤ１４に記憶された処理単位情報Ｔ２の情報テーブルから総和Ｓ２に対応する個別処理単位情報を読み出して取得する（Ｓ３２８）。そして、Ｓ３３０，Ｓ３３２にて個別処理単位情報に対応させて処理を分岐させ、Ｓ３１２，Ｓ３１６，Ｓ３２０にて個別処理単位情報に対応する変換処理を行って、本フローを終了する。ここで、ブロック処理条件成立時に１６画素単位変換処理を行い、同条件不成立時に小ブロック変換処理を行う。
なお、小ブロック変換処理についても、図１７のＳ４０２〜Ｓ４０６で４画素分の総和Ｓ３を算出すると、ＨＤ１４に記憶された処理単位情報Ｔ２の情報テーブルから総和Ｓ３に対応する個別処理単位情報を読み出して取得し、個別処理単位情報に対応させて処理を分岐させ、Ｓ４１０，Ｓ４１４，Ｓ４１６にて個別処理単位情報に対応する変換処理を行い、Ｓ４１８で全小ブロックについて画像変換処理を繰り返し行えばよい。ここで、第二のブロック処理条件成立時に４画素単位変換処理を行い、同条件不成立時に１画素単位変換処理を行う。
以上の処理により、閾値を用いずに画像変換処理を切り替えることができるので、簡易な構成ながら画質を低下させずに画像変換処理をさらに高速化させることができる。
【０１００】
（５）第二の実施形態：
変換処理区分や小ブロックは、ｎ×ｎ画素（ｎは正の整数）とする以外にも、様々な構成が可能である。
図２７は、第二の実施形態にかかる画像処理装置が行う階調数変換処理を示すフローチャートである。なお、プリンタ２０の解像度として、横360×縦360dpi、横720×縦360dpi、横720×縦720dpi、横1440×縦720dpi、横1440×縦1440dpiの５種類を設定することが可能であるものとする。
解像度取得手段にて取得された解像度に基づいて変換処理区分の画素の数を決定する際、横方向の解像度を３６０で除した値をＸ１、縦方向の解像度を３６０で除した値をＹ１として、近隣したＸ１×Ｙ１画素を変換処理区分とする（Ｓ７０２）。本例では、全段階の解像度に対応させたＸ１を除する３６０とＹ１を除する３６０とが変換処理区分設定となる。図の右側に示すように、解像度が360×360dpi、720×360dpi、720×720dpi、1440×720dpi、1440×1440dpiであるとき、それぞれ１×１画素（１画素単位）、２×１画素、２×２画素、４×２画素、４×４画素を変換処理区分とする。すなわち、変換処理区分設定は、解像度が大きくなるほど変換処理区分内の画素の数を増やす設定とされており、より具体的には、変換処理区分内の画素の数を解像度に比例した数として解像度の縦横の比と一致した領域の画素を変換処理区分とする設定とされている。
【０１０１】
次に、画像データを変換する着目された変換処理区分の位置を設定する（Ｓ７０４）。さらに、Ｓ２０８，Ｓ２１６，Ｓ２２４と同様にして、変換処理区分内の画素について当該画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換するとともに同変換により生じる階調誤差を周辺の未変換画素に拡散させる（Ｓ７０６）。
なお、1440×720dpiと1440×1440dpiのときには変換処理区分が所定の小ブロック移行条件を満たしているか否かを判定し、（Ｓ７１２）、同条件を満たすと判定した場合、解像度取得手段にて取得された解像度に基づいて小ブロックの画素の数を決定する際、横方向の解像度を３６０で除した値をＸ２、縦方向の解像度を３６０で除した値をＹ２として、近隣したＸ２×Ｙ２画素を小ブロックとする（Ｓ７１４）。ここで、1440×720dpiのときには２×１画素、1440×1440dpiのときには２×２画素の小ブロックとする。このように、解像度が大きくなるほど画素数を比例して増やすとともに、解像度の縦横の比と一致した領域の画素を小ブロックとしている。その後、図示しないフローにより、画像データを変換する着目された小ブロックの位置を設定し、着目小ブロック内の各画素の階調値と拡散誤差とからドットの形成有無を判断して判断結果に対応する画像データに変換し、変換により生じる階調誤差を周辺の未変換画素に拡散させる。
【０１０２】
画像データの全変換処理区分について変換処理を終了するまで、Ｓ７０４〜Ｓ７０８の処理を繰り返す（Ｓ７０８）。本フローを終了すると、上記インターレース処理を行い、プリンタ２０に対してドット形成の有無により表現した画像データを送出し、解像度に応じた画像を印刷させることになる。その際、見た目の変換処理区分や小ブロックの大きさが縦横同じになっているので、高画質を維持しながら画像データ変換処理を高速化させることが可能となる。
なお、変換処理区分を縦横の解像度を１８０で除した画素から構成してもよい。すると、1440×720dpiのときに８×４画素を変換処理区分とすることになるが、縦横の解像度比が２であるため横方向を２画素で１画素相当とみることができ、第一の実施形態のように1440×720dpiのときに４×４画素の変換処理区分とする場合と比べて画質の低下を少なくさせることができ、より高速にて画像変換処理を行うことが可能となる。
【０１０３】
（６）第三の実施形態：
図２８は、第三の実施形態にかかる画像処理装置が行う高解像度用変換処理を示すフローチャートである。本フローでは、４×４画素の着目ブロック内の各画素の階調値の最大値と最小値に基づいて第二のブロック処理条件を含むブロック処理条件の成立可否を判定する。
着目ブロック内の各画素の階調値を読み込むと（Ｓ８０２）、着目ブロック内の階調値の総和Ｓ２を算出するとともに、各画素の階調値の最大値ＭＡＸと最小値ＭＩＮとを抽出する（Ｓ８０４）。次に、ＭＡＸ，ＭＩＮと所定のブロック処理基準値である閾値Ｄ２１’，Ｄ２２’（処理単位情報）とを対比して、処理を切り替える。すなわち、ＭＡＸ≦Ｄ２１’（ＭＡＸ＜Ｄ２１’でもよい）のとき着目ブロックが低ドット密度側のブロック処理条件を満たすと判定して図１６で示した１６画素単位変換処理（その１）を行い（Ｓ８０６〜Ｓ８０８）、ＭＩＮ＞Ｄ２２’（ＭＩＮ≧Ｄ２２’でもよい）のとき着目ブロックが高ドット密度側のブロック処理条件を満たすと判定して図２２で示した１６画素単位変換処理（その３）を行い（Ｓ８１０，Ｓ８１４）、これら以外のとき図２９に示す小ブロック変換処理を行い（Ｓ８１２）、フローを終了する。
小ブロック変換処理を開始すると、２×２画素の着目小ブロックの位置を設定し（Ｓ８５２）、着目小ブロック内の各画素の階調値を読み込み（Ｓ８５４）、着目小ブロック内の階調値の総和Ｓ３を算出するとともに、各画素の階調値の最大値ＭＡＸｓと最小値ＭＩＮｓとを抽出する（Ｓ８５６）。次に、ＭＡＸｓ，ＭＩＮｓと所定の小ブロック処理基準値である閾値Ｄ３１’，Ｄ３２’とを対比して、処理を切り替える。すなわち、ＭＡＸｓ≦Ｄ３１’（ＭＡＸｓ＜Ｄ３１’でもよい）のとき着目小ブロックが低ドット密度側の第二のブロック処理条件を満たすと判定して図１８で示した４画素単位変換処理（その１）を行い（Ｓ８５８〜Ｓ８６０）、ＭＩＮ＞Ｄ２２’（ＭＩＮ≧Ｄ２２’でもよい）のとき着目小ブロックが高ドット密度側の第二のブロック処理条件を満たすと判定して図２１で示した４画素単位変換処理（その２）を行い（Ｓ８６２，Ｓ８６６）、これら以外のとき図２０で示した１画素単位変換処理を行い（Ｓ８６４）、Ｓ８６８で全小ブロックについて変換処理が終了するまで繰り返しＳ８５２〜Ｓ８６６の処理を行う（Ｓ８６８）。
【０１０４】
例えば、画像中で明度の高い領域で最大値ＭＡＸを用いてブロック処理条件の成立可否を判定するものとし、Ｄ２１’＝５０とする。上記総和Ｓ２が１６０のとき、着目ブロック内の各画素の階調値が全て１０であれば最大値「１０」はＤ２１’より小さいためブロック処理条件成立となり、ブロック単位で画像変換処理を行う。一方、着目ブロック内の画素一つのみ階調値１６０であって残りの１５画素が階調値０であれば最大値「１６０」はＤ２１’より大きいためブロック処理条件不成立となる。
また、画像中で明度の低い領域で最小値ＭＩＮを用いてブロック処理条件の成立可否を判定するものとし、Ｄ２２’＝２００とする。上記総和Ｓ２が３８４０のとき、着目ブロック内の各画素の階調値が全て２４０であればブロック処理条件成立となり、着目ブロック内の画素一つのみ階調値９０であって残りの１５画素が階調値２５０であればブロック処理条件不成立となる。
このように、各画素の階調値が急変する領域では、きめ細やかに画像データを変換することができるので、画像中のいわゆるエッジ部分を不鮮明にさせることなく高画質な画像を得ることが可能となる。
なお、Ｓ８０６を行う前に、ＭＡＸが０であるか否かを判断し、ＭＡＸ＝０であるときに着目ブロック内の画素全てをオフとして着目ブロック全体の階調誤差を周辺の未変換画素に拡散させてもよい。また、Ｓ８１０終了後に、ＭＩＮが２５５であるか否かを判断し、ＭＩＮ＝２５５であるときに着目ブロック内の画素全てをオンとして着目ブロック全体の階調誤差を周辺の未変換画素に拡散させてもよい。すると、着目ブロック内の各画素の階調値が全て０または２５５である場合には、上記１６画素単位変換処理（その１または２）を行う必要がなくなるので画像変換処理を高速化させることができる。
【０１０５】
このように、上記最大値や最小値を求めるだけでブロック単位や小ブロック単位の変換処理を行うという簡易な構成で、低ドット密度側と高ドット密度側の双方の領域で高画質な画像を高速にて得ることができる。
また、上記Ｓ８０６，Ｓ８５８では、Ｄ２１''をブロック処理基準値、Ｄ３１''を小ブロック処理基準値として、Ｓ２＋ＭＡＸ＞Ｄ２１''、Ｓ３＋ＭＡＸｓ＞Ｄ３１''の成立可否を判断してもよい。一方、上記Ｓ８１０，Ｓ８６２では、Ｄ２２''をブロック処理基準値、Ｄ３２''を小ブロック処理基準値として、Ｓ２＋ＭＩＮ＞Ｄ２２''、Ｓ３＋ＭＩＮｓ＞Ｄ３２''の成立可否を判断してもよい。さらに、上記Ｓ２，Ｓ３とＭＡＸ，ＭＡＸｓ（または、ＭＩＮ，ＭＩＮｓ）とにそれぞれに異なる係数を乗じて加算した値と、所定の閾値とを対比してブロック処理条件の成立可否を判定してもよいし、加重を異ならせてＳ２，Ｓ３とＭＡＸ，ＭＡＸｓ（または、ＭＩＮ，ＭＩＮｓ）とを加重平均した値と、所定の閾値とを対比してブロック処理条件の成立可否を判定してもよい。
さらに、以下の条件式
（ Ｓ２ ＞ Ｄ２１ ） OR （ ＭＡＸ ＞ Ｄ２１’ ）
（ Ｓ２ ≦ Ｄ２２ ） OR （ ＭＩＮ ≦ Ｄ２２’ ）
（ Ｓ３ ＞ Ｄ３１ ） OR （ ＭＡＸｓ ＞ Ｄ３１’ ）
（ Ｓ３ ≦ Ｄ３２ ） OR （ ＭＩＮｓ ≦ Ｄ３２’ ）
すなわち、それぞれの論理式における二つの不等式のいずれかが成立するか否かを判断し、いずれかが成立した場合にブロック処理条件成立と判定してもよい。むろん、
（ Ｓ２ ＞ Ｄ２１ ） AND  （ ＭＡＸ ＞ Ｄ２１’ ）
（ Ｓ２ ≦ Ｄ２２ ） AND  （ ＭＩＮ ≦ Ｄ２２’ ）
（ Ｓ３ ＞ Ｄ３１ ） AND  （ ＭＡＸｓ ＞ Ｄ３１’ ）
（ Ｓ３ ≦ Ｄ３２ ） AND  （ ＭＩＮｓ ≦ Ｄ３２’ ）
が成立するか否かを判断してもよい。
【０１０６】
図３０は、上記ＭＡＸ，ＭＩＮを利用した高解像度用変換処理の変形例を示すフローチャートである。本フローでは、Ｓ３０４にて階調値の総和Ｓ２を算出した後、着目ブロック内の階調値と処理単位情報とを対比して、着目ブロックが画像中のいわゆるエッジ部分であるか否かを判定する（Ｓ３４０）。例えば、上記最大値ＭＡＸと最小値ＭＩＮを抽出し、ＭＡＸ−ＭＩＮ＞ｔｈｅ１（または、ＭＡＸ−ＭＩＮ≧ｔｈｅ１）のとき、着目ブロックはエッジ部分であると判定することができる。また、縦横に隣り合う画素同士について階調値の差の絶対値ＡＢＳｉを求め、求められた複数の絶対値ＡＢＳｉの最大値が別の閾値以上またはより大であるときに着目ブロックはエッジ部分であると判定してもよい。
エッジ部分であると判定した場合には小ブロック変換処理を行い（Ｓ３４２）、エッジ部分でないと判定した場合には、Ｓ３１０〜Ｓ３１６，Ｓ３２０の処理を行い、本フローを終了する。Ｓ３４２では、１画素単位変換処理を行ってもよい。また、図１７で示した小ブロック変換処理でも、Ｓ４０８の前に着目小ブロックがエッジ部分であるか否かを判定し、エッジ部分であると判定したときには１画素単位変換処理を行ってもよい。
このように、各画素の階調値が急変する領域ではきめ細やかに画像データを変換することができるので、画像中のいわゆるエッジ部分を不鮮明にさせないことになる。
【０１０７】
（７）まとめ：
なお、本発明の画像処理プログラムを実行可能な画像処理装置と周辺装置は、様々な構成が可能である。
例えば、プリンタは、コンピュータと一体化されたものであってもよい。また、大中小のドットを形成可能である等、形成するドットの大きさを可変としたプリンタを使用してもよい。
上述したフローについては、ＰＣ内で実行する以外にも、一部または全部をプリンタあるいは専用の画像処理装置で実行するようにしてもよい。また、プリンタに対してプリンタドライバによらずに解像度が設定される場合等では、プリンタに設定された解像度が画像データに対して設定されたことになるので、プリンタから解像度についての情報を入手することにより画像データに対して設定された解像度を取得してもよい。
画像を出力する装置は、印刷媒体上にドットを形成して印刷を行う装置以外であってもよく、例えば、液晶表示画面上で輝点形成の有無により画像を表現する液晶表示装置であってもよい。
【０１０８】
以上説明したように、本発明によると、種々の態様により、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理を効率よく行うことが可能な画像処理装置、印刷制御装置、印刷装置、画像処理プログラムおよびそのプログラムを記録した媒体を提供することができる。また、画像処理方法としても適用可能である。
【図面の簡単な説明】
【図１】第一の実施形態にかかる画像処理装置を含む印刷装置の概略構成図。
【図２】プリンタのブロック構成をＰＣとともに示すブロック構成図。
【図３】画像処理装置の構成を模式的に示す図。
【図４】低解像度時に変換処理手段が行う処理を模式的に示す図。
【図５】高解像度時に変換処理手段が行う処理を模式的に示す図。
【図６】解像度と変換処理区分設定との対応関係を模式的に示す図。
【図７】閾値とブロックの階調値の平均との対応関係を模式的に示す図。
【図８】閾値とブロックの階調値の平均との対応関係を模式的に示す図。
【図９】画素とドットの大きさの関係を模式的に示す図。
【図１０】本画像処理装置が行う処理を示すフローチャート。
【図１１】階調数変換処理を示すフローチャート。
【図１２】着目ブロックを模式的に示す図。
【図１３】誤差拡散を行いながら画像データを変換する様子の説明図。
【図１４】高解像度用変換処理を示すフローチャート。
【図１５】誤差拡散を行いながら画像データを変換する様子の説明図。
【図１６】１６画素単位変換処理（その１）を示すフローチャート。
【図１７】小ブロック変換処理を示すフローチャート。
【図１８】４画素単位変換処理（その１）を示すフローチャート。
【図１９】誤差拡散を行いながら画像データを変換する様子の説明図。
【図２０】１画素単位変換処理を示すフローチャート。
【図２１】４画素単位変換処理（その２）を示すフローチャート。
【図２２】１６画素単位変換処理（その２）を示すフローチャート。
【図２３】階調数変換処理の変形例を示すフローチャート。
【図２４】処理単位情報とする閾値の変形例を模式的に示す図。
【図２５】変形例における処理単位情報の構造を模式的に示す図。
【図２６】高解像度用変換処理の変形例を示すフローチャート。
【図２７】第二の実施形態における階調数変換処理を示すフローチャート。
【図２８】第三の実施形態における高解像度用変換処理を示すフローチャート。
【図２９】第三の実施形態における小ブロック変換処理を示すフローチャート。
【図３０】高解像度用変換処理の変形例を示すフローチャート。
【符号の説明】
１０…パーソナルコンピュータ、１４…ハードディスク、１４ａ…ハードディスクドライブ、１４ｂ…解像度情報、１４ｃ…変換処理区分設定、１４ｄ…処理単位情報、２０…インクジェットプリンタ、１００…印刷装置、Ａ…画像処理装置、Ａ１…解像度取得手段、Ａ２…変換処理手段、Ａ２１…判定手段、Ａ２２…第一変換手段（変換手段）、Ａ２３…第二変換手段（変換手段）、Ａ３…記憶手段、Ｂ１，Ｂ２…変換処理区分、Ｂ３，Ｂ４，Ｂ０１〜Ｂ０３，Ｂ１２，Ｂ２２…着目ブロック、Ｂ５…着目小ブロック、Ｂ０４〜Ｂ０６…小ブロック、Ｂ１３，Ｂ２３…ブロック、Ｂ２４…着目小ブロック、Ｂａ〜Ｂｄ…小ブロック、Ｐａ〜Ｐｈ…画素、Ｔ１，Ｔ２…処理単位情報、Ｕ１，Ｕ２…着目画素、Ｕ０１〜Ｕ０３…画素、Ｕ１１〜Ｕ１６，Ｕ２１〜Ｕ３０，Ｕ４１〜Ｕ４５…画素