(57)【要約】【課題】ハーフトーン処理においてさらなる高速化が望まれていた。【解決手段】ドットマトリクス状の画素で構成される画像について各画素の色を多階調表現した画像データを取得し、同取得した画像データの画素数を増大させる拡大処理を行って中間データを取得し、複数の画素についてドット形成の有無を決定する閾値を規定した閾値データを記憶しておき、ｎ×ｍ（ｎ，ｍは自然数）画素からなるブロック毎に当該閾値データに規定された閾値と上記中間データの一画素とを比較して当該一画素の中間データからｎ×ｍ画素についてのドット形成の有無を指定したハーフトーン画像データ生成し、同ハーフトーン画像データを印刷装置において使用される順番に並べ替えて印刷装置での印刷を実行する。【選択図】  図１０
2004241848.tif 000002
【特許請求の範囲】
【請求項１】
ドットマトリクス状の画素で構成される画像について各画素の色を多階調表現した画像データを取得する画像データ取得手段と、
同取得した画像データの画素数を増大させる拡大処理を行って中間データを取得する中間データ取得手段と、
複数の画素についてドット形成の有無を決定する閾値を規定した閾値データを記憶する閾値データ記憶手段と、
ｎ×ｍ（ｎ，ｍは自然数）画素からなるブロック毎に当該閾値データに規定された閾値と上記中間データの一画素とを比較して当該一画素の中間データからｎ×ｍ画素についてのドット形成の有無を指定したハーフトーン画像データ生成するハーフトーン処理手段と、
同ハーフトーン画像データを印刷装置において使用される順番に並べ替えて印刷装置での印刷を実行する印刷実行手段とを備えることを特徴とする印刷制御装置。
【請求項２】
上記ハーフトーン処理手段は、上記ブロック内の閾値の最小値およびまたは最大値と上記中間データの一画素の階調値とを比較し、当該階調値より閾値の最小値の方が大きい場合にはブロック内の全画素についてドットを形成しないように指定し、当該階調値より閾値の最大値の方が小さい場合にはブロック内の全画素についてドットを形成するように指定したハーフトーン画像データを生成することを特徴とする上記請求項１に記載の印刷制御装置。
【請求項３】
ｎ×ｍ（ｎ，ｍは自然数）画素からなるブロックについてディザ処理後のドット形成状態を予め規定したハーフトーン画像データをブロック内のドット形成数毎に記憶するハーフトーン画像データ記憶手段とを備え、
上記ハーフトーン処理手段は、上記ブロック毎にディザ処理後のドット形成数を取得し、同取得したドット形成数に対応したハーフトーン画像データを上記ハーフトーン画像データ記憶手段から取得し、上記中間データの一画素を当該取得したハーフトーン画像データに変換することを特徴とする上記請求項１に記載の印刷制御装置。
【請求項４】
上記ハーフトーン処理手段は、上記中間データの一画素の階調値と上記ブロック内の各閾値とを順に比較し、当該階調値より閾値の方が大きい場合にはその画素についてドットを形成せず、当該階調値より閾値の方が小さい場合にはその画素についてドットを形成するように指定する処理をドット形成を指定する画素数が当該ブロック内での全ドット形成数に達するかあるいはドット非形成を指定する画素数が当該ブロック内での全ドット非形成数に達するまで行うことを特徴とする上記請求項１に記載の印刷制御装置。
【請求項５】
上記ハーフトーン処理手段は、
ｎ×ｍ（ｎ，ｍは自然数）画素からなるブロック毎にディザ処理後のドット形成数あるいはドット非形成の数を取得するドット形成数取得部と、
上記中間データの一画素の階調値と上記閾値データに規定された各閾値とを順に比較する閾値比較部と、
同閾値比較部での比較によって当該階調値より閾値の方が大きいとされた場合にはその画素についてドットを形成せず、当該階調値より閾値の方が小さいとされた場合にはその画素についてドットを形成するように指定するハーフトーン処理部と、
ドット形成を指定する画素数が上記ドット形成数取得部で取得するドット形成数に達するかあるいはドット非形成を指定する画素数が上記ドット形成数取得部で取得するドット非形成の数に達したらそのブロックでの比較処理を中止させて次のブロックでの処理を行うように制御するハーフトーン処理制御部とを備えることを特徴とする上記請求項１に記載の印刷制御装置。
【請求項６】
上記画像データ取得手段と中間データ取得手段とは汎用コンピュータに搭載されており、上記閾値データ記憶手段とハーフトーン処理手段と印刷実行手段とは印刷装置に備えられており、上記汎用コンピュータと上記印刷装置とは相互通信可能な通信線を介して接続されるとともに、上記印刷装置のハーフトーン処理手段は上記通信線を介して上記汎用コンピュータの中間データ取得手段が取得した中間データを取得することを特徴とする上記請求項１〜請求項５のいずれかに記載の印刷制御装置。
【請求項７】
上記画像データがＨ×Ｉ（Ｈ，Ｉは自然数）画素であって、上記印刷装置において印刷する画像がＪ×Ｋ（Ｊ，Ｋは自然数）画素であるときに、上記中間データ取得手段は上記画像データの横画素数をＪ／（ｎ×Ｈ）倍するとともに縦画素数をＫ／（ｍ×Ｉ）倍にする拡大処理を実施することを特徴とする上記請求項１〜請求項６のいずれかに記載の印刷制御装置。
【請求項８】
上記閾値データはＮ×Ｍ画素（Ｎ，Ｍは自然数）の閾値を規定したデータであるとともに、ｎ×ｍ画素からなる各ブロック内のデータはＮ×Ｍ個の階調をＬ個（Ｌ＝ｎ×ｍ）に分類するとともに各分類から一階調ずつ抽出して閾値としたデータであることを特徴とする上記請求項１〜請求項７のいずれかに記載の印刷制御装置。
【請求項９】
上記閾値データの各ブロックに登録される各閾値において、第ｘ分類（ｘは１からＬの自然数）の閾値と第（ｘ＋１）分類の閾値との数値間隔は一定であることを特徴とする上記請求項８に記載の印刷制御装置。
【請求項１０】
上記閾値データは上記ブロックのいずれにおいても第Ｌ分類の閾値を同じ位置の画素に対応させたデータであり、上記ハーフトーン画像データ記憶手段はドット形成数の値毎に一つのハーフトーン画像データを記憶していることを特徴とする上記請求項８または請求項９のいずれかに記載の印刷制御装置。
【請求項１１】
上記閾値データ記憶手段は上記各ブロック内に登録された閾値を昇順あるいは降順に並べたブロック閾値テーブルデータを記憶しており、上記ハーフトーン処理手段は上記中間データの一画素の階調値と当該閾値を昇順に比較して階調値が閾値より小さいと判定された段階で（比較回数−１）個をドット形成数として取得する処理あるいは上記中間データの一画素の階調値と当該閾値を降順に比較して階調値が閾値より大きいと判定された段階で（ｎ×ｍ＋１−比較回数）個をドット形成数として取得する処理によってドット形成数を取得することを特徴とする上記請求項３〜請求項１０のいずれかに記載の印刷制御装置。
【請求項１２】
上記ハーフトーン処理手段は、上記中間データの一画素の階調値が所定の低階調域にあるときは当該階調値を上記閾値と昇順に比較し、上記中間データの一画素の階調値が所定の高階調域にあるときは当該階調値を上記閾値と降順に比較することを特徴とする上記請求項１１に記載の印刷制御装置。
【請求項１３】
上記閾値データ記憶手段は上記各ブロック内に登録された閾値を昇順に第１分類から第Ｌ分類のＬ個（Ｌ＝ｎ×ｍ）に分類したブロック閾値テーブルデータを記憶しており、上記ハーフトーン処理手段は、画像データの階調値域を第１分類から第Ｌ分類のＬ個に分割し、上記ブロック内での一画素分の階調値がＬ個の分類のうち第ｘ分類（ｘは１からＬの自然数）に含まれるときに、上記ブロック閾値テーブルデータを参照して第ｘ分類の閾値と比較し、閾値より階調値が小さい場合にドット形成数をｘ個、閾値より階調値が大きい場合にドット形成数を（ｘ＋１）個とすることを特徴とする上記請求項３〜請求項１０のいずれかに記載の印刷制御装置。
【請求項１４】
ドットマトリクス状の画素で構成される画像について各画素の色を多階調表現した画像データを取得して拡大し、印刷時の各画素についてのドット形成の有無を指定したハーフトーン処理を行いつつ印刷を実行する印刷制御方法であって、
同取得した画像データの画素数を増大させる拡大処理を行って中間データを取得する中間データ取得工程と、
複数の画素についてドット形成の有無を決定する閾値を規定した閾値データを記憶する閾値データ記憶工程と、
ｎ×ｍ（ｎ，ｍは自然数）画素からなるブロック毎に当該閾値データに規定された閾値と上記中間データの一画素とを比較して当該一画素の中間データからｎ×ｍ画素についてのドット形成の有無を指定したハーフトーン画像データ生成するハーフトーン処理工程と、
同ハーフトーン画像データを印刷装置において使用される順番に並べ替えて印刷装置での印刷を実行する印刷実行工程とを備えることを特徴とする印刷制御方法。
【請求項１５】
ドットマトリクス状の画素で構成される画像について各画素の色を多階調表現した画像データを取得して拡大し、印刷時の各画素についてのドット形成の有無を指定したハーフトーン処理を行いつつ印刷を実行する処理をコンピュータに実現させる印刷制御プログラムであって、
同取得した画像データの画素数を増大させる拡大処理を行って中間データを取得する中間データ取得機能と、
複数の画素についてドット形成の有無を決定する閾値を規定した閾値データを記憶する閾値データ記憶機能と、
ｎ×ｍ（ｎ，ｍは自然数）画素からなるブロック毎に当該閾値データに規定された閾値と上記中間データの一画素とを比較して当該一画素の中間データからｎ×ｍ画素についてのドット形成の有無を指定したハーフトーン画像データ生成するハーフトーン処理機能と、
同ハーフトーン画像データを印刷装置において使用される順番に並べ替えて印刷装置での印刷を実行する印刷実行機能とをコンピュータに実現させることを特徴とする印刷制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷制御装置、印刷制御方法および印刷制御プログラムに関する。
【０００２】
【従来の技術】
従来、画像を印刷する際には、画像をドットマトリクス状の画素で多階調表現した画像データを入力し、プリンタで表現可能な階調数に合わせるため、入力画像データをドット形成の有無により各画素の階調を表現したハーフトーンデータに変換する。このハーフトーン処理としては、比較的低速であるが比較的高画質の画像が得られる誤差拡散法や比較的高速であるが比較的低画質の画像が得られるディザ法等、種々の手法が知られている（例えば、特許文献１参照。）。
【０００３】
【特許文献１】
特開２００２−１８５７８９号公報
【０００４】
【発明が解決しようとする課題】
上述した従来のハーフトーン処理においては、さらなる高速化が望まれていた。すなわち、近年のプリンタの高性能化に伴って印刷時の解像度が飛躍的に向上し、高解像度の画像を印刷するために非常に多数の画素数からなる画像を印刷することが可能になった。このように多数の画素数からなる画像を印刷する場合には非常に多数の演算を繰り返すため、多くの時間を必要とし、印刷処理の全時間に大きな影響を与えてしまう。
本発明は、上記課題にかんがみてなされたもので、高速にハーフトーン処理を実行可能な印刷制御装置、印刷制御方法および印刷制御プログラムの提供を目的とする。
【０００５】
【課題を解決するための手段および発明の効果】
上記目的を達成するため、本発明では元画像を印刷に必要な画素数に拡大するに当たり、まず元画像を印刷に必要な画素数に満たない画素数に拡大し、さらにハーフトーン処理とともに拡大を実行可能な処理を行って最終的に必要とされる画素数のデータを生成する。このために、印刷制御装置では、ハーフトーン処理と同時に一画素をｎ×ｍ画素に変換する処理を採用し、画像データを拡大して中間データを生成した後に当該中間データに対してこのハーフトーン処理を適用する。すなわち、補間演算等によって画像データを拡大するに当たり印刷に必要な画素数になるまで拡大を実施せず、中間データの一画素と閾値データとを比較することによって一画素をｎ×ｍ画素のハーフトーン画像データに変換する。このハーフトーン画像データでの各画素が印刷時の各ドットに該当する。
【０００６】
従って、補間演算等においては元の画像データを印刷時に必要な画素数になるよう一度に拡大する場合と比較して小さな倍率で拡大すれば十分であり、少ない時間で補間演算を終えることができる。また、補間処理には多くの種類があり、画質を低下させないように補間演算を行う場合には一般的に演算量が非常に多くなるとともに閾値と階調値とを比較する処理の方が高速である。従って、上記補間演算量の抑制と相俟って処理速度が非常に高速になる。
【０００７】
尚、本発明におけるハーフトーン処理手段においては、中間データの一画素とブロック内の各閾値とを逐次比較してもよいが、後述のように冗長な比較処理を省略して比較処理回数を低減しつつｎ×ｍ画素のドット形成の有無を指定してもよく、種々の手法を採用可能である。中間データの一画素とブロック内の各閾値とを逐次比較する構成を採用しない場合には、閾値データとしてブロック内の全画素について閾値を指定したデータでなくても十分である。ここで、ブロックはハーフトーン画像データを生成する際の画素の処理単位であり、閾値データ内のｎ×ｍ画素が一つのブロックである。本発明においては、中間データの一画素からブロックの個数と等しい画素数のハーフトーン画像データを生成する。
【０００８】
さらに、このハーフトーン処理では閾値データに従ってドット形成の有無を指定することができればよいので、単純な構成としてはドットを形成する状態と形成しない状態との２つの状態を形成すればよいが、むろん、ドット径の大きさを変動させて１画素につき４階調有するような構成に適用しても良い。また、閾値データにおいては中間データの一画素の階調値と比較される閾値を登録していればよく、当該階調値と閾値とを直接比較する場合は、両者の値域が一致している必要があるが、階調値と閾値とのいずれかを定数倍してから比較しても良く、この場合、定数倍する前に値域が一致している必要はない。また、印刷実行手段では、ハーフトーン画像データに基づいて印刷を実行することができればよく、むろん、画像データを使用順に並べ替える処理の他、印刷装置に対して当該印刷装置で解釈可能なコマンドを出力するなど種々の構成を採用可能である。
【０００９】
ハーフトーン処理の手法において冗長な比較処理を省略する手法としては種々の手法を採用可能である。例えば、まず、中間データの一画素の階調値と上記ブロック内の閾値の最小値や最大値とを比較し、当該階調値が閾値の最小値に満たない場合や閾値の最大値を超える場合についてはブロック内の全画素における比較を行わない構成を採用可能である。この構成によれば、ドットを形成する画素のブロック内での位置を識別することなくブロック内の全画素についてドット形成あるいはドット非形成にして次のブロックでの処理に移ることができる。従って、閾値データの閾値と画像データの階調値とについて不要な比較をすることなく次のブロックでの処理に移ることができ、処理速度を高速化することができる。
【００１０】
上記ブロックはｎ×ｍ画素の画素から構成されていれば良く、これらの画素はディザマトリクスの一部である。すなわち、ディザマトリクスではｎ×ｍ画素より多数の画素について閾値を規定している。ディザマトリクスの全体について閾値と画像データの階調値とを比較する場合には、その画像データについてディザマトリクスと比較した際に得られるドット形成数あるいはドット非形成数に達するまで非常に多数回の比較を行う必要がある。しかし、ディザマトリクスより小さいブロック毎に比較を行うと画像データと比較した際に得られるドット形成数あるいはドット非形成数にすぐに到達する。従って、冗長な比較処理をより多く排除することができる。
【００１１】
また、閾値の最小値や最大値に基づいて冗長な処理を排除するとともにこれら最小値や最大値以外の閾値について冗長な処理を排除する構成を採用することも可能である。このために、中間データの一画素の階調値とブロック内の閾値とによってディザ処理をした場合のディザ処理後のハーフトーン画像データを予めブロック内のドット形成数毎に記憶しておく。この構成において、各ブロック毎の処理に際してディザ処理後のドット形成数を取得すれば、画素毎の逐次的な比較をすることなく拡大と同時にハーフトーン画像データを取得することができ、非常に高速にディザ処理を行うことができる。
【００１２】
すなわち、予めドット形成数毎にディザ処理後のハーフトーン画像データを記憶しておく。そして、階調値と閾値とを比較したとしたら合計何個のドットを形成することになるか、あるいはドットを形成しない画素が何個あるかを各ブロック毎に取得する。ドット形成数が判明すれば、中間データの一画素を当該ドット形成数に対応したハーフトーン画像データに変換することにより、ディザ処理において各画素の閾値と中間データの一画素の階調値とを逐一比較することなく各ブロック内のドット形成、非形成を決定することができる。
【００１３】
各ブロック毎の閾値は予め決定されており、この閾値からディザ処理後のハーフトーン画像データをドット形成数毎に予め決定することができる。各ブロック毎に当該ディザ処理後のハーフトーン画像データを変更しても良いし、各ブロック毎に共通にしても良い。閾値データに登録する閾値の大小関係の順序および位置を各ブロック毎に共通にしておけば、ディザ処理後のハーフトーン画像データを全ブロック共通にすることができる。
【００１４】
以上のように、ドット形成数毎にディザ処理後のハーフトーン画像データを記憶することにより、逐次的な閾値判別をすることなく中間データの一画素をｎ×ｍ画素のハーフトーン画像データに変換することができる。むろん、この処理は、上述のように閾値の最小値に満たない階調値や閾値の最大値を超える階調値についてブロックの全画素についてドットを形成せず、あるいは全画素についてドットを形成する処理も含んでいる。
【００１５】
さらに、ハーフトーン処理手段での他の構成例として、閾値データの各ブロック内の閾値と中間データの一画素の階調値とを順に比較してドット形成あるいはドット非形成を決定しつつも、各ブロックで必要な全ドット形成数あるいはドット非形成数に達したら後の比較は省略して次のブロックの処理に移行する構成を採用してもよい。すなわち、中間データの階調値とブロック内の各閾値とを比較する処理を行うに当たり、各ブロックで必要なドット形成数あるいはドット非形成数に達したらそれ以後の閾値比較処理を行わないので、冗長な処理を排除して処理を高速化することができる。
【００１６】
上記ブロックはｎ×ｍ画素の画素から構成されていれば良く、これらの画素は閾値データの一部である。すなわち、閾値データではｎ×ｍ画素より多数の画素について閾値を規定している。閾値データの全体について閾値と中間データの一画素の階調値とを比較する場合には、その中間データの一画素について閾値データと比較した際に得られるドット形成数あるいはドット非形成数に達するまで非常に多数回の比較を行う必要がある。しかし、閾値データより小さいブロック毎に処理すれば、中間データの一画素と階調値とを比較した際に得られるドット形成数あるいはドット非形成数は高々ブロックの画素数のオーダーであり、すぐにそのドット形成数に到達する。従って、冗長な比較処理をより多く排除することができる。
【００１７】
また、各ブロックで必要なドット形成数あるいはドット非形成数は種々の手法によって取得することができ、当該ドット形成数あるいはドット非形成の数を取得することにより、必要な数だけドットを形成しあるいは形成しないように指定した後の冗長な比較処理を的確に排除し、処理速度を高速化することができる。すなわち、ディザ処理において各画素の閾値と中間データの一画素の階調値との総てについて逐一比較するのではなく、各ブロック毎に閾値を比較したとしたら合計何個のドットを形成することになるか、あるいはドットを形成しない画素が何個あるかを取得する。これにより、冗長な比較であるか否かを判断することができる。
【００１８】
以上のように、本発明にかかる印刷制御装置によれば画像を印刷する際にハーフトーン画像データを作成する処理を非常に高速に実施することができる。この印刷制御装置は、パーソナルコンピュータ等の汎用コンピュータ単体で構成してもよいし、印刷装置自体にこの印刷制御装置を組み込んでもよい。さらに、本発明にかかる印刷制御装置の好適な構成例としては、画像データ取得手段と中間データ取得手段とを汎用コンピュータに搭載し、閾値データ記憶手段とハーフトーン処理手段と印刷実行手段とを印刷装置に搭載する構成が挙げられる。
【００１９】
すなわち、汎用コンピュータにおいて中間データを生成するとともに中間データを印刷装置に転送し、印刷装置内でハーフトーン処理を実行して印刷を行う。特に、近年の印刷装置においては性能が飛躍的に向上しており、一ドットのインク量を非常に微小な量にして高精細印刷を実現している。このような印刷装置においては、一ドットの径が非常に小さいため印刷画像においてディザ処理の欠点、すなわち閾値データ（あるいはブロック）の大きさに対応したディザパターンが現れる現象が発生しにくい。従って、一般に高画質な画像を得るために行うハーフトーン処理である誤差拡散処理を行わなくても高画質な画像を印刷することができる。誤差拡散処理は一般にディザ処理より低速であるので、本発明によれば、高速処理を実行しつつも高画質の画像印刷を行うことができる。
【００２０】
さらに、一ドットのインク量が微小な量であることに伴って画像印刷時の解像度が非常に高くなり、印刷に必要な画素数が非常に多くなる。従って、この画素数の画像を表現するためのデータ容量は非常に大きくなる。一般的な印刷制御においては、汎用コンピュータ等から印刷装置にデータを転送して印刷を実行するが、あまりにデータ容量が大きいとこのデータ転送が印刷処理全体に対してボトルネックとなり、結果として印刷速度を低下させてしまう。しかし、本発明における中間データは、印刷実行に必要な画素数より少ない画素数であるのでデータ容量が少なく、上記近年の印刷装置における高精細印刷時にもデータ転送がボトルネックにならない。従って、大容量の画像データを扱って印刷を実行する際にも高速に印刷を実行することが可能になる。
【００２１】
中間データ取得手段においては、印刷時に必要とされる画素数より少ない画素数になるように元の画像データを拡大することができればよいが、印刷時に必要とされる画素数と上記ブロックの画素数とが決定している場合に、この中間データ取得手段における拡大倍率を決定することができる。すなわち、画像データがＨ×Ｉ画素であって、上記印刷装置において印刷する画像がＪ×Ｋ画素であるときに、画像データの横画素数をＪ／（ｎ×Ｈ）倍するとともに縦画素数をＫ／（ｍ×Ｉ）倍にすればよい。この拡大処理を実施しておけば、後にハーフトーン処理を行うことによって、印刷時に必要な画素をＪ×Ｋ画素にすることができる。
【００２２】
印刷する画像の画素数を取得する手法としては種々の手法を採用可能である。例えば、一般的な印刷においては、デフォルトあるいはユーザ指定によって印刷解像度や印刷時の大きさ（縦横の長さ等）等が特定される。この場合に印刷解像度と印刷時の大きさとを乗じれば、印刷時の画素数を取得することができる。ブロックの画素数は予めｎ×ｍ画素と決まっているし、画像データの画素数は画像データを取得した時点で把握することができる。従って、上記式によって縦画素と横画素との倍率を取得することができる。
【００２３】
予め記憶する閾値データの構成例として、Ｎ×Ｍ画素（Ｎ，Ｍは自然数）の閾値を規定し、その中にｎ×ｍ画素からなる各ブロックを考え、当該ブロック内のデータはＮ×Ｍ個の階調をＬ個（Ｌ＝ｎ×ｍ）に分類するとともに各分類から一階調ずつ抽出して閾値とすることもできる。この構成を採用すると、閾値が属するＬ個の分類からそれぞれ一つずつのみが各ブロックに登録されることになる。従って、閾値は各ブロックに対してまばらに振り分けられ、ディザ処理後に画像の位置によってドット形成に差異が生じにくくなる。さらに、各ブロックにＬ個の分類のそれぞれが登録されているので、Ｌ個の分類のうち第ｘ分類（ｘは１〜Ｌ）に入る閾値の位置を各ブロック毎に共通の値にすれば、上記ディザ処理後のハーフトーン画像データを全ブロックについて共通にすることができる。また、この構造の閾値データであれば上述の請求項１３と組み合わせて非常に高速にドット形成数を決定することが可能になる。
【００２４】
さらに、閾値データにおいて、各ブロックに登録される閾値相互のピッチを一定にしても良い。すなわち、第ｘ分類（ｘは１からＬの自然数）の閾値と第（ｘ＋１）分類の閾値との数値間隔を一定とする。具体的には、（第１分類の閾値＋（ｘ−１）×Ｎ×Ｍ／ｎ／ｍ）などの式によって第ｘ分類の閾値を決定することができる。この式によれば、第１分類の閾値を決定するのみで残りの閾値を閾値データの画素数およびブロックの画素数によって算出することができる。従って、第１分類の閾値のみを記憶すれば充分であり、閾値データのために必要とされる記憶容量を抑えることができる。
【００２５】
さらに、閾値データとしては、上記ブロックのいずれにおいても第Ｌ分類の閾値を同じ位置の画素に対応させたデータとすることが好ましい。かかる構成によれば、ドット形成数が同じ場合に閾値データに基づいて決定されるハーフトーン画像データも同じになる。従って、ドット形成数の値毎に一つのハーフトーン画像データを記憶するのみで充分な構成を確実に構築することができる。この結果、ハーフトーン画像データを記憶するための記憶容量を抑えることができる。
【００２６】
さらに、ハーフトーン処理手段においては各ブロック毎にドット形成数あるいはドット非形成の数を取得すれば良く、種々の構成を採用可能である。その一例として、各ブロックに登録された閾値を昇順あるいは降順に並べたブロック閾値テーブルデータを利用することができる。このブロック閾値テーブルデータは、各ブロック内に登録された閾値の最小値を抽出してマトリクス状に並べることにより第１のブロック閾値テーブルデータとし、２番目に小さい閾値を抽出してマトリクス状に並べることにより第２のブロック閾値テーブルデータとするなどして形成することができる。この場合、ブロック閾値テーブルデータは閾値データがＮ×Ｍ画素であり、各ブロックの画素がｎ×ｍ画素であるときに（Ｎ／ｎ）×（Ｍ／ｍ）個の要素からなるマトリクスが昇順あるいは降順にｎ×ｍ個形成される。
【００２７】
このブロック閾値テーブルデータを記憶していれば、上記中間データの一画素の階調値と当該ブロック閾値テーブルデータとを比較することによってドット形成数を取得することができる。すなわち、中間データの一画素の階調値とブロック閾値テーブルデータの閾値とを閾値が小さい方から順に（昇順に）比較すれば、第ｘ番目の閾値についての比較で階調値が閾値を下回ったときにドット形成数がｘ−１（比較回数−１）とすることができる。
【００２８】
むろん、降順でも同様であり、中間データの一画素の階調値とブロック閾値テーブルデータの閾値とを閾値が大きい方から順に比較すれば、第ｘ番目の比較で階調値が閾値を上回ったことによってドット非形成数をｘ−１（比較回数−１）とすることができる。従って、この場合、ドット形成数は（ｎ×ｍ＋１−比較回数）個とすることができる。比較回数は最大でｎ×ｍ（各ブロックについてのブロック閾値テーブルデータの数）個であるから、最大でも閾値と階調値との逐次的な比較での処理回数と同じであるし、ほとんどの場合それより少ない処理回数で次のブロックの処理へ移行することができる。従って、ハーフトーン処理の速度が非常に速くなる。
【００２９】
この構成において、階調値が閾値を下回るあるいは上回ることを少ない比較回数で見つけることができれば、より速度を向上することができる。このために、中間データの一画素の階調値が所定の低階調域にあるときは当該階調値を上記閾値と昇順に比較し、上記中間データの一画素の階調値が所定の高階調域にあるときは当該階調値を上記閾値と降順に比較すると好ましい。すなわち、低階調域であればドット形成数は少なく、高階調域ではドット非形成数が少ないので、低階調域で昇順、高階調域で降順に比較すれば、非常に早い段階で閾値と階調値との比較を終了することができる。低階調域はドット形成数が少ない領域であり、高階調域はドット形成数が多い領域であれば良く、中間データの階調値域を２分して階調値が小さい方の階調域に属する場合は低階調域とし、大きい方の階調域に属する場合は高階調とするなど種々の構成を採用可能である。
【００３０】
さらに、ドット形成数を取得する他の構成として、ブロック閾値テーブルデータにおける閾値および中間データの階調値域を上記ブロック内の画素数で除してＬ個に分類し、階調値が第ｘ分類（ｘは１からＬの自然数）に含まれるときに第ｘ分類の閾値と比較し、閾値より階調値が小さい場合にドット形成数をｘ個、閾値より階調値が大きい場合にドット形成数を（ｘ＋１）個としてもよい。すなわち、ドット形成数を決定するために中間データの階調値と比較する閾値として最も重要なものは階調値前後の閾値である。そこで、上記分類によって比較すべき閾値を類推することにより、高速に比較すべき閾値を発見することができ、閾値と階調値とを順次比較してドット形成数を決定する構成より非常に高速に処理を行うことができる。尚、中間データの階調値域をＬ個に分割する際にその分割手法は種々の手法を採用可能であるが、均等に分割したり、ドット形成数の増加とともに明度の低下率が鈍くなるインクの一般的性質に鑑みて低階調域では階調を細かく分割する構成にしても良い。
【００３１】
ところで、上述した印刷制御装置は、単独で実施される場合もあるし、ある機器に組み込まれた状態で他の方法とともに実施されることもあるなど、発明の思想としては各種の態様を含むものであって、適宜、変更可能である。また、上述した画像データを変換する際の手法は、所定の手順に従って処理を進めていくうえで、その根底にはその手順に発明が存在するということは当然である。したがって、本発明は方法としても適用可能であり、請求項１４にかかる発明においても、基本的には同様の作用となる。
【００３２】
本発明を実施しようとする際に、印刷制御装置にて所定のプログラムを実行させる場合もある。そこで、そのプログラムとしても適用可能であり、請求項１５にかかる発明においても、基本的には同様の作用となる。むろん、請求項２〜請求項１３に記載された構成を上記方法やプログラムや印刷制御装置に対応させることも可能であることは言うまでもない。また、いかなる記憶媒体もプログラムを提供するために使用可能である。例えば、磁気記録媒体や光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一部がソフトウェアであって、一部がハードウェアで実現される場合においても本発明の思想において全く異なるものではなく、一部を記録媒体上に記録しておいて必要に応じて適宜読み込む形態のものも含まれる。さらに、一次複製品、二次複製品などの複製段階については全く問う余地なく同等である。
【００３３】
【発明の実施の形態】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）印刷制御装置の構成：
（２）印刷制御プログラムの概略構成：
（３）印刷制御装置が行う処理の概略：
（４）印刷制御装置が行う処理の詳細：
（５）他の実施形態：
【００３４】
（１）印刷制御装置の構成：
図１は、本発明の第一の実施形態にかかる印刷制御装置の概略構成を示している。印刷制御装置は汎用的なパーソナルコンピュータ（ＰＣ）１０によって構成されている。同ＰＣ１０は演算処理の中枢をなすＣＰＵ１１を備えており、このＣＰＵ１１はシステムバス１０ａを介してＰＣ１０全体の制御を行う。同システムバス１０ａには、ＲＯＭ１２、ＲＡＭ１３、ハードディスクドライブ１４やＣＤ−ＲＯＭドライブ１５、入力インターフェイス（入力Ｉ／Ｆ）１６、ＣＲＴインターフェイス（ＣＲＴＩ／Ｆ）１７、通信インターフェイス（通信Ｉ／Ｆ）１８、プリンタインターフェイス（プリンタＩ／Ｆ）１９等が接続されている。
【００３５】
本実施形態のＰＣ１０はいわゆるデスクトップ型ＰＣであり、構成を簡略化して説明している。むろん、ＰＣ１０にはコンピュータとして一般的な構成を有するものを採用することができ、ノート型であるとか、モバイル対応のものであってもよい。また、印刷制御装置に適用可能なコンピュータは、ＰＣに限定されるものではないし、複数のコンピュータによる分散処理を行う構成であっても良い。
【００３６】
ハードディスクドライブ１４には、ソフトウェアとしてオペレーティングシステム（ＯＳ）や文書情報や画像情報を作成可能なアプリケーションプログラム（ＡＰＬ）等が格納されており、これらのソフトウェアは、実行時にＣＰＵ１１によって適宜ＲＡＭ１３に転送される。そして、ＣＰＵ１１は、ＲＡＭ１３を一時的なワークエリアとして適宜アクセスしながら種々のプログラムを実行することになる。
【００３７】
入力Ｉ／Ｆ１６には、キーボード１６ａやマウス１６ｂが操作用入力機器として接続されるとともに、図示しないスキャナやデジタルカメラ等も接続されるようになっている。また、ＣＲＴＩ／Ｆ１７には、表示用のディスプレイ１７ａが接続されている。さらに、プリンタＩ／Ｆ１９には、パラレルＩ／Ｆケーブルを介してプリンタ２０が接続されている。むろん、プリンタ２０との接続Ｉ／ＦはパラレルＩ／Ｆに限られる必要もなく、シリアルＩ／ＦやＳＣＳＩ、ＵＳＢ接続など種々の接続態様を採用可能であるし、今後開発されるいかなる接続態様であっても同様である。
【００３８】
なお、本発明の印刷制御プログラムを記憶したハードディスクドライブ１４は印刷制御プログラムを記録した媒体となるが、本印刷制御プログラムを格納可能な記録媒体はハードディスクに限定されるものではない。例えば、ＣＤ−ＲＯＭやフレキシブルディスクであってもよい。これらの記録媒体に記録されたソフトウェアはＣＤ−ＲＯＭドライブ１５や図示しないフレキシブルディスクドライブを介して読み込まれ、ハードディスクドライブ１４にインストールされて、ＣＰＵ１１によってＲＡＭ１３上に読み込まれて各種処理が実行されることになる。また、記録媒体は、これらに限定されず、光磁気ディスクや半導体デバイスである不揮発性メモリなどであってもよい。さらに、システムバス１０ａに接続されたモデム等の通信Ｉ／Ｆ１８をインターネット網に接続し、種々のプログラムを格納したサーバにアクセスして本印刷制御プログラムをダウンロードすることも可能である。
【００３９】
図２に示すように、プリンタ２０では、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＡＳＩＣ２４、コントロールＩＣ２５、通信Ｉ／Ｏ２６、Ｉ／Ｆ２７がバス２０ａを介して接続されている。通信Ｉ／Ｏ２６はＰＣ１０のプリンタＩ／Ｆ１９と接続されており、プリンタ２０は通信Ｉ／Ｏ２６を介してＰＣ１０から送信される中間データや印刷コマンド等からなるデータを受信する。また、ＰＣ１０から各種要求を受信したとき、通信Ｉ／Ｏ２６は対応する情報をＰＣ１０に出力する。本プリンタ２０は印刷時の解像度として２８８０×２８８０ｄｐｉ、２８８０×１４４０ｄｐｉ、１４４０×７２０ｄｐｉ等を選択可能となっており、ＰＣ１０から通信Ｉ／Ｏ２６を介して解像度の選択情報を入手してＲＡＭ２３に記憶しておき、解像度に応じたドット単位で印刷を行うことが可能となっている。
【００４０】
カートリッジホルダ２８にはＣＹＭＫのインクカートリッジ２８ａ〜２８ｄが装着されており、インクカートリッジ２８ａ〜２８ｄ内の各インクが色別に図示しない印刷ヘッドに供給されるようになっている。ＡＳＩＣ２４は、ＣＰＵ２１と所定の信号を送受信しつつヘッド駆動部２９に対してＣＹＭＫデータに基づく印加電圧データを出力する。同ヘッド駆動部２９は、同印加電圧データに基づいて印刷ヘッドに内蔵されたピエゾ素子への印加電圧パターンを生成し、印刷ヘッドに４色のインクを解像度に応じたドット単位で吐出させる。
【００４１】
印刷ヘッドのインク吐出面には、４色のインクを吐出する４組のノズル列が印刷ヘッドの主走査方向に並ぶように形成され、ノズル列のそれぞれは複数のノズルが副走査方向に一定の間隔で直線状に配置されている。Ｉ／Ｆ２７に接続されたキャリッジ機構２７ａや紙送り機構２７ｂは、印刷ヘッドを主走査させたり、適宜改ページ動作を行いながらメディアを順次送り出して副走査を行ったりする。そして、ＣＰＵ２１が、ＲＡＭ２３をワークエリアとして利用しながらＲＯＭ２２に書き込まれたプログラムに従って各部を制御する。すなわち、上記ＡＳＩＣ２４に対するデータの出力や、コントロールＩＣ２５からの信号の授受、Ｉ／Ｆ２７に対する信号出力によるキャリッジ機構２７ａおよび紙送り機構２７ｂの制御を実施する。
【００４２】
（２）印刷制御プログラムの概略構成：
ＰＣ１０では、以上のハードウェアを基礎としてバイオスが実行され、その上層にてＯＳとＡＰＬとが実行される。基本的には、ＯＳがバイオスを介するか直にハードウェアとアクセスし、ＡＰＬはＯＳを介してハードウェアとデータなどのやりとりを行う。ＯＳにはハードウェアを制御するための各種のドライバ類が組み込まれ、ＯＳの一部となって各種の制御を実行する。このドライバ類は、ＣＲＴＩ／Ｆ１７を制御するディスプレイドライバや、プリンタＩ／Ｆ１９を制御するプリンタドライバ３０等である。同プリンタドライバ３０には本発明の印刷制御プログラムの一部が含まれている。
【００４３】
プリンタ２０では、上述のハードウェアを基礎として所定のＯＳが実行され、当該ＯＳの制御下において上記ＲＯＭ２２に書き込まれたプログラムを実行する。このプログラムは制御部４０としてプリンタ２０に常駐し、印刷実行のための処理を行う。同制御部４０には本発明の印刷制御プログラムの一部が含まれている。すなわち、ＰＣ１０とプリンタ２０のそれぞれに本印刷制御プログラムの各種機能が搭載されており、本実施形態においてはＰＣ１０とプリンタ２０の組み合わせが印刷制御装置を構成する。
【００４４】
図３は、上記プリンタドライバ３０と制御部４０との概略構成を模式的に示している。図において、プリンタドライバ３０は、画像データ取得モジュール３１、解像度変換モジュール３２、色変換モジュール３３、通信モジュール３４を備えており、図示しない機能制御モジュールの制御に基づいて所定の機能を実現しつつ連携動作して画像データを中間データに変換することが可能である。制御部４０は、通信モジュール４１、ハーフトーン処理モジュール４２、インターレース処理モジュール４３、印刷制御モジュール４４を備えている。制御部４０においても各モジュールが図示しない機能制御モジュールの制御に基づいて連係動作して中間データをハーフトーン画像データに変換し、印刷を実行可能である。
【００４５】
（３）印刷制御装置が行う処理の概略：
図４，図５は、印刷制御装置が行う処理のゼネラルフローである。ここでは、当該図４，図５および図３によって処理の概略を説明する。上記ＡＰＬにて印刷指示がなされると、画像データ取得モジュール３１は、ＡＰＬにて作成されたＲＧＢ各色の画像データを取得する（ステップＳ１００）。同画像データは、ＲＧＢの各色毎に画像をドットマトリクス状の画素で多階調表現したデータであり、ここでは横Ｈ画素，縦Ｉ画素の画像データであるとする。
【００４６】
上記印刷指示を行う際には、ユーザ指定あるいはデフォルトにて印刷解像度（ｄｐｉ）および印刷サイズ（印刷後の縦横インチ数）を指定しており、解像度変換モジュール３２はこれら印刷解像度と印刷サイズを乗じて印刷画素数を取得する（ステップＳ１１０）。ここでは印刷画素を横Ｊ画素，縦Ｋ画素であるとする。さらに、解像度変換モジュール３２は、この印刷画素数と画像データの画素数に基づいて中間データを生成する際に必要な倍率を算出し、この倍率で上記画像データを拡大する（ステップＳ１２０）。
【００４７】
すなわち、縦方向についてはＫ／（ｍ×Ｉ）倍，横方向についてはＪ／（ｎ×Ｈ）倍に拡大する。この拡大後のデータが中間データとなる。尚、ここで、ｎは後述するブロックの横画素数であり、ｍは後述するブロックの縦画素数である。また、この拡大処理では種々の補間処理を実行可能であるが、自然画等で高画質の印刷を実行するためにはキュービックスプライン補間等の３次元補間演算を採用するのが好ましい。また、上述のように画像データは各画素の各色について多階調表現したデータであり、拡大処理では画素を水増ししているので、中間データも各色について多階調表現したデータである。
【００４８】
色変換モジュール３３は、この中間データにおけるＲＧＢ階調値を色インク色に対応したＣＭＹＫ各色の階調値に変換する色変換処理を行う（ステップＳ１３０）。このとき、ＬＵＴ（ルックアップテーブル）と呼ばれる色変換テーブルを参照して画像データを変換する。本実施形態のＬＵＴは、２５６階調のＲＧＢそれぞれの階調値をＣＭＹＫそれぞれについて２５６階調とされた階調値に対応させたテーブルであり、例えば、１７×１７×１７の格子点に対応した大量のデータを備えている。変換された中間データにおいては、階調値が大きくなるほどＣＭＹＫ各成分が大きくなるようにしてある。したがって、階調値が大きくなるほど、印刷媒体上に形成されるドット密度は大きくなる。
【００４９】
尚、本実施形態では、ＣＭＹＫに基づく画像データの階調数も各８ビットを割り当てて階調値０から２５５の２５６階調としているが、２５６階調以外にも様々な階調とすることが可能であることは言うまでもない。さらに、本実施形態では後述する閾値データに登録された閾値の値域にＣＭＹＫの階調値域を合わせている。階調値域を合わせるためには上記ＣＭＹＫの階調値を定数倍するなどの処理を行えばよい。色変換モジュール３３が中間データに対して色変換処理を施すと通信モジュール３４はこの中間データを取得し、上記プリンタＩ／Ｆ１９を介して当該中間データをプリンタ２０に転送する（ステップＳ１４０）。
【００５０】
一方、プリンタ２０において制御部４０の通信モジュール４１は、上記通信Ｉ／Ｏ２６を介してこの中間データが転送されたか否かを監視している。同中間データが転送されると、通信モジュール４１は同中間データを取得（ステップＳ２００）し、ハーフトーン処理モジュール４２に受け渡す。ハーフトーン処理モジュール４２は、上記中間データに対して拡大処理と２値化処理とを同時に実行する（ステップＳ２１０）。ＲＯＭ２２にはこの処理に必要なブロック閾値テーブルデータ２２ｂとハーフトーン画像データ２２ｃとが予め記憶されている。
【００５１】
ブロック閾値テーブルデータ２２ｂは、ディザマトリクスデータ２２ａから予め作成されたデータである。ディザマトリクスデータ２２ａは、Ｎ×Ｍ個のマトリクス状の画素について閾値を規定したデータであり、図６はその一例を簡易的に示す図である。同図においては縦１６画素，横１６画素の閾値データを例として示している。すなわち、同図における一つの四角形が一つの画素の閾値に相当する。また、本実施形態においてハーフトーン処理は閾値データ内の縦４画素，横４画素のブロック毎に実施される。図６においては、各画素に相当する閾値を一つの四角形の中に示すとともに、各ブロックの境界を太線で示している。
【００５２】
閾値データにはＮ×Ｍ階調の閾値が登録されている。すなわち、同図に示す例では”０”〜”２５５”を値域とした２５６階調の閾値が登録されている。また、本実施形態において、各ブロック内には２５６階調を均等に１６分類するとともに各分類から一階調ずつ抽出した閾値が登録してある。具体的には、２５６階調を１６等分すると各分類には１６個の閾値が含まれる。すなわち、第１分類には”０”〜”１５”の閾値が含まれ、第２分類には”１６”〜”３１”、、、第１６分類には”２４０”〜”２５５”の閾値が含まれることになる。
【００５３】
この例において、同図左上のブロックには第１分類の閾値”０”，第２分類の閾値”１６”が登録されており、第ｌ分類（ｌは１〜１６の自然数）の閾値がそれぞれ一つ登録されている。他のブロックでも同様であり、同図左端の上から２番目のブロックには第１分類の閾値”１２”，第２分類の閾値”２８”が登録されており、第ｌ分類の閾値がそれぞれ一つ登録されている。ここでは、１６×１６画素の閾値データについて説明したが、むろん、２５６×１２８画素など、他の画素数の閾値データを予め規定することができる。
【００５４】
１６×１６画素であれば閾値の階調数が２５６であってＣＭＹＫの階調数と同一であるが、２５６×１２８画素であれば階調数が多くなる。この場合、上述のようにＣＭＹＫの階調値を定数倍する処理を実行して閾値域とＣＭＹＫの階調値域を合わせればよい。尚、本実施形態において、各ブロックに登録される第ｌ分類の閾値の位置は総て共通である。例えば、第１分類の閾値は各ブロックの左上に登録されている。この構成によれば、後述するハーフトーン画像データを総てのブロックについて共通にすることができ、必要な記憶容量を抑えることができる。
【００５５】
ブロック閾値テーブルデータ２２ｂは、上記閾値データに登録された閾値の一つを抽出し、昇順に並べたデータである。すなわち、一つのブロックには上記分類のいずれかに含まれる閾値が一つ登録されているので、上述の例では閾値を昇順に並べると、第１分類から第１６分類まで一つずつ閾値が並ぶことになる。図７の左側にはこのブロック閾値テーブルデータを示している。ブロック閾値テーブルデータにおいては、各ブロックについて一つの閾値を抽出しているので、各分類においてブロック閾値テーブルデータがブロックの数だけ存在する。
【００５６】
図７においては、各分類毎の閾値をマトリクス状に配置して示している。従って、各分類においては１６個（＝１６×１６／４×４）の閾値が存在し、全部で１６個の分類についてマトリクス状の閾値が特定されている。具体的には、図７における第１分類の左上の四角形は上記図６に示す閾値データの左上に示すブロック内の最小の閾値（＝０）に該当し、図７における第１分類の左端の上から２段目の四角形は上記図６に示す閾値データの左端の上から２段目に示すブロック内の最小の閾値（＝１２）に該当する。図７における第２分類の左上の四角形は上記図６に示す閾値データの左上に示すブロック内で二番目に小さい閾値（＝１６）に該当し、図７における第２分類の左端の上から２段目の四角形は上記図６に示す閾値データの左端の上から２段目に示すブロック内で二番目に小さい閾値（＝２８）に該当する。
【００５７】
ハーフトーン画像データ２２ｃは、上記閾値データにおいてディザ処理をした場合のディザ処理後のドット形成状態を示すデータであり、本実施形態においてはドット形成数に対して一通りのデータが保存されている。図７においては、各画素においてドット形成を指定するデータを”１”、ドット非形成を指定するデータを”０”として示している。ハーフトーン処理モジュール４２は、上記中間データから所定の一画素を取得し、必要に応じて階調値を定数倍した後に上記ブロック閾値テーブルデータ２２ｂを適用する。
【００５８】
そして、中間データの一画素についてｎ×ｍ画素のデータに変換する処理を各画素に対して実行しハーフトーン処理を行う。このとき、ブロック閾値テーブルデータ２２ｂを参照し、中間データの一画素の階調値とブロック閾値テーブルデータ２２ｂの閾値とを昇順に比較するとともに”比較回数−１”をドット形成数として取得し、当該ドット形成数に対応したハーフトーン画像データを採用する。すなわち、中間データの一画素をこのハーフトーン画像データに変換する。
【００５９】
本実施形態では閾値データにおいて各ブロックに登録された閾値が異なるが、上述のように各ブロックには各分類の中から閾値が一つしか登録されていない。従って、上記ブロック閾値テーブルデータと中間データの一画素の階調値とを比較すれば、”比較回数−１”個がそのブロックでのドット形成数である。本実施形態ではこの考え方を利用してドット形成数を取得するとともに、取得したドット形成数から各ブロックのハーフトーン画像データを決定している。ハーフトーン画像データは上記ドット形成数毎に予め決められているので、この決定の際にはブロック内の全画素についてのドット形成／非形成を一度に確定することができる。
【００６０】
すなわち、各ブロックに登録された閾値と中間データの一画素の階調値とを比較して閾値より階調値の方が大きい場合にその画素についてドットを形成するように設定するような逐次的な比較処理を行うと、比較回数が常にブロックの画素数と等しくなるところ、ドット形成数を取得するのみでブロック画素数分のハーフトーン画像データを一括して決定することができる。ハーフトーン処理モジュール４２において以上のようなハーフトーン処理を行うと、インターレース処理モジュール４３はプリンタ２０のドットの形成順序を考慮しながらドット形成の有無により表現した印刷データを生成する（ステップＳ２２０）。
【００６１】
そして、印刷制御モジュール４４は、最終的に得られた印刷データにプリンタ２０の駆動コマンドデータ等を付加し、これらのデータを上記ＡＳＩＣ２４やＩ／Ｆ２７に出力することによって印刷を実行する（ステップＳ２３０）。この結果、プリンタ２０では、印刷ヘッドを駆動して各色インクのドットを印刷媒体上に形成する。すなわち、ＡＰＬからの画像データに対応したカラー画像が印刷媒体に印刷されることになる。
【００６２】
（４）印刷制御装置が行う処理の詳細：
次に、上記ハーフトーン処理モジュール４２での処理を実例とともにフローチャートに沿って説明する。図８はハーフトーン処理モジュール４２での処理を示すフローチャートであり、図９は処理の実例を示す説明図であり、図１０は、画像データと中間データとハーフトーン処理後の印刷画素を模式的に示す図である。図９，図１０においては、印刷対象の画像データのいずれかの色を画像データＤａ，中間データをＤｉとして示している。また、中間データから抽出される一画素を中間データｄｉ，ブロック閾値テーブルデータに登録された各閾値をブロック閾値ＢＴｈ，中間データｄｉを変換した後のデータをハーフトーン画像データＨＴＤａとして示している。
【００６３】
図１０では、プリンタ２０における印刷解像度が２８８０ｄｐｉ×２８８０ｄｐｉであり、１８００×１２６０画素の画像データＤａをＬサイズ（５インチ×３．５インチ）で印刷する場合を例示している。ＡＰＬによってこの印刷解像度および印刷サイズでの印刷実行が指示されると、画像データ取得モジュール３１はステップＳ１００にて１８００×１２６０画素の画像データＤａを取得し、解像度変換モジュール３２はステップＳ１１０にて印刷画素ＨＴＤａの横画素数を１４４００（＝２８８０×５）個，縦画素数を１００８０（＝２８８０×３．５）個であるとする。
【００６４】
そして、ステップＳ１２０にて横画素について１４４００／（４×１８００），縦画素について１００８０／（４×１２６０）を算出し、これにより横画素を２倍、縦画素を２倍すべきであることを把握するとともに補間処理によって画像データＤａを縦横２倍に拡大する。図１０に示すようにこの結果得られる３６００×２５２０画素のデータが中間データＤｉである。プリンタドライバ３０においてはこの中間データＤｉについて色変換処理を行ってＣＭＹＫデータとし、プリンタ２０に転送する。
【００６５】
プリンタ２０において通信モジュール４１がステップＳ２００にてこの中間データＤｉを取得すると、ハーフトーン処理モジュール４２はこの中間データＤｉから処理対象となる一つの画素（ｄｉ）を抽出する（ステップＳ３１０）。本実施形態において、ブロック閾値テーブルデータ２２ｂは各分類毎に縦横４個，計１６個の閾値を有しており、この閾値のそれぞれがブロック閾値ＢＴｈである。ハーフトーン処理モジュール４２が中間データの一画素を抽出すると、さらにこのブロック閾値ＢＴｈをＲＯＭ２２から昇順に取得（ステップＳ３２０）し、ブロック閾値ＢＴｈが上記ステップＳ３１０で抽出した画素の階調値より大きいと判別するまでステップＳ３２０の処理を繰り返すループ処理を行う（ステップＳ３２５）。
【００６６】
ここで、データを昇順に取得するとは、ステップＳ３２０，Ｓ３２５によって実行されるループ処理においてループ処理の回数が増えるに従って大きな値のブロック閾値ＢＴｈを取得するという意味である。図９においては、上記図７に示すブロック閾値テーブルデータの値を例にして示している。この例では、ブロック閾値テーブルデータ２２ｂの左上の値が第１分類から順に”０”，”１６”，”３２”、、、”２４０”になっている。昇順とはループの回数が増加するに従って、この数値を大きくすると言う意味である。各ループにおいては、各分類のブロック閾値ＢＴｈと上記抽出した中間データｄｉとを比較する。
【００６７】
この処理の後、上記ループ処理にて比較を行った回数ｘを取得するとともに”ｘ−１”をドット形成数として取得する（ステップＳ３３０）。回数ｘは、初期値を”１”としてｘをカウンタにしつつループ処理を行うなどして取得することができる。ハーフトーン画像データＨＴＤａは上述のようにドット形成数毎に記憶されているので、上記ＲＯＭ２２から上記取得したドット形成数に該当するハーフトーン画像データＨＴＤａを読み出し、中間データｄｉをハーフトーン画像データＨＴＤａに変換する（ステップＳ３３５）。
【００６８】
図９に示す例では、ステップＳ３１０において中間データｄｉから階調値１８の画素を抽出し、ステップＳ３２５においてブロック閾値ＢＴｈと比較している状態を想定している。この状態において、階調値１８は第２分類のブロック閾値ＢＴｈ１６と第３分類のブロック閾値ＢＴｈ３２の間に存在する。従って、上記ステップＳ３２５における比較回数は３になり、中間データｄｉはドット形成数”２”のハーフトーン画像データＨＴＤａに変換されることになる。
【００６９】
以上の処理の結果、中間データｄｉの一画素を高速にｎ×ｍ画素の２値化データに変換したことになる。すなわち、中間データｄｉの一画素とディザマトリクスデータ２２ａに登録された複数の閾値（ブロック内の閾値）のそれぞれとを逐次比較すると一画素から複数画素の２値化データを取得することができるが、本実施形態においては、この意味での逐次処理を行わない。その代わりに、ブロック閾値ＢＴｈと中間データｄｉとを比較することによってドット形成数を取得する。ｎ×ｍ画素のハーフトーン画像データは予めドット形成数と対応づけられているので、ドット形成数を取得することによって一画素をｎ×ｍ画素のデータに変換することができる。
【００７０】
本実施形態において、ブロック閾値ＢＴｈはブロックの画素数（図７の例では１６個）と等しい個数に分類されているので、上記ステップＳ３２０，Ｓ３２５におけるループ処理の最大繰り返し回数はブロックの画素数と等しい。上述の逐次的な比較によるディザ処理ではブロックの画素数分の比較を行うが、本実施形態においては最大でも従来のディザ処理と同数回の比較しか行わない。ほとんどの場合は従来のディザ処理より少ない比較回数で処理を終了する。従って、非常に高速にブロック毎のハーフトーン画像データＨＴＤａを決定することができる。
【００７１】
中間データの一画素についてハーフトーン画像データＨＴＤａを決定した後には、ブロック閾値テーブルデータ２２ｂに登録された総てのブロック閾値ＢＴｈについて中間データｄｉをハーフトーン画像データＨＴＤａに変換する処理を終了したか否かを判別する（ステップＳ３４０）。そして、ステップＳ３４０にて総てのブロックについて処理が終了したと判別されなければ、次のブロックに移動、すなわちブロック閾値テーブルデータ２２ｂ内の未処理のブロックに関する処理に移行する（ステップＳ３４５）。そして、当該未処理のブロックに対応する中間データの一画素を抽出しつつステップＳ３１０以降の処理を繰り返す。
【００７２】
この処理によってブロック閾値テーブルデータ２２ｂに対応する中間データの全画素について変換処理を行った後には、全中間データＤｉについてハーフトーン画像データＨＴＤａに変換する処理を終了したか否かを判別する（ステップＳ３５０）。そして、ステップＳ３５０にて全中間データＤｉについて処理が終了したと判別されなければ、ブロック閾値テーブルデータ２２ｂを移動、すなわち中間データＤｉ内の未処理の領域にブロック閾値テーブルデータ２２ｂを適用（ステップＳ３５５）してステップＳ３１０以降の処理を繰り返す。以上の結果、非常に高速に画像データを２値化することができる。
【００７３】
図１０に示す例では、３６００×２５２０画素の中間データＤｉの各画素が縦横各４倍に拡大されるので、最終的には、１４４００×１００８０画素の印刷画素が生成される。この２値化された印刷画素について上記ステップＳ２２０にてインターレース処理を行って、ステップＳ２３０にて印刷実行を行う。このとき、プリンタ２０にて２８８０×２８８０ｄｐｉの解像度で印刷を行うので、上述の設定通り、Ｌサイズでの画像印刷がなされる。この例において、印刷画素は１４４００×１００８０画素であり非常に容量の大きなデータである。
【００７４】
従って、この大容量のデータをＰＣ１０からプリンタ２０に転送すると多くの転送時間を要し、印刷処理全体に多くの時間を要してしまう。しかし、この例では、３６００×２５２０画素という小さな容量の中間データをプリンタ２０に転送しているので、高速にデータ転送をすることができる。また、ＰＣ１０にて実行する補間処理は高度な演算を要する場合が多く、プリンタ２０にて実行する閾値比較処理とハーフトーン画像データへの変換処理は非常に単純な演算である。
【００７５】
プリンタ２０においては一般にＰＣ１０よりＣＰＵの演算処理能力が低いが、本例で実施する処理は非常に単純なであるため、比較的低能力のプリンタ２０でも高速に処理可能である。従って、本例においては非常に高速に処理を終えることができる。尚、本例において中間データは各色の各画素が８ｂｉｔであり、印刷画素は各画素１ｂｉｔであるが、印刷画素数は中間データの画素数の１６倍であるため、ＰＣ１０からプリンタ２０に印刷画素データを転送するより中間データを転送する方が高速に処理を終えることができる。
【００７６】
（５）他の実施形態：
上記実施形態は本発明にかかる印刷制御装置、印刷制御方法および印刷制御プログラムを実現する一例であり、むろん他の構成を採用することも可能である。すなわち、上記実施形態においては、本発明に含まれる複数の技術的思想を反映したディザマトリクスを採用し、このディザマトリクスに基づくハーフトーン処理を行っていた。例えば、ディザマトリクスの一部に相当するブロック毎に閾値と階調値とを比較してブロック毎にハーフトーン画像データを割り当てる点、ディザマトリクス上の階調をＬ分類して各分類から一階調ずつ抽出して各ブロックに登録する点、各ブロックに登録される第ｌ分類の閾値の位置は総て共通である点等を反映した構成になっている。
【００７７】
しかし、これらの一部あるいは一部の組み合わせを反映させた構成や他の技術的思想と組み合わせた構成を採用しても良い。具体的には、上記図６に示すディザマトリクスデータにおいて、各ブロック内の閾値は登録すべき位置や分類が決まっていたが、これらと全く無関係に従来のディザマトリクス、例えば、閾値をランダムに配置したマトリクスを採用しても良い。この場合、各ブロック内の閾値の配置が異なるため、総てのブロックについて一つのドット形成数に対して共通の一つのハーフトーン画像データが対応するとは言えない。
【００７８】
しかし、閾値の配置は考えずに一つのドット形成数に対して一つのハーフトーン画像データを対応させておけば、少なくとも、各ブロックから閾値を順番に抽出して作成したブロック閾値テーブルデータを参照して上記図８に示す処理を行うことにより、高速にハーフトーン処理を実施することが可能になる。また、上述のように各ブロックに登録される第ｌ分類の閾値の位置を総て共通にすることにより、ドット形成数毎に一つのハーフトーン画像データを記憶するだけで充分となり、さらに、ドット形成数を取得するのみで総てのブロックにおいてディザマトリクスの階調値パターンに確実に合致したハーフトーン画像データを決定することが可能になる。
【００７９】
さらに、ディザマトリクス上の階調をＬ分類して各分類から一階調ずつ抽出して各ブロックに登録する構成と他の構成と組み合わせることにより非常に高速に処理を行うことが可能になる。その具体的な構成としては、図８に示すフローチャートにおいてステップＳ３２０，Ｓ３２５の代わりに以下の処理を行う構成を採用可能である。すなわち、予め各画素の階調値域をＬ個に分類しておき、ステップＳ３１０で取得した中間データの一画素の階調値がいずれの分類に入るのかを判別する。上記ブロック閾値テーブルデータ２２ｂにおいても閾値がＬ個に分類されているので、上記階調値が第ｘ分類に含まれるとすれば、この階調値と比較すべき閾値はブロック閾値テーブルデータ２２ｂにおける第ｘ分類である。
【００８０】
そこで、第ｘ分類のブロック閾値テーブルデータ２２ｂと上記ステップＳ３１０で取得した中間データの一画素の階調値とを比較すれば、この一回の比較処理のみでドット形成数を特定することができる。すなわち、閾値より階調値が小さい場合にドット形成数をｘ個、閾値より階調値が大きい場合にドット形成数を（ｘ＋１）個とすることができ、この結果、一回の比較処理のみでハーフトーン画像データを決定することができる。従って、非常に高速にハーフトーン処理を実施することができる。
【００８１】
さらに、この構成に加え、ディザマトリクスデータの各ブロックに登録される各閾値において、第ｘ分類（ｘは１からＬの自然数）の閾値と第（ｘ＋１）分類の閾値との数値間隔を一定にすれば、ブロック閾値テーブルデータ２２ｂを記憶するための記憶容量を非常に少なくすることができる。すなわち、ブロック閾値テーブルデータ２２ｂにおいては、Ｎ×Ｍ個の階調をＬ個（Ｌ＝ｎ×ｍ）に分類するとともに各分類から一階調ずつ抽出して各ブロック内の閾値としている。
【００８２】
従って、この規則に加えて隣り合う分類の閾値の数値間隔を一定にすれば、各ブロックについて少なくとも閾値を一つ記憶しておくことにより、他の閾値は演算にて算出することができる。例えば、第ｘ分類の閾値＝第１分類の閾値＋（ｘ−１）×Ｎ×Ｍ／ｎ／ｍとすればよい。これにより、ブロック閾値テーブルデータ２２ｂを記憶するために必要な記憶容量を非常に少なくすることができる。以上のように技術的思想の一部を利用したりその組み合わせを利用したりすることが可能であり、組み合わせによれば記憶容量の低減と処理速度の高速化を同時に実現することができる。
【００８３】
さらに、上記実施形態においては、ブロック閾値テーブルデータ２２ｂと中間データの一画素の階調値とを比較することによって閾値データのブロックに相当する領域のドット形成数を取得し、ドット形成数が何個であっても高速に処理できるようにしていたが、特定のドット形成数について高速化することも可能である。例えば、閾値の最小値とブロック内のいずれかの画素の階調値とを比較し、閾値の最小値が当該階調値より大きければブロック内の全画素をドット非形成にする構成を採用しても処理速度を高速化することができる。
【００８４】
また、閾値の最大値とブロック内のいずれかの画素の階調値とを比較し、閾値の最大値が当該階調値より小さければブロック内の全画素でドットを形成する構成を採用しても処理速度を高速化することができる。この場合、最小値や最大値以外の閾値と中間データの一画素の階調値とを比較するために、ＲＯＭ２２にディザマトリクスデータ２２ａを保存しておく。この場合、ディザマトリクスデータ２２ａおよびブロック閾値テーブルデータ２２ｂが上記閾値データに該当するし、上記実施形態の場合にはブロック閾値テーブルデータ２２ｂが上記閾値データに該当する。
【００８５】
さらに、上述のようにブロック内でのドット形成数に対応したハーフトーン画像データを予め記憶する構成とせず、ブロック内でのドット形成数に達するまで上記閾値データと中間データの一画素の階調値との逐次的な比較を行う構成を採用してもよい。すなわち、上記図６に示すようなディザマトリクスデータ２２ａのあるブロック内の各閾値と中間データの一画素とを逐次的に比較する場合に、その画素によってそのブロックに形成されるドット数に達した後には、残りの画素について逐次比較することなくドット非形成とすればよい。
【００８６】
このための具体的な構成および処理は上記第１の実施形態とほぼ同様であるが、図８のステップＳ３３５の代わりにドット形成数に達するまでブロック内の閾値と中間データの一画素の階調値を比較しドット形成状態を決定する処理を行えばよい。この場合には、上記ＲＯＭ２２にディザマトリクスデータ２２ａを予め保存しておく必要がある。また、ハーフトーン画像データ２２ｃをＲＯＭ２２に保存しておく必要はない。
【００８７】
さらに、上記総ての実施形態において閾値データの大きさ（画素数）は上記図６に示すものに限られないし、大きさの変動に伴って閾値データに登録する閾値の値域を変動させることも可能である。また、各ブロックにおいて同じ分類に属する閾値を同じ位置に登録することが必須というわけではない。この場合であって、予めドット形成数毎のハーフトーン画像データを保存しておく場合には、各ブロック毎に別個のハーフトーン画像データを予め記憶しておき、ドット形成数を取得するとともに各ブロックに対応したハーフトーン画像データに変換すればよい。
【００８８】
この構成によれば、各ブロックでドット形成パターンに差異を持たせることができるので、印刷物において特定のドットパターン（ディザパターン）を生じさせることはなく、より自然な印刷結果を得ることができる。むろん、各ブロックにおいて同じ分類に属する閾値が必ず一つ存在するように構成するのではなく、分類を考慮せず、閾値データの領域内で閾値をまばらに分散させて閾値データを構成しても良い。
【００８９】
さらに、上記実施形態においては、ブロック閾値テーブルデータと中間データの一画素の階調値とを比較することによってドット形成数を取得していたが、むろん、ドットを形成しない画素の数に主眼をおいてもドット形成数に基づく処理と実質的に等価である。ドット非形成数はブロック内の画素数−ドット非形成数となるからである。ドット非形成数に主眼をおく場合には上記図８のステップＳ３２０においてブロック閾値データを降順に取得し、ステップＳ３２５において閾値が階調値より小さいことを判別すればよい。この結果、比較回数−１がドット非形成数になる。
【００９０】
中間データをハーフトーン画像データに変換するためには、ドット非形成数毎にハーフトーン画像データを記憶しておいても良いし、ドット非形成数からドット形成数を算出し、中間データの一画素をドット形成数に対応づけられたハーフトーン画像データに変換しても良い。さらに、比較回数を少なくするという意味では、ドット形成数の分布を考慮した構成にしても良い。すなわち、中間データの階調値に基づいてドット形成数が少ないことがはじめから分かっているときには、上記ステップＳ３２０のようにブロック閾値データを昇順に取得するループを行う。ドット形成数が少ないと言うことは、ステップＳ３２５での比較回数が少ないことを意味するので、高速に処理を行うことができる。
【００９１】
ドット非形成数が少ないこと（あるいはドット形成数が多いこと）がはじめから分かっているときには、ステップＳ３２０においてブロック閾値データを降順に取得するループを行う。この場合は降順に比較した方が早期にブロック閾値＜階調値という条件を満たす状態を発見できるので、少ない比較回数で高速に処理を行うことができる。ドット形成数が少ないという条件は中間データの画素が低階調（高明度）の場合が該当し、ドット非形成数が少ないという条件は中間データの画素が高階調（低明度）の場合が該当する。
【００９２】
従って、中間データの一画素の階調値が低明度域に属するか高明度域に属するかを判別した上で、ブロック閾値データの比較順序を決定しても良い。より具体的な例としては、階調値が階調値域の中央値より低階調側にあるときはブロック閾値データを昇順に比較し、高階調側にあるときはブロック閾値データを降順に比較する構成等を採用可能である。むろん、中央値で分ける構成のみではなく種々の指標に基づいて低階調域と高階調域とを分けることができる。例えば、高階調になるほど単位階調変化に対する明度の低下度合いが鈍くなるインクの特性を考慮して、インクによって表現可能な明度域を２つに分割して高明度域と低明度域とを分けても良い。
【図面の簡単な説明】
【図１】ＰＣの概略構成を示す図である。
【図２】プリンタの概略構成を示す図である。
【図３】プリンタドライバと制御部の概略構成を模式的に示す図である。
【図４】プリンタドライバの処理のフローチャートである。
【図５】プリンタの処理のフローチャートである。
【図６】閾値データの例を簡易的に示す図である。
【図７】ブロック閾値テーブルデータとハーフトーン画像データとを示す図である。
【図８】ハーフトーン処理を示すフローチャートである。
【図９】ハーフトーン処理の実例を示す説明図である。
【図１０】各画像データを模式的に示す図である。
【符号の説明】
１０…ＰＣ、２０…プリンタ、２２ａ…ディザマトリクスデータ、２２ｂ…ブロック閾値テーブルデータ、２２ｃ…ハーフトーン画像データ、３０…プリンタドライバ、３１…画像データ取得モジュール、３２…解像度変換モジュール、３３…色変換モジュール、３３，４１…通信モジュール、４２…ハーフトーン処理モジュール、４３…インターレース処理モジュール、４４…印刷制御モジュール
【図１】
2004241848.tif 000003
【図２】
2004241848.tif 000004
【図３】
2004241848.tif 000005
【図４】
2004241848.tif 000006
【図５】
2004241848.tif 000007
【図６】
2004241848.tif 000008
【図７】
2004241848.tif 000009
【図８】
2004241848.tif 000010
【図９】
2004241848.tif 000011
【図１０】
2004241848.tif 000012