JP4013855B2 - Image processing apparatus for converting image data in units of multiple pixels - Google Patents

Image processing apparatus for converting image data in units of multiple pixels Download PDF

Info

Publication number
JP4013855B2
JP4013855B2 JP2003206899A JP2003206899A JP4013855B2 JP 4013855 B2 JP4013855 B2 JP 4013855B2 JP 2003206899 A JP2003206899 A JP 2003206899A JP 2003206899 A JP2003206899 A JP 2003206899A JP 4013855 B2 JP4013855 B2 JP 4013855B2
Authority
JP
Japan
Prior art keywords
pixel
unit
dot
value
data
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
JP2003206899A
Other languages
Japanese (ja)
Other versions
JP2005064555A (en
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003206899A priority Critical patent/JP4013855B2/en
Priority to US10/913,298 priority patent/US7414756B2/en
Publication of JP2005064555A publication Critical patent/JP2005064555A/en
Application granted granted Critical
Publication of JP4013855B2 publication Critical patent/JP4013855B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、階調画像データを、ドット形成の有無によって表現されたドットデータに変換する技術に関し、詳しくは、所定数の隣接する画素をユニットにまとめて処理することで画像データを迅速に変換しながら、画質の悪化を回避する技術に関する。
【0002】
【従来の技術】
印刷媒体や液晶画面といった表示媒体上に、ドットを形成することによって画像を表現する画像表示装置は、各種画像機器の出力装置として広く使用されている。かかる画像表示装置は、局所的にはドットを形成するか否かのいずれかの状態しか表現し得ないが、画像の階調値に応じてドットの形成密度を適切に制御することによって、階調が連続的に変化する画像を表現することが可能となっている。
【0003】
これら画像表示装置において画像の階調値に応じて適切な密度でドットが形成されるように、各画素についてのドット形成の有無を判断するための手法としては、誤差拡散法と呼ばれる手法が広く使用されている。誤差拡散法は、着目画素にドットを形成したこと、あるいはドットを形成しなかったことによって生じる階調表現の誤差を、該着目画素周辺の未判断画素に拡散して記憶しておき、未判断画素についてのドット形成の有無を判断するにあたっては、周辺画素から拡散されてきた誤差を解消するようにドット形成の有無を判断する手法である。誤差拡散法を用いれば、このように周辺画素で発生した階調表現の誤差を解消するようにドットの形成有無を判断することができるので、画像の階調値に応じた適切な密度となるように、ドット形成の有無を判断することが可能である。
【0004】
誤差拡散法を用いれば、画像に応じて適切な密度でドットを形成することで高画質な画像を表示することができるものの、一方では、ドット形成の有無を判断する度に階調誤差を周辺画素に拡散しなければならならず、画像を構成する画素数が多くなると処理に時間がかかって迅速に画像を表現することが困難となる。このような問題を解決するために、本願の発明者は、所定数ずつの隣接する画素をユニットにまとめて、ユニット単位で誤差を拡散しながらドット形成の有無を判断する技術を開発済みである(特許文献1)。
【0005】
【特許文献1】
特開2001−185789号公報
【0006】
【発明が解決しようとする課題】
しかし、ドット形成有無の判断をユニット単位で行う場合、それぞれのユニットについては同じような処理が繰り返されることになる。このため、複数のユニットに亘って、ユニット内の同じ位置の画素にドットが形成されて、これが周期的なパターンとして視認されることとなり、画質を悪化させるおそれがある。また、ドット形成の有無をユニット単位で判断した場合に、周期的なパターンの発生が懸念される問題は、誤差拡散法に限らず他の周知な方法を用いた場合にも同様に生じ得る。
【0007】
この発明は、従来技術における上述の課題を解決するためになされたものであり、ドット形成の有無をユニット単位で判断することにより迅速な判断を可能としながら、周期的なパターンの発生を確実に回避して高画質な画像を表示可能な技術の提供を目的とする。
【0008】
【課題を解決するための手段およびその作用・効果】
上述の課題の少なくとも一部を解決するため、本発明の画像処理装置は、次の構成を採用した。すなわち、
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理装置であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換するドットデータ変換手段と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶するドット有無記憶手段と
を備え、
前記ドットデータ変換手段は、
前記ユニットを構成する各画素についての階調値の総和を算出し、該総和値との対応関係に従って、前記変換済みのユニットの中から所定数のユニットを選択する変換済みユニット選択手段と、
前記ドットデータに変換しようとするユニット内で、ドット形成有無を判断するための着目画素を順次設定する着目画素設定手段と、
前記着目画素の画素位置に対して所定位置にある画素でのドット形成有無を、前記選択した所定数のユニットについて検出するドット形成有無検出手段と、
前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、該着目画素についてのドット形成の有無を判断するドット形成判断手段と
を有しており、
前記ドット形成判断手段は、前記着目画素の階調値が大きくなるほどドット形成有りと判断し易くなる手段であり、
前記変換済みユニット選択手段は、前記総和値との対応関係として、第1の所定値よりも小さい総和値に対しては、該第1の所定値よりも大きく且つ第2の所定値よりも小さい総和値に対するよりも、前記着目画素から遠方のユニットを対応付けて記憶している手段であることを要旨とする。
【0009】
また、上記の画像処理装置に対応する本発明の画像処理方法は、
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理方法であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する第1の工程と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶しておく第2の工程と
を備え、
前記第1の工程は、
前記ユニットを構成する各画素についての階調値の総和を算出し、該総和値との対応関係に従って、前記変換済みのユニットの中から所定数のユニットを選択する下位工程(1−a)と、
前記ドットデータに変換しようとするユニット内で、ドット形成有無を判断するための着目画素を順次設定する下位工程(1−b)と、
前記着目画素の画素位置に対して所定位置にある画素でのドット形成有無を、前記選択した所定数のユニットについて検出する下位工程(1−c)と、
前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、該着目画素についてのドット形成の有無を判断する下位工程(1−d)と
を有しており、
前記下位工程(1−d)は、前記着目画素の階調値が大きくなるほどドット形成有りと判断し易くなる工程であり、
前記下位工程(1−a)は、前記総和値との対応関係として、第1の所定値よりも小さい総和値に対しては、該第1の所定値よりも大きく且つ第2の所定値よりも小さい総和値に対するよりも、前記着目画素から遠方のユニットを対応付けて記憶している工程であることを要旨とする。
【0010】
かかる画像処理装置および画像処理方法においては、画素を所定の複数個ずつユニットとしてまとめ、画像データをユニット単位でドットデータに変換する。このとき、既に変換したユニット内でのドットの形成状況を検出し、検出結果を考慮しながらドットの形成有無を判断する。変換済みのユニット内でのドット形成状況は、次のようにして検出する。先ず、変換されたユニットを構成する少なくとも一部の画素について、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶しておく。そして、ドットデータに変換しようとするユニットを構成する各画素についての階調値の総和を算出し、該総和値との対応関係に従って、既に変換済みのユニットの中から所定数のユニットを選択する。ここで、総和値との対応関係としては、第1の所定値よりも小さい総和値に対しては、該第1の所定値よりも大きく且つ第2の所定値よりも小さい総和値に対するよりも、着目画素から遠方のユニットを対応付けた関係が設定されている。また、総和値との対応関係に従って選択するユニットの数は、1個であっても良いし複数であっても良い。更に、選択したユニット内でドット形成の有無を検出する画素位置は、ユニット内で着目画素と同じ画素位置であっても良いし、あるいは、着目画素の画素位置に応じて異なった画素位置とすることも可能である。次いで、変換しようとするユニット内で、ドット形成の有無を判断する着目画素を順次設定し、着目画素の画素位置に対して所定位置にある画素でのドット形成有無を、選択しておいた所定数のユニットについて検出する。
【0011】
こうして、既に変換したユニット内でのドット形成状況を検出し、検出結果を考慮しながらドットの形成有無を判断すれば、画像データをユニット単位でドットデータに変換した場合でも、ユニット内でドットが形成される位置が、複数のユニットに亘って一定のパターンとなってしまうことを回避することができる。従って、周期的なパターンが視認されて画質が悪化することを確実に防止することが可能となる。このとき、ドットがまばらに形成される場合には、複数のユニットに亘って生じる一定パターンの周期が長くなると考えられる。従って、階調値の総和が小さな値となる場合は、着目画素から遠方のユニットまで選択し、これら選択したユニットについてのドット形成状況を検出して、着目画素についてのドット形成有無を判断する際にこれを考慮してやれば、ドットが周期的な一定のパターンで形成されることを効果的に抑制することが可能となる。
【0012】
ここで、第1の所定値よりも小さな総和値に対しては、着目画素から遠方のユニットだけを対応付けておくこととしても良いが、第1の所定値より大きく且つ第2の所定値よりも小さい総和値に対しても対応付けられるような、比較的着目画素に近いユニットも対応付けておいてもよい。こうすれば、長い周期を有するパターンの形成だけでなく、比較的短い周期を有するパターンの形成も効果的に回避することが可能となるので好ましい。
【0013】
かかる画像処理装置において、第1の所定値よりも小さな総和値に対してだけでなく、第2の所定値よりも大きな総和値に対しても、第1の所定値より大きく且つ第2の所定値より小さな総和値に対するよりも、着目画素から遠方のユニットまでを対応付けておくこととしても良い。このとき、第1の所定値より小さな総和値に対しては、第2の所定値より大きな総和値に対するよりも、更に遠方のユニットを対応付けて記憶しておくこととしても良い。
【0014】
ドットがまばらに形成される場合と同様に、ドットが高い密度で形成されてドットが形成されない画素がまばらに発生する場合にも、複数のユニットに亘って生じるパターンの周期が長くなると考えられる。従って、階調値の総和が大きな値となる場合にも、小さな値となる場合と同様に、着目画素から遠方のユニットまで選択し、これら選択したユニットについてのドット形成状況を検出して、着目画素についてのドット形成有無を判断する際にこれを考慮してやれば、ドットが周期的な一定のパターンで形成されることを効果的に抑制することが可能となる。もっとも、ドットがまばらに形成される場合と、高い密度で形成される場合とでは、次のような違いがあると考えられる。
【0015】
高い密度でドットを形成する場合、隣接するドット間での相互作用によって、ドットが大きめに形成されることがある。また、印刷媒体上にインク滴を吐出してドットを形成する場合は、インクの滲みの影響でドットが大きめに形成されるので、高い密度でドットを形成すると隣のドット同士が一部で重なってしまうことがある。このような場合は、ドットの形成されない画素が一定のパターンでまばらに発生したとしても、周囲のドットが大きめに形成されているので、周期的なパターンは目立ち難くなっている。このことから、階調値が大きく、ドットが高い密度で形成される領域では、階調値が小さくドットがまばらに形成される領域ほどには、遠方のユニットでのドット形成有無まで考慮せずとも、画質が悪化することはないと考えられる。従って、階調値の総和値が大きな値となる場合にも、階調値の総和値が小さい場合と同様に遠方のユニットまで選択することとして、小さな総和値に対しては大きな総和値に対するよりも、更に遠方のユニットまで選択することとすれば、画質の悪化を効果的に抑制することが可能となる。
【0016】
また、こうした画像処理装置においては、階調値の総和値が小さい場合に、着目画素に対して所定位置の画素にドットが検出された場合には、着目画素についてドットが形成され難くすることとしても良い。ここで、所定位置の画素にドットが検出された場合とは、所定位置の複数の画素のいずれかにドットが検出された場合とすることもできるし、あるいは複数の画素の全てにドットが検出された場合とすることもできる。
【0017】
階調値の総和値が小さい領域では、ドットがまばらに形成される。従って、このように所定位置の画素にドットが形成されている場合は着目画素にドットが形成され難くしておけば、複数のユニットに亘って周期的なパターンでドットが形成されることを抑制することができる。その結果、画像データをユニット単位でドットデータに変換した場合でも、周期的なパターンが視認されて画質が悪化することを回避することが可能となる。
【0018】
特に、ドットがまばらに形成される領域では複数の画素のすべての画素においてドットが形成されることは稀であると考えられる。従って、所定画素のいずれかにドットが形成されていた場合に、着目画素でのドットの形成を抑制することとしておけば、周期的なパターンの発生を効果的に抑制することが可能となる。また、ドットがある程度の密度で形成される領域では、複数の画素のいずれかにはドットが形成されている可能性が高いと考えられる。従って、所定画素に全てドットが形成されている場合に、着目画素でのドットの形成を抑制することとしておけば、周期的なパターンでドットが形成されることを確実に回避することが可能となるので好ましい。
【0019】
更に、こうした画像処理装置においては、階調値の総和値が小さい領域では、所定位置の画素にドットが形成されている場合には、着目画素にドットを形成しないとすることとしてもよい。
【0020】
こうすれば、画像データをユニット単位でドットデータに変換する場合でも、一定のパターンでドットが形成されることを簡便に回避することが可能となるので好適である。
【0021】
また、こうした画像処理装置においては、階調値の総和値が大きい場合に、着目画素に対して所定位置の画素にドットが検出されない場合には、着目画素についてドットが形成され易くすることとしても良い。ここで、所定位置の画素にドットが検出されない場合とは、所定位置の複数の画素のいずれかにドットが検出されない場合とすることもできるし、あるいは複数の画素のいずれにもドットが検出されない場合とすることもできる。
【0022】
階調値の総和値が大きい領域では、ドットの形成されない画素がまばらに発生する。すなわち、画像データをユニット単位でドットデータに変換した場合、ドットの形成されない画素が一定のパターンで発生して画質を悪化させることがある。従って、所定位置の画素にドットが形成されていない場合は着目画素にドットを形成され易くしておけば、複数のユニットに亘ってドットが形成されない画素が周期的なパターンで発生することを抑制することができる。
【0023】
特に、ドットが形成されない画素がほとんど発生しない領域では、所定位置にある画素の全てでドットが形成されていないことは稀であると考えられる。従って、所定位置の画素のいずれかでドットが形成されていない場合に、着目画素でドットが形成され易くなるようにしておけば、周期的なパターンの発生を効果的に抑制することが可能となる。また、ドットの形成されない画素がある程度の密度で発生する領域では、複数の画素のいずれかはドットが形成されない可能性が高いと考えられる。従って、所定位置の全画素でドットが形成されていない場合に、着目画素でドットが形成され易くなるようにしておけば、周期的なパターンの発生を確実に回避することが可能となるので好ましい。
【0024】
更に、こうした画像処理装置においては、階調値の総和値が大きい領域では、所定位置の画素にドットが形成されていない場合には、着目画素にドットを形成することとしてもよい。
【0025】
こうすれば、画像データをユニット単位でドットデータに変換する場合でも、ドットが形成されない画素が一定のパターンで発生することを簡便に回避することが可能となるので好適である。
【0026】
上述した画像処理装置においては、ユニットを構成する各画素についてのドット形成有無を、いわゆる誤差拡散法を用いて判断することとして、かかる判断に際して参照される誤差拡散法の閾値の値を、変換済みのユニット内でのドット形成有無に応じて変更することとしても良い。
【0027】
誤差拡散法の閾値の値を変更すれば、変換済みのユニット内の所定画素位置におけるドット形成有無の検出結果を、着目画素でのドット形成有無の判断に簡便に反映させることができる。また、誤差拡散法は、着目画素で発生した階調誤差を周辺の未判断画素に拡散し、これら周辺の画素でのドット形成有無の判断に反映させることで、該階調誤差を速やかに解消させる機能を有している。このことから、着目画素についてのドット形成の有無を、誤差拡散法を用いて判断すれば、変換済みのユニット内でのドット形成有無の検出結果を反映させることによって着目画素に大きな階調誤差が生じた場合でも、これを速やかに解消して、より高画質の画像を表現することが可能となるので好ましい。
【0028】
こうした、誤差拡散法を用いてドット形成の有無を判断する画像処理装置においては、前記着目画素に対して前記所定位置にある画素でのドットの形成が検出された場合は、該着目画素にはドットを形成しないと判断することとしてもよい。
【0029】
所定位置にある画素でのドットの形成が検出された場合には、着目画素にはドットを形成しないと判断することとすれば、画像データをユニット単位でドットデータに変換する場合でも、一定のパターンでドットが形成されることを簡便に回避することが可能となるので好適である。また、誤差拡散法を用いてドット形成の有無を判断しているので、ドットを形成しないと判断することで着目画素に大きな階調誤差が生じた場合でも、この誤差を速やかに解消することが可能であり、画質の悪化を招くおそれがない。
【0030】
また、上述した画像処理装置は、印刷媒体上にドットを形成して画像を印刷する印刷装置に好適に適用することができる。すなわち、本発明の画像処理装置は、ユニット単位で変換することにより、画像データを迅速にドットデータに変換することができる。しかも、変換済みのユニットにおける所定の画素位置でのドット形成状況を検出することで、ドットが一定のパターンで形成されることを回避することができる。従って、こうした画像処理装置を印刷装置に適用すれば、画像データを迅速にドットデータに変換することで、印刷に要する時間を短縮しながら、画質の悪化を回避することが可能となるので好ましい。
【0031】
また、本発明は、上述した画像処理方法を実現するプログラムをコンピュータに読み込ませることにより、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいはプログラムを記録した記録媒体としての態様も含んでいる。すなわち、上述の画像処理方法に対応する本発明のプログラムは、
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する方法を、コンピュータを用いて実現するためのプログラムであって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する第1の機能と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶しておく第2の機能と
を実現するとともに、
前記第1の機能は、更に、
前記ユニットを構成する各画素についての階調値の総和を算出し、該総和値との対応関係に従って、前記変換済みのユニットの中から所定数のユニットを選択する機能(1−a)と、
前記ドットデータに変換しようとするユニット内で、ドット形成有無を判断するための着目画素を順次設定する機能(1−b)と、
前記着目画素の画素位置に対して所定位置にある画素でのドット形成有無を、前記選択した所定数のユニットについて検出する機能(1−c)と、
前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、該着目画素についてのドット形成の有無を判断する機能(1−d)と
を有しており、
前記機能(1−d)は、前記着目画素の階調値が大きくなるほどドット形成有りと判断し易くなる機能であり、
前記機能(1−a)は、前記総和値との対応関係として、第1の所定値よりも小さい総和値に対しては、該第1の所定値よりも大きく且つ第2の所定値よりも小さい総和値に対するよりも、前記着目画素から遠方のユニットを対応付けて記憶している機能であることを要旨とする。
【0032】
また、上述の画像処理方法に対応する本発明の記録媒体は、
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する方法を実現するためのプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する第1の機能と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶しておく第2の機能と
を実現し、
前記第1の機能は、更に、
前記ユニットを構成する各画素についての階調値の総和を算出し、該総和値との対応関係に従って、前記変換済みのユニットの中から所定数のユニットを選択する機能(1−a)と、
前記ドットデータに変換しようとするユニット内で、ドット形成有無を判断するための着目画素を順次設定する機能(1−b)と、
前記着目画素の画素位置に対して所定位置にある画素でのドット形成有無を、前記選択した所定数のユニットについて検出する機能(1−c)と、
前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、該着目画素についてのドット形成の有無を判断する機能(1−d)と
をコンピュータを用いて実現するとともに、
前記機能(1−d)は、前記着目画素の階調値が大きくなるほどドット形成有りと判断し易くなる機能であり、
前記機能(1−a)は、前記総和値との対応関係として、第1の所定値よりも小さい総和値に対しては、該第1の所定値よりも大きく且つ第2の所定値よりも小さい総和値に対するよりも、前記着目画素から遠方のユニットを対応付けて記憶している機能であることを要旨とする。
【0033】
かかるプログラム、あるいは記録媒体に記憶されているプログラムをコンピュータに読み込ませ、上述の各種機能を該コンピュータに実行させれば、画像データをユニット単位でドットデータに変換することによって迅速に変換しつつ、変換済みのユニットにおけるドットの形成状況を検出することによって、ドットが一定のパターンで形成されることを回避することができるので、画質の悪化を招くおそれがない。
【0034】
【発明の実施の形態】
本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って以下に説明する。
A.実施の形態:
B.装置構成:
C.画像データ変換処理の概要:
D.第1実施例:
D−1.ユニット単位で行う階調数変換処理:
D−2.ユニット内多値化処理:
D−3.第1実施例のユニット内多値化処理:
D−4.変形例:
E.第2実施例:
E−1.第2実施例のユニット内多値化処理:
E−2.第2実施例の変形例:
【0035】
A.発明の概要:
実施例の詳細な説明を開始する前に、理解の便宜から、本発明の概要について簡単に説明しておく。図1は、印刷システムを例にとって、本発明の概要を示した説明図である。図1に示した印刷システムは、画像処理装置としてのコンピュータ10と、カラープリンタ20等から構成されている。コンピュータ10は、デジタルカメラやカラースキャナなどの画像機器からRGB各色の階調値によって表現されたカラー画像データを受け取ると、該画像データを、カラープリンタ20で印刷可能な各色ドットの形成有無により表現された印刷データに変換する。かかる画像データの変換は、プリンタドライバ12と呼ばれる専用のプログラムを用いて行われる。尚、RGB各色によるカラー画像データは、各種アプリケーションプログラムを用いてコンピュータ10で作成することもできる。
【0036】
プリンタドライバ12は、解像度変換モジュール,色変換モジュール,階調数変換モジュール14,インターレースモジュールといった複数のモジュールから構成されている。これら各モジュールで行われる処理については後述する。このうち、階調数変換モジュール14では、画像データをドット形成の有無により表現されたデータに変換する処理を行っている。また、本実施例の階調数変換モジュールでは、処理を迅速化するため、次のようにユニット単位の処理を行っている。すなわち、隣接する複数個の画素をまとめてユニットを生成し、各画素についてのドット形成有無の判断をユニット単位でまとめて行う。ドット形成有無の判断をユニット単位で行う方法については後述する。
【0037】
図1中で、階調数変換モジュール14を表す枠の下方に、矢印で示した概念図は、階調数変換モジュール14において画像データがドットデータに変換されている様子を示したものである。概念図中で破線で示した小さな正方形は画素を模式的に示したものである。これら4つの画素で1つのユニットを構成している。図中で細かい斜線を付して示したユニットは、処理中のユニット、すなわち画像データをドットデータに変換中のユニットを示したものである。また、粗い斜線を付して示した領域は、ドット形成有無が判断されてドットデータに変換された領域を示している。ドット形成有無の判断をユニット単位で行う場合、各ユニットについては同様な処理が行われる。このため、特に画像データの階調値があまり変化しない領域を処理した場合などには、複数のユニットに亘って一定のパターンでドットが形成されるおそれがある。一定のパターンでドットが形成された領域が発生すると、これが視認されて画質の悪化を招くことが懸念される。
【0038】
図1中の概念図では、ドットが一定のパターンで形成される一例として、連続するユニット内の同じ画素位置にドットが形成される場合を示している。図示されているように、処理中のユニット(細かい斜線を付したユニット)の左側には、左上隅の画素にドットが形成されたユニットが2つ連続している。仮に、処理中のユニットでも左上隅の画素にドットが形成されると、連続して3つのユニットで同じ位置の画素にドットが形成されることになり、これがパターンとして視認されて画質が悪化するおそれがある。もちろん、ドットが一定のパターンで形成される例としては、連続するユニット内の同じ画素位置にドットが形成される場合に限られず、複数のユニットを周期として一定のパターンでドットが形成される場合も起こり得る。
【0039】
この様な問題の発生を回避するために、図1に示した印刷システムにおける階調数変換モジュール14では、既に処理したユニットについてドットを形成すると判断した画素を、階調数変換結果記憶部に記憶しておく。ユニット単位でドット形成有無を判断するに際しては、階調数変換結果記憶部から判断結果を読み出して、ドットが一定のパターンで形成されることを回避しながら判断していく。例えば、図1中の概念図に示した例では、連続したユニットで同じ画素位置にドットが形成されているから、同じ位置の画素に連続してドットが形成されないようにしながら、処理ユニットについてのドット形成有無を判断していく。このように、視認され易いパターンでドットが形成されることを回避しながらドット形成の有無を判断する。こうすれば、ユニット単位でドット形成の有無を判断することによって迅速な処理を行いながら、画質を悪化させることなく高画質な画像を印刷することが可能となる。
【0040】
また、例えば数ユニットに1つの割合で形成されるというように、ドットがまばらに形成される領域では、ドットが一定のパターンで形成される周期も長くなると予想される。同様に、ほとんどの画素にドットが形成される領域でも、ドットの形成されない画素が複数のユニットに亘って一定のパターンで発生することが考えられる。従って、これらの領域では、ドットの形成状況をより遠くのユニットについてまで考慮することとすれば、画質の悪化をより一層効果的に抑制することが可能となる。以下では、このような画像処理について、実施例に基づき詳細に説明する。
【0041】
B.装置構成:
図2は、本実施例の画像処理装置としてのコンピュータ100の構成を示す説明図である。コンピュータ100は、CPU102を中心に、ROM104やRAM106などを、バス116で互いに接続して構成された周知のコンピュータである。
【0042】
コンピュータ100には、フレキシブルディスク124やコンパクトディスク126のデータを読み込むためのディスクコントローラDDC109や、周辺機器とデータの授受を行うための周辺機器インターフェースPIF108、CRT114を駆動するためのビデオインターフェースVIF112等が接続されている。PIF108には、後述するカラープリンタ200や、ハードディスク118等が接続されている。また、デジタルカメラ120やカラースキャナ122等をPIF108に接続すれば、デジタルカメラ120やカラースキャナ122で取り込んだ画像を印刷することも可能である。また、ネットワークインターフェースカードNIC110を装着すれば、コンピュータ100を通信回線300に接続して、通信回線に接続された記憶装置310に記憶されているデータを取得することもできる。
【0043】
図3は、第1実施例のカラープリンタ200の概略構成を示す説明図である。カラープリンタ200はシアン,マゼンタ,イエロ,ブラックの4色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら4色のインクに加えて、染料濃度の低いシアン(淡シアン)インクと染料濃度の低いマゼンタ(淡マゼンタ)インクとを含めた合計6色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク,マゼンタインク,イエロインク,ブラックインク,淡シアンインク,淡マゼンタインクのそれぞれを、Cインク,Mインク,Yインク,Kインク,LCインク,LMインクと略称することがあるものとする。
【0044】
カラープリンタ200は、図示するように、キャリッジ240に搭載された印字ヘッド241を駆動してインクの吐出およびドットの形成を行う機構と、このキャリッジ240をキャリッジモータ230によってプラテン236の軸方向に往復動させる機構と、紙送りモータ235によって印刷用紙Pを搬送する機構と、ドットの形成やキャリッジ240の移動および印刷用紙の搬送を制御する制御回路260とから構成されている。
【0045】
キャリッジ240には、Kインクを収納するインクカートリッジ242と、Cインク,Mインク,Yインクの各種インクを収納するインクカートリッジ243とが装着されている。キャリッジ240にインクカートリッジ242,243を装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド241の下面に設けられた各色毎のインク吐出用ヘッド244ないし247に供給される。各色毎のインク吐出用ヘッド244ないし247には、48個のノズルNz が一定のノズルピッチkで配列されたノズル列が1組ずつ設けられている。
【0046】
制御回路260は、CPU261と、ROM262、RAM263等から構成されている。制御回路260は、キャリッジモータ230と紙送りモータ235とを適切に駆動することを通じて、キャリッジ240の主走査と副走査とを制御するとともに、コンピュータ100から供給される印刷データに基づいて、各ノズルから適切なタイミングでインク滴を吐出する。こうして、制御回路260の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ200はカラー画像を印刷することができる。
【0047】
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡(バブル)を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
【0048】
更には、吐出するインク滴の大きさを制御したり、あるいは一度に複数のインク滴を吐出して、吐出するインク滴の数を制御することにより、印刷用紙上に形成されるインクドットの大きさを制御可能な、いわゆるバリアブルドットプリンタを使用することもできる。
【0049】
以上のようなハードウェア構成を有するカラープリンタ200は、キャリッジモータ230を駆動することによって、各色のインク吐出用ヘッド244ないし247を印刷用紙Pに対して主走査方向に移動させ、また紙送りモータ235を駆動することによって、印刷用紙Pを副走査方向に移動させる。制御回路260は、印刷データに従って、キャリッジ240の主走査および副走査を繰り返しながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ200は印刷用紙上にカラー画像を印刷している。
【0050】
C.画像データ変換処理の概要:
図4は、本実施例の画像処理装置としてのコンピュータ100が、受け取った画像データに所定の画像処理を加えることによって、画像データを印刷データに変換する処理の流れを示すフローチャートである。かかる処理は、コンピュータ100のオペレーティングシステムがプリンタドライバ12を起動することによって開始される。以下、図4に従って、本実施例の画像データ変換処理について簡単に説明する。
【0051】
プリンタドライバ12は、画像データ変換処理を開始すると、先ず初めに、変換すべきRGBカラー画像データの読み込みを開始する(ステップS100)。次いで、取り込んだ画像データの解像度を、カラープリンタ200が印刷するための解像度に変換する(ステップS102)。カラー画像データの解像度が印刷解像度よりも低い場合は、線形補間を行うことで隣接する画像データ間に新たなデータを生成し、逆に印刷解像度よりも高い場合は一定の割合でデータを間引くことによって、画像データの解像度を印刷解像度に変換する。
【0052】
こうして解像度を変換すると、カラー画像データの色変換処理を行う(ステップS104)。色変換処理とは、R,G,Bの階調値の組み合わせによって表現されているカラー画像データを、C,M,Y,Kなどのカラープリンタ200で使用する各色の階調値の組み合わせによって表現された画像データに変換する処理である。色変換処理は、色変換テーブルと呼ばれる3次元の数表を参照することで迅速に行うことができる。
【0053】
プリンタドライバ12は、色変換処理に続いて階調数変換処理を開始する(ステップS106)。階調数変換処理とは次のような処理である。色変換処理によって、RGB画像データはC,M,Y,K各色の階調データに変換される。これら各色の階調データは、階調値0から255の256階調を有するデータである。これに対し、本実施例のカラープリンタ200は、「ドットを形成する」,「ドットを形成しない」のいずれかの状態しか採り得ない。そこで、256階調を有する各色の階調データを、カラープリンタ200が表現可能な2階調で表現された画像データに変換する必要がある。このような階調数の変換を行う処理が階調数変換処理である。後述するように、本実施例のプリンタドライバ12は、画素を所定数ずつユニットにまとめ、ユニット単位で階調数変換処理を行うことによって迅速な処理を可能としている。また、処理済みのユニットについては、ドットを形成すると判断した画素を記憶しておき、このデータを反映させながら階調数変換を行う。こうすることで、ユニット単位で階調数変換処理を行った場合に懸念される、ドットが一定のパターンで形成される現象が発生することを確実に回避することが可能となっている。階調数変換処理については、後ほど詳細に説明する。
【0054】
こうして階調数変換処理を終了したら、プリンタドライバはインターレース処理を開始する(ステップS108)。インターレース処理とは、ドットの形成有無を表す形式に変換された画像データ(ドットデータ)を、ドットの形成順序を考慮しながらカラープリンタ200に転送すべき順序に並べ替える処理である。プリンタドライバ12は、インターレース処理を行って最終的に得られた画像データを、印刷データとしてカラープリンタ200に出力する(ステップS110)。カラープリンタ200は、印刷データに従って、各色のインクドットを印刷媒体上に形成する。その結果、画像データに対応したカラー画像が印刷媒体上に印刷される。
【0055】
D.第1実施例:
以下、図4に示した画像データ変換処理の中で行われる第1実施例の階調数変換処理について説明する。前述したように、本実施例の階調数変換処理では、複数の画素をユニットにまとめて、階調数変換処理をユニット単位で行っている。そこで、第1実施例の階調数変換処理について説明するための準備として、先ず、階調数変換処理をユニット単位で行う方法について説明し、その後、第1実施例の階調数変換処理において、処理済みのユニットでの判断結果を、ドット形成有無の判断に反映させる処理について説明する。
【0056】
D−1.ユニット単位で行う階調数変換処理:
図5は、ユニット単位で行う階調数変換処理の流れを示すフローチャートである。この処理は、コンピュータ100のCPU102によって行われる。尚、本実施例のカラープリンタ200は、前述したようにC,M,Y,Kの4色のインクドットを形成可能なプリンタであり、図5に示す処理も各色毎に行っている。しかし、以下では説明が煩雑となることを避けるために、色を特定せずに説明することとして、特段の明示がない限り、色を特定せずに説明した場合は、各色について同様な処理が行われることを意味するものとする。
【0057】
ユニット単位の階調数変換処理を開始すると、先ず初めに、処理するユニットの位置を設定する(ステップS200)。ユニット単位で行う階調数変換処理では、所定の複数個の隣接する画素をユニットとしてまとめ、各画素にドットを形成するか否かの判断をユニット単位で行う。そこで、ユニット単位の階調数変換処理を開始すると、先ず初めに、画像中でドットの形成有無を判断しようとするユニット(処理ユニット)の位置を設定する処理を行う。
【0058】
図6は、隣接する所定の複数個の画素をまとめて、処理ユニットの位置を設定している様子を概念的に示した説明図である。図6中に、複数表示されている小さな正方形は、画素を模式的に表示したものである。図示されているように、画像は格子状に配列された複数の画素によって構成されている。図6(a)に示した例では、縦横2列ずつに並んだ隣接する4つの画素をまとめて処理ユニットを設定している。図6(a)中で、4つの画素を囲む太い破線は、これら画素が処理ユニットとして設定されていることを模式的に示したものである。説明の便宜上、ユニットを構成する4つの画素の中で、左上の画素を「Pa 」、右上の画素を「Pb 」、左下の画素を「Pc 」、右下の画素を「Pd 」と呼んで区別するものとする。尚、以下では、ユニットは縦横2列に並んだ4つの画素で構成されているものとして説明するが、もちろん、このような構成のユニットに限定されるものではない。例えば、図6(b)に示すような隣接する4つの画素をまとめることによって処理ユニットを設定しても良い。また、処理ユニットとしてまとめる画素の個数も4つに限られるものではなく、例えば、図6(c)、図6(d)に示すように2つの画素を処理ユニットとして設定しても構わない。
【0059】
処理ユニットを設定したら、続いてユニット内の各画素についての画像データおよび拡散誤差の読み込みを行う(図5のステップS202)。ここで読み込む画像データは、前述した色変換処理(図4のステップS104)によって色変換して得られたC,M,Y,K各色の階調データである。また、拡散誤差とは、階調数を変換することにより生じた階調誤差が、周辺のユニットから処理ユニットの各画素に拡散されてきた誤差である。画像データがC,M,Y,Kの各色毎の階調データであることから、階調誤差はこれら各色毎に発生し、従って拡散誤差もこれら各色毎の階調データとなっている。階調数を変換することに伴って階調誤差が発生し、発生した誤差が拡散誤差として周辺の画素に拡散される様子については後述する。
【0060】
ここでは、図6(a)に示すように、処理ユニットは画素Pa 、画素Pb 、画素Pc 、画素Pd の4つの画素で構成されているとしているから、図5のステップS202の処理では、それぞれの画素について、画像データDTa 、DTb 、DTc 、DTd および拡散誤差EDa 、EDb 、EDc 、EDd が読み込まれることになる。処理ユニットについて読み込んだこれらのデータは、コンピュータ100のRAM106に記憶される。
【0061】
こうして各画素の画像データおよび拡散誤差を読み込んだら、処理ユニットを構成する各画素について、ドット形成の有無を判断する処理を開始する(ステップS204)。ここでは、図6(a)に示したように処理ユニットは4つの画素で構成されているとしているから、ステップS204の処理ではこれら4つの画素について所定の順序でドット形成の有無を判断していく。尚、本明細書中では、このようにユニット内の各画素についてドット形成の有無を判断する処理を、「ユニット内多値化処理」と呼ぶことがあるものとする。ユニット内多値化処理の詳細な内容については後述する。
【0062】
処理ユニットを構成する各画素についてのドット形成有無の判断を終了したら、判断に伴って処理ユニット内で生じた階調誤差を、周辺のユニットに拡散する処理を行う(ステップS206)。処理ユニット内で生じた階調誤差とは、処理ユニット全体で表現すべき画像データの階調値と、該ユニット内の各画素にドットを形成することによって実際に表現された階調値との偏差を表す誤差である。処理ユニットで生じる階調誤差を算出する方法については、ユニット内多値化処理の説明の中で説明する。ステップS206においては、この偏差を示す階調値を、処理ユニットで生じた階調誤差として周辺の未処理のユニットに拡散させる処理を行う。
【0063】
図7は、処理ユニットで生じた階調誤差を、周辺の未処理のユニットに拡散させる様子を概念的に示した説明図である。図7中に示した複数の小さな正方形は、それぞれ画素を模式的に表示したものである。また、太い破線で示した大きな正方形は処理ユニットを示しており、細い破線で示した大きな正方形は、処理ユニットに隣接する未処理のユニットを示している。処理ユニットで生じた階調誤差は、周辺の未処理ユニットを構成する画素に所定の割合で拡散する。図7中で処理ユニットから周辺の6つの画素に伸びる黒抜きの矢印は、処理ユニットで生じた階調誤差を、これら6つの画素に所定の割合で拡散していることを模式的に示している。
【0064】
図8は、処理ユニットで生じた階調誤差を、処理ユニット周辺の未処理のユニットを構成する画素に拡散させる割合が設定されている様子を例示したものである。図8中で、太い実線で示した大きな正方形は処理ユニットを表したものであり、処理ユニットに隣接して細い破線で示した大きな正方形は、処理ユニット周辺の未処理のユニットを示したものである。これら未処理のユニットの中に細い実線で示した複数の小さな正方形は、処理ユニットからの誤差が拡散される画素を表示したものである。
【0065】
図8(a)に示した例では、処理ユニットの右側にある2つの画素には、処理ユニットで生じた階調誤差が1/8の割合でそれぞれ拡散され、処理ユニットの下側にある2つの画素にも同様に、階調誤差が1/8の割合でそれぞれ拡散される。また、処理ユニットの左下の画素あるいは右下の画素には、階調誤差が1/4の割合でそれぞれ拡散される。このような割合で階調誤差を拡散させれば、処理ユニットの周辺のユニットに均等に、それぞれ階調誤差の1/4の割合で拡散されることになる。また、図8(b)に示した例では、処理ユニットで生じた階調誤差が、処理ユニット周辺のユニットを構成するすべての画素に、同じ割合で拡散される。もちろん、同じユニットに拡散する誤差をそのユニットの1つの画素にまとめて拡散するようにしても良い。
【0066】
図5のステップS206においては、以上のようにして、処理ユニットで生じた階調誤差を周辺のユニットに拡散させる。処理ユニットについて、上述したすべての処理を終了したら、画像を構成する全てのユニットについて処理を終了したか否かを判断し(ステップS208)、未処理のユニットが残っていればステップS200に戻って続く一連の処理を繰り返す。こうして、すべてのユニットについての処理を完了したら、ユニット単位の階調数変換処理を終了する。
【0067】
以上に説明したユニット単位で階調数変換処理を行えば、画素毎に処理した場合に比べて、以下のような利点を得ることができる。すなわち、階調数変換処理を画素毎に行う場合は、1つの画素についてのドット形成有無を判断する度に、その画素に対応付けて記憶されている拡散誤差を読み出さなければならず、また、ドット形成有無の判断によって生じた階調誤差を周辺の未判断画素に誤差を拡散しなければならない。このため、階調数変換処理を画素毎に行うと、処理時間が長くなってしまう傾向にある。これに対して、階調数変換処理をユニット単位で行った場合は、ユニット単位で画像データを読み出し、階調誤差を拡散させた後、拡散誤差をユニット単位でメモリに書き込むことができる。こうしてデータの読み出しおよび書き込みをユニット単位でまとめて行えば、処理に要する時間を短縮化することが可能である。
【0068】
D−2.ユニット内多値化処理:
上述したユニット単位の階調数変換処理で行われるユニット内多値化処理(図5のステップS204)について説明する。図9は、ユニット内多値化処理の流れを示したフローチャートである。以下、フローチャートに従って説明する。
【0069】
ユニット内多値化処理を開始すると、先ず初めに、処理ユニットを構成する画素の中から、ドット形成の有無を判断する画素(着目画素)を1つ設定する(ステップS300)。前述したようにユニットは複数の画素から構成されているので、これら複数の画素について所定の順序で1画素ずつドット形成の有無を判断することとして、着目画素を1つ選択する。ここでは、図6(a)に示したユニットを構成する4つの画素を、左上にある画素から右下の画素に向かって画素Pa 、画素Pb 、画素Pc 、画素Pd の順番にドット形成有無を判断することとして、ステップS300では、先ず初めに、左上隅にある画素Pa を着目画素として設定する。
【0070】
次いで、設定した着目画素(ここでは、画素Pa )についての補正データCx を算出する(ステップS302)。補正データCx は、着目画素の画像データと着目画素に拡散されて記憶されている拡散誤差とを加算することによって求めることができる。処理ユニットを構成する各画素についての画像データおよび拡散誤差は、図5に示した階調数変換処理中のステップS202において既に読み込まれているので、ユニット内多値化処理の数轍鮒S302においては、これらのデータの中から着目画素の画像データと拡散誤差とを加算して補正データCx を算出する。
【0071】
着目画素Pa の補正データCx を算出したら、得られた補正データCx と所定の閾値thとの大小関係を判断する(ステップS304)。そして、補正データCx の方が大きければ着目画素(ここでは画素Pa )にドットを形成すると判断し(ステップS3306)、そうでなければ、着目画素にはドットを形成しないと判断する(ステップS308)。判断の結果は、各画素についての判断結果を示す変数に蓄えられる。
【0072】
こうして着目画素についてのドット形成有無を判断したら、判断に伴って着目画素に生じた階調誤差を算出する(ステップS310)。階調誤差は、ドットを形成したこと、あるいはドットを形成しなかったことによって着目画素に表現される階調値(以下では、この階調値を結果値と呼ぶ)を、着目画素の補正データCx から減算することによって算出することができる。
【0073】
着目画素で生じた階調誤差を算出したら、処理ユニット内の全画素の処理を終了したか否かを判断し(ステップS312)、未処理の画素が残っている場合は(ステップS312:no)、これら未処理の画素中で着目画素周辺にある画素に誤差を拡散させる処理を行う(ステップS314)。この処理について、図10を参照しながら説明する。
【0074】
図10は、処理ユニット内の画素から着目画素を1つずつ選択してドット形成の有無を判断することにより、ドット形成の有無をユニット単位で判断している様子を模式的に示した説明図である。図中の4つの正方形は、処理ユニットを構成する画素Pa 、画素Pb 、画素Pc 、画素Pd をそれぞれ示している。また、画素Pa を示す正方形の中に示したDTa およびEDa は、画素Pa に対応付けて、画像データDTa と拡散誤差EDa とがRAM106に読み込まれていることを概念的に示したものである。同様に、画素Pb には画像データDTb と拡散誤差EDb とが、画素Pc には画像データDTc と拡散誤差EDc とが、画素Pd には画像データDTd と拡散誤差EDd とが対応付けられて、それぞれRAM106に記憶されている。
【0075】
前述したように、着目画素は、先ず初めはこれら4つの画素の中の画素Pa に設定されている。画素Pa についての画像データと拡散誤差とを読み出して補正データCx を算出し、閾値thと比較することによって画素Pa についてのドット形成の有無を判断する。画素Pa についてドット形成の有無を判断した時点では、図10(a)に示すように、同じユニット内には画素Pb と画素Pc と画素Pd の3つの画素が未判断画素として残っている。そこで、画素Pa で生じた階調誤差を、これら3つの画素に1/3ずつ均等に分配して、これら誤差を、各画素毎に記憶されている拡散誤差に加算する処理を行う。例えば画素Pb には、図10(a)に示すように、既に拡散誤差EDb が対応付けて記憶されている。画素Pa で生じた階調誤差は、その1/3の階調値が画素Pb に分配されて、拡散誤差EDb に加算される。その結果、画素Pb に対応づけて記憶されていた拡散誤差EDb は、画素Pa からの誤差が加算された新たな拡散誤差EDb に更新される。
【0076】
他の画素Pc および画素Pd についても同様な処理を行う。簡単に説明すると、画素Pa からの誤差が画素Pc に拡散されると、画素Pc に記憶されていた拡散誤差EDc と画素Pa からの誤差とが加算され、新たな拡散誤差EDc として画素Pc に対応付けて記憶される。また、画素Pd についても同様に、画素Pd に記憶されていた拡散誤差EDd と画素Pa からの誤差とが加算され、新たな拡散誤差EDd として画素Pd に対応付けて記憶される。図10(a)中で画素Pa から他の3つ画素に向かって表示されている白抜きの矢印は、画素Pa で生じた誤差がこれら3つの画素に拡散されることを模式的に示したものである。尚、階調誤差は、必ずしも周辺の未判断画素に均等に分配する必要はなく、各画素に所定の割合で分配することも可能である。
【0077】
以上のようにして画素Pa で階調誤差をユニット内の周辺画素に拡散したら、図9のステップS300に戻って、新たな着目画素を設定する処理を行う。処理ユニット中の画素Pa については、既にドット形成の有無を判断済みであるから、ステップS300では、今度は画素Pa の右隣の画素Pb を着目画素として設定する。こうして設定した新たな着目画素について、上述した処理とほぼ同様の処理を行う。以下、画素Pa における処理との相違点を中心に簡単に説明する。
【0078】
画素Pb についての処理を行う場合にも画素Pa における場合と同様に、先ず初めに、補正データCx を算出する(ステップS302)。ここで、画素Pb に対応付けて記憶されている拡散誤差EDb には、先に画素Pa で生じた階調誤差が拡散されて、新たな拡散誤差EDb として更新されている。そこで、画素Pb についての画像データDTb と、画素Pa からの階調誤差が拡散された新たな拡散誤差EDb とを加算することにより、画素Pb についての補正データCx を算出する。こうして算出した補正データCx と所定の閾値thとの大小関係を判断し(ステップS304)、補正データCx の方が大きければ画素Pb にはドットを形成すると判断し(ステップS306)、そうでなければ画素Pb にはドットを形成しないと判断する(ステップS308)。次いで、画素Pb について発生した階調誤差を算出する(ステップS310)。階調誤差は、画素Pa の場合と同様に、画素Pb の補正データCx から結果値を減算することによって算出することができる。
【0079】
着目画素Pb で生じた階調誤差を算出したら、処理ユニット内のすべての画素について処理を終了したか否かを判断し(ステップS312)、未処理の画素が残っていれば、算出しておいた階調誤差を、これら未処理の画素に拡散させる処理を行う(ステップS314)。前述したように、ユニット内の画素Pa については既に判断を終了しているから、未判断画素として残っているのは画素Pc および画素Pd の2つの画素である。そこで、画素Pb で生じた階調誤差はこれら2つの画素に拡散させることになる。再び、図10を参照しながら、画素Pb からの誤差を拡散させる処理について説明する。
【0080】
図10(b)は、画素Pb で生じた階調誤差を拡散している様子を概念的に示した説明図である。図中で、画素Pa に斜線が施されているのは、画素Pa については既にドット形成の有無を判断済みであることを模式的に示したものである。画素Pb についてドット形成の有無を判断した時点では、処理ユニット内には未判断画素として画素Pc 、画素Pd の2つの画素が残っている。そこで、画素Pb で生じた階調誤差は、図10(b)に示したように、これらの画素Pc および画素Pd にそれぞれ、1/2ずつ拡散されることになる。図中で、画素Pb から画素Pc および画素Pd に向かって伸びる白抜きの矢印は、画素Pb で生じた階調誤差がこれら画素に拡散されていることを模式的に示している。こうして誤差が拡散される結果、各画素の拡散誤差は、拡散されてきた誤差が加算された新たな拡散誤差に更新される。尚、ここでは、階調誤差は処理ユニット内の未判断画素に均等に拡散されるものとしているが、もちろん、均等に拡散させるのではなく、所定の割合で誤差を拡散させることとしても構わない。
【0081】
こうして画素Pb で生じた階調誤差を周辺の画素に拡散したら、再び図9のステップS300に戻って、今度は着目画素を画素Pc に移動させた後、着目画素Pc について同様の処理を行う。以下では、かかる処理について、図10(c)を参照しながら説明する。画素Pc についての処理を開始すると、先ず初めに画素Pc の画像データDTc と拡散誤差EDc とを加算して補正データCx を算出する。ここで、画素Pc についてのドット形成有無を開始した時点では、画素Pc の拡散誤差EDc は、元々記憶されていた拡散誤差に加えて、画素Pa からの誤差と画素Pb からの誤差とが加算されて、新たな拡散誤差EDc として更新されている。このことから、画素Pc の補正データCx の算出に際しては、画素Pc の画像データDTc に、新たな拡散誤差EDc が算出されることになる。こうして得られた補正データCx と、所定の閾値thとを比較することによって、画素Pc についてのドット形成有無を判断する。こうして画素Pc についてのドット形成有無を判断した時点では、処理ユニット内に残る未判断画素は、図10(c)に示すように画素Pd のみである。そこで、画素Pc で生じた階調誤差は全て画素Pd に拡散され、画素Pd に元々記憶されていた拡散誤差に加算されて、新たな拡散誤差EDd として更新される。
【0082】
着目画素Pc で生じた階調誤差を拡散したら、図9のステップS300に戻って着目画素を画素Pd に移動した後、画素Pd についてのドット形成有無の判断を開始する。すなわち、画素Pd に対応づけられた新たな拡散誤差EDd と画素Pd の画像データDTd とを加算して補正データCx を算出する(ステップS300、ステップS302)。次いで、補正データCx と閾値thとを比較し(ステップS304)、補正データCx の方が大きい場合は画素Pd にはドットを形成する(ステップS306)と判断し、そうでない場合は画素Pd にはドットを形成しないと判断する(ステップS308)。
【0083】
こうして画素Pd についてのドット形成の有無を判断したら、画素Pd で生じた階調誤差を算出した後(ステップS310)、処理ユニット内の全画素の処理を終了したか否かを判断する(ステップS312)。図10(d)に示したように、画素Pd について処理を開始した時点で、もはや処理ユニット内には未判断の画素は残っておらず、画素Pd についての判断が終了した後のステップS312においては、処理ユニット内の全画素についての処理が終了したと判断される。そこで、図9に示したユニット内の多値化処理を終了して、図5を用いて前述したユニット単位で行う階調数変換処理に復帰する。図5に示されているように、ユニット単位の階調数変換処理では、ユニット内多値化処理から復帰すると、処理ユニットで生じた階調誤差を周辺のユニットに拡散する処理を行う(図5のステップS206)。
【0084】
ここで、処理ユニットで生じた階調誤差の値としては、ユニット内多値化処理のステップS310において画素Pd について求めた階調誤差の値を用いることができる。これは、着目画素で生じた階調誤差をユニット内の未判断画素に拡散しながらドット形成有無の判断を行っているために、ユニット内で生じた階調誤差が、最後に判断する画素Pd に拡散誤差EDd として累積されることによる。以下、図10を参照して詳しく説明する。
【0085】
画素Pa で生じた階調誤差は処理ユニット内の画素Pb 、画素Pc 、画素Pd の3つの画素に拡散される。画素Pb のドット形成有無の判断に際しては、画素Pa からの誤差を考慮して、画素Pb に拡散されている誤差ができるだけ解消されるようにドット形成の有無が判断される。仮に、画素Pb についてドット形成有無を判断することにより、画素Pb に拡散されている誤差を解消することができたものとする。この場合は、画素Pb では新たな階調誤差は発生せず、また、画素Pb から画素Pc 、画素Pd に拡散される誤差も生じない。他の2つの画素Pc 、画素Pd についても同様に、ドット形成の有無を判断したことで、それぞれの画素に拡散されている誤差を解消することができたものとすると、これらの画素では階調誤差は生じない。結局、この場合は、画素Pa で生じた階調誤差を、周辺の未判断画素Pb 、画素Pc 、画素Pd で解消したこととなって、処理ユニット全体としては階調誤差の発生を避けることができる。
【0086】
ここでは、画素Pb のドット形成有無の判断によって、画素Pb での誤差を解消するものとしたが、画素Pb で新たな階調誤差が発生した場合には、この誤差は周辺の未判断画素Pc および画素Pd に拡散されて、その結果、これらの画素には、画素Pa で生じた階調誤差と画素Pb で生じた階調誤差とが拡散されることになる。しかし、これら画素Pc 、画素Pd についてドット形成の有無を判断することで、それぞれの画素に拡散された誤差を解消することができれば、依然としてユニット全体としてみれば階調誤差は生じない。
【0087】
画素Pc についてドット形成有無を判断することで、画素Pc に拡散されている拡散誤差を解消することができない場合も、全く同様にして、画素Pd で誤差を解消することができれば、ユニット全体としては階調誤差が生じることはない。換言すれば、画素Pd で解消しきれずに残った誤差が、ユニット全体で生じた階調誤差となる。このように、着目画素で生じた階調誤差をユニット内の未判断画素に拡散しながらドット形成有無を判断していくと、各画素で解消しきれずに残った階調誤差が後続する画素に集約されていくので、ユニット内で最後に判断する画素Pd で生じた階調誤差を、処理ユニット全体で生じた階調誤差として用いることが可能となるのである。
【0088】
尚、以上の説明では、処理ユニット内で最後にドット形成有無を判断する画素Pd で生じた階調誤差の値を、処理ユニット全体で生じた階調誤差として用いるものとしたが、もちろん、処理ユニットを構成する各画素毎に階調誤差を算出し、これら階調誤差の総和を処理ユニットの階調誤差としても構わない。
【0089】
また、図10に示した例では、着目ユニットを構成する各画素のドット形成有無を判断するに際しては、画素Pa 、画素Pb 、画素Pc 、画素Pd の順番で判断を行ったが、必ずしもこの順番で判断する必要はなく、例えば、画素Pa 、画素Pc 、画素Pb 、画素Pd の順番でドット形成有無を判断しても構わない。処理ユニット内で着目画素を設定する順番は、良好な画質が得られる順番を選択しておくことができる。
【0090】
D−3.第1実施例のユニット内多値化処理:
以上に説明したようにして、ユニット単位で階調数変換処理を行う場合、ユニット毎に同じ処理が繰り返されることになる。このことから、あるユニットでドットを形成すると判断した画素は、後続するユニットでも、同じ位置にドットが形成されると判断され易い傾向がある。あるいは、個々のユニットについてはドットが形成されるユニットとされないユニットが生じるものの、複数のユニットを周期として一定のパターンでドットが形成されることがある。例えば、画像データが一定の領域が続く場合など、複数のユニットを周期としてほとんど同じ処理が繰り返されることになり、ユニット内の同じ位置の画素に周期的にドットが形成されることが起こり得る。もちろん、ドット自体の大きさは視認が困難なほどに小さいが、複数のユニットに亘って周期的なパターンでドットが形成されると、この様な領域の存在が視認されて画質を悪化させるおそれがある。
【0091】
この様な問題の発生を回避するために、第1実施例では、ユニット内の多値化処理を行い、画像データをユニット単位でドットデータに変換するに際して、既に処理したユニット中でドットが形成された画素位置を検出し、検出結果を反映させながらドット形成の有無を判断している。このように、処理済みのユニット内でドットが形成される画素位置の履歴を考慮しながら、処理ユニット内のドット形成有無を判断すれば、画像データをユニット単位で変換することによって生じ得る画質の悪化を回避することができる。以下では、こうした第1実施例のユニット内多値化処理について説明する。
【0092】
図11は、第1実施例のユニット内多値化処理の流れを示すフローチャートである。かかる処理は、図9を用いて前述したユニット内多値化処理に対して、処理済みのユニット内でドットが形成された画素位置を検出し、検出結果を反映させながら階調数変換処理を行っている点が大きく異なっている。以下、前述したユニット内多値化処理との相違点を中心として、第1実施例のユニット内多値化処理について説明する。
【0093】
第1実施例のユニット内多値化処理においても、処理を開始すると先ず初めに、処理ユニットの中から着目画素を1つ設定し(ステップS400)、設定した着目画素についての補正データCx を算出する(ステップS402)。補正データCx は、着目画素の画像データと着目画素に拡散されて記憶されている拡散誤差とを加算することによって求めることができる。また、処理ユニットを構成する各画素の画像データおよび拡散誤差は、図5に示した階調数変換処理中のステップS202において既に読み込まれており、これらデータの中から着目画素についてのデータを用いて補正データCx を算出する。
【0094】
次いで、第1実施例のユニット内多値化処理においては、処理済みのユニット内でドットが形成される画素位置の履歴を検出し、検出結果に基づいて閾値thを適切な値に設定する処理を行う(ステップS404)。この処理(履歴検出・閾値設定処理)について、図12を参照しながら説明する。
【0095】
図12は、履歴検出・閾値設定処理の流れを示すフローチャートである。履歴検出・閾値設定処理を開始すると、先ず初めに、履歴データを読み出す処理を行う(ステップS500)。履歴データとは、処理済みのユニットについてドットを形成すると判断された画素位置を記録したデータであり、RAM106上の特定の領域に確保された専用のバッファ(履歴検出用バッファ)に記憶されている。
【0096】
図13(a)は、履歴データの構造を概念的に示した説明図である。図13(a)に示した履歴データは、20bitの長さを有しており、それぞれのbitが画素位置に対応している。前述したように、ここでは1つのユニットは4つの画素から構成されているとしているから、20bit分の履歴データには、5つのユニット分の画素が記憶されていることになる。尚、ここでは履歴データには5ユニット分のデータが蓄えられているものとして説明するが、データを蓄えておくユニットの数は5つに限らず、より多数のユニット分のデータを蓄えても、あるいは、より少数のユニット分のデータを蓄えることとしても構わない。以下、図13(a)を参照しながら具体的に説明する。
【0097】
図示するように、履歴データは連続する4bitを1つのブロックとして、5つのブロックに分けて解釈することができる。これら5つのブロックは、下位側(図上では右側)から順番に、処理中のユニットの直前に処理したユニット(「1つ前のユニット」)、その直前に処理したユニット(「2つ前のユニット」)、更にその直前に処理したユニット(「3つ前のユニット」)といったように、それぞれ5つのユニットに対応している。また、各ブロックを構成する4つのbitは、下位側から、対応するユニット内の右下隅にある画素(画素Pd )、左下隅にある画素(画素Pc )、右上隅にある画素(画素Pb )、左上隅にある画素(画素Pa )にそれぞれ対応している。履歴データ中のあるbitに値「1」が記録されていることは、そのbitが対応する画素にドットが形成されることを意味しており、逆にbitに値「0」が記憶されている場合は、そのbitが対応する画素にはドットが形成されないことを意味している。
【0098】
尚、図13において、4bitを1ブロックとして解釈しているのは、ここでは1つのユニットが4つの画素から構成されているとしたことに対応したものである(図6(a)参照)。従って、1つのユニットをN個の画素から構成されているとした場合は、履歴データは連続するNbitを1つのブロックとして解釈される。また、ここでは、履歴データは20bit分のデータであるとして説明するが、1つのユニットがN個の画素から構成されていて、処理ユニットからMユニット前に処理したユニットまでのドット形成状況を参照する場合には、履歴データは、N×Mbitの長さを有するデータとすればよい。
【0099】
一例として、図13(b)に示すような履歴データを想定する。履歴データの下位側(図上では右側)の4つのbitからなるグループに着目すると、このグループ内の最上位(左端)のbitおよび最下位(右端)のbitには値「1」が設定されており、他のbitについては値「0」が設定されている。これは、処理中のユニットの直前に処理したユニット(「1つ前のユニット」)では、画素Pa および画素Pd の2つ画素にドットが形成され、その他の画素位置にはドットが形成されないことを意味している。同様に、図上でその左隣にあるグループについては、いずれのbitにも値「0」が記憶されているから、処理ユニットの2つ前に処理したユニットでは、いずれの画素にもドットが形成されていないことを意味している。図上で更にその左隣にあるグループについては、グループ内の最上位のbitに値「1」が記憶されているから、処理ユニットの3つ前に処理したユニットでは画素Pa の画素位置にドットが形成されることを意味している。このようにして履歴データを解釈することにより、図13(b)で想定した履歴データからは、図13(c)に示したドットの形成状況を知ることができる。
【0100】
図12のステップS500では、RAM106上の所定の領域に確保された履歴検出用バッファから、このような履歴データを読み出す処理を行う。こうして、履歴データを読み出したら、続いて、履歴検出用データを設定する処理を開始する(ステップS502)。かかる処理について、図14ないし図16を参照して説明する。
【0101】
履歴検出用データの設定に際しては、先ず初めに、履歴を検出するユニットの個数を設定する。これは、次のような理由によるものである。前述したようにユニット内多値化処理では、各画素のドット形成有無の判断をユニット単位で行うために、同じ画素位置にドットが形成され易くなる場合がある。例えば、画像中で処理している領域が、画素36個につき1画素の割合でドットが形成されるような、比較的低階調の画像データの領域(明るい画像の領域)であるとする。この様な領域では、縦横6画素の合計36画素から構成される正方形の領域に、ほぼ1つずつの割合でドットが形成されることになる。この様な画像データの領域を、4画素(縦横2画素)を1ユニットとするユニット単位でドット形成有無を判断した場合、ほぼ3ユニット(6画素分)を周期として同じ処理が繰り返されることになり、3ユニット目の同じ画素位置にドットが形成されてしまうことが起こり得る。
【0102】
ドットが、更にまばらに形成されるような領域、例えば画素100個につき1画素の割合でドットが形成される領域では、縦横10画素から構成される正方形の領域に、ほぼ1個ずつの割合でドットが形成されることになる。従って、4画素を1ユニットとするユニット単位でドット形成の有無を判断した場合、5ユニット(10画素分)を周期として同じ処理が繰り返される結果、5ユニット目の同じ画素位置にドットが形成されてしまうことが起こり得る。
【0103】
更に、ほとんど全ての画素にドットが形成され、ドットが形成されない画素がまばらに発生するような領域でも、ほぼ同様なことが起こり得る。例えば、高い密度でドットが形成される領域では、ドットが形成されない画素が周期的に発生する場合がある。もっとも、ドットの滲みの影響があるために、ドットが高い密度で形成される領域ではドットがまばらに形成される領域よりも、周期的なパターンが目立ち難い傾向があるので、まばらに形成される領域ほどには多くのユニットの履歴を考慮せずとも、画質に悪影響が現れない傾向がある。
【0104】
このように、ドットが一定のパターンで形成される周期は、ドットが形成される密度に応じて、換言すれば、ドット形成の有無を判断するために使用される画像データの階調値に応じて、異なる場合があると考えられる。ドットがまばらに形成される領域では、長い周期のパターンを検出するために、遠くのユニットの履歴を検出する必要があるが、ある程度の密度でドットが形成される領域では、それほど遠くのユニットまで履歴を検出する必要はない。そこで、履歴検出用データの設定に際しては、先ず初めに、どの程度遠くのユニットまで履歴を検出するか、すなわち、検出するユニットの個数を設定する。
【0105】
図14は、画像データの階調値に応じて、履歴を検出するユニットの個数を設定している様子を概念的に示した説明図である。図示されているように、画像データの階調値に対して、履歴を検出するユニットの個数が予め対応付けられた状態で、プリンタドライバ内に記憶されている。尚、図14では、ユニットの個数は、処理対象としているユニットを構成する各画素の階調値の総和に対応付けて記憶されている場合を示しているが、これに限らず、例えばユニット内の階調値の平均値に対応付けてもよく、あるいは、ユニットを構成する各画素の階調値に対応付けて記憶しておくこととしても良い。
【0106】
また、図14中に示された階調値Crvは、検出した履歴に基づいてドットを形成され易くするのか、ドットを形成され難くするのかの基準となる閾値を示している。すなわち、前述したように、ドットがまばらに形成される領域ではドットが周期的に形成されることで画質に悪影響が現れるおそれがあるので、こうした周期的なパターンの発生を回避するためには、ドットが周期的に形成されないようにすることが好ましい。一方、ドットが高い密度で形成される領域では、ドットが形成されない画素が周期的に発生することによって画質に悪影響が現れるおそれがあるので、こうした周期的なパターンの発生を回避するために、ドットの形成されない画素にドットが形成されるようにすることが好ましい。すなわち、周期的なパターンが発生した場合に、低階調領域ではドットの形成を抑制し、高階調領域ではドットの形成を促進することになる。図14に示した階調値Crvは、このように、ドットの形成を抑制するのか、促進するのかを判断するための閾値を示しており、階調値の総和が閾値Crvよりも小さい場合はドットの形成を抑制し、総和値が閾値Crvより大きい場合はドットの形成を促進すると判断するのである。
【0107】
図14に示した対応関係に基づいて、履歴を検出するユニットの個数を設定したら、ドット形成有無を判断しようとしている画素(着目画素)の位置に応じて、履歴検出用データを設定する。尚、上述したように、ユニット内の階調値の総和の値に応じて、ドットの形成は、抑制される場合と促進される場合とがあるが、以下では、総和値が閾値Crvよりも小さい場合(ドットの形成を抑制する場合)について説明する。一例として、処理ユニット中の画素Pa について、ドット形成有無を判断しようとしている場合を考える。図15(a)で、斜線を付して示した破線の大きな正方形は、処理ユニットを示しており、処理ユニット中の黒い正方形は着目画素を示している。
【0108】
ここでは、画像データの階調値が小さく、処理ユニットから5つ前のユニットまで履歴を検出する必要があるため、これら5つのユニットの画素Pa にドットが形成されているか否かを検出する場合を想定して説明する。図15(a)中で、各ユニットの画素Pa に示された「?」は、これらの画素位置でドットの形成状況を検出することを模式的に示したものである。
【0109】
図15(b)は、これら画素位置でのドット形成状況を検出するために設定された履歴検出用データを、概念的に示した説明図である。履歴検出用データも、前述した履歴データと同様に20bitの長さを有しており、4bitを1グループとして、5つのグループに分けて解釈される。履歴検出用データが5つのグループから構成されているのは、図13を用いて説明したように、履歴データがユニット5つ分のデータを記憶していることに対応したものである。また、4bitで1グループを構成しているのは、本実施例では、4つの画素を1つのユニットとしてまとめて処理していることに対応したものである。履歴検出用データの各グループとユニットとの対応関係、および各bitとユニット内の画素位置との対応関係は、図13に示した履歴データの場合と同様であるため、ここでは説明は省略する。尚、ここでは、履歴検出用データは、図13に示した履歴データと同じ長さのデータとして説明するが、これに限られるものではない。
【0110】
図15(a)に示したように、ここでは、5つのユニット全てについて、画素Pa でのドット形成状況を検出しようとしている場合を想定しているから、履歴検出用データは、各ユニットの画素Pa に対応するbitのみ値「1」を設定し、他のbitには値「0」を設定したデータとすればよい。
【0111】
また、画像データの階調値がそれほど小さくはなく、従って、ユニット3つ分の履歴を検出すればよいのであれば、履歴検出用データは、図15(c)に示したデータとすればよい。すなわち、処理ユニットから3つ前のユニットについては、画素Pa に対応するbitに値「1」を設定し、他のビットには値「0」を設定したデータとすればよい。
【0112】
着目画素が画素Pb に設定されている場合も同様にして、処理ユニットから設定したユニット数までの範囲で、各ユニットの画素Pb にドットが形成されているか否かを検出すればよい。図16(a)は、着目画素が画素Pb に設定されている場合に、各ユニットでのドット形成状況を検出する画素位置を示す説明図である。図中に「?」を表示した画素が、ドット形成状況を検出する必要のある画素となる。図16(b)は、この様な画素でのドット形成状況を検出するために設定される履歴検出用データを概念的に示した説明図である。図示されているように、このような場合の履歴検出用データは、各ユニットの画素Pb に対応するbitの値を「1」として、他のbitは値「0」を設定したデータとすればよい。また、ユニット3つ分の履歴を検出すればよいのであれば、履歴検出用データは、図16(c)に示すようなデータとすればよい。
【0113】
図12のステップS502では、以上に説明したようにして、着目画素の位置に応じて履歴検出用データを設定する処理を行う。
【0114】
こうして履歴検出用データを設定したら、ステップS500で読み込んだ履歴データに、設定した履歴検出用データを作用させることによって、検出対象としているドットの形成状況(以下、履歴検出用データを設定して検出しようとしているドットの形成状況を「対象履歴」と呼ぶことがあるものとする)を検出する(ステップS504)。
【0115】
図17(a)は、履歴データに履歴検出用データを作用させて、対象履歴を検出する様子を概念的に示した説明図である。図17(a)の上段には、履歴データを示し、履歴データの下段には履歴検出用データを示している。対象履歴の検出に際しては、先ず、履歴データと履歴検出用データとの間で、対応するbit同士の論理積を算出する。次いで、こうして得られた中間データの各bitの論理和をすることによって対象履歴を検出することができる。本明細書中で「履歴データに履歴検出用データを作用させる」とは、このように、履歴データと履歴検出用データとの間で、対応するbit同士の論理積を採ることにより中間データを算出することを言う。図17(a)では、履歴データに履歴検出用データを作用して算出した中間データを、履歴検出用データの下段に示している。前述したように、履歴検出用データには、各ユニット中で検出しようとする画素位置にのみ値「1」が設定され、検出不要の画素位置には値「0」が設定されているから、履歴データと履歴検出用データとでbit同士の論理積を算出すると、検出しようとする画素位置にドットが形成されている場合にのみ、その画素位置に対応するbitの値が「1」に設定される。
【0116】
上述した処理を、図17(a)中に示した「1つ前のユニット」に着目して、具体的に説明する。履歴データに示されているように、処理ユニットの「1つ前のユニット」には画素Pa および画素Pd にドットが形成されている。ここで、ドットの形成状況を検出しようとしている画素位置は、履歴検出用データに示されているように画素Pa のみであるから、中間データは、図17(a)に示すように、画素Pa に対応するbitのみが値「1」となり、他のbitは値「0」となる。このように、中間データのいずれかのbitが値「1」となっていることは、そのユニットには、検出しようとしている画素位置にドットが形成されていることを意味している。この様に、中間データの各bitの値を解析すれば、検出しようとする画素位置にドットが形成されているか否かを、ユニット毎に検出することが可能である。
【0117】
図12のステップS504では、以上のようにして、中間データの各bitの論理和を採って検出結果を算出する処理を行う。こうして得られた検出結果に基づいて、対象履歴が検出されたか否かを判断する(ステップS506)。検出結果の値が「0」である場合は、対象履歴は検出されていないものと判断する。すなわち、検出結果(すなわち中間データの各bitの論理和)の値が「0」となったことは、検出対象とするいずれのユニットにおいても、検出しようとしている画素位置にはドットが形成されていないことを意味している。そこで、検出結果の値が「0」であれば、対象履歴は検出されていないものと判断することができる。逆に、検出結果の値が「1」であれば、検出対象としているユニット中のいずれかのユニットにおいて、検出しようとしている画素位置にドットが形成されていることを意味しており、対象履歴が検出されたものと判断することができる。
【0118】
図17(a)に示した中間データには、「1つ前のユニット」および「3つ前のユニット」の中のbitが値「1」に設定されているので、このような中間データの各bitの論理和を採って検出結果を算出すると値「1」が得られる。従って、この場合には対象履歴が検出されることになる。
【0119】
参考として、図17(a)の上段に示す履歴データが表しているドットの形成状況を、図17(b)に示した。図17(a)に示したように、中間データから算出された検出結果は値「1」となり、画素Pa にドットが形成されていることを示す結果が得られる。図17(b)に示されているように、処理ユニットの「1つ前のユニット」および「3つ前のユニット」の画素Pa の位置には、確かにドットが形成されている。このことから、履歴データに履歴検出用データを作用させる方法を用いることで、ドットの形成状況を正確に検出可能であることが確認できる。
【0120】
以上の説明では、ドットがまばらに形成されている場合、すなわち、ユニット内の階調値の総和が図14の閾値Crvよりも小さい場合について説明した。総和値が閾値Crvよりも大きい場合についても、ほぼ同様に考えることができる。
すなわち、低階調領域では、一定のパターンでまばらにドットが形成されることを回避したのに対して、高階調領域では、ドットの形成されない画素が一定のパターンでまばらに形成されることを回避する点が大きく異なっているものの、他はほぼ同様である。そこで、高階調領域では、履歴データを一旦反転させて、すなわち、「1」が設定されているbitには「0」を設定し、「0」が設定されているbitには「1」を設定して、得られたデータに対して、図17に示したように、履歴検出用データを作用させればよい。そうして、中間データの論理和が「1」となれば、ドットの形成されていない画素が周期的に発生していることが検出されたことになる。
【0121】
図12の履歴検出・閾値設定処理では、こうして検出した対象履歴に基づいて、閾値thの値を適切な値に設定する処理を行う。すなわち、ステップS506において対象履歴が検出されなかった場合には、通常値Vn を閾値thとして設定する(ステップS508)。
【0122】
逆に、対象履歴が検出された場合には、ユニット内の階調値の総和が図14に示した閾値Crvよりも大きいか否かを判断し(ステップS510)、総和値が閾値Crvよりも小さい場合(ステップS510:no)は、通常値Vn よりも大きな値に設定された割増値Vm を、閾値thとして設定する(ステップS512)。逆に、総和値が閾値Crvよりも大きい場合(ステップS510:yes)は、通常値Vn よりも大きな値に設定された割増値Vs を、閾値thとして設定する(ステップS514)。ここで設定した閾値thは、ユニット内多値化処理中で着目画素にドットを形成するか否かを判断するために参照される。こうして閾値thを設定したら、図12の履歴検出・閾値設定処理を終了して、図11に示した第1実施例のユニット内多値化処理に復帰する。
【0123】
履歴検出・閾値設定処理から復帰すると、ステップS402において算出しておいた補正データCx と、閾値thとの大小関係を判断する(ステップS406)。この閾値thは、履歴検出・閾値設定処理中で対象履歴を検出することにより、適切な値に設定されている。そして、補正データCx の方が大きい場合には(ステップS406:yes)、着目画素にはドットを形成すると判断し(ステップS408)、そうでない場合には(ステップS406:no)、着目画素にはドットを形成しないと判断する(ステップS410)。図12を用いて説明したように、画像データの階調値が低い領域では、対象履歴が検出されると閾値thの値は、通常用いられる値(通常値Vn )よりも大きな所定の割増値(Vm )に変更されることから、結局、対象履歴が検出された場合には着目画素にはドットが形成され難くなる。また、画像データの階調値が高い領域では、対象履歴が検出されると閾値thの値は通常用いられる値(通常値Vn )よりも小さな所定の減少値(Vs )に変更される。この結果、対象履歴が検出されると、着目画素にドットが形成され易くなる。こうして得られたドット形成有無の判断結果は、各画素についての判断結果を示す変数に蓄えられる。
【0124】
以上のようにして着目画素についてのドット形成有無を判断したら、判断に伴って生じる階調誤差を算出する(ステップS412)。階調誤差の算出方法は、図9に示したユニット内多値化処理と同様であり、ここでは説明を省略する。ついで、処理ユニット内の全画素の処理を終了したか否かを判断する(ステップS414)。未処理の画素が残っている場合は(ステップS414:no)、ユニット内にあるそれらの周辺画素に誤差を拡散させる処理を行った後(ステップS416)、ステップS400に戻って着目画素を移動させて、続く一連の処理を繰り返す。ステップS416において処理ユニット内の画素に誤差を拡散させる処理は、図9、図10を用いて説明した前述のユニット内多値化処理と同様にして行うことができる。
【0125】
一方、ステップS414において、処理ユニット内の全画素の処理を終了したと判断された場合は(ステップS414:no)、処理ユニット内の各画素についての判断結果を、履歴検出用バッファに書き込む処理を行う(ステップS418)。かかる処理について、図18、図19を参照して説明する。
【0126】
図18は、処理ユニットの各画素についての判断結果を、履歴検出用バッファに書き込む処理の流れを示したフローチャートである。履歴検出用バッファに書き込む処理を開始すると、先ず初めに、バッファに記憶されているデータを、上位方向に1ユニット分だけシフトさせる処理を行う(ステップS600)。図19は、かかる処理を模式的に示した説明図である。図中に示された小さな正方形の列は、履歴検出用バッファを模式的に示したものであり、図中の上側に示した履歴検出用バッファはデータをシフトする前の状態を、図中の下側に示し履歴検出用バッファはデータをシフトした後の状態を示している。図18のステップS600においては、図19に示されているように履歴検出用バッファのデータを1ユニット分だけ上位方向にシフトさせる。このとき、履歴検出用バッファの最上位側のユニットのデータは破棄される。また、シフトさせた後の最下位ユニットの各bitには、念のために、いずれのbitにも値「0」を書き込んでおく。尚、図19では、履歴検出用バッファは、ユニット5つ分のデータを記憶可能であるとしているが、もちろんより多数のユニットのデータを記憶可能としてもよい。
【0127】
こうして1ユニット分のデータを上位方向にシフトさせたら(図18のステップS600)、次いで、処理ユニット内の各画素の判断結果に応じた4bit長のデータを設定する処理を行う(ステップS602)。かかるデータのそれぞれのbitは、処理ユニットを構成する各画素に対応付けられている。具体的には、最上位bitは処理ユニットの画素Pa に、上位から2番目のbitは画素Pb に、3番目のbitは画素Pc に、最下位bitは画素Pd にそれぞれ対応付けられている。ステップS602においては、処理ユニット内でドットが形成される画素に対応するbitには値「1」を書き込み、ドットが形成されない画素に対応するbitには値「0」を書き込む処理を行う。例えば、ある処理ユニットでは、画素Pb にのみドットが形成され、他の画素にはドットが形成されなかったとすると、ステップS602の処理では、処理ユニットに対応する4bit長のデータとして「0100( 2)」が設定されることになる。尚、( 2)は二進数表示されていることを示すものとする。
【0128】
続くステップS604では、こうして設定したデータを、履歴検出用バッファの最下位ユニットの領域に書き込む処理を行う。図19で、最下位ユニットの各bitに向かう白抜きの矢印は、設定されたデータがこれらbitに書き込まれる様子を模式的に示したものである。
【0129】
以上のようにして、処理ユニット内の各画素の判断結果を履歴検出用バッファに書き込む処理を終了したら、図11に示した第1実施例のユニット内多値化処理を終了して、図5の階調数変換処理に復帰する。
【0130】
上述したように、第1実施例のユニット内多値化処理においては、履歴検出・閾値設定処理中で対象履歴の有無を検出し、対象履歴が検出された場合には閾値thの値を大きくすることによって、着目画素にドットが形成され難くしている。このため、ユニット単位で階調数変換処理を行っても、複数のユニットを周期として同じ画素位置にドットが形成される領域が発生し、この領域が視認されて画質を悪化させることを回避することができる。また、閾値thの設定値を大きくしたために着目画素にドットが形成されなかったとしても、これによって生じた階調誤差は周辺の未判断画素に拡散されて、これら周辺の画素ではドットが形成され易くなる。このため、本来はドットが形成されるはずの画素に、既に処理されたユニット中でのドットの形成状況を検出することで、ドットが形成され難くなったとしても、これに起因して画質が悪化することはない。
【0131】
以上の説明では、対象履歴が検出された場合には、ドット形成有無の判断に使用する閾値thの設定値を大きな値に変更して、着目画素にはドットが形成され難くするものとした。もちろん、対象履歴が検出された場合には、着目画素にはドットを形成しないと判断することも可能である。このようにすれば、複数のユニットを周期として同じ画素位置にドットが形成されることを、簡便に回避することができる。
【0132】
また、以上の説明では、履歴データに履歴検出用データを作用させて中間データを生成し、中間データの各bitの論理和を採って検出結果を算出した。これに対して、中間データの各bitの論理積を採って、この値を検出結果としても良い。この場合は、ドットの形成状況を検出しようとしている全ての画素位置にドットが形成されている場合にのみ、検出結果の値が「1」となる。従って、例えば、ドットがある程度の密度で形成されている状況で、視認されやすい特定のパターン形成されたドットだけを、確実に検出することが可能となる。
【0133】
D−4.変形例:
以下では、上述した第1実施例の履歴検出・閾値設定処理の変形例について説明する。
【0134】
上述した第1実施例の履歴検出・閾値設定処理では、記憶されている5ユニット分の履歴データを常に読み出すものとして説明したが、遡るユニット数に応じて、読み出す履歴データを可変とすることもできる。
【0135】
図20は、変形例の履歴検出・閾値設定処理の流れを示すフローチャートである。かかる処理は前述した第1実施例の処理に対して、履歴を検出するユニットの個数に応じて、読み出す履歴データのデータ長を変更可能な点が大きく異なっている。以下、相違点を中心として、フローチャートに従って説明する。
【0136】
変形例の履歴検出・閾値設定処理を開始すると、先ず初めに処理ユニットを構成する各画素についての画像データの総和値を算出する(ステップS700)。処理ユニットを構成する各画素の画像データは、図5に示した階調数変換処理中のステップS202において予め読み込まれており、各画素の画像データの総和値は容易に算出することができる。
【0137】
次いで、図14に示した総和値との対応関係に従って、履歴を検出するユニットの個数を設定し、設定したユニット数に対応するデータ長の履歴データを、前述した履歴検出用バッファから読み出す(ステップS702)。
【0138】
こうして履歴検出用バッファから履歴データを読み出したら、続いて履歴検出用データを設定する(ステップS704)。かかる処理は、図12を用いて前述した第1実施例の履歴検出・閾値設定処理とほぼ同様であるが、処理ユニットによって履歴検出用データのbit長が変わることのみ異なっている。すなわち、前述した実施例では、履歴データの内で履歴を検出しないユニットについては、全ての画素に値「0」を設定したが、本変形例においては、履歴を検出するユニット分だけ履歴データを読み出しているので、これに合わせて履歴検出用データのデータ長も、処理ユニットに応じて異なった値となるのである。
【0139】
次いで、履歴データに履歴検出用データを作用させて、対象履歴(検出しようとしているドットの形成状況)の有無を検出する。そして、ユニット内の階調値の総和値が図14に示した閾値Crvより小さい領域で対象履歴が検出された場合には閾値thの値を大きな値(Vm )に変更し、総和値が閾値Crvより大きい領域で対象履歴が検出された場合は閾値thの値を小さな値(Vs )に変更する。また、対象履歴が検出されなかった場合には閾値thの値を通常値Vn に設定する(ステップS706ないしステップS716)。以上の処理を終了したら、変形例の履歴検出・閾値設定処理を抜けて、図11に示したユニット内多値化処理に復帰する。
【0140】
以上に説明した変形例の履歴検出・閾値設定処理によれば、記憶されている履歴データの中で、必要なデータのみを読み出すことができるので、処理の迅速化を図ることが可能となる。
【0141】
E.第2実施例:
上述した第1実施例のユニット内多値化処理中で行われる履歴検出・閾値設定処理においては、処理済みのユニットのドット形成状況を表す履歴データが、1つの履歴検出用バッファに記憶されているものとして説明した。ユニットには複数の画素が含まれているから、第1実施例においては、各画素についてのドット形成有無を表すデータが履歴検出用バッファ上で混在して記憶されていることになる。これに対して、ユニットを構成する画素の数だけバッファを設けておき、各画素のドット形成有無を判断したら、ユニット内の画素位置に対応付けて異なるバッファに判断結果を記憶することとしても良い。以下、このように画素位置毎に専用のバッファを用いた第2実施例について説明する。
【0142】
E−1.第2実施例のユニット内多値化処理:
図21は、第2実施例のユニット内多値化処理の流れを示すフローチャートである。かかる処理は、図11を用いて前述した第1実施例のユニット内多値化処理に対して、履歴検出用バッファが画素位置毎に設けられている点が大きく異なっている。また、この様な相違点から派生して、着目画素についてのドット形成有無を判断するたびに、判断結果を対応する履歴検出用バッファに書き込んでいる点でも、第1実施例とは異なっている。以下では、これら、第1実施例との相違点を中心として、第2実施例のユニット内多値化処理について説明する。
【0143】
処理を開始すると、先ず初めに、処理ユニットを構成する複数の画素の中から、ドットの形成有無を判断しようとする着目画素を検出し(ステップS800)、着目画素の画像データと拡散誤差とを加算して補正データCx を算出する(ステップS802)。処理ユニットを構成する各画素についての画像データおよび拡散誤差は、図5に示した階調数変換処理中で既に読み込まれているデータを使用する。
【0144】
こうして着目画素についての補正データCx を算出したら、第2実施例の履歴検出・閾値設定処理を開始する(ステップS804)。前述したように第2実施例においては、ユニット内の画素位置に応じて設けられた専用の履歴検出用バッファを使用する。そこで、かかる処理の内容について説明する前に、第2実施例の履歴検出・閾値設定処理で用いられる履歴検出用バッファについて説明しておく。
【0145】
図22は、ユニット内の画素位置に対応付けて設けられた履歴検出用バッファを模式的に示した説明図である。図中に示した「履歴検出用バッファA」は、ユニット内の画素Pa に対応付けられているバッファである。このバッファには、画素Pa ついてのドット形成判断結果が記憶される。また、「履歴検出用バッファB」は、ユニット内の画素Pb に対応付けられて、画素Pb についての判断結果が記憶されるバッファである。同様に、「履歴検出用バッファC」にはユニット内の画素Pc についての判断結果が記録され、「履歴検出用バッファD」には画素Pd についての判断結果が記憶される。このように第2実施例においては、ユニット内の画素位置に対応付けられた専用のバッファが設けられており、それぞれのバッファに履歴データが記憶されている。
【0146】
次に、「履歴検出用バッファA」を例にとって、記憶されている履歴データのデータ構造について説明する。履歴検出用バッファAの各bitは、下位側(図22では右側)から順番に、処理ユニットから1つずつ前のユニットに対応付けられている。すなわち、最下位bit(図上では右端のbit)は処理ユニットの「1つ前のユニット」に対応付けられており、下位から2つめのbitは「2つ前のユニット」に、下位から3つめのbitは「3つ前のユニット」に、というように、各bitがそれぞれのユニットに順番に対応付けられている。これらのbitに値「1」が設定されていることは、対応するユニットの画素Pa にドットが形成されることを表しており、逆に値「0」が設定されていることは、対応するユニットの画素Pa にはドットが形成されないことを表している。
【0147】
以上の説明から明らかなように、履歴検出用バッファAに記憶されている図22に例示の履歴データは、処理ユニットから1つ前、3つ前、5つ前、8つ前の各ユニットについては、画素Pa にドットが形成されており、他のユニットについては画素Pa にドットが形成されていないことを表している。尚、図22では、それぞれの履歴検出用バッファは、8bit分のデータ長を有するものとしたが、より多いbit数のデータとしても構わない。
【0148】
こうした履歴検出用データを用いて行われる第2実施例の履歴検出・閾値設定処理について、以下に説明する。第2実施例の履歴検出・閾値設定処理は、前述した第1実施例の処理に対して、画素位置毎に履歴検出用バッファが設けられている点が異なっており、他の処理はほぼ同様である。そこで以下では、第1実施例の履歴検出・閾値設定処理について説明した図12のフローチャートを流用しながら説明する。尚、かかる処理は、図21のユニット内多値化処理において着目画素が設定された後(ステップS800)、かかる着目画素に対してステップS804で実行される処理である。
【0149】
第2実施例の履歴検出・閾値設定処理を開始すると、先ず初めに、履歴検出用バッファから履歴データを読み出す処理を行う(図12のステップS500相当)。図22を用いて説明したように、第2実施例では画素位置に応じて履歴検出用バッファが設けられており、かかる処理では、着目画素と同じ画素位置に対応するバッファから、必要なデータ量の履歴データを読み出す。例えば、着目画素が画素Pa にあるとして、5ユニット分だけ遡ってドットの形成状況を検出するものとすれば、「履歴検出用バッファA」の下位側から5bit分のデータを読み出すことになる。この結果、図22に示した例では、履歴データとして「10101 (2)」が読み出される。ここで、(2) は2進数表示されていることを示している。尚、着目画素が画素Pb ,画素Pc ,画素Pd に設定されている場合は、履歴検出用バッファB,履歴検出用バッファC,履歴検出用バッファDにそれぞれ記録されている履歴データを読み出せばよい。
【0150】
こうして履歴データを読み出したら、続いて、履歴検出用データを設定する処理を行う(図12のステップS502相当)。かかる処理について、図23を参照しながら説明する。例えば、処理ユニットから5つ前のユニットまで遡って、ドットの形成状況を検出するものとする。図23(a)は、ドットの形成状況を検出しようとしている画素位置の分布を概念的に示した説明図である。図中の小さな正方形はそれぞれ画素を模式的に示したものである。また、太い破線で示した大きな正方形は処理中のユニットを模式的に示したものであり、細い破線で示した大きな正方形は、既に処理済みのユニットを模式的に示したものである。処理ユニット中で斜線を付した画素は着目画素を示しており、処理済みのユニット中で図中に「?」を付した画素は、ドットの形成状況を検出しようとしている画素を示している。
【0151】
図23(b)は、このような画素についてのドット形成状況を検出するために用いられる履歴検出用データを示したものである。ここでは、処理ユニットから5つ前のユニットまで遡って検出するとしているから、履歴検出用データは、最下位bitから5bitまでのbitに値「1」が設定され、6bitより上位側のbitには値「0」が設定されている。このように、検出しようとするユニットに対応するbitに値「1」を設定し、他のbitには値「0」を設定することによって、履歴検出用データを設定することができる。図23(c)はこうして設定された履歴検出用データを16進数表示したものである。
【0152】
こうして履歴検出用データを設定したら、設定した履歴検出用データを先に読み出した履歴データに作用させることによって、対象履歴(検出しようとしている画素位置でのドットの形成状況)を検出する(図12のステップS504相当)。対象履歴の検出は、第1実施例と同様にして行う。すなわち、履歴データと履歴検出用データとの間で、対応するbit同士の論理積を採ることにより中間データを算出し、得られた中間データの各bitの論理和を採って検出結果を算出する。得られた検出結果が値「1」であれば対象履歴が検出されたものと判断して、閾値thに割増値Vp を設定する。検出結果が値「0」であれば、対象履歴は検出されなかったものと判断して、閾値thに通常値Vn を設定する。以上のようにして閾値thを適切な値に設定したら、第2実施例の履歴検出・閾値設定処理を終了して、図21に示すユニット内多値化処理に復帰する。尚、ここでは、中間データの各bitの論理和を採って検出結果を算出するものとしたが、中間データの各bitの論理積を採って検出結果を算出するものとしてもよい。
【0153】
以上のようにして閾値thを設定して、図21に示す第2実施例のユニット内多値化処理に復帰したら、続いて、着目画素の補正データCx と閾値thとの大小関係を判断する(図21のステップS806)。補正データCx の方が大きい場合には着目画素にドットを形成すると判断し(ステップS808)、そうでなければドットを形成しないと判断する(ステップS810)。次いで、ドットの形成有無を判断したことで生じる階調誤差を算出した後(ステップS812)、着目画素についての判断結果を対応する履歴検出用バッファに書き込む処理を開始する(ステップS814)。かかる処理について、図24を用いて説明する。
【0154】
図24は、第2実施例のユニット内多値化処理において、着目画素についての判断結果を履歴検出用バッファに書き込む様子を概念的に示した説明図である。今、着目画素が画素Pa に設定されているものとすると、ドット形成有無の判断結果は、履歴検出用バッファAに書き込まれることになる。判断結果を書き込むにあたっては、先ず、履歴検出用バッファAに記憶されている履歴データを、1bit分だけ上位側(図上では左側)にシフトさせる。図24の上段はシフトする前の履歴検出用バッファAに記憶されている履歴データを示しており、下段はシフトした後のバッファに記憶されている履歴データを示している。履歴データをシフトさせることに伴って、最上位bitに記憶されたデータは破棄される。次いで、着目画素についての判断結果に対応する値を、最下位のbitに書き込む処理を行う。着目画素にドットを形成すると判断された場合は、最下位のbitには値「1」が書き込まれ、着目画素にドットを形成しないと判断された場合は、値「0」が書き込まれる。以上の説明では、着目画素が画素Pa に設定されているものとして説明したが、着目画素が他の画素位置に設定されている場合も同様にして、着目画素の画素位置に対応する履歴検出用バッファに判断結果に応じた値を書き込んでやればよい。図21のステップS814では、こうして着目画素についての判断結果を、着目画素に対応する履歴検出用バッファに書き込む処理を行う。
【0155】
こうして着目画素の判断結果を書き込む処理を終了したら(図21のステップS814)、処理ユニット内の全ての画素についての処理を終了したか否かを判断し(ステップS816)、未処理の画素が残っていればステップS800に戻って上述した一連の処理を繰り返す。全ての画素についての処理を終了したら、ユニット内多値化処理を抜けて、図5に示した階調数変換処理に復帰する。
【0156】
以上に説明した第2実施例のユニット内多値化処理においては、履歴検出用バッファのそれぞれのbitが、処理済みのユニット1つ1つに対応付けられている。従って、ドットの形成状況を遡って調べるユニット数が多くなった場合でも、ユニット数と同じbit長のデータを読み込むだけでよい。例えば、処理中のユニットから8ユニット分だけ遡ってドットの形成状況を検出する場合、1ユニットが4つの画素で構成されているとして、前述した第1実施例においては32bitの履歴データを読み込む必要があるが、第2実施例では8bitのデータを読み込むだけで足りる。このため、第2実施例においては、遡るユニット数が多い場合であっても、迅速な処理を行うことができる。
【0157】
E−2.第2実施例の変形例:
上述した第2実施例では、ドット形成状況を検出する画素位置は、着目画素と同じ画素であるものとして説明した。しかし、第1実施例において、ドットの形成状況を検出しようとする画素位置を自由に設定可能であったのと同様に、第2実施例においても、ドットの形成状況を検出する画素を、ユニット毎に任意の画素位置に設定することが可能である。以下では、こうした第2の実施例の変形例について説明する。
【0158】
図25は、第2実施例において、任意の画素位置でのドットの形成状況を検出する方法を示した説明図である。図25(a)は、検出しようとする画素位置の分布を例示した説明図である。図中に示した小さな正方形は画素を模式的に示したものであり、破線で示した大きな正方形はユニットを示している。ドットの形成状況を検出しようとする画素位置は、画素中に「?」印を付して示している。検出しようとする画素位置および画素数は任意に設定することができるが、以下では、図25(a)に示した画素位置でのドット形成状況を検出するものとして説明する。
【0159】
図25(b)は、第2実施例において、任意の画素位置でのドット形成状況を検出する方法を示す説明図である。第2実施例では、前述したように、ドット形成有無の判断結果を各ユニットの画素位置毎に記憶していることから、任意の画素位置でのドット形成状況を検出しようとする場合でも、各ユニットの画素位置に着目した方法で検出する。すなわち、図25(a)に示した例では、画素Pa の画素位置について、ドット形成状況を検出しようとしているのは、処理ユニットの「1つ前のユニット」、「2つ前のユニット」、「3つ前のユニット」の3つのユニットである。また、画素Pb の画素位置については、処理ユニットの「1つ前のユニット」と、「2つ前のユニット」の2つのユニットである。更に、画素Pc あるいは画素Pd の画素位置については、いずれも処理ユニットの「1つ前のユニット」でのみドットの形成状況を検出している。このように、画素位置毎に、ドット形成状況を検出しようとするユニット位置を検出した後、検出したユニットにドットが形成されているか否かを画素位置毎に判断すれば、任意の画素位置でのドット形成状況を検出することが可能となる。以下、図25(a)に示した場合に即して具体的に説明する。
【0160】
初めに画素Pa のドット形成状況を検出する場合について説明する。図25(b)には、こうして画素Pa の画素位置でのドット形成状況を検出する様子が模式的に示されている。先ず初めに、画素Pa でのドット形成判断結果を記憶したバッファ(履歴検出用バッファA)から3ユニット分の履歴データ(最下位から3bit分のデータ)を読み出す。もちろん、より多数のユニットを遡って検出する場合は、それに応じて読み出すデータ長を長くすればよい。
【0161】
次いで、この履歴データに履歴検出用データを作用させる。履歴検出用データは、画素Pa でのドット形成状況を検出しようとしているユニットに応じて設定される。図25(a)に示すように、画素Pa については処理ユニットの「1つ前のユニット」、「2つ前のユニット」、「3つ前のユニット」の3つのユニットでドット形成状況を検出しようとしているから、これに対応して履歴検出用データは、最下位bitから3つのbitに値「1」を設定する。こうして設定した履歴検出用データ(2進数表示で「111 (2)」)を、読み出した履歴データに作用させて中間データを算出する。「履歴検出用データを履歴データに作用させる」とは、前述したように、2つのデータの対応するbit間で、論理積を採ることである。こうして中間データが得られたら、中間データの各bit間の論理和を算出することにより、画素Pa についての検出結果を得ることができる。
【0162】
こうして画素Pa について得られた検出結果は、次のことを意味している。すなわち、検出結果が値「0」であることは、検出しようとしているユニットのいずれにも画素Pa にはドットが形成されていないことを意味しており、逆に、検出結果が「1」であることは、検出しようとしているユニットのいずれかには、画素Pa にドットが形成されていることを意味している。もちろん、中間データの各bitの論理和を採る代わりに、論理積を採ることとしても良い。中間データの各bitの論理積を採った場合、検出結果の値が「1」であることは、検出しようとしている全てのユニットの画素Pa に、ドットが形成されていることを意味することになる。
【0163】
同様の方法により、画素Pb についての検出結果を得ることができる。図25(c)には、画素Pb についてのドット形成状況を検出している様子を模式的に示している。図25(b)を参照して簡単に説明すると、先ず、画素Pb についてのドット形成有無を記録したバッファ(履歴検出用バッファB)から3ユニット分の履歴データを読み出す。次いで、このデータに履歴検出用データを作用させて中間データを算出する。画素Pb については、処理ユニットの「1つ前のユニット」、および「2つ前のユニット」でのドット形成状況を検出しようとしているから、これに対応して履歴検出用データは、最下位bitから2つのbitが値「1」に設定されたデータ(2進数表示で「011 (2)」)を使用する。こうして、得られた中間データの各bit間の論理和を求めることにより、画素Pb についての検出結果を得ることができる。
【0164】
画素Pc 、画素Pd についても同様にして、それぞれの画素についての検出結果を算出することができる。これら画素については、ドット形成状況を検出しようとしているユニットは、処理ユニットの「1つ前のユニット」のみであるから、これら画素については、履歴検出用データとして最下位bitにのみ値「1」が設定されたデータ(2進数表示で「001 (2)」)を使用すればよい。画素Pc についての検出結果を算出する様子を図25(d)に、また、画素Pd についての検出結果を算出する様子を図25(e)にそれぞれ示した。
【0165】
こうして各画素についての検出結果が得られたら、これら検出結果の論理和を算出することによって、最終的な検出結果を得ることができる。すなわち、図25(a)に「?」印で示した画素のいずれかにドットが形成されていれば、検出結果として値「1」が得られ、逆にいずれの画素にもドットが形成されていない場合は検出結果として値「0」が得られることになる。もちろん、各画素についての検出結果の論理積を採ることによって、最終的な検出結果を算出することとしても良い。こうした場合は、図25(a)に「?」印で示した全ての画素にドットが形成されている場合に、最終的な検出結果の値が「1」得られることになる。
【0166】
以上に説明した方法を用いれば、ドットの形成状況を検出しようとする画素位置を、既に処理済みのユニットの中から自由に設定することが可能である。従って、ユニット単位でドットの形成有無を判断する場合であっても、所定の画素位置でのドット形成状況を検出し、検出結果を踏まえてドットの形成有無を判断することにより、複数のユニットに亘って所定のパターンでドットが形成されることを効果的に回避することが可能となる。
【0167】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。
【0168】
例えば、上述した各種実施例では、ユニットを構成する各画素についてのドット形成有無を判断する手法として、いわゆる誤差拡散法を用いているが、これに限らず、例えばディザ法などの周知な他の手法を適用することもできる。
【0169】
また、上述した機能を実現するソフトウェアプログラム(アプリケーションプログラム)を、通信回線を介してコンピュータシステムのメインメモリまたは外部記憶装置に供給し実行するものであってもよい。もちろん、CD−ROMやフレキシブルディスクに記憶されたソフトウェアプログラムを読み込んで実行するものであっても構わない。
【0170】
上述した各種実施例では、階調数変換処理を含む画像データ変換処理はコンピュータ内で実行されるものとして説明したが、画像データ変換処理の一部あるいは全部をプリンタ側、あるいは専用の画像処理装置を用いて実行するものであっても構わない。
【0171】
更には、画像表示装置は、必ずしも印刷媒体上にインクドットを形成して画像を印刷する印刷装置に限定されるものではなく、例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置であっても構わない。
【図面の簡単な説明】
【図1】 本発明の概要を例示した印刷システムの概略構成図である。
【図2】 本実施例の画像処理装置としてのコンピュータの構成を示す説明図である。
【図3】 本実施例の画像表示装置としてのプリンタの概略構成図である。
【図4】 本実施例の画像処理装置で行われる画像データ変換処理の流れを示すフローチャートである。
【図5】 ユニット単位で行われる階調数変換処理の流れを示すフローチャートである。
【図6】 複数個の画素をまとめて処理ユニットを設定している様子を示す説明図である。
【図7】 処理ユニットで発生した階調誤差を周辺の未判断画素に拡散させる様子を例示した説明図である。
【図8】 処理ユニットで発生した階調誤差を周辺の未判断画素に拡散させる割合を例示した説明図である。
【図9】 ユニットを構成する各画素についてドット形成の有無を判断することによりユニット内を多値化する処理の流れを示すフローチャートである。
【図10】 ユニット内の各画素に誤差を拡散させながら、画素毎にドット形成の有無を判断する方法を概念的に示した説明図である。
【図11】 第1実施例において、ユニット内の各画素についてドット形成の有無を判断することによりユニット内を多値化する処理の流れを示すフローチャートである。
【図12】 第1実施例においてドットの形成状況を検出し、閾値の値を設定する処理の流れを示すフローチャートである。
【図13】 第1実施例の履歴検出・閾値設定処理において読み出される履歴データの構造を概念的に示した説明図である。
【図14】 ユニットを構成する各画素の階調値の総和に対応付けて、履歴を検出するユニットの個数が設定されている様子を概念的に示す説明図である。
【図15】 第1実施例の履歴検出・閾値設定処理において履歴を検出するために設定される履歴検出用データの構造を概念的に示した説明図である。
【図16】 異なる履歴検出用データの構造を概念的に示した説明図である。
【図17】 第1実施例の履歴検出・閾値設定処理において履歴データに履歴検出用データを作用させて対象履歴を検出する様子を概念的に示した説明図である。
【図18】 第1実施例において、履歴データを格納している履歴検出用バッファに、ユニット内各画素についての判断結果を書き込む処理の流れを示したフローチャートである。
【図19】 第1実施例において、履歴データを格納している履歴検出用バッファに、ユニット内各画素についての判断結果を書き込んでいる様子を概念的に示した説明図である。
【図20】 第1実施例の変形例においてドットの形成状況を検出し、閾値の値を設定する処理の流れを示すフローチャートである。
【図21】 第2実施例において、ユニット内の各画素についてドット形成の有無を判断することによりユニット内を多値化する処理の流れを示すフローチャートである。
【図22】 第2実施例において、ユニット内の画素位置に対応付けて設けられた履歴検出用バッファを概念的に示す説明図である。
【図23】 第2実施例において、ドット形成状況を検出しようとする画素位置に応じて履歴検出用データを設定する方法を概念的に示した説明図である。
【図24】 第2実施例において、ドット形成有無の判断結果を履歴検出用バッファに書き込む方法を概念的に示した説明図である。
【図25】 第2実施例において、履歴データに履歴検出用データを作用させることにより、任意の画素位置でのドット形成状況を検出する方法を概念的に示した説明図である。
【符号の説明】
10…コンピュータ
12…プリンタドライバ
14…階調数変換モジュール
20…カラープリンタ
100…コンピュータ
102…CPU
104…ROM
106…RAM
108…周辺機器インターフェースP/IF
109…ディスクコントローラDDC
110…ネットワークインターフェースカードNIC
112…ビデオインターフェースV/IF
114…CRT
116…バス
118…ハードディスク
120…デジタルカメラ
122…カラースキャナ
124…フレキシブルディスク
126…コンパクトディスク
200…カラープリンタ
230…キャリッジモータ
235…紙送りモータ
236…プラテン
240…キャリッジ
241…印字ヘッド
242,243…インクカートリッジ
244…インク吐出用ヘッド
260…制御回路
261…CPU
262…ROM
263…RAM
300…通信回線
310…記憶装置
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique for converting gradation image data into dot data expressed by the presence or absence of dot formation, and more specifically, image data is quickly converted by processing a predetermined number of adjacent pixels collectively. However, the present invention relates to a technique for avoiding deterioration in image quality.
[0002]
[Prior art]
An image display device that expresses an image by forming dots on a display medium such as a print medium or a liquid crystal screen is widely used as an output device of various image devices. Such an image display device can express only the state of whether or not to form dots locally, but by appropriately controlling the dot formation density according to the gradation value of the image, It is possible to express an image whose tone changes continuously.
[0003]
In these image display devices, a method called an error diffusion method is widely used as a method for determining the presence or absence of dot formation for each pixel so that dots are formed at an appropriate density according to the gradation value of the image. in use. In the error diffusion method, an error in gradation expression caused by the formation of a dot in a pixel of interest or the absence of a dot is diffused and stored in undetermined pixels around the pixel of interest. In determining the presence or absence of dot formation for a pixel, this is a method for determining the presence or absence of dot formation so as to eliminate errors diffused from surrounding pixels. By using the error diffusion method, it is possible to determine whether or not dots are formed so as to eliminate the error in gradation expression that has occurred in the peripheral pixels in this way, so that the density becomes appropriate according to the gradation value of the image. As described above, it is possible to determine the presence or absence of dot formation.
[0004]
By using the error diffusion method, high-quality images can be displayed by forming dots with an appropriate density according to the image. When the number of pixels constituting the image increases, it takes time to process and it is difficult to express the image quickly. In order to solve such a problem, the inventor of the present application has developed a technique for determining the presence or absence of dot formation while collecting a predetermined number of adjacent pixels in a unit and diffusing an error in units. (Patent Document 1).
[0005]
[Patent Document 1]
JP 2001-185789 A
[0006]
[Problems to be solved by the invention]
However, when determining whether or not dots are formed on a unit basis, the same processing is repeated for each unit. For this reason, a dot is formed in the pixel of the same position in a unit over a some unit, and this will be visually recognized as a periodic pattern, and there exists a possibility of degrading an image quality. Further, when the presence / absence of dot formation is determined on a unit basis, a problem that a periodic pattern may be generated may occur not only in the error diffusion method but also in other known methods.
[0007]
The present invention has been made to solve the above-described problems in the prior art, and it is possible to make a quick determination by determining the presence / absence of dot formation on a unit basis, while ensuring the generation of a periodic pattern. The object is to provide a technique capable of avoiding and displaying a high-quality image.
[0008]
[Means for solving the problems and their functions and effects]
In order to solve at least a part of the problems described above, the image processing apparatus of the present invention employs the following configuration. That is,
An image processing apparatus that converts image data represented by gradation values for each pixel constituting an image into dot data indicating the presence or absence of dot formation for each pixel,
Dot data conversion means for grouping a predetermined plurality of adjacent pixels as a unit, and converting the image data into the dot data in units.
Dot presence / absence storage means for storing the presence / absence of dot formation in a state where the pixel position in the unit can be identified for at least some of the pixels constituting the converted unit;
With
The dot data conversion means includes
A converted unit selection means for calculating a total sum of gradation values for each pixel constituting the unit, and selecting a predetermined number of units from the converted units according to a correspondence relationship with the total value;
A pixel-of-interest setting means for sequentially setting a pixel of interest for determining the presence or absence of dot formation in the unit to be converted into the dot data;
Dot formation presence / absence detection means for detecting the presence or absence of dot formation at a pixel at a predetermined position with respect to the pixel position of the pixel of interest for the selected predetermined number of units;
Dot formation determination means for determining the presence / absence of dot formation for the pixel of interest based on the gradation value of the image data for the pixel of interest and the detected dot formation presence / absence;
Have
The dot formation determination unit is a unit that makes it easier to determine that there is dot formation as the gradation value of the pixel of interest increases.
The converted unit selection means has a correspondence relationship with the total value that is larger than the first predetermined value and smaller than the second predetermined value for a total value smaller than the first predetermined value. The gist is that the unit is stored in association with a unit far from the pixel of interest rather than the total value.
[0009]
The image processing method of the present invention corresponding to the above image processing apparatus is
An image processing method for converting image data expressed by gradation values for each pixel constituting an image into dot data indicating the presence or absence of dot formation for each pixel,
A first step of grouping a predetermined plurality of pixels adjacent to each other as a unit, and converting the image data into the dot data in units;
A second step of storing, with respect to at least some of the pixels constituting the converted unit, the presence or absence of dot formation in a state in which the pixel positions in the unit can be identified;
With
The first step includes
A sub-step (1-a) of calculating a total sum of gradation values for each pixel constituting the unit and selecting a predetermined number of units from the converted units according to a correspondence relationship with the total value; ,
A sub-step (1-b) for sequentially setting a pixel of interest for determining whether or not to form dots in a unit to be converted into dot data;
A sub-step (1-c) for detecting, with respect to the selected predetermined number of units, whether or not dots are formed at a pixel at a predetermined position with respect to the pixel position of the target pixel;
A sub-step (1-d) for determining the presence / absence of dot formation for the target pixel based on the gradation value of the image data for the target pixel and the detected dot formation presence / absence;
Have
The sub-step (1-d) is a step that makes it easier to determine that there is dot formation as the gradation value of the pixel of interest increases.
In the substep (1-a), as a correspondence relationship with the total value, the total value smaller than the first predetermined value is larger than the first predetermined value and larger than the second predetermined value. The summary is that it is a step of storing a unit far from the pixel of interest in association with it, rather than a smaller sum value.
[0010]
In such an image processing apparatus and image processing method, a predetermined number of pixels are grouped as a unit, and image data is converted into dot data in units. At this time, the dot formation status in the already converted unit is detected, and the presence or absence of dot formation is determined in consideration of the detection result. The dot formation status in the converted unit is detected as follows. First, for at least some of the pixels constituting the converted unit, the presence / absence of dot formation is stored in a state where the pixel position in the unit can be identified. Then, the sum of gradation values for each pixel constituting the unit to be converted into dot data is calculated, and a predetermined number of units are selected from the already converted units according to the correspondence with the sum value. . Here, as a correspondence relationship with the total value, the total value smaller than the first predetermined value is larger than the total value smaller than the first predetermined value and smaller than the second predetermined value. A relationship that associates units far from the target pixel is set. Further, the number of units to be selected according to the correspondence relationship with the total value may be one or plural. Further, the pixel position for detecting the presence or absence of dot formation in the selected unit may be the same pixel position as the target pixel in the unit, or a different pixel position depending on the pixel position of the target pixel. It is also possible. Next, in the unit to be converted, the target pixel for determining the presence / absence of dot formation is sequentially set, and the presence / absence of dot formation at a pixel at a predetermined position with respect to the pixel position of the target pixel is selected. Detect for a number of units.
[0011]
In this way, if the dot formation status in the already converted unit is detected and the presence or absence of dot formation is determined in consideration of the detection result, even if the image data is converted into dot data on a unit basis, dots are not detected in the unit. It can avoid that the position formed becomes a fixed pattern over a plurality of units. Accordingly, it is possible to reliably prevent the periodic pattern from being visually recognized and the image quality from deteriorating. At this time, when dots are formed sparsely, it is considered that the period of a constant pattern generated over a plurality of units becomes longer. Therefore, when the sum of the gradation values becomes a small value, when selecting from the target pixel to a unit far from the target pixel, detecting the dot formation status for these selected units, and determining whether or not the target pixel is formed. If this is taken into consideration, it is possible to effectively suppress the formation of dots in a periodic pattern.
[0012]
Here, only the unit far from the target pixel may be associated with the total value smaller than the first predetermined value, but it is larger than the first predetermined value and larger than the second predetermined value. A unit that is relatively close to the target pixel and that is associated with a smaller total sum value may also be associated. This is preferable because not only the formation of a pattern having a long period but also the formation of a pattern having a relatively short period can be effectively avoided.
[0013]
In such an image processing apparatus, not only for the total value smaller than the first predetermined value, but also for the total value larger than the second predetermined value, the second predetermined value is greater than the first predetermined value. Rather than the sum value smaller than the value, the unit from the target pixel to a distant unit may be associated. At this time, a farther unit may be associated with the sum value smaller than the first predetermined value and stored in association with the sum value larger than the second predetermined value.
[0014]
Similar to the case where dots are formed sparsely, when the dots are formed at a high density and pixels where dots are not formed are generated sparsely, the period of the pattern generated over a plurality of units is considered to be long. Therefore, even when the sum of the gradation values is large, as in the case where the sum is small, select from the pixel of interest to a distant unit, detect the dot formation status for these selected units, and If this is taken into consideration when determining the presence or absence of dot formation for a pixel, it is possible to effectively suppress the formation of dots in a periodic pattern. However, it is considered that there are the following differences between the case where dots are formed sparsely and the case where dots are formed with high density.
[0015]
When dots are formed at a high density, the dots may be formed larger due to the interaction between adjacent dots. In addition, when forming dots by ejecting ink droplets on a print medium, the dots are formed larger due to the effect of ink bleeding, so if dots are formed at a high density, the adjacent dots partially overlap each other. May end up. In such a case, even if pixels in which dots are not formed are sparsely formed in a fixed pattern, the surrounding pattern is formed to be large, so that the periodic pattern is not noticeable. Therefore, in areas where the gradation value is large and the dots are formed at a high density, the area where the gradation value is small and the dots are formed sparsely does not consider whether or not dots are formed in a distant unit. In both cases, the image quality is not expected to deteriorate. Therefore, even when the sum total value of the gradation values becomes a large value, as in the case where the sum total value of the gradation values is small, as far as the unit is selected, the small sum value is larger than the large sum value. However, if even farther units are selected, deterioration of image quality can be effectively suppressed.
[0016]
Further, in such an image processing device, when a dot is detected at a pixel at a predetermined position with respect to the pixel of interest when the sum of the gradation values is small, it is difficult to form a dot for the pixel of interest. Also good. Here, the case where a dot is detected at a pixel at a predetermined position may be a case where a dot is detected at any of a plurality of pixels at a predetermined position, or a dot is detected at all of the plurality of pixels. It can also be the case.
[0017]
In the region where the total sum of the gradation values is small, dots are formed sparsely. Therefore, when dots are formed in pixels at a predetermined position in this way, it is possible to prevent dots from being formed in a periodic pattern over a plurality of units if it is difficult to form dots in the pixel of interest. can do. As a result, even when the image data is converted into dot data in units, it is possible to avoid deterioration of the image quality due to the periodic pattern being visually recognized.
[0018]
In particular, in a region where dots are sparsely formed, it is considered rare that dots are formed in all of a plurality of pixels. Therefore, when dots are formed in any of the predetermined pixels, the generation of a periodic pattern can be effectively suppressed by suppressing the formation of dots at the target pixel. Further, in a region where dots are formed at a certain density, it is considered that there is a high possibility that dots are formed in any of the plurality of pixels. Therefore, when all dots are formed in a predetermined pixel, it is possible to surely avoid the formation of dots with a periodic pattern by suppressing the formation of dots at the target pixel. This is preferable.
[0019]
Furthermore, in such an image processing apparatus, in a region where the total sum of gradation values is small, when dots are formed at pixels at predetermined positions, dots may not be formed at the target pixel.
[0020]
This is preferable because even when image data is converted into dot data in units, it is possible to easily avoid the formation of dots in a fixed pattern.
[0021]
In addition, in such an image processing device, when the sum of the gradation values is large, if a dot is not detected in a pixel at a predetermined position with respect to the target pixel, the dot may be easily formed for the target pixel. good. Here, the case where a dot is not detected at a pixel at a predetermined position may be a case where a dot is not detected at any of a plurality of pixels at a predetermined position, or a dot is not detected at any of the plurality of pixels. It can also be a case.
[0022]
In a region where the total sum of gradation values is large, pixels in which dots are not formed are sparsely generated. That is, when image data is converted into dot data in units of units, pixels in which dots are not formed may occur in a certain pattern and deteriorate image quality. Therefore, if dots are not formed in the pixel at the predetermined position, it is possible to prevent the formation of a pixel in which a dot is not formed across a plurality of units in a periodic pattern by making it easy to form a dot in the target pixel. can do.
[0023]
In particular, in a region where pixels where dots are not formed hardly occur, it is rare that dots are not formed at all of the pixels at a predetermined position. Therefore, when dots are not formed in any pixel at a predetermined position, it is possible to effectively suppress the generation of a periodic pattern by making it easier to form dots in the pixel of interest. Become. In a region where pixels where dots are not formed are generated at a certain density, it is considered that there is a high possibility that dots are not formed in any of the plurality of pixels. Therefore, when dots are not formed in all pixels at a predetermined position, it is preferable to make it easier to form dots in the pixel of interest because it is possible to reliably avoid the generation of a periodic pattern. .
[0024]
Further, in such an image processing apparatus, in a region where the sum total value of the gradation values is large, when a dot is not formed on a pixel at a predetermined position, a dot may be formed on the pixel of interest.
[0025]
This is preferable because even when image data is converted into dot data in units, it is possible to easily avoid occurrence of pixels in which dots are not formed in a fixed pattern.
[0026]
In the above-described image processing apparatus, the presence / absence of dot formation for each pixel constituting the unit is determined using a so-called error diffusion method, and the threshold value of the error diffusion method referred to in such determination is converted. It is good also as changing according to the dot formation presence or absence in the unit.
[0027]
If the threshold value of the error diffusion method is changed, the detection result of dot formation presence / absence at a predetermined pixel position in the converted unit can be easily reflected in determination of dot formation presence / absence in the target pixel. In addition, the error diffusion method quickly eliminates the tone error by diffusing the tone error generated in the pixel of interest to the surrounding undetermined pixels and reflecting it in the determination of dot formation in these surrounding pixels. It has a function to make it. From this, if the presence / absence of dot formation for the pixel of interest is determined using the error diffusion method, a large gradation error will occur in the pixel of interest by reflecting the detection result of dot formation in the converted unit. Even if it occurs, it is preferable because this can be resolved quickly and a higher quality image can be expressed.
[0028]
In such an image processing apparatus that determines the presence / absence of dot formation using the error diffusion method, when dot formation is detected at a pixel at the predetermined position with respect to the target pixel, It may be determined that dots are not formed.
[0029]
If dot formation is detected at a pixel at a predetermined position, if it is determined that no dot is to be formed on the pixel of interest, even if image data is converted to dot data in units, It is preferable because it is possible to easily avoid the formation of dots in the pattern. In addition, since the presence / absence of dot formation is determined using the error diffusion method, even if a large gradation error occurs in the pixel of interest by determining that dots are not formed, this error can be quickly eliminated. This is possible and there is no risk of image quality deterioration.
[0030]
The above-described image processing apparatus can be suitably applied to a printing apparatus that forms dots on a print medium and prints an image. That is, the image processing apparatus of the present invention can convert image data to dot data quickly by converting in units. In addition, by detecting the dot formation status at a predetermined pixel position in the converted unit, it is possible to avoid the formation of dots in a constant pattern. Therefore, it is preferable to apply such an image processing apparatus to a printing apparatus, because it is possible to avoid deterioration of image quality while shortening the time required for printing by quickly converting image data into dot data.
[0031]
The present invention can also be realized using a computer by causing a computer to read a program that realizes the above-described image processing method. Therefore, the present invention includes the following program or a mode as a recording medium on which the program is recorded. That is, the program of the present invention corresponding to the image processing method described above is
A program for realizing, using a computer, a method for converting image data expressed by gradation values for each pixel constituting an image into dot data indicating the presence or absence of dot formation for each pixel. ,
A first function of grouping a plurality of adjacent pixels as a unit, and converting the image data into the dot data in units;
A second function for storing the presence / absence of dot formation in a state in which the pixel position in the unit can be identified for at least some of the pixels constituting the converted unit;
As well as
The first function further includes:
A function (1-a) for calculating a sum of gradation values for each pixel constituting the unit, and selecting a predetermined number of units from the converted units according to a correspondence relationship with the sum value;
A function (1-b) for sequentially setting a pixel of interest for determining the presence or absence of dot formation in the unit to be converted into the dot data;
A function (1-c) for detecting the presence or absence of dot formation at a pixel at a predetermined position with respect to the pixel position of the target pixel for the selected predetermined number of units;
A function (1-d) for determining the presence / absence of dot formation for the pixel of interest based on the gradation value of the image data for the pixel of interest and the detected dot formation presence / absence;
Have
The function (1-d) is a function that makes it easier to determine that there is dot formation as the gradation value of the pixel of interest increases.
The function (1-a) is greater than the first predetermined value and larger than the second predetermined value for the total value smaller than the first predetermined value as a correspondence relationship with the total value. The gist of the present invention is that it is a function that stores a unit far from the pixel of interest in association with it rather than a small sum value.
[0032]
The recording medium of the present invention corresponding to the above-described image processing method is
A computer-readable recording program for realizing a method of converting image data expressed by gradation values for each pixel constituting an image into dot data indicating the presence or absence of dot formation for each pixel is recorded. Recording medium,
A first function of grouping a plurality of adjacent pixels as a unit, and converting the image data into the dot data in units;
A second function for storing the presence / absence of dot formation in a state in which the pixel position in the unit can be identified for at least some of the pixels constituting the converted unit;
Realized,
The first function further includes:
A function (1-a) for calculating a sum of gradation values for each pixel constituting the unit, and selecting a predetermined number of units from the converted units according to a correspondence relationship with the sum value;
A function (1-b) for sequentially setting a pixel of interest for determining the presence or absence of dot formation in the unit to be converted into the dot data;
A function (1-c) for detecting the presence or absence of dot formation at a pixel at a predetermined position with respect to the pixel position of the target pixel for the selected predetermined number of units;
A function (1-d) for determining the presence / absence of dot formation for the pixel of interest based on the gradation value of the image data for the pixel of interest and the detected dot formation presence / absence;
Is realized using a computer,
The function (1-d) is a function that makes it easier to determine that there is dot formation as the gradation value of the pixel of interest increases.
The function (1-a) is greater than the first predetermined value and larger than the second predetermined value for the total value smaller than the first predetermined value as a correspondence relationship with the total value. The gist of the present invention is that it is a function that stores a unit far from the pixel of interest in association with it rather than a small sum value.
[0033]
If such a program or a program stored in a recording medium is read into a computer and the above-described various functions are executed by the computer, the image data is converted into dot data in units and quickly converted. By detecting the dot formation status in the converted unit, it is possible to avoid the formation of dots in a fixed pattern, so there is no risk of image quality deterioration.
[0034]
DETAILED DESCRIPTION OF THE INVENTION
In order to more clearly describe the operation and effect of the present invention, embodiments of the present invention will be described below in the following order.
A. Embodiment:
B. Device configuration:
C. Overview of image data conversion process:
D. First embodiment:
D-1. Tone number conversion processing performed in units:
D-2. In-unit multi-value processing:
D-3. In-unit multilevel processing of the first embodiment:
D-4. Variation:
E. Second embodiment:
E-1. In-unit multi-value processing of the second embodiment:
E-2. Modification of the second embodiment:
[0035]
A. Summary of the invention:
Before starting the detailed description of the embodiments, the outline of the present invention will be briefly described for convenience of understanding. FIG. 1 is an explanatory diagram showing an outline of the present invention, taking a printing system as an example. The printing system shown in FIG. 1 includes a computer 10 as an image processing apparatus, a color printer 20 and the like. When the computer 10 receives color image data expressed by gradation values of RGB colors from an image device such as a digital camera or a color scanner, the computer 10 expresses the image data by the presence or absence of formation of each color dot that can be printed by the color printer 20. Is converted to print data. Such conversion of image data is performed using a dedicated program called the printer driver 12. Note that color image data for each color of RGB can also be created by the computer 10 using various application programs.
[0036]
The printer driver 12 includes a plurality of modules such as a resolution conversion module, a color conversion module, a gradation number conversion module 14, and an interlace module. Processing performed in each of these modules will be described later. Among these, the gradation number conversion module 14 performs a process of converting the image data into data expressed by the presence or absence of dot formation. Further, in the gradation number conversion module of this embodiment, in order to speed up the processing, the unit unit processing is performed as follows. That is, a unit is generated by grouping a plurality of adjacent pixels, and whether or not dots are formed for each pixel is collectively determined for each unit. A method for determining whether or not to form dots in units will be described later.
[0037]
In FIG. 1, a conceptual diagram indicated by an arrow below a frame representing the gradation number conversion module 14 shows a state in which image data is converted into dot data in the gradation number conversion module 14. . The small squares indicated by broken lines in the conceptual diagram schematically show the pixels. These four pixels constitute one unit. The units shown with fine diagonal lines in the figure indicate units that are being processed, that is, units that are converting image data into dot data. A region indicated by a rough oblique line indicates a region converted to dot data after the presence / absence of dot formation is determined. When the determination of dot formation is performed in units, the same processing is performed for each unit. For this reason, particularly when an area where the gradation value of the image data does not change so much is processed, there is a possibility that dots are formed in a constant pattern across a plurality of units. If a region in which dots are formed in a certain pattern is generated, there is a concern that this is visually recognized and the image quality is deteriorated.
[0038]
The conceptual diagram in FIG. 1 shows a case where dots are formed at the same pixel position in a continuous unit as an example in which dots are formed in a constant pattern. As shown in the drawing, on the left side of the unit being processed (the unit with fine slashes), two units in which dots are formed in the pixel in the upper left corner are continuous. If a dot is formed in the pixel in the upper left corner even in the unit being processed, dots will be formed in the pixel at the same position in three units in succession, and this will be visually recognized as a pattern and image quality will deteriorate. There is a fear. Of course, an example in which dots are formed in a fixed pattern is not limited to the case where dots are formed at the same pixel position in successive units, but where dots are formed in a fixed pattern with multiple units as a period. Can also happen.
[0039]
In order to avoid the occurrence of such a problem, the gradation number conversion module 14 in the printing system shown in FIG. 1 stores in the gradation number conversion result storage unit pixels that have been determined to form dots for units that have already been processed. Remember. When determining the presence or absence of dot formation on a unit basis, the determination result is read from the gradation number conversion result storage unit, and determination is made while avoiding the formation of dots in a fixed pattern. For example, in the example shown in the conceptual diagram in FIG. 1, dots are formed at the same pixel position in consecutive units, so that dots are not continuously formed at pixels at the same position. It is determined whether or not dots are formed. In this manner, the presence / absence of dot formation is determined while avoiding the formation of dots in a pattern that is easily visible. In this way, it is possible to print a high-quality image without deteriorating the image quality while performing quick processing by determining the presence or absence of dot formation in units.
[0040]
Also, for example, in a region where dots are formed sparsely, such as being formed at a rate of one in several units, the period in which dots are formed in a constant pattern is expected to be longer. Similarly, even in a region where dots are formed in most pixels, it is conceivable that pixels in which dots are not formed occur in a constant pattern across a plurality of units. Therefore, in these areas, it is possible to more effectively suppress the deterioration of the image quality if the dot formation state is taken into consideration for farther units. Hereinafter, such image processing will be described in detail based on examples.
[0041]
B. Device configuration:
FIG. 2 is an explanatory diagram illustrating a configuration of a computer 100 as the image processing apparatus according to the present exemplary embodiment. The computer 100 is a well-known computer configured by connecting a ROM 104, a RAM 106, and the like with a bus 116 around a CPU 102.
[0042]
Connected to the computer 100 are a disk controller DDC 109 for reading data on the flexible disk 124 and the compact disk 126, a peripheral device interface PIF 108 for exchanging data with peripheral devices, a video interface VIF 112 for driving a CRT 114, and the like. Has been. A color printer 200, a hard disk 118, and the like, which will be described later, are connected to the PIF 108. Further, if the digital camera 120, the color scanner 122, and the like are connected to the PIF 108, it is possible to print an image captured by the digital camera 120 or the color scanner 122. If the network interface card NIC 110 is attached, the computer 100 can be connected to the communication line 300 to acquire data stored in the storage device 310 connected to the communication line.
[0043]
FIG. 3 is an explanatory diagram showing a schematic configuration of the color printer 200 of the first embodiment. The color printer 200 is an ink jet printer capable of forming dots of four color inks of cyan, magenta, yellow, and black. Of course, in addition to these four color inks, an ink jet printer capable of forming ink dots of a total of six colors including cyan (light cyan) ink having a low dye density and magenta (light magenta) ink having a low dye density is used. You can also. In the following, cyan ink, magenta ink, yellow ink, black ink, light cyan ink, and light magenta ink are abbreviated as C ink, M ink, Y ink, K ink, LC ink, and LM ink, respectively. There shall be.
[0044]
As shown in the figure, the color printer 200 has a mechanism for driving the print head 241 mounted on the carriage 240 to eject ink and forming dots, and the carriage 240 is reciprocated in the axial direction of the platen 236 by the carriage motor 230. A mechanism for moving the printing paper P by a paper feed motor 235, and a control circuit 260 for controlling dot formation, carriage 240 movement, and printing paper conveyance.
[0045]
An ink cartridge 242 that stores K ink and an ink cartridge 243 that stores various inks of C ink, M ink, and Y ink are mounted on the carriage 240. When the ink cartridges 242 and 243 are mounted on the carriage 240, each ink in the cartridge is supplied to ink discharge heads 244 to 247 for each color provided on the lower surface of the print head 241 through an introduction pipe (not shown). Each of the ink discharge heads 244 to 247 for each color is provided with one set of nozzle rows in which 48 nozzles Nz are arranged at a constant nozzle pitch k.
[0046]
The control circuit 260 includes a CPU 261, a ROM 262, a RAM 263, and the like. The control circuit 260 controls main scanning and sub-scanning of the carriage 240 by appropriately driving the carriage motor 230 and the paper feed motor 235, and controls each nozzle based on print data supplied from the computer 100. Ink droplets are discharged at an appropriate timing. Thus, the color printer 200 can print a color image by forming ink dots of respective colors at appropriate positions on the print medium under the control of the control circuit 260.
[0047]
Various methods can be applied to the method of ejecting ink droplets from the ink ejection heads of the respective colors. That is, a method of ejecting ink using a piezoelectric element, a method of ejecting ink droplets by generating bubbles in the ink passage with a heater arranged in the ink passage, and the like can be used. Also, instead of ejecting ink, use a method that uses ink transfer to form ink dots on printing paper using a phenomenon such as thermal transfer, or a method that uses static electricity to attach toner powder of each color onto the print medium. It is also possible to do.
[0048]
Furthermore, the size of the ink dots formed on the printing paper can be controlled by controlling the size of the ejected ink droplets, or by ejecting a plurality of ink droplets at a time and controlling the number of ejected ink droplets. A so-called variable dot printer capable of controlling the height can also be used.
[0049]
The color printer 200 having the hardware configuration as described above drives the carriage motor 230 to move the ink ejection heads 244 to 247 for each color in the main scanning direction with respect to the printing paper P, and the paper feed motor. By driving 235, the printing paper P is moved in the sub-scanning direction. The control circuit 260 drives the nozzles at appropriate timing to discharge ink droplets while repeating main scanning and sub-scanning of the carriage 240 according to the print data, so that the color printer 200 prints a color image on the printing paper. is doing.
[0050]
C. Overview of image data conversion process:
FIG. 4 is a flowchart showing a flow of processing in which the computer 100 as the image processing apparatus of the present embodiment converts image data into print data by applying predetermined image processing to the received image data. Such processing is started when the operating system of the computer 100 activates the printer driver 12. Hereinafter, the image data conversion processing of the present embodiment will be briefly described with reference to FIG.
[0051]
When the image data conversion process is started, the printer driver 12 first starts reading RGB color image data to be converted (step S100). Next, the resolution of the captured image data is converted to a resolution for printing by the color printer 200 (step S102). When the resolution of color image data is lower than the print resolution, new data is generated between adjacent image data by performing linear interpolation. Conversely, when the resolution is higher than the print resolution, the data is thinned out at a fixed rate. Thus, the resolution of the image data is converted into the printing resolution.
[0052]
When the resolution is converted in this way, color conversion processing of color image data is performed (step S104). Color conversion processing refers to color image data expressed by a combination of R, G, and B gradation values, by a combination of gradation values of each color used in the color printer 200 such as C, M, Y, and K. This is a process of converting into expressed image data. The color conversion process can be quickly performed by referring to a three-dimensional numerical table called a color conversion table.
[0053]
The printer driver 12 starts the tone number conversion process following the color conversion process (step S106). The gradation number conversion process is the following process. By the color conversion process, the RGB image data is converted into gradation data of C, M, Y, and K colors. The gradation data of each color is data having 256 gradations with gradation values 0 to 255. On the other hand, the color printer 200 of the present embodiment can only take one of the states of “form dots” or “do not form dots”. Therefore, it is necessary to convert the gradation data of each color having 256 gradations into image data expressed in 2 gradations that can be expressed by the color printer 200. A process for converting the number of gradations is a gradation number conversion process. As will be described later, the printer driver 12 according to the present embodiment enables rapid processing by collecting a predetermined number of pixels into units and performing gradation number conversion processing on a unit basis. For the processed unit, the pixel determined to form a dot is stored, and the number of gradations is converted while reflecting this data. By doing this, it is possible to reliably avoid the occurrence of a phenomenon in which dots are formed in a constant pattern, which is a concern when the gradation number conversion processing is performed on a unit basis. The tone number conversion process will be described in detail later.
[0054]
When the tone number conversion process is thus completed, the printer driver starts the interlace process (step S108). The interlacing process is a process of rearranging image data (dot data) converted into a format representing the presence / absence of dot formation into an order to be transferred to the color printer 200 in consideration of the dot formation order. The printer driver 12 outputs the image data finally obtained by performing the interlace processing to the color printer 200 as print data (step S110). The color printer 200 forms ink dots of each color on the print medium according to the print data. As a result, a color image corresponding to the image data is printed on the print medium.
[0055]
D. First embodiment:
Hereinafter, the tone number conversion process of the first embodiment performed in the image data conversion process shown in FIG. 4 will be described. As described above, in the gradation number conversion process of this embodiment, a plurality of pixels are grouped into units, and the gradation number conversion process is performed in units. Therefore, as a preparation for explaining the gradation number conversion process of the first embodiment, first, a method of performing the gradation number conversion process in units will be described, and then, in the gradation number conversion process of the first embodiment. A process of reflecting the determination result of the processed unit in the determination of the presence / absence of dot formation will be described.
[0056]
D-1. Tone number conversion processing performed in units:
FIG. 5 is a flowchart showing the flow of gradation number conversion processing performed in units. This process is performed by the CPU 102 of the computer 100. Note that the color printer 200 of this embodiment is a printer that can form ink dots of four colors C, M, Y, and K as described above, and the processing shown in FIG. 5 is also performed for each color. However, in the following description, in order to avoid complicated explanation, the explanation will be made without specifying the color. Unless otherwise specified, when the explanation is made without specifying the color, the same processing is performed for each color. It means to be done.
[0057]
When the unit-unit gradation number conversion process is started, first, the position of the unit to be processed is set (step S200). In the gradation number conversion process performed in units, a predetermined plurality of adjacent pixels are grouped as a unit, and it is determined in units of whether or not to form dots in each pixel. Therefore, when the unit-unit gradation number conversion process is started, first, a process of setting the position of a unit (processing unit) for which it is determined whether or not dots are formed in the image is performed.
[0058]
FIG. 6 is an explanatory diagram conceptually showing a state in which a predetermined plurality of adjacent pixels are grouped to set the position of the processing unit. In FIG. 6, a plurality of small squares displayed schematically represent pixels. As shown in the figure, the image is composed of a plurality of pixels arranged in a grid pattern. In the example shown in FIG. 6A, a processing unit is set by grouping four adjacent pixels arranged in two vertical and horizontal columns. In FIG. 6A, a thick broken line surrounding four pixels schematically shows that these pixels are set as a processing unit. For convenience of explanation, among the four pixels constituting the unit, the upper left pixel is called “Pa”, the upper right pixel is “Pb”, the lower left pixel is “Pc”, and the lower right pixel is called “Pd”. A distinction shall be made. In the following description, the unit is assumed to be composed of four pixels arranged in two rows and columns, but of course, the unit is not limited to such a configuration. For example, the processing unit may be set by grouping four adjacent pixels as shown in FIG. Further, the number of pixels grouped as a processing unit is not limited to four. For example, two pixels may be set as a processing unit as shown in FIGS. 6C and 6D.
[0059]
After the processing unit is set, image data and diffusion error are read for each pixel in the unit (step S202 in FIG. 5). The image data read here is gradation data of each color of C, M, Y, and K obtained by color conversion by the above-described color conversion process (step S104 in FIG. 4). The diffusion error is an error in which the gradation error caused by converting the number of gradations is diffused from the peripheral unit to each pixel of the processing unit. Since the image data is gradation data for each color of C, M, Y, and K, a gradation error occurs for each of these colors, and therefore the diffusion error is also gradation data for each of these colors. As will be described later, a gradation error is generated along with the conversion of the number of gradations, and the generated error is diffused as a diffusion error to surrounding pixels.
[0060]
Here, as shown in FIG. 6A, the processing unit is assumed to be composed of four pixels, pixel Pa, pixel Pb, pixel Pc, and pixel Pd. Therefore, in the process of step S202 in FIG. For these pixels, image data DTa, DTb, DTc, DTd and diffusion errors EDa, EDb, EDc, EDd are read. These data read for the processing unit are stored in the RAM 106 of the computer 100.
[0061]
When the image data and the diffusion error of each pixel are read in this way, a process for determining whether or not dots are formed is started for each pixel constituting the processing unit (step S204). Here, as shown in FIG. 6A, the processing unit is assumed to be composed of four pixels. Therefore, in the process of step S204, the presence or absence of dot formation is determined for these four pixels in a predetermined order. Go. In the present specification, the process for determining the presence or absence of dot formation for each pixel in the unit is sometimes referred to as “in-unit multi-value processing”. Details of the multi-value processing in the unit will be described later.
[0062]
When the determination of the presence / absence of dot formation for each pixel constituting the processing unit is completed, a process of diffusing the gradation error generated in the processing unit to the peripheral units with the determination is performed (step S206). The gradation error generated in the processing unit is the gradation value of the image data to be expressed in the entire processing unit and the gradation value actually expressed by forming dots at each pixel in the unit. It is an error representing a deviation. A method for calculating the gradation error occurring in the processing unit will be described in the explanation of the multi-value processing in the unit. In step S206, a process of diffusing the gradation value indicating the deviation to surrounding unprocessed units as a gradation error generated in the processing unit is performed.
[0063]
FIG. 7 is an explanatory diagram conceptually showing a state in which the gradation error generated in the processing unit is diffused to surrounding unprocessed units. Each of the plurality of small squares shown in FIG. 7 schematically represents a pixel. A large square indicated by a thick broken line indicates a processing unit, and a large square indicated by a thin broken line indicates an unprocessed unit adjacent to the processing unit. The gradation error generated in the processing unit is diffused at a predetermined ratio to the pixels constituting the surrounding unprocessed units. In FIG. 7, the black arrows extending from the processing unit to the surrounding six pixels schematically indicate that the gradation error generated in the processing unit is diffused to these six pixels at a predetermined ratio. Yes.
[0064]
FIG. 8 illustrates a state in which the ratio of diffusing gradation errors generated in the processing unit to pixels constituting unprocessed units around the processing unit is set. In FIG. 8, a large square indicated by a thick solid line represents a processing unit, and a large square indicated by a thin broken line adjacent to the processing unit represents an unprocessed unit around the processing unit. is there. A plurality of small squares indicated by thin solid lines in these unprocessed units represent pixels in which an error from the processing unit is diffused.
[0065]
In the example shown in FIG. 8A, the gradation error generated in the processing unit is diffused to the two pixels on the right side of the processing unit at a ratio of 1/8, and 2 pixels on the lower side of the processing unit. Similarly, the gradation error is diffused to each pixel at a rate of 1/8. Further, the gradation error is diffused at a ratio of 1/4 to the lower left pixel or the lower right pixel of the processing unit. If the gradation error is diffused at such a ratio, the gradation error is equally diffused to the peripheral units of the processing unit at a ratio of 1/4 of the gradation error. In the example shown in FIG. 8B, the gradation error generated in the processing unit is diffused at the same rate to all the pixels constituting the unit around the processing unit. Of course, errors that diffuse to the same unit may be diffused together in one pixel of that unit.
[0066]
In step S206 of FIG. 5, the gradation error generated in the processing unit is diffused to the peripheral units as described above. When all the processes described above are completed for the processing unit, it is determined whether or not the process has been completed for all the units constituting the image (step S208). If there are any unprocessed units, the process returns to step S200. The following series of processes is repeated. Thus, when the processing for all the units is completed, the gradation number conversion processing for each unit is completed.
[0067]
When the gradation number conversion process is performed on a unit basis as described above, the following advantages can be obtained as compared with the case of processing for each pixel. That is, when the gradation number conversion process is performed for each pixel, the diffusion error stored in association with the pixel must be read every time it is determined whether or not a dot is formed for one pixel. It is necessary to diffuse the error caused by the determination of dot formation to the surrounding undetermined pixels. For this reason, when the gradation number conversion process is performed for each pixel, the processing time tends to be long. In contrast, when the gradation number conversion process is performed in units, it is possible to read the image data in units and diffuse the gradation errors, and then write the diffusion errors into the memory in units. If data reading and writing are performed in unit units in this way, the time required for processing can be shortened.
[0068]
D-2. In-unit multi-value processing:
The in-unit multilevel conversion process (step S204 in FIG. 5) performed in the unit-unit gradation number conversion process described above will be described. FIG. 9 is a flowchart showing the flow of the in-unit multilevel processing. Hereinafter, it demonstrates according to a flowchart.
[0069]
When the intra-unit multilevel processing is started, first, one pixel (a target pixel) for determining the presence or absence of dot formation is set from the pixels constituting the processing unit (step S300). Since the unit is composed of a plurality of pixels as described above, one pixel of interest is selected by determining whether or not dots are formed pixel by pixel in a predetermined order for the plurality of pixels. Here, the four pixels constituting the unit shown in FIG. 6A are subjected to dot formation presence / absence in the order of pixel Pa, pixel Pb, pixel Pc, pixel Pd from the upper left pixel to the lower right pixel. In step S300, first, the pixel Pa at the upper left corner is set as the target pixel.
[0070]
Next, correction data Cx for the set pixel of interest (here, pixel Pa) is calculated (step S302). The correction data Cx can be obtained by adding the image data of the target pixel and the diffusion error diffused and stored in the target pixel. Since the image data and the diffusion error for each pixel constituting the processing unit have already been read in step S202 during the gradation number conversion processing shown in FIG. Adds the image data of the pixel of interest and the diffusion error from these data to calculate the correction data Cx.
[0071]
After the correction data Cx for the pixel of interest Pa is calculated, the magnitude relationship between the obtained correction data Cx and the predetermined threshold th is determined (step S304). If the correction data Cx is larger, it is determined that a dot is to be formed on the target pixel (here, pixel Pa) (step S3306). Otherwise, it is determined that no dot is formed on the target pixel (step S308). . The result of the determination is stored in a variable indicating the determination result for each pixel.
[0072]
When the presence / absence of dot formation for the target pixel is determined in this way, the gradation error generated in the target pixel is calculated in accordance with the determination (step S310). The gradation error is a gradation value expressed in the pixel of interest by forming a dot or not forming a dot (hereinafter, this gradation value is referred to as a result value). It can be calculated by subtracting from Cx.
[0073]
After the gradation error generated in the target pixel is calculated, it is determined whether or not the processing of all the pixels in the processing unit has been completed (step S312). If there are unprocessed pixels remaining (step S312: no). Then, a process of diffusing an error to pixels around the target pixel among these unprocessed pixels is performed (step S314). This process will be described with reference to FIG.
[0074]
FIG. 10 is an explanatory diagram schematically showing a state in which the presence / absence of dot formation is determined on a unit basis by selecting each pixel of interest from the pixels in the processing unit and determining the presence / absence of dot formation. It is. Four squares in the figure indicate the pixel Pa, the pixel Pb, the pixel Pc, and the pixel Pd, respectively, constituting the processing unit. DTa and Eda shown in the square indicating the pixel Pa conceptually show that the image data DTa and the diffusion error Eda are read into the RAM 106 in association with the pixel Pa. Similarly, image data DTb and diffusion error EDb are associated with pixel Pb, image data DTc and diffusion error EDc are associated with pixel Pc, and image data DTd and diffusion error EDd are associated with pixel Pd, respectively. Stored in the RAM 106.
[0075]
As described above, the target pixel is initially set to the pixel Pa among these four pixels. The correction data Cx is calculated by reading out the image data and the diffusion error for the pixel Pa, and the presence or absence of dot formation for the pixel Pa is determined by comparing with the threshold value th. At the time when the presence or absence of dot formation is determined for the pixel Pa, as shown in FIG. 10A, three pixels of the pixel Pb, the pixel Pc, and the pixel Pd remain as undetermined pixels in the same unit. Therefore, the gradation error generated in the pixel Pa is equally distributed to each of these three pixels by 1/3, and the error is added to the diffusion error stored for each pixel. For example, as shown in FIG. 10A, the diffusion error EDb is already stored in association with the pixel Pb. The gradation error generated in the pixel Pa is distributed to the pixel Pb by 1/3 of the gradation value and added to the diffusion error EDb. As a result, the diffusion error EDb stored in association with the pixel Pb is updated to a new diffusion error EDb to which the error from the pixel Pa is added.
[0076]
Similar processing is performed for the other pixels Pc and Pd. Briefly, when the error from the pixel Pa is diffused to the pixel Pc, the diffusion error EDc stored in the pixel Pc and the error from the pixel Pa are added to correspond to the pixel Pc as a new diffusion error EDc. It is memorized. Similarly, for the pixel Pd, the diffusion error EDd stored in the pixel Pd and the error from the pixel Pa are added and stored as a new diffusion error EDd in association with the pixel Pd. In FIG. 10A, the white arrow displayed from the pixel Pa toward the other three pixels schematically indicates that the error generated in the pixel Pa is diffused to these three pixels. Is. Note that the gradation error does not necessarily need to be distributed evenly to the surrounding undetermined pixels, and can be distributed to each pixel at a predetermined ratio.
[0077]
After the gradation error is diffused to the peripheral pixels in the unit as described above, the process returns to step S300 in FIG. 9 to perform a process for setting a new pixel of interest. Since the pixel Pa in the processing unit has already been determined for dot formation, in step S300, the pixel Pb right next to the pixel Pa is set as the pixel of interest. For the new pixel of interest set in this way, processing similar to that described above is performed. Hereinafter, the difference from the processing in the pixel Pa will be briefly described.
[0078]
When the process for the pixel Pb is performed, the correction data Cx is first calculated as in the case of the pixel Pa (step S302). Here, the gradation error previously generated in the pixel Pa is diffused into the diffusion error EDb stored in association with the pixel Pb, and updated as a new diffusion error EDb. Therefore, the correction data Cx for the pixel Pb is calculated by adding the image data DTb for the pixel Pb and the new diffusion error EDb in which the gradation error from the pixel Pa is diffused. The magnitude relationship between the correction data Cx thus calculated and the predetermined threshold th is determined (step S304). If the correction data Cx is larger, it is determined that a dot is to be formed in the pixel Pb (step S306), otherwise. It is determined that no dot is formed on the pixel Pb (step S308). Next, the gradation error generated for the pixel Pb is calculated (step S310). Similar to the case of the pixel Pa, the gradation error can be calculated by subtracting the result value from the correction data Cx of the pixel Pb.
[0079]
After the gradation error that has occurred in the pixel of interest Pb is calculated, it is determined whether or not processing has been completed for all the pixels in the processing unit (step S312). A process of diffusing the gradation error that has occurred to these unprocessed pixels is performed (step S314). As described above, since the determination of the pixel Pa in the unit has already been completed, two pixels, the pixel Pc and the pixel Pd, remain as undecided pixels. Therefore, the gradation error generated in the pixel Pb is diffused to these two pixels. The process for diffusing the error from the pixel Pb will be described again with reference to FIG.
[0080]
FIG. 10B is an explanatory diagram conceptually showing a state in which the gradation error generated in the pixel Pb is diffused. In the figure, the pixel Pa is shaded to schematically indicate that the pixel Pa has already been determined for dot formation. At the time when it is determined whether or not dots are formed for the pixel Pb, two pixels, the pixel Pc and the pixel Pd, remain as undetermined pixels in the processing unit. Therefore, the gradation error generated in the pixel Pb is diffused by ½ each to the pixel Pc and the pixel Pd as shown in FIG. In the drawing, white arrows extending from the pixel Pb toward the pixels Pc and Pd schematically indicate that the gradation error generated in the pixel Pb is diffused to these pixels. As a result of the error being diffused in this way, the diffusion error of each pixel is updated to a new diffusion error obtained by adding the diffused error. Here, the gradation error is assumed to be evenly diffused to the undetermined pixels in the processing unit, but of course, the error may be diffused at a predetermined rate instead of being uniformly diffused. .
[0081]
After the gradation error generated in the pixel Pb is diffused to the surrounding pixels, the process returns to step S300 in FIG. 9 again, this time the target pixel is moved to the pixel Pc, and the same process is performed for the target pixel Pc. Hereinafter, such processing will be described with reference to FIG. When the processing for the pixel Pc is started, first, the correction data Cx is calculated by adding the image data DTc of the pixel Pc and the diffusion error EDc. Here, when the dot formation on / off of the pixel Pc is started, the diffusion error EDc of the pixel Pc is added with the error from the pixel Pa and the error from the pixel Pb in addition to the originally stored diffusion error. And updated as a new diffusion error EDc. Therefore, when calculating the correction data Cx of the pixel Pc, a new diffusion error EDc is calculated for the image data DTc of the pixel Pc. By comparing the correction data Cx thus obtained with a predetermined threshold th, it is determined whether or not dots are formed for the pixel Pc. Thus, at the time when it is determined whether or not dots are formed for the pixel Pc, the undetermined pixel remaining in the processing unit is only the pixel Pd as shown in FIG. Therefore, all the gradation errors generated in the pixel Pc are diffused to the pixel Pd, added to the diffusion error originally stored in the pixel Pd, and updated as a new diffusion error EDd.
[0082]
When the gradation error generated in the pixel of interest Pc is diffused, the process returns to step S300 in FIG. 9 to move the pixel of interest to the pixel Pd, and then the determination of dot formation on the pixel Pd is started. That is, the correction data Cx is calculated by adding the new diffusion error EDd associated with the pixel Pd and the image data DTd of the pixel Pd (steps S300 and S302). Next, the correction data Cx is compared with the threshold value th (step S304). If the correction data Cx is larger, it is determined that a dot is formed in the pixel Pd (step S306). Otherwise, the pixel Pd It is determined that no dot is formed (step S308).
[0083]
When it is determined whether or not dots are formed for the pixel Pd in this way, the gradation error generated in the pixel Pd is calculated (step S310), and then it is determined whether or not the processing of all the pixels in the processing unit has been completed (step S312). ). As shown in FIG. 10D, at the time when the processing for the pixel Pd is started, there is no longer any undetermined pixel in the processing unit, and in step S312 after the determination for the pixel Pd is completed. Is determined to have been processed for all the pixels in the processing unit. Therefore, the multi-value process in the unit shown in FIG. 9 is terminated, and the process returns to the gradation number conversion process performed in units as described above with reference to FIG. As shown in FIG. 5, in the unit-unit gradation number conversion process, after returning from the multi-value process in the unit, a process of diffusing the gradation error generated in the processing unit to surrounding units is performed (FIG. 5). 5 step S206).
[0084]
Here, as the value of the gradation error generated in the processing unit, the value of the gradation error obtained for the pixel Pd in step S310 of the intra-unit multilevel processing can be used. This is because the tone error generated in the unit is determined lastly because the tone error generated in the unit is determined while diffusing the tone error generated in the pixel of interest to the undetermined pixels in the unit. Is accumulated as a diffusion error EDd. Hereinafter, this will be described in detail with reference to FIG.
[0085]
The gradation error generated in the pixel Pa is diffused to three pixels of the pixel Pb, the pixel Pc, and the pixel Pd in the processing unit. In determining whether or not the pixel Pb has dot formation, the presence or absence of dot formation is determined so that the error diffused in the pixel Pb is eliminated as much as possible in consideration of the error from the pixel Pa. It is assumed that the error diffused to the pixel Pb can be eliminated by determining the presence or absence of dot formation for the pixel Pb. In this case, a new gradation error does not occur in the pixel Pb, and an error diffused from the pixel Pb to the pixels Pc and Pd does not occur. Similarly, with respect to the other two pixels Pc and Pd, it is assumed that the error diffused in each pixel can be eliminated by determining the presence or absence of dot formation. There is no error. Eventually, in this case, the gradation error generated in the pixel Pa is eliminated in the surrounding undetermined pixels Pb, Pc, and Pd, so that the entire processing unit can avoid the generation of the gradation error. it can.
[0086]
Here, it is assumed that the error in the pixel Pb is eliminated by determining whether or not the dot is formed in the pixel Pb. However, when a new gradation error occurs in the pixel Pb, this error is not detected in the surrounding undetermined pixel Pc. As a result, the gradation error generated in the pixel Pa and the gradation error generated in the pixel Pb are diffused in these pixels. However, if it is possible to eliminate the error diffused to each pixel by determining the presence or absence of dot formation for these pixels Pc and Pd, there will be no gradation error when viewed as a whole unit.
[0087]
Even if it is not possible to eliminate the diffusion error diffused in the pixel Pc by determining the presence or absence of dot formation for the pixel Pc, if the error can be eliminated in the pixel Pd in the same manner, There is no gradation error. In other words, the remaining error that cannot be resolved in the pixel Pd is the gradation error that occurs in the entire unit. As described above, when the presence or absence of dot formation is determined while diffusing the gradation error generated in the target pixel to the undetermined pixels in the unit, the remaining gradation error that cannot be resolved in each pixel is transferred to the subsequent pixels. Since they are collected, the gradation error that has occurred in the pixel Pd that is determined last in the unit can be used as the gradation error that has occurred in the entire processing unit.
[0088]
In the above description, the value of the gradation error generated in the pixel Pd that finally determines the presence or absence of dot formation in the processing unit is used as the gradation error generated in the entire processing unit. The gradation error may be calculated for each pixel constituting the unit, and the sum of these gradation errors may be used as the gradation error of the processing unit.
[0089]
Further, in the example shown in FIG. 10, when determining the presence or absence of dot formation of each pixel constituting the unit of interest, the determination is performed in the order of the pixel Pa, the pixel Pb, the pixel Pc, and the pixel Pd. For example, it may be determined whether or not dots are formed in the order of the pixel Pa, the pixel Pc, the pixel Pb, and the pixel Pd. The order in which the pixel of interest is set in the processing unit can be selected in order of obtaining good image quality.
[0090]
D-3. In-unit multilevel processing of the first embodiment:
As described above, when the gradation number conversion process is performed in units, the same process is repeated for each unit. From this, a pixel that is determined to form a dot in a certain unit tends to be easily determined that a dot is formed at the same position in the subsequent unit. Alternatively, although there is a unit where dots are not formed as individual units, dots may be formed in a fixed pattern with a plurality of units as a period. For example, when a certain area of image data continues, almost the same processing is repeated with a plurality of units as a cycle, and it is possible that dots are periodically formed in pixels at the same position in the unit. Of course, the size of the dot itself is so small that it is difficult to visually recognize. However, if dots are formed in a periodic pattern across multiple units, the existence of such a region may be visually recognized and the image quality may deteriorate. There is.
[0091]
In order to avoid the occurrence of such a problem, in the first embodiment, multi-value processing in the unit is performed, and when image data is converted into dot data in units, dots are formed in the already processed units. The detected pixel position is detected, and the presence or absence of dot formation is determined while reflecting the detection result. In this way, if the presence / absence of dot formation in the processing unit is determined while considering the history of pixel positions where dots are formed in the processed unit, the image quality that can be generated by converting the image data in units of units is determined. Deterioration can be avoided. In the following, the in-unit multilevel processing of the first embodiment will be described.
[0092]
FIG. 11 is a flowchart showing the flow of the intra-unit multilevel processing of the first embodiment. In this process, in contrast to the multi-value processing in the unit described above with reference to FIG. 9, the pixel position where the dot is formed in the processed unit is detected, and the tone number conversion process is performed while reflecting the detection result. The point of going is very different. Hereinafter, the intra-unit multi-value processing of the first embodiment will be described focusing on the differences from the above-mentioned multi-value processing within the unit.
[0093]
Also in the in-unit multi-value processing of the first embodiment, when processing is started, first, one pixel of interest is set from the processing unit (step S400), and correction data Cx for the set pixel of interest is calculated. (Step S402). The correction data Cx can be obtained by adding the image data of the target pixel and the diffusion error diffused and stored in the target pixel. Further, the image data and the diffusion error of each pixel constituting the processing unit have already been read in step S202 during the gradation number conversion process shown in FIG. 5, and data on the target pixel is used from these data. Correction data Cx is calculated.
[0094]
Next, in the intra-unit multi-value process of the first embodiment, a process of detecting a history of pixel positions where dots are formed in a processed unit and setting the threshold th to an appropriate value based on the detection result Is performed (step S404). This process (history detection / threshold setting process) will be described with reference to FIG.
[0095]
FIG. 12 is a flowchart showing the flow of the history detection / threshold setting process. When the history detection / threshold setting processing is started, first, history data reading processing is performed (step S500). The history data is data in which pixel positions determined to form dots for a processed unit are recorded, and stored in a dedicated buffer (history detection buffer) secured in a specific area on the RAM 106. .
[0096]
FIG. 13A is an explanatory diagram conceptually showing the structure of history data. The history data shown in FIG. 13A has a length of 20 bits, and each bit corresponds to a pixel position. As described above, since one unit is composed of four pixels here, five units of pixels are stored in the 20-bit history data. In this example, it is assumed that the data for 5 units is stored in the history data. However, the number of units for storing data is not limited to 5, and data for a larger number of units can be stored. Alternatively, data for a smaller number of units may be stored. Hereinafter, this will be specifically described with reference to FIG.
[0097]
As shown in the figure, the history data can be interpreted as five blocks with four consecutive bits as one block. These five blocks are, in order from the lower side (right side in the figure), the unit processed immediately before the unit being processed ("the previous unit") and the unit processed immediately before ("the previous two units" Each unit corresponds to five units, such as “unit”) and the unit processed immediately before (“three units before”). Also, the four bits constituting each block are, from the lower side, a pixel in the lower right corner (pixel Pd), a pixel in the lower left corner (pixel Pc), and a pixel in the upper right corner (pixel Pb) in the corresponding unit. , Corresponding to the pixel (pixel Pa) in the upper left corner. The fact that a value “1” is recorded in a certain bit in the history data means that a dot is formed in the pixel corresponding to that bit, and conversely the value “0” is stored in the bit. If it is, it means that no dot is formed in the pixel corresponding to the bit.
[0098]
In FIG. 13, the interpretation of 4 bits as one block corresponds to the fact that one unit is composed of four pixels here (see FIG. 6A). Accordingly, if one unit is composed of N pixels, the history data is interpreted as a block of consecutive N bits. Here, the history data is described as 20-bit data. However, one unit is composed of N pixels, and the dot formation status from the processing unit to the unit processed before M units is referred to. In this case, the history data may be data having a length of N × Mbit.
[0099]
As an example, history data as shown in FIG. 13B is assumed. Focusing on a group consisting of four bits on the lower side (right side in the figure) of the history data, the value “1” is set for the most significant (leftmost) bit and the least significant (rightmost) bit in this group. The value “0” is set for the other bits. This is because in the unit processed immediately before the unit being processed (the “previous unit”), dots are formed in the two pixels Pa and Pd, and no dots are formed in the other pixel positions. Means. Similarly, since the value “0” is stored in any bit for the group on the left side in the figure, in the unit processed two times before the processing unit, there is a dot in any pixel. It means that it is not formed. Since the value “1” is stored in the most significant bit in the group further to the left in the figure, the unit processed three times before the processing unit has a dot at the pixel position of the pixel Pa. Is formed. By interpreting the history data in this way, it is possible to know the dot formation status shown in FIG. 13C from the history data assumed in FIG.
[0100]
In step S500 of FIG. 12, such history data is read from the history detection buffer secured in a predetermined area on the RAM 106. After the history data is read out in this way, the process for setting history detection data is started (step S502). Such processing will be described with reference to FIGS.
[0101]
In setting history detection data, first, the number of units for detecting history is set. This is due to the following reason. As described above, in the intra-unit multi-value processing, since it is determined on a unit basis whether or not dots are formed in each pixel, dots may be easily formed at the same pixel position. For example, it is assumed that a region being processed in an image is a relatively low gradation image data region (bright image region) in which dots are formed at a rate of one pixel per 36 pixels. In such a region, dots are formed at a rate of approximately one in a square region composed of a total of 36 pixels of 6 pixels vertically and horizontally. In such an image data area, when it is determined whether or not dots are formed in units of 4 pixels (vertical and horizontal 2 pixels) as one unit, the same processing is repeated with a cycle of approximately 3 units (6 pixels). In other words, dots may be formed at the same pixel position in the third unit.
[0102]
In an area where dots are formed more sparsely, for example, an area where dots are formed at a rate of 1 pixel per 100 pixels, a square area composed of 10 pixels vertically and horizontally has a ratio of approximately one by one. Dots are formed. Therefore, when the presence or absence of dot formation is determined in units of four pixels as one unit, the same processing is repeated with a cycle of 5 units (for 10 pixels), resulting in the formation of dots at the same pixel position in the 5th unit. It can happen.
[0103]
Furthermore, substantially the same can occur even in a region where dots are formed in almost all pixels and pixels where dots are not formed are sparsely generated. For example, in a region where dots are formed at a high density, pixels in which dots are not formed may occur periodically. However, due to the influence of dot bleeding, periodic patterns tend to be less noticeable in regions where dots are formed at a higher density than in regions where dots are formed sparsely. There is a tendency that image quality is not adversely affected without considering the history of as many units as the area.
[0104]
In this way, the period in which dots are formed in a constant pattern depends on the density at which dots are formed, in other words, on the tone value of image data used to determine the presence or absence of dot formation. May be different. In areas where dots are formed sparsely, it is necessary to detect the history of distant units in order to detect patterns with a long period. There is no need to detect history. Therefore, when setting the history detection data, first, how far the history is detected, that is, the number of units to be detected is set.
[0105]
FIG. 14 is an explanatory diagram conceptually showing a state in which the number of units for detecting the history is set according to the gradation value of the image data. As shown in the figure, the number of units for detecting the history is stored in the printer driver in advance in association with the gradation value of the image data. FIG. 14 shows the case where the number of units is stored in association with the sum of the gradation values of each pixel constituting the unit to be processed, but is not limited to this. May be associated with the average value of the gradation values, or stored in association with the gradation value of each pixel constituting the unit.
[0106]
Further, the gradation value Crv shown in FIG. 14 indicates a threshold value that serves as a reference for determining whether or not it is easy to form a dot based on the detected history. That is, as described above, in the area where dots are sparsely formed, dots may be formed periodically, which may adversely affect image quality. Therefore, in order to avoid the occurrence of such a periodic pattern, It is preferable that the dots are not formed periodically. On the other hand, in a region where dots are formed at a high density, there is a possibility that the image quality may be adversely affected by the periodic generation of pixels where dots are not formed. It is preferable that dots are formed in pixels where no dot is formed. That is, when a periodic pattern is generated, the formation of dots is suppressed in the low gradation region and the formation of dots is promoted in the high gradation region. The gradation value Crv shown in FIG. 14 indicates a threshold value for determining whether to suppress or promote dot formation as described above, and when the sum of gradation values is smaller than the threshold value Crv. Dot formation is suppressed, and when the total value is larger than the threshold value Crv, it is determined to promote dot formation.
[0107]
When the number of units for detecting the history is set based on the correspondence shown in FIG. 14, the history detection data is set according to the position of the pixel (target pixel) for which the presence / absence of dot formation is to be determined. As described above, the dot formation may be suppressed or promoted depending on the value of the sum of the gradation values in the unit, but in the following, the sum is less than the threshold value Crv. The case where it is small (when the formation of dots is suppressed) will be described. As an example, consider a case in which it is determined whether or not dots are formed for the pixel Pa in the processing unit. In FIG. 15A, a large square with a broken line indicated by hatching indicates a processing unit, and a black square in the processing unit indicates a pixel of interest.
[0108]
Here, since the gradation value of the image data is small and it is necessary to detect the history from the processing unit to the previous unit, it is necessary to detect whether or not dots are formed in the pixels Pa of these five units. An explanation will be given assuming this. In FIG. 15A, “?” Shown in the pixel Pa of each unit schematically indicates that the dot formation status is detected at these pixel positions.
[0109]
FIG. 15B is an explanatory diagram conceptually showing history detection data set to detect the dot formation status at these pixel positions. The history detection data also has a length of 20 bits, similar to the history data described above, and is interpreted as five groups, with 4 bits as one group. The history detection data is composed of five groups, as described with reference to FIG. 13, corresponding to the fact that the history data stores data for five units. The reason why one group is formed by 4 bits corresponds to the fact that four pixels are collectively processed as one unit in this embodiment. The correspondence between each group of history detection data and the unit, and the correspondence between each bit and the pixel position in the unit are the same as in the case of the history data shown in FIG. . Here, the history detection data is described as data having the same length as the history data shown in FIG. 13, but the present invention is not limited to this.
[0110]
As shown in FIG. 15 (a), since it is assumed here that the dot formation status of the pixel Pa is to be detected for all five units, the history detection data is the pixel of each unit. It is only necessary to set data “1” only for the bit corresponding to Pa and data “0” for the other bits.
[0111]
Further, if the gradation value of the image data is not so small, and the history for three units may be detected, the history detection data may be the data shown in FIG. . That is, for a unit three units before the processing unit, data having a value “1” set in the bit corresponding to the pixel Pa and data “0” set in the other bits may be used.
[0112]
Similarly, when the pixel of interest is set to the pixel Pb, it is only necessary to detect whether or not dots are formed on the pixel Pb of each unit within the range from the processing unit to the set number of units. FIG. 16A is an explanatory diagram showing pixel positions for detecting the dot formation status in each unit when the target pixel is set to the pixel Pb. A pixel displaying “?” In the figure is a pixel that needs to detect the dot formation status. FIG. 16B is an explanatory diagram conceptually showing history detection data set in order to detect the dot formation state in such a pixel. As shown in the figure, history detection data in such a case is data in which the value of the bit corresponding to the pixel Pb of each unit is set to “1” and the other bits are set to the value “0”. Good. If it is sufficient to detect the history for three units, the history detection data may be data as shown in FIG.
[0113]
In step S502 of FIG. 12, as described above, the history detection data is set according to the position of the pixel of interest.
[0114]
When the history detection data is set in this way, the dot detection status (hereinafter referred to as history detection data is set and detected) by applying the set history detection data to the history data read in step S500. The formation status of the dot to be attempted is sometimes referred to as “target history”) (step S504).
[0115]
FIG. 17A is an explanatory diagram conceptually showing how the history detection data is applied to the history data to detect the target history. The upper part of FIG. 17A shows history data, and the lower part of the history data shows history detection data. When detecting the target history, first, a logical product of corresponding bits is calculated between the history data and the history detection data. Next, the target history can be detected by performing a logical sum of the bits of the intermediate data thus obtained. In this specification, “acting history detection data on history data” means that intermediate data is obtained by taking the logical product of corresponding bits between history data and history detection data. Say to calculate. In FIG. 17A, the intermediate data calculated by applying the history detection data to the history data is shown in the lower part of the history detection data. As described above, in the history detection data, the value “1” is set only at the pixel position to be detected in each unit, and the value “0” is set at the pixel position that does not need to be detected. When the logical product of the bits is calculated with the history data and the history detection data, the bit value corresponding to the pixel position is set to “1” only when a dot is formed at the pixel position to be detected. Is done.
[0116]
The above-described processing will be specifically described by paying attention to “the previous unit” shown in FIG. As shown in the history data, dots are formed in the pixel Pa and the pixel Pd in the “previous unit” of the processing unit. Here, since the pixel position where the dot formation status is to be detected is only the pixel Pa as shown in the history detection data, the intermediate data is the pixel Pa as shown in FIG. Only the bit corresponding to “1” has the value “1”, and the other bits have the value “0”. Thus, if any bit of the intermediate data has the value “1”, it means that a dot is formed in the unit at the pixel position to be detected. Thus, by analyzing the value of each bit of the intermediate data, it is possible to detect for each unit whether or not a dot is formed at the pixel position to be detected.
[0117]
In step S504 in FIG. 12, processing for calculating the detection result by taking the logical sum of each bit of the intermediate data is performed as described above. Based on the detection result thus obtained, it is determined whether a target history has been detected (step S506). When the value of the detection result is “0”, it is determined that the target history is not detected. That is, the value of the detection result (that is, the logical sum of each bit of the intermediate data) is “0” because a dot is formed at the pixel position to be detected in any unit to be detected. It means not. Therefore, if the value of the detection result is “0”, it can be determined that the target history has not been detected. On the other hand, if the value of the detection result is “1”, this means that a dot is formed at the pixel position to be detected in any of the units to be detected. Can be determined to be detected.
[0118]
In the intermediate data shown in FIG. 17 (a), the bits in the “1st previous unit” and “3rd previous unit” are set to the value “1”. The value “1” is obtained by calculating the detection result by taking the logical sum of each bit. Therefore, in this case, the target history is detected.
[0119]
As a reference, FIG. 17B shows the dot formation status represented by the history data shown in the upper part of FIG. As shown in FIG. 17A, the detection result calculated from the intermediate data is the value “1”, and a result indicating that a dot is formed in the pixel Pa is obtained. As shown in FIG. 17B, a dot is surely formed at the position of the pixel Pa of “the previous unit” and “the previous unit” of the processing unit. From this, it can be confirmed that the dot formation status can be accurately detected by using the method of applying the history detection data to the history data.
[0120]
In the above description, the case where dots are formed sparsely, that is, the case where the sum of the gradation values in the unit is smaller than the threshold value Crv in FIG. 14 has been described. The case where the total value is larger than the threshold value Crv can be considered in substantially the same manner.
In other words, it was avoided that dots were formed sparsely in a constant pattern in the low gradation area, whereas pixels in which dots were not formed were sparsely formed in a constant pattern in the high gradation area. Although the points to avoid are very different, the others are almost the same. Therefore, in the high gradation region, the history data is once inverted, that is, “0” is set for the bit set to “1”, and “1” is set for the bit set to “0”. As shown in FIG. 17, history detection data may be applied to the data obtained by setting. Thus, if the logical sum of the intermediate data is “1”, it is detected that pixels in which dots are not formed periodically occur.
[0121]
In the history detection / threshold setting processing of FIG. 12, processing for setting the value of the threshold th to an appropriate value is performed based on the target history thus detected. That is, when the target history is not detected in step S506, the normal value Vn is set as the threshold th (step S508).
[0122]
Conversely, when the target history is detected, it is determined whether or not the sum of the gradation values in the unit is larger than the threshold value Crv shown in FIG. 14 (step S510), and the total value is larger than the threshold value Crv. If it is smaller (step S510: no), the premium value Vm set to a value larger than the normal value Vn is set as the threshold th (step S512). Conversely, when the total value is larger than the threshold value Crv (step S510: yes), the additional value Vs set to a value larger than the normal value Vn is set as the threshold value th (step S514). The threshold value th set here is referred to in order to determine whether or not to form a dot on the target pixel during the multi-value processing in the unit. When the threshold value th is set in this way, the history detection / threshold value setting process of FIG. 12 is terminated, and the process returns to the intra-unit multi-value process of the first embodiment shown in FIG.
[0123]
When returning from the history detection / threshold setting process, the magnitude relationship between the correction data Cx calculated in step S402 and the threshold th is determined (step S406). The threshold th is set to an appropriate value by detecting the target history during the history detection / threshold setting process. If the correction data Cx is larger (step S406: yes), it is determined that a dot is formed on the target pixel (step S408). Otherwise (step S406: no), It is determined that no dot is to be formed (step S410). As described with reference to FIG. 12, in the region where the gradation value of the image data is low, when the target history is detected, the value of the threshold th is a predetermined premium value larger than the normally used value (normal value Vn). Since it is changed to (Vm), when the target history is detected, it is difficult to form dots on the target pixel. In the region where the gradation value of the image data is high, when the target history is detected, the value of the threshold th is changed to a predetermined decrease value (Vs) that is smaller than the value that is normally used (normal value Vn). As a result, when the target history is detected, dots are easily formed on the target pixel. The determination result of dot formation presence / absence thus obtained is stored in a variable indicating the determination result for each pixel.
[0124]
When the presence / absence of dot formation for the pixel of interest is determined as described above, the tone error that accompanies the determination is calculated (step S412). The method for calculating the gradation error is the same as that in the unit multi-value processing shown in FIG. Next, it is determined whether or not the processing for all the pixels in the processing unit has been completed (step S414). If unprocessed pixels remain (step S414: no), after performing a process of diffusing an error to those neighboring pixels in the unit (step S416), the process returns to step S400 to move the pixel of interest. Then, the following series of processes is repeated. In step S416, the process of diffusing the error to the pixels in the processing unit can be performed in the same manner as the above-described intra-unit multilevel processing described with reference to FIGS.
[0125]
On the other hand, when it is determined in step S414 that the processing of all the pixels in the processing unit has been completed (step S414: no), a process of writing the determination result for each pixel in the processing unit to the history detection buffer is performed. This is performed (step S418). Such processing will be described with reference to FIGS.
[0126]
FIG. 18 is a flowchart showing the flow of processing for writing the determination result for each pixel of the processing unit into the history detection buffer. When the process of writing to the history detection buffer is started, first, the process of shifting the data stored in the buffer by one unit in the upper direction is performed (step S600). FIG. 19 is an explanatory diagram schematically showing such processing. The small square column shown in the figure schematically shows the history detection buffer. The history detection buffer shown in the upper side of the figure shows the state before the data is shifted. The history detection buffer shown on the lower side shows a state after the data is shifted. In step S600 of FIG. 18, the data in the history detection buffer is shifted upward by one unit as shown in FIG. At this time, the data of the highest unit in the history detection buffer is discarded. In addition, a value “0” is written in each bit of the lowest unit after the shift, just in case. In FIG. 19, the history detection buffer is capable of storing data for five units, but may be capable of storing data for a larger number of units.
[0127]
After the data for one unit is shifted in the upper direction in this way (step S600 in FIG. 18), a process for setting 4-bit length data according to the determination result of each pixel in the processing unit is performed (step S602). Each bit of the data is associated with each pixel constituting the processing unit. Specifically, the most significant bit is associated with the pixel Pa of the processing unit, the second most significant bit is associated with the pixel Pb, the third bit is associated with the pixel Pc, and the least significant bit is associated with the pixel Pd. In step S602, a value “1” is written in a bit corresponding to a pixel in which a dot is formed in the processing unit, and a value “0” is written in a bit corresponding to a pixel in which no dot is formed. For example, when a dot is formed only in the pixel Pb in a certain processing unit and no dot is formed in other pixels, in the processing in step S602, “0100 (2)” is obtained as 4-bit length data corresponding to the processing unit. "Will be set. Note that (2) indicates that a binary number is displayed.
[0128]
In a succeeding step S604, a process for writing the set data in the area of the lowest unit of the history detection buffer is performed. In FIG. 19, the white arrow toward each bit of the lowest unit schematically shows how the set data is written into these bits.
[0129]
As described above, when the process of writing the determination result of each pixel in the processing unit to the history detection buffer is finished, the intra-unit multivalue processing of the first embodiment shown in FIG. Return to the tone number conversion process.
[0130]
As described above, in the intra-unit multilevel processing of the first embodiment, the presence / absence of the target history is detected during the history detection / threshold setting processing, and when the target history is detected, the value of the threshold th is increased. This makes it difficult for dots to be formed on the target pixel. For this reason, even if gradation number conversion processing is performed in units of units, it is possible to avoid a region where dots are formed at the same pixel position with a plurality of units as a cycle, and this region is visually recognized to deteriorate image quality. be able to. Even if dots are not formed on the pixel of interest because the set value of the threshold th is increased, the tone error caused by this is diffused to the surrounding undetermined pixels, and dots are formed at these surrounding pixels. It becomes easy. For this reason, even if it becomes difficult to form dots by detecting the dot formation status in a unit that has already been processed in the pixel where the dots are supposed to be formed, the image quality is reduced due to this. There is no deterioration.
[0131]
In the above description, when the target history is detected, the setting value of the threshold th used for determining whether or not dots are formed is changed to a large value so that it is difficult to form dots on the pixel of interest. Of course, when the target history is detected, it is possible to determine that no dot is formed in the target pixel. In this way, it is possible to easily avoid the formation of dots at the same pixel position with a plurality of units as a cycle.
[0132]
In the above description, history detection data is applied to history data to generate intermediate data, and a logical sum of each bit of the intermediate data is taken to calculate a detection result. On the other hand, the logical product of each bit of the intermediate data is taken, and this value may be used as the detection result. In this case, the value of the detection result is “1” only when dots are formed at all the pixel positions where the dot formation status is to be detected. Therefore, for example, in a situation where dots are formed at a certain density, it is possible to reliably detect only dots with a specific pattern that is easily visible.
[0133]
D-4. Variation:
Below, the modification of the log | history detection and threshold value setting process of 1st Example mentioned above is demonstrated.
[0134]
In the history detection / threshold value setting process of the first embodiment described above, it has been described that the stored history data for 5 units is always read. However, the history data to be read may be made variable according to the number of units to be traced. it can.
[0135]
FIG. 20 is a flowchart illustrating a flow of history detection / threshold setting processing according to the modification. Such processing differs greatly from the processing of the first embodiment described above in that the data length of the history data to be read can be changed according to the number of units for detecting the history. Hereinafter, it demonstrates according to a flowchart centering on difference.
[0136]
When the history detection / threshold setting process of the modified example is started, first, a total value of image data for each pixel constituting the processing unit is calculated (step S700). The image data of each pixel constituting the processing unit is read in advance in step S202 during the gradation number conversion process shown in FIG. 5, and the total value of the image data of each pixel can be easily calculated.
[0137]
Next, the number of units for detecting the history is set in accordance with the correspondence relationship with the total value shown in FIG. 14, and history data having a data length corresponding to the set number of units is read from the above-described history detection buffer (step S702).
[0138]
When the history data is read from the history detection buffer in this way, history detection data is subsequently set (step S704). This process is almost the same as the history detection / threshold value setting process of the first embodiment described above with reference to FIG. 12, except that the bit length of the history detection data varies depending on the processing unit. That is, in the above-described embodiment, the value “0” is set to all the pixels for the unit that does not detect the history in the history data. However, in this modification, the history data is stored by the unit for detecting the history. Since the data is read out, the data length of the history detection data varies according to the processing unit.
[0139]
Next, history detection data is applied to the history data to detect the presence or absence of the target history (the formation status of the dot to be detected). When the target history is detected in a region where the total sum of the tone values in the unit is smaller than the threshold value Crv shown in FIG. 14, the threshold value th is changed to a large value (Vm), and the total value is the threshold value. When the target history is detected in an area larger than Crv, the value of the threshold th is changed to a small value (Vs). If the target history is not detected, the threshold value th is set to the normal value Vn (steps S706 to S716). When the above processing is completed, the history detection / threshold value setting processing of the modified example is exited, and the processing returns to the in-unit multi-value processing shown in FIG.
[0140]
According to the history detection / threshold value setting process of the modified example described above, only necessary data can be read out from the stored history data, so that the process can be speeded up.
[0141]
E. Second embodiment:
In the history detection / threshold setting processing performed during the unit multi-value processing of the first embodiment described above, history data representing the dot formation status of the processed unit is stored in one history detection buffer. It was explained as being. Since the unit includes a plurality of pixels, in the first embodiment, data indicating the presence or absence of dot formation for each pixel is mixedly stored on the history detection buffer. On the other hand, as many buffers as the number of pixels constituting the unit are provided, and it is determined whether or not dots are formed for each pixel, the determination results may be stored in different buffers in association with the pixel positions in the unit. . Hereinafter, a second embodiment using a dedicated buffer for each pixel position will be described.
[0142]
E-1. In-unit multi-value processing of the second embodiment:
FIG. 21 is a flowchart showing the flow of the intra-unit multi-value processing of the second embodiment. This processing is largely different from the intra-unit multilevel processing of the first embodiment described above with reference to FIG. 11 in that a history detection buffer is provided for each pixel position. Another difference from the first embodiment is that the determination result is written in the corresponding history detection buffer every time it is determined whether or not a dot is formed for the target pixel. . In the following, the in-unit multi-value processing of the second embodiment will be described focusing on these differences from the first embodiment.
[0143]
When the process is started, first, a target pixel from which a dot is formed is determined from a plurality of pixels constituting the processing unit (step S800), and image data and diffusion error of the target pixel are detected. The correction data Cx is calculated by addition (step S802). As the image data and diffusion error for each pixel constituting the processing unit, data already read during the gradation number conversion processing shown in FIG. 5 is used.
[0144]
When the correction data Cx for the pixel of interest is thus calculated, the history detection / threshold setting process of the second embodiment is started (step S804). As described above, in the second embodiment, a dedicated history detection buffer provided according to the pixel position in the unit is used. Therefore, before describing the contents of such processing, the history detection buffer used in the history detection / threshold setting processing of the second embodiment will be described.
[0145]
FIG. 22 is an explanatory diagram schematically showing a history detection buffer provided in association with the pixel position in the unit. The “history detection buffer A” shown in the figure is a buffer associated with the pixel Pa in the unit. This buffer stores the dot formation determination result for the pixel Pa. The “history detection buffer B” is a buffer in which the determination result for the pixel Pb is stored in association with the pixel Pb in the unit. Similarly, the determination result for the pixel Pc in the unit is recorded in the “history detection buffer C”, and the determination result for the pixel Pd is stored in the “history detection buffer D”. Thus, in the second embodiment, dedicated buffers associated with pixel positions in the unit are provided, and history data is stored in the respective buffers.
[0146]
Next, taking the “history detection buffer A” as an example, the data structure of the stored history data will be described. Each bit of the history detection buffer A is associated with the previous unit one by one from the processing unit in order from the lower side (right side in FIG. 22). That is, the least significant bit (the rightmost bit in the figure) is associated with the “one previous unit” of the processing unit, and the second bit from the lower level is assigned to the “second previous unit” and the lower 3 bits. Each bit is associated with each unit in order, for example, the second bit is “3rd previous unit”. The value “1” being set in these bits indicates that a dot is formed in the pixel Pa of the corresponding unit, and conversely that the value “0” is set corresponds. This indicates that no dot is formed on the pixel Pa of the unit.
[0147]
As is clear from the above description, the history data illustrated in FIG. 22 stored in the history detection buffer A is for the units one, three, five, eight, and eight before the processing unit. Indicates that a dot is formed in the pixel Pa and no dot is formed in the pixel Pa for other units. In FIG. 22, each history detection buffer has a data length of 8 bits, but it may be data having a larger number of bits.
[0148]
The history detection / threshold setting process of the second embodiment performed using such history detection data will be described below. The history detection / threshold setting process of the second embodiment is different from the process of the first embodiment described above in that a history detection buffer is provided for each pixel position, and the other processes are almost the same. It is. Accordingly, the following description will be made with reference to the flowchart of FIG. 12 describing the history detection / threshold value setting process of the first embodiment. This process is a process executed in step S804 on the target pixel after the target pixel is set in the in-unit multi-value processing of FIG. 21 (step S800).
[0149]
When the history detection / threshold setting processing of the second embodiment is started, first, history data is read from the history detection buffer (corresponding to step S500 in FIG. 12). As described with reference to FIG. 22, in the second embodiment, a history detection buffer is provided according to the pixel position, and in this process, a necessary data amount is obtained from the buffer corresponding to the same pixel position as the target pixel. Read the history data. For example, assuming that the pixel of interest is located in the pixel Pa and the dot formation status is detected retroactively by 5 units, data of 5 bits is read from the lower side of the “history detection buffer A”. As a result, in the example shown in FIG. 22, “10101 (2)” is read as the history data. Here, (2) indicates that a binary number is displayed. If the target pixel is set to the pixel Pb, the pixel Pc, and the pixel Pd, the history data recorded in the history detection buffer B, the history detection buffer C, and the history detection buffer D are read out. Good.
[0150]
When the history data is read in this way, subsequently, processing for setting history detection data is performed (corresponding to step S502 in FIG. 12). Such processing will be described with reference to FIG. For example, it is assumed that the dot formation status is detected retroactively from the processing unit to the previous unit. FIG. 23A is an explanatory diagram conceptually showing the distribution of pixel positions for which the dot formation status is to be detected. Each small square in the drawing schematically shows a pixel. A large square indicated by a thick broken line schematically shows a unit being processed, and a large square indicated by a thin broken line schematically shows a unit that has already been processed. The hatched pixels in the processing unit indicate the target pixel, and the pixels marked with “?” In the processed unit indicate the pixels for which the dot formation status is to be detected.
[0151]
FIG. 23B shows history detection data used to detect the dot formation status for such pixels. Here, since it is assumed that detection is performed retroactively from the processing unit to the previous unit, the value “1” is set in the bits from the least significant bit to the 5th bit in the history detection data, and the higher bit than the 6th bit is set. Is set to the value “0”. In this way, history detection data can be set by setting a value “1” in the bit corresponding to the unit to be detected and setting a value “0” in the other bits. FIG. 23C shows the history detection data set in this way displayed in hexadecimal.
[0152]
When history detection data is set in this way, the target history (the dot formation status at the pixel position to be detected) is detected by applying the set history detection data to the previously read history data (FIG. 12). Step S504). The target history is detected in the same manner as in the first embodiment. That is, the intermediate data is calculated by taking the logical product of the corresponding bits between the history data and the history detection data, and the detection result is calculated by taking the logical sum of each bit of the obtained intermediate data. . If the obtained detection result is the value “1”, it is determined that the target history has been detected, and the premium value Vp is set to the threshold th. If the detection result is the value “0”, it is determined that the target history has not been detected, and the normal value Vn is set as the threshold th. When the threshold value th is set to an appropriate value as described above, the history detection / threshold value setting process of the second embodiment is terminated, and the process returns to the in-unit multi-value process shown in FIG. Here, the detection result is calculated by taking the logical sum of each bit of the intermediate data, but the detection result may be calculated by taking the logical product of each bit of the intermediate data.
[0153]
When the threshold value th is set as described above and the processing returns to the multi-value processing in the unit of the second embodiment shown in FIG. 21, the magnitude relationship between the correction data Cx of the target pixel and the threshold value th is subsequently determined. (Step S806 in FIG. 21). If the correction data Cx is larger, it is determined that a dot is to be formed on the pixel of interest (step S808). Otherwise, it is determined that no dot is to be formed (step S810). Next, after calculating a gradation error caused by determining the presence or absence of dot formation (step S812), a process of writing the determination result for the pixel of interest into the corresponding history detection buffer is started (step S814). Such processing will be described with reference to FIG.
[0154]
FIG. 24 is an explanatory diagram conceptually showing a state in which the determination result for the pixel of interest is written in the history detection buffer in the unit multi-value quantization process of the second embodiment. Assuming that the pixel of interest is set to the pixel Pa, the determination result of dot formation presence / absence is written in the history detection buffer A. In writing the determination result, the history data stored in the history detection buffer A is first shifted to the upper side (left side in the figure) by 1 bit. The upper part of FIG. 24 shows the history data stored in the history detection buffer A before shifting, and the lower part shows the history data stored in the buffer after shifting. As the history data is shifted, the data stored in the most significant bit is discarded. Next, a process of writing a value corresponding to the determination result for the pixel of interest in the least significant bit is performed. If it is determined that a dot is to be formed in the pixel of interest, the value “1” is written in the least significant bit, and if it is determined that no dot is to be formed in the pixel of interest, a value “0” is written. In the above description, the pixel of interest has been described as being set to the pixel Pa. However, the history detection corresponding to the pixel position of the pixel of interest is similarly performed when the pixel of interest is set to another pixel position. A value corresponding to the determination result may be written in the buffer. In step S814 in FIG. 21, a process for writing the determination result for the target pixel in this way into the history detection buffer corresponding to the target pixel is performed.
[0155]
When the process of writing the determination result of the target pixel is completed in this way (step S814 in FIG. 21), it is determined whether the process for all the pixels in the processing unit is completed (step S816), and unprocessed pixels remain. If so, the process returns to step S800 to repeat the series of processes described above. When the process for all the pixels is completed, the process returns to the gradation number conversion process shown in FIG.
[0156]
In the intra-unit multilevel processing of the second embodiment described above, each bit of the history detection buffer is associated with each processed unit. Accordingly, even when the number of units to be examined retrospectively for the dot formation status increases, it is only necessary to read data having the same bit length as the number of units. For example, when detecting the dot formation status by going back 8 units from the unit being processed, it is necessary to read the history data of 32 bits in the first embodiment, assuming that one unit is composed of four pixels. However, in the second embodiment, it is only necessary to read 8-bit data. For this reason, in the second embodiment, even if the number of units to be traced back is large, a quick process can be performed.
[0157]
E-2. Modification of the second embodiment:
In the second embodiment described above, the pixel position for detecting the dot formation state is described as being the same pixel as the pixel of interest. However, similarly to the first embodiment, the pixel position for detecting the dot formation status can be freely set. In the second embodiment, the pixel for detecting the dot formation status is also a unit. It is possible to set an arbitrary pixel position every time. Hereinafter, a modification of the second embodiment will be described.
[0158]
FIG. 25 is an explanatory diagram showing a method of detecting the dot formation status at an arbitrary pixel position in the second embodiment. FIG. 25A is an explanatory diagram illustrating the distribution of pixel positions to be detected. The small squares shown in the figure schematically indicate pixels, and the large squares indicated by broken lines indicate units. The pixel position where the dot formation state is to be detected is indicated by a “?” Mark in the pixel. Although the pixel position and the number of pixels to be detected can be set arbitrarily, the following description will be made assuming that the dot formation status at the pixel position shown in FIG.
[0159]
FIG. 25B is an explanatory diagram illustrating a method for detecting a dot formation state at an arbitrary pixel position in the second embodiment. In the second embodiment, as described above, since the determination result of dot formation presence / absence is stored for each pixel position of each unit, each dot formation state at an arbitrary pixel position can be detected. Detection is performed by a method focusing on the pixel position of the unit. In other words, in the example shown in FIG. 25A, the dot formation status for the pixel position of the pixel Pa is to be detected by the “one previous unit”, “two previous units” of the processing units, These are the three units of “3rd previous unit”. Further, the pixel position of the pixel Pb is two units of “the previous unit” and “the second previous unit” of the processing unit. Furthermore, as for the pixel position of the pixel Pc or the pixel Pd, the dot formation status is detected only in the “one unit before” of the processing unit. In this way, after detecting the unit position for detecting the dot formation status for each pixel position, if it is determined for each pixel position whether or not a dot is formed in the detected unit, any pixel position can be determined. It is possible to detect the dot formation status. Hereinafter, specific description will be made in accordance with the case shown in FIG.
[0160]
First, the case where the dot formation status of the pixel Pa is detected will be described. FIG. 25B schematically shows how the dot formation status at the pixel position of the pixel Pa is detected in this way. First, the history data for 3 units (data corresponding to 3 bits from the lowest order) is read from the buffer (history detection buffer A) in which the dot formation determination result at the pixel Pa is stored. Of course, when detecting a larger number of units retrospectively, the data length to be read out may be increased accordingly.
[0161]
Next, history detection data is applied to the history data. The history detection data is set according to the unit that is trying to detect the dot formation status at the pixel Pa. As shown in FIG. 25 (a), for the pixel Pa, the dot formation status is detected by three units of the processing unit "one previous unit", "second previous unit", and "three previous units". In response to this, in the history detection data, the value “1” is set in the three least significant bits. The history detection data set in this way ("111 (2)" in binary notation) is applied to the read history data to calculate intermediate data. “Making history detection data act on history data” means taking a logical product between corresponding bits of two data as described above. When the intermediate data is obtained in this way, a detection result for the pixel Pa can be obtained by calculating a logical sum between each bit of the intermediate data.
[0162]
The detection result thus obtained for the pixel Pa means the following. That is, the detection result having the value “0” means that no dot is formed in the pixel Pa in any of the units to be detected, and conversely, the detection result is “1”. This means that a dot is formed in the pixel Pa in any of the units to be detected. Of course, instead of taking the logical sum of each bit of the intermediate data, a logical product may be taken. When the logical product of each bit of the intermediate data is taken, the detection result value of “1” means that dots are formed in the pixels Pa of all the units to be detected. Become.
[0163]
The detection result for the pixel Pb can be obtained by the same method. FIG. 25C schematically shows how the dot formation status for the pixel Pb is detected. Briefly described with reference to FIG. 25 (b), first, history data for three units is read from a buffer (history detection buffer B) in which the presence or absence of dot formation for the pixel Pb is recorded. Next, history detection data is applied to this data to calculate intermediate data. For the pixel Pb, since the dot formation status of the “one previous unit” and “two previous units” of the processing unit is to be detected, the history detection data corresponding to this is the least significant bit. From which two bits are set to the value “1” (“011 (2)” in binary notation). Thus, by obtaining a logical sum between each bit of the obtained intermediate data, a detection result for the pixel Pb can be obtained.
[0164]
The detection result for each pixel can be calculated in the same manner for the pixels Pc and Pd. For these pixels, the unit that is trying to detect the dot formation status is only “the previous unit” of the processing unit. Therefore, for these pixels, the value “1” is set only for the least significant bit as history detection data. May be used (“001 (2)” in binary display). FIG. 25 (d) shows how the detection result for the pixel Pc is calculated, and FIG. 25 (e) shows how the detection result for the pixel Pd is calculated.
[0165]
Once the detection results for each pixel are obtained in this way, the final detection result can be obtained by calculating the logical sum of these detection results. That is, if a dot is formed in any of the pixels indicated by “?” In FIG. 25A, a value “1” is obtained as a detection result, and conversely, a dot is formed in any pixel. If not, the value “0” is obtained as the detection result. Of course, the final detection result may be calculated by taking the logical product of the detection results for each pixel. In such a case, when dots are formed in all the pixels indicated by “?” In FIG. 25A, the final detection result value is “1”.
[0166]
By using the method described above, it is possible to freely set a pixel position from which a dot formation state is to be detected from among already processed units. Therefore, even in the case where the presence / absence of dot formation is determined on a unit basis, the dot formation status at a predetermined pixel position is detected, and the presence / absence of dot formation is determined based on the detection result. It is possible to effectively avoid the formation of dots in a predetermined pattern.
[0167]
While various embodiments have been described above, the present invention is not limited to all the embodiments described above, and can be implemented in various modes without departing from the scope of the invention.
[0168]
For example, in the various embodiments described above, a so-called error diffusion method is used as a method for determining the presence or absence of dot formation for each pixel constituting the unit. However, the present invention is not limited to this, and other known methods such as a dither method can be used. Techniques can also be applied.
[0169]
A software program (application program) that realizes the above-described functions may be supplied to a main memory or an external storage device of a computer system via a communication line and executed. Of course, a software program stored in a CD-ROM or a flexible disk may be read and executed.
[0170]
In the various embodiments described above, the image data conversion process including the gradation number conversion process has been described as being executed in the computer. However, part or all of the image data conversion process is performed on the printer side or a dedicated image processing apparatus. It may be executed by using.
[0171]
Furthermore, the image display device is not necessarily limited to a printing device that prints an image by forming ink dots on a print medium. For example, bright spots are dispersed at an appropriate density on a liquid crystal display screen. Thus, a liquid crystal display device that expresses an image whose gradation changes continuously may be used.
[Brief description of the drawings]
FIG. 1 is a schematic configuration diagram of a printing system illustrating an outline of the present invention.
FIG. 2 is an explanatory diagram illustrating a configuration of a computer as an image processing apparatus according to the present exemplary embodiment.
FIG. 3 is a schematic configuration diagram of a printer as an image display apparatus according to the present exemplary embodiment.
FIG. 4 is a flowchart illustrating a flow of image data conversion processing performed by the image processing apparatus according to the present exemplary embodiment.
FIG. 5 is a flowchart showing a flow of gradation number conversion processing performed in units.
FIG. 6 is an explanatory diagram showing a state in which a plurality of pixels are collectively set as a processing unit.
FIG. 7 is an explanatory view exemplifying a state in which a gradation error generated in a processing unit is diffused to surrounding undetermined pixels.
FIG. 8 is an explanatory diagram exemplifying a ratio of diffusing a gradation error generated in a processing unit to surrounding undetermined pixels.
FIG. 9 is a flowchart showing a flow of a process for multi-value the inside of a unit by determining the presence or absence of dot formation for each pixel constituting the unit.
FIG. 10 is an explanatory diagram conceptually showing a method of determining the presence or absence of dot formation for each pixel while diffusing an error to each pixel in the unit.
FIG. 11 is a flowchart showing a flow of processing for multi-valued in the unit by determining the presence or absence of dot formation for each pixel in the unit in the first embodiment.
FIG. 12 is a flowchart showing a flow of processing for detecting a dot formation state and setting a threshold value in the first embodiment.
FIG. 13 is an explanatory diagram conceptually showing the structure of history data read in the history detection / threshold value setting process of the first embodiment.
FIG. 14 is an explanatory diagram conceptually showing a state in which the number of units for detecting a history is set in association with the sum of the gradation values of the pixels constituting the unit.
FIG. 15 is an explanatory diagram conceptually showing the structure of history detection data set for detecting a history in the history detection / threshold value setting process of the first embodiment;
FIG. 16 is an explanatory diagram conceptually showing the structure of different history detection data.
FIG. 17 is an explanatory diagram conceptually showing a state of detecting a target history by applying history detection data to history data in history detection / threshold setting processing of the first embodiment.
FIG. 18 is a flowchart showing a flow of processing for writing a determination result for each pixel in a unit to a history detection buffer storing history data in the first embodiment.
FIG. 19 is an explanatory diagram conceptually showing a state in which a determination result for each pixel in a unit is written in a history detection buffer storing history data in the first embodiment.
FIG. 20 is a flowchart showing a flow of processing for detecting a dot formation state and setting a threshold value in a modification of the first embodiment.
FIG. 21 is a flowchart showing a flow of processing for multi-valued in the unit by determining whether or not dots are formed for each pixel in the unit in the second embodiment.
FIG. 22 is an explanatory diagram conceptually showing a history detection buffer provided in association with pixel positions in a unit in the second embodiment.
FIG. 23 is an explanatory diagram conceptually showing a method of setting history detection data in accordance with the pixel position where the dot formation status is to be detected in the second embodiment.
FIG. 24 is an explanatory diagram conceptually showing a method of writing a determination result of dot formation presence / absence in a history detection buffer in the second embodiment.
FIG. 25 is an explanatory diagram conceptually showing a method for detecting a dot formation state at an arbitrary pixel position by applying history detection data to history data in the second embodiment.
[Explanation of symbols]
10 ... Computer
12. Printer driver
14 ... Tone conversion module
20 Color printer
100: Computer
102 ... CPU
104 ... ROM
106 ... RAM
108 ... Peripheral device interface P / IF
109 ... Disk controller DDC
110: Network interface card NIC
112 ... Video interface V / IF
114 ... CRT
116 ... Bus
118: Hard disk
120 ... Digital camera
122 ... Color scanner
124: Flexible disk
126 ... Compact disc
200 ... Color printer
230 ... Carriage motor
235 ... Paper feed motor
236 ... Platen
240 ... carriage
241 ... Print head
242, 243 ... Ink cartridge
244 ... Ink ejection head
260 ... control circuit
261 ... CPU
262 ... ROM
263 ... RAM
300 ... communication line
310 ... Storage device

Claims (7)

画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理装置であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換するドットデータ変換手段と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶するドット有無記憶手段と
を備え、
前記ドットデータ変換手段は、
前記ドットデータ変換対象のユニットを構成する各画素についての階調値の総和を算出し、該総和値に基づいて、前記変換済みのユニットの中から所定数のユニットを選択する変換済みユニット選択手段と、
前記ドットデータ変換対象のユニット内で、ドット形成有無を判断するための着目画素を順次設定する着目画素設定手段と、
前記着目画素の画素位置に対応した前記変換済みのユニット中の所定位置にある画素でのドット形成有無を、前記選択した所定数のユニットについて検出するドット形成有無検出手段と、
前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、前記着目画素の階調値が大きくなるほどドット形成有りとなり易いように、該着目画素についてのドット形成の有無を判断するドット形成判断手段と
を有しており、
前記変換済みユニット選択手段は、第1の所定値よりも小さい総和値である場合は、該第1の所定値よりも大きく且つ第2の所定値よりも小さい総和値である場合よりも、前記着目画素から遠方のユニットを選択する手段である画像処理装置。
An image processing apparatus that converts image data represented by gradation values for each pixel constituting an image into dot data indicating the presence or absence of dot formation for each pixel,
Dot data conversion means for grouping a predetermined plurality of adjacent pixels as a unit, and converting the image data into the dot data in units.
For at least some of the pixels constituting the converted unit, comprising dot presence / absence storage means for storing the presence / absence of dot formation in a state where the pixel positions in the unit can be identified, and
The dot data conversion means includes
Converted unit selection means for calculating a total sum of gradation values for each pixel constituting the unit to be converted to dot data and selecting a predetermined number of units from the converted units based on the total value When,
A pixel-of-interest setting means for sequentially setting a pixel of interest for determining the presence or absence of dot formation within the dot data conversion target unit;
Dot formation presence / absence detection means for detecting, with respect to the selected predetermined number of units, dot formation presence / absence in a pixel at a predetermined position in the converted unit corresponding to the pixel position of the target pixel;
Based on the gradation value of the image data for the pixel of interest and the presence / absence of the detected dot formation, the dot formation of the pixel of interest is made easier as the gradation value of the pixel of interest increases. Dot formation determination means for determining presence or absence,
When the converted unit selection means is a sum value smaller than a first predetermined value, the converted unit selection means is more than the sum value larger than the first predetermined value and smaller than a second predetermined value. An image processing apparatus as means for selecting a unit far from the pixel of interest.
請求項1記載の画像処理装置であって、
前記変換済みユニット選択手段は、
前記第1の所定値より小さな総和値である場合は、該第1の所定値より大きく且つ前記第2の所定値より小さな総和値である場合の最も遠方のユニットよりも近傍にあるユニットも、対応付けて記憶している手段である画像処理装置。
The image processing apparatus according to claim 1,
The converted unit selection means includes:
When the sum is smaller than the first predetermined value, a unit that is closer to the farthest unit when the sum is larger than the first predetermined value and smaller than the second predetermined value, An image processing apparatus, which is a means for storing in association with each other.
画像を構成する各画素についての階調値によって表現された画像データを受け取り、該画像データに基づいて印刷媒体上にドットを形成することによって該画像を印刷する印刷装置であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換するドットデータ変換手段と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶するドット有無記憶手段と、
前記得られたドットデータに基づいて前記画素の各々にドットを形成するドット形成手段と
を備え、
前記ドットデータ変換手段は、
前記ドットデータに変換しようとするユニットを構成する各画素についての階調値の総和を算出し、該総和値に基づいて、前記変換済みのユニットの中から所定数のユニットを選択する変換済みユニット選択手段と、
前記ドットデータに変換しようとするユニット内で、ドット形成有無を判断するための着目画素を順次設定する着目画素設定手段と、
前記着目画素の画素位置に対応した前記変換済みのユニット中の所定位置にある画素でのドット形成有無を、前記選択した所定数のユニットについて検出するドット形成有無検出手段と、
前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、前記着目画素の階調値が大きくなるほどドット形成有りとなり易いように、該着目画素についてのドット形成の有無を判断するドット形成判断手段と
を有しており、
前記変換済みユニット選択手段は、第1の所定値よりも小さい総和値である場合は、該第1の所定値よりも大きく且つ第2の所定値よりも小さい総和値である場合よりも、前記着目画素から遠方のユニットを選択する手段である印刷装置。
A printing apparatus that receives image data represented by gradation values for each pixel constituting an image and prints the image by forming dots on a print medium based on the image data,
Dot data conversion means for grouping a predetermined plurality of adjacent pixels as a unit, and converting the image data into the dot data in units.
For at least some of the pixels constituting the converted unit, dot presence / absence storage means for storing the presence / absence of dot formation in a state where the pixel position in the unit can be identified;
Dot forming means for forming dots on each of the pixels based on the obtained dot data,
The dot data conversion means includes
A converted unit that calculates a total sum of gradation values for each pixel constituting a unit to be converted into the dot data, and selects a predetermined number of units from the converted units based on the total value A selection means;
A pixel-of-interest setting means for sequentially setting a pixel of interest for determining the presence or absence of dot formation in the unit to be converted into the dot data;
Dot formation presence / absence detection means for detecting, with respect to the selected predetermined number of units, dot formation presence / absence in a pixel at a predetermined position in the converted unit corresponding to the pixel position of the target pixel;
Based on the gradation value of the image data for the pixel of interest and the presence / absence of the detected dot formation, the dot formation of the pixel of interest is made easier as the gradation value of the pixel of interest increases. Dot formation determination means for determining presence or absence,
When the converted unit selection means is a sum value smaller than a first predetermined value, the converted unit selection means is more than the sum value larger than the first predetermined value and smaller than a second predetermined value. A printing apparatus that is means for selecting a unit far from the pixel of interest.
請求項3記載の印刷装置であって、The printing apparatus according to claim 3,
前記変換済みユニット選択手段は、  The converted unit selection means includes:
前記第1の所定値より小さな総和値である場合は、該第1の所定値より大きく且つ前記第2の所定値より小さな総和値である場合の最も遠方のユニットよりも近傍にあるユニットも、対応付けて記憶している手段である印刷装置。    If the total value is smaller than the first predetermined value, the unit that is closer to the farthest unit when the total value is larger than the first predetermined value and smaller than the second predetermined value, A printing apparatus, which is a means for storing in association with each other.
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理方法であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する第1の工程と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶しておく第2の工程と
を備え、
前記第1の工程は、
前記ドットデータに変換しようとするユニットを構成する各画素についての階調値に基づいて、該総和値との対応関係に従って、前記変換済みのユニットの中から所定数のユニットを選択する下位工程(1−a)と、
前記ドットデータに変換しようとするユニット内で、ドット形成有無を判断するための着目画素を順次設定する下位工程(1−b)と、
前記着目画素の画素位置に対応した前記変換済みのユニット中の所定位置にある画素でのドット形成有無を、前記選択した所定数のユニットについて検出する下位工程(1−c)と、
前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、前記着目画素の階調値が大きくなるほどドット形成有りとなり易いように、該着目画素についてのドット形成の有無を判断する下位工程(1−d)と
を有しており、
前記下位工程(1−a)は、前記総和値との対応関係として、第1の所定値よりも小さい総和値である場合は、該第1の所定値よりも大きく且つ第2の所定値よりも小さい総和値である場合よりも、前記着目画素から遠方のユニットを選択する工程である画像処理方法。
An image processing method for converting image data expressed by gradation values for each pixel constituting an image into dot data indicating the presence or absence of dot formation for each pixel,
A first step of grouping a predetermined plurality of pixels adjacent to each other as a unit, and converting the image data into the dot data in units;
For at least some of the pixels constituting the converted unit, a second step of storing the presence or absence of dot formation in a state where the pixel positions in the unit can be identified, and
The first step includes
A sub-step of selecting a predetermined number of units from the converted units according to the correspondence with the total value based on the gradation value for each pixel constituting the unit to be converted into the dot data ( 1-a)
A sub-step (1-b) for sequentially setting a pixel of interest for determining whether or not to form dots in a unit to be converted into dot data;
A sub-step (1-c) for detecting, with respect to the selected predetermined number of units, the presence or absence of dot formation at a pixel at a predetermined position in the converted unit corresponding to the pixel position of the target pixel;
Based on the gradation value of the image data for the pixel of interest and the presence / absence of the detected dot formation, the dot formation of the pixel of interest is made easier as the gradation value of the pixel of interest increases. And sub-step (1-d) for determining the presence or absence,
In the lower step (1-a), when the total value is smaller than the first predetermined value as the correspondence relationship with the total value, the lower step (1-a) is larger than the first predetermined value and larger than the second predetermined value. An image processing method, which is a step of selecting a unit farther from the pixel of interest than when the sum is smaller.
請求項5記載の画像処理方法であって、The image processing method according to claim 5, comprising:
前記下位工程(1−a)は、  The substep (1-a) includes
前記第1の所定値より小さな総和値である場合は、該第1の所定値より大きく且つ前記第2の所定値より小さな総和値である場合の最も遠方のユニットよりも近傍にあるユニットも選択する工程である画像処理方法。    If the sum is smaller than the first predetermined value, a unit closer to the farthest unit when the sum is larger than the first predetermined value and smaller than the second predetermined value is also selected. An image processing method which is a process to perform.
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する方法を、コンピュータを用いて実現するためのプログラムであって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する第1の機能と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶しておく第2の機能と
を実現するとともに、
前記第1の機能は、更に、
前記ドットデータに変換しようとするユニットを構成する各画素についての階調値に基づいて、該総和値との対応関係に従って、前記変換済みのユニットの中から所定数のユニットを選択する機能(1−a)と、
前記ドットデータに変換しようとするユニット内で、ドット形成有無を判断するための着目画素を順次設定する機能(1−b)と、
前記着目画素の画素位置に対応した前記変換済みのユニット中の所定位置にある画素でのドット形成有無を、前記選択した所定数のユニットについて検出する機能(1−c)と、
前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、前記着目画素の階調値が大きくなるほどドット形成有りとなり易いように、該着目画素についてのドット形成の有無を判断する機能(1−d)と
を有しており、
前記機能(1−a)は、前記総和値との対応関係として、第1の所定値よりも小さい総和値である場合は、該第1の所定値よりも大きく且つ第2の所定値よりも小さい総和値である場合よりも、前記着目画素から遠方のユニットを選択するプログラム。
A program for realizing, using a computer, a method for converting image data expressed by gradation values for each pixel constituting an image into dot data indicating the presence or absence of dot formation for each pixel. ,
A first function of grouping a plurality of adjacent pixels as a unit, and converting the image data into the dot data in units;
For at least some of the pixels constituting the converted unit, the second function of storing the presence / absence of dot formation in a state where the pixel positions in the unit can be identified, and
The first function further includes:
A function (1) for selecting a predetermined number of units from the converted units based on the gradation value for each pixel constituting the unit to be converted into the dot data, according to the correspondence relationship with the total value. -A)
A function (1-b) for sequentially setting a pixel of interest for determining the presence or absence of dot formation in the unit to be converted into the dot data;
A function (1-c) for detecting, with respect to the selected predetermined number of units, the presence or absence of dot formation at a pixel at a predetermined position in the converted unit corresponding to the pixel position of the target pixel;
Based on the gradation value of the image data for the pixel of interest and the presence / absence of the detected dot formation, the dot formation of the pixel of interest is made easier as the gradation value of the pixel of interest increases. And a function (1-d) for determining presence or absence,
When the function (1-a) is a total value smaller than the first predetermined value as a correspondence relationship with the total value, the function (1-a) is larger than the first predetermined value and larger than the second predetermined value. A program for selecting a unit farther from the pixel of interest than when the sum is smaller.
JP2003206899A 2003-08-08 2003-08-08 Image processing apparatus for converting image data in units of multiple pixels Expired - Fee Related JP4013855B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003206899A JP4013855B2 (en) 2003-08-08 2003-08-08 Image processing apparatus for converting image data in units of multiple pixels
US10/913,298 US7414756B2 (en) 2003-08-08 2004-08-06 Image processing apparatus for converting image data by unit of multiple pixels and printing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003206899A JP4013855B2 (en) 2003-08-08 2003-08-08 Image processing apparatus for converting image data in units of multiple pixels

Publications (2)

Publication Number Publication Date
JP2005064555A JP2005064555A (en) 2005-03-10
JP4013855B2 true JP4013855B2 (en) 2007-11-28

Family

ID=34363593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003206899A Expired - Fee Related JP4013855B2 (en) 2003-08-08 2003-08-08 Image processing apparatus for converting image data in units of multiple pixels

Country Status (1)

Country Link
JP (1) JP4013855B2 (en)

Also Published As

Publication number Publication date
JP2005064555A (en) 2005-03-10

Similar Documents

Publication Publication Date Title
JP3912055B2 (en) Image processing apparatus, print control apparatus, image processing method, and recording medium
KR100485635B1 (en) Image processing device, printing control device, image processing method, and recorded medium
KR100611236B1 (en) Image processing device, image processing method, printing control device, and recording media
JP4192640B2 (en) Image processing apparatus and image processing method for performing processing while detecting edge in block
JP4645106B2 (en) Image processing apparatus, image output apparatus, and program
JP4225319B2 (en) Image output control system, image processing apparatus and method
JP3823859B2 (en) Image processing apparatus for converting image data in units of multiple pixels
JP2002185810A (en) Image processing unit, print controller, image processing method, and recording medium
JP4274030B2 (en) Image output system, image processing apparatus, image output apparatus, and methods thereof
JP4013855B2 (en) Image processing apparatus for converting image data in units of multiple pixels
JP4325325B2 (en) Printing device that prints an image while converting image data in units of multiple pixels
JP3972875B2 (en) Image processing apparatus for converting image data in units of multiple pixels
JP4534942B2 (en) Image processing apparatus, image output apparatus, and program
JP4561049B2 (en) Printing system for printing an image based on information on the number of dots formed in a predetermined area
JP4059121B2 (en) Image display system for displaying an image based on information on the number of dots formed in a predetermined area
US8064098B2 (en) Device optimizing boundary value table for halftoning reference to correct gradation characteristic based on condition of liquid ejecting head
US7414756B2 (en) Image processing apparatus for converting image data by unit of multiple pixels and printing apparatus
JP4228814B2 (en) Printing method for printing images while processing multiple rasters in parallel
JP4577366B2 (en) Image processing apparatus for processing a plurality of rasters in parallel
JP4100522B2 (en) Image processing apparatus, image processing method, and recording medium recording the program
JP2004194181A (en) Image processing apparatus and image processing method for converting the number of gradation of image data
JP4475068B2 (en) Image processing apparatus, image output apparatus, and program
JP2004080480A (en) Image processing device for processing a plurality of rasters in parallel
JP4453782B2 (en) Image processing apparatus for processing a plurality of rasters in parallel
JP2007202170A (en) Image processor, image processing method, print controller, and recording medium

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070209

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070713

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070903

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

Free format text: PAYMENT UNTIL: 20100921

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110921

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130921

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees