(57)【要約】【課題】ハーフトーン処理を複数の演算器を用いて効率的に行なうことのできる印刷装置を提供する。【解決手段】径の異なる複数種類のドットで画像を印刷する印刷装置が、第一径のドットについてのハーフトーン処理を行なう、１以上の演算器を備える第一演算器グループと、第二径のドットについてのハーフトーン処理を行なう、１以上の演算器を備える第二演算器グループとを有し、前記第一演算器グループと前記第二演算器グループとが、前記画像の同範囲について並行に処理を行い、前記第一演算器グループが処理する位置と前記第二演算器グループが処理する位置が、前記第一径のドットについての処理と前記第二径のドットについての処理の依存関係に応じてずらされている。【選択図】  図２
2006270427.tif 000002
【特許請求の範囲】
【請求項１】
径の異なる複数種類のドットで画像を印刷する印刷装置であって、
第一径のドットについてのハーフトーン処理を行なう、１以上の演算器を備える第一演算器グループと、
第二径のドットについてのハーフトーン処理を行なう、１以上の演算器を備える第二演算器グループとを有し、
前記第一演算器グループと前記第二演算器グループとが、前記画像の同範囲について並行に処理を行い、
前記第一演算器グループが処理する位置と前記第二演算器グループが処理する位置が、前記第一径のドットについての処理と前記第二径のドットについての処理の依存関係に応じてずらされている
ことを特徴とする印刷装置。
【請求項２】
請求項１において、
前記第二径のドットについての処理内容が、前記第一径のドットについての処理結果に依存する場合は、前記第二演算器グループが、前記第一演算器グループが既に処理した位置について処理を行なうように、前記処理する位置のずらしがなされる
ことを特徴とする印刷装置。
【請求項３】
請求項１あるいは請求項２において、
前記第一演算器グループと前記第二演算器グループとによって並行に処理が行なわれる前記画像の範囲は、前記画像の１ラインの範囲である
ことを特徴とする印刷装置。
【請求項４】
径の異なる複数種類のドットでカラー画像を印刷する印刷装置であって、
互いに異なる色についてのハーフトーン処理を行なう、それぞれ１以上の演算器を備える複数の演算器グループを有し、
前記複数の演算器グループが、前記画像の同範囲について並行に処理を行い、
前記各演算器グループが、第一径のドットについてのハーフトーン処理と第二径のドットについてのハーフトーン処理を、前記画像の同範囲について並行に行なう
ことを特徴とする印刷装置。
【請求項５】
請求項４において、
前記各演算器グループが、前記第一径のドットのハーフトーン処理に用いるデータと前記第二径のドットのハーフトーン処理に用いるデータを同時に格納することのできる容量の複数のレジスタを備える
ことを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハーフトーン処理を実行する印刷装置に関し、特に、複数の演算器を用いて効率的にハーフトーン処理を行なうことのできる印刷装置に関する。
【背景技術】
【０００２】
従来より、ヘッドに備えられた複数のノズルから吐出される数色のインクによりドットを形成して画像を記録するインクジェットプリンタが広く用いられている。かかるプリンタ等では、通常、各画像ごとに、１種類のあるいは複数種類のドットについてのオン・オフの階調しかとり得ない。従って、原画像データの有する階調をドットの分散性により表現するための画像処理、いわゆるハーフトーン処理を施した上で画像を印刷する。
【０００３】
かかるハーフトーン処理の方法としては、ディザ法と誤差拡散法が知られている。ディザ法は、ディザマトリックスによって画素毎に与えられる閾値と画像データの階調値との大小関係に基いてドットのオン・オフを決定する方法である。一方、誤差拡散法は、ある画素についてのドットのオン・オフの決定結果によって生じた濃度誤差を、周辺の画素に拡散してこれらの画素の階調データを補正し、補正された階調値と所定の閾値との大小関係によってドットのオン・オフを決定する手法である。前者は、高速に処理が可能であるという利点を有し、後者は画質に優れているという利点がある。
【０００４】
下記特許文献１には、３種類以上のドットを形成可能な印刷装置におけるハーフトーン処理についての提案がなされている。
【特許文献１】特開２０００−１０８４２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したハーフトーン処理、特に誤差拡散法による処理は、インクジェットプリンタ等の印刷装置において行われる処理の中でも処理負荷が高く、特に、複数種類のドットについてそれぞれ誤差拡散法で処理する場合には処理時間を要した。従って、この誤差拡散法による処理を如何に効率的に行なうかということが一つの課題であった。
【０００６】
また、印刷装置で行なわれるこのハーフトーン処理や色変換処理などについては、処理の変更に対する対応性などの理由から、ソフトウェアによる処理（ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などの演算器を用いた処理）が考えられるが、これらの処理を高速に行なうなど効率的に行なう具体的な方法についてはこれまで示されていなかった。
【０００７】
そこで、本発明の目的は、ハーフトーン処理を複数の演算器を用いて効率的に行なうことのできる印刷装置を提供することである。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明の一つの側面は、径の異なる複数種類のドットで画像を印刷する印刷装置が、第一径のドットについてのハーフトーン処理を行なう、１以上の演算器を備える第一演算器グループと、第二径のドットについてのハーフトーン処理を行なう、１以上の演算器を備える第二演算器グループとを有し、前記第一演算器グループと前記第二演算器グループとが、前記画像の同範囲について並行に処理を行い、前記第一演算器グループが処理する位置と前記第二演算器グループが処理する位置が、前記第一径のドットについての処理と前記第二径のドットについての処理の依存関係に応じてずらされていることである。従って、本発明によれば、複数種類のドットについてのハーフトーン処理を複数の演算器を用いて効率的に行うことができる。また、ハーフトーン処理間で依存関係がある場合にも対応可能である。
【０００９】
更に、上記の発明において、好ましい態様は、前記第二径のドットについての処理内容が、前記第一径のドットについての処理結果に依存する場合は、前記第二演算器グループが、前記第一演算器グループが既に処理した位置について処理を行なうように、前記処理する位置のずらしがなされることを特徴とする。
【００１０】
更にまた、上記の発明において、好ましい態様は、前記第一演算器グループと前記第二演算器グループとによって並行に処理が行なわれる前記画像の範囲は、前記画像の１ラインの範囲であることを特徴とする。
【００１１】
上記の目的を達成するために、本発明の別の側面は、径の異なる複数種類のドットでカラー画像を印刷する印刷装置が、互いに異なる色についてのハーフトーン処理を行なう、それぞれ１以上の演算器を備える複数の演算器グループを有し、前記複数の演算器グループが、前記画像の同範囲について並行に処理を行い、前記各演算器グループが、第一径のドットについてのハーフトーン処理と第二径のドットについてのハーフトーン処理を、前記画像の同範囲について並行に行なうことである。
【００１２】
更に、上記の発明において、好ましい態様は、前記各演算器グループが、前記第一径のドットのハーフトーン処理に用いるデータと前記第二径のドットのハーフトーン処理に用いるデータを同時に格納することのできる容量の複数のレジスタを備えることを特徴とする。
【００１３】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
【００１５】
図１は、本発明を適用した印刷装置の実施の形態例に係る構成図である。図１のプリンタ１が本発明を適用した印刷装置であり、複数の演算器を備えるＤＳＰ１２において、径の異なるドットについての誤差拡散法によるハーフトーン処理を並列に処理し、あるいは、各色ごとの誤差拡散法によるハーフトーン処理を並列に処理して、負荷の高いハーフトーン処理を効率的に行なおうとするものである。
【００１６】
まず、本発明を適用した印刷装置に係る第一の実施形態例について説明する。第一の実施形態例に係るプリンタ１では、ＤＳＰ１２が複数の演算器グループ１２１を有し、径の異なるドットについての誤差拡散法によるハーフトーン処理を、各演算器グループ１２１で並列に処理することを特徴にしている。また、ある径のドットについてのハーフトーン処理が、他の径のドットについての処理結果に依存する方法を採用する場合には、その依存性に基づいて、前記並列処理における各処理のタイミングをずらすことを特徴としている。
【００１７】
本実施の形態例に係るプリンタ１は、一例として、インクジェットプリンタであり、図１に示すように、Ｉ／Ｆ２、ＣＰＵ３、画像処理ユニット４、メモリ１０、ローカルバス（メモリバス）１１、ＤＳＰ１２、及びヘッド１３等で構成されている。ホストコンピュータなど外部から送信される印刷要求とその印刷データは、Ｉ／Ｆ２を介してメモリ１０に格納される。その後、受信された圧縮されている印刷データに対して、画像処理ユニット４、ＤＳＰ１２等により、解凍処理、色変換処理、ハーフトーン処理、パス分解処理、及びデータ並べ替え処理がそれぞれ行なわれ、処理後のデータが適正な順番でヘッド１３に出力される。ヘッド１３では、転送されるデータに基づいて順次インクを吐出し、印刷媒体への印字を実行する。
【００１８】
Ｉ／Ｆ２は、ホストコンピュータなどプリンタ１外部とのインターフェースを司る部分であり、ＣＰＵ３は、上記各種の画像処理を制御する部分である。また、メモリ１０は、画像処理ユニット４の外部に設けられたユニット外メモリであり、外部から受信した状態及び前述した各画像処理の処理後の状態における各画像データをそれぞれ所定領域に格納する。従って、解凍処理後のデータ、色変換処理後のデータ、ハーフトーン処理後のデータなどがそれぞれメモリ１０に格納される。
【００１９】
次に、画像処理ユニット４は、図１に示すように、パス制御部５、解凍部６、パス分解部７、並べ替え処理部８、及びヘッド出力部９等を有し、具体的には、ＡＳＩＣで構成される。パス制御部５は、前記Ｉ／Ｆ２を介してプリンタ１に入力されたデータの転送制御を行う部分であり、解凍部６は、圧縮されている印刷データの前記解凍処理を行なう部分である。
【００２０】
パス分解部７は、ハーフトーン処理後の画像データをヘッド１３の走査（パス）毎に分割する処理を行なう部分である。ヘッド１３は、色毎に、インクを吐出する複数のノズルを副走査方向に備えるノズル列を有し、主走査方向に移動しながら順次インク吐出を行なっていくが、１ラスタ（印刷画像における主走査方向の１ライン）を複数回の走査（パス）にて印刷するので、１ラスタの印刷データを走査（パス）毎に振り分ける必要があり、かかるパス分解処理が行なわれる。
【００２１】
次に、並べ替え処理部８は、パス分解後の画像データを並べ替える処理を行い、ヘッド出力部９は、並べ替え処理部８で並び替えられた画像データを読み込んで、適正な順番でヘッド１３に出力する部分である。
【００２２】
次に、ＤＳＰ１２は、前述した色変換処理及びハーフトーン処理を行うプロセッサ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）であり、メモリ１０内に格納された所定の画像データを読み出して処理を実行し、処理後のデータを再びメモリ１０に書き戻す。本プリンタ１では、当該ＤＳＰ１２におけるハーフトーン処理に特徴を有し、ＤＳＰ１２の構成及び処理の具体的内容については後述する。
【００２３】
また、図１に示すように、画像処理ユニット４の各処理部、ＤＳＰ１２とメモリ１０は、各処理部で必要となるメモリ１０とのデータ通信を高速に行なうため、ローカルバス（メモリバス）１１でつながれている。かかるローカルバス１１は、いわゆるデータバスであり、画像処理ユニット４内の各処理部とＣＰＵ３をつなぐＣＰＵバスは、画像処理ユニット４内において図示を省略している。
【００２４】
最後に、ヘッド１３は、前述したようにインクの色毎にノズル列を有し、主走査方向に移動しながら、ヘッド出力部９から転送されるデータに従って順次インク吐出を行い印刷媒体に印字を実施する部分である。
【００２５】
図２は、前述したＤＳＰ１２の構成を例示した図である。本実施の形態例におけるＤＳＰ１２は、図２に示すように、二つの演算器グループ１２１から構成されている。各演算器グループ、すなわち、第１演算器グループ１２１ａと第２演算器グループ１２１ｂには、それぞれ、例えば４つの演算器１２２（Ａ〜Ｄ）が備えられ、また、複数個の汎用レジスタから成るレジスタ１２３ａ、１２３ｂが備えられる。これらの演算器グループ１２１は、図示していないＲＯＭに記憶されたプログラムに従い、メモリ１０に格納された画像データをローカルバス１１を介して読み込み、所定の処理を行なった後に、再び処理後のデータをメモリ１０に書き込む。
【００２６】
図３は、ＤＳＰ１２が行なう処理を概念的に示した図である。前述のように、本プリンタ１におけるＤＳＰ１２では、色変換処理とハーフトーン処理が実行される。図３に示すように、色変換処理では、各画素毎のＲＧＢ（レッド、グリーン、ブルー）各色の２５６階調データをＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）各色の２５６階調データに変換する。
【００２７】
その後、ＣＭＹＫ各色の２５６階調データを、ドットのオン・オフを示す２階調データに変換するハーフトーン処理を行なう。本プリンタ１では、図３のａで示す当該ハーフトーン処理の部分に特徴を有している。本プリンタ１では、前記ヘッド１３から吐出されるドットの径として３種類（大中小）が用意されており、大中小の各ドットごとに所定の方法でハーフトーン処理を行なう。従って、各画素ごとに３種類のドットについてのハーフトーン処理が行なわれる。これにより、ハーフトーン処理後の各画素が有するドットのオン・オフを表すデータは、正確には２階調ではなく、例えば、大ドット、中ドット、小ドット、ドット無しのいずれかを示す２ビットのデータで表される。
【００２８】
また、本プリンタ１では、一例として、大ドットの処理についてはディザ法を、中ドットと小ドットについては誤差拡散法を用いるものとする。そして、本実施の形態例では、各色ごとに、所定単位のデータ（例えば１ラスタ分のデータ）について、まず大ドットについてのハーフトーン処理を行い、その後に、中ドットと小ドットについての誤差拡散法によるハーフトーン処理を並行して行なう。
【００２９】
図４は、当該並行して行なう中ドットと小ドットについての処理を概念的に示した図である。図４のｂに示すように、本実施の形態例に係るプリンタ１では、ＤＳＰ１２が有する二つの演算器グループ１２１のそれぞれに中ドットに関する処理と小ドットに関する処理を割り当て、両者を並行して処理する。図に示す例では、所定範囲の画素について第１演算器グループ１２１ａで中ドット用の処理を行い、同範囲の画素について第２演算器グループ１２１ｂで小ドット用の処理を行う。
【００３０】
このように、径の異なる複数のドットについて誤差拡散法によるハーフトーン処理を行なう場合に、所定範囲の画素（例えば１ラスタ分の画素）に対するそれらの処理をシーケンシャルに行なうのではなく、ＤＳＰ１２が複数の演算器を備えていることを生かして並行に行うことが、本実施の形態例に係るプリンタ１の特徴である。
【００３１】
次に、誤差拡散法によるハーフトーン処理の具体的な内容について、その一例を説明する。図５は、誤差拡散法による処理の際に必要となる誤差バッファを示す図である。その時点で処理の対象とする画素を注目画素として、その画素を中心に考えると、まず、注目画素のあるラインの前のラインに対する処理により、注目画素のあるラインの各画素に伝播することになった誤差値を格納する前ラインバッファ１０１が用意される。図５に示すように、注目画素の濃度値（例えば２５６階調）をＤ（ｘ）で表し、ｘは、当該ラインにおいて左からｘ番目の画素であることを意味することとすると、前ラインバッファ１０１のＥＢ＿ｐｒｖ（ｘ）に収められる誤差値が注目画素の処理時にＤ（ｘ）に加えられることになる。なお、前ラインバッファ１０１は、印刷しようとする画像の横幅分（１ラスタ分）のデータを格納する容量を有している。
【００３２】
次に、次ラインバッファ１０２は、注目画素のあるラインについての処理により、次のラインの各画素に伝播することになった誤差値を格納するバッファである。図５に示すように、注目画素に対する処理の結果生じた誤差は、この例においては、右の画素と次のラインの３つの画素に拡散されるので、次ラインバッファ１０２に対してはＥＢ＿ｎｘｔ（ｘ−１）、ＥＢ＿ｎｘｔ（ｘ）、及びＥＢ＿ｎｘｔ（ｘ＋１）にそれぞれ４分の１の誤差が加えられることになる。なお、次ラインバッファ１０２も、１ラスタ分のデータを格納する容量を有している。
【００３３】
左画素バッファ１０３は、左の画素に対する処理の結果、注目画素に伝播することとなった誤差値を格納する１画素分のバッファである。ここに収められる誤差が、注目画素の処理時にＤ（ｘ）に加えられることになる。
【００３４】
また、右画素バッファ１０４は、注目画素に対する処理の結果、右の画素に伝播することになった誤差値を格納する１画素分のバッファであり、前述の次ラインバッファ１０２に拡散されるのと同様に、この例では誤差の４分の１が拡散される。
【００３５】
最後に、ドットオンオフバッファ１０５は、処理結果を格納するバッファであり、注目画素（Ｄ（ｘ））の結果は、Ｄｏｔ（ｘ）に反映される。前述のとおり、本実施の形態例では、大中小の３種類のドットが用意されるので、そのオンオフ情報は２ビットで表現される。
【００３６】
なお、これらの誤差バッファ（１０１〜１０４）は、中ドット処理用と小ドット処理用にそれぞれ別々に用意される。また、これらの誤差バッファ、ドットオンオフバッファ１０５、及び各画素の濃度値Ｄ（ｘ）（２５６階調）は、メモリ１０に格納されている。また、各画素の各色についての濃度値Ｄ（ｘ）は、前述した色変換処理によって生成されたＣＭＹＫ２５６階調データに基づいて、大中小の各ドットのハーフトーン処理用に所定の方法により決定されたものである。したがって、各ドットのハーフトーン処理において使用される濃度値Ｄ（ｘ）は異なるものである。
【００３７】
また、本プリンタ１における誤差拡散法によるハーフトーン処理においては、画像の左上から処理を開始し、順次、右の画素へと処理を進め、そのラインの処理が終了すると、下のラインへと処理を進めいていく。そして、一つの画素についての処理が終了し、注目画素が右にずれると、前述した右画素バッファ１０４（ＥＢ＿ｒｉｇｈｔ）が左画素バッファ１０３（ＥＢ＿ｌｅｆｔ）に置き換わり、１ラインの処理が終了すると、次ラインバッファ１０２（ＥＢ＿ｎｘｔ（ｘ））が前ラインバッファ１０１（ＥＢ＿ｐｒｖ（ｘ））に置き換わる。
【００３８】
図６は、１ライン分の誤差拡散法による処理内容を例示したフローチャートである。また、図７から図１１までは、誤差拡散法による処理における各演算器１２２とレジスタ１２３の用いられ方を説明するための図である。以下、これらの図に基づいて、本プリンタ１における中ドットについてのハーフトーン処理の処理内容について説明する。なお、前述したように、中ドットについて処理を行う範囲については、既に大ドットについてのハーフトーン処理が終了しており、実際には、その処理結果がこの中ドットの処理に反映されるが、ここでは、便宜上その部分の処理は省略して説明する。
【００３９】
まず、ＤＳＰ１２の第１演算器グループ１２１ａは、処理対象のラインの左端の画素について処理をすべく、当該ライン上の画素の位置を表す変数ｘの値を０とする（ステップＳ１）。次に、中ドット用の当該画素の濃度値Ｄ（ｘ）、前ラインバッファ１０１の当該画素に対応するＥＢ＿ｐｒｖ（ｘ）、及び左画素バッファ１０３（ＥＢ＿ｌｅｆｔ）の値をメモリ１０から読み込んで、それらの値を足し合わせて、新たな画素値Ｄｅｎｓｉｔｙとする（ステップＳ２）。
【００４０】
図７には、かかる処理の際の演算器１２２とレジスタ１２３の動きが示されており、（ａ）に示すように、まず、演算器Ｄがメモリ１０から前述した３つの値を読み込んで、それらの値を、ＲＥＧ４〜６にそれぞれ格納する。なお、メモリ１０に対してリードライトのアクセスが可能な演算器は演算器Ｄのみであるとする。
【００４１】
次に、図７の（ｂ）に示すように、演算器Ｃを用いて、Ｔｅｍｐ＝ＥＢ＿ｐｒｖ（ｘ）＋ＥＢ＿ｌｅｆｔという計算が行なわれて、Ｔｅｍｐの値がＲＥＧ３に格納される。その後、図７の（ｃ）に示すように、演算器Ｂを用いて、Ｄｅｎｓｉｔｙ＝Ｄ（ｘ）＋Ｔｅｍｐという計算がなされ、Ｄｅｎｓｉｔｙの値がＲＥＧ３に格納される。
【００４２】
図６に戻って、このように、既に処理済みの画素からの誤差が当該画素に足し込まれたので、その画素値Ｄｅｎｓｉｔｙが中ドット用の閾値（ＴＨＲＥＳＨＯＬＤ＿ＶＡＬ）を超えているかを判断する（ステップＳ３）。なお、この閾値は予め定められている。かかる判断の結果、閾値を超えていれば（ステップＳ３のＹｅｓ）、中ドットが打たれるようにドットオンオフバッファ１０５の当該画素の値Ｄｏｔ（ｘ）を変更する（ステップＳ４）。図６では、中ドットをオンにするという意味でＤｏｔ（ｘ）＝１と表現しているが、実際には、前述のとおり、Ｄｏｔ（ｘ）の値は２ビットで表現されるので、例えば、“１０”という値に変更される。
【００４３】
図８は、前記閾値との比較判断の際の動作が示されている。図８の（ａ）に示されるように、演算器Ｄが中ドット用の閾値をＲＥＧ７に読み込み、図８の（ｂ）に示すように、演算器ＣがＲＥＧ３に格納された前記Ｄｅｎｓｉｔｙと読み込んだ閾値を比較し、その結果をＲＥＧ０に格納する。
【００４４】
また、図９の（ａ）に示すように、前記比較した結果が真であれば、ＲＥＧ１０にドットがオンである情報が書き込まれ、図９の（ｂ）に示すように、演算器Ｄを用いてその情報がメモリ１０に反映される。
【００４５】
図６に戻って、Ｄｅｎｓｉｔｙが閾値を超えている場合には、さらに、画素値Ｄｅｎｓｉｔｙからドットをオンにした分の濃度値ＤＯＴＯＮ＿ＶＡＬ（例えば、２５５）が差し引かれる（ステップＳ５）。図９では、（ｃ）及び（ｄ）に示すように、演算器ＤがＤＯＴＯＮ＿ＶＡＬを読み込んで、その後、演算器Ｂにより、上記減算が行なわれ、その後の画素値はＲＥＧ３に書き戻される。
【００４６】
一方、ステップＳ３において、閾値を超えていない場合には、前述のステップＳ４及びＳ５の処理は行なわない。
【００４７】
その後、誤差の拡散を行なう処理に移行し、その時点の画素値Ｄｅｎｓｉｔｙの４分の１ずつを右、左下、真下、右下の画素にそれぞれ拡散する。具体的には、ＥＢ＿ｒｉｇｈｔを１／４×Ｄｅｎｓｉｔｙとし、ＥＢ＿ｎｘｔ（ｘ−１）、ＥＢ＿ｎｘｔ（ｘ）、及びＥＢ＿ｎｘｔ（ｘ＋１）のそれぞれの値を１／４×Ｄｅｎｓｉｔｙずつ増やす。
【００４８】
図１０には、右の画素に誤差を伝播する上記処理が示されており、（ａ）に示すように、演算器ＡがＲＥＧ３に格納されていたＤｅｎｓｉｔｙの値を読み込んで４分の１にする計算をシフト演算により実施し、その後、（ｂ）に示すように、計算結果が演算器Ｄによりメモリ１０のＥＢ＿ｒｉｇｈｔに代入される。
【００４９】
同様に、図１１には、左下の画素に誤差を伝播する前記処理が示されており、まず、（ａ）に示すように、演算器ＤがＥＢ＿ｎｘｔ（ｘ−１）の値をメモリ１０から読み込み、（ｂ）に示すように、演算器Ｃにより、この値に前記格納された１／４×Ｄｅｎｓｉｔｙの値が足される。そして、（ｃ）に示すように、その後のＥＢ＿ｎｘｔ（ｘ−１）の値が演算器Ｄにより、メモリ１０に書き戻される。なお、真下及び右下の画素への誤差伝播も同様にして行なわれる。
【００５０】
図６に戻って、以上の処理により当該画素についての処理を終了するので、前述のように、右画素バッファ１０４（ＥＢ＿ｒｉｇｈｔ）が左画素バッファ１０３（ＥＢ＿ｌｅｆｔ）に置き換わり（ステップＳ７）、ｘの値を１増やす（ステップＳ８）。そして、当該ラインの全画素について処理が終了するまで前述したステップＳ２からの処理を繰り返し行なう（ステップＳ９のＹｅｓ→Ｓ２）。
【００５１】
そして、１ラインの全画素について処理が終了すれば（ステップＳ９のＮｏ）、当該ラインについての中ドットのハーフトーン処理が終了する。なお、図６では、１ラインがＮ画素で構成されているものとして示している。
【００５２】
このように、ＤＳＰ１２の第１演算器グループ１２１ａで中ドットの処理を行なっている際に、前述のように、第２演算器グループ１２１ｂでは、小ドットについての誤差拡散法による処理を並行して行なう。ここで、小ドットについての処理が、中ドットの処理結果に影響を受けない方式を採用している場合には、小ドットの処理を中ドットの処理と同画素について行なうことができ、１ラインについての処理を完全に並行して実施することができる。かかる場合の小ドットの処理内容は、図６に基づいて説明した中ドットの場合と同様に行なう。ただし、小ドット用の濃度値Ｄ（ｘ）、小ドット用の閾値、小ドット用の各誤差バッファ等が用いられる。なお、図５、図６に基づいて説明した誤差拡散では、注目画素から均等に４つの画素に対して誤差を拡散したが、これは一例であって、他の拡散方法を用いても構わない。
【００５３】
一方、小ドットについての処理が、中ドットの処理結果に影響を受ける方法を採用する場合には、中ドットの処理が終了していない画素について小ドットの処理を行なうことができないので、同一ラインについて並行処理を行なうが、同時に処理する位置（画素）をずらして処理を行なう。すなわち、同一ラインについて所定画素分、中ドットの処理を先行させて並行処理を行なう。
【００５４】
図１２は、小ドットの処理が中ドットの処理結果に依存する場合の小ドットの誤差拡散法による処理を例示したフローチャートである。図１２には、図６と同様に１ライン分の処理が示されており、図６と概ね同様であるが、中ドットの処理においてドットオンとされた（中ドットを発生させた）画素については小ドットは発生させずに、小ドットが発生したものとして誤差拡散が行なわれる。
【００５５】
具体的には、図６に比べステップＳ１３及びＳ１４の処理が増えている。すなわち、各画素の処理において、中ドットの処理結果（Ｄｏｔ（ｘ））を参照し、中ドットが発生していなければ（ステップＳ１３のＮｏ）、中ドットの場合と同様の処理を実施して小ドットのオンオフを決定し、中ドットが発生していれば（ステップＳ１３のＹｅｓ）、単に、小ドット用のＤＯＴＯＮ＿ＶＡＬを画素値Ｄｅｎｓｉｔｙから差し引いて（ステップＳ１４）、誤差の拡散（ステップＳ１８）へ移行する。なお、図１２において、Ｄｏｔ＿Ｍｉｄｄｌｅ（ｘ）及びＤｏｔ＿Ｓｍａｌｌ（ｘ）は、それぞれ、中ドットのオンオフ、小ドットのオンオフを示すものである。
【００５６】
なお、かかる場合において、前述のように、中ドットの処理位置と小ドットの処理位置をずらし、１画素分でも中ドットの処理が先行すればよいが、実際には、バイト単位のメモリアクセスが一般的に行なわれていることから、Ｎバイト（Ｎ＝１、２、４）に相当する画素数分処理をずらすことが好ましい。
【００５７】
図１３は、中ドットと小ドットについての処理のずらし方を説明するための図である。ここでは、２バイト分に相当する８画素分処理をずらしている場合を示しており、処理中のラインであるｙについて、中ドットの処理画素（注目画素）が小ドットの処理画素（注目画素）よりも８画素先行しているのがわかる。前述したように、小ドットの処理においては、中ドットの処理結果（Ｄｏｔ（ｘ））が参照されて、処理後の結果が再びＤｏｔ（ｘ）に書き戻される。
【００５８】
以上説明したように、第一の実施形態例では、負荷の高い誤差拡散法による中ドットと小ドットのハーフトーン処理が、異なる演算器グループ１２１によって並行処理される。したがって、ＤＳＰ１２を用いたハーフトーン処理を効率的に行なうことができ、ＤＳＰのより高い性能を引き出すことができる。また、当該手法を用いることにより、周波数の低いより安価なＤＳＰを採用することができコストを下げることができる。
【００５９】
また、並行するハーフトーン処理に依存関係がある場合にも、その依存関係に則した順番に処理されるように各処理位置（タイミング）をずらすことにより、中ドットと小ドットの処理をシーケンシャルに行なう場合よりも速く処理を行なうことができる。
【００６０】
なお、前述した小ドット処理時の、中ドットについての処理結果の反映のさせ方は、一例であって他の処理内容としても構わない。また、前記説明では、小ドットの処理内容において、大ドットの処理結果を反映させていないが、大ドットを発生させた画素については小ドットを発生させないなど、大ドットの処理結果を反映させるようにしても構わない。さらに、本実施の形態例では、大ドットについてディザ法を用い、中小ドットについて誤差拡散法を用いたが、これも一例であって、複数のドット径について誤差拡散法が用いられる場合には、同様にして並行処理を行なうことができる。
【００６１】
次に、本発明を適用した印刷装置に係る第二の実施形態例について説明する。本実施形態例にかかる印刷装置（プリンタ１）の構成は、図１及び図２に示したものと同様である。本実施形態例にかかるプリンタ１では、まず、ハーフトーン処理を色ごとに二つの演算器グループ１２１に振り分け、同一範囲（例えば、同一ラスタ）についての複数色（２色）のハーフトーン処理を並行に処理する。さらに、１演算器グループ１２１内で一つのレジスタを上位と下位に分けて使用することにより、そこで処理される色の中ドットと小ドットの誤差拡散法によるハーフトーン処理を同時に行なう。
【００６２】
図１４は、第二の実施形態例においてＤＳＰ１２が行なうハーフトーン処理を概念的に示した図である。第二の実施形態例においてもハーフトーン処理は、第一の実施形態例と同様に、大中小ドットについて行なわれ、そのうちの中小ドットについては誤差拡散法が用いられる。そして、この中小ドットについてのハーフトーン処理が、二つの演算器グループ１２１ａ、１２１ｂによって図１４のｃに示すような割り当てで実行される。すなわち、シアンについての処理とマゼンタについての処理が並行して行なわれ、さらに、各色の処理において、中ドットの処理と小ドットの処理が並行して行なわれる。そして、当該２色の処理が終了すると、次の２色、イエローとブラックについて同様の並行処理が行なわれる。また、各色の中ドット及び小ドットについての処理は、図６等に基づいて説明した第一の実施形態例の場合と同様である。
【００６３】
なお、中小ドットについて同時に処理を行なうので、メモリ１０における中小ドット用の画素の濃度値Ｄ（ｘ）や誤差バッファの値は、その並び（配置）を同時処理用にしておく必要がある。
【００６４】
図１５は、濃度値Ｄ（ｘ）の配置を例示した図である。この例では、中小ドットの処理に互いに依存性がなく、同時に同じ画素について処理ができる場合について示している。ｍＤ（ｘ）及びｓＤ（ｘ）は、それぞれ、中ドット用及び小ドット用の濃度値を表しており、ｘ位置の画素について処理する際には、ｍＤ（ｘ）及びｓＤ（ｘ）を同時にＤＳＰ１２に読み込んで処理するので、図に示すような並びとしている。誤差バッファの値等についても同様に配置される。
【００６５】
図１６は、１演算器グループ１２１内での中小ドットの同時処理を説明するための図である。前述のように、中小ドットの各処理は、それぞれ、第一の実施形態例の場合と同様に処理されるので、まず、注目画素の濃度値Ｄ（ｘ）と誤差バッファの値ＥＢ＿ｐｒｖ（ｘ）、ＥＢ＿ｌｅｆｔが、図１６に示すように、演算器Ｄによりメモリ１０から所定のレジスタに読み込まれる。そして、各レジスタＲＥＧの容量が各読み込むデータに対して十分に大きく設定されており、その上位ビット（各ＲＥＧの左側）に中ドット用のデータを収め、下位ビットに（各ＲＥＧの右側）に小ドット用のデータを収める。
【００６６】
その後、加算、減算などの処理が前述したように進められるが、ＲＥＧ内の上位ビット同士、下位ビット同士についてそれらの演算が、一つの演算器１２２で一つの演算として行なわれる。従って、第一の実施形態例における中ドットあるいは小ドットの処理における１ステップと同じ処理時間で、中ドットと小ドットの両方の１ステップの処理が行なわれることになる。なお、図１６において、ｍＥＢ＿ｐｒｖ（ｘ）、ｓＥＢ＿ｐｒｖ（ｘ）など先頭のｍとｓは、それぞれ、中ドット用、小ドット用であることを意味している。
【００６７】
このように、第二の実施形態例では、複数色のハーフトーン処理が並行処理されると共に、中小ドットについても並行処理がなされる。従って、ここでもＤＳＰ１２を有効に使用したハーフトーン処理がなされ、ＤＳＰの高い性能を引き出すことができ、当該手法を用いることにより、周波数の低いより安価なＤＳＰを採用することが可能となる。また、処理時間のかかる誤差拡散法によるハーフトーン処理を高速に行なうことができる。
【００６８】
なお、レジスタを上位下位に分けて使用することによる中小ドットの同時処理を、２色の中ドット処理あるいは小ドット処理の同時処理に換えることも可能である。例えば、第１演算器グループ１２１ａにシアンとマゼンタの処理を、第２演算器グループ１２１ｂにイエローとブラックの処理を割り当て、各演算器グループ１２１で２色の処理を同時に行なう。これにより、４色の、中ドットについての処理あるいは小ドットについての処理が並行に実施されることになる。
【００６９】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図面の簡単な説明】
【００７０】
【図１】本発明を適用した印刷装置の実施の形態例に係る構成図である。
【図２】ＤＳＰ１２の構成を例示した図である。
【図３】ＤＳＰ１２が行なう処理を概念的に示した図である。
【図４】中ドットと小ドットについてのハーフトーン処理を概念的に示した図である。
【図５】誤差拡散法による処理の際に必要となる誤差バッファを示す図である。
【図６】１ライン分の誤差拡散法による処理内容を例示したフローチャートである。
【図７】誤差拡散法による処理を説明するための図である。
【図８】誤差拡散法による処理を説明するための図である。
【図９】誤差拡散法による処理を説明するための図である。
【図１０】誤差拡散法による処理を説明するための図である。
【図１１】誤差拡散法による処理を説明するための図である。
【図１２】小ドットの誤差拡散法による処理を例示したフローチャートである。
【図１３】中ドットと小ドットについての処理のずらし方を説明するための図である。
【図１４】第二の実施形態例におけるハーフトーン処理を概念的に示した図である。
【図１５】濃度値Ｄ（ｘ）の配置を例示した図である。
【図１６】中小ドットの同時処理を説明するための図である。
【符号の説明】
【００７１】
１  プリンタ、  ２  I／Ｆ、  ３  ＣＰＵ、  ４  画像処理ユニット、  ５  パス制
御部、  ６  解凍部、  ７  パス分解部、  ８  並べ替え処理部、  ９  ヘッド出力部、  １０  メモリ、  １１  ローカルバス、  １２  ＤＳＰ、  １３  ヘッド、  １０１  前ラインバッファ、  １０２  次ラインバッファ、  １０３  左画素バッファ、  １０４  右画素バッファ、  １０５  ドットオンオフバッファ、  １２１  演算器グループ、  １２２  演算器、  １２３  レジスタ
【図１】
2006270427.tif 000003
【図２】
2006270427.tif 000004
【図３】
2006270427.tif 000005
【図４】
2006270427.tif 000006
【図５】
2006270427.tif 000007
【図６】
2006270427.tif 000008
【図７】
2006270427.tif 000009
【図８】
2006270427.tif 000010
【図９】
2006270427.tif 000011
【図１０】
2006270427.tif 000012
【図１１】
2006270427.tif 000013
【図１２】
2006270427.tif 000014
【図１３】
2006270427.tif 000015
【図１４】
2006270427.tif 000016
【図１５】
2006270427.tif 000017
【図１６】
2006270427.tif 000018