"注目画素及び当該注目画素と副走査方向に隣り合う画素を少なくとも含む注目画素群に含まれた複数の画素の夫々に対して量子化処理する量子化処理手段と、前記量子化処理の結果から求められる量子化誤差を、前記注目画素群の近傍に位置する画素群における複数の画素に拡散する拡散手段とを備えることを特徴とするハーフトーン処理装置。前記注目画素群に含まれた複数の画素に対する量子化処理の結果が所定のパターンに合致する時、前記複数の画素の量子化処理の結果を変更する変更手段をさらに有することを特徴とする請求項1に記載のハーフトーン処理装置。前記変更手段は、前記注目画素群に含まれた前記複数の画素の量子化処理の結果が所定のパターンに合致する時、どの画素の量子化処理の結果を変更するかをランダムに決定し、当該決定した画素の量子化処理の結果を変更することを特徴とする請求項2に記載のハーフトーン処理装置。前記変更手段は、前記注目画素が孤立点の場合にのみ、前記変更を行うことを特徴とする請求項2又は3に記載のハーフトーン処理装置。注目画素及び当該注目画素と副走査方向に隣り合う画素を少なくとも含む注目画素群に含まれた複数の画素の夫々に対して量子化処理する量子化処理ステップと、前記量子化処理の結果から求められる量子化誤差を、前記注目画素群の近傍に位置する画素群における複数の画素に拡散する拡散ステップとを含むことを特徴とするハーフトーン処理方法。請求項5に記載の方法を実行するためのプログラム。しかしながら、この特許文献1に開示された方法の場合、誤差を保存するためにより多くのバッファメモリを用意する必要が生じる。例えば、600DPI用の誤差拡散テーブルを用いる時は注目画素の存在するラインの1ライン前の誤差を保存するバッファのみで足りるが、1200DPI用の誤差拡散テーブルを用いる時は2ライン前の誤差を保存するためのバッファも必要となる。このように多くのバッファを要する結果、コスト増を招いてしまうことになる。本発明に係るハーフトーン処理装置は、注目画素及び当該注目画素と副走査方向に隣り合う画素を少なくとも含む注目画素群に含まれた複数の画素の夫々に対して量子化処理する量子化処理手段と、前記量子化処理の結果から求められる量子化誤差を、前記注目画素群の近傍に位置する画素群における複数の画素に拡散する拡散手段とを備えることを特徴とする。誤差を保存するためのバッファの増加を伴うことなく、誤差拡散の範囲を広げることができる。以下、本発明を実施するための最良の形態について図面を用いて説明する。図1は、本実施例に係る画像形成装置プリンタの構成を示すブロック図である。101は、画像読取部であり、原稿読取台不図示にセットされた原稿の画像を読み取って、画像データを出力する。102は、画像処理部であり、濃度調整処理、色変換処理、ガンマ補正処理、ハーフトーン処理等の各種画像処理を行う。なお、ここでは画像処理部102をプリンタの一構成要素として説明したが独立の装置画像処理装置としても機能し得るものである。画像処理部102の詳細については後述する。103は記憶部であり、ROM、RAM、ハードディスクHDなどから構成される。ROMには各種の制御プログラムや画像処理プログラムが格納される。RAMはCPU104がデータや各種情報を格納する参照領域や作業領域として用いられる。また、RAMやHDには印刷処理の対象となる画像データが蓄積される。104はCPUであり、ROMに格納された各種の制御プログラムや画像処理プログラムを実行して各部を統括的に制御する。105は画像出力部であり、記録紙などの記録媒体に画像を形成して出力する。106は上述の各部を繋ぐ画像形成装置の内部バスである。なお、画像形成装置は、画像データを管理するサーバ、印刷の実行を指示するパーソナルコンピュータPCなどにネットワークなどを介して接続可能である。次に画像処理部102で実行される各種画像処理について説明する。図2は、画像処理部102の内部構成を示す図である。画像処理部102は、圧縮処理部201、展開処理部202、色変換処理部203、濃度調整処理部204、ガンマ補正処理部205、ハーフトーン処理部206及び内部バス207によって構成される。圧縮処理部201は、画像読取部101で取得した画像データを記憶部103内のHDへ格納するため、例えばJPEGなどの形式に圧縮する圧縮処理を行なう。なお、圧縮処理の対象となる画像データは、CPU104によって、所定のブロック単位例えば、8×8画素のブロック単位で画像処理部102に供される。そして、圧縮処理部201で圧縮された8×8画素のブロック単位の画像データは、RAMを経由してHDに格納される。展開処理部202は、圧縮された8×8画素のブロック単位の画像データを展開処理し、ラスタ画像へ戻す処理を行なう。この際、8×8画素のブロックはラインメモリに展開される。色変換処理部203は、展開された画像データをプリンタの色空間にあわせるための色変換処理を行う。濃度調整処理部204は、出力時の印刷濃度を調整する処理を行う。ガンマ補正処理部205は、プリンタ毎に決まる画像形成時のプリンタガンマ特性のデータに基づき、画像データに対してガンマ補正を行なう。ハーフトーン処理部206は、色変換された画像データに対し誤差拡散法等を用いてハーフトーン処理を行う。ここで、ハーフトーン処理とは、原稿を読み取って得られた画像データの階調値例えば、256階調を、画像出力部105で印刷可能なN値例えば2値の画像データに変換することをいう。次に、ハーフトーン処理部206で実行される処理の詳細について説明する。図3は誤差拡散法を用いてハーフトーン処理を行う、本実施例に係るハーフトーン処理部206の内部構成を示すブロック図であり、図4はそのハーフトーン処理の流れを示すフローチャートである。本実施例に係るハーフトーン処理部206は、誤差加算部301、量子化部302、誤差拡散部303、累積誤差メモリ304で構成され、入力された256階調の画像データを2値の画像データに変換するものとする。ステップ401において、ハーフトーン処理部206は、ガンマ補正処理部205から画像データを構成する各画素のデータを、順次受け取る。ステップ402において、誤差加算部301は、入力された画素データに、横画素位置xに対応した累積誤差Exの値を加算する。受け取った画素データをI、累積誤差を加算した後の画素データをI’とすれば、式1のような関係になる。I’=IEx式1本ステップにおける累積誤差の加算処理では、注目画素群を構成する各画素には同じ累積誤差Exが加算される。図5は、入力された画素注目画素と注目画素群の関係を示す図である。図5において、左から右が主走査方向であり、上から下が副走査方向である。実線で区切られた各矩形領域が個々の注目画素群を示しており、各注目画素群内の破線で区切られた各領域が入力される各画素を示している。入力される各画素及び各注目画素群は、座標によって特定される。ここでは、注目画素群は、2画素×2画素の計4画素で構成されている。例えば、参照符合501で示される注目画素群Aの場合、座標A1,1によってその位置が特定される。そして、座標A1,1によって特定される注目画素群Aは、それぞれ座標2,2、3,2、2,3、3,3で特定される4つの画素によって構成される。誤差加算部301は、入力された画素データの座標情報から当該入力された注目画素の属する注目画素群を導出して、累積誤差Exを加算する。図6は、注目画素群A内の注目画素a,b,c,dに対して、累積誤差Exが加算される状況を示している。各注目画素a,b,c,dには、近傍の画素群B、C、D、Eで発生した誤差の平均値が加算される。例えば、上述のFloydSteinberg法における誤差拡散係数を採用したと仮定し、各画素群B、C、D、E内の各画素で生じた誤差をen○○とすると、注目画素群Aの各画素に加算される累積誤差Exは次の式2で求められる。E{eeeeeeeeeeee}4式2累積誤差メモリ304には、上記式2によって算出された累積誤差Exの値が格納されている。図7は、累積誤差メモリ304の内部構造の一例を示す図である。本実施例の場合、注目画素群は2画素×2画素の4画素からなるので、画像の横画素の数Wの半分の数W/2の記憶領域に、累積誤差Exがそれぞれ格納されることになる。例えば、画像データの横画素主走査方向の数が1000画素であったとすれば、累積誤差メモリ304に格納される累積画素は、E1~E500となる。従来、誤差を拡散する範囲を同様の範囲にまで広げようと思えば、画素位置n46、画素位置n45、画素位置n36、画素位置n35で発生した誤差のすべてを即ち、2ライン前の誤差も保持する必要があった。これに対して、本実施例の方法では、4つの画素における誤差の平均値のみを保持すればよい即ち、1ライン分で足りるので、メモリ容量を増やす必要がない。このようにして、本ステップで、注目画素群を構成する各画素には同じ累積誤差Exが加算されることになる。ステップ403において、量子化部302は、量子化処理を行う。具体的には、累積誤差が加算された画素データI’と所定の閾値Tとを比較し、出力する画素値を決定する。2値化する場合の閾値Tは、最大入力画素値と最小入力画素値の中央値入力画素値が0から255の範囲の整数値とすれば、閾値Tは、127乃至128に設定される。そして、この場合の出力画素値Vは、次の式3により決定される。V=0I’≦TのときV=255I’>Tのとき式3ステップ404において、誤差拡散部303は、累積誤差が加算された画素データI’と出力画素値Vとの差分量子化誤差Eを算出し、所定の誤差拡散係数に基づいて誤差の拡散処理を行う。そして、拡散処理によって新たに生じた誤差を基に上述の累積誤差Exを算出して、累積誤差メモリ304に格納する。ステップ405において、画像データ中のすべての画素について処理が完了したかどうかを判定し、未処理の画素がある場合はステップ401に戻ってステップ401~ステップ404の処理を繰り返す。以上説明したような、本実施例に係るハーフトーン処理によれば、メモリ容量を増やすことなく誤差拡散係数の範囲を広げることが可能となる。これにより、出力解像度が高くなってもメモリ容量の増大に伴うコスト増を招くことなく、高品位の画像を得ることができる。実施例1では、誤差格差法を用いたハーフトーン処理の場合について説明した。次に、平均濃度保存法を用いたハーフトーン処理の態様について実施例2として説明する。なお、実施例1と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。図9は、平均濃度保存法を用いてハーフトーン処理を行う、本実施例に係るハーフトーン処理部206の内部構成を示すブロック図であり、図10はそのハーフトーン処理の流れを示すフローチャートである。本実施例に係るハーフトーン処理部206は、誤差加算部901、量子化部902、誤差拡散部903、累積誤差メモリ904、量子化結果遅延メモリ、平均濃度算出部906で構成される。実施例1と同様、入力された256階調の画像データを2値の画像データに変換する場合を例に説明する。ステップ1001において、ハーフトーン処理部206は、ガンマ補正処理部205から画像データを構成する各画素のデータを、順次受け取る。ステップ1002において、誤差加算部901は、入力された画素データに、横画素位置xに対応した累積誤差Exの値を加算する。受け取った画素データをI、累積誤差を加算した後の画素データをI’とすれば、式4のような関係になる。I’=IEx式4本ステップにおける累積誤差の加算処理においても、実施例1の場合と同様、注目画素群を構成する各画素には同じ累積誤差Exが加算される。ステップ1003において、平均濃度算出部906は、量子化結果遅延メモリ905に格納された量子化結果2値化結果を取得し、予め設定された所定の係数と遅延された2値化結果とで積和演算を行い、量子化部902で使用する閾値M平均濃度を生成する。図11は、平均濃度の算出に使用する所定の係数と注目画素群との関係を示す図である。図12は、平均濃度の算出に使用する2値化結果と注目画素群との関係を示す図である。閾値Mとなる平均濃度は、式5によって求めることができる。MK34K33K32K31K25K24K23K22K21K15K144式5従来手法であれば、例えば、1ラインが4992画素だった場合には、4ライン分の2値化結果4line4992pix1bit19968bitを保持しておく必要があった。本実施例によれば、2画素×2画素の計4画素画素群Gの単位での2値化結果の保持で済むことになる。すなわち、2ラインと画素群当たり3ビット0、1、2、3、4を保持するための2値化結果2line2496pix3bit14976bitのみの保持で足りることになる。ステップ1004において、量子化部902は、累積誤差Exを加算後の画素データI’と平均濃度算出部906で生成した閾値Mとを比較し、出力する画素値を決定する。すなわち、以下の式6によって出力画素値Vが決定される。V=0I’≦MのときV=255I’>Mのとき式6ステップ1005において、誤差拡散部903は、累積誤差が加算された画素データI’と出力画素値Vとの差分量子化誤差Eを算出し、所定の誤差拡散係数に基づいて誤差の拡散処理を行う。そして、拡散処理によって新たに生じた誤差を累積誤差メモリ904に格納する。ステップ1006において、画像データ中のすべての画素について処理が完了したかどうかを判定し、未処理の画素がある場合はステップ1001に戻ってステップ1001~ステップ1005の処理を繰り返す。以上説明したように、本実施例に係る平均濃度法を用いたハーフトーン処理によっても、メモリ容量を増やすことなく誤差拡散係数の範囲を広げることが可能となる。実施例1及び2では、メモリ容量を抑えつつ誤差拡散係数や平均濃度係数の範囲を拡大し、例えば、1200DPI単位で処理をした場合に、600DPI相当の画質を得ることを可能にしている。この場合、最小孤立点は2画素×2画素となるが、プリンタの性能によっては大き過ぎる場合がある。更なる高画質を得るためには、プリンタの性能に合わせて最小孤立点の大きさを細かく制御する必要がある。そこで、最小孤立点の大きさを自由に制御する態様について実施例3として説明する。なお、実施例1及び2と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。図13は、本実施例に係るハーフトーン処理部206の内部構成を示すブロック図であり、図14はそのハーフトーン処理の流れを示すフローチャートである。本実施例に係るハーフトーン処理部206は、実施例2と同様の構成誤差加算部901、量子化部902、誤差拡散部903、累積誤差メモリ904、量子化結果遅延メモリ、平均濃度算出部906に、以下の各部が追加される。すなわち、乱数発生部1301、制御マトリクス選択部1302、論理積処理部1303、パターンマッチング部1304、セレクタ1305をさらに備える。なお、本実施例においても、実施例1及び2と同様、入力された256階調の画像データを2値の画像データに変換する場合を例に説明する。ステップ1401~ステップ1405は、実施例2のステップ1001~ステップ1005と同じである。すなわち、入力された画素データへの累積誤差Exの加算S1401及びS1402、閾値M平均濃度の生成S1403、出力画素値の決定S1404を経て、誤差拡散処理が実行されるS1405。ステップ1406において、乱数発生部1301は、擬似乱数例えば、M系列を発生させる。発生させた擬似乱数は、制御MATRIX選択部1302に送られる。ステップ1407において、制御MATRIX選択部1302は、入力された擬似乱数を使用して、一つの制御MATRIXをランダムに選択する。図15のa~dは、それぞれ制御MATRIXの一例を示しており、このように予め用意された複数の制御MATRIXの中から、擬似乱数を用いて一の制御MATRIXがランダムに選択される。選択された制御MATRIXは、論理積処理部1303に送られる。ステップ1408において、論理積処理部1303は、量子化部902の出力結果と制御MATRIX選択部1302で選択された制御MATRIXとの論理積をとる。すなわち、量子化処理の結果を変更する。例えば、選択された制御MATRIXが図15のaであり、注目画素が図16のjの位置であったとする。この場合、図15のaにおいてa1が図16のjに対応するので、このa1との論理積が算出される。すなわち、この場合は、図16におけるjの位置が白く欠けたドットになるような結果が出力される。このようにして算出された論理積の結果は、セレクタ1305へ送られる。ステップ1409において、パターンマッチング部1304は、量子化結果遅延メモリ905に格納されている注目画素の周辺の量子化結果と予め用意された所定のパターンとを比較して、注目画素が孤立点孤立したドットであるかどうかを判定する。この場合、量子化結果と所定のパターンとが合致すると、注目画素は孤立点であると判定されることになる。図17は、予め用意され保持されている所定のパターンの一例を示す図である。図17において、n,o,p,qはそれぞれ注目画素を示している。この場合において、注目画素n、o、p、qの出力値が255で、その周辺図17のs15、s16、s25、s26、s31~s36、s41~s46の量子化結果が0であると、注目画素は孤立点であると判定されることになる。注目画素が孤立点と判定された場合にはステップ1410に進み、孤立点ではないと判定された場合にはステップ1411に進む。なお、この判定の結果は孤立点信号としてセレクタ1305に送られる。ステップ1410及びステップ1411において、セレクタ1305は、パターンマッチング部1304から出力された孤立点信号に従って、出力を切り替える。具体的には、注目画素が孤立点だと判定された場合ステップ1410においては論理積の結果を出力し、注目画素が孤立点ではないと判定された場合ステップ1411においては量子化の結果をそのまま出力する。ステップ1412において、画像データ中のすべての画素について処理が完了したかどうかを判定し、未処理の画素がある場合はステップ1401に戻ってステップ1401~ステップ1411の処理を繰り返す。以上説明したように、本実施例によれば、孤立点の大きさを細かく制御することが可能となる。これにより、より高品位の画像を得ることが可能となる。実施例3では、パターンマッチングによって孤立点の制御を行う態様について説明した。実施例3の手法で様々なパターンに対応するためには、多くのパターンを保持しておく必要があり、回路規模が増大してしまうという懸念がある。そこで、パターンマッチングを用いずに、入力データから孤立点を制御する態様について実施例4として説明する。なお、実施例3と大部分が共通するので、ここでは実施例3との差異点を中心に説明することとする。図18は本実施例に係るハーフトーン処理部206の内部構成を示すブロック図である。実施例3に係る図13との違いは、パターンマッチング部1304に代えて、濃度判定部1801が存在する点である。濃度判定部1801は、注目画素が低濃度域の場合に孤立点であると判定する。本実施例におけるハーフトーン処理の流れ自体は実施例3と同じである。違いは、注目画素が孤立点かどうかを判定するステップ1409の中身である。以下、本実施例におけるステップ1409での処理について説明する。ステップ1401~ステップ1408を経て、ステップ1409において、濃度判定部1801は、予め設定された係数Lと入力画素データIとを比較して、注目画素が孤立点であるかどうかを判定する。具体的には、入力画素データIの値が係数Lより小さい場合には、孤立点孤立したドットと判定し、ステップステップ1410に進む。一方、入力画素データIの値が、係数Lと等しい又は大きい場合には、孤立点ではないと判定し、ステップ1411へ進む。ここでの処理は、していることになる。以降のステップ1410~ステップ1412の処理は、実施例3の場合と同じなので省略する。以上説明したように、本実施例によれば、回路規模を増大させることなく様々なパターンに対応することが可能となる。その他の実施例また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェアプログラムを、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ又はCPUやMPU等がプログラムを読み出して実行する処理である。"