JP3864901B2 - 画像データの階調数を変換する画像処理装置、および画像処理方法 - Google Patents

画像データの階調数を変換する画像処理装置、および画像処理方法 Download PDF

Info

Publication number
JP3864901B2
JP3864901B2 JP2002362216A JP2002362216A JP3864901B2 JP 3864901 B2 JP3864901 B2 JP 3864901B2 JP 2002362216 A JP2002362216 A JP 2002362216A JP 2002362216 A JP2002362216 A JP 2002362216A JP 3864901 B2 JP3864901 B2 JP 3864901B2
Authority
JP
Japan
Prior art keywords
error
pixel
gradation
matrix
pixels
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002362216A
Other languages
English (en)
Other versions
JP2004194179A (ja
Inventor
繁明 角谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2002362216A priority Critical patent/JP3864901B2/ja
Publication of JP2004194179A publication Critical patent/JP2004194179A/ja
Application granted granted Critical
Publication of JP3864901B2 publication Critical patent/JP3864901B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、多階調画像データをドット形成の有無によって表現された擬似階調データに変換する技術に関する。
【0002】
【従来の技術】
インクジェットプリンタや液晶表示装置など、表示媒体上にドットを形成することによって画像を表現する画像表示装置は、コンピュータなどで作成した画像やデジタルカメラなどで撮影した画像の出力機器として広く使用されている。インクジェットプリンタなど、これらの画像表示装置を用いて多階調の画像を表現するためには、画像の多階調画像データを、ドット形成の有無によって表現された擬似階調データに一旦、変換しておく必要がある。こうした変換を行うための手法としては種々の方法が提案されてきたが、今日でも広く使用されている代表的な手法として誤差拡散法と呼ばれる手法がある。
【0003】
誤差拡散法は、ある画素についてドット形成の有無を判断し、該判断によってその画素に生じた階調表現の誤差(以下では、この誤差を階調誤差と呼ぶ)を周辺の未判断の画素に拡散する。そして、未判断の画素についてドット形成の有無を判断するに際しては、こうして周囲の画素から拡散されてきた誤差を解消するようにドット形成の有無を判断する。一例としてインクジェットプリンタを例にとって説明すると、例えば、画像の明度が明るいハイライト領域でドットを形成すると判断した場合、その画素には大きな階調誤差が生じる。そこで、この誤差を周辺の未判断画素に拡散し、周辺の画素ではドットが形成され難くすることで、全体として誤差を解消してやる。逆に、画像の明度の低いシャドー領域では、ドットを形成しないと判断したときに大きな階調誤差が発生する。そこで、その画素で生じた階調誤差を周辺の画素に拡散し、周辺の画素にドットが形成され易くすることで、全体として誤差を解消してやる。
【0004】
また、液晶表示装置などのように、輝点のドットを形成することで画像を表示する画像表示装置の場合には、インクジェットプリンタとは逆に、ハイライト領域でドットを形成しないと判断した場合、あるいはシャドー領域でドットを形成すると判断した場合に大きな階調誤差が発生する。このように液晶表示装置などについては、ドット形成の有無と階調誤差の発生との関係がインクジェットプリンタの場合に対して逆になるだけであるので、インクジェットプリンタに準じて考えることができる。以下では、説明が煩雑となることを避けるために、もっぱらインクジェットプリンタを想定して説明するが、液晶表示装置などについても同様のことが当てはまる。
【0005】
誤差拡散法では、階調誤差を拡散させる周辺画素の範囲および周辺の各画素へ拡散する際の重み係数は、誤差拡散マトリックスと呼ばれる数表に予め記憶されており、階調誤差は、このマトリックスに従って周辺の画素に拡散される。また、より高い画質を得るためには、画像データの階調値に応じて、この誤差拡散マトリックスを使い分けてやることが望ましい。
【0006】
例えば、ハイライト領域ではドットがまばらに形成される(すなわち、ドットとドットの間が大きく隔たった状態で形成される)ことが望ましいから、拡散範囲の広い大きな誤差拡散マトリックスを使用することが効果的である。こうすれば、ある画素でドットが形成された場合に、これによって生じた階調誤差を周辺の広い範囲に拡散して、そのドットの周辺にドットが形成され難くすることができるので、ドットの分散性を改善することができる。換言すれば、ハイライト領域では、ドットが形成された画素の近くには他のドットができるだけ形成され難くするために、ある画素で発生した階調誤差を、その画素の周辺の広い範囲に拡散するような誤差拡散マトリックスを使用することが望ましい。同様に、シャドー領域では、ドットが形成されない画素がまばらに発生することが画質の上で望ましいから、大きな誤差拡散マトリックスを使用することが望ましい。こうすれば、ドットが形成されなかった場合に生じる階調誤差を周辺の広い範囲に拡散してやることで、ドットの分散性を改善して、良好な画質を得ることができる。これに対して、ドットが形成される画素および形成されない画素がいずれも比較的高い密度で形成される中間階調領域では、拡散範囲の狭い小さな誤差拡散マトリックスを使用した場合でもドットの分散性はさほど悪化せず、むしろ誤差を拡散すべき画素数が減少するので、その分だけ画像データを変換する処理を迅速に行うことが可能となる。
【0007】
【発明が解決しようとする課題】
このように、画質の上からは、ハイライト領域あるいはシャドー領域では、階調誤差を広い範囲に拡散すべく、できるだけ大きな誤差拡散マトリックスを使用することが望ましい。しかし、拡散範囲の広い誤差拡散マトリックスを用いているのにも関わらず、ドットが比較的接近して形成されてしまい、必ずしも予想される程度には画質が向上しない場合が散見された。
【0008】
本発明は、従来技術における上述した課題を解決するためになされたものであり、ハイライト領域およびシャドウ領域でのドットの分散性を、効果的に改善可能な技術の提供を目的とする。
【0009】
【課題を解決するための手段およびその作用・効果】
上述の課題の少なくとも一部を解決するため、本発明の画像処理装置は、次の構成を採用した。すなわち、
複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに、該画素の列たるラスタに沿って画素毎に変換する画像処理装置であって、
前記画像データをドット形成の有無による表現形式のデータに前記画素毎に変換する度に、該変換を行った着目画素に生じる階調表現の誤差である階調誤差を算出する階調誤差算出手段と、
前記階調誤差を前記着目画素周辺にある未変換の画素へ拡散させるための、各画素への重みを示す誤差拡散マトリックスを、拡散範囲の広さを異にして複数種類記憶しているマトリックス記憶手段と、
前記着目画素についての画像データに応じて、前記複数種類記憶されている誤差拡散マトリックスの中から1の誤差拡散マトリックスを選択するマトリックス選択手段と、
前記選択した誤差拡散マトリックスに従って、前記階調誤差を前記着目画素周辺の未変換の画素に拡散する誤差拡散手段と、
周辺の変換済みの画素から拡散されてきた前記階調誤差を考慮しながら、前記着目画素についての前記画像データをドット形成の有無による表現形式のデータに変換するデータ変換手段と
を備え、
前記マトリックス記憶手段は、少なくとも前記拡散範囲が最も広い前記誤差拡散マトリックスとしては、前記階調誤差を前記ラスタ方向へ拡散する程度を表す指向性係数が、2.0以上の誤差拡散マトリックスを記憶している手段であることを要旨とする。
【0010】
また、上記の画像処理装置に対応する本発明の画像処理方法は、
複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに、該画素の列たるラスタに沿って画素毎に変換する画像処理方法であって、
前記変換によって前記個々の画素で生じる階調表現の誤差たる階調誤差を周辺の未変換の画素に拡散させるために、該周辺の各画素について該階調誤差を拡散する際の重みを記述した誤差拡散マトリックスを、拡散範囲の広さを異にして予め複数種類記憶しておく第1の工程と、
前記画像データをドット形成の有無による表現形式のデータに前記画素毎に変換する度に、該変換を行った着目画素に生じる前記階調誤差を算出する第2の工程と、
前記着目画素についての画像データに応じて、前記複数種類記憶されている誤差拡散マトリックスの中から1の誤差拡散マトリックスを選択する第3の工程と、
前記選択した誤差拡散マトリックスに従って、前記階調誤差を前記着目画素周辺の未変換の画素に拡散する第4の工程と、
周辺の変換済みの画素から拡散されてきた前記階調誤差を考慮しながら、前記着目画素についての前記画像データをドット形成の有無による表現形式のデータに変換する第5の工程と
を備え、
前記第1の工程は、少なくとも前記拡散範囲が最も広い前記誤差拡散マトリックスとしては、前記階調誤差を前記ラスタ方向へ拡散する程度を表す指向性係数が、2.0以上の誤差拡散マトリックスを記憶する工程であることを要旨とする。
【0011】
かかる画像処理装置および画像処理方法においては、多階調の画像データをドット形成の有無によって表現された形式のデータに変換し、該変換によって着目画素に生じた階調誤差を、該着目画素の周辺にある未変換の画素に拡散する。拡散に際して参照される誤差拡散マトリックスは、拡散範囲を異にして予め複数記憶されているマトリックスの中から、着目画素の画像データに応じて1のマトリックスを選択して使用する。ここで、拡散範囲の広い誤差拡散マトリックスとしては、階調誤差をラスタ方向に偏らせて拡散させるようなマトリックスが記憶されている。階調誤差をラスタ方向に偏らせて拡散させるマトリックスとは、具体的には、後述する方法で算出される指向性係数が2.0以上となるマトリックス、より好ましくは指向性係数が2.5以上となるマトリックスである。
【0012】
画像データをドット形成有無による表現形式のデータに変換するに際しては、着目画素で生じた階調誤差を周辺の未変換の画素に拡散してやれば、周辺の画素から拡散されてきた階調誤差を考慮しながら変換することができるので、画像データを適切に変換することが可能である。しかし、階調誤差を広い範囲に拡散すると、結果として、個々の画素に拡散される階調誤差が少なくなってしまうので、拡散されてきた階調誤差を適切に反映させながら画像データを変換することが困難となる。これに対して、階調誤差をラスタ方向に偏らせて拡散させるような誤差拡散マトリックスを使用すれば、少なくともラスタ方向については、拡散されてきた誤差を適切に考慮することが可能となり、延いては、画像データをドット形成有無による表現形式のデータに適切に変換することができる。もちろん、階調誤差をラスタ方向に偏らせて拡散すれば、ラスタに直交する方向へ拡散される誤差は減ってしまうので、直交方向については誤差を適切に考慮することは難しくなる。しかし、階調誤差を広い範囲に拡散させる必要が生じるのは、ドットがまばらに発生する場合あるいはドットの形成されない画素がまばらに発生する場合であることが多いので、ラスタ方向について誤差を適切に考慮しておけば、直交方向について誤差を適切に考慮しないことによる弊害は、事実上はほとんど生じない。
【0013】
こうした画像処理装置および画像処理方法においては、着目画素の画像データが小さいほど、拡散範囲の広い誤差拡散マトリックスを選択することとしても良い。
【0014】
画像データが小さくなるほどドットをまばらに発生させる必要がある。このことから、着目画素についての画像データが小さくなるほど、拡散範囲の広い誤差拡散マトリックスを用いて階調誤差を拡散することで、ドットをまばらに発生させることが可能となるので好ましい。
【0015】
誤差拡散マトリックスを選択する際には、着目画素の画像データに加えて、該着目画素についての変換結果をも考慮して選択することとしても良い。
【0016】
着目画素で生じる階調誤差は、該着目画素の画像データだけでなく、該画像データの変換結果によっても影響を受けるので、これらを考慮することにより、より適切な誤差拡散マトリックスを選択することが可能となる。
【0017】
予め記憶しておく複数の誤差拡散マトリックスは、拡散範囲が広いほど指向性係数の大きなマトリックスとしても良い。
【0018】
拡散範囲が広くなるほど、個々の画素に拡散される階調誤差は小さくなるので、これら画素の画像データを変換するに際して、拡散されてきた階調誤差を適切に考慮することが困難になる。従って、拡散範囲が広いマトリックスほど指向性係数の大きな誤差拡散マトリックスとしておけば、拡散されてきた階調誤差を適切に考慮しながら画像データを変換することが可能となるので好ましい。
【0019】
こうした指向性の強い誤差拡散マトリックス、具体的には、指向性係数が2.0以上のマトリックスについては、拡散範囲が、着目画素を含むラスタおよび該ラスタに隣接するラスタの2つのラスタ内に限定されたマトリックスとしても良い。
【0020】
誤差拡散マトリックスの拡散範囲を、着目画素を含むラスタおよび該ラスタに隣接するラスタの2つのラスタ内に限定しておけば、経験上、指向性係数が2.0以上のマトリックスを容易に作成することができる。
【0021】
更に、拡散範囲の広い誤差拡散マトリックスについては、拡散範囲を2つのラスタ内に限定してやれば、階調誤差を拡散する画素数が少なくなって、その分だけ画像データを迅速に変換することが可能になると言う利点も得られるので特に好ましい。
【0022】
更に本発明は、上述した画像処理方法を実現するためのプログラムをコンピュータに読み込ませ、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記録した記録媒体としての態様も含んでいる。すなわち、上述した画像処理方法に対応する本発明のプログラムは、
複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに、該画素の列たるラスタに沿って画素毎に変換する画像処理を、コンピュータを用いて実現するためのプログラムであって、
前記変換によって前記個々の画素で生じる階調表現の誤差たる階調誤差を周辺の未判断の画素に拡散させるために、該周辺の各画素について該階調誤差を拡散する際の重みを記述した誤差拡散マトリックスを、拡散範囲の広さを異にして予め複数種類記憶しておく第1の機能と、
前記画像データをドット形成の有無による表現形式のデータに前記画素毎に変換する度に、該変換を行った着目画素に生じる前記階調誤差を算出する第2の機能と、
前記着目画素についての画像データに応じて、前記複数種類記憶されている誤差拡散マトリックスの中から1の誤差拡散マトリックスを選択する第3の機能と、
前記選択した誤差拡散マトリックスに従って、前記階調誤差を前記着目画素周辺の未変換の画素に拡散する第4の機能と、
周辺の変換済みの画素から拡散されてきた前記階調誤差を考慮しながら、前記着目画素についての前記画像データをドット形成の有無による表現形式のデータに変換する第5の機能と
をコンピュータによって実現するとともに、
前記第1の機能は、少なくとも前記拡散範囲が最も広い前記誤差拡散マトリックスとしては、前記階調誤差を前記ラスタ方向へ拡散する程度を表す指向性係数が、2.0以上の誤差拡散マトリックスを記憶する機能であるプログラムとしての態様である。
【0023】
また、上述の画像処理方法に対応する本発明の記録媒体は、
複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに、該画素の列たるラスタに沿って画素毎に変換する画像処理を実現するためのプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記変換によって前記個々の画素で生じる階調表現の誤差たる階調誤差を周辺の未判断の画素に拡散させるために、該周辺の各画素について該階調誤差を拡散する際の重みを記述した誤差拡散マトリックスを、拡散範囲の広さを異にして予め複数種類記憶しておく第1の機能と、
前記画像データをドット形成の有無による表現形式のデータに前記画素毎に変換する度に、該変換を行った着目画素に生じる前記階調誤差を算出する第2の機能と、
前記着目画素についての画像データに応じて、前記複数種類記憶されている誤差拡散マトリックスの中から1の誤差拡散マトリックスを選択する第3の機能と、
前記選択した誤差拡散マトリックスに従って、前記階調誤差を前記着目画素周辺の未変換の画素に拡散する第4の機能と、
周辺の変換済みの画素から拡散されてきた前記階調誤差を考慮しながら、前記着目画素についての前記画像データをドット形成の有無による表現形式のデータに変換する第5の機能と
を実現するプログラムを記録するとともに、
前記第1の機能は、少なくとも前記拡散範囲が最も広い前記誤差拡散マトリックスとしては、前記階調誤差を前記ラスタ方向へ拡散する程度を表す指向性係数が、2.0以上の誤差拡散マトリックスを記憶する機能である記録媒体としての態様である。
【0024】
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現すれば、画像データの変換速度を低下させることなく、ハイライト領域およびシャドウ領域でのドットの分散性を、効果的に改善することが可能となる。
【0025】
【発明の実施の形態】
本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って以下に説明する。
A.装置構成:
B.画像処理の概要:
C.本実施例の階調数変換処理:
D.変形例:
【0026】
A.装置構成:
図1は、本発明に関わる画像処理装置および印刷装置からなる印刷システム10の構成を示す説明図である。図示するように、この印刷システム10は、コンピュータ80にプリンタ20が接続されて構成されており、コンピュータ80に所定のプログラムがロードされて実行されると、コンピュータ80とプリンタ20とが全体として一体の印刷システム10として機能する。印刷しようとする画像は、コンピュータ80上で各種のアプリケーションプログラム91によって作成された画像が使用される。また、コンピュータ80に接続されたスキャナ21を用いて取り込んだ画像や、あるいはデジタルカメラ(DSC)28で撮影した画像をメモリカード27を経由して取り込んで使用することも可能である。これらの画像のデータORGは、コンピュータ80内のCPU81によって、プリンタ20が印刷可能なデータに変換され、印刷データFNLとしてプリンタ20に出力される。プリンタ20が、この印刷データFNLに従って、印刷用紙上へのインクドットの形成を適切に制御することにより、最終的に、印刷用紙上に画像が印刷されることになる。
【0027】
コンピュータ80は、各種の演算処理を実行するCPU81や、データを一時的に記憶するRAM83、各種のプログラムを記憶しておくROM82,ハードディスク26等から構成されている。また、SIO88をモデム24を経由して公衆電話回線PNTに接続すれば、外部のネットワーク上にあるサーバSVから必要なデータやプログラムをハードディスク26にダウンロードすることが可能となる。
【0028】
プリンタ20は、シアン(C)、マゼンタ(M)、イエロ(Y)、黒(K)の各色のインクを備え、これらインクのドットを形成することで、印刷用紙上にカラー画像を印刷するインクジェットプリンタである。これらインクに加えて、淡いシアン(LC)のインクや、淡いマゼンタ(LM)のインク、あるいは暗いイエロ(DY)のインクなど、他色のインクを備えておき、これらインクによるドットを形成することとしても良い。
【0029】
また、プリンタ20は、ピエゾ素子を用いてインクを吐出することによって印刷用紙上にインクドットを形成する方式を採用している。尚、本実施例で使用したプリンタ20では、ピエゾ素子を用いてインクを吐出する方式を採用しているが、他の方式によりインクを吐出するノズルユニットを備えたプリンタを用いるものとしてもよい。例えば、インク通路に配置したヒータに通電し、インク通路内に発生する泡(バブル)によってインクを吐出する方式のプリンタに適用するものとしてもよい。また、インクを吐出する代わりに、熱転写などの現象を利用してインクドットを形成したり、あるいは静電気を利用して印刷用紙上にトナーによるドットを形成する方式のプリンタであっても構わない。
【0030】
図2は、本実施例の画像処理装置の機能を実現するための、コンピュータ80のソフトウェアの構成を概念的に示すブロック図である。コンピュータ80においては、すべてのアプリケーションプログラム91はオペレーティングシステムの下で動作する。オペレーティングシステムには、ビデオドライバ90やプリンタドライバ92が組み込まれていて、各アプリケーションプログラム91から出力される画像データは、ビデオドライバ90で所定の信号変換が行われた後、モニタ23で表示される。
【0031】
また、アプリケーションプログラム91が印刷命令を発すると、コンピュータ80のプリンタドライバ92は、アプリケーションプログラム91から画像データを受け取って所定の画像処理を行い、プリンタが印刷可能な印刷データFNLに変換した後、変換した印刷データFNLをプリンタ20に出力する。画像処理の内容については後述する。
【0032】
図3は、本実施例のプリンタ20の概略構成を示す説明図である。このプリンタ20は、図示するように、キャリッジ40に搭載された印字ヘッド41を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ40をキャリッジモータ30によってプラテン36の軸方向に往復動させる機構と、紙送りモータ35によって印刷用紙Pを搬送する機構と、制御回路60とから構成されている。
【0033】
キャリッジ40をプラテン36の軸方向に往復動させる機構は、プラテン36の軸と並行に架設されたキャリッジ40を摺動可能に保持するための摺動軸33と、キャリッジモータ30との間に無端の駆動ベルト31を張設するためのプーリ32と、キャリッジ40の原点位置を検出するための位置検出センサ34等から構成されている。
【0034】
印刷用紙Pを搬送する機構は、プラテン36と、プラテン36を回転させる紙送りモータ35と、図示しない給紙補助ローラと、紙送りモータ35の回転をプラテン36および給紙補助ローラに伝えるギヤトレイン(図示省略)などから構成されている。印刷用紙Pは、プラテン36と給紙補助ローラの間に挟み込まれるようにセットされ、プラテン36の回転角度に応じて所定量だけ送られる。
【0035】
制御回路60は、CPU61とROM62とRAM63等から構成されており、プリンタ20の各種機構を制御する。すなわち、制御回路60は、キャリッジモータ30と紙送りモータ35の動作を制御することによってキャリッジ40の主走査と副走査とを制御するとともに、コンピュータ80から供給される印刷データFNLに基づいて、各ノズルでのインク滴の吐出を制御している。この結果、印刷用紙上の適切な位置にインクドットが形成される。
【0036】
キャリッジ40には、C,M,Yの各色インクを搭載するインクカートリッジ42と、Kインクを搭載するインクカートリッジ43とが装着されている。キャリッジ40にインクカートリッジ42,43を装着すると、カートリッジ内の各インクは図示しない導入管を通じて、各色毎のインク吐出用ヘッド44ないし47に供給される。各ヘッドに供給されたインクは、制御回路60の制御の下でインク吐出用ヘッド44ないし47から吐出される。
【0037】
図4は、インク吐出用ヘッド44ないし47におけるインクジェットノズルNzの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、C,M,Y,Kの各色のインクを吐出する4組のノズル列が形成されており、1組のノズル列あたり48個のノズルNzが、一定のノズルピッチkで配列されている。
【0038】
以上のようなハードウェア構成を有するプリンタ20は、キャリッジモータ30を駆動することによって、各色のインク吐出用ヘッド44ないし47を印刷用紙Pに対して主走査方向に移動させ、また紙送りモータ35を駆動することによって、印刷用紙Pを副走査方向に移動させる。制御回路60の制御の下、キャリッジ40の主走査および副走査を繰り返しながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、プリンタ20は印刷用紙上に画像を印刷する。
【0039】
B.画像処理の概要:
図5は、本実施例の画像処理装置としてのコンピュータ80が、画像データに所定の画像処理を加えることにより、印刷データに変換する処理の流れを示すフローチャートである。かかる処理は、コンピュータ80のオペレーティングシステムがプリンタドライバ92を起動することによって開始される。以下、図5に従って、画像処理の内容を簡単に説明する。
【0040】
プリンタドライバ92は、画像処理ルーチンを開始すると、先ず初めに、変換すべき画像データの読み込みを開始する(ステップS100)。ここで読み込む画像データは、256階調のRGBカラー画像データである。
【0041】
次いで、取り込んだ画像データの解像度を、プリンタ20が印刷するための解像度に変換する(ステップS102)。画像データの解像度が印刷解像度よりも低い場合は、線形補間を行うことで隣接する画像データ間に新たなデータを生成し、逆に印刷解像度よりも高い場合は、一定の割合でデータを間引くことによって画像データの解像度を印刷解像度に変換する。
【0042】
解像度を変換したら、色変換処理を開始する(ステップS104)。色変換処理とは、R,G,Bの階調値の組み合わせによって表現されているRGB画像データを、印刷のために使用される各色の階調値の組合せによって表現された画像データに変換する処理である。前述したように、プリンタ20はC,M,Y,Kの4色のインクを用いて画像を印刷しているから、本実施例の色変換処理ではRGB画像データを、C,M,Y,Kの各色の階調値によって表現されたデータに変換する。色変換処理は、色変換テーブル(LUT)と呼ばれる3次元の数表を参照することで行う。LUTには、RGB画像データに対して、色変換によって得られたC,M,Y,K各色の階調値が予め記憶されているので、このLUTを参照しながら変換すれば、迅速に色変換することが可能である。
【0043】
こうして色変換処理を終了すると、続いて、階調数変換処理を開始する(ステップS106)。階調数変換処理とは次のような処理である。色変換処理によって得られた画像データは、階調値0から階調値255までの値を取る256階調を有するデータである。これに対して、プリンタ20は、印刷用紙上にドットを「形成する」か「形成しない」かのいずれかの状態しか取り得ない。そこで、256階調を有する画像データを、ドット形成の有無に対応する2階調のデータに変換する必要がある。このように階調数変換処理とは、256階調を有する画像データをドット形成の有無を示すデータ(以下では、この様なデータをドットデータと呼ぶ)に変換する処理である。本実施例では、誤差拡散法と呼ばれる手法を用いて階調数変換処理を行う。詳細には後述するが、誤差を拡散する際に参照される誤差拡散マトリックスとして、指向性の強いマトリックスを参照することで、高画質の画像を得ることが可能となっている。
【0044】
階調数変換処理に続いて、インターレース処理を行う(ステップS108)。インターレース処理とは、ドットの形成有無を表す形式に変換されたドットデータを、プリンタが実際にドットを形成する順番を考慮しながら、プリンタ20に転送すべき順序に並べ替える処理である。プリンタドライバは、インターレース処理を行って最終的に得られたデータを、印刷データFNLとしてプリンタ20に出力する(ステップS110)。
【0045】
プリンタ20は、こうして変換された印刷データFNLに従って、各種のインクドットを印刷用紙上に形成する。その結果、画像データに対応したカラー画像が印刷用紙上に印刷される。
【0046】
C.本実施例の階調数変換処理:
本実施例の階調数変換処理では、いわゆる誤差拡散法と呼ばれる手法を用いて階調数を変換しており、誤差の拡散に用いる誤差拡散マトリックスとして、指向性の強いマトリックスを用いることによって、効果的な誤差の拡散を実現している。
【0047】
図6は、コンピュータ80の内部で実行される本実施例の階調数変換処理を、内部の機能に着目して概念的に表したブロック図である。階調数変換処理は、それぞれに固有の機能を有する複数のモジュールが組み合わされて実行されていると考えることができる。これらのモジュールは、物理的には、コンピュータ80に内蔵されたCPU81、ROM82、RAM83などによって構成されている。また、これらのモジュールは全体として、階調数変換処理を行う一つのモジュール(階調数変換モジュール100)を構成していると考えることもできる。この階調数変換モジュール100は、色変換後の画像データを受け取って所定の画像処理を施すことによってドットデータを生成する。こうして得られたドットデータに前述のインターレース処理を施すことによって、プリンタ20で印刷可能な印刷データFNLを得ることができる。理解の便宜を図るために、先ず初めに、図6を参照しながら本実施例の階調数変換処理の概要について説明する。
【0048】
階調数変換モジュール100は、ドット形成の有無を1画素ずつ判断していく。先ず初めに、階調数変換モジュール100に、色変換後のCMYK各色の画像データを入力する。すると、判断の対象としている着目画素についての画像データが、データ補正モジュール102に供給される。尚、階調数変換モジュール100内では、C,M,Y,Kの各色について同様な処理が行われる。以下では、説明が煩雑となることを避けるために色を特定せずに説明するが、色を特定することなく行った説明は、各色毎に同様な処理が行われることを意味しているものとする。例えば、データ補正モジュール102に入力されている画像データ「data」とは、C,M,Y,K各色についての画像データを表している。
【0049】
データ補正モジュール102では、次式に従って、画像データdataと、着目画素に拡散されて積算されている誤差(以下では、この値を誤差積算値accerrと呼ぶことにする)とを加算することにより、補正データdataC を算出する。
dataC = data + accerr
誤差積算値accerrの意味するところについては後述するが、大まかには、周辺の画素から着目画素に拡散されてきた誤差を表す数値と考えることができる。このように、画像データdataに誤差積算値accerrを加算して補正データdataC を算出する。
【0050】
こうして算出された補正データdataC は、2値化モジュール104に供給される。2値化モジュール104では、補正データdataC と所定の閾値thとを比較することによって、着目画素についてのドット形成の有無を判断する。すなわち、補正データdataC が閾値thよりも大きい場合(dataC ≧th)は、着目画素にドットを形成すると判断して、2値化結果を示す値resultにドットを形成することを表す値「1」を代入する。逆に、補正データdataC が閾値thよりも小さい場合(dataC <th)は、着目画素にドットを形成しないと判断して、2値化結果を示す値resultにドットを形成しないことを表す値「0」を代入する。このように、画像データdataに誤差積算値accerrを加算して補正データdataC を算出し、算出した補正データdataC に基づいてドット形成の有無を判断することで、周辺の画素で発生した誤差をドット形成有無の判断に反映させることが可能となっている。
【0051】
誤差算出モジュール106では、補正データdataC と2値化結果resultとを受け取って、階調誤差err を算出する。階調誤差err とは、着目画素についてドット形成の有無を判断したことによって、その画素で生じる階調表現の誤差である。例えば、ドットを形成したときに着目画素に表現される階調値が「255」であるとすると、ドットを形成した時の階調誤差err は次式によって与えられる。
err = dataC −255
また、ドットを形成しなかったときに着目画素に表現される階調値を「0」とすれば、ドットを形成しなかったときの階調誤差err は、
err = dataC −0(=dataC )
と求めることができる。
【0052】
こうして求められた階調誤差err は誤差拡散モジュール108に供給される。誤差拡散モジュール108では、供給された階調誤差err を、着目画素の周辺にある未判断の画素に拡散する処理が行われる。階調誤差err の拡散は、誤差拡散マトリックスを参照することによって行われる。誤差拡散マトリックスには、着目画素周辺の複数の画素の内、「どの画素」に「どのような比率」で階調誤差を拡散させるかが記憶されている。
【0053】
図7は、本実施例の階調数変換処理で用いられる誤差拡散マトリックスを例示した説明図であり、6つのマトリックスが示されている。図7(f)に示したマトリックスFを例にとって、図の意味するところについて説明する。図中で示した小さな正方形は、画素を概念的に示したものである。図7(f)には、隣接する8つの画素が示されている。また、内部に「*」が表示された正方形は着目画素を表し、他の7つの正方形は階調誤差err を拡散する周辺の未判断画素を表している。周辺の画素の中に表示された数値は、着目画素で生じた階調誤差err を拡散させる際の重みを示している。すなわち、各画素に拡散される階調誤差が、それぞれの画素内に表示された比率で分配されるように、着目画素で生じた階調誤差err が拡散される。一例として、図7(f)中で着目画素の右側にある画素について説明する。着目画素の右側にある画素の数値は「3」となっており、また、周辺の全画素の数値を合計すると「16」になるから、着目画素の右側の画素には階調誤差err の3/16の誤差が拡散されることになる。同様に、着目画素の真下の画素には、階調誤差err の1/4が拡散される。
【0054】
図6の誤差拡散マトリックス選択モジュール112には、図7に示した6つの誤差拡散マトリックスが記憶されている。この誤差拡散マトリックス選択モジュール112は、画像データdataと2値化結果resultとを受け取り、これら複数のマトリックスの中から適切な誤差拡散マトリックスMatrixを選択して、誤差拡散モジュール108に供給する。例えば、画像データdataが、階調値0≦data<2の範囲にあるときは、図7(a)に示した誤差拡散マトリックスAを選択する。画像データdataが、階調値2≦data<3の範囲にあるときは、図7(b)に示した誤差拡散マトリックスBを選択し、画像データdataが階調値3≦data<6の範囲にあるときは、図7(c)に示した誤差拡散マトリックスCを、階調値6≦data<9の範囲にあるときは、図7(d)に示したマトリックスDを、階調値9≦data<12の範囲にあるときは図7(e)に示したマトリックスEを選択する。また、画像データdataが階調値12≦dataの範囲にあるとき、あるいはresult=0の場合には、図7(f)に示した誤差拡散マトリックスFを選択する。
【0055】
誤差拡散モジュール108は、こうして選択された誤差拡散マトリックスMatrixに従って、階調誤差err を周辺の未判断画素に拡散する。拡散された階調誤差err は、拡散誤差記憶モジュール110に画素毎に記憶される。図7に示した誤差拡散マトリックスから明らかなように、1つの着目画素からは複数の画素に誤差が拡散される。これを逆から見れば、ある画素には複数の着目画素からの階調誤差が拡散されることになる。拡散誤差記憶モジュール110には、こうして複数の着目画素から拡散されてきた階調誤差が、画素毎に蓄積されて記憶されている。そして、誤差が蓄積されて記憶されている画素についてドット形成の有無を判断しようとする場合は、拡散誤差記憶モジュール110に記憶されている誤差を読み出して、ドット形成の有無の判断に反映させる。すなわち、前述したデータ補正モジュール102で、画像データdataと加算される誤差積算値accerrとは、こうして複数の着目画素から拡散されて、拡散誤差記憶モジュール110内に画素毎に蓄積された階調誤差である。
【0056】
図6に示した階調数変換モジュール100は、以上のような処理を行って画素毎にドット形成の有無を判断する。こうしてC,M,Y,K各色についてドット形成の有無を判断することによってドットデータを生成している。
【0057】
図8は、図6を参照しながら概要を説明した階調数変換処理の流れを示すフローチャートである。以下では、フローチャートに従って処理の流れを簡単に説明する。
【0058】
階調数変換処理を開始すると、先ず初めに、着目画素についての画像データdataの読み込みを行う(ステップS200)。次いで、着目画素に対応付けて記憶されている誤差積算値accerrを読み出して、画像データdataと加算することにより、補正データdataC を算出する(ステップS201)。
【0059】
こうして得られた補正データdataC と所定の閾値thとを比較することにより、着目画素についてのドット形成の有無を判断する(ステップS204)。閾値thの値は、ドットを形成した画素に表現される階調値(階調値255)と、ドットを形成しなかった画素に表現される階調値(階調値0)との中間の階調値(階調値128)に設定されている。もっとも閾値thの値は必ずしも固定されている必要はなく、より好ましい画質が得られるように、画像データの階調値やドット形成有無の判断結果などに応じて変更することも可能である。
【0060】
補正データdataC の方が閾値thよりも大きいと判断された場合は(ステップS204:yes)、着目画素にドットを形成すると判断して、2値化結果を表す値resultに値「1」を代入する(ステップS206)。すなわち、resultに「1」が代入されている場合は、その画素にドットを形成することを意味している。逆に、補正データdataC の方が閾値thよりも小さいと判断された場合には(ステップS204:no)、着目画素にはドットを形成しないと判断して、2値化結果を表す値resultに値「0」を代入する(ステップS208)。すなわち、resultに「0」が代入されている場合は、その画素にはドットを形成しないことを意味している。
【0061】
次いで、着目画素について、ドット形成の有無を判断したことによって生じる階調表現の誤差(階調誤差err )を算出する(ステップS210)。ここでは、ドットを形成した画素には階調値255が表現され、ドットを形成しない画素には階調値0が表現されるとしているから、ドットを形成する場合の階調誤差err は、dataC −255によって求めることができる。また、ドットを形成しない場合の階調誤差err は、dataC となる。
【0062】
続いて、誤差拡散マトリックスを選択する処理を行う(ステップS212)。誤差拡散マトリックスとしては、図7に示した6つのマトリックスが記憶されており、着目画素の画像データdataと、ドット形成の判断結果とに応じて適切な誤差拡散マトリックスMatrixを選択する。すなわち、一般的には、画像データdataの階調値が小さくなるに従って、拡散範囲の広い(多くの画素に誤差を拡散させる)大きなマトリックスを選択する。但し、着目画素にドットを形成しないと判断した場合には、画像データdataの階調値に関わらず、拡散範囲の狭い小さなマトリックスを選択する。
【0063】
こうして選択した誤差拡散マトリックスMatrixに従って、着目画素で発生した階調誤差err を周辺の未判断の画素に拡散する処理を行う(ステップS212)。各画素に拡散された階調誤差は、誤差積算値accerrとして画素毎に記憶される。
【0064】
以上のようにして着目画素で発生した階調誤差err を拡散したら、全画素についてのドット形成の有無を判断したか否かを判断し(ステップS216)、未判断の画素が残っている場合は(ステップS216:no)、ステップS200に戻って続く一連の処理を行う。全ての画素についての判断が終了したと判断されたら(ステップS216:yes)、図8に示した階調数変換処理を抜けて、図5に示した画像処理ルーチンに復帰する。
【0065】
以上に説明した本実施例の階調数変換処理では、階調誤差err を広い範囲に拡散させる誤差拡散マトリックスが、誤差を左右方向(ラスタ方向もしくは副走査方向)に偏らせて拡散させるマトリックスとなっている。本明細書では、階調誤差を左右方向に偏らせて拡散する度合いを示す指標として、指向性係数を使用する。指向性係数の算出方法については後述するが、誤差を左右方向に偏らせて拡散する度合いが強くなるほど、指向性係数は大きな値を取る。指向性係数の大きな誤差拡散マトリックスを用いて拡散すれば、階調誤差err は着目画素を中心とした周囲の画素に等方的に拡散されるのではなく、左右方向に偏って拡散されることになる。本実施例の階調数変換処理では、このようにして階調誤差err を拡散することにより、ハイライト領域およびシャドウ領域においてドットを均一に分散させることが可能となっている。
【0066】
また、本実施例では、拡散範囲の広い誤差拡散マトリックスは、単に強い指向性を有するだけでなく、その拡散範囲が、着目画素を含むラスタとそのラスタに隣接するラスタの2つのラスタに限定されている。このため、階調誤差を遠方まで拡散させる割には、誤差を拡散する画素数が少なくなっており、画像データを迅速に変換することができる。すなわち、画像データの変換速度とドットの分散性とを同時に改善することが可能となっている。
【0067】
以下では、指向性係数の算出方法について説明した後、指向性の強い誤差拡散マトリックスを用いることで、こうした効果が得られる理由について説明する。
【0068】
図9は、指向性係数の算出方法を示す説明図である。一例として図9(a)に示した誤差拡散マトリックスを用いて説明する。図9(a)中で、「*」が表示された小さな正方形は着目画素を表しており、その他の正方形は、着目画素で生じた階調誤差err を拡散する周辺の画素を表している。周辺の各画素の中には、階調誤差err を拡散するための重みが表示されている。例えば、着目画素の右隣の画素には重み「a」で階調誤差err を拡散し、その右隣の画素には重み「b」で拡散する。また、着目画素の真下の画素には重み「e」で階調誤差err を拡散する。着目画素から右隣の画素(重み「a」と表示された画素)あるいは、その右隣の画素(重み「b」と表示された画素)に拡散する場合は、階調誤差err をラスタ方向に沿って拡散していると言えるが、真下の画素(重み「e」と表示された画素)に拡散する場合は、ラスタ方向に沿って誤差を拡散していることにはならない。すなわち、階調誤差err を拡散しようとする画素の位置によって、ラスタ方向への指向性に寄与する画素と寄与しない画素とが存在することになる。こうして、個々の画素に注目し、その画素がラスタ方向への指向性に寄与する画素か否かを考えることで、誤差拡散マトリックス全体としての指向性係数を求めることができる。
【0069】
今、図9(a)に示した例示において、着目画素から、重み「g」と表示された画素に階調誤差err を拡散するものとする。図9(b)は、重み「g」と表示された画素と着目画素とに注目して、階調誤差err を拡散する様子を概念的に表した説明図である。重み「g」と表示された画素は、着目画素からラスタ方向には2画素分だけ隔たっており、ラスタと直交する方向には1画素分だけ隔たっている。そこで、着目画素から重み「g」と表示された画素への拡散に対する指向性係数を考えて、この指向性係数が、(2−1)*g/SUMによって与えられるものとする。ここでSUMとは、各画素の重みの加算値(=a+b+c+d+e+f+g+h+i+j)である。これを一般化すれば次のようになる。着目画素からラスタ方向にN画素分だけ先(あるいはN画素分だけ後ろ)で、且つラスタと直角方向にM画素分だけ隔たった画素に拡散するときの指向性係数は、その画素の重みを「n」とすると、
指向性係数=(N−M)*n/SUM
によって算出することができる。ここでのSUMは、想定している誤差拡散マトリックス中の各画素についての「重み」の合計値である。
【0070】
誤差拡散マトリックスに含まれる他の画素についても同様にして指向性係数を求め、これらを合計すれば、誤差拡散マトリックス全体としての指向性係数を求めることができる。図9(c)には、図9(a)に示す誤差拡散マトリックスについての指向性係数の算出式が示されている。
【0071】
図7に示したそれぞれの誤差拡散マトリックスには、こうして求めた指向性係数も併せて表示してある。図7に示した複数のマトリックスの中で最も大きな誤差拡散マトリックスは、指向性係数が「2.55」のマトリックスとなっている。このように、少なくとも拡散範囲の最も大きな誤差拡散マトリックスについては、指向性係数が大きな値となる、すなわち指向性の強いマトリックスを用いることで、ハイライト領域およびシャドウ領域においてドットを均一に分散させることが可能となる。指向性係数が2.0以上であれば、経験上、強い指向性を有する誤差拡散マトリックスと考えることができる。なお、以下の説明では、指向性係数が2.5以上のものを、十分に指向性の強い誤差拡散マトリックスと呼んでいる。以下では、これら指向性の強い誤差拡散マトリックスを用いることで、こうした効果が得られる理由について説明する。
【0072】
そもそも、拡散範囲の広い大きな誤差拡散マトリックスを使用する領域とは、ハイライト領域のようにドットがまばらに形成されている領域、あるいはシャドー領域のようにドットの形成されない画素がまばらに存在する領域が相当する。例えば、ハイライト領域では、まばらに形成されているドット間の距離が、いずれの方向についても、ほぼ一定となっていることが望ましい。従って、ある着目画素でドットが形成された場合、着目画素を中心とする一定距離内の画素ではドットが形成され難くなるように、階調誤差を周辺の画素に等方的に拡散することを考えるのが通常である。すなわち、誤差拡散マトリックスとしては、階調誤差を等方的に拡散するようなマトリックスが用いられる。
【0073】
ところが、拡散範囲が広くなり、階調誤差err を拡散する画素数が多くなるほど、個々の画素に拡散される階調誤差は小さくなっていく。従って、拡散範囲がある程度広くなると、着目画素から僅かな誤差しか拡散されなくなって、誤差が拡散された画素でドットが形成されることを十分に抑制することが困難になってしまう。そこで、広い範囲に誤差を拡散する場合には、指向性の強い誤差拡散マトリックスを用いて、階調誤差をラスタ方向に偏らせて拡散してやる。こうすれば、着目画素からラスタ方向に遠く隔たった画素にも階調誤差err を十分に拡散することができ、ドットの形成を効果的に抑制することが可能となる。
【0074】
これを図10を参照しながら説明する。図10は、ハイライト領域でドットがまばらに形成されている様子を概念的に示している。図10(a)は、誤差を等方的に拡散する誤差拡散マトリックスを用いた場合を示し、図10(b)は、指向性の強い誤差拡散マトリックスを用いた場合を示している。どちらの場合も、形成されているドットの総数は同じである。しかし、図10(a)では、2つのドットが近づいて形成されている部分が散見される。例えば、ドットaの近くにドットbが形成されている。本来は、ハイライト領域でドットaが形成されると大きな階調誤差が発生するので、この誤差が拡散された周辺の領域ではドットが形成され難くなるはずである。しかし、階調誤差を拡散する範囲が広くなると、個々の画素に拡散される誤差の値は小さくなるから、階調誤差を等方的に拡散したのでは、左右方向の画素でドットの形成を十分に抑制することができなってしまう。ハイライト領域でドットがまばらに形成されているにも関わらず、ドットaの近くにドットbが形成されてしまうのは、この様な理由によるものと考えられる。
【0075】
これに対して図10(b)では、指向性の強い誤差拡散マトリックスを用いることにより、ドットが形成されたことによる階調誤差をラスタ方向に偏らせて拡散させている。このため、複数のドットがラスタ方向に近づいて形成されることを確実に回避することが可能である。もちろん、このように階調誤差をラスタ方向に偏らせて拡散すれば、ラスタと直交する方向に拡散する比率は小さくなってしまうので、ラスタと直交する方向にはドットが近接して形成されることが懸念される。しかし、図10(b)に示されているように、階調誤差をラスタ方向に適切に拡散しておけば、実際には、ラスタと直交する方向にも、ラスタ方向と同程度にドットを離して形成することが可能である。
【0076】
D.変形例:
以上の説明では、図7に示した一組の誤差拡散マトリックスを用いて階調数変換処理を行うものとして説明したが、誤差拡散マトリックスは適宜、適切なマトリックスを組み合わせて用いることができる。このとき、少なくとも、最も拡散範囲の広いマトリックスについては、図7に例示したマトリックスに限られず、指向性係数が2.0以上のマトリックスを用いれば良い。例えば、図11に示した誤差拡散マトリックスを適宜、組み合わせて用いることができる。
【0077】
また、指向性係数が2.0以上となる誤差拡散マトリックスは、必ずしも最も拡散範囲の広いマトリックス一つに限られるものではない。良好な画質が得られるように、複数のマトリックスについて指向性係数を2.0以上とすることもできる。
【0078】
複数の誤差拡散マトリックスの中で、拡散範囲の広い(すなわち、階調誤差err を拡散する画素数の多い)マトリックスほど、大きな指向性係数を有するマトリックスとしてもよい。拡散範囲が広くなるほど、個々の画素に拡散される階調誤差err は小さくなってしまう。従って、拡散範囲が広いほど指向性係数の大きな誤差拡散マトリックスを用いれば、階調誤差を効果的に拡散することができる。もっとも、階調誤差を拡散する画素がある程度少なければ、いずれの画素についても効果的に誤差を拡散することができるので、ある程度小さなマトリックスについては、拡散範囲の大きさの序列と指向性係数の序列とが不整合となるものがあっても構わない。
【0079】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。例えば、上述の機能を実現するソフトウェアプログラム(アプリケーションプログラム)を、通信回線を介してコンピュータシステムのメインメモリまたは外部記憶装置に供給し実行するものであってもよい。もちろん、CD−ROMやフレキシブルディスクに記憶されたソフトウェアプログラムを読み込んで実行するものであっても構わない。
【0080】
また、上述した各種実施例では、画像データ変換処理はコンピュータ内で実行されるものとして説明したが、画像データ変換処理の一部あるいは全部をプリンタ側、あるいは専用の画像処理装置を用いて実行するものであっても構わない。
【0081】
更には、画像表示装置は、必ずしも印刷媒体上にインクドットを形成して画像を印刷する印刷装置に限定されるものではなく、例えば、液晶表示画面上で輝点を適切な密度で分散させることにより、階調が連続的に変化する画像を表現する液晶表示装置であっても構わない。
【図面の簡単な説明】
【図1】 本発明に関わる画像処理装置および印刷装置からなる印刷システムの構成を示す説明図である。
【図2】 本実施例の画像処理装置の機能を実現するための、コンピュータのソフトウェアの構成を概念的に示すブロック図である。
【図3】 本実施例のプリンタの概略構成を示す説明図である。
【図4】 インク吐出用ヘッドの底面にノズルが配置されている様子を示した説明図である。
【図5】 本実施例の画像処理装置としてのコンピュータが、画像データに所定の画像処理を加えることにより、印刷データに変換する処理の流れを示すフローチャートである。
【図6】 コンピュータの内部で実行される本実施例の階調数変換処理を、内部の機能に着目して概念的に表したブロック図である。
【図7】 本実施例の階調数変換処理で用いられる誤差拡散マトリックスを例示した説明図である。
【図8】 本実施例の階調数変換処理の流れを示すフローチャートである。
【図9】 指向性係数の算出方法を示す説明図である。
【図10】 ハイライト領域でドットがまばらに形成される様子を概念的に示した説明図である。
【図11】 他の誤差拡散マトリックスを例示する説明図である。
【符号の説明】
10…印刷システム
20…プリンタ
21…スキャナ
23…モニタ
24…モデム
26…ハードディスク
27…メモリカード
30…キャリッジモータ
31…駆動ベルト
32…プーリ
33…摺動軸
34…位置検出センサ
35…紙送りモータ
36…プラテン
40…キャリッジ
41…印字ヘッド
42,43…インクカートリッジ
44…インク吐出用ヘッド
60…制御回路
61…CPU
62…ROM
63…RAM
80…コンピュータ
81…CPU
82…ROM
83…RAM
88…SIO
90…ビデオドライバ
91…アプリケーションプログラム
92…プリンタドライバ
100…階調数変換モジュール
102…データ補正モジュール
104…2値化モジュール
106…誤差算出モジュール
108…誤差拡散モジュール
110…拡散誤差記憶モジュール
112…誤差拡散マトリックス選択モジュール

Claims (7)

  1. 複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに、該画素の列たるラスタに沿って画素毎に変換する画像処理装置であって、
    前記画像データをドット形成の有無による表現形式のデータに前記画素毎に変換する度に、該変換を行った着目画素に生じる階調表現の誤差である階調誤差を算出する階調誤差算出手段と、
    前記階調誤差を前記着目画素周辺にある未変換の画素へ拡散させるための、各画素への重みを示す誤差拡散マトリックスを、拡散範囲の広さを異にして複数種類記憶しているマトリックス記憶手段と、
    前記着目画素についての画像データに応じて、前記複数種類記憶されている誤差拡散マトリックスの中から1の誤差拡散マトリックスを選択するマトリックス選択手段と、
    前記選択した誤差拡散マトリックスに従って、前記階調誤差を前記着目画素周辺の未変換の画素に拡散する誤差拡散手段と、
    周辺の変換済みの画素から拡散されてきた前記階調誤差を考慮しながら、前記着目画素についての前記画像データをドット形成の有無による表現形式のデータに変換するデータ変換手段と
    を備え、
    前記マトリックス記憶手段は、少なくとも前記拡散範囲が最も広い前記誤差拡散マトリックスとしては、前記階調誤差を前記ラスタ方向へ拡散する程度を表す指向性係数が、2.0以上の誤差拡散マトリックスを記憶している手段である画像処理装置。
  2. 請求項1記載の画像処理装置であって、
    前記マトリックス選択手段は、前記着目画素の画像データが小さいほど、前記拡散範囲の広い誤差拡散マトリックスを選択する手段である画像処理装置。
  3. 請求項1または請求項2記載の画像処理装置であって、
    前記マトリックス選択手段は、前記着目画素の画像データに加えて、該着目画素についての前記変換結果を考慮して、前記1の誤差拡散マトリックスを選択する手段である画像処理装置。
  4. 請求項1記載の画像処理装置であって、
    前記マトリックス記憶手段は、前記拡散範囲が広いほど前記指向性係数の大きな誤差拡散マトリックスを記憶している手段である画像処理装置。
  5. 請求項1または請求項4記載の画像処理装置であって、
    前記マトリックス記憶手段は、少なくとも前記指向性係数が2.0以上の誤差拡散マトリックスについては、前記拡散範囲が、前記着目画素を含むラスタおよび該ラスタに隣接するラスタの2つのラスタ内に限定されたマトリックスである画像処理装置。
  6. 複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに、該画素の列たるラスタに沿って画素毎に変換する画像処理方法であって、
    前記変換によって前記個々の画素で生じる階調表現の誤差たる階調誤差を周辺の未変換の画素に拡散させるために、該周辺の各画素について該階調誤差を拡散する際の重みを記述した誤差拡散マトリックスを、拡散範囲の広さを異にして予め複数種類記憶しておく第1の工程と、
    前記画像データをドット形成の有無による表現形式のデータに前記画素毎に変換する度に、該変換を行った着目画素に生じる前記階調誤差を算出する第2の工程と、
    前記着目画素についての画像データに応じて、前記複数種類記憶されている誤差拡散マトリックスの中から1の誤差拡散マトリックスを選択する第3の工程と、
    前記選択した誤差拡散マトリックスに従って、前記階調誤差を前記着目画素周辺の未変換の画素に拡散する第4の工程と、
    周辺の変換済みの画素から拡散されてきた前記階調誤差を考慮しながら、前記着目画素についての前記画像データをドット形成の有無による表現形式のデータに変換する第5の工程と
    を備え、
    前記第1の工程は、少なくとも前記拡散範囲が最も広い前記誤差拡散マトリックスとしては、前記階調誤差を前記ラスタ方向へ拡散する程度を表す指向性係数が、2.0以上の誤差拡散マトリックスを記憶する工程である画像処理方法。
  7. 複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに、該画素の列たるラスタに沿って画素毎に変換する画像処理を、コンピュータを用いて実現するためのプログラムであって、
    前記変換によって前記個々の画素で生じる階調表現の誤差たる階調誤差を周辺の未変換の画素に拡散させるために、該周辺の各画素について該階調誤差を拡散する際の重みを記述した誤差拡散マトリックスを、拡散範囲の広さを異にして予め複数種類記憶しておく第1の機能と、
    前記画像データをドット形成の有無による表現形式のデータに前記画素毎に変換する度に、該変換を行った着目画素に生じる前記階調誤差を算出する第2の機能と、
    前記着目画素についての画像データに応じて、前記複数種類記憶されている誤差拡散マトリックスの中から1の誤差拡散マトリックスを選択する第3の機能と、
    前記選択した誤差拡散マトリックスに従って、前記階調誤差を前記着目画素周辺の未変換の画素に拡散する第4の機能と、
    周辺の変換済みの画素から拡散されてきた前記階調誤差を考慮しながら、前記着目画素についての前記画像データをドット形成の有無による表現形式のデータに変換する第5の機能と
    をコンピュータによって実現するとともに、
    前記第1の機能は、少なくとも前記拡散範囲が最も広い前記誤差拡散マトリックスとしては、前記階調誤差を前記ラスタ方向へ拡散する程度を表す指向性係数が、2.0以上の誤差拡散マトリックスを記憶する機能であるプログラム。
JP2002362216A 2002-12-13 2002-12-13 画像データの階調数を変換する画像処理装置、および画像処理方法 Expired - Fee Related JP3864901B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002362216A JP3864901B2 (ja) 2002-12-13 2002-12-13 画像データの階調数を変換する画像処理装置、および画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002362216A JP3864901B2 (ja) 2002-12-13 2002-12-13 画像データの階調数を変換する画像処理装置、および画像処理方法

Publications (2)

Publication Number Publication Date
JP2004194179A JP2004194179A (ja) 2004-07-08
JP3864901B2 true JP3864901B2 (ja) 2007-01-10

Family

ID=32760729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002362216A Expired - Fee Related JP3864901B2 (ja) 2002-12-13 2002-12-13 画像データの階調数を変換する画像処理装置、および画像処理方法

Country Status (1)

Country Link
JP (1) JP3864901B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5219726B2 (ja) * 2008-10-10 2013-06-26 キヤノン株式会社 画像処理装置及びその制御方法
JP4978649B2 (ja) * 2009-03-26 2012-07-18 ブラザー工業株式会社 画像処理装置および画像処理プログラム
CN116152231B (zh) * 2023-04-17 2023-07-14 卡松科技股份有限公司 基于图像处理的润滑油内杂质检测方法

Also Published As

Publication number Publication date
JP2004194179A (ja) 2004-07-08

Similar Documents

Publication Publication Date Title
US7819497B2 (en) Ink jet printing apparatus and method for selecting print mode
JP3912055B2 (ja) 画像処理装置、印刷制御装置、画像処理方法、および記録媒体
JP3661624B2 (ja) 画像処理装置
JP2008093965A (ja) 印刷における濃度ムラの抑制
JP2001144959A (ja) 画像処理装置および印刷装置
JP5139876B2 (ja) 画像形成装置及び画像形成方法
US20090147283A1 (en) Ejecion control of quality-enhancing ink
US20080024826A1 (en) Image processing device and printing apparatus for performing bidirectional printing
US7088471B2 (en) Density correction method and printing apparatus employing the same
US9083925B2 (en) Image processing apparatus and method therefor
US8390829B2 (en) Inkjet printing method using print modes selected in response to image quality scores
JP2001138555A (ja) 印刷制御装置、印刷装置、印刷制御方法、印刷方法、記録媒体、および色変換テーブルの設定方法
JP4240210B2 (ja) 印刷制御装置、印刷制御方法および印刷制御プログラム
JP3864902B2 (ja) 画像データの階調数を変換する画像処理装置、および画像処理方法
JP2006231902A (ja) 印刷装置、印刷装置制御プログラム及び印刷装置制御方法、並びに印刷用データ生成装置、印刷用データ生成プログラム及び印刷用データ生成方法
JP3864901B2 (ja) 画像データの階調数を変換する画像処理装置、および画像処理方法
JP2002185810A (ja) 画像処理装置、印刷制御装置、画像処理方法、および記録媒体
US8619323B2 (en) Image processing apparatus and image processing method for processing multivalued image data and recording an image in a pixel area on recording medium by a plurality of relative scans of recording head and recording medium
JP5754224B2 (ja) 印刷装置
JP4300742B2 (ja) 画像データの階調数を変換する画像処理装置
US7375855B2 (en) Image processing apparatus for converting image data by unit of multiple pixels
US20230249452A1 (en) Recording device and recording method
JP4457585B2 (ja) 印刷装置、印刷制御装置、印刷方法、およびプログラム
JP2007110468A (ja) 印刷装置、画像処理装置、印刷方法、および画像処理方法
JP2008143118A (ja) 印刷装置、印刷装置制御プログラム、当該プログラムを記録した記録媒体及び印刷装置制御方法、並びに印刷用画像データ生成装置、印刷用画像データ生成プログラム、当該プログラムを記録した記録媒体及び印刷用画像データ生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060606

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060807

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060925

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101013

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111013

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121013

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121013

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131013

Year of fee payment: 7

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees