(57)【要約】【課題】良好な画質を好適に維持しつつ、誤差拡散処理を効率良く行うことのできる画像処理装置、印刷装置、画像処理方法およびプログラムを提供する。【解決手段】２値化処理部１３は、複数の画素をまとめてブロックＢＬを形成するブロック形成部と、ドット形成の有無を判断しようとする画素を含む着目ブロックＢＬについて、該着目ブロックＢＬを構成する画素毎にドット形成の有無を判断し、この判断によって画素に生じた階調表現の誤差を該着目ブロックＢＬ内の周辺の未判断画素に拡散させるブロック内誤差拡散部と、該着目ブロックＢＬ内の各画素についてドット形成の有無を判断したことで生じた該着目ブロックＢＬ全体の階調表現の誤差を該着目ブロックＢＬ外の周辺の未判断画素に拡散させるブロック外誤差拡散部と、を備えている。【選択図】      図１
2005269576.tif 000002
【特許請求の範囲】
【請求項１】
画素の階調値により表現された画像データをドット形成の有無により表現された画像データに変換する２値化処理部を備える画像処理装置において、
前記２値化処理部は、
複数の画素をまとめてブロックを形成するブロック形成部と、
ドット形成の有無を判断しようとする画素を含む着目ブロックについて、該着目ブロックを構成する画素毎にドット形成の有無を判断し、該判断によって画素に生じた階調表現の誤差を該着目ブロック内の周辺の未判断画素に拡散させるブロック内誤差拡散部と、
前記着目ブロック内の各画素についてドット形成の有無を判断したことで生じた該着目ブロック全体の階調表現の誤差を該着目ブロック外の周辺の未判断画素に拡散させるブロック外誤差拡散部と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記ブロック内誤差拡散部は、前記着目ブロック内の各画素のうちドット形成の有無を最初に判断する画素については、該着目ブロック外の判断済みブロックから拡散されてきた前記誤差と、前記画素の階調値とに基づいてドット形成の有無を判断する、
請求項１記載の画像処理装置。
【請求項３】
前記ブロック内誤差拡散部は、前記着目ブロック内の各画素のうち該着目ブロック内の判断済み画素からの前記誤差が拡散されている画素については、該着目ブロック内の判断済み画素から拡散されてきた前記誤差と、該着目ブロック外の判断済みブロックから拡散されてきた前記誤差と、前記画素の階調値とに基づいてドット形成の有無を判断する、
請求項１又は２記載の画像処理装置。
【請求項４】
前記ブロック外誤差拡散部は、前記着目ブロック内の各画素に生じた前記誤差を総和して求めた誤差を該着目ブロック全体に生じた前記誤差とする、
請求項１乃至３のいずれか一項記載の画像処理装置。
【請求項５】
前記画素の階調値により表現された画像データは、ＲＧＢ表色系の画像データが色変換処理されて生成されたＣＭＹＫ表色系の画像データであり、
前記２値化処理部は、前記ＣＭＹＫ表色系の画像データを構成する各色について、前記ブロック内誤差拡散部による前記着目ブロック内での誤差拡散処理と前記ブロック外誤差拡散部による前記着目ブロック外への誤差拡散処理とを実施する、
請求項１乃至４のいずれか一項記載の画像処理装置。
【請求項６】
請求項１乃至５のいずれか一項記載の２値化処理部を搭載した印刷装置。
【請求項７】
画素の階調値により表現された画像データをドット形成の有無により表現された画像データに変換する画像処理方法において、
複数の画素をまとめてブロックを形成するステップと、
ドット形成の有無を判断しようとする画素を含む着目ブロックについて、該着目ブロックを構成する画素毎にドット形成の有無を判断し、該判断によって画素に生じた階調表現の誤差を該着目ブロック内の周辺の未判断画素に拡散させるステップと、
前記着目ブロック内の各画素についてドット形成の有無を判断したことで生じた該着目ブロック全体の階調表現の誤差を該着目ブロック外の周辺の未判断画素に拡散させるステップと、
を備える画像処理方法。
【請求項８】
画素の階調値により表現された画像データをドット形成の有無により表現された画像データに変換する処理を制御部が実行するためのプログラムであって、
前記制御部が、
複数の画素をまとめてブロックを形成する処理と、
ドット形成の有無を判断しようとする画素を含む着目ブロックについて、該着目ブロックを構成する画素毎にドット形成の有無を判断し、該判断によって画素に生じた階調表現の誤差を該着目ブロック内の周辺の未判断画素に拡散させる処理と、
前記着目ブロック内の各画素についてドット形成の有無を判断したことで生じた該着目ブロック全体の階調表現の誤差を該着目ブロック外の周辺の未判断画素に拡散させる処理と、
を実行するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置、印刷装置、画像処理方法およびプログラムにかかり、詳しくは、多階調で表現された画像データをドット形成の有無により表現された画像データに変換する技術に関するものである。
【背景技術】
【０００２】
従来、記録紙等の印刷媒体上に画像を印刷する印刷装置の一つとして、例えばインクジェットプリンタが知られている。インクジェットプリンタは、局所的にはドットを形成するか否かのいずれかの状態しか表現し得ないが、画像の階調値に応じてドットの形成密度を適切に制御することによって、階調が連続的に変化する多階調の画像を表現することが可能となっている。かかるプリンタにおいて、画像の階調値に応じた適切なドットの形成密度が得られるように、各画素についてのドットの形成有無を判断するための手法としては、誤差拡散法と呼ばれる手法が広く使用されている。
【０００３】
誤差拡散法は、画素にドットを形成したこと、あるいはドットを形成しなかったことによって生じる階調表現の誤差を周辺の未判断画素に拡散し、該未判断画素についてドット形成の有無を判断するにあたっては、周辺画素から拡散されてきた誤差を解消するようにドット形成の有無を判断する手法である。誤差拡散法では、このように階調表現の誤差を解消するようにドット形成の有無を判断するので、多階調画像とそれを２値化して得られる２値化画像との間に生じる誤差を平均的に最小にすることができ、優れた画質の画像を形成することができる。このような誤差拡散法に関連する先行技術は、例えば特許文献１に開示されている。
【特許文献１】特開２００２−１８５７９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
誤差拡散法では、上記したようにドット形成の有無を１画素ごとに判断し、該判断によって生じた階調表現の誤差を周辺の未判断画素に広範囲にわたり拡散させて該階調表現の誤差を最小とするよう調整することで、優れた画質の画像を得ることができる。しかしながら、ドット形成の有無を判断する度に誤差を周辺に拡散しなければならないので、画像を構成する画素数が多くなると処理を効率良く行うことができないという問題があった。
【０００５】
この発明は、こうした従来の実情に鑑みてなされたものであり、その目的は、良好な画質を好適に維持しつつ、誤差拡散処理を効率良く行うことのできる画像処理装置、印刷装置、画像処理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第１の態様は、画素の階調値により表現された画像データをドット形成の有無により表現された画像データに変換する２値化処理部を備える画像処理装置において、前記２値化処理部は、複数の画素をまとめてブロックを形成するブロック形成部と、ドット形成の有無を判断しようとする画素を含む着目ブロックについて、該着目ブロックを構成する画素毎にドット形成の有無を判断し、該判断によって画素に生じた階調表現の誤差を該着目ブロック内の周辺の未判断画素に拡散させるブロック内誤差拡散部と、前記着目ブロック内の各画素についてドット形成の有無を判断したことで生じた該着目ブロック全体の階調表現の誤差を該着目ブロック外の周辺の未判断画素に拡散させるブロック外誤差拡散部と、を備えることをその要旨としている。
【０００７】
この構成によれば、２値化処理部は、複数の画素をまとめて処理対象の着目ブロックを形成し、この着目ブロックを構成する画素毎に該着目ブロック内で誤差拡散を実施した後に、該着目ブロック全体の誤差を周辺の未判断画素に拡散させる、といった誤差拡散処理を行う。このような誤差拡散処理では、拡散範囲は狭い範囲となるも着目ブロック内での誤差拡散を画素毎に行う処理と、該着目ブロック全体の誤差を該着目ブロック外へ拡散させる処理とを併用して、画素の階調値に応じた適切な密度でのドットの形成を行って良好な画質を好適に維持しつつ、誤差拡散を１画素ずつ行うことによる処理の非効率化を改善して全体として誤差拡散処理を高速に行うことができる。
【０００８】
ここで、上述した画像処理装置において、前記ブロック内誤差拡散部は、前記着目ブロック内の各画素のうちドット形成の有無を最初に判断する画素については、該着目ブロック外の判断済みブロックから拡散されてきた前記誤差と、前記画素の階調値とに基づいてドット形成の有無を判断する、ことを要旨としている。
【０００９】
着目ブロック内で画素毎に誤差拡散を行うにあたって、ドット形成の有無を最初に判断する画素には、着目ブロック外の判断済みブロックからの誤差のみが拡散されている。つまり、着目ブロック内で行う誤差拡散では、誤差の拡散範囲をブロック内の未判断画素としているため、該着目ブロック内で最初に誤差拡散を行う画素には周辺の画素からの誤差は拡散されていない。このため、ブロック内誤差拡散部は、着目ブロック内でドット形成の有無を最初に判断する画素については、該着目ブロック外の判断済みブロックから拡散されてきた誤差と、画素の階調値とに基づいてドット形成の有無を判断することとしている。こうすれば、画素の階調値に応じた適切な密度となるようドット形成の有無を判断することができる。なお、上記着目ブロック外の判断済みブロックとは、ドット形成の有無を判断するべく、以前に複数の画素をまとめて形成され、先のブロック内誤差拡散部による処理とブロック外誤差拡散部による処理とが既に終了しているブロックのことである。
【００１０】
また、上述した画像処理装置において、前記ブロック内誤差拡散部は、前記着目ブロック内の各画素のうち該着目ブロック内の判断済み画素からの前記誤差が拡散されている画素については、該着目ブロック内の判断済み画素から拡散されてきた前記誤差と、該着目ブロック外の判断済みブロックから拡散されてきた前記誤差と、前記画素の階調値とに基づいてドット形成の有無を判断する、ことを要旨としている。
【００１１】
着目ブロック内で画素毎に誤差拡散を行うにあたって、ドット形成の有無を判断しようとする画素には、該着目ブロック内の判断済み画素からの誤差が拡散されていることがある。つまり、着目ブロック内で行う誤差拡散では、ドット形成の有無によって生じた誤差をブロック内の未判断画素に拡散するため、ドット形成の有無がすでに判断された画素（判断済み画素）からの誤差が、これから判断しようとする画素に拡散されていることがある。このため、ブロック内誤差拡散部は、こうした判断済み画素からの誤差が拡散されている画素については、該判断済み画素から拡散されてきた誤差と、着目ブロック外の判断済みブロックから拡散されてきた誤差と、画素の階調値とに基づいてドット形成の有無を判断することとしている。こうすれば、画素の階調値に応じたより適切な密度となるようドット形成の有無を判断することができる。
【００１２】
また、上述した画像処理装置において、前記ブロック外誤差拡散部は、前記着目ブロック内の各画素に生じた前記誤差を総和して求めた誤差を該着目ブロック全体に生じた前記誤差とする、ことを要旨としている。
【００１３】
こうすれば、着目ブロック全体をあたかも１つの大きな画素として扱い、該着目ブロック全体で生ずる誤差を他の周辺の未判断画素に拡散することで、良好な画質を好適に維持しつつ、誤差拡散処理を迅速に行うことができるようになる。
【００１４】
また、上述した画像処理装置において、前記画素の階調値により表現された画像データは、ＲＧＢ表色系の画像データが色変換処理されて生成されたＣＭＹＫ表色系の画像データであり、前記２値化処理部は、前記ＣＭＹＫ表色系の画像データを構成する各色について、前記ブロック内誤差拡散部による前記着目ブロック内での誤差拡散処理と前記ブロック外誤差拡散部による前記着目ブロック外への誤差拡散処理とを実施する、ことを要旨としている。
【００１５】
このように、着目ブロックにあっては、ＣＭＹＫ表色系の画像データを構成する各色について、ブロック内誤差拡散部による処理とブロック外誤差拡散部による処理とをそれぞれ実施することとすれば、同様な処理を繰り返し実行する、いわゆるパイプラインを効率的に利用して誤差拡散処理を高速化することができる。
【００１６】
本発明の第２の態様は、上述した画像処理装置における２値化処理部を印刷装置に搭載したことをその要旨としている。
こうすれば、良好な画質を好適に維持しつつ、効率良く誤差拡散処理を行うことのできる２値化処理部を搭載した印刷装置を提供することができる。
【００１７】
本発明の第３の態様は、画素の階調値により表現された画像データをドット形成の有無により表現された画像データに変換する画像処理方法において、複数の画素をまとめてブロックを形成するステップと、ドット形成の有無を判断しようとする画素を含む着目ブロックについて、該着目ブロックを構成する画素毎にドット形成の有無を判断し、該判断によって画素に生じた階調表現の誤差を該着目ブロック内の周辺の未判断画素に拡散させるステップと、前記着目ブロック内の各画素についてドット形成の有無を判断したことで生じた該着目ブロック全体の階調表現の誤差を該着目ブロック外の周辺の未判断画素に拡散させるステップと、を備えることをその要旨としている。
【００１８】
この方法によれば、拡散範囲は狭い範囲となるも着目ブロック内での誤差拡散を画素毎に行う処理と、該着目ブロック全体の誤差を該着目ブロック外へ拡散させる処理とを併用して、画素の階調値に応じた適切な密度でのドット形成を行い、良好な画質を好適に維持しつつ、誤差拡散を１画素ずつ行うことによる処理の非効率化を改善して全体として誤差拡散処理を高速に行うことができる。
【００１９】
本発明の第４の態様は、画素の階調値により表現された画像データをドット形成の有無により表現された画像データに変換する処理を制御部が実行するためのプログラムであって、前記制御部が、複数の画素をまとめてブロックを形成する処理と、ドット形成の有無を判断しようとする画素を含む着目ブロックについて、該着目ブロックを構成する画素毎にドット形成の有無を判断し、該判断によって画素に生じた階調表現の誤差を該着目ブロック内の周辺の未判断画素に拡散させる処理と、前記着目ブロック内の各画素についてドット形成の有無を判断したことで生じた該着目ブロック全体の階調表現の誤差を該着目ブロック外の周辺の未判断画素に拡散させる処理と、を実行するためのプログラムであることをその要旨としている。
【００２０】
こうしたプログラムとすれば、良好な画質を好適に維持し得る誤差拡散処理を効率良く行うことが可能である。
【発明を実施するための最良の形態】
【００２１】
以下、この発明を具体化した一実施の形態を図１〜図６に従って説明する。
図１は、本実施の形態にかかる印刷システムを説明するための説明図である。
この印刷システムは、画像処理装置としてのコンピュータ１と、印刷装置としてのプリンタ２とを備えている。コンピュータ１には、ビデオドライバ用プログラムおよびプリンタドライバ用プログラムがインストールされており、これら各プログラムと制御部としてのＣＰＵとにより同コンピュータ１内にはビデオドライバ３およびプリンタドライバ４が構築されている。また、コンピュータ１には、画像処理用のアプリケーションプログラム（以下「アプリケーション」という）５がインストールされており、このアプリケーション５はＣＰＵにより実行されることで画像データを取り扱う各種の処理を行う。例えば、アプリケーション５は、図示しないデジタルカメラや携帯電話機等から画像データを取り込む処理や、画像データの加工等をする処理、画像データをビデオドライバ３に送ってコンピュータ１の図示しない表示装置（ＬＣＤ等）に画像を表示させる処理、プリンタ２で印刷を行うために画像データをプリンタドライバ４に送り出す処理などを司る。
【００２２】
印刷指令等の操作はコンピュータ１の図示しない入力装置（キーボードやマウス等）を用いて行われる。アプリケーション５は、この入力装置を用いて印刷指令の操作がなされると、図示しないビデオバッファ等に格納されている画像データをプリンタドライバ４に送る。そして、この画像データをプリンタ２が印刷可能な各色ドットの形成有無により表現された印刷データに変換して該印刷データをプリンタ２に転送する。
【００２３】
プリンタドライバ４には、このように画像データを印刷データに変換するための複数のモジュールとして、解像度変換処理部１１、色変換処理部１２、２値化処理部１３およびマイクロウィーブ処理部１４等が備えられている。
【００２４】
解像度変換処理部１１は、アプリケーション５から受け取った画像データの解像度を、プリンタ２が印刷するための印刷解像度に変換する。具体的には、画像データの解像度が印刷解像度よりも低い場合は、線形補間を行うことによって画像データの隣接するラスタ間に新たなデータを生成し、逆に印刷解像度よりも高い場合は、一定の割合でデータを間引くことによって、画像データの解像度を印刷解像度に変換する。
【００２５】
色変換処理部１２は、解像度変換処理部１１から画像データを受け取って、Ｒ，Ｇ，Ｂの階調値の組み合わせ（ＲＧＢ表色系）によって表現されている画像データを、Ｃ，Ｍ，Ｙ，Ｋ等のプリンタ２で使用する各色の階調値の組み合わせ（ＣＭＹＫ表色系）によって表現された画像データに変換する色変換処理を行う。色変換処理は、図示しない色変換テーブル（ルックアップテーブルともいう）を参照して行われ、本実施の形態においては、例えば、Ｃ（シアン）、Ｍ（マゼンダ）、Ｙ（イエロー）、Ｋ（ブラック）、ＬＣ（ライトシアン）、ＬＭ（ライトマゼンダ）、ＬＹ（ライトイエロー）の７色の多階調の画像データに変換される。
【００２６】
２値化処理部１３は、色変換処理後のＣＭＹＫ画像データを受け取って、プリンタ２が表現可能な２階調のＣＭＹＫドットデータに変換する２値化処理（ハーフトーン処理ともいう）を行う。詳述すると、色変換処理後のＣＭＹＫ画像データは、各色、例えば階調値０〜２５５の２５６階調で表現されたデータであるのに対し、プリンタ２はドットを形成する、或いはドットを形成しない、のいずれかの状態しか採り得ない。したがって、こうした２５６階調を有する画像データをプリンタ２が表現可能な２階調で表現された画像データに変換する必要があり、この階調数の変換を行う処理が２値化処理である。
【００２７】
本実施の形態では、こうした２値化処理を誤差拡散法を用いて行うようになっている。誤差拡散法とは、画素にドットを形成したこと、あるいはドットを形成しなかったことによって生じる階調表現の誤差を周辺の未判断画素に拡散し、該未判断画素についてのドット形成の有無を判断するにあたっては、周辺画素から拡散されてきた誤差を解消するようにドット形成の有無を判断する手法である。
【００２８】
なお、詳細については後述するが、本実施の形態においては、この誤差拡散法を用いた処理の態様を、「複数の画素をまとめてブロックＢＬを形成し、このブロックＢＬを構成する画素ごとに該ブロックＢＬ内で誤差拡散を実施した後に、該ブロックＢＬ全体の誤差を周辺の未判断画素に拡散させる」、といった態様としている。つまり、ブロックＢＬ内で画素ごとに誤差拡散を行った後には、ブロックＢＬ外へも誤差拡散を行うようにしている。
【００２９】
マイクロウィーブ処理部１４は、誤差拡散処理により各色ドット形成の有無を表す形式に変換された画像データ（ドットデータ）を２値化処理部１３から受け取り、このドットデータを印刷ヘッドのノズル数やノズルピッチ等に基づいてドットの形成順序を考慮しながらプリンタ２に転送すべき順序に並べ替えるマイクロウィーブ処理を行う。マイクロウィーブ処理について詳述すると、印刷ヘッドにおいては、各ノズルが紙送り方向（副走査方向）に印刷解像度よりも低解像度のノズルピッチで配置されているため、連続する番号のラスタを１回の主走査で形成することができない。そこで、毎回の主走査ではノズルピッチ間隔で複数本のラスタを形成しながら、ラスタを形成する度に形成位置を少しずつずらして、ラスタとラスタの間を少しずつラスタで埋めていくようにし、最終的に連続したラスタを形成する処理をマイクロウィーブ処理という。このマイクロウィーブ処理を経たデータは、コマンドが付されて印刷データとしてプリンタ２に出力される。この印刷データはパケット通信によりプリンタ２に転送される。
【００３０】
次に、本印刷システムを構成するコンピュータ１およびプリンタ２の電気的構成について概略を説明する。
図２は、コンピュータ１の電気的構成を示す。コンピュータ１は、制御部としてのＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ディスクコントローラ（以下「ＤＤＣ」という）２４、各種のインタフェース（以下「Ｉ／Ｆ」という）２５，２６等を備えて構成され、これらはバス２７を介して相互に接続されている。
【００３１】
ＲＯＭ２２には、ＣＰＵ２１による処理の実行に必要な各種のプログラム（ドライバ用プログラムやアプリケーションプログラム）やデータ等が格納される。ＣＰＵ２１は、このＲＯＭ２２を利用してプログラムを実行し、上記画像処理に関連する動作等を制御するための各種演算処理を逐次実行する。
【００３２】
ＲＡＭ２３は、ＣＰＵ２１のワーキングメモリとして利用され、ＣＰＵ２１による各種演算処理の実行に必要なデータ等が一時的に読み書きされる。例えば、ＲＡＭ２３は、ＣＰＵ２１による誤差拡散処理の実行に必要な誤差データを読み書きするための誤差バッファ（後述する）として利用される。
【００３３】
ＤＤＣ２４は、図示しないＣＤ−Ｒ等の各種ディスク（記憶媒体）やハードディスク（記憶装置）との間のデータ授受を制御する。本実施の形態にかかるドライバ用プログラムやアプリケーション（アプリケーションプログラム）等は、例えば、これらの記憶媒体や記憶装置からインストールされる。
【００３４】
Ｉ／Ｆ２５は、コンピュータ１の入力装置から制御指令を受け取ったり、プリンタ２に印刷データ等を出力したりするほか、デジタルカメラや携帯電話機等の各種周辺機器との間のデータ授受を制御するインタフェースである。Ｉ／Ｆ２６は、コンピュータ１の表示装置との間に設けられるインタフェース（ビデオインタフェース）である。
【００３５】
なお、このほか、バス２７には、ネットワーク接続用のインタフェースカード（Ｉ／Ｆカード）２８等を接続することもできる。このＩ／Ｆカード２８を装着すれば、コンピュータ１を外部のネットワークに接続して、画像処理に必要なプログラム等を外部からダウンロードすることもできる。
【００３６】
図３は、プリンタ２の電気的構成を示す。プリンタ２は、回路基板３０上に、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ＡＳＩＣ（Application Specific ＩＣ）３４、通信インタフェース３５、パネル制御回路３６等を備えており、これらはバス３７を介して相互に接続されている。
【００３７】
パネル制御回路３６は、電源スイッチ、印刷開始スイッチなどの複数の操作スイッチ（操作キー）や表示画面等を有する操作パネル３８と電気的に接続されている。ＣＰＵ３１は、パネル制御回路３６を介して操作パネル３８からのキー操作信号を入力すると、その操作されたキーに対応した所定の処理を実行する。そして、ＣＰＵ３１は、ＲＯＭ３２に記憶された制御プログラムに従い、ＲＡＭ３３を作業領域として、印刷処理をはじめとする各種の処理を実行する。
【００３８】
ＡＳＩＣ３４は、回路基板３０上に設けられたヘッド駆動回路３９およびモータ駆動回路４０，４１と電気的に接続されている。ＡＳＩＣ３４は、モータ駆動回路４０，４１を介してそれぞれキャリッジモータ４２，紙送りモータ４３を駆動制御しつつ、ヘッド駆動回路３９を介して印刷ヘッド４４を駆動制御する。印刷ヘッド４４は、各色用のノズルを多数個有しており、キャリッジモータ４２の駆動に基づき主走査方向（紙送り方向と垂直方向）に往復移動しながら、各色のインク滴をそれぞれの色に対応するノズルから吐出することにより印刷媒体上に画像を形成する。ＡＳＩＣ３４は、各種センサ４５から入力した検出信号（パルス信号）から把握されるキャリッジ位置および用紙位置に応じたキャリッジ制御・紙送り制御が行われるように各モータ４２，４３を駆動制御する。勿論、これらの各モータ４２，４３を、ＣＰＵ３１が各モータ駆動回路４０，４１を介して制御する構成を採用することもできる。
【００３９】
通信インタフェース３５は、図示しないシリアル又はパラレルの通信ケーブルを介してコンピュータ１（具体的には図２に示すＩ／Ｆ２５）と通信可能に接続されている。上記したように、ユーザがコンピュータ１の入力装置を操作して所定の印刷ジョブの実行を指示すると、プリンタドライバ４にて生成した印刷データがプリンタ２に送信される。
【００４０】
プリンタ２に送信された印刷データは、通信インタフェース３５およびバス３７を通じてＡＳＩＣ３４に入力される。ＡＳＩＣ３４は、印刷データおよびＣＰＵ３１からの制御信号、さらには各種センサ４５からの入力信号に基づいて印刷処理を実行し、各駆動回路３９〜４１を介して印刷ヘッド４４および各モータ４２，４３を駆動制御する。
【００４１】
次に、本実施の形態において、プリンタドライバ４の２値化処理部１３により実行される誤差拡散処理について図４〜図６にしたがって説明する。
図４は、本実施の形態の誤差拡散処理を説明するための概念図である。
【００４２】
上記したように、２値化処理部１３は、色変換処理後のＣＭＹＫ画像データに誤差拡散処理を施すことによって各画素の画素データ（階調値）をプリンタ２が表現可能な各色２階調のドットデータに変換する。なお、本実施の形態のプリンタ２は、ＣＭＹＫＬＣＬＭＬＹの各色毎に大ドット、中ドット、小ドットの３種類のドットを形成可能なプリンタであり、２値化処理部１３は、各色毎に画素データを大ドット、中ドット、小ドットのドット形成有無により表現されたＣＭＹＫドットデータに変換する。
【００４３】
本実施の形態の誤差拡散処理は、画素を所定数ずつまとめてブロックを形成し、該ブロック内で誤差拡散を画素ごとに実行した後に、ブロック全体の誤差をブロック外の周辺の画素に拡散する。
【００４４】
具体的には、図４に示すように２値化処理部１３は、まずブロック形成部として、ＣＭＹＫ画像データの隣接する２つのラスタに含まれる画素のうち、縦横２列（２×２）に並んだ４つの画素をまとめてブロックＢＬを形成する。なお、図４では、画素Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１を含むブロックＢＬを現在処理する着目ブロックとして示している。
【００４５】
２値化処理部１３は、着目ブロックＢＬを形成したら、次いでブロック内誤差拡散部として、この着目ブロックＢＬを構成する画素Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１についての誤差拡散処理をそれら画素ごとに行う。
【００４６】
詳述すると、まず２値化処理部１３は、画素Ｄ００の階調値と、この画素Ｄ００に周辺の判断済みブロックから拡散されてきた誤差とに基づいて、画素Ｄ００についてのドット形成の有無を判断し、この判断によって生じた誤差Ｅ００を着目ブロックＢＬ内の未判断画素、即ち画素Ｄ０１，Ｄ１０，Ｄ１１にそれぞれ所定の比率で拡散する。なお、判断済みブロックとは、ドット形成の有無を判断するべく、以前に複数の画素をまとめてブロックとして形成され、このブロックについての一連の誤差拡散処理が既に終了しているブロックのことである。
【００４７】
続いて２値化処理部１３は、画素Ｄ０１の階調値と、この画素Ｄ０１に周辺の判断済みブロックおよび画素Ｄ００から拡散されてきた誤差とに基づいて、画素Ｄ０１についてのドット形成の有無を判断し、この判断によって生じた誤差Ｅ０１を着目ブロックＢＬ内の未判断画素、即ち画素Ｄ１０，Ｄ１１にそれぞれ所定の比率で拡散する。
【００４８】
続いて２値化処理部１３は、画素Ｄ１０の階調値と、この画素Ｄ１０に周辺の判断済みブロックおよび画素Ｄ００，Ｄ０１から拡散されてきた誤差とに基づいて、画素Ｄ１０についてのドット形成の有無を判断し、この判断によって生じた誤差Ｅ１０を着目ブロックＢＬ内の未判断画素、即ち画素Ｄ１１に所定の比率で拡散する。
【００４９】
続いて２値化処理部１３は、画素Ｄ１１の階調値と、この画素Ｄ１１に周辺の判断済みブロックおよび画素Ｄ００，Ｄ０１，Ｄ１０から拡散されてきた誤差とに基づいて、画素Ｄ１１についてのドット形成の有無を判断し、この判断によって生じた画素Ｄ１１の誤差Ｅ１１を算出する。なお、この誤差Ｅ１１については周辺画素への拡散は行わない（この時点で、着目ブロックＢＬ内に未判断画素はないため）。
【００５０】
２値化処理部１３は、こうして着目ブロックＢＬを構成する画素Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１についての誤差拡散を行ったら、次いでブロック外誤差拡散部として、該着目ブロックＢＬ全体の誤差Ｅｂを算出し、この誤差Ｅｂを該着目ブロックＢＬ外の周辺の未判断画素（図４では、例えば１４個の画素）にそれぞれ所定の比率で拡散する。ここで、着目ブロックＢＬ全体の誤差Ｅｂは、該着目ブロックＢＬをあたかも１つの大きな画素として扱い、各画素Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１にそれぞれドットを形成したこと、あるいは形成しなかったことによって生じた誤差Ｅ００，Ｅ０１，Ｅ１０，Ｅ１１を総和することによって算出される。
【００５１】
２値化処理部１３は、この着目ブロックＢＬ全体の誤差Ｅｂを周辺の未判断画素に拡散したら、該着目ブロックＢＬに関する一連の処理を終了し、以降は、処理対象とする着目ブロックＢＬ（２×２の４画素）をラスタ方向（画素の処理方向）に順次変更しながら、上記と同様の処理を繰り返すことによって全ての画素について２値化を行う。
【００５２】
図５は、このような誤差拡散処理を実行する２値化処理部１３の処理ステップを示すフローチャートである。また、図６は、この処理を実行するにあたって使用される誤差バッファＢｕｆ１，Ｂｕｆ２（ＲＡＭ２３）を示す概念図である。なお、ここでは、上記説明した図４と同一の符号を用いて説明する。
【００５３】
ステップ１００では、２値化処理部１３は、ＣＭＹＫ画像データに変換された２×２の４つの画素Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１について、それら各画素の画素データを入力し、処理対象とする着目ブロックＢＬを形成する。
【００５４】
ステップ１１０では、２値化処理部１３は、この着目ブロックＢＬを構成する画素Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１のうち、まず画素Ｄ００に生じる誤差Ｅ００を算出し、この誤差Ｅ００を画素Ｄ０１，Ｄ１０，Ｄ１１に拡散する。
【００５５】
詳しくは、図６に示すように２値化処理部１３は、画素Ｄ００に周辺の判断済みブロックから拡散されてきた誤差ＥＡ＊００を誤差バッファＢｕｆ１から読み込み、この誤差ＥＡ＊００と画素Ｄ００の階調値とに基づいて、まず画素Ｄ００についてのドット形成の有無を判断する。なお、誤差バッファＢｕｆ１は、ＲＡＭ２３内の一部の領域が確保されることによって構成されている。２値化処理部１３は、こうしてドット形成の有無を判断した結果に基づいて画素Ｄ００に生ずる誤差Ｅ００を求め、これを画素Ｄ０１，Ｄ１０，Ｄ１１にそれぞれ所定の比率で拡散する。ここで、画素Ｄ００の誤差Ｅ００に基づき画素Ｄ０１，Ｄ１０，Ｄ１１にそれぞれ分配（拡散）させる誤差Ｅ００＊０１，Ｅ００＊１０，Ｅ００＊１１は、具体的にはＣＰＵ２１のレジスタ２１ａ（図２）に記憶される。なお、誤差を分配（拡散）させる比率は、あらかじめＲＯＭ２２等に格納されている図示しない誤差拡散マトリックスと呼ばれる数表にしたがって求められる。
【００５６】
ステップ１２０では、２値化処理部１３は、続いて画素Ｄ０１に生じる誤差Ｅ０１を算出し、この誤差Ｅ０１を画素Ｄ１０，Ｄ１１に拡散する。
詳しくは、図６に示すように２値化処理部１３は、画素Ｄ０１に周辺の判断済みブロックから拡散されてきた誤差ＥＡ＊０１を誤差バッファＢｕｆ１から読み込み、この誤差ＥＡ＊０１と上記画素Ｄ００から拡散されてきた誤差Ｅ００＊０１とを総和して求めた誤差と画素Ｄ０１の階調値とに基づいて、まず画素Ｄ０１についてのドット形成の有無を判断する。２値化処理部１３は、こうしてドット形成の有無を判断した結果に基づいて画素Ｄ０１に生ずる誤差Ｅ０１を求め、これを画素Ｄ１０，Ｄ１１にそれぞれ所定の比率で拡散する。ここで、画素Ｄ０１の誤差Ｅ０１に基づき画素Ｄ１０，Ｄ１１にそれぞれ拡散（分配）させる誤差Ｅ０１＊１０，Ｅ０１＊１１は、具体的にはＣＰＵ２１のレジスタ２１ａに記憶される。
【００５７】
ステップ１３０では、２値化処理部１３は、続いて画素Ｄ１０に生じる誤差Ｅ１０を算出し、この誤差Ｅ１０を画素Ｄ１１に拡散する。
詳しくは、図６に示すように２値化処理部１３は、画素Ｄ１０に周辺の判断済みブロックから拡散されてきた誤差ＥＡ＊１０を誤差バッファＢｕｆ２から読み込み、この誤差ＥＡ＊１０と上記画素Ｄ００，Ｄ０１からそれぞれ拡散されてきた誤差Ｅ００＊１０，Ｅ０１＊１０とを総和して求めた誤差と画素Ｄ１０の階調値とに基づいて、まず画素Ｄ０１についてのドット形成の有無を判断する。なお、誤差バッファＢｕｆ２は、ＲＡＭ２３内の一部の領域が確保されることによって構成されている。２値化処理部１３は、こうしてドット形成の有無を判断した結果に基づいて画素Ｄ１０に生ずる誤差Ｅ１０を求め、これを画素Ｄ１１に所定の比率で拡散する。ここで、画素Ｄ１０の誤差Ｅ１０に基づき画素Ｄ１１に拡散（分配）させる誤差Ｅ１０＊１１は、具体的にはＣＰＵ２１のレジスタ２１ａに記憶される。
【００５８】
ステップ１４０では、２値化処理部１３は、続いて画素Ｄ１１に生じる誤差Ｅ１１を算出する。なお、この誤差Ｅ１１のブロックＢＬ内画素への拡散は行わない。
詳しくは、図６に示すように２値化処理部１３は、画素Ｄ１１に周辺の判断済みブロックから拡散されてきた誤差ＥＡ＊１１を誤差バッファＢｕｆ２から読み込み、この誤差ＥＡ＊１１と上記画素Ｄ００，Ｄ０１，Ｄ１０からそれぞれ拡散されてきた誤差Ｅ００＊１１，Ｅ０１＊１１，Ｅ１０＊１１とを総和して求めた誤差と画素Ｄ１１の階調値とに基づいて、まず画素Ｄ１１についてのドット形成の有無を判断する。２値化処理部１３は、こうしてドット形成の有無を判断した結果に基づいて画素Ｄ１１に生ずる誤差Ｅ１１を求め、この誤差Ｅ１１をＣＰＵ２１のレジスタ２１ａに記憶する。
【００５９】
ステップ１５０では、２値化処理部１３は、着目ブロックＢＬ全体に生じる誤差Ｅｂを算出し、この誤差Ｅｂを該着目ブロックＢＬ外の周辺の未判断画素に拡散する。
詳しくは、図６に示すように２値化処理部１３は、着目ブロックＢＬをあたかも１つの大きな画素として扱い、該着目ブロックＢＬ内の画素Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１にそれぞれ生じた誤差Ｅ００，Ｅ０１，Ｅ１０，Ｅ１１を総和することによって該着目ブロックＢＬ全体に生ずる誤差Ｅｂを算出する。２値化処理部１３は、こうして求めた着目ブロックＢＬ全体の誤差Ｅｂを該着目ブロックＢＬ外の周辺の未判断画素にそれぞれ所定の比率で拡散する。
【００６０】
ここで、着目ブロックＢＬ全体の誤差Ｅｂに基づき周辺の各画素にそれぞれ拡散（分配）させる誤差は、各画素が含まれるラスタの位置に応じて上記誤差バッファＢｕｆ１，Ｂｕｆ２にそれぞれ格納される。例えば、図４に示す画素Ｐ１に拡散させる誤差は誤差バッファＢｕｆ１に格納され、画素Ｐ２に拡散させる誤差は誤差バッファＢｕｆ２に格納される。また、画素Ｐ３に拡散させる誤差は誤差バッファＢｕｆ１に格納され、画素Ｐ４に拡散させる誤差は誤差バッファＢｕｆ２に格納される。
【００６１】
このように、本実施の形態では、縦横２列（２×２）の４つの画素を一つにまとめてブロックを形成し、画素毎の誤差拡散をブロック内の画素（未判断画素）を拡散範囲としながら行う一方、ブロック全体の誤差を該ブロック外へも拡散させるようにしている。このような誤差拡散処理では、拡散範囲は狭い範囲となるもブロック内での画素毎の誤差拡散と、ブロック外への誤差拡散とを併用して、画素の階調値に応じた適切な密度でのドットの形成を行って良好な画質を好適に維持しつつ、誤差拡散を画素単位（１画素ずつ）のみで行うことによる処理の非効率化を改善して全体として誤差拡散処理を高速に行うことができる。
【００６２】
即ち、従来のように誤差拡散を画素単位のみで行うこととすれば、極めて良好な画質の画像を形成することは可能であるが、この方法ではドット形成の有無を判断する度に誤差を周辺の画素に広範囲にわたって拡散しなければならないので、処理を高速に行うことが困難となる。本実施の形態では、この点に鑑みて、画素毎に誤差拡散を行う場合には誤差の拡散範囲をブロック内とし、１画素あたりの周辺への拡散回数を少なくすることで処理の効率化を図っている。ところが、誤差の拡散範囲を狭い範囲に限り、１画素あたりの周辺への拡散回数を少なくすると、画質の劣化が生じる懸念がある。そこで、本実施の形態では、こうした画質の劣化を極力抑えるべく、画素毎の誤差拡散をブロック内で行った後に、ブロック全体の誤差を該ブロック外の周辺の未判断画素に広範囲に渡って拡散させ、これにより画質の維持と処理の効率化との両立を図るようにしている。
【００６３】
なお、処理を効率化することのみを追求するのであれば、誤差拡散を画素毎に行わずにブロック単位（ブロック全体の誤差を拡散させる）のみで行ったほうがより効率良く処理することができる。しかしながら、この方法は、やはり画質の劣化を招く懸念があり好ましくない。
【００６４】
ちなみに、本実施の形態の誤差拡散の手法を用いて処理を行う場合、１つのブロックに関する処理で周辺の画素に誤差を拡散する回数は、
（ブロック内での誤差拡散回数：６回）＋（ブロック外への誤差拡散回数：１４回）
であり、１ブロックあたり（即ち、２×２の４画素あたり）２０回となる。
【００６５】
これに対し、従来の誤差拡散の手法（画素単位（１画素ずつ）のみでの誤差拡散）を用いて処理を行う場合、本実施の形態の処理によるものと同程度以上の画質の画像を得るのに必要な１画素あたりの誤差の拡散回数はおよそ９回であり、４画素あたりに換算すれば３６回となる。したがって、この例の場合には、従来の手法と比べて誤差の拡散回数は４画素あたり１６回削減されることとなり、その分、誤差拡散処理を高速化することができる。
【００６６】
ところで、「画質の維持と処理の効率化との両立を図る」といった観点に立って考えれば、例えば、着目ブロック内の画素の階調値（例えば平均値）を求め、このブロック内の階調値に基づき、誤差拡散をブロック単位で行うか、或いは画素毎に行うかを判断して、誤差拡散処理のモードを適宜選択可能とする、といった手法も考えられる。
【００６７】
即ち、この手法は、ブロック内の階調値がブロック単位での誤差拡散を行った場合でも画質の劣化を生じることのない階調値であると判断できるときにはブロック単位で処理を行い、そうでないときには画素毎に処理を行うようにする、といった思想である。こうすれば、確かにブロック単位のみで処理することによる画質の劣化を抑えつつ、一方で画素単位で１画素ずつ処理することによる処理の非効率化も改善することができる。
【００６８】
しかしながら、こうした方法では、着目ブロックで実施する上記誤差拡散処理のモードが各色（本例ではＣＭＹＫＬＣＬＭＬＹの７色）の間でいずれか１つでも異なると（同一ブロックであっても当然各色ごとに階調値は異なることから、処理モードが異なる場合がある）、処理効率が低下するという問題が生じる。即ち、この方法では、同一ブロックであっても各色ごとの階調値の条件によっては処理モードが異なる可能性が多分にあるために、同一ブロックで実施する各色ごとの処理（画素単位又はブロック単位）が必ずしも同一とはならない。このため、同様な処理を繰り返し実行する、いわゆるパイプライン処理には適した方法とはならず、条件分岐が多発することによる（即ち、同一ブロックの各色間で実施する処理モードが異なることによる）処理効率の低下を招く懸念がある。
【００６９】
これに対し、本実施の形態では、着目ブロック内での誤差拡散を画素毎に実行した後に、該着目ブロック全体の誤差を周辺の画素に拡散する、といった一連の処理を同一ブロックの各色について、それら各色ごとの階調値の条件に依らずに実行することができる。このため、条件分岐の発生を極力抑えてパイプラインを効率的に利用して処理を進めることができる。したがって、こうした理由からも誤差拡散処理の高速化が望めるのである。
【００７０】
以上記述したように、本実施の形態によれば、以下の効果を奏する。
（１）２値化処理部１３は、ＣＭＹＫ画像データの隣接する２つのラスタに含まれる４つの画素Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１をまとめて処理対象の着目ブロックＢＬを形成し、該着目ブロックＢＬを構成する画素毎に該着目ブロックＢＬ内で誤差拡散を実施する。そして、この着目ブロックＢＬ内で画素毎に誤差拡散を実施したら、次いで該着目ブロックＢＬ全体の誤差Ｅｂを周辺の未判断画素に拡散させる。このような誤差拡散処理とすれば、拡散範囲は狭い範囲となるも着目ブロックＢＬ内での誤差拡散を画素毎に行う処理と、該着目ブロックＢＬ全体の誤差Ｅｂをその周辺へ拡散させる処理とを併用して、画素の階調値に応じた適切な密度でのドットの形成を行って良好な画質を好適に維持しつつ、誤差拡散処理を効率良く行うことが可能となる。
【００７１】
（２）２値化処理部１３は、着目ブロックＢＬ内でドット形成の有無を最初に判断する画素Ｄ００については、着目ブロックＢＬ外の判断済みブロックから拡散されてきた誤差ＥＡ＊００と、画素Ｄ００の階調値とに基づいてドット形成の有無を判断するようにした。これによれば、周辺（判断済みブロック）から拡散されてきた誤差ＥＡ＊００に基づいて、画素の階調値に応じた適切な密度となるようドット形成の有無を判断することができる。
【００７２】
（３）２値化処理部１３は、着目ブロックＢＬ内の判断済み画素からの誤差が拡散されている画素（本例ではＤ０１，Ｄ１０，Ｄ１１）については、該判断済み画素から拡散されてきた誤差と着目ブロックＢＬ外の判断済みブロックから拡散されてきた誤差とを総和して求めた値と、画素の階調値とに基づいてドット形成の有無を判断するようにした。これによれば、画素の階調値に応じた適切な密度となるようドット形成の有無を判断することができる。
【００７３】
（４）２値化処理部１３は、着目ブロックＢＬ内の各画素Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１で生じた誤差Ｅ００，Ｅ０１，Ｅ１０，Ｅ１１を総和することで該着目ブロックＢＬ全体の誤差Ｅｂを算出し、この誤差Ｅｂを周辺の未判断画素に拡散させるようにした。このように、着目ブロックＢＬ全体をあたかも１つの大きな画素として扱い、該着目ブロックＢＬ全体で生ずる誤差Ｅｂを周辺の未判断画素に広範囲に渡って拡散することで、良好な画質を好適に維持しつつ、誤差拡散処理を迅速に行うことが可能となる。
【００７４】
（５）２値化処理部１３は、画素の列たるラスタのうち、隣接する２つのラスタに含まれる縦横２列に並んだ４つの画素（本例ではＤ００，Ｄ０１，Ｄ１０，Ｄ１１）をまとめてブロック（着目ブロック）ＢＬを形成するようにした。こうすれば、４つの画素を含むブロックを順次処理対象としながら、誤差拡散処理を効率良く行うことができるので好適である。
【００７５】
（６）２値化処理部１３は、着目ブロックＢＬについての誤差拡散処理を行う際には、画像データを構成する各色（本例ではＣＭＹＫＬＣＬＭＬＹの７色）について、着目ブロックＢＬ内での誤差拡散を画素毎に行う処理と、着目ブロックＢＬ全体の誤差Ｅｂを周辺の未判断画素に拡散させる処理とをそれぞれ行うようにした。こうすれば、同様な処理を繰り返し実行する、いわゆるパイプラインを効率的に利用して誤差拡散処理を高速化することができる。
【００７６】
なお、上記実施の形態では、以下の態様に変更した変形例を採用してもよい。
（変形例１）上記実施の形態では、画像処理装置をコンピュータ１とし、このコンピュータ１の制御部たるＣＰＵ２１と（ＲＯＭ２２に格納される）プリンタドライバ用プログラムとで２値化処理部１３を含むプリンタドライバ４を構築した。これに代えて、プリンタドライバ用プログラムを印刷装置たるプリンタ２のＲＯＭ３２等に格納し、該プリンタ２の制御部たるＣＰＵ３１とプリンタドライバ用プログラムとで上記２値化処理部１３を含むプリンタドライバ４を構築するようにしてもよい。こうすれば、プリンタ２をコンピュータ１と接続しなくとも、該プリンタ２をスタンドアロン機として使用することが可能となる。つまり、ＲＧＢ画像データをＣＭＹＫ画像データに変換して、この画像データに２値化処理（本実施の形態の誤差拡散処理）を施してドット形成の有無による表現形式のデータに変換し、さらにマイクロウィーブ処理を施して印刷データを生成する、といった一連の画像処理をプリンタ２側で行って該プリンタ２単体で印刷処理することが可能となる。なお、この場合には、プリンタ２が画像処理装置となる。要するに、本発明にかかる画像処理装置は、コンピュータ１およびプリンタ２のいずれによっても実現可能である。
【００７７】
（変形例２）上記実施の形態では、２値化処理部１３をプリンタドライバ４の機能として実現したが、この２値化処理部１３による誤差拡散処理の機能を回路化し、ハードウェア上で実現するようにしてもよい。
【００７８】
（変形例３）上記実施の形態において、２値化処理部１３による２値化処理の形態としては、上述した誤差拡散処理のみによるものならず、こうした誤差拡散処理とディザ法（組織的ディザ法）を用いた処理とを併用する形態としてもよい。
【００７９】
（変形例４）上記実施の形態では、ブロックＢＬを構成する複数の画素は４つの画素（Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１）に限らず、例えば、隣接する３つのラスタに含まれる縦横３列に並んだ３×３の９個の画素で構成してもよい。また、必ずしもマトリクス状に隣接する複数の画素をまとめて構成するに限らず、任意の複数の画素としてもよい。
【００８０】
（変形例５）上記実施の形態では、４つの画素Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１を含むブロックＢＬ内での画素毎に行う誤差拡散の回数を計６回としたが、必ずしもこの回数には限定されない。画質を維持できる程度であれば、これより少ない回数としてもよい。
【００８１】
（変形例６）上記実施の形態では、４つの画素Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１を含むブロックＢＬ全体の誤差Ｅｂを周辺の未判断画素に拡散させる回数を１４回としたが、必ずしもこの回数には限定されない。画質を維持できる程度であれば、これより少ない回数としてもよいし、また逆に、処理効率の低下が懸念される程度でなければ、これより多い回数としてもよい。
【００８２】
（変形例７）上記実施の形態では、ブロックＢＬ内の各画素Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１に生じる誤差Ｅ００，Ｅ０１，Ｅ１０，Ｅ１１を総和した値を、ブロックＢＬ全体の誤差Ｅｂとしたが、必ずしもこの算出方法に限定されるものではなく、他の算出方法によってブロックＢＬ全体の誤差Ｅｂを求めるようにしてもよい。
【００８３】
（変形例８）上記実施の形態では、ＣＭＹＫ画像データを構成する各色は、ＣＭＹＫＬＣＬＭＬＹの７色としたが、勿論この７色に限定されるものではない。
【図面の簡単な説明】
【００８４】
【図１】一実施の形態における印刷システムを説明するための説明図。
【図２】コンピュータの電気的構成を示す概略ブロック図。
【図３】プリンタの電気的構成を示す概略ブロック図。
【図４】誤差拡散処理を説明するための概念図。
【図５】２値化処理部による誤差拡散処理の流れを示すフローチャート。
【図６】誤差拡散処理における誤差バッファの使用例を示す概念図。
【符号の説明】
【００８５】
１…コンピュータ（画像処理装置）、２…プリンタ（印刷装置）、４…プリンタドライバ、５…アプリケーション、１３…２値化処理部（ブロック形成部、ブロック内誤差拡散部、ブロック外誤差拡散部）、２１…ＣＰＵ（制御部）、２１ａ…レジスタ、２２…ＲＯＭ、２３…ＲＡＭ、Ｂｕｆ１，Ｂｕｆ２…ＲＡＭ２３を利用して構成される誤差バッファ、３１…ＣＰＵ、３２…ＲＯＭ、３３…ＲＡＭ、３４…ＡＳＩＣ、Ｄ００，Ｄ０１，Ｄ１０，Ｄ１１…画素、ＢＬ…ブロック（着目ブロック）、Ｐ１〜Ｐ４…ブロック全体の誤差を拡散させる画素（一部のみ）、Ｅ００，Ｅ０１，Ｅ１０，Ｅ１１…画素に生じる誤差、Ｅｂ…ブロック全体の誤差、Ｅ００＊０１，Ｅ００＊１０，Ｅ００＊１１，Ｅ０１＊１０，Ｅ０１＊１１，Ｅ１０＊１１…判断済み画素から拡散される誤差、ＥＡ＊００，ＥＡ＊０１，ＥＡ＊１０，ＥＡ＊１１…判断済みブロックから拡散される誤差。
【図１】
2005269576.tif 000003
【図２】
2005269576.tif 000004
【図３】
2005269576.tif 000005
【図４】
2005269576.tif 000006
【図５】
2005269576.tif 000007
【図６】
2005269576.tif 000008