JP4262148B2 - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP4262148B2
JP4262148B2 JP2004189912A JP2004189912A JP4262148B2 JP 4262148 B2 JP4262148 B2 JP 4262148B2 JP 2004189912 A JP2004189912 A JP 2004189912A JP 2004189912 A JP2004189912 A JP 2004189912A JP 4262148 B2 JP4262148 B2 JP 4262148B2
Authority
JP
Japan
Prior art keywords
pixel
value
error
line
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
JP2004189912A
Other languages
English (en)
Other versions
JP2006014042A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004189912A priority Critical patent/JP4262148B2/ja
Publication of JP2006014042A publication Critical patent/JP2006014042A/ja
Application granted granted Critical
Publication of JP4262148B2 publication Critical patent/JP4262148B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、デジタル階調画像から疑似中間調画像を作成する画像処理装置及び画像処理方法に関する。
従来から、写真のような連続階調を持つ画像の印刷や表示は、微細なドットの大小に置き換えるか、微細なドットの密度を変えることにより表現している。特に、デジタル階調画像を2値またはデジタル階調画像の階調レベルよりも小さい多値の擬似中間調画像に変換する代表的なハーフトーン手法として、ディザ法と誤差拡散法の2つの処理方法が上げられる。
ディザ法の基本的な概念は、デジタル階調画像を構成する各画素の画素値(濃度値)を微細なドットの大小に置き換えて表現を行うものである。ディザ法は、ある大きさのマトリクスの各構成要素に規則的なパターンで並べられた閾値が埋め込まれているディザマトリクスに、デジタル階調画像を入力し、元画像上で繰り返し使用することで、入力画素ごとに対応する閾値と比較し、ディザマトリクスの各構成要素に対応する位置に存在する閾値と、当該閾値の配置位置に対応する位置に存在するデジタル階調画像の各画素の画素値を比較する。比較の結果、デジタル階調画像の入力画素値が閾値よりも大きい時にドットをONとするための値を出力することでハーフトーン画像(疑似中間調画像)を生成する方法である。
このディザ法では、出力画像の階調性を良くするためにはディザマトリクスサイズを大きくする必要があり、逆に高分解能を得るためにはディザマトリクスを小さくしなければならない。
一方、誤差拡散法の基本的な概念は、微小なドットの密度を変えることにより表現を行うものである。誤差拡散法は、入力画素値と閾値との比較による2値化を行った際に生ずる誤差を所定の割合で主走査方向・副走査方向の隣接画素に拡散し、画像誤差の低減を行う方法である。
誤差拡散法は出力のためのドットをランダムに配置し、その密度によって階調を表現するため、画像を劣化させるモアレの発生を考慮する必要性がなく、階調性と高分解能を両立することが可能な手法である。なお、従来の誤差拡散法の具体的な処理手順については、後述する実施例の中で詳細に説明する。
通常、誤差拡散法では、階調性と高分解能を両立できるが、処理画素に対応する閾値と2値化を行い、発生した誤差を主走査方向及び副走査方向に存在する周囲の未処理画素に拡散するため、発生した誤差を記憶しておくために最低でも2ライン分の誤差バッファ(誤差メモリ)が必要であった。つまり、処理対象画素が存在しているラインと、当該ラインに隣接するラインの2ラインである。
このような誤差拡散法に関して、従来では、誤差データのビット数を入力された多値画像データに対応付けられた画像の品位に関する記録モードに応じて制限して誤差メモリに格納することにより、誤差メモリの容量を低減する方法が開示されている。(例えば、特許文献1参照)
特開平2003−259117号公報
しかし、近年、画像処理速度の高速化、印字ドットの微細化、画像データサイズの増加に伴い、入力画像データを保持するメモリや誤差バッファにさらに大容量のメモリサイズが必要となってきている。この課題に対応するために大容量のメモリを用いると、製品のコストが増大することになる。特許文献1に開示された技術も誤差バッファの容量削減という目的に対しては有効であるが、ビット数削減及び拡張の制御が複雑となるという課題が生じていた。
本発明は、多値画像データを誤差拡散法を用いて前記多値画像データよりも小さい値の画像データを生成する画像処理装置において、複雑な制御を必要とせず、効果的に誤差バッファを削減可能な画像処理装置及び画像処理方法を提供することを目的とする。
上記の課題を解決するために、本発明は、多値画像データを誤差拡散法を用いて前記多値画像データよりも小さい値の画像データを生成する画像処理装置において、画素毎に、補正された画素値と所定の閾値とを比較して、量子化処理を行う比較手段と、前記補正された画素値から前記比較手段での量子化処理の結果を減算することにより算出される誤差値を記憶する誤差バッファと、を有し、前記誤差バッファは、前記注目画素が位置するラインと同一の走査ラインへ拡散するための誤差値をM画素単位で加算した総和値で記憶し、前記注目画素が位置するラインの次の走査ライン以降の各ラインへ拡散するための誤差値をN(M<N)画素単位で加算した総和値で記憶し、前記注目画素が位置するラインと同一の走査ライン上の未処理画素に拡散される誤差の総和値を算出する対象となるM画素は、画素の主走査方向の位置をMで割った値の余りと、画素の副走査方向の位置をMで割った値の余りとが等しくなる画素位置からの連続した画素であることを特徴とする。
また、本発明は、多値画像データを誤差拡散法を用いて前記多値画像データよりも小さい値の画像データを生成する画像処理装置において、画素毎に、補正された画素値と所定の閾値とを比較して、量子化処理を行う比較手段と、前記補正された画素値から前記比較手段での量子化処理の結果を減算することにより算出される誤差値を記憶する誤差バッファと、を有し、前記誤差バッファは、前記注目画素が位置するラインと同一の走査ラインへ拡散するための誤差値をM画素単位で加算した総和値で記憶し、前記注目画素が位置するラインの次の走査ライン以降の各ラインへ拡散するための誤差値をN(M<N)画素単位で加算した総和の平均値で記憶し、前記注目画素が位置するラインと同一の走査ライン上の未処理画素に拡散される誤差の総和値を算出する対象となるM画素は、画素の主走査方向の位置をMで割った値の余りと、画素の副走査方向の位置をMで割った値の余りとが等しくなる画素位置からの連続した画素であることを特徴とする。
また、本発明は、多値画像データを誤差拡散法を用いて前記多値画像データよりも小さい値の画像データを生成する画像処理方法において、画素毎に、補正された画素値と所定の閾値とを比較して、量子化処理を行う比較工程と、前記補正された画素値から前記比較工程での量子化処理の結果を減算することにより算出される誤差値を誤差バッファに記憶させる誤差値記憶工程と、を有し、前記誤差値記憶工程は、前記注目画素が位置するラインと同一の走査ラインへ拡散するための誤差値はM画素単位で加算した総和値で前記誤差バッファに記憶させ、前記注目画素が位置するラインの次の走査ライン以降の各ラインへ拡散するための誤差値はN(M<N)画素単位で加算した総和値で前記誤差バッファに記憶させ、前記注目画素が位置するラインと同一の走査ライン上の未処理画素に拡散される誤差の総和値を算出する対象となるM画素は、画素の主走査方向の位置をMで割った値の余りと、画素の副走査方向の位置をMで割った値の余りとが等しくなる画素位置からの連続した画素であることを特徴とする。
また、本発明は、多値画像データを誤差拡散法を用いて前記多値画像データよりも小さい値の画像データを生成する画像処理方法において、画素毎に、補正された画素値と所定の閾値とを比較して、量子化処理を行う比較工程と、前記補正された画素値から前記比較工程での量子化処理の結果を減算することにより算出される誤差値を誤差バッファに記憶させる誤差値記憶工程と、を有し、前記誤差値記憶工程は、前記注目画素が位置するラインと同一の走査ラインへ拡散するための誤差値はM画素単位で加算した総和値で誤差バッファに記憶させ、前記注目画素が位置するラインの次の走査ライン以降の各ラインへ拡散するための誤差値はN(M<N)画素単位で加算した総和の平均値で誤差バッファに記憶させ、前記注目画素が位置するラインと同一の走査ライン上の未処理画素に拡散される誤差の総和値を算出する対象となるM画素は、画素の主走査方向の位置をMで割った値の余りと、画素の副走査方向の位置をMで割った値の余りとが等しくなる画素位置からの連続した画素であることを特徴とする。
以上説明したように、本発明によれば、誤差拡散処理に必要なメモリ容量を大幅に低減することができる。また、条件によって誤差の総和、または平均をとる位置を変化させることにより、粒状性の良い画像を得ることが出来る。
(実施例1)
以下、本発明の詳細な実施例について説明する。なお、本発明は、ASICなどのハードウェアによって誤差拡散処理を実現するものであっても、プログラムなどのソフトウェアによって誤差拡散処理を実現するものであってもよい。
また、以下の各実施例は入力された多値画像データを2値化する場合の誤差拡散処理を用いて説明を行うが、量子化処理は2値化に限らず、入力された多値画像データの階調レベルよりも小さい多値データに量子化する、いわゆる多値誤差拡散処理においても適用可能である。
実施例1では、誤差分配手段によって分配された同一走査ラインへ拡散される2値化誤差は2画素単位で誤差の総和を誤差バッファに記憶する。また、次走査ラインへ拡散される2値化誤差は4画素単位で誤差の総和を誤差バッファに記憶する。そして、同一走査ライン上の未処理画素へは記憶されている2画素単位の誤差の総和から所定の割合で誤差を拡散し、次処理ライン以降の各ライン上の未処理画素へは記憶されている4画素単位の誤差の総和から所定の割合で誤差を拡散する方法の例を示す。
以下、主走査方向及び副走査方向に並べられた多値の画素によって構成される入力画像に対して、誤差拡散処理を行う注目画素が存在するラインと同一の走査ラインを処理ライン(誤差拡散処理対象であるライン)、当該処理ラインの次に誤差拡散処理が実行される走査ラインを次処理ライン(次に処理されるライン)と示す。
図1は従来の誤差拡散処理の概要を示すフローチャートである。図中のx(0〜)、y(0〜)は処理ラインを構成する1画素単位に割り当てられた座標番号である。また、In[x,y]は注目画素(座標値X、Y)の画素値である。
図1の処理について説明を行う。なお、図1の処理は、誤差拡散処理プログラムを制御するCPUなどによって実行されるものとするが、誤差拡散処理を実行する手段については、プログラムによる処理以外の構成、例えば、ハードウェアによって構成された論理回路などであってもよい。
まず、ステップS101の処理により、誤差拡散処理を実行するプログラムに注目画素の画素値が入力される。
ステップS102では、前処理ラインで発生し、誤差バッファに記憶されている誤差の配列Err[(Y+1)%2][X]から補正値crt1(前処理ラインから注目画素に拡散される誤差値の合計値)を算出する。
ステップS103では、注目画素が配置されているラインの画素のうち、既に誤差拡散処理が実行された画素の誤差を記憶されている誤差バッファERR[Y%2][X]から補正値crt2(処理ラインから注目画素に拡散される誤差値の合計)を算出する。これは、例えば図2に示すような割合で注目画素(※で示した画素)で発生した誤差値を注目画素の周囲の画素に拡散する場合、図3に示す前処理ラインで発生した誤差列と処理ラインで発生した誤差列から注目画素の画素値に加算する補正値crt1、crt2を算出する。
crt1は前処理ラインで発生した誤差値E1x−1、E1x、E1x+1から図2の誤差を拡散する割合により
(式1)
crt1=1/8*E1x−1+2/8*E1x+1/8*E1x+1
で算出できる。
また、Crt2は同様に処理ラインで発生した誤差値E2x−1から
(式2)
crt2=4/8*E2x−1
で算出することが出来る。
続いて、ステップS104でcrt1,crt2から注目画素に対する補正値Correct=crt1+crt2を算出する。
続いて、ステップS105において入力画素値に補正値を加えた値(In+Correct)と注目画素位置に対応する予め定められた量子化閾値とを比較し、注目画素位置のドットのON、OFFを決定する。
入力画素値に補正値を加えた値が閾値よりも大きい場合はステップS106の処理により注目画素位置に対応するドットはON(Out[x,y]=255)とする。
また、入力画素値に補正値を加えた値が閾値以下の場合はステップS107の処理により注目画素位置に対応するドットはOFF(Out[x,y]=0)とする。
次に、ステップS108で濃度誤差値errが算出される。濃度誤差値は入力画素値に補正値を加えた値から出力値を減算することにより算出される((In+Correct)−Out[x,y])。この濃度誤差値は処理ラインで発生した誤差の誤差バッファErr[Y%2][X]に格納され、1画素分の量子化処理が終了する。これが従来から知られている誤差拡散法の一般的な処理手順である。
一方、図4は本実施例の誤差拡散処理の概要を示すフローチャートである。以下、このフローチャートを用いて本発明の実施例を説明する。
まず、図4の処理を開始する。図4の処理は、誤差拡散処理プログラムを制御するCPUなどによって実行されるものとするが、誤差拡散処理を実行する手段については、プログラムによる処理以外の構成、例えば、ハードウェアによって構成された論理回路などであってもよい。
まず、ステップS401の処理により誤差拡散処理を実行するプログラムに注目画素の画素値が入力される。
次に、ステップS402では、処理ラインの各画素で発生した誤差のうち、M画素分の合計誤差値を格納した誤差バッファErrM[]からcrt1を算出する。
次に、ステップS403では前処理ラインの各画素で発生した誤差のうち、N画素分の合計誤差値を格納した誤差バッファErrN[]からcrt2を算出する。算出に関する詳細な説明は後述する。
そして、ステップS404でcrt1,crt2から注目画素に対する補正値Correct=crt1+crt2を算出する。
次に、ステップS405において入力画素値に補正値を加えた値(In[x,y]+Correct)と注目画素位置に対応する予め定められた量子化閾値とを比較し、注目画素位置のドットのON、OFFを決定する。
入力画素値に補正値を加えた値が閾値よりも大きい場合は、ステップS406の処理により注目画素位置に対応するドットはON(Out[x,y]=255)とする。
また、入力画素値に補正値を加えた値が閾値以下の場合は、ステップS407の処理により、注目画素位置に対応するドットはOFF(Out[x,y]=0)とする。
次に、ステップS408で濃度誤差値が算出される。濃度誤差値errは入力画素値に補正値を加えた値から出力値を減算することにより算出される((In+Correct)−Out[x,y])。
ステップS408において算出された濃度誤差値errを例えば図5に示すような所定の割合で、処理ラインに拡散する濃度誤差値err_mと次処理ラインに拡散する濃度誤差値err_nに分割する。図5は、誤差拡散マトリクスを示したものである。
続いて、図6に示すようにステップS409の処理を実行する。図6は、あるラインを誤差拡散処理した場合の誤差の拡散方法と、拡散される誤差を格納する誤差バッファを開示したものである。
図6(a)は、入力されたライン(この図では例として1ラインを8画素で示している)の各画素In[x,y]の値に補正値を加えた値に対して、所定の閾値で量子化した際の誤差を図5で示した誤差拡散マトリクスに従って拡散した場合の各誤差値を示したものである。
そして、これらの各誤差値は、図6(b)に示した誤差バッファにそれぞれ記憶される。このとき、処理ラインに拡散する誤差err_mのM画素分(本実施例では2画素分)の誤差合計値をM画素毎に処理ライン誤差バッファErrM[]に格納する。
また、ステップS410の処理において、次処理ラインに拡散する誤差err_nのN画素分(本実施例では4画素分)の誤差合計値をN画素毎にErrN[]に格納する。そして、これらの誤差バッファに格納されたErrM[]、ErrN[]から、前述したcrt1、crt2、Correctを算出する。
本実施例では、例えば同一走査ライン上の未処理画素へは2画素単位の誤差の総和から図7(a)の割合で誤差を拡散する。また、次処理ラインの各未処理画素へは、4画素単位の誤差の総和から図7(b)の割合で誤差を拡散するものとする。
図8に示したように、これらの割合で誤差を拡散する場合、処理ラインへの誤差を格納する誤差バッファErrM[]と次処理ラインへの誤差を格納する誤差バッファErrN[]とから、例えば処理ライン上の注目画素(図8の※で示した画素)に加算される処理ラインからの補正値crt1は
(式3)
crt1=1/2*ErrM[1]
で算出できる。
また、注目画素に加算される前処理ラインからの補正値crt2は、前のラインを処理した際に次処理ライン誤差バッファに格納した値から、
(式4)
crt2=1/16*ErrN[0]+3/16*ErrN[1]
で算出される。
これらの算出された値を用いて、ステップS404で注目画素に対する補正値crt1、crt2からCorrectが算出される。
前記処理を行うことにより、本実施例では例えば1ラインの処理画素数が100画素で、各画素で発生する誤差値が8bitであるとすると、従来の方法では8bit×100画素×2ライン=1600bitの誤差バッファが必要であったのに対し、本実施例では8bit(処理ラインに拡散される誤差7bitの2画素分の総和)×50画素+9bit(次処理ラインに拡散される誤差7bitの4画素分の総和)×25画素+17bit(処理ラインへ拡散する誤差を格納するためのテンポラリメモリ8bit+次処理ラインへ拡散する誤差を格納するためのテンポラリメモリ9bit)=642bitで済む。つまり、従来の誤差バッファと比較して半分以下の容量があれば処理が可能となる。
また、M、Nの値を出力画質の高低に応じて適時選択することにより、誤差バッファの容量をさらに削減することができるとともに、格納された誤差値へのメモリアクセス回数も削減することができる。例えば、高画質での出力を望む場合は、誤差値を加算する対象とする画素数(M、N)の値を小さくとる。これは、複数の画素で発生した誤差を多くの画素分加算してしまうことによって、階調性が低下し、画像が鈍ってしまうためである。なお、M、Nの値に応じて、図7に示した誤差拡散の割合(比率)をチューニングすることによって、こうした画像劣化を抑えることも可能である。例えば、実験によって測定された値に基づいて、M、Nの組み合わせに対応する最適な誤差拡散比率を定義しておき、画質の高低に関する指示入力に応じて適宜選択することにより実現できるものである。
(実施例2)
以下、本発明に係る第2実施形態について説明する。なお、特別の記載が無い限り、本実施例の構成や処理などは実施例1と同様であるものとする。
本実施例では、誤差分配手段によって分配された、同一走査ラインへ拡散される2値化誤差は2画素単位の誤差の総和を誤差バッファに記憶する。この構成は上述した実施例1と同様であるが、本実施例では、次走査ラインへ拡散される2値化誤差は4画素単位の誤差の平均値を算出し、その平均値を誤差バッファに記憶するものである。
そして、同一走査ライン上の未処理画素へは誤差バッファに記憶されている2画素単位の誤差の総和から所定の割合で誤差を拡散する。また、次処理ライン以降の各ライン上の未処理画素へは前記誤差記憶手段に記憶されている4画素単位の誤差の平均から所定の割合で誤差を拡散するものである。
図9は本実施例の概要を示すフローチャートである。本実施例のステップで実施例1と異なる部分は、ステップS903のcrt2を算出する方法と、ステップS910からS912でN画素(本実施例では4画素)分の誤差の平均値を算出する部分であり、他のステップは同様の処理であるため説明を省略する。
ステップS908では、実施例1と同様に処理ラインに拡散する濃度誤差値err_mと次処理ラインに拡散する濃度誤差値err_nが算出される。
ステップS909では、処理ラインに拡散する誤差err_mのM画素分(本実施例では2画素分)の誤差合計値をM画素毎に処理ライン誤差バッファErrM[]に格納する。
続いて、ステップS910では、テンポラリバッファtmpNに前述のerr_nが画素毎に加算蓄積される。なお、テンポラリバッファtmpNは、平均値を算出するために一時的に誤差を格納するバッファである。
ステップS911において、画素のX座標値をNで割った余りがN−1になった時、つまりtmpNにN画素分の次処理ラインに拡散する濃度誤差が蓄積された時に、ステップS912でN画素分の次処理ラインに拡散する濃度誤差の平均値(tmpN/N)を算出する。そして、算出された平均値を次処理ライン誤差バッファErrN[]に格納する。
本実施例ではM=2、N=4であるので、図10に示すように処理ラインへの誤差を格納する誤差バッファErrM[]へは、各画素で発生する処理ラインへ拡散する濃度誤差値の2画素分の総和が2画素毎に格納され、次処理ラインへの誤差を格納する誤差バッファErrN[]へは、各画素で発生する次処理ラインへ拡散する濃度誤差値の4画素分の平均値が4画素毎に格納される。そして、この誤差バッファErrM[]、ErrN[]に格納された誤差値を用いてステップS902、S903でcrt1、crt2が算出される。
本実施例では、例えば同一走査ライン上の未処理画素へは2画素単位の誤差の総和から図11(a)の割合で誤差を拡散する。また、次処理ラインへは、4画素単位の誤差の平均値から図11(b)の割合で誤差を拡散する。実施例1と異なっているのは、次処理ラインへの誤差を格納する誤差バッファErrN[]には、4画素分の平均値が格納されている点である。
また、本実施例では、ステップS912でN画素分の処理ラインに拡散する濃度誤差の平均値を算出した際に余りが発生した場合、図11(a)のαの未処理画素にその余り分の誤差を拡散させる。なお、この余り分の誤差は処理ラインまたは次処理ラインの注目画素周辺の未処理画素に拡散すればよく、図11(a)のαの部分に限られるものではない。
さて、前記の割合で誤差を拡散する場合、図12に示す処理ラインへの誤差を格納する誤差バッファErrM[]と次処理ラインへの誤差を格納する誤差バッファErrN[]から、例えば処理ライン上の注目画素に拡散される処理ラインからの補正値crt1は
(式5)
crt1=1/2*ErrM[1]
で算出できる。
また、注目画素に拡散される前処理ラインからの補正値crt2は、前のラインを処理した際に次処理ライン誤差バッファに格納した値から、
(式6)
crt2=1/8*ErrN[0]+3/8*ErrN[1]
で算出される。よって、ステップS904の処理で注目画素に対する補正値crt1、crt2からCorrectが算出される。
前記処理を行うことにより、本実施例では例えば1ラインの処理画素数が100画素で、各画素で発生する誤差値が8bitであるとすると、従来の方法では8bit×100画素×2ライン=1600bitの誤差バッファが必要であったのに対し、本実施例では8bit(処理ラインに拡散される誤差7bitの2画素分の総和)×50画素+7bit(次処理ラインに拡散される誤差7bitの4画素分の平均値)×25画素+17bit(処理ラインへ拡散する誤差を格納するためのテンポラリメモリ8bit+次処理ラインへ拡散する誤差を格納するためのテンポラリメモリ9bit)=592bitと半分以下の誤差バッファを設ければ良い。そのため、実施例1と比較して、さらに誤差バッファの容量を大幅に削減することができる。
(実施例3)
以下、本発明に係る第3の実施例について説明する。なお、特別の記載が無い限り、本実施例の構成や処理などは実施例1と同様であるものとする。
実施例1または実施例2では、同一走査ライン上の未処理画素へは、図13(a)の太枠で囲まれているように2画素単位で誤差の総和を算出し、この太枠で囲まれた2画素の位置から図7(a)に示されるような割合で前記2画素単位の誤差の総和が拡散されるように構成していた。
同様に、次走査ライン以降の各ライン上の未処理画素へは、図13(b)の太枠で囲まれているように4画素単位の誤差の総和もしくは平均値を算出し、この太枠で囲まれた4画素の位置から図7(b)に示されるような割合で前記4画素単位の誤差の総和が拡散されるように構成していた。
本実施例においては、処理ライン上の未処理画素に拡散される誤差の総和を算出する対象となる2画素は、X(主走査方向の位置)%2=Y(ライン番号)%2の条件が成り立つ画素位置からの連続した2画素であり、次処理ライン上の未処理画素に拡散される誤差の総和を算出する対象となる4画素は、X(主走査方向の位置)%4=Y(ライン番号)%4の条件が成り立つ画素位置からの連続した4画素であるとする。ここで、記号%は剰余を表わしている。つまり、X%2=Y%2とは、ある画素位置において、Xを2で割った余りと、Yを2で割った余りが等しい、ということを意味している。そして、この条件を満たしている画素位置から連続する2画素を注目画素と同一処理ラインの未処理画素へ拡散する誤差の総和値とする対象となる画素とする。
よって、本実施例では、上記条件により、図14(a)、(b)の太枠で囲まれる2画素、または4画素が誤差の総和を算出する対象画素位置となる。
また、本実施例において、処理ライン上の未処理画素に拡散される誤差の総和を算出する対象となる2画素は、X(主走査方向の位置)%2=R(乱数値)%2の条件が成り立つ画素位置からの連続した2画素であり、次処理ライン上の未処理画素に拡散される誤差の総和を算出する対象となる4画素は、X(主走査方向の位置)%4=R(乱数値)%4の条件が成り立つ画素位置からの連続した4画素であるとすることも可能である。この場合は、ある画素位置(X、Y)において、Yに対応して発生した乱数値RとXのそれぞれを2または4で割った余りが等しい画素位置からの2画素または4画素を同一処理ラインまたは次処理ラインに拡散する誤差の総和値とする対象となる画素とする。
この場合、図15(a)、(b)の太枠で囲まれる2画素、または4画素が誤差の総和を算出する対象画素位置となる。ここで乱数値Rは、処理ラインの主走査方向の位置Xにおいて共通である。
なお、本実施例では、ラインの左端または右端において、誤差の総和、もしくは平均値を算出する対象とする画素数がM画素またはN画素以下になるが、この場合はM画素またはN画素以下の画素数の平均値をとり、他と同様の割合で誤差の拡散を行えばよい。
このように、実施例3では同一走査ライン上の未処理画素に拡散される誤差の総和を算出する対象とする連続するM画素、または、次処理ライン以降の未処理画素に拡散される誤差の総和、平均値を算出する対象とする連続するN画素を条件により変化させることにより、誤差の拡散が適度な不規則性を有するため、2値画像においてより粒状度のよい画像を得ることが出来る。
以上、実施例1から実施例3について説明したが、本発明はこれらの実施形態に限られるものではなく、その要旨を逸脱しない範囲で様々な形態による実施が可能である。例えば、実施例1、実施例2で誤差を拡散する割合として図2、図5、図7、図11に示したマトリクスを用いることができる。また、誤差の総和、または平均値を算出する対象とする画素数をM=2、N=4としたが、本発明で使用する誤差を拡散する割合、あるいは誤差の総和、または平均値を算出する対象とする画素数は、それらの特定の値に限定されるものではない。用途に合わせて適切な値を選択すればよい。
また、本実施例では、2値化処理で発生する濃度誤差値を処理ラインと次処理ラインへ所定の割合で分配し、それぞれ誤差バッファにM画素分、N画素分の誤差を格納しているが、濃度誤差値を処理ラインと次処理ラインに分配せず、発生した濃度誤差値のM画素分の総和、または平均値を誤差バッファに格納するような形式でも可能である。
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用しても良い。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUまたはMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることが出来る。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
従来の誤差拡散処理を示すフローチャートである。 従来の誤差拡散処理において、誤差を拡散する割合を例示する図である。 従来の誤差拡散処理において、発生した誤差列を例示する図である。 実施例1における誤差拡散処理を示すフローチャートである。 実施例1における濃度誤差値を処理ラインと次処理ラインに拡散する割合を例示する図である。 実施例1における処理ライン、次処理ラインへの誤差を格納する方法を例示する図である。 実施例1における格納された処理ラインへの誤差を拡散する割合、格納された次処理ラインへの誤差を拡散する割合を例示する図である。 実施例1における注目画素に対する補正値の算出を説明する図である。 実施例2における誤差拡散処理を示すフローチャートである。 実施例2における処理ライン、次処理ラインへの誤差を格納する方法を例示する図である。 実施例2における格納された処理ラインへの誤差を拡散する割合、格納された次処理ラインへの誤差を拡散する割合を例示する図である。 実施例2における注目画素に対する補正値の算出を説明する図である。 実施例1または実施例2における誤差の総和を算出する画素単位を示す図である。 実施例3において、ある条件での誤差の総和を算出する画素単位を示す図である。 実施例3において、ある条件での誤差の総和を算出する画素単位を示す図である。

Claims (10)

  1. 多値画像データを誤差拡散法を用いて前記多値画像データよりも小さい値の画像データを生成する画像処理装置において、
    画素毎に、補正された画素値と所定の閾値とを比較して、量子化処理を行う比較手段と、
    前記補正された画素値から前記比較手段での量子化処理の結果を減算することにより算出される誤差値を記憶する誤差バッファと、
    を有し、
    前記誤差バッファは、前記注目画素が位置するラインと同一の走査ラインへ拡散するための誤差値をM画素単位で加算した総和値で記憶し、前記注目画素が位置するラインの次の走査ライン以降の各ラインへ拡散するための誤差値をN(M<N)画素単位で加算した総和値で記憶し、
    前記注目画素が位置するラインと同一の走査ライン上の未処理画素に拡散される誤差の総和値を算出する対象となるM画素は、画素の主走査方向の位置をMで割った値の余りと、画素の副走査方向の位置をMで割った値の余りとが等しくなる画素位置からの連続した画素であることを特徴とする画像処理装置。
  2. 前記注目画素が位置するラインと同一の走査ラインの未処理画素へは、前記誤差バッファに記憶された前記M画素単位の誤差値の総和値を所定の第1の比率で配分した誤差を拡散し、前記注目画素が位置するラインの次の走査ライン以降の各ライン上の未処理画素へは、前記誤差バッファに記憶された前記N画素単位の誤差値の総和値を所定の第2の比率で配分した誤差を拡散する誤差拡散手段を有することを特徴とする請求項1に記載の画像処理装置。
  3. 多値画像データを誤差拡散法を用いて前記多値画像データよりも小さい値の画像データを生成する画像処理装置において、
    画素毎に、補正された画素値と所定の閾値とを比較して、量子化処理を行う比較手段と、
    前記補正された画素値から前記比較手段での量子化処理の結果を減算することにより算出される誤差値を記憶する誤差バッファと、
    を有し、
    前記誤差バッファは、前記注目画素が位置するラインと同一の走査ラインへ拡散するための誤差値をM画素単位で加算した総和値で記憶し、前記注目画素が位置するラインの次の走査ライン以降の各ラインへ拡散するための誤差値をN(M<N)画素単位で加算した総和の平均値で記憶し、
    前記注目画素が位置するラインと同一の走査ライン上の未処理画素に拡散される誤差の総和値を算出する対象となるM画素は、画素の主走査方向の位置をMで割った値の余りと、画素の副走査方向の位置をMで割った値の余りとが等しくなる画素位置からの連続した画素であることを特徴とする画像処理装置。
  4. 前記注目画素が位置するラインと同一の走査ラインの未処理画素へは、前記誤差バッファに記憶された前記M画素単位の誤差値の総和値を所定の第1の比率で配分した誤差を拡散し、前記注目画素が位置するラインの次の走査ライン以降の各ライン上の未処理画素へは、前記誤差バッファに記憶された前記N画素単位の誤差値の総和の平均値を所定の第2の比率で配分した誤差を拡散する誤差拡散手段を有することを特徴とする請求項3に記載の画像処理装置。
  5. 前記注目画素が位置するラインの次の走査ライン以降の各ライン上の未処理画素に拡散される誤差の総和値または平均値を算出する対象となるN画素は、画素の主走査方向の位置をNで割った値の余りと、画素の副走査方向の位置をNで割った値の余りとが等しくなる画素位置からの連続した画素であることを特徴とする請求項1または請求項3に記載の画像処理装置。
  6. 多値画像データを誤差拡散法を用いて前記多値画像データよりも小さい値の画像データを生成する画像処理方法において、
    画素毎に、補正された画素値と所定の閾値とを比較して、量子化処理を行う比較工程と、
    前記補正された画素値から前記比較工程での量子化処理の結果を減算することにより算出される誤差値を誤差バッファに記憶させる誤差値記憶工程と、
    を有し、
    前記誤差値記憶工程は、前記注目画素が位置するラインと同一の走査ラインへ拡散するための誤差値はM画素単位で加算した総和値で前記誤差バッファに記憶させ、前記注目画素が位置するラインの次の走査ライン以降の各ラインへ拡散するための誤差値はN(M<N)画素単位で加算した総和値で前記誤差バッファに記憶させ
    前記注目画素が位置するラインと同一の走査ライン上の未処理画素に拡散される誤差の総和値を算出する対象となるM画素は、画素の主走査方向の位置をMで割った値の余りと、画素の副走査方向の位置をMで割った値の余りとが等しくなる画素位置からの連続した画素であることを特徴とする画像処理方法。
  7. 前記注目画素が位置するラインと同一の走査ラインの未処理画素へは、前記誤差バッファに記憶された前記M画素単位の誤差値の総和値を所定の第1の比率で配分した誤差で拡散し、前記注目画素が位置するラインの次の走査ライン以降の各ライン上の未処理画素へは、前記誤差バッファに記憶された前記N画素単位の誤差値の総和値を所定の第2の比率で配分した誤差を拡散する誤差拡散工程を有することを特徴とする請求項に記載の画像処理方法。
  8. 多値画像データを誤差拡散法を用いて前記多値画像データよりも小さい値の画像データを生成する画像処理方法において、
    画素毎に、補正された画素値と所定の閾値とを比較して、量子化処理を行う比較工程と、
    前記補正された画素値から前記比較工程での量子化処理の結果を減算することにより算出される誤差値を誤差バッファに記憶させる誤差値記憶工程と、
    を有し、
    前記誤差値記憶工程は、前記注目画素が位置するラインと同一の走査ラインへ拡散するための誤差値はM画素単位で加算した総和値で誤差バッファに記憶させ、前記注目画素が位置するラインの次の走査ライン以降の各ラインへ拡散するための誤差値はN(M<N)画素単位で加算した総和の平均値で誤差バッファに記憶させ
    前記注目画素が位置するラインと同一の走査ライン上の未処理画素に拡散される誤差の総和値を算出する対象となるM画素は、画素の主走査方向の位置をMで割った値の余りと、画素の副走査方向の位置をMで割った値の余りとが等しくなる画素位置からの連続した画素であることを特徴とする画像処理方法。
  9. 前記注目画素が位置するラインと同一の走査ラインの未処理画素へは、前記誤差バッファに記憶された前記M画素単位の誤差値の総和値を所定の第1の比率で配分した誤差を拡散し、前記注目画素が位置するラインの次の走査ライン以降の各ライン上の未処理画素へは、前記誤差バッファに記憶された前記N画素単位の誤差値の総和の平均値を所定の第2の比率で配分した誤差を拡散する誤差拡散工程を有することを特徴とする請求項に記載の画像処理方法。
  10. 前記注目画素が位置するラインの次の走査ライン以降の各ライン上の未処理画素に拡散される誤差の総和値または平均値を算出する対象となるN画素は、画素の主走査方向の位置をNで割った値の余りと、画素の副走査方向の位置をNで割った値の余りとが等しくなる画素位置からの連続した画素であることを特徴とする請求項または請求項に記載の画像処理方法。
JP2004189912A 2004-06-28 2004-06-28 画像処理装置及び画像処理方法 Expired - Fee Related JP4262148B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004189912A JP4262148B2 (ja) 2004-06-28 2004-06-28 画像処理装置及び画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004189912A JP4262148B2 (ja) 2004-06-28 2004-06-28 画像処理装置及び画像処理方法

Publications (2)

Publication Number Publication Date
JP2006014042A JP2006014042A (ja) 2006-01-12
JP4262148B2 true JP4262148B2 (ja) 2009-05-13

Family

ID=35780714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004189912A Expired - Fee Related JP4262148B2 (ja) 2004-06-28 2004-06-28 画像処理装置及び画像処理方法

Country Status (1)

Country Link
JP (1) JP4262148B2 (ja)

Also Published As

Publication number Publication date
JP2006014042A (ja) 2006-01-12

Similar Documents

Publication Publication Date Title
US5729663A (en) Method and apparatus for gray screening
JP4100782B2 (ja) 誤差拡散値の処理方法
JP4559118B2 (ja) ビットマスク生成システムおよびプリンタドライバーおよび生成されたビットマスクマスクを取り込んだ印刷方法ならびにその使用方法
JP3247737B2 (ja) 画像内画素値量子化方法
US8947735B2 (en) Image processing apparatus and image processing method for performing error diffusion processing for each region of an image
US5926582A (en) Method and system for converting multi-gradated image data into binary image data
JP3119150B2 (ja) 画像処理装置および画像処理方法
US8705131B2 (en) Bit mask generation system
JPH10229496A (ja) 多グレーレベルのハーフトーン画像にグレーレベルを追加する方法及び装置
JP4262148B2 (ja) 画像処理装置及び画像処理方法
JP5199897B2 (ja) 画像処理装置、画像処理装置の制御方法、コンピュータプログラム及びコンピュータ可読記憶媒体
US6628427B1 (en) Method and apparatus for image processing which improves performance of gray scale image transformation
JP4141817B2 (ja) 削減されたバッファでのエラー拡散
JPH0738767A (ja) 画像2値化処理装置
JP3679522B2 (ja) 画像処理方法及びその装置
JPH11155064A (ja) 画像処理方法及び装置
JP3950871B2 (ja) 画像処理方法及びその装置
KR100509487B1 (ko) 메모리 용량을 절감한 소수화소의 위치정보를 이용한이진영상 생성방법 및 장치
JP2007194955A (ja) 画像処理装置
JP5018878B2 (ja) 解像度変換プログラム、解像度変換方法および解像度変換装置
JP2004260700A (ja) 画像処理装置及び方法
JP2006067294A (ja) 画像処理方法及び画像処理装置
JP2007281764A (ja) 色変換テーブルを用いた色変換
JPH11331621A (ja) 画像処理装置及び方法
JP2004096574A (ja) 画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070627

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080722

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080918

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

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

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140220

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees