(57)【要約】【課題】  Ｎ値画像データをＭ値画像データ（Ｎ＞Ｍ）に変換するに際し、ドットパターンの不連続性に起因するスジ状の画質劣化を防止する。【解決手段】  バンド領域３１０内の処理対象画素３４０の周辺の画素の量子化誤差と、当該周辺の画素に対して個別に設定された誤差拡散係数との積の和を、処理対象画素３４０の画素値に加算して誤差拡散処理を行う。このとき、バンド領域３１０の左下もしくは右上へ向かって斜め４５度方向に画素を走査し、バンド領域３１０の端部で走査方向を反対方向へ折り返して画素を走査して処理対象画素３４０を順番に選択する。そして、バンド領域３１０の走査方向とは逆方向へ伝搬させる量子化誤差に乗ぜられる拡散係数の和を、バンド領域３１０の走査方向と同じ方向へ伝搬する量子化誤差に乗ぜられる拡散係数の和よりも小さくする。【選択図】  図４
2012090154.tif 000002
【特許請求の範囲】
【請求項１】
画像を複数のバンド領域に分割して、前記バンド領域ごとに、画素を走査して、Ｎ値画像データを誤差拡散処理によりＭ値画像（Ｎ＞Ｍ，Ｎ、Ｍは正の整数）に変換する画像処理方法であって、
第１の走査方向と、前記第１の走査方向とは逆方向となる第２の走査方向とのそれぞれについて、処理対象画素の周辺の画素に対する誤差拡散係数を設定する設定工程と、
前記処理対象画素の周辺の画素の量子化誤差と、当該処理対象画素の走査方向について当該周辺の画素に対して設定された誤差拡散係数との積の和を、当該処理対象画素の画素値に加算する加算工程と、
を含み、
前記バンド領域における画素の処理順序の方向とは逆の方向へ伝搬させる量子化誤差へ乗ぜられる誤差拡散係数の和を、前記バンド領域における画素の処理順序の方向と同じ方向へ伝搬させる量子化誤差へ乗ぜられる拡散係数の和よりも小さくなるようにしたことを特徴とする画像処理方法。
【請求項２】
前記第１の走査方向は、前記バンド領域の分割方向に対して斜め方向であることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記第１の走査方向は、前記バンド領域の分割方向に対して斜め４５度の方向であることを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記バンド領域における座標が（x，y）である画素における量子化誤差を、（２×Ｈ）個（Ｈは前記バンド領域のｙ軸方向の画素数）の量子化誤差を格納することが可能な容量のメモリに格納する格納工程を更に有することを特徴とする請求項１〜３の何れか１項に記載の画像処理方法。
【請求項５】
前記処理対象画素に対し誤差拡散処理を行うために前記メモリから量子化誤差を読み出す読み出し工程を更に有し、
前記メモリは２バンク構成であり、
前記格納工程は、前記バンド領域における座標が（x，y）である画素における量子化誤差を、前記（x＋y）の値が偶数であるときには、一方のバンクに格納し、（x＋y）の値が奇数であるときには、他方のバンクに格納し、
前記読み出し工程は、前記バンド領域における処理対象画素の周囲の画素の量子化誤差を、当該周囲の画素の座標に応じて、前記一方のバンク、又は、前記他方のバンクから読み出すことを特徴とする請求項４に記載の画像処理方法。
【請求項６】
画像を複数のバンド領域に分割して、前記バンド領域ごとに、画素を走査して、Ｎ値画像データを誤差拡散処理によりＭ値画像（Ｎ＞Ｍ，Ｎ、Ｍは正の整数）に変換する画像処理装置であって、
第１の走査方向と、前記第１の走査方向とは逆方向となる第２の走査方向とのそれぞれについて、処理対象画素の周辺の画素に対する誤差拡散係数を設定する設定手段と、
前記処理対象画素の周辺の画素の量子化誤差と、当該処理対象画素の走査方向について当該周辺の画素に対して設定された誤差拡散係数との積の和を、当該処理対象画素の画素値に加算する加算手段と、
を含み、
前記バンド領域における画素の処理順序の方向とは逆の方向へ伝搬させる量子化誤差へ乗ぜられる誤差拡散係数の和を、前記バンド領域における画素の処理順序の方向と同じ方向へ伝搬させる量子化誤差へ乗ぜられる拡散係数の和よりも小さくなるようにしたことを特徴とする画像処理装置。
【請求項７】
前記第１の走査方向は、前記バンド領域の分割方向に対して斜め方向であることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記第１の走査方向は、前記バンド領域の分割方向に対して斜め４５度の方向であることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記バンド領域における座標が（x，y）である画素における量子化誤差を、（２×Ｈ）個（Ｈは前記バンド領域のｙ軸方向の画素数）の量子化誤差を格納することが可能な容量のメモリに格納する格納手段を更に有することを特徴とする請求項６〜８の何れか１項に記載の画像処理装置。
【請求項１０】
前記処理対象画素に対し誤差拡散処理を行うために前記メモリから量子化誤差を読み出す読み出し手段を更に有し、
前記メモリは２バンク構成であり、
前記格納手段は、前記バンド領域における座標が（x，y）である画素における量子化誤差を、前記（x＋y）の値が偶数であるときには、一方のバンクに格納し、（x＋y）の値が奇数であるときには、他方のバンクに格納し、
前記読み出し手段は、前記バンド領域における処理対象画素の周囲の画素の量子化誤差を、当該周囲の画素の座標に応じて、前記一方のバンク、又は、前記他方のバンクから読み出すことを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
画像を複数のバンド領域に分割して、前記バンド領域ごとに、画素を走査して、Ｎ値画像データを誤差拡散処理によりＭ値画像（Ｎ＞Ｍ，Ｎ、Ｍは正の整数）に変換することをコンピュータに実行させるためのコンピュータプログラムであって、
第１の走査方向と、前記第１の走査方向とは逆方向となる第２の走査方向とのそれぞれについて、処理対象画素の周辺の画素に対する誤差拡散係数を設定する設定工程と、
前記処理対象画素の周辺の画素の量子化誤差と、当該処理対象画素の走査方向について当該周辺の画素に対して設定された誤差拡散係数との積の和を、当該処理対象画素の画素値に加算する加算工程と、
をコンピュータに実行させ、
前記バンド領域における画素の処理順序の方向とは逆の方向へ伝搬させる量子化誤差へ乗ぜられる誤差拡散係数の和を、前記バンド領域における画素の処理順序の方向と同じ方向へ伝搬させる量子化誤差へ乗ぜられる拡散係数の和よりも小さくなるようにしたことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理方法、画像処理装置、及びコンピュータプログラムに関し、特に、Ｎ値画像データをＭ値画像データ（Ｎ＞Ｍ，Ｎ、Ｍは正の整数）に変換するために用いて好適なものである。
【背景技術】
【０００２】
従来、入力された多階調の画像データを二値画像データに変換して出力する画像処理装置では、多階調の画像データを二値画像データに変換する方法として、例えば誤差拡散法が用いられている。誤差拡散法は、注目画素の階調値と二値化後の量子化代表値との差（この差を量子化誤差と呼ぶ）を、注目画素の近傍画素の階調値に拡散し、これら各階調値を逐次的に二値化する方法である（非特許文献１を参照）。誤差拡散法では、図１０（ａ）に示すように例えば一行毎に画素の走査の方向を逆にし、双方向で画素を走査する事で画像の粒状性が向上する事が知られている。
【０００３】
ところで、近年の画像の高解像度化に伴って、画像処理に必要な遅延メモリの増大が課題となっている。遅延メモリを節減する方法としては、特許文献１に記載の手法がある。かかる手法では、処理対象となる画像を予め複数の分割領域に分割する。この各分割領域の画素を、境界線に対し垂直な方向に走査し、順次画像処理を行う。これにより、遅延メモリとして必要な容量は分割された領域の高さ分となるため、どのような解像度の画像も処理することが可能となる。
【０００４】
特許文献１に記載の手法を用いて一般的なフィルタ処理や解像度変換処理を行う場合、１画素を処理する際に参照する領域は限定的となる。よって、画像を分割する際、２つの分割領域に跨がる重なり領域を設けるようにしている。
【０００５】
特許文献１に記載の手法を誤差拡散処理に適用すれば、誤差伝搬に必要な誤差メモリの容量は解像度に非依存となる。しかしながら、各分割領域は順番に処理されるため、既に処理済みの分割領域に誤差を伝搬させる事はできない。すなわち、重なり領域を設けても、画像を分割せずに処理する場合と同一の結果を得る事はできない。このため、二値化された各分割画像を接合すると、それらの継ぎ目部分のドットパターンに不連続性が生じる。これが分割領域の境界線上にスジ状に目立って画質を大きく損なってしまう。特に、図１０（ｂ）に示すように一列毎に走査の方向を逆にして双方向で画素を走査する場合、伝搬させる事ができない「下の分割領域から上の分割領域への誤差」の影響が大きくなる。このため、分割領域の境界線上に生じるスジ状の画質劣化がより顕著となるという問題があった。
【０００６】
このような背景のもと、特許文献２に記載の技術では、原画像を分割する前にまず境界ライン上の各画素の量子化を行い、境界ラインを挟む二つの領域のそれぞれに誤差を拡散している。これにより、分割した領域間での処理の連続性を確保している。
また、特許文献３に記載の技術では、分割した領域間で誤差を一切伝搬させずに処理の連続性を分断する事でテクスチャの発生を抑制している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３７３３８２６号公報
【特許文献２】特許第４０３９３９５号公報
【特許文献３】特開平９−１３５３５１号公報
【非特許文献】
【０００８】
【非特許文献１】Ｒ.フロイド（R.Floyd）、Ｌ.スタインベルグ（L.Steinberg）,「空間的グレースケールのための適応的アルゴリズム（An Adaptive Algorithm for Spatial Greyscale）」,Proceeding of the S.I.D. vol 17/2,1976,p.75-76
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献２に記載の技術では、分割した領域の境界ライン上では他の領域と異なる拡散方向及び拡散係数が用いられる。このため、分割した領域の境界部のドットパターンは他の領域と異なる。よって、分割した領域の境界部でスジ状の画質劣化が視認される可能性がある。
【００１０】
また、特許文献３に記載の技術では、テクスチャの分断を目的としているので、前述した分割した領域間での処理の連続性を保てない。更に、分割した領域毎に完全に独立して量子化されるので、ドットパターンは領域毎に分断される。よって、分割した領域の境界線上でスジ状の画質劣化が視認される可能性がある。
【００１１】
本発明は、以上の事情に鑑みてなされたものであり、Ｎ値画像データをＭ値画像データ（Ｎ＞Ｍ，Ｎ、Ｍは正の整数）に変換するに際し、ドットパターンの不連続性に起因するスジ状の画質劣化を防止することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の画像処理方法は、画像を複数のバンド領域に分割して、前記バンド領域ごとに、画素を走査して、Ｎ値画像データを誤差拡散処理によりＭ値画像（Ｎ＞Ｍ，Ｎ、Ｍは正の整数）に変換する画像処理方法であって、第１の走査方向と、前記第１の走査方向とは逆方向となる第２の走査方向とのそれぞれについて、処理対象画素の周辺の画素に対する誤差拡散係数を設定する設定工程と、前記処理対象画素の周辺の画素の量子化誤差と、当該処理対象画素の走査方向について当該周辺の画素に対して設定された誤差拡散係数との積の和を、当該処理対象画素の画素値に加算する加算工程と、を含み、前記バンド領域における画素の処理順序の方向とは逆の方向へ伝搬させる量子化誤差へ乗ぜられる誤差拡散係数の和を、前記バンド領域における画素の処理順序の方向と同じ方向へ伝搬させる量子化誤差へ乗ぜられる拡散係数の和よりも小さくなるようにしたことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、各バンド領域の誤差拡散処理は、先行して処理されるバンド領域への依存性を強く、後に処理するバンド領域への依存性を弱くすることができる。したがって、後に処理するバンド領域からの誤差伝搬がなくても、その影響は少ないので、画像を複数のバンド領域に分割してもドットパターンの連続性を確保できる。よって、ドットパターンの不連続性に起因するスジ状の画質劣化を防止することができる。
【図面の簡単な説明】
【００１４】
【図１】二値化処理の流れを概念的に示す図である。
【図２】各バンド領域内の画素の走査方法の第１の例を示す図である。
【図３】誤差拡散係数の第１の例を示す図である。
【図４】画像処理部の構成を示す図である。
【図５】誤差拡散処理部の構成を示す図である。
【図６】誤差データの伝搬を行う様子を概念的に示す図である。
【図７】誤差バッファの構成を示す図である。
【図８】各バンド領域内の画素の走査方法の第２の例を示す図である。
【図９】誤差拡散係数の第２の例を示す図である。
【図１０】従来の誤差拡散法における画素の走査方法を示す図である。
【発明を実施するための形態】
【００１５】
以下に、図面を参照しながら実施形態を説明する。
（第１の実施形態）
まず、第１の実施形態について説明する。図１は、二値化処理の流れの一例を概念的に示す図である。
図１において、入力された多値画像データ３００は、主走査方向と平行に任意の数の矩形の領域に分割される。以降では、この分割された各領域をバンド領域と呼ぶ。各バンド領域３１０ａ〜３１０ｃは、上から逐次的に誤差拡散処理を用いて二値化される。出力された二値の各バンド領域３２０は後処理で接合される。これにより１枚の二値画像データ３３０が形成される。
【００１６】
各バンド領域３１０の下端を量子化する際に、下方へ伝搬させる量子化誤差がある場合には誤差データを外部メモリ等に保持しておく。外部メモリ等に保持された誤差データは、次のバンド領域３１０の処理時に読み出され、バンド領域３１０の上端へ伝搬される。このように、上に位置するバンド領域３１０から下に位置するバンド領域３１０へは量子化誤差を伝搬させる事ができる。一方、各バンド領域３１０の上端を量子化する際、上方へ伝搬させるべき量子化誤差があっても、上に位置するバンド領域３１０は既に二値化済みであるため、上に位置するバンド領域３１０に当該量子化誤差を伝搬させる事はできない。よって、当該量子化誤差を捨てるか、もしくはバンド領域３１０内の未処理の画素へ伝搬させる量子化誤差を増やすことになる。
【００１７】
以降では、先に処理するバンド領域３１０から後に処理するバンド領域３１０へ伝搬させる量子化誤差を順方向伝搬誤差と呼び、後に処理するバンド領域３１０から先に処理するバンド領域へ（本来は）伝搬させる（必要がある）量子化誤差を逆方向伝搬誤差と呼ぶ。逆方向伝搬誤差の影響が順方向伝搬誤差の影響よりも大きい、もしくは同等である場合、各バンド領域３１０はその下に位置するバンド領域３１０に強く依存する事を意味する。にもかかわらず、前述したように、バンド領域３１０の分割により、バンド領域３１０の下端を量子化する際に、逆方向伝搬誤差を利用することができない。これにより、バンド領域３１０の境界における処理の連続性が保てず、この境界においてスジ状の画質劣化が現れる。そこで本実施形態では、逆方向伝搬誤差の影響が順方向伝搬誤差の影響よりも小さくなるように、画素の走査方法及び量子化誤差の拡散方法を工夫する事で、バンド領域３１０の境界におけるスジの視認性を低減する。また、逆方向伝搬誤差の抑制だけを考慮した場合には、例えば、上から下へ一方向のみで画素を走査する事でスジの視認性は低減される。しかしながら、このようにすると画像の粒状性の悪化を招く。よって、本実施形態では、双方向に画素を走査することによって画像の粒状性を良好にすることも確保する。
【００１８】
図２は、各バンド領域３１０内の画素の走査方法の一例を示す図である。図２に示す例では、バンド領域３１０の左下もしくは右上へ向かって斜め４５度の方向に画素を走査し、バンド領域３１０の端部で走査方向を反対方向へ折り返して画素を走査する。各画素の量子化により発生する量子化誤差は、当該画素の周辺の未処理画素へ拡散させる。図３は、誤差拡散係数の一例を示す図である。具体的に図３（ａ）は、バンド領域３１０の右上から左下方向に走査するときの誤差拡散係数の一例を示す図であり、図３（ｂ）は、バンド領域３１０の左下から右上方向に走査するときの誤差拡散係数の一例を示す図である。図３において、４００は、バンド領域３１０の右上から左下方向に走査するときにおける注目画素である。４２０は、バンド領域３１０の左下から右上方向に走査するときにおける注目画素である。４１０〜４１３、４３０〜４３３はそれぞれ注目画素４００、４２０の周囲の画素における誤差拡散係数である。ここで、図３に示す注目画素４００、４２０とその周囲の画素との位置関係は相対的なものであるものとする。
【００１９】
以上のような走査方法及び拡散方法を用いることにより、逆方向伝搬誤差は、バンド領域３１０を左下から右上方向に走査するときにおける誤差拡散係数４３３に基づくもののみとなる。一方、順方向伝搬誤差は、５つの誤差拡散係数４１１、４１２、４１３、４３０、４３１に基づくものとなる。この場合、逆方向伝搬誤差の誤差拡散係数の和は「３」になるのに対して、順方向伝搬誤差の誤差拡散係数の和は「１７」になる。つまり、各バンド領域３１０の画素の量子化は、その上に位置するバンド領域３１０への依存性が相対的に強くなり、その下に位置するバンド領域３１０への依存性が相対的に弱くなるようにして行われる。よって、逆方向伝搬誤差は捨てられても影響は小さく、また依存性が強い順方向伝搬誤差によって多値画像データ３００を複数のバンド領域３１０に分割しても処理の連続性（すなわちドットパターンの連続性）を確保できる。
【００２０】
図４は、画像処理部の構成の一例を示す図である。図４において、画像処理部１００は、誤差拡散処理部１１０と、ＤＭＡコントローラ１２０とを有している。
ＤＭＡコントローラ１２０は、図示していない外部メモリと相互に接続されている。ＤＭＡコントローラ１２０は、多値画像データ３００を所定のメモリ領域から読み出し、図２に示した走査順序で各画素のデータを誤差拡散処理部１１０へ出力する。また、ＤＭＡコントローラ１２０は、誤差拡散処理部１１０へ出力したときと同様の走査順序で誤差拡散処理部１１０から出力された二値画像データ（バンド領域３２０の画像データ）を所定のメモリ領域へ書き込む。
【００２１】
更にＤＭＡコントローラ１２０は、前述したバンド領域３１０間での伝搬誤差を制御する。すなわち、ＤＭＡコントローラ１２０は、バンド領域３１０の下端の画素処理時に発生した下方のバンド領域３１０への誤差データ（量子化誤差のデータ。以下同じ。）を誤差拡散処理部１１０から受け取り、所定のメモリ領域へ書き込む。また、ＤＭＡコントローラ１２０は、バンド領域３１０の上端の画素処理時に、直前のバンド領域３１０で発生した誤差データを所定のメモリ領域から読み出し、誤差拡散処理部１１０へ送る。
【００２２】
図５は、誤差拡散処理部１１０の構成の一例を示す図である。
図５において、多値画像データ３００の入力ポート２００と、二値画像データの出力ポート２０５と、誤差入力ポート２９０と、誤差出力ポート２９５は、それぞれＤＭＡコントローラ１２０に接続されている。
【００２３】
入力ポート２００から入力された多値画像データ３００の処理対象画素３４０の画素値には、まず加算器２１０にて、周辺画素からの伝搬誤差２８５が加算される。伝搬誤差２８５が加算された処理対象画素２１５の画素値に、ＬＵＴ２２０から読み出された閾値変調成分が更に加算され、被量子化値２３５が算出される。ＬＵＴ２２０の引数は、例えば、入力された画素値や画素の座標である。被量子化値２３５は量子化器２４０で量子化され、量子化値２４５が算出される。量子化値２４５は出力ポート２０５より出力される。また、量子化値２４５は逆量子化器２５０で逆量子化される。逆量子化された画素値と、伝搬誤差２８５が加算された処理対象画素２１５の画素値との減算が減算器２６０で行われ、その結果として量子化誤差２６５が算出される。拡散フィルタ２８０にて、誤差バッファ２７０から出力された周辺画素の誤差データ２７５と画素拡散係数との積が算出され、その和として伝搬誤差２８５が求められる。
【００２４】
ここで、誤差バッファ２７０の動作の一例について説明する。図６は、誤差データの伝搬を行う様子の一例を概念的に示す図である。具体的に図６（ａ）は、バンド領域３１０の右上から左下方向へ画素を走査している場合の図であり、図６（ｂ）は、バンド領域３１０の左下から右上方向へ画素を走査している場合の図である。尚、図６では、横軸がｘ軸であり、縦軸がｙ軸である。
図６において、３４０は処理対象画素である。このとき、誤差バッファ２７０は、画素群３６０（破線で囲まれた領域）中の画素の処理時に発生した量子化誤差を内部メモリに保持しておく。また、誤差バッファ２７０は、画素群３５０（斜線部）の量子化誤差のデータ（誤差データ２７５）を拡散フィルタ２８０に送る。バンド領域３１０の上端のライン上の画素（例えば画素３７０）を処理する際には、誤差バッファ２７０は、誤差入力ポート２９０から誤差データを入力する。また、バンド領域３１０の下端のライン上の画素（例えば画素３８０）を処理する際には、誤差バッファ２７０は、誤差出力ポート２９５へ誤差データを出力する。これにより、順方向伝搬誤差の伝搬を実現する。
【００２５】
次に、量子化誤差を格納する内部メモリの一例について詳説する。画像のバンド領域３１０の高さ（ｙ軸方向の画素数）をＨとすると、内部メモリとして１ワードが量子化誤差１つ分となる。本実施形態では、内部メモリとして、Ｈワードを格納可能なＳＲＡＭ（Static Random Access Memory）を２つ利用する。これにより（２×Ｈ）個の量子化誤差を格納することが可能な内部メモリが構成される。以降の説明では、これら２つのＳＲＡＭをそれぞれSRAM-E、SRAM-Oと呼ぶ。また、SRAM-E、SRAM-Oはそれぞれ１Ｒ１Ｗのポートを持つとする。図７は、誤差バッファ２７０の構成の一例を示す図である。
【００２６】
バンド領域３１０内における座標が（x，y）の画素における量子化誤差は、（x＋y）の値が偶数であるときには、一方のＳＲＡＭ（SRAM-E）のアドレスｙに格納される。一方、（x＋y）の値が奇数であるときには、他方ＳＲＡＭ（SRAM-O）のアドレスｙに格納される。画素の座標は、図６に示すバンド領域３１０の左上の画素を原点（0，0）とし、当該原点から当該画素までの画素数で表されるものである。
ここで、例えば、バンド領域３１０の右上から左下方向へ画素を走査するときの処理対象画素３４０の座標を（x，y）＝（Xc，Yc）とする。（Xc＋Yc）の値は奇数であるとする。このとき、誤差バッファ２７０から出力される量子化誤差の座標は、（Xc-1，Yc）、（Xc-1，Yc-1）、（Xc，Yc-1）、（Xc+1，Yc-1）の４点である（図３（ａ）を参照）。
【００２７】
すなわち、図７に示すように、誤差バッファ２７０は、座標（Xc-1，Yc）の量子化誤差をSRAM-EのアドレスYcから読み出して出力する。また、誤差バッファ２７０は、座標（Xc-1，Yc-1）の量子化誤差をSRAM-Oのアドレス（Yc-1）から読み出して出力する。座標（Xc，Yc-1）の量子化誤差はレジスタに格納されているので、誤差バッファ２７０は、これを出力する。座標（Xc+1，Yc-1）の量子化誤差は、誤差バッファ２７０に入力された量子化誤差２６５であるから、誤差バッファ２７０は、これを出力する。また、SRAM-Oから読み出した座標（Xc-1，Yc-1）の量子化誤差は次の画素を処理するときにも利用されるので、誤差バッファ２７０は、これをレジスタへ格納しておく。また、誤差バッファ２７０は、誤差バッファ２７０に入力された座標（Xc+1，Yc-1）の量子化誤差をSRAM-Oのアドレス（Yc-1）へ格納しておく。以上により、前述した機能を実現できる。バンド領域３１０の左下から右上方向に画素を走査するときも、右上から左下方向へ画素を走査するときと処理対象画素からの相対位置が異なるだけであり、同様に実現できる。よって、ここでは、バンド領域３１０の左下から右上方向に画素を走査するときの誤差バッファ２７０の動作の詳細な説明を省略する。
【００２８】
以上のように本実施形態では、バンド領域３１０内の処理対象画素３４０の周囲の画素の量子化誤差と、当該周囲の画素に対して個別に設定された誤差拡散係数との積の和を、処理対象画素３４０の画素値に加算して誤差拡散処理を行う。このとき、バンド領域３１０の左下もしくは右上へ向かって斜め４５度方向に画素を走査し、バンド領域３１０の端部で走査方向を反対方向へ折り返して画素を走査して処理対象画素３４０を順番に選択する。そして、バンド領域３１０の走査方向とは逆方向へ伝搬させる量子化誤差に乗ぜられる誤差拡散係数の和を、バンド領域３１０の走査方向と同じ方向へ伝搬する量子化誤差に乗ぜられる誤差拡散係数の和よりも小さくする（未満にする）。このようにして、逆方向伝搬誤差の影響を順方向伝搬誤差の影響よりも小さくすることによって、画像を分割してもドットパターンの連続性を確保することができる。よって、バンド領域３１０の境界に生じるスジ状の画質劣化を低減することができる。一方で、画素を双方向に走査するにより良好な粒状性を確保することができる。また、必要な誤差メモリの容量は画像の解像度に依存しないので、画像を複数のバンド領域３１０に分割しない場合に比べて、メモリの容量の大幅な削減が可能になる。
【００２９】
尚、本実施形態では誤差拡散係数として、図３に示した誤差拡散係数を用いる場合を例に挙げて説明したが、誤差拡散係数は、図３に示したものに限定されない。すなわち、逆方向伝搬誤差の影響が順方向伝搬誤差の影響よりも小さい限りにおいては、他の値を誤差拡散係数として用いて良い。また、誤差拡散係数を画素値等に応じて動的に変更しても良い。
また、本実施形態では、尚、Ｎ値画像データをＭ値画像データ（Ｎ＞Ｍ，Ｎ、Ｍは正の整数）に変換する場合の一例として、Ｎ値（多値）画像データを２値画像データに変換する場合を例に挙げて説明した。しかしながら、ＭはＮ＞Ｍを満たしてれば、３以上（多値）であってもよい。
また、本実施形態では、量子化誤差を格納する内部メモリが２バンク構成である場合を例に挙げて説明したが、内部メモリはその他の構成でも良い。例えば１ワードを量子化誤差２つ分とし、縦もしくは横に連続する２つの画素をまとめて格納する事で１バンク構成としても良い。
【００３０】
（第２の実施形態）
次に、第２の実施形態について説明する。第１の実施形態では、画素の走査方向が、右上から左下に４５度の方向と、左下から右上に４５度の方向である場合を例に挙げて説明した。これに対し、本実施形態では、画素の走査方向が、atan(2)の方向である場合について説明する。このように本実施形態と第１の実施形態とは、画素の走査方向が異なることに基づく処理が主として異なる。したがって、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図７に付した符号を付す等して詳細な説明を省略する。
【００３１】
図８は、各バンド領域３１０内の画素の走査方法の一例を示す図である。図８において、１乃至２８は、画素の処理順番を示し、矢印は、２９番目以降の画素の処理順序（走査方向）を示している。
図９は、誤差拡散係数の一例を示す図である。図９において、５００、５２０、５４０、５６０は、それぞれ注目画素を示している。５１０〜５１４、５３０〜５３２、５５０〜５５４、５７０〜５７２は、それぞれ注目画素５００、５２０、５４０、５６０の周囲の画素における誤差拡散係数を示している。ここで、図９に示す注目画素５００、５２０、５４０、５６０とその周囲の画素との位置関係は相対的なものであるものとする。図９（ａ）は、バンド領域３１０の左下から右上方向に走査する場合であって、奇数ライン上の画素を処理する場合の誤差拡散係数の一例を示す図である。図９（ｂ）は、バンド領域３１０の左下から右上方向に走査する場合であって、偶数ライン上の画素を処理する場合の誤差拡散係数の一例を示す図である。図９（ｃ）は、バンド領域３１０の右上から左下方向に走査する場合であって、奇数ライン上の画素を処理する場合の誤差拡散係数の一例を示す図である。図９（ｄ）は、バンド領域３１０の右上から左下方向に走査する場合であって、偶数ライン上の画素を処理する場合の誤差拡散係数の一例である。ここで、奇数ライン及び偶数ラインとは、それぞれバンド領域３１０内の最初のラインを０ラインとしたときの奇数ライン及び偶数ラインを指す。
【００３２】
以上のような走査方法及び拡散方法を用いることにより、順方向伝搬誤差は、誤差拡散係数５１１、５１４、５５４、５５２、５５３、５５４に基づくものとなる。一方、逆方向伝搬誤差は５３０となる。すなわち、順方向伝搬誤差の誤差拡散係数の和は「１５」となり、逆方向伝搬誤差の誤差拡散係数の和は「７」となる。
以上のように、第１の実施形態とは異なる走査方法および誤差の拡散方法を用いても、逆方向伝搬誤差の影響を順方向伝搬誤差よりも小さくし、画像を分割しても処理の連続性を確保し、バンド領域３０１の境界に生じるスジ状の画質劣化を低減することができる。
尚、画素の走査方向は、第１及び第２の実施形態で説明したように、バンド領域３１０の分割方向（バンド領域３１０の並び方向）に対して斜めの方向に限定されるものではなく、第１の走査方向と第２の走査方向とがそれぞれ反対の方向であればよい。
また、本実施形態においても、第１の実施形態で説明した種々の変形例を採用することができる。
【００３３】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００３４】
（その他の実施例）
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が当該コンピュータプログラムを読み出して実行する。
【図１】
2012090154.tif 000003
【図２】
2012090154.tif 000004
【図３】
2012090154.tif 000005
【図４】
2012090154.tif 000006
【図５】
2012090154.tif 000007
【図６】
2012090154.tif 000008
【図７】
2012090154.tif 000009
【図８】
2012090154.tif 000010
【図９】
2012090154.tif 000011
【図１０】
2012090154.tif 000012