複数の領域に分割された画像の領域ごとに誤差拡散処理を行う画像処理装置であって、前記誤差拡散処理における注目画素が第一の誤差保持手段の参照または書き込みが必要な画素位置にあるか否かを判定する判定手段と、前記判定手段の判定結果が、前記第一の誤差保持手段の参照が必要な画素位置に前記注目画素があることを示す場合は前記第一の誤差保持手段から既に誤差拡散処理された領域の前記誤差拡散処理で発生した参照すべき量子化誤差を取得するとともに、前記注目画素を含む領域の、前記注目画素の近傍の画素の誤差拡散処理で発生した量子化誤差を第二の誤差保持手段から取得する取得手段と、誤差拡散マトリクスに従い、前記取得された量子化誤差から拡散誤差を算出する算出手段と、前記注目画素の値と前記拡散誤差を加算した加算値を量子化して前記注目画素の量子化値とする量子化手段と、前記注目画素の量子化誤差として前記注目画素の量子化値と前記加算値の差分を計算する計算手段と、前記判定手段の判定結果が、前記第一の誤差保持手段の書き込みが必要な画素位置に前記注目画素がないことを示す場合は前記注目画素の量子化誤差を前記第二の誤差保持手段に格納し、前記判定手段の判定結果が、前記第一の誤差保持手段の書き込みが必要な画素位置に前記注目画素があることを示す場合は前記注目画素の量子化誤差を前記第一および第二の誤差保持手段に格納する格納手段とを有することを特徴とする画像処理装置。前記判定手段は、前記誤差拡散処理が未処理の領域へ誤差を伝播すべき画素位置に注目画素がある場合、前記第一の誤差保持手段の書き込みが必要な画素位置に前記注目画素があると判定することを特徴とする請求項1に記載された画像処理装置。複数の領域に分割された画像の領域ごとに誤差拡散処理を行う画像処理装置であって、前記誤差拡散処理における注目画素が第一の誤差保持手段の参照または書き込みが必要な画素位置にあるか否かを判定する判定手段と、前記判定手段の判定結果が、前記第一の誤差保持手段の参照が必要な画素位置に前記注目画素があることを示す場合は前記第一の誤差保持手段から既に誤差拡散処理された領域の前記誤差拡散処理で発生した前記注目画素に対する拡散誤差を取得するとともに、前記注目画素を含む領域の、前記注目画素の近傍の画素の誤差拡散処理で発生した量子化誤差から算出された前記注目画素に対する拡散誤差を第二の誤差保持手段から取得する取得手段と、前記注目画素の値と前記取得された拡散誤差を加算した加算値を量子化して前記注目画素の量子化値とする量子化手段と、前記注目画素の量子化誤差として前記注目画素の量子化値と前記加算値の差分を計算する計算手段と、誤差拡散マトリクスに従い、前記注目画素の量子化誤差から前記注目画素の近傍の画素に拡散する拡散誤差を算出する算出手段と、前記拡散誤差を前記第二の誤差保持手段に格納するとともに、前記判定手段の判定結果が、前記第一の誤差保持手段の書き込みが必要な画素位置に前記注目画素があることを示す場合は前記拡散誤差のうち前記誤差拡散処理が未処理の領域に伝播すべき拡散誤差を前記第一の誤差保持手段に格納する格納手段とを有することを特徴とする画像処理装置。前記判定手段は、前記注目画素を含む領域における前記注目画素の位置、および、前記領域の分割方法に基づき、前記判定を行うことを特徴とする請求項1から請求項3の何れか一項に記載された画像処理装置。前記判定手段は、さらに、前記注目画素を含む領域における前記注目画素の位置に応じて、前記第一の誤差保持手段の読取位置を示す情報を前記取得手段に供給し、前記第一の誤差保持手段の書込位置を示す情報を前記格納手段に供給することを特徴とする請求項4に記載された画像処理装置。さらに、前記画像の分割方法および前記誤差拡散マトリクスが示す誤差の参照範囲に応じて、前記誤差を参照すべき画素位置および前記誤差を伝播すべき画素位置を示す情報を前記判定手段に設定する設定手段を有することを特徴とする請求項4または請求項5に記載された画像処理装置。前記第一の誤差保持手段および前記第二の誤差保持手段は個別の記憶装置であることを特徴とする請求項1から請求項6の何れか一項に記載された画像処理装置。前記第一および第二の誤差保持手段は同一の記憶装置の異なる記憶領域に対応することを特徴とする請求項1から請求項6の何れか一項に記載された画像処理装置。前記第一の誤差保持手段はDRAMによって構成され、前記第二の誤差保持手段はSRAMによって構成されることを特徴とする請求項1から請求項6の何れか一項に記載された画像処理装置。判定手段、取得手段、算出手段、量子化手段、計算手段、格納手段を有し、複数の領域に分割された画像の領域ごとに誤差拡散処理を行う画像処理装置の画像処理方法であって、前記判定手段が、前記誤差拡散処理における注目画素が第一の誤差保持手段の参照または書き込みが必要な画素位置にあるか否かを判定し、前記取得手段が、前記判定の結果が、前記第一の誤差保持手段の参照が必要な画素位置に前記注目画素があることを示す場合は前記第一の誤差保持手段から既に誤差拡散処理された領域の前記誤差拡散処理で発生した参照すべき量子化誤差を取得するとともに、前記注目画素を含む領域の、前記注目画素の近傍の画素の誤差拡散処理で発生した量子化誤差を第二の誤差保持手段から取得し、前記算出手段が、誤差拡散マトリクスに従い、前記取得された量子化誤差から拡散誤差を算出し、前記量子化手段が、前記注目画素の値と前記拡散誤差を加算した加算値を量子化して前記注目画素の量子化値とし、前記計算手段が、前記注目画素の量子化誤差として前記注目画素の量子化値と前記加算値の差分を計算し、前記格納手段が、前記判定の結果が、前記第一の誤差保持手段の書き込みが必要な画素位置に前記注目画素がないことを示す場合は前記注目画素の量子化誤差を前記第二の誤差保持手段に格納し、前記判定の結果が、前記第一の誤差保持手段の書き込みが必要な画素位置に前記注目画素があることを示す場合は前記注目画素の量子化誤差を前記第一および第二の誤差保持手段に格納することを特徴とする画像処理方法。判定手段、取得手段、算出手段、量子化手段、計算手段、格納手段を有し、複数の領域に分割された画像の領域ごとに誤差拡散処理を行う画像処理装置の画像処理方法であって、前記判定手段が、前記誤差拡散処理における注目画素が第一の誤差保持手段の参照または書き込みが必要な画素位置にあるか否かを判定し、前記取得手段が、前記判定の結果が、前記第一の誤差保持手段の参照が必要な画素位置に前記注目画素があることを示す場合は前記第一の誤差保持手段から既に誤差拡散処理された領域の前記誤差拡散処理で発生した前記注目画素に対する拡散誤差を取得するとともに、前記注目画素を含む領域の、前記注目画素の近傍の画素の誤差拡散処理で発生した量子化誤差から算出された前記注目画素に対する拡散誤差を第二の誤差保持手段から取得し、前記量子化手段が、前記注目画素の値と前記取得された拡散誤差を加算した加算値を量子化して前記注目画素の量子化値とし、前記計算手段が、前記注目画素の量子化誤差として前記注目画素の量子化値と前記加算値の差分を計算し、前記算出手段が、誤差拡散マトリクスに従い、前記注目画素の量子化誤差から前記注目画素の近傍の画素に拡散する拡散誤差を算出し、前記格納手段が、前記拡散誤差を前記第二の誤差保持手段に格納するとともに、前記判定の結果が、前記第一の誤差保持手段の書き込みが必要な画素位置に前記注目画素があることを示す場合は前記拡散誤差のうち前記誤差拡散処理が未処理の領域に伝播すべき拡散誤差を前記第一の誤差保持手段に格納することを特徴とする画像処理方法。コンピュータを請求項1から請求項10の何れか一項に記載された画像処理装置の各手段として機能させることを特徴とするプログラム。本発明は、複数の領域に分割された画像を誤差拡散処理する際に、領域間の誤差の伝播を適切に行うことを目的とする。本発明は、前記の目的を達成する一手段として、以下の構成を備える。本発明にかかる画像処理は、複数の領域に分割された画像の領域ごとに誤差拡散処理を行う画像処理であって、前記誤差拡散処理における注目画素が第一の誤差保持手段の参照または書き込みが必要な画素位置にあるか否かを判定し、前記判定の結果が、前記第一の誤差保持手段の参照が必要な画素位置に前記注目画素があることを示す場合は前記第一の誤差保持手段から既に誤差拡散処理された領域の前記誤差拡散処理で発生した参照すべき量子化誤差を取得するとともに、前記注目画素を含む領域の、前記注目画素の近傍の画素の誤差拡散処理で発生した量子化誤差を第二の誤差保持手段から取得し、誤差拡散マトリクスに従い、前記取得された量子化誤差から拡散誤差を算出し、前記注目画素の値と前記拡散誤差を加算した加算値を量子化して前記注目画素の量子化値とし、前記注目画素の量子化誤差として前記注目画素の量子化値と前記加算値の差分を計算し、前記判定の結果が、前記第一の誤差保持手段の書き込みが必要な画素位置に前記注目画素がないことを示す場合は前記注目画素の量子化誤差を前記第二の誤差保持手段に格納し、前記判定の結果が、前記第一の誤差保持手段の書き込みが必要な画素位置に前記注目画素があることを示す場合は前記注目画素の量子化誤差を前記第一および第二の誤差保持手段に格納することを特徴とする。本発明によれば、複数の領域に分割された画像を誤差拡散処理する際に、領域間の誤差の伝播を適切に行うことができる。従って、領域の繋ぎ目において誤差拡散処理の連続性が損なわれ、不連続なドットパターンが生じる問題を防ぐことができる。以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。実施例1においては、画像を複数のバンドに分割し、バンドごとに誤差拡散処理する際に、バンド間で伝播する誤差として量子化誤差または拡散誤差を選択可能な構成例を説明する。[装置の構成]図1のブロック図により実施例1に適用可能な画像処理装置の構成例を説明する。画像入力部100は、例えば、スキャナやディジタルカメラなどの画像入力機器やハードディスクドライブなどの記録装置から多値の画像データを入力するインタフェイスである。領域分割部101は、入力された画像データが表す画像を複数の領域に分割する。誤差拡散処理部102は、領域分割部101が分割した各領域を逐次的に誤差拡散処理して階調数を低減した画像データを生成する。なお、入力画像データがN値階調数Nであれば、誤差拡散処理された画像データはM値階調数M<Nである。画像出力部103は、例えば、インクジェット方式の印刷装置やプリンタエンジンに誤差拡散処理された画像データを出力するインタフェイスである。なお、印刷装置やプリンタエンジンは、誤差拡散処理された画像データが表す画像を記録紙に記録する。図2により画像の分割方法、誤差拡散処理における画素の走査方法、誤差拡散マトリクスの例を説明する。領域分割部101は、図2に示すように、入力画像200を主走査方向に直交する副走査方向に分割する。誤差拡散処理部102は、まずバンド201について、バンドの長手方向主走査方向に直交する方向図2の下方向、副走査方向に画素を走査して、図2または図2に示す誤差拡散マトリクスを使用して誤差拡散処理を行う。続いて、バンド202、そしてバンド203の順に画素を走査して、図2または図2に示す誤差拡散マトリクスを使用して誤差拡散処理を行う。なお、各バンドのライン数は、誤差拡散マトリクスのライン数以上であれば任意である。図2に示す誤差拡散マトリクスは、注目画素が近傍画素から受け取る誤差の比率拡散係数を示す。つまり、で示す注目画素には、一行上の画素から716、一列前の隣接する三画素から上から順に116、516、316の比率で量子化誤差が拡散される。また、図2に示す誤差拡散マトリクスは、注目画素から近傍画素へ誤差を拡散する比率拡散係数を示す。つまり、で示す注目画素から、一行下の画素へ716、一列後の隣接する三画素へ上から順に316、516、116の比率で量子化誤差が拡散される。なお、図2は誤差を受け取る側の画素から見た場合の誤差拡散マトリクスを示し、図2は誤差を拡散する側の画素から見た誤差拡散マトリクスを示し、両者は同じ誤差拡散マトリクスを表している。[誤差拡散処理部]図3のブロック図により誤差拡散処理部102の構成例を説明する。誤差加算部300は、入力画像データの注目画素の値に、積算部307が出力する、注目画素の近傍の既処理の画素から拡散された誤差の累積値拡散誤差を加算する。量子化部301は、拡散誤差が加算された注目画素の値から予め定められたビット数の量子化値を計算する。画像データが8ビットの場合、量子化部301は、注目画素の値0~255から、例えば量子化閾値127による二値化を行い、量子化後の注目画素の値として量子化値0または255を出力する。量子化誤差算出部302は、誤差加算部300において拡散誤差が加算された注目画素の値と、量子化部301において量子化された後の注目画素の値の差分を量子化誤差として出力する。勿論、量子化部301の処理は、二値化に限らず、三値化、四値化、五値化などでもよい。つまり、例えば8ビットの画像データの階調数256を低減して、画像出力部103が処理可能な階調数二値、三値、四値、五値などの画像データにする処理であればよい。レジスタ303は、量子化誤差と拡散誤差から伝播誤差を選択するためのレジスタである。レジスタ303には、量子化誤差を伝播誤差に選択する場合は‘0’が設定され、拡散誤差を伝播誤差に選択する場合は‘1’が設定される。セレクタ304a、304b、304cは、レジスタ303に設定された値によりブロック間のデータの経路を選択する。バッファ参照判定部310は、注目画素のバンド上の位置を入力して、乗算部306が用いる誤差拡散マトリクスによって決まる伝播誤差を参照すべき画素位置か否かを判定する。そして、伝播誤差を参照すべき画素位置の場合は、誤差バッファ309から読み出す誤差の位置を示す位置情報を出力する。バッファ格納判定部311は、注目画素のバンド上の位置を入力して、領域の分割方法例えばバンドのライン数に基づき、乗算部306が用いる誤差拡散マトリクスによって決まる誤差を伝播すべき画素位置か否かを判定する。そして、誤差を伝播すべき画素位置の場合は、誤差バッファ309に誤差を書き込む位置を示す位置情報を出力する。なお、バンドごとにライン数が異なる場合、バッファ格納判定部311は、注目画素のバンド上の位置、および、領域分割部101から注目バンドのライン数を入力する。誤差バッファ制御部308は、バッファ参照判定部310およびバッファ格納判定部311が出力する判定結果と位置情報を入力して、誤差バッファ309の読み書き、セレクタ312の経路を制御する。つまり、バッファ参照判定部310の判定結果が伝播誤差の参照を示す場合、バッファ参照判定部310が出力する誤差バッファ309の読取位置を示す位置情報に従い、誤差バッファ309から伝播誤差を取得する。そして、当該伝播誤差が乗算部306に入力されるようにセレクタ312を制御する。なお、バッファ参照判定部310の判定結果が伝播誤差の非参照を示す場合は、誤差メモリ305から出力される誤差が乗算部306に入力されるようにセレクタ312を制御する。さらに、バッファ格納判定部311の判定結果が伝播誤差の格納を示す場合、セレクタ304aを介して入力した誤差を、バッファ参照判定部310が出力する誤差バッファ309の書込位置を示す位置情報に従い、誤差バッファ309に格納する。誤差メモリ305には、量子化誤差算出部302からセレクタ304aを介して量子化誤差が格納される。あるいは、誤差メモリ305には、乗算部306からセレクタ304aを介して拡散誤差が格納される。乗算部306は、セレクタ304bを介して入力される誤差に拡散係数を乗じた誤差を算出する。積算部307は、セレクタ304cを介して入力される誤差を積算して、注目画素の値に加える積算誤差を出力する。このように、誤差拡散処理部102は、レジスタ303の設定により、バンド間で量子化誤差を伝播する方法と拡散誤差を伝播する方法の両方に対応可能である。なお、誤差拡散処理部102は、バンド間における誤差の伝播が適正に実現される構成であればよく、図3の構成に限られるわけではない。[誤差拡散処理の例]以下では、図2Aに示すように、画像を分割した複数のバンドを、逐次、誤差拡散処理する例に説明する。なお、領域間の誤差伝播を実現するために、既に誤差拡散処理が終了したバンド以下、前バンドで発生した誤差をバッファして、次に誤差拡散処理するバンド以下、次バンドに伝播する。●量子化誤差を伝播する場合図4のフローチャートにより量子化誤差を伝播する場合の誤差拡散処理部102の処理例を説明する。誤差拡散処理部102は、注目画素の値を入力する。バッファ参照判定部310は、注目画素が伝播誤差を参照すべき画素位置にあるか否かを判定する。図5により誤差を参照すべき画素位置および誤差を伝播すべき画素位置を説明する。図5に示すように、各バンドが4ラインから構成されるとする。そして、バンド202のラインL4上に位置する注目画素600を処理する場合、注目画素600に誤差を拡散すべき画素以下、拡散元画素は、図5に示す近傍画素A、B、C、Dの四画素である。ラインL3上の拡散元画素AとBはバンド201に含まれ、処理中のバンド以下、注目バンド202には含まれない。そこで、図5に示すように、前バンドの誤差拡散処理において発生した量子化誤差を誤差バッファ309に格納し、注目画素600の誤差拡散処理において拡散元画素AとBの量子化誤差aとbを参照する。勿論、ラインL4上に位置する画素の誤差拡散処理は、注目画素600と同様、前バンド201のラインL3上に位置する画素の量子化誤差を参照する必要がある。このように、図2に示す誤差拡散マトリクスを使用する場合、伝播誤差を参照すべき画素位置は、注目バンドの先頭行の画素位置である。ただし、誤差拡散マトリクスの形状によって、注目画素の上方向に拡散元画素が二画素以上ある場合、誤差バッファ309に複数ライン分の記憶容量が必要になる。また、ラインL4上に位置する隣接する二つの画素は、誤差バッファ309の同じ位置に格納された量子化誤差を参照する。例えば、図5において、画素Cと注目画素600は、誤差バッファ309に格納された量子化誤差aを参照する。従って、画素Cの誤差拡散処理中に誤差バッファ309から参照した量子化誤差aを、例えば誤差バッファ制御部308が備える遅延メモリに保持する。そして、注目画素600を誤差拡散処理する際は、遅延メモリに保持した量子化誤差aを参照する。こうすれば、誤差拡散処理時の誤差バッファ309の参照回数を低減することが可能である。注目画素が伝播誤差を参照すべき画素位置にある場合、誤差バッファ制御部308は、バッファ参照判定部310が出力する位置情報に基づき誤差バッファ309から量子化誤差を読み出し、位置情報と量子化誤差を乗算部306に供給する。次に、誤差バッファ制御部308は、誤差メモリ305が保持する注目画素に対する拡散元画素の量子化誤差を読み出し、拡散元画素の位置情報と量子化誤差を乗算部306に供給する。乗算部306は、位置情報に対応する図2に示す拡散マトリクスの拡散係数を量子化誤差に乗じた拡散誤差を積算部307に供給する。積算部307は、乗算部306から順次入力される拡散誤差を積算する。なお、ステップS503~S506の処理は拡散元画素の数図2の例であれば四画素分繰り返され、拡散誤差の積算が終了すると、積算部307は積算結果を誤差加算部300に出力する。誤差加算部300は、積算部307から入力される拡散誤差の積算値と注目画素の値を加算し、加算結果を量子化部301に出力する。量子化部301は、誤差加算部300から入力される加算値を量子化し、量子化結果を出力する。量子化誤差算出部302は、量子化結果から誤差加算部300が出力する加算値を減算した量子化誤差を誤差メモリ305の注目画素の画素位置に対応する位置に格納する。次に、バッファ格納判定部311は、注目画素が誤差を伝播すべき画素位置にあるか否かを判定する。図5に示すように、バンド201のラインL3上に位置する注目画素601を処理する場合、注目画素601の量子化誤差を拡散すべき画素以下、拡散先画素は近傍画素E、F、G、Hの四画素である。ラインL4上の拡散先画素EとHはバンド202に含まれ、注目バンド201には含まれない。そこで、図5に示すように、注目画素601の誤差拡散処理において発生した量子化誤差を誤差バッファ309に格納し、拡散先画素E、Hの誤差拡散処理において注目画素601の量子化誤差を参照する。勿論、ラインL3上に位置する画素の誤差拡散処理は、注目画素601と同様、次バンド202のラインL4上に位置する画素に量子化誤差を拡散する必要がある。つまり、図2に示す誤差拡散マトリクスを使用する場合、誤差を伝播すべき画素位置は、注目バンドの最終行の画素位置である。注目画素が誤差を伝播すべき画素位置にある場合、誤差バッファ制御部308は、量子化誤差算出部302が出力する量子化誤差を、バッファ格納判定部311が出力する位置情報に基づき誤差バッファ309に格納する。次に、誤差拡散処理部102は、画像入力部100が入力した画像の全画素について誤差拡散処理が終了したか否かを判定し、全画素の誤差拡散処理が終了するまでステップS501~S511の処理を繰り返す。●拡散誤差を伝播する場合図6のフローチャートにより拡散誤差を伝播する場合の誤差拡散処理部102の処理例を説明する。誤差拡散処理部102は、注目画素の値を入力する。バッファ参照判定部310は、注目画素が伝播誤差を参照すべき画素位置にあるか否かを判定する。上述したように、バンド202のラインL4上に位置する注目画素600を処理する場合、拡散元画素は図5に示す近傍画素A、B、C、Dの四画素である。そして、画素AとBはバンド201に含まれ、注目バンド202には含まれない。従って、図2に示す誤差拡散マトリクスを使用する場合、伝播誤差を参照すべき画素位置は、注目バンドの先頭行の画素位置である。なお、誤差バッファ309は、拡散元画素から拡散先画素へ拡散される拡散誤差の和を格納する。つまり、図5の例では、画素Aからの拡散誤差と、画素Bからの拡散誤差の和が誤差バッファ309の注目画素600に対応する位置に格納されている。つまり、誤差バッファ309が格納する伝播誤差は誤差拡散マトリクスの形状に依存しないと言える。注目画素が伝播誤差を参照すべき画素位置にある場合、誤差バッファ制御部308は、バッファ参照判定部310が出力する位置情報注目画素の位置情報に基づき誤差バッファ309から読み出した拡散誤差を積算部307に供給する。次に、誤差バッファ制御部308は、誤差メモリ305が保持する注目画素に対応する拡散誤差を読み出し、拡散誤差を積算部307に供給する。積算部307は、誤差バッファ制御部308から入力される拡散誤差を積算し、積算結果を誤差加算部300に出力する。誤差加算部300は、積算部307から入力される拡散誤差の積算値と注目画素の値を加算し、加算結果を量子化部301に出力する。量子化部301は、誤差加算部300から入力される加算値を量子化し、量子化結果を出力する。量子化誤差算出部302は、量子化結果から誤差加算部300が出力する加算値を減算した量子化誤差を計算する。乗算部306は、図2に示す誤差拡散マトリクスに従い、注目画素の量子化誤差を拡散した拡散誤差を計算し、誤差メモリ305の拡散先画素の画素位置に対応する位置に拡散誤差を格納する。その際、乗算部306は、格納位置に既に格納された拡散誤差と、当該格納位置に新たに格納する拡散誤差を加算して、拡散誤差を積算する。次に、バッファ格納判定部311は、注目画素が誤差を伝播すべき画素位置にあるか否かを判定する。上述したように、図5に示すバンド201のラインL3上に位置する注目画素601を処理する場合、注目画素601の量子化誤差の拡散先画素は近傍画素E、F、G、Hの四画素である。ラインL4上の拡散先画素EとHはバンド202に含まれ、注目バンド201には含まれない。そこで、図5に示すように、注目画素601の誤差拡散処理において発生した量子化誤差に拡散先画素E、Hに対応する拡散係数を乗じた拡散誤差を計算する。そして、拡散誤差を、誤差バッファ309の画素E、Hに対応する位置に格納し、拡散先画素E、Hの誤差拡散処理において拡散誤差を参照する。勿論、ラインL3上に位置する画素の誤差拡散処理は、注目画素601と同様、次バンド202のラインL4上に位置する画素に量子化誤差を拡散する必要がある。つまり、図2に示す誤差拡散マトリクスを使用する場合、誤差を伝播すべき画素位置は、注目バンドの最終行の画素位置である。また、ラインL3上に位置する隣接する二つの画素の拡散誤差は、ラインL4上に位置する同じ画素に拡散される。例えば、図5において、注目画素601と画素Gの拡散誤差は、画素Hに拡散される。従って、注目画素601の誤差拡散処理における画素Hヘの拡散誤差を、例えば誤差バッファ制御部308が備える遅延メモリに保持する。そして、画素Gの誤差拡散処理における画素Hへの拡散誤差と、遅延メモリに保持した拡散誤差の和を計算し、計算結果の拡散誤差を、誤差バッファ309の画素Hに対応する位置に格納する。こうすれば、誤差拡散処理時の誤差バッファ309の書込回数を低減することが可能である。さらに、誤差拡散マトリクスの形状によっては、注目画素から誤差を拡散すべき拡散先画素のうち二画素以上が注目バンドにない場合、誤差バッファ309に複数ライン分の記憶容量が必要になる。例えば、ラインL2上の画素からラインL4上の画素へ拡散すべき拡散誤差、並びに、ラインL3上の画素からラインL4、L5上の画素へ拡散すべき拡散誤差を格納する必要がある。この場合、上述したように、ラインL4上の画素への複数の拡散誤差を、誤差バッファ制御部308が備える遅延メモリを用いて積算し、誤差バッファ309に格納する。また、一般的な誤差拡散処理においては、隣接画素以外へ伝播される誤差は小さく、ラインL2上の画素からラインL4上の画素へ拡散される誤差は無視できるほど小さい。加えて、隣接画素へ伝播される誤差の影響が大きく、ラインL2上の画素からラインL4上の画素へ拡散される誤差の影響よりも、ラインL3上の画素からラインL4上の画素へ拡散される誤差の影響が大きい。つまり、ラインL2上の画素からラインL4上の画素に拡散される誤差を無視しても誤差拡散処理の連続性は保たれる。このような誤差の拡散特性を考慮すれば、誤差バッファ309の記憶容量を1ライン分にすることも可能である。注目画素が誤差を伝播すべき画素位置にある場合、誤差バッファ制御部308は、乗算部306が出力する次バンドに拡散すべき拡散誤差を、誤差バッファ309の拡散先画素の画素位置に対応する位置に拡散誤差を格納する。その際、誤差バッファ制御部308は、格納位置に既に格納された拡散誤差と、当該格納位置に新たに格納する拡散誤差を加算して、拡散誤差を積算する。次に、誤差バッファ制御部308は、バッファ参照判定部310の判定結果や位置情報に基づき注目バンドの誤差拡散処理が終了したか否かを判定する。さらに、バッファ格納判定部311の判定結果や位置情報に基づき、注目バンドにおいて伝播誤差を参照すべき画素この例では、注目バンドの一行目の画素の誤差拡散処理が終了したか否かを判定する。そして、注目バンドの誤差拡散処理が終了すると、前バンドの拡散誤差を積算しないように、誤差バッファ制御部308は誤差メモリ305をクリアする。また、注目バンドにおいて伝播誤差を参照すべき画素の誤差拡散処理が終了すると、前バンドの拡散誤差を積算しないように、誤差バッファ制御部308は誤差バッファ309をクリアする。次に、誤差拡散処理部102は、画像入力部100が入力した画像の全画素について誤差拡散処理が終了したか否かを判定し、全画素の誤差拡散処理が終了するまでステップS601~S615の処理を繰り返す。上記のように、バッファ参照判定部310とバッファ格納判定部311は、注目画素の位置や拡散係数マトリクスの形状、領域の分割方法に基づき、誤差バッファ309のアクセスが必要か否かを判定する。誤差バッファ309のアクセスが必要な場合は、誤差バッファ309におけるアクセス位置を算出して、拡散誤差を誤差バッファ309から読み出し、あるいは、拡散誤差を誤差バッファ309へ格納する。以上のとおり、誤差バッファ制御部308は、誤差バッファ309のアクセルが必要か否かの判定結果に応じて、誤差バッファ309に対する誤差誤差の格納と参照を制御して、任意の伝播位置による誤差伝播を実現する。伝播誤差に量子化誤差を選択する場合、拡散係数を乗算しないので、誤差バッファ309が格納する値は整数であるが、誤差拡散マトリクスの形状によっては複数ライン分の記憶容量を有する誤差バッファ309が必要になる。一方、伝播誤差に拡散誤差を選択する場合、拡散係数の乗算により小数部も必要になるが、誤差バッファ309には誤差拡散マトリクスの形状によらず1ライン分の記憶容量があればよい。つまり、誤差拡散マトリクスの形状によって、誤差を参照すべき位置または誤差を伝播すべき位置が1ラインの場合は、伝播誤差として量子化誤差を選択すれば誤差バッファ309の記憶容量が小さくなる。また、誤差を参照すべき位置または誤差を伝播すべき位置が複数ラインの場合は、伝播誤差として拡散誤差を選択すれば誤差バッファ309の記憶容量が小さくなる。すなわち、上述した構成は、常に誤差バッファ309の記憶容量を最小にする構成をとることができる。また、誤差メモリ305を記憶容量当りのコストは高いがアクセス速度が速いSRAMで構成し、誤差バッファ309を記憶容量当りのコストは低いがアクセス速度が遅いDRAMで構成すれば、記憶デバイスの特徴に応じた最適な回路設計になる。つまり、誤差メモリ305は、分割領域内で誤差拡散処理するために、注目画素の処理時に、その周囲画素の誤差が必ず読み出され、処理によって生じた誤差が必ず格納される。一方、誤差バッファ309は、分割領域間で誤差伝播を行うための誤差伝播位置でのみアクセスされるが、伝播誤差をすべて保持すれば大きな記憶容量を必要とする。そこで、高速なアクセスが必要な誤差メモリ305にSRAMを使用し、大きな記憶容量が必要な誤差バッファ309に安価なDRAMを使用して、高速かつ低コストの処理回路を実現する。上記では、第一の誤差保持部である誤差バッファ309と第二の誤差保持部である誤差メモリ305が個別の記憶デバイスとして説明したが、物理的に異なる二つの記憶デバイスを用いる必要はなく、二つの役割を果たす記憶領域が確保されていればよい。同一の記憶デバイスに上記二つの役割を担う記憶領域を確保した場合は、逐次的に誤差の格納と参照を行えばよい。また、上記二つの役割を担う記憶領域を複数の記憶領域や記憶デバイスに跨って構成する場合も、適切に誤差の格納と参照ができれば本発明が実現可能であることは言うまでもない。このように、複数の領域に分割された画像を誤差拡散処理する際に、誤差バッファ309に量子化誤差または拡散誤差を格納して領域間の誤差の伝播を適切に行う。従って、領域の繋ぎ目において誤差拡散処理の連続性が損なわれ、不連続なドットパターンが生じる問題を防ぐことができる。以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。図7により実施例2における画像の分割方法、誤差拡散処理における画素の走査方法、誤差拡散マトリクスの例を説明する。実施例1においては、図2に示すように、縦長の画像200をバンド状に分割した各領域を走査して誤差拡散処理する例を説明した。実施例2においては、図7に示すように、画像200をタイル状に分割した各領域を、領域205、206、...、213の順に横方向主走査方向に走査して、図7または図7に示す誤差拡散マトリクスを使用して誤差拡散処理を行う。なお、図7は拡散先画素から見た場合の誤差拡散マトリクスを示し、図7は拡散元画素から見た誤差拡散マトリクスを示し、両者は同じ誤差拡散マトリクスを表している。実施例2と実施例1は、領域の分割方法と画素の走査方向が異なる点を除いて、同一の画像処理になる。つまり、図1に示す画像処理装置の構成、図3に示す誤差拡散処理部102の構成、図4、6に示す処理フローは実施例1と同一である。以下では、既に誤差拡散処理が終了したタイル以下、既処理タイルの誤差を参照する拡散先画素と、誤差拡散処理が未処理のタイル以下、未処理タイルへ誤差を伝播する拡散元画素について説明する。図8により誤差を参照すべき画素位置および誤差を伝播すべき画素位置を説明する。図8に示すように、各タイルが4×4画素から構成されるとする。そして、ラインL4、列R4上に位置するタイル209の注目画素700を処理する場合、注目画素700の拡散元画素は、図8に示す近傍画素A、B、C、Dの四画素である。拡散元画素Aはタイル205に、拡散元画素B、Cはタイル206に、拡散元画素Dはタイル208にそれぞれ含まれ、処理中のタイル以下、注目タイル209には含まれない。そこで、図8に示すように、既処理タイルの誤差拡散処理において発生した量子化誤差を誤差バッファ309に格納する。なお、図8は量子化誤差の格納を示しているが、拡散誤差は誤差バッファ309の拡散先画素に対応する位置に格納することはいうまでもない。そして、注目画素700の誤差拡散処理において拡散元画素A、B、C、Dの量子化誤差a、b、c、dまたは拡散誤差を参照する。勿論、ラインL4または列R4上に位置する注目タイル209の画素の誤差拡散処理は、注目画素700と同様、ラインL3または列R3上に位置する画素の誤差を参照する必要がある。このように、図7に示す誤差拡散マトリクスを使用する場合、伝播誤差を参照すべき画素位置は、注目タイルの先頭行および先頭列の画素位置である。また、図8に示すように、ラインL3、列R3上に位置するタイル205の注目画素701を処理する場合、注目画素701の拡散先画素は近傍画素E、F、G、Hの四画素である。拡散先画素Eはタイル206に、拡散先画素F、Gはタイル208に、拡散先画素Hはタイル209にそれぞれ含まれる。そこで、図8に示すように、注目画素701の誤差拡散処理において発生した量子化誤差を誤差バッファ309に格納する。なお、図8は量子化誤差の格納を示しているが、拡散誤差は誤差バッファ309の拡散先画素に対応する位置に格納することはいうまでもない。そして、拡散先画素E、F、G、Hの誤差拡散処理において注目画素701の量子化誤差または拡散誤差を参照する。勿論、注目タイル205のラインL3または列R3上に位置する画素の誤差拡散処理は、注目画素701と同様、未処理タイルのラインL4または列R4上に位置する画素に誤差を拡散する必要がある。このように、図7に示す誤差拡散マトリクスを使用する場合、誤差を伝播すべき画素位置は、注目タイルの最終行および最終列の画素位置である。なお、実際に誤差バッファ309に量子化誤差が格納される画素は、既処理タイルと未処理タイルの境界において、既処理タイルの最終ライン上の画素と、既処理タイルの最終列上の画素である。図9により誤差バッファ309に量子化誤差が格納される画素の一例を説明する。図9において、タイル205から208が既処理タイル、タイル209から213が未処理タイルである。図9は、タイル209の誤差拡散処理が終了した直後に対応し、タイル205から209が既処理タイル、タイル210から213が未処理タイルである。このように、既処理タイルと未処理タイルの境界の既処理タイル側の画素の量子化誤差が誤差バッファ309に格納されている。言い替えれば、誤差バッファ309は、既処理タイルと未処理タイルの境界の画素分図9では16画素分の量子化誤差を記憶できればよいと言える。また、拡散誤差を伝播する場合は、実際に誤差バッファ309に拡散誤差が格納される画素は、既処理タイルと未処理タイルの境界において、未処理タイルの先頭ライン上の画素と、未処理タイルの先頭列上の画素である。従って、量子化誤差を伝播する場合と同様に、誤差バッファ309は、既処理タイルと未処理タイルの境界の画素分の拡散誤差を記憶できればよいと言える。このように、領域の分割方法が変化し、拡散元画素または拡散先画素の位置が変化しても、既に誤差拡散処理が終了した領域と、誤差拡散処理が未処理の領域の境界の画素分の量子化誤差または拡散誤差を伝播すればよい。これは、バッファ参照判定部310とバッファ格納判定部311によって誤差バッファ309をアクセスするか否かを判定し、誤差バッファ制御部308によって誤差バッファ309と誤差メモリ305のアクセスを制御することで実現される。従って、実施例1と全く同一構成の誤差拡散処理部102でありながら、領域分割の方法が異なる場合でも、誤差拡散処理の連続性を維持することができる適切な位置における領域間の誤差伝播が可能になる。以下、本発明にかかる実施例3の画像処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。誤差拡散処理において、誤差の参照範囲を拡大すると、処理結果の画質が改善されることが知られている。しかし、誤差の参照範囲を拡大すれば、一画素を処理するための演算負荷が増大し、処理速度の低下を招く。そこで、誤差の参照範囲を調整または選択して、許容可能な画質と許容可能な処理速度のバランスをとることが望まれる。実施例3においては、ユーザの設定に応じて、領域の分割方法や誤差拡散マトリクスの形状誤差の参照範囲が再設定可能な誤差拡散処理を説明する。[誤差拡散処理のモード]図10によりユーザが設定可能な誤差拡散処理のモードに対する、領域の分割方法、誤差拡散マトリクス、誤差を参照すべき画素位置および誤差を伝播すべき画素位置の一例を説明する。例えばモード0は、実施例1のように、画像をバンド状に分割し、図2に示す誤差拡散マトリクスを使用する。従って、一つのバンドが4ラインで構成される場合、誤差を参照すべき画素位置以下、参照画素位置はラインL4、誤差を伝播すべき画素位置以下、伝播画素位置はラインL3である。モード1は、連続する二つのバンドにおいて、先に処理するバンドの末尾2ラインと次に処理するバンドの先頭2ライン一つのバンドが5ラインで構成される場合はラインL3とL4を重複して誤差拡散処理する。この場合、参照画素位置はラインL3、伝播画素位置はラインL2である。モード2は、モード0に比べて誤差拡散マトリクスを大きくし、つまり誤差の参照範囲を上下に一行ずつ、左に一列を拡げて誤差拡散処理を行う。従って、一つのバンドが5ラインで構成される場合、参照画素位置はラインL5、伝播画素位置はラインL4である。モード3は、実施例2のように、画像をタイル状に分割し、図7に示す誤差拡散マトリクスを使用する。従って、一つのタイルが3×3画素で構成される場合、参照画素位置はラインL4、L8と列R4、R8、伝播画素位置はラインL3、L7と列R3、R7である。なお、図10に示すモード以外にも、バンドのライン数が異なるモード、タイルの画素数が異なるモード、誤差拡散係数が異なるモードなどが設定可能である。[誤差拡散処理部]図11のブロック図により実施例3の誤差拡散処理部102の構成を説明する。設定部800は、図10に示すモードに対応する設定情報を記憶するテーブルを備え、ユーザが選択したモードに応じて、領域分割部101の領域分割方法、および、乗算部306が使用する誤差拡散マトリクスを設定する。さらに、モードに応じて、参照画素位置を示すデータをレジスタ801に書き込み、伝播画素位置を示すデータをレジスタ802に書き込む。バッファ参照判定部310は、注目画素のバンドまたはタイル上の位置と、レジスタ801に書き込まれた参照画素位置を比較して、注目画素が誤差を参照すべき画素位置か否かを判定する。同様に、バッファ格納判定部311は、注目画素のバンドまたはタイル上の位置と、レジスタ802に書き込まれた伝播画素位置を比較して、注目画素が誤差を伝播すべき画素位置か否かを判定する。また、モード1のように重複処理領域がある場合、誤差拡散処理部102からすべての量子化結果が出力されないように制御してもよい。つまり、バンドの最終行付近の誤差拡散処理において重複処理領域の量子化結果を出力し、バンドの先頭行付近の誤差拡散処理において重複処理領域の量子化結果を出力しないようにしてもよい。勿論、バンドの最終行付近の誤差拡散処理において重複処理領域の量子化結果を出力せずに、バンドの先頭行付近の誤差拡散処理において重複処理領域の量子化結果を出力してもよい。誤差バッファ制御部308は、設定部800から入力される重複処理領域に関する情報と、バッファ参照判定部310またはバッファ格納判定部311から入力される注目画素の位置情報に基づき、出力部803を制御する。なお、重複処理領域に関する情報とは、例えばバンドのライン数、重複処理領域のライン数などである。出力部803は、誤差バッファ制御部308の制御に従い、量子化結果を出力する出力しないを切り替える。なお、図11は、簡略化のためにレジスタ303およびセレクタ304a、304b、304cを記載せずに、量子化誤差を伝播する場合の構成を記載した。実際には、レジスタ303およびセレクタ304a、304b、304cにより量子化誤差の伝播と拡散誤差の伝播の切り換えが可能である。さらに、モードに量子化誤差の伝播と拡散誤差の伝播の切り換えを含め、設定部800によるレジスタ303の値の設定により、量子化誤差の伝播と拡散誤差の伝播の切り換えることもできる。[重複処理領域がある場合の処理]以下では、モード1のように重複処理領域がある場合の誤差拡散処理を説明する。図12により画像の分割方法、誤差拡散処理における画素の走査方法、誤差拡散マトリクスの例を説明する。領域分割部101は、図12に示すように、各バンドが重複処理領域を有するように入力画像200をバンド状に分割する。誤差拡散処理部102は、まずバンド215について、バンドの長手方向に直交する方向図12の下方向に画素を走査して、図12または図12に示す誤差拡散マトリクスを使用して誤差拡散処理を行う。続いて、バンド216、そしてバンド217の順に画素を走査して、図12または図12に示す誤差拡散マトリクスを使用して誤差拡散処理を行う。なお、図2および図2に示す誤差拡散マトリクスを使用してもよい。図12は注目画素が近傍画素から受け取る誤差の比率拡散係数を示す。つまり、で示す注目画素には、一行上の画素から748、二行上の画素から548の比率で量子化誤差が拡散される。また、一列前の五画素から上から順に348、548、748、548、348の比率で量子化誤差が拡散される。さらに、二列前の五画素から上から順に148、348、548、348、148の比率で量子化誤差が拡散される。図12は注目画素から近傍画素へ誤差を拡散する比率拡散係数を示す。つまり、で示す注目画素から、一行下の画素へ748、二行下の画素へ548の比率で量子化誤差が拡散される。また、一列後の五画素へ上から順に348、548、748、548、348の比率で量子化誤差が拡散される。さらに、二列後の五画素へ上から順に148、348、548、348、148の比率で量子化誤差が拡散される。なお、図12は誤差を受け取る側の画素から見た場合の誤差拡散マトリクスを示し、図12は誤差を拡散する側の画素から見た誤差拡散マトリクスを示し、両者は同じ誤差拡散マトリクスを表している。図13のフローチャートにより重複処理領域があり、量子化誤差を伝播する場合の誤差拡散処理例を説明する。なお、モードが選択され、設定部800によりモードに対応した設定が済んでいるものとする。誤差拡散処理部102は、注目画素の値を入力する。バッファ参照判定部310は、注目画素が伝播画素位置にあるか否かを判定する。図14により誤差を伝播すべき画素位置を説明する。図14に示すように、各バンドが重複処理領域2ラインを含む5ラインから構成されるとする。そして、ラインL3上に位置するバンド216の注目画素1100を処理する場合、注目画素1100の拡散元画素は、図14に示す近傍画素A~Lの12画素である。ラインL1上の拡散元画素A、B、CおよびラインL2上の拡散元画素D、E、Fの六画素はバンド215に含まれ、注目バンド216には含まれない。従って、注目バンド216の処理中に誤差メモリ305に格納される量子化誤差は、拡散元画素G~Lで生じた量子化誤差のみで、拡散元画素A~Fで生じた量子化誤差が格納されることはない。そこで、図14に示すように、前バンドの誤差拡散処理において発生した量子化誤差を誤差バッファ309に格納し、注目画素1100の誤差拡散処理において拡散元画素A~Fの量子化誤差a~fを参照する。また、ラインL4上に位置するバンド216の注目画素1102を処理する場合、注目画素1102の拡散元画素は、図14に示す近傍画素D~Oの12画素である。ラインL2上の拡散元画素D、E、Fの三画素はバンド215に含まれ、注目バンド216には含まれない。従って、注目バンド216の処理中に誤差メモリ305に格納される量子化誤差は、拡散元画素G~Oで生じた量子化誤差のみで、拡散元画素D~Fで生じた量子化誤差が格納されることはない。そこで、図14に示すように、注目画素1102の誤差拡散処理において誤差バッファ309に格納された拡散元画素D~Fの量子化誤差d~fを参照する。このように、ラインL3上に位置する画素の誤差拡散処理は、注目画素1100と同様、前バンド215のラインL1、L2上に位置する画素の量子化誤差を参照する必要がある。そして、ラインL4上に位置する画素の誤差拡散処理は、注目画素1102と同様、前バンド215のラインL2上に位置する画素の量子化誤差を参照する必要がある。なお、拡散元画素G、H、I、J、Mの量子化誤差は、バンド216の誤差拡散処理において誤差メモリ305に格納された量子化誤差を参照する。また、バンド215の誤差拡散処理において拡散元画素G、H、I、J、Mの量子化誤差を誤差バッファ309に格納し、バンド216の誤差拡散処理において誤差バッファ309に格納された拡散元画素G、H、I、J、Mの量子化誤差を参照することもできる。このように、図12に示す誤差拡散マトリクスを使用する場合、伝播誤差を参照すべき画素位置は、注目バンドの先頭行および二行目の画素位置である。注目画素が参照画素位置にある場合、誤差バッファ制御部308は、バッファ参照判定部310が出力する位置情報に基づき誤差バッファ309から量子化誤差を読み出し、位置情報と量子化誤差を乗算部306に供給する。次に、誤差バッファ制御部308は、誤差メモリ305が保持する注目画素に対する拡散元画素の量子化誤差を読み出し、拡散元画素の位置情報と量子化誤差を乗算部306に供給する。乗算部306は、位置情報に対応する図12に示す拡散マトリクスの拡散係数を量子化誤差に乗じた拡散誤差を積算部307に供給する。積算部307は、乗算部306から順次入力される拡散誤差を積算する。なお、ステップS703~S706の処理は、拡散元画素の数図12の例であれば12画素分繰り返され、拡散誤差の積算が終了すると、積算部307は積算結果を誤差加算部300に出力する。誤差加算部300は、積算部307から入力される拡散誤差の積算値と注目画素の値を加算し、加算結果を量子化部301に出力する。量子化部301は、誤差加算部300から入力される加算値を量子化する。量子化誤差算出部302は、量子化結果から誤差加算部300が出力する加算値を減算した量子化誤差を誤差メモリ305の注目画素の画素位置に対応する位置に格納する。次に、バッファ格納判定部311は、注目画素が伝播画素位置にあるか否かを判定する。上述したように、図12に示す誤差拡散マトリクスを使用し、バンド215が注目バンドの場合、ラインL1、L2上の画素が誤差を伝播すべき画素である。つまり、誤差を伝播すべき画素位置は、注目バンドの非重複領域の最終行とその上の行の画素位置である。注目画素が伝播画素位置にある場合、誤差バッファ制御部308は、量子化誤差算出部302が出力する量子化誤差を、バッファ格納判定部311が出力する位置情報に基づき誤差バッファ309に格納する。さらに、注目画素が重複処理領域にあるか否かを判定し、重複領域にあれば量子化結果を出力するか否かを判定し、量子化結果を出力する場合は出力部803を制御して量子化結果を出力させる。次に、誤差拡散処理部102は、画像入力部100が入力した画像の全画素について誤差拡散処理が終了したか否かを判定し、全画素の誤差拡散処理が終了するまでステップS701~S714の処理を繰り返す。このように、重複処理領域がある場合の参照画素位置は領域の先頭行から始まり、重複処理領域がない場合と変わらない。しかし、重複処理領域がある場合の伝播画素位置は領域の最終行で終わる形態にはならず、領域の非重複領域の最終行で終わる形態になる。この伝播画素位置は、次バンドの処理において誤差メモリ305に量子化誤差が存在しない画素位置である。従って、重複処理領域がある場合、誤差バッファ309に格納する量子化誤差は、注目バンド内の画素位置だけでは決定することができない。本実施例では、ユーザが選択したモードに応じて、レジスタ802に書き込んだ伝播画素位置と注目画素の位置から、バッファ格納判定部311において任意の位置を伝播画素位置として判定する例を示した。誤差拡散処理の連続性を維持するには、レジスタ802に設定する伝播画素位置は、領域の分割方法、誤差拡散マトリクスの形状によって決めることが望ましい。従って、これら情報をバッファ格納判定部311に与え、伝播画素位置か否かを判定する構成によっても、適切な誤差伝播が可能である。[その他の実施例]また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェアプログラムを、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステムあるいは装置のコンピュータ又はCPUやMPU等がプログラムを読み出して実行する処理である。