(57)【要約】【課題】入力画素の階調値と複数の閾値とを比較する場合でもリアルタイムにディザ処理を行うことができるとともに、ディザ処理に使用する閾値マトリクスの形状を任意に変更することができる画像処理装置を提供する。【解決手段】入力画像の各画素の階調値を、閾値マトリクスを用いたディザ処理により変換して出力する画像処理装置の構成要素として、閾値マトリクスに配列される全ての閾値を格納するメインメモリＭＭと、閾値マトリクスの各行に配列される閾値を入力ライン単位でメインメモリＭＭから読み出して書き込むための複数のサブメモリＳＭ，…と、複数のサブメモリＳＭ，…に書き込まれた閾値の中から、比較部４での比較処理に用いられる所定数の閾値を選択し、この選択した所定数の閾値を比較部４に与える閾値制御部３と、入力画像の各画素の階調値を、閾値制御部３から与えられた所定数の閾値と比較し、その比較結果を出力画像データとして出力する比較部４とを備えるものとする。【選択図】図１
2005094404.tif 000002
【特許請求の範囲】
【請求項１】
入力画像の各画素の階調値を、閾値マトリクスを用いたディザ処理により変換して出力する画像処理装置であって、
前記閾値マトリクスに配列される全ての閾値を格納するメインメモリと、
前記閾値マトリクスの各行に配列される閾値を所定の単位で前記メインメモリから読み出して書き込むための複数のサブメモリと、
前記入力画像の各画素の階調値を前記複数のサブメモリに書き込まれた閾値と比較し、その比較結果を出力する比較手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記所定の単位が入力ライン単位である
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記所定の単位が複数の入力画素単位である
ことを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記複数のサブメモリに書き込まれた閾値の中から、前記比較手段での比較処理に用いられる閾値を選択し、この選択した閾値を前記比較手段に付与する閾値制御手段を備える
ことを特徴とする請求項１記載の画像処理装置。
【請求項５】
入力画像の主走査方向の最低解像度をＮｘＬ(dpi)、入力画像の副走査方向の最低解像度をＮｙＬ(dpi)、出力画像の主走査方向の最高解像度をＭｘＨ(dpi)、出力画像の副走査方向の最高解像度をＭｙＨ(dpi)、前記閾値マトリクスの主走査方向に配列される閾値の最大個数をＣｘＨ、前記閾値のビット数をＥ(bit)とした場合に、
前記サブメモリの１ワードのビット数を（ＭｘＨ／ＮｘＬ）×Ｅ、
前記サブメモリのワード数をＣｘＨ、
前記サブメモリの個数をＭｙＨ／ＮｙＬに設定してなる
ことを特徴とする請求項２記載の画像処理装置。
【請求項６】
前記閾値制御手段は、前記メインメモリから前記複数のサブメモリに書き込まれた閾値を、１つの入力画素単位で順に読み出して前記比較手段に付与する
ことを特徴とする請求項３記載の画像処理装置。
【請求項７】
入力画像の副走査方向の解像度をＮｙ(dpi)、出力画像の副走査方向の解像度をＭｙ(dpi)、ディザ処理に用いる閾値マトリクスの副走査方向に配列される閾値の個数をＣｙとした場合に、
Ｃｙ＜（Ｍｙ／Ｎｙ）の条件のときに、閾値マトリクスの各行に配列される閾値をそれぞれ異なるサブメモリに書き込むとともに、複数の異なるサブメモリに対して閾値マトリクスの同じ行の閾値を書き込む
ことを特徴とする請求項５記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、閾値マトリクスを用いてディザ処理を行う画像処理装置に関する。
【背景技術】
【０００２】
画像処理装置で行われる画像処理の一つの形態として、原画像の階調値を画像出力装置で出力（表現）可能な階調値に変換して擬似的に再現するディザ法が知られている。ディザ法では、原画像を構成する各画素の階調値を、閾値マトリクスに配列された閾値と比較することにより、出力画像の階調値を決定する。出力画像の階調値が２値となるものは２値ディザ法、多値となるものは多値ディザ法と呼ばれる。
【０００３】
図１３は従来の画像処理装置の構成例を示す概略図である。図において、アドレス制御部５１は、閾値格納用のメモリ５２に対して閾値読み出しのためのメモリアドレス（以下、単に「アドレス」とも記す）を指定するものである。閾値格納メモリ５２は、ディザ処理に用いられる閾値マトリクスの各位置（マトリクス要素）に対応する閾値のデータを記憶するものである。比較部５３は、これに入力される入力画像データの各画素の階調値と、これに対応してメモリ５２から読み出された閾値とを比較するとともに、この比較結果に基づいて階調変換された出力画像データを生成するものである。
【０００４】
ここで、上記ディザ法に基づく処理（ディザ処理）で使用される閾値マトリクスが例えば図１４に示すように４×４のマトリクス構成（マトリクス内の閾値はTh00〜Th15の符号で識別）である場合は、この閾値マトリクス内に配列される閾値Th00〜Th15がメモリ５２に格納される。この場合、メモリ５２において、１つのアドレスに１つの閾値を格納することが公知となっている（例えば、特許文献１参照）。
【０００５】
そして、実際にディザ処理を行う場合は、図１５に示すように、所定の周波数のクロックに同期してアドレス制御部５１が０番地〜１５番地のアドレスを順に指定してメモリ５２から閾値(Th00〜Th15)を順次読み出すとともに、この読み出した閾値(Th00〜Th15)と入力画像の階調値(Vi00,Vi01，…)とを比較部５３で比較し、この比較結果に基づいて出力画像の階調値(Vo00,Vo01，…)を生成するものとなっている。これにより、代表的な２値ディザ法である組織的ディザ法では、例えば、原画像を４×４画素や８×８画素のブロックに分割し、各々のブロックごとに、入力画素の階調値がこれに対応するマトリクス位置の閾値よりも大きい場合は白（１）、小さい場合は黒（０）とすることによって入力画像を２値化する。
【０００６】
【特許文献１】特開平４−２０５６７５号公報（第４図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、入力画像の解像度（以下、「入力解像度」とも記す）と出力画像の解像度（以下、「出力解像度」とも記す）が同じ場合は、入力画素の数と出力画素の数が１：１の関係となる。そのため、ディザ処理を行う場合は、１つの入力画素を１つの閾値と比較することになる。したがって、上記クロックに同期してリアルタイムにディザ処理を行うことができる。
【０００８】
しかしながら、入力解像度よりも出力解像度が高い場合や、入力画像を複数の画素からなるブロック単位でディザ処理する場合などでは、比較部５３で入力画素の階調値と比較される閾値が複数必要になる。そうした場合、上記従来技術のように１つのアドレスに１つの閾値を格納する方式では、メモリ５２からの閾値の読み出し動作に合わせてリアルタイムにディザ処理を行うことができなくなる。
【０００９】
一例として、入力解像度が６００×６００(dpi)で、出力解像度が１２００×１２００(dpi)である場合は、低解像度から高解像度への変換となるために、１つの入力画素に対して４つの出力画素を生成することになる。そのため、図１６に示すように、入力画像の各画素の階調値をそれぞれ４つの閾値と比較する必要がある。そうした場合、上記従来の画像処理装置の構成では、クロックに同期したアドレス制御部５１からのアドレス指定により、４クロックかけてメモリ５２から読み出した４つの閾値を、比較部５３で１つの入力画素の階調値と比較することになる。そのため、メモリ５２からの閾値の読み出しに合わせてリアルタイムにディザ処理が行われず、トータルの処理時間が長くなってしまう。
【００１０】
この対策としては、メモリ５２に閾値を格納する場合に、１つのアドレスに複数の閾値をまとめて格納し、１つのアドレス指定で複数の閾値を読み出し可能とすることも考えられるが、その場合は装置の構成上、閾値マトリクスが固定（不変）の扱いとなる。一般にｍ×ｎの閾値マトリクスの形状（ｍ，ｎの値）は固定の扱いではなく、装置状態（印刷用の色材の付着度合いなど）の経時的な変化や、Ｙ（イエロー），Ｍ（マゼンタ），Ｃ（シアン），Ｋ（ブラック）の各色のスクリーン角度、シフト量等に応じて可変の扱いにする必要がある。また、汎用性の観点からしても、複数の入力解像度や出力解像度に対応して閾値マトリクスの形状、サイズ等を可変できるように装置を構成しておく必要がある。そのため実際の装置では、閾値マトリクスを固定の扱いにすることはできなかった。
【００１１】
本発明は、上記課題を解決するためになされたもので、その目的とするところは、入力画素の階調値と複数の閾値とを比較する場合でもリアルタイムにディザ処理を行うことができるとともに、ディザ処理に使用する閾値マトリクスの形状を任意に変更することができる画像処理装置を提供することにある。
【課題を解決するための手段】
【００１２】
本発明に係る画像処理装置は、入力画像の各画素の階調値を、閾値マトリクスを用いたディザ処理により変換して出力する画像処理装置であって、閾値マトリクスに配列される全ての閾値を格納するメインメモリと、閾値マトリクスの各行に配列される閾値を所定の単位でメインメモリから読み出して書き込むための複数のサブメモリと、入力画像の各画素の階調値を複数のサブメモリに書き込まれた閾値と比較し、その比較結果を出力する比較手段とを備えるものである。
【００１３】
この画像処理装置においては、閾値マトリクスに配列される全ての閾値を格納するメインメモリに加えて、複数のサブメモリを備えた構成とし、閾値マトリクスの各行に配列される閾値を所定の単位でメインメモリから読み出して複数のサブメモリに書き込むことにより、１回の読み出し動作によって、入力画素の階調値との比較に必要な所定数の閾値を複数のサブメモリから読み出すことが可能になるとともに、閾値マトリクスの形状、サイズ、シフト量等の変更に柔軟に対応することが可能になる。
【発明の効果】
【００１４】
本発明の画像処理装置によれば、入力画素の階調値と複数の閾値とを比較する場合でも、１回の読み出し動作によって、入力画素の階調値との比較に必要な複数の閾値を複数のサブメモリから読み出すことができる。そのため、閾値の読み出し動作に合わせてリアルタイムにディザ処理を行うことが可能となる。また、閾値マトリクスの形状、サイズ、シフト量等の変更に柔軟に対応することができる。したがって、様々なディザ処理の条件等に応じて閾値マトリクスを可変の扱いにすることが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の具体的な実施の形態について図面を参照しつつ詳細に説明する。
【００１６】
図１は本発明の実施形態に係る画像処理装置の構成例を示す概略図である。図示した画像処理装置は、入力画像の各画素の階調値を、閾値マトリクスを用いたディザ処理により変換して出力するもので、アドレス制御部１と、メモリインターフェース（メモリＩ／Ｆ）２と、メインメモリＭＭと、複数のサブメモリＳＭ（図例では４つのサブメモリＳＭ０〜ＳＭ３）と、閾値制御部３と、比較部４とを備えて構成されている。
【００１７】
アドレス制御部１は、閾値読み出し用のメモリアドレスを生成し、このメモリアドレス（以下、単にアドレスとも記す）をメモリインターフェース２を介してメインメモリＭＭに供給するものである。メモリインターフェース２は、アドレス制御部１、メインメモリＭＭ及び複数のサブメモリＳＭ０〜ＳＭ３との間で、データ（アドレス、閾値）の受け渡しを行うインターフェースである。メインメモリＭＭは、ディザ処理に用いられる閾値マトリクスに配列される全ての閾値を格納するものである。さらに詳述すると、閾値マトリクスは、主走査方向に相当する列方向（水平方向）と副走査方向に相当する行方向（垂直方向）にそれぞれ閾値を配列して構成されるもので、このマトリクス内に配列される全ての閾値がメインメモリＭＭに格納される構成となっている。
【００１８】
各々のサブメモリＳＭ０〜ＳＭ３は、上記閾値マトリクスの各行に配列される閾値を１ライン単位で書き込むためのメモリである。例えば、８×８の閾値マトリクスの場合は当該マトリクスの各行に８個の閾値が配列されるため、各々のサブメモリＳＭ０〜ＳＭ３には８個ずつ閾値が書き込まれることになる。また、１６×５の閾値マトリクスの場合は当該マトリクスの各行に１６個の閾値が配列されるため、各々のサブメモリＳＭ０〜ＳＭ３には１６個ずつ閾値が書き込まれることになる。サブメモリＳＭの個数は、画像処理装置にディザ処理の対象として入力される入力画像の副走査方向の最低解像度と、画像処理装置からディザ処理の結果として出力される出力画像の副走査方向の最高解像度の関係によって決まる（詳細は後述）。
【００１９】
また、各々のサブメモリＳＭ０〜ＳＭ３には、アドレス制御部１からメインメモリＭＭにアドレスを指定することにより、閾値マトリクスの各行に配列された複数の閾値がメインメモリＭＭから読み出されて書き込まれる構成となっている。さらに、サブメモリＳＭ０〜ＳＭ３に対する閾値の書き込みは、入力画像の処理ラインごとに入力ライン単位で行われるものとなっている。入力ライン単位とは、入力画像の１つのラインを処理するのに必要な閾値の個数単位という意味である。これにより、閾値制御部３においては、入力画像の各ライン（画素列）を処理するときに、各々のサブメモリＳＭ０〜ＳＭ３に書き込まれた複数個の閾値の中から、入力画像の各画素（１画素）の階調値との比較に必要とされる所定数の閾値を同時に読み出し可能となっている。
【００２０】
入力画像の各画素の階調値との比較に必要とされる閾値の個数は、入力画像の解像度と出力画像の解像度の関係によって決まる。一例として、入力画像の解像度が６００×６００(dpi)で、出力画像の解像度が１２００×２４００(dpi)である場合は、入力画像の１画素サイズが、出力画像の主走査方向で２画素サイズ、副走査方向で４画素サイズに相当する。そのため、入力画像の各画素の階調値との比較に必要とされる閾値の個数は２×４＝８の計算式から合計８個となる。また、他の例として、入力画像の解像度が６００×６００(dpi)で、出力画像の解像度が２４００×２４００(dpi)である場合は、入力画像の１画素サイズが、出力画像の主走査方向及び副走査方向でそれぞれ４画素サイズに相当する。そのため、入力画像の各画素の階調値との比較に必要とされる閾値の個数は４×４＝１６の計算式から合計１６個となる。
【００２１】
閾値制御部３は、複数のサブメモリＳＭ０〜ＳＭ３に書き込まれた閾値の中から、比較部４での比較処理に用いられる所定数の閾値を選択し（読み出し）、この選択した閾値を比較部４に与えるものである。比較部４は、これに入力された画像データの各画素（入力画素）の階調値を、閾値制御部３から与えられた所定数の閾値と比較し、この比較結果に基づいて階調変換された出力画像データを生成するものである。
【００２２】
上記構成からなる画像処理装置においては、閾値マトリクスに配列される全ての閾値を格納するメインメモリＭＭに加えて、閾値マトリクスの各行に配列される閾値を書き込むための複数のサブメモリＳＭ０〜ＳＭ３を備え、入力画像の各画素の階調値とこれに対応して各々のサブメモリＳＭ０〜ＳＭ３から閾値制御部３により選択された所定数の閾値とを比較部４で比較するものとしたので、例えば入力解像度よりも出力解像度が高い場合であっても、サブメモリの個数や、閾値制御部３による閾値の選択個数を適宜設定することにより、入力画像の各画素の階調値との比較に必要な所定数の閾値を各々のサブメモリＳＭ０〜ＳＭ３から同時に読み出すことができる。さらに、この読み出した閾値を閾値制御部３から比較部４に与えることにより、１回（１クロックごと）の読み出し動作によって、入力画像の各画素の階調値とこれに対応する所定数の閾値とを比較することができる。したがって、サブメモリＳＭ０〜ＳＭ３からの閾値の読み出し動作に合わせてリアルタイムにディザ処理を行うことが可能となる。また、閾値マトリクスの各行の閾値をそれぞれ異なるサブメモリＳＭ０〜ＳＭ３に格納するものとしたので、閾値マトリクスの行ごとに閾値の読み出しを個別に制御することができる。したがって、装置状態の経時的な変化や、ＹＭＣＫの各色のスクリーン角度に応じて閾値マトリクスの形状を任意に変更することが可能となる。
【００２３】
ここで本実施形態の画像処理装置においては、入力画像の主走査方向の最低解像度をＮｘＬ(dpi)、入力画像の副走査方向の最低解像度をＮｙＬ(dpi)、出力画像の主走査方向の最高解像度をＭｘＨ(dpi)、出力画像の副走査方向の最高解像度をＭｙＨ(dpi)、閾値マトリクスの主走査方向に配列される閾値の最大個数をＣｘＨ、閾値マトリクスの副走査方向に配列される閾値の最大個数をＣｙＨ、閾値のビット数をＥ(bit)とした場合に、メインメモリＭＭの１ワードのビット数をＥ、メインメモリＭＭのワード数をＣｘＨ×ＣｙＨ、メインメモリＭＭの個数を１個、サブメモリＳＭの１ワードのビット数を（ＭｘＨ／ＮｘＬ）×Ｅ、サブメモリＳＭのワード数をＣｘＨ、サブメモリＳＭの個数をＭｙＨ／ＮｙＬに設定するものとする。このうち、最低解像度及び最高解像度とは、本発明の装置システムで想定している画像の解像度の最大値及び最小値をいう。また、閾値マトリクスに配列される閾値の最大個数ＤはＤ＝ＣｘＨ×ＣｙＨで求まり、この最大個数ＤがメインメモリＭＭのワード数に設定される。
【００２４】
このようにメインメモリＭＭ及びサブメモリＳＭを構成することにより、入出力画像の解像度がどのように変化した場合でも、ディザ処理に使用する閾値マトリクスが、システムで想定した最大のマトリクスサイズ（ＣｘＨ×ＣｙＨ）以下であれば、１つの入力画素の階調値と複数の閾値とを同時に比較する場合に、リアルタイムにディザ処理を行うことができるとともに、スクリーン角度、シフト量等に応じて閾値マトリクスの形状、サイズ等を任意に変更することができる。
【００２５】
具体例として、入力画像の主走査方向の最低解像度ＮｘＬ＝６００(dpi)、入力画像の副走査方向の最低解像度ＮｙＬ＝６００(dpi)、出力画像の主走査方向の最高解像度ＭｘＨ＝２４００(dpi)、出力画像の副走査方向の最高解像度ＭｙＨ＝２４００(dpi)、閾値マトリクスの主走査方向に配列される閾値の最大個数ＣｘＨ＝５１２、閾値マトリクスの副走査方向に配列される閾値の最大個数ＣｙＨ＝３２、閾値のビット数Ｅ＝８(bit)であるとすると、メインメモリＭＭの１ワードのビット数は８(bit)、メインメモリＭＭのワード数は１６３８４(word)、メインメモリＭＭの個数は１個、サブメモリＳＭの１ワードのビット数は３２(bit)、サブメモリＳＭのワード数は５１２(word)、サブメモリＳＭの個数は４個に設定される。ただし、メインメモリＭＭの１ワードのビット数については、任意に変更可能である。したがって、例えばメインメモリＭＭの１ワードのビット数を（ＭｘＨ／ＮｘＬ）×Ｅとした場合は３２(bit)に設定される。
【００２６】
続いて、上記メモリ構成を採用した画像処理装置による具体的なディザ処理の例について説明する。
【００２７】
先ず、入力画像の解像度が６００×６００(dpi)で、出力画像の解像度が２４００×２４００(dpi)であるとすると、図２に示すように、入力画像の１画素サイズが出力画像の４×４画素サイズとなる。したがって、入力画像の１画素につき、１６個（４×４画素分）の閾値と比較する必要がある。このとき、ディザ処理に使用する閾値マトリクスの構成例として、図３（Ａ）に示す９×５のマトリクスと同図（Ｂ）に示す９×３のマトリクスを想定する。そして、９×５の閾値マトリクスには、マトリクス内の位置を特定するためのアドレス情報として０〜４４のマトリクス番号を割り当て、９×３の閾値マトリクスには０〜２６のマトリクス番号を割り当てる。
【００２８】
そうした場合、上記入出解像度の関係から入力画像の１ライン分が出力画像の４ライン分に相当するため、９×５の閾値マトリクスを用いたディザ処理では、図４に示すように、入力画像の１ライン目を処理するときは、閾値マトリクスの１行目〜４行目の閾値（マトリクス番号０〜３５の閾値）を参照し、入力画像の２ライン目を処理するときは、閾値マトリクスの５行目、１行目〜３行目の閾値（マトリクス番号３６〜４４、０〜２６の閾値）を参照し、入力画像の３ライン目を処理するときは、閾値マトリクスの４行目、５行目、１行目、２行目の閾値（マトリクス番号２７〜４４、０〜１７の閾値）を参照する。
【００２９】
また、閾値マトリクスの位置が副走査方向に１段ずれるところ（出力画像の６ライン目、１１ライン目など）では、予め設定されたシフト量にしたがって閾値マトリクスの位置を主走査方向にずらす。例えば、シフト量が「右方向に２」と設定されていた場合は、出力画像の６ライン目で、マトリクス番号７，８，０，１の閾値を、最初に入力された入力画素の階調値との比較対象とする。同様に、出力画像の７ライン目ではマトリクス番号１６，１７，９，１０の閾値を、出力画像の８ライン目ではマトリクス番号２５，２６，１８，１９の閾値を、出力画像の９ライン目ではマトリクス番号３４，３５，２７，２８の閾値を、出力画像の１０ライン目ではマトリクス番号４３，４４，３６，３７の閾値を、最初に入力された入力画素の階調値との比較対象とする。そして、出力画像の１１ライン目以降についても同様のシフト動作を行う。
【００３０】
一方、９×３の閾値マトリクスを用いたディザ処理では、図５に示すように、入力画像の１ライン目を処理するときは、閾値マトリクスの１行目〜３行目の閾値（マトリクス番号０〜２６の閾値）を参照し、入力画像の２ライン目を処理するときも、閾値マトリクスの１行目〜３行目の閾値（マトリクス番号０〜２６の閾値）を参照し、入力画像の３ライン目を処理するときも、閾値マトリクスの１行目〜３行目の閾値（マトリクス番号０〜２６の閾値）を参照する。つまり、入力画像の処理ラインごとに、閾値マトリクスの１行目〜３行目の閾値（マトリクス番号０〜２６の閾値）を参照する。
【００３１】
ただし、入力画像の１ライン目を処理するときは、閾値マトリクスの１行目の閾値（マトリクス番号０〜８の閾値）を、出力画像の１ライン目と４ライン目で参照する。また、入力画像の２ライン目を処理するときは、閾値マトリクスの２行目の閾値（マトリクス番号９〜１７の閾値）を、出力画像の５ライン目と８ライン目で参照し、入力画像の３ライン目を処理するときは、閾値マトリクスの３行目の閾値（マトリクス番号１８〜２６の閾値）を、出力画像の９ライン目と１２ライン目で参照する。
【００３２】
また、出力画像の１ライン目と４ライン目では、閾値マトリクスの位置が副走査方向に１段ずれるため、予め設定されたシフト量にしたがって閾値マトリクスの位置を主走査方向にずらす。例えば、シフト量が「右方向に２」と設定されていた場合は、出力画像の４ライン目で、マトリクス番号７，８，０，１の閾値を、最初に入力された入力画素の階調値との比較対象とする。同様に、出力画像の５ライン目ではマトリクス番号１６，１７，９，１０の閾値を、出力画像の６ライン目ではマトリクス番号２５，２６，１８，１９の閾値を、最初に入力された入力画素の階調値との比較対象とする。そして、出力画像の７ライン目以降についても同様のシフト動作を行う。
【００３３】
このようなディザ処理を実現するにあたって、画像処理装置では、次のような処理動作を行う。先ず、９×５の閾値マトリクスを使用する場合は、この閾値マトリクスに配列される全ての閾値（マトリクス番号０〜４４の閾値）のデータを、例えば図６（Ａ）に示すようにメインメモリＭＭに格納する。このとき、メインメモリＭＭの１アドレスに１個の閾値を格納するものとすると、メモリアドレス０〜４４のメモリ空間を利用して、マトリクス番号０〜４４の閾値がメインメモリＭＭに格納されることになる。また、９×３の閾値マトリクスを使用する場合は、図６（Ｂ）に示すように、メモリアドレス０〜２６のメモリ空間を利用して、マトリクス番号０〜２６の閾値がメインメモリＭＭに格納されることになる。
【００３４】
このようにディザ処理に必要な全ての閾値をメインメモリＭＭに格納したら、実際に入力画像データを処理する際に、入力画像の処理ラインごとに、閾値マトリクスの各行の閾値をメインメモリＭＭから読み出すとともに、この読み出した閾値を閾値マトリクスの行ごとに複数のサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３に書き込む。この場合、各々のサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３では、前述した設定条件にしたがって１アドレス（１ワードのビット列）に４個の閾値を格納可能となっている。
【００３５】
そこで、９×５の閾値マトリクスを使用してディザ処理する場合は、閾値マトリクスの副走査方向に配列される閾値の個数がＣｙ＝５個、入力画像の副走査方向の解像度がＮｙ＝６００(dpi)、出力画像の副走査方向の解像度がＭｙ＝２４００(dpi)となり、Ｃｙ≧（Ｍｙ／Ｎｙ）の条件を満たすことになる。この場合は、閾値マトリクスの各行に配列される閾値をそれぞれ異なるサブメモリに書き込むとともに、複数の異なるサブメモリに対して閾値マトリクスの異なる行の閾値を書き込むようにする。
【００３６】
具体的には、入力画像の１ライン目を処理する場合は、図７（Ａ）〜（Ｄ）に示すように、サブメモリＳＭ０の３つのアドレス空間（アドレス０，１，２で指定されるメモリ領域）に、閾値マトリクスの１行目の閾値（マトリクス番号０〜８の閾値）を書き込む。このとき、サブメモリＳＭ０のメモリアドレス２には、マトリクス番号８の閾値とこれに続く先頭からのマトリクス番号０，１，２の閾値を書き込む。同様に、サブメモリＳＭ１の３つのアドレス空間には閾値マトリクスの２行目の閾値（マトリクス番号９〜１７の閾値）、サブメモリＳＭ２の３つのアドレス空間には閾値マトリクスの３行目の閾値（マトリクス番号１８〜２６の閾値）、サブメモリＳＭ３の３つのアドレス空間には閾値マトリクスの４行目の閾値（マトリクス番号２７〜３５の閾値）を書き込む。
【００３７】
また、入力画像の２ライン目を処理する場合は、図８（Ａ）〜（Ｄ）に示すように、サブメモリＳＭ０の３つのアドレス空間（アドレス０，１，２で指定されるメモリ領域）に、閾値マトリクスの５行目の閾値（マトリクス番号３６〜４４の閾値）を書き込む。このとき、サブメモリＳＭ０のメモリアドレス２には、マトリクス番号４４の閾値とこれに続く先頭からのマトリクス番号３６，３７，３８の閾値を書き込む。同様に、サブメモリＳＭ１の３つのアドレス空間には閾値マトリクスの１行目の閾値（マトリクス番号０〜８の閾値）、サブメモリＳＭ２の３つのアドレス空間には閾値マトリクスの２行目の閾値（マトリクス番号９〜１７の閾値）、サブメモリＳＭ３の３つのアドレス空間には閾値マトリクスの３行目の閾値（マトリクス番号１８〜２６の閾値）を書き込む。入力画像の３ライン目以降を処理する場合も、上記同様の方式で各々のサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３に、閾値マトリクスの各行の閾値を書き込む。
【００３８】
これにより、各々のサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３の１アドレスから、それぞれ４個の閾値が読み出される。したがって、各々のサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３に１つのアドレスを指定することにより、入力画像の１画素サイズに相当する４×４画素分（合計１６個）の閾値を同時に読み出すことができる。その結果、１クロックの読み出し動作に合わせてリアルタイムにディザ処理を行うことが可能となる。さらに、閾値マトリクスの各行に配列される閾値を、それぞれ異なるサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３に書き込むため、各々のサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３からの閾値の読み出しを個別に制御することができる。したがって、装置状態の経時的な変化や、ＹＭＣＫの各色のスクリーン角度に応じて閾値マトリクスの形状を任意に変更することが可能となる。
【００３９】
ちなみに、上記図の中で例えばシフト処理が行われる出力画像の６ライン目では、マトリクス番号７，８，０，１の閾値を、最初に入力された入力画素の階調値との比較対象とするため、この閾値が書き込まれたサブメモリＳＭ１の２つのアドレス（１，２）から閾値を読み出す必要がある。このように２つのアドレスに跨った閾値を使用する場合は、いずれも２つのアドレスが隣り合う関係又は最後と最初の関係となる。したがって、この場合は、先行する一方のアドレスから先に閾値を読み出して閾値制御部３に取り込んだ後、これを保持したまま、逐次、後続のアドレスから閾値を読み出して閾値制御部３に取り込み、その中から必要な閾値を閾値制御部３で選択して比較部４に与えることにより適切に対応することができる。
【００４０】
また、メインメモリＭＭから４個のサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３への閾値の読み出しと書き込みは、上記ラインシンクLSの立ち下がりタイミングから次の立ち上がりタイミングまでの期間（以下、無効期間）に行うことができる。ただし、無効期間（ラインシンクの立ち下がり保持期間）が短すぎて、当該期間内に閾値の読み書きを終了できない場合は、各々のサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３の構成としてピンポンバッファ（デュアルバッファ）を採用すればよい。
【００４１】
ピンポンバッファは、一対（２つ）のバッファによって構成されるものである。このピンポンバッファでは、一方のバッファにデータを書き込んでいるときに、他方のバッファからデータを読み出すことができる。つまり、一対のバッファを、データの書き込み用と読み出し用に交互に切り替えることができる。したがって実際のディザ処理では、入力画像の１ライン目の処理に使用する閾値を一方のバッファに書き込んだ後、ラインシンクLSの立ち上がり保持期間で、一方のバッファから閾値を読み出して入力画像の１ライン目を処理するとともに、入力画像の２ライン目の処理に使用する閾値を他方のバッファに書き込む。そして、次のラインシンクLSの立ち上がり保持期間では、他方のバッファから閾値を読み出して入力画像の２ライン目を処理するとともに、入力画像の３ライン目の処理に使用する閾値を一方のバッファに書き込む。以後、同様の処理を繰り返す。
【００４２】
一方、９×３の閾値マトリクスを使用してディザ処理する場合は、閾値マトリクスの副走査方向に配列される閾値の個数がＣｙ＝３個、入力画像の副走査方向の解像度がＮｙ＝６００(dpi)、出力画像の副走査方向の解像度がＭｙ＝２４００(dpi)となり、Ｃｙ＜（Ｍｙ／Ｎｙ）の条件を満たすことになる。この場合は、閾値マトリクスの各行に配列される閾値をそれぞれ異なるサブメモリに書き込むとともに、複数の異なるサブメモリに対して閾値マトリクスの同じ行の閾値を書き込むようにする。
【００４３】
具体的には、入力画像の１ライン目を処理する場合は、図９（Ａ）〜（Ｄ）に示すように、サブメモリＳＭ０の３つのアドレス空間（アドレス０，１，２で指定されるメモリ領域）に、閾値マトリクスの１行目の閾値（マトリクス番号０〜８の閾値）を書き込む。このとき、サブメモリＳＭ０のメモリアドレス２には、マトリクス番号８の閾値とこれに続く先頭からのマトリクス番号０，１，２の閾値を書き込む。同様に、サブメモリＳＭ１の３つのアドレス空間には閾値マトリクスの２行目の閾値（マトリクス番号９〜１７の閾値）、サブメモリＳＭ２の３つのアドレス空間には閾値マトリクスの３行目の閾値（マトリクス番号１８〜２６の閾値）を書き込む。また、サブメモリＳＭ３の３つのアドレス空間には閾値マトリクスの１行目の閾値（マトリクス番号０〜８の閾値）を書き込む。つまり、４つのサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３のうち、２つのサブメモリＳＭ０，ＳＭ３に閾値マトリクスの同じ行（１行目）の閾値を書き込む。
【００４４】
また、入力画像の２ライン目を処理する場合は、図１０（Ａ）〜（Ｄ）に示すように、サブメモリＳＭ０の３つのアドレス空間（アドレス０，１，２で指定されるメモリ領域）に、閾値マトリクスの２行目の閾値（マトリクス番号９〜１７の閾値）を書き込む。このとき、サブメモリＳＭ０のメモリアドレス２には、マトリクス番号１７の閾値とこれに続く先頭からのマトリクス番号９，１０，１１の閾値を書き込む。同様に、サブメモリＳＭ１の３つのアドレス空間には閾値マトリクスの３行目の閾値（マトリクス番号１８〜２６の閾値）、サブメモリＳＭ２の３つのアドレス空間には閾値マトリクスの１行目の閾値（マトリクス番号０〜８の閾値）を書き込む。また、サブメモリＳＭ３の３つのアドレス空間には閾値マトリクスの２行目の閾値（マトリクス番号９〜１７の閾値）を書き込む。つまり、４つのサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３のうち、２つのサブメモリＳＭ０，ＳＭ３に閾値マトリクスの同じ行（２行目）の閾値を書き込む。
【００４５】
これにより、各々のサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３の１アドレスから、それぞれ４個の閾値が読み出される。したがって、各々のサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３に１つのアドレスを指定することにより、入力画像の１画素サイズに相当する４×４画素分（合計１６個）の閾値を同時に読み出すことができる。その結果、１クロックの読み出し動作に合わせてリアルタイムにディザ処理を行うことが可能となる。さらに、閾値マトリクスの各行に配列される閾値を、それぞれ異なるサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３に書き込むため、各々のサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３からの閾値の読み出しを個別に制御することができる。したがって、装置状態の経時的な変化や、ＹＭＣＫの各色のスクリーン角度に応じて閾値マトリクスの形状を任意に変更することが可能となる。さらに、上記図５に示すように、入力画像の１つのライン（出力画像の４ライン分）を処理するときに、閾値マトリクスの同じ行の閾値を同時に参照する必要がある場合でも、複数の異なるサブメモリ（上記の例ではサブメモリＳＭ０，ＳＭ３）に対して閾値マトリクスの同じ行の閾値を書き込むことにより、所望の閾値を同時に読み出すことができる。
【００４６】
図１１は本発明の他の実施形態に係る画像処理装置でディザ処理を行うモジュール内部の構成を示す図である。ここでは、一例として、入力解像度が６００×６００(dpi)、出力解像度が１２００×２４００（dpi）、入力画像の各画素の階調値が８ビット（２５６階調）で入力、出力画像の各画素の階調値が１ビット（８画素分で８ビット）で出力する場合を想定している。この場合、入力画像の１画素サイズが出力画像の２×４画素サイズとなる。
【００４７】
図示したモジュール構成において、当該モジュールに入力されるラインシンクLS-In及びページシンクPS-Inは、それぞれアドレス制御部１及び比較部４に与えられる。ラインシンクLSは、入力画像の各ラインを処理するごとに出力される同期信号（水平同期信号）であり、ページシンクPSは、入力画像の各ページを処理するごとに出力される同期信号である。また、比較部４には、入力画像の各画素の階調値が８ビットのデジタルデータDATA-In［7:0］で入力される。そして、比較部４からは、出力画像の各画素の階調値が１ビット（８画素分で８ビット）のデジタルデータDATA-Out［7:0］で出力される。
【００４８】
アドレス制御部１は、閾値読み出しのためのアドレスRADDをメインメモリＭＭに対して出力する。メインメモリＭＭには、例えば６４ビット×２５６ワードのメモリ構成を適用する。この場合、メインメモリＭＭには、閾値マトリクスの各行に配列される閾値が、閾値マトリクスの行単位で先頭アドレスから順に格納される。また、メインメモリＭＭの１ワードには８個の閾値を格納可能となる。メインメモリＭＭに格納された閾値は、アドレス制御部１からのアドレスの指定により、閾値マトリクスの行ごとに１ワード分（８個）ずつ順に読み出される。また、メインメモリＭＭからの閾値の読み出しは、入力画像の各ラインを処理するにあたって複数の入力画素単位で行われる。複数の入力画素単位とは、複数の入力画素を処理するのに必要な閾値の個数単位という意味である。こうしてメインメモリＭＭから読み出された閾値（閾値データ）RDATAは、閾値マトリクスの行ごとに、４つのサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３に書き込まれる。各々のサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３には、メインメモリＭＭの１ワード分に相当する８個の閾値が書き込まれる。
【００４９】
また、４つのサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３に書き込まれた合計３２個の閾値は、複数（図例では４つ）のバッファメモリＢＭ０，ＢＭ１，ＢＭ２，ＢＭ３と１つの選択回路５とを有する閾値制御部３により順に選択されて比較部４に付与される。すなわち、４つのサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３に書き込まれた合計３２個の閾値は、入力画像の１画素単位で主走査方向に順に読み出されて４つのバッファメモリＢＭ０，ＢＭ１，ＢＭ２，ＢＭ３に書き込まれる。この場合、各々のバッファメモリＢＭ０，ＢＭ１，ＢＭ２，ＢＭ３には、主走査方向に２画素分、副走査方向に４画素分の閾値（８個の閾値）がそれぞれ書き込まれる。
【００５０】
これに対して、選択回路５は、上記４つのバッファメモリＢＭ０，ＢＭ１，ＢＭ２，ＢＭ３のいずれか一つを順に選択するとともに、選択したバッファメモリに書き込まれている８個（２×４画素分）の閾値を読み出して比較部４に与える。これにより、比較部４には、入力画像の各画素の階調値との比較に必要な所定数（本例では８個）の閾値が、選択回路５から順に供給される。したがって、比較部４においては、１つの入力画素の階調値がこれに対応する所定数の閾値と比較され、この比較結果が出力される。すなわち、比較部４では、入力画素の階調値よりも閾値が小さいマトリクス位置の画素は白（１）で出力され、入力画素の階調値よりも閾値が大きいマトリクス位置の画素は黒（０）で出力される。
【００５１】
図１２はディザ処理に係るモジュールの動作を示すタイミングチャートである。先ず、基準クロックCLKに同期してページシンクPS-In及びラインシンクLS-Inが順に立ち上がると、ラインシンクLS-Inの立ち上がりタイミングをトリガとして、入力画像の各画素の階調値データDATA-In［7:0］が１クロックCLKごとに入力される。このとき、クロックCLKに同期してサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３への閾値の書き込み信号を順に立ち上げることにより、閾値マトリクスの各行に配列された複数の閾値の中から、それぞれ８個ずつ閾値を読み出して対応するサブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３に順に書き込む。このサブメモリＳＭ０〜ＳＭ３への閾値の書き込みは４クロックCLKかけて行われる。
【００５２】
次いで、バッファメモリＢＭ０，ＢＭ１，ＢＭ２，ＢＭ３への閾値の書き込み信号を立ち上げることにより、サブメモリＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３に書き込まれた８×４画素分の閾値を、バッファメモリＢＭ０，ＢＭ１，ＢＭ２，ＢＭ３に同時に書き込む。続いて、バッファメモリＢＭ０，ＢＭ１，ＢＭ２，ＢＭ３に書き込まれた合計８×４画素分の閾値を、４クロックCLKかけて順に読み出すことにより、各々のバッファメモリＢＭ０，ＢＭ１，ＢＭ２，ＢＭ３に書き込まれた２×４画素の閾値を比較部４に順に与える。これにより、１クロックCLKごとに比較部４から出力画像の階調値データDATA-Out［7:0］が出力される。以後、入力画像の１ライン分の処理が終了するまで同様の処理を繰り返す。
【００５３】
このモジュール構成によれば、閾値マトリクスの各行に配列される閾値を、入力画像の各ラインを処理する際に複数の入力画素単位（本形態例では４つの入力画素単位）でメインメモリＭＭから読み出して複数のサブメモリＳＭ０〜ＳＭ３に書き込み、このサブメモリＳＭ０〜ＳＭ３に書き込んだ閾値を、１つの入力画素単位（出力画像で２×４画素分の閾値）で順に読み出して比較部４に付与するものとなっているため、サブメモリＳＭの必要容量を小さく抑えることができる。したがって、各々のサブメモリＳＭ０〜ＳＭ３をフリップフロップで構成することが可能となり、コスト的に有利になる。
【００５４】
なお、上記実施形態においては、ディザ処理によって２値の画像に変換する２値ディザ法を例に挙げて説明したが、本発明はこれに限らず、ディザ処理によって多値の画像に変換する多値ディザ法を適用することも可能である。
【００５５】
また、上記実施形態においては、１つの入力画素を複数の閾値と比較するものとしたが、本発明はこれに限らず、例えば入力画像をそれぞれ複数の入力画素を含むように複数のブロックに分割し、各々のブロックに含まれる複数の入力画素をこれに対応する複数の閾値と比較する場合にも適用可能である。
【００５６】
また、閾値格納用のメモリは、所要の記憶容量をもつものであれば、どのようなメモリ（例えば、汎用メモリ）を用いてもよい。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施形態に係る画像処理装置の構成例を示す概略図である。
【図２】入出力画像の解像度による画素サイズの違いを説明する図である。
【図３】ディザ処理に使用する閾値マトリクスの構成例を示す図である。
【図４】９×５の閾値マトリクスを用いたディザ処理の例を示す図である。
【図５】９×３の閾値マトリクスを用いたディザ処理の例を示す図である。
【図６】メインメモリに対する閾値の格納例を示す図である。
【図７】９×５の閾値マトリクスを使用して入力画像の１ライン目を処理する場合のサブメモリに対する閾値の書き込み例を示す図である。
【図８】９×５の閾値マトリクスを使用して入力画像の２ライン目を処理する場合のサブメモリに対する閾値の書き込み例を示す図である。
【図９】９×３の閾値マトリクスを使用して入力画像の１ライン目を処理する場合のサブメモリに対する閾値の書き込み例を示す図である。
【図１０】９×３の閾値マトリクスを使用して入力画像の２ライン目を処理する場合のサブメモリに対する閾値の書き込み例を示す図である。
【図１１】ディザ処理を行うモジュール内部の構成を示す図である。
【図１２】ディザ処理に係るモジュール動作を示すタイミングチャートである。
【図１３】従来の画像処理装置の構成例を示す概略図である。
【図１４】従来の閾値の格納方式を説明する図である。
【図１５】従来のディザ処理の流れを示すタイミングチャートである。
【図１６】マトリクスサイズと入力画素サイズの関係を説明する図である。
【符号の説明】
【００５８】
１…アドレス制御部、２…メモリインターフェース、３…閾値制御部、４…比較部、ＭＭ…メインメモリ、ＳＭ（ＳＭ０，ＳＭ１，ＳＭ２，ＳＭ３）…サブメモリ
【図１】
2005094404.tif 000003
【図２】
2005094404.tif 000004
【図３】
2005094404.tif 000005
【図４】
2005094404.tif 000006
【図５】
2005094404.tif 000007
【図６】
2005094404.tif 000008
【図７】
2005094404.tif 000009
【図８】
2005094404.tif 000010
【図９】
2005094404.tif 000011
【図１０】
2005094404.tif 000012
【図１１】
2005094404.tif 000013
【図１２】
2005094404.tif 000014
【図１３】
2005094404.tif 000015
【図１４】
2005094404.tif 000016
【図１５】
2005094404.tif 000017
【図１６】
2005094404.tif 000018