(57)【要約】【課題】入力画素の階調値と複数の閾値とを比較する場合でもリアルタイムにディザ処理を行うことができるとともに、ディザ処理に使用する閾値マトリクスの形状を任意に変更することができる画像処理装置を提供する。【解決手段】本発明の画像処理装置は、入力画像の各画素の階調値を、閾値マトリクスを用いたディザ処理により変換して出力するものであって、閾値マトリクスに配列される閾値を格納するためのメモリＭ，…を複数備えるとともに、各々のメモリＭ，…の１アドレスに複数の閾値を格納可能とし、かつ閾値マトリクスの各行の閾値をそれぞれ異なるメモリＭ，…に格納するものとした。【選択図】図１
2005064954.tif 000002
【特許請求の範囲】
【請求項１】
入力画像の各画素の階調値を、閾値マトリクスを用いたディザ処理により変換して出力する画像処理装置であって、
前記閾値マトリクスに配列される閾値を格納するためのメモリを複数備えるとともに、各々のメモリの１アドレスに複数の閾値を格納可能とし、かつ前記閾値マトリクスの各行の閾値をそれぞれ異なるメモリに格納してなる
ことを特徴とする画像処理装置。
【請求項２】
前記複数のメモリに対して、それぞれ閾値読み出し用のアドレスを個別に指定するアドレス制御手段を有する
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
入力画像の各画素の階調値とこれに対応する１つ又は複数の閾値とを比較する比較手段と、
前記アドレス制御手段からのアドレス指定によって各々のメモリから読み出された複数の閾値を取り込むとともに、この取り込んだ複数の閾値の中から前記比較手段での比較処理に用いられる閾値を選択し、この選択した閾値を前記比較手段に与える閾値制御手段と
を備えることを特徴とする請求項２記載の画像処理装置。
【請求項４】
入力画像の主走査方向の最低解像度をＮｘＬ(dpi)、出力画像の主走査方向の最高解像度をＭｘＨ(dpi)、前記閾値マトリクス内に配列される閾値の最大個数をＤ、前記閾値マトリクスの副走査方向に配列される閾値の最大個数をＣｙＨ、前記閾値のビット数をＥ(bit)とした場合に、
閾値格納用のメモリの個数をＣｙＨ、
各々のメモリのワード数を（Ｄ／ＣｙＨ）÷（ＭｘＨ／ＮｘＬ）、
各々のメモリの１ワードのビット数を（ＭｘＨ／ＮｘＬ）×Ｅに設定してなる
ことを特徴とする請求項１記載の画像処理装置。
【請求項５】
ディザ処理に用いる閾値マトリクスの副走査方向に配列される閾値の個数をＣｙとした場合に、
ＣｙＨ／Ｃｙ≦２の条件のときに、閾値マトリクスの各行の閾値を複数の組に分割し、この分割した各組の閾値をそれぞれ異なるメモリに分配して格納してなる
ことを特徴とする請求項４記載の画像処理装置。
【請求項６】
入力画像の副走査方向の解像度をＮｙ(dpi)、出力画像の副走査方向の解像度をＭｙ(dpi)、ディザ処理に用いる閾値マトリクスの副走査方向に配列される閾値の個数をＣｙとした場合に、
Ｃｙ＜（Ｍｙ／Ｎｙ）の条件のときに、閾値マトリクスの各行の閾値をそれぞれ異なるメモリに格納するとともに、複数の異なるメモリに対して閾値マトリクスの同じ行の閾値を格納してなる
ことを特徴とする請求項４記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、閾値マトリクスを用いてディザ処理を行う画像処理装置に関する。
【背景技術】
【０００２】
画像処理装置で行われる画像処理の一つの形態として、原画像の階調値を画像出力装置で出力（表現）可能な階調値に変換して擬似的に再現するディザ法が知られている。ディザ法では、原画像を構成する各画素の階調値を、閾値マトリクスに配列された閾値と比較することにより、出力画像の階調値を決定する。出力画像の階調値が２値となるものは２値ディザ法、多値となるものは多値ディザ法と呼ばれる。
【０００３】
図１０は従来の画像処理装置の構成例を示す概略図である。図において、アドレス制御部５１は、閾値格納用のメモリ５２に対して閾値読み出しのためのメモリアドレス（以下、単に「アドレス」と記す）を指定するものである。閾値格納メモリ５２は、ディザ処理に用いられる閾値マトリクスの各位置（マトリクス要素）に対応する閾値のデータを記憶するものである。比較部５３は、これに入力される入力画像データの各画素の階調値と、これに対応してメモリ５２から読み出された閾値とを比較するとともに、この比較結果に基づいて階調変換された出力画像データを生成するものである。
【０００４】
ここで、上記ディザ法に基づく処理（ディザ処理）で使用される閾値マトリクスが例えば図１１に示すように４×４のマトリクス構成（マトリクス内の閾値はTh00〜Th15の符号で識別）である場合は、この閾値マトリクス内に配列される閾値Th00〜Th15がメモリ５２に格納される。この場合、メモリ５２において、１つのアドレスに１つの閾値を格納することが公知となっている（例えば、特許文献１参照）。
【０００５】
そして、実際にディザ処理を行う場合は、図１２に示すように、所定の周波数のクロックに同期してアドレス制御部５１が０番地〜１５番地のアドレスを順に指定してメモリ５２から閾値(Th00〜Th15)を順次読み出すとともに、この読み出した閾値(Th00〜Th15)と入力画像の階調値(Vi00,Vi01，…)とを比較部５３で比較し、この比較結果に基づいて出力画像の階調値(Vo00,Vo01，…)を生成するものとなっている。これにより、代表的な２値ディザ法である組織的ディザ法では、例えば、原画像を４×４画素や８×８画素のブロックに分割し、各々のブロックごとに、入力画素の階調値がこれに対応するマトリクス位置の閾値よりも大きい場合は白（１）、小さい場合は黒（０）とすることによって入力画像を２値化する。
【０００６】
【特許文献１】特開平４−２０５６７５号公報（第４図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、入力画像の解像度（以下、「入力解像度」とも記す）と出力画像の解像度（以下、「出力解像度」とも記す）が同じ場合は、入力画素の数と出力画素の数が１：１の関係となる。そのため、ディザ処理を行う場合は、１つの入力画素を１つの閾値と比較することになる。したがって、上記クロックに同期してリアルタイムにディザ処理を行うことができる。
【０００８】
しかしながら、入力解像度よりも出力解像度が高い場合や、入力画像を複数の画素からなるブロック単位でディザ処理する場合などでは、比較部５３で入力画素の階調値と比較される閾値が複数必要になる。そうした場合、上記従来技術のように１つのアドレスに１つの閾値を格納する方式では、メモリ５２からの閾値の読み出し動作に合わせてリアルタイムにディザ処理を行うことができなくなる。
【０００９】
一例として、入力解像度が６００×６００(dpi)で、出力解像度が１２００×１２００(dpi)である場合は、低解像度から高解像度への変換となるために、１つの入力画素に対して４つの出力画素を生成することになる。そのため、図１６に示すように、入力画像の各画素の階調値をそれぞれ４つの閾値と比較する必要がある。そうした場合、上記従来の画像処理装置の構成では、クロックに同期したアドレス制御部５１からのアドレス指定により、４クロックかけてメモリ５２から読み出した４つの閾値を、比較部５３で１つの入力画素の階調値と比較することになる。そのため、メモリ５２からの閾値の読み出しに合わせてリアルタイムにディザ処理が行われず、トータルの処理時間が長くなってしまう。
【００１０】
この対策としては、メモリ５２に閾値を格納する場合に、１つのアドレスに複数の閾値をまとめて格納し、１つのアドレス指定で複数の閾値を読み出し可能とすることも考えられるが、その場合は装置の構成上、閾値マトリクスが固定（不変）の扱いとなる。一般にｍ×ｎの閾値マトリクスの形状（ｍ，ｎの値）は固定の扱いではなく、装置状態（印刷用の色材の付着度合いなど）の経時的な変化や、Ｙ（イエロー），Ｍ（マゼンタ），Ｃ（シアン），Ｋ（ブラック）の各色のスクリーン角度、シフト量等に応じて可変の扱いにする必要がある。また、汎用性の観点からしても、複数の入力解像度や出力解像度に対応して閾値マトリクスの形状、サイズ等を可変できるように装置を構成しておく必要がある。そのため実際の装置では、閾値マトリクスを固定の扱いにすることはできなかった。
【００１１】
本発明は、上記課題を解決するためになされたもので、その目的とするところは、入力画素の階調値と複数の閾値とを比較する場合でもリアルタイムにディザ処理を行うことができるとともに、ディザ処理に使用する閾値マトリクスの形状を任意に変更することができる画像処理装置を提供することにある。
【課題を解決するための手段】
【００１２】
本発明に係る画像処理装置は、入力画像の各画素の階調値を、閾値マトリクスを用いたディザ処理により変換して出力するものであって、閾値マトリクスに配列される閾値を格納するためのメモリを複数備えるとともに、各々のメモリの１アドレスに複数の閾値を格納可能とし、かつ閾値マトリクスの各行の閾値をそれぞれ異なるメモリに格納してなるものである。
【００１３】
この画像処理装置においては、閾値マトリクスに配列される閾値を複数のメモリに格納するとともに、各々のメモリの１アドレスに複数の閾値を格納することにより、１つのアドレスを指定するだけで、各々のメモリから複数の閾値が読み出されるようになる。したがって、１つの入力画素の階調値と複数の閾値とを比較する場合に、１回の読み出し動作によって、入力画素の階調値との比較に必要な複数の閾値をメモリから読み出すことが可能となる。また、閾値格納用のメモリの個数やこれに格納される閾値の個数に合わせて、閾値マトリクスの形状、サイズ等を任意に変更することが可能となる。さらに、閾値マトリクスの各行の閾値をそれぞれ異なるメモリに格納することにより、メモリごとに閾値の読み出しを個別に制御することが可能となる。
【発明の効果】
【００１４】
本発明の画像処理装置によれば、入力画素の階調値と複数の閾値とを比較する場合でも、１回の読み出し動作によって、入力画素の階調値との比較に必要な複数の閾値をメモリから読み出すことができる。そのため、メモリからの読み出し動作に合わせてリアルタイムにディザ処理を行うことが可能となる。また、閾値格納用のメモリの個数やこれに格納される閾値の個数に合わせて、閾値マトリクスの形状、サイズ等を任意に変更することができる。したがって、様々なディザ処理の条件等に応じて閾値マトリクスを可変の扱いにすることが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の具体的な実施の形態について図面を参照しつつ詳細に説明する。
【００１６】
図１は本発明の実施形態に係る画像処理装置の構成例を示す概略図である。図において、アドレス制御部１は、閾値を格納するために用意された複数のメモリＭ，…に対して、閾値読み出しのためのアドレス（メモリアドレス）を個別に指定するものである。閾値格納用のメモリＭ，…には、ディザ処理に用いられる閾値マトリクスの各行の閾値が格納される。さらに詳述すると、閾値マトリクスは、主走査方向に相当する列方向と副走査方向に相当する行方向にそれぞれ閾値を配列して構成されるものである。閾値マトリクスの形状及びサイズは、列方向に配列される閾値の数（個数）ｍと、行方向に配列される閾値の数（個数）ｎとによって決まる。そこで本実施形態においては、上記閾値マトリクスの配列の中で、列方向に一直線状に並ぶ各行の閾値（複数の閾値）をそれぞれ異なるメモリＭ，…に分けて格納することとした。
【００１７】
また、各々のメモリＭ，…は、それぞれ１つのアドレス（１ワード）に複数の閾値を格納できるように記憶領域（記憶場所）が区分されている。したがって、アドレス制御部１が各々のメモリＭ，…にアドレスを指定すると、この指定アドレスに記憶された複数の閾値が各々のメモリＭ，…から読み出されることになる。また、アドレス制御部１から各々のメモリＭ，…に同時にアドレスを指定すると、これにしたがって各々のメモリＭ，…から複数の閾値がほぼ同時に読み出されることになる。
【００１８】
一方、閾値制御部２は、各々のメモリＭ，…から１回又は２回にわたって読み出された複数の閾値を取り込むとともに、この取り込んだ複数の閾値の中から、その時々のディザ処理条件（スクリーン角度に応じたシフト量など）に合わせて、比較部３での比較処理に用いられる閾値を選択し、この選択した閾値を比較部３に与えるものである。比較部３は、これに入力される入力画像データの各画素の階調値と、これに対応して各々のメモリＭ，…から読み出され且つ閾値制御部２から与えられた閾値とを比較するとともに、この比較結果に基づいて階調変換された出力画像データを生成するものである。
【００１９】
上記構成からなる画像処理装置においては、閾値マトリクスに配列される閾値を複数のメモリＭ，…に格納するとともに、各々のメモリＭ，…の１アドレスに複数の閾値を格納可能としたので、例えば入力解像度よりも出力解像度が高い場合であっても、閾値格納用のメモリＭ，…の数や、各々のメモリＭ，…の１アドレスに格納される閾値の個数を適宜設定することにより、アドレス制御部１からのアドレスの指定によって各々のメモリＭ，…から複数の閾値を同時に読み出すことができる。さらに、この読み出した閾値を閾値制御部２から比較部３に与えることにより、１回（１クロックごと）の読み出し動作によって、入力画像の各画素の階調値をこれに対応する複数の閾値と比較させることができる。したがって、メモリＭ，…からの読み出し動作に合わせてリアルタイムのディザ処理を行うことが可能となる。また、閾値マトリクスの各行の閾値をそれぞれ異なるメモリＭ，…に格納するものとしたので、閾値マトリクスの行ごとに閾値の読み出しを個別に切り替え制御することができる。したがって、装置状態の経時的な変化や、ＹＭＣＫの各色のスクリーン角度に応じて閾値マトリクスの形状を任意に変更することが可能となる。
【００２０】
ここで本実施形態の画像処理装置においては、入力画像の主走査方向の最低解像度をＮｘＬ(dpi)、出力画像の主走査方向の最高解像度をＭｘＨ(dpi)、閾値マトリクス内に配列される閾値の最大個数をＤ、閾値マトリクスの副走査方向に配列される閾値の最大個数をＣｙＨ、閾値のビット数をＥ(bit)とした場合に、閾値格納用のメモリの個数をＣｙＨ、各々のメモリのワード数を（Ｄ／ＣｙＨ）÷（ＭｘＨ／ＮｘＬ）、各々のメモリの１ワードのビット数を（ＭｘＨ／ＮｘＬ）×Ｅに設定するものとする。このうち、最低解像度及び最高解像度とは、本発明の装置システムで想定している画像の解像度の最大値及び最小値をいう。また、閾値マトリクス内に配列される閾値の最大個数とは、閾値マトリクスを用いて擬似的に表現可能な最大の階調数をいう。よって、ＤとＣｙＨの値が決まれば、閾値マトリクスの主走査方向に配列される閾値の最大個数ＣｘＨが一義的に決まる。
【００２１】
このように閾値格納用のメモリを構成することにより、入出力画像の解像度がどのように変化した場合でも、ディザ処理に使用する閾値マトリクスが、システムで想定した最大のマトリクスサイズ（ＣｘＨ×ＣｙＨ）以下であれば、１つの入力画素の階調値と複数の閾値とを同時に比較する場合に、リアルタイムにディザ処理を行うことができるとともに、スクリーン角度、シフト量等に応じて閾値マトリクスの形状、サイズ等を任意に変更することができる。
【００２２】
具体例として、入力画像の主走査方向の最低解像度ＮｘＬ＝６００(dpi)、出力画像の主走査方向の最高解像度ＭｘＨ＝２４００(dpi)、閾値マトリクス内に配列される閾値の最大個数Ｄ＝１６３８４（＝２14）、閾値マトリクスの副走査方向に配列される閾値の最大個数ＣｙＨ＝３２（＝２5）、閾値のビット数Ｅ＝８(bit)であるとすると、閾値格納用のメモリの個数は３２、各々のメモリのワード数は１２８、各々のワードの１ワードのビット数は３２(bit)に設定される。この場合、閾値マトリクスの主走査方向に配列される閾値の最大個数はＣｘＨ＝Ｄ／ＣｙＨの計算式から１６３８４／３２＝５１２となる。
【００２３】
このようなメモリ構成を採用することにより、例えば図２に示すように、実際にディザ処理に使用する閾値マトリクスの形状が５１２（＝２9）×３２（＝２5）であった場合（マトリクス内の閾値はNo.1〜No.16384の連続番号で識別）は、合計３２個のメモリＭ１〜Ｍ３２に対して、閾値マトリクスの１行目に配列される５１２個の閾値（No.1〜No.512の閾値）をメモリＭ１に格納し、２行目に配列される５１２個の閾値（No.513〜No.1024の閾値）をメモリＭ２に格納する。以降、同様にして各々のメモリＭ３〜Ｍ３１に各行の閾値を格納し、最終行となる３２行目に配列される５１２個の閾値（No.15873〜No.16384の閾値）をメモリＭ３２に格納する。また、各々のメモリＭ１〜Ｍ３２においては、１アドレスに（ＭｘＨ／ＮｘＬ）個の閾値を格納可能となっていることから、例えば入力解像度が６００×６００(dpi)で、出力解像度が２４００×２４００(dpi)であれば、各々のメモリＭ１〜Ｍ３２の１アドレスにそれぞれ４つの閾値を格納する。
【００２４】
以上の点を実際の処理に当てはめて考えると次のようになる。先ず、ディザ処理に使用する閾値マトリクスの構成（Ｃｘ×Ｃｙ）を図３に示すように１６（主走査方向）×８（副走査方向）と仮定し、この閾値マトリクスに配列される各々の閾値に、マトリクスの左上から右下に向かってNo.1〜No.128の番号（連番）を順に割り当てる。これにより、閾値マトリクスの１行目にはNo.1〜No.16の閾値が、閾値マトリクスの２行目にはNo.17〜No.32の閾値が、閾値マトリクスの３行目にはNo.33〜No.48の閾値が、閾値マトリクスの４行目にはNo.49〜No.64の閾値が、それぞれ配列される。また、閾値マトリクスの５行目にはNo.65〜No.80の閾値が、閾値マトリクスの６行目にはNo.81〜No.96の閾値が、閾値マトリクスの７行目にはNo.97〜No.112の閾値が、閾値マトリクスの８行目にはNo.113〜No.128の閾値が、それぞれ配列される。
【００２５】
このような構成の閾値マトリクスに配列される合計１２８個の閾値（No.1〜No.128の閾値）を複数（最大３２個）のメモリＭ，…に格納する場合は、図４に示すように、マトリクスの１行目に配列されたNo.1〜No.16の閾値をメモリＭ１に、マトリクスの２行目に配列されたNo.17〜No.32の閾値をメモリＭ２に、マトリクスの３行目に配列されたNo.33〜No.48の閾値をメモリＭ３に、マトリクスの４行目に配列されたNo.49〜No.64の閾値をメモリＭ４に、それぞれ格納する。また、マトリクスの５行目に配列されたNo.65〜No.80の閾値をメモリＭ５に、マトリクスの６行目に配列されたNo.81〜No.96の閾値をメモリＭ６に、マトリクスの７行目に配列されたNo.97〜No.112の閾値をメモリＭ７に、マトリクスの７行目に配列されたNo.113〜No.128の閾値をメモリＭ８に、それぞれ格納する。
【００２６】
また、入力解像度が６００×６００(dpi)で、出力解像度が２４００×２４００(dpi)であった場合は（ＭｘＨ／ＮｘＬ）＝（２４００／６００）＝４となるため、これに対応して各々のメモリＭ１〜Ｍ８の１アドレスに４つの閾値を格納する。例えば、図５に示すように、メモリＭ１の場合は、アドレス０番地にNo.1〜No.4の閾値を、アドレス１番地にNo.5〜No.8の閾値を、アドレス２番地にNo.9〜No.12の閾値を、アドレス３番地にNo.13〜No.16の閾値を、それぞれ格納する。同様に、メモリＭ２の場合は、アドレス０番地にNo.17〜No.20の閾値を、アドレス１番地にNo.21〜No.24の閾値を、アドレス２番地にNo.25〜No.28の閾値を、アドレス３番地にNo.29〜No.32の閾値を、それぞれ格納する。以降、他のメモリＭ３〜Ｍ８の場合も同様に格納する。これにより、アドレス制御部１からの１回のアドレス指定で、例えばメモリＭ１から４つの閾値が読み出されることになる。また、アドレス制御部１から各々のメモリＭ１〜Ｍ８に個別にアドレスを指定することにより、１回の読み出し動作で、各々のメモリＭ１〜Ｍ８から合計３２（４×８）個の閾値を読み出すことが可能となる。
【００２７】
ただし、実際のディザ処理では、上述した入力解像度と出力解像度の関係から、入力画像の各々の画素（１つの入力画素）を４つの閾値と比較することになる。そうした場合、アドレス制御部１では、最初にメモリＭ１，Ｍ２，Ｍ３，Ｍ４にそれぞれアドレスを指定することにより、各々のメモリＭ１，Ｍ２，Ｍ３，Ｍ４から４つの閾値をそれぞれ読み出すようにする。このとき、各々のメモリＭ１〜Ｍ８のアドレスの割り当て方式を共通化しておくことにより、アドレス制御部１でアドレスを生成する際の処理（論理）を簡素化することができる。例えば、メモリＭ１のアドレス０番地にNo.1〜No.4の閾値を格納し、メモリＭ２のアドレス０番地にNo.17〜No.20の閾値を格納し、メモリＭ３のアドレス０番地にNo.33〜No.36の閾値を格納し、メモリＭ４のアドレス０番地にNo.49〜No.52の閾値を格納するものとすると、アドレス制御部１からは、各々のメモリＭ１，Ｍ２，Ｍ３，Ｍ４に同一のアドレスを指定するだけで、所望の閾値を読み出すことが可能となる。以後、各々のメモリＭ１〜Ｍ８には、それぞれ０番地〜３番地といった共通のアドレスが割り当てられているものとする。
【００２８】
こうして読み出された閾値は閾値制御部２に送られ、この閾値制御部２から比較部３へと与えられる。これにより、比較部３においては、最初に入力された入力画素の階調値と閾値制御部２から与えられた複数（合計１６個）の閾値とが比較される。そして、入力画素の階調値よりも閾値が小さいマトリクス位置の画素は白（１）で出力され、入力画素の階調値よりも閾値が大きいマトリクス位置の画素は黒（０）で出力される。次いで、アドレス制御部１では、メモリＭ１，Ｍ２，Ｍ３，Ｍ４にそれぞれアドレスを１つずらして指定することにより、各々のメモリＭ１，Ｍ２，Ｍ３，Ｍ４から４つの閾値をそれぞれ読み出すようにする。この場合、アドレスの指定順序は、０→１→２→３→０→１→…の順となる。こうしてアドレスの指定を順にずらしながら、上記同様の処理を繰り返すことにより、入力画像の１行目の入力画素（画素列）に対するディザ処理を終える。
【００２９】
その後、入力画像の２行目の入力画素に対する処理では、最初にメモリＭ５，Ｍ６，Ｍ７，Ｍ８にそれぞれアドレスを指定することにより、各々のメモリＭ５，Ｍ６，Ｍ７，Ｍ８から４つの閾値をそれぞれ読み出すようにする。以後、上記１行目の入力画素に対するディザ処理と同様の手順にしたがって、２行目の入力画素に対するディザ処理を終える。
【００３０】
続いて、入力画像の３行目の入力画素に対する処理では、最初の閾値の読み出し方法（アドレスの指定方法）が閾値マトリクスのシフト量に応じて変わる。閾値マトリクスのシフト量は、スクリーン角度等に応じて適宜設定されるもので、主走査方向でのマトリクス位置のずれ量をずれの方向性とともに表す。例えば、閾値マトリクスのシフト量が「右方向に１」と設定されていた場合は、図６に示すように、入力画像の３行目の入力画素で且つ一番最初に入力される画素を、メモリＭ１に格納されているNo.16，No.1，No.2，No.3の閾値と、メモリＭ２に格納されているNo.32，No.17，No.18，No.19の閾値と、メモリＭ３に格納されているNo.48，No.33，No.34，No.35の閾値と、メモリＭ４に格納されているNo.64，No.49，No.50，No.51の閾値と、比較する必要がある。
【００３１】
そのため、アドレス制御部１では、先ず、メモリＭ１，Ｍ２，Ｍ３，Ｍ４にそれぞれアドレス３番地を指定することにより、各々のメモリＭ１，Ｍ２，Ｍ３，Ｍ４から４つの閾値をそれぞれ読み出すようにする。これにより、１６×８の閾値マトリクスの各行の最後尾に配列されたNo.16，No.32，No.48，No.64の閾値を含む合計１６個の閾値が読み出される。次いで、アドレス制御部１では、メモリＭ１，Ｍ２，Ｍ３，Ｍ４にそれぞれアドレス０番地を指定することにより、各々のメモリＭ１，Ｍ２，Ｍ３，Ｍ４から４つの閾値をそれぞれ読み出すようにする。これにより、３行目の最初（１番目）に入力される画素と比較される１６個の閾値、すなわちNo.16，No.1〜No.3，No.32，No.17〜No.19，No.48，No.33〜No.35、No.64，No.49〜No.51の閾値が揃うため、この時点で、入力画素との比較に必要な１６個の閾値を閾値制御部２で選択して比較部３に与え、１番目の入力画素の階調値とこれに対応する１６個の閾値の比較を比較部３で行う。
【００３２】
次に、アドレス制御部１では、メモリＭ１，Ｍ２，Ｍ３，Ｍ４にそれぞれアドレス２番地を指定することにより、各々のメモリＭ１，Ｍ２，Ｍ３，Ｍ４から４つの閾値をそれぞれ読み出すようにする。この場合は、前回の読み出しによって得られたNo.4，No.20，No.36，No.52の閾値と今回の読み出しによって得られた１６個の閾値の中から、入力画素との比較に必要な１６個の閾値、すなわちNo.4〜No.7，No.20〜No.23，No.36〜No.39，No.52〜No.55の画素を閾値制御部２で選択して比較部３に与え、２番目の入力画素の階調値とこれに対応する１６個の閾値の比較を比較部３で行う。以後、３番目以降の入力画素についても同様の処理を繰り返すことにより、３行目の入力画素に対するディザ処理を終える。
【００３３】
続いて、アドレス制御部１では、メモリＭ５，Ｍ６，Ｍ７，Ｍ８にそれぞれアドレス３番地を指定することにより、各々のメモリＭ５，Ｍ６，Ｍ７，Ｍ８から４つの閾値をそれぞれ読み出すようにする。これにより、１６×８の閾値マトリクスの各行の最後尾に配列されたNo.80，No.96，No.112，No.128の閾値を含む合計１６個の閾値が読み出される。次いで、アドレス制御部１では、メモリＭ５，Ｍ６，Ｍ７，Ｍ８にそれぞれアドレス０番地を指定することにより、各々のメモリＭ５，Ｍ６，Ｍ７，Ｍ８から４つの閾値をそれぞれ読み出すようにする。これにより、４行目の最初（１番目）に入力される画素と比較される１６個の閾値、すなわちNo.80，No.65〜No.67，No.96，No.81〜No.83，No.112，No.97〜No.99、No.128，No.113〜No.115の閾値が揃うため、この時点で、入力画素との比較に必要な１６個の閾値を閾値制御部２で選択して比較部３に与え、１番目の入力画素の階調値とこれに対応する１６個の閾値の比較を比較部３で行う。
【００３４】
次に、アドレス制御部１では、メモリＭ５，Ｍ６，Ｍ７，Ｍ８にそれぞれアドレス２番地を指定することにより、各々のメモリＭ５，Ｍ６，Ｍ７，Ｍ８から４つの閾値をそれぞれ読み出すようにする。この場合は、前回の読み出しによって得られたNo.68，No.84，No.100，No.116の閾値と今回の読み出しによって得られた１６個の閾値の中から、入力画素との比較に必要な１６個の閾値、すなわちNo.68〜No.71，No.84〜No.87，No.100〜No.103，No.116〜No.119の画素を閾値制御部２で選択して比較部３に与え、２番目の入力画素の階調値とこれに対応する１６個の閾値の比較を比較部３で行う。以後、３番目以降の入力画素についても同様の処理を繰り返すことにより、４行目の入力画素に対するディザ処理を終える。ちなみに、入力画像の５行目以降に入力画素に対するディザ処理は、基本的に上記同様の処理の繰り返しとなるため、詳しい説明は省略する。
【００３５】
このように本発明の実施形態に係る画像処理装置では、閾値マトリクスを用いてディザ処理を行う場合に、１つの入力画素につき、１回のアドレス指定で１６個の閾値が読み出されるため、入出力画像の解像度変換に応じた４×４画素の出力が得られる。したがって、各々のメモリからの閾値の読み出しに同期して、リアルタイムにディザ処理を行うことができる。また、ディザ処理に使用する閾値マトリクスの形状、サイズ等が変更になる場合はメモリＭ，…の使用個数や、これに格納される閾値の個数を変更するだけで対応可能となる。さらに、入力解像度が６００(dpi)から１２００(dpi)に変更になる場合には、各々のメモリＭ，…の１アドレスに格納する閾値の個数を減らす（半減させる）ことで対応可能となる。
【００３６】
ところで、閾値格納用のメモリの個数を、閾値マトリクスの副走査方向の最大値であるＣｙＨに設定した場合、実際のディザ処理に使用する閾値マトリクスの副走査方向の値ＣｙがＣｙＨよりも小さいと、実質的にデータ（閾値）が格納されない、いわゆる空のメモリが幾つか存在することになる。そこで、この空のメモリを有効に利用すれば、閾値マトリクスの主走査方向に配列される閾値の最大個数ＣｘＨを拡大することができる。
【００３７】
例えば、閾値マトリクスの副走査方向に配列される閾値の最大個数がＣｙＨ＝３２の場合は、メモリの個数が３２個に設定される。このとき、実際のディザ処理において、閾値マトリクスの副走査方向に配列される閾値の個数がＣｙ＝１６の条件では、３２個のメモリを用いて、１０２４×１６のマトリクスサイズの閾値を格納することができる。つまり、先述の実施形態と比較して、閾値マトリクスの主走査方向に配列される閾値の最大個数を５１２（＝２9）から１０２４（＝２10）に拡大することができる。
【００３８】
具体的には、図７に示すように、１０２４×１６の閾値マトリクス（マトリクス内の閾値はNo.1〜No.16384の連続番号で識別）において、例えば、１行目の左半分に配列される５１２個の閾値（No.1〜No.512の閾値）を第１の組としてメモリＭ１に格納し、１行目の右半分に配列される５１２個の閾値（No.513〜No.1024の閾値）を第２の組としてメモリＭ２に格納する。つまり、閾値マトリクスの１行目に配列される１０２４個の閾値を２つの組に分割し、この分割した各々の組の閾値をそれぞれ異なるメモリＭ１，Ｍ２に格納する。以降、同様にして各々のメモリＭ，…に各行の閾値を格納し、最終行となる１６行目の左半分に配列される５１２個の閾値（No.15361〜No.15872の閾値）をメモリＭ３１に格納し、１６行目の右半分に配列される５１２個の閾値（No.15873〜No.16384の閾値）をメモリＭ３２に格納する。この場合、各々のメモリＭ１〜Ｍ３２の１アドレスに格納される閾値の個数は、先述の実施形態と同様に規定される。
【００３９】
このように閾値マトリクスの副走査方向に配列される閾値の最大個数ＣｙＨに対して、実際のディザ処理に使用される閾値マトリクスの副走査方向に配列される閾値の個数Ｃｙが１／２と小さい場合（ＣｙＨ／Ｃｙ＝２の場合）は、閾値マトリクスの各行の閾値を複数の組に分割し、この分割した各組の閾値をそれぞれ異なるメモリＭ１〜Ｍ３２に分配して格納することにより、装置構成を変更したりメモリの個数を増やしたりしなくても、閾値マトリクスの主走査方向に配列される閾値の最大個数ＣｘＨを拡大することができる。したがって、ディザ処理に使用する閾値マトリクスの形状（Ｃｘ、Ｃｙの値）を、よりフレキシブルに変更することが可能となる。この点は、閾値マトリクスの副走査方向に配列される閾値の最大個数ＣｙＨに対して、実際のディザ処理に使用される閾値マトリクスの副走査方向に配列される閾値の個数Ｃｙが１／４、１／８、１／１６又は１／３２となる場合（ＣｙＨ／Ｃｙ＞２の場合）でも同様である。ちなみに、ＣｙＨ／ＣＹ＝４のときはＣｘＨ＝２０４８、ＣｙＨ／ＣＹ＝８のときはＣｘＨ＝４０９６、ＣｙＨ／ＣＹ＝１６のときはＣｘＨ＝８１９２、ＣｙＨ／Ｃｙ＝３２のときはＣｘＨ＝１６３８４となる。
【００４０】
また、入力画像の副走査方向の解像度をＮｙ(dpi)、出力画像の副走査方向の解像度をＭｙ(dpi)、ディザ処理に用いる閾値マトリクスの副走査方向に配列される閾値の個数をＣｙとした場合に、Ｃｙ≧（Ｍｙ／Ｎｙ）の条件では、上記実施形態の場合と同様に閾値マトリクスの各行の閾値をそれぞれ異なるメモリに格納することにより、シフト量を指定した様々なディザ処理に適切に対応することが可能である。具体的には、例えば図８に示すようにＣｘ×Ｃｙ＝８×８のマトリクス構成（マトリクス内の閾値はNo.1〜No.64の番号で識別）で、Ｍｘ／Ｍｙ＝４、Ｍｙ／Ｎｙ＝４のときの条件を考えた場合、１つの入力画素と比較される画素サイズ（４×４画素）に含まれる閾値は、８×８の閾値マトリクスの中でそれぞれ異なる行に配列されたものとなる。したがって、８×８の閾値マトリクスに配列される各行の閾値をそれぞれ異なるメモリＭ１〜Ｍ８に格納しておけば、シフト量がどのように指定されたディザ処理であっても適切に対応することが可能となる。
【００４１】
これに対して、Ｃｙ＜（Ｍｙ／Ｎｙ）の条件のときは、上記同様に閾値マトリクスの各行の閾値をそれぞれ異なるメモリに格納しただけでは、シフト量を指定した様々なディザ処理に適切に対応することができない。具体的には、例えば図９に示すようにＣｘ×Ｃｙ＝８×２のマトリクス構成（マトリクス内の閾値はNo.1〜No.16の番号で識別）で、Ｍｘ／Ｍｙ＝４、Ｍｙ／Ｎｙ＝４のときの条件を考えた場合、１つの入力画素と比較される画素サイズ（４×４画素）に含まれる閾値は、８×２の閾値マトリクスの中で共通の行に配列されたものとなる。したがって、単に８×２の閾値マトリクスの各行の閾値をそれぞれ異なるメモリＭ１，Ｍ２に格納しただけでは、シフト量を指定したディザ処理に適切に対応できなくなる。すなわち、８×２の閾値マトリクスの各行の閾値をそれぞれメモリＭ１，Ｍ２に格納すると、例えば図示のように閾値マトリクスのシフト量が「右方向に２」と指定された場合に、１つの入力画素と比較される１６個の閾値が、それぞれメモリＭ１，Ｍ２の記憶領域で２つのアドレスに跨って格納されたものとなる。したがって、１つの入力画素につき、各々のメモリＭ１，Ｍ２から２回にわたって閾値を読み出す必要がある。
【００４２】
このような場合は、閾値マトリクスの各行の閾値をそれぞれ異なるメモリに格納するとともに、複数の異なるメモリに対して閾値マトリクスの同じ行の閾値を格納することで適切に対応することが可能となる。例えば、上述のように８×２の閾値マトリクスの場合は、マトリクスの１行目に配列されるNo.1〜No.8の閾値をメモリＭ１とメモリＭ３にそれぞれ格納し、マトリクスの２行目に配列されるNo.9〜No.16の閾値をメモリＭ２とメモリＭ４にそれぞれ格納する。これにより、メモリＭ１，Ｍ３に格納される閾値は互いに共通のものとなり、メモリＭ２，Ｍ４に格納される閾値も互いに共通のものとなる。
【００４３】
このように閾値を格納することにより、例えば図示のように閾値マトリクスのシフト量が「右方向に２」と指定されていた場合や、これ以外の条件でシフト量が指定されていた場合でも、同じ閾値を格納する複数のメモリが存在することから、各々のメモリに対してアドレス制御部１から個別にアドレスを指定することにより、１つの入力画素と比較される１６個の閾値を、１回の読み出し動作でメモリＭ１，Ｍ２，Ｍ３，Ｍ４から読み出すことができる。したがって、シフト量を指定した様々なディザ処理に適切に対応することが可能となる。
【００４４】
なお、上記実施形態においては、ディザ処理によって２値の画像に変換する２値ディザ法を例に挙げて説明したが、本発明はこれに限らず、ディザ処理によって多値の画像に変換する多値ディザ法を適用することも可能である。
【００４５】
また、上記実施形態においては、１つの入力画素を複数の閾値と比較するものとしたが、本発明はこれに限らず、例えば入力画像をそれぞれ複数の入力画素を含むように複数のブロックに分割し、各々のブロックに含まれる複数の入力画素をこれに対応する複数の閾値と比較する場合にも適用可能である。
【００４６】
また、閾値格納用のメモリは、所要の記憶容量をもつものであれば、どのようなメモリ（例えば、汎用メモリ）を用いてもよい。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施形態に係る画像処理装置の構成例を示す概略図である。
【図２】本発明の実施形態に係る閾値マトリクスの構成例と閾値の格納方式を説明する図（その１）である。
【図３】ディザ処理に使用する閾値マトリクスの構成例を示す図である。
【図４】図３に示すマトリクス構成に対応した閾値の格納方式を説明する図である。
【図５】各々のメモリに対する閾値格納方式を説明する図である。
【図６】図３に示す閾値マトリクスを使用して入力画像をディザ処理するときの概念図である。
【図７】本発明の実施形態に係る閾値マトリクスの構成例と閾値の格納方式を説明する図（その２）である。
【図８】入力画素サイズと閾値マトリクスサイズの関係に対応した閾値の格納方式を説明する図（その１）である。
【図９】入力画素サイズと閾値マトリクスサイズの関係に対応した閾値の格納方式を説明する図（その２）である。
【図１０】従来の画像処理装置の構成例を示す概略図である。
【図１１】従来の閾値の格納方式を説明する図である。
【図１２】従来のディザ処理の流れを示すタイミングチャートである。
【図１３】マトリクスサイズと入力画素サイズの関係を説明する図である。
【符号の説明】
【００４８】
１…アドレス制御部、２…閾値制御部、３…比較部、Ｍ（Ｍ１〜Ｍ３２）…メモリ
【図１】
2005064954.tif 000003
【図２】
2005064954.tif 000004
【図３】
2005064954.tif 000005
【図４】
2005064954.tif 000006
【図５】
2005064954.tif 000007
【図６】
2005064954.tif 000008
【図７】
2005064954.tif 000009
【図８】
2005064954.tif 000010
【図９】
2005064954.tif 000011
【図１０】
2005064954.tif 000012
【図１１】
2005064954.tif 000013
【図１２】
2005064954.tif 000014
【図１３】
2005064954.tif 000015