(57)【要約】  一実施の形態は、画像の２つ以上の画素を受け取ることを含む方法を含む。本方法は、２つ以上の画素に対する誤差拡散をオーバラップする時点で実行することも含む。【選択図】図３
2008523739.tif 000002
【特許請求の範囲】
【請求項１】
画像の２つ以上の画素を受け取ること、及び
オーバーラップする時点で前記２つ以上の画素に対して誤差拡散を実行すること
を含む、方法。
【請求項２】
オーバーラップする時点で前記２つ以上の画素に対して誤差拡散を実行することは、オーバーラップする時点で部分誤差値を前記２つ以上の画素に分散させることを含む、請求項１に記載の方法。
【請求項３】
前記部分誤差値は、フロイド・スタインバーグ（Floyd-Steinberg）誤差フィルタに基づいて計算される、請求項２に記載の方法。
【請求項４】
前記画像の色範囲に満たない色範囲を有する装置に出力することをさらに含む、請求項１に記載の方法。
【請求項５】
画像の第１の画素及び第２の画素の値を受け取ること、
非連続的に、周囲の画素から前記第１の画素及び前記第２の画素に多数の値の端数部分を分散させること、
前記第１の画素及び前記第２の画素の前記値と前記周囲の画素からの前記多数の値の前記端数部分とに基づき前記第１の画素及び前記第２の画素に出力値を割り当てること、及び
前記画像の色範囲に満たない色範囲を有する出力装置に前記出力値を出力すること
を含む、方法。
【請求項６】
前記第１の画素及び前記第２の画素の前記値と該第１の画素及び該第２の画素の前記出力値との間の差に基づき該第１の画素及び該第２の画素の誤差を計算することをさらに含む、請求項５に記載の方法。
【請求項７】
前記画像の前記第１の画素及び前記第２の画素の値を受け取ることは、およそ連続階調のデジタル画像の前記第１の画素及び前記第２の画素の値を受け取ることを含む、請求項６に記載の方法。
【請求項８】
前記端数部分を分散させることは、前記第１の画素及び前記第２の画素に対する端数部分を非連続的に計算することを含む、請求項５に記載の方法。
【請求項９】
前記端数部分を分散させることは、前記端数部分のうちの１つの値を該端数部分のうちの異なる１つに割り当てて、前記第１の画素の端数部分を、オーバラップする時点で計算することを含む、請求項５に記載の方法。
【請求項１０】
画像信号プロセッサであって、
周囲の画素からの部分誤差値に基づいて画像の第１の画素に対し誤差拡散動作の少なくとも一部を実行する第１のアクセラレータユニットと、
前記周囲の画素からの部分値に基づいて、前記第１のアクセラレータユニットによる前記誤差拡散と部分的に並列に、前記画像の第２の画素に対し誤差拡散動作の少なくとも一部を実行する第２のアクセラレータユニットと
を含む画像信号プロセッサ
を具備する、装置。
【請求項１１】
前記画像はおよそ連続階調デジタル画像である、請求項１０に記載の装置。
【請求項１２】
前記第１の画素に対する前記誤差拡散動作の一部として、前記第１のアクセラレータユニットは、前記周囲の画素からの前記部分値に基づいて前記第１の画素の値を更新する、請求項１０に記載の装置。
【請求項１３】
前記第２の画素に対する前記誤差拡散動作の一部として、前記第１のアクセラレータユニットは、前記周囲の画素からの前記部分値に基づいて前記第２の画素の値を更新する、請求項１２に記載の装置。
【請求項１４】
前記第１の画素に対する前記誤差拡散動作の一部として、前記第２のアクセラレータユニットは、前記第１の画素の前記更新値と閾値との間の比較に基づいて該第１の画素の出力値を生成する、請求項１３に記載の装置。
【請求項１５】
前記第１の画素に対する前記誤差拡散動作の一部として、前記第２のアクセラレータユニットは、前記出力値と前記第１の画素の元の値との間の差を計算する、請求項１４に記載の装置。
【請求項１６】
前記第２の画素に対する前記誤差拡散動作の一部として、前記第１のアクセラレータユニットは、前記第２の画素の前記更新値と閾値との間の比較に基づいて該第２の画素の出力値を生成する、請求項１３に記載の装置。
【請求項１７】
前記第２の画素に対する前記誤差拡散動作の一部として、前記第１のアクセラレータユニットは、前記出力値と前記第２の画素の元の値との間の差を計算する、請求項１６に記載の装置。
【請求項１８】
およそ連続階調の画像を取り込む電荷結合素子センサと、
画像信号プロセッサであって、
前記およそ連続階調の画像の第１の画素及び第２の画素を受け取る入力プロセッサ要素と、
周囲の画素からの部分誤差値に基づいて前記第１の画素及び前記第２の画素に対する誤差拡散の動作を実行する第１のアクセラレータユニットと、
前記周囲の画素からの前記部分誤差値に基づいて、前記第１のアクセラレータユニットによる動作とオーバラップする時点で、前記第１の画素及び前記第２の画素に対する誤差拡散の動作を実行する第２のアクセラレータユニットと、
前記誤差拡散の後に、前記およそ連続階調の画像の色範囲に満たない色範囲を有する出力装置に、前記第１の画素及び前記第２の画素の値を出力する出力プロセッサ要素と
を含む画像信号プロセッサと
を具備する、システム。
【請求項１９】
前記第１の画素に対する前記誤差拡散動作のために、前記第１のアクセラレータユニットは、前記周囲の画素からの前記部分誤差値に基づいて前記第１の画素の値を更新する、請求項１８に記載のシステム。
【請求項２０】
前記第２の画素に対する前記誤差拡散動作の一部として、前記第２のアクセラレータユニットは、前記周囲の画素からの前記部分誤差値に基づいて前記第２の画素の値を更新する、請求項１９に記載のシステム。
【請求項２１】
前記第１の画素に対する前記誤差拡散動作の一部として、前記第２のアクセラレータユニットは、前記第１の画素の前記更新値と閾値との間の比較に基づいて該第１の画素の出力値を生成し、前記第２のアクセラレータユニットは、前記出力値と前記第１の画素の元の値との間の差を計算する、請求項２０に記載のシステム。
【請求項２２】
前記第２の画素に対する前記誤差拡散動作の一部として、前記第１のアクセラレータユニットは、前記第２の画素の前記更新値と閾値との間の比較に基づいて該第２の画素の出力値を生成し、前記第１のアクセラレータユニットは、前記出力値と前記第２の画素の元の値との間の差を計算する、請求項２１に記載のシステム。
【請求項２３】
機械可読媒体であって、
機械によって実行されると、該機械に対し、
画像の２つ以上の画素を受け取ること、及び
部分的に並列に前記２つ以上の画素に対して誤差拡散を実行すること
を含む動作を実行させる命令を提供する、機械可読媒体。
【請求項２４】
前記部分的に並列に前記２つ以上の画素に対して誤差拡散を実行することは、部分的に並列に部分誤差値を前記２つ以上の画素に分散させることを含む、請求項２３に記載の機械可読媒体。
【請求項２５】
前記部分誤差値は、フロイド・スタインバーグ誤差フィルタに基づいて計算される、請求項２４に記載の機械可読媒体。
【請求項２６】
前記画像の色範囲に満たない色範囲を有する装置に出力することをさらに含む、請求項２３に記載の機械可読媒体。
【請求項２７】
機械によって実行されると、該機械に対し、
画像の第１の画素及び第２の画素の値を受け取ること、
オーバラップする時点で、周囲の画素から前記第１の画素及び前記第２の画素に多数の値の端数部分を分散させること、
前記第１の画素及び前記第２の画素の前記値と前記周囲の画素からの前記多数の値の前記端数部分とに基づき前記第１の画素及び前記第２の画素に出力値を割り当てること、並びに
前記画像の色範囲に満たない色範囲を有する出力装置に前記出力値を出力すること
を含む動作を実行させる命令を提供する、機械可読媒体。
【請求項２８】
前記第１の画素及び前記第２の画素の前記値と該第１の画素及び該第２の画素の前記出力値との間の差に基づき該第１の画素及び該第２の画素の誤差を計算することをさらに含む、請求項２７に記載の機械可読媒体。
【請求項２９】
フロイド・スタインバーグ誤差フィルタに基づいて前記複数の誤差の前記端数部分の前記分散を計算することをさらに含む、請求項２７に記載の機械可読媒体。
【請求項３０】
前記画像の前記第１の画素及び前記第２の画素の値を受け取ることは、およそ連続階調のデジタル画像の前記第１の画素及び前記第２の画素の値を受け取ることを含む、請求項２９に記載の機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、包括的にはデータ処理に関し、詳細には画像処理に関する。
【背景技術】
【０００２】
誤差拡散は、色（色調）範囲が限られた出力装置におけるデジタル画像（連続階調デジタル画像等）の表示を近似させるプロセスである。誤差拡散は、プリンタにおいて、複数の色合いを２値ドット値でシミュレートするためにもっとも一般的に使用される。たとえば、黒のドットしかプリントすることができないプリンタは、誤差拡散を用いて複数の灰色の色合いをシミュレートすることができる。
【０００３】
本発明の実施の形態を、こうした実施の形態を例示する以下の説明及び添付図面を参照することによってもっともよく理解することができる。本明細書に含まれる図面に対する符号付け方式は、図面の所与の参照符号の先頭の符号がその図面の符号に関連するというものである。たとえば、画素１０２の位置を図１Ａに特定することができる。しかしながら、異なる図面にわたって同じである要素の場合、参照符号は同じである。
【発明を実施するための最良の形態】
【０００４】
いくつかの実施形態が誤差拡散動作を提供する。誤差拡散は、３つの動作を含んでもよい。第１の動作は、現画素値を量子化して出力値を生成することを含む。特に、元の画素値が、周囲の画素から拡散される誤差を含むように調整される。実施形態によっては、この調整された現画素値の出力値は、調整された値の閾値との比較に基づいて０又は１であってもよい。誤差拡散の第２の動作は、出力値と元の画素値との間の差（すなわち誤差）を計算することを含む。誤差拡散の第３の動作は、部分誤差値を周囲の画素に拡散させることを含む。周囲の画素に誤差を拡散させるために複数の誤差拡散フィルタのうちの任意のものを使用してもよいが、いくつかの実施形態では、フロイド・スタインバーグフィルタが使用される。使用してもよい他のフィルタには、バークス（Burkes）フィルタ、スタッキ（Stucki）フィルタ等がある。
【０００５】
図１Ａは、本発明のいくつかの実施形態による、１つの画素から周囲の画素への誤差の拡散を示す。図１Ａは、画素１０２〜１１８を含む画像の一部を示す。画素１０２〜１１８は、それぞれ画素Ｐ（ｉ−１，ｊ−１）、Ｐ（ｉ−１，ｊ）、Ｐ（ｉ−１，ｊ＋１）、Ｐ（ｉ，ｊ−１）、Ｐ（ｉ，ｊ）、Ｐ（ｉ，ｊ＋１）、Ｐ（ｉ＋１，ｊ−１）、Ｐ（ｉ＋１，ｊ）及びＰ（ｉ＋１，ｊ＋１）である。図示するように、画素１１０は、その誤差値の７／１６、３／１６、５／１６及び１／１６をそれぞれ画素１１２、１１４、１１６及び１１８に拡散させる。
【０００６】
図１Ｂは、本発明のいくつかの実施形態による、周囲の画素から１つの画素への誤差の拡散を示す。特に、図１Ｂは、誤差拡散のための閾値演算の前に誤差が計算されその後特定の画素に拡散することを示す。図１Ｂは、画素１２０〜１３６を含む画像の一部を示す。画素１２０〜１３６は、それぞれ画素Ｐ（ｉ−１，ｊ−１）、Ｐ（ｉ−１，ｊ）、Ｐ（ｉ−１，ｊ＋１）、Ｐ（ｉ，ｊ−１）、Ｐ（ｉ，ｊ）、Ｐ（ｉ，ｊ＋１）、Ｐ（ｉ＋１，ｊ−１）、Ｐ（ｉ＋１，ｊ）及びＰ（ｉ＋１，ｊ＋１）である。図示するように、画素１２８は、画素１２０から１／１６の部分誤差値ｅＡを受け取る。画素１２８は、画素１２２から５／１６の部分誤差値ｅＢを受け取る。画素１２８は、画素１２４から３／１６の部分誤差値ｅＣを受け取る。画素１２８は、画素１２６から７／１６の部分誤差値ｅＤを受け取る。
【０００７】
図２は、本発明のいくつかの実施形態による誤差拡散のための擬似コードを示す。特に、図２は、本発明のいくつかの実施形態による、図１に示す誤差拡散を実行するために使用することができる擬似コード２００を示す。コードブロック２０２は、中間誤差値（１／１６×ｅＡ、５／１６×ｅＢ、３／１６×ｅＣ及び７／１６×ｅＤ）のアキュムレータ変数への割当てを含む。コード文２０４は、アキュムレータ変数に画像の位置（ｉ，ｊ）における画素の値を加える。したがって、アキュムレータ変数は、位置（ｉ，ｊ）における画素の値に、周囲の画素から受け取られた中間誤差値を足した値に等しい。周囲の画素の例を後に示す。コードブロック２０６は、アキュムレータが閾値（たとえば０．５）未満の場合は位置（ｉ，ｊ）における画素に０の値を割り当て、アキュムレータが閾値未満でない場合はこの画素に１の値を割り当てる。コード文２０８は、実際の値（アキュムレータに格納された値）と割り当てられた値（０又は１）との間の差に基づいて誤差バッファを更新する。
【０００８】
図３は、本発明のいくつかの実施形態による、周囲の画素から複数の画素への中間誤差値のデータの流れを示す。図３は、画素３０２〜３２４を含む画像の一部を示す。画素３０２〜３２４は、それぞれ画素Ｐ（ｉ−１，ｊ−１）、Ｐ（ｉ−１，ｊ）、Ｐ（ｉ−１，ｊ＋１）、Ｐ（ｉ−１，ｊ＋２）、Ｐ（ｉ，ｊ−１）、Ｐ（ｉ，ｊ）、Ｐ（ｉ，ｊ＋１）、Ｐ（ｉ，ｊ＋２）、Ｐ（ｉ＋１，ｊ−１）、Ｐ（ｉ＋１，ｊ）、Ｐ（ｉ＋１，ｊ＋１）及びＰ（ｉ＋１，ｊ＋２）である。画素３１２及び３１４は、計算に関して現画素及び次の画素として定義される。部分誤差値ｅＤ（７／１６）を、画素３１０から現画素３１２に拡散させてもよい。部分誤差値ｅＤを、入力画像３１６から生成し、現画素３０２に拡散させてもよい。部分誤差値ｅＤ（７／１６）を、現画素３１２から次の画素３１４に拡散させてもよい。したがって、部分誤差値ｅＤを、先の画素の誤差計算の一部として計算してもよい。
【０００９】
さらに、誤差バッファは、先の行の周囲の画素から現画素３１２及び次の画素３１４に拡散させてもよい多数の中間誤差値を格納する。特に、部分誤差値を、画素３０２から現画素３１２に（ｅＡ−１／１６として）拡散させてもよい。部分誤差値を、画素３０４から現画素３１２に（ｅＢ−５／１６として）且つ次の画素３１４に（ｅＣ−３／１６として）拡散させてもよい。部分誤差値を、画素３０６から現画素３１２に（ｅＣ３／１６として）且つ次の画素３１４に（ｅＢ−５／１６として）拡散させてもよい。部分誤差値を画素３０８から次の画素３１４に（ｅＣ−３／１６として）拡散させてもよい。
【００１０】
したがって、図示するように、現画素のｅＢは次の画素のｅＡである。さらに、現画素のｅＣは次の画素のｅＢである。さらに、次の画素のｅＣを誤差バッファから取り出してもよく、次の画素のｅＤは現画素の誤差計算からである。このデータの流れのより詳細な説明は後に示す。
【００１１】
図４は、本発明のいくつかの実施形態による、画像信号プロセッサのより詳細なブロック図を示す。画像信号プロセッサ４００は、入力プロセッサ要素４０２、出力プロセッサ要素４０４、多数のプロセッサ要素４０６Ａ〜４０６Ｃ、多数のレジスタ４０８、多数のアクセラレータユニット４１０Ａ及び４１０Ｂ、メモリ４１４及びメモリコントローラ４１６を含む。入力プロセッサ要素４０２、出力プロセッサ要素４０４、プロセッサ要素４０６Ａ〜４０６Ｃ、アクセラレータユニット５１０Ａ〜４１０Ｂ及びメモリ４１４（メモリコントローラ４１６を介する）は、レジスタ４０８に結合される。レジスタ４０８により、プロセッサ要素４０２、４０４及び４０６、アクセラレータユニット４１０Ａ及び４１０Ｂ及びメモリ４１４はデータを交換することができ、レジスタ４０８を、所与のプロセッサ要素４０２、４０４及び４０６並びにアクセラレータユニット４１０Ａ及び４０１Ｂのための汎用レジスタとして使用することができる。さらに、プロセッサ要素４０２、４０４及び４０６並びにアクセラレータユニット４１０Ａ及び４１０Ｂは、多数のローカルレジスタ（図示せず）を含んでもよい。
【００１２】
一実施形態では、入力プロセッサ要素４０２、出力プロセッサ要素４０４及びプロセッサ要素４０６Ａ〜４０６Ｃは、命令メモリとデータを処理するための論理演算装置（ＡＬＵ）とを含む。入力プロセッサ要素４０２及び出力プロセッサ要素４０４は、ポートリングを介して画像信号プロセッサ４００のポートに結合されることにより、それぞれ、画像信号プロセッサ４００に入力されているデータを受け取り、画像信号プロセッサ４００から出力されているデータを送信する。いくつかの実施形態による、こうした構成を有するアーキテクチャは後により詳細に説明する。
【００１３】
データを入力し且つ出力することに加えて、入力プロセッサ要素４０２及び／又は出力プロセッサ要素４０４は、プロセッサ要素４０６Ａ〜４０６Ｃによって提供される処理と同様にデータを処理してもよい。種々のプロセッサ要素４０６Ａ〜４０６Ｃは、汎用プロセッサ要素か又は専用プロセッサ要素であってもよい。たとえば、プロセッサ要素４０６Ａ〜４０６Ｃは、積和（ＭＡＣ）プロセッサ要素であってもよく、それは、汎用処理のための命令セットとともにＭＡＣ機能のための命令セットを含む。プロセッサ要素４０６Ａ〜４０６Ｃは、汎用プロセッサ要素と専用プロセッサ要素との組合せであってもよい。たとえば、プロセッサ要素４０６Ａ及び４０６ＣはＭＡＣプロセッサ要素であってもよく、プロセッサ要素４０６Ｂは汎用プロセッサ要素であってもよい。図４は、画像信号プロセッサ４００内の５つのプロセッサ要素を示すが、他の実施形態では、より少ないか又は多いこうしたプロセッサ要素を画像信号プロセッサ４００に組み込んでもよい。
【００１４】
入力プロセッサ要素４０２は、入力ポートとしてポートインタフェースを備える汎用プロセッサ要素である。一実施形態では、入力プロセッサ要素４０２内の命令は、レジスタ４０８及び入力プロセッサ要素４０２内のローカルレジスタとともに追加の入力オペランドとしてポートを有する。出力プロセッサ要素４０４は、出力ポートとしてポートインタフェースを備える汎用プロセッサ要素である。一実施形態では、出力プロセッサ要素４０４内の命令は、レジスタ４０８及び出力プロセッサ要素４０４内のローカルレジスタとともに追加の出力オペランドとしてのポートを有する。
【００１５】
図５は、本発明のいくつかの実施形態による、誤差拡散動作のための画像信号プロセッサのより詳細なブロック図を示す。特に、図５は、本発明のいくつかの実施形態による、画像信号プロセッサ４００のより詳細なブロック図を示す。図５は、図４の多数の要素を含み、こうした要素の間のデータの流れを示すために、同じ要素が多数の異なるブロックにわたって分散されている。したがって、図５内で同じ参照要素が異なるブロックを指す。さらに、こうしたブロックは、そこで実行される動作のタイプの記述を含む場合もある。
【００１６】
入力プロセッサ要素４０２の入力画素アンパックブロックは、パック入力画素５０４を受け取るように結合される。入力プロセッサ要素４０２の誤差アンパックブロックは、誤差バッファ５０２から中間誤差値を受け取るように結合される。入力プロセッサ要素４０２のアンパック入力画素ブロックからの出力は、アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックの入力とアクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックの入力とに結合される。
【００１７】
入力プロセッサ要素４０２の誤差アンパックブロックからの出力は、プロセッサ要素４０６Ａの誤差キャッシュの入力に結合される。プロセッサ要素４０６Ａの誤差キャッシュの出力は、アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックの入力とアクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックの入力とに結合される。
【００１８】
アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックの出力は、アクセラレータユニット４１０Ｂの比較ブロック及び減算器ブロックの入力に結合される。アクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックの出力は、アクセラレータユニット４１０Ａの比較ブロック及び減算器ブロックの入力に結合される。比較ブロックの入力には閾値入力５０７が結合される。閾値入力５０７は、２つの異なる比較ブロックに対して異なってもよい。アクセラレータユニット４１０Ｂの比較ブロックの出力は、アクセラレータユニット４１０Ｂの減算器ブロックの入力と、出力プロセッサ要素４０４の出力画素パックブロックの入力とに結合される。アクセラレータユニット４１０Ａの比較ブロックの出力は、アクセラレータユニット４１０Ａの減算器ブロックの入力と、出力プロセッサ要素４０４の出力画素パックブロックの入力とに結合される。出力画素パックブロックからの出力は、パック出力画素５０６である。
【００１９】
アクセラレータユニット４１０Ｂの減算器ブロックの出力は、出力プロセッサ要素４０４の新誤差パックブロックの入力と、誤差フィルタ（偶数）ブロックの入力とに結合される。アクセラレータユニット４１０Ａの減算器ブロックの出力は、出力プロセッサ要素４０４の新誤差パックブロックの入力と、誤差フィルタ（奇数）ブロックの入力とに結合される。新誤差パックブロックの出力は、誤差バッファ５０２の入力に結合される。図５のブロック図の動作のより詳細な説明については後に示す。
【００２０】
図６は、本発明のいくつかの実施形態による誤差拡散ベース画像処理のフローチャートを示す。特に、図６は、本発明のいくつかの実施形態による、図５に示す画像信号プロセッサの動作を示すフローチャート６００を含む。
【００２１】
ブロック６０２において、画像の画素が受け取られる。図５の実施例を参照すると、入力プロセッサ要素４０２の入力画素アンパックブロックが画像の画素を受け取ってもよい。実施形態によっては、画素を、異なる画像信号プロセッサ４００、メモリ又は入出力デバイス（センサ等）から受け取ってもよい。たとえば、画素を、（上述したような）データ駆動動作に基づいてこうしたコンポーネントのうちの１つから受け取ってもよい。実施形態によっては、画像は連続階調デジタル画像であってもよい。ブロック６０４において制御は続く。
【００２２】
ブロック６０４において、オーバラップする時点で２つ以上の画素に対し誤差拡散が実行される。言い換えれば、１つの画素に対する誤差拡散の実行の時点が、１つ又は複数の他の画素の誤差拡散の実行の時点とオーバラップする。図５の実施形態を参照すると、入力プロセッサ要素４０２、アクセラレータユニット４１０Ａ及び４１０Ｂ、プロセッサ要素４０６Ａ及び出力プロセッサ要素４０４の異なるブロックが、こうした動作を実行してもよい。こうした動作のより詳細な説明について、図７の説明とともに以下に示す。
【００２３】
図７は、本発明のいくつかの実施形態による、画像信号プロセッサ内の複数の要素による誤差拡散ベース画像処理の動作の表を示す。図７は、入力プロセッサ要素４０２、アクセラレータユニット４１０Ａ及び４１０Ｂ、プロセッサ要素４０６Ａ及び出力プロセッサ要素４０４の互いに対する動作を示す表７００を示す。より詳細には、表７００は、２つ以上の画素に対する誤差拡散の実行を部分的に並列に示す。言い換えれば、１つの画素に対する誤差拡散の実行は、１つ又は複数の他の画素に対する誤差拡散の実行と部分的に並列である。列は、こうした動作のタイミングを表してもよい。したがって、同じ列の動作を、少なくとも部分的に同時に実行してもよい。
【００２４】
第１の時点において（列７０２）、入力プロセッサ要素４０２及びアクセラレータユニット４１０Ａが動作を実行してもよい。入力プロセッサ要素４０２の誤差アンパックは、誤差バッファ５０２から先の行からの２つの中間誤差値を読み込んでもよい。特に、誤差アンパックブロックは、誤差バッファ５０２からのｅＣｅｖｅｎ（偶数画素に対して使用されるｅＣ）及びｅＣｏｄｄ（奇数画素に対して使用されるｅＣ）を読み込んでもよい。部分的に並列に、アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＡを受け取ってもよい。誤差フィルタ（偶数）ブロックは、偶数画素に対して（１×ｅＡ）を計算し、この計算の完了後にプロセッサ要素４０６Ａに通知してもよい。
【００２５】
第２の時点において（列７０４）、入力プロセッサ要素４０２、アクセラレータユニット４１０Ａ及びプロセッサ要素４０６Ａが動作を実行してもよい。入力プロセッサ要素４０２の誤差アンパックブロックが、偶数画素及び奇数画素に対して誤差値ｅＣをアンパックしてもよい。部分的に並列に、アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＢを受け取ってもよい。誤差フィルタ（偶数）ブロックは、偶数画素に対して（５×ｅＢ）を計算し、この計算の完了後にプロセッサ要素４０６Ａに通知してもよい。部分的に並列に、プロセッサ要素４０６Ａは、ｅＢの値をｅＡにロードしてもよい。さらに、プロセッサ要素４０６Ａは、このロード動作の完了後にアクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックに通知してもよい。上述したように、現画素に対するｅＢは、次の画素に対するｅＡである。アクセラレータユニット４１０Ａは偶数画素に対してｅＡを使用して完了したため、こうした値を、奇数画素に対するｅＡ（偶数画素に対するｅＢ）によって上書きしてもよい。
【００２６】
第３の時点において（列７０６）、入力プロセッサ要素４０２、アクセラレータユニット４１０Ａ、プロセッサ要素４０６Ａ及びアクセラレータユニット４１０Ｂが動作を実行してもよい。入力プロセッサ要素４０２の入力画素アンパックブロックは、２つの入力画素（ｐｅｖｅｎ及びｐｏｄｄ）を読み込んでもよい。部分的に並列に、アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＣを受け取ってもよい。誤差フィルタ（偶数）ブロックは、偶数画素に対して（５×ｅＣ）を計算してもよい。部分的に並列に、プロセッサ要素４０６Ａは、ｅＣの値をｅＢにロードしてもよい。さらに、プロセッサ要素４０６Ａは、このロード動作の完了後にアクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックに通知してもよい。さらに、部分的に並列に、アクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＡを受け取ってもよい。誤差フィルタ（偶数）ブロックは、奇数画素に対して（１×ｅＡ）を計算し、この計算の完了の後にプロセッサ要素４０６Ａに通知してもよい。
【００２７】
第４の時点において（列７０８）、入力プロセッサ要素４０２、アクセラレータユニット４１０Ａ、プロセッサ要素４０６Ａ及びアクセラレータユニット４１０Ｂが動作を実行してもよい。入力プロセッサ要素４０２の入力画素アンパックブロックは、２つの入力画素（ｐｅｖｅｎ及びｐｏｄｄ）をアンパックしてもよい。入力プロセッサ要素４０２は、入力画素（ｐｅｖｅｎ及びｐｏｄｄ）を、それぞれ、アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックと、アクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックとに転送してもよい。部分的に並列に、アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＤを受け取ってもよい。誤差フィルタ（偶数）ブロックは、偶数画素に対して（７×ｅＤ）を計算してもよい。部分的に並列に、プロセッサ要素４０６Ａは、ｅＢの値をｅＡにロードしてもよい。さらに、部分的に並列に、アクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＢを受け取ってもよい。誤差フィルタ（偶数）ブロックは、奇数画素に対して（５×ｅＢ）を計算し、この計算の完了後にプロセッサ要素４０６Ａに通知してもよい。
【００２８】
第５の時点において（列７１０）、アクセラレータユニット４１０Ａ、プロセッサ要素４０６Ａ及びアクセラレータユニット４１０Ｂが動作を実行してもよい。アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックは、偶数画素に対して誤差値を計算してもよい。特に、誤差フィルタ（奇数）ブロックは、周囲の画素から計算された部分誤差値（１×ｅＡ、５×ｅＢ、３×ｅＣ及び７×ｅＤ）を合計し結果を１６で割ってもよい。部分的に並列に、プロセッサ要素４０６ＡはｅＣの値をｅＢにロードしてもよい。部分的に並列に、アクセラレータユニット４１０Ｂの誤差フィルタ（偶数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＣを受け取ってもよい。誤差フィルタ（奇数）ブロックは、奇数画素に対して（３×ｅＣ）を計算してもよい。さらに、２つの現入力画素を読み込んだ後の或る時点において、入力プロセッサ要素４０２の入力画素アンパックブロックは、次の２つの入力画素を読み込んでもよい。
【００２９】
第６の時点において（列７１２）、アクセラレータユニット４１０Ａ及びアクセラレータユニット４１０Ｂが動作を実行してもよい。アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックは、次の未処理画素（次の偶数画素）に対して誤差拡散の計算を開始してもよい。誤差フィルタ（偶数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＡを受け取ってもよい。誤差フィルタ（偶数）ブロックは、偶数画素に対して（１×ｅＡ）を計算し、この計算の完了の後にプロセッサ要素４０６Ａに通知してもよい。部分的に並列に、誤差フィルタ（奇数）ブロックは、偶数画素に対して閾値を計算してもよい。図５を参照すると、誤差フィルタ（奇数）ブロックは、コードブロック１６０６に示す閾値動作を実行してもよい。図５を参照すると、アクセラレータユニット４１０Ｂの比較ブロックは、偶数画素に対する累積値が閾値入力５０７からの閾値より大きいか否かを判断してもよい。比較ブロックからの出力は、（図４のコードブロック４０６に示すように）偶数画素に対する累積値が閾値を超えるか否かによって決まる２値（０又は１）であってもよい。
【００３０】
第７の時点において（列７１４）、アクセラレータユニット４１０Ａ、プロセッサ要素４０６Ａ、アクセラレータユニット４１０Ｂ及び出力プロセッサ要素４０４が動作を実行してもよい。誤差フィルタ（偶数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＢを受け取ってもよい。誤差フィルタ（偶数）ブロックは、次の偶数画素に対して（５×ｅＢ）を計算し、この計算の完了の後にプロセッサ要素４０６Ａに通知してもよい。部分的に並列に、プロセッサ要素４０６Ａは、ｅＢの値をｅＡにロードしてもよい。さらに、プロセッサ要素４０６Ａは、このロード動作の完了後にアクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックに通知してもよい。部分的に並列に、アクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックは、偶数画素に対して誤差計算を計算してもよい。図２を参照すると、誤差フィルタ（奇数）ブロックは、コード文２０８に示す誤差計算動作を実行してもよい。アクセラレータユニット４１０Ｂの減算器ブロックは、実際の値（累積値）と出力値（０又は１）との間の差を確定してもよい。この誤差値（偶数）５０８は、アクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックに入力される。
【００３１】
第８の時点において（列７１６）、アクセラレータユニット４１０Ａ、プロセッサ要素４０６Ａ、アクセラレータユニット４１０Ｂ及び出力プロセッサ要素４０４が動作を実行してもよい。アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＣを受け取ってもよい。誤差フィルタ（偶数）ブロックは、次の偶数画素に対して（３×ｅＣ）を計算してもよい。部分的に並列に、プロセッサ要素４０６Ａは、ｅＣの値をｅＢにロードしてもよい。さらに、プロセッサ要素４０６Ａは、このロード動作の完了後にアクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックに通知してもよい。部分的に並列に、アクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックは、奇数画素に対して計算してもよい（７×ｅＤ）。部分的に並列に、出力プロセッサ要素４０４の出力画素パックブロックは、（アクセラレータユニット４１０Ｂの比較ブロックから受け取られた）偶数画素の値をパックしてもよい。パック出力画素ブロックは、この値をパック出力画素５０６として出力してもよい。
【００３２】
第９の時点において（列７１８）、アクセラレータユニット４１０Ｂ及び出力プロセッサ要素４０４が動作を実行してもよい。アクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックは、奇数画素に対して誤差値を計算してもよい。特に、誤差フィルタ（奇数）ブロックは、周囲の画素からの計算された部分誤差値（１×ｅＡ、５×ｅＢ、３×ｅＣ及び７×ｅＤ）を合計し、結果を１６で割ってもよい。部分的に並列に、出力プロセッサ要素４０４の新誤差パックブロックは、偶数画素に対してこの新たな誤差値で誤差バッファ５０２を更新してもよい。
【００３３】
第１０の時点において（列７２０）、アクセラレータユニット４１０Ａ及びアクセラレータユニット４１０Ｂが動作を実行してもよい。アクセラレータユニット４１０Ａの誤差フィルタ（偶数)ブロックは、奇数画素に対して閾値を計算してもよい。図５を参照すると、誤差フィルタ（奇数）ブロックは、コードブロック１６０６に示す閾値動作を実行してもよい。アクセラレータユニット４１０Ｂの比較ブロックは、奇数画素の累積値が閾値入力５０７からの閾値より大きいか否かを確定してもよい。比較ブロックからの出力は、奇数画素に対する累積値が閾値（図２のコードブロック２０６に示すような）を超えるか否かによって決まる２値（０又は１）であってもよい。さらに、部分的に並列に、アクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＡを受け取ってもよい。誤差フィルタ（偶数）ブロックは、次の奇数画素に対して（１×ｅＡ）を計算し、この計算の完了後にプロセッサ要素４０６Ａに通知してもよい。
【００３４】
第１１の時点において（列７２２）、アクセラレータユニット４１０Ａ、プロセッサ要素４０６Ａ、アクセラレータユニット４１０Ｂ及び出力プロセッサ要素４０４が動作を実行してもよい。アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックは、奇数画素に対して誤差計算を計算してもよい。図２を参照すると、誤差フィルタ（奇数)ブロックは、コード文２０８に示す誤差計算動作を実行してもよい。アクセラレータユニット４１０Ｂの減算器ブロックは、実際の値（累積値）と出力値（０又は１）との差を確定してもよい。この誤差値（奇数）５１０は、アクセラレータユニット４１０Ｂの誤差フィルタ（偶数）ブロックに入力される。部分的に並列に、プロセッサ要素４０６Ａは、ｅＢの値をｅＡにロードし、この計算の完了後にプロセッサ要素４０６Ａに通知してもよい。部分的に並列に、アクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＢを受け取ってもよい。誤差フィルタ（偶数）ブロックは、次の奇数画素に対して計算し（５×ｅＢ）、この計算の完了後にプロセッサ要素４０６Ａに通知してもよい。部分的に並列に、出力プロセッサ要素４０４の出力画素パックブロックは、（アクセラレータユニット４１０Ａの比較ブロックから受け取られた）奇数画素の値をパックしてもよい。パック出力画素ブロックは、この値をパック出力画素５０６として出力してもよい。
【００３５】
第１２の時点において（列７２４）、アクセラレータユニット４１０Ａ、プロセッサ要素４０６Ａ及び出力プロセッサ要素４０４が動作を実行してもよい。アクセラレータユニット４１０Ａの誤差フィルタ（偶数）ブロックは、プロセッサ要素４０６Ａの誤差キャッシュからｅＤを受け取ってもよい。誤差フィルタ(偶数)ブロックは、次の偶数画素に対して計算してもよい（７×ｅＤ）。プロセッサ要素４０６Ａは、ｅＣの値をｅＢにロードし、このロード動作の完了後にアクセラレータユニット４１０Ｂの誤差フィルタ（奇数）ブロックに通知してもよい。部分的に並列に、出力プロセッサ要素４０４の新誤差パックブロックは、奇数画素に対する新たな誤差値によって誤差バッファ５０２を更新してもよい。
【００３６】
実施形態によっては、色（色調）範囲が限られた出力装置（プリンタ、スクリーン等）に連続階調デジタル画像を出力するために誤差拡散動作を組み込んでもよい。いくつかの実施形態を使用して、部分的に並列に２つ以上の画素に対して誤差拡散を実行してもよい。上述したように、実施形態によっては、プロセッサが、複数の実行エンジンを、少なくとも部分的に非連続的に又は同時に複数の画素を処理することによって占有されたままにすることができる。さらに、複数の画素のこの処理の間、実施形態によっては、周囲の画素からの中間誤差値を共有する。したがって、上述したように、画像の画素のこの並列処理は、画像の画素のすべてが処理されるまで続いてもよい。
【００３７】
本明細書で説明した誤差拡散動作は、多数の異なる環境において動作してもよく、ここで、こうした動作を実行するために使用されるいくつかの実施形態によるプロセッサアーキテクチャについて説明する。特に、図８は、本発明のいくつかの実施形態による、誤差拡散動作を実行するプロセッサアーキテクチャを示す。図８は、本発明のいくつかの実施形態による、データ駆動アーキテクチャのプロセス間通信のためのシステムを示す。図８は、センサ８１６から入力データストリーム８１８を受け取るために結合されるイメージプロセッサ８０２を含むシステム８００を示す。センサ８１６はタイプが異なってもよいが、一実施形態では、センサ８１６は電荷結合素子（ＣＣＤ）センサである。一実施形態では、センサ８１６は相補型金属酸化膜半導体（ＣＭＯＳ）センサである。センサ８１６は、画像をスキャンしてデジタル化し、それにより入力データストリーム８１８を生成する。たとえば、一実施形態では、システム８００は画像（文書、写真等）をスキャンし処理するスキャナ内に組み込まれる。
【００３８】
一実施形態では、イメージプロセッサ８０２はデータ駆動であるアーキテクチャを有し、そこでは、イメージプロセッサ８０２内の異なる要素にわたるデータの送信及び受信により、その中での動作の実行が駆動される。言い換えれば、イメージプロセッサ８０２の要素内の所与の動作は、必要なデータが実行のために利用可能となると開始する。
【００３９】
イメージプロセッサ８０２は、メモリ８０４Ａ及び８０４Ｂに結合される。一実施形態では、メモリ８０４Ａ及び８０４Ｂは異なるタイプのランダムアクセスメモリ（ＲＡＭ）である。たとえば、メモリ８０４Ａ及び８０４Ｂはダブルデータレート（ＤＤＲ）シンクロナスダイナミックＲＡＭ（ＳＤＲＡＭ）である。後により詳細に説明するように、イメージプロセッサ８０２内の要素は、画像処理に関連するデータをメモリ８０４Ａ及び８０４Ｂに格納する。例示するために、イメージプロセッサ８０２内のプロセッサ要素は、第１の画像処理動作からの結果をメモリ８０４Ａ及び８０４Ｂのうちの１つに格納してもよく、それは後に、第２の画像処理動作を実行するためにイメージプロセッサ８０２内の異なるプロセッサ要素によって取り出される。
【００４０】
イメージプロセッサ８０２は、一実施形態では周辺装置インタフェース（ＰＣＩ）バスであってもよいバス８１４に結合される。システム８００はまた、メモリ８０６、ホストプロセッサ８０８、多数の入出力（Ｉ／Ｏ）インタフェース８１０及びネットワークインタフェース８１２も含む。ホストプロセッサ８０８はメモリ８０６に結合される。メモリ８０６は異なるタイプのＲＡＭ（たとえばシンクロナスダイナミックＲＡＭ（ＳＤＲＡＭ）、ＤＲＡＭ、ＤＤＲ−ＳＤＲＡＭ等）であってもよく、一実施形態では、ホストプロセッサ８０８は異なるタイプの汎用プロセッサであってもよい。Ｉ／Ｏインタフェース８１０は、システム８００のためにＩ／Ｏデバイス又は周辺装置に対するインタフェースを提供する。Ｉ／Ｏインタフェース８１０は、システム８００の異なるコンポーネントに対する任意の適切な通信リンクを提供する任意の適切なインタフェースコントローラを含んでもよい。一実施形態のＩ／Ｏインタフェース８１０は、多数のインタフェースのうちの１つに対して適切なアービトレーション及びバッファリングを提供する。
【００４１】
一実施形態では、Ｉ／Ｏインタフェース８１０は、たとえばデータ及び／又は命令を格納する、たとえばハードディスクドライブ（ＨＤＤ）又はコンパクトディスク読み取り専用メモリ（ＣＤＲＯＭ）ドライブ等の１つ又は複数の適切な統合ドライブエレクトロニクス（integrated drive electronics）（ＩＤＥ）ドライブ、１つ又は複数のＵＳＢポートを介する１つ又は複数の適切なユニバーサルシリアルバス（ＵＳＢ）デバイス、オーディオコーダ／デコーダ（コーデック）及びモデムコーデックに対するインタフェースを提供する。一実施形態のＩ／Ｏインタフェース８１０はまた、１つ又は複数のポートを介して、キーボード、マウス、例えばプリンタ等の１つ又は複数の適切なデバイスに対するインタフェースを提供する。ネットワークインタフェース８１２は、多数の通信ネットワーク（インターネット、イントラネットネットワーク、イーサネットベースネットワーク等）のうちの１つによる１つ又は複数のリモートデバイスへのインタフェースを提供する。
【００４２】
ホストプロセッサ８０８、Ｉ／Ｏインタフェース８１０及びネットワークインタフェース８１２は、バス８１４を介してイメージプロセッサ８０２に互いに結合される。後にさらに説明するように、ホストプロセッサ８０８内で実行する命令は、異なるタイプの画像処理に対してイメージプロセッサ８０２を構成する。たとえば、ホストプロセッサ８０８は、イメージプロセッサ８０２内の異なるプロセッサ要素間の多数の異なる論理接続を確立する。さらに、ホストプロセッサ８０８は、マイクロコードをダウンロードし、そこでイメージプロセッサ８０２の異なるコンポーネントのステータスをチェックしてもよい。例示するために、ここでイメージプロセッサ８０２の一実施形態のより詳細な説明を述べる。
【００４３】
説明では、多数の特定の詳細を示す。しかしながら、本発明の実施形態をこれら特定の詳細なしに実施してもよいということが理解される。他の場合では、この説明の理解が不明瞭にならないために、既知の回路、構造及び技法については示していない。発明の主題がより完全に理解されるように、ロジックインプリメンテーション、オペコード、オペランドの記述の方法、資源分割／共有／複製インプリメンテーション、システムコンポーネントのタイプ及び相互関係並びにロジック分割／統合選択等の多数の特定の詳細を示す。しかしながら、当業者には、本発明の実施形態をこうした特定の詳細なしに実施してもよいということが理解されよう。他の場合では、本発明の実施形態を不明瞭にしないように、制御構造、ゲートレベル回路及び完全なソフトウェア命令シーケンスについては詳細に示していない。当業者は、ここに含まれる説明により、過度な実験なしに適切な機能を実装することができるであろう。
【００４４】
本明細書において「一実施形態」、「１つの例示的な実施形態」等と言及する場合、それは、説明する実施形態が特定の特徴、構造又は特性を含む可能性があるが、すべての実施形態が必ずしもその特定の特徴、構造又は特性を含むとは限らないということを示す。さらに、こうした句は、必ずしも同じ実施形態を言及していない。さらに、特定の特徴、構造又は特性を一実施形態に関連して説明するが、明示的に説明するか否かに関わらず他の実施形態に関連してこうした特徴、構造又は特性をもたらすことは当業者の知識の中にあるということが提示される。
【００４５】
本発明の実施形態は、機械可読媒体によって提供される機械実行可能命令内で具現化されてもよい特徴、方法又はプロセスを含む。機械可読媒体は、機械（たとえば、コンピュータ、ネットワークデバイス、携帯情報端末、製造ツール、１つ又は複数のプロセッサのセットを備える任意のデバイス等）によってアクセス可能な形式で情報を提供する（すなわち、格納する且つ／又は送信する）任意のメカニズムを含む。例示的な実施形態では、機械可読媒体は、揮発性及び／又は不揮発性媒体（たとえば、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス等）とともに、電気、光、音響又は他の形態の伝播信号（たとえば、搬送波、赤外線信号、デジタル信号等）を含む。
【００４６】
こうした命令は、それらの命令がプログラムされる汎用プロセッサ又は専用プロセッサに対し本発明の実施形態の方法又はプロセスを実行させるために利用される。代替的に、本発明の実施形態の特徴又は動作は、それらの動作を実行するハードワイヤードロジックを含む特定のハードウェアコンポーネントにより、又はプログラムされたデータ処理コンポーネント及び特定のハードウェアコンポーネントの任意の組合せにより実行される。本発明の実施形態は、本明細書においてさらに説明したソフトウェア、データ処理ハードウェア、データ処理システム実装方法、及びさまざまな処理動作を含む。
【００４７】
複数の図面が、本発明のいくつかの実施形態による誤差拡散ベース画像処理のシステム及び装置のブロック図を示す。複数の装置が、本発明のいくつかの実施形態による誤差拡散ベース画像処理を例示するフローチャートを示す。フローチャートの動作を、ブロック図に示すシステム／装置に関連して説明した。しかしながら、フローチャートの動作を、ブロック図に関連して論じたもの以外のシステム及び装置の実施形態によって実施してもよく、システム／装置に関連して論じた実施形態は、フローチャートに関連して論じたものとは異なる動作を実行してもよいということが理解されるべきである。
【００４８】
本明細書で説明した実施形態に対する多種多様の置換に鑑みて、この詳細な説明は単に例示的であるように意図されており、本発明の主題の範囲を限定するものとしてとられるべきではない。したがって、請求されるものは、添付の特許請求の範囲及びその等価物の範囲及び精神内にあり得るこうした変更形態のすべてである。したがって、明細書及び図面は、限定する意味ではなく例示する意味で考慮されなければならない。
【図面の簡単な説明】
【００４９】
【図１Ａ】本発明のいくつかの実施形態による、１つの画素から周囲の画素に誤差を拡散させることを示す図である。
【図１Ｂ】本発明のいくつかの実施形態による、周囲の画素から１つの画素に誤差を拡散させることを示す図である。
【図２】本発明のいくつかの実施形態による、誤差拡散のための擬似コードを示す図である。
【図３】本発明のいくつかの実施形態による、周囲の画素から複数の画素への部分誤差値のデータの流れを示す図である。
【図４】本発明のいくつかの実施形態による、画像信号プロセッサのより詳細なブロック図である。
【図５】本発明のいくつかの実施形態による、誤差拡散動作のための画像信号プロセッサのより詳細なブロック図である。
【図６】本発明のいくつかの実施形態による、誤差拡散ベース画像処理のフローチャートである。
【図７（ａ）】本発明のいくつかの実施形態による、画像処理プロセッサ内の複数の要素による誤差拡散ベース画像処理のための動作の表である。
【図７（ｂ）】本発明のいくつかの実施形態による、画像処理プロセッサ内の複数の要素による誤差拡散ベース画像処理のための動作の表である。
【図７（ｃ）】本発明のいくつかの実施形態による、画像処理プロセッサ内の複数の要素による誤差拡散ベース画像処理のための動作の表である。
【図８】本発明のいくつかの実施形態による、誤差拡散ベース画像処理のシステムの簡易ブロック図である。
【図１Ａ】
2008523739.tif 000003
【図１Ｂ】
2008523739.tif 000004
【図２】
2008523739.tif 000005
【図３】
2008523739.tif 000006
【図４】
2008523739.tif 000007
【図５】
2008523739.tif 000008
【図６】
2008523739.tif 000009
【図７（ａ）】
2008523739.tif 000010
【図７（ｂ）】
2008523739.tif 000011
【図７（ｃ）】
2008523739.tif 000012
【図８】
2008523739.tif 000013
【国際調査報告】
2008523739.tif 000014
2008523739.tif 000015
2008523739.tif 000016