(57)【要約】  本発明はデジタル画像ハーフトーンの分野に属し、周波数変調格子点（frequency-modulation lattice points）を高速で発生させることを可能にする方法および装置を開示している。従来技術では、ピクセルの処理時に誤差行に読み書き操作が多数回行なわれるため、格子点の生成が遅くなっている。本発明による方法では、カレントピクセルによって発生した誤差はレジスタスタックにバッファリングされ、最終誤差累積値が誤差行に書き込まれるのは、すべての相関ピクセルが処理された後だけであるので、処理されるピクセルごとに、誤差行に行なう読み書き操作は一回だけで済んでいる。本発明は当該方法を実現する装置も提供している。装置は７つの部分、すなわち、誤差行ストレージ、誤差バッファレジスタスタック、グレー生成回路、しきい値比較回路、誤差生成回路、誤差バッファレジスタスタック制御回路および誤差行制御回路から構成されている。本発明の方法と装置を採用すると、操作ステップ数は低減され、ＦＭ格子点の生成速度は大幅に向上する。
2008535419.tif 000002
【特許請求の範囲】
【請求項１】
周波数変調ハーフトーンドットを高速で発生させることを可能にする方法であって、
（ａ）列に編成し、誤差行メモリを初期化するステップと、
（ｂ）誤差バッファレジスタファイルをセットするステップと、
（ｃ）カレントソースピクセルを取得するステップと、
（ｄ）カレントソースピクセル、誤差行および誤差バッファレジスタファイルに基づいてハーフトーンドットを発生させるステップと、
（ｅ）誤差行および誤差バッファレジスタファイルを更新するステップと、
（ｆ）カレント行が完全に処理されるまで前記ステップ（ｃ）、（ｄ）および（ｅ）を繰り返すステップと、
（ｇ）画像が完全に処理されるまで前記ステップ（ｂ）、（ｃ）、（ｄ）、（ｅ）および（ｆ）を繰り返すステップと
を含むことを特徴とする方法。
【請求項２】
前記ステップ（ａ）は、
（１）繰り返し使用される誤差行であって、１つのピクセルからの誤差をそこに分散させることができる行の数より少なくない誤差行の数を、ｎが正の整数である２ｎとしてセットするステップであって、前記誤差行メモリのバスの幅は２ｎ個の要素を誤差行メモリから同期的に読み書きすることを可能にするステップと、
（２）同じ列では同じ数になっている誤差位置であって、２ｎ個の列の誤差位置の各々を隣接して配列するステップと、
（３）前記誤差行を０として初期化するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ステップ（ｂ）は、
（１）誤差バッファレジスタファイルを、誤差分散バッファレジスタファイルと誤差累積バッファレジスタファイルとを含むようにセットするステップと、
（２）前記誤差バッファレジスタファイルを初期化するステップであって、前記誤差バッファレジスタファイルは各々の行の処理の開始時に０として初期化されるステップと
をさらに含み、
前記誤差分散バッファレジスタは、誤差行内のある位置の相対ピクセルのすべてからの誤差分散値のすべてをストアするのに十分になっており、カレント相対ピクセルはカレント操作行内のピクセルのすべてとしてセットされ、その誤差値は誤差行内のその位置に分散させることができ、
前記誤差累積バッファレジスタファイルは、カレント操作行の後に続くオリジナル誤差行の相対累積誤差値のすべてをストアするのに十分になっており、前記相対累積誤差値は、誤差行内のある位置のオリジナル累積誤差値を読み出してからその位置の新しい累積誤差値を書き込むまでの行程における誤差行内の読み取られたオリジナル累積誤差値のすべてとしてセットされることを特徴とする請求項１に記載の方法。
【請求項４】
前記ステップ（ｄ）は、
（１）カレントソースピクセルの位置と、次の行および同じ列における位置とに対応する累積誤差値を誤差行メモリから同期的に読み出すステップと、
（２）同じ行内の先行ピクセルのすべてによって生成された誤差の分散に由来するカレントソースピクセルの誤差値の総和Ｓを、誤差バッファレジスタファイルに照らして計算するステップと、
（３）カレントピクセルに対応する位置のオリジナル累積誤差値、総和Ｓおよびカレントソースピクセルの値を加算することによってピクセルの最終値を求め、該最終値をしきい値と比較することによって最終ハーフトーンビットを発生させるステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記ステップ（ｅ）は、
（１）隣接するピクセルのすべてについて、カレントピクセルによって生成された誤差の分散によって引き起こされた値Ｄｊをピクセルの最終値としきい値とに照らして求めるステップと、
（２）誤差分散バッファレジスタファイル内の各ピクセルの誤差分散値を、その次のピクセルの誤差分散値として更新し、最終ピクセルの誤差分散値を値Ｄｊとして更新するステップと、
（３）誤差累積バッファレジスタファイル内の各ピクセルの累積誤差値をその次のピクセルの累積誤差値として更新し、最終ピクセルの累積誤差値をカレントピクセルに対応していて、次の行内の位置のオリジナル累積誤差値として更新するステップと、
（４）誤差行内の１つの列内の書き込まれたデータ値のすべてを誤差バッファレジスタファイルに照らして求め、書き込まれたデータ値を誤差行メモリに同期的に書き込むステップと
をさらに含み、
誤差行内の列におけるある位置の書き込まれたデータ値は、その位置のオリジナル累積誤差値と、その位置に分散され、誤差バッファレジスタファイルにストアされたすべての誤差分散値との総和に等しいことを特徴とする請求項１に記載の方法。
【請求項６】
請求項１に記載の方法を実現するために周波数変調ハーフトーンドットを高速で発生させることができる装置（１）であって、しきい値比較回路（４）と、誤差生成回路（５）と、誤差行メモリ（２）と、誤差バッファレジスタファイル（３）と、誤差バッファレジスタファイル制御回路（６）と、グレー生成回路（７）と、誤差行制御回路（８）とを備えた装置（１）であって、
前記誤差行メモリ（２）は、処理期間中に誤差分散の結果をストアするために使用され、前記誤差バッファレジスタファイル（３）は、中間誤差値をバッファリングするために使用され、前記グレー生成回路（７）は、ソースピクセル、前記誤差行メモリ（２）、および誤差バッファレジスタファイル（３）に結合され、誤差分散の後ソースピクセルの最終グレーレベルを生成するために使用され、
前記しきい値比較回路（４）は、グレー生成回路（７）に接続されていて、最終グレーレベルをしきい値と比較して最終ハーフトーンドットを発生させ、前記誤差生成回路（５）は、グレー生成回路（７）に接続されていて、しきい値および最終グレーレベルに照らしてカレント誤差分散値を算出し、前記誤差バッファレジスタファイル制御回路（６）は、誤差バッファファイルの更新と出力を制御するために使用され、誤差バッファレジスタファイル制御回路（６）の入力は、誤差生成回路（５）、誤差行制御回路（８）、および誤差バッファレジスタファイル（３）のフィードバックから得られ、前記誤差行制御回路（８）は、誤差行メモリ（２）に結合されていて、誤差行メモリに対して読み書きアドレス、読み書き制御信号および読み書きデータを生成するために使用され、前記誤差行制御回路（８）の入力はカレント操作ピクセル、誤差バッファレジスタファイル制御回路（６）、および誤差生成回路（５）を含む座標から得られることを特徴とする装置。
【請求項７】
誤差バッファレジスタファイル（３）はトリガを含み、誤差分散バッファレジスタファイルおよび誤差累積バッファレジスタファイルを含んでおり、
前記誤差分散バッファレジスタファイルは、誤差行内のある位置の相対ピクセルのすべてからの誤差分散値のすべてをストアするのに十分になっており、カレント相対ピクセルはカレント操作行内のピクセルのすべてとしてセットされ、その誤差値は誤差行内のその位置に分散させることが可能であり、前記誤差累積バッファレジスタファイルはカレント操作行の後に続くオリジナル誤差行の相対累積誤差値のすべてをストアするのに十分になっており、前記相対累積誤差値は誤差行内のある位置のオリジナル累積誤差値を読み出してから、その位置の新しい累積誤差値に書き込むまでの行程における誤差行内の読み出されたオリジナル累積誤差値のすべてとしてセットされることを特徴とする請求項６に記載の装置。
【請求項８】
グレー生成回路（７）は加算器を含み、
前記加算器の入力は、ソースピクセル、誤差行から読み出されたカレント誤差値、および誤差バッファレジスタファイル内のバッファリングされたカレント誤差値から得られることを特徴とする請求項６に記載の装置。
【請求項９】
誤差バッファレジスタファイル制御回路（６）は、ｎ個のマルチプレクサを含み、
ｎは誤差バッファレジスタファイル内のレジスタの数であり、前記マルチプレクサの入力は、カレント誤差分散値、カレント累積誤差値、および誤差バッファレジスタファイル内のオリジナル値を含み、前記マルチプレクサの出力は誤差バッファレジスタファイル内のレジスタの更新値であることを特徴とする請求項６に記載の装置。
【請求項１０】
誤差行制御回路（８）は、読み取りアドレスレジスタ、書き込みアドレスレジスタ、読み書き制御回路、および書き込みデータ生成回路を含み、
前記読み取りアドレスレジスタおよび書き込みアドレスレジスタは、カレントピクセルの列番号別に生成され、
前記書き込みデータ生成回路は加算器を含み、前記加算器の入力は、オリジナル累積誤差値、カレント誤差分散値およびバッファリングされた相対誤差値から得られることを特徴とする請求項６に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデジタル画像ハーフトーンの分野においてハーフトーンドットを発生させるための方法および装置に関し、さらに具体的には、周波数変調（ＦＭ）ハーフトーンドットを高速で発生させることができる方法および装置に関する。
【背景技術】
【０００２】
デジタル画像ハーフトーンの技術としては、振幅変調スクリーニングと周波数変調スクリーニングとがある。誤差拡散法（Error Diffusion method）は、共通周波数変調スクリーニング法で広く使用されている。誤差拡散法では、ハーフトーンドットはオリジナル画像の各ドットのグレーレベルをしきい値と比較することによって作り出されているが、各ドットのグレーレベルとしきい値との差は隣接ドットに分散されている。例えば、２５６のグレーレベルを持つ画像では、しきい値は１２７にセットされている。比較後、グレーレベルが１５０であるドットはホワイトドット（white dot）になっている。しかし、このドットは、ドットのグレーレベルとホワイトドットとの間に差があるため、純粋にホワイトになっていないはずである。この誤差値２３は、なんらかの手段によってそのドットの前後の隣接ドットに分散されている。
【０００３】
Floyd-Steinberg法（algorithm）は、誤差拡散法のための最も周知の共通アルゴリズムである。このアルゴリズムを使用すると、カレントドットのグレーレベルがしきい値と比較された後、ドットのグレーレベルは１または０にセットされる（すなわち、ドットはブラックドットまたはホワイトドットにセットされる）。次に、グレーレベルとしきい値との差を計算することによって誤差が求められる。最後に、誤差は隣接ドットのグレーレベルを調整するために隣接ドットに分散される。特に、Floyd-Steinberg法によると、誤差値の７／１６がカレントドットに隣接し、その右側にあるドットに加算され、誤差値の５／１６は、カレントドットに対応している次の行内のドットに加算され、誤差値の３／１６は、次の行（row）内のカレントドットに対応するドットに隣接し、その左側にあるドットに加算され、誤差値の１／１６は次の行内のカレントドットに対応するドットに隣接し、その右側にあるドットに加算される。このようにして、カレントドットの誤差は隣接ドットに分散される。このプロセスは画像内のすべてのドットごとに実行され、ハーフトーンを生成し、グレーレベルを改善する。
【０００４】
Stucki法（algorithm）などの、いくつかの改良アルゴリズムがFloyd-Steinberg法に基づいて出現している。Stucki法を使用すると、カレントドットによって発生した誤差はカレントドットの１２個の隣接ドットに分散される。アウトプット画像の効果が向上しているのは、分散期間により多くのドットが関係しているためである。さらに、誤差を分散する期間に、各行のドットが左から右に向かって処理される場合、各行からの誤差は次の行の誤差に加算されるので、誤差が累積される。このようにすると、アウトプット画像は視覚に傾向を持つことになる。良好な効果を得るために、スキャンが行なわれるときＳ形状スキャン（S-shaped scan）が使用される。具体的に説明すると、画像全体について、奇数の行は左から右に向かってスキャンされ、偶数の行は右から左に向かってスキャンされる。
【０００５】
一般的に、誤差拡散法によると、良好な効果が得られる。しかし、この方法に欠点があることは明らかである。この方法によると、メモリにおける計算と操作の回数が多くなるためドットの発生速度が低速になっている。例えば、Stucki法をＳ形状スキャンと併用するとき、一般に誤差行メモリ（error row memory）と呼ばれているメモリは、誤差拡散の後、カレント行と次の２行の結果を格納するために使用されるのが一般的である。誤差行の各位置は対応する位置の累積誤差値（accumulated error value）を示している。従って、カレントピクセルおよび誤差行内の１２個の隣接位置に対応するオリジナル累積誤差値は、すべてのピクセルを処理するために読み出される必要がある。カレントピクセルの計算誤差値が得られた後、その値は１２個の隣接位置に分散される。各分散値は、対応する位置のオリジナル累積誤差値に加算され、その結果はそれぞれ誤差行内の１２個の位置に書き込まれる。以上から明らかであるように、従来の方法では、メモリにおいて要求される操作が多くなっている。メモリの読み書き速度はコンピュータシステムのボトルネックになっている。従って、誤差拡散法に基づくスクリーニング法を適用する範囲が制限されているのは、アウトプット効果を向上できる一方でその処理速度によるためである。誤差拡散法に基づく方法でドットを発生させる速度を向上するために特殊なハードウェアが使用されるのが一般的であるが、メモリにおける操作が複数あるため、速度に影響を与え、リアルタイム機能を持つ高速プリンタや複写マシンの要求条件を満たすことが困難であるので、誤差拡散法に基づくスクリーニング法は、最新の高速プリンタや複写マシンに適用することが困難になっている。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来技術の欠点を解消するために、本発明は、周波数変調ハーフトーンドットを高速で発生させることができる方法と装置を提供する。各々のピクセルを処理するとき、装置は、周波数変調ハーフトーンドットを発生させる速度を向上させるように、一回の読み取り操作と一回の書き込み操作だけで誤差行メモリにアクセスする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は周波数変調ハーフトーンドットを高速で発生させることを可能にする方法であって、
（ａ）列に編成し、誤差行メモリを初期化するステップと、
（ｂ）誤差バッファレジスタファイルをセットするステップと、
（ｃ）カレントソースピクセルを取得するステップと、
（ｄ）カレントソースピクセル、誤差行および誤差バッファレジスタファイルに基づいてハーフトーンドットを発生させるステップと、
（ｅ）誤差行および誤差バッファレジスタファイルを更新するステップと、
（ｆ）カレント行が完全に処理されるまで前記ステップ（ｃ）、（ｄ）および（ｅ）を繰り返すステップと、
（ｇ）画像が完全に処理されるまで前記ステップ（ｂ）、（ｃ）、（ｄ）、（ｅ）および（ｆ）を繰り返すステップと
を含むことを特徴とする方法を提供している。
【０００８】
さらに、本発明の効果を向上させるために、前記ステップ（ａ）は、さらに、
１）繰り返し使用される誤差行であって、１つのピクセルからの誤差をそこに分散させることができる行の数より少なくない誤差行の数を、ｎが正の整数である２ｎとしてセットするステップであって、当該誤差行メモリのバスの幅は２ｎ個の要素を誤差行メモリから同期的に読み書きすることを可能にするステップと、
２）同じ列では同じ数になっている誤差位置であって、２ｎ個の列の誤差位置の各々を隣接して配列するステップと、
３）誤差行を０として初期化するステップと、
を含むことを特徴としている。
【０００９】
本発明の効果を向上させるために、前記ステップ（ｂ）は、さらに、
１）誤差バッファレジスタファイルを、誤差分散バッファレジスタファイルと誤差累積バッファレジスタファイルを含むようにセットし、当該誤差分散バッファレジスタは、誤差行内のある位置の相対ピクセルのすべてからの誤差分散値のすべてをストアするのに十分になっており、カレント相対ピクセルはカレント操作行内のピクセルのすべてとしてセットされ、その誤差値は誤差行内のその位置に分散させることができ、当該誤差累積バッファレジスタファイルは、カレント操作行（current operating row）の後に続くオリジナル誤差行の相対累積誤差値のすべてをストアするのに十分になっており、相対累積誤差値は、誤差行内のある位置のオリジナル累積誤差値を読み出してからその位置の新しい累積誤差値を書き込むまでの行程における誤差行内の読み取られたオリジナル累積誤差値のすべてとしてセットされ、
２）誤差バッファレジスタファイルを初期化し、当該誤差バッファレジスタファイルファイルは、各々の行の処理の開始時に０として初期化される、
ことを含むことを特徴としている。
【００１０】
本発明の効果を向上させるために、前記ステップ（ｄ）は、さらに、
１）カレントソースピクセルの位置と、次の行および同じ列における位置とに対応する累積誤差値を誤差行メモリから同期的に読み出し、
２）同じ行内の先行ピクセルのすべてによって生成された誤差の分散に由来するカレントソースピクセルの誤差値の総和Ｓを、誤差バッファレジスタファイルに照らして計算し、
３）カレントピクセルに対応する位置のオリジナル累積誤差値、総和Ｓおよびカレントソースピクセルの値を加算することによってピクセルの最終値を求め、当該最終値をしきい値と比較することによって最終ハーフトーンビットを発生させる、
ことを含むことを特徴としている。
【００１１】
本発明の効果を向上させるために、前記ステップ（ｅ）は、さらに、
１）隣接するピクセルのすべてについて、カレントピクセルによって発生した誤差の分散によって引き起こされた値Ｄｊをピクセルの最終値としきい値とに照らして求め、
２）誤差分散バッファレジスタファイル内の各ピクセルの誤差分散値を、その次のピクセルの誤差分散値として更新し、最終ピクセルの誤差分散値を値Ｄｊとして更新し、
３）誤差累積バッファレジスタファイル内の各ピクセルの累積誤差値をその次のピクセルの累積誤差値として更新し、最終ピクセルの累積誤差値をカレントピクセルに対応していて、次の行内の位置のオリジナル累積誤差値として更新し、
４）誤差行内の１つの列内の書き込まれたデータ値のすべてを誤差バッファレジスタファイルに照らして求め、書き込まれたデータ値を誤差行メモリに同期的に書き込み、そこでは、誤差行内の列におけるある位置の書き込まれたデータ値は、その位置のオリジナル累積誤差値と、その位置に分散され、誤差バッファレジスタファイルにストアされたすべての誤差分散値との総和に等しくなっている、
ことを含むことを特徴としている。
【００１２】
上記方法を実施するために、本発明はハードウェア回路を使用した装置も提供する。この装置１は、誤差行メモリ（error row memory）２、誤差バッファレジスタファイル（error buffer register file）３、しきい値比較回路（threshold comparison circuit）４、誤差生成回路（error generation circuit）５、誤差バッファレジスタファイル制御回路（error buffer register file control circuit）６、グレー生成回路（gray generation circuit）７、および誤差行制御回路（error row control circuit）８を備える。さらに、誤差行メモリ２は処理期間中に誤差分散の結果をストアするために使用され、誤差バッファレジスタファイル３は中間誤差値をバッファリングするために使用され、グレー生成回路７は、ソースピクセル、誤差行メモリ２、および誤差バッファレジスタファイル３に結合され、誤差分散の後ソースピクセルの最終グレーレベルを生成するために使用される。しきい値比較回路４はグレー生成回路７に接続され、最終グレーレベルをしきい値と比較して最終ハーフトーンドットを発生させる。誤差生成回路５はグレー生成回路７に接続され、しきい値と最終グレーレベルに照らしてカレント誤差分散値を算出する。誤差バッファレジスタファイル制御回路６は誤差バッファレジスタファイルの更新と出力を制御するために使用され、誤差バッファレジスタファイル制御回路６の入力は誤差生成回路５、誤差行制御回路８および誤差バッファレジスタファイル３のフィードバックから得られ、誤差行制御回路８は誤差行メモリ２に結合され、誤差行メモリに対する読み書きアドレス、読み書き制御信号および読み書きデータを生成するために使用され、誤差行制御回路８の入力はカレント操作ピクセル、誤差バッファレジスタファイル制御回路６および誤差生成回路５を含む座標から得られる。また、当該装置が動作状態にあるとき、最終ピクセルのグレーレベルは、カレント操作ピクセル、誤差行メモリ２および誤差バッファレジスタファイル３に照らしてグレー生成回路７によって得られる。次に、ハーフトーンドットはしきい値比較回路４によって発生し、そのピクセルに対応する誤差分散値は最終ピクセルのグレーレベルに対して誤差生成回路５によって得られる。その後、誤差バッファレジスタファイル３および誤差行メモリ２は、それぞれ誤差バッファレジスタファイル制御回路６および誤差行制御回路８によって更新される。
【００１３】
さらに、装置において本発明の効果を向上させるために、誤差バッファレジスタはトリガを含み、誤差分散バッファレジスタファイルおよび誤差累積バッファレジスタファイルを含んでおり、誤差分散バッファレジスタファイルは誤差行内のある位置の相対ピクセルのすべてからの誤差分散値のすべてをストアするのに十分になっており、カレント相対ピクセルはカレント操作行内のピクセルのすべてとしてセットされ、その誤差値は誤差行内のその位置に分散させることができ、誤差累積バッファレジスタファイルは、カレント操作行の後に続くオリジナル誤差行の相対累積誤差値のすべてをストアするのに十分になっており、相対累積誤差値は、誤差行内のある位置のオリジナル累積誤差値を読み出してからその位置の新しい累積誤差値を書き込むまでの行程における誤差行内の読み出されたオリジナル累積誤差値のすべてとしてセットされる。
【００１４】
さらに、当該装置において本発明の効果を向上させるために、グレー生成回路は加算器を含み、当該加算器の入力はソースピクセル、誤差行から読み出されたカレント誤差値および誤差バッファレジスタファイル内のバッファリングされたカレント誤差値から得られる。グレー生成回路は、カレントソースピクセルの値、ピクセルに対応していて誤差行から読み出された誤差値、およびカレントピクセルをもつ行内の先行ピクセルによって当該カレントピクセルに対して生成された、誤差バッファレジスタファイル内のバッファリングされたカレント誤差値を加算することによってカレントピクセルの最終グレーレベルを得ている。
【００１５】
さらに、当該装置において本発明の効果を向上させるために、誤差バッファレジスタファイル制御回路はｎ個のマルチプレクサを含み、ここでｎは誤差バッファレジスタファイル内のレジスタの数であり、当該マルチプレクサは、処理するピクセルの各周期において各行の開始時に誤差バッファレジスタファイルの更新と初期化（ゼロにクリアする）を実行するために誤差バッファレジスタファイルの入力および制御信号を生成するために使用され、マルチプレクサの入力はカレント誤差分散値、カレント累積誤差値および誤差バッファレジスタファイル内のオリジナル値を含み、マルチプレクサの出力は誤差バッファレジスタファイル内のレジスタの更新値である。
【００１６】
さらに、当該装置において本発明の効果を向上させるために、誤差行制御回路は、読み取りアドレスレジスタ、書き込みアドレスレジスタ、読み書き制御回路、および書き込みデータ生成回路を含み、当該読み取りアドレスレジスタおよび書き込みアドレスレジスタは、カレントピクセルの列番号別に生成され、当該書き込みデータ生成回路は加算器を含み、当該加算器の入力はオリジナル累積誤差値、カレント誤差分散値、およびバッファリングされた相対誤差値から得られる。
【発明の効果】
【００１７】
本発明には次のような効果がある。すなわち、デジタル画像ハーフトーンの分野において、周波数変調ハーフトーンドットが誤差拡散法に基づく方法によって発生するとき、本発明の方法と装置は、各々のピクセルを処理する行程で一回の読み取り操作と一回の書き込み操作だけでメモリを操作する。さらに、本発明の方法と装置は特殊なハードウェア回路を使用して実現することができる。従って、周波数変調ハーフトーンドットを発生させる速度は向上する。
【発明を実施するための最良の形態】
【００１８】
以下、添付図面と実施形態を参照して本発明を詳しく説明する。
【００１９】
図１は、Floyd-Steinberg法に基づく誤差拡散（Error Diffusion）の原理を示す図である。カレントピクセル＊の誤差は図１に示す４個の隣接ピクセルに分散される。
【００２０】
図２は、Stucki法に基づく誤差拡散の原理を示す図である。カレントピクセル＊の誤差は図２に示す１２個の隣接ピクセルに分散される。一般的に、これらの１２個の位置のいくつかは、誤差分散比率（error distribution ratio）が同じになっている。図２に示すアルゴリズムは、５つの異なる誤差分散比率だけを必要としており、そこではカレントピクセル＊の誤差はＤ１＝１／４４、Ｄ２＝２／４４、Ｄ３＝５／４４、Ｄ４＝４／４４、およびＤ５＝８／４４の比率で分散させることができる。一般的に、このアルゴリズムとＳ形状スキャニングプロセス（S-shaped scanning process）が採用されるときは、カレントピクセルからの後続２行の累積誤差分散値を格納するために誤差行（error row）が必要になる。従って、３個の誤差行が必要になり、これらの行の幅はソース画像の幅に等しくなっている。以上から理解されるように、ピクセルが処理されるとき、誤差行メモリ（error row memory）内の１２個の位置上の累積誤差値を更新するために複数の読み書き操作が必要になる。
【００２１】
図３は、Stucki法に基づく７ピクセル幅の画像と共に誤差行メモリを示す図であり、そこでは（ｉ，ｊ）は、ピクセルが誤差行において行ｉと列ｊの位置にあることを示している。公知のように、Stucki法に基づく誤差行は繰り返し使用することができる。従って、必要になる誤差行は３つだけであり、そこではｉ番目の行内のピクセルと（ｉ＋３）番目の行内のピクセルは同じ誤差行を使用している。
【００２２】
図４に示すように、本発明は、画像に対してＦＭハーフトーンドットを高速で発生させることができる方法を提供しており、この方法は、
（１）列に編成し、誤差行メモリを初期化するステップと、
（２）誤差バッファレジスタファイルをセットするステップと、
（３）カレントソースピクセルを取得するステップと、
（４）カレントソースピクセル、誤差行および誤差バッファレジスタファイルに基づいてハーフトーンドットを発生させるステップと、
（５）誤差行および誤差バッファレジスタファイルを更新するステップと、
（６）ある行が完全に処理されたかどうかを判断し、処理されていなければ、プロセスはステップ（３）に戻され、処理されていれば、ステップ（７）を実行するステップと、
（７）画像が完全に処理されたかどうかを判断し、処理されていなければ、プロセスはステップ（２）に戻され、処理されていれば、プロセスを終了させるステップと、
を含んでいる。
【００２３】
図５は、ステップ（１）におけるStucki法に基づく誤差行メモリを示す図であり、そこでは画像は７ピクセル幅になっており、（ｉ，ｊ）はピクセルが誤差行の行ｉと列ｊの位置にあることを示している。従来のコンピュータシステムでは、メモリのデータバスの幅は一般に１６、３２、６４などの、２のｎ乗（ｎは一定の整数である）になっている。従って、本発明で使用される誤差行の数は２のｎ乗と定義されている。具体的には、Stucki法に基づく方法では、４個の誤差行が必要であり、これらの誤差行は繰り返し使用されている。すなわち、ｉ番目の行内のピクセルと（ｉ＋４）番目の行内のピクセルは同じ誤差行を使用している。さらに、図５に示すように、本発明の方法と従来技術の方法との違いは、本発明の方法では誤差行は列に編成され（すなわち、同じ列では数が同じになっている誤差行の４つの列の要素は隣接して配列されている）、誤差行の同じ列内のすべての累積誤差値は３２ビットのバス幅の誤差行メモリと共に同期的に読み書きされるようになっている。
【００２４】
図６は、ステップ（２）におけるStucki法に基づく誤差バッファレジスタファイルを示す図であり、このファイルにはカレント操作ピクセルおよびカレント操作行内のいくつかの先行相関ピクセル（correlative pixels）の誤差分散値のすべてと、カレント操作行の後に続く複数のオリジナル誤差行の値とが含まれている。例えば、図２に示すStucki法では、誤差行内のある位置の誤差は多くても、カレント行内の５つのピクセルに由来しているので、誤差バッファレジスタファイルは、その行内の５個の隣接ピクセルの誤差分散値のすべてをストアしているはずである。さらに、カレント操作ピクセルの誤差は次の２行内の２つの先行ピクセルだけに分散させることができるので、当然に理解されるように、カレント行の後の次の行内の最終誤差値だけが誤差行メモリ内のオリジナル値に相対し、次の行の後の行内の誤差値はカレント行が処理される前は０に等しくなっている。カレント行の次の行のある位置の最終累積誤差値を書き込むことは、後続の２ピクセルに対応する誤差行が読み出されたあと実行される。この行程において、読み取られた誤差行は３つのオリジナル累積誤差値になっている。従って、誤差バッファレジスタファイルにストアする必要があるのは、次の行内の誤差行の３つのオリジナル値だけである。本実施形態では、図６に示すように、誤差バッファレジスタファイルは、５個の隣接ピクセルの誤差分散値のすべてと、次の行内の誤差行の３つのオリジナル値とをバッファリングすることができ、そこではＰ５はカレント操作ピクセルとしてセットされ、ＰｉＤｊ（ｉ，ｊ＝１．．．５）は、それぞれ、誤差値Ｐ５および同じ行内の４つの先行隣接ピクセルの誤差値を示しており、ＰｉＬ１（ｉ＝３，４，５）は、それぞれ、読み取られた位置Ｐｉが誤差行メモリ内に置かれている行の後に続く行のオリジナル累積誤差値を示している。
【００２５】
本発明の方法において、カレントソースピクセル、誤差行および誤差バッファレジスタファイルに照らしてハーフトーンドットを発生させるステップ（４）は以下のステップを含んでいる。
【００２６】
１）カレントソースピクセルの位置と、次の行および同じ列内の位置とに対応する累積誤差値は、誤差行メモリから同期的に読み出される。誤差行は列に編成され、誤差行の数は誤差行メモリのバス幅に一致しているので、読み取りアドレスレジスタと書き込みアドレスレジスタはカレント操作ピクセルの列番号に照らして得られている。例えば、図２に示すStucki法によれば、カレント操作ピクセルの列番号がｊであると想定すると、読み取りアドレスレジスタは４＊ｊになっている。繰り返し使用される誤差行は４つであるので、誤差行が読み出された後、誤差行内のカレント操作ピクセルに対応するオリジナル累積誤差値Ｌ０は、カレント操作ピクセルの行番号の最後の２桁に従って得られる。誤差行における次の行内のピクセルに対応する値はＬ１としてセットされる。
【００２７】
２）同じ行内の先行ピクセルのすべてによって発生した誤差の分散から得られるカレントソースピクセルの誤差値の総和Ｓは、誤差バッファレジスタファイルに従って計算される。図２に示すように、Stucki法によればＳ＝Ｐ５Ｄ５＋Ｐ４Ｄ３である。
【００２８】
３）ピクセルの最終値は、カレントピクセルに対応する位置のオリジナル累積誤差値Ｌ０をＳとカレントソースピクセルの値に加算することによって得られる。最終ハーフトーンビットはこの値をしきい値と比較することにより得られる。
【００２９】
本発明の方法において、ステップ（５）は、さらに、以下のステップを含んでいる。
【００３０】
１）カレントピクセルによって発生した誤差を分散させると引き起こされる、すべての隣接ピクセルの値Ｄｊは、ピクセルの最終値としきい値に照らして得られる。図２に示すStucki法によれば、分散比率はＤ１＝１／４４、Ｄ２＝２／４４、Ｄ３＝５／４４、Ｄ４＝４／４４およびＤ５＝８／４４である。
【００３１】
２）誤差分散バッファレジスタファイル内の各ピクセルの誤差分散値は、その次のピクセルの誤差分散値として更新され、最終ピクセルの値はＤｊとして更新される。図２に示すStucki法によれば、ＰｉＤｊにはＰｉ＋１Ｄｊが割り当てられ、Ｐ５ＤｊにはＤｊ（ｉ＝１．．．４，ｊ＝１．．．５）が割り当てられる。
【００３２】
３）誤差累積バッファレジスタファイル内の各ピクセルの累積誤差値は、その次のピクセルの累積誤差値として更新され、最終ピクセルの値は、カレントピクセルに対応していて、次の行内の位置上のオリジナル累積誤差値として更新される。例えば、図２に示すStucki法によれば、ＰｉＬ１にはＰｉ＋１（ｉ＝３，４）が割り当てられ、Ｐ５Ｌ１にはＬ１が割り当てられる。
【００３３】
４）誤差行内のある列における書き込みデータ値のすべては誤差バッファレジスタファイルに照らして取得され、誤差行メモリに同期的に書き込まれ、そこでは誤差行内のある列におけるある位置の書き込みデータ値は、その位置上のオリジナル累積誤差値およびその位置に分散され、誤差バッファレジスタファイルにストアされた誤差分散値のすべての総和に等しくなっている。例えば、図２に示すStucki法によれば、カレント操作ピクセルがＰ５であると想定すると、Ｐ５の前で、１ピクセルによってＰ５から分離されたピクセルをもつ列の最終書き込みデータＰＬ１とＰＬ２は、次のように得ることができる。すなわち、ＰＬ１＝Ｐ３Ｌ１＋Ｐ１Ｄ２＋Ｐ２Ｄ４＋Ｐ３Ｄ５＋Ｐ４Ｄ４＋Ｐ５Ｄ２およびＰＬ２＝Ｐ１Ｄ１＋Ｐ２Ｄ２＋Ｐ３Ｄ３＋Ｐ４Ｄ２＋Ｐ５Ｄ１
本発明は、ＦＭハーフトーンドットを高速で発生させることができる装置１も提供しており、装置は、図７に示すように、次の７つのコンポーネント、すなわち、誤差行メモリ２、誤差バッファレジスタファイル３、しきい値比較回路４、誤差生成回路５、誤差バッファレジスタファイル制御回路６、グレー生成回路７、および誤差行制御回路８を備えている。
【００３４】
当該装置において、最終ピクセルのグレーレベルは、カレント操作ピクセル、誤差行メモリ２および誤差バッファレジスタファイル３に照らしてグレー生成回路７によって得られる。次に、ハーフトーンドットは、しきい値比較回路４によって発生され、そのピクセルに対応する誤差分散値は、最終ピクセルのグレーレベルに対して誤差生成回路５によって得られる。そのあと、誤差バッファレジスタファイル３および誤差行メモリ２は、誤差バッファレジスタファイル制御回路６および誤差行制御回路８によってそれぞれ更新される。
【００３５】
当該装置において、累積誤差値をストアするために列に編成された誤差行メモリ２は、制御回路８に結合され、制御回路８の制御下に置かれている。
【００３６】
誤差バッファレジスタファイル３は、中間誤差分散値をバッファリングするように構成されたハードウェアトリガを含んでいる。誤差バッファレジスタファイル３は、制御回路６に結合され、制御回路６の制御下に置かれている。
【００３７】
グレー生成回路７は、ソースピクセルの最終グレーレベルを生成するために使用される。その入力端はソースピクセルと誤差バッファレジスタファイル制御回路６に結合され、その出力端はしきい値比較回路４と誤差生成回路５に結合されている。図８は、ＦＭハーフトーンドットを高速で発生させることができる装置内のグレー生成回路を示すブロック図である。各ピクセルの最終グレーレベルは加算器によって生成され、ソースピクセル、そのピクセルに対応していて、誤差行から読み出されたカレント誤差値、および誤差バッファレジスタファイル内にあって、同じ列内のカレントピクセルに先行するピクセルによって生成されたカレントバッファリング誤差値の総和に等しくなっている。例えば、図２に示すStucki法によれば、この回路の論理式は、ピクセルの最終グレーレベル＝ソースピクセル値＋Ｌ０＋（Ｐ５Ｄ５＋Ｐ４Ｄ３）になっている。
【００３８】
しきい値比較回路４は、しきい値をグレー生成回路７によって生成されたグレーレベルと比較してハーフトーンを発生させるために使用される。しきい値比較回路４の入力端はグレー生成回路７に結合され、この回路４の出力は最終ハーフトーンドットである。
【００３９】
誤差生成回路５はカレントピクセルの誤差分散値を、計算またはサーチによってグレー生成回路７によって生成されたグレーレベルに照らして生成するために使用される。誤差生成回路５の入力端はグレー生成回路７に結合され、この回路５の出力端は誤差バッファレジスタファイル制御回路６と誤差行制御回路８に結合されている。
【００４０】
誤差バッファレジスタファイル制御回路６は、誤差バッファレジスタファイルの更新を制御するために使用される。この制御回路６の入力端は、誤差生成回路５、誤差行制御回路８および誤差バッファレジスタファイル３に結合され、この回路６の出力端は、誤差行制御回路８、誤差バッファレジスタファイル３およびグレー生成回路７に結合されている。図１０は、ＦＭハーフトーンドットを高速で発生させることができる装置内の誤差バッファレジスタファイル制御回路に含まれるマルチプレクサを示すブロック図である。ｎ個のマルチプレクサを使用して、誤差バッファレジスタファイル制御回路は、１つのピクセルを処理した後、誤差バッファレジスタファイルを更新し、各行の開始時に初期化（ゼロにクリアする）する。ここでｎは誤差バッファレジスタファイル内のレジスタの数である。すなわち、誤差バッファレジスタファイル内の各レジスタは１つのマルチプレクサに対応付けられている。１つのマルチプレクサの入力は、カレント操作ピクセルの誤差分散値（すなわち、カレント誤差分散値）、カレント操作ピクセルのあとの次の行内にあって、誤差行から読み出された累積誤差値、および誤差バッファレジスタファイル内のオリジナル値のすべてを含んでいる。また、１つのマルチプレクサのアウトプットは誤差バッファレジスタファイル内のレジスタにおける更新値である。例えば、図２に示すStucki法によれば、カレント誤差分散値Ｄｊとカレント累積誤差値Ｌ１が取得された後、１つのマルチプレクサの出力は、Ｐｉ＋１ＤｊがＰｉＤｊに対応し、ＤｊがＰ５Ｄｊ（ｉ＝１．．．４，ｊ＝１．．．５）に対応し、Ｐｉ＋１Ｌ１がＰｉＬｊに対応し、Ｌ１がＰ５Ｌ１に対応するものとして示すことができる。
【００４１】
誤差行制御回路８は、誤差行メモリ２の読み書きを制御するために使用される。誤差行制御回路８の入力は誤差生成回路５と誤差バッファレジスタファイル制御回路６から得られ、出力端はグレー生成回路７に結合されている。さらに、誤差行制御回路８は誤差行メモリ２に結合されている。図９は、ＦＭハーフトーンドットを高速で発生させることができる装置内の誤差行制御回路を示すブロック図であり、この制御回路は読み取りアドレスレジスタ、書き込みアドレスレジスタ、読み書き制御回路、および書き込みデータ生成回路を含み、読み取りアドレスレジスタおよび書き込みアドレスレジスタはカレント操作ピクセルの座標に従って計算され、書き込みデータ生成回路は加算器を含んでいる。誤差行の書き込みデータの列は、オリジナル累積誤差値、カレント誤差分散値およびバッファリングされた相対誤差値に照らして書き込みデータ生成回路によって得られる。読み書き制御回路は、誤差行メモリの読み書き制御信号を生成するために使用される。例えば、図２に示すStucki法によれば、カレント操作ピクセルの列番号がｊであると想定すると、読み取りアドレスレジスタは４＊ｊであり、書き込みアドレスは４＊（ｊ−２）である。書き込みデータＰＬ１とＰＬ２の列は誤差行の書き込みデータ生成回路によって生成され、そこではＰＬ１はＰＬ１＝Ｐ３Ｌ１＋Ｐ１Ｄ２＋Ｐ２Ｄ４＋Ｐ３Ｄ５＋Ｐ４Ｄ４＋Ｐ５Ｄ２として示すことができ、ＰＬ２はＰＬ２＝Ｐ１Ｄ１＋Ｐ２Ｄ２＋Ｐ３Ｄ３＋Ｐ４Ｄ２＋Ｐ３Ｄ１として示すことができる。
【００４２】
図１１は、ピクセルが本発明における方法に従って処理されるときの誤差行メモリの読み書きプロセスを示す図である。例えば、図２に示すStucki法によれば、シンボル＊がカレント操作ピクセルを示すと想定すると、従来技術が使用される場合、ＰＬ２、ＰＬ１、Ｌ０、Ｌ１および図１１に示す誤差行内のＸでマークしたすべての位置上のオリジナルコンテンツを、カレント操作ピクセル＊の処理時に読み出す必要がある。カレント操作ピクセルを処理した後、カレントピクセルに隣接する１２個の位置上の累積値を更新する必要もある。これに反して、本発明で提供している方法と装置を使用すると、カレントピクセル＊を処理するとき、Ｌ０とＬ１が最初に誤差行メモリから読み出される。Ｌ０は最終グレーを生成するために使用され、Ｌ１は以後のＰＬ１の生成に備えてバッファリングされる。カレント操作ピクセルの誤差分散値Ｄｊが生成された後、当然に理解されるように、誤差行メモリ内のＰＬ１とＰＬ２の値を判断して、書き込むことができる。後続の行内のピクセルを処理する行程では、誤差行内のピクセルのコンテンツは変更されることがない。さらに、ＰＬ１とＰＬ２の最終累積値を変更する相対誤差値のすべては誤差バッファレジスタファイルにバッファリングされるので、ＰＬ２とＰＬ１の書き込みは、メモリを再び読み取ることなく完了することができる。誤差行は本発明によれば列に編成されている。従って、Ｌ０とＬ１を読み取るために必要なメモリの読み取り操作は一回で済み、ＰＬ２とＰＬ１を書き込むのに必要なメモリの書き込み操作は一回で済むことになる。このことから明らかであるように、本発明における方法を使用すると、１つのピクセルを処理するときＬ１とＬ２を読み出すとき必要なメモリの読み取り操作は一回で済み、ＰＬ２とＰＬ１を書き込むとき必要な書き込み操作は一回で済むことになる。従って、ハーフトーンドットを発生させる速度は大幅に向上されることになる。
【００４３】
本発明の一実施形態について上述してきたが、本発明はその実施形態に限定されない。例えば、各誤差値が１２個の隣接位置に分散するStucki法と関連付けて実施形態を上述してきたが、本発明は、誤差拡散の原理に基づく方法にも適応性があり、誤差をより多くのドットに分散されたハーフトーンドットを発生させることができる。従って、本発明の要旨と原理から逸脱しない限り、いかなる変更、置換および改良も本発明の範囲に属するものである。
【図面の簡単な説明】
【００４４】
【図１】Floyd-Steinberg法に基づく誤差拡散の原理を示す図である。
【図２】Stucki法に基づく誤差拡散の原理を示す図である。
【図３】一般的にStucki法に基づく７ピクセル幅の画像と共に誤差行メモリを示す図である。
【図４】本発明の方法に従って画像を処理するフローチャートを示す図である。
【図５】本発明の方法に従ってStucki法に基づく７ピクセル幅の画像と共に誤差行メモリを示す図である。
【図６】本発明の方法に従ってStucki法に基づく誤差バッファレジスタファイルを示す図である。
【図７】本発明に従ってＦＭハーフトーンドットを高速で発生させる装置を示すブロック図である。
【図８】本発明に従ってＦＭハーフトーンドットを高速で発生させる装置におけるグレー生成回路を示すブロック図である。
【図９】本発明に従ってＦＭハーフトーンドットを高速で発生させる装置における誤差行の制御回路を示すブロック図である。
【図１０】本発明に従ってＦＭハーフトーンドットを高速で発生させる装置における誤差バッファレジスタファイルの制御回路内のマルチプレクサを示すブロック図である。
【図１１】本発明の方法に従ってピクセルが処理されるときの誤差行メモリの読み書きプロセスを示す図である。
【図１】
2008535419.tif 000003
【図２】
2008535419.tif 000004
【図３】
2008535419.tif 000005
【図４】
2008535419.tif 000006
【図５】
2008535419.tif 000007
【図６】
2008535419.tif 000008
【図７】
2008535419.tif 000009
【図８】
2008535419.tif 000010
【図９】
2008535419.tif 000011
【図１０】
2008535419.tif 000012
【図１１】
2008535419.tif 000013
【国際調査報告】
2008535419.tif 000014
2008535419.tif 000015
2008535419.tif 000016
2008535419.tif 000017
2008535419.tif 000018
2008535419.tif 000019