(57)【特許請求の範囲】
【請求項１】
多階調の画像データの各画素に対し先頭のラインから最後段のラインに向かって順に誤差拡散法による２値化処理を行なう画像処理装置であって、
処理ラインの後段のラインの画素を含む処理対象画素の周囲の未処理画素を拡散範囲とする誤差の拡散を伴って、処理ラインの先頭の画素から最後尾の画素に向かって処理対象画素を順にシフトしながら２値化処理する処理部を複数備え、
該複数の処理部のうち後段のラインを処理する処理部は、前段のラインを処理する処理部の処理対象画素に対して少なくとも前記拡散範囲分だけ処理対象画素を遅らせながら順に２値化処理するものであり、
前記複数の処理部は、それぞれ先入れ先出し方式のバッファーを有し、後段のラインを処理する処理部と前記バッファーを介してパイプライン状に接続され、処理対象画素のシフトに伴って前記拡散範囲から外れる画素の誤差を前記バッファーに出力する
画像処理装置。
【請求項２】
前記複数の処理部は、それぞれ前記バッファーとして後段のラインを処理する処理部との間に後段側のバッファーを有し、該後段側のバッファーに空きが生じていることを条件として処理対象画素をシフトする請求項１記載の画像処理装置。
【請求項３】
前記複数の処理部は、それぞれ前記バッファーとして前段のラインを処理する処理部との間に前段側のバッファーを有し、該前段側のバッファーに誤差が格納されていることを条件として処理対象画素をシフトする請求項１または２記載の画像処理装置。
【請求項４】
前記複数の処理部は、それぞれ前段のラインを処理する処理部の処理対象画素が処理ラインの先頭から少なくとも前記拡散範囲分を超えてシフトしたことを条件として、処理ラインの２値化処理を開始する請求項１ないし３いずれか１項に記載の画像処理装置。
【請求項５】
前記画像データとして複数の色成分で構成されるカラーの画像データを用いる請求項１ないし４いずれか１項に記載の画像処理装置であって、
前記複数の処理部から構成される処理部群を、前記複数の色成分毎にそれぞれ備える
画像処理装置。
【請求項６】
請求項１ないし５いずれか１項に記載の画像処理装置を備え、該画像処理装置により２値化処理されたデータを用いて媒体に画像を形成する画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多階調の画像データの各画素に対し先頭のラインから最後段のラインに向かって順に誤差拡散法による２値化処理を行なう画像処理装置および画像処理装置を備える画像形成装置に関する。
【背景技術】
【０００２】
従来より、多階調の画像データの各画素を誤差拡散法により２値化する画像処理装置が提案されている（例えば、特許文献１参照）。この装置では、一つの誤差拡散処理部により、各画素を順次２値化するものとしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１６４３６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、誤差拡散法は、処理対象画素の２値化に伴って生じる誤差を処理対象画素の周囲の未処理画素に順次拡散するものであるから、各画素の値を閾値と単純に比較するディザ法などに比して処理負担が増加するものとなる。また、近年においては、画像の高解像度化に伴って画像データの画素数が増加しているため、上述した装置のように、一つの誤差拡散処理部により２値化するものにおいては、多大な処理時間を要することがある。
【０００５】
本発明の画像処理装置および画像形成装置は、誤差拡散法を用いた２値化処理をより迅速に行なうことを主目的とする。
【０００６】
本発明の画像処理装置および画像形成装置は、上述の主目的を達成するために以下の手段を採った。
【課題を解決するための手段】
【０００７】
本発明の画像処理装置は、
多階調の画像データの各画素に対し先頭のラインから最後段のラインに向かって順に誤差拡散法による２値化処理を行なう画像処理装置であって、
処理ラインの後段のラインの画素を含む処理対象画素の周囲の未処理画素を拡散範囲とする誤差の拡散を伴って、処理ラインの先頭の画素から最後尾の画素に向かって処理対象画素を順にシフトしながら２値化処理する処理部を複数備え、
該複数の処理部のうち後段のラインを処理する処理部は、前段のラインを処理する処理部の処理対象画素に対して少なくとも前記拡散範囲分だけ処理対象画素を遅らせながら順に２値化処理する
ことを要旨とする。
【０００８】
この本発明の画像処理装置では、処理ラインの後段のラインの画素を含む処理対象画素の周囲の未処理画素を拡散範囲とする誤差の拡散を伴って、処理ラインの先頭の画素から最後尾の画素に向かって処理対象画素を順にシフトしながら２値化処理する処理部を複数備え、複数の処理部のうち後段のラインを処理する処理部は、前段のラインを処理する処理部の処理対象画素に対して少なくとも拡散範囲分だけ処理対象画素を遅らせながら順に２値化処理する。これにより、未処理画素に適切に誤差を反映させながら各ラインを並行処理することができ、誤差拡散法を用いた２値化処理をより迅速に行なうことができる。
【０００９】
また、本発明の画像処理装置において、前記複数の処理部は、それぞれ先入れ先出し方式のバッファーを有し、後段のラインを処理する処理部と前記バッファーを介してパイプライン状に接続され、処理対象画素のシフトに伴って前記拡散範囲から外れる画素の誤差を前記バッファーに出力するものとすることもできる。こうすれば、後段のラインを処理する処理部に引き継ぐ誤差を外部のメモリーなどに出力する必要がないから、後段のラインを処理する処理部が前段のラインを処理する処理部から引き継がれる誤差にアクセスする時間を大幅に短縮することができる。これにより、２値化処理をさらに迅速に行なうことができる。
【００１０】
この態様の本発明の画像処理装置において、前記複数の処理部は、それぞれ前記バッファーとして後段のラインを処理する処理部との間に後段側のバッファーを有し、該後段側のバッファーに空きが生じていることを条件として処理対象画素をシフトするものとすることもできる。こうすれば、後段のラインを処理する処理部に引き継ぐ誤差を出力できなくなるのを防止することができる。また、この態様の本発明の画像処理装置において、前記複数の処理部は、それぞれ前記バッファーとして前段のラインを処理する処理部との間に前段側のバッファーを有し、該前段側のバッファーに誤差が格納されていることを条件として処理対象画素をシフトするものとすることもできる。こうすれば、後段のラインを処理する処理部が、前段のラインを処理する処理部を追い越して処理するのを防止することができる。
【００１１】
また、本発明の画像処理装置において、前記複数の処理部は、それぞれ前段のラインを処理する処理部の処理対象画素が処理ラインの先頭から少なくとも前記拡散範囲分を超えてシフトしたことを条件として、処理ラインの２値化処理を開始するものとすることもできる。こうすれば、後段のラインを処理する処理部が前段のラインを処理する処理部よりも先に処理を開始するのを防止することができる。
【００１２】
そして、前記画像データとして複数の色成分で構成されるカラーの画像データを用いる本発明の画像処理装置であって、前記複数の処理部から構成される処理部群を、前記複数の色成分毎にそれぞれ備えるものとすることもできる。こうすれば、各色成分毎に、それぞれ並行して２値化処理を行なうことができるから、画像全体をさらに迅速に処理することができる。
【００１３】
本発明の画像形成装置は、
上述した各態様のいずれかの本発明の画像処理装置を備え、該画像処理装置により２値化処理されたデータを用いて媒体に画像を形成する
ことを要旨とする。
【００１４】
この本発明の画像形成装置では、上述した各態様のいずれかの本発明の画像処理装置を備えるから、本発明の画像処理装置が奏する効果と同様の効果、例えば、未処理画素に適切に誤差を反映させながら各ラインを並行処理することができ、誤差拡散法を用いた２値化処理をより迅速に行なうことができる効果などを奏することができる。
【図面の簡単な説明】
【００１５】
【図１】プリンター２０の構成の概略を示す構成図。
【図２】誤差拡散法による２値化処理の内容を説明する説明図。
【図３】画像処理プロセッサー３２の誤差拡散用の構成の概略を示す構成図。
【図４】各コア４２による２値化処理ルーチンの一例を示す説明図。
【図５】ラインＬ１とラインＬ２とを２値化処理する様子を示す説明図。
【図６】画像全体に２値化処理する様子を示す説明図。
【発明を実施するための形態】
【００１６】
次に、本発明の実施の形態を図面を用いて説明する。図１は、本発明の一実施形態であるプリンター２０の構成の概略を示す構成図である。本実施形態のプリンター２０は、図１に示すように、記録紙Ｓへシアン（Ｃ），マゼンタ（Ｍ），イエロー（Ｙ），ブラック（Ｋ）のＣＭＹＫの各色のインクを吐出することにより印刷を実行する周知のインクジェット方式のプリンター機構２２と、液晶ディスプレイとしてのＬＣＤ２４と、各種モードの設定や印刷操作に必要な設定などをユーザーが入力するための複数のボタンからなる操作ボタン群２６と、装置各部の制御や装置各部の機能を実現するための各種処理などを行なうための処理制御部３０とを備える。
【００１７】
処理制御部３０は、装置全体を制御するメインプロセッサー３１と、印刷対象の画像や表示対象の画像についての各種処理を行なう画像処理プロセッサー３２と、ＬＣＤ２４への画像の表示を制御するＬＣＤコントローラー３３と、メインプロセッサー３１や画像処理プロセッサー３２，各コントローラーからの指令に応じてＳＤＲＡＭなどのメインメモリー３４ａからデータを読み込んだりメインメモリー３４ａにデータを書き込んだりするメモリーコントローラー３４と、プリンター機構２２を制御するプリンターコントローラー３５と、写真画像などの画像データが保存されたメモリーカードＭＣとデータのやり取りを行なうカードコントローラー３６と、各種データや各種テーブルなどを記憶したＲＯＭ３７などを備えており、これらは、バス３９を介して互いに各種信号やデータのやり取りをすることができるよう接続されている。
【００１８】
メインプロセッサー３１は、操作ボタン群２６からの操作信号を入力したり、プリンターコントローラー３５を介してプリンター機構２２からの各種動作信号などを入力したり、カードコントローラー３６を介してメモリーカードＭＣの画像データを入力したり、入力した画像データをメモリーコントローラー３４を介してメインメモリー３４ａに書き込んだりする。また、メインプロセッサー３１は、プリンター機構２２による画像の印刷を実行するようプリンターコントローラー３５に印刷指令を出力したり、ＬＣＤ１２に各種情報や画像を表示するようＬＣＤコントローラー３３に表示指令を出力したり、各種画像の処理を行なうよう画像処理プロセッサー３２に画像処理指令を出力したりする。なお、メモリーカードＭＣから入力される画像データは、本実施形態では、縦横のマトリックス状に画素が配置され、画素の各値が濃淡に応じて８ビット（２５６階調）で表されたＲＧＢデータとする。
【００１９】
画像処理プロセッサー３２は、メインプロセッサー３１からの画像処理指令に応じて、メモリーカードＭＣから入力された画像データを印刷用の画像データに変換処理したり、表示用の画像データに変換処理したりする。例えば、印刷用の画像データへの画像処理指令であれば、ＲＧＢ各８ビットのデータをＣＭＹＫ各８ビットのデータに色変換し、色変換したＣＭＹＫ各８ビットのデータを誤差拡散法により各２ビットの印刷用データ（２値化データ）に処理する。また、表示用の画像データへの画像処理指令であれば、ＲＧＢ各８ビットのデータをＬＣＤ１２で表示可能な所定のビット数に減らすことなどにより表示用データに処理する。
【００２０】
ここで、画像処理プロセッサー３２の処理のうち、誤差拡散法による２値化処理について説明する。図２は、誤差拡散法による２値化処理の内容を説明する説明図であり、図３は、画像処理プロセッサー３２の誤差拡散用の構成の概略を示す構成図である。本実施形態では、図２（ａ）に示すように、処理対象画素と所定の閾値との大小を比較して２値化する際に生じる誤差を、処理対象画素を中心とする周囲の縦５画素×横５画素のうち未処理の画素（計１２画素）を拡散範囲として拡散する。即ち処理ラインの後段ラインの未処理画素を含めて誤差が拡散されることになる。なお、誤差拡散範囲の各画素内の数値（７／４８や５／４８など）は、各画素への誤差の拡散割合を示す。こうした誤差の拡散を伴って、画像データの最上段のラインを先頭のラインとして、最後段のラインである最下段のラインに向かって、各ライン毎に２値化処理を行なう。また、各ラインにおいては、図中左端の画素を先頭として、図中右端の最後尾の画素に向かって（図中処理方向）、処理対象画素を順次シフトしながら処理を行なう。このシフトに伴って、後尾の２画素が誤差拡散範囲から外れるから、その後尾の２画素分の誤差を後段ラインの処理に順次引き継ぐ必要がある。言い換えると、処理対象画素をシフトする度に、誤差拡散範囲の先頭の２画素分の誤差を新たに入力して（前段ラインの処理から引き継いで）、処理する必要がある。また、処理ラインの最後尾の画素を処理したときには、その誤差拡散範囲である後半６画素分の誤差（図２（ｂ））を後段ラインの処理に引き継ぐ必要があり、処理ラインの先頭の画素を処理するときには、処理対象画素を含む誤差拡散範囲の前半６画素分の誤差（図２（ｃ））を前段ラインの処理から引き継ぐ必要がある。なお、２値化処理は、画像データの各画素についてＣＭＹＫの各色毎に行なわれ、所定の閾値は、ＲＯＭ３４に記憶されてメインメモリー３４ａに展開されるものを用いる。
【００２１】
また、画像処理プロセッサー３２は、誤差拡散用の構成として、図３（ａ）に示すように、複数のパイプラインプロセッサー４０（＃０〜＃３）を備える。これらのパイプラインプロセッサー４０は、それぞれ独立に画素値を入力して２値化処理が可能となっており、本実施形態では、各パイプラインプロセッサー４０がそれぞれＣＭＹＫの各色の処理を担当するものとした。また、これらのパイプラインプロセッサー４０は、図３（ｂ）に示すように、パイプライン状に接続された複数のコア４２（＃００〜＃３１）と、先頭のコア４２（＃００）の前に配置されたブリッジ４４と、最後尾のコア４２（＃３１）の後に配置されたブリッジ４６とから構成されている。
【００２２】
各コア４２（＃ｎ）は、図３（ｃ）に示すように、コア４２全体を制御するプロセッサーコア５０と、ＳＲＡＭなどで構成されたメモリー５１と、バス３９に接続される入出力ポート５２と、入出力ポート５２を介してデータを読み込んでメモリー５１に保存するデータローダー５３と、先入れ先出し方式でデータを格納する前段ＦＩＦＯ５４と、画素毎の誤差を演算する積和演算器５５と、演算結果を一時的に格納するレジスター５６と、処理対象画像の画素値に誤差を加えた値と所定の閾値とを比較する比較器５７と、先入れ先出し方式でデータを格納する後段ＦＩＦＯ５８とから構成されている。データローダー５３は、メインメモリー３４ａに展開された所定の閾値や画像データの各画素値などのデータを読み込んでメモリー５１に保存する。また、積和演算器５５は、処理対象画素の２値化により生じた誤差と各画素の拡散割合とを乗算し、その結果をレジスター５６に格納された前回の演算結果に順次加算することにより、各画素の誤差を演算する。なお、積和演算器５５は、図示は省略したが、複数（例えば、１０個や１２個）配置されるものとした。そして、比較器５７は、レジスター５６に格納された誤差のうち処理対象画像の誤差をメモリー５１に保存された処理対象画像の画素値に加えた値を、メモリー５１に保存された所定の閾値と大小を比較して２値化し、２値化により生じた誤差を積和演算器５５に出力する。また、前段ＦＩＦＯ５４は、前段に配置された前段のコア４２（＃ｎ−１）の後段ＦＩＦＯ５８に接続され、後段ＦＩＦＯ５８は、後段に配置された後段のコア４２（＃ｎ＋１）の前段ＦＩＦＯ５４に接続されている。ここで、２値化処理においては、処理対象画素のシフトに伴って誤差拡散範囲から外れる後尾の２画素分の誤差が後段ＦＩＦＯ５８に出力されると共に新たに誤差拡散範囲に含まれる先頭の２画素分の誤差が前段ＦＩＦＯ５４から入力され、誤差拡散範囲のその他の画素の誤差についてはレジスター５６との間で入出力される。なお、本実施形態では、前段ＦＩＦＯ５４は、６画素分の誤差を格納できるよう６段のＦＩＦＯとして構成され、後段ＦＩＦＯ５８は、２画素分の誤差を格納できるよう２段のＦＩＦＯとして構成されるものとした。
【００２３】
また、ブリッジ４４，４６の構成の詳細については省略するが、ブリッジ４４は、先頭のコア４２（＃００）の前に配置されており、誤差のダミーデータとして値０の誤差を先頭のコア４２（＃００）に出力したり、メインメモリー３４ａに保存された誤差を先頭のコア４２（＃００）に出力したりする。また、ブリッジ４６は、最後尾のコア４２（＃３１）の後に配置されており、最後尾のコア４２（＃３１）から出力された誤差をメインメモリー３４ａに出力する。
【００２４】
次に、こうして構成された本実施形態のマルチファンクションプリンター２０の動作、特に、画像処理プロセッサー３２のパイプラインプロセッサー４０による２値化処理について説明する。図４は、パイプラインプロセッサー４０の各コア４２により実行される２値化処理ルーチンの一例を示すフローチャートである。なお、本実施形態では、各コア４２で同時に２値化処理ルーチンの実行が開始されるものとし、以下では、各コア４２の共通の処理として説明し、一部処理の異なるコア４２がある場合には適宜説明を加える。また、コア４２（＃００）が先頭のラインを処理し、コア４２（＃０１）が２番目のラインを処理し、以下コア４２の接続順に後段側のラインを順に処理する。なお、３３番目のラインは、先頭のラインの処理が完了したコア４２（＃００）が処理し、以下同様の処理順で各ラインの処理が行なわれる。
【００２５】
この２値化処理ルーチンが実行されると、プロセッサーコア５０は、まず、処理対象値Ｎに値１を設定して（ステップＳ１００）、前段ＦＩＦＯ５４が一杯となるのを待つ（ステップＳ１１０）。この処理は、コア４２（＃００）においてはブリッジ４４から入力される値０の誤差（ダミーデータ）が前段ＦＩＦＯ５４に６画素分格納されるのを待つ処理となり、その他のコア４２においては前段のコア４２から入力される誤差が前段ＦＩＦＯ５４に６画素分格納されるのを待つ処理となる。なお、この６画素分の誤差は、図２（ｃ）に示した前半６画素分の誤差となる。そして、前段ＦＩＦＯ５４が一杯になると、Ｎ番目の画素（ここではラインの先頭画素）を処理対象画素として誤差拡散法による２値化処理を実行する（ステップＳ１２０）。
【００２６】
こうして２値化処理を実行すると、処理対象値Ｎを値１だけインクリメントして（ステップＳ１３０）、前段ＦＩＦＯ５４に２画素分の誤差が格納されているか否かを判定する（ステップＳ１４０）。この判定は、コア４２（＃００）においてはブリッジ４４からの誤差が格納されているか否かを判定するものとなり、その他のコア４２においては前段のコア４２からの誤差が格納されているか否かを判定するものとなる。そして、ステップＳ１４０で前段ＦＩＦＯ５４に誤差が格納されているときには、処理対象値Ｎが値３を超えるか否かを判定する（ステップＳ１５０）。この判定を行なう理由については後述する。処理対象値Ｎが値３を超えないときには、ステップＳ１２０に戻り、処理対象値Ｎの画素の２値化処理の実行などを繰り返す。なお、ステップＳ１４０で前段ＦＩＦＯ５４に誤差が格納されていないときには、次の処理に進むことはないため、ステップＳ１２０に戻って２値化処理を行なうことはない。このため、各コア４２が並行して２値化処理を実行していても、後段のコア４２は前段のコア４２から誤差が入力されない限り新たな画素を対象として２値化処理することはなく、後段のコア４２が前段のコア４２を追い越して２値化処理するのを防止することができる。
【００２７】
一方、ステップＳ１５０で処理対象値Ｎが値３を超えるときには、処理対象値Ｎが最大値Ｎｍａｘを超えるか否かを判定する（ステップＳ１６０）。なお、最大値Ｎｍａｘは、１ライン分の画素数を示すものであるため、まずは、処理対象値Ｎが最大値Ｎｍａｘを超えない場合を説明する。処理対象値Ｎが最大値Ｎｍａｘを超えないときには、後段ＦＩＦＯ５８へ誤差拡散範囲の後尾の２画素分の誤差（図２（ａ）参照）を格納する（ステップＳ１７０）。
【００２８】
そして、後段ＦＩＦＯ５８に空きが生じるのを待って（ステップＳ１８０）、ステップＳ１２０に戻り、処理対象値Ｎの画素を処理対象画素として２値化処理を実行する。ここで、上述したように、後段ＦＩＦＯ５８は、後段のコア４２の前段ＦＩＦＯ５４に接続されているため、後段ＦＩＦＯ５８に格納された誤差は、後段のコア４２の前段ＦＩＦＯ５４に空きがあれば後段ＦＩＦＯ５８から出力されて、後段ＦＩＦＯ５８には空きが生じることになる。但し、各コア４２の処理能力の個体差などにより、前段のコア４２の処理が後段のコア４２の処理よりも速く後段のコア４２の前段ＦＩＦＯ５２に誤差が滞留しているような場合には、後段ＦＩＦＯ５８から誤差が出力されず空きが生じないことになる。このように、ステップＳ１８０の判定は、後段のコア４２の処理状況を監視する意味をもち、後段のコア４２に確実に誤差を引き継ぐことができる状況で次の処理対象画素の２値化処理を行なうことを目的としている。
【００２９】
このような処理を繰り返し、ラインの右端の画素（処理対象値Ｎが最大値Ｎｍａｘの画素）を処理対象画素として２値化処理を実行して処理対象値Ｎを値１だけインクリメントすると、ステップＳ１６０で処理対象値Ｎは最大値Ｎｍａｘを超えると判定する。その場合、後段ＦＩＦＯ５８へ誤差拡散範囲の後半の６画素分の誤差（図２（ｂ）参照）を出力して（ステップＳ１９０）、本ルーチンを終了する。なお、後段ＦＩＦＯ５８に出力された６画素分の誤差は、後段のコア４２の処理状況（前段ＦＩＦＯ５４の空き状況）に応じて順次引き継がれることになる。
【００３０】
ここで、上述した２値化処理ルーチンによる処理の一例として、画像データの先頭のラインＬ１を担当する前段のコア４２（＃００）と、２番目のラインＬ２を担当する後段のコア４２（＃０１）とによる２値化処理について説明する。図５は、コア４２（＃００）とコア４２（＃０１）とによってラインＬ１とラインＬ２とを２値化処理する様子を示す説明図である。まず、コア４２（＃００）は、ブリッジ４４からダミーデータが順次入力されて前段ＦＩＦＯ５４が一杯になったと判定したときに、ラインＬ１の先頭画素（Ｎ１）の処理を開始する（図５（ａ）参照）。そして、処理対象画素をシフトさせてＮ２，Ｎ３の画素を順次処理していく（図５（ｂ）〜（ｃ））。また、Ｎ３の画素を処理して処理対象値Ｎが値３を超えた以降は、処理対象画素のシフトに伴って誤差拡散範囲から外れる後尾の２画素分の誤差を後段ＦＩＦＯ５８に出力しながら、Ｎ４，Ｎ５，Ｎ６の画素を順次処理していく（図５（ｄ）〜（ｆ））。上述した２値化処理ルーチンのステップＳ１５０の判定で、処理対象値Ｎが値３を超えるか否かを判定するのは、このためである。一方、コア４２（＃０１）は、コア４２（＃００）から誤差が出力されない限り前段ＦＩＦＯ５４が一杯になったと判定しないため、当初は待ち状態となり処理は行なわない（図５（ａ）〜（ｅ））。そして、コア４２（＃００）から計６画素分の誤差が出力されて前段ＦＩＦＯ５４に格納されると（図５（ｆ））、先頭画素（Ｎ１）の処理を開始する（図５（ｇ））。このように、処理開始時に後段のコア４２（＃０１）の誤差拡散範囲と前段のコア４２（＃００）の誤差拡散範囲とが重複することがなく、誤差拡散範囲の重複により処理が煩雑となるのを防止することができる。前段ＦＩＦＯ５４が一杯となってから先頭画素の処理を開始するのはこうした理由による。
【００３１】
また、図５（ｇ）以降においては、コア４２（＃００）は後段ＦＩＦＯ５８に空きがあることを条件として処理対象画素をシフトしてＮ７の画素を処理し（図５（ｈ））、コア４２（＃０１）は前段ＦＩＦＯ５４に誤差が格納されたことを条件として処理対象画素をシフトしてＮ２の画素を処理する（図５（ｉ））。これにより、前段のコア４２（＃００）から後段のコア４２（＃０１）に引き継ぐ誤差を出力できなくなったり、後段のコア４２（＃０１）が前段のコア４２（＃００）を追い越して処理したりするのを防止することができる。このように、各コア４２が前後のコア４２の処理状況に拘束されながら、各ラインを順次並行処理するのである。ここで、図６は、画像全体に対する２値化処理の様子を示す説明図である。図示するように、前段のラインの処理対象画素から誤差拡散範囲に相当する５行分の画素ずつ遅れた画素を処理対象画素として、各ラインの２値化処理が並行して行なわれている。また、本実施形態では、これらの複数のコア４２を前段ＦＩＦＯ５４と後段ＦＩＦＯ５８とを介してパイプライン状に接続して後段のコア４２に誤差を引き継ぐものとしたから、後段のコア４２に引き継ぐ誤差をメインメモリー３４ａなどの外部のメモリーに出力し後段のコア４２が外部のメモリーから誤差を読み込んで処理するものに比して、処理時間を短縮することができる。これらのことから、複数のコア４２を用いて未処理画素に適切に誤差を反映させながら各ラインをスムーズに並行処理することができ、誤差拡散法を用いた２値化処理をより迅速に行なうことができる。さらに、本実施形態では、このような複数のコア４２から構成されるパイプラインプロセッサー４０を各色毎に備えるから、ＣＭＹＫの各色の２値化処理を同時に並行処理することができ、画像全体の２値化処理をより迅速に行なうことができる。なお、最後尾のコア４２（＃３１）から出力される誤差はブリッジ４６を介して外部のメモリーであるメインメモリー３４ａに出力され、最後尾のコア４２（＃３１）の処理ラインの後段のラインを処理するコア４２（＃００）のために、ブリッジ４４はメインメモリー３４ａから誤差を読み込む必要がある。ただし、そのような外部のメモリーへの出力が必要となる誤差は、複数のコア４２のうち最後尾のコア４２（＃３１）からの誤差のみとすることができるから、全体の処理時間が大幅に遅延するのを抑制することができる。
【００３２】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態の図４の２値化処理ルーチンを実行する画像処理プロセッサー３２のパイプラインプロセッサー４０を構成するコア４２が本発明の「処理部」に相当する。また、コア４２の前段ＦＩＦＯ５４が「前段側のバッファー」に相当し、コア４２の後段ＦＩＦＯ５８が「後段側のバッファー」に相当する。
【００３３】
以上説明した本実施形態のプリンター２０によれば、処理ラインの後段のラインの画素を含む処理対象画素の周囲の未処理画素を拡散範囲とする誤差の拡散を伴って、処理ラインの先頭の画素から最後尾の画素に向かって処理対象画素を順にシフトしながら２値化処理するコア４２を複数備え、複数のコア４２のうち後段のラインを処理するコア４２は、前段のラインを処理するコア４２の処理対象画素に対して少なくとも拡散範囲分だけ処理対象画素を遅らせながら順に２値化処理する。これにより、未処理画素に適切に誤差を反映させながら各ラインを並行処理することができ、誤差拡散法を用いた２値化処理をより迅速に行なうことができる。
【００３４】
また、複数のコア４２を前段ＦＩＦＯ５４と後段ＦＩＦＯ５８とを介してパイプライン状に接続して後段のコア４２に誤差を引き継ぐものとしたから、後段のコア４２に引き継ぐ誤差をメインメモリー３４ａなどの外部のメモリーに出力するものに比して、処理時間を短縮することができる。さらに、後段ＦＩＦＯ５８に空きが生じるのを条件として処理するから、後段のコア４２に引き継ぐ誤差を出力できなくなるのを防止することができる。そして、前段ＦＩＦＯ５４に誤差が格納されていることを条件として処理するから後段のコア４２が前段のコア４２を追い越すのを防止することができる。また、前段ＦＩＦＯ５４に６画素分の誤差が格納されてから先頭の画素の処理を開始するから、処理開始時に後段のコア４２の誤差拡散範囲と前段のコア４２の誤差拡散範囲とが重複するのを防止することができる。さらに、複数のコア４２から構成されるパイプラインプロセッサー４０を各色毎に備えるから、各色の２値化処理を同時に並行処理をすることができる。
【００３５】
なお、本発明は上述した実施態様に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００３６】
上述した実施形態では、前段ＦＩＦＯ５４を６段としたが、これに限られず、６段より少ない段数としてもよいし、６段より多い段数としてもよい。また、後段ＦＩＦＯ５８を２段としたが、これに限られず、１段としてもよいし、２段より多い段数としてもよい。これらのＦＩＦＯの段数は、誤差の拡散範囲や各コア４２の処理速度に応じて定めるものとしてもよい。なお、後段のコア４２への誤差の出力待ちにより処理待ち状態にあるときに前段のコア４２からの誤差の入力に対応することを考えると、前段ＦＩＦＯ５４と後段ＦＩＦＯ５８とをそれぞれ少なくとも２段ずつは有するものが好ましい。
【００３７】
上述した実施形態では、コア４２が前段ＦＩＦＯ５４と後段ＦＩＦＯ５８とを備えるものとしたが、これに限られず、前段ＦＩＦＯ５４と後段ＦＩＦＯ５８とのいずれか一方を備えないものとしてもよいし、両者を備えないものとしてもよい。その場合、前段のコア４２から出力された誤差は、メモリー５１やレジスター５６に格納しておくものなどとしてもよい。
【００３８】
上述した実施形態では、前段ＦＩＦＯ５４が一杯となることを条件としてコア４２が先頭画素の２値化処理を行なうものとしたが、これに限られず、他の条件により先頭画素の２値化処理を行なうものとしてもよい。例えば、コア４２（＃００）が処理を開始してからの時間を計時しておき、各コア４２毎に所定時間ずつずらした時間が経過してから処理を開始するものなどとしてもよい。また、そのような条件が成立したときに、各コア４２がそれぞれ２値化処理ルーチンを開始するものとしてもよい。
【００３９】
上述した実施形態では、コア４２（＃００）の前にブリッジ４４を配置してコア４２（＃００）にダミーデータを出力したり誤差を出力したりするものとしたが、これに限られず、コア４２（＃００）が自らダミーデータを入力したり誤差を入力したりするものとしてもよい。その場合、コア４２（＃００）のデータローダー５３にそのような機能をもたせるものとしてもよい。また、コア４２（＃３１）の後にブリッジ４６を配置してコア４２（＃３１）からの誤差をメインメモリー３４ａに出力するものとしたが、これに限られず、コア４２（＃３１）が自ら誤差を出力するものとしてもよい。その場合、コア４２（＃３１）のデータローダー５３にそのような機能をもたせるものとしてもよい。あるいは、最後段のコア４２（＃３１）と最前段のコア４２（＃００）とが接続されていないものとしたが、最後段のコア４２（＃３１）と最前段のコア４２（＃００）とをＦＩＦＯを介して接続するものとしてもよく、その場合、最後段のコア４２（＃３１）の処理により生じる誤差を最前段のコア４２（＃００）に直接的に入力するものなどとしてもよい。
【００４０】
上述した実施形態では、処理対象画素を中心とした縦５画素×横５画素のうちの未処理画素（計１２画素）を誤差拡散範囲としたが、これに限られず、処理対象のラインの後段のラインの画素を誤差拡散範囲に含むものであればどのような範囲としてもよく、処理対象画素を中心とした縦３画素×横３画素のうちの未処理画素（計４画素）を誤差拡散範囲とするものなどとしてもよい。
【００４１】
上述した実施形態では、左の画素から右の画素に向かって順に処理するものとしたが、これに限られず、右の画素から左の画素に向かって順に処理するものとしてもよい。また、上のラインから下のラインに向かって順に処理するものとしたが、これに限られず、左のラインから右のラインに向かって順に処理するものとしてもよく、その場合には、上の画素から下の画素に向かって順に処理するものとしてもよいし、下の画素から上の画素に向かって順に処理するものとしてもよい。
【００４２】
上述した実施形態では、インク色はシアン（Ｃ），マゼンタ（Ｍ），イエロー（Ｙ），ブラック（Ｋ）の４色としたが、これに限られず、ライトシアン（ＬＣ）やライトマゼンタ（ＬＭ）などを含んで５色や６色としたり、それ以上の複数色としたりしてもよい。その場合、色数に応じた数のパイプラインプロセッサー４０を備えるものとすればよい。また、カラーの画像データを２値化処理するものに限られず、モノクロの画像データを２値化処理するものとしてもよい。
【００４３】
上述した実施形態では、本発明の画像形成装置をインクジェット方式のプリンタ２０ーに適用したが、これに限られず、レーザー方式のプリンターに適用してもよい。また、プリンター機能だけでなくファックス機能やコピー機能などを有する複合機に適用してもよい。また、本発明の画像処理装置である画像処理プロセッサー３２としては、プリンター２０に搭載されるものに限られず、画像処理装置単独の形態としてもよい。
【符号の説明】
【００４４】
２０  プリンター、２２  プリンター機構、２４  ＬＣＤ、２６  操作ボタン群、３０  処理制御部、３１  メインプロセッサー、３２  画像処理プロセッサー、３３  ＬＣＤコントローラー、３４  メモリーコントローラー、３４ａ  メインメモリー、３５  プリンターコントローラー、３６  カードコントローラー、３７  ＲＯＭ、３９  バス、４０  パイプラインプロセッサー、４２  コア、４４，４６  ブリッジ、５０  プロセッサーコア、５１  メモリー、５２  入出力ポート、５３  データローダー、５４  前段ＦＩＦＯ、５５  積和演算器、５６  レジスター、５７  比較器、５８  後段ＦＩＦＯ、ＭＣ  メモリーカード、Ｓ  記録紙。
【図１】
0005741057.tif 000002
【図３】
0005741057.tif 000003
【図４】
0005741057.tif 000004
【図２】
0005741057.tif 000005
【図５】
0005741057.tif 000006
【図６】
0005741057.tif 000007