JP3823859B2 - 複数画素単位で画像データを変換する画像処理装置 - Google Patents

複数画素単位で画像データを変換する画像処理装置 Download PDF

Info

Publication number
JP3823859B2
JP3823859B2 JP2002079592A JP2002079592A JP3823859B2 JP 3823859 B2 JP3823859 B2 JP 3823859B2 JP 2002079592 A JP2002079592 A JP 2002079592A JP 2002079592 A JP2002079592 A JP 2002079592A JP 3823859 B2 JP3823859 B2 JP 3823859B2
Authority
JP
Japan
Prior art keywords
pixel
dot formation
unit
absence
dot
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
JP2002079592A
Other languages
English (en)
Other versions
JP2003283828A (ja
Inventor
繁明 角谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2002079592A priority Critical patent/JP3823859B2/ja
Priority to US10/390,090 priority patent/US7375855B2/en
Publication of JP2003283828A publication Critical patent/JP2003283828A/ja
Application granted granted Critical
Publication of JP3823859B2 publication Critical patent/JP3823859B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/52Circuits or arrangements for halftone screening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/56Processing of colour picture signals
    • H04N1/58Edge or detail enhancement; Noise or error suppression, e.g. colour misregistration correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、階調画像データを、ドット形成の有無によって表現されたドットデータに変換する技術に関し、詳しくは、所定数の隣接する画素をユニットにまとめて処理することで画像データを迅速に変換しながら、画質の悪化を回避する技術に関する。
【0002】
【従来の技術】
印刷媒体や液晶画面といった表示媒体上に、ドットを形成することによって画像を表現する画像表示装置は、各種画像機器の出力装置として広く使用されている。かかる画像表示装置は、局所的にはドットを形成するか否かのいずれかの状態しか表現し得ないが、画像の階調値に応じてドットの形成密度を適切に制御することによって、階調が連続的に変化する画像を表現することが可能となっている。
【0003】
これら画像表示装置において画像の階調値に応じて適切な密度でドットが形成されるように、各画素についてのドット形成の有無を判断するための手法としては、誤差拡散法と呼ばれる手法が広く使用されている。誤差拡散法は、着目画素にドットを形成したこと、あるいはドットを形成しなかったことによって生じる階調表現の誤差を、該着目画素周辺の未判断画素に拡散して記憶しておき、未判断画素についてのドット形成の有無を判断するにあたっては、周辺画素から拡散されてきた誤差を解消するようにドット形成有無を判断する手法である。誤差拡散法を用いれば、このように周辺画素で発生した階調表現の誤差を解消するようにドットの形成有無を判断することができるので、画像の階調値に応じた適切な密度でドット形成の有無を判断することが可能である。
【0004】
誤差拡散法を用いれば、画像に応じて適切な密度でドットを形成することで高画質な画像を表示することができるものの、一方では、ドット形成の有無を判断する度に階調誤差を周辺画素に拡散しなければならならず、画像を構成する画素数が多くなると処理に時間がかかって迅速に画像を表現することが困難となる。このような問題を解決するために、本願の発明者は、所定数ずつの隣接する画素をユニットにまとめて、ユニット単位で誤差を拡散しながらドット形成の有無を判断する技術を開発し、既に出願済みである(出願番号、特願2001−238117号)。
【0005】
【発明が解決しようとする課題】
しかし、ドット形成有無の判断をユニット単位で行う場合、それぞれのユニットについては同じような処理が繰り返されることになる。このため、複数のユニットに亘って、ユニット内の同じ位置の画素にドットが形成されて、これが周期的なパターンとして視認されることとなり、画質を悪化させるおそれがある。また、ドット形成の有無をユニット単位で判断した場合に、周期的なパターンの発生が懸念される問題は、誤差拡散法に限らず他の周知な方法を用いた場合にも同様に生じ得る。
【0006】
この発明は、従来技術における上述の課題を解決するためになされたものであり、ドット形成の有無をユニット単位で判断することにより迅速な判断を可能としながら、周期的なパターンの発生を確実に回避して高画質な画像を表示可能な技術の提供を目的とする。
【0007】
【課題を解決するための手段およびその作用・効果】
上述の課題の少なくとも一部を解決するため、本発明の画像処理装置は、次の構成を採用した。すなわち、
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理装置であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換するドットデータ変換手段と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶するドット有無記憶手段と
を備え、
前記ドットデータ変換手段は、
前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する着目画素設定手段と、
前記変換済みのユニット内でドット形成の有無が記憶されている画素の中から、前記着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出するドット形成有無検出手段と、
前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、該着目画素についてのドット形成の有無を判断するドット形成判断手段と
を備えることを要旨とする。
【0008】
また、上記の画像処理装置に対応する本発明の画像処理方法は、
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理方法であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する工程と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶する工程と
を備え、
前記ドットデータに変換する工程は、更に、
前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する工程と、
前記変換済みのユニット内でドット形成の有無が記憶されている画素の中から、前記着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出する工程と、
前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、該着目画素についてのドット形成の有無を判断する工程と
を備えることを要旨とする。
【0009】
かかる画像処理装置および画像処理方法においては、画素を所定の複数個ずつユニットとしてまとめ、画像データをユニット単位でドットデータに変換するに際して、既に変換したユニット内でのドットの形成状況を検出し、検出結果を考慮しながらドットの形成有無を判断する。変換済みのユニット内でのドット形成状況は、次のようにして検出する。先ず、変換されたユニットを構成する少なくとも一部の画素について、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶しておく。次いで、ユニット内でドット形成有無を判断しようとする着目画素を設定し、ドット形成有無を記憶しておいた画素の中から、該着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出する。ドット形成の有無を検出する画素は、着目画素に対して所定位置にあればよい。従って、複数の画素について検出することとしてもよく、また、検出する画素位置は、着目画素の画素位置に応じて異なった画素位置とすることも可能である。
【0010】
こうして、既に変換したユニット内でのドット形成状況を検出し、検出結果を考慮しながらドットの形成有無を判断すれば、画像データをユニット単位でドットデータに変換した場合でも、ユニット内でドットが形成される位置が、複数のユニットに亘って一定のパターンとなってしまうことを回避することができる。従って、周期的なパターンが視認されて画質が悪化することを確実に防止することが可能となる。
【0011】
かかる画像処理装置においては、着目画素に対して所定位置の画素でのドットの形成が検出された場合には、前記着目画素についてドットが形成され難くすることとしてもよい。
【0012】
こうすれば、複数のユニットに亘って周期的なパターンでドットが形成され難くすることができる。その結果、画像データをユニット単位でドットデータに変換した場合でも、周期的なパターンが視認されて画質を悪化させることを回避することが可能となる。
【0013】
こうした画像処理装置においては、着目画素に対して所定位置にある複数の画素について、前記ドット形成の有無を検出し、該複数の画素のいずれかの画素でドットの形成が検出された場合には、前記着目画素でドットが形成され難くすることとしてもよい。
【0014】
こうして複数の画素のいずれかでドットの形成が検出された場合に、着目画素でのドットの形成を抑制することとしておけば、周期的なパターンでドットが形成されることを確実に回避することができる。特に、ドットがまばらに形成される領域では、複数の画素のすべての画素においてドットが形成されることは稀であると考えられる。このことから、いずれかの画素でドットの形成が検出されれば着目画素でのドットの形成を抑制することとしておけば、周期的なパターンの発生を効果的に抑制することが可能となる。
【0015】
あるいは、次のようにすることもできる。着目画素に対して所定位置にある複数の画素について、ドット形成の有無を検出し、該複数の画素のいずれにおいてもドットの形成が検出された場合には、前記着目画素でドットが形成され難くすることもできる。
【0016】
こうして複数の画素のいずれにおいてもドットの形成が検出された場合には、着目画素でのドット形成を抑制することとしておけば、特定のパターンでドットが形成されることを確実に回避することができる。特に、ドットが高い密度で形成される領域では、複数の画素のいずれかにはドットが形成されている可能性が高いと考えられる。従って、所定の画素位置のいずれの画素にもドットが形成されている場合に着目画素のドット形成を抑制することとしておけば、周期的なパターンでドットが形成されることを確実に回避することが可能となるので好ましい。
【0017】
上述した画像処理装置においては、変換済みのユニット内で検出したドット形成状況を、着目画素についてのドット形成有無の判断に、次のようにして反映させてもよい。すなわち、変換済みユニット内の所定位置にある画素についてドットの形成が検出された場合には、該着目画素にドットが形成され易くなるようにしてもよい。
【0018】
画像データが、いわゆるグラフや表などの平坦な画像を表している場合には、自然画像の場合とは異なって、ドットを周期的に形成した方が良好な画質が得られる場合がある。このような画像を印刷する場合、ドットが一定のパターンで周期的に形成された領域の中にパターンの乱れた領域が発生すると、この領域が目立って画質を悪化させるおそれがある。従って、変換済みのユニット内の所定位置にある画素についてドットの形成が検出された場合には、着目画素にドットが形成され易くしておけば、パターンの乱れた領域が発生することを回避することができ、延いては画質の悪化を防止することが可能となる。
【0019】
上述した本発明の画像処理装置においては、ユニットを構成する各画素についての階調値の総和値を算出し、着目画素についてのドット形成有無を判断するに際しては、該算出した総和値も考慮して判断することとしてもよい。
【0020】
ドットの形成状況は画素の階調値に応じて異なることから、ドットの形成有無をユニット単位で判断したときに現れるパターンも、画素の階調値によって異なる場合があると考えられる。従って、着目画素についてのドット形成有無の判断に際して、ユニットを構成する各画素についての階調値の総和値も考慮すれば、ドットが一定のパターンで形成されることをより効果的に回避することが可能となるので好ましい。尚、ドット形成の判断に際して考慮される総和値は、ユニット内の各画素についての実質的な総和値であればよい。従って、総和値に代わりとして、例えばユニット内各画素の階調値の平均値を用いてもよいことは言うまでも無い。
【0021】
こうした画像処理装置においては、前記ユニット内の各画素の総和値が所定値以下となる場合に、前記着目画素についてのドット形成を抑制することとしても良い。
【0022】
前記ドットデータに変換される画像データの階調値が小さくなるほど、ドットはまばらに形成される。従って、階調値の小さな画像データをユニット単位でドットデータに変換した場合には、これらまばらなドットが周期的に形成されて画質を悪化させるおそれがある。この様な場合、すなわちユニット内の各画素の総和値が所定値以下であり、着目画素に対して所定の画素位置におけるドットの形成が検出された場合においても、該着目画素にドットが形成され難くしておけば、まばらなドットが周期的に形成されることを効果的に抑制することができ、延いては画質の悪化を回避することが可能となる。
【0023】
あるいは、前記ユニット内の各画素の総和値が所定値以上である場合には、前記着目画素については、ドットの形成を促進することとしても良い。
【0024】
前記ドットデータに変換される画像データの階調値が大きくなると、密に形成されたドットの間にドットの形成されない画素がまばらに発生することになる。従って、階調値の高い画像データをユニット単位でドットデータに変換した場合、ドットの形成されない画素が、まばらに且つ周期的に発生して画質を悪化させるおそれがある。このことから、ユニット内の各画素の総和値が所定値以上であり、着目画素に対して所定の画素位置におけるドットの形成が検出された場合においても、該着目画素にドットが形成され易くなるようにしておけば、ドットの形成されない画素が、まばらに且つ周期的に発生することを効果的に抑制することができ、延いては画質の悪化を回避することが可能となる。
【0025】
更には、こうした画像処理装置においては、次のようにして、ドット形成の有無を検出する画素位置を変更することとしても良い。すなわち、ドット形成の有無を検出する画素位置を階調値に対応付けて予め記憶しておき、ユニット内の各画素の階調値の総和値を算出して、該総和値に対応付けて記憶されている画素位置でのドット形成有無を検出する。
【0026】
こうすれば、階調値に応じて適切な画素位置でのドット形成状況を検出することができるので、画像データをユニット単位でドットデータに変換した場合でも、ドットが一定のパターンで形成されることを効果的に回避することが可能となる。
【0027】
こうした画像処理装置においては、所定値より小さな第1の階調値の方が、該所定値より大きな第2の階調値よりも、前記着目画素から遠方の画素位置を対応付けて記憶していることとしてもよい。
【0028】
ドットデータに変換される画像データの階調値が小さくなると、それだけドットはまばらに形成されることになるので、ドットの形成に周期的なパターンが発生する場合にも、ドットの間隔は広くなる傾向がある。従って、所定値より小さな第1の階調値の方が、該所定値より大きな第2の階調値よりも、前記着目画素から遠方の画素位置を対応付けて記憶しておくこととすれば、階調値の小さな領域においてドットが周期的に形成されることを効果的に回避することが可能となる。
【0029】
あるいはこうした画像処理装置においては、ドット形成の有無を検出する画素位置を、次のようにして画素毎に変更することとしてもよい。すなわち、ドット形成の有無を検出する画素位置と階調値とを、予め対応付けて記憶しておく。着目画素についてのドット形成有無を判断するに際しては、該着目画素の階調値に基づいて、該階調値に対応付けられた画素位置でのドット形成有無を検出する。着目画素の階調値に加えて、こうして得られた検出結果を考慮してドット形成の有無を判断する。
【0030】
こうすれば、ドットの形成有無に際して考慮する画素位置を、画素の階調値に応じて適切な位置に設定して、周期的なパターンの発生を効果的に抑制することが可能となるので好ましい。
【0031】
上述した画像処理装置においては、ユニットを構成する各画素についてのドット形成有無を、いわゆる誤差拡散法を用いて判断することとして、かかる判断に際して参照される誤差拡散法の閾値の値を、変換済みのユニット内でのドット形成有無に応じて変更することとしても良い。
【0032】
誤差拡散法の閾値の値を変更すれば、変換済みのユニット内の所定画素位置におけるドット形成有無の検出結果を、着目画素でのドット形成有無の判断に簡便に反映させることができる。また、誤差拡散法は、着目画素で発生した階調誤差を周辺の未判断画素に拡散し、これら周辺の画素でのドット形成有無の判断に反映させることで、該階調誤差を速やかに解消させる機能を有している。このことから、着目画素についてのドット形成の有無を、誤差拡散法を用いて判断すれば、変換済みのユニット内でのドット形成有無の検出結果を反映させることによって着目画素に大きな階調誤差が生じた場合でも、これを速やかに解消して、より高画質の画像を表現することが可能となるので好ましい。
【0033】
こうした、誤差拡散法を用いてドット形成の有無を判断する画像処理装置においては、前記着目画素に対して前記所定位置にある画素でのドットの形成が検出された場合は、該着目画素にはドットを形成しないと判断することとしてもよい。
【0034】
所定位置にある画素でのドットの形成が検出された場合には、着目画素にはドットを形成しないと判断することとすれば、画像データをユニット単位でドットデータに変換する場合でも、一定のパターンでドットが形成されることを簡便に回避することが可能となるので好適である。また、誤差拡散法を用いてドット形成の有無を判断しているので、ドットを形成しないと判断することで着目画素に大きな階調誤差が生じた場合でも、この誤差を速やかに解消することが可能であり、画質の悪化を招くおそれがない。
【0035】
上述した画像処理装置においては、変換済みのユニットを構成する画素についてのドット形成の有無を、次のようにして記憶することとしても良い。すなわち、画素毎にドット形成の有無を表すデータを、該画素が属するユニットと該ユニット内での画素位置とが識別可能な所定の順序で配列し、こうして得られたデータ列を記憶することとしてもよい。
【0036】
このようなデータ列を記憶しておけば、データの順番から、画素が属するユニットと該ユニット内での画素位置とを容易に識別して、画素毎にドット形成の有無を記憶しておくことができる。しかも、この様なデータ列として記憶しておけば、複数の画素位置でのドット形成有無をひとつのデータ列として記憶することができるので、データの取り扱いが容易になると言う利点もある。
【0037】
あるいは、画素毎にドット形成の有無を表すデータを、次のようにユニット内での画素位置毎に記憶することとしても良い。すなわち、ユニット内での画素位置毎に分類し、該画素が属する前記ユニットを識別可能に所定の順序で配列して、画素位置毎にデータ列を形成する。こうして得られた複数のデータ列を記憶することとしても良い。
【0038】
この様なデータ列を記憶しておけば、画素が属するユニットはデータの順番に基づいて、ユニット内での画素位置はデータ列の違いに基づいて識別することができる。従って、こうした方法によっても、画素毎にドット形成の有無を表すデータをユニット内での画素位置を識別可能な状態で、簡便に記憶しておくことができる。また、この様に画素位置毎のデータ列として記憶しておけば、個々のデータ列を短くすることができるので、データ列の取り扱いが容易になると言う利点も得られる。
【0039】
また、上述した画像処理装置は、印刷媒体上にドットを形成して画像を印刷する印刷装置に好適に適用することができる。すなわち、本発明の画像処理装置は、ユニット単位で変換することにより、画像データを迅速にドットデータに変換することができる。しかも、変換済みのユニットにおける所定の画素位置でのドット形成状況を検出することで、ドットが一定のパターンで形成されることを回避することができる。従って、こうした画像処理装置を印刷装置に適用すれば、画像データを迅速にドットデータに変換することで、印刷に要する時間を短縮しながら、画質の悪化を回避することが可能となるので好ましい。
【0040】
また、本発明は、上述した画像処理方法を実現するプログラムをコンピュータに読み込ませることにより、コンピュータを用いて実現することも可能である。従って、本発明は次のような記録媒体としての態様も含んでいる。すなわち、上述の画像処理方法に対応する本発明の記録媒体は、
画像を構成する各画素についての階調値として表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する方法を実現するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する機能と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶する機能と
を記憶しており、
前記ドットデータに変換する機能には、
前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する機能と、
前記変換済みのユニット内でドット形成の有無が記憶されている画素の中から、前記着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出する機能と、
前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、該着目画素についてのドット形成の有無を判断する機能と
が含まれていることを要旨とする。
【0041】
かかる記録媒体に記憶されているプログラムをコンピュータに読み込ませ、上述の各種機能を該コンピュータに実行させれば、画像データをユニット単位でドットデータに変換することによって迅速に変換しつつ、変換済みのユニットにおけるドットの形成状況を検出することによって、ドットが一定のパターンで形成されることを回避することができるので、画質の悪化を招くおそれがない。
【0042】
【発明の実施の形態】
本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って以下に説明する。
A.実施の形態:
B.装置構成:
C.画像データ変換処理の概要:
D.第1実施例:
D−1.ユニット単位で行う階調数変換処理:
D−2.ユニット内多値化処理:
D−3.第1実施例のユニット内多値化処理:
D−4.変形例:
E.第2実施例:
E−1.第2実施例のユニット内多値化処理:
E−2.第2実施例の変形例:
【0043】
A.発明の概要:
実施例の詳細な説明を開始する前に、理解の便宜から、本発明の概要について簡単に説明しておく。図1は、印刷システムを例にとって、本発明の概要を示した説明図である。図1に示した印刷システムは、画像処理装置としてのコンピュータ10と、カラープリンタ20等から構成されている。コンピュータ10は、デジタルカメラやカラースキャナなどの画像機器からRGB各色の階調値によって表現されたカラー画像データを受け取ると、該画像データを、カラープリンタ20で印刷可能な各色ドットの形成有無により表現された印刷データに変換する。かかる画像データの変換は、プリンタドライバ12と呼ばれる専用のプログラムを用いて行われる。尚、RGB各色によるカラー画像データは、各種アプリケーションプログラムを用いてコンピュータ10で作成することもできる。
【0044】
プリンタドライバ12は、解像度変換モジュール,色変換モジュール,階調数変換モジュール14,インターレースモジュールといった複数のモジュールから構成されている。これら各モジュールで行われる処理については後述する。このうち、階調数変換モジュール14では、画像データをドット形成の有無により表現されたデータに変換する処理を行っている。また、本実施例の階調数変換モジュールでは、処理を迅速化するため、次のようにユニット単位の処理を行っている。すなわち、隣接する複数個の画素をまとめてユニットを生成し、各画素についてのドット形成有無の判断をユニット単位でまとめて行う。ドット形成有無の判断をユニット単位で行う方法については後述する。
【0045】
図1中で、階調数変換モジュール14を表す枠の下方に、矢印で示した概念図は、階調数変換モジュール14において画像データがドットデータに変換されている様子を示したものである。概念図中で破線で示した小さな正方形は画素を模式的に示したものである。これら4つの画素で1つのユニットを構成している。図中で細かい斜線を付して示したユニットは、処理中のユニット、すなわち画像データをドットデータに変換中のユニットを示したものである。また、粗い斜線を付して示した領域は、ドット形成有無が判断されてドットデータに変換された領域を示している。ドット形成有無の判断をユニット単位で行う場合、各ユニットについては同様な処理が行われる。このため、特に画像データの階調値があまり変化しない領域を処理した場合などには、複数のユニットに亘って一定のパターンでドットが形成されるおそれがある。一定のパターンでドットが形成された領域が発生すると、これが視認されて画質の悪化を招くことが懸念される。
【0046】
図1中の概念図では、ドットが一定のパターンで形成される一例として、連続するユニット内の同じ画素位置にドットが形成される場合を示している。図示されているように、処理中のユニット(細かい斜線を付したユニット)の左側には、左上隅の画素にドットが形成されたユニットが2つ連続している。仮に、処理中のユニットでも左上隅の画素にドットが形成されると、連続して3つのユニットで同じ位置の画素にドットが形成されることになり、これがパターンとして視認されて画質が悪化するおそれがある。もちろん、ドットが一定のパターンで形成される例としては、連続するユニット内の同じ画素位置にドットが形成される場合に限られず、複数のユニットを周期として一定のパターンでドットが形成される場合も起こり得る。
【0047】
この様な問題の発生を回避するために、図1に示した印刷システムにおける階調数変換モジュール14では、既に処理したユニットについてドットを形成すると判断した画素を、階調数変換結果記憶部に記憶しておく。ユニット単位でドット形成有無を判断するに際しては、階調数変換結果記憶部から判断結果を読み出して、ドットが一定のパターンで形成されることを回避しながら判断していく。例えば、図1中の概念図に示した例では、連続したユニットで同じ画素位置にドットが形成されているから、同じ位置の画素に連続してドットが形成されないようにしながら、処理ユニットについてのドット形成有無を判断していく。このように、視認され易いパターンでドットが形成されることを回避しながらドット形成の有無を判断する。こうすれば、ユニット単位でドット形成の有無を判断することによって迅速な処理を行いながら、画質を悪化させることなく高画質な画像を印刷することが可能となる。以下では、このような画像処理について、実施例に基づき詳細に説明する。
【0048】
B.装置構成:
図2は、本実施例の画像処理装置としてのコンピュータ100の構成を示す説明図である。コンピュータ100は、CPU102を中心に、ROM104やRAM106などを、バス116で互いに接続して構成された周知のコンピュータである。
【0049】
コンピュータ100には、フレキシブルディスク124やコンパクトディスク126のデータを読み込むためのディスクコントローラDDC109や、周辺機器とデータの授受を行うための周辺機器インターフェースP/IF108、CRT114を駆動するためのビデオインターフェースV/IF112等が接続されている。P/IF108には、後述するカラープリンタ200や、ハードディスク118等が接続されている。また、デジタルカメラ120やカラースキャナ122等をP/IF108に接続すれば、デジタルカメラ120やカラースキャナ122で取り込んだ画像を印刷することも可能である。また、ネットワークインターフェースカードNIC110を装着すれば、コンピュータ100を通信回線300に接続して、通信回線に接続された記憶装置310に記憶されているデータを取得することもできる。
【0050】
図3は、第1実施例のカラープリンタ200の概略構成を示す説明図である。カラープリンタ200はシアン,マゼンタ,イエロ,ブラックの4色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら4色のインクに加えて、染料濃度の低いシアン(淡シアン)インクと染料濃度の低いマゼンタ(淡マゼンタ)インクとを含めた合計6色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク,マゼンタインク,イエロインク,ブラックインク,淡シアンインク,淡マゼンタインクのそれぞれを、Cインク,Mインク,Yインク,Kインク,LCインク,LMインクと略称することがあるものとする。
【0051】
カラープリンタ200は、図示するように、キャリッジ240に搭載された印字ヘッド241を駆動してインクの吐出およびドットの形成を行う機構と、このキャリッジ240をキャリッジモータ230によってプラテン236の軸方向に往復動させる機構と、紙送りモータ235によって印刷用紙Pを搬送する機構と、ドットの形成やキャリッジ240の移動および印刷用紙の搬送を制御する制御回路260とから構成されている。
【0052】
キャリッジ240には、Kインクを収納するインクカートリッジ242と、Cインク,Mインク,Yインクの各種インクを収納するインクカートリッジ243とが装着されている。キャリッジ240にインクカートリッジ242,243を装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド241の下面に設けられた各色毎のインク吐出用ヘッド244ないし247に供給される。各色毎のインク吐出用ヘッド244ないし247には、48個のノズルNz が一定のノズルピッチkで配列されたノズル列が1組ずつ設けられている。
【0053】
制御回路260は、CPU261と、ROM262、RAM263等から構成されている。制御回路260は、キャリッジモータ230と紙送りモータ235とを適切に駆動することを通じて、キャリッジ240の主走査と副走査とを制御するとともに、コンピュータ100から供給される印刷データに基づいて、各ノズルから適切なタイミングでインク滴を吐出する。こうして、制御回路260の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ200はカラー画像を印刷することができる。
【0054】
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡(バブル)を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
【0055】
更には、吐出するインク滴の大きさを制御したり、あるいは一度に複数のインク滴を吐出して、吐出するインク滴の数を制御することにより、印刷用紙上に形成されるインクドットの大きさを制御可能な、いわゆるバリアブルドットプリンタを使用することもできる。
【0056】
以上のようなハードウェア構成を有するカラープリンタ200は、キャリッジモータ230を駆動することによって、各色のインク吐出用ヘッド244ないし247を印刷用紙Pに対して主走査方向に移動させ、また紙送りモータ235を駆動することによって、印刷用紙Pを副走査方向に移動させる。制御回路260は、印刷データに従って、キャリッジ240の主走査および副走査を繰り返しながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ200は印刷用紙上にカラー画像を印刷している。
【0057】
C.画像データ変換処理の概要:
図4は、本実施例の画像処理装置としてのコンピュータ100が、受け取った画像データに所定の画像処理を加えることによって、画像データを印刷データに変換する処理の流れを示すフローチャートである。かかる処理は、コンピュータ100のオペレーティングシステムがプリンタドライバ12を起動することによって開始される。以下、図4に従って、本実施例の画像データ変換処理について簡単に説明する。
【0058】
プリンタドライバ12は、画像データ変換処理を開始すると、先ず初めに、変換すべきRGBカラー画像データの読み込みを開始する(ステップS100)。次いで、取り込んだ画像データの解像度を、カラープリンタ200が印刷するための解像度に変換する(ステップS102)。カラー画像データの解像度が印刷解像度よりも低い場合は、線形補間を行うことで隣接する画像データ間に新たなデータを生成し、逆に印刷解像度よりも高い場合は一定の割合でデータを間引くことによって、画像データの解像度を印刷解像度に変換する。
【0059】
こうして解像度を変換すると、カラー画像データの色変換処理を行う(ステップS104)。色変換処理とは、R,G,Bの階調値の組み合わせによって表現されているカラー画像データを、C,M,Y,Kなどのカラープリンタ200で使用する各色の階調値の組み合わせによって表現された画像データに変換する処理である。色変換処理は、色変換テーブルと呼ばれる3次元の数表を参照することで迅速に行うことができる。
【0060】
プリンタドライバ12は、色変換処理に続いて階調数変換処理を開始する(ステップS106)。階調数変換処理とは次のような処理である。色変換処理によって、RGB画像データはC,M,Y,K各色の階調データに変換される。これら各色の階調データは、階調値0から255の256階調を有するデータである。これに対し、本実施例のカラープリンタ200は、「ドットを形成する」,「ドットを形成しない」のいずれかの状態しか採り得ない。そこで、256階調を有する各色の階調データを、カラープリンタ200が表現可能な2階調で表現された画像データに変換する必要がある。このような階調数の変換を行う処理が階調数変換処理である。後述するように、本実施例のプリンタドライバ12は、画素を所定数ずつユニットにまとめ、ユニット単位で階調数変換処理を行うことによって迅速な処理を可能としている。また、処理済みのユニットについては、ドットを形成すると判断した画素を記憶しておき、このデータを反映させながら階調数変換を行う。こうすることで、ユニット単位で階調数変換処理を行った場合に懸念される、ドットが一定のパターンで形成される現象が発生することを確実に回避することが可能となっている。階調数変換処理については、後ほど詳細に説明する。
【0061】
こうして階調数変換処理を終了したら、プリンタドライバはインターレース処理を開始する(ステップS108)。インターレース処理とは、ドットの形成有無を表す形式に変換された画像データ(ドットデータ)を、ドットの形成順序を考慮しながらカラープリンタ200に転送すべき順序に並べ替える処理である。プリンタドライバ12は、インターレース処理を行って最終的に得られた画像データを、印刷データとしてカラープリンタ200に出力する(ステップS110)。カラープリンタ200は、印刷データに従って、各色のインクドットを印刷媒体上に形成する。その結果、画像データに対応したカラー画像が印刷媒体上に印刷される。
【0062】
D.第1実施例:
以下、図4に示した画像データ変換処理の中で行われる第1実施例の階調数変換処理について説明する。前述したように、本実施例の階調数変換処理では、複数の画素をユニットにまとめて、階調数変換処理をユニット単位で行っている。そこで、第1実施例の階調数変換処理について説明するための準備として、先ず、階調数変換処理をユニット単位で行う方法について説明し、その後、第1実施例の階調数変換処理において、処理済みのユニットでの判断結果を、ドット形成有無の判断に反映させる処理について説明する。
【0063】
D−1.ユニット単位で行う階調数変換処理:
図5は、ユニット単位で行う階調数変換処理の流れを示すフローチャートである。この処理は、コンピュータ100のCPU102によって行われる。尚、本実施例のカラープリンタ200は、前述したようにC,M,Y,Kの4色のインクドットを形成可能なプリンタであり、図5に示す処理も各色毎に行っている。しかし、以下では説明が煩雑となることを避けるために、色を特定せずに説明することとして、特段の明示がない限り、色を特定せずに説明した場合は、各色について同様な処理が行われることを意味するものとする。
【0064】
ユニット単位の階調数変換処理を開始すると、先ず初めに、処理するユニットの位置を設定する(ステップS200)。ユニット単位で行う階調数変換処理では、所定の複数個の隣接する画素をユニットとしてまとめ、各画素にドットを形成するか否かの判断をユニット単位で行う。そこで、ユニット単位の階調数変換処理を開始すると、先ず初めに、画像中でドットの形成有無を判断しようとするユニット(処理ユニット)の位置を設定する処理を行う。
【0065】
図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つの画素を処理ユニットとして設定しても構わない。
【0066】
処理ユニットを設定したら、続いてユニット内の各画素についての画像データおよび拡散誤差の読み込みを行う(図5のステップS202)。ここで読み込む画像データは、前述した色変換処理(図4のステップS104)によって色変換して得られたC,M,Y,K各色の階調データである。また、拡散誤差とは、階調数を変換することにより生じた階調誤差が、周辺のユニットから処理ユニットの各画素に拡散されてきた誤差である。画像データがC,M,Y,Kの各色毎の階調データであることから、階調誤差はこれら各色毎に発生し、従って拡散誤差もこれら各色毎の階調データとなっている。階調数を変換することに伴って階調誤差が発生し、発生した誤差が拡散誤差として周辺の画素に拡散される様子については後述する。
【0067】
ここでは、図6(a)に示すように、処理ユニットは画素Pa 、画素Pb 、画素Pc 、画素Pd の4つの画素で構成されているとしているから、図5のステップS202の処理では、それぞれの画素について、画像データDTa 、DTb 、DTc 、DTd および拡散誤差EDa 、EDb 、EDc 、EDd が読み込まれることになる。処理ユニットについて読み込んだこれらのデータは、コンピュータ100のRAM106に記憶される。
【0068】
こうして各画素の画像データおよび拡散誤差を読み込んだら、処理ユニットを構成する各画素について、ドット形成の有無を判断する処理を開始する(ステップS204)。ここでは、図6(a)に示したように処理ユニットは4つの画素で構成されているとしているから、ステップS204の処理ではこれら4つの画素について所定の順序でドット形成の有無を判断していく。尚、本明細書中では、このようにユニット内の各画素についてドット形成の有無を判断する処理を、「ユニット内多値化処理」と呼ぶことがあるものとする。ユニット内多値化処理の詳細な内容については後述する。
【0069】
処理ユニットを構成する各画素についてのドット形成有無の判断を終了したら、判断に伴って処理ユニット内で生じた階調誤差を、周辺のユニットに拡散する処理を行う(ステップS206)。処理ユニット内で生じた階調誤差とは、処理ユニット全体で表現すべき画像データの階調値と、該ユニット内の各画素にドットを形成することによって実際に表現された階調値との偏差を表す誤差である。処理ユニットで生じる階調誤差を算出する方法については、ユニット内多値化処理の説明の中で説明する。ステップS206においては、この偏差を示す階調値を、処理ユニットで生じた階調誤差として周辺の未処理のユニットに拡散させる処理を行う。
【0070】
図7は、処理ユニットで生じた階調誤差を、周辺の未処理のユニットに拡散させる様子を概念的に示した説明図である。図7中に示した複数の小さな正方形は、それぞれ画素を模式的に表示したものである。また、太い破線で示した大きな正方形は処理ユニットを示しており、細い破線で示した大きな正方形は、処理ユニットに隣接する未処理のユニットを示している。処理ユニットで生じた階調誤差は、周辺の未処理ユニットを構成する画素に所定の割合で拡散する。図7中で処理ユニットから周辺の6つの画素に伸びる黒抜きの矢印は、処理ユニットで生じた階調誤差を、これら6つの画素に所定の割合で拡散していることを模式的に示している。
【0071】
図8は、処理ユニットで生じた階調誤差を、処理ユニット周辺の未処理のユニットを構成する画素に拡散させる割合が設定されている様子を例示したものである。図8中で、太い実線で示した大きな正方形は処理ユニットを表したものであり、処理ユニットに隣接して細い破線で示した大きな正方形は、処理ユニット周辺の未処理のユニットを示したものである。これら未処理のユニットの中に細い実線で示した複数の小さな正方形は、処理ユニットからの誤差が拡散される画素を表示したものである。
【0072】
図8(a)に示した例では、処理ユニットの右側にある2つの画素には、処理ユニットで生じた階調誤差が1/8の割合でそれぞれ拡散され、処理ユニットの下側にある2つの画素にも同様に、階調誤差が1/8の割合でそれぞれ拡散される。また、処理ユニットの左下の画素あるいは右下の画素には、階調誤差が1/4の割合でそれぞれ拡散される。このような割合で階調誤差を拡散させれば、処理ユニットの周辺のユニットに均等に、それぞれ階調誤差の1/4の割合で拡散されることになる。また、図8(b)に示した例では、処理ユニットで生じた階調誤差が、処理ユニット周辺のユニットを構成するすべての画素に、同じ割合で拡散される。もちろん、同じユニットに拡散する誤差をそのユニットの1つの画素にまとめて拡散するようにしても良い。
【0073】
図5のステップS206においては、以上のようにして、処理ユニットで生じた階調誤差を周辺のユニットに拡散させる。処理ユニットについて、上述したすべての処理を終了したら、画像を構成する全てのユニットについて処理を終了したか否かを判断し(ステップS208)、未処理のユニットが残っていればステップS200に戻って続く一連の処理を繰り返す。こうして、すべてのユニットについての処理を完了したら、ユニット単位の階調数変換処理を終了する。
【0074】
以上に説明したユニット単位で階調数変換処理を行えば、画素毎に処理した場合に比べて、以下のような利点を得ることができる。すなわち、階調数変換処理を画素毎に行う場合は、1つの画素についてのドット形成有無を判断する度に、その画素に対応付けて記憶されている拡散誤差を読み出さなければならず、また、ドット形成有無の判断によって生じた階調誤差を周辺の未判断画素に誤差を拡散しなければならない。このため、階調数変換処理を画素毎に行うと、処理時間が長くなってしまう傾向にある。これに対して、階調数変換処理をユニット単位で行った場合は、ユニット単位で画像データを読み出し、階調誤差を拡散させた後、拡散誤差をユニット単位でメモリに書き込むことができる。こうしてデータの読み出しおよび書き込みをユニット単位でまとめて行えば、処理に要する時間を短縮化することが可能である。
【0075】
D−2.ユニット内多値化処理:
上述したユニット単位の階調数変換処理で行われるユニット内多値化処理(図5のステップS204)について説明する。図9は、ユニット内多値化処理の流れを示したフローチャートである。以下、フローチャートに従って説明する。
【0076】
ユニット内多値化処理を開始すると、先ず初めに、処理ユニットを構成する画素の中から、ドット形成の有無を判断する画素(着目画素)を1つ設定する(ステップS300)。前述したようにユニットは複数の画素から構成されているので、これら複数の画素について所定の順序で1画素ずつドット形成の有無を判断することとして、着目画素を1つ選択する。ここでは、図6(a)に示したユニットを構成する4つの画素を、左上にある画素から右下の画素に向かって画素Pa 、画素Pb 、画素Pc 、画素Pd の順番にドット形成有無を判断することとして、ステップS300では、先ず初めに、左上隅にある画素Pa を着目画素として設定する。
【0077】
次いで、設定した着目画素(ここでは、画素Pa )についての補正データCx を算出する(ステップS302)。補正データCx は、着目画素の画像データと着目画素に拡散されて記憶されている拡散誤差とを加算することによって求めることができる。処理ユニットを構成する各画素についての画像データおよび拡散誤差は、図5に示した階調数変換処理中のステップS202において既に読み込まれているので、ユニット内多値化処理の数轍鮒S302においては、これらのデータの中から着目画素の画像データと拡散誤差とを加算して補正データCx を算出する。
【0078】
着目画素Pa の補正データCx を算出したら、得られた補正データCx と所定の閾値thとの大小関係を判断する(ステップS304)。そして、補正データCx の方が大きければ着目画素(ここでは画素Pa )にドットを形成すると判断し(ステップS3306)、そうでなければ、着目画素にはドットを形成しないと判断する(ステップS308)。判断の結果は、各画素についての判断結果を示す変数に蓄えられる。
【0079】
こうして着目画素についてのドット形成有無を判断したら、判断に伴って着目画素に生じた階調誤差を算出する(ステップS310)。階調誤差は、ドットを形成したこと、あるいはドットを形成しなかったことによって着目画素に表現される階調値(以下では、この階調値を結果値と呼ぶ)を、着目画素の補正データCx から減算することによって算出することができる。
【0080】
着目画素で生じた階調誤差を算出したら、処理ユニット内の全画素の処理を終了したか否かを判断し(ステップS312)、未処理の画素が残っている場合は(ステップS312:no)、これら未処理の画素中で着目画素周辺にある画素に誤差を拡散させる処理を行う(ステップS314)。この処理について、図10を参照しながら説明する。
【0081】
図10は、処理ユニット内の画素から着目画素を1つずつ選択してドット形成の有無を判断することにより、ドット形成の有無をユニット単位で判断している様子を模式的に示した説明図である。図中の4つの正方形は、処理ユニットを構成する画素Pa 、画素Pb 、画素Pc 、画素Pd をそれぞれ示している。また、画素Pa を示す正方形の中に示したDTa およびEDa は、画素Pa に対応付けて、画像データDTa と拡散誤差EDa とがRAM106に読み込まれていることを概念的に示したものである。同様に、画素Pb には画像データDTb と拡散誤差EDb とが、画素Pc には画像データDTc と拡散誤差EDc とが、画素Pd には画像データDTd と拡散誤差EDd とが対応付けられて、それぞれRAM106に記憶されている。
【0082】
前述したように、着目画素は、先ず初めはこれら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 に更新される。
【0083】
他の画素Pc および画素Pd についても同様な処理を行う。簡単に説明すると、画素Pa からの誤差が画素Pc に拡散されると、画素Pc に記憶されていた拡散誤差EDc と画素Pa からの誤差とが加算され、新たな拡散誤差EDc として画素Pc に対応付けて記憶される。また、画素Pd についても同様に、画素Pd に記憶されていた拡散誤差EDd と画素Pa からの誤差とが加算され、新たな拡散誤差EDd として画素Pd に対応付けて記憶される。図10(a)中で画素Pa から他の3つ画素に向かって表示されている白抜きの矢印は、画素Pa で生じた誤差がこれら3つの画素に拡散されることを模式的に示したものである。尚、階調誤差は、必ずしも周辺の未判断画素に均等に分配する必要はなく、各画素に所定の割合で分配することも可能である。
【0084】
以上のようにして画素Pa で階調誤差をユニット内の周辺画素に拡散したら、図9のステップS300に戻って、新たな着目画素を設定する処理を行う。処理ユニット中の画素Pa については、既にドット形成の有無を判断済みであるから、ステップS300では、今度は画素Pa の右隣の画素Pb を着目画素として設定する。こうして設定した新たな着目画素について、上述した処理とほぼ同様の処理を行う。以下、画素Pa における処理との相違点を中心に簡単に説明する。
【0085】
画素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 から結果値を減算することによって算出することができる。
【0086】
着目画素Pb で生じた階調誤差を算出したら、処理ユニット内のすべての画素について処理を終了したか否かを判断し(ステップS312)、未処理の画素が残っていれば、算出しておいた階調誤差を、これら未処理の画素に拡散させる処理を行う(ステップS314)。前述したように、ユニット内の画素Pa については既に判断を終了しているから、未判断画素として残っているのは画素Pc および画素Pd の2つの画素である。そこで、画素Pb で生じた階調誤差はこれら2つの画素に拡散させることになる。再び、図10を参照しながら、画素Pb からの誤差を拡散させる処理について説明する。
【0087】
図10(b)は、画素Pb で生じた階調誤差を拡散している様子を概念的に示した説明図である。図中で、画素Pa に斜線が施されているのは、画素Pa については既にドット形成の有無を判断済みであることを模式的に示したものである。画素Pb についてドット形成の有無を判断した時点では、処理ユニット内には未判断画素として画素Pc 、画素Pd の2つの画素が残っている。そこで、画素Pb で生じた階調誤差は、図10(b)に示したように、これらの画素Pc および画素Pd にそれぞれ、1/2ずつ拡散されることになる。図中で、画素Pb から画素Pc および画素Pd に向かって伸びる白抜きの矢印は、画素Pb で生じた階調誤差がこれら画素に拡散されていることを模式的に示している。こうして誤差が拡散される結果、各画素の拡散誤差は、拡散されてきた誤差が加算された新たな拡散誤差に更新される。尚、ここでは、階調誤差は処理ユニット内の未判断画素に均等に拡散されるものとしているが、もちろん、均等に拡散させるのではなく、所定の割合で誤差を拡散させることとしても構わない。
【0088】
こうして画素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 として更新される。
【0089】
着目画素Pc で生じた階調誤差を拡散したら、図9のステップS300に戻って着目画素を画素Pd に移動した後、画素Pd についてのドット形成有無の判断を開始する。すなわち、画素Pd に対応づけられた新たな拡散誤差EDd と画素Pd の画像データDTd とを加算して補正データCx を算出する(ステップS300、ステップS302)。次いで、補正データCx と閾値thとを比較し(ステップS304)、補正データCx の方が大きい場合は画素Pd にはドットを形成する(ステップS306)と判断し、そうでない場合は画素Pd にはドットを形成しないと判断する(ステップS308)。
【0090】
こうして画素Pd についてのドット形成の有無を判断したら、画素Pd で生じた階調誤差を算出した後(ステップS310)、処理ユニット内の全画素の処理を終了したか否かを判断する(ステップS312)。図10(d)に示したように、画素Pd について処理を開始した時点で、もはや処理ユニット内には未判断の画素は残っておらず、画素Pd についての判断が終了した後のステップS312においては、処理ユニット内の全画素についての処理が終了したと判断される。そこで、図9に示したユニット内の多値化処理を終了して、図5を用いて前述したユニット単位で行う階調数変換処理に復帰する。図5に示されているように、ユニット単位の階調数変換処理では、ユニット内多値化処理から復帰すると、処理ユニットで生じた階調誤差を周辺のユニットに拡散する処理を行う(図5のステップS206)。
【0091】
ここで、処理ユニットで生じた階調誤差の値としては、ユニット内多値化処理のステップS310において画素Pd について求めた階調誤差の値を用いることができる。これは、着目画素で生じた階調誤差をユニット内の未判断画素に拡散しながらドット形成有無の判断を行っているために、ユニット内で生じた階調誤差が、最後に判断する画素Pd に拡散誤差EDd として累積されることによる。以下、図10を参照して詳しく説明する。
【0092】
画素Pa で生じた階調誤差は処理ユニット内の画素Pb 、画素Pc 、画素Pd の3つの画素に拡散される。画素Pb のドット形成有無の判断に際しては、画素Pa からの誤差を考慮して、画素Pb に拡散されている誤差ができるだけ解消されるようにドット形成の有無が判断される。仮に、画素Pb についてドット形成有無を判断することにより、画素Pb に拡散されている誤差を解消することができたものとする。この場合は、画素Pb では新たな階調誤差は発生せず、また、画素Pb から画素Pc 、画素Pd に拡散される誤差も生じない。他の2つの画素Pc 、画素Pd についても同様に、ドット形成の有無を判断したことで、それぞれの画素に拡散されている誤差を解消することができたものとすると、これらの画素では階調誤差は生じない。結局、この場合は、画素Pa で生じた階調誤差を、周辺の未判断画素Pb 、画素Pc 、画素Pd で解消したこととなって、処理ユニット全体としては階調誤差の発生を避けることができる。
【0093】
ここでは、画素Pb のドット形成有無の判断によって、画素Pb での誤差を解消するものとしたが、画素Pb で新たな階調誤差が発生した場合には、この誤差は周辺の未判断画素Pc および画素Pd に拡散されて、その結果、これらの画素には、画素Pa で生じた階調誤差と画素Pb で生じた階調誤差とが拡散されることになる。しかし、これら画素Pc 、画素Pd についてドット形成の有無を判断することで、それぞれの画素に拡散された誤差を解消することができれば、依然としてユニット全体としてみれば階調誤差は生じない。
【0094】
画素Pc についてドット形成有無を判断することで、画素Pc に拡散されている拡散誤差を解消することができない場合も、全く同様にして、画素Pd で誤差を解消することができれば、ユニット全体としては階調誤差が生じることはない。換言すれば、画素Pd で解消しきれずに残った誤差が、ユニット全体で生じた階調誤差となる。このように、着目画素で生じた階調誤差をユニット内の未判断画素に拡散しながらドット形成有無を判断していくと、各画素で解消しきれずに残った階調誤差が後続する画素に集約されていくので、ユニット内で最後に判断する画素Pd で生じた階調誤差を、処理ユニット全体で生じた階調誤差として用いることが可能となるのである。
【0095】
尚、以上の説明では、処理ユニット内で最後にドット形成有無を判断する画素Pd で生じた階調誤差の値を、処理ユニット全体で生じた階調誤差として用いるものとしたが、もちろん、処理ユニットを構成する各画素毎に階調誤差を算出し、これら階調誤差の総和を処理ユニットの階調誤差としても構わない。
【0096】
また、図10に示した例では、着目ユニットを構成する各画素のドット形成有無を判断するに際しては、画素Pa 、画素Pb 、画素Pc 、画素Pd の順番で判断を行ったが、必ずしもこの順番で判断する必要はなく、例えば、画素Pa 、画素Pc 、画素Pb 、画素Pd の順番でドット形成有無を判断しても構わない。処理ユニット内で着目画素を設定する順番は、良好な画質が得られる順番を選択しておくことができる。
【0097】
D−3.第1実施例のユニット内多値化処理:
以上に説明したようにして、ユニット単位で階調数変換処理を行う場合、ユニット毎に同じ処理が繰り返されることになる。このことから、あるユニットでドットを形成すると判断した画素は、後続するユニットでも、同じ位置にドットが形成されると判断され易い傾向がある。あるいは、個々のユニットについてはドットが形成されるユニットとされないユニットが生じるものの、複数のユニットを周期として一定のパターンでドットが形成されることがある。例えば、画像データが一定の領域が続く場合など、複数のユニットを周期としてほとんど同じ処理が繰り返されることになり、ユニット内の同じ位置の画素に周期的にドットが形成されることが起こり得る。もちろん、ドット自体の大きさは視認が困難なほどに小さいが、複数のユニットに亘って周期的なパターンでドットが形成されると、この様な領域の存在が視認されて画質を悪化させるおそれがある。
【0098】
この様な問題の発生を回避するために、第1実施例では、ユニット内の多値化処理を行い、画像データをユニット単位でドットデータに変換するに際して、既に処理したユニット中でドットが形成された画素位置を検出し、検出結果を反映させながらドット形成の有無を判断している。このように、処理済みのユニット内でドットが形成される画素位置の履歴を考慮しながら、処理ユニット内のドット形成有無を判断すれば、画像データをユニット単位で変換することによって生じ得る画質の悪化を回避することができる。以下では、こうした第1実施例のユニット内多値化処理について説明する。
【0099】
図11は、第1実施例のユニット内多値化処理の流れを示すフローチャートである。かかる処理は、図9を用いて前述したユニット内多値化処理に対して、処理済みのユニット内でドットが形成された画素位置を検出し、検出結果を反映させながら階調数変換処理を行っている点が大きく異なっている。以下、前述したユニット内多値化処理との相違点を中心として、第1実施例のユニット内多値化処理について説明する。
【0100】
第1実施例のユニット内多値化処理においても、処理を開始すると先ず初めに、処理ユニットの中から着目画素を1つ設定し(ステップS400)、設定した着目画素についての補正データCx を算出する(ステップS402)。補正データCx は、着目画素の画像データと着目画素に拡散されて記憶されている拡散誤差とを加算することによって求めることができる。また、処理ユニットを構成する各画素の画像データおよび拡散誤差は、図5に示した階調数変換処理中のステップS202において既に読み込まれており、これらデータの中から着目画素についてのデータを用いて補正データCx を算出する。
【0101】
次いで、第1実施例のユニット内多値化処理においては、処理済みのユニット内でドットが形成される画素位置の履歴を検出し、検出結果に基づいて閾値thを適切な値に設定する処理を行う(ステップS404)。この処理(履歴検出・閾値設定処理)について、図12を参照しながら説明する。
【0102】
図12は、履歴検出・閾値設定処理の流れを示すフローチャートである。履歴検出・閾値設定処理を開始すると、先ず初めに、履歴データを読み出す処理を行う(ステップS500)。履歴データとは、処理済みのユニットについてドットを形成すると判断された画素位置を記録したデータであり、RAM106上の特定の領域に確保された専用のバッファ(履歴検出用バッファ)に記憶されている。
【0103】
図13(a)は、履歴データの構造を概念的に示した説明図である。図13(a)に示した履歴データは、12bitの長さを有しており、それぞれのbitが画素位置に対応している。前述したように、ここでは1つのユニットは4つの画素から構成されているとしているから、12bit分の履歴データには、3つのユニット分の画素が記憶されていることになる。尚、ここでは履歴データには3ユニット分のデータが蓄えられているものとして説明するが、より多数のユニットのデータを蓄えることとしても構わない。以下、図13(a)を参照しながら具体的に説明する。
【0104】
図示するように、履歴データは連続する4bitを1つのブロックとして、3つのブロックに分けて解釈することができる。これら3つのブロックは、下位側(図上では右側)から順番に、処理中のユニットの直前に処理したユニット(「1つ前のユニット」)、その直前に処理したユニット(「2つ前のユニット」)、更にその直前に処理したユニット(「3つ前のユニット」)にそれぞれ対応している。また、各ブロックを構成する4つのbitは、下位側から、対応するユニット内の右下隅にある画素(画素Pd )、左下隅にある画素(画素Pc )、右上隅にある画素(画素Pb )、左上隅にある画素(画素Pa )にそれぞれ対応している。履歴データ中のあるbitに値「1」が記録されていることは、そのbitが対応する画素にドットが形成されることを意味しており、逆にbitに値「0」が記憶されている場合は、そのbitが対応する画素にはドットが形成されないことを意味している。
【0105】
尚、図13において、4bitを1ブロックとして解釈しているのは、ここでは1つのユニットが4つの画素から構成されているとしたことに対応したものである(図6(a)参照)。従って、1つのユニットをN個の画素から構成されているとした場合は、履歴データは連続するNbitを1つのブロックとして解釈される。また、ここでは、履歴データは12bit分のデータであるとして説明するが、1つのユニットがN個の画素から構成されていて、処理ユニットからMユニット前に処理したユニットまでのドット形成状況を参照する場合には、履歴データは、N×Mbitの長さを有するデータとすればよい。
【0106】
一例として、図13(b)に示すような履歴データを想定する。履歴データの下位側の4つのbitからなるグループに着目すると、このグループ内の最上位(左端)のbitおよび最下位(右端)のbitには値「1」が設定されており、他のbitについては値「0」が設定されている。これは、処理中のユニットの直前に処理したユニット(「1つ前のユニット」)では、画素Pa および画素Pd の2つ画素にドットが形成され、その他の画素位置にはドットが形成されないことを意味している。同様に、履歴データの中央にあるグループについては、いずれのbitにも値「0」が記憶されているから、処理ユニットの2つ前に処理したユニットでは、いずれの画素にもドットが形成されていないことを意味している。履歴データの上位側にあるグループについては、グループ内の最上位のbitに値「1」が記憶されているから、処理ユニットの3つ前に処理したユニットでは画素Pa の画素位置にドットが形成されることを意味している。このようにして履歴データを解釈することにより、図13(b)で想定した履歴データからは、図13(c)に示したドットの形成状況を知ることができる。
【0107】
図12のステップS500では、RAM106上の所定の領域に確保された履歴検出用バッファから、このような履歴データを読み出す処理を行う。こうして、履歴データを読み出したら、続いて、履歴検出用データを設定する処理を開始する(ステップS502)。かかる処理について、図14を参照して説明する。
【0108】
図14は、履歴検出用データを設定する様子を概念的に示した説明図である。一例として、処理ユニット中の画素Pa について、ドット形成有無を判断しようとしている場合を考える。図14(a)で、斜線を付して示した破線の大きな正方形は、処理ユニットを示しており、処理ユニット中の黒い正方形は着目画素を示している。前述したようにユニット内多値化処理では、各画素のドット形成有無の判断をユニット単位で行うために、同じ画素位置にドットが形成され易くなる場合がある。この理由について、少し詳しく説明する。
【0109】
例えば、画像中で処理している領域が、画素36個につき1画素の割合でドットが形成されるような、比較的低階調の画像データの領域(明るい画像の領域)であるとする。この様な領域では、縦横6画素の合計36画素から構成される正方形の領域に、ほぼ1つずつの割合でドットが形成されることになる。この様な画像データの領域を、4画素(縦横2画素)を1ユニットとするユニット単位でドット形成有無を判断した場合、3ユニット(6画素分)を周期として同じ処理が繰り返されることになり、3ユニット目の同じ画素位置にドットが形成されてしまうことが起こり得る。
【0110】
そこで、図14(a)に示した例では、処理ユニットから3つ前のユニットまでの範囲で、各ユニットの画素Pa にドットが形成されているか否かを検出する。図14(a)中で、各ユニットの画素Pa に示された「?」は、これらの画素位置でドットの形成状況を検出することを模式的に示したものである。
【0111】
図14(b)は、これら画素位置でのドット形成状況を検出するために設定された履歴検出用データを、概念的に示した説明図である。履歴検出用データも、前述した履歴データと同様に12bitの長さを有しており、4bitを1グループとして、3つのグループに分けて解釈される。履歴検出用データが3つのグループから構成されているのは、3つのユニットでのドット形成状況を検出することに対応したものである。また、4bitで1グループを構成しているのは、本実施例では、4つの画素を1つのユニットとしてまとめて処理していることに対応したものである。履歴検出用データの各グループとユニットとの対応関係、および各bitとユニット内の画素位置との対応関係は、図13に示した履歴データの場合と同様であるため、ここでは説明は省略する。尚、ここでは、履歴検出用データは、図13に示した履歴データと同じ長さのデータとして説明するが、これに限られるものではない。
【0112】
図14(a)に示したように、ここでは、各ユニットの画素Pa でのドット形成状況を検出しようとしている場合を想定しているから、履歴検出用データは、各ユニットの画素Pa に対応するbitのみ値「1」を設定し、他のbitには値「0」を設定したデータとすればよい。
【0113】
また、着目画素が画素Pb に設定されている場合は、同様にして、処理ユニットから3つ前のユニットまでの範囲で、各ユニットの画素Pb にドットが形成されているか否かを検出すればよい。図14(c)は、着目画素が画素Pb に設定されている場合に、各ユニットでのドット形成状況を検出する画素位置を示す説明図である。図中に「?」を表示した画素が、ドット形成状況を検出する必要のある画素となる。図14(d)は、この様な画素でのドット形成状況を検出するために設定される履歴検出用データを概念的に示した説明図である。図示されているように、このような場合の履歴検出用データは、各ユニットの画素Pb に対応するbitの値を「1」として、他のbitは値「0」を設定したデータとすればよい。
【0114】
図12のステップS502では、以上に説明したようにして、着目画素の位置に応じて履歴検出用データを設定する処理を行う。
【0115】
こうして履歴検出用データを設定したら、ステップS500で読み込んだ履歴データに、設定した履歴検出用データを作用させることによって、検出対象としているドットの形成状況(以下、履歴検出用データを設定して検出しようとしているドットの形成状況を「対象履歴」と呼ぶことがあるものとする)を検出する(ステップS504)。
【0116】
図15(a)は、履歴データに履歴検出用データを作用させて、対象履歴を検出する様子を概念的に示した説明図である。図15(a)の上段には、履歴データを示し、履歴データの下段には履歴検出用データを示している。対象履歴の検出に際しては、先ず、履歴データと履歴検出用データとの間で、対応するbit同士の論理積を算出する。次いで、こうして得られた中間データの各bitの論理和をすることによって提唱履歴を検出することができる。本明細書中で「履歴データに履歴検出用データを作用させる」とは、このように、履歴データと履歴検出用データとの間で、対応するbit同士の論理積を採ることにより中間データを算出することを言う。図15(a)では、履歴データに履歴検出用データを作用して算出した中間データを、履歴検出用データの下段に示している。前述したように、履歴検出用データには、各ユニット中で検出しようとする画素位置にのみ値「1」が設定され、検出不要の画素位置には値「0」が設定されているから、履歴データと履歴検出用データとでbit同士の論理積を算出すると、検出しようとする画素位置にドットが形成されている場合にのみ、その画素位置に対応するbitの値が「1」に設定される。
【0117】
上述した処理を、図15(a)中に示した「1つ前のユニット」に着目して、具体的に説明する。履歴データに示されているように、処理ユニットの「1つ前のユニット」には画素Pa および画素Pd にドットが形成されている。ここで、ドットの形成状況を検出しようとしている画素位置は、履歴検出用データに示されているように画素Pa のみであるから、中間データは、図15(a)に示すように、画素Pa に対応するbitのみが値「1」となり、他のbitは値「0」となる。このように、中間データのいずれかのbitが値「1」となっていることは、そのユニットには、検出しようとしている画素位置にドットが形成されていることを意味している。この様に、中間データの各bitの値を解析すれば、検出しようとする画素位置にドットが形成されているか否かを、ユニット毎に検出することが可能である。
【0118】
図12のステップS504では、以上のようにして、中間データの各bitの論理和を採って検出結果を算出する処理を行う。こうして得られた検出結果に基づいて、対象履歴が検出されたか否かを判断する(ステップS506)。検出結果の値が「0」である場合は、対象履歴は検出されていないものと判断する。すなわち、検出結果(すなわち中間データの各bitの論理和)の値が「0」となったことは、検出対象とするいずれのユニットにおいても、検出しようとしている画素位置にはドットが形成されていないことを意味している。そこで、検出結果の値が「0」であれば、対象履歴は検出されていないものと判断することができる。逆に、検出結果の値が「1」であれば、検出対象としているユニット中のいずれかのユニットにおいて、検出しようとしている画素位置にドットが形成されていることを意味しており、対象履歴が検出されたものと判断することができる。
【0119】
図15(a)に示した中間データには、「1つ前のユニット」および「3つ前のユニット」の中のbitが値「1」に設定されているので、このような中間データの各bitの論理和を採って検出結果を算出すると値「1」が得られる。従って、この場合には対象履歴が検出されることになる。
【0120】
参考として、図15(a)の上段に示す履歴データが表しているドットの形成状況を、図15(b)に示した。図15(a)に示したように、中間データから算出された検出結果は値「1」となり、画素Pa にドットが形成されていることを示す結果が得られる。図15(b)に示されているように、処理ユニットの「1つ前のユニット」および「3つ前のユニット」の画素Pa の位置には、確かにドットが形成されている。このことから、履歴データに履歴検出用データを作用させる方法を用いることで、ドットの形成状況を正確に検出可能であることが確認できる。
【0121】
図12の履歴検出・閾値設定処理では、こうして検出した対象履歴に基づいて、閾値thの値を適切な値に設定する処理を行う。すなわち、ステップS506において対象履歴が検出されなかった場合には、通常値Vn を閾値thとして設定し(ステップS508)、逆に、対象履歴が検出された場合には、通常値Vn よりも大きな値に設定された割増値Vp を、閾値thとして設定する(ステップS510)。ここで設定した閾値thは、ユニット内多値化処理中で着目画素にドットを形成するか否かを判断するために参照される。こうして閾値thを設定したら、図12の履歴検出・閾値設定処理を終了して、図11に示した第1実施例のユニット内多値化処理に復帰する。
【0122】
履歴検出・閾値設定処理から復帰すると、ステップS402において算出しておいた補正データCx と、閾値thとの大小関係を判断する(ステップS406)。この閾値thは、履歴検出・閾値設定処理中で対象履歴を検出することにより、適切な値に設定されている。そして、補正データCx の方が大きい場合には(ステップS406:yes)、着目画素にはドットを形成すると判断し(ステップS408)、そうでない場合には(ステップS406:no)、着目画素にはドットを形成しないと判断する(ステップS410)。図12を用いて説明したように、対象履歴が検出されると閾値thの値は、通常用いられる値(通常値Vn )よりも大きな所定の割増値(Vp )に変更されることから、結局、対象履歴が検出された場合には着目画素にはドットが形成され難くなることとなる。こうして判断した結果は、各画素についての判断結果を示す変数に蓄えられる。
【0123】
以上のようにして着目画素についてのドット形成有無を判断したら、判断に伴って生じる階調誤差を算出する(ステップS412)。階調誤差の算出方法は、図9に示したユニット内多値化処理と同様であり、ここでは説明を省略する。ついで、処理ユニット内の全画素の処理を終了したか否かを判断する(ステップS414)。未処理の画素が残っている場合は(ステップS414:no)、ユニット内にあるそれらの周辺画素に誤差を拡散させる処理を行った後(ステップS416)、ステップS400に戻って着目画素を移動させて、続く一連の処理を繰り返す。ステップS416において処理ユニット内の画素に誤差を拡散させる処理は、図9、図10を用いて説明した前述のユニット内多値化処理と同様にして行うことができる。
【0124】
一方、ステップS414において、処理ユニット内の全画素の処理を終了したと判断された場合は(ステップS414:no)、処理ユニット内の各画素についての判断結果を、履歴検出用バッファに書き込む処理を行う(ステップS418)。かかる処理について、図16、図17を参照して説明する。
【0125】
図16は、処理ユニットの各画素についての判断結果を、履歴検出用バッファに書き込む処理の流れを示したフローチャートである。履歴検出用バッファに書き込む処理を開始すると、先ず初めに、バッファに記憶されているデータを、上位方向に1ユニット分だけシフトさせる処理を行う(ステップS600)。図17は、かかる処理を模式的に示した説明図である。図中に示された小さな正方形の列は、履歴検出用バッファを模式的に示したものであり、図中の上側に示した履歴検出用バッファはデータをシフトする前の状態を、図中の下側に示し履歴検出用バッファはデータをシフトした後の状態を示している。図16のステップS600においては、図17に示されているように履歴検出用バッファのデータを1ユニット分だけ上位方向にシフトさせる。このとき、履歴検出用バッファの最上位側のユニットのデータは破棄される。また、シフトさせた後の最下位ユニットの各bitには、念のために、いずれのbitにも値「0」を書き込んでおく。尚、図17では、履歴検出用バッファは、ユニット3つ分のデータを記憶可能であるとしているが、もちろんより多数のユニットのデータを記憶可能としてもよい。
【0126】
こうして1ユニット分のデータを上位方向にシフトさせたら(図16のステップ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)は二進数表示されていることを示すものとする。
【0127】
続くステップS604では、こうして設定したデータを、履歴検出用バッファの最下位ユニットの領域に書き込む処理を行う。図17で、最下位ユニットの各bitに向かう白抜きの矢印は、設定されたデータがこれらbitに書き込まれる様子を模式的に示したものである。
【0128】
以上のようにして、処理ユニット内の各画素の判断結果を履歴検出用バッファに書き込む処理を終了したら、図11に示した第1実施例のユニット内多値化処理を終了して、図5の階調数変換処理に復帰する。
【0129】
上述したように、第1実施例のユニット内多値化処理においては、履歴検出・閾値設定処理中で対象履歴の有無を検出し、対象履歴が検出された場合には閾値thの値を大きくすることによって、着目画素にドットが形成され難くしている。このため、ユニット単位で階調数変換処理を行っても、複数のユニットを周期として同じ画素位置にドットが形成される領域が発生し、この領域が視認されて画質を悪化させることを回避することができる。また、閾値thの設定値を大きくしたために着目画素にドットが形成されなかったとしても、これによって生じた階調誤差は周辺の未判断画素に拡散されて、これら周辺の画素ではドットが形成され易くなる。このため、本来はドットが形成されるはずの画素に、既に処理されたユニット中でのドットの形成状況を検出することで、ドットが形成され難くなったとしても、これに起因して画質が悪化することはない。
【0130】
以上の説明では、対象履歴が検出された場合には、ドット形成有無の判断に使用する閾値thの設定値を大きな値に変更して、着目画素にはドットが形成され難くするものとした。もちろん、対象履歴が検出された場合には、着目画素にはドットを形成しないと判断することも可能である。このようにすれば、複数のユニットを周期として同じ画素位置にドットが形成されることを、簡便に回避することができる。
【0131】
また、以上の説明では、履歴データに履歴検出用データを作用させて中間データを生成し、中間データの各bitの論理和を採って検出結果を算出した。これに対して、中間データの各bitの論理積を採って、この値を検出結果としても良い。この場合は、ドットの形成状況を検出しようとしている全ての画素位置にドットが形成されている場合にのみ、検出結果の値が「1」となる。従って、例えば、ドットがある程度の密度で形成されている状況で、視認されやすい特定のパターン形成されたドットだけを、確実に検出することが可能となる。
【0132】
D−4.変形例:
上述した第1実施例の履歴検出・閾値設定処理には、種々の変形例が存在している。以下、これらの各種変形例について説明する。
【0133】
(1)第1の変形例:
上述した第1実施例の履歴検出・閾値設定処理では、常に3ユニット分だけ遡ってドットの形成状況を検出するものとして説明したが、遡るユニット数を可変とすることもできる。以下では、こうした第1の変形例について説明する。
【0134】
図18は、第1の変形例の履歴検出・閾値設定処理の流れを示すフローチャートである。かかる処理は前述した第1実施例の処理に対して、処理ユニット内の画像データに応じて、遡るユニット数を変更可能な点が大きく異なっている。以下、相違点を中心として、フローチャートに従って説明する。
【0135】
第1の変形例の履歴検出・閾値設定処理を開始すると、先ず初めに処理ユニットを構成する各画素についての画像データの総和値を算出する(ステップS700)。処理ユニットを構成する各画素の画像データは、図5に示した階調数変換処理中のステップS202において予め読み込まれており、各画素の画像データの総和値は容易に算出することができる。
【0136】
第1の変形例においては、ドットの形成状況を何ユニット前まで遡って調べるかを、処理ユニットの画像データの総和値に基づいて設定する。これは次のような理由による。総和値が小さい場合は、画像データの階調値が小さな領域(すなわち明るい画像の領域)を処理していると考えられる。この様な領域では、ドットはまばらに形成されることになるので、ユニット単位で処理したことによってドットの形成にパターンが生じた場合にも、長い周期のパターンになるものと考えられる。このことから、画像データの階調値が小さな領域では長い周期のパターンも検出可能とすべく、遡るユニット数を大きな値に設定するのである。具体的に遡るユニット数は、総和値の値に応じて、段階的にいくつかの適切な数値が予め設定されている。ステップS702においては、総和値に応じて遡るユニット数を設定した後、前述した履歴検出用バッファから、ユニット数に相当するbit長のデータを読み出す処理を行う。
【0137】
こうして履歴検出用バッファから履歴データを読み出したら、続いて履歴検出用データを設定する(ステップS704)。かかる処理は、図12を用いて前述した第1実施例の履歴検出・閾値設定処理とほぼ同様であるが、処理ユニットによって履歴検出用データのbit長が変わることのみ異なっている。すなわち、第1の変形例においては、処理ユニットを構成する各画素の画像データの総和値を算出し、総和値に応じたユニット数だけ遡ってドットの形成状況を検出することとしているので、これに対応して履歴検出用データも総和値に応じた長さのデータに設定されるのである。
【0138】
次いで、履歴データに履歴検出用データを作用させて、対象履歴(検出しようとしているドットの形成状況)の有無を検出し、対象履歴が検出された場合には閾値thの値を大きな値(Vp )に変更し、対象履歴が検出されなかった場合には閾値thの値を通常値Vn に設定する(ステップS706ないしステップS712)。以上の処理を終了したら、第1の変形例の履歴検出・閾値設定処理を抜けて、図11に示したユニット内多値化処理に復帰する。
【0139】
以上に説明した第1の変形例の履歴検出・閾値設定処理によれば、処理中の画像データの階調値に応じて、適切なユニット数だけ遡ってドットの形成状況を検出することができる。このため、画質の悪化をより確実に防止することが可能となる。尚、上述した第1の変形例においては、処理ユニット内の各画素についての総和値を算出し、総和値が小さければ、明るい画像領域(画像データの階調値が小さな領域)を処理中であると判断するものとして説明した。もちろん、処理中の領域が明るい画像領域であることを異なる方法を用いて検出することとしても良い。例えば、周辺の領域の画像データの平均値を利用して検出することも可能である。また、上述した第1の変形例の履歴検出・閾値設定処理では、ドット形成有無を遡って検出するユニット数は、処理ユニット内の各画素の総和値に応じて設定されているものとして説明したが、これに限らず、各画素の階調値に応じて、遡るユニット数あるいはユニット内の画素位置を設定するものとしてもよい。こうすれば、遡るユニット数をよりきめ細かく適切な値とすることが可能となるので好ましい。
【0140】
(2)第2の変形例:
上述した各種実施例においては、処理済みのユニットの中でドットの形成有無を検出しようとする画素位置が、処理中のユニットの着目画素と同じ画素位置であるものとして説明した。しかし、処理済みのユニット中でドットの形成状況を検出する画素位置は、前述した履歴検出用データを適切に設定することにより、必要に応じて自由に設定することができる。以下では、こうした第2の変形例について説明する。
【0141】
図19は、こうした第2の変形例において、履歴検出用データを設定する様子を例示した説明図である。例えば、処理ユニットの画素Pa についてのドット形成有無を判断するに際して、図19(a)に示すように、処理ユニットの「1つ前のユニット」については画素Pa のドット形成状況を検出し、「2つ前のユニット」および「3つ前のユニット」については、いずれも画素Pc のドット形成状況を検出するものとする。図中に示した「?」印は、該当する画素についてのドット形成状況を検出することを模式的に示したものである。ドットの形成状況を検出する画素位置をこの様に設定しておけば、4ユニットを周期として、「左下の画素」、「左下の画素」、「左上の画素」、「左上の画素」のパターンで周期的にドットが形成されることを回避することができる。
【0142】
図19(b)には、図19(a)で「?」印を示した画素位置を検出するために設定される履歴検出用データを示している。前述したように、履歴検出用データは、隣接する4bitをひとまとまりとする3つのグループから構成されており、図19(b)に示すように、それぞれのグループが図19(a)に示した3つのユニットに対応している。また、各グループを構成する4つのbitは、上位側(図上では左側)から順に、画素Pa ,画素Pb ,画素Pc ,画素Pd にそれぞれ対応している。履歴検出用データは、検出しようとする画素位置に対応するbitには値「1」を設定し、その他のbitには値「0」を設定することによって得ることができる。尚、図19(c)は、こうして得られた履歴検出用データを16進数表示したものである。前述したように、履歴検出用データは4bitで1つのユニットを表しているから、4bitをまとめて16進数表示すれば履歴検出用データを簡便に表記することができる。図19(b)に示した履歴検出用データは、16進数表示することにより「0x228」と表すことができる。尚、「0x」は16進数表示していることを意味している。
【0143】
尚、上述した実施例では、ドットの形成状況を検出する画素は、各ユニットに1画素ずつであるものとしたが、もちろんユニット当たり複数の画素位置について、ドットの形成状況を検出することとしても良い。図20は、複数の画素位置でドット形成状況を検出する様子を示す説明図である。ここでは、図20(a)に示すように、処理ユニットの「1つ前のユニット」については3つの画素位置でドット形成状況を検出するものとしている。図20(b)は、この様な画素位置でのドット形成状況を検出するために設定される履歴検出用データを示した説明図である。図示されているように、「1つ前のユニット」については、画素Pa ,画素Pb ,画素Pd の3つの画素位置についてドットの形成状況を検出するものとしているから、履歴検出用データの下位側の4bitの中で、画素Pa 、画素Pb 、画素Pd にそれぞれ対応する3つのbitには値「1」が設定される。すなわち、16進数表示で「D」が設定される。また、「2つ前のユニット」および「3つ前のユニット」については、図19の場合と同様に、画素Pa のドット形成状況を検出することとしているから、これらユニットについては16進数表示で「8」が設定され、結局、履歴検出用データとしては、図20(c)に示すように「0x88D」のデータが設定されることになる。
【0144】
以上に説明したように、履歴検出用データを適切に設定することで、処理済みのユニットの中でドットの形成状況を検出する画素位置を自由に設定することが可能である。従って、複数のユニットに亘って特定のパターンでドットが形成される易くなっている場合でも、この様なパターンの発生を確実に回避することができる。また、図20に示したように、処理ユニットの近傍の画素位置についてのドット形成状況を検出しておけば、着目画素の近傍にドットが形成されることを回避することができる。このため、ドットの分散性を向上させて、画質をより改善することが可能となる。
【0145】
(3)第3の変形例:
ドットの形成状況を検出しようとする画素位置を、乱数を用いて設定することも可能である。例えば、先ず初めに、遡ってドット形成状況を検出しようとするユニット数を乱数を用いて設定し、次いで、各ユニットについて検出しようとする画素位置を乱数を用いて設定することとしても良い。こうすれば、ドットの形成状況を検出する画素位置の設定にも規則性が無くなるので、複数ユニットに亘って周期的なパターンが発生することを確実に回避することが可能となる。
【0146】
E.第2実施例:
上述した第1実施例のユニット内多値化処理中で行われる履歴検出・閾値設定処理においては、処理済みのユニットのドット形成状況を表す履歴データが、1つの履歴検出用バッファに記憶されているものとして説明した。ユニットには複数の画素が含まれているから、第1実施例においては、各画素についてのドット形成有無を表すデータが履歴検出用バッファ上で混在して記憶されていることになる。これに対して、ユニットを構成する画素の数だけバッファを設けておき、各画素のドット形成有無を判断したら、ユニット内の画素位置に対応付けて異なるバッファに判断結果を記憶することとしても良い。以下、このように画素位置毎に専用のバッファを用いた第2実施例について説明する。
【0147】
E−1.第2実施例のユニット内多値化処理:
図21は、第2実施例のユニット内多値化処理の流れを示すフローチャートである。かかる処理は、図11を用いて前述した第1実施例のユニット内多値化処理に対して、履歴検出用バッファが画素位置毎に設けられている点が大きく異なっている。また、この様な相違点から派生して、着目画素についてのドット形成有無を判断するたびに、判断結果を対応する履歴検出用バッファに書き込んでいる点でも、第1実施例とは異なっている。以下では、これら、第1実施例との相違点を中心として、第2実施例のユニット内多値化処理について説明する。
【0148】
処理を開始すると、先ず初めに、処理ユニットを構成する複数の画素の中から、ドットの形成有無を判断しようとする着目画素を検出し(ステップS800)、着目画素の画像データと拡散誤差とを加算して補正データCx を算出する(ステップS802)。処理ユニットを構成する各画素についての画像データおよび拡散誤差は、図5に示した階調数変換処理中で既に読み込まれているデータを使用する。
【0149】
こうして着目画素についての補正データCx を算出したら、第2実施例の履歴検出・閾値設定処理を開始する(ステップS804)。前述したように第2実施例においては、ユニット内の画素位置に応じて設けられた専用の履歴検出用バッファを使用する。そこで、かかる処理の内容について説明する前に、第2実施例の履歴検出・閾値設定処理で用いられる履歴検出用バッファについて説明しておく。
【0150】
図22は、ユニット内の画素位置に対応付けて設けられた履歴検出用バッファを模式的に示した説明図である。図中に示した「履歴検出用バッファA」は、ユニット内の画素Pa に対応付けられているバッファである。このバッファには、画素Pa ついてのドット形成判断結果が記憶される。また、「履歴検出用バッファB」は、ユニット内の画素Pb に対応付けられて、画素Pb についての判断結果が記憶されるバッファである。同様に、「履歴検出用バッファC」にはユニット内の画素Pc についての判断結果が記録され、「履歴検出用バッファD」には画素Pd についての判断結果が記憶される。このように第2実施例においては、ユニット内の画素位置に対応付けられた専用のバッファが設けられており、それぞれのバッファに履歴データが記憶されている。
【0151】
次に、「履歴検出用バッファA」を例にとって、記憶されている履歴データのデータ構造について説明する。履歴検出用バッファAの各bitは、下位側(図22では右側)から順番に、処理ユニットから1つずつ前のユニットに対応付けられている。すなわち、最下位bit(図上では右端のbit)は処理ユニットの「1つ前のユニット」に対応付けられており、下位から2つめのbitは「2つ前のユニット」に、下位から3つめのbitは「3つ前のユニット」に、というように、各bitがそれぞれのユニットに順番に対応付けられている。これらのbitに値「1」が設定されていることは、対応するユニットの画素Pa にドットが形成されることを表しており、逆に値「0」が設定されていることは、対応するユニットの画素Pa にはドットが形成されないことを表している。
【0152】
以上の説明から明らかなように、履歴検出用バッファAに記憶されている図22に例示の履歴データは、処理ユニットから1つ前、3つ前、5つ前、8つ前にの各ユニットについては、画素Pa にドットが形成されており、他のユニットについては画素Pa にドットが形成されていないことを表している。尚、図22では、それぞれの履歴検出用バッファは、8bit分のデータ長を有するものとしたが、より多いbit数のデータとしても構わない。
【0153】
こうした履歴検出用データを用いて行われる第2実施例の履歴検出・閾値設定処理について、以下に説明する。第2実施例の履歴検出・閾値設定処理は、前述した第1実施例の処理に対して、画素位置毎に履歴検出用バッファが設けられている点が異なっており、他の処理はほぼ同様である。そこで以下では、第1実施例の履歴検出・閾値設定処理について説明した図12のフローチャートを流用しながら説明する。尚、かかる処理は、図21のユニット内多値化処理において着目画素が設定された後(ステップS800)、かかる着目画素に対してステップS804で実行される処理である。
【0154】
第2実施例の履歴検出・閾値設定処理を開始すると、先ず初めに、履歴検出用バッファから履歴データを読み出す処理を行う(図12のステップS500相当)。図22を用いて説明したように、第2実施例では画素位置に応じて履歴検出用バッファが設けられており、かかる処理では、着目画素と同じ画素位置に対応するバッファから、必要なデータ量の履歴データを読み出す。例えば、着目画素が画素Pa にあるとして、5ユニット分だけ遡ってドットの形成状況を検出するものとすれば、「履歴検出用バッファA」の下位側から5bit分のデータを読み出すことになる。この結果、図22に示した例では、履歴データとして「10101 (2)」が読み出される。ここで、(2) は2進数表示されていることを示している。尚、着目画素が画素Pb ,画素Pc ,画素Pd に設定されている場合は、履歴検出用バッファB,履歴検出用バッファC,履歴検出用バッファDにそれぞれ記録されている履歴データを読み出せばよい。
【0155】
こうして履歴データを読み出したら、続いて、履歴検出用データを設定する処理を行う(図12のステップS502相当)。かかる処理について、図23を参照しながら説明する。例えば、処理ユニットから5つ前のユニットまで遡って、ドットの形成状況を検出するものとする。図23(a)は、ドットの形成状況を検出しようとしている画素位置の分布を概念的に示した説明図である。図中の小さな正方形はそれぞれ画素を模式的に示したものである。また、太い破線で示した大きな正方形は処理中のユニットを模式的に示したものであり、細い破線で示した大きな正方形は、既に処理済みのユニットを模式的に示したものである。処理ユニット中で斜線を付した画素は着目画素を示しており、処理済みのユニット中で図中で「?」を付した画素は、ドットの形成状況を検出しようとしている画素を示している。
【0156】
図23(b)は、このような画素についてのドット形成状況を検出するために用いられる履歴検出用データを示したものである。ここでは、処理ユニットから5つ前のユニットまで遡って検出するとしているから、履歴検出用データは、最下位bitから5bitまでのbitに値「1」が設定され、6bitより上位側のbitには値「0」が設定されている。このように、検出しようとするユニットに対応するbitに値「1」を設定し、他のbitには値「0」を設定することによって、履歴検出用データを設定することができる。図23(c)はこうして設定された履歴検出用データを16進数表示したものである。
【0157】
こうして履歴検出用データを設定したら、設定した履歴検出用データを先に読み出した履歴データに作用させることによって、対象履歴(検出しようとしている画素位置でのドットの形成状況)を検出する(図12のステップS504相当)。対象履歴の検出は、第1実施例と同様にして行う。すなわち、履歴データと履歴検出用データとの間で、対応するbit同士の論理積を採ることにより中間データを算出し、得られた中間データの各bitの論理和を採って検出結果を算出する。得られた検出結果が値「1」であれば対象履歴が検出されたものと判断して、閾値thに割増値Vp を設定する。検出結果が値「0」であれば、対象履歴は検出されなかったものと判断して、閾値thに通常値Vn を設定する。以上のようにして閾値thを適切な値に設定したら、第2実施例の履歴検出・閾値設定処理を終了して、図21に示すユニット内多値化処理に復帰する。尚、ここでは、中間データの各bitの論理和を採って検出結果を算出するものとしたが、中間データの各bitの論理積を採って検出結果を算出するものとしてもよい。
【0158】
以上のようにして閾値thを設定して、図21に示す第2実施例のユニット内多値化処理に復帰したら、続いて、着目画素の補正データCx と閾値thとの大小関係を判断する(図21のステップS806)。補正データCx の方が大きい場合には着目画素にドットを形成すると判断し(ステップS808)、そうでなければドットを形成しないと判断する(ステップS810)。次いで、ドットの形成有無を判断したことで生じる階調誤差を算出した後(ステップS812)、着目画素についての判断結果を対応する履歴検出用バッファに書き込む処理を開始する(ステップS814)。かかる処理について、図24を用いて説明する。
【0159】
図24は、第2実施例のユニット内多値化処理において、着目画素についての判断結果を履歴検出用バッファに書き込む様子を概念的に示した説明図である。今、着目画素が画素Pa に設定されているものとすると、ドット形成有無の判断結果は、履歴検出用バッファAに書き込まれることになる。判断結果を書き込むにあたっては、先ず、履歴検出用バッファAに記憶されている履歴データを、1bit分だけ上位側(図上では左側)にシフトさせる。図24の上段はシフトする前の履歴検出用バッファAに記憶されている履歴データを示しており、下段はシフトした後のバッファに記憶されている履歴データを示している。履歴データをシフトさせることに伴って、最上位bitに記憶されたデータは破棄される。次いで、着目画素についての判断結果に対応する値を、最下位のbitに書き込む処理を行う。着目画素にドットを形成すると判断された場合は、最下位のbitには値「1」が書き込まれ、着目画素にドットを形成しないと判断された場合は、値「0」が書き込まれる。以上の説明では、着目画素が画素Pa に設定されているものとして説明したが、着目画素が他の画素位置に設定されている場合も同様にして、着目画素の画素位置に対応する履歴検出用バッファに判断結果に応じた値を書き込んでやればよい。図21のステップS814では、こうして着目画素についての判断結果を、着目画素に対応する履歴検出用バッファに書き込む処理を行う。
【0160】
こうして着目画素の判断結果を書き込む処理を終了したら(図21のステップS814)、処理ユニット内の全ての画素についての処理を終了したか否かを判断し(ステップS816)、未処理の画素が残っていればステップS800に戻って上述した一連の処理を繰り返す。全ての画素についての処理を終了したら、ユニット内多値化処理を抜けて、図5に示した階調数変換処理に復帰する。
【0161】
以上に説明した第2実施例のユニット内多値化処理においては、履歴検出用バッファのそれぞれのbitが、処理済みのユニット1つ1つに対応付けられている。従って、ドットの形成状況を遡って調べるユニット数が多くなった場合でも、ユニット数と同じbit長のデータを読み込むだけでよい。例えば、処理中のユニットから8ユニット分だけ遡ってドットの形成状況を検出する場合、1ユニットが4つの画素で構成されているとして、前述した第1実施例においては32bitの履歴データを読み込む必要があるが、第2実施例では8bitのデータを読み込むだけで足りる。このため、第2実施例においては、遡るユニット数が多い場合であっても、迅速な処理を行うことができる。
【0162】
E−2.第2実施例の変形例:
上述した第2実施例では、ドット形成状況を検出する画素位置は、着目画素と同じ画素であるものとして説明した。しかし、第1実施例において、ドットの形成状況を検出しようとする画素位置を自由に設定可能であったのと同様に、第2実施例においても、ドットの形成状況を検出する画素を、ユニット毎に任意の画素位置に設定することが可能である。以下では、こうした第2の実施例の変形例について説明する。
【0163】
図25は、第2実施例において、任意の画素位置でのドットの形成状況を検出する方法を示した説明図である。図25(a)は、検出しようとする画素位置の分布を例示した説明図である。図中に示した小さな正方形は画素を模式的に示したものであり、破線で示した大きな正方形はユニットを示している。ドットの形成状況を検出しようとする画素位置は、画素中に「?」印を付して示している。検出しようとする画素位置および画素数は任意に設定することができるが、以下では、図25(a)に示した画素位置でのドット形成状況を検出するものとして説明する。
【0164】
図25(b)は、第2実施例において、任意の画素位置でのドット形成状況を検出する方法を示す説明図である。第2実施例では、前述したように、ドット形成有無の判断結果を各ユニットの画素位置毎に記憶していることから、任意の画素位置でのドット形成状況を検出しようとする場合でも、各ユニットの画素位置に着目した方法で検出する。すなわち、図25(a)に示した例では、画素Pa の画素位置について、ドット形成状況を検出しようとしているのは、処理ユニットの「1つ前のユニット」、「2つ前のユニット」、「3つ前のユニット」の3つのユニットである。また、画素Pb の画素位置については、処理ユニットの「1つ前のユニット」と、「2つ前のユニット」の2つのユニットである。更に、画素Pc あるいは画素Pd の画素位置については、いずれも処理ユニットの「1つ前のユニット」でのみドットの形成状況を検出している。このように、画素位置毎に、ドット形成状況を検出しようとするユニット位置を検出した後、検出したユニットにドットが形成されているか否かを画素位置毎に判断すれば、任意の画素位置でのドット形成状況を検出することが可能となる。以下、図25(a)に示した場合に即して具体的に説明する。
【0165】
初めに画素Pa のドット形成状況を検出する場合について説明する。図25(b)には、こうして画素Pa の画素位置でのドット形成状況を検出する様子が模式的に示されている。先ず初めに、画素Pa でのドット形成判断結果を記憶したバッファ(履歴検出用バッファA)から3ユニット分の履歴データ(最下位から3bit分のデータ)を読み出す。もちろん、より多数のユニットを遡って検出する場合は、それに応じて読み出すデータ長を長くすればよい。
【0166】
次いで、この履歴データに履歴検出用データを作用させる。履歴検出用データは、画素Pa でのドット形成状況を検出しようとしているユニットに応じて設定される。図25(a)に示すように、画素Pa については処理ユニットの「1つ前のユニット」、「2つ前のユニット」、「3つ前のユニット」の3つのユニットでドット形成状況を検出しようとしているから、これに対応して履歴検出用データは、最下位bitから3つのbitに値「1」を設定する。こうして設定した履歴検出用データ(2進数表示で「111 (2)」)を、読み出した履歴データに作用させて中間データを算出する。「履歴検出用データを履歴データに作用させる」とは、前述したように、2つのデータの対応するbit間で、論理積を採ることである。こうして中間データが得られたら、中間データの各bit間の論理和を算出することにより、画素Pa についての検出結果を得ることができる。
【0167】
こうして画素Pa について得られた検出結果は、次のことを意味している。すなわち、検出結果が値「0」であることは、検出しようとしているユニットのいずれにも画素Pa にはドットが形成されていないことを意味しており、逆に、検出結果が「1」であることは、検出しようとしているユニットのいずれかには、画素Pa にドットが形成されていることを意味している。もちろん、中間データの各bitの論理和を採る代わりに、論理積を採ることとしても良い。中間データの各bitの論理積を採った場合、検出結果の値が「1」であることは、検出しようとしている全てのユニットの画素Pa に、ドットが形成されていることを意味することになる。
【0168】
同様の方法により、画素Pb についての検出結果を得ることができる。図25(c)には、画素Pb についてのドット形成状況を検出している様子を模式的に示している。図25(b)を参照して簡単に説明すると、先ず、画素Pb についてのドット形成有無を記録したバッファ(履歴検出用バッファB)から3ユニット分の履歴データを読み出す。次いで、このデータに履歴検出用データを作用させて中間データを算出する。画素Pb については、処理ユニットの「1つ前のユニット」、および「2つ前のユニット」でのドット形成状況を検出しようとしているから、これに対応して履歴検出用データは、最下位bitから2つのbitが値「1」に設定されたデータ(2進数表示で「011 (2)」)を使用する。こうして、得られた中間データの各bit間の論理和を求めることにより、画素Pb についての検出結果を得ることができる。
【0169】
画素Pc 、画素Pd についても同様にして、それぞれの画素についての検出結果を算出することができる。これら画素については、ドット形成状況を検出しようとしているユニットは、処理ユニットの「1つ前のユニット」のみであるから、これら画素については、履歴検出用データとして最下位bitにのみ値「1」が設定されたデータ(2進数表示で「001 (2)」)を使用すればよい。画素Pc についての検出結果を算出する様子を図25(d)に、また、画素Pd についての検出結果を算出する様子を図25(e)にそれぞれ示した。
【0170】
こうして各画素についての検出結果が得られたら、これら検出結果の論理和を算出することによって、最終的な検出結果を得ることができる。すなわち、図25(a)に「?」印で示した画素のいずれかにドットが形成されていれば、検出結果として値「1」が得られ、逆にいずれの画素にもドットが形成されていない場合は検出結果として値「0」が得られることになる。もちろん、各画素についての検出結果の論理積を採ることによって、最終的な検出結果を算出することとしても良い。こうした場合は、図25(a)に「?」印で示した全ての画素にドットが形成されている場合に、最終的な検出結果の値が「1」得られることになる。
【0171】
以上に説明した方法を用いれば、ドットの形成状況を検出しようとする画素位置を、既に処理済みのユニットの中から自由に設定することが可能である。従って、ユニット単位でドットの形成有無を判断する場合であっても、所定の画素位置でのドット形成状況を検出し、検出結果を踏まえてドットの形成有無を判断することにより、複数のユニットに亘って所定のパターンでドットが形成されることを効果的に回避することが可能となる。
【0172】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。
【0173】
例えば、上述した各種実施例では、ユニットを構成する各画素についてのドット形成有無を判断する手法として、いわゆる誤差拡散法を用いているが、これに限らず、例えばディザ法などの周知な他の手法を適用することもできる。
【0174】
また、上述した各種実施例においては、処理済みのユニットの中で、所定の画素位置にドットが形成されていることが検出された場合には、着目画素についてドットが形成され難くするものとして説明した。これに対して、所定の画素位置にドットが形成されていない場合には、着目画素にドットが形成され易くする様にしても良い。こうすれば、例えば、ドットが高い密度で形成されるような領域では、ドットが形成されない画素が複数のユニットに亘って周期的に発生する場合に、画質の悪化を効果的に回避することができる。
【0175】
上述した機能を実現するソフトウェアプログラム(アプリケーションプログラム)を、通信回線を介してコンピュータシステムのメインメモリまたは外部記憶装置に供給し実行するものであってもよい。もちろん、CD−ROMやフレキシブルディスクに記憶されたソフトウェアプログラムを読み込んで実行するものであっても構わない。
【0176】
上述した各種実施例では、階調数変換処理を含む画像データ変換処理はコンピュータ内で実行されるものとして説明したが、画像データ変換処理の一部あるいは全部をプリンタ側、あるいは専用の画像処理装置を用いて実行するものであっても構わない。
【0177】
更には、画像表示装置は、必ずしも印刷媒体上にインクドットを形成して画像を印刷する印刷装置に限定されるものではなく、例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置であっても構わない。
【図面の簡単な説明】
【図1】本発明の概要を例示した印刷システムの概略構成図である。
【図2】本実施例の画像処理装置としてのコンピュータの構成を示す説明図である。
【図3】本実施例の画像表示装置としてのプリンタの概略構成図である。
【図4】本実施例の画像処理装置で行われる画像データ変換処理の流れを示すフローチャートである。
【図5】ユニット単位で行われる階調数変換処理の流れを示すフローチャートである。
【図6】複数個の画素をまとめて処理ユニットを設定している様子を示す説明図である。
【図7】処理ユニットで発生した階調誤差を周辺の未判断画素に拡散させる様子を例示した説明図である。
【図8】処理ユニットで発生した階調誤差を周辺の未判断画素に拡散させる割合を例示した説明図である。
【図9】ユニットを構成する各画素についてドット形成の有無を判断することによりユニット内を多値化する処理の流れを示すフローチャートである。
【図10】ユニット内の各画素に誤差を拡散させながら、画素毎にドット形成の有無を判断する方法を概念的に示した説明図である。
【図11】第1実施例において、ユニット内の各画素についてドット形成の有無を判断することによりユニット内を多値化する処理の流れを示すフローチャートである。
【図12】第1実施例においてドットの形成状況を検出し、閾値の値を設定する処理の流れを示すフローチャートである。
【図13】第1実施例の履歴検出・閾値設定処理において読み出される履歴データの構造を概念的に示した説明図である。
【図14】第1実施例の履歴検出・閾値設定処理において履歴を検出するために設定される履歴検出用データの構造を概念的に示した説明図である。
【図15】第1実施例の履歴検出・閾値設定処理において履歴データに履歴検出用データを作用させて対象履歴を検出する様子を概念的に示した説明図である。
【図16】第1実施例において、履歴データを格納している履歴検出用バッファに、ユニット内各画素についての判断結果を書き込む処理の流れを示したフローチャートである。
【図17】第1実施例において、履歴データを格納している履歴検出用バッファに、ユニット内各画素についての判断結果を書き込んでいる様子を概念的に示した説明図である。
【図18】第1実施例の第1の変形例においてドットの形成状況を検出し、閾値の値を設定する処理の流れを示すフローチャートである。
【図19】第1実施例の第2の変形例において履歴検出用データを設定している様子を概念的に示した説明図である。
【図20】第1実施例の第2の変形例において、異なる履歴検出用データを設定している様子を概念的に示した説明図である。
【図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…記憶装置

Claims (19)

  1. 画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理装置であって、
    互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換するドットデータ変換手段と、
    前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶するドット有無記憶手段と
    を備え、
    前記ドットデータ変換手段は、
    前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する着目画素設定手段と、
    前記変換済みのユニット内でドット形成の有無が記憶されている画素の中から、前記着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出するドット形成有無検出手段と、
    前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、該着目画素についてのドット形成の有無を判断するドット形成判断手段と
    を備える画像処理装置。
  2. 請求項1記載の画像処理装置であって、
    前記ドット形成判断手段は、
    前記所定位置にある画素についてドットの形成が検出された場合に、前記着目画素についてのドット形成を抑制するドット形成抑制手段を備えている画像処理装置。
  3. 請求項2記載の画像処理装置であって、
    前記ドット形成有無検出手段は、前記着目画素に対して所定位置にある複数の画素について、前記ドット形成の有無を検出する手段であり、
    前記ドット形成抑制手段は、前記ドットの形成が、前記複数の画素のいずれかの画素で検出された場合に、前記着目画素でのドットの形成を抑制する手段である画像処理装置。
  4. 請求項2記載の画像処理装置であって、
    前記ドット形成有無検出手段は、前記着目画素に対して所定位置にある複数の画素について、前記ドット形成の有無を検出する手段であり、
    前記ドット形成抑制手段は、前記ドットの形成が、前記複数の画素のいずれにおいても検出された場合に、前記着目画素でのドットの形成を抑制する手段である画像処理装置。
  5. 請求項1記載の画像処理装置であって、
    前記ドット形成判断手段は、
    前記所定位置にある画素についてドットの形成が検出された場合に、前記着目画素についてのドットの形成を促進するドット形成促進手段を備えている画像処理装置。
  6. 請求項1記載の画像処理装置であって、
    前記ドットデータ変換手段は、
    前記ユニットを構成する各画素についての階調値の総和値を算出する総和値算出手段を備えており、
    前記ドット形成判断手段は、前記ドット形成の有無を判断するに際して、前記着目画素についての画像データの階調値と前記検出したドット形成有無とに加えて、前記算出した総和値も考慮して判断する手段である画像処理装置。
  7. 請求項6記載の画像処理装置であって、
    前記ドット形成判断手段は、
    前記総和値が所定値以下の場合に、前記着目画素についてのドットの形成を抑制する抑制手段を備えている画像処理装置。
  8. 請求項6記載の画像処理装置であって、
    前記ドット形成判断手段は、
    前記総和値が所定値以上の場合に、前記着目画素についてのドットの形成を促進する促進手段を備えている画像処理装置。
  9. 請求項6記載の画像処理装置であって、
    前記ドットデータ変換手段は、
    前記ドット形成の有無を検出する画素位置を、階調値に対応付けて予め記憶しておく画素位置記憶手段を備えており、
    前記ドット形成有無検出手段は、前記算出した総和値の階調値に対応付けられた画素位置についてのドット形成有無を検出する手段である画像処理装置。
  10. 請求項9記載の画像処理装置であって、
    前記画素位置記憶手段は、所定値より小さな第1の階調値の方が、該所定値より大きな第2の階調値よりも、前記着目画素から遠方の画素位置を対応付けて記憶している手段である画像処理装置。
  11. 請求項1記載の画像処理装置であって、
    前記ドットデータ変換手段は、
    前記ドット形成の有無を検出する画素位置を、階調値に対応付けて予め記憶しておく画素位置記憶手段を備えており、
    前記ドット形成有無検出手段は、前記着目画素の階調値に対応付けて記憶されている画素位置についてのドット形成有無を検出する手段である画像処理装置。
  12. 請求項1、請求項2、請求項5、または請求項6のいずれかに記載の画像処理装置であって、
    前記ドット形成判断手段は、誤差拡散法を用いてドット形成の有無を判断するとともに、該判断に際して参照される該誤差拡散法の閾値を、前記ドット形成有無検出手段の検出結果に基づいて変更する手段である画像処理装置。
  13. 請求項1記載の画像処理装置であって、
    前記ドット形成判断手段は、誤差拡散法を用いてドット形成の有無を判断するとともに、前記着目画素に対して前記所定位置にある画素でのドットの形成が検出された場合は、該着目画素にはドットを形成しないと判断する手段である画像処理装置。
  14. 請求項1記載の画像処理装置であって、
    前記ドット有無記憶手段は、画素毎にドット形成の有無を表すデータを、該画素が属する前記ユニットと該ユニット内での画素位置とが識別可能な所定の順序で配列することにより、複数の該データが連続したデータ列として該ドット形成の有無を記憶する手段である画像処理装置。
  15. 請求項1記載の画像処理装置であって、
    前記ドット有無記憶手段は、画素毎にドット形成の有無を表すデータを、前記ユニット内での画素位置毎に分類し、該画素が属する前記ユニットが識別可能な所定の順序で配列することにより、複数の該データが連続したデータ列として該ドット形成の有無を、該ユニット内での画素位置毎に記憶する手段である画像処理装置。
  16. 画像を構成する各画素についての階調値によって表現された画像データを受け取り、該画像データに基づいて印刷媒体上にドットを形成することによって該画像を印刷する印刷装置であって、
    互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめるユニット生成手段と、
    前記ユニットを構成する各画素についての画像データを該ユニット単位で変換することにより、該画素の各々についてのドット形成の有無を表すドットデータに変換するドットデータ変換手段と、
    前記得られたドットデータに基づいて前記画素の各々にドットを形成するドット形成手段と、
    前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶するドット有無記憶手段と
    を備え、
    前記ドットデータ変換手段は、
    前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する着目画素設定手段と、
    前記変換済みのユニット内でドット形成の有無が記憶されている画素の中から、前記着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出するドット形成有無検出手段と、
    前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、該着目画素についてのドット形成の有無を判断するドット形成判断手段と
    を備える印刷装置。
  17. 画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理方法であって、
    互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する工程と、
    前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶する工程と
    を備え、
    前記ドットデータに変換する工程は、更に、
    前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する工程と、
    前記変換済みのユニット内でドット形成の有無が記憶されている画素の中から、前記着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出する工程と、
    前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、該着目画素についてのドット形成の有無を判断する工程と
    を備える画像処理方法。
  18. 画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する方法を実現するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
    互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する機能と、
    前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶する機能と
    を記憶しており、
    前記ドットデータに変換する機能には、
    前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する機能と、
    前記変換済みのユニット内でドット形成の有無が記憶されている画素の中から、前記着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出する機能と、
    前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、該着目画素についてのドット形成の有無を判断する機能と
    が含まれている記録媒体。
  19. 画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する方法を、コンピュータを用いて実現するためのプログラムであって、
    互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する機能と、
    前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶する機能と
    を備え、
    前記ドットデータに変換する機能には、
    前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する機能と、
    前記変換済みのユニット内でドット形成の有無が記憶されている画素の中から、前記着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出する機能と、
    前記着目画素についての画像データの階調値と、前記検出したドット形成有無とに基づいて、該着目画素についてのドット形成の有無を判断する機能と
    が含まれているプログラム。
JP2002079592A 2002-03-20 2002-03-20 複数画素単位で画像データを変換する画像処理装置 Expired - Fee Related JP3823859B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002079592A JP3823859B2 (ja) 2002-03-20 2002-03-20 複数画素単位で画像データを変換する画像処理装置
US10/390,090 US7375855B2 (en) 2002-03-20 2003-03-14 Image processing apparatus for converting image data by unit of multiple pixels

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002079592A JP3823859B2 (ja) 2002-03-20 2002-03-20 複数画素単位で画像データを変換する画像処理装置

Publications (2)

Publication Number Publication Date
JP2003283828A JP2003283828A (ja) 2003-10-03
JP3823859B2 true JP3823859B2 (ja) 2006-09-20

Family

ID=29229005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002079592A Expired - Fee Related JP3823859B2 (ja) 2002-03-20 2002-03-20 複数画素単位で画像データを変換する画像処理装置

Country Status (2)

Country Link
US (1) US7375855B2 (ja)
JP (1) JP3823859B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100417178C (zh) * 2004-05-19 2008-09-03 精工爱普生株式会社 点数据处理装置、图像输出系统及其方法
JP4635762B2 (ja) * 2005-02-09 2011-02-23 セイコーエプソン株式会社 双方向印刷を行うための画像処理装置および印刷装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3912055B2 (ja) 2000-10-06 2007-05-09 セイコーエプソン株式会社 画像処理装置、印刷制御装置、画像処理方法、および記録媒体
JP2002185788A (ja) * 2000-10-06 2002-06-28 Seiko Epson Corp 画像処理装置、画像処理方法、印刷制御装置、および記録媒体
US7268919B2 (en) * 2002-01-17 2007-09-11 Seiko Epson Corporation Image data processing apparatus, method, and program that diffuses gradiation error for each pixel in target block
US7830553B2 (en) * 2004-02-10 2010-11-09 Seiko Epson Corporation Image output system for outputting image based on information of number of dots to be formed in predetermined area
JP4274030B2 (ja) * 2004-04-12 2009-06-03 セイコーエプソン株式会社 画像出力システム、画像処理装置、画像出力装置およびそれらの方法

Also Published As

Publication number Publication date
JP2003283828A (ja) 2003-10-03
US20040001549A1 (en) 2004-01-01
US7375855B2 (en) 2008-05-20

Similar Documents

Publication Publication Date Title
JP3912055B2 (ja) 画像処理装置、印刷制御装置、画像処理方法、および記録媒体
KR100485635B1 (ko) 화상처리장치, 인쇄제어장치, 화상처리방법 및 기록매체
JP4192640B2 (ja) ブロック内のエッジを検出しながら処理を行う画像処理装置、および画像処理方法
JP5127626B2 (ja) 画像処理装置および画像処理方法
JP4645106B2 (ja) 画像処理装置、画像出力装置、及びプログラム
JP3666427B2 (ja) 画像処理装置、印刷制御装置、画像処理方法、および記録媒体
JP4375050B2 (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム
JP4225319B2 (ja) 画像出力制御システム、画像処理装置およびその方法
JP4274030B2 (ja) 画像出力システム、画像処理装置、画像出力装置およびそれらの方法
JP3823859B2 (ja) 複数画素単位で画像データを変換する画像処理装置
JP2005224983A (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム
JP3972875B2 (ja) 複数画素単位で画像データを変換する画像処理装置
JP4534942B2 (ja) 画像処理装置、画像出力装置、及びプログラム
JP4013855B2 (ja) 複数画素単位で画像データを変換する画像処理装置
JP4325325B2 (ja) 複数画素単位で画像データを変換しながら画像を印刷する印刷装置
JP4059121B2 (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム
US7414756B2 (en) Image processing apparatus for converting image data by unit of multiple pixels and printing apparatus
JP4228814B2 (ja) 複数のラスタを並行して処理しながら画像を印刷する印刷方法
JP2005007800A (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を印刷する印刷システム
JP4577366B2 (ja) 複数のラスタを並行して処理する画像処理装置
JP4475068B2 (ja) 画像処理装置、画像出力装置、及びプログラム
JP2006191268A (ja) 複数画素ずつ画像処理を行いながら画像を出力する画像出力装置
JP2004080480A (ja) 複数のラスタを並行して処理する画像処理装置
JP2005102068A (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を表示する画像表示システム
JP2007245347A (ja) 高画質ハーフトーン処理

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040917

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060619

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110707

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110707

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130707

Year of fee payment: 7

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees