(57)【要約】【課題】アドレス生成の論理を複雑化することなく、ディザ処理を効率良く行うことができる画像処理装置を提供する。【解決手段】入力画像の各画素の階調値を閾値マトリクスを用いたディザ処理により変換して出力する画像処理装置の構成として、閾値マトリクスに配列される閾値データを格納するとともに、メモリ空間上の１ワード分のメモリ領域に複数（マトリクス番号１〜３６）の閾値データを格納可能な閾値格納メモリと、この閾値格納メモリに格納された閾値データを読み出すためのアドレスを生成するアドレス制御部とを備え、閾値マトリクスの各行の最前列に配置される閾値データ（マトリクス番号１，１０，１９，２８の閾値データ）を閾値格納メモリのメモリ空間上のワードバウンダリに合わせて格納するものとする。【選択図】図３
2005079741.tif 000002
【特許請求の範囲】
【請求項１】
入力画像の各画素の階調値を閾値マトリクスを用いたディザ処理により変換して出力する画像処理装置であって、
前記閾値マトリクスに配列される閾値データを格納するとともに、メモリ空間上の１ワード分のメモリ領域に複数の閾値データを格納可能な閾値格納メモリと、
前記閾値格納メモリに格納された閾値データを読み出すためのアドレスを生成するアドレス生成手段とを備え、
前記閾値マトリクスの各行の最前列に配置される閾値データを前記閾値格納メモリのメモリ空間上のワードバウンダリに合わせて格納してなる
ことを特徴とする画像処理装置。
【請求項２】
入力画像の各画素の階調値を閾値マトリクスを用いたディザ処理により変換して出力する画像処理装置であって、
前記閾値マトリクスに配列される閾値データを格納するとともに、メモリ空間上の１ワード分のメモリ領域に複数の閾値データを格納可能な閾値格納メモリと、
前記閾値格納メモリに格納された閾値データを読み出すためのアドレスを生成するアドレス生成手段とを備え、
前記閾値格納メモリのメモリ空間を複数ワード分のメモリ領域を１つのアドレスで指定するように複数のアドレス領域に区分するとともに、前記閾値マトリクスの各行の最前列に配置される閾値データを前記閾値格納メモリのメモリ空間上のアドレスバウンダリに合わせて格納してなる
ことを特徴とする画像処理装置。
【請求項３】
前記メモリ空間上の１ワード分のメモリ領域に、前記入力画像の１つの画素サイズに対応する主走査方向の出力画素数分の閾値データを格納可能としてなる
ことを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
前記閾値格納メモリのメモリ空間上で前記閾値マトリクスの各行の最後列に配置される閾値データが格納される所定のメモリ領域に、当該最後列に配置される閾値データと、これと同じ行の最前列からの閾値データとを続けて格納してなる
ことを特徴とする請求項１又は２記載の画像処理装置。
【請求項５】
前記閾値マトリクスの１行分の閾値データを１つのアドレス領域に格納し得る大きさで、前記閾値格納メモリのメモリ空間を複数のアドレス領域に区分してなる
ことを特徴とする請求項２記載の画像処理装置。
【請求項６】
前記閾値マトリクスの構成に応じて前記アドレスバウンダリの位置を変更可能としてなる
ことを特徴とする請求項２記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、閾値マトリクスを用いてディザ処理を行う画像処理装置に関する。
【背景技術】
【０００２】
画像処理装置で行われる画像処理の一つの形態として、原画像の階調値を画像出力装置で出力（表現）可能な階調値に変換して擬似的に再現するディザ法が知られている。ディザ法では、原画像を構成する各画素の階調値を、閾値マトリクスに配列された閾値データと比較することにより、出力画像の階調値を決定する。出力画像の階調値が２値となるものは２値ディザ法、多値となるものは多値ディザ法と呼ばれる。
【０００３】
図１０は従来の画像処理装置の構成例を示す概略図である。図において、アドレス制御部５１は、閾値格納用の閾値格納メモリ５２に対して閾値読み出しのためのメモリアドレス（以下、単に「アドレス」とも記す）を指定するものである。閾値格納メモリ５２は、ディザ処理に用いられる閾値マトリクスの各位置（マトリクス要素）に対応する閾値データを記憶するものである。比較部５３は、これに入力される入力画像データの各画素の階調値と、これに対応して閾値格納メモリ５２から読み出された閾値データとを比較するとともに、この比較結果に基づいて階調変換された出力画像の画素データを生成するものである。
【０００４】
ここで、上記ディザ法に基づく処理（ディザ処理）で使用される閾値マトリクスが例えば図１１に示すように４×４のマトリクス構成（マトリクス内の閾値はTh00〜Th15の符号で識別）である場合は、この閾値マトリクス内に配列される閾値データTh00〜Th15が閾値格納メモリ５２に格納される。この場合、閾値格納メモリ５２において、１つのアドレスに１つの閾値データを格納することが公知となっている（例えば、特許文献１参照）。
【０００５】
そして、実際にディザ処理を行う場合は、図１２に示すように、所定の周波数のクロックに同期してアドレス制御部５１が０番地〜１５番地のアドレスを順に指定して閾値格納メモリ５２から閾値データ(Th00〜Th15)を順次読み出すとともに、この読み出した閾値データ(Th00〜Th15)と入力画像の階調値(Vi00,Vi01，…)とを比較部５３で比較し、この比較結果に基づいて出力画像の階調値(Vo00,Vo01，…)を生成するものとなっている。これにより、代表的な２値ディザ法である組織的ディザ法では、例えば、原画像を４×４画素や８×８画素のブロックに分割し、各々のブロックごとに、入力画素の階調値がこれに対応するマトリクス位置の閾値データよりも大きい場合は白（１）、小さい場合は黒（０）とすることによって入力画像を２値化する。
【０００６】
【特許文献１】特開平４−２０５６７５号公報（第４図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、入力画像の解像度（以下、「入力解像度」とも記す）と出力画像の解像度（以下、「出力解像度」とも記す）が同じ場合は、入力画素の数と出力画素の数が１：１の関係となるが、入力解像度よりも出力解像度が高い場合や、入力画像を複数の画素からなるブロック単位でディザ処理する場合などでは、比較部５３で入力画素の階調値と比較される閾値データが複数必要になる。そうした場合、上記従来技術のように１ワード分のメモリ領域に１つの閾値データを格納し、アドレス制御部５１から指定されたアドレスにしたがって閾値格納メモリ５２から１つずつ閾値データを読み出す方式では、１つの入力画素を処理するごとに、閾値格納メモリ５２からの閾値データの読み出しを何度も繰り返す必要があるため、ディザ処理を効率良く行うことができなくなる。
【０００８】
一例として、画像の解像度を主走査方向（横方向）の単位長さ当たりの画素数(dpi：ドット／インチ)と副走査方向（縦方向）の単位長さ当たりの画素数(dpi)で表すものとすると、入力解像度が６００×６００(dpi)で、出力解像度が１２００×１２００(dpi)である場合は、低解像度から高解像度への変換となるために、１つの入力画素に対して４つの出力画素を生成することになる。そのため、図１３に示すように、入力画像の各画素の階調値をそれぞれ４つの閾値データと比較する必要がある。そうした場合、上記従来の画像処理装置の構成では、クロックに同期したアドレス制御部５１からのアドレス指定により、４クロックかけて閾値格納メモリ５２から読み出した４つの閾値データを、比較部５３で１つの入力画素の階調値と比較することになる。そのため、閾値格納メモリ５２からの閾値データの読み出しに時間がかかり、トータルの処理時間が長くなってしまう。
【０００９】
この対策としては、閾値格納メモリ５２に閾値データを格納する場合に、１つのアドレスに複数の閾値データをまとめて格納し、１つのアドレス指定で複数の閾値データを同時に読み出し可能とすることも考えられるが、その場合はアドレス制御部５１でアドレスを生成する際の論理が複雑化するなどの問題を招いてしまう。
【００１０】
本発明は、上記課題を解決するためになされたもので、その目的とするところは、アドレス生成の論理を複雑化することなく、ディザ処理を効率良く行うことができる画像処理装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明に係る画像処理装置は、入力画像の各画素の階調値を閾値マトリクスを用いたディザ処理により変換して出力する画像処理装置であって、閾値マトリクスに配列される閾値データを格納するとともに、メモリ空間上の１ワード分のメモリ領域に複数の閾値データを格納可能な閾値格納メモリと、この閾値格納メモリに格納された閾値データを読み出すためのアドレスを生成するアドレス生成手段とを備え、閾値マトリクスの各行の最前列に配置される閾値データを閾値格納メモリのメモリ空間上のワードバウンダリに合わせて格納してなるものである。
【００１２】
本発明に係る画像処理装置においては、閾値格納メモリのメモリ空間上で１ワード分のメモリ領域に複数の閾値データを格納することにより、１つのアドレスの指定（１回の読み出し動作）で複数の閾値データが同時に読み出されるようになる。また、閾値マトリクスの各行の最前列に配置される閾値データを閾値格納メモリのメモリ空間上のワードバウンダリに合わせて格納することにより、アドレス生成手段でアドレスを生成する際の論理が簡略化される。
【発明の効果】
【００１３】
本発明の画像処理装置によれば、閾値格納メモリのメモリ空間上で１ワード分のメモリ領域に複数の閾値データを格納可能とし、かつ閾値マトリクスの各行の最前列に配置される閾値データを閾値格納メモリのメモリ空間上のワードバウンダリに合わせて格納することにより、アドレス生成の論理を簡素化したうえで、ディザ処理を効率良く行うことができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の具体的な実施の形態について図面を参照しつつ詳細に説明する。
【００１５】
図１は本発明の実施形態に係る画像処理装置の構成例を示す概略図である。図示した画像処理装置は、入力画像の各画素の階調値を閾値マトリクスを用いたディザ処理により変換して出力するもので、アドレス制御部１と、閾値格納メモリ２と、閾値制御部３と、比較部４とを備えて構成されている。
【００１６】
アドレス制御部１は、その時々のディザ処理条件に応じて、閾値格納メモリ２から閾値データを読み出すためのアドレス（メモリアドレス）を生成し、このアドレスを閾値格納メモリ２に供給するものである。ディザ処理条件の中には、入力画像データの解像度や出力画像データの解像度などの解像度条件、入力画像データの階調数（データビット数）や出力画像データの階調数などの階調条件、ディザ処理に使用する閾値マトリクスの構成条件、シフト処理条件などが含まれる。
【００１７】
閾値格納メモリ２は、ディザ処理に用いられる閾値マトリクスに配列される全ての閾値データを格納するものである。さらに詳述すると、閾値マトリクスは、主走査方向に相当する列方向（水平方向）と副走査方向に相当する行方向（垂直方向）にそれぞれ閾値データを配列して構成されるもので、このマトリクス内に配列される全ての閾値データが閾値格納メモリ２に格納されるものとなっている。
【００１８】
閾値制御部３は、アドレス制御部１からのアドレスの指定（生成・出力）によって閾値格納メモリ２から読み出された複数の閾値データの中から、比較部４での比較処理に用いられる所定数の閾値データを選択し、この選択した閾値データを比較部４に付与（出力）するものである。比較部４は、これに入力された画像データの各画素（入力画素）の階調値を、閾値制御部３から与えられた所定数の閾値データと比較し、この比較結果に基づいて階調変換された出力画像データを生成するものである。
【００１９】
ここで、上記閾値格納メモリ２は、そのメモリ空間上の１ワード分のメモリ領域に複数の閾値データを格納可能な構成となっている。さらに詳述すると、閾値格納メモリ２の１ワード分のメモリ領域には、入力画像の１つの画素サイズに対応する主走査方向の出力画素数分の閾値データを格納可能となっている。入力画像の１つの画素サイズに対応する主走査方向の出力画素数は、主走査方向の入力解像度と主走査方向の出力解像度の関係によって決まる。例えば、入力画像の１つの画素サイズに対応する主走査方向の出力画素数をＭＸ、主走査方向の入力解像度をＭix＝６００dpi、主走査方向の出力解像度をＭox＝１２００dpiとすると、ＭＸ＝Ｍox／Ｍix＝１２００dpi／６００dpi＝２となる。
【００２０】
また、閾値格納メモリ２における閾値データの格納形態として、ディザ処理に用いられる閾値マトリクスの各行の最前列に配置される閾値データを閾値格納メモリ２のメモリ空間上のワードバウンダリに合わせて格納する形態を採用している。具体例として、ディザ処理に用いられる閾値マトリクスの構成が、図２に示すように、主走査方向（横方向）に９列、副走査方向（縦方向）に４行の、９×４のマトリクス構成である場合を考える。このとき、閾値マトリクス内に配列される各々の閾値データを一意に特定（識別）するためのアドレス情報として、各々の閾値データに１〜３６のマトリクス番号を順に割り当てるものとする。また、１つの閾値データのビット数を８ビットとし、この閾値データを３２ビット×１６ワードのメモリ構成をもつ閾値格納メモリ２に格納するものとする。
【００２１】
そうした場合、閾値格納メモリ２の１ワード分のメモリ領域（３２ビット幅）には４つの閾値データを格納可能となる。そのため、上記図２に示す閾値マトリクス（９×４のマトリクス）内の３６個の閾値データは、各行の最前列に配置される閾値データをワードバウンダリに合わせるようにして図３に示すように閾値格納メモリ２に格納される。ワードバウンダリとは、メモリのワード線（ＲＯＷ）ごとに区分されるワード単位の境界部分をいう。したがって、上述した３２ビット×１６ワードのメモリ構成において、各々のワードに０から順にアドレスを割り当てるものとすると、アドレス０で指定されるワードの先頭部分と、互いに連続する２つのアドレス（例えば、アドレス０とアドレス１）で指定される２つのワードの境界部分がそれぞれワードバウンダリとなる。そのため、１６ワードのメモリ構成の場合は、合計で１６個のワードバウンダリが存在することになる。
【００２２】
具体的に、３２ビット×１６ワードのメモリ構成をもつ閾値格納メモリ２に対しては、アドレス０で指定される１ワードのメモリ領域に、閾値マトリクスの１行目の最前列から４つ（マトリクス番号１〜４）の閾値データを続けて格納し、アドレス１で指定される１ワードのメモリ領域には、閾値マトリクスの１行目のマトリクス番号５から始まる４つ（マトリクス番号５〜８）の閾値データを続けて格納する。また、アドレス２で指定される１ワードのメモリ領域（所定のメモリ領域）には、閾値マトリクスの１行目の最後列（マトリクス番号９）の閾値データと、これと同じ行（閾値マトリクスの１行目）の最前列（マトリクス番号１）からの閾値データとを続けて格納する。これにより、閾値マトリクスの１行目に配列される９個（マトリクス番号１〜９）の閾値データが、アドレス０〜２で指定される３つのワード分のメモリ領域に格納される。
【００２３】
これに対して、閾値マトリクスの２行目に配列される９つ（マトリクス番号１０〜１８）の閾値データは、アドレス２で指定されるワードとアドレス３で指定されるワードの境界となるワードバウンダリに最前列（マトリクス番号１０）の閾値データが位置するようにして、アドレス３〜５で指定される３つのワード分のメモリ領域に詰めて格納される。すなわち、アドレス３で指定される１ワードのメモリ領域には、閾値マトリクスの２行目の最前列から４つ（マトリクス番号１０〜１３）の閾値データを続けて格納し、アドレス４で指定される１ワードのメモリ領域に、閾値マトリクスの１行目のマトリクス番号１４から始まる４つ（マトリクス番号１４〜１７）の閾値データを続けて格納する。さらに、アドレス５で指定される１ワードのメモリ領域（所定のメモリ領域）には、閾値マトリクスの２行目の最後列（マトリクス番号１８）の閾値データと、これと同じ行（閾値マトリクスの２行目）の最前列（マトリクス番号１０）からの閾値データとを続けて格納する。
【００２４】
このようなデータ格納形態を閾値格納メモリ２のアドレス６〜８及びアドレス９〜１１においても、それぞれ同様に適用することにより、アドレス６〜８で指定される３つのワード分のメモリ領域に閾値マトリクスの３行目に配列される９個（マトリクス番号１９〜２７）の閾値データを格納するとともに、アドレス９〜１１で指定される３つのワード分のメモリ領域に閾値マトリクスの４行目（最終行）に配列される９個（マトリクス番号２８〜３６）の閾値データを格納する。これにより、閾値マトリクス内で主走査方向の同じ列に配置される各行の閾値データが、閾値格納メモリ２のメモリ空間上で各ワードの同じビット列上に位置するように格納された状態となる。
【００２５】
続いて、上記構成からなる画像処理装置を用いて実際にディザ処理を行う場合の画像処理方法について説明する。ここでは、ディザ処理条件の一例として、ディザ処理の対象として入力される入力画像の解像度（入力解像度）が６００×６００(dpi)で、ディザ処理によって出力される出力画像の解像度（出力解像度）が２４００×２４００(dpi)に設定された場合について説明する。また、ディザ処理に使用する閾値マトリクスには、上記図２に示す９×４のマトリクス構成を採用するものとする。このディザ処理条件では、上述した入力解像度と出力解像度の関係から、ディザ処理の対象として比較部４に入力される入力画像データの各々の画素（１つの入力画素）ごとに１６個（４×４のマトリクス）の閾値データと比較し、この比較結果を出力画像データとして比較部４から出力する必要がある。
【００２６】
そうした場合、入力画像データの１ライン目の画素列のうち、１画素目の階調値（８ビットのデジタルデータで表れる階調データ）を比較部４で比較処理するにあたっては、アドレス制御部１から閾値格納メモリ２へのアドレス指定にしたがって、アドレス０のメモリ領域に格納された４つ（マトリクス番号１〜４）の閾値データと、アドレス３のメモリ領域に格納された４つ（マトリクス番号１０〜１３）の閾値データと、アドレス６のメモリ領域に格納された４つ（マトリクス番号１９〜２２）の閾値データと、アドレス９のメモリ領域に格納された４つ（マトリクス番号２８〜３１）の閾値データとが読み出される。こうして閾値格納メモリ２から読み出された合計１６個の閾値データは閾値制御部３に送られる。
【００２７】
この場合、閾値制御部３は、図４（Ａ）に示すように、閾値格納メモリ２から読み出された全て（マトリクス番号１〜４，１０〜１３，１９〜２２，２８〜３１）の閾値データを選択して比較部４に与える。これにより、比較部４においては、入力画像データの１ライン目の画素列の先頭となる１画素目の階調値と、これに対応して閾値制御部３から与えられた１６個の閾値データとがそれぞれ比較され、この比較結果に基づいて、４×４のマトリクス構成をもつ１６画素分の出力画像データが出力される。
【００２８】
また、上記１画素目に続く２画素目の階調値を比較部４で比較処理するにあたっては、アドレス制御部１から閾値格納メモリ２へのアドレス指定にしたがって、アドレス１のメモリ領域に格納された４つ（マトリクス番号５〜８）の閾値データと、アドレス４のメモリ領域に格納された４つ（マトリクス番号１４〜１７）の閾値データと、アドレス７のメモリ領域に格納された４つ（マトリクス番号２３〜２６）の閾値データと、アドレス１０のメモリ領域に格納された４つ（マトリクス番号３２〜３５）の閾値データとが読み出される。こうして閾値格納メモリ２から読み出された合計１６個の閾値データは閾値制御部３に送られる。
【００２９】
この場合、閾値制御部３は、図４（Ｂ）に示すように、閾値格納メモリ２から読み出された全て（マトリクス番号５〜８，１４〜１７，２３〜２６，３２〜３５）の閾値データを選択して比較部４に与える。これにより、比較部４においては、入力画像データの１ライン目の２画素目の階調値と、これに対応して閾値制御部３から与えられた１６個の閾値データとがそれぞれ比較され、この比較結果に基づいて、４×４のマトリクス構成をもつ１６画素分の出力画像データが出力される。
【００３０】
また、上記２画素目に続く３画素目の階調値を比較部４で比較処理するにあたっては、アドレス制御部１から閾値格納メモリ２へのアドレス指定にしたがって、アドレス２のメモリ領域に格納された４つ（マトリクス番号９，１，２，３）の閾値データと、アドレス５のメモリ領域に格納された４つ（マトリクス番号１８，１０，１１，１２）の閾値データと、アドレス８のメモリ領域に格納された４つ（マトリクス番号２７，１９，２０，２１）の閾値データと、アドレス１１のメモリ領域に格納された４つ（マトリクス番号３６，２８，２９，３０）の閾値データとが読み出される。こうして閾値格納メモリ２から読み出された合計１６個の閾値データは閾値制御部３に送られる。
【００３１】
この場合、閾値制御部３は、図４（Ｃ）に示すように、閾値格納メモリ２から読み出された全て（マトリクス番号９，１，２，３，１８，１０，１１，１２，２７，１９，２０，２１，３６，２８，２９，３０）の閾値データを選択して比較部４に与える。これにより、比較部４においては、入力画像データの１ライン目の３画素目の階調値と、これに対応して閾値制御部３から与えられた１６個の閾値データとがそれぞれ比較され、この比較結果に基づいて、４×４のマトリクス構成をもつ１６画素分の出力画像データが出力される。
【００３２】
また、上記３画素目に続く４画素目の階調値を比較部４で比較処理するにあたっては、アドレス制御部１から閾値格納メモリ２へのアドレス指定にしたがって、アドレス０，１の各メモリ領域に格納された計８つ（マトリクス番号１〜４，５〜８）の閾値データと、アドレス３，４の各メモリ領域に格納された計８つ（マトリクス番号１０〜１３，１４〜１７）の閾値データと、アドレス６，７の各メモリ領域に格納された計８つ（マトリクス番号１９〜２２，２３〜２６）の閾値データと、アドレス９，１０の各メモリ領域に格納された計８つ（マトリクス番号２８〜３１，３２〜３５）の閾値データとが読み出される。こうして閾値格納メモリ２から読み出された合計３２個の閾値データは閾値制御部３に送られる。
【００３３】
この場合、閾値制御部３は、閾値格納メモリ２から読み出された３２個の閾値データの中から、比較処理に用いられる１６個の閾値データを選択して比較部４に与える。具体的には、閾値制御部３において、図４（Ｄ）に示すように、マトリクス番号４〜７，１３〜１６，２２〜２５，３１〜３４の閾値データを選択して比較部４に与える。これにより、比較部４においては、入力画像データの１ライン目の４画素目の階調値と、これに対応して閾値制御部３から与えられた１６個の閾値データとがそれぞれ比較され、この比較結果に基づいて、４×４のマトリクス構成をもつ１６画素分の出力画像データが出力される。
【００３４】
また、上記４画素目に続く５画素目の階調値を比較部４で比較処理するにあたっては、アドレス制御部１から閾値格納メモリ２へのアドレス指定にしたがって、アドレス１，２の各メモリ領域に格納された計８つ（マトリクス番号５〜８，９，１，２，３）の閾値データと、アドレス４，５の各メモリ領域に格納された計８つ（マトリクス番号１４〜１７，１８，１０，１１，１２）の閾値データと、アドレス７，８の各メモリ領域に格納された計８つ（マトリクス番号２３〜２６，２７，１９，２０，２１）の閾値データと、アドレス１０，１１の各メモリ領域に格納された計８つ（マトリクス番号３２〜３５，３６，２８，２９，３０）の閾値データとが読み出される。こうして閾値格納メモリ２から読み出された合計３２個の閾値データは閾値制御部３に送られる。
【００３５】
この場合、閾値制御部３は、閾値格納メモリ２から読み出された３２個の閾値データの中から、比較処理に用いられる１６個の閾値データを選択して比較部４に与える。具体的には、閾値制御部３において、図４（Ｅ）に示すように、マトリクス番号８，９，１，２，１７，１８，１０，１１，２６，２７，１９，２０，３５，３６，２８，２９の閾値データを選択して比較部４に与える。これにより、比較部４においては、入力画像データの１ライン目の５画素目の階調値と、これに対応して閾値制御部３から与えられた１６個の閾値データとがそれぞれ比較され、この比較結果に基づいて、４×４のマトリクス構成をもつ１６画素分の出力画像データが出力される。
【００３６】
また、上記５画素目に続く６画素目の階調値を比較部４で比較処理するにあたっては、アドレス制御部１から閾値格納メモリ２へのアドレス指定にしたがって、アドレス０，１の各メモリ領域に格納された計８つの閾値データと、アドレス３，４の各メモリ領域に格納された計８つの閾値データと、アドレス６，７の各メモリ領域に格納された計８つの閾値データと、アドレス９，１０の各メモリ領域に格納された計８つ閾値データとが読み出される。こうして閾値格納メモリ２から読み出された合計３２個の閾値データは閾値制御部３に送られる。
【００３７】
この場合、閾値制御部３は、閾値格納メモリ２から読み出された３２個の閾値データの中から、比較処理に用いられる１６個の閾値データを選択して比較部４に与える。具体的には、閾値制御部３において、図４（Ｆ）に示すように、マトリクス番号３〜６，１２〜１５，２１〜２４，３０〜３３の閾値データを選択して比較部４に与える。これにより、比較部４においては、入力画像データの１ライン目の５画素目の階調値と、これに対応して閾値制御部３から与えられた１６個の閾値データとがそれぞれ比較され、この比較結果に基づいて、４×４のマトリクス構成をもつ１６画素分の出力画像データが出力される。
【００３８】
また、上記６画素目に続く７画素目の階調値を比較部４で比較処理するにあたっては、アドレス制御部１から閾値格納メモリ２へのアドレス指定にしたがって、アドレス１，２の各メモリ領域に格納された計８つの閾値データと、アドレス４，５の各メモリ領域に格納された計８つの閾値データと、アドレス７，８の各メモリ領域に格納された計８つの閾値データと、アドレス１０，１１の各メモリ領域に格納された計８つ閾値データとが読み出される。こうして閾値格納メモリ２から読み出された合計３２個の閾値データは閾値制御部３に送られる。
【００３９】
この場合、閾値制御部３は、閾値格納メモリ２から読み出された３２個の閾値データの中から、比較処理に用いられる１６個の閾値データを選択して比較部４に与える。具体的には、閾値制御部３において、図４（Ｇ）に示すように、マトリクス番号７，８，９，１，１６，１７，１８，１０，２５，２６，２７，１９，３４，３５，３６，２８の閾値データを選択して比較部４に与える。これにより、比較部４においては、入力画像データの１ライン目の５画素目の階調値と、これに対応して閾値制御部３から与えられた１６個の閾値データとがそれぞれ比較され、この比較結果に基づいて、４×４のマトリクス構成をもつ１６画素分の出力画像データが出力される。
【００４０】
また、上記７画素目に続く８画素目の階調値を比較部４で比較処理するにあたっては、アドレス制御部１から閾値格納メモリ２へのアドレス指定にしたがって、アドレス０．１の各メモリ領域に格納された計８つの閾値データと、アドレス３，４の各メモリ領域に格納された計８つの閾値データと、アドレス６，７の各メモリ領域に格納された計８つの閾値データと、アドレス９，１０の各メモリ領域に格納された計８つ閾値データとが読み出される。こうして閾値格納メモリ２から読み出された合計３２個の閾値データは閾値制御部３に送られる。
【００４１】
この場合、閾値制御部３は、閾値格納メモリ２から読み出された３２個の閾値データの中から、比較処理に用いられる１６個の閾値データを選択して比較部４に与える。具体的には、閾値制御部３において、図４（Ｈ）に示すように、マトリクス番号２〜５，１１〜１４，２０〜２３，２９〜３２の閾値データを選択して比較部４に与える。これにより、比較部４においては、入力画像データの１ライン目の５画素目の階調値と、これに対応して閾値制御部３から与えられた１６個の閾値データとがそれぞれ比較され、この比較結果に基づいて、４×４のマトリクス構成をもつ１６画素分の出力画像データが出力される。
【００４２】
また、上記８画素目に続く９画素目の階調値を比較部４で比較処理するにあたっては、アドレス制御部１から閾値格納メモリ２へのアドレス指定にしたがって、アドレス１，２の各メモリ領域に格納された計８つの閾値データと、アドレス４，５の各メモリ領域に格納された計８つの閾値データと、アドレス７，８の各メモリ領域に格納された計８つの閾値データと、アドレス１０，１１の各メモリ領域に格納された計８つ閾値データとが読み出される。こうして閾値格納メモリ２から読み出された合計３２個の閾値データは閾値制御部３に送られる。
【００４３】
この場合、閾値制御部３は、閾値格納メモリ２から読み出された３２個の閾値データの中から、比較処理に用いられる１６個の閾値データを選択して比較部４に与える。具体的には、閾値制御部３において、図４（Ｉ）に示すように、マトリクス番号６〜９，１５〜１８，２４〜２７，３３〜３６の閾値データを選択して比較部４に与える。これにより、比較部４においては、入力画像データの１ライン目の５画素目の階調値と、これに対応して閾値制御部３から与えられた１６個の閾値データとがそれぞれ比較され、この比較結果に基づいて、４×４のマトリクス構成をもつ１６画素分の出力画像データが出力される。
【００４４】
また、上記９画素目に続く１０画素の階調値を比較部４で比較処理するにあたっては、アドレス制御部１から閾値格納メモリ２へのアドレス指定にしたがって、アドレス０のメモリ領域に格納された４つの閾値データと、アドレス３のメモリ領域に格納された４つの閾値データと、アドレス６のメモリ領域に格納された４つの閾値データと、アドレス９のメモリ領域に格納された４つの閾値データとが読み出される。つまり上記１画素目の階調値を処理する場合と同様に閾値格納メモリ２から１６個の閾値データが読み出される。したがって、１０画素目以降の階調値の処理には、上述した１画素目〜９画素目までの階調値の処理形態が適用される。
【００４５】
また、入力画像データの１ライン目に続く２ライン目の画素列については、予め設定された閾値マトリクスのシフト処理条件にしたがって、アドレス制御部１から閾値格納メモリ２にアドレスの指定が行われる。例えば、上記シフト処理条件として、入力画像データの各ラインで閾値マトリクスを右方向に１画素分ずつシフトさせるように設定されていたとすると、入力画像データの２ライン目の画素列のうち、１画素目の階調値を比較部４で比較処理するにあたっては、アドレス制御部１から閾値格納メモリ２へのアドレス指定にしたがって、上記１ライン目の３画素目の階調値を処理する場合と同様に、アドレス２のメモリ領域に格納された４つ（マトリクス番号９，１，２，３）の閾値データと、アドレス５のメモリ領域に格納された４つ（マトリクス番号１８，１０，１１，１２）の閾値データと、アドレス８のメモリ領域に格納された４つ（マトリクス番号２７，１９，２０，２１）の閾値データと、アドレス１１のメモリ領域に格納された４つ（マトリクス番号３６，２８，２９，３０）の閾値データとが読み出される。
【００４６】
こうして閾値格納メモリ２から読み出された合計１６個の閾値データは閾値制御部３に送られる。この場合、閾値制御部３は、上記図４（Ｃ）に示すように、閾値格納メモリ２から読み出された全て（マトリクス番号９，１，２，３，１８，１０，１１，１２，２７，１９，２０，２１，３６，２８，２９，３０）の閾値データを選択して比較部４に与える。これにより、比較部４においては、入力画像データの１ライン目の３画素目の階調値と、これに対応して閾値制御部３から与えられた１６個の閾値データとがそれぞれ比較され、この比較結果に基づいて、４×４のマトリクス構成をもつ１６画素分の出力画像データが出力される。
【００４７】
また、２ライン目の２画素目以降の階調値の処理には、上記１ライン目の４画素目以降の階調値の処理形態が適用される。また、３ライン目の１画素目以降の階調値の処理には、上記１ライン目の５画素目以降の階調値の処理形態が適用され、４ライン目の１画素目以降の階調値の処理には、上記１ライン目の７画素目以降の階調値の処理形態が適用され、５ライン目の１画素目以降の階調値の処理には、上記１ライン目の９画素目以降の階調値の処理形態が適用される。また、６ライン目の１画素目の階調値の処理には、上記１ライン目の２画素目以降の階調値の処理形態が適用され、７ライン目の１画素目の階調値の処理には、上記１ライン目の４画素目以降の階調値の処理形態が適用され、８ライン目の１画素目の階調値の処理には、上記１ライン目の６画素目以降の階調値の処理形態が適用され、９ライン目の１画素目の階調値の処理には、上記１ライン目の８画素目以降の階調値の処理形態が適用される。そして、１０ライン目の１画素目の階調値の処理には、上記１ライン目の１画素目以降の階調値の処理形態が適用される。
【００４８】
このように本発明の実施形態に係る画像処理装置においては、閾値格納メモリ２の１ワードのメモリ領域に複数の閾値データを格納しているため、アドレス制御部１から閾値格納メモリ２に１つのアドレスを指定するたびに複数（本形態では４つ）の閾値データが同時に読み出される。したがって、入力解像度と出力解像度との関係などから、１つの入力画素の階調値を複数の閾値データと比較する必要がある場合でも、閾値格納メモリ２からの閾値データの読み出し回数を減らしてディザ処理を効率良く行うことができる。また、閾値マトリクスの各行の最前列に配置される閾値データを閾値格納メモリ２のメモリ空間上のワードバウンダリに合わせて格納しているため、アドレス制御部１でアドレスを生成する際の論理が簡略化される。また、閾値マトリクスの各行に配列された閾値データに関して、閾値格納メモリ２から閾値データを読み出すときにアドレス制御部１が指定するアドレスの生成方式や、閾値格納メモリ２から読み出された閾値データの中から比較部４での比較処理に必要となる閾値データを閾値制御部３で選択する際の選択方式を、それぞれ共通化することができる。したがって、閾値マトリクスの各行ごとに、アドレス生成のための回路や閾値データ選択のための回路を共通の回路で構成することができる。その結果、ディザ処理の回路構成を簡素化することができる。
【００４９】
また、「所定のメモリ領域」となるアドレス２，５，８，１１の各メモリ領域に対して、仮に、閾値マトリクスの各行の最後列に配置されるの閾値データだけを格納するものとすると、閾値マトリクスの１行目ではマトリクス番号９，１の閾値データが各ワードのメモリ領域の同じビット列上に位置するため、マトリクス番号９，１の閾値データを連続して読み出すことができなくなる。同様に、閾値マトリクスの２行目ではマトリクス番号１８，１０の閾値データが各ワードのメモリ領域の同じビット列上に位置するため、マトリクス番号１８，１０の閾値データを連続して読み出すことができなくなり、閾値マトリクスの３行目ではマトリクス番号２７，１９の閾値データが各ワードのメモリ領域の同じビット列上に位置するため、マトリクス番号２７，１９の閾値データを連続して読み出すことができなくなり、閾値マトリクスの４行目ではマトリクス番号３６，２８の閾値データが各ワードのメモリ領域の同じビット列上に位置するため、マトリクス番号３６，２８の閾値データを連続して読み出すことができなくなる。
【００５０】
これに対して、本実施形態のように「所定のメモリ領域」となるアドレス２，５，８，１１の各メモリ領域に、閾値マトリクスの各行の最後列に配置されるの閾値データと、これと同じ行の最前列からの閾値データとを続けて格納した場合は、マトリクス番号９の閾値データとマトリクス番号１〜３の閾値データ、マトリクス番号１８の閾値データとマトリクス番号１０〜１２の閾値データ、マトリクス番号２７の閾値データとマトリクス番号１９〜２１の閾値データ、マトリクス番号３６の閾値データとマトリクス番号２８〜３０の閾値データが、それぞれ異なるビット列上に位置するようになるため、それらの閾値データを連続的に読み出すことが可能となる。
【００５１】
また、上記の処理例では、１ライン目の４画素目〜９画素目の階調値を処理する際に、閾値マトリクスの各行に配列される閾値データを、それぞれ２つのアドレス（アドレス１，２）を指定して読み出すようにしているが、さらに好適な例として、閾値制御部３に図示しないバッファメモリを設けることにより、閾値格納メモリ２からの閾値データの読み出し回数を減らすことができる。
【００５２】
例えば、閾値マトリクスの１の１行目に配列された９個（マトリクス番号１〜９）の閾値データを取り扱う場合に、１ライン目の１画素目〜３画素目までの階調値を処理する場合は、図５（Ａ）〜（Ｃ）に示すように、閾値格納メモリ２からワード単位で読み出してバッファメモリBUFFに格納した４つの閾値データを順に選択して出力する。その際、バッファメモリBUFFに格納される閾値データは、閾値格納メモリ２から新たな閾値データが読み出されるごとに随時更新される。一方、１ライン目の４画素目の階調値を処理する場合は、図５（Ｄ）に示すように、バッファメモリBUFFに格納された４つの閾値データと閾値格納メモリ２から新たに読み出した４つの閾値データRDの中から、比較部４での比較処理に必要な４つ（マトリクス番号４，５，６，７）の閾値データを選択して出力する。
【００５３】
また、１ライン目の５画素目の階調値を処理する場合は、図５（Ｅ）に示すように、バッファメモリBUFFに格納された４つの閾値データと閾値格納メモリ２から新たに読み出した４つの閾値データRDの中から、比較部４での比較処理に必要な４つ（マトリクス番号８，９，１，２）の閾値データを選択して出力する。この５画素目の階調値を処理する際には、所定のメモリ領域に格納された４つ（マトリクス番号９，１，２，３）の閾値データが閾値格納メモリ２から読み出され、かつそのうちの一部（マトリクス番号９，１，２）の閾値データが閾値制御部３で選択されて出力される。
【００５４】
そうした場合、次の６画素目の階調値を処理する場合は、図５（Ｆ）に示すように、閾値マトリクスの１行目の最前列から４つ（マトリクス番号１〜４）の閾値データがバッファメモリBUFFに格納された状態で、当該バッファメモリBUFFに格納された４つの閾値データと閾値格納メモリ２から新たに読み出した４つ（マトリクス番号５〜８）の閾値データRDの中から、比較部４での比較処理に必要な４つ（マトリクス番号３，４，５，６）の閾値データを選択して出力する。
【００５５】
次いで、１ライン目の７画素目の階調値を処理する場合は、図６（Ａ）に示すように、バッファメモリBUFFに格納された４つの閾値データと閾値格納メモリ２から新たに読み出した４つの閾値データRDの中から、比較部４での比較処理に必要な４つ（マトリクス番号７，８，９，１）の閾値データを選択して出力する。この７画素目の階調値の処理に際しても、所定のメモリ領域に格納された４つ（マトリクス番号９，１，２，３）の閾値データが閾値格納メモリ２から読み出され、かつそのうちの一部（マトリクス番号９，１）の閾値データが閾値制御部３で選択されて出力される。
【００５６】
そのため、次の８画素目の階調値を処理する場合は、図６（Ｂ）に示すように、閾値マトリクスの１行目の最前列から４つ（マトリクス番号１〜４）の閾値データがバッファメモリBUFFに格納された状態で、当該バッファメモリBUFFに格納された４つの閾値データと閾値格納メモリ２から新たに読み出した４つ（マトリクス番号５〜８）の閾値データRDの中から、比較部４での比較処理に必要な４つ（マトリクス番号２，３，４，５）の閾値データを選択して出力する。
【００５７】
その後、１ライン目の９画素目の階調値を処理する場合は、図６（Ｃ）に示すように、バッファメモリBUFFに格納された４つの閾値データと閾値格納メモリ２から新たに読み出した４つの閾値データRDの中から、比較部４での比較処理に必要な４つ（マトリクス番号６，７，８，９）の閾値データを選択して出力する。この９画素目の階調値の処理に際しても、所定のメモリ領域に格納された４つ（マトリクス番号９，１，２，３）の閾値データが閾値格納メモリ２から読み出され、かつそのうちの一部（マトリクス番号９）の閾値データが閾値制御部３で選択されて出力される。
【００５８】
そのため、次の１０画素目の階調値を処理する場合は、図６（Ｄ）に示すように、閾値マトリクスの１行目の最前列から４つ（マトリクス番号１〜４）の閾値データがバッファメモリBUFFに格納された状態で、当該バッファメモリBUFFに格納された４つの閾値データを選択して出力する。この１０画素目の階調値を処理する場合の閾値データの読み出し及び選択の仕方は、上記１画素目の階調値を処理する場合と同様であるため、これ以降の処理についての説明は省略する。また、閾値マトリクスの他の行（２行目、３行目、４行目）に配列された閾値データを取り扱う場合にも上記同様の処理を採用することができる。
【００５９】
このように閾値制御部３にバッファメモリBUFFを設けて、閾値格納メモリ２から読み出した閾値データを順にバッファメモリBUFFに格納し、かつバッファメモリBUFFに格納した閾値データを適宜選択して出力することにより、１つの入力画素につき閾値格納メモリ２からの閾値データの読み出しを１回で済ませることができる。したがって、閾値格納メモリ２からの閾値データの読み出し動作に合わせてリアルタイムにディザ処理を行うことが可能となる。
【００６０】
また、本発明の他の実施形態として、図７に示すように、閾値格納メモリ２のメモリ空間を複数ワード分のメモリ領域を１つのアドレスで指定するように複数のアドレス領域に区分し、閾値マトリクスの各行の最前列に配置される閾値データを上記メモリ空間上のアドレスバウンダリに合わせて格納するものとしてもよい。アドレスバウンダリとは、閾値格納メモリ２のメモリ空間を複数のアドレス領域に区分したときのアドレスの境界部分をいう。この場合、１ワード分のメモリ領域には、上記実施形態と同様に、入力画像の１つの画素サイズに対応する主走査方向の出力画素数分の閾値データを格納可能となっている。また、１つのアドレス領域の大きさは、閾値マトリクスの１行分の閾値データを格納し得る大きさに設定されている。
【００６１】
したがって、例えば、上記図２に示す閾値マトリクスをディザ処理に使用する場合は、上記図７に示す３２ビット×１６ワードのメモリ構成をもつ閾値格納メモリ２のメモリ空間を、４ワード分のメモリ領域を１つのアドレスで指定するように複数のアドレス領域に区分する。そして、アドレス０で指定されるアドレス領域に閾値マトリクスの１行目に配列されるマトリクス番号１〜９の閾値データを格納するとともに、アドレス４で指定されるアドレス領域に閾値マトリクスの２行目に配列されるマトリクス番号１０〜１８の閾値データを格納する。また、アドレス８で指定されるアドレス領域に閾値マトリクスの３行目に配列されるマトリクス番号１９〜２７の閾値データを格納するとともに、アドレス１２で指定されるアドレス領域に閾値マトリクスの４行目に配列されるマトリクス番号２８〜３０の閾値データを格納する。この場合、閾値マトリクスの各行の最前列に配置される４つ（マトリクス番号１，１０，１９，２８）の閾値データは、それぞれアドレスバウンダリに合わせて各々のアドレス領域の先頭位置に格納される。
【００６２】
このように閾値マトリクスの各行の最前列に配置される閾値データを閾値格納メモリ２のメモリ空間上のアドレスバウンダリに合わせて格納することにより、閾値格納メモリ２から閾値データを読み出すときに、閾値マトリクスの行を選択するための論理と、閾値マトリクスの列を選択するための論理を完全に分離することができる。すなわち、閾値マトリクスの行の選択は、アドレス０，４，８，１１のいずれかを指定することで行い、閾値マトリクスの列の選択は、各々のアドレス領域の先頭列から配列順を指定することで行うことができる。したがって、閾値格納メモリ２から閾値データを読み出すための回路構成を簡素化することができる。
【００６３】
また、閾値格納メモリ２のメモリ空間上で閾値マトリクスの各行の最後列に配置される閾値データ（マトリクス番号９，１８，２７，３６）が格納される所定のメモリ領域には、上記実施形態の場合と同様に、閾値マトリクスの各行の最後列に配置される閾値データと、これと同じ行の最前列からの閾値データとを続けて格納するものとする。
【００６４】
すなわち、アドレス０で指定されるアドレス領域内では、マトリクス番号９の閾値データとマトリクス番号１，２，３の閾値データを同じワードのメモリ領域に続けて格納し、アドレス４で指定されるアドレス領域内では、マトリクス番号１８の閾値データとマトリクス番号１０，１１，１２の閾値データを同じワードのメモリ領域に続けて格納する。また、アドレス８で指定されるアドレス領域内では、マトリクス番号２７の閾値データとマトリクス番号１９，２０，２１の閾値データを同じワードのメモリ領域に続けて格納し、アドレス１２で指定されるアドレス領域内では、マトリクス番号３６の閾値データとマトリクス番号２８，２９，３０の閾値データを同じワードのメモリ領域に続けて格納する。
【００６５】
これにより、上記実施形態の場合と同様に、マトリクス番号９の閾値データとマトリクス番号１〜３の閾値データ、マトリクス番号１８の閾値データとマトリクス番号１０〜１２の閾値データ、マトリクス番号２７の閾値データとマトリクス番号１９〜２１の閾値データ、マトリクス番号３６の閾値データとマトリクス番号２８〜３０の閾値データを、それぞれ連続的に読み出すことが可能となる。
【００６６】
さらに、閾値マトリクスの構成に応じてアドレスバウンダリの位置を変更可能とすることにより、より多種類の閾値マトリクスに柔軟に対応することが可能となる。例えば、ディザ処理に使用する閾値マトリクスを、上記図２に示す９×４のマトリクス構成から、図８に示す１８×２のマトリクス構成に変更する場合は、閾値マトリクスの各行に配列される閾値データの個数と閾値マトリクスの行数が変わる。
【００６７】
そうした場合は、図９に示すように、３２ビット×１６ワードのメモリ構成をもつ閾値格納メモリ２のメモリ空間を、８ワード分のメモリ領域を１つのアドレスで指定するように複数のアドレス領域に区分する。そして、アドレス０で指定されるアドレス領域に閾値マトリクスの１行目に配列されるマトリクス番号１〜１８の閾値データを格納するとともに、アドレス８で指定されるアドレス領域に閾値マトリクスの２行目に配列されるマトリクス番号１９〜３６の閾値データを格納する。この場合、閾値マトリクスの各行の最前列に配置される２つ（マトリクス番号１，１９）の閾値データは、それぞれアドレスバウンダリに合わせて各々のアドレス領域の先頭位置に格納される。
【００６８】
また、閾値格納メモリ２のメモリ空間上で閾値マトリクスの各行の最後列に配置される閾値データ（マトリクス番号１８，３６）が格納される所定のメモリ領域には、上記実施形態の場合と同様に、閾値マトリクスの各行の最後列に配置される閾値データと、これと同じ行の最前列からの閾値データとを続けて格納するものとする。すなわち、アドレス０で指定されるアドレス領域内では、マトリクス番号１８の閾値データとマトリクス番号１，２の閾値データを同じワードのメモリ領域に続けて格納し、アドレス８で指定されるアドレス領域内では、マトリクス番号３６の閾値データとマトリクス番号１９，２０の閾値データを同じワードのメモリ領域に続けて格納する。これにより、上記実施形態の場合と同様に、マトリクス番号１８の閾値データとマトリクス番号１，２の閾値データ、マトリクス番号３６の閾値データとマトリクス番号１９，２０の閾値データを、それぞれ連続的に読み出すことが可能となる。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施形態に係る画像処理装置の構成例を示す概略図である。
【図２】閾値マトリクスの構成例を示す図である。
【図３】本発明の実施形態に係る閾値データの格納方式を示す模式図である。
【図４】入力画素の階調値と比較される閾値データの具体例を説明する図である。
【図５】バッファメモリを用いた閾値データの選択方法を説明する図（その１）である。
【図６】バッファメモリを用いた閾値データの選択方法を説明する図（その２）である。
【図７】本発明の他の実施形態に係る閾値データの格納方式を示す模式図である。
【図８】閾値マトリクスの他の構成例を示す図である。
【図９】本発明の他の実施形態に係る閾値データの格納方式を示す模式図である。
【図１０】従来の画像処理装置の構成例を示す概略図である。
【図１１】従来の閾値データの格納方式を説明する図である。
【図１２】従来のディザ処理の流れを示すタイミングチャートである。
【図１３】マトリクスサイズと入力画素サイズの関係を説明する図である。
【符号の説明】
【００７０】
１…アドレス制御部、２…閾値格納メモリ、３…閾値制御部、４…比較部
【図１】
2005079741.tif 000003
【図２】
2005079741.tif 000004
【図３】
2005079741.tif 000005
【図４】
2005079741.tif 000006
【図５】
2005079741.tif 000007
【図６】
2005079741.tif 000008
【図７】
2005079741.tif 000009
【図８】
2005079741.tif 000010
【図９】
2005079741.tif 000011
【図１０】
2005079741.tif 000012
【図１１】
2005079741.tif 000013
【図１２】
2005079741.tif 000014
【図１３】
2005079741.tif 000015