JP2004241848A - 印刷制御装置、印刷制御方法および印刷制御プログラム - Google Patents

印刷制御装置、印刷制御方法および印刷制御プログラム Download PDF

Info

Publication number
JP2004241848A
JP2004241848A JP2003026384A JP2003026384A JP2004241848A JP 2004241848 A JP2004241848 A JP 2004241848A JP 2003026384 A JP2003026384 A JP 2003026384A JP 2003026384 A JP2003026384 A JP 2003026384A JP 2004241848 A JP2004241848 A JP 2004241848A
Authority
JP
Japan
Prior art keywords
data
threshold
pixels
block
pixel
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.)
Pending
Application number
JP2003026384A
Other languages
English (en)
Inventor
Kimito Katsuyama
公人 勝山
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 JP2003026384A priority Critical patent/JP2004241848A/ja
Publication of JP2004241848A publication Critical patent/JP2004241848A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】ハーフトーン処理においてさらなる高速化が望まれていた。
【解決手段】ドットマトリクス状の画素で構成される画像について各画素の色を多階調表現した画像データを取得し、同取得した画像データの画素数を増大させる拡大処理を行って中間データを取得し、複数の画素についてドット形成の有無を決定する閾値を規定した閾値データを記憶しておき、n×m(n,mは自然数)画素からなるブロック毎に当該閾値データに規定された閾値と上記中間データの一画素とを比較して当該一画素の中間データからn×m画素についてのドット形成の有無を指定したハーフトーン画像データ生成し、同ハーフトーン画像データを印刷装置において使用される順番に並べ替えて印刷装置での印刷を実行する。
【選択図】 図10

Description

【0001】
【発明の属する技術分野】
本発明は、印刷制御装置、印刷制御方法および印刷制御プログラムに関する。
【0002】
【従来の技術】
従来、画像を印刷する際には、画像をドットマトリクス状の画素で多階調表現した画像データを入力し、プリンタで表現可能な階調数に合わせるため、入力画像データをドット形成の有無により各画素の階調を表現したハーフトーンデータに変換する。このハーフトーン処理としては、比較的低速であるが比較的高画質の画像が得られる誤差拡散法や比較的高速であるが比較的低画質の画像が得られるディザ法等、種々の手法が知られている(例えば、特許文献1参照。)。
【0003】
【特許文献1】
特開2002−185789号公報
【0004】
【発明が解決しようとする課題】
上述した従来のハーフトーン処理においては、さらなる高速化が望まれていた。すなわち、近年のプリンタの高性能化に伴って印刷時の解像度が飛躍的に向上し、高解像度の画像を印刷するために非常に多数の画素数からなる画像を印刷することが可能になった。このように多数の画素数からなる画像を印刷する場合には非常に多数の演算を繰り返すため、多くの時間を必要とし、印刷処理の全時間に大きな影響を与えてしまう。
本発明は、上記課題にかんがみてなされたもので、高速にハーフトーン処理を実行可能な印刷制御装置、印刷制御方法および印刷制御プログラムの提供を目的とする。
【0005】
【課題を解決するための手段および発明の効果】
上記目的を達成するため、本発明では元画像を印刷に必要な画素数に拡大するに当たり、まず元画像を印刷に必要な画素数に満たない画素数に拡大し、さらにハーフトーン処理とともに拡大を実行可能な処理を行って最終的に必要とされる画素数のデータを生成する。このために、印刷制御装置では、ハーフトーン処理と同時に一画素をn×m画素に変換する処理を採用し、画像データを拡大して中間データを生成した後に当該中間データに対してこのハーフトーン処理を適用する。すなわち、補間演算等によって画像データを拡大するに当たり印刷に必要な画素数になるまで拡大を実施せず、中間データの一画素と閾値データとを比較することによって一画素をn×m画素のハーフトーン画像データに変換する。このハーフトーン画像データでの各画素が印刷時の各ドットに該当する。
【0006】
従って、補間演算等においては元の画像データを印刷時に必要な画素数になるよう一度に拡大する場合と比較して小さな倍率で拡大すれば十分であり、少ない時間で補間演算を終えることができる。また、補間処理には多くの種類があり、画質を低下させないように補間演算を行う場合には一般的に演算量が非常に多くなるとともに閾値と階調値とを比較する処理の方が高速である。従って、上記補間演算量の抑制と相俟って処理速度が非常に高速になる。
【0007】
尚、本発明におけるハーフトーン処理手段においては、中間データの一画素とブロック内の各閾値とを逐次比較してもよいが、後述のように冗長な比較処理を省略して比較処理回数を低減しつつn×m画素のドット形成の有無を指定してもよく、種々の手法を採用可能である。中間データの一画素とブロック内の各閾値とを逐次比較する構成を採用しない場合には、閾値データとしてブロック内の全画素について閾値を指定したデータでなくても十分である。ここで、ブロックはハーフトーン画像データを生成する際の画素の処理単位であり、閾値データ内のn×m画素が一つのブロックである。本発明においては、中間データの一画素からブロックの個数と等しい画素数のハーフトーン画像データを生成する。
【0008】
さらに、このハーフトーン処理では閾値データに従ってドット形成の有無を指定することができればよいので、単純な構成としてはドットを形成する状態と形成しない状態との2つの状態を形成すればよいが、むろん、ドット径の大きさを変動させて1画素につき4階調有するような構成に適用しても良い。また、閾値データにおいては中間データの一画素の階調値と比較される閾値を登録していればよく、当該階調値と閾値とを直接比較する場合は、両者の値域が一致している必要があるが、階調値と閾値とのいずれかを定数倍してから比較しても良く、この場合、定数倍する前に値域が一致している必要はない。また、印刷実行手段では、ハーフトーン画像データに基づいて印刷を実行することができればよく、むろん、画像データを使用順に並べ替える処理の他、印刷装置に対して当該印刷装置で解釈可能なコマンドを出力するなど種々の構成を採用可能である。
【0009】
ハーフトーン処理の手法において冗長な比較処理を省略する手法としては種々の手法を採用可能である。例えば、まず、中間データの一画素の階調値と上記ブロック内の閾値の最小値や最大値とを比較し、当該階調値が閾値の最小値に満たない場合や閾値の最大値を超える場合についてはブロック内の全画素における比較を行わない構成を採用可能である。この構成によれば、ドットを形成する画素のブロック内での位置を識別することなくブロック内の全画素についてドット形成あるいはドット非形成にして次のブロックでの処理に移ることができる。従って、閾値データの閾値と画像データの階調値とについて不要な比較をすることなく次のブロックでの処理に移ることができ、処理速度を高速化することができる。
【0010】
上記ブロックはn×m画素の画素から構成されていれば良く、これらの画素はディザマトリクスの一部である。すなわち、ディザマトリクスではn×m画素より多数の画素について閾値を規定している。ディザマトリクスの全体について閾値と画像データの階調値とを比較する場合には、その画像データについてディザマトリクスと比較した際に得られるドット形成数あるいはドット非形成数に達するまで非常に多数回の比較を行う必要がある。しかし、ディザマトリクスより小さいブロック毎に比較を行うと画像データと比較した際に得られるドット形成数あるいはドット非形成数にすぐに到達する。従って、冗長な比較処理をより多く排除することができる。
【0011】
また、閾値の最小値や最大値に基づいて冗長な処理を排除するとともにこれら最小値や最大値以外の閾値について冗長な処理を排除する構成を採用することも可能である。このために、中間データの一画素の階調値とブロック内の閾値とによってディザ処理をした場合のディザ処理後のハーフトーン画像データを予めブロック内のドット形成数毎に記憶しておく。この構成において、各ブロック毎の処理に際してディザ処理後のドット形成数を取得すれば、画素毎の逐次的な比較をすることなく拡大と同時にハーフトーン画像データを取得することができ、非常に高速にディザ処理を行うことができる。
【0012】
すなわち、予めドット形成数毎にディザ処理後のハーフトーン画像データを記憶しておく。そして、階調値と閾値とを比較したとしたら合計何個のドットを形成することになるか、あるいはドットを形成しない画素が何個あるかを各ブロック毎に取得する。ドット形成数が判明すれば、中間データの一画素を当該ドット形成数に対応したハーフトーン画像データに変換することにより、ディザ処理において各画素の閾値と中間データの一画素の階調値とを逐一比較することなく各ブロック内のドット形成、非形成を決定することができる。
【0013】
各ブロック毎の閾値は予め決定されており、この閾値からディザ処理後のハーフトーン画像データをドット形成数毎に予め決定することができる。各ブロック毎に当該ディザ処理後のハーフトーン画像データを変更しても良いし、各ブロック毎に共通にしても良い。閾値データに登録する閾値の大小関係の順序および位置を各ブロック毎に共通にしておけば、ディザ処理後のハーフトーン画像データを全ブロック共通にすることができる。
【0014】
以上のように、ドット形成数毎にディザ処理後のハーフトーン画像データを記憶することにより、逐次的な閾値判別をすることなく中間データの一画素をn×m画素のハーフトーン画像データに変換することができる。むろん、この処理は、上述のように閾値の最小値に満たない階調値や閾値の最大値を超える階調値についてブロックの全画素についてドットを形成せず、あるいは全画素についてドットを形成する処理も含んでいる。
【0015】
さらに、ハーフトーン処理手段での他の構成例として、閾値データの各ブロック内の閾値と中間データの一画素の階調値とを順に比較してドット形成あるいはドット非形成を決定しつつも、各ブロックで必要な全ドット形成数あるいはドット非形成数に達したら後の比較は省略して次のブロックの処理に移行する構成を採用してもよい。すなわち、中間データの階調値とブロック内の各閾値とを比較する処理を行うに当たり、各ブロックで必要なドット形成数あるいはドット非形成数に達したらそれ以後の閾値比較処理を行わないので、冗長な処理を排除して処理を高速化することができる。
【0016】
上記ブロックはn×m画素の画素から構成されていれば良く、これらの画素は閾値データの一部である。すなわち、閾値データではn×m画素より多数の画素について閾値を規定している。閾値データの全体について閾値と中間データの一画素の階調値とを比較する場合には、その中間データの一画素について閾値データと比較した際に得られるドット形成数あるいはドット非形成数に達するまで非常に多数回の比較を行う必要がある。しかし、閾値データより小さいブロック毎に処理すれば、中間データの一画素と階調値とを比較した際に得られるドット形成数あるいはドット非形成数は高々ブロックの画素数のオーダーであり、すぐにそのドット形成数に到達する。従って、冗長な比較処理をより多く排除することができる。
【0017】
また、各ブロックで必要なドット形成数あるいはドット非形成数は種々の手法によって取得することができ、当該ドット形成数あるいはドット非形成の数を取得することにより、必要な数だけドットを形成しあるいは形成しないように指定した後の冗長な比較処理を的確に排除し、処理速度を高速化することができる。すなわち、ディザ処理において各画素の閾値と中間データの一画素の階調値との総てについて逐一比較するのではなく、各ブロック毎に閾値を比較したとしたら合計何個のドットを形成することになるか、あるいはドットを形成しない画素が何個あるかを取得する。これにより、冗長な比較であるか否かを判断することができる。
【0018】
以上のように、本発明にかかる印刷制御装置によれば画像を印刷する際にハーフトーン画像データを作成する処理を非常に高速に実施することができる。この印刷制御装置は、パーソナルコンピュータ等の汎用コンピュータ単体で構成してもよいし、印刷装置自体にこの印刷制御装置を組み込んでもよい。さらに、本発明にかかる印刷制御装置の好適な構成例としては、画像データ取得手段と中間データ取得手段とを汎用コンピュータに搭載し、閾値データ記憶手段とハーフトーン処理手段と印刷実行手段とを印刷装置に搭載する構成が挙げられる。
【0019】
すなわち、汎用コンピュータにおいて中間データを生成するとともに中間データを印刷装置に転送し、印刷装置内でハーフトーン処理を実行して印刷を行う。特に、近年の印刷装置においては性能が飛躍的に向上しており、一ドットのインク量を非常に微小な量にして高精細印刷を実現している。このような印刷装置においては、一ドットの径が非常に小さいため印刷画像においてディザ処理の欠点、すなわち閾値データ(あるいはブロック)の大きさに対応したディザパターンが現れる現象が発生しにくい。従って、一般に高画質な画像を得るために行うハーフトーン処理である誤差拡散処理を行わなくても高画質な画像を印刷することができる。誤差拡散処理は一般にディザ処理より低速であるので、本発明によれば、高速処理を実行しつつも高画質の画像印刷を行うことができる。
【0020】
さらに、一ドットのインク量が微小な量であることに伴って画像印刷時の解像度が非常に高くなり、印刷に必要な画素数が非常に多くなる。従って、この画素数の画像を表現するためのデータ容量は非常に大きくなる。一般的な印刷制御においては、汎用コンピュータ等から印刷装置にデータを転送して印刷を実行するが、あまりにデータ容量が大きいとこのデータ転送が印刷処理全体に対してボトルネックとなり、結果として印刷速度を低下させてしまう。しかし、本発明における中間データは、印刷実行に必要な画素数より少ない画素数であるのでデータ容量が少なく、上記近年の印刷装置における高精細印刷時にもデータ転送がボトルネックにならない。従って、大容量の画像データを扱って印刷を実行する際にも高速に印刷を実行することが可能になる。
【0021】
中間データ取得手段においては、印刷時に必要とされる画素数より少ない画素数になるように元の画像データを拡大することができればよいが、印刷時に必要とされる画素数と上記ブロックの画素数とが決定している場合に、この中間データ取得手段における拡大倍率を決定することができる。すなわち、画像データがH×I画素であって、上記印刷装置において印刷する画像がJ×K画素であるときに、画像データの横画素数をJ/(n×H)倍するとともに縦画素数をK/(m×I)倍にすればよい。この拡大処理を実施しておけば、後にハーフトーン処理を行うことによって、印刷時に必要な画素をJ×K画素にすることができる。
【0022】
印刷する画像の画素数を取得する手法としては種々の手法を採用可能である。例えば、一般的な印刷においては、デフォルトあるいはユーザ指定によって印刷解像度や印刷時の大きさ(縦横の長さ等)等が特定される。この場合に印刷解像度と印刷時の大きさとを乗じれば、印刷時の画素数を取得することができる。ブロックの画素数は予めn×m画素と決まっているし、画像データの画素数は画像データを取得した時点で把握することができる。従って、上記式によって縦画素と横画素との倍率を取得することができる。
【0023】
予め記憶する閾値データの構成例として、N×M画素(N,Mは自然数)の閾値を規定し、その中にn×m画素からなる各ブロックを考え、当該ブロック内のデータはN×M個の階調をL個(L=n×m)に分類するとともに各分類から一階調ずつ抽出して閾値とすることもできる。この構成を採用すると、閾値が属するL個の分類からそれぞれ一つずつのみが各ブロックに登録されることになる。従って、閾値は各ブロックに対してまばらに振り分けられ、ディザ処理後に画像の位置によってドット形成に差異が生じにくくなる。さらに、各ブロックにL個の分類のそれぞれが登録されているので、L個の分類のうち第x分類(xは1〜L)に入る閾値の位置を各ブロック毎に共通の値にすれば、上記ディザ処理後のハーフトーン画像データを全ブロックについて共通にすることができる。また、この構造の閾値データであれば上述の請求項13と組み合わせて非常に高速にドット形成数を決定することが可能になる。
【0024】
さらに、閾値データにおいて、各ブロックに登録される閾値相互のピッチを一定にしても良い。すなわち、第x分類(xは1からLの自然数)の閾値と第(x+1)分類の閾値との数値間隔を一定とする。具体的には、(第1分類の閾値+(x−1)×N×M/n/m)などの式によって第x分類の閾値を決定することができる。この式によれば、第1分類の閾値を決定するのみで残りの閾値を閾値データの画素数およびブロックの画素数によって算出することができる。従って、第1分類の閾値のみを記憶すれば充分であり、閾値データのために必要とされる記憶容量を抑えることができる。
【0025】
さらに、閾値データとしては、上記ブロックのいずれにおいても第L分類の閾値を同じ位置の画素に対応させたデータとすることが好ましい。かかる構成によれば、ドット形成数が同じ場合に閾値データに基づいて決定されるハーフトーン画像データも同じになる。従って、ドット形成数の値毎に一つのハーフトーン画像データを記憶するのみで充分な構成を確実に構築することができる。この結果、ハーフトーン画像データを記憶するための記憶容量を抑えることができる。
【0026】
さらに、ハーフトーン処理手段においては各ブロック毎にドット形成数あるいはドット非形成の数を取得すれば良く、種々の構成を採用可能である。その一例として、各ブロックに登録された閾値を昇順あるいは降順に並べたブロック閾値テーブルデータを利用することができる。このブロック閾値テーブルデータは、各ブロック内に登録された閾値の最小値を抽出してマトリクス状に並べることにより第1のブロック閾値テーブルデータとし、2番目に小さい閾値を抽出してマトリクス状に並べることにより第2のブロック閾値テーブルデータとするなどして形成することができる。この場合、ブロック閾値テーブルデータは閾値データがN×M画素であり、各ブロックの画素がn×m画素であるときに(N/n)×(M/m)個の要素からなるマトリクスが昇順あるいは降順にn×m個形成される。
【0027】
このブロック閾値テーブルデータを記憶していれば、上記中間データの一画素の階調値と当該ブロック閾値テーブルデータとを比較することによってドット形成数を取得することができる。すなわち、中間データの一画素の階調値とブロック閾値テーブルデータの閾値とを閾値が小さい方から順に(昇順に)比較すれば、第x番目の閾値についての比較で階調値が閾値を下回ったときにドット形成数がx−1(比較回数−1)とすることができる。
【0028】
むろん、降順でも同様であり、中間データの一画素の階調値とブロック閾値テーブルデータの閾値とを閾値が大きい方から順に比較すれば、第x番目の比較で階調値が閾値を上回ったことによってドット非形成数をx−1(比較回数−1)とすることができる。従って、この場合、ドット形成数は(n×m+1−比較回数)個とすることができる。比較回数は最大でn×m(各ブロックについてのブロック閾値テーブルデータの数)個であるから、最大でも閾値と階調値との逐次的な比較での処理回数と同じであるし、ほとんどの場合それより少ない処理回数で次のブロックの処理へ移行することができる。従って、ハーフトーン処理の速度が非常に速くなる。
【0029】
この構成において、階調値が閾値を下回るあるいは上回ることを少ない比較回数で見つけることができれば、より速度を向上することができる。このために、中間データの一画素の階調値が所定の低階調域にあるときは当該階調値を上記閾値と昇順に比較し、上記中間データの一画素の階調値が所定の高階調域にあるときは当該階調値を上記閾値と降順に比較すると好ましい。すなわち、低階調域であればドット形成数は少なく、高階調域ではドット非形成数が少ないので、低階調域で昇順、高階調域で降順に比較すれば、非常に早い段階で閾値と階調値との比較を終了することができる。低階調域はドット形成数が少ない領域であり、高階調域はドット形成数が多い領域であれば良く、中間データの階調値域を2分して階調値が小さい方の階調域に属する場合は低階調域とし、大きい方の階調域に属する場合は高階調とするなど種々の構成を採用可能である。
【0030】
さらに、ドット形成数を取得する他の構成として、ブロック閾値テーブルデータにおける閾値および中間データの階調値域を上記ブロック内の画素数で除してL個に分類し、階調値が第x分類(xは1からLの自然数)に含まれるときに第x分類の閾値と比較し、閾値より階調値が小さい場合にドット形成数をx個、閾値より階調値が大きい場合にドット形成数を(x+1)個としてもよい。すなわち、ドット形成数を決定するために中間データの階調値と比較する閾値として最も重要なものは階調値前後の閾値である。そこで、上記分類によって比較すべき閾値を類推することにより、高速に比較すべき閾値を発見することができ、閾値と階調値とを順次比較してドット形成数を決定する構成より非常に高速に処理を行うことができる。尚、中間データの階調値域をL個に分割する際にその分割手法は種々の手法を採用可能であるが、均等に分割したり、ドット形成数の増加とともに明度の低下率が鈍くなるインクの一般的性質に鑑みて低階調域では階調を細かく分割する構成にしても良い。
【0031】
ところで、上述した印刷制御装置は、単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としては各種の態様を含むものであって、適宜、変更可能である。また、上述した画像データを変換する際の手法は、所定の手順に従って処理を進めていくうえで、その根底にはその手順に発明が存在するということは当然である。したがって、本発明は方法としても適用可能であり、請求項14にかかる発明においても、基本的には同様の作用となる。
【0032】
本発明を実施しようとする際に、印刷制御装置にて所定のプログラムを実行させる場合もある。そこで、そのプログラムとしても適用可能であり、請求項15にかかる発明においても、基本的には同様の作用となる。むろん、請求項2〜請求項13に記載された構成を上記方法やプログラムや印刷制御装置に対応させることも可能であることは言うまでもない。また、いかなる記憶媒体もプログラムを提供するために使用可能である。例えば、磁気記録媒体や光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一部がソフトウェアであって、一部がハードウェアで実現される場合においても本発明の思想において全く異なるものではなく、一部を記録媒体上に記録しておいて必要に応じて適宜読み込む形態のものも含まれる。さらに、一次複製品、二次複製品などの複製段階については全く問う余地なく同等である。
【0033】
【発明の実施の形態】
以下、下記の順序に従って本発明の実施形態を説明する。
(1)印刷制御装置の構成:
(2)印刷制御プログラムの概略構成:
(3)印刷制御装置が行う処理の概略:
(4)印刷制御装置が行う処理の詳細:
(5)他の実施形態:
【0034】
(1)印刷制御装置の構成:
図1は、本発明の第一の実施形態にかかる印刷制御装置の概略構成を示している。印刷制御装置は汎用的なパーソナルコンピュータ(PC)10によって構成されている。同PC10は演算処理の中枢をなすCPU11を備えており、このCPU11はシステムバス10aを介してPC10全体の制御を行う。同システムバス10aには、ROM12、RAM13、ハードディスクドライブ14やCD−ROMドライブ15、入力インターフェイス(入力I/F)16、CRTインターフェイス(CRTI/F)17、通信インターフェイス(通信I/F)18、プリンタインターフェイス(プリンタI/F)19等が接続されている。
【0035】
本実施形態のPC10はいわゆるデスクトップ型PCであり、構成を簡略化して説明している。むろん、PC10にはコンピュータとして一般的な構成を有するものを採用することができ、ノート型であるとか、モバイル対応のものであってもよい。また、印刷制御装置に適用可能なコンピュータは、PCに限定されるものではないし、複数のコンピュータによる分散処理を行う構成であっても良い。
【0036】
ハードディスクドライブ14には、ソフトウェアとしてオペレーティングシステム(OS)や文書情報や画像情報を作成可能なアプリケーションプログラム(APL)等が格納されており、これらのソフトウェアは、実行時にCPU11によって適宜RAM13に転送される。そして、CPU11は、RAM13を一時的なワークエリアとして適宜アクセスしながら種々のプログラムを実行することになる。
【0037】
入力I/F16には、キーボード16aやマウス16bが操作用入力機器として接続されるとともに、図示しないスキャナやデジタルカメラ等も接続されるようになっている。また、CRTI/F17には、表示用のディスプレイ17aが接続されている。さらに、プリンタI/F19には、パラレルI/Fケーブルを介してプリンタ20が接続されている。むろん、プリンタ20との接続I/FはパラレルI/Fに限られる必要もなく、シリアルI/FやSCSI、USB接続など種々の接続態様を採用可能であるし、今後開発されるいかなる接続態様であっても同様である。
【0038】
なお、本発明の印刷制御プログラムを記憶したハードディスクドライブ14は印刷制御プログラムを記録した媒体となるが、本印刷制御プログラムを格納可能な記録媒体はハードディスクに限定されるものではない。例えば、CD−ROMやフレキシブルディスクであってもよい。これらの記録媒体に記録されたソフトウェアはCD−ROMドライブ15や図示しないフレキシブルディスクドライブを介して読み込まれ、ハードディスクドライブ14にインストールされて、CPU11によってRAM13上に読み込まれて各種処理が実行されることになる。また、記録媒体は、これらに限定されず、光磁気ディスクや半導体デバイスである不揮発性メモリなどであってもよい。さらに、システムバス10aに接続されたモデム等の通信I/F18をインターネット網に接続し、種々のプログラムを格納したサーバにアクセスして本印刷制御プログラムをダウンロードすることも可能である。
【0039】
図2に示すように、プリンタ20では、CPU21、ROM22、RAM23、ASIC24、コントロールIC25、通信I/O26、I/F27がバス20aを介して接続されている。通信I/O26はPC10のプリンタI/F19と接続されており、プリンタ20は通信I/O26を介してPC10から送信される中間データや印刷コマンド等からなるデータを受信する。また、PC10から各種要求を受信したとき、通信I/O26は対応する情報をPC10に出力する。本プリンタ20は印刷時の解像度として2880×2880dpi、2880×1440dpi、1440×720dpi等を選択可能となっており、PC10から通信I/O26を介して解像度の選択情報を入手してRAM23に記憶しておき、解像度に応じたドット単位で印刷を行うことが可能となっている。
【0040】
カートリッジホルダ28にはCYMKのインクカートリッジ28a〜28dが装着されており、インクカートリッジ28a〜28d内の各インクが色別に図示しない印刷ヘッドに供給されるようになっている。ASIC24は、CPU21と所定の信号を送受信しつつヘッド駆動部29に対してCYMKデータに基づく印加電圧データを出力する。同ヘッド駆動部29は、同印加電圧データに基づいて印刷ヘッドに内蔵されたピエゾ素子への印加電圧パターンを生成し、印刷ヘッドに4色のインクを解像度に応じたドット単位で吐出させる。
【0041】
印刷ヘッドのインク吐出面には、4色のインクを吐出する4組のノズル列が印刷ヘッドの主走査方向に並ぶように形成され、ノズル列のそれぞれは複数のノズルが副走査方向に一定の間隔で直線状に配置されている。I/F27に接続されたキャリッジ機構27aや紙送り機構27bは、印刷ヘッドを主走査させたり、適宜改ページ動作を行いながらメディアを順次送り出して副走査を行ったりする。そして、CPU21が、RAM23をワークエリアとして利用しながらROM22に書き込まれたプログラムに従って各部を制御する。すなわち、上記ASIC24に対するデータの出力や、コントロールIC25からの信号の授受、I/F27に対する信号出力によるキャリッジ機構27aおよび紙送り機構27bの制御を実施する。
【0042】
(2)印刷制御プログラムの概略構成:
PC10では、以上のハードウェアを基礎としてバイオスが実行され、その上層にてOSとAPLとが実行される。基本的には、OSがバイオスを介するか直にハードウェアとアクセスし、APLはOSを介してハードウェアとデータなどのやりとりを行う。OSにはハードウェアを制御するための各種のドライバ類が組み込まれ、OSの一部となって各種の制御を実行する。このドライバ類は、CRTI/F17を制御するディスプレイドライバや、プリンタI/F19を制御するプリンタドライバ30等である。同プリンタドライバ30には本発明の印刷制御プログラムの一部が含まれている。
【0043】
プリンタ20では、上述のハードウェアを基礎として所定のOSが実行され、当該OSの制御下において上記ROM22に書き込まれたプログラムを実行する。このプログラムは制御部40としてプリンタ20に常駐し、印刷実行のための処理を行う。同制御部40には本発明の印刷制御プログラムの一部が含まれている。すなわち、PC10とプリンタ20のそれぞれに本印刷制御プログラムの各種機能が搭載されており、本実施形態においてはPC10とプリンタ20の組み合わせが印刷制御装置を構成する。
【0044】
図3は、上記プリンタドライバ30と制御部40との概略構成を模式的に示している。図において、プリンタドライバ30は、画像データ取得モジュール31、解像度変換モジュール32、色変換モジュール33、通信モジュール34を備えており、図示しない機能制御モジュールの制御に基づいて所定の機能を実現しつつ連携動作して画像データを中間データに変換することが可能である。制御部40は、通信モジュール41、ハーフトーン処理モジュール42、インターレース処理モジュール43、印刷制御モジュール44を備えている。制御部40においても各モジュールが図示しない機能制御モジュールの制御に基づいて連係動作して中間データをハーフトーン画像データに変換し、印刷を実行可能である。
【0045】
(3)印刷制御装置が行う処理の概略:
図4,図5は、印刷制御装置が行う処理のゼネラルフローである。ここでは、当該図4,図5および図3によって処理の概略を説明する。上記APLにて印刷指示がなされると、画像データ取得モジュール31は、APLにて作成されたRGB各色の画像データを取得する(ステップS100)。同画像データは、RGBの各色毎に画像をドットマトリクス状の画素で多階調表現したデータであり、ここでは横H画素,縦I画素の画像データであるとする。
【0046】
上記印刷指示を行う際には、ユーザ指定あるいはデフォルトにて印刷解像度(dpi)および印刷サイズ(印刷後の縦横インチ数)を指定しており、解像度変換モジュール32はこれら印刷解像度と印刷サイズを乗じて印刷画素数を取得する(ステップS110)。ここでは印刷画素を横J画素,縦K画素であるとする。さらに、解像度変換モジュール32は、この印刷画素数と画像データの画素数に基づいて中間データを生成する際に必要な倍率を算出し、この倍率で上記画像データを拡大する(ステップS120)。
【0047】
すなわち、縦方向についてはK/(m×I)倍,横方向についてはJ/(n×H)倍に拡大する。この拡大後のデータが中間データとなる。尚、ここで、nは後述するブロックの横画素数であり、mは後述するブロックの縦画素数である。また、この拡大処理では種々の補間処理を実行可能であるが、自然画等で高画質の印刷を実行するためにはキュービックスプライン補間等の3次元補間演算を採用するのが好ましい。また、上述のように画像データは各画素の各色について多階調表現したデータであり、拡大処理では画素を水増ししているので、中間データも各色について多階調表現したデータである。
【0048】
色変換モジュール33は、この中間データにおけるRGB階調値を色インク色に対応したCMYK各色の階調値に変換する色変換処理を行う(ステップS130)。このとき、LUT(ルックアップテーブル)と呼ばれる色変換テーブルを参照して画像データを変換する。本実施形態のLUTは、256階調のRGBそれぞれの階調値をCMYKそれぞれについて256階調とされた階調値に対応させたテーブルであり、例えば、17×17×17の格子点に対応した大量のデータを備えている。変換された中間データにおいては、階調値が大きくなるほどCMYK各成分が大きくなるようにしてある。したがって、階調値が大きくなるほど、印刷媒体上に形成されるドット密度は大きくなる。
【0049】
尚、本実施形態では、CMYKに基づく画像データの階調数も各8ビットを割り当てて階調値0から255の256階調としているが、256階調以外にも様々な階調とすることが可能であることは言うまでもない。さらに、本実施形態では後述する閾値データに登録された閾値の値域にCMYKの階調値域を合わせている。階調値域を合わせるためには上記CMYKの階調値を定数倍するなどの処理を行えばよい。色変換モジュール33が中間データに対して色変換処理を施すと通信モジュール34はこの中間データを取得し、上記プリンタI/F19を介して当該中間データをプリンタ20に転送する(ステップS140)。
【0050】
一方、プリンタ20において制御部40の通信モジュール41は、上記通信I/O26を介してこの中間データが転送されたか否かを監視している。同中間データが転送されると、通信モジュール41は同中間データを取得(ステップS200)し、ハーフトーン処理モジュール42に受け渡す。ハーフトーン処理モジュール42は、上記中間データに対して拡大処理と2値化処理とを同時に実行する(ステップS210)。ROM22にはこの処理に必要なブロック閾値テーブルデータ22bとハーフトーン画像データ22cとが予め記憶されている。
【0051】
ブロック閾値テーブルデータ22bは、ディザマトリクスデータ22aから予め作成されたデータである。ディザマトリクスデータ22aは、N×M個のマトリクス状の画素について閾値を規定したデータであり、図6はその一例を簡易的に示す図である。同図においては縦16画素,横16画素の閾値データを例として示している。すなわち、同図における一つの四角形が一つの画素の閾値に相当する。また、本実施形態においてハーフトーン処理は閾値データ内の縦4画素,横4画素のブロック毎に実施される。図6においては、各画素に相当する閾値を一つの四角形の中に示すとともに、各ブロックの境界を太線で示している。
【0052】
閾値データにはN×M階調の閾値が登録されている。すなわち、同図に示す例では”0”〜”255”を値域とした256階調の閾値が登録されている。また、本実施形態において、各ブロック内には256階調を均等に16分類するとともに各分類から一階調ずつ抽出した閾値が登録してある。具体的には、256階調を16等分すると各分類には16個の閾値が含まれる。すなわち、第1分類には”0”〜”15”の閾値が含まれ、第2分類には”16”〜”31”、、、第16分類には”240”〜”255”の閾値が含まれることになる。
【0053】
この例において、同図左上のブロックには第1分類の閾値”0”,第2分類の閾値”16”が登録されており、第l分類(lは1〜16の自然数)の閾値がそれぞれ一つ登録されている。他のブロックでも同様であり、同図左端の上から2番目のブロックには第1分類の閾値”12”,第2分類の閾値”28”が登録されており、第l分類の閾値がそれぞれ一つ登録されている。ここでは、16×16画素の閾値データについて説明したが、むろん、256×128画素など、他の画素数の閾値データを予め規定することができる。
【0054】
16×16画素であれば閾値の階調数が256であってCMYKの階調数と同一であるが、256×128画素であれば階調数が多くなる。この場合、上述のようにCMYKの階調値を定数倍する処理を実行して閾値域とCMYKの階調値域を合わせればよい。尚、本実施形態において、各ブロックに登録される第l分類の閾値の位置は総て共通である。例えば、第1分類の閾値は各ブロックの左上に登録されている。この構成によれば、後述するハーフトーン画像データを総てのブロックについて共通にすることができ、必要な記憶容量を抑えることができる。
【0055】
ブロック閾値テーブルデータ22bは、上記閾値データに登録された閾値の一つを抽出し、昇順に並べたデータである。すなわち、一つのブロックには上記分類のいずれかに含まれる閾値が一つ登録されているので、上述の例では閾値を昇順に並べると、第1分類から第16分類まで一つずつ閾値が並ぶことになる。図7の左側にはこのブロック閾値テーブルデータを示している。ブロック閾値テーブルデータにおいては、各ブロックについて一つの閾値を抽出しているので、各分類においてブロック閾値テーブルデータがブロックの数だけ存在する。
【0056】
図7においては、各分類毎の閾値をマトリクス状に配置して示している。従って、各分類においては16個(=16×16/4×4)の閾値が存在し、全部で16個の分類についてマトリクス状の閾値が特定されている。具体的には、図7における第1分類の左上の四角形は上記図6に示す閾値データの左上に示すブロック内の最小の閾値(=0)に該当し、図7における第1分類の左端の上から2段目の四角形は上記図6に示す閾値データの左端の上から2段目に示すブロック内の最小の閾値(=12)に該当する。図7における第2分類の左上の四角形は上記図6に示す閾値データの左上に示すブロック内で二番目に小さい閾値(=16)に該当し、図7における第2分類の左端の上から2段目の四角形は上記図6に示す閾値データの左端の上から2段目に示すブロック内で二番目に小さい閾値(=28)に該当する。
【0057】
ハーフトーン画像データ22cは、上記閾値データにおいてディザ処理をした場合のディザ処理後のドット形成状態を示すデータであり、本実施形態においてはドット形成数に対して一通りのデータが保存されている。図7においては、各画素においてドット形成を指定するデータを”1”、ドット非形成を指定するデータを”0”として示している。ハーフトーン処理モジュール42は、上記中間データから所定の一画素を取得し、必要に応じて階調値を定数倍した後に上記ブロック閾値テーブルデータ22bを適用する。
【0058】
そして、中間データの一画素についてn×m画素のデータに変換する処理を各画素に対して実行しハーフトーン処理を行う。このとき、ブロック閾値テーブルデータ22bを参照し、中間データの一画素の階調値とブロック閾値テーブルデータ22bの閾値とを昇順に比較するとともに”比較回数−1”をドット形成数として取得し、当該ドット形成数に対応したハーフトーン画像データを採用する。すなわち、中間データの一画素をこのハーフトーン画像データに変換する。
【0059】
本実施形態では閾値データにおいて各ブロックに登録された閾値が異なるが、上述のように各ブロックには各分類の中から閾値が一つしか登録されていない。従って、上記ブロック閾値テーブルデータと中間データの一画素の階調値とを比較すれば、”比較回数−1”個がそのブロックでのドット形成数である。本実施形態ではこの考え方を利用してドット形成数を取得するとともに、取得したドット形成数から各ブロックのハーフトーン画像データを決定している。ハーフトーン画像データは上記ドット形成数毎に予め決められているので、この決定の際にはブロック内の全画素についてのドット形成/非形成を一度に確定することができる。
【0060】
すなわち、各ブロックに登録された閾値と中間データの一画素の階調値とを比較して閾値より階調値の方が大きい場合にその画素についてドットを形成するように設定するような逐次的な比較処理を行うと、比較回数が常にブロックの画素数と等しくなるところ、ドット形成数を取得するのみでブロック画素数分のハーフトーン画像データを一括して決定することができる。ハーフトーン処理モジュール42において以上のようなハーフトーン処理を行うと、インターレース処理モジュール43はプリンタ20のドットの形成順序を考慮しながらドット形成の有無により表現した印刷データを生成する(ステップS220)。
【0061】
そして、印刷制御モジュール44は、最終的に得られた印刷データにプリンタ20の駆動コマンドデータ等を付加し、これらのデータを上記ASIC24やI/F27に出力することによって印刷を実行する(ステップS230)。この結果、プリンタ20では、印刷ヘッドを駆動して各色インクのドットを印刷媒体上に形成する。すなわち、APLからの画像データに対応したカラー画像が印刷媒体に印刷されることになる。
【0062】
(4)印刷制御装置が行う処理の詳細:
次に、上記ハーフトーン処理モジュール42での処理を実例とともにフローチャートに沿って説明する。図8はハーフトーン処理モジュール42での処理を示すフローチャートであり、図9は処理の実例を示す説明図であり、図10は、画像データと中間データとハーフトーン処理後の印刷画素を模式的に示す図である。図9,図10においては、印刷対象の画像データのいずれかの色を画像データDa,中間データをDiとして示している。また、中間データから抽出される一画素を中間データdi,ブロック閾値テーブルデータに登録された各閾値をブロック閾値BTh,中間データdiを変換した後のデータをハーフトーン画像データHTDaとして示している。
【0063】
図10では、プリンタ20における印刷解像度が2880dpi×2880dpiであり、1800×1260画素の画像データDaをLサイズ(5インチ×3.5インチ)で印刷する場合を例示している。APLによってこの印刷解像度および印刷サイズでの印刷実行が指示されると、画像データ取得モジュール31はステップS100にて1800×1260画素の画像データDaを取得し、解像度変換モジュール32はステップS110にて印刷画素HTDaの横画素数を14400(=2880×5)個,縦画素数を10080(=2880×3.5)個であるとする。
【0064】
そして、ステップS120にて横画素について14400/(4×1800),縦画素について10080/(4×1260)を算出し、これにより横画素を2倍、縦画素を2倍すべきであることを把握するとともに補間処理によって画像データDaを縦横2倍に拡大する。図10に示すようにこの結果得られる3600×2520画素のデータが中間データDiである。プリンタドライバ30においてはこの中間データDiについて色変換処理を行ってCMYKデータとし、プリンタ20に転送する。
【0065】
プリンタ20において通信モジュール41がステップS200にてこの中間データDiを取得すると、ハーフトーン処理モジュール42はこの中間データDiから処理対象となる一つの画素(di)を抽出する(ステップS310)。本実施形態において、ブロック閾値テーブルデータ22bは各分類毎に縦横4個,計16個の閾値を有しており、この閾値のそれぞれがブロック閾値BThである。ハーフトーン処理モジュール42が中間データの一画素を抽出すると、さらにこのブロック閾値BThをROM22から昇順に取得(ステップS320)し、ブロック閾値BThが上記ステップS310で抽出した画素の階調値より大きいと判別するまでステップS320の処理を繰り返すループ処理を行う(ステップS325)。
【0066】
ここで、データを昇順に取得するとは、ステップS320,S325によって実行されるループ処理においてループ処理の回数が増えるに従って大きな値のブロック閾値BThを取得するという意味である。図9においては、上記図7に示すブロック閾値テーブルデータの値を例にして示している。この例では、ブロック閾値テーブルデータ22bの左上の値が第1分類から順に”0”,”16”,”32”、、、”240”になっている。昇順とはループの回数が増加するに従って、この数値を大きくすると言う意味である。各ループにおいては、各分類のブロック閾値BThと上記抽出した中間データdiとを比較する。
【0067】
この処理の後、上記ループ処理にて比較を行った回数xを取得するとともに”x−1”をドット形成数として取得する(ステップS330)。回数xは、初期値を”1”としてxをカウンタにしつつループ処理を行うなどして取得することができる。ハーフトーン画像データHTDaは上述のようにドット形成数毎に記憶されているので、上記ROM22から上記取得したドット形成数に該当するハーフトーン画像データHTDaを読み出し、中間データdiをハーフトーン画像データHTDaに変換する(ステップS335)。
【0068】
図9に示す例では、ステップS310において中間データdiから階調値18の画素を抽出し、ステップS325においてブロック閾値BThと比較している状態を想定している。この状態において、階調値18は第2分類のブロック閾値BTh16と第3分類のブロック閾値BTh32の間に存在する。従って、上記ステップS325における比較回数は3になり、中間データdiはドット形成数”2”のハーフトーン画像データHTDaに変換されることになる。
【0069】
以上の処理の結果、中間データdiの一画素を高速にn×m画素の2値化データに変換したことになる。すなわち、中間データdiの一画素とディザマトリクスデータ22aに登録された複数の閾値(ブロック内の閾値)のそれぞれとを逐次比較すると一画素から複数画素の2値化データを取得することができるが、本実施形態においては、この意味での逐次処理を行わない。その代わりに、ブロック閾値BThと中間データdiとを比較することによってドット形成数を取得する。n×m画素のハーフトーン画像データは予めドット形成数と対応づけられているので、ドット形成数を取得することによって一画素をn×m画素のデータに変換することができる。
【0070】
本実施形態において、ブロック閾値BThはブロックの画素数(図7の例では16個)と等しい個数に分類されているので、上記ステップS320,S325におけるループ処理の最大繰り返し回数はブロックの画素数と等しい。上述の逐次的な比較によるディザ処理ではブロックの画素数分の比較を行うが、本実施形態においては最大でも従来のディザ処理と同数回の比較しか行わない。ほとんどの場合は従来のディザ処理より少ない比較回数で処理を終了する。従って、非常に高速にブロック毎のハーフトーン画像データHTDaを決定することができる。
【0071】
中間データの一画素についてハーフトーン画像データHTDaを決定した後には、ブロック閾値テーブルデータ22bに登録された総てのブロック閾値BThについて中間データdiをハーフトーン画像データHTDaに変換する処理を終了したか否かを判別する(ステップS340)。そして、ステップS340にて総てのブロックについて処理が終了したと判別されなければ、次のブロックに移動、すなわちブロック閾値テーブルデータ22b内の未処理のブロックに関する処理に移行する(ステップS345)。そして、当該未処理のブロックに対応する中間データの一画素を抽出しつつステップS310以降の処理を繰り返す。
【0072】
この処理によってブロック閾値テーブルデータ22bに対応する中間データの全画素について変換処理を行った後には、全中間データDiについてハーフトーン画像データHTDaに変換する処理を終了したか否かを判別する(ステップS350)。そして、ステップS350にて全中間データDiについて処理が終了したと判別されなければ、ブロック閾値テーブルデータ22bを移動、すなわち中間データDi内の未処理の領域にブロック閾値テーブルデータ22bを適用(ステップS355)してステップS310以降の処理を繰り返す。以上の結果、非常に高速に画像データを2値化することができる。
【0073】
図10に示す例では、3600×2520画素の中間データDiの各画素が縦横各4倍に拡大されるので、最終的には、14400×10080画素の印刷画素が生成される。この2値化された印刷画素について上記ステップS220にてインターレース処理を行って、ステップS230にて印刷実行を行う。このとき、プリンタ20にて2880×2880dpiの解像度で印刷を行うので、上述の設定通り、Lサイズでの画像印刷がなされる。この例において、印刷画素は14400×10080画素であり非常に容量の大きなデータである。
【0074】
従って、この大容量のデータをPC10からプリンタ20に転送すると多くの転送時間を要し、印刷処理全体に多くの時間を要してしまう。しかし、この例では、3600×2520画素という小さな容量の中間データをプリンタ20に転送しているので、高速にデータ転送をすることができる。また、PC10にて実行する補間処理は高度な演算を要する場合が多く、プリンタ20にて実行する閾値比較処理とハーフトーン画像データへの変換処理は非常に単純な演算である。
【0075】
プリンタ20においては一般にPC10よりCPUの演算処理能力が低いが、本例で実施する処理は非常に単純なであるため、比較的低能力のプリンタ20でも高速に処理可能である。従って、本例においては非常に高速に処理を終えることができる。尚、本例において中間データは各色の各画素が8bitであり、印刷画素は各画素1bitであるが、印刷画素数は中間データの画素数の16倍であるため、PC10からプリンタ20に印刷画素データを転送するより中間データを転送する方が高速に処理を終えることができる。
【0076】
(5)他の実施形態:
上記実施形態は本発明にかかる印刷制御装置、印刷制御方法および印刷制御プログラムを実現する一例であり、むろん他の構成を採用することも可能である。すなわち、上記実施形態においては、本発明に含まれる複数の技術的思想を反映したディザマトリクスを採用し、このディザマトリクスに基づくハーフトーン処理を行っていた。例えば、ディザマトリクスの一部に相当するブロック毎に閾値と階調値とを比較してブロック毎にハーフトーン画像データを割り当てる点、ディザマトリクス上の階調をL分類して各分類から一階調ずつ抽出して各ブロックに登録する点、各ブロックに登録される第l分類の閾値の位置は総て共通である点等を反映した構成になっている。
【0077】
しかし、これらの一部あるいは一部の組み合わせを反映させた構成や他の技術的思想と組み合わせた構成を採用しても良い。具体的には、上記図6に示すディザマトリクスデータにおいて、各ブロック内の閾値は登録すべき位置や分類が決まっていたが、これらと全く無関係に従来のディザマトリクス、例えば、閾値をランダムに配置したマトリクスを採用しても良い。この場合、各ブロック内の閾値の配置が異なるため、総てのブロックについて一つのドット形成数に対して共通の一つのハーフトーン画像データが対応するとは言えない。
【0078】
しかし、閾値の配置は考えずに一つのドット形成数に対して一つのハーフトーン画像データを対応させておけば、少なくとも、各ブロックから閾値を順番に抽出して作成したブロック閾値テーブルデータを参照して上記図8に示す処理を行うことにより、高速にハーフトーン処理を実施することが可能になる。また、上述のように各ブロックに登録される第l分類の閾値の位置を総て共通にすることにより、ドット形成数毎に一つのハーフトーン画像データを記憶するだけで充分となり、さらに、ドット形成数を取得するのみで総てのブロックにおいてディザマトリクスの階調値パターンに確実に合致したハーフトーン画像データを決定することが可能になる。
【0079】
さらに、ディザマトリクス上の階調をL分類して各分類から一階調ずつ抽出して各ブロックに登録する構成と他の構成と組み合わせることにより非常に高速に処理を行うことが可能になる。その具体的な構成としては、図8に示すフローチャートにおいてステップS320,S325の代わりに以下の処理を行う構成を採用可能である。すなわち、予め各画素の階調値域をL個に分類しておき、ステップS310で取得した中間データの一画素の階調値がいずれの分類に入るのかを判別する。上記ブロック閾値テーブルデータ22bにおいても閾値がL個に分類されているので、上記階調値が第x分類に含まれるとすれば、この階調値と比較すべき閾値はブロック閾値テーブルデータ22bにおける第x分類である。
【0080】
そこで、第x分類のブロック閾値テーブルデータ22bと上記ステップS310で取得した中間データの一画素の階調値とを比較すれば、この一回の比較処理のみでドット形成数を特定することができる。すなわち、閾値より階調値が小さい場合にドット形成数をx個、閾値より階調値が大きい場合にドット形成数を(x+1)個とすることができ、この結果、一回の比較処理のみでハーフトーン画像データを決定することができる。従って、非常に高速にハーフトーン処理を実施することができる。
【0081】
さらに、この構成に加え、ディザマトリクスデータの各ブロックに登録される各閾値において、第x分類(xは1からLの自然数)の閾値と第(x+1)分類の閾値との数値間隔を一定にすれば、ブロック閾値テーブルデータ22bを記憶するための記憶容量を非常に少なくすることができる。すなわち、ブロック閾値テーブルデータ22bにおいては、N×M個の階調をL個(L=n×m)に分類するとともに各分類から一階調ずつ抽出して各ブロック内の閾値としている。
【0082】
従って、この規則に加えて隣り合う分類の閾値の数値間隔を一定にすれば、各ブロックについて少なくとも閾値を一つ記憶しておくことにより、他の閾値は演算にて算出することができる。例えば、第x分類の閾値=第1分類の閾値+(x−1)×N×M/n/mとすればよい。これにより、ブロック閾値テーブルデータ22bを記憶するために必要な記憶容量を非常に少なくすることができる。以上のように技術的思想の一部を利用したりその組み合わせを利用したりすることが可能であり、組み合わせによれば記憶容量の低減と処理速度の高速化を同時に実現することができる。
【0083】
さらに、上記実施形態においては、ブロック閾値テーブルデータ22bと中間データの一画素の階調値とを比較することによって閾値データのブロックに相当する領域のドット形成数を取得し、ドット形成数が何個であっても高速に処理できるようにしていたが、特定のドット形成数について高速化することも可能である。例えば、閾値の最小値とブロック内のいずれかの画素の階調値とを比較し、閾値の最小値が当該階調値より大きければブロック内の全画素をドット非形成にする構成を採用しても処理速度を高速化することができる。
【0084】
また、閾値の最大値とブロック内のいずれかの画素の階調値とを比較し、閾値の最大値が当該階調値より小さければブロック内の全画素でドットを形成する構成を採用しても処理速度を高速化することができる。この場合、最小値や最大値以外の閾値と中間データの一画素の階調値とを比較するために、ROM22にディザマトリクスデータ22aを保存しておく。この場合、ディザマトリクスデータ22aおよびブロック閾値テーブルデータ22bが上記閾値データに該当するし、上記実施形態の場合にはブロック閾値テーブルデータ22bが上記閾値データに該当する。
【0085】
さらに、上述のようにブロック内でのドット形成数に対応したハーフトーン画像データを予め記憶する構成とせず、ブロック内でのドット形成数に達するまで上記閾値データと中間データの一画素の階調値との逐次的な比較を行う構成を採用してもよい。すなわち、上記図6に示すようなディザマトリクスデータ22aのあるブロック内の各閾値と中間データの一画素とを逐次的に比較する場合に、その画素によってそのブロックに形成されるドット数に達した後には、残りの画素について逐次比較することなくドット非形成とすればよい。
【0086】
このための具体的な構成および処理は上記第1の実施形態とほぼ同様であるが、図8のステップS335の代わりにドット形成数に達するまでブロック内の閾値と中間データの一画素の階調値を比較しドット形成状態を決定する処理を行えばよい。この場合には、上記ROM22にディザマトリクスデータ22aを予め保存しておく必要がある。また、ハーフトーン画像データ22cをROM22に保存しておく必要はない。
【0087】
さらに、上記総ての実施形態において閾値データの大きさ(画素数)は上記図6に示すものに限られないし、大きさの変動に伴って閾値データに登録する閾値の値域を変動させることも可能である。また、各ブロックにおいて同じ分類に属する閾値を同じ位置に登録することが必須というわけではない。この場合であって、予めドット形成数毎のハーフトーン画像データを保存しておく場合には、各ブロック毎に別個のハーフトーン画像データを予め記憶しておき、ドット形成数を取得するとともに各ブロックに対応したハーフトーン画像データに変換すればよい。
【0088】
この構成によれば、各ブロックでドット形成パターンに差異を持たせることができるので、印刷物において特定のドットパターン(ディザパターン)を生じさせることはなく、より自然な印刷結果を得ることができる。むろん、各ブロックにおいて同じ分類に属する閾値が必ず一つ存在するように構成するのではなく、分類を考慮せず、閾値データの領域内で閾値をまばらに分散させて閾値データを構成しても良い。
【0089】
さらに、上記実施形態においては、ブロック閾値テーブルデータと中間データの一画素の階調値とを比較することによってドット形成数を取得していたが、むろん、ドットを形成しない画素の数に主眼をおいてもドット形成数に基づく処理と実質的に等価である。ドット非形成数はブロック内の画素数−ドット非形成数となるからである。ドット非形成数に主眼をおく場合には上記図8のステップS320においてブロック閾値データを降順に取得し、ステップS325において閾値が階調値より小さいことを判別すればよい。この結果、比較回数−1がドット非形成数になる。
【0090】
中間データをハーフトーン画像データに変換するためには、ドット非形成数毎にハーフトーン画像データを記憶しておいても良いし、ドット非形成数からドット形成数を算出し、中間データの一画素をドット形成数に対応づけられたハーフトーン画像データに変換しても良い。さらに、比較回数を少なくするという意味では、ドット形成数の分布を考慮した構成にしても良い。すなわち、中間データの階調値に基づいてドット形成数が少ないことがはじめから分かっているときには、上記ステップS320のようにブロック閾値データを昇順に取得するループを行う。ドット形成数が少ないと言うことは、ステップS325での比較回数が少ないことを意味するので、高速に処理を行うことができる。
【0091】
ドット非形成数が少ないこと(あるいはドット形成数が多いこと)がはじめから分かっているときには、ステップS320においてブロック閾値データを降順に取得するループを行う。この場合は降順に比較した方が早期にブロック閾値<階調値という条件を満たす状態を発見できるので、少ない比較回数で高速に処理を行うことができる。ドット形成数が少ないという条件は中間データの画素が低階調(高明度)の場合が該当し、ドット非形成数が少ないという条件は中間データの画素が高階調(低明度)の場合が該当する。
【0092】
従って、中間データの一画素の階調値が低明度域に属するか高明度域に属するかを判別した上で、ブロック閾値データの比較順序を決定しても良い。より具体的な例としては、階調値が階調値域の中央値より低階調側にあるときはブロック閾値データを昇順に比較し、高階調側にあるときはブロック閾値データを降順に比較する構成等を採用可能である。むろん、中央値で分ける構成のみではなく種々の指標に基づいて低階調域と高階調域とを分けることができる。例えば、高階調になるほど単位階調変化に対する明度の低下度合いが鈍くなるインクの特性を考慮して、インクによって表現可能な明度域を2つに分割して高明度域と低明度域とを分けても良い。
【図面の簡単な説明】
【図1】PCの概略構成を示す図である。
【図2】プリンタの概略構成を示す図である。
【図3】プリンタドライバと制御部の概略構成を模式的に示す図である。
【図4】プリンタドライバの処理のフローチャートである。
【図5】プリンタの処理のフローチャートである。
【図6】閾値データの例を簡易的に示す図である。
【図7】ブロック閾値テーブルデータとハーフトーン画像データとを示す図である。
【図8】ハーフトーン処理を示すフローチャートである。
【図9】ハーフトーン処理の実例を示す説明図である。
【図10】各画像データを模式的に示す図である。
【符号の説明】
10…PC、20…プリンタ、22a…ディザマトリクスデータ、22b…ブロック閾値テーブルデータ、22c…ハーフトーン画像データ、30…プリンタドライバ、31…画像データ取得モジュール、32…解像度変換モジュール、33…色変換モジュール、33,41…通信モジュール、42…ハーフトーン処理モジュール、43…インターレース処理モジュール、44…印刷制御モジュール

Claims (15)

  1. ドットマトリクス状の画素で構成される画像について各画素の色を多階調表現した画像データを取得する画像データ取得手段と、
    同取得した画像データの画素数を増大させる拡大処理を行って中間データを取得する中間データ取得手段と、
    複数の画素についてドット形成の有無を決定する閾値を規定した閾値データを記憶する閾値データ記憶手段と、
    n×m(n,mは自然数)画素からなるブロック毎に当該閾値データに規定された閾値と上記中間データの一画素とを比較して当該一画素の中間データからn×m画素についてのドット形成の有無を指定したハーフトーン画像データ生成するハーフトーン処理手段と、
    同ハーフトーン画像データを印刷装置において使用される順番に並べ替えて印刷装置での印刷を実行する印刷実行手段とを備えることを特徴とする印刷制御装置。
  2. 上記ハーフトーン処理手段は、上記ブロック内の閾値の最小値およびまたは最大値と上記中間データの一画素の階調値とを比較し、当該階調値より閾値の最小値の方が大きい場合にはブロック内の全画素についてドットを形成しないように指定し、当該階調値より閾値の最大値の方が小さい場合にはブロック内の全画素についてドットを形成するように指定したハーフトーン画像データを生成することを特徴とする上記請求項1に記載の印刷制御装置。
  3. n×m(n,mは自然数)画素からなるブロックについてディザ処理後のドット形成状態を予め規定したハーフトーン画像データをブロック内のドット形成数毎に記憶するハーフトーン画像データ記憶手段とを備え、
    上記ハーフトーン処理手段は、上記ブロック毎にディザ処理後のドット形成数を取得し、同取得したドット形成数に対応したハーフトーン画像データを上記ハーフトーン画像データ記憶手段から取得し、上記中間データの一画素を当該取得したハーフトーン画像データに変換することを特徴とする上記請求項1に記載の印刷制御装置。
  4. 上記ハーフトーン処理手段は、上記中間データの一画素の階調値と上記ブロック内の各閾値とを順に比較し、当該階調値より閾値の方が大きい場合にはその画素についてドットを形成せず、当該階調値より閾値の方が小さい場合にはその画素についてドットを形成するように指定する処理をドット形成を指定する画素数が当該ブロック内での全ドット形成数に達するかあるいはドット非形成を指定する画素数が当該ブロック内での全ドット非形成数に達するまで行うことを特徴とする上記請求項1に記載の印刷制御装置。
  5. 上記ハーフトーン処理手段は、
    n×m(n,mは自然数)画素からなるブロック毎にディザ処理後のドット形成数あるいはドット非形成の数を取得するドット形成数取得部と、
    上記中間データの一画素の階調値と上記閾値データに規定された各閾値とを順に比較する閾値比較部と、
    同閾値比較部での比較によって当該階調値より閾値の方が大きいとされた場合にはその画素についてドットを形成せず、当該階調値より閾値の方が小さいとされた場合にはその画素についてドットを形成するように指定するハーフトーン処理部と、
    ドット形成を指定する画素数が上記ドット形成数取得部で取得するドット形成数に達するかあるいはドット非形成を指定する画素数が上記ドット形成数取得部で取得するドット非形成の数に達したらそのブロックでの比較処理を中止させて次のブロックでの処理を行うように制御するハーフトーン処理制御部とを備えることを特徴とする上記請求項1に記載の印刷制御装置。
  6. 上記画像データ取得手段と中間データ取得手段とは汎用コンピュータに搭載されており、上記閾値データ記憶手段とハーフトーン処理手段と印刷実行手段とは印刷装置に備えられており、上記汎用コンピュータと上記印刷装置とは相互通信可能な通信線を介して接続されるとともに、上記印刷装置のハーフトーン処理手段は上記通信線を介して上記汎用コンピュータの中間データ取得手段が取得した中間データを取得することを特徴とする上記請求項1〜請求項5のいずれかに記載の印刷制御装置。
  7. 上記画像データがH×I(H,Iは自然数)画素であって、上記印刷装置において印刷する画像がJ×K(J,Kは自然数)画素であるときに、上記中間データ取得手段は上記画像データの横画素数をJ/(n×H)倍するとともに縦画素数をK/(m×I)倍にする拡大処理を実施することを特徴とする上記請求項1〜請求項6のいずれかに記載の印刷制御装置。
  8. 上記閾値データはN×M画素(N,Mは自然数)の閾値を規定したデータであるとともに、n×m画素からなる各ブロック内のデータはN×M個の階調をL個(L=n×m)に分類するとともに各分類から一階調ずつ抽出して閾値としたデータであることを特徴とする上記請求項1〜請求項7のいずれかに記載の印刷制御装置。
  9. 上記閾値データの各ブロックに登録される各閾値において、第x分類(xは1からLの自然数)の閾値と第(x+1)分類の閾値との数値間隔は一定であることを特徴とする上記請求項8に記載の印刷制御装置。
  10. 上記閾値データは上記ブロックのいずれにおいても第L分類の閾値を同じ位置の画素に対応させたデータであり、上記ハーフトーン画像データ記憶手段はドット形成数の値毎に一つのハーフトーン画像データを記憶していることを特徴とする上記請求項8または請求項9のいずれかに記載の印刷制御装置。
  11. 上記閾値データ記憶手段は上記各ブロック内に登録された閾値を昇順あるいは降順に並べたブロック閾値テーブルデータを記憶しており、上記ハーフトーン処理手段は上記中間データの一画素の階調値と当該閾値を昇順に比較して階調値が閾値より小さいと判定された段階で(比較回数−1)個をドット形成数として取得する処理あるいは上記中間データの一画素の階調値と当該閾値を降順に比較して階調値が閾値より大きいと判定された段階で(n×m+1−比較回数)個をドット形成数として取得する処理によってドット形成数を取得することを特徴とする上記請求項3〜請求項10のいずれかに記載の印刷制御装置。
  12. 上記ハーフトーン処理手段は、上記中間データの一画素の階調値が所定の低階調域にあるときは当該階調値を上記閾値と昇順に比較し、上記中間データの一画素の階調値が所定の高階調域にあるときは当該階調値を上記閾値と降順に比較することを特徴とする上記請求項11に記載の印刷制御装置。
  13. 上記閾値データ記憶手段は上記各ブロック内に登録された閾値を昇順に第1分類から第L分類のL個(L=n×m)に分類したブロック閾値テーブルデータを記憶しており、上記ハーフトーン処理手段は、画像データの階調値域を第1分類から第L分類のL個に分割し、上記ブロック内での一画素分の階調値がL個の分類のうち第x分類(xは1からLの自然数)に含まれるときに、上記ブロック閾値テーブルデータを参照して第x分類の閾値と比較し、閾値より階調値が小さい場合にドット形成数をx個、閾値より階調値が大きい場合にドット形成数を(x+1)個とすることを特徴とする上記請求項3〜請求項10のいずれかに記載の印刷制御装置。
  14. ドットマトリクス状の画素で構成される画像について各画素の色を多階調表現した画像データを取得して拡大し、印刷時の各画素についてのドット形成の有無を指定したハーフトーン処理を行いつつ印刷を実行する印刷制御方法であって、
    同取得した画像データの画素数を増大させる拡大処理を行って中間データを取得する中間データ取得工程と、
    複数の画素についてドット形成の有無を決定する閾値を規定した閾値データを記憶する閾値データ記憶工程と、
    n×m(n,mは自然数)画素からなるブロック毎に当該閾値データに規定された閾値と上記中間データの一画素とを比較して当該一画素の中間データからn×m画素についてのドット形成の有無を指定したハーフトーン画像データ生成するハーフトーン処理工程と、
    同ハーフトーン画像データを印刷装置において使用される順番に並べ替えて印刷装置での印刷を実行する印刷実行工程とを備えることを特徴とする印刷制御方法。
  15. ドットマトリクス状の画素で構成される画像について各画素の色を多階調表現した画像データを取得して拡大し、印刷時の各画素についてのドット形成の有無を指定したハーフトーン処理を行いつつ印刷を実行する処理をコンピュータに実現させる印刷制御プログラムであって、
    同取得した画像データの画素数を増大させる拡大処理を行って中間データを取得する中間データ取得機能と、
    複数の画素についてドット形成の有無を決定する閾値を規定した閾値データを記憶する閾値データ記憶機能と、
    n×m(n,mは自然数)画素からなるブロック毎に当該閾値データに規定された閾値と上記中間データの一画素とを比較して当該一画素の中間データからn×m画素についてのドット形成の有無を指定したハーフトーン画像データ生成するハーフトーン処理機能と、
    同ハーフトーン画像データを印刷装置において使用される順番に並べ替えて印刷装置での印刷を実行する印刷実行機能とをコンピュータに実現させることを特徴とする印刷制御プログラム。
JP2003026384A 2003-02-03 2003-02-03 印刷制御装置、印刷制御方法および印刷制御プログラム Pending JP2004241848A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003026384A JP2004241848A (ja) 2003-02-03 2003-02-03 印刷制御装置、印刷制御方法および印刷制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003026384A JP2004241848A (ja) 2003-02-03 2003-02-03 印刷制御装置、印刷制御方法および印刷制御プログラム

Publications (1)

Publication Number Publication Date
JP2004241848A true JP2004241848A (ja) 2004-08-26

Family

ID=32954413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003026384A Pending JP2004241848A (ja) 2003-02-03 2003-02-03 印刷制御装置、印刷制御方法および印刷制御プログラム

Country Status (1)

Country Link
JP (1) JP2004241848A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7813593B2 (en) 2006-02-14 2010-10-12 Seiko Epson Corporation Display of thumbnails of image data
JP2014086966A (ja) * 2012-10-25 2014-05-12 Seiren Co Ltd 記録装置及び記録方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7813593B2 (en) 2006-02-14 2010-10-12 Seiko Epson Corporation Display of thumbnails of image data
JP2014086966A (ja) * 2012-10-25 2014-05-12 Seiren Co Ltd 記録装置及び記録方法

Similar Documents

Publication Publication Date Title
US20090268240A1 (en) Image forming apparatus, control method thereof, and computer program
JP6184196B2 (ja) 画像処理方法及び画像処理装置
JP2006264301A (ja) 印刷装置、印刷プログラム、印刷方法、および画像処理装置、画像処理プログラム、画像処理方法、ならびに前記プログラムを記録した記録媒体
JP6249623B2 (ja) 画像処理方法および画像処理システム
KR102307264B1 (ko) 화상 처리 장치, 화상 처리 방법 및 저장 매체
JP2008067044A (ja) 画像処理装置、画像読取装置、画像処理方法及び画像処理プログラム
JP6184115B2 (ja) 画像処理方法及び画像処理装置
JP2007068202A (ja) 印刷装置、印刷プログラム、印刷方法、および画像処理装置、画像処理プログラム、画像処理方法、ならびに前記プログラムを記録した記録媒体
US8004721B2 (en) Halftone apparatus that provides simultaneous, multiple lines per inch screens
JP4375071B2 (ja) 所定領域内に形成されるドット個数の情報に基づいて画像を出力する画像出力システム
JP3687772B2 (ja) 誤差拡散方法及びシステム
JPH0918732A (ja) 情報処理装置及びその方法
JP2004241848A (ja) 印刷制御装置、印刷制御方法および印刷制御プログラム
JP2007129613A (ja) 画像処理装置及び方法、画像形成装置
US6995873B1 (en) Flexible digital halftoning
JP2000332995A (ja) 画像データ生成方法および記録媒体
WO2015050245A1 (ja) 画像処理装置、印刷装置、画像処理方法及びプログラム
JP2001111829A (ja) ディザ作成装置及び方法並びにプリンタ
EP2571244A2 (en) Image processing apparatus, method, image forming apparatus, and storage medium
US20040227965A1 (en) Dot data creation process with saved memory capacity
JP2006001054A (ja) インクジェット記録装置、インクジェット記録方法、データ生成装置およびプログラム
JP2006205717A (ja) 印刷装置、印刷プログラム、印刷方法、および画像処理装置、画像処理プログラム、画像処理方法、並びに前記プログラムを記録した記録媒体
JP2005295131A (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP3233970B2 (ja) 画像処理方法及び装置
JP2004171050A (ja) 印刷制御装置、印刷制御装置の制御方法、印刷制御装置の制御プログラム、印刷システムおよび印刷装置