(57)【要約】【課題】処理速度を低下させずにディザパターンと呼ばれる周期的構造を無くすことができる画像処理方法及び装置を提供すること。【解決手段】多値画像データを２値化する画像処理方法において、乱数を発生する乱数発生工程と、１つ１つが異なるディザマトリクスを生成する工程と、生成された前記ディザマトリクスを格納する記憶工程と、前記生成工程により生成された１つ１つ異なる前記ディザマトリクスと多値画像とを比較することにより２値化を行う２値化工程とを有する。【選択図】        図１
2004289236.tif 000002
【特許請求の範囲】
【請求項１】
入力された多値画像を２値画像に変換する画像処理装置であって、
乱数を発生する乱数発生手段と、前記乱数発生手段で発生された乱数値を参照して、組織的ディザ法におけるディザマトリクス内の閾値の並びを決定し、１つ１つが異なるディザマトリクスを生成する手段と、生成された前記ディザマトリクスを格納する記憶手段と、生成された１つ１つが異なる前記ディザマトリクスと、多値画像とを比較することにより２値化を行う２値化手段を備えることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記ディザマトリクス生成手段は、基となる２×２マトリクスの０から３までの数字の並び及び、ｍ×ｍマトリクスを基に、ｎ×ｎマトリクス（ｍ＝ｎ／２）を生成する過程における、０から３までの係数の並びを乱数によってそれぞれ定めることを特徴とする画像処理装置。
【請求項３】
請求項１に記載の画像処理装置において、
前記ディザマトリクス生成手段は、ディザマトリクスを入力多値画像の主走査方向に複数同時に生成し、前記記憶手段は、入力多値画像の主走査方向の長さ分のディザマトリクスを記憶可能である容量を備えることを特徴とする画像処理装置。
【請求項４】
請求項１に記載の画像処理装置において、
前記ディザマトリクス生成手段は、請求項２に記載のディザマトリクス生成過程において、請求項２に記載の０から３までの数字の内、０もしくは１もしくは２もしくは３の任意の数字の位置を、任意の位置にあるように指定した後、乱数値を参照することで、前記係数の並びに制限を加えることを特徴とする画像処理装置。
【請求項５】
請求項１に記載の画像処理装置において、
前記ディザマトリクス生成手段は、請求項２に記載のディザマトリクス生成過程において、請求項４に記載の、０から３までの任意の数字及び、任意の位置をディザマトリクス生成の度に、自由に設定できることを特徴とする画像処理装置。
【請求項６】
入力された多値画像を２値画像に変換する画像処理方法であって、
乱数を発生させる乱数発生工程と、前記乱数発生工程で発生された乱数により、組織的ディザ法におけるディザマトリクス内の閾値の並びを決定し、１つ１つが異なるディザマトリクスを生成する工程と、生成された前記ディザマトリクスを格納する記憶工程と、生成された１つ１つ異なる前記ディザマトリクスと、多値画像とを比較することにより２値化を行う２値化工程を備えることを特徴とする画像処理方法。
【請求項７】
請求項６に記載の画像処理方法において、
前記ディザマトリクス生成工程は、基となる２×２マトリクスの０から３までの数字の並び及び、ｍ×ｍマトリクスを基に、ｎ×ｎマトリクス（ｍ＝ｎ／２）を生成する過程における０から３までの係数の並びを乱数によってそれぞれ定めることを特徴とする画像処理方法。
【請求項８】
請求項６に記載の画像処理方法において、
前記ディザマトリクス生成工程は、請求項７に記載のディザマトリクス生成過程において、請求項７に記載の０から３までの数字の内、０もしくは１もしくは２もしくは３の任意の数字の位置を、任意の位置にあるように指定した後、乱数値を参照することで、前記係数の並びに制限を加えることを特徴とする画像処理方法。
【請求項９】
請求項６に記載の画像処理方法において、
前記ディザマトリクス生成工程は、請求項７に記載のディザマトリクス生成過程において、請求項８に記載の、０から３までの任意の数字及び、任意の位置をディザマトリクス生成の度に、自由に設定できることを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多値画像データを２値化する画像処理装置及び画像処理方法に関するものである。
【０００２】
【従来の技術】
インクジェットプリンタ装置等の様に、ドットの有無（２値データ）で印刷を行う画像出力装置において、ディザ法は、原画像と矩形（マトリクス）領域内に配置した閾値との大小比較により２値化を行う手法であり、比較的高速に２値画像を生成することができる。
【０００３】
ディザ法では、Ｎ×Ｎ画素を階調再現の１つの単位として考え、それに対応するＮ×Ｎの閾値マトリクス（これをディザマトリクスという）をつくり、このディザマトリクスＤｎを一種のマスクとして原画像に重ね合わせ、各画素の濃度と対応する閾値とを比較し２値化するというものである。
【０００４】
図２は４×４ディザマトリクスによる２値画像への処理を表わした概念図であり、対応する画素２０１とディザマトリクス２０２を比較し、２値画像２０３へ変換される。マトリクス１０２の太枠内の４×４ディザマトリクスと同じディザマトリクスを、全ての画素について繰り返し用いて、２値化を行う。
【０００５】
マトリクスの閾値配列はある規則に従っており、画質は使用するディザマトリクスの形状に大きく依存する。図３にベイヤ型のディザマトリクスを導く方法を示す。まず（３）式にｎ＝４を代入し、（１）式の２×２リムのマトリクスと（２）式の単位マトリクスＵｎを用いると、４×４ベイヤ型マトリクスが得ることができる。更にこの４×４ベイヤ型マトリクスを用いて（３）式にｎ＝８を代入すると、８×８ベイヤ型マトリクスが得ることができ、同様の方法でｍ×ｍベイヤ型マトリクスを拡張してｎ×ｎベイヤ型マトリクス（ｍ＝ｎ／２）を得ることができる。
【０００６】
一方、一般に広く利用されている手法である誤差拡散法では、２値化によって生じた誤差を隣接画素に拡散することで誤差の低減を行っており、階調表現能力に比較的優れており広く利用されている手法であり、上述のような周期構造によるノイズの無い比較的良好な画質を得ることが出来る。
【０００７】
【発明が解決しようとする課題】
ディザ法では、原画像に対して常に同じディザマトリクスを繰り返し用いる為に、均一な濃度を持つ画像領域で、ディザパターンとよばれるドットパターンの周期構造によるノイズが問題となっていた。
【０００８】
一方、一般に広く利用されている手法である誤差拡散法では、上述のような周期構造によるノイズの無い比較的良好な画質を得ることが出来るが、２値化によって生じた誤差を隣接画素に拡散する為に計算量が増し、処理速度が遅いことが問題となっていた。
【０００９】
本発明は、前記課題を解決するために成されたもので、処理速度を低下させずにディザパターンと呼ばれる周期的構造を無くすことができる画像処理方法及び装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
前記目的を達成するために、本発明の画像処理方法は以下の工程を有する。
【００１１】
即ち、多値画像データを２値化する画像処理方法において、乱数を発生する乱数発生工程と、１つ１つが異なるディザマトリクスを生成する工程と、前記生成工程において生成された前記ディザマトリクスを格納する記憶工程と、前記生成工程において生成された１つ１つ異なる前記ディザマトリクスと多値画像とを比較することにより２値化を行う２値化工程とを有する。
【００１２】
前記ディザマトリクス生成工程は、ディザマトリクス生成過程において、２×２マトリクスの０から３までの並び及び、ｍ×ｍマトリクスを基にｎ×ｎマトリクス（ｍ＝ｎ／２）を生成する過程における、係数０から３までの並びを乱数によってそれぞれ定め、ディザマトリクスを生成する。
【００１３】
前記ディザマトリクス生成工程は、前記乱数発生工程において、０もしくは１もしくは２もしくは３の任意の数字の位置を、任意の位置にあるように指定した後、乱数値を参照することで、前記係数の並びに制限を加え、ディザマトリクスを生成する。
【００１４】
前記ディザマトリクス生成工程は、ディザマトリクス生成過程において、ディザマトリクス生成の度に、上述の０から３までの任意の数字及び、任意の位置を自由に設定し、ディザマトリクスを生成する。
【００１５】
また、上記目的を達成するために、本発明による画像処理装置は以下の構成を備える。
【００１６】
即ち、多値画像データを２値化する画像処理装置において、乱数を発生する乱数発生手段と、１つ１つが異なるディザマトリクスを生成する手段と、生成された前記ディザマトリクスを格納する記憶装置と、前記生成装置により生成された１つ１つ異なる前記ディザマトリクスと多値画像とを比較することにより２値化を行う２値化手段とを有する。
【００１７】
前記ディザマトリクス生成手段は、ディザマトリクス生成過程において、２×２マトリクスの０から３までの並び及び、ｍ×ｍマトリクスを基にｎ×ｎマトリクス（ｍ＝ｎ／２）を生成する過程における、０から３までの係数の並びを乱数によってそれぞれ定め、ディザマトリクスを生成する。
【００１８】
前記ディザマトリクス生成手段は、前記乱数発生手段において、０もしくは１もしくは２もしくは３の任意の数字の位置を、任意の位置にあるように指定した後、乱数値を参照することで、前記係数の並びに制限を加え、ディザマトリクスを生成する。
【００１９】
前記ディザマトリクス生成手段は、ディザマトリクス生成過程において、ディザマトリクス生成の度に、上述の０から３までの任意の数字及び、任意の位置を自由に設定し、ディザマトリクスを生成する。
【００２０】
前記ディザマトリクス生成手段は、ディザマトリクスを入力多値画像の主走査方向に複数同時に生成する機能を有し、前記記憶手段は、入力多値画像の主走査方向の長さ分のディザマトリクスを記憶可能である容量を備える。
【００２１】
かかる構成において、異なるディザマトリクスを１つ１つ生成し、生成したディザマトリクスを用いて多値画像データを２値化するように動作する。各々のディザマトリクスをその都度１つ１つ生成することで、入力画像に対して全て異なるディザマトリクスを用いることで、ディザパターンを無くす。
【００２２】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る第１の実施の形態を説明する。
【００２３】
［システム構成の説明（図４）］
図４は、本実施の形態における画像処理システムの基本構成を示す図である。図示の如く、印刷情報をプリンタ側に送出するホストシステム４０１と、画像を印刷するプリンタ４０２とで構成され、４１０は印刷出力である。
【００２４】
また、プリンタ４０２が備える構成ユニットをその機能と共に説明すると以下の通りである。
【００２５】
４０３はＣＰＵであり、プリンタ４０２及び接続される各入出力装置との制御及び印刷処理を実行する。４０４はＲＯＭであり、ＣＰＵ４０３のブートプログラム等を記憶している。４０５はＲＡＭであり、ＣＰＵ４０３の画像処理プログラムをロードする領域として用いられる。また印刷処理プログラムなどもロードされ、実行される。４０６はホストシステム４０１との入出力インターフェースであり、ホストシステム４０１から入力多値画像データを受信する。４０７は印刷出力装置との入出力インターフェース（エンジンＩ／Ｆ）である。４０９は印刷出力装置であり、ここで印刷処理（駆動系）が行われ、印刷出力４１０が得られる。また、４０８は上述の各構成ユニットを接続するＣＰＵバスである。
【００２６】
［画像処理の説明（図１，図５〜図７）］
次に、以上の構成からなる本システムにおける画像処理、即ち生成したディザマトリクスを参照してディザ処理を行い、入力多値画像データを２値化する処理について説明する。
【００２７】
図１は、本実施の形態における画像処理データの流れを示す図である。尚、この処理は図４プリンタ４０２内のＣＰＵ４０３、ＲＯＭ４０４、ＲＡＭ４０５によって実行される。図示の如く、多値画像データを格納する入力画像記憶部１０１と、多値画像データを２値化する２値化処理部１０２と、２値画像データを格納する２値画像記憶部１０７で構成される。
【００２８】
上記の２値化処理部１０２が備える構成ユニットを、その機能と共に説明すると、以下の通りである。
【００２９】
１０３はディザ処理部であり、入力画像記憶部１０１の入力多値画像データを、生成されたディザマトリクスを参照してディザ処理を行い、２値化された２値画像データを２値画像記憶部１０７に出力する。１０４は乱数発生部である。１０５はディザマトリクス生成部であり、乱数発生部１０４から入力される乱数の値を参照して、ディザマトリクスを生成する。乱数発生部１０４及び、ディザマトリクス生成部１０５については更に後述する。１０６は生成ディザマトリクス記憶部であり、ディザマトリクス生成部１０５で生成されたディザマトリクスを記憶する。
【００３０】
図５は、本実施の形態において入力多値画像とディザマトリクステーブルとを比較して２値画像を出力するまでを図で表わしたものである。入力多値画像５０１と、出力多値画像５０３の主走査方向のドット数をｗ、副走査方向のドット数をｌとする。ディザマトリクステーブル５０２の各成分はＤｎ［ｉ，ｊ］で示し、左上から副走査方向にｉ番目、主走査方向にｊ番目のディザマトリクスを示し、ｉｍａｘはｉの最大値を、ｊｍａｘはｊの最大値をそれぞれ示す。
【００３１】
図６は、本実施の形態におけるディザマトリクス生成部１０５でのディザマトリクス生成工程の、閾値の並びを決定する式である。図６（１）式は、図２（１）式の０，２，３，１をそれぞれｃ１，ｃ２，ｃ３，ｃ４に置換したものであり、図６（３）式は、図２（３）式のＵの係数０，２，３，１をそれぞれｃ１，ｃ２，ｃ３，ｃ４に置換し、さらにＤｎ／２に添え字１，２，３，４を加えたものである。尚、以下の説明において、ｉはディザマトリクステーブル上の、あるディザマトリクスの副走査方向の位置を、ｊはディザマトリクステーブル上の、あるディザマトリクス主走査方向の位置をそれぞれ示す。
【００３２】
ｃ１，ｃ２，ｃ３，ｃ４に代入される０から３までの数字の組み合わせは、全部で２４通りあるが、それらの組み合わせ全てに０から２３までの数字を割り当てる。そして乱数発生部３０４で発生した乱数を２４で割った余りの数に対応する数字を割り当てられた０から３までの数字の組み合わせを、ｃ１，ｃ２，ｃ３，ｃ４の組み合わせとし、図６（１）式、若しくは図６（３）式に代入する。
【００３３】
以下にディザマトリクス生成工程について説明する。
【００３４】
まず、図６（１）式のｃ１，ｃ２，ｃ３，ｃ４の数字の並びを、乱数を用いた前記方法にて決定する。これをＤ１２とし、上述の方法で乱数を用いてｃ１，ｃ２，ｃ３，ｃ４の数字の並びを決定し、Ｄ２２，Ｄ３２，Ｄ４２を決定する。
【００３５】
次に、図６（３）式にｎ＝４を代入して、求めたＤ１２，Ｄ２２，Ｄ３２，Ｄ４２を図６（３）式に代入し、上述の方法で乱数を用いてｃ１，ｃ２，ｃ３，ｃ４の数字の並びを決定し、Ｄ４を決定する。そしてこれをＤ１４とし、同様の方法でＤ２４，Ｄ３４，Ｄ４４を決定する。そしてｎ＝８を代入した図６（３）式に求めたＤ１４，Ｄ２４，Ｄ３４，Ｄ４４を代入し、上述の方法で乱数を用いてｃ１，ｃ２，ｃ３，ｃ４の数字の並びを決定し、Ｄ８を決定する。更に上述の方法を繰り返して、所望のＤｎを決定する。
次に上述の方法に加え、本実施の形態における係数ｃ１，ｃ２，ｃ３，ｃ４の並びに制限を加える方法を以下に説明する。
【００３６】
ディザマトリクスＤｎ生成工程において、Ｄ２で０が割り当てられた箇所はＤｎにおいては０からｎ２／４迄の数字が割り当てられている。その為、入力多値画像の濃度が低い箇所を２値化する際には、Ｄ２で１，２，３が割り当てられた箇所よりも、０が割り当てられた箇所から先に‘１’が出力される。そこで、ｉ＋ｊが偶数である閾値マトリクスの場合においては、Ｄ１２及びＤ４２ではｃ１，ｃ４どちらかにのみ０が割り当てられるように、ｃ１，ｃ４どちらかにのみ０が割り当てられたものを、ｃ１，ｃ２，ｃ３，ｃ４の組み合わせの中から選び、その中からｃ１，ｃ２，ｃ３，ｃ４の組み合わせを乱数を用いて決定し、Ｄ２２及びＤ３２ではｃ２，ｃ３どちらかにのみ０が割り当てられるように、ｃ１，ｃ２，ｃ３，ｃ４の組み合わせの中から、ｃ２，ｃ３どちらかにのみ０が割り当てられたものを乱数を用いて上述の方法と同様に決定する。一方ｉ＋ｊが奇数である場合においても上述と同じ方法で、Ｄ１２及びＤ４２では、ｃ２，ｃ３どちらかにのみ０が割り当てられるように、乱数を用いてｃ１，ｃ２，ｃ３，ｃ４を決定し、Ｄ２２及びＤ３２ではｃ１，ｃ４どちらかにのみ０が割り当てられるように、乱数を用いてｃ１，ｃ２，ｃ３，ｃ４を決定し、Ｄｎにおいて‘１’が出力されるところが分散するようにする。
【００３７】
図７は、上述のディザマトリクス生成部１０５の処理手順を、８×８マトリクスの生成を例にして示すフローチャートである。尚、以下の説明において、ｉはディザマトリクステーブル上の、あるディザマトリクスの副走査方向の位置を、ｊはディザマトリクステーブル上の、あるディザマトリクス主走査方向の位置をそれぞれ示す。ｅは図６（３）式におけるＤｘｎ／２の添え字ｘに対応し、ｃ１，ｃ２，ｃ３，ｃ４は図４（１）式及び（３）式中におけるｃ１，ｃ２，ｃ３，ｃ４とそれぞれ対応する。
【００３８】
まずＳ７０１において、パラメータｆに‘１’を代入し、Ｓ７０２に進み、パラメータｅに‘１’を代入する。次にＳ７０３に進み、ｉ＋ｊが偶数であるか否かを判断する。ここで条件を満たしていればＳ７０４に進んでｅ＝１もしくはｅ＝４であるか否かを判断する。ここで条件を満たしていればＳ７０６に進み、上述の方法でｃ１，ｃ４どちらかにのみ０が割り当てられるように、乱数を用いてｃ１，ｃ２，ｃ３，ｃ４を決定し、Ｄｅ２を決定した後、Ｓ７０８に進む。一方Ｓ７０４の条件を満たしていなければ、Ｓ７０７に進んで、上述の方法でｃ２，ｃ３どちらかにのみ０が割り当てられるように、乱数を用いてｃ１，ｃ２，ｃ３，ｃ４を決定し、Ｄｅ２を決定した後、Ｓ７０８に進む。一方Ｓ７０３の条件を満たしていなければ、Ｓ７０５に進む。Ｓ７０５ではｅ＝２もしくはｅ＝３であるか否かを判断する。ここで条件を満たしていればＳ７０６に進み、上述の方法でｃ１，ｃ４どちらかにのみ０が割り当てられるように、乱数を用いてｃ１，ｃ２，ｃ３，ｃ４を決定し、Ｄｅ２を決定した後、Ｓ７０８に進む。一方Ｓ７０５の条件を満たしていなければ、Ｓ７０７に進んで、上述の方法でｃ２，ｃ３どちらかにのみ０が割り当てられるように、乱数を用いてｃ１，ｃ２，ｃ３，ｃ４を決定し、Ｄｅ２を決定した後、Ｓ７０８に進む。
【００３９】
Ｓ７０８ではｅ＝４か否かを判断し、条件を満たしていなければＳ７０９に進んでｅをインクリメントしてＳ７０３に処理を戻し、上述の処理（Ｓ７０３〜Ｓ７０７）を繰り返し、順次Ｄ１２，Ｄ２２，Ｄ３２，Ｄ４２を決定していく。Ｓ７０８の条件を満たすと、Ｄ１２，Ｄ２２，Ｄ３２，Ｄ４２が決定したことになり、次にＳ７１０に進み、乱数でもってｃ１，ｃ２，ｃ３，ｃ４を決定した後、Ｄｆ４を決定し、Ｓ７１１に進む。
【００４０】
Ｓ７１１ではｆ＝４か否かを判断し、条件を満たしていなければＳ７１２に進んでｆをインクリメントしてＳ７０２に処理を戻し上述の処理（Ｓ７０２〜Ｓ７１０）を繰り返し、順次Ｄ１４，Ｄ２４，Ｄ３４，Ｄ４４を決定する。Ｓ７１１の条件を満たすとＤ１４，Ｄ２４，Ｄ３４，Ｄ４４が決定したことになり、次にＳ７１３に進んで、乱数でもってｃ１，ｃ２，ｃ３，ｃ４を決定した後、Ｄ８を決定し、処理を終了する。
【００４１】
尚、上記の手法を拡張することで、ｎ×ｎマトリクスを生成する。
【００４２】
図８は本実施の形態における、上述の２値化処理部１０２の処理手順を示すフローチャートである。尚、以下の説明において、ｗは入力多値画像の主走査方向のドット数を、ｌは副走査方向のドット数を、ｎは所望のディザマトリクスの縦横のサイズを、ｉはディザマトリクステーブル上の、あるディザマトリクスの副走査方向の位置を、ｊはディザマトリクステーブル上の、あるディザマトリクス主走査方向の位置を、ｉｍａｘはｉの最大値を、ｊｍａｘはｊの最大値をそれぞれ示す。
【００４３】
まずステップＳ８０１において、入力多値画像の階調からｎ、ｗからｊｍａｘ、ｌからｉｍａｘを決定する。次にＳ８０２でパラメータｉとｊに‘０’を代入する。そしてＳ８０３で乱数を用いて２×２マトリクスからｎ×ｎマトリクスを生成する。
【００４４】
次にＳ８０４ではｊがｊ＝ｊｍａｘの条件を満たしているか否かを判断する。ここで条件を満たしていなければＳ８０５に進み、ｊをインクリメントした後、Ｓ８０３に処理を戻して、乱数を用いて２×２マトリクスからｎ×ｎマトリクスを生成する。そしてＳ８０４の条件を満たさなければ、ｊをインクリメントしながらＳ８０５の処理を繰り返し、ｎ×ｎマトリクスをＤｎ［ｉ，０］からＤｎ［ｉ，ｊｍａｘ］まで、計ｊｍａｘ個生成する。
【００４５】
一方Ｓ８０４の条件を満たした場合、Ｓ８０６に進む。Ｓ８０６では、パラメータｉが、ｉ＝ｉｍａｘの条件を満たしているか否かを判断する。ここで条件を満たしていなければＳ８０７に進み、Ｄｎ［ｉ，０］からＤｎ［ｉ，ｊｍａｘ］までのディザマトリクスを参照して、ｎ×ｉ行目から｛ｎ×ｉ＋（ｎ−１）｝行目迄の入力多値画像を、２値化処理する。その後Ｓ８０８でｊに‘０’を代入して、Ｓ８０９に進み乱数を用いて２×２マトリクスからｎ×ｎマトリクスを生成する。
【００４６】
次にＳ８１０ではｊがｊ＝ｊｍａｘの条件を満たしているか否かを判断する。ここで条件を満たしていなければＳ８１１に進み、ｊをインクリメントした後、Ｓ８０９に処理を戻して、乱数を用いて２×２マトリクスからｎ×ｎマトリクスを生成する。そしてＳ８１０の条件を満たさなければ、ｊをインクリメントしながらＳ８０９の処理を繰り返し、ｎ×ｎマトリクスをｊｍａｘ個生成する。そしてＳ８１０の条件を満たしたならば、Ｓ８１２に進みパラメータｉをインクリメントし、Ｓ８０６に処理を戻し、条件を満たさなければ上述の処理（ステップＳ８０７〜Ｓ８１２）を繰り返すが、条件を満たせばステップＳ８１３へ進み、Ｄｎ［ｉｍａｘ，０］からＤｎ［ｉｍａｘ，ｊｍａｘ］までのディザマトリクスを参照して、ｎ×ｉ行目から（ｌ−｛ｎ（ｉｍａｘ−１）｝）行目迄の入力多値画像の２値化処理を行い、処理を終了する。
【００４７】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態について説明する。前述した実施形態では、画像処理をＣＰＵで行っているが、第２の実施形態では、ＣＰＵバス上に画像処理ＩＣを備え、画像処理ＩＣ側で画像処理を行うものである。
【００４８】
［システム構成の説明（図９）］
図９は、第２の実施形態における画像処理システムの基本構成を示す図である。図示の如く、印刷情報をプリンタ側に送出するホストシステム９０１と、画像を印刷するプリンタ９０２とで構成され、９１１は印刷出力である。
【００４９】
また、プリンタ９０２が備える構成ユニットをその機能と共に説明すると以下の通りである。
【００５０】
９０３はＣＰＵであり、プリンタ９０２及び接続される各入出力装置との制御を実行する。９０４はＲＯＭであり、ＣＰＵ９０３のブートプログラム等を記憶している。９０５はＲＡＭであり、ＣＰＵ９０３の印刷処理プログラムをロードする領域として用いられる。９０６は画像処理ＩＣであり、入力された多値画像を２値化処理して出力する。８０７はホストシステム９０１との入出力インターフェースであり、ホストシステム９０１から入力多値画像データを受信する。８０７は印刷出力装置との入出力インターフェース（エンジンＩ／Ｆ）である。９１０は印刷出力装置であり、ここで印刷処理（駆動系）が行われ、印刷出力９１１が得られる。また、９０９は上述の各構成ユニットを接続するＣＰＵバスである。
【００５１】
［画像処理の説明（図１０、図１１）］
次に、以上の構成からなる本システムにおける画像処理、即ち生成したディザマトリクスを参照してディザ処理を行い、入力多値画像データを２値化する処理について説明する。
【００５２】
図１０は第２の実施の形態における画像処理部の構成を示す図である。図示の如く、多値画像データを格納する入力画像記憶部１００１と、多値画像データを２値化する２値化処理部１００２と、２値画像データを格納する２値画像記憶部１００９で構成される。
【００５３】
上記の２値化処理部１００２が備える構成ユニットを、その機能と共に説明すると、以下の通りである。
【００５４】
１００３はディザ処理部であり、入力画像記憶部１００１の入力多値画像データを、生成されたディザマトリクスを参照してディザ処理を行い、２値化された２値画像データを２値画像記憶部１００９に出力する。１００４は乱数発生部である。１００５はディザマトリクス生成部であり、乱数発生部１００４から入力される乱数の値を参照して、ディザマトリクスを生成する。乱数発生部１００４及び、ディザマトリクス生成部１００５は、複数個が並列に備えられており、任意の複数ディザマトリクスを同時に生成できる。加えてディザ処理部１００３において、Ｄｎ［ｉ，０］からＤｎ［ｉ，ｊｍａｘ］までのディザマトリクスを参照してディザ処理を行っている間に、Ｄｎ［ｉ＋１，０］からＤｎ［ｉ＋１，ｊｍａｘ］までのディザマトリクスの生成を行う。
【００５５】
１００７は生成ディザマトリクス記憶部であり、ディザマトリクス生成部１００５で生成されたディザマトリクスを、ｊｍａｘ個記憶可能なものを２個備える。１００６及び１００８はセレクタであり、セレクタ１００８はディザマトリクス記憶部の内、ディザ処理部で参照する為に用いるディザマトリクスが格納されている方を選択し、セレクタ１００６は、ディザマトリクス生成部１００５で生成されたディザマトリクスを、ディザ処理部で参照する為に用いられているディザマトリクスが格納されていない方の、ディザマトリクス記憶部を選択する。
【００５６】
データ線１０１０は、入力画像記憶部１００１とディザ処理部１００３を結び、入力多値画像の１画素分ずつを送る。そのためデータ線１０１０は、入力多値画像の１画素あたりが持つデータ幅と同じデータ線数を持つ。データ線１０１１は、乱数発生部１００４とディザマトリクス生成部１００５を結び、乱数値０から２３を、５ビットデータとしてディザマトリクス生成部へ送る。その為データ線数は５本である。データ線１０１２は、ディザマトリクス生成部１００５とセレクタ１００６を結び、ディザマトリクス生成部で生成されたディザマトリクスのデータを、１画素分ずつセレクタ１００６へ送る。データ線１０１３は、セレクタ１００６と生成ディザマトリクス記憶部１００７を結び、セレクタ１００６により選択された方のディザマトリクス記憶部に、ディザマトリクス生成データで生成されたディザマトリクスのデータを送る。データ線１０１４は、ディザマトリクス記憶部１００７とセレクタ１００８を結び、ディザマトリクス記憶部において記憶されているディザマトリクスデータをセレクタ１００８に送る。データ線１０１５は、セレクタ１００８とディザ処理部１００３を結び、セレクタ１００８で選択されたディザマトリクスデータをディザ処理部へと送る。データ線１０１２、データ線１０１３、データ線１０１４、データ線１０１５のデータ線数はディザマトリクスのデータを１画素分ずつ送るので、ディザマトリクス１画素が持つデータ幅と同じ線数を持つ。データ線１０１６は、ディザ処理部１００３で２値化された２値画像データを、２値画像記憶部１００９ヘ送る。２値化されたデータは１ビットの為、データ線１０１６のデータ線数は１本である。
【００５７】
尚、この画像処理部は図９プリンタ９０２内において、ホストシステムから送られてくる印刷情報に基づき、プリンタ９０２のＣＰＵ９０３、ＲＯＭ９０４、ＲＡＭ９０５、画像処理ＩＣ９０６によって画像処理、即ち生成したディザマトリクスを参照してディザ処理を行い、多値画像データを２値化する処理が行われるが、上述した構成ユニットの内、乱数発生部に関しては、その機能をＣＰＵ９０３内に持つものとし、乱数発生部以外のユニットは全て画像処理ＩＣ９０６内に持つものとする。
【００５８】
図１１は第２の実施の形態における、上述の２値化処理部１０２の処理手順を示すフローチャートである。尚、以下の説明において、ｗは入力多値画像の主走査方向のドット数を、ｌは副走査方向のドット数を、ｎはディザマトリクスの縦横のサイズを、ｉはディザマトリクステーブル上のあるディザマトリクスの副走査方向の位置を、ｊはディザマトリクステーブル上のあるディザマトリクス主走査方向の位置を、ｉｍａｘはｉの最大値を、ｊｍａｘはｊの最大値をそれぞれ示す。
【００５９】
まずステップＳ１１０１において、入力多値画像の階調からｎ、ｗからｊｍａｘ、ｌからｉｍａｘを決定する。次にＳ１１０２でパラメータｉに‘０’を代入する。そしてＳ１１０３で乱数を用いてｎ×ｎマトリクスを同時に複数個生成し、計ｊｍａｘ個を生成する。
【００６０】
次にＳ１１０４では、パラメータｉが、ｉ＝ｉｍａｘの条件を満たしているか否かを判断する。ここで条件を満たしていなければＳ１１０５に進み、ｎ×ｉ行目から｛ｎ×ｉ＋（ｎ−１）｝行目迄の２値化処理を行い、それと平行して乱数を用いてｎ×ｎマトリクスを同時に複数個生成し、計ｊｍａｘ個を生成する。そしてＳ１１０６に進みパラメータｉをインクリメントし、Ｓ１１０４に処理を戻し、条件を満たさなければ上述の処理（ステップＳ１１０５，Ｓ１１０６）を繰り返すが、条件を満たせばステップＳ１１０７へ進み、ｎ×ｉ行目から（ｌ−｛ｎ（ｉｍａｘ−１）｝）行目までの２値化処理を行い、処理を終了する。
【００６１】
このように、第２の実施形態では、プリンタ内に画像処理に特化したＩＣを備え、画像処理ＩＣにおいて２値化処理を行うことにより、処理速度の向上を図ることができる。
【００６２】
【発明の効果】
このように本発明によれば、多値画像データをディザ処理によって２値化する際に、全て異なるディザマトリクスを用いることで、ディザパターンの無い２値画像データが出力可能となる。
【図面の簡単な説明】
【図１】本実施の形態における画像処理データの流れを示す図である。
【図２】４×４ディザマトリクスによる２値画像への処理を表わした概念図である。
【図３】ディザ法におけるベイヤ型マトリクスを導出する式である。
【図４】本実施の形態における画像処理システムの基本構成を示す図である。
【図５】本実施の形態において入力多値画像とディザマトリクステーブルとを比較して２値画像を出力するまでを図で表わしたものである。
【図６】本実施の形態におけるディザマトリクスの並びを決定する式である。
【図７】本実施の形態における上述のディザマトリクス生成部１０５の処理手順を、８×８マトリクスの生成を例にして示すフローチャートである。
【図８】本実施の形態における上述の２値化処理部１０２の処理手順を示すフローチャートである。
【図９】第２の実施の形態による画像処理部の構成を示す図である。
【図１０】第２の実施の形態による画像処理部の構成を示す図である。
【図１１】第２の形態における上述の２値化処理部４０２の処理手順を示すフローチャートである。
【図１】
2004289236.tif 000003
【図２】
2004289236.tif 000004
【図３】
2004289236.tif 000005
【図４】
2004289236.tif 000006
【図５】
2004289236.tif 000007
【図６】
2004289236.tif 000008
【図７】
2004289236.tif 000009
【図８】
2004289236.tif 000010
【図９】
2004289236.tif 000011
【図１０】
2004289236.tif 000012
【図１１】
2004289236.tif 000013