A.第1実施例:
A−1.複合機の構成:
次に、本発明の実施の形態を実施例に基づき説明する。図1は、第1実施例における複合機100の構成を示すブロック図である。
複合機100は、複合機100を制御するコントローラとしてのCPU110と、DRAMなどの揮発性記憶装置120と、フラッシュメモリなどの不揮発性記憶装置130と、液晶ディスプレイなどの表示部140と、タッチパネルやボタンなどを含む操作部150と、通信部160と、印刷実行部200と、読取実行部300と、を備えている。
揮発性記憶装置120は、例えば、CPU110がコンピュータプログラムPGを実行する際に、用いられる種々の中間データを一時的に格納するためのバッファ領域121として用いられる。
不揮発性記憶装置130には、コンピュータプログラムPGと、テーブル群TSと、後述するインク残量データIRDと、が格納されている。CPU110は、コンピュータプログラムPGを実行することによって、複合機100を制御する種々の機能、例えば、印刷実行部200を制御して印刷を実行する印刷機能、読取実行部300を制御してスキャンデータを生成するスキャン機能、電話回線を介して画像データの送受信を行うファクシミリ機能、を実現する。テーブル群TSは、後述する各種のテーブル(図5、図6)を含む。コンピュータプログラムPGとテーブル群TSは、例えば、複合機100の出荷時に予め不揮発性記憶装置130に格納されている。これに代えて、コンピュータプログラムPGとテーブル群TSは、DVD−ROMなどに記録された形態や、サーバからネットワウンロードされる形態で提供されても良い。
通信部160は、外部機器と接続するためのインタフェースを含み、外部機器との間で、データ通信を行うために用いられる。例えば、通信部160は、LANを介してパーソナルコンピュータ400などの端末装置と接続するためのインタフェースと、アナログ電話回線のネットワークTNに接続するためのインタフェースと、を含む。
読取実行部300は、イメージセンサを含み、光学的に原稿を読み取ることによってスキャンデータを取得する。例えば、読取実行部300は、ファクシミリ機能において、電話回線を用いて送信すべき画像データを生成するためにも用いられる。
印刷実行部200は、シアン、マゼンタ、イエロ、ブラック(以下、それぞれ、C、M、Y、Kと略す)の各インクを吐出して印刷を行うインクジェット方式の印刷機構である。印刷実行部200は、CMYKの各インクを吐出して用紙上にドットを形成することによって、印刷を行う。印刷実行部200は、主走査部210と、副走査部220と、印刷ヘッド230と、ヘッド駆動部240と、インク供給部250と、温度センサ260と、を備えている。
図2は、複合機100の概略構成を、印刷実行部200の構成を中心に示す図である。図2(A)には、複合機100の全体構成の概略が示されている。図2(A)に示すように、複合機100の印刷実行部200は、さらに、印刷媒体としての用紙M(例えば、A4サイズの用紙)を収容するための用紙トレイ281、282と、印刷後の用紙Mが排出される排紙トレイ283と、印刷ヘッド230のインクを吐出する面と対向して配置されたプラテン270と、を備えている(図2(A))。
主走査部210は、印刷ヘッド230を搭載するキャリッジ213と、キャリッジ213を主走査方向(図2:Y方向)に沿って移動可能に保持する摺動軸214と、図示しない主走査モータと、を備えている。主走査部210は、主走査モータの動力を用いて、キャリッジ213を摺動軸214に沿って往復移動させる。これによって、用紙Mなどの印刷媒体に対して主走査方向に沿って印刷ヘッド230を往復移動させる主走査が実現される。
副走査部220は、プラテン270の上流側と下流側にそれぞれ配置された一対の上流側ローラ223、一対の下流側ローラ224を含む複数個の搬送ローラと、図示しない副走査モータと、を備える。副走査部220は、副走査モータの動力を用いて、用紙トレイ281、282から、プラテン270上を通り、排紙トレイ283に至る搬送経路RTに沿って、用紙Mを搬送する。これによって、印刷ヘッド230に対して主走査方向と交差する副走査方向に沿って印刷媒体を移動させる副走査が実現される。矢印ARは、プラテン270上における用紙Mの搬送方向(図2のX軸の正方向(+X方向))、すなわち、上述した副走査方向を示している。
インク供給部250は、印刷ヘッド230に複数種類の色のインクを供給する。インク供給部250は、カートリッジ装着部251と、チューブ252と、バッファタンク253と、を備えている。カートリッジ装着部251には、内部にインクが収容された容器であるインクカートリッジCTGが着脱可能に装着され、インクカートリッジCTGからインクが供給される。バッファタンク253は、キャリッジ213において、印刷ヘッド230の上方に配置され、印刷ヘッド230に供給すべきインクを一時的に収容する。チューブ252は、カートリッジ装着部251とバッファタンク253との間を接続するインクの流路である。インクカートリッジCTG内のインクは、カートリッジ装着部251、チューブ252、バッファタンク253を介して、印刷ヘッド230に供給される。図2には、図の煩雑を避けるために1個ずつのみ図示されているが、インクカートリッジCTG、カートリッジ装着部251、チューブ252、バッファタンク253は、印刷ヘッド230から吐出可能な複数種類のインク、具体的には、C、M、Y、Kのインクごとに設けられている。
図2(B)は、−Z側から、+Z側に向かって印刷ヘッド230を見た図を示している。印刷ヘッド230は、複数種類のインクを吐出するための複数種類のノズルNzを有する。具体的には、図2(B)に示すように、印刷ヘッド230のプラテン270と対向する面(印刷ヘッド230の−Z側の面)には、上述したC、M、Y、Kの各インクを吐出するためのノズル列NC、NM、NY、NKが形成されている。各ノズル列は、副走査方向に沿って並ぶ複数個のノズルNzを含んでいる。各ノズル列の副走査方向の長さ(ノズル長とも呼ぶ)を、NLとする。C、M、Y、Kの各インクを吐出するためのノズル列NC、NM、NY、NKは、主走査方向に所定の順序で並んでいる。本実施例では、図2(B)に示すように、+Y側から−Y側に向かって、K、C、M、Yの順序で並んでいる。
各ノズルNzは、印刷ヘッド230の内部に形成されたインク流路(図示省略)を介してバッファタンク253に接続されている。印刷ヘッド230の内部の各インク流路に沿ってインクを吐出させるためのアクチュエータ(図示省略)が設けられている。
ヘッド駆動部240は、主走査部210による主走査中にCPU110から供給される印刷データに従って印刷ヘッド230内の各アクチュエータを駆動する。これによって、副走査部220によって移動される印刷媒体上に印刷ヘッド230からインクが吐出される。この結果、印刷媒体上にドットが形成される。
CPU110は、印刷実行部200の主走査部210と副走査部220とヘッド駆動部240と、を制御して、1回の主走査処理(パスとも呼ぶ)と1回の副走査処理とを含む一組の処理を複数回に亘って繰り返し実行させることにより印刷を行う。1回の主走査処理は、用紙Mの搬送を停止した状態で、1回の主走査を行いつつ、印刷ヘッド230を駆動することによって、印刷すべき画像の一部分である部分画像を印刷する処理である。1回の副走査処理は、特定の搬送量だけ、用紙を搬送する処理である。
ここで、インクがノズルNzから吐出されると、インクが吐出された分、バッファタンク253内のインクが減少するので、バッファタンク253内に負圧が発生する。該負圧によって、カートリッジ装着部251、チューブ252を介して、インクカートリッジCTGからバッファタンク253へインクが供給される。C、M、Y、Kのうちの特定色のインク、例えば、黒色のインク(以下、Kインクとも呼ぶ)が、印刷のために短い時間内に複数個のノズルNzから大量に吐出されると、バッファタンク253への特定色のインクの供給の遅れが発生し得る。このようなインクの供給の遅れが発生すると、アクチュエータを駆動しても、特定色のインクがノズルNzから吐出されない不具合、あるいは、想定より少量しか吐出されない不具合が発生する。このような不具合が発生すると、印刷画像において、特定色が薄くなり、画質が低下する。インクの供給の遅れは、インクの流動性が低下すると、発生しやすい。例えば、複合機100内の温度(すなわち、印刷実行部200の温度)が過度に低くなると、インクの粘度が増大するために、インクの流動性が低下するので、インクの供給の遅れが発生しやすい。以上の説明から解るように、複合機100内の温度が基準以下で、かつ、単位時間内に、特定色のインクの吐出される量(すなわち、ドットが形成される量)が基準以上になると、インクの供給の遅れが特に発生しやすい。
図1のインク残量データIRDは、印刷実行部200が用いるシアン、マゼンタ、イエロ、ブラック(以下、それぞれ、C、M、Y、Kと略す)の各インクの残量を示すデータである。CPU110は、インク残量データIRDを用いて、各インクの残量を管理している。例えば、CPU110は、カートリッジ装着部251からインクカートリッジCTGが取り外されたこと、および、カートリッジ装着部251にインクカートリッジCTGが装着されたこと、を検出することによって、インクカートリッジCTGの交換を検出する。そして、CPU110は、各インクについて、インクカートリッジCTGが交換された時からの累積使用量を、例えば、印刷データに基づいてカウントし、当該累積使用量を、インクカートリッジCTGのインクの収容量の初期値から減ずることによって、各インクの残量を算出する。CPU110は、印刷が行われる度に、各インクの残量を算出して、インク残量データIRDを更新する。変形例では、インクカートリッジCTGにインクの残量を検出するセンサを設け、CPU110は、当該センサを用いて各インクの残量を検出しても良い。
A−2. 印刷処理:
対象画像データを用いて、印刷実行部200を制御して、対象画像を印刷する印刷処理について説明する。図3は、第1実施例の印刷処理のフローチャートである。この印刷処理は、ファクシミリデータによって示されるモノクロ画像を印刷するためにCPU110によって実行される。この印刷処理は、例えば、電話回線を介して、通信部160が、ファクシミリデータを受信したときに開始される。モノクロ画像は、黒色のみで表現されている。このために、モノクロ画像が、例えば、ベタ塗りの領域を含んでいると、該モノクロ画像を印刷する際には、Kインクが単位時間内に、大量に吐出されて、上述したインクの供給の遅れが発生しがちである。本実施例の印刷処理では、インクの供給の遅れの発生を抑制して、印刷される画像の画質の低下を抑制する工夫がなされている。
S105では、CPU110は、受信されたファクシミリデータを、印刷すべき対象画像を表す対象画像データとして取得する。受信されるファクシミリデータは、例えば、FAXG3などの規格に従って圧縮されている。
S110では、CPU110は、対象画像データに対して、色変換処理を実行して、CMYK画像データを取得する。具体的には、CPU110は、圧縮された対象画像データを解凍して、対象画像をONの画素とOFFの画素とによって表す二値画像データを取得する。この二値画像データは、例えば、縦200dpi×横200dpi相当の画素数で、A4サイズの原稿を表す画像データである。CPU110は、当該二値画像データをRGB値で画素ごとの色を表すRGB画像データに変換する。CPU110は、さらに、RGB値とCMYK値との対応関係を規定するルックアップテーブルを用いて、RGB画像データを、CMYK値で画素ごとの色を表すCMYK画像データに変換する。CMYK値は、インクの色に対応するC、M、Y、Kの4個の色成分の濃度を示す階調値(例えば、256階調の値)を含む色値である。
図4は、CMYK画像データの説明図である。S110で生成されるCMYK画像データは、C、M、Y、K成分のそれぞれの成分画像データを含む。図4(A)には、K成分の成分画像データの一部分と、C、M、Y成分の成分画像データの一部分と、が図示されている。色変換処理では、変換前の二値画像データのONの画素の値が、黒色を示すCMYK値(0、0、0、255)に変換され、OFFの画素の値が、白色を示すCMYK値(0、0、0、0)に変換される。したがって、K成分の成分画像データの各画素の値は、255と、0と、のいずれかである。図4(A)のK成分の成分画像データは、ベタ塗りの部分を示しているので、全ての画素の値が、255とされている。C、M、Y成分の成分画像データの各画素の値は、図4(A)に示すように、全て0である。
S115では、CPU110は、温度センサ260を用いて、複合機100内の温度を検出することによって、複合機100内の温度Tdを取得する。
S120では、CPU110は、取得された温度Tdに基づいて、Kインクの許容量Mkを決定する。具体的には、Kインクの許容量は、テーブル群TS(図1)に含まれる許容量テーブルATを参照して決定される。
図5は、テーブル群TSの説明図である。図5(A)には、許容量テーブルATの一例が示されている。許容量テーブルATでは、複数個の温度T1〜T5に、それぞれ、Kインクの許容量M1〜M5が対応付けられている。温度T1に対応する許容量M1は、複合機100内の温度がT1である場合に、1回の主走査処理にて許容されるKインクの吐出量の上限値を示す。許容量M1〜M5には、本実施例では、K成分の濃度を示す階調値の合計値に換算された値が用いられている。例えば、複合機100の製造者は、温度T1の環境下で、Kインクの供給の遅れが発生することなく、1回の主走査処理で形成可能なKインクのドット数の上限値を、実験的に決定する。そして、複合機100の製造者は、当該ドット数の上限値に、1ドットに対応する濃度(例えば、255)を乗ずることによって、温度T1に対応する許容量M1を決定する。許容量テーブルATには、このように予め決定された温度T1〜T5と許容量M1〜M5との対応関係が記録されている。
CPU110は、例えば、許容量テーブルATに記録された複数個の温度と、対応する許容量と、を用いた補完計算によって、複合機100内の温度Tdに対応するKインクの許容量Mkを決定する。
S125では、CPU110は、色変換処理済みの対象画像データ(CMYK画像データ)によって示される対象画像IMのうち、1回の主走査処理に対応する部分画像PIを注目部分画像として選択する。図4(B)には、用紙Mに印刷される対象画像IMの概略が示されている。図4(B)に示すように、対象画像IMは、複数回の主走査処理によって、複数個の部分画像PIに分けて印刷される。この時点では、印刷可能な最大のサイズの部分画像PI、すなわち、印刷時の搬送方向に対応する幅、すなわち、図4(B)のX方向の幅がノズル長NLである部分画像PIが、注目部分画像として選択される。例えば、最初のS125では、1回目の主走査処理に対応する部分画像PI1、すなわち、搬送方向の下流側に対応する対象画像IMの端(図4(B)の+X側の端)からノズル長NL分の部分画像PI1が選択される。k回目(kは、2以上の整数)のS125では、(k−1)回目の主走査処理(後述するS175)で印刷済みの部分画像PI(k−1)の−X側に隣接するノズル長NL分の部分画像PIkが選択される。
S130では、CPU110は、注目部分画像を表す部分画像データを用いて、注目部分画像のK成分の値の合計値Tkを算出する。すなわち、CPU110は、注目部分画像を表す部分画像データに含まれる複数個の画素のK成分の値を全て合計して、合計値Tkを算出する。
S135では、CPU110は、S130で算出された合計値Tkが、S120で算出された許容量Mkより大きいか否かを判断する。合計値Tkが許容量Mkより大きい場合には、仮に、後述するS140〜S165を行うことなく、注目部分画像を印刷する場合に、Kインクの供給が遅れる可能性が比較的高いと判断できる。合計値Tkが許容量Mk以下である場合には、仮に、後述するS140〜S165を行うことなく、注目部分画像を印刷したとしても、Kインクの供給が遅れる可能性が比較的低いと判断できる。
合計値Tkが許容量Mk以下である場合には(S135:NO)、CPU110は、S140〜S165の処理を行うことなく、S170に処理を進める。合計値Tkが許容量Mkより大きい場合には(S135:YES)、CPU110は、S140に処理を進める。
S140では、CPU110は、C、M、Yのインクの残量のいずれもが所定の閾値TH以上であるか否かを判断する。各インクの残量は、上述したように、インク残量データIRDに記録されている。
C、M、Yのインクの残量のいずれもが閾値TH以上である場合には(S140:YES)、S145にて、CPU110は、黒色画素の置換率を決定する。具体的には、CPU110は、テーブル群TSに含まれる置換率決定テーブルRDTを参照して、第1置換率RR1と、第2置換率RR2と、を決定する。第1置換率RR1は、処理対象の部分画像PIに含まれる黒色画素のうち、第1置換処理の対象とすべき画素の割合である。第2置換率RR2は、処理対象の部分画像PIに含まれる黒色画素のうち、第1置換処理の対象とすべき画素の割合である。黒色画素、第1置換処理、第2置換処理については後述する。
図6は、置換率決定テーブルRDTの一例を概念的に示す図である。置換率決定テーブルRDTは、例えば、図6に示すように、合計値Tkと第1置換率RR1との対応関係と、合計値Tkと第2置換率RR2との対応関係と、をそれぞれ規定するテーブルである。これらの対応関係は、許容量Mkを含む4個の閾値Mk、THa、THb、THcを用いて規定されている。閾値THaは許容量Mkより大きく、閾値THbは閾値THaより大きく、閾値THcは閾値THbより大きい(Mk<THa<THb<THc)。
図6に示すように、合計値Tkが許容量Mkより大きな範囲について、第1置換率RR1と第2置換率RR2との少なくとも一方が、0より大きな値に設定されている。合計値Tkが許容量Mkより大きく、閾値THa以下の第1範囲(Mk<Tk≦THaの範囲)では、第1置換率RR1は、合計値Tkが大きくなるに連れて、所定の増加率(傾き)で、直線的に増加する。第1範囲では、第2置換率RR2は、0である。合計値Tkが、閾値THaより大きく、閾値THb以下の第2範囲(THa<Tk≦THbの範囲)では、第1置換率RR1は、合計値Tkが大きくなるに連れて、第1の範囲の増加率より小さな増加率で、直線的に増加する。第2範囲では、第2置換率RR2は、合計値Tkが大きくなるに連れて、所定の増加率で、直線的に増加する。合計値Tkが閾値THbより大きく、閾値THc以下の第3範囲(THb<Tk≦THcの範囲)では、第1置換率RR1は、合計値Tkが大きくなるに連れて、直線的に減少し、合計値Tk=THcで、0になる。第3範囲では、第2置換率RR2は、合計値Tkが大きくなるに連れて、第2範囲の増加率より大きな増加率で、直線的に増加する。合計値Tkが閾値THcより大きい第4範囲(THc<Tkの範囲)では、第1置換率RR1は0であり、第2置換率RR2は、第3範囲の増加率より小さな増加率で、直線的に増加する。
第1置換率RR1と第2置換率RR2とは、後述するS160の置換処理後の部分画像PIを示す部分画像データにおいて、K成分の画素の値の合計値Tkが、許容量Mk以下に低減されるように、設定されている。
S150では、CPU110は、注目部分画像を表す部分画像データを用いて、注目部分画像に含まれる複数個の画素から、複数個の黒色画素を、置換対象の複数個の画素の候補として抽出する。黒色画素は、例えば、K成分の画素の値が、所定の基準値(例えば、240)以上である画素である。本実施例では、対象画像データは、K成分の画素の値は、上述したように、255、または、0のいずれかであるので、K成分の画素の値が、255である画素が、黒色画素として抽出される。例えば、図4(A)に示す例では、全ての画素のK成分が255であるので、全ての画素が黒色画素として抽出される。
S155では、CPU110は、抽出された複数個の黒色画素の中から、置換対象の複数個の画素を決定する。具体的には、CPU110は、第1置換率RR1に基づいて、第1置換処理の対象とすべき第1対象画素P1の個数PN1を決定し、第2置換率RR2に基づいて、第2置換処理の対象とすべき第2対象画素P2の個数PN2を決定する。個数PN1、PN2は、注目部分画像の画素の総数PNtotalに、第1置換率RR1、第2置換率RR2を乗じた値に、それぞれ決定される(PN1=PNtotal×RR1、PN2=PNtotal×RR2)。CPU110は、抽出された複数個の黒色画素の中から、PN1個の第1対象画素P1と、PN2個の第2対象画素P2とを決定する。これらの画素P1、P2は、注目部分画像内に偏り無く分散して配置されるように、決定される。例えば、抽出された複数個の黒色画素の中から、PN1個の第1対象画素P1が、乱数に基づいてランダムに決定され、残りの複数個の黒色画素の中から、PN2個の第2対象画素P2が乱数に基づいて、ランダムに決定される。図4(A)の例では、枠線で囲んだ複数個の画素は、第1対象画素P1に決定された画素であり、ハッチングされた複数個の画素は、第2対象画素P2に決定された画素である。
S160では、CPU110は、置換対象の複数個の画素の値を置換する置換処理を実行する。具体的には、CPU110は、PN1個の第1対象画素P1のそれぞれの画素のCMYK値を、第1置換処理によって置換する。CPU110は、PN2個の第2対象画素P2のそれぞれの画素のCMYK値を、第2置換処理によって置換する。第1置換処理は、図5(B)の第1置換テーブルRT1を用いて、実行され、第2置換処理は、図5(C)の第2置換テーブルRT2を用いて実行される。置換テーブルRT1、RT2には、置換前のK成分の値が240〜255の範囲、すなわち、黒色画素がとり得るK成分の値の範囲について、置換前のK成分の値と、置換後のC、M、Y、Kの各成分の値と、の対応関係が規定されている。
第1置換処理では、K成分の値が、置換前の値の約半分の値に置換される。第2置換処理では、K成分の値が、0に置換される。そして、第1置換処理、第2置換処理では、K成分の値が置換により減少する分を補うために、C、M、Y成分の値のそれぞれが、置換前の値(本実施例では0)から、置換テーブルR1、R2に規定された値に置換される。置換後のC、M、Yの値は、互いに同じ値であり、これによって、C、M、Y成分によって、無彩色を表すことができる。
この結果、第1置換処理によって、第1対象画素P1は、K成分のみで黒色を表すCMYK値から、C、M、Y、Kの4個の成分を用いて黒色を表すCMYK値に置換される。第2置換処理によって、第2対象画素P2は、K成分のみで黒色を表すCMYK値から、C、M、Yの3個の成分を用いて、K成分を用いずに、黒色を表すCMYK値に置換される。置換前のCMYK値によって表される黒色と、置換後のCMYK値によって表される色と、は実質的に同じ色である。
S140にて、C、M、Yのインクの残量の少なくとも1つが所定の閾値TH未満である場合には(S140:NO)、CPU110は、上述したS145〜S160に代えて、S165の処理を実行する。
S165では、CPU110は、注目部分画像のK成分の値の合計値Tkが許容量Mk以内になるように注目部分画像に含まれる主走査ラインの数を変更する。主走査ラインは、対象画像IMおよび部分画像PIにおいて、印刷時の主走査方向に対応する方向(図4(B)のY方向)に沿って並ぶ複数個の画素によって構成されるラインである。注目部分画像は、上述したように、ノズル長NLに相当するX方向の幅を有する。すなわち、注目部分画像に含まれる主走査ラインの本数は、ノズル長NLに相当するX方向の幅分の本数である。
図7は、部分画像PIを概念的に示す図である。図6の部分画像PIは、n本(nは、ノズル長NLに相当するX方向の幅分の本数)の主走査ラインL(1)〜L(n)を含んでいる。n本の主走査ラインL(1)〜L(n)の1〜nの番号は、搬送方向の下流側に対応する端(図7の+X側の端)に位置する主走査ラインから順に、付されている。CPU110は、例えば、n本の主走査ラインL(1)〜L(n)を、番号順に、1本ずつ注目ラインとして選択する。CPU110は、注目ラインに含まれる複数個の画素のK成分の値の合計値を算出する。そして、CPU110は、1番目の主走査ラインから注目ラインまでのK成分の値の総合計値を、順次に算出する。CPU110は、k成分の値の総合計値が、許容量Mkより大きくなるまで、注目ラインを順次に変更しながら計算を続ける。例えば、主走査ラインL(1)〜L(m)のK成分の値の総合計値が、許容量Mkより小さく、主走査ラインL(1)〜L(m+1)のK成分の値の総合計値が、許容量Mkより大きい、とする(mは、nより小さな1以上の整数)。この場合には、CPU110は、主走査ラインL(1)〜L(m+1)のK成分の値の総合計値が、許容量Mkより大きいと判明した時点で、計算を終了して、注目部分画像の主走査ラインの本数を、nからmに変更する。すなわち、注目部分画像内のK成分の値の合計値Tkが、許容量Mk以下になるように、注目部分画像は、n本の主走査ラインL(1)〜L(n)を含む部分画像から、m本の主走査ラインL(1)〜L(m)を含む部分画像に変更される。なお、この場合には、次回のS125にて選択される次回の注目部分画像は、主走査ラインL(m+1)を先頭の主走査ライン(+X側の端に位置する主走査ライン)とするノズル長NL分の部分画像である。
S170では、CPU110は、注目部分画像を表す部分画像データ(CMYK画像データ)に対してハーフトーン処理を実行する。例えば、CPU110は、印刷解像度(例えば、縦300dpi×横300dpi)に応じて、部分画像データの画素数を調整する。そして、CPU110は、画素数を調整済みのCMYK画像データを、ディザ法や誤差拡散法などの公知の手法を用いて、ドットデータに変換する。ドットデータは、CMYKのそれぞれの色成分についてドットの形成状態を画素ごとに表すデータである。ドットデータの各画素の各色成分の値によって表されるドットの形成状態は、例えば、「ドットを形成する」、「ドットを形成しない」のうちのいずれかの状態である。変形例では、ドットの形成状態は、「大ドットを形成する」、「中ドットを形成する」、「小ドットを形成する」、「ドットを形成しない」の4つの状態であっても良い。
S175では、CPU110は、生成されたドットデータを用いて、印刷実行部200を制御して1回の主走査処理を実行させることによって、印刷実行部200に注目部分画像を印刷させる。
ここで、S145〜S160の処理が行われない場合には、注目部分画像を表すCMYK画像データのK成分の値だけが0より大きな値であり、C、M、Yの各成分の値は全て0である(図4(A))。したがって、注目部分画像は、Kインクを用いて、C、M、Yのインクを用いずに、印刷される。
これに対して、S145〜S160の処理が行われた場合には、注目部分画像を表すCMYK画像データのうち、第1対象画素P1および第2対象画素P2では、C、M、Yの各成分の値が0より大きな値である(図4(B))。したがって、印刷される注目部分画像のうち、第1対象画素P1および第2対象画素P2に対応する領域は、C、M、Yのインクを用いて黒色を表すことによって、印刷される。より詳しくは、第1対象画素P1では、K成分の値が0より大きな値である(図4(B))ので、第1対象画素P1に対応する領域は、C、M、Y、Kのインクを用いて印刷される。第2対象画素P2では、K成分の値が0である(図4(B))ので、C、M、Yのインクを用いて、Kのインクを用いずに、印刷される。
そして、S145〜S160の処理が行われた場合には、注目部分画像を表すCMYK画像データのうち、第1対象画素P1および第2対象画素P2とは異なる画素では、K成分の値だけが0より大きな値であり、C、M、Yの各成分の値は全て0である。このために、印刷される注目部分画像のうち、第1対象画素P1および第2対象画素P2とは異なる画素に対応する領域は、Kインクを用いて、C、M、Yのインクを用いずに、印刷される。
S180では、CPU110は、対象画像の印刷が完了したか否かを判断する。対象画像の印刷が完了していない場合には(S180:NO)、S185にて、CPU110は、印刷実行部200を制御して1回の副走査処理を実行させることによって、印刷実行部200に用紙Mを搬送方向に所定量だけ搬送させる。副走査処理後に、CPU110は、S125に戻って、次の注目部分画像を選択する。
以上説明した本実施例によれば、部分画像PIを印刷する際に、Kインクについて、インク供給部250から印刷ヘッド230への供給が遅れる可能性が比較的低い場合、具体的には、部分画像PIのK成分の値の合計値Tkが、複合機100内の温度Tdに基づいて決定される許容量Mk以下である場合には(S135:NO)、上述した図3のS145〜S160は実行されない。したがって、この場合には、部分画像PIは、Kインクを用いて、C、M、Yのインクを用いずに、印刷される。
そして、Kインクについて、インク供給部250から印刷ヘッド230への供給が遅れる可能性が比較的高い場合には、具体的には、合計値Tkが許容量Mkより大きい場合には(S135:YES)、C、M、Yのインクの残量が、閾値以上であることを条件に、上述した図3のS145〜S160が実行される。したがって、この場合には、部分画像PIのうち、第1対象画素P1および第2対象画素P2に対応する領域は、C、M、Yのインクを用いて黒色を表すことによって印刷され、第1対象画素P1および第2対象画素P2とは異なる画素に対応する領域は、Kインクを用いて、C、M、Yのインクを用いずに、印刷される。この結果、例えば、供給の遅れを解消するための待機時間を設けることなく、単位時間あたりのKインクの使用量を減らすことができる。したがって、印刷時間が長くなることなく、Kインクの供給の遅れを抑制することができ、印刷される画像の画質が低下することを抑制することができる。
さらに、上述した第1対象画素P1および第2対象画素P2に対応する領域と、第1対象画素P1および第2対象画素P2とは異なる画素に対応する領域とは、1回の主走査にて印刷される部分画像PI内の領域である。この結果、1回の主走査ごとに、Kインクの供給の遅れを適切に抑制することができる。この結果、例えば、1回の主走査と次の主走査との間に、Kインクの供給の遅れを解消するための待機時間を設ける必要がない。このために、例えば、印刷時間が長くなることなく、部分画像PIの画質の低下を抑制することができる。
さらに、CPU110は、部分画像PIを印刷する際のKインクの使用量を示す指標値として、K成分の値の合計値Tkを算出する(図3のS130)。合計値Tkが、閾値としての許容量Mkより大きいか否かによって、Kインクの供給が遅れる可能性が比較的高いか否かが判断される(図3のS135)。この結果、Kインクの供給が遅れる可能性が比較的高いか否かを精度良く判断できるので、Kインクの供給の遅れを適切に抑制することができる。
インクの供給の遅れは、インクの粘度が高いほど発生しやすいので、インクの供給の遅れは、複合機100内の温度Tdが低いほど発生しやすい。本実施例では、閾値としての許容量Mkは、複合機100内の温度Tdに基づいて、複合機100内の温度Tdに応じた適切な値に決定される(図3のS120)。この結果、Kインクの供給が遅れる可能性が比較的高いか否かをより精度良く判断できる
さらに、図6に示すように、合計値Tkが、第1閾値としての許容量Mkより大きい場合に、第1置換率RR1が0より大きな値に設定される。したがって、合計値Tkが、許容量Mkより大きい場合に、第1置換処理が行われる。すなわち、合計値Tkが、許容量Mkより大きい場合に、Kインクと、C、M、Yのインクと、を用いて、黒色を表すことによって、第1対象画素P1に対応する領域内の画像が印刷される。また、合計値Tkが、第2閾値としての許容量THaより大きい場合に、第2置換率RR2が0より大きな値に設定される。したがって、合計値Tkが、許容量THaより大きい場合に、第2置換処理が行われる。すなわち、合計値Tkが、許容量THaより大きい場合に、Kインクを用いずに、C、M、Yのインクを用いて、黒色を表すことによって、第2対象画素P2に対応する領域内の画像が印刷される。この結果、合計値Tkに応じて、置換対象画素に対応する領域の印刷に使用するインクを適切に切り替えることができる。
例えば、Kインクと、C、M、Yのインクと、を用いて、黒色を表す場合には、Kインクを用いる分、Kインクの使用量を低減できる程度は比較的小さいが、C、M、Yのインクの使用量を比較的少なくできるために、Kインクのみで印刷される通常時と比較した場合の画質の変動を抑制できる。また、Kインクを用いずに、C、M、Yのインクを用いて、黒色を表す場合には、Kインクを用いない分、Kインクの使用量を低減できる程度は比較的大きいが、C、M、Yのインクの使用量が比較的多くなるために、Kインクのみで印刷される通常時と比較した場合の画質の変動が大きくなり得る。本実施例では、合計値Tkが大きくなるほど、すなわち、減少させるべきKインクの量が大きくなるに連れて、行われる置換処理が、第1置換処理から、第2置換処理へと、段階的に切り替えられる。この結果、Kインクの供給の遅れを抑制しつつ、印刷される画像の画質の変動を抑制できる。
さらに、C、M、Yのインクを用いて黒色を表すことができない場合、具体的には、C、M、Yのインク残量のいずれもが閾値TH以下である場合には(図3のS140:NO)、CPU110は、合計値Tkが許容量Mkより大きな部分画像PIに含まれる主走査ラインの本数を、合計値Tkが許容量Mkになるように、減少させる(図3のS165)。また、合計値Tkが許容量Mk以下である部分画像PIに含まれる主走査ラインの本数は、変更されない(図3のS135:NO)。この結果、C、M、Yのインクを用いて黒色を表すことができない場合であっても、1個の部分画像PIを印刷する際のKインクの使用量を減らすことができる。次の部分画像PIが印刷されるまでの間には、若干の時間があるために、この間に、インクの供給の遅れが解消され得る。この結果、C、M、Yのインクを用いて黒色を表すことができない場合であっても、印刷される画像の画質が低下することを抑制することができる。また、合計値Tkが許容量Mkより大きな部分画像PIに含まれる主走査ラインの本数だけを減少させ、合計値Tkが許容量Mk以下である部分画像PIに含まれる主走査ラインの本数を変更しないので、印刷時間が過度に長くなることを抑制することができる。
図8は、主走査ラインの本数の変更の説明図である。図8(a)には、許容量Mkが10000である場合に、特定の対象画像IMが用紙Mに印刷された様子が示されている。図(a)の例では、対象画像IMの1〜3番目の部分画像PI1〜PI3のK成分の値の合計値Tkは、それぞれ、4800、7200、3200であり、いずれも許容量Mk以下であるとする。この場合には、部分画像PI1〜PI3のいずれについても主走査ラインの本数を変更が行われない。このために、図8(a)の例では、部分画像PI1〜PI3のX方向の幅は、いずれも、初期値であるノズル長NLである。
図8(b)には、許容量Mkが5000である場合に、図8(a)の例と同じ対象画像データを用いて対象画像IMbが用紙Mに印刷された様子が示されている。この場合には、対象画像IMbの1〜3番目の部分画像PI1b〜PI3bのうち、第1の部分画像PI1bは、図8(a)の第1の部分画像PI1と同じである。そして、第2の部分画像PI2bでは、図8(a)の第2の部分画像PI2とは異なり、K成分の値の合計値Tkが許容量Mk=5000以下になるように、主走査ラインの本数が減らされている。このために、第2の部分画像PI2bのX方向の幅SLは、ノズル長NLより短い。第3の部分画像PI3bでは、K成分の値の合計値Tkが許容量Mk=5000以下であるので、主走査ラインの本数は変更されない。このために、第3の部分画像PI3bのX方向の幅は、ノズル長NLである。このように、画像内の複数個の部分画像PIのうち、K成分の値の合計値Tkが許容量Mkより大きい部分画像のみについて、選択的に主走査ラインの本数が減らされるので、例えば、全ての部分画像について主走査ラインの本数が減らされる場合と比較して、主走査処理の回数を少なくできる。この結果、印刷時間が過度に長くなることなく、Kインクの供給が遅れることを抑制することができる。
以上の説明から解るように、用紙Mに印刷される部分画像PIのうちの、第1対象画素P1および第2対象画素P2に対応する領域は、第2領域の例であり、第1対象画素P1および第2対象画素P2とは異なる画素に対応する領域は、第1領域の例である。
B.第2実施例
図9は、第2実施例の印刷処理のフローチャートである。第2実施例では、図3のS145〜S155に代えて、図9のS145BとS150Bが実行される。図9の他のステップは、図3の同符号のステップと同一である。
S145Bでは、CPU110は、注目部分画像を表す部分画像データを解析して、文字を含む領域である文字領域と、文字とは異なるオブジェクト(例えば、写真や線画)を含む領域である非文字領域と、を特定する。
注目部分画像から文字領域と非文字領域とを検出する方法としては、種々の公知の方法を採用可能である。例えば、注目部分画像が複数の処理領域(例えば、所定サイズの矩形領域)に分割され、処理領域毎に画素値(例えば、輝度値)の分散が算出される。そして、所定の閾値よりも小さな分散を有する処理領域が文字領域として特定され、閾値以上の分散を有する処理領域が非文字領域として特定される。なお、領域の特定には、分散に限らず、他の種々の情報(例えば、各処理領域で用いられている色の数)が採用され得る。あるいは、公知のOCR(Optical Character Recognition)技術で利用される文字認識
処理を用いることによって、文字領域が特定されてもよい。
図10は、対象画像IM2の一例を示す図である。図10(A)の対象画像IM2は、文字を含む文字領域Txと、線画を示す非文字領域Drと、を含んでいる。このために、対象画像IM2を印刷する際に行われる複数個の部分画像PI1〜PI4は、文字領域Txの一部と、非文字領域Drの一部と、を含み得る。例えば、対象画像IM2の2番目の部分画像PI4である図10(B)の第2の部分画像PI2が、注目部分画像である場合には、図10(B)に示すように、S145Bにて、文字領域TAと、非文字領域DAと、が特定される。
S150Bでは、CPU110は、非文字領域に含まれる複数個の画素を、置換対象画素として決定する。非文字領域に含まれる複数個の画素は、第1対象画素P1に決定されても良いし、第2対象画素P2に決定されても良い。あるいは、非文字領域に含まれる複数個の画素のうちの一部の画素が第1対象画素P1に決定され、残りの一部の画素が第2対象画素P2に決定されても良い。
以上説明した第2実施例によれば、C、M、Yのインクを用いて黒色を表すことによって印刷される領域、すなわち、第1対象画素P1や第2対象画素P2に対応する領域は、非文字領域である。そして、Kインクを用いて、C、M、Yのインクを用いずに、印刷される領域、すなわち、第1対象画素P1や第2対象画素P2とは異なる画素に対応する領域は、文字領域である。この結果、注目部分画像内に含まれるオブジェクトの種類によって、適切に置換対象画素が決定されるので、S160の置換処理が行われることに起因する印刷画像の画質の低下をさらに抑制することができる。
より具体的には、Kインクのみを用いて、黒色を表す場合には、エッジの鮮鋭度が高くなりやすい。C、M、Yのインクを用いて、黒色を表す場合には、エッジの鮮鋭度が低くなりやすい。文字では、エッジの鮮鋭度が高い方が読みやすく、見栄えが良い。このために、文字領域は、Kインクのみを用いて印刷されることが、画質の観点から好ましい。写真や描画などでは、文字と比較すると、エッジの鮮鋭度より色の階調性が、画質の観点から重要である。このために、非文字領域は、Kインクのみを用いて印刷される必要性は低く、画像によっては、C、M、Yのインクを用いて黒色を表すことによって印刷されることが画質の観点から好ましい場合もある。このために、第2実施例では、上述したように、C、M、Yのインクを用いて黒色を表すことによって印刷される領域は、非文字領域であり、Kインクを用いて、C、M、Yのインクを用いずに、印刷される領域は、文字領域である。したがって、S160の置換処理が行われることに起因する印刷画像の画質の低下をさらに抑制することができる。
C.変形例:
(1)上記実施例では、部分画像PIのK成分の値の合計値Tkが、複合機100内の温度Tdに基づいて決定される許容量Mkより大きいか否かに基づいて、インクの供給が遅れる可能性が比較的高いか否かが判断される。これに代えて、例えば、複合機100内の温度Tdが、基準値以下であるか否かに基づいて、インクの供給が遅れる可能性が比較的高いか否かが判断されても良い。複合機100内の温度Td(すなわち、印刷実行部200の温度)に応じて、適切な制御を行うことができるので、インクの供給の遅れを抑制することができる。例えば、複合機100内の温度Tdが、予め定められた基準値以下であり、かつ、部分画像PIのK成分の値の合計値Tkが、予め定められた基準値以上である場合に、インクの供給が遅れる可能性が比較的高いと判断されても良い。
また、温度Tdのみに基づいて、インクの供給が遅れる可能性が比較的高いか否かが判断されても良い。例えば、CPU110は、複合機100内の温度Tdが、予め定められた基準値以下である場合に、インクの供給が遅れる可能性が比較的高いと判断して、予め定められた割合の画素に対して、S160の置換処理を実行しても良い。そして、CPU110は、複合機100内の温度Tdが、予め定められた基準値より大きい場合に、インクの供給が遅れる可能性が比較的低いと判断して、S160の置換処理を実行しないこととしても良い。
さらには、温度Tdや許容量Mkに代えて、インクの粘度を直接測定する粘度センサをインクカートリッジに取り付けても良い。そして、CPU110は、検出されるインクの粘度が比較的高い場合に、インクの供給が遅れる可能性が比較的高いと判断し、検出されるインクの粘度が比較的低い場合に、インクの供給が遅れる可能性が比較的低いと判断しても良い。
(2)上記実施例では、部分画像PI1ごとに、インクの供給が遅れる可能性が比較的高いか否かが判断されている。これに代えて、対象画像全体について、当該判断が行われても良い。例えば、対象画像全体のK成分の値の合計値が、許容量より大きい否かに基づいて、インクの供給が遅れる可能性が比較的高いか否かが判断されても良い。この場合には、例えば、インクの供給が遅れる可能性が比較的高いと判断される場合に、対象画像全体に第1対象画素P1および第2対象画素P2を分散して決定すれば良い。なお、このよう構成は、例えば、印刷実行部200が、主走査を伴わないタイプの印刷実行部、いわゆるラインプリンタである場合であっても採用できる。
(3)上記実施例では、黒色のインク(Kインク)について、供給が遅れる可能性が比較的高い場合に、C、M、Yのインクを用いて、黒色を表すことによって、注目部分画像の一部の領域が印刷される。これに代えて、例えば、C、M、Y、Kの4種類のインクに加えて、グレー、ライトシアン、ライトマゼンタ、ライトイエロの4種類のインクをさらに用いる印刷実行部の制御装置において、グレーのインクについて、供給が遅れる可能性が比較的高い場合に、ライトシアン、ライトマゼンタ、ライトイエロのインクを用いて、グレーを表すことによって、注目部分画像の一部の領域が印刷されても良い。あるいは、文字の印刷に適した顔料のKインクと、写真などの印刷に適した染料のKインクとを含む複数種類のインクを用いる印刷実行部の制御装置において、染料のKインクについて、供給が遅れる可能性が比較的高い場合に、顔料のKインクを用いて、黒色を表すことによって、注目部分画像の一部の領域が印刷されても良い。一般的には、複数種類のインクのうちの特定種のインクについて、供給が遅れる可能性が比較的高い場合に、特定種のインクとは異なる種類のインクを用いて特定種のインクの色を表すことによって、注目部分画像の一部の領域が印刷されれば良い。
(4)上記実施例では、注目部分画像を印刷する際のKインクの使用量を示す指標値として、K成分の値の合計値Tkが用いられている。これに代えて、例えば、仮に置換処理を行わずに注目部分画像を印刷する際に形成されるKインクのドット数の合計値が、Kインクの使用量を示す指標値として用いて用いられても良い。
(5)複合機100内の温度Tdに代えて、例えば、インクカートリッジCTG内のインクの温度や、チューブ252などのインク流路内のインクの温度が、用いられても良い。一般的には、印刷実行部200の少なくとも一部の温度が用いられれば良い。
(6)S140の判断に代えて、印刷される用紙の種類によって、S160の置換処理を実行するか、S165の処理を実行するかを判断してもよい。例えば、顔料のKインクを、染料のKインクに置換して黒色を表す置換処理が実行されるとする。この場合には、顔料のKインクと染料のKインクとの間で染みこみ方が異なることにより、画質への影響が出る可能性が比較的高い第1種の用紙が用いられる場合に、S165の処理を実行し、このような画質への影響が出る可能性が比較的低い第2種の用紙が用いられる場合に、S160の置換処理が実行されても良い。
(7)第2実施例において、文字領域と非文字領域とは、部分画像PIごとに特定されている。これに代えて、対象画像データの全体を解析することによって、対象画像の全体において、文字領域と非文字領域とが特定されても良い。また、文字領域と非文字領域とに限らず、例えば、比較的小さな文字を含む領域と、比較的大きな文字を含む領域と、が特定されても良い。そして、比較的大きな文字を含む領域内の複数個の画素が、置換対象の画素として決定されても良い。比較的小さな文字は、エッジの鮮鋭度が低下すると読み難くなるが、比較的大きな文字は、エッジの鮮鋭度が低下しても読み難くならないからである。
(8)上記実施例では、図3の印刷処理は、複合機100のCPU110によって実行されている。これに代えて、図3の印刷処理は、パーソナルコンピュータ400のCPUによって実行されても良い。この場合には、例えば、パーソナルコンピュータ400には、プリンタドライバプログラムがインストールされ、パーソナルコンピュータ400のCPUは、該プリンタドライバプログラムを実行することによって、図3の印刷処理を実行する。この場合には、例えば、図3のS120では、パーソナルコンピュータ400のCPU110は、複合機100と通信を行って、複合機100から、複合機100内の温度Tdを取得すれば良い。また、図3のS175、S185では、パーソナルコンピュータ400のCPUは、ドットデータや所定の印刷コマンドを複合機100に送信することによって、複合機100に主走査処理や副走査処理を実行させればよい。
(9)上記実施例では、対象画像データは、二値画像データであるファクシミリデータであるが、これに限られない。対象画像データは、例えば、グレーなどの中間階調を含む画像データであっても良い。あるいは、対象画像データは、一般的なRGB画像データであっても良い。例えば、黒色を中心として一部にカラーのオブジェクトを含むビジネス文書を示す画像データを用いて印刷を行う場合などでは、Kインクの供給の遅れが発生しやすいので、図3の印刷処理を適用する効果が大きい。
(10)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。例えば、CPU110が実行する印刷処理(図3)の全部または一部は、論理回路を含む専用のハードウェア回路によって実現されても良い。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。