(57)【要約】【課題】１画素おきの２画素それぞれを注目画素とした誤差拡散演算を同じクロックで行う際に、その演算処理の高速化を図れる誤差拡散処理装置及び誤差拡散処理方法を提供する。【解決手段】１画素おきの２画素（奇数番目同士の２画素または偶数番目同士の２画素）それぞれを注目画素とした誤差拡散演算を行うクロックの次のクロックにて、注目画素に相隣する画素における誤差拡散結果をＣＷＡａ７０７ａで求める。注目画素から２つ隣の画素における誤差拡散結果は、注目画素の誤差拡散演算を行うのと同じクロックにてＣＷＢａ７０８ａで求める。【選択図】図１７
2010050846.tif 000002
【特許請求の範囲】
【請求項１】
入力画像の各画素の濃度値変換を行う際に、前記入力画像の１画素おきの２画素それぞれを注目画素とした誤差拡散演算を同じクロックに同期して行うこととし、前記２画素における誤差拡散演算から得られる誤差拡散結果を互いの誤差拡散演算に使用し合う誤差拡散処理装置であって、
前記注目画素についての誤差拡散演算から得られる前記注目画素に相隣する画素における誤差拡散結果を、前記クロックの次のクロックに同期して求める手段を備えることを特徴とする誤差拡散処理装置。
【請求項２】
前記注目画素についての誤差拡散演算から得られる前記注目画素の２つ隣の画素における誤差拡散結果を、前記クロックに同期して求める手段を備えることを特徴とする請求項１記載の誤差拡散処理装置。
【請求項３】
入力画像の各画素の濃度値変換を行う際に、前記入力画像の１画素おきの２画素それぞれを注目画素とした誤差拡散演算を同じクロックに同期して行うこととし、前記２画素における誤差拡散演算から得られる誤差拡散結果を互いの誤差拡散演算に使用し合う誤差拡散処理方法であって、
前記注目画素についての誤差拡散演算から得られる前記注目画素に相隣する画素における誤差拡散結果を、前記クロックの次のクロックに同期して求めることを特徴とする誤差拡散処理方法。
【請求項４】
前記注目画素についての誤差拡散演算から得られる前記注目画素の２つ隣の画素における誤差拡散結果を、前記クロックに同期して求めることを特徴とする請求項３記載の誤差拡散処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤差拡散法により、原画像の各画素の濃度値を変換する誤差拡散処理装置及び誤差拡散処理方法に関する。
【背景技術】
【０００２】
レーザプリンタ、インクジェットプリンタなどの記録装置にあっては、原画像の階調数を少なくして印字を行うことが多い。多値原画像を元の階調数よりも少ない階調数の画像に変換する方法の１つとして誤差拡散法が、従来から採用されている。
【０００３】
この誤差拡散法は、変換後の画像と原画像とにおける各画素の階調値（濃度値）の誤差を求め、求めた誤差に重みを付けて周囲の画素に分散させて、画像全体の階調特性を維持する処理である。画像処理の高速化に対する要求は常にあり、誤差拡散処理においても当然考慮すべき課題となっている。このような高速化の一例として特許文献１の画像処理装置には、２つの誤差拡散演算回路を並列に配置構成することにより、主走査方向の連続する２画素を同じクロックに同期して処理する方法が示されている。
【特許文献１】特開２００３−２８３８２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このように主走査方向の連続する２画素を同時に処理して誤差拡散処理の高速化を実現する場合、一方の誤差拡散演算回路での演算結果により生成された誤差は自身の回路だけでなく、他方の誤差拡散演算回路に対しても振りまかれて使用されることになる。１クロックについて２画素に対する処理を行う必要があるため、１クロックで処理しなければならない演算量が必然的に多くなってしまう。この結果、所望の高速化を実現できなくなることがあるという問題がある。
【０００５】
本発明は斯かる事情に鑑みてなされたものであり、１画素おきの２画素それぞれを注目画素とした誤差拡散演算を同じクロックで行う際に、注目画素に相隣する画素における誤差拡散結果を前記クロックの次のクロックに同期して求めることにより、誤差拡散演算処理の高速化を実現できる誤差拡散処理装置及び誤差拡散処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る誤差拡散処理装置は、入力画像の各画素の濃度値変換を行う際に、前記入力画像の１画素おきの２画素それぞれを注目画素とした誤差拡散演算を同じクロックに同期して行うこととし、前記２画素における誤差拡散演算から得られる誤差拡散結果を互いの誤差拡散演算に使用し合う誤差拡散処理装置であって、前記注目画素についての誤差拡散演算から得られる前記注目画素に相隣する画素における誤差拡散結果を、前記クロックの次のクロックに同期して求める手段を備えることを特徴とする。
【０００７】
本発明に係る誤差拡散処理方法は、入力画像の各画素の濃度値変換を行う際に、前記入力画像の１画素おきの２画素それぞれを注目画素とした誤差拡散演算を同じクロックに同期して行うこととし、前記２画素における誤差拡散演算から得られる誤差拡散結果を互いの誤差拡散演算に使用し合う誤差拡散処理方法であって、前記注目画素についての誤差拡散演算から得られる前記注目画素に相隣する画素における誤差拡散結果を、前記クロックの次のクロックに同期して求めることを特徴とする。
【０００８】
本発明にあっては、入力画像の１画素おきの２画素（奇数番目同士の２画素または偶数番目同士の２画素）それぞれを注目画素とした誤差拡散演算を同じクロックで行い、その誤差拡散演算に基づいた、注目画素に相隣する画素における誤差拡散結果を次のクロックで求める。注目画素に相隣する画素については、誤差拡散において乗じるべき拡散係数が大きい。そこで、本発明では、この相隣する画素についての誤差誤差拡散結果を、注目画素の誤差拡散演算を行うクロックでは求めずに、次のクロックで求める。よって、１クロック内での演算量が少なくなって、誤差拡散処理の高速化を図れる。
【０００９】
本発明に係る誤差拡散処理装置は、前記注目画素についての誤差拡散演算から得られる前記注目画素の２つ隣の画素における誤差拡散結果を、前記クロックに同期して求める手段を備えることを特徴とする。
【００１０】
本発明に係る誤差拡散処理方法は、前記注目画素についての誤差拡散演算から得られる前記注目画素の２つ隣の画素における誤差拡散結果を、前記クロックに同期して求めることを特徴とする。
【００１１】
本発明にあっては、注目画素の２つ隣の画素（注目画素の次の奇数番目または偶数番目の画素）における誤差拡散結果を、注目画素における誤差拡散演算を行ったと同じクロックで求める。注目画素から２つ隣の画素における拡散係数は、注目画素に相隣する画素における拡散係数より小さい。よって、同じクロック内で誤差拡散結果を求めても、大きな演算量にはならず、高速化の妨げにはならない。
【発明の効果】
【００１２】
本発明では、入力画像の１画素おきの２画素（奇数番目同士の２画素または偶数番目同士の２画素）それぞれを注目画素とした誤差拡散演算を同じクロックに同期して行い、その誤差拡散演算に基づいた、注目画素に相隣する画素における誤差拡散結果を次のクロックに同期して求めるようにしたので、誤差拡散における拡散係数が大きい相隣する画素における誤差拡散結果を、注目画素の誤差拡散演算を行うクロックでは求めないため、１クロック内で計算しなければならない演算量が少なくなって、誤差拡散処理の高速化を図ることができる。
【００１３】
本発明では、注目画素の２つ隣の画素（注目画素の次の奇数番目または偶数番目の画素）における誤差拡散結果を、注目画素における誤差拡散演算を行ったと同じクロックで求めるようにしたので、誤差拡散における拡散係数が小さい注目画素から２つ隣の画素における誤差拡散結果を同じクロック内で求めたとしても、大きな演算量ではなく、誤差拡散処理の高速化を支障なく実現できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明をその実施の形態を示す図面を参照して説明する。尚、本発明は、以下の実施の形態に限定されるものではない。
【００１５】
まず、誤差拡散法の基本原理について説明する。尚、以下の説明では、２５６階調の中間調画像を０または２５５の階調値（濃度値）に２値化変換する場合を例とする。
【００１６】
まず、図１に示すような原画像について、ある注目画素に対して、その濃度値を所定の閾値と比較することによって０または２５５の何れかに変換する。この注目画素は、最初、左上隅の画素から始まって主走査方向に移動し、主走査方向に１ライン分の処理が終了すると副走査方向に沿って次ラインに移動するものとする。また、閾値は、ここでは、２５６（階調）の中間値である１２８であるとする。
【００１７】
最初、原画像における左上隅の画素の濃度値は１２９であるため、これを閾値１２８と比較すると、（注目画素の濃度値）＞（閾値）となるため、注目画素の濃度値は２５５に変換される。このとき、注目画素の濃度値を１２９から２５５に変換することにより２５５−１２９＝１２６の誤差（差分値）が生じるため、この誤差を図２に示す誤差拡散処理テーブルに基づいて周囲の画素に分散する。誤差拡散処理テーブルは、予め設定された拡散係数をマトリクス形式で示すものであり、注目画素における差分値に拡散係数を乗じた値を周囲画素に振り分ける。
【００１８】
尚、図２のように、誤差拡散処理テーブルに３×５のマトリクスを用いる場合の振りまき範囲は３×５である。誤差拡散法においては、この振りまき範囲が大きいほど、変換後の画像において高周波成分を残した写真画質に良好な画質が得られる。また、誤差拡散処理の前と後とで画像濃度が全体で保たれるように、誤差拡散処理テーブルにおける拡散係数の総和は１となるようにする。
【００１９】
ここで、例えば、注目画素の右側の画素においては、１２６（注目画素の差分値）×１０／６４（当該画素における拡散係数）≒２０（小数点以下は必要精度に応じて計算するが、本説明では簡単のため整数標記する）が振り分け値となる。但し、この振り分け値の符号は、画像全体の濃度を保存するために注目画素の差分値とは逆となり、−２０が注目画素の右側の画素に加算される。
【００２０】
図２に示す誤差拡散処理テーブルに基づいて、注目画素の周囲の画素に振り分けられる値を同様に計算すると、図３のようになる。また、図３に示した振り分け値を原画像に加算すると、図４のようになる。
【００２１】
以上により最初の注目画素についての誤差拡散が終了したため、次に、この注目画素の右側の画素を新たな注目画素として誤差拡散を行う。新たな注目画素は、先の注目画素の誤差拡散によってその濃度値が１０９となっている（図４参照）。この濃度値を先の閾値と比較した場合、（注目画素の濃度値）≦（閾値）となっているため、この注目画素の濃度値は０に変換される。このとき、注目画素を１０９から０に変換することにより０−１０９＝−１０９の誤差（差分値）が生じるため、この誤差を図２に示す誤差拡散処理テーブルに基づいて周囲の画素に分散すると、その振り分け値は図５のようになる。また、図５に示した振り分け値を図４の濃度値に加算すると、図６のようになる。
【００２２】
このように、注目画素を順次ずらしていきながら、全ての画素について誤差拡散を行うことにより、原画像をもとの階調数よりも少ない階調数（本例では０か２５５かの２階調）の画像に変換することができる。
【００２３】
次に、上述したような誤差拡散処理を実施するための装置の構成について説明する。図７は、誤差拡散処理テーブルに基づいて振り分け値を算出するための拡散誤差演算回路の構成を示す図である。拡散誤差演算回路は、比較器７０１と、誤差量算出部７０２と、乗算器７０３Ａ〜７０３Ｌと、デコーダ７０４Ａ〜７０４Ｌと、フリップフロップ（ＦＦ）７０５，７０６とを備えている。
【００２４】
比較器７０１は、入力される濃度値ＥＲＲ ＳＵＭと閾値ＴＨとを比較し、濃度値が閾値より大きい場合には、出力値ＳＤＡＴ＝１を出力し、濃度値が閾値以下である場合には、出力値ＳＤＡＴ＝０を出力する。誤差量算出部７０２は、注目画素における誤差量ＥＲＲとその誤差量の正負を示す符号信号ＳＩＧＮとを求め、求めた誤差量ＥＲＲを各乗算器７０３Ａ〜７０３Ｌへフリップフロップ７０５を介して出力するともに、求めた符号信号ＳＩＧＮを各デコーダ７０４Ａ〜７０４Ｌへフリップフロップ７０６を介して出力する。各乗算器７０３Ａ〜７０３Ｌは、入力される誤差量ＥＲＲと、誤差拡散処理テーブルに対応した拡散係数Ｗ Ａ〜Ｗ Ｌとを乗算し、その乗算結果を対応する各デコーダ７０４Ａ〜７０４Ｌへ出力する。各デコーダ７０４Ａ〜７０４Ｌは、この乗算結果に符号信号ＳＩＧＮで示される正または負の符号を付して、拡散誤差Ｅ Ａ〜Ｅ Ｌを出力する。
【００２５】
以下、このような構成をなす拡散誤差演算回路の動作について説明する。拡散誤差演算回路には、注目画素の濃度値ＥＲＲ ＳＵＭと閾値ＴＨとが入力として与えられる。尚、ここでの注目画素の濃度値ＥＲＲ ＳＵＭは、先に誤差拡散処理がなされた画素の振り分け値を加算された後の値である。これらの濃度値ＥＲＲ ＳＵＭ及び閾値ＴＨは、比較器７０１と誤差量算出部７０２とに入力される。
【００２６】
比較器７０１では濃度値ＥＲＲ ＳＵＭと閾値ＴＨとを比較することにより、注目画素の濃度値が０または２５５に変換される。すなわち、ＥＲＲ ＳＵＭ＞ＴＨである場合には、注目画素の濃度値は２５５に変換され、ＥＲＲ ＳＵＭ≦ＴＨである場合には、注目画素の濃度値は０に変換される。尚、２値化データにおいては、その出力は０または１であり、濃度値「２５５」は２値化データの「１」に相当する。したがって、ＥＲＲ ＳＵＭ＞ＴＨの場合には、比較器７０１の出力はＳＤＡＴ＝１としてドットを形成し、ＥＲＲ ＳＵＭ≦ＴＨの場合には、比較器７０１の出力はＳＤＡＴ＝０でドットを形成しない。      
【００２７】
一方、誤差量算出部７０２においては、２値化された注目画素における誤差量ＥＲＲが算出される。すなわち、ＥＲＲ ＳＵＭ＞ＴＨである場合には、上述したように注目画素の濃度値は２５５に変換されるため、ＥＲＲ＝２５５−ＥＲＲ ＳＵＭとなる。また、ＥＲＲ ＳＵＭ≦ＴＨである場合には、注目画素の濃度値は０に変換されるため、ＥＲＲ＝ＥＲＲ ＳＵＭとなる。こうして算出された誤差量ＥＲＲは、乗算器７０３Ａ〜７０３Ｌへ送られる。同時に、各乗算器７０３Ａ〜７０３Ｌには誤差拡散処理テーブルに対応する拡散係数Ｗ Ａ〜Ｗ Ｌが与えられ、誤差量ＥＲＲとそれぞれの拡散係数Ｗ Ａ〜Ｗ Ｌとの積が計算される。
【００２８】
ここで、誤差量ＥＲＲと拡散係数との乗算値は、拡散誤差の大きさを示し、乗算器７０３Ａ〜７０３Ｌのそれぞれに接続されたデコーダ７０４Ａ〜７０４Ｌに入力される。また、誤差量ＥＲＲは、ＥＲＲ ＳＵＭ＞ＴＨの場合、ＥＲＲ ＳＵＭ≦ＴＨの場合の何れにおいても０以上の値となるが、ＥＲＲ ＳＵＭ＞ＴＨの場合には、注目画素における濃度値が２５５に変換されることにより、その濃度値は増加することとなる。逆に、ＥＲＲ ＳＵＭ≦ＴＨの場合には、注目画素における濃度値は減少する。
【００２９】
したがって、画像全体の濃度を維持するためには、ＥＲＲ ＳＵＭ＞ＴＨの場合には拡散誤差は負の値とする必要があり、誤差量算出部７０２より各デコーダ７０４Ａ〜７０４Ｌに符号信号ＳＩＧＮ＝０が与えられる。０であるＳＩＧＮは、拡散誤差の符号が負であることを示し、このとき、各デコーダ７０４Ａ〜７０４Ｌは、誤差量ＥＲＲと拡散係数との乗算値の符号を負として、拡散誤差Ｅ Ａ〜Ｅ Ｌを出力する。一方、ＥＲＲ ＳＵＭ≦ＴＨの場合には、誤差量算出部７０２より各デコーダ７０４Ａ〜７０４Ｌに符号信号ＳＩＧＮ＝１が与えられる。１であるＳＩＧＮは、拡散誤差の符号が正であることを示し、このとき、各デコーダ７０４Ａ〜７０４Ｌは、誤差量ＥＲＲと拡散係数との乗算値の符号を正として、拡散誤差Ｅ Ａ〜Ｅ Ｌを出力する。これらの拡散誤差Ｅ Ａ〜Ｅ Ｌは、注目画素に対して図８に示すようなマトリクス配列を形成する。
【００３０】
上述のようにして求まった拡散誤差は、注目画素の周囲の画素に振りまかれ、順次移動する注目画素の濃度値ＥＲＲ ＳＵＭが変化する。この注目画素の濃度値ＥＲＲ ＳＵＭを求める演算手順について、図９、図１０〜１２、図１３及び図１４，１５を参照して説明する。
【００３１】
図９は、注目画素の濃度値を演算するための濃度値演算回路の構成を示す図である。濃度値演算回路は、加算器９０１Ａ〜９０１Ｋと、フリップフロップ（ＦＦ）９０２Ａ〜９０２Ｌと、加算器９０３と、ラインメモリ（ＦＩＦＯ）９０４，９０５と、リミッタ９０６，９０７と、フリップフロップ（ＦＦ）９０８〜９１２と、四捨五入回路９１３とを備えている。
【００３２】
フリップフロップ９０２Ａ〜９０２Ｋは、図７に示す前述した拡散誤差演算回路によって算出された拡散誤差Ｅ Ａ〜Ｅ Ｋのそれぞれを加算器９０１Ａ〜９０１Ｋを介して格納する。また、フリップフロップ９０２Ｌは、拡散誤差Ｅ Ｌを加算器を介さずに直接格納する。ラインメモリ９０４，９０５は、後述する拡散誤差ブロック１００１の移動に伴ってそこからはみ出た拡散誤差のデータを格納する。四捨五入回路９１３は、前段のフリップフロップ９０２Ａのデータを四捨五入して、その四捨五入結果を加算器９０３ヘ出力する。加算器９０３は、この四捨五入結果と、フリップフロップ９０８〜９１０を介して入力された原画像における初期濃度値ＩＤＩＮとを加算し、その加算結果を濃度値ＥＲＲ ＳＵＭとして出力する。
【００３３】
以下、このような構成をなす濃度値演算回路の動作について説明する。まず、第１番目の注目画素（原画像における左上隅画素）について、図７に示した拡散誤差演算回路によってこの注目画素に対する拡散誤差Ｅ Ａ〜Ｅ Ｌが算出される。算出された拡散誤差Ｅ Ａ〜Ｅ Ｌは、概念的には図１０〜１２に示すような拡散誤差ブロック１００１に格納されることとなる。
【００３４】
ここで、拡散誤差ブロック１００１は、誤差拡散処理テーブルと同サイズのマトリクスで表されるものであり、拡散誤差の累積加算及びその加算結果（累積結果）の保存を行うためのものである。すなわち、第１番目の注目画素について拡散誤差Ｅ Ａ〜Ｅ Ｌが算出されると、これらの拡散誤差は、図１０に示すように、拡散誤差ブロック１００１に格納される。尚、図１０の表記において、例えば、Ｅ１Ａは、第１番目の注目画素に対する拡散誤差Ｅ Ａを意味している。
【００３５】
これを図９に示す濃度値演算回路において説明すると以下のようになる。図７に示す拡散誤差演算回路によって算出された拡散誤差Ｅ Ａ〜Ｅ Ｋのそれぞれは、加算器９０１Ａ〜９０１Ｋを介してフリップフロップ９０２Ａ〜９０２Ｋに格納される。また、拡散誤差Ｅ Ｌは加算器を介さずに直接フリップフロップ９０２Ｌに格納される。このとき、フリップフロップ９０２Ａ〜９０２Ｌに格納されている値が、図１３に示すマトリクス配列となって拡散誤差ブロック１００１をなすものとする。
【００３６】
次いで、第２番目の注目画素に移って拡散誤差が算出される際には、図１１に示すように、注目画素の移動に伴って拡散誤差ブロック１００１も１列分だけ移動する。そして、移動された拡散誤差ブロック１００１において、第２番目の注目画素に対して算出された拡散誤差が加算される。尚、上記図１１の表記において、例えば、拡散誤差ブロック１００１の４列目のデータを例にとると、その表記の意味は以下の数１によって示される。
【００３７】
【数１】
2010050846.tif 000003
【００３８】
これを図９に示す濃度値演算回路において説明すると以下のようになる。すなわち、拡散誤差ブロック１００１が１列分移動することは、拡散誤差ブロック１００１内に格納されているデータが拡散誤差ブロック１００１の移動方向と逆の方向に１列分移動することと同じであり、例えば、第１番目の注目画素に対する拡散誤差Ｅ Ｂは、フリップフロップ９０２Ｂの位置からフリップフロップ９０２Ａの位置に移動することとなる（図１３参照）。
【００３９】
また、拡散誤差ブロック１００１には、同時に第２番目の注目画素に対するＥ Ａ〜Ｅ Ｌが格納されるため、図１１における拡散誤差ブロック１００１のフリップフロップ９０２Ａの位置を例にとると、ここには、第１番目の注目画素に対する拡散誤差Ｅ Ｂと第２番目の注目画素に対する拡散誤差Ｅ Ａとの加算値が格納される。すなわち、図９に示す濃度値演算回路においては、例えば、フリップフロップ９０２Ｂに格納されているデータ（第１番目の注目画素に対する拡散誤差Ｅ Ｂ）と第２番目の注目画素に対する拡散誤差Ｅ Ａとが加算器９０１Ａに入力されて、これらの加算値がフリップフロップ９０２Ａに送られる。
【００４０】
また、図１０に示す拡散誤差ブロック１００１においてフリップフロップ９０２Ａに対応する位置の画素は、図１１に示す拡散誤差ブロック１００１においては注目画素の位置となる。したがって、フリップフロップ９０２Ａに格納されているデータは、原画像におけるこの注目画素の初期濃度値ＩＤＩＮと加算器９０３において加算され、濃度値ＥＲＲ ＳＵＭとして出力される。こうして出力された濃度値ＥＲＲ ＳＵＭが、図７に示す拡散誤差演算回路の比較器７０１において閾値と比較されて２値化されることは、前述した通りである。
【００４１】
さらに、拡散誤差ブロック１００１が移動することによって、拡散誤差ブロック１００１からはみ出すデータは、ラインメモリ９０４，９０５に送られて格納される。すなわち、図１０に示す拡散誤差ブロック１００１においてその１列目にある拡散誤差Ｅ Ｃ，Ｅ Ｈが、図１１においては、ラインメモリ９０４，９０５にそれぞれ格納される。これは、図９に示す濃度値演算回路においては、フリップフロップ９０２Ｈにおけるデータがラインメモリ９０５に送られ、フリップフロップ９０２Ｃにおけるデータがラインメモリ９０４に送られることを示している。尚、ラインメモリ９０４，９０５において格納可能なデータの個数は、原画像の列数をｎ、拡散誤差ブロック１００１の列数をｍとした場合、ｎ−ｍとなる。
【００４２】
第３番目の注目画素に移って拡散誤差を算出する場合にも、各フリップフロップに格納されているデータの移動、及びこの注目画素に対して算出された拡散誤差の加算が同様に行われ、拡散誤差ブロック１００１、ラインメモリ９０４，９０５に格納されるデータは図１２に示すようになる。
【００４３】
こうした演算を繰り返すことにより、ｔ番目の注目画素においては、拡散誤差ブロック１００１、ラインメモリ９０４，９０５に格納されるデータは図１４に示すようになる。但し、ｔ≧２ｎ＋２であり、この場合の注目画素は原画像においては３行２列目以降となる。尚、図１４における表記において、例えば、拡散誤差ブロック１００１の１行４列目のデータを例にとると、その表記の意味は以下の数２によって示される。
【００４４】
【数２】
2010050846.tif 000004
【００４５】
上述したような誤差拡散処理は、実際には原画像の全ての画素について行われるものであるが、３行２列目よりも前の画素を注目画素としている時点では、ラインメモリ９０４，９０５に格納可能な最大数分までデータが格納されていない。例えば、原画像の１行１列目の画素を注目画素とする処理時には、ラインメモリ９０４，９０５の何れにもデータが格納されていないので、ラインメモリ９０４，９０５から拡散誤差ブロック１００１にフィードバックされる誤差値は０である。
【００４６】
原画像における３行２列目以降の画素を注目画素としている時点では、ラインメモリ９０４，９０５の両方において、データが格納可能な最大数分まで格納されている。したがって、この時点から次の注目画素に移る際には、ラインメモリ９０４，９０５において最も早く入力されたデータが読み出されて、拡散誤差ブロック１００１にフィードバックされる。これは、図９に示す濃度値演算回路においては、ラインメモリ９０５から読み出されたデータがフリップフロップ９１１及び加算器９０１Ｇを介してフリップフロップ９０２Ｇに送られ（ここで、注目画素に対する拡散誤差Ｅ Ｇが加算される）、ラインメモリ９０４から読み出されたデータがフリップフロップ９１２及び加算器９０１Ｂを介してフリップフロップ９０２Ｂに送られる（ここで、注目画素に対する拡散誤差Ｅ Ｂが加算される）ことを示している。
【００４７】
図１５は、上記図７に示した拡散誤差演算回路と上記図９に示した濃度値演算回路とを結合した誤差拡散処理装置の構成を示す図である。図１５において、図７または図９と同様の部材には同一番号を付している。また、図１５では、以降の説明を簡単化するために本願の発明に直接関係しない部材については簡略化して図示している。
【００４８】
具体的に、図７に関しては、拡散誤差Ｅ Ａを求める乗算器７０３Ａ及びデコーダ７０４ＡをまとめてＣＷＡ７０７とブロック化し、同じく拡散誤差Ｅ Ｂを求める乗算器７０３Ｂ及びデコーダ７０４ＢをまとめてＣＷＢ７０８とブロック化し、残りの拡散誤差を求める乗算器７０３Ｃ〜７０３Ｌ及びデコーダ７０４Ｃ〜７０４Ｌをまとめて２，３ライン後誤差演算部７０９とブロック化している。また、図９に関しては、１ライン前及び２ライン前からの誤差拡散結果を取得するための回路部分をまとめてＦＩＦＯ入出力誤差演算部９２０とブロック化している。
【００４９】
ここで、本発明の参考として、入力画像において相隣する２画素、つまり入力画像における主走査方向に連続する２画素を同時に（同じクロックに同期して）処理するようにした誤差拡散処理装置について説明する。図１６は、このような誤差拡散処理装置の構成を示す図である。この図１６に示す誤差拡散処理装置では、連続する２画素（相隣する２画素）を同じタイミングで入力して並列処理するため、図１５の回路構成を２つ並設する構成とし、さらに演算結果から得られた誤差拡散結果を互いの演算に相互に利用し合う構成となる。なお、図１６において、図１５と同様の部材には同一の算用番号を付しており、また、２つの系統を区別するために、各部材にはａまたはｂの符号を付している。
【００５０】
図１７は、本発明に係る誤差拡散処理装置の構成を示す図である。本発明の誤差拡散処理装置にあっては、入力画像における主走査方向の１画素おきの２画素、言い換えると入力画像における主走査方向の奇数番目同士の２画素または偶数番目同士の２画素を、同時に（同じクロックに同期して）処理する。
【００５１】
図１７において、図１５と同様の部材には同一の算用番号を付しており、また、２つの系統を区別するために、各部材にはａまたはｂの符号を付している。図１７の構成を図１６の構成と比較した場合、ＣＷＡａ７０７ａ及びＣＷＢａ７０８ａの配置順序が逆であり、ＣＷＡｂ７０７ｂ及びＣＷＢｂ７０８ｂの配置順序も逆になっている。
【００５２】
本発明の誤差拡散処理装置では、ＣＷＡｂ７０７ｂと加算器９０１Ａｂとの間にセレクタ９２１が設けられている。セレクタ９２１には、ＣＷＡｂ７０７ｂの出力値及び”０”値とが入力され、セレクト信号ＳＩＧ Ａの”Ｈｉｇｈ”，”Ｌｏｗ”に応じて、セレクタ９２１は、何れか一方の入力値を加算器９０１Ａｂへ出力する。また、ＣＷＡｂ７０７ｂと加算器９３１との間にはセレクタ９２２が設けられている。セレクタ９２２には、ＣＷＡｂ７０７ｂの出力値及び”０”値とが入力され、セレクト信号ＳＩＧ Ｂの”Ｈｉｇｈ”，”Ｌｏｗ”に応じて、セレクタ９２２は、何れか一方の入力値を加算器９３１へ出力する。また、ＣＷＢｂ７０８ｂと加算器９３１との間には、フリップフロップ（ＦＦ）９３２が設けられている。
【００５３】
図１８は、本発明の誤差拡散処理装置におけるタイミングチャートを示す図である。図１８にあっては、動作の基準となるクロック（ＣＬＫ）と、ＩＤＩＮ１（フリップフロップ９１０ａ）への入力画素（ＩＤＩＮ１）と、ＩＤＩＮ２（フリップフロップ９１０ｂ）への入力画素（ＩＤＩＮ２）と、イネーブル信号（ＥＮＡＢＬＥ）と、セレクト信号（ＳＩＧ Ａ）と、セレクト信号（ＳＩＧ Ｂ）とを示している。
【００５４】
ＩＤＩＮ１（フリップフロップ９１０ａ）には、１番目の画素（ｐｉｘ１），２番目の画素（ｐｉｘ２），５番目の画素（ｐｉｘ５），６番目の画素（ｐｉｘ６），９番目の画素（ｐｉｘ９），１０番目の画素（ｐｉｘ１０），・・・の順にデータが入力され、ＩＤＩＮ２（フリップフロップ９１０ｂ）には、３番目の画素（ｐｉｘ３），４番目の画素（ｐｉｘ４），７番目の画素（ｐｉｘ７），８番目の画素（ｐｉｘ８），１１番目の画素（ｐｉｘ１１），１２番目の画素（ｐｉｘ１２），・・・の順にデータが入力される。このように、４個の画素を単位として周期的な画素データの入力が行われる。
【００５５】
各セレクタ９２１，９２２は、各セレクト信号ＳＩＧ Ａ，ＳＩＧ Ｂが”Ｌｏｗ”である場合にＣＷＡｂ７０７ｂの出力値を選択し、各セレクト信号ＳＩＧ Ａ，ＳＩＧ Ｂが”Ｈｉｇｈ”である場合に”０”値を選択する動作を行う。
【００５６】
このような動作によって、１画素おきの２画素（奇数番目同士の２画素または偶数番目同士の２画素）を注目画素とした誤差拡散演算を１つのクロックで行う。但し、図１７に示す回路構成から明らかなように、入力される１単位の注目画素４画素のうちの１画素については、相隣する画素への誤差振りまきが３画素先への誤差振りまきに変更されることになる。
【００５７】
本発明では、同時に２画素の処理を行うため、図１５の構成に比較して処理速度は速くなる。また、演算処理の更なる高速化を目指した工夫を、図１７の回路構成に施している。参考例として示した図１６の回路では、ＣＷＡａ７０７ａでの誤差振りまき演算は、ＦＦ７０５ａを介さずに行う構成となっているが、本発明の図１７に示す回路では、ＦＦ７０５ａを介した後にＣＷＡａ７０７ａでの誤差振りまき演算を実行する構成となっている。そして、ＦＦ７０５ａを介さない誤差振りまき演算を行う部材が、ＣＷＡａ７０７ａからＣＷＢａ７０８ａに変更されている。
【００５８】
このような回路構成により、本発明では、１画素おきの２画素（奇数番目同士の２画素または偶数番目同士の２画素）を注目画素とした誤差拡散演算を行うのと同じクロックにて、その注目画素に相隣する画素における誤差拡散結果を求めるのではなく、次のクロックにてその誤差拡散結果を求めている。また、その同じクロックにて、その注目画素から２つ隣の画素における誤差拡散結果を求めている。
【００５９】
一般的に、図２に示されているように、演算された誤差を周囲画素へ割り振る割合（乗じるべき拡散係数）は注目画素に近い画素ほど大きくなる。よって、注目画素に相隣する画素よりも２つ隣の画素の方が拡散係数は小さくなる。そこで、本発明では、注目画素に相隣する画素における誤差拡散結果は次のクロックにて求め、注目画素の２つ隣の画素における誤差拡散結果は同じクロックにて求めるようにしている。この結果、１クロック内で行わなければならない演算量を少なくできて、演算処理の高速化を図ることができる。
【図面の簡単な説明】
【００６０】
【図１】２値化における誤差拡散処理が施される前の原画像の一例を示す図である。
【図２】誤差拡散処理で使用される誤差拡散処理テーブルの一例を示す図である。
【図３】図２の誤差拡散処理テーブルを用いた場合の最初の注目画素における拡散誤差の演算結果を示す図である。
【図４】図３に示す拡散誤差を図１の原画像に対して振りまいた後の濃度値を示す図である。
【図５】図２の誤差拡散処理テーブルを用いた場合の２番目の注目画素における拡散誤差の演算結果を示す図である。
【図６】図５に示す拡散誤差を図４の画像に対して振りまいた後の濃度値を示す図である。
【図７】拡散誤差演算回路の構成を示す図である。
【図８】図７の拡散誤差演算回路での演算に使用される誤差拡散処理テーブルを示す図である。
【図９】濃度値演算回路の構成を示す図である。
【図１０】注目画素を順次移動させることに伴う拡散誤差ブロック内のデータの変化を示す図である。
【図１１】注目画素を順次移動させることに伴う拡散誤差ブロック内のデータの変化を示す図である。
【図１２】注目画素を順次移動させることに伴う拡散誤差ブロック内のデータの変化を示す図である。
【図１３】図９の濃度値演算回路での演算に使用される拡散誤差ブロックを概念的に示す図である。
【図１４】図９の濃度値演算回路での演算において拡散誤差ブロック及びラインメモリに格納されるデータを示す図である。
【図１５】図７及び図９を結合した誤差拡散処理装置の構成を示す図である。
【図１６】主走査方向の２画素を同時に処理する誤差拡散処理装置の構成を示す図である。
【図１７】主走査方向の１画素おきの２画素（奇数番目同士の２画素または偶数番目同士の２画素）を同時に処理する本発明に係る誤差拡散処理装置の構成を示す図である。
【図１８】本発明の誤差拡散処理装置におけるタイミングチャートを示す図である。
【符号の説明】
【００６１】
７０７ａ  ＣＷＡａ
７０８ａ  ＣＷＢａ
７０７ｂ  ＣＷＡｂ
７０８ｂ  ＣＷＢｂ
７０５ａ，７０５ｂ，９３２  フリップフロップ
９２１，９２２  セレクタ
９３１  加算器
【図１】
2010050846.tif 000005
【図２】
2010050846.tif 000006
【図３】
2010050846.tif 000007
【図４】
2010050846.tif 000008
【図５】
2010050846.tif 000009
【図６】
2010050846.tif 000010
【図７】
2010050846.tif 000011
【図８】
2010050846.tif 000012
【図９】
2010050846.tif 000013
【図１０】
2010050846.tif 000014
【図１１】
2010050846.tif 000015
【図１２】
2010050846.tif 000016
【図１３】
2010050846.tif 000017
【図１４】
2010050846.tif 000018
【図１５】
2010050846.tif 000019
【図１６】
2010050846.tif 000020
【図１７】
2010050846.tif 000021
【図１８】
2010050846.tif 000022