(57)【要約】  本発明は、マルチサイトＦＭスクリーンドットを同時に生成する方法及び装置に関する。本発明による方法は、毎回同じ行内の多数の近隣の画素を同時に処理し、マルチサイトスクリーンドットを生成させることができ、本発明による方法は、誤差行メモリの多数の位置の誤差蓄積値を同時に更新することができる。本発明による装置は、誤差行メモリ、誤差行メモリ制御回路、誤差割当／蓄積レジスタファイル、誤差割当／蓄積レジスタファイル制御回路、及びスクリーンドット生成回路からなっている。本発明による方法及び装置は、多数の近隣の画素を毎回処理する間に、誤差行メモリの１回の読取／書込動作のみが必要であるので、ＦＭスクリーンドットの生成速度を格段に改善できる。 【選択図】図４
2010504007.tif 000002
【特許請求の範囲】
【請求項１】
マルチサイトＦＭスクリーンドットを同時に生成する方法であって、
画素点の最終誤差蓄積値及び中間誤差蓄積値を記憶するように構成された誤差行メモリを初期化するステップと、
誤差割当／蓄積レジスタファイルを初期化するステップと、
行・列をなす画素の各行ごとに、及び各行内のＮ個の近隣の画素からなるグループごとに、前記画素のオリジナルグレーレベル（ソース画素値）を取得し、前記誤差行メモリ及び前記誤差割当／蓄積レジスタファイルに記憶された値に従って前記Ｎ個の画素のスクリーンドットを生成するステップであって、Ｎ≧２であるステップと、
１つの前記グループ内のＮ個の近隣の画素が処理される毎に、前記誤差行メモリ及び前記誤差割当／蓄積レジスタファイル内の値を更新するステップとを含むことを特徴とする方法。
【請求項２】
前記誤差割当／蓄積レジスタファイルは、誤差割当レジスタファイル及び誤差蓄積レジスタファイルを含んでおり、前記誤差割当レジスタファイルは、フォローアップ誤差処理で使用するために、現在処理されている画素の前に処理された現在の行内の画素からの誤差割当値を記憶するように構成されており、前記誤差蓄積レジスタファイルは、前記誤差行メモリから読み取られた画素点の中間誤差蓄積値をキャッシングするように構成されている、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記現在のＮ個の画素のオリジナルグレー値（レベル）、並びに、前記誤差行メモリ及び前記誤差割当／蓄積レジスタファイル内に記憶された値に従って前記Ｎ個の画素のスクリーンドットを生成する方法がさらに、
前記誤差行メモリから、前記現在のＮ個の近隣の画素に対応するＮ個の最終誤差蓄積値を読み取り、前記誤差割当／蓄積レジスタファイルによってＮ個の合計誤差割当値を取得するステップであって、前記Ｎ個の合計誤差割当値は、前記現在のＮ個の画素と同じ行内にあって、前記現在のＮ個の画素に先立って処理された全ての画素から得られる誤差割当値を合計することによって作り出されるステップと、
前記Ｎ個のオリジナルグレー値、前記Ｎ個の最終誤差蓄積値、及び前記Ｎ個の合計誤差割当値に従って、前記現在のＮ個の近隣の画素の最終グレー値を順次算出し、前記最終グレー値を用いて、前記Ｎサイトスクリーンドットを生成すると共に、周辺画素に対する前記現在のＮ個の画素からの誤差割当値を算出するステップとを含む方法であって、
前記現在のＮ個の画素のいずれか１つが処理された後に、前記周辺画素のうち前記Ｎ個の画素の内の引き続いて処理すべき画素点に対して生成された誤差割当値が、前記引き続いて処理すべき画素点の最終グレー値を算出するために使用される、ことを特徴とする請求項１に記載の方法。
【請求項４】
前記誤差行メモリから、前記Ｎ個の近隣の画素に対応するＮ個の最終誤差蓄積値を読み取ると共に、前記Ｎ個の近隣の画素に対して後続する行内の対応するＮ個の近隣の画素の中間誤差蓄積値を読み取る、ことを特徴とする請求項１に記載の方法。
【請求項５】
前記誤差行メモリ内のデータを更新する方法は、
前記現在の行内のＮ個の近隣の画素Ｐｉ，ｊ〜Ｐｉ，ｊ＋Ｎ−１を処理した後に、前記誤差割当／蓄積レジスタファイルに記憶された中間誤差蓄積値及び現在の行内の先行して処理された画素からの誤差割当値に従って、現在の行ｉの次の行（ｉ＋１）内のＮ個の近隣の画素Ｐｉ＋１，ｊ−Ｎ〜Ｐｉ＋１、ｊ−１の最終誤差蓄積値、及び現在の行の２つ先の行（ｉ＋２）内の対応するＮ個の近隣の画素Ｐｉ＋２、ｊ〜Ｐｉ＋２、ｊ−１の中間誤差蓄積値を得るステップを含んでいる、ことを特徴とする請求項１又は３に記載の方法。
【請求項６】
前記誤差割当／蓄積レジスタファイル内のデータを更新する方法は、
前記誤差割当レジスタファイル内の各Ｎ個の近隣の画素の誤差割当値を全て列としてとるステップと、Ｎ個の近隣の画素の次の列の誤差割当値となるようにＮ個の近隣の画素の前の列の誤差割当値を更新するステップと、現在のＮ個の近隣の画素の誤差割当値となるようにＮ個の近隣の画素の最終列の誤差割当値を更新するステップと、現在のＮ個の近隣の画素に対応する次の行（ｉ＋１）のＮ個の近隣の画素Ｐｉ＋１、ｊ〜Ｐｉ＋１、ｊ＋Ｎ−１の中間誤差蓄積値となるように誤差蓄積レジスタファイル内のオリジナルのＮ個の近隣の画素Ｐｉ＋１，ｊ−Ｎ〜Ｐｉ＋１，ｊ−１の中間誤差蓄積値を更新するステップとを含む、ことを特徴とする請求項２に記載の方法。
【請求項７】
ソース画素のオリジナルグレー値はスキャンによって得られ、スキャンはＳ字形である、即ち偶数行では左から右に、奇数行では右から左へ、又はその逆のスキャンである、ことを特徴とする請求項１又は３に記載の方法。
【請求項８】
誤差行メモリのバス幅がＮ×Ｗ×（Ｈ−１）であり、Ｎは現在同時に処理されている画素の数のことであり、Ｗは誤差行メモリ内の１つの位置でのデータ幅であり、Ｈは現在処理されている画素が置かれる行を含む、１つの画素の誤差を拡散することができる行の数である、ことを特徴とする請求項１に記載の方法。
【請求項９】
マルチサイトＦＭスクリーンドットを同時に生成する装置（１）であって、
誤差行メモリ（２）、及びこれに接続された誤差行メモリ制御回路（４）と、
誤差割当／蓄積レジスタファイル（３）、及びこれに接続された誤差割当／蓄積レジスタファイル制御回路（５）と、
グレー生成回路（７）、並びに、それぞれ、前記グレー生成回路の出力端部に接続された閾値比較回路（８）及び誤差生成回路（９）からなり、１つの画素の最終スクリーンドット、及びこの画素から周辺画素への誤差割当値を生成するように構成されている、複数のスクリーンドット生成回路（１０）とを備えた装置であって、
前記スクリーンドット生成回路（１０）それぞれの誤差生成回路（９）の出力端部が、前記スクリーンドット生成回路（１０）に後続するスクリーンドット生成回路（１０）内のグレー生成回路（７）の入力端部に接続されていると共に、前記誤差行メモリ制御回路（４）及び前記誤差割当／蓄積レジスタファイル制御回路（５）の入力端部に接続されており、
前記誤差行メモリ制御回路（４）及び前記誤差割当／蓄積レジスタファイル制御回路（５）の出力端部が、前記各スクリーンドット生成回路（１０）内の前記グレー生成回路（７）の入力端部に接続されている、ことを特徴とする装置。
【請求項１０】
前記誤差割当／蓄積レジスタファイル（３）は、トリガからなるレジスタアレイによって達成され、誤差割当レジスタファイル及び誤差蓄積レジスタファイルを備えており、前記誤差割当レジスタファイルは、フォローアップ誤差処理に有用であり、現在処理されている画素に先行して処理された現在の行内の画素からの誤差割当値を記憶するように構成されており、前記誤差蓄積レジスタファイルは前記誤差行メモリから読み取った画素点の中間誤差蓄積値をキャッシングするように構成されている、ことを特徴とする請求項９に記載の装置。
【請求項１１】
前記誤差行メモリ制御回路（４）は、読取アドレスレジスタ、書込アドレスレジスタ、読取／書込制御回路、及び書込データ生成回路を備えており、前記読取アドレスレジスタ及び前記書込アドレスレジスタは、現在処理されている画素のうちの第１の画素の列数（アドレス）に合わせて生成され、前記書込データ生成回路は加算器からなり、前記加算器の入力は、前記誤差蓄積値、現在の画素全てを処理した後に生成された前記誤差割当値、及び前記誤差割当レジスタファイルに記憶された関連する誤差割当値からもたらされる、ことを特徴とする請求項９に記載の装置。
【請求項１２】
前記誤差行メモリ制御回路（４）は、前記誤差行メモリの読取／書込アドレス、読取／書込制御信号、及び読取／書込データを生成するために前記誤差行メモリ（２）に接続されており、前記誤差行メモリ制御回路（４）の入力は、現在処理されている画素のうちの第１の画素の座標（アドレス）、前記誤差割当／蓄積レジスタファイル制御回路（５）の出力、及び前記スクリーンドット生成回路（１０）の各グループの前記誤差生成回路（９）の出力を含んでいる、ことを特徴とする請求項１１に記載の装置。
【請求項１３】
前記誤差割当／蓄積レジスタファイル制御回路（５）は、前記誤差割当／蓄積レジスタファイル（３）のデータを更新及び初期化するために、前記誤差割当／蓄積レジスタファイル用の制御信号を生成する複数のマルチプレクサを備えている、ことを特徴とする請求項９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル画像ハーフトーニング（ｈａｌｆ−ｔｏｎｉｎｇ）の分野のスクリーンドット生成方法及び装置に関し、より詳細には、マルチサイト周波数変調（ＦＭ）スクリーンドットを同時に生成する方法及び装置に関する。
【背景技術】
【０００２】
誤差拡散は、最も一般的に使用されるＦＭスクリーニング方法である。この方法によると、ソース画像の各画素点のグレーレベルを、スクリーンドットを生成させる閾値と比較し、画素点のグレーレベルと閾値の誤差がその画素点の周辺の画素点に拡散される。例えば、２５６グレーレベルの画像で閾値が１２７であり、特定の画素点のグレーレベルが１５０である場合、閾値との比較の結果、その画素点は白色スクリーンドット（白色スクリーンドットのグレーレベルは２５５である）として記録されなければならない。実際にはこの画素点は本当の白色ではないから、本当の白色に対して１０５の誤差値を有し、１０５の誤差は何らかの方法でこの画素点の周りの画素点に拡散される。一般的な誤差拡散方法としては、Ｆｌｏｙｄ−Ｓｔｅｉｎｂｅｒｇアルゴリズム、及びＪａｒｖｉｓアルゴリズムがある。
【０００３】
Ｆｌｏｙｄ−Ｓｔｅｉｎｂｅｒｇアルゴリズムは、１つの画素の誤差を、この画素を囲む４つの画素点に割り当てることを言う。即ち、誤差の７／１６が現在の画素点の右側にある第１の画素点に加えられ、誤差の５／１６が現在の画素点に対して次の行で同一位置にある第２の画素点に加えられ、誤差の３／１６が第２の画素点の左側にある第３の画素点に加えられ、誤差の１／１６が第２の画素点の右側にある画素点に加えられる。この過程は、繰り返し行なわれ、グレーレベル及びハーフトーニングの同じ修正が画像内の各画素点に対して行なわれる。
【０００４】
Ｊａｒｖｉｓアルゴリズムでは、図１（Ａ）に示すように、現在の画素Ｘの誤差を１２個の近隣の（ｎｅｉｇｈｂｏｒｉｎｇ）画素に割り当てる。１２個の画素位置のうちのいくつかの位置の画素に対する誤差割り当て比が同一であり、従って４種の異なる誤差割り当て比のみが必要であり、現在の画素Ｘの誤差を画素位置Ｄ１〜Ｄ４に対して各々、Ｄ１＝１／４８、Ｄ２＝３／４８、Ｄ３＝５／４８、及びＤ４＝７／４８の比で割り当てる。Ｊａｒｖｉｓ誤差拡散方法に基づく画像ハーフトーニング処理は、誤差拡散の範囲を拡大することによってより優れた効果を達成することができるが、この方法による誤差拡散は、より多くの行及びより多くの画素点が関係するので記憶容量の増加及び処理速度の低下につながり、従ってリアルタイム要求を満たすことができず、応用分野は限られる。
【０００５】
加えて、上記アルゴリズムを使用した誤差拡散の最中に、ソース画像が常に単方向スキャンのみにより処理される場合、各スキャン行の誤差は次の行に単純に加算され、出力パターンにおける画像の駆動傾向（ｄｒｉｖｉｎｇ＿ｔｅｎｄｅｎｃｙ）によって示される誤差蓄積につながる。従って、スキャン方法としては、Ｓ字形スキャンを通常採用する。即ち、奇数行に対しては図１（Ａ）に示すような誤差割り当て比を用いて左から右へスキャンし、偶数行に対しては図１（Ｂ）に示すような誤差割り当て比を用いて右から左へのスキャン（又は、その逆）する。スキャンは、最終行までこのように繰り返される。
【０００６】
特許文献１は、高速でＦＭスクリーンドットを生成する方法を開示しており、この方法はメモリの操作回数を減少できるが、画像を１時に１個ごとしか処理できないので、多数の画素を同時に処理できず、従って多数のスクリーンドットを同時に生成できない。
【０００７】
特許文献２は、誤差拡散の並列処理方法を開示している。この方法は複数の画素点を同時に処理できるが、メモリ上で多数の読取／書込操作を行なう必要がある一方、Ｓ字形画像スキャンをソース画像上で実行できないので、スクリーンドットの生成速度に影響し、その結果、誤差蓄積により生じる駆動効果の排除がうまく行かなくなる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】中国特許出願ＣＮ２００５１００６３２５５．３号（２００５年９月１４日公開）
【特許文献２】米国特許５２７１０７０号「Ｍｕｌｔｉ−ｄｉｍｅｎｓｉｏｎａｌ  ｅｒｒｏｒ  ｄｉｆｆｕｓｉｏｎ  ｔｅｃｈｎｉｑｕｅ」
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、上記従来技術の欠点に鑑みて、複数の画素を同時に処理するにも拘わらず、メモリの読取及び書込回数を格段に削減し、ＦＭスクリーンドットの生成速度を向上できる、マルチサイトＦＭスクリーンドットを同時に生成する方法及び装置を提供することを目的としている。
【課題を解決するための手段】
【００１０】
本発明による、マルチサイトＦＭスクリーンドットを同時に生成する方法は、
画素点（以下、「画素点」「点」「画素」「サイト」は同義に用いる。）の最終誤差蓄積値及び中間誤差蓄積値を記憶するように構成された誤差行メモリを初期化するステップと、
誤差割当／蓄積レジスタファイルを初期化するステップと、
行・列をなす画素の各行ごとに、及び各行内のＮ個の近隣の（ｎｅｉｇｈｂｏｒｉｎｇ）画素からなるグループごとに、前記画素のオリジナルグレーレベル（ソース画素値）を取得するステップと、前記誤差行メモリ及び前記誤差割当／蓄積レジスタファイルに記憶された値に従って前記Ｎ個の画素（サイト）のスクリーンドットを生成するステップであって、Ｎ≧２であるステップと、
１つの前記グループ内のＮ個の近隣の画素が処理される毎に、前記誤差行メモリ及び前記誤差割当／蓄積レジスタファイル内の値を更新するステップとを含む、
ことを特徴とする。
【００１１】
本発明による、マルチサイトＦＭスクリーンドットを同時に生成する装置は、
誤差行メモリ及びそこに接続された誤差行メモリ制御回路と、
誤差割当／蓄積レジスタファイル及びそこに接続された誤差割当／蓄積レジスタファイル制御回路と、
複数のスクリーンドット生成回路とを備えたマルチサイトＦＭスクリーンドットを同時に生成する装置を提供し、
この回路はそれぞれ中で出力端部に接続されたグレー生成回路及び閾値比較回路及び誤差生成回路からなり、
１つの画素の最終スクリーンドット及び周りの画素へのこの画素の誤差割当値を生成するように構成されており、
前記各スクリーンドット生成回路内の誤差生成回路の出力端部は、以下のスクリーンドット生成回路内の前記多数のスクリーンドット生成回路のうちグレー生成回路の入力端部に接続されており、
誤差行メモリ制御回路及び誤差割当／蓄積レジスタファイル制御回路の入力端部に接続されており、
誤差行メモリ制御回路及び誤差割当／蓄積レジスタファイル制御回路の出力端部は、各スクリーンドット生成回路内のグレー生成回路の入力端部に接続されている、
ことを特徴とする。
【発明の効果】
【００１２】
本発明による方法及び装置は、画像の同じ行に属する複数の近隣の画素点を同時に処理してマルチサイトスクリーンドットを生成し、１回の読取操作及び１回の書込操作のみにより誤差行メモリ内の複数の誤差蓄積値の更新を達成できるので、それによりメモリの読取及び書込回数を格段に削減し、ＦＭスクリーンドットの生成速度を向上できる。
【図面の簡単な説明】
【００１３】
【図１】（Ａ）は、Ｓ字形スキャン中のＪａｒｖｉｓアルゴリズムに基づいた偶数行内の画素Ｘの誤差拡散原理の略図であり、  （Ｂ）は、Ｓ字形スキャン中のＪａｒｖｉｓアルゴリズムに基づいた奇数行内の画素Ｘの誤差拡散原理の略図であり、  （Ｃ）及び（Ｄ）は、Ｊａｒｖｉｓアルゴリズムに基づいた誤差拡散割当の略図である。
【図２】は、本発明の一実施形態による、同じ行内の多数の近隣の画素を処理する高速ＦＭスクリーンドット生成装置のブロック図である。
【図３】は、図２に示すような装置内のスクリーンドット生成回路のブロック図である。
【図４】は、本発明の一実施形態による同じ行内の多数の近隣の画素を処理する高速ＦＭスクリーンドット方法のフローチャートである。
【図５】は、本発明の一実施形態によるＪａｒｖｉｓアルゴリズムに基づく同じ行内の２つの隣接する画素を処理する高速ＦＭスクリーンドット生成装置のブロック図である。
【図６】（Ａ）は、図２に示すような装置のグレー生成回路Ｉの原理図であり、  （Ｂ）は、図２に示すような装置のグレー生成回路ＩＩの原理図である。
【図７】（Ａ）は、本発明の一実施形態によるＪａｒｖｉｓアルゴリズムに基づく同じ行内の２つの隣接する画素を処理する高速ＦＭスクリーンドット生成装置内の８画素の画像幅を有する誤差行メモリの略図であり、  （Ｂ）は、処理した画像の特定の３つの隣接する行の画素点の一部の略図である。
【図８】は、図２に示すような装置内の誤差行メモリを読み取り、これに書き込むプロセスの略図である。
【図９】は、図２に示すような装置内の誤差行メモリ制御回路のブロック図である。
【図１０】は、図２に示すような装置の誤差割当／蓄積レジスタファイルの構造の略図である。
【図１１】は、図２に示すような装置内の誤差割当／蓄積レジスタファイル制御回路内のマルチプレクサの操作原理の略図である。
【図１２】は、図２に示すような装置の誤差割当／蓄積レジスタファイル内のデータを更新するプロセスの略図である。
【発明を実施するための形態】
【００１４】
本発明を、説明の図面及びその実施形態と合わせて以下にさらに詳細に説明する。
【００１５】
本発明による誤差拡散装置を採用した基本的原理及び装置を、最初に簡単に説明する。
【００１６】
誤差拡散中、各点はその周りの点への誤差拡散を有する。それに応じて、現在処理される点は、周りの点の誤差拡散によって影響を受ける。従って、現在の画素点に影響を与える全ての点は、現在の画素点を処理するために処理されなければならない。（以下、「画素点」「点」「画素」「サイト」は同義に用いる。）
【００１７】
Ｆｌｏｙｄ−Ｓｔｅｉｎｂｅｒｇアルゴリズムを例としてとると、１つの画素点の誤差がその周りの４点に拡散されるので、規則を簡単に得ることができる、即ち、あらゆる画素点がその周りの４点の誤差拡散によって影響を受けるだけである。即ち、１つの画像がｎ行及びｍ列に配置された画素点からなり、ｉは行番号、ｊは列番号（これらｉ、ｊは、以下同じ意味で使う）とすると、行（ｉ−１）の画素点Ｐｉ−１，ｊ＋１を処理した時点で初めて、行（ｉ−１）の画素点からの誤差拡散のうち画素点Ｐｉ，ｊに集束する誤差拡散を全て算出することができる。
従って、画素点Ｐｉ，ｊに対する行（ｉ−１）の点からの誤差拡散の蓄積値は、行（ｉ−１）の残りの点が全て処理されるまでのあいだ記憶しておくメモリが必要があり、この誤差蓄積値は、行（ｉ）の各点を処理する際に抽出されて、Ｐｉ，ｊのスクリーンドット値及び周りの画素への画素点Ｐｉ，ｊからの誤差拡散を算出する際に使われる。画像が多数の行をなす画素点からなり、このようなメモリは、一般に画素点の誤差蓄積値を行ごとに記憶するので、誤差行メモリと呼ばれる。本発明の一実施形態によると、ＳＲＡＭ（静的ランダムアクセスメモリ）が誤差行メモリとして採用される。
【００１８】
この場合、特定の画素点の、スクリーンドット値及び誤差拡散を算出する場合、最初に、この現在の画素のソースグレーレベルを取得し、誤差行メモリから読み取ったこの時点での直前の行の画素点からの誤差蓄積値を加え、さらに、この現在の画素点が乗っている行の、この現在の画素点に先行する画素点からの誤差拡散を加えて、この現在の画素点の最終グレーレベルを得る。この画素のスクリーンドットは、得られた最終グレーレベルと閾値を比較することによって生成でき、この画素がその周りの点に割り当てる誤差値を得ることもできる。本発明では、先行誤差拡散でもある、誤差拡散アルゴリズムにより近隣の画素に割り当てられた各画素の誤差値は、誤差割当値と呼ばれる。
【００１９】
このように１つの画素点からその周りの点への誤差割当値を得た後、これらの誤差割当値は、画素の誤差拡散によって影響を受ける画素点を処理するためにある期間一時的に記憶させる必要がある。本発明によると、レジスタグループがこの誤差割当値を一時的に記憶するために使用され、誤差割当レジスタファイルと呼ばれる。
【００２０】
同じ理由によって、Ｊａｒｖｉｓアルゴリズムは、現在の画素を処理している間に、現在処理している画素に続く最大２画素点及び後続する２行の１０個の画素点に誤差拡散を生成するので、この行から次の２行への誤差拡散を記憶させる必要がある。図１（Ａ）は、その周りの画素への画素点Ｘからの誤差拡散を示しており、Ｄ１、Ｄ２、Ｄ３及びＤ４は誤差拡散係数を示している。この場合、その周りの画素への画素点Ｘの誤差割当値は、ＥＤ１、ＥＤ２、ＥＤ３及びＥＤ４によって示すことができ、ここで、Ｅは拡散させる必要がある誤差である。一方、図１（Ｃ）に示すように、任意の画素点＊は、先行する２行の最大１０個の画素点及び現在の行の先行する２個の画素点によって影響される。このような影響は、一度に算出することはできず、各行のデータのバッチ処理で生成され、従って、各バッチで生成される誤差拡散値は最終グレー値を生成するために記憶させる必要があることを理解すべきである。
【００２１】
即ち、任意の画素点Ｐｉ，ｊに対して、最初に、行（ｉ−２）の点Ｐｉ−２，ｊ＋２が処理された後、画素点Ｐｉ，ｊに集束する行（ｉ−２）の全ての画素点の誤差拡散が算出でき、画素点Ｐｉ，ｊに対する行（ｉ−２）からの誤差蓄積値を生成できる。これを中間誤差蓄積値Ｌｉ，ｊ’と呼び、誤差行メモリに記憶する。その後、行（ｉ−１）での画素点Ｐｉ−１，ｊ＋２が処理された後、画素点Ｐｉ，ｊに対する行（ｉ−１）からの誤差蓄積値が生成され、誤差行メモリ内に前に記憶された中間誤差蓄積値Ｌｉ，ｊ’を読み取り、この画素点に対して行（ｉ−１）によって生成された誤差蓄積値を加えて、画素点Ｐｉ，ｊでの直前の２行（行（ｉ−１）及び行（ｉ−２））からの合計誤差蓄積値、即ち最終誤差蓄積値Ｌｉ，ｊを得る。
【００２２】
図１（Ｄ）に示すように、Ｐｉ，ｊ点＊を処理した後に、画素点Ｐｉ＋１，ｊ−２（図１（Ｄ）の＠）に対する行（ｉ−１）及び（ｉ）からの最終誤差蓄積値Ｌｉ＋１，ｊ−２、及び画素点Ｐｉ＋２，ｊ−２（図１（Ｄ）の＠’）に対する行（ｉ）の中間誤差蓄積値Ｌｉ＋２，ｊ−２’が、同時に生成される。便宜上、両者はデータパケットとして取り扱い、誤差行メモリ内に同時に記憶させることができる。この場合、画素点Ｐｉ＋１，ｊ−２（＠）の最終グレー値を算出する場合、画素点Ｐｉ＋１，ｊ−２の最終誤差蓄積値Ｌｉ＋１，ｊ−２を誤差行メモリから読み取る必要があり、同じデータパケット内の画素点Ｐｉ＋２，ｊ−２（＠’）の中間誤差蓄積値Ｌｉ＋２，ｊ−２’もメモリから同時に読み取られる。しかし、中間誤差蓄積値Ｌｉ＋２，ｊ−２’は、Ｐｉ＋２，ｊ−２（＠’)に対する行（ｉ＋１）からの誤差割当値を処理し、最終誤差蓄積値を算出するためにのみ使用され、従って、レジスタに一時的に記憶させる必要がある。
【００２３】
このように、最終誤差蓄積値と共に同時に読み取られた中間誤差蓄積値を、後で新しく生成される最終誤差蓄積値の算出に参加させるために、一時的に記憶するためには、本発明によると誤差蓄積レジスタファイルと呼ばれる、読み取った中間誤差蓄積値を記憶する新しいレジスタファイルを設ける必要がある。
【００２４】
本発明は、同じ行のＮ個（Ｎ≧２）の近隣の画素点を処理し、それによって誤差拡散方法に基づいてマルチサイトＦＭスクリーンドットを同時に生成することができる方法及び装置を提供する。
図２は、本発明により多数の近隣の画素を同時に処理する高速ＦＭスクリーンドット装置（１）のブロック図である。高速ＦＭスクリーンドット装置（１）は、誤差行メモリ（２）と、誤差割当／蓄積レジスタファイル（３）と、誤差行メモリ制御回路（４）と、誤差割当／蓄積レジスタファイル制御回路（５）と、スクリーンドット生成装置（６）とを備えている。前記部品の機能を、以下に簡単に説明する。
【００２５】
上に記載したように、特定の画素Ｐｉ，ｊを処理している間、これに対する周りの画素の影響を蓄積する必要がある。画素Ｐｉ，ｊに対する周りの画素の影響は、以下の通り２つの部分に分けることができる。
一は、画素Ｐｉ，ｊの属する行（ｉ）に先行する行によって生じる誤差影響、即ち最終誤差蓄積値又は中間誤差蓄積値であり、誤差行メモリ（２）はコンテンツのこのような部分を記憶するのに使用される。
また他は、画素Ｐｉ，ｊの属する行（ｉ）の、画素Ｐｉ，ｊの前に位置する画素点によって生じる誤差影響、即ち行（ｉ）の画素Ｐｉ，ｊに対する現在の画素の前に位置する画素点からの誤差割当値の合計であり、各先行画素点の誤差割当値が誤差割当／蓄積レジスタファイル（３）内に記憶される。誤差割当／蓄積レジスタファイル（３）はまた、使用される誤差行メモリ（２）から読み取られた中間誤差蓄積値などの、画素処理中の中間処理値をキャッシングするのに使用される。
【００２６】
誤差行メモリ（２）に接続された誤差行メモリ制御回路（４）は、誤差行メモリ（２）の入力及び出力を制御する。誤差割当／蓄積レジスタファイル（３）に接続された、誤差割当／蓄積レジスタファイル制御回路（５）は、誤差割当／蓄積レジスタファイル（３）の入力及び出力を制御する。
【００２７】
図２に示すように、スクリーンドット生成装置（６）は、多数のスクリーンドット生成回路（１０）からなる。
図３は、グレー生成回路（７）と、閾値比較回路（８）と、誤差生成回路（９）とを備えた、本発明によるスクリーンドット生成回路（１０）を示している。グレー生成回路（７）の入力は、画素Ｐｉ，ｊのソース画素値、この画素に対応する誤差行メモリ内の最終誤差蓄積値、及びこの画素に対する同じ行内の画素の前の画素によって生成される誤差割当値であり、スクリーンドット生成回路の出力は最終スクリーンドット、及びこの画素を処理した後に生成される誤差割当値である。本発明の装置によると、処理可能な画素の数は、含んでいるスクリーン生成回路（１０）のグループの数と同じである。
【００２８】
図４は、本発明により、同じ行内のＮ個の近隣の画素を同時に処理する方法のフローチャートであり、以下のステップＳ１〜Ｓ７を含む、。
Ｓ１、誤差行メモリを初期化するステップ
Ｓ２、誤差割当／蓄積レジスタファイルを初期化するステップ
Ｓ３、行列をなす画素の各行ごとに、且つ各行内のＮ個の近隣の（ｎｅｉｇｈｂｏｒｉｎｇ）画素からなるグループごとに、前記画素のオリジナルグレーレベル（ソース画素値）を取得し、誤差行メモリと誤差割当／蓄積レジスタファイルに記憶された値に応じてＮサイトスクリーンドットを生成するステップ
Ｓ４、１つのグループ内のＮ個の近隣の画素が処理される毎に、誤差行メモリ及び誤差割当／蓄積レジスタファイルを更新するステップ
Ｓ５、１つの行の処理が終了したかどうかを判断し、そうでない場合、Ｓ３に進み、そうである場合Ｓ６に進むステップ
Ｓ６、誤差行メモリを再び更新するステップ
Ｓ７、画像処理が終了したかどうかを判断し、そうでない場合、Ｓ２に進み、そうである場合、処理が終了するステップ
【００２９】
本発明の方法によると、同じ行内の多数の近隣の画素を同時に処理して、マルチサイトスクリーンドットを生成することができる。また、ステップＳ３内のスキャンはＳ字形であってもよい、即ち、ある行内のソース画素は左から右に処理され、次の行内のソース画素は右から左に処理される。
【第１の実施形態】
【００３０】
Ｊａｒｖｉｓアルゴリズムに基づいて、２サイトスクリーンドットを同時に生成する場合を例として取り上げ（即ち、Ｎ＝２）、本発明による装置及び方法を以下に詳細に説明する。
【００３１】
図５は、Ｊａｒｖｉｓアルゴリズムに基づいており、本発明により同じ行内の２つの隣接する画素を同時に処理することができる、高速ＦＭスクリーンドット生成装置を示している。図５に示すように、装置（１１）は、誤差行メモリ（１２）、誤差割当／蓄積レジスタファイル（１３）、誤差行メモリ制御回路（１４）、誤差割当／蓄積レジスタファイル制御回路（１５）、グレー生成回路Ｉ（１６）、閾値比較回路Ｉ（１７）、誤差生成回路Ｉ（１８）、グレー生成回路ＩＩ（１９）、閾値比較回路ＩＩ（２０）、及び誤差生成回路ＩＩ（２１）の１０個の部品を備えている。装置内のグレー生成回路Ｉ（１６）、閾値比較回路Ｉ（１７）、及び誤差生成回路Ｉ（１８）は、スクリーンドット生成回路（１０）の第１のグループを構成し、グレー生成回路ＩＩ（１９）、閾値比較回路ＩＩ（２０）、及び誤差生成回路ＩＩ（２１）は、スクリーンドット生成回路（１０）の第２のグループを構成する。
［グレー生成回路］
【００３２】
図５に示すように、グレー生成回路Ｉ（１６）は、ソース画素１の最終グレー値を生成するために使用され、グレー生成回路Ｉ（１６）の入力はソース画素１、誤差行メモリ制御回路（１４）及び誤差割当／蓄積レジスタファイル制御回路（１５）に接続され、その出力は閾値比較回路Ｉ（１７）及び誤差生成回路Ｉ（１８）に供給される。
【００３３】
グレー生成回路ＩＩ（１９）は、ソース画素２の最終グレー値を生成するために使用され、グレー生成回路ＩＩの入力は、ソース画素２、誤差行メモリ制御回路（１４）及び誤差割当／蓄積レジスタファイル制御回路（１５）に接続され、その出力は閾値比較回路ＩＩ（２０）及び誤差生成回路ＩＩ（２１）に供給される。
【００３４】
図６（Ａ）は、本実施形態によるグレー生成回路Ｉ（１６）の動作原理を示している。この図に示すように、画素１の最終グレー値は加算器によって生成される。即ち、
画素１の最終グレー値＝  画素１のソース画素値  ＋  画素１に対応する誤差行メモリ（１２）から読み取られた最終誤差蓄積値  ＋  誤差割当／蓄積レジスタファイル（１３）内でキャッシングされた、画素１が属する同じ行内の前に位置する画素からの誤差割当値。
【００３５】
図６（Ｂ）は、本実施形態によるグレー生成回路ＩＩ（１９）の動作原理を示している。この図に示すように、画素２の最終グレー値は加算器によって生成される。即ち、
画素２の最終グレー値＝  画素２のソース画素値  ＋  誤差行メモリ（１２）から読み取られた画素２に対応する最終誤差蓄積値  ＋  誤差割当／蓄積レジスタファイル（１３）内でキャッシングされた、画素２が属する同じ行内の前に位置する画素からの誤差割当値  ＋  画素１を処理することによって生成される現在の画素２に対する誤差割当値。
【００３６】
このようにして得られた画素の最終グレー値は、スクリーンドットを生成するために閾値比較回路に運ばれ、同時に、その周囲の点に対するこの画素からの誤差割当値を得るために誤差生成回路に運ばれる。
【００３７】
上記装置が２つの隣接する画素を同時に処理し、２サイトスクリーンドットを生成できる理由は一つには、スクリーンドット生成回路（１０）の２つのグループの間の密接な関係にある。図５及び図６（Ｂ）に示すように、画素１の誤差生成回路Ｉ（１８）によって出力された誤差割当値のうち画素２に割当てられた値は、画素２のグレー生成回路ＩＩ（１９）に直接入力され、誤差割当／蓄積レジスタファイル（１３）内に登録される必要はない。
［誤差行メモリ及びその制御回路］
【００３８】
誤差行メモリ（１２）は、最終誤差蓄積値及び中間誤差蓄積値を記憶するために使用され、誤差行メモリ制御回路（１４）に接続され、これによって制御される。
【００３９】
Ｊａｒｖｉｓアルゴリズムによれば、画素の誤差は次の２つの行内の関連画素に拡散される。従って、本実施形態の誤差行メモリは、２行であるように構成されている。現在処理されている２つの隣接する画素が、Ｐｉ，５及びＰｉ，６であるとすると、本発明の解決法によると、２つの隣接する画素を同時に処理する間に、Ｐｉ，５及びＰｉ，６に対応する最終誤差蓄積値、及び次の行において２つの隣接する位置の画素に対応する（画素Ｐｉ＋１，５及びＰｉ＋１，６に対応する）中間誤差蓄積値は、誤差行メモリから同時に読み取る必要がある。従って、誤差行メモリ内のデータは、４つの位置、即ち画像の１つの行の２つの隣接する位置、及び次の行の２つの隣接する位置に対応するデータが１つのユニットとしてアクセスできるように配置され、これらのユニットは、ユニット順に配置されている。
【００４０】
図７（Ａ）は、８画素の画素幅を有する誤差行メモリの略図であり、（ｉ，ｊ）は誤差行メモリに記憶されたデータに対応する画素の位置を示している。
【００４１】
図７（Ｂ）は、処理された画像の特定の３つの隣接する行内の画素点の一部の略図であり、Ｐｉ，ｊは行ｉ及び列ｊにある画素点のことを言う。
【００４２】
図７（Ａ）に示すように、誤差行メモリの第１のユニットは、ソース画像の行ｉ内の第１の画素Ｐｉ，１及び第２の画素Ｐｉ，２の最終誤差蓄積値、及びソース画像の行ｉ＋１内の第１の画素Ｐｉ＋１，１及び第２の画素Ｐｉ＋１，２の中間誤差蓄積値に対応し、誤差行メモリの第２のユニットはソース画像の行ｉの第３の画素Ｐｉ，３及び第４の画素Ｐｉ，４の最終誤差蓄積値、及びソース画像の行ｉ＋１の第３の画素Ｐｉ＋１，３及び第４の画素Ｐｉ＋１，４の中間誤差蓄積値に対応しており、誤差行メモリの最終ユニットは、ソース画像の行ｉ内の第７の画素Ｐｉ，７及び第８の画素Ｐｉ，８の最終誤差蓄積値、及びソース画像の行ｉ＋１内の第７の画素Ｐｉ＋１，７及び第８の画素Ｐｉ＋１、８の中間誤差蓄積値に対応している。
【００４３】
誤差行メモリのバス幅は、誤差行メモリの１ユニット内の４つの位置でのデータを一度に読み取る／書き込むことが可能である必要がある。誤差行メモリ内の１つの画素に対応する位置でのデータ幅が８ビットであるとすると、誤差行メモリのバス幅は４×８＝３２ビットであるべきである。
【００４４】
誤差行メモリの読取及び書込過程をこれ以下に説明する。
【００４５】
Ｊａｒｖｉｓアルゴリズムによれば、行ｉ内の１つの画素点の中間誤差蓄積値は行ｉ−２内の５つの近隣の画素によって決まり、最終誤差蓄積値は行ｉ−１内の５つの近隣の画素及び行ｉ−２内の５つの近隣の画素の合計によって決まる。同様に、行ｉ内の２つの近隣の画素点の中間誤差蓄積値は、行ｉ−２内の６つの近隣の画素によって決まり、最終誤差蓄積値は行ｉ−１内の６つの近隣の画素及び行ｉ−２内の６つの近隣の画素の合計によって決まる。
【００４６】
従って、図１（Ｄ）と合わせて上の説明を参照すると、Ｐｉ，ｊを処理した後に、点Ｐｉ＋１、ｊ−２の最終誤差蓄積値及びＰｉ＋２、ｊ−２の中間誤差蓄積値を同時に決定でき、データパケットとして誤差行メモリの１つのユニット内に同時に記憶される。同様に、２つの隣接する画素点Ｐｉ，ｊ及びＰｉ，ｊ＋１を処理した後に、点Ｐｉ＋１、ｊ−２の最終誤差蓄積値及びＰｉ＋２、ｊ−１の中間誤差蓄積値を同時に決定でき、データパケットとして誤差行メモリの１つのユニット内に同時に記憶される。ちょうどこの原理に基づいて、本発明は誤差行メモリのデータ更新を行なう。
【００４７】
図８は、本発明による誤差行メモリの読取及び書込過程の例示的な略図である。図７（Ｂ）及び図８に示すような実施形態を例として、これ以下に説明する。図７（Ｂ）に示す８列の画素行列の場合を例として、行ｉ内の画素を処理し始める直前に誤差行メモリ内に記憶されているものは、行ｉ内の画素の最終誤差蓄積値及び行ｉ＋１内の画素の中間誤差蓄積値である。
【００４８】
画素Ｐｉ，１及びＰｉ，２が処理され始めると、画素Ｐｉ，１及びＰｉ，２の最終誤差蓄積値Ｌｉ，１及びＬｉ，２、並びに画素Ｐｉ＋１，１及びＰｉ＋１，２の中間誤差蓄積値Ｌｉ＋１，１’及びＬｉ＋１，２’は、誤差行メモリの第１のユニットから一度で読み取られる。Ｌｉ，１及びＬｉ，２は、それぞれ画素Ｐｉ，１及びＰｉ，２の最終グレー値を生成するために使用され、最終スクリーンドットを生成した後には使用されない。Ｌｉ＋１，１’及びＬｉ＋１，２’は誤差割当／蓄積レジスタファイル内でキャッシングされ、対応する最終誤差蓄積値Ｌｉ＋１，１及びＬｉ＋１，２を生成するために後で使用される。
【００４９】
画素Ｐｉ，３及びＰｉ，４は、画素Ｐｉ，１及びＰｉ，２が処理された後に処理される。この時、画素Ｐｉ，３及びＰｉ，４の最終誤差蓄積値、並びに画素Ｐｉ＋１，３及びＰｉ＋１，４の中間誤差蓄積値が誤差行メモリの第２のユニットから読み取られる。同様に、最終誤差蓄積値は、画素Ｐｉ，３及びＰｉ，４の最終スクリーンドットを生成するのに使用され、中間誤差蓄積値は誤差割当／蓄積レジスタファイル内でキャッシングされる。
【００５０】
画素Ｐｉ，３及びＰｉ，４が処理されると、画素Ｐｉ，３及びＰｉ，４の誤差割当値が提供され、その結果、図７（Ｂ）の破線ブロックａ内の４つの画素の最終誤差蓄積値及び中間誤差蓄積値を決定でき、更新データとして誤差行メモリの第１のユニットに記憶され、また、誤差行メモリ内のこの番地内のコンテンツは、行ｉのこれ以降の誤差処理中に変更されない。
【００５１】
その後、画素Ｐｉ，５及びＰｉ，６が処理される。同様に画素Ｐｉ，５及びＰｉ，６が処理された場合、破線ブロックｂ内の４つの画素の最終誤差蓄積値及び中間誤差蓄積値を決定でき、その後、更新データとして誤差行メモリの第２のユニットに記憶される。
【００５２】
行ｉ内の最後の２つの画素Ｐｉ，７及びＰｉ，８が処理された場合、破線ブロックｃ内の４つの画素の最終誤差蓄積値及び中間誤差蓄積値だけでなく、破線ブロックｄ内の４つの画素の最終誤差蓄積値及び中間誤差蓄積値を決定できることが分かる。
【００５３】
従って、データ更新を２回行なうために、誤差行メモリに対して２つの読取及び書込動作を行なう必要がある。誤差行メモリ内の更新データ算出方法を、例によりこれ以下に説明する。
【００５４】
現在処理されている画素がＰｉ，５及びＰｉ，６であるとすると、画素Ｐｉ，５及びＰｉ，６を処理した後の誤差割当値はそれぞれ、Ｅｉ，５Ｄ１、Ｅｉ，５Ｄ２、Ｅｉ，５Ｄ３、Ｅｉ，５Ｄ４、並びに、Ｅｉ，６Ｄ１、Ｅｉ，６Ｄ２、Ｅｉ，６Ｄ３、及びＥｉ，６Ｄ４によって示される。（ここで、Ｅｉ，５及びＥｉ，６はそれぞれ、画素Ｐｉ，５及びＰｉ，６から拡散させる必要がある誤差Ｅである。）  従って、破線ブロックｂ内の４つの画素の最終誤差蓄積値及び中間誤差蓄積値Ｌｉ＋１，３、Ｌｉ＋１，４、Ｌｉ＋２，３’、及びＬｉ＋２，４’は以下のように示される。
Ｌｉ＋１，３    ＝  Ｌｉ＋１，３’＋Ｅｉ，１Ｄ２＋Ｅｉ，２Ｄ３＋Ｅｉ，３Ｄ４＋Ｅｉ，４Ｄ３＋Ｅｉ，５Ｄ２
Ｌｉ＋１，４    ＝  Ｌｉ＋１，４’＋Ｅｉ，２Ｄ２＋Ｅｉ，３Ｄ３＋Ｅｉ，４Ｄ４＋Ｅｉ，５Ｄ３＋Ｅｉ，６Ｄ２
Ｌｉ＋２，３’  ＝  Ｅｉ，１Ｄ１＋Ｅｉ，２Ｄ２＋Ｅｉ，３Ｄ３＋Ｅｉ，４Ｄ２＋Ｅｉ，５Ｄ１
Ｌｉ＋２，４’  ＝  Ｅｉ，２Ｄ１＋Ｅｉ，３Ｄ２＋Ｅｉ，４Ｄ３＋Ｅｉ，５Ｄ２＋Ｅｉ，６Ｄ１
式中、Ｌｉ＋１，３’及びＬｉ＋１，４’はそれぞれ、行（ｉ−１）の画素からの、画素Ｐｉ＋１，３及びＰｉ＋１，４に対する中間誤差値である。
【００５５】
一般的に言えば、現在の行の処理した画素に対応する誤差行メモリ内の最終誤差蓄積値は、画素の最終ドットが生成された後には使用されず、中間誤差蓄積値は、誤差割当／蓄積レジスタファイル内に記憶される。従って、誤差行メモリ内の書き込まれたユニットにおいて、第１の２つの位置の内容は現在処理されている行の次の行の２つの隣接する画素に対応する最終誤差蓄積値であり、次の２つの位置の内容は現在処理されている行の２つ後の行の２つの隣接する画素に対応する中間誤差蓄積値である。従って、誤差行メモリは、初期値を０に設定した上で、２つの行を繰り返し使用できる。
【００５６】
一方、現在処理されている画素（Ｐｉ，５及びＰｉ，６を例とすると）の誤差割当値に加えて、Ｌｉ＋１，３、Ｌｉ＋１，４、Ｌｉ＋２，３’及びＬｉ＋２，４’に影響を与える他の関連値（即ち、画素Ｐｉ，１、Ｐｉ，２、Ｐｉ，３及びＰｉ，４からの誤差割当値及び中間誤差蓄積値Ｌｉ＋１，３’及びＬｉ＋１，４’）は、誤差割当／蓄積レジスタファイル内に記憶されている。従って、Ｌｉ＋１，３、Ｌｉ＋１，４、Ｌｉ＋２，３’及びＬｉ＋２，４’の算出及び書込は誤差行メモリを再び読み取ることなく完了できる。
本発明の誤差行メモリのバス幅が誤差行メモリ内の４つの位置の少なくともデータ幅である場合、１つのユニット内の４つの値Ｌｉ，５、Ｌｉ，６、Ｌｉ＋１，５’及びＬｉ＋１，６’（それぞれ、図７（Ｂ）のＰｉ，５、Ｐｉ，６、Ｐｉ＋１，５及びＰｉ＋１，６に対応する）の読取は、メモリ上の１回の読取動作のみで完了し、また別のユニット内の４つの値Ｌｉ＋１，３、Ｌｉ＋１，４、Ｌｉ＋２，３’及びＬｉ＋２，４’（図７（Ｂ）内の破線ブロックｂ内の画素に対応する）の書込は、メモリ上の１回の書込動作のみで完了する。従って、本発明による装置を使用した２つの隣接する画素Ｐｉ，５及びＰｉ，６の処理中に、Ｌｉ，５、Ｌｉ，６、Ｌｉ＋１，５’及びＬｉ＋１，６’を読み取るには、メモリ上で１回の読取動作だけが必要であり、Ｌｉ＋１，３、Ｌｉ＋１，４、Ｌｉ＋２，３’及びＬｉ＋２，４’を書き込むには、メモリ上で１回の書込動作だけが必要であり、それによってスクリーンドット生成速度が格段に向上する。
【００５７】
図９は、読取アドレスレジスタ、書込アドレスレジスタ、読取／書込制御回路、及び書込データ生成回路を備えた、本発明による装置の誤差行制御回路（１４）のブロック図である。読取アドレスレジスタ及び書込アドレスレジスタ内に記憶されたコンテンツ（即ち、アドレス）は、現在処理されている２つの画素内の第１の画素（Ｐｉ，５であるとする）の座標（アドレス）に合わせて生成され、書込データ生成回路は加算器からなり、現在の２つの隣接する画素Ｐｉ，５及びＰｉ，６を処理することによって生成される誤差割当値、同じ行の画素Ｐｉ，５及びＰｉ，６の前の位置にある画素によって生成される（誤差割当／蓄積レジスタファイルに記憶された）誤差割当値、（誤差割当／蓄積レジスタファイルに記憶された）関連する中間誤差蓄積値に従って、誤差行メモリ内に一回で書き込むべきデータを提供し、読取／書込制御回路は、誤差行メモリの読取／書込制御信号を生成する。
【００５８】
読取アドレスレジスタ及び書込アドレスレジスタ内に記憶された読取アドレス又は書込アドレスの決定は、例により以下に説明する。例示的な実施例としては、読取アドレスを２×ｊ−１、書込アドレスを２×（ｊ−２）−１と設定する。ここで、ｊは現在処理されている画素のうちの第１の画素の列数であり、ｊ＝１，２，．．．ｎである。上記アドレスはバイトアドレスである。例として現在処理されている画素のうち第１の画素Ｐｉ，５の列数は、ｊ＝５であるから、読取アドレスは２×５−１＝９であり、現在の読取アドレスから始まる１ユニット内の４つの連続位置から一度にデータＬｉ，５、Ｌｉ，６、Ｌｉ＋１，５’及びＬｉ＋１，６’を読み取る。一方、書込アドレスは２×（５−２）−１＝５であり、書込データ生成回路が、現在の行の次の行、及び現在の行の２つ後の行の２つの隣接する位置にある画素にそれぞれ対応する書込データＬｉ＋１，３、Ｌｉ＋１，４、Ｌｉ＋２，３’、及びＬｉ＋２，４’（その算出方法は上述したとおりである）を生成し、現在の書込アドレスから始まる１つのユニット内の４つの連続位置内に上記書込データを一度に書き込む。
［誤差割当／蓄積レジスタファイル及びその制御回路］
【００５９】
誤差割当／蓄積レジスタファイル（１３）は、誤差割当値及び中間誤差割当値をキャッシングする、ハードウェアトリガからなり、誤差割当／蓄積レジスタファイル制御回路（１５）に接続され、これによって制御される。
【００６０】
図１０は、同じ行内の現在処理されている画素の前の４つの隣接する画素の誤差割当値全て、及び現在処理されている行の次の行内の２つの画素のために読み取られた中間誤差蓄積値を含む、本実施形態による誤差割当／蓄積レジスタファイルの略図である。
【００６１】
前の説明から、誤差行メモリを更新するために本発明による方法での最終誤差蓄積値及び中間誤差蓄積値を算出する間に、現在の行内の最大６つの近隣の画素の誤差割当値が必要であり、それによって誤差割当レジスタファイルは、現在処理されている２つの隣接する画素によって生成される誤差割当値と共に、誤差行メモリ内で、次の行内、及び現在処理されている行の次の２行内の対応する画素の最終誤差蓄積値及び中間誤差蓄積値を更新するため、即ち、誤差行メモリ内の現在処理されている画素に対応するユニットの前のユニット内の４つの位置で値を更新するために使用される、同じ行内の現在処理されている画素の前の４つの近隣の画素の誤差割当値を全て記憶する必要がある。Ｆａｒｖｉｓアルゴリズムから、現在の行の次の行の最終誤差値は誤差行メモリ内のオリジナル値、及び現在の行の処理が開始する前に現在の行が０となった後の第２の行の誤差値に関連し、それによって誤差蓄積レジスタファイルは、現在の行の次の行の２つの中間誤差蓄積値を記憶する必要があるだけであることが容易に分かる。
【００６２】
本実施形態では、図１０に示すように、誤差割当／蓄積レジスタファイル（１３）は、４つの近隣の画素の誤差割当値全て、及び現在処理されている行の次の行の２つの中間誤差蓄積値をキャッシングすることができ、Ｐｉ，５及びＰｉ，６が２つの現在処理されている隣接する画素であるとすると、Ｅｉ，ｍＤｎ（ｍ＝１．．．４，ｎ＝１．．．４）は、同じ行内のＰｉ，５及びＰｉ，６の前に位置する４つの近隣の画素Ｐｉ，１〜Ｐｉ，４からの誤差割当値全てを示し、Ｌｉ＋１，３’及びＬｉ＋１，４’は、画素Ｐｉ，３及びＰｉ，４の処理中に読み取られた中間誤差蓄積値を示している。
【００６３】
図１１は、本発明による装置内の誤差割当／蓄積レジスタファイル制御回路のマルチプレクサの作動原理の略図である。誤差割当／蓄積レジスタファイル制御回路は、ｎ個のマルチプレクサを介して各処理期間において一回誤差割当／蓄積レジスタファイルを更新し、各行を処理する前に初期化及びリセットを行い、ｎは誤差割当／蓄積レジスタファイル内のレジスタの数である、即ち、誤差割当／蓄積レジスタファイル内の各レジスタは同じ構造を備えた１つのマルチプレクサを備えており、この実施形態では、図１０に示したように、ｎ＝１８である。マルチプレクサの入力は、現在処理されている画素の誤差割当値全て、現在の画素の処理中に読み取られた中間誤差蓄積値、及び誤差割当／蓄積レジスタファイルのオリジナル値を含んでおり、マルチプレクサの出力は、誤差割当／蓄積レジスタファイル内のレジスタの更新値である。
【００６４】
誤差割当／蓄積レジスタファイルのデータ更新を、本発明による方法と合わせて、以下に説明する。
【００６５】
図１２は、本発明による誤差割当／蓄積レジスタファイル内のデータを更新する過程の略図であり、Ｅｉ，ｊＤｎ（ｎ＝１．．．４）は行ｉ内の画素ｊの誤差割当値を示している。現在処理されている画素Ｐｉ，５及びＰｉ，６を例としてとると、２つの現在の隣接する画素の誤差割当値Ｅｉ，５Ｄｎ及びＥｉ，６Ｄｎ及び（図１２に示す列２内の）Ｅｉ，３Ｄｎ及びＥｉ，４Ｄｎに対応する、現在の行に隣接する行から読み取られた中間誤差蓄積値Ｌｉ＋１，５’及びＬｉ＋１，６’をレンダリングした後に、マルチプレクサはそれぞれ、Ｌｉ＋１，３’及びＬｉ＋１，４’に対応する（図１２の現在の列内の）Ｅｉ，５Ｄｎ及びＥｉ，６Ｄｎを出力し、次に、マルチプレクサはそれぞれ、（図１２に示す列１内の）Ｅｉ，１Ｄｎ及びＥｉ，２Ｄｎに対応する出力Ｌｉ＋１，５’及びＬｉ＋１，６’を出力し、さらに、マルチプレクサはそれぞれ（図１２の列２内の）Ｅｉ，３Ｄｎ及びＥｉ，４Ｄｎを出力する。誤差割当／蓄積レジスタファイル内の列は、比喩的に言えば、逐次前進するように更新される。
［スクリーンドット生成方法］
【００６６】
本実施形態では、２つの現在処理されている画素がＰｉ，５及びＰｉ，６であるとすると、マルチサイトＦＭスクリーンドット生成方法は以下のステップを含んでいる。
【００６７】
ステップ１）  行ｉ内の２つの隣接するソース画素、即ちＰｉ，５及びＰｉ，６を取得する。
【００６８】
ステップ２）  誤差行メモリから一度に１ユニット内の４つの位置の誤差値、即ち、Ｐｉ，５及びＰｉ，６に対応する最終誤差蓄積値Ｌｉ，５及びＬｉ，６、並びに、画素Ｐｉ＋１，５及びＰｉ＋１，６に対応する中間誤差蓄積値Ｌｉ＋１，５’及びＬｉ＋１，６’を読み取る。
【００６９】
ステップ３）
誤差割当／蓄積レジスタファイルのコンテンツから現在処理されている画素のうちの第１の画素Ｐｉ，５では、同じ行内の画素の全ての先行処理によって生成される画素Ｐｉ，５に割り当てる誤差によってレンダリングされる誤差割当値の合計であるＳ１を算出し（Ｓ１＝Ｅｉ，３Ｄ３＋Ｅ１，４Ｄ４）、
その後、画素Ｐｉ，５の最終グレー値を算出し（ここで、画素Ｐｉ，５の最終グレー値＝  Ｐｉ，５のソース画素値１＋Ｌｉ，５＋Ｓ１）、この最終グレー値を、画素Ｐｉ，５の最終スクリーンドット１を生成するための閾値と比較して画素Ｐｉ，５の最終スクリーンドット１を生成し、
次に、その周囲画素点に対する画素Ｐｉ，５の誤差割当値を算出し、そのうちの画素Ｐｉ，５の誤差割当値Ｅｉ，５Ｄ４を第２の画素点Ｐｉ，６にトランスポートする。
【００７０】
一方、現在処理されている画素のうちの第２の画素Ｐｉ，６では、同じ行内の画素の全ての先行処理によって生成される画素Ｐｉ，６に割り当てる誤差によってレンダリングされる誤差割当値の合計であるＳ２を算出し（Ｓ２＝Ｅｉ，４Ｄ３＋Ｅ１，５Ｄ４）、
その後、画素Ｐｉ，６の最終グレー値を算出し（ここで、画素Ｐｉ，６の最終グレー値＝  Ｐｉ，６のソース画素値２＋Ｌｉ，６＋Ｓ２）、この最終グレー値を、画素Ｐｉ，６の最終スクリーンドット２を生成するための閾値と比較して画素Ｐｉ，６の最終スクリーンドット２を生成し、
次に、その周囲画素点に対する画素Ｐｉ，６の誤差割当値を算出する。
【００７１】
ステップ４）
誤差行メモリ及び誤差割当／蓄積レジスタファイルのデータ更新を行なう、即ち、誤差割当／蓄積レジスタファイル内に記憶された画素Ｐｉ，１〜Ｐｉ，６の誤差割当値及び中間誤差蓄積値Ｌｉ＋１，３’及びＬｉ＋１，４’に従って、最終誤差蓄積値Ｌｉ＋１，３及びＬｉ＋１，４及び中間誤差蓄積値Ｌｉ＋２，３’及びＬｉ＋２，４’を算出し、誤差行メモリのデータ更新を実現するために誤差行メモリ内に算出結果を書き込む。
【００７２】
ステップ２で読み取った中間誤差蓄積値Ｌｉ＋１，５’及びＬｉ＋１，６’、並びにステップ３で得られた画素Ｐｉ，５及びＰｉ，６の誤差割当値を誤差割当／蓄積レジスタファイル内に記憶させ、逐次前進するように誤差割当／蓄積レジスタファイルを更新する。
【００７３】
本実施形態による特定の実施装置では、閾値比較回路Ｉ（１７）は、スクリーンドット１を生成するために、グレー生成回路（１６）によって生成されたグレー値を閾値と比較するのに使用される。
閾値比較回路ＩＩ（２０）は、スクリーンドット２を生成するために、グレー生成回路ＩＩ（１９）によって生成されたグレー値を閾値と比較するのに使用される。
誤差生成回路Ｉ（１８）は、グレー生成回路Ｉ（１６）によって生成されたグレー値から、計算又はテーブル検索を介して現在の画素１の誤差割当値を生成し、結果を誤差行メモリ制御回路（１４）、誤差割当／蓄積レジスタファイル制御回路（１５）、及びグレー生成回路ＩＩ（１９）に出力するために使用される。
誤差生成回路ＩＩ（２１）は、グレー生成回路ＩＩ（１９）によって生成されたグレー値から、計算又はテーブル検索を介して現在の画素２の誤差割当値を生成し、結果を誤差行メモリ制御回路（１４）及び誤差割当／蓄積レジスタファイル制御回路（１５）に出力するために使用される。
誤差行メモリ制御回路（１４）及び誤差割当／蓄積レジスタファイル制御回路（１５）はそれぞれ、誤差行メモリ（１２）及び誤差割当／蓄積レジスタファイル（１３）のデータ更新を行なうために使用される。
【第２の実施形態】
【００７４】
Ｎサイトドットを同時に生成する必要がある場合、装置構成は上述の２サイトスクリーンドットの場合と類似しており、図２に示したように、違いは、実現に当って、スクリーンドット生成装置（６）が、Ｎ個のグループのスクリーンドット生成回路（１０）からなるということにある。
その際、同じ行内のＮ個の近隣のソース画素が一度に取得され、現在のＮ個のソース画素値、並びに、誤差行メモリ（２）及び誤差割当／蓄積レジスタファイル（３）内に記憶されたデータによってＮサイトスクリーンドットが生成される。
【００７５】
一度のデータ読取及び記憶の需要に応じるためには、誤差行メモリのバス幅、及び誤差割当／蓄積レジスタファイルの容量をさらに大きくする必要があることを当業者は理解すべきである。同時に処理されるべき現在の画素の数がＮであり、誤差行メモリ内の１つの位置でのデータ幅がＷであり、１つの画素の誤差を拡散することができる行の数がＨ（現在の行を含む）であるとすると、誤差行メモリの最小バス幅は、Ｎ×Ｗ×（Ｈ−１）となる。誤差割当／蓄積レジスタファイルの容量は、１つの画素の処理に伴う誤差が拡散されるべき近隣の画素の最大数に依存し、採用した誤差拡散アルゴリズムにより決まる。
【００７６】
特に、現在のＮ個の画素のグレー値、誤差行メモリの値、及び誤差割当／蓄積レジスタファイルの値により、Ｎサイトスクリーンドットを生成する方法は以下のステップを含んでいる。
【００７７】
ステップ１）
Ｎ個のグループのスクリーンドット生成回路が、行ｉ内のＮ個の近隣のソース画素のグレー値を同時に取得し、行ｉ内の現在のＮ個の近隣の画素に応じた最終誤差蓄積値、及び行（ｉ＋１）〜行（ｉ＋Ｈ−２）の、直接対応する位置でのＮ個の近隣の画素の中間誤差蓄積値を誤差行メモリから一度に読み取る。
【００７８】
ステップ２）
現在処理されているＮ個の近隣のソース画素のうち第１の画素Ｐｉ，ｊ（ｊは列番数のことを言う）に関して、Ｓ１をレンダリングする。ここで、Ｓ１は、誤差割当レジスタファイル内に記憶されたデータを用いて、同じ行内で全ての先行する画素を処理することによって生成される誤差を全てこの画素に割り当てることによってレンダリングされる誤差値の合計である。
【００７９】
第１のグループのスクリーンドット生成回路は、現在処理されている画素のうちの第１の画素Ｐｉ，ｊに対応する最終誤差蓄積値Ｌｉ，ｊに、このＳ１を加え、次に、ステップ１で取得された第１のソース画素のグレー値を加えて、第１の画素Ｐｉ，ｊの最終画素グレー値を得、これを閾値と比較して第１の画素の最終スクリーンドットを生成すると共に、その周辺画素点に対する画素Ｐｉ，ｊの誤差割当値を算出する。
【００８０】
同時に、現在処理されている画素のうちの第２の画素Ｐｉ，ｊ＋１に関して、Ｓ２をレンダリングする。ここで、Ｓ２は、誤差割当／蓄積レジスタファイルに記憶されたデータを用いて、同じ行内の画素Ｐｉ，ｊの前の画素全てによって生成される誤差全てをこの画素に割り当てることによってレンダリングされる誤差割当値の合計をレンダリングし、その後、上記第１の画素Ｐｉ，ｊを処理することによって生成される誤差を画素Ｐｉ，ｊ＋１に割り当てることによってレンダリングされる誤差割当値の合計である。
【００８１】
第２のグループのスクリーンドット生成回路は、現在処理されている画素のうちの第２の画素Ｐｉ，ｊ＋１に対応する最終誤差蓄積値Ｌｉ，ｊ＋１に、このＳ２を加え、次に、ステップ１で取得された第２のソース画素のグレー値を加えて、第２の画素Ｐｉ，ｊ＋１の最終画素グレー値を得、これを閾値と比較して第２の画素の最終スクリーンドットを生成すると共に、その周辺画素点に対する画素Ｐｉ，ｊ＋１の誤差割当値を算出する。
【００８２】
同様に、現在処理されている画素のうちの第Ｍ番目の画素Ｐｉ，ｊ＋Ｍ−１（２＜Ｍ≦Ｎ）に関して、Ｓ’Ｍをレンダリングする。ここで、Ｓ’Ｍは、誤差割当レジスタファイルに記憶されたデータを用いて、同じ行内の画素Ｐｉ，ｊの前の画素全てによって生成された誤差全てをこの第Ｍ番目の画素に割り当てることによってレンダリングされる誤差割当値の合計である。
その後、Ｓ”Ｍをレンダリングする。ここで、Ｓ”Ｍは、第１〜第（Ｍ−１）番目の画素によって生成された誤差全てを第Ｍ番目の画素に割り当てることによってレンダリングされる誤差割当値全ての合計である。
次に、このＳ’ＭとＳ”Ｍを加えて、同じ行内のＭ番目の画素の前の画素全てによって生成される誤差全てを第Ｍ番目の画素に割り当てることによってレンダリングされる誤差割当値の合計であるＳＭをレンダリングする。
【００８３】
現在のＮ個の近隣の画素を処理した後に、この方法は以下のステップを含んでいる。
【００８４】
ステップ１）
現在処理されている画素それぞれの最終画素グレー値及び閾値に従って、現在のＮ個の近隣の画素によって生成される誤差を全ての近隣の画素に割り当てることによって値Ｅｉ，ＫＤｎをレンダリングする（Ｅｉ，ＫＤｎは、現在処理されている画素のうちのＫ番目の画素によって生成される誤差割当値のグループのことを言い、１≦Ｋ≦Ｎであり、Ｊａｒｖｉｓアルゴリズムでは、ｎ＝１〜４である）。
【００８５】
ステップ２）
誤差割当／蓄積レジスタファイル内のコンテンツ、及び現在のＮ個の近隣の画素を処理することによって生成される誤差割当値に従って、行（ｉ＋１）内のＮ個の近隣の位置Ｐｉ＋１，ｊ−Ｎ〜Ｐｉ＋１，ｊ−１での最終誤差蓄積値、及び行（ｉ＋２）〜行（ｉ＋Ｈ−２）内の、Ｎ個の近隣の位置の画素（Ｐｉ＋２，ｊ−Ｎ〜Ｐｉ＋２，ｊ−１）〜Ｎ個の近隣の位置の画素（Ｐｉ＋Ｈ−２，ｊ−Ｎ〜Ｐｉ＋Ｈ−２，ｊ−１）の中間誤差蓄積値をレンダリングする。これらは、一度に誤差行メモリ内の対応する位置に書き込まれる。
【００８６】
ステップ３）
誤差割当レジスタファイル内の１つの列内に各Ｎ個の近隣の画素の誤差割当値全てを配置し、Ｎ個の画素の先行列の誤差割当値をＮ個の近隣の画素の後続列の誤差割当値となるように逐次更新し、最後にＮ個の近隣の画素の最終列の誤差割当値を現在のＮ個の画素の誤差割当値となるように更新する。
【００８７】
ステップ４）
現在のＮ個の近隣の画素に応じて次の行の位置でＮ個の近隣の画素Ｐｉ＋１，ｊ〜Ｐｉ＋１，ｊ＋Ｎ−１のものとなるようにオリジナルのＮ個の近隣の画素Ｐｉ＋１，ｊ−Ｎ〜Ｐｉ＋１，ｊ−１の中間誤差蓄積値を更新する。
【００８８】
本発明の好ましい実施形態のみを上記に記載したものであり、本発明をこれに限定するものと解釈すべきではない。上記装置の様々な部分、及びその間の接続関係は例示的なものであり、当業者は本発明の精神から逸脱することなく様々な変更及び置換ができることを理解すべきである。加えて、上記方法は単に本発明の好ましい解決法であり、特定の状況によって方法のステップに対して当業者は適切な選択及び最適化できる。
【００８９】
例えば、誤差行メモリ内のデータを更新する上記方法では、いずれの画像の行においても、最初及び最後の画素の処理中に誤差行メモリを更新する方法が紹介されている、即ち、誤差行メモリは（現在更新されたデータが生成されるときに）各行内の最初の２つの画素を処理中に更新されず、各行内の最後の２つの画素の処理中に２度更新される。しかし当業者ならば、多くの他のデータ更新方法が存在することを理解できるであろう。
【００９０】
例えば、誤差行メモリの最前部の１つのユニットが残され、各行内の最初の２つの画素を処理する間にリフレッシュされ、効果的な最終誤差蓄積値及び中間誤差蓄積値が誤差行メモリの第２のユニットから記憶される。また、例えば、誤差行メモリは、各行内の最後の２つの画素を処理した後に一度リフレッシュすることができ、その後、各行の後に２つのブランクドットを処理し、誤差行メモリの最終ユニットをリフレッシュすることができる。
【００９１】
加えて、本発明により一度に２サイトスクリーンドットを同時に生成する装置の実施形態が、誤差が１２個の近隣の位置に拡散されるＪａｒｖｉｓアルゴリズムに関連して記載されているが、本発明はまた、他の誤差拡散アルゴリズム、及び３つ以上のスクリーンドットを同時に生成する装置に適用することができる。従って、本発明の精神及び原理内でのあらゆる変更、等価置換、改良などは、本発明の保護の範囲内に含まれるべきものである。
【符号の説明】
【００９２】
１、１１    高速ＦＭスクリーンドット装置、マルチサイトＦＭスクリーンドットを同時に生成する装置
２、１２    誤差行メモリ
３、１３    誤差割当／蓄積レジスタファイル
４、１４    誤差行メモリ制御回路
５、１５    誤差割当／蓄積レジスタファイル制御回路
６    スクリーンドット生成装置
７    グレー生成回路
８    閾値比較回路
９    誤差生成回路
１０    スクリーンドット生成回路
１６、１９    グレー生成回路Ｉ、ＩＩ
１７、２０    閾値比較回路Ｉ、ＩＩ
１８、２１    誤差生成回路Ｉ、ＩＩ
【図１】
2010504007.tif 000003
【図２】
2010504007.tif 000004
【図３】
2010504007.tif 000005
【図４】
2010504007.tif 000006
【図５】
2010504007.tif 000007
【図６】
2010504007.tif 000008
【図７】
2010504007.tif 000009
【図８】
2010504007.tif 000010
【図９】
2010504007.tif 000011
【図１０】
2010504007.tif 000012
【図１１】
2010504007.tif 000013
【図１２】
2010504007.tif 000014
【国際調査報告】
2010504007.tif 000015
2010504007.tif 000016
2010504007.tif 000017
2010504007.tif 000018