JP3972875B2 - 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
JP3972875B2
JP3972875B2 JP2003206898A JP2003206898A JP3972875B2 JP 3972875 B2 JP3972875 B2 JP 3972875B2 JP 2003206898 A JP2003206898 A JP 2003206898A JP 2003206898 A JP2003206898 A JP 2003206898A JP 3972875 B2 JP3972875 B2 JP 3972875B2
Authority
JP
Japan
Prior art keywords
pixel
unit
dot formation
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
JP2003206898A
Other languages
Japanese (ja)
Other versions
JP2005064554A (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 JP2003206898A priority Critical patent/JP3972875B2/en
Priority to US10/913,298 priority patent/US7414756B2/en
Publication of JP2005064554A publication Critical patent/JP2005064554A/en
Application granted granted Critical
Publication of JP3972875B2 publication Critical patent/JP3972875B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
この発明は、階調画像データを、ドット形成の有無によって表現されたドットデータに変換する技術に関し、詳しくは、所定数の隣接する画素をユニットにまとめて処理することで画像データを迅速に変換しながら、画質の悪化を回避する技術に関する。
【0002】
【従来の技術】
印刷媒体や液晶画面といった表示媒体上に、ドットを形成することによって画像を表現する画像表示装置は、各種画像機器の出力装置として広く使用されている。かかる画像表示装置は、局所的にはドットを形成するか否かのいずれかの状態しか表現し得ないが、画像の階調値に応じてドットの形成密度を適切に制御することによって、階調が連続的に変化する画像を表現することが可能となっている。
【0003】
これら画像表示装置において画像の階調値に応じて適切な密度でドットが形成されるように、各画素についてのドット形成の有無を判断するための手法としては、誤差拡散法と呼ばれる手法が広く使用されている。誤差拡散法は、着目画素にドットを形成したこと、あるいはドットを形成しなかったことによって生じる階調表現の誤差を、該着目画素周辺の未判断画素に拡散して記憶しておき、未判断画素についてのドット形成の有無を判断するにあたっては、周辺画素から拡散されてきた誤差を解消するようにドット形成の有無を判断する手法である。誤差拡散法を用いれば、このように周辺画素で発生した階調表現の誤差を解消するようにドットの形成有無を判断することができるので、画像の階調値に応じた適切な密度となるようにドット形成の有無を判断することが可能である。
【0004】
誤差拡散法を用いれば、画像に応じて適切な密度でドットを形成することで高画質な画像を表示することができるものの、一方では、ドット形成の有無を判断する度に階調誤差を周辺画素に拡散しなければならならず、画像を構成する画素数が多くなると処理に時間がかかって迅速に画像を表現することが困難となる。このような問題を解決するために、本願の発明者は、所定数ずつの隣接する画素をユニットにまとめて、ユニット単位で誤差を拡散しながらドット形成の有無を判断する技術を開発済みである(特許文献1)。
【0005】
【特許文献1】
特開2001−185789号公報
【0006】
【発明が解決しようとする課題】
しかし、ドット形成有無の判断をユニット単位で行う場合、それぞれのユニットについては同じような処理が繰り返されることになる。このため、複数のユニットに亘って、ユニット内の同じ位置の画素にドットが形成されて、これが周期的なパターンとして視認されることとなり、画質を悪化させるおそれがある。また、ユニット内で各画素にドットが均等に形成されず、特定の画素位置に偏って形成されると、周期的なパターンの発生には至らずとも、例えばドットを形成する印字パスが特定のパスに偏ってしまい色ムラが発生するといったことにより、画質が悪化してしまう場合がある。更に、ドット形成の有無をユニット単位で判断した場合に、こうした画質の悪化が懸念されるという問題は、誤差拡散法に限らず他の周知な方法を用いた場合にも同様に生じ得る。
【0007】
この発明は、従来技術における上述の課題を解決するためになされたものであり、ドット形成の有無をユニット単位で判断することにより迅速な判断を可能としながら、画質の悪化を回避して高画質な画像を表示可能な技術の提供を目的とする。
【0008】
【課題を解決するための手段およびその作用・効果】
上述の課題の少なくとも一部を解決するため、本発明の画像処理装置は、次の構成を採用した。すなわち、
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理装置であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換するドットデータ変換手段と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶するドット有無記憶手段と
を備え、
前記ドットデータ変換手段は、
前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する着目画素設定手段と、
前記変換済みのユニット内でドット形成の有無が記憶されている画素の中から、前記着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出するドット形成有無検出手段と、
前記着目画素の階調値に基づいて、該着目画素についてのドット形成の有無を判断するドット形成判断手段と
を有するとともに、
前記ドット形成判断手段は、前記階調値に加えて前記ドット形成有無の検出結果も考慮しながら前記着目画素についてのドット形成の有無を判断することにより、前記ユニット内で前記所定位置にある画素に形成されるドットの全ドットに対する割合が所定範囲内に抑制された状態で、ドット形成の有無を判断する手段であることを特徴とする。
【0009】
また、上記の画像処理装置に対応する本発明の画像処理方法は、
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理方法であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する工程(A)と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶する工程(B)と
を備え、
前記工程(A)は、更に、
前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する下位工程(A−1)と、
前記変換済みのユニット内でドット形成の有無が記憶されている画素の中から、前記着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出する下位工程(A−2)と、
前記着目画素の階調値に基づいて、該着目画素についてのドット形成の有無を判断する下位工程(A−3)と
を有するとともに、
前記下位工程(A−3)は、前記階調値に加えて前記ドット形成有無の検出結果も考慮しながら前記着目画素についてのドット形成の有無を判断することにより、前記ユニット内で前記所定位置にある画素に形成されるドットの全ドットに対する割合が所定範囲内に抑制された状態で、ドット形成の有無を判断する工程であることを特徴とする。
【0010】
かかる画像処理装置および画像処理方法においては、画素を所定の複数個ずつユニットとしてまとめ、画像データをユニット単位でドットデータに変換するに際して、既に変換したユニット内でのドットの形成状況を検出し、検出結果を考慮しながらドットの形成有無を判断する。変換済みのユニット内でのドット形成状況は、次のようにして検出する。先ず、変換されたユニットを構成する少なくとも一部の画素について、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶しておく。次いで、ユニット内でドット形成有無を判断しようとする着目画素を設定し、ドット形成有無を記憶しておいた画素の中から、該着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出する。ドット形成の有無を検出する画素は、着目画素に対して所定位置にあればよい。従って、複数の画素について検出することとしてもよく、また、検出する画素位置は、着目画素の画素位置に応じて異なった画素位置とすることも可能である。
【0011】
こうして、着目画素についてのドット形成有無を判断するに際しては、既に変換したユニット内でのドット形成状況を検出し、検出結果を考慮することにより、ユニット内で着目画素に対して所定位置にある画素に形成されるドットの、全ドットに対する割合が所定範囲内に抑制された状態で、ドットの形成有無を判断する。
【0012】
こうすれば、画像データをユニット単位でドットデータに変換した場合でも、複数のユニットに亘ってドットが一定のパターンで形成され、その結果、周期的なパターンが視認されて画質が悪化することを確実に防止することが可能となる。あるいは、ユニット内でドットが形成される画素位置が偏る結果、ドットを形成する印字パスが特定のパスに偏って、画質が悪化することを確実に回避することが可能となる。
【0013】
こうした画像処理装置では、ユニット内で着目画素と同じ画素位置にある画素についてのドット形成有無を検出することとして、これらの画素に所定数以上のドットが形成されている場合には、着目画素についてのドット形成を抑制することとしても良い。
【0014】
こうすれば、ユニット内で着目画素と同じ画素位置にドットが偏って形成されることを回避することができる。その結果、複数ユニットに亘ってドットが一定のパターンで形成されたり、あるいはユニット内で特定の画素位置にドットが偏って形成されることに起因して、画質が悪化することを回避することが可能となる。
【0015】
あるいは、ユニット内で着目画素とは異なった所定の画素位置にある画素についてのドット形成有無を検出することとして、これらの画素に所定数以上のドットが形成されている場合には、着目画素についてのドット形成を促進することとしても良い。
【0016】
着目画素とは異なった所定の画素位置に所定数以上のドットが形成された場合、着目画素にドットを形成してやれば、その反射の作用として、所定の画素位置にはドットが形成され難くなる。従って、このようにしても、複数ユニットに亘ってドットが一定のパターンで形成されたり、あるいはユニット内で特定の画素位置にドットが偏って形成されることに起因して、画質が悪化することを回避することが可能である。
【0017】
こうした画像処理装置においては、ユニットを構成する各画素についてのドット形成の有無を、いわゆる誤差拡散法を用いて判断することとして、かかる判断に際して参照される誤差拡散法の閾値を、前記所定の画素位置についてのドット形成有無の検出結果に応じて変更することとしても良い。
【0018】
誤差拡散法の閾値を変更すれば、それに応じてドットの形成され易さを制御することができるので、前記所定の画素位置についてのドット形成有無の検出結果に基づいて、ドットの形成割合を容易に制御することが可能である。また、誤差拡散法を用いてドット形成の有無を判断しておけば、着目画素についてのドット形成有無を、所定画素位置での検出結果に応じて制御した場合でも、そのことによる誤差を速やかに解消することができるので好ましい。
【0019】
こうした画像処理装置においては、互いに隣接する4画素ずつをユニットとしてまとめることとして、ユニット内で着目画素と同じ画素位置に形成されるドットの全ドットに対する割合が10%〜40%の範囲内に入る状態で、該着目画素についてのドット形成の有無を判断することとしても良い。
【0020】
ユニットが4つの画素から構成されている場合、画素位置によらず均等な割合でドットが形成されるものとすれば、それぞれの画素位置に形成されるドットの割合は25%前後となる。経験上、この割合を10%〜40%の範囲に(より好ましくは15%〜35%の範囲に)抑制しておけば、画質の悪化を回避することが可能である。
【0021】
また、上述した画像処理装置は、印刷媒体上にドットを形成して画像を印刷する印刷装置に好適に適用することができる。すなわち、本発明の画像処理装置は、ユニット単位で変換することにより、画像データを迅速にドットデータに変換することができる。しかも、変換済みのユニットにおける所定の画素位置でのドット形成状況を検出することで、ドットが一定のパターンで形成されたり、ユニット内の特定の画素位置に偏って形成されることを回避することができる。従って、こうした画像処理装置を印刷装置に適用すれば、画像データを迅速にドットデータに変換することで、印刷に要する時間を短縮しながら、画質の悪化を回避することが可能となるので好ましい。
【0022】
また、本発明は、上述した画像処理方法を実現するプログラムをコンピュータに読み込ませることにより、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいはプログラムを記憶した記録媒体としての態様も含んでいる。すなわち、上述の画像処理方法に対応する本発明のプログラムは、
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理方法を、コンピュータを用いて実現するためのプログラムであって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する機能(A)と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶する機能(B)と
を実現するとともに、
前記機能(A)は、更に、
前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する機能(A−1)と、
前記変換済みのユニット内でドット形成の有無が記憶されている画素の中から、前記着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出する機能(A−2)と、
前記着目画素の階調値に基づいて、該着目画素についてのドット形成の有無を判断する機能(A−3)と
を有しており、
前記機能(A−3)は、前記階調値に加えて前記ドット形成有無の検出結果も考慮しながら前記着目画素についてのドット形成の有無を判断することにより、前記ユニット内で前記所定位置にある画素に形成されるドットの全ドットに対する割合が所定範囲内に抑制された状態で、ドット形成の有無を判断する機能であることを特徴とする。
【0023】
また、上述した画像処理方法に対応する本発明の記録媒体は、
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理方法を実現するためのプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する機能(A)と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶する機能(B)と
をコンピュータを用いて実現するとともに、
前記機能(A)は、更に、
前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する機能(A−1)と、
前記変換済みのユニット内でドット形成の有無が記憶されている画素の中から、前記着目画素の画素位置に対して所定位置にある画素についてのドット形成有無を検出する機能(A−2)と、
前記着目画素の階調値に基づいて、該着目画素についてのドット形成の有無を判断する機能(A−3)と
を有しており、
前記機能(A−3)は、前記階調値に加えて前記ドット形成有無の検出結果も考慮しながら前記着目画素についてのドット形成の有無を判断することにより、前記ユニット内で前記所定位置にある画素に形成されるドットの全ドットに対する割合が所定範囲内に抑制された状態で、ドット形成の有無を判断する機能であることを特徴とする。
【0024】
かかるプログラム、あるいは記録媒体に記憶されているプログラムをコンピュータに読み込ませ、上述の各種機能を該コンピュータに実行させれば、画質の悪化を招くことなく、画像データをユニット単位でドットデータに迅速に変換することが可能となる。
【0025】
【発明の実施の形態】
本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って以下に説明する。
A.実施の形態:
B.装置構成:
C.画像データ変換処理の概要:
D.第1実施例:
D−1.ユニット単位で行う階調数変換処理:
D−2.ユニット内多値化処理:
D−3.第1実施例のユニット内多値化処理:
D−4.変形例:
E.第2実施例:
E−1.第2実施例のユニット内多値化処理:
E−2.第2実施例の変形例:
【0026】
A.発明の概要:
実施例の詳細な説明を開始する前に、理解の便宜から、本発明の概要について簡単に説明しておく。図1は、印刷システムを例にとって、本発明の概要を示した説明図である。図1に示した印刷システムは、画像処理装置としてのコンピュータ10と、カラープリンタ20等から構成されている。コンピュータ10は、デジタルカメラやカラースキャナなどの画像機器からRGB各色の階調値によって表現されたカラー画像データを受け取ると、該画像データを、カラープリンタ20で印刷可能な各色ドットの形成有無により表現された印刷データに変換する。かかる画像データの変換は、プリンタドライバ12と呼ばれる専用のプログラムを用いて行われる。尚、RGB各色によるカラー画像データは、各種アプリケーションプログラムを用いてコンピュータ10で作成することもできる。
【0027】
プリンタドライバ12は、解像度変換モジュール,色変換モジュール,階調数変換モジュール14,インターレースモジュールといった複数のモジュールから構成されている。これら各モジュールで行われる処理については後述する。このうち、階調数変換モジュール14では、画像データをドット形成の有無により表現されたデータに変換する処理を行っている。また、本実施例の階調数変換モジュールでは、処理を迅速化するため、次のようにユニット単位の処理を行っている。すなわち、隣接する複数個の画素をまとめてユニットを生成し、各画素についてのドット形成有無の判断をユニット単位でまとめて行う。ドット形成有無の判断をユニット単位で行う方法については後述する。
【0028】
図1中で、階調数変換モジュール14を表す枠の下方に、矢印で示した概念図は、階調数変換モジュール14において画像データがドットデータに変換されている様子を示したものである。概念図中で破線で示した小さな正方形は画素を模式的に示したものである。これら4つの画素で1つのユニットを構成している。図中で細かい斜線を付して示したユニットは、処理中のユニット、すなわち画像データをドットデータに変換中のユニットを示したものである。また、粗い斜線を付して示した領域は、ドット形成有無が判断されてドットデータに変換された領域を示している。ドット形成有無の判断をユニット単位で行う場合、各ユニットについては同様な処理が行われる。このため、特に画像データの階調値があまり変化しない領域を処理した場合などには、複数のユニットに亘って一定のパターンでドットが形成されるおそれがある。一定のパターンでドットが形成された領域が発生すると、これが視認されて画質の悪化を招くことが懸念される。
【0029】
図1中の概念図では、ドットが一定のパターンで形成される一例として、連続するユニット内の同じ画素位置にドットが形成される場合を示している。図示されているように、処理中のユニット(細かい斜線を付したユニット)の左側には、左上隅の画素にドットが形成されたユニットが2つ連続している。仮に、処理中のユニットでも左上隅の画素にドットが形成されると、連続して3つのユニットで同じ位置の画素にドットが形成されることになり、これがパターンとして視認されて画質が悪化するおそれがある。もちろん、ドットが一定のパターンで形成される例としては、連続するユニット内の同じ画素位置にドットが形成される場合に限られず、複数のユニットを周期として一定のパターンでドットが形成される場合も起こり得る。
【0030】
この様な問題の発生を回避するために、図1に示した印刷システムにおける階調数変換モジュール14では、既に処理したユニットについてドットを形成すると判断した画素を、階調数変換結果記憶部に記憶しておく。ユニット単位でドット形成有無を判断するに際しては、階調数変換結果記憶部から判断結果を読み出して、ドットが一定のパターンで形成されることを回避しながら判断していく。例えば、図1中の概念図に示した例では、連続したユニットで同じ画素位置にドットが形成されているから、同じ位置の画素に連続してドットが形成されないようにしながら、処理ユニットについてのドット形成有無を判断していく。このように、視認され易いパターンでドットが形成されることを回避しながらドット形成の有無を判断する。こうすれば、ユニット単位でドット形成の有無を判断することによって迅速な処理を行いながら、画質を悪化させることなく高画質な画像を印刷することが可能となる。以下では、このような画像処理について、実施例に基づき詳細に説明する。
【0031】
B.装置構成:
図2は、本実施例の画像処理装置としてのコンピュータ100の構成を示す説明図である。コンピュータ100は、CPU102を中心に、ROM104やRAM106などを、バス116で互いに接続して構成された周知のコンピュータである。
【0032】
コンピュータ100には、フレキシブルディスク124やコンパクトディスク126のデータを読み込むためのディスクコントローラDDC109や、周辺機器とデータの授受を行うための周辺機器インターフェースP/IF108、CRT114を駆動するためのビデオインターフェースV/IF112等が接続されている。P/IF108には、後述するカラープリンタ200や、ハードディスク118等が接続されている。また、デジタルカメラ120やカラースキャナ122等をP/IF108に接続すれば、デジタルカメラ120やカラースキャナ122で取り込んだ画像を印刷することも可能である。また、ネットワークインターフェースカードNIC110を装着すれば、コンピュータ100を通信回線300に接続して、通信回線に接続された記憶装置310に記憶されているデータを取得することもできる。
【0033】
図3は、第1実施例のカラープリンタ200の概略構成を示す説明図である。カラープリンタ200はシアン,マゼンタ,イエロ,ブラックの4色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら4色のインクに加えて、染料濃度の低いシアン(淡シアン)インクと染料濃度の低いマゼンタ(淡マゼンタ)インクとを含めた合計6色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク,マゼンタインク,イエロインク,ブラックインク,淡シアンインク,淡マゼンタインクのそれぞれを、Cインク,Mインク,Yインク,Kインク,LCインク,LMインクと略称することがあるものとする。
【0034】
カラープリンタ200は、図示するように、キャリッジ240に搭載された印字ヘッド241を駆動してインクの吐出およびドットの形成を行う機構と、このキャリッジ240をキャリッジモータ230によってプラテン236の軸方向に往復動させる機構と、紙送りモータ235によって印刷用紙Pを搬送する機構と、ドットの形成やキャリッジ240の移動および印刷用紙の搬送を制御する制御回路260とから構成されている。
【0035】
キャリッジ240には、Kインクを収納するインクカートリッジ242と、Cインク,Mインク,Yインクの各種インクを収納するインクカートリッジ243とが装着されている。キャリッジ240にインクカートリッジ242,243を装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド241の下面に設けられた各色毎のインク吐出用ヘッド244ないし247に供給される。各色毎のインク吐出用ヘッド244ないし247には、48個のノズルNz が一定のノズルピッチkで配列されたノズル列が1組ずつ設けられている。
【0036】
制御回路260は、CPU261と、ROM262、RAM263等から構成されている。制御回路260は、キャリッジモータ230と紙送りモータ235とを適切に駆動することを通じて、キャリッジ240の主走査と副走査とを制御するとともに、コンピュータ100から供給される印刷データに基づいて、各ノズルから適切なタイミングでインク滴を吐出する。こうして、制御回路260の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ200はカラー画像を印刷することができる。
【0037】
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡(バブル)を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
【0038】
更には、吐出するインク滴の大きさを制御したり、あるいは一度に複数のインク滴を吐出して、吐出するインク滴の数を制御することにより、印刷用紙上に形成されるインクドットの大きさを制御可能な、いわゆるバリアブルドットプリンタを使用することもできる。
【0039】
以上のようなハードウェア構成を有するカラープリンタ200は、キャリッジモータ230を駆動することによって、各色のインク吐出用ヘッド244ないし247を印刷用紙Pに対して主走査方向に移動させ、また紙送りモータ235を駆動することによって、印刷用紙Pを副走査方向に移動させる。制御回路260は、印刷データに従って、キャリッジ240の主走査および副走査を繰り返しながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ200は印刷用紙上にカラー画像を印刷している。
【0040】
C.画像データ変換処理の概要:
図4は、本実施例の画像処理装置としてのコンピュータ100が、受け取った画像データに所定の画像処理を加えることによって、画像データを印刷データに変換する処理の流れを示すフローチャートである。かかる処理は、コンピュータ100のオペレーティングシステムがプリンタドライバ12を起動することによって開始される。以下、図4に従って、本実施例の画像データ変換処理について簡単に説明する。
【0041】
プリンタドライバ12は、画像データ変換処理を開始すると、先ず初めに、変換すべきRGBカラー画像データの読み込みを開始する(ステップS100)。次いで、取り込んだ画像データの解像度を、カラープリンタ200が印刷するための解像度に変換する(ステップS102)。カラー画像データの解像度が印刷解像度よりも低い場合は、線形補間を行うことで隣接する画像データ間に新たなデータを生成し、逆に印刷解像度よりも高い場合は一定の割合でデータを間引くことによって、画像データの解像度を印刷解像度に変換する。
【0042】
こうして解像度を変換すると、カラー画像データの色変換処理を行う(ステップS104)。色変換処理とは、R,G,Bの階調値の組み合わせによって表現されているカラー画像データを、C,M,Y,Kなどのカラープリンタ200で使用する各色の階調値の組み合わせによって表現された画像データに変換する処理である。色変換処理は、色変換テーブルと呼ばれる3次元の数表を参照することで迅速に行うことができる。
【0043】
プリンタドライバ12は、色変換処理に続いて階調数変換処理を開始する(ステップS106)。階調数変換処理とは次のような処理である。色変換処理によって、RGB画像データはC,M,Y,K各色の階調データに変換される。これら各色の階調データは、階調値0から255の256階調を有するデータである。これに対し、本実施例のカラープリンタ200は、「ドットを形成する」,「ドットを形成しない」のいずれかの状態しか採り得ない。そこで、256階調を有する各色の階調データを、カラープリンタ200が表現可能な2階調で表現された画像データに変換する必要がある。このような階調数の変換を行う処理が階調数変換処理である。後述するように、本実施例のプリンタドライバ12は、画素を所定数ずつユニットにまとめ、ユニット単位で階調数変換処理を行うことによって迅速な処理を可能としている。また、処理済みのユニットについては、ドットを形成すると判断した画素を記憶しておき、このデータを反映させながら階調数変換を行う。こうすることで、ユニット単位で階調数変換処理を行った場合に懸念される、ドットが一定のパターンで形成される現象が発生することを確実に回避することが可能となっている。階調数変換処理については、後ほど詳細に説明する。
【0044】
こうして階調数変換処理を終了したら、プリンタドライバはインターレース処理を開始する(ステップS108)。インターレース処理とは、ドットの形成有無を表す形式に変換された画像データ(ドットデータ)を、ドットの形成順序を考慮しながらカラープリンタ200に転送すべき順序に並べ替える処理である。プリンタドライバ12は、インターレース処理を行って最終的に得られた画像データを、印刷データとしてカラープリンタ200に出力する(ステップS110)。カラープリンタ200は、印刷データに従って、各色のインクドットを印刷媒体上に形成する。その結果、画像データに対応したカラー画像が印刷媒体上に印刷される。
【0045】
D.第1実施例:
以下、図4に示した画像データ変換処理の中で行われる第1実施例の階調数変換処理について説明する。前述したように、本実施例の階調数変換処理では、複数の画素をユニットにまとめて、階調数変換処理をユニット単位で行っている。そこで、第1実施例の階調数変換処理について説明するための準備として、先ず、階調数変換処理をユニット単位で行う方法について説明し、その後、第1実施例の階調数変換処理において、処理済みのユニットでの判断結果を、ドット形成有無の判断に反映させる処理について説明する。
【0046】
D−1.ユニット単位で行う階調数変換処理:
図5は、ユニット単位で行う階調数変換処理の流れを示すフローチャートである。この処理は、コンピュータ100のCPU102によって行われる。尚、本実施例のカラープリンタ200は、前述したようにC,M,Y,Kの4色のインクドットを形成可能なプリンタであり、図5に示す処理も各色毎に行っている。しかし、以下では説明が煩雑となることを避けるために、色を特定せずに説明することとして、特段の明示がない限り、色を特定せずに説明した場合は、各色について同様な処理が行われることを意味するものとする。
【0047】
ユニット単位の階調数変換処理を開始すると、先ず初めに、処理するユニットの位置を設定する(ステップS200)。ユニット単位で行う階調数変換処理では、所定の複数個の隣接する画素をユニットとしてまとめ、各画素にドットを形成するか否かの判断をユニット単位で行う。そこで、ユニット単位の階調数変換処理を開始すると、先ず初めに、画像中でドットの形成有無を判断しようとするユニット(処理ユニット)の位置を設定する処理を行う。
【0048】
図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つの画素を処理ユニットとして設定しても構わない。
【0049】
処理ユニットを設定したら、続いてユニット内の各画素についての画像データおよび拡散誤差の読み込みを行う(図5のステップS202)。ここで読み込む画像データは、前述した色変換処理(図4のステップS104)によって色変換して得られたC,M,Y,K各色の階調データである。また、拡散誤差とは、階調数を変換することにより生じた階調誤差が、周辺のユニットから処理ユニットの各画素に拡散されてきた誤差である。画像データがC,M,Y,Kの各色毎の階調データであることから、階調誤差はこれら各色毎に発生し、従って拡散誤差もこれら各色毎の階調データとなっている。階調数を変換することに伴って階調誤差が発生し、発生した誤差が拡散誤差として周辺の画素に拡散される様子については後述する。
【0050】
ここでは、図6(a)に示すように、処理ユニットは画素Pa 、画素Pb 、画素Pc 、画素Pd の4つの画素で構成されているとしているから、図5のステップS202の処理では、それぞれの画素について、画像データDTa 、DTb 、DTc 、DTd および拡散誤差EDa 、EDb 、EDc 、EDd が読み込まれることになる。処理ユニットについて読み込んだこれらのデータは、コンピュータ100のRAM106に記憶される。
【0051】
こうして各画素の画像データおよび拡散誤差を読み込んだら、処理ユニットを構成する各画素について、ドット形成の有無を判断する処理を開始する(ステップS204)。ここでは、図6(a)に示したように処理ユニットは4つの画素で構成されているとしているから、ステップS204の処理ではこれら4つの画素について所定の順序でドット形成の有無を判断していく。尚、本明細書中では、このようにユニット内の各画素についてドット形成の有無を判断する処理を、「ユニット内多値化処理」と呼ぶことがあるものとする。ユニット内多値化処理の詳細な内容については後述する。
【0052】
処理ユニットを構成する各画素についてのドット形成有無の判断を終了したら、判断に伴って処理ユニット内で生じた階調誤差を、周辺のユニットに拡散する処理を行う(ステップS206)。処理ユニット内で生じた階調誤差とは、処理ユニット全体で表現すべき画像データの階調値と、該ユニット内の各画素にドットを形成することによって実際に表現された階調値との偏差を表す誤差である。処理ユニットで生じる階調誤差を算出する方法については、ユニット内多値化処理の説明の中で説明する。ステップS206においては、この偏差を示す階調値を、処理ユニットで生じた階調誤差として周辺の未処理のユニットに拡散させる処理を行う。
【0053】
図7は、処理ユニットで生じた階調誤差を、周辺の未処理のユニットに拡散させる様子を概念的に示した説明図である。図7中に示した複数の小さな正方形は、それぞれ画素を模式的に表示したものである。また、太い破線で示した大きな正方形は処理ユニットを示しており、細い破線で示した大きな正方形は、処理ユニットに隣接する未処理のユニットを示している。処理ユニットで生じた階調誤差は、周辺の未処理ユニットを構成する画素に所定の割合で拡散する。図7中で処理ユニットから周辺の6つの画素に伸びる黒抜きの矢印は、処理ユニットで生じた階調誤差を、これら6つの画素に所定の割合で拡散していることを模式的に示している。
【0054】
図8は、処理ユニットで生じた階調誤差を、処理ユニット周辺の未処理のユニットを構成する画素に拡散させる割合が設定されている様子を例示したものである。図8中で、太い実線で示した大きな正方形は処理ユニットを表したものであり、処理ユニットに隣接して細い破線で示した大きな正方形は、処理ユニット周辺の未処理のユニットを示したものである。これら未処理のユニットの中に細い実線で示した複数の小さな正方形は、処理ユニットからの誤差が拡散される画素を表示したものである。
【0055】
図8(a)に示した例では、処理ユニットの右側にある2つの画素には、処理ユニットで生じた階調誤差が1/8の割合でそれぞれ拡散され、処理ユニットの下側にある2つの画素にも同様に、階調誤差が1/8の割合でそれぞれ拡散される。また、処理ユニットの左下の画素あるいは右下の画素には、階調誤差が1/4の割合でそれぞれ拡散される。このような割合で階調誤差を拡散させれば、処理ユニットの周辺のユニットに均等に、それぞれ階調誤差の1/4の割合で拡散されることになる。また、図8(b)に示した例では、処理ユニットで生じた階調誤差が、処理ユニット周辺のユニットを構成するすべての画素に、同じ割合で拡散される。もちろん、同じユニットに拡散する誤差をそのユニットの1つの画素にまとめて拡散するようにしても良い。
【0056】
図5のステップS206においては、以上のようにして、処理ユニットで生じた階調誤差を周辺のユニットに拡散させる。処理ユニットについて、上述したすべての処理を終了したら、画像を構成する全てのユニットについて処理を終了したか否かを判断し(ステップS208)、未処理のユニットが残っていればステップS200に戻って続く一連の処理を繰り返す。こうして、すべてのユニットについての処理を完了したら、ユニット単位の階調数変換処理を終了する。
【0057】
以上に説明したユニット単位で階調数変換処理を行えば、画素毎に処理した場合に比べて、以下のような利点を得ることができる。すなわち、階調数変換処理を画素毎に行う場合は、1つの画素についてのドット形成有無を判断する度に、その画素に対応付けて記憶されている拡散誤差を読み出さなければならず、また、ドット形成有無の判断によって生じた階調誤差を周辺の未判断画素に誤差を拡散しなければならない。このため、階調数変換処理を画素毎に行うと、処理時間が長くなってしまう傾向にある。これに対して、階調数変換処理をユニット単位で行った場合は、ユニット単位で画像データを読み出し、階調誤差を拡散させた後、拡散誤差をユニット単位でメモリに書き込むことができる。こうしてデータの読み出しおよび書き込みをユニット単位でまとめて行えば、処理に要する時間を短縮化することが可能である。
【0058】
D−2.ユニット内多値化処理:
上述したユニット単位の階調数変換処理で行われるユニット内多値化処理(図5のステップS204)について説明する。図9は、ユニット内多値化処理の流れを示したフローチャートである。以下、フローチャートに従って説明する。
【0059】
ユニット内多値化処理を開始すると、先ず初めに、処理ユニットを構成する画素の中から、ドット形成の有無を判断する画素(着目画素)を1つ設定する(ステップS300)。前述したようにユニットは複数の画素から構成されているので、これら複数の画素について所定の順序で1画素ずつドット形成の有無を判断することとして、着目画素を1つ選択する。ここでは、図6(a)に示したユニットを構成する4つの画素を、左上にある画素から右下の画素に向かって画素Pa 、画素Pb 、画素Pc 、画素Pd の順番にドット形成有無を判断することとして、ステップS300では、先ず初めに、左上隅にある画素Pa を着目画素として設定する。
【0060】
次いで、設定した着目画素(ここでは、画素Pa )についての補正データCx を算出する(ステップS302)。補正データCx は、着目画素の画像データと着目画素に拡散されて記憶されている拡散誤差とを加算することによって求めることができる。処理ユニットを構成する各画素についての画像データおよび拡散誤差は、図5に示した階調数変換処理中のステップS202において既に読み込まれているので、ユニット内多値化処理の数轍鮒S302においては、これらのデータの中から着目画素の画像データと拡散誤差とを加算して補正データCx を算出する。
【0061】
着目画素Pa の補正データCx を算出したら、得られた補正データCx と所定の閾値thとの大小関係を判断する(ステップS304)。そして、補正データCx の方が大きければ着目画素(ここでは画素Pa )にドットを形成すると判断し(ステップS3306)、そうでなければ、着目画素にはドットを形成しないと判断する(ステップS308)。判断の結果は、各画素についての判断結果を示す変数に蓄えられる。
【0062】
こうして着目画素についてのドット形成有無を判断したら、判断に伴って着目画素に生じた階調誤差を算出する(ステップS310)。階調誤差は、ドットを形成したこと、あるいはドットを形成しなかったことによって着目画素に表現される階調値(以下では、この階調値を結果値と呼ぶ)を、着目画素の補正データCx から減算することによって算出することができる。
【0063】
着目画素で生じた階調誤差を算出したら、処理ユニット内の全画素の処理を終了したか否かを判断し(ステップS312)、未処理の画素が残っている場合は(ステップS312:no)、これら未処理の画素中で着目画素周辺にある画素に誤差を拡散させる処理を行う(ステップS314)。この処理について、図10を参照しながら説明する。
【0064】
図10は、処理ユニット内の画素から着目画素を1つずつ選択してドット形成の有無を判断することにより、ドット形成の有無をユニット単位で判断している様子を模式的に示した説明図である。図中の4つの正方形は、処理ユニットを構成する画素Pa 、画素Pb 、画素Pc 、画素Pd をそれぞれ示している。また、画素Pa を示す正方形の中に示したDTa およびEDa は、画素Pa に対応付けて、画像データDTa と拡散誤差EDa とがRAM106に読み込まれていることを概念的に示したものである。同様に、画素Pb には画像データDTb と拡散誤差EDb とが、画素Pc には画像データDTc と拡散誤差EDc とが、画素Pd には画像データDTd と拡散誤差EDd とが対応付けられて、それぞれRAM106に記憶されている。
【0065】
前述したように、着目画素は、先ず初めはこれら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 に更新される。
【0066】
他の画素Pc および画素Pd についても同様な処理を行う。簡単に説明すると、画素Pa からの誤差が画素Pc に拡散されると、画素Pc に記憶されていた拡散誤差EDc と画素Pa からの誤差とが加算され、新たな拡散誤差EDc として画素Pc に対応付けて記憶される。また、画素Pd についても同様に、画素Pd に記憶されていた拡散誤差EDd と画素Pa からの誤差とが加算され、新たな拡散誤差EDd として画素Pd に対応付けて記憶される。図10(a)中で画素Pa から他の3つ画素に向かって表示されている白抜きの矢印は、画素Pa で生じた誤差がこれら3つの画素に拡散されることを模式的に示したものである。尚、階調誤差は、必ずしも周辺の未判断画素に均等に分配する必要はなく、各画素に所定の割合で分配することも可能である。
【0067】
以上のようにして画素Pa で階調誤差をユニット内の周辺画素に拡散したら、図9のステップS300に戻って、新たな着目画素を設定する処理を行う。処理ユニット中の画素Pa については、既にドット形成の有無を判断済みであるから、ステップS300では、今度は画素Pa の右隣の画素Pb を着目画素として設定する。こうして設定した新たな着目画素について、上述した処理とほぼ同様の処理を行う。以下、画素Pa における処理との相違点を中心に簡単に説明する。
【0068】
画素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 から結果値を減算することによって算出することができる。
【0069】
着目画素Pb で生じた階調誤差を算出したら、処理ユニット内のすべての画素について処理を終了したか否かを判断し(ステップS312)、未処理の画素が残っていれば、算出しておいた階調誤差を、これら未処理の画素に拡散させる処理を行う(ステップS314)。前述したように、ユニット内の画素Pa については既に判断を終了しているから、未判断画素として残っているのは画素Pc および画素Pd の2つの画素である。そこで、画素Pb で生じた階調誤差はこれら2つの画素に拡散させることになる。再び、図10を参照しながら、画素Pb からの誤差を拡散させる処理について説明する。
【0070】
図10(b)は、画素Pb で生じた階調誤差を拡散している様子を概念的に示した説明図である。図中で、画素Pa に斜線が施されているのは、画素Pa については既にドット形成の有無を判断済みであることを模式的に示したものである。画素Pb についてドット形成の有無を判断した時点では、処理ユニット内には未判断画素として画素Pc 、画素Pd の2つの画素が残っている。そこで、画素Pb で生じた階調誤差は、図10(b)に示したように、これらの画素Pc および画素Pd にそれぞれ、1/2ずつ拡散されることになる。図中で、画素Pb から画素Pc および画素Pd に向かって伸びる白抜きの矢印は、画素Pb で生じた階調誤差がこれら画素に拡散されていることを模式的に示している。こうして誤差が拡散される結果、各画素の拡散誤差は、拡散されてきた誤差が加算された新たな拡散誤差に更新される。尚、ここでは、階調誤差は処理ユニット内の未判断画素に均等に拡散されるものとしているが、もちろん、均等に拡散させるのではなく、所定の割合で誤差を拡散させることとしても構わない。
【0071】
こうして画素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 として更新される。
【0072】
着目画素Pc で生じた階調誤差を拡散したら、図9のステップS300に戻って着目画素を画素Pd に移動した後、画素Pd についてのドット形成有無の判断を開始する。すなわち、画素Pd に対応づけられた新たな拡散誤差EDd と画素Pd の画像データDTd とを加算して補正データCx を算出する(ステップS300、ステップS302)。次いで、補正データCx と閾値thとを比較し(ステップS304)、補正データCx の方が大きい場合は画素Pd にはドットを形成する(ステップS306)と判断し、そうでない場合は画素Pd にはドットを形成しないと判断する(ステップS308)。
【0073】
こうして画素Pd についてのドット形成の有無を判断したら、画素Pd で生じた階調誤差を算出した後(ステップS310)、処理ユニット内の全画素の処理を終了したか否かを判断する(ステップS312)。図10(d)に示したように、画素Pd について処理を開始した時点で、もはや処理ユニット内には未判断の画素は残っておらず、画素Pd についての判断が終了した後のステップS312においては、処理ユニット内の全画素についての処理が終了したと判断される。そこで、図9に示したユニット内の多値化処理を終了して、図5を用いて前述したユニット単位で行う階調数変換処理に復帰する。図5に示されているように、ユニット単位の階調数変換処理では、ユニット内多値化処理から復帰すると、処理ユニットで生じた階調誤差を周辺のユニットに拡散する処理を行う(図5のステップS206)。
【0074】
ここで、処理ユニットで生じた階調誤差の値としては、ユニット内多値化処理のステップS310において画素Pd について求めた階調誤差の値を用いることができる。これは、着目画素で生じた階調誤差をユニット内の未判断画素に拡散しながらドット形成有無の判断を行っているために、ユニット内で生じた階調誤差が、最後に判断する画素Pd に拡散誤差EDd として累積されることによる。以下、図10を参照して詳しく説明する。
【0075】
画素Pa で生じた階調誤差は処理ユニット内の画素Pb 、画素Pc 、画素Pd の3つの画素に拡散される。画素Pb のドット形成有無の判断に際しては、画素Pa からの誤差を考慮して、画素Pb に拡散されている誤差ができるだけ解消されるようにドット形成の有無が判断される。仮に、画素Pb についてドット形成有無を判断することにより、画素Pb に拡散されている誤差を解消することができたものとする。この場合は、画素Pb では新たな階調誤差は発生せず、また、画素Pb から画素Pc 、画素Pd に拡散される誤差も生じない。他の2つの画素Pc 、画素Pd についても同様に、ドット形成の有無を判断したことで、それぞれの画素に拡散されている誤差を解消することができたものとすると、これらの画素では階調誤差は生じない。結局、この場合は、画素Pa で生じた階調誤差を、周辺の未判断画素Pb 、画素Pc 、画素Pd で解消したこととなって、処理ユニット全体としては階調誤差の発生を避けることができる。
【0076】
ここでは、画素Pb のドット形成有無の判断によって、画素Pb での誤差を解消するものとしたが、画素Pb で新たな階調誤差が発生した場合には、この誤差は周辺の未判断画素Pc および画素Pd に拡散されて、その結果、これらの画素には、画素Pa で生じた階調誤差と画素Pb で生じた階調誤差とが拡散されることになる。しかし、これら画素Pc 、画素Pd についてドット形成の有無を判断することで、それぞれの画素に拡散された誤差を解消することができれば、依然としてユニット全体としてみれば階調誤差は生じない。
【0077】
画素Pc についてドット形成有無を判断することで、画素Pc に拡散されている拡散誤差を解消することができない場合も、全く同様にして、画素Pd で誤差を解消することができれば、ユニット全体としては階調誤差が生じることはない。換言すれば、画素Pd で解消しきれずに残った誤差が、ユニット全体で生じた階調誤差となる。このように、着目画素で生じた階調誤差をユニット内の未判断画素に拡散しながらドット形成有無を判断していくと、各画素で解消しきれずに残った階調誤差が後続する画素に集約されていくので、ユニット内で最後に判断する画素Pd で生じた階調誤差を、処理ユニット全体で生じた階調誤差として用いることが可能となるのである。
【0078】
尚、以上の説明では、処理ユニット内で最後にドット形成有無を判断する画素Pd で生じた階調誤差の値を、処理ユニット全体で生じた階調誤差として用いるものとしたが、もちろん、処理ユニットを構成する各画素毎に階調誤差を算出し、これら階調誤差の総和を処理ユニットの階調誤差としても構わない。
【0079】
また、図10に示した例では、着目ユニットを構成する各画素のドット形成有無を判断するに際しては、画素Pa 、画素Pb 、画素Pc 、画素Pd の順番で判断を行ったが、必ずしもこの順番で判断する必要はなく、例えば、画素Pa 、画素Pc 、画素Pb 、画素Pd の順番でドット形成有無を判断しても構わない。処理ユニット内で着目画素を設定する順番は、良好な画質が得られる順番を選択しておくことができる。
【0080】
D−3.第1実施例のユニット内多値化処理:
以上に説明したようにして、ユニット単位で階調数変換処理を行う場合、ユニット毎に同じ処理が繰り返されることになる。このことから、あるユニットでドットを形成すると判断した画素は、後続するユニットでも、同じ位置にドットが形成されると判断され易い傾向がある。あるいは、個々のユニットについてはドットが形成されるユニットとされないユニットが生じるものの、複数のユニットを周期として一定のパターンでドットが形成されることがある。例えば、画像データが一定の領域が続く場合など、複数のユニットを周期としてほとんど同じ処理が繰り返されることになり、ユニット内の同じ位置の画素に周期的にドットが形成されることが起こり得る。もちろん、ドット自体の大きさは視認が困難なほどに小さいが、複数のユニットに亘って周期的なパターンでドットが形成されると、この様な領域の存在が視認されて画質を悪化させるおそれがある。更には、周期的なパターンが視認されるまでには至らずとも、ユニット内の特定の画素位置に偏ってドットが形成されると、ドットを形成する印字パスが特定のパスに偏ってしまい色ムラが発生するなどして、画質が悪化してしまう場合がある。
【0081】
この様な問題の発生を回避するために、第1実施例では、ユニット内の多値化処理を行い、画像データをユニット単位でドットデータに変換するに際して、既に処理したユニット中でドットが形成された画素位置を検出し、検出結果を反映させながらドット形成の有無を判断している。このように、処理済みのユニット内でドットが形成される画素位置の履歴を考慮しながら、処理ユニット内のドット形成有無を判断すれば、画像データをユニット単位で変換することによって生じ得る画質の悪化を回避することができる。以下では、こうした第1実施例のユニット内多値化処理について説明する。
【0082】
図11は、第1実施例のユニット内多値化処理の流れを示すフローチャートである。かかる処理は、図9を用いて前述したユニット内多値化処理に対して、処理済みのユニット内でドットが形成された画素位置を検出し、検出結果を反映させながら階調数変換処理を行っている点が大きく異なっている。以下、前述したユニット内多値化処理との相違点を中心として、第1実施例のユニット内多値化処理について説明する。
【0083】
第1実施例のユニット内多値化処理においても、処理を開始すると先ず初めに、処理ユニットの中から着目画素を1つ設定し(ステップS400)、設定した着目画素についての補正データCx を算出する(ステップS402)。補正データCx は、着目画素の画像データと着目画素に拡散されて記憶されている拡散誤差とを加算することによって求めることができる。また、処理ユニットを構成する各画素の画像データおよび拡散誤差は、図5に示した階調数変換処理中のステップS202において既に読み込まれており、これらデータの中から着目画素についてのデータを用いて補正データCx を算出する。
【0084】
次いで、第1実施例のユニット内多値化処理においては、処理済みのユニット内でドットが形成される画素位置の履歴を検出し、検出結果に基づいて閾値thを適切な値に設定する処理を行う(ステップS404)。この処理(履歴検出・閾値設定処理)について、図12を参照しながら説明する。
【0085】
図12は、履歴検出・閾値設定処理の流れを示すフローチャートである。履歴検出・閾値設定処理を開始すると、先ず初めに、履歴データを読み出す処理を行う(ステップS500)。履歴データとは、処理済みのユニットについてドットを形成すると判断された画素位置を記録したデータであり、RAM106上の特定の領域に確保された専用のバッファ(履歴検出用バッファ)に記憶されている。
【0086】
図13(a)は、履歴データの構造を概念的に示した説明図である。図13(a)に示した履歴データは、12bitの長さを有しており、それぞれのbitが画素位置に対応している。前述したように、ここでは1つのユニットは4つの画素から構成されているとしているから、12bit分の履歴データには、3つのユニット分の画素が記憶されていることになる。尚、ここでは履歴データには3ユニット分のデータが蓄えられているものとして説明するが、より多数のユニットのデータを蓄えることとしても構わない。以下、図13(a)を参照しながら具体的に説明する。
【0087】
図示するように、履歴データは連続する4bitを1つのブロックとして、3つのブロックに分けて解釈することができる。これら3つのブロックは、下位側(図上では右側)から順番に、処理中のユニットの直前に処理したユニット(「1つ前のユニット」)、その直前に処理したユニット(「2つ前のユニット」)、更にその直前に処理したユニット(「3つ前のユニット」)にそれぞれ対応している。また、各ブロックを構成する4つのbitは、下位側から、対応するユニット内の右下隅にある画素(画素Pd )、左下隅にある画素(画素Pc )、右上隅にある画素(画素Pb )、左上隅にある画素(画素Pa )にそれぞれ対応している。履歴データ中のあるbitに値「1」が記録されていることは、そのbitが対応する画素にドットが形成されることを意味しており、逆にbitに値「0」が記憶されている場合は、そのbitが対応する画素にはドットが形成されないことを意味している。
【0088】
尚、図13において、4bitを1ブロックとして解釈しているのは、ここでは1つのユニットが4つの画素から構成されているとしたことに対応したものである(図6(a)参照)。従って、1つのユニットをN個の画素から構成されているとした場合は、履歴データは連続するNbitを1つのブロックとして解釈される。また、ここでは、履歴データは12bit分のデータであるとして説明するが、1つのユニットがN個の画素から構成されていて、処理ユニットからMユニット前に処理したユニットまでのドット形成状況を参照する場合には、履歴データは、N×Mbitの長さを有するデータとすればよい。
【0089】
一例として、図13(b)に示すような履歴データを想定する。履歴データの下位側の4つのbitからなるグループに着目すると、このグループ内の最上位(左端)のbitおよび最下位(右端)のbitには値「1」が設定されており、他のbitについては値「0」が設定されている。これは、処理中のユニットの直前に処理したユニット(「1つ前のユニット」)では、画素Pa および画素Pd の2つ画素にドットが形成され、その他の画素位置にはドットが形成されないことを意味している。同様に、履歴データの中央にあるグループについては、いずれのbitにも値「0」が記憶されているから、処理ユニットの2つ前に処理したユニットでは、いずれの画素にもドットが形成されていないことを意味している。履歴データの上位側にあるグループについては、グループ内の最上位のbitに値「1」が記憶されているから、処理ユニットの3つ前に処理したユニットでは画素Pa の画素位置にドットが形成されることを意味している。このようにして履歴データを解釈することにより、図13(b)で想定した履歴データからは、図13(c)に示したドットの形成状況を知ることができる。
【0090】
図12のステップS500では、RAM106上の所定の領域に確保された履歴検出用バッファから、このような履歴データを読み出す処理を行う。こうして、履歴データを読み出したら、続いて、履歴検出用データを設定する処理を開始する(ステップS502)。かかる処理について、図14を参照して説明する。
【0091】
図14は、履歴検出用データを設定する様子を概念的に示した説明図である。一例として、処理ユニット中の画素Pa について、ドット形成有無を判断しようとしている場合を考える。図14(a)で、斜線を付して示した破線の大きな正方形は、処理ユニットを示しており、処理ユニット中の黒い正方形は着目画素を示している。前述したようにユニット内多値化処理では、各画素のドット形成有無の判断をユニット単位で行うために、同じ画素位置にドットが形成され易くなる場合がある。この理由について、少し詳しく説明する。
【0092】
例えば、画像中で処理している領域が、画素36個につき1画素の割合でドットが形成されるような、比較的低階調の画像データの領域(明るい画像の領域)であるとする。この様な領域では、縦横6画素の合計36画素から構成される正方形の領域に、ほぼ1つずつの割合でドットが形成されることになる。この様な画像データの領域を、4画素(縦横2画素)を1ユニットとするユニット単位でドット形成有無を判断した場合、3ユニット(6画素分)を周期として同じ処理が繰り返されることになり、3ユニット目の同じ画素位置にドットが形成されてしまうことが起こり得る。こうした一定の周期でドットが形成された場合、これらドットを形成する印字パスが、後述するように特定のパスに偏ってしまい、色ムラが発生して画質を悪化させることが起こり得る。
【0093】
そこで、図14(a)に示した例では、処理ユニットから3つ前のユニットまでの範囲で、各ユニットの画素Pa にドットが形成されているか否かを検出する。図14(a)中で、各ユニットの画素Pa に示された「?」は、これらの画素位置でドットの形成状況を検出することを模式的に示したものである。
【0094】
図14(b)は、これら画素位置でのドット形成状況を検出するために設定された履歴検出用データを、概念的に示した説明図である。履歴検出用データも、前述した履歴データと同様に12bitの長さを有しており、4bitを1グループとして、3つのグループに分けて解釈される。履歴検出用データが3つのグループから構成されているのは、3つのユニットでのドット形成状況を検出することに対応したものである。また、4bitで1グループを構成しているのは、本実施例では、4つの画素を1つのユニットとしてまとめて処理していることに対応したものである。履歴検出用データの各グループとユニットとの対応関係、および各bitとユニット内の画素位置との対応関係は、図13に示した履歴データの場合と同様であるため、ここでは説明は省略する。尚、ここでは、履歴検出用データは、図13に示した履歴データと同じ長さのデータとして説明するが、これに限られるものではない。
【0095】
図14(a)に示したように、ここでは、各ユニットの画素Pa でのドット形成状況を検出しようとしている場合を想定しているから、履歴検出用データは、各ユニットの画素Pa に対応するbitのみ値「1」を設定し、他のbitには値「0」を設定したデータとすればよい。
【0096】
また、着目画素が画素Pb に設定されている場合は、同様にして、処理ユニットから3つ前のユニットまでの範囲で、各ユニットの画素Pb にドットが形成されているか否かを検出すればよい。図14(c)は、着目画素が画素Pb に設定されている場合に、各ユニットでのドット形成状況を検出する画素位置を示す説明図である。図中に「?」を表示した画素が、ドット形成状況を検出する必要のある画素となる。図14(d)は、この様な画素でのドット形成状況を検出するために設定される履歴検出用データを概念的に示した説明図である。図示されているように、このような場合の履歴検出用データは、各ユニットの画素Pb に対応するbitの値を「1」として、他のbitは値「0」を設定したデータとすればよい。
【0097】
図12のステップS502では、以上に説明したようにして、着目画素の位置に応じて履歴検出用データを設定する処理を行う。
【0098】
こうして履歴検出用データを設定したら、ステップS500で読み込んだ履歴データに、設定した履歴検出用データを作用させることによって、検出対象としているドットの形成状況(以下、履歴検出用データを設定して検出しようとしているドットの形成状況を「対象履歴」と呼ぶことがあるものとする)を検出する(ステップS504)。
【0099】
図15(a)は、履歴データに履歴検出用データを作用させて、対象履歴を検出する様子を概念的に示した説明図である。図15(a)の上段には、履歴データを示し、履歴データの下段には履歴検出用データを示している。対象履歴の検出に際しては、先ず、履歴データと履歴検出用データとの間で、対応するbit同士の論理積を算出する。本明細書中で「履歴データに履歴検出用データを作用させる」とは、このように、履歴データと履歴検出用データとの間で、対応するbit同士の論理積を採ることにより中間データを算出することを言う。次いで、こうして得られた中間データの各bitの論理和、あるいは算術和を取ることによって対象履歴を検出することができる。図15(a)では、履歴データに履歴検出用データを作用して算出した中間データを、履歴検出用データの下段に示している。前述したように、履歴検出用データには、各ユニット中で検出しようとする画素位置にのみ値「1」が設定され、検出不要の画素位置には値「0」が設定されているから、履歴データと履歴検出用データとでbit同士の論理積を算出すると、検出しようとする画素位置にドットが形成されている場合にのみ、その画素位置に対応するbitの値が「1」に設定される。
【0100】
上述した処理を、図15(a)中に示した「1つ前のユニット」に着目して、具体的に説明する。履歴データに示されているように、処理ユニットの「1つ前のユニット」には画素Pa および画素Pd にドットが形成されている。ここで、ドットの形成状況を検出しようとしている画素位置は、履歴検出用データに示されているように画素Pa のみであるから、中間データは、図15(a)に示すように、画素Pa に対応するbitのみが値「1」となり、他のbitは値「0」となる。このように、中間データのいずれかのbitが値「1」となっていることは、そのユニットには、検出しようとしている画素位置にドットが形成されていることを意味している。次いで、各ユニットの論理和を取って、その値が「1」であれば、検出しようとする画素位置のいずれかにドットが形成されていることになる。また、各ユニットの算術和を取れば、検出しようとする画素位置に何個のドットが形成されているかを検出することが可能となる。
【0101】
図12のステップS504では、以上のようにして、中間データの各bitの論理和(あるいは算術和)を採って検出結果を算出する処理を行う。こうして得られた検出結果に基づいて、対象履歴が検出されたか否かを判断する(ステップS506)。検出結果の値が「0」である場合は、対象履歴は検出されていないものと判断する。すなわち、検出結果(すなわち中間データの各bitの論理和)の値が「0」となったことは、検出対象とするいずれのユニットにおいても、検出しようとしている画素位置にはドットが形成されていないことを意味している。そこで、検出結果の値が「0」であれば、対象履歴は検出されていないものと判断することができる。逆に、検出結果の値が「1」であれば、検出対象としているユニット中のいずれかのユニットにおいて、検出しようとしている画素位置にドットが形成されていることを意味しており、対象履歴が検出されたものと判断することができる。また、中間データの各bitの算術和を取った場合は、得られた値が所定値以上であれば対象履歴が検出されたものと判断し、算術和の値が所定値未満であれば対象履歴は検出されていないものと判断すればよい。
【0102】
図15(a)に示した中間データには、「1つ前のユニット」および「3つ前のユニット」の中のbitが値「1」に設定されているので、このような中間データの各bitの論理和を採って検出結果を算出すると値「1」が得られる。従って、この場合には対象履歴が検出されることになる。
【0103】
参考として、図15(a)の上段に示す履歴データが表しているドットの形成状況を、図15(b)に示した。図15(a)に示したように、中間データから算出された検出結果は値「1」となり、画素Pa にドットが形成されていることを示す結果が得られる。図15(b)に示されているように、処理ユニットの「1つ前のユニット」および「3つ前のユニット」の画素Pa の位置には、確かにドットが形成されている。このことから、履歴データに履歴検出用データを作用させる方法を用いることで、ドットの形成状況を正確に検出可能であることが確認できる。
【0104】
図12の履歴検出・閾値設定処理では、こうして検出した対象履歴に基づいて、閾値thの値を適切な値に設定する処理を行う。すなわち、ステップS506において対象履歴が検出されなかった場合には、通常値Vn を閾値thとして設定し(ステップS508)、逆に、対象履歴が検出された場合には、通常値Vn よりも大きな値に設定された割増値Vp を、閾値thとして設定する(ステップS510)。ここで設定した閾値thは、ユニット内多値化処理中で着目画素にドットを形成するか否かを判断するために参照される。こうして閾値thを設定したら、図12の履歴検出・閾値設定処理を終了して、図11に示した第1実施例のユニット内多値化処理に復帰する。
【0105】
履歴検出・閾値設定処理から復帰すると、ステップS402において算出しておいた補正データCx と、閾値thとの大小関係を判断する(ステップS406)。この閾値thは、履歴検出・閾値設定処理中で対象履歴を検出することにより、適切な値に設定されている。そして、補正データCx の方が大きい場合には(ステップS406:yes)、着目画素にはドットを形成すると判断し(ステップS408)、そうでない場合には(ステップS406:no)、着目画素にはドットを形成しないと判断する(ステップS410)。図12を用いて説明したように、対象履歴が検出されると閾値thの値は、通常用いられる値(通常値Vn )よりも大きな所定の割増値(Vp )に変更されることから、結局、対象履歴が検出された場合には着目画素にはドットが形成され難くなることとなる。こうして判断した結果は、各画素についての判断結果を示す変数に蓄えられる。
【0106】
以上のようにして着目画素についてのドット形成有無を判断したら、判断に伴って生じる階調誤差を算出する(ステップS412)。階調誤差の算出方法は、図9に示したユニット内多値化処理と同様であり、ここでは説明を省略する。ついで、処理ユニット内の全画素の処理を終了したか否かを判断する(ステップS414)。未処理の画素が残っている場合は(ステップS414:no)、ユニット内にあるそれらの周辺画素に誤差を拡散させる処理を行った後(ステップS416)、ステップS400に戻って着目画素を移動させて、続く一連の処理を繰り返す。ステップS416において処理ユニット内の画素に誤差を拡散させる処理は、図9、図10を用いて説明した前述のユニット内多値化処理と同様にして行うことができる。
【0107】
一方、ステップS414において、処理ユニット内の全画素の処理を終了したと判断された場合は(ステップS414:no)、処理ユニット内の各画素についての判断結果を、履歴検出用バッファに書き込む処理を行う(ステップS418)。かかる処理について、図16、図17を参照して説明する。
【0108】
図16は、処理ユニットの各画素についての判断結果を、履歴検出用バッファに書き込む処理の流れを示したフローチャートである。履歴検出用バッファに書き込む処理を開始すると、先ず初めに、バッファに記憶されているデータを、上位方向に1ユニット分だけシフトさせる処理を行う(ステップS600)。図17は、かかる処理を模式的に示した説明図である。図中に示された小さな正方形の列は、履歴検出用バッファを模式的に示したものであり、図中の上側に示した履歴検出用バッファはデータをシフトする前の状態を、図中の下側に示し履歴検出用バッファはデータをシフトした後の状態を示している。図16のステップS600においては、図17に示されているように履歴検出用バッファのデータを1ユニット分だけ上位方向にシフトさせる。このとき、履歴検出用バッファの最上位側のユニットのデータは破棄される。また、シフトさせた後の最下位ユニットの各bitには、念のために、いずれのbitにも値「0」を書き込んでおく。尚、図17では、履歴検出用バッファは、ユニット3つ分のデータを記憶可能であるとしているが、もちろんより多数のユニットのデータを記憶可能としてもよい。
【0109】
こうして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)は二進数表示されていることを示すものとする。
【0110】
続くステップS604では、こうして設定したデータを、履歴検出用バッファの最下位ユニットの領域に書き込む処理を行う。図17で、最下位ユニットの各bitに向かう白抜きの矢印は、設定されたデータがこれらbitに書き込まれる様子を模式的に示したものである。
【0111】
以上のようにして、処理ユニット内の各画素の判断結果を履歴検出用バッファに書き込む処理を終了したら、図11に示した第1実施例のユニット内多値化処理を終了して、図5の階調数変換処理に復帰する。
【0112】
上述したように、第1実施例のユニット内多値化処理においては、履歴検出・閾値設定処理中で対象履歴の有無を検出し、対象履歴が検出された場合には閾値thの値を大きくすることによって、着目画素にドットが形成され難くしている。このため、ユニット単位で階調数変換処理を行った場合でも、複数のユニットを周期として同じ画素位置にドットが形成される領域が発生し、この領域が視認されて画質を悪化させることを回避することができる。また、こうして着目画素にドットが形成され難くすれば、その反射的な効果として、ユニット内の他の画素にドットが形成され易くなる。その結果、ユニット内の特定の画素位置に偏ってドットが形成されることを回避することができる。すなわち、ユニット内の各画素位置に形成されるドットの全画素に対する割合が、所定範囲内に抑制することが可能となり、特定の印字パスに偏ってドットが形成されて、画質が悪化してしまうことを回避することが可能となる。これについては、後ほど補足して説明する。
【0113】
また、閾値thの設定値を変更することにより、着目画素でのドット形成の判断を制御したとしても、これによって生じた階調誤差は周辺の未判断画素に拡散されて、これら周辺の画素でドット形成の有無を判断することによって解消される。このため、例えば、対象履歴が検出されたことで、本来はドットが形成されるはずの画素にドットが形成されなくなったとしても、これに起因して画質が悪化することはない。
【0114】
以上の説明では、対象履歴が検出された場合には、ドット形成有無の判断に使用する閾値thの設定値を大きな値に変更して、着目画素にはドットが形成され難くするものとした。もちろん、対象履歴が検出された場合には、着目画素にはドットを形成しないと判断することも可能である。このようにすれば、複数のユニットを周期として同じ画素位置にドットが形成されることを、簡便に回避することができる。
【0115】
また、以上の説明では、履歴データに履歴検出用データを作用させて中間データを生成し、中間データの各bitの論理和あるいは算術和を取って検出結果を算出した。これに対して、中間データの各bitの論理積を取って、この値を検出結果としても良い。この場合は、ドットの形成状況を検出しようとしている全ての画素位置にドットが形成されている場合にのみ、検出結果の値が「1」となる。従って、例えば、ドットがある程度の密度で形成されている状況で、視認されやすい特定のパターン形成されたドットだけを、確実に検出することが可能となる。
【0116】
次に、ユニット内の特定の画素位置に偏ってドットが形成された場合、例え特定のパターンが視認されなくとも画質が悪化することがある理由について説明する。前述したように、本実施例のカラープリンタ200は、印刷媒体上でインク吐出用ヘッドを主走査させながらドットを形成することによって画像を印刷している。こうしたプリンタでは、主に画質上の要請から、たとえ主走査方向に連続した画素にドットを形成する場合でも、これらドットを1回の主走査で形成するのではなく、互いに間隔を空けて飛び飛びの画素にドットを形成しながら、複数回の主走査に分けて形成することが通常行われている。
【0117】
図18は、主走査方向に連続するドット列(以下では、このようなドット列を「ラスタ」と呼ぶことがあるものとする)を2回の主走査に分けて形成する様子を示した説明図である。図中の上段に示した小さな正方形は画素を表している。また、各画素の内部に表示された数字は、それぞれの画素を識別するために付された通し番号である。1本のラスタを2回の主走査に分けて形成する場合は、ある主走査では奇数番目の画素にドットを形成し、次の主走査では偶数番目の画素にドットを形成する。ここでは、奇数番目の画素にドットを形成しながら行う主走査を「パスA」と呼び、偶数番目の画素にドットを形成しながら行う主走査を「パスB」と呼ぶことにする。図18に示した例では、パスAで形成されるドットは丸印で表示し、パスBで形成されるドットは三角印で表示している。こうしてパスAとパスBとを繰り返すことで1本のラスタが形成される。このように、1本のラスタを複数回のパスに分けて形成する場合、ユニット内の特定の画素位置に偏ってドットが形成されると、例え特定のパターンが視認されなくとも画質が悪化することがある。
【0118】
例えば、図6に示したように、ユニットが縦横2個ずつの合計4つの画素から構成されているものとして、Pa の画素位置に偏ってドットが形成されているものとする。図19は、このように画素位置Pa にドットが形成されている様子を概念的に示している。図19では、ドットが一定の周期的なパターンで形成されているものの、こうしたパターンが視認されて画質が悪化するとは限らない。しかし、全てのドットは奇数番目の画素に形成されているので、図18に示したパスAに偏って形成されることになる。このように特定のパスに偏ってドットが形成されると、画質が悪化することがある。何故なら、印刷媒体上に形成されたインクドットは、時間とともに滲みやインクの乾きが進行するので、全てのパスで万遍なく形成された場合と、特定のパスに偏って形成された場合とでは、発色の状態が微妙に異なってしまい、これが色ムラとして視認されてしまうことがあるからである。特に、多色のインクを用いるカラー印刷では、こうした色ムラが生じ易い。例えば、CドットとMドットとを形成する場合を例に取ると、Cドットが形成された上からMドットを形成する場合と、これらドットを同じように形成する場合とでは、インク同士の混ざり具合や、後から形成されたドットの滲み具合が異なってくる。その結果、たとえ同じ密度でドットを形成した場合でも印刷媒体上に再現される色は異なってしまい、こうした発色の違いが色ムラとして視認される場合があるのである。
【0119】
上述した第1実施例においては、着目画素が画素位置Pa にある場合に、同じ画素位置Pa についてのドット形成の有無を検出する。そして、画素位置Pa に所定数以上のドットが形成されている場合、すなわち対象履歴が検出された場合には、着目画素にドットを形成され難くする。こうすれば、そのユニットでは、画素位置Pa 以外の画素にドットが形成され易くなる。その結果、特定の画素位置にドットが偏って形成されることを回避することができ、延いては、ドットが特定のパスで偏って形成されて色ムラなどが生じることを回避することが可能となる。
【0120】
あるいは、着目画素が画素位置Pa にある時に、他の画素位置(例えばPb )についてのドット形成の有無を検出し、画素位置Pb に所定数以上のドットが形成されている場合は、着目画素にドットを形成され易くすることとしてもよい。こうして画素位置Pa にある着目画素にドットを形成してしまえば、そのユニットでは、画素位置Pb の画素にはドットが形成され難くなるので、特定の画素位置にドットが偏って形成されることを回避することが可能となる。
【0121】
D−4.変形例:
上述した第1実施例の履歴検出・閾値設定処理には、種々の変形例が存在している。以下、これらの各種変形例について説明する。
【0122】
(1)第1の変形例:
上述した第1実施例の履歴検出・閾値設定処理では、常に3ユニット分だけ遡ってドットの形成状況を検出するものとして説明したが、遡るユニット数を可変とすることもできる。以下では、こうした第1の変形例について説明する。
【0123】
図20は、第1の変形例の履歴検出・閾値設定処理の流れを示すフローチャートである。かかる処理は前述した第1実施例の処理に対して、処理ユニット内の画像データに応じて、遡るユニット数を変更可能な点が大きく異なっている。以下、相違点を中心として、フローチャートに従って説明する。
【0124】
第1の変形例の履歴検出・閾値設定処理を開始すると、先ず初めに処理ユニットを構成する各画素についての画像データの総和値を算出する(ステップS700)。処理ユニットを構成する各画素の画像データは、図5に示した階調数変換処理中のステップS202において予め読み込まれており、各画素の画像データの総和値は容易に算出することができる。
【0125】
第1の変形例においては、ドットの形成状況を何ユニット前まで遡って調べるかを、処理ユニットの画像データの総和値に基づいて設定する。これは次のような理由による。総和値が小さい場合は、画像データの階調値が小さな領域(すなわち明るい画像の領域)を処理していると考えられる。この様な領域では、ドットはまばらに形成されることになるので、ユニット単位で処理したことによってドットの形成にパターンが生じた場合にも、長い周期のパターンになるものと考えられる。このことから、画像データの階調値が小さな領域では長い周期のパターンも検出可能とすべく、遡るユニット数を大きな値に設定するのである。具体的に遡るユニット数は、総和値の値に応じて、段階的にいくつかの適切な数値が予め設定されている。ステップS702においては、総和値に応じて遡るユニット数を設定した後、前述した履歴検出用バッファから、ユニット数に相当するbit長のデータを読み出す処理を行う。
【0126】
こうして履歴検出用バッファから履歴データを読み出したら、続いて履歴検出用データを設定する(ステップS704)。かかる処理は、図12を用いて前述した第1実施例の履歴検出・閾値設定処理とほぼ同様であるが、処理ユニットによって履歴検出用データのbit長が変わることのみ異なっている。すなわち、第1の変形例においては、処理ユニットを構成する各画素の画像データの総和値を算出し、総和値に応じたユニット数だけ遡ってドットの形成状況を検出することとしているので、これに対応して履歴検出用データも総和値に応じた長さのデータに設定されるのである。
【0127】
次いで、履歴データに履歴検出用データを作用させて、対象履歴(検出しようとしているドットの形成状況)の有無を検出し、対象履歴が検出された場合には閾値thの値を大きな値(Vp )に変更し、対象履歴が検出されなかった場合には閾値thの値を通常値Vn に設定する(ステップS706ないしステップS712)。以上の処理を終了したら、第1の変形例の履歴検出・閾値設定処理を抜けて、図11に示したユニット内多値化処理に復帰する。
【0128】
以上に説明した第1の変形例の履歴検出・閾値設定処理によれば、処理中の画像データの階調値に応じて、適切なユニット数だけ遡ってドットの形成状況を検出することができる。このため、画質の悪化をより確実に防止することが可能となる。尚、上述した第1の変形例においては、処理ユニット内の各画素についての総和値を算出し、総和値が小さければ、明るい画像領域(画像データの階調値が小さな領域)を処理中であると判断するものとして説明した。もちろん、処理中の領域が明るい画像領域であることを異なる方法を用いて検出することとしても良い。例えば、周辺の領域の画像データの平均値を利用して検出することも可能である。また、上述した第1の変形例の履歴検出・閾値設定処理では、ドット形成有無を遡って検出するユニット数は、処理ユニット内の各画素の総和値に応じて設定されているものとして説明したが、これに限らず、各画素の階調値に応じて、遡るユニット数あるいはユニット内の画素位置を設定するものとしてもよい。こうすれば、遡るユニット数をよりきめ細かく適切な値とすることが可能となるので好ましい。
【0129】
(2)第2の変形例:
上述した各種実施例においては、処理済みのユニットの中でドットの形成有無を検出しようとする画素位置が、処理中のユニットの着目画素と同じ画素位置である場合を中心として説明した。もちろん、処理済みのユニット中でドットの形成状況を検出する画素位置は、前述した履歴検出用データを適切に設定することにより、必要に応じて自由に設定することができる。以下では、こうした第2の変形例について説明する。
【0130】
図21は、こうした第2の変形例において、履歴検出用データを設定する様子を例示した説明図である。例えば、処理ユニットの画素Pa についてのドット形成有無を判断するに際して、図21(a)に示すように、処理ユニットの「1つ前のユニット」については画素Pa のドット形成状況を検出し、「2つ前のユニット」および「3つ前のユニット」については、いずれも画素Pc のドット形成状況を検出するものとする。図中に示した「?」印は、該当する画素についてのドット形成状況を検出することを模式的に示したものである。ドットの形成状況を検出する画素位置をこの様に設定しておけば、4ユニットを周期として、「左下の画素」、「左下の画素」、「左上の画素」、「左上の画素」のパターンで周期的にドットが形成されることを回避することができる。
【0131】
図21(b)には、図21(a)で「?」印を示した画素位置を検出するために設定される履歴検出用データを示している。前述したように、履歴検出用データは、隣接する4bitをひとまとまりとする3つのグループから構成されており、図21(b)に示すように、それぞれのグループが図21(a)に示した3つのユニットに対応している。また、各グループを構成する4つのbitは、上位側(図上では左側)から順に、画素Pa ,画素Pb ,画素Pc ,画素Pd にそれぞれ対応している。履歴検出用データは、検出しようとする画素位置に対応するbitには値「1」を設定し、その他のbitには値「0」を設定することによって得ることができる。尚、図21(c)は、こうして得られた履歴検出用データを16進数表示したものである。前述したように、履歴検出用データは4bitで1つのユニットを表しているから、4bitをまとめて16進数表示すれば履歴検出用データを簡便に表記することができる。図21(b)に示した履歴検出用データは、16進数表示することにより「0x228」と表すことができる。尚、「0x」は16進数表示していることを意味している。
【0132】
尚、上述した実施例では、ドットの形成状況を検出する画素は、各ユニットに1画素ずつであるものとしたが、もちろんユニット当たり複数の画素位置について、ドットの形成状況を検出することとしても良い。図22は、複数の画素位置でドット形成状況を検出する様子を示す説明図である。ここでは、図22(a)に示すように、処理ユニットの「1つ前のユニット」については3つの画素位置でドット形成状況を検出するものとしている。図22(b)は、この様な画素位置でのドット形成状況を検出するために設定される履歴検出用データを示した説明図である。図示されているように、「1つ前のユニット」については、画素Pa に加えて、画素Pb および画素Pd の2つの画素位置についても、ドットの形成状況を検出するものとしている。このことに対応して、履歴検出用データの下位側の4bitの中で、画素Pa 、画素Pb 、画素Pd にそれぞれ対応する3つのbitには値「1」が設定される。すなわち、16進数表示で「D」が設定される。また、「2つ前のユニット」および「3つ前のユニット」については、図21の場合と同様に、画素Pa のドット形成状況を検出することとしているから、これらユニットについては16進数表示で「8」が設定され、結局、履歴検出用データとしては、図22(c)に示すように「0x88D」のデータが設定されることになる。
【0133】
以上に説明したように、履歴検出用データを適切に設定することで、処理済みのユニットの中でドットの形成状況を検出する画素位置を自由に設定することが可能である。従って、複数のユニットに亘って特定のパターンでドットが形成される易くなっている場合でも、この様なパターンの発生を確実に回避することができる。もちろん、特定の画素位置にドットが偏って形成され難くなる結果として、全ての画素位置にほぼ均等な割合でドットが形成されることになる。また、図22に示したように、処理ユニットの近傍の画素位置についてのドット形成状況を検出しておけば、着目画素の近傍にドットが形成されることを回避することができる。このため、ドットの分散性を向上させて、画質をより改善することが可能となる。
【0134】
(3)第3の変形例:
ドットの形成状況を検出しようとする画素位置を、乱数を用いて設定することも可能である。例えば、先ず初めに、遡ってドット形成状況を検出しようとするユニット数を乱数を用いて設定し、次いで、各ユニットについて検出しようとする画素位置を乱数を用いて設定することとしても良い。こうすれば、ドットの形成状況を検出する画素位置の設定にも規則性が無くなるので、複数ユニットに亘って周期的なパターンが発生することを確実に回避することが可能となる。
【0135】
E.第2実施例:
上述した第1実施例のユニット内多値化処理中で行われる履歴検出・閾値設定処理においては、処理済みのユニットのドット形成状況を表す履歴データが、1つの履歴検出用バッファに記憶されているものとして説明した。ユニットには複数の画素が含まれているから、第1実施例においては、各画素についてのドット形成有無を表すデータが履歴検出用バッファ上で混在して記憶されていることになる。これに対して、ユニットを構成する画素の数だけバッファを設けておき、各画素のドット形成有無を判断したら、ユニット内の画素位置に対応付けて異なるバッファに判断結果を記憶することとしても良い。以下、このように画素位置毎に専用のバッファを用いた第2実施例について説明する。
【0136】
E−1.第2実施例のユニット内多値化処理:
図23は、第2実施例のユニット内多値化処理の流れを示すフローチャートである。かかる処理は、図11を用いて前述した第1実施例のユニット内多値化処理に対して、履歴検出用バッファが画素位置毎に設けられている点が大きく異なっている。また、この様な相違点から派生して、着目画素についてのドット形成有無を判断するたびに、判断結果を対応する履歴検出用バッファに書き込んでいる点でも、第1実施例とは異なっている。以下では、これら、第1実施例との相違点を中心として、第2実施例のユニット内多値化処理について説明する。
【0137】
処理を開始すると、先ず初めに、処理ユニットを構成する複数の画素の中から、ドットの形成有無を判断しようとする着目画素を検出し(ステップS800)、着目画素の画像データと拡散誤差とを加算して補正データCx を算出する(ステップS802)。処理ユニットを構成する各画素についての画像データおよび拡散誤差は、図5に示した階調数変換処理中で既に読み込まれているデータを使用する。
【0138】
こうして着目画素についての補正データCx を算出したら、第2実施例の履歴検出・閾値設定処理を開始する(ステップS804)。前述したように第2実施例においては、ユニット内の画素位置に応じて設けられた専用の履歴検出用バッファを使用する。そこで、かかる処理の内容について説明する前に、第2実施例の履歴検出・閾値設定処理で用いられる履歴検出用バッファについて説明しておく。
【0139】
図24は、ユニット内の画素位置に対応付けて設けられた履歴検出用バッファを模式的に示した説明図である。図中に示した「履歴検出用バッファA」は、ユニット内の画素Pa に対応付けられているバッファである。このバッファには、画素Pa ついてのドット形成判断結果が記憶される。また、「履歴検出用バッファB」は、ユニット内の画素Pb に対応付けられて、画素Pb についての判断結果が記憶されるバッファである。同様に、「履歴検出用バッファC」にはユニット内の画素Pc についての判断結果が記録され、「履歴検出用バッファD」には画素Pd についての判断結果が記憶される。このように第2実施例においては、ユニット内の画素位置に対応付けられた専用のバッファが設けられており、それぞれのバッファに履歴データが記憶されている。
【0140】
次に、「履歴検出用バッファA」を例にとって、記憶されている履歴データのデータ構造について説明する。履歴検出用バッファAの各bitは、下位側(図24では右側)から順番に、処理ユニットから1つずつ前のユニットに対応付けられている。すなわち、最下位bit(図上では右端のbit)は処理ユニットの「1つ前のユニット」に対応付けられており、下位から2つめのbitは「2つ前のユニット」に、下位から3つめのbitは「3つ前のユニット」に、というように、各bitがそれぞれのユニットに順番に対応付けられている。これらのbitに値「1」が設定されていることは、対応するユニットの画素Pa にドットが形成されることを表しており、逆に値「0」が設定されていることは、対応するユニットの画素Pa にはドットが形成されないことを表している。
【0141】
以上の説明から明らかなように、履歴検出用バッファAに記憶されている図24に例示の履歴データは、処理ユニットから1つ前、3つ前、5つ前、8つ前にの各ユニットについては、画素Pa にドットが形成されており、他のユニットについては画素Pa にドットが形成されていないことを表している。尚、図24では、それぞれの履歴検出用バッファは、8bit分のデータ長を有するものとしたが、より多いbit数のデータとしても構わない。
【0142】
こうした履歴検出用データを用いて行われる第2実施例の履歴検出・閾値設定処理について、以下に説明する。第2実施例の履歴検出・閾値設定処理は、前述した第1実施例の処理に対して、画素位置毎に履歴検出用バッファが設けられている点が異なっており、他の処理はほぼ同様である。そこで以下では、第1実施例の履歴検出・閾値設定処理について説明した図12のフローチャートを流用しながら説明する。尚、かかる処理は、図23のユニット内多値化処理において着目画素が設定された後(ステップS800)、かかる着目画素に対してステップS804で実行される処理である。
【0143】
第2実施例の履歴検出・閾値設定処理を開始すると、先ず初めに、履歴検出用バッファから履歴データを読み出す処理を行う(図12のステップS500相当)。図24を用いて説明したように、第2実施例では画素位置に応じて履歴検出用バッファが設けられており、かかる処理では、着目画素と同じ画素位置に対応するバッファから、必要なデータ量の履歴データを読み出す。例えば、着目画素が画素Pa にあるとして、5ユニット分だけ遡ってドットの形成状況を検出するものとすれば、「履歴検出用バッファA」の下位側から5bit分のデータを読み出すことになる。この結果、図24に示した例では、履歴データとして「10101 (2)」が読み出される。ここで、(2) は2進数表示されていることを示している。尚、着目画素が画素Pb ,画素Pc ,画素Pd に設定されている場合は、履歴検出用バッファB,履歴検出用バッファC,履歴検出用バッファDにそれぞれ記録されている履歴データを読み出せばよい。
【0144】
こうして履歴データを読み出したら、続いて、履歴検出用データを設定する処理を行う(図12のステップS502相当)。かかる処理について、図25を参照しながら説明する。例えば、処理ユニットから5つ前のユニットまで遡って、ドットの形成状況を検出するものとする。図25(a)は、ドットの形成状況を検出しようとしている画素位置の分布を概念的に示した説明図である。図中の小さな正方形はそれぞれ画素を模式的に示したものである。また、太い破線で示した大きな正方形は処理中のユニットを模式的に示したものであり、細い破線で示した大きな正方形は、既に処理済みのユニットを模式的に示したものである。処理ユニット中で斜線を付した画素は着目画素を示しており、処理済みのユニット中で図中で「?」を付した画素は、ドットの形成状況を検出しようとしている画素を示している。
【0145】
図25(b)は、このような画素についてのドット形成状況を検出するために用いられる履歴検出用データを示したものである。ここでは、処理ユニットから5つ前のユニットまで遡って検出するとしているから、履歴検出用データは、最下位bitから5bitまでのbitに値「1」が設定され、6bitより上位側のbitには値「0」が設定されている。このように、検出しようとするユニットに対応するbitに値「1」を設定し、他のbitには値「0」を設定することによって、履歴検出用データを設定することができる。図25(c)はこうして設定された履歴検出用データを16進数表示したものである。
【0146】
こうして履歴検出用データを設定したら、設定した履歴検出用データを先に読み出した履歴データに作用させることによって、対象履歴(検出しようとしている画素位置でのドットの形成状況)を検出する(図12のステップS504相当)。対象履歴の検出は、第1実施例と同様にして行う。すなわち、履歴データと履歴検出用データとの間で、対応するbit同士の論理積を採ることにより中間データを算出し、得られた中間データの各bitの論理和(あるいは算術和)を採って検出結果を算出する。得られた検出結果が値「1」であれば対象履歴が検出されたものと判断して、閾値thに割増値Vp を設定する。検出結果が値「0」であれば、対象履歴は検出されなかったものと判断して、閾値thに通常値Vn を設定する。以上のようにして閾値thを適切な値に設定したら、第2実施例の履歴検出・閾値設定処理を終了して、図23に示すユニット内多値化処理に復帰する。尚、ここでは、中間データの各bitの論理和(あるいは算術和)を採って検出結果を算出するものとしたが、中間データの各bitの論理積を採って検出結果を算出するものとしてもよい。
【0147】
以上のようにして閾値thを設定して、図23に示す第2実施例のユニット内多値化処理に復帰したら、続いて、着目画素の補正データCx と閾値thとの大小関係を判断する(図23のステップS806)。補正データCx の方が大きい場合には着目画素にドットを形成すると判断し(ステップS808)、そうでなければドットを形成しないと判断する(ステップS810)。次いで、ドットの形成有無を判断したことで生じる階調誤差を算出した後(ステップS812)、着目画素についての判断結果を対応する履歴検出用バッファに書き込む処理を開始する(ステップS814)。かかる処理について、図26を用いて説明する。
【0148】
図26は、第2実施例のユニット内多値化処理において、着目画素についての判断結果を履歴検出用バッファに書き込む様子を概念的に示した説明図である。今、着目画素が画素Pa に設定されているものとすると、ドット形成有無の判断結果は、履歴検出用バッファAに書き込まれることになる。判断結果を書き込むにあたっては、先ず、履歴検出用バッファAに記憶されている履歴データを、1bit分だけ上位側(図上では左側)にシフトさせる。図26の上段はシフトする前の履歴検出用バッファAに記憶されている履歴データを示しており、下段はシフトした後のバッファに記憶されている履歴データを示している。履歴データをシフトさせることに伴って、最上位bitに記憶されたデータは破棄される。次いで、着目画素についての判断結果に対応する値を、最下位のbitに書き込む処理を行う。着目画素にドットを形成すると判断された場合は、最下位のbitには値「1」が書き込まれ、着目画素にドットを形成しないと判断された場合は、値「0」が書き込まれる。以上の説明では、着目画素が画素Pa に設定されているものとして説明したが、着目画素が他の画素位置に設定されている場合も同様にして、着目画素の画素位置に対応する履歴検出用バッファに判断結果に応じた値を書き込んでやればよい。図23のステップS814では、こうして着目画素についての判断結果を、着目画素に対応する履歴検出用バッファに書き込む処理を行う。
【0149】
こうして着目画素の判断結果を書き込む処理を終了したら(図23のステップS814)、処理ユニット内の全ての画素についての処理を終了したか否かを判断し(ステップS816)、未処理の画素が残っていればステップS800に戻って上述した一連の処理を繰り返す。全ての画素についての処理を終了したら、ユニット内多値化処理を抜けて、図5に示した階調数変換処理に復帰する。
【0150】
以上に説明した第2実施例のユニット内多値化処理においては、履歴検出用バッファのそれぞれのbitが、処理済みのユニット1つ1つに対応付けられている。従って、ドットの形成状況を遡って調べるユニット数が多くなった場合でも、ユニット数と同じbit長のデータを読み込むだけでよい。例えば、処理中のユニットから8ユニット分だけ遡ってドットの形成状況を検出する場合、1ユニットが4つの画素で構成されているとして、前述した第1実施例においては32bitの履歴データを読み込む必要があるが、第2実施例では8bitのデータを読み込むだけで足りる。このため、第2実施例においては、遡るユニット数が多い場合であっても、迅速な処理を行うことができる。
【0151】
E−2.第2実施例の変形例:
上述した第2実施例では、ドット形成状況を検出する画素位置は、着目画素と同じ画素であるものとして説明した。しかし、第1実施例において、ドットの形成状況を検出しようとする画素位置を自由に設定可能であったのと同様に、第2実施例においても、ドットの形成状況を検出する画素を、ユニット毎に任意の画素位置に設定することが可能である。以下では、こうした第2の実施例の変形例について説明する。
【0152】
図27は、第2実施例において、任意の画素位置でのドットの形成状況を検出する方法を示した説明図である。図27(a)は、検出しようとする画素位置の分布を例示した説明図である。図中に示した小さな正方形は画素を模式的に示したものであり、破線で示した大きな正方形はユニットを示している。ドットの形成状況を検出しようとする画素位置は、画素中に「?」印を付して示している。検出しようとする画素位置および画素数は任意に設定することができるが、以下では、図27(a)に示した画素位置でのドット形成状況を検出するものとして説明する。
【0153】
図27(b)は、第2実施例において、任意の画素位置でのドット形成状況を検出する方法を示す説明図である。第2実施例では、前述したように、ドット形成有無の判断結果を各ユニットの画素位置毎に記憶していることから、任意の画素位置でのドット形成状況を検出しようとする場合でも、各ユニットの画素位置に着目した方法で検出する。すなわち、図27(a)に示した例では、画素Pa の画素位置について、ドット形成状況を検出しようとしているのは、処理ユニットの「1つ前のユニット」、「2つ前のユニット」、「3つ前のユニット」の3つのユニットである。また、画素Pb の画素位置については、処理ユニットの「1つ前のユニット」と、「2つ前のユニット」の2つのユニットである。更に、画素Pc あるいは画素Pd の画素位置については、いずれも処理ユニットの「1つ前のユニット」でのみドットの形成状況を検出している。このように、画素位置毎に、ドット形成状況を検出しようとするユニット位置を検出した後、検出したユニットにドットが形成されているか否かを画素位置毎に判断すれば、任意の画素位置でのドット形成状況を検出することが可能となる。以下、図27(a)に示した場合に即して具体的に説明する。
【0154】
初めに画素Pa のドット形成状況を検出する場合について説明する。図27(b)には、こうして画素Pa の画素位置でのドット形成状況を検出する様子が模式的に示されている。先ず初めに、画素Pa でのドット形成判断結果を記憶したバッファ(履歴検出用バッファA)から3ユニット分の履歴データ(最下位から3bit分のデータ)を読み出す。もちろん、より多数のユニットを遡って検出する場合は、それに応じて読み出すデータ長を長くすればよい。
【0155】
次いで、この履歴データに履歴検出用データを作用させる。履歴検出用データは、画素Pa でのドット形成状況を検出しようとしているユニットに応じて設定される。図27(a)に示すように、画素Pa については処理ユニットの「1つ前のユニット」、「2つ前のユニット」、「3つ前のユニット」の3つのユニットでドット形成状況を検出しようとしているから、これに対応して履歴検出用データは、最下位bitから3つのbitに値「1」を設定する。こうして設定した履歴検出用データ(2進数表示で「111 (2)」)を、読み出した履歴データに作用させて中間データを算出する。「履歴検出用データを履歴データに作用させる」とは、前述したように、2つのデータの対応するbit間で、論理積を採ることである。こうして中間データが得られたら、中間データの各bit間の論理和(あるいは算術和)を算出することにより、画素Pa についての検出結果を得ることができる。
【0156】
こうして画素Pa について得られた検出結果は、次のことを意味している。すなわち、検出結果が値「0」であることは、検出しようとしているユニットのいずれにも画素Pa にはドットが形成されていないことを意味している。逆に、検出結果としての論理和が「1」であることは、検出しようとしているユニットのいずれかには、画素Pa にドットが形成されていることを意味している。また、算術和を取ることによって検出結果を得た場合は、得られた数値は形成されているドットの個数を表している。もちろん、中間データの各bitの論理和(あるいは算術和)を採る代わりに、論理積を採ることとしても良い。中間データの各bitの論理積を採った場合、検出結果の値が「1」であることは、検出しようとしている全てのユニットの画素Pa に、ドットが形成されていることを意味することになる。
【0157】
同様の方法により、画素Pb についての検出結果を得ることができる。図27(c)には、画素Pb についてのドット形成状況を検出している様子を模式的に示している。図27(b)を参照して簡単に説明すると、先ず、画素Pb についてのドット形成有無を記録したバッファ(履歴検出用バッファB)から3ユニット分の履歴データを読み出す。次いで、このデータに履歴検出用データを作用させて中間データを算出する。画素Pb については、処理ユニットの「1つ前のユニット」、および「2つ前のユニット」でのドット形成状況を検出しようとしているから、これに対応して履歴検出用データは、最下位bitから2つのbitが値「1」に設定されたデータ(2進数表示で「011 (2)」)を使用する。こうして、得られた中間データの各bit間の論理和(あるいは算術和)を求めることにより、画素Pb についての検出結果を得ることができる。
【0158】
画素Pc 、画素Pd についても同様にして、それぞれの画素についての検出結果を算出することができる。これら画素については、ドット形成状況を検出しようとしているユニットは、処理ユニットの「1つ前のユニット」のみであるから、これら画素については、履歴検出用データとして最下位bitにのみ値「1」が設定されたデータ(2進数表示で「001 (2)」)を使用すればよい。画素Pc についての検出結果を算出する様子を図27(d)に、また、画素Pd についての検出結果を算出する様子を図27(e)にそれぞれ示した。
【0159】
こうして各画素についての検出結果が得られたら、これら検出結果の論理和を算出することによって、最終的な検出結果を得ることができる。すなわち、図27(a)に「?」印で示した画素のいずれかにドットが形成されていれば、検出結果として値「1」が得られ、逆にいずれの画素にもドットが形成されていない場合は検出結果として値「0」が得られることになる。もちろん、各画素についての検出結果の論理積を採ることによって、最終的な検出結果を算出することとしても良い。こうした場合は、図27(a)に「?」印で示した全ての画素にドットが形成されている場合に、最終的な検出結果の値が「1」得られることになる。
【0160】
以上に説明した方法を用いれば、ドットの形成状況を検出しようとする画素位置を、既に処理済みのユニットの中から自由に設定することが可能である。従って、ユニット単位でドットの形成有無を判断する場合であっても、所定の画素位置でのドット形成状況を検出し、検出結果を踏まえてドットの形成有無を判断することにより、複数のユニットに亘って所定のパターンでドットが形成されることを効果的に回避することが可能となる。
【0161】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。
【0162】
例えば、上述した各種実施例では、ユニットを構成する各画素についてのドット形成有無を判断する手法として、いわゆる誤差拡散法を用いているが、これに限らず、例えばディザ法などの周知な他の手法を適用することもできる。
【0163】
また、上述した各種実施例においては、処理済みのユニットの中で、所定の画素位置にドットが形成されていることが検出された場合には、着目画素についてドットが形成され難くするものとして説明した。これに対して、所定の画素位置にドットが形成されていない場合には、着目画素にドットが形成され易くする様にしても良い。こうすれば、例えば、ドットが高い密度で形成されるような領域では、ドットが形成されない画素が複数のユニットに亘って周期的に発生する場合に、画質の悪化を効果的に回避することができる。
【0164】
上述した機能を実現するソフトウェアプログラム(アプリケーションプログラム)を、通信回線を介してコンピュータシステムのメインメモリまたは外部記憶装置に供給し実行するものであってもよい。もちろん、CD−ROMやフレキシブルディスクに記憶されたソフトウェアプログラムを読み込んで実行するものであっても構わない。
【0165】
上述した各種実施例では、階調数変換処理を含む画像データ変換処理はコンピュータ内で実行されるものとして説明したが、画像データ変換処理の一部あるいは全部をプリンタ側、あるいは専用の画像処理装置を用いて実行するものであっても構わない。
【0166】
更には、画像表示装置は、必ずしも印刷媒体上にインクドットを形成して画像を印刷する印刷装置に限定されるものではなく、例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置であっても構わない。
【図面の簡単な説明】
【図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】 主走査方向に連続するドット列を2回の主走査に分けて形成する様子を示した説明図である。
【図19】 ドットが一定の周期的なパターンで形成されているものの、こうしたパターンが視認されて画質が悪化するとは限らない場合を例示した説明図である。
【図20】 第1実施例の第1の変形例においてドットの形成状況を検出し、閾値の値を設定する処理の流れを示すフローチャートである。
【図21】 第1実施例の第2の変形例において履歴検出用データを設定している様子を概念的に示した説明図である。
【図22】 第1実施例の第2の変形例において、異なる履歴検出用データを設定している様子を概念的に示した説明図である。
【図23】 第2実施例において、ユニット内の各画素についてドット形成の有無を判断することによりユニット内を多値化する処理の流れを示すフローチャートである。
【図24】 第2実施例において、ユニット内の画素位置に対応付けて設けられた履歴検出用バッファを概念的に示す説明図である。
【図25】 第2実施例において、ドット形成状況を検出しようとする画素位置に応じて履歴検出用データを設定する方法を概念的に示した説明図である。
【図26】 第2実施例において、ドット形成有無の判断結果を履歴検出用バッファに書き込む方法を概念的に示した説明図である。
【図27】 第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. Thus, 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. Also, if dots are not formed uniformly on each pixel in the unit and formed at a specific pixel position, a print path for forming dots, for example, can be specified even if a periodic pattern does not occur. The image quality may be deteriorated due to unevenness in the path and uneven color. Furthermore, when the presence / absence of dot formation is determined in units, such a problem that the image quality may be deteriorated 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 by making it possible to make a quick determination by determining the presence or absence of dot formation on a unit basis, avoiding deterioration in image quality and high image quality. The purpose is to provide a technology capable of displaying a simple 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
Pixel-of-interest setting means for sequentially setting a pixel of interest for which the presence / absence of dot formation is determined in the unit;
Dot formation presence / absence detection means for detecting the presence / absence of dot formation for a pixel at a predetermined position with respect to the pixel position of the pixel of interest from among the pixels in which the presence / absence of dot formation is stored in the converted unit;
Dot formation determination means for determining the presence or absence of dot formation for the pixel of interest based on the gradation value of the pixel of interest;
And having
The dot formation determination means determines whether or not there is dot formation for the pixel of interest while taking into account the detection result of dot formation in addition to the gradation value. It is a means for judging whether or not dots are formed in a state in which the ratio of dots formed to the entire dot is suppressed within a predetermined range.
[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) a step of collecting 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 step (B) of storing the presence / absence of dot formation in a state where the pixel positions in the unit can be identified;
With
The step (A) further includes
A sub-step (A-1) for sequentially setting a pixel of interest for which it is determined whether or not to form dots in the unit;
A sub-step (A-2) for detecting presence / absence of dot formation for a pixel located at a predetermined position with respect to the pixel position of the pixel of interest from the pixels in which the presence / absence of dot formation is stored in the converted unit When,
A sub-step (A-3) for determining the presence or absence of dot formation for the pixel of interest based on the gradation value of the pixel of interest;
And having
The sub-process (A-3) determines whether or not dots are formed for the target pixel while considering the detection result of the dot formation in addition to the gradation value, thereby determining the predetermined position in the unit. This is a step of determining whether or not dots are formed in a state in which the ratio of dots formed in a certain pixel to all dots is suppressed within a predetermined range.
[0010]
In such an image processing apparatus and image processing method, when a plurality of pixels are grouped as a unit and image data is converted into dot data in units of units, the dot formation status in the already converted units is detected, Whether or not dots are formed 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. Next, a pixel of interest for which the presence / absence of dot formation is to be determined is set in the unit, and a dot for a pixel at a predetermined position with respect to the pixel position of the pixel of interest is selected from the pixels in which the presence or absence of dot formation is stored The presence or absence of formation is detected. The pixel for detecting the presence or absence of dot formation may be at a predetermined position with respect to the pixel of interest. Therefore, it is good also as detecting about a some pixel, and it is also possible to make the pixel position to detect into a different pixel position according to the pixel position of the focused pixel.
[0011]
In this way, when determining the presence or absence of dot formation for the pixel of interest, a pixel that is in a predetermined position with respect to the pixel of interest in the unit is detected by detecting the dot formation status in the already converted unit and taking the detection result into consideration. Whether or not dots are formed is determined in a state in which the ratio of the dots formed in (1) to all the dots is suppressed within a predetermined range.
[0012]
In this way, even when the image data is converted into dot data in units, the dots are formed in a constant pattern over a plurality of units, and as a result, the periodic pattern is visually recognized and the image quality deteriorates. It becomes possible to prevent reliably. Alternatively, it is possible to reliably avoid a deterioration in image quality due to a bias in a printing pass for forming a dot as a result of a bias in pixel positions where dots are formed in the unit.
[0013]
In such an image processing apparatus, as to the presence or absence of dot formation for a pixel at the same pixel position as the pixel of interest in the unit, if a predetermined number of dots or more are formed on these pixels, It is also possible to suppress dot formation.
[0014]
In this way, it is possible to avoid the formation of dots in the same pixel position as the target pixel in the unit. As a result, it is possible to avoid deterioration in image quality due to dots being formed in a constant pattern over a plurality of units, or due to dots being formed biased at specific pixel positions in the unit. It becomes possible.
[0015]
Alternatively, by detecting the presence or absence of dot formation for a pixel at a predetermined pixel position different from the target pixel in the unit, if a predetermined number of dots or more are formed on these pixels, The dot formation may be promoted.
[0016]
When a predetermined number or more dots are formed at a predetermined pixel position different from the target pixel, if dots are formed at the target pixel, it is difficult to form dots at the predetermined pixel position as an effect of reflection. Therefore, even in this case, the image quality deteriorates due to the dots being formed in a constant pattern over a plurality of units, or due to the dots being formed biased at specific pixel positions in the unit. Can be avoided.
[0017]
In such an image processing apparatus, the presence or 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 set as the predetermined pixel. It is good also as changing according to the detection result of the dot formation presence or absence about a position.
[0018]
If the threshold value of the error diffusion method is changed, the ease of dot formation can be controlled accordingly, so the dot formation ratio can be easily set based on the detection result of dot formation at the predetermined pixel position. It is possible to control. In addition, if the presence / absence of dot formation is determined using the error diffusion method, even if the dot formation presence / absence of the pixel of interest is controlled in accordance with the detection result at a predetermined pixel position, the error due to that can be quickly corrected. Since it can eliminate, it is preferable.
[0019]
In such an image processing apparatus, four adjacent pixels are grouped as a unit, and the ratio of dots formed at the same pixel position as the target pixel in the unit is within a range of 10% to 40%. In the state, the presence or absence of dot formation for the target pixel may be determined.
[0020]
When the unit is composed of four pixels, if dots are formed at an equal rate regardless of the pixel position, the rate of dots formed at each pixel position is around 25%. From experience, it is possible to avoid deterioration in image quality if this ratio is suppressed to a range of 10% to 40% (more preferably, a range of 15% to 35%).
[0021]
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 dots being formed in a fixed pattern or being biased to a specific pixel position in the unit. Can do. 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.
[0022]
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 storing the program. That is, the program of the present invention corresponding to the image processing method described above is
A program for realizing, using a computer, an image processing method for converting image data represented by gradation values for each pixel constituting an image into dot data representing the presence or absence of dot formation for each pixel. There,
A function (A) for collecting a predetermined plurality of adjacent pixels as a unit and converting the image data into the dot data in units.
A function (B) for storing the presence / absence of dot formation in a state where the pixel positions in the unit can be identified for at least some of the pixels constituting the converted unit;
As well as
The function (A) further includes
A function (A-1) for sequentially setting a pixel of interest for which the presence or absence of dot formation is to be determined in the unit;
A function (A-2) for detecting the presence / absence of dot formation for a pixel at a predetermined position with respect to the pixel position of the pixel of interest from among the pixels in which the presence / absence of dot formation is stored in the converted unit; ,
A function (A-3) for determining the presence or absence of dot formation for the pixel of interest based on the gradation value of the pixel of interest;
Have
The function (A-3) determines the presence or absence of dot formation for the pixel of interest while taking into account the detection result of the presence or absence of the dot formation in addition to the gradation value. This is a function for determining whether or not dots are formed in a state where the ratio of dots formed in a certain pixel to all dots is suppressed within a predetermined range.
[0023]
Further, the recording medium of the present invention corresponding to the image processing method described above is
A computer-readable program for realizing 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 recording medium recorded on
A function (A) for collecting a predetermined plurality of adjacent pixels as a unit and converting the image data into the dot data in units.
A function (B) for storing the presence / absence of dot formation in a state where the pixel positions in the unit can be identified for at least some of the pixels constituting the converted unit;
Is realized using a computer,
The function (A) further includes
A function (A-1) for sequentially setting a pixel of interest for which the presence or absence of dot formation is to be determined in the unit;
A function (A-2) for detecting the presence / absence of dot formation for a pixel at a predetermined position with respect to the pixel position of the pixel of interest from among the pixels in which the presence / absence of dot formation is stored in the converted unit; ,
A function (A-3) for determining the presence or absence of dot formation for the pixel of interest based on the gradation value of the pixel of interest;
Have
The function (A-3) determines the presence or absence of dot formation for the pixel of interest while taking into account the detection result of the presence or absence of the dot formation in addition to the gradation value. This is a function for determining whether or not dots are formed in a state where the ratio of dots formed in a certain pixel to all dots is suppressed within a predetermined range.
[0024]
If such a program or a program stored in a recording medium is read by a computer and the above-described various functions are executed by the computer, image data can be quickly converted into dot data in units without causing image quality deterioration. It becomes possible to convert.
[0025]
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:
[0026]
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.
[0027]
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.
[0028]
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.
[0029]
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.
[0030]
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. Hereinafter, such image processing will be described in detail based on examples.
[0031]
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.
[0032]
The computer 100 includes a disk controller DDC 109 for reading data on the flexible disk 124 and the compact disk 126, a peripheral device interface P / IF 108 for exchanging data with peripheral devices, and a video interface V / V for driving the CRT 114. An IF 112 or the like is connected. The P / IF 108 is connected to a color printer 200 described later, a hard disk 118, and the like. Further, if the digital camera 120, the color scanner 122, etc. are connected to the P / IF 108, it is possible to print an image captured by the digital camera 120, 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.
[0033]
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.
[0034]
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.
[0035]
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.
[0036]
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.
[0037]
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.
[0038]
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.
[0039]
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.
[0040]
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.
[0041]
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.
[0042]
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.
[0043]
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.
[0044]
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.
[0045]
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.
[0046]
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.
[0047]
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.
[0048]
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.
[0049]
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.
[0050]
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.
[0051]
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.
[0052]
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.
[0053]
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.
[0054]
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.
[0055]
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.
[0056]
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.
[0057]
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.
[0058]
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.
[0059]
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.
[0060]
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.
[0061]
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.
[0062]
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.
[0063]
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.
[0064]
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.
[0065]
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.
[0066]
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.
[0067]
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.
[0068]
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.
[0069]
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.
[0070]
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. .
[0071]
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.
[0072]
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).
[0073]
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).
[0074]
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.
[0075]
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.
[0076]
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.
[0077]
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.
[0078]
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.
[0079]
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.
[0080]
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. Furthermore, even if the periodic pattern is not visually recognized, if dots are formed with a bias toward a specific pixel position in the unit, the print path for forming the dot is biased to a specific path. The image quality may deteriorate due to unevenness.
[0081]
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.
[0082]
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.
[0083]
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.
[0084]
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.
[0085]
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. .
[0086]
FIG. 13A is an explanatory diagram conceptually showing the structure of history data. The history data shown in FIG. 13A has a length of 12 bits, and each bit corresponds to a pixel position. As described above, since one unit is composed of four pixels here, three units of pixels are stored in the 12-bit history data. Here, although it is assumed that the data for three units is stored in the history data, data of a larger number of units may be stored. Hereinafter, this will be specifically described with reference to FIG.
[0087]
As shown in the figure, the history data can be interpreted as three blocks, with four consecutive bits as one block. These three 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 that (“the two previous units”). Unit ") and the unit processed immediately before that (" three previous units "). 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.
[0088]
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. In addition, here, the history data is assumed to be 12-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.
[0089]
As an example, history data as shown in FIG. 13B is assumed. Focusing on a group consisting of four bits on the lower side of the history data, the value “1” is set for the most significant (leftmost) bit and the least significant (rightmost) bit in this group, and the other bits The value “0” is set for. 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 in the center of the history data, a dot is formed in any pixel in the unit processed immediately before the processing unit. It means not. For the group on the upper side of the history data, since the value “1” is stored in the most significant bit in the group, a dot is formed at the pixel position of the pixel Pa in the unit processed three times before the processing unit. Is meant to be. 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.
[0090]
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 FIG.
[0091]
FIG. 14 is an explanatory diagram conceptually showing how history detection data is set. 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. 14A, a large square with a dashed line indicated by hatching indicates a processing unit, and a black square in the processing unit indicates a pixel of interest. 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. The reason for this will be explained in a little more detail.
[0092]
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 the presence or absence of dot formation is determined in units of 4 pixels (vertical and horizontal 2 pixels) as one unit, the same processing is repeated with a cycle of 3 units (for 6 pixels). It is possible that dots are formed at the same pixel position in the third unit. When dots are formed at such a constant cycle, the print pass for forming these dots may be biased to a specific pass as will be described later, and color unevenness may occur to deteriorate the image quality.
[0093]
Therefore, in the example shown in FIG. 14A, it is detected whether or not dots are formed on the pixel Pa of each unit in the range from the processing unit to the unit three units before. In FIG. 14A, “?” Shown in the pixel Pa of each unit schematically indicates that the dot formation status is detected at these pixel positions.
[0094]
FIG. 14B 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 12 bits, similar to the history data described above, and is interpreted as being divided into three groups, with 4 bits as one group. The history detection data is composed of three groups corresponding to the detection of dot formation status in three 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.
[0095]
As shown in FIG. 14A, since it is assumed here that the dot formation status is to be detected in the pixel Pa of each unit, the history detection data corresponds to the pixel Pa of each unit. The value “1” is set only for the bits to be set, and the data “0” is set for the other bits.
[0096]
If the pixel of interest is set to the pixel Pb, similarly, if it is detected whether or not a dot is formed on the pixel Pb of each unit in the range from the processing unit to the unit three units before. Good. FIG. 14C is an explanatory diagram showing a pixel position 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. 14D is an explanatory diagram conceptually showing history detection data set for detecting 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.
[0097]
In step S502 of FIG. 12, as described above, the history detection data is set according to the position of the pixel of interest.
[0098]
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).
[0099]
FIG. 15A 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. 15A 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. 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. Next, the target history can be detected by calculating the logical sum or arithmetic sum of each bit of the intermediate data thus obtained. In FIG. 15A, 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.
[0100]
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. Next, the logical sum of each unit is calculated, and if the value is “1”, a dot is formed at any pixel position to be detected. Further, by calculating the arithmetic sum of each unit, it is possible to detect how many dots are formed at the pixel position to be detected.
[0101]
In step S504 of FIG. 12, as described above, a process of calculating the detection result by taking the logical sum (or arithmetic sum) of each bit of the intermediate data is performed. 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. Also, when calculating the arithmetic sum of each bit of the intermediate data, if the obtained value is equal to or greater than the predetermined value, it is determined that the target history has been detected, and if the arithmetic sum value is less than the predetermined value, the target It may be determined that the history is not detected.
[0102]
In the intermediate data shown in FIG. 15 (a), the bits in the “one previous unit” and the “three previous units” 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.
[0103]
As a reference, FIG. 15B shows the dot formation status represented by the history data shown in the upper part of FIG. As shown in FIG. 15A, 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. 15B, 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.
[0104]
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). Conversely, when the target history is detected, a value larger than the normal value Vn is set. Is set as the threshold th (step S510). 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.
[0105]
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, when the target history is detected, the value of the threshold value th is changed to a predetermined premium value (Vp) larger than the normally used value (normal value Vn). When the target history is detected, it becomes difficult to form dots on the target pixel. The determination result is stored in a variable indicating the determination result for each pixel.
[0106]
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.
[0107]
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.
[0108]
FIG. 16 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. 17 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. 16, 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. 17, the history detection buffer is capable of storing data for three units, but may be capable of storing data for a larger number of units.
[0109]
After the data for one unit has been shifted in the upper direction in this way (step S600 in FIG. 16), a process for setting 4-bit length data according to the determination result of each pixel in the processing unit is then 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.
[0110]
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. 17, the white arrow toward each bit of the lowest unit schematically shows how the set data is written to these bits.
[0111]
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.
[0112]
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 when the gradation number conversion processing is performed in units of units, there is a region where dots are formed at the same pixel position with a plurality of units as a cycle, and it is avoided that these regions are visually recognized to deteriorate the image quality. can do. In addition, if it is difficult to form dots in the pixel of interest in this way, as a reflective effect, dots are easily formed in other pixels in the unit. As a result, it is possible to avoid the formation of dots biased to specific pixel positions in the unit. That is, the ratio of dots formed at each pixel position in the unit to all pixels can be suppressed within a predetermined range, and dots are formed biased to a specific printing pass, resulting in deterioration in image quality. This can be avoided. This will be supplementarily described later.
[0113]
In addition, even if the dot formation determination at the target pixel is controlled by changing the setting value of the threshold th, the tone error caused by this is diffused to the surrounding undetermined pixels, and these peripheral pixels are It is eliminated by determining the presence or absence of dot formation. For this reason, for example, even if the target history is detected and dots are not formed in the pixels where the dots are supposed to be formed, the image quality is not deteriorated due to this.
[0114]
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.
[0115]
In the above description, history detection data is applied to history data to generate intermediate data, and a logical sum or arithmetic sum of each bit of the intermediate data is calculated 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.
[0116]
Next, the reason why the image quality may deteriorate even when a specific pattern is not visually recognized when dots are formed biased to specific pixel positions in the unit will be described. As described above, the color printer 200 according to the present embodiment prints an image by forming dots on the print medium while main-scanning the ink ejection head. In such a printer, mainly because of demands on image quality, even when dots are formed on pixels that are continuous in the main scanning direction, these dots are not formed by one main scanning, but are separated from each other at intervals. Usually, dots are formed on a pixel while being divided into a plurality of main scans.
[0117]
FIG. 18 is a diagram illustrating a state in which dot rows that are continuous in the main scanning direction (hereinafter, such dot rows are sometimes referred to as “raster”) are divided into two main scans. FIG. The small squares shown in the upper part of the figure represent pixels. The numbers displayed inside each pixel are serial numbers assigned to identify each pixel. When one raster is divided into two main scans, dots are formed in odd-numbered pixels in a certain main scan, and dots are formed in even-numbered pixels in the next main scan. Here, the main scanning performed while forming dots in odd-numbered pixels is called “pass A”, and the main scanning performed while forming dots in even-numbered pixels is called “pass B”. In the example shown in FIG. 18, the dots formed in pass A are displayed as circles, and the dots formed in pass B are displayed as triangles. By repeating the path A and the path B in this way, one raster is formed. As described above, when forming a single raster divided into a plurality of passes, if dots are formed biased to specific pixel positions in the unit, the image quality deteriorates even if the specific pattern is not visually recognized. Sometimes.
[0118]
For example, as shown in FIG. 6, it is assumed that the unit is composed of a total of four pixels, two vertically and horizontally, and dots are formed biased toward the pixel position Pa. FIG. 19 conceptually shows how dots are formed at the pixel position Pa in this way. In FIG. 19, although dots are formed in a constant periodic pattern, such a pattern is not visually recognized and image quality is not necessarily deteriorated. However, since all the dots are formed in odd-numbered pixels, they are formed with a bias toward the path A shown in FIG. In this way, when dots are formed biased to a specific pass, the image quality may deteriorate. This is because the ink dots formed on the print medium are spread over time and the ink dries, so when the ink dots are formed uniformly in all passes and when they are formed biased to a specific pass. This is because the state of color development is slightly different, which may be visually recognized as color unevenness. In particular, such color unevenness is likely to occur in color printing using multicolor inks. For example, taking the case where C dots and M dots are formed as an example, the case where M dots are formed from after C dots are formed and the case where these dots are formed in the same manner are mixed inks. The condition and the degree of bleeding of dots formed later will be different. As a result, even when dots are formed at the same density, the color reproduced on the print medium is different, and such a color difference may be visually recognized as color unevenness.
[0119]
In the first embodiment described above, when the target pixel is at the pixel position Pa, the presence / absence of dot formation at the same pixel position Pa is detected. When a predetermined number or more of dots are formed at the pixel position Pa, that is, when a target history is detected, it is difficult to form dots on the target pixel. In this way, in the unit, it becomes easy to form dots in pixels other than the pixel position Pa. As a result, it is possible to avoid uneven formation of dots at specific pixel positions, and it is possible to avoid the occurrence of uneven color due to the formation of dots unevenly at specific passes. It becomes.
[0120]
Alternatively, when the pixel of interest is at the pixel position Pa, the presence / absence of dot formation at another pixel position (for example, Pb) is detected, and when a predetermined number of dots or more are formed at the pixel position Pb, It is good also as making it easy to form a dot. If dots are formed at the pixel of interest at the pixel position Pa in this way, it is difficult for the unit to form dots at the pixel at the pixel position Pb. It can be avoided.
[0121]
D-4. Variation:
Various modifications exist in the history detection / threshold setting process of the first embodiment described above. Hereinafter, these various modifications will be described.
[0122]
(1) First modification:
In the history detection / threshold setting process of the first embodiment described above, it has been described that the dot formation status is always detected by going back by 3 units, but the number of units to go back can be made variable. Hereinafter, such a first modification will be described.
[0123]
FIG. 20 is a flowchart illustrating a flow of history detection / threshold setting processing according to the first modification. This process is significantly different from the process of the first embodiment described above in that the number of units to be traced back can be changed according to the image data in the processing unit. Hereinafter, it demonstrates according to a flowchart centering on difference.
[0124]
When the history detection / threshold value setting process of the first 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.
[0125]
In the first modification, how many units before the dot formation status is checked is set based on the total value of the image data of the processing unit. This is due to the following reason. When the total value is small, it is considered that an area where the gradation value of the image data is small (that is, a bright image area) is being processed. In such a region, since dots are formed sparsely, it is considered that a pattern with a long cycle is formed even if a pattern is generated in the formation of dots by processing in units. For this reason, the number of retroactive units is set to a large value so that a pattern with a long period can be detected in a region where the gradation value of the image data is small. For the number of units to be traced back, some appropriate numerical values are set in advance step by step according to the value of the total value. In step S702, after setting the number of units going back in accordance with the total value, a process of reading data having a bit length corresponding to the number of units from the history detection buffer described above is performed.
[0126]
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 first modification, the sum value of the image data of each pixel constituting the processing unit is calculated, and the dot formation status is detected retroactively by the number of units corresponding to the sum value. Corresponding to this, the history detection data is also set to data having a length corresponding to the total value.
[0127]
Next, the 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, the threshold th value is increased to a large value (Vp When the target history is not detected, the threshold value th is set to the normal value Vn (steps S706 to S712). When the above processing is completed, the history detection / threshold setting processing of the first modification is exited, and the processing returns to the in-unit multi-value processing shown in FIG.
[0128]
According to the history detection / threshold setting process of the first modification described above, the dot formation status can be detected retroactively by the appropriate number of units according to the gradation value of the image data being processed. . For this reason, it becomes possible to prevent deterioration of image quality more reliably. In the first modification described above, the total value for each pixel in the processing unit is calculated. If the total value is small, a bright image region (region where the gradation value of the image data is small) is being processed. It explained that it was judged that there was. Of course, it may be detected using a different method that the area being processed is a bright image area. For example, it is also possible to detect using the average value of the image data in the peripheral area. Further, in the history detection / threshold value setting process of the first modification described above, the number of units to be detected retroactively for dot formation has been described as being set according to the total value of each pixel in the processing unit. However, the present invention is not limited to this, and the number of units to be traced back or the pixel position in the unit may be set according to the gradation value of each pixel. This is preferable because the number of retroactive units can be set to a finer and appropriate value.
[0129]
(2) Second modification:
In the various embodiments described above, the description has been made centering on the case where the pixel position in the processed unit for detecting whether or not dots are formed is the same pixel position as the target pixel of the unit being processed. Of course, the pixel position for detecting the dot formation status in the processed unit can be freely set as necessary by appropriately setting the history detection data described above. Hereinafter, such a second modification will be described.
[0130]
FIG. 21 is an explanatory diagram exemplifying how history detection data is set in the second modification. For example, when determining the presence or absence of dot formation for the pixel Pa of the processing unit, as shown in FIG. 21A, the dot formation status of the pixel Pa is detected for the “previous unit” of the processing unit. As for both “second previous unit” and “third previous unit”, the dot formation status of the pixel Pc is detected. The “?” Mark shown in the drawing schematically indicates that the dot formation status for the corresponding pixel is detected. If the pixel position for detecting the dot formation state is set in this way, the pattern of “lower left pixel”, “lower left pixel”, “upper left pixel”, and “upper left pixel” with a period of 4 units Thus, it is possible to avoid the formation of dots periodically.
[0131]
FIG. 21B shows history detection data set to detect the pixel position indicated by “?” In FIG. As described above, the history detection data is composed of three groups of four adjacent bits. As shown in FIG. 21 (b), each group is shown in FIG. 21 (a). It corresponds to three units. The four bits constituting each group correspond to the pixel Pa, the pixel Pb, the pixel Pc, and the pixel Pd in order from the upper side (left side in the figure). The history detection data can be obtained by setting a value “1” for the bit corresponding to the pixel position to be detected and setting a value “0” for the other bits. FIG. 21C shows the history detection data obtained in this way displayed in hexadecimal. As described above, since the history detection data represents one unit with 4 bits, the history detection data can be simply expressed by displaying 4 bits together in hexadecimal. The history detection data shown in FIG. 21B can be expressed as “0x228” by displaying in hexadecimal. Note that “0x” means that hexadecimal numbers are displayed.
[0132]
In the above-described embodiments, the number of pixels for detecting the dot formation status is one pixel for each unit. Of course, it is also possible to detect the dot formation status for a plurality of pixel positions per unit. good. FIG. 22 is an explanatory diagram showing how the dot formation status is detected at a plurality of pixel positions. In this case, as shown in FIG. 22A, the dot formation status is detected at three pixel positions for the “previous unit” of the processing unit. FIG. 22B is an explanatory diagram showing history detection data set to detect the dot formation status at such a pixel position. As shown in the drawing, with respect to “the previous unit”, in addition to the pixel Pa, the dot formation status is detected also at the two pixel positions of the pixel Pb and the pixel Pd. Correspondingly, the value “1” is set in three bits corresponding to the pixel Pa, the pixel Pb, and the pixel Pd in the lower four bits of the history detection data. That is, “D” is set in hexadecimal notation. In addition, since “second previous unit” and “third previous unit” detect the dot formation status of the pixel Pa as in the case of FIG. 21, these units are displayed in hexadecimal notation. “8” is set, and as a result, data “0x88D” is set as history detection data as shown in FIG.
[0133]
As described above, by appropriately setting the history detection data, it is possible to freely set the pixel position for detecting the dot formation status in the processed unit. Therefore, even when it is easy to form dots with a specific pattern over a plurality of units, such a pattern can be reliably avoided. Of course, as a result of the fact that dots are hard to be formed at specific pixel positions, dots are formed at almost equal ratios at all pixel positions. In addition, as shown in FIG. 22, if the dot formation status is detected at the pixel position in the vicinity of the processing unit, it is possible to avoid the formation of dots in the vicinity of the pixel of interest. For this reason, it is possible to improve the image quality by improving the dispersibility of dots.
[0134]
(3) Third modification:
It is also possible to set the pixel position for detecting the dot formation status using a random number. For example, first, the number of units to be detected retroactively may be set using a random number, and then the pixel position to be detected for each unit may be set using a random number. In this way, since there is no regularity in the setting of the pixel position for detecting the dot formation state, it is possible to reliably avoid the occurrence of a periodic pattern over a plurality of units.
[0135]
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.
[0136]
E-1. In-unit multi-value processing of the second embodiment:
FIG. 23 is a flowchart showing the flow of the intra-unit multilevel 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.
[0137]
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.
[0138]
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.
[0139]
FIG. 24 is an explanatory view 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.
[0140]
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. 24). 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.
[0141]
As is clear from the above description, the history data illustrated in FIG. 24 stored in the history detection buffer A includes the units one, three, five, eight, and eight before the processing unit. Indicates that a dot is formed on the pixel Pa, and no dot is formed on the pixel Pa for other units. In FIG. 24, each history detection buffer has a data length of 8 bits, but may be data having a larger number of bits.
[0142]
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. Note that this process is a process executed in step S804 on the target pixel after the target pixel is set in the intra-unit multi-value processing of FIG. 23 (step S800).
[0143]
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. 24, in the second embodiment, a history detection buffer is provided in accordance with the pixel position. 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. 24, “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.
[0144]
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. 25A 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 pixel in the processing unit indicates the target pixel, and the pixel marked with “?” In the processed unit indicates the pixel for which the dot formation status is to be detected.
[0145]
FIG. 25B 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. 25C shows the history detection data set in this way displayed in hexadecimal.
[0146]
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, intermediate data is calculated by taking the logical product of corresponding bits between the history data and the history detection data, and taking the logical sum (or arithmetic sum) of each bit of the obtained intermediate data. The detection result is calculated. 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 (or arithmetic 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. Good.
[0147]
When the threshold value th is set as described above and the process returns to the in-unit multivalue processing of the second embodiment shown in FIG. 23, the magnitude relationship between the correction data Cx of the pixel of interest and the threshold value th is subsequently determined. (Step S806 in FIG. 23). 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.
[0148]
FIG. 26 is an explanatory diagram conceptually illustrating a state in which the determination result for the pixel of interest is written in the history detection buffer in the intra-unit multi-value processing 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. 26 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. 23, processing for writing the determination result for the target pixel in the history detection buffer corresponding to the target pixel is performed.
[0149]
When the process of writing the determination result of the target pixel is finished (step S814 in FIG. 23), it is determined whether or not the process for all the pixels in the processing unit is finished (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.
[0150]
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.
[0151]
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.
[0152]
FIG. 27 is an explanatory diagram showing a method of detecting the dot formation status at an arbitrary pixel position in the second embodiment. FIG. 27A 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 arbitrarily set, the following description will be made assuming that the dot formation state at the pixel position shown in FIG.
[0153]
FIG. 27B is an explanatory diagram showing a method of detecting the dot formation status 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. That is, in the example shown in FIG. 27A, 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.
[0154]
First, the case where the dot formation status of the pixel Pa is detected will be described. FIG. 27 (b) 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.
[0155]
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. 27A, for the pixel Pa, the dot formation status is detected by the three units of “the previous unit”, “the second previous unit”, and “the third previous unit” of the processing unit. 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 (or arithmetic sum) between the bits of the intermediate data.
[0156]
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. On the other hand, the logical sum as the detection result being “1” means that a dot is formed in the pixel Pa in any of the units to be detected. When the detection result is obtained by calculating the arithmetic sum, the obtained numerical value represents the number of dots formed. Of course, instead of taking the logical sum (or arithmetic 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.
[0157]
The detection result for the pixel Pb can be obtained by the same method. FIG. 27C schematically shows how the dot formation status for the pixel Pb is detected. Briefly described with reference to FIG. 27B, first, history data for three units is read out 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 (or arithmetic sum) between each bit of the obtained intermediate data, a detection result for the pixel Pb can be obtained.
[0158]
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. 27 (d) shows how the detection result for the pixel Pc is calculated, and FIG. 27 (e) shows how the detection result for the pixel Pd is calculated.
[0159]
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. 27A, 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. 27A, the final detection result value is “1”.
[0160]
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.
[0161]
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.
[0162]
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.
[0163]
Further, in the various embodiments described above, when it is detected that a dot is formed at a predetermined pixel position in a processed unit, it is assumed that it is difficult to form a dot for the pixel of interest. did. On the other hand, when a dot is not formed at a predetermined pixel position, the dot may be easily formed at the target pixel. In this way, for example, in a region where dots are formed at a high density, when pixels where dots are not formed periodically occur across a plurality of units, it is possible to effectively avoid deterioration in image quality. it can.
[0164]
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.
[0165]
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.
[0166]
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 the structure of history detection data set for detecting a history in the history detection / threshold value setting process of the first embodiment;
FIG. 15 is an explanatory diagram conceptually showing a state of detecting a target history by applying history detection data to history data in the history detection / threshold setting processing of the first embodiment.
FIG. 16 is a flowchart showing a flow of processing for writing a determination result for each pixel in the unit into a history detection buffer storing history data in the first embodiment.
FIG. 17 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. 18 is an explanatory diagram showing a state in which dot rows that are continuous in the main scanning direction are formed by being divided into two main scans.
FIG. 19 is an explanatory diagram exemplifying a case where dots are formed in a constant periodic pattern, but the image quality is not necessarily deteriorated by such a pattern being visually recognized.
FIG. 20 is a flowchart showing a flow of processing for detecting a dot formation state and setting a threshold value in the first modification of the first embodiment;
FIG. 21 is an explanatory diagram conceptually showing a state in which history detection data is set in a second modification of the first embodiment.
FIG. 22 is an explanatory diagram conceptually showing a state in which different history detection data is set in a second modification of the first embodiment.
FIG. 23 is a flowchart showing a flow of a process for multi-value the inside of a unit by determining the presence / absence of dot formation for each pixel in the unit in the second embodiment.
FIG. 24 is an explanatory diagram conceptually showing a history detection buffer provided in association with pixel positions in a unit in the second embodiment.
FIG. 25 is an explanatory diagram conceptually showing a method for setting history detection data in accordance with the pixel position for detecting the dot formation status in the second embodiment.
FIG. 26 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. 27 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 (8)

画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理装置であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換するドットデータ変換手段と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶するドット有無記憶手段と
を備え、
前記ドットデータ変換手段は、
前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する着目画素設定手段と、
変換しようとするユニット内での前記着目画素位置に基づいて、前記変換済みのユニット内でドット形成の有無が記憶されている画素のうち、所定位置にある画素についてのドット形成有無を検出するドット形成有無検出手段と、
前記着目画素の階調値と前記ドット形成有無の検出結果とに基づいて、該着目画素についてのドット形成の有無を判断するドット形成判断手段と
を有するとともに、
前記ドット形成判断手段は、前記着目画素の階調値が大きくなるほどドット形成有りとなり易いように判断することに加えて前記ドット形成有無の検出結果を前記ユニット内で前記所定位置にある画素に形成されるドットの全ドットに対する割合が所定範囲内に抑制されるように考慮しながら前記着目画素についてのドット形成の有無を判断する画像処理装置。
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
Pixel-of-interest setting means for sequentially setting a pixel of interest for which the presence / absence of dot formation is determined in the unit;
Based on the pixel position of interest in the unit to be converted, a dot for detecting the dot formation presence / absence of a pixel at a predetermined position among the pixels in which the presence / absence of dot formation is stored in the converted unit Forming presence detection means;
And a dot formation determination means for determining the presence or absence of dot formation for the target pixel based on the gradation value of the target pixel and the detection result of the presence or absence of the dot formation,
In addition to determining that the dot formation is likely to occur as the gradation value of the pixel of interest increases, the dot formation determination unit forms the detection result of the dot formation on the pixel at the predetermined position in the unit. An image processing apparatus that determines the presence or absence of dot formation for the pixel of interest while considering that the ratio of the dots to all the dots is suppressed within a predetermined range.
請求項1記載の画像処理装置であって、
前記ドット形成有無検出手段は、前記ドット形成有無を検出する所定位置の画素として、前記ユニット内で前記着目画素と同じ画素位置にある画素について、
ドット形成有無を検出する手段であり、
前記ドット形成判断手段は、前記所定位置の画素に所定数以上のドットが検出された場合には、前記着目画素についてのドット形成を抑制するドット形成抑制手段を備えている画像処理装置。
The image processing apparatus according to claim 1,
The dot formation presence / absence detection means, as a pixel at a predetermined position for detecting the dot formation presence / absence, for a pixel at the same pixel position as the target pixel in the unit,
A means for detecting the presence or absence of dot formation,
The dot formation determination unit includes an dot formation suppression unit that suppresses dot formation for the pixel of interest when a predetermined number of dots or more are detected in the pixel at the predetermined position.
請求項1記載の画像処理装置であって、
前記ドット形成有無検出手段は、前記ドット形成有無を検出する所定位置の画素として、前記ユニット内で前記着目画素とは異なった所定の画素位置にある画素について、ドット形成有無を検出する手段であり、
前記ドット形成判断手段は、前記所定位置の画素に所定数以上のドットが検出された場合には、前記着目画素についてのドット形成を促進するドット形成促進手段を備えている画像処理装置。
The image processing apparatus according to claim 1,
The dot formation presence / absence detection means is means for detecting the presence / absence of dot formation for a pixel at a predetermined pixel position different from the target pixel in the unit as a pixel at a predetermined position for detecting the dot formation presence / absence. ,
The dot formation determination unit includes an dot formation promotion unit that promotes dot formation for the pixel of interest when a predetermined number of dots or more are detected in the pixel at the predetermined position.
請求項1記載の画像処理装置であって、
前記ドット形成判断手段は、誤差拡散法を用いてドット形成の有無を判断するとともに、該判断に際して参照される該誤差拡散法の閾値を、前記ドット形成有無の検出結果に基づいて変更しながら判断する手段である画像処理装置。
The image processing apparatus according to claim 1,
The dot formation determining means determines whether or not dots are formed using an error diffusion method, and determines a threshold value of the error diffusion method referred to in the determination while changing the threshold based on the detection result of the dot formation presence or absence. An image processing apparatus.
請求項1ないし請求項4のいずれかに記載の画像処理装置であって、
前記ドットデータ変換手段は、互いに隣接する4画素ずつを前記ユニットとしてまとめて、前記画像データを前記ドットデータに変換する手段であり、
前記ドット形成判断手段は、前記ユニット内で前記着目画素と同じ画素位置に形成されるドットの全ドットに対する割合が10%〜40%に抑制された状態で、ドット形成の有無を判断する手段である画像処理装置。
An image processing apparatus according to any one of claims 1 to 4,
The dot data conversion means is a means for collecting the four pixels adjacent to each other as the unit and converting the image data into the dot data.
The dot formation determination means is a means for determining the presence or absence of dot formation in a state where the ratio of dots formed at the same pixel position as the target pixel in the unit to all dots is suppressed to 10% to 40%. An image processing device.
画像を構成する各画素についての階調値によって表現された画像データを受け取り、該画像データに基づいて印刷媒体上にドットを形成することによって該画像を印刷する印刷装置であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめるユニット生成手段と、
前記ユニットを構成する各画素についての画像データを該ユニット単位で変換することにより、該画素の各々についてのドット形成の有無を表すドットデータに変換するドットデータ変換手段と、
前記得られたドットデータに基づいて前記画素の各々にドットを形成するドット形成手段と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶するドット有無記憶手段と
を備え、
前記ドットデータ変換手段は、
前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する着目画素設定手段と、
変換しようとするユニット内での前記着目画素位置に基づいて、前記変換済みのユニット内でドット形成の有無が記憶されている画素のうち、所定位置にある画素についてのドット形成有無を検出するドット形成有無検出手段と、
前記着目画素の階調値と前記ドット形成有無の検出結果とに基づいて、該着目画素についてのドット形成の有無を判断するドット形成判断手段と
を有するとともに、
前記ドット形成判断手段は、前記着目画素の階調値が大きくなるほどドット形成有りとなり易いように判断することに加えて前記ドット形成有無の検出結果を前記ユニット内で前記所定位置にある画素に形成されるドットの全ドットに対する割合が所定範囲内に抑制されるように考慮しながら前記着目画素についてのドット形成の有無を判断する印刷装置。
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,
Unit generating means for grouping a predetermined plurality of adjacent pixels as a unit;
Dot data conversion means for converting image data for each pixel constituting the unit into dot data representing the presence or absence of dot formation for each of the pixels by converting the image data for each unit;
Dot forming means for forming dots on each of the pixels based on the obtained dot data;
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
Pixel-of-interest setting means for sequentially setting a pixel of interest for which the presence / absence of dot formation is determined in the unit;
Based on the pixel position of interest in the unit to be converted, a dot for detecting the dot formation presence / absence of a pixel at a predetermined position among the pixels in which the presence / absence of dot formation is stored in the converted unit Forming presence detection means;
And a dot formation determination means for determining the presence or absence of dot formation for the target pixel based on the gradation value of the target pixel and the detection result of the presence or absence of the dot formation,
In addition to determining that dot formation is more likely to occur as the gradation value of the pixel of interest increases, the dot formation determination unit forms the detection result of dot formation presence / absence in the pixel at the predetermined position in the unit. A printing apparatus that determines the presence or absence of dot formation for the pixel of interest while considering that the ratio of the dots to all the dots is suppressed within a predetermined range.
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理方法であって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する工程(A)と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶する工程(B)と
を備え、
前記工程(A)は、更に、
前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する下位工程(A−1)と、
変換しようとするユニット内での前記着目画素位置に基づいて、前記変換済みのユニット内でドット形成の有無が記憶されている画素のうち、所定位置にある画素についてのドット形成有無を検出する下位工程(A−2)と、
前記着目画素の階調値と前記ドット形成有無の検出結果とに基づいて、該着目画素についてのドット形成の有無を判断する下位工程(A−3)と
を有するとともに、
前記下位工程(A−3)は、前記着目画素の階調値が大きくなるほどドット形成有りとなり易いように判断することに加えて前記ドット形成有無の検出結果を前記ユニット内で前記所定位置にある画素に形成されるドットの全ドットに対する割合が所定範囲内に抑制されるように考慮しながら前記着目画素についてのドット形成の有無を判断する画像処理方法。
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) a step of collecting 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, the step (B) of storing the presence or absence of dot formation in a state where the pixel position in the unit can be identified, and
The step (A) further includes
A sub-step (A-1) for sequentially setting a pixel of interest for which it is determined whether or not to form dots in the unit;
Based on the pixel position of interest in the unit to be converted, subordinates that detect the presence or absence of dot formation for a pixel at a predetermined position out of the pixels in which the presence or absence of dot formation is stored in the converted unit Step (A-2);
A sub-step (A-3) for determining the presence / absence of dot formation for the pixel of interest based on the gradation value of the pixel of interest and the detection result of the presence / absence of dot formation;
In the lower step (A-3), in addition to determining that the dot formation is more likely to occur as the gradation value of the pixel of interest increases, the detection result of the dot formation presence / absence is at the predetermined position in the unit. An image processing method for determining the presence or absence of dot formation for the pixel of interest while considering that the ratio of dots formed on a pixel to all dots is suppressed within a predetermined range.
画像を構成する各画素についての階調値によって表現された画像データを、該各画素についてのドット形成の有無を表すドットデータに変換する画像処理方法を、コンピュータを用いて実現するためのプログラムであって、
互いに隣接する前記画素を所定の複数個ずつユニットとしてまとめ、前記画像データを該ユニット単位で前記ドットデータに変換する機能(A)と、
前記変換されたユニットを構成する少なくとも一部の画素については、該ユニット内での画素位置を識別可能な状態でドット形成の有無を記憶する機能(B)と
を実現するとともに、
前記機能(A)は、更に、
前記ユニット内でドット形成の有無を判断しようとする着目画素を順次設定する機能(A−1)と、
変換しようとするユニット内での前記着目画素位置に基づいて、前記変換済みのユニット内でドット形成の有無が記憶されている画素のうち、所定位置にある画素についてのドット形成有無を検出する機能(A−2)と、
前記着目画素の階調値と前記ドット形成有無の検出結果とに基づいて、該着目画素についてのドット形成の有無を判断する機能(A−3)と
を有しており、
前記機能(A−3)は、前記着目画素の階調値が大きくなるほどドット形成有りとなり易いように判断することに加えて前記ドット形成有無の検出結果を前記ユニット内で前記所定位置にある画素に形成されるドットの全ドットに対する割合が所定範囲内に抑制されるように考慮しながら前記着目画素についてのドット形成の有無を判断することを特徴とするプログラム。
A program for realizing, using a computer, an image processing method for converting image data represented by gradation values for each pixel constituting an image into dot data representing the presence or absence of dot formation for each pixel. There,
A function (A) for collecting 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, a function (B) for storing the presence / absence of dot formation in a state where the pixel positions in the unit can be identified is realized, and
The function (A) further includes
A function (A-1) for sequentially setting a pixel of interest for which the presence or absence of dot formation is to be determined in the unit;
A function for detecting the presence / absence of dot formation for a pixel at a predetermined position among pixels in which the presence / absence of dot formation is stored in the converted unit based on the pixel position of interest in the unit to be converted (A-2),
A function (A-3) for determining the presence / absence of dot formation for the pixel of interest based on the gradation value of the pixel of interest and the detection result of the presence / absence of dot formation;
In the function (A-3), in addition to determining that the dot formation is more likely to occur as the gradation value of the pixel of interest increases, the detection result of the dot formation presence / absence is detected in the pixel at the predetermined position in the unit. A program for determining whether or not dots are formed for the pixel of interest while taking into consideration that the ratio of dots formed to all dots is controlled within a predetermined range.
JP2003206898A 2003-08-08 2003-08-08 Image processing apparatus for converting image data in units of multiple pixels Expired - Fee Related JP3972875B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003206898A JP3972875B2 (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
JP2003206898A JP3972875B2 (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
JP2005064554A JP2005064554A (en) 2005-03-10
JP3972875B2 true JP3972875B2 (en) 2007-09-05

Family

ID=34363592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003206898A Expired - Fee Related JP3972875B2 (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) JP3972875B2 (en)

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3912055B2 (en) Image processing apparatus, print control apparatus, image processing method, and recording medium
JP5434015B2 (en) Printing device
KR100485635B1 (en) Image processing device, printing control device, image processing method, and recorded medium
JP2006289947A (en) Printing device, printing device control program and method of controlling printing device, and data formation device for printing, data formation program for printing and method of forming data for printing
KR100611236B1 (en) Image processing device, image processing method, printing control device, and recording media
CN100379250C (en) Image processing device and image processing method for performing conversion of color image data
JP2010035112A (en) Image processing apparatus and method
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
JP3972875B2 (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
JP4013855B2 (en) Image processing apparatus for converting image data in units of multiple pixels
JP4534942B2 (en) Image processing apparatus, image output apparatus, and program
JP4059121B2 (en) Image display system for displaying an image based on information on the number of dots formed in a predetermined area
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
JP4100522B2 (en) Image processing apparatus, image processing method, and recording medium recording the program
JP2005007800A (en) System for printing image based on information of the number of dots formed in specified region
JP4577366B2 (en) Image processing apparatus for processing a plurality of rasters in parallel
JP4529379B2 (en) Printing apparatus, printing method, and printing program
JP2007008177A (en) Printer, printer controlling program, printer controlling method, apparatus for generating data for printing, program for generating data for printing and method for generating data for printing
JP3757650B2 (en) Image processing device
JP4475068B2 (en) Image processing apparatus, image output apparatus, and program
JP2004345124A (en) Printing apparatus, printing method, program for printing, and pattern for printing correction

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

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070604

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110622

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110622

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120622

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130622

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees