(57)【特許請求の範囲】
【請求項１】
ｎ個の入力画素値の第１の走査線上でエラー拡散演算を実行し、
ｎ個の入力画素値の上記第１の走査線上で実行された上記エラー拡散演算から第１の複数のエラー値を導出し、
上記第１の複数のエラー値からｍ個のエラー値を導出し、ここでｍ＜上記第１の複数のエラー値であり、
上記ｍ個のエラー値をエラーバッファ内に記憶し、そして、
ｎ個の入力画素値の第２の走査線上でエラー拡散演算を実行して、上記エラーバッファに記憶された上記ｍ個のエラー値を用いて、当該第２の走査線の当該入力画素値を修正する、
ステップを含む、各々がｎ個の入力画素値を備える複数の走査線によって規定されるデジタル画像を処理する方法であって、
入力画素値の上記第２の走査線上で実行された、上記エラー拡散演算から第２の複数のエラー値を導出するステップ、
上記第２の複数のエラー値からｍ個のエラー値を導出するステップであって、ｍ＜上記第２の複数のエラー値であり、
上記ｍ個のエラー値を、上記エラーバッファに記憶するステップ、及び、
ｎ個の入力画素値の第３の走査線上でエラー拡散演算を実行し、上記エラーバッファに記憶された上記ｍ個のエラー値を用いて、上記第３の走査線の上記入力画素値の各々を修正するステップであって、入力画素値の上記第２の及び第３の走査線の上で実行される上記エラー拡散演算において、第１の及び第２の異なったオフセット値がそれぞれ用いられて、上記第２の及び第３の走査線における、同様に配置された入力画素値が、上記エラーバッファ内で異なって配置されたエラー値によって修正されるようにするものである、
を更に含む方法。
【請求項２】
デジタル画像を規定する入力画素値の連続する走査線上でエラー拡散演算を実行するステップを含み、
上記エラー拡散演算が、
上記エラー拡散演算によって少なくとも第１の入力画素値の走査線を処理して少なくともｎ個のエラー値を獲得し、
上記ｎ個のエラー値をサブサンプリングして、ｍ個のエラー値を獲得し、ここでｍ＜ｎであり、
上記ｍ個のエラー値をエラーバッファに記憶し、
上記エラー拡散演算によって入力画素値の第２の走査線を処理し、上記エラーバッファに記憶された上記ｍ個のエラー値から選択されたエラー値を入力として使用するステップを含む、
デジタル画像処理の方法であって、
上記エラー拡散演算が、更に、
オフセットを用いて、上記エラーバッファにおける上記ｍ個のエラー値の有効な位置を制御し、上記エラー拡散演算によって、入力画素値の上記第２の走査線を処理する上記ステップの間に、上記ｍ個のエラー値のどれが、上記入力画素値の各々の処理において用いられるかを変化させるステップを含む方法
。
【請求項３】
エラーバッファ、
選択エラー拡散演算によって少なくとも第１の入力画素値の走査線を処理して、少なくともｎ個のエラー値を獲得するための手段、
ｎ個のエラー値をサブサンプリングして、ｍ個のエラー値を獲得するための手段、であって、ｍ＜ｎである当該手段、
上記ｍ個のエラー値を上記エラーバッファに記憶するための手段、及び、
上記エラーバッファに記憶された上記ｍ個のエラー値から選択されたエラー値を入力として用いて上記選択エラー拡散演算によって入力画素値の第２の走査線を処理するための手段、
を備えるデジタル画像処理装置であって、
入力画素値の上記少なくとも第１の走査線を処理するための手段が、入力画素値の複数の走査線を処理するための手段を備え、
上記エラー値をサブサンプルするための手段が、２次元サブサンプリング演算を実行するための手段を備え、
上記入力画素値の複数の走査線を処理するための手段から得られた上記エラー値が、平均化及び合計演算の１つによって、２次元に組み合わされる、
装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般的に、デジタル画像処理の技術に関し、特に、新規で自明でない、削減されたバッファ要求（buffer requirements）を持つエラー拡散（error diffusion）のための方法及び装置に関する。
【０００２】
【従来の技術】
文書の印刷において、一定のエリア上の所望の濃度は通常、ハーフトーニングによって達成される。ここでは、画像濃度変動は、より大きいかあるいはより小さい数のＯＮ画素を、バイナリの場合について、画像の離散的エリアに配置することによって表されるか、あるいは、非バイナリの場合に対しては、画素の数及び／又はレベルを変動させることによって表される。ディザリング（dithering）あるいはスクリーニングとして既知の一つのハーフトーニング方法（例えば特許文献１）においては、複数のグレイの別個の画素をその上に有する与えられたエリアの上に、エリア内のグレイの別個の画素の配列の各別個の画素の濃度を表す値が、事前に選択されたスレッシュホールドの組の一つと比較される。そのようなやり方によれば、画像がグレイのエリアについては、ディザマトリックス内のスレッシュホールドのいくらかは超過される（即ち、その特定の位置での画像値が、その同じ位置に対するディザマトリックスに記憶された値より大きい一方、他は小さい）。バイナリの場合には、スレッシュホールドを越えるべき画像画素は、最大着色料値として印刷される一方、残りの別個の画素は、データによって記述された実際の物理的量に依存して、白のまま残される。このハーフトーニングは、空間座標において、周期的なあるいは擬似周期的な出力パターンを生成する。
【０００３】
エラー拡散は、他のハーフトーニング方法で、非特許文献１に記載される。エラー拡散は、画素毎に、グレイ画素からバイナリあるいは他のレベルの画素へ変換を為すことによってグレイを維持することを試みる。この方法は、スレッシュホールドに関して各画素を検査する。そして、グレイレベル画素値と出力値との間の差あるいは“エラー”は、重み付けスキームに従って、隣接する画素の、選択されたグループあるいは組に伝搬される。エラー拡散アルゴリズムの出力バイナリパターン及びその微分（derivative）は、入力濃度レベルに関しての局所的周期性を持つが、グローバルな周期性を持たない、パターンである（非特許文献２を参照）。
【０００４】
様々な形でのエラー拡散は、多くのアプリケーションについてのデジタル画像のレンダリング（rendering）と結び付いて大きな商業的成功を収めてきた。標準ハーフトーニング（halftoning）と比較した際に、エラー拡散の比較的高いレンダリング品質は、エラー値の記憶と処理のための、より遅いレンダリング速度と大きなバッファ要求によって幾らか妥協させられる。大きなバッファ要求によって、エラー拡散方法を実装するデジタル画像処理装置の製造コストが増大する。
【０００５】
【特許文献１】
米国特許第4,149,194号公報
【非特許文献１】
"An Adaptive Algorithm for Spatial Greyscale" by Floyd and Steinberg, Proceedings of the SID 17/2, 75-77 (1976)
【非特許文献２】
"Analytic Description of the 1-D Error Diffusion Technique for Halftoning," Optics Communications, Vol.52, No.3, 165-168 (1984) by R.Eschbach and R.Hauck
【０００６】
【発明の概要】
本発明の第１の面に従って、複数の走査線（その各々がｎ個の入力画素値を備える）によって規定されるデジタル画像の処理方法は、ｎ個の入力画素値の第１の走査線上でエラー拡散演算（error diffusion operation）を実行することを含む。第１の複数のエラー値は、ｎ個の入力画素値の前記第１の走査線上で実行されるエラー拡散演算から導かれる。ｍ個のエラー値は、第１の複数のエラー値から導かれる。ｍ＜前記第１の複数のエラー値である。ｍ個のエラー値は、エラーバッファに記憶される。エラー拡散演算は、ｎ個の入力画素値の第２の走査線上で実行されて、エラーバッファに記憶されたｍ個のエラー値を用いて第２の走査線の入力画素値を修正する。
【０００７】
本発明の他の面に従って、デジタル画像処理方法は、デジタル画像を規定する入力画素値の連続する走査線上でエラー拡散演算を実行することを含む。エラー拡散演算は、エラー拡散演算による入力画素値の少なくとも第１の走査線の処理と、少なくともｎ個ののエラー値の獲得を含む。ｎ個のエラー値は、サブサンプルされて、ｍ個のエラー値を獲得する。ここでｍ＜ｎである。ｍ個のエラー値は、エラーバッファに記憶される。入力画素値の第２の走査線は、エラーバッファで記憶されたｍ個のエラー値から選択されたエラー値を入力として用いてエラー拡散演算に従って処理される。
【０００８】
本発明の他の面に従って、デジタル画像処理装置は、エラーバッファ，選択エラー拡散演算によって入力画素値の少なくとも第１の走査線を処理して少なくともｎ個のエラー値を獲得するための手段，及び，ｎ個のエラー値をサブサンプルしてｍ個のエラー値を獲得するための手段，を備える。ここでｍ＜ｎである。本装置は更に、エラーバッファでｍ個のエラー値を記憶するための手段を備える。エラーバッファに記憶されたｍ個のエラー値から選択されたエラー値を入力として用いて選択エラー拡散演算に従って入力画素値の第２の走査線を処理するための手段が提供される。
【０００９】
【発明の実施の形態】
デジタル画像処理システム10が、図１に示される。画像入力端末12はスキャナ，コンピュータ画像生成器，画像記憶装置，及び／又は、一つあるいはそれ以上のモノクロの（monochoromatic）の分離の様式でデジタル画像データを導出し及び／又はそれを伝送するデジタル画像データの他のソース（source），を備える。ここで、各分離（separation）の画像要素あるいは“画素”は、画素当り“ｄ”ビットの深さにおいて規定される。ここで“ｄ”は整数である。従って、各分離の各画素は、画素当りの“ｄ”ビット（ビット深さ＝ｄ）によって規定され、各画素は、完全な“オフ”（例えばグレー値＝０）と完全な“オン”（例えばグレイ値＝255）との間にいくらかの“グレー（gray）”値を持つ。これらの画素は、行と列の配列に配列される。ここで行はしばしば、“走査線”と呼ばれる。当業者は、グレイ値が異なる範囲（例えば０から１）に存し得ること、そして、単純な演算が実行されるであろうという事実によってそのようなグレイ値は、0から255の範囲のグレイ値と等価であることを認識するであろう。デジタル画像データが少なくとも２つのモノクロマチック（monochoromatic）の分離によって提供される時に、分離からのデータが結合される（combined）時、例えば赤緑青（ＲＧＢ）分離あるいはシアン−マゼンタ−黄色（ＣＭＹ）分離、にカラー画像がもたらされる。
【００１０】
図１を引き続き参照する。画像信号は、画像入力端末12から画像処理ユニット（ＩＰＵ）14に入力される。ここで、本発明による削減されたバッファのエラー拡散のようなデジタル画像処理が実行される。ＩＰＵ14は、電子的コンピュータ，専用の電子回路，あるいはいかなる他の適切な電子回路のような、いかなる適切な電子的コンピューティング装置，装置及び／又はソフトウェアによっても提供され得る。ＩＰＵ14は、適切な様式でデータをプリンタ16（これがデジタル画像を紙あるいは他の記録媒体の上にレンダーする）に出力する。ユニット12，14及び16は、一つの装置に結合され得るか、あるいは、お互いに拡散されてケーブルあるいは他のワイヤ接続あるいはワイヤレス接続によって接続され得る。
【００１１】
図２に示される従来の１次元エラー拡散において、第１の画素入力値ｉ（0）がスレッシュホールドＴと比較される。ｉ（0）＜Ｔなので、第１のバイナリ出力値ｂ（0）は、“オフ”（例えばｂ（0）＝0）に対応する２つのバイナリ状態の第１に設定される。方程式ｅ（0）＝ｂ（0）−ｉ（0）に従って第１のエラー値ｅ（0）が導出される。この第１のエラー値ｅ（0）が、次の順次の（sequential）、即ち第２の、入力画素値ｉ（0）に伝搬させて、方程式ｉ（1）'＝ｉ（1）−ｅ（0）に従ってエラー修正された第２の入力画素値ｉ（0）'を導出する。エラー修正された第２の入力画素値ｉ（1）'は、スレッシュホールドＴと比較されて、対応する第２のバイナリ出力値ｂ（1）が導出される。この場合には、ｉ（1）'＞Ｔなので、第２のバイナリ出力値ｂ（1）が、“オン”（例えばｂ（1）＝255）に対応する２つのバイナリ状態の第２に設定される。第２のエラー値ｅ（1）が、方程式ｅ（1）＝ｂ（1）−ｉ（1）'によって導出され、対応するバイナリ出力値を獲得するために入力画素が処理されるまで上述の工程が係属する。勿論、これは単純に、従来の１次元エラー拡散方法の一つの例である。２以上の出力レベルへの拡張（ここでは、異なる出力レベルが、着色料濃度，着色料層厚さ，出力画素のスポットのサイズ，あるいは、出力画素のいかなる他の物理的属性，を変更することによって生成され得る）は、簡単で既知である。
【００１２】
図３は、従来の２次元エラー拡散方法の一つの例を示す。ここで、画像データの走査線Ｓ２で発見された入力画素値ｉ（ｘ）が、２次元で多値のエラー値ｅ0，ｅ1，ｅ2，ｅ3を受け取ることによって修正される。一般的に、エラー値は、広く変化し得る重み付けスキーム（scheme）に従って重み付けされる。
【００１３】
エラー値のフル（full）の走査線Ｓ（以下「エラーバッファ」と呼ぶ。）は、エラー値ｅ1，ｅ2，及びｅ3（画像データの以前の走査線の処理から導出された全てのエラー値を記憶することによって得られた）を保持する。エラー値ｅ0はここで、「以前のエラー」と呼ばれ、単純に、走査線Ｓ2で発見された一つあるいはそれ以上の以前の入力画素値（例えば入力画素値ｉ（ｘ-1））の処理から導出されたエラー値である。従って、２次元エラー拡散に対する入力画素値Ｓ2の走査線の処理において、入力画素値の各々の処理のために必要とされるエラー値へのアクセスを提供するために、エラー値の少なくともフルの走査線Ｓ1が記憶されることが必要とされる。更に、「以前のエラー」のエラー値ｅ（0）は、記憶されねばならない。勿論、走査線Ｓ2の全ての入力画素の処理からもたらされるエラー値は、入力画素値の次の走査線の処理での使用のために保存されねばならない。将来の入力画素を即座にアップデートする（updating）ことによって、物理的に等価な実施が達成され得ることが理解されねばならない。
【００１４】
その場合にはエラーバッファは単純に、同一の機能（即ちエラー値の収集）を遂行する入力画素バッファによって置換され、本発明は、これらと他の均等なケースをカバーすることが意図されるが、単純化のために我々は一つの説明（description）だけを使用する。
【００１５】
当業者に直ちに明白なように、２次元エラー拡散（図３にも単純に説明される）は、バッファ内での比較的大きな数のエラー値の記憶を必要とする。より安価のプリンタ等では、これらのバッファはしばしば、プリンタ16自身内に見つけられる。バッファ要求が増加するにつれて、プリンタ装置のコストが増大する。これは、バッファメモリがしばしば、比較的大きなブロックで設置されなければならぬ、という事実によって悪化させられる。従って、バッファメモリ要求での小さな増加が、設置されたメモリと価格の大きな増加に繋がり得る。逆に、もし一つあるいはそれ以上のバッファメモリのブロックが除去され得るならば、バッファ要求での小さな削減が、価格の大きな削減という結果をもたらし得る。
【００１６】
本発明による、削減されたバッファのエラー拡散方法が、図４に図示される。ここに示されるように、入力画素ｉ（ｘ）は、３つの異なるエラー値ｅ0，ｅ1，ｅ2のみを受け取り、エラー値ｅ1は２回使用される。ここで、及び以下で我々は、一定のエラー格納ユニットのアクセスの記述を多数回（図４で２回）使用する。というのはこれによって、明確性のために標準エラー拡散重み記述（standard error diffusion weight description）を使用することが可能となるからである。異なった好ましい実施例で、空間可変重み（space variant weights）を伴う一つのアクセスを用いて多数のアクセスが均等的に得られ得ることが理解されるべきである。即ち、エラー拡散で使用される重みは、標準エラー拡散程には一定ではないが、空間位置の関数として変化する。この場合には、エラー値Ｓ1'の走査線（ここでは、“エラーバッファ”とも呼ばれる）は、エラーバッファＳ１'のためのメモリ要求を削減するために、図３のエラーバッファＳ1に対して削減された解像度において維持される。即ち、エラーバッファＳ1'に記憶されたエラー値の数は、プリンタ16によってレンダーされるべき画像に対する画像データの走査線を規定する画素の数より小さい。
【００１７】
図４に示された例において、エラーバッファＳ1'が、図３に示されるバッファＳ1に対して半分の、そして、処理されている入力画素値の走査線Ｓ2に対して半分の解像度で維持される。このようにして当業者は、エラーバッファＳ1'に対する格納要求（storage requirements）は、フルの解像度のエラーバッファＳ1のそれらに対して半分であることを理解するであろう。好ましい実施例で、半分の解像度のエラーバッファＳ1'のエラー値が、フル解像度のエラーバッファＳ1の２つの隣接するエラー値毎を平均化することによって得られる。
【００１８】
ここで図５を参照する。ここでは、図４に示されたケース（削減された解像度のエラーバッファＳ1'を得るために、オリジナルのエラーバッファＳ1が削減係数Ｒ＝２によって削減された）についての本発明による削減されたバッファのエラー拡散が開示される。走査線Ｓ２は、本発明によって処理される“ｎ”入力画素値の走査線である。
【００１９】
図５に示されるように、ステップＰ1は、走査線Ｓ2内の各入力画素値ｉ（ｘ）上で演算する。ここでｘ＝0からｎ-1である。各入力画素値ｉ（ｘ）について、ここに示されるように、ステップＰ2は、エラー値ｅ0−ｅ3を計算する。特に、エラー値ｅ0は単純に、値「以前のエラー」（即ち、走査線Ｓ2での丁度直前に処理された入力画素値ｉ（ｘ-1）に重み値（weight value）ｗ（ａ）を乗じた値に対応するエラ−値）である。エラー値ｅ１は、位置（ｘ-1）／２のエラーバッファＳ1'をアクセスして、検索された値を重み値ｗ（ｂ）で乗算することによって得られる。エラー値ｅ２は、位置ｘ／２でエラーバッファＳ1'をアクセスして、検索された値を重み値ｗ（ｃ）で乗算することによって導出される。最後に、位置（ｘ+1）／２でエラーバッファＳ１'にアクセスして、検索された値を重み値ｗ（ｄ）で乗算することによって、エラー値ｅ３が得られる。ここで、画素位置を決定するために計算される全ての除算は、整数演算として理解されるべきであり、結果として整数画素値をもたらす。重み値ｗ（ａ），ｗ（ｂ），ｗ（ｃ）及びｗ（ｄ）は、従来のものであり、他のアプリケーション要求に基づいて特定され得る。
【００２０】
丁度説明したように、そこでエラーバッファがアクセスされる位置は、ステップＰ2によって制御される。エラー値ｅ1−ｅ3の計算で用いられる“２で除算する”計算は、一般的なケースでは“Ｒで除算する”で置換され得ることが理解されるべきである。ここでＲは、削減された解像度エラーバッファＳ1'を得るために、それによってフルの解像度のエラーバッファＳ1が削減される削減係数である。
【００２１】
ステップＳ3で、これらのエラー値ｅ（0）−ｅ（3）が、入力画素値ｉ（ｘ）に加算されて、修正された入力画素値ｉ（ｘ）'が得られる。ステップＰ4に従って、この修正された入力画素値ｉ（ｘ）'は、スレッシュホールドＴと比較される。もしｉ（ｘ）'＝Ｔなら、入力画素値ｉ[x]に対応するバイナリの出力値output[x]が、ステップＰ5によって“オン”に設定される。他方、修正された入力画素値ｉ（ｘ）'＜Ｔであるところでは、対応するバイナリの値output[x]は、ステップＰ6で“オフ”に設定される。いずれのケースでも、ステップＰ７は、修正された入力値ｉ（ｘ）'から値output[x]を減算することによる、変数「現在のエラー」（入力画素ｉ（ｘ）の処理からもたらされるエラー）の計算を含む。ステップＰ８で、入力画素値ｉ（ｘ+1）の処理で用いるために、可変の「以前のエラー」の値が、「現在のエラー」の値でアップデートされる。ステップＰ9は入力画素データが処理のために走査線Ｓ２に残存するか否かを判断する。もしそうであれば制御は、Ｐ1に戻る。さもなければエラー拡散工程は走査線Ｓ２について終了させられる。
【００２２】
ここで図６を参照する。ここには、走査線Ｓ2からの一連の入力画素値ｉ（ｘ），ｉ（ｘ+1），ｉ（ｘ+2）及びｉ（ｘ+3）が適用された一般的なケースでの図５の工程が示される。特に、図６を参照すると、エラーバッファＳ1'の“隣接部”が一連の入力画素値に対する遷移（transition）にアクセスしたことが明白である。更に、エラーバッファＳ1'内の各位置の貢献が、どの入力画素値が処理されているかに従属する態様で変化するという事実によって、エラーバッファＳ1'のアクセスの“隣接部”のこの遷移は、空間可変エラー拡散重み（space-variant error distribution weights）における効果的な結果をもたらす。従って上述のように、多数のエラー位置アクセススキーム（multiple error location access scheme）が等価的に、直接空間可変重み要素（direct space variant weight component）と置換され得る。
【００２３】
より詳細には、図６を参照して、入力画素値ｉ（ｘ）がエラー入力を、エラーバッファＳ１'の位置ｅ１のみから受け取ることが分かる。入力画素値ｉ（ｘ+1）は、位置ｅ1とｅ2の双方からエラー入力を受け取る（ここで位置ｅ1は２回アクセスされるかあるいは１回アクセスされて、１回のみアクセスされる位置ｅ2に対する、その付加された影響を計上するためにそれに従って重み付けされる）。入力画素値位置ｉ（ｘ+2）は、エラーバッファＳ1'位置ｅ1とｅ2の双方からのエラー入力をも受け取る（ここで位置ｅ1は1回アクセスされ、位置ｅ２は２回アクセスされてそれに従って重み付けされる）。最後に、入力画素値ｉ（ｘ+3）は、エラー入力を、エラー位置ｅ2のみから受け取る。
【００２４】
当業者は、一般的なケースで本発明の方法が、エラー拡散演算から導出された複数のｎ個のエラー値がサブサンプルされて、削減された数のｍ個のエラー値だけがバッファに記憶されて、オリジナルのｎ個のエラー値はバッファに記憶されないように、ｍ＝ｎ／Ｒによる削減係数Ｒを用いてｍ個（ｍ＜ｎ）のエラー値を導出することを可能とすることを理解するであろう。エラー値のフルの組ではなく、むしろｍ個のエラー値が、その後のエラー拡散演算に対する入力として用いられる。サブサンプリング演算は、いかなる適切な方法によっても達成され得る。ここに説明されるように、平均化演算か合計演算（適切な重み調整を伴う）かのいずれかが、ｎ個のオリジナルのエラー値からｍ個のエラー値を導出するために使用され得る。サブサンプリング演算がこれらの方法に限定されることは意図されない。更に、平均化，合計，あるいは他のサブサンプリング演算が、オリジナルのｎ個のエラー値について、それらが、それらの値をバッファに記憶する必要性を除去するために導出されたかのように振舞うことが理解されるであろう。一例として、もしｎ＝80で削減係数Ｒ＝４が用いられたなら、４つのエラー値のｍ＝80/4＝20個のグループが、サブサンプルされるべきである。サブサンプリングについて平均値を用いる例では、４エラー値の各グループの平均は、ｎ＝80個のエラー値をバッファに記憶すること無しに計算され得る。その代り、各グループについて、そのグループに対応付けられた各エラー値の1/4が、そのグループに対する実行総計（running total）に付加される。
【００２５】
図７Ａは、本発明による入力画素データの連続する走査線を処理する、複数の削減された解像度のエラーバッファＳ１'a，Ｓ１'ｂ，Ｓ１'ｃ，Ｓ１'ｄ，及びＳ１'ｅを概説する。各エラーバッファは、４つのエラーバッファ位置ｅ1−ｅ4（その各々は、フルの解像度のエラーバッファからの４つの隣接するエラー値の平均化によって得られた平均エラー値、即ち削減係数Ｒ＝４、を備える）によって表される。当業者は、ここに示される連続する削減された解像度のエラーバッファＳ1'ａ−Ｓ1'ｅの使用は結果として、エラー位置ｅ1−ｅ4の高度に構造化された配列によって、及び各エラー位置が削減係数Ｒ＝4に基づくという事実、即ち各エラー位置がフル解像度のエラーバッファからの４つのエラー値の平均を表すこと、によって、結果としてのエラー拡散画像に導入される垂直の列に類する周期的構造をもたらし得ることを認識するであろう。この潜在的な垂直構造は、削減係数（それによってエラーバッファＳ1が削減されて削減された解像度のエラーバッファＳ1'が得られる）に対応する周期性を持つことになる。更に、結果としてのエラー拡散された画像内のこの垂直構造は、削減係数が増加するにつれてより顕著となる。
【００２６】
エラー拡散された画像内のいかなる周期的な垂直構造の導入に対処するため、あるいはそれを最小化するための努力において、オフセットを削減された解像度のエラーバッファＳ１'a− Ｓ１'ｅに導入することが望ましいことが分かってきた。ここでこのオフセットは、連続するエラーバッファＳ１'a− Ｓ１'ｅの位置の間にある。この方法は、図７Ｂに概説的に示される。ここで、エラーバッファＳ1'bが、エラーバッファＳ１'aに対する２つのエラー値によってオフセットされることが分かる。エラーバッファＳ１'ｄは、エラーバッファＳ１'aに対してオフセットされない。ランダムあるいは擬似ランダム数によって各エラーバッファにオフセットが導入されることが好ましい。このオフセットは（エラーバッファＳ1'内のエラー値が実際に非オフセット位置からシフトされるという意味で）実際になされ得るか、あるいは単純に、エラーバッファ・アドレシングスキームを変化させることによって導入され得る。
【００２７】
いずれの場合でも、図７Ｂに示されるような連続する削減された解像度のエラーバッファＳ1'a−Ｓ1'ｅへのオフセットの導入の効果は、処理される複数の走査線内の与えられた入力画素位置ｉ（ｘ）に対して、アクセスされたエラーバッファのｅ1−ｅ4位置におけるエラー値が、位置ｉ（ｘ）における入力画素値の修正に対して異なる貢献を持つことになることである。例えば、入力画素値の第１の走査線からの第１の入力画素値は、削減された解像度のエラーバッファＳ1'a−Ｓ1'ｅの一つのエラー位置ｅ1−ｅ4だけをアクセスし得る。入力画素値の第２の走査線からの、第２の、同一に位置する入力画素値は、２つの異なったエラー位置ｅ1−ｅ4にアクセスすることになる。
【００２８】
図８に示され一般的に知られるように、一定の従来のエラー拡散方法は、入力画素値の走査線Ｓ2を処理するために、第１と第２のフル解像度のエラーバッファＳ0，Ｓ1を利用する。ここに示されるように、入力画素値ｉ（ｘ）は、エラーバッファＳ0及びＳ1からエラー値ｅ1-ｅ6を受け取る。
【００２９】
図９は、２次元内のエラーバッファ要求を削減することによって解像度とエラーバッファの数の双方が削減される、削減されたバッファのエラー拡散方法を示す。特に、エラーバッファＳ0とＳ1は、平均化演算を用いて、２次元での２の削減係数を適用することによって得られた、一つの、削減された解像度のエラーバッファＳ1'によって置換されてきた。そのようにして、２つのフル解像度のエラーバッファＳ0，Ｓ1が一つの半分の解像度のエラーバッファＳ1'に結合される。ここに示されるように、削減された解像度のエラーバッファＳ1'のエラー位置ｅ1は、エラーバッファＳ0とＳ1のエラー値ｅ1−ｅ4の平均を表す一方、削減された解像度のエラーバッファＳ1'のエラー位置ｅ2は、エラーバッファＳ0とＳ1のエラー値ｅ5−ｅ8の平均を表す。単純化のために、２×２削減が使用されたことに注意すべきである。削減が、高速，低速走査方向に亘って同一であることに対する要求は存在しない。また、図８の重み分配において、エラーバッファ走査線Ｓ0，Ｓ1の双方のために、１次元の削減が使用され得る。即ち、２つの新規の削減された解像度のエラーバッファ走査線（そのそれぞれが、ここに説明されるようなｍ＝ｎ／Ｒによるｍ個のエラー値によって規定される）を導出するために、ｎ個のエラー値の各エラーバッファ走査線Ｓ0とＳ1が、削減係数Ｒによって別個に削減され得る。これらの削減された解像度のエラーバッファはその後、走査線Ｓ2で発見された入力画素値上でエラー拡散演算を実行するために使用される。
【００３０】
上述のように、削減されたバッファのエラー拡散方法は、削減された解像度のエラーバッファを得るためのエラー値の平均化に依存する。均等な方法において、削減された解像度のエラーバッファの各エラー値を得るために、複数のエラー値上で合計演算が実行される。しかしそのような場合には、削減された解像度のエラーバッファ内のエラー値に適用される重みｗは、合計演算を説明する（account for）新規の重みによって置換される。一つの例でこれは、採用された削減係数によってオリジナルの重みを分割することによって達成される。
【００３１】
【発明の効果】
本発明は、以上説明したように構成されているので、以下に記載されるような効果を奏する。
画像品質を維持しつつ、バッファ要求が非常に削減される。
バッファ要求を削減する結果、オフィスプリンタやコピー器のような比較的低コストなシステムのファームウェアに実装され得る。
【００３２】
同等の品質を持つ一つの分離（separation）（即ちモノクロ）の画像による従来のエラー拡散技術によって示されるバッファ要求と同等のバッファ要求を示すマルチ分離（multi-separation）（即ちカラー）画像のためのエラー拡散方法が提供される。
【００３３】
米国特許第5,045,952号等に記載されるような元々FloydとSteinbergによって言及されたエッジ強調エラー拡散や、例えば米国特許第5,208,871号に記載されるような空間変動重みを用いた、例えば米国特許第5,245,678号に記載されるようなエラーフィードバック総量の変更を含む重み修正の、マルチレベルエラー拡散のような、他のエラー拡散修正との、一般的なコンパチビリティが得られる。
【図面の簡単な説明】
【図１】本発明に従ってエラー拡散を実行する画像処理システムの概略図。
【図２】従来の１次元エラー拡散方法を示す図。
【図３】従来の２次元エラー拡散方法の概略図。
【図４】本発明による、入力画素値に対応する出力値の導出に用いるための、削減されたバッファのエラー拡散方法の概略図。
【図５】２のバッファ削減計数を用いた本発明の一つの実施例に従った削減されたバッファのエラー拡散を開示するフローチャート。
【図６】本発明に従った、入力画素値の順番に対応する出力値の導出での使用のための、削減されたバッファのエラー拡散方法の概略図。
【図７Ａ】本発明に従って導出される、連続する削減された解像度のエラーバッファを示す図。
【図７Ｂ】垂直の周期的構造の、結果としてのエラー拡散された画像への導入を最小化するための、互いにオフセットされた連続するエラーバッファを示す図。
【図８】第２の従来の２次元エラー拡散方法の概略図。
【図９】本発明に従った、２次元でのバッファ要求の削減に効果的な、第２の削減されたバッファのエラー拡散方法の概略図。
【符号の説明】
12  画像入力端末
14  画像処理ユニット（ＩＰＵ）
16  プリンタ
【図１】
0004141817.tif 000002
【図２】
0004141817.tif 000003
【図３】
0004141817.tif 000004
【図４】
0004141817.tif 000005
【図５】
0004141817.tif 000006
【図６】
0004141817.tif 000007
【図７Ａ】
0004141817.tif 000008
【図７Ｂ】
0004141817.tif 000009
【図８】
0004141817.tif 000010
【図９】
0004141817.tif 000011