以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明の印刷制御装置の第1実施形態であるパーソナルコンピュータ10(以下、PC10と称する)と、PC10に接続されたプリンタ40との電気的構成を示すブロック図である。本実施形態のPC10は、特に、最小の濃度が適切に表現された出力画像をプリンタ40に印刷させることができるように構成されているものである。なお、PC10は本発明におけるコンピュータの一例にも該当する。
図1に示すように、PC10は、CPU11、ROM12、RAM13、ハードディスクドライブ14(以下、HDD14と称す)、インターフェイス16、入力装置17、表示装置18を主に有し、これらはバスライン20を介して互いに接続されている。
CPU11は、ROM12やRAM13やHDD14に記憶される固定値やプログラムに従って、バスライン20により接続された各部を制御する。ROM12は、PC10の動作を制御するためのプログラムなどが格納されたメモリであり、RAM13は、CPU11の処理に必要なデータなどを一時的に記憶するための読み書き可能なメモリである。
HDD14は、ハードディスクドライブであり、HDD14には、本発明の印刷制御プログラムの一例であるプリンタドライバ141、基準ディザマトリクス142、変更ディザマトリクス143、パッチデータ144が記憶される。なお、プリンタドライバ141に従って実行される印刷データ生成処理については、後述する。
入力装置17は、ユーザ指示を入力するためのものであり、例えば、キーボードやマウスなどで構成される。表示装置18は、例えば、CRTディスプレイや液晶ディスプレイなどにより構成され、各種処理内容や入力されたデータなどを視覚的に表示するものである。
このように構成されたPC10は、対象画像を表す対象画像データを、変更ディザマトリクス143を用いてビットマップ形式の出力画像データに変換し、印刷データとしてプリンタ40(本発明における印刷部の一例)へ供給することにより、出力画像データによって表わされる出力画像を、プリンタ40に印刷させる。
一方、プリンタ40はレーザプリンタで構成され、プリンタ40の動作を制御する制御部50を備える。この制御部50は、演算装置であるCPU41と、そのCPU41により実行される各種の制御プログラムやデータを記憶したROM42と、このプリンタ40に接続されるPC10から入力された印刷データや制御信号を記憶するためのメモリであるRAM43とを備えている。また、CPU41、ROM42、RAM43は、バスライン44を介して互いに接続されており、かかるバスライン44は、集積回路であるASIC(Application Specific Integrated Circuit)45に接続されている。
さらに、制御部50は、プリンタ40と外部機器とを通信可能に接続するためのインターフェイス46と、画像形成部47と、スキャナ部48と、用紙搬送部49とに接続されている。
画像形成部47には、感光体ドラム、感光体ドラムの表面を一様に帯電させる帯電器、トナーを収容した現像カートリッジが設けられる。なお、本実施形態のプリンタ40の画像形成部47には、C(シアン),M(マゼンタ),Y(イエロー),K(ブラック)のトナーを収容した4つの現像カートリッジが着脱可能に構成されており、プリンタ40は、C,M,Y,Kの4色で出力画像を形成することができるカラーレーザプリンタとして構成されている。
インターフェイス46を介して、PC10から印刷データが供給されると、プリンタ40は、印刷データに含まれるビットマップ形式の出力画像データに従って、スキャナ部48がレーザをオン/オフしながら、帯電器により一様に正帯電させられた感光体ドラムの表面を走査し、感光体ドラム表面の電荷を部分的に除去して微小スポットを形成する。そして、電荷が除去された部位に正帯電されているトナーを付着させることにより、記録用紙(記録媒体)に印刷すべき出力画像に対応した静電潜像を形成する。そして、そのトナーを用紙搬送部49によって搬送される記録用紙に転写し、定着させることにより、出力画像を印刷することができる。
本実施形態のPC10は、基準ディザマトリクス142が有する閾値群のうち、少なくとも一部を変更した変更ディザマトリクス143を生成し、その変更ディザマトリクス143を用いて対象画像データを出力画像データに変換することにより、プリンタ40において、最小の濃度が適切に表現された出力画像をプリンタ40に印刷させることができるように構成されている。
まず、図2,図3を参照して、ディザマトリクスについて説明する。図2(a)は、基準ディザマトリクス142の一例を示す図である。図2(a)に示すように、基準ディザマトリクス142は、例えば、16×16個のセル(要素)の各々に、閾値を1つずつ格納したデータ構造を有する。図2(a)に示すように、ディザマトリクスの各閾値は、整数である。
一般的な、ディザ処理では、基準ディザマトリクス142を、C,M,Y,Kの各色の濃淡レベルから構成される対象画像データの16×16画素に重ね合わせ、各画素の濃淡レベルと対応する閾値とを比較し、濃淡レベルが閾値以上である場合は1(ドットオンを表す)、閾値未満である場合は0(ドットオフ)に変換する。そして、16×16画素の処理が済んだら、順次基準ディザマトリックス142を次の16×16画素の位置に移動し、同じ処理を繰り返す。これにより、例えば256階調の濃淡レベルを含む対象画像データが、2値で表わされる出力画像データに変換される。
図2(a)に示すように、基準ディザマトリクス142の256個のセル(要素)には、1から254までの閾値がそれぞれ1個ずつ割り当てられており、閾値255については2個割り当てられている。したがって、対象画像データにおいて、16×16画素の濃淡レベルが1である場合には、出力画像データでは、256画素中、1画素のみドットオンとなる。一方、対象画像データにおいて、16×16画素の濃淡レベルが255である場合には、出力画像データは、255画素の全てにおいてドットがオンとなる。したがって、ドットが理想的に定着すれば、ドットの出願頻度と濃淡レベルとがほぼ比例し、出力画像において滑らかに階調を再現することができる。
しかしながら、ドットは必ずしも理想的に定着するとは限らず、淡い色の階調が好適に表現されない場合がある。特に、対象画像データの各画素の濃淡レベルが0を除く最小の値(すなわち1)である場合、16×16画素内に孤立した1つのドットが形成されるため、換言すれば、1つのドットの周囲に他のドットが形成されないため、ドットの定着が不安定となる。
よって、本実施形態のPC10は、まず、互いに異なる濃度を有する複数種類のディザ決定用パッチ52(図6参照)をプリンタ40に印刷させ、ユーザに選択させる。そして、PC10は、選択されたディザ決定用パッチ52の濃度が、プリンタ40により印刷される出力画像の最小の濃度となるように、基準ディザマトリクス142が有する閾値を変更して、変更ディザマトリクス143(図3(b))を生成する。そして、PC10は、この変更ディザマトリクス143を用いてディザ処理を行う。
まず、図2,図3を参照して、変更ディザマトリクス143生成の手順の概要を説明する。
図2(b)は、基準ディザマトリクス142が有する閾値のうち、「2」から「8」までを、基準ディザマトリクス142が有する閾値群の中で最小の閾値である「1」に変更したディザマトリクスを示す図である。説明の便宜上、このように、基準ディザマトリクス142の閾値群のうち、いくつかの閾値を最小閾値「1」に変更したディザマトリクスを、「最小閾値設定ディザマトリクス」と称する。
図2(b)に示す最小閾値設定ディザマトリクスでは、16×16個の閾値中、最小閾値「1」が8個配置されている。よって、各画素の濃淡レベルが「1」の対象画像データを、この最小閾値設定ディザマトリクスを用いてディザ処理すると、出力画像においては、16×16画素中、8個のドットがオンとされる。よって、各画素の濃淡レベルが「1」の対象画像データは、最小閾値設定ディザマトリクスを用いてディザ処理されると、基準ディザマトリクス142を用いてディザ処理される場合に比較して、高い濃度で(すなわち濃く)表現される。ここで、最小閾値「1」が設定されるセルの個数は、ユーザにより指定されるディザ決定用パッチ52(図6参照)に基づいて決定されるのであるが、詳細は後述する。
また、図2(b)に示す、最小閾値設定ディザマトリクスにおいては、最小閾値「1」の次に小さい閾値は「9」となり、閾値が不連続になっている(すなわち閾値のジャンプが発生している)。その結果、最小閾値設定ディザマトリクスを用いる場合は、濃淡レベルが「1」から「8」の間の階調の違いを再現することが難しい。
よって、本第1実施形態のPC10は、最小閾値設定ディザマトリクスに含まれる最小の閾値「1」から「8」の間の閾値が設定されるように、最小の閾値「1」の次の値である閾値「2」から閾値を連続的に振り直す処理を行う。換言すれば、最小閾値設定ディマトリクスの閾値群に含まれる閾値「1」以外の閾値を、最小閾値「1」より大きく、且つ、最小閾値設定ディザマトリクスに含まれる最小の閾値の次に小さい閾値(すなわち、2番目に小さい閾値)「9」よりも小さくなるように変更する。
図3(a)は、図2(b)に示す最小閾値設定ディザマトリクスに含まれる最小閾値「1」と、その最小閾値の次に小さい閾値「9」との間に閾値が設定されるように、閾値を変更したディザマトリクスの一例を示す図である。説明の都合上、図3(a)に示すディザマトリクスを、ギャップ修正ディザマトリクスと称する。
図3(a)に示すギャップ修正ディザマトリクスにおいては、「1」から「249」まで閾値が連続的に設定されている。しかしながら、設定できる閾値数は256個であるため、閾値250以上の閾値を設定できず、250以上の濃淡レベルを再現できない。
よって、次に、「1」から「255」までの閾値を均等に割り振り直す処理を行うことにより、ギャップ修正ディザマトリクスの閾値を変更し、変更ディザマトリクス143を生成する。
図3(b)は、変更ディザマトリクス143の一例を示す図である。図3(b)に示すように、変更ディザマトリクス143においては、閾値が連続的に設定されていると共に、最大の閾値が「255」に設定されている。具体的には、最小閾値設定ディザマトリクス(図2(b))において設定されていた最小閾値「1」をそのままにして、それ以外の閾値を変更することによって、最も近い値を有する2つの閾値の差分が所定値以上にならないように、閾値が変更されている。したがって、この変更ディザマトリクス143をディザ処理に用いることにより、最小の濃度を適切に表現することができ、且つ、0から255の濃淡レベルの全範囲に対して、不自然な階調飛び(階調ジャンプ)の発生を抑制することができる。なお、濃淡レベルが256階調を表現可能な値である場合は、変更ディザマトリクス143において、最も近い値を有する2つの閾値の差分が、3以上とならないように閾値を変更すれば、出力画像における不自然な階調ジャンプを、より確実に抑制することができる。
なお、本実施形態において、変更ディザマトリクス143は、プリンタで用いられる色毎に生成されるが、図3(b)には、C,M,Y,Kのうち、1色について生成された変更ディザマトリクス143を例示している。
図4は、対象画像データを構成する各画素の濃淡レベルが「1」から「4」のそれぞれの場合についてディザ処理によって得られる出力画像データを示す図である。図4(a)は、基準ディザマトリクス142(図2(a))を用いた場合に得られる出力画像データを示し、図4(b)は、変更ディザマトリクス143(図3(b))を用いた場合に得られる出力画像データを示す。なお、図4において、格子状に区切られたマス目の1つ1つが、出力画像データを構成する画素を表しており、着色されたマス目が、ドットオンとされる(すなわち、色材が定着され、ドットを形成する)画素を表している。
図4(a)に示すように、基準ディザマトリクス142(図2(a))を用いる場合、16×16画素中、ドットオンとされる画素の個数は、濃淡レベルと等しい。一方、図4(b)に示すように、変更ディザマトリクス143(図3(b))では、最小の濃淡レベル「1」に対して、16×16画素中、8個の画素がドットオンとされ、濃淡レベルが「1」から増大するほど、ドットオンとなる画素数が増大する。よって、変更ディザマトリクス143を用いれば、プリンタの特性上、あるいはプリンタの使用環境上、トナーなどの色材が定着されにくい場合であっても、淡い色を適切な濃度で印刷することができる。また、濃淡レベルが増大するにつれて、ドットオンの個数が連続的に増大するので、淡い部分の階調の変化が、出力画像において適切に再現される。
図5は、PC10が実行する印刷データ生成処理を示すフローチャートである。この印刷データ生成処理は、ユーザにより、印刷の実行が指示された場合に起動される処理であり、プリンタドライバ141(図1参照)に従って実行される。特に、本実施形態では、ユーザが希望する場合に、基準ディザマトリクス142の閾値を変更した変更ディザマトリクス143が生成され、その変更ディザマトリクス143を用いてディザ処理が行われる。
まず、CPU11は、基準ディザマトリクス142の閾値の変更がユーザにより指示されたか否かを判断する(S503)。S503の判断が肯定される場合(S503:Yes)、CPU11は、プリンタ40にパッチデータ144(図1参照)を出力することにより、ディザ決定用パッチをプリンタ40に印刷させる(S504)。
図6を参照して、ディザ決定用パッチについて説明する。図6は、PC10がプリンタ40に印刷させるテストシート50の一例を示す図である。図6に示すように、テストシート50には、C,M,Y,Kの4色の各々について、例えば、12種類の濃度のディザ決定用パッチ52が印刷される。なお、ディザ決定用パッチが、本発明におけるパッチの一例に相当する。
ディザ決定用パッチ52は、それぞれ互いに異なる濃淡レベルに対応するものであり、対応する濃淡レベルは、「パッチ番号」として、テストシート50に印刷される。テストシート50においては、列毎にパッチ番号が印刷されているので、ユーザはテストシート50を視認し、色とパッチ番号を特定することで、行列状に印刷された各ディザ決定用パッチ52を指定することができる。
各ディザ決定用パッチ52の濃度は、対応する濃淡レベルを各画素が有する対象画像データを、基準ディザマトリクス142の閾値群と比較してディザ処理した場合と同等の濃度で印刷されている。換言すれば、各ディザ決定用パッチ52は、基準ディザマトリクス142を用いてディザ処理した場合の出力画像データに基づく印刷結果を、濃淡レベルが「1」から「12」の範囲において示している。例えば、パッチ番号「1」に対応するCのディザ決定用パッチ52は、各画素のCの濃淡レベルが「1」の対象画像データを、基準ディザマトリクス142でディザ処理して得られる出力画像データ(すなわち、16×16画素中、1画素のみドットオンとなるデータ)に基づく印刷結果を示している。
本第1実施形態のPC10は、このディザ決定用パッチ52の中から、濃淡レベル「1」にユーザが対応付けたい濃度のパッチをユーザに指定させる。そして、PC10は、仮に、対象画像に含まれる各画素の濃淡レベルが「1」である場合に、対象画像データを変換ディザマトリクス143を用いて変換して得られる出力画像データを用いて印刷される出力画像の濃度が、選択されたディザ決定用パッチ52の濃度と等しくなるように、変更ディザマトリクス143を生成することとしている。
ここで、「出力画像の濃度が、選択されたディザ決定用パッチ52の濃度と等しくなる」とは、「出力画像の色の濃さと、ディザ決定用パッチ52と色の濃さが等しくなる」ことを意味しており、例えば、測色計により測定して数値化された結果が等しいことであっても良いが、それ以外にも、出力画像が印刷される記録媒体上の単位面積において形成されるドットの個数が等しいことであっても良く、あるいは、記録媒体上の単位面積当たりにおけるドットの定着面積が等しいことであっても良い。また、本実施形態のように、プリンタ40が、複数色の色材を用いて、カラーの出力画像を印刷できるように構成される場合には、ディザ決定用パッチ52は色毎に選択される。そして、出力画像を構成する各色の濃度が、その色について選択されたディザ決定用パッチ52の濃度と等しくなるように、各色について変更ディザマトリクス143が生成される。
図5に戻り、説明する。次に、CPU11は、ユーザが入力したパッチ番号で特定されるディザ決定用パッチ52、すなわちユーザによって指定されたディザ決定用パッチ52を選択し、そのパッチ番号をRAM13(図1参照)に記憶する(S506)。
次に、CPU11は、4色分のディザ決定用パッチを選択したか否かを判断する(S507)。S507の判断が否定される場合(S507:No)、CPU11は、S506に戻り処理を繰り返す。一方、S507の判断が肯定されると(S507:Yes)、CPU11は、ディザ閾値変更処理(S510)を実行し、変更ディザマトリクス143を生成する。なお、ディザ閾値変更処理(S510)については後述する。
次に、CPU11は、4色分の変更ディザマトリクス143を生成したか否かを判断する(S512)。S512の判断が否定される場合(S512:No)、CPU11は、S510に戻り処理を繰り返す。
S512の判断が肯定される場合(S512:Yes)、またはS503の判断が否定される場合(S503:No)、CPU11は、R(赤),G(緑),B(青)の各色の輝度値から構成されるRGB画像データを、予め準備された3次元ルックアップテーブルを用いて、C,M,Y,Kの各色の濃淡レベルから構成される対象画像データに変換する色変換処理(S513)を行う。
次に、CPU11は、ディザ処理を実行して、対象画像データを出力画像データに変換する(S514)。具体的には、S503の判断が否定される場合は、CPU11は、基準ディザマトリクス142を用いて、ディザ処理を実行する。一方、S512の判断が肯定される場合は、CPU11は、変更ディザマトリクス143を用いて、ディザ処理を実行する。
そして、CPU11は、印刷データ生成処理を終了し、本処理により得られた出力画像データを、印刷データとしてプリンタ40へ出力し、プリンタ40に出力画像を印刷させる。
図7は、図5のディザ閾値変更処理(S510)を示すフローチャートである。まず、CPU11は、入力レベル1閾値変更処理を実行する(S702)。この入力レベル1閾値変更処理(S702)は、基準ディザマトリクス142(図2(a))から、最小閾値設定ディザマトリクス(図2(b))を経て、ギャップ修正ディザマトリクス(図3(a))を生成するための処理である。
図8は、図7の入力レベル1閾値変更処理(S702)を示すフローチャートである。入力レベル1閾値変更処理(S702)では、まず、CPU11は、基準ディザマトリクス142(図2(a))をRAM13に読み出し(S800)、その基準ディザマトリクス142が有する閾値群のうち、処理対象の色について選択したディザ決定用パッチ52に対応する濃淡レベル以下の閾値を、「1」(本発明における「基準ディザマトリクスが有する閾値群の中で最小の閾値」に相当)に変更する(S801)。例えば、パッチ番号8が指定される場合には、「8」以下の閾値を「1」に変更する。この処理により、最小閾値設定ディザマトリクス(図2(b))が生成される。
次に、CPU11は、変数「n」に2を設定する(S802)。次に、CPU11は、最小閾値設定ディザマトリクス(図2(b))の閾値群の中から「1」の次に小さい閾値(図2(b)では「9」)を探し、見つけた値を、変数「Xmin」に設定する(S803)。
次に、CPU11は、「Xmin」の閾値が設定してあったセルの値を「n」(本実施例では、n=2)に変更する(S804)。次に、CPU11は、「n」に1を加算し(S805)、「Xmin」に1を加算する(S806)。そして、CPU11は、「Xmin」が255よりも大となったかを判断し(S807)、S807の判断が否定される場合(S807:No)、「Xmin」の閾値が設定してあるセルを探し(S808)、S804の処理に戻る。
このようにして処理を繰り返すうちに、S807の判断が肯定されると(S807:Yes)、CPU11は、入力レベル1閾値変更処理(S702)を終了する。この入力レベル1閾値変更処理(S702)により、ギャップ修正ディザマトリクス(図3(a))が生成される。
図7に戻り説明する。S704以降の処理では、最終的に生成される変更ディザマトリクス143に含まれる閾値が「2」から「255」の間で連続するように、ギャップ修正ディザマトリクス(図3(a))に含まれる最小の閾値「1」以外の閾値を変更することによって、変更ディザマトリクス143を生成する。
まず、CPU11は、ギャップ修正ディザマトリクス(図3(a))に含まれる、閾値の最大値を探し、見つけた値を変数「Smax」に設定する(S704)。次に、CPU11は、Smax≠255が成立するか否かを判断する(S706)。Smax=255である場合(S706:No)、ギャップ修正ディザマトリクスを、処理対象の色の変更ディザマトリクス143として、HDD14(図1)に記憶し(S708)、処理を終了する。
一方、Smax≠255である場合(S706:Yes)、CPU11は、ギャップ修正ディザマトリクスから、最小閾値「1」以外の閾値を1つ取得し(S710)、(閾値/Smax×255)を算出する。そして、CPU11は、その算出結果を四捨五入し、その結果に、S710の処理で取得した閾値を変更する(S712)。次に、CPU11は、最小閾値「1」を除く全閾値について処理を終了したか否かを判断する(S714)。S714の判断が否定される場合(S714:No)、S710に戻り処理を繰り返す。
このようにして処理を繰り返すうちに、S714の判断が肯定されると(S714:Yes)、CPU11は、生成したディザマトリクスを、変更ディザマトリクス143としてHDD14に記憶し、ディザ閾値変更処理(S510)を終了する。
ディザ閾値変更処理(S510)により生成される変更ディザマトリクス143を用いたディザ処理(S514)により、対象画像データが出力画像データに変換される場合、仮に対象画像データに含まれる各画素の濃淡レベルが「1」であれば、プリンタ40により印刷される出力画像の濃度は、選択されたディザ決定用パッチ52の濃度と等しくなる。換言すれば、プリンタにより印刷される出力画像の最小の濃度が、ユーザの指定に基づいて選択したディザ決定用パッチ52の濃度と等しくされる。
このように、本第1実施形態のPC10によれば、プリンタ40が印刷する最小の濃度を動的に変更することができ、且つ、最小の濃度が適切に表現された出力画像をプリンタに印刷させることができる。
また、本実施形態のPC10によれば、変更ディザマトリクス143に含まれる閾値が連続するように、最小の閾値以外の閾値が変更されて、変更ディザマトリクス143が生成される。換言すれば、最小閾値設定ディザマトリクス(図2(b))に比較して、変更ディザマトリクス143においては、最小の閾値「1」から最大の閾値「255」まで、閾値がよりなだらかに漸増する。このように生成された変更ディザマトリクス143を用いて、対象画像データを出力画像データに変換すれば、対象画像データに含まれる濃淡レベルの連続的な変化を、連続的な濃度変化で再現することができる。
図9は、対象画像データの濃淡レベルの変化に対する、出力画像データのONドット数の変化を示すグラフであり、図9(a),(b)は、それぞれ、基準ディザマトリクス142,変更ディザマトリクス143を用いてディザ処理する場合を示すグラフである。図9(a),(b)に示すグラフは、共にx軸に濃淡レベルをとり、y軸には、出力画像の濃度に相当する値として、16×16画素内でオンとされるドットの個数(ONドット数)をとっている。
図9(b)に示すように、変更ディザマトリクス143を用いる場合は、濃淡レベルが「1」の場合のONドット数が、選択したディザ決定用パッチに対応する濃度レベルと等しくなり、そのため、濃淡レベル「1」の対象画像データに対しては、選択したディザ決定用パッチ52と同じ濃度の出力画像を印刷することができる。すなわち、最小の濃度が、ユーザによって指定された適切な濃度で表現された出力画像をプリンタに印刷させることができる。
また、濃淡レベル「1」より大の範囲では、図9(a)と同様に、ONドット数が、最大値である255まで連続的に変化している。したがって、階調レベルに応じた濃度(ONドット数)で画像が印刷され、出力画像において、不自然な階調飛び(階調ジャンプ)が生じることを抑制できる。
次に、図10から図13を参照して、第2実施形態について説明する。上記第1実施形態のディザ閾値変更処理では、最小の閾値「1」を設定した後、閾値「2」から「255」までが、均等に割り振られていた。換言すれば、図9に示すように、変更ディザマトリクス143を用いる場合(図9(b))のグラフの傾きθ’は、基準ディザマトリクス142を用いる場合(図9(a))のグラフの傾きθよりも緩やかになっていた。よって、変更ディザマトリクス143を用いる場合、濃淡レベルの変化に対する、出力画像の濃度の変化を示す濃度変化率(θ’)は、基準ディザマトリクス142を用いる場合の濃度変化率(θ)よりも小さくなる。
これに対し、本第2実施形態のPC10は、変更ディザマトリクス143を用いる場合の中間調領域での濃度変化率が、基準ディザマトリクス142を用いる場合の濃度変化率(θ)と等しくなるように、変更ディザマトリクスを生成するように構成している。なお、第2実施形態のPC10で生成される変更ディザマトリクスは、「淡部吸収型の変更ディザマトリクス145」と称する。
第2実施形態において実行される印刷データ生成処理は、変更ディザマトリクス143に代えて淡部吸収型の変更ディザマトリクス145を用いてディザ処理(S514)を実行する点を除き、第1実施形態(図5)の印刷データ生成処理と同一である。
図10は、第2実施形態で実行される淡部吸収型のディザ閾値変更処理(S100)を示すフローチャートである。この淡部吸収型のディザ閾値変更処理(S100)は、第1実施形態のディザ閾値変更処理(S510:図7)に代えて実行される処理である。
まず、CPU11は、基準ディザマトリクス142をRAM13に読み出し(S1001)、その基準ディザマトリクス142が有する閾値群のうち、処理対象の色について選択したディザ決定用パッチ52に対応する濃淡レベル以下の閾値を、最小の閾値「1」に変更する(S1002)。この処理により、最小閾値設定ディザマトリクス(図2(b))が生成される。次に、CPU11は、変数「Si」に2を設定する(S1004)。次に、CPU11は、変数「n」に「1+Si」を設定する(S1006)。
次に、CPU11は、最小閾値設定ディザマトリクス(図2(b))に含まれる、1の次に小さい閾値を探し、見つけた値を、変数「Xmin」に設定する(S1008)。次に、CPU11は、「Xmin」の閾値が設定してあったセルの値を「n」に変更する(S1010)。次に、CPU11は、「n」に「Si」を加算し(S1012)、「Xmin」に1を加算する(S1014)。そして、CPU11は、「Xmin」がnと等しくなったかを判断し(S1016)、S1016の判断が否定される場合(S1016:No)、「Xmin」の閾値が設定してあるセルを探し(S1018)、S1010の処理に戻る。
このようにして処理を繰り返すうちに、S1016の判断が肯定されると(S1016:Yes)、CPU11は、生成されたディザマトリクスを、淡部吸収型の変更ディザマトリクス145としてHDD14(図1)に記憶し、淡部吸収型のディザ閾値変更処理(S100)を終了する。
図11は、淡部吸収型の変更ディザマトリクス145の一例を示す図である。図11に示すように、淡部吸収型の変更ディザマトリクス145においては、例えば、8個のセルに閾値「1」が設定されており、最小閾値「1」から「15」までの間は、偶数の閾値が間引かれている。そして、閾値「16」から「255」までの間は、基準ディザマトリクス142(図2(a))と同じ配列で閾値が格納される。
図12は、濃淡レベルとONドット数との対応関係を示すグラフであり、上段は、濃淡レベルが0から255の範囲を示し、下段は、濃淡レベルが0から25の範囲を拡大して示す。なお、図12に示すグラフは、横軸に濃淡レベルをとり、縦軸には、出力画像の濃度に相当する値として、16×16画素内でオンとされるドットの個数(ONドット数)をとっている。また、図12において、破線は、基準ディザマトリクス142を用いてディザ処理する場合の出力結果を示し、実線は、淡部吸収型の変更ディザマトリクス145(図11)を用いてディザ処理する場合の出力結果を示している。
図12に示すように、淡部吸収型の変更ディザマトリクス145(図11)によれば、濃淡レベルが「1」から「13」までの低階調領域(本発明の低階調領域の一例)において、対応するONドット数が、基準ディザマトリクス142を用いる場合よりも高くなる。換言すれば、淡部吸収型の変更ディザマトリクス145(図11)を用いる場合、濃淡レベルが「1」から「13」までの低階調領域においては、基準ディザマトリクス142を用いる場合よりも、全体として濃い出力画像が印刷される。
一方、図12に示すように、淡部吸収型のディザマトリクス145を用いる場合、濃淡レベルが「1」から「13」の低階調領域においては、濃淡レベルの変化に対する出力画像の濃度(ONドット数に相当)の変化を示す濃度変化率が、基準ディザマトリクス142を用いる場合の低階調領域での濃度変化率よりも小さくなるように、淡部吸収型のディザマトリクス145の閾値が設定されている。なお、本実施形態において、「濃度変化率」とは、濃度レベルの変化をdxとし、出力画像の濃度の変化をdyとする場合、dy/dxとして表される値を意味している。
その結果、図12に示すように、濃淡レベルが「14」以上の領域においては、淡部吸収型の変更ディザマトリクス145を用いた場合と、基準ディザマトリクス142を用いた場合とで、出力結果を示すグラフが一致する。換言すれば、最小閾値「1」の個数を増大したことで生じる濃度変化率の急激な変化が、低階調領域(濃淡レベルの低い領域)において吸収される。その結果、濃淡レベルが中間調領域および高階調領域においては、淡部吸収型のディザマトリクス145を用いる場合の濃度変化率を、基準ディザマトリクス142を用いる場合と等しくすることができる。したがって、中間調領域および高階調領域においては、僅かな濃淡レベルの差であっても、基準ディザマトリクス142を用いる場合と同程度まで明りょうに再現させることができる。
なお、低階調領域とは、濃淡レベルが表現可能な値のうち0を除く最小値から最大値までの領域を、3つの領域に区分する場合に、最も低い濃淡レベルが含まれる領域を意味しており、高階調領域とは、上記3つに区分された領域のうち、最も高い濃淡レベルが含まれる領域を意味しており、中間調領域とは、濃淡レベルが表現可能な値のうち、低階調領域と高階調領域とを除いた領域を意味している。低階調領域と中間調領域と高階調領域との境界を定める値をどのように設定するかは、場合に応じて変更可能である。濃淡レベルが表現可能な値が0から255である場合は、例えば、1から50未満の第1所定値以下までの領域を低階調領域とし、201以上の第2所定値から255までの領域を高階調領域とすることが好ましい。
第2実施形態のPC10によれば、淡部吸収型の変更ディザマトリクス145を用いる場合に中間調領域以外の領域で生じ得る濃度変化率の急激な変化を、濃度変化率の変化が比較的目立ち難い低階調領域で吸収することができる。
次に、図13から図17を参照して、第3実施形態について説明する。上記第2実施形態のPC10は、低階調領域において、濃度変化率(dy/dx)が基準ディザマトリクス142よりも緩やかになるように、変更ディザマトリクス(淡部吸収型のディザマトリクス145)が生成されていた。これに対し、第3実施形態のPC10は、高階調領域において、濃度変化率(dy/dx)が基準ディザマトリクス142よりも緩やかになるように、変更ディザマトリクスを生成する。なお、第3実施形態のPC10で生成される変更ディザマトリクスは、「暗部吸収型のディザマトリクス146」と称する。
第3実施形態において実行される印刷データ生成処理は、変更ディザマトリクス143に代えて暗部吸収型の変更ディザマトリクス146を用いてディザ処理(S514)を実行する点を除き、第1実施形態(図5)の印刷データ生成処理と同一である。
図13は、第3実施形態で実行される暗部吸収型のディザ閾値変更処理(S130)を示すフローチャートである。この暗部吸収型のディザ閾値変更処理(S130)は、第1実施形態のディザ閾値変更処理(S510:図7)に代えて実行される処理である。
まず、CPU11は、入力レベル1閾値変更処理(S702)を実行する。なお、この入力レベル1閾値変更処理(S702)は、図8のS702と同一の処理である。この入力レベル1閾値変更処理(S702)により、ギャップ修正ディザマトリクス(図3(a))が生成される。
次に、CPU11は、変数「Si」に「2」を設定し(S1302)、変数「n」に「255」を設定し(S1304)、変数「L」に「255」を設定する(S1306)。次に、CPU11は、基準ディザマトリクス142(図2(a))において、「L」の閾値(例えば255)が格納されているセルを特定し(S1307)、その特定したセルに対し、ギャップ修正ディザマトリクス(図3(a))において設定されている閾値(例えば249)を取得し、変数「Ln」に、その取得した閾値を設定する(S1308)。
次に、CPU11は、「Ln」と「n」とが等しいか否かを判断する(S1310)。S1310の判断が否定される場合(S1310:No)、CPU11は、ギャップ修正ディザマトリクス(図3(a))において、「L」の閾値が設定してあったセルの値を「n」に変更する(S1312)。次に、CPU11は、「n」から「Si」を減算し(S1314)、「L」から1を減算する(S1316)。そして、CPU11は、S1307に戻り処理を繰り返す。
このようにして処理を繰り返すうちに、S1310の判断が肯定されると(S1310:Yes)、CPU11は、生成されたディザマトリクスを、暗部吸収型の変更ディザマトリクス146としてHDD14(図1)に記憶し(S1318)、暗部吸収型のディザ閾値変更処理(S130)を終了する。この暗部吸収型のディザ閾値変更処理(S130)により、暗部吸収型の変更ディザマトリクス146が生成される。
図14は、暗部吸収型の変更ディザマトリクス146の一例を示す図である。図14に示すように、暗部吸収型の変更ディザマトリクス146においては、8個のセルに閾値「1」が設定されており、最大閾値「255」から「243」までの間は、偶数の閾値が間引かれている。そして、閾値「2」から「242」までの間は、閾値が連続的に設定される。
図15は、濃淡レベルとONドット数との対応関係を示すグラフであり、図12に対応する。図15の上段は、濃淡レベルが0から255の範囲を示し、下段は、濃淡レベルが225から255の範囲を拡大して示す。なお、図15において、破線は、基準ディザマトリクス142を用いてディザ処理する場合を示し、実線は、図14に示す暗部吸収型の変更ディザマトリクス146を用いてディザ処理する場合を示している。
上述したように、暗部吸収型の変更ディザマトリクス146(図14)においては、最小閾値「1」が、例えば8個のセルに設定され、かつ「2」以上の閾値が連続的に設定されている。よって、図15に示すように、暗部吸収型の変更ディザマトリクス146を用いる場合のONドット数は、基準ディザマトリクス142を用いる場合に比較して、全体として高い値となる。換言すれば、暗部吸収型変更ディザマトリクス146を用いる場合は、基準ディザマトリクス142を用いる場合に比較して、出力画像は、全体として濃く印刷される。
しかしながら、濃淡レベルが「241」以上の高階調領域(本発明の高階調領域の一例)においては、暗部吸収型の変更ディザマトリクス146を用いる場合のONドット数の変化率が緩やかとなり、濃淡レベル255において、基準ディザマトリクス142を用いる場合のONドット数と一致する。換言すれば、暗部吸収型の変更ディザマトリクス146を用いる場合、高階調領域での濃淡レベルの変化に対するONドット数の変化を示す濃度変化率が、基準ディザマトリクス142を用いる場合の高階調領域での濃度変化率よりも小さくなるように、暗部吸収型の変更ディザマトリクス146の閾値が設定される。よって、最小閾値「1」の個数を増大したことで生じる濃度変化率の急激な変化が、高階調領域(濃淡レベルの高い領域)において吸収される。その結果、濃淡レベルが低階調領域および中間調領域においては、暗部吸収型の変更ディザマトリクス146を用いる場合の濃度変化率を、基準ディザマトリクス142を用いる場合と等しくすることができる。
第3実施形態のPC10によれば、暗部吸収型の変更ディザマトリクス146を用いる場合に中間調領域以外の領域で生じ得る濃度変化率の急激な変化を、その濃度変化率の変化が比較的目立ち難い高階調領域で吸収することができる。また、第2実施形態と同様に、中間調領域においては、基準ディザマトリクス142を用いた場合と同等の濃度変化率で、出力画像において濃淡を再現させることができる。
次に、図16を参照して、第4実施形態について説明する。第4実施形態のPC10は、印刷対象の入力画像データが、高輝度画像データであるか、あるいは低輝度画像データであるかに応じて、淡部吸収型のディザマトリクス145を生成するか、あるいは暗部吸収型のディザマトリクス146を生成するかを切り替える点において、他の実施形態と異なっている。
図16は、第4実施形態のPC10で実行される印刷データ生成処理を示すフローチャートである。この印刷データ生成処理は、第1実施形態の印刷データ生成処理(図5)に代えて実行される。以下、第1実施形態の印刷データ生成処理(図5)に含まれるステップと同一のステップについては、同一の符号を付して説明を省略または簡略化する。
第4実施形態では、S504からS507の処理により、4色分のディザ決定用パッチを選択した後、CPU11は、入力画像データの輝度ヒストグラムを作成する(S1602)。入力画像データは、R(赤),G(緑),B(青)の各色の輝度値から構成されるRGB画像データで構成される。また、本実施形態では、下記の(1)式に従って算出される値を、各画素の輝度として算出し、ヒストグラムを作成する。
輝度=Rの輝度値×0.29891+Gの輝度値×0.58661+Bの輝度値×0.11448 ・・・(1)
次に、CPU11は、入力画像データが、高い輝度の画素を多く含む高輝度画像データであるか、あるいは低い輝度の画素を多く含む低輝度画像データかを判断する(S1604)。具体的には、輝度ヒストグラムを参照し、例えば、輝度の高い画素の量(画素数)と、輝度の低い画素の量(画素数)とを比較し、輝度の高い画素の量が、輝度の低い画素の量よりも多ければ、高輝度画像データと判断する。なお、高い輝度と、低い輝度とを区別するための適切な閾値は、例えば、輝度が取り得る値の平均値(中心値)であってもよい。
S1604において、入力画像データが高輝度画像データであると判断される場合、すなわち全体的に明るい画像を表す画像データであると判断される場合、CPU11は、暗部吸収型のディザ閾値変更処理を実行する(S1606)。なお、この処理(S1606)は、図13の処理(S130)と同一である。この処理(S1606)によれば、高輝度画像データを変換して得られる対象画像データを出力画像データに変換するための変更ディザマトリクスとして、暗部吸収型の変更ディザマトリクス146(図14)が生成され、HDD14(図1)に記憶される。なお、暗部吸収型の変更ディザマトリクスが、本発明における第1種の変更ディザマトリクスの一例に相当する。
そして、CPU11は、暗部吸収型のディザ閾値変更処理(S1606)の4色分の処理を終了したか否かを判断し(S1608)、S1608の判断が否定される場合(S1608:No)、S1606に戻り、処理を繰り返す。
一方、S1604において、入力画像データが低輝度画像データであると判断される場合、すなわち全体的に暗い画像を表す画像データであると判断される場合、CPU11は、淡部吸収型のディザ閾値変更処理を実行する(S1610)。なお、この処理(S1610)は、図10の処理(S100)と同一であるため、詳細な説明は省略する。この処理(S1610)によれば、低輝度画像データを変換して得られる対象画像データを出力画像データに変換するための変更ディザマトリクスとして、淡部吸収型の変更ディザマトリクス145(図11)が生成され、HDD14に記憶される。なお、暗部吸収型の変更ディザマトリクス145が、第2種の変更ディザマトリクスの一例に相当する。
そして、CPU11は、淡部吸収型のディザ閾値変更処理(S1610)の4色分の処理を終了したか否かを判断し(S1612)、S1612の判断が否定される場合(S1612:No)、S1610に戻り、処理を繰り返す。
このようにして、暗部吸収型の変更ディザマトリクス146か、または淡部吸収型の変更ディザマトリクス145のいずれかが4色分生成され、S1608またはS1612の判断が肯定されると(S1608またはS1612:Yes)、CPU11は、入力画像データを、予め定められた関係に従って対象画像データに変換する色変換処理を実行し(S1614)、直前に生成した変更ディザマトリクス145,146に従って、対象画像データを出力画像に変換するディザ処理(S1616)を実行する。すなわち、高輝度画像データを色変換して得られた対象画像データは、S1606の処理において生成した、暗部吸収型の変更ディザマトリクス146を用いて出力画像データに変換され、一方、低輝度画像データを色変換して得られた対象画像データは、S1610の処理において生成した、淡部吸収型の変更ディザマトリクス145を用いて出力画像データに変換される。
第4実施形態によれば、高輝度画像データを色変換して得られる対象画像データは、暗部吸収型の変更ディザマトリクス146を用いてディザ処理される。図17を参照して説明したように、暗部吸収型の変更ディザマトリクス146が用いられる場合は、高階調領域(すなわち、濃い色の領域)における濃度変化率が、基準ディザマトリクス142を用いた場合と異なることとなる。しかし、高輝度画像データは、高い輝度の画素を多く含む明るい画像データであるため、高階調領域(すなわち、低い輝度に対応する濃い色の領域)における濃度変化率の変化が比較的目立ち難い。
同様に、低輝度画像データを色変換して得られる対象画像データは、淡部吸収型の変更ディザマトリクス145を用いてディザ処理される。図13を参照して説明したように、淡部吸収型の変更ディザマトリクス145を用いる場合は、低階調領域(すなわち淡い色の領域)における濃度変化率が、基準ディザマトリクス142を用いた場合と異なることとなる。しかし、低輝度画像データは、低い輝度の画素を多く含む暗い画像データであるため、低階調領域(すなわち、高い輝度に対応する淡い色の領域)における濃度変化率の変化が比較的目立ち難い。
なお、S100、S130、S510、S1606、S1610のステップを実行するCPU11が、本発明の変更手段の一例に相当し、S706〜S714、S1004〜S1018、S1302〜S1316、S1606、S1610のステップを実行するCPU11が、閾値調整手段の一例に相当する。また、S504のステップを実行するCPU11が、本発明のパッチ印刷制御手段の一例に相当し、S506のステップを実行するCPU11が、選択手段の一例に相当する。また、S801、S1002のステップを実行するCPU11が、本発明の最小閾値設定手段の一例に相当し、S514、S1616のステップを実行するCPU11が、ディザ手段の一例に相当する。また、S1604のステップを実行するCPU11が、本発明の判断手段の一例に相当し、S1614のステップを実行するCPU11が変換手段の一例に相当する。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、本実施形態では、最小閾値「1」の個数を増加させたが、基準ディザマトリクス142に最小閾値「1」が予め複数設定されていた場合において、より淡い色のディザ決定用パッチ52をユーザが指定した場合には、例えば、最小閾値の個数を減少するように、閾値を変更しても良い。
また、上記実施形態では、印刷データ生成処理(図5,図16)は、PC10において実行されているが、これに代えて、プリンタ40の制御部50において実行されても良い。この場合、制御部50(図1参照)が本発明の印刷制御装置の一例に相当し、画像形成部47が印刷部の一例に相当し、プリンタ40が印刷装置の一例に相当する。また、CPU41が本発明のコンピュータの一例に相当し、ROM42に格納されたプログラムが、印刷制御プログラムの一例に相当する。
また、上記実施形態では、プリンタ40がレーザプリンタで構成されるものとして説明したが、プリンタ40がインクジェット方式など、レーザ以外の方式を採用するプリンタであっても、本発明は適用可能である。
また、上記実施形態では、最小閾値設定ディザマトリクス(図2(b))の閾値をさらに変更して、変更ディザマトリクス143,145,146を生成することとしたが、最小閾値設定ディザマトリクスを、変更ディザマトリクス143として、ディザ処理に用いるように構成しても良い。この場合であっても、上記実施形態と同様に、最小の濃度が適切に表現された出力画像を、プリンタ40に印刷させることができる。
また、上記実施形態では、ユーザにより指定されたディザ決定用パッチ52を選択することとしていたが、プリンタ40が濃度測定用のセンサを備えている場合など、センサの測定結果をプリンタ40が取得できるように構成されている場合には、そのセンサの測定結果に基づいて、ディザ決定用パッチ52が選択されても良い。