(57)【要約】      （修正有）【課題】本構成を有さない場合に比べ、少ないハード・リソースで画素値の誤差拡散処理を行うことができる画像処理装置を提供する。【解決手段】誤差加算回路３２に含まれるシフト演算器は入力された量子化誤差を予め定められた割合にシフト演算し、加算器に出力し、加算器は、これに誤差拡散処理により量子化誤差が累積加算された画素値Ｐｘ、Ｙを加算し、シフトレジスタに出力し、シフトレジスタは入力値を主走査方向にシリアル接続された誤差加算回路３２に出力する。８個の誤差拡散処理回路３０が主走査方向にシリアル接続されており、各誤差拡散回路３０には、前段の誤差拡散回路３０の出力値が及び対応する画素値ＰＸ、Ｙが遅延回路４０により同タイミングで入力される。最後段の誤差拡散処理回路３０の出力値は、誤差バッファ回路３８に記憶され、次回の並列処理の際に第１段の誤差拡散処理回路３０に出力される。【選択図】図１
2010154069.tif 000002
【特許請求の範囲】
【請求項１】
（１）誤差拡散処理により予め定めた割合で拡散された量子化誤差が加算された注目画素の画素値を量子化する量子化手段と、（２）前記量子化手段による量子化により生じた前記注目画素の量子化誤差を算出する量子化誤差算出手段と、（３）前記誤差拡散処理により予め定められた割合で拡散された量子化誤差が加算された被誤差拡散画素の画素値に前記量子化誤差算出手段により算出された今回の前記量子化誤差を前記予め定めた割合で加算する加算手段と、今回の注目画素が予め定められた主走査方向にシフトするのに伴い、前記加算手段で加算された加算値を前記主走査方向にシフトするシフト手段と、を含み、前記注目画素の前記量子化誤差を予め定めた割合で拡散するために前記注目画素のシフト方向である主走査方向及び前記主走査方向に交差する方向である副走査方向に予め定められた複数の被誤差拡散画素に対応して設けられた、複数の誤差加算手段と、を備えると共に、前段の誤差拡散処理手段から前記量子化誤差が加算された前記被誤差拡散画素の画素値が入力されるように前記主走査方向に連結された複数の誤差拡散処理手段と、
複数の前記誤差加算手段のうちの最後段の前記誤差拡散処理手段から出力された、前記量子化誤差が加算された前記被誤差拡散画素の画素値を記憶すると共に、当該記憶した画素値を次回の誤差拡散処理が実行されるときに、第１段の前記誤差拡散処理手段に出力する記憶手段と、
を備えた、画像処理装置。
【請求項２】
前記複数の誤差拡散処理手段に被誤差拡散画素の画素値が入力されるタイミングを調整する、タイミング調整手段をさらに備えた、
請求項１に記載の画像処理装置。
【請求項３】
前記加算手段は、入力された前記注目画素の量子化誤差をシフト演算することにより前記予め定めた割合の前記量子化誤差を演算するシフト演算器を含む、
請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記加算手段は、入力された前記注目画素の量子化誤差に予め定められた係数を乗じることにより前記予め定めた割合の前記量子化誤差を乗算する乗算器を含む、
請求項１または請求項２に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
特許文献１には、原画像の階調データを保存するメモリより書込み速度が高速なレジスタを、誤差拡散範囲の画素数に対応して備えており、着目画素が移動する際、レジスタのデータを着目画素の移動に応じてシフトし、レジスタの最終段の出力を着目画素の階調データに加えた上で、少ない階調表現に変化する技術が記載されている。
【０００３】
特許文献２には、誤差拡散処理を複数走査ラインの並列処理により行う際に必要とされる量子化誤差を格納しておくための誤差メモリを２値化処理部（並列処理）の数に関係なく、２値化処理回路内にだけ設ける技術が記載されている。
【特許文献１】特開２０００−２９９７８５号公報
【特許文献２】特開２００２−１０１３０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、本構成を有さない場合に比べ、少ないハード・リソースで画素値の誤差拡散処理を行うことができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、請求項１に記載の画像処理装置では、（１）誤差拡散処理により予め定めた割合で拡散された量子化誤差が加算された注目画素の画素値を量子化する量子化手段と、（２）前記量子化手段による量子化により生じた前記注目画素の量子化誤差を算出する量子化誤差算出手段と、（３）前記誤差拡散処理により予め定められた割合で拡散された量子化誤差が加算された被誤差拡散画素の画素値に前記量子化誤差算出手段により算出された今回の前記量子化誤差を前記予め定めた割合で加算する加算手段と、今回の注目画素が予め定められた主走査方向にシフトするのに伴い、前記加算手段で加算された加算値を前記主走査方向にシフトするシフト手段と、を含み、前記注目画素の前記量子化誤差を予め定めた割合で拡散するために前記注目画素のシフト方向である主走査方向及び前記主走査方向に交差する方向である副走査方向に予め定められた複数の被誤差拡散画素に対応して設けられた、複数の誤差加算手段と、を備えると共に、前段の誤差拡散処理手段から前記量子化誤差が加算された前記被誤差拡散画素の画素値が入力されるように前記主走査方向に連結された複数の誤差拡散処理手段と、複数の前記誤差加算手段のうちの最後段の前記誤差拡散処理手段から出力された、前記量子化誤差が加算された前記被誤差拡散画素の画素値を記憶すると共に、当該記憶した画素値を次回の誤差拡散処理が実行されるときに、第１段の前記誤差拡散処理手段に出力する記憶手段と、を備える。
【０００６】
請求項２に記載の画像処理装置は、請求項１に記載の画像処理装置において、前記複数の誤差拡散処理手段に被誤差拡散画素の画素値が入力されるタイミングを調整する、タイミング調整手段をさらに備える。
【０００７】
請求項３に記載の画像処理装置は、請求項１または請求項２に記載の画像処理装置において、前記加算手段は、入力された前記注目画素の量子化誤差をシフト演算することにより前記予め定めた割合の前記量子化誤差を演算するシフト演算器を含む。
【０００８】
請求項４に記載の画像処理装置は、請求項１または請求項２に記載の画像処理装置において、前記加算手段は、入力された前記注目画素の量子化誤差に予め定められた係数を乗じることにより前記予め定めた割合の前記量子化誤差を乗算する乗算器を含む。
【発明の効果】
【０００９】
請求項１に記載の本発明によれば、本構成を有さない場合に比べ、少ないハード・リソースで画素値の誤差拡散処理を行うことができる、という効果が得られる。
【００１０】
請求項２に記載の本発明によれば、複数の誤差拡散処理手段に被誤差拡散画素の画素値が入力されるタイミングを一致させることができる、という効果が得られる。
【００１１】
請求項３に記載の本発明によれば、本構成を有さない場合に比べ、加算手段を小さく構成することができる、という効果が得られる。
【００１２】
請求項４に記載の本発明によれば、本構成を有さない場合に比べ、任意性をもたせることができる、という効果が得られる。
【発明を実施するための最良の形態】
【００１３】
本実施の形態の画像処理装置は、画像データをプリンタ等で印刷する際に画像データの多階調化のために誤差拡散処理を行うものである。
【００１４】
まず、本実施の形態の画像処理装置の構成について図面を参照して詳細に説明する。図１は、本実施の形態に係る画像処理装置の概略構成の一例を示す機能ブロック図である。
【００１５】
本実施の形態の画像処理装置１０は、制御部１２、データ変換部１４、ネットワークＩ／Ｆ（インターフェイス）１６、記憶部１８、及び誤差拡散処理部２０を含んで構成されている。制御部１２、データ変換部１４、ネットワークＩ／Ｆ１６、記憶部１８、及び誤差拡散処理部２０は、コントロールバスやデータバス等のバス２２を介して互いに情報等の授受が可能に接続されている。
【００１６】
制御部１２は、画像処理装置１０の全体を制御するものであり、ＣＰＵ２４、ＲＯＭ２６、及びＲＡＭ２８を含んで構成されている。ＣＰＵ２４では、入力された画像データに対する画像処理が実行される。ＲＯＭ２６は、当該画像処理に関するプログラム等の各種プログラムやパラメータ等が記憶されており、ＲＡＭ２８は、ＣＰＵ２４による画像処理プログラム等の各種プログラムの実行時におけるワークエリア等として用いられる。
【００１７】
データ変換部１４は、画像データに基づく画像を形成するプリンタ（図示省略）等の解像度に、画像データの解像度を変換し、変換したデータにシェーディング補正等の予め定められた補正処理を施すためのものである。本実施の形態では、具体的一例としてデータ変換部１４のページメモリ（図示省略）に８ビットの画素値が格納された状態になる。
【００１８】
ネットワークＩ／Ｆ１６は、外部のネットワークと接続するためのネットワークインターフェイスである。本実施の形態では、ネットワークＩ／Ｆ１６を介してコンピュータ等から画像データが入力されるためのものである。
【００１９】
なお、本実施の形態では、ネットワークＩ／Ｆ１６を介して画像データが入力される他、図示を省略したスキャナ等により原稿を読み取った画像データが入力される。
【００２０】
記憶部１８には、画素値と量子化値との対応関係（詳細後述）や画素値と被減算値との対応関係（詳細後述）等が予め記憶されている。
【００２１】
誤差拡散処理部２０は、画像データの注目画素を量子化した量子化値と初期値との差である量子化誤差を注目画素の周辺画素（被誤差拡散画素）に拡散するためのものであり、誤差拡散処理回路３０、誤差バッファ回路３８、及び遅延回路４０を含んで構成されている。誤差拡散処理回路３０は、被誤差拡散画素に量子化誤差を拡散させるためのものであり、誤差加算回路３２、量子化回路３４、及び誤差演算回路３６を含んで構成されている。誤差バッファ回路３８は、次回に行う誤差拡散処理のために誤差加算回路３２の出力値を記憶するためのものである（詳細後述）。遅延回路４０は、誤差拡散処理の並列処理を行う場合に、誤差拡散処理回路３０の各々に対応する注目画素の画素値が入力されるタイミングを一致させるためのものである（詳細後述）。
【００２２】
次に、本実施の形態の誤差拡散処理について図面を参照して詳細に説明する。まず、本実施の形態の誤差拡散処理により注目画素の量子化誤差が拡散される領域（被誤差拡散画素）について説明する。図２に、本実施の形態の誤差ウインドウの具体的一例を示す。図２では、Ｘ方向（主走査方向）が、注目画素のシフト方向であり、本実施の形態では、プリンタ等による画像形成時におけるプリントヘッドのノズルの移動方向である。図４に示すように、注目画素のシフト方向（副走査方向の列）の並びの２画素、注目画素の次の副走査方向の列の５画素、さらに次の副走査方向の列の５画素が被誤差拡散画素である。このように、本実施の形態では、注目画素の量子化誤差を注目画素周辺の１２画素に拡散（分配）する。
【００２３】
本発明の実施の形態に係る誤差拡散処理の一例の概略は、図３に示したフローチャートのようになる。
【００２４】
まず、ステップ１００では、注目画素の画素値を量子化する。
【００２５】
次のステップ１０２では、注目画素の量子化値と、初期値（画像データの画素値）との差分である量子化誤差ΔＰを算出する。
【００２６】
次のステップ１０４では、算出されたΔＰを図２に示した被誤差拡散画素の各々に分配する。
【００２７】
次のステップ１０６では、次の注目画素の誤差拡散処理を行うために、注目画素を主走査方向にシフトする。
【００２８】
上記ステップ１００〜１０６の処理により、１画素に対する誤差拡散処理が行われる。全画素に対し、上記ステップ１００〜１０６の処理を繰り返した後、本処理を終了する。
【００２９】
当該誤差拡散処理の詳細を説明する。
【００３０】
まず、１誤差ウインドウ当りの誤差拡散処理について詳細に説明する。図４は、本実施の形態に係る１誤差ウインドウ当りの誤差拡散処理回路３０の概略構成の一例を示す回路図である。１誤差ウインドウ当りの誤差拡散処理回路３０は、被誤差拡散画素に対応して誤差加算回路３２（または、誤差加算回路３２’）を備えている。図４は、図２に示した誤差ウインドウに対応する、誤差拡散処理回路３０であり、１２個の誤差加算回路３２を含んでいる。誤差加算回路３２は、副走査方向に３列、配列されており、各列毎にシリアルに接続されている。なお、１列目は、２つ（主走査方向に２列）シリアル接続されており、主走査方向が２列目の誤差拡散処理回路３０には、量子化回路３４及び誤差演算回路３６が接続されている。図４に示した全ての誤差加算回路３２は、共通のＣＬＫ信号で動作する。
【００３１】
本実施の形態の誤差加算回路３２の概略構成の一例を図５に示す。本実施の形態の誤差加算回路３２は、シフト演算器４２と、加算器４４と、シフトレジスタ４６と、を含んで構成されている。入力Ｂに対してシフト演算器４２でシフト演算した演算値と、入力Ａと、を加算器４４で加算した加算値ＺがＣＬＫ（クロック）信号の入力によりシフトレジスタ４６でシフトされ、出力される。
【００３２】
図６に、本実施の形態の誤差加算回路３２のその他の一例である誤差加算回路３２’の概略構成を示す。図６に示した誤差加算回路３２’は、図５に示した誤差加算回路３２のシフト演算器４２に代わり、乗算器４８が含まれている。誤差加算回路３２’では、入力Ｂに対して、係数αを乗算する。
【００３３】
なお、本実施の形態では、誤差加算回路３２のシフト演算器４２の段数や誤差加算回路３２’の乗算器４８の係数αは、対応する被誤差拡散画素毎に予め定められた割合で量子化誤差が拡散されるように、すなわち、予め定められた割合の量子化誤差が加算されるように予め設定されている。加算される量子化誤差の割合は、例えば、注目画素と被誤差拡散画素の位置や距離等により予め定められる。なお、シフト演算器４２の段数や係数αは、予め定めておくだけではなく、例えば、記憶部１８に、文字モードやグラフィックモード等の複数のモード毎に記憶しておき、ユーザの選択や画像データの画像を形成するモードにあわせて設定されるようにしてもよい。
【００３４】
次に具体的例を挙げて、図４に示した誤差拡散処理回路３０の動作について詳細に説明する。なお、ここでは、画素毎の画素値を、図７に具体的例として示したように画素値ＰＸ、Ｙとする。
【００３５】
副走査方向１列目の誤差加算回路３２には、画素値ＰＸ、１＋ｎ（ｎ＝０以上の整数）が順次入力される。副走査方向２列目の誤差加算回路３２には、画素値ＰＸ、２＋ｎが順次入力される。副走査方向３列目の誤差加算回路３２には、画素値ＰＸ、３＋ｎが順次入力される。
【００３６】
まず、図８に示したように、誤差加算回路３２１に画素値Ｐ１、１が入力され、誤差加算回路３２２に画素値Ｐ１、２が入力され、誤差加算回路３２３に画素値Ｐ１、３が入力される。ここでは、量子化回路３４に注目画素の画素値が入力されないため、量子化及び量子化誤差の演算が行われない、従って、各誤差加算回路３２１〜３２１２に量子化誤差は入力されない。ＣＬＫ信号が入力されると、画素値Ｐ１、１、画素値Ｐ１、２、及び、画素値Ｐ１、３はシフトする。
【００３７】
次では、図９に示したように、誤差加算回路３２１に画素値Ｐ２、１が入力され、誤差加算回路３２２に画素値Ｐ２、２が入力され、誤差加算回路３２３に画素値Ｐ２、３が入力される。ここでも、量子化回路３４に注目画素の画素値が入力されないため、量子化及び量子化誤差の演算が行われない、従って、各誤差加算回路３２１〜１２に量子化誤差は入力されない。ＣＬＫ信号が入力されると、画素値Ｐ１、１、画素値Ｐ１、２、画素値Ｐ１、３、画素値Ｐ２、１、画素値Ｐ２、２、及び画素値Ｐ２、３はシフトする。
【００３８】
次では、図１０に示したように、誤差加算回路３２１に画素値Ｐ３、１が入力され、誤差加算回路３２２に画素値Ｐ３、２が入力され、誤差加算回路３２３に画素値Ｐ３、３が入力される。ここでは、量子化回路３４に注目画素の画素値Ｐ１、１が入力されるため、量子化回路３４で量子化され、誤差演算回路３６で量子化誤差が演算され、量子化値Ｐ１、１ｏｕｔ及び量子化誤差ΔＰ１、１が出力される。本実施の形態では、量子化回路３４は、８ビット値である画素Ｐ１、１の画素値を図１１に具体的一例を示した画素値ＰＸ、Ｙと量子化値ＰＸ、Ｙｏｕｔとの対応関係に従って、２ビット値に量子化する。また、誤差演算回路３６は、注目画素の量子化値Ｐ１、１ｏｕｔと、量子化前の画素値Ｐ１、１との量子化誤差ΔＰ１、１を算出する。本実施の形態では、図１２に具体的一例を示した画素値Ｐ１、１と被減算値Ｋとの対応関係に従って、被減算値Ｋを用意し、ΔＰ１、１＝画素値Ｐ１、１−被減算値Ｋ、を演算することにより、量子化誤差ΔＰ１、１を算出する。
【００３９】
誤差演算回路３６により演算された量子化誤差ΔＰ１、１は、誤差加算回路３２１〜３２１２に入力される。各誤差加算回路３２１〜３２１２では、シフト演算器４２で予め定められた割合に演算された量子化誤差ΔＰ１、１が、加算器４４で入力された各画素値に加算される。ＣＬＫ信号が入力されると、各加算値Ｚはシフトする。
【００４０】
次では、図１３に示したように、誤差加算回路３２１に画素値Ｐ４、１が入力され、誤差加算回路３２２に画素値Ｐ４、２が入力され、誤差加算回路３２３に画素値Ｐ４、３が入力される。ここでは、誤差加算回路３２７及び３２１２から、ΔＰ１、１が出力される。量子化回路３４には注目画素の画素値Ｐ２、１に前回の量子化誤差ΔＰ１、１が加算されたＰ２、１＋ΔＰ１、１が入力され、上述したように、量子化回路３４で加算値の量子化が行われ、誤差演算回路３６で量子化誤差が演算され、量子化値Ｐ２、１ｏｕｔ及びΔＰ２、１が出力される。量子化誤差ΔＰ２、１は、誤差加算回路３２１〜３２１２に入力される。各誤差加算回路３２１〜３２１２では、シフト演算器４２で予め定められた割合に演算された量子化誤差ΔＰ２、１が、加算器４４で入力された各画素値＋量子化誤差ΔＰ１、１に加算される。ＣＬＫ信号が入力されると、各加算値Ｚはシフトする。
【００４１】
次では、図１４に示したように、誤差加算回路３２１に画素値Ｐ５、１が入力され、誤差加算回路３２２に画素値Ｐ５、２が入力され、誤差加算回路３２３に画素値Ｐ５、３が入力される。ここでは、誤差加算回路３２７及び３２１２から、ΔＰ１、１＋ΔＰ２、１が出力される。量子化回路３４には注目画素の画素値Ｐ３、１に前回及び前々回の量子化誤差ΔＰ２、１及び量子化誤差ΔＰ１、１が加算されたＰ３、１＋ΔＰ２、１＋ΔＰ１、１が入力され、上述したように、量子化回路３４で加算値の量子化が行われ、誤差演算回路３６で量子化誤差が演算され、量子化値Ｐ３、１ｏｕｔ及びΔＰ３、１が出力される。量子化誤差ΔＰ３、１は、誤差加算回路３２１〜３２１２に入力される。各誤差加算回路３２１〜３２１２では、シフト演算器４２で予め定められた割合に演算された量子化誤差ΔＰ３、１が、加算器４４で入力された各画素値＋量子化誤差ΔＰ１、１＋ΔＰ２、１に加算される。ＣＬＫ信号が入力されると、各加算値Ｚはシフトする。
【００４２】
このように、図８〜図１４の処理を繰り返し、注目画素の画素値Ｐｘ、１の誤差拡散処理が終了すると、誤差拡散処理回路３０には、次の副走査方向の列群が入力される、具体的には、誤差加算回路３２１に画素値Ｐ１、４が入力され、誤差加算回路３２２に画素値Ｐ１、５が入力され、誤差加算回路３２３に画素値Ｐ１、６が入力され、さらに、図８〜図１４の処理を繰り返す。本実施の形態では、このようにして、全画素に対して誤差拡散処理を行う。
【００４３】
次に、複数の注目画素に対する上記誤差拡散処理の並列処理について詳細に説明する。本実施の形態は、副走査方向に並んだ複数の注目画素に対して並列処理を行うものであるため、具体的一例として、副走査方向に８列（８個）の注目画素に対して並列処理を行う場合について詳細に説明する。図１５は、誤差拡散処理を８列並列処理で行う場合の概念図である。注目画素８画素のそれぞれに対応する誤差ウインドウＷ１〜誤差ウインドウＷ８が図１５に示すように、主走査方向に並んで設けられる。
【００４４】
８個の注目画素が主走査方向に同時に１画素ずつシフトし、順次誤差拡散処理が行われる。処理が進む（注目画素がシフトする）に従い、誤差ウインドウＷ１の副走査方向２列目及び３列目に属する画素以外は、誤差拡散未着手画素被誤差拡散画素、注目画素、誤差拡散処理済画素と、処理工程に伴い、状態が順次変化しいていく。誤差ウインドウＷ１の副走査方向２列目及び３列目に属する画素は、誤差拡散未着手画素から被誤差拡散画素へのみ変化する。
【００４５】
図１６に、誤差拡散処理を８列並列処理で行った場合の具体的一例（図１５）を回路化したブロック図を示す。誤差ウインドウＷ１〜誤差ウインドウＷ８の各々に対応する誤差拡散処理回路３３が図１６に示すように、主走査方向にシリアル接続されている。誤差ウインドウＷ２〜誤差ウインドウＷ８では、前段の誤差ウインドウの副走査方向２列目及び３列目の最後段の誤差加算回路３２（誤差加算回路３２７及び誤差加算回路３２１２）の出力が次段の誤差ウインドウの副走査方向１列目及び２列目の第１段の誤差加算回路３２（誤差加算回路３２１及び誤差加算回路３２３）に入力される。
【００４６】
誤差ウインドウＷ１では、副走査方向２列目及び３列目の最後段の誤差加算回路３２（誤差加算回路３２７及び誤差加算回路３２１２）には、誤差バッファ回路３８１及び誤差バッファ回路３８２が接続されている。誤差バッファ回路３８１及び誤差バッファ回路３８２は、入力された誤差加算回路３２７及び誤差加算回路３２１２の出力値を記憶する。すなわち、誤差バッファ回路３８１は、画素値Ｐｘ、７＋８ｎに誤差拡散処理により量子化誤差が加算された加算値を記憶し、誤差バッファ回路３８２は、画素値Ｐｘ、８＋８ｎに誤差拡散処理により量子化誤差が加算された加算値を記憶する。誤差バッファ回路３８１及び誤差バッファ回路３８２の具体的一例としては、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）回路が挙げられる。この場合、段数は、主走査方向（Ｘ方向）の用紙幅／プリンタの解像度になる。
【００４７】
このように、本実施の形態の画像処理装置１０には、誤差バッファ回路３８が２個備えられている。誤差バッファ回路３８の数は、誤差ウインドウＷの副走査方向（Ｙ方向）の画素数によって定められる。具体的には、副走査方向の画素数−１個に定められる。例えば、誤差ウインドウＷの副走査方向の画素数が４個である場合は、４−１＝３個に定められる。
【００４８】
誤差バッファ回路３８１及び誤差バッファ回路３８２は誤差ウインドウＷ８の副走査方向１列目及び２列目の第１段の誤差加算回路３２（誤差加算回路３２１及び誤差加算回路３２３）に接続されている。前回の誤差拡散処理により誤差バッファ回路３８１及び誤差バッファ回路３８２に記憶された画素値Ｐｘ、７＋８ｎに量子化誤差が加算された加算値（記憶値Ｍ１）及び画素値Ｐｘ、８＋８ｎに量子化誤差が加算された加算値（記憶値Ｍ２）がそれぞれ、誤差加算回路３２１及び誤差加算回路３２３に入力される。
【００４９】
また、本実施の形態の画像処理装置１０は、遅延回路４０を備えている。遅延回路４０は、誤差ウインドウＷ１〜誤差ウインドウＷ８に画素値Ｐｘ、１＋８ｎ〜画素値Ｐｘ、８＋８ｎが入力されるタイミングを一致させるためのものである。本実施の形態では、誤差ウインドウＷ１〜誤差ウインドウＷ８各々の副走査方向３列目の第１段の誤差加算回路３２（誤差加算回路３２１）に画素値Ｐｘ、１＋８ｎ〜画素値Ｐｘ、８＋８ｎが入力されるタイミングを一致させるために、誤差ウインドウＷ１〜誤差ウインドウＷ７各々の誤差加算回路３２１に接続されている。
【００５０】
ページメモリ（図示省略）から取り出された画素値Ｐｘ、２＋８ｎ〜画素値Ｐｘ、８＋８ｎは、それぞれ固有段数の遅延回路４０を通して誤差ウインドウＷ１〜誤差ウインドウＷ７に入力される。誤差ウインドウＷ８には、遅延回路４０を通さずに画素値Ｐｘ、１＋８ｎが入力される。
【００５１】
誤差拡散処理を８列並列処理で行う場合の動作について詳細に説明する。
【００５２】
主走査方向（画像）の端部である副走査方向１列目〜８列目の画素に対して、誤差拡散処理を行う場合、記憶値Ｍ１及び記憶値Ｍ２はいずれも「０」になる。従って、誤差ウインドウＷ７及び誤差ウインドウＷ８からは量子化誤差値が出力されず、誤差ウインドウＷ６〜誤差ウインドウＷ１からは各々量子化値Ｐｘ、１ｏｕｔ〜量子化値Ｐｘ、６ｏｕｔが出力される。また、誤差バッファ回路３８１には画素値Ｐｘ、７に量子化誤差が加算された加算値が記憶（記憶値Ｍ１）され、誤差バッファ回路３８２には画素値Ｐｘ、８に量子化誤差が加算された加算値が記憶（記憶値Ｍ２）される。
【００５３】
主走査方向の終端部では、仮想的に画素値が「０」である画素があるものとみなして同様に誤差拡散処理を行う。主走査方向に配列された全ての画素に対して誤差拡散処理が行われると、次の副走査方向８列分の並列処理を行う。
【００５４】
次の並列処理では、誤差ウインドウＷ８の誤差加算回路３２１には、記憶値Ｍ１が入力され、誤差加算回路３２３には記憶値Ｍ２が入力される。従って、今回の並列処理では、誤差ウインドウＷ８〜誤差ウインドウＷ１からは各々量子化値Ｐｘ、７ｏｕｔ〜量子化値Ｐｘ、１４ｏｕｔが出力される。当該並列処理を全画素に対して誤差拡散処理が行われるまで繰り返す。なお、副走査方向の終端部では、主走査方向の端部と同様に、仮想的に画素値が「０」である画素があるものとみなして同様に誤差拡散処理を行う。
【００５５】
なお、本実施の形態では誤差ウインドウＷの大きさを主走査方向５画素×副走査方向３画素としたが、これに限らず、その他の大きさでもよいし、注目画素の位置もその他であってもよい。また、被誤差拡散画素の画素数も本実施の形態に限定されない。また、文字モードやグラフィックモード等の複数のモード毎にウインドウＷの大きさを予め設定し、記憶部１８等に記憶しておきモードに合わせて変更するようにしてもよい。なお、この場合、ウインドウの大きさにより各被誤差酢酸画素に対応するシフト演算器４２の段数や乗算器４８の係数は変化する。
【００５６】
また、本実施の形態では、並列度が８（８列）の並列処理について詳細に説明したが、並列処理の並列度はこれに限定されずその他の数であってもよい。
【００５７】
また、誤差加算回路３２及び誤差加算回路３２’の何れを用いるかは、画像処理装置１０の仕様等により定めればよい。なお、誤差加算回路３２を用いる場合は、回路構成が小さくなる。また、誤差加算回路３２’を用いる場合は、任意性がもたせられる。
【００５８】
また、画像データが例えば、ＣＭＬＫ等のカラーデータの場合は、各色毎に画素値の誤差拡散処理を行えばよい。
【００５９】
このように本実施の形態では、注目画素の量子化誤差を拡散する誤差拡散処理回路３０を備えており、誤差拡散処理回路３０は１２個の被誤差拡散画素を含む誤差拡散ウインドウＷに対して注目画素の誤差を拡散する。誤差拡散処理回路３０は、量子化回路３４、誤差演算回路３６、及び各被誤差拡散画素に対応する誤差加算回路３２を含んでいる。誤差加算回路３２は、シフト演算器４２、加算器４４、及びシフトレジスタ４６を含んでいる。シフト演算器４２は入力された量子化誤差ΔＰを予め定められた割合にシフト演算し、加算器４４に出力する。加算器４４は、シフト演算器４２の出力値と、入力された以前に行われた誤差拡散処理により量子化誤差が累積加算された画素値Ｐｘ、Ｙと、を加算し、シフトレジスタ４６に出力する。ＣＬＫ信号が入力すると、シフトレジスタ４６は加算器４４から入力された入力値を主走査方向にシリアル接続された誤差加算回路３２に出力する。
【００６０】
本実施の形態では、誤差加算回路３２の出力値が主走査方向にシリアル接続された次の誤差加算回路３２の入力値になるため、出力値を退避させるためのメモリ等を設けなくてよい。従って、本構成を有しない場合に比較して、少ないハード・リソースで画素値の誤差拡散処理が行われる。
【００６１】
また、本実施の形態では全ての被誤差拡散画素に対応する誤差加算回路３２は略同一の構成であるたため、各被誤差加算回路３２における演算を同時に開始させるとともに、同時に終了させられ、同タイミングで動作する。また、全誤差加算回路３２に同タイミングで量子化誤差ΔＰが入力するため、被誤差拡散画素の注目画素からの距離（位置）によらず、同タイミングで動作する。同タイミングで動作することによりディレイがないため、高速動作し、スループットが向上する。
【００６２】
また、本実施の形態の誤差拡散方式は、量子化誤差を被誤差拡散画素に拡散する分配方式であるため、被誤差拡散画素の位置により時間がかかる集中方式の場合に比べ、短時間で誤差拡散処理が行われる。
【００６３】
さらに、本実施の形態では、８列並列処理するため、８個の誤差拡散処理回路３０が主走査方向にシリアル接続されている。各誤差拡散処理回路３０の誤差加算回路３２１及び誤差加算回路３２３には、前段の誤差拡散処理回路３０の誤差拡散回路３２７及び誤差加算回路３２１２の出力値が入力される。各誤差拡散処理回路の誤差加算回路３２３には、対応する画素値ＰＸ、Ｙが遅延回路４０により同タイミングで入力される。最後段の誤差拡散処理回路３０の誤差加算回路３２３及び誤差加算回路３２１２の出力値は、誤差バッファ回路３８１及び誤差バッファ回路３２２に記憶値Ｍ１及び記憶値Ｍ２として記憶される。誤差バッファ回路３８１及び誤差バッファ回路３２２は第１段の誤差拡散処理回路３０の誤差加算回路３２１及び誤差加算回路３２３に接続されており、前回の並列処理の際に記憶した記憶値Ｍ１及びＭ２を出力する。
【００６４】
本実施の形態では、並列度にかかわらず、誤差拡散処理回路３０には、前段の誤差拡散処理回路３０の出力値がそのまま入力値となるため、注目画素がシフトする際に出力値を退避させるためのメモリ等を設けなくてよい。従って、並列度にかかわらず本構成を有しない場合に比較して、少ないハード・リソースで画素値の誤差拡散処理が行われる。
【００６５】
また、誤差バッファ回路３８を備える数は、並列度にかかわらず、誤差ウインドウＷの副走査方向の画素数に依存するため、誤差拡散処理の並列度が上がっても変わらない。従って、誤差バッファ回路３８の肥大化等の問題が生じない。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態に係る画像処理装置の概略構成の一例を示す機能ブロック図である。
【図２】本発明の実施の形態に係る誤差ウインドウを説明するための説明図である。
【図３】本発明の実施の形態に係る誤差拡散処理の処理フローの一例の概略を示すフローチャートである。
【図４】本発明の実施の形態に係る１誤差ウインドウ当りの誤差拡散処理回路の概略構成の一例を示す回路図である。
【図５】本発明の実施の形態に係る１画素当りの誤差拡散処理回路の概略構成の一例を示す回路図である。
【図６】本発明の実施の形態に係る１画素当りの誤差拡散処理回路の概略構成のその他の一例を示す回路図である。
【図７】本発明の実施の形態に係る誤差拡散処理を説明するための画素値の具体的一例示す説明図である。
【図８】本発明の実施の形態に係る１誤差ウインドウ当りの誤差拡散処理の具体的一例を説明するための説明図である。
【図９】本発明の実施の形態に係る１誤差ウインドウ当りの誤差拡散処理の具体的一例を説明するための図８に続く説明図である。
【図１０】本発明の実施の形態に係る１誤差ウインドウ当りの誤差拡散処理の具体的一例を説明するための図９に続く説明図である。
【図１１】本発明の実施の形態に係る画素値と量子化値との対応関係の具体的一例を説明するための説明図である。
【図１２】本発明の実施の形態に係る画素値と被減算値との対応関係の具体的一例を説明するための説明図である。
【図１３】本発明の実施の形態に係る１誤差ウインドウ当りの誤差拡散処理の具体的一例を説明するための図１０に続く説明図である。
【図１４】本発明の実施の形態に係る１誤差ウインドウ当りの誤差拡散処理の具体的一例を説明するための図１３に続く説明図である。
【図１５】本発明の実施の形態に係る誤差拡散処理を８列並列処理で行った場合の具体的一例を説明するための概念図である。
【図１６】本発明の実施の形態に係る誤差拡散処理を８列並列処理で行った場合の具体的一例を回路化したブロック図である。
【符号の説明】
【００６７】
１０  画像処理装置
１２  制御部
１４  データ変換部
１８  記憶部
２０  誤差拡散処理部
３０  誤差拡散処理回路
３２、３２’  誤差加算回路
３４  量子化回路
３６  誤差演算回路
３８  誤差バッファ回路
４０  遅延回路
４２  シフト演算器
４６  シフトレジスタ
４８  乗算器
【図１】
2010154069.tif 000003
【図２】
2010154069.tif 000004
【図３】
2010154069.tif 000005
【図４】
2010154069.tif 000006
【図５】
2010154069.tif 000007
【図６】
2010154069.tif 000008
【図７】
2010154069.tif 000009
【図８】
2010154069.tif 000010
【図９】
2010154069.tif 000011
【図１０】
2010154069.tif 000012
【図１１】
2010154069.tif 000013
【図１２】
2010154069.tif 000014
【図１３】
2010154069.tif 000015
【図１４】
2010154069.tif 000016
【図１５】
2010154069.tif 000017
【図１６】
2010154069.tif 000018