JP4705645B2 - 誤差拡散ベース画像処理 - Google Patents

誤差拡散ベース画像処理 Download PDF

Info

Publication number
JP4705645B2
JP4705645B2 JP2007545747A JP2007545747A JP4705645B2 JP 4705645 B2 JP4705645 B2 JP 4705645B2 JP 2007545747 A JP2007545747 A JP 2007545747A JP 2007545747 A JP2007545747 A JP 2007545747A JP 4705645 B2 JP4705645 B2 JP 4705645B2
Authority
JP
Japan
Prior art keywords
error
value
pixel
accelerator unit
pixels
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007545747A
Other languages
English (en)
Other versions
JP2008523739A (ja
Inventor
ロバーツ、エリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2008523739A publication Critical patent/JP2008523739A/ja
Application granted granted Critical
Publication of JP4705645B2 publication Critical patent/JP4705645B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/405Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
    • H04N1/4051Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a dispersed dots halftone pattern, the dots having substantially the same size
    • H04N1/4052Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a dispersed dots halftone pattern, the dots having substantially the same size by error diffusion, i.e. transferring the binarising error to neighbouring dot decisions

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

本出願は、包括的にはデータ処理に関し、詳細には画像処理に関する。
誤差拡散は、色(色調)範囲が限られた出力装置におけるデジタル画像(連続階調デジタル画像等)の表示を近似させるプロセスである。誤差拡散は、プリンタにおいて、複数の色合いを2値ドット値でシミュレートするためにもっとも一般的に使用される。たとえば、黒のドットしかプリントすることができないプリンタは、誤差拡散を用いて複数の灰色の色合いをシミュレートすることができる。
米国特許第5434672号明細書 米国特許第7355745号明細書
本発明の実施の形態を、こうした実施の形態を例示する以下の説明及び添付図面を参照することによってもっともよく理解することができる。本明細書に含まれる図面に対する符号付け方式は、図面の所与の参照符号の先頭の符号がその図面の符号に関連するというものである。たとえば、画素102の位置を図1Aに特定することができる。しかしながら、異なる図面にわたって同じである要素の場合、参照符号は同じである。
いくつかの実施形態が誤差拡散動作を提供する。誤差拡散は、3つの動作を含んでもよい。第1の動作は、現画素値を量子化して出力値を生成することを含む。特に、元の画素値が、周囲の画素から拡散される誤差を含むように調整される。実施形態によっては、この調整された現画素値の出力値は、調整された値の閾値との比較に基づいて0又は1であってもよい。誤差拡散の第2の動作は、出力値と元の画素値との間の差(すなわち誤差)を計算することを含む。誤差拡散の第3の動作は、端数誤差値を周囲の画素に拡散させることを含む。周囲の画素に誤差を拡散させるために複数の誤差拡散フィルタのうちの任意のものを使用してもよいが、いくつかの実施形態では、フロイド・スタインバーグフィルタが使用される。使用してもよい他のフィルタには、バークス(Burkes)フィルタ、スタッキ(Stucki)フィルタ等がある。
図1Aは、本発明のいくつかの実施形態による、1つの画素から周囲の画素への誤差の拡散を示す。図1Aは、画素102〜118を含む画像の一部を示す。画素102〜118は、それぞれ画素P(i−1,j−1)、P(i−1,j)、P(i−1,j+1)、P(i,j−1)、P(i,j)、P(i,j+1)、P(i+1,j−1)、P(i+1,j)及びP(i+1,j+1)である。図示するように、画素110は、その誤差値の7/16、3/16、5/16及び1/16をそれぞれ画素112、114、116及び118に拡散させる。
図1Bは、本発明のいくつかの実施形態による、周囲の画素から1つの画素への誤差の拡散を示す。特に、図1Bは、誤差拡散のための閾値演算の前に誤差が計算されその後特定の画素に拡散することを示す。図1Bは、画素120〜136を含む画像の一部を示す。画素120〜136は、それぞれ画素P(i−1,j−1)、P(i−1,j)、P(i−1,j+1)、P(i,j−1)、P(i,j)、P(i,j+1)、P(i+1,j−1)、P(i+1,j)及びP(i+1,j+1)である。図示するように、画素128は、画素120から1/16の端数誤差値eAを受け取る。画素128は、画素122から5/16の端数誤差値eBを受け取る。画素128は、画素124から3/16の端数誤差値eCを受け取る。画素128は、画素126から7/16の端数誤差値eDを受け取る。
図2は、本発明のいくつかの実施形態による誤差拡散のための擬似コードを示す。特に、図2は、本発明のいくつかの実施形態による、図1に示す誤差拡散を実行するために使用することができる擬似コード200を示す。コードブロック202は、中間誤差値(1/16×eA、5/16×eB、3/16×eC及び7/16×eD)のアキュムレータ変数への割当てを含む。コード文204は、アキュムレータ変数に画像の位置(i,j)における画素の値を加える。したがって、アキュムレータ変数は、位置(i,j)における画素の値に、周囲の画素から受け取られた中間誤差値を足した値に等しい。周囲の画素の例を後に示す。コードブロック206は、アキュムレータが閾値(たとえば0.5)未満の場合は位置(i,j)における画素に0の値を割り当て、アキュムレータが閾値未満でない場合はこの画素に1の値を割り当てる。コード文208は、実際の値(アキュムレータに格納された値)と割り当てられた値(0又は1)との間の差に基づいて誤差バッファを更新する。
図3は、本発明のいくつかの実施形態による、周囲の画素から複数の画素への中間誤差値のデータの流れを示す。図3は、画素302〜324を含む画像の一部を示す。画素302〜324は、それぞれ画素P(i−1,j−1)、P(i−1,j)、P(i−1,j+1)、P(i−1,j+2)、P(i,j−1)、P(i,j)、P(i,j+1)、P(i,j+2)、P(i+1,j−1)、P(i+1,j)、P(i+1,j+1)及びP(i+1,j+2)である。画素312及び314は、計算に関して現画素及び次の画素として定義される。端数誤差値eD(7/16)を、画素310から現画素312に拡散させてもよい。端数誤差値eDを、入力画像316から生成し、現画素302に拡散させてもよい。端数誤差値eD(7/16)を、現画素312から次の画素314に拡散させてもよい。したがって、端数誤差値eDを、先の画素の誤差計算の一部として計算してもよい。
さらに、誤差バッファは、先の行の周囲の画素から現画素312及び次の画素314に拡散させてもよい多数の中間誤差値を格納する。特に、端数誤差値を、画素302から現画素312に(eA−1/16として)拡散させてもよい。端数誤差値を、画素304から現画素312に(eB−5/16として)且つ次の画素314に(eC−3/16として)拡散させてもよい。端数誤差値を、画素306から現画素312に(eC3/16として)且つ次の画素314に(eB−5/16として)拡散させてもよい。端数誤差値を画素308から次の画素314に(eC−3/16として)拡散させてもよい。
したがって、図示するように、現画素のeBは次の画素のeAである。さらに、現画素のeCは次の画素のeBである。さらに、次の画素のeCを誤差バッファから取り出してもよく、次の画素のeDは現画素の誤差計算からである。このデータの流れのより詳細な説明は後に示す。
図4は、本発明のいくつかの実施形態による、画像信号プロセッサのより詳細なブロック図を示す。画像信号プロセッサ400は、入力プロセッサ要素402、出力プロセッサ要素404、多数のプロセッサ要素406A〜406C、多数のレジスタ408、多数のアクセラレータユニット410A及び410B、メモリ414及びメモリコントローラ416を含む。入力プロセッサ要素402、出力プロセッサ要素404、プロセッサ要素406A〜406C、アクセラレータユニット510A〜410B及びメモリ414(メモリコントローラ416を介する)は、レジスタ408に結合される。レジスタ408により、プロセッサ要素402、404及び406、アクセラレータユニット410A及び410B及びメモリ414はデータを交換することができ、レジスタ408を、所与のプロセッサ要素402、404及び406並びにアクセラレータユニット410A及び401Bのための汎用レジスタとして使用することができる。さらに、プロセッサ要素402、404及び406並びにアクセラレータユニット410A及び410Bは、多数のローカルレジスタ(図示せず)を含んでもよい。
一実施形態では、入力プロセッサ要素402、出力プロセッサ要素404及びプロセッサ要素406A〜406Cは、命令メモリとデータを処理するための論理演算装置(ALU)とを含む。入力プロセッサ要素402及び出力プロセッサ要素404は、ポートリングを介して画像信号プロセッサ400のポートに結合されることにより、それぞれ、画像信号プロセッサ400に入力されているデータを受け取り、画像信号プロセッサ400から出力されているデータを送信する。いくつかの実施形態による、こうした構成を有するアーキテクチャは後により詳細に説明する。
データを入力し且つ出力することに加えて、入力プロセッサ要素402及び/又は出力プロセッサ要素404は、プロセッサ要素406A〜406Cによって提供される処理と同様にデータを処理してもよい。種々のプロセッサ要素406A〜406Cは、汎用プロセッサ要素か又は専用プロセッサ要素であってもよい。たとえば、プロセッサ要素406A〜406Cは、積和(MAC)プロセッサ要素であってもよく、それは、汎用処理のための命令セットとともにMAC機能のための命令セットを含む。プロセッサ要素406A〜406Cは、汎用プロセッサ要素と専用プロセッサ要素との組合せであってもよい。たとえば、プロセッサ要素406A及び406CはMACプロセッサ要素であってもよく、プロセッサ要素406Bは汎用プロセッサ要素であってもよい。図4は、画像信号プロセッサ400内の5つのプロセッサ要素を示すが、他の実施形態では、より少ないか又は多いこうしたプロセッサ要素を画像信号プロセッサ400に組み込んでもよい。
入力プロセッサ要素402は、入力ポートとしてポートインタフェースを備える汎用プロセッサ要素である。一実施形態では、入力プロセッサ要素402内の命令は、レジスタ408及び入力プロセッサ要素402内のローカルレジスタとともに追加の入力オペランドとしてポートを有する。出力プロセッサ要素404は、出力ポートとしてポートインタフェースを備える汎用プロセッサ要素である。一実施形態では、出力プロセッサ要素404内の命令は、レジスタ408及び出力プロセッサ要素404内のローカルレジスタとともに追加の出力オペランドとしてのポートを有する。
図5は、本発明のいくつかの実施形態による、誤差拡散動作のための画像信号プロセッサのより詳細なブロック図を示す。特に、図5は、本発明のいくつかの実施形態による、画像信号プロセッサ400のより詳細なブロック図を示す。図5は、図4の多数の要素を含み、こうした要素の間のデータの流れを示すために、同じ要素が多数の異なるブロックにわたって分散されている。したがって、図5内で同じ参照要素が異なるブロックを指す。さらに、こうしたブロックは、そこで実行される動作のタイプの記述を含む場合もある。
入力プロセッサ要素402の入力画素アンパックブロックは、パック入力画素504を受け取るように結合される。入力プロセッサ要素402の誤差アンパックブロックは、誤差バッファ502から中間誤差値を受け取るように結合される。入力プロセッサ要素402のアンパック入力画素ブロックからの出力は、アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックの入力とアクセラレータユニット410Bの誤差フィルタ(奇数)ブロックの入力とに結合される。
入力プロセッサ要素402の誤差アンパックブロックからの出力は、プロセッサ要素406Aの誤差キャッシュの入力に結合される。プロセッサ要素406Aの誤差キャッシュの出力は、アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックの入力とアクセラレータユニット410Bの誤差フィルタ(奇数)ブロックの入力とに結合される。
アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックの出力は、アクセラレータユニット410Bの比較ブロック及び減算器ブロックの入力に結合される。アクセラレータユニット410Bの誤差フィルタ(奇数)ブロックの出力は、アクセラレータユニット410Aの比較ブロック及び減算器ブロックの入力に結合される。比較ブロックの入力には閾値入力507が結合される。閾値入力507は、2つの異なる比較ブロックに対して異なってもよい。アクセラレータユニット410Bの比較ブロックの出力は、アクセラレータユニット410Bの減算器ブロックの入力と、出力プロセッサ要素404の出力画素パックブロックの入力とに結合される。アクセラレータユニット410Aの比較ブロックの出力は、アクセラレータユニット410Aの減算器ブロックの入力と、出力プロセッサ要素404の出力画素パックブロックの入力とに結合される。出力画素パックブロックからの出力は、パック出力画素506である。
アクセラレータユニット410Bの減算器ブロックの出力は、出力プロセッサ要素404の新誤差パックブロックの入力と、誤差フィルタ(偶数)ブロックの入力とに結合される。アクセラレータユニット410Aの減算器ブロックの出力は、出力プロセッサ要素404の新誤差パックブロックの入力と、誤差フィルタ(奇数)ブロックの入力とに結合される。新誤差パックブロックの出力は、誤差バッファ502の入力に結合される。図5のブロック図の動作のより詳細な説明については後に示す。
図6は、本発明のいくつかの実施形態による誤差拡散ベース画像処理のフローチャートを示す。特に、図6は、本発明のいくつかの実施形態による、図5に示す画像信号プロセッサの動作を示すフローチャート600を含む。
ブロック602において、画像の画素が受け取られる。図5の実施例を参照すると、入力プロセッサ要素402の入力画素アンパックブロックが画像の画素を受け取ってもよい。実施形態によっては、画素を、異なる画像信号プロセッサ400、メモリ又は入出力デバイス(センサ等)から受け取ってもよい。たとえば、画素を、(上述したような)データ駆動動作に基づいてこうしたコンポーネントのうちの1つから受け取ってもよい。実施形態によっては、画像は連続階調デジタル画像であってもよい。ブロック604において制御は続く。
ブロック604において、オーバラップする時点で2つ以上の画素に対し誤差拡散が実行される。言い換えれば、1つの画素に対する誤差拡散の実行の時点が、1つ又は複数の他の画素の誤差拡散の実行の時点とオーバラップする。図5の実施形態を参照すると、入力プロセッサ要素402、アクセラレータユニット410A及び410B、プロセッサ要素406A及び出力プロセッサ要素404の異なるブロックが、こうした動作を実行してもよい。こうした動作のより詳細な説明について、図7の説明とともに以下に示す。
図7は、本発明のいくつかの実施形態による、画像信号プロセッサ内の複数の要素による誤差拡散ベース画像処理の動作の表を示す。図7は、入力プロセッサ要素402、アクセラレータユニット410A及び410B、プロセッサ要素406A及び出力プロセッサ要素404の互いに対する動作を示す表700を示す。より詳細には、表700は、2つ以上の画素に対する誤差拡散の実行を部分的に並列に示す。言い換えれば、1つの画素に対する誤差拡散の実行は、1つ又は複数の他の画素に対する誤差拡散の実行と部分的に並列である。列は、こうした動作のタイミングを表してもよい。したがって、同じ列の動作を、少なくとも部分的に同時に実行してもよい。
第1の時点において(列702)、入力プロセッサ要素402及びアクセラレータユニット410Aが動作を実行してもよい。入力プロセッサ要素402の誤差アンパックは、誤差バッファ502から先の行からの2つの中間誤差値を読み込んでもよい。特に、誤差アンパックブロックは、誤差バッファ502からのeCeven(偶数画素に対して使用されるeC)及びeCodd(奇数画素に対して使用されるeC)を読み込んでもよい。部分的に並列に、アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeAを受け取ってもよい。誤差フィルタ(偶数)ブロックは、偶数画素に対して(1×eA)を計算し、この計算の完了後にプロセッサ要素406Aに通知してもよい。
第2の時点において(列704)、入力プロセッサ要素402、アクセラレータユニット410A及びプロセッサ要素406Aが動作を実行してもよい。入力プロセッサ要素402の誤差アンパックブロックが、偶数画素及び奇数画素に対して誤差値eCをアンパックしてもよい。部分的に並列に、アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeBを受け取ってもよい。誤差フィルタ(偶数)ブロックは、偶数画素に対して(5×eB)を計算し、この計算の完了後にプロセッサ要素406Aに通知してもよい。部分的に並列に、プロセッサ要素406Aは、eBの値をeAにロードしてもよい。さらに、プロセッサ要素406Aは、このロード動作の完了後にアクセラレータユニット410Bの誤差フィルタ(奇数)ブロックに通知してもよい。上述したように、現画素に対するeBは、次の画素に対するeAである。アクセラレータユニット410Aは偶数画素に対してeAを使用して完了したため、こうした値を、奇数画素に対するeA(偶数画素に対するeB)によって上書きしてもよい。
第3の時点において(列706)、入力プロセッサ要素402、アクセラレータユニット410A、プロセッサ要素406A及びアクセラレータユニット410Bが動作を実行してもよい。入力プロセッサ要素402の入力画素アンパックブロックは、2つの入力画素(peven及びpodd)を読み込んでもよい。部分的に並列に、アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeCを受け取ってもよい。誤差フィルタ(偶数)ブロックは、偶数画素に対して(5×eC)を計算してもよい。部分的に並列に、プロセッサ要素406Aは、eCの値をeBにロードしてもよい。さらに、プロセッサ要素406Aは、このロード動作の完了後にアクセラレータユニット410Bの誤差フィルタ(奇数)ブロックに通知してもよい。さらに、部分的に並列に、アクセラレータユニット410Bの誤差フィルタ(奇数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeAを受け取ってもよい。誤差フィルタ(偶数)ブロックは、奇数画素に対して(1×eA)を計算し、この計算の完了の後にプロセッサ要素406Aに通知してもよい。
第4の時点において(列708)、入力プロセッサ要素402、アクセラレータユニット410A、プロセッサ要素406A及びアクセラレータユニット410Bが動作を実行してもよい。入力プロセッサ要素402の入力画素アンパックブロックは、2つの入力画素(peven及びpodd)をアンパックしてもよい。入力プロセッサ要素402は、入力画素(peven及びpodd)を、それぞれ、アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックと、アクセラレータユニット410Bの誤差フィルタ(奇数)ブロックとに転送してもよい。部分的に並列に、アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeDを受け取ってもよい。誤差フィルタ(偶数)ブロックは、偶数画素に対して(7×eD)を計算してもよい。部分的に並列に、プロセッサ要素406Aは、eBの値をeAにロードしてもよい。さらに、部分的に並列に、アクセラレータユニット410Bの誤差フィルタ(奇数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeBを受け取ってもよい。誤差フィルタ(偶数)ブロックは、奇数画素に対して(5×eB)を計算し、この計算の完了後にプロセッサ要素406Aに通知してもよい。
第5の時点において(列710)、アクセラレータユニット410A、プロセッサ要素406A及びアクセラレータユニット410Bが動作を実行してもよい。アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックは、偶数画素に対して誤差値を計算してもよい。特に、誤差フィルタ(奇数)ブロックは、周囲の画素から計算された端数誤差値(1×eA、5×eB、3×eC及び7×eD)を合計し結果を16で割ってもよい。部分的に並列に、プロセッサ要素406AはeCの値をeBにロードしてもよい。部分的に並列に、アクセラレータユニット410Bの誤差フィルタ(偶数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeCを受け取ってもよい。誤差フィルタ(奇数)ブロックは、奇数画素に対して(3×eC)を計算してもよい。さらに、2つの現入力画素を読み込んだ後の或る時点において、入力プロセッサ要素402の入力画素アンパックブロックは、次の2つの入力画素を読み込んでもよい。
第6の時点において(列712)、アクセラレータユニット410A及びアクセラレータユニット410Bが動作を実行してもよい。アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックは、次の未処理画素(次の偶数画素)に対して誤差拡散の計算を開始してもよい。誤差フィルタ(偶数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeAを受け取ってもよい。誤差フィルタ(偶数)ブロックは、偶数画素に対して(1×eA)を計算し、この計算の完了の後にプロセッサ要素406Aに通知してもよい図5を参照すると、誤差フィルタ(奇数)ブロックは、コードブロック1606に示す閾値動作を実行してもよい。図5を参照すると、アクセラレータユニット410Bの比較ブロックは、偶数画素に対する累積値が閾値入力507からの閾値より大きいか否かを判断してもよい。比較ブロックからの出力は、(図4のコードブロック406に示すように)偶数画素に対する累積値が閾値を超えるか否かによって決まる2値(0又は1)であってもよい。
第7の時点において(列714)、アクセラレータユニット410A、プロセッサ要素406A、アクセラレータユニット410B及び出力プロセッサ要素404が動作を実行してもよい。誤差フィルタ(偶数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeBを受け取ってもよい。誤差フィルタ(偶数)ブロックは、次の偶数画素に対して(5×eB)を計算し、この計算の完了の後にプロセッサ要素406Aに通知してもよい。部分的に並列に、プロセッサ要素406Aは、eBの値をeAにロードしてもよい。さらに、プロセッサ要素406Aは、このロード動作の完了後にアクセラレータユニット410Bの誤差フィルタ(奇数)ブロックに通知してもよい。部分的に並列に、アクセラレータユニット410Bの誤差フィルタ(奇数)ブロックは、偶数画素に対して誤差計算を計算してもよい。図2を参照すると、誤差フィルタ(奇数)ブロックは、コード文208に示す誤差計算動作を実行してもよい。アクセラレータユニット410Bの減算器ブロックは、実際の値(累積値)と出力値(0又は1)との間の差を確定してもよい。この誤差値(偶数)508は、アクセラレータユニット410Bの誤差フィルタ(奇数)ブロックに入力される。
第8の時点において(列716)、アクセラレータユニット410A、プロセッサ要素406A、アクセラレータユニット410B及び出力プロセッサ要素404が動作を実行してもよい。アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeCを受け取ってもよい。誤差フィルタ(偶数)ブロックは、次の偶数画素に対して(3×eC)を計算してもよい。部分的に並列に、プロセッサ要素406Aは、eCの値をeBにロードしてもよい。さらに、プロセッサ要素406Aは、このロード動作の完了後にアクセラレータユニット410Bの誤差フィルタ(奇数)ブロックに通知してもよい。部分的に並列に、アクセラレータユニット410Bの誤差フィルタ(奇数)ブロックは、奇数画素に対して計算してもよい(7×eD)。部分的に並列に、出力プロセッサ要素404の出力画素パックブロックは、(アクセラレータユニット410Bの比較ブロックから受け取られた)偶数画素の値をパックしてもよい。パック出力画素ブロックは、この値をパック出力画素506として出力してもよい。
第9の時点において(列718)、アクセラレータユニット410B及び出力プロセッサ要素404が動作を実行してもよい。アクセラレータユニット410Bの誤差フィルタ(奇数)ブロックは、奇数画素に対して誤差値を計算してもよい。特に、誤差フィルタ(奇数)ブロックは、周囲の画素からの計算された端数誤差値(1×eA、5×eB、3×eC及び7×eD)を合計し、結果を16で割ってもよい。部分的に並列に、出力プロセッサ要素404の新誤差パックブロックは、偶数画素に対してこの新たな誤差値で誤差バッファ502を更新してもよい。
第10の時点において(列720)、アクセラレータユニット410A及びアクセラレータユニット410Bが動作を実行してもよい図5を参照すると、誤差フィルタ(奇数)ブロックは、コードブロック1606に示す閾値動作を実行してもよい。アクセラレータユニット410Bの比較ブロックは、奇数画素の累積値が閾値入力507からの閾値より大きいか否かを確定してもよい。比較ブロックからの出力は、奇数画素に対する累積値が閾値(図2のコードブロック206に示すような)を超えるか否かによって決まる2値(0又は1)であってもよい。さらに、部分的に並列に、アクセラレータユニット410Bの誤差フィルタ(奇数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeAを受け取ってもよい。誤差フィルタ(偶数)ブロックは、次の奇数画素に対して(1×eA)を計算し、この計算の完了後にプロセッサ要素406Aに通知してもよい。
第11の時点において(列722)、アクセラレータユニット410A、プロセッサ要素406A、アクセラレータユニット410B及び出力プロセッサ要素404が動作を実行してもよい。アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックは、奇数画素に対して誤差計算を計算してもよい。図2を参照すると、誤差フィルタ(奇数)ブロックは、コード文208に示す誤差計算動作を実行してもよい。アクセラレータユニット410Bの減算器ブロックは、実際の値(累積値)と出力値(0又は1)との差を確定してもよい。この誤差値(奇数)510は、アクセラレータユニット410Bの誤差フィルタ(偶数)ブロックに入力される。部分的に並列に、プロセッサ要素406Aは、eBの値をeAにロードし、この計算の完了後にプロセッサ要素406Aに通知してもよい。部分的に並列に、アクセラレータユニット410Bの誤差フィルタ(奇数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeBを受け取ってもよい。誤差フィルタ(偶数)ブロックは、次の奇数画素に対して計算し(5×eB)、この計算の完了後にプロセッサ要素406Aに通知してもよい。部分的に並列に、出力プロセッサ要素404の出力画素パックブロックは、(アクセラレータユニット410Aの比較ブロックから受け取られた)奇数画素の値をパックしてもよい。パック出力画素ブロックは、この値をパック出力画素506として出力してもよい。
第12の時点において(列724)、アクセラレータユニット410A、プロセッサ要素406A及び出力プロセッサ要素404が動作を実行してもよい。アクセラレータユニット410Aの誤差フィルタ(偶数)ブロックは、プロセッサ要素406Aの誤差キャッシュからeDを受け取ってもよい。誤差フィルタ(偶数)ブロックは、次の偶数画素に対して計算してもよい(7×eD)。プロセッサ要素406Aは、eCの値をeBにロードし、このロード動作の完了後にアクセラレータユニット410Bの誤差フィルタ(奇数)ブロックに通知してもよい。部分的に並列に、出力プロセッサ要素404の新誤差パックブロックは、奇数画素に対する新たな誤差値によって誤差バッファ502を更新してもよい。
実施形態によっては、色(色調)範囲が限られた出力装置(プリンタ、スクリーン等)に連続階調デジタル画像を出力するために誤差拡散動作を組み込んでもよい。いくつかの実施形態を使用して、部分的に並列に2つ以上の画素に対して誤差拡散を実行してもよい。上述したように、実施形態によっては、プロセッサが、複数の実行エンジンを、少なくとも部分的に非連続的に又は同時に複数の画素を処理することによって占有されたままにすることができる。さらに、複数の画素のこの処理の間、実施形態によっては、周囲の画素からの中間誤差値を共有する。したがって、上述したように、画像の画素のこの並列処理は、画像の画素のすべてが処理されるまで続いてもよい。
本明細書で説明した誤差拡散動作は、多数の異なる環境において動作してもよく、ここで、こうした動作を実行するために使用されるいくつかの実施形態によるプロセッサアーキテクチャについて説明する。特に、図8は、本発明のいくつかの実施形態による、誤差拡散動作を実行するプロセッサアーキテクチャを示す。図8は、本発明のいくつかの実施形態による、データ駆動アーキテクチャのプロセス間通信のためのシステムを示す。図8は、センサ816から入力データストリーム818を受け取るために結合されるイメージプロセッサ802を含むシステム800を示す。センサ816はタイプが異なってもよいが、一実施形態では、センサ816は電荷結合素子(CCD)センサである。一実施形態では、センサ816は相補型金属酸化膜半導体(CMOS)センサである。センサ816は、画像をスキャンしてデジタル化し、それにより入力データストリーム818を生成する。たとえば、一実施形態では、システム800は画像(文書、写真等)をスキャンし処理するスキャナ内に組み込まれる。
一実施形態では、イメージプロセッサ802はデータ駆動であるアーキテクチャを有し、そこでは、イメージプロセッサ802内の異なる要素にわたるデータの送信及び受信により、その中での動作の実行が駆動される。言い換えれば、イメージプロセッサ802の要素内の所与の動作は、必要なデータが実行のために利用可能となると開始する。
イメージプロセッサ802は、メモリ804A及び804Bに結合される。一実施形態では、メモリ804A及び804Bは異なるタイプのランダムアクセスメモリ(RAM)である。たとえば、メモリ804A及び804Bはダブルデータレート(DDR)シンクロナスダイナミックRAM(SDRAM)である。後により詳細に説明するように、イメージプロセッサ802内の要素は、画像処理に関連するデータをメモリ804A及び804Bに格納する。例示するために、イメージプロセッサ802内のプロセッサ要素は、第1の画像処理動作からの結果をメモリ804A及び804Bのうちの1つに格納してもよく、それは後に、第2の画像処理動作を実行するためにイメージプロセッサ802内の異なるプロセッサ要素によって取り出される。
イメージプロセッサ802は、一実施形態では周辺装置インタフェース(PCI)バスであってもよいバス814に結合される。システム800はまた、メモリ806、ホストプロセッサ808、多数の入出力(I/O)インタフェース810及びネットワークインタフェース812も含む。ホストプロセッサ808はメモリ806に結合される。メモリ806は異なるタイプのRAM(たとえばシンクロナスダイナミックRAM(SDRAM)、DRAM、DDR−SDRAM等)であってもよく、一実施形態では、ホストプロセッサ808は異なるタイプの汎用プロセッサであってもよい。I/Oインタフェース810は、システム800のためにI/Oデバイス又は周辺装置に対するインタフェースを提供する。I/Oインタフェース810は、システム800の異なるコンポーネントに対する任意の適切な通信リンクを提供する任意の適切なインタフェースコントローラを含んでもよい。一実施形態のI/Oインタフェース810は、多数のインタフェースのうちの1つに対して適切なアービトレーション及びバッファリングを提供する。
一実施形態では、I/Oインタフェース810は、たとえばデータ及び/又は命令を格納する、たとえばハードディスクドライブ(HDD)又はコンパクトディスク読み取り専用メモリ(CDROM)ドライブ等の1つ又は複数の適切な統合ドライブエレクトロニクス(integrated drive electronics)(IDE)ドライブ、1つ又は複数のUSBポートを介する1つ又は複数の適切なユニバーサルシリアルバス(USB)デバイス、オーディオコーダ/デコーダ(コーデック)及びモデムコーデックに対するインタフェースを提供する。一実施形態のI/Oインタフェース810はまた、1つ又は複数のポートを介して、キーボード、マウス、例えばプリンタ等の1つ又は複数の適切なデバイスに対するインタフェースを提供する。ネットワークインタフェース812は、多数の通信ネットワーク(インターネット、イントラネットネットワーク、イーサネット(登録商標)ベースネットワーク等)のうちの1つによる1つ又は複数のリモートデバイスへのインタフェースを提供する。
ホストプロセッサ808、I/Oインタフェース810及びネットワークインタフェース812は、バス814を介してイメージプロセッサ802に互いに結合される。後にさらに説明するように、ホストプロセッサ808内で実行する命令は、異なるタイプの画像処理に対してイメージプロセッサ802を構成する。たとえば、ホストプロセッサ808は、イメージプロセッサ802内の異なるプロセッサ要素間の多数の異なる論理接続を確立する。さらに、ホストプロセッサ808は、マイクロコードをダウンロードし、そこでイメージプロセッサ802の異なるコンポーネントのステータスをチェックしてもよい。例示するために、ここでイメージプロセッサ802の一実施形態のより詳細な説明を述べる。
説明では、多数の特定の詳細を示す。しかしながら、本発明の実施形態をこれら特定の詳細なしに実施してもよいということが理解される。他の場合では、この説明の理解が不明瞭にならないために、既知の回路、構造及び技法については示していない。発明の主題がより完全に理解されるように、ロジックインプリメンテーション、オペコード、オペランドの記述の方法、資源分割/共有/複製インプリメンテーション、システムコンポーネントのタイプ及び相互関係並びにロジック分割/統合選択等の多数の特定の詳細を示す。しかしながら、当業者には、本発明の実施形態をこうした特定の詳細なしに実施してもよいということが理解されよう。他の場合では、本発明の実施形態を不明瞭にしないように、制御構造、ゲートレベル回路及び完全なソフトウェア命令シーケンスについては詳細に示していない。当業者は、ここに含まれる説明により、過度な実験なしに適切な機能を実装することができるであろう。
本明細書において「一実施形態」、「1つの例示的な実施形態」等と言及する場合、それは、説明する実施形態が特定の特徴、構造又は特性を含む可能性があるが、すべての実施形態が必ずしもその特定の特徴、構造又は特性を含むとは限らないということを示す。さらに、こうした句は、必ずしも同じ実施形態を言及していない。さらに、特定の特徴、構造又は特性を一実施形態に関連して説明するが、明示的に説明するか否かに関わらず他の実施形態に関連してこうした特徴、構造又は特性をもたらすことは当業者の知識の中にあるということが提示される。
本発明の実施形態は、機械可読媒体によって提供される機械実行可能命令内で具現化されてもよい特徴、方法又はプロセスを含む。機械可読媒体は、機械(たとえば、コンピュータ、ネットワークデバイス、携帯情報端末、製造ツール、1つ又は複数のプロセッサのセットを備える任意のデバイス等)によってアクセス可能な形式で情報を提供する(すなわち、格納する且つ/又は送信する)任意のメカニズムを含む。例示的な実施形態では、機械可読媒体は、揮発性及び/又は不揮発性媒体(たとえば、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス等)とともに、電気、光、音響又は他の形態の伝播信号(たとえば、搬送波、赤外線信号、デジタル信号等)を含む。
こうした命令は、それらの命令がプログラムされる汎用プロセッサ又は専用プロセッサに対し本発明の実施形態の方法又はプロセスを実行させるために利用される。代替的に、本発明の実施形態の特徴又は動作は、それらの動作を実行するハードワイヤードロジックを含む特定のハードウェアコンポーネントにより、又はプログラムされたデータ処理コンポーネント及び特定のハードウェアコンポーネントの任意の組合せにより実行される。本発明の実施形態は、本明細書においてさらに説明したソフトウェア、データ処理ハードウェア、データ処理システム実装方法、及びさまざまな処理動作を含む。
複数の図面が、本発明のいくつかの実施形態による誤差拡散ベース画像処理のシステム及び装置のブロック図を示す。複数の装置が、本発明のいくつかの実施形態による誤差拡散ベース画像処理を例示するフローチャートを示す。フローチャートの動作を、ブロック図に示すシステム/装置に関連して説明した。しかしながら、フローチャートの動作を、ブロック図に関連して論じたもの以外のシステム及び装置の実施形態によって実施してもよく、システム/装置に関連して論じた実施形態は、フローチャートに関連して論じたものとは異なる動作を実行してもよいということが理解されるべきである。
本明細書で説明した実施形態に対する多種多様の置換に鑑みて、この詳細な説明は単に例示的であるように意図されており、本発明の主題の範囲を限定するものとしてとられるべきではない。したがって、請求されるものは、添付の特許請求の範囲及びその等価物の範囲及び精神内にあり得るこうした変更形態のすべてである。したがって、明細書及び図面は、限定する意味ではなく例示する意味で考慮されなければならない。
本発明のいくつかの実施形態による、1つの画素から周囲の画素に誤差を拡散させることを示す図である。 本発明のいくつかの実施形態による、周囲の画素から1つの画素に誤差を拡散させることを示す図である。 本発明のいくつかの実施形態による、誤差拡散のための擬似コードを示す図である。 本発明のいくつかの実施形態による、周囲の画素から複数の画素への端数誤差値のデータの流れを示す図である。 本発明のいくつかの実施形態による、画像信号プロセッサのより詳細なブロック図である。 本発明のいくつかの実施形態による、誤差拡散動作のための画像信号プロセッサのより詳細なブロック図である。 本発明のいくつかの実施形態による、誤差拡散ベース画像処理のフローチャートである。 本発明のいくつかの実施形態による、画像処理プロセッサ内の複数の要素による誤差拡散ベース画像処理のための動作の表である。 本発明のいくつかの実施形態による、画像処理プロセッサ内の複数の要素による誤差拡散ベース画像処理のための動作の表である。 本発明のいくつかの実施形態による、画像処理プロセッサ内の複数の要素による誤差拡散ベース画像処理のための動作の表である。 本発明のいくつかの実施形態による、誤差拡散ベース画像処理のシステムの簡易ブロック図である。

Claims (7)

  1. 画像の2つ以上の画素を受け取ること、及び
    オーバラップする時点で端数誤差値を前記2つ以上の画素に分散させることにより、オーバラップする時点で前記2つ以上の画素に対して誤差拡散を実行すること
    を含み、
    オーバラップする時点で前記2つ以上の画素に対して誤差拡散を実行することは、
    画像信号プロセッサの第1のアクセラレータユニットが、前記画像の第1の画素に対する周囲の画素からの第1の端数誤差値を集め、前記画像信号プロセッサの第2のアクセラレータユニットが、前記画像の第2の画素に対する周囲の画素から第2の端数誤差値を集めることと、
    前記第1のアクセラレータユニットが、前記第1の端数誤差値を加算して第1の誤差値を生成し、前記第2のアクセラレータユニットが、前記第2の端数誤差値を加算して第2の誤差値を生成することと、
    前記第1の画素に前記第1の誤差値を加算し、前記第2の画素に前記第2の誤差値を加算して、第1の調整値および第2の調整値を生成することと、
    前記第2のアクセラレータユニットが前記第1の調整値と第1の閾値とを比較し、前記第1のアクセラレータユニットが前記第2の調整値と第2の閾値とを比較することと、
    前記比較に基づいて、前記第1の画素および前記第2の画素に対して、対応する調整値が対応する閾値を超える場合に1、超えない場合に0である一の値を含むバイナリ値である第1の出力値および第2の出力値を割り当てることと
    前記端数誤差値を誤差バッファに格納することと
    含み
    前記第1の端数誤差値および前記第2の端数誤差値を集めることは、前記第1のアクセラレータユニットおよび前記第2のアクセラレータユニットが、前記誤差バッファから、周囲の画素からの端数誤差値を取得することを含む
    方法。
  2. 前記端数誤差値は、フロイド・スタインバーグ(Floyd-Steinberg)誤差フィルタに基づいて計算される、請求項に記載の方法。
  3. 画像信号プロセッサであって、
    周囲の画素からの端数誤差値を第1の画素に加算して第1の調整値を生成することにより、周囲の画素からの端数誤差値に基づいて画像の第1の画素に対し誤差拡散動作の少なくとも一部を実行する第1のアクセラレータユニットと、
    周囲の画素からの端数誤差値を第2の画素に加算して第2の調整値を生成することにより、前記周囲の画素からの端数誤差値に基づいて、前記第1のアクセラレータユニットによる前記誤差拡散と部分的に並列に、前記画像の第2の画素に対し誤差拡散動作の少なくとも一部を実行する第2のアクセラレータユニットと
    前記端数誤差値を格納する誤差バッファと
    を備え、
    前記第2のアクセラレータユニットは、前記第1の画素に対する第1の閾値を入力し、前記第1の調整値と前記第1の閾値とを比較して、前記比較に基づいて前記第1の画素に第1のバイナリ値を割り当て、
    前記第1のアクセラレータユニットは、前記第2の画素に対する第2の閾値を入力し、前記第2の調整値と前記第2の閾値とを比較して、前記比較に基づいて前記第2の画素に第2のバイナリ値を割り当てる、
    画像信号プロセッサ
    を具備し、
    前記端数誤差値を集めることは、前記第1のアクセラレータユニットおよび前記第2のアクセラレータユニットが、前記誤差バッファから、周囲の画素からの端数誤差値を取得することを含む、装置。
  4. 前記画像はおよそ連続階調デジタル画像である、請求項に記載の装置。
  5. 前記第1の画素に対する前記誤差拡散動作の一部として、前記第2のアクセラレータユニットは、前記第1の画素の出力値と元の値との間の差を計算する、請求項3または4に記載の装置。
  6. 前記第2の画素に対する前記誤差拡散動作の一部として、前記第1のアクセラレータユニットは、前記第2の画素の調整値と閾値との間の比較に基づいて該第2の画素の出力値を生成する、請求項からのいずれか1項に記載の装置。
  7. 前記第2の画素に対する前記誤差拡散動作の一部として、前記第1のアクセラレータユニットは、前記第2の画素の出力値と元の値との間の差を計算する、請求項からのいずれか1項に記載の装置。
JP2007545747A 2004-12-14 2005-12-13 誤差拡散ベース画像処理 Expired - Fee Related JP4705645B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/011,737 US7639887B2 (en) 2004-12-14 2004-12-14 Error diffusion-based image processing
US11/011,737 2004-12-14
PCT/US2005/045884 WO2006066185A1 (en) 2004-12-14 2005-12-13 Error diffusion-based image processing

Publications (2)

Publication Number Publication Date
JP2008523739A JP2008523739A (ja) 2008-07-03
JP4705645B2 true JP4705645B2 (ja) 2011-06-22

Family

ID=36094865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007545747A Expired - Fee Related JP4705645B2 (ja) 2004-12-14 2005-12-13 誤差拡散ベース画像処理

Country Status (7)

Country Link
US (3) US7639887B2 (ja)
EP (1) EP1829358B1 (ja)
JP (1) JP4705645B2 (ja)
KR (1) KR100889410B1 (ja)
CN (2) CN101076995B (ja)
TW (1) TWI319283B (ja)
WO (1) WO2006066185A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100417177C (zh) * 2002-03-15 2008-09-03 佳能株式会社 图像处理装置和方法
US7639887B2 (en) * 2004-12-14 2009-12-29 Intel Corporation Error diffusion-based image processing
CN100435548C (zh) * 2006-09-15 2008-11-19 北京大学 一种能够同时产生多位调频网点的方法及装置
US8184917B2 (en) * 2009-08-05 2012-05-22 Brother Kogyo Kabushiki Kaisha Image processor
KR101328793B1 (ko) * 2009-11-23 2013-11-13 엘지디스플레이 주식회사 오차 확산 방법과 이를 이용한 액정표시장치
US20130258709A1 (en) 2010-12-04 2013-10-03 3M Innovation Properties Company Illumination assembly and method of forming same
TWI541573B (zh) 2010-12-04 2016-07-11 3M新設資產公司 發光總成及其形成方法
JP5955109B2 (ja) * 2012-06-05 2016-07-20 キヤノン株式会社 画像処理方法及び画像処理装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1093819A (ja) * 1996-09-12 1998-04-10 Canon Inc 画像処理装置
JP2003283829A (ja) * 2002-03-22 2003-10-03 Ricoh Co Ltd 画像処理装置および方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US670127A (en) * 1900-12-10 1901-03-19 Edgar O Butterfield Foot-support for wagon-boxes.
US5051844A (en) * 1989-01-30 1991-09-24 Eastman Kodak Company Digital halftoning with error diffusion
US5087981A (en) * 1990-01-02 1992-02-11 Eastman Kodak Company Error diffusion of overlapping dots
JPH03274963A (ja) * 1990-03-26 1991-12-05 Canon Inc フアクシミリ装置
US5278671A (en) * 1990-10-05 1994-01-11 Nippon Steel Corporation Image processing apparatus with correction of diffusion errors of overlapping dots
US5172247A (en) * 1990-10-24 1992-12-15 Eastman Kodak Company High speed digital error diffusion process for continuous tone image-to-binary image conversion
US5130823A (en) * 1991-06-27 1992-07-14 Cactus Error diffusion system
US5276535A (en) * 1991-12-24 1994-01-04 Levien Raphael L Method and apparatus for halftoning of images using grayscale error diffusion
US5243443A (en) * 1991-12-06 1993-09-07 Xerox Corporation Halftoning with error feedback and image dependent enhancement
US5245678A (en) * 1991-12-20 1993-09-14 Xerox Corporation Image conversion with lossy adaptive error diffusion
US5271070A (en) 1992-11-06 1993-12-14 Xerox Corporation Multi-dimensional error diffusion technique
US5553165A (en) 1993-01-11 1996-09-03 Canon, Inc. Parallel error diffusion method and apparatus
US5434672A (en) * 1993-06-23 1995-07-18 Hewlett-Packard Company Pixel error diffusion method
US5521989A (en) * 1993-08-05 1996-05-28 Xerox Corporation Balanced error diffusion system
US5467201A (en) * 1994-05-31 1995-11-14 Xerox Corporation Iterative error diffusion system
US6427030B1 (en) * 1994-08-03 2002-07-30 Xerox Corporation Method and system for image conversion utilizing dynamic error diffusion
US5581371A (en) * 1995-03-07 1996-12-03 Eastman Kodak Company Error diffusion method
US5757517A (en) * 1995-03-23 1998-05-26 Eastman Kodak Company Adaptive error diffusion method
IL118180A (en) 1996-05-08 2000-12-06 Modus Biolog Membranes Ltd Pharmaceutical compositions comprising a phosphatidic acid (PA) enriched natural phospholipid preparation and the production of such preparation
US5668638A (en) * 1996-06-27 1997-09-16 Xerox Corporation Error diffusion method with symmetric enhancement
US5848224A (en) 1996-09-26 1998-12-08 Hewlett-Packard Company Optimally pipelined error diffusion architecture for converting scanned image into four-color printed image
JP3834901B2 (ja) * 1996-12-27 2006-10-18 ブラザー工業株式会社 中間調画像の2値化方法
US5974228A (en) 1997-01-28 1999-10-26 Hewlett-Packard Company Image rendition by plural-row error diffusion, for faster operation and smaller integrated circuits
US5982992A (en) * 1997-09-05 1999-11-09 Xerox Corporation Error diffusion in color printing where an intra-gamut colorant is available
US6307978B1 (en) 1998-06-03 2001-10-23 Wellesley College System and method for parallel error diffusion dithering
US6501564B1 (en) * 1999-05-07 2002-12-31 Hewlett-Packard Company Tone dependent plane dependent error diffusion halftoning
US6760127B1 (en) * 2000-06-01 2004-07-06 Xerox Corporation Multi-level semi-vector error diffusion
AUPR234700A0 (en) * 2000-12-29 2001-01-25 Canon Kabushiki Kaisha Error diffusion using next scanline error impulse response
US6907457B2 (en) 2001-01-25 2005-06-14 Dell Inc. Architecture for access to embedded files using a SAN intermediate device
US7355745B2 (en) * 2001-04-13 2008-04-08 Hewlett Packard Document-to-printer color gamut matching
US7355747B2 (en) * 2002-01-18 2008-04-08 Hewlett-Packard Development Company, L.P. System for improving the speed of data processing
US20040008382A1 (en) 2002-07-09 2004-01-15 Barbalet Thomas Samuel System and method for error diffusion screening with parallel processing
JP2005012726A (ja) * 2003-06-23 2005-01-13 Konica Minolta Business Technologies Inc 画像処理装置および画像処理方法
US7518753B2 (en) * 2004-05-20 2009-04-14 Agfa Graphics Nv Full control multilevel error diffusion
KR100648656B1 (ko) * 2004-12-14 2006-11-24 삼성전자주식회사 오차확산 처리방법 및 그 처리장치
US7639887B2 (en) * 2004-12-14 2009-12-29 Intel Corporation Error diffusion-based image processing
US7440140B2 (en) * 2005-04-29 2008-10-21 Hewlett-Packard Development Company, L.P. Sequential color error diffusion with forward and backward exchange of information between color planes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1093819A (ja) * 1996-09-12 1998-04-10 Canon Inc 画像処理装置
JP2003283829A (ja) * 2002-03-22 2003-10-03 Ricoh Co Ltd 画像処理装置および方法

Also Published As

Publication number Publication date
KR100889410B1 (ko) 2009-03-20
EP1829358A1 (en) 2007-09-05
US20120057054A1 (en) 2012-03-08
CN103179321B (zh) 2016-01-20
KR20070086126A (ko) 2007-08-27
TWI319283B (en) 2010-01-01
US7639887B2 (en) 2009-12-29
CN101076995A (zh) 2007-11-21
US8705888B2 (en) 2014-04-22
WO2006066185A1 (en) 2006-06-22
CN103179321A (zh) 2013-06-26
CN101076995B (zh) 2013-03-27
US20100053655A1 (en) 2010-03-04
TW200627926A (en) 2006-08-01
US8077993B2 (en) 2011-12-13
EP1829358B1 (en) 2018-09-05
US20060126957A1 (en) 2006-06-15
JP2008523739A (ja) 2008-07-03

Similar Documents

Publication Publication Date Title
JP4705645B2 (ja) 誤差拡散ベース画像処理
US11470337B2 (en) Image processor, image processing system including image processor, system-on-chip including image processing system, and method of operating image processing system
US20070263234A1 (en) Systems, methods and devices for rotating images
US20090244080A1 (en) Line buffer circuit, image processing apparatus, and image forming apparatus
JP2008067044A (ja) 画像処理装置、画像読取装置、画像処理方法及び画像処理プログラム
US20220417542A1 (en) Image processing device, image processing system including image processing device, system-on-chip including image processing system, and method of operating image processing system
JP6891153B2 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JPH11232079A (ja) 情報処理システム
JP4086556B2 (ja) 画像処理装置およびその制御方法
JP5612965B2 (ja) 画像処理装置及び画像処理方法
JP2008033488A (ja) 画像処理装置
JPH01303869A (ja) 画像処理装置
JP2008035035A (ja) 画像処理装置
JP2006135825A (ja) 画像補間処理装置
JP4516336B2 (ja) 画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体
JP3684061B2 (ja) 画像処理方法及び装置
JP4225455B2 (ja) 情報処理装置および画像形成装置
JP2005050341A (ja) 画像処理装置およびその方法
JP2010062984A (ja) 画像形成装置
JPH11308448A (ja) 画像処理装置及び画像処理方法
JPH05328116A (ja) 色補正方式
JPH03140061A (ja) 画像処理装置
JPH0730756A (ja) 画像処理方法及び装置
JP2001333282A (ja) 画像処理装置
JPH01274564A (ja) 画像処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090929

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100318

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100326

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100421

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100428

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100521

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100528

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100622

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100907

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110107

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110131

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110311

R150 Certificate of patent or registration of utility model

Ref document number: 4705645

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees