"画像に誤差拡散処理を行う画像処理装置であって、注目画素の入力値に、前記注目画素を基準とした所定の周辺範囲内の複数の参照位置の画素の誤差値を加算して、補正入力値を算出する補正手段と、前記補正入力値を、しきい値との比較に基づき、前記入力値の階調数よりも低い階調数の出力値に変換し、階調変換によって生じた前記注目画素の誤差値を算出する変換手段と、を備え、前記補正手段は、前記周辺範囲内の前記複数の参照位置のうちの一部の参照位置が前記注目画素の主走査方向において前記画像の外側に位置する場合に、前記一部の参照位置についての誤差値として、前記画像内の特定の画素の誤差値であって、前記一部の参照位置の周辺に位置する前記特定の画素の誤差値を用いた代替値を、前記注目画素の入力値に加算することを特徴とする画像処理装置。請求項1に記載の画像処理装置であって、前記補正手段は、前記一部の参照位置についての誤差値として、前記一部の参照位置とともに前記周辺範囲に含まれ得る画素の誤差値を用いた代替値を、前記注目画素の入力値に加算することを特徴とする画像処理装置。請求項1又は請求項2に記載の画像処理装置であって、前記補正手段は、前記周辺範囲内の前記複数の参照位置の画素の誤差値を、各参照位置に応じた重みを用いて前記注目画素の入力値に加算して、前記補正入力値を算出し、前記一部の参照位置についての誤差値として、前記一部の参照位置から最も近くに位置する前記画像内の画素を基準とした前記周辺範囲に含まれる画素の誤差値のうち、前記重みが最も大きい参照位置の画素の誤差値を少なくとも用いた代替値を、前記注目画素の入力値に加算することを特徴とする画像処理装置。請求項1から請求項3までのいずれか1項に記載の画像処理装置であって、前記変換手段は、前記注目画素の誤差値を算出して誤差バッファに登録し、前記誤差バッファは、前記画像を構成する画素の誤差値が登録される第1の領域と、前記画像よりも外側において前記周辺範囲に含まれ得る領域を構成する仮想画素の誤差値として前記代替値が登録される第2の領域とを含むことを特徴とする画像処理装置。請求項4に記載の画像処理装置であって、前記誤差拡散処理は、前記画像の1ライン分ずつ順に行われ、前記補正手段は、1ライン分の誤差拡散処理が終了すると、次に誤差拡散処理を行うラインの第2の領域に前記代替値を登録することを特徴とする画像処理装置。画像に誤差拡散処理を行う画像処理装置としてコンピュータを機能させるための画像処理プログラムであって、注目画素の入力値に、前記注目画素を基準とした所定の周辺範囲内の複数の参照位置の画素の誤差値を加算して、補正入力値を算出する補正手段、及び、前記補正入力値を、しきい値との比較に基づき、前記入力値の階調数よりも低い階調数の出力値に変換し、階調変換によって生じた前記注目画素の誤差値を算出する変換手段としてコンピュータを機能させ、前記補正手段は、前記周辺範囲内の前記複数の参照位置のうちの一部の参照位置が前記注目画素の主走査方向において前記画像の外側に位置する場合に、前記一部の参照位置についての誤差値として、前記画像内の特定の画素の誤差値であって、前記一部の参照位置の周辺に位置する前記特定の画素の誤差値を用いた代替値を、前記注目画素の入力値に加算することを特徴とする画像処理プログラム。しかしながら、特許文献1に記載の技術では、画像の主走査方向両端部における画質については全く考慮されていない。本発明は、こうした問題にかんがみてなされたものであり、画像の主走査方向両端部における画質の低下を抑制する技術を提供することを目的としている。本明細書は上記目的を達成する構成を開示する。第1の構成は、画像に誤差拡散処理を行う画像処理装置であって、注目画素の入力値に、前記注目画素を基準とした所定の周辺範囲内の複数の参照位置の画素の誤差値を加算して、補正入力値を算出する補正手段と、前記補正入力値を、しきい値との比較に基づき、前記入力値の階調数よりも低い階調数の出力値に変換し、階調変換によって生じた前記注目画素の誤差値を算出する変換手段と、を備え、前記補正手段は、前記周辺範囲内の前記複数の参照位置のうちの一部の参照位置が前記注目画素の主走査方向において前記画像の外側に位置する場合に、前記一部の参照位置についての誤差値として、前記画像内の特定の画素の誤差値であって、前記一部の参照位置の周辺に位置する前記特定の画素の誤差値を用いた代替値を、前記注目画素の入力値に加算することを特徴とする。このような画像処理装置によれば、画像の主走査方向両端部における画質の低下を抑制することができる。すなわち、誤差拡散処理においては、注目画素が画像の主走査方向における最端部まで走査されるため、注目画素を基準とした周辺範囲が画像の外側にはみ出し、周辺範囲内の一部の参照位置が注目画素の主走査方向において画像の外側に位置する場合がある。この場合にも、注目画素の主走査方向において画像の外側に位置する参照位置の誤差値として、画像内の画素のうち、その参照位置の周辺に位置する特定の画素の誤差値を用いた代替値が、注目画素の入力値に加算される。したがって、参照位置が注目画素の主走査方向において画像の外側に位置する場合にも、注目画素の入力値に対して加算される誤差値を、画像内の画素の誤差値に基づく適切な値に近づけることができる。その結果、画像の主走査方向両端部における画質の低下を抑制することができる。なお、画素の誤差値を用いた代替値には、画素の誤差値そのものの他、画素の誤差値に乱数を加算した値や、1つ以上の画素の誤差値を用いた算術演算で得られる値例えば複数の画素の誤差値の平均値なども含まれる。また、注目画素の主走査方向において画像の外側に位置するすべての参照位置について代替値を用いることに限定されるものではなく、代替値を用いない参照位置が含まれていても同様の効果が得られる。また、第2の構成は、第1の構成の画像処理装置であって、前記補正手段は、前記一部の参照位置についての誤差値として、前記一部の参照位置とともに前記周辺範囲に含まれ得る画素の誤差値を用いた代替値を、前記注目画素の入力値に加算することを特徴とする。このような画像処理装置によれば、注目画素の主走査方向において画像の外側に位置する参照位置と関連性の高い誤差値を用いた代替値を得ることができる。また、第3の構成は、第1又は第2の構成の画像処理装置であって、前記補正手段は、前記周辺範囲内の前記複数の参照位置の画素の誤差値を、各参照位置に応じた重みを用いて前記注目画素の入力値に加算して、前記補正入力値を算出し、前記一部の参照位置についての誤差値として、前記一部の参照位置から最も近くに位置する前記画像内の画素を基準とした前記周辺範囲に含まれる画素の誤差値のうち、前記重みが最も大きい参照位置の画素の誤差値を少なくとも用いた代替値を、前記注目画素の入力値に加算することを特徴とする。このような画像処理装置によれば、注目画素の主走査方向において画像の外側に位置する参照位置と最も関連性の高い誤差値を用いた代替値を得ることができる。なお、第1又は第2の構成の画像処理装置であって、前記補正手段は、前記周辺範囲内の前記複数の参照位置の画素の誤差値を、各参照位置に応じた重みを用いて前記注目画素の入力値に加算して、前記補正入力値を算出し、前記一部の参照位置についての誤差値として、前記一部の参照位置とともに周辺範囲に含まれ得る画素の誤差値のうち、その周辺範囲における重みが最も大きい参照位置の画素の誤差値を少なくとも用いた代替値を、前記注目画素の入力値に加算することを特徴とする構成としてもよい。また、第4の構成は、第1~第3の構成のいずれか1つの画像処理装置であって、前記変換手段は、前記注目画素の誤差値を算出して誤差バッファに登録し、前記誤差バッファは、前記画像を構成する画素の誤差値が登録される第1の領域と、前記画像よりも外側において前記周辺範囲に含まれ得る領域を構成する仮想画素の誤差値として前記代替値が登録される第2の領域とを含むことを特徴とする。このような画像処理装置によれば、誤差バッファを、画像よりも外側において周辺範囲に含まれ得る領域まで拡張しているため、画像の主走査方向両端部の画素を、それ以外の画素と同様に処理することができる。したがって、画像の主走査方向両端部の画素を、それ以外の画素と区別して処理する場合に比べて、処理を速くすることができる。また、第5の構成は、第4の構成の画像処理装置であって、前記誤差拡散処理は、前記画像の1ライン分ずつ順に行われ、前記補正手段は、1ライン分の誤差拡散処理が終了すると、次に誤差拡散処理を行うラインの第2の領域に前記代替値を登録することを特徴とする。このような画像処理装置によれば、誤差拡散処理が1ライン分終了した段階で代替値を登録するようにしているため、1ライン分よりも細かな単位例えば1画素単位で代替値を登録する場合と比較して、処理を単純化することができる。また、第6の構成は、画像に誤差拡散処理を行う画像処理装置としてコンピュータを機能させるための画像処理プログラムであって、注目画素の入力値に、前記注目画素を基準とした所定の周辺範囲内の複数の参照位置の画素の誤差値を加算して、補正入力値を算出する補正手段、及び、前記補正入力値を、しきい値との比較に基づき、前記入力値の階調数よりも低い階調数の出力値に変換し、階調変換によって生じた前記注目画素の誤差値を算出する変換手段としてコンピュータを機能させ、前記補正手段は、前記周辺範囲内の前記複数の参照位置のうちの一部の参照位置が前記注目画素の主走査方向において前記画像の外側に位置する場合に、前記一部の参照位置についての誤差値として、前記画像内の特定の画素の誤差値であって、前記一部の参照位置の周辺に位置する前記特定の画素の誤差値を用いた代替値を、前記注目画素の入力値に加算することを特徴とする。このような画像処理プログラムによれば、第1の構成の画像処理装置としてコンピュータを機能させることができ、これにより前述した効果を得ることができる。以下、本発明が適用された実施形態について、図面を用いて説明する。[1.全体構成]図1は、実施形態の印刷システムの概略構成を表すブロック図である。この印刷システムは、パーソナルコンピュータ1とプリンタ2とがデータ通信可能に構成されたものである。パーソナルコンピュータ1は、汎用の情報処理装置であり、制御部11、記憶部12、通信部13、操作部14及び表示部15を備えている。制御部11は、パーソナルコンピュータ1の各部を統括制御するものであり、CPU111、ROM112及びRAM113を備えている。記憶部12は、記憶データの書換えが可能な不揮発性の記憶装置であり、本実施形態ではハードディスク装置が用いられている。そして、記憶部12には、オペレーティングシステムOS121、グラフィックツール等のアプリケーションプログラム122、パーソナルコンピュータ1からプリンタ2を利用可能とするためのソフトウェアプログラムであるプリンタドライバ123などがインストールされている。通信部13は、プリンタ2との間でデータ通信を行うためのインタフェースである。操作部14は、ユーザからの外部操作による指令を入力するための入力装置であり、本実施形態ではキーボードやポインティングデバイスマウスやタッチパッド等が用いられている。表示部15は、各種情報をユーザが視認可能な画像として表示するための出力装置であり、本実施形態では液晶ディスプレイが用いられている。一方、プリンタ2は、インクジェット方式の印刷装置であり、制御部21、記憶部22、通信部23、操作部24、表示部25及び印刷実行部26を備えている。制御部21は、プリンタ2の各部を統括制御するものであり、CPU211、ROM212及びRAM213を備えている。記憶部22は、記憶データの書換えが可能な不揮発性の記憶装置であり、本実施形態ではフラッシュメモリが用いられている。通信部23は、パーソナルコンピュータ1との間でデータ通信を行うためのインタフェースである。操作部24は、ユーザからの外部操作による指令を入力するための入力装置であり、各種操作ボタンを備えている。表示部25は、各種情報をユーザが視認可能な画像として表示するための出力装置であり、小型の液晶ディスプレイが用いられている。印刷実行部26は、記録媒体としての用紙の搬送方向と直交する方向へ往復移動可能な印刷ヘッド27を備え、印刷ヘッド27の往復動作中に、画像を構成する各画素が二値ドットのオン/オフで表現された印刷データに基づいてインク滴を吐出することで、用紙に画像を印刷する。[2.処理の概要]次に、本実施形態の印刷システムで実行される処理の概要について説明する。パーソナルコンピュータ1では、実行中のアプリケーションプログラム122において印刷開始操作が行われることによりプリンタドライバ123が起動する。プリンタドライバ123が起動すると、パーソナルコンピュータ1の制御部11は、印刷対象の画像を表す256階調0~255のいわゆる8ビットレンジのRGB値で表現された画像データを、256階調のCMYK値で表現された画像データに変換する色変換処理を行う。さらに、色変換処理後の画像データを、二値のCMYK値で表現された画像データ印刷データに変換する誤差拡散処理を行い、印刷データをプリンタ2に供給する。その結果、プリンタ2は、パーソナルコンピュータ1から供給された印刷データの表す画像を印刷実行部26で印刷する。図2aはパーソナルコンピュータ1で実行される誤差拡散処理の処理ブロック図、図2bは誤差拡散処理で使用される誤差マトリクスを示す図、図2cは誤差拡散処理で使用される誤差バッファを示す図である。誤差拡散処理では、処理対象の画像を構成する画素のうちの1つが、注目画素処理対象の画素として順に選択される。注目画素は、画像の左上隅の画素を起点として主走査方向横方向に順にシフトし、画像の端部に到達すると、次の行副走査方向に1画素分シフトした行の端部から主走査方向に順にシフトする。この繰り返しにより、画像を構成するすべての画素が注目画素として選択される。なお、本実施形態では、主走査方向において注目画素がシフトする方向が行ごとに反転する双方向処理を採用している。そして、誤差拡散処理では、注目画素の周辺に存在する処理済みの画素の誤差値が、注目画素の階調値入力値に加算されることにより、補正入力値が算出され、補正入力値としきい値との比較に基づき、二値化後の出力値ドットの有無が決定される。また、補正入力値から出力値への階調変換二値化によって生じた誤差値が、未処理の周辺画素に分配されるように誤差バッファに登録される。補正入力値は、誤差マトリクスに従い、注目画素を基準とした複数の参照位置の画素の誤差値が、注目画素に対する相対位置に応じた重み付けで、その注目画素の入力値に加算されることにより算出される。本実施形態では、前述したように双方向処理を採用しているため、図2bに示す2種類の誤差マトリクス第1の誤差マトリクス及び第2の誤差マトリクスが行ごとに交互に使用される。本実施形態で使用される誤差マトリクスは、注目画素◎印で示す画素の周辺の12個の参照位置周辺画素について、注目画素に誤差値を加算する際の重み付け係数この例では1,3,5,7の数値が規定されたものである。これらの誤差マトリクスに従い、誤差バッファに登録されている周辺画素の誤差値を、各周辺画素の重み付け係数に応じた比率で注目画素の入力値に加算することで、補正入力値が算出される。誤差バッファは、図2cに示すように、処理済みの画素画像を構成する画素の誤差値が登録される処理領域行0以降でかつ列c~hの白色部分と、誤差マトリクスが処理領域からはみ出ることにより参照位置となる画素の誤差値が登録される拡張領域行-2,-1でかつ列c~hと、列a,b,i,jの灰色部分とからなる。したがって、誤差マトリクスの列数がM個本実施形態では5個である場合、拡張領域の列数はM-1個誤差マトリクスの列数から注目画素が位置する列数である1を差し引いた数であり、本実施形態では4個となる。また、本実施形態では、処理領域の行数は、画像に含まれる全ラスタ分の行数と一致する。すなわち、処理領域には、画像に含まれる全画素の誤差値が登録可能となっている。なお、別の実施形態では、誤差バッファは、3行分の記憶領域処理領域及び拡張領域であってもよい。すなわち、誤差バッファと同じ行数分の記憶領域であってもよい。この場合には、3行分の記憶領域が、行ごとに入れ替えて使用される。つまり、図2cに示す行0の画素c0~h0を処理する際には、行-2画素a-2~j-2,行-1画素a-1~j-1,行0画素a0~j0の3ライン分として使用され、行1の画素c1~h1を処理する際には、行-2の画素の誤差値は参照されないため、行-2のために使用されていた記憶領域が、行1画素a1~j1のために使用される。ところで、誤差拡散処理の開始直後においては、注目画素が画像の上端部に位置することにより、画像上方の拡張領域図2cでいう行-2,-1が参照位置となるため、処理済みの画素の誤差値がほとんど反映されない。その結果、画像の上端部において、ドット遅れや、ドットが過大に出力される現象が発生しやすいという問題がある。ただし、この現象は、画像上方の拡張領域の画素の誤差値を、あらかじめ何らかの値例えば0を基準とした振り幅を持つ乱数で初期化するといった対策をとることである程度抑制される。一方、注目画素が画像の左右両端部主走査方向両端部に位置する場合にも、画像の左右方向の拡張領域図2cでいう行0以降の列a,b,i,jが参照位置となるため、画像の左右両端部においても同様の現象ドット遅れ等が発生する。しかしながら、この現象については、画像の左右方向の拡張領域の画素主走査方向において画像の外側に位置する画素の誤差値を乱数等で初期化しても、抑制効果が少ないという問題があった。図3aは、画像の上方及び左右方向の拡張領域の画素の誤差値を乱数で初期化する誤差拡散処理により一様のベタパターンの画像を処理した結果である。また、図3bは、誤差拡散処理後の画像におけるドット数を副走査方向に沿った列ごとに集計したグラフである。図3bにおいて、画像の上方の拡張領域のみ画素の誤差値を初期化し、画像の左右方向の拡張領域については画素の誤差値を初期化しない場合の結果が実線で示されており、画像の上方及び左右方向の拡張領域の画素の誤差値を初期化した場合の結果が破線で示されている。これらの図から明らかなように、画像の左右方向の拡張領域の画素の誤差値を初期化しない場合及び初期化した場合のいずれにおいても、画像の左右両端部においてドットが少なくなる現象が発生しており、初期化による抑制効果がほとんど見られない。そこで、本実施形態では、画像の左右方向の拡張領域の画素の誤差値として、画像内の処理済みの画素の誤差値を登録することで、画像の左右両端部におけるドット遅れなどの現象を抑制する。[3.具体的処理手順]次に、パーソナルコンピュータ1の制御部11具体的にはCPU111が、プリンタドライバ123の機能として実行する処理誤差拡散フローについて、図4のフローチャートを用いて説明する。制御部11は、まずS11で、誤差拡散処理の対象となる画像データのすべてのラスタについて、後述するS12~S14の処理を行ったか否かを判定する。このS11で、未処理のラスタが存在すると判定した場合には、未処理のラスタのうち、画像における位置が最も上方のラスタを処理対象として選択した後、S12へ移行する。S12で、制御部11は、処理対象のラスタに属するすべての画素について、後述するS13の処理を行ったか否かを判定する。このS12で、未処理の画素が存在すると判定した場合には、前述した双方向処理の順序図2cでいうc0,d0,...,g0,h0,h1,g1,...,d1,c1,c2,d2,...といった順序に基づき、未処理の画素のうちの1つを注目画素として選択した後、S13へ移行する。S13で、制御部11は、注目画素のドットの形成態様ドットの有無を決定するための誤差拡散処理を行う。この誤差拡散処理の詳細について、図5のフローチャートを用いて説明する。制御部11は、誤差拡散処理を開始すると、まずS21で、誤差マトリクスを用いて誤差バッファから周辺画素の誤差値を収集し、収集した誤差値を注目画素の入力値に加算して、補正入力値を算出する。具体的には、各周辺画素について誤差バッファに登録されている誤差値と、その周辺画素について設定されている重み付け係数とを乗算し、すべての周辺画素についての算出値の総和を重み付け係数の総和で除算した値を収集誤差値として、入力値に加算する。続いて、制御部11は、S22で、補正入力値が、あらかじめ設定されているしきい値本実施形態では128よりも大きいか否かを判定する。このS22で、補正入力値がしきい値よりも大きいと判定した場合には、S23へ移行し、注目画素の出力ドットをドットありに決定した後、S25へ移行する。一方、S22で、補正入力値がしきい値以下であると判定した場合には、S24へ移行し、注目画素の出力ドットをドットなしに決定した後、S25へ移行する。続いて、制御部11は、S25で、注目画素の出力ドットを相対値に変換する。相対値とは、出力ドットを入力値のレンジに換算した値であり、相対値表図2aにあらかじめ登録されている。本実施形態では、ドットありの相対値が255に設定されており、ドット無しの相対値が0に設定されている。続いて、制御部11は、S26で、補正入力値から相対値を減算した値を、注目画素の誤差値として誤差バッファに登録する。これにより、図4のS13の誤差拡散処理を終了し、S12へ戻る。一方、制御部11は、S12で、処理対象のラスタに属するすべての画素についてS13の処理を行った未処理の画素が存在しないと判定した場合には、S14へ移行する。そして、S14で、誤差バッファにおいて処理領域に登録されている特定の画素の誤差値を、画像の左右方向の拡張領域の画素の誤差値として登録する処理を行う。具体的には、画像の左右方向の拡張領域の画素のうち、次に処理対象となるラスタと同じ行に位置する画素の誤差値として、その画素に隣接する最も近くに位置する画像内の画素を注目画素とした場合に重み付け係数の最も大きい処理済みの周辺画素の誤差値を登録する。ここで、S14の処理の具体例について説明する。図2cに示す画素c0から画素h0まで誤差拡散処理S13を行った後のS14の処理では、画像の左方向の拡張領域の画素a1,b1の誤差値として、画素c0の誤差値をコピーする。つまり、画像内の画素のうち、画素a1,b1に隣接する画素c1を注目画素とした場合に、重み付け係数の最も大きい周辺画素である画素c0の誤差値が、画素a1,b1の誤差値として登録される。なお、画素c1を処理する際に使用される誤差マトリクスは第2の誤差マトリクス図2bであり、重み付け係数が最も大きいのは画素c0,d1であるが、画素d1は未処理であるため、画素c0の誤差値が用いられる。同様に、画像の右方向の拡張領域の画素i1,j1の誤差値として、画素h0の誤差値をコピーする。つまり、画像内の画素のうち、画素i1,j1に隣接する画素h1を注目画素とした場合に、重み付け係数の最も大きい周辺画素である画素h0の誤差値が、画素i1,j1の誤差値として登録される。なお、画素h1を処理する際に使用される誤差マトリクスも第2の誤差マトリクスであり、重み付け係数が最も大きいのは画素h0,i1であるが、画素i1は処理されないため、画素h0の誤差値が用いられる。以降のラスタも同様に処理される。すなわち、画素h1から画素c1まで誤差拡散処理S13を行った後のS14の処理では、画素a2,b2の誤差値として画素c1の誤差値をコピーし、画素i2,j2の誤差値として画素h1の誤差値をコピーする。また、画素c2から画素h2まで誤差拡散処理S13を行った後のS14の処理では、画素a3,b3の誤差値として画素c2の誤差値をコピーし、画素i3,j3の誤差値として画素h2の誤差値をコピーする。また、画素h3から画素c3まで誤差拡散処理S13を行った後のS14の処理では、画素a4,b4の誤差値として画素c3の誤差値をコピーし、画素i4,j4の誤差値として画素h3の誤差値をコピーする。なお、画素a0,b0,i0,j0については処理済みの誤差値がコピーされない例えば乱数で初期化されたままの状態となるが、全体から見れば僅かな領域であるため大きな影響はない。このようなS14の処理の後、図4のS11へ戻る。そして、制御部11は、S11で、処理対象の画像データのすべてのラスタについてS12以降の処理を行った未処理のラスタが存在しないと判定した場合に、図4の処理を終了する。[4.効果]以上説明したように、本実施形態によれば、注目画素を基準とする参照位置が画像の左右方向の拡張領域に位置する場合に、その参照位置の画素の誤差値として、その参照位置から最も近くに位置する画像内の画素を注目画素とした場合に誤差マトリクスに含まれる画素のうち、重み付け係数が最も大きい参照位置の画素の誤差値を、注目画素の入力値に加算する。したがって、参照位置が画像の左右方向の拡張領域に位置する場合にも、その参照位置と最も関連性の高い誤差値が加算されるため、画像内の画素の誤差値に基づく適切な値に近づけることができる。その結果、画像の左右端部における画質の低下を抑制することができる。図6aは、本実施形態の誤差拡散処理で一様のベタパターンの画像を処理した結果である。また、図6bは、誤差拡散処理後の画像におけるドット数を副走査方向に沿った列ごとに集計したグラフである。図6bにおいて、画像の上方の拡張領域のみ画素の誤差値を初期化し、画像の左右方向の拡張領域については画素の誤差値を初期化しない場合の結果が実線で示されており、本実施形態の誤差拡散処理の結果が破線で示されている。これらの図から明らかなように、本実施形態の誤差拡散処理によれば、画像の左右両端部においてドットが極端に少なくなる現象を大幅に改善することができる。また、本実施形態の誤差拡散処理では、誤差バッファが、画像よりも外側において誤差マトリクスに含まれ得る領域まで拡張されており、画像の左右端部の画素を、それ以外の画素と同様に処理することができるため、処理を速くすることができる。また、誤差拡散処理が1ライン分終了するごとに、画像の左右方向の拡張領域の画素のうち、次に処理対象となるラスタの画素の誤差値を登録するようにしているため、1ライン分よりも細かな単位例えば1画素単位で誤差値を登録する場合と比較して、処理を単純化することができる。なお、パーソナルコンピュータ1が画像処理装置に相当し、プリンタドライバ123が画像処理プログラムに相当する。また、S21の処理が補正手段としての処理に相当し、S14,S22~S26の処理が変換手段としての処理に相当する。[5.他の実施形態]以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されることなく、種々の形態を採り得ることは言うまでもない。1上記実施形態では、誤差バッファにおいて、誤差マトリクスが処理領域からはみ出ることにより参照位置となる拡張領域に誤差値を登録するようにしているが、これに代えて、拡張領域を用意することなく、参照位置が画像の外側に位置する場合には特定の画素の誤差値を読み込むようにしてもよい。図2cの画素c2の処理を例にとって説明する。画素c2を処理する際に使用される誤差マトリクスは第1の誤差マトリクス図2bであるが、注目画素c2の左側の周辺画素画素a0,b0,a1,b1,a2,b2の誤差値は存在しない。そこで、画素a0,b0の誤差値の代替値として画素c-1の誤差値を使用し、画素a1,b1の誤差値の代替値として画素c0の誤差値を使用し、画素a2,b2の誤差値の代替値として画素c1の誤差値を使用するようにしてもよい。このようにすれば、拡張領域を用意することなく、上記実施形態と同様の効果を得ることができる。2上記実施形態では、誤差バッファにおける画像の左右方向の拡張領域の画素の誤差値として、画像内の左右最端列図2cでいう列c及び列hの画素の誤差値を登録するようにしているが、左右最端列よりも内側の列d及び列gの画素も拡張領域の誤差値の影響を受けるため、列d及び列gの画素の誤差値についても拡張領域の画素の誤差値として登録するようにしてもよい。この処理の具体例について説明する。図2cに示す画素c0から画素h0まで誤差拡散処理S13を行った後のS14の処理で、画素a1の誤差値として画素c0の誤差値をコピーし、画素b1の誤差値として画素d0の誤差値をコピーする。つまり、画像内の画素のうち、画素a1,b1に隣接する画素c1を注目画素とした場合に、第2の誤差マトリクス図2bにおいて重み付け係数の大きい処理済みの周辺画素である画素c0,d0の誤差値が、画素a1,b1の誤差値として登録される。このように、画素a1,b1の誤差値として2つの画素c0,d0の誤差値を利用することで、画素c0を画素a1,b1の両方に利用する場合に比べて、誤差値が平滑化されてしまうことを防ぐことができる。同様に、画素i1の誤差値として画素g0の誤差値をコピーし、画素j1の誤差値として画素h0の誤差値をコピーする。つまり、画像内の画素のうち、画素i1,j1に隣接する画素h1を注目画素とした場合に、第2の誤差マトリクスにおいて重み付け係数の大きい処理済みの周辺画素である画素g0,h0の誤差値が、画素i1,j1の誤差値として登録される。以降のラスタも同様に処理される。すなわち、画素h1から画素c1まで誤差拡散処理S13を行った後のS14の処理では、画素a2,b2の誤差値として画素c1,d1の誤差値をコピーし、画素i2,j2の誤差値として画素g1,h1の誤差値をコピーする。また、画素c2から画素h2まで誤差拡散処理S13を行った後のS14の処理では、画素a3,b3の誤差値として画素c2,d2の誤差値をコピーし、画素i3,j3の誤差値として画素g2,h2の誤差値をコピーする。また、画素h3から画素c3まで誤差拡散処理S13を行った後のS14の処理では、画素a4,b4の誤差値として画素c3,d3の誤差値をコピーし、画素i4,j4の誤差値として画素g3,h3の誤差値をコピーする。なお、画素a1の誤差値として画素c0の誤差値をコピーし、画素b1の誤差値として画素d0の誤差値をコピーするといった対応関係はあくまでも一例であり、例えばこれとは逆に、画素a1の誤差値として画素d0の誤差値をコピーし、画素b1の誤差値として画素c0の誤差値をコピーするようにしてもよい。3上記実施形態では、誤差バッファにおける画像の左右方向の拡張領域の画素の誤差値として、画像内の処理済みの画素の誤差値をそのまま登録するようにしているが、これに限定されるものではない。例えば、処理済みの画素の誤差値に乱数を加算して登録してもよい。このようにすれば、注目画素の入力値に加算される誤差値として同じ値が複数発生しにくくすることができる。なお、乱数の加算により本来の誤差値を逸脱しないように元々の誤差値が無意味とならないように、例えば0を基準とした振り幅を持つ乱数を加算する乱数の平均値を0にすることや、乱数の振り幅をその誤差値の絶対値よりも小さくする例えば誤差値が100であれば振り幅を20程度にすることが好ましい。また、画素の誤差値に乱数を加算した値に代えて、1つ以上の画素の誤差値を用いた算術演算で得られる値としてもよい。例えば、画素a1,b1の誤差値として、画素c0,d0の誤差値の平均値をコピーするといったように、複数の処理済みの画素の誤差値の平均値を、誤差バッファにおける画像の左右方向の拡張領域の画素の誤差値として登録するようにしてもよい。4上記実施形態では、画像の左右方向の拡張領域の画素の誤差値として、その画素の位置から最も近い画像内の画素を基準にして、その画素を注目画素とした場合に誤差マトリクスに含まれる特定の画素の誤差値を登録するようにしているが、これに限定されるものではなく、拡張領域の画素から最も近い画素以外の特定の画素を基準にしてもよい。例えば、画素a1,b1の誤差値として、画素c1を注目画素基準とした場合を例に説明したが、画素c1と隣接する画素d1を注目画素基準としてもよい。すなわち、拡張領域内の画素に登録する誤差値は、該画素の周辺に位置する処理領域内の画素であって、誤差拡散処理済みの画素の誤差値を用いるとよい。5上記実施形態では、2階調を表現可能なプリンタ2を例示したが、これに限定されるものではなく、3階調以上を表現可能なプリンタであってもよい。この場合、誤差拡散処理では、プリンタで表現可能な3階調以上のCMYK値で表現された画像データ印刷データを生成する。6上記実施形態では、誤差拡散処理がパーソナルコンピュータ1側で実行される構成を例示したが、これに限定されるものではなく、例えばプリンタ2側で実行されるように構成することも可能である。"