(57)【特許請求の範囲】
【請求項１】
多値画像データを入力する入力手段と、
前記入力手段により入力した多値画像データの各画素について、処理対象の画素の画素データと当該画素に蓄積された誤差データとの加算値をｎ値化処理してｎ値データと誤差データとを取得し、取得された誤差データを他の未処理の画素に分散、蓄積させる変換手段と、
前記変換手段により得られたｎ値データによって表現されるドットの集中化量を制御する制御手段と、
前記変換手段によって得られた複数画素のｎ値データを記憶する記憶手段とを備え、
前記制御手段は、前記記憶手段に記憶されている複数画素のｎ値データの平均濃度値と、前記入力手段で入力された多値画像データの濃度値に基づいて算出された閾値変更量と、操作部から設定された定数との加算値を、前記変換手段におけるｎ値化処理に用いられる閾値とすることによりドットの集中化量を制御し、
前記制御手段では、前記操作部から設定された前記定数により、前記ドットを集中化すべき濃度領域が設定されることを特徴とする画像処理装置。
【請求項２】
前記変換手段による前記ｎ値化処理で発生する誤差データを補正する補正手段を更に備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
多値画像データを入力する入力工程と、
前記入力工程により入力した多値画像データの各画素について、処理対象の画素の画素データと当該画素に蓄積された誤差データとの加算値をｎ値化処理してｎ値データと誤差データとを取得し、取得された誤差データを他の未処理の画素に分散、蓄積させる変換工程と、
前記変換工程により得られたｎ値データによって表現されるドットの集中化量を制御する制御工程と、
前記変換工程によって得られた複数画素のｎ値データを記憶する記憶工程とを備え、
前記制御工程は、前記記憶工程で記憶された複数画素のｎ値データの平均濃度値と、前記入力工程で入力された多値画像データの濃度値に基づいて算出された閾値変更量と、操作部から設定された定数との加算値を、前記変換工程におけるｎ値化処理に用いられる閾値とすることによりドットの集中化量を制御し、
前記制御工程では、前記操作部から設定された前記定数により、前記ドットを集中化量すべき濃度領域が設定されることを特徴とする画像処理方法。
【請求項４】
前記変換工程による前記ｎ値化処理で発生する誤差データを補正する補正工程を更に備えることを特徴とする請求項３に記載の画像処理方法。
【請求項５】
請求項３又は４に記載の画像処理方法をコンピュータに実行させるための制御プログラムを格納したことを特徴とするコンピュータ可読メモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、特に多値画像データをｎｂｉｔの画像データに変換する為の画像処理方法及び装置に関するものである。
【０００２】
【従来の技術】
中間調表現をおこなうための画像形成手法として誤差拡散法（以後ＥＤと呼ぶ）や平均濃度保存法（以後ＭＤと呼ぶ）などが一般に知られている。これらは、少ない階調数を用いて面積階調表現することにより、マクロ的に中間調を表現しようとするものである。つまり、疑似中間調表現法である。これは、少ない階調数で画像形成できるために、画像データを扱うハードウェアへの負荷を低減できるといった効果がある。
【０００３】
【発明が解決しようとする課題】
しかしながら、プリンターの特性によっては、ｎ値化処理に於ける孤立ドットを正確に出力できないものがあった。そのような孤立ドットを正確に出力できないようなプリンタで疑似中間調表現法をおこなうと、ある濃度域でムラが発生したり、疑似輪郭が発生したりする問題があった。
【０００４】
そこで、そのようなプリンタ特性のものに対しては、ある程度ドットを集中させることで対処することが提案されている。しかしながら、単にドットの集中化のみを全濃度域に対しておこなうと、画像全体の出力解像度を落としてしまうという問題が生じる。
【０００５】
また、一つのプリンター特性にあわせて、ドットを集中化させるハードウェアを作り込んでしまうと、プリンタの特性が変わったときに、また、ハードウェアの作り直しを余儀なくされてしまうという問題があった。
【０００６】
一方、ＦＡＸなどで誤差拡散系の画像を圧縮した場合、白ドットと黒ドットのつながる比率が低いことから、圧縮率が上げられない問題があった。
【０００７】
本発明は上記の問題に鑑みてなされたものであり、多値画像データのｎ値化状態に基づいてドットの集中化を制御することを可能とし、ドット集中化に伴う出力解像度の低下を防止する画像処理装置及びその方法を提供することを目的とする。
【０００８】
また、本発明の他の目的は、プリンタの特性に応じたドットの集中化量の制御を可能とすることにある。
【０００９】
また、本発明は、例えば疑似輪郭やムラが発生しやすい所望の濃度領域においてドットの集中化量を制御することが可能な画像処理装置及び方法を提供することを目的とする。
【００１０】
また、本発明の他の目的は、過去のｎ値化の結果の配置パターンに応じてｎ値化処理のしきい値を制御することで、正確なテクスチャの制御を可能とすることにある。ここで、正確なテクスチャ制御とは、記録時に所望のドット配置に制御することをいう。
【００１１】
【課題を解決するための手段】
上記の目的を達成するための本発明の一態様である画像処理装置は、例えば次のような構成を備えている。すなわち、
多値画像データを入力する入力手段と、
前記入力手段により入力した多値画像データの各画素について、処理対象の画素の画素データと当該画素に蓄積された誤差データとの加算値をｎ値化処理してｎ値データと誤差データとを取得し、取得された誤差データを他の未処理の画素に分散、蓄積させる変換手段と、
前記変換手段により得られたｎ値データによって表現されるドットの集中化量を制御する制御手段と、
前記変換手段によって得られた複数画素のｎ値データを記憶する記憶手段とを備え、
前記制御手段は、前記記憶手段に記憶されている複数画素のｎ値データの平均濃度値と、前記入力手段で入力された多値画像データの濃度値に基づいて算出された閾値変更量と、操作部から設定された定数との加算値を、前記変換手段におけるｎ値化処理に用いられる閾値とすることによりドットの集中化量を制御し、
前記制御手段では、前記操作部から設定された前記定数により、前記ドットを集中化すべき濃度領域が設定される。
【００１２】
又、上記の目的を達成するための本発明の他の態様による画像処理方法は、
多値画像データを入力する入力工程と、
前記入力工程により入力した多値画像データの各画素について、処理対象の画素の画素データと当該画素に蓄積された誤差データとの加算値をｎ値化処理してｎ値データと誤差データとを取得し、取得された誤差データを他の未処理の画素に分散、蓄積させる変換工程と、
前記変換工程により得られたｎ値データによって表現されるドットの集中化量を制御する制御工程と、
前記変換工程によって得られた複数画素のｎ値データを記憶する記憶工程とを備え、
前記制御工程は、前記記憶工程で記憶された複数画素のｎ値データの平均濃度値と、前記入力工程で入力された多値画像データの濃度値に基づいて算出された閾値変更量と、操作部から設定された定数との加算値を、前記変換工程におけるｎ値化処理に用いられる閾値とすることによりドットの集中化量を制御し、
前記制御工程では、前記操作部から設定された前記定数により、前記ドットを集中化量すべき濃度領域が設定される。
【００１５】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１６】
［第１の実施形態］
●処理概略
図１は第１の実施形態による複写機の処理構成全体の概略を示したブロック図である。画像読み取り部１０９は、レンズ１０１、ＣＣＤセンサ１０２、アナログ信号処理部１０３等により構成される。レンズ１０１を介しＣＣＤセンサ１０２に結像された原稿画像は、ＣＣＤセンサ１０２によりＲ（Ｒｅｄ）、Ｇ（Ｇｒｅｅｎ）、Ｂ（Ｂｌｕｅ）のアナログ電気信号に変換される。電気信号に変換された画像情報は、アナログ信号処理部１０３に入力され、Ｒ、Ｇ、Ｂ、の各色毎にサンプル＆ホールド、ダークレベルの補正等が行われ、その後アナログ・デジタル変換（Ａ／Ｄ変換）される。以上のようにしてデジタル化されたフルカラー信号は、画像処理部１０４に入力される。
【００１７】
画像処理部１０４では、シェーディング補正、色補正、γ補正等の読み取り系で必要な補正処理や、スムージング処理、エッジ強調、その他の処理、加工等が行われ、プリンタ部１０５に出力される。
【００１８】
プリンタ部１０５は、レーザ等からなる露光制御部（図示せず）、画像形成部（図示せず）、転写紙の搬送制御部（図示せず）等により構成され、入力された画像信号により転写紙上に画像を記録する。
【００１９】
また、ＣＰＵ回路部１１０は、ＣＰＵ１０６、ＲＯＭ１０７、ＲＡＭ１０８等により構成され、画像読み取り部１０９、画像処理部１０４、プリンタ部１０５等を制御し、本装置のシーケンスを統括的に制御する。なお、１１１は、ユーザが各種設定を行うための操作部である。
【００２０】
●画像処理部
次に、画像処理部１０４について説明する。図２は、画像処理部１０４の構成を示すブロック図である。
【００２１】
図１のアナログ信号処理部１０３より出力されるデジタル画像信号は、シェーディング補正部２０１に入力される。シェーディング補正部２０１では、原稿を読み取るＣＣＤセンサ１０２の特性のばらつき、及び、原稿照明用ランプの配光特性の補正を行っている。補正演算された画像信号は、輝度信号から、濃度データに変換するために、階調補正部２０２に入力され、濃度画像データを作成する。濃度画像データに変換された画像信号は、カラー／モノクロ変換部２０３に入力され、モノクロデータとして出力される。そして、カラー／モノクロ変換部２０３から出力されたモノクロデータは、階調変換処理部２０４に入力され、疑似中間調表現として誤差拡散処理（ＥＤ処理）もしくは平均濃度保存処理（ＭＤ処理）が施される。
【００２２】
次に本実施形態の特徴的な構成の一つである階調変換処理部２０４について図３を用いて説明する。
【００２３】
●階調変換処理部
図３は第１の実施形態による階調変換処理部の詳細構成を示すブロック図である。尚、第１の実施形態においては、多値画像データを２値化し、擬似中間調処理方法としてＭＤ法を採用した構成を例に挙げて説明する。
【００２４】
図３において、誤差補正部３０２は、カラーモノクロ変換部２０３からの画像信号Ｄと、後述する２値化処理部３０１で発生した２値化誤差データＥとを入力し、後述する誤差補正を行って画像信号ＤＥを算出する。誤差補正部３０２で得られた画像信号ＤＥは２値化部３０１へ出力される。
【００２５】
２値化部３０１は、誤差補正部３０２よりの画像信号ＤＥと、後述する加算部３０６よりの２値化スライス値Ｓと、平均濃度算出部３０４よりの平均濃度算出値ｍとを入力し、画像信号ＤＥと２値化スライス値Ｓとを比較することによって２値出力Ｎを求め、画像信号ＤＥと平均濃度算出値ｍとを減算処理することによって２値化誤差データＥの算出を行う。詳細は後述するが、この２値化部３０１に入力される「２値化スライス値」を平均濃度算出値ｍに基づいて変化させることによりドットの集中化量を適切に制御し、画質を改善する。
【００２６】
２値化結果遅延部３０３は、２値出力Ｎを入力し、所定のライン数の遅延を行い、複数ラインに跨がった複数の２値化結果Ｎｍｎを平均濃度算出部３０４に送る。平均濃度算出部３０４は、複数の２値化結果Ｎｍｎを入力し、予め設定してある係数との積和演算（後述）を行い平均濃度算出値ｍを得る。得られた、平均濃度算出値ｍは、スライス値制御部３０５と加算部３０６と２値化部３０１とへ入力される。
【００２７】
スライス値制御部３０５は、平均濃度算出値ｍを入力し、後述する処理によって平均濃度算出値ｍに応じた、各濃度領域でのしきい値制御量IIを算出して、加算部３０６へ送る。加算部３０６は、平均濃度算出部３０４の出力ｍと、スライス値制御部３０５の出力IIとを入力し、後述するリミッタをかけた加算をおこない、２値化部３０１へとデータＳの出力をおこなう。以下に各処理部の詳細を説明する。
【００２８】
図４は２値化部３０１の構成を示すブロック図である。２値化部３０１は、画像信号ＤＥと、後述する２値化スライス値Ｓと、後述する平均濃度算出値ｍとを入力し、これらを比較することによって、２値出力Ｎ及び２値化誤差データＥの出力を行う。
【００２９】
入力された画像信号ＤＥは、２系統に別れ、一方は比較回路４０１に入力され、もう一方は減算回路４０２に入力される。比較回路４０１では、画像信号ＤＥと、２値化スライス値Ｓとの値を比較し、
ＤＥ＞Ｓの時は、Ｎ＝１、
ＤＥ≦Ｓ  の時は、Ｎ＝０
として２値出力Ｎを出力する。
【００３０】
また、減算回路４０２では、平均濃度算出値ｍから画像信号ＤＥの値を差し引き、これを２値化誤差データＥとして出力を行う。従って、減算回路４０２より得られる２値化誤差データＥは、
Ｅ＝ｍ−ＤＥ
となる。
【００３１】
次に、誤差補正部３０２について説明する。図５は誤差補正部３０２の構成を示すブロック図である。また、図６は誤差補正部３０２の動作を説明する図である。図５に示されるように、誤差補正部３０２は、画像信号Ｄと２値化誤差データＥとを入力し、画像信号Ｄに誤差補正を行った画像信号ＤＥを算出し、２値化部３０１へと出力を行う。入力された２値化誤差データＥは除算回路５０１によって１／２にされる。その結果は２系統に分岐し、一方は減算回路５０２に、もう一方はラインバッファ５０３に入力される。
【００３２】
減算回路５０２では、２値化誤差データＥとＥ／２の差ＥＢを算出し、加算回路５０４にその結果を入力する。ここで、わざわざ１−Ｅ／２の計算を行うのはＥが奇数の場合にその余りが捨てられてしまうのを防ぐためである。すなわち、、除算回路５０１で計算したＥ／２は、ラインバッファ５０３に入力するため、Ｅの値が奇数の場合はＥ／２のあまりが切り捨てられている。このため、加算回路５０４に入力する値は、Ｅ−Ｅ／２の演算で求めないと、切り捨てられた余りはそのまま捨てられてしまうことになるからである。また、加算回路５０４では、複数ビット（本実施形態の場合８ビットとする）１ライン分のラインバッファ５０３によって１ライン分遅延されたＥＡとＥＢとの和を算出し、これを加算回路５０５に出力する。加算回路５０５では、１ライン分遅延されたＥＡとＥＢとの和と、画像信号Ｄとの和を算出し、これを画像信号ＤＥとして出力する。
【００３３】
つまり、誤差補正部３０２では、図６に示すように、注目画素に対して１ライン上のＡの画素を２値化して生じた２値化誤差ＥＡと１画素前のＢを２値化して生じた２値化誤差ＥＢとを注目画素のデータに足し込む処理を行う。
【００３４】
次に２値化結果遅延部３０３について説明する。図７は２値化結果遅延部３０３の構成を示すブロック図である。また、図８は２値化結果遅延部３０３によって出力される２値化結果Ｎｍｎを説明する図である。図７に示されるように、２値化結果遅延部３０３は、２値化部３０１よりの２値化出力Ｎを入力し、所定のライン数の遅延を行い、図８に示す複数の２値化結果Ｎｍｎを平均濃度算出部３０４に対して出力する。
【００３５】
入力された２値出力Ｎは、１ビット１ライン分のラインバッファ６０１からラインバッファ６０２へと送られていき、データがライン毎に遅延されていく。
【００３６】
また、遅延されないデータは、１画素分の遅延回路からなる遅延６０３〜遅延６０６によって、次々と１画素分の遅延がなされる。そして、遅延６０５の出力、遅延６０６の出力をそれぞれＮ１４、Ｎ１５として出力する。同様に、ラインバッファ６０１によって１ライン分遅延がなされた２値化データは、遅延６０７〜遅延６１０によって遅延され、Ｎ２１からＮ２５として、また、ラインバッファ６０２によってもう１ライン分遅延がなされた２値化データは、遅延６１１〜遅延６１４によって遅延され、Ｎ３１からＮ３５として出力される。
【００３７】
つまり、２値化結果遅延部３０３では、２次元の画像を２値化したデータＮについて複数ライン、複数画素の遅延処理が施され、複数ラインの２値化結果Ｎｍｎとして、注目画素図８に示すような位置関係にある画素の２値化結果が平均濃度算出部３０４に入力されることになる。
【００３８】
次に平均濃度算出部３０４について説明する。図９は平均濃度算出部３０４の構成を示すブロック図である。また、図１０は、平均濃度算出部３０４における係数の一例を示す図である。平均濃度算出部３０４は、複数ラインの２値化結果Ｎｍｎを２値化結果遅延部３０４より入力し、予め設定してある係数（図１０）との間で積和演算を行い、平均濃度値ｍとして出力する。この平均濃度値ｍは、２値化部３０１とスライス値制御部３０５とで使用される。
【００３９】
乗算回路８０１では、２値化データＮ１５と、係数Ｍ１５とを入力し、両者の乗算結果を出力する。また、乗算回路８０２では、２値化データＮ１４と、係数Ｍ１４とを入力し、両者の乗算結果を出力する。同様な演算を乗算回路８０３〜乗算回路８１２の全ての回路によって行い、それらの乗算結果を加算回路８１３によって全て足し込む。そして、その結果を平均濃度算出値ｍとして出力を行う。なお、図９に示される係数Ｍｍｎの一例を図１０に示してある。図１０では、各Ｎｍｎに対応する画素位置の係数が示されている。
【００４０】
次に、スライス値設定部３０５について説明する。図１１はスライス値設定部３０５の構成を示すブロック図である。図１１において、１０１１〜１０１４は比較器であり、入力値ａが入力値ｂよりも小さい場合に「１」を出力する。１０１５〜１０１８はインバータであり、入力値を反転して出力する。１０１９はＯＲゲート、１０２０〜１０２２はＡＮＤゲートである。１０２３はエンコーダであり、入力端子０〜３の入力に応じて、数値０〜３を出力する。１０２４及び１０２６はそれぞれ定数「０」と「ＡＬＦ」を出力する定数発生器である。また、１０２５及び１０２７は、平均濃度値ｍと定数ＬＲ１〜ＬＲ４を用いて演算を行う演算器である。１０２８はセレクタであり、０〜３の入力値に従って、入力端子０〜３の何れかを選択して出力する。
【００４１】
以上のような回路構成によれば、入力された平均濃度算出値ｍと、定数ＬＲ１／ＬＲ２／ＬＲ３／ＬＲ４とに基づいてスライス値変更量IIを演算し、その結果が出力されることになる。図１２は図１１に示した構成の動作を説明する図である。ここでは、説明を明確にする為にプログラム言語Ｃで示した。図１１ではスライス値設定部３０５をハードウエア構成で示したが、図１２で示すようにソフトウエアで実現することも可能である。
【００４２】
図１２において、まず、１００１部は、入力された平均濃度算出値ｍ（０〜２５５の値を取り得る）が、定数ＬＲ１（例えば３２）未満の場合は、スライス値変更量IIを０に設定する処理をおこなう。すなわち、ｍ＜ＬＲ１の場合は、図１１の比較器１０１１の出力が「１」となって、ＯＲゲート１０１９の出力が「１」となり、セレクタ１０２８によって定数器１０２４の値が選択される。
【００４３】
また、１００２部では、入力された平均濃度算出値ｍが、定数ＬＲ１以上かつ定数ＬＲ２（例えば１２８）未満の場合に、スライス値変更量IIを以下の式により求めている。すなわち、
II＝ＡＬＦ ×（ｍ−ＬＲ１）／（ＬＲ２−ＬＲ１）…（１）
ここで、ＡＬＦは定数（例えば３２）
この演算により、スライス値変更量IIの値は、平均濃度算出値ｍの値が定数ＬＲ１から定数ＬＲ２に増加するに従い、徐々に０から定数ＡＬＦに近づくことになる。この場合の図１１における動作は、まず、比較器１０１１の出力が「０」、比較器１０１２の出力が「１」になり、ＡＮＤゲート１０２０の出力が「１」となる。そして、エンコーダ１０２３より「１」が出力されて、セレクタ１０２８は演算器１０２５の出力を選択する。ここで、演算器１０２５では、上記の（１）式の演算が行われている。
【００４４】
同様な処理を１００３部、１００４部、１００５部でおこなう。
【００４５】
つまり、１００３部では、入力された平均濃度算出値ｍが、定数ＬＲ２以上かつ定数ＬＲ３（例えば１９２）未満の場合に、スライス値変更量IIを定数ＡＬＦとして出力する。また、１００４部では、入力された平均濃度算出値ｍが、定数ＬＲ３以上かつ定数ＬＲ４（例えば２５０）未満の場合に、スライス値変更量IIを以下の（２）式により求める。すなわち、
II＝ＡＬＦ ×（ＬＲ４−ｍ）／（ＬＲ４−ＬＲ３）…（２）
これは、先程の１００２部とは逆に、平均濃度算出値ｍの値がＬＲ３から定数ＬＲ４に増加するに従い、スライス値変更量IIが、徐々に定数ＡＬＦから０に近づくことになる。更に、１００５部では、入力ｍがＬＲ４以上の時、スライス値変更量IIを０にする処理をおこなう。以上の処理により、スライス値制御部３０５のスライス値変更量IIは、図１３に示されるように、平均濃度算出値ｍの値によって変化する。なお、上記構成において、定数発生器１０１１〜１０１４、１０２６に設定されるＬＲ１〜ＬＲ４、ＡＬＦは、それぞれ操作部１１１から所望の値に設定することができる。
【００４６】
図１４は加算部３０６の構成を示すブロック図である。加算部３０６は、平均濃度算出部３０４の出力値ｍと、スライス値制御部３０５のスライス値変更量IIとを入力し、加算処理をおこない、０以下もしくは２５５以上の値に対してリミッタを定数０・定数２５５でかけ、その結果を２値スライス値Ｓとして出力する。すなわち、以下の式で表される処理を行う。
【００４７】
Ｓ＝ｍ＋II−ＡＬＦｍ
ｉｆ（Ｓ＞２５５）｛Ｓ＝２５５；｝
ｉｆ（Ｓ＜０）｛ Ｓ＝０；｝                …（３）
ここで、ＡＬＦｍ（例えば１６）は、定数であり−２５５〜２５５に設定可能なものである。なお、この定数ＡＬＦｍの設定は、操作部１１１から行うことができる。
【００４８】
図１４において、１０５１は演算器であり、入力ａ、ｂ、ｃからａ＋ｂーｃを演算してその結果を出力する。１０５２は比較器であり、入力ａ、ｂ、ｃの比較結果として、ａ＞ｂ、ｃ≦ａ≦ｂ、ａ＜ｃの各場合に、対応する出力端子から「１」が出力される。１０５３はエンコーダであり、入力端子０、１、２への入力に応じて０〜３をバイナリによって出力する。１０５４はセレクタであり、選択信号の値（０〜２）に応じて入力端子０、１、２よりの入力信号の一つが選択されて出力端子より出力される。１０５５〜１０５９は定数器である。以上の構成において、図１４に示すように接続を行うと、上述のような２値スライス値Ｓが得られる。
【００４９】
以上のような加算部３０６の演算（上述の（３）式）により、２値スライス値Ｓは、スライス値制御部３０５のスライス値変更量IIによって、所望の濃度領域毎にコントロールされることになる。
【００５０】
以上のような処理を各画素に関して順次行っていくと、スライス値変更量IIが大きく正に変化した場合、２値スライス値Ｓは、大きくなり、図４に示した２値化部３０１で２値出力Ｎが０になりやすくなる。つまり、ドットが打たれづらくなる。しかし、ある程度２値出力が０のまま続くと、今度は、逆に、大きな量子化誤差が蓄積され、それが、画像信号Ｄに加算され、２値出力Ｎが１になりやくすなる。つまり、ドットが打たれやすくなる。
【００５１】
その結果、ドットが打たれる場所と打たれない場所が集中化され、ドットの集中化制御が可能となる。これは、図１１〜図１３で述べたように、任意な濃度領域でコントロール可能である。
【００５２】
また、スライス値制御部３０５のＡＬＦの値を負に設定しておくと、上記の説明とは逆に、平均濃度算出値ｍに応じて、２値スライス値を小さくできるので、ドットが散る（集中化しない）方向に制御可能となる。
【００５３】
さらに、図１２に示したＡＬＦを正の値に設定し、かつ、加算部３０６における定数ＡＬＦｍを０以外の正な値に設定すると、任意の領域でドットを集中化させたり分散化させたりする複合的な制御も可能となる。
【００５４】
無論、定数ＡＬＦとＡＬＦｍを負の値に設定すると、上記とは逆な効果が得られることは言うまでもない。
【００５５】
以上の処理により、任意な濃度領域でドットのテクスチャ制御をしながら、多値の画像データを２値に変換して出力することが可能となる。
【００５６】
［第２の実施形態］
次に第２の実施形態を詳細に説明する。なお、第２の実施形態の複写機の全体的な構成は第１の実施形態（図１、図２）と同様である。また、以下では階調変換処理部（２０４）について説明を行うが、第１の実施形態と同様な部分は、同一番号を付け、その説明を省略する。
【００５７】
さて、図３に示した実施形態１による階調変換処理部の構成は、画像信号Ｄが送られてくるビデオクロックが高速になると、２値化スライス値を求めるタイミングが時間的に苦しくなる。これは、平均濃度算出部３０４と２値化部３０１の間は、ビデオクロックと同じ速度で処理をおこなわなければならない場所であるにもかかわらず、２値化スライス値Ｓを、平均濃度算出部３０４の結果が出力された後、スライス値制御部３０５の結果を求め、さらに、その結果を用いて加算部３０６で演算している為である。
【００５８】
そこで、第２の実施形態では、高速なビデオクロックにも対応できるように、２値化しきい値Ｓを求める演算部を変更した。すなわち、第１の実施形態では平均濃度算出値ｍに基づいて決定していたスライス値変更量IIを、第２の実施形態では乱数と入力された画像信号とに基づいて決定する。以下、第２の実施形態を詳細に説明する。
【００５９】
●階調変換処理部
図１５は第２の実施形態による階調変換処理部の構成を示すブロック図である。図１５において、乱数発生部１１０１は、図１６に示されるようなｍ系列のシフトレジスタ符号系列発生器を用いて構成される。これは、シフトレジスタの段数をＮとすると２Ｎ−１を周期とする疑似乱数を簡単なハードウェアで容易に発生できる。本構成では、Ａ３原稿を４００ｄｐｉで処理をしても周期性が現れないようにする為に２５段の１ｂｉｔシフトレジスタにより構成した。この２５段のシフトレジスタは、ｍ系列の乱数となっており、論理的に４００ｄｐｉのＡ３原稿の画素分同じ周期にはならない。これは論理的に求まるものである。
【００６０】
本乱数発生器は、シフトレジスタ１２０２の各レジスタのうち、初期化でｐ［ｉｉ］：（０≦ｉｉ≦２５）のレジスタに“０”を書き込み、ｐ［１２］のレジスタのみに“１”を設定する。なお、１２０３〜１２０５は夫々ＸＯＲゲートである。そして、乱数値を出力する前に、毎回
p[0]＝((p[25]^p[24]^p[23]^p[22])&1)
の演算をおこない、シフトレジスタ１２０２のｐ［１７］〜ｐ［２１］のレジスタ値を用いて乱数を求める。即ち、
乱数＝(1-2*p[2])*(p[17]*16+p[18]*8+p[19]*4+p[20]*2+p[21])
により、−３１〜３１の乱数値を出力する構成としている。
【００６１】
なお、第２の実施形態では、−３１〜３１の乱数を用いているが、この乱数発生部を、
乱数＝(1-2*p[2])*(p[18]*8+p[19]*4+p[20]*2+p[21〕)
として、−１５〜１５までの乱数値を出力する様に変更してもよい。
【００６２】
無論、乱数の値を０にしてしまうことも可能だが、２値化スライス値を変化させテクスチャ制御を自然に行う為には、ある程度の乱数が付加されたデータを用いるのが良い。
【００６３】
加算部１１０２は、乱数発生部１１０１の出力値Ｒと、階調変換処理部２０４の入力値Ｄとを加算し、出力値ＤＲを求める処理部である。ここでは、図示していないが、加算結果が、０以下になった場合は加算結果を強制的に０にし、２５５以上になった場合は加算結果を強制的に２５５にするリミッタが入っている。すなわち、
ＤＲ＝Ｒ＋Ｄ
ｉｆ（ＤＲ＞２５５）｛ＤＲ＝２５５；｝
ｉｆ（ＤＲ＜０）｛ＤＲＳ＝０；｝                …（４）
で表される処理を行う。
【００６４】
スライス値制御部１１０３は、加算部１１０２からの出力値ＤＲを入力しスライス値変更量IIを演算して出力する。図１７は第２の実施形態によるスライス値制御部１１０３の動作を示す図である。ここでは、説明を明確にする為に第１の実施形態と同様にプログラム言語Ｃによる記述で示した。なお、第１の実施形態において図１１に図示した如くハードウエアで構成できることは当業者には明らかであろう。
【００６５】
図１７において、１３０１部は、入力された加算部１１０２の出力値ＤＲ（０〜２５５の値を取り得る）が、定数ＬＲ１（例えば３２）未満の場合、スライス値変更量IIを０に設定するような処理をおこなう。
【００６６】
また、１３０２部は、入力された信号ＤＲが、定数ＬＲ１以上かつ定数ＬＲ２（例えば１２８）未満の場合に、スライス値変更量IIを以下の式（５）により求める。すなわち、
II＝ＡＬＦ ×（ＤＲ−ＬＲ１）／（ＬＲ２−ＬＲ１）  …（５）
ここで、ＡＬＦは定数（例えば３２）である。
【００６７】
この演算により、スライス値変更量IIの値は、入力された信号ＤＲの値が定数ＬＲ１から定数ＬＲ２に増加するに従い、徐々に０から定数ＡＬＦに近づくことになる。
【００６８】
同様な処理を１３０３部、１３０４部、１３０５部でもおこなう。つまり、１３０３部では、入力された信号ＤＲが、定数ＬＲ２以上かつ定数ＬＲ３（例えば１９２）未満の場合に、スライス値変更量IIを定数ＡＬＦとして出力する。また、１３０４部では、入力された信号ＤＲが、定数ＬＲ３以上かつ定数ＬＲ４（例えば２５０）未満の場合に、スライス値変更量IIを以下の（６）式により求める。すなわち、
II＝ＡＬＦ ×（ＬＲ４−ＤＲ）／（ＬＲ４−ＬＲ３）  …（６）
これは、先程の１３０２部とは逆に、入力された信号ＤＲの値がＬＲ３から定数ＬＲ４に増加するに従い、スライス値変更量IIが、徐々に定数ＡＬＦから０に近づくことになる。また、１３０５部では、入力された信号ＤＲがＬＲ４以上の時、スライス値変更量IIを０にする処理をおこなう。
【００６９】
以上の処理により、スライス値制御部１１０３の出力値であるスライス値変更量IIは、加算部１１０２より入力された信号ＤＲの値により図１３のように制御されることとなる。ただし、第２の実施形態では、図１３における横軸が入力された信号ＤＲとなる。
【００７０】
以上のように、実施形態２では、平均濃度算出値ｍの値に関係なく、画像信号Ｄと乱数Ｒとの値により、２値化のスライス値変更量IIを求められる。つまり、平均濃度算出部３０４で出力値ｍの値を演算している間に、パラレルにスライス値変更量IIを演算することが可能となる。このため、平均濃度算出部３０４と２値化部３０１のタイミングに余裕ができることになる。よって、本手法は、高速なビデオクロックに有効な手法となる。
【００７１】
なお、最終的に２値化部３０１に入力される２値化スライス値Ｓは、加算部３０６において第１の実施形態と同様に
Ｓ＝ｍ＋II−ＡＬＦｍ
で求めている。
【００７２】
その結果、第１の実施形態と同様に、２値化したドットの集中化具合を任意の領域で自由にコントロールできることになる。つまり、任意の領域でドットを集中させたり、分散させたりすることが可能となる。
【００７３】
［第３の実施形態］
つぎに、第３の実施形態を説明する。従来の手法においても、上記各実施形態の手法においても、ドットの集中化において、ｎ値化のしきい値を、入力画像信号量、或いは乱数の加算された入力画像信号量に応じて制御するだけでは、正確にテクスチャ制御が出来ない。同様に、過去の２値化結果に重み付けして加算した加算量でｎ値化しきい値を制御しても、正確にテクスチャ制御は出来ない。そこで、第３の実施形態では、正確なテクスチャ制御を実現する。なお、第３の実施形態の複写機の全体的な構成は第１の実施形態（図１、図２）と同様である。また、以下では階調変換処理部（２０４）について説明を行うが、第１の実施形態と同様な部分は、同一番号を付け、その説明を省略する。
【００７４】
●階調変換処理部
図１８は第３の実施形態による階調変換処理部の詳細な構成を示すブロック図である。尚、本実施形態においても、擬似中間調処理としてＭＤ法を例に挙げて説明する。
【００７５】
誤差補正部２３０２は、カラーモノクロ変換部２０３の信号Ｄに後述する乱数を加算した信号ＤＲと、後述する２値化処理部２３０１で発生した誤差データＥとを入力し、後述する誤差補正を行った画像信号ＤＥを算出する。算出された画像信号ＤＥは２値化部２３０１へ入力される。
【００７６】
２値化部２３０１は、画像信号ＤＥと、後述する２値化スライス値Ｓと、後述する平均濃度算出値ｍとを入力し、画像信号ＤＥと２値化スライス値Ｓとを比較することによって、２値出力Ｎを求めた後、画像信号ＤＥと平均濃度算出値ｍとを減算処理することによって、２値化誤差データＥの算出を行う。
【００７７】
２値化結果遅延部２３０３は、２値出力Ｎを入力し、所定のライン数の遅延を行い、複数ラインの２値化結果Ｎｍｎ及びＢ*ijを得る。そして、Ｎｍｎは平均濃度算出部２３０４へ、Ｂ*ijはしきい値算出部２３０５にそれぞれ入力される。
【００７８】
平均濃度算出部２３０４は、複数ラインの２値化結果Ｎｍｎを入力し、予め設定してある係数と、遅延された２値結果とで積和演算を行い平均濃度算出値ｍを得る。そして、得られた平均濃度算出値ｍは、しきい値算出部２３０５と２値化部２３０１とへ出力される。
【００７９】
しきい値算出部２３０５は、平均濃度算出部２３０４より出力される平均濃度算出値ｍ、２値化結果遅延部２３０３より出力されるＢ*ij、入力多値データＤ、およびヒステリシス制御量算出部２３０８の出力Ｔとを入力し、Ｂ*ij信号によって示される過去の２値化状況（パターン）に基づいて、各濃度領域に於けるしきい値制御量を算出し、２値化スライス値Ｓとして２値化部２３０１ヘ出力する。
【００８０】
乱数発生部２３０６は、後述する手法により、−１７から＋１７の間のｍ系列の乱数を生成する。加算部２３０７では、階調処理部２０４に入力された画像信号Ｄと乱数発生部２３０６よりの乱数Ｒとの加算処理が行われて信号ＤＲが得られる。このとき、図示していないが、加算結果ＤＲが０〜２５５の間に収まるようにリミッタ処理が行われて、加算部２３０７よりＤＲが出力される（詳細は後述する）。
【００８１】
ヒステリシス制御量算出部２３０８は、後述する手法により、加算部３０７の出力信号ＤＲに応じたしきい値制御を行う。以下、図面を参照しながら各処理部の詳細を説明する。
【００８２】
２値化部２３０１は、第１の実施形態で説明した２値化部３０１と同様の構成（図４）を備える。すなわち、画像信号ＤＥと、後述する２値化スライス値Ｓと、後述する平均濃度算出値ｍとを入力し、これらを比較することによって、２値出力Ｎ及び２値化誤差データＥの出力を行う。入力された画像信号ＤＥは、２系統に別れ、一方は比較回路４０１に入力され、もう一方は減算回路４０２に入力される。
【００８３】
比較回路４０１では、画像信号ＤＥと２値化スライス値Ｓとの値を比較し、
ＤＥ＞Ｓ  の時は、Ｎ＝１、
ＤＥ≦Ｓ  の時は、Ｎ＝０
として２値出力Ｎを出力する。また、減算回路４０２では、平均濃度算出値ｍから画像信号ＤＥの値を差し引き、２値化誤差データＥとして、
Ｅ＝ｍ−ＤＥ
なる出力を行う。
【００８４】
図１９は第３の実施形態による誤差補正部２３０２の構成を示すブロック図である。画像信号Ｄと乱数発生部２３０７よりの乱数Ｒとの和である画像信号ＤＲと、前記２値化誤差データＥとを入力し、画像信号ＤＲに誤差補正を行った画像信号ＤＥを算出し、２値化部２３０１へと出力を行う。なお、誤差補正部２３０２は、第１の実施形態による誤差補正部３０２とほぼ同一の構成を有し、第１の実施形態では画像信号Ｄを入力するが、第３の実施形態では画像信号Ｄと乱数発生部２３０７よりの乱数Ｒとの和である信号ＤＲが入力される。
【００８５】
入力された２値化誤差データＥは除算回路５０１によって１／２にされる。その結果は２系統に分岐し、一方は減算回路５０２に入力、もう一方はラインバッファ５−３に入力される。減算回路５０２では、２値化誤差データＥとＥ／２の差ＥＢ（＝Ｅ−Ｅ／２）を算出し、加算回路５０４にその結果を入力する。加算回路５０４では、複数ビット（本実施形態の場合８ビットとする）１ライン分のラインバッファ５０３によって１ライン分遅延されたＥＡとＥＢとの和を算出し、加算回路５０５に出力する。加算回路５０５では、１ライン分遅延されたＥＡとＥＢとの和と、画像信号ＤＲとの和（画像信号ＤＥ）を算出し、これを出力する。
【００８６】
結局、図６に示したように、誤差補正部２３０２では、注目画素に対応する画像信号ＤＲについて１ライン上の画素Ａを２値化したときの２値化誤差ＥＡと１画素前のＢを２値化したときの２値化誤差ＥＢの値を注目画素の画像信号ＤＲに足し込む処理を行う。
【００８７】
図２０は第３の実施形態による２値化結果遅延部２３０３の構成を示すブロック図である。２値化結果遅延部２３０３は、２値出力Ｎを入力し、所定のライン数の遅延を行い、複数ライン分の２値化結果Ｎｍｎ、Ｂ*ijを得、平均濃度算出部３０４及びしきい値算出部３０５に送る。
【００８８】
図２０において、入力された２値出力Ｎは、１ビット１ライン分のラインバッファ６０１からラインバッファ６−２へと送られていき、データがライン毎に遅延されていく。また、遅延されないデータは、１画素分の遅延回路からなる遅延６０３から遅延６０８によって、次々と１画素分の遅延がなされる。そして、遅延６０６の出力、遅延６０７の出力をそれぞれＮ１４、Ｎ１５として出力する。ラインバッファ６０１によって１ライン分遅延がなされた２値化データは、遅延６０９から遅延６１４によって、遅延され、遅延６０９から６１３の出力がＮ２１からＮ２５として、また、ラインバッファ６０２によってもう１ライン分遅延がなされた２値化データは、遅延６１５から遅延６２０によって、遅延され、遅延６１５から６１９の出力がＮ３１からＮ３５として出力される。
【００８９】
同時に、遅延６０７から６０８の出力をそれぞれＢ２０、Ｂ３０として出力する。また、ラインバッファ６０１によって１ライン分遅延がなされた２値化データは、遅延６０９から遅延６１４によって、遅延され、それぞれＢ３２からＢ０２、Ｂｉ１２からＢｉ３２として出力される。さらに、ラインバッファ６０２によってもう１ライン分遅延がなされた２値化データは、遅延６１５から遅延６２０によって、遅延され、それぞれＢ３１からＢ０１、Ｂｉ１１からＢｉ３１として出力される。
【００９０】
つまり、平均濃度算出部２３０４では、２次元の画像を２値化したデータが、複数ライン、複数画素の遅延処理が施され、複数ラインの２値化結果Ｎｍｎとして図８のような状態で平均濃度算出部３０４に入力されることとなる。更に、複数ラインの２値化結果であるＢ*ijが、後述の図２４に示す状態でしきい値算出部２３０５に出力される。
【００９１】
平均濃度算出部２３０４は、複数ライン２値化結果Ｎｍｎを入力し、予め設定してある係数と遅延された２値結果とで積和演算を行い、２値化部２３０１及びしきい値算出部２３０５とで使用する平均濃度算出値ｍの出力を行うもので、図９及び図１０で上述したような構成からなる。
【００９２】
乱数発生部２３０６には、図２１に示したようなｍ系列のシフトレジスタ符号系列発生器を用いる。これは、構成するシフトレジスタの段数をＮとすると２Ｎ−１を周期とする疑似乱数を簡単なハードウェアで容易に発生できる。本構成では、Ａ３原稿を４００ｄｐｉで処理をしても周期性が現れないようにする為に２５段の１ｂｉｔシフトレジスタにより構成した。その構成は、第２の実施形態（図１６において説明したとおりである。
【００９３】
ただし、第３の実施形態の乱数発生器では、図２１に示すように−１７以上＋１７以下の範囲の乱数を発生する。すなわち、初期化でｐ［ｉｉ］：（０≦ｉｉ≦２５）のレジスタに“０”を書き込み、ｐ［１２］のレジスタのみに“１”を設定する。そして、乱数値を出力する前に、毎回
p[0]=((p[25]^p[24]^p[23]^p[22])&1)
の演算をおこない、
乱数＝（1-2*p[22])*(((p[15]*64+p[16]*32+p[17]*16+p[18]*8+p[19]*4+p[20]*2+p[21])*17)/128)
により、−１７〜１７の乱数値を出力する構成としている。
【００９４】
なお、第３の実施形態では、−１７〜１７の乱数を用いているが、乱数発生部２３０６を
乱数＝(1-2*p[2])*(p[18]*8+p[19]*4+p[20]*2+p[21])
として、−１５〜１５までの乱数値を出力する様に変更してもよい。
【００９５】
無論、乱数の値を０にしてしまうことも可能だが、２値化スライス値を変化させテクスチャ制御を自然に行う為には、ある程度の乱数が付加されたデータを用いるのが良い。
【００９６】
加算部２３０７は、前述したように、階調処理部２０４に入力された画像信号Ｄと乱数発生部２３０６よりの乱数Ｒの間で加算処理を行う。このとき、加算結果ＤＲが０〜２５５の間に収まるようにリミッタ処理が行われる。即ち、加算部２３０７では、
ＤＲ＝Ｄ＋Ｒ
ｉｆ（ＤＲ＞２５５）｛ＤＲ＝２５５；｝
ｉｆ（ＤＲ＜０）｛ ＤＲ＝０；｝
なる処理が行われて、得られた信号ＤＲが誤差補正部２３０２及びヒステリシス制御量算出部２３０８へ出力される。
【００９７】
ヒステリシス制御量算出部２３０８は、入力信号ＤＲに応じて、スライス値変更量IIの値を変化させて、これに基づいて信号Ｔを生成、出力する。これは、任意の濃度領域におけるヒステリシス量を調整するものである。このようなスライス値変更量IIの制御により、任意の濃度領域でのテクスチャ制御が可能となるのである。図２２は第３の実施形態によるヒステリシス制御量算出部２３０８の動作を示す図である。ここでは、説明を明確にする為にプログラム言語Ｃによる記述で示した。
【００９８】
スライス値変更量IIの制御方法の一例（図２２）を示せば次の通りである。即ち、入力された信号ＤＲが定数ＬＲ１（例えば、ＬＲ１＝１６）以下の場合、スライス値変更量IIを０に設定するような処理をおこない、入力された信号ＤＲが定数ＬＲ１より大きくかつ定数ＬＲ２（例えば、ＬＲ２＝４８）以下の場合には、スライス値変更量IIを次式により求める。
【００９９】
II＝((DR-LR1)*(ALF*256/(LR2-LR1)))/256
この演算により、入力信号ＤＲの値が定数ＬＲ１から定数ＬＲ２に増加するに従い、IIの値は、徐々に０から定数ＡＬＦに近づくことになる。なお、ＡＬＦは定数（本例では３２）である。
【０１００】
同様に、入力信号ＤＲが、定数ＬＲ２より大きくかつ定数ＬＲ３（例えば、ＬＲ３＝２３３）以下の場合には、スライス値変更量IIを一定な定数ＡＬＦとして出力する。さらに、入力信号ＤＲが、定数ＬＲ３より大きくかつ定数ＬＲ４（例えば、ＬＲ４＝２５５）以下の場合には、スライス値変更量IIを次式により求める。すなわち、
II=ALF-((DR-LR3)*(ALF*256/(LR4-LR3)))/256
これは、入力信号ＤＲの値がＬＲ３から定数ＬＲ４に増加するに従い、スライス値変更量IIが、徐々に定数ＡＬＦから０に近づくことを示している。
【０１０１】
一方、入力信号ＤＲがＬＲ４より大きい場合には、スライス値変更量IIを０に設定するような処理が行われる。
【０１０２】
以上のようにして得られるスライス値変更量IIから、定数ＡＬＦｍ（例えば、ＡＬＦｍ＝１６）を減算したものが、出力信号Ｔとして出力される。この減算を行う目的は、ヒステリシス制御量算出部３０８の信号Ｔを負の値から正の値まで変化させる為である。これにより、ラチチュードが広い範囲で任意の濃度領域に於けるテクスチャ制御が可能となる。なお、図２２で示される動作を、図１１で示した如くハードウエアで構成できることは当業者には明らかであろう。
【０１０３】
次に、第３の実施形態の特徴的な構成の一つであるしきい値算出部２３０５について、説明する。図２３は第３の実施形態によるしきい値算出部２３０５の動作を説明する図である。また、図２４は第３の実施形態による２値化結果出力Ｂ*ijを説明する図である。なお、図２３においては、説明を明瞭にするためにプログラム言語Ｃで示したが、ハードウエアでも構成できることは明らかであろう。
【０１０４】
しきい値算出部２３０５には、平均濃度算出値ｍ、Ｂ*ij、入力多値データＤ、及びヒステリシス制御量算出部２３０８の出力Ｔとが入力される。その後、図２３に示してあるように、信号Ｔの値を、それぞれ定数ＬＴ１（＝２），ＬＴ２（＝４），ＬＴ３（＝８），ＬＴ４（＝１６）で割って、内部で変数Ａ（＝Ｔ／ＬＴ１），Ｂ（Ｔ＝／ＬＴ２），Ｃ（＝Ｔ／ＬＴ３），Ｄ（＝Ｔ／ＬＴ４）を求めている。
【０１０５】
さらに、しきい値算出部２３０５は、２値化結果遅延部２３０３からの出力Ｂ*ijによって示される２値化結果の配置状態（パターン）に応じて、２値化スライス値Ｓの値を、平均濃度算出値ｍと上記で求めた変数Ａ，Ｂ，Ｃ，Ｄとで制御している。２値化結果配置状態は、図２４のＢ３２からＢｉ３２、Ｂ３１からＢｉ３１、Ｂ３０、Ｂ２０に示した通りである。これらは、すべて過去の２値化結果をあらわしている。
【０１０６】
実際に２値化結果の配置（パターン）に応じて、２値化スライス値Ｓが制御される様子を図２３を用いて説明する。
【０１０７】
注目画素の周りの２値化状況が、
[B32==0 && B22==1 && B12==0 && B21==0 && B11==1 && B01==0]、または、
[Bi12==0 && Bi22==1 && Bi32==0 && B01==0 && Bi11==1 && Bi21==0]
の場合には、２値化スライス値Ｓを強制的にｍａｘの定数２５５にして出力する。これは、上記の条件の時に、強制的にドットを打ちにくくする為である。ここで、Ｂ３２＝＝０の“０”は、ドットが打たれていない状態を表し、Ｂ２２＝＝１の“１”は、ドットが打たれた状態を表している。
【０１０８】
また、注目画素の周りの２値化状況が、
[B12==0 && B02==0 && Bi12==0 && Bi22==0 && Bi32==0 && B11==0 && B01==0 && Bi11==1 && Bi21==0 && Bi31==0 && B20==0 && B10==0 && hi==1]
で、かつ入力多値データＤが、３１（０〜２５５中の３１）未満の場合にも、２値化スライス値Ｓを強制的にｍａｘの定数２５５にして出力する。この処理も、上記の条件の時に、強制的にドットを打ちにくくする為のものである。
【０１０９】
さらに、上記の条件で、入力多値データＤが、３１（０〜２５５中の３１）以上の場合には、２値化スライス値Ｓを平均濃度算出値ｍに設定して出力をおこなう。これは、過去の２値化結果が特定の配列（パターン）になった場合には、テクスチャ制御をおこなわないようにする為である。
【０１１０】
一方、注目画素の周りの２値化状況が、
[B02==0 && Bi12==0 && B11==0 && B01==1 && Bi11==1 && Bi21==0 && B20==0 && B10==0]
の場合には、２値化スライス値Ｓを平均濃度算出値ｍから、変数Ａを減算した値（Ｓ＝ｍ−Ａ）に設定して出力する。これは、上記の条件の時に、強制的にドットを打ち易くする為である。
【０１１１】
同様に、各２値化結果のパターンに応じて、２値化スライス値Ｓの値を平均濃度算出値ｍと内部変数Ａ，Ｂ，Ｃ，Ｄとを用いて２値化スライス値Ｓを制御していく。その結果、ヒステリシス制御量算出値Ｔが正の場合には、ドットが打たれやすい方に制御され、ヒステリシス制御量算出値Ｔが負の場合には、ドットが打たれにくい方に制御される。
【０１１２】
以上のように、しきい値算出部２３０５では、過去の２値化配置状態（パターン）に応じて制御量を変えたことが主要な特徴の一つである。
【０１１３】
以上のような処理を各画素に関して順次行っていくと、ヒステリシス制御量算出値Ｔの値に応じて任意の濃度領域で、かつ、２値化結果遅延部２３０３の出力値Ｂ*ijの値に応じて任意の形のテクスチャに制御が可能となる。
【０１１４】
第３の実施形態では、２×２の画素単位のテクスチャになるような制御をおこなっている。これにより、プリンターの特性で一画素が安定しない領域で任意の数のドットを集めて安定化させた画像形成ができる。
【０１１５】
以上のような処理がしきい値算出部２３０５で行われた後、前述した２値化部２３０１により、２値化処理がおこなわれる。そして、２値化部2301より出力される２値信号は、階調変換処理部２０４から出力され、プリンタ部１０５でプリントアウトされる。
【０１１６】
［第４の実施形態］
次に第４の実施形態を詳細に説明する。なお、第４の実施形態の複写機の全体的な構成は第１の実施形態（図１、図２）と同様である。また、以下では階調変換処理部（２０４）について説明を行うが、第３の実施形態と同様な部分は、同一番号を付け、その説明を省略する。
【０１１７】
第３の実施形態で示した構成は、画像信号Ｄが送られてくるビデオクロックが高速になると、２値化スライス値Ｓを求めるタイミングが時間的に苦しくなる。それは、平均濃度算出部２３０４と２値化部２３０１の間は、ビデオクロックと同じ速度で処理をおこなわないとならないにもかかわらず、平均濃度算出部２３０４の結果が出力された後に、しきい値算出部２３０５が２値化スライス値Ｓを求めなくてはならない為である。つまり、平均濃度算出部２３０４と２値化部２３０１との間に、負荷の重いしきい値算出部２３０５の処理が入っていることが、高速化を妨げる理由となっている。
【０１１８】
そこで、第４の実施形態では、第３の実施形態の構成において、高速なビデオクロックにも対応できるように２値化しきい値Ｓを求める演算部を変更する。以下、第４の実施形態の階調変換処理部２０４について説明する。
【０１１９】
図２５は第４の実施形態による階調変換処理部の構成を示すブロック図である。図２５において、第３の実施形態（図１８）と相違する主要な点は、第３の実施形態ではしきい値算出部２３０５へ入力されていた平均濃度算出部２３０４よりの平均濃度算出値ｍが、第４の実施形態ではしきい値算出ぶ２３０９には入力されていない点である。
【０１２０】
しきい値算出部２３０９には、注目画素直前の２値化結果であるＢ10を除く２値化結果遅延部３０３の出力Ｂ’*ijと、ヒステリシス制御量算出部２３０８の出力Ｔと、多値信号Ｄとが入力される。また、しきい値算出部２３０９は、２値化スライス値Ｓ’を注目画素直前の２値化結果（Ｂ10）を参照せずに決定することができるようになっている。これらにより、平均濃度算出部２３０４によって平均濃度値ｍが求まる前に、予め２値化スライス値Ｓ’を求めることが可能となる。
【０１２１】
図２６は第４の実施形態によるしきい値算出部の動作を説明する図である。ここでは、説明の関係上プログラム言語Ｃで示したが、図２６で示されるような機能をハードウエアでも実現できることは明らかである。
【０１２２】
まず、始めに、しきい値算出部２３０９へ入力されたヒステリシス制御量算出部２３０８の信号Ｔの値を、それぞれ、定数ＬＴ１（＝２），ＬＴ２（＝４），ＬＴ３（＝８），ＬＴ４（＝１６）で割って、第３の実施形態と同様に内部変数Ａ（＝Ｔ／ＬＴ１），Ｂ（＝Ｔ／ＬＴ２），Ｃ（＝Ｔ／ＬＴ３），Ｄ（＝Ｔ／ＬＴ４）を求める。
【０１２３】
次に、しきい値算出部２３０９は、２値化結果遅延部２３０３からの出力Ｂ’*ijの２値化結果配置状態（パターン）に応じて、２値化スライス値Ｓ’の値を、変数Ａ，Ｂ，Ｃ，Ｄと定数で制御する。つまり、第３の実施形態とは異なり、平均濃度算出部２３０４の出力ｍは用いない。なお、しきい値算出部２３０９で用いられる２値化結果配置状態（パターン）は、図２７に示した通りである。これらは、すべて過去の２値化結果をあらわしており、注目画素の一つ前の画素は参照していない。
【０１２４】
このように、注目画素の一つ前の画素を参照しないことにより、高速化への対応が可能となる。すなわち、注目画素直前の画素まで参照したものを、しきい値算出部に入力した場合は、演算結果が出るまでにかなりの時間がかかってしまう。つまり、直前の画素の結果がわかるのを待った後に、しきい値算出を行わなくてはならない。その場合、平均濃度算出部からの出力信号とのタイミングをあわせるためには、かなり高速な演算スピードが要求されることになる。これは１クロック内のタイミングで負荷の重い演算を複数回やならなくてはならないので現実的ではない。よって、しきい値算出部には、注目画素の直前を参照しないで、先にしきい値算出を行いはじめることにより、平均濃度算出部とのタイミングを取り易くし、高速化に対応させている。
【０１２５】
実際に２値化結果の配置（パターン）に応じて、２値化スライス値Ｓ’が制御される様子を図２６を参照して説明すると次の通りである。
【０１２６】
注目画素の周りの２値化状況が
[B32==0 && B22==1 && B12==0 && B21==0 && B11==1 && B01==0]または、
[Bi12==0 && Bi22==1 && Bi32==0 && B01==0 && Bi11==1 && Bi21==0]の場合には、２値化スライス値Ｓを強制的にｍａｘの定数２５５にして出力する。これは、第１の実施形態と同様に上記の条件の時に、強制的にドットを打ちにくくする為である。
【０１２７】
また、注目画素の周りの２値化状況が、
[B12==0 && B02==0 && Bi12==0 && Bi22==0 && Bi32==0 && B11==0 && B01==0 && Bi11==1 && Bi21==0 && Bi31==0 && B20==0 && hi==1]で、かつ入力多値データＤが、３１（０〜２５５中の３１）未満の場合にも、２値化スライス値Ｓを強制的にｍａｘの定数２５５にして出力する。これも、上記の条件の時に、強制的にドットを打ちにくくする為である。
【０１２８】
ただし、このとき、第３の実施形態とは異なり、注目画素の一画素前の結果を参照していない。
【０１２９】
一方、上記の条件で、入力多値データＤが、３１（０〜２５５中の３１）以上の場合には、２値化スライス値Ｓ’を平均濃度算出値ｍに設定して出力をおこなう。これは、過去の２値化結果が特定の配列（パターン）になった場合には、テクスチャ制御をおこなわないようにする為である。無論、ここでいう−３１という定数は、決まった値ではなく、パラメータであり４８や６４などの別な値にも設定可能である。
【０１３０】
このとき、３１の値を大きくすると、積極的にテクスチャ制御がかかりやすくなり、逆に、小さくするとテクスチャ制御がかかりにくくなることは言うまでもない。
【０１３１】
一方、注目画素の周りの２値化状況が、[B02==0 && Bi12==0 && B11==0 && B01==1 && Bi11==1 && Bi21==0 && B20==0]の場合には、２値化スライス値Ｓを平均濃度算出値ｍから、変数Ａを減算した値（Ｓ＝ｍ−Ａ）に設定して出力する。これは、上記の条件の時に、強制的にドットを打ち易くする為である。このときも、注目画素直前の２値化結果は参照しないで処理をおこなっている。
【０１３２】
同様に、各２値化結果のパターンに応じて、注目画素直前の結果を参照せずに２値化スライス値Ｓの値を内部変数Ａ，Ｂ，Ｃ，Ｄと定数とを用いて２値化スライス値Ｓ’を制御していく。
【０１３３】
その結果、ヒステリシス制御量算出値Ｔが正の場合には、ドットが打たれやすい方に制御され、ヒステリシス制御量算出値Ｔが負の場合には、ドットが打たれにくい方に制御される。
【０１３４】
以上のような処理を各画素に関して順次行っていくと、ヒステリシス制御量算出値Ｔの値に応じて任意の濃度領域で、かつ、２値化結果遅延部２３０３の出力値Ｂ’*ijの値に応じて任意の形のテクスチャに制御が可能となる。
【０１３５】
なお、第４の実施形態では、第１の実施形態と同様に２×２の画素単位のテクスチャになるような制御をおこなっている。これにより、プリンタの特性で一画素が安定しない領域で任意の数のドットを集めて安定化させた画像形成ができる。つまり、高速処理の為に注目画素の１画素前を参照しなくとも、第３の実施形態と同等な効果が得られる。
【０１３６】
次に、このようにして求められた２値化スライス値Ｓ’は、平均濃度算出部２３０４の出力ｍと共に、加算部２３１０に入力されて加算処理がおこなわれる。このとき、２値化スライス値Ｓ’の信号が２５５のときには、２値化スライス値Ｓを２５５として出力し、それ以外のときには、Ｓ＝Ｓ’＋ｍの演算をおこなって出力している。その様子を、図２８に示した。以上のように、加算部２３１０により、２値化スライス値Ｓ’から２値化スライス値Ｓが求められた後、第３の実施形態と同様に、２値化部２３０１により、２値化処理がおこなわれ、その２値信号を階調変換処理部２０４から出力し、プリンタ部１０５でプリントアウトする。
【０１３７】
以上説明したように、上記各実施形態によれば、１ドットが正確に再現出来ないプリンターに対してドットの集中化量を制御し、安定した画像形成を行わせることができる。また、ＡＬＦ、ＡＬＦｍ、ＬＲ１〜４を設定可能とすることにより、プリンターの特性にあわせてテクスチャー制御が可能となる。
【０１３８】
また、ドットが分散して疑似輪郭やムラが発生しやすい濃度領域に対してドットを集中化制御を行うことにより、画質を改善できる。
【０１３９】
さらに、ＦＡＸなどの通信で、誤差拡散系の画像だと圧縮率が上げられない問題があったが、本手法によりドットを集中化制御すると、白ドットや黒ドットが続く比率が上げられる為、圧縮率を上げることも可能となる。
【０１４０】
特に第３、第４の実施形態によれば、１ドットが正確に再現出来ないプリンターに対して安定したドット集中化制御を行うことができ、プリンターの特性にあわせて正確なテクスチャー制御が可能となる。このため、高精細な画像形成が可能となる。
【０１４１】
さらに、本発明の過去のｎ値化結果を参照する処理により、２×２のドット集中型のテクスチャに限らず、２×１や１×２のドット集中型に正確にコントロール出来るようになる。また、参照する過去のｎ値化結果の領域を広げる事により、３×３や２×３などの任意な形で、正確なドット集中化制御が可能となる。
【０１４２】
なお、上記実施形態では、画像信号Ｄに加える乱数は、画質に影響のない程度の乱数を用いる。この乱数により、ミミズがはったような特有のテクスチャを改善している。実際には、一画素おきに絶対値が等しく、符号のみが異なる乱数を加算している。例えば、「-R1、0、+R1、0、-R2、0、+R2、0…」といった具合に加算していく。ここで、R1、R2等は符号も含めた乱数を意味している。このように符号を変えて絶対値が等しい乱数を周期的に加算することにより、乱数の低周波成分が低減され、人間の目につくザラツキ感を抑えることができる。つまり、乱数による画質劣化のない状態で、テクスチャの改善が可能となる。
【０１４３】
［他の実施形態］
上記各実施形態では、２値化について述べたが、本発明はこれに限定されるものではない。つまり、４値化、８値化、１６値化などの一般的な多値化にも適用ができる。さらに、上記各実施形態では、平均濃度保存法（ＭＤ法）に限定したものではなく、一般的な誤差拡散法（ＥＤ法）にも適用できることは言うまでもない。
【０１４４】
また、白黒（単色）の処理のみに限らず、カラーの信号に対しても、色信号毎にドットの集中化量を変えて処理できることの言うまでもない。これは、各色のプロセス条件の差異を、吸収できる効果がある。例えば、黒色のみ孤立ドットが安定して再現出来ないプリンターの場合は、黒色だけをテクスチャー制御によってドットを集中化させるということが可能となる。
【０１４５】
さらに、第１、第２の実施形態において、スライス値制御部は平均濃度算出値ｍや乱数が加算された画像信号ＤＲを用いたが、単なる入力画像信号によってスライス値変更量を制御するように構成することもできる。
【０１４６】
また、スライス値制御部（３０５、１１０３）を省略し、直接、平均濃度算出部３０４（第１の実施形態）の信号や加算部１１０２（第２の実施形態）の信号を、加算部３０６に入力してもよい。ただし、この場合、任意の濃度領域ではなく、全濃度域に対してテクスチャ制御の効果が得られるようになる。ここで、全濃度域に対してテクスチャ制御が行われるが、従来のように一律に、単に２画素単位でドットを出力することでないので、解像度が落ちたという印象を受ける画質にはならない。
【０１４７】
一方、平均濃度算出値ｍや入力画像信号ＤＲによらず、一定な値で２値化スライス値の変更量を制御しても、テクスチャ制御は可能である。なお、この一定な値は操作部１１１より設定可能に構成してもよい。なお、一定のスライス値変更量llを操作部から指定するということは、図１４における加算部３０６のスライス値変更量llがダイレクトに設定できるということである。その結果、加算部３０６から出力される信号Ｓの大きさが任意に制御可能となり、テクスチャの集中化量がコントロールできることになる。つまり、ドットの集中化具合が操作部から設定可能になる。
【０１４８】
さらに、第３及び第４の実施形態では、２ラインの過去の２値化結果を参照して、２×２のドット集中型のテクスチャを作成しているが、本発明はこれに限定されるものではなく、２×１のドット集中型のテクスチャや、さらには、３ラインの過去の２値化結果を参照して、３×３のドット集中型のテクスチャや３×２のドット集中型のテクスチャにすることも可能である。
【０１４９】
なお、上記各実施形態では、階調変換処理部２０４（図１）をハードウエア主体とした構成で説明したが、処理速度が追従するのであれば、階調変換処理部２０４に関して説明した処理の一部もしくは全部をソフトウエアによって実現することも可能である。この場合、ＲＯＭ１０７に制御プログラムを格納し、ＣＰＵ１０６によってこれを実行することになる。
【０１５０】
また、上記各実施形態において用いられる定数、ＡＬＦ、ＡＬＦｍ、ＬＲ１〜ＬＲ４、ＬＴ１〜ＬＴ４の各値は、操作部１１１から所望の値を設定できるように構成してもよい。
【０１５１】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【０１５２】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１５３】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１５４】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１５５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５６】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５７】
【発明の効果】
以上説明したように本発明によれば、多値画像データのｎ値化状態に基づいてドットの集中化を制御することが可能となり、ドット集中化に伴う出力解像度の低下が防止される。
また、本発明によれば、プリンタの特性に応じたドットの集中化量の制御が可能となる。
また、本発明によれば、例えば疑似輪郭やムラが発生しやすい所望の濃度領域においてドットの集中化量を制御することが可能となる。
また、本発明によれば、過去のｎ値化の結果の配置パターンに応じてｎ値化処理のしきい値を制御することで、正確なテクスチャの制御が可能となる。
【０１５８】
【図面の簡単な説明】
【図１】第１の実施形態による複写機の処理構成全体の概略を示したブロック図である。
【図２】画像処理部１０４の構成を示すブロック図である。
【図３】第１の実施形態による階調変換処理部の詳細構成を示すブロック図である。
【図４】２値化部３０１の構成を示すブロック図である。
【図５】誤差補正部３０２の構成を示すブロック図である。
【図６】誤差補正部３０２の動作を説明する図である。
【図７】２値化結果遅延部３０３の構成を示すブロック図である。
【図８】２値化結果遅延部３０３によって出力される２値化結果Ｎｍｎを説明する図である。
【図９】平均濃度算出部３０４の構成を示すブロック図である。
【図１０】平均濃度算出部３０４における係数の一例を示す図である。
【図１１】スライス値設定部３０５の構成を示すブロック図である。
【図１２】図１１に示した構成の動作を説明する図である。
【図１３】第１の実施形態のスライス値制御部によるスライス値変更量を説明する図である。
【図１４】加算部３０６の構成を示すブロック図である。
【図１５】第２の実施形態による階調変換処理部の構成を示すブロック図である。
【図１６】第２の実施形態による乱数発生器の構成を示すブロック図である。
【図１７】第２の実施形態によるスライス値制御部１１０３の動作を示す図である。
【図１８】第３の実施形態による階調変換処理部の詳細な構成を示すブロック図である。
【図１９】第３の実施形態による誤差補正部２３０２の構成を示すブロック図である。
【図２０】第３の実施形態による２値化結果遅延部２３０３の構成を示すブロック図である。
【図２１】第３の実施形態による乱数発生器の構成を示すブロック図である。
【図２２】第３の実施形態によるヒステリシス制御量算出部２３０８の動作を示す図である。
【図２３】第３の実施形態によるしきい値算出部２３０５の動作を説明する図である。
【図２４】第３の実施形態による２値化結果出力Ｂ*ijを説明する図である。
【図２５】第４の実施形態による階調変換処理部の構成を示すブロック図である。
【図２６】第４の実施形態によるしきい値算出部の動作を説明する図である。
【図２７】第４の実施形態によるしきい値算出部２３０９で用いられる２値化結果配置状態（パターン）を示す図である。
【図２８】第４の実施形態による加算部２３１０における加算処理を示す図である。
【図１】
0003976863.tif 000002
【図２】
0003976863.tif 000003
【図３】
0003976863.tif 000004
【図４】
0003976863.tif 000005
【図５】
0003976863.tif 000006
【図６】
0003976863.tif 000007
【図７】
0003976863.tif 000008
【図８】
0003976863.tif 000009
【図９】
0003976863.tif 000010
【図１０】
0003976863.tif 000011
【図１１】
0003976863.tif 000012
【図１２】
0003976863.tif 000013
【図１３】
0003976863.tif 000014
【図１４】
0003976863.tif 000015
【図１５】
0003976863.tif 000016
【図１６】
0003976863.tif 000017
【図１７】
0003976863.tif 000018
【図１８】
0003976863.tif 000019
【図１９】
0003976863.tif 000020
【図２０】
0003976863.tif 000021
【図２１】
0003976863.tif 000022
【図２２】
0003976863.tif 000023
【図２３】
0003976863.tif 000024
【図２４】
0003976863.tif 000025
【図２５】
0003976863.tif 000026
【図２６】
0003976863.tif 000027
【図２７】
0003976863.tif 000028
【図２８】
0003976863.tif 000029