JP4906784B2 - 誤差拡散処理装置及び誤差拡散処理方法 - Google Patents

誤差拡散処理装置及び誤差拡散処理方法 Download PDF

Info

Publication number
JP4906784B2
JP4906784B2 JP2008138292A JP2008138292A JP4906784B2 JP 4906784 B2 JP4906784 B2 JP 4906784B2 JP 2008138292 A JP2008138292 A JP 2008138292A JP 2008138292 A JP2008138292 A JP 2008138292A JP 4906784 B2 JP4906784 B2 JP 4906784B2
Authority
JP
Japan
Prior art keywords
error
diffusion
error diffusion
calculation
circuit
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.)
Active
Application number
JP2008138292A
Other languages
English (en)
Other versions
JP2009290316A (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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2008138292A priority Critical patent/JP4906784B2/ja
Publication of JP2009290316A publication Critical patent/JP2009290316A/ja
Application granted granted Critical
Publication of JP4906784B2 publication Critical patent/JP4906784B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Color, Gradation (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

本発明は、誤差拡散法により、原画像の各画素の濃度値を変換する誤差拡散処理装置及び誤差拡散処理方法に関する。
レーザプリンタ、インクジェットプリンタなどの記録装置にあっては、原画像の階調数を少なくして印字を行うことが多い。多値原画像を元の階調数よりも少ない階調数の画像に変換する方法の1つとして誤差拡散法が、従来から採用されている。
この誤差拡散法は、変換後の画像と原画像とにおける各画素の階調値(濃度値)の誤差を求め、求めた誤差に重みを付けて周囲の画素に分散させて、画像全体の階調特性を維持する処理である。画像処理の高速化に対する要求は常にあり、誤差拡散処理においても当然考慮すべき課題となっている。このような高速化の一例として特許文献1の画像処理装置には、2つの誤差拡散演算回路を並列に配置構成することにより、主走査方向の連続する2画素を同じクロックに同期して処理する方法が示されている。
特開2003−283829号公報
このように主走査方向の連続する2画素を同時に処理して誤差拡散処理の高速化を実現する場合、一方の誤差拡散演算回路での演算結果により生成された誤差は自身の回路だけでなく、他方の誤差拡散演算回路に対しても振りまかれて使用されることになる。1クロックについて2画素に対する処理を行う必要があるため、1クロックで処理しなければならない演算量が必然的に多くなってしまう。この結果、所望の高速化を実現できなくなることがあるという問題がある。
本発明は斯かる事情に鑑みてなされたものであり、相隣する2画素それぞれを注目画素とした誤差拡散演算を同時に行う際に、誤差拡散演算による演算値を求めるために切り捨て回路と四捨五入回路とを並列的に設けることにより、画像の階調特性を良好に維持しながら、誤差拡散演算処理の高速化を実現できる誤差拡散処理装置及び誤差拡散処理方法を提供することを目的とする。
本発明に係る誤差拡散処理装置は、入力画像の各画素の濃度値変換を行う際に、前記入力画像の相隣する2画素それぞれを注目画素とした誤差拡散演算を同じクロックに同期して行うこととし、前記2画素における誤差拡散演算から得られる誤差拡散結果を互いの誤差拡散演算に使用し合う誤差拡散処理装置において、前記2画素それぞれについての誤差拡散演算における誤差拡散結果を切り捨てる切り捨て回路と、前記誤差拡散結果を四捨五入する四捨五入回路とを並列的に設けてあり、前記切り捨て回路の出力値と前記四捨五入回路の出力値との差分を求める差分手段と、該差分手段の出力を前記入力画像に加算する第1加算手段と、該第1加算手段により前記差分手段の出力が加算された前記入力画像に前記切り捨て回路での切り捨て結果を加算する第2加算手段とを備えることを特徴とする。
本発明に係る誤差拡散処理方法は、入力画像の各画素の濃度値変換を行う際に、前記入力画像の相隣する2画素それぞれを注目画素とした誤差拡散演算を同じクロックに同期して行うこととし、前記2画素における誤差拡散演算から得られる誤差拡散結果を互いの誤差拡散演算に使用し合う誤差拡散処理方法において、前記2画素それぞれについての誤差拡散演算における誤差拡散結果を切り捨てる切り捨て演算と、前記誤差拡散結果を四捨五入する四捨五入演算とを並列的に行うこととし、前記切り捨て演算による演算結果と前記四捨五入演算による演算結果との差分を求め、求めた差分を前記入力画像に加算し、前記差分が加算された前記入力画像に前記切り捨て演算による演算結果を加算することを特徴とする。
本発明にあっては、2画素のそれぞれにおける誤差拡散演算による誤差拡散結果を求めるための切り捨て回路と四捨五入回路とを並列的に設けて、切り捨て演算と四捨五入演算とを並列的に行っている。演算結果を互いの誤差拡散演算に相互に利用し合うクリティカルパスにあって、演算量が多い四捨五入回路に代えて演算量が少ない切り捨て回路を設ける。よって、クリティカルパスでの演算量が少なくなって誤差拡散処理の高速化を図れる。切り捨て回路に代えることにより階調特性が劣化することが懸念されるため、切り捨て演算と並行して四捨五入回路にて四捨五入演算を行う。よって、良好な階調特性を維持できる。
本発明にあっては、切り捨て回路の出力値と四捨五入回路の出力値との差分を注目画素の濃度値に加算する。よって、切り捨て回路を設けたことによる濃度値の減少を防止して正確な濃度値が得られる。
本発明では、2画素のそれぞれにおける誤差拡散演算による誤差拡散結果を求めるための切り捨て回路と四捨五入回路とを並列的に設けて、切り捨て演算と四捨五入演算とを並列的に行うようにしたので、演算結果を互いの誤差拡散演算に相互に利用し合うクリティカルパスにあって、演算量が多い四捨五入回路に代えて演算量が少ない切り捨て回路を設けるため、クリティカルパスでの演算量が少なくなって誤差拡散処理の高速化を図ることができるとともに、切り捨て演算と並行して四捨五入回路にて四捨五入演算を行うため、良好な階調特性を維持することができる。
本発明では、切り捨て回路の出力値と四捨五入回路の出力値との差分を注目画素の濃度値に加算するようにしたので、クリティカルパスに切り捨て回路を設けたことによる濃度値の減少を防止できて正確な濃度値を得ることができる。
以下、本発明をその実施の形態を示す図面を参照して説明する。尚、本発明は、以下の実施の形態に限定されるものではない。
まず、誤差拡散法の基本原理について説明する。尚、以下の説明では、256階調の中間調画像を0または255の階調値(濃度値)に2値化変換する場合を例とする。
まず、図1に示すような原画像について、ある注目画素に対して、その濃度値を所定の閾値と比較することによって0または255の何れかに変換する。この注目画素は、最初、左上隅の画素から始まって主走査方向に移動し、主走査方向に1ライン分の処理が終了すると副走査方向に沿って次ラインに移動するものとする。また、閾値は、ここでは、256(階調)の中間値である128であるとする。
最初、原画像における左上隅の画素の濃度値は129であるため、これを閾値128と比較すると、(注目画素の濃度値)>(閾値)となるため、注目画素の濃度値は255に変換される。このとき、注目画素の濃度値を129から255に変換することにより255−129=126の誤差(差分値)が生じるため、この誤差を図2に示す誤差拡散処理テーブルに基づいて周囲の画素に分散する。誤差拡散処理テーブルは、予め設定された拡散係数をマトリクス形式で示すものであり、注目画素における差分値に拡散係数を乗じた値を周囲画素に振り分ける。
尚、図2のように、誤差拡散処理テーブルに3×5のマトリクスを用いる場合の振りまき範囲は3×5である。誤差拡散法においては、この振りまき範囲が大きいほど、変換後の画像において高周波成分を残した写真画質に良好な画質が得られる。また、誤差拡散処理の前と後とで画像濃度が全体で保たれるように、誤差拡散処理テーブルにおける拡散係数の総和は1となるようにする。
ここで、例えば、注目画素の右側の画素においては、126(注目画素の差分値)×10/64(当該画素における拡散係数)≒20(小数点以下は必要精度に応じて計算するが、本説明では簡単のため整数標記する)が振り分け値となる。但し、この振り分け値の符号は、画像全体の濃度を保存するために注目画素の差分値とは逆となり、−20が注目画素の右側の画素に加算される。
図2に示す誤差拡散処理テーブルに基づいて、注目画素の周囲の画素に振り分けられる値を同様に計算すると、図3のようになる。また、図3に示した振り分け値を原画像に加算すると、図4のようになる。
以上により最初の注目画素についての誤差拡散が終了したため、次に、この注目画素の右側の画素を新たな注目画素として誤差拡散を行う。新たな注目画素は、先の注目画素の誤差拡散によってその濃度値が109となっている(図4参照)。この濃度値を先の閾値と比較した場合、(注目画素の濃度値)≦(閾値)となっているため、この注目画素の濃度値は0に変換される。このとき、注目画素を109から0に変換することにより0−109=−109の誤差(差分値)が生じるため、この誤差を図2に示す誤差拡散処理テーブルに基づいて周囲の画素に分散すると、その振り分け値は図5のようになる。また、図5に示した振り分け値を図4の濃度値に加算すると、図6のようになる。
このように、注目画素を順次ずらしていきながら、全ての画素について誤差拡散を行うことにより、原画像をもとの階調数よりも少ない階調数(本例では0か255かの2階調)の画像に変換することができる。
次に、上述したような誤差拡散処理を実施するための装置の構成について説明する。図7は、誤差拡散処理テーブルに基づいて振り分け値を算出するための拡散誤差演算回路の構成を示す図である。拡散誤差演算回路は、比較器701と、誤差量算出部702と、乗算器703A〜703Lと、デコーダ704A〜704Lと、フリップフロップ(FF)705,706とを備えている。
比較器701は、入力される濃度値ERR SUMと閾値THとを比較し、濃度値が閾値より大きい場合には、出力値SDAT=1を出力し、濃度値が閾値以下である場合には、出力値SDAT=0を出力する。誤差量算出部702は、注目画素における誤差量ERRとその誤差量の正負を示す符号信号SIGNとを求め、求めた誤差量ERRを各乗算器703A〜703Lへフリップフロップ705を介して出力するともに、求めた符号信号SIGNを各デコーダ704A〜704Lへフリップフロップ706を介して出力する。各乗算器703A〜703Lは、入力される誤差量ERRと、誤差拡散処理テーブルに対応した拡散係数W A〜W Lとを乗算し、その乗算結果を対応する各デコーダ704A〜704Lへ出力する。各デコーダ704A〜704Lは、この乗算結果に符号信号SIGNで示される正または負の符号を付して、拡散誤差E A〜E Lを出力する。
以下、このような構成をなす拡散誤差演算回路の動作について説明する。拡散誤差演算回路には、注目画素の濃度値ERR SUMと閾値THとが入力として与えられる。尚、ここでの注目画素の濃度値ERR SUMは、先に誤差拡散処理がなされた画素の振り分け値を加算された後の値である。これらの濃度値ERR SUM及び閾値THは、比較器701と誤差量算出部702とに入力される。
比較器701では濃度値ERR SUMと閾値THとを比較することにより、注目画素の濃度値が0または255に変換される。すなわち、ERR SUM>THである場合には、注目画素の濃度値は255に変換され、ERR SUM≦THである場合には、注目画素の濃度値は0に変換される。尚、2値化データにおいては、その出力は0または1であり、濃度値「255」は2値化データの「1」に相当する。したがって、ERR SUM>THの場合には、比較器701の出力はSDAT=1としてドットを形成し、ERR SUM≦THの場合には、比較器701の出力はSDAT=0でドットを形成しない。
一方、誤差量算出部702においては、2値化された注目画素における誤差量ERRが算出される。すなわち、ERR SUM>THである場合には、上述したように注目画素の濃度値は255に変換されるため、ERR=255−ERR SUMとなる。また、ERR SUM≦THである場合には、注目画素の濃度値は0に変換されるため、ERR=ERR SUMとなる。こうして算出された誤差量ERRは、乗算器703A〜703Lへ送られる。同時に、各乗算器703A〜703Lには誤差拡散処理テーブルに対応する拡散係数W A〜W Lが与えられ、誤差量ERRとそれぞれの拡散係数W A〜W Lとの積が計算される。
ここで、誤差量ERRと拡散係数との乗算値は、拡散誤差の大きさを示し、乗算器703A〜703Lのそれぞれに接続されたデコーダ704A〜704Lに入力される。また、誤差量ERRは、ERR SUM>THの場合、ERR SUM≦THの場合の何れにおいても0以上の値となるが、ERR SUM>THの場合には、注目画素における濃度値が255に変換されることにより、その濃度値は増加することとなる。逆に、ERR SUM≦THの場合には、注目画素における濃度値は減少する。
したがって、画像全体の濃度を維持するためには、ERR SUM>THの場合には拡散誤差は負の値とする必要があり、誤差量算出部702より各デコーダ704A〜704Lに符号信号SIGN=0が与えられる。0であるSIGNは、拡散誤差の符号が負であることを示し、このとき、各デコーダ704A〜704Lは、誤差量ERRと拡散係数との乗算値の符号を負として、拡散誤差E A〜E Lを出力する。一方、ERR SUM≦THの場合には、誤差量算出部702より各デコーダ704A〜704Lに符号信号SIGN=1が与えられる。1であるSIGNは、拡散誤差の符号が正であることを示し、このとき、各デコーダ704A〜704Lは、誤差量ERRと拡散係数との乗算値の符号を正として、拡散誤差E A〜E Lを出力する。これらの拡散誤差E A〜E Lは、注目画素に対して図8に示すようなマトリクス配列を形成する。
上述のようにして求まった拡散誤差は、注目画素の周囲の画素に振りまかれ、順次移動する注目画素の濃度値ERR SUMが変化する。この注目画素の濃度値ERR SUMを求める演算手順について、図9、図10〜12、図13及び図14,15を参照して説明する。
図9は、注目画素の濃度値を演算するための濃度値演算回路の構成を示す図である。濃度値演算回路は、加算器901A〜901Kと、フリップフロップ(FF)902A〜902Lと、加算器903と、ラインメモリ(FIFO)904,905と、リミッタ906,907と、フリップフロップ(FF)908〜912と、四捨五入回路913とを備えている。
フリップフロップ902A〜902Kは、図7に示す前述した拡散誤差演算回路によって算出された拡散誤差E A〜E Kのそれぞれを加算器901A〜901Kを介して格納する。また、フリップフロップ902Lは、拡散誤差E Lを加算器を介さずに直接格納する。ラインメモリ904,905は、後述する拡散誤差ブロック1001の移動に伴ってそこからはみ出た拡散誤差のデータを格納する。四捨五入回路913は、前段のフリップフロップ902Aのデータを四捨五入して、その四捨五入結果を加算器903ヘ出力する。加算器903は、この四捨五入結果と、フリップフロップ908〜910を介して入力された原画像における初期濃度値IDINとを加算し、その加算結果を濃度値ERR SUMとして出力する。
以下、このような構成をなす濃度値演算回路の動作について説明する。まず、第1番目の注目画素(原画像における左上隅画素)について、図7に示した拡散誤差演算回路によってこの注目画素に対する拡散誤差E A〜E Lが算出される。算出された拡散誤差E A〜E Lは、概念的には図10〜12に示すような拡散誤差ブロック1001に格納されることとなる。
ここで、拡散誤差ブロック1001は、誤差拡散処理テーブルと同サイズのマトリクスで表されるものであり、拡散誤差の累積加算及びその加算結果(累積結果)の保存を行うためのものである。すなわち、第1番目の注目画素について拡散誤差E A〜E Lが算出されると、これらの拡散誤差は、図10に示すように、拡散誤差ブロック1001に格納される。尚、図10の表記において、例えば、E1Aは、第1番目の注目画素に対する拡散誤差E Aを意味している。
これを図9に示す濃度値演算回路において説明すると以下のようになる。図7に示す拡散誤差演算回路によって算出された拡散誤差E A〜E Kのそれぞれは、加算器901A〜901Kを介してフリップフロップ902A〜902Kに格納される。また、拡散誤差E Lは加算器を介さずに直接フリップフロップ902Lに格納される。このとき、フリップフロップ902A〜902Lに格納されている値が、図13に示すマトリクス配列となって拡散誤差ブロック1001をなすものとする。
次いで、第2番目の注目画素に移って拡散誤差が算出される際には、図11に示すように、注目画素の移動に伴って拡散誤差ブロック1001も1列分だけ移動する。そして、移動された拡散誤差ブロック1001において、第2番目の注目画素に対して算出された拡散誤差が加算される。尚、上記図11の表記において、例えば、拡散誤差ブロック1001の4列目のデータを例にとると、その表記の意味は以下の数1によって示される。
Figure 0004906784
これを図9に示す濃度値演算回路において説明すると以下のようになる。すなわち、拡散誤差ブロック1001が1列分移動することは、拡散誤差ブロック1001内に格納されているデータが拡散誤差ブロック1001の移動方向と逆の方向に1列分移動することと同じであり、例えば、第1番目の注目画素に対する拡散誤差E Bは、フリップフロップ902Bの位置からフリップフロップ902Aの位置に移動することとなる(図13参照)。
また、拡散誤差ブロック1001には、同時に第2番目の注目画素に対するE A〜E Lが格納されるため、図11における拡散誤差ブロック1001のフリップフロップ902Aの位置を例にとると、ここには、第1番目の注目画素に対する拡散誤差E Bと第2番目の注目画素に対する拡散誤差E Aとの加算値が格納される。すなわち、図9に示す濃度値演算回路においては、例えば、フリップフロップ902Bに格納されているデータ(第1番目の注目画素に対する拡散誤差E B)と第2番目の注目画素に対する拡散誤差E Aとが加算器901Aに入力されて、これらの加算値がフリップフロップ902Aに送られる。
また、図10に示す拡散誤差ブロック1001においてフリップフロップ902Aに対応する位置の画素は、図11に示す拡散誤差ブロック1001においては注目画素の位置となる。したがって、フリップフロップ902Aに格納されているデータは、原画像におけるこの注目画素の初期濃度値IDINと加算器903において加算され、濃度値ERR SUMとして出力される。こうして出力された濃度値ERR SUMが、図7に示す拡散誤差演算回路の比較器701において閾値と比較されて2値化されることは、前述した通りである。
さらに、拡散誤差ブロック1001が移動することによって、拡散誤差ブロック1001からはみ出すデータは、ラインメモリ904,905に送られて格納される。すなわち、図10に示す拡散誤差ブロック1001においてその1列目にある拡散誤差E C,E Hが、図11においては、ラインメモリ904,905にそれぞれ格納される。これは、図9に示す濃度値演算回路においては、フリップフロップ902Hにおけるデータがラインメモリ905に送られ、フリップフロップ902Cにおけるデータがラインメモリ904に送られることを示している。尚、ラインメモリ904,905において格納可能なデータの個数は、原画像の列数をn、拡散誤差ブロック1001の列数をmとした場合、n−mとなる。
第3番目の注目画素に移って拡散誤差を算出する場合にも、各フリップフロップに格納されているデータの移動、及びこの注目画素に対して算出された拡散誤差の加算が同様に行われ、拡散誤差ブロック1001、ラインメモリ904,905に格納されるデータは図12に示すようになる。
こうした演算を繰り返すことにより、t番目の注目画素においては、拡散誤差ブロック1001、ラインメモリ904,905に格納されるデータは図14に示すようになる。但し、t≧2n+2であり、この場合の注目画素は原画像においては3行2列目以降となる。尚、図14における表記において、例えば、拡散誤差ブロック1001の1行4列目のデータを例にとると、その表記の意味は以下の数2によって示される。
Figure 0004906784
上述したような誤差拡散処理は、実際には原画像の全ての画素について行われるものであるが、3行2列目よりも前の画素を注目画素としている時点では、ラインメモリ904,905に格納可能な最大数分までデータが格納されていない。例えば、原画像の1行1列目の画素を注目画素とする処理時には、ラインメモリ904,905の何れにもデータが格納されていないので、ラインメモリ904,905から拡散誤差ブロック1001にフィードバックされる誤差値は0である。
原画像における3行2列目以降の画素を注目画素としている時点では、ラインメモリ904,905の両方において、データが格納可能な最大数分まで格納されている。したがって、この時点から次の注目画素に移る際には、ラインメモリ904,905において最も早く入力されたデータが読み出されて、拡散誤差ブロック1001にフィードバックされる。これは、図9に示す濃度値演算回路においては、ラインメモリ905から読み出されたデータがフリップフロップ911及び加算器901Gを介してフリップフロップ902Gに送られ(ここで、注目画素に対する拡散誤差E Gが加算される)、ラインメモリ904から読み出されたデータがフリップフロップ912及び加算器901Bを介してフリップフロップ902Bに送られる(ここで、注目画素に対する拡散誤差E Bが加算される)ことを示している。
図15は、上記図7に示した拡散誤差演算回路と上記図9に示した濃度値演算回路とを結合した誤差拡散処理装置の構成を示す図である。図15において、図7または図9と同様の部材には同一番号を付している。また、図15では、以降の説明を簡単化するために本願の発明に直接関係しない部材については簡略化して図示している。
具体的に、図7に関しては、拡散誤差E Aを求める乗算器703A及びデコーダ704AをまとめてCWA707とブロック化し、同じく拡散誤差E Bを求める乗算器703B及びデコーダ704BをまとめてCWB708とブロック化し、残りの拡散誤差を求める乗算器703C〜703L及びデコーダ704C〜704Lをまとめて2,3ライン後誤差演算部709とブロック化している。また、図9に関しては、1ライン前及び2ライン前からの誤差拡散結果を取得するための回路部分をまとめてFIFO入出力誤差演算部920とブロック化している。
図16は、高速化を図るべく、入力画像において相隣する2画素、つまり入力画像における主走査方向に連続する2画素を同時に処理するようにした誤差拡散処理装置の構成を示す図である。図16において、図15と同様の部材には同一番号を付している。この図16に示す誤差拡散処理装置では、連続する2画素、つまり奇数画素と偶数画素とを同じタイミングで入力して並列処理するため、図15の回路構成を2つ並設する構成とし、さらに演算結果から得られた誤差拡散結果を互いの演算に相互に利用し合う構成となる。
図15の回路構成と図16の回路構成とを比較すると分かるように、高速化を図った図16の誤差拡散処理装置において、図15の誤差拡散処理装置の回路構成から変更・削除されたものはなく、図15と全く同等のアルゴリズムで動作する回路構成となっている。しかし、ここで問題となるのが1クロックで処理しなければならない演算量の増加である。図15と全く同じ演算処理を2画素に対して同時に実行しているので、1クロックの間に処理する演算量は単純に考えると2倍になる。よって、この演算量の増加を抑制する工夫が必要である。
図17は、図16内で最も1クロック内で処理する演算量が多くなるパス(クリティカルパス)を抜き出して示している。このクリティカルパスにおいて、高速化を図ることを考慮した場合、演算量の抑制を簡単に図れる工夫として四捨五入演算を切り捨て演算に変更することが考えられる。四捨五入演算は条件判定が必要であるが、切り捨て演算は下位ビットを切り捨てるだけであるので、演算を必要としないため高速化が可能である。
しかし、単純に切り捨て演算に変更してしまうと、演算精度が落ちるので、誤差拡散処理後に得られる画像全体の濃度値が原画像の濃度値と比べて下がってしまうという課題がある。この課題を解決するために更なる工夫が必要である。
図18は、処理の高速化を維持しながら、濃度値の低下も抑制できるようにした本発明の誤差拡散処理装置におけるクリティカルパスを抜き出した図である。図18において、図17と同様の部材には同一番号を付している。
図18における誤差拡散処理装置の回路構成では、図17の回路構成と比べて、クリティカルパスにおける四捨五入回路913を単純に切り捨て回路161に変更している。また、誤差拡散処理装置は、クリティカルパス外に、四捨五入回路162と、フリップフロップ163,164と、減算器165と、加算器166とを備えている。
四捨五入回路162は、加算器901Aの出力をフリップフロップ163を介して四捨五入して、その四捨五入結果を減算器165ヘ出力する。また、切り捨て回路161は、加算器901Aの出力を切り捨てて、その切り捨て結果をフリップフロップ164を介して減算器165へ出力するとともに加算器903へ出力する。減算器165は、四捨五入回路162からの四捨五入結果から切り捨て回路161からの切り捨て結果を減算し、その減算結果を加算器166ヘ出力する。加算器166は、この減算結果を原画像における初期濃度値IDIN1,IDIN2に加算する。
このような構成をなす本発明の誤差拡散処理装置では、単純に切り捨て回路に変更するだけでなく、図18のような工夫を加えることで画像全体の濃度値が下がる問題を解決している。切り捨て回路161による切り捨て演算と平行して、四捨五入回路162による四捨五入演算を並列実行する。このとき、演算量が多い四捨五入演算をクリティカルパスから分断するために、加算器901Aでの加算結果を一度フリップフロップ163でラッチしておく必要がある。
そして、四捨五入結果から切り捨て結果を減算器165で引き算し、減算結果を得る。この減算結果は、四捨五入演算と切り捨て演算との差異によって生じる濃度値の減少を引き起こす値である。したがって、この値をクリティカルパスとは異なる位置に加算することによって画像全体の濃度値が下がる問題を解決することができる。そこで、本発明では、加算器166にて入力画素IDIN1,IDIN2にこの減算結果を足し合わせている。この画素は誤差拡散演算の注目画素の1画素前の位置にあたるが、2画素前等であっても画像全体の濃度が変わることはない。
尚、図18に示す回路構成では、2系統の両方において切り捨て演算及び四捨五入演算を並列で行うようにしているが、どちらか一方の系統の回路変更によって高速化が可能であれば、他方の系統については通常通り四捨五入回路を利用するようにしても良い。
2値化における誤差拡散処理が施される前の原画像の一例を示す図である。 誤差拡散処理で使用される誤差拡散処理テーブルの一例を示す図である。 図2の誤差拡散処理テーブルを用いた場合の最初の注目画素における拡散誤差の演算結果を示す図である。 図3に示す拡散誤差を図1の原画像に対して振りまいた後の濃度値を示す図である。 図2の誤差拡散処理テーブルを用いた場合の2番目の注目画素における拡散誤差の演算結果を示す図である。 図5に示す拡散誤差を図4の画像に対して振りまいた後の濃度値を示す図である。 拡散誤差演算回路の構成を示す図である。 図7の拡散誤差演算回路での演算に使用される誤差拡散処理テーブルを示す図である。 濃度値演算回路の構成を示す図である。 注目画素を順次移動させることに伴う拡散誤差ブロック内のデータの変化を示す図である。 注目画素を順次移動させることに伴う拡散誤差ブロック内のデータの変化を示す図である。 注目画素を順次移動させることに伴う拡散誤差ブロック内のデータの変化を示す図である。 図9の濃度値演算回路での演算に使用される拡散誤差ブロックを概念的に示す図である。 図9の濃度値演算回路での演算において拡散誤差ブロック及びラインメモリに格納されるデータを示す図である。 図7及び図9を結合した誤差拡散処理装置の構成を示す図である。 主走査方向の2画素を同時に処理する誤差拡散処理装置の構成を示す図である。 図16に示す誤差拡散処理装置でのクリティカルパスを抜き出した図である。 クリティカルパスの高速動作を図るための誤差拡散処理装置の構成を示す図である。
符号の説明
161 切り捨て回路
162 四捨五入回路
163,164 フリップフロップ
165 減算器
166 加算器

Claims (2)

  1. 入力画像の各画素の濃度値変換を行う際に、前記入力画像の相隣する2画素それぞれを注目画素とした誤差拡散演算を同じクロックに同期して行うこととし、前記2画素における誤差拡散演算から得られる誤差拡散結果を互いの誤差拡散演算に使用し合う誤差拡散処理装置において、
    前記2画素それぞれについての誤差拡散演算における誤差拡散結果を切り捨てる切り捨て回路と、前記誤差拡散結果を四捨五入する四捨五入回路とを並列的に設けてあり、
    前記切り捨て回路の出力値と前記四捨五入回路の出力値との差分を求める差分手段と、該差分手段の出力を前記入力画像に加算する第1加算手段と、該第1加算手段により前記差分手段の出力が加算された前記入力画像に前記切り捨て回路での切り捨て結果を加算する第2加算手段とを備えることを特徴とする誤差拡散処理装置。
  2. 入力画像の各画素の濃度値変換を行う際に、前記入力画像の相隣する2画素それぞれを注目画素とした誤差拡散演算を同じクロックに同期して行うこととし、前記2画素における誤差拡散演算から得られる誤差拡散結果を互いの誤差拡散演算に使用し合う誤差拡散処理方法において、
    前記2画素それぞれについての誤差拡散演算における誤差拡散結果を切り捨てる切り捨て演算と、前記誤差拡散結果を四捨五入する四捨五入演算とを並列的に行うこととし、
    前記切り捨て演算による演算結果と前記四捨五入演算による演算結果との差分を求め、求めた差分を前記入力画像に加算し、前記差分が加算された前記入力画像に前記切り捨て演算による演算結果を加算することを特徴とする誤差拡散処理方法。
JP2008138292A 2008-05-27 2008-05-27 誤差拡散処理装置及び誤差拡散処理方法 Active JP4906784B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008138292A JP4906784B2 (ja) 2008-05-27 2008-05-27 誤差拡散処理装置及び誤差拡散処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008138292A JP4906784B2 (ja) 2008-05-27 2008-05-27 誤差拡散処理装置及び誤差拡散処理方法

Publications (2)

Publication Number Publication Date
JP2009290316A JP2009290316A (ja) 2009-12-10
JP4906784B2 true JP4906784B2 (ja) 2012-03-28

Family

ID=41459140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008138292A Active JP4906784B2 (ja) 2008-05-27 2008-05-27 誤差拡散処理装置及び誤差拡散処理方法

Country Status (1)

Country Link
JP (1) JP4906784B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05292322A (ja) * 1992-04-14 1993-11-05 Omron Corp 画像読取装置
JPH07302190A (ja) * 1994-05-06 1995-11-14 Hitachi Ltd 除算器並びにこれを用いた画像信号読取装置
JP2003283829A (ja) * 2002-03-22 2003-10-03 Ricoh Co Ltd 画像処理装置および方法
JP4139752B2 (ja) * 2003-08-25 2008-08-27 シャープ株式会社 画像処理装置、画像形成装置、画像処理方法、画像処理プログラム、および該プログラムを記録した記録媒体
JP4105704B2 (ja) * 2004-05-18 2008-06-25 シャープ株式会社 画像処理装置、画像形成装置、画像処理方法、プログラム、および記録媒体
JP4204600B2 (ja) * 2006-04-03 2009-01-07 シャープ株式会社 画像処理装置、誤差拡散処理方法、及びプログラム

Also Published As

Publication number Publication date
JP2009290316A (ja) 2009-12-10

Similar Documents

Publication Publication Date Title
JP4906784B2 (ja) 誤差拡散処理装置及び誤差拡散処理方法
US7627188B2 (en) Error diffusion method and hardware architecture
JP2009004952A (ja) 画像処理装置及びプログラム
US5488672A (en) Color image processing apparatus
JP2006287634A (ja) 信号処理装置、信号処理方法およびノイズ低減装置
JP2010050846A (ja) 誤差拡散処理装置及び誤差拡散処理方法
JP2003283829A (ja) 画像処理装置および方法
JP2009049752A (ja) 映像信号処理装置、映像信号処理方法、及び表示装置
US9007659B1 (en) Re-ordered error diffusion for fast implementation
JP7007000B1 (ja) 画像処理装置および画像処理方法
JP5115470B2 (ja) 画像処理装置
JP2005190239A (ja) 画像処理回路及び画像処理方法
JP3168661B2 (ja) 画素数増大方法およびその装置
US20100183234A1 (en) Apparatus, method, and program
JP2005051337A (ja) 画像処理方法、画像処理装置およびプログラム
JP3222585B2 (ja) 中間調二値データ発生回路
JP2866129B2 (ja) 画像処理装置
JP4767568B2 (ja) 誤差拡散回路
JP2006135825A (ja) 画像補間処理装置
KR100313857B1 (ko) 화상의 그레이 레벨값을 이진레벨값으로 변환하기 위한 장치
JP2946217B2 (ja) 画像処理装置
JP3200274B2 (ja) 画像処理方法及び装置
KR100638475B1 (ko) 소스 이미지 좌표 계산방법 및 이를 위한 소스 이미지좌표 계산회로
JP2005323009A (ja) 画像処理装置および画像処理方法
JP2023048313A (ja) 画像処理装置および画像形成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111130

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: 20111220

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120110

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4906784

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150