説明

画像処理装置および画像形成装置

【課題】誤差拡散法を用いた2値化処理をより迅速に行なう。
【解決手段】処理ラインの後段のラインの画素を含む処理対象画素の周囲の未処理画素を拡散範囲とする誤差の拡散を伴って、処理ラインの先頭の画素から最後尾の画素に向かって処理対象画素を順にシフトしながら2値化処理するコアを複数備え、複数のコアのうち後段のラインを処理するコアは、前段のラインを処理するコアの処理対象画素に対して少なくとも拡散範囲分だけ処理対象画素を遅らせながら順に2値化処理する。これにより、未処理画素に適切に誤差を反映させながら各ラインを並行処理することができ、誤差拡散法を用いた2値化処理をより迅速に行なうことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多階調の画像データの各画素に対し先頭のラインから最後段のラインに向かって順に誤差拡散法による2値化処理を行なう画像処理装置および画像処理装置を備える画像形成装置に関する。
【背景技術】
【0002】
従来より、多階調の画像データの各画素を誤差拡散法により2値化する画像処理装置が提案されている(例えば、特許文献1参照)。この装置では、一つの誤差拡散処理部により、各画素を順次2値化するものとしている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−164365号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、誤差拡散法は、処理対象画素の2値化に伴って生じる誤差を処理対象画素の周囲の未処理画素に順次拡散するものであるから、各画素の値を閾値と単純に比較するディザ法などに比して処理負担が増加するものとなる。また、近年においては、画像の高解像度化に伴って画像データの画素数が増加しているため、上述した装置のように、一つの誤差拡散処理部により2値化するものにおいては、多大な処理時間を要することがある。
【0005】
本発明の画像処理装置および画像形成装置は、誤差拡散法を用いた2値化処理をより迅速に行なうことを主目的とする。
【0006】
本発明の画像処理装置および画像形成装置は、上述の主目的を達成するために以下の手段を採った。
【課題を解決するための手段】
【0007】
本発明の画像処理装置は、
多階調の画像データの各画素に対し先頭のラインから最後段のラインに向かって順に誤差拡散法による2値化処理を行なう画像処理装置であって、
処理ラインの後段のラインの画素を含む処理対象画素の周囲の未処理画素を拡散範囲とする誤差の拡散を伴って、処理ラインの先頭の画素から最後尾の画素に向かって処理対象画素を順にシフトしながら2値化処理する処理部を複数備え、
該複数の処理部のうち後段のラインを処理する処理部は、前段のラインを処理する処理部の処理対象画素に対して少なくとも前記拡散範囲分だけ処理対象画素を遅らせながら順に2値化処理する
ことを要旨とする。
【0008】
この本発明の画像処理装置では、処理ラインの後段のラインの画素を含む処理対象画素の周囲の未処理画素を拡散範囲とする誤差の拡散を伴って、処理ラインの先頭の画素から最後尾の画素に向かって処理対象画素を順にシフトしながら2値化処理する処理部を複数備え、複数の処理部のうち後段のラインを処理する処理部は、前段のラインを処理する処理部の処理対象画素に対して少なくとも拡散範囲分だけ処理対象画素を遅らせながら順に2値化処理する。これにより、未処理画素に適切に誤差を反映させながら各ラインを並行処理することができ、誤差拡散法を用いた2値化処理をより迅速に行なうことができる。
【0009】
また、本発明の画像処理装置において、前記複数の処理部は、それぞれ先入れ先出し方式のバッファーを有し、後段のラインを処理する処理部と前記バッファーを介してパイプライン状に接続され、処理対象画素のシフトに伴って前記拡散範囲から外れる画素の誤差を前記バッファーに出力するものとすることもできる。こうすれば、後段のラインを処理する処理部に引き継ぐ誤差を外部のメモリーなどに出力する必要がないから、後段のラインを処理する処理部が前段のラインを処理する処理部から引き継がれる誤差にアクセスする時間を大幅に短縮することができる。これにより、2値化処理をさらに迅速に行なうことができる。
【0010】
この態様の本発明の画像処理装置において、前記複数の処理部は、それぞれ前記バッファーとして後段のラインを処理する処理部との間に後段側のバッファーを有し、該後段側のバッファーに空きが生じていることを条件として処理対象画素をシフトするものとすることもできる。こうすれば、後段のラインを処理する処理部に引き継ぐ誤差を出力できなくなるのを防止することができる。また、この態様の本発明の画像処理装置において、前記複数の処理部は、それぞれ前記バッファーとして前段のラインを処理する処理部との間に前段側のバッファーを有し、該前段側のバッファーに誤差が格納されていることを条件として処理対象画素をシフトするものとすることもできる。こうすれば、後段のラインを処理する処理部が、前段のラインを処理する処理部を追い越して処理するのを防止することができる。
【0011】
また、本発明の画像処理装置において、前記複数の処理部は、それぞれ前段のラインを処理する処理部の処理対象画素が処理ラインの先頭から少なくとも前記拡散範囲分を超えてシフトしたことを条件として、処理ラインの2値化処理を開始するものとすることもできる。こうすれば、後段のラインを処理する処理部が前段のラインを処理する処理部よりも先に処理を開始するのを防止することができる。
【0012】
そして、前記画像データとして複数の色成分で構成されるカラーの画像データを用いる本発明の画像処理装置であって、前記複数の処理部から構成される処理部群を、前記複数の色成分毎にそれぞれ備えるものとすることもできる。こうすれば、各色成分毎に、それぞれ並行して2値化処理を行なうことができるから、画像全体をさらに迅速に処理することができる。
【0013】
本発明の画像形成装置は、
上述した各態様のいずれかの本発明の画像処理装置を備え、該画像処理装置により2値化処理されたデータを用いて媒体に画像を形成する
ことを要旨とする。
【0014】
この本発明の画像形成装置では、上述した各態様のいずれかの本発明の画像処理装置を備えるから、本発明の画像処理装置が奏する効果と同様の効果、例えば、未処理画素に適切に誤差を反映させながら各ラインを並行処理することができ、誤差拡散法を用いた2値化処理をより迅速に行なうことができる効果などを奏することができる。
【図面の簡単な説明】
【0015】
【図1】プリンター20の構成の概略を示す構成図。
【図2】誤差拡散法による2値化処理の内容を説明する説明図。
【図3】画像処理プロセッサー32の誤差拡散用の構成の概略を示す構成図。
【図4】各コア42による2値化処理ルーチンの一例を示す説明図。
【図5】ラインL1とラインL2とを2値化処理する様子を示す説明図。
【図6】画像全体に2値化処理する様子を示す説明図。
【発明を実施するための形態】
【0016】
次に、本発明の実施の形態を図面を用いて説明する。図1は、本発明の一実施形態であるプリンター20の構成の概略を示す構成図である。本実施形態のプリンター20は、図1に示すように、記録紙Sへシアン(C),マゼンタ(M),イエロー(Y),ブラック(K)のCMYKの各色のインクを吐出することにより印刷を実行する周知のインクジェット方式のプリンター機構22と、液晶ディスプレイとしてのLCD24と、各種モードの設定や印刷操作に必要な設定などをユーザーが入力するための複数のボタンからなる操作ボタン群26と、装置各部の制御や装置各部の機能を実現するための各種処理などを行なうための処理制御部30とを備える。
【0017】
処理制御部30は、装置全体を制御するメインプロセッサー31と、印刷対象の画像や表示対象の画像についての各種処理を行なう画像処理プロセッサー32と、LCD24への画像の表示を制御するLCDコントローラー33と、メインプロセッサー31や画像処理プロセッサー32,各コントローラーからの指令に応じてSDRAMなどのメインメモリー34aからデータを読み込んだりメインメモリー34aにデータを書き込んだりするメモリーコントローラー34と、プリンター機構22を制御するプリンターコントローラー35と、写真画像などの画像データが保存されたメモリーカードMCとデータのやり取りを行なうカードコントローラー36と、各種データや各種テーブルなどを記憶したROM37などを備えており、これらは、バス39を介して互いに各種信号やデータのやり取りをすることができるよう接続されている。
【0018】
メインプロセッサー31は、操作ボタン群26からの操作信号を入力したり、プリンターコントローラー35を介してプリンター機構22からの各種動作信号などを入力したり、カードコントローラー36を介してメモリーカードMCの画像データを入力したり、入力した画像データをメモリーコントローラー34を介してメインメモリー34aに書き込んだりする。また、メインプロセッサー31は、プリンター機構22による画像の印刷を実行するようプリンターコントローラー35に印刷指令を出力したり、LCD12に各種情報や画像を表示するようLCDコントローラー33に表示指令を出力したり、各種画像の処理を行なうよう画像処理プロセッサー32に画像処理指令を出力したりする。なお、メモリーカードMCから入力される画像データは、本実施形態では、縦横のマトリックス状に画素が配置され、画素の各値が濃淡に応じて8ビット(256階調)で表されたRGBデータとする。
【0019】
画像処理プロセッサー32は、メインプロセッサー31からの画像処理指令に応じて、メモリーカードMCから入力された画像データを印刷用の画像データに変換処理したり、表示用の画像データに変換処理したりする。例えば、印刷用の画像データへの画像処理指令であれば、RGB各8ビットのデータをCMYK各8ビットのデータに色変換し、色変換したCMYK各8ビットのデータを誤差拡散法により各2ビットの印刷用データ(2値化データ)に処理する。また、表示用の画像データへの画像処理指令であれば、RGB各8ビットのデータをLCD12で表示可能な所定のビット数に減らすことなどにより表示用データに処理する。
【0020】
ここで、画像処理プロセッサー32の処理のうち、誤差拡散法による2値化処理について説明する。図2は、誤差拡散法による2値化処理の内容を説明する説明図であり、図3は、画像処理プロセッサー32の誤差拡散用の構成の概略を示す構成図である。本実施形態では、図2(a)に示すように、処理対象画素と所定の閾値との大小を比較して2値化する際に生じる誤差を、処理対象画素を中心とする周囲の縦5画素×横5画素のうち未処理の画素(計12画素)を拡散範囲として拡散する。即ち処理ラインの後段ラインの未処理画素を含めて誤差が拡散されることになる。なお、誤差拡散範囲の各画素内の数値(7/48や5/48など)は、各画素への誤差の拡散割合を示す。こうした誤差の拡散を伴って、画像データの最上段のラインを先頭のラインとして、最後段のラインである最下段のラインに向かって、各ライン毎に2値化処理を行なう。また、各ラインにおいては、図中左端の画素を先頭として、図中右端の最後尾の画素に向かって(図中処理方向)、処理対象画素を順次シフトしながら処理を行なう。このシフトに伴って、後尾の2画素が誤差拡散範囲から外れるから、その後尾の2画素分の誤差を後段ラインの処理に順次引き継ぐ必要がある。言い換えると、処理対象画素をシフトする度に、誤差拡散範囲の先頭の2画素分の誤差を新たに入力して(前段ラインの処理から引き継いで)、処理する必要がある。また、処理ラインの最後尾の画素を処理したときには、その誤差拡散範囲である後半6画素分の誤差(図2(b))を後段ラインの処理に引き継ぐ必要があり、処理ラインの先頭の画素を処理するときには、処理対象画素を含む誤差拡散範囲の前半6画素分の誤差(図2(c))を前段ラインの処理から引き継ぐ必要がある。なお、2値化処理は、画像データの各画素についてCMYKの各色毎に行なわれ、所定の閾値は、ROM34に記憶されてメインメモリー34aに展開されるものを用いる。
【0021】
また、画像処理プロセッサー32は、誤差拡散用の構成として、図3(a)に示すように、複数のパイプラインプロセッサー40(#0〜#3)を備える。これらのパイプラインプロセッサー40は、それぞれ独立に画素値を入力して2値化処理が可能となっており、本実施形態では、各パイプラインプロセッサー40がそれぞれCMYKの各色の処理を担当するものとした。また、これらのパイプラインプロセッサー40は、図3(b)に示すように、パイプライン状に接続された複数のコア42(#00〜#31)と、先頭のコア42(#00)の前に配置されたブリッジ44と、最後尾のコア42(#31)の後に配置されたブリッジ46とから構成されている。
【0022】
各コア42(#n)は、図3(c)に示すように、コア42全体を制御するプロセッサーコア50と、SRAMなどで構成されたメモリー51と、バス39に接続される入出力ポート52と、入出力ポート52を介してデータを読み込んでメモリー51に保存するデータローダー53と、先入れ先出し方式でデータを格納する前段FIFO54と、画素毎の誤差を演算する積和演算器55と、演算結果を一時的に格納するレジスター56と、処理対象画像の画素値に誤差を加えた値と所定の閾値とを比較する比較器57と、先入れ先出し方式でデータを格納する後段FIFO58とから構成されている。データローダー53は、メインメモリー34aに展開された所定の閾値や画像データの各画素値などのデータを読み込んでメモリー51に保存する。また、積和演算器55は、処理対象画素の2値化により生じた誤差と各画素の拡散割合とを乗算し、その結果をレジスター56に格納された前回の演算結果に順次加算することにより、各画素の誤差を演算する。なお、積和演算器55は、図示は省略したが、複数(例えば、10個や12個)配置されるものとした。そして、比較器57は、レジスター56に格納された誤差のうち処理対象画像の誤差をメモリー51に保存された処理対象画像の画素値に加えた値を、メモリー51に保存された所定の閾値と大小を比較して2値化し、2値化により生じた誤差を積和演算器55に出力する。また、前段FIFO54は、前段に配置された前段のコア42(#n−1)の後段FIFO58に接続され、後段FIFO58は、後段に配置された後段のコア42(#n+1)の前段FIFO54に接続されている。ここで、2値化処理においては、処理対象画素のシフトに伴って誤差拡散範囲から外れる後尾の2画素分の誤差が後段FIFO58に出力されると共に新たに誤差拡散範囲に含まれる先頭の2画素分の誤差が前段FIFO54から入力され、誤差拡散範囲のその他の画素の誤差についてはレジスター56との間で入出力される。なお、本実施形態では、前段FIFO54は、6画素分の誤差を格納できるよう6段のFIFOとして構成され、後段FIFO58は、2画素分の誤差を格納できるよう2段のFIFOとして構成されるものとした。
【0023】
また、ブリッジ44,46の構成の詳細については省略するが、ブリッジ44は、先頭のコア42(#00)の前に配置されており、誤差のダミーデータとして値0の誤差を先頭のコア42(#00)に出力したり、メインメモリー34aに保存された誤差を先頭のコア42(#00)に出力したりする。また、ブリッジ46は、最後尾のコア42(#31)の後に配置されており、最後尾のコア42(#31)から出力された誤差をメインメモリー34aに出力する。
【0024】
次に、こうして構成された本実施形態のマルチファンクションプリンター20の動作、特に、画像処理プロセッサー32のパイプラインプロセッサー40による2値化処理について説明する。図4は、パイプラインプロセッサー40の各コア42により実行される2値化処理ルーチンの一例を示すフローチャートである。なお、本実施形態では、各コア42で同時に2値化処理ルーチンの実行が開始されるものとし、以下では、各コア42の共通の処理として説明し、一部処理の異なるコア42がある場合には適宜説明を加える。また、コア42(#00)が先頭のラインを処理し、コア42(#01)が2番目のラインを処理し、以下コア42の接続順に後段側のラインを順に処理する。なお、33番目のラインは、先頭のラインの処理が完了したコア42(#00)が処理し、以下同様の処理順で各ラインの処理が行なわれる。
【0025】
この2値化処理ルーチンが実行されると、プロセッサーコア50は、まず、処理対象値Nに値1を設定して(ステップS100)、前段FIFO54が一杯となるのを待つ(ステップS110)。この処理は、コア42(#00)においてはブリッジ44から入力される値0の誤差(ダミーデータ)が前段FIFO54に6画素分格納されるのを待つ処理となり、その他のコア42においては前段のコア42から入力される誤差が前段FIFO54に6画素分格納されるのを待つ処理となる。なお、この6画素分の誤差は、図2(c)に示した前半6画素分の誤差となる。そして、前段FIFO54が一杯になると、N番目の画素(ここではラインの先頭画素)を処理対象画素として誤差拡散法による2値化処理を実行する(ステップS120)。
【0026】
こうして2値化処理を実行すると、処理対象値Nを値1だけインクリメントして(ステップS130)、前段FIFO54に2画素分の誤差が格納されているか否かを判定する(ステップS140)。この判定は、コア42(#00)においてはブリッジ44からの誤差が格納されているか否かを判定するものとなり、その他のコア42においては前段のコア42からの誤差が格納されているか否かを判定するものとなる。そして、ステップS140で前段FIFO54に誤差が格納されているときには、処理対象値Nが値3を超えるか否かを判定する(ステップS150)。この判定を行なう理由については後述する。処理対象値Nが値3を超えないときには、ステップS120に戻り、処理対象値Nの画素の2値化処理の実行などを繰り返す。なお、ステップS140で前段FIFO54に誤差が格納されていないときには、次の処理に進むことはないため、ステップS120に戻って2値化処理を行なうことはない。このため、各コア42が並行して2値化処理を実行していても、後段のコア42は前段のコア42から誤差が入力されない限り新たな画素を対象として2値化処理することはなく、後段のコア42が前段のコア42を追い越して2値化処理するのを防止することができる。
【0027】
一方、ステップS150で処理対象値Nが値3を超えるときには、処理対象値Nが最大値Nmaxを超えるか否かを判定する(ステップS160)。なお、最大値Nmaxは、1ライン分の画素数を示すものであるため、まずは、処理対象値Nが最大値Nmaxを超えない場合を説明する。処理対象値Nが最大値Nmaxを超えないときには、後段FIFO58へ誤差拡散範囲の後尾の2画素分の誤差(図2(a)参照)を格納する(ステップS170)。
【0028】
そして、後段FIFO58に空きが生じるのを待って(ステップS180)、ステップS120に戻り、処理対象値Nの画素を処理対象画素として2値化処理を実行する。ここで、上述したように、後段FIFO58は、後段のコア42の前段FIFO54に接続されているため、後段FIFO58に格納された誤差は、後段のコア42の前段FIFO54に空きがあれば後段FIFO58から出力されて、後段FIFO58には空きが生じることになる。但し、各コア42の処理能力の個体差などにより、前段のコア42の処理が後段のコア42の処理よりも速く後段のコア42の前段FIFO52に誤差が滞留しているような場合には、後段FIFO58から誤差が出力されず空きが生じないことになる。このように、ステップS180の判定は、後段のコア42の処理状況を監視する意味をもち、後段のコア42に確実に誤差を引き継ぐことができる状況で次の処理対象画素の2値化処理を行なうことを目的としている。
【0029】
このような処理を繰り返し、ラインの右端の画素(処理対象値Nが最大値Nmaxの画素)を処理対象画素として2値化処理を実行して処理対象値Nを値1だけインクリメントすると、ステップS160で処理対象値Nは最大値Nmaxを超えると判定する。その場合、後段FIFO58へ誤差拡散範囲の後半の6画素分の誤差(図2(b)参照)を出力して(ステップS190)、本ルーチンを終了する。なお、後段FIFO58に出力された6画素分の誤差は、後段のコア42の処理状況(前段FIFO54の空き状況)に応じて順次引き継がれることになる。
【0030】
ここで、上述した2値化処理ルーチンによる処理の一例として、画像データの先頭のラインL1を担当する前段のコア42(#00)と、2番目のラインL2を担当する後段のコア42(#01)とによる2値化処理について説明する。図5は、コア42(#00)とコア42(#01)とによってラインL1とラインL2とを2値化処理する様子を示す説明図である。まず、コア42(#00)は、ブリッジ44からダミーデータが順次入力されて前段FIFO54が一杯になったと判定したときに、ラインL1の先頭画素(N1)の処理を開始する(図5(a)参照)。そして、処理対象画素をシフトさせてN2,N3の画素を順次処理していく(図5(b)〜(c))。また、N3の画素を処理して処理対象値Nが値3を超えた以降は、処理対象画素のシフトに伴って誤差拡散範囲から外れる後尾の2画素分の誤差を後段FIFO58に出力しながら、N4,N5,N6の画素を順次処理していく(図5(d)〜(f))。上述した2値化処理ルーチンのステップS150の判定で、処理対象値Nが値3を超えるか否かを判定するのは、このためである。一方、コア42(#01)は、コア42(#00)から誤差が出力されない限り前段FIFO54が一杯になったと判定しないため、当初は待ち状態となり処理は行なわない(図5(a)〜(e))。そして、コア42(#00)から計6画素分の誤差が出力されて前段FIFO54に格納されると(図5(f))、先頭画素(N1)の処理を開始する(図5(g))。このように、処理開始時に後段のコア42(#01)の誤差拡散範囲と前段のコア42(#00)の誤差拡散範囲とが重複することがなく、誤差拡散範囲の重複により処理が煩雑となるのを防止することができる。前段FIFO54が一杯となってから先頭画素の処理を開始するのはこうした理由による。
【0031】
また、図5(g)以降においては、コア42(#00)は後段FIFO58に空きがあることを条件として処理対象画素をシフトしてN7の画素を処理し(図5(h))、コア42(#01)は前段FIFO54に誤差が格納されたことを条件として処理対象画素をシフトしてN2の画素を処理する(図5(i))。これにより、前段のコア42(#00)から後段のコア42(#01)に引き継ぐ誤差を出力できなくなったり、後段のコア42(#01)が前段のコア42(#00)を追い越して処理したりするのを防止することができる。このように、各コア42が前後のコア42の処理状況に拘束されながら、各ラインを順次並行処理するのである。ここで、図6は、画像全体に対する2値化処理の様子を示す説明図である。図示するように、前段のラインの処理対象画素から誤差拡散範囲に相当する5行分の画素ずつ遅れた画素を処理対象画素として、各ラインの2値化処理が並行して行なわれている。また、本実施形態では、これらの複数のコア42を前段FIFO54と後段FIFO58とを介してパイプライン状に接続して後段のコア42に誤差を引き継ぐものとしたから、後段のコア42に引き継ぐ誤差をメインメモリー34aなどの外部のメモリーに出力し後段のコア42が外部のメモリーから誤差を読み込んで処理するものに比して、処理時間を短縮することができる。これらのことから、複数のコア42を用いて未処理画素に適切に誤差を反映させながら各ラインをスムーズに並行処理することができ、誤差拡散法を用いた2値化処理をより迅速に行なうことができる。さらに、本実施形態では、このような複数のコア42から構成されるパイプラインプロセッサー40を各色毎に備えるから、CMYKの各色の2値化処理を同時に並行処理することができ、画像全体の2値化処理をより迅速に行なうことができる。なお、最後尾のコア42(#31)から出力される誤差はブリッジ46を介して外部のメモリーであるメインメモリー34aに出力され、最後尾のコア42(#31)の処理ラインの後段のラインを処理するコア42(#00)のために、ブリッジ44はメインメモリー34aから誤差を読み込む必要がある。ただし、そのような外部のメモリーへの出力が必要となる誤差は、複数のコア42のうち最後尾のコア42(#31)からの誤差のみとすることができるから、全体の処理時間が大幅に遅延するのを抑制することができる。
【0032】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態の図4の2値化処理ルーチンを実行する画像処理プロセッサー32のパイプラインプロセッサー40を構成するコア42が本発明の「処理部」に相当する。また、コア42の前段FIFO54が「前段側のバッファー」に相当し、コア42の後段FIFO58が「後段側のバッファー」に相当する。
【0033】
以上説明した本実施形態のプリンター20によれば、処理ラインの後段のラインの画素を含む処理対象画素の周囲の未処理画素を拡散範囲とする誤差の拡散を伴って、処理ラインの先頭の画素から最後尾の画素に向かって処理対象画素を順にシフトしながら2値化処理するコア42を複数備え、複数のコア42のうち後段のラインを処理するコア42は、前段のラインを処理するコア42の処理対象画素に対して少なくとも拡散範囲分だけ処理対象画素を遅らせながら順に2値化処理する。これにより、未処理画素に適切に誤差を反映させながら各ラインを並行処理することができ、誤差拡散法を用いた2値化処理をより迅速に行なうことができる。
【0034】
また、複数のコア42を前段FIFO54と後段FIFO58とを介してパイプライン状に接続して後段のコア42に誤差を引き継ぐものとしたから、後段のコア42に引き継ぐ誤差をメインメモリー34aなどの外部のメモリーに出力するものに比して、処理時間を短縮することができる。さらに、後段FIFO58に空きが生じるのを条件として処理するから、後段のコア42に引き継ぐ誤差を出力できなくなるのを防止することができる。そして、前段FIFO54に誤差が格納されていることを条件として処理するから後段のコア42が前段のコア42を追い越すのを防止することができる。また、前段FIFO54に6画素分の誤差が格納されてから先頭の画素の処理を開始するから、処理開始時に後段のコア42の誤差拡散範囲と前段のコア42の誤差拡散範囲とが重複するのを防止することができる。さらに、複数のコア42から構成されるパイプラインプロセッサー40を各色毎に備えるから、各色の2値化処理を同時に並行処理をすることができる。
【0035】
なお、本発明は上述した実施態様に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【0036】
上述した実施形態では、前段FIFO54を6段としたが、これに限られず、6段より少ない段数としてもよいし、6段より多い段数としてもよい。また、後段FIFO58を2段としたが、これに限られず、1段としてもよいし、2段より多い段数としてもよい。これらのFIFOの段数は、誤差の拡散範囲や各コア42の処理速度に応じて定めるものとしてもよい。なお、後段のコア42への誤差の出力待ちにより処理待ち状態にあるときに前段のコア42からの誤差の入力に対応することを考えると、前段FIFO54と後段FIFO58とをそれぞれ少なくとも2段ずつは有するものが好ましい。
【0037】
上述した実施形態では、コア42が前段FIFO54と後段FIFO58とを備えるものとしたが、これに限られず、前段FIFO54と後段FIFO58とのいずれか一方を備えないものとしてもよいし、両者を備えないものとしてもよい。その場合、前段のコア42から出力された誤差は、メモリー51やレジスター56に格納しておくものなどとしてもよい。
【0038】
上述した実施形態では、前段FIFO54が一杯となることを条件としてコア42が先頭画素の2値化処理を行なうものとしたが、これに限られず、他の条件により先頭画素の2値化処理を行なうものとしてもよい。例えば、コア42(#00)が処理を開始してからの時間を計時しておき、各コア42毎に所定時間ずつずらした時間が経過してから処理を開始するものなどとしてもよい。また、そのような条件が成立したときに、各コア42がそれぞれ2値化処理ルーチンを開始するものとしてもよい。
【0039】
上述した実施形態では、コア42(#00)の前にブリッジ44を配置してコア42(#00)にダミーデータを出力したり誤差を出力したりするものとしたが、これに限られず、コア42(#00)が自らダミーデータを入力したり誤差を入力したりするものとしてもよい。その場合、コア42(#00)のデータローダー53にそのような機能をもたせるものとしてもよい。また、コア42(#31)の後にブリッジ46を配置してコア42(#31)からの誤差をメインメモリー34aに出力するものとしたが、これに限られず、コア42(#31)が自ら誤差を出力するものとしてもよい。その場合、コア42(#31)のデータローダー53にそのような機能をもたせるものとしてもよい。あるいは、最後段のコア42(#31)と最前段のコア42(#00)とが接続されていないものとしたが、最後段のコア42(#31)と最前段のコア42(#00)とをFIFOを介して接続するものとしてもよく、その場合、最後段のコア42(#31)の処理により生じる誤差を最前段のコア42(#00)に直接的に入力するものなどとしてもよい。
【0040】
上述した実施形態では、処理対象画素を中心とした縦5画素×横5画素のうちの未処理画素(計12画素)を誤差拡散範囲としたが、これに限られず、処理対象のラインの後段のラインの画素を誤差拡散範囲に含むものであればどのような範囲としてもよく、処理対象画素を中心とした縦3画素×横3画素のうちの未処理画素(計4画素)を誤差拡散範囲とするものなどとしてもよい。
【0041】
上述した実施形態では、左の画素から右の画素に向かって順に処理するものとしたが、これに限られず、右の画素から左の画素に向かって順に処理するものとしてもよい。また、上のラインから下のラインに向かって順に処理するものとしたが、これに限られず、左のラインから右のラインに向かって順に処理するものとしてもよく、その場合には、上の画素から下の画素に向かって順に処理するものとしてもよいし、下の画素から上の画素に向かって順に処理するものとしてもよい。
【0042】
上述した実施形態では、インク色はシアン(C),マゼンタ(M),イエロー(Y),ブラック(K)の4色としたが、これに限られず、ライトシアン(LC)やライトマゼンタ(LM)などを含んで5色や6色としたり、それ以上の複数色としたりしてもよい。その場合、色数に応じた数のパイプラインプロセッサー40を備えるものとすればよい。また、カラーの画像データを2値化処理するものに限られず、モノクロの画像データを2値化処理するものとしてもよい。
【0043】
上述した実施形態では、本発明の画像形成装置をインクジェット方式のプリンタ20ーに適用したが、これに限られず、レーザー方式のプリンターに適用してもよい。また、プリンター機能だけでなくファックス機能やコピー機能などを有する複合機に適用してもよい。また、本発明の画像処理装置である画像処理プロセッサー32としては、プリンター20に搭載されるものに限られず、画像処理装置単独の形態としてもよい。
【符号の説明】
【0044】
20 プリンター、22 プリンター機構、24 LCD、26 操作ボタン群、30 処理制御部、31 メインプロセッサー、32 画像処理プロセッサー、33 LCDコントローラー、34 メモリーコントローラー、34a メインメモリー、35 プリンターコントローラー、36 カードコントローラー、37 ROM、39 バス、40 パイプラインプロセッサー、42 コア、44,46 ブリッジ、50 プロセッサーコア、51 メモリー、52 入出力ポート、53 データローダー、54 前段FIFO、55 積和演算器、56 レジスター、57 比較器、58 後段FIFO、MC メモリーカード、S 記録紙。

【特許請求の範囲】
【請求項1】
多階調の画像データの各画素に対し先頭のラインから最後段のラインに向かって順に誤差拡散法による2値化処理を行なう画像処理装置であって、
処理ラインの後段のラインの画素を含む処理対象画素の周囲の未処理画素を拡散範囲とする誤差の拡散を伴って、処理ラインの先頭の画素から最後尾の画素に向かって処理対象画素を順にシフトしながら2値化処理する処理部を複数備え、
該複数の処理部のうち後段のラインを処理する処理部は、前段のラインを処理する処理部の処理対象画素に対して少なくとも前記拡散範囲分だけ処理対象画素を遅らせながら順に2値化処理する
画像処理装置。
【請求項2】
前記複数の処理部は、それぞれ先入れ先出し方式のバッファーを有し、後段のラインを処理する処理部と前記バッファーを介してパイプライン状に接続され、処理対象画素のシフトに伴って前記拡散範囲から外れる画素の誤差を前記バッファーに出力する請求項1記載の画像処理装置。
【請求項3】
前記複数の処理部は、それぞれ前記バッファーとして後段のラインを処理する処理部との間に後段側のバッファーを有し、該後段側のバッファーに空きが生じていることを条件として処理対象画素をシフトする請求項2記載の画像処理装置。
【請求項4】
前記複数の処理部は、それぞれ前記バッファーとして前段のラインを処理する処理部との間に前段側のバッファーを有し、該前段側のバッファーに誤差が格納されていることを条件として処理対象画素をシフトする請求項2または3記載の画像処理装置。
【請求項5】
前記複数の処理部は、それぞれ前段のラインを処理する処理部の処理対象画素が処理ラインの先頭から少なくとも前記拡散範囲分を超えてシフトしたことを条件として、処理ラインの2値化処理を開始する請求項1ないし4いずれか1項に記載の画像処理装置。
【請求項6】
前記画像データとして複数の色成分で構成されるカラーの画像データを用いる請求項1ないし5いずれか1項に記載の画像処理装置であって、
前記複数の処理部から構成される処理部群を、前記複数の色成分毎にそれぞれ備える
画像処理装置。
【請求項7】
請求項1ないし6いずれか1項に記載の画像処理装置を備え、該画像処理装置により2値化処理されたデータを用いて媒体に画像を形成する画像形成装置。

【図1】
image rotate

【図3】
image rotate

【図4】
image rotate

【図2】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−176550(P2012−176550A)
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【出願番号】特願2011−40696(P2011−40696)
【出願日】平成23年2月25日(2011.2.25)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】