JP3956098B2 - 画像データ処理装置、画像データ処理方法、印刷装置、画像データ処理プログラムおよび画像データ処理プログラムを記録した媒体 - Google Patents
画像データ処理装置、画像データ処理方法、印刷装置、画像データ処理プログラムおよび画像データ処理プログラムを記録した媒体 Download PDFInfo
- Publication number
- JP3956098B2 JP3956098B2 JP2002009044A JP2002009044A JP3956098B2 JP 3956098 B2 JP3956098 B2 JP 3956098B2 JP 2002009044 A JP2002009044 A JP 2002009044A JP 2002009044 A JP2002009044 A JP 2002009044A JP 3956098 B2 JP3956098 B2 JP 3956098B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- image data
- pixel
- pixels
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、画像データ処理装置、画像データ処理方法、印刷装置、画像データ処理プログラムおよび画像データ処理プログラムを記録した媒体に関する。
【0002】
【従来の技術】
従来、画像を印刷する際には、画像をドットマトリクス状の画素で多階調表現した画像データを入力し、誤差拡散法により、各画素の階調誤差を他の未変換画素に拡散させながら各画素に対応してドット形成の有無により表現した画像データに変換し、変換した画像データをプリンタに対して出力する処理を行っている。プリンタでは、設定された解像度にて、変換された画像データに基づく画像を印刷する。同誤差拡散法によると、誤差が生じないため画質はよい反面、誤差を算出して割り振っていく際の演算処理に時間がかかるため、2×2画素をまとめてブロックとし、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させながら同着目ブロック内の画素の画像データをまとめて変換するブロック単位処理が行われている。同ブロック単位処理によると、画像データを変換する処理を高速化することができるものの、1画素単位で変換する場合と比べて画像の分解能は低下し、画質が低下することになる。
そこで、ブロック単位の変換処理を行っても高画質を維持可能である画像の明度が高い領域を所定のブロック処理条件が成立する領域として設定し、同ブロック処理条件を満たすか否かを着目ブロック内の画素全ての階調値等に基づいて判定している。そして、同ブロック処理条件を満たすと判定したとき着目ブロック内の画素の画像データをまとめて変換する処理を行い、同ブロック処理条件を満たさないと判定したとき着目ブロック内で画素別に画像データを変換する処理を行っている。その結果、画像データのうちドット形成密度が非常に小さくて分解能の低下が目立たず高画質を維持可能な領域のみ、ドットはブロック単位で形成され、画像データの変換処理はある程度高速化されながら高画質が維持される。
【0003】
【発明が解決しようとする課題】
上述した従来の技術においては、ブロック単位の画像データ変換処理を行う際、高解像度で印刷させる場合でも2×2画素単位で変換処理が行われるため、低解像度で印刷させる場合と比べて見た目で小さい処理単位となり、処理速度は十分に高速化されていなかった。
本発明は、上記課題にかんがみてなされたもので、画像を複数の画素で多階調表現した画像データからドット形成の有無により表現した画像データに変換する際に階調誤差を未変換画素に拡散して画像データを変換する処理を効率よく行うことが可能な画像データ処理装置、画像データ処理方法、印刷装置、画像データ処理プログラムおよび画像データ処理プログラムを記録した媒体の提供を目的とする。
【0004】
【課題を解決するための手段】
上記目的を達成するため、請求項1にかかる発明は、画像を複数の画素で多階調表現した画像データを入力し、設定された解像度にて画像を出力する画像出力装置に入力される画像データに変換する際に階調誤差を未変換画素に拡散してドット形成の有無により表現した画像データに変換する画像データ処理装置であって、上記解像度を取得する解像度取得手段と、この解像度取得手段にて取得された解像度が大きくなるほど画素数を増やして近隣した画素を変換処理区分とし、上記画像データを変換する着目された変換処理区分内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて、同着目された変換処理区分内の画素の画像データをまとめて変換するとともに同着目された変換処理区分全体の階調誤差を当該変換処理区分外の未変換画素に拡散させる変換処理手段とを具備する構成としてある。
【0005】
上記のように構成した請求項1にかかる発明においては、解像度取得手段は、画像出力装置が出力する画像の解像度を取得する。変換処理手段は、取得された解像度が大きくなるほど画素数を増やして近隣した画素を変換処理区分とし、画像データを変換する着目された変換処理区分内の各画素の階調値と変換処理済みの画素からの階調誤差とに基づいて、同着目された変換処理区分内の画素の画像データをまとめて変換するとともに同着目された変換処理区分全体の階調誤差を当該変換処理区分外の未変換画素に拡散させる。すると、画像出力装置からは、設定された解像度にて、変換された画像データに基づく画像が出力される。
すなわち、画像出力装置に画像を出力させるにあたり、解像度に合った適切な大きさの変換処理区分にて画像データの変換処理を行うことが可能となるので、高解像度である場合に変換処理を高速化させることができ、画像データの変換処理を効率よく行うことができる。
また、上記変換処理手段は、上記解像度が大きくなるほど上記変換処理区分内の画素の数を増やす構成としてある。解像度が大きくなるほどドット密度が大きくなるため、画像データをまとめて変換する画素数を増やしても高画質を維持することができる。したがって、高画質を維持しながら画像データの変換処理を高速化することができる。
【0006】
ここで、本発明を適用可能な画像出力装置は様々考えられ、例えば、画像データを入力して印刷を行うプリンタであってもよいし、表示により出力するディスプレイであってもよい。
画像データをまとめて変換する画素から構成される変換処理区分は、複数の画素から構成されるのみならず、1画素のみから構成されてもよく、この場合であっても本発明に含まれる。また、同じ画像データに対して変換処理区分の画素数を変化させながら変換処理を行ってもよい。
【0007】
変換前の画像データは画像を複数の画素で多階調表現したデータであればよく、複数の色データから構成されるカラー画像データであってもよいし、単独の色データから構成されるモノクロ画像データであってもよい。また、同画像データは様々な階調数とすることができ、例えば、8ビットを割り当てた256階調としてもよいし、2のn乗でない100階調等としてもよい。さらに、同画像データから階調誤差を用いてドットを形成する際、二値化によりドットを形成してもよいし、例えば大中小のドットを形成するために二値よりも大きい多値化によりドットを形成してもよい。
【0008】
ところで、変換処理区分を二以上の画素をまとめたブロックとする場合の構成の一例として、請求項5にかかる発明は、上記変換処理手段は、上記解像度に応じて二以上の画素数の近隣した画素をまとめてブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値に基づいて当該着目ブロックが所定のブロック処理条件を満たすか否かを判定するブロック処理判定手段と、このブロック処理判定手段にて上記ブロック処理条件を満たすと判定されたとき、上記着目ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目ブロック内の画素の画像データをまとめて変換するとともに同着目ブロック全体の階調誤差を当該着目ブロック外の未変換画素に拡散させる第一の変換処理手段と、上記ブロック処理判定手段にて上記ブロック処理条件を満たさないと判定されたとき、上記着目ブロック内の画素を区分した画素区分別に同画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目ブロック内の画素の画像データを変換するとともに同画素区分の階調誤差を当該画素区分外の未変換画素に拡散させることが可能な第二の変換処理手段とを有する構成としてある。
【0009】
すなわち、ブロック処理判定手段は、解像度に応じて二以上の画素数の近隣した画素をまとめてブロックとし、画像データを変換する着目ブロック内の各画素の階調値に基づいて当該着目ブロックが所定のブロック処理条件を満たすか否かを判定する。ブロック処理条件を満たすと判定すると、第一の変換処理手段は、着目ブロック内の各画素の階調値と変換処理済みの画素からの階調誤差とに基づいて、同着目ブロック内の画素の画像データをまとめて変換するとともに同着目ブロック全体の階調誤差を当該着目ブロック外の未変換画素に拡散させる。言い換えると、画像データの変換処理はブロック単位で行われることになる。
一方、ブロック処理判定手段がブロック処理条件を満たさないと判定すると、第二の変換処理手段は、着目ブロック内の画素を区分した画素区分別に同画素の階調値と変換処理済みの画素からの階調誤差とに基づいて、同着目ブロック内の画素の画像データを変換するとともに同画素区分の階調誤差を当該画素区分外の未変換画素に拡散させることが可能である。言い換えると、画像データの変換処理はブロックよりも小さな画素単位で行われることになる。
したがって、ブロック単位で画像データの変換処理を行っても高画質を維持可能な領域をブロック処理条件が成立する領域として設定すれば、画像データのうち高画質を維持可能な領域のみドットがブロック単位で形成され、高画質を維持しながら変換処理をさらに高速化させることができる。
【0010】
ここで、上記第二の変換処理手段は、上記ブロック処理判定手段にて上記ブロック処理条件を満たさないと判定されたとき、上記着目ブロック内の画素別に同画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目ブロック内の画素の画像データを変換するとともに同画素の階調誤差を他の未変換画素に拡散させることが可能である構成としてもよい。すなわち、第二の変換処理手段の一例を提供することができ、ブロック処理条件が満たされないときに1画素単位という簡易な処理にて画像データの変換処理が行われるようになる。したがって、簡易な構成にて、高画質を維持しながら変換処理をさらに高速化させることができる。
むろん、着目ブロック内を区分する画素は、上述したように1画素とする以外にも、複数の画素としてもよく、この場合であっても本発明に含まれる。また、画素区分は着目ブロック内の画素を均等に区分したものであってもよいし、着目ブロック内の画素を不均等に区分したものであってもよい。
また、請求項7にかかる発明は、上記ブロック処理判定手段は、上記着目ブロック内の画素を区分して小ブロックとし、上記画像データを変換する着目された小ブロック内の各画素の階調値に基づいて当該着目された小ブロックが所定の小ブロック処理条件を満たすか否かを判定し、上記第一の変換処理手段は、上記ブロック処理判定手段にて上記小ブロック処理条件を満たすと判定されたとき、上記小ブロック内の画素の画像データをまとめて変換するとともに上記着目された小ブロック全体の階調誤差を当該小ブロック外の未変換画素に拡散させる構成としてある。
【0011】
すなわち、ブロック処理判定手段が所定の小ブロック処理条件を満たすと判定すると、第一の変換処理手段は上記小ブロック内の画素の画像データをまとめて変換するとともに上記着目された小ブロック全体の階調誤差を当該小ブロック外の未変換画素に拡散させる。言い換えると、画像データの変換処理は小ブロック単位で行われることになる。したがって、きめ細やかに画像データをまとめて変換するブロックの大きさを切り替えることが可能となり、高画質を維持しながら変換処理をさらに高速化することができる。
なお、小ブロックを複数段階設けてもよい。この場合、着目された小ブロック内の画素を区分してさらに小さいブロックとし、着目されたさらに小さいブロック内の各画素の階調値に基づいて所定条件を満たすか否かを判定し、同所定条件を満たすと判定したとき、同小さいブロック内の画素の画像データをまとめて変換するとともに同着目されたさらに小さいブロック全体の階調誤差を当該さらに小さいブロック外の未変換画素に拡散させるようにすればよい。
【0012】
さらに、請求項9にかかる発明は、上記ブロック処理判定手段は、上記解像度が所定の小ブロック移行条件を満たすときのみ、上記着目された小ブロックが上記小ブロック処理条件を満たすか否かを判定する構成としてある。すなわち、解像度に応じて画像データをまとめて変換するブロックの大きさを変更するか否かが切り替わるので、高画質を維持しながら変換処理をさらに高速化することができる。
【0013】
ところで、ブロック処理条件を満たすか否かを判定する構成の一例として、上記ブロック処理判定手段は、上記着目ブロック内の各画素の階調値の総和に基づいて当該着目ブロックが上記ブロック処理条件を満たすか否かを判定する構成としてもよい。すなわち、ブロック処理判定手段は、解像度に応じて二以上の画素数の近隣した画素をまとめてブロックとし、着目ブロック内の各画素の階調値の総和を求めるだけで上記判定を行うことができる。なお、同ブロック処理判定手段は、上記着目ブロック内の各画素の階調値の平均に基づいて上記ブロック処理条件を満たすか否かを判定するようにしてもよい。ここで、各画素の階調値の平均は同階調値の総和を着目ブロック内の画素数で除したものであるので、同階調値の平均を求めて判定を行うことも請求項10にかかる発明に含まれることになる。
また、上記ブロック処理判定手段は、上記着目された小ブロック内の各画素の階調値の総和(平均を含む)に基づいて当該着目された小ブロックが上記小ブロック処理条件を満たすか否かを判定する構成としてもよい。すると、簡易な構成で小ブロック処理条件を満たすか否かを判定することも可能となる。
【0014】
画像データの階調値の小さい領域でブロック処理条件の判定を行う一例として、上記ブロック処理判定手段は、上記着目ブロック内の各画素の階調値の総和が所定のブロック処理基準値以下またはより小のとき、当該着目ブロックが上記ブロック処理条件を満たすと判定する構成としてもよい。すなわち、ブロック処理判定手段の構成の一例を提供することができ、着目ブロック内の各画素の階調値の総和がブロック処理基準値以下またはより小となるような階調値の小さい領域では、ブロック単位で画像データの変換処理が行われる。例えば、階調値が小さいほどドットの形成密度を小さくさせる場合、ブロック内でドットが形成されず、分解能の低下が目立たないドットの形成密度の小さい領域のみドットはブロック単位で形成されるので、高画質を維持しながら変換処理を高速化させることができる。
また、上記ブロック処理判定手段は、上記着目ブロック内の各画素の階調値の総和が所定のブロック処理基準値以上またはより大であり、かつ、上記着目された小ブロック内の各画素の階調値の総和が所定の小ブロック処理基準値以下またはより小のとき、当該着目された小ブロックが上記小ブロック処理条件を満たすと判定する構成としてもよい。すなわち、ブロック処理判定手段の別の構成例を提供することができ、画像データの階調値の小さい領域でブロックの大きさを変えながらブロック単位の変換処理を行うことができる。
【0015】
さらに、上記ブロック処理判定手段は、上記着目ブロック内の各画素の階調値の総和が所定のブロック処理基準値以上またはより大のとき、当該着目ブロックが上記ブロック処理条件を満たすと判定する構成としてもよい。すると、画像データの階調値の大きい領域でブロック単位の画像データ変換処理を行うことができる。
上記ブロック処理判定手段は、上記着目ブロック内の各画素の階調値の総和が所定のブロック処理基準値以下またはより小であり、かつ、上記着目された小ブロック内の各画素の階調値の総和が所定の小ブロック処理基準値以上またはより大のとき、当該着目された小ブロックが上記小ブロック処理条件を満たすと判定する構成としてもよい。すると、画像データの階調値の大きい領域でブロックの大きさを変えながらブロック単位の変換処理を行うことができる。
【0016】
また、上記ブロック処理判定手段は、着目ブロック内の各画素の階調値の総和以外に基づいてブロック処理条件を満たすか否かを判定してもよい。その一例として、上記ブロック処理判定手段は、上記着目ブロック内の各画素の階調値の最大値と最小値のいずれかまたは組み合わせに基づいて当該着目ブロックが上記ブロック処理条件を満たすか否かを判定する構成としてもよい。すなわち、ブロック処理判定手段は、解像度に応じて二以上の画素数の近隣した画素をまとめてブロックとし、着目ブロック内の各画素の階調値の最大値と最小値のいずれかまたは組み合わせから上記判定を行うことができる。ここで、ブロック処理条件を満たすか否かは様々な構成により判定することができ、画像データの階調値の小さい領域である場合、例えば、各画素の階調値の最大値が所定の基準値以下またはより小のときや、各画素の階調値の最小値が所定の基準値以上またはより大のとき、上記ブロック処理条件を満たすと判定することができる。
なお、着目ブロック内の各画素の階調値の最大値や最小値と総和との組み合わせに基づいてブロック処理条件を満たすか否かを判定するようにしてもよい。また、上記最大値や最小値と上記総和との加算値や、加重を異ならせて上記最大値や最小値と上記総和とを平均した値等に基づいてブロック処理条件を満たすか否かを判定するようにしてもよい。
【0017】
また、上記ブロック処理判定手段は、上記着目された小ブロック内の各画素の階調値の最大値と最小値のいずれかまたは組み合わせに基づいて当該着目された小ブロックが上記小ブロック処理条件を満たすか否かを判定する構成としてもよい。すると、簡易な構成でブロック処理条件を満たすか否かを判定することが可能となる。むろん、同最大値や最小値と総和との組み合わせや、同最大値や最小値と上記総和との加算値や、加重を異ならせて同最大値や最小値と上記総和とを平均した値等に基づいてブロック処理条件を満たすか否かを判定するようにしてもよい。
【0018】
ところで、上記変換処理手段は、上記変換処理区分内の画素の数を上記解像度に比例した数とする構成としてもよい。すなわち、見た目の分解能が同じとなるので、高画質を維持することができる。
【0019】
なお、上記変換処理手段は、上記解像度が大きくなるほど上記小ブロック内の画素の数を増やす構成としてもよい。すると、解像度に応じた小ブロックとする構成例を提供することができ、高速にて高画質な画像を得ることができる。その際、上記変換処理手段は、上記変換処理区分内の画素の数を上記解像度に比例した数とする構成としてもよい。同様に、高画質を維持することができる。
ここで、変換処理区分や小ブロックの画素数を決定するにあたり、複数の画素の横成分と縦成分とを掛け合わせた値を基準として画素数を決定してもよいし、横成分または縦成分を基準として画素数を決定してもよい。
【0020】
変換処理区分は様々に設定可能であり、その一例として、上記変換処理手段は、nを正の整数として、n×n画素を上記変換処理区分とする構成としてもよい。すなわち、変換処理区分の簡易な構成の一例を提供することができる。小ブロックについても、n’を正の整数として、n’×n’画素を上記小ブロックとする構成としてもよい。
また、別の一例として、上記変換処理手段は、上記解像度の縦横の比と一致した長方形状の領域の画素を上記変換処理区分とする構成としてもよい。すなわち、見た目の変換処理区分の大きさが縦横同じになるので、高画質を維持しながら画像データ変換処理を高速化させることができる。小ブロックについても、上記解像度の縦横の比と一致した長方形状の領域の画素を上記小ブロックとする構成としてもよい。
【0021】
なお、上記第二の変換処理手段は、様々な構成により画素区分別の階調誤差を他の未変換画素に拡散させることができる。その一例として、上記第二の変換処理手段は、上記着目ブロック内の画素を区分した画素区分別に同画素の階調誤差を他の未変換画素に拡散させる際、当該未変換画素に対して同階調誤差を略均等に拡散させるようにしてもよい。すなわち、簡易な構成にてブロックより小さい画素単位で誤差拡散を行うことができる。ここで、未変換画素は、着目ブロック内の画素であってもよいし、着目ブロック外の画素であってもよい。
また、上記第一の変換処理手段は、上記着目ブロック全体の階調誤差を当該着目ブロック外の未変換画素に拡散させる際、当該未変換画素に対して同階調誤差を略均等に拡散させるようにしてもよい。すなわち、簡易な構成にてブロック単位で誤差拡散を行うことができる。
むろん、本発明の適用場面に応じて、未変換画素に拡散する割合に異なる重みを持たせてもよい。
【0022】
ところで、上記小ブロック処理条件を満たすと判定したときに着目された小ブロック単位で画像データの変換処理を行うことにより、上記解像度に関係なくきめ細やかに画像データをまとめて変換するブロックの大きさを切り替えることが可能となる。そこで、請求項8にかかる発明は、画像を複数の画素で多階調表現した画像データを入力し、ドット形成の有無により表現した画像データに変換する際に階調誤差を未変換画素に拡散して画像データを変換する画像データ処理装置であって、近隣する所定数の画素をまとめてブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値に基づいて当該着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分して小ブロックとし、上記画像データを変換する着目された小ブロック内の各画素の階調値に基づいて当該着目された小ブロックが所定の小ブロック処理条件を満たすか否かを判定するブロック処理判定手段と、このブロック処理判定手段にて上記ブロック処理条件を満たすと判定されたとき、上記着目ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目ブロック内の画素の画像データをまとめて変換するとともに同着目ブロック全体の階調誤差を当該着目ブロック外の未変換画素に拡散させ、同ブロック処理判定手段にて上記小ブロック処理条件を満たすと判定されたとき、上記着目された小ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目された小ブロック内の画素の画像データをまとめて変換するとともに同着目された小ブロック全体の階調誤差を当該着目された小ブロック外の未変換画素に拡散させる第一の変換処理手段と、上記ブロック処理判定手段にて上記ブロック処理条件と小ブロック処理条件をともに満たさないと判定されたとき、上記着目ブロック内の画素を区分した画素区分別に同画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同画素区分内の画素の画像データを変換するとともに同画素区分の階調誤差を当該画素区分外の未変換画素に拡散させることにより同着目ブロック内の画素の画像データを変換可能な第二の変換処理手段とを具備する構成としてある。
【0023】
すなわち、ブロック処理判定手段は、近隣する所定数の画素をまとめてブロックとし、画像データを変換する着目ブロック内の各画素の階調値に基づいて当該着目ブロックが所定のブロック処理条件を満たすか否かを判定する。また、同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分して小ブロックとし、画像データを変換する着目された小ブロック内の各画素の階調値に基づいて当該着目された小ブロックが所定の小ブロック処理条件を満たすか否かを判定する。ブロック処理条件を満たすと判定すると、第一の変換処理手段は、着目ブロック内の各画素の階調値と変換処理済みの画素からの階調誤差とに基づいて同着目ブロック内の画素の画像データをまとめて変換するとともに同着目ブロック全体の階調誤差を当該着目ブロック外の未変換画素に拡散させる。言い換えると、画像データの変換処理はブロック単位で行われることになる。また、ブロック処理判定手段が小ブロック処理条件を満たすと判定したとき、第一の変換処理手段は、上記着目された小ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目された小ブロック内の画素の画像データをまとめて変換するとともに同着目された小ブロック全体の階調誤差を当該着目された小ブロック外の未変換画素に拡散させる。言い換えると、画像データの変換処理は小ブロック単位で行われることになる。
一方、ブロック処理判定手段がブロック処理条件と小ブロック処理条件をともに満たさないと判定すると、第二の変換処理手段は、着目ブロック内の画素を区分した画素区分別に同画素の階調値と変換処理済みの画素からの階調誤差とに基づいて、同着目ブロック内の画素の画像データを変換するとともに同画素区分の階調誤差を当該画素区分外の未変換画素に拡散させることにより同着目ブロック内の画素の画像データを変換可能である。言い換えると、画像データの変換処理は小ブロックより小さな画素区分単位で行われることになる。
このように、画像を複数の画素で多階調表現した画像データを入力してドット形成の有無により表現した画像データに変換する際に階調誤差を未変換画素に拡散して画像データを変換するにあたり、ブロック単位と小ブロック単位と小ブロックより小さい画素区分単位とをきめ細やかに切り替えながら画像データを変換することが可能となる。したがって、画像データに応じた適切な大きさの処理単位にて画像データの変換処理を行うことが可能となるので、変換処理を効率よく行うことができる。
【0024】
ところで、上述した画像データ処理装置は、単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としては各種の態様を含むものであって、適宜、変更可能である。
また、上述した画像データを変換する際の手法は、所定の手順に従って処理を進めていくうえで、その根底にはその手順に発明が存在するということは当然である。したがって、本発明は方法としても適用可能であり、請求項14、請求項15にかかる発明においても、基本的には同様の作用となる。
さらに、変換後の画像データに基づく画像を印刷する印刷手段を備える印刷装置としても適用可能であり、請求項16、請求項17にかかる発明においても、基本的には同様の作用となる。
本発明を実施しようとする際に、画像データ処理装置にて所定のプログラムを実行させる場合もある。そこで、そのプログラムとしても適用可能であり、請求項18、請求項19にかかる発明においても、基本的には同様の作用となる。
なお、画像出力装置にて出力される画像の解像度は、本画像データ処理プログラムに画像データを変換させる所定のプログラムにて自動的に決定されたものであってもよいし、設定入力されるものであってもよい。また、解像度は、本画像データ処理プログラムを実現させるコンピュータ内で設定されていてもよいし、画像出力装置内で設定されていてもよい。
【0025】
さらに、本発明を実施しようとする際に、上記プログラムを記録した媒体が流通し、同記録媒体からプログラムを適宜コンピュータに読み込むことが考えられる。したがって、そのプログラムを記録した媒体としても適用可能であり、請求項20にかかる発明においても、基本的には同様の作用となる。
むろん、請求項2〜請求項7、請求項9〜請求項13に記載された構成を上記方法や印刷装置やプログラムやプログラムを記録した媒体に対応させることも可能であることは言うまでもない。
ここで、上記記録媒体は、磁気記録媒体や光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一部がソフトウェアであって、一部がハードウェアで実現される場合においても本発明の思想において全く異なるものではなく、一部を記録媒体上に記録しておいて必要に応じて適宜読み込む形態のものも含まれる。さらに、一次複製品、二次複製品などの複製段階については全く問う余地なく同等である。
【0026】
【発明の効果】
以上説明したように、請求項1、請求項2、請求項14、請求項16、請求項18にかかる発明によれば、画像を複数の画素で多階調表現した画像データからドット形成の有無により表現した画像データに変換する際に階調誤差を未変換画素に拡散して画像データを変換する処理を効率よく行うことが可能になるとともに解像度に応じた変換処理区分とする構成例を提供することができ、高速にて高画質な画像を得ることが可能な画像データ処理装置、画像データ処理方法、印刷装置および画像データ処理プログラムを提供することができる。
請求項2にかかる発明によれば、簡易な構成にて高画質を維持しながら画像データの変換処理を高速化することができる。
請求項3にかかる発明によれば、変換処理区分の簡易な構成の一例を提供することができる。
請求項4にかかる発明によれば、変換処理区分の別の構成例を提供することができ、効率よく画像データの変換処理を行うことができる。
また、請求項5、請求項6にかかる発明によれば、高画質を維持しながら処理速度をさらに向上させることが可能となる。
さらに、請求項7にかかる発明によれば、きめ細やかにブロックの大きさが切り替わるので、高画質を維持しながら処理速度をさらに向上させることが可能となる。
【0027】
さらに、請求項8、請求項15、請求項17、請求項19、請求項20にかかる発明によれば、画像を複数の画素で多階調表現した画像データからドット形成の有無により表現した画像データに変換する際に階調誤差を未変換画素に拡散して画像データを変換する処理を効率よく行うことが可能な画像データ処理装置、画像データ処理方法、印刷装置、画像データ処理プログラムおよび画像データ処理プログラムを記録した媒体を提供することができる。
さらに、請求項9にかかる発明によれば、解像度に応じてブロックの大きさを変更するか否かが切り替わるので、高画質を維持しながら処理速度をさらに向上させることが可能となる。
さらに、請求項10、請求項13にかかる発明によれば、簡易な構成でブロック処理条件を満たすか否かを判定することが可能となる。
【0028】
さらに、請求項11にかかる発明によれば、画像データの階調値の小さい領域でブロック単位の画像データ変換処理を行うことができ、請求項12にかかる発明によれば、画像データの階調値の小さい領域でブロックの大きさを変えながらブロック単位の画像データ変換処理を行うことができる。
【0029】
【発明の実施の形態】
以下、下記の順序に従って本発明の実施形態を説明する。
(1)画像データ処理装置の構成:
(2)画像データ処理プログラムを有するプリンタドライバの概略構成:
(3)画像データ処理装置が行う処理の概略:
(4)画像データ処理装置が行う処理の詳細:
(5)第二の実施形態:
(6)第三の実施形態:
(7)第四の実施形態:
【0030】
(1)画像データ処理装置の構成:
図1は、本発明の第一の実施形態にかかる画像データ処理装置とプリンタとからなる印刷装置100の概略構成を示している。なお、本実施形態の印刷装置100は、パーソナルコンピュータ(PC)10と、画像出力装置であるカラー印刷可能なプリンタ20とから構成されている。
PC10は演算処理の中枢をなすCPU11を備えており、このCPU11はシステムバス10aを介してPC10全体の制御を行う。同バス10aには、タイマ回路11a、ROM12、RAM13、各種ドライブ14,15、各種インターフェイス(I/F)16〜19等が接続されている。
本実施形態のPC10はいわゆるデスクトップ型PCであり、構成を簡略化して説明している。むろん、PC10にはコンピュータとして一般的な構成を有するものを採用することができ、ノート型であるとか、モバイル対応のものであってもよい。また、印刷装置100に適用可能なコンピュータは、PCに限定されるものではない。
【0031】
ハードディスクドライブ14に接続されたハードディスク(HD)14aには、ソフトウェアとしてオペレーティングシステム(OS)や文書情報や画像情報を作成可能なアプリケーションプログラム(APL)等が格納されており、これらのソフトウェアは、実行時にCPU11によって適宜RAM13に転送される。そして、CPU11は、RAM13を一時的なワークエリアとして適宜アクセスしながら種々のプログラムを実行することになる。
入力I/F16には、キーボード16aやマウス16bが操作用入力機器として接続されるとともに、図示しないスキャナやデジタルカメラ等も接続されるようになっている。また、CRTI/F17には、表示用のディスプレイ17aが接続されている。さらに、プリンタI/F19には、パラレルI/Fケーブルを介してプリンタ20が接続されている。むろん、プリンタ20との接続I/FはパラレルI/Fに限られる必要もなく、シリアルI/FやSCSI、USB接続等種々の接続態様を採用可能であるし、今後開発されるいかなる接続態様であっても同様である。
【0032】
なお、本発明の画像データ処理プログラムを記憶したHD14aは本発明にいう画像データ処理プログラムを記録した媒体となるが、本プログラムを格納可能な記録媒体はHDに限定されるものではない。例えば、CD−ROMやフレキシブルディスクであってもよい。これらの記録媒体に記録されたソフトウェアは対応するドライブを介して読み込まれ、HD14aにインストールされて、CPU11によってRAM13上に読み込まれて各種処理が実行されることになる。また、光磁気ディスクや半導体デバイスである不揮発性メモリ等であってもよい。さらに、バス10aに接続されたモデム等の通信I/F18をインターネット網に接続し、種々のプログラムを格納したサーバにアクセスして本画像データ処理プログラムをダウンロードすることも可能である。
【0033】
本実施形態で使用するプリンタ20は、インクジェットプリンタであり、わかりやすく説明するため、カラー印刷時に、シアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)、の計4色の色インクを使用するものとする。
図2は、変換後の画像データに基づく画像を印刷する印刷手段であるプリンタ20のブロック構成をPC10とともに示している。プリンタ20内部に設けられたバス20aには、CPU21、ROM22、RAM23、ASIC24、コントロールIC25、通信I/O26、イメージデータや駆動信号等を送信するためのI/F27、等が接続されている。そして、CPU21が、RAM23をワークエリアとして利用しながらROM22に書き込まれたプログラムに従って各部を制御する。
【0034】
コントロールIC25は、CPU21と所定の信号を送受信しながらカートリッジホルダ28へのインクカートリッジ28a〜dの装着状態を検出等する。通信I/O26はPC10のプリンタI/F19と接続されており、プリンタ20は通信I/O26を介してPC10から送信されるCMYKに変換されたデータやページ記述言語等からなる印刷ジョブを受信する。また、PC10から各種要求を受信したとき、通信I/Oは対応する情報をPC10に出力する。本プリンタ20は印刷時の解像度として720×360dpi や1440×720dpi 等を選択可能となっており、PC10から通信I/O26を介して解像度の選択情報を入手してRAM23に記憶しておき、解像度に応じたドット単位で印刷を行うことが可能となっている。
【0035】
ASIC24は図示しない印刷ヘッドを駆動するためにカスタマイズされたICであり、CPU21と所定の信号を送受信しつつ解像度に応じた印刷ヘッド駆動のための処理を行う。また、ヘッド駆動部29に対して印加電圧データを出力する。ヘッド駆動部29は、専用ICと駆動用トランジスタと放熱板等からなる回路であり、ASIC24から入力される印加電圧データに基づいて印刷ヘッドに内蔵されたピエゾ素子への印加電圧パターンを生成する。印刷ヘッドは、それぞれ異なる四種類の色インクが充填されたインクカートリッジ28a〜dを装着したカートリッジホルダ28と接続されており、各色インクの供給を受けてピエゾ素子が駆動されることにより、色インクを吐出し、印刷用紙等の印刷媒体上に色インクのドットを形成する。印刷ヘッドのインク吐出面には、四種類の色インクのそれぞれを吐出する4組のノズル列が印刷ヘッドの主走査方向に並ぶように形成され、ノズル列のそれぞれは複数のノズル(例えば、48個)が副走査方向に一定の間隔で直線状に配置されている。
【0036】
I/F27には、キャリッジ機構27aと紙送り機構27bとが接続されている。紙送り機構27bは、紙送りモータや紙送りローラ等からなり、印刷媒体を順次送り出して副走査を行う。キャリッジ機構27aは、印刷ヘッドを搭載するキャリッジと、このキャリッジをタイミングベルト等を介して走行させるキャリッジモータ等からなり、印刷ヘッドを主走査させる。副走査方向に複数のノズルが設けられた印刷ヘッドは、ビット列からなるヘッドデータに基づいてヘッド駆動部29が出力する駆動信号にてピエゾ素子が駆動され、各ノズルから解像度に応じたドット単位でインク滴を吐出させる。
【0037】
(2)画像データ処理プログラムを有するプリンタドライバの概略構成:
PC10では、以上のハードウェアを基礎としてバイオスが実行され、その上層にてOSとAPLとが実行される。基本的には、OSがバイオスを介するか直にハードウェアとアクセスし、APLはOSを介してハードウェアとデータ等のやりとりを行う。
OSにはハードウェアを制御するための各種のドライバ類が組み込まれ、OSの一部となって各種の制御を実行する。このドライバ類は、CRTI/F17を制御するディスプレイドライバや、プリンタI/F19を制御するプリンタドライバ、等である。同プリンタドライバに本発明の画像データ処理プログラムが含まれており、本画像データ処理プログラムの各種機能を有するPC10は本発明にいう画像データ処理装置となる。
【0038】
プリンタドライバは、APLの印刷機能の実行時に稼働され、プリンタI/F19を介してプリンタ20と双方向の通信を行うことが可能である。同プリンタドライバは、OSを介してAPLから画像データを受け取ってプリンタ20に対して出力する画像データに変換し、印刷ジョブとしてプリンタ20に送出する。このため、OSには、グラフィックスに関してAPLとOSとの間でグラフィックユーザーI/F機能を実現するGDI(Graphics Device Interface )等も組み込まれている。
【0039】
図3は、上記プリンタドライバの概略構成を模式的に示している。
図において、プリンタドライバは、各種モジュールを有しており、図示しない機能制御モジュールの制御に基づいて所定の機能を実現しつつ連携動作して画像データを変換することが可能である。画像データ入手モジュールは、APLにて作成されたRGBに基づく画像データをGDIから入手する。同画像データは、画像をドットマトリクス状の画素で多階調表現したデータである。解像度変換モジュール、色変換モジュール、階調数変換モジュール、インターレースモジュールは、同画像データに基づいてプリンタ20に対して出力する画像データへの変換処理を行い、プリンタ20に送出する。すると、プリンタ20は、変換された画像データに基づいて、印刷媒体上に色インクのドットを形成し、カラー画像を印刷する。
【0040】
本画像データ処理プログラムは、概略、解像度取得機能P1、変換処理機能P2を備えている。そして、機能P1,P2は、PC10をそれぞれ本発明にいう解像度取得手段、変換処理手段として機能させることになる。
解像度取得機能P1は、解像度変換モジュールに含まれており、プリンタ20に対して設定する解像度を取得する。変換処理機能P2は、同機能P1にて取得された解像度に応じて一または二以上の画素数の近隣した画素を変換処理区分とし、画像データを変換する着目された変換処理区分内の各画素の階調値と拡散されてきた階調誤差(以下、拡散誤差と呼ぶ。)とに基づいて、着目された変換処理区分全体の階調誤差を当該変換処理区分外の未変換画素に拡散させながら画像データをまとめて変換することが可能である。その際、取得された解像度が大きくなるほど変換処理区分内の画素の数を増やすことにしている。例えば、比較的低解像度である720×360dpi であるとき、近隣した2×2画素を変換処理区分とし、ある変換処理区分B1に着目して同変換処理区分B1内の画像データをまとめて変換することが可能となっている。一方、比較的高解像度である1440×720dpi であるとき、より画素数の多い近隣した4×4画素を変換処理区分とし、ある変換処理区分B2に着目して同変換処理区分B2内の画像データをまとめて変換することが可能となっている。図では、着目された変換処理区分B1,B2を太線で囲っている。
なお、解像度が比較的小さいとき、1画素のみを変換処理区分とし、画素別に着目画素の画像データを変換するようにしてもよい。
【0041】
本実施形態では、高画質を維持しながら画像データの変換処理を高速化させるため、変換処理区分が複数の画素から構成された場合、変換処理区分内で所定のブロック処理条件が成立したときのみ同変換処理区分内で画像データをまとめて変換し、同条件が成立していないときには同変換処理区分内で画素別に画像データを変換するようにしている。この処理を実現するため、変換処理機能P2は、図4に示すようにブロック処理判定機能P21と第一および第二の変換処理機能P22,P23を有している。そして、機能P21〜P23は、PC10をそれぞれ本発明にいうブロック処理判定手段、第一の変換処理手段、第二の変換処理手段として機能させることになる。
ブロック処理判定機能P21は、低解像度であるとき2×2画素をまとめてブロック(変換処理区分)とし、着目ブロック内の各画素の階調値に基づいて所定のブロック処理条件を満たすか否かを判定する。同条件が満たされると判定されると、第一の変換処理機能P22により着目ブロックB3内の画素の画像データが変換され、同条件が満たされないと判定されると、第二の変換処理機能P23により着目ブロックB3内の画素の画像データが変換されるようになっている。ここで、第一の変換処理機能P22は、着目ブロックB3内の各画素の階調値と拡散誤差とに基づいて、着目ブロックB3全体の階調誤差を着目ブロックB3外の他のブロック内の未変換画素に拡散させながら着目ブロックB3内の画素の画像データをまとめて変換する、ブロック単位の画像データの変換処理を実現させる。一方、第二の変換処理機能P23は、着目ブロックB3内の画素別に同画素の階調値と拡散誤差とに基づいて同画素の階調誤差を他の未変換画素に拡散させながら着目ブロックB3内の画素の画像データを変換する。すなわち、ブロック全体では画素をまとめずにブロックより小さい1画素単位の画像データの変換処理を実現させる。なお、図では着目ブロックB3内の着目画素U1を太線で囲っている。
【0042】
さらに、高画質を維持しながら画像データの変換処理を高速化させるため、変換処理区分内でブロック処理条件が成立していないとき、同変換処理区分内の画素を区分して小ブロックとし、同小ブロック内で所定の小ブロック処理条件が成立したときには小ブロック内で画像データをまとめて変換することも可能となっている。図5は、高解像度であるときの機能P21〜P23が実現させる処理の概略を模式的に示している。
ブロック処理判定機能P21は、高解像度であるとき4×4画素をまとめてブロック(変換処理区分)とし、同様に所定のブロック処理条件を満たすか否かを判定する。同条件が満たされると判定されると、第一の変換処理機能P22により着目ブロックB4内の画素の画像データが変換されるが、同条件が満たされないと判定されると、着目ブロックB4内の画素を2×2画素毎に区分して小ブロックとし、着目された小ブロックB5内の各画素の階調値に基づいて所定の小ブロック処理条件を満たすか否かを判定するようになっている。そして、当該条件が満たされると判定されると、第一の変換処理機能P22により小ブロックB5内の画素の画像データが変換され、同条件が満たされないと判定されると、第二の変換処理機能P23により小ブロックB5内の画素の画像データが変換されるようになっている。なお、図では着目小ブロックB5内の着目画素U2を太線で囲っている。小ブロック処理条件が成立したと判定されたとき、第一の変換処理機能P22は、小ブロックB5内の各画素の階調値と拡散誤差とに基づいて、小ブロックB5全体の階調誤差を当該小ブロックB5外の未変換画素に拡散させながら小ブロックB5内の画素の画像データをまとめて変換する、小ブロック単位の画像データの変換処理を実現させるようになっている。
このように、本実施形態では、解像度が1440×720dpi の場合にのみ、所定の小ブロック移行条件を満たすと判定して小ブロック処理条件を満たすか否かを判定するようにしている。
なお、着目ブロック内で区分される小ブロックは、略均等に区分されたものであってもよいし、不均等に区分されたものであってもよい。
【0043】
図6は、上述した各種モジュールがPC10に実現させる処理をフローチャートにより示している。本フローは、PC10のCPU11によって行われるものである。
APLはAPL用印刷機能を有しており、このAPL用印刷機能にてディスプレイ17aに表示される印刷実行メニューが選択されると、プリンタドライバは画像データ入手モジュールを動作させて、RGBに基づく画像データを入手する(ステップS105。以下、かっこ内の「ステップ」の記載を省略する。)。その際、画像を印刷させる解像度の選択に関する情報が含まれていれば、その情報も入手する。
【0044】
次に、解像度変換モジュールにより、プリンタ20に印刷させる解像度を取得する(S110)。解像度を取得する際、APLから解像度の選択に関する情報が含まれていれば、その情報に基づいて解像度を決定する。解像度の選択に関する情報が含まれていなければ、デフォルトの解像度(例えば、720×360dpi )を取得する。また、図示しない印刷インターフェイス画面を表示し、同画面に設けられた印刷モードや印刷媒体の種類を選択する欄にて各種選択入力を受け付け、選択入力に応じて解像度を決定して取得することが可能となっている。
さらに、入手した画像データの解像度をプリンタ20が印刷するための解像度に変換する、解像度変換処理を行う(S115)。解像度変換された画像データは様々な階調数とすることができるが、本実施形態では、RGB各8ビットを割り当てて、階調値0から255の256階調としている。ここで、階調値が大きくなるほどRGB各成分が大きくなるようにしてあり、RGB全ての階調値が0であるときはほぼブラックに相当し、RGB全ての階調値が255であるときは色インクのドットが形成されないことになる。なお、入手した画像データの解像度が高い場合には、例えば一定の割合でデータを間引くことにより解像度を変換し、入手した画像データの解像度が低い場合には、例えば線形補間により画像データを補間して解像度を変換する。
【0045】
さらに、色変換モジュールにより、RGBに基づく画像データをCMYKの色インクのそれぞれに対応したデータに変換する、色変換処理を行う(S120)。その際、LUT(ルックアップテーブル)と呼ばれる色変換テーブルを参照して画像データを変換する。本実施形態のLUTは、256階調のRGBそれぞれの階調値をCMYKそれぞれについて256階調とされた階調値に対応させたテーブルであり、補間演算を前提として、例えば、17×17×17の格子点に対応した大量のデータを備えている。変換された画像データも、画像をドットマトリクス状の画素で多階調表現したデータであり、階調値が大きくなるほどCMYK各成分が大きくなるようにしてある。したがって、階調値が大きくなるほど、印刷媒体上に形成されるドット密度は大きくなる。
なお、本実施形態では、CMYKに基づく画像データの階調数も各8ビットを割り当てて階調値0から255の256階調としているが、256階調以外にも様々な階調とすることが可能であることは言うまでもない。
【0046】
そして、階調数変換モジュールにより、画像をドットマトリクス状の画素で多階調表現したCMYKに基づく画像データをドット形成の有無により表現した画像データに変換する、階調数変換処理を行う(S125)。その際、いわゆる誤差拡散法により、各画素の階調誤差を他の未変換画素に拡散させながら画像データを変換する。
CMYKに基づく画像データは256階調で表現したデータであるが、プリンタ20は色インク別にドットを形成するか否かにより印刷を行うため、プリンタ20に送出するデータは「ドットを形成する」と「ドットを形成しない」のいずれかで表現したデータとする必要がある。本実施形態では、変換後の画像データの値が「255」であるとき「ドットを形成する」画像データとし、変換後の画像データの値が「0」であるとき「ドットを形成しない」画像データとしている。そこで、階調数変換処理を行い、画像データをドット形成の有無により表現したデータ、すなわち、「255」または「0」に変換するようにしている。なお、詳しくは後述するが、画像データの2×2画素をまとめてブロックとし、所定の処理条件に応じてブロック単位で階調数変換処理を行うようにしており、高画質が維持されながら画像データの変換処理は高速化されるようになっている。
【0047】
その後、インターレースモジュールにより、プリンタ20のドットの形成順序を考慮しながらドット形成の有無により表現した画像データを並べ替えるインターレース処理を行う(S130)。そして、解像度取得機能にて取得された解像度の選択情報とともに、最終的に得られた画像データをプリンタ20に対して送出し(S135)、本フローを終了する。すると、プリンタ20は、解像度の選択情報を入手するとともに同画像データを入手し、印刷ヘッドを駆動して解像度に対応した各色インクのドットを印刷媒体上に形成する。その結果、APLからの画像データに対応したカラー画像が印刷媒体に印刷されることになる。
【0048】
(3)画像データ処理装置が行う処理の概略:
次に、本画像データ処理装置が行う階調数変換処理について、図7のフローチャートを参照しながら説明する。なお、変換前の画像データはCMYK別とされた階調値とされているので、図のフローはCMYK別に行われることになるが、フローをわかりやすくするため、図示を省略している。また、変換前の画像データはRAM13に記憶されているとともに、各画素から拡散させた階調誤差を記憶する領域や変換した画像データを記憶する領域もRAM13に設けられている。
まず、上記ステップS110で画像を印刷させる解像度が取得されているので、その解像度に応じて処理を分岐させる(S202)。本実施形態では、低解像度である720×360dpi のときにステップS204〜S208の処理を行い、高解像度である1440×720dpi のときにステップS210〜S214の処理を行うようにしている。
【0049】
低解像度の場合、まず、近隣した2×2画素をまとめてブロックとし、画像データを変換する着目ブロックの位置を設定する(S204)。図8は、着目ブロックの位置を設定する様子を模式的に示している。変換前の画像データは、画像をドットマトリクス状の画素U10で256階調表現したCMYK別のデータである。図では、各画素U10を小さな正方形で示している。ここで、図の左右方向を横方向、上下方向を縦方向とすると、図の左側に示すように、低解像度のときには横2画素、縦2画素の計4画素を一つのブロックB11(図では、4つの画素を囲む点線で示している。)としている。そして、同ブロックB11単位で画像データの変換処理を行うことになる。また、図中太線で示したように、着目ブロックB12はブロックB11のいずれかに設定される。本実施形態では、画像データの変換処理の順序を、左上のブロックB11から順番に右上のブロックB11まで、次にその一つ下の左端のブロックB11から順番に右端のブロックB11までとし、その後同様に一つずつ下の左端のブロックB11から順番に右端のブロックB11までとして、最後に右下のブロックB11としている。むろん、画像データの変換処理の順序は、適宜変更可能である。
なお、ブロックの構成は横2×縦2画素に限定されるものではなく、例えば、横3×縦3画素であってもよいし、横1列に並んだ複数の画素であってもよい。さらに、ブロックは、例えば横2×縦4画素といった長方形状であってもよいし、ある基準画素と同基準画素の右隣と左下と下隣の画素の計4画素とをまとめたものであってもよい。
【0050】
着目ブロックの位置を設定すると、誤差拡散法を用いて2×2画素の着目ブロック内で画像データの変換処理を行う低解像度用変換処理を行う(S206)。詳しくは後述するが、低解像度用変換処理では、画質を低下させないように、着目ブロックが画像中で明度の高いハイライト領域すなわち明るい領域にあるのか、明度の低い暗い領域にあるのか、明度の中間的な領域にあるのかを判定し、判定結果に応じた変換処理を行う。
低解像度用変換処理を行うと、画像データの全ブロックについて変換処理を終了したか否かを判断する(S208)。変換処理を行っていないブロックがある場合にはステップS204に戻り、前回の着目ブロックの右側にブロックがあるときには当該ブロックを着目ブロックの位置として設定し、前回の着目ブロックの右側にブロックがないときには一つ下の左端のブロックを着目ブロックとして設定する。そして、全ブロックについて変換処理を終了するまで繰り返し低解像度用変換処理を行う。
その後、上記ステップS130のインターレース処理が行われ、プリンタ20に対してドット形成の有無により表現した画像データが送出され、720×360dpi にて画像を印刷させることになる。
【0051】
一方、高解像度の場合、まず、近隣した4×4画素をまとめてブロックとし、画像データを変換する着目ブロックの位置を設定する(S210)。図8の右側に示すように、高解像度のときには横4画素、縦4画素の計16画素を一つのブロックB21(図では、16画素を囲む点線で示している。)としている。そして、同ブロックB21単位で画像データの変換処理を行うことになる。また、図中太線で示したように、着目ブロックB22はブロックB21のいずれかに設定される。なお、画像データの変換処理の順序は、2×2画素からブロックB11とする場合と同様、左上のブロックB21から始めて最後に右下のブロックB21としているが、2×2画素のブロックB11とする場合と異なる順序とすることも可能である。
このように、本実施形態では、印刷させる解像度が大きくなるほど変換処理区分であるブロック内の画素の数を増やすようにしている。その際、ブロック内の画素の数を解像度に比例した数、すなわち、1440×720dpi の場合、印刷される画像の単位面積あたりのドット数が720×360dpi の場合と比べて4倍となるので、4×4=16画素としている。むろん、ブロック内の画素の数を解像度に比例した数とするのは一例にすぎないため、1440×720dpi の場合に3×3画素や5×5画素のブロックとしてもよい。
【0052】
着目ブロックの位置を設定すると、誤差拡散法を用いて4×4画素の着目ブロック内で画像データの変換処理を行う高解像度用変換処理を行う(S212)。詳しくは後述するが、高解像度用変換処理では、着目ブロックが画像中でハイライト領域にあるのか暗い領域にあるのか明度の中間的な領域にあるのかに加えて、中間的な領域の中でも中心部分にあるのか、ハイライト側にあるのか、暗い領域側にあるのかを判定し、判定結果に応じた変換処理を行う。その際、明度の中間的な領域と判定したときを所定の小ブロック処理条件成立として着目ブロック内の画素を区分して小ブロック(図8の例では、2×2画素からなる小ブロックBa〜Bd)とし、2×2画素の着目された小ブロック(以下、着目小ブロックと呼ぶ。)内で画像データの変換処理を行う。すなわち、高解像度の場合のみ、所定の小ブロック移行条件を満たすと判定し、小ブロック処理条件を満たすか否かを判定しながらブロックの大きさを切り替えつつ画像データの変換処理を行う。
高解像度用変換処理を行うと、低解像度用変換処理を行った場合と同様、画像データの全ブロックについて変換処理を終了したか否かを判断する(S214)。変換処理を行っていないブロックがある場合には、新たな着目ブロックを設定し、全ブロックについて変換処理を終了するまで繰り返し高解像度用変換処理を行う。その後、上記ステップS130のインターレース処理が行われ、プリンタ20に対してドット形成の有無により表現した画像データが送出され、1440×720dpi にて画像を印刷させることになる。
【0053】
(4)画像データ処理装置が行う処理の詳細:
以下、本画像データ処理装置が行う処理の詳細について、説明する。
図9は、図7のステップS206で行われる低解像度用変換処理をフローチャートにより示している。
まず、2×2画素からなる着目ブロック内の各画素の階調値を読み込む(S302)。同階調値はCMYK別に色変換されてRAM13に記憶されているので、RAM13からCMYK別に着目ブロックに対応した4画素分の階調値を読み込むことになる。図8では、説明の便宜のため、着目ブロックB12内の4つの画素のうち、左上、右上、左下、右下の画素を、それぞれPa,Pb,Pc,Pdとして区別している。
【0054】
その後、読み込んだ階調値の総和S1を算出する(S304)。ここで、着目ブロックB12内の画素Pa〜Pdの階調値をそれぞれDa,Db,Dc,Ddで表すと、総和S1は以下の式により算出することができる。
S1 = Da + Db + Dc + Dd ・・・(1)
実際には、各画素に対応してCMYK別の階調値があるため、CMYK別に総和S1を算出することになる。
なお、ブロックがn画素から構成されている場合には、階調値の総和S1は、以下の一般式により算出することができる。
S1 = Σ(Di) ・・・(2)
ただし、iは1〜nの整数
【0055】
そして、後述するように、総和S1に基づいて、所定のブロック処理基準値D11,D12を基準として、所定のブロック処理条件を満たすか否かを判定し、同条件を満たすと判定したときには2×2画素のブロック単位で画像データの変換処理を行い、同条件を満たさないと判定したときには1画素単位で画像データの変換処理を行うようにしている。
階調値の総和S1を算出すると、同総和S1が上記基準値D11よりも大きいか否かを判断する(S306)。この判断処理は、ステップS310の判断処理とともにCMYK別に行われる。同基準値D11は、画像データの階調値の小さい領域において、ブロック単位の画像データ変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものであり、画像データの種類等に応じて適宜決定される値である。S1がD11より大きいとき画像データの階調値の小さい領域における所定のブロック処理条件を満たさないと判定してステップS310に進み、S1がD11以下のときブロック処理条件を満たすと判定してステップS308に進む。画像データ中で0<S1≦D11を満たす領域は、画像中で明度の高い領域である。なお、ステップS306では、S1がD11以上であるか否かを判断するようにしてもよい。すると、S1≧D11のときブロック処理条件を満たさないと判定し、S1<D11のときブロック処理条件を満たすと判定することになる。
【0056】
ステップS308では、2×2画素単位で誤差拡散を行いながら画像データをまとめて変換する4画素単位変換処理(その1)を行い、本フローを終了する。図10は、ブロック単位で誤差拡散を行いながら画像データを変換する様子を説明する説明図である。なお、変換後の画像データはRAM13内の所定領域に格納されることになるが、わかりやすく説明するため、変換処理が終了した画素については変換後の画像データを記載している。
図の上段は、着目ブロックB12の左隣のブロックB13まで誤差拡散を伴う画像データの変換処理が終了した状態を示している。図の例では、着目ブロックB12は画像中で明度の高い領域となっており、着目ブロックB12内の各画素Pa〜Pdのいずれにも階調値「20」(各画素内の上段に記載)が格納されているとともに、他のブロックから階調誤差「50」(各画素内の下段に記載)が拡散されてきているものとする。また、処理の一例として、各画素Pa〜Pdの階調値の総和S1が閾値「100」以下のときに上記ブロック処理条件が成立するものとし、着目ブロックB12内の各画素の階調値と拡散誤差の総和が閾値「150」よりも大きいときに同着目ブロックB12内の1画素にのみドットを形成するものとする。むろん、これらの閾値は一例にすぎず、様々な閾値を採用することができる。
【0057】
ここで、階調値の総和S1は80となるのでブロック処理条件は成立し、同画素の拡散誤差の総和は200となり、着目ブロックB12内の各画素の階調値と拡散誤差との総和は80+200=280であるので着目ブロックB12内の1画素にのみドットを形成することになる。本実施形態では、左隣のブロックB13のように、着目ブロックB12の左上の画素Paにドットを形成することにしている。すなわち、画素Paの画像データを「255」とし、残りの画素Pb,Pc,Pdの画像データを「0」とすることになる。
このように、着目ブロック内の所定位置の画素にのみドットを形成することにより、変換処理が簡素化されるので、画像データの変換が迅速に行われることになる。ここで、着目ブロックB12内の1画素にのみドットを形成する場合には、画素Pb,Pc,Pdのいずれかにドットを形成するようにしてもよいし、着目ブロック内の画素のうち最も階調値の大きい画素にドットを形成するようにしてもよいし、ランダムに画素を選択してドットを形成するようにしてもよい。
【0058】
着目ブロック全体の階調誤差は、着目ブロックB12内の各画素の階調値と拡散誤差との総和から画像データ変換後の着目ブロック内における各画素の階調値の総和を差し引いた値となる。図の例では、着目ブロックB12内の各画素の階調値と拡散誤差との総和は280であるから、変換後の着目ブロックB12内の各画素の階調値の総和255を差し引くことにより、階調誤差は「25」となる。そして、着目ブロック全体の階調誤差を他のブロック内の未変換画素に拡散させる。図では、着目ブロックB12に隣接した6つの未変換画素U11〜U16に階調誤差を拡散させることになる。ここで、未変換画素U11〜U16は、それぞれ、着目ブロックB12の右隣のブロックにおける左上の画素、同右隣のブロックにおける左下の画素、左下のブロックにおける右上の画素、下隣のブロックにおける左上の画素、同下隣のブロックにおける右上の画素、右下のブロックにおける左上の画素である。左上のブロック内の画素や、上隣のブロック内の画素や、左隣のブロック内の画素は変換処理済みであるので、これらの画素には階調誤差を拡散させないようにしている。
【0059】
また、本実施形態では、同階調誤差を他のブロック内の未変換画素に対して略均等に拡散させるようにしている。上述した例では、着目ブロックB12全体の階調誤差は「25」であり、他のブロック内の未変換画素は6つあるので、25を6で除して小数点以下を四捨五入した「4」ずつ未変換画素に拡散させる。ここで、階調誤差が6で割り切れない場合には、未変換画素U16に拡散させる階調誤差を調整して、未変換画素U11〜U16に拡散させる階調誤差の合計を着目ブロックB12全体の階調誤差と一致させるようにしている。その結果、図の下段に示すように、未変換画素U11〜U15に階調誤差「4」が拡散され、未変換画素U16に階調誤差「5」が拡散される。
このようにして、ブロック単位で階調誤差を拡散させながら画像データをまとめて変換することができる。
なお、上記以外にも、様々な手法で同階調誤差を他のブロック内の未変換画素に拡散させることができる。例えば、着目ブロック全体の階調誤差を、同着目ブロックの右隣、左下、下隣、右下のブロック内の画素一つのみに拡散させるようにしてもよい。また、着目ブロックに隣接していない未変換画素に階調誤差を拡散させるようにしてもよいし、未変換画素の位置に応じて同階調誤差を拡散する割合を異ならせるようにしてもよい。
詳しい説明を省略するが、着目ブロックが画像中で明度の低い領域でも、同様の考え方でブロック単位で画像データを変換することが可能である。
【0060】
図11は、上記4画素単位変換処理(その1)をフローチャートにより示している。
まず、着目ブロックについての補正データBxを算出する(S352)。ここで、補正データBxは、着目ブロック内の各画素の階調値と拡散誤差との総和である。着目ブロック内の各画素Pa〜Pdに拡散されてきた拡散誤差をそれぞれEa,Eb,Ec,Edとすると、着目ブロック全体に拡散されてきた拡散誤差SEは、以下の式から求めることができる。
SE = Ea + Eb + Ec + Ed ・・・(3)
着目ブロック内の各画素の階調値の総和S1を用いると、補正データBxは、以下の式により算出することができる。
Bx = S1 + SE ・・・(4)
着目ブロック内の各画素の拡散誤差はRAM13に記憶されているので、RAM13から拡散誤差Ea〜Edを読み出し、上記式(3)、式(4)により補正データBxを算出することができる。なお、各画素の拡散誤差は、上記ステップS302で各画素の階調値を読み出すときに一緒に読み出しておいてもよい。
【0061】
次に、算出した補正データBxが所定の閾値th11よりも大きいか否かを判断する(S354)。むろん、Bx≧th11であるか否かを判断するようにしてもよい。閾値th11は、画像データの階調値の小さい領域において、着目ブロック内に1ドット形成するか否かの境界値として予め設定されるものであり、画像データの種類等に応じて適宜決定される値である。
Bxがth11よりも大きい場合、着目ブロック内の1画素のみオン、すなわち、ドットを形成し(S356)、ステップS360に進む。本実施形態では、着目ブロック内の左上の画素の画像データを「ドットを形成する」意味の「255」とし、残りの3画素の画像データを「ドットを形成しない」意味の「0」とする。一方、Bxがth11以下の場合、着目ブロック内の画素全てをオフ、すなわち、ドットを形成せず(S358)、ステップS360に進む。この場合、着目ブロック内の4画素全ての画像データを「ドットを形成しない」意味の「0」とする。
【0062】
本フローが行われるのは、着目ブロックが画像中で明度の高い領域にあるときであり、ドット形成密度が小さいため、ブロック単位でドットを形成しても画像の分解能の低下は目立たず、高画質を維持することが可能である。そこで、変換後の各画素の画像データを「255」または「0」とした後、着目ブロック全体の階調誤差を算出する(S360)。ここで、画像データ変換後の着目ブロック内に形成されるドット数をNdotとすると、画像データ変換後の着目ブロック内における各画素の階調値の総和Sdotは、以下の式から求めることができる。
Sdot = 255 × Ndot ・・・(5)
すなわち、着目ブロック全体の階調誤差Eは、以下の式のように、着目ブロック内の各画素の階調値と拡散誤差との総和である補正データBxから画像データ変換後の着目ブロック内における各画素の階調値の総和を差し引くことにより算出することができる。
E = Bx − Sdot ・・・(6)
【0063】
そして、同階調誤差Eを他のブロック内の未変換画素に拡散させ(S362)、本フローを終了する。本実施形態では、着目ブロック外の未変換画素U11〜U16に対して階調誤差を略均等に、すなわち、E/6ずつ階調誤差を拡散させている。ここで、階調誤差が6で割り切れない場合には、未変換画素U16に拡散させる階調誤差を調整している。
このようにして、2×2画素の着目ブロックにおけるブロック単位の画像データの変換処理が終了する。すなわち、図11で示したフローは、ブロック処理条件を満たすと判定されたときにブロック単位で画像データを変換する第一の変換処理機能を実現させる。
その後はステップS208にて全ブロックについて変換処理が終了したか否かが判断され、全ブロックについて変換処理が終了するまで繰り返し低解像度用変換処理が行われる。
【0064】
なお、ステップS354の判断を行う前に、上記総和S1が0であるか否かを判断し、S1=0であるときに着目ブロック内の画素全てをオフとしてステップS360〜S362と同様のブロック単位の誤差拡散を行うようにしてもよい。すると、着目ブロック内の各画素の階調値が全て「0」である場合には、上記4画素単位変換処理(その1)を行う必要がなくなるので画像データの変換処理を高速化させることができる。
【0065】
ステップS310では、上記総和S1が別のブロック処理基準値D12よりも大きいか否かを判断する。同基準値D12は、画像データの階調値の大きい領域において、ブロック単位の画像データ変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものであり、D11よりも大きくしてある。S1がD12よりも大きいとき、画像データの階調値の大きい領域における所定のブロック処理条件を満たすと判定してステップS314に進み、S1がD12以下のとき、同条件を満たさないと判定してステップS312に進む。なお、ステップS310でも、S1がD12以上であるか否かを判断するようにしてもよい。
【0066】
ステップS312では、1画素単位で誤差拡散を行いながら画像データを変換する1画素単位変換処理を行い、本フローを終了する。図12は、1画素単位で誤差拡散を行いながら画像データを変換する様子を示す模式図である。なお、斜線が記入された画素は、誤差拡散を伴う画像データの変換処理が終了したことを示している。
本実施形態では、着目ブロックB12内で画素Pa,Pb,Pc,Pdの順番に、同画素の階調誤差を他の未変換画素に拡散させながら着目ブロックB12内の画素の画像データを変換する。ここで、未変換画素は、着目ブロックB12内であってもよいし、他のブロック内であってもよい。
【0067】
まず、1画素目の画素Paについて、階調値と他の画素からの階調誤差に基づいてドットを形成するか否かを判定し、変換後の画像データを「255」または「0」とする。そして、画素Paの階調誤差を他の未変換画素に拡散させる。このとき、図中ブロック矢印で示したように、同画素Paの右隣の未変換画素Pb、下隣の未変換画素Pc、右下の未変換画素Pdに拡散させる。1画素単位の変換処理を行う場合も、階調誤差を3つの未変換画素Pb,Pc,Pdに対して略均等に拡散させる。
2画素目の画素Pbについても、同様にしてドットを形成するか否かを判定し、変換後の画像データを「255」または「0」とする。そして、画素Pbの階調誤差を、同画素Pbの左下の未変換画素Pc、下隣の未変換画素Pd、着目ブロックB12外となる右隣の未変換画素U11、右下の未変換画素U12に対して略均等に拡散させている。
3画素目の画素Pcについても、同様にして変換後の画像データを「255」または「0」とする。そして、画素Pcの階調誤差を、同画素Pcの右隣の未変換画素Pd、着目ブロックB12外となる左下の未変換画素U13、下隣の未変換画素U14、右下の未変換画素U15に対して略均等に拡散させる。
4画素目の画素Pdについても、同様にして変換後の画像データを「255」または「0」とする。そして、画素Pdの階調誤差を、着目ブロックB12外となる同画素Pdの右隣の未変換画素U12、左下の未変換画素U14、下隣の未変換画素U15、右下の未変換画素U16に対して略均等に拡散させる。
【0068】
このようにして、着目ブロック内の画素別に同画素の階調誤差を拡散させながら画像データを変換することができる。むろん、着目ブロックが2×2画素以外であっても、同様にして画素別の画像データ変換処理を行うことが可能である。
なお、上記以外にも、様々な手法で同階調誤差を他の未変換画素に拡散させることができる。例えば、画素Pa,Pb,Pcについては、着目ブロックB12内の未変換画素にのみ階調誤差を拡散させながら画像データを変換し、画素Pdについてのみ、他のブロック内の未変換画素に階調誤差を拡散させながら画像データを変換するようにしてもよい。また、未変換画素の位置に応じて同階調誤差を拡散する割合を異ならせるようにしてもよい。むろん、画像データを変換する順番については、画素Pa,Pb,Pc,Pdとする以外にも様々な順番が可能であり、例えば、画素Pa,Pc,Pb,Pdの順としてもよい。また、ブロック毎に画像データの変換処理の順序を変えるようにしてもよい。
本実施形態では、着目ブロック内の画素を1画素単位で区分して本発明にいう画素区分としているが、着目ブロック内の画素を2以上の画素単位で区分して画素区分としてもよい。例えば、横2画素×縦1画素を画素区分とすると、まず、図9の画素Pa,Pbの階調値と拡散誤差とに基づいて同画素Pa,Pb全体の階調誤差を当該画素Pa,Pb外の未変換画素に拡散させながら同画素Pa,Pbの画像データをまとめて変換すればよい。次に、画素Pc,Pdの階調値と拡散誤差とに基づいて同画素Pc,Pd全体の階調誤差を当該画素Pc,Pd外の未変換画素に拡散させながら同画素Pc,Pcの画像データをまとめて変換すればよい。
【0069】
以上の考えのもと、上記1画素単位変換処理の詳細を図13のフローチャートに基づいて説明する。なお、変換前の画像データはCMYK別とされた階調値とされているので、図のフローはCMYK別に行われることになるが、フローをわかりやすくするため、図示を省略している。
まず、着目ブロック内の着目画素の位置を設定する(S402)。図12で示したように、着目ブロックB12内で画素Pa,Pb,Pc,Pdの順番に着目画素とする。すなわち、着目ブロック内で画素別に画像データの変換処理を行うことになる。
次に、着目画素の階調値と拡散されてきた拡散誤差とを読み込む(S404)。同階調値はCMYK別に色変換されてRAM13に記憶されるとともに、同拡散誤差もCMYK別にRAM13の所定領域に記憶されているので、RAM13からCMYK別に着目画素に対応した階調値と拡散誤差とを読み込むことになる。
【0070】
その後、着目画素についての補正データCxを算出する(S406)。ここで、着目画素の階調値をSi、拡散されてきた拡散誤差をEiとすると、補正データCxは、以下の式のように階調値Siと拡散誤差Eiとの和となる。
Cx = Si + Ei ・・・(7)
着目画素の補正データCxを算出すると、補正データCxが所定の閾値th0よりも大きいか否かを判断する(S408)。むろん、Cx≧th0であるか否かを判断するようにしてもよい。
補正データCxが閾値th0よりも大きい場合、着目画素の画像データを「ドットを形成する」意味の「255」とし(S410)、補正データCxが閾値th0以下の場合、着目画素の画像データを「ドットを形成しない」意味の「0」とする(S412)。
【0071】
その後、着目画素で生じる階調誤差を算出する(S414)。ここで、画像データ変換後の着目画素の画像データをDotとすると、着目画素の階調値Si、着目画素に拡散されてきた拡散誤差Eiを用いて、着目画素で生じる階調誤差E’を算出することができる。
E’ = Si + Ei − Dot ・・・(8)
さらに、同階調誤差E’を他の未変換画素に拡散させる(S416)。本実施形態では、図12で示したように、着目ブロック内であるかどうかを問わず、隣接した未変換画素に対して階調誤差を略均等に拡散させている。すなわち、着目画素が画素Paである場合には未変換画素Pb〜Pdに対してE’/3ずつ階調誤差を拡散させ、着目画素が画素Pbである場合には未変換画素U11,Pc,Pd,U12に対してE’/4ずつ階調誤差を拡散させ、着目画素が画素Pcである場合には未変換画素Pd,U13〜U15に対してE’/4ずつ階調誤差を拡散させ、着目画素が画素Pdである場合には未変換画素U12,U14〜U16に対してE’/4ずつ階調誤差を拡散させる。階調誤差E’が割り切れない場合には、着目画素の右下となる未変換画素に拡散させる階調誤差を調整する。
【0072】
そして、着目ブロック内の全画素について変換処理を終了したか否かを判断する(S418)。着目ブロック内で変換処理を行っていない画素がある場合にはステップS402に戻り、次の着目画素の位置を設定する。そして、繰り返し上述した画像データの変換処理を行う。一方、着目ブロック内の全画素について変換処理を終了した場合、1画素単位変換処理を終了する。
このようにして、2×2画素の着目ブロックにおける1画素単位の画像データの変換処理が終了する。すなわち、図13で示したフローは、ブロック処理条件を満たさないと判定されたときに着目ブロック内で画素別に画像データを変換する第二の変換処理機能を実現させる。
その後はステップS208にて全ブロックについて変換処理が終了したか否かが判断され、全ブロックについて変換処理が終了するまで繰り返し低解像度用変換処理が行われる。
【0073】
なお、上記総和S1が基準値D12よりも小さいと判断したときであっても、着目ブロック内の各画素の階調値と拡散誤差とに基づいて、着目ブロック内にドットを形成するか否か、または、着目ブロック内の画素全てにドットを形成するか否かを判断してもよい。そして、着目ブロック内にドットを全く形成しないかまたは着目ブロック内の画素全てにドットを形成する場合には、着目ブロック内の画素全てをオフまたはオンとして上記ステップS360〜S362と同様のブロック単位の誤差拡散を行うようにしてもよい。この処理は、D11<D11’<D12’<D12となる所定の基準値D11’,D12’を用いて、D11<S1≦D11’またはD12’<S1≦D12となるときに行ってもよい。なお、ブロック内にドットが全く形成されないかまたはブロック内の画素全てにドットが形成されるとき、画像データの変換処理をブロック単位で行ったとしても着目ブロック外に拡散される階調誤差は同じであり、また、ドットが全く形成されないかまたは画素全てにドットが形成されることには変わりがないため、高画質を維持しながら画像データの変換処理を高速化させることができる。
【0074】
ステップS314では、2×2画素単位で誤差拡散を行いながら画像データをまとめて変換する4画素単位変換処理(その2)を行い、その後、本フローを終了する。図14は、同処理をフローチャートにより示している。
まず、上記ステップS352と同様にして、着目ブロックについての補正データBxを算出する(S452)。次に、算出した補正データBxが所定の閾値th12よりも大きいか否かを判断する(S454)。むろん、Bx≧th12であるか否かを判断するようにしてもよい。閾値th12は、画像データの階調値の大きい領域において、着目ブロック内で全ドット形成するか否かの境界値として予め設定されるものであり、上記閾値th11よりも大きな値としている。
Bxがth12よりも大きい場合、着目ブロック内の画素全てをオン、すなわち、ドットを形成し(S456)、ステップS460に進む。この場合、着目ブロック内の4画素全て画像データを「ドットを形成する」意味の「255」とする。一方、Bxがth12以下の場合、着目ブロック内の1画素のみオフ、すなわち、1画素のみドットを形成せず(S458)、ステップS460に進む。本実施形態では、着目ブロック内の右下の画素の画像データを「ドットを形成しない」意味の「0」とし、残りの3画素の画像データを「ドットを形成する」意味の「255」とする。
【0075】
本フローが行われるのは、着目ブロックが画像中で明度の低い領域にあるときであり、ドット形成密度が大きいため、ブロック単位でドットを形成しても画像の分解能の低下は目立たず、高画質を維持することが可能である。そこで、変換後の各画素の画像データを「255」または「0」とした後、ステップS360,S362と同様にして、着目ブロック全体の階調誤差Eを算出し(S460)、同階調誤差Eを他のブロック内の未変換画素に拡散させ(S462)、本フローを終了する。
すなわち、図14で示したフローも第一の変換処理機能を実現させることになる。
その後はステップS208にて全ブロックについて変換処理が終了したか否かが判断され、全ブロックについて変換処理が終了するまで繰り返し低解像度用変換処理が行われる。
【0076】
このように、低解像度の場合に着目ブロックで行われる画像データの変換処理は、同着目ブロック内の各画素の階調値から算出される総和S1に応じて、以下のように切り替えられることになる。
0 ≦S1≦D11のとき、 4画素単位変換処理(その1)
D11<S1≦D12のとき、 1画素単位変換処理
D12<S1のとき、 4画素単位変換処理(その2)
ここで、S1≦D11またはD12<S1のとき、ブロック処理条件成立である。すなわち、図7のステップS204,S302〜S306,S310は、低解像度に対応した二以上の近隣した画素をまとめてブロックとし、着目ブロック内の各画素の階調値に基づいて所定のブロック処理条件を満たすか否かを判定するブロック処理判定機能を実現させる。
【0077】
なお、4画素単位変換処理(その2)を行う前に、4画素の階調値の総和S1が255×4=1020であるか否かを判断し、S1=1020であるときに着目ブロック内の画素全てをオンとして上記ステップS360〜S362と同様のブロック単位の誤差拡散を行うようにしてもよい。すると、着目ブロック内の各画素の階調値が全て「255」である場合には、上記4画素単位変換処理(その2)を行う必要がなくなるので画像データの変換処理を高速化させることができる。
【0078】
ところで、従来は画像を印刷させる解像度に関係なく、2×2画素をまとめてブロックとし、ブロック単位の変換処理を行っても高画質を維持可能である画像の明度が高い領域を所定のブロック処理条件が成立する領域として設定し、着目ブロックが同ブロック処理条件を満たすと判定したときブロック単位の変換処理を行い、同ブロック処理条件を満たさないと判定したとき1画素単位で変換処理を行っていた。しかし、高解像度で印刷させる場合でも2×2画素単位で変換処理が行われるため、低解像度で印刷させる場合と比べて見た目で小さい処理単位となり、処理速度は十分に高速化されていなかった。
そこで、本発明では、高解像度の場合にさらに大きなブロック単位で変換処理を行うことが可能となるよう、図7のステップS202の判断処理とステップS210〜S214の処理が追加されている。
【0079】
図15は、図7のステップS212で行われる高解像度用変換処理をフローチャートにより示している。なお、低解像度用変換処理と同様の考えを採用している部分については、詳しい説明を省略する。
まず、4×4画素からなる着目ブロック内の各画素の階調値を読み込む(S502)。その際、RAM13からCMYK別に着目ブロックに対応した16画素分の階調値を読み込むことになる。
その後、読み込んだ階調値の総和S2を算出する(S504)。ここで、図8の右側に示した着目ブロックB22内の16画素の階調値をDAi(i=1〜16)で表すと、上記式(2)と同様にして階調値の総和S2を算出することができる。
S2 = Σ(DAi) ・・・(9)
そして、後述するように、総和S2に基づいて、所定のブロック処理基準値D21,D22を基準として、高解像度の場合における所定のブロック処理条件を満たすか否かを判定し、同条件を満たすと判定したときには4×4画素単位で画像データの変換処理を行い、同条件を満たさないと判定したときにはより小さい変換処理区分にて画像データの変換処理を行うようにしている。
階調値の総和S2を算出すると、同総和S2が上記基準値D21よりも大きいか否かを判断する(S506)。むろん、S2≧D21であるか否かを判断するようにしてもよい。同判断は、ステップS510とともにCMYK別に行われる。同基準値D21は、上記基準値D11と同様、画像データの階調値の小さい領域において、ブロック単位の画像データ変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものである。なお、D21は、D11に画素数比16/4=4を乗じた値としてもよいし、この値とは異なる値としてもよい。S2>D21のとき画像データの階調値の小さい領域における所定のブロック処理条件を満たさないと判定してステップS510に進み、それ以下のとき同条件を満たすと判定してステップS508に進む。
【0080】
ステップS508では、4×4画素単位で誤差拡散を行いながら画像データをまとめて変換する16画素単位変換処理(その1)を行い、本フローを終了する。図16の上段に示すように、4×4画素の場合も、2×2画素の場合と同様にしてブロック単位の変換処理を行うことができる。なお、図の上段は、着目ブロックB22の左隣のブロックB23まで誤差拡散を伴う画像データの変換処理が終了した状態を示しており、着目ブロックB22内の16画素のいずれにも階調値「20」が格納されているとともに、他のブロックから拡散されてきた階調誤差の総和は「800」とする。また、処理の一例として、階調値の総和S2が閾値「400」以下のときに上記ブロック処理条件が成立するものとし、着目ブロックB22内の各画素の階調値と拡散誤差の総和が閾値「950」よりも大きいときに同着目ブロックB22内の4画素をオンにするものとする。むろん、これらの閾値は一例にすぎない。
【0081】
ここで、階調値の総和S2はブロック処理条件成立となる320であり、拡散誤差の総和は800であるので、着目ブロックB22内の各画素の階調値と拡散誤差との総和は4画素オンとなる1120となる。本実施形態では、16画素の着目ブロック内で4画素オンとするとき、左隣のブロックB23のように、一番上の最も左の画素Peと、上から二番目の最も右の画素Pfと、上から三番目の最も左の画素Pgと、一番下の最も右の画素Phとにドットを形成するようにしている。すなわち、画素Pe〜Phの画像データを「255」とし、残りの12画素の画像データを「0」とすることになる。
また、同着目ブロック内で3画素オンとするときには画素Pe,Pf,Pgをオンとし、2画素オンとするときには画素Pe,Pfをオンとし、1画素オンとするときには画素Peのみをオンとするようにしている。むろん、着目ブロック内で1〜4画素にドットを形成する場合には、画素Pe〜Ph以外の画素にドットを形成するようにしてもよいし、着目ブロック内の画素のうち階調値の大きい画素から順番にドットを形成するようにしてもよいし、ランダムに画素を選択してドットを形成するようにしてもよい。
【0082】
着目ブロック全体の階調誤差は、着目ブロックB22内の各画素の階調値と拡散誤差との総和1120から画像データ変換後の着目ブロック内における各画素の階調値の総和255×4=1020を差し引いた値となる。図の例では、階調誤差は「100」となり、着目ブロック全体の階調誤差を他のブロック内の未変換画素U21〜U30に拡散させる。ここで、未変換画素U21〜U30は、それぞれ、着目ブロックB22の右隣のブロックにおける最も左の4画素、左下のブロックにおける最も右上の画素、下隣のブロックにおける最も上の4画素、右下のブロックにおける最も左上の画素である。本実施形態では、同階調誤差「100」を未変換画素U21〜U30に対して略均等、すなわち、「10」ずつに拡散させる。ここで、階調誤差が10で割り切れない場合には、未変換画素U30に拡散させる階調誤差を調整することにしている。
このようにして、4×4画素のブロック単位で階調誤差を拡散させながら画像データをまとめて変換することができる。むろん、ブロックが4×4画素以外であっても、同様にしてブロック単位の画像データ変換処理を行うことが可能である。
なお、上記以外にも、様々な手法で同階調誤差を未変換画素に拡散させることができ、着目ブロックに隣接していない未変換画素に拡散させてもよい。また、着目ブロックが画像中で明度の低い領域でも、同様の考え方で4×4画素単位で画像データを変換することが可能である。
【0083】
図17は、上記16画素単位変換処理(その1)をフローチャートにより示している。
まず、4×4画素の着目ブロックについて、着目ブロック内の各画素の階調値と拡散誤差との総和である補正データBxを算出する(S552)。なお、算出される補正データBxは16画素分の階調値と拡散誤差との総和であり、ステップS352で算出される4画素分の補正データBxとは参照される画素数が異なっている。ここで、着目ブロック内の16画素に拡散されてきた拡散誤差の総和をSEとすると、上記式(4)により補正データBxを算出することができる。
【0084】
本実施形態では、着目ブロック内で1〜4画素のオンを可能にするため、四種類の閾値th21〜th24(th21<th22<th23<th24)を用いている。ここで、閾値th21〜th24は、画像データの階調値の小さい領域において、それぞれ、着目ブロック内に1ドット形成するか否か、2ドット形成するか否か、3ドット形成するか否か、4ドット形成するか否かの境界値として予め設定されるものである。ステップS554では、Bxがth21よりも大きいか否かを判断する。Bxがth21以下のとき(Bx≦th21)、着目ブロック内の画素全てをオフとし(S556)、ステップS572に進む。Bx>th21のとき、Bxがth22よりも大きいか否かを判断する(S558)。Bxがth22以下のとき(th21<Bx≦th22)、着目ブロック内で1画素をオンとし(S560)、ステップS572に進む。Bx>th22のとき、Bxがth23よりも大きいか否かを判断する(S562)。Bxがth23以下のとき(th22<Bx≦th23)、着目ブロック内で2画素をオンとし(S564)、ステップS572に進む。Bx>th23のとき、Bxがth24よりも大きいか否かを判断する(S566)。Bxがth24以下のとき(th23<Bx≦th24)、着目ブロック内で3画素をオンとし(S568)、ステップS572に進む。Bx>th24のとき、着目ブロック内で4画素をオンとし(S570)、ステップS572に進む。
このように、ブロック単位の変換処理を行う際に着目ブロック内で複数のドットをまとめて形成することができるため、着目ブロック内で1ドットしか形成できなかった従来と比べ、画質を低下させることなく画像データ変換処理をより高速化させることが可能となる。
なお、着目ブロック内で1画素のみオンとするようにしてもよく、この場合には図11で示したフローと同様、一つの閾値のみに基づいて全画素オフまたは1画素のみオンとすればよい。全画素オフまたは4画素オンの二段階のみ切り替えるようにしてもよい。1〜2画素をオンとする場合にはステップS562〜S568の処理を省略すればよい。さらに、th24’>th24なる閾値th24’を設けて、Bx>th24’の場合に5画素オンとするようにしてもよい。
【0085】
ステップS572では、着目ブロック全体の階調誤差を算出する。ここで、画像データ変換後の着目ブロック内に形成されるドット数をNdotとすると、上記式(5)と式(6)により着目ブロック全体の階調誤差E(=Bx−Sdot)を算出することができる。
そして、同階調誤差Eを他のブロック内の未変換画素に拡散させ(S574)、本フローを終了する。本実施形態では、着目ブロック外の未変換画素U21〜U30に対して階調誤差を略均等に、すなわち、E/10ずつ階調誤差を拡散させている。ここで、階調誤差が10で割り切れない場合には、未変換画素U30に拡散させる階調誤差を調整している。
このようにして、4×4画素の着目ブロックにおけるブロック単位の画像データの変換処理が終了する。すなわち、図17で示したフローも第一の変換処理機能を実現させることになる。
その後はステップS214にて全ブロックについて変換処理が終了したか否かが判断され、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
なお、図15のステップS506の判断を行う前に、上記総和S2が0であるか否かを判断し、S2=0であるときに着目ブロック内の画素全てをオフとして上記ステップS572〜S574と同様のブロック単位の誤差拡散を行うようにしてもよい。
【0086】
ステップS510では、上記総和S2が別のブロック処理基準値D22よりも大きいか否かを判断する。むろん、S2≧D22であるか否かを判断するようにしてもよい。同基準値D22は、上記基準値D12と同様、画像データの階調値の大きい領域において、ブロック単位の画像データ変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものであり、基準値D21よりも大きくしてある。なお、D22は、D12に画素数比16/4=4を乗じた値としてもよいし、この値とは異なる値としてもよい。S2>D22のとき画像データの階調値の大きい領域における所定のブロック処理条件を満たすと判定してステップS514に進み、それ以下のとき(D21<S2≦D22)同条件を満たさないと判定してステップS512に進む。
【0087】
ステップS512では、4×4画素より小さい変換処理区分にて画像データの変換処理を行う小ブロック変換処理を行い、本フローを終了する。図18は、その処理をフローチャートにより示している。
まず、4×4画素の着目ブロック内の画素を区分して2×2画素の小ブロックとし、画像データを変換する着目された小ブロック(以下、着目小ブロックと呼ぶ。)の位置を設定する(S602)。図8の右側は、着目小ブロックの位置を設定する様子を模式的に示している。小ブロックBa〜Bdは着目ブロックB22内の2×2画素の計4画素から構成され、着目小ブロックは同小ブロックBa〜Bdのいずれかに設定される。そして、小ブロック単位で画像データの変換処理を行うことになる。なお、説明の便宜のため、着目ブロックB22内の4つの小ブロックのうち、左上、右上、左下、右下の小ブロックを、それぞれBa,Bb,Bc,Bdとして区別している。本実施形態では、画像データの変換処理の順序を、小ブロックBa,Bb,Bc,Bdの順としている。むろん、画像データの変換処理の順序は、適宜変更可能である。
なお、小ブロックの構成は横2×縦2画素に限定されるものではなく、例えば横2×縦4画素といった長方形状であってもよいし、横1列に並んだ複数の画素であってもよい。また、全ての小ブロックが同じ構成である必要はなく、例えば、横3×縦2画素と横1×縦2画素とに区分して小ブロックとしてもよい。
【0088】
次に、2×2画素からなる着目小ブロック内の各画素の階調値を読み込む(S604)。その際、RAM13からCMYK別に着目小ブロックに対応した4画素分の階調値を読み込むことになる。
その後、読み込んだ階調値の総和S3を算出する(S606)。ここで、着目小ブロック内の4画素の階調値をDAi(i=1〜4)で表すと、上記式(2)と同様にして階調値の総和S3を算出することができる。
S3 = Σ(DAi) ・・・(10)
そして、後述するように、総和S3に基づいて、所定の小ブロック処理基準値D31,D32を基準として、所定の小ブロック処理条件を満たすか否かを判定し、同条件を満たすと判定したときには2×2画素の小ブロック単位で画像データの変換処理を行い、同条件を満たさないと判定したときには1画素単位で画像データの変換処理を行うようにしている。むろん、同条件を満たさないと判定したときに、小ブロック内の画素を2以上の画素単位で区分して画素区分とし、画素区分別に画像データ変換処理を行ってもよい。
階調値の総和S3を算出すると、同総和S3が上記基準値D31よりも大きいか否かを判断する(S608)。むろん、S3≧D31であるか否かを判断するようにしてもよい。同判断は、ステップS612とともにCMYK別に行われる。同基準値D31は、画像データの階調値の比較的小さい領域において、小ブロック単位の画像データ変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものである。S3>D31のとき画像データの階調値の比較的小さい領域における所定の小ブロック処理条件を満たさないと判定してステップS612に進み、S3≦D31のとき同条件を満たすと判定してステップS610に進む。
【0089】
ステップS610では、2×2画素の小ブロック単位で誤差拡散を行いながら画像データをまとめて変換する4画素単位変換処理(その3)を行い、ステップS618に進む。図16の下段に示すように、4×4画素の着目ブロックB22内を2×2画素に区分して小ブロックとし、小ブロック単位の変換処理を行う。なお、着目ブロックB22内の16画素のいずれにも階調値「30」が格納されているとともに、着目小ブロックB24に拡散されてきた階調誤差の総和は「25」とする。また、処理の一例として、階調値の総和S3が閾値「130」以下のときに上記小ブロック処理条件が成立するものとし、着目ブロックB22内の各画素の階調値と拡散誤差の総和が閾値「150」よりも大きいときに同着目ブロックB22内の1画素をオンにするものとする。むろん、これらの閾値は一例にすぎない。
ここで、階調値の総和S3は小ブロック処理条件成立となる120であり、着目小ブロック全体の階調誤差は25であるので、着目小ブロックB24内の各画素の階調値と拡散誤差との総和は1画素オンとなる1145となっている。本実施形態では、着目小ブロックB24の左上の画素にドットを形成することにしているが、様々な手法によりドットを形成することが可能である。
また、着目小ブロック全体の階調誤差「25」を着目小ブロック外の未変換画素U41〜U45に25/5=5ずつ拡散させる。このようにして、着目小ブロック全体の階調誤差を着目小ブロック外の未変換画素に拡散させながら、着目小ブロック内の画素の画像データをまとめて変換することができる。むろん、同階調誤差を図で示したように拡散させる以外にも、様々な手法で同階調誤差を未変換画素に拡散させることができる。なお、着目小ブロックが画像中で明度の低い領域でも、同様の考え方で小ブロック単位で画像データを変換することが可能である。
【0090】
以上説明した4画素単位変換処理(その3)は、上記4画素単位変換処理(その1)と概略同様の処理により行うことができるため、図11を参照して説明する。まず、上記式(4)を用いて、2×2画素の着目小ブロック内の各画素の階調値と拡散誤差との総和である補正データBxを算出する(S352)。次に、算出した補正データBxが所定の閾値(th31とする。)よりも大きいか否かを判断する(S354)。むろん、Bx≧th31であるか否かを判断するようにしてもよい。ここで用いる閾値th31は、画像データの階調値の小さい領域において着目小ブロック内に1ドット形成するか否かの境界値として予め設定されるものであるが、上記閾値th11と同じであってもよいし、異なっていてもよい。Bxがth31より大きい場合、着目小ブロック内の1画素のみオンとし(S356)、ステップS360に進む。例えば、着目ブロック内の左上の画素の画像データを「ドットを形成する」意味の「255」とする。Bxがth31以下の場合、着目小ブロック内の画素全てをオフとして(S358)、ステップS360に進む。
【0091】
ステップS360では、着目小ブロック全体の階調誤差を算出する。ここで、画像データ変換後の着目小ブロック内に形成されるドット数をNdotとすると、上記式(5)と式(6)により着目小ブロック全体の階調誤差E(=Bx−Sdot)を算出することができる。
そして、同階調誤差Eを着目小ブロック外の未変換画素に拡散させ(S362)、本フローを終了する。すると、2×2画素の着目小ブロックにおける小ブロック単位の画像データの変換処理が終了する。すなわち、小ブロック処理条件を満たすと判定されたとき、着目小ブロック全体の階調誤差を当該小ブロック外の未変換画素に拡散させながら同小ブロック内の画素の画像データをまとめて変換する意味での第一の変換処理機能が実現されることになる。
【0092】
階調誤差を着目小ブロック外の未変換画素に拡散させる際、図19に示すように、着目ブロックB22内の小ブロックBa〜Bdの位置に応じた未変換画素に階調誤差を拡散させる。なお、丸印(○)が付された画素は、着目小ブロックから階調誤差が拡散される未変換画素であり、斜線が記入された画素は、誤差拡散を伴う画像データの変換処理が終了した画素であることを示している。
一番目の小ブロックBaについては、図中ブロック矢印で示したように、同小ブロックBaの右隣の未変換の2画素、下隣の未変換の2画素、右下の未変換画素の計5画素に階調誤差を拡散させる。この場合、全て着目ブロックB22内の画素に拡散させることになる。本実施形態では、階調誤差を5つの未変換画素に対して略均等、すなわち、E/5ずつ階調誤差を拡散させている。二番目の小ブロックBbについては、同小ブロックBbの左下の未変換画素、下隣の未変換の2画素、着目ブロックB22外となる右隣の未変換の2画素、右下の未変換画素の計6画素に対して略均等、すなわち、E/6ずつ拡散させる。三番目の小ブロックBcについては、同小ブロックBcの右隣の未変換の2画素、着目ブロックB22外となる左下の未変換画素、下隣の未変換の2画素、右下の未変換画素の計6画素に対して略均等、すなわち、E/6ずつ拡散させる。四番目の小ブロックBdについては、全て着目ブロックB22外の未変換画素に拡散させることになり、同小ブロックBdの左下の未変換画素、下隣の未変換の2画素、右隣の未変換の2画素、右下の未変換画素の計6画素に対して略均等、すなわち、E/6ずつ拡散させる。ここで、階調誤差が割り切れない場合には、右下の未変換画素に拡散させる階調誤差を調整している。
その後はステップS618にて全小ブロックについて変換処理が終了したか否かが判断され、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理が行われる。
【0093】
ステップS612では、上記総和S3が別の小ブロック処理基準値D32よりも大きいか否かを判断する。同基準値D32は、画像データの階調値の比較的大きい領域において、小ブロック単位の画像データ変換処理を行っても高画質を維持可能であるか否かの境界値として予め設定されるものであり、D12>D11としてある。S3がD32よりも大きいとき、画像データの階調値の比較的大きい領域における所定の小ブロック処理条件を満たすと判定してステップS616に進み、S3がD32以下のとき、同条件を満たさないと判定してステップS614に進む。なお、ステップS612でも、S3≧D32であるか否かを判断するようにしてもよい。
ステップS614では、1画素単位で誤差拡散を行いながら画像データを変換する1画素単位変換処理を行い、ステップS618に進む。本処理は、図13で示した1画素単位変換処理と概略同じとなるので、詳しい説明を省略する。なお、着目小ブロックの位置が図19における着目ブロックB22内の左上の「Ba」であるとき、同着目小ブロックBaの左下の画素は変換済みであるので、図12における3画素目の画素Pcから左下の画素(U13に相当)へは階調誤差を拡散させないことになる。
その後はステップS618にて全小ブロックについて変換処理が終了したか否かが判断され、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理が行われる。
【0094】
ステップS616では、2×2画素の小ブロック単位で誤差拡散を行いながら画像データをまとめて変換する4画素単位変換処理(その4)を行い、その後、本フローを終了する。この処理は、上記4画素単位変換処理(その2)と概略同様の処理により行うことができるため、図14を参照して説明する。まず、上記式(4)を用いて、2×2画素の着目小ブロック内の各画素の階調値と拡散誤差との総和である補正データBxを算出する(S452)。次に、算出した補正データBxが所定の閾値(th32とする。)よりも大きいか否かを判断する(S454)。むろん、Bx≧th32であるか否かを判断するようにしてもよい。ここで用いる閾値th32は、画像データの階調値の大きい領域において着目小ブロック内の画素全てにドット形成するか否かの境界値として予め設定されるものであるが、上記閾値th12と同じであってもよいし、異なっていてもよい。Bxがth32より大きい場合、着目ブロック内の画素全てをオンとし(S456)、ステップS460に進む。Bxがth31以下の場合、着目小ブロック内の1画素のみオフとして(S458)、ステップS460に進む。例えば、着目ブロック内の左上の画素の画像データを「ドットを形成しない」意味の「0」とする。
ステップS460では、上記ステップS360と同様にして、着目小ブロック全体の階調誤差を算出する。そして、同階調誤差Eを着目小ブロック外の未変換画素に拡散させ(S462)、2×2画素の着目小ブロックにおける小ブロック単位の画像データの変換処理を終了する。すなわち、別の意味での第一の変換処理機能が実現されることになる。
その後はステップS618にて全小ブロックについて変換処理が終了したか否かが判断され、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理が行われる。そして、全小ブロックについて変換処理が終了すると、ステップS214にて全ブロックについて変換処理が終了したか否かが判断され、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
【0095】
図15のステップS514では、4×4画素単位で誤差拡散を行いながら画像データをまとめて変換する16画素単位変換処理(その2)を行い、その後、本フローを終了する。図20は、同処理をフローチャートにより示している。
まず、上記ステップS552と同様にして、着目ブロックについての補正データBxを算出する(S652)。本実施形態では、画像データの階調値の大きい領域において、着目ブロック内で1〜4画素のオフを可能にするため、四種類の閾値th25〜th28(th25<th26<th27<th28)を用いているが、閾値の数は様々に設定可能である。ステップS654では、Bxがth25よりも大きいか否かを判断する。Bxがth25以下のとき、着目ブロック内の4画素をオフとし(S656)、ステップS672に進む。Bx>th25のとき、Bxがth26よりも大きいか否かを判断する(S658)。Bxがth26以下のとき、着目ブロック内で3画素をオフとし(S660)、ステップS672に進む。Bx>th26のとき、Bxがth27よりも大きいか否かを判断する(S662)。Bxがth27以下のとき、着目ブロック内で2画素をオフとし(S664)、ステップS672に進む。Bx>th27のとき、Bxがth28よりも大きいか否かを判断する(S666)。Bxがth28以下のとき、着目ブロック内で1画素をオフとし(S668)、ステップS672に進む。Bx>th28のとき、着目ブロック内の画素全てをオンとし(S670)、ステップS672に進む。
このように、ブロック単位の変換処理を行う際に着目ブロック内で複数の画素をオフにすることができるため、高画質を維持しながら画像データ変換処理をより高速化させることが可能となる。
【0096】
ステップS672では、上記ステップS572と同様にして、着目ブロック全体の階調誤差を算出する。そして、同階調誤差Eを他のブロック内の未変換画素に拡散させ(S674)、本フローを終了する。本実施形態では、着目ブロック外の未変換画素に対して階調誤差を略均等に階調誤差を拡散させている。
このようにして、図20で示したフローも第一の変換処理機能を実現させることになる。その後はステップS214にて全ブロックについて変換処理が終了したか否かが判断され、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理が行われる。
なお、図15のステップS510の判断を行った後で、上記総和S2が255×16=4080であるか否かを判断し、S2=4080であるときに着目ブロック内の画素全てをオンとして上記ステップS572〜S574と同様のブロック単位の誤差拡散を行うようにしてもよい。
また、ステップS506にてS2>D21であると判断したとき、ステップS510の判断を行う前に着目小ブロック内の画素を区分して小ブロックとしてもよい。そして、小ブロック全てについてステップS608,S612の判断を行い、小ブロック全てについてS3>D32であるときにステップS510の判断を行い、S2≦D22のときに小ブロック単位で画像データを変換し、S2>D22のときに16画素単位で画像データを変換するようにしてもよい。
【0097】
このように、高解像度の場合に着目ブロックで行われる画像データの変換処理は、同着目ブロック内の各画素の階調値から算出される総和S2と、着目小ブロック内の各画素の階調値から算出される総和S3とに応じて、以下のように切り替えられることになる。
0 ≦S2≦D21のとき、 16画素単位変換処理(その1)
D21<S2≦D22のとき、 小ブロック変換処理
0 ≦S3<D31のとき、 4画素単位変換処理(その3)
D31≦S3<D32のとき、 1画素単位変換処理
D32≦S3のとき、 4画素単位変換処理(その4)
D22<S2のとき、 16画素単位変換処理(その2)
ここで、S2≦D21またはD22<S2のとき、ブロック処理条件成立である。また、D21<S2≦D22、かつ、S3<D31またはD32≦S3のとき、小ブロック処理条件成立である。すなわち、上記ステップS602〜S608,S612は、着目ブロック内の画素を区分して小ブロックとし、上記画像データを変換する着目された小ブロック内の各画素の階調値に基づいて所定の小ブロック処理条件を満たすか否かを判定する意味でのブロック処理判定機能を実現させる。その際、上記解像度取得機能にて取得された解像度が1440×720dpi のときのみ上記小ブロック移行条件を満たすと判定し、当該小ブロック移行条件を満たすと判定したときのみ小ブロック処理条件を満たすか否かを判定して効率よく画像データの変換処理を行うようにしている。
そして、図7で示した階調数変換処理が、解像度に応じて一または二以上の画素数の近隣した画素を変換処理区分とし、着目された変換処理区分内の各画素の階調値と拡散誤差とに基づいて、誤差拡散法により画像データを変換する変換処理機能を実現させることになる。
【0098】
以上説明したように、本発明によると、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換して画像出力装置に画像を出力させるにあたり、解像度に合った適切な大きさの変換処理区分にて画像データの変換処理を行うことが可能となる。したがって、高解像度である場合に変換処理を高速化させることができ、画像データの変換処理を効率よく行うことができる。また、各画素の階調値の小さい領域と階調値の大きい領域の双方にて、画像データのうち高画質を維持可能な領域のみドットがブロック単位で形成されるので、高画質を維持しながら変換処理をさらに高速化させることができる。さらに、きめ細やかに画像データをまとめて変換するブロックの大きさを切り替えることも可能であり、高画質を維持しながら変換処理をさらに高速化することが可能となっている。その際、解像度に応じて画像データをまとめて変換するブロックの大きさを変更するか否かが切り替わるので、高画質を維持しながら変換処理をさらに高速化することができる。むろん、きめ細やかに画像データをまとめて変換するブロックの大きさを切り替えることにより、解像度に関係なく高画質を維持しながら変換処理を高速化することが可能となる。
【0099】
(5)第二の実施形態:
なお、本発明の画像データ処理プログラムを実行可能な画像データ処理装置と画像出力装置は、様々な構成が可能である。
例えば、プリンタは、コンピュータと一体化されたものであってもよい。また、色インクを吐出してドットを形成するピエゾ素子を用いたプリンタ以外にも、例えば、インク通路内に泡を発生させて色インクを吐出するバブル方式のプリンタを使用してもよい。さらに、いわゆるバリアブルプリンタ等のように、形成するドットの大きさを可変としたプリンタを使用してもよい。
また、複数の色インクは、上記CMYKの組み合わせ以外にも、CMYや、低濃度のシアン(c)や低濃度のマゼンタ(m)も使用したCMYKcm等、様々な組み合わせが可能である。
さらに、上述したフローについては、PC内で実行する以外にも、一部または全部をプリンタあるいは専用の画像処理装置で実行するようにしてもよい。
なお、画像出力装置は、印刷媒体上にドットを形成して印刷を行う装置以外であってもよく、例えば、液晶表示画面上で輝点形成の有無により画像を表現する液晶表示装置であってもよい。
また、プリンタに対してプリンタドライバによらずに解像度が設定されるようになっている場合等では、プリンタに印刷させる解像度を解像度取得機能にて取得するにあたり、プリンタから解像度についての情報を入手することにより解像度を取得してもよい。
【0100】
さらに、上述した実施形態ではn×n画素(nは正の整数)を変換処理区分や小ブロックとしたが、変換処理区分や小ブロックは様々な構成が可能である。
図21は、第二の実施形態にかかる画像データ処理装置が行う階調数変換処理を示すフローチャートである。なお、プリンタ20の解像度として、横360×縦360dpi 、横720×縦360dpi 、横720×縦720dpi 、横1440×縦720dpi 、横1440×縦1440dpi の5種類を設定することが可能であるものとする。それ以外の本画像データ処理装置のハードウェア構成は、第一の実施形態と同じであるものとする。
解像度取得機能にてプリンタ20に印刷させる解像度が取得されているので、この解像度に基づいて、横方向の解像度を360で除した値をX1、縦方向の解像度を360で除した値をY1として、近隣したX1×Y1画素を変換処理区分とする(S702)。図の右側に示すように、360×360dpi のときには1×1画素(1画素単位)、720×360dpi のときには2×1画素、720×720dpi のときには2×2画素、1440×720dpi のときには4×2画素、1440×1440dpi のときには4×4画素の変換処理区分とする。すなわち、解像度が大きくなるほど画素数を比例して増やすとともに、解像度の縦横の比と一致した領域の画素を変換処理区分としている。
【0101】
次に、ステップS204,S210と同様にして、画像データを変換する着目された変換処理区分の位置を設定する(S704)。さらに、ステップS206,S212と同様にして、変換処理区分の大きさに応じた変換処理を行う(S706)。すなわち、着目された変換処理区分内の各画素の階調値と拡散誤差とに基づいて、同着目された変換処理区分全体の階調誤差を当該変換処理区分外の未変換画素に拡散させながら画像データをまとめて変換する。
なお、1440×720dpi と1440×1440dpi のときには小ブロック移行条件成立とし、変換処理区分の大きさに応じた変換処理の中で所定の小ブロック処理条件が成立しているか否かを判断し(S712)、同条件が成立している場合、解像度取得機能にて取得された解像度に基づいて、横方向の解像度を720で除した値をX2、縦方向の解像度を720で除した値をY2として、近隣したX2×Y2画素を小ブロックとする(S714)。すなわち、1440×720dpi のときには2×1画素、1440×1440dpi のときには2×2画素の小ブロックとする。このように、解像度が大きくなるほど画素数を比例して増やすとともに、解像度の縦横の比と一致した領域の画素を小ブロックとしている。その後、図示しないフローにより、画像データを変換する着目された小ブロックの位置を設定し、着目小ブロック内の各画素の階調値と拡散誤差とに基づいて、同着目小ブロック全体の階調誤差を当該小ブロック外の未変換画素に拡散させながら画像データをまとめて変換する。
【0102】
そして、画像データの全変換処理区分について変換処理を終了したか否かを判断し(S708)、変換処理を行っていない変換処理区分がある場合には繰り返しステップS704〜S708の処理を行う。全変換処理区分について変換処理が終了すると、本フローを終了し、上記インターレース処理を行い、プリンタ20に対してドット形成の有無により表現した画像データを送出し、解像度に応じた画像を印刷させることになる。その際、見た目の変換処理区分や小ブロックの大きさが縦横同じになっているので、高画質を維持しながら画像データ変換処理を高速化させることが可能となる。
なお、変換処理区分を縦横の解像度を180で除した画素から構成してもよい。すると、1440×720dpi のときに8×4画素を変換処理区分とすることになるが、縦横の解像度比が2であるため横方向を2画素で1画素相当とみることができ、第一の実施形態のように1440×720dpi のときに4×4画素の変換処理区分とする場合と比べて画質の低下を少なくさせることができ、より高速にて画像データの変換処理を行うことが可能となる。
【0103】
(6)第三の実施形態:
また、図7のステップS206,S212の変換処理では、着目ブロック内の各画素の階調値の総和以外に基づいてブロック処理条件を満たすか否かを判定するようにしてもよい。
図22は、第三の実施形態にかかる画像データ処理装置が行う高解像度用変換処理を示すフローチャートである。本フローでは、4×4画素の着目ブロック内の各画素の階調値の最大値と最小値に基づいてブロック処理条件を満たすか否かを判定するようにしている。なお、本画像データ処理装置のハードウェア構成は、第一の実施形態と同じであるものとする。
【0104】
着目ブロック内の各画素の階調値を読み込むと(S802)、着目ブロック内の各画素の階調値の総和S2を算出するとともに、各画素の階調値の最大値MAXと最小値MINとを抽出する(S804)。次に、最大値MAXが所定のブロック処理基準値D21’よりも大きいか否かを判断する(S806)。MAXがD21’よりも大きいとき所定のブロック処理条件を満たさないと判定し、ステップS810に進む。一方、MAXがD21’以下のとき同条件を満たすと判定し、図17で示した16画素単位変換処理(その1)を行い(S808)、本フローを終了する。
例えば、画像中で明度の高い領域で最大値MAXを用いてブロック処理条件を満たすか否かを判断するものとし、閾値D21’を「50」とする。着目ブロック内の16画素の階調値の総和が同じ「160」であっても、着目ブロック内の各画素の階調値が全て「10」であれば最大値「10」は閾値D21’より小さいためブロック処理条件成立となり、ブロック単位で画像データの変換処理を行う。一方、着目ブロック内の画素一つのみ階調値「160」であり、残りの15画素が階調値「0」であれば最大値「160」は閾値D21’より大きいためブロック処理条件不成立となり、小ブロック変換処理を行う。すなわち、各画素の階調値が急変する領域では、きめ細やかに画像データを変換することができるので、画像中のいわゆるエッジ部分を不鮮明にさせることなく高画質な画像を得ることが可能となる。
なお、ステップS806を行う前に、最大値MAXが0であるか否かを判断し、MAX=0であるときに着目ブロック内の画素全てをオフとして上記ステップS572〜S574と同様のブロック単位の誤差拡散を行うようにしてもよい。すると、着目ブロック内の各画素の階調値が全て「0」である場合には、上記16画素単位変換処理(その1)を行う必要がなくなるので画像データの変換処理を高速化させることができる。
【0105】
ステップS810では、最小値MINが別のブロック処理基準値D22’よりも大きいか否かを判断する。MINがD22’よりも大きいとき所定のブロック処理条件を満たすと判定し、図20で示した16画素単位変換処理(その2)を行い(S814)、本フローを終了する。一方、MINがD22’以下のとき同条件を満たさないと判定し、後述する小ブロック変換処理を行い(S812)、本フローを終了する。
例えば、画像中で明度の低い領域で最小値MINを用いてブロック処理条件を満たすか否かを判断するものとし、閾値D22’を「200」とする。着目ブロック内の各画素の階調値の総和が同じ「3840」であっても、着目ブロック内の各画素の階調値が全て「240」であればブロック処理条件成立となり、ブロック単位で画像データの変換処理を行う。一方、着目ブロック内の画素一つのみ階調値「90」であり、残りの3画素が階調値「250」であればブロック処理条件不成立となり、小ブロック変換処理を行う。すなわち、画像中で明度の低い領域であっても、各画素の階調値が急変する領域ではきめ細やかに画像データを変換することができるので、画像中のいわゆるエッジ部分を不鮮明にさせない。
なお、ステップS810終了後に、最小値MINが255であるか否かを判断し、MIN=255であるときに着目ブロック内の画素全てをオンとして上記ステップS672〜S674と同様のブロック単位の誤差拡散を行うようにしてもよい。
【0106】
図23は、ステップS812にて行われる小ブロック変換処理をフローチャートにより示している。本フローでは、2×2画素の着目小ブロック内の各画素の階調値の最大値と最小値に基づいて小ブロック処理条件を満たすか否かを判定するようにしている。
2×2画素の着目小ブロックの位置を設定し(S852)、着目小ブロック内の各画素の階調値を読み込むと(S854)、着目小ブロック内の各画素の階調値の総和S3を算出するとともに、各画素の階調値の最大値MAXsと最小値MINsとを抽出する(S856)。次に、最大値MAXsが所定の小ブロック処理基準値D31’よりも大きいか否かを判断する(S858)。MAXsがD31’よりも大きいとき所定の小ブロック処理条件を満たさないと判定し、ステップS862に進む。一方、MAXsがD31’以下のとき同条件を満たすと判定し、上記ステップS610と同様の4画素単位変換処理(その3)を行い(S860)、ステップS868に進む。
ステップS862では、最小値MINsが別の小ブロック処理基準値D32’よりも大きいか否かを判断する。MINsがD32’よりも大きいとき所定の小ブロック処理条件を満たすと判定し、上記ステップS616と同様の4画素単位変換処理(その4)を行い(S866)、ステップS868に進む。一方、MINsがD32’以下のとき同条件を満たさないと判定し、上記ステップS614と同様の1画素単位変換処理を行い(S864)、ステップS868に進む。
ステップS868では、全小ブロックについて変換処理を終了したか否かを判断する。そして、全小ブロックについて変換処理が終了するまで繰り返し小ブロック変換処理を行い、全小ブロックについて変換処理が終了すると、本フローと図22のフローを終了し、全ブロックについて変換処理が終了するまで繰り返し高解像度用変換処理を行うことになる。
【0107】
このように、着目ブロック内の各画素の階調値の最大値や最小値に基づいても、ブロック処理条件や小ブロック処理条件を満たすか否かを判定することが可能である。また、着目ブロック内の各画素の階調値の最大値や最小値を求めるだけでブロック単位や小ブロック単位の変換処理を行うという簡易な構成で、各画素の階調値の小さい領域と階調値の大きい領域の双方にて高画質な画像を高速にて得ることができる。なお、低解像度用変換処理についても、着目ブロック内の各画素の階調値の最大値や最小値に基づいてブロック処理条件を満たすか否かを判定することが可能である。
【0108】
むろん、ブロック処理条件や小ブロック処理条件を満たすか否かを判定する構成は、上述した実施形態に限定されるものではない。例えば、上記ステップS806,S858では、以下の条件式
S2 + MAX > D21''
S3 + MAXs > D31''
が成立するか否かを判断するようにしてもよい。ここで、D21''は所定のブロック処理基準値であり、D31''は所定の小ブロック処理基準値である。
また、上記総和S2,S3と最大値MAX,MAXsとにそれぞれに異なる係数を乗じて加算した値に基づいてブロック処理条件等を満たすか否かを判定してもよいし、加重を異ならせて同総和S2,S3と最大値MAX,MAXsとを加重平均した値に基づいてブロック処理条件等を満たすか否かを判定してもよい。
さらに、以下の条件式
( S2 > D21 ) OR ( MAX > D21’ )
( S3 > D31 ) OR ( MAXs > D31’ )
すなわち、それぞれの論理式における二つの不等式のいずれかが成立するか否かを判断するようにしてもよい。ここで、D21,D21’は上述したブロック処理基準値であり、D31,D31’は小ブロック処理基準値である。この場合、同二つの不等式のいずれかが成立した場合にブロック処理条件等を満たさないと判定することになる。むろん、以下の条件式
( S2 > D21 ) AND ( MAX > D21’ )
( S3 > D31 ) AND ( MAXs > D31’ )
が成立するか否かを判断するようにしてもよい。
【0109】
一方、上記ステップS810,S862では、以下の条件式
S2 + MIN > D22''
S3 + MINs > D32''
が成立するか否かを判断するようにしてもよい。ここで、D22''は所定のブロック処理基準値であり、D32''は所定の小ブロック処理基準値である。また、上記総和S2,S3と最小値MIN,MINsとにそれぞれに異なる係数を乗じて加算した値等に基づいてブロック処理条件等を満たすか否かを判定してもよい。
さらに、以下の条件式
( S2 ≦ D22 ) OR ( MIN ≦ D22’ )
( S3 ≦ D32 ) OR ( MINs ≦ D32’ )
すなわち、それぞれの論理式における二つの不等式のいずれかが成立するか否かを判断するようにしてもよい。ここで、D22,D22’は上述したブロック処理基準値であり、D32,D32’は小ブロック処理基準値である。この場合、同二つの不等式のいずれかが成立した場合にブロック処理条件等を満たさないと判定することになる。むろん、以下の条件式
( S2 ≦ D22 ) AND ( MIN ≦ D22’ )
( S3 ≦ D32 ) AND ( MINs ≦ D32’ )
が成立するか否かを判断するようにしてもよい。
【0110】
なお、着目ブロックがエッジ部分であるときは着目ブロックよりも小さい変換処理区分にて画像データの変換処理を行うようにしてもよい。図24は、変形例にかかる画像データ処理装置が行う高解像度用変換処理を示すフローチャートである。本フローは、図15で示した高解像度用変換処理の代わりに行われるものであり、同じ処理が行われる箇所については、同じ符号を付して詳しい説明を省略する。
本フローでは、ステップS504にて階調値の総和S2を算出した後、着目ブロック内の各画素の階調値に基づいて、着目ブロックが画像中のいわゆるエッジ部分であるか否かを判定する(S522)。例えば、着目ブロック内の各画素の階調値から最大値MAXと最小値MINを抽出し、同MAXとMINとの差が所定の閾値the1以上またはより大であるとき、着目ブロックはエッジ部分であると判定することができる。条件式で表すと、以下の通りとなる。
MAX − MIN > the1
(または、MAX − MIN ≧ the1)
また、縦横に隣り合う画素同士について階調値の差の絶対値ABSiを求め、求められた複数の絶対値ABSiの最大値が別の閾値以上またはより大であるときに着目ブロックはエッジ部分であると判定してもよい。
【0111】
エッジ部分であると判定した場合には、ステップS512と同様の小ブロック変換処理を行い(S524)、本フローを終了する。エッジ部分でないと判定した場合には、ステップS506〜S514の処理を行い、本フローを終了する。なお、エッジ部分であると判定した場合に図13で示した1画素単位変換処理を行ってもよい。
また、図18で示した小ブロック変換処理でも、ステップS608の処理を行う前に着目小ブロックがエッジ部分であるか否かを判定し、エッジ部分であると判定したときには1画素単位変換処理を行うようにしてもよい。
このように、各画素の階調値が急変する領域ではきめ細やかに画像データを変換することができるので、画像中のいわゆるエッジ部分を不鮮明にさせないことになる。
【0112】
(7)第四の実施形態:
上記高解像度用変換処理では、4×4画素の着目ブロック内に2×2画素をまとめて小ブロックとしたが、小ブロックを複数段階設け、着目小ブロック内にさらに小さい小ブロックを設けて画像データの変換処理を行ってもよい。例えば、近隣した8×8画素をまとめてブロックとし、着目ブロック内の各画素の階調値に基づいて所定の小ブロック移行条件を満たすか否かを判定し、同条件を満たすと判定したとき、着目ブロック内を4×4画素に区分して小ブロックとし、着目小ブロック内の各画素の階調値に基づいて別の小ブロック移行条件を満たすか否かを判定し、同条件を満たすと判定したとき、着目小ブロック内を2×2画素に区分してさらに小さい小ブロックとすることができる。すると、さらにきめ細やかに画像データをまとめて変換するブロックの大きさが切り替わるので、高画質を維持しながら画像データの変換処理をさらに高速化することが可能となる。
むろん、小ブロックを設けずに処理を簡素化させるようにしてもよい。
図25は、第四の実施形態にかかる画像データ処理装置が行う階調数変換処理を示すフローチャートである。なお、本フローは、図7で示した階調数変換処理の代わりに行われるものである。また、本画像データ処理装置のハードウェア構成は、第一の実施形態と同じであるものとする。
【0113】
まず、上記ステップS110で画像を印刷させる解像度が取得されているので、その解像度に応じて処理を分岐させる(S902)。
720×360dpi の場合、まず、近隣した2×2画素をまとめてブロックとし、着目ブロックの位置を設定する(S904)。次に、図9で示した低解像度用変換処理を行う(S906)。すなわち、着目ブロック内の各画素の階調値に基づいてブロック処理条件を満たすか否かを判定し、2×2画素単位または1画素単位を切り替えながら誤差拡散法による画像データの変換処理を行う。そして、画像データの全ブロックについて変換処理を終了したか否かを判断し(S908)、変換処理を行っていないブロックがある場合には繰り返しステップS904〜S908の処理を行い、全ブロックについて変換処理が終了した場合には本フローを終了する。
【0114】
一方、解像度が1440×720dpi の場合、まず、近隣した3×3画素をまとめてブロックとし、着目ブロックの位置を設定する(S910)。次に、高解像度用変換処理を行う(S912)が、小ブロック変換処理を行わず、概略、図9で示した低解像度用変換処理と似たフローに従って処理を行う。以下、図15の高解像度用変換処理のフローを参照して説明する。まず、3×3画素の着目ブロック内の各画素の階調値を読み込み、着目ブロック内の各画素の階調値の総和S2を算出する(S502〜S504に相当)。次に、S2が所定のブロック処理基準値D21よりも大きいか否かを判断する(S506に相当)。S2≦D21のときには3×3画素単位で画像データの変換処理を行い(S508に相当)、フローを終了する。S2>D21のときには、S2が所定のブロック処理基準値D22よりも大きいか否かを判断する(S510に相当)。S2≦D22のときには1画素単位変換処理を行い(S512に相当)、フローを終了する。S2>D22のときには3×3画素単位で画像データの変換処理を行い(S514に相当)、フローを終了する。
そして、画像データの全ブロックについて変換処理を終了したか否かを判断し(S914)、変換処理を行っていないブロックがある場合には繰り返しステップS910〜S914の処理を行い、全ブロックについて変換処理が終了した場合には本フローを終了する。
すなわち、高解像度の場合、3×3画素単位または1画素単位を切り替えながら誤差拡散法による画像データの変換処理を行うことになる。
【0115】
このように、画像データをまとめて変換するブロックの大きさを切り替える処理を行わなくても、解像度に合った適切な大きさの変換処理区分にて画像データの変換処理を行うことが可能となるので、高解像度である場合に変換処理を高速化させることができ、画像データの変換処理を効率よく行うことができる。
むろん、ブロック処理条件に応じて二画素以上のブロック単位と1画素単位とを切り替えながら画像データの変換処理を行わない場合でも、解像度に応じた数の画素を変換処理区分とすると、解像度に合った適切な大きさの変換処理区分にて画像データの変換処理を行うことが可能となるので、画像データの変換処理を効率よく行うことができる。
以上説明したように、本発明によると、種々の態様により、画像をドットマトリクス状の画素で多階調表現した画像データから誤差拡散法を用いてドット形成の有無により表現した画像データに変換する処理を効率よく行うことが可能な画像データ処理装置、印刷装置、画像データ処理プログラムおよびそのプログラムを記録した媒体を提供することができる。また、画像データ処理方法としても適用可能である。
【図面の簡単な説明】
【図1】 本発明の第一の実施形態にかかる画像データ処理装置とプリンタとからなる印刷装置の概略構成図である。
【図2】 プリンタのブロック構成をPCとともに示すブロック構成図である。
【図3】 プリンタドライバの概略構成を模式的に示す図である。
【図4】 低解像度であるときの機能P21〜P23が実現させる処理の概略を示す模式図である。
【図5】 高解像度であるときの機能P21〜P23が実現させる処理の概略を示す模式図である。
【図6】 プリンタドライバがPCに実現させる処理を示すフローチャートである。
【図7】 階調数変換処理を示すフローチャートである。
【図8】 着目ブロックの位置を設定する様子を模式的に示す模式図である。
【図9】 低解像度用変換処理を示すフローチャートである。
【図10】 ブロック単位で誤差拡散を行いながら画像データを変換する様子を説明する説明図である。
【図11】 4画素単位変換処理(その1)を示すフローチャートである。
【図12】 1画素単位で誤差拡散を行いながら画像データを変換する様子を示す模式図である。
【図13】 1画素単位変換処理を示すフローチャートである。
【図14】 4画素単位変換処理(その2)を示すフローチャートである。
【図15】 高解像度用変換処理を示すフローチャートである。
【図16】 誤差拡散を行いながら画像データを変換する様子を説明する説明図である。
【図17】 16画素単位変換処理(その1)を示すフローチャートである。
【図18】 小ブロック変換処理を示すフローチャートである。
【図19】 小ブロック単位で誤差拡散を行いながら画像データを変換する様子を示す模式図である。
【図20】 16画素単位変換処理(その2)を示すフローチャートである。
【図21】 第二の実施形態にかかる画像データ処理装置が行う階調数変換処理を示すフローチャートである。
【図22】 第三の実施形態にかかる画像データ処理装置が行う高解像度用変換処理を示すフローチャートである。
【図23】 小ブロック変換処理を示すフローチャートである。
【図24】 変形例にかかる画像データ処理装置が行う高解像度用変換処理を示すフローチャートである。
【図25】 第四の実施形態にかかる画像データ処理装置が行う階調数変換処理を示すフローチャートである。
【符号の説明】
10…パーソナルコンピュータ
20…プリンタ
100…印刷装置
P1…解像度取得機能
P2…変換処理機能
P21…ブロック処理判定機能
P22…第一の変換処理機能
P23…第二の変換処理機能
B1,B2…変換処理区分
B3,B4…着目ブロック
B5…着目小ブロック
B11,B13,B21,B23…ブロック
B12,B22…着目ブロック
B24…着目小ブロック
Ba〜Bd…小ブロック
Pa〜Ph…画素
U1,U2…着目画素
U10〜U16,U21〜U30,U41〜U45…画素
Claims (20)
- 画像を複数の画素で多階調表現した画像データを入力し、設定された解像度にて画像を出力する画像出力装置に入力される画像データに変換する際に階調誤差を未変換画素に拡散してドット形成の有無により表現した画像データに変換する画像データ処理装置であって、
上記解像度を取得する解像度取得手段と、
この解像度取得手段にて取得された解像度が大きくなるほど画素数を増やして近隣した画素を変換処理区分とし、上記画像データを変換する着目された変換処理区分内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて、同着目された変換処理区分内の画素の画像データをまとめて変換するとともに同着目された変換処理区分全体の階調誤差を当該変換処理区分外の未変換画素に拡散させる変換処理手段とを具備することを特徴とする画像データ処理装置。 - 上記変換処理手段は、上記変換処理区分内の画素の数を上記解像度に比例した数とすることを特徴とする請求項1に記載の画像データ処理装置。
- 上記変換処理手段は、nを正の整数として、n×n画素を上記変換処理区分とすることを特徴とする請求項1または請求項2に記載の画像データ処理装置。
- 上記変換処理手段は、上記解像度の縦横の比と一致した長方形状の領域の画素を上記変換処理区分とすることを特徴とする請求項1〜請求項3のいずれか一項に記載の画像データ処理装置。
- 上記変換処理手段は、上記解像度に応じて二以上の画素数の近隣した画素をまとめてブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値に基づいて当該着目ブロックが所定のブロック処理条件を満たすか否かを判定するブロック処理判定手段と、
このブロック処理判定手段にて上記ブロック処理条件を満たすと判定されたとき、上記着目ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目ブロック内の画素の画像データをまとめて変換するとともに同着目ブロック全体の階調誤差を当該着目ブロック外の未変換画素に拡散させる第一の変換処理手段と、
上記ブロック処理判定手段にて上記ブロック処理条件を満たさないと判定されたとき、上記着目ブロック内の画素を区分した画素区分別に同画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目ブロック内の画素の画像データを変換するとともに同画素区分の階調誤差を当該画素区分外の未変換画素に拡散させることが可能な第二の変換処理手段とを有することを特徴とする請求項1〜請求項4のいずれか一項に記載の画像データ処理装置。 - 上記第二の変換処理手段は、上記ブロック処理判定手段にて上記ブロック処理条件を満たさないと判定されたとき、上記着目ブロック内の画素別に同画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目ブロック内の画素の画像データを変換するとともに同画素の階調誤差を他の未変換画素に拡散させることが可能であることを特徴とする請求項5に記載の画像データ処理装置。
- 上記ブロック処理判定手段は、上記着目ブロック内の画素を区分して小ブロックとし、上記画像データを変換する着目された小ブロック内の各画素の階調値に基づいて当該着目された小ブロックが所定の小ブロック処理条件を満たすか否かを判定し、
上記第一の変換処理手段は、上記ブロック処理判定手段にて上記小ブロック処理条件を満たすと判定されたとき、上記小ブロック内の画素の画像データをまとめて変換するとともに上記着目された小ブロック全体の階調誤差を当該小ブロック外の未変換画素に拡散させることを特徴とする請求項5または請求項6に記載の画像データ処理装置。 - 画像を複数の画素で多階調表現した画像データを入力し、ドット形成の有無により表現した画像データに変換する際に階調誤差を未変換画素に拡散して画像データを変換する画像データ処理装置であって、
近隣する所定数の画素をまとめてブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値に基づいて当該着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分して小ブロックとし、上記画像データを変換する着目された小ブロック内の各画素の階調値に基づいて当該着目された小ブロックが所定の小ブロック処理条件を満たすか否かを判定するブロック処理判定手段と、
このブロック処理判定手段にて上記ブロック処理条件を満たすと判定されたとき、上記着目ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目ブロック内の画素の画像データをまとめて変換するとともに同着目ブロック全体の階調誤差を当該着目ブロック外の未変換画素に拡散させ、同ブロック処理判定手段にて上記小ブロック処理条件を満たすと判定されたとき、上記着目された小ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目された小ブロック内の画素の画像データをまとめて変換するとともに同着目された小ブロック全体の階調誤差を当該着目された小ブロック外の未変換画素に拡散させる第一の変換処理手段と、
上記ブロック処理判定手段にて上記ブロック処理条件と小ブロック処理条件をともに満たさないと判定されたとき、上記着目ブロック内の画素を区分した画素区分別に同画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同画素区分内の画素の画像データを変換するとともに同画素区分の階調誤差を当該画素区分外の未変換画素に拡散させることにより同着目ブロック内の画素の画像データを変換可能な第二の変換処理手段とを具備することを特徴とする画像データ処理装置。 - 上記ブロック処理判定手段は、上記解像度が所定の小ブロック移行条件を満たすときのみ、上記着目された小ブロックが上記小ブロック処理条件を満たすか否かを判定することを特徴とする請求項7または請求項8に記載の画像データ処理装置。
- 上記ブロック処理判定手段は、上記着目ブロック内の各画素の階調値の総和に基づいて当該着目ブロックが上記ブロック処理条件を満たすか否かを判定することを特徴とする請求項7〜請求項9のいずれか一項に記載の画像データ処理装置。
- 上記ブロック処理判定手段は、上記着目ブロック内の各画素の階調値の総和が所定のブロック処理基準値以下またはより小のとき、当該着目ブロックが上記ブロック処理条件を満たすと判定することを特徴とする請求項10に記載の画像データ処理装置。
- 上記ブロック処理判定手段は、上記着目ブロック内の各画素の階調値の総和が所定のブロック処理基準値以上またはより大であり、かつ、上記着目された小ブロック内の各画素の階調値の総和が所定の小ブロック処理基準値以下またはより小のとき、当該着目された小ブロックが上記小ブロック処理条件を満たすと判定することを特徴とする請求項10または請求項11に記載の画像データ処理装置。
- 上記ブロック処理判定手段は、上記着目ブロック内の各画素の階調値の最大値と最小値のいずれかまたは組み合わせに基づいて当該着目ブロックが上記ブロック処理条件を満たすか否かを判定することを特徴とする請求項5〜請求項12のいずれか一項に記載の画像データ処理装置。
- 画像を複数の画素で多階調表現した画像データを入力し、設定された解像度にて画像を出力する画像出力装置に入力される画像データに変換する際に階調誤差を未変換画素に拡散してドット形成の有無により表現した画像データに変換する画像データ処理方法であって、
上記解像度を取得する解像度取得工程と、
この解像度取得工程にて取得された解像度が大きくなるほど画素数を増やして近隣した画素を変換処理区分とし、上記画像データを変換する着目された変換処理区分内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて、同着目された変換処理区分内の画素の画像データをまとめて変換するとともに同着目された変換処理区分全体の階調誤差を当該変換処理区分外の未変換画素に拡散させる変換処理工程とを具備することを特徴とする画像データ処理方法。 - 画像を複数の画素で多階調表現した画像データを入力し、ドット形成の有無により表現した画像データに変換する際に階調誤差を未変換画素に拡散して画像データを変換する画像データ処理方法であって、
近隣する所定数の画素をまとめてブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値に基づいて当該着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分して小ブロックとし、上記画像データを変換する着目された小ブロック内の各画素の階調値に基づいて当該着目された小ブロックが所定の小ブロック処理条件を満たすか否かを判定するブロック処理判定工程と、
このブロック処理判定工程にて上記ブロック処理条件を満たすと判定されたとき、上記着目ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目ブロック内の画素の画像データをまとめて変換するとともに同着目ブロック全体の階調誤差を当該着目ブロック外の未変換画素に拡散させ、同ブロック処理判定工程にて上記小ブロック処理条件を満たすと判定されたとき、上記着目された小ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目された小ブロック内の画素の画像データをまとめて変換するとともに同着目された小ブロック全体の階調誤差を当該着目された小ブロック外の未変換画素に拡散させる第一の変換処理工程と、
上記ブロック処理判定工程にて上記ブロック処理条件と小ブロック処理条件をともに満たさないと判定されたとき、上記着目ブロック内の画素を区分した画素区分別に同画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同画素区分内の画素の画像データを変換するとともに同画素区分の階調誤差を当該画素区分外の未変換画素に拡散させることにより同着目ブロック内の画素の画像データを変換可能な第二の変換処理工程とを具備することを特徴とする画像データ処理方法。 - 画像を複数の画素で多階調表現した画像データを入力し、ドット形成の有無により表現した画像データに変換する際に階調誤差を未変換画素に拡散して画像データを変換し、変換後の画像データに基づく画像を設定された解像度にて印刷する印刷装置であって、
上記解像度を取得する解像度取得手段と、
この解像度取得手段にて取得された解像度が大きくなるほど画素数を増やして近隣した画素を変換処理区分とし、上記画像データを変換する着目された変換処理区分内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて、同着目された変換処理区分内の画素の画像データをまとめて変換するとともに同着目された変換処理区分全体の階調誤差を当該変換処理区分外の未変換画素に拡散させる変換処理手段と、
この変換処理手段にて変換された画像データに基づく画像を設定された解像度にて印刷する印刷手段とを具備することを特徴とする印刷装置。 - 画像を複数の画素で多階調表現した画像データを入力し、ドット形成の有無により表現した画像データに変換する際に階調誤差を未変換画素に拡散して画像データを変換し、変換後の画像データに基づく画像を印刷する印刷装置であって、
近隣する所定数の画素をまとめてブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値に基づいて当該着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分して小ブロックとし、上記画像データを変換する着目された小ブロック内の各画素の階調値に基づいて当該着目された小ブロックが所定の小ブロック処理条件を満たすか否かを判定するブロック処理判定手段と、
このブロック処理判定手段にて上記ブロック処理条件を満たすと判定されたとき、上記着目ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目ブロック内の画素の画像データをまとめて変換するとともに同着目ブロック全体の階調誤差を当該着目ブロック外の未変換画素に拡散させ、同ブロック処理判定手段にて上記小ブロック処理条件を満たすと判定されたとき、上記着目された小ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目された小ブロック内の画素の画像データをまとめて変換するとともに同着目された小ブロック全体の階調誤差を当該着目された小ブロック外の未変換画素に拡散させる第一の変換処理手段と、
上記ブロック処理判定手段にて上記ブロック処理条件と小ブロック処理条件をともに満たさないと判定されたとき、上記着目ブロック内の画素を区分した画素区分別に同画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同画素区分内の画素の画像データを変換するとともに同画素区分の階調誤差を当該画素区分外の未変換画素に拡散させることにより同着目ブロック内の画素の画像データを変換可能な第二の変換処理手段と、
上記第一および第二の変換処理手段にて変換された画像データに基づく画像を印刷する印刷手段とを具備することを特徴とする印刷装置。 - 画像を複数の画素で多階調表現した画像データを入力し、設定された解像度にて画像を出力する画像出力装置に入力される画像データに変換する際に階調誤差を未変換画素に拡散してドット形成の有無により表現した画像データに変換する機能をコンピュータに実現させる画像データ処理プログラムであって、
上記解像度を取得する解像度取得機能と、
この解像度取得機能にて取得された解像度が大きくなるほど画素数を増やして近隣した画素を変換処理区分とし、上記画像データを変換する着目された変換処理区分内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて、同着目された変換処理区分内の画素の画像データをまとめて変換するとともに同着目された変換処理区分全体の階調誤差を当該変換処理区分外の未変換画素に拡散させる変換処理機能とを実現させることを特徴とする画像データ処理プログラム。 - 画像を複数の画素で多階調表現した画像データを入力し、ドット形成の有無により表現した画像データに変換する際に階調誤差を未変換画素に拡散して画像データを変換する機能をコンピュータに実現させる画像データ処理プログラムであって、
近隣する所定数の画素をまとめてブロックとし、上記画像データを変換する着目ブロック内の各画素の階調値に基づいて当該着目ブロックが所定のブロック処理条件を満たすか否かを判定するとともに、同ブロック処理条件を満たさないと判定したとき、同着目ブロック内の画素を区分して小ブロックとし、上記画像データを変換する着目された小ブロック内の各画素の階調値に基づいて当該着目された小ブロックが所定の小ブロック処理条件を満たすか否かを判定するブロック処理判定機能と、
このブロック処理判定機能にて上記ブロック処理条件を満たすと判定されたとき、上記着目ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目ブロック内の画素の画像データをまとめて変換するとともに同着目ブロック全体の階調誤差を当該着目ブロック外の未変換画素に拡散させ、同ブロック処理判定機能にて上記小ブロック処理条件を満たすと判定されたとき、上記着目された小ブロック内の各画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同着目された小ブロック内の画素の画像データをまとめて変換するとともに同着目された小ブロック全体の階調誤差を当該着目された小ブロック外の未変換画素に拡散させる第一の変換処理機能と、
上記ブロック処理判定機能にて上記ブロック処理条件と小ブロック処理条件をともに満たさないと判定されたとき、上記着目ブロック内の画素を区分した画素区分別に同画素の階調値および変換処理済みの画素からの上記階調誤差に基づいて同画素区分内の画素の画像データを変換するとともに同画素区分の階調誤差を当該画素区分外の未変換画素に拡散させることにより同着目ブロック内の画素の画像データを変換可能な第二の変換処理機能とを実現させることを特徴とする画像データ処理プログラム。 - 上記請求項18または請求項19に記載の画像データ処理プログラムを記録した媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002009044A JP3956098B2 (ja) | 2002-01-17 | 2002-01-17 | 画像データ処理装置、画像データ処理方法、印刷装置、画像データ処理プログラムおよび画像データ処理プログラムを記録した媒体 |
US10/346,985 US7268919B2 (en) | 2002-01-17 | 2003-01-15 | Image data processing apparatus, method, and program that diffuses gradiation error for each pixel in target block |
EP03000685A EP1330113A3 (en) | 2002-01-17 | 2003-01-16 | Image data processing apparatus, method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002009044A JP3956098B2 (ja) | 2002-01-17 | 2002-01-17 | 画像データ処理装置、画像データ処理方法、印刷装置、画像データ処理プログラムおよび画像データ処理プログラムを記録した媒体 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003219168A JP2003219168A (ja) | 2003-07-31 |
JP2003219168A5 JP2003219168A5 (ja) | 2005-06-09 |
JP3956098B2 true JP3956098B2 (ja) | 2007-08-08 |
Family
ID=27647148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002009044A Expired - Fee Related JP3956098B2 (ja) | 2002-01-17 | 2002-01-17 | 画像データ処理装置、画像データ処理方法、印刷装置、画像データ処理プログラムおよび画像データ処理プログラムを記録した媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3956098B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4274030B2 (ja) | 2004-04-12 | 2009-06-03 | セイコーエプソン株式会社 | 画像出力システム、画像処理装置、画像出力装置およびそれらの方法 |
JP4297000B2 (ja) | 2004-06-28 | 2009-07-15 | セイコーエプソン株式会社 | 複数画素ずつ多値化を行いながら画像を出力する画像出力システム |
JP4296999B2 (ja) | 2004-06-28 | 2009-07-15 | セイコーエプソン株式会社 | 複数画素ずつ多値化を行いながら画像を出力する画像出力システム |
-
2002
- 2002-01-17 JP JP2002009044A patent/JP3956098B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003219168A (ja) | 2003-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4634292B2 (ja) | 画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム | |
JP4935916B2 (ja) | 画像処理プログラム及び画像処理装置 | |
JP2008030432A (ja) | ディザマトリックスの生成 | |
JPH1097618A (ja) | ハーフトーンのためのシームレスな並列的隣接処理 | |
JP2008087382A (ja) | 高画質ハーフトーン処理 | |
JP4240210B2 (ja) | 印刷制御装置、印刷制御方法および印刷制御プログラム | |
JP6252003B2 (ja) | 印刷装置、印刷方法、画像処理装置およびプログラム | |
JP5115575B2 (ja) | 画像処理プログラム及び画像処理装置 | |
JP3956098B2 (ja) | 画像データ処理装置、画像データ処理方法、印刷装置、画像データ処理プログラムおよび画像データ処理プログラムを記録した媒体 | |
JP4003046B2 (ja) | 印刷制御装置、印刷制御方法、印刷システム、印刷制御プログラムおよび印刷制御プログラムを記録した媒体 | |
JP5003777B2 (ja) | 画像処理プログラム及び画像処理装置 | |
US20090201520A1 (en) | Image Processing for Determining Dot Formation States in Printing an Image | |
US8254002B2 (en) | Screen generating apparatus, screen generating method, and image processing apparatus | |
JP2003219168A5 (ja) | ||
JP3883056B2 (ja) | 画像処理装置、画像処理方法、印刷装置、画像処理プログラムおよび画像処理プログラムを記録した媒体 | |
JP2005067054A (ja) | 改善インクの吐出制御 | |
JP6525518B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP5669249B2 (ja) | プログラム、画像処理装置、及び画像処理方法 | |
JP4069385B2 (ja) | 画像処理装置および画像処理方法 | |
JP2000332995A (ja) | 画像データ生成方法および記録媒体 | |
JP3962902B2 (ja) | 画像データ処理装置、画像データ処理方法、印刷装置、画像データ処理プログラムおよび画像データ処理プログラムを記録した媒体 | |
JP2003309724A5 (ja) | ||
JP3944742B2 (ja) | 画像処理装置、画像処理方法、印刷制御装置および画像処理プログラム | |
JP4069354B2 (ja) | 画像データ処理装置および画像データ処理方法 | |
JP2003219167A5 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040826 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040826 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060822 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060830 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061017 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070411 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070424 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110518 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |